Vous êtes sur la page 1sur 79

Architectures avancées sur puce

Cours pour MPSE1


préparé par : Mounira TARHOUNI
Maitre Assistante à L’ISIMG
Ingénieur Génie Electrique
Docteur en électronique
Objectifs
 Comprendre le recours vers les Systèmes sur
Puce (SOC)
 Découvrir les caractéristiques d’un SoC
 Présenter les différentes architectures d’un SoC
 Détailler les étapes de conception d’un système sur
puce
 Comprendre la communication entre les différents
composants d’un SoC (case study: AMBA, AXI,…)
 …
Plan
 Chapitre 0: Concepts généraux.
 Chapitre 1: Les systèmes embarqués.
 Chapitre 2: Les systèmes sur puce SOC.
 Chapitre 3:Architectures des SoC
 Chapitre 4:Communication dans les SoC :
Advanced Microcontroller Bus Architecture (AMBA)
Chapitre :0
Concepts généraux
Introduction
 Au début du xx e s, les circuits électroniques étaient constitués de
composants appelés « discrets » (résistance, bobine…)
 En 1948: Apparition du transistor (laboratoire Bell au USA)
Un transistor peut être employé comme amplificateur de signal
mais aussi comme interrupteur.
 En associant plusieurs transistors, on peut réaliser des circuits
simples, appelés portes, capables d'effectuer certaines opérations
De même, on réalise des circuits additionneurs ou de
mémorisation en associant plusieurs portes.
Introduction
 les composants étaient fixés sur des broches et câblés entre eux
par des fils.
 Dans les années 1950 sont apparues les cartes à circuits imprimés,
où les fils sont « intégrés » dans la carte qui supporte les
composants.
 Puis en 1958 les composants eux-mêmes ont été intégrés sur de
petites plaques de silicium.
Les lois d’évolution
 1965 Modélisation par la Loi de Moore

(Gordon Moore dirigeant d’Intel):La densité d’intégration (le nombre


de transistors par unité de surface sur une puce) double tous les18
mois (60% l’an)

 Circuits
 L’augmentation de la taille des puces est moins prévisible : entre 10 et
25% par an.
 L’effet combiné est une augmentation du nombre de transistors par
circuit de 60 à 80% par an.
 Mémoires
 La densité croit d’un peu moins de 60% par an (x4 en 3 ans)
Les lois d’évolution
 Première loi de Nathan
 Nathan Myhrvold
 « Le logiciel se comporte comme un gaz : son expansion est telle
qu’il remplit tout contenant »
Le logiciel crée une pression d’évolution sur les
 Processeurs
 Mémoires
 e/s
 Concrètement, la quantité de mémoire dont a besoin un
programme augmente d’un facteur 1,5 à 2 par an !
 Augmentation du nombre de bits d’adresse de 0,5 à 1 par an.
Les lois d’évolution
Loi empirique de Joy

 La puissance CPU des processeurs embarqués en MIPS


double tous les 2 ans

 Ils sont de plus en plus communicants :

 On a besoin d’une bande passante réseau de


0,3 à 1 Mb/s par MIPS !!
Les Lois de l’évolution
Evolution des processeurs
Limitations physiques de la densité
d’intégration
 La longueur d'onde de la lumière (ultraviolet) servant à insoler les
masques en photolithographie doit diminuer lorsqu'on réduit la
taille du plus petit élément pouvant être dessiné.

 L'épaisseur de l'isolant de la grille du transistor ne peut diminuer


en deçà de 2 nm (épaisseur correspondant à l'empilement de moins
de 10 atomes). En effet, si l'isolant est trop fin, il ne joue plus son
rôle et, à cause de l'effet tunnel, des courants de fuite très
importants apparaissent

 La longueur de canal du transistor ne peut décroître en dessous


d'une certaine limite (de l'ordre d'une dizaine de nanomètres) sous
laquelle l'effet tunnel se produit entre les bornes du transistor
(source et drain), créant d'importants courants de fuite.
Une évolution à maîtriser
 Aujourd’hui la durée de vie d’une technologie est
d’environ 5 ans.
 Face à cela, l’industrie électronique doit
 Maintenir son taux de progression
 Révolutionner régulièrement ses méthodes de
conception/production
 La conception vise aujourd’hui l’intégration de plusieurs
composants (d’un système) sur un seul chip

 Système sur puce ou SoC (System on Chip)


