53
Computadores RISC Computadores RISC Arquitectura de Arquitectura de Computadoras Computadoras

Computadores RISC

Embed Size (px)

DESCRIPTION

Computadores RISC

Citation preview

Page 1: Computadores RISC

Computadores RISCComputadores RISCArquitectura de Arquitectura de ComputadorasComputadoras

Page 2: Computadores RISC

Nuestra Agenda para HoyNuestra Agenda para Hoy

Computadores de conjunto de Computadores de conjunto de instrucciones reducido (RISC)instrucciones reducido (RISC)

Características de RISCCaracterísticas de RISC Conjunto de instruccionesConjunto de instrucciones OptimizaciónOptimización ArquitecturaArquitectura SegmentaciónSegmentación Procesadores SuperescalaresProcesadores Superescalares

Page 3: Computadores RISC

COMPUTADORES DE COMPUTADORES DE CONJUNTO DE CONJUNTO DE INSTRUCCIONES INSTRUCCIONES REDUCIDOREDUCIDO

Expositor: Ramos Ramírez YaserExpositor: Ramos Ramírez Yaser

Código: 0200414027Código: 0200414027

E-mail: [email protected]: [email protected]

Page 4: Computadores RISC

La tendencia hacia conjuntos de instrucciones más La tendencia hacia conjuntos de instrucciones más ricos, con un número mayor y más complejo se debe al ricos, con un número mayor y más complejo se debe al deseo de simplificar los compiladores y mejorar las deseo de simplificar los compiladores y mejorar las prestaciones (programas más pequeños y rápidos), con prestaciones (programas más pequeños y rápidos), con lo que se da mejor soporte a los HLL. lo que se da mejor soporte a los HLL.

¡¡Los programas más pequeños ocupan menos ¡¡Los programas más pequeños ocupan menos memoria, y se mejoran las prestaciones porque se memoria, y se mejoran las prestaciones porque se captan menos bytes de instrucción y en un entorno captan menos bytes de instrucción y en un entorno paginado se ocupan menos páginas, reduciendo la falta paginado se ocupan menos páginas, reduciendo la falta de página.!!!de página.!!!

INTRODUCCIÓNINTRODUCCIÓN

Page 5: Computadores RISC

La idea es que un conjunto de instrucciones poco La idea es que un conjunto de instrucciones poco complejas son simples, y por tanto de más rápida complejas son simples, y por tanto de más rápida ejecución, lo que permite crear un código más ejecución, lo que permite crear un código más "dinámico“, para ello nace RISC."dinámico“, para ello nace RISC.

Sin embargo RISC también tenía sus desventajas. Sin embargo RISC también tenía sus desventajas. Debido a que una serie de instrucciones son Debido a que una serie de instrucciones son necesarias para completar incluso las tareas más necesarias para completar incluso las tareas más sencillas, el número total de instrucciones para la sencillas, el número total de instrucciones para la lectura de la memoria es más grande, y por lo tanto lectura de la memoria es más grande, y por lo tanto lleva más tiempo. lleva más tiempo.

INTRODUCCIÓNINTRODUCCIÓN

Page 6: Computadores RISC

¿QUÉ ES RISC?¿QUÉ ES RISC?

Page 7: Computadores RISC

PRINCIPIOS DE DISEÑO DE LAS PRINCIPIOS DE DISEÑO DE LAS COMPUTADORES RISCCOMPUTADORES RISC

Page 8: Computadores RISC

CARACTERÍSTICASCARACTERÍSTICAS

Expositor: Ramos Ramírez YaserExpositor: Ramos Ramírez Yaser

Código: 0200414027Código: 0200414027

E-mail: [email protected]: [email protected]

Page 9: Computadores RISC

CARACTERÍSTICASCARACTERÍSTICAS

Page 10: Computadores RISC

RISC MODERNORISC MODERNO

Page 11: Computadores RISC

RISC vs CISCRISC vs CISC

RISCRISC CISCCISC Énfasis en el software Énfasis en el software Incluye el multi-reloj, Incluye el multi-reloj,

instrucciones reducida instrucciones reducida Inter – registro: “CARGA” Inter – registro: “CARGA”

