You are on page 1of 35

COMPUTADORES RISC - CISC

ALUMNO: Ortiz Morales, Einstein

DOCENTE: Ing. Gregorio Vsquez Pinedo

CURSO: Arquitectura de Computadoras I

ndice de Contenido
Introduccin.................................................................................................................................. 4 Qu es RISC? ............................................................................................................................... 5 Principios de Diseo de las Computadores RISC .......................................................................... 5 Caractersticas............................................................................................................................... 6 RISC Moderno ............................................................................................................................... 7 RISC vs CISC ................................................................................................................................... 8 Conjunto de instrucciones ............................................................................................................ 8 Instrucciones de carga/almacenamiento ................................................................................. 8 Instrucciones de desplazamiento ............................................................................................. 8 Instrucciones Booleanas ........................................................................................................... 9 Instrucciones aritmticas.......................................................................................................... 9 Instrucciones de salto/bifurcacin ........................................................................................... 9 Instrucciones diversas............................................................................................................... 9 CUADRO COMPARATIVO ........................................................................................................ 10 MODOS DE DIRECCIONAMIENTO ........................................................................................... 10 FORMATO DE INSTRUCCIONES ............................................................................................... 10 Optimizacin ............................................................................................................................... 11 Tcnica del coloreado de grafos ............................................................................................. 11 Arquitectura................................................................................................................................ 12 Arquitecturas CISC .................................................................................................................. 13 Arquitecturas RISC .................................................................................................................. 14 Papel de los Compiladores en un Sistema RISC ...................................................................... 16 Segmentacin ............................................................................................................................. 17 Segmentacin de Cauce.......................................................................................................... 19 Ejemplo ................................................................................................................................... 20 Riesgos de Datos y de Control ................................................................................................ 20 Procesadores Superescalares .................................................................................................... 21 Procesamiento de las Instrucciones de Salto ......................................................................... 28 OpenRISC .................................................................................................................................... 28 Aplicaciones ................................................................................................................................ 29 Procesadores ARM.................................................................................................................. 29 Sun SPARC ............................................................................................................................... 31 Principales Caractersticas .................................................................................................. 32 MIPS ........................................................................................................................................ 32

Bibliografa .................................................................................................................................. 34

ndice de Figuras
Figura 1. Microprocesadores CISC. ............................................................................................. 13 Figura 2. Microprocesadores RISC. ............................................................................................. 15 Figura 3. Programa de instrucciones en el Intel Pentium IV. ..................................................... 18 Figura 4. Detalle de la segmentacin de instrucciones. ............................................................. 18 Figura 5. Arquitectura Harvard. .................................................................................................. 19 Figura 6. Cmo se conforma la segmentacin de instruccin. ................................................... 20 Figura 7. Ejecucin de instrucciones en un procesador superescalar. ....................................... 22 Figura 8. Organizacin de los procesadores superescalares. ..................................................... 22 Figura 9. Organizacin de la microarquitectura de un procesador superescalar....................... 23 Figura 10. Procesador ARM en una impresora HP. .................................................................... 31 Figura 11. Sun UltraSparc II. ....................................................................................................... 32 Figura 12. Un microprocesador MIPS R4400 fabricado por Toshiba.......................................... 33

COMPUTADORES RISC
Introduccin
A lo largo de la historia de la industria de los ordenadores, la tendencia mayormente adoptada para conseguir un aumento de prestaciones, ha sido el incremento de la complejidad de las instrucciones. Es lo que se ha denominado "computacin con conjuntos de instrucciones complejas" o CISC (Complex Instruction Set Computing). Sin embargo, la tendencia actual, se esfuerza en conseguir procesadores con conjuntos de instrucciones de complejidad reducida o RISC (Reduced Instruction Set Computing). La idea es que un conjunto de instrucciones poco complejas son simples, y por tanto de ms rpida ejecucin, lo que permite crear un cdigo ms "aerodinmico". Tanto la tecnologa CISC como la RISC son acreditadas a IBM, aunque sus antecesores bien pueden ser John vonNeumman (inventor del primer programa de ordenador almacenado, y que promova la velocidad inherente a conjuntos de instrucciones reducidas), Maurice Wilkes (padre de la microprogramacin y de muchos conceptos de los diseos RISC), y Seymour Cray (primeros supercomputadores, empleando principios RISC). En 1975, IBM inici el desarrollo de un controlador para un sistema de conmutacin telefnica, que aunque fue abandonado, sirvi como punto de partida para el desarrollo de una CPU con tecnologa ECL, corazn del sistema 801, precursor del IBM PC RT. Los inicios de la tecnologa RISC tambin surgen en el ambiente acadmico, ya que en 1980, la Universidad de Berkeley (California), el Dr. David A. Patterson inici un proyecto denominado RISC I, que obtuvo resultados en tan solo 19 meses, seguido por RISC II, SOAR (Smalltalk on a RISC) y SPUR (Symbolic Processing on a RISC). El resultado directo, adems de la educacin en la ingeniera y los fundamentos del diseo de microprocesadores, fue la creacin de una mquina que fuese capaz de mayores velocidades de ejecucin a menores velocidades de reloj y que requiriese menores esfuerzos de diseo. Casi simultneamente, en la Universidad de Stanford, el Dr. John Hennesy inici tambin un proyecto de implementacin RISC, denominado MIPS, seguido por el sistema MIPS-XMP, enfocados hacia el proceso simblico, demostrando las capacidades de velocidad de la arquitectura RISC. Ambos profesores se vieron envueltos rpidamente, en proyectos de productos comerciales, y en concreto, Hennesy fue uno de los fundadores de MIPS Computer Systems, mientras Patterson actuaba de asesor durante el desarrollo del primer SPARC. Por otro lado, durante las pasadas dcadas, el multiproceso, como medida de incrementar drsticamente las prestaciones de los sistemas a un coste razonable, se ha visto reducido al mbito de los computadores de "alto nivel", en parte debido a los bajos niveles de integracin del silicio, y a la falta de software que facilitase la ejecucin paralela de las aplicaciones.

Las ventajas de los procesadores RISC, especialmente las ligadas a los sistemas abiertos, los hacen plataformas ideales para explorar los puntos fuertes de los sistemas multiprocesadores. Sin embargo RISC tambin tena sus desventajas. Debido a que una serie de instrucciones son necesarias para completar incluso las tareas ms sencillas, el nmero total de instrucciones para la lectura de la memoria es ms grande, y por lo tanto lleva ms tiempo. Al mismo tiempo no estaba claro dnde habra o no una ganancia neta en el desempeo debido a esta limitacin, y hubo una batalla casi continua en el mundo de la prensa y del diseo sobre los conceptos de RISC.

Qu es RISC?
Es un tipo de microprocesador con las siguientes caractersticas fundamentales: 1. Instrucciones de tamaos fijos y presentados en un reducido nmero de formatos. 2. Slo las instrucciones de carga y almacenamiento acceden a la memoria por datos. Adems estos procesadores suelen disponer de muchos registros de propsito general. El objetivo de disear mquinas con esta arquitectura es posibilitar la segmentacin y el paralelismo en la ejecucin de instrucciones y reducir los accesos a memoria. Las mquinas RISC protagonizan la tendencia actual de construccin de microprocesadores. PowerPC, DEC Alpha, MIPS, ARM; son ejemplos de algunos de ellos. RISC es una filosofa de diseo de CPU para computadora que est a favor de conjuntos de instrucciones pequeas y simples que toman menor tiempo para ejecutarse. El tipo de procesador ms comnmente utilizado en equipos de escritorio, el x86, est basado en CISC en lugar de RISC, aunque las versiones ms nuevas traducen instrucciones basadas en CISC x86 a instrucciones ms simples basadas en RISC para uso interno antes de su ejecucin. La idea fue inspirada por el hecho de que muchas de las caractersticas que eran incluidas en los diseos tradicionales de CPU para aumentar la velocidad estaban siendo ignoradas por los programas que eran ejecutados en ellas. Adems, la velocidad del procesador en relacin con la memoria de la computadora que acceda era cada vez ms alta. Esto conllev la aparicin de numerosas tcnicas para reducir el procesamiento dentro del CPU, as como de reducir el nmero total de accesos a memoria.

Principios de Diseo de las Computadores RISC