Ou SoPC (System on Programmable Chip)
Chapitre 1:
Les systèmes embarqués
Introduction
 Vous êtes réveillé le matin par votre radio-réveil
c’est un système embarqué...
 Vous programmez votre machine à café pour avoir un bon petit serré
c’est un système embarqué...
 Vous allumez la télévision et utilisez votre télécommande ;
ce sont des systèmes embarqués...
 Vous prenez votre voiture et la voix du calculateur vous dit que vous n’avez pas
mis votre ceinture
c’est un système embarqué...
 Vous appelez votre patron avec votre téléphone portable pour signaler que vous
serez en retard;
c’est un système embarqué...
On en croise des dizaines de systèmes embarqués par
jour sans le savoir
Système Embarqué
 Un système embarqué est un système complexe qui intègre du
logiciel et du matériel conçus ensemble afin de fournir des
fonctionnalités données.
 Il contient généralement un ou plusieurs microprocesseurs
destinés à exécuter un ensemble de programmes définis lors de la
conception et stockés dans des mémoires.
 Le système matériel et l'application (logiciel) sont intimement liés
et immergés dans le matériel et ne sont pas aussi facilement
discernables
 Afin d'optimiser les performances et la fiabilité de ces systèmes,
des circuits numériques programmables FPGA (Fild Programmable
Gate Array), des circuits dédiés à des applications spécifiques ASIC
(Application Specific Integrated Circuits) ou des modules analogiques
sont en plus utilisés.
PC Vs Système embarqué

 Périphériques standards  Périphériques suivant les exigences et


 Dispositif qui s’adapte à différents
l’environnement de l’application
types de travaux : bureautique,  Matériel et logiciel dédiés aux
calcul scientifique, jeux, etc. fonctionnalités de l’application
 Moins de contraintes sur les  Contraintes de consommation, de temps
ressources matérielles et logicielles de traitement, d’encombrement, de
robustesse et de coût
Domaine d'application
 Astronautique : fusée, satellite artificiel
 Electroménager : télévision, four à micro-ondes
 Équipement médical:
 Imagerie médicale ((rayon X, ultra-sons, IRM),
 Chirurgie dentaire,
 Dispositifs orthopédiques
 Stimulateur cardiaque,
 ………….
 Guichet automatique bancaire (GAB)
 Impression : imprimante multifonctions, photocopieur, etc.
 Militaire : radar
 Multimédia : console de jeux vidéo
 Transport : Automobile, Ferroviaire
 Réseaux informatiques: routeurs, switchs
Exemple de système embarqué
Un distributeur de billets :
• Reçoit des informations des touches et de l'écran
tactile, ainsi que de la banque par liaison
informatique
• Décide de donner ou non des billets en fonction de
l'état du compte
• Maintient un compteur du nombre de billets restant
et donne éventuellement
des billets au porteur de la carte
Caractéristiques des systèmes
embarqués
 Fonctionnement enTemps Réel:
 Réactivité: des opérations de calcul doivent être faites en réponse à un
événement extérieur (interruption matérielle).
 La validité d’un résultat (et sa pertinence) dépend du moment où il est
délivré.
 Rater une échéance va causer une erreur de fonctionnement
 Environnement:
 Soumis à de nombreuses contraintes dictées par l'environnement telles que
la température, l’humidité, les vibrations, les chocs, les variations
d’alimentation, les interférences RF, l'eau, le feu, les radiations…etc.
 Faible coût, sureté et sécurité
 Le système doit toujours fonctionner correctement (faible cout et une
redondance minimale)
 Sureté de fonctionnement du logiciel (système opérationnel même quand un
composant électronique lâche)
 Autonomes
Caractéristiques des systèmes
embarqués
 Faible encombrement, faible poids:
 Applications portables où l’on doit minimiser la consommation
électrique
 Difficulté pour réaliser le packaging afin de faire cohabiter sur
une faible surface électronique analogique, électronique
numérique, RF sans interférences.
 Faible consommation:
 La minimisation de la consommation est essentielle pour les systèmes
autonomes afin de maximiser l'autonomie des batteries. Une consommation
excessive augmente le prix de revient du système embarqué car il faut alors
des batteries de forte capacité.
 Réactifs:
 Ils doivent réagir à l’arrivée d’informations extérieures non prévues
Quelques acteurs de l’embarqué en
Tunisie

24
Système embarqué typique

25
Système embarqué typique
• On retrouve en entrée des capteurs généralement
analogiques couplés à des convertisseurs A/N.
• On retrouve en sortie des actionneurs généralement
analogiques couplés à des convertisseurs N/A.
• Au milieu, on trouve le calculateur mettant en œuvre un
processeur embarqué et ses périphériques E/S.
• Il est à noter qu’il est complété généralement d’un circuit
FPGA jouant le rôle de coprocesseur afin de proposer des
accélérations matérielles au processeur
Eléments clés d’un SE

27
Processeurs GPP

 GPP : General Purpose Processor


 Processeur programmable à usage général, appelé
généralement microprocesseur (CPU)

 Intérêt d’utilisation
 Faible Time-to-market (programmation facile), coût
raisonnable
 Grande flexibilité
 Time-to-market: Délai de mise sur le marché

28
Processeur SPP
SPP : Specific Purpose Processor

 Circuit numérique conçu pour exécuter exactement un seul


programme appelé généralement accélérateur ou
coprocesseur
 Unités spécifiques à l’exécution d’un seul programme
Intérêt d’utilisation
 Rapide
 Faible consommation et taille réduite

29
Processeur ASP
ASP : Application Specific Processor

 Processeur programmable optimisé pour une classe


d’applications ayant des caractéristiques communes.

 Exemple : DSP (Digital Signal Processor)


Intérêt d’utilisation
 Meilleur performance : Unités à fonctions spécifiques
(unités de traitement des données optimisés)

30
Microcontrôleur
Un microcontrôleur est un circuit intégré de traitement de l’information,
réunissant les éléments essentiels d’une structure à base de
microprocesseur
On y trouve souvent:
 Un microprocesseur (C.P.U.)
 Mémoire : vive (RAM) et morte (ROM, PROM, EEPROM,
Flash…)
 Des interfaces d’entrées/sorties : GPIO, UART, USB, SPI…
 Des Timers pour générer ou mesurer des signaux avec une
grande précision temporelle
 Des convertisseurs : DAC , ADC
31
Langage de description matérielle
 1990 – 2000
 Verilog & VHDL standards IEEE
 2000
 SystemC
 2002
 SystemVerilog
 Extension « système » de Verilog
Pourquoi du HDL?

 Ces langages ont permis de travailler avec un niveau d'abstraction plus


grand laissant les basses besognes au synthétiseur.

 Développer des bibliothèques de fonctionnalités comme une interface


USB, un contrôleur MAC Ethernet que l'on appelle blocs IP (Intellectual
Property).

 La conception d'un système numérique complexe comme un assemblage