y “ALMACÉN” y “ALMACÉN” incorporado en incorporado en instrucciones instrucciones

Altos ciclos por segundo, Altos ciclos por segundo, tamaños de código tamaños de código pequeñospequeños

Transistores usados para Transistores usados para almacenar instrucciones almacenar instrucciones complejas complejas

Énfasis en el hardwareÉnfasis en el hardware Solo-reloj, instrucciones Solo-reloj, instrucciones

complejascomplejas Memoria a memoria: Memoria a memoria:

“CARGA” y “ALMACÉN” “CARGA” y “ALMACÉN” son las instrucciones son las instrucciones independientesindependientes

Ciclos bajos por segundo, Ciclos bajos por segundo, tamaños de código tamaños de código grandes grandes

Pasa más transistores en Pasa más transistores en los registros de la los registros de la memoria .memoria .

Page 12: Computadores RISC

CONJUNTO DE CONJUNTO DE INSTRUCCIONESINSTRUCCIONES

Expositor: Ramos Ramírez YaserExpositor: Ramos Ramírez Yaser

Código: 0200414027Código: 0200414027

E-mail: [email protected]: [email protected]

Page 13: Computadores RISC

CONJUNTO DE CONJUNTO DE INSTRUCCIONESINSTRUCCIONESInstrucciones de Instrucciones de

carga/almacenamientocarga/almacenamientoInstrucciones Instrucciones AritméticasAritméticas

OPERANDO DESCRIPCIÓN

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

OPERANDO DESCRIPCIÓN

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

Page 14: Computadores RISC

CONJUNTO DE CONJUNTO DE INSTRUCCIONESINSTRUCCIONES

Instrucciones BooleanasInstrucciones BooleanasInstrucciones de Instrucciones de salto/bifurcaciónsalto/bifurcación

OPERANDO DESCRIPCIÓN

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

OPERANDO DESCRIPCIÓN

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

Page 15: Computadores RISC

CONJUNTO DE CONJUNTO DE INSTRUCCIONESINSTRUCCIONES

Instrucciones de Instrucciones de desplazamientodesplazamiento Instrucciones diversasInstrucciones diversas

OPERANDO DESCRIPCIÓN

SLL Desplazamiento lógico a la izquierda

SRL Desplazamiento lógico a la derecha

SRA Desplazamiento aritmético a la derecha

OPERANDO DESCRIPCIÓN

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

Page 16: Computadores RISC

CISC RISCUna instrucción por circunstancia.

Pequeñas instrucciones.

Instrucciones complejas. Instrucciones simples.Lenta ejecución de la instrucción.

Ejecución rápida de las instrucciones.

Pocas instrucciones por trabajo

Varias instrucciones por trabajo específico.

CUADRO COMPARATIVO CISC Y CUADRO COMPARATIVO CISC Y RISCRISC

Page 17: Computadores RISC

El único modo de direccionamiento disponible, aparte El único modo de direccionamiento disponible, aparte del modo registro, es el modo de desplazamiento.del modo registro, es el modo de desplazamiento.

La dirección efectiva de un operando consiste en una La dirección efectiva de un operando consiste en una dirección contenida en un registro más un dirección contenida en un registro más un desplazamiento.desplazamiento.

EA = (R1) + S (constante)EA = (R1) + S (constante)

EA = (R1) + (R2)EA = (R1) + (R2)

MODOS DE MODOS DE DIRECCIONAMIENTODIRECCIONAMIENTO

Page 18: Computadores RISC

El SPARC emplea un formato de instrucciones de El SPARC emplea un formato de instrucciones de 32 bits.32 bits.

Todas las instrucciones comienzan con un código Todas las instrucciones comienzan con un código de operación de 2 bits. En ciertas instrucciones, de operación de 2 bits. En ciertas instrucciones, este código se amplia con bits de código de este código se amplia con bits de código de operación adicionales en otras partes del formato.operación adicionales en otras partes del formato.

FORMATO DE INSTRUCCIONESFORMATO DE INSTRUCCIONES

Page 19: Computadores RISC

FORMATO DE FORMATO DE INSTRUCCIONESINSTRUCCIONES

Page 20: Computadores RISC

