Los procesadores de señales digitales (DSP) son microprocesadores especializados diseñados para manejar tareas de procesamiento de señales en tiempo real con una eficiencia excepcional. A diferencia de las CPUs de uso general que priorizan la programación de tareas y la predicción de rama, los DSP están diseñados para operaciones de aritmética de alta velocidad y de alta velocidad, y que se multiplican rápidamente las operaciones (MAC).

El papel fundamental de la memoria en el procesamiento de señales

Los algoritmos como respuesta de impulso finito (FIR) filtros, transformaciones rápidas Fourier (FFTs), convolución y multiplicación de matriz funcionan en grandes gamas de datos de funcionamiento muestreado. Estos algoritmos muestran un patrón de acceso predecible y repetitivo: una secuencia de coeficientes (se almacena en memoria) se multiplican repetidamente con muestras de lógica de datos descomunificados.

Por lo tanto, las limitaciones en tiempo real exigen que el procesamiento se mantenga al día con la tasa de muestreo. Para audio a 48 kHz, el procesador debe completar su algoritmo en aproximadamente 20 microsegundos. Para el video a 30 marcos por segundo con resolución 1080p, ese requisito se convierte en decenas de milisegundos por marco, y a menudo mucho más ajustado para el procesamiento de sub-frames.

Tipos de memoria de núcleo en sistemas DSP

Registro de memoria

Los registros son la memoria más rápida en cualquier DSP. Típicamente implementado como flip-flops o pequeñas arrays SRAM dentro del núcleo del procesador, registra los controles de los controles que están siendo activamente computados. La mayoría de los núcleos DSP tienen un conjunto dedicado de acumuladores (por ejemplo, 40-bit o 64-bit de registro de capacidad para prevenir el exceso de flujo en operaciones MAC) y un conjunto de menos de direcciones

Memoria de Cache

La memoria de caché es un pequeño SRAM rápido que almacena copias de datos o instrucciones a menudo accedidas desde la memoria principal. Los DSP pueden incluir caches de instrucción separados (I-cache) y caches de datos (D-cache) para evitar la contención. Sin embargo, los caches introducen la imprevisibilidad: una falta de caché puede detener el oleoducto para decenas o cientos de ciclos, que es problemático para sistemas de tiempo real.

SRAM en el niño (Memoria de la hoja de cálculo)

En función de los tamaños de la serie de dispositivos de transmisión de datos en línea, el sistema de gestión de los arañazos se encarga de la gestión de los datos, que deben ser trasladados y eliminados por el programador o el compilador. Este comportamiento determinista hace que los arañazos sean la opción preferida para el procesamiento de señales en tiempo real, donde se debe conocer el tiempo de ejecución más difícil (WCET).

Memoria externa (DRAM/Flash)

La memoria externa, generalmente DDR SDRAM (especialmente LPDDR para móviles/embedded), proporciona una gran capacidad-gigabytes—a costa de alta latencia (tensos de nanosegundos a 100+ ns) y mayor energía por acceso. Para muchas aplicaciones DSP, la memoria externa contiene grandes arrays de datos que exceden el almacenamiento en chip, tales como marcos de vídeo, códigos de audio, o tablas de búsqueda constantes.

Modelos de Arquitectura de Memoria en DSPs

Harvard Architecture

La arquitectura de Harvard separa la memoria de instrucciones y la memoria de datos en autobuses físicamente distintos, permitiendo el acceso simultáneo a ambos durante un solo ciclo de reloj. Un DSP típico con la arquitectura de Harvard puede buscar una instrucción de la memoria del programa (a menudo flash on-chip o SRAM) mientras lee dos palabras de datos de la memoria de datos, uno para el coeficiente y uno para la muestra.

Von Neumann Architecture

La arquitectura von Neumann (o Princeton) utiliza un único espacio de memoria compartido para instrucciones y datos, servido por un autobús. Esto simplifica el diseño del sistema y la asignación de memoria pero crea un cuello de botella fundamental (a menudo llamado el “Botellado devon Neumann”). En un contexto de DSP, puro von Neumann raramente se ve porque no puede proporcionar tanto una instrucción como dos operados de datos por ciclo.

Arquitectura de Harvard modificada (con instrucciones y claves de datos)

Para cerrar la brecha entre el paralelismo de Harvard y la flexibilidad de von Neumann, muchos DSP implementan una arquitectura modificada de Harvard. Esto utiliza la instrucción separada y los autobuses de datos a nivel central, pero la jerarquía de memoria (incluyendo caches y memoria principal) está unificada. Por ejemplo, un caché de instrucción L1 se encuentra en el bus de instrucciones, y un caché de datos L1 se sienta en el bus de datos, pero ambos fuente de una arquitectura compartida.

