Arquitectura de Procesadores VLIW y DSP

Slides:



Advertisements
Presentaciones similares
Arquitectura RISC & CISC y DSP
Advertisements

Procesadores Superescalares
El modelo de Von Neumann
A REA DE TECNOLOGIA ELECTRONICA U NIVERSIDAD DE O VIEDO LECCION 5 – ARQUITECTURA INTERNA DE LOS PIC - 1F.F. LINERA ARQUITECTURA BASICA. CARACTERISTICA.
UNIVERSIDAD DEL VALLE DE MEXICO CAMPUS CHAPULTEPEC
ARQUITECTURA DE COMPUTADORES - VON NEUMANN MODEL
Procesadores digitales de señal (PDS)
Fermín Sánchez Carracedo Universitat Politècnica de Catalunya
El Microprocesador.
PROCESADORES SUPERESCALARES
Microprocesadores.
Introducción a los Sistemas Operativos Memoria Virtual
Pipelines: Riesgos.
ARQUITECTURA INTEL FORMATOS DE INSTRUCCIÓN
Introducción a los Procesadores Digitales de Señal (DSP)
Tema II Unidad de memoria. 2 Unidad de memoria 2.1 Definiciones y conceptos básicos Localización Capacidad Unidad de transferencia
Introducción a la programación
Windows XP sp3.
EL Sistemas Digitales Ing. José Alberto Díaz García Escuela de Ingeniería Electrónica Arquitectura Segmentada Pipeline (Segmentación)
EMISION MULTIPLE DE INSTRUCCIONES
Algorítmo de Mapeo Directo
Arquitectura de Conjunto de Instrucciones (ISA)
Circuitos Combinacionales Comunes
Composición Interna de un Procesador
Direcciones físicas y direcciones virtuales (lógicas)
Arquitectura del Computador
TRADUCTOR DE UN PROGRAMA
Tema 10: Gestión de Memoria
ARQUITECTURA DE LOS MICROPROCESADORES DE 8 BITS
PLANIFICACIÓN DINÁMICA DE INSTRUCCIONES
Unidad 2: Organización del CPU
P(C) = m * nMAXIMO GRADO DE PARALELISMO WSBS ha sido llamado el procesamiento en serie de bits, ya que se procesa un bit por vez (n = m = 1). Es el procesamiento.
5º Microprocesadores para comunicaciones
Organización del Computador I Verano MIPS (1 de 2) Basado en el capítulo 3 del libro de Patterson y Hennessy Verano 2004 Profesora Borensztejn.
Arquitectura de ordenadores.
Memoria Cachés. Universidad de SonoraArquitectura de Computadoras2 Introducción Caché es el nivel de memoria situada entre el procesador y la memoria.
ARQUITECTURA DE COMPUTADORES Semestre A-2009 Clase 13.
Maquinas Digitales  La idea principal es dividir el procesamiento de cada una de las instrucciones en una serie de pasos totalmente independientes.
Universidad Tecnológica de la Selva Ing. Emmanuel Gordillo Espinoza.
Scheduling dinámico Algoritmo de Tomasulo.
Electrónica aplicada al tratamiento de datos Procesadores digitales de señal (PDS) DSP: Digital Signal Processors (procesadores) DSP: Digital.
Organización de Computadoras
MICROCONTROLADORES NOCIONES BÁSICAS COMPUTO II. ¿QUÉ ES UN MICROCONTROLADOR? MICROCONTROLADOR = MICROPROCESADOR + MEMORIA + PERIFERICOS.
Diseño de la Unidad de Control Multiciclo: Microprogramación
LOS MICROPROCESADORES
Tema 2: Lenguaje máquina
Arquitectura de Von Neumann
Conclusión del curso. Universidad de SonoraArquitectura de Computadoras2 Temas cubiertos Lenguaje ensamblador MIPS. Diseño de una CPU tradicional. Datapath.
“Organización y Arquitectura de Computadores” William Stallings
Sistemas Operativos Avanzados
Sánchez Manjarrez Silvana Ing. Daniel Domínguez C. México, D.F. a 13 de septiembre del 2006 Arquitectura de Computadoras Arquitecturas CISC Y RISC Campus.
Capítulo 4 CPU y la memoria.
ARQUITECTURA DE COMPUTADORES Semestre A-2009 Clase 20 La mayor parte del contenido de estas láminas, ha sido extraído del libro Computer Organization and.
Organización del Computador I Verano Control Multiciclo Basado en el capítulo 5 del libro de Patterson y Hennessy Verano 2004 Profesora Borensztejn.
Tema: Historia de los Microprocesadores
ARQUICTECTURA DE SERVIDORES
Son los atributos de un sistema que son visibles para un programador, es decir aquellos atributos que impactan directamente en la ejecución lógica de un.
Principio unidad 1.
     Jerarquía de memoria.
