El Motorola DSP56000 (también conocido como 56K ) es una familia de chips procesadores de señales digitales (DSP) producidos por Motorola Semiconductor (más tarde Freescale Semiconductor y luego NXP ) a partir de 1986 [1] [2] [3] [4] [5] con modelos posteriores que todavía se producen en la década de 2020. La serie 56k estaba destinada principalmente a sistemas integrados que realizaban procesamiento de señales, pero también fue bastante popular durante un tiempo en varias computadoras, incluidas las estaciones de trabajo NeXT , Atari Falcon030 y SGI Indigo , todas usando el 56001. [6] Las versiones mejoradas de 56k todavía se usan hoy en día en equipos de audio, sistemas de radar , dispositivos de comunicaciones (como teléfonos móviles ) y varias otras aplicaciones DSP integradas . El 56000 también se usó como base para el 96000 actualizado , que no tuvo éxito comercial.[actualizar]
El DSP56000 utiliza aritmética de punto fijo , con palabras de programa de 24 bits y palabras de datos de 24 bits . Incluye dos registros de 24 bits , que también pueden denominarse como un solo registro de 48 bits. También incluye dos acumuladores de 56 bits , cada uno con una "extensión" de 8 bits ( también conocida como margen de maniobra); de lo contrario, los acumuladores son similares a los otros registros de 24/48 bits. Al ser un procesador de arquitectura Harvard modificada , el 56k tiene tres espacios de memoria + buses (y bancos de memoria en chip en algunos de los modelos): un espacio/bus de memoria de programa y dos espacios/bus de memoria de datos. [7] El área de la pila se asigna en un espacio de direcciones separado, que se llama "Espacio de memoria de pila", [8] distinto del espacio de direcciones de la memoria principal. [9] La pila, que se utiliza cuando se llaman subrutinas e " interrupciones largas ", tiene una profundidad de quince. [9]
Se seleccionaron 24 bits como la longitud de palabra básica porque le daba al sistema un rango de números razonable y precisión para procesar audio (sonido), la principal preocupación del 56000. [ cita requerida ] 24 bits corresponden a un rango dinámico de 144 dB , suficiente en la década de 1980, cuando los convertidores analógico a digital (ADC) y los convertidores digital a analógico (DAC) rara vez superaban los 20 bits. Un ejemplo son las aplicaciones ADSL , donde los filtros generalmente requieren 20 bits de precisión. Los cuatro bits más a la izquierda generalmente se consideran un amplio margen para evitar el desbordamiento en los cálculos.
El procesador es capaz de ejecutar 16,5 millones de instrucciones por segundo (MIPS) a la velocidad de reloj máxima especificada de 33 MHz, [7] y tiene soporte de hardware para FFT de punto flotante en bloque . [7] Utiliza niveles TTL de 5 V y consume aproximadamente 0,4 W. [7]
En la mayoría de los diseños, el 56000 se dedica a una sola tarea, ya que el procesamiento de señales digitales mediante hardware especial se realiza principalmente en tiempo real y no permite interrupciones . Para tareas menos exigentes que no son críticas en términos de tiempo, los diseñadores normalmente utilizan una CPU o MCU independiente .
El 56000 puede ejecutar una transformada rápida de Fourier (FFT) compleja de 1024 puntos en 59.898 ciclos de reloj, lo que lleva 1,8 ms a 33 MHz, [7] o una velocidad de poco más de 555 operaciones por segundo, lo que permite tanto la decodificación como la codificación en tiempo real de códecs de audio razonablemente avanzados como MP3 para fines de grabación directa a disco. [10] [11]
La incorporación de instrucciones SIMD a la mayoría de las CPU de los ordenadores de sobremesa ha hecho que los chips DSP dedicados, como el 56000, hayan desaparecido en parte de algunos campos de aplicación, pero siguen utilizándose ampliamente en comunicaciones y otros usos profesionales. Con este fin, la serie 56800 añadió un microcontrolador completo que creó una solución de "controlador DSP" de un solo chip, mientras que en el 68456, un 68000 con un 56000 incorporado , ocurrió lo contrario .
Un modelo aún bastante extendido del 56000 es la familia 56300 de tercera generación , que comienza con el 56301 [12] , que incluye varios modelos con aplicaciones especiales integradas en hardware y firmware, como lógica de interfaz PCI , procesadores CRC o compresores de audio . Las frecuencias de reloj del núcleo alcanzaban los 250 MHz. [13]
El 56000 proporciona un conjunto completo de herramientas de desarrollo , que incluye un compilador de C , un ensamblador y un simulador de conjuntos de instrucciones . [14] [15] [16]