de blocs IP si bien que les langages de description de matériel sont un
peu comme un langage assembleur vis à vis d'un langage plus évolué
comme le langage C.

 Facilité la modification et la réutilisation d'un design précédent pour un


nouveau design (design & reuse).  réduire de TTM
Flot de conception
Chapitre 2:
Les systèmes sur puce (SOC)
Du transistor au SoC
Pourquoi les SoC?
 La conception vise aujourd’hui l’intégration de
plusieurs composants (d’ un système) sur un seul chip
 Gain de surface
 Diminution de la consommation d’énergie
 Gain en fréquence
 Encombrement
Un SoC c’est quoi?
 Un SoC constitue un circuit
complexe qui intègre tous
les éléments fonctionnels
d’un produit sur une même
puce. Par exemple, des
modules logiciels (DSP), des
mémoires, des
périphériques, des
coprocesseurs matériels
(FPGA ou ASIC) et même
des modules analogiques ou
optoélectroniques peuvent
tous être mis sur un même

Technologies de fabrications
Technologies de fabrications
Evolution vers l’integration
Evolution vers l’intégration
 La technologie évolue. En réduisant la taille des
transistors, elle permet de :
 Augmenter la fréquence d’horloge,
 Augmenter la densité d’intégration,
 Augmenter la capacité mémoire,
 Augmenter la taille des mots,
…
Densité d’intégration
 SSI – Small Scale Integration (1960’s)
 1 à 10 portes / circuit
 Moins de 100 transistors
 MSI – Medium Scale Integration
 10 à 100 portes / circuit
 Plus de 3000 transistors
 LSI – Large Scale Integration (1970’s)
 100 à 10 000 portes / circuit
 Plusieurs dizaines de milliers de transistors
 VLSI –Very Large Scale Integration (1980’s)
 + de 10 000 portes / circuit
 1 million de transistors
 ULSI – Ultra Large Scale Integration (2000’s)
 + de 100 000 porte / circuit
Circuits intégrés :classification
Circuits intégrés :classification
ASIC : Application Specific Integrated
Circuit
Conception et fabrication d’un ASIC
Les concepteurs de SoC

 Les principaux concepteurs de system on a chip sont :


 AMD ;
 Apple ;
 Broadcom ;
 Intel ;
 Nvidia ;
 Qualcomm ;
 Samsung ;
 Texas Instrument.
Leurs system on a chip sont basés soit sur une architecture x86
(Intel uniquement) soit sur une architecture ARM, qui est la plus
répandue.
Notion de CO-design
Notion d’IP: (Intellectual Property)
 La conception à zéro temps de conception long, difficulté,
coût,…
Utilisation de bibliothèque « réutilisables »: les IP core
(Intellectual Property)
 Se base sur le concept « design and reuse »
https://www.design-reuse.com
 Blocs fonctionnel complexes réutilisables
 Normalisation des interfaces
 Environnement de développement (co-design, co-specification,
covérification…)
 Performances moyennes (peu optimisées)
Notion d’IP Hard
Notion d’IP Hard
 Hard IP exemples : multimédias
http://www.design-reuse.com/sip/multimedia-
video-image-audio-c-12/
camerIC™ 2MP-18MP - Camera Processor IP Core up to
18 Megapixels pour telephonie, laptop, appareils photo
..etc
Notion d’IP Soft
 Soft IP , exemples:
AES Cryptography algorithms, optimized for ARM
platforms:
http://www.design-reuse.com/hds/

Autres :
Digital Signal Processing
Communications and Networking
High Speed Interfaces
Mixed Signal
RF
Multimedia
Notion d’IP: Firm
 Sont des blocs ayant subit une optimisation en surface et en
vitesse par des techniques de placement relatif.
 Décrits en HDL structurel, il font appel à des composants
élémentaires d’une librairie générique.
 Cette implantation autorise des évaluations plus fines de
ressources utilisées et de performances.
 Le firm core n’est pas routé. Ce type de macro bloc est donc
un compromis entre les IP soft et hard.
Commerce d ’IP « design & reuse »
Notion d’IP :évolution
 Amelioration de la productivité des Ips, IP plus flexibles et mieux optimisables
=> conversion des IP hard to IP soft + former une base des donnés IP
importantes..
TSMC Soft-IP Alliance Program (TSMC:Taiwan Semiconductor Manufacturing Company)

Sources:
http://www.semiwiki.com/forum/showwiki.php?title=TSMC:IP+Alliance+Wiki
http://www.tsmc.com
Notion d’IP:evolution
 On a pu, par conséquence, rapidement développer
des bibliothèques de fonctionnalités comme une
interface USB, un contrôleur MAC Ethernet que l'on
appelle blocs IP (Intellectual Property).

 On peut les acheter ou bien utiliser des blocs IP libres


(comme du logiciel libre) dont le site phare de
référence est http://www.opencores.org.

 On peut ainsi voir la conception d'un système


numérique complexe comme un assemblage de blocs
IP.
Conception des systèmes sur puce
 Nombre d’ingénieurs faible
 Les échéances sont contraintes
 6 mois pour la mise sur le marché est un délai classique
Objectif: intégrer tout un système sur un même
composant (single chip)
Conception des SOC
Un exemple d’abstraction..
Registres simple 16 bits
 Description VHDL 15 lignes de code
 Portes logiques  96 portes logiques
 Circuit électrique 84 transistors
 Dessin de masque 768 segments
l’abstraction permet de décrire plus simplement des
choses plus compliquées
Outils CAO pour automatiser le passage d’un niveau
d’abstraction à un autre: outils de synthèse , de simulation..
Le Codesign
Le codesign implique une conception en même temps du matériel et
du logiciel, ce qui est une nouvelle méthodologie par rapport à la
méthodologie de conception classique (conception matérielle puis
conception logicielle)
Le Co-design
 Conception de systèmes macro ou micro (System on Chip) qui
intègrent à la fois des processeurs généralistes capables d'exécuter
des programmes (LOGICIEL) et des IP (Intellectual Property)
(MATERIEL).

 Conception conjointe des composant logiciels et matériel

 L'unification de chemins matériels et logiciels couramment séparés.

 Une méthodologie de conception qui support le développement


coopératif et concurrent du matériel et du logiciel (co-spécification,
co-développement, et co-vérification) afin d'obtenir des
fonctionnalités partagées et d'atteindre les performances espérées
Le Codesign
 Le Codesign dans la méthodologie de conception d’un système sur
puce 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 a faire contrairement à
l’approche classique ou les choix matériels sont faits en premier
lieu.
Le Co-design
Le Co-design
Le Co-design: Flot de conception
Le Co-design: Flot de conception
Le Co-design: Spécification
 La première étape de la méthode consiste à s’intéresser aux
besoins des utilisateurs et donc à leur spécification.

 Dans le contexte des systèmes mixtes, il faut nous attacher à


utiliser un langage assez puissant pour spécifier le logiciel, le
matériel ainsi que toutes les contraintes imposées aux
systèmes.
Le Co-design: Modélisation
 De très nombreux formalismes sont utilisés pour la modélisation
des systèmes mixtes (FSM :Finite State Machine), DFD (Data
Flow Diagrams), RDP (Réseaux de Petri) ....

 Le formalisme qui apparaît comme étant le plus utilisé pour la


modélisation des systèmes matériels sont les machines à états finis.

 Ces dernières étant aussi très utilisés en logiciel, la modélisation


des systèmes mixtes repose souvent sur elles. Le Codesign utilise
donc très majoritairement les machines à états finis.
Le Co-design: 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.
Le Co-design: Partitionnement
Le Co-design: 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.
Processeur Embarqué
 Lorsque l’on conçoit un système numérique complexe, on met en
œuvre généralement un processeur embarqué.
 Ce processeur embarqué est :
 Soit un bloc IP : on parle de processeur softcore.
 Soit déjà implanté dans le circuit électronique en « dur » : on parle
de processeur hardcore.
Le processeur de ce type est généralement plus performant que le
processeur du type précédent.
 Le processeur embarqué allie la souplesse du logiciel à
l’accélération du temps d’exécution du matériel.•
 Une fonctionnalité particulière peut donc être composée d’une
partie matérielle couplée à une fonctionnalité logicielle dédiée :
on a donc une conception conjointe matérielle- logicielle ou co-
design.
Processeur Embarqué
 Le choix d’un processeur pour le SoC peut se faire sur différents critères
 Processeur hardcore : pour ses performances au détriment de la flexibilité.
 Processeur softcore : pour sa flexibilité de mise à jour au détriment de
performances moindres que le précédent. La portabilité vers n’importe quel
circuit FPGA est assurée. Il est aussi possible de migrer vers un circuit de type
ASIC en cas d’une production en grande série.
 Généralement, on privilégie les processeurs softcore pour s’affranchir des
problèmes d’obsolescence et pour pouvoir bénéficier facilement des évolutions
apportées en refaisant une synthèse.
 Le processeur softcore peut être libre :
 Il est décrit en langage de description de matériel (VHDL, Verilog).
 Le code source peut être librement distribué et implanté dans n’importe quel
circuit programmable FPGA.
On est alors indépendant du type de circuit FPGA.
Processeur Embarqué
 Le processeur softcore peut être propriétaire :il est distribué par exemple sous
forme d’une netlist pour être implantée dans un circuit FPGA.
 Il est généralement lié à un fondeur de circuit FPGA particulier (comme Altera
ou Xilinx).
 On ne peut pas l’utiliser dans un circuit FPGA autre que celui pour lequel il est
prévu.
 On trouvera principalement au niveau des processeurs softcores libres:
 Le processeur Leon (http://www.gaisler.com/index.html)
 Le processeur OpenRisc
(http://www.opencores.org/projects.cgi/web/or1k/overview)
 Le processeur F-CPU (http://www.f-cpu.org)
 Autres processeurs : clones de 6800, 68HC11, 68K, PIC
(http://www.opencores.org/browse.cgi/filter/category_microprocessor)
 On trouvera principalement au niveau des processeurs softcores propriétaires :
 Le processeur NIOS et NIOS II dAltera: (http://www.altera.com).
 Le processeur Microblaze de Xilinx : (http://www.xilinx.com).
Architecture d’un SOC
Etude de cas
 Implémentation d’un filtre de Sobel dans une carte à base
d’un FPGA Zynq 7000.

 Outils logiciels: vivado , vivado HLS, SDK

 Outils matériels: La plate-forme ZYNQ (ZC702 Evaluation


Board)

Vous aimerez peut-être aussi