INTRODUCCIÒN MICROCONTROLADORES
ARQUITECTURAS DE LOS SERVIDORES El computador tiene 2 aspectos para entender su funcionamiento al nivel de programación: Almacenamiento Procesamiento Para.
Santiago Restrepo Rodríguez
PROCESADOR.- El procesador es el cerebro del sistema, encargado de procesar toda la información. Básicamente, es el "cerebro" de la computadora. Prácticamente,
El microprocesador y su arquitectura
Gestión de Memoria – Parte 2
CAPITULO V Arquitectura de Von Neumann
Arquitectura de Computadoras (Taller) Semestre II de 2008.
Unidad de Control Ubicación: Es uno de los tres bloques funcionales principales en los que se divide una unidad central de procesamiento (CPU). Realizar.
1/50 Ing. Gerardo Chávez Malpartida Administración de Memoria SISTEMAS OPERATIVOS.
Transcripción de la presentación:

Arquitectura de Procesadores VLIW y DSP

ILP (Instruction Level Parallelism) Familia de técnicas de diseño tanto del procesador como del compilador que incrementan la velocidad de ejecución permitiendo que operaciones individuales (instrucciones) tales como loads, stores, operaciones enteras y de CF, se ejecuten en paralelo. A diferencia de los multiprocesadores tradicionales o máquinas masivamente paralelas, estas técnicas son transparentes al usuario. Ejemplo de técnicas ILP aplicadas a procesadores: superescalares y VLIW Ejemplo de técnicas ILP aplicadas al compilador: software pipelining y trace scheduling Unidad 5 VLIW y DSP

Surgimiento de VLIW 1980’s: aparecen en el mercado como una natural evolución de los procesadores microprogramados horizontalmente. debido a los mismos cambios en la tecnología que motivaron la aparición de RISC: la desaparición del gap existente entre RAM y ROM. El mercado de procesadores especializados, que tenían cableados importantes algoritmos como FFT, reemplazan la ROM de control con RAM, dándoles a los programadores acceso al ILP. Unidad 5 VLIW y DSP

Microprogramación Horizontal: cada microinstrucción contiene n bits, cada uno de los cuales controla directamente cada pieza de hardware, evitando otros niveles de decodificación. Las microinstrucciones horizontales son más largas. Vertical: cada microinstrucción tiene un pequeño número de campos, muy codificados, de forma que requieren más decodificación antes de aplicarse a los componentes individuales. Unidad 5 VLIW y DSP

Surgimiento de VLIW Tanto en RISC como en VLIW, el tema crucial era el compilador. En el caso de VLIW, el compilador debía generar código “horizontal”: es decir debía especificar el paralelismo directamente. Técnicas de generación de código se extendieron a partir de las existentes para microcódigo, y se desarrollaron nuevas para incorporar a los compiladores para que éstos extraigan mucho paralelismo. Se construyeron pocas VLIW CPU’s de propósito general: Culler, Multiflow y Cydrome. A pesar de explotar mucho ILP, no tuvieron éxito comercial. Unidad 5 VLIW y DSP

Diferencias y Semejanzas con Superescalares Semejanzas: misma estructura básica compuesta por múltiples U.F. operando en paralelo, y un único Banco de Registros (o dos para FX y FP) Diferencias: tipo de instrucciones y scheduling de instrucciones Unidad 5 VLIW y DSP

Diferencias y Semejanzas con Superescalares Única Instrucción Multioperación Caché de Instr. Unidad de Fetch VLIW EU EU EU Banco de Registros Unidad 5 VLIW y DSP

Diferencias y Semejanzas con Superescalares Múltiples Instrucciones Caché de Instr. Unidad de Fetch Decode/ Inicio Superescalar EU EU EU Banco de Registros Unidad 5 VLIW y DSP

Tipos de Instrucciones Arquitecturas VLIW están controladas por instrucciones largas que contienen un campo de control por cada una de las UF disponibles en la arquitectura. La longitud de la instrucción depende de dos factores: número de UF disponibles y número de bits necesarios para controlar cada UF. El número de UF suele ser grande : de 5 a 30. El número de bits de control para cada UF suele ser de 16 o 32 ====> palabras de instrucción de 100-1kbit Ejemplos: Trace 7/200 ejecuta 7 operaciones por ciclo y utiliza una palabra de instrucción de 256 bits. Unidad 5 VLIW y DSP

Scheduling de Instrucciones Superescalares utilizan sheduling dinámico VLIW utilizan scheduling estático: es responsabilidad del compilador. Ventaja: reduce la complejidad del hardware (no hay detección de riesgos, ni renombre, ni despacho en desorden, ni retiro ordenado, y además la etapa de decodificación es más sencilla) y permite incrementar la velocidad del reloj o aumentar el paralelismo o ambas a la vez. Unidad 5 VLIW y DSP

Scheduling de Instrucciones Desventaja: mayor complejidad en el compilador al que le tocan las tareas de detectar y eliminar los riesgos por dependencias de datos, control y recursos. Pero además, el compilador, para poder realizar su tarea, necesita conocer todas las características del hardware, tales como: número, tipo, latencia, intervalo de iniciación de las UF, slot delay del load, muchos de los cuales dependen no sólo de la arquitectura sino de la tecnología de implementación. ===>>>un mismo compilador NO puede utilizarse para distintos modelos de la misma familia. !!!!! Unidad 5 VLIW y DSP

Scheduling de Instrucciones Mas problemas: Cache Misses : Debido a que el compilador no conoce cuando se producirán, debe considerar el caso peor de retardo al generan su scheduling. (loads especulativos...) El formato de la VL Instruction, que es fijo, no siempre contiene información útil en todos los campos ===>>pérdida de espacio y ancho de banda con memoria. Debido a la alta complejidad de la tarea, los VLIW NO pueden ser programados en lenguaje ensamblador (!) Unidad 5 VLIW y DSP

GPP VLIW: Trace 2000 Desarrollado por la empresa Multiflow en 1987. (Tanto Multiflow como Cydrome quebraron a principios de los 90) Son tres modelos: Trace 7/200, 14/200, 28/200 (7,14,28 instrucciones por ciclo) Unidad 5 VLIW y DSP

GPP VLIW: Trace 2000 Registros FX (64x32) Registros FP (32x64) ALU0 FMUL FADD TLB Store Registers (32x32) F board I board Dirección Física Store Buses Unidad 5 VLIW y DSP

GPP VLIW: Trace 2000 Instrucción: 256 bits (7 instrucciones). Fetch: una instrucción por ciclo mayor ( 2 ciclos menores llamados beats) Latencia de operaciones de enteros: 1 ciclo menor Latencia de operaciones de CF: 6 (FADD), 7 (FMUL) y 25 (FDIV) ciclos menores. UF segmentadas. Unidad 5 VLIW y DSP

Trace 2000: Instrucción Subword 0: ALU0, primer beat opcode dest dest_bank branch_test src1 src2 inm Subword1: constante Constante Inmediata Subword 2: ALU1, primer beat opcode dest dest_bank src1 branch_test src2 inm Subword3: FADD opcode L dest src1 src2 dest_bank Subword 4: ALU0, ultimo beat opcode dest dest_bank src1 branch_test src2 inm Constante Inmediata Subword 5: constante Subword 6: ALU1, ultimo beat opcode dest dest_bank src1 branch_test src2 inm Subword 7 : FMUL opcode L dest src1 src2 dest_bank Unidad 5 VLIW y DSP

Trace 2000: Instrucción Hay 4 subwords que permiten especificar salto condicional, pero sólo pueden utilizarse dos. Los saltos codifican su prioridad (cual es el primero) en el campo inmediato. De las 8 palabras, 6 especifican los bits de control para las UF, mientras que dos contienen operandos inmediatos. Las palabras de control contienen: 7 bits de código de operación dos campos para designar operandos fuentes y uno para destino (6 bits) especificación del Banco de Registros (FX, FP o local store) Unidad 5 VLIW y DSP

