![](_borders/Spacer104.gif)
| |
VFX Article, Appendix B
B. The ADSP-2105
The Analog Devices ADSP-2105 is the engine of the VFX processor. It
is curious how a company named Analog Devices, a niche manufacturer of analog signal
processing and mixed signal IC's became a leader in digital Signal processing. It is
actually an example of how a healthy company grows with its market and evolves to serve
it. Analog Devices was always very strong in analog microelectronics and hybrids,
developing many of the industry standards that are now second sourced by other
manufacturers. As the market changed and microprocessors became ubiquitous, they developed
the interface IC'S for use with them. Microprocessors didn't challenge their core market
but they expanded it. The development of DSP IC's did present a challenge to their market
since their strength was Analog Signal processing. Strictly Analog signal processing is,
in many cases as in the VFX, being replaced by DSP. Analog Devices thus moved into the DSP
market starting with MAC's and then DSP microprocessors (ADSP-2100) and finally, the DSP
microcomputers such as the ADSP-2105. It says a lot for the marketing skills, engineering
competence and management of Analog Devices that they have become leaders in the DSP field
in such a short time. Of course TI has the largest market share, they invented the market,
and they are a vast electronics company with tremendous resources. TI, however, must be
feeling the pinch of Analog Device's foray into DSP and certainly the users benefit. The
Analog Devices ADSP-2105 DSP microcomputer is arguably the best new DSP IC since TI
invented DSP in 1982. It offers some very exciting design features that equal many more
expensive DSP's.
First of all the 2105 is a second generation DSP microcomputer. It
has significant architectural improvements over earlier generations. The 2105 has built in
data memory (.5k words x 16 bits) and program memory (1k words x 24 bits) so it is really
a DSP microcomputer and not a microprocessor. Both of these memory banks are implemented
in fast static RAM. This allows the program memory to be loaded using the resident boot
memory loader from a slow PROM or EPROM (250 nsec access) and keeps high speed data
transfer inside the chip to reduce EMI and board layout requirements. The program and data
memory can be easily expanded off chip when the internal data memory is not sufficient for
the algorithms as we have done with the VFX processor. The chip has resources built in to
simplify external memory hardware interfacing including separate selects for Program
Memory, Data Memory and Boot memory and a programmable wait state generator to allow slow
external memories.
The 2105 incorporates several peripheral devices and their
associated interrupts. There is a built in 16 bit timer with programmable prescaler and
interrupts. A high speed synchronous serial interface (SPORT1) which can interface to
u-law and A-law CODECs using hardware companding as well as digital audio oriented D/A and
A/D converters. Additionally, the serial port can serve to connect multiple 2105's
together in parallel processing applications. The ADSP-2101 has a second identical serial
port SPORT0.
The ADSP-2101 family, of which the 2105 is a member, is not only
very high performance by virtue of its on chip resources but by it instruction set as
well. With a 100 nsec cycle time, multiple operations per cycle and zero-overhead looping
the numerical performance of the chip is very respectable. In addition, the 1.0 micron
CMOS processing keeps the power dissipation of the 2105 to less than 1 Watt with a
powerdown mode reducing that further to a mere 80 mW.
The ADSP-2105 has a large family tree that has several upward and
downward compatible parts. The 2105 is the least expensive member of the tree with a flat
unit price up to 100,000 pieces. The 2105 is almost a loss leader and allows individual
hobbyists and price sensitive consumer electronics to implement 2105 designs. The 2105 has
several more powerful brothers that are upwardly compatible with it. The ADSP-2101 DSP
microcomputer has twice the on chip memory of the 2105 and a second serial interface. The
2106 is the same as the 2105 except it has masked ROM instead of RAM Program Data Memory.
The 2102 is the same as the 2101 except it has masked ROM instead of RAM Program Data
Memory. There are additional chips in the family with built in A/D converters and D/A
converters.
The ADSP-2105 incorporates three execution units, 1) Barrel shifter,
2) Arithmetic Logic Unit (ALU) and 3) Multiplier Accumulator (MAC). These three units are
optimized to their specific function and are therefore very fast, completing any
instruction in one cycle. Access to the three execution units is made via various
registers associated with each execution unit. For example, the ALU has the following 16
bit registers: AX0, AX1, AY0, AY1, AR and AF The MAC: MX0, MX1, MY0, MY1, MR0, MR1, MR2
and MF The Shifter: SB, SI, SE, SR1, SR0 In addition the 2105 incorporates two Data
Address Generators (DAGs), one of which can perform bit reversing which is required by
certain FFT algorithms. One DAG is used for accessing Program Memory Data (PMD) and the
other for Data Memory Data (DMD). The DAG utilize a set of 3 registers to control indirect
addressing and circular buffers. These are the Index registers (I0-I7), the Modify
registers (M0-M7) and the Length (L0-L7) registers. For example, by setting up the
registers so that I0 has the starting address, M0 has a value of 1 and L0 is zero, blocks
of data can be moved from one buffer to another with very little programming.
DATA MOVE PROGRAM
START: |
I0=buffer#1; |
{Address of buffer#1 in DMD} |
|
M0=1; |
{Post modify value} |
|
I4=buffer#2; |
{Address of buffer#2 in PMD} |
|
M0=1; |
{Post modify value} |
|
CNTR=2048; |
{Number of words in buffer} |
|
DO MOVE_BUFFER UNTIL CE; |
{Do loop} |
|
AR=PM(I4,M4); |
|
|
DM(I0,M0)=AR; |
|
|
MOV_BUFFER: |
{End of the loop} |
The L registers are used to handle circular buffers whereby the DAG resets the Index
register to the start of the buffer on the next instruction after it reaches the end of
the buffer For any microcomputer, including a DSP, to be successful it must have readily
available low cost software tools. Analog Devices has supplied the ADSP-2105 with quality
tools at a reasonable price. The assembly language is algebraic and straight forward.
For example to add two 16 bit numbers:
AY0=1200; {Store one number in AY0 register)}
AX0=200; {Store the second number in AX) register}
AR=AX0+AY0; {The result is stored in register AR}
There is a powerful PC based software simulator that allows software debugging without an
expensive In Circuit Emulator (ICE), which is available of course. The 2105 has a capable
interrupt handling capability. The interrupts can be individually masked or enabled, edge
triggered or level sensitive. Interrupts are vectored to the following program memory
locations: IRQ2 0004h SPORT0(Transmit) 0008h SPORT0(Receive) 000Ch SPORT1(Transmit) 0010h
SPORT2(Receive) 0014h TIMER 0018h A second mirror set of Data registers can be enabled to
facilitate fast context switching during interrupt servicing.
The VFX processor was developed using the Analog Devices ADSP-2101
EZ-Lab Kit. The Analog Devices EZ-Lab kit includes an EZ-LAB demo board, an ADSP-2101/5
family Assembler, Linker and other miscellaneous development software, including the
essential Simulator. With this package you can design and debug software for certain
applications with excellent success at minimal cost. Of course an In Circuit Emulator
(ICE) speed up the development process albeit at a much higher price, the EZ-Lab kit sells
for a little less than $500 dollars, an emulator is over $2000 dollars. For people with
limited capital resources and small to medium complexity algorithms, the kit is great.
Next Chapter
Previous Chapter
VFX Table of Contents
|