R10000

La versión actual de la página aún no ha sido revisada por colaboradores experimentados y puede diferir significativamente de la versión revisada el 31 de enero de 2020; las comprobaciones requieren 4 ediciones .

R10000 (nombre en clave "T5") es un microprocesador RISC que implementa el conjunto de instrucciones MIPS IV . Desarrollado por MIPS Technoligies, Inc. (MTI, que luego se convirtió en una división de SGI ). Los principales desarrolladores son Chris Rowan y Kenneth S. Yeager. El R10000 se basa en la microarquitectura ANDES (Arquitectura con programación de ejecución dinámica no secuencial) . [1] El R10000 ha reemplazado en gran medida al R8000 en el segmento de alto rendimiento y al R4400 en otras aplicaciones. MTI es una empresa sin fábrica y los procesadores R10000 fueron fabricados por NEC y Toshiba . Los fabricantes de microprocesadores MIPS anteriores, IDT y otros, no fabricaron el R10000 porque era más caro que el R4000 y el R4400.

Historia

El R10000 se introdujo en enero de 1996 en versiones de 175 MHz y 195 MHz. En 1997, se introdujo una versión de 150 MHz en la línea de productos O2, pero pronto se suspendió debido a la mayor popularidad del modelo de 175 MHz. El R10000 no estuvo disponible en grandes volúmenes hasta finales de año debido a problemas de fabricación. La versión de 195 MHz siguió siendo escasa durante 1996 y se vendió por 3.000 dólares estadounidenses. [2]

El 25 de septiembre de 1996, SGI anunció que los R10000 fabricados por NEC en marzo y finales de julio estaban defectuosos, consumían demasiada corriente y provocaban que los sistemas se apagaran durante el funcionamiento. SGI ha retirado del mercado sistemas que utilizan unos 10.000 procesadores R10000, lo que ha afectado a los resultados de la empresa. [3] [4]

En 1997, una versión de 0,25 µm del R10000 alcanzó los 250 MHz.

Aplicaciones

El R10000 se ha utilizado en varios sistemas informáticos:

Descripción

El R10000 tiene un diseño superescalar con 4 canalizaciones, implementa el cambio de nombre de registros y utiliza la ejecución desordenada de instrucciones . El diseño del R10000 difiere de los microprocesadores MIPS anteriores, como el R4000, que era un procesador escalar sin ejecución fuera de orden y se basaba principalmente en altas velocidades de reloj para el rendimiento.

Cada ciclo de reloj en el R10000 puede solicitar hasta cuatro instrucciones del caché de instrucciones . Estas instrucciones se decodifican y luego, según el tipo, se colocan en una de las colas de ejecución: operaciones con enteros, instrucciones de punto flotante o instrucciones de carga/almacenamiento. El bloque de decodificación utiliza sugerencias de tipo de instrucción preparadas por la caché de instrucciones: cada instrucción está marcada con cinco bits para determinar a qué unidades de ejecución enviar la instrucción y optimizar el proceso de decodificación.

Cada una de las colas de instrucciones puede recibir hasta cuatro instrucciones del decodificador. Las instrucciones de las colas se envían dinámicamente a la canalización de ejecución correspondiente para su ejecución, según la preparación de sus operandos y la disponibilidad de recursos. Cada una de las colas, con excepción de la cola de carga/almacenamiento, puede emitir hasta dos instrucciones por reloj. Solo se puede ejecutar una instrucción en la cola de carga/guardado. Así, el R10000 puede ejecutar hasta cinco instrucciones por reloj.

Bloque de operaciones con enteros

Un dispositivo de enteros consta de un archivo de registro de enteros y tres conductos : dos para operaciones de enteros y uno para operaciones de memoria. Un archivo de registro de enteros tiene 64 bits de ancho y contiene 64 registros, de los cuales 32 son arquitectónicos y 32 se utilizan para renombrar registros. El archivo de registro tiene siete puertos de lectura y tres puertos de escritura. Ambas canalizaciones de enteros tienen bloques sumadores y booleanos. Sin embargo, solo la primera tubería proporciona un desplazador de barril y un equipo de confirmación de predicción de ramales. La segunda canalización se utiliza para acceder al multiplicador y al divisor. El multiplicador está canalizado, tiene una latencia de seis ciclos para enteros de 32 bits y una latencia de diez ciclos para enteros de 64 bits. El bloque de división no está canalizado. La división se realiza de acuerdo con un algoritmo sin restauración , que produce un bit por reloj. El retardo de división para enteros de 32 y 64 bits es de 35 y 67 ciclos, respectivamente.

Bloque de coma flotante

La unidad de punto 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, la división y el bloque de raíz cuadrada no están canalizados. La suma y la multiplicación tienen un retraso de tres ciclos y pueden tomar una nueva instrucción cada ciclo. El bloque de división tiene un retraso de 12 o 19 ciclos, dependiendo de la profundidad de bits de los datos, para precisión simple y doble , respectivamente.

Bloque de raíz cuadrada El bloque realiza operaciones de raíz cuadrada e inversa . Las instrucciones de raíz cuadrada tienen una latencia de 18 y 33 ciclos para precisión simple y doble, respectivamente. Se puede emitir una nueva instrucción de raíz cuadrada al bloque cada 20 o 35 ciclos para precisión simple y doble, respectivamente. Las raíces cuadradas inversas se calculan en 30 o 52 ciclos para precisión simple (32 bits) y doble (64 bits) respectivamente.

El archivo de registro de punto flotante contiene sesenta y cuatro registros de 64 bits, de los cuales 32 son arquitectónicos y 32 son para renombrar registros. El sumador tiene sus propios puertos de lectura y escritura dedicados, se usa un puerto compartido para los bloques restantes.

Los bloques de división y raíz cuadrada utilizan el algoritmo SRT . MIPS IV tiene un comando de suma y multiplicación. Esta instrucción se implementa en el R10000 usando una derivación: el resultado de la multiplicación se puede entregar sin pasar por el archivo de registro directamente a la canalización del sumador como un operando. Por lo tanto, esta implementación no es una suma y multiplicación combinada y tiene cuatro ciclos de retardo.

Memoria caché

El R10000 utiliza dos cachés relativamente grandes implementadas en el mismo chip: una caché de instrucciones de 32 KB y una caché de datos de 32 KB. La caché de instrucciones es de 2 canales, multiasociativa , utiliza líneas de 128 bytes. Las instrucciones se decodifican parcialmente agregando cuatro bits a cada instrucción (el tamaño de una instrucción es de 32 bits).

La memoria caché de datos de 32 KB es una memoria caché intercalada dos veces de dos puertos. Consta de dos bancos de 16K y cada banco utiliza asociatividad de dos canales. La memoria caché utiliza cadenas de 64 bytes, protocolo de reescritura , se indexa virtualmente y se etiqueta físicamente . Este enfoque permite indexar en el mismo ciclo y mantener la coherencia con la caché L2.

La caché L2 externa se comparte entre las instrucciones y los datos y puede variar en tamaño de 512 KB a 16 MB. Se implementa sobre la base de la memoria estática síncrona (SSRAM). Se accede a la memoria caché a través de un bus de 128 bits protegido por un código de corrección de errores (ECC) de 9 bits. El caché y el bus funcionan a la velocidad del reloj del procesador R10000. A 200 MHz, el bus tiene un ancho de banda máximo de 3,2 GB/s. La memoria caché utiliza asociatividad de dos canales, pero para reducir la cantidad de contactos, R10000 predice el canal que se conectará.

Direccionamiento

MIPS IV es una arquitectura de 64 bits, pero el R10000 no implementa el espacio completo de direcciones físicas o virtuales para reducir costos. El procesador ofrece direccionamiento físico de 40 bits y direccionamiento virtual de 44 bits, lo que permite direccionar hasta 1 TB de memoria física y hasta 16 TB de memoria virtual .

Bus del sistema Avalance

Avalance se utiliza como bus del sistema: un bus de 64 bits que funciona a frecuencias de hasta 100 MHz. El bus de Avalance multiplexa direcciones y datos, por lo que de un rendimiento teórico máximo de 800 MB/s a 100 MHz, solo 640 MB/s están disponibles para la transferencia de datos, ya que parte de los relojes se utilizan para transferir direcciones.

El controlador de interfaz del sistema incorporado admite la implementación de sistemas de multiprocesador simétrico ( SMP ) hasta cuatro microprocesadores, inclusive. El uso de controladores externos le permite crear sistemas a partir de cientos de procesadores R10000. Un ejemplo de tal sistema es el SGI Origin 2000 .

Manufactura

