R4000 - R4000

Un microprocesador Toshiba R4000
Disparo de matriz MIPS R4000

El R4000 es un microprocesador desarrollado por MIPS Computer Systems que implementa la arquitectura de conjunto de instrucciones MIPS III (ISA). 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 , se seleccionó el R4000 para ser el microprocesador del Entorno de Computación Avanzada (ACE), un estándar de la industria que pretendía definir una plataforma RISC común. ACE finalmente fracasó por varias razones , pero el R4000 tuvo éxito en los mercados de estaciones de trabajo y servidores.

Modelos

Hay tres configuraciones del R4000: el R4000PC, un modelo de nivel de entrada sin soporte para una caché secundaria; el R4000SC, un modelo con caché secundaria pero sin capacidad de multiprocesador; y el R4000MC, un modelo con caché secundaria y soporte para los protocolos de coherencia de caché requeridos por los sistemas multiprocesador.

Descripción

El R4000 es un microprocesador escalar superpipelinado con una canalización 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 búsqueda 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 está mapeada directamente y virtualmente indexada, etiquetada físicamente . 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), se decodifica la instrucción y se lee el archivo de registro . El MIPS III define dos archivos de registro, uno para la unidad entera y el otro para coma flotante. Cada archivo de registro tiene un ancho de 64 bits y contiene 32 entradas. El archivo de registro de enteros tiene dos puertos de lectura y un puerto de escritura, mientras que el archivo de registro de punto flotante tiene dos puertos de lectura y dos puertos de escritura. La ejecución comienza en la etapa cuatro (EX) tanto para instrucciones enteras como de coma flotante; y se vuelve a escribir en los archivos de registro cuando se completa en la etapa ocho (WB). Los resultados se pueden omitir si es posible.

Ejecución de enteros

El R4000 tiene una unidad aritmética lógica (ALU), un cambiador, un multiplicador y un divisor y un alineador de carga para ejecutar instrucciones de números enteros. La ALU consta de un sumador de selección de acarreo de 64 bits y una unidad lógica y está canalizada. La palanca de cambios es una palanca de cambios de barril de 32 bits . Realiza cambios de 64 bits en dos ciclos, lo que detiene la tubería como resultado. Este diseño fue elegido para salvar el área de la matriz. El multiplicador y el divisor no están canalizados y tienen 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 ciclo único. El sumador ALU también se utiliza para calcular direcciones virtuales para cargas, tiendas y sucursales.

Las instrucciones de carga y almacenamiento son ejecutadas por la canalización de enteros y acceden a la caché de datos de 8 KB en el chip.

Ejecución de punto flotante

El R4000 tiene una unidad de punto flotante (FPU) compatible con IEEE 754-1985 , denominada R4010. La FPU es un coprocesador designado CP1 (MIPS ISA definió cuatro coprocesadores, designados CP0 a CP3). La FPU puede operar en dos modos, 32 o 64 bits, que se seleccionan estableciendo un bit, el bit FR, en el registro de estado de la CPU. En el modo de 32 bits, los 32 registros de coma flotante se vuelven de 32 bits de ancho cuando se utilizan para contener números de coma flotante de precisión simple. Cuando se usa para contener 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 a menos que exista una dependencia de datos o recursos, lo que hace que se detenga. Contiene 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 utilizan el sumador en sus etapas finales de ejecución, imponiendo así límites a la ejecución superpuesta. Así, bajo ciertas condiciones, puede ejecutar hasta tres instrucciones en cualquier momento, una en cada unidad. La FPU puede retirar una instrucción por ciclo.

El sumador y el multiplicador se canalizan. El multiplicador tiene una canalización de multiplicadores de cuatro etapas. Se sincroniza al doble de la frecuencia de reloj del microprocesador para un rendimiento adecuado y utiliza lógica dinámica para lograr la frecuencia de reloj alta. 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. La división y 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 búsqueda de traducción de 48 entradas para traducir direcciones virtuales . El R4000 usa una dirección virtual de 64 bits, pero solo implementa 40 de los 64 bits para 1 TB de memoria virtual . Los bits restantes se comprueban para asegurarse de 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é secundario

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 instrucción dividida y una caché de datos. En la última configuración, cada caché puede tener una capacidad de 128 KB a 2 MB. La caché secundaria está físicamente indexada, etiquetada físicamente y tiene un tamaño de línea programable de 128, 256, 512 o 1024 bytes. El controlador de caché está activo. La caché se crea a partir de una memoria de acceso aleatorio estática estándar (SRAM). Los buses de datos y etiquetas están protegidos con ECC.