OPTIMIZACIÓNOPTIMIZACIÓN

Expositor: Ramos Ramírez YaserExpositor: Ramos Ramírez Yaser

Código: 0200414027Código: 0200414027

E-mail: [email protected]: [email protected]

Page 21: Computadores RISC

El objetivo del compilador es mantener en registros los El objetivo del compilador es mantener en registros los operandos necesarios para tantos cálculos como sea operandos necesarios para tantos cálculos como sea posible y minimizarlas operaciones de carga – posible y minimizarlas operaciones de carga – almacenamiento. Se usa la siguiente aproximación, almacenamiento. Se usa la siguiente aproximación, cada cantidad candidata a residir en un registro se cada cantidad candidata a residir en un registro se asigna a un registro simbólico. Después el número asigna a un registro simbólico. Después el número ilimitado de registros simbólicos es asignado a un ilimitado de registros simbólicos es asignado a un número fijo de registros reales. Los registros número fijo de registros reales. Los registros simbólicos cuyo uso no se solapa pueden compartir el simbólicos cuyo uso no se solapa pueden compartir el mismo registro real. Si hay más cantidades que mismo registro real. Si hay más cantidades que registros, algunas de las cantidades se asignan a registros, algunas de las cantidades se asignan a posiciones de memoria y otras a registros. La técnica posiciones de memoria y otras a registros. La técnica usada en los compiladores para RISC es el coloreado usada en los compiladores para RISC es el coloreado de grafos. de grafos.

OPTIMIZACIÓNOPTIMIZACIÓN

Page 22: Computadores RISC

El problema es, dado un grafo asignar colores a los El problema es, dado un grafo asignar colores a los nodos de manera que nodos adyacentes tengan colores nodos de manera que nodos adyacentes tengan colores diferentes y se minimice el número de colores distintos. diferentes y se minimice el número de colores distintos. Se adapta una vez que el programa se ha analizado para Se adapta una vez que el programa se ha analizado para construir un grafo de interferencias entre registros. Los construir un grafo de interferencias entre registros. Los nodos son los registros simbólicos. Si dos registros nodos son los registros simbólicos. Si dos registros están “vivos” se unen por un arco para representar su están “vivos” se unen por un arco para representar su interferencia. Se intenta colorear el grafo con “n” interferencia. Se intenta colorear el grafo con “n” colores, donde “n” es el número de registro. Los nodos colores, donde “n” es el número de registro. Los nodos que no se pueden colorear se colocan en memoria.que no se pueden colorear se colocan en memoria.

OPTIMIZACIÓNOPTIMIZACIÓN

Page 23: Computadores RISC

OPTIMIZACIÓNOPTIMIZACIÓN

Page 24: Computadores RISC

ARQUITECTURAARQUITECTURA

Expositor: Muñoz Aleman JonathanExpositor: Muñoz Aleman Jonathan

Código: 0200414042Código: 0200414042

Página Web: http://geekmelomano.iespana.es/Página Web: http://geekmelomano.iespana.es/

Windows Live ID: [email protected] Live ID: [email protected]

Page 25: Computadores RISC

Arquitectura CISCArquitectura CISC

Page 26: Computadores RISC

Arquitectura CISCArquitectura CISC

Reduce la complejidad de crear Reduce la complejidad de crear compiladores.compiladores.

Permite reducir el costo total del Permite reducir el costo total del sistema.sistema.

Reduce los costos de desarrollo de Reduce los costos de desarrollo de software.software.

Mejora la compactación de código.Mejora la compactación de código. Facilita la depuración de erroresFacilita la depuración de errores

Page 27: Computadores RISC

Arquitectura RISCArquitectura RISC

Page 28: Computadores RISC

Arquitectura RISCArquitectura RISC

Objetivos de RISCObjetivos de RISC Alto rendimiento vía segmentaciónAlto rendimiento vía segmentación Facilitar la implementación HWFacilitar la implementación HW Compatibilidad con compiladores Compatibilidad con compiladores

optimizadooptimizado Estos objetivos dieron lugar aEstos objetivos dieron lugar a

Instrucciones sencillasInstrucciones sencillas Modos de direccionamiento sencillosModos de direccionamiento sencillos Formato de instrucciones de longitud fijaFormato de instrucciones de longitud fija Gran número de registrosGran número de registros

Page 29: Computadores RISC

Arquitectura RISCArquitectura RISC

La estructura simple de RISC conduce La estructura simple de RISC conduce a una notable reducción de la a una notable reducción de la superficie del IC. Se aprovecha para:superficie del IC. Se aprovecha para: Unidad para el procesamiento aritmético Unidad para el procesamiento aritmético

de punto flotantede punto flotante Unidad de administración de memoriaUnidad de administración de memoria Funciones de control de memoria cacheFunciones de control de memoria cache Implantación de un conjunto de registros Implantación de un conjunto de registros

múltiplesmúltiples

Page 30: Computadores RISC

Arquitectura RISCArquitectura RISC

La CPU trabaja más rápido al La CPU trabaja más rápido al utilizar menos ciclos de reloj para utilizar menos ciclos de reloj para ejecutar instrucciones.ejecutar instrucciones.

Utiliza un sistema de direcciones no Utiliza un sistema de direcciones no destructivas en RAM.destructivas en RAM.

Cada instrucción puede ser Cada instrucción puede ser ejecutada en un solo ciclo del CPU.ejecutada en un solo ciclo del CPU.

Page 31: Computadores RISC

Arquitectura RISCArquitectura RISC

Una instrucción ingresa en forma Una instrucción ingresa en forma fija en el circuito integrado del fija en el circuito integrado del procesador (es decir, se alambra procesador (es decir, se alambra físicamente en el procesador) si físicamente en el procesador) si se ha demostrado que la se ha demostrado que la capacidad total del sistema se capacidad total del sistema se incrementa en por lo menos un incrementa en por lo menos un 1%.1%.

Diseñadores RISC de MIPS y HPDiseñadores RISC de MIPS y HP

Page 32: Computadores RISC

SEGMENTACIÓNSEGMENTACIÓN

Expositor: Muñoz Aleman JonathanExpositor: Muñoz Aleman Jonathan

Código: 0200414042Código: 0200414042

Blog: http://javadabaduuu.blogspot.com/Blog: http://javadabaduuu.blogspot.com/

Yahoo! ID: [email protected]! ID: [email protected]

Page 33: Computadores RISC

Detalle de la segmentación de Detalle de la segmentación de instruccionesinstruccionesLa segmentación consiste en descomponer la ejecución de cada La segmentación consiste en descomponer la ejecución de cada instrucción en varias etapas para poder empezar a procesar una instrucción en varias etapas para poder empezar a procesar una instrucción diferente en cada una de ellas y trabajar con varias a la instrucción diferente en cada una de ellas y trabajar con varias a la vez.vez.

Page 34: Computadores RISC

EjemploEjemplo

Ciclo 1 2 3 4 5 6 7 8 9 10

Ins. 1 IF ID EX MEM

WB

Ins. 2 IF ID EX MEM

WB

Ins. 3 IF ID EX MEM

WB

Ins. 4 IF ID EX MEM

WB

Ins. 5 IF ID EX MEM

WB

Ins. 6 IF ID EX MEM

WB

IF: BúsquedaID: DescodificaciónEX: Ejecución de Unidad Aritmética LógicaMEM: MemoriaWB: Escritura

Page 35: Computadores RISC

Riesgos de Datos y de Riesgos de Datos y de ControlControl

RAW (read after write): una instrucción RAW (read after write): una instrucción posterior trata de leer un operando posterior trata de leer un operando antes de que lo escriba una anterior.antes de que lo escriba una anterior.

WAR (write after read): una instrucción WAR (write after read): una instrucción posterior trata de escribir su resultado posterior trata de escribir su resultado antes de que lo haya leído una antes de que lo haya leído una anterior.anterior.

WAW (write after write): una escritura WAW (write after write): una escritura posterior se produce antes que otra posterior se produce antes que otra escritura anterior en el mismo destinoescritura anterior en el mismo destino

Page 36: Computadores RISC

Diagramas de Diagramas de SegmentaciónSegmentación

Modelo de un CPU subescalar

