Reduced instruction set computing
En arquitectura computacional, RISC (del inglés Reduced Instruction Set Computer, en español Computador con Conjunto de Instrucciones Reducidas) es un tipo de diseño de CPU generalmente utilizado en microprocesadores o microcontroladores con las siguientes características fundamentales:
- Instrucciones de tamaño fijo y presentadas en un reducido número de formatos.
- Sólo las instrucciones de carga y almacenamiento acceden a la memoria de datos.
Además estos procesadores suelen disponer de muchos registros de propósito general.
El objetivo de diseñar máquinas con esta arquitectura es posibilitar la segmentación y el paralelismo en la ejecución de instrucciones y reducir los accesos a memoria. Las máquinas RISC protagonizan la tendencia actual de construcción de microprocesadores. PowerPC, DEC Alpha, MIPS, ARM, SPARC son ejemplos de algunos de ellos.
RISC es una filosofía de diseño de CPU para computadora que está a favor de conjuntos de instrucciones pequeñas y simples que toman menor tiempo para ejecutarse. El tipo de procesador más comúnmente utilizado en equipos de escritorio, el x86, está basado en CISC en lugar de RISC, aunque las versiones más nuevas traducen instrucciones basadas en CISC x86 a instrucciones más simples basadas en RISC para uso interno antes de su ejecución.
La idea fue inspirada por el hecho de que muchas de las características que eran incluidas en los diseños tradicionales de CPU para aumentar la velocidad estaban siendo ignoradas por los programas que eran ejecutados en ellas. Además, la velocidad del procesador en relación con la memoria de la computadora que accedía era cada vez más alta. Esto conllevó la aparición de numerosas técnicas para reducir el procesamiento dentro del CPU, así como de reducir el número total de accesos a memoria.
Terminología más moderna se refiere a esos diseños como arquitecturas de carga-almacenamiento.
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
Filosofía de diseño antes de RISC
Uno de los principios básicos de diseño para todos los procesadores es añadir velocidad al proveerles alguna memoria muy rápida para almacenar información temporalmente, estas memorias son conocidas como registros. Por ejemplo, cada CPU incluye una orden para sumar dos números. La operación básica de un CPU sería cargar esos dos números en los registros, sumarlos y almacenar el resultado en otro registro, finalmente, tomar el resultado del último registro y devolverlo a la memoria principal.La última representación de este tipo de diseño puede ser vista en dos equipos, el MOS 6502 por un lado, y el VAX en el otro. El chip 6502 de $25 USD efectivamente tenía solamente un registro, y con la configuración cuidadosa de la interfaz de memoria fue capaz de sobrepasar diseños corriendo a velocidades mayores (como el Zilog Z80 a 4MHz). El VAX era un minicomputador que en una instalación inicial requería 3 gabinetes de equipo para un solo CPU, y era notable por la sorprendente variedad de estilos de acceso a memoria que soportaba, y el hecho de que cada uno de éstos estaba disponible para cada instrucción.
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
Características
En pocas palabras esto significa que para cualquier nivel de desempeño dado, un chip RISC típicamente tendrá menos transistores dedicados a la lógica principal. Esto permite a los diseñadores una flexibilidad considerable; así pueden, por ejemplo:
- Incrementar el tamaño del conjunto de registros.
- Mayor velocidad en la ejecución de instrucciones.
- Implementar medidas para aumentar el paralelismo interno.
- Añadir cachés enormes.
- Añadir otras funcionalidades, como E/S y relojes para minicontroladores.
- Construir los chips en líneas de producción antiguas que de otra manera no serían utilizables.
- No ampliar las funcionalidades, y por lo tanto ofrecer el chip para aplicaciones de bajo consumo de energía o de tamaño limitado.
Las características que generalmente son encontradas en los diseños RISC son:
- Codificación uniforme de instrucciones (ejemplo: el código de operación se encuentra siempre en la misma posición en cada instrucción, la cual es siempre una palabra), lo que permite una decodificación más rápida.
- Un conjunto de registros homogéneo, permitiendo que cualquier registro sea utilizado en cualquier contexto y así simplificar el diseño del compilador (aunque existen muchas formas de separar los ficheros de registro de entero y coma flotante).
- Modos de direccionamiento simple con modos más complejos reemplazados por secuencias de instrucciones aritméticas simples.
- Los tipos de datos soportados en el hardware (por ejemplo, algunas máquinas CISC tiene instrucciones para tratar con tipos byte, cadena) no se encuentran en una máquina RISC.
Los diseños RISC también prefieren utilizar como característica un modelo de memoria Harvard, donde los conjuntos de instrucciones y los conjuntos de datos están conceptualmente separados; esto significa que el modificar las direcciones donde el código se encuentra pudiera no tener efecto alguno en las instrucciones ejecutadas por el procesador (porque la CPU tiene separada la instrucción y el caché de datos, al menos mientras una instrucción especial de sincronización es utilizada). Por otra parte, esto permite que ambos cachés sean accedidos separadamente, lo que puede en algunas ocasiones mejorar el rendimiento.
Muchos de esos diseños RISC anteriores también compartían una característica no muy amable, el slot de salto retardado (Delay Slot). Un slot de salto retardado es un espacio de instrucción siguiendo inmediatamente un salto. La instrucción en este espacio es ejecutada independientemente de si el salto se produce o no (en otras palabra el salto es retardado). Esta instrucción mantiene la ALU de la CPU ocupada por el tiempo extra normalmente necesario para ejecutar una brecha. Para utilizarlo, recae en el compilador la responsabilidad de reordenar las instrucciones de manera que el código sea coherente para ejecutar con esta característica. En nuestros días el slot de salto retardado se considera un desafortunado efecto colateral de la estrategia particular por implementar algunos diseños RISC. Es por esto que los diseños modernos de RISC, tales como ARM, PowerPC, y versiones más recientes de SPARC y de MIPS, generalmente eliminan esta característica.
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
Primeros diseños RISC
El primer sistema que pudiera ser considerado en nuestros días como RISC no lo era así en aquellos días; era la supercomputadora CDC 6600, diseñada en 1964 por Seymour Cray.
Cray la diseñó como un CPU para cálculos a gran escala (con 74 códigos, comparada con un 8086 400, además de 12 computadores simples para manejar los procesos de E/S (la mayor parte del sistema operativo se encontraba en uno de éstos).
El CDC 6600 tenía una arquitectura de carga/almacenamiento con tan solo dos modos de direccionamiento. Había once unidades de canalización funcional para la aritmética y la lógica, además de cinco unidades de carga y dos unidades de almacenamiento (la memoria tenía múltiples bancos para que todas las unidades de carga/almacenamiento pudiesen operar al mismo tiempo). El nivel promedio de operación por ciclo/instrucción era 10 veces más rápido que el tiempo de acceso a memoria.
El proyecto RISC de la Universidad de Berkeley comenzó en 1980 bajo la dirección de David A. Patterson, basándose en la obtención de rendimiento a través del uso de la canalización y un agresivo uso de los registros conocido como ventanas de registros. En una CPU normal se tienen un pequeño número de registros, un programa puede usar cualquier registro en cualquier momento. En una CPU con ventanas de registros, existen un gran número de registros (138 en el RISC-I), pero los programas solo pueden utilizar un pequeño número de estos (32 en el RISC-I) en cualquier momento.
Un programa que se limita asimismo a 32 registros por procedimiento puede hacer llamadas a procedimientos muy rápidas: la llamada, y el regreso, simplemente mueven la ventana de 32 registros actual para limpiar suficiente espacio de trabajo para la subrutina, y el regreso restablece esos valores.
El primer intento por hacer una CPU basada en el concepto RISC fue hecho en IBM el cual comenzó en 1975, precediendo a los dos proyectos anteriores. Nombrado como proyecto RAN, el trabajo llevó a la creación de la familia de procesadores IBM 801, la cual fue utilizada ampliamente en los equipos de IBM. El 801 fue producido eventualmente en forma de un chip como ROMP en 1981, que es la abreviatura de Research Office Products Division Mini Processor. Como implica el nombre, esta CPU fue diseñada para tareas pequeñas, y cuando IBM lanzó el diseño basado en el IBM RT-PC en 1986, el rendimiento no era aceptable. A pesar de esto, el 801 inspiró varios proyectos de investigación, incluyendo algunos nuevos dentro de IBM que eventualmente llevarían a su sistema IBM POWER.
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
RISC moderno
Hoy en día los microcontroladores y CPU RISC representan a la vasta mayoría de todos los CPU utilizados. La técnica de diseño RISC ofrece poder incluso en medidas pequeñas, y esto ha venido a dominar completamente el mercado de CPU integrados de bajo consumo de energía. Los CPU integrados son por mucho los procesadores más comunes en el mercado: considera que una familia completa con una o dos computadoras personales puede poseer varias docenas de dispositivos con procesadores integrados. RISC se ha apoderó completamente del mercado de estación de trabajo. Después del lanzamiento de la SUN SPARCstation los otros proveedores se apuraron a competir con sus propias soluciones basadas en RISC. Aunque hacia 2006-2010 las estaciones de trabajo pasaron a la arquitectura x86-64 de Intel y AMD. Incluso el mundo de las computadoras centrales está ahora basado completamente en RISC.
Esto es sorprendente en vista del dominio del Intel x86 y x86 64 en el mercado de las computadoras personales de escritorio (ahora también en el de estaciones de trabajo), ordenadores portátiles y en servidores de la gama baja. Aunque RISC fue capaz de avanzar en velocidad muy rápida y económicamente.
Los diseños RISC han llevado a un gran número de plataformas y arquitecturas al éxito, algunas de las más grandes:
- La línea MIPS Technologies Inc., que se encontraba en la mayoría de las computadoras de Silicon Graphics hasta 2006, y estuvo en las consolas ya descatalogadas Nintendo 64, PlayStation y PlayStation 2. Actualmente se utiliza en la PlayStation Portable y algunos routers.
- La serie IBM POWER, utilizado principalmente por IBM en Servidores y superordenadores.
- La versión PowerPC de Motorola e IBM (una versión de la serie IBM POWER) utilizada en los ordenadores AmigaOne, Apple Macintosh como el iMac, eMac, Power Mac y posteriores (hasta 2006). Actualmente se utiliza en muchos sistemas empotrados en automóviles, routers, etc, así como en muchas consolas de videojuegos, como la Playstation 3, Xbox 360 y Wii.
- El procesador SPARC y UltraSPARC de Sun Microsystems y Fujitsu, que se encuentra en sus últimos modelos de servidores (y hasta 2008 también en estaciones de trabajo).
- El PA-RISC y el HP/PA de Hewlett-Packard, ya descatalogados.
- El DEC Alpha en servidores HP AlphaServer y estaciones de trabajo AlphaStation, ya descatalogados.
- El ARM – El paso de hardware de instrucciones x86 en operaciones RISC llega a ser significativo en el área y la energía para dispositivos móviles e integrados. Por lo tanto, los procesadores ARM dominan en PALM, Nintendo DS, Game Boy Advance y en múltiples PDAs, Apple iPods, Apple iPhone, iPod Touch (Samsung ARM1176JZF, ARM Cortex-A8, Apple A4), Apple iPad (Apple A4 ARM -based SoC), videoconsolas como Nintendo DS (ARM7TDMI, ARM946E-S), Nintendo Game Boy Advance (ARM7TDMI).
- El Atmel AVR usado en gran variedad de productos, desde mandos de la Xbox a los coches de la empresa BMW.
- La plataforma SuperH de Hitachi, originalmente usada para las consolas Sega Super 32X, Saturn y Dreamcast, ahora forman parte de el corazon de muchos equipos electrónicos para el consumo.SuperH es la plataforma base de el grupo Mitsubishi - Hitachi. Estos dos grupos, unidos en 2002, dejaron aparte la propia arquitectura RISC de Mitsubishi, el M32R.
- Los procesadores XAP usados en muchos chips wireless de poco consumo (Bluetooth, wifi) de CSR.
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
PowerPC
PowerPC (usualmente abreviada PPC) es el nombre original de la arquitectura de computadoras de tipo RISC, que fue desarrollada por IBM, Motorola, y Apple.
Los procesadores de esta familia fueron producidos por IBM y Freescale Semiconductor (que era la división de semiconductores y microprocesadores de Motorola), siendo utilizados principalmente en ordenadores o computadores Macintosh de Apple Computer hasta el año 2006 y en varios modelos IBM.
Historia
La filosofía RISC fue introducida por el científico informático John Cocke en la década de los años 70s. En 1980, IBM comienza el proyecto IBM 801 donde se derivaría el primer procesador RISC, el proyecto estuvo a cargo del mismo John Cocke. Este procesador RISC ofreció un rendimiento bastante malo, a veces se lo denominaba "chagar" debido al gran consumo de recursos de sus aplicaciones, lo cual obligó a IBM a emprender el Proyecto América, con el cual lograr crear el primer procesador de la arquitectura Power (bajo consumo de energía pero potente procesador).
En 1991, IBM se dio cuenta del potencial de su diseño Power y buscó una alianza con Apple y Motorola para impulsar su creación; entonces surgió la alianza AIM (Apple, IBM y Motorola, actualmente Freescale) cuyo objetivo fue desbancar el dominio Microsoft e Intel que ofrecía sistemas basados en 80386 y 80486.
Implementaciones del PowerPC
El PowerPC ha sido una de las arquitecturas más extendidas gracias a su alto rendimiento y su implementación tecnológica. Éste es un pequeño listado de las implementaciones del PowerPC a lo largo de su historia.
- 601 MPC601 50 y 66 MHz
- 602 productos para consumidor (bus de datos y direcciones multiplexados)
- 603 para ordenadores portátiles
- 603e
- 604
- 604e
- 620 la primera implementación de 64 bits
- x704 BiCOMOS implementación PowerPC por Exponential Technologies
- 750 G3 (1997) 233 MHz y 266 MHz
- 7400 G4 (1999) 350 MHz
- 750FX anunciado por IBM en 2001 y disponible en 2002 en 1 GHz.
- 970 G5 (2003) implementación 64-bit derivada del IBM Power 4. Velocidades de 1,4 GHz, 1,6 GHz, 1,8 GHz, 1,9 GHz, 2,0 GHz, 2,1 GHz, 2,3 GHz, 2,5 GHz, y 2,7 GHz
- Versiones para sistemas embebidos:
- e200
- e300
- e500
- e600
- PPC400:401, 403, 405, 440, 450, 460
PowerPC 601
En 1993 aparecio la primera generación PowerPC con el nombre clave PowerPC 601, que fue desarrollada por la alianza Apple, IBM y Motorola. En Austin, fue el lugar donde desarrollaron el procesador, y en el diseño utilizaron la interfaz de bus del Motorola 88110. El PowerPC 601 tuvo bastante éxito.
PowerPC 7447
El PowerPC 7447 es un procesador de 32 bits de un solo núcleo que fue usado extensamente por Apple en sus líneas PowerBook, iBook y Mac mini, desde finales del año 2003 hasta finales del 2005, justo antes de cambiar a procesadores Intel. Estos procesadores se usaron en velocidades de 1 GHz en el PowerBook de 12" DVI hasta 1.67 GHz en el PowerBook de 15" y 17" dual layer. Estos últimos usaron una variación llamada 7447a (sin cache L3). Apple denominó a este procesador como G4, al igual que las versiones anteriores como el 7455 (modelos con Cache L3). Lo destacable de un procesador G4 era que incluía por primera vez el set de instrucciones Altivec o Velocity Engine como lo publicitaba Apple, el cual no estaba disponible en la generación anterior de procesadores conocidos como G3. El G5 ó 750 también incluía este set de instrucciones pero era de 64 bits. El G5 consumía más energía que el G4 y se calentaba considerablemente más, por lo que nunca fue utilizado en máquinas pequeñas o portátiles, y por eso coexistió con el 7447.
Las diferencias entre el 7447 y el 7455 (su predecesor) es que el primero cuenta con el doble de caché secundario o L2 ayudando a mantener al procesador bien alimentado con instrucciones y datos, y no posee cache de nivel 3 ó L3.
PowerPC 970
También se denomina PowerPC G5 al ser usado, en su primera versión, por los Power Mac G5. Es un microprocesador de 64 bits. Existe una segunda versión denominada PowerPC 970FX que mejora ligeramente el rendimiento. El último modelo del PPC970, es el PPC970MP (dual core) con 1mb de cache L2, habiendo sido cancelado el PPC970GX (versión de un solo núcleo del 970MP).
Este microprocesador es utilizado en algunos supercomputadores.
Xenon
El Xenon es el núcleo de la consola Xbox 360 de Microsoft. Está basado en la ISA PowerPC, cuenta con tres núcleos independientes y simétricos a 3,2 GHz, con 6 hilos y con 32 KiB de caché L1. Posee un caché L2 de 1024 KB a 1,6 GHz e implementa una derivación de las extensiones VMX, VMX128 (las mismas extensiones VMX, pero con 128 registros y capacidad de multihilo simultáneo). Proporciona una velocidad de bus a 5,4 GHz y hasta 21,6 GiB/s de ancho de banda.
Cell Broadband Engine
En el 2001, Sony, Toshiba e IBM, comenzaron a desarrollar un procesador para servidores, consolas de videojuegos y equipos portátiles. El resultado fue el Cell Broadband Engine. Su núcleo está basado en el ISA Power, cuenta con 8 coprocesadores que permiten acelerar de forma paralela las operaciones vectoriales y de multimedia.
Las primeras versiones del Cell operan a frecuencias de 4,8 GHz (cabe mencionar que la Playstation 3 corre a 3,2 GHz y existen prototipos a 65 nm que trabajan a 6 GHz).
IBM Broadway
Empleado como núcleo de la consola Wii de Nintendo lanzada en 2006, el procesador Broadway es un IBM PowerPC, nombre en clave "Broadway" (IBM Broadway) con tecnología SOI CMOS de 90 nm que corre a 729 MHz.
Plataformas compatibles con PowerPC
Este microprocesador está diseñado con base en la arquitectura POWER de IBM con algunos componentes tomados del microprocesador Motorola 68000 para darle compatibilidad con arquitectura de los ordenadores de Apple.
En ella pueden ser ejecutados, al menos, los sistemas operativos:
- AIX
- AmigaOS 4
- MorphOS
- BeOS (Versiones Antiguas. Descontinuado)
- FreeBSD
- Linux
- Mac OS (Versiones Antiguas. Descontinuado)
- Mac OS X (Desde 10.1 hasta 10.5.x)1
- NetBSD
- OpenBSD
- QNX
- VxWorks
- Windows NT 3.51
Distribuciones GNU/Linux
Las siguientes son algunas de las distribuciones GNU/Linux que soportan PowerPC:
- Debian
- CentOS hasta la versión 4 Beta, todavía no ha salido una versión estable para PowerPC.
- CRUX
- Debian GNU/Linux
- Fedora desde Fedora 8.
- Gentoo
- mkLinux, todas sus versiones
- openSUSE
- Slackintosh, distribución basada en Slackware, última versión 12.1.
- Ubuntu y Kubuntu están disponibles de manera oficial para esta arquitectura hasta la versión 6.10 , y de forma no oficial de la 7.04 en adelante.
- Yellow Dog Linux
Situación actual
El 6 de junio de 2005, Steve Jobs confirmó el rumor que venía comentándose en aquellos días; Apple se cambiaba a Intel. La excusa de Jobs fue que los procesadores PowerPC padecen serios problemas de temperatura, etcétera. Para el asombro de todos los presentes a la WWDC 2005, Steve Jobs destacó que Mac OS X tuvo una "Doble vida secreta" ya que el mismo había sido compilado tanto para x86 como para PowerPC desde su primera versión.
Pero esto no significa que la arquitectura PowerPC se vaya a quedar en el olvido, ya que el propósito de IBM es seguir produciéndolos a pesar de no contar ya con su mayor cliente, Apple[cita requerida]. Las videoconsolas de nueva generación más importantes: Microsoft Xbox 360, Sony PS3 Y Nintendo Wii van equipadas con un procesador de arquitectura PowerPC, aunque difieren en cuanto a potencia y composición. Además, muchos supercomputadores están basados en microprocesadores PPC como las dos primeras máquinas de España: Magerit y MareNostrum.
La arquitectura PowerPC, además, mantiene un amplio uso en sistemas SoC (System On Chip) y sistemas embebidos en general, como por ejemplo los Mars Rovers de la misión Mars Exploration Rover de la NASA. Freescale y AMCC son los principales fabricantes de este tipo de CPUs. Algunas CPUs de sistemas embebidos también se han utilizado (o se están ultilizando) en placas bases de ordenadores de bajo consumo (EFIKA 5K2, Sam440ep).
Ordenadores con CPU PowerPC
Fabricante | Modelo | Año | CPU |
---|---|---|---|
Apple Inc. | Macintosh: | 1994-2006
|
601, 603, 604, G3, G4 y G5
|
IBM | * RS/6000/pSeries/System p
|
1994- | 601 a G5 |
Power Computing y otros | PowerWave, PowerTower y otros Mac clónicos |
1995-1997 | 601, 603/e y 604/e |
Be Incorporated | BeBox | 1995-1997 | 603/603e |
Amiga Inc. y Eyetech | AmigaOne | 2002-2004 | G3 y G4 |
Genesi |
|
|
|
ACube Systems Srl |
|
|
|
TerraSoft (ahora Fixstars) y MAI Fixstars |
|
|
|
A-EON |
AmigaOne X1000 |
2012- |
P.A. Semi PA6T |
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
MIPS
Con el nombre de MIPS (siglas de Microprocessor without Interlocked Pipeline Stages) se conoce a toda una familia de microprocesadores de arquitectura RISC desarrollados por MIPS Technologies.
Los diseños del MIPS son utilizados en la línea de productos informáticos de SGI; en muchos sistemas embebidos; en dispositivos para Windows CE; routers Cisco; y videoconsolas como la Nintendo 64 o las Sony PlayStation, PlayStation 2 y PlayStation Portable.
Las primeras arquitecturas MIPS fueron implementadas en 32 bits (generalmente rutas de datos y registros de 32 bits de ancho), si bien versiones posteriores fueron implementadas en 64 bits. Existen cinco revisiones compatibles hacia atrás del conjunto de instrucciones del MIPS, llamadas MIPS I, MIPS II, MIPS III, MIPS IV y MIPS 32/64. En la última de ellas, la MIPS 32/64 Release 2, se define a mayores un conjunto de control de registros. Así mismo están disponibles varias "extensiones", tales como la MIPS-3D, consistente en un simple conjunto de instrucciones SIMD en coma flotante dedicadas a tareas 3D comunes, la MDMX(MaDMaX) compuesta por un conjunto más extenso de instrucciones SIMD enteras que utilizan los registros de coma flotante de 64 bits, la MIPS16 que añade compresión al flujo de instrucciones para hacer que los programas ocupen menos espacio (presuntamente como respuesta a la tecnología de compresión Thumb de la arquitectura ARM) o la reciente MIPS MT que añade funcionalidades multithreading similares a la tecnología HyperThreading de los procesadores Intel Pentium 4.
Familia de CPU's
El primer modelo de CPU comercial de MIPS, el R2000, fue anunciado en 1985. Añadía instrucciones multiciclo para la multiplicación y la división en una unidad independiente integrada en el procesador. Asimismo se añadieron instrucciones para enviar los resultados de esta unidad al núcleo; las cuales necesitaban bloqueos.
El R2000 podía ser iniciado tanto en formato big-endian como little-endian. Tenía 32 registros de propósito general de 32 bits, pero no contaba con un registro de estado, lo que suponía un considerable cuello de botella. Este problema lo compartía con el AMD 29000 y el DEC Alpha. Al contrario que otros registros, el contador de programa no es directamente accesible.
El R2000 además soportaba hasta cuatro co-procesadores, uno de los cuales estaba integrado en la CPU principal para el manejo de excepciones e interrupciones, mientras que los otros tres estaban destinados a otros usos. Una opción era añadir la unidad de punto flotante R2010, que contaba con 32 registros de 32 bits que podían ser empleados como tales para manejar números en simple precisión o bien como 16 registros de 64 bits en doble precisión.
El R3000 sucedería al R2000 en 1988, añadiendo una caché de 32 kB (pronto aumentada a 64 kB) para instrucciones y datos, junto con el soporte de "coherencia caché" para el uso multiprocesador. Mientras hubo defectos en el soporte multiprocesador del R3000, MIPS se las siguió arreglando para que formase parte de varios diseños exitosos de multiprocesador. El R3000 también incluía una unidad de manejo de memoria (MMU) integrada, característica común entre los procesadores del momento. El R3000 fue el primer diseño exitoso de MIPS en el mercado, y finalmente fueron fabricadas más de 1 millón de unidades. El R3000A, utilizado en la extremadamente exitosa Sony PlayStation, fue una versión acelerada hasta los 40 MHz. Al igual que el R2000, el R3000 fue emparejado con la FPU R3010. Pacemips fabricó el R3400 e IDT el R3500, siendo ambos modelos procesadores R3000s con la FPU R3010 en un único chip. El Toshiba R3900 fue el primer sistema de chip único para los primeros ordenadores de mano con Windows CE.
En la serie R4000, presentada en 1991, se extendió el juego de instrucciones del MIPS para constituir una auténtica arquitectura de 64 bits y se movió la FPU al mismo circuito para crear un sistema de chip único, operando a una velocidad de reloj radicalmente superior (inicialmente 100 MHz). Sin embargo, para poder alcanzar tal frecuencia las cachés fueron reducidas a 8 kB cada una, siendo necesarios tres ciclos de reloj para acceder a ellas. Las altas frecuencias de trabajo fueron alcanzadas gracias a la técnica de segmentación profunda (llamada entonces super-segmentación). Tras el R4000 nació un gran número de versiones mejoradas, incluyendo la R4400 de 1993 con cachés de 16 kB, operaciones de 64 bits sin apenas errores y un controlador para otra caché externa (L2) de 1 MB.
MIPS, actualmente una división de SGI llamada MTI, diseñó la versión de bajo coste R4200, y posteriormente la aún más barata R4300, consistente en un R4200 con bus externo de 32 bits. La Nintendo 64 usa una CPU NEC VR4300 basada en el MIPS de bajo coste R4300i.1
Quantum Effect Devices (QED), una compañía aparte fundada por antiguos ingenieros de MIPS, diseñaron el R4600 "Orion", el R4700 "Orion", el R4650 y el R5000. Mientras que el R4000 aumentó la frecuencia a cambio de reducir capacidad de caché, los diseños de QED destacaron por las grandes cachés accesibles en sólo dos ciclos de reloj y por el uso eficiente del área de silicio. Los R4600 y R4700 fueron utilizados en las versiones de bajo coste de las estaciones de trabajo SGI Indy así como en los primeros routers Cisco basados en el MIPS, aquellos de las series 36x0 y 7x00. El R4650 fue empleado en los aparatos originales de WebTV (ahora Microsoft TV). La FPU R5000 trabajaba de forma más eficiente y flexible con números en simple precisión que la R4000, y como resultado, con similar hardware gráfico, las SGI Indy que montaban la FPU R5000 ofrecían mucho mejor rendimiento gráfico que las que contaban con la R4400. SGI rebautizó a las viejas tarjetas gráficas que incorporaron la R5000 para remarcar la mejora. QED posteriormente diseñó las familias RM7000 y RM9000 para sistemas embebidos como redes e impresoras láser. QED fue adquirida por el fabricante de semiconductores PMC-Sierra en agosto de 2000, siendo ésta la última compañía en invertir en la arquitectura MIPS.
El R8000 (1994) fue el primer diseño MIPS superescalar, capaz de ejecutar dos operaciones de ALU y otras dos de memoria en cada ciclo de reloj. El diseño se plasmó en seis chips: una unidad entera (con dos cachés de 16 KB, una para instrucciones y otra L1 de datos), una unidad de punto flotante, tres RAM de caché secundaria totalmente personalizables (dos para accesos a caché secundaria y otra para bus), y un controlador de caché ASIC. El diseño tenía dos unidades segmentadas de suma-multiplicación en doble precisión, las cuales recibían el flujo de datos de la caché secundaria externa de 4 MB. El R8000 fue montado en los servidores SGI Power Challenge a mediados de los 90 y posteriormente en las estaciones de trabajo Power Indigo2. Su rendimiento limitado en operaciones enteras y su elevado coste lo hicieron impopular entre la mayoría de los usuarios, si bien el buen rendimiento de su FPU fue aprovechado por los usuarios científicos; el R8000 estuvo apenas un año en el mercado.
En 1995, fue lanzado el R10000. Este procesador era un diseño de chip único, con mayor velocidad de reloj que el R8000, y mayores cachés primarias de 32 kB para instrucciones y datos. Era también superescalar, pero su gran innovación fue ser "out-of-order". Aún con una FPU más simple, la vasta mejora en las operaciones con enteros, su menor precio y la mayor densidad hicieron del R10000 el preferido por muchos clientes.
Los diseños más recientes se basan en el R10000. El R12000 ha sido fabricado con tecnología mejorada para comprimir el chip y operar a mayor velocidad de reloj. La revisión R14000 permitía mayores frecuencias, soporte adicional para DDR SRAM en el chip externo de caché y un FSB de 200 MHz para un mejor transferencia. Las últimas versiones fueron llamadas R16000 y R16000A, caracterizándose por una mayor velocidad de reloj, caché L1 adicional y chips de menor tamaño en comparación con los anteriores.
Modelo | Frecuencia [MHz] | Año | Proceso [µm] | Transistores [millones] | Tamaño del chip [mm²] | Pins E/S | Potencia [W] | Voltaje | Dcache [k] | Icache [k] | Scache [k] |
---|---|---|---|---|---|---|---|---|---|---|---|
R2000 | 8-16.7 | 1985 | 2.0 | 0.11 | -- | -- | -- | -- | 32 | 64 | none |
R3000 | 12-40 | 1988 | 1.2 | 0.11 | 66.12 | 145 | 4 | -- | 64 | 64 | none |
R4000 | 100 | 1991 | 0.8 | 1.35 | 213 | 179 | 15 | 5 | 8 | 8 | 1024 |
R4400 | 100-250 | 1992 | 0.6 | 2.3 | 186 | 179 | 15 | 5 | 16 | 16 | 1024 |
R4600 | 100-133 | 1994 | 0.64 | 2.2 | 77 | 179 | 4.6 | 5 | 16 | 16 | 512 |
R5000 | 150-200 | 1996 | 0.35 | 3.7 | 84 | 223 | 10 | 3.3 | 32 | 32 | 1024 |
R8000 | 75-90 | 1994 | 0.5 | 2.6 | 299 | 591 | 30 | 3.3 | 16 | 16 | 1024 |
R10000 | 150-250 | 1995 | 0.35 | 6.8 | 299 | 599 | 30 | 3.3 | 32 | 32 | 512 |
R12000 | 270-400 | 1998 | 0.18–0.25 | 6.9 | 204 | 600 | 20 | 4 | 32 | 32 | 1024 |
R14000 | 500-600 | 2001 | 0.13 | 7.2 | 204 | 527 | 17 | -- | 32 | 32 | 2048 |
R16000 | 700-800 | 2002 | 0.11 | -- | -- | -- | 20 | -- | 64 | 64 | 4096 |
Note: Estas especificaciones hacen referencia a las configuraciones más comunes. Existen variaciones, sobre todo en las cachés de nivel 2.
Aplicaciones
Entre los fabricantes de estaciones de trabajo basadas en procesadores MIPS destacan SGI, MIPS Computer Systems, Inc., Olivetti, Siemens-Nixdorf, Acer, Digital Equipment Corporation, NEC y DeskStation. Varios sistemas operativos fueron portados a la arquitectura, ejemplos de ello son el SGI IRIX, Microsoft Windows NT (aunque el soporte para MIPS finalizó con el lanzamiento de Windows NT 4.0) y Windows CE, Linux, BSD, UNIX System V, SINIX, MIPS Computer Systems RISC/os, entre otros.
Sin embargo, el uso del MIPS como procesador principal de estaciones de trabajo ha caído, y SGI ha anunciado sus planes de cesar el desarrollo de iteraciones de alto rendimiento de la arquitectura MIPS en favor de procesadores basados en la tecnología Intel IA64 (véase la sección "Otros modelos y planes futuros").
Por otra parte, el uso de microprocesadores MIPS en sistemas embebidos es probable que se mantenga gracias al bajo consumo de energía y características térmicas de las implementaciones integradas, así como a la gran disponibilidad de herramientas de desarrollo y de expertos conocedores de la arquitectura.
Núcleos
En los últimos años gran parte de la tecnología empleada en las distintas generaciones MIPS ha sido ofrecida como diseños de "IP-cores" (bloques de construcción) para sistemas embebidos. Se ofertan los núcleos básicos de 32 y 64 bits, conocidos respectivamente como 4K y 5K respectivamente, y con licencias MIPS32 y MIPS64. Estos núcleos pueden ser combinados con unidades añadidas tales como FPUs, sistemas SIMD, dispositivos de E/S, etc.
Los núcleos MIPS han sido comercialmente exitosos, siendo empleados actualmente en muchas aplicaciones industriales y de consumo. Pueden encontrarse en los más modernos routers Cisco y Linksys , cablemódems y módems ADSL, tarjetas inteligentes, controladoras de impresoras láser, decodificadores de TV, robots, ordenadores de mano, Sony PlayStation 2 y Sony PlayStation Portable.
En móviles y PDA's, sin embargo, el núcleo MIPS fue incapaz de desbancar a su competidor de arquitectura ARM.
Programación y emulación
Existe un simulador MIPS R2000/R3000 totalmente libre llamado SPIM compatible con varios sistemas operativos (específicamente Unix o GNU/Linux; Mac OS X; MS Windows 95, 98, NT, 2000, XP y DOS) ideado para el aprendizaje de la programación en ensamblador MIPS y de los conceptos generales del ensamblador RISC: https://www.cs.wisc.edu/~larus/spim.html
Un emulador MIPS más completo pertenece al proyecto GXemul (anteriormente conocido como Proyecto mips64emul), el cual no sólo emula las diferentes versiones de los microprocesadores MIPS III y superiores (desde el R4000 al R10000), sino también sistemas enteros que utilicen esos procesadores. Por ejemplo, GXemul puede emular tanto una DECstation con un procesador MIPS R4400 (y arrancar en Ultrix) como un SGI O2 con CPU MIPS R10000 (si bien la capacidad de correr Irix es limitada), entre otros, así como también diferentes framebuffers y controladoras SCSI.
El software QEMU es capaz de emular también, entre muchas otras, la arquitectura MIPS y MIPSel, así como ejecutar GNU/Linux en la máquina emulada.
Servicio | Código trampa | Entrada | Salida | Notas |
---|---|---|---|---|
print_int | $v0=1 | $a0= entero a imprimir | imprime a0 en la salida estándar | |
print_string | $v0=4 | $a0= dirección del primer carácter | imprime una cadena de caracterer en la salida estándar | |
sbrk | $v0=9 | $a0= número necesario de bytes | $v0= dirección de memoria reservada | Reserva memoria de la pila |
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
Sun SPARC
SPARC (del inglés Scalable Processor ARChitecture) es una arquitectura RISC big-endian. Es decir, una arquitectura con un conjunto de instrucciones reducidas.
Fue originalmente diseñada por Sun Microsystems y dirigido por el ingeniero Kaa en 1985, se basa en los diseños RISC I y II de la Universidad de California en Berkeley que fueron definidos entre los años 1980 y 1982.
La empresa Sun Microsystems diseñó esta arquitectura y la licenció a otros fabricantes como Texas Instruments, Cypress Semiconductor, Fujitsu, LSI Logic entre otros.
SPARC es la primera arquitectura RISC abierta y como tal, las especificaciones de diseño están publicadas, así otros fabricantes de microprocesadores pueden desarrollar su propio diseño.
Una de las ideas innovadoras de esta arquitectura es la ventana de registros que permite hacer fácilmente compiladores de alto rendimiento y una significativa reducción de memoria en las instrucciones load/store en relación con otras arquitecturas RISC. Las ventajas se aprecian sobre todo en programas grandes.
La cpu SPARC esta compuesta de una unidad entera, UI (Integer Unit) que procesa la ejecución básica y una FPU (Floating-Point Unit) que ejecuta las operaciones y cálculos de reales. La IU y la FPU pueden o no estar integradas en el mismo chip.
Principales características
- Su característica distintiva es utilizar ventanas de registros.
- 32 registros de "enteros" de 32 bits.
- 16 registros de punto flotante de 64 bits (para el caso de doble precisión) que se pueden utilizar como 32 registros de 32 bits (para precisión simple).
- Modos de direccionamiento:
- Inmediato, (constantes de 13 bits).
- Directo, (offset de 13 bits).
- Indirecto, (registro + offset de 13 bits o registro + registro).
- Utiliza instrucciones retardadas (saltos, load y store ).
- Manejo de memoria:
- Espacio virtual de 4 Gigabytes.
- Unidad de manejo de memoria (MMU) que trabaja con páginas de tamaño configurable.
Categorías de Instrucciones
La arquitectura SPARC tiene cerca de 50 instrucciones enteras, unas pocas más que el anterior diseño RISC, pero menos de la mitad del número de instrucciones enteras del 6800 de Motorola.
Las instrucciones de SPARC se pueden clasificar en cinco categorías:
- LOAD y STORE (La única manera de acceder a la memoria). Estas instrucciones usan dos registros o un registro y una constante para calcular la dirección de memoria a direccionar.
- Instrucciones Aritméticas/Lógicas/Shift. Ejecutan operaciones aritméticas, lógicas y de desplazamiento de bits. Estas instrucciones calculan el resultado si es una función de 2 operandos y guardan el resultado en un registro.
- Operaciones del Coprocesador. La IU extrae las operaciones de punto flotante desde las instrucciones del bus de datos y los coloca en la cola para la FPU. La FPU ejecuta los cálculos de punto flotante con un número fijo en unidad aritmética de punto flotante, (el número es dependiente de la aplicación). Las operaciones de punto flotante son ejecutadas concurrentemente con las instrucciones de la IU y con otras operaciones de punto flotante cuando es necesario. La arquitectura SPARC también especifica una interfaz para la conexión de un coprocesador adicional.
- Instrucciones de Control de Transferencia. Estas incluyen jumps, calls, traps y branches. El control de transferencia es retardado usualmente hasta después de la ejecución de la próxima instrucción, así el pipeline no es vaciado porque ocurre un control de tiempo. De este modo, los compiladores pueden ser optimizados por ramas retardadas.
- Instrucciones de control de registros Read/Write. Estas instrucciones se incluyen para leer y grabar el contenido de varios registros de control. Generalmente la fuente o destino está implícito en la instrucción.
Ventanas de registros
Un rasgo único caracteriza al diseño SPARC, es la ventana con solape de registros. El procesador posee mucho más que 32 registros enteros, pero presenta a cada instante 32. Una analogía puede ser creada comparando la ventana de registros con una rueda rotativa. Alguna parte de la rueda siempre está en contacto con el suelo; así al girarla tomamos diferentes porciones de la rueda, (el efecto es similar para el overlap de la ventana de registros). El resultado de un registro se cambia a operando para la próxima operación, obviando la necesidad de una instrucción Load y Store extras.
Se acordó para la especificación de la arquitectura, poder tener 32 registros "visibles" divididos en grupos de 8.
- De r0 a r7 , Registros GLOBALES.
- De r7 a r15, Registros SALIDA.
- De r15 a r23, Registros LOCALES.
- De r24 a r31, Registros ENTRADA.
Los registros globales son "vistos" por todas las ventanas, los locales son solo accesibles por la ventana actual y los registros de salida se solapan con los registros de entrada de la ventana siguiente (los registros de salida para una ventana deben ponerse como registros de entrada para la próxima, y deben estar en el mismo registro).
El puntero de ventana mantiene la pista de cual ventana es la actualmente activa. Existen instrucciones para "abrir" y "cerrar" ventanas, por ejemplo para una instrucción "call", la ventana de registros gira en sentido anti horario; para el retorno desde una instrucción "call", esta gira en sentido horario.
Una interrupción utiliza una ventana fresca, es decir, abre una ventana nueva. La cantidad de ventanas es un parámetro de la implementación, generalmente 7 u 8.
La alternativa más elaborada para circundar lentamente la ventana de registros es colocar los registros durante el tiempo de compilación. Para lenguajes como C, Pascal, etc., esta estrategia es difícil y consume mucho tiempo. Por lo tanto, el compilador es crucial para mejorar la productividad del programa.
"Recientes investigaciones sugieren que la ventana de registros, encontradas en los sistemas SPARC pero no en otras máquinas RISC comerciales, están en condiciones de proveer excelente rendimiento para lenguajes de desarrollo como Lisp y Smalltalk." (R. Blau, P.Foley, etc. 1984).
Traps y Excepciones
El diseño SPARC soporta un set total de traps o interrupciones. Ellos son manejados por una tabla que soporta 128 interrupciones de hardware y 128 traps de software. Sin embargo las instrucciones de punto flotante pueden ejecutarse concurrentemente con la instrucciones enteras, los traps de punto flotante deben ser exactos porque la FPU provee (desde la tabla) las direcciones de las instrucciones que fracasan.
Protección de memoria
Algunas instrucciones SPARC son privilegiadas y pueden ser ejecutadas únicamente mientras el procesador esta en modo supervisor. Estas instrucciones ejecutadas en modo protegido aseguran que los programas de usuario no sean accidentalmente alterados por el estado de la máquina con respecto a sus periféricos y viceversa. El diseño SPARC también proporciona protección de memoria, que es esencial para las operaciones multitarea.
El SPARC tiene muchas similitudes con el diseño de Berkeley, el RISC II. Semejante al RISC II, él usa una ventana de registros para reducir el número de instrucciones Load y Store.
SPARC según Sun Microsystems
Hasta hace poco, las arquitecturas RISC tenían un pobre rendimiento con respecto a los cálculos de punto flotante. Por ejemplo, el IBM 801 implementaba las operaciones de punto flotante por software. Los proyectos de Berkeley, RISC I y RISC II, dejaban fuera a una VAX 11/780 en cálculos enteros pero NO en aritmética de punto flotante. Esto también es cierto para el procesador de Stanford, el MIPS. Los sistemas SPARC, en cambio, son diseñados para un rendimiento óptimo en los cálculos de punto flotante y soportan precisión simple, doble y extendida en los operandos y en las operaciones como lo especifica la norma 754 del ANSI/IEEE del estándar sobre punto flotante. El alto rendimiento en los cálculos de punto flotante resulta de la concurrencia de la IU y la FPU. La IU (Integer Unit) hace los "load" y "store" mientras la FPU (Floating Point Unit) ejecuta las operaciones y cálculos. Los sistemas SPARC consiguen obtener velocidades elevadas como resultado del perfeccionamiento en las técnicas de fabricación de los chips. El sistema SPARC entrega muy altos niveles de rendimiento. La flexibilidad de la arquitectura hace a los futuros sistemas capaces de obtener muchos mejores tiempos que el de la implementación inicial. Además, la arquitectura abierta hace esto posible por absorber los avances tecnológicos casi tan pronto como estos ocurren.
Implementaciones
SPARC
- Primera generación liberada en 1987.
- Frecuencias de reloj de 16 a 50 Mhz.
- Diseño escalar.
SUPER SPARC
- Segunda generación liberada en 1992.
- Frecuencias de reloj de 33 a 50 Mhz.
- Diseño super escalar
ULTRA SPARC II
- Lanzado a mediados de 1996.
- Arquitectura super escalar de 4 etapas y de 64 bits.
- Cinco unidades de punto flotante.
- Velocidades entre 250 y 300 Mhz.
Advanced Product Line (APL)
- Lanzado a mediados de 2004.
- Acuerdo comercial entre Sun Microsystems y Fujitsu
- Arquitectura super escalar compatible con en el diseño SPARC V9 de 64 bits.
- Velocidades entre 1,35 y 2,7 GHz.
Utilizado por Sun Microsystems, Cray Research, Fujitsu / ICL y otros.
Especificaciones de los microprocesadores SPARC
SPARC microprocessor specifications | ||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Modelo | Frecuencia [MHz] |
Versión de la Arquitectura |
Año | Cores * Threads Per Core = Total Threads | Process [µm] |
Transistores [millones] |
Die size [mm²] |
IO Pins | Power [W] |
Voltaje [V] |
L1 Dcache [k] |
L1 Icache [k] |
L2 Cache [k] |
L3 Cache [k] |
macro | ||||||||||||||
microSPARC I | 40–50 | V8 | 1992 | 1*1=1 | 0.8 | 0.8 | 225? | 288 | 2.5 | 5 | 2 | 4 | nada | nada |
SuperSPARC I | 33–60 | V8 | 1992 | 1*1=1 | 0.8 | 3.1 | -- | 293 | 14.3 | 5 | 16 | 20 | 0-2048 | nada |
HyperSPARC A | 40–90 | V8 | 1993 | 1*1=1 | 0.5 | 1.5 | -- | -- | -- | 5? | 0 | 8 | 128-256 | nada |
microSPARC II | 60–125 | V8 | 1994 | 1*1=1 | 0.5 | 2.3 | 233 | 321 | 5 | 3.3 | 8 | 16 | nada | nada |
HyperSPARC B | 90–125 | V8 | 1994 | 1*1=1 | 0.4 | 1.5 | -- | -- | -- | 3.3 | 0 | 8 | 128-256 | nada |
SuperSPARC II | 75–90 | V8 | 1994 | 1*1=1 | 0.8 | 3.1 | 299 | -- | 16 | -- | 16 | 20 | 1024-2048 | nada |
HyperSPARC C | 125–166 | V8 | 1995 | 1*1=1 | 0.35 | 1.5 | -- | -- | -- | 3.3 | 0 | 8 | 512-1024 | nada |
TurboSPARC | 160–180 | V8 | 1995 | 1*1=1 | 0.35 | 3.0 | 132 | 416 | 7 | 3.5 | 16 | 16 | 512 | nada |
UltraSPARC I (Spitfire) | 143–167 | V9 | 1995 | 1*1=1 | 0.47 | 5.2 | 315 | 521 | 30 @167 MHz | 3.3 | 16 | 16 | 512-1024 | nada |
UltraSPARC I (Hornet) | 200 | V9 | 1998 | 1*1=1 | 0.42 | 5.2 | 265 | 521 | -- | 3.3 | 16 | 16 | 512-1024 | nada |
HyperSPARC D | 180–200 | V8 | 1996 | 1*1=1 | 0.35 | 1.7 | -- | -- | -- | 3.3 | 16 | 16 | 512 | nada |
UltraSPARC IIs (Blackbird) | 250–400 | V9 | 1997 | 1*1=1 | 0.35 | 5.4 | 149 | 521 | 25 @250 MHz | 2.5 | 16 | 16 | 1024 or 4096 | nada |
UltraSPARC IIs (Sapphire-Black) | 360–480 | V9 | 1999 | 1*1=1 | 0.25 | 5.4 | 126 | 521 | 21 @400 MHz | 1.9 | 16 | 16 | 1024–8192 | nada |
UltraSPARC IIi (Sabre) | 270–360 | V9 | 1997 | 1*1=1 | 0.35 | 5.4 | 156 | 587 | 21 | 1.9 | 16 | 16 | 256–2048 | nada |
UltraSPARC IIi (Sapphire-Red) | 333–480 | V9 | 1998 | 1*1=1 | 0.25 | 5.4 | -- | 587 | 21 @440 MHz | 1.9 | 16 | 16 | 2048 | nada |
UltraSPARC IIe (Hummingbird) | 400–600 | V9 | 2000 | 1*1=1 | 0.18 Al | -- | -- | 370 | 13 max @500 MHz | 1.5-1.7 | 16 | 16 | 256 | nada |
UltraSPARC IIi (IIe+) | 550–650 | V9 | 2002 | 1*1=1 | 0.18 Cu | -- | -- | 370 | 17.6 | 1.7 | 16 | 16 | 512 | nada |
UltraSPARC III | 600 | V9 | 2001 | 1*1=1 | 0.18 Al | 29 | 330 | 1368 | 53 | 1.6 | 64 | 32 | 8192 | nada |
UltraSPARC III | 750–900 | V9 | 2001 | 1*1=1 | 0.13 Al | 29 | -- | 1368 | -- | 1.6 | 64 | 32 | 8192 | nada |
UltraSPARC IIIcu | 1002–1200 | V9 | 2001 | 1*1=1 | 0.13 Cu | 29 | -- | 1368 | -- | 1.6 | 64 | 32 | 8192 | nada |
UltraSPARC IIIi | 1064–1593 | V9 | 2003 | 1*1=1 | 0.13 | 87.5 | 206 | 959 | 52 | 1.3 | 64 | 32 | 1024 | nada |
UltraSPARC IV | 1050–1350 | V9 | 2004 | 1*2=2 | 0.13 | 66 | 356 | 1368 | 108 | 1.35 | 64 | 32 | 16384 | nada |
UltraSPARC IV+ | 1500 | V9 | 2005 | 1*2=2 | 0.09 | 295 | 336 | 1368 | 90 | 1.1 | 64 | 64 | 2048 | 32768 |
UltraSPARC T1 | 1000–1200 | V9 / UA 2005 | 2005 | 4*8=32 | 0.09 | 300 | 380 | 1933 | 72 | 1.3 | 8 | 16 | 3072 | nada |
SPARC64 V (Zeus) | 1350-2160 | V9 | 2004 | 1*2=2 | 0.13 | 191 | 290 | 269 | 40 | 1.2 | 128 | 128 | 2048 | nada |
SPARC64 VI (Olympus) | 2150-2400 | V9 | 2007 | 2*2=4 | 0,09 | 540 | 422 | -- | 120 | -- | 128 | 128 | 6144 | nada |
SPARC64 VII | 2700 | V9 | 2008 | 4*2=8 | -- | -- | -- | -- | -- | -- | 128 | 128 | 6144 | nada |
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
Alpha
DEC Alpha es una arquitectura de microprocesadores diseñada por DEC e introducida en 1992 bajo el nombre AXP, como reemplazo a la serie VAX. Cuenta con un conjunto de instrucciones RISC de 64 bits especialmente orientada a cálculo de coma flotante.
La arquitectura Alpha se caracteriza por seguir la filosofía RISC (Conjunto de instrucciones reducidas). El primer procesador que hizo gala de la tecnología Alpha fue el 21064.
Versiones
La primera versión, el Alpha 21064 se lanzó en 1992 corriendo a 200 MHz.
El procesador de 64-bit fue un diseño supersegmentado (segmentación) y superescalar, como otros diseños RISC, pero sin embargo superándolos a todos y DEC lo promulgó como el procesador más rápido del mundo.
En comparación, el Intel Pentium de menor costo salió a 66 MHz en el lanzamiento de esa primavera.
El Alpha 21164 estuvo disponible en 1995 a una frecuencia de 333 MHz. En julio de 1996 se elevó a 500 MHz, en marzo de 1998 a 666 MHz, y en mayo de 1998 el 21264 fue lanzado a 731 MHz. Los de 1 GHz, y otros más veloces, fueron anunciados en 2001 (el 21364 o EV7), y estuvieron disponibles desde 2003 a 1,1 GHz+. Alrededor de 500.000 sistemas basados en Alpha se vendieron hacia el final de 2000.
Tabla de modelos
Modelo | Apodo | Año | Frecuencia [Mhz] | Proceso [µm] | Transistores [millones] | Superf [mm²] | IO Pines | Consumo [W] | Voltage | Mem [MB/s] | Dcache [k] | Icache [k] | Scache | Bcache | ISA |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
EV4 | 21064 | 1992 | 150-200 | 0;75 | 1,68 | 234 | 290 | 30 | 3,3 | 80 | 8 | 8 | -- | ||
EV45 | 21064A | 1994 | 200-300 | 0,5 | 2,85 | 164 | 33 | 3,3 | 80 | 16 | 16 | -- | |||
LCA4 | 21066 | 1993 | 100-166 | 0,68 | 1,75 | 209 | 21 | 3,3 | 30 | 8 | 8 | -- | |||
LCA45 | 21066A | 1994 | 166-233 | 0,5 | 1,75 | 161 | 23 | 3,3 | 30 | 8 | 8 | -- | |||
EV5 | 21164 | 1995 | 266-500 | 0,5 | 9,7 | 299 | 296 | 56 | 3,3/2,5 | 150 | 8 | 8 | 96k | 1 | R |
EV56 | 21164A | 1996 | 400-767 | 0,35 | 9,3 | 209 | 46 | 3,3/2,0 | 300 | 8 | 8 | 96k | 1-2M | R,B | |
PCA56 | 21164PC | 1997 | 400-533 | 0,35 | 3,5 | 141 | 264 | 40 | 3,3/2,5 | 8 | 16 | -- | 1M | R,B,M | |
PCA57 | 600-666 | 0,28 | 5,7 | 101 | 283 | 20 | 2,5/2,0 | 16 | 16 | -- | 1M | R,B,M | |||
EV6 | 21264 | 1998 | 450-600 | 0,35 | 15,9 | 314 | 389 | 73 | 2,0 | 1600 | 64 | 64 | -- | 2-8M | R,B,M,F |
EV67 | 21264A | 1999 | 667-750 | 0,25 | 15,9 | 210 | 389 | 64 | 64 | -- | 2-8M | R,B,M,F,C | |||
EV68AL | 21264B | 2001 | 800-833 | 0,18 | 15,9 | 125 | 64 | 64 | -- | 2-8M | R,B,M,F,C,T | ||||
EV68CB | 21264C | 64 | 64 | -- | 2-8M | R,B,M,F,C,T | |||||||||
EV68CX | 21264D | 64 | 64 | -- | 2-8M | R,B,M,F,C,T | |||||||||
EV7 | 21364 | 2003 | 800- | 0,18 | 64 | 64 | 1,75M | -- | R,B,M,F,C,T |
Extensiones ISA :
- R: ?
- B: BWX, instrucciones para leer palabras de 8- y 16-bits de memoria
- M: MVI, instrucciones "multimedia"
- F: FIX, instrucciones para mover datos entre punteros de registro enteros y flotantes y para raíz cuadrada
- C: CIX, instrucciones para contar y ubicar bits
- T: Soporte de preselección con modificación intentando mejorar el rendimiento del primer intento de bloqueo