Resulta un tanto ingenuo querer abarcar completamente los principios de diseo de las mquinas RISC, sin embargo, se intentar presentar de una manera general la filosofa bsica de diseo de estas maquinas, teniendo en cuenta que dicha filosofa puede presentar variantes. Es muy importante conocer estos principios bsicos, pues de stos se desprenden algunas caractersticas importantes de los sistemas basados en microprocesadores RISC. En el diseo de una mquina RISC se tienen cinco pasos: 1. Analizar las aplicaciones para encontrar las operaciones clave. 2. Disear un bus de datos que sea ptimo para las operaciones clave.

3. Disear instrucciones que realicen las operaciones clave utilizando el bus de datos. 4. Agregar nuevas instrucciones slo si no hacen ms lenta a la mquina. 5. Repetir este proceso para otros recursos. El primer punto se refiere a que el diseador deber encontrar qu es lo que hacen en realidad los programas que se pretenden ejecutar. Ya sea que los programas a ejecutar sean del tipo algortmicos tradicionales, o estn dirigidos a robtica o al diseo asistido por computadora. La parte medular de cualquier sistema es la que contiene los registros, el ALU y los 'buses' que los conectan. Se debe optimar este circuito para el lenguaje o aplicacin en cuestin. El tiempo requerido, (denominado tiempo del ciclo del bus de datos) para extraer los operandos de sus registros, mover los datos a travs del ALU y almacenar el resultado de nuevo en un registro, deber hacerse en el tiempo ms corto posible. El siguiente punto a cubrir es disear instrucciones de mquina que hagan un buen uso del bus de datos. Por lo general se necesitan solo unas cuantas instrucciones y modos de direccionamiento; slo se deben colocar instrucciones adicionales si sern usadas con frecuencia y no reducen el desempeo de las ms importantes. Siempre que aparezca una nueva y atractiva caracterstica, deber analizarse y ver la forma en que se afecta al ciclo de bus. Si se incrementa el tiempo del ciclo, probablemente no vale la pena tenerla. Por ltimo, el proceso anterior debe repetirse para otros recursos dentro del sistema, tales como memoria cache, administracin de memoria, coprocesadores de punto flotante, etctera. Una vez planteadas las caractersticas principales de la arquitectura RISC as como la filosofa de su diseo, podramos extender el anlisis y estudio de cada una de las caractersticas importantes de las arquitecturas RISC y las implicaciones que estas tienen.

Caractersticas
Las caractersticas comunes a todos los procesadores RISC, fuente de sus capacidades de altas prestaciones, no es slo una cuestin de diferencias en el conjunto de instrucciones, puesto que es fundamental resaltar el mejor uso y aprovechamiento de los recursos del silicio, es decir, menor tiempo de diseo y empleo de menor nmero de transistores, lo que redunda en menor nmero de errores de diseo y menor tiempo de ejecucin para instrucciones individuales., son: 1. Modelo de conjunto de instrucciones Load/Store (Cargar/Almacenar). Slo las instrucciones Load/Store acceden a memoria; las dems operaciones en un RISC, tienen lugar en su gran conjunto de registros. Ello simplifica el direccionamiento y acorta los tiempos de los ciclos de la CPU, y adems facilita la gestin de los fallos de pginas (page faults) en entornos de memoria virtual. Adems, permite un elevado nivel de concurrencia a consecuencia de la independencia de las operaciones de Load/Store de la ejecucin del resto de las instrucciones. 2. Arquitectura no destructiva de tres direcciones. Los procesadores CISC destruyen la informacin que existe en alguno de los registros, como consecuencia de la ejecucin normal de instrucciones; esto es debido a su arquitectura de dos direcciones, por la cual el resultado de una operacin sobrescribe uno de los registros que contena a los operandos.

3.

4.

5.

6.

Por contra, las instrucciones RISC, con tres direcciones, contienen los campos de los dos operandos y de su resultado. Por lo tanto, tanto los operandos origen como el destino, son mantenidos en los registros tras haber sido completada la operacin. Esta arquitectura "no destructiva" permite a los compiladores organizar las instrucciones de modo que mantengan llenos los conductos (pipelines) del chip, y por tanto reutilizar los operandos optimizando la concurrencia. Instrucciones simples, de formato fijo, con pocos modos de direccionamiento. Las instrucciones simples reducen de manera muy significativa el esfuerzo para su descodificacin, y favorecen su ejecucin en pipelines. Las instrucciones de longitud fija, con formatos fijos, implican que los campos de cdigos de operacin (opcodes) y de los operandos estn siempre codificados en las mismas posiciones, permitiendo el acceso a los registros al mismo tiempo que se est descodificando el cdigo de operacin. Todas las instrucciones tienen una longitud equivalente a una palabra y estn alineadas en la memoria en lmites de palabra (word boundaries), ya que no pueden ser repartidas en pedazos que puedan estar en diferentes pginas. Ausencia de microcdigo. El microcdigo no se presta a la ejecucin en ciclos nicos, ya que requiere que el hardware sea dedicado a su interpretacin dinmica. La programacin en microcdigo no hace que el software sea ms rpido que el programado con un conjunto de instrucciones simples. Todas las funciones y el control, en los procesadores RISC, estn "cableados" (hardwired), para lograr una mxima velocidad y eficiencia. Ejecucin en conductos (pipelined). Las instrucciones simples, de formato fijo y ciclo nico permiten que las diferentes etapas de los ciclos de ejecucin (bsqueda o fetch, decodificacin, ejecucin, y escritura del resultado o result write-back) para instrucciones mltiples, se puedan realizar simultneamente, de un modo ms simple y eficaz. Ejecucin en ciclos nicos (single-cycle). El resultado directo de los conjuntos de instrucciones que ofrecen los procesadores RISC, es que cada instruccin puede ser ejecutada en un nico ciclo de la CPU. Esto invalida la creencia de que las microinstrucciones en microcdigo, creadas para ser ejecutadas en un solo ciclo de procesador, son ms rpidas que las instrucciones del lenguaje ensamblador. Ya que el cach est construido partiendo de la misma tecnologa que el almacenamiento de control del microprograma, una nica instruccin puede ser ejecutada a la misma velocidad que una microinstruccin. La ejecucin en ciclos nicos tambin simplifica la gestin de las interrupciones y los conductos (pipelines).

