Initiation à la modélisation et co-simulation comportementale C-VHDL
d’un réseau de communication sur Puce (Network on Chip)
C. Tanougast1, S. Jovanovic2, F. Monteiro1, C. Diou1, A. Dandache1
Laboratoire des Interfaces Capteurs et Microélectronique (L.I.C.M.)
1 Université Paul Verlaine de Metz, LICM-ISEA, 7 rue Marconi, 57070 Metz Technopole
2 Université Henri Poincaré – Nancy Université, BP 239, 54506 Vandœuvre-Les-Nancy
1. INTRODUCTION ET CONTEXTE
Cet article présente un projet pédagogique d’initiation à la modélisation et simulation comportementale d’un
r
ré
és
se
ea
au
u
d
de
e
c
co
om
mm
mu
un
ni
ic
ca
at
ti
io
on
n
s
su
ur
r
p
pu
uc
ce
e
(
(NoC - Network on Chip) [1], mené avec les étudiants de master 2 parcours
RSEE (Radiocommunication et Systèmes Electronique Embarqués) de l’Université Paul Verlaine de Metz.
Etant donné l’évolution rapide et de plus en plus complexe des systèmes sur puce (SoC - System On Chip) vers
des systèmes sur puce multi-processeurs (MPSoC - Multiprocessors SoC), l’interconnexion de communication
des modules ou cœurs (IP - Intellectual Property) constituant ces systèmes, a subit une évolution topologique et
structurelle. Cette dernière répond à des contraintes de performance et de coût liées à la complexité et à
l’augmentation croissante des modules ou IPs interconnectés. Actuellement cette évolution s’oriente vers
l’intégration d’un réseau de communication sur puce, mettant en œuvre la transmission des données par paquets
vers les nœuds interconnectés au réseau et correspondant aux modules ou IPs (processeurs, mémoires,
contrôleurs de périphériques reliés, etc.) (Figure 1). Cette transmission est réalisée à travers des routeurs
constituant le réseau et mettant en œuvre des règles d’aiguillage et de routage des paquets à travers le réseau [1].
C’est dans ce contexte que nous proposons aux étudiants de RSEE un projet d’initiation à la modélisation et à la
co-simulation C-VHDL comportementale d’un NoC à l’aide de l’outil Modelsim de MentorGraphics [2].
Temps
1990 1995 2000 2005 2010 ?
Connexions P2P Bus partagé Bus partagé
hiérarchique
Bus Matrice
(Bus Crossbar)
Network on Chip
F
Fi
ig
gu
ur
re
e
1
1.
.
E
Ev
vo
ol
lu
ut
ti
io
on
n
d
de
es
s
i
in
nt
te
er
rc
co
on
nn
ne
ec
ct
te
es
s
d
da
an
ns
s
l
le
es
s
S
Sy
ys
st
tè
èm
me
es
s
s
su
ur
r
P
Pu
uc
ce
e.
.
2. MODELISATION ET DESCRIPTION D’UN NoC ET DE SON ENVIRONNEMENT
2. 1. Etude de cas : Modélisation d’un NoC de type MESH avec routage X-Y.
Nous proposons aux étudiants de modéliser un NoC par aiguillage de paquets de données constituant un
message (switching packets), de topologie Mesh et de taille paramétrable (3x3, 6x6 et 10x10) avec des règles
d’aiguillage de type Wormhole (Wormhole switching) et selon l’algorithme de routage standard X-Y [1]. La
figure 2 illustre le type de réseau proposé aux étudiants. Il s’agit d’une matrice de routeurs intégrés associés
chacun à un noeud de calcul modélisé par un processeur PE (Processor Element). Chaque couple PE routeur
possède une adresse spécifique et peut émettre des messages. Ces messages sont partitionnés en paquets de
données de taille fixe. Chaque paquet est constitué de flits (flow control units) correspondant à des mots de
données de taille fixe. On définit également la notion de Phits (physical units) correspondant à l’unité
d’information pouvant être émis à travers les canaux physiques du réseau en un seul cycle.
A. Modélisation VHDL Comportementale d’un Routeur
Les étudiants sont amenés à modéliser, à l’aide d’une description VDHL comportementale, un routeur NoC de
paquets de données constitué de 5 flits. La taille d’un phit correspondant à la taille des canaux et entrées des
MIGREST
P5
buffers d’un routeur est égale à la taille d’un flit. Les spécifications d’un routeur sont alors décrites de la façon
suivante :
- Routeur de paquets de données de 5 flits de taille 9 bits (5x 9 bits).
- Canaux de données de taille 9 bits (taille d’un phit).
- Un buffer à chaque entrée de direction de profondeur 2 flits (2 x 9 bits).
- Cellule interne d’aiguillage du routeur (Switch) de type Crossbar.
- Quatre directions de transfert de données (Est, Ouest, Sud et Nord).
- Algorithme de routage déterministe de type X_Y.
- Règle d’aiguillage de type Wormhole : la connexion entre une entrée et une sortie de direction d’un
routeur est maintenu jusqu’à ce que tous les données élémentaires (flits) d’un paquet de message sont
envoyés.
00
20
N0
01
11
21
N1
02
12
22
N2
0N
1N
2N
NN
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
ij
Routeur d’adresse i, j
R
R
R
R
R
R
R
R
R
R
R
R
R
R
R
R
R
N
Nœud = module (processeur, IPs, mémoire, etc.)
X
Y
Figure 2. Structure du NoCs de type Mesh NxN.
La figure 3 donne une description de la spécification d’un routeur NoC. La modélisation globale du réseau
s’effectue ensuite par une description structurelle VHDL réalisée par des instanciations du module routeur en vue
d’élaborer un réseau NoC de taille paramétrable 3x3, 6x 6 et 10x 10 (figure 2).
B. Algorithme de routage
L’algorithme proposé aux étudiants est un algorithme de routage statique de type X_Y signifiant que les paquets
de données sont dirigés vers le PE destinateur à travers les routeurs du réseau selon d’abord l’axe des abscisses X
du réseau, puis selon son axe des ordonnées Y. La modélisation de l’algorithme de routage X_Y est réalisée en
VHDL selon l’algorithme suivant :
- If X_routeur < X_destination, direction paquets = Direction_Est
- If X_routeur > X_destination, direction paquets = Direction_Ouest
- If X_routeur = X_destination et Y_router > Y_ destination, direction paquets = Direction_Sud
- If If X_routeur = X_destination et Y_router < Y_ destination, direction paquets = Direction_Nord
- If If X_routeur = X_destination et Y_router = Y_ destination, direction paquets = Local_PE
MIGREST
P5
Switch - Crossbar
PE
Buffers
Buffers
Buffers
Buffers
Routage
-
Arbitre
Direction_Est
Direction_Ouest
Direction_Sud
Direction_Nord Pe_out Pe_in
Figure 3. Illustration du model structurel d’un Routeur NoC.
La figure 4 illustre l’algorithme de routage X_Y d’un paquet entre les PE_00 et PE_22. Une mauvaise
description de cet algorithme peut faire apparaître au cours de la simulation du NoC des interblocages
(Deadlock) ou des bouclages (Livelock) de paquets [1].
Add_00
Add_0
1
Add_0
2
Add_0
3
Add_
1
0
Add_
11
Add_
12
Add_
13
Add_
2
0
Add_
3
0
Add_
21
Add_
22
Add_
23
Add_
31
Add_
32
Add_
33
PE
PE
Figure 4. Illustration de l’algorithme X_Y.
C. Police d’arbitrage
L’élaboration des règles d’arbitrage de priorité de l’ordre de traitement des paquets entrant dans un routeur et
routés selon les sorties de direction, est laissée à l’initiative des étudiants. Ces gles doivent être associées à
l’algorithme de routage, au nombre de flits constituant les paquets et aux règles d’aiguillage Wormhole.
L’objectif est d’amener les étudiants à une description itérative progressive du module de routage et d’arbitrage
au fur et à mesure des phases de modélisation simulation mettant en évidence les phénomènes de blocage
temporaire, de verrouillage (starvation) et leurs impacts sur la notion de latence de transfert de paquets de
données.
2. 2. Co-Simulation sous environnement ModelSim
A partir d’une description en langage C modélisant l’envoi et la réception de paquets de données par l’ensemble
des PEs associés à chaque routeur du NoC, les étudiants réalisent une modélisation comportementale VHDL
détaillée d’un NoC (routeurs, contrôleurs de flux données, etc.) et une validation par co-simulation C-VHDL
MIGREST
P5
grâce à l’interfaçage VHDL FLI (Foreign Language Interface) de ModelSim [3]. La modélisation et la simulation
du réseau NoC veloppé par les étudiants sont assurées par la description structurelle VHDL du réseau associée
à une modélisation en langage C/C++ de l’ensemble des PEs du réseau assurant les émissions et les réceptions
des paquets de données. La figure 5 illustre l’interfaçage et l’association d’une co-simulation sous
environnement ModelSim. A partir des fichiers contenant les paquets de données à transmettre par des PE
émetteurs vers PEs destinataires, un interfaçage entre la description VHDL du NoC et le model C/C++ des
fonctionnalités d’émission et de réception de paquets par chaque PE est exécuté sous ModelSim.
Add_00
Add_0
j
Add_
i
0
Add_
ij
NoC.vhd
ModelSim
PE
oo
PE
01
PE
0i
PE
10
PE
ij
PEs.C
PEs.vhd
Testbench.vhd
Emission de paquets de
données par PEs
Réception de paquets
de données par PEs
Figure 5. Illustration de la co-simulation C-VHDL sous ModelSim.
En pratique, le model abstrait des PEs est mis en œuvre à travers une compilation DLL de la modélisation C/C++
des PEs. Cette dernière est ensuite définie comme la partie « architecture» de la description VHDL des PEs du
NoC sous ModelSim. La figure 6 montre l’intégration de fonctionnalité abstrait C/C++ dans la partie
« architecture » de la description VHDL des PEs du NoC.
Figure 6. Attribution FLI d’un model abstrait par DLL dans une description VHDL.
La figure 7 présente le contenu d’un fichier associé à un PE et contenant les paquets (constitués de 5 flits) à
transmettre. Le premier flit correspond à l’adresse du PE émetteur, le second flit à l’adresse du PE destinataire
suivi ensuite des flits de données à transmettre.
Figure 7. Exemple de paquets de données à transmettre par le PE d’adresse 00.
MIGREST
P5
Au cours des phases de co-simulation, les étudiants sont sensibilisés aux risques d’interblocage (Deadlock), de
bouclage (Livelock) et de verrouillage (Starvation) des paquets de données dans un NoC [1]. Ces risques sont
principalement dus au partage de ressources limitées et aux règles d’accès à ces ressources. Ils sont couramment
étudiés et analysés dans le développement d’un NoC adapté pour la conception d’un MPSoC spécifique.
Les Figures 8 et 9 donnent respectivement des exemples de résultat de co-simulation sous ModelSim. La figure 8
présente un aiguillage Wormhole d’un paquet de données selon le routage X_Y. La figure 9 montre la réception
d’un paquet de données par un PE du NoC.
Figure 8. Exemple de résultat de simulation de l’aiguillage Wormhole d’un paquet selon X_Y.
Figure 9. Exemple de simulation de réception d’un paquet données par le PE_54.
Cette co-simulation permet une validation accélérée comportementale du NoC tout en mettant en évidence sa
caractérisation à travers les notions de latence et de débit de données. La figure 10 montre un exemple des
MIGREST
P5
1 / 6 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !