Architecture matérielle du NoC
Topologie
La topologie indique comment sont agencés les différents composants matériels du NoC, leur disposition spatiale et leurs connexions entre composants. Il existe de nombreuses topologies et le choix d’une topologie est réalisé selon les besoins en communication du SoC. En effet, la latence des transmissions entre 2 IPs dépend de la distance physique qui les séparent et aussi des chemins de routage disponibles. La figure 1.2 montre quelques exemples de topologies que l’on peut retrouver dans un NoC. La topologie peut être régulière ce qui induit la possibilité de schémas de routage simples comme les topologies des figures 1.2.a,b. Il existe d’autres topologies dont le comportement des routeurs diffère en fonction de leur position, comme l’illustre la figure 1.2.c. Il y a également des topologies irrégulières qui autorisent un meilleur dimensionnement du réseau pour l’application considérée mais qui requièrent la mise en œuvre d’un routage spécifique .
Routeur
Le routeur est un nœud du réseau qui oriente les données arrivant à lui vers le bon port de sortie. Sa fonction se résume donc à retransmettre les données d’une direction donnée vers une direction de sortie. Un routeur est connecté à d’autres routeurs et à une IP via un adaptateur (NA). Il possède des ports d’entrée et de sortie qui sont mis en relation suivant le besoin de routage spécifié par le paquet de données à transférer. Il peut posséder des buffers stockant les données en transit. Ces buffers peuvent être de taille plus ou moins importante suivant le protocole ou le mécanisme de routage choisi.
Les dimensions d’un buffer s’expriment en fonction de sa largeur, définie par celle des liens du réseau (en bits) et en profondeur par rapport au nombre de mots pouvant être stocké. Les composants du routeur seront détaillés en section 1.3.
Adaptateur réseau
L’adaptateur réseau (NA) est le lien entre les utilisateurs du NoC et le réseau lui-même. Il doit rendre l’utilisation du NoC transparente pour le processeur à coût minimal en termes de calcul et de surface. Cette couche supplémentaire permet de dissocier les calculs des communications, c’est pourquoi le NA est représenté en 2 parties : le côté interface processeur (CI) et l’interface réseau (NI) comme illustré à la figure 1.3. Étant donné que le NA injecte les messages dans le réseau, il est en charge de la gestion du contrôle du flux des messages dans le réseau. Ce procédé est rendu possible par l’établissement d’une communication entre les routeurs et les NAs, les routeurs donnant un retour sur leur état pour indiquer s’ils sont en mesure de stocker des messages supplémentaires.
Interconnexions
Il s’agit du lien physique qui permet le passage des données d’un routeur à un autre. Le nombre de fils physiques utilisés pour une interconnexion détermine la bande passante maximum par cycle d’horloge. Les fils sont composés d’inverseurs (répéteurs) qui amplifient le signal pour limiter l’atténuation. Les liens présents entre les routeurs peuvent être uni-directionnels ou bi-directionnels. Maintenant que les éléments de l’architecture du NoC sont présentés, le prochain paragraphe présente comment tous ces composants interagissent entre eux.
Communication dans un NoC
La communication entre ces composants se fait au moyen de protocoles implantés dans les routeurs et les NAs. Ces protocoles définissent les règles du transfert d’un message d’un point à un autre du réseau. Nous retrouvons parmi eux le formatage des données injectées dans le réseau, le protocole de gestion de flux, le type de commutation, la politique de mémorisation et également l’algorithme de routage utilisé par le NoC. Nous allons voir dans un premier temps comment la donnée de l’IP est transformée pour être injectée dans le NoC.
Transmission d’un message
Lorsqu’un processeur souhaite envoyer un message par le NoC, le message n’est pas envoyé selon le protocole de communication des processeurs. En effet, le message est découpé en paquets afin d’être envoyé morceau par morceau (figure 1.4a) dans le réseau à l’instar des réseaux à notre échelle tels qu’internet. La quantité de données transmises simultanément entre deux composants du réseau est limitée par la capacité du lien, donc par sa largeur, exprimée en nombre de bits. Ainsi, un paquet doit aussi être découpé en plusieurs morceaux quel que soit le protocole de commutation adopté dans le réseau. Ce découpage est illustré à la figure 1.4b. La granularité des données envoyées sur le réseau correspond à l’unité physique phit (PHysical unIT), qui détermine la quantité de bits transportables sur le lien en un cycle. En revanche, le contrôle de flux sur un lien peut être réalisé avec une granularité de un ou plusieurs mots (phits). Par conséquent, un niveau de granularité plus gros est défini avec l’unité de contrôle de flux flit (FLow control unIT) comme illustré à la figure 1.4c,d. Le contrôle se fait donc à la fréquence des flits, alors que les données circulent à la fréquence des phits. Néanmoins, il est très fréquent de rencontrer des NoCs dont le flux est contrôlé mot par mot et par conséquent, les flits et phits sont de même taille. Voyons en détail le contenu d’un paquet circulant dans un NoC.
Un paquet est constitué d’un en-tête contenant les informations nécessaires au routage de celui-ci vers sa destination présentée à la figure 1.4. La suite du paquet est la charge utile divisée en plusieurs phits, et se termine par la queue indiquant la fin du paquet. Le type du phit est identifié par une étiquette, un groupe de bits (2 dans l’exemple) qui indique le type du phit aux éléments du NoC. Par exemple, dans la figure 1.4, l’étiquette 00 correspond à l’en-tête, l’étiquette 01 à la charge utile et la valeur 10 à la queue qui est le dernier élément du paquet.
Gestion du flux
Le transfert des flits à travers les routeurs et NAs est géré avec un protocole de flux de contrôle. En effet, des règles sont établies pour indiquer si le récepteur est disponible pour recevoir une nouvelle donnée. Plusieurs méthodes existent pour gérer le flux des données :
— Le protocole ACK/NOACK utilisé par le NoC XPIPES [7] est un mécanisme d’accusé de réception, la donnée est conservée par l’émetteur tant que le destinataire n’a pas envoyé le signal ACK d’acquittement, signalant la bonne réception du paquet. Si la donnée n’est pas reçue, le signal NOACK passe de 0 à 1 pendant un cycle d’horloge, sinon c’est le signal ACK qui passe de 0 à 1 pendant un cycle.
— Le protocole STALL/GO utilise deux liens entre chaque paire d’émetteur et de récepteur. Quand le tampon mémoire du récepteur a suffisamment de place pour recevoir une donnée, il fait passer le signal GO à 1. Et dès que le tampon mémoire de réception n’a plus assez de place, le récepteur fait passer le signal STALL à 1.
— Le contrôle de flux par crédits d’émission est également utilisé par plusieurs NoCs tels que le SPIN [8] et AEthereal [9]. L’émetteur possède une quantité donnée de crédits, leur nombre est décrémenté lorsqu’une donnée est envoyée. A posteriori, lorsque le récepteur a consommé les données reçues, il attribue à l’émetteur un nombre de crédits correspondant à l’espace disponible de sa mémoire de réception. Ces protocoles permettent la gestion entre les différents éléments du réseau. Nous allons désormais aborder l’exploitation des ressources du réseau.
Type de commutation du réseau
Le type de commutation précise comment sont utilisées les ressources du NoC. Nous distinguons deux types de commutation :
— La commutation de circuit (circuit switching) : elle repose sur la réservation d’un ensemble de ressources du réseau pour établir un chemin entre la source et la destination pendant le transfert de tout le message. À la fin de l’envoi, le chemin est dissout.
— La commutation de paquet (packet switching) : elle consiste à acheminer les messages en les découpant sous forme de paquets. Chaque paquet comporte un entête contenant les adresses nécessaires pour son routage dans les nœuds du réseau. À l’arrivée les messages sont reconstitués à partir des paquets reçus. Ce type de commutation offre une utilisation plus rationnelle des ressources mais demande un contrôle de flux et de congestion. La commutation de paquet nécessite que les routeurs puissent stocker les flits en transit dans le NoC. Des buffers sont donc présents dans les routeurs pour remplir ce rôle. La dimension des buffers est définie selon la politique de mémorisation du réseau.
|
Table des matières
Introduction générale
Contexte et problématique
Contributions de la thèse
Organisation du document
I Modélisation
1 État de l’art du NoC et sa modélisation
Introduction
1.1 Réseaux sur puces
1.1.1 Définition d’un NoC
1.1.2 Architecture matérielle du NoC
1.1.3 Communication dans un NoC
1.1.4 Quelques NoC
1.2 Modélisation de la consommation d’un circuit
1.2.1 Puissance statique et dynamique
1.2.2 Méthodes d’estimation de la consommation d’énergie
1.3 Modélisation de la consommation du NoC
1.3.1 Modélisation de l’adaptateur réseau
1.3.2 Modélisation du routeur
1.3.3 Modélisation des interconnexions
1.4 Simulateurs de NoC
1.4.1 Introduction
1.4.2 Tableau récapitulatif
1.5 Bilan
2 Amélioration de l’estimation de la consommation d’énergie du NoC
Introduction
2.1 Présentation du modèle d’interconnexions considérant les données
2.1.1 Modélisation de la consommation des interconnexions considérant les données
2.1.2 Modélisation d’un fil
2.1.3 Regroupement des lignes
2.2 Préparation du simulateur
2.2.1 Extraction de traces d’applications
2.2.2 Modifications de Noxim-XT
2.3 Évaluation du modèle d’interconnexions des NoCs
2.3.1 Analyse des résultats
2.4 Bilan
II Optimisation
3 État de l’art de l’optimisation de la consommation d’énergie des NoCs
3.1 Introduction
3.2 Optimisation au niveau de la topologie
3.2.1 Exploration des topologies 2D
3.2.2 Topologies en 3D
3.3 Optimisation au niveau du routeur
3.3.1 Power gating
3.3.2 Buffer avec mémoire non-volatile
3.3.3 Algorithme de routage
3.4 Optimisation au niveau des interconnexions
3.4.1 Optimisation architecturale
3.4.2 Optimisation du circuit
3.4.3 Optimisation technologique
3.5 Bilan
4 Propositions d’optimisations de la consommation d’énergie au niveau des interconnexions
4.1 Introduction
4.2 Smart Temporal Shielding
4.2.1 Temporal Shielding sur bus
4.2.2 Analyse de la génération du blindage et de l’optimalité
4.2.3 Étude statistique de l’optimalité
4.2.4 Architecture du Smart Temporal Shielding
4.2.5 Résultats expérimentaux
4.3 Communication inspirée par le Cortex
4.3.1 Contexte
4.3.2 Figure de mérite du CIC
4.3.3 Architecture
4.3.4 Évaluation du CIC
4.3.5 Stratégies de transmission
4.3.6 Résultats expérimentaux
4.4 Bilan
Conclusion
Télécharger le rapport complet