![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() ![]() |
|
Proposition de stage LIP6Année 2013Introduction d’un contrôleur réseau dans le prototype FPGA de l’architecture multi-cores TSAROBJECTIF Ce stage s’inscrit dans le cadre du projet Européen SHARP piloté par BULL, dont les partenaires Français sont THALES, le LIP6 et le CEA/LETI. Ce projet vise la définition et l’implémentation d’une architecture de processeur many-cores utilisable dans des ordinateurs de type serveurs, c'est-à -dire une architecture matérielle supportant la mémoire virtuelle, et fournissant un mécanisme de cohérence des caches garantie par le matériel.
L’architecture TSAR a été définie dans le cadre d’un premier projet européen. Cette architecture NUMA (Non Uniform Memory Access) supporte des systèmes d’exploitation généralistes de type UNIX (ou LINUX). Son originalité est d’utiliser un grand nombre de « petits » cœurs de processeurs RISC 32 bits, plutôt que quelques gros processeurs, pour minimiser la consommation énergétique. L’architecture doit donc être réellement scalable (pour atteindre plusieurs milliers de coeurs sur une seule puce), tout en fournissant une mémoire partagée cohérente.
Une première version de l’architecture TSAR, comportant 512 cœurs a été modélisée en langage SystemC, en utilisant la plate-forme de prototypage virtuel SOCLIB et un style de modélisation « au cyle près ». Différentes applications logicielles ont pu être déployées et exécutées (en simulation) sur ce prototype virtuel, démontrant la scalabilité du protocole de cohérence DHCCP (Distributed Hybrid Cache Coherence Protocol). En parallèle, un premier prototype FPGA comportant 4 clusters a été développé au LIP6, et a permis la mise au point des modèles VHDL synthétisables des composants critiques, tels que le coeur du processeur MIPS32, les contrôleurs de cache de premier et second niveau, ou le micro-réseau intégré VDSPIN. Ce prototype FPGA utilise la carte DE3 (vendue par la société Terasic) qui contient un gros circuit FPGA ALTERA. TRAVAIL PROPOSE On souhaite maintenant introduire dans ce prototype FPGA un contrôleur réseau Gigabit Ethernet multi-canaux respectant la norme GMII, et permettant de piloter une carte d’extension réseau (également fournie par Terasic). Ce contrôleur réseau est indispensable pour interfacer le prototype FPGA avec un PC hôte, et lui fournir ainsi un canal de communication haut débit avec différents périphériques déportés. Le contrôleur réseau conçu au LIP6 ne possède pas de contrôleur DMA intégré, mais s’appuie sur un contrôleur DMA externe qui utilise une technique de tampons mémoire chaînés, bien adaptée au stockage des paquets réseau. Ce type de DMA permet de minimiser le nombre d’interruptions dans les communications entre le contrôleur réseau et l’OS. Le contrôleur réseau, ainsi que le contrôleur DMA associé ont été modélisés en langage SystemC, et validés par simulation dans l’environnement de prototypage virtuel SoCLib. Un premier modèle VHDL a été développé pour le contrôleur réseau, et a permis de démontrer que l’architecture proposée est effectivement synthétisable. Le but du stage est donc de synthétiser effectivement sur FPGA une architecture TSAR mono-cluster contenant un contrôleur réseau et le contrôleur DMA associé, et de valider la communication entre le prototype FPGA et le PC hôte à travers un cable Ethernet standard. La validation des deux composants matériels (contrôleur réseau et contrôleur DMA) peut être réalisée sans mettre en oeuvre sur l’architecture TSAR une pile logicielle TCP-IP complête, puisqu’on peut simplement configurer le contrôleur DMA pour rediriger sur le port GMII sortant tous les paquets reçus sur le port GMII entrant. On utilisera pour cela un système d’exploitation minimal existant au LIP6 et supportant la mémoire virtuelle paginée, appelé GIET-VM. Ce stage se déroulera en plusieurs étapes :
1. Analyse de l’architecture interne du contrôleur réseau et du contrôleur DMA. 2. Définition de la plate-forme de validation (carte FPGA DE3 + carte réseau + PC hote) 3. Introduction des deux contrôleurs dans le prototype virtuel TSAR et validation (GIET-VM). 4. Développement des modèles VHDL des deux contrôleurs (réseau et DMA). 5. Intégration ce ces modèles VHDL dans le prototype virtuel TSAR et validation. 6. Synthèse sur FPGA du cluster TSAR contenant les deux contrôleurs (réseau et DMA). 7. Validation effective de la communication entre le prototype FPFA et le PC hôte (GIET-VM).
ENCADREMENT : Ce stage sera encadré par Alain.Greiner : Alain.Greiner@lip6.fr
|