
El R4000 es un microprocesador desarrollado por MIPS Computer Systems que implementa la arquitectura del conjunto de instrucciones (ISA) MIPS III . Anunciado oficialmente el 1 de octubre de 1991, fue uno de los primeros microprocesadores de 64 bits y la primera implementación de MIPS III. A principios de la década de 1990, cuando se esperaba que los microprocesadores RISC reemplazaran a los microprocesadores CISC, como el Intel i486 , el R4000 fue seleccionado como microprocesador del Advanced Computing Environment (ACE), un estándar industrial que pretendía definir una plataforma RISC común. ACE finalmente fracasó por diversas razones , pero el R4000 tuvo éxito en los mercados de estaciones de trabajo y servidores.
Modelos
Existen tres configuraciones del R4000: el R4000PC, un modelo básico sin soporte para caché secundaria; el R4000SC, un modelo con caché secundaria pero sin capacidad multiprocesador; y el R4000MC, un modelo con caché secundaria y soporte para los protocolos de coherencia de caché necesarios para los sistemas multiprocesador.
Descripción
El R4000 es un microprocesador escalar superpipelinado con una arquitectura de procesamiento de enteros de ocho etapas. Durante la primera etapa (IF), se genera una dirección virtual para una instrucción y el búfer de traducción de instrucciones (TLB) comienza la traducción de la dirección a una dirección física. En la segunda etapa (IS), se completa la traducción y la instrucción se obtiene de una caché de instrucciones interna de 8 KB. La caché de instrucciones es de mapeo directo e indexada virtualmente, con etiquetas físicas . Tiene un tamaño de línea de 16 o 32 bytes. Arquitectónicamente, podría ampliarse a 32 KB.
Durante la tercera etapa (RF), la instrucción se decodifica y se lee el archivo de registros . El MIPS III define dos archivos de registros: uno para la unidad de enteros y otro para la de punto flotante. Cada archivo de registros tiene 64 bits de ancho y contiene 32 entradas. El archivo de registros de enteros tiene dos puertos de lectura y uno de escritura, mientras que el de punto flotante tiene dos puertos de lectura y dos de escritura. La ejecución comienza en la etapa cuatro (EX) para ambas instrucciones, tanto de enteros como de punto flotante, y se escribe de nuevo en los archivos de registros al completarse en la etapa ocho (WB). Los resultados pueden omitirse si es posible.
Ejecución de enteros
El R4000 cuenta con una unidad aritmético-lógica (ALU), un desplazador, un multiplicador, un divisor y un alineador de carga para la ejecución de instrucciones enteras. La ALU consta de un sumador de selección de acarreo de 64 bits y una unidad lógica, y está segmentada. El desplazador es un desplazador de barril de 32 bits . Realiza desplazamientos de 64 bits en dos ciclos, lo que provoca el bloqueo de la segmentación. Este diseño se eligió para ahorrar área del chip. El multiplicador y el divisor no están segmentados y presentan latencias significativas: las multiplicaciones tienen una latencia de 10 o 20 ciclos para enteros de 32 o 64 bits, respectivamente; mientras que las divisiones tienen una latencia de 69 o 133 ciclos para enteros de 32 o 64 bits, respectivamente. La mayoría de las instrucciones tienen una latencia de un solo ciclo. El sumador de la ALU también se utiliza para calcular direcciones virtuales para cargas, almacenamientos y bifurcaciones.
Las instrucciones de carga y almacenamiento son ejecutadas por la tubería de enteros y acceden a la caché de datos de 8 KB integrada en el chip.
Ejecución de punto flotante
El R4000 tiene una unidad de punto flotante (FPU) integrada compatible con IEEE 754-1985 , denominada R4010. La FPU es un coprocesador designado CP1 [ 1 ] (el conjunto de instrucciones MIPS definió cuatro coprocesadores, designados CP0 a CP3). La FPU puede operar en dos modos, de 32 o 64 bits, que se seleccionan configurando un bit, el bit FR, en el registro de estado de la CPU. En el modo de 32 bits, los 32 registros de punto flotante se convierten en 32 bits de ancho cuando se usan para almacenar números de punto flotante de precisión simple. Cuando se usan para almacenar números de doble precisión, hay 16 registros de punto flotante (los registros están emparejados).
La FPU puede operar en paralelo con la ALU, salvo que exista una dependencia de datos o recursos que provoque su bloqueo. Consta de tres subunidades: un sumador, un multiplicador y un divisor. El multiplicador y el divisor pueden ejecutar una instrucción en paralelo con el sumador, pero lo utilizan en sus etapas finales de ejecución, lo que limita la ejecución simultánea. Por lo tanto, bajo ciertas condiciones, puede ejecutar hasta tres instrucciones a la vez, una en cada unidad. La FPU es capaz de descartar una instrucción por ciclo.
El sumador y el multiplicador están segmentados. El multiplicador cuenta con una segmentación de cuatro etapas. Su reloj funciona al doble de la frecuencia del microprocesador para un rendimiento óptimo y utiliza lógica dinámica para alcanzar dicha frecuencia. La división tiene una latencia de 23 o 36 ciclos para operaciones de precisión simple o doble, y la raíz cuadrada tiene una latencia de 54 o 112 ciclos. Tanto la división como la raíz cuadrada utilizan el algoritmo SRT .
Gestión de la memoria
La unidad de gestión de memoria (MMU) utiliza un búfer de traducción de direcciones de 48 entradas para traducir direcciones virtuales . El R4000 utiliza una dirección virtual de 64 bits, pero solo implementa 40 de los 64 bits, lo que permite 1 TB de memoria virtual ; los bits restantes se comprueban para asegurar que contengan cero. El R4000 utiliza una dirección física de 36 bits , por lo que puede direccionar 64 GB de memoria física .
Caché secundaria
El R4000 (solo configuraciones SC y MC) admite una caché secundaria externa con una capacidad de 128 KB a 4 MB. Se accede a la caché a través de un bus de datos dedicado de 128 bits. La caché secundaria se puede configurar como una caché unificada o como una caché de instrucciones y datos separada. En esta última configuración, cada caché puede tener una capacidad de 128 KB a 2 MB. [ 2 ] La caché secundaria está indexada físicamente, etiquetada físicamente y tiene un tamaño de línea programable de 128, 256, 512 o 1024 bytes. El controlador de caché está integrado en el chip. La caché está construida con memoria de acceso aleatorio estática (SRAM) estándar. Los buses de datos y etiquetas están protegidos con ECC.
bus del sistema
El R4000 utiliza un bus de sistema de 64 bits denominado bus SysAD. El bus SysAD era un bus multiplexado de direcciones y datos, es decir, utilizaba el mismo conjunto de cables para transferir datos y direcciones. Si bien esto reduce el ancho de banda, también resulta menos costoso que proporcionar un bus de direcciones independiente, que requiere más pines y aumenta la complejidad del sistema. El bus SysAD se puede configurar para operar a la mitad, un tercio o un cuarto de la frecuencia del reloj interno. El bus SysAD genera su señal de reloj dividiendo la frecuencia de operación.
Número de transistores, dimensiones del chip y detalles del proceso.
El R4000 contiene 1,2 millones de transistores. [ 3 ] Fue diseñado para un proceso CMOS ( semiconductor complementario de óxido metálico ) de dos capas de 1,0 μm . Dado que MIPS era una empresa sin fábrica propia , el R4000 fue fabricado por socios en sus propios procesos, que tenían un tamaño mínimo de característica de 0,8 μm. [ 4 ]
Registro de tiempo
El R4000 genera las distintas señales de reloj a partir de una señal de reloj maestra generada externamente. Para la frecuencia de funcionamiento, el R4000 multiplica por dos la señal de reloj maestra mediante un bucle de enganche de fase (PLL) integrado en el chip.
Embalaje
El R4000PC se presenta en un encapsulado CPGA ( matriz de rejilla de pines cerámica) de 179 pines . Los R4000SC y R4000MC se presentan en un encapsulado SPGA ( matriz de rejilla de pines escalonada cerámica ) de 447 pines. La distribución de pines del R4000MC difiere de la del R4000SC, ya que algunos pines no utilizados en el R4000SC se emplean para señales que implementan la coherencia de caché en el R4000MC. La distribución de pines del R4000PC es similar a la de los microprocesadores R4200 y R4600 , que se presentan en encapsulados PGA . Esta característica permite que un sistema diseñado adecuadamente utilice cualquiera de los tres microprocesadores.
R4400


