Professional Documents
Culture Documents
Analog Devices Incorporated Blackfin: CS 433 Prof. Luddy Harrison Processor Presentation Series
Analog Devices Incorporated Blackfin: CS 433 Prof. Luddy Harrison Processor Presentation Series
These slide presentations were prepared by students of CS433 at the University of Illinois at Urbana-Champaign All the drawings and figures in these slides were drawn by the students. Some drawings are based on figures in the manufacturers documentation for the processor, but none are electronic copies of such drawings You are free to use these slides provided that you leave the credits and copyright notices intact
Copyright 2005 University of Illinois 2
Presentation Outline
z z z z z z z z
Introduction Architecture Overview Processor Core Signal Chain Instruction Set Blackfin Platforms Targeted Application References
Copyright 2005 University of Illinois 3
Introduction
z z z
New type of 16-32-bit embedded processor Combine RISC MCU and DSP functionalities Specifically designed for the computational demands and power constraints for embedded audio, video and communications applications Micro Signal Architecture (MSA) based 32-bit RISClike instruction set and dual 16-bit multiply accumulate (MAC) signal processing and 8-bit video processing Performs equally well in both signal processing and control processing applications
Copyright 2005 University of Illinois 4
Introduction
z
Advanced memory management that supports memory-protected and non memory-protected embedded operating systems Supported by ADI's CROSSCORE development tool chain, which includes the VisualDSP++ Integrated Development and Debugging Environment (IDDE), and by Green Hills' MULTI IDE tool suite
Introduction
z
ADSP-BF535 was the first released followed in March 2003 by three pin-compatible devices, the ADSP-BF531, ADSP-BF532, and ADSP-BF533 In January of 2005, Analog Devices introduced three Blackfin processors with embedded connectivity: ADSP-BF536, ADSP-BF537, and ADSP-BF534 dual-core symmetric multiprocessor, the ADSPBF561
Copyright 2005 University of Illinois 6
Max Clock Speed (MHz) Memory (Kbytes) External Memory (bus) Parallel Peripheral Interface
Yes Yes
Yes Yes
Package Size
260 PBGA
No
Yes
Yes
Yes
Yes
Yes
Yes
Yes
10
Unit V V V V V V V
11
Electrical Characteristics
Parameters
VOH VOL IIH IIHP IIL IOZH High Level Output Voltage Low Level Output Voltage High Level Input Current High Level Input Current JTAG Low Level Input Current Three-State Leakage Current
Test Condition
@ VDDEXT = 3.0V, IOH = 0.5 mA @ VDDEXT = 3.0V, IOL = 2.0 mA @ VDDEXT = maximum, VIN = VDD maximum @ VDDEXT = maximum, VIN = VDD maximum @ VDDEXT = maximum, VIN = 0 V @ VDDEXT = maximum, VIN = VDD maximum @ VDDEXT = maximum, VIN = 0 V fIN = 1 MHz, TAMBIENT = 25C, VIN = 2.5 V
Min
2.4
Max Unit
V 0.4 10 20 10 10 V uA uA uA uA
IOZL IIN
10 8
uA pF
12
Pin Descriptions
Pin Name ADDR191 DATA150 I/O O I/O Function Driver Type Address Bus for Async/Sync Access A2 Data Bus for Async/Sync Access Byte Enables/Data Masks for Async/Sync Access Bus Request Bus Grant Bus Grant Hang Bank Select Hardware Ready Control Output Enable
Copyright 2005 University of Illinois
A2 A2 A2 A2 A2 A2
I O O O I O
A2
13
Pin Descriptions
Pin Name ARE AWE SRAS SCAS SWE SCKE CLKOUT SA10 SMS
CS433 Prof. Luddy Harrison
I/O O O O O O O O O O
Function Read Enable Write Enable Row Address Strobe Column Address Strobe Write Enable Clock Enable Clock Output A10 Pin Bank Select
Copyright 2005 University of Illinois
Driver Type A2 A2 A2 A2 A2 A2 B4 A2 A2
14
Pin Descriptions
Pin Name TMR0 TMR1/PPI_FS1 TMR2/PPI_FS2 PF0/SPISS PF1/SPISEL1/TM RCLK PF2/SPISEL2 I/O I/O I/O I/O I/O I/O Function Timer 0 Timer 1/PPI Frame Sync1 Timer 2/PPI Frame Sync2 Programmable Flag 0/SPI Slave Select Input Programmable Flag 1/SPI Slave Select Enable 1/External Timer Reference Programmable Flag 2/SPI Slave Select Enable 2 Programmable Flag 3/SPI Slave Select Enable 3/PPI Frame Sync 3
Copyright 2005 University of Illinois
Driver Type C5 C5 C5 C5 C5
I/O
C5 C5
15
Pin Descriptions
Pin Name I/O Function Programmable Flag 4/SPI Slave Select Enable 4 / PPI 15 Programmable Flag 5/SPI Slave Select Enable 5 / PPI 14 Programmable Flag 6/SPI Slave Select Enable 6 / PPI 13 Programmable Flag 7/SPI Slave Select Enable 7 / PPI 12 Programmable Flag 8/PPI 11 Programmable Flag 9/PPI 10 Programmable Flag 10/PPI 9
Copyright 2005 University of Illinois
Driver Type C5 C5 C5 C5 C5 C5 C5
16
PF4/SPISEL4/PPI I/O 15 PF5/SPISEL5/PPI I/O 14 PF6/SPISEL6/PPI I/O 13 PF7/SPISEL7/PPI I/O 12 PF8/PPI11 PF9/PPI10 PF10/PPI9
CS433 Prof. Luddy Harrison
Pin Descriptions
Pin Name PF11/PPI8 PF12/PPI7 PF13/PPI6 PF14/PPI5 PF15/PPI4 PPI30 PPI_CLK RSCLK0 RFS0 DR0PRI
CS433 Prof. Luddy Harrison
Function Programmable Flag 11/PPI 8 Programmable Flag 12/PPI 7 Programmable Flag 13/PPI 6 Programmable Flag 14/PPI 5 Programmable Flag 15/PPI 4 PPI30 PPI Clock SPORT0 Receive Serial Clock SPORT0 Receive Frame Sync SPORT0 Receive Data Primary
Copyright 2005 University of Illinois
Driver Type C5 C5 C5 C5 C5 C5 C5 D6 C5
17
Pin Descriptions
Pin Name DR0SEC TSCLK0 TFS0 DT0PRI DT0SEC RSCLK1 RFS1 DR1PRI DR1SEC TSCLK1
CS433 Prof. Luddy Harrison
Function SPORT0 Receive Data Secondary SPORT0 Transmit Serial Clock SPORT0 Transmit Frame Sync SPORT0 Transmit Data Primary SPORT0 Transmit Data Secondary SPORT1 Receive Serial Clock SPORT1 Receive Frame Sync SPORT1 Receive Data Primary SPORT1 Receive Data Secondary SPORT1 Transmit Serial Clock
Copyright 2005 University of Illinois
Driver Type
D6 C5 C5 C5 D6 C5
D6
18
Pin Descriptions
Pin Name TFS1 DT1PRI DT1SEC MOSI MISO SCK RX TX RTXI RTXO
CS433 Prof. Luddy Harrison
Function SPORT1 Transmit Frame Sync SPORT1 Transmit Data Primary SPORT1 Transmit Data Secondary Master Out Slave In Master In Slave Out SPI Clock UART Receive UART Transmit RTC Crystal Input RTC Crystal Output
Copyright 2005 University of Illinois
Driver Type C5 C5 C5 C5 C5 D6
C5
19
Pin Descriptions
Pin Name TCK TDO TDI TMS TRST EMU CLKIN XTAL RESET NMI
CS433 Prof. Luddy Harrison
I/O I O I I I O I O I I
Function JTAG Clock JTAG Serial Data Out JTAG Serial Data In JTAG Mode Select JTAG Reset Emulation Output Clock/Crystal Input Crystal Output Reset Nonmaskable Interrupt
Copyright 2005 University of Illinois
Driver Type
C5
C5
20
Pin Descriptions
Pin Name BMODE10 VROUT10 VDDEXT VDDINT VDDRTC GND I/O I O P P P G Function Boot Mode Strap External FET Drive I/O Power Supply Core Power Supply Real-Time Clock Power Supply External Ground Driver Type
21
Introduction Packaging
z
z z
Improved electrical performance due to shorter distance between the chip and the solder balls Improved thermal performance by use of thermal vias, or heat dissipation through power and ground planes incorporated in the substrate Occupies less board real estate (less package area per I/O) Significantly reduced handling-related lead damages due to use of solder balls instead of metal leads. This also reduces rework prior to board level attachment When reflow attached to boards, the solder balls self align leading to higher manufacturing yields
22
Introduction Packaging
z
MiniBGA Package
z
10x10 mm MiniBGA, approximately 50% smaller than most other DSPs 144-ball chip array package (CAP) footprint, just one square centimeter Height is just 1.25 millimeters
23
Architecture Overview
Single Core BlackFin 16/32 bit Processor
System Control Block
JTAG Voltage Event Watchdog Memory Real Time Regulator Controller Timer DMA Clock PLL
High Speed IO
16-bit External Bus Interface
Blackfin Core
80KB 64KB INST DATA SRAM/CACHE System Interface Unit PPI/GPIO
L1 Memory
SPORT0
SPORT1
Timer (3)
SPI
UART IrDA
Peripheral Blocks
24
Architecture Overview
z
10-stage RISC MCU/DSP pipeline mixed 16-/32-bit Instruction Set Architecture fully SIMD compliant instructions for accelerated video and image processing full signal processing / analytical capabilities efficient RISC MCU control tasking capabilities multiple, independent DMA controllers automated data transfers with minimal overhead from the processor core
25
Architecture Overview
z
Video Instructions
z z z
native support for 8-bit data instructions specifically defined to enhance performance in video processing applications allows OEMs to adapt to evolving standards and new functional requirements without hardware change powerful and flexible hierarchical memory architecture superior code density variety of microcontroller-style peripherals great deal of design flexibility while minimizing end system costs
26
Architecture Overview
z
Hierarchical Memory
L1 Instruction SRAM & Cache BlackFin Processor L2 Data & Instruction SRAM (some model)
Scratchpad SRAM
27
Architecture Overview
z
Hierarchical Memory
z z
both Level 1 (L1) and Level 2 (L2) memory blocks L1 connected directly to the processor core, runs at full system clock speed L2 offers slightly reduced performance, but still faster than off-chip memory L1 memory can be configured as SRAM, cache, or a combination of both support a full Real Time Operating System with an isolated and secure environment for robust systems and applications
Copyright 2005 University of Illinois 28
Architecture Overview
z
Addressing
z
two address generation units that can each generate an independent address in each cycle supports a variety of addressing modes, including: register indirect, register-indirect with post increment or postdecrement, register indirect indexed addressing with a short or long immediate offset, register-indirect addressing with pre-decrement for stack pushes, and register-indirect addressing with post-increment for stack pops.
29
Architecture Overview
z
Addressing
z
can also perform some addition, subtraction, and shifting operations on the address registers first-generation ADSP-BF535 pipeline has eight stages second-generation ADSP-BF5xx pipeline has ten stages feature fully interlocked pipelines static branch prediction for all conditional branches with programmer (or compiler) specify the prediction for each branch
Pipelines
z z z z
30
Architecture Overview
z
Pipelines
z z
instructions generally execute in one cycle in the absence of memory access related delays and pipeline stalls jump, call, and most return instructions require four or more cycles algebraic syntax highly orthogonal uses both 16- and 32-bit instructions arithmetic instructions can take operands from the data registers, the pointer registers, the accumulators, or immediate operands also support SIMD operations
Instruction Set
z z z
31
Architecture Overview
z
Instruction Set
z z z z
supports multi-length instruction encoding control-type instructions are encoded as compact 16-bit words mathematically intensive signal processing instructions encoded as 32-bit values intermix and link 16-bit control instructions with 32-bit signal processing instructions into 64-bit groups to maximize memory packing code density comparable to industry-leading RISC processors.
32
Architecture Overview
z
gated clock core design that selectively powers down functional units on an instruction-by-instruction basis support multiple power-down modes for periods where little or no CPU activity is required support a self contained dynamic power management scheme whereby the operating frequency AND voltage can be independently manipulated to meet the performance requirements of the algorithm currently being executed DMA controllers general-purpose I/O pins real-time clocks
Copyright 2005 University of Illinois 33
Peripherals
z z z
Architecture Overview
z
Peripherals
z z z z z
timers with pulse width modulation (PWM) and pulse measurement capability watchdog timer serial ports UART ports Serial Peripheral Interface (SPI) ports utilized in many applications previously requiring both a high performance signal processor and a separate efficient control processor
Easy to Use
z
34
Architecture Overview
z
Major Benefits
z
High-performance signal processing and efficient control processing capability enabling a variety of new markets and applications Dynamic Power Management (DPM) enabling the system designer to specifically tailor the device power consumption profile to the end system requirements Easy to use mixed 16-/32-bit Instruction Set Architecture and development tool suite ensuring that product development time is minimized Low cost, priced starting at $4.95/each in 10K unit
35
Architecture Overview
Dual Core BlackFin 16/32 bit Processor
IRQ CONTROL WATCHDOG TIMER VOLTAGE REGULATOR L1 Instruction Memory L1 Data Memory L1 Instruction Memory L1 Data Memory L2 SRAM 128 KB IMDMA Controller
Blackfin Core
Blackfin Core
SPI
MMU
MMU
SPORT0
SPORT1
Core System /Bus Interface DMA Controller Boot ROM External Port Flash/SDRAM Control
CS433 Prof. Luddy Harrison
GPIO
DMA Controller
TIMERS
PPI0
PPI1
36
Architecture Overview
Dual Core BlackFin 16/32 bit Processor
z
employs discrete and often different tasks that run on each of the cores one core runs the operating system or kernel, the other core is dedicated to the applications highintensity processing functions ability to segment these types of functions allows a parallel design process, eliminating critical path dependencies in the project
37
Processor Core
SP FP P5 P4 P3 P2 P1 P0 I3 L3 I2 L2 I1 L1 I0 L0 B3 B2 B1 B0 M3 M2 M1 M0 DAG0 DAG1 SEQUENCER
ACC0
ACC1
38
Processor Core
z
z z z z
Data register file Data types include 8-, 16-, or 32-bit signed or unsigned integer and 16- or 32-bit signed fractional 32-bit reads AND two 32-bit writes Address register file Stack pointer Frame pointer
Copyright 2005 University of Illinois 39
Processor Core
z
Two 16-bit MACs Two 40-bit ALUs Four 8-bit video ALUs Single barrel shifter
40
Processor Core
z
Memory fetches Index, length, base, and modify registers Circular buffering
41
Processor Core
z
Conditional jumps and subroutine calls Nested zero-overhead looping Code density
42
GPS RF
Bluetooth RF
STEREO ADC/DAC
Power Amplifier
BOOT FLASH
CS433 Prof. Luddy Harrison
SDRAM
43
BOOT FLASH
44
Processor
Headphone Amplifier
CD Audio Drive
DIGITAL OUTPUT
Boot Flash
45
MIC AMP
DIGITAL OUTPUT
MIC AMP
VOICEBAND ADC
POWER AMPLIFIER
BOOT FLASH
46
CCD Sensor
CCD/AFE Processor
Microphone
Audio AMP
Audio Codec
Video Compression
Memory
Speaker
Audio AMP
Digital Pot
Interface
Power Management
Signal Control
Supervisory
Thermal Management
47
AMP
LCD
Gamma Correction
CCD Sensor
Application Processor
Memory Int/Ext
Video Codec
Output to PC/PCMCIA
Video Compression
Video Decompression
Video Encoder
AMP
Digital Pot
Interface
Power Management
Signal Control
Supervisory
AMP
Display
Camera
AMP
Video Switch
Application Processor
Camera
AMP
Storage Medium
Camera
AMP
Digital Pot
Interface
Power Management
Signal Control
Supervisory
Thermal Management
49
Control Input
Application Processor
AMP
LCD Device
GAMMA Correction
Sensor Motor
Motor Control
Digital Pot
Interface
Power Management
Signal Control
Supervisory
Thermal Management
50
Seamlessly integrated DSP/CPU features are optimized for both 8-bit and 16-bit operations. A multi-issue load/store modified Harvard architecture, which supports two 16-bit MAC or four 8-bit ALU + two load/store + two pointer updates per cycle. All registers, I/O, and memory are mapped into a unified 4G byte memory space, providing a simplified programming model.
51
Microcontroller features, such as arbitrary bit and bit-field manipulation, insertion, and extraction; integer operations on 8-, 16-, and 32-bit data types; and separate user and supervisor stack pointers. Code density enhancements, which include intermixing of 16- and 32-bit instructions (no mode switching, no code segregation). Frequently used instructions are encoded in 16 bits.
52
Jump
z z z z z
JUMP (destination_indirect) JUMP (PC + offset) JUMP offset JUMP.S offset JUMP.L offset IF CC JUMP destination IF !CC JUMP destination
Copyright 2005 University of Illinois 53
IF CC JUMP
z z
Call
z z z
CALL (destination_indirect) CALL (PC + offset) CALL offset RTS ; // Return from Subroutine (a) RTI ; // Return from Interrupt (a) RTX ; // Return from Exception (a) RTN ; // Return from NMI (a) RTE ; // Return from Emulation (a)
Copyright 2005 University of Illinois 54
LSETUP, LOOP
z
LOOP loop_name loop_counter LOOP_BEGIN loop_name LOOP_END loop_name LSETUP (Begin_Loop, End_Loop)Loop_Counter
55
Load / Store
z
Load / Store
z
Load Immediate
z z
Load / Store
z
Load / Store
z
57
Load / Store
z
Load / Store
z
58
Load / Store
z
Load / Store
z
Store Byte
z
Move
z
Move Register
z
dest_reg = src_reg
59
Move
z
Move Conditional
z z
IF CC dest_reg = src_reg IF ! CC dest_reg = src_reg dest_reg = src_reg (Z) dest_reg = src_reg (X)
60
Move
z
dest_reg_half = src_reg_half dest_reg_half = accumulator (opt_mode) dest_reg = src_reg_byte (Z) dest_reg = src_reg_byte (X)
61
Stack Control
z
--SP (Push)
z
SP++ (Pop)
z
62
Stack Control
z
LINK, UNLINK
z z
LINK uimm18m4 ; /* allocate a stack frame of specified size (b) */ UNLINK ; /* de-allocate the stack frame (b)*/
Compare Data Register z CC = operand_1 == operand_2 z CC = operand_1 < operand_2 z CC = operand_1 <= operand_2 z CC = operand_1 < operand_2 (IU) z CC = operand_1 <= operand_2 (IU)
Copyright 2005 University of Illinois 63
Compare Pointer
z z z z z
CC = operand_1 == operand_2 CC = operand_1 < operand_2 CC = operand_1 <= operand_2 CC = operand_1 < operand_2 (IU) CC = operand_1 <= operand_2 (IU) CC = A0 == A1 CC = A0 < A1 CC = A0 <= A1
Copyright 2005 University of Illinois 64
Compare Accumulator
z z z
Move CC
z z z z z z z z
dest = CC dest |= CC dest &= CC dest ^= CC CC = source CC |= source CC &= source CC ^= source
65
Negate CC
z
CC = ! CC
Logical Operations
z
& (AND)
z
66
Logical Operations
z
| (OR)
z
dest_reg = src_reg_0 | src_reg_1 dest_reg = src_reg_0 ^ src_reg_1 dest_reg = CC = BXORSHIFT ( A0, src_reg ) dest_reg = CC = BXOR ( A0, src_reg ) dest_reg = CC = BXOR ( A0, A1, CC ) A0 = BXORSHIFT ( A0, A1, CC )
Copyright 2005 University of Illinois 67
^ (Exclusive-OR)
z
BXORSHIFT, BXOR
z z z z
Bit Operations
z
BITCLR
z
BITCLR ( register, bit_position ) BITSET ( register, bit_position ) BITTGL ( register, bit_position ) CC = BITTST ( register, bit_position ) CC = ! BITTST ( register, bit_position )
Copyright 2005 University of Illinois 68
BITSET
z
BITTGL
z
BITTST
z z
Bit Operations
z
DEPOSIT
z z
dest_reg = DEPOSIT ( backgnd_reg, foregnd_reg ) dest_reg = DEPOSIT ( backgnd_reg, foregnd_reg ) (X) dest_reg = EXTRACT ( scene_reg, pattern_reg ) (Z) dest_reg = EXTRACT ( scene_reg, pattern_reg ) (X) BITMUX ( source_1, source_0, A0 ) (ASR) BITMUX ( source_1, source_0, A0 ) (ASL)
Copyright 2005 University of Illinois 69
EXTRACT
z z
BITMUX
z z
Bit Operatoins
z
dest_pntr = (dest_pntr + src_reg) << 1 dest_pntr = (dest_pntr + src_reg) << 2 dest_reg = (dest_reg + src_reg) << 1 dest_reg = (dest_reg + src_reg) << 2
70
dest_pntr = adder_pntr + ( src_pntr << 1 ) dest_pntr = adder_pntr + ( src_pntr << 2 ) dest_reg >>>= shift_magnitude dest_reg = src_reg >>> shift_magnitude (opt_sat) dest_reg = src_reg << shift_magnitude (S) accumulator = accumulator >>> shift_magnitude dest_reg = ASHIFT src_reg BY shift_magnitude (opt_sat) accumulator = ASHIFT accumulator BY shift_magnitude
Copyright 2005 University of Illinois 71
Arithmetic Shift
z z z z z z
Logical Shift
z z z z z z z
dest_pntr = src_pntr >> 1 dest_pntr = src_pntr >> 2dest_pntr = src_pntr << 1 dest_pntr = src_pntr << 2dest_reg >>= shift_magnitude dest_reg <<= shift_magnitude dest_reg = src_reg >> shift_magnitude dest_reg = src_reg << shift_magnitude dest_reg = LSHIFT src_reg BY shift_magnitude
72
ROT (Rotate)
z z
Arithmetic Operations
z
ABS
z
Add
z
Arithmetic Operations
z
dest_reg = src_reg_0 + src_reg_1 (RND20) dest_reg = src_reg_0 - src_reg_1 (RND20) dest_reg = src_reg_0 + src_reg_1 (RND12) dest_reg = src_reg_0 - src_reg_1 (RND12) register += constant
Add/Subtract Prescale Up
z z
Add Immediate
z
74
Arithmetic Operations
z
DIVS ( dividend_register, divisor_register ) DIVQ ( dividend_register, divisor_register ) dest_reg = EXPADJ ( sample_register, exponent_register ) dest_reg = MAX ( src_reg_0, src_reg_1 ) dest_reg = MIN ( src_reg_0, src_reg_1 )
Copyright 2005 University of Illinois 75
EXPADJ
z
MAX
z
MIN
z
Arithmetic Operations
z
Modify Decrement
z
dest_reg -= src_reg dest_reg += src_reg dest_reg = ( src_reg_0 += src_reg_1 ) dest_reg = src_reg_0 * src_reg_1 (opt_mode) dest_reg *= multiplier_register
Copyright 2005 University of Illinois 76
Modify Increment
z z
accumulator = src_reg_0 * src_reg_1 (opt_mode) accumulator += src_reg_0 * src_reg_1 (opt_mode) accumulator = src_reg_0 * src_reg_1 (opt_mode)
dest_reg_half = (accumulator = src_reg_0 * src_reg_1) (opt_mode) dest_reg_half = (accumulator += src_reg_0 * src_reg_1) (opt_mode) dest_reg_half = (accumulator = src_reg_0 * src_reg_1) (opt_mode)
Copyright 2005 University of Illinois 77
Arithmetic Operations
z
dest_reg = (accumulator = src_reg_0 * src_reg_1) (opt_mode) dest_reg = (accumulator += src_reg_0 * src_reg_1) (opt_mode) dest_reg = (accumulator = src_reg_0 * src_reg_1) (opt_mode) dest_reg = src_reg dest_accumulator = src_accumulator dest_reg = src_reg (RND)
78
Arithmetic Operations
z
Saturate
z
dest_reg = src_reg (S) dest_reg = SIGNBITS sample_register dest_reg = src_reg_1 - src_reg_2 register -= constant
SIGNBITS
z
Subtract
z
Subtract Immediate
z
79
Idle
z
Core Synchronize
z
System Synchronize
z
80
Disable Interrupts
z
Enable Interrupts
z
81
TESTSET
No Op
z z
NOP MNOP
PREFETCH [ Preg ] ; /* indexed (a) */ PREFETCH [ Preg ++ ] ; /* indexed, post increment (a) */
82
Cache Control
z
FLUSH
z z
FLUSH [ Preg ] ; /* indexed (a) */ FLUSH [ Preg ++ ] ; /* indexed, post increment (a) */ FLUSHINV [ Preg ] ; /* indexed (a) */ FLUSHINV [ Preg ++ ] ; /* indexed, post increment (a) */ IFLUSH [ Preg ] ; /* indexed (a) */ IFLUSH [ Preg ++ ] ; /* indexed, post increment (a) */
Copyright 2005 University of Illinois 83
FLUSHINV
z z
IFLUSH
z z
dest_reg = ALIGN8 ( src_reg_1, src_reg_0 ) dest_reg = ALIGN16 (src_reg_1, src_reg_0 ) dest_reg = ALIGN24 (src_reg_1, src_reg_0 ) DISALGNEXCPT dest_reg = BYTEOP3P ( src_reg_0, src_reg_1 ) (LO) dest_reg = BYTEOP3P ( src_reg_0, src_reg_1 ) (HI)
Copyright 2005 University of Illinois 84
DISALGNEXCPT
z
dest_reg = BYTEOP3P ( src_reg_0, src_reg_1 ) (LO, R) dest_reg = BYTEOP3P ( src_reg_0, src_reg_1 ) (HI, R) dest_reg_1 = A1.L + A1.H, dest_reg_0 = A0.L + A0.H (dest_reg_1, dest_reg_0) = BYTEOP16P (src_reg_0, src_reg_1) (dest_reg_1, dest_reg_0) = BYTEOP16P (src_reg_0, src_reg_1) (R)
Copyright 2005 University of Illinois 85
dest_reg = BYTEOP1P ( src_reg_0, src_reg_1 ) dest_reg = BYTEOP1P ( src_reg_0, src_reg_1 ) (T) dest_reg = BYTEOP1P ( src_reg_0, src_reg_1 ) (R) dest_reg = BYTEOP1P ( src_reg_0, src_reg_1 ) (T, R) dest_reg = BYTEOP2P ( src_reg_0, src_reg_1 ) (RNDL) dest_reg = BYTEOP2P ( src_reg_0, src_reg_1 ) (RNDH) dest_reg = BYTEOP2P ( src_reg_0, src_reg_1 ) (TL) dest_reg = BYTEOP2P ( src_reg_0, src_reg_1 ) (TH)
Copyright 2005 University of Illinois 86
dest_reg = BYTEOP2P ( src_reg_0, src_reg_1 ) (RNDL, R) dest_reg = BYTEOP2P ( src_reg_0, src_reg_1 ) (RNDH, R) dest_reg = BYTEOP2P ( src_reg_0, src_reg_1 ) (TL, R) dest_reg = BYTEOP2P ( src_reg_0, src_reg_1 ) (TH, R)
z z
(dest_reg_1, dest_reg_0) = BYTEOP16M (src_reg_0, src_reg_1) (dest_reg_1, dest_reg_0) = BYTEOP16M (src_reg_0, src_reg_1) (R)
Copyright 2005 University of Illinois 87
SAA ( src_reg_0, src_reg_1 ) SAA ( src_reg_0, src_reg_1 ) (R) ( dest_reg_1, dest_reg_0 ) = BYTEUNPACK src_reg_pair ( dest_reg_1, dest_reg_0 ) = BYTEUNPACK src_reg_pair (R)
Vector Operations
z
Add on Sign
z
Vector Operations
z
VIT_MAX (Compare-Select)
z z z z
dest_reg = VIT_MAX ( src_reg_0, src_reg_1 ) (ASL) dest_reg = VIT_MAX ( src_reg_0, src_reg_1 ) (ASR) dest_reg_lo = VIT_MAX ( src_reg ) (ASL) dest_reg_lo = VIT_MAX ( src_reg ) (ASR) dest_reg = ABS source_reg (V) dest = src_reg_0 +|+ src_reg_1
Copyright 2005 University of Illinois 89
Vector ABS
z
dest = src_reg_0 |+ src_reg_1 dest = src_reg_0 +| src_reg_1 dest = src_reg_0 | src_reg_1 dest_0 = src_reg_0 +|+ src_reg_1, dest_1 = src_reg_0 | src_reg_1 dest_0 = src_reg_0 +| src_reg_1, dest_1 = src_reg_0 |+ src_reg_1 dest_0 = src_reg_0 + src_reg_1, dest_1 = src_reg_0 src_reg_1 dest_0 = A1 + A0, dest_1 = A1 A0 dest_0 = A0 + A1, dest_1 = A0 A1
Copyright 2005 University of Illinois 90
Vector Operations
z
dest_reg = src_reg >>> shift_magnitude (V) dest_reg = ASHIFT src_reg BY shift_magnitude (V) dest_reg = src_reg >> shift_magnitude (V) dest_reg = src_reg << shift_magnitude (V) dest_reg = LSHIFT src_reg BY shift_magnitude (V) dest_reg = MAX ( src_reg_0, src_reg_1 ) (V)
Copyright 2005 University of Illinois 91
Vector MAX
z
Vector Operations
z
Vector MIN
z
dest_reg = MIN ( src_reg_0, src_reg_1 ) (V) dest_reg = source_reg (V) Dest_reg = PACK ( src_half_0, src_half_1 ) (dest_pointer_hi, dest_pointer_lo ) = SEARCH src_reg (searchmode)
Copyright 2005 University of Illinois 92
Vector PACK
z
Vector SEARCH
z
A 32-bit ALU/MAC instruction || A 16-bit instruction || A 16-bit instruction ; A 32-bit ALU/MAC instruction || A 16-bit instruction ; MNOP || A 16-bit instruction || A 16-bit instruction ;
z z
The two 16-bit instructions in a multi-issue instruction must each be from Group1 and Group2 instructions Only one of the 16-bit instructions can be a store instruction If the two 16-bit instructions are memory access instructions, then both cannot use P-registers as address registers. In this case, at least one memory access instruction must be an I-register version.
93
Examples
z
94
Blackfin Platforms
z
z z
ideally suited for IP set-top boxes, media servers, portable entertainment devices, DTVs, residential data/media gateways and networked digital media adapters Multiple digital video formats - Windows Media 9 Series / VC-1, MPEG-2, MPEG-4, H264 AVC and future format Multiple audio formats including WMA, MP3, MP3 PRO, AAC, and others G.711, G.728, G.729AB, G.723.1A, AMR for Speech On-screen user interfaces and displays
95
Blackfin Platforms
z
A wide range of home-network protocols, such as UPnP, TCP/IP, Ethernet, HPNA 2.0, 802.11a/b/g and HomePlug Access and management of centralized or distributed media Remote firmware upgrade to enable new formats and technologies as they are introduced serve the embedded processing market for feature-rich, multimedia car telematics applications
96
Blackfin Platforms
z
meets the computational demands and power constraints of in-vehicle safety systems, audio, video, and wireless communications functions implemented on the Blackfin Processor include GPS, hands free operation, microphone array, voiceactivated control, GSM interfaces, and car audio play/record of MP3 and WMA content fully supported with speech recognition and text-to-speech algorithms available from Scansoft, Inc. and with the noiseand echo-cancellation algorithms from Bitwave and Clarity
97
Blackfin Platforms
z
includes a collection of telematics function modules that reduce code-development time and enable faster time-tomarket
deliver audio, streaming video, networked camera and videophone capabilities with up to full D1, MPEG4/MPEG2/DivX/WMV9 30 fps full color, full motion video in CIF resolution over broadband networks
98
Blackfin Platforms
z
include an Ethernet port to interface with cable, xDSL, Ethernet, USB, IEEE 802.11x and fiber, and support Microsoft Windows Media, ISMA and QuickTime protocols delivering full duplex audio and videophone functions for broadband networks uses a scalable bit rate and Ethernet port to enable operation over cable, xDSL, Ethernet, 3G and fiber video capabilities of up to 30 frames/second performance in CIF resolutions and still images at 4CIF resolution
99
Blackfin Platforms
z
enables any cable-connected standard NTSC/PAL TV (with RCA output connectors and camera input connectors) to a high-quality videophone enables a PC browser to display what the camera sees, supporting an HTTP server function with MJPEG and MPEG4 video to enable access and control from any standard PC with a Microsoft Internet Explorer or Netscape browser or QuickTime player optional trigger function enables the browser to sound an alarm when the camera senses predefined changes in motion or position
100
Targeted Application
z
Digital Camera Camcorder Video Capture Board Document Scan/Fax video-enabled handheld devices (PDAs) web phones/terminals e-mail terminals
Copyright 2005 University of Illinois 101
Targeted Application
z z
Telematics Navigation/GPS Car Audio Amplifiers Hands Free Voice Activated Control
Copyright 2005 University of Illinois 102
Targeted Application
z
VoIP Gateways Multi-Service Applications IP-PBX, PBX Adapters Networked Set-Top-Box Internet-smart handheld devices (PDAs) Internet gaming devices VoIP phones/terminals NetTV
103
Targeted Application
z
Wireless
z z z z z z
Wireless Terminals GSM Voice Wireless Handsets GPRS Wireless Terminals EDGE Wireless Terminals TD-SCDMA Wireless Terminals W-CDMA/UMTS Wireless Terminals
104
Targeted Application
z
Wireless
z z z z
W-CDMA/UMTS Wireless Terminals Entertainment Wireless Terminals Smart phone Wireless Terminals 2.5G and 3G Wireless Base Stations
105
References
z
Blackfin Processor
z
106
References
z
107
References
z
108