DSP Processors Engr. Naveed Khan Baloch
DSP Processors Engr. Naveed Khan Baloch
DSP Processors Engr. Naveed Khan Baloch
Definition
A digital signal processor (DSP) is a specialized
DSP Applications
Audio
Coding, Decoding, Surround-sound
Communication
Scrambling, Cellular phones, software radios
Control
Robotics, Disk drive control, motor control
Medical
Diagnostics equipment, hearing aids
Defense
Radar and sonar processing, missile guidance
4
Reprogrammable
Cost Effective
Faster computation
Because of specialized Hardware for DSP application
Fast Multipliers
Originally, microprocessors implemented multiplications by a
11
Circular Buffering
The process by which the Data Address Generator (DAG)
12
Data Format
Fixed point and floating point processors.
Use of Accumulator to reduce the overflow.
13
Assignment # 2
Highlight the difference between the Architecture of
14
Zero-Overhead Looping
Special loop or repeat instruction is provided which allows
the programmer to implement a for-next loop without
expending any clock cycles for updating and testing the
loop counter or branching back to the top of the loop. This
feature is often referred to as zero-overhead looping.
15
Streamlined I/O
To allow low-cost, high-performance input and output,
16
DSP programs
Highly Specialized
Complicated
Irregular
Use Assembly instead of C for maximum benefit
17
SIMD
SIMD, or single-instruction, multiple-data, is not a class
Outline
Blackfin Family Overview
The Blackfin Core
Arithmetic operations
Data fetching
Sequencing
The Blackfin Bus Architecture and Memory
Modified Harvard architecture
Hierarchical memory structure
Flexible memory management
Additional Blackfin Core Features
DMA
Dynamic power management
On-chip debug support
19
20
Blackfin Processors
All Blackfin processors combine extensive DSP capability with
high end MCU functions on the same core.
Creates a highly efficient and cost-effective solution.
A single software development tool chain
All Blackfin processors are based on the same core architecture.
Once you understand one Blackfin processor, you can easily migrate
from one family member to another.
Code compatible across family members.
Processors vary in clock speed, amount of on-chip memory,
peripheral suite, package types and sizes, power, and price.
Large selection lets you optimize your choice of a Blackfin processor for your application.
21
23
Blackfin Architecture
What does it mean for the developer?
Combining controller and DSP capabilities into a single core, along with rich I/O, enables
24
Features
Controller
L1 memory space for stack and heap
Dedicated stack and frame pointers
Byte addressability
Simple bit-level manipulation
DSP
Fast, flexible arithmetic computational units
Unconstrained data flow to/from computational units
Extended precision and dynamic range
Efficient sequencing
Efficient I/O processing
The DSP aspect of the Blackfin core is optimized to perform FFTsand convolutions
25
26
27
Addressing unit
Supports dual data fetch
Sequencer
Efficient program flow control
Register files
Data
Addressing
28
29
Dual 16 x 16 multiplier
Performs dual MACs(multiply-accumulates) when used with ALUs
Barrel shifter
Performs shifts, rotates, bit operations
30
31
Data Registers
There are 8x 32-bit registers in the data register file.
Used to hold 32-bit vales or packed 16-bit
32
33
34
35
Barrel Shifter
Enable shifting or rotating any number of bits within a 16-/32-/40-bit register in
a single cycle
Perform individual bit operations on 32-bit data register contents
BITSET, BITCLR, BITTGL, BITTST
Field Extract and Deposit instructions
Extract or insert a field of bits out of or into a 32-bit data register
36
37
operations.
Quad 8-bit add/subtract
Quad 8-bit average
SAA (Subtract-Absolute-Accumulate) instruction
A quad 8-bit ALU instruction takes one cycle to complete.
38
39
independent 32-bit wide addresses that can reach anywhere within the Blackfin
memory space.
Up to two fetches can occur at the same time.
40
41
Address Registers
There are 6x general-purpose Pointer Registers.
Used for GP 8-/16-/32-bit fetches
from memory
There are four sets of registers used for DSP-style data accesses.
Used for 16-/32-bit DSP data fetches such as dual data fetch, circular buffer
42
43
Addressing
Addressing Unit supports:
Addressing only
With specified Pointer or Index Register
Provide address and post modify
Add an offset after the fetch is done
Circular buffering supported with this method
Provide address with an offset
Add an offset before the fetch, but no pointer update
Update address only
Modify address with reverse carry add
All addressing is Register Indirect.
44
Addressing
Index Registers I0-I3 (32-/16-bit accesses)
Pointer Registers P0P5 (32-/16-/8-bit accesses)
Stack and Frame Pointer Registers (32-bit accesses)
All addresses are Byte addresses.
Ordering is Little Endian.
Addresses must be aligned for the word size being fetched.
i.e., 32-bit fetches from addresses that are a multiple of four
45
bytes)
Modify value M = 16 (4 elements *4-bytes/element)
Example memory access:R1 = [I0 ++ M2];
46
47
The Sequencer
The sequencers function is to generate addresses for fetching instructions.
Uses a variety of registers to select the next address
execution pipeline
Handles events
Interrupts and exceptions
Conditional execution
48