El R4400 es una evolución del R4000. Su lanzamiento se anunció a principios de noviembre de 1992. Anteriormente, se habían enviado muestras del microprocesador a clientes selectos, y su disponibilidad general comenzó en enero de 1993. El R4400 funciona a frecuencias de reloj de 100, 133, 150, 200 y 250 MHz. La única mejora importante con respecto al R4000 reside en el aumento de la capacidad de las memorias caché primarias, que se duplicó de 8 KB a 16 KB cada una . Contaba con 2,3 millones de transistores.
El R4400 fue licenciado por Integrated Device Technology (IDT), LSI Logic , NEC , Performance Semiconductor, Siemens AG y Toshiba . IDT, NEC, Siemens y Toshiba fabricaron y comercializaron el microprocesador. LSI Logic utilizó el R4400 en productos personalizados. Performance Semiconductor vendió su división de lógica a Cypress Semiconductor , donde se descontinuaron los productos con microprocesadores MIPS.
NEC comercializó su versión como VR4400. La primera versión, una pieza de 150 MHz, se anunció en noviembre de 1992. Las primeras versiones se fabricaron en un proceso de 0,6 μm. [ 5 ] A mediados de 1995, se empezó a muestrear una pieza de 250 MHz. Se fabricó en un proceso de metal de cuatro capas de 0,35 μm. [ 6 ] NEC también produjo el MR4401, un módulo multichip (MCM) cerámico que contenía un VR4400SC con diez chips SRAM de 1 Mbit que implementaban una caché secundaria de 1 MB. El MCM era compatible en pines con el R4x00PC. La primera versión, una pieza de 150 MHz, se anunció en 1994. En 1995, se anunció una pieza de 200 MHz.
Toshiba comercializó su versión como TC86R4400. A mediados de 1994 se presentó un componente de 200 MHz que contenía 2,3 millones de transistores y medía 134 mm² , fabricado con un proceso de 0,3 μm. El R4400PC tenía un precio de 1600 dólares , el R4400SC de 1950 dólares y el R4400MC de 2150 dólares, en cantidades de 10 000 unidades. [ 7 ]
Uso
El R4400 es utilizado por:
- Computadoras Carrera en sus computadoras personales y estaciones de trabajo con Windows NT [ 8 ]
- Concurrent Computer Corporation en sus sistemas multiprocesador en tiempo real Maxion [ 9 ]
- Tecnología DeskStation en sus ordenadores personales Windows NT y estación de trabajo DeskStation Tyne [ 10 ]
- Digital Equipment Corporation en su estación de trabajo y servidor DECstation 5000/260
- NEC Corporation en sus estaciones de trabajo RISCstation , servidores RISCserver y supercomputadora Cenju-3 [ 11 ]
- NeTPower en sus estaciones de trabajo y servidores Windows NT
- Pyramid Technology utilizó el R4400MC en sus servidores de la serie Nile [ 12 ].
- Siemens Nixdorf Informationssysteme (SNI) en sus servidores UNIX serie RM y mainframe SR2000
- Silicon Graphics en sus estaciones de trabajo Onyx , Indigo , Indigo2 e Indy ; y en su servidor Challenge .
- Tandem Computers en sus servidores tolerantes a fallos NonStop Himalaya
Conjuntos de chips
Los microprocesadores R4000 y R4400 se conectaban al sistema mediante ASICs personalizados o conjuntos de chips disponibles comercialmente. Proveedores de sistemas como SGI desarrollaron sus propios ASICs para sus sistemas. Empresas como Toshiba desarrollaron, fabricaron y comercializaron conjuntos de chips comerciales con su conjunto de chips Tiger Shark, que proporcionaba un bus compatible con i486 . [ 13 ]
Notas
- ↑ Manual del usuario del microprocesador MIPS R4000, segunda edición , pág. 152
- ↑ Heinrich, "Manual del usuario del microprocesador MIPS R4000", pág. 248
- ↑ Mirapuri, "El procesador Mips R4000" , pág. 10
- ↑ Mirapuri, "El procesador Mips R4000" , pág. 21
- ↑ «NEC VR4400 RISC tiene Transistores de 2m» . Unigrama/X . 30 de noviembre de 1992. p. 4 . Consultado el 6 de octubre de 2025 .
- ↑ "NEC listo con la versión de 250 MHz del MIPS R4400 RISC de 64 bits" . Unigram/X . 5 de junio de 1995. pág. 3. Consultado el 6 de octubre de 2025 .
- ↑ «Toshiba tiene MIPS R4400 de 200MHz» . Unigrama/X . 30 de mayo de 1994. pág. 3 . Consultado el 6 de octubre de 2025 .
- ↑ "Tangent y Carrera imitan el índigo a la mitad de precio" . Unigram/X . 12 de julio de 1993. pág. 3. Consultado el 6 de octubre de 2025 .
- ↑ "Concurrent presenta nuevos sistemas multiprocesador con una nueva arquitectura de bus" . Unigram/X . 18 de octubre de 1993. pág. 4. Consultado el 6 de octubre de 2025 .
- ↑ "DeskStation muestra el ordenador personal ARCStation-1 de la serie R para NT" . Unigram/X . 30 de noviembre de 1992. pág. 3. Consultado el 6 de octubre de 2025 .
- ↑ Byrnes, Anita (17 de mayo de 1993). "NEC busca conquistar el mercado empresarial con nuevas estaciones de trabajo Unix" . Unigram/X . pág. 6. Consultado el 6 de octubre de 2025 .
- ↑ "Pyramid Technology pretende colapsar el mainframe con Nile Series" . Unigram/X . 11 de octubre de 1993. Consultado el 6 de octubre de 2025 .
- ↑ "Toshiba presenta muestras del conjunto de chips 80486-Bus para la serie R".
Referencias
- Heinrich, Joe. Manual del usuario del microprocesador MIPS R4000 , segunda edición.
- Sunil Mirapuri, Michael Woodacre, Nader Vasseghi, "El procesador MIPS R4000", IEEE Micro , vol. 12, n.º 2, págs. 10-22 , marzo/abril de 1992
- Computación RISC avanzada
- Implementaciones de MIPS
- Microprocesadores MIPS
- microprocesadores superescalares
- computadoras de 64 bits
- microprocesadores de 64 bits