Академический Документы
Профессиональный Документы
Культура Документы
2010
Muñoz Aleman Jonathan
Ramos Ramírez Yaser
Universidad Nacional del Santa
13/01/2010
Exposición: Computadores
RISC
Índice de Contenido
Introducción...................................................................................................4
¿Qué es RISC?................................................................................................5
Principios de Diseño de las Computadores RISC............................................5
Características...............................................................................................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 aritméticas............................................................................9
Instrucciones de salto/bifurcación..............................................................9
Instrucciones diversas................................................................................9
CUADRO COMPARATIVO...........................................................................10
MODOS DE DIRECCIONAMIENTO...............................................................10
FORMATO DE INSTRUCCIONES.................................................................10
Optimización................................................................................................11
Técnica del coloreado de grafos...............................................................11
Arquitectura.................................................................................................12
Arquitecturas CISC....................................................................................13
Arquitecturas RISC....................................................................................14
Papel de los Compiladores en un Sistema RISC........................................16
Segmentación..............................................................................................17
Segmentación 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 Características.....................................................................32
MIPS..........................................................................................................32
Bibliografía...................................................................................................34
Error: Reference source not found
Índice de Figuras
Introducción
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
"computación con conjuntos de instrucciones complejas" o CISC (Complex
Instruction Set Computing).
Tanto la tecnología 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 promovía la velocidad inherente a conjuntos
de instrucciones reducidas), Maurice Wilkes (padre de la microprogramación y
de muchos conceptos de los diseños RISC), y Seymour Cray (primeros
supercomputadores, empleando principios RISC).
Por otro lado, durante las pasadas décadas, el multiproceso, como medida
de incrementar drásticamente 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 integración del silicio, y a la falta de
software que facilitase la ejecución paralela de las aplicaciones.
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.
¿Qué es RISC?
Es un tipo de microprocesador con las siguientes características
fundamentales:
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.
Por último, el proceso anterior debe repetirse para otros recursos dentro del
sistema, tales como memoria cache, administración de memoria,
coprocesadores de punto flotante, etcétera.
Características
Las características comunes a todos los procesadores RISC, fuente de sus
capacidades de altas prestaciones, no es sólo una cuestión 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 diseño y
empleo de menor número de transistores, lo que redunda en menor número de
errores de diseño y menor tiempo de ejecución para instrucciones
individuales., son:
RISC Moderno
RISC vs CISC
RISC CISC
Énfasis en el software Énfasis en el hardware
Incluye el multi-reloj, instrucciones Solo-reloj, instrucciones complejas
reducida
Inter – registro: “CARGA” y Memoria a memoria: “CARGA” y
“ALMACÉN” incorporado en “ALMACÉN” son las instrucciones
instrucciones independientes
Altos ciclos por segundo, tamaños Ciclos bajos por segundo, tamaños de
de código pequeños código grandes
Transistores usados para Pasa más transistores en los registros de
almacenar instrucciones complejas la memoria
Conjunto de instrucciones
Instrucciones de carga/almacenamiento
OPERAN DESCRIPCIÓN
DO
LDSB Cargar byte con signo
LDSH Cargar media palabra
con signo
LDUB Cargar byte sin signo
LDUH Cargar media palabra sin
signo
LD Cargar palabra
LDD Cargar doble palabra
STB Almacenar byte
STH Almacenar media
palabra
STD Almacenar palabra
STDD Almacenar doble palabra
Instrucciones de desplazamiento
OPERAN DESCRIPCIÓN
DO
SLL Desplazamiento lógico a la
izquierda
SRL Desplazamiento lógico a la
derecha
SRA Desplazamiento aritmético a la
derecha
Instrucciones Booleanas
OPERAN DESCRIPCIÓN
DO
AND Y
ANDCC Y, ajustar icc
ANDN No Y
ANDNCC No Y, ajustar icc
OR O
ORCC O, ajustar icc
ORN No O
ORNCC No O, ajustar icc
XOR O Exclusiva
XORCC O Exclusiva, ajustar
icc
XNOR No O Exclusiva
XNORCC No O Exclusiva,
ajustar icc
Instrucciones aritméticas
OPERAN DESCRIPCIÓN
DO
ADD Sumar
ADDCC Sumar, ajustar icc
ADDX Sumar con acarreo
ADDXCC Sumar con acarreo, ajustar
icc
SUB Restar
SUBCC Restar, ajustar icc
SUBX Restar con adeudo
SUBXCC Restar con adeudo, ajustar
icc
MULSCC Paso de multiplicación,
ajustar icc
Instrucciones de salto/bifurcación
OPERAN DESCRIPCIÓN
DO
BCC Bifurcar si condición
FBCC Bifurcar si condición de coma
flotante
CBCC Bifurcar si condición del
procesador
CALL Llamar a procedimiento
JMPL Saltar y enlazar
TCC Interceptar si condición
SAVE Avanzar ventana de registros
RESTORE Mover ventanas hacia atrás
RETT Retornar de interceptación
Instrucciones diversas
OPERAN DESCRIPCIÓN
DO
SETHI Fijar los 22 bits altos
UNIMP Instrucción no implementada
(Interceptación)
RD Leer un registro especial
WR Escribir en un registro especial
IFLUSH Vaciar la caché de instrucciones
CUADRO COMPARATIVO
CISC RISC
MODOS DE DIRECCIONAMIENTO
El único modo de direccionamiento disponible, aparte del modo registro, es
el modo de desplazamiento.
EA=R1+S(Constante)
EA=R1+(R2)
FORMATO DE INSTRUCCIONES
Optimización
El problema es, dado un grafo asignar colores a los nodos de manera que
nodos adyacentes tengan colores diferentes y se minimice el número 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
simbólicos. Si dos registros están “vivos” se unen por un arco para representar
su interferencia. Se intenta colorear el grafo con “n” colores, donde “n” es el
número de registro. Los nodos que no se pueden colorear se colocan en
memoria.
Arquitectura
Una de las primeras decisiones a la hora de diseñar un microprocesador es
decidir cuál será su juego de instrucciones. La decisión es trascendente por dos
razones; primero, el juego de instrucciones decide el diseño físico del conjunto;
segundo, cualquier operación que deba ejecutarse en el microprocesador
deberá poder ser descrita en términos de un lenguaje de estas instrucciones. ()
• La arquitectura.
• La tecnología de proceso.
• El encapsulado.
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.
Arquitecturas RISC
Buscando aumentar la velocidad del procesamiento se descubrió en base a
experimentos que, con una determinada arquitectura de base, la ejecución de
programas compilados directamente con microinstrucciones y residentes en
memoria externa al circuito integrado resultaban ser más eficientes, gracias a
que el tiempo de acceso de las memorias se fue decrementando conforme se
mejoraba su tecnología de encapsulado.
• Alrededor del 20% de las instrucciones ocupa el 80% del tiempo total
de ejecución de un programa.
• Existen secuencias de instrucciones simples que obtienen el mismo
resultado que secuencias complejas predeterminadas, pero requieren
tiempos de ejecución más cortos.
Además, los comandos de RISC son todos del mismo tamaño y se cargan y
almacenan del mismo modo. Al ser estas instrucciones pequeñas 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 tamaño del comando, en
descodificarlo ni en averiguar cómo cargarlo y guardarlo.
Segmentación
La segmentación es un método por el cual se consigue aumentar el
rendimiento de algunos sistemas electrónicos digitales. Es aplicado, sobre
todo, en microprocesadores. El nombre viene de que para impulsar el gas en
un oleoducto a la máxima velocidad es necesario dividir el oleoducto en tramos
y colocar una bomba que dé un nuevo impulse al gas. El símil con la
programación existe en que los cálculos deben ser registrados o sincronizados
con el reloj cada cierto tiempo para que la ruta crítica (tramo con más carga o
retardo computacional entre dos registros de reloj) se reduzca.
La ruta crítica es en realidad la frecuencia máxima de trabajo alcanzada por
el conjunto. A mayor ruta crítica (tiempo o retraso entre registros) menor es la
frecuencia máxima de trabajo y a menor ruta crítica mayor frecuencia de
trabajo. La una es la inversa de la otra. Repartir o segmentar equitativamente
el cálculo hace que esa frecuencia sea la óptima a costa de más á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
número 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, después 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 máxima de trabajo.
Segmentación de Cauce
La segmentación de cauce, también denominada pipeline, es una técnica
empleada en el diseño de procesadores, basada en la división de la ejecución
de las instrucciones en etapas, consiguiendo así que una instrucción empiece a
ejecutarse antes de que hayan terminado las anteriores y, por tanto, que haya
varias instrucciones procesándose simultáneamente.
Cada una de las etapas debe completar sus acciones en un ciclo de reloj,
pasando sus resultados a la etapa siguiente y recibiéndolos 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 través
de esos registros intermedios hasta que ya no sea necesario.
Ejemplo
Un ejemplo sencillo que utiliza esta técnica es el procesador DLX, con 5
etapas (IF, ID, EX, MEM y WB). Una instrucción 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 podría ser utilizada en ese momento por la
siguiente instrucción.
N°
1 2 3 4 5 6 7 8 9 10
CICLO
ME
Instr. 1 IF ID EX WB
M
ME
Instr. 2 IF ID EX WB
M
ME
Instr. 3 IF ID EX WB
M
ME
Instr. 4 IF ID EX WB
M
ME
Instr. 5 IF ID EX WB
M
ME
Instr. 6 IF ID EX WB
M
De esta manera se aprecia que, una vez está el pipeline lleno, se termina
de ejecutar una instrucción en cada ciclo: En el ciclo nº 5 finaliza la primera
instrucción, en el nº 6 la segunda, etc.
La técnica más sencilla para evitar estos riesgos sería, cuando se detecte
un riesgo, parar la ejecución de la instrucción que vaya a causar el riesgo,
(insertando instrucciones NOP, o burbujas), hasta que hayan terminado de
ejecutarse todas las instrucciones anteriores. Esta técnica supone demasiadas
paradas en la ejecución, lo que supone una caída considerable del rendimiento.
Procesadores Superescalares
El procesamiento superescalar es la última de una serie de innovaciones
tendientes a producir procesadores cada vez más rápidos. Explotando el
paralelismo a nivel de instrucción, los superescalares son capaces de ejecutar
más de una instrucción por ciclo de reloj (dos, tres, cuatro, ocho ya es mucho!).
Aunque esto mejora la velocidad global del sistema, los conflictos de datos
crecen. Si antes las instrucciones se encontraban muy próximas, ahora se
ejecutan simultaneamente. Esto hace necesario un chequeo dinámico para
detectar y resolver los posibles conflictos. ()
•
• Lectura (fetch)
• Decodificación (decode)
• Lanzamiento (dispatch)
• Ejecución (execute)
• Escritura (writeback)
• Finalización (retirement)
La forma más usual de organizar la microarquitectura de un procesador
superescalar se muestra en la siguiente figura ():
• Detección paralela
• Detección anticipada
• Detección integrada en la captación
Aplicaciones
Las arquitecturas CISC utilizadas desde hace 15 años han permitido
desarrollar un gran número de productos de software. Ello representa una
considerable inversión y asegura a estas familias de procesadores un mercado
creciente. Sin embargo, simultáneamente aumentan las aplicaciones en las
cuales la capacidad de procesamiento que se pueda obtener del sistema es
más importante que la compatibilidad con el hardware y el software anteriores,
lo cual no solo es válido 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 también 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 reproducción visual, que antes se encontraban
solo en el campo técnico de la investigación y desarrollo.
Procesadores ARM
ARM (Advanced RISC Machines) es una familia de microprocesadores RISC
diseñados por la empresa Acorn Computers y desarrollados por Advanced RISC
Machines Ltd., una empresa derivada de la anterior.
El diseño del ARM se ha convertido en uno de los más usados del mundo,
desde discos duros hasta juguetes. Hoy en día, cerca del 75% de los
procesadores de 32 bits poseen este chip en su núcleo.
El juego de instrucciones del ARM es similar al del MOS 6502, pero incluye
características adicionales que le permiten conseguir un mejor rendimiento en
su ejecución. Para mantener el concepto tradicional de RISC, se incluyó el
comando de ejecución en un tiempo bastante bueno, siendo por lo general, en
un ciclo. La característica más interesante es el uso de los 4 bits como código
condicional en la parte superior de cada instrucción, haciendo que cada
instrucción pueda ser una condición.
Sun SPARC
SPARC (del inglés Scalable Processor ARChitecture) es una arquitectura
RISC big-endian. Es decir, una arquitectura con un conjunto reducido de
instrucciones.
La CPU SPARC está compuesta de una unidad entera, UI (Integer Unit) que
procesa la ejecución básica y una FPU (Floating-Point Unit) que ejecuta las
operaciones y cálculos de reales. La IU y la FPU pueden o no estar integradas
en el mismo chip.
Principales Características
• Su característica distintiva es utilizar ventanas de registros.
• 32 registros de "enteros" de 32 bits.
• 16 registros de punto flotante de 64 bits (para el caso de doble
precisión) que se pueden utilizar como 32 registros de 32 bits (para
precisión simple).
• Modos de direccionamiento:
○ Inmediato, (constantes de 13 bits).
○ Directo, (offset de 13 bits).
○ Indirecto, (registro + offset de 13 bits o registro + registro).
• Utiliza instrucciones retardadas (saltos, load y store ).
• Manejo de memoria:
○ Espacio virtual de 4 Gigabytes.
○ Unidad de manejo de memoria (MMU) que trabaja con páginas
de tamaño configurable.
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.
Bibliografía
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.). Organización 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
Administración de la Universidad Nacional de Entre Ríos:
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
División de Ciencias Básicas e Ingeniería 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 García, L. (21 de Noviembre de 2007). Arquitectura de
Microprocesadores RISC y CISC. Recuperado el 14 de Enero de 2010, de
Monografías.com: http://www.monografias.com/trabajos55/microprocesadores-
cisc-risc/microprocesadores-cisc-risc2.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). Segmentación (informática).
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). Segmentación 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