Synthese d’une architecture systolique sur FPGA

Le parallélisme permet d’augmenter de manière très significative la vitesse de traitement dans la mesure où plusieurs actions sont effectuées simultanément. Il est utilisé dans plusieurs domaines, entre autres le traitement scientifique. Les machines systoliques font partie des machines à traitements parallèles. Conceptuellement, elles sont constituées d’un ensemble de processeurs (ou cellules) élémentaires interconnectés localement pour former un réseau nommé « réseau systolique ».

THEORIE DES MACHINES SYSTOLIQUES

LES MACHINES PARALLELES 

Le parallélisme est l’évolution simultanée des différentes opérations ou calculs au niveau des processeurs (que ce soit arithmétique ou logique). En effet, la plupart des microprocesseurs modernes ne sont plus entièrement séquentielle ; ils sont dotés de fonctions de parallélisme. Par exemple il n’est pas rare (Pentium, power PC, etc.) d’avoir plusieurs unités de calcul arithmétique pouvant fonctionner en parallèles.

Avantages et inconvénients 

Le principal avantage du parallélisme est la vitesse de calcul. Pour N processeurs en parallèle, le calcul est exécuté plus vite qu’en mode séquentiel classique.

L’inconvénient est la nécessité d’une espace mémoire plus grande.

Difficultés
❖ Il faut gérer le partage des tâches ;
❖ Il faut gérer l’échange d’information car une erreur peut fausser toute l’opération.

Les différents modèles de machines parallèles

On distingue classiquement quatre types des machines parallèles : SISD, SIMD, MISD et MIMD. Cette classification est basée sur les notions de flot de contrôle (les deux premières lettres) et flot de données (les deux dernières lettres).

Machine SISD 

Une machine SISD (Single Instruction Single Data) ou flux à une instruction et une donnée, est ce que l’on appelle d’habitude une machine séquentielle, ou machine de Von Neumann. Une seule instruction est exécutée à un moment donné et une seule donnée (simple, non structurée) est traitée à un moment donné.

float[10] A,B,C
for (init i=0 ;i<10 ;i++)
C[i]=A[i]+B[i]; 

Ce code s’exécute sur une machine séquentielle en faisant les additions :

A[0]+B[0], A[1 ]+B[1],…,A[9]+B[9] à la suite les unes des autres.

Machine MISD 

Une machine MISD (Multiple Instruction Single Data) est une machine à plusieurs instructions. Une donnée peut exécuter plusieurs instructions en même temps. Cela peut paraître paradoxal mais cela recouvre en fait un type très ordinaire de microparallèlisme dans les microprocesseurs moderne : lesprocesseurs vectoriels et les architectures pipelines.

Machine MIMD

Une machine MIMD (Multiple Instruction Multiple Data) qu’on peut épeler aussi quelque fois flux à plusieurs instructions et plusieurs données. Chaque processeur peut exécuter un programme différent.

Machine SIMD 

Une machine SIMD (Single Instruction Multiple Data) ou flux à plusieurs données, est une machine qui exécute à tout instant une seule instruction, mais qui agit en parallèle sur plusieurs données ; on parle en générale de « parallélisme de données ». Les machines SIMD peuvent être de plusieurs types par exemple, parallèles ou systoliques. On s’intéresse à ce type de machine parce que les machines systoliques en font parties.

Machine cellulaire

Dans une machine cellulaire, le mode d’exécution est toujours de type SIMD. L’unité de contrôle envoie son instruction courante à tous les processeurs élémentaires. Ces PEs qui doivent l’exécuter prennent pour argument les données placées dans leurs mémoires locales.

Machine vectorielle 

Les machines vectorielles se caractérisent par le principe de pipeline.

Pipeline

Le pipeline est une organisation du processeur qui comprend plusieurs étages et permet d’exécuter simultanément plusieurs instructions. Il représente un moyen d’introduire le parallélisme dans la nature essentielle d’un groupe d’instruction de machine. Dans la classification des machines parallèles, ces machines sont de type MISD mais on peut considérer que l’effet pipeline est semblable à un effet Multiple Data, donc en pratique, on classe les machines pipelines avec les machines SIMD.

