Está en la página 1de 59

PROCESADOR DIGITAL DE

SEÑALES
CAPITULO 1: ARQUITECTURA DE UN
DSP

DR. SERGIO DOMÍNGUEZ SÁNCHEZ


INTRODUCCIÓN AL DSP

 Amplia cantidad de aplicaciones en áreas tales como: radar, voz, telefonía,


medicina, control, sismología, imágenes, etc.
 Procesamiento de datos en tiempo real permitiendo el desarrollo de algoritmos
complejos para el procesamiento digital de señales.
 Gran variedad de herramientas de cómputo para DSPs: filtrado de señales (filtros
digitales), compresión de datos (algoritmos), análisis en frecuencia (transformada
de fourier), entre otras.
INTRODUCCIÓN AL DSP

 PROCESADORES EMBEBIDOS
 La mayoría de los componentes se encuentran incluidos en la placa base (tarjeta de
video, audio, modem, etc)
 Cubren necesidades especificas

 Dentro de la familia de Texas Instruments se tiene:


INTRODUCCIÓN AL DSP

 PROCESADORES EMBEBIDOS
 La mayoría de los componentes se encuentran incluidos en la placa base (tarjeta de
video, audio, modem, etc)
 Cubren necesidades especificas

 Dentro de la familia de Texas Instruments se tiene:


INTRODUCCIÓN AL DSP

 Familias de DSP en Texas Instruments


EL PROCESADOR DIGITAL DE SEÑALES DSP

 Un DSP es un microprocesador diseñado para implementar algoritmos típicos del


procesado digital de señales
 Especialmente aquellas que requieren ser procesadas en tiempo real
 Las operaciones suelen implicar una gran cantidad de acceso a datos, son
altamente repetitivas y usualmente incluyen multiplcaciones.
 Los primeros DSP utilizaban componentes estándar para construir desplazadores,
sumadores y multiplicadores.
 El diseño avanzó con la utilización de técnicas pipe-line
OBJETIVO DEL DSP

 Capturar señales analógicas mediante un ADC para procesarlas con algoritmos


matemáticos y posteriormente enviar la información al exterior mediante un DAC.
MAC

 ¿Qué es una MAC?


 Multiplicación acumulativa (en inglés multiply–accumulate) cuya misión es
realizar un producto y un acarreo automático, basado en acumuladores (registros
de trabajo).
 Forma parte del procesador y está basado totalmente en hardware.
 Todas las operaciones que realiza el DSP (algoritmos, filtros, etc.) están
respaldadas por la MAC.
MAC

 La familia C6000 puede ejecutar de 200 a 4000 millones de MACs por segundo.
ARQUITECTURA DEL DSP

 Dos grupos de acumuladores conectados a 2 Dual MACs que


hacen multiplicaciones de alta velocidad (M1, M2)
 Cuenta con instrucciones que permiten realizar una búsqueda
anticipada (pipelining), lo que permite que la CPU pueda
despachar hasta 8 instrucciones paralelas por cada ciclo de
máquina (aprox. 1ns para C6416 a 1 GHz)
PIPELINE

 El pipeline o segmentación de instrucciones es similar al uso de una cadena de montaje en


una fábrica de manufactura
 El producto pasa por varias etapas de producción antes de tener el producto terminado.
 Cada etapa o segmento de la cadena está especializada en un área especifica de la
línea de producción y lleva a cabo siempre la misma actividad
 Esta tecnología es aplicada en el diseño de procesadores eficientes.
 Es una técnica en la cual se pueden traslapar varias instrucciones haciendo que estas se
ejecuten en el menor tiempo posible.
 En la actualidad, ésta es una de las técnicas más utilizadas por los procesadores para
aumentar su velocidad.
PIPELINE

 Ejemplo de pipeline: Se encuentran cuatro personas en una


lavandería, cada uno de ellos tiene una carga de ropa para lavar,
secar, doblar y acomodarla en una canastilla.
 Las lavadoras toman 30 minutos en lavar.
 Las secadoras toman 30 minutos.
 Doblar la ropa toma otros 30 minutos.
 Acomodarla en una canastilla toma 30 minutos.
PIPELINE

 La lavandería secuencial toma 8 horas en procesar 4 cargas


PIPELINE

 En un proceso de segmentación de instrucciones (pipeline) tomaría 3.5h en procesar las 4


cargas.
PIPELINE

 Las instrucciones presentan cinco estados (cada estado toma un ciclo de reloj):

 IF: Búsqueda de instrucción


 Búsqueda de una instrucción de la memoria de instrucciones
 ID: Búsqueda de registros y decodificación de instrucciones
 EXE: Ejecución o cálculo de dirección
 MEM: Acceso a la memoria de datos.
 WB: Escribir datos en el archivo de registros.
PIPELINE

 Comparemos el tiempo promedio de ejecución en una implementación sin


pipeline y con pipeline. Supongamos que se necesitan 2 nseg para acceso a
memoria, 2 nseg para una operación en la Unidad Lógica Aritmétrica (ULA) y 1
nseg para leer o escribir registros.
PIPELINE

 En una implementación sin pipeline, cada instrucción toma exactamente 1 ciclo


de reloj.
 el ciclo de reloj debe ser ajustado a la instrucción más lenta.
 En éste caso, el ciclo de reloj es ajustado a 8 nseg.
PIPELINE

 Para implementar eficientemente las instrucciones en un procesador pipeline, se


debe asegurar que las instrucciones sean de la misma longitud y por lo tanto se
facilitan las etapas de IF e ID.
 Esta arquitectura posee pocos formatos de instrucción que son consistentes entre si.
 La decodificación de las instrucciones y la lectura de los contenidos de los registros
ocurren al mismo tiempo.
PIPELINE
PIPELINE

 Lecciones sobre segmentación:


 La segmentación no ayuda en la realización de una única tarea, ayuda en la
realización de una carga de trabajo.
 Se pueden realizar múltiples tareas simultáneamente utilizando diferentes
recursos.
 La velocidad se incrementa si se aumentan el número de segmentos.
 La razón de segmentación está dada por el segmento más lento.
 El desbalance en el largo de los segmentos reduce la velocidad (speedup)
 El tiempo en llenar y vaciar los segmentos reduce la velocidad.
RIESGOS DEL PIPELINE

 Los procesadores con pipeline presentan una serie de problemas conocidos como
hazards:
 Riesgos estructurales: Ocurren cuando diversas instrucciones presentan
conflictos cuando tratan de acceder a la misma pieza de hardware
 Riesgos de Datos: Ocurren cuando una instrucción depende del resultado de
una instrucción previa que aún está en el pipeline y cuyo resultado aún no ha
sido calculado.
 Riesgos de control: Son resultado de las instrucciones de salto que necesitan
tomar una decisión basada en un resultado de una instrucción mientras se
están ejecutando otras.
RIESGOS ESTRUCTURALES

 El hardware no puede manejar la combinación de instrucciones que deben


ejecutarse en el mismo ciclo. (suponiendo que se cuenta con una única memoria)
 •Ejemplo: IF y MEM no pueden ejecutarse en el mismo ciclo ya que ambas
necesitan accesardatos de la memoria.
RIESGOS ESTRUCTURALES

 Solución: Retardar la instrucción 4 hasta el ciclo 7.


RIESGOS DE DATOS

Los riesgos de datos ocurren porque una instrucción depende del resultado de una
instrucción previa en el segmento
 NOTA: las instrucciones “add”o “sub”no escriben el resultado hasta el estado WB.

 Algunas veces se puede resolver (o reducir) atascamientos para los riesgos de


datos utilizando la técnica adelantamiento (forwarding)
RIESGOS DEL PIPELINE

Forwarding: trabaja muy bien. Sin embargo no prevéatascamientos en los


segmentos.
 Ejemplo: como la instrucción “lw”no carga el dato deseado en la memoria hasta
el estado MEM, no se puede adelantar el resultado ($s0) hasta el estado MEM.
ARQUITECTURA DEL DSP

Descripción de un sistema microprocesador.


 Un sistema microprocesador es un sistema digital basado en un microprocesador
(dispositivo digital provisto de CPU)
 Capacidad para procesar información y que normalmente constituye un
sistema electrónico de pequeño tamaño,
 Elevada fiabilidad,
 Poco tiempo de diseño y
 Bajo coste, si se compara con cualquier otro tipo de sistema electrónico.
ARQUITECTURA DEL DSP

Periferico.
 Un periférico es un dispositivo cuya finalidad es ayudar a la CPU, realizando alguna
tarea que ésta no puede realizar, como por ejemplo el almacenamiento de
datos (RAM) o de programa (ROM) o la implementación de algunas funciones
relacionadas con la comunicación con el exterior del sistema
 Estos suelen disponer de registros internos a los que accede el CPU mediante
ordenes de lectura escritura. El número de registros internos que puede tener
un periférico de un sistema microprocesador depende de su complejidad y
funcionalidad
 Puede variar desde no tener ninguno.
 Tener pocos (lo que ocurre en la mayoría de periféricos).
 Tener un elevado número (como es el caso de los dispositivos de memoria RAM o
ROM).
ARQUITECTURA DEL DSP
ARQUITECTURA DEL DSP

Periferico.
 Tipos de registro con los que cuenta un periferico:
 Registros de control. Permiten configurar las condiciones en las que va a trabajar el dispositivo.
 Se puede acceder desde la CPU en lectura y escritura y suelen programarse una única vez, al
principio del programa y antes de que la CPU empiece a trabajar con el periférico.
 Registros de estado. La CPU suele acceder a las banderas de este tipo de registros únicamente en
lectura, para observar el estado del periférico. Así, en un periférico de conversión de analógico a digital
(CAD) puede existir un registro de estado en el que se active una bandera para indicar el final de un
proceso de conversión.
 Registros de datos. Son los registros de trabajo del periférico y, por tanto, los que más utiliza la CPU.
 El periférico emplea estos registros como fuente para la realización de la tarea para la que fue
seleccionado.
 Ej. En el CAD, una vez convertido el valor analógico en su equivalente digital, la CPU accede a algún
registro de dato interno al periférico para recoger el dato convertido. En general, son registros que
pueden ser accedidos desde la CPU en lectura o escritura.
ARQUITECTURA DEL DSP

Periferico.
 A veces puede ocurrir que el dispositivo carezca de algún tipo de registro interno
 las memorias que sólo disponen de registros de datos
 Para que la CPU pueda acceder a los registros internos del periférico, éste dispone de un
conjunto de conexiones eléctricas, o líneas de entrada y salida, entre las que se
encuentran:
 Las líneas de dirección (que se suelen nombrar, de manera genérica, Ai). Sirven para
indicar el registro interno del periférico al que se desea acceder. Para ello, el periférico
dispone de su propio rango de direcciones de memoria en el que cada registro interno se
asocia a un valor de las líneas de dirección. Como consecuencia, el número de líneas de
dirección de entrada al periférico varía en función del número de registros internos de que
disponga.
 • Las líneas de dato (que se suelen nombrar, de manera genérica, Di), que permiten la
transferencia del contenido de los registros internos del periférico a la CPU.
ARQUITECTURA DEL DSP

Periferico.
Otras líneas de entrada al periférico que permiten y controlan la
transferencia de información entre el propio periférico y la CPU,
como las siguientes:
La señal de selección del periférico, normalmente activa a nivel bajo
, Chip Select, o , Chip Enable.
 Las señales de selección del tipo de acceso que realiza la CPU
(lectura del o escritura al periférico). El periférico dispone de una
señal (normalmente denominada , Read/Write) o de dos señales (
Output Enable, y , Write Enable) de entrada que utiliza la CPU
para indicarle el tipo de transferencia que va a realizar con el
periférico.
ARQUITECTURA DEL DSP

CPU.
 La CPU es el núcleo de un sistema microprocesador y el dispositivo que controla
el resto de componentes
 Interpreta instrucciones programadas por el usuario y controla
 Realiza operaciones elementales de manejo de datos:
 Transferencia de datos.
 Operaciones aritméticas elementales: suma, resta, incrementa y
decrementa el contenido de los registros internos de la CPU.
 Operaciones lógicas (AND, OR, XOR y NOT) con datos y manejo de biestables
de la CPU, y desplazamiento o rotación del contenido de los registros internos
del CPU
ARQUITECTURA DEL DSP

CPU.
 Se puede decir que está compuesto de dos partes
 Una encargada del control y manejo de instrucciones
 Otra encargada de la realización de las operaciones aritméticas y del manejo de
datos del sistema.
 Cada una necesita una serie de registros internos para desarrollar sus funciones.
Estructura básica de un CPU
ARQUITECTURA DEL DSP

CPU.
 Control y manejo de instrucciones
 Encargada de gobernar y coordinar el funcionamiento del sistema, enviando las denominadas
microórdenes a todos los elementos que deben intervenir en cada momento. Estas microordenes
controla el funcionamiento de los registros internos y la zona de manejo de datos de la CPU.
ARQUITECTURA DEL DSP

CPU.
 La instrucción que ha programado el
usuario para que sea ejecutada. Es un
código binario que le indica a la CPU la
función que debe realizar. El controlador
interno interpreta el significado de dicho
código y genera la secuencia de
microórdenes necesarias para su
ejecución.

 El estado en el que se encuentra la CPU


antes de ejecutarse una instrucción.
ARQUITECTURA DEL DSP

CPU.
 Control y manejo de instrucciones
 Para almacenar estos datos, en la zona de control y manejo de datos de la CPU
aparecen dos registros internos:
 El registro de instrucción (IR, o Instruction Register),
 El registro de estado (ST, o Status Register)
RESUMEN CARACTERÍSTICAS DE LA CPU
C67X

CPU.
 Una CPU avanzada con VLIW (Very Long Instruction Word) con 8
unidades funcionales que incluyen 2 multiplicadores y 6 ALU’s
(Unidades Lógico Aritméticas).
 Ejecuta un máximo de 8 instrucciones por ciclo, 10 veces más que los DSP’s típicos de
otras marcas.
 Proporciona soporte eficiente de memoria para una variedad de aplicaciones de 8, 16 y 32
bits.
 Eficiencia de código en C entre un 80% y 100%

 Un máximo de 1800 MIPS (millones de instrucciones por segundo) a 225MHz.


 Un máximo de 1350 MFLOPS (millones de instrucciones de punto flotante por
segundo) a 225MHz.
RESUMEN CARACTERÍSTICAS DE LA CPU
C67X

CPU.
 Una CPU avanzada con VLIW (Very Long Instruction Word) con 8
unidades funcionales que incluyen 2 multiplicadores y 6 ALU’s
(Unidades Lógico Aritméticas).
 Ejecuta un máximo de 8 instrucciones por ciclo, 10 veces más que los DSP’s típicos de
otras marcas.
 Proporciona soporte eficiente de memoria para una variedad de aplicaciones de 8, 16 y 32
bits.
 Eficiencia de código en C entre un 80% y 100%

 Un máximo de 1800 MIPS (millones de instrucciones por segundo) a 225MHz.


 Un máximo de 1350 MFLOPS (millones de instrucciones de punto flotante por
segundo) a 225MHz.
RESUMEN CARACTERÍSTICAS DE LA CPU
C67X

Eficiencia en compilación C vs
ensamblador ASM
ARQUITECTURA DE LA FAMILIA C6000

Perifericos asociados a la familia C6000


 Coprocesador Viterbi
(VCP)
 Usado para aplicaciones
Wireless 3G
 Soporta >500 canales de voz a
8Kbps
 Decodificador con parametros
programables como: longitud de
restricción, tasa de código y
longitud de trama
ARQUITECTURA DE LA FAMILIA C6000

Perifericos asociados a la familia C6000


 Coprocesador turbo (TCP)
 Usado para aplicaciones
Wireless 3G
 Soporta 35 canales de datos a
384Kbps
 Codificador turbo 3GPP/IS2000
 Decodificador con parametros
programables como: longitud de
restricción, tasa de código y
longitud de trama
ARQUITECTURA DE LA FAMILIA C6000

Perifericos asociados a la familia C6000


 Contadores / Temporizadores
 Dos o tres contadores
/temporizadores de 32 bits
 Usado como contador (cuenta
pulsos de un pin de entrada) o
Timer (cuenta pulsos internos de
reloj)
 Puede generar:
 Interrupciones al CPU
 Pulsos o cambios de valor en pin de
salida.
ARQUITECTURA DE LA FAMILIA C6000

Perifericos asociados a la familia C6000


 Entradas/Salidas de
proposito general (GPIO)
 Observa o controla la señal de
un solo pin
 Pins GPIO dedicados en C6713 y
todos los dispositivos C64x
ARQUITECTURA DE LA FAMILIA C6000

Perifericos asociados a la familia C6000


 Interrupciones de
Hardware (HWI)
 Permite sincronización con el
mundo externo:
 Cuatro pines externos de interrupción
configurables
 Un pin de interrupción no
enmascarable (NMI)
 Pin de Reset
 El CPU C6000 tiene 12 interrupciones
configurables.
ARQUITECTURA DE LA FAMILIA C6000

Perifericos asociados a la familia C6000


 Interfaz periferica paralela
 HPI: Permite a otro procesador
accesar a la memoria del C6000
usando un bus de 16/32 bits
asíncronos.
 PCI: Interfaz PCI standard
maestro/esclavo de 32 bits
ARQUITECTURA DE LA FAMILIA C6000

Perifericos asociados a la familia C6000


 Memoria de Acceso Directo
(DMA/EDMA)
 EDMA es por Enhanced (mejorado)
DMA (cada C6000 tiene una u otra)
 Transfiere cualquier set de localidades
de memoria a cualquier otra (interna
o externa)
 Permite transferencias sincronizadas
 Opera independiente del CPU
 4/16/64 Canales (juegos de
parámetros de transferencia)
ARQUITECTURA DE LA FAMILIA C6000

Perifericos asociados a la familia C6000


 Memoria de Acceso
Directo (DMA/EDMA)
 DMA: Ofrece cuatro canales
totalmente configurables (un
canal adicional para el HPI),
sincronización de eventos, modo
dividido para usar McBSP
 EDMA: Ofrece 16 canales
totalmente configurables (64
canales en dispositivos C64c)
ARQUITECTURA DE LA FAMILIA C6000

Perifericos asociados a la familia C6000


 Cargador de arranque
 Después del Reset pero antes de que el
CPU comience a correr el código, el Boot
Loader puede ser configurado como:
 Copiar automáticamente el código y datos
hacia la memoria del chip
 Permitir un sistema host (via HPI, XBUS o
PCI) para leer/escribir el código y los datos
dentro de la memoria interna y externa
del C6000
 No hacer nada y dejar el CPU iniciar
inmediatamente la ejecución desde la
dirección cero.
ARQUITECTURA DE LA FAMILIA C6000

Perifericos asociados a la familia C6000


 Interfaz de memoria
externa (EMIF)
 Es una interfaz entre el CPU (o
DMA/EDMA) y la memoria externa
y proporciona todos los pines
necesarios y el tiempo para
acceder a varios tipos de memoria.
 Trabaja con SDRAM PC100- fácil, rápido
y barato.
 Los dispositivos C64x tienen dos EMIFs
(de ancho de16bits y 64 bits)
ARQUITECTURA DE LA FAMILIA C6000

Perifericos asociados a la familia C6000


 Ethernet
 Interfaz de Ethernet 10/100
 Para conservar costos, tamaño y
potencia- Los pines del Ethernet
se multiplexan con PCI (puedes
usar uno u otro)
ARQUITECTURA DE LA FAMILIA C6000

Perifericos asociados a la familia C6000


 Puerto Serial con búfer
multicanal
 Usado comúnmente para conectar codecs
seriales (códec: A/D y D/A combinados)
pero puede ser usado por cualquier otro
tipo de comunicación síncrona
 Dos o tres puertos seriales síncronos
 Duplex completo: transmite y recibe
secciones independientes (cada uno es
sincronizado individualmente)
 Desempeño a alta velocidad, arriba de
100Mb/s
ARQUITECTURA DE LA FAMILIA C6000

Perifericos asociados a la familia C6000


 Puerto Serial multicanal de Audio
(McASP)
 Orientada a aplicaciones de audio multicanal
como sistemas de sonido surround
 Más de 8 líneas estéreo (16 canales)- soportadas por
16 pines serie configurables para transmitir o recibir
 Rendimiento: 192 Khz (todos los pines llevan datos
estéreo simultáneamente)
 Formatos de transmisión:
 Interfaz para audio Multi-pin IIS
 Interfaz digital multi-pin DIT

 Formato recibido
 Interfaz para audio multipin IIS

 Disponible en C6713
ARQUITECTURA DE LA FAMILIA C6000

Perifericos asociados a la familia C6000


 Utopia
 Para conección ATM (modo de
transferencia asíncrona)
 Conectividad de red de área
amplia de 50MHz
 Disponible en dispositivos
C64x
ARQUITECTURA DE LA FAMILIA C6000

Perifericos asociados a la familia C6000


 PLL
 Provee multiplicación de reloj. La familia
C6000 puede correr a una o varias veces la
entrada de reloj provista. Esto reduce costos e
interferencia eléctrica.
 Los modos de reloj son configurables por pin
 En la mayoría de los dispositivos, junto con los
pins Clock Mode (configuración), hay otros tres
pines de reloj:
 CLKIN: pin de entrada de reloj
 CLKOUT: salida de reloj del PLL (razón de
multiplicación)
 CLKOUT2: Razón de salida de reloj reducida.
Usualmente ½ o menos de CLKOUT.
ARQUITECTURA DE LA FAMILIA C6000

Perifericos asociados a la familia C6000


 PLL
ARQUITECTURA DE LA FAMILIA C6000

 DSK C6416/C6713
ARQUITECTURA DE LA FAMILIA C6000

 Caracteristicas del DSK C6713


 DSP TMS320C6713: 225Mhz, punto flotante, RAM interna de 256 K Byte
 SDRAM externa: 16 M bytes (interfaz de 32 bits)
 Flash externa: 512 Bytes (interfaz 8 Bits)
 Codec AIC23: Estéreo, razón de muestreo 8KHz-96KHz, muestras de 16 a 24 bits; Micro, línea
de entrada, línea de salida y jacks de bocina.
 CPLD: Lógica programable
 4 LED’s: de usuario Escribibles a través del CPLD
 4 DIP switch de usuario: Leíbles a través del CPLD
 3 Switch de configuración: Seleccionan configuraciones de encendido y modos de arranque
 Interfaz de expansión HPI: Permite comunicación de alta velocidad con otro DSP
 Emulador JTAG Embebido: Provee debug JTAG a alta velocidad a través de interfaz host USB
ARQUITECTURA DE LA FAMILIA C6000

 DSK C6416/C6713

También podría gustarte