Trace 2000: Instrucción Las instrucciones se almacenan en una caché de 8K VLIW, que provee una instrucción por ciclo. Las subwords vacías no se almacenan en memoria. Cada palabra de 1K bit se asocia con una máscara de 32 bits que indica que subpalabras están vacías y cuales no. Comparado con el código compilado para un VAX, el código para TRACE es al menos 3 veces más largo. Números de rendimiento: Trace 7/200 130 instrucciones/ciclo 6 Mflops Cray XMP 8 instrucciones/ciclo 24 Mflops Unidad 5 VLIW y DSP

DSP: Digital Signal Processing Procesadores para procesado digital de señales: se utilizan para teléfonos celulares, modems, discos, contestadoras, etc. Al bajar el precio de los microprocesadores, éstos pueden ser incorporados a productos del mercado que demandan bajo costo, rapidez, pequeñez y poco consumo de energía===> se desarrollan chips que implementan el procesado de señales. El mercado de DSP está creciendo. (Forward Concepts reporta en 1997 un movimiento de 3 billones de dolares) Unidad 5 VLIW y DSP

DSP: Funciones de Filtro Una de las funciones más comunes en DSP: filtrado de señales. xn xn-1 x1 D D D c1 c2 Cn-1 cn x x x x yn + + + Tap yn = xn c1 + xn-1c2 +........ + x1 cn Unidad 5 VLIW y DSP

DSP: instrucción MAC El número de TAP’s, y los valores de los coeficientes definen las características del filtro. La operación realizada (yk = yk-1 + xk cj) se llama MAC: multiply-accumulate. Para soportar la MAC eficientemente, DSP tienen hardware especializado de multiplicación (multiplican en un ciclo) y registros acumuladores especiales (más grandes que los registros comunes) Casi todos los procesadores DSP tienen una instrucción de MAC en su conjunto de instrucciones. Esta es una diferencia con los GPP. Unidad 5 VLIW y DSP

DSP: instrucción MAC DSP requieren mucho ancho de banda con memoria: por ejemplo, para ejecutar un MAC por ciclo, se requieren 4 accesos a memoria por ciclo: fetch de la instrucción MAC leer el elemento x correspondiente leer el coeficiente escribir el resultado DSP utilizan la arquitectura de memoria Harvard. Un típico GGP utiliza la arquitectura Von Neumann. Unidad 5 VLIW y DSP

Arquitecturas de Memoria: Harvard y Von Neumann Procesador Procesador Bus de Direcciones 1 Bus de Direcciones Bus de Datos 1 Bus de Direcciones 2 Bus de Datos Bus de Datos 2 Memoria Memoria Memoria Unidad 5 VLIW y DSP

DSP: memoria Desde el punto de vista físico, la arquitectura de memoria con caches de instrucciones y datos de los procesadores superescalares es casi idéntica a la arquitectura Harvard. Desde el punto de vista lógico, hay diferencias: En DSP, el programador controla EXPLÍCITAMENTE qué datos e instrucciones se alamcenan en sus memorias. En GPP, el proceso de decidir que datos e instrucciones residen en la caché, es transparente al programador: desde el punto de vista del programador solo hay una única memoria de datos e instrucciones (Von Neumann) La mayoría de los DSP no contienen caché: usan múltiples bancos de memoria dentro del chip.Algunos pueden llegar a tener una pequeña caché de instrucciones, pero no de datos porque los datos en los algoritmos de DSP se usan y se descartan. (no hay reuso)

DSP y GPP: diferencias DSP: Zero overhead looping: hardware especializado para la ejecución de loops (instrucción loop) GPP: predicción de saltos DSP: aritmética entera, porque es menos costosa. DSP: modos de direccionamiento especializados: modulo addressing y bit reversed addressing DSP: aplicaciones de tiempo real. Esto requiere del programador el conocimiento exacto de cuanto tiempo de proceso requerirá cada muestra (o al menos, el peor caso). Unidad 5 VLIW y DSP

