El R10000 , cuyo nombre en código es "T5", es una implementación de microprocesador RISC de la arquitectura de conjunto de instrucciones MIPS IV (ISA) desarrollada por MIPS Technologies, Inc. (MTI), entonces una división de Silicon Graphics, Inc. (SGI). Los diseñadores principales son Chris Rowen y Kenneth C. Yeager. La microarquitectura R10000 se conoce como ANDES, una abreviatura de Arquitectura con programación de ejecución dinámica no secuencial. El R10000 reemplaza en gran medida al R8000 en la gama alta y al R4400 en otros lugares. MTI era una empresa de semiconductores sin fábricas ; el R10000 fue fabricado por NEC yToshiba . Los fabricantes anteriores de microprocesadores MIPS, como Integrated Device Technology (IDT) y otros tres, no fabricaron el R10000, ya que era más caro hacerlo que el R4000 y el R4400.
Historia
El R10000 se introdujo en enero de 1996 con frecuencias de reloj de 175 MHz y 195 MHz. En 1997 se introdujo una versión de 150 MHz en la línea de productos O2, pero se suspendió poco después debido a la preferencia del cliente por la versión de 175 MHz. El R10000 no estuvo disponible en grandes volúmenes hasta finales de año debido a problemas de fabricación en las fundiciones de MIPS. La versión de 195 MHz escaseaba durante 1996 y, como resultado, tenía un precio de 3.000 dólares estadounidenses. [1]
El 25 de septiembre de 1996, SGI anunció que los R10000 fabricados por NEC entre marzo y finales de julio de ese año tenían fallas, consumían demasiada corriente y provocaban que los sistemas se apagaran durante el funcionamiento. SGI retiró 10,000 R10000 que se habían enviado en sistemas como resultado, lo que afectó las ganancias de la compañía.
En 1997, una versión de R10000 fabricada en un proceso de 0,25 µm permitió que el microprocesador alcanzara los 250 MHz.
Usuarios
Los usuarios del R10000 incluyen:
- SGI:
- NEC, en su superordenador Cenju-4
- Siemens Nixdorf , en sus servidores corren bajo SINIX
- Tandem Computers , en sus servidores Himalaya tolerantes a fallas
Descripción
El R10000 es un diseño superescalar de cuatro vías que implementa el cambio de nombre de registros y ejecuta instrucciones fuera de orden . Su diseño es una desviación de los microprocesadores MTI anteriores, como el R4000, que es un diseño escalar en orden mucho más simple que se basa en gran medida en altas frecuencias de reloj para el rendimiento.
El R10000 obtiene cuatro instrucciones en cada ciclo de su caché de instrucciones . Estas instrucciones se decodifican y luego se colocan en las colas de instrucciones de enteros, de coma flotante o de carga / almacenamiento, según el tipo de instrucción. La unidad de decodificación es asistida por las instrucciones pre-decodificadas de la caché de instrucciones, que añaden cinco bits a cada instrucción para permitir que la unidad identifique rápidamente en qué unidad de ejecución se ejecuta la instrucción y reorganice el formato de la instrucción para optimizar la decodificación. proceso.
Cada una de las colas de instrucciones puede aceptar hasta cuatro instrucciones del decodificador, evitando cuellos de botella. Las colas de instrucciones emiten sus instrucciones a sus unidades de ejecución dinámicamente dependiendo de la disponibilidad de operandos y recursos. Cada una de las colas, excepto la cola de carga / almacenamiento, puede emitir hasta dos instrucciones en cada ciclo a sus unidades de ejecución. La cola de carga / almacenamiento solo puede emitir una instrucción. Por tanto, el R10000 puede emitir hasta cinco instrucciones en cada ciclo.
Unidad entera
La unidad de enteros consta del archivo de registro de enteros y tres canalizaciones , dos enteros y un almacén de carga. El archivo de registro de enteros tiene 64 bits de ancho y contiene 64 entradas, de las cuales 32 son registros de arquitectura y 32 son registros de cambio de nombre que implementan el cambio de nombre de registros. El archivo de registro tiene siete puertos de lectura y tres puertos de escritura. Ambas canalizaciones de enteros tienen un sumador y una unidad lógica. Sin embargo, solo la primera tubería tiene un cambiador de barril y hardware para confirmar la predicción de ramas condicionales. La segunda canalización se utiliza para acceder al multiplicador y al divisor. Las multiplicaciones se canalizan y tienen una latencia de seis ciclos para enteros de 32 bits y diez para enteros de 64 bits. La división no está canalizada. El divisor utiliza un algoritmo de no restauración que produce un bit por ciclo. Las latencias para las divisiones de 32 y 64 bits son de 35 y 67 ciclos, respectivamente.
Unidad de coma flotante
La unidad de coma flotante (FPU) consta de cuatro unidades funcionales, un sumador, un multiplicador, una unidad de división y una unidad de raíz cuadrada. El sumador y el multiplicador están canalizados, pero las unidades de división y raíz cuadrada no. Sumas y multiplicaciones tienen una latencia de tres ciclos y el sumador y el multiplicador pueden aceptar una nueva instrucción en cada ciclo. La unidad de división tiene una latencia de 12 o 19 ciclos, dependiendo de si la división es de precisión simple o precisión doble, respectivamente.
La unidad de raíz cuadrada ejecuta instrucciones de raíz cuadrada y raíz cuadrada recíproca . Las instrucciones de raíz cuadrada tienen una latencia de 18 o 33 ciclos para precisión simple o precisión doble, respectivamente. Se puede emitir una nueva instrucción de raíz cuadrada a la unidad de división cada 20 o 35 ciclos para precisión simple y precisión doble, respectivamente. Las raíces cuadradas recíprocas tienen latencias más largas, de 30 a 52 ciclos para precisión simple (32 bits) y precisión doble (64 bits) respectivamente.
El archivo de registro de punto flotante contiene sesenta y cuatro registros de 64 bits, de los cuales treinta y dos son de arquitectura y los restantes son registros de cambio de nombre. El sumador tiene sus propios puertos de lectura y escritura dedicados, mientras que el multiplicador los comparte con el divisor y la unidad de raíz cuadrada.
Las unidades de raíz cuadrada y división utilizan el algoritmo SRT . El MIPS IV ISA tiene una instrucción de multiplicación y suma. El R10000 implementa esta instrucción con un bypass: el resultado de la multiplicación puede omitir el archivo de registro y enviarse a la canalización de adición como un operando, por lo que no es una multiplicación-suma fusionada y tiene una latencia de cuatro ciclos.
Cachés
El R10000 tiene dos cachés en chip comparativamente grandes, un caché de instrucciones de 32 KB y un caché de datos de 32 KB. La caché de instrucciones es asociativa de conjuntos bidireccional y tiene un tamaño de línea de 128 bytes. Las instrucciones se decodifican parcialmente agregando cuatro bits a cada instrucción (que tienen una longitud de 32 bits) antes de que se coloquen en la caché.
La caché de datos de 32 KB tiene dos puertos a través del entrelazado bidireccional. Consta de dos bancos de 16 KB , y cada banco es asociativo de conjuntos bidireccional. La caché tiene líneas de 64 bytes, utiliza el protocolo de escritura diferida y está virtualmente indexada y etiquetada físicamente para permitir que la caché se indexe en el mismo ciclo de reloj y para mantener la coherencia con la caché secundaria.
La memoria caché unificada secundaria externa admitía capacidades de entre 512 KB y 16 MB. Se implementa con memorias de acceso aleatorio estáticas síncronas de productos básicos (SSRAM). Se accede a la caché a través de su propio bus de 128 bits que está protegido por un código de corrección de errores (ECC) de 9 bits . La caché y el bus operan a la misma frecuencia de reloj que el R10000, cuya frecuencia máxima fue de 200 MHz. A 200 MHz, el bus produjo un ancho de banda máximo de 3,2 GB / s. El caché es asociativo de conjuntos de dos vías, pero para evitar un alto número de pines, el R10000 predice de qué manera se accede.
Direccionamiento
MIPS IV es una arquitectura de 64 bits, pero para reducir el costo, el R10000 no implementa la dirección física o virtual completa . En cambio, tiene una dirección física de 40 bits y una dirección virtual de 44 bits, por lo que es capaz de direccionar 1 TB de memoria física y 16 TB de memoria virtual .
Bus del sistema de avalancha
El R10000 utiliza el bus de la avalancha , un 64-bit bus que funciona a frecuencias de hasta 100 MHz. Avalanche es un bus de datos y direcciones multiplexado , por lo que a 100 MHz produce un ancho de banda teórico máximo de 800 MB / s, pero su ancho de banda máximo es de 640 MB / s ya que requiere algunos ciclos para transmitir direcciones.
El controlador de interfaz del sistema admite el multiprocesamiento simétrico sin pegamento (SMP) de hasta cuatro microprocesadores. Los sistemas que utilizan el R10000 con lógica externa pueden escalar a cientos de procesadores. Un ejemplo de tal sistema es el Origin 2000 .
Fabricación
El R10000 consta de aproximadamente 6,8 millones de transistores, de los cuales aproximadamente 4,4 millones están contenidos en los cachés primarios. [2] La matriz mide 16.640 por 17.934 mm, para un área de matriz de 298.422 mm 2 . Se fabrica en un proceso de 0,35 µm y se empaqueta en una matriz de rejilla de tierra de cerámica (LGA) de 599 almohadillas . Antes de que se presentara el R10000, el Microprocessor Report , que cubría el Microprocessor Forum de 1994, informaba que estaba empaquetado en una matriz de rejilla de clavijas cerámicas (CPGA) de 527 pines; y que los proveedores también investigaron la posibilidad de usar un módulo de chip múltiple (MCM) de 339 pines que contiene el microprocesador y 1 MB de caché. [3]
Derivados
El R10000 se amplió mediante múltiples derivados sucesivos. Todos los derivados posteriores al R12000 mantienen su frecuencia de reloj lo más baja posible para mantener la disipación de energía en el rango de 15 a 20 W para que puedan empaquetarse densamente en los sistemas de computación de alto rendimiento (HPC) de SGI .
R12000
El R12000 es un derivado del R10000 iniciado por MIPS y completado por SGI. Fue fabricado por NEC y Toshiba. La versión fabricada por NEC se llama VR12000. El microprocesador se introdujo en noviembre de 1998. Está disponible en 270, 300 y 360 MHz. El R12000 se desarrolló como una solución provisional tras la cancelación del proyecto "Beast", que pretendía entregar un sucesor del R10000. Los usuarios de R12000 incluyen NEC, Siemens-Nixdorf , SGI y Tandem Computers (y más tarde Compaq, después de su adquisición de Tandem).
El R12000 mejora la microarquitectura del R10000 al: insertar una etapa de tubería adicional para mejorar la frecuencia del reloj resolviendo una ruta crítica; aumentar el número de entradas en la tabla de historial de sucursales, mejorar la predicción; modificar las colas de instrucciones para que tengan en cuenta la antigüedad de una instrucción en cola, permitiendo que las instrucciones más antiguas se ejecuten antes que las más nuevas si es posible.
El R12000 fue fabricado por NEC y Toshiba en un proceso CMOS de 0,25 µm con cuatro niveles de interconexión de aluminio . El nuevo uso de un nuevo proceso no significa que el R12000 fuera un simple encogimiento de troquel con una microarquitectura modificada; el diseño de la matriz está optimizado para aprovechar el proceso de 0,25 µm. [4] [5] El VR12000 fabricado por NEC contenía 7,15 millones de transistores y medía 15,7 por 14,6 mm (229,22 mm 2 ).
R12000A
El R12000A es un derivado del R12000 desarrollado por SGI. Introducido en julio de 2000, funciona a 400 MHz y fue fabricado por NEC en un proceso de 0,18 µm con interconexiones de aluminio .
R14000
El R14000 es un desarrollo adicional del R12000 anunciado en julio de 2001. El R14000 funciona a 500 MHz, habilitado por el proceso CMOS de 0,13 µm con cinco niveles de interconexión de cobre con el que está fabricado. Presenta mejoras en la microarquitectura del R12000 al admitir SSRAM de doble velocidad de datos (DDR) para la caché secundaria y un bus del sistema de 200 MHz. [6]
R14000A
El R14000A es un desarrollo adicional del R14000 anunciado en febrero de 2002. Funciona a 600 MHz, disipa aproximadamente 17 W y fue fabricado por NEC Corporation en un proceso CMOS de 0,13 µm con siete niveles de interconexión de cobre. [6]
R16000
El R16000, cuyo nombre en código es "N0", es el último derivado del R10000. Está desarrollado por SGI y fabricado por NEC en su proceso de 0,11 µm con ocho niveles de interconexión de cobre. El microprocesador se introdujo el 9 de enero de 2003, debutando a 700 MHz para el Fuel y también se utilizó en su Onyx4 Ultimate Vision . [7] En abril de 2003, se introdujo una versión de 600 MHz para el Origin 350 . Las mejoras son cachés de datos e instrucciones de 64 KB.
R16000A
El R16000A se refiere a microprocesadores R16000 con frecuencias de reloj superiores a 700 MHz. El primer R16000A es una versión de 800 MHz, introducida el 4 de febrero de 2004. Más tarde, se introdujo una versión de 900 MHz, y esta versión fue, durante algún tiempo, el R16000A más rápido conocido públicamente. SGI reveló más tarde que se enviaron R16000 de 1.0 GHz a determinados clientes. Los usuarios de R16000 incluyeron HP y SGI. SGI utilizó el microprocesador en sus estaciones de trabajo Fuel y Tezro ; y los servidores y supercomputadoras Origin 3000 . HP usó el R16000A en sus servidores tolerantes a fallas NonStop Himalaya S-Series heredados de Tandem a través de Compaq.
R18000
El R18000 es un desarrollo adicional cancelado de la microarquitectura R10000 que presentó importantes mejoras de Silicon Graphics, Inc. descritas en el simposio Hot Chips en 2001. El R18000 fue diseñado específicamente para los servidores y supercomputadoras ccNUMA de SGI. Cada nodo tendría dos R18000 conectados a través de un bus multiplexado a un controlador del sistema, que conectaría los microprocesadores a su memoria local y al resto del sistema a través de una red hipercubo.
El R18000 mejoró las colas de instrucciones de punto flotante y revisó la unidad de punto flotante para incluir dos unidades de multiplicación y suma, cuadruplicando el conteo máximo de FLOPS. La división y la raíz cuadrada se realizarían en unidades separadas no canalizadas en paralelo a las unidades de multiplicar-sumar. La interfaz del sistema y la jerarquía de la memoria también se modificaron significativamente. Tendría una dirección virtual de 52 bits y una dirección física de 48 bits. La dirección multiplexada bidireccional y el bus del sistema de datos de los modelos anteriores serían reemplazados por dos enlaces DDR unidireccionales, una ruta de dirección y escritura multiplexada de 64 bits y una ruta de lectura de 128 bits. Las rutas podrían compartirse con otro R18000 mediante multiplexación. El bus también se puede configurar en la configuración SysAD o Avalanche para compatibilidad con versiones anteriores de los sistemas R10000.
El R18000 tendría una caché secundaria asociativa de conjuntos de cuatro vías de 1 MB que se incluiría en la matriz; complementado por un caché terciario opcional construido a partir de velocidad de datos única (SDR) o velocidad de datos doble (DDR) SSRAM o DDR SDRAM con capacidades de 2 a 64 MB. La caché L3 tendría sus etiquetas de caché, equivalentes a 400 KB, ubicadas en la matriz para reducir la latencia. Se accedería a la caché L3 a través de un bus de 144 bits, de los cuales 128 bits son para datos y 16 bits para ECC. La frecuencia de reloj de la caché L3 sería programable.
El R18000 se iba a fabricar en el proceso UX5 de NEC, un proceso CMOS de 0,13 µm con nueve niveles de interconexión de cobre . Habría utilizado una fuente de alimentación de 1,2 V y habría disipado menos calor que los microprocesadores de servidor contemporáneos para estar densamente empaquetado en los sistemas.
Notas
- ^ Gwennap, Linley (27 de enero de 1997). "Alpha Sails, PowerPC Flails". Informe del microprocesador, págs. 1, 6–9., Pág. 8. "
- ^ Yeager, Kenneth C. (abril de 1996). "El microprocesador superescalar MIPS R10000". IEEE Micro., Pág. 28.
- ^ Gwennap, Linley (24 de octubre de 1994). "MIPS R10000 utiliza arquitectura desacoplada". Informe del microprocesador, volumen 8, número 14., p. 4.
- ^ Gwennap, Linley (6 de octubre de 1997). "MIPS R12000 para alcanzar los 300 MHz". Informe del microprocesador, volumen 11, número 13.
- ^ Halfhill, Tom R. (enero de 1998). "RISC contraataca con el Mips R12000". Revista Byte.
- ^ a b ComputerWire (2 de julio de 2002). "SGI desarrollará chips MIPS para Origin, Onyx" . El registro.
- ^ Silicon Graphics, Inc. (9 de enero de 2003). SGI aumenta el precio / rendimiento en la familia de estaciones de trabajo visuales de Silicon Graphics hasta en un 25%. (Presione soltar).
Referencias
- ComputerWire (2 de julio de 2002). "SGI desarrollará chips MIPS para Origin, Onyx" . El registro .
- Fu, Tim y col. (31 de agosto de 2001). "R18000: El último microprocesador superescalar SGI" . Hot Chips XIII .
- Gwennap, Linley (24 de octubre de 1994). "MIPS R10000 utiliza arquitectura desacoplada" . Informe del microprocesador , volumen 8, número 14.
- Gwennap, Linley (27 de enero de 1997). "Alpha Sails, PowerPC Flails". Informe del microprocesador , págs. 1, 6–9.
- Gwennap, Linley (6 de octubre de 1997). "MIPS R12000 para alcanzar los 300 MHz" . Informe del microprocesador , volumen 11, número 13.
- Halfhill, Tom R. (noviembre de 1994). "T5: Fuerza bruta" . Revista Byte .
- Halfhill, Tom R. (enero de 1998). "RISC contraataca con el Mips R12000". Revista Byte .
- Heinrich, Joe (29 de enero de 1997). "Manual del usuario del microprocesador MIPS R10000" .
- Kanellos, Michael; Kawamoto, Dawn (9 de abril de 1998). "Silicon Graphics desecha los planes de MIPS" . Noticias CNET .
- Tecnologías MIPS, Incorporated. (Octubre de 1994). "Revisión del producto del microprocesador R10000" [ enlace muerto permanente ] .
- Morgan, Timothy Prickett (16 de abril de 2003). "SGI anuncia el servidor HPC de gama media Origin 350". IT Jungle .
- NEC Corporation (24 de noviembre de 1998). El microprocesador de rendimiento de clase más alta del mundo de NEC Markets . ( Comunicado de prensa ).
- Shankland, Stephen (15 de abril de 2003). "SGI actualiza el servidor Unix de rango medio". Noticias de CNet .
- Silicon Graphics, Inc. (9 de enero de 2003). SGI aumenta el precio / rendimiento en la familia de estaciones de trabajo visuales de Silicon Graphics hasta en un 25% . ( Comunicado de prensa ).
- Vasseghi, N. et al. (Noviembre de 1996). "Microprocesador RISC superescalar de 200 MHz" . IEEE Journal of Solid-State Circuits 31 (11): págs. 1675–1686.
- Yeager, Kenneth C. (abril de 1996). "El microprocesador superescalar MIPS R10000" [ enlace muerto permanente ] . IEEE Micro .
- Yeager, Kenneth C. (agosto de 1995). "Microprocesador superescalar R10000" . Hot Chips VII .