R5000


El R5000 es un microprocesador de 64 bits, little endian (mipsel) superescalar , de ejecución en orden, de diseño de 2 problemas , que implementa la arquitectura de conjunto de instrucciones MIPS IV (ISA) desarrollada por Quantum Effect Design (QED) en 1996. El proyecto fue financiado por MIPS Technologies, Inc (MTI), también el licenciante. Luego, MTI otorgó la licencia del diseño a Integrated Device Technology (IDT), NEC , NKK y Toshiba . El R5000 sucedió al QED R4600 y R4700 como su microprocesador integrado de gama alta insignia. IDT comercializó su versión del R5000 como 79RV5000, NEC como VR5000, NKK como NR5000 y Toshiba como TX5000. El R5000 se vendió a PMC-Sierra cuando la empresa adquirió QED. Los derivados del R5000 todavía están en producción hoy [ ¿cuándo? ] para sistemas integrados.

Los usuarios del R5000 en estaciones de trabajo y servidores fueron Silicon Graphics, Inc. (SGI) y Siemens-Nixdorf . SGI usó el R5000 en sus estaciones de trabajo de gama baja O2 e Indy . La R5000 también se utilizó en sistemas integrados como enrutadores de red e impresoras de alta gama. El R5000 se abrió camino en la industria de los juegos de arcade, Atari [1] y Midway utilizaron placas base con R5000 . [2] Inicialmente el Cobalt Qube y Cobalt RaQutilizó un modelo derivado, el RM5230 y el RM5231. El Qube 2700 usó el microprocesador RM5230, mientras que el Qube 2 usó el RM5231. Los sistemas RaQ originales estaban equipados con CPU RM5230 o RM5231, pero los modelos posteriores utilizaron chips AMD K6-2 y, finalmente, CPU Intel Pentium III para los modelos finales.

La hoja de ruta original requería una operación de 200 MHz a principios de 1996, 250 MHz a fines de 1996, sucedida en 1997 por R5000A. El R5000 se introdujo en enero de 1996 y no logró alcanzar los 200 MHz, superando los 180 MHz. Cuando se posiciona como un microprocesador de estación de trabajo de gama baja, la competencia incluía IBM y Motorola PowerPC 604 , HP PA-7300LC e Intel Pentium Pro .

El R5000 es un diseño superescalar bidireccional que ejecuta instrucciones en orden . El R5000 podría emitir simultáneamente un entero y una instrucción de punto flotante. Tenía una tubería simple para instrucciones enteras y otra para punto flotante para ahorrar transistores y área de matriz para reducir costos. El R5000 no realizó una predicción de rama dinámica por razones de costo. En su lugar, utiliza un enfoque estático, utilizando las sugerencias codificadas por el compilador en las instrucciones de probabilidad de bifurcación introducidas por primera vez en la arquitectura MIPS II para determinar la probabilidad de que se tome una bifurcación.

El R5000 tenía grandes cachés L1 , una característica distintiva de QED, cuyos diseñadores preferían diseños simples con grandes cachés. El R5000 tenía dos cachés L1, uno para instrucciones y otro para datos. Ambos tienen una capacidad de 32 KB. Las cachés son asociativas de conjuntos bidireccionales , tienen un tamaño de línea de 32 bytes y están indexadas virtualmente, etiquetadas físicamente . Las instrucciones se codificaron previamente a medida que ingresan a la caché de instrucciones agregando cuatro bits a cada instrucción. Estos cuatro bits especifican si se pueden emitir juntos y con qué unidad de ejecución se ejecutan. Este problema de instrucción superescalar ayudó al mover parte de la verificación de dependencia y conflicto fuera de la ruta crítica.

La unidad entera ejecuta la mayoría de las instrucciones con una latencia y un rendimiento de un ciclo, excepto para multiplicar y dividir. Las multiplicaciones de 32 bits tienen una latencia de cinco ciclos y un rendimiento de cuatro ciclos. Las multiplicaciones de 64 bits tienen cuatro ciclos adicionales de latencia y la mitad del rendimiento. Las divisiones tienen una latencia y un rendimiento de 36 ciclos para enteros de 32 bits, y para enteros de 64 bits, se incrementan a 68 ciclos.


NEC VR5000.
Disparo de matriz NEC VR5000.
Troquel QED RM52x1.