A digital signal processor (DSP) employs a variable-length instruction set.
A portion of the variable-length instructions may be stored in adjacent
locations within memory space with the beginning and ending of
instructions occurring across memory word boundaries. The instructions may
contain variable numbers of instruction fragments. Each instruction
fragment causes a particular operation, or operations, to be performed
allowing multiple operations during each clock cycle. The DSP includes
multiple data buses, and in particular three data buses. The DSP may also
use a register bank that has registers accessible by at least two
processing units, allowing multiple operations to be performed on a
particular set of data by the multiple processing units, without reading
and writing the data to and from a memory. an instruction fetch unit that
receives instructions of variable length stored in an instruction memory.
An instruction memory may advantageously be separate from the three data
memories. An instruction decoder decodes the instructions from the
instruction memory and generates control signals that cause data to be
exchanged between the various registers, data memories, and functional
units, allowing multiple operations to be performed during each clock
cycle.