Está en la página 1de 51

Evolucin y tendencias futuras de los microprocesadores, microcontroladores y DSP.

Alpha 21164. Microprocesador RISC superescalar.

Evolucin y tendencias futuras de los microprocesadores, microcontroladores y DSP


Tecnologa: Evolucin. Nuevos retos. Arquitectura: Evolucin CISC vs. RISC. Arquitecturas avanzadas. Conceptos:
Cach. Ejecucin segmentada: Pipelining. Paralelismo.

Aplicacin especfica. Microprocesadores. Microcontroladores. DSP.

Tecnologa. Evolucin: Ley de Moore

Tecnologa. Evolucin: Lgica.

Tecnologa. Retos.

Litografa. (Actualidad: 180 nm).


Ultravioleta profundo (190 nm).
Lmite fsico: 100 nm.

Alternativas:
Litografa de barrido de haz de electrones. Litografa de rayos X.

Reduccin del coste.


Proyeccin por haz de electrones.

Tecnologa. Retos.

Dispositivos. (Transistores)
Menor longitud de canal. Menor rea. Inyeccin en el aislante de puerta.
Reduccin de la tensin de alimentacin. Dielctricos de alta permitividad. (Nitruro de Silicio)

Fluctuacin estadstica de dopantes.


Control de tensin umbral difcil.

Tecnologa. Retos: Dispositivos.

Tecnologa. Retos:

Tecnologa. Retos: Encapsulado.

Mayor nmero de terminales. (Actualidad ~400).


Terminales de menores dimensiones. Terminales distribuidos por todo el integrado (PGA,BGA).

Elementos de circuito parsitos menores.


Mayor frecuencia de funcionamiento del sistema. Mdulos Multichip (MCM).

Baja resistencia trmica.


Flip-Chip.

Tecnologa. Retos. Encapsulado. Evolucin.

Tecnologa. Retos: Diseo.

Tecnologa. Retos: Test.


Principales problemas:
Coste equipo de test. Sondas: Elementos de circuito parsitos.

Soluciones: Diseo orientado al test.


Built-In Self Test (BIST). Boundary-Scan (JTAG).

Arquitectura. Evolucin CISC vs RISC.


Aos 80: CISC: (68020, I386.)
Instrucciones complejas, orientadas a lenguajes de alto nivel.
Manejo de cadenas (REP MOVS). Preparacin de tramas de pila (LINK, UNLINK, ENTER, LEAVE). Bucles (BDcc, LOOP). Manejo de campos de bit (BSET, BSF).

Modos de direccionamiento complejos:


Registro-Registro, Registro-Memoria, Memoria-Memoria. EA=(Base+ndice*escala+desplazamiento) No todos los direccionamientos son vlidos en todas las instrucciones.

Cdigos de operacin de longitud variable (I386: 1 - 15 bytes) Microprogramacin. Arquitectura Von-Newmann (Memoria unificada).

Arquitectura. Evolucin CISC vs RISC.

Aos 90: RISC:


Procesadores SPARC, PowerPC, Alpha, MIPS, PA-RISC, ARM, etc. Slo instrucciones simples con operandos en registros. Slo las instrucciones LOAD y STORE acceden a la memoria. Instrucciones de 3 operandos. Grandes bancos de registros. Ventanas de registros (SPARC). Direccionamientos sencillos en instrucciones LOAD y STORE. Cdigos de operacin de longitud fija (32 o 64 bits). Ejecucin segmentada (Pipepiling). Arquitectura Harvard (Memorias de programa y datos separadas).

Arquitectura. Modelos Von-Newmann y Harvard.

Arquitecturas avanzadas.
Memoria Cach.
Concepto. Escritura en la cach. Cach multinivel.

Ejecucin segmentada. (Pipelining).


Concepto. Bloqueo del pipeline.

Paralelismo.
Paralelismo SIMD. Paralelismo MIMD. Sistemas Multiprocesador.

Arquitecturas avanzadas. Cach.


Problema: La memoria principal, DRAM, es mucho ms lenta que el procesador.
Ciclo CPU: ~ 2 ns. Acceso DRAM: ~ 60 ns. (10 ns SDRAM).

Solucin:
Mantener una copia de los datos ms frecuentes en una memoria rpida aunque pequea: Memoria Cach.

Implementacin:
Memorias asociativas. Integracin en el propio chip.

Arquitecturas avanzadas. Cach. Ejemplo:


(TAG)

Arquitecturas avanzadas. Cach. Ejemplo:


Coincidencia (MSB direccin = SSA, bit P =1):
El dato se lee de la memoria cach. El segmento pasa a ms recientemente usado

Fallo (bit P = 0):


Se lee el dato de la memoria principal y se copia en la cach. Se pone el bit P en 1. El segmento pasa a ms recientemente usado

Fallo (MSB direccin SSA):


Se borran todos los bits P del segmento menos recientemente usado. Se carga el registro SSA con los bits MSB de la direccin. Se procede igual que en el caso anterior.

Arquitecturas avanzadas. Cach. Escritura.