El procesador R10000 tiene alrededor de 6,8 millones de transistores, de los cuales alrededor de 4,4 millones son la implementación de cachés de primer nivel. [5] El chip mide 16,64 por 17,934 mm con un área total de 298,42 mm 2 . Fue fabricado según el proceso de fabricación de 0,35 micras y empaquetado en un paquete LGA de cerámica con 599 pines. [6]

Procesadores derivados

El R10000 se ha ampliado en varios proyectos derivados. Todos los derivados posteriores al R12000 tenían velocidades de reloj reducidas para mantener la disipación de energía en el rango de 15 a 20 vatios. Esto permitió que los procesadores se empaquetaran de forma compacta en los sistemas informáticos de alto rendimiento de SGI .

R12000

El R12000 es un derivado del R10000 iniciado en MIPS y completado en SGI. Fue fabricado por NEC y Toshiba. La versión de NEC se llama VR12000. El microprocesador se introdujo en noviembre de 1998 y estaba disponible en 270, 300 y 360 MHz. El R12000 se desarrolló como una solución temporal tras la cancelación del proyecto Beast, que planeaba crear un sucesor del R10000. El procesador R12000 fue utilizado por NEC, Siemens-Nixdorf , SGI y Tandem Computers (posteriormente parte de Compaq).

El R12000 mejora la microarquitectura del R10000 al incluir etapas de tubería adicionales para aumentar la velocidad del reloj, aumentar la cantidad de entradas en las tablas del historial de sucursales, mejorar la predicción de sucursales, cambiar las colas de instrucciones para tener en cuenta la antigüedad de las instrucciones (las instrucciones más antiguas tienen prioridad para la ejecución).

El R12000 fue fabricado por NEC y Toshiba en un proceso CMOS de 0,25 µm con cuatro niveles de unión de aluminio. El uso de una nueva tecnología de proceso no significa que el R12000 fuera simplemente una reducción del diseño anterior con optimizaciones de microarquitectura. La topología del R12000 se ha optimizado para aprovechar la tecnología de proceso de 0,25 µm. [7] [8] Los procesadores VR12000 de NEC contienen 7,15 millones de transistores en una matriz de 15,7 por 14,6 mm (229,22 mm 2 ).

R12000A

El R12000A es un derivado del R12000 desarrollado por SGI. Presentado en julio de 2000, funciona a 400 MHz y NEC lo fabrica en un proceso de 0,18 µm con compuestos de aluminio.

R14000

El R14000 es un desarrollo posterior del R12000, anunciado en julio de 2001. El R14000 funciona a 500 MHz mediante un proceso CMOS de 0,13 µm con cinco capas de interconexiones de cobre . Además de las mejoras en la microarquitectura R12000, el procesador admite SSRAM de doble velocidad de datos (DDR) para caché secundaria y un bus de sistema de 200 MHz. [9]

R14000A

El R14000A es un desarrollo posterior del R14000 que se anunció en febrero de 2002. Opera a 600 MHz, disipa alrededor de 17 W y es fabricado por NEC en un proceso CMOS de 0,13 µm con siete capas de conexiones de cobre.

R16000

R16000 (nombre en clave "N0") es el último derivado de R10000. El procesador fue diseñado por SGI y fabricado por NEC en un proceso de 0,11 micras con ocho capas de interconexiones de cobre. El microprocesador se introdujo el 9 de enero de 2003, debutando a 700 MHz para la computadora SGI Fuel . También se utiliza en SGI Onyx4 Ultimate Vision . [10] En abril de 2003, se introdujo una versión de 600 MHz para el SGI Origin 350 . En el R16000, los tamaños de caché de instrucciones y datos aumentaron a 64 KB.

R16000A

Bajo R16000A, designe variantes de procesadores R16000 con frecuencias de reloj superiores a 700 MHz. El primer R16000A con 800 MHz se introdujo el 4 de febrero de 2004. Más tarde apareció una versión de 900 MHz. Para algunos clientes, SGI ha enviado el R16000 a 1,0 GHz. Los usuarios de R16000 incluyen HP y SGI. SGI usó el microprocesador en sus estaciones de trabajo Fuel y Tezro y en sus servidores Origin 3000 . HP utiliza el R16000A en la serie NonStop Himalaya S-Series de servidores tolerantes a fallas (heredada de Tandem a través de Compaq).

R18000

R18000: un proyecto de desarrollo cancelado para el R10000. Los cambios planificados en la microarquitectura fueron presentados por Silicon Graphics en el Hot Chips Symposium en 2001. El R18000 fue diseñado específicamente para servidores y supercomputadoras SGI ccNUMA. Cada nodo usaría dos R18000 conectados a través de un bus multiplexado al controlador del sistema. Conecta microprocesadores a la memoria local y al resto del sistema a través de una topología de red de hipercubo.

El R18000 ha mejorado las colas de instrucciones de punto flotante, y la unidad de punto flotante utiliza dos dispositivos de multiplicación y suma, lo que aumenta la tasa máxima de FLOPS en 4 veces. La operación de división y raíz cuadrada se puede realizar en unidades separadas sin tubería simultáneamente con la suma y la multiplicación. La interfaz del sistema y la jerarquía de la memoria se han rediseñado significativamente. Se utilizan direcciones virtuales de 52 bits y direcciones físicas de 48 bits. El bus de sistema multiplexado bidireccional de modelos anteriores se reemplaza por dos canales DDR unidireccionales: un canal multiplexado de 64 bits para direcciones y escritura de datos y un canal de lectura de 128 bits. Estos dos canales se pueden compartir con un segundo procesador R18000 mediante multiplexación. El bus también se puede reconfigurar a los modos SysAD o Avalance para compatibilidad con versiones anteriores de los sistemas R10000.

El R18000 utiliza una caché multiasociativa L2 de cuatro vías de 1 MB implementada en el mismo chip. Opcionalmente se puede utilizar una caché de tercer nivel construida a partir de memoria SDR o DDR SSRAM, oa partir de DDR SDRAM con una capacidad de 2 a 64 MB. Este caché L3 se complementa con un caché de etiquetas de 400 KB ubicado en el chip del procesador para reducir la latencia. Para acceder a la caché L3, se utiliza un bus de 144 bits de ancho: 128 bits para datos y 16 bits para ECC. Las frecuencias de caché L3 se pueden configurar.

El R18000 se planeó para el proceso CMOS de 0,13 µm "UX5" de NEC con nueve niveles de conexiones de cobre . Este proceso utiliza un suministro de 1,2 V, lo que reduciría la disipación de calor y aumentaría la densidad de empaquetamiento en sistemas grandes.

Notas

  1. ^ "MIPS reclama registro de coma flotante con R10000, el chip más popular en el foro de microprocesadores"  (enlace no disponible) (31 de octubre de 1994). Revisión del negocio de la informática.
  2. Gwennap, Linley (27 de enero de 1997). Velas alfa, Mayales PowerPC. Informe del microprocesador , págs. 1, 6-9., pág. ocho."
  3. "Defectos revelados en los sistemas SGI R10000 MIPS, ingresos afectados" Archivado el 26 de septiembre de 2018 en Wayback Machine . (26 de septiembre de 1996). Revisión del negocio de la informática.
  4. "SGI To Recall 10,000 R10000s" Archivado el 26 de septiembre de 2018 en Wayback Machine (30 de septiembre de 1996). Revisión del negocio de la informática.
  5. Yeager, Kenneth C. "El microprocesador superescalar MIPS R10000". Micro IEEE. abril de 1996, pág. 28. doi:10.1109/40.491460
  6. Gwennap, Linley (24 de octubre de 1994). "MIPS R10000 utiliza arquitectura desacoplada". Informe del microprocesador, Volumen 8, Número 14., pág. 4. . Consultado el 25 de septiembre de 2018. Archivado desde el original el 25 de septiembre de 2020.
  7. Gwennap, Linley (6 de octubre de 1997). "MIPS R12000 para alcanzar los 300 MHz". Informe del Microprocesador, Volumen 11, Número 13. . Consultado el 25 de septiembre de 2018. Archivado desde el original el 4 de agosto de 2020.
  8. Halfhill, Tom R. (enero de 1998). "RISC contraataca con el Mips R12000". Revista Byte.
  9. ComputerWire (2 de julio de 2002). "SGI desarrollará chips MIPS para Origin, Onyx" Archivado el 25 de septiembre de 2018 en Wayback Machine . El registro.
  10. Silicon Graphics, Inc. (9 de enero de 2003). SGI aumenta la relación precio/rendimiento en la familia de estaciones de trabajo Visual Fuel de Silicon Graphics hasta en un 25 %. (Presione soltar).

Enlaces