Vous êtes sur la page 1sur 33

Chapitre 3

Architecture du
TMS320C6000
(2)
12/10/2020 1
Est qu’il y a un échange de donnée entre les parties (A et B) ?

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 12/10/2020
Est qu’il y a un échange de donnée entre les parties (A et B) ?

L’échange des données entre les deux parties du CPU


nécessite quelques connections (liaisons).

12/10/2020 3
L’échange de donnée entre les parties (A et B) du CPU

Il existe deux types de liaison (cross paths) entre


la partie A et B:

 Liaison pour l’échange des opérandes (Data cross paths).

 Liaison pour l’échange des adresses (Address cross paths).

12/10/2020 4
Exemple 1

src
dst .L1 A
.M1 src
MPY .M1 A0,A1,A2
|| MPY .M2 B0,B1,B2
src
dst .L2
.M2 src B

12/10/2020 5
Exemple 2

src
dst .L1 A
.M1 src

ADD .L1 A2,B2,A3

src
dst .L2
.M2 src B

12/10/2020 6
Exemple 3

src
dst .L1 A
.M1 src

ADD .L2 A2,B2,B3

dst .L2
.M2 src B

12/10/2020 7
Data cross paths
 Cette liaison peut être considéré comme un registre d’échange
d’opérande.

 Elle permet l’utilisation des opérandes de la partie A par la


partie B du CPU et le contraire.

 Il existe deux liaisons de donnée:

 Une qui transfère les opérandes de la partie B vers la


partie A, X1.

 Une qui transfère les opérandes de la partie A vers la


partie B, X2.

12/10/2020 8
Data cross paths

La liaison de donnée est appliqué qu’avec


les unités fonctionnelles .M, .L et .S.

12/10/2020 9
Data cross paths

<dst>
.L1 <src>
A
.M1 <src>
.S1 2x

1x
<src>
<dst>
.L2
.M2 <src> B
.S2

12/10/2020 10
Les limites de la liaison de donnée

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.

12/10/2020 11
Les limites de la liaison de donnée

<dst>
.L1 <src>
A
.M1 <src>
.S1 2x
Ex:

1x
ADD .L1x A0,A1,B2 
MPY .M1x A0,B6,A9  B
12/10/2020 12
Les limites de la liaison de donnée

<dst>
.L1 <src>
A
.M1 <src>
.S1 2x

SUB .S1x A8,B2,A8 1x


|| ADD .L1x A0,B0,A2
B
Non valide!
12/10/2020 13
Échange d’adresse (Address cross paths)

Data

Addr
A
.D1

Le pointeur doit être du même côte que l’unité de chargement.

LDW .D1T1 *A0,A5


STW .D1T1 A5,*A0
12/10/2020 14
Load/Store dans l’autre partie

Data1 A5

T1 *A0
A
.D1

T2
LDW .D1T1 *A0,A5
LDW .D1T2 *A0,B5
B
Data2 B5

12/10/2020 15
Chargement parallèle (standard)

Data1 A5

T1 *A0
A
.D1

T2 *B0
.D2
B
LDW.D1T1 *A0,A5 B5
|| LDW.D2T2 *B0,B5
12/10/2020 16
Load/Store en parallèle en utilisant la liaison.

Data1 A5

T1 *A0
A
.D1

T2 *B0
.D2
B
LDW.D1T2 *A0,B5 B5
|| STW.D2T1 A5,*B0
12/10/2020 17
Utilisation d’Address cross paths non valide
Data1 A5

T1 *A0
A
.D1

T2 *B0
.D2
B6
B
LDW.D1 *A0,B5
|| STW.D2 B6,*B0
12/10/2020 18
Utilisation d’Address cross paths non valide
Data1 A5

*A0
A
.D1

T2 *B0
.D2
B
B
LDW.D1 T2 *A0,B5 6
|| STW.D2 T2 B6,*B0
12/10/2020 19
Utilisation d’Address cross paths non valide

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

12/10/2020 20
Le CPU de C67xx

12/10/2020 21
Block Diagram de C6x

Addr

D (32)
EMIF
Regs (A0-A15) .D1 .D2

Regs (B0-B15)
.M1 .M2
.L1 .L2
.S1 .S2
Control Regs
CPU
12/10/2020 22
L’espace mémoire du TMS320C67xx

External Memory
4K  Async (SRAM, ROM, etc.)
L1P  Sync (SBSRAM, SDRAM)

Internal Memory
CPU L2  Unified (data or prog)
 4 blocks - each can be
64K
RAM or cache

4K Level 1 Cache
L1D  4KB Program
 4KB Data

12/10/2020 23
L’espace mémoire du TMS320C67xx
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 256M x 8 External
1  4KB Program 4K
4KB Data P
A000_0000 2 256M x 8 External

 Not in map CPU L2
B000_0000 3 256M x 8 External
64K

4K
FFFF_FFFF
12/10/2020
D
24
Block Diagram de C6x

Addr

D (32)
EMIF
Regs (A0-A15) .D1 .D2

Regs (B0-B15)
.M1 .M2
.L1 .L2
.S1 .S2
Control Regs
CPU
12/10/2020 25
Les bus de C6x
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
12/10/2020 26
Block Diagram de C6x

Addr

D (32)
EMIF
Regs (A0-A15) .D1 .D2

Regs (B0-B15)
.M1 .M2
.L1 .L2
.S1 .S2
Control Regs
CPU
12/10/2020 27
Les périphériques
McBSP
External EMIF
Memory
‘C6x HPI/XB
DMA
CPU
Timer
Boot
PLL

EMIF (External Memory Interface) McBSP (Multi-Channel Buffered Serial


- Glueless access to async/sync memory Port)
EPROM, SRAM, SDRAM, SBSRAM - High speed sync serial comm
DMA ( Direct Memory Acces) HPI (Host Port Interface) /Expansion
- 4/16 Channels Bus (XB)

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).
12/10/2020 28
Horloge

‘C6x
CLKOUT1 (‘C6x clock cycle)
PLL
CLKIN
*1 CLKOUT2 (1/2 CLKOUT1)
*4

La durée d’un cycle

CLKIN - MHz PLL CLKOUT1 - MHz CLKOUT2 - MHz MIPs (max)


250 *1 250 (4ns) 125 2000
225 *1 225 (4.44ns) 112,5 1800
50 *4 200 (5ns) 100 1600
25 *4 100 (10ns) 50 800

12/10/2020 29
Block Diagram de C6x (Finale)

Program
Data Ram
RAM

Addr
Internal Buses
D (32) DMA
EMIF
.D1 .D2 Serial Port
Regs (A0-A15)

Regs (B0-B15)
Ext’l .M1 .M2 Host Port
Memory Boot Load
.L1 .L2
- Sync Timers
- Async .S1 .S2
Control Regs Pwr Down

CPU
12/10/2020 30
Fin du chapitre

12/10/2020 31
Mémoire cache
Mémoire à accès rapide, très utilisée pour copier les
données et les instructions à partir d’une mémoire lente.
Elle permet un accès rapide parce que ça taille est petite
et elle est proche du CPU.

12/10/2020 32
SRAM
Static Random Access Memory : Une mémoire rapide à accès
Aléatoire.

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.

12/10/2020 33

Vous aimerez peut-être aussi