Una computadora con un conjunto de instrucciones reducido , o RISC ( / r ɪ s k / ), es una computadora con un conjunto de instrucciones pequeño y altamente optimizado , en lugar del conjunto más especializado que a menudo se encuentra en otros tipos de arquitectura, como en una instrucción compleja. configurar equipo (CISC). [1] La principal característica distintiva de la arquitectura RISC es que el conjunto de instrucciones está optimizado con una gran cantidad de registros y un flujo de instrucciones muy regular , lo que permite un número bajo de ciclos de reloj por instrucción (CPI). Las características centrales de una filosofía RISC sonarquitectura de carga / almacenamiento , [2] en la que se accede a la memoria a través de instrucciones específicas en lugar de como parte de la mayoría de las instrucciones del conjunto, y que solo requiere instrucciones de ciclo único . [3]
Aunque varias computadoras de las décadas de 1960 y 1970 han sido identificadas como precursoras de los RISC, el concepto moderno data de la década de 1980. En particular, dos proyectos en la Universidad de Stanford y la Universidad de California, Berkeley están más asociados con la popularización de este concepto. El MIPS de Stanford se comercializaría como la arquitectura MIPS exitosa , mientras que el RISC de Berkeley dio su nombre a todo el concepto y se comercializó como SPARC . Otro éxito de esta era fue el esfuerzo de IBM que finalmente condujo a la arquitectura del conjunto de instrucciones IBM POWER , PowerPC y Power ISA . A medida que estos proyectos maduraron, una variedad de diseños similares florecieron a fines de la década de 1980 y especialmente a principios de la de 1990, lo que representa una fuerza importante en el mercado de estaciones de trabajo Unix , así como para procesadores integrados en impresoras láser , enrutadores y productos similares.
Las muchas variedades de diseños RISC incluyen ARC , Alpha , Am29000 , ARM , Atmel AVR , Blackfin , i860 , i960 , M88000 , MIPS , PA-RISC , Power ISA (incluido PowerPC ), RISC-V , SuperH y SPARC . El uso de procesadores de arquitectura ARM en teléfonos inteligentes y tabletas , como los dispositivos iPad y Android , proporcionó una amplia base de usuarios para los sistemas basados en RISC. Los procesadores RISC también se utilizan en supercomputadoras , como Fugaku , que, en junio de 2020 [actualizar], es la supercomputadora más rápida del mundo. [4]
Historia y desarrollo
El diseño de Motor de Computación Automática (ACE) de Alan Turing de 1946 tenía muchas de las características de una arquitectura RISC. [5] Varios sistemas, que se remontan a la década de 1960, han sido acreditados como la primera arquitectura RISC, en parte basándose en su uso del enfoque de carga / almacenamiento . [6] El término RISC fue acuñado por David Patterson del proyecto Berkeley RISC , aunque antes habían aparecido conceptos algo similares. [7]
El CDC 6600 diseñado por Seymour Cray en 1964 utilizó una arquitectura de carga / almacenamiento con solo dos modos de direccionamiento (registro + registro y registro + constante inmediata) y 74 códigos de operación, siendo el ciclo básico del reloj 10 veces más rápido que el tiempo de acceso a la memoria. . [8] En parte debido a la arquitectura optimizada de carga / almacenamiento del CDC 6600, Jack Dongarra dice que puede considerarse un precursor de los sistemas RISC modernos, aunque es necesario superar una serie de otras barreras técnicas para el desarrollo de un RISC moderno. sistema. [9]
IBM 801
Michael J. Flynn ve el primer sistema RISC como el diseño de IBM 801 , [2] iniciado en 1975 por John Cocke y terminado en 1980. El 801 se desarrolló a partir de un esfuerzo por construir un procesador de alta velocidad de 24 bits para usarlo como base para un conmutador telefónico digital . Para alcanzar su objetivo de conmutación de 300 llamadas por segundo (1 millón por hora), calcularon que la CPU requería un rendimiento del orden de 12 MIPS, [10] en comparación con su máquina mainframe más rápida de la época, la 370/168, que funcionaba a 3,5 MIPS. [11]
El diseño se basó en un estudio de la extensa colección de estadísticas de IBM en sus plataformas existentes. Estos demostraron que el código en entornos de alto rendimiento hacía un uso extensivo de registros y que a menudo se quedaban sin ellos. Esto sugirió que los registros adicionales mejorarían aún más el rendimiento. Además, notaron que los compiladores generalmente ignoraban la gran mayoría de las instrucciones disponibles, especialmente los modos de direccionamiento ortogonal . En cambio, seleccionaron la versión más rápida de cualquier instrucción dada y luego construyeron pequeñas rutinas usándola. Esto sugirió que la mayoría de las instrucciones podrían eliminarse sin afectar el código resultante. Estas dos conclusiones funcionaron en conjunto; la eliminación de instrucciones permitiría que los códigos de instrucción fueran más cortos, liberando bits en la instrucción que luego podrían usarse para seleccionar entre un conjunto más grande de registros. [10]
El programa de conmutador telefónico se canceló en 1975, pero para entonces el equipo había demostrado que el mismo diseño ofrecería ganancias de rendimiento significativas al ejecutar casi cualquier código. En simulaciones, demostraron que un compilador ajustado para usar registros siempre que fuera posible ejecutaría código tres veces más rápido que los diseños tradicionales. Sorprendentemente, el mismo código se ejecutaría aproximadamente un 50% más rápido incluso en las máquinas existentes debido al uso mejorado del registro. En la práctica, su compilador PL / 8 experimental, una versión ligeramente reducida de PL / 1 , producía de forma consistente código que se ejecutaba mucho más rápido en sus mainframes. [10]
Finalmente, se produjo una versión de 32 bits del 801 en forma de un solo chip como IBM ROMP en 1981, que significaba 'Microprocesador OPD de investigación [División de productos de oficina]'. [12] Esta CPU fue diseñada para tareas "mini" y también se usó en el IBM RT PC en 1986, que resultó ser un fracaso comercial. [13] Pero el 801 inspiró varios proyectos de investigación, incluidos algunos nuevos en IBM que eventualmente conducirían a la arquitectura del conjunto de instrucciones IBM POWER . [14] [15]
RISC y MIPS
A fines de la década de 1970, el 801 se había vuelto muy conocido en la industria. Esto coincidió con nuevas técnicas de fabricación que permitían la llegada al mercado de chips más complejos. El Zilog Z80 de 1976 tenía 8.000 transistores, mientras que el Motorola 68000 (68k) de 1979 tenía 68.000. Estos diseños más nuevos generalmente usaron su complejidad recién descubierta para expandir el conjunto de instrucciones para hacerlo más ortogonal. La mayoría, como el 68k, usaba microcódigo para hacer esto, leyendo instrucciones y volviéndolas a implementar como una secuencia de instrucciones internas más simples. En el 68k, se utilizó 1 ⁄ 3 completo de los transistores para esta microcodificación. [dieciséis]
En 1979, Dave Patterson fue enviado a un año sabático de la Universidad de California, Berkeley para ayudar al equipo de la costa oeste de DEC a mejorar el microcódigo VAX. A Patterson le sorprendió la complejidad del proceso de codificación y concluyó que era insostenible. [17] Primero escribió un artículo sobre formas de mejorar la microcodificación, pero luego cambió de opinión y decidió que el problema era el microcódigo en sí. Con fondos del programa DARPA VLSI , Patterson inició el esfuerzo de Berkeley RISC . El Programa, prácticamente desconocido en la actualidad, dio lugar a una gran cantidad de avances en el diseño de chips, fabricación e incluso gráficos por computadora. Considerando una variedad de programas de su variante BSD Unix , el equipo de Berkeley encontró, al igual que IBM, que la mayoría de los programas no usaban la gran variedad de instrucciones en el 68k. [18]
Los primeros trabajos de Patterson señalaron un problema importante con el enfoque tradicional de más es mejor; incluso aquellas instrucciones que eran críticas para el rendimiento general estaban siendo retrasadas por su viaje a través del microcódigo. Si se eliminara el microcódigo, los programas se ejecutarían más rápido. Y dado que el microcódigo finalmente tomó una instrucción compleja y la dividió en pasos, no había ninguna razón por la que el compilador no pudiera hacer esto en su lugar. Estos estudios sugirieron que, incluso sin otros cambios, se podría hacer un chip con 1 ⁄ 3 menos de transistores que funcionarían más rápido. [18]
También se descubrió que, en implementaciones microcodificadas de ciertas arquitecturas, las operaciones complejas tienden a ser más lentas que una secuencia de operaciones más simples que hacen lo mismo. Esto fue en parte un efecto del hecho de que muchos diseños se apresuraron, con poco tiempo para optimizar o ajustar cada instrucción; sólo se optimizaron las que se utilizaron con más frecuencia, y una secuencia de esas instrucciones podría ser más rápida que una instrucción menos ajustada que realiza una operación equivalente a esa secuencia. Un ejemplo famoso fue el VAX 's INDEX
instrucciones. [19]
El trabajo de Berkeley también arrojó una serie de puntos adicionales. Entre ellos se encontraba el hecho de que los programas dedicaban una cantidad significativa de tiempo a realizar llamadas y devoluciones de subrutinas, y parecía que existía la posibilidad de mejorar el rendimiento general al acelerar estas llamadas. Esto llevó al diseño de Berkeley a seleccionar un método conocido como ventanas de registro . También notaron que la mayoría de las instrucciones matemáticas eran asignaciones simples, solo 1 ⁄ 3 de ellos realmente realizó una operación como suma o resta. Pero cuando ocurrieron esas operaciones, tendieron a ser lentas. Esto llevó a un mayor énfasis en la unidad de datos subyacente, a diferencia de los diseños anteriores en los que la mayor parte del chip se dedicaba al control. [18]
El Berkeley RISC resultante se basó en obtener rendimiento mediante el uso de canalizaciones y el uso agresivo de ventanas de registro. [19] [20] En una CPU tradicional, uno tiene una pequeña cantidad de registros y un programa puede usar cualquier registro en cualquier momento. En una CPU con ventanas de registro, hay una gran cantidad de registros, por ejemplo, 128, pero los programas solo pueden usar una pequeña cantidad de ellos, por ejemplo, ocho, a la vez. Un programa que se limita a ocho registros por procedimiento puede realizar llamadas de procedimiento muy rápidas : la llamada simplemente mueve la ventana "hacia abajo" en ocho, al conjunto de ocho registros utilizados por ese procedimiento, y el retorno mueve la ventana hacia atrás. [21] El proyecto Berkeley RISC entregó el procesador RISC-I en 1982. Consta de solo 44,420 transistores (en comparación con los promedios de aproximadamente 100,000 en los diseños CISC más nuevos de la época). RISC-I tenía solo 32 instrucciones y, sin embargo, superó completamente a cualquier otro. diseño de un solo chip. Siguieron esto con el transistor 40,760, 39 instrucciones RISC-II en 1983, que corrió tres veces más rápido que RISC-I. [20]
Cuando el proyecto RISC comenzó a ser conocido en Silicon Valley , un proyecto similar comenzó en la Universidad de Stanford en 1981. Este proyecto MIPS surgió de un curso de posgrado de John L. Hennessy , produjo un sistema funcional en 1983 y podía ejecutar programas simples por 1984. [22] El enfoque MIPS enfatizó un ciclo de reloj agresivo y el uso de la tubería, asegurándose de que pudiera ejecutarse lo más "completo" posible. [22] El sistema MIPS fue seguido por el MIPS-X y en 1984 Hennessy y sus colegas formaron MIPS Computer Systems . [22] [23] La empresa comercial resultó en una nueva arquitectura que también se llamó MIPS y el microprocesador R2000 en 1985. [23]
La filosofía general del concepto RISC fue ampliamente comprendida en la segunda mitad de la década de 1980 y llevó a los diseñadores del MIPS-X a expresarlo de esta manera en 1987:
El objetivo de cualquier formato de instrucción debe ser: 1. decodificación simple, 2. decodificación simple y 3. decodificación simple. Cualquier intento de mejorar la densidad del código a expensas del rendimiento de la CPU debe ser ridiculizado en cada oportunidad. [24]
Fuga comercial
A principios de la década de 1980, el concepto RISC rodeó importantes incertidumbres. Una preocupación involucraba el uso de la memoria; una sola instrucción de un procesador tradicional como el 68k puede escribirse como quizás media docena de las instrucciones RISC más simples. En teoría, esto podría ralentizar el sistema, ya que dedicó más tiempo a obtener instrucciones de la memoria. Pero a mediados de la década de 1980, los conceptos habían madurado lo suficiente como para ser considerados comercialmente viables. [13] [22]
Los diseños comerciales de RISC comenzaron a surgir a mediados de la década de 1980. El primer MIPS R2000 apareció en enero de 1986, seguido poco después por el PA-RISC de Hewlett Packard en algunas de sus computadoras. [13] Mientras tanto, el esfuerzo de Berkeley se había vuelto tan conocido que finalmente se convirtió en el nombre de todo el concepto. En 1987 Sun Microsystems comenzó a distribuir sistemas con el procesador SPARC , basado directamente en el sistema Berkeley RISC II. [13] [25] El Comité de Innovaciones en Computación y Comunicaciones del gobierno de EE. UU. Atribuye la aceptación de la viabilidad del concepto RISC al éxito del sistema SPARC. [13] El éxito de SPARC renovó el interés dentro de IBM, que lanzó nuevos sistemas RISC en 1990 y en 1995 los procesadores RISC fueron la base de una industria de servidores de $ 15 mil millones. [13]
A finales de la década de 1980, los nuevos diseños de RISC superaban fácilmente a todos los diseños tradicionales por un amplio margen. En ese momento, todos los demás proveedores comenzaron sus propios esfuerzos de RISC. Entre estos se encontraban DEC Alpha , AMD Am29000 , Intel i860 e i960 , Motorola 88000 , IBM POWER y, un poco más tarde, IBM / Apple / Motorola PowerPC . Muchos de estos han desaparecido desde entonces debido a que a menudo no ofrecen ninguna ventaja competitiva sobre otros de la misma época. Los que quedan se utilizan a menudo solo en nichos de mercado o como partes de otros sistemas, solo SPARC y POWER tienen un mercado restante significativo. El valor atípico es el ARM , quien, en asociación con Apple, desarrolló un diseño de bajo consumo y luego se especializó en ese mercado, que en ese momento era un nicho. Con el aumento de la informática móvil, especialmente después de la introducción del iPhone , ARM es ahora el diseño de CPU de gama alta más utilizado en el mercado.
La competencia entre los enfoques RISC y CISC convencionales también fue objeto de análisis teórico a principios de la década de 1980, lo que llevó, por ejemplo, a la ley de hierro del rendimiento del procesador .
Desde 2010, una nueva arquitectura de conjunto de instrucciones de código abierto (ISA), RISC-V , se ha estado desarrollando en la Universidad de California, Berkeley, con fines de investigación y como una alternativa gratuita a las ISA patentadas. A partir de 2014, se corrigió la versión 2 del espacio de usuario ISA. [26] El ISA está diseñado para ser extensible desde un núcleo básico suficiente para un pequeño procesador integrado hasta el uso de supercomputadora y computación en la nube con extensiones y coprocesadores estándar y definidos por el diseñador de chips. Ha sido probado en diseño de silicio con el ROCKET SoC que también está disponible como un generador de procesador de código abierto en el lenguaje CHISEL.
Características y filosofía de diseño
Filosofía del conjunto de instrucciones
Un malentendido común de la frase "computadora con conjunto de instrucciones reducido" es que las instrucciones simplemente se eliminan, lo que resulta en un conjunto de instrucciones más pequeño. [27] De hecho, a lo largo de los años, los conjuntos de instrucciones RISC han aumentado de tamaño y, en la actualidad, muchos de ellos tienen un conjunto de instrucciones más grande que muchas CPU CISC. [28] [29] Algunos procesadores RISC como el PowerPC tienen conjuntos de instrucciones tan grandes como el CISC IBM System / 370 , por ejemplo; a la inversa, el DEC PDP-8 —claramente una CPU CISC porque muchas de sus instrucciones implican múltiples accesos a la memoria— tiene solo 8 instrucciones básicas y unas pocas instrucciones extendidas. [30] El término "reducido" en esa frase tenía la intención de describir el hecho de que la cantidad de trabajo que realiza una sola instrucción se reduce, como máximo, un solo ciclo de memoria de datos, en comparación con las "instrucciones complejas" de las CPU CISC que pueden requerir docenas de ciclos de memoria de datos para ejecutar una sola instrucción. [31]
A veces se prefiere el término arquitectura de carga / almacenamiento .
Otra forma de ver el debate RISC / CISC es considerar lo que se expone al compilador. En un procesador CISC, el hardware puede utilizar internamente registros y bit de bandera para implementar una única instrucción compleja como STRING MOVE, pero ocultar esos detalles al compilador. Las operaciones internas de un procesador RISC están "expuestas al compilador", lo que lleva al backronym 'Relegate Interesting Stuff to the Compiler'. [32] [33]
Formato de instrucción
La mayoría de las arquitecturas RISC tienen instrucciones de longitud fija (comúnmente de 32 bits) y una codificación simple, que simplifica considerablemente la lógica de búsqueda, decodificación y emisión. Un inconveniente de las instrucciones de 32 bits es la densidad de código reducida, que es una característica más adversa en la computación integrada que en los mercados de estaciones de trabajo y servidores. Las arquitecturas RISC fueron diseñadas originalmente para servir. Para abordar este problema, varias arquitecturas, como ARM , Power ISA , MIPS , RISC-V y Adapteva Epiphany , tienen un formato de instrucción corto opcional con funciones reducidas o una función de compresión de instrucciones. El SH5 también sigue este patrón, aunque ha evolucionado en la dirección opuesta, habiendo agregado instrucciones de medios más largas a una codificación original de 16 bits.
Utilización de hardware
Para cualquier nivel dado de rendimiento general, un chip RISC normalmente tendrá muchos menos transistores dedicados a la lógica del núcleo, lo que originalmente permitió a los diseñadores aumentar el tamaño del conjunto de registros y aumentar el paralelismo interno.
Otras características de las arquitecturas RISC incluyen:
- El rendimiento promedio del procesador se acerca a 1 instrucción por ciclo [ necesita actualización ]
- Formato de instrucción uniforme, usando una sola palabra con el código de operación en las mismas posiciones de bit para una decodificación más simple
- Todos los registros de propósito general se pueden usar igualmente como origen / destino en todas las instrucciones, lo que simplifica el diseño del compilador ( los registros de punto flotante a menudo se mantienen separados)
- Modos de direccionamiento simples con direccionamiento complejo realizado por secuencias de instrucciones
- Pocos tipos de datos en hardware (sin cadena de bytes o BCD , por ejemplo)
También es más probable que los diseños RISC incluyan un modelo de memoria de Harvard , donde el flujo de instrucciones y el flujo de datos están separados conceptualmente; esto significa que la modificación de la memoria donde se guarda el código podría no tener ningún efecto sobre las instrucciones ejecutadas por el procesador (porque la CPU tiene una instrucción separada y un caché de datos ), al menos hasta que se emita una instrucción de sincronización especial; Los procesadores CISC que tienen cachés de datos e instrucciones separados generalmente los mantienen sincronizados automáticamente, para compatibilidad con los procesadores más antiguos.
Muchos de los primeros diseños de RISC también compartían la característica de tener una ranura de retardo de bifurcación , un espacio de instrucción inmediatamente después de un salto o bifurcación. La instrucción en este espacio se ejecuta, se tome o no la rama (es decir, se retrasa el efecto de la rama). Esta instrucción mantiene ocupada la ALU de la CPU durante el tiempo extra que normalmente se necesita para realizar una bifurcación. Hoy en día, la ranura de retardo de rama se considera un efecto secundario desafortunado de una estrategia particular para implementar algunos diseños RISC, y los diseños RISC modernos generalmente lo eliminan (como PowerPC y versiones más recientes de SPARC y MIPS). [ cita requerida ]
Algunos aspectos atribuidos a los primeros diseños etiquetados con RISC alrededor de 1975 incluyen las observaciones de que los compiladores con restricción de memoria de la época a menudo no podían aprovechar las características destinadas a facilitar la codificación de ensamblaje manual , y que los modos de direccionamiento complejos requieren muchos ciclos para funcionar debido a los accesos adicionales requeridos a la memoria. Se argumentó que tales funciones se realizarían mejor mediante secuencias de instrucciones más simples si esto pudiera producir implementaciones lo suficientemente pequeñas como para dejar espacio para muchos registros, reduciendo el número de accesos lentos a la memoria. En estos diseños simples, la mayoría de las instrucciones tienen una longitud uniforme y una estructura similar, las operaciones aritméticas están restringidas a los registros de la CPU y solo las instrucciones de carga y almacenamiento separadas acceden a la memoria. Estas propiedades permiten un mejor equilibrio de las etapas de la tubería que antes, lo que hace que las tuberías RISC sean significativamente más eficientes y permiten frecuencias de reloj más altas .
Otro impulso más de RISC y otros diseños provino de mediciones prácticas en programas del mundo real. Andrew Tanenbaum resumió muchos de estos, demostrando que los procesadores a menudo tenían inmediatos de gran tamaño. Por ejemplo, mostró que el 98% de todas las constantes en un programa cabrían en 13 bits , sin embargo, muchos diseños de CPU dedicaron 16 o 32 bits a almacenarlas. Esto sugiere que, para reducir el número de accesos a la memoria, una máquina de longitud fija podría almacenar constantes en bits no utilizados de la palabra de instrucción en sí, de modo que estén listas inmediatamente cuando la CPU las necesite (al igual que el direccionamiento inmediato en un diseño convencional). . Esto requirió códigos de operación pequeños para dejar espacio para una constante de tamaño razonable en una palabra de instrucción de 32 bits.
Dado que muchos programas del mundo real pasan la mayor parte de su tiempo ejecutando operaciones simples, algunos investigadores decidieron concentrarse en hacer esas operaciones lo más rápido posible. La frecuencia de reloj de una CPU está limitada por el tiempo que lleva ejecutar la operación secundaria más lenta de cualquier instrucción; disminuir ese tiempo de ciclo a menudo acelera la ejecución de otras instrucciones. [34] El enfoque en "instrucciones reducidas" llevó a que la máquina resultante se llamara "computadora con conjunto de instrucciones reducido" (RISC). El objetivo era hacer que las instrucciones tan simples que podrían fácilmente ser segmentado , con el fin de lograr un solo reloj rendimiento a altas frecuencias .
Más tarde, se observó que una de las características más importantes de los procesadores RISC era que la memoria externa solo era accesible mediante una instrucción de carga o almacenamiento . Todas las demás instrucciones se limitaron a registros internos. Esto simplificó muchos aspectos del diseño del procesador: permitir que las instrucciones sean de longitud fija, simplificar las canalizaciones y aislar la lógica para lidiar con la demora en completar un acceso a la memoria (falta de caché, etc.) a solo dos instrucciones. Esto llevó a que los diseños RISC se denominaran arquitecturas de carga / almacenamiento . [35]
Comparación con otras arquitecturas
Algunas CPU se han diseñado específicamente para tener un conjunto de instrucciones muy pequeño, pero estos diseños son muy diferentes de los diseños RISC clásicos, por lo que se les han dado otros nombres, como computadora con conjunto de instrucciones mínimo (MISC) o arquitectura activada por transporte (TTA).
Las arquitecturas RISC tradicionalmente han tenido pocos éxitos en los mercados de PC de escritorio y servidores básicos, donde las plataformas basadas en x86 siguen siendo la arquitectura de procesador dominante. Sin embargo, esto puede cambiar, ya que se están desarrollando procesadores basados en ARM para sistemas de mayor rendimiento. [36] Fabricantes como Cavium , AMD y Qualcomm han lanzado procesadores de servidor basados en la arquitectura ARM. [37] [38] ARM se asoció además con Cray en 2017 para producir una supercomputadora basada en ARM. [39] En el escritorio, Microsoft anunció que planeaba admitir la versión para PC de Windows 10 en dispositivos basados en Qualcomm Snapdragon en 2017 como parte de su asociación con Qualcomm. Estos dispositivos admitirán aplicaciones de Windows compiladas para x86 de 32 bits a través de un emulador de procesador x86 que traduce el código x86 de 32 bits al código ARM64 . [40] [41] Apple anunció que hará la transición de sus computadoras de escritorio y portátiles Mac de los procesadores Intel a los SoC basados en ARM64 desarrollados internamente llamados Apple silicon ; las primeras computadoras de este tipo, que utilizan el procesador Apple M1 , se lanzaron en noviembre de 2020. [42] Las Mac con silicio de Apple pueden ejecutar binarios x86-64 con Rosetta 2 , un traductor de x86-64 a ARM64. [43]
Sin embargo, fuera del ámbito de las computadoras de escritorio, la arquitectura ARM RISC se usa ampliamente en teléfonos inteligentes, tabletas y muchas formas de dispositivos integrados. Si bien los primeros diseños RISC diferían significativamente de los diseños CISC contemporáneos, en 2000 las CPU de mayor rendimiento en la línea RISC eran casi indistinguibles de las CPU de mayor rendimiento en la línea CISC. [44] [45] [46]
Uso de arquitecturas RISC
Las arquitecturas RISC ahora se utilizan en una variedad de plataformas, desde teléfonos inteligentes y tabletas hasta algunas de las supercomputadoras más rápidas del mundo , como Fugaku , la más rápida en la lista TOP500 en noviembre de 2020.[actualizar]y Summit , Sierra y Sunway TaihuLight , los tres siguientes en esa lista. [47]
Sistemas móviles y de gama baja
A principios del siglo XXI, la mayoría de los sistemas móviles y de gama baja se basaban en arquitecturas RISC. [48] Los ejemplos incluyen:
- La arquitectura ARM domina el mercado de los sistemas integrados de bajo consumo y bajo coste (normalmente de 200 a 1800 MHz en 2014). Se utiliza en varios sistemas, como la mayoría de los sistemas basados en Android , el iPhone y iPad de Apple , Microsoft Windows Phone (antes Windows Mobile ), dispositivos RIM , Nintendo Game Boy Advance , DS , 3DS y Switch , Raspberry Pi , etc.
- El PowerPC de IBM se utilizó en las consolas de juegos GameCube , Wii , PlayStation 3 , Xbox 360 y Wii U.
- La línea MIPS (en un punto utilizada en muchas computadoras SGI ) se usó en PlayStation , PlayStation 2 , Nintendo 64 , consolas de juegos PlayStation Portable y puertas de enlace residenciales como la serie Linksys WRT54G .
- Hitachi 's SuperH , originalmente en amplio uso en la Sega de Super 32X , Saturno y Dreamcast , ahora desarrollado y vendido por Renesas como el SH4 .
- Atmel AVR se utiliza en una variedad de productos que van desde controladores de mano Xbox y la plataforma de microcontroladores de código abierto Arduino hasta automóviles BMW .
- RISC-V , el quinto Berkeley RISC ISA de código abierto , con espacios de direcciones de 32 o 64 bits , un conjunto de instrucciones de número entero pequeño y un ISA experimental "comprimido" para densidad de código y diseñado para extensiones estándar y de propósito especial.
Computadoras de escritorio y portátiles
- La arquitectura PowerPC de IBM se utilizó en las computadoras Macintosh de Apple desde 1994, cuando comenzaron un cambio de los procesadores de la familia Motorola 68000 , a 2005, cuando hicieron la transición a los procesadores Intel x86 . [49]
- Algunos Chromebook utilizan plataformas basadas en ARM desde 2012. [50]
- Apple utiliza procesadores de diseño propio basados en la arquitectura ARM para su línea de computadoras de escritorio y portátiles desde su transición de los procesadores Intel , [51] y las primeras computadoras de este tipo se lanzaron en noviembre de 2020. [42] Microsoft usa Qualcomm [52] ARM- procesadores basados en su línea Surface .
Estaciones de trabajo, servidores y supercomputadoras
- MIPS , de Silicon Graphics (dejó de fabricar sistemas basados en MIPS en 2006).
- SPARC , de Oracle (anteriormente Sun Microsystems ) y Fujitsu .
- IBM 's IBM POWER arquitectura del conjunto de instrucciones , PowerPC , y la ISA de energía fueron y son utilizados en muchos de los superordenadores de IBM, servidores de gama media y estaciones de trabajo.
- Hewlett-Packard 's PA-RISC , también conocida como HP-PA (descontinuado a finales de 2008).
- Alpha , utilizado en computadoras de placa única , estaciones de trabajo, servidores y supercomputadoras de Digital Equipment Corporation , luego Compaq y finalmente HP (descontinuado a partir de 2007).
- RISC-V , el quinto Berkeley RISC ISA de código abierto , con espacios de direcciones de 64 o 128 bits , y el núcleo entero extendido con punto flotante, procesamiento atómico y vectorial , y diseñado para ser extendido con instrucciones para redes, E / S, y procesamiento de datos. Un diseño superescalar de 64 bits, "Rocket", está disponible para descargar. Está implementado en el procesador European Processor Initiative .
Ver también
- Modo de direccionamiento
- Canalización RISC clásica
- Equipo conjunto de instrucciones complejas
- Arquitectura de Computadores
- Set de instrucciones arquitectura
- Microprocesador
- Ordenador con conjunto de instrucciones mínimo
Referencias
- ^ Berezinski, John. "RISC - Ordenador con conjunto de instrucciones reducido" . Departamento de Ciencias de la Computación, Universidad del Norte de Illinois. Archivado desde el original el 28 de febrero de 2017.
- ^ a b Flynn, Michael J. (1995). Arquitectura informática: diseño de procesadores en paralelo y en canalización . págs. 54–56. ISBN 0867202041.
- ^ Woodruff et al- (2014) El modelo de capacidad CHERI: revisando RISC en una era de riesgo ACM SIGARCH Computer Architecture News Junio de 2014
- ^ "Fugaku de Japón gana el título como superordenador más rápido del mundo" . RIKEN . Consultado el 24 de junio de 2020 .
- ^ Doran, Robert (2005), "Computer architecture and the ACE Computers", en Copeland, Jack (ed.), Alan Turing's Electronic Brain: The Struggle to Build the ACE, the World's Fastest Computer , Oxford: Oxford University Press, ISBN 978-0199609154
- ^ Fisher, Joseph A .; Faraboschi, Paolo; Joven, Cliff (2005). Computación integrada: un enfoque de VLIW para la arquitectura, los compiladores y las herramientas . pag. 55 . ISBN 1558607668.
- ^ Reilly, Edwin D. (2003). Hitos en informática y tecnología de la información . pp. 50 . ISBN 1-57356-521-0.
- ^ Grishman, Ralph (1974). Programación en lenguaje ensamblador para la serie Control Data 6000 y la serie Cyber 70 . Prensa Algoritmica. pag. 12. OCLC 425963232 .
- ^ Dongarra, Jack J .; et al. (1987). Álgebra lineal numérica en computadoras de alto rendimiento . pp. 6 . ISBN 0-89871-428-1.
- ^ a b c Cocke, John; Markstein, Victoria (enero de 1990). "La evolución de la tecnología RISC en IBM" (PDF) . IBM Journal of Research and Development . 34 (1): 4–11. doi : 10.1147 / rd.341.0004 .
- ^ Resumen del sistema IBM System / 370 (informe técnico). IBM. Enero de 1987.
- ^ Šilc, Jurij; Robič, Borut; Ungerer, Theo (1999). Arquitectura del procesador: desde el flujo de datos hasta el superescalar y más . págs. 33 . ISBN 3-540-64798-8.
- ^ a b c d e f Financiación de una revolución: apoyo del gobierno a la investigación informática por el Comité de Innovaciones en Computación y Comunicaciones 1999 ISBN 0-309-06278-0 página 239
- ^ Nurmi, Jari (2007). Diseño de procesador: computación de sistema en chip para ASIC y FPGA . págs. 40 –43. ISBN 978-1-4020-5529-4.
- ^ Hill, Mark Donald; Jouppi, Norman Paul ; Sohi, Gurindar (1999). Lecturas en arquitectura informática . págs. 252–4. ISBN 1-55860-539-8.
- ^ Starnes, Thomas (mayo de 1983). "Filosofía de diseño detrás del MC68000 de Motorola" . Byte . pag. Foto 1.
- ^ Patterson, David (30 de mayo de 2018). "Historial de RISCy" . AM SIGARCH .
- ^ a b c "Ejemplo: Berkeley RISC II" .
- ^ a b Patterson, DA ; Ditzel, DR (1980). "El caso de la computadora de conjunto de instrucciones reducido". Noticias de arquitectura informática ACM SIGARCH . 8 (6): 25–33. CiteSeerX 10.1.1.68.9623 . doi : 10.1145 / 641914.641917 . S2CID 12034303 .
- ^ a b Patterson, David A .; Lentejuela, Carlo H. (1981). RISC I: una computadora VLSI de conjunto de instrucciones reducido . VIII simposio anual de Arquitectura de Computadores. Minneapolis, MN, Estados Unidos. págs. 443–457. doi : 10.1145 / 285930.285981 .Como PDF
- ^ Lentejuela, Carlo; Patterson, David (julio de 1982). Diseño e Implementación de RISC I (PDF) . Curso avanzado de Arquitectura VLSI. Universidad de Bristol. CSD-82-106.
- ^ a b c d Chow, Paul (1989). El microprocesador MIPS-X RISC . págs. xix – xx. ISBN 0-7923-9045-8.
- ↑ a b Nurmi , 2007 , págs. 52–53
- ^ Weaver, Vincent; McKee, Sally. Preocupaciones por la densidad del código para nuevas arquitecturas (PDF) . ICCD 2009.
- ^ Tucker, Allen B. (2004). Manual de informática . págs. 100 –6. ISBN 1-58488-360-X.
- ^ Waterman, Andrew; Lee, Yunsup; Patterson, David A .; Asanovi, Krste. "Manual del conjunto de instrucciones de RISC-V, Volumen I: Versión 2 de ISA de nivel de usuario básico (Informe técnico EECS-2014-54)" . Universidad de California, Berkeley . Consultado el 26 de diciembre de 2014 .
- ^ Esponda, Margarita; Rojas, Ra'ul (septiembre de 1991). "Sección 2: La confusión en torno al concepto RISC" . El concepto RISC: un estudio de las implementaciones . Freie Universitat Berlin. B-91-12.
- ^ Stokes, Jon "Hannibal". "RISC vs. CISC: la era post-RISC" . Ars Technica .
- ^ Borrett, Lloyd (junio de 1991). "RISC versus CISC" . Computadora personal australiana .
- ^ Jones, Douglas W. "Preguntas frecuentes sobre DEC PDP-8 de Doug Jones" . Colección PDP-8, Departamento de Ciencias de la Computación de la Universidad de Iowa .
- ^ Dandamudi, Sivarama P. (2005). "Cap. 3: Principios RISC". Guía de procesadores RISC para programadores e ingenieros . Saltador. págs. 39 –44. doi : 10.1007 / 0-387-27446-4_3 . ISBN 978-0-387-21017-9.
el objetivo principal no era reducir el número de instrucciones, sino la complejidad
- ^ Walls, Colin (18 de abril de 2016). "CISC y RISC" .
- ^ Fisher, Joseph A .; Faraboschi, Paolo; Joven, Cliff (2005). Computación integrada: un enfoque de VLIW para la arquitectura, los compiladores y las herramientas . pag. 57. ISBN 9781558607668.
- ^ "Microprocesadores desde la perspectiva del programador" por Andrew Schulman 1990
- ^ Dowd, Kevin; Loukides, Michael K. (1993). Computación de alto rendimiento . O'Reilly. ISBN 1565920325.
- ^ Vincent, James (9 de marzo de 2017). "Microsoft presenta nuevos diseños de servidor ARM, amenazando el dominio de Intel" . The Verge . Consultado el 12 de mayo de 2017 .
- ^ Russell, John (31 de mayo de 2016). "Cavium presenta planes ThunderX2, informa que la tracción ARM está creciendo" . Alambre HPC . Consultado el 8 de marzo de 2017 .
- ^ El primer procesador basado en ARM de AMD, el Opteron A1100, finalmente está aquí , ExtremeTech, 14 de enero de 2016 , consultado el 14 de agosto de 2016
- ^ Feldman, Michael (18 de enero de 2017). "Cray para entregar supercomputadora ARM-Powered al consorcio del Reino Unido" . Top500.org . Consultado el 12 de mayo de 2017 .
- ^ "Microsoft está llevando las aplicaciones de escritorio de Windows a los procesadores ARM móviles" . The Verge . Vox Media. 8 de diciembre de 2016 . Consultado el 8 de diciembre de 2016 .
- ^ "Cómo funciona la emulación x86 en ARM" . Microsoft Docs . 15 de febrero de 2018.
- ^ a b "Presentamos la próxima generación de Mac" (Comunicado de prensa). Apple Inc.10 de noviembre de 2020.
- ^ "macOS Big Sur ya está aquí" (Comunicado de prensa). Apple Inc.12 de noviembre de 2020.
- ^ Carter, Nicholas P. (2002). Esquema de la arquitectura informática de Schaum . pag. 96. ISBN 0-07-136207-X.
- ^ Jones, Douglas L. (2000). "Microprocesadores CISC, RISC y DSP" (PDF) .
- ^ Singh, Amit. "Una historia de los sistemas operativos de Apple" . Archivado desde el original el 3 de abril de 2020.
La línea entre RISC y CISC se ha vuelto más difusa a lo largo de los años.
- ^ "Top 500 The List: noviembre de 2020" . TOP 500 . Consultado el 2 de enero de 2021 .
- ^ Dandamudi 2005 , págs. 121-123
- ^ Bennett, Amy (2005). "Apple cambiando de PowerPC a Intel" . Computerworld . Consultado el 24 de agosto de 2020 .
- ^ Vaughan-Nichols, Steven J. "Revisión: La Chromebook Samsung con tecnología ARM" . ZDNet . Consultado el 28 de abril de 2021 .
- ^ DeAngelis, Marc (22 de junio de 2020). "Apple comienza su transición de dos años a ARM esta semana" . Engadget . Consultado el 24 de agosto de 2020 .
Apple ha anunciado oficialmente que cambiará de procesadores Intel a sus propios chips de la serie A basados en ARM en sus computadoras Mac.
- ^ "Microsoft lanzará una nueva Surface basada en ARM este otoño" . www.msn.com . Consultado el 28 de abril de 2021 .
enlaces externos
- "RISC vs. CISC" . Arquitectura RISC . Universidad Stanford. 2000.
- "Qué es RISC" . Arquitectura RISC . Universidad Stanford. 2000.
- Savard, John JG "No del todo RISC" . Computadoras .
- Mashey, John R. (5 de septiembre de 2000). "Otro mensaje más del antiguo mensaje RISC [sin cambios desde la última vez]" . Grupo de noticias : comp.arch . Usenet: [email protected] .
Enésima reubicación de CISC vs RISC (o qué es RISC, en realidad)