Validation du concept du RFNoC et Allocation de ressources spectrales

  Réseaux sur puce

L’évolution des architectures des SoC a fait que le nombre de coeurs qui y sont intégrés est en augmentation. Cette tendance rend l’utilisation des bus partagés inadéquate pour ce type d’architectures. En effet, la bande passante globale du bus partagé répartie sur l’ensemble des coeurs n’est plus en mesure d’assurer l’interconnexion du SoC. A partir de ce constat, les réseaux sur puce sont apparus pour pallier ce problème. L’architecture des NoC est très semblable à celle des macro-réseaux de façon générale tels que les réseaux de capteurs, avec des contraintes plus ou moins équivalentes mais souvent à des niveaux plus poussés. Le NoC doit être à la fois à très basse consommation d’énergie et réduire au minimum la latence de communication ainsi que le coût en surface de Silicium de l’électronique qui lui est dédiée. L’architecture des NoC est à la fois évolutive (scalable, mais pas indéfiniment) et permet d’assurer les performances nécessaires pour le fonctionnement des MPSoC. Dans les réseaux sur puce, il n’y a plus la notion de maître et d’esclave, tous les blocs fonctionnels peuvent être à la fois initiateurs et cibles. Contrairement aux bus partagés, le réseau sur puce transmet des messages sous forme de paquets de données. Ces paquets sont acheminés de l’initiateur vers une ou plusieurs cibles.

Cet acheminement est effectué avec des aiguillages dans les routeurs et des transferts via des bus reliant les routeurs. La topologie la plus connue des réseaux sur puce est le réseau en grille. La figure 1.4 représente un réseau sur puce en grille qui sert d’interconnexion pour un ensemble de noeuds, appelé aussi des « processing elements ». Ces noeuds sont constitués de processeurs, de mémoires, d’IP ou encore d’une combinaison de plusieurs de ces éléments. Chaque noeud est connecté à son propre routeur à travers une interface réseau (NI 4) qui empaquette tout message provenant du noeud avant de le transmettre au routeur. Le routeur est doté de buffers sur ses entrées afin de recevoir les paquets de son propre noeud ou de l’un des routeurs voisins cardinaux. Ensuite, selon l’adresse de destination contenue dans l’entête du paquet, celui-ci est aiguillé vers l’une des sorties appropriée en utilisant un crossbar. Un bloc d’arbitrage accorde la priorité en cas de plusieurs paquets, de sources différentes et à diriger vers la même sortie du routeur. Ainsi, les paquets traversent plusieurs liens d’interconnexions et transitent sur plusieurs routeurs afin de parcourir le chemin reliant leurs sources et leurs destinations. Tous les réseaux sur puce ne fonctionnent pas de la même manière et le fonctionnement du réseau décrit ci-dessus permet juste de mettre l’accent sur sa différence par rapport aux bus partagés. A ce jour, plusieurs architectures de réseaux sont proposées. Il existe des caractéristiques propres à chaque NoC permettant de le différencier de l’ensemble des autres NoC. Quelques unes de ces caractéristiques sont présentées dans les paragraphes suivants.

Topologie

Un réseau sur puce est caractérisé par sa topologie qui décrit l’organisation des interconnexions physiques du graphe du réseau. Elle désigne le nombre et l’emplacement des liaisons des noeuds (les routeur-commutateurs et les liens d’interconnexion). Il existe deux types de topologies, les topologies directes et les topologies indirectes. Le réseau en topologie directe a la particularité d’associer à chaque routeur, au moins un élément du réseau à interconnecter. Ainsi le nombre de routeurs est inférieur ou égal au nombre d’éléments du réseau à interconnecter. Chaque routeur est connecté directement à un ensemble de routeurs voisins. Cette topologie permet d’augmenter la bande passante globale quand le nombre de noeuds augmente mais cela est couteux en termes de consommation et de surface en silicium. En effet, augmenter le nombre de liens de connexion permet de meilleurs performances en bande passante mais cela s’accompagne par un surcoût en consommation d’énergie et en surface de silicium des liens et des routeurs. La figure 1.5 montre une topologie avec une interconnexion complète, c’est à dire, chacun des noeuds est directement connecté avec l’ensemble des autres noeuds du réseau. Lorsque le nombre de nœuds à interconnecter est élevé, cette approche n’est plus utilisable.

