Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Risc Imp
Risc Imp
Ir a la navegaci�nIr a la b�squeda
Commons-emblem-question book orange.svg
Este art�culo o secci�n necesita referencias que aparezcan en una publicaci�n
acreditada.
Este aviso fue puesto el 7 de abril de 2012.
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.
�ndice
1 Filosof�a de dise�o antes de RISC
2 Filosof�a de dise�o RISC
2.1 Multitarea
3 Historia
4 Caracter�sticas
5 Primeros dise�os RISC
6 RISC moderno
7 V�ase tambi�n
8 Referencias
9 Enlaces externos
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.
Sin embargo, los registros tienen el inconveniente de ser algo complejos para
implementar. Cada uno est� representado por transistores en el chip, en este
aspecto la memoria principal tiende a ser mucho m�s simple y econ�mica. Adem�s, los
registros le a�aden complejidad al cableado, porque la unidad central de
procesamiento necesita estar conectada a todos y cada uno de los registros para
poder utilizarlos por igual.
Como resultado de esto, muchos dise�os de CPU limitan el uso de registros de alguna
u otra manera. Algunos incluyen pocos registros, aunque esto limita su velocidad.
Otros dedican sus registros a tareas espec�ficas para reducir la complejidad; por
ejemplo, un registro podr�a ser capaz de hacer operaciones con uno o m�s de los
otros registros, mientras que el resultado podr�a estar almacenado en cualquiera de
ellos.
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 estos estaba disponible para cada instrucci�n.
Otro descubrimiento fue que debido a que esas operaciones eran escasamente
utilizadas, de hecho tend�an a ser m�s lentas que un n�mero peque�o de operaciones
haciendo lo mismo. Esta paradoja fue un efecto colateral del tiempo que se
utilizaba dise�ando los CPU, los dise�adores simplemente no ten�an tiempo de
optimizar cada instrucci�n posible, y en vez de esto solo optimizaban las m�s
utilizadas. Un famoso ejemplo de esto era la instrucci�n VAX INDEX, que se
ejecutaba m�s lentamente que un bucle que implementara el mismo c�digo.
Casi al mismo tiempo, las CPU comenzaron a correr a velocidades mayores que las de
la memoria con la que se comunicaban. A�n a finales de los setenta, era aparente
que esta disparidad continuar�a increment�ndose al menos durante la siguiente
d�cada, para entonces los CPU podr�an ser cientos de veces m�s r�pidos que la
memoria. Esto signific� que los avances para optimizar cualquier modo de
direccionamiento ser�an completamente sobrepasados por las velocidades tan lentas
en las que se llevaban a cabo.
Otra parte del dise�o RISC lleg� desde las medidas pr�cticas de los programas en el
mundo real. Andrew Tanenbaum reuni� muchos de estos, demostrando as� que la mayor�a
de los procesadores estaban sobredimensionados. Por ejemplo, �l demostr� que el 98
% de todas las constantes en un programa pod�an acomodarse en 13 bits, aun cuando
cada dise�o de CPU dedicaba algunos m�ltiplos de 8 bits para almacenarlos,
t�picamente 8, 16 o 32, una palabra entera. Tomando este hecho en cuenta sugiere
que una m�quina deber�a permitir que las constantes fuesen almacenadas en los bits
sin utilizar de otras instrucciones, disminuyendo el n�mero de accesos a memoria.
En lugar de cargar n�meros desde la memoria o los registros, estos podr�an estar
ah� mismo para el momento en el que el CPU los necesitara, y por lo tanto el
proceso ser�a mucho m�s r�pido. Sin embargo, esto requer�a que la instrucci�n misma
fuera muy peque�a, de otra manera no existir�a suficiente espacio libre en los 32
bits para mantener constantes de un tama�o razonable.
Fue el peque�o n�mero de modos y �rdenes que dio lugar al t�rmino conjunto reducido
de instrucciones. Esta no es una definici�n correcta, ya que los dise�os RISC
cuentan con una vasta cantidad de conjuntos de instrucciones para ellos. La
verdadera diferencia es la filosof�a para hacer todo en registros y llamar y
guardar los datos hacia ellos y en ellos mismos. Esta es la raz�n por la que la
forma m�s correcta de denominar este dise�o es cargar-almacenar. Con el paso del
tiempo las t�cnicas de dise�o antiguas se dieron a conocer como Computadora con
Conjunto de Instrucciones Complejo, CISC por sus siglas en ingl�s, aunque esto fue
solamente para darles un nombre diferente por razones de comparaci�n.
Por esto la filosof�a RISC fue crear instrucciones peque�as, implicando que hab�a
pocas, de ah� el nombre conjunto reducido de instrucciones. El c�digo fue
implementado como series de esas instrucciones simples, en vez de una sola
instrucci�n compleja que diera el mismo resultado. Esto hizo posible tener m�s
espacio dentro de la instrucci�n para transportar datos, resultando esto en la
necesidad de menos registros en la memoria. Al mismo tiempo la interfaz con la
memoria era considerablemente simple, permitiendo ser optimizada.
Sin embargo RISC tambi�n ten�a sus desventajas. Debido a que una serie de
instrucciones son necesarias para completar incluso las tareas m�s sencillas, el
n�mero total de instrucciones para la lectura de la memoria es m�s grande, y por lo
tanto lleva m�s tiempo. Al mismo tiempo no estaba claro d�nde habr�a o no una
ganancia neta en el desempe�o debido a esta limitaci�n, y hubo una batalla casi
continua en el mundo de la prensa y del dise�o sobre los conceptos de RISC.
Multitarea
Debido a lo redundante de las microinstrucciones, los sistemas operativos dise�ados
para estos microprocesadores, contemplaban la capacidad de subdividir un
microprocesador en varios, reduciendo el n�mero de instrucciones redundantes por
cada instancia del mismo. Con una arquitectura del software optimizada, los
entornos visuales desarrollados para estas plataformas, contemplaban la posibilidad
de ejecutar varias tareas en un mismo ciclo de reloj. As� mismo, la paginaci�n de
la memoria RAM era din�mica y se asignaba una cantidad suficiente a cada instancia,
existiendo una especie de 'simbiosis' entre la potencia del microprocesador y la
RAM dedicada a cada instancia del mismo.
La multitarea dentro de la arquitectura CISC nunca ha sido real, tal como en los
RISC s� lo es. En CISC, el microprocesador en todo su conjunto est� dise�ado en
tantas instrucciones complejas y diferentes, que la subdivisi�n no es posible, al
menos a nivel l�gico. Por lo tanto, la multitarea es aparente y por �rdenes de
prioridad. Cada ciclo de reloj trata de atender a una tarea instanciada en la RAM y
pendiente de ser atendida. Con una cola de atenci�n por tarea FIFO para los datos
generados por el procesador, y LIFO para las interrupciones de usuario, trataban de
dar prioridad a las tareas que el usuario desencadenara en el sistema. La
apariencia de multitarea en un CISC tradicional, viene de la mano de los modelos
escalares de datos, convirtiendo el flujo en un vector con distintas etapas y
creando la tecnolog�a pipeline.
Historia
Mientras la filosof�a de dise�o RISC se estaba formando, nuevas ideas comenzaban a
surgir con un �nico fin: incrementar dr�sticamente el rendimiento de la CPU.
Una idea era la de incluir un canal por el cual se pudieran dividir las
instrucciones en pasos y trabajar en cada paso muchas instrucciones diferentes al
mismo tiempo. Un procesador normal podr�a leer una instrucci�n, decodificarla,
enviar a la memoria la instrucci�n de origen, realizar la operaci�n y luego enviar
los resultados. La clave de la canalizaci�n es que el procesador pueda comenzar a
leer la siguiente instrucci�n tan pronto como termine la �ltima instrucci�n,
significando esto que ahora dos instrucciones se est�n trabajando (una est� siendo
le�da, la otra est� comenzando a ser decodificada), y en el siguiente ciclo habr�
tres instrucciones. Mientras que una sola instrucci�n no se completar�a m�s r�pido,
la siguiente instrucci�n ser�a completada enseguida. La ilusi�n era la de un
sistema mucho m�s r�pido. Esta t�cnica se conoce hoy en d�a como Segmentaci�n de
cauce.
Otra soluci�n m�s era utilizar varios elementos de procesamiento dentro del
procesador y ejecutarlos en paralelo. En vez de trabajar en una instrucci�n para
sumar dos n�meros, esos procesadores superescalares podr�an ver la siguiente
instrucci�n en el canal y tratar de ejecutarla al mismo tiempo en una unidad
id�ntica. Esto no era muy f�cil de hacer, sin embargo, ya que algunas instrucciones
depend�an del resultado de otras instrucciones.
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:
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.
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 estos).
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.
Los dise�os RISC que m�s se dieron a conocer sin embargo, fueron aquellos donde los
resultados de los programas de investigaci�n de las universidades eran ejecutados
con fondos del programa DARPA VLSI. El programa VLSI pr�cticamente desconocido hoy
en d�a, llev� a un gran n�mero de avances en el dise�o de chips, la fabricaci�n y
a�n en las gr�ficas asistidas por computadora.
Casi al mismo tiempo, John Hennessy comenz� un proyecto similar llamado MIPS en la
Universidad de Stanford en 1981. MIPS se centraba casi completamente en la
segmentaci�n, asegur�ndose de que ejecutara tan lleno como fuera posible. Aunque la
segmentaci�n ya hab�a sido utilizada en otros dise�os, varias caracter�sticas del
chip MIPS hac�an su segmentaci�n mucho m�s r�pida. Lo m�s importante, y quiz�
molesto de estas caracter�sticas era el requisito de que todas las instrucciones
fueran capaces de completarse en un solo ciclo. Este requisito permit�a al canal
ser ejecutado a velocidades m�s altas (no hab�a necesidad de retardos inducidos) y
es la responsable de la mayor�a de la velocidad del procesador. Sin embargo,
tambi�n ten�a un efecto colateral negativo al eliminar muchas de las instrucciones
potencialmente utilizables, como una multiplicaci�n o una divisi�n.
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.
En los primeros a�os, todos los esfuerzos de RISC eran bien conocidos, pero muy
confinados a los laboratorios de las universidades que los hab�an creado. El
esfuerzo de Berkeley se dio a conocer tanto que eventualmente se convirti� en el
nombre para el proyecto completo. Muchos en la industria de la computaci�n
criticaban el que los beneficios del rendimiento no se pod�an traducir en
resultados en el mundo real debido a la eficiencia de la memoria de m�ltiples
instrucciones, y esa fue la raz�n por la que nadie los estaba utilizando. Pero a
comienzos de 1986, todos los proyectos de investigaci�n RISC comenzaron a entregar
productos. De hecho, casi todos los procesadores RISC modernos son copias directas
del dise�o RISC-II.
RISC moderno
La investigaci�n de Berkeley no fue comercializada directamente, pero el dise�o
RISC-II fue utilizado por Sun Microsystems para desarrollar el SPARC, por Pyramid
Technology para desarrollar sus m�quinas de multiprocesador de rango medio, y por
casi todas las compa��as unos a�os m�s tarde. Fue el uso de RISC por el chip de SUN
en las nuevas m�quinas el que demostr� que los beneficios de RISC eran reales, y
sus m�quinas r�pidamente desplazaron a la competencia y esencialmente se apoderaron
de todo el mercado de estaciones de trabajo.
John Hennessy dej� Stanford para comercializar el dise�o MIPS, comenzando una
compa��a conocida como MIPS Computer Systems Inc. Su primer dise�o fue el chip de
segunda generaci�n MIPS-II conocido como el R2000. Los dise�os MIPS se convirtieron
en uno de los chips m�s utilizados cuando fueron incluidos en las consolas de juego
Nintendo 64 y PlayStation. Hoy son uno de los procesadores integrados m�s
com�nmente utilizados en aplicaciones de alto nivel por Silicon Graphics.
IBM aprendi� del fallo del RT-PC y tuvo que continuar con el dise�o del RS/6000
basado en su entonces nueva arquitectura IBM POWER. Entonces movieron sus
computadoras centrales S/370 a los chips basados en IBM POWER, y se sorprendieron
al ver que aun el conjunto de instrucciones muy complejas (que era parte del S/360
desde 1964) corr�a considerablemente m�s r�pido. El resultado fue la nueva serie
System/390 que a�n hoy en d�a es comercializada como zSeries. El dise�o IBM POWER
tambi�n se ha encontrado movi�ndose hacia abajo en escala para producir el dise�o
PowerPC, el cual elimin� muchas de las instrucciones solo IBM y cre� una
implementaci�n de chip �nico. El PowerPC fue utilizado en todas las computadoras
Apple Macintosh hasta 2006, y est� comenzando a ser utilizado en aplicaciones
automotrices (algunos veh�culos tienen m�s de 10 dentro de ellos), las consolas de
videojuegos de �ltima generaci�n (PlayStation 3, Wii y Xbox 360) est�n basadas en
PowerPC.
Casi todos los dem�s proveedores se unieron r�pidamente. De los esfuerzos similares
en el Reino Unido result� el INMOS Trasputer, el Acorn Archimedes y la l�nea
Advanced RISC Machine, la cual tiene un gran �xito hoy en d�a. Las compa��as
existentes con dise�os CISC tambi�n se unieron a la revoluci�n. Intel lanz� el i860
y el i960 a finales de los ochenta, aunque no fueron muy exitosos. Motorola
construy� un nuevo dise�o pero no le vio demasiado uso y eventualmente lo abandon�,
uni�ndose a IBM para producir el PowerPC. AMD lanz� su familia 29000 la cual se
convirti� en el dise�o RISC m�s popular a principios de los noventa.
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.