Sistema de autobús

El R4000 utiliza un bus de sistema de 64 bits llamado bus SysAD. El bus SysAD era un bus multiplexado de datos y direcciones, es decir, utilizaba el mismo conjunto de cables para transferir datos y direcciones. Si bien esto reduce el ancho de banda, también es menos costoso que proporcionar un bus de direcciones separado, 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 de la matriz y detalles del proceso

El R4000 contiene 1,2 millones de transistores. Fue diseñado para un proceso de semiconductor de óxido de metal complementario de metal (CMOS) de dos capas de 1,0 μm . Como MIPS era una empresa sin fábrica, el R4000 fue fabricado por socios en sus propios procesos, que tenían un tamaño de característica mínimo de 0,8 μm.

Reloj

El R4000 genera las diversas señales de reloj a partir de una señal de reloj maestro generada externamente. Para la frecuencia de operación, el R4000 multiplica la señal del reloj maestro por dos mediante el uso de un bucle de bloqueo de fase (PLL) en el troquel .

embalaje

El R4000PC está empaquetado en una matriz de rejilla de clavijas cerámicas (CPGA) de 179 pines . El R4000SC y el R4000MC están empaquetados en una matriz de cuadrícula de clavijas escalonadas de cerámica de 447 pines (SPGA). El pin del R4000MC es diferente del R4000SC, con algunos pines que no se utilizan en el R4000SC se utilizan para señales para implementar la coherencia de la caché en el R4000MC. El pin-out del R4000PC es similar al de los microprocesadores R4200 y R4600 empaquetados con PGA . Esta característica permite que un sistema correctamente diseñado utilice cualquiera de los tres microprocesadores.

R4400

Un ejemplo de un microprocesador R4400MC fabricado por Toshiba
Disparo de matriz NEC VR4400MC

El R4400 es un desarrollo posterior del R4000. Se anunció a principios de noviembre de 1992. Antes se habían enviado muestras del microprocesador a clientes seleccionados, con disponibilidad general en enero de 1993. El R4400 funciona en frecuencias de reloj de 100, 133, 150, 200 y 250 MHz. La única mejora importante con respecto al R4000 son las cachés primarias más grandes, que se duplicaron en capacidad a 16 KB cada una de 8 KB cada una. Contenía 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 lógica a Cypress Semiconductor donde se descontinuaron los productos de microprocesador 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. A mediados de 1995, una parte de 250 MHz comenzó a muestrear. Se fabricó en un proceso de metal de cuatro capas de 0,35 μm. NEC también produjo el MR4401, un módulo de múltiples chips de cerámica (MCM) que contenía un VR4400SC con diez chips SRAM de 1 Mbit que implementaron una caché secundaria de 1 MB. El MCM era compatible con pines con el R4x00PC. La primera versión, una parte de 150 MHz, se anunció en 1994. En 1995, se anunció una parte de 200 MHz.

Toshiba comercializó su versión como TC86R4400. A mediados de 1994 se introdujo una pieza de 200 MHz que contiene 2,3 millones de transistores y mide 134 mm 2 fabricada en un proceso de 0,3 μm. El R4400PC tenía un precio de $ 1,600, el R4400SC de $ 1,950 y el R4400MC de $ 2,150 en cantidades de 10,000.

Usuarios

El R4400 es utilizado por:

Conjuntos de chips

Los microprocesadores R4000 y R4400 se interconectaron con el sistema mediante ASIC personalizados o mediante conjuntos de chips disponibles comercialmente. Los proveedores de sistemas como SGI desarrollaron sus propios ASIC para sus sistemas. Los conjuntos de chips comerciales fueron desarrollados, fabricados y comercializados por empresas como Toshiba con su conjunto de chips Tiger Shark, que proporcionaba un bus compatible con i486 .

Notas

Referencias