Vous êtes sur la page 1sur 67

Chapitre 2

Introduction aux architectures à


usage général et spécifique
1. Introduction

Un processeur (ou unité centrale de traitement, UCT ;


en anglais central processing unit, CPU) est un type de
système numérique dont l’objectif est de traiter des données
en effectuant une suite d’étapes simples, pouvant résulter en
un traitement global complexe.

Un processeur doit acquérir des données, les traiter, et


produire un résultat.
Un processeur est composé de deux parties:
❖ Le chemin des données (datapath): traite les données. Il inclut:
des registres; des unités fonctionnelles (comme une unité arithmétique et
logique) et un mécanisme de commutation pour transférer et manipuler les
données.
❖ L’unité de contrôle (control unit) est responsable du séquençage des
opérations à exécuter par le chemin de données selon des entrées
externes et le résultat des opérations.
Machine distributrice
2. Types de processeurs
2.1 Processeur à usage général

Les processeurs à usage général sont caractérisé par un jeu


d’instruction et peuvent être programmés.
 Le programme exécuté par un processeur est gardé en mémoire
sous la forme d’une liste d’instructions.
 On réfère souvent à ce type de processeur par le nom de
« microprocesseur ».
 Un microcontrôleur constitue un cas particulier d’un processeur
à usage général.
Un processeur spécialisé est un processeur à usage général auquel
on a ajouté des instructions spéciales.
❖ Un processeur à usage général doit effectuer n’importe
quelle tâche qu’un processeur à usage spécifique, mais avec:
- Un chemin des données fixe.
- Une unité de contrôle fixe.
- Des signaux de contrôle fixes.

❖ Un processeur à usage général doit être programmé sans


changer sa structure ni ses interconnexions.
❖ Les processeurs à usage général sont habituellement
fabriqués à très grande échelle.

❖Le développement de chaque nouvelle génération de


processeur se fait à l’aide de stations de travail équipées de
processeurs de la génération précédente.
Sans la puissance de calcul des processeurs d’aujourd’hui,
on serait incapable de concevoir les processeurs de demain.
D’autres processeurs,
Certains processeurs à comme les ARM,
usage général, comme MIPS, Intel 8051 et
les processeurs Core de TMS320 sont moins
Intel et les processeurs connus mais sont
FX8000 de AMD, sont fréquemment utilisés
destinés principalement dans des applications
au marché des stations embarquées comme
de travail et des les dispositifs mobiles
ordinateurs portables. et le domaine de
l’automobile.
Exemple: Blackfin, un processeur à usage générale spécialisé pour
le traitement du signal et de l’image
2.2 Processeur à usage spécifique

Les processeurs à usage spécifique Ils sont plus simples et plus efficaces
sont des processeurs non que les processeurs à usage général. Ils
programmables qui sont conçus dans ne peuvent pas en général être
le but de répondre à un besoin facilement reprogrammés.
unique.

Ils sont moins complexes Leur conception Changer leur fonction


et plus efficaces que les demande souvent implique changer leur
processeurs à usage
beaucoup d’efforts structure.
général.
Comment passer  Pour modifier la tâche d’un processeur
d’un processeur à usage spécifique, il faut ajouter des
à usage registres et des structures de calculs
spécifique au nécessaires à son chemin des données.
processeur à  Changer la machine à états de son unité
usage général de contrôle.
 Changer les signaux de contrôle entre le
chemin des données et l’unité de
contrôle.
3. Classification des processeurs
ASIC : Application-Specific Integrated Circuit
ASSP : Application-Specific Standard Product
FPGA : Field Programmable Gate Array
Il existe deux architectures de processeurs à usage générale:
RISC et CISC.

Leur conception architecturale depend du jeu d’instructions


envisagé. (ISA = Instruction Set Architecture)
Qu’est-ce q’un jeu d’instructions

Le jeu d'instructions d'un processeur représente l'ensemble des


