
Rev. A
|
Page 5 of 72
|
September 2011
Data Address Generators with Zero-Overhead Hardware
Circular Buffer Support
The processor’s two data address generators (DAGs) are used
for indirect addressing and implementing circular data buffers
in hardware. Circular buffers allow efficient programming of
delay lines and other data structures required in digital signal
processing, and are commonly used in digital filters and Fourier
transforms. The two DAGs of the processors contain sufficient
registers to allow the creation of up to 32 circular buffers (16
primary register sets, 16 secondary). The DAGs automatically
handle address pointer wraparound, reduce overhead, increase
performance, and simplify implementation. Circular buffers can
start and end at any memory location.
Flexible Instruction Set
The 48-bit instruction word accommodates a variety of parallel
operations, for concise programming. For example, the
processors can conditionally execute a multiply, an add, and a
subtract in both processing elements while branching and fetch-
ing up to four 32-bit values from memory—all in a single
instruction.
Variable Instruction Set Architecture (VISA)
In addition to supporting the standard 48-bit instructions from
previous SHARC processors, the processors support new
instructions of 16 and 32 bits. This feature, called Variable
Instruction Set Architecture (VISA), drops redundant/unused
bits within the 48-bit instruction to create more efficient and
compact code. The program sequencer supports fetching these
16-bit and 32-bit instructions from both internal and external
SDRAM memory. This support is not extended to the asynchro-
nous memory interface (AMI). Source modules need to be built
using the VISA option, in order to allow code generation tools
to create these more efficient opcodes.
On-Chip Memory
The ADSP-21478 processor contains 3 Mbits of internal RAM
(Table 3) and the ADSP-21479 processor contains 5 Mbits of
internal RAM
(Table 4). Each block can be configured for dif-
ferent combinations of code and data storage. Each memory
block supports single-cycle, independent accesses by the core
processor and I/O processor.
Figure 2. SHARC Core Block Diagram
S
SIMD Core
CACHE
INTERRUPT
5 STAGE
PROGRAM SEQUENCER
PM ADDRESS 32
DM ADDRESS 32
DM DATA 64
PM DATA 64
DAG1
16×32
MRF
80-BIT
ALU
MULTIPLIER
SHIFTER
RF
Rx/Fx
PEx
16×40-BIT
JTAG
DMD/PMD 64
ASTATx
STYKx
ASTATy
STYKy
TIMER
RF
Sx/SFx
PEy
16×40-BIT
MRB
80-BIT
MSB
80-BIT
MSF
80-BIT
FLAG
SYSTEM
I/F
USTAT
4×32-BIT
PX
64-BIT
DAG2
16×32
ALU
MULTIPLIER
SHIFTER
DATA
SWAP
PM ADDRESS 24
PM DATA 48