Tema 1

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