opérations qu'un processeur peut effectuer. Ce sont les
opérations qui sont codées dans le processeur au niveau
matériel.
Un processeur ne peut effectuer aucune opération en dehors de
son jeu d'instructions, car il n'a pas le matériel pour cela.
Un jeu d'instructions contient toutes les opérations qu’un
processeur prend en charge au niveau matériel.
Ce jeu peut contenir de quelques à des milliers d'instructions,
selon la conception du processeur.
3.1 Processeur RISC

Un processeur basé sur l’architecture RISC (Reduced Instruction


Set Computer) dispose d’un ensemble simplifié d'opérations pour
atteindre des objectifs simples: jeu d’instruction réduit.
Instructions simples, toutes de même taille, ayant un même temps
d’exécution, utilisant un seul cycle d’horloge.
Vu que l’architecture RISC utilise des instructions simples, le
processeur n'a pas besoin d'avoir des circuits complexes pour
exécuter ces instructions.
Les conceptions RISC sont, du point de vue matériel, moins
chères à implémenter.
Les processeurs RISC n'effectuent des opérations que sur les
données stockées dans des registres. En effet, pourvu l'énorme
décalage entre la vitesse du processeur et la vitesse de la mémoire
principale. La mémoire principale super lente comparée à un
processeur. Processus de traitement lent

Les registres sont beaucoup plus proches de la vitesse du


processeur : Données sont chargées et stockées dans les
registres du processeur
Les processeurs de conceptions RISC prennent en charge le
pipeline pour exécuter des parties de plusieurs instructions en
même temps.

Les processeurs de conception RISC ont des vitesses d'horloge


plus élevées, ils sont exceptionnellement rapides. En effet il y’aura
Accélération en pipelinant l’exécution (entre 3 et 7 étages de
pipeline pour une instruction).
Pipeline RISC

Un pipeline (ou chaîne de traitement1), est l'élément d'un processeur


dans lequel l'exécution des instructions est découpée en plusieurs étapes.
Chacune des étapes d’un pipeline est appelé étage. Le nombre d'étages
d'un pipeline est appelé sa profondeur.
1- IF (Instruction Fetch) charge l'instruction à exécuter dans le pipeline.
2- ID (Instruction Decode) décode l'instruction et adresse les registres.
3- EX (Execute) exécute l'instruction (par la ou les unités arithmétiques
et logiques).
4- MEM (Memory), dénote un transfert depuis un registre vers la
mémoire dans le cas d'une instruction du type STORE (accès en
écriture) et de la mémoire vers un registre dans le cas d'un LOAD (accès
en lecture).
5- WB (Write Back) stocke le résultat dans un registre.

Séquençage des instructions dans un


processeur doté d'un pipeline à 5 étages.
Les processeurs RISC ont des instructions simples, des
vitesses d'horloge plus élevées, une structure de pipeline
efficace, une opération de stockage sur les registres et
peuvent exécuter des instructions en un seul cycle.

Code plus simple à générer, mais moins compact.

Tous les microprocesseurs modernes sont de types RISC:


SPARC, MIPS, ARM, PowerPC...
3.2 Processeur CISC (Complex Instruction Set Computer) :

Pour augmenter les performances des processeurs augmente la


complexité des instructions (réduire nombre d’instruction, réduire la
taille du code.

Jeu d'instructions complexes (une instruction = plusieurs opérations


élémentaires), Ex: un load, une opération arithmétique et un store.

- Code compact.
- temps de décodage et d'exécution des instructions trop long
2 à 15 cycles
Motorola 68000, Intel x86/Pentium...
3.3 Comparaison RISC/CISC

Avantages CISC
✓ Moins d’instructions pour une fonction
✓ Possibilité de micro-programmation (correction du jeu
d’instructions )
✓ Permet d’utiliser des instructions très complexes et très rapides

Avantage RISC
✓ Architecture globalement moins complexe
✓ Consommation faible d’énergie
✓ Interruptions plus rapides
✓ Compilateur plus simple et efficace
Inconvénient CISC
✓ Surface importante de silicium
✓ Consommation importante
✓ Difficulté à réaliser des compilateurs gérant des instructions
complexes
✓ Temps de développement et de validation importants

