Un important travail de conception est nécessaire pour s'assurer que ces données puissent
être lues, transférées et stockées rapidement. Dans le cas contraire la puissance de calcul
des processeurs serait sous-exploitée.
La définition d’une architecture parallèle ne peut plus être réalisée sans que sa
programmation soit prise en compte, et ce, dès sa phase de définition. A l’heure actuelle,
seule les machines SIMD (Single Instruction Multiple Data), disposent d’environnements
de programmation évolués permettant de tirer réellement parti des performances de la
machine.
Tenant compte de nouvelles technologies (SoC), une tendance s'oriente vers la conception
de MPPSoC (Massively Parallel Processor System on Chip): des systèmes sur puce
massivement parallèles. Il s'agit d’une architecture SIMD composée d'une grille de
processeurs élémentaires (les PEs: Processing Elements) et des mémoires connectés par un
réseau de voisinage régulier et un général et global réseau.
A part la conception de MPPSoC on trouve aussi que les recherches s’orientent vers
l’intégration de ce type d’architectures dans FPGA.
Par ailleurs, longtemps réduits au prototypage, aujourd’hui les FPGAs sont utilisés, pour
leur capacité de reconfiguration, dans des systèmes électroniques complexes, même pour
la fabrication à grande série. En effet, grâce aux évolutions de la technologie
microélectronique les FPGA deviennent de plus en plus performants avec des capacités
sans cesse augmentées.
C'est dans ce contexte que se situent les travaux proposés dans cette thèse. Il s'agit
d'étudier une architecture parallèle générique, d'effectuer sa validation en vue de son
intégration sur des technologies reconfigurables.
2. Objectifs : définition de modèle d’architecture massivement
parallèle générique et intégration sur FPGA
À la fin des années 80, les ordinateurs les plus rapides au monde reposaient sur le modèle des
architectures SIMD massivement parallèles. Ces machines, aussi connues sous le vocable de
"tableau de processeurs", étaient construites sur la base d'une grille d'unités de calcul à grain
fin connectées par un ou plusieurs réseaux de topologie simple. La puissance de ces machines
reposait sur le grand nombre de processeurs, jusqu'à quelques dizaines de milliers, et non de
la puissance de calcul intrinsèque ou d'un cadencement à haute fréquence de ces processeurs.
Un système SIMD se compose d'une grille de processeurs élémentaires, chaque processeur
exécutant, de manière synchrone, exactement la même instruction à chaque cycle. Cette
synchronisation est orchestrée par un processeur de contrôle responsable du chargement et
décodage des instructions. Deux types d'instructions sont distingués: les instructions parallèles
et les instructions non-parallèles. Le processeur de contrôle transfert les instructions parallèles
au tableau de processeurs élémentaires alors qu'il exécute lui-même les instructions non-
parallèles et de contrôle du flot.
L'utilisation de ces systèmes a décliné, principalement en raison du coût élevé de conception
et fabrication de ces machines. Il était devenu plus intéressant d'utiliser un petit nombre de
processeurs standard et puissants plutôt que de nombreux processeurs conçus spécifiquement.
Un autre aspect, technologique cette fois, a contribué à la disparition de ces architectures:
l'accroissement de la fréquence de fonctionnement des composants électronique a rendu
impossible la diffusion d'une instruction à des milliers de processeurs de manière synchrone à
chaque cycle d'horloge.
Cependant, de nos jours, plusieurs domaines d'applications sont toujours concernés par la
conjonction d'algorithmes parallèles réguliers et d'une forte demande en puissance de calcul.
- 2 -