100% ont trouvé ce document utile (1 vote)
294 vues147 pages

Co-Design et Conception SoC

Evolution des technologies Les systèmes embarqués Conception SOC - Notion de Co-Design

Transféré par

mahdimohamedyassine
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
100% ont trouvé ce document utile (1 vote)
294 vues147 pages

Co-Design et Conception SoC

Evolution des technologies Les systèmes embarqués Conception SOC - Notion de Co-Design

Transféré par

mahdimohamedyassine
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

1

CO-DESIGN & SOC


SE3
Plan du cours
2

◻ Evolution des technologies


◻ Les systèmes embarqués
◻ Conception SOC - Notion de Co-Design
Évolution du marché des systèmes électroniques
(applications)
3
Évolution du marché des systèmes électroniques
(besoins)
4
Évolution du marché des systèmes
électroniques
5
Évolution du marché des systèmes électroniques

6
Evolution de la technologie
7
Evolution de la technologie
8
Evolution de la technologie
9
Évolution des techniques de
10
conception
Évolution des techniques de
11
conception
Les IP (Intellectual Property) ou blocs de propriété
intellectuelle
Principes de
12
conception
Conception SoC
13

Le Concept SoC apporte une réponse à ce besoin de conception hard/soft


Concept SOC
14

◻ *Le concept de SoC découle des progrès technologiques


des puces électroniques.
◻ *La réduction de la taille des transistors engendre, une
concentration supérieure de transistors sur une même
surface de silicium.
◻ *Cette concentration autorise désormais la présence de
plusieurs composants de natures différentes sur une unique
puce.
◻ *Une carte électronique, autrefois composée de multiples
composants discrets (processeur, mémoires, ASIC, etc...), se
voit désormais dotée d’un composant central intégrant tous
les autres.
Concept SOC
15
◻ *C’est pourquoi le SoC est généralement présenté comme
un ensemble de blocs hétérogènes présents sur la même
surface de silicium.
◻ *Pour être plus précis, ces blocs peuvent être des IP
matérielles pré-vérifiées qui communiquent au moyen de
protocoles complexes.
◻ * Il dispose de ressources de calcul conséquentes,
spécifiques (DSP, ASIC) ou non (processeur généraliste),
auxquelles sont adjointes des ressources de mémorisation
proportionnées (en taille et en nature).
◻ *L’hétérogénéité ne pourrait être complète sans la
présence de composants reconfigurables (FPGA) offrant
de la flexibilité au système;
Définition
16

◻ Un système embarqué (embeded system) :


Systèmes logiciel-matériel servant à résoudre des
fonctions et des tâches spécifiques et limitées
◻ Ses ressources disponibles sont généralement
limitées. Cette limitation est généralement d'ordre
spatial (taille limitée) et énergétique
(consommation restreinte).
Definition:
17
SOC: contraintes
18

Les systèmes embarqués exécutent des tâches prédéfinies et ont un cahier des
charges contraignant à remplir les contraintes:

Temps réel:
Socs sont toujours en interaction avec leur environnement. Ils doivent prendre
certaines décisions ou faire des calculs dans un temps limité. Un dépassement
d’un seuil temporel peut causer une défaillance du système,

Faible consommation
La consommation un critère important dans un système embarqué notamment
lorsqu’il s’agit des cibles mobiles utilisant des batteries pour leur fonctionnement.

veiller à réduire la consommation pour augmenter la duré de vie de la batterie


et diminuer la dissipation thermique du système pour augmenter sa fiabilité.
SOC: contraintes
19

Faible coût d’implémentation