Inconvénient RISC
✓ Taille du programme plus important(20% à 50%)
✓ Instruction à taille fixe pas toujours optimisée
✓ Traitement avec accès multiples à la mémoire
Micro-contrôleurs
Un microcontrôleur est un circuit intégré qui rassemble le
processeur, les mémoires, les temporisateurs, les convertisseurs
CAN et les interfaces d’entrées/sorties.
Caractéristiques: haut degré
d'intégration, faible consommation
électrique, une vitesse de
fonctionnement plus faible et un
coût réduit par rapport aux
processeurs à usage général.
Exemples de microcontrôleurs :
Intel 8085, ARM Cortex, Atmel,
MSP430, PIC, STM32…
Microcontrôleurs PIC16F
- Fréquence 20 Mhz
- 14,3 Ko de ROM,
- 368 octets de RAM,
- 256 octets d’EEPROM,
- 33 entrées sorties,
- Un CAN,
- Trois timers,
- 15 sources d’interruptions
- Une USART et deux comparateurs
DSP: Digital Signal Processing
Un DSP est un type particulier de microprocesseur intégrant un
ensemble de fonctions spéciales destinées au traitement
numérique du signal: Filtrage, extraction des signaux,
reconnaissance de la parole, codage/compression…

Architecture Havard: la plus utilisé


dans DSP
2 mémoires accessibles simultanément
⇒ moins de manipulations de
données.
Fabricants
Il existe différents fabricants de DSP sur le marché :
Analog Devices propose entre autres des DSP incorporant comme
périphériques des ADC et des DAC
Freescale ;
Qualcomm, pour les DSP de téléphones mobiles
Lucent
Microchip propose deux familles dénommées Digital Signal
Controler (dsPIC30F et dsPIC33F), qui sont des microcontrôleurs avec des
capacités de calcul renforcées et des périphériques de conversion
analogique-numérique ;
Texas Instruments a une gamme étendue, comportant en particulier les
familles C6000, C5000 et C2000 ;
STMicroelectronics. STM32F7 Series, STM32L4 Series, STM32F4 Series,
Exemple de DSP: ADSP BF561
Caractéristique carte de développement

✓ Fréquence d’horloge du cœur : 600MHz.


✓ Interface USB pour le déboguage
✓ Mémoire
32 MB de SDRAM (16M x 16 bits)
2 MB de mémoire Flash (2 block de (512k x 16 bits))
✓ Codeur audio AD1836 connecté au port série SPORT 0 (6 out / 4 in
RCA)
✓ Décodeur vidéo ADV7183 connecté au port parallèle (3 in RCA)
✓ Codeur vidéo ADV7171 connecté au port parallèle (3 out RCA)
✓ Connecteur JTAG de 14-Pin pour l’émulation
✓ 4 boutons poussoirs et 6 LED.
✓ Interface d’extension.
Processeurs personnalisés : ASIC

ASIC (Application Specific Integrated


Circuit) ou un circuit intégré propre à
une application (en français).
ASIC exclusivement dédié à la
réalisation d’une tache spécifique. (il est
configuré pour gérer une seule tache
bien précise).
 Trois types d’ASIC: le full-custum ou
sur mesure, le prédiffusé et le
précaractérisé
Les circuits semi-personnalisés: sont des réseaux prédéfinis de
transistors ou de fonctions logiques qui nécessitent une
personnalisation de l'utilisateur pour réaliser la fonction désirée.
Cette famille comprend :
- les réseaux logiques programmables,
- les réseaux prédiffusés.

Les circuits personnalisés: Ce sont des circuits non


préfabriqués. Pour chaque application on optimise le circuit
intégré, ce qui conduit à la création de son propre composant.
Cette famille comprend :
- les circuits à la demande
- les circuits précaractérisés
Full custum ou sur-mesure

Ces circuits ne contiennent pas de fonctions de base, mais


uniquement des composants standards: diodes, résistances,
transistors...
Effort de conception important.
Surface réduite, haute performances.
Avantage des circuits sur-mesure

- Performances élevées
- Haute densité d’intégration

Inconvénients des circuits sur-mesure


- Temps de conception élévé
- Grande complexité
- Fort investissement CAO (éditeur de schéma, simulateur électrique,
règle de dessin
- Coût de fonderie élevé (processus de gravure et de fabrication)
Les circuits précaractérisés

Les circuits "précaractérisés" utilisent des cellules de bibliothèques


intégrées.
Effort de conception réduit,
Performance proche du full custum
❖ Concept très semblable à celui des
circuits à la demande.
❖ La seule différence réside dans la
réalisation du schéma puisque l'on
accède à une bibliothèque de cellules
prédéfinies générant de très
nombreuses fonctions élémentaires
ou élaborées.
❖ Il existe trois types de cellules :
- Cellules standards (standard cells)
correspondent à la logique classique,
Pour la réalisation de circuits -Mégacellules (megacells) peuvent être
précaractérisés on dispose des blocs de type microprocesseur,
d'une bibliothèque de circuits périphérique.
qu’on les associe pour obtenir - Cellules compilées (compilable cells)
le circuit à la demande. dont les blocs RAM ou ROM.
Avantage des circuits précaractérisés

- Rapidité de conception
- Rapidité d’obtention de prototypes
- Pas de perte de Silicium
- Investissement CAO modéré (éditeur de schémas, simulateur
logique.

Inconvénients des circuits précaractérisés

- Choix limité des cellules


- Complexité moyenne
Circuit prédiffusés

Les prédiffusés: sont des circuits partiellement préfabriqués.


L'ensemble des éléments (transistors, diodes, résistances,
capacités, etc.) est déjà implanté sur le circuit mais ne sont pas
connectés entre eux.
Réseaux de transistors déjà implantés dans le silicium, mais non interconnectés.

C’est l’interconnexion des transistors qui personnalise le circuit en fonction de


l’application visée.
La réalisation des connexions dans le but de définir la fonction
souhaitée est la tâche du concepteur, pour cela il dispose de
bibliothèques de macrocellules et d'outils logiciels d'aide à la
conception.

Cette technique présente l'inconvénient de ne pas permettre une


optimisation en terme de densité de composants. En effet, des
éléments de base sont préimplantés et pas forcément utilisés.
Gate arry

Approche de conception et de fabrication


de circuits intégrés spécifiques à une
application (ASIC) en utilisant une puce
préfabriquée avec des composants qui sont
ensuite interconnectés dans des dispositifs
logiques (par exemple, des portes NAND,
des bascules, etc.)
Sea of Gate

Circuit composé de blocs


contigus de transistors.
Les connexions passent entre les
blocs ou par-dessus.
Conception d’un circuit prédiffusé
Avantage des circuits prédiffusés
- Rapidité de conception
- Rapidité d’obtention de prototypes
- Faible coût de fonderie.
- Faible investissement CAO
Inconvénients des circuits prédiffusés
- Choix limité des cellules
- Faible densité d’intégration (vu le faible taux de remplissage)
- Faible complexité
- Faible vitesse ( due aux capacités d’interconnections)

De moins en moins utilisés, ils sont remplacés par Les FPGA


Processeurs personnalisés : ASSP

➢ Le circuit ASSP (Application-specific standard parts) est un


Composant complexe qui réalise une fonction spécifique
(compression vidéo, modem). Ils sont conçues et mises en œuvre
exactement de la même manière que les ASIC.
➢ Un ASIC est conçu pour un besoin plus particulier qu'un ASSP.
➢ La seule différence est qu'un ASSP est un dispositif plus général
destiné à être utilisé par plusieurs sociétés de conception de
systèmes.
Exemple, une puce d'interface USB autonome serait classée
comme ASSP.
Le MC1496B a été conçu pour être
utilisé lorsque la tension de sortie est
le produit d'une tension d'entrée
(signal) et d'une fonction de
commutation (porteuse).
Les applications typiques incluent la
porteuse la modulation d'amplitude,
la détection synchrone, la détection
FM, la détection de phase.
Circuit configurable
Un circuit logique programmable (reconfigurable) PLD
(programmable logic device) est un circuit intégré logique qui peut
être reprogrammé après sa fabrication.
La programmation du circuit définit les connexions faites entre
portes logiques.
Intérêt: utilisation d’une puce pour différents systèmes
électroniques.
Remarque: il est impropre de parler de programmation au sens
logiciel, on parle plutôt de « reconfiguration » (on modifie des
connexions ou le comportement du composant, on connecte des
portes logiques entre elles, etc.).
Le verbe programmer est toutefois le plus fréquent, mais au sens
de personnaliser.
Types de circuits programmables

PAL (Programmable Array Logic): Ce sont les circuits logiques


programmables les plus anciens.
Les PAL sont programmés par destruction de fusibles. Ils ne sont donc
programmables qu’une fois.
Huit fusibles (F1 à F8)
permettent de réaliser
diverses fonctions logiques.
La programmation consiste à
faire sauter les fusibles
nécessaires afin de réaliser la
fonction voulue.
GAL: (Generic array logic) Les GAL sont des PAL effaçables
électriquement.
EPLD (erasable programmable logic
device, circuit logique programmable
et effaçable):
Ces circuits ont une capacité en
nombre de portes et en possibilités
de configuration supérieure à celle
des GAL
CPLD (complex programmable logic device, circuit logique
programmable complexe)

CPLD max 9000


Altera MAX 7000 CPLD-EPM7128SLC84
Carte de développement
FPGA (Field Programmable Gate Array, réseau de portes
programmables): Circuit intégré contenant un très grand nombre
de portes logiques organisées en blocs logiques configurables et
interconnectables.

Les cartes FPGA sont destinés au prototypage de systèmes


numériques complexes. Ils sont une bonne alternative aux circuits
spécifiques, les ASIC.

Les FPGA sont utilisés dans diverses applications nécessitant de


l'électronique numérique (télécommunications, aéronautique,
transports…).
Il existe plusieurs grands fabricants : ALTERA, ACTEL
(composants spécialisés) et XILINX.
Exemple: carte FPGA DE2-70
Avantages des FPGA