VLIW y SIMD Implications

Procesadores de Word (VLIW) de muy larga instrucción, como el TI C6000, empaquetan múltiples operaciones en una sola instrucción (por ejemplo, dos MACs más carga/tienda). Para sostener el paralelismo VLIW, la arquitectura de memoria debe proporcionar suficientes puertos de memoria para alimentar todas las unidades funcionales. Esto a menudo significa múltiples bancos de memoria, cada uno con su propio puerto de lectura.

Hierarquímicas y Estrategias de Memoria Avanzada

Híbridos de Cuchara Multi-Level y Scratchpad

Los DSP modernos a menudo combinan un pequeño caché L1 (por ejemplo, 16 KB instrucción + 16 KB datos) con un L2 SRAM más grande (por ejemplo, 256 KB) que se puede configurar como caché o arañazo. Por ejemplo, el núcleo TI C66x permite dividir la memoria L2 entre el rendimiento de caché y SRAM en una base de bloqueo por bloque.

Motores DMA (Acceso a la memoria de insectos)

Los controladores DMA son integrales a la eficiencia de memoria DSP. Permiten que se produzcan transferencias de datos entre memoria externa y memoria en chip sin intervención de CPU. Un patrón típico es utilizar un esquema de doble amortiguación (ping-pong): mientras que el DSP procesa datos del buffer A, el DMA llena el amortiguador B de memoria externa, y una vez que se realiza el procesamiento en A, los roles permiten manejar la longitud de vídeo

Banca de memoria e interleaving

Para proporcionar un ancho de banda alto, SRAM en chip se divide a menudo en múltiples bancos (por ejemplo, 8 o 16). Cada banco tiene su propio puerto de lectura/escritura, por lo que múltiples accesos simultáneos son posibles siempre y cuando se dirigen a diferentes bancos. Interleaving —spreading sucesivas direcciones a través de bancos— reduce los conflictos bancarios para patrones de acceso secuencial (comulo en los bucles DSP).

Buffers de bucle (Zero-Overhead Loop Support)

Muchos DSPs incluyen pequeños amortiguadores de memoria rápida diseñados específicamente para bucles de software. Un buffer de bucle puede contener un pequeño núcleo (por ejemplo, 128 a 2048 instrucciones) que se ejecuta repetidamente sin buscar la memoria principal. Combinado con modos de dirección para buffer circular, esto elimina el acceso a la memoria de los bucles apretados, un común ocurrencia en el procesamiento de señales.

Coherencia de caché en DSPs multicore

Cuando múltiples núcleos del DSP comparten datos (por ejemplo, en un radar o aplicación MIMO), los protocolos de coherencia de caché impiden los datos de estalla. La coherencia de snooping o gestionado por software (por ejemplo, usando los invalidados de caché) se utilizan. Algunos DSP evitan caches en conjunto a favor de los raspados para evitar la superación de la coherencia.

Impacto de la arquitectura de memoria en las métricas de rendimiento clave

La arquitectura de memoria influye directamente en cuatro métricas de rendimiento crítico: rendimiento (operaciones por segundo), latencia (tiempo a primer resultado), consumo de energía y determinismo en tiempo real. Para ilustrar, considere un filtro FIR de longitud N. Con una arquitectura de memoria ideal (Harvard + dos puertos leídos + acceso de ciclo único), cada grifo requiere un ciclo de carga de coeficiente, uno para carga de muestra, y uno para MAC - eficaz tres ciclos

Para el procesamiento FFT, el algoritmo Cooley-Tukey implica operaciones de mariposa que leen dos valores complejos y un factor de twiddle, luego escriben dos resultados. Con un solo puerto de memoria, esto requiere cuatro lecturas y dos escritos por mariposa, tomando al menos seis ciclos. Con una arquitectura de doble banco (uno para datos, uno para coeficientes), las lecturas pueden ser superpuestas, reduciendo la jerarquía a tres ciclos por línea de memoria constantemente Powerar100.

En telecomunicaciones, algoritmos de detección de símbolos (Viterbi, MLSE) requieren un amplio retroceso con acceso aleatorio a las métricas estatales. Aquí, SRAM con baja latencia es esencial para mantener la tasa de símbolo en tiempo real. Una sola falta de caché podría causar una violación de tiempo, por lo que los diseñadores a menudo marcan la mesa métrica del estado en el arañazotado.