Le coût d’implantation d’un système facteur déterminant,
Le concepteur doit donc chercher un rapport coût/performance qui répond aux
exigences.
Ainsi ce dernier doit imposer des contraintes technologiques (surface de silicium,
capacité mémoire compatibles avec le support disponible.

Sécurité et sûreté de fonctionnement


certains de ces systèmes embarqué subissent une défaillance, ils mettent des
vies humaines en danger ou mettent en périls des investissements importants.
Ils sont alors dits « critiques » et ne doivent jamais faillir.

nécessaire de mettre en œuvre toutes les réponses de la sûreté de fonctionnement


(développements sûrs, tests, méthodes formelles, prévisibilité, déterminisme,
continuité de service, tolérance aux fautes).
Applications
20

◻ Ventes des circuits intégrés en 2014 (barres) et taux


de croissance (courbe) selon les classes
d’application
Applications
21

ITRS-200
7
Evolution: Applications
22
Evolution: Applications
23

◻ Les types de systèmes embarqués


� Télécoms
� Aéronautique
� Automobile
� Construction électrique
� Transport ferroviaire
� Cartes à puce
Evolution : Applications
24
25
Applications
26

◻ Une courte liste de systèmes embarqués


Freins ABS Caméras vidéo numériques Stéréo
Caméras numériques Téléphones cellulaires Téléconférence
Modems Téléphones sans file Identification d’empreintes digitales
Décodeurs MPEG Régulateur de vitesse Systèmes d’alarmes domestiques
Guichets automatiques Jeux vidéos Dispositifs médicaux
Transmission automatique Imprimantes Agendas électroniques
Systèmes avioniques Téléphones satellites Téléviseurs
Cartes réseau Numérisateurs (scanners) Systèmes de chauffage
Commutateurs Disques durs Magnétoscopes et lecteurs DVD
Téléavertisseurs Lecteurs de cartes bancaires Électroménagers
Chargeurs de piles Instrumentation électronique Ordinateurs de poches
Photocopieurs Jouets électroniques Système de péage automatique
Télécopieurs Lave-vaisselle Systèmes de navigation (GPS)
Fours micro-ondes Reconnaissance de voix
Applications
27
Applications
28
29
30
31
32
33
34
35
36
37
Définition
38

◻ Composition d’un système embarqué


� Une partie matérielle utilisée pour la performance
■ Micro-processeur, contrôleurs, coprocesseurs, DSP
■ Mémoires
■ ASIC
■ Interfaces d’entrées/sorties
� Une partie logicielle utilisée pour sa flexibilité
■ Programmes

Software
Program
Définition
39

◻ Système embarqué typique


Définition
40
Définition
41
Définition
42
Définition
43
Résumé: Approche SoPC
44
(System on Programmable Chip)
L’approche SoC (technologie ASIC) répond aux besoins de performances et
d’intégration mais :
• elle est peu adaptée à l’évolutivité des systèmes
• elle reste réservée aux grands volumes de production
• la fabrication et le test sont des étapes longues et coûteuses

L’approche SoPC (technologie FPGA) résoud ces problèmes :


• développement et prototypage rapides
• composant reconfigurable en quelques ms et à volonté mais
• la densité d’intégration est moindre (~10 Millions de portes)
• la consommation est plus grande
• les performances sont moindres
Environnement SOPC
45

◻ exemples d'environnements
◻ SOPC: Vivado_ xilinx
◻ Quartus_ Altera
Flot de conception classique
46
47

chapitre3
mèthodologie de conception d'un
SOC-Codesign
Conception d’un système
48
embarqué

◻ conception de circuit doit faire face à :

� Intégration de systèmes (SoC)


� Accroissement continu de la complexité
� Accès rapide au marché
� Matériel et Logiciel
� Grande puissance de Calcul et/ou faible consommation
Conception d’un système
49
embarqué
◻ Perspective d’intégration : conception de SOC
Conception d’un système
50
embarqué
◻ Méthodologies de conception
� Procédure pour concevoir un système.
� Comprendre une méthodologie aide à garantir la sécurité de la conception.
� Flot de conception : somme de compilateurs, outils de développement logiciel, outils de
conception assistée par ordinateur (CAO), etc., permettant :
■ d'aider à automatiser les étapes de la méthodologie;
■ de garder trace de l’application de la méthodologie (gestion de version, rapports, accélération des
itérations).

◻ Buts de la conception
� Performances.
� Rapidité globale, échéances.
� Fonctionnalité et interface utilisateur.
� Coût de fabrication.
� Consommation.
� Divers exigences (encombrements, etc.)
Méthodologie de conception : Nécessité
51
& Objectifs
◻ Nécessité d’une méthodologie
� Systèmes de grande complexité à intégrer
� Capacité d’intégration croissante
� Espace de recherche de solutions extrêmement vaste
� Temps de conception de plus en plus court (Problème de Time-to-Market)

◻ Objectifs
� Favoriser l’exploration de l’espace architectural
� Limiter les erreurs de conception (sûreté de fonctionnement)
� Utiliser les outils de CAO pour les tâches répétitives et laborieuses
� Rester indépendant le plus longtemps possible vis à vis de la technologie
� Prendre en compte les contraintes matérielles au plus tôt
Méthodologie de conception : Niveaux
52
d’abstraction
◻ Définition :
� Méthode:
■ technique de résolution de problème caractérisée par un ensemble de
règles bien définies qui conduisent à une solution correcte
� Méthodologie:
■ un ensemble structuré et cohérent de modèles, méthodes, guides et outils
permettant de déduire la manière de résoudre un problème
� Modèle:
■ une représentation d'un aspect partiel et cohérent du «monde» réel
■ précède toute décision ou formulation d’une opinion
■ est élaboré pour répondre à la question qui conduit au développement
d’un système
Méthodologie de conception : Niveaux
53
d’abstraction
◻ Conception d’un circuit ou d’un système : passer d’un cahier des
charges à une réalisation

◻ Quatre grands niveaux de conception :


� Niveau Spécification (système) : définition du problème
� Niveau Architectural : agencement général de la réalisation
� Niveau Logique (logiciel) : conception détaillée
� Niveau Implantation : réalisation physique

◻ La réalisation peut être matérielle, logicielle ou conjointe


Méthodologie de conception : Niveaux
54
d’abstraction
◻ Diagramme en Y : A l’intérieur de chaque domaine, les éléments
peuvent être décrit à différents niveaux d’abstraction. Les transitions à
l’intérieur du diagramme en Y entre les domaines définissent les étapes de
conception.
Méthodologie de conception : Niveaux
55
d’abstraction
Flot de conception
56

Démarche de conception
Spécification

Démarche Conception Architecturale Démarche


descendante ascendante

Raffinement
Conception Logique Abstraction sur un
de chaque constituant ensemble de
constituants

Placement/Routage

Silicium
Flot de conception
57

Démarche ascendante
Algorithme
Traitement du signal et de
Niveau système
(description comportementale)
l’image

Ordonnancement
Niveau architectural
Sélection de composants
(description structurelle)
Machine d’états Boites à outil
pour le concepteur
du niveau supérieur
Simplifications logiques Niveau logique
Equations booléennes (équations logiques)

Physique du composants Niveau technologique


Dimensionnement des transistors (portes logiques)
Flot de conception
58

◻ Caractéristiques d’une démarche ascendante:


� La conception débute par une phase d’optimisation électrique.
� Une bibliothèque d’éléments optimisés est construite à chaque niveau
(utilisée au niveau d’abstraction supérieur).
� A chaque composant d’un niveau considéré, est associé une phase
d’abstraction (délimitation du composant auquel est associé une fonction au
niveau supérieur).
◻ Contraintes de la démarche ascendante:
� Nécessite une étude au niveau électrique longue et coûteuse qui ne peut être
justifiée que pour des réalisations à grande diffusion.
� Implique des contraintes de conception système difficiles à appréhender car
on commence par la spécification de sous-ensembles en espérant progresser
vers une solution architecturale pour le système global.
Flot de conception
59

contrainte
s
Flot de conception
60

◻ Caractéristiques d’une démarche descendante:


� Spécification : définition des différentes tâches fonctionnelles et des
contraintes de conception (débit, surface, consommation…)
� Conception fonctionnelle : détermination des fonctions internes, des
protocoles et des échanges entre fonctions
� Conception architecturale : détermination des opérateurs, gestion des
chemins de données et du contrôle
� Conception détaillée : transformation de la solution architecturale en
circuit. Optimisation des caractéristiques temporelles
� Réalisation : optimisation de l’implémentation au niveau des
performances électriques et structurelles
Flot de conception
61

◻ Méthode globale
� Optimisations: gain dominant au niveau système
■ transformations algorithmiques
■ choix des fonctions
■ organisation des données
� Exploration de l’espace architectural
■ éviter les remises en cause des décisions (rebouclage)
■ ordonner les prises de décision => heuristique de réduction du tps de conception
■ limiter l’espace de recherche des différents niveaux
� Affinement progressif du circuit
■ flot continu du niveau système au circuit
■ combler le fossé entre les concepteurs de système et les concepteurs de circuit
■ définition de modèles globaux qui peuvent être affinés
� MAIS
■ Rebouclage complet du flot => processus long et coûteux donc à proscrire
■ Flot descendant sans feedback => illusoire
Flot de conception
62

Vérification des spécifications


Méthode globale
Spécificati
Découpage en fonctions
on
système Simulation fonctionnelle
Conceptio Choix de l’algorithme
n Librairie de composants (tps/surf/cons)
fonctionne Estimation grossière
lle Simulation fonctionnelle et structurelle
Synthèse Choix de composants et ordonnancement
architectur Librairie de portes
ale Estimation fine
Simulation au niveau logique
Synthèse Paramètres connus (…)
logique Estimation exacte
Simulation électrique
contraintes: precision des Placement Tests
estimations Routage (vecteurs de test)

Process
Circuit
Flot de conception
63

◻ Mise en place d’un flot de conception continu des spécifications


systèmes à l’implantation électrique
◻ Systèmes embarqués
⇒ (gestion de la consommation et de la mémorisation
◻ Définir des stratégies pour concevoir des circuits en technologies
submicroniques
◻ Conception d’ASIP (Application Specific Instruction set
Processor ) et de leur compilateur associé
◻ Hardware/Software CoDesign
Flot de conception:codesign
64
Flot de conception : codesign
65
(Composants IPs)
Lien entre le matériel et le logiciel
« le codesign »
66

◻ Objectif : intégrer un système dans un même composant


(single chip). On parle aussi de système sur silicium SoC
(System on Chip) ou SoPC (System on Programmable
Chip), (loi empirique de Moore)
◻ Langages de description du matériel pour synthétiser et
tester les circuits numériques. On a ainsi une approche
logicielle pour concevoir du matériel.
◻ Les systèmes numériques se sont complexifiés et la mise
sur le marché est plus rapide ! (notion de Design Reuse et
d’Intellectual Property).
Codesign hardware / software
67

Système embarqué est de plus en plus utilisé.

❑ Le codesign permet de concevoir en même temps à la fois :

❑ le matériel et le logiciel pour une fonctionnalité à implémenter. Cela est


maintenant possible avec les niveaux d’intégration offerts dans les circuits
logiques programmables.
❑ Le codesign permet de repousser le plus loin possible dans:

❑ la conception du système les choix matériels à faire contrairement à


l’approche classique où les choix matériels sont faits en premier lieu !
Co-Design
68
Co-Design
69

◻ Quatre grands étapes sont distinguées dans


l’approche CoDesign :
� Spécification
� Partitionnement
� Synthèse logicielle & matérielle
� Co-simulation
Co-Design
70

Estimati
ons
Spécification

Optimisa Modèles
tions

Partitionnement HW/SW

Synthèse logicielle Synthèse Interfaces Synthèse matérielle

Co-Simulatio
Proc / DSP ASIC / FPGA
n
Les étapes dans le Codesign
71

◻ Spécifications : liste des fonctionnalités du système de


façon abstraite.
◻ Modélisation : conceptualisation et affinement des
spécifications produisant un modèle du matériel et du
logiciel.
◻ Partitionnement : partage logiciel matériel.
◻ Synthèse et optimisation : synthèse matérielle et
compilation logicielle.
◻ Validation : co-simulation.
◻ Intégration : rassemblement des différents modules.
◻ Tests d’intégration : vérification du fonctionnement
Resumé:Présentation générale de
codesign
72

Spécification
✔ Evaluation d’un cahier des charges
Aspects techniques
• Evaluation de la complexité (nbre de portes, nbre E/S, …)
• Performances électriques recherchées (surface, consommation, alimentation…)
• Types de fonction à développer (numérique, analogique, RF)
• Encapsulation : type de boîtier
Aspects économiques
• Délais de conception et de fabrication
• Marché => Quantité de pièces prévues
• Budget• ….
✔ Choix de la cible matérielle
Une technologie
Un type de circuit (FPGA, ASIC, DSP, Processeurs…)
Un flot de développement (outils CAO)
Resumé:Présentation générale de
codesign
73
Resumé:Présentation générale de
codesign
74

Partitionnement
Objectif
L’objectif du partitionnement est de regrouper les variables et les comportements
fortement dépendants, puis de décider pour chaque regroupement d’une réalisation
logicielle ou matérielle.

Problèmatique
Les performances réelles de la réalisation ne peuvent être connues qu’après l’étape
de co-simulation.
Approche
Afin de permettre le partitionnement, des estimateurs de performance rapides et
précis doivent prédire les performances et le coût d’une réalisation architecturale.
Partitionnement
75
76

Synthèse
Cette étape regroupe les synthèses de la partie logicielle, de la partie matérielle et
des interfaces et protocoles de communication.
Synthèse logicielle : correspond à la conversion d’une description décrite dans un
langage fonctionnel en un code exécutable par un processeur.
Synthèse matérielle : correspond à la conversion d’une description décrite dans un
langage fonctionnel en un ensemble d’équations différentielles décrivant la structure d’un
layout.
Synthèse des communications : étape essentielle, elle doit garantir les transferts de
données entre les différents blocs matériels et logiciels. Les protocoles et les modes de
communication sont définis durant cette étape.
Co-Design
77
Avantages du codesign
78

◻ Amélioration des performances : parallélisme, algorithmes


distribués, architecture spécialisée, etc.
◻ Reconfiguration statique ou dynamique en cours de

fonctionnement.
◻ Indépendance vis à vis des évolutions technologiques des

circuits logiques programmables.


◻ Mise à profit des améliorations des outils de conception

fournis par les fabricants de circuits logiques.


◻ programmables : synthèse plus efficace, performance

accrue
Architectures et technologies d’intégration
79

Solutions architecturales
Machine ASIP Circuit ASIC
programmable (Application Specific Instruction programmable (Application Specific Integrated
set Processor) Circuit)

Semi-
DSP υC DSP υC FPGA EPLD PLA Custom Custom

Processeurs Processeurs
généraux multimédias Circuits Circuits Circuits
sur mesure précaractérisés prédiffusés

Full Standart Gate Sea of


VLIW RISC Custom cell array gates
Architectures et technologies d’intégration
80

◻ ASIP : Application Specific Instruction set


Processor
� Processeur spécialisé à l’exécution d’une (ou quelques)
application (par exemple Modem)
� Jeu d’instruction et ensemble des ressources adaptés à
l’application
� Meilleurs rapports MIPS/mW et MIPS/mm2 que RISC
et DSP
� Mais compilateur plus délicat, time-to-market plus
long qu’avec des processeurs standards
Architectures et technologies d’intégration
81

◻ Application Specific Integrated Circuits (ASIC)


� Circuits custom-designed sont nécessaires pour une
recherche de vitesse et d’économie de consommation
dans une grosse production.
� Cette approche nécessite un temps de conception
important et un coût de fabrication élevé (e.g. Mill. $
pour le masque).
Architectures et technologies d’intégration
82

◻ Les ASIC et les ASSP sont basés sur les mêmes


processus de conception et technologies de
fabrication. Les deux sont également conçus pour
une application spécifique. Mais les ASIC sont
destinés à une compagnie spécifique, tandis que les
ASSP sont vendus à de multiples clients
Architectures et technologies d’intégration
83

◻ Les circuits logiques programmables


� PAL (Programmable Array Logic)
■ matrice de portes ET logiques connectés aux sorties via des
portes OU logiques
� CPLD (Complex Programmable Logic devices)
■ circuits regroupants plusieurs PAL à l’aide d’une matrice
d’interconnexion supplémentaire
� FPGA (Field Programmable Gate Array)
Architectures et technologies d’intégration
84

◻ DSP : Digital Signal Processors


� Processeurs orientés vers le traitement de signal
� Conçu pour des traitements « flot de données »
■ Essentiellement en arithmétique entière
■ Grande quantités de données numérisées, souvent organisées en flux
■ Unités de calcul fonctionnant en parallèle
■ Traitements à base de MAC : Multiply ACcumulate :
■ Adressage circulaire, boucles sans pénalités
■ Algorithmes type : filtres numérique RIF/RII, FFT, DCT, etc.
� Dans les SoC on intègre des « cœurs » de DSP
■ Il faut les intégrer au reste su système
� Fabricants : Texas Instrument, STMicro, Motorola
Architectures et technologies d’intégration
85

◻ Microcontrôleurs
� Utilisé pour le contrôle embarqué
� Censeur, contrôleurs simples
� Manipule des événements, quelques données mais en faible
quantité
◻ Quelques caractéristiques fréquentes
� Périphériques présents sur le circuit (timer, convertisseur
analogique numérique, interface de communication), accessible
directement grâce aux registres
� Programme et données intégrées au circuit
� Accès direct du programmeur à de nombreuses broches du
circuit
� Instructions spécialisées pour les manipulation de bits.
Architectures et technologies d’intégration
86

◻ Processeurs CISC et RISC:


� Le jeu d’instruction (Instruction Set Architecture: ISA)
:
■ détermine les instructions élémentaires exécutées par le
CPU.
■ est un équilibre entre la complexité matérielle du CPU et la
facilité d’exprimer les actions requises
■ est représenté de manière symbolique
� Deux classes de jeux d’instructions:
■ CISC: ComplexInstruction Set Computer
■ RISC: Reduce Instruction Set Computer
Architectures et technologies d’intégration
87

◻ Processeur RISC :
� Jeu d'instructions réduit, codage uniforme
� Modes d'adressage simples, utilisation intensive des
registres du processeur
� Compilation moins facile, code moins compact, plus
d'accès mémoire (pénalisation réduite grâce aux caches)
� Décodage et exécution rapides des instructions (un cycle
sur architecture pipelinée)
◻ Tous les microprocesseurs modernes utilisent ce
paradigme
� Exemples : SPARC(SUN), MIPS, ARM,
Architectures et technologies d’intégration
88

◻ Processeurs ARM
� Processeurs développés depuis les années 1980,
� Architecture relativement plus simple que d'autres
familles de processeurs
� Faible consommation,
� Les processeurs ARM sont devenus dominants dans le
domaine de l'informatique embarquée, en particulier la
téléphonie mobile et les tablettes.
Architectures et technologies d’intégration
89

◻ Processeurs ARM
� Caractéristiques :
■ Architecture RISC 32 bits
■ Architecture load/store : les accès en mémoire ne se font
que via des instructions load et store
■ Structure pipelinée
■ ARM7 : pipeline 3 étages et ARM9 : pipeline 5 étages
Architectures et technologies d’intégration
90
ASIC
◻ Les ASIC sont des circuits intégrés spécialisés qui
regroupent un grand nombre de fonctionnalités
uniques et sur mesure.
◻ Architecture dédiée à chaque application
◻ Complètement définis par les concepteurs qui
doivent exprimer clairement leurs besoins à travers
les masques qu’ils fournissent aux fabricants
Architectures et technologies d’intégration
91
ASIC
◻ Circuit intégré ou le nombre de transistor et les
connections ont été optimisés pour une application
couteuse et de délai élevé. Le but est de optimiser le
nombre de transistor, leurs types (couts et
consommation), leurs placement dans le circuit
intégré…
◻ Il y a quatre grandes familles d'ASIC:
� Circuit sur mesure (full custom)
� ASIC pré-diffusés (gate array)
� ASIC pré-caractérisées (standard cell)
� ASIC Structurés (structured)
Architectures et technologies d’intégration
92
ASIC

ASIC pré-caractérisées ASIC pré-diffusés


Architectures et technologies d’intégration
93
ASIC
Architectures et technologies d’intégration
94
ASIC
Architectures et technologies d’intégration
95
Les circuits programmables PLD
◻ Circuits logiques + ou - complexes remplaçant
l’association de plusieurs boîtes logiques
� Simplification de câblage
� Encombrement réduit
� Diminution des coûts
� Facilité d’utilisation
� Diminution du risque des pannes
◻ Un circuit intégré qui peut être reprogrammé après
sa fabrication afin d’assurer une fonction logique
donnée.
Architectures et technologies d’intégration
96
Les circuits programmables PLD
◻ PAL (Programmable Array Logic) : réseaux logiques
programmables
� Développés au début des années 70 par MMI (ex-AMD)
� La programmation se fait par destruction de fusibles
� Aucun fusible n’est grillé à l’achat de la PAL
Architectures et technologies d’intégration
97
Les circuits programmables PLD
◻ PAL
◻ Représentation :
� les fusibles intactes sont représentés par une connexion
� les fusibles détruits sont représentés par une absence de connexion
Architectures et technologies d’intégration
98
Les circuits programmables PLD
◻ PAL : Matrice de programmation
◻ La plupart des P.A.L. sont
constitués :
� Un ensemble de portes « ET » sur
lesquelles viennent se connecter les
variables d’entrée et leurs
compléments.
� Un ensemble de portes « OU » sur
lesquelles les sorties des opérateurs
« ET » sont connectées aux
variables d’entrée.
Architectures et technologies d’intégration
99
Les circuits programmables PLD
◻ Un exemple
Architectures et technologies d’intégration
100
Les circuits programmables PLD
◻ En fonction du bloc de sortie, plusieurs
sous-familles:
� PAL combinatoire
� PAL à registre (séquentielle)
� PAL versatile
Architectures et technologies d’intégration
101
Les circuits programmables PLD
◻ GAL (Généric Array Logic)
� Réseau Logique Reprogrammable
� Un GAL est un PAL effaçable électriquement
◻ EPLD (Erasable Programmable Logic Device)
� Circuit Logique reprogrammable de grande capacité
Architectures et technologies d’intégration
102
Les circuits programmables PLD
◻ Les FPGA (Field Programmable Gate Arrays)
� Les FPGA sont des circuits intégrés qui contiennent des
blocs de logique configurables (programmables), ainsi que
des interconnexions configurables entre ces blocs
� La configuration du circuit, c'est-à-dire la programmation
de sa fonction, se fait sur place (Field Programmable), sans
envoi chez un fabricant
� Les FPGA se placent à mi-chemin entre les PLD et les
ASIC. Les avantages par rapport aux ASIC sont:
■ coût de développement plus bas: les dépenses en NRE
(nonrecurring engineering) sont moins importantes
■ modifications plus simples à réaliser
■ time-to-market plus court
Architectures et technologies d’intégration
103
Les circuits programmables PLD
Architectures et technologies d’intégration
104
Les circuits programmables PLD
◻ La structure du bloc logique change selon le fabricant, la
famille…
◻ Aujourd'hui, la structure la plus utilisée est basée sur une
look-up table (LUT) (RAM) pour implémenter une fonction
combinatoire plus une bascule D
Architectures et technologies d’intégration
105
Les circuits programmables PLD
◻ La fonction de la LUT est de stocker la table de
vérité de la fonction combinatoire à implémenter
dans la cellule
Architectures et technologies d’intégration
106
Les circuits programmables PLD
◻ Les technologies de configuration sont:
� Fusible
� anti-fusible
� EPROM
� E2PROM/Flash
� SRAM
Architectures et technologies d’intégration
107
Les circuits programmables PLD
◻ Exemple : Structure d’une FPGA chez Xilinx
Architectures et technologies d’intégration
108
Architectures et technologies d’intégration
109

◻ Comparaison cibles techno (1)


Architectures et technologies d’intégration
110

◻ Comparaison cibles techno (2)


optimisations des fonctions
111

◻ Pragma:
◻ The pragma should be placed in the C source within the
boundaries of the required
◻ location. The pragma needs to be written in the C-code while all
the directives can be
◻ written in your directives file. The pragma equivalent of the
above 2 directive commands can be written as follows
◻ #pragma AP inline region recursive
◻ #pragma AP inline off
◻ You need to write these two pragmas in the top-level function
and in the foo_sub function respectively
112

◻ Function dataflow Pipelining: Dataflow pipelining takes a


sequential functional description and creates a parallel process
architecture from it. Dataflow pipelining is a very powerful method for
improving design throughput.
◻ -interval: An integer value specifying the desired initiation interval (II):
the number of cycles between the first function or loop executing and the
start of execution of the next function or loop.
◻ In the following command, dataflow is specified in function My_Func,
with a target initiation interval of 3.
◻ set_directive_dataflow -interval 3 My_func
◻ #pragma AP dataflow interval=3
113

◻ Function pipelining: Where dataflow pipelining


allows the optimization of the communication
between functions to improve throughput, function
pipelining optimizes the operations within a
function and has a similarly positive effect on
throughput.
◻ Tcl command: set_directive_pipeline
◻ #pragma AP pipeline
114

Loop optimizations
◻ Unrolling: Unroll for-loops to create multiple independent operations
rather than a single collection of operations. We can specify the unrolling
factor.
◻ Tcl command: set_directive_unroll -skip_exit_check -factor 4 foo/L1
◻ #pragma AP unroll skip_exit_check factor=4
◻ Merging: When there are multiple sequential loops this can sometimes
create additional unnecessary clock cycles. So, we merge those loops.
◻ set_directive_loop_merge foo
◻ #pragma AP loop_merge
Systèmes d’interconnexion
115

◻ Interconnexion de type BUS


� Système d’interconnexion à temps partagé
■ Relier le processeur à la mémoire + périphériques
� Exemple : le bus ISA IBM ('Industry Standard Architecture est un standard de bus
informatique interne utilisé pour connecter des cartes d'extension à la carte mère d'un
ordinateur.)(largeur de 16 Bits)(1980)
� Il est aussi très souvent utilisé en interne pour certaines fonctionnalités des PC modernes
comme les capteurs de températures et de tension. Le connecteur ISA a par contre totalement
disparu des ordinateurs conventionnels.
Adresses
� Un bus système est caractérisé par:
■ Son débit UC Vidéo
■ Son protocole
� Il existe plusieurs compromis entre la Audio
complexité du bus et ses performances.
Mémoire
Disquette
� On retrouve la même chose dans un SoC Données
Systèmes d’interconnexion
116

◻ Les bus « on-chip »


◻ Conçus pour les SoC
� Toutes les transactions se font en interne
� Moins de contraintes extérieures (connecteurs, etc.)
� Plusieurs standards existent
◻ Les principaux standards
� La norme AMBA (essentiellement autour des processeurs ARM)
� La norme Core Connect définie par IBM pour ses PowerPC
� La norme STBus, définie par STMicro (usage +/- interne)
� La norme Avalon utilisée par Altera (SOPCBuilder)
◻ Caractéristiques
� Protocoles complexes, avec plusieurs maîtres
� Bus orienté haute performances (transferts « en rafale »)
� Protocole simplifié si la performance n’est pas une contrainte
Systèmes d’interconnexion
117

◻ Exemple : Bus pour systèmes embarqués: Bus


AMBA: Advanced Microcontroller Bus
Architecture
� Conçu par ARM
� Permet de simplifier l’intégration au niveau système.
Systèmes d’interconnexion
118

◻ Advanced High-performance Bus (AHB) : bus


système rapide, synchrone, multimaître.
◻ Advanced System Bus (ASB) : une alternative
au système AHB, utilisé dans les cas ou les hautes
performances du bus AHB ne sont pas nécessaires.
◻ Advanced Peripheral Bus (APB): bus
périphérique, plus lent et de plus faible
consommation (pour périphériques lents),
synchrone, maître unique.
Systèmes d’interconnexion
119
Interface de connexion entre PS et PL
120

◻ La logique programmable, est connectée au processeur par l’intermédiaire


de l’interface standard AXI (Advanced eXtensible Interface) et par les
interfaces EMIOs (ExternalMultiplexed Input/Output) pour le transfert de
données et la communication avec les périphériques externes.

Architecture détaillée du Zynq


Interface de connexion entre PS et PL
121

L’interfaçage entre le PS et le PL se fait à travers neuf ports d’interconnexion


AXI.
Ces interfaces possèdent une haute bande passante allant jusqu’à 100Gb/s et
elles sont réparties comme suit :
Quatre interfaces « AXI_GP » (General Purpose) qui sont des interfaces
à usage générale, également de 32 bits de largeur, deux maitres et deux
esclaves.
Quatre interfaces « AXI_HP »(High Performance)qui ont un accès direct
à la mémoire DDR et à la mémoire OCM. Ceux sont des interfaces
configurables à 32 ou 64 bits utilisés pour le transfert de données à haut débit
entre le PS et le PL.
Une interface « AXI_ACP »(Accelerator Coherency Port 64-bit) qui a un
accès direct à la mémoire cache L2 du PS, puisqu’il est connecté à la SCU
(Snoop Control Unit) qui est à sa part connectée aux mémoires cache L1 et
L2.
Interface de connexion entre PS et PL
122

Cette connectivité permet des transactions avec les sous-systèmes de cache, ce


qui pourrait diminuer la latence totale pour les données consommées par le CPU
(Control Processing Unit). Il fournit aussi une capacité de haut débit. C’est une
interface de 64 bits de largeur.
Une première version l’interface AXI sortie en 2003, inclue dans la 3ème
génération de la famille des bus informatiques AMBA (Advanced
Microcontroller Bus Architecture) : un standard ouvert utilisé dans les systèmes
sur puce (SoCs), conçu par ARM. Une deuxième version l’interface AXI4
introduite par ARM en 2010, c’est la 4ème génération de AMBA;
Systèmes d’interconnexion
123

◻ Connexions point à point


◻ Utilisé pour relier des blocs qui effectuent des traitements de
type flot de données.
� Utilisation de mémoires tampons (FIFO) matérielles
� Synchronisation par les données beaucoup + simple
◻ Exemple : MPEG(DCT:transformé du cosinus discrete,Q: qantization, I:
inverse)
DCT Q zigzag
scan

IQ VLCodage

IDCT Flux compréssé


Systèmes d’interconnexion
124

◻ Interconnexions Crossbar
� Très utilisé dans les routeurs haute performance
� Très coûteux en ressources

s
I

M I I S

Arbitre
s
I
Systèmes d’interconnexion
125

◻ Les interconnexions : besoins


� Passage à l’échelle
■ Pour la bande passante/latence quelque soit la taille du système
� Flexible
■ Plusieurs configurations, bandes passantes réglables
■ Offre un connectivité entre chaque paire d’IPs
� Compositionnel
■ Permet l’assemblage de sous-systèmes
� Efficace
■ Coût (en silicium)
■ Dissipation d’énergie
� Pérenne pour les futures technologies (l<45nm)
■ Bruit, interférences, baisses de courant, « soft errors »
■ Gestion de plusieurs domaines d’horloge
Systèmes d’interconnexion
126

◻ Aujourd’hui
s

I
Emetteur
interface
Master I
Arbite
r M
Master I I S
I
I Slave
interface Master I
Arbiter
Récepteur
s

I
Point à point dédié Bus partagé Réseau cross-bar

Passage à l’échelle
Flexible Passage à l’échelle Passage à l’échelle
Compositionnel Flexible
Compositionnel
Efficace Efficace

◻ De plus, ces solutions ne sont pas adaptées aux futures


technologie sub-microniques (45nm et moins)
Systèmes d’interconnexion
127

◻ Demain …
� Des centaines de blocs IP interconnectés en 2012
■ Taille des blocs ~ constante, mais leur nombre va augmenter
� Des schémas d’interconnexion dynamiques.
■ Algorithmes dont les comportement dépendent des données
� Plus de 100 cycles horloge pour traverser le circuit
■ Aller-retour = 200 cycles, sans arbitrage
■ gagner de la BP → augmenter le grain de communication
� Les connexions directes ont des taux d’erreur
élevés.
■ Gestion des erreurs par le système d’interconnexion.
Systèmes d’interconnexion
128

◻ Solution : Networks on Chip (NoC)


� NoC = réseau sur puce, micro réseau, etc.
� Communications entre IP sont gérées par un réseau
■ Réseau multi saut : routeurs connectés en Point à Point
■ Routeurs retransmettent les paquets de données
■ Un routeur est un bloc IP du système comme les autre
Stockage des cross-bar
paquets switch
Réseau sur puce

arbitre

router node
Blocs IP fonctionnels
Systèmes d’interconnexion
129

◻ Coût des interconnexions


◻ Les solutions extrêmes ne sont pas intéressantes pour
des communications globales
Congestion
BP partagée
Temps
Coût
Point à point partagé
Interférences Souplesse
dédié
Délais de propagation
Sur utilisation de la surface

◻ Bon compromis = PàP + Multiplexage temporel


� high utilization, few wires
� high frequency, pipelining & repeater insertion possible
Systèmes d’interconnexion
130

◻ Bilan … Réseau routé

Intéressant, mais
Trop coûteux Encore trop coûteux
en surface

Point à point dédié

Approche hybride
routeurs + bus

Performance
trop faibles

Bus partagé Probablement la


solution à retenir
131

D’un point de vue architectural, les cartes de Kohonen


Architecture du réseau SOM
sont des réseaux à connexions latérales composées de deux couches :
Une couche d’entrée : activée par un exemple modélisé par un vecteur
d’entrée « X » à N neurones, suivant le problème à traiter.

Une couche de sortie (ou couche de compétition) : sous forme d’une grille (uni
1Dou bidimensionnelle 2D) à M neurones. Ou les neurones sont reconnus par leur
numéro et leur emplacement sur la grille. La couche d’entrées est connectée à
celle de sortie par une matrice de poids.

Architecture du SOM pour une grille 2D


132

L’algorithme d’apprentissage des SOM comprend deux étapes principales :


1-Sélection d’un nœud gagnant.
2-Mise à jour du profil du nœud gagnant et de ceux dans son voisinage
133

En plus du code source en C, Vivado HLS accepte


Flot de conception de Vivado HLS comme entrées une fréquence d’horloge cible qui est
configuré à 100 Mhz, une spécification de l’
équipement cible, des directives et des commandes
de l’utilisateur qui peuvent être appliquées pour
contrôler et diriger des optimisations particulières.
134

◻ les pragmas d’optimisations utilisées sont :


◻ #pragma HLS PIPELINE : Le pragma pipeline prend une boucle décrite
d’une manière séquentielle et l’exécute suivant une architecture parallèle.
L’utilisation stratégique du pipelining peut réduire le temps de latence de
la conception. D’une autre côté, cela peut augmenter la surface de la
conception, donc il y a un compromis à faire.
◻ #pragma HLS UNROL : Le pragma unrol crée plusieurs opérations
indépendantes. Cette directive peut être utilisé dans le cas où une boucle
ne peut pas être exécute en pipeline. L’utilisation de ce pragma peut
améliorer la latence mais en contrepartie elle utilise plus de ressources
matérielles puisque toutes les itérations s’exécute en parallèle, ici aussi il
y a un compromis à faire.
Specification haut niveau en c++
◻ #include <stdio.h>
135 ◻ #include <stdlib.h>
◻ #include <time.h>
◻ #include <math.h>
◻ #include <algorithm>
◻ using namespace std;
◻ int const NNeur=25;
◻ int const NIn=23;
◻ int const DIM = NIn*NNeur;
◻ float alpha;
◻ float const MinAlpha=0.00001;
◻ float Inputs[NIn]
={0.3,0.62,0.24,0.5,0.5,0.12,0.12,0.88,0.77,0.14,0.01,0.91,0.73,0.36,0.94,0.49,0.36,0.24,0.17,0.09,0.73,0.71,0.65}
◻ typedef float T;
◻ float Weights[NIn][NNeur];
◻ float NewWeights[NIn][NNeur];
◻ int dis;
◻ int neurones [5][5];
◻ int Winner;
◻ int voisin[9];
136
◻ //--------------------------------------------------------------------------------------------
◻ void InitializeWeights()
◻ { /** Matrix Initiation */
◻ T matOp[NIn][NNeur];
◻ int j,i;
◻ printf("Initiation of Weights \n");

◻ for (j=0; j<NIn; j++) //inputs


◻ {
◻ for (i=0; i<NNeur; i++) //neurones
◻ {
◻ matOp[j][i]= (rand()) / (RAND_MAX + 1.0);
◻ Weights[j][i]= matOp[j][i];
◻ //printf (" %f ", Weights[j][i]);
◻ }
◻ // printf("\n");
◻ }
137
◻ void SOM()
◻ {
◻ float D[NNeur];
◻ int i,j,l,m,x;
◻ float smallestD=1.0*exp(99);
◻ int maxX, minX ;
◻ int t=0;
◻ int a=1;
◻ int Wmn, Wmx;
◻ int rayon = 2;
◻ for (i=0; i<NNeur ;i++) // neurones
◻ {
◻ D[i]=0;
◻ for (j=0;j<NIn;j++) // Inputs
◻ {
◻ D[i] += ((Inputs[j] - Weights[j][i])*(Inputs[j] - Weights[j][i]));
◻ }
◻ // printf(" Distance__%d = %f\n", i,D[i]);
138

◻ if (D[i]<smallestD)
◻ {
◻ smallestD = D[i];
◻ Winner=i;
◻ }
◻ }
◻ printf(" smallest Distance is %f winner %d\n",smallestD,Winner);
◻ int W =Winner;
◻ int k =1;
◻ for (int m=0; m<5;m++){
◻ for(int n=0; n<5;n++){
139
◻ neurones[m][n]=k;
◻ k++;
◻ }}
◻ for (int i=0; i<5;i++){
◻ for(int j=0; j<5;j++){
◻ printf("%d\n",neurones[i][j]);
◻ }}

◻ for (int m=0; m<5;m++){


◻ for(int n=0; n<5;n++){

◻ if (neurones[m][n]== W){
◻ voisin[0]=neurones[m][n];
◻ voisin[1]=neurones[m+1][n];
◻ voisin[2]=neurones[m][n+1];
◻ voisin[3]=neurones[m+1][n+1];
◻ voisin[4]=neurones[m-1][n];
◻ voisin[5]=neurones[m][n-1];
◻ voisin[6]=neurones[m-1][n-1];

140

◻ voisin[7]=neurones[m+1][n-1];
◻ voisin[8]=neurones[m-1][n+1];
◻ }
◻ }}
◻ printf("--------------------------\n");
◻ for (int m=0; m<9;m++){
◻ printf("%d\n",voisin[m]);
◻ }
◻ printf("\n --------Update weights-------- \n");
◻ do
◻ {
◻ t +=1;
◻ a *=2;
141
◻ alpha= 1/(float)a ;

◻ // printf("\n la valeur du LearningRate est : %f \n",alpha);


◻ //int d=19;
◻ int Wmn = max(0,W - rayon);
◻ int Wmx = min(NNeur, W + rayon);

◻ printf("l'indice minimal %d ",W);


◻ // printf("\n minimum X %d ",Wmn);
◻ // printf("\n maximum X %d ",Wmx);
◻ // printf("\n");

◻ for (int l=0; l<NIn; l++) // INputs


◻ {
◻ for ( int x=0; x<=8; x++) //neurones voisin
◻ {
◻ Weights[l][voisin[x]] += alpha*(Inputs[l] - Weights[l][voisin[x]]);
◻ // printf(" %f ",Weights[j][x]);

◻ printf("%f \n ",Weights[l][voisin[x]]);
◻ // printf("\n");
◻ }
142
◻ }

◻ // for (int l=0; l<NIn; l++){


◻ //for (int m=0; m<DIM; m++)
◻ // {
◻ //NewWeights[l][m]=Weights[l][m];
◻ // printf(" %f " ,Weights[l][m]);
◻ // }
◻ //}

◻ for (int l=0; l<NIn; l++){


◻ //for (int x=0; x<NIM; x++)
◻ for (int x=0; x<NNeur; x++)
◻ {
◻ NewWeights[l][x]=Weights[l][x];
◻ //printf(" %f " ,Weights[l][x]);
◻ }

◻ }
143

◻ printf("Dmin= %f\n", smallestD);


◻ printf("winner= %d\n",Winner );

◻ }
◻ while (alpha>MinAlpha);
◻ printf("Number of Iterations %d\n",t );
◻ return;
◻ }

◻ //----------------------------------------------------------
◻ int main(void) {

◻ InitializeWeights();
◻ SOM();
◻ return 0;
◻ }
144

◻ 1èr étude : Estimation de surface et de latence


sans et avec PIPELINE
145

2ème étude : Estimation des performances en variant le taux de parallélisme


146
Bloc IP personnalisé généré pour notre algorithme
SOM

La configuration de notre projet sous Vivado Design Suite s’articule comme suit :
Importer l’accélérateur crée avec Vivado HLS, Ajouter, Configurer et connecter le
processeur Zynq à la mémoire DDR, Ajouter d’autres IPs nécessaire pour compléter la
conception, y compris : § Contrôleur DMA § Deux interconnexions AXI : l’un pour les
registres de contrôle, l’autre pour le port ACP, § Matériel de remise à zéro du processeur, § Le
timer subsystem (un IP créé en utilisant la conception Vivado Suite) qui sera utilisé pour
effectuer des mesures très précises de mesure du temps écoulé pour faire les calculs (logiciels
ou matériels), § Autres IPs supporté.
147

Vous aimerez peut-être aussi