The Motorola DSP56000 (aka 56K) is a family of digital signal processor (DSP) chips produced by Motorola Semiconductor (now known as Freescale Semiconductor) starting in 1986 and is still being produced in more advanced models in the 2000s. The 56k series was quite popular for a time in a number of computers, including the NeXT, Atari Falcon (56001), and SGI Indigo workstations. Upgraded 56k versions are still used today[update] in audio gear, radars, communications devices (like mobile phones) and various other embedded DSP applications. The 56000 was also used as the basis for the updated 96000, which was not commercially successful.
The DSP56000 uses fixed-point arithmetic, with 24-bit program words and 24-bit data words. It includes two 24-bit registers, which can also be referred to as a single 48-bit register. It also includes two 56-bit accumulators, each with an 8-bit "extension" (aka headroom); otherwise, the accumulators are similar to the other 24/48-bit registers. Being a Modified Harvard architecture processor, the 56k has three memory spaces+buses (and on-chip memory banks in some of the models): a program memory space/bus and two data memory space/bus.
24 bits were selected as the basic word length because it gave the system a reasonable number range and precision for processing audio (sound), the 56000's main concern. 24 bits correspond to a large 144 dB dynamic range, sufficient in the 1980s when analog-to-digital converters (ADCs) and digital-to-analog converters (DACs) rarely exceeded 20 bits. One example is ADSL applications, where filters typically require 20 bits of accuracy. The leftmost four bits are considered ample headroom for calculations.
The processor is capable of carrying out 16.5 Million Instructions Per Second (MIPS) at the maximum specified clock speed of 33 MHz., and has hardware support for block-floating point FFT. It uses 5 V TTL levels and consumes approximately 0.4 W.
Applications and variants
In most designs the 56000 is dedicated to one single task, because digital signal processing using special hardware is mostly real-time and does not allow any interruption. For somewhat more mildly demanding tasks which are not time-critical, or more of a simple "if-then" type, designers normally use a separate CPU or MCU.
The 56000 can execute a 1024-point complex Fast Fourier transform (FFT) in 59 898 clocks which takes 1.8 ms at 33 MHz, or a rate of just over 555 operations per second, allowing both realtime decoding and encoding of/to reasonably advanced audio codecs such as MP3 for direct-to-disc recording purposes.
The addition of SIMD instructions to most desktop computer CPUs have meant that dedicated DSP chips like the 56000 have partly retreated from some application fields, but they continue to be used widely in communications and other professional uses. To this end the 56800 series added a complete MCU which created a single-chip "DSPcontroller" solution, while the opposite occurred in the 68456—a 68000 with a 56000 on it.
A quite prevalent recent model of the 56000 is the third generation 563xx family, which features several models with special applications hardware built-in, like PCI interface logic, CRC processors, or audio companders.
- The Motorola DSP56000 Digital Signal Processor IEEE
- 24-BIT. DIGITAL SIGNAL PROCESSOR. FAMILY
- Fractional and Integer Arithmetic using the DSP56000 Family
- Programmable DSP architectures
- Motorola DSP56000 Family Optimizing C Compiler User's Manual
- atariforge.org - Atari Falcon030 Schematic Rev A, 1992-06-28
- freescale.com - Product Preview, 24-BIT DIGITAL SIGNAL PROCESSOR, DSP56001A, 1997
- Scot Hacker. "How MP3 Works: Inside the Codec". MP3: The Definitive Guide. O'Reilly. Retrieved 16 April 2013.
- Mike Adana. "Development of MP3". Guide for MP3 blog. Retrieved 16 April 2013.
- Freescale Digital Signal Processors
- A56 freeware assembler for the 56000 architecture
- dev-docs.atariforge.org - Atari documentation archive
|List of Motorola digital signal processors (DSPs)|
Motorola DSP560XX (24-bit) | Motorola DSP566XX (16-bit) | Motorola DSP563XX (16/24-bit) | DSP568XX (DSPcontroller) | Motorola DSP96XXX (32-bit)