Consideraciones de diseño para ingenieros de sistemas

Al diseñar un sistema basado en DSP, los ingenieros deben dividir los datos de la aplicación en la jerarquía de memoria. Las decisiones clave incluyen:

  • ] Colocación de datos: ¿Qué arrays se colocan en el chip SRAM vs DRAM externo? Típicamente, el conjunto de trabajo para el algoritmo más ejecutado (por ejemplo, coeficientes de filtro, variables estatales) debe encajar en la memoria en el chip. Menos tablas a menudo accedidas (por ejemplo, tablas de búsqueda para compandar) puede residir fuera de chip.
  • Masterización de memoria: Utilizar los registros de los atributos de memoria del DSP para definir políticas de caché (por ejemplo, paso a paso, paso a paso, no disponible). Para datos compartidos, utilice datos no disponibles o asigne en SRAM compartido para evitar problemas de coherencia.
  • Using linker scripts: Define secciones de memoria en el fichero de comandos de enlace. Por ejemplo, coloque .text en SRAM interno para la ejecución rápida, y .data en DRAM externo para grandes amortiguadores. Algunos DSPs admiten DMA para copiar datos críticos de flash a SRAM durante el arranque.
  • Doble buffering with DMA: Asignar dos buffers en on-chip SRAM. Configure un canal DMA para llenar uno mientras el DSP procesa el otro. Asegúrese de que el tamaño de transferencia DMA y las direcciones fuente/destinación están alineadas a anchos de autobús para maximizar el rendimiento.
  • Elige la memoria externa: Para el ancho de banda alto, considere LPDDR4 o HBM (memoria de ancho de banda alta) para aplicaciones de gran intensidad de memoria como radar o banda base 5G. Para la baja potencia, utilice el flash NOR serie para código y ejecutar en lugar (XIP) si el DSP lo soporta.
  • Gestión de potencia: Usar el reloj de los bancos de memoria que no están en uso (por ejemplo, interfaces externas inactivas pueden ser puestas en auto-refrescos). Muchos DSP permiten escalar tensión para SRAM en chip para reducir la potencia dinámica.

Futuros orientaciones en DSP Memory Architecture

Las nuevas aplicaciones de DSP como la inferencia de aprendizaje profundo en dispositivos de borde, el procesamiento de vídeo 4K/8K en tiempo real y los requisitos de memoria de radio definida por software (SDR) son visibles:

  • memoria apilada 3D (HBM, HBM2E): Ya utilizada en GPUs de alta gama, HBM está siendo integrado en DSPs y FPGAs para sistemas que requieren ancho de banda masivo (hasta 460 GB/s por pila). La proximidad estrecha reduce la latencia y la potencia.
  • Recuerdo no volátil en chip (eNVM):] Las nuevas tecnologías como MRAM o ReRAM pueden sustituir el SRAM en chip para el almacenamiento de códigos, reduciendo el tiempo de arranque y eliminando la necesidad de flash externo. Estos recuerdos son casi tan rápidos como SRAM pero conservan datos sin energía.
  • Los aceleradores de red neuronales con memoria de peso local: Los DSP diseñados para la inferencia de IA incluyen un búfer de peso local (a menudo SRAM o SRAM-como) que puede contener matrices de peso para evitar repetidas lecturas de memoria externa. Esto es análogo a un arañazo, pero optimizado para patrones de convolución.
  • Jerarquías adaptivas de memoria: Los futuros DSP pueden desplegar memoria reconfigurable (por ejemplo, eFPGA con memoria incrustada) que se puede reutilizar como caché, arañazo o FIFO dependiendo de la carga de trabajo. Esto permitiría optimizar la ejecución.
  • Caché gestionada por software:** Algunas arquitecturas de investigación proponen sustituir el caché de hardware con recuerdos controlados por software para secciones críticas manteniendo el caché para secciones no críticas. Este enfoque híbrido podría ofrecer lo mejor de ambos mundos.

Conclusión

La arquitectura de memoria es la columna vertebral de la eficiencia del procesador DSP. Una comprensión profunda de los cambios entre registro, caché, SRAM en chip, y la memoria externa permite a los diseñadores de sistemas minimizar el acceso a la latencia de datos, maximizar el rendimiento y reducir el consumo de energía. La elección del modelo de arquitectura (Harvard vs modificada Harvard vs von Neumann), el uso de estrategias avanzadas como DMA, banca y buffers de datos de bucle, y división más