• Aucun résultat trouvé

3.5 Comparaison du modèle mppSoC avec d’autres modèles SIMD

4.1.1 Description de la conception de mppSoC

4.1.3 Tâches du concepteur . . . . 67

4.2 Bibliothèque d’IPs mppSoC . . . . 68

4.2.1 Processeurs . . . . 68 4.2.2 Mémoires . . . . 87 4.2.3 Réseau de voisinage . . . . 87 4.2.4 MpNoC . . . . 90 4.2.5 Classification des IPs . . . . 97

4.3 Programmation de mppSoC . . . . 97

4.3.1 Cas de réduction de processeur . . . . 97 4.3.2 Cas de réplication de processeur . . . 101 4.3.3 Jeu d’instructions mppSoC . . . 102

4.1 Présentation de la méthode de conception de mppSoC 61

Dans le chapitre précédent, le modèle architectural de mppSoC a été présenté. Nous avons ainsi montré les différents aspects du système mppSoC le rendant flexible pouvant s’adapter aux exigences applicatives. L’un de ses principaux aspects est la modularité qui s’appuie sur une conception à base de composants. Un système massivement parallèle com-plexe doit être conçu de manière efficace afin de réduire le temps de mise sur le marché. Notre principal objectif est de réduire le coût et le temps de conception du système mpp-SoC afin d’obtenir un circuit fiable et performant. Tout ceci doit être construit selon une méthode de conception favorisant l’abstraction de l’architecture, la validation et facilitant la génération d’une description de bas niveau d’une architecture SIMD. Dans ce chapitre, nous détaillons la méthode de conception de mppSoC. Cette conception se base sur l’utilisation d’une bibliothèque d’IPs qui sera aussi présentée.

Ce chapitre est structuré comme suit. La première section présentera la méthode de conception de mppSoC. La deuxième section décrira la bibliothèque d’IPs utilisée dans le flot de conception. La programmation de mppSoC sera présentée dans la troisième section. Le jeu d’instructions conçu pour mppSoC sera aussi décrit. Finalement, la dernière section donnera une synthèse de ce chapitre.

4.1 Présentation de la méthode de conception de mppSoC

Différentes méthodologies de conception, telles que notées dans le chapitre 2, sont appa-rues poussées par les contraintes de temps de mise sur le marché et de complexité galopante des systèmes sur puce. À part ces méthodologies de conception, il faut bien tenir compte de l’évolution rapide des besoins imposant alors des délais de mise sur le marché d’un nou-veau produit de plus en plus brefs. De nouvelles méthodologies de conception sont par conséquent nécessaires. Celles-ci doivent permettre de répartir efficacement la complexité des systèmes à concevoir sur les ressources humaines et matérielles par le biais d’une au-tomatisation des tâches de conception les plus coûteuses [33]. Une accélération du flot de conception est indispensable afin de conserver des délais raisonnables de mise sur le mar-ché d’un produit et d’exploiter au mieux les nouvelles technologies au moment où elles sont disponibles. Une voie prometteuse pour l’accélération des tâches de conception consiste à réutiliser autant que faire des blocs matériels ou logiciels déjà conçus et vérifiés.

Dans ce sillage, notre principal objectif dans ces travaux de thèse consiste à la génération d’architectures SIMD massivement parallèles, se basant sur l’utilisation et la réutilisation d’IPs dans la conception. Notre méthode de conception de mppSoC s’intègre parmi les mé-thodologies actuelles de conception des systèmes qui promeuvent les approches à base de composants et exploitent l’utilisation d’IP. Ces techniques de conception sont cruciales pour surmonter la complexité des systèmes embarqués.

Tout au long de ce chapitre, nous dénotons "IP" les différents composants utilisés dans l’architecture mppSoC.

4.1.1 Description de la conception de mppSoC

La conception de mppSoC se base sur l’utilisation d’IPs disponibles. D’autres IPs sont de même conçus et implémentés pour être intégrés dans mppSoC et qui seront réutilisés dans tout nouveau cycle de conception si nécessaire. Cette conception est alors incrémentale et flexible. À partir de blocs IPs, les concepteurs adapteront rapidement le système à

l’applica-BUE 1

PE1

PEM 1

RC1

UE1

RC3 RC4

PE2

PEM 2

RC2

UE2

ACU

Ordres d’exécution parallèle

BUE 2

UE3

PE3

PEM 3

RC3

UE4

PE4

PEM 4

RC4

FIGURE4.1 – Conception hiérarchique de mppSoC intégrant 4 PEs

tion visée. Ce contexte permet en grande partie d’alléger les coûts de conception. La concep-tion à base de réutilisaconcep-tion d’IPs est aussi incontournable pour répondre aux exigences de diverses applications.

Pour diminuer le coût de développement d’un système sur puce, il faut : – connaître les bons composants à intégrer (utiliser une bibliothèque d’IPs) ;

– savoir comment les intégrer de manière efficace (appliquer une méthodologie de réuti-lisation).

Tel que présenté dans le chapitre précédent, mppSoC est un système modulaire conçu par un assemblage de divers composants ou IPs. Ce système est aussi générique pouvant être paramétré dépendamment des besoins applicatifs.

Une conception hiérarchique est suivie pour la construction de mppSoC. En effet, les processeurs élémentaires sont inclus dans une unité hiérarchique appelé Unité Élémentaire (UE). Chaque UE, comme le montre la figure 4.1, est composée d’un processeur (PE), d’une mémoire et d’un routeur de communication (dénoté RC). Ce routeur est un élément impor-tant dans l’architecture de l’UE. Il contient une logique de contrôle permetimpor-tant d’assurer les communications de voisinage demandées par le PE pour un autre PE voisin. Sa conception est mieux détaillée dans ce qui suit. Un autre niveau de hiérarchie, appelé Bloc d’Unités Élémentaires (BUE), correspond à une ligne dans la grille d’unités élémentaires. Ce niveau est créé afin de profiter de la compilation incrémentale et permet de limiter le synthétiseur utilisé dans ses optimisations. Ces optimisations indésirables créent souvent de la logique centrale et augmentent la difficulté de routage. Cette manière de conception permet alors d’organiser et de faciliter le placement du réseau de PEs sur l’FPGA.

Un autre problème rencontré dans la conception de mppSoC est la diffusion synchrone des ordres d’exécution parallèle à tous les PEs avec une consommation de puissance efficace. Afin d’assurer une exécution SIMD où chaque PE exécute la même instruction au même cycle, nous distinguons deux méthodes :

en-4.1 Présentation de la méthode de conception de mppSoC 63

gendre un délai de propagation entre le premier PE de la ligne et le dernier, appelé (timezone effect) [113].

– mémoriser chaque instruction pendant un temps suffisant jusqu’à ce que chaque PE exécute la même instruction au même instant.

La deuxième méthode introduit un coût supplémentaire de surface sur la puce et nécessite l’utilisation d’une logique dédiée afin de guider l’exécution des PEs. Cette approche n’est pas alors générale, non extensible et dépend du processeur utilisé. L’effet timezone rend de même la programmation synchrone de l’architecture un peu difficile. Une des solutions pos-sibles est de procéder à des tests dans le programme à travers le Or Tree. Ce test s’avère nécessaire pour connaître si l’instruction courante a été exécutée par tous les PEs actifs avant de procéder à l’instruction qui suit. Cette méthode est plus simple tant en implémentation qu’au codage.

Afin d’assembler les processeurs dans une architecture SIMD (instance de mppSoC) et assurer les connexions entre l’ACU et les PEs, deux méthodologies ont été proposées selon les besoins. Elles sont détaillées dans la sous section suivante.