Professional Documents
Culture Documents
Learning Objectives
Describe C6000 CPU architecture. Introduce some basic instructions. Describe the C6000 memory map. Provide an overview of the peripherals.
Chapter 2, Slide 2
External Memory
Central
Processing Unit
P E R I P H E R A L S
Chapter 2, Slide 3
Y =
n = 1
an * xn
= a1 * x1 + a2 * x2 +... + aN * xN
Chapter 2, Slide 4
Y =
n = 1
an * xn
= a1 * x1 + a2 * x2 +... + aN * xN
Chapter 2, Slide 5
Multiply (MPY)
N
Y =
n = 1
an * xn
= a1 * x1 + a2 * x2 +... + aN * xN
The multiplication of a1 by x1 is done in assembly by the following instruction: MPY a1, x1, Y
Chapter 2, Slide 6
Y =
n = 1
an * xn
.M
The . M unit performs multiplications in hardware MPY .M a1, x1, Y
Note: 16-bit by 16-bit multiplier provides a 32-bit result. 32-bit by 32-bit multiplier provides a 64-bit result.
Chapter 2, Slide 7 Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004
Addition (.?)
40
Y =
n = 1
an * xn
.M
.?
MPY ADD
.M .?
Chapter 2, Slide 8
Y =
n = 1
an * xn
.M
.L
MPY ADD
.M .L
RISC processors such as the C6000 use registers to hold the operands, so lets change this code.
Chapter 2, Slide 9 Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004
Register File - A
Register File A A0 A1 A2 A3 prod Y a1 x1
40
Y =
n = 1
an * xn
.M
. . .
.L
MPY ADD
.M .L
A15
32-bits
Let us correct this by replacing a, x, prod and Y by the registers as shown above.
Chapter 2, Slide 10 Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004
Y =
n = 1
an * xn
.M
. . .
.L
MPY ADD
.M .L
A15
32-bits
The registers A0, A1, A3 and A4 contain the values to be used by the instructions.
Chapter 2, Slide 11 Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004
Y =
n = 1
an * xn
.M
. . .
.L
MPY ADD
.M .L
A15
32-bits
Register File A contains 16 registers (A0 -A15) which are 32-bits wide.
Chapter 2, Slide 12 Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004
Data loading
Register File A A0 A1 A2 A3 prod Y a1 x1
. . .
.L
A15
32-bits
Chapter 2, Slide 13
Load Unit .D
Register File A A0 A1 A2 A3 prod Y a1 x1
. . .
.L
.D
A: The operands are loaded into the registers by loading them from the memory using the .D unit.
A15
32-bits
Data Memory
Chapter 2, Slide 14 Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004
Load Unit .D
Register File A A0 A1 A2 A3 prod Y a1 x1
It is worth noting at this stage that the only way to access memory is through the .D unit. .M
. . .
.L
.D
A15
32-bits
Data Memory
Chapter 2, Slide 15 Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004
Load Instruction
Register File A A0 A1 A2 A3 prod Y a1 x1
Q: Which instruction(s) can be used for loading operands from the memory to the registers? .M
. . .
.L
.D
A15
32-bits
Data Memory
Chapter 2, Slide 16 Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004
Q: Which instruction(s) can be used for loading operands from the memory to the registers? .M A: The load instructions.
. . .
.L
.D
A15
32-bits
Data Memory
Chapter 2, Slide 17 Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004
FFFFFFFF 16-bits
Chapter 2, Slide 18
a1 x1
prod Y
FFFFFFFF
Chapter 2, Slide 19
a1 x1
prod Y
FFFFFFFF 16-bits
Chapter 2, Slide 20
Data
a1 x1
prod Y
FFFFFFFF 16-bits
Chapter 2, Slide 21
Data
1
0xA
0
0xB
0xC
0x2 0x4 0x6 0x8
0xD
0x1 0x3 0x5 0x7
FFFFFFFF 16-bits
Chapter 2, Slide 22
address
0xD
0x1 0x3 0x5 0x7
0xC
0x2 0x4 0x6 0x8
Question:
If data can only be accessed by the load instruction and the .D unit, how can we load the register pointer Rn in the first place?
FFFFFFFF 16-bits
Chapter 2, Slide 23
The instruction MVKL will allow a move of a 16-bit constant into a register as shown below: MVKL
(a is a constant or label)
.?
a, A5
Chapter 2, Slide 24
MVKH
ah al x a A5
eg.
MVKH
.?
a, A5
(a is a constant or label)
ah
Chapter 2, Slide 25
A5 = 0x1234FABC ; OK
A5 = 0xFFFFFABC ; Wrong
Chapter 2, Slide 26
a x prod Y
. . .
MVKL MVKH
A2
A3 A4
.M .L .D
MVKL MVKH
LDH
LDH MPY ADD
.D
.D .M .L
*A5, A0
*A6, A1 A0, A1, A3 A4, A3, A4
A15
32-bits
pt1 and pt2 point to some locations
Data Memory
Chapter 2, Slide 27
Creating a loop
So far we have only implemented the SOP for one tap only, i.e. Y= a1 * x1 So lets create a loop so that we can implement the SOP for N Taps.
MVKL MVKH MVKL MVKH LDH .D pt1, A5 pt1, A5 pt2, A6 pt2, A6 *A5, A0
LDH
MPY ADD
.D
.M .L
*A6, A1
A0, A1, A3 A4, A3, A4
Chapter 2, Slide 28
Creating a loop
So far we have only implemented the SOP for one tap only, i.e. Y= a1 * x1 So lets create a loop so that we can implement the SOP for N Taps.
With the C6000 processors there are no dedicated instructions such as block repeat. The loop is created using the B instruction.
Chapter 2, Slide 29
Chapter 2, Slide 30
loop
.D .D .M .L
Chapter 2, Slide 31
loop
.D .D .M .L .?
Chapter 2, Slide 32
.S .M .M
loop
MVKL MVKH
.D .D .M .L .?
. . .
.L .L
.D .D
A15
32-bits
Data Memory
Chapter 2, Slide 33 Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004
.S .M .M
loop
MVKL .S MVKH .S
.D .D .M .L .S
. . .
.L .L
.D .D
A15
32-bits
Data Memory
Chapter 2, Slide 34 Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004
.S .M .M
loop
. . .
.L .L
.D .D
A15
32-bits
Data Memory
Chapter 2, Slide 35 Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004
.S .M .M
loop
. . .
.L .L
.D .D
A15
32-bits
.S
loop
Data Memory
Chapter 2, Slide 36 Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004
5. Make the branch conditional based on the value in the loop counter
[condition]
e.g. [B1] B
Instruction
loop
Label
(1) The condition can be one of the following registers: A1, A2, B0, B1, B2. (2) Any instruction can be conditional.
Chapter 2, Slide 37 Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004
5. Make the branch conditional based on the value in the loop counter
[!condition]
e.g. [!B0] [B0] B B
Instruction
Label
Chapter 2, Slide 38
.S .M .M
loop
MVKL .S2 pt2, A6 MVKH .S2 pt2, A6 MVKL .S2 count, B0 LDH LDH MPY ADD SUB .D .D .M .L .S *A5, A0 *A6, A1 A0, A1, A3 A4, A3, A4 B0, 1, B0
. . .
.L .L
.D .D
A15
32-bits
[B0]
.S
loop
Data Memory
Chapter 2, Slide 39 Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004
Therefore the label must have a dynamic range of less than 32-bit as the instruction B has to be coded.
32-bit
Case 1:
B .S1
label
Case 2:
B .S2
register
.D .D .M .L .S
ADD SUB
[B0]
.S
loop
Chapter 2, Slide 42
loop
.D .D .M .L .S
A5 and A6.
[B0]
.S
loop
Chapter 2, Slide 43
Indexing Pointers
Syntax *R Description Pointer Pointer Modified No
Indexing Pointers
Syntax *R *+R[disp] *-R[disp] Description Pointer + Pre-offset - Pre-offset
Pointer Modified No No No
In this case the pointers are modified BEFORE being used and RESTORED to their previous values.
[disp] specifies the number of elements size in DW (64-bit), W (32-bit), H (16-bit), or B (8-bit). disp = R or 5-bit constant. R can be any register.
Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004
Chapter 2, Slide 45
Indexing Pointers
Syntax *R *+R[disp] *-R[disp] *++R[disp] *--R[disp] Description Pointer + Pre-offset - Pre-offset Pre-increment Pre-decrement Pointer Modified No No No Yes Yes
In this case the pointers are modified BEFORE being used and NOT RESTORED to their Previous Values.
Chapter 2, Slide 46 Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004
Indexing Pointers
Syntax *R *+R[disp] *-R[disp] *++R[disp] *--R[disp] *R++[disp] *R--[disp] Description Pointer + Pre-offset - Pre-offset Pre-increment Pre-decrement Post-increment Post-decrement Pointer Modified No No No Yes Yes Yes Yes
In this case the pointers are modified AFTER being used and NOT RESTORED to their Previous Values.
Chapter 2, Slide 47 Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004
Indexing Pointers
Syntax *R *+R[disp] *-R[disp] *++R[disp] *--R[disp] *R++[disp] *R--[disp]
Chapter 2, Slide 48
[disp] specifies # elements - size in DW, W, H, or B. disp = R or 5-bit constant. R can be any register.
Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004
loop
.D .D .M .L .S
[B0]
.S
loop
Chapter 2, Slide 49
loop
.D .D .M .L .S
[B0]
B
STH
.S
.D
loop
A4, *A7
Chapter 2, Slide 50
.D .D .M .L .S
[B0]
B
STH
.S
.D
loop
A4, *A7
Chapter 2, Slide 51
.D .D .M .L .S .S .D
*A5++, A0 *A6++, A1 A0, A1, A3 A4, A3, A4 B0, 1, B0 loop A4, *A7
loop
pt3, A7 pt3, A7 count, B0 A4 *A5++, A0 *A6++, A1 A0, A1, A3 A4, A3, A4 B0, 1, B0 loop A4, *A7
. . .
A15
32-bits
.L1
.D1
Data Memory
Chapter 2, Slide 54 Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004
. . .
A15
32-bits
.L1
.D1
Data Memory
Chapter 2, Slide 55 Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004
To increase the Processing Power, this processor has two sides (A and B or 1 and 2)
Register File A A0 A1 A2 A3 A4 .S1 .M1 .S2 .M2 Register File B B0 B1 B2 B3 B4
. . .
A15
32-bits
.L1
.D1
.L2
.D2
. . .
B15
32-bits
Data Memory
Chapter 2, Slide 56 Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004
. . .
A15
32-bits
.L1
.D1
.L2
.D2
. . .
B15
32-bits
Data Memory
Chapter 2, Slide 57 Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004
To exchange operands between the two sides, some cross paths or links are required.
A cross path links one side of the CPU to the other. There are two types of cross paths:
Chapter 2, Slide 58
Data cross paths can also be referred to as register file cross paths.
These cross paths allow operands from one side to be used by the other side.
There are only two cross paths:
Chapter 2, Slide 59
TMS320C67x Data-Path
Chapter 2, Slide 60
The data cross paths are very useful, however there are some limitations in their use.
Chapter 2, Slide 61
<dst>
<src> <src>
A
2x
(1) The destination register must be on same side as unit. (2) Source registers - up to one cross path per execute packet per side.
Execute packet: group of instructions that execute simultaneously.
Chapter 2, Slide 62
1x
<dst>
<src> <src>
A
2x
1x
B
(c) Texas Instruments 2004
|| Means that the SUB and ADD belong to the same fetch packet, therefore execute simultaneously. Dr. Naim Dahnoun, Bristol University, Chapter 2, Slide 63
<dst>
<src> <src>
A
2x
1x
B
Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004
NOT VALID!
Chapter 2, Slide 64
<dst>
<src> <src>
A
2x
<dst>
<src> <src>
1x
Chapter 2, Slide 65
Addr
.D1
A5
.D1
*A0
DA2 = T2
Data2
Chapter 2, Slide 67
A5
.D1 .D2
*A0
DA2 = T2
*B0
B
LDW.D1T1 *A0,A5 || LDW.D2T2 *B0,B5
Chapter 2, Slide 68
B5
A5
.D1 .D2
*A0
DA2 = T2
*B0
B
LDW.D1T2 *A0,B5 || STW.D2T1 A5,*B0
Chapter 2, Slide 69
B5
.D1 .D2
*A0
DA2 = T2
*B0
B
LDW.D1__ *A0,B5 || STW.D2__ B6,*B0
Chapter 2, Slide 70 Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004
.D1
DA2 = T2
*A0
.D2
*B0
B5
If a conditional register comes from the opposite side, it does NOT use a data or address cross-path. Examples: [B2] [A1] ADD LDW .L1 .D2 A2,A0,A4 *B0,B5
Chapter 2, Slide 72
Chapter 2, Slide 73
C67x
Chapter 2, Slide 74
Data
Destination register on same side as unit. Source registers - up to one cross path per execute packet per side. Use x to indicate cross-path.
Pointer must be on same side as unit. Data can be transferred to/from either side. Parallel accesses: both cross or neither cross.
Address
Chapter 2, Slide 75
an * xn ; A2 = 40, loop count ; A0 = a(n) ; A1 = x(n) ; A3 = a(n) * x(n) ; Y = Y + A3 ; decrement loop count ; if A2 0, branch ; *A7 = Y
40, A2 *A5++, A0 *A6++, A1 A0, A1, A3 A3, A4, A4 A2, 1, A2 loop A4, *A7
Note: Assume that A4 was previously cleared and the pointers are initialised.
Chapter 2, Slide 76 Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004
Let us have a look at the final details concerning the functional units. Consider first the case of the .L and .S units.
Chapter 2, Slide 77
5-bit constants (or 16-bit for MVKL and MVKH). 32-bit registers. 40-bit Registers.
Chapter 2, Slide 78
The registers must be from the same side. The first register must be even and the second odd. The registers must be consecutive.
Chapter 2, Slide 79
40-bit Reg
odd 8
even
32
even
32
A1:A0
A3:A2 A5:A4 A7:A6
B1:B0
B3:B2 B5:B4 B7:B6
A9:A8
A11:A10 A13:A12 A15:A14
Chapter 2, Slide 80
B9:B8
B11:B10 B13:B12 B15:B14
Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004
32-bit Reg
5-bit Const
< src >
40-bit Reg
.L or .S
< dst >
32-bit Reg
Chapter 2, Slide 81
40-bit Reg
Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004
32-bit Reg
5-bit Const
< src >
32-bit Reg
< src >
40-bit Reg
.L or .S
< dst >
32-bit Reg
Chapter 2, Slide 82
40-bit Reg
Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004
32-bit Reg
5-bit Const
< src >
32-bit Reg
< src >
40-bit Reg
.L or .S
< dst >
OR.L1
A0, A1, A2
32-bit Reg
Chapter 2, Slide 83
40-bit Reg
Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004
32-bit Reg
5-bit Const
< src >
32-bit Reg
< src >
40-bit Reg
.L or .S
< dst >
OR.L1 ADD.L2
32-bit Reg
Chapter 2, Slide 84
40-bit Reg
Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004
32-bit Reg
5-bit Const
< src >
32-bit Reg
< src >
40-bit Reg
.L or .S
< dst >
32-bit Reg
Chapter 2, Slide 85
40-bit Reg
Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004
32-bit Reg
5-bit Const
< src >
32-bit Reg
< src >
40-bit Reg
.L or .S
< dst >
32-bit Reg
Chapter 2, Slide 86
40-bit Reg
32-bit Reg
5-bit Const
< src >
32-bit Reg
< src >
40-bit Reg
.L or .S
< dst >
32-bit Reg
Chapter 2, Slide 87
40-bit Reg
A0, A1, A2 -5, B3, B4 A2, A3, A5:A4 A2, A5:A4, A5:A4 3, B9:B8, B9:B8
To move the content of a register (A or B) to another register (B or A) use the move MV Instruction, e.g.:
MV MV A0, B0 B6, B7
To move the content of a control register to another register (A or B) or vice-versa use the MVC instruction, e.g.:
MVC
MVC
IFR, A0
A0, IRP
Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004
Chapter 2, Slide 88
Chapter 2, Slide 89
Logical
AND CMPEQ CMPGT CMPLT NOT OR SHL SHR SSHL XOR
Data Mgmt
LDB/H/W MV MVC MVK MVKL MVKH MVKLH STB/H/W
Program Ctrl
B IDLE NOP
Bit Mgmt
CLR EXT LMBD NORM SET
Note: Refer to the 'C6000 CPU Reference Guide for more details.
Chapter 2, Slide 90 Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004
.L Unit
ABS ADD AND CMPEQ CMPGT CMPLT LMBD MV NEG NORM NOT OR SADD SAT SSUB SUB SUBC XOR ZERO
.D Unit
ADD ADDA LDB/H/W MV NEG STB/H/W SUB SUBA ZERO
.M Unit
MPY MPYH SMPY SMPYH
Other
NOP
Chapter 2, Slide 91
IDLE
Note: Refer to the 'C6000 CPU Reference Guide for more details.
Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004
.S
.L
.D .M
C67x
.M Unit
MPY MPYH MPYLH MPYHL
NOP
.D Unit
ADD NEG ADDAB (B/H/W) STB (B/H/W) ADDAD SUB LDB (B/H/W) SUBAB (B/H/W) LDDW ZERO MV
SMPY SMPYH
No Unit Used
Note: Refer to the 'C6000 CPU Reference Guide for more details.
Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004
Chapter 2, Slide 92
Superset of Fixed-Point
Instruction Fetch Instruction Dispatch Advanced Instruction Packing Instruction Decode Registers (A0 - A15) Registers (A16 - A31) L1 + + + + S1 + + + + M1 x x x x X X D1 + + Control Registers Emulation Advanced Emulation Interrupt Control
C62x: Dual 32-Bit Load/Store C64x: Dual 64-Bit Load/Store C67x: Dual 64-Bit Load/32-Bit Store
Chapter 2, Slide 93 Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004
.L
Dual/Quad Arith ABS2 ADD2 ADD4 MAX MIN SUB2 SUB4 SUBABS4 Bitwise Logical ANDN
Data Pack/Un PACK2 PACKH2 PACKLH2 PACKHL2 PACKH4 PACKL4 UNPKHU4 UNPKLU4 SWAP2/4
.D
.M
Average AVG2 AVG4 Shifts ROTL SSHVL SSHVR
Multiplies MPYHI Shift & Merge MPYLI SHLMB MPYHIR SHRMB MPYLIR Load Constant MPY2 MVK (5-bit) SMPY2 Bit Operations DOTP2 DOTPN2 BITC4 DOTPRSU2 BITR DOTPNRSU2 DEAL DOTPU4 SHFL DOTPSU4 Move GMPY4 MVD XPND2/4
Chapter 2, Slide 94
TMS320C6000 Memory
Chapter 2, Slide 95
Internal
= = = = 64 kB 64 kB 256 kB 128 kB
EMIFA
EMIFB
N/A
P D
= =
384 kB 512 kB
128M Bytes (32-bits wide) N/A 64M Bytes (16-bits wide) 128M Bytes (32-bits wide)
L1P L1D L2
= = =
4 kB 4 kB 64 kB
C6713
= = = = = =
4 kB 4 kB 256 kB 16 kB 16 kB 256 kB
N/A
C6411 DM642
N/A
L1P L1D L2
= = =
16 kB 16 kB 1 MB
Chapter 2, Slide 96
Internal (L2)
64 kB 256 kB Internal (L2) 1 MB
External
512M (32-bit wide) 512M (16-bit wide) External A: 1GB (64-bit) B: 256kB (16-bit)
DM642
C6411
256 kB
256 kB
1GB (64-bit)
256MB (32-bit)
TMS320C6000 Peripherals
Chapter 2, Slide 98
.D1 .D2
.M1 .M2
.L1 .L2 .S1 .S2
Control Regs
P E R I P H E R A L S
Regs (B0-B15)
CPU
Chapter 2, Slide 99 Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004
PC A
regs
A D
External Interface
Data Addr - T2
Data Data - T2 DMA Addr - Read
x32
x32/64 x32
A D A D
C67x
Chapter 2, Slide 100
B
regs
x32
Peripherals
x32
x32
x32 x32
DMA
.D1 .D2
.M1 .M2
.L1 .L2 .S1 .S2
Control Regs
Extl Memory
P E R I P H E R A L S
Regs (A0-A15)
Regs (B0-B15)
CPU
Chapter 2, Slide 101 Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004
.D1 .D2
Extl Memory
.M1 .M2
.L1 .L2 .S1 .S2
Control Regs
- Sync
- Async
P E R I P H E R A L S
Regs (A0-A15)
Regs (B0-B15)
CPU
Chapter 2, Slide 102 Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004
'C6000 Peripherals
Parallel Comm GPIO Internal Memory
External Memory
EMIF
Internal Buses
.D1 .D2
.M1 .M2 .L1 .L2
Register Set B
Register Set A
.S1 .S2
CPU
EMIF
Async
Internal Memory
SDRAM
EMIF
Internal Buses
.D1 .D2
.M1 .M2 .L1 .L2
Register Set B
Register Set A
SBSRAM
Glueless access to async/sync memory CPU Works with PC100/133 SDRAM (cheap, fast, and easy!) Byte-wide data access 16, 32, or 64-bit bus widths
Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004
External Memory
EMIF
Internal Buses
.D1 .D2
Register Set B
Dedicated, slave-only, async 16/32-bit bus allows host-P access to C6000 memory .L1 .L2
XBUS: Similar to HPI but provides .S1 .S2 Master/slave and sync modes Glueless i/f to FIFOs (up to single-cycle xfer rate) CPU PCI: Standard 32-bit, 33MHz/66MHz PCI interface These interfaces provide means to bootstrap the C6000
Chapter 2, Slide 105 Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004
Register Set A
GPIO
Parallel Comm GPIO Internal Memory
External Memory
EMIF
Internal Buses
.D1 .D2
.M1 .M2 .L1 .L2
Register Set B
Register Set A
.S1 .S2
External Memory
EMIF
Internal Buses
Serial
.D1 .D2
Register Set B
Register Set A
.L1 .L2
.S1 .S2
CPU
Utopia (C64x)
ATM connection 50 MHz wide area network connectivity
Chapter 2, Slide 107
DMA / EDMA
Parallel Comm GPIO Internal Memory
External Memory
EMIF
Internal Buses
.D1 .D2
.M1 .M2
Register Set B
Transfers any set of memory locations to another .S1 4 / 16 / 64 channels (transfer parameter sets) .S2 Transfers can be triggered by any interrupt (sync) CPU Operates independent of CPU On reset, provides bootstrap from memory
Register Set A
Timer/Counter
Parallel Comm GPIO Internal Memory
External Memory
EMIF
Internal Buses
.D1 .D2
.M1 .M2 .L1 .L2
Register Set B
Register Set A
Timer / Counter
.S1 .S2
CPU
Two (or three) 32-bit timer/counters Can generate interrupts Both input and output pins
Chapter 2, Slide 109
Ethernet MAC
Parallel Comm GPIO Internal Memory
External Memory
EMIF
Internal Buses
.D1 .D2
.M1 .M2 .L1 .L2
Register Set B
Register Set A
.S1 .S2
CPU
Pins are muxed with PCI PLL TCP/IP stack available from TI
Chapter 2, Slide 110 Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004
Video Ports
Parallel Comm GPIO Internal Memory
External Memory
EMIF
Internal Buses
Each configurableEDMA DMA, for Capture or Display .D1 .D2 Dual 8/10-bit BT656 or raw modes (Boot) .M1 .M2 16/20-bit raw modes and 20-bit Y/C for high definition Timers Horz Scaling and Chroma Resampling Support for 8-bit modes .L1 .L2 Supports transport interface mode Ethernet
Register Set B Register Set A Video Ports VCP / TCP PLL
.S1 .S2
CPU
External Internal Buses EMIF Memory Coprocessor (TCP) (C6416 only) Turbo
Supports 35 data channels at 384 kbps McBSPs 3GPP / IS2000 Turbo coder .D1 .D2 Utopia Programmable parameters include mode, rate and frame length Register Set B DMA, EDMA Viterbi Coprocessor (VCP) (C6416 only) .M1 .M2 (Boot) Supports > 500 voice channels at 8 kbps .L1 .L2 Programmable decoder parameters include constraint length, Timers code rate, and frame length .S1 .S2 Video Ports VCP / TCP CPU PLL
Chapter 2, Slide 112 Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004
Register Set A
External Memory
EMIF
Internal Buses
Serial
PLL
Register Set B
Timers (Boot) Clock multiplier Ethernet Reduces EMI and cost Timers Rate is Pin selectable Video Ports VCP / TCP PLL
Chapter 2, Slide 113
Clock Cycle
What is a clock cycle? The time between successive instructions
C6000
CLKOUT1 (C6000 clock cycle) CLKIN
PLL
CLKIN (MHz)
60
30
PLL Rate
x12
x10
MIPs (max)
5760
2400
50
25
Chapter 2, Slide 114
x4
x4
200 MHz
100 MHz
5 ns
10 ns
1600
800
External Memory
EMIF
Internal Buses
.D1 .D2
.M1 .M2 .L1 .L2
Register Set B
Register Set A
.S1 .S2
CPU
Example = TMS320LC6201PKGA200
= TI DSP = Place holder for voltage levels = C6x family = Fixed-point core = Memory/peripheral configuration = Pkg designator (actual letters TBD) = -40 to 85C (blank for 0 to 70C) = Core CPU speed in Mhz
Module 1 Exam
1. Functional Units
.M 2. Memory Map
.S
.D
.L
3. Conditional Code
a. Which registers can be used as condl registers?
b. Which instructions can be conditional?
4. Performance
a. What is the 'C6711 instruction cycle time?
b. How can the 'C6711 execute 1200 MIPs?
5. Coding Problems
a. Move contents of A0-->A1
5. Coding Problems
a. Move contents of A0-->A1
e. If (B1 0) then B2 = B5 * B6 f. A2 = A0 * A1 + 10
.M 2. Memory Map
Four
.S
.D
.L
3. Conditional Code
a. Which registers can be used as condl registers?
A1, A2, B0, B1, B2 b. Which instructions can be conditional? All of them
4. Performance
a. What is the 'C6711 instruction cycle time? CLKOUT1
b. How can the 'C6711 execute 1200 MIPs? 1200 MIPs = 8 instructions (units) x 150 MHz
5. Coding Problems
a. Move contents of A0-->A1 MV .L1 ADD .S1 MPY .M1 A0, A1 A0, 0, A1 A0, 1, A1
or or
5. Coding Problems
a. Move contents of A0-->A1 MV .L1 ADD .S1 MPY .M1 A0, A1 A0, 0, A1 A0, 1, A1
or or
ZERO .S1 SUB .L1 MPY .M1 CLR .S1 MVK .S1 XOR .L1
e. If (B1 0) then B2 = B5 * B6 f. A2 = A0 * A1 + 10 MPY A0, A1, A2 ADD 10, A2, A2 g. Load an unsigned constant (19ABCh) into register A6. value .equ 0x00019abc mvkl .s1 0x00019abc,a6 mvkl.s1 value,a6 mvkh .s1 0x00019abc,a6 mvkh.s1 value,a6
Chapter 2, Slide 127 Dr. Naim Dahnoun, Bristol University, (c) Texas Instruments 2004
load_mem1:
MVKL
MVKH LDH
.S1
.S1 .D1
mem1,
mem1,
A6
A6
*A6++, A7
Architecture
Links:
C6711 data sheet: tms320c6711.pdf C6713 data sheet: tms320c6713.pdf C6416 data sheet: tms320c6416.pdf User guide: spru189f.pdf Errata: sprz173c.pdf