Arquitecturas avanzadas. Cach. Cach multinivel.

Arquitecturas avanzadas. Pipelining.

Concepto: Ejecucin segmentada:


Dividir la ejecucin de todas las instrucciones en un nmero fijo de etapas. Cada etapa se ejecuta en una unidad diferente. Todas las unidades estn operando simultneamente sobre instrucciones distintas.

Arquitecturas avanzadas. Pipelining. Ejemplo:

Arquitecturas avanzadas. Pipelining. Ejemplo:

Arquitecturas Avanzadas. Pipelining. Bloqueo.

Bloqueo del pipeline (Stall):


Alguna o varias unidades del pipeline quedan inactivas (ejecutando NOPs implcitos) durante uno o varios ciclos de reloj.

Causas del bloqueo del pipeline:


Bifurcaciones del programa. Conflictos de Registros. Conflictos de Bus.

Arquitecturas Avanzadas. Pipelining. Bloqueo.

Arquitecturas avanzadas. Pipelining. Bloqueo.

Arquitecturas Avanzadas. Pipelining. Bloqueo.

3 Conflicto de bus.
Varias unidades del pipeline intentan acceder a la memoria simultneamente. La unidad FETCH siempre est leyendo la memoria. Entrara en conflicto con cualquier otro acceso.

Arquitecturas avanzadas. Pipelining. Bloqueo.


Soluciones: 1 Bifurcaciones del programa:
Reducir el nmero de saltos en los programas:
Optimizacin de los compiladores. Instrucciones de ejecucin condicional (Predicados).

Saltos retardados:
No se vaca el pipeline, por lo que se ejecutan varias instrucciones tras el salto. Se utiliza la instruccin NOP para rellenar el pipeline si fuera necesario.

Prediccin de saltos:
Se proporciona a la unidad FETCH una direccin para seguir buscando cdigo antes de completarse la ejecucin del salto.

Arquitecturas avanzadas. Pipelining. Bloqueo.


Prediccin de saltos: Esttica:
Saltos incondicionales. Saltos condicionales ejecutados por primera vez.
Prediccin de la ejecucin o no del salto. Variables: Signo del desplazamiento, Cdigo de condicin.

Dinmica:
Tabla histrico de saltos (BHT).
Bits histrico de ejecucin del salto: Predicen si el salto se va a ejecutar. Cach de direcciones de salto.

Pila hardware para el retorno de subrutinas.


Predice la direccin de retorno de las subrutinas ms anidadas.

Arquitecturas avanzadas. Pipelining. Bloqueo.


Soluciones: 2 Conflictos de registros:
Optimizacin de los compiladores. Disponibilidad de muchos registros.

3 Conflictos de bus:
Arquitectura Harvard:
Memoria de programa y de datos separadas. La unidad FETCH lee su propia memoria.

Cach multipuerto:
Permite varios accesos simultneos.

Arquitecturas avanzadas. Paralelismo.

Paralelismo SIMD: Procesamiento vectorial.


Extensiones MMX, 3Dnow, Streaming SIMD, Altivec.

Paralelismo MIMD: Procesadores superescalares.


Procesadores con varias pipelines de ejecucin.

Ordenadores Multiprocesador: SMP.


Memoria compartida. Coherencia de las cachs.

Arquitecturas avanzadas. Paralelismo SIMD.

Arquitecturas avanzadas. Paralelismo SIMD.

Arquitecturas avanzadas. Paralelismo MIMD.


Procesadores superescalares. Paralelismo a nivel de instruccin (ILP):
Varias pipelines de ejecucin. Ms de una instruccin terminada cada ciclo de reloj. Dependencias de datos: prdida de rendimiento. Flujo de datos vs Flujo de programa: Ejecucin fuera de orden.

Arquitecturas avanzadas. Paralelismo MIMD.

Arquitecturas avanzadas. Paralelismo MIMD.

Arquitecturas avanzadas. Paralelismo MIMD.


Ejecucin fuera de orden. Procesadores Pentium-Pro, Pentium-II. In Order Issue.
Lee cdigos de operacin (Hasta 3 instrucciones simultneas). Realiza la prediccin de saltos (BTB). Convierte las instrucciones x86 (CISC) en ops (RISC). (Hasta 6 ops simultneos: 4-1-1)

Out of Order Execution.


Asigna registros del Re-Order Buffer a las ops (RAT). Las ops que no tienen listos sus datos quedan a la espera en la etapa Reservation Station. Distribuye las ops a las cinco pipelines de ejecucin (Ports).

In Order Retirement.
Recupera los datos ya procesados del Re-Order Buffer y los asigna a los registros de la arquitectura x86.

Arquitecturas avanzadas. Sistemas multiprocesador.

Arquitecturas avanzadas. Sistemas multiprocesador.


Sistemas Multiprocesador Simtricos (SMP) Memoria principal compartida.
Limitacin de ancho de banda.

