Computadores RISC
-
Upload
jonathan-munoz-aleman -
Category
Technology
-
view
8.429 -
download
1
description
Transcript of Computadores RISC
Computadores RISCComputadores RISCArquitectura de Arquitectura de ComputadorasComputadoras
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
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]
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
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
¿QUÉ ES RISC?¿QUÉ ES RISC?
PRINCIPIOS DE DISEÑO DE LAS PRINCIPIOS DE DISEÑO DE LAS COMPUTADORES RISCCOMPUTADORES RISC
CARACTERÍSTICASCARACTERÍSTICAS
Expositor: Ramos Ramírez YaserExpositor: Ramos Ramírez Yaser
Código: 0200414027Código: 0200414027
E-mail: [email protected]: [email protected]
CARACTERÍSTICASCARACTERÍSTICAS
RISC MODERNORISC MODERNO
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 .
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]
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
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
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
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
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
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
FORMATO DE FORMATO DE INSTRUCCIONESINSTRUCCIONES
OPTIMIZACIÓNOPTIMIZACIÓN
Expositor: Ramos Ramírez YaserExpositor: Ramos Ramírez Yaser
Código: 0200414027Código: 0200414027
E-mail: [email protected]: [email protected]
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
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
OPTIMIZACIÓNOPTIMIZACIÓN
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]
Arquitectura CISCArquitectura CISC
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
Arquitectura RISCArquitectura 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
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
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.
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
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]
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.
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
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
Diagramas de Diagramas de SegmentaciónSegmentación
Modelo de un CPU subescalar
Pipeline genérica
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
Diagramas de Diagramas de SegmentaciónSegmentación
Programación de instrucciones en un procesador VLIW
Programación de instrucciones en un procesador vectorial
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]
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
MicroarquitecturaMicroarquitectura
Forma más usual de organizar la Forma más usual de organizar la microarquitectura:microarquitectura:
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
Emisión de InstruccionesEmisión de Instrucciones
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.
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
APLICACIONES Y APLICACIONES Y NOVEDADESNOVEDADES
Expositor: Muñoz Aleman JonathanExpositor: Muñoz Aleman Jonathan
Skype: geekmelomanoSkype: geekmelomano
Google Wave: [email protected] Wave: [email protected]
Procesadores SPARKProcesadores SPARK
Procesadores ARMProcesadores ARM
Procesadores MIPSProcesadores MIPS
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.
iPhone 4, MaquinoniPhone 4, Maquinon
Ubuntu 9.04 soporta ARMUbuntu 9.04 soporta ARM
Gracias… Totales!!!Gracias… Totales!!!
PASADOPASADO FUTUROFUTURO