Il existe d’autres configurations de la topologie directe qui offrent un bon compromis entre le coût et les performances du réseau. Dans ces topologies, les connexions physiques directes entre les routeurs ne sont déployées que partiellement. Par conséquent, certains paquets devraient transiter sur un ou plusieurs routeurs intermédiaires avant d’atteindre leurs destinations respectives. L’une des topologies satisfaisant ces conditions est la topologie en octogone (Figure 1.6). La topologie en octogone (Figure 1.6) est constituée de huit noeuds et douze liens physiques de connexion. L’envoi d’un message nécessite deux sauts au maximum. Le regroupement de plusieurs réseaux en octogone permet d’augmenter le nombre de noeuds du SoC. Un des noeuds des réseaux élémentaires en octogone est transformé en pont afin d’assurer la connexion entre ces derniers. La topologie la plus connue est celle en grille avec ses variétés (Figure 1.7) dont la plus utilisée est la topologie de grille en deux dimensions (2D) illustrée sur la figure 1.7.(a). Dans le cas de cette topologie, les liens entre routeurs ont tous la même longueur, ce qui facilite la conception du SoC. Chaque routeur associé à un noeud est connecté à quatre routeurs voisins, à l’exception des routeurs situés aux bordures du SoC. La surface de la grille augmente linéairement avec le nombre de noeuds. Le réseau en grille doit être conçu de façon à éviter l’accumulation des paquets au centre de la grille afin d’éviter une éventuelle dégradation des performances du réseau.

Mécanismes de commutation

Le mécanisme de commutation détermine la façon dont les paquets passent à travers les routeurs du réseau. Les noeuds génèrent les messages à échanger à travers le NoC. Ces messages peuvent être constitués d’un ou plusieurs paquets. Le paquet est divisé en FLIT 6 qui est à son tour constitué d’un ou plusieurs PHIT 7. La PHIT est une donnée transférable sur un lien de connexion en un coup d’horloge, ce qui revient à dire que la taille du PHIT correspond à la largeur en bits du lien de communication. La figure 1.10 montre la structure d’un FLIT, d’un paquet et d’un message. Chaque NoC dispose de sa propre configuration des messages. Le choix sur la taille des messages est déterminant pour le NoC en termes de performances, de coût ainsi que de la consommation en énergie. Il existe deux types principaux de mécanismes de commutation : la commutation du circuit et la commutation de paquets. En commutation de circuit, les communications se font en deux étapes. Le chemin physique de la source jusqu’à la destination est d’abord réservé, ensuite, le message est transmis entièrement. Ce chemin est constitué de liens de connexion, de routeurs et éventuellement de commutateurs.

Le FLIT d’entête du message traverse en premier le chemin de la source vers la destination afin de réserver le chemin et ouvrir la voie pour le reste des FLIT du même message. Il arrive parfois que l’un des liens de connexion ou l’un des routeurs ne soit pas encore disponible, dans ce cas le chemin est mis en attente. L’avantage de cette technique est que, une fois le chemin réservé, une liaison directe de la source à la destination est disponible dont la bande passante est égale à celle des liens de connexion, ce qui mène à une réduction de la latence. Par contre, cette technique devient très vite moins avantageuse dès que le nombre de noeuds augmente. Cela est dû à la non disponibilité de toutes les ressources mises à disposition de la communication en cours pendant toute la durée de cette dernière. La solution pour remédier à ce problème est de multiplier les canaux virtuels sur le même lien physique et d’utiliser les circuits virtuels pour les commutations [Benini 06].

En commutation de paquets, les paquets sont envoyés à travers le réseau sans réservation préalable d’un chemin de l’initiateur à la cible. Ceux-ci définissent leur chemin de manière indépendante au fur et à mesure de leur propagation dans le réseau jusqu’à leur arrivée à la cible. Plusieurs paquets peuvent arriver en même temps à un routeur et solliciter l’emprunt du même lien de connexion. Cela réduit la durée de non disponibilité des ressources en cours d’utilisation, en revanche, cela nécessite une gestion des contentions au niveau des routeurs. Il existe trois types de commutations de paquets. Le premier est le « store and forward » qui consiste à envoyer un paquet d’un routeur à un autre uniquement si le routeur émetteur a fini de recevoir l’intégralité du message qu’il doit transmettre et que le buffer du routeur récepteur a suffisamment de mémoire libre pour recevoir l’intégralité du paquet.

Ce type de commutation de paquets n’est pas très utilisé à cause de la contrainte de la taille des buffers qui doit être au minimum égale à celle des paquets. Le second type de commutation de paquets est le « virtual cut through ». Avant de finir la réception d’un paquet, le routeur émetteur commence à envoyer les premiers FLIT au routeur suivant mais uniquement si le buffer de ce dernier a suffisamment d’espace pour recevoir la totalité du paquet en question. Cette technique aussi n’est pas très utilisée à cause de la taille des buffers qu’elle nécessite. Le troisième type de commutation de paquets est le wormhole. La taille des buffers nécessaires est réduite à celle des FLIT. Dès qu’un FLIT est reçu, il est transmis au prochain routeur dès que l’espace requis se libère. Si le routeur prochain n’a pas suffisamment d’espace pour recevoir le paquet entièrement, celui-ci se retrouvera distribué sur deux routeurs, voire plus. Bien que cette situation puisse provoquer des blocages de ressources, cette technique de commutation est très utilisée dans les NoC, seule ou en combinaison avec d’autres techniques.

