Download presentation
Presentation is loading. Please wait.
1
Jan 28, 2004Blackfin Compute Unit REV B ENEL619.23 DSP Architectures BlackFin Compute Unit
2
Jan 28, 2004Blackfin Compute Unit REV B Overview Architecture Overview Register Map ALU features and sample instructions Multiplier features and sample instructions Shifter features and sample instructions
3
Jan 28, 2004Blackfin Compute Unit REV B References ADSP-BF535 Blackfin Processor Hardware Reference, Rev 2, April 2004, Analog Devices. – Section 2 Blackfin Processor Instruction Set Reference, Rev 2, May 2003, Analog Devices. – Sections 8 ~ 10, 14 & 15 A number of the figures in this presentation are based on figures found in the ADSP-BF535 Blackfin Processor Hardware Reference.
4
Jan 28, 2004Blackfin Compute Unit REV B Compute Unit Architecture 2 Mulitpliers 2 ALUs 1 set of Video ALUs 1 Shifter Register File
5
Jan 28, 2004Blackfin Compute Unit REV B Register File 8 x 32 bit OR 16 x 16 bit 2 x 40 bit accumulators DATA REGISTER SYNTAX: R0, R1 etc refer to 32 bit registers R0.L refers to the low 16 bits of the R0 32 bit reg R0.H refers to the high 16 bits of the R0 register ACCUMULATOR SYNTAX: A0.L => low 16 bits A0.H => next 16 bits A0.W => least significant 32 bit word A0.X => MS 8 bit extension
6
Jan 28, 2004Blackfin Compute Unit REV B ALU Data FLow 2 x 32 bit paths to dual Multiplier/ALU units 2 x 32 bit paths back to register file
7
Jan 28, 2004Blackfin Compute Unit REV B ALU Features Dual 16 bit OPS: Can be : Single 16 bit OPS: Single 32 bit OPS: 31 Rm Rp Rn Rm Rp Rn Dual 16 bit Cross:
8
Jan 28, 2004Blackfin Compute Unit REV B ALU Sample Instructions Single 16 bit ops:Dual 16 bit ops: Quad 16 bit ops: ABABDC Single 32 bit ops: Dual 32 bit ops: A & B registers must stay on the same side of the ‘|’ for both Instructions For dual and quad 16 bit operations the (CO) option causes the destination registers to cross Operator order is important + must come before - Does not work Must have this option
9
Jan 28, 2004Blackfin Compute Unit REV B Multiply Data Flow 2 x 32 bit paths to dual Multiplier/ALU units 2 x 32 bit paths back to register file 2 x 40 bit accumulator Multiplier share the same operand/result buses as the ALU
10
Jan 28, 2004Blackfin Compute Unit REV B Multiply Features HH HL LH LL Multiplies are signed fractional by default Signed fractional multiply result is automatically left shifted 1 bit. Signed fractional multiply != signed integer multiply Rounding available on fractional number multiplies and special option of integer number multiplies
11
Jan 28, 2004Blackfin Compute Unit REV B Rounding 2 cases: 0x8000 31 Rd top 16 bits go to destination register 31 Rm 31 Rp 0x8000 31 Rd top 16 bits go to destination register 32 bit result Rounding adds 0x8000 to the 32 bit multiplier result or accumulator value before extracting a 16 bit value to the destination register
12
Jan 28, 2004Blackfin Compute Unit REV B Fractional Multiply When extracting a 16 bit fractional value from an accumulator the high 16 bits is taken Where in the destination register it goes depends on which accumulator is being extracted from Fractional Multiply != Integer Multiply Fractional Multiply != Integer Multiply
13
Jan 28, 2004Blackfin Compute Unit REV B Integer Multiply When extracting a 16 bit integer value from an accumulator the low 16 bits is taken. Where in the destination register the 16 bit value goes depends on which accumulator is being extracted from Fractional Multiply != Integer Multiply
14
Jan 28, 2004Blackfin Compute Unit REV B Multiply Sample Instructions 16 bit extraction from ACC 016 bit extraction from ACC 1 32 bit extraction A1 += R1.H * R2.L, A0 += R1.L * R2.L; R3.H = (A1 += R1.H * R2.L), R3.L = (A0 += R1.L * R2.L); Any combination of.H and.L in the 2 operands is allowed R3 = (A1 += R1.H*R2.L), R2 = (A0 += R1.L * R2.L); Where destination registers must be paired as follows: R[1,0], R[3,2], R[5,4] and R[7,6] R3.H = (A1 += R1.H * R2.L), A0 += R1.L * R2.L; Multi-issue MAC Instruction Examples
15
Jan 28, 2004Blackfin Compute Unit REV B Shifter Sample Instructions 2 operator Register shifts 2 operator Immediate shifts 3 op Reg shift 3 op Immediate shift Arithmetic shift
16
Jan 28, 2004Blackfin Compute Unit REV B Parallel Instruction Examples In general there are 16 and 32 bit versions of the arithmetic instructions Most of the 32 bit instructions can be executed in parallel with 2 x 16 bit memory/index operations Exceptions are DIVS, DIVQ and MULTIPLY with 32 bit operands || means parallel Examples: –A1=R2.L*R1.L,A0=R2.H*R1.H||R2.H=W[I2++] || [I3++]=R3;\ –R2=R2+|+R4, R4=R2-|-R4 || I0+=M0||R1=[I0];
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.