Red de conocimientos sobre prescripción popular - Cuidado de la salud en otoño - La dirección de desarrollo de los procesadores de señales digitales

La dirección de desarrollo de los procesadores de señales digitales

Los procesadores de señales digitales se han desarrollado desde procesadores de señales dedicados en la década de 1970 hasta los procesadores de matriz VLSI actuales, y sus campos de aplicación también han evolucionado desde el procesamiento inicial de señales de baja frecuencia, como voz y sonar, hasta el procesamiento de señales de datos de vídeo a gran escala, como como radar e imágenes. Gracias al uso de operaciones de punto flotante y tecnología de procesamiento paralelo, las capacidades de procesamiento de los procesadores de señales han mejorado enormemente. Los procesadores de señales digitales seguirán desarrollándose en dos direcciones: mejorar la velocidad de procesamiento y la precisión de los cálculos. Las estructuras de flujo de datos y las estructuras de redes neuronales artificiales probablemente se convertirán en los patrones estructurales básicos de la próxima generación de procesadores de señales digitales.

Formato del algoritmo

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 como la mantisa más el exponente: la mantisa × 2 exponente.

El algoritmo de punto flotante es un algoritmo convencional relativamente complejo que se puede utilizar para lograr un gran rango dinámico de datos (este rango dinámico se puede expresar como la relación entre el valor máximo y el valor mínimo). . En aplicaciones DSP de punto flotante, los ingenieros de diseño no tienen que preocuparse por 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 al coste y al consumo de energía, el DSP de punto fijo se utiliza generalmente en la producción en masa. 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, se puede considerar un amplio rango dinámico y alta precisión, DSP de punto flotante.

Las operaciones de punto flotante también se pueden implementar en software cuando se utiliza un DSP de punto fijo, pero estos programas de software consumen mucho tiempo del procesador, por lo que rara vez se utilizan. Un método eficaz es el "bloque de punto flotante", es decir, un grupo de datos con el mismo exponente pero diferentes mantisas se trata como un bloque de datos. El procesamiento de bloques de coma flotante generalmente se implementa en software.

Ancho de datos

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 palabra tiene una gran relación con el tamaño externo del DSP, el número de pines y el tamaño de la memoria requerida, el ancho de 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. Cuando se cumplan los requisitos de diseño, intente elegir un DSP con un ancho de fuente pequeño 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, un dispositivo DSP de 16 bits de ancho también puede implementar un algoritmo de doble precisión de 32 bits de ancho combinando instrucciones (por supuesto, el algoritmo de doble precisión es mucho más lento que el algoritmo de precisión simple). Si la precisión simple puede cumplir con la mayoría de los requisitos de cálculo y solo unos pocos códigos requieren doble precisión, este método también es factible. Sin embargo, si la mayoría de los cálculos requieren alta precisión, debe elegir un procesador con un ancho de fuente grande.

Tenga en cuenta que el ancho de las palabras de instrucción y de datos de la mayoría de los dispositivos DSP es el mismo, con algunas diferencias. Por ejemplo, la palabra de datos de la serie ADSP-21XX de Analog Devices es de 16 bits y la palabra de instrucción es de 24 bits.

Velocidad de procesamiento

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 su procesador. La más básica es una medida del ciclo de instrucciones de un procesador, que es cuánto tiempo le toma al procesador ejecutar la instrucción más rápida. Divida el recíproco de los ciclos 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 en millones de instrucciones por segundo (MIPS).

Sin embargo, el tiempo de ejecución de las instrucciones no indica el verdadero rendimiento del procesador. Diferentes procesadores tienen diferentes tareas dentro de una instrucción, y la simple comparación de los tiempos de ejecución de las instrucciones no distingue claramente las diferencias de rendimiento. Actualmente, algunos DSP nuevos adoptan la arquitectura VLIW. En esta arquitectura, se pueden implementar múltiples instrucciones en un solo ciclo y cada instrucción completa menos tareas que un DSP tradicional. Por lo tanto, comparar el tamaño de MIPS con VLIW y dispositivos DSP generales será engañoso.

Incluso comparar el tamaño de MIPS entre los DSP tradicionales es unilateral.

Por ejemplo, algunos procesadores permiten que se desplacen varios bits juntos en una sola instrucción, mientras que algunas instrucciones DSP solo pueden desplazar un único bit de datos; algunos DSP pueden procesar datos en paralelo que no están relacionados con la instrucción ALU que se está ejecutando (cargada mientras se ejecuta la instrucción); instrucción se está ejecutando) Operandos), algunos 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 en una instrucción; Por lo tanto, sólo la comparación MIPS no puede obtener con precisión el rendimiento del procesador.

Una forma de solucionar el problema anterior es comparar el rendimiento de los procesadores con una operación básica (no una instrucción). Las operaciones MAC se utilizan comúnmente, pero los tiempos de operación MAC no brindan suficiente información para comparar las diferencias de rendimiento de DSP. En la mayoría de los DSP, las operaciones MAC se implementan solo 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 que otros en un solo ciclo MAC. Los tiempos MAC no reflejan el rendimiento utilizado en todas las aplicaciones, como las operaciones de bucle.

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. Esta rutina puede ser una función "central" del algoritmo, como un filtro FIR o IIR, o puede ser toda o parte de la aplicación (como un codificador de voz). La Figura 1 muestra el rendimiento de varios dispositivos DSP probados con la herramienta 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) anunciados, porque diferentes fabricantes tienen diferentes opiniones sobre las "operaciones". Las interpretaciones son diferentes y los significados de los indicadores también son diferentes. Por ejemplo, algunos procesadores pueden realizar multiplicaciones y sumas en coma flotante simultáneamente, por lo que anuncian que sus productos tienen el doble de MFLOPS que 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 2 a 4 veces la velocidad de instrucción, lo que puede ser diferente para diferentes procesadores. 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.

Aplicaciones prácticas

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 2D y 3D, 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.

Instrumentos: análisis espectral, generación de funciones, adquisición de datos, procesamiento sísmico, etc.

Control automático: control, operación en 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, electrocardiogramas, 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:

TC: Equipo de tomografía computarizada de rayos X. (Entre ellos, Housfield de la compañía británica EMI, que inventó la TC de cráneo, ganó el Premio Nobel.)

Dispositivo de reconstrucción espacial por rayos X computarizados. Aparecen escáneres de cuerpo entero, patrones tridimensionales de actividad cardíaca, cuerpos extraños de tumores cerebrales y reconstrucciones de imágenes del torso humano. Análisis de electrocardiograma.

Gestión de almacenamiento

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 de procesamiento de señales de los dispositivos DSP. La ejecución MAC rápida requiere que se lean de la memoria una palabra de instrucción y dos palabras de datos en cada ciclo de instrucción. Hay muchas 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 (arquitectura "Harvard" y sus derivadas) y cachés de instrucciones (permite leer instrucciones desde caché en lugar de memoria, liberando memoria para lecturas de datos). Las Figuras 2 y 3 ilustran las diferencias entre la arquitectura de memoria Harvard utilizada por muchos microcontroladores y la arquitectura "Von Norman".

Además, preste atención al tamaño del espacio de memoria admitido.

El principal mercado objetivo de muchos DSP de punto fijo son los sistemas de aplicaciones integradas, en los que la memoria es generalmente relativamente pequeña, por lo que este dispositivo DSP tiene una memoria en chip de tamaño pequeño a mediano (alrededor de 4K a 64K palabras) y una capacidad de datos externa estrecha. autobús. 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 almacenamiento externo es limitado.

Algunos DSP de punto flotante tienen poca o ninguna memoria en el chip, pero el bus de datos externo es muy amplio. Por ejemplo, el TMS320C30 de TI solo tiene memoria en chip de 6K y su bus externo es un bus de direcciones externo de 24 y 13 bits. El ADSP2-21060 de Analog Devices tiene 4 Mb de memoria en chip, que se puede dividir en memoria de programa y memoria de datos en muchos aspectos.

Al seleccionar un DSP, debe elegir según el tamaño del espacio de almacenamiento y los requisitos del bus externo de la aplicación específica.

Características del tipo

Los procesadores DSP son bastante diferentes a los procesadores Intel, Pentium o Power

Procesadores de propósito general (GPP) para PC. Estas diferencias surgen del hecho de que la estructura y las instrucciones del DSP están diseñadas y desarrolladas específicamente para el procesamiento de señales. Tiene las siguientes características.

Operaciones de multiplicación y acumulación de hardware

Para completar eficazmente las 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 una multiplicación intensa. La primera mejora técnica importante que distinguió al DSP de los primeros GPP fue la adición de hardware especializado e instrucciones MAC claras que podían realizar multiplicaciones de un solo ciclo.

Estructura Harvard

Los GPP tradicionales utilizan la estructura de almacenamiento von Norman. En esta estructura, el espacio de memoria está conectado al núcleo del procesador a través de dos buses (bus de direcciones y bus de datos). Esta estructura no puede cumplir con el requisito de que el MAC deba acceder a la memoria cuatro veces en un ciclo de instrucción. DSP generalmente adopta la estructura de Harvard. En la arquitectura de 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, duplicando el ancho de banda del procesador. En la arquitectura de Harvard, a veces se agrega un bus y un espacio de almacenamiento de datos secundario para lograr un mayor ancho de banda de almacenamiento. Los GPP modernos de alto rendimiento suelen tener dos cachés en el chip, uno para almacenar datos y otro para instrucciones. En teoría, esta conexión dual de bus y caché en el chip es equivalente a una arquitectura de Harvard. Sin embargo, los GPP utilizan lógica de control para determinar qué datos y palabras de instrucciones residen en la caché del chip, que normalmente es invisible para el programador. En un DSP, los programadores tienen un control claro sobre 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 de control de bucle de energía cero dedicado. El consumo de ciclo cero significa que el procesador puede ejecutar un conjunto de ciclos de instrucciones sin perder tiempo probando el valor del contador de ciclos, sin que el hardware complete los saltos de ciclo y la caída del contador de ciclos. Algunos DSP también implementan bucles de instrucciones únicas de alta velocidad a través de un caché de instrucciones.

Modos de direccionamiento especial

Los DSP generalmente contienen generadores de direcciones especiales que pueden generar el direccionamiento especial requerido por los algoritmos de procesamiento de señales, como el direccionamiento de bucle y el 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 todo el trabajo de procesamiento debe completarse dentro del tiempo especificado. Esta limitación en tiempo real requiere que el programador determine cuánto tiempo se requiere para cada muestra, o al menos cuánto tiempo se requiere en el peor de los casos. El proceso de ejecución del programa por parte del DSP es transparente para el programador, por lo que es fácil predecir el tiempo de ejecución de cada trabajo. Pero para los GPP de alto rendimiento, dado que se utiliza una gran cantidad de datos de ultra alta velocidad y cachés de programas, y los programas se asignan dinámicamente, la predicción del tiempo de ejecución se vuelve compleja y difícil.

Tiene ricos periféricos.

DSP dispone de periféricos como DMA, puerto serie, puerto de enlace y temporizador.