Table des matières

Acronymes et notations
Introduction générale
1 Réseaux sur puce
1.1 Métriques pour les réseaux sur puce
1.1.1 Latence
1.1.2 Débit de données
1.1.3 Bande passante de bissection
1.1.4 Point de saturation
1.1.5 Ressources et surface en silicium
1.1.6 Profil énergétique
1.1.7 Autres métriques
1.2 Approches classiques des interconnexions pour les systèmes sur puce
1.2.1 Le bus partagé
1.2.2 Réseaux sur puce
1.2.2.1 Topologie
1.2.2.2 Mécanismes de commutation
1.2.2.3 Fonction de routage
1.2.2.4 Protocole de contrôle de flux
1.2.2.5 Système d’horloge du NoC
1.3 État de l’art sur les réseaux sur puce classique
1.3.1 ARTERIS
1.3.2 VSTNOC
1.3.3 Hermes
1.3.4 Ætheral
1.3.5 SPIN
1.4 Comparaison NoC vs bus partagé
1.5 Réseaux sur puce émergents
1.5.1 Intégration 3D
1.5.1.1 Principe
1.5.1.2 État de l’art des NoC 3D
1.5.1.3 Contraintes et défis de l’intégration 3D
1.5.2 Interconnexions optiques
1.5.2.1 Principe
1.5.2.2 État de l’art des NoC optiques
1.5.2.3 Problématiques et défis des NoC optiques
1.5.3 Interconnexion à nano-tube de Carbone
1.5.4 Interconnexion RF avec/sans fil (RFNoC)
1.5.4.1 Principe
1.5.4.2 État de l’art
1.6 Conclusion
2 Validation du concept du RFNoC et Allocation de ressources spectrales
2.1 Introduction
2.2 Le langage VHDL-AMS
2.3 Modélisation idéale du RFNoC
2.3.1 Modélisation idéale de l’émetteur
2.3.2 Modèle compact de la ligne de transmission
2.3.3 Modélisation du récepteur idéal
2.3.3.1 Modélisation du LNA
2.3.3.2 Modélisation du filtre passe-bas
2.4 Validation du Concept du RFNoC
2.5 Allocation de ressources spectrales
2.5.1 Métrique de mesure
2.5.2 Communication en half-duplex
2.5.3 Communication en full-duplex
2.5.4 Optimisation d’allocation de ressources spectrales
2.6 Conclusion
3 Modélisation du RFNoC
3.1 Introduction
3.2 Etat de l’art des modélisations comportementales
3.3 Modélisation du LNA
3.3.1 Description du modèle
3.3.2 Validation du modèle
3.3.3 Récapitulatif de la modélisation du LNA
3.4 Modélisation du mélangeur
3.4.1 Description du modèle
3.4.2 Validation du modèle
3.4.3 Récapitulatif de la modélisation du mélangeur
3.5 Modélisation de l’oscillateur local
3.5.1 Description du modèle
3.5.2 Validation du modèle
3.6 Modélisation de la ligne de transmission
3.6.1 Adaptation du modèle pour des simulations temporelles
3.6.2 Validation de l’effet de peau par simulation temporelle
3.7 Conclusion
4 Dimensionnement et performances du RFNoC
4.1 Introduction
4.2 Dimensionnement de chaque composant du RFNoC
4.2.1 Topologie du RFNoC avec un seul émetteur et un seul récepteur
4.2.2 Topologie du RFNoC avec huit émetteurs et huit récepteurs
4.2.2.1 Imperfections du mélangeur de l’émetteur
4.2.2.2 Imperfections du LNA
4.2.2.3 Imperfections du mélangeur du récepteur
4.2.2.4 Combinaison des facteurs de bruit du LNA et du mélangeur du récepteur
4.3 Performances du RFNoC
4.4 Optimisation de l’allocation de ressources spectrales du point de vue des produits d’intermodulations
4.5 Modèle compact et à très haut niveau d’abstraction du RFNoC
4.6 Conclusion
Conclusion générale et perspectives
A Annexe
A.1 Ln et Cn du filtre passe-bas normalisé (fréquence de coupure à -3dB)
A.2 Exemple de code VHDL-AMS (mélangeur idéal)
A.3 Équation de Friis pour définir le facteur de bruit d’un récepteur RF
A.4 Méthode de calcul des coefficients du polynôme décrivant les nonlinéarités
du LNA
A.4.1 Calcul de klna_3
A.4.2 Calcul de klna_5
A.5 Contraintes sur les valeurs de l’IP3 et du P1dB pour la validité de
la modélisation polynômiale
Publications
Bibliographie

Cours gratuitTélécharger le document complet

Télécharger aussi :

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *