Introducción al conocimiento de los procesadores de señales digitales
Existen muchos algoritmos DSP. La mayoría de los procesadores DSP utilizan aritmética de punto fijo y los números se representan como números enteros o decimales entre -1,0 y 1,0. Algunos procesadores utilizan aritmética de punto flotante y los datos se expresan en forma de mantisa más exponente: mantisa × 2 exponente.
El algoritmo de punto flotante es un algoritmo convencional más complejo. Los datos de punto flotante se pueden utilizar para lograr un gran rango dinámico de datos (este rango dinámico se puede expresar mediante la relación entre los números más grandes y más pequeños). En la aplicación de DSP de punto flotante, los ingenieros de diseño no necesitan preocuparse por cuestiones como el rango dinámico y la precisión. Los DSP de punto flotante son más fáciles de programar que los DSP de punto fijo, pero el costo y el consumo de energía son altos.
Debido a razones de costo y consumo de energía, el DSP de punto fijo se usa generalmente para productos por lotes. Los programadores y diseñadores de algoritmos determinan el rango dinámico y la precisión requeridos mediante análisis o simulación. Si los requisitos son fáciles de desarrollar, el rango dinámico es amplio y la precisión es alta, se puede considerar el DSP de punto flotante.
Los cálculos de punto flotante también se pueden implementar mediante software que utiliza DSP de punto fijo, pero estos programas de software consumen mucho tiempo del procesador y rara vez se utilizan. Un método eficaz es el "bloque de punto flotante", que utiliza este método para procesar un conjunto de datos con el mismo exponente pero diferentes mantisas como bloques de datos. El procesamiento de "bloques de punto flotante" generalmente se implementa en software. El ancho de palabra de todos los DSP de punto flotante es de 32 bits, mientras que el ancho de palabra de los DSP de punto fijo es generalmente de 16 bits. También hay DSP de 24 y 20 bits, como la serie DSP563XX de Motorola y la serie ZR3800X de Zoran. Dado que el ancho de la palabra tiene una gran relación con el tamaño externo del DSP, la cantidad de pines y el tamaño de la memoria requerida, la longitud del ancho de la palabra afecta directamente el costo del dispositivo. Cuanto mayor sea el ancho de la palabra, mayor será el tamaño, más pines, mayores serán los requisitos de memoria y el costo aumentará en consecuencia. Bajo la premisa de que se cumplen los requisitos de diseño, se debe utilizar un DSP con un ancho de fuente pequeño tanto como sea posible para reducir costos.
Al elegir entre punto fijo y punto flotante, puede sopesar la relación entre el ancho de la palabra y la complejidad del desarrollo. Por ejemplo, al combinar instrucciones, un dispositivo DSP de 16 bits para toda la palabra también puede implementar una aritmética de doble precisión para toda la palabra de 32 bits (por supuesto, la aritmética de doble precisión es mucho más lenta que la aritmética de precisión simple). Si la precisión simple puede cumplir con la gran mayoría de los requisitos de cálculo y solo una pequeña cantidad de código requiere doble precisión, este método también es factible. Sin embargo, si la mayoría de los cálculos requieren una alta precisión, debe elegir un procesador con un ancho de palabra mayor.
Tenga en cuenta que el ancho de la palabra de instrucción y la palabra de datos de la mayoría de los dispositivos DSP son los mismos y existen algunas diferencias. Por ejemplo, la palabra de datos de la serie ADSP-21XX de ADI (dispositivos analógicos). , Inc.) es de 16 bits y la palabra de instrucción es de 16 bits. Las palabras son de 24 bits. Que el procesador cumpla con los requisitos de diseño depende de si cumple con los requisitos de velocidad. Hay muchas formas de probar la velocidad de un procesador. La más básica es medir el ciclo de instrucciones del procesador, que es el tiempo que tarda el procesador en ejecutar la instrucción más rápida. Divida el recíproco del ciclo de instrucciones por un millón y multiplíquelo por el número de instrucciones ejecutadas por ciclo. El resultado es la velocidad máxima del procesador, medida en millones de instrucciones por segundo (MIPS).
Sin embargo, el tiempo de ejecución de la instrucción no indica el rendimiento real del procesador. Diferentes procesadores completan diferentes tareas en una sola instrucción. La simple comparación del tiempo de ejecución de la instrucción no puede distinguir de manera justa las diferencias de rendimiento. Algunos DSP nuevos ahora adoptan la arquitectura de palabra de instrucción muy larga (VLIW). En esta arquitectura, se pueden implementar múltiples instrucciones en un solo ciclo y cada instrucción implementa menos tareas que los DSP tradicionales. Por lo tanto, en comparación con VLIW y los DSP de uso general. En cuanto a los dispositivos, comparar tamaños de MIPS puede resultar engañoso.
Incluso comparar los tamaños de MIPS entre los DSP tradicionales es algo unilateral. Por ejemplo, algunos procesadores permiten desplazar varios bits juntos en una sola instrucción, mientras que algunos DSP tienen una instrucción que solo puede desplazar un único bit de datos; algunos DSP pueden paralelizar datos independientemente de la instrucción ALU que se está ejecutando (cargando operandos mientras). ejecutar instrucciones), mientras que algunos otros DSP solo pueden admitir el procesamiento paralelo de datos relacionados con la instrucción ALU que se está ejecutando; algunos DSP nuevos permiten definir dos MAC dentro de una sola instrucción;
Por lo tanto, simplemente haciendo una comparación MIPS no se puede determinar con precisión el rendimiento del procesador.
Una forma de resolver el problema anterior es utilizar una operación básica (en lugar de una instrucción) como estándar para comparar el rendimiento del procesador. Lo que se usa comúnmente es la operación MAC, pero el tiempo de operación MAC no proporciona suficiente información para comparar las diferencias de rendimiento del DSP. En la mayoría de los DSP, la operación MAC solo se implementa en un único ciclo de instrucción y su tiempo MAC es igual al tiempo del ciclo de instrucción. Como se mencionó anteriormente, algunos DSP manejan más tareas en un solo ciclo MAC que otros. Los tiempos MAC no reflejan el rendimiento de operaciones como los bucles, que se utilizan en todas las aplicaciones.
El método más común es definir un conjunto de rutinas estándar y comparar la velocidad de ejecución en diferentes DSP. Dichas rutinas pueden ser la funcionalidad "central" de un algoritmo, como filtros FIR o IIR, etc., o pueden ser la totalidad o parte de una aplicación (como un codificador de voz). La Figura 1 muestra el rendimiento de varios dispositivos DSP probados utilizando las herramientas de BDTI.
Al comparar la velocidad de los procesadores DSP, preste atención a los parámetros MOPS (millones de operaciones por segundo) y MFLOPS (millones de operaciones de punto flotante por segundo) que anuncian, porque diferentes fabricantes tienen opiniones diferentes sobre "El La comprensión de "operación" es diferente y el significado de los indicadores también es diferente. Por ejemplo, algunos procesadores pueden realizar operaciones de multiplicación de punto flotante y operaciones de suma de punto flotante al mismo tiempo, por lo que anuncian que los MFLOPS de sus productos son el doble que los MIPS.
En segundo lugar, al comparar las velocidades de reloj del procesador, el reloj de entrada del DSP puede ser el mismo que su velocidad de instrucción, o puede ser de dos a cuatro veces la velocidad de instrucción. Diferentes procesadores pueden ser diferentes. Además, muchos DSP tienen multiplicadores de reloj o bucles de bloqueo de fase que pueden utilizar un reloj externo de baja frecuencia para generar la señal de reloj de alta frecuencia requerida en el chip. Procesamiento del habla: codificación del habla, síntesis del habla, reconocimiento del habla, mejora del habla, correo de voz, almacenamiento del habla, etc.
Imagen/gráficos: procesamiento de gráficos bidimensionales y tridimensionales, compresión y transmisión de imágenes, reconocimiento de imágenes, animación, visión robótica, multimedia, mapas electrónicos, mejora de imágenes, etc.
Militar; comunicaciones seguras, procesamiento de radar, procesamiento de sonar, navegación, posicionamiento global, radio por salto de frecuencia, búsqueda y contrabúsqueda, etc.
Instrumentación: análisis espectral, generación de funciones, adquisición de datos, procesamiento sísmico, etc.
Control automático: control, operaciones en el espacio profundo, conducción automática, control de robots, control de discos, etc.
Médico: audífonos, equipos de ultrasonido, herramientas de diagnóstico, monitorización de pacientes, electrocardiograma, etc.
Electrodomésticos: audio digital, TV digital, videoteléfono, síntesis de música, control de tono, juguetes y juegos, etc.
Ejemplos de procesamiento de señales biomédicas:
CT: Dispositivo de tomografía computarizada de rayos X. (Entre ellos, Housfield, de la empresa británica EMI, que inventó la TC craneal, ganó el Premio Nobel.)
CAT: Dispositivo informático de reconstrucción espacial de rayos X. Aparecen exploraciones de todo el cuerpo, gráficos tridimensionales de la actividad cardíaca, cuerpos extraños en tumores cerebrales y reconstrucción de imágenes del torso humano.
Análisis del electrocardiograma. El rendimiento de un DSP se ve afectado por su capacidad para gestionar el subsistema de memoria. Como se mencionó anteriormente, MAC y otras funciones de procesamiento de señales son las capacidades básicas del procesamiento de señales del dispositivo DSP. La capacidad de ejecución rápida de MAC requiere leer una palabra de instrucción y dos palabras de datos de la memoria en cada ciclo de instrucción. Hay varias formas de implementar dichas lecturas, incluidas memorias de interfaz múltiple (que permiten múltiples accesos a la memoria por ciclo de instrucción), memorias de datos e instrucciones separadas (arquitecturas "Harvard" y sus derivadas) y cachés de instrucciones (que permiten múltiples accesos a la memoria). desde Cache recupera instrucciones en lugar de memoria, liberando memoria para lecturas de datos). Las Figuras 2 y 3 muestran las diferencias entre la arquitectura de memoria Harvard y la arquitectura "von Norman" utilizada en muchos microcontroladores.
Presta también atención al tamaño del espacio de memoria admitido. El principal mercado objetivo de muchos DSP de punto fijo son las aplicaciones integradas, donde la memoria es generalmente pequeña, por lo que este dispositivo DSP tiene una memoria en chip de pequeña a mediana (alrededor de 4K a 64K palabras) y un bus de datos externo estrecho.
Además, el bus de direcciones de la mayoría de los DSP de punto fijo es menor o igual a 16 bits, por lo que el espacio de la memoria externa es limitado.
Algunos DSP de punto flotante tienen poca o ninguna memoria en el chip, pero el bus de datos externo es amplio. Por ejemplo, el TMS320C30 de TI solo tiene memoria en chip de 6K, un bus externo de 24 bits y un bus de direcciones externo de 13 bits. El ADSP2-21060 de ADI tiene 4 Mb de memoria en chip, que se puede dividir en memoria de programa y memoria de datos de varias maneras.
Al seleccionar un DSP, debe seleccionarlo según el tamaño del espacio de almacenamiento y los requisitos del bus externo de la aplicación específica. Existen grandes diferencias entre los procesadores DSP y los procesadores de propósito general (GPP) como Intel, Pentium o PowerPC. Estas diferencias surgen del hecho de que la estructura y las instrucciones de los DSP están diseñadas y desarrolladas específicamente para el procesamiento de señales. características.
·Operaciones de multiplicación y acumulación de hardware (MAC)
Para completar eficazmente operaciones de multiplicación y acumulación, como el filtrado de señales, el procesador debe realizar operaciones de multiplicación efectivas. Los GPP no fueron diseñados originalmente para operaciones de multiplicación pesadas. La primera mejora técnica importante que distinguió a los DSP de los GPP anteriores fue la adición de hardware especializado e instrucciones MAC explícitas capaces de realizar operaciones de multiplicación de un solo ciclo.
·Estructura de Harvard
Los GPP tradicionales utilizan Feng. Estructura de memoria normanda en esta estructura, hay un espacio de almacenamiento conectado al núcleo del procesador a través de dos buses (un bus de direcciones y un bus de datos). Esta estructura no puede cumplir con el requisito de que el MAC deba realizar cuatro operaciones en la memoria en una instrucción. Ciclo.Requisitos para la primera visita. Los DSP generalmente utilizan la arquitectura Harvard. En la arquitectura Harvard, hay dos espacios de almacenamiento: espacio de almacenamiento de programas y espacio de almacenamiento de datos. El núcleo del procesador está conectado a estos espacios de memoria a través de dos conjuntos de buses, lo que permite dos accesos simultáneos a la memoria. Esta disposición duplica el ancho de banda del procesador. En la arquitectura de Harvard, a veces se logra un mayor ancho de banda de almacenamiento agregando un segundo bus y espacio de almacenamiento de datos. Los GPP modernos de alto rendimiento suelen tener dos cachés en el chip, uno para datos y otro para instrucciones. Desde una perspectiva teórica, esta conexión dual de bus y caché en el chip es equivalente a la arquitectura de Harvard. Sin embargo, los GPP utilizan lógica de control para determinar qué datos y palabras de instrucciones residen en el caché en el chip, un proceso que generalmente no está disponible. el programador Como puede ver, en los DSP, los programadores pueden controlar explícitamente qué datos e instrucciones se almacenan en las celdas de memoria o cachés del chip.
·Control de bucle de consumo cero
Las mismas características de los algoritmos DSP: la mayor parte del tiempo de procesamiento se dedica a ejecutar un pequeño número de instrucciones contenidas en un bucle relativamente pequeño. Por lo tanto, la mayoría de los procesadores DSP tienen hardware especializado para el control de bucle sin costo. Un bucle de costo cero es un bucle en el que el procesador puede ejecutar un conjunto de instrucciones sin perder tiempo probando el valor del contador de bucle. El hardware completa los saltos de bucle y decae el contador de bucle. Algunos DSP también implementan bucles de instrucción única de alta velocidad a través de un caché de instrucciones.
·Modo de direccionamiento especial
Los DSP a menudo contienen generadores de direcciones especiales, que pueden generar direccionamiento especial requerido por algoritmos de procesamiento de señales, como direccionamiento de bucle y direccionamiento de inversión de bits. El direccionamiento de bucle corresponde al algoritmo de filtrado FIR de canalización y el direccionamiento de inversión de bits corresponde al algoritmo FFT.
·Previsibilidad del tiempo de ejecución
La mayoría de las aplicaciones DSP tienen requisitos estrictos en tiempo real y, en cada caso, todo el trabajo de procesamiento debe completarse dentro de un tiempo específico. Esta limitación en tiempo real requiere que el programador determine exactamente cuánto tiempo requiere cada muestra o al menos cuánto tiempo transcurrirá en el peor de los casos. El proceso mediante el cual los DSP ejecutan programas es transparente para el programador, por lo que es fácil predecir el tiempo de ejecución de cada trabajo que se procesa. Sin embargo, para los GPP de alto rendimiento, la predicción del tiempo de ejecución se vuelve compleja y difícil debido al uso de grandes cantidades de datos de ultra alta velocidad y caché de programas para asignar programas dinámicamente.
·Tiene periféricos enriquecidos
Los DSP tienen DMA, puerto serie, puerto Link, temporizador y otros periféricos.