Tema 1: Introducción a los DSPs, conceptos básicos “Sistemas Electrónicos para el Procesamiento de Señal” 1 Indice Arquitectura interna – – CPU / Periféricos / buses Tipos de paralelismo Jerarquía de memoria – – – Principios de localidad y tipos de memoria caché Políticas de reemplazo Políticas de escritura Dispositivos DSPs – – 2 – Características Alternativas Selección de DSPs y flujo de diseño Arquitectura básica Arquitectura de un sistema microprocesador Sistema microprocesador (base de lo que es un sistema empotrado): abierto basado en componentes electrónicos con capacidad de procesar datos digitalizados BUSES MASTER 3 SLAVES Introducción a los DSPs, conceptos básicos Arquitectura básica Desde un punto de vista “HARDWARE”: 1 sólo componente de control (CPU): MASTER BUSES (líneas eléctricas) de control/dirección/datos; gestionados por MASTER Mapa de memoria Temporización del acceso Muchos periféricos accedidos por BUSES: SLAVES 4 Introducción a los DSPs, conceptos básicos Arquitectura básica MASTER (µP, µC, DSP, FPGA…) Intérprete de comandos: capacidad de ejecutar instrucciones y programas creados por los usuarios Memoria de programa Ciclo de ejecución realizado secuencialmente por FASES Sistema síncrono Manejo de datos: capacidad de hacer operaciones algebraicas y binarias con operadores de entrada y salida Operadores: ALU y multiplicadores Acumuladores/registros y memoria de datos Direccionamiento 5 Introducción a los DSPs, conceptos básicos Arquitectura básica MASTER (µP, µC, DSP, FPGA…) Interpretación de los comandos: Operaciones con “INSTRUCCIONES” (INSTRUCCIONES/PROGRAMA) Von Neumann Harvard (conflictos) (CICLO DE EJECUCIÓN O DE CPU) 6 Introducción a los DSPs, conceptos básicos Arquitectura básica MASTER (µP, µC, DSP, FPGA…) Operaciones con “DATOS” Operadores aritméticos-lógicos (ALU) versus multiplicadores Necesidad de operandos: Arquitectura orientada a acumulador o registro Importancia de acceder a la memoria de datos: direccionamiento FORMATO DE LOS OPERANDOS: entero, float (coma fija o variable) Nº OPERADORES: operaciones por seg. que puede hacer la CPU 7 Introducción a los DSPs, conceptos básicos Arquitectura básica 8 Introducción a los DSPs, conceptos básicos Arquitectura básica SLAVES: Periféricos Almacenamiento: Memorias Convertidores Comunicaciones Otros Dispositivos electrónicos más o menos complejos que ayudan al µP en el procesamiento que realiza Son accedidos en lectura/escritura (configuración y acceso a información) desde el µP, empleando los BUSES 9 Introducción a los DSPs, conceptos básicos Arquitectura básica BUSES Necesidad de transferir la información (programa/datos) en el sistema electrónico empleando conexiones (cables o líneas eléctricas) Un BUS se puede definir como un conjunto de conexiones eléctricas (cables) que se emplean en el sistema electrónico para un mismo fin Gestionado desde el MASTER (Bus de CONTROL, bus de DIRECCIONES) La información se envía/recibe por los buses de DATOS 10 Introducción a los DSPs, conceptos básicos Arquitectura básica BUSES La realización de un SED se soporta sobre la forma de manejar los BUSES: DOS CONDICIONES QUE DEBEN CUMPLIRSE EVITAR CORTOCIRCUITOS MAPA DE MEMORIA TRANSFERIR LA INFORMACIÓN SIN PÉRDIDAS Y EN EL MENOR TIEMPO POSIBLE CICLOS DE ACCESO / DIAGRAMAS DE TIEMPO 11 Introducción a los DSPs, conceptos básicos Arquitectura básica BUSES CONTROL DE ACCESO 12 Registro de 1 bit con habilitación de escritura y salida triestado Bus serie con puertas a drenador abierto (I2C) Introducción a los DSPs, conceptos básicos Arquitectura básica BUSES MAPA DE MEMORIA “Plano” de localización de cada tipo de periférico del sistema µP. Representa las direcciones de acceso del µP a cada periférico. 13 Introducción a los DSPs, conceptos básicos Arquitectura básica BUSES CICLOS DE ACCESO / DIAGRAMAS DE TIEMPO Electrónica Industrial – 2ª Parte 14 La información (datos o instrucciones) debe llegar a la CPU usando los BUSES para que pueda ser procesada Diagramas de tiempos Introducción a los DSPs, conceptos básicos Arquitectura básica BUSES CICLOS DE ACCESO / DIAGRAMAS DE TIEMPO Mecanismo para ralentizar el acceso de la CPU desde el periférico: Estados de espera 15 Introducción a los DSPs, conceptos básicos Arquitectura básica La estructura básica del sistema empotrado añade periféricos de comunicación al sistema microprocesador para interactuar con otros sistemas 16 Introducción a los DSPs, conceptos básicos Arquitectura básica El diseño de los sistemas microprocesadores se encuentra en plena evolución. Cuando los límites planteados por la frecuencia de reloj y la escala de integración de los circuitos microelectrónicos se convierten en insalvables, se buscan nuevas formas de aumentar la potencia de procesamiento del sistema, explotando al máximo la tecnología existente. En la actualidad, la clave para conseguir sistemas de mayor rendimiento recae en la habilidad de explotar el paralelismo en la ejecución de las instrucciones por parte de la CPU. 17 Introducción a los DSPs, conceptos básicos Juegos de instrucciones Ancho fijo: • • • Todas las instrucciones tienen el mismo tamaño Más fácil de decodificar Aquitecturas RISC : MIPS, PowerPC, SPARC, ARM Ancho variable: • • • Las instrucciones tienen un ancho variable Ocupan menos en memoria y cachés Arquitecturas CISC : IBM 360, x86, Motorola 68k, VAX… Mayoría de ancho fijo o comprimidas: • • Ej: MIPS16, THUMB (sólo dos formatos 2 y4 bytes) PowerPC y algunos VLIWs (Se guardan las instrucciones comprimidas y se descomprimen en la caché de instrucciones) (Very) Long Instruction Word: 18 • • Múltiples instrucciones en un paquete de tamaño fijo Ej: Multiflow, HP/ST Lx, TI C6000 Introducción a los DSPs, conceptos básicos Tipos de paralelismo Tipos de paralelismo → Nuevas arquitecturas µPs • Segmentación, «pipelining» o paralelismo temporal: simultanear en el tiempo la ejecución de varias instrucciones. La instrucción se divide en partes más pequeñas, cada una conectada con la siguiente, formando un cauce en el que las instrucciones entran por un extremo, son procesadas en varias etapas y salen por el otro extremo (supersegmentados) • Multiprocesamiento o paralelismo asíncrono. Ejecución simultánea de instrucciones. VLIW, superescalar • Paralelismo espacial. Operadores vectoriales independientes que manejan gran cantidad de datos en cada operación (vectores). Procesadores vectoriales y matriciales 19 Introducción a los DSPs, conceptos básicos Pipeline Pipeline ideal • Todas las instrucciones pasan por las mismas etapas • No se comparten recursos entre etapas diferentes • El retardo de propagación en todas las etapas del pipeline es el mismo 20 • La ejecución de una instrucción que entra al pipeline no se ve afectadas por las instrucciones que se encuentran en otras etapas Introducción a los DSPs, conceptos básicos Pipeline Rendimiento de un procesador • Las instrucciones por programa dependen del código fuente, el compilador y el juego de instrucciones • Los ciclos por instrucción (CPI) dependen del juego de instrucciones y la microarquitectura • El tiempo por ciclo depende de la microarquitectura y la tecnología electrónica 21 Introducción a los DSPs, conceptos básicos Pipeline Conflictos en la estructura pipeline • Conflictos estructurales: una instrucción en el pipeline necesita los recursos utilizados por otra instrucción en el pipeline • Conflictos de datos: la ejecución de una instrucción depende de los datos producidos por una instrucción anterior • Conflictos de control: una instrucción se ejecutará o no dependiendo de la decisión de una instrucción anterior 22 Introducción a los DSPs, conceptos básicos Pipeline Resolución de conflictos • Planificación previa: el programador/compilador evita conflictos • Prioridades (stall): lógica de control que frene las instrucciones previas del pipeline hasta que no exista conflicto • Bypass: Interconectar etapas del pipeline • Especulación: suponer que no existe conflicto y eliminar las instrucciones previas caso de que lo haya 23 Introducción a los DSPs, conceptos básicos Jerarquía de memoria Acceso a la información de forma “eficiente” Maximizar rapidez/coste 24 Introducción a los DSPs, conceptos básicos Jerarquía de memoria 25 Introducción a los DSPs, conceptos básicos Jerarquía de memoria Memorias CACHE: Periféricos de memoria pequeños en tamaño y muy rápidos en velocidad de respuesta (tiempos de acceso). Disponen de algoritmos que permiten “acercar temporalmente” a la CPU la información (datos/instrucciones) que ésta necesita para funcionar. 26 Introducción a los DSPs, conceptos básicos Jerarquía de memoria Principios de funcionamiento Localidad temporal: Cuando se accede a una posición de memoria, existe una alta probabilidad de volver a acceder a esa posición en un futuro cercano Localidad espacial: Cuando se accede a una posición de memoria, existe una alta probabilidad de acceder a posiciones adyacentes en un futuro cercano 27 Introducción a los DSPs, conceptos básicos Jerarquía de memoria Principios de funcionamiento Las memorias caché explotan la localidad temporal recordando el contenido de las posiciones de memoria recientemente accedidas Las memorias caché explotan la localidad espacial recogiendo bloques de datos alrededor de las posiciones recientemente accedidas 28 Introducción a los DSPs, conceptos básicos Jerarquía de memoria Principios de funcionamiento 29 Introducción a los DSPs, conceptos básicos Jerarquía de memoria Funcionamiento de la caché 30 Introducción a los DSPs, conceptos básicos Jerarquía de memoria Funcionamiento de la caché 31 Introducción a los DSPs, conceptos básicos Jerarquía de memoria Tipos de memorias caché • Correspondencia directa: cada bloque de memoria sólo tiene una posible ubicación en la caché (según indique el campo índice) • Asociativa por vías: cada bloque de memoria tiene varias posibles ubicaciones en la caché • Completamente asociativa: cada bloque de memoria tiene todas las posibles ubicaciones en la caché 32 Introducción a los DSPs, conceptos básicos Jerarquía de memoria CACHE de correspondencia directa Acceso a instrucciones Reemplaza LINEA en caso de fallo Ejemplo de 4Kx128bits 33 Introducción a los DSPs, conceptos básicos Jerarquía de memoria CACHE asociativa por vías Acceso a datos Reemplazo (aleatorio, LRU…) alguna de las 4 LINEAS si hay fallo Ejemplo de 4 vías y 32bits de dato 34 Introducción a los DSPs, conceptos básicos Jerarquía de memoria CACHE: políticas de reemplazo Determina cuándo y qué bloque de memoria caché debe abandonarla cuando no existe espacio disponible para un bloque entrante: • Aleatoria: Se escoge una línea del espacio de reemplazamiento al azar. • FIFO: Consiste en reemplazar la línea que ha permanecido en la memoria caché el mayor periodo de tiempo. • LRU (Least-recently used): Se sustituye aquella línea de memoria caché que hace más tiempo que no se ha utilizado • LFU (Least Frequently Used): Se sustituye la línea del espacio de reemplazamiento que haya sido menos referenciada. 35 Introducción a los DSPs, conceptos básicos Jerarquía de memoria CACHE: lectura vs escritura En lectura si hay un fallo, se leería del nivel inferior en la jerarquía hasta llegar a la información, reemplazando en la CACHE. La escritura en la caché crea incoherencias con la memoria principal. Necesidad de definir políticas de escritura. 36 Introducción a los DSPs, conceptos básicos Jerarquía de memoria CACHE: políticas de escritura Acierto en escritura: Determina cuándo se actualiza la información en memoria principal cuando se produce una escritura en caché. 37 • Escritura inmediata (Write Through): Cuando se escribe un bloque en memoria caché se actualiza directamente la información también en memoria principal. o Ventajas: realización muy sencilla y asegura la coherencia. o Inconveniente: tráfico entre memoria y el procesador. • Escritura aplazada (Write back): Consiste en escribir en MCa y únicamente se escribe en MP si el bloque a reemplazar ha sido modificado. o Ventajas: menos tráfico. o Inconveniente: diseño más complejo. Introducción a los DSPs, conceptos básicos Jerarquía de memoria CACHE: políticas de escritura Fallo en escritura: • Escritura con alojamiento (Write with allocate): se suele asociar con escritura aplazada. Consiste en llevar el bloque que produce el fallo de memoria principal a caché, y a continuación realizar la escritura en caché. • Escritura sin alojamiento (Write with no allocate): se suele asociar con escritura inmediata. Consiste en realizar únicamente la escritura sobre la memoria principal cuando se produce un fallo. 38 Introducción a los DSPs, conceptos básicos Jerarquía de memoria Rendimiento de las memorias caché 39 Introducción a los DSPs, conceptos básicos Jerarquía de memoria Rendimiento de las memorias caché Causas de fallos de caché (Miss rate) • Obligatorios: primer acceso a un bloque • Capacidad: caché demasiado pequeña 40 • Conflicto: por no ser completamente asociativa Introducción a los DSPs, conceptos básicos Jerarquía de memoria Rendimiento de las memorias caché Factores que influyen en la tasa de fallos de caché (Miss rate): • Tamaño de la caché • Número de vías • Tamaño del bloque 41 Introducción a los DSPs, conceptos básicos Dispositivos DSPs Características de los DSPs: Soporte para tareas repetitivas de cálculo intensivo: 42 • Operaciones rápidas de multiplicación y acumulación: unidades MAC, multiplicadores. • Acceso de memoria múltiple: posibilidad de hacer varios accesos a memoria en un único ciclo (varios juegos de buses). • Muchos registros acumuladores • Direccionamientos especializados: Direccionamiento indirecto con post o pre incremento/decremento, direccionamientos circulares, direccionamiento con inversión de bits. • Instrucciones especializadas para hacer bucles sin necesidad de emplear ningún ciclo de reloj para actualizar y comprobar contadores de bucle Introducción a los DSPs, conceptos básicos Dispositivos DSPs EJEMPLO: FILTRADO DIGITAL Los dos filtros digitales mas comunes son: – Respuesta finita al impulso (FIR) – Respuesta Infinita al Impulso (IIR) La fórmula básica de FIR es y[n] = ∑ h[k ].x[n − k ] donde h[k] es un array de constantes En lenguaje C: 43 y[n]=0; For (n=0; n<N;n++) { For (k = 0;k<N;k++) //inner loop y[n] = y[n] + h[k]*x[n-k];} Multiplicar y acumular (MAC) Introducción a los DSPs, conceptos básicos Dispositivos DSPs MAC usando un Procesador de propósito general Loop 44 Clr A ;Clear Accumulator A Clr B ; Clear Accumulator B Mov *R0, Y0 ; Move data from memory location 1 to register Y0 Mov *R1,X0 ; Move data from memory location 2 to register X0 Mpy X0,Y0,A ;X0*Y0 ->A Add A,B ;A + B -> B Inc R0 ;R0 + 1 -> R0 Inc R1 ;R1 + 1 -> R1 Dec N ;Dec N (initially equals to 3) Tst N ;Test for the value Jnz Loop ;Different than zero loop again Mov B,*R2 ;Move result to memory Introducción a los DSPs, conceptos básicos Dispositivos DSPs MAC usando un DSP 45 Clr A ;Clear Accumulator A Rep N ; Rep N times the next instruction MAC *(R0)+, *(R1)+, A ; Fetch the two memory locations pointed by R0 and R1, multiply them together and add the result to A, the final result is stored back in A Mov A, *R2 ; Move result to memory Introducción a los DSPs, conceptos básicos Dispositivos DSPs Características de los DSPs: Periféricos: • DMA. • Interfaces serie síncronas. Diversos grados de paralelismo 46 Introducción a los DSPs, conceptos básicos Dispositivos DSPs ALTERNATIVAS Aplicación de circuitos integrados específicos (ASIC) Ventajas • Velocidad • Consumo de potencia bajo • costo/performance • Flexibilidad para diseño 47 Inconvenientes • Alto costo de desarrollo • Lentos ciclos de desarrollo • Poca flexibilidad una vez implementados Introducción a los DSPs, conceptos básicos Dispositivos DSPs ALTERNATIVAS Field Programmable Gate Array (FPGA) Ventajas • Mayor flexibilidad que un ASIC • Alta Performance en algunas aplicaciones • Reusabillidad de Hardware para diferentes aplicaciones Inconvenientes • Largo ciclo de desarrollo • Caro comparado con un DSP • Mayor consumo de potencia comparado con un DSP 48 Introducción a los DSPs, conceptos básicos Dispositivos DSPs VENTAJAS DE LOS DSPs • Algunas aplicaciones no son adecuadas para ser implementadas en un FPGA • Paralelismo es limitado • Velocidad no es siempre el factor más importante a considerar • FPGA demasiado caras para productos finales 49 Introducción a los DSPs, conceptos básicos Parámetros de selección de DSPs 50 FORMATO DE LOS DATOS Punto fijo / Punto flotante ANCHO DEL BUS DE DATOS 16 / 32 / 64 VELOCIDAD MIPs / MFLOPs / MMACs JERARQUÍA DE MEMORIA Memorias caché ARQUITECTURA DEL PROCESADOR Grado de paralelismo CONSUMO Aplicaciones portátiles COSTE Depende de la tirada SOPORTE Coste, duración… Introducción a los DSPs, conceptos básicos Flujo de diseño Selección del DSP Evaluación del DSP Fase inicial de desarrollo Producto final Evaluación del software Aprendizaje del DSP Kit de desarrollo o tarjeta de evaluación 51 Introducción a los DSPs, conceptos básicos