You are on page 1of 18

Página  1 de  18

 
FCEFyN
Universidad Nacional de Cordoba
        
INTRODUCCIÒN A LOS DSP

CAPÍTULO I 
INTRODUCCIÓN 

Los  rápidos  avances  en  la  electrónica,  particularmente  en  las  técnicas  de  fabricación  de  circuitos 
integrados, han tenido, y sin duda continuarán teniendo, un gran impacto en la industria y la sociedad. 
El rápido desarrollo de la tecnología de circuitos integrados, empezando con la integración a gran escala 
(LSI, Large Scale Integration), y ahora la integración a gran escala (VLSI, Very Large Scale Integration) de 
circuitos  electrónicos  ha  estimulado  el  desarrollo  de  computadores  digitales  más  potentes,  pequeños, 
rápidos y económicos, utilizados en  hardware digitales de propósito general. Estas características, han 
hecho posible construir sistemas digitales altamente sofisticados, capaces de realizar funciones y tareas 
del procesado de señales digitales que normalmente eran demasiado difíciles y/o caras con circuitería o 
sistemas  de  procesado  de  señales  analógicas.  De  aquí,  que  muchas  de  las  tareas  del  procesado  de 
señales  que  convencionalmente  se  realizaban  analógicamente,  se  realicen  hoy  mediante  hardware 
digital, a un menor costo y a menudo más confiable.  Los Sistemas DSP modernos son apropiados para 
su  implementación  bajo  el  criterio  VLSI.  Las  grandes  inversiones  necesarias  para  diseñar  un  nuevo 
circuito  integrado  sólo  pueden  ser  justificadas  cuando  el  número  de  circuitos  a  fabricar  es  grande,  o 
cuando  los  niveles  necesarios  de  desempeño  son  tan  altos  que  no  pueden  ser  alcanzados  con  la 
tecnología existente. A menudo, ambos argumentos son válidos, particularmente en comunicaciones y 
aplicaciones dirigidas a los consumidores. Avances en la tecnología de fabricación de circuitos integrados 
también abren nuevas áreas de desarrollo basadas en DSP, tales como sensores inteligentes, visión de 
robots y automatización, mientras entrega las bases para continuar los avances en áreas tradicionales 
del  procesamiento  digital  de  señales,  tales  como  música,  voz,  radar,  sonar,  video,  audio  y 
comunicaciones. El siguiente texto tiene como fin entregar una breve introducción a los sistemas DSP a 
través de la presentación de sus principales características, aplicaciones y algunos datos de interés en 
cuanto a fabricantes, modelos y formas de elegir la plataforma más adecuada. 

PROCESADORES DIGITALES DE SEÑALES 

De manera habitual se esta acostumbrado a escuchar acerca del Procesamiento Digital de Señales o DSP 
por sus siglas en ingles (Digital Signal Processing). Se entiende al procesamiento digital de señales, como 
la disciplina dentro del área de las matemáticas, que tienen como objeto operar o transformar señales 
digitales  con  el  fin  de  entender  o  destacar  la  información  implícita  o  explicita  que  estas  poseen. 
Entendiendo  como  señal  digital,  a  la    evolución  temporal  discreta  de  alguna  magnitud  física  sensada, 
como por ejemplo: señales de radar, música, voz, sonar, vibraciones, temperatura, etc. 

  Procesamiento Digital de Señales – FCEFyN – UNC     INTRODUCCIÒN A LOS DSP 


Página  2 de  18
 
FCEFyN
Universidad Nacional de Cordoba
        
INTRODUCCIÒN A LOS DSP

Con  el  avance  de  la  tecnología,  esta  disciplina  teórica,  fue  materializándose  en  diferentes  circuitos 
electrónicos que permitieron desarrollar etapas de procesamiento digital de señal. Tal desarrollo llevó a 
contar con Procesadores Digitales de Señal o DSP por sus siglas en ingles (Digital Signal Processor).  

Un DSP es un microprocesador que permite realizar el procesamiento digital de señal a partir reglas bien 
definidas  las  cuales  son  introducidas  al  hardware  a  través  de  un  software  específico  que  puede  o  no 
manejar  lenguajes  tanto  de  alto  como  de  bajo  nivel.  Una  de  las  características  que  hacen  único  a  los 
DSP,  es  la  posibilidad  de  realizar  el  procesamiento  de  las  señales  en  tiempo  real.  Esta  capacidad  de 
procesamiento en tiempo real hace a los DSP ideales para aplicaciones que no toleran ningún retardo, 
como  por  ejemplo,  las  comunicaciones  telefónicas  por  celular.  Si  esto  no  fuera  posible  de  realizar,  se 
tendría retardos que darían lugar cortes o a confusión al momento de entablar una comunicación.  

DE ANÁLOGO A DIGITAL 

Las aplicaciones clásicas de los DSP trabajan señales del mundo real, tales como sonido y ondas de radio 
que se originan en forma analógica. Como se sabe, una señal analógica es continua en el tiempo; cambia 
suavemente desde un estado a otro. Los computadores digitales, por otro lado, manejan la información 
discontinuamente,  como  una  serie  de  números  binarios,  por  lo  que  se  hace  necesario  como  primera 
etapa en la mayoría de los sistemas basados en DSP, transformar las señales analógicas en digitales. Esta 
transformación la hacen los Conversores Analógicos – Digitales (ADC, en inglés). Una vez terminada la 
etapa  de  conversión  analógica  –  digital,  los  datos  son  entregados  al  DSP,  el  cual  está  ahora  en 
condiciones de procesarlas. Eventualmente el DSP deberá devolver los datos ya procesados para lo cual 
es  necesaria  una  etapa final  que  transforme  el  formato  digital  a  analógico.  Por  ejemplo,  una  señal  de 
audio  puede  ser  adquirida  (ADC)  y  filtrada  para  eliminar  en  gran  medida  ruido,  crujidos  de  estática, 
amplificar  ciertas  frecuencias  de  interés,  eliminar  otras,  etc.  Luego  de  esto,  la  información  puede  ser 
devuelta a través de una conversión digital – analógica (DAC).  

Ejemplos interesantes de aplicaciones en las cuales se utilizan DSP:  

ƒ Eliminar el eco en las líneas de comunicaciones.  

ƒ Lograr hacer más claras aquellas imágenes obtenidas de los equipos de diagnóstico médico por 
imágenes.  

ƒ Cifrar conversaciones en teléfonos celulares para mantener privacidad.  

ƒ Analizar datos sísmicos para determinar los estratos que subyacen en el subsuelo. 

En su núcleo, un DSP es altamente numérico y repetitivo. A la vez que cada dato esta disponible, éste 
debe ser multiplicado, sumado y además de eso transformado de acuerdo a fórmulas complejas. Lo que 

  Procesamiento Digital de Señales – FCEFyN – UNC     INTRODUCCIÒN A LOS DSP 


Página  3 de  18
 
FCEFyN
Universidad Nacional de Cordoba
        
INTRODUCCIÒN A LOS DSP

permite realizar todo ello, es la velocidad del dispositivo. Los sistemas basados en DSP deben trabajar a 
tal  velocidad,  que  sean  capaces  de  realizar  procesamiento  en  tiempo  real,  capturando  y  procesando 
información  a  la  vez  que el  fenómeno  transcurre  o con una  tasa  de  retardo  de tiempo aceptable. Los 
conversores analógicos – digitales deben adquirir la información lo suficientemente seguido como para 
captar todas las fluctuaciones relevantes de las señales. Si el ADC es muy lento se perderá información. 
Por otro lado el DSP también debe trabajar rápido para no perder la información que le llega desde el 
ADC y además cumplir con el adecuado procesamiento de las señales. Por ejemplo, un sistema estereo 
maneja  sonidos  de  hasta  20  KHz,  por  lo  tanto  el  DSP  deberá  ser  capaz  de  procesar  alrededor  del 
centenar de millones de operaciones por segundo. Otras señales, tales como transmisiones por satélite 
son del orden de los Gigahertz por lo que requieren un procesamiento de mayor velocidad. En las Figura 
1 y 2 se muestra un diagrama en bloques conceptual de un sistema de procesamiento digital de señal 
que utiliza un DSP.  

Interfaz de Usuario Display

Sensores PROCESADOR DIGITAL DE Actuadores


Entradas Digitales SEÑALES Salidas Digitales
Entradas Analógicas ADC (DSP) DAC Salidas Analógicas
 
Figura 1: Diagrama de bloques conceptual de un sistema digital. ADC : Conversor Análogo Digital. DSP : 
Digital Signal Processor. DAC : Conversor Digital Análogo. 

Entrada Analógica

Filtro
Anti-aliasing

CAD DSP CDA

Filtro
HOST
Anti-imagen
Programador

Salida Analógica  

Figura 2: Ejemplo de aplicación de un DSP. La señal entrante entra directamente en un filtro antialiasing 
para evitar frecuencias superiores a la de muestreo del conversor analógico‐digital. Después se lleva a 
cabo el procesado digital en el módulo DSP, para después volverse a convertir en analógico a la salida. 

  Procesamiento Digital de Señales – FCEFyN – UNC     INTRODUCCIÒN A LOS DSP 


Página  4 de  18
 
FCEFyN
Universidad Nacional de Cordoba
        
INTRODUCCIÒN A LOS DSP

UN DSP PARA CADA APLICACIÓN: FORMATO ARITMETICO Y ANCHO DE PALABRA 

Una de las características más importantes que determinan la idoneidad de un DSP para una aplicación 
dada es el tipo de formato y número de bits de los datos con que realiza los cálculos matemáticos. Con 
relación  al  tipo  de  formato  de  datos,  los  DSP  pueden  operar  con  números  en  coma  fija  o  en  coma 
flotante.  

Algunos DSP sólo son capaces de operar con números enteros, mientras que las aplicaciones es común 
manejar números fraccionarios como por ejemplo los coeficientes de un filtro. El formato de coma fija 
utiliza una representación similar a la de un número entero, salvo que se considera la existencia de un 
punto  binario  mediante  el  cual  se  escalan  los  valores  enteros  para  de  esta  forma,  obtener  números 
fraccionarios.  Este  factor  de  escala  es  igual  a  2‐bp  donde  “bp”  es  la  posición  del  punto  binario.  El  DSP 
realiza las operaciones de suma o multiplicación como si se tratase de números enteros, sin considerar 
este factor de escala. Es responsabilidad del programador interpretar la posición del punto binario. 

Al desplazar el punto decimal a la izquierda, utilizando más bits para la parte fraccionaria, la precisión 
aumenta, pero disminuye el margen de valores de la representación. Puesto que el tamaño de la palabra 
de  datos  es  fijo,  la  situación  del  punto  binario  será  una  situación  de  compromiso  entre  la  precisión  a 
obtener y el margen de valores a cubrir. El programador debe utilizar el mayor número de bits para la 
parte fraccionaria (máxima precisión) que permiten representar todo el rango de valores que toma una 
variable. 

Si durante el procesamiento un número en coma fija aumenta demasiado para poder ser representado 
con  el  número  de  bits  disponibles  para  la  parte  entera,  el  programador  debe  realizar  un  escalado 
descendente del número mediante un desplazamiento a derechas perdiendo los bits de menor peso y 
por tanto disminuyendo la precisión. Si por el contrario el número en coma fija disminuye demasiado el 
número de bits utilizados en la parte fraccionaria puede ser insuficiente. El programador debe realizar 
un desplazamiento a izquierdas para aumentar la precisión. 

En  ambos  casos  el  programador  debe  tomar  en  consideración  como  se  ha  ido  desplazando  el  punto 
binario restaurando todos los números de coma fraccionaria a una misma escala en una etapa posterior. 
Esto convierte la programación de aplicaciones en una tarea muy tediosa. 

La  utilización  de  rutinas  en  coma  fija  que  emulan  las  operaciones  en  coma  flotante  (que  permiten 
manejar  cómodamente  números  fraccionarios)  es  muy  costosa  en  cuanto  tiempo  de  ejecución  del 
código, lo que hace imposible su uso en aplicaciones de tiempo real. 

Otros procesadores disponen de una CPU capaz de operar directamente con números de coma flotante. 
La  aritmética  en  coma  flotante  es  un  mecanismo  más  flexible  que  la  aritmética  en  coma  fija.  Con  la 
aritmética  en  coma  flotante,  los  diseñadores  de  sistemas  tienen  acceso  a  un  rango  de  valores  mucho 
más amplio y a una mejor precisión. Esto facilita la programación ya que no es necesario preocuparse de 

  Procesamiento Digital de Señales – FCEFyN – UNC     INTRODUCCIÒN A LOS DSP 


Página  5 de  18
 
FCEFyN
Universidad Nacional de Cordoba
        
INTRODUCCIÒN A LOS DSP

la  realización  del  escalado.  Un  número  de  coma  flotante  se  representa  mediante  una  mantisa  y  un 
exponente siendo su valor: 

valor = mantisa ∙ 2 exponente                                                                      (1) 

La  mantisa  es  un  número  fraccionario  mientras  que  el  exponente  determina  la  posición  del  punto 
binario. En estos procesadores es el propio hardware de la CPU el que realiza los escalados mencionados 
anteriormente,  quedando  reflejada  la  posición  del  punto  binario  en  el  exponente.  Esto  facilita 
enormemente  la  programación  de  las  aplicaciones.  En  la  Figura  3,  se  muestra  un  resumen,  de  las 
representaciones numéricas más comunes en los DSP.   

Bit de Parte Parte


Signo entera fraccionaria

b7 b6 b5 b4 b 3 b2 b 1 b0
b7 b6 b5 b4 b 3 b2 b1 b 0
0 1 0 1 0 0 1 1
• 0 1 0 1 0 0 1 1

27 26 25 24 23 22 21 20 bp = 3
24 23 22 21 20 2-1 2-2 2-3
64 + 16 + 2 + 1 = 83
8 + 2 + 0.25+0.125 = 10.375
   

(a)  (b) 
mantisa exponente
0 1 1 0 1 0 0 0 0 0 1 1 0

21 20 2 -1 2 -2 2 -3 2 -4 2 -5 2 -6 2 -7 23 22 21 20

exponente
Valor = mantisa . 2  

(c) 

DSP

Co ma Fija Co ma Flotante

16 bit 20 bit 24 bit 32 bit

IEEE - 754 Otros


 

Figura 3. Representaciones numéricas comunes en los DSP comerciales. a) Formato número entero, b) 
Formato número coma fija, c) Formato número coma flotante.   

  Procesamiento Digital de Señales – FCEFyN – UNC     INTRODUCCIÒN A LOS DSP 


Página  6 de  18
 
FCEFyN
Universidad Nacional de Cordoba
        
INTRODUCCIÒN A LOS DSP

Además  de  la  clasificación  que  normalmente  se  realiza  de  un  DSP  en  base  al  tipo  de  aritmética  que 
utilizan  para  realizar  los  cálculos  matemáticos  (coma  fija  y  coma  flotante),  dentro  de  cada  grupo  se 
clasifican, según la anchura de su palabra de datos. 

Los DSP de coma fija requieren un hardware más simple que la de los procesadores de coma flotante. 
Esto se traduce en una reducción del coste unitario del DSP haciéndolos idóneos para aplicaciones de 
gran consumo que no requieran unas prestaciones elevadas. Esta simplicidad en el DSP también reduce 
el consumo del dispositivo y su tamaño, un aspecto sumamente interesante para aplicaciones portátiles 
como por ejemplo teléfonos móviles. La utilización de un DSP poco sofisticada permite liberar área del 
chip para incluir bancos de internos de memoria RAM de mayor tamaño o incluso bancos de memoria 
EPROM o FLASH, donde grabar el código de la aplicación. Además, suelen disponer de un conjunto de 
periféricos  más  variado.  De  hecho  los  procesadores  destinados  a  aplicaciones  específicas  como  por 
ejemplo control de motores, sistemas de tratamiento de voz, etc., son procesadores de coma fija. 

La  anchura  de  la  palabra  de  datos  puede  ser  según  los  casos  de  16,  24  o  32  bits.  Esto  tiene  una 
importante repercusión en el coste, porque influye poderosamente en el tamaño del circuito integrado 
y en el número de terminales del dispositivo, así como el tamaño de los dispositivos de memoria externa 
conectados  al  mismo.  Por  lo  tanto,  los  diseñadores  intentan  utilizar  el  chip  con  el  menor  ancho  de 
palabra que su aplicación puede tolerar. 

Los DSP de coma flotante son dispositivos de gama alta, cuya CPU dispone de hardware específico para 
operar con datos de coma flotante. La anchura de la palabra de datos suele ser de 32 bits si bien el uso 
de  bits  de  guarda  les  permite  operar  en  el  interior  de  la  CPU  con  datos  de  40  bits.  Esto  no  es 
impedimento para que puedan operar también con datos en coma fija. El área ocupada del CPU de este 
tipo de DSP es mayor que en el caso de los de coma fija. Por este motivo, la variedad de los periféricos 
que integran es menor, tratándose en la mayoría de los casos de periféricos (puertos serie y paralelo, 
DMA)  utilizados  en  la  comunicación  con  elementos  externos  (conversores  A/D  y  D/A).  Dentro  de  este 
grupo  de  DSP,  los  más  sofisticados  disponen  de  puertos  de  comunicación  que  permiten  facilitan  el 
montaje de redes de DSP para procesamiento en paralelo. 

Cada tipo de procesador es ideal para un rango específico de aplicaciones. Los procesadores de 16 bits 
de coma fija son adecuados para sistemas de voz, como teléfonos, ya que éstos trabajan con el rango 
relativamente estrecho de las frecuencias del sonido. Las aplicaciones estéreo de alta fidelidad tienen un 
rango  de  frecuencias  más  amplio,  de  forma  general,  los  requerimientos  mínimos  para  este  tipo  de 
aplicaciones  serían  un  ADC  de  16  bits  y  un  procesador  de  24  bits  de  coma  fija,  de  esta  forma  se 
proporciona  un  rango  suficientemente  amplio  para  obtener  la  señal  de  alta  fidelidad  y  para  poder 
manipular los valores que se obtienen al procesar la señal. El procesamiento de imágenes, gráficos en 
3D  y  simulaciones  científicas  tiene  un  rango  dinámico  mucho  más  amplio,  por  lo  que  precisa 
procesadores DSP de 32 bits con aritmética de coma flotante. . Los siguientes son ejemplos de los usos 
de DSP en la actualidad:   

  Procesamiento Digital de Señales – FCEFyN – UNC     INTRODUCCIÒN A LOS DSP 


Página  7 de  18
 
FCEFyN
Universidad Nacional de Cordoba
        
INTRODUCCIÒN A LOS DSP

ƒ Wireless LAN, 

ƒ Reconocimiento de Voz, 

ƒ Manejo de imágenes digitales, 

ƒ Reproductores digitales de audio, 

ƒ Teléfonos celulares, 

ƒ Modems inalámbricos, 

ƒ Cámaras digitales, 

ƒ Control de motores, 

ƒ Manejo de bombas, ventiladores, HVAC, 

ƒ Inversores industriales, 

ƒ Automatización y Control de sistemas,  

ƒ Transporte, etc. 

RANGO DINAMICO  

El rango dinámico es un concepto propio de los procesadores. Se define como la relación existente entre 
el máximo y mínimo valor (distinto de cero) representables. En un formato de coma flotante éste viene 
determinado por el número de niveles del exponente. Si expresamos esta relación en dB: 

RD[dB] = 6 ∙ Niveles del exponente                                                           (2) 

Así para el caso típico de un exponente de 8 bits el rango dinámico es de 1530. En un formato en coma 
fija este depende del tamaño de palabra de datos según la relación: 

RD[dB] = 6 ∙ Tamaño de palabra                                                           (3) 

El rango dinámico del procesador debe ser superior al de la aplicación. Este último viene determinado 
por  los  conversores  A/D  y  D/A  utilizados.  De  esta  forma  se  garantiza  que  los  errores  introducidos 
durante el procesamiento (debidos a truncamientos, redondeos, etc) quedan por debajo del error que 
introducen los propios conversores. En la Figura 4, se muestra un grafica  de los valores típicos de rango 
dinámico.   

  Procesamiento Digital de Señales – FCEFyN – UNC     INTRODUCCIÒN A LOS DSP 


Página  8 de  18
 
FCEFyN
Universidad Nacional de Cordoba
        
INTRODUCCIÒN A LOS DSP

Rango
Dinámico
(dB)
1500 dB
1500

1000

500

192 dB
144 dB
96 dB Nº bits
Coma Coma fija Coma fija Coma fija
flotante de de 32 bits. 24 bits. 16 bits.
32/40 bits.  

Figura 4: Valores típicos de Rango Dinámico 

  

CARACTERÍSTICAS DE UN DSP 

Una  de  las  más  importantes  características  de  un  DSP  es  su  capacidad  de  realizar  operaciones  de 
multiplicación y acumulación  o MAC  (por sus siglas en ingles multiply‐accumulate unit) en pocos ciclos 
de  reloj.  No  obstante  para  ello,  es  necesario  que  el  dispositivo  posea  la  característica  de  manejar 
aplicaciones críticas en tiempo real. Esto requiere de una arquitectura que soporte un flujo de datos a 
alta velocidad hacia y desde la unidad de cálculo y memoria. Esta ejecución a menudo requiere el uso de 
unidades  DMA  (Direct  Memory  Acess)  y  unidades  generadores  de  direcciones  (AGU)  que  operan  en 
paralelo  con  otras  partes  del  chip.  Los  AGU  realizan  los  cálculos  de  direcciones,  permitiendo  al  DSP 
buscar  dos  datos  distintos  para  operar  con  ellos  en  pocos  ciclos  de  reloj,  de  tal  forma  que  es  posible 
ejecutar algoritmos complejos en tiempo real. Es importante para los DSP tener un mecanismo efectivo 
de salto para la ejecución de loops ya que el código generalmente programado es altamente repetitivo. 
La  arquitectura  permite  realizar  estos  loops  sin  instrucciones  adicionales  ni  demoras  significativas  en 
comparación con otros tipos de procesadores.   

Los DSP deben manejar rangos dinámicos extendidos y de precisión para evitar overflow y underflow y 
para  minimizar  los  errores  de  redondeo.  Para  acomodarse  a  esta  capacidad,  los  DSP  incluyen 
acumuladores  dedicados  con  registros  más  anchos  que  el  tamaño  nominal  de  los  datos  para  así 
conservar  la  precisión  (por  ejemplo,  DSP  de  16  bits  poseen  acumuladores  de  32  bits  para  manejar  el 
resultado  de  las  multiplicaciones).  También  deben  soportar  el  manejo  de  buffers  circulares  para  la 
ejecución de funciones algorítmicas, tales como filtros. En estos tipos de buffers el puntero del buffer se 
actualiza en paralelo con otras funciones del chip en pocos ciclos de reloj.  

  Procesamiento Digital de Señales – FCEFyN – UNC     INTRODUCCIÒN A LOS DSP 


Página  9 de  18
 
FCEFyN
Universidad Nacional de Cordoba
        
INTRODUCCIÒN A LOS DSP

Por otro lado, los DSP al igual que todo microcontrolador, se utilizan sobre todo en aplicaciones donde 
existen acontecimientos externos los que requieren de la detección y el control. El ambiente externo es 
detectado  por  cualquiera  de  los  dispositivos  periféricos;  puertos  digitales  I/O,  pines  dedicados  a  las 
interrupciones  o  las  entradas  analógicas.  La  fuente  de  señales  para  estos  pines  proviene  de  los 
interruptores,  sensores  analógicos  y/o  digitales,  y  de  las  señales  de  estado  de  otros  sistemas.  Cada 
entrada representa un pedazo de información sobre el estado de un cierto acontecimiento exterior. Las 
salidas  se  envían  a  actuadores,  relays,  motores  o  a  otros  dispositivos  que  controlen  acontecimientos. 
Entre la detección y actuación está el DSP, analizando las entradas y el estado actual del sistema, para 
luego realizar la acción  que se les programó.  

Un DSP se puede programar tanto en lenguaje ensamblador como en lenguaje C. Cada familia de DSP 
tiene su propio lenguaje ensamblador y sus propias herramientas suministradas por el fabricante. En los 
últimos tiempos hay otros fabricantes que desarrollan plataformas especiales que permiten programar a 
los DSP en entornos de alto nivel como por ejemplo Matlab y Labview.  

La  organización  del  subsistema  de  memoria  de  un  DSP  puede  tener  un  gran  impacto  en  sus 
prestaciones.  Como  se  ha  mencionado  anteriormente,  la  instrucción  MAC,  así  como  otras,  son 
fundamentales  en  muchos  de  los  algoritmos  de  procesado  de  señal.  Una  ejecución  rápida  de  la 
instrucción MAC requiere que la lectura en memoria del código de la instrucción y de sus dos operandos 
se  haga  en  un  ciclo  de  instrucción.  Existe  una  variedad  de  formas  de  hacerlo,  utilizando  memorias 
multipuerto para permitir múltiples accesos a memoria en un ciclo de instrucción, mediante memorias 
de  datos  e  instrucciones  separadas  (arquitectura  Harvard),  y  memorias  caches  de  instrucciones  para 
permitir el acceso a la memoria para la obtención de datos mientras que las instrucciones se obtienen 
de la cache en lugar de la memoria. La Figura 5 muestra las diferencias entre la arquitectura Harvard y la 
Von Neumann, esta última utilizada en la mayoría de procesadores de propósito general. 

Dir Dir = Direcciones


Memoria de PROCESADOR
D D = Datos
Programa y de Datos GENÉRICO

Dir Dir
Memoria PROCESADOR Memoria
D DSP D de Datos
de Programa

 
Figura 5: Tipos de arquitectura de memoria entre un Microcontrolador (arquitectura von Neumann) y un 
DSP (arquitectura Harvard). 

  Procesamiento Digital de Señales – FCEFyN – UNC     INTRODUCCIÒN A LOS DSP 


Página  10 de  18
 
FCEFyN
Universidad Nacional de Cordoba
        
INTRODUCCIÒN A LOS DSP

Otro  punto  importante  a  tener  en  cuenta  es  la  cantidad  de  memoria  que  soporta  el  DSP,  interna  y 
externamente.  Atendiendo  a  las  características  de  la  aplicación,  la  mayoría  de  los  DSP  de  coma  fija 
poseen memorias internas, en el propio chip, de tamaño pequeño medio, entre 256 y 32k palabras, y un 
bus  externo  de  direcciones  pequeño.  Así  por  ejemplo,  la  mayoría  de  los  DSP  de  coma  fija  de  Analog 
Devices,  Lucent  Technologies,  Freescale  y  Texas  Instruments  tienen  buses  de  direcciones  de  16  bits  o 
menos, lo que limita la cantidad de memoria externa de acceso directo. Por el contrario, la mayoría de 
los DSP de coma flotante proporcionan poca o ninguna memoria interna, pero se caracterizan por tener 
buses de direcciones externos de gran tamaño, para soportar una gran cantidad de memoria externa. 
Por ejemplo, el ADSP‐21020 de Analog Devices no tiene memoria interna pero posee un bus externo de 
direcciones  de  24  bits.  De  forma  similar,  el  TMS320C30  de  Texas  Instruments  posee  6k  palabras  de 
memoria interna y dos buses externos de direcciones, uno de 24 bits y el otro de 13 bits. Además, estos 
DSP poseen memorias cache para permitir un uso más eficiente de memorias externas lentas. 

Cabe destacar que en la actualidad cada vez se empieza a desarrollar más la tecnología mezclada entre 
microprocesadores y DSP. Diversas son las razones para que se produzca esta integración, sin embargo a 
groso modo es posible identificar una en particular. Los requerimientos de control en tiempo real bajo 
condiciones cada vez más exigentes en cuanto a necesidad de cálculo han llevado a los fabricantes de 
microcontroladores  (microchip,  ST,  etc.)  a  integrar  a  sus  microprocesadores  características  de  DSP 
(unidades de cálculo paralelas, pipeling, etc.) y por el otro lado los fabricantes de DSP (Texas, Freescale, 
Analog Device, etc.) a integrar características de microcontroladores (Conversores A/D, puertos digitales 
I/O, bloques PWM).  

Como resumen se puede enunciar que las características que hacen a un DSP son:  

ƒ Arquitectura del núcleo del DSP. 

o Ejecución rápida de operaciones MAC. 

o Modos de direccionamiento especializados para manejo de buffers a través de unidades 
AGU. 

ƒ Juego de instrucciones. 

o Control eficiente de bucles para algoritmos DSP iterativos como lOOPS. 

ƒ Arquitectura de memoria. 

o Múltiples accesos simultáneos a memoria. 

ƒ Periféricos integrados e interfaces de I/O. 

ƒ Gran interacción con el mundo exterior.  

  Procesamiento Digital de Señales – FCEFyN – UNC     INTRODUCCIÒN A LOS DSP 


Página  11 de  18
 
FCEFyN
Universidad Nacional de Cordoba
        
INTRODUCCIÒN A LOS DSP

De lo expuesto, a continuación en la Tabla 1, se detallan algunas de las operaciones más comunes en el 
mundo  del  procesamiento  digital  de  señales,  los  algoritmos  utilizados  y  el  hardware  necesario  en  las 
arquitecturas DSP para llevar a cabo dichas operaciones.   

Tabla 1: Necesidades del procesamiento digital de señales, a partir de considera que ya se han adquirido 
las muestras por conversión analógico/digital y se han almacenado las muestras x(n) en un buffer de 
memoria. 

OPERACION  ALGORITMO  RESULTADO  HARDWARE NECESARIO 

Análisis de la señal 

x(n) > x max Valor pico y valle. Rango  Comparador 


a) Valores máx. y mín.    dinámico. Escalar la señal 
x(x) < x min

b) Igualdad  x(n) = x ref   Detección de cero   Comparador 

Valor medio. Ajuste rango  Acumulador. Divisor. Acceso 
c) Valor medio  x m = [x(1) + x(2) + ... + x(N)] / N   dinámico  secuencial de buffer en 
memoria 
d) Potencia  2 2
Px = [x(1) + x(2) + ... + x(N) ]  
2 Potencia de la señal  Multiplicación y acumulación. 

Diferencia entre valores.  Extraer valor absoluto 
e) Valor absoluto  x(a) ‐ x(b) ; x(a) ‐ x(b)  
Rango dinámico 

Tratamiento de la señal 

y(n) = a x(n)   Amplificación. Atenuación  Multiplicador. Acceso 


a)Escaleo 
secuencial de 2 buffers. 

y(n) = x(an) ; a = 2, 3, 4, ...   Disminución del nro. de  Acceso a buffers salteando a 


b) Decimación 
muestras  lugares 
−1 −1 −1 Aumento del nro. de  Intercalar valores en un buffer 
c) Interpolación  y(n) = x(an) ; a = 2 , 3 , 4 , ...  
muestras 
if x(n) > x sat then x(n) = x sat Mantener señal en el rango  Limite en acumulador. 
d) Saturación    dinámico 
if x(n) < ‐ x sat then x(n) = ‐ x sat
Mas bits para el dato  Agregar ceros. Extensión de 
e) Aumento Precisión  x 32 (n) = x 16 (n)  
signo. 
f) Redondeo  x 16 (n) = x 32 (n) ± 0.5 LSB   Menos bits para el dato  Redondeo de acumulador 

g) Truncado  x 16 (n) = x 32 (n) ‐ LSB   Menos bits para el dato  Truncado de acumulador 

z(n) = x(n).y(n)   Multiplicación de vectores  Acceso simultáneo a 3 buffers 


h) Multiplicación 
secuenciales. 
N Filtros digitales  MAC.  Acceso simultáneo a 2 
h)Convolución   z(n) = ∑ x(m)y(m ‐ T)   buffers secuenciales. 
m= 0

i) FFT e IFFT  x(2n), x(2n + 1) , butterfly  Transformada   t ←⎯


→f   Acceso bit‐inverso. Multiplicar 
Acumular.  

  Procesamiento Digital de Señales – FCEFyN – UNC     INTRODUCCIÒN A LOS DSP 


Página  12 de  18
 
FCEFyN
Universidad Nacional de Cordoba
        
INTRODUCCIÒN A LOS DSP

VELOCIDAD DE LOS DSP 

La  medida  clave  para  saber  si  un  DSP  es  o  no  apropiado  para  una  aplicación  es  su  velocidad  de 
ejecución. Existen varias formas para medir la velocidad de un procesador, aunque quizás el parámetro 
más usual es el tiempo de ciclo de instrucción: tiempo necesario para ejecutar la instrucción más rápida 
del procesador. Su inverso dividido por un millón da lugar a la velocidad del procesador en millones de 
instrucciones por segundo o MIPS. En la actualidad todos los DSP ejecutan una instrucción por ciclo de 
instrucción.  Un  problema  que  se  presenta  cuando  se  compararan  los  tiempos  de  ejecución  de  
instrucciones de varios procesadores es que la cantidad de trabajo realizado por una instrucción varía 
significativamente  de  un  procesador  a  otro.  Por  ejemplo,  algunos  DSP  disponen  de  desplazadotes 
combinatorios (“barrel shifters”) que permiten hacer desplazamientos de múltiples bits en los datos con 
sólo  una  instrucción,  mientras  que  otros  DSP  requieren  que  el  dato  sea  desplazado  con  repetidas 
instrucciones de desplazamiento de un solo bit. De forma similar, algunos DSP permiten el movimiento 
de  datos  en  paralelo  (carga  simultánea  de  datos  mientras  se  ejecuta  una  instrucción)  que  no  están 
relacionados con la instrucción que la ALU está ejecutando, pero otros DSP sólo soportan movimientos 
en paralelo que estén relacionados con los operandos de la instrucción que esté ejecutando la ALU. 

El parámetro MIPS, al igual que MFLOPS, MOPS, MBPS y otros, se miden de forma muy precisa aunque 
su valor no necesariamente dice mucho de lo que un determinado DSP es capaz de hacer. Dichos valores 
sirven  para  ubicar  cada  DSP  en  una  categoría  amplia  en  cuanto  a  prestaciones  pero  uno  se  debería 
preguntar si se trata de valores de pico o sostenidos. Además, también nos deberíamos preguntar cómo 
se ven afectadas las prestaciones del DSP cuando muchos de los datos se encuentran fuera del chip, en 
la memoria externa. 

Una solución a estos problemas consiste en decidir una operación básica y utilizarla como referencia al 
comparar  distintos  DSP.  La  operación  que  suele  tomarse  como  referencia  es  la  MAC.  
Desafortunadamente, los tiempos de ejecución de la MAC proporcionan, a veces, poca información para 
poder  diferenciar  entre distintos  DSP,  ya que  en  la  mayoría  de ellos  esta  instrucción  se ejecuta  en  un 
solo ciclo de instrucción, y como se ha mencionado anteriormente, algunos DSP pueden hacer mucho 
más que otros en una simple instrucción MAC. Además, los tiempos de ejecución de la MAC no suele 
reflejar las prestaciones de otro tipo importante de operaciones como los bucles que están presentes en 
todas las aplicaciones.  

Un enfoque mucho más general consiste en definir un conjunto algoritmos o funciones, como un filtro 
FIR o IIR, e implementarlo en distintos DSP y de esta forma ver cuál de ellos proporciona unas mejores 
prestaciones. Sin embargo, la implementación de estos algoritmos para distintos DSP puede resultar una 
tarea ardua. En este sentido, una buena referencia pueden ser los tests que efectúa la Berkeley Design 
Technology,  Inc.,  pionera  en  utilizar  distintas  porciones  de  algoritmos  y  funciones  para  medir  las  
prestaciones de los diferentes DSP. 

  Procesamiento Digital de Señales – FCEFyN – UNC     INTRODUCCIÒN A LOS DSP 


Página  13 de  18
 
FCEFyN
Universidad Nacional de Cordoba
        
INTRODUCCIÒN A LOS DSP

VENTAJAS Y DESVENTAJAS DE LOS DSP 

Las siguientes son algunas ventajas inherentes a la utilización de sistemas digitales con DSP: 

 •  La  Tecnología  VLSI  (Very  Large  Scale  Integration)  da  la  posibilidad  de  diseñar  sistemas  con  la 
capacidad  para  ejecutar  procesamiento  en  tiempo  real  de  muchas  de  las  señales  de  interés  para 
aplicaciones en comunicaciones, control, procesamiento de imagen, multimedia, etc. 

• Los sistemas digitales son más confiables que los correspondientes sistemas analógicos. 

• Los sistemas digitales ofrecen una mayor flexibilidad que los correspondientes sistemas analógicos. 

•  Mayor  precisión  y mayor exactitud pueden ser  obtenidas  con  sistemas  digitales,  comparado  con  los 
correspondientes sistemas analógicos. 

• Un sistema programable permite flexibilidad en la reconfiguración de aplicaciones DSP. 

• La tolerancia de los componentes en un sistema analógico hacen que esto sea una dificultad para el 
diseñador al controlar la exactitud de la señal de salida análoga. Por otro lado, la exactitud de la señal de 
salida para un sistema digital es predecible y controlable por el tipo de aritmética usada y el número de 
bits usado en los cálculos. 

•  Las  señales  digitales  pueden  ser  almacenadas  en  un  disco  flexible,  Disco  Duro  o  CD  –    ROM,  sin  la 
pérdida de fidelidad más allá que el introducido por el conversor Analógico ‐  Digital (ADC). Éste no es el 
caso para las señales analógicas. 

A  pesar  de  ellas  existen  algunos  inconvenientes  que  deberán  ser  tomados  en  cuenta  al  momento  de 
escoger una plataforma para el procesamiento de señales analógicas por medio digitales: 

•  La  conversión  de  una  señal  analógica  en  digital,  obtenida  muestreando  la  señal  y  cuantificando  las 
muestras, produce una distorsión que nos impide la reconstrucción de la señal analógica original en su 
“real totalidad” a partir de muestras cuantificadas.  

• Existen efectos debidos a la precisión finita que deben ser considerados en el procesado digital de las 
muestras cuantificadas. 

•  Para  muchas  señales  de  gran  ancho  de  banda,  se  requiere  procesado  en  tiempo  real.  Para  tales 
señales, el procesado analógico, o incluso óptico, son las únicas soluciones válidas. Sin embargo, cuando 
los circuitos digitales existen y son de suficiente velocidad se hacen preferibles. 

  Procesamiento Digital de Señales – FCEFyN – UNC     INTRODUCCIÒN A LOS DSP 


Página  14 de  18
 
FCEFyN
Universidad Nacional de Cordoba
        
INTRODUCCIÒN A LOS DSP

FABRICANTES DE DSP 

Actualmente el mercado se ha ampliado enormemente en cuanto a la oferta de DSP. Existen diversos 
fabricantes, cada uno con un tipo especial y particular de arquitectura, uso y/o aplicación. Entre los más 
conocidos se destacan: Texas Instruments, Freescale, Analog Devices, Hewlet Packard, Cirrus, Creative, 
Microchip,  Philips,  Yamaha,  Airelog  Device,  AT&T  ,  SGS‐Thomson.    De  todos  ellos  cabe  mencionar  las 
siguientes familias de DSP:  

ƒ TEXAS INSTRUMENTS:  

o Familia  DaVinci:  Familia  de  DSP  orientados  al  video  digital,  a  la  codificación  y 
decodificación de video.  

o Familia OMAP: Familia de DSP alto rendimiento para aplicaciones de procesamiento de 
gran cantidad de datos, aplicaciones de multimedia, aplicaciones para computadoras de 
sistemas operativo Linux o Windows.  

o Familia TMS320C2000: Familia de DSP orientada al control digital.  

o Familia  TMS320C5000:  Familia  de  DSP  orientados    a  la  industria  de  bajo  consume, 
productos  portatiles,  reproductores  de  música,  telefonía  VoIP,  equipos  de  libre 
mantenimiento, GPS y equipos de medicina.  

o Familia TMS320C6000 :   

ƒ DSP  de  alto  rendimiento  TMS320C6414T/15T/16T  y  TMS320C645x:  Familia  de 


DSP  de  punto  fijo  orientados  a  la  industria  y  a  la  optimización,  transmisión, 
decodificación de voz y video.  

ƒ DSP  de  bajo  costo  TMS320C6410/12/13/18,  TMS320C642x  y  TMS320C62x: 


Familia  de  DSP  de  alto  rendimiento  y  bajo  costo,  utilizado  en 
telecomunicaciones y sistemas inalámbricos.  

ƒ DSP  de  punto  flotante  TMS320C67x  y  TMS320C672x:  Familia  de  DSP  con  un 
poderoso compilador de C y assembler, para la optimización de aplicaciones de 
audio de alta fidelidad.    

ƒ FREESCALE:  

o Familia  StarCore  (SC3400,  MSC81xx,  MSC711x):  DSP  de  altas  velocidades  y  múltiples 
núcleos, orientados a la telefonía y telecomunicaciones.  

  Procesamiento Digital de Señales – FCEFyN – UNC     INTRODUCCIÒN A LOS DSP 


Página  15 de  18
 
FCEFyN
Universidad Nacional de Cordoba
        
INTRODUCCIÒN A LOS DSP

o Familia Symphony™ Audio (DSP563XX, DSP567XX): Familia de DSP de 24 bits, de simple 
y doble núcleo, orientados al procesamiento de audio.  

o Familias  DSP56300:    Familia  de  DSP  de  24  bits,  orientados  a  las  transmisiones 
inalámbricas, telecomunicaciones y productos multimedia 

o Familias 56800/E (DSP568XX, DSP56F8XX, DSP56F8XXX): Familia de DSP de 16 bits, que 
combinan la potencia de procesamiento de un DSP con la funcionalidad y la facilidad de 
uso de un microcontrolador en un único chip. Ideal para el control.  

ƒ ANALOG DEVICES:  

o Familias Blackfin: Familia de DSP embebidos 16/32‐bits, ideal para aplicaciones de multi‐
formato de audio, vídeo, voz y procesamiento de imágenes.   

o Familias  Sharc:  Familia  de  DSP  de  punto  flotante,  originales  por  sus  prestaciones  de  
memoria y rendimiento de I/O. Presenta velocidades de 319 MFLOPS / dólar, ideal para 
aplicaciones de elevado rango dinámico.  

o Familias  TigerSharc:  Familia  de  DSP  de  alto  rendimiento,  aplicados  en  la  industria  
y en aplicaciones de multiprocesamiento, con rendimiento por encima de mil millones 
de operaciones por segundo de punto flotante.   

o Familias  ADSP‐21xx:  Familia  de  DSP  de  alta  velocidad  (160MHz)  y  bajo  consumo  (184 
micro‐Amper).  Ideales  para  el  procesamiento  de  voz,    reconocimiento  de  voz  y 
aplicaciones de control en tiempo real.  

CONCLUSIÓN 

Los  algoritmos  de  tratamiento  digital  de  señal  han  sido  los  motivadores  en  el  desarrollo  de  nuevas 
tecnologías  que  permitan  implementarlos.  Dicha  evolución  tecnológica  dio  lugar  a  los  DSP  como 
procesadores  específicamente  diseñados  para  tales  aplicaciones.  El  diseño  específico  de  un  DSP 
determina algunos aspectos o características como son: La arquitectura del núcleo del DSP y la memoria, 
su  juego  de  instrucciones,  la  integración  de  periféricos  que  le  permitan  interactuar  con  el  exterior,  el 
formato de representación aritmética  utilizado y la anchura de la palabra de datos.  

De algunos de los temas expuestos, surgen los siguientes puntos de vistas a la hora de hacer la selección 
del DSP para nuestra aplicación: 

ƒ Tipo de aritmética utilizada y ancho de palabra de datos. 

  Procesamiento Digital de Señales – FCEFyN – UNC     INTRODUCCIÒN A LOS DSP 


Página  16 de  18
 
FCEFyN
Universidad Nacional de Cordoba
        
INTRODUCCIÒN A LOS DSP

ƒ Rango dinámico. 

ƒ Velocidad. 

o Valores de pico: 

ƒ Coma fija: MIPS. 

ƒ Coma flotante: MFLOPS. 

o Test de pruebas (benchmarks). 

ƒ Memoria interna. 

ƒ Soporte multiprocesador. 

ƒ Consumo. 

ƒ Coste. 

BIBLIOGRAFÍA 

Jennifer Eyre and Jeff Bier, 2000. Choosing a DSP Processor. Berkeley Design Technology, Inc. 

Jennifer  Eyre and Jeff  Bier,  2000.  Evaluating  DSP  Processor  Performance.  Berkeley  Design Technology, 
Inc. 

Jennifer Eyre and Jeff Bier, 2000. The Evolution of DSP Processors. Berkeley Design Technology, Inc. 

Jordi Salazar, 2001. Procesadores Digitales De Señal (Dsp): Arquitecturas Y Criterios De Selección. Dpto. 
Ingeniería Electrónica. Centro De Sistemas Y Sensores Electrónicos, Universidad Politécnica De Cataluña. 

Rodrigo  Huerta  Cortés,  2004.  Laboratorio  De  Procesamiento  Digital  De  Señales.  Universidad  Técnica 
Federico Santa María Departamento De Electrónica.  

Steven W. Smith, 1997.The Scientist and Engineer's Guide to Digital Signal Processing. ISBN 0‐9660176‐
3‐3. 

  Procesamiento Digital de Señales – FCEFyN – UNC     INTRODUCCIÒN A LOS DSP 


Página  17 de  18
 
FCEFyN
Universidad Nacional de Cordoba
        
INTRODUCCIÒN A LOS DSP

GLOSARIO DE TÉRMINOS  

DSP: (Digital Signal Processor). Procesador digital de señal. 

AGU: (Address Generation Unit).  Unidad de Generación de Direcciones.  

ALU:  (Arithmetic/Logic  Unit).  Unidad  aritmético‐lógica.  Unidad  de  ejecución  en  un  procesador 
responsable  de  la  aritmética  (sumar,  restar,  desplazar,  etc.)  y  de  la  lógica  (y,  o,  no,  o‐exclusiva,  etc.), 
entre registros específicos. 

MAC:  (multiply‐accumulate  unit).  Unidad  de  ejecución  en  un  DSP  responsable  de  la  realización  de 
multiplicaciones y acumulaciones, entre registros específicos. 

MIPS: (Million instructions per second). Número de instrucciones que el procesador puede ejecutar por 
segundo. La clave está en cuánto puede hacer cada instrucción. El parámetro MFLOPS es normalmente 
una medida más fiable de las prestaciones del procesador. 

MOPS: (Million operation per second). Número total de operaciones que el procesador puede realizar 
por  segundo.  Se  incluye  accesos  DMA,  transferencias  de  datos,  operaciones  de  entrada  salida.  Este 
parámetro  proporciona  una  idea  aproximada  de  la  capacidad  de  procesado  y  de  entrada  salida  del 
procesador. 

MFLOPS: (Million floating‐point operations per second). Número de multiplicaciones, sumas, restas, etc. 
en  coma  flotante  que  el  procesador  puede  realizar.  Algunas  veces  este  parámetro  hace  referencia  a 
valores de pico en lugar de valores sostenidos. 

MBPS:  (Mega‐bytes  per  second).  Proporciona  una  medida  del  rendimiento  total  de  procesamiento  de 
datos. 

MMACS: (Million multiply‐accumulate per second). Número de multiplicaciones y acumulaciones que el 
procesador puede realizar por segundo. 

VLIW: (Very long instruction word). Formato muy largo de palabra de instrucción. 

FFT:  (Fast  Fourier  Transform).  Transformada  de  Fourier  rápida.  Método  computacional  eficiente  para 
estimar el espectro frecuencial de una señal. 

FIR: (Finite impulse response). Respuesta impulsional finita. Una categoría de filtros digitales. 

IIR: (Infinite impulse response). Respuesta impulsional infinita. Una categoría de filtros digitales. 

PGA:  (Pin  grid  array).  Un  tipo  de  encapsulado  para  circuitos  integrados.  Las  conexiones  externas  se 
realizan con terminales de conexión dispuestos en forma de cuadrícula. 

  Procesamiento Digital de Señales – FCEFyN – UNC     INTRODUCCIÒN A LOS DSP 


Página  18 de  18
 
FCEFyN
Universidad Nacional de Cordoba
        
INTRODUCCIÒN A LOS DSP

PQFP: (Plastic quad flat pack). Un tipo de encapsulado para circuitos integrados. 

QFP:  (Quad  flat  pack).  Un  tipo  de  encapsulado  para  circuitos  integrados.  Los  circuitos  integrados  con 
este encapsulado son típicamente más baratos que el mismo circuito con encapsulado PGA. 

TQFP:  (Thin  quad  flat  pack).  Tipo  de  encapsulado  similar,  pero  más  delgado,  al  PQFP.  El  encapsulado 
TQFP normalmente se utiliza en sistemas portátiles pequeños. 

  Procesamiento Digital de Señales – FCEFyN – UNC     INTRODUCCIÒN A LOS DSP 

You might also like