L’unité de traitement et l’unité de contrôle sont découpées en n étages. Ainsi, des données peuvent être traitées à l’étage 1 pendant que d’autres sont traitées à l’étage 2. L’unité de contrôle fournit un flux d’instruction à l’unité de traitement. L’unité de traitement opère sur un seul flux de données provenant d’une unité de mémoire.

Performance du pipeline

Un étage fi a besoin d’un temps ti pour traiter une instruction. Mais, en générale les ti sont différents. Supposons qu’on a un pipeline d’instruction à n étages, alors le temps nécessaire pour traiter k instruction est :

Tn = [n + (k-1)]τ ; où τ=max[ti]. 

Exemple :

Un pipeline des instructions f(x) =f4 o f3 o f2 o f1(x) ;

Supposons que τ=max i [ti]=1. Pour traiter 5 instructions on a : T4=[4 +(5 -1)]. D’où on retrouve T4 = 8 unité de temps. Dans un calcul séquentiel classique (sans pipeline) le temps d’exécution d’instruction est :

T1=K. n. τ 

On définit alors le facteur d’accélération du pipeline d’instruction composé à une exécution sans pipeline par :

Sn= Tn/T1 

LES MACHINES SYSTOLIQUES 

La machine systolique est l’une des machines qui utilisent la technique du pipeline en association avec le modèle cellulaire et celle qui tire un grand profit de cette exploitation. Elle est alors le fusionnement d’une machine cellulaire et d’une machine vectorielle.

Exploitation du parallélisme de données et de flux en mode systolique

La philosophie de ce type d’architecture est d’exploiter à la fois le parallélisme de données comme dans les machines cellulaires et le parallélisme de flux comme dans les machines vectorielles. Elles empruntent aux machines cellulaires l’organisation générale (grille). La partie opératoire est constituée de processeurs élémentaires PEs identiques reliés par un réseau d’interconnexion. Elles empruntent aux machines vectorielles le mode de fonctionnement pipeline : les données de l’application entrent dans la partie opérative en mode série et coulent sur les processeurs élémentaires PEs vers les tampons de sortie d’où elles sont renvoyées vers l’unité de stockage centralisées.

Le rapport de stage ou le pfe est un document d’analyse, de synthèse et d’évaluation de votre apprentissage, c’est pour cela chatpfe.com propose le téléchargement des modèles complet de projet de fin d’étude, rapport de stage, mémoire, pfe, thèse, pour connaître la méthodologie à avoir et savoir comment construire les parties d’un projet de fin d’étude.

Table des matières

INTRODUCTION
Chapitre1 : THEORIE DES MACHINES SYSTOLIQUES
1. LES MACHINES PARALLELES
1.1.Introduction
1.2.Les différents modèles de machines parallèles
1.3. Machine cellulaire
1.4. Machine vectorielle
1.5. Les machines systoliques
1.6.Application d’une machine systolique pour le calcul du produit de matrices
Chapitre 2 : Etude du système
2.1. Généralité
2.2. Etude des éléments logiques et des éléments combinatoires
2.3. MISE EN ŒUVRE DES SCHEMAS
2.4. Circuit détaillé du bloc acquisition de données
2.5. Architecture systolique
2.6. Circuit détaillé du bloc transmetteur de données
2.7. L’unité de contrôle
Chapitre 3. L’architecture d’une cellule
3.1. Multiplication
3.2. Etude de chaque composant de la multiplication
3.3. Addition
Chapitre 4 : synthèse sur FPGA
4.1. Les circuits FPGA
4.2. Le langage VHDL
4.3. Codes VHDL des composants du système
4.4. Code VHDL d’acquisition
4.5. Code VHDL du circuit d’une cellule
4.6. Code VHDL Datatransmitter
Chapitre 5. Simulation et réalisation
5.1. Simulation
5.2. Réalisation
5.3. Mise en œuvre de la communication sérielle selon le protocole RS232 défini sur Spartan3
Chapitre 6 : Le logiciel SystoRice
6.1. Généralité
6.2. Les onglets
CONCLUSION

Lire le rapport complet

Télécharger aussi :

Laisser un commentaire

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