Pipeline genérica

Page 37: Computadores RISC

Diagramas de Diagramas de SegmentaciónSegmentación

Programación de instrucciones usando un pipeline de 5 etapas

Programación de instrucciones en un procesador superescalar

Page 38: Computadores RISC

Diagramas de Diagramas de SegmentaciónSegmentación

Programación de instrucciones en un procesador VLIW

Programación de instrucciones en un procesador vectorial

Page 39: Computadores RISC

PROCESADORES PROCESADORES SUPERESCALARESSUPERESCALARES

Expositor: Muñoz Aleman JonathanExpositor: Muñoz Aleman Jonathan

Código: 0200414042Código: 0200414042

Twitter: http://twitter.com/geekmelomanoTwitter: http://twitter.com/geekmelomano

Google Talk: [email protected] Talk: [email protected]

Page 40: Computadores RISC

OrganizacionesOrganizaciones

La disposición de las instrucciones La disposición de las instrucciones en el código es muy importante en el código es muy importante desde el punto de vista de desde el punto de vista de aprovechamiento de los recursosaprovechamiento de los recursos

Page 41: Computadores RISC

MicroarquitecturaMicroarquitectura

Forma más usual de organizar la Forma más usual de organizar la microarquitectura:microarquitectura:

Page 42: Computadores RISC

Superescalares y Superescalares y SegmentadosSegmentados

La etapa IF es capaz La etapa IF es capaz de leer varias de leer varias instrucciones por instrucciones por ciclo desde el caché ciclo desde el caché L1.L1.

Un procesador Un procesador superescalar es superescalar es capaz de identificar capaz de identificar el paralelismo entre el paralelismo entre instruccionesinstrucciones

Page 43: Computadores RISC

Emisión de InstruccionesEmisión de Instrucciones

Page 44: Computadores RISC

ProblemasProblemas

La decodificación paralela y el uso de La decodificación paralela y el uso de predecodificación.predecodificación.

La emisión paralela de instrucciones a La emisión paralela de instrucciones a las unidades funcionales.las unidades funcionales.

La ejecución paralela de las operaciones La ejecución paralela de las operaciones codificadas en las instrucciones en las codificadas en las instrucciones en las distintas unidades funcionales.distintas unidades funcionales.

La finalización del procesamiento de La finalización del procesamiento de instrucciones.instrucciones.

Page 45: Computadores RISC

Instrucciones de SaltoInstrucciones de Salto

Detección anticipada de la instrucción Detección anticipada de la instrucción de salto (early branch detection):de salto (early branch detection): Detección paralelaDetección paralela Detección anticipadaDetección anticipada Detección integrada en la captaciónDetección integrada en la captación

Alternativas para la gestión de saltosAlternativas para la gestión de saltos Bloqueo del procesamiento del saltoBloqueo del procesamiento del salto Procesamiento especulativo de los saltosProcesamiento especulativo de los saltos Múltiples caminosMúltiples caminos

Page 46: Computadores RISC

APLICACIONES Y APLICACIONES Y NOVEDADESNOVEDADES

Expositor: Muñoz Aleman JonathanExpositor: Muñoz Aleman Jonathan

Skype: geekmelomanoSkype: geekmelomano

Google Wave: [email protected] Wave: [email protected]

Page 47: Computadores RISC

Procesadores SPARKProcesadores SPARK

Page 48: Computadores RISC

Procesadores ARMProcesadores ARM

Page 49: Computadores RISC

Procesadores MIPSProcesadores MIPS

Page 50: Computadores RISC

OpenRISCOpenRISC

OpenRISC es un diseño de CPU OpenRISC es un diseño de CPU RISC de especificación libre, RISC de especificación libre, realizado por OpenCores y realizado por OpenCores y publicado bajo la licencia LGPL.publicado bajo la licencia LGPL.

Page 51: Computadores RISC

iPhone 4, MaquinoniPhone 4, Maquinon

Page 52: Computadores RISC

Ubuntu 9.04 soporta ARMUbuntu 9.04 soporta ARM

Page 53: Computadores RISC

Gracias… Totales!!!Gracias… Totales!!!

PASADOPASADO FUTUROFUTURO