1.1.
Objectifs
Les objectifs de ce chapitre :
Présenter les démarches de conception d’une manière générale
Présenter des rappels sur les circuits combinatoires et séquentiels
Définir quelques architectures des calculateurs et les jeux d’instructions
Présenter la méthodologie de conception des processeurs
1.2. Introduction
D’une manière générale, l’organisation d’un ordinateur est donné par un
microprocesseur, une mémoire centrale et des périphériques entrées/ sorties (figure 1)
CHAPITRE I.
Introduction à la méthodologie de
conception des architectures.
Figure 1. Architecture des Ordinateurs
Nous décomposons le µP en un chemin pour véhiculer les données et une unité de
contrôle pour donner des commandes afin de satisfaire le fonctionnement du système
complet. (Figure 1)
1.3. Démarche de conception
Il s’agit de deux démarches de conception différentes :
Démarche Descendante : connue par le nom « Top-Down Design » qui consiste à
un raffinement de chaque constituant depuis la spécification des besoins jusqu’à
couche silicium
Démarche Ascendante : connue par le nom « Bottom-up Design » c’est uns
abstraction sur l’ensemble des constituants comme le montre la figure 2
7 8
Type Eléments de base Conception
Composants Conception électrique
discrets
SSI Conception logique
MSI Conception numérique
LSI Conception architecturale
Figure 2. Démarche de Conception
VLSI Conception fonctionnelle
Les niveaux d’abstraction lors d’une conception matérielle sont donnés par la table 1,
Nous désignons par :
Conception électrique : L’optimisation des caractéristiques électriques ULSI Conception système
Conception logique : L’optimisation des équations logiques
Conception numérique : L’optimisation des traitements
Conception architecturale : Le choix des fonctionnalités Table 1 Niveaux d’abstraction pour une conception matérielle
Conception fonctionnelle : l’optimisation des implémentations matérielles et
1.4. Rappels sur la logique combinatoire
logicielles
Conception système : L’optimisation conjointe des implémentations matérielles et 1.4.1. Fonctions Logiques
logicielles
Nous rappelons que :
Les variables d’entrées sont des variables logiques indépendantes
Les variables de sorties sont des variables contenant l’état de la fonction après
évaluation des opérateurs logiques sur les variables d’entrées.
Les Opérateurs logiques de base sont :
ET : z = u1.u2=u1u2, z est vrai si u1 est vraie et u2 est vrai
OU : z = u1+u2, z est vrai lorsque u1 est vrai ou u2 est vrai, ou les deux.
NON : z = u, z est vrai si u est fausse.
Les portes logiques associées à ces opérateurs sont représentées comme suit :
9 10
Figure 3. Symboles des fonctions logiques de base 1.4.4. Les démultiplexeurs
Ces fonctions peuvent être réalisées par des opérateurs universels NAND e NOR,
Un démultiplexeur distribue l’information d’entrée D vers l’une des 2n sorties (S0,S1…),
leurs symboles sont :
la sélection de la sortie concernée étant effectuée par n variables d’adresse. Il est
schématisé ainsi :
Figure 4. Symboles des fonctions universelles
1.4.2. Les décodeurs : (n entrées, 2n sorties)
Nous rappelons qu’un décodeur est un dispositif qui pour chaque combinaison des
variables d’entrée, active la sortie correspondante.
Figure 7. Symbole logique d’un Démultiplexeur 1 vers 8
1.4.5. Les réseaux logiques combinatoires
Toute fonction logique de n variables peut se mettre sous une forme de somme de
produits ou de produit de sommes. On peut donc utiliser une structure comportant
Figure 5. Symbole d’un décodeur 3 vers 8 deux ensembles fonctionnels :
1.4.3. Les multiplexeurs Un ensemble d’opérateurs ET organisé sous forme d’une matrice qui génère
les produits des variables d’entrée, éventuellement complémentées.
Un multiplexeur est un circuit à 2n entrées d’information (D0, D1…), n entrées Un ensemble d’opérateur OU, appelé matrice OU, qui somme les produits.
d’adresse A, B… et une sortie S. Les entrées d’adresse permettent la sélection d’une La figure 8 illustre un exemple de réseau logique programmable
entrée d’information pour transmettre son état à la sortie S.
Figure 6. Symbole logique d’un Multiplexeur 8 vers 1
11 12
Figure 10. Circuit logique d’une bistable D
Lorsque l’Horloge C = 1 nouvelle valeur de D remplace l’ancienne valeur
La bascule synchrone est caractérisée par un état n’est modifié que sur un
front d’impulsion de l’horloge)
Figure 8. Réseau logique programmable avec matrices ET et OU programmables
1.5. Rappel sur la logique séquentielle
1.5.1. Horloges
La Synchronisation par horloge permet de spécifier à quel moment un élément qui
contient un état doit être mis à jour. Les instants de stabilités des valeurs d’un circuit Figure 11. Circuit logique d’une Bascule D
peuvent être un front ou un niveau comme le montre la figure 9
1.5.3. Banc de registres
Pour la construction du chemin de données, il est primordial d’utiliser un BANC DE
REGISTRES comportant au moins un décodeur pour chaque port de lecture ou écriture
Figure 9. Instants de stabilité d’un circuit
et un ensemble de registres construits avec des bascules D. le schéma bloc de ce banc de
Il existe deux types de synchronisation avec horloge :
registres est donné par la figure 12.
Synchronisation par niveau (haut ou bas)
Synchronisation par front (montant ou descendent)
1.5.2. Bascule – bistable (synchrone)
La différence entre bistable et bascule est au moment où l’horloge provoque le
changement d’état actif, en effet pour :
La bistable synchrone est caractérisée par un état modifié à chaque fois que
les entrées changent et que l’horloge est à 1) Figure 12. Symbole de banc de registres
13 14
La description détaillée du banc de registres met en évidence un décodeur, un 1.6.1.1. Architecture de VON NEUMANN
ensemble de registres à chargement parallèle, des multiplexeurs et des signaux de
contrôle (Figure 13) Cette architecture inclut un seul système de stockage unique (mémoire) pour stocker
des données ainsi que le programme à exécuter. Le processeur a besoin au moins de
trois cycles d'horloge pour compléter une instruction. Dans le premier cycle d'horloge, le
processeur reçoit l'instruction de la mémoire et la décode. Dans le second cycle, les
données requises sont extraites de la mémoire. Et dans le troisième cycle, le processus
est achevé par une phase d’exécution. C'est une architecture relativement plus ancienne
et elle a été remplacée par l'architecture de Harvard (Figure 15).
Figure 13. Description détaillée du banc de registres Figure 15. Architecture de VON NEUMANN
Chaque registre $ est constitué d’un ensemble de bascules D précédés par
multiplexeur à une entrée de commande C et le changement d’état est cadencé par le 1.6.1.2. Architecture de HARVARD
front montant de l’horloge CLK
L’ordinateur a deux mémoires séparées pour stocker des données et un programme d’où
existence de deux bus de données DMD et PMD (Figure …) Le processeur peut terminer
la recherche de l’instruction et de la donnée dans un cycle si des stratégies de pipeline
appropriées sont mises en œuvre (Figure 2). La plupart des architectures informatiques
modernes sont basées sur l'architecture de Harvard.
Figure 14. Registre $ intégré dans le µP MIPS
1.6. Théorie des architectures
1.6.1. Architectures des calculateurs
Il existe essentiellement deux types d'architectures de calculateur. Le premier s'appelle Figure 16. Architecture de HARVARD
l'architecture de Von Neumann et plus tard l'architecture de Harvard a été adoptée pour
concevoir des ordinateurs numériques.
15 16
1.6.1.3. Architectures de HARVARD modifié 1.6.2.1. Architectures de jeu d’instructions Complexes CISC
C’est une architecture avec une grande variété d’instructions où le µP doit exécuter des
Cette architecture de HARVARD a été améliorée dans le but d’avoir plus de performance tâches complexes par instruction unique. Pour une tâche donnée, une machine CISC
par ajout d’un DMA pour augmenter le taux de transfert de données vers la mémoire exécute ainsi un petit nombre d’instructions mais chacune nécessite un plus grand
sans passer par le microprocesseur dans le cas de son déconnexion et aussi par l’ajout nombre de cycles d’horloge (Exemple:8086,68000…). Par le passé la conception de
d’une mémoire cache dont le but est stocker les informations les plus fréquemment machines CISC était la seule envisageable. En effet, vue que la mémoire travaillait très
utilisées par les logiciels et les applications lorsqu'ils sont actifs, cette architecture est lentement par rapport au processeur, on pensait qu’il était plus intéressant de
appelée HAVAARD MODIFIE (Figure…) souvent utilisée par les microcontrôleurs. soumettre au microprocesseur des instructions complexes, plutôt que de coder une
opération complexe par plusieurs instructions plus petites (qui demanderaient autant
d’accès mémoire).
1.6.2.2. Architectures de jeu d’instructions réduites RISC
Des études statistiques menées au cours des années 70 ont montré que les programmes
générés par les compilateurs se contentaient le plus souvent d'affectations, d'additions
et de multiplications par des constantes. Les instructions complexes doivent être
réalisées à partir de séquences basées sur les instructions élémentaires, ce qui
Figure 17. Architecture de HARVARD modifié nécessite un compilateur très évolué dans le cas de programmation en langage de haut
niveau (Exemple : MIPS,SPARC…).
1.6.2. Architectures de jeux d’instructions ISA
1.6.2.3. Synthèse entre RISC et CISC
Les performances des microprocesseurs sont définies par trois facteurs clés :
Comme synthèse, la différence entre ces deux architectures est présentée par le tableau
le nombre d’instructions I
suivant
le temps de cycles d’horloge T
Architecture RISC Architecture CISC
le nombre de cycles d’horloge par instruction. C
Cette performance se calcule par : I * C* T, Les valeurs de I et C se distinguent suivant instructions simples ne prenant instructions complexes prenant
l’architecture des jeux d’instruction, nous distinguons trois types qu’un seul cycle plusieurs cycles
instructions au format fixe instructions au format variable
CISC (Complex Instruction Set Computer) : I faible, C grand
décodeur simple (câblé) décodeur complexe
RISC (Reduce Instruction Set Computer) : I élevé, C faible beaucoup de registres (microcode)
VLIW (Very Large Instruction Word) : I réduit car macro-instruction RISC, C faible seules les instructions LOAD et peu de registres
STORE ont accès à la mémoire toutes les instructions sont
Cette dernière est une Famille d’ordinateurs dotés d’un Processeur à mot d’instruction peu de modes d’adressage susceptibles d’accéder à la
très long (> 128 bits) dont une instruction est équivalente à plusieurs instructions compilateur complexe mémoire
beaucoup de modes d’adressage
indépendantes et les compilateurs génèrent un code en fonction des ressources compilateur simple
disponibles Tableau 2 : Différence entre RISC et CISC
17 18
La figure 18 illustre un exemple comparatif entre les deux architectures
Figure 18. Exemple de différence entre RISC et CISC
Dans ce que se suit, nous intéressons à l’ensemble de jeu d’instruction MIPS.
1.7. Processus de conception des processeurs pour jeu d’instructions
MIPS
Pour créer un chemin de données qui nous permet d’exécuter l’ensemble des
instructions MIPS. Nous devons respecter les étapes suivantes : Chaque instruction est
donnée en fonction des transferts des registres.
Le chemin de données doit permettre le transfert des informations
entre les registres.
Le chemin de données inclut la mémoire programme.
Le Choix d’un ensemble de composants nécessaires (UAL MUX,
Banc de Registre…) pour le chemin de données et établissement de
la méthodologie horloge.
L’assemblage des différents composants pour la satisfaction des
besoins.
La détermination les points de contrôles nécessaires pour
effectuer le transfert des registres.
L’assemblage de la logique de contrôle. (séquenceur)
19