Système multiprocesseur intégrés sur puce

publicité
Systèmes multi-processeurs
intégrés sur puce
version 1.0
PHY 568
Alain Greiner
Pla
n

Architectures multi-processeurs à mémoire partagée

Applications parallèles embarquées

Bus système / exemple du PIBUS
PHY 568
Alain Greiner
2
Bu
t
Un système multiprocesseurs intégré sur puce (MPSoC),
cherche à exploiter le parallélisme « gros grain » d’une
unique application embarquée.
Exemple : contrôle d’un téléphone portable
Une même puce contient plusieurs processeurs exécutant
en parallèle différentes tâches.
Ces tâches communiquent généralement entre elles à
travers un espace d’adressage partagé, suivant un schéma
producteur/consommateur.
PHY 568
Alain Greiner
3
Espace d’adressage
partagé
Les maîtres (ou initiateurs) démarrent une transaction en effectuant une
lecture ou une écriture à une adresse particulière.
Les esclaves (ou cibles) terminent la transaction en renvoyant la
donnée demandée (lecture), ou en renvoyant un acquittement (écriture)
Esclaves
RAM
ROM
TTY
I/O
P0
P1
P2
P3
Interconnect
Maîtres
Une transaction est un couple (commande / réponse).
PHY 568
Alain Greiner
4
Décodage des
adresses


Tous les composants du système
ont la même vision de l’implantation
des cibles dans l’espace d’adressage.
L’interconnect décode les bits de poids
fort de l’adresse pour pour acheminer
la commande vers la cible concernée.
31
0
MSB

ROM
RAM
TTY
LSB
La cible décode les poids faible de l’adresse
pour adresser la case mémoire visée,
en lecture ou en écriture.
PHY 568
FFFF FFFF
I/O
0000 0000
Alain Greiner
5
Pla
n

Architectures multi-processeurs à mémoire partagée

Applications parallèles embarquées

Bus système / exemple du PIBUS

Principe des mémoires caches
PHY 568
Alain Greiner
6
Caractéristiques
Générales
• Les applications logicielles sont souvent décrite sous
forme d’un réseau de tâches communicant entre elles à
travers des canaux de communication.
• Une tâche est un programme séquentiel « infini » qui
utilise des fonctions de communication prédéfinies :
• Un canal de communication est très souvent un tampon
mémoire circulaire, géré comme une FIFO logicielle, et
protégé par par un verrou d’accès exclusif.
while(1) {
…
…
send(channel, buffer)
…
…
}
Tâche productrice
PHY 568
while(1) {
…
…
receive(channel, buffer)
…
…
}
Canal
Tâche consommatrice
Alain Greiner
7
Parallélisme de type « pipeline »
T0
T1
T2
T3
Cette structure se retrouve fréquemment dans les applications
de type « traitement de flux video », telles que décodage MPEG…
Lorsque le temps de calcul pour traiter une image est supérieur
à la période de l’image, on découpe le traitement en plusieurs
tâches. Chaque tâche i a une durée inférieure à la période image,
et est exécutée sur un processeur particulier.
La durée d’exécution de chaque tâche est variable (elle dépend
généralement de l’image), mais toutes les tâches doivent avoir des
durées moyennes peu assez voisines, pour « équilibrer » le pipe-line.
PHY 568
Alain Greiner
8
Parallélisme de type « taskfarm »
Cette structure se retrouve fréquemment dans les applications
de type « télécommunication », telles que classification de paquets
dans un flux Gigabit Ethernet.
T0
Tin
T1
Tout
Tn
Toutes les tâches Ti accomplissent le même traitement, mais sur
des paquets différents.
PHY 568
Alain Greiner
9
Parallélisme
mixte
On peut évidemment combiner les deux structures :
Tin
T00
T01
T10
T11
Tn0
Tn1
Tout
Dans tous les cas, l’expression du parallélisme « gros grain »
(découpage en tâches et définition du schéma de communication)
est à la charge du concepteur du système.
PHY 568
Alain Greiner
10
Pla
n

Architectures multi-processeurs à mémoire partagée

Applications parallèles embarquées

Bus système / exemple du PIBUS
PHY 568
Alain Greiner
11
Bus
système
L’interconnect est réalisé comme un ensemble de nappes de fils
partagées par plusieurs émetteurs.
La limitation de ce type d’interconnect est de ne permettre qu’une
seule transaction à la fois…
Esclaves
RAM
ROM
TTY
I/O
P0
P1
P2
P3
BCU
Maîtres
PHY 568
Alain Greiner
12
NRESET
CK
Les signaux du
PIBUS
A[31:0]
OPC[3:0]
commande
Cible j
READ
LOCK
D[31:0]
Maître i
ACK[2:0]
GNTi
REQi
PHY 568
BCU
réponse
SELj
Alain Greiner
13
Caractéristiques
Générales
Synchrone : Tous les composants connectés au bus
doivent être cadencés par la même horloge et respecter
les mêmes contraintes de setup-time et hold-time.
Pipeliné : Il existe des nappes de fils séparées pour
transporter les adresses et pour transporter les données.
Rafales : il est possible de lire ou d’écrire plusieurs mots
de 32 bits en une seule transaction.
PHY 568
Alain Greiner
14
Fonctionnement pipeline
GNT
GNT
AD
GNT
AD0
DT
LOCK
~
0
~
1
AD1
AD2
AD3
DT0
DT1
DT2
1
1
0
AD
DT3
~
DT
0
• Recouvrement entre 2 transactions consécutives :
L’allocation du bus à un nouveau maître (GNT) se fait pendant
le dernier cycle de la transaction précédente.
• Recouvrement entre transferts au sein d’une rafale :
L’adresse correspondant au transfert (i+1) est transmise durant
le même cycle que la donnée (i)
PHY 568
Alain Greiner
15
Fonctionnement
« asynchrone »
La durée d’une transaction n’est pas garantie :
- le nombre de cycles d’attente pour obtenir l’allocation du bus
(entre l’activation du signal REQ et l’obtention du signal GNT)
est généralement non prédictible…
-la cible peut insérer des cycles d’attente si elle n’est pas
capable de répondre en un cycle…
GNT
GNT
AD
AD0
XXX
ACK
PHY 568
~
DT
wait ready
~
AD1
AD1
AD1
AD2
AD3
XXX XXX
DT0
DT1
DT2
wait
wait
DT3
ready ready ready ready
Alain Greiner
16
Les trois fonctions du contrôleur de
bus
1/ Allocation du bus (et arbitrage entre les différents
maîtres, en cas de requêtes simultanées).
2/ Décodage des bits de poids fort de l’adresse,
et sélection de la cible concernée par la transaction.
3/ Gestion « d’un chien de garde » permettant de
terminer la transaction, lorsque la cible sélectionnée
ne répond pas.
PHY 568
Alain Greiner
17
Allocation du bus
Le mécanisme d’arbitrage possède une topologie en étoile.
Chaque maître est connecté au BCU par deux signaux« privés » :
- REQi est une demande d’allocation du bus par le maître i
- GNTi est une autorisation d’utilisation du bus pour le maître i
BCU
REQ0
P0
GNT0
REQ1
P1
GNT1
REQ2
P2
GNT2
PHY 568
Alain Greiner
18
Automate du contrôleur de
bus
• Le BCU est contrôlé
par un automate à 4 états.
IDLE
REQ’
REQ
• L’allocation du bus se fait
dans les états IDLE et DT.
AD
LOCK
LOCK’
DTAD
RDY’+ LOCK
RDY.LOCK’
DT
RDY.REQ
RDY’
RDY.REQ’
PHY 568
Alain Greiner
19
Politiques
d’arbitrage
PHY 568

La politique d’arbitrage n’est pas définie par le
protocole du PIBUS : elle est spécifique à chaque
système intégré.

Il existe de nombreuses politiques possibles :
– priorité tournante (round robin)
– priorité fixe (cablées dans le BCU)
– réservation de bande passante
Alain Greiner
20
Téléchargement