Cachs locales.
Menor acceso a la memoria principal. Coherencia de datos entre cachs.
Cuando un procesador modifica una lnea de su cach lo notifica al resto de los procesadores. Los procesadores que tengan una copia de esa lnea en sus respectivas cachs deben invalidarla. Las lneas de cach modificadas se deben escribir en la memoria principal cuando otro procesador lea dichos datos.

Aplicacin especfica.
Microprocesadores.
Mxima potencia de clculo. Soporte de Sistemas Operativos avanzados.

Microcontroladores.
Bajo coste. Integracin de memoria y perifricos. Bajo consumo elctrico.

Procesadores Digitales de Seal (DSP).


Orientados a la ejecucin de algoritmos de procesamiento de seales. Compromiso entre potencia de clculo y coste.

Aplicacin especfica. Microprocesadores.


Mxima potencia de clculo.
Buen rendimiento en todo tipo de algoritmos. Direccionamiento de grandes bloques de memoria. Coste elevado. Alto consumo elctrico. Necesitan refrigeracin.

Soporte de sistemas operativos avanzados.


Conmutacin automtica de tareas. Proteccin.
Modos Usuario y Supervisor. Memoria virtual. Paginacin.

Compatibilidad con procesadores obsoletos.


Emulacin Hardware (Intel x86). Emulacin Software (Motorola 68k).

Aplicacin especfica. Microcontroladores.


Bajo coste.
Microcontroladores de 8 y 16 bits. Compatibilidad con procesadores antiguos (6502, 6800, Z80, 8086, 68000, etc).

Sistema en un chip.
Integracin de memoria y perifricos. Conexin de memoria y perifricos externos sin lgica adicional (Glue Logic). Mltiples variantes del microcontrolador.
Distintas combinaciones de memoria y/o perifricos. Permiten elegir el chip que mejor se adapte a la aplicacin.

Bajo consumo de potencia.


Utilizacin en equipos porttiles. (telfonos mviles, PDA, etc). Modos de bajo consumo. Frecuencia de reloj baja.

Aplicacin especfica. Microcontroladores avanzados.

Aplicacin especfica. Microcontroladores avanzados.


Ncleos RISC.
SH (Hitachi), ARM-Thumb (Cirrus Logic). V85x (NEC). Colfire (Motorola).

Cdigo compacto (Memorias pequeas).


Cdigos de operacin de 16 bits.
Los cdigos de operacin de 32 bits producen programas largos. En 16 bits hay que restringir los campos de direccin de registro.
Bancos de registros pequeos. Tpicamente 8 o 16 registros. Instrucciones de slo dos operandos.

Cdigos de operacin de longitud variable.


Palabras de extensin 16/32 bits (NEC V85x). Cdigo tipo 68K: Coldfire.

Ventajas del cdigo de 16 bits.


Tamao reducido de los programas. (~65% respecto de los 32 bits) Buses de 16 u 8 bits. Bajo coste sin rendimientos malos. Cachs ms pequeas.

Aplicacin especfica. Microcontroladores avanzados.


Programacin en el propio sistema.
Memoria Flash. Bootloader serie.
Reprogramacin / actualizacin. Test del sistema. Depuracin.

Unidad de gestin de memoria.


Paginacin. Chip Selects programables.
Rangos de direcciones programables. Ancho de bus programable: 8 o 16 bits. Estados de espera programables.

Relojes del microcontrolador programables.


Sntesis PLL a partir de un nico cristal. Control del consumo elctrico.

Aplicacin especfica. DSP.


Procesadores Digitales de Seal (DSP).
Algoritmos de procesamiento de seales muestreadas.
Operaciones aritmticas: Multiplicacin y suma. Paralelismo explcito.

Caractersticas tpicas.
Multiplicacin rpida. Instruccin MAC. Paralelismo Multiplicacin / Suma. Desbordamiento con saturacin. Direccionamiento circular: Colas de datos. Direccionamiento con bits permutados: FFT. Arquitectura RISC. Memoria y/o perifricos integrados. (microcontrolador) Bajo coste por MIPS. Programacin en lenguaje ensamblador.

Aplicacin especfica. DSP avanzados.


VLIW (Very Long Instruction Word)
TMS320C6x (Texas Instruments), SC-100 (Lucent/Motorola), TigerSHARC (Analog Devices). Ejecucin paralela MIMD.
Varias unidades de ejecucin independientes.

Paquetes de instrucciones.
Cada unidad de ejecucin tiene un campo en el cdigo de operacin. Longitud del paquete de instrucciones :128~256 bits. Simplicidad de las unidades de bsqueda y decodificacin.

Aplicacin especfica. DSP avanzados.

Conclusiones.
La tecnologa contina reduciendo las dimensiones de los dispositivos.
Mayor complejidad de los microprocesadores. Frecuencias de reloj mayores. (limitada por los retardos de interconexin)

Uso generalizado del modelo RISC. Memoria cach multinivel. Las nuevas arquitecturas explotan el paralelismo para obtener mayor potencia de clculo.
Paralelismo SIMD. Paralelismo MIMD.

Evolucin y tendencias futuras de los microprocesadores, microcontroladores y DSP.

Alpha 21164. Microprocesador RISC superescalar.