✓ Implantation d’architectures numériques conséquentes


(plusieurs millions de portes logiques)
✓ Délai de mise sur le marché plus court
✓ Temps de conception plus court
✓ Ils disposent de la plupart des contrôleurs de périphériques
courants (VGA, UART, CNA/CAN, …)
✓ configurer des processeurs Nios II, Microblaze, etc

Avantages des FPGA

Les FPGA sont généralement plus lents, plus chers à l'unité et


consomment davantage d'énergie que leur équivalent en ASIC.
Architecture des FPGA

Les FPGA sont un rassemblement et une


combinaison de différents blocs :
d’entrées/sorties (IOB - Input Output
Blocks), de routage (PSM - Programmable
Switch Matrix), de logique programmable
(CLB - Configurable Logic Blocks) et
d’autres blocs plus spécifiques.
Les différentes méthodes d’interconnexions

Trois type d’interconnections entre les différents blocs des circuits FPGA
✓ Interconnexion directe entre les différents blocs logiques.
✓ Interconnexions par le biais d’une matrice.
✓ Interconnexion par les grandes lignes relient tous les CLB dans les extrémités des
circuits FPGA.
FPGA : Bloc d’entrée/sortie (IOB)
Les ports d’entrées/sortie des circuits FPGA sont totalement
programmables :
Le slew-rate est programmable (La vitesse de balayage ou slew rate
représente la vitesse maximale de changement de tension de sortie par unité
de temps (la vitesse de variation maximale que peut reproduire un circuit
logique).
Le buffer de sortie est programmable en haute impédance
Les entrées et sorties sont directes ou mémorisées
Le driver de sortie est aussi programmable.
Structure des IOB SPARTAN
Structure des CLB CONFIGURABLE LOGIC BLOCS)

Tables de transcodage combinatoire (LUT): Les fonctions combinatoires sont


implantées sur des mémoires SRAM (LUT = Look-Up Table). La table de vérité
est alors chargée dans ces LUT. En général, les FPGA sont équipés de LUT à 4 ou
6 entrées.
Cellules séquentielles (bascules D): Les éléments séquentiels (synchrones sur front
ou niveau) sont implantés sur des bascules (D le plus fréquemment),
Multiplexeurs de configuration
Exemple d’un CLB SPARTRAN

Vous aimerez peut-être aussi