Académique Documents
Professionnel Documents
Culture Documents
Architecture du
TMS320C6000
(2)
03/05/21 1
Register File A Register File B
A0 B0
.S1 .S2
A1 B1
A2 B2
A3 .M1 .M2 B3
A4 B4
. .L1 .L2 .
. .
. .
.D1 .D2
B15
32-bits 32-bits
2
Data Memory 03/05/21
L’échange des données entre les deux parties du CPU
nécessite quelques connections (liaisons).
03/05/21 3
Il existe deux types de liaison (cross paths) entre
la partie A et B:
03/05/21 4
src
dst .L1 A
src
.M1
MPY .M1 A0,A1,A2
|| MPY .M2 B0,B1,B2
src
dst .L2
.M2 src B
03/05/21 5
src
dst .L1 A
src
.M1
03/05/21 6
src
dst .L1 A
src
.M1
ADD .L2 A2,B2,B3
dst .L2
.M2 src B
03/05/21 7
Cette liaison peut être considéré comme un registre d’échange
d’opérande.
03/05/21 8
La liaison de donnée est appliqué qu’avec
les unités fonctionnelles .M, .L et .S.
03/05/21 9
<dst>
.L1 <src>
A
.M1 <src>
.S1 2
x
<src>
1
.L2 x
<dst>
.M2
.S2
<src> B
03/05/21 10
la liaison des données (Data cross paths) est très utilisée mais avec des limites:
(1). Le registre destination dans une instruction doit être du même côte que l’unité fonctionnelle.
(2). Dans un paquet d’instruction en parallèles ( execute packet ), on utilise la liaison de donnée pour une seul instruction.
03/05/21 11
<dst>
.L1 <src>
A
.M1 <src>
.S1 2
x
Ex:
1
ADD
ADD .L1x
.L1x A0,A1,B2
A0,A1,B2 x
MPY
MPY .M1x
.M1x A0,B6,A9
A0,B6,A9 B
03/05/21 12
<dst>
.L1 <src>
A
.M1 <src>
.S1 2
x
SUB
SUB .S1x
.S1x A8,B2,A8
A8,B2,A8 1
|||| ADD
ADD .L1x
.L1x A0,B0,A2
A0,B0,A2 x
B
Non valide!
03/05/21 13
Data
Addr
A
.D1
LDW
LDW .D1T1
.D1T1*A0
*A0,A5
,A5
STW
STW .D1T1
.D1T1A5,
A5,*A0
*A0
03/05/21 14
Data1 A5
T1 *A0
A
.D1
T2
LDW
LDW.D1T1
.D1T1*A0
*A0,A5
,A5
LDW
LDW.D1T2
.D1T2*A0
*A0,B5
,B5
B
Data2 B5
03/05/21 15
Data1 A5
T1 *A0
A
.D1
T2 *B0
.D2
B
LDW.D1T1
LDW.D1T1*A0,A5
*A0,A5 B5
||||LDW.D2T2
LDW.D2T2*B0,B5
*B0,B5
03/05/21 16
Data1 A5
T1 *A0
A
.D1
T2 *B0
.D2
B5
B
LDW.D1T2
LDW.D1T2*A0,B5
*A0,B5
||||STW.D2T1
STW.D2T1A5,*B0
A5,*B0
03/05/21 17
Data1 A5
T1 *A0
A
.D1
T2 *B0
.D2
B6
B
LDW.D1
LDW.D1 *A0,B5
*A0,B5
||||STW.D2
STW.D2 B6,*B0
B6,*B0
03/05/21 18
Data1 A5
*A0
A
.D1
T2 *B0
.D2
B
B
LDW.D1
LDW.D1T2
T2 *A0,B5
*A0,B5 6
||||STW.D2
STW.D2 T2
T2 B6,*B0
B6,*B0
03/05/21 19
Les instructions conditionnelles n’utilisent pas les liaisons
(Cross Paths) pour l’échange de donnée.
Ex:
[B2] ADD .L1 A2,A0,A4
[A1] LDW .D2 *B0,B5
03/05/21 20
03/05/21 21
Addr
D (32)
EMIF
Regs (A0-A15) .D1 .D2
Regs (B0-B15)
.M1 .M2
.L1 .L2
.S1 .S2
Control Regs
CPU
03/05/21 22
External Memory
4K Async (SRAM, ROM, etc.)
L1P Sync (SBSRAM, SDRAM)
Internal Memory
CPU L2 Unified (data or prog)
64K 4 blocks - each can be
RAM or cache
4K Level 1 Cache
L1D 4KB Program
4KB Data
03/05/21 23
Byte Address
0000_0000 External Memory
64K x 8 Internal
(L2 cache) Async (SRAM, ROM, etc.)
Sync (SBSRAM, SDRAM)
Internal Memory
0180_0000 On-chip Peripherals Unified (data or prog)
4 blocks - each can be
RAM or cache
8000_0000 0 256M x 8 External
Level 1 Cache
9000_0000 1 256M x 8 External 4KB Program 4K
4KB Data P
A000_0000 2 256M x 8 External Not in map L2
CPU
B000_0000 64K
3 256M x 8 External
4K
FFFF_FFFF D
03/05/21 24
Addr
D (32)
EMIF
Regs (A0-A15) .D1 .D2
Regs (B0-B15)
.M1 .M2
.L1 .L2
.S1 .S2
Control Regs
CPU
03/05/21 25
Program Addr 32
Internal PC
Memory Program Data 256
A
Data Addr - T1 32 A
D regs
Data Data - T1 32/64
External
Interface Data Addr - T2 32 B
A Data Data - T2 32/64 regs
x32
D
DMA Addr - Read 32
Peripherals
DMA Data - Read 32
A DMA
x32 DMA Addr - Write 32
D DMA Data - Write 32
03/05/21 26
Addr
D (32)
EMIF
Regs (A0-A15) .D1 .D2
Regs (B0-B15)
.M1 .M2
.L1 .L2
.S1 .S2
Control Regs
CPU
03/05/21 27
McBSP
McBSP
External EMIF
Memory EMIF
‘C6x HPI/XB
HPI/XB
DMA
DMA CPU
Timer
Timer
Boot
Boot
PLL
PLL
BOOT
- Boot from 4M external block Timer/Counters
(Boot The process of loading a program into - Two 32-bit Timer/Counters
program memory).
PLL (Phase lock loop circuit).
03/05/21 28
‘‘C6x
C6x
CLKOUT1 (‘C6x clock cycle)
PLL
CLKIN
*1 CLKOUT2 (1/2 CLKOUT1)
*4
03/05/21 29
Program
Data Ram
RAM
Addr
Internal Buses
D (32) DMA
EMIF
Regs (A0-A15) .D1 .D2 Serial Port
Regs (B0-B15)
Ext’l .M1 .M2 Host Port
Memory Boot Load
.L1 .L2
- Sync Timers
- Async .S1 .S2
Control Regs Pwr Down
CPU
03/05/21 30
Questions (Exam1)
Unités fonctionnelles :
.L .M .D .S
03/05/21 31
Unités fonctionnelles :
instr
instr .M1
.M1 A0,
A0, <src2>
<src2> ,, <dst>
<dst>
03/05/21 32
Unités fonctionnelles :
03/05/21 33
Unités fonctionnelles :
03/05/21 34
Unités fonctionnelles :
LDW
LDW ?? *A1,
*A1,B0 B0
|||| STW
STW ?? A0
A0, ,*B1
*B1
LDW
LDW D1T2
D1T2 *A1,
*A1,B0 B0
|||| STW
STW D2T1
D2T1 A0A0, ,*B1
*B1
03/05/21 35
Load/Store en parallèle en utilisant la liaison.
Data1 A0
T1 *A1
A
.D1
T2 *B1
.D2
B0
B
03/05/21 36
Les mémoires:
quatre pages.
03/05/21 37
Les instructions conditionnelles:
A1,A2,B0,B1,B2
03/05/21 38
Cours3: Architecture du DSPC6000 (2) Hanafi.S
Performances:
CLKOUT1
03/05/21 39
Codes
a- Écrire un code qui transfère le contenu de A0 A1
MV .L1 A0, A1
ou ADD .S1 A0, 0, A1
ou MPY .M1 A0, 1, A1 Q’elle est le problème avec
cette ins. ?
03/05/21 40
Cours3: Architecture du DSPC6000 (2) Hanafi.S
Codes
a- Écrire un code qui transfère le contenu de A0 A1
MV .L1 A0, A1
ou ADD .S1 A0, 0, A1
ou MPY .M1 A0, 1, A1 A0 ne peut être
que de 16 bits
b- un code qui initialise le registre A5 (Clear A5)
ZERO .S1 A5
ou SUB .L1 A5, A5, A5
ou MPY .M1 A5, 0, A5
ou CLR .S1 A5, 0, 31, A5
ou MVK .S1 0, A5
ou XOR .L1 A5,A5,A5
03/05/21 41
Cours3: Architecture du DSPC6000 (2) Hanafi.S
c- A2 = A0 2
+ A1
MPY.M1 A0, A0, A2
ADD.L1 A2, A1, A2
d- Si (B1 0) alors B2 = B5 * B6
e- A2 = A0 * A1 + 10
03/05/21 43
Cours3: Architecture du DSPC6000 (2) Hanafi.S
g- charger le registre A7 par le contenu du (mem1) puis incrémenter
le pointeur.
A7
mem1 10h
SDRAM
Synchronous Dynamic Random Access Memory : Une
mémoire dynamique utilsée comme mémoire externe.
SBSRAM
Synchronous Burst SRAM : mémoire externe synchrone.
Burst: un port série synchrone qui transfère 32 bits (word)
chaque frame de synchronisation.