RISC Moderno
Los diseos RISC han llevado a un gran nmero de plataformas y arquitecturas al xito, algunas de las ms grandes: La lnea MIPS Technologies Inc., que se encontraba en la mayora 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 versin PowerPC de Motorola e IBM (una versin 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

automviles, routers, etc, as como en muchas consolas de videojuegos, como la Playstation 3, Xbox 360 y Nintendo Wii. El procesador SPARC y UltraSPARC de Sun Microsystems y Fujitsu, que se encuentra en sus ltimos modelos de servidores (y hasta 2008 tambin 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 Se encuentra en dispositivos PALM, Nintendo DS, Game Boy Advance y en mltiples PDAs, telfonos mviles y reproductores multimedia (como el iPod).

RISC vs CISC
La siguiente tabla esquematiza algunas de las principales caractersticas de las arquitecturas RISC Y CISC. RISC nfasis en el software Incluye el multi-reloj, instrucciones reducida Inter registro: CARGA y ALMACN incorporado en instrucciones Altos ciclos por segundo, tamaos de cdigo pequeos Transistores usados para almacenar instrucciones complejas CISC nfasis en el hardware Solo-reloj, instrucciones complejas Memoria a memoria: CARGA y ALMACN son las instrucciones independientes Ciclos bajos por segundo, tamaos de cdigo grandes Pasa ms transistores en los registros de la memoria

Conjunto de instrucciones Instrucciones de carga/almacenamiento


OPERANDO LDSB LDSH LDUB LDUH LD LDD STB STH STD STDD DESCRIPCIN Cargar byte con signo Cargar media palabra con signo Cargar byte sin signo Cargar media palabra sin signo Cargar palabra Cargar doble palabra Almacenar byte Almacenar media palabra Almacenar palabra Almacenar doble palabra

Instrucciones de desplazamiento
OPERANDO DESCRIPCIN SLL Desplazamiento lgico a la izquierda SRL Desplazamiento lgico a la derecha

SRA

Desplazamiento aritmtico a la derecha

Instrucciones Booleanas
OPERANDO AND ANDCC ANDN ANDNCC OR ORCC ORN ORNCC XOR XORCC XNOR XNORCC DESCRIPCIN Y Y, ajustar icc No Y No Y, ajustar icc O O, ajustar icc No O No O, ajustar icc O Exclusiva O Exclusiva, ajustar icc No O Exclusiva No O Exclusiva, ajustar icc

Instrucciones aritmticas
OPERANDO ADD ADDCC ADDX ADDXCC SUB SUBCC SUBX SUBXCC MULSCC DESCRIPCIN Sumar Sumar, ajustar icc Sumar con acarreo Sumar con acarreo, ajustar icc Restar Restar, ajustar icc Restar con adeudo Restar con adeudo, ajustar icc Paso de multiplicacin, ajustar icc

Instrucciones de salto/bifurcacin
OPERANDO BCC FBCC CBCC CALL JMPL TCC SAVE RESTORE RETT DESCRIPCIN Bifurcar si condicin Bifurcar si condicin de coma flotante Bifurcar si condicin del procesador Llamar a procedimiento Saltar y enlazar Interceptar si condicin Avanzar ventana de registros Mover ventanas hacia atrs Retornar de interceptacin

Instrucciones diversas
OPERANDO DESCRIPCIN SETHI Fijar los 22 bits altos

UNIMP RD WR IFLUSH

Instruccin no implementada (Interceptacin) Leer un registro especial Escribir en un registro especial Vaciar la cach de instrucciones

CUADRO COMPARATIVO
CISC Una instruccin por circunstancia. Instrucciones complejas. Lenta ejecucin de la instruccin. Pocas instrucciones por trabajo RISC Pequeas instrucciones. Instrucciones simples. Ejecucin rpida de las instrucciones. Varias instrucciones por trabajo especfico.

MODOS DE DIRECCIONAMIENTO
El nico modo de direccionamiento disponible, aparte del modo registro, es el modo de desplazamiento. La direccin efectiva de un operando consiste en una direccin contenida en un registro ms un desplazamiento.

FORMATO DE INSTRUCCIONES
El RISC emplea un formato de instrucciones de 32 bits. Todas las instrucciones comienzan con un cdigo de operacin de 2 bits. En ciertas instrucciones, este cdigo se ampla con bits de cdigo de operacin adicionales en otras partes del formato.

Optimizacin
El objetivo del compilador es mantener en registros los operandos necesarios para tantos clculos como sea posible y minimizarlas operaciones de carga almacenamiento. Se usa la siguiente aproximacin, cada cantidad candidata a residir en un registro se asigna a un registro simblico. Despus el nmero ilimitado de registros simblicos es asignado a un nmero fijo de registros reales. Los registros simblicos cuyo uso no se solapa pueden compartir el mismo registro real. Si hay ms cantidades que registros, algunas de las cantidades se asignan a posiciones de memoria y otras a registros. La tcnica usada en los compiladores para RISC es el coloreado de grafos. El problema es, dado un grafo asignar colores a los nodos de manera que nodos adyacentes tengan colores diferentes y se minimice el nmero de colores distintos. Se adapta una vez que el programa se ha analizado para construir un grafo de interferencias entre registros. Los nodos son los registros simblicos. Si dos registros estn vivos se unen por un arco para representar su interferencia. Se intenta colorear el grafo con n colores, donde n es el nmero de registro. Los nodos que no se pueden colorear se colocan en memoria.

Tcnica del coloreado de grafos

Arquitectura
Una de las primeras decisiones a la hora de disear un microprocesador es decidir cul ser su juego de instrucciones. La decisin es trascendente por dos razones; primero, el juego de instrucciones decide el diseo fsico del conjunto; segundo, cualquier operacin que deba ejecutarse en el microprocesador deber poder ser descrita en trminos de un lenguaje de estas instrucciones. (Muro Garca, 2007) La arquitectura RISC plantea en su filosofa de diseo una relacin muy estrecha entre los compiladores y la misma arquitectura. La meta principal es incrementar el rendimiento del procesador, ya sea optimizando alguno existente o se desee crear uno nuevo. Para esto se deben considerar tres reas principales a cubrir en el diseo del procesador y estas son: La arquitectura. La tecnologa de proceso. El encapsulado.

La tecnologa de proceso, se refiere a los materiales y tcnicas utilizadas en la fabricacin del circuito integrado, el encapsulado se refiere a cmo se integra un procesador con lo que lo rodea en un sistema funcional, que de alguna manera determina la velocidad total del sistema. Aunque la tecnologa de proceso y de encapsulado son vitales en la elaboracin de procesadores ms rpidos, es la arquitectura del procesador lo que hace la diferencia entre el rendimiento de una CPU (Control Process Unit) y otra. Y es en la evaluacin de las arqutecturas RISC y CISC donde centraremos nuestra atencin. Dependiendo de cmo el procesador almacena los operandos de las instrucciones de la CPU, existen tres tipos de juegos de instrucciones:

1. Juego de instrucciones para arquitecturas basadas en pilas. 2. Juego de instrucciones para arquitecturas basadas en acumulador. 3. Juego de instrucciones para arquitecturas basadas en registros. Las arqutecturas RISC y CISC son ejemplos de CPU con un conjunto de instrucciones para arqutecturas basadas en registros. (Divisin de Ciencias Bsicas e Ingeniera de la UAM)

Arquitecturas CISC
Los microprocesadores CISC tienen un conjunto de instrucciones que se caracteriza por ser muy amplio y permitir operaciones complejas entre operandos situados en la memoria o en los registros internos.

Figura 1. Microprocesadores CISC.

Este tipo de arquitectura dificulta el paralelismo entre instrucciones, por lo que en la actualidad la mayora de los sistemas CISC de alto rendimiento implementan un sistema que convierte dichas instrucciones complejas en varias instrucciones simples, llamadas generalmente microinstrucciones. La microprogramacin es una caracterstica importante y esencial de casi todas las arqutecturas CISC, por ejemplo Intel 8086, 8088, 80286, 80386, 80486; Motorola 68000, 68010, 68020, 68030, 6840. La microprogramacin significa que cada instruccin de mquina es interpretada por un microprograma localizado en una memoria en el circuito integrado del procesador. En la dcada de los sesentas la microprogramacin, por sus caractersticas, era la tcnica ms apropiada para las tecnologas de memorias existentes en esa poca y permita desarrollar tambin procesadores con compatibilidad ascendente. En consecuencia, los procesadores se dotaron de poderosos conjuntos de instrucciones. Las instrucciones compuestas son decodificadas internamente y ejecutadas con una serie de microinstrucciones almacenadas en una ROM interna. Para esto se requieren de varios ciclos de reloj (al menos uno por microinstruccin). Cuando el sistema operativo o una aplicacin requieren de una de estas acciones, enva al procesador el nombre del comando para realizarla junto con el resto de informacin complementaria que se necesite. Pero cada uno de estos comandos de la ROM del CISC varan de tamao y, por lo tanto, el chip debe en primer lugar verificar cuanto espacio requiere el comando para ejecutarse y poder as reservrselo en la memoria interna. Adems, el procesador debe determinar la forma correcta de cargar y almacenar el comando, procesos ambos que ralentizan el rendimiento del sistema.

El procesador enva entonces el comando solicitado a una unidad que lo descodifica en instrucciones ms pequeas que podrn ser ejecutadas por un nanoprocesador, una especie de procesador dentro del procesador. Y al no ser las instrucciones independientes, pues son instrucciones menores procedentes de la descodificacin de una instruccin mayor, slo puede realizarse una instruccin cada vez. A travs de la compleja circuitera del chip, el nanoprocesador ejecuta cada una de las instrucciones del comando. El desplazamiento por esta circuitera tambin ralentiza el proceso. Para realizar una sola instruccin un chip CISC requiere de cuatro a diez ciclos de reloj. (Muro Garca, 2007) Entre las bondades de CISC destacan las siguientes: Reduce la complejidad de crear compiladores. Permite reducir el costo total del sistema. Reduce los costos de desarrollo de software. Mejora la compactacin de cdigo. Facilita la depuracin de errores.

Arquitecturas RISC
Buscando aumentar la velocidad del procesamiento se descubri en base a experimentos que, con una determinada arquitectura de base, la ejecucin de programas compilados directamente con microinstrucciones y residentes en memoria externa al circuito integrado resultaban ser ms eficientes, gracias a que el tiempo de acceso de las memorias se fue decrementando conforme se mejoraba su tecnologa de encapsulado. Debido a que se tiene un conjunto de instrucciones simplificado, stas se pueden implantar por hardware directamente en la CPU, lo cual elimina el microcdigo y la necesidad de decodificar instrucciones complejas. En investigaciones hechas a mediados de la dcada de los setentas, con respecto a la frecuencia de utilizacin de una instruccin en un CISC y al tiempo para su ejecucin, se observ lo siguiente: Alrededor del 20% de las instrucciones ocupa el 80% del tiempo total de ejecucin de un programa. Existen secuencias de instrucciones simples que obtienen el mismo resultado que secuencias complejas predeterminadas, pero requieren tiempos de ejecucin ms cortos.

Las caractersticas esenciales de una arquitectura RISC pueden resumirse como sigue: Estos microprocesadores siguen tomando como base el esquema moderno de Von Neumann. Las instrucciones, aunque con otras caractersticas, siguen divididas en tres grupos: o Transferencia. o Operaciones. o Control de flujo.

Reduccin del conjunto de instrucciones a instrucciones bsicas simples, con la que pueden implantarse todas las operaciones complejas. Arquitectura del tipo load-store (carga y almacena). Las nicas instrucciones que tienen acceso a la memoria son 'load' y 'store'; registro a registro, con un menor nmero de acceso a memoria. Casi todas las instrucciones pueden ejecutarse dentro de un ciclo de reloj. Con un control implantado por hardware (con un diseo del tipo load-store), casi todas las instrucciones se pueden ejecutar cada ciclo de reloj, base importante para la reorganizacin de la ejecucin de instrucciones por medio de un compilador. Pipeline (ejecucin simultnea de varias instrucciones). Posibilidad de reducir el nmero de ciclos de mquina necesarios para la ejecucin de la instruccin, ya que esta tcnica permite que una instruccin puede empezar a ejecutarse antes de que haya terminado la anterior.

El hecho de que la estructura simple de un procesador RISC conduzca a una notable reduccin de la superficie del circuito integrado, se aprovecha con frecuencia para ubicar en el mismo, funciones adicionales: (Divisin de Ciencias Bsicas e Ingeniera de la UAM) Unidad para el procesamiento aritmtico de punto flotante. Unidad de administracin de memoria. Funciones de control de memoria cache. Implantacin de un conjunto de registros mltiples.

La idea estuvo inspirada tambin por el hecho de que muchas de las caractersticas que eran incluidas en los diseos tradicionales de CPU para aumentar la velocidad estaban siendo ignoradas por los programas que eran ejecutados en ellas. Adems, la velocidad del procesador en relacin con la memoria de la computadora que acceda era cada vez ms alta.

Figura 2. Microprocesadores RISC.

Debido a que se tiene un conjunto de instrucciones simplificado, stas se pueden implantar por hardware directamente en la CPU, lo cual elimina el microcdigo y la necesidad de decodificar instrucciones complejas. La arquitectura RISC funciona de modo muy diferente a la CISC, su objetivo no es ahorrar esfuerzos externos por parte del software con sus accesos a la RAM, sino facilitar que las instrucciones sean ejecutadas lo ms rpidamente posible. La forma de conseguirlo es simplificando el tipo de instrucciones que ejecuta el procesador. As, las instrucciones ms breves y sencillas de un procesador RISC son capaces de ejecutarse mucho ms aprisa que las instrucciones ms largas y complejas de un chip CISC. Sin embargo, este diseo requiere de mucha ms RAM y de una tecnologa de compilador ms avanzada. (Muro Garca, 2007)

La relativa sencillez de la arquitectura de los procesadores RISC conduce a ciclos de diseo ms cortos cuando se desarrollan nuevas versiones, lo que posibilita siempre la aplicacin de las ms recientes tecnologas de semiconductores. Por ello, los procesadores RISC no solo tienden a ofrecer una capacidad de procesamiento del sistema de 2 a 4 veces mayor, sino que los saltos de capacidad que se producen de generacin en generacin son mucho mayores que en los CISC. Por otra parte, es necesario considerar tambin que: La disponibilidad de memorias grandes, baratas y con tiempos de acceso menores de 60 ns. en tecnologas CMOS. Mdulos SRAM (Memoria de acceso aleatorio esttica) para memorias cache con tiempos de acceso menores a los 15 ns. Tecnologas de encapsulado que permiten realizar ms de 120 terminales.

Esto ha hecho cambiar, en la segunda mitad de la dcada de los ochentas, esencialmente las condiciones tcnicas para arquitecturas RISC. (Divisin de Ciencias Bsicas e Ingeniera de la UAM) Los comandos que incorpora el chip RISC en su ROM constan de varias instrucciones pequeas que realizan una sola tarea. Las aplicaciones son aqu las encargadas de indicar al procesador qu combinacin de estas instrucciones debe ejecutar para completar una operacin mayor. Adems, los comandos de RISC son todos del mismo tamao y se cargan y almacenan del mismo modo. Al ser estas instrucciones pequeas y sencillas, no necesitan ser descodificadas en instrucciones menores como en el caso de los chips CISC, pues ya constituyen en s unidades descodificadas. Por ello, el procesador RISC no gasta tiempo verificando el tamao del comando, en descodificarlo ni en averiguar cmo cargarlo y guardarlo. El procesador RISC puede adems ejecutar hasta 10 comandos a la vez pues el compilador del software es el que determina qu comandos son independientes y por ello es posible ejecutar varios a la vez. Y al ser los comandos del RISC ms sencillos, la circuitera por la que pasan tambin es ms sencilla. Estos comandos pasan por menos transistores, de forma que se ejecutan con ms rapidez. Para ejecutar una sola instruccin normalmente les basta con un ciclo de reloj. (Muro Garca, 2007) Entre las ventajas de RISC tenemos las siguientes: La CPU trabaja ms rpido al utilizar menos ciclos de reloj para ejecutar instrucciones. Utiliza un sistema de direcciones no destructivas en RAM. Eso significa que a diferencia de CISC, RISC conserva despus de realizar sus operaciones en memoria los dos operandos y su resultado, reduciendo la ejecucin de nuevas operaciones. Cada instruccin puede ser ejecutada en un solo ciclo del CPU.

Papel de los Compiladores en un Sistema RISC


El compilador juega un papel clave para un sistema RISC equilibrado. Todas las operaciones complejas se trasladan al microprocesador por medio de conexiones fijas en el circuito integrado para agilizar las instrucciones bsicas ms importantes. De esta manera, el compilador asume la funcin de un mediador inteligente entre el programa de aplicacin y el microprocesador. Es decir, se hace un gran esfuerzo para mantener al hardware tan simple como sea posible, an a costa de hacer al compilador considerablemente ms complicado.

Esta estrategia se encuentra en clara contra posicin con las mquinas CISC que tienen modos de direccionamiento muy complicados. En la prctica, la existencia en algunos modos de direccionamiento complicados en los microprocesadores CISC, hacen que tanto el compilador como el microprograma sean muy complicados. No obstante, las mquinas CISC no tienen caractersticas complicadas como carga, almacenamiento y salto que consumen mucho tiempo, las cuales en efecto aumentan la complejidad del compilador. Para suministrar datos al microprocesador de tal forma que siempre est trabajando en forma eficiente, se aplican diferentes tcnicas de optimizacin en distintos niveles jerrquicos del software. Los diseadores de RISC en la empresa MIP y en Hewlett Packard trabajan segn la regla siguiente: Una instruccin ingresa en forma fija en el circuito integrado del procesador (es decir, se alambra fsicamente en el procesador) si se ha demostrado que la capacidad total del sistema se incrementa en por lo menos un 1%. En cambio, los procesadores CISC, han sido desarrollados por equipos especializados de las empresas productoras de semiconductores y con frecuencia el desarrollo de compiladores se sigue por separado. Por consiguiente, los diseadores de los compiladores se encuentran con una interfaz hacia el procesador ya definido y no pueden influir sobre la distribucin ptima de las funciones entre el procesador y compilador. Las empresas de software que desarrollan compiladores y programas de aplicacin, tienden por razones de rentabilidad, a utilizar diferentes procesadores como usuarios de su software en lugar de realizar una optimizacin completa, y aprovechar as las respectivas caractersticas de cada uno. Lo cual tambin genera otros factores negativos de eficiencia. Esta limitacin de las posibilidades de optimizacin del sistema, que viene dada a menudo por una obligada compatibilidad, se super con los modernos desarrollos RISC. (Divisin de Ciencias Bsicas e Ingeniera de la UAM)

Segmentacin
La segmentacin es un mtodo por el cual se consigue aumentar el rendimiento de algunos sistemas electrnicos digitales. Es aplicado, sobre todo, en microprocesadores. El nombre viene de que para impulsar el gas en un oleoducto a la mxima velocidad es necesario dividir el oleoducto en tramos y colocar una bomba que d un nuevo impulse al gas. El smil con la programacin existe en que los clculos deben ser registrados o sincronizados con el reloj cada cierto tiempo para que la ruta crtica (tramo con ms carga o retardo computacional entre dos registros de reloj) se reduzca. La ruta crtica es en realidad la frecuencia mxima de trabajo alcanzada por el conjunto. A mayor ruta crtica (tiempo o retraso entre registros) menor es la frecuencia mxima de trabajo y a menor ruta crtica mayor frecuencia de trabajo. La una es la inversa de la otra. Repartir o segmentar equitativamente el clculo hace que esa frecuencia sea la ptima a costa de ms rea para el almacenamiento o registro de los datos intervinientes y de un retraso o latencia (en ciclos

de reloj/tiempo) en la salida del resultado equivalente al nmero de segmentaciones o registros realizados. La ventaja primordial de este sistema es que, tal y como se muestra en la imagen, una vez el pipe est lleno, es decir, despus de una latencia de cuatro en la imagen, los resultados de cada comando vienen uno tras otro cada flanco de reloj y sin latencia extra por estar encadenados dentro del mismo pipe. Todo esto habiendo maximizado la frecuencia mxima de trabajo.

Figura 3. Programa de instrucciones en el Intel Pentium IV.

El alto rendimiento y la velocidad elevada de los modernos procesadores, se debe, principalmente a la conjuncin de tres tcnicas: Arquitectura Harvard (arquitectura que propicia el paralelismo) Procesadores RISC La propia segmentacin

Figura 4. Detalle de la segmentacin de instrucciones.

La segmentacin consiste en descomponer la ejecucin de cada instruccin en varias etapas para poder empezar a procesar una instruccin diferente en cada una de ellas y trabajar con varias a la vez.

Figura 5. Arquitectura Harvard.

En el caso del procesador DLX podemos encontrar las siguientes etapas en una instruccin: IF: bsqueda ID: decodificacin EX: ejecucin de unidad aritmtica lgica MEM: memoria WB: escritura Cada una de estas etapas de la instruccin usa en exclusiva un hardware determinado del procesador, de tal forma que la ejecucin de cada una de las etapas en principio no interfiere en la ejecucin del resto. En el caso de que el procesador no pudiese ejecutar las instrucciones en etapas segmentadas, la ejecucin de la siguiente instruccin slo se podra llevar a cabo tras la finalizacin de la primera. En cambio en un procesador segmentado, salvo excepciones de dependencias de datos o uso de unidades funcionales, la siguiente instruccin podra iniciar su ejecucin tras acabar la primera etapa de la instruccin actual. Otro ejemplo de lo anterior, en el caso del PIC, consiste en que el procesador realice al mismo tiempo la ejecucin de una instruccin y la bsqueda del cdigo de la siguiente. (Wikipedia, Segmentacin (informtica), 2009)

Segmentacin de Cauce
La segmentacin de cauce, tambin denominada pipeline, es una tcnica empleada en el diseo de procesadores, basada en la divisin de la ejecucin de las instrucciones en etapas, consiguiendo as que una instruccin empiece a ejecutarse antes de que hayan terminado las anteriores y, por tanto, que haya varias instrucciones procesndose simultneamente. Cada una de las etapas debe completar sus acciones en un ciclo de reloj, pasando sus resultados a la etapa siguiente y recibindolos de la anterior. Para eso es necesario almacenar los datos en registros intermedios. Cualquier valor que pueda ser necesario en una etapa posterior debe irse propagando a travs de esos registros intermedios hasta que ya no sea necesario.

Para conseguir la segmentacin es necesario que una instruccin utilice solamente una etapa en cada ciclo de ejecucin.

Figura 6. Cmo se conforma la segmentacin de instruccin.

Ya que todas las etapas deben de tardar lo mismo en su ejecucin, el tiempo de ciclo ser el de la etapa ms lenta, ms el del retardo provocado por la utilizacin de los registros intermedios. Comparando este esquema con el multiciclo, el tiempo de ciclo ser ms lento, pero el CPI (Ciclos Por Instruccin) ser menor, lo que provoca un aumento del rendimiento. Ya que si no tenemos en cuenta los riesgos estructurales (que pueden provocar paradas en el pipeline), tendramos que en cada ciclo de reloj, termina de ejecutarse una instruccin (CPI = 1).

Ejemplo
Un ejemplo sencillo que utiliza esta tcnica es el procesador DLX, con 5 etapas (IF, ID, EX, MEM y WB). Una instruccin utiliza en un ciclo solamente una de esas etapas. Cuando termina ese ciclo, pasa a la siguiente etapa, dejando libre la anterior, por lo que esta podra ser utilizada en ese momento por la siguiente instruccin. Viendo el cauce de ejecucin se quedara, idealmente, as: N CICLO Instr. 1 Instr. 2 Instr. 3 Instr. 4 Instr. 5 Instr. 6 1 IF 2 ID IF 3 EX ID IF 4 MEM EX ID IF 5 WB MEM EX ID IF WB MEM EX ID IF WB MEM EX ID WB MEM EX WB MEM WB 6 7 8 9 10

De esta manera se aprecia que, una vez est el pipeline lleno, se termina de ejecutar una instruccin en cada ciclo: En el ciclo n 5 finaliza la primera instruccin, en el n 6 la segunda, etc.

Riesgos de Datos y de Control


El empleo de esta tcnica conlleva diversos riesgos de datos, ya que al empezar a ejecutar instrucciones antes de terminar las anteriores puede provocar que se necesite leer/escribir un registro antes de que este haya sido escrito/ledo por la instruccin anterior/siguiente. Esos riesgos de datos se pueden clasificar como:

RAW (read after write): una instruccin posterior trata de leer un operando antes de que lo escriba una anterior. WAR (write after read): una instruccin posterior trata de escribir su resultado antes de que lo haya ledo una anterior. WAW (write after write): una escritura posterior se produce antes que otra escritura anterior en el mismo destino.

La tcnica ms sencilla para evitar estos riesgos sera, cuando se detecte un riesgo, parar la ejecucin de la instruccin que vaya a causar el riesgo, (insertando instrucciones NOP, o burbujas), hasta que hayan terminado de ejecutarse todas las instrucciones anteriores. Esta tcnica supone demasiadas paradas en la ejecucin, lo que supone una cada considerable del rendimiento. Otra tcnica para solucionar los riesgos RAW es la del adelantamiento, consistente en copiar un valor de un registro intermedio posterior en uno anterior, para que la instruccin que venga detrs pueda utilizar los valores, sin tener que esperar a que termine del todo la instruccin anterior. Para intentar solucionar los dems riesgos se emplean tcnicas ms avanzadas como la tcnica Tomasulo o la de Scoreboard (ambas de prediccin dinmica). De una manera u otra, lo que se pretende con cualquiera de estas tcnicas es reducir lo mximo posible los ciclos de parada, ya que incrementan el CPI, el cual idealmente es de 1. El compilador tambin influye notablemente en la bsqueda del CPI ideal, puesto que otra manera de evitar riesgos y, por lo tanto, posibles ciclos de parada, podra ser cambiar el orden de ejecucin de las instrucciones, evitando siempre, por supuesto, que no cambie el resultado del programa. Aparte de los riesgos de datos, tambin existen los riesgos de control, provocados por los saltos condicionales. Estos procesadores empiezan a mandar instrucciones a ejecutar antes de saber si esas instrucciones deben de ejecutarse (ya que hasta que no se procesa la condicin de salto, no se sabe si ser o no tomado), por lo que deben de tener maneras de deshacer cambios, o de poder descartarlos, si han empezado a ejecutar instrucciones que no corresponden, adems del desperdicio de ciclos que supone el haber empezado a ejecutar instrucciones intiles. Por esto, se emplean tcnicas para intentar predecir si un salto condicional ser tomado o no, y en caso de equivocarse, que la penalizacin sea la mnima posible. (Wikipedia, Segmentacin de cauce, 2009)

Procesadores Superescalares
El procesamiento superescalar es la ltima de una serie de innovaciones tendientes a producir procesadores cada vez ms rpidos. Explotando el paralelismo a nivel de instruccin, los superescalares son capaces de ejecutar ms de una instruccin por ciclo de reloj (dos, tres, cuatro, ocho ya es mucho!). Los procesadores superescalares pueden iniciar la ejecucin simultnea de varias instrucciones escalares en paralelo de manera que se pueden operar varios elementos de un vector dentro de una misma iteracin.

Para sto, es necesario que existan varias unidades aritmtico-lgicas, de punto flotante y de control. El proceso que sigue el micro es transparente al programa, aunque el compilador puede ayudar analizando el cdigo y generando un flujo de instrucciones optimizado. Veamos cmo se ejecutaran las instrucciones en un procesador superescalar de que tiene duplicadas las subunidades que lo componen:

Figura 7. Ejecucin de instrucciones en un procesador superescalar.

Aunque esto mejora la velocidad global del sistema, los conflictos de datos crecen. Si antes las instrucciones se encontraban muy prximas, ahora se ejecutan simultaneamente. Esto hace necesario un chequeo dinmico para detectar y resolver los posibles conflictos. (Procesadores Superescalares) Los procesadores escalares son procesadores segmentados que pueden procesar ms de instruccin por ciclo en todas las etapas, incorporando el hardware necesario para la gestin dinmica de los riesgos de datos y de control. La organizacin de un procesador superescalar se muestra en la siguiente figura (Desconocido):

Figura 8. Organizacin de los procesadores superescalares.

Superescalar es el trmino utilizado para designar un tipo de microarquitectura de procesador capaz de ejecutar ms de una instruccin por ciclo de reloj. El trmino se emplea por oposicin a la microarquitectura escalar que slo es capaz de ejecutar una instruccin por ciclo de reloj. En la clasificacin de Flynn, un procesador superescalar es un procesador de tipo MIMD (multiple instruction multiple data). La microarquitectura superescalar utiliza el paralelismo de instrucciones adems del paralelismo de flujo, ste ltimo gracias a la estructura en pipeline. La estructura tpica de un

procesador superescalar consta de un pipeline con las siguientes etapas (Wikipedia, Superescalar, 2009): Lectura (fetch) Decodificacin (decode) Lanzamiento (dispatch) Ejecucin (execute) Escritura (writeback) Finalizacin (retirement)

La forma ms usual de organizar la microarquitectura de un procesador superescalar se muestra en la siguiente figura (Desconocido):

Figura 9. Organizacin de la microarquitectura de un procesador superescalar.

En un procesador superescalar, el procesador maneja ms de una instruccin en cada etapa. El nmero mximo de instrucciones en una etapa concreta del pipeline se denomina grado, as un procesador superescalar de grado 4 en lectura (fetch) es capaz de leer como mximo cuatro instrucciones por ciclo. El grado de la etapa de ejecucin depende del nmero y del tipo de las unidades funcionales. Un procesador superescalar suele tener unidades funcionales independientes de los tipos siguientes: Unidad Aritmtico Lgica (ALU) Unidad de Lectura/Escritura en Memoria (Load/Store Unit) Unidad de Punto Flotante (Floating Point Unit) Unidad de Salto (Branch Unit)

Un procesador superescalar es capaz de ejecutar ms de una instruccin simultneamente nicamente si las instrucciones no presentan algn tipo de dependencia (hazard). Los tipos de dependencia entre instrucciones son: Dependencia estructural, esta ocurre cuando dos instrucciones requieren el mismo tipo unidad funcional y su nmero no es suficiente. Dependencia de datos, esta ocurre cuando una instruccin necesita del resultado de otra instruccin para ejecutarse, por ejemplo y Dependencia de escritura o falsa dependencia , esta ocurre cuando dos instrucciones necesitan escribir en la misma memoria, por ejemplo y

La deteccin y resolucin de las dependencias entre instrucciones puede ser esttica (durante la compilacin) o dinmica, es decir, a medida que se ejecuta un programa, generalmente durante la etapas de codificacin y lanzamiento de las instrucciones. La deteccin y resolucin dinmica de las dependencias entre instrucciones suele realizarse mediante alguna variante del algoritmo de Tomasulo que permite la ejecucin de instrucciones en un orden distinto al del programa tambin llamada ejecucin en desorden. La eficacia de un procesador superescalar viene limitada por un lado por la dificultad en suministrar al procesador suficientes instrucciones que puedan ser ejecutadas en paralelo y por otro lado por las prestaciones de la jerarqua de memorias. Si las instrucciones de salto son un problema para los procesadores con pipeline en general, en el caso de los procesadores superescalares, el problema se multiplica ya que un parn en el pipeline tiene consecuencias en un nmero mayor de instrucciones. Por esta razn, los fabricantes de procesadores recurren a tcnicas de ejecucin especulativa y disean algoritmos de prediccin de saltos cada vez ms sofisticados as como sistemas de almacenamiento de instrucciones por trazas (trace caches). Las arquitecturas superescalares adolecen de una estructura compleja y de un mal aprovechamiento de sus recursos debido en parte a la dificultad en encontrar suficientes instrucciones paralelizables. Una forma de obtener un mayor nmero de instrucciones paralelizables es aumentar la ventana de instrucciones, es decir el conjunto de instrucciones que la unidad de lanzamiento considera como candidatas a ser lanzadas en un momento dado. Desafortunadamente la complejidad del procesador superescalar aumenta desproporcionadamente con respecto al tamao de dicha ventana lo que se traduce por un ralentizamiento general del circuito. Otra forma de obtener ms instrucciones paralelizables es manipulando instrucciones de ms de un programa a la vez, lo que se conoce bajo el nombre de multitarea simultnea o multithreading simultneo. Mientras las primeras CPUs superescalares disponan de dos ALUs y una sola FPU, un procesador moderno como el PowerPC 970 incluye cuatro ALUs y dos FPUs, adems de dos unidades SIMD. Si el despachador no es eficiente haciendo trabajar lo mximo posible a estas unidades, el rendimiento global del procesador se ver mermado. (Wikipedia, Superescalar, 2009) Algunas de las diferencias entre procesadores superescalares y segmentados son: La etapa de captacin de instrucciones (IF) es capaz de leer varias instrucciones por ciclo desde el nivel de cach ms elevado (L1). Las instrucciones pasan, en el orden

que se han captado, a una cola desde donde se introducen ordenadamente en la etapa de decodificacin, tantas como dicha etapa sea capaz de decodificar por ciclo. Al final de la etapa de decodificacin se almacena en una serie de estructuras (ventana de instrucciones, estaciones de reserva, buffer de renombramiento, buffer de reordenamiento, etc.). Un procesador superescalar debe de ser capaz de identificar el paralelismo entre instrucciones (ILP) que existe en el cdigo y permitir que los recursos se usen lo ms eficazmente en la ejecucin paralela de las instrucciones.

La siguiente figura muestra cmo las instrucciones pueden emitirse ordenadamente o desordenadamente:

La siguiente figura muestra algunas de las diferencias entre la ejecucin de una secuencia de instrucciones en procesador segmentado y su ejecucin en un procesador superescalar con distintas opciones de ordenacin entre la emisin (ISS) y la finalizacin de instrucciones (WB).

Algunos de los problemas que se plantean en las distintas etapas de un procesador superescalar son (Desconocido): 1. La decodificacin paralela y el uso de predecodificacin 2. La emisin paralela de instrucciones a las unidades funcionales 3. La ejecucin paralela de las operaciones codificadas en las instrucciones en las distintas unidades funcionales. 4. La finalizacin del procesamiento de instrucciones. 5. El mantenimiento de la consistencia secuencial mediante el desacoplo de la ejecucin de la instruccin y la escritura de resultados.

Procesamiento de las Instrucciones de Salto


El salto retardado no resulta til ya que la unidad de emisin decide dinmicamente qu instrucciones pasan a ejecutarse, independientemente del orden que tengan en el cdigo. La deteccin anticipada de la instruccin de salto (early branch detection) se clasifica en: Deteccin paralela Deteccin anticipada Deteccin integrada en la captacin

Si la instruccin de salto no se ha terminado de evaluar en el momento en que la instruccin de salto evala la condicin de salto. Se suele usar el procesamiento especulativo. Algunas alternativas para la gestin de los saltos condicionales son (Desconocido): Bloqueo del procesamiento del salto: se bloquea la instruccin de salto hasta que la condicin est disponible. Procesamiento especulativo de los saltos: la ejecucin prosigue por el camino ms probable. Si se ha errado en la prediccin hay que recuperar el camino correcto. Mltiples caminos. Se ejecutan los dos caminos posibles despus de un salto hasta que la condicin de salto se evala. En ese momento se cancela el camino incorrecto. Instrucciones de ejecucin condicional. Ejemplo: procesadores ARM. Eliminar o reducir instrucciones de salto, introduciendo en el repertorio de instrucciones mquina una serie de instrucciones que implementan operaciones condicionales (instrucciones con predicado o instrucciones de ejecucin condicional o vigilada).

OpenRISC
OpenRISC es el proyecto insignia original de la comunidad OpenCores. Este proyecto pretende desarrollar una serie de arquitecturas de CPU RISC de cdigo abierto de propsito general. La primera (y de momento nica) descripcin arquitectnica est en la OpenRISC 1000, describiendo

una familia de procesadores de 32 y 64 bits con coma flotante opcional y soporte de procesamiento de vectores. Un equipo de OpenCores ha provisto la primera implementacin, la OpenRISC 1200, escrito en el lenguaje de descripcin de hardware Verilog. El diseo del hardware fue liberado bajo la GNU Lesser General Public License, mientras que los modelos y el firmware se distribuyen bajo la GNU General Public License. Se desarroll una implementacin SoC de referencia basado en la OpenRISC 1200, conocida como ORPSoC (the OpenRISC Reference Platform System-on-Chip). Un nmero de grupos demostraron ORPSoC y otros diseos basados en OR1200. (Wikipedia, OpenRISC, 2010)

Aplicaciones
Las arquitecturas CISC utilizadas desde hace 15 aos han permitido desarrollar un gran nmero de productos de software. Ello representa una considerable inversin y asegura a estas familias de procesadores un mercado creciente. Sin embargo, simultneamente aumentan las aplicaciones en las cuales la capacidad de procesamiento que se pueda obtener del sistema es ms importante que la compatibilidad con el hardware y el software anteriores, lo cual no solo es vlido en los subsistemas de alta capacidad en el campo de los sistemas llamados "embedded", en los que siempre dominaron las soluciones especiales de alta capacidad de procesamiento sino tambin para las estaciones de trabajo ("workstations"). Esta clase de equipos se han introducido poco a poco en oficinas, en la medicina y en bancos, debido a los cada vez mas voluminosos y complejos paquetes de software que con sus crecientes requerimientos de reproduccin visual, que antes se encontraban solo en el campo tcnico de la investigacin y desarrollo. En este tipo de equipos, el software de aplicacin, se ejecuta bajo el sistema operativo UNIX, el cual es escrito en lenguaje C, por lo que las arqutecturas RISC actuales estn adaptadas y optimizadas para este lenguaje de alto nivel. Por ello, todos los productores de estaciones de trabajo de renombre, han pasado en pocos aos, de los procesadores CISC a los RISC, lo cual se refleja en el fuerte incremento anual del nmero de procesadores RISC, (los procesadores RISC de 32 bits han visto crecer su mercado hasta en un 150% anual). En pocos aos, el RISC conquistar de 25 al 30% del mercado de los 32 bits, pese al aparentemente abrumador volumen de software basado en procesadores con el estndar CISC que se ha comercializado en todo el mundo. La arquitectura MIPS-RISC ha encontrado, en el sector de estaciones de trabajo, la mayor aceptacin. Los procesadores MIPS son fabricados y comercializados por cinco empresas productoras de semiconductores, entre las que figuran NEC y Siemens. Los procesadores de los cinco proveedores son compatibles en cuanto a las terminales, las funciones y los bits. (Divisin de Ciencias Bsicas e Ingeniera de la UAM)

Procesadores ARM
ARM (Advanced RISC Machines) es una familia de microprocesadores RISC diseados por la empresa Acorn Computers y desarrollados por Advanced RISC Machines Ltd., una empresa derivada de la anterior.

El diseo del ARM se ha convertido en uno de los ms usados del mundo, desde discos duros hasta juguetes. Hoy en da, cerca del 75% de los procesadores de 32 bits poseen este chip en su ncleo. Los ncleos de ARM se utilizan en diversas aplicaciones como el Game Boy Advance, Videoconsolas GPX2, calculadoras HP-49/50, Nintendo DS, Motorola Z6, iPhone, consola Pandora y versiones futuras de Symbian . El juego de instrucciones del ARM es similar al del MOS 6502, pero incluye caractersticas adicionales que le permiten conseguir un mejor rendimiento en su ejecucin. Para mantener el concepto tradicional de RISC, se incluy el comando de ejecucin en un tiempo bastante bueno, siendo por lo general, en un ciclo. La caracterstica ms interesante es el uso de los 4 bits como cdigo condicional en la parte superior de cada instruccin, haciendo que cada instruccin pueda ser una condicin. Este corte permite aumentar el espacio para algunos desplazamientos en el acceso a la memoria, pero tambin permite evitar caer en ciclos fuera de control cuando la aplicacin sea para pequeas instrucciones condicionadas. El ejemplo estndar es el Mximo comn divisor, segn el algoritmo de Euclides. Otra caracterstica nica del juego de instrucciones es la posibilidad de aadir shifts y rotar en el procesamiento de datos (aritmtico, lgico y movimiento de registros), por ejemplo, la instruccin en C "a += (j << 2);" puede ser mejorada como una instruccin simple en el ARM, permitiendo la reubicacin del registro. Todo esto ocasiona que se necesiten menos operaciones de carga y almacenamiento, mejorando el rendimiento. El procesador ARM tambin tiene algunas caractersticas que son raras en otras arquitecturas tambin consideradas RISC, como el direccionamiento relativo, y el pre y post incremento en el modo de direccionamiento. Tiene dos modos de funcionamiento: el ARMI con instrucciones que ocupan 4 bytes, ms rpidas y potentes (hay instrucciones que slo estn en este modo) pero con mayor consumo de memoria y de electricidad. Y el modo THUMB, ms limitado, con instrucciones que ocupan 2 bytes y con menor consumo de corriente. (Wikipedia, ARM, 2010)

Figura 10. Procesador ARM en una impresora HP.

Sun SPARC
SPARC (del ingls Scalable Processor ARChitecture) es una arquitectura RISC big-endian. Es decir, una arquitectura con un conjunto reducido de instrucciones. Fue originalmente diseada por Sun Microsystems y dirigido por el ingeniero Kaa en 1985, se basa en los diseos RISC I y II de la Universidad de California en Berkeley que fueron definidos entre los aos 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 diseo estn publicadas, as otros fabricantes de microprocesadores pueden desarrollar su propio diseo. Una de las ideas innovadoras de esta arquitectura es la ventana de registros que permite hacer fcilmente compiladores de alto rendimiento y una significativa reduccin de memoria en las instrucciones load/store en relacin con otras arquitecturas RISC. Las ventajas se aprecian sobre todo en programas grandes. La CPU SPARC est compuesta de una unidad entera, UI (Integer Unit) que procesa la ejecucin bsica y una FPU (Floating-Point Unit) que ejecuta las operaciones y clculos de reales. La IU y la FPU pueden o no estar integradas en el mismo chip. Aunque no es una parte formal de la arquitectura, las computadoras basadas en sistemas SPARC de Sun Microsystems tienen una unidad de manejo de memoria (MMU) y un gran cach de direcciones virtuales (para instrucciones y datos) que estn dispuestos perifricamente sobre un bus de datos y direcciones de 32 bits. (Wikipedia, Sun SPARC, 2009)

Figura 11. Sun UltraSparc II.

Principales Caractersticas
Su caracterstica 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 precisin) que se pueden utilizar como 32 registros de 32 bits (para precisin simple). Modos de direccionamiento: o Inmediato, (constantes de 13 bits). o Directo, (offset de 13 bits). o Indirecto, (registro + offset de 13 bits o registro + registro). Utiliza instrucciones retardadas (saltos, load y store ). Manejo de memoria: o Espacio virtual de 4 Gigabytes. o Unidad de manejo de memoria (MMU) que trabaja con pginas de tamao configurable.

MIPS
MIPS (Microprocessor without Interlocked Pipeline Stages) es toda una familia de microprocesadores de arquitectura RISC desarrollados por MIPS Technologies. Cifras de 1999 estiman que uno de cada tres procesadores RISC fabricados en el mundo est basado en el MIPS. Los diseos del MIPS son utilizados en la lnea de productos informticos de SGI; en muchos sistemas integrados; 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 atrs 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. Asimismo estn 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 ms extenso de instrucciones SIMD enteras que utilizan los registros de coma flotante de 64 bits, la MIPS16 que aade compresin al flujo de instrucciones para hacer que los programas ocupen menos espacio (presuntamente como respuesta a la tecnologa de compresin Thumb de la arquitectura ARM) o la reciente MIPS MT que aade funcionalidades multithreading similares a la tecnologa HyperThreading de los procesadores Intel Pentium 4.

Figura 12. Un microprocesador MIPS R4400 fabricado por Toshiba.

Debido a que los diseadores crearon un conjunto de instrucciones tan claro, los cursos sobre arquitectura de computadores en universidades y escuelas tcnicas a menudo se basan en la arquitectura MIPS. El diseo de la familia de CPU's MIPS influira de manera importante en otras arquitecturas RISC posteriores como los DEC Alpha. 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 cado, 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 tecnologa Intel IA64 (vase la seccin "Otros modelos y planes futuros"). Por otra parte, el uso de microprocesadores MIPS en sistemas integrados es probable que se mantenga gracias al bajo consumo de energa y caractersticas trmicas de las implementaciones integradas, as como a la gran disponibilidad de herramientas de desarrollo y de expertos conocedores de la arquitectura.

Otro miembro de la familia MIPS es el R6000, una implementacin ECL de la arquitectura MIPS fabricada por Bipolar Integrated Technology. El R6000 introdujo el juego de instrucciones MIPS II. Su arquitectura TLB y de cach son diferentes del resto de miembros de la familia MIPS. El R6000 no proporcion los resultados esperados, y aunque fue empleado en algunas mquinas Control Data, rpidamente desapareci del mercado de los mainstream. El PMC-Sierra RM7000 fue una versin del R5000 con una cach integrada de nivel 2 de 256 kB y un controlador para una cach opcional de tercer nivel. Diseado en un principio para sistemas integrados como los procesadores grficos SGI y varias soluciones de redes de Cisco. El nombre R9000 nunca fue utilizado. SGI intent una vez migrar de la plataforma MIPS a la Intel Itanium, habiendo terminado su desarrollo con el R10000. Los grandes retrasos en la presentacin del Itanium hicieron que el nmero de procesadores basados en MIPS instalados continu creciendo. En 1999 qued claro que el proceso de desarrollo haba sido cerrado demasiado pronto, y resultado de ello son las versiones R14000 y R16000. SGI tante la posibilidad de aadir una FPU ms compleja al estilo de la del R8000 en las ltimas iteraciones, as como la de lanzar un procesador de doble ncleo, pero los problemas financieros de la empresa y el uso oficial y soportado de la emulacin QuickTransit para ejecutar binarios IRIX sobre Altix provocaron el cese definitivo del desarrollo de hardware IRIX/MIPS. En los ltimos aos gran parte de la tecnologa empleada en las distintas generaciones MIPS ha sido ofrecida como diseos de "IP-cores" (bloques de construccin) para procesadores integrados. Se ofertan los ncleos bsicos de 32 y 64 bits, conocidos respectivamente como 4K y 5K respectivamente, y con licencias MIPS32 y MIPS64. Estos ncleos pueden ser combinados con unidades aadidas tales como FPUs, sistemas SIMD, dispositivos de E/S, etc. Los ncleos MIPS han sido comercialmente exitosos, siendo empleados actualmente en muchas aplicaciones industriales y de consumo. Pueden encontrarse en los ms modernos routers Cisco y Linksys , cablemdems y mdems ADSL, tarjetas inteligentes, controladoras de impresoras lser, decodificadores de TV, robots, ordenadores de mano, Sony PlayStation 2 y Sony PlayStation Portable. En mviles y PDA's, sin embargo, el ncleo MIPS fue incapaz de desbancar a su competidor de arquitectura ARM. (Wikipedia, MIPS (procesador), 2010)

Bibliografa
Desconocido. (s.f.). Procesadores Paralelos. Recuperado el 14 de Enero de 2010, de Quegrande.org: http://quegrande.org/apuntes/EI/2/ECm1/seminarios/08-09/seminario__procesadores_paralelos.pdf Stallings, W. (s.f.). Organizacin y arquitectura de computadoras. Recuperado el 6 de Enero de 2010, de: http://iteso.mx/~jluis/acpdf/oto-04/12-Computadoras-RISC.PDF Desconocido. (s.f.). Arquitectura de procesadores personales. Recuperado el 8 de Enero de 2010, de Sitio Web de la Facultad de Ciencias de la Administracin de la Universidad Nacional de Entre Ros: http://www.fcad.uner.edu.ar/_car/c_sis/sis06/unidad%206.ppt Desconocido. (s.f.). RISC y CISC. Recuperado el 8 de Enero de 2010, de Itescam.edu: http://www.itescam.edu.mx/principal/sylabus/fpdb/recursos/r21845.DOC

Divisin de Ciencias Bsicas e Ingeniera de la UAM. (s.f.). Arquitectura RISC vs CISC. Recuperado el 13 de Enero de 2010, de Sitio Web de la Universidad Autonoma Metropolitana: http://www.azc.uam.mx/publicaciones/enlinea2/num1/1-2.htm Palet, J. (s.f.). Procesadores RISC, multiproceso y cach. Recuperado el 5 de Enero de 2010, de Consulintel.es: http://www.consulintel.es/html/Tutoriales/Articulos/risc.html Muro Garca, L. (21 de Noviembre de 2007). Arquitectura de Microprocesadores RISC y CISC. Recuperado el 14 de Enero de 2010, de Monografas.com: http://www.monografias.com/trabajos55/microprocesadores-cisc-risc/microprocesadores-ciscrisc2.shtml Procesadores Superescalares. (s.f.). Recuperado el 14 de Enero de 2010, de Angelfire: http://www.angelfire.com/ca6/germancho/superescalar.htm Wikipedia. (3 de Enero de 2010). RISC. Recuperado el 8 de Enero de 2010, de Wikipedia, la enciclopedia libre: http://es.wikipedia.org/wiki/RISC Wikipedia. (3 de Enero de 2010). ARM. Recuperado el 14 de Enero de 2010, de Wikipedia, la enciclopedia libre: http://es.wikipedia.org/wiki/ARM Wikipedia. (1 de Enero de 2010). MIPS (procesador). Recuperado el 14 de Enero de 2010, de Wikipedia, la enciclopedia libre: http://es.wikipedia.org/wiki/MIPS_(procesador) Wikipedia. (14 de Enero de 2010). OpenRISC. Recuperado el 14 de Enero de 2010, de Wikipedia, the free encyclopedia: http://en.wikipedia.org/wiki/OpenRISC Wikipedia. (14 de Diciembre de 2009). Segmentacin (informtica). Recuperado el 14 de Enero de 2010, de Wikipedia, la enciclopedia libre: http://es.wikipedia.org/wiki/Segmentaci%C3%B3n_(inform%C3%A1tica) Wikipedia. (17 de Noviembre de 2009). Segmentacin de cauce. Recuperado el 14 de Enero de 2010, de Wikipedia, la enciclopedia libre: http://es.wikipedia.org/wiki/Segmentaci%C3%B3n_de_cauce Wikipedia. (18 de Octubre de 2009). Sun SPARC. Recuperado el 14 de Enero de 2010, de Wikipedia, la enciclopedia libre: http://es.wikipedia.org/wiki/SPARC Wikipedia. (19 de Noviembre de 2009). Superescalar. Recuperado el 14 de Enero de 2010, de Wikipedia, la enciclopedia libre: http://es.wikipedia.org/wiki/Superescalar

You might also like