Rapport - mescal

publicité
1
CELL et SystemC
Apprentissage des outils développés dans le groupe
Alp KILIC
Rapport de Stage, Université Joseph Fourier, Magistère 2006-2007
Résumé—Chaque nouvelle génération de processeur développé cause encore des problèmes et rend difficile de choisir
la platforme qui convient mieux pour les domaines differentes. C’est impossible de faire des tests au niveau matériel pour
une usage précis (Couteux et très lents). Les simulations au niveau logiciel donnent des reponses plus facilement mais
sans avoir une précision exacte. Le but de ce stage est de comprendre l’architecture du processeur Cell et comprendre
aussi l’outil développés dans le groupe pour faire une simulation logiciel qui est assez bas niveau en SystemC.
F
1
I NTRODUCTION
L
A
formation Magistère nous offre la
possibilité de voir le monde de la
recherche. Pour ce qui veut faire de la
recherche après ses études, il est important
de connaitre la vie professionnelle et sociale
dans les laboratoires et savoir s’intégrer dans
le groupe de recherche. Le laboratoire TIMA
a une longue expérience sur la conception de
matériel et sur les logiciels CAD. Il se concentre
sur de divers aspects de la conception, CAD,
test de circuits et de systèmes.
2
C ELL
Cell est une architecture de microprocesseur
conjointement développée par Sony, Toshiba et
IBM (une alliance nommée STI).La conception
architecturale et la première exécution ont été
effectuées au centre de STI sur une période de
4 ans commençant en mars 2001.
Il est conçu pour établir le lien entre les
processeurs de bureau conventionnels (tels
que les familles bien connues de Pentium et
de PowerPC) et les processeurs spécialisés en
terme de graphique comme les processeurs de
nVIDIA ou d’ATI (GPUs). Il peut être utilisé
dans
les domaines de l’application multimédia,
Le monde du matériel informatique reste
toujours la partie obscure pour la plupart des les simulations physiques, l’imagerie médicale
informaticiens. Cependant il se développe très etc.
La
première
application
commerciale
rapidement et nécessite un travail sérieux.
principale
du
Cell
était
dans
la console
Nous allons aborder le problème de faire la
simulation des matériaux au niveau logiciel. de jeu de PlayStation 3 de Sony.
Pour cela on va d’abord examiner l’architecture
de CELL qui est un processeur assez récent et Cell peut être examiné en quatre principaux
populaire. Après on va faire la connaissance composants : les contrôleurs d’entrée/sortie
avec l’extension du langage de programmation et de mémoire, le processeur principal
C++ pour faire la simulation matériel : « Power Processing Element » (PPE), huit coprocesseurs appelés « Synergistic Processing
SystemC.
Elements » (SPEs), et un bus de données en
anneau qui relie les autres composants entre
eux appel é « Element Interconnect Bus »
(EIB).
Afin d’avoir le rendement élevé pour pouvoir
faire des calculs assez compliqué comme le
codage ou le décodage de la vidéo (MPEG),
Cell relie simplement les SPEs et le PPE grâce
2
a EIB. Le PPE qui est capable d’exploiter
un système d’exploitation, a le contrôle du
SPEs et peut commencer, arrêter, interrompre
et programmer des processus fonctionnant
sur les SPEs. C’est pour cela le PPE possède
des instructions additionnelles concernant
la commande du SPEs. La vraie puissance
du Cell vient de ses fameux « Synergistic
Processing Elements »
On peut voir en details les quatres principaux
parties du Cell :
2.1
PPE
PPE est un coeur bi-directionnel multitache
basée à ”Power Architecture” agissant en tant
que contrôleur pour les SPEs qui manipulent
la majeure partie du travail de calcul. PPE
peut fonctionner avec les systèmes d’exploitation conventionnels dus à sa similitude d’autres
processeurs 64-bit PowerPC, alors que SPEs
sont conçus pour faire des calculs vectoriels.
2.2
SPEs
Chaque SPE est composé de Synergistic
Processing Unit SPU, un cotrôleur mémoire
Memory Flow Controller MFC et une mémoire
locale Local Store LS.
SPE opère une mémoire locale (256 Ko) qui
stocke des instructions et des données. Des
données et les instructions sont transférées
entre cette mémoire locale et la memoire
centrale par des commandes asynchrones de
DMA, exécutées par MFC inclus dans chaque
SPE.
Un seul SPE peut operer 16 entiers 8 bits, 8
entiers 16 bits, 4 entiers 32 bits ou 4 floats de
précision simple dans un seul cycle d’horloge.
Il peut aussi faire des operations de mémoire
dans le meme cycle. Il n’a pas d’acces direct à
la mémoire centrale. Les adresses de mémoire
64-bits constituées par SPU doivent être
passées du processeur de SPU au cotrôleur
mémoire MFC pour préparer une opération
de DMA dans l’espace adresse de système.
2.3 EIB
EIB est le coeur de l’architecture de
la communication du Cell. Il permet la
communication entre PPE, SPEs, la mémoire
centrale et les entrées/sorties externes.
EIB est composé de 4 anneaux des données de
16 octets : deux fonctionnant dans le sens des
aiguilles d’une montre, et les deux autres dans
le sens contraire des aiguilles d’une montre.
Chaque anneau permet potentiellement jusqu’à
trois transferts de données concourants jusqu’à
ce que leurs chemins ne recouvrent pas.
Pour lancer un transfert de données, les
éléments de bus doivent demander l’accès de
bus de données.L’arbitre de bus de données
de EIB traite ces demandes et décide quel
anneau devrait manipuler. L’arbitre choisit
toujours un des deux anneaux qui a le chemin
le plus court dans la direction du transfert, de
ce fait s’assurant que les données n’auront pas
besoin de faire plus qu’à mi-chemin autour de
l’anneau à sa destination.
Pour réduire au minimum la perte de vitesse,
l’arbitre accorde la priorité aux demandes
venant du contrôleur de mémoire.
EIB fonctionne à la moitié vitesse de l’horloge
du processeur. Chaque unité de EIB peut
simultanément envoyer et recevoir 16 octets
de données dans chaque cycle de bus.
2.4 Contrôleurs I/O et mémoires
Le MIC est un double contrôleur mémoire
XDR (XDRAM) offrant un débit de 25,6 Go
par seconde. On trouve deux interfaces E/S
configurables (76,8 Go/s, 6,4 Gbit/s) (Flexible
I/O).
3
3
S YSTEM C
de faire des tests et des simulations
dessus. C’est assez important parce que
la vérification fonctionnelle au niveau de
système économise beaucoup d’argent et
de temps.
SystemC n’est qu’une bibliothèque de
classe de C++ particulièrement conçue pour
la conception de système. Conservant les
fonctionnalités du C++, il reste possible de
décrire des fonctions purement logicielles.
SystemC permet donc de modéliser des
systèmes matériels, logiciels, mixtes ou même
non-partitionnés.
– Il intègre la notion du temps à C++ pour
simuler des conceptions synchrones de
matériel.
– SystemC soutient la conception a un
niveau plus élevé d’abstraction, tandis
que la majeure partie des « HDL »
soutient le RTL (Register transfer level )
de la conception.
SystemC remplace HDL comme Verilog
et VHDL dans beaucoup de situations. Ceci
ne signifie pas que ces HDL ne sont plus
utiles. Mais le systemC soutient une nouvelle
approche pour concevoir un système.
Pourquoi l’utiliser ?
SystemC est née en raison des nécessités de
l’industrie électronique actuelle : Aujourd’hui,
Les instruments électroniques se développent
très rapidement sans avoir compte du temps
de se produire et se lancer sur le marché. Il
n’est vraiment pas facile pour les ingénieurs de
concevoir un nouveau système. La complexité
des nouvelles technologies rend la situation
encore plus difficile. Précédemment, le C (ou
C++) a été utilisé pour écrire la partie logiciel
de la conception. Pour le matériel, c’était
du HDL. Il était très difficile d’installer un
« testbench » qui est commun pour tous les
deux, puisqu’ils sont des langages entièrement
différents. L’introduction du SystemC a résolu
la plus part de ces problèmes.
Les Avantages de SystemC :
– Il hérite de tous les traits de C++, qui
est un langage de programmation stable
admis partout dans le monde.
– Riches dans les types de données : Avec
les types soutenus par C++, SystemC
soutient l’utilisation des types de données
spéciaux qui sont souvent utilisés par les
concepteurs de matériel
– Il a un noyau de simulation qui est tres
fort pour permettre aux concepteurs
– Simultanéité
:
Pour
comportement simultané.
4
simuler
le
C ONCLUSION
La simulation logicielle nous donne l’opportunité de tester facilement des systèmes tres
complexe comme « CELL ». Pour avoir des
résultats plus fins il suffit d’améliorer cette
méthode. Ce stage n’était que l’apprentissage
de ces méthodes. J’espère de continuer à faire
des expérimentations sur le sujet.
Téléchargement