Un procesador de señal digital ( DSP ) es un chip microprocesador especializado , con su arquitectura optimizada para las necesidades operativas del procesamiento de señales digitales . [1] : 104–107 [2] Los DSP se fabrican en chips de circuitos integrados de metal-óxido-semiconductor (MOS) . [3] [4] Se utilizan ampliamente en el procesamiento de señales de audio , telecomunicaciones , procesamiento de imágenes digitales , radares , sonares y sistemas de reconocimiento de voz , y en dispositivos electrónicos de consumo comunes como teléfonos móviles , unidades de disco y productos de televisión de alta definición (HDTV). [3]
El objetivo de un DSP es generalmente medir, filtrar o comprimir señales analógicas continuas del mundo real . La mayoría de los microprocesadores de propósito general también pueden ejecutar algoritmos de procesamiento de señales digitales con éxito, pero es posible que no puedan seguir el ritmo de dicho procesamiento de forma continua en tiempo real. Además, los DSP dedicados suelen tener una mejor eficiencia energética, por lo que son más adecuados para dispositivos portátiles como teléfonos móviles debido a las limitaciones de consumo de energía. [5] Los DSP a menudo utilizan arquitecturas de memoria especiales que pueden obtener múltiples datos o instrucciones al mismo tiempo.
Los algoritmos de procesamiento de señales digitales (DSP) suelen requerir que se realice una gran cantidad de operaciones matemáticas de forma rápida y repetida sobre una serie de muestras de datos. Las señales (quizás de sensores de audio o video) se convierten constantemente de analógicas a digitales, se manipulan digitalmente y luego se vuelven a convertir a formato analógico. Muchas aplicaciones DSP tienen restricciones en cuanto a latencia ; es decir, para que el sistema funcione, la operación DSP debe completarse dentro de un tiempo fijo y el procesamiento diferido (o por lotes) no es viable.
La mayoría de los microprocesadores y sistemas operativos de uso general pueden ejecutar algoritmos DSP con éxito, pero no son adecuados para su uso en dispositivos portátiles como teléfonos móviles y PDA debido a limitaciones de eficiencia energética. [5] Sin embargo, un DSP especializado tenderá a proporcionar una solución de menor costo, con mejor rendimiento, menor latencia y sin requisitos de refrigeración especializada o baterías grandes. [ cita requerida ]
Estas mejoras de rendimiento han llevado a la introducción del procesamiento digital de señales en los satélites de comunicaciones comerciales , donde se requieren cientos o incluso miles de filtros analógicos, conmutadores, convertidores de frecuencia, etc., para recibir y procesar las señales de enlace ascendente y prepararlas para el enlace descendente , y pueden reemplazarse con DSP especializados con importantes beneficios para el peso de los satélites, el consumo de energía, la complejidad/costo de construcción, la confiabilidad y la flexibilidad de operación. Por ejemplo, los satélites SES-12 y SES-14 del operador SES lanzados en 2018, fueron construidos por Airbus Defence and Space con un 25% de capacidad utilizando DSP. [6]
La arquitectura de un DSP está optimizada específicamente para el procesamiento de señales digitales. La mayoría también admite algunas de las características de un procesador de aplicaciones o un microcontrolador, ya que el procesamiento de señales rara vez es la única tarea de un sistema. A continuación se describen algunas características útiles para optimizar los algoritmos de DSP.
Según los estándares de los procesadores de propósito general, los conjuntos de instrucciones DSP suelen ser muy irregulares; mientras que los conjuntos de instrucciones tradicionales están compuestos por instrucciones más generales que les permiten realizar una variedad más amplia de operaciones, los conjuntos de instrucciones optimizados para el procesamiento de señales digitales contienen instrucciones para operaciones matemáticas comunes que ocurren con frecuencia en los cálculos DSP. Tanto los conjuntos de instrucciones tradicionales como los optimizados para DSP pueden calcular cualquier operación arbitraria, pero una operación que podría requerir múltiples instrucciones ARM o x86 para su cálculo podría requerir solo una instrucción en un conjunto de instrucciones optimizado para DSP.
Una consecuencia para la arquitectura de software es que las rutinas de código ensamblador optimizadas manualmente (programas ensambladores) suelen empaquetarse en bibliotecas para su reutilización, en lugar de depender de tecnologías de compilación avanzadas para manejar algoritmos esenciales. Incluso con las optimizaciones de compilación modernas, el código ensamblador optimizado manualmente es más eficiente y muchos algoritmos comunes involucrados en los cálculos DSP se escriben a mano para aprovechar al máximo las optimizaciones arquitectónicas.
Los DSP generalmente están optimizados para la transmisión de datos y utilizan arquitecturas de memoria especiales que pueden obtener múltiples datos o instrucciones al mismo tiempo, como la arquitectura Harvard o la arquitectura von Neumann modificada , que utilizan memorias de programa y datos separadas (a veces incluso acceso simultáneo en múltiples buses de datos).
En ocasiones, los DSP pueden depender de un código de soporte para conocer las jerarquías de caché y los retrasos asociados. Esta es una compensación que permite un mejor rendimiento [ se necesita aclaración ] . Además, se emplea un uso extensivo de DMA .
Los DSP suelen utilizar sistemas operativos multitarea, pero no admiten memoria virtual ni protección de memoria. Los sistemas operativos que utilizan memoria virtual requieren más tiempo para cambiar de contexto entre procesos , lo que aumenta la latencia.
En 1976, Richard Wiggins propuso el concepto Speak & Spell a Paul Breedlove, Larry Brantingham y Gene Frantz en las instalaciones de investigación de Texas Instruments en Dallas. Dos años después, en 1978, produjeron el primer Speak & Spell, con la pieza central tecnológica siendo el TMS5100 , [15] el primer procesador de señal digital de la industria. También marcó otros hitos, siendo el primer chip en utilizar codificación predictiva lineal para realizar síntesis de voz . [16] El chip fue posible gracias a un proceso de fabricación PMOS de 7 μm . [17]
En 1978, American Microsystems (AMI) lanzó el S2811. [3] [4] El "periférico de procesamiento de señales" AMI S2811, como muchos DSP posteriores, tiene un multiplicador de hardware que le permite realizar operaciones de multiplicación-acumulación en una sola instrucción. [18] El S2281 fue el primer chip de circuito integrado diseñado específicamente como DSP y fabricado utilizando semiconductores de óxido metálico vertical ( VMOS , V-groove MOS), una tecnología que anteriormente no se había producido en masa. [4] Fue diseñado como un periférico de microprocesador, para el Motorola 6800 , [3] y tenía que ser inicializado por el host. El S2811 no tuvo éxito en el mercado.
En 1979, Intel lanzó el 2920 como un "procesador de señal analógica". [19] Tenía un ADC/DAC en chip con un procesador de señal interno, pero no tenía un multiplicador de hardware y no tuvo éxito en el mercado.
En 1980, los primeros DSP independientes y completos ( el NEC μPD7720 de Nippon Electric Corporation , basado en la arquitectura Harvard modificada [20] y el DSP1 de AT&T ) se presentaron en la Conferencia Internacional de Circuitos de Estado Sólido de 1980. Ambos procesadores se inspiraron en la investigación en telecomunicaciones de redes telefónicas públicas conmutadas (PSTN) . El μPD7720, presentado para aplicaciones de banda vocal , fue uno de los primeros DSP de mayor éxito comercial. [3]
El Altamira DX-1 fue otro de los primeros procesadores digitales de señal que utilizaba canales de cuatro enteros con ramificaciones retardadas y predicción de ramificaciones. [ cita requerida ]
Otro DSP producido por Texas Instruments (TI), el TMS32010 presentado en 1983, resultó ser un éxito aún mayor. Se basaba en la arquitectura Harvard, por lo que tenía memoria de instrucciones y de datos separada. Ya tenía un conjunto de instrucciones especial, con instrucciones como cargar y acumular o multiplicar y acumular. Podía trabajar con números de 16 bits y necesitaba 390 ns para una operación de multiplicación-suma. TI es ahora el líder del mercado de DSP de propósito general.
Unos cinco años después, comenzó a extenderse la segunda generación de DSP. Tenían 3 memorias para almacenar dos operandos simultáneamente e incluían hardware para acelerar bucles cerrados ; también tenían una unidad de direccionamiento capaz de direccionar bucles. Algunos de ellos operaban con variables de 24 bits y un modelo típico solo requería unos 21 ns para una MAC. Miembros de esta generación fueron, por ejemplo, el AT&T DSP16A o el Motorola 56000 .
La principal mejora de la tercera generación fue la aparición de unidades específicas de aplicación e instrucciones en la ruta de datos, o en ocasiones como coprocesadores. Estas unidades permitían la aceleración directa por hardware de problemas matemáticos muy específicos pero complejos, como la transformada de Fourier o las operaciones matriciales. Algunos chips, como el Motorola MC68356, incluso incluían más de un núcleo de procesador para trabajar en paralelo. Otros DSP de 1995 son el TI TMS320C541 o el TMS 320C80.
La cuarta generación se caracteriza por los cambios en el conjunto de instrucciones y la codificación/decodificación de instrucciones. Se añadieron extensiones SIMD y aparecieron VLIW y la arquitectura superescalar. Como siempre, las velocidades de reloj aumentaron; ahora es posible una MAC de 3 ns.
Los procesadores de señales modernos ofrecen un mayor rendimiento; esto se debe en parte a avances tecnológicos y arquitectónicos como reglas de diseño más sencillas, caché de dos niveles de acceso rápido, circuitos (E) DMA y un sistema de bus más amplio. No todos los DSP ofrecen la misma velocidad y existen muchos tipos de procesadores de señales, cada uno de ellos más adecuado para una tarea específica, cuyo precio varía entre aproximadamente US$1,50 y US$300.
Texas Instruments produce los DSP de la serie C6000 , que tienen velocidades de reloj de 1,2 GHz e implementan cachés de instrucciones y datos separados. También tienen un caché de segundo nivel de 8 MiB y 64 canales EDMA. Los modelos superiores son capaces de procesar hasta 8000 MIPS ( millones de instrucciones por segundo ), utilizan VLIW ( palabra de instrucción muy larga ), realizan ocho operaciones por ciclo de reloj y son compatibles con una amplia gama de periféricos externos y varios buses (PCI/serie/etc.). Los chips TMS320C6474 tienen tres DSP de este tipo cada uno, y los chips C6000 de la generación más nueva admiten procesamiento de punto flotante y de punto fijo.
Freescale produce una familia de procesadores digitales de múltiples núcleos, la MSC81xx. La MSC81xx se basa en procesadores de arquitectura StarCore y el último procesador digital de señales MSC8144 combina cuatro núcleos programables de procesadores digitales de señales SC3400 StarCore. Cada núcleo de procesador digital de señales SC3400 StarCore tiene una velocidad de reloj de 1 GHz.
XMOS produce una línea de procesadores multinúcleo y multihilo muy adecuados para operaciones DSP. Vienen en varias velocidades que van desde 400 a 1600 MIPS. Los procesadores tienen una arquitectura multihilo que permite hasta 8 subprocesos en tiempo real por núcleo, lo que significa que un dispositivo de 4 núcleos admitiría hasta 32 subprocesos en tiempo real. Los subprocesos se comunican entre sí con canales con búfer que son capaces de alcanzar hasta 80 Mbit/s. Los dispositivos son fácilmente programables en C y tienen como objetivo cerrar la brecha entre los microcontroladores convencionales y los FPGA.
CEVA, Inc. produce y otorga licencias para tres familias distintas de DSP. Quizás la más conocida y la más utilizada sea la familia CEVA-TeakLite DSP, una arquitectura clásica basada en memoria, con anchos de palabra de 16 o 32 bits y MAC simples o duales . La familia CEVA-X DSP ofrece una combinación de arquitecturas VLIW y SIMD, con diferentes miembros de la familia que ofrecen MAC duales o cuádruples de 16 bits. La familia CEVA-XC DSP está orientada a diseños de módems de radio definidos por software (SDR) y aprovecha una combinación única de arquitecturas VLIW y Vector con 32 MAC de 16 bits.
Analog Devices produce el DSP basado en SHARC y su rendimiento varía desde 66 MHz/198 MFLOPS (millones de operaciones de punto flotante por segundo) hasta 400 MHz/2400 MFLOPS. Algunos modelos admiten múltiples multiplicadores y ALU , instrucciones SIMD y componentes y periféricos específicos para el procesamiento de audio. La familia Blackfin de procesadores de señal digital integrados combina las características de un DSP con las de un procesador de uso general. Como resultado, estos procesadores pueden ejecutar sistemas operativos simples como μCLinux , Velocity y Nucleus RTOS mientras operan con datos en tiempo real. El ADSP-210xx basado en SHARC proporciona ramas retardadas y ramas no retardadas. [21]
NXP Semiconductors produce procesadores de señal digital basados en la tecnología TriMedia VLIW , optimizados para el procesamiento de audio y video. En algunos productos, el núcleo del procesador de señal digital está oculto como un bloque de función fija en un SoC , pero NXP también ofrece una gama de procesadores de medios flexibles de un solo núcleo. Los procesadores de medios TriMedia admiten tanto aritmética de punto fijo como de punto flotante , y tienen instrucciones específicas para manejar filtros complejos y codificación de entropía.
CSR produce la familia Quatro de SoC que contienen uno o más DSP de imágenes personalizados optimizados para procesar datos de imágenes de documentos para aplicaciones de escáner y fotocopiadora.
Microchip Technology produce la línea de DSP dsPIC basada en PIC24. Presentado en 2004, el dsPIC está diseñado para aplicaciones que necesitan un DSP real, así como un microcontrolador real , como el control de motores y en fuentes de alimentación. El dsPIC funciona a una velocidad de hasta 40 MIPS y admite MAC de punto fijo de 16 bits, bit inverso y direccionamiento de módulo, así como DMA.
La mayoría de los DSP utilizan aritmética de punto fijo, porque en el procesamiento de señales del mundo real no se necesita el rango adicional que proporciona el punto flotante, y hay un gran beneficio en términos de velocidad y costo debido a la menor complejidad del hardware. Los DSP de punto flotante pueden ser invaluables en aplicaciones donde se requiere un amplio rango dinámico. Los desarrolladores de productos también pueden utilizar DSP de punto flotante para reducir el costo y la complejidad del desarrollo de software a cambio de un hardware más caro, ya que generalmente es más fácil implementar algoritmos en punto flotante.
Generalmente, los DSP son circuitos integrados dedicados; sin embargo, la funcionalidad DSP también se puede producir utilizando chips de matriz de puertas programables en campo (FPGA).
Los procesadores RISC de uso general integrados tienen cada vez más funciones similares a las de los procesadores DSP. Por ejemplo, los procesadores OMAP3 incluyen un procesador ARM Cortex-A8 y un procesador DSP C6000.
En el campo de las comunicaciones, se está abriendo camino en el mercado una nueva generación de procesadores de señales digitales (DSP) que ofrecen la fusión de funciones de DSP y de aceleración de hardware. Entre estos procesadores de módem se encuentran el ASOCS ModemX y el XC4000 de CEVA.
En mayo de 2018, el Huarui-2, diseñado por el Instituto de Investigación de Tecnología Electrónica de Nanjing del Grupo de Tecnología Electrónica de China, fue aprobado. Con una velocidad de procesamiento de 0,4 TFLOPS, el chip puede lograr un mejor rendimiento que los chips DSP convencionales actuales. [22] El equipo de diseño ha comenzado a crear el Huarui-3, que tiene una velocidad de procesamiento en el nivel de TFLOPS y es compatible con la inteligencia artificial . [23]
{{cite web}}
: CS1 maint: copia archivada como título ( enlace )