DSP y GPP: diferencias GPP’s de alto rendimiento : es difícil predecir el tiempo de ejecución de un trozo de código: POCA PREDICTIBILIDAD, porque la ejecución especulativa hace que un mismo trozo de código consuma distinta cantidad de ciclos según la historia previa de ejecución DSP, no tienen ejecución especulativa y, en caso de que hubiera caché de instrucciones, es el programador el que sabe que instrucciones están alli====> MUCHA PREDICTIBILIDAD. Unidad 5 VLIW y DSP

DSP y GPP: Instrucciones DSP ISA’s diseñados para conseguir muchas instrucciones por ciclo y poco consumo de memoria ==> muchas operaciones en una única instrucción, pero muy especializadas ==> conjuntos de instrucciones irregulares y complicados. Motorola DSP56300: dos espacios de memoria X e Y MAC X0, Y0, A X:(R0)+, X0 Y:(R4)+N4, Y0 Multiplica X0 por Y0 Suma el resultado a A (aumulador) Carga registro X0 con la posición apuntada por R0 de memoria X Carga registro Y0 con la posición apuntada por R4 de memoria Y Postincrementa R0 por 1 Postincrementa R4 por el contenido de N4

DSP y GPP: Programación GPP se programan en alto nivel. DSP se programan en ensamblador porque la complejidad de la arquitectura (múltiples espacios de memoria, juego irregular de instrucciones y hardware especializado) hacen difícil escribir compiladores eficientes. Optimización de código es esencial en DSP: mucha computación a bajo costo. Los vendedores de DSP proveen herramientas de optimización y simulación. Se mejora “a mano”el resultado del compilador.

Tipos de DSP Bajo Costo, Bajo Rendimiento: DSP medios: TI TMS320C2xx, Motorola DSP560xx (Familias) Operan a razón de 20-50MIPS Nativos Poco consumo de energía, poca memoria. Uso: productos que requieren poco rendimiento pero tienen mucho consumo, por ejemplo disk drives, contestadoras DSP medios: Mayor frecuencia de reloj : 100-120 MIPS TI TMS320C54xx, Lucent Technologies DSP16xx (Familias) Hardware más sofisticado: pipeline, cachés de instrucciones Uso: productos que requieren alto rendimiento computacional y poco consumo, por ejemplo modems de alta velocidad.

Tipos de DSP Alto Rendimiento: Procesamiento ultrarrápido, Diversidad de Arquitecturas. Convencionales Mejorados Inicio de Múltiples Instrucciones por Ciclo Convencionales Mejorados: Se agregan UF (Multiplicadores, Sumadores), soporte dentro del juego de instrucciones para el hardware adicional. Ejemplo: Lucent Technologies DSP16210 100MIPS Inicio Múltiple: En GPP, el inicio múltiple se consigue con técnicas superescalares En DSP, con VLIW

VLIW DSP’s Texas Instruments TMS320C6000 (Fabio) 256 bits por instrucción, divididas en 8 palabras de 32 bits controlan 8 UF’s independientes clock: 200Mhz MIPS: 1600 Las subinstrucciones son más simples que las de los DSP convencionales No siempre están ocupadas todas las UF Consumen más energía y los programas ocupan más memoria que los DSP’s convencionales Compiladores agrupan las instrucciones en palabras. Si no puede agrupar el conjunto completo de subinstrucciones, inserta NOP’s. Mecanismo de compresión hardware y software para solucionar el problema del tamaño del código.

VLIW DSP’s Un bit por instrucción se reserva para indicar si la instrucción se ejecuta en paralelo con sus vecinas. El bit lo setea el programador o el compilador. Los p bits se escanean de izquiera a derecha. Si p de la instrucción i es igual a 1, entonces la instrucción i + 1 se ejecuta en paralelo con la instrucción i. El último p es siempre 0.

VLIW DSP’s Unidad 5 VLIW y DSP

Ejemplo de código MPY .M1 A0, A1, A2 || ADD .L1 A4, A5, A2 || ADD .L1X A7, B1, A6 El lenguaje ensamblador especifica, además de los registros, modos de direccionamiento y operación a ser realizada, la Unidad Funcional, los Caminos de Datos utilizados, y el paralelismo entre las instrucciones. Unidad 5 VLIW y DSP