02 Architecture of Arm
02 Architecture of Arm
ARCHITECTURE OF
DIGITAL SIGNAL
PROCESSORS
Our definition:
digital signal processor (DSP)
is a chipset specialized in optimal processing of digital signal
samples, performing repeated operations on each sample.
Harvard(dual
Harvard Architecture Architecture
memory) (dual memory)
Program Program
PM address busPM address bus
Memory DM address bus DM address
Data bus
Memory Memory M
CPU CPU
instructions instructions
only PM data bus PM data bus
only DM data bus DMdata
data bus
only d
CPU
PM Data DM Data
PM address bus Address Address DM address bus
Program Generator Generator Data
Memory Memory
Data
Registers I/O
Controller
Multiplier (DMA)
ALU
Przetwarzanie niepotokowe
Clock cycle 1 2 3 4 5 6 7 8 9 10
Instr. 1 F1 D1 E1 A1 S1
Instr. 2 F2 D2 E2 A2 S2
Pipelining
Przetwarzanie potokowe
Clock cycle 1 2 3 4 5 6 7 8 9 10
Instr. 1 F1 D1 E1 A1 S1
Instr. 2 F2 D2 E2 A2 S2
Instr. 3 F3 D3 E3 A3 S3
Instr. 4 F4 D4 E4 A4 S4
Instr. 5 F5 D5 E5 A5 S5
Instr. 6 F6 D6 E6 A6 S6
Linear buffer
b2 b6 x5 x1 x6 x2 x5 x9
b3 b5 x4 x2 x5 x3 x4 x2
b4 x3 x4 x3
Circular addressing
13 14 10 11 12 10 11 12 13 14
15 13 14 15 11 12 15 11 12 13 14 15
16 13 14 15 16 12 16 12 13 14 15 16
17 13 14 15 16 17 17 13 14 15 16 17
18 18 14 15 16 17 18 14 15 16 17 18
19 18 19 15 16 17 19 15 16 17 18 19
Circular addressing
Standard CPU:
Without vectorization:
MEMORY
{
PAGE 0: /* ---- Unified Program/Data Address Space ---- */
In C programs:
▪ Globally declared variables (in main code, outside functions)
and static variables – in .bss.
▪ Local variables, declared inside functions (including main)
– in .stack.
▪ Dynamically created variables (with malloc) – in.sysmem.
▪ Constants (e.g. filter coefficients) – in .const.
Practical implications:
▪ do not declare large buffers inside functions
– the stack is small, and it may overflow
▪ constant data, such as filter coefficients, should be declared
as const.
Stack overflow
Large buffer
allocated on
the stack
Used stack
Free stack
Overflow!
Used data memory
CPU
PM Data DM Data
PM address bus Address Address DM address bus
Program Generator Generator Data
Memory Memory
Data
Registers I/O
Controller
Multiplier (DMA)
ALU