Vous êtes sur la page 1sur 13

CHAPITRE I.

Introduction à la méthodologie de
conception des architectures.

7
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


l d’un ordinateur est donné par un
microprocesseur, une mémoire centrale et des périphériques entrées/ sorties (figure 1)

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

8
Figure 2. Démarche de Conception

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
L’optimisation des caractéristiques électriques
• Conception logique : L’optimisation des équations logiques
• Conception numérique : L’optimisation des traitements
• Conception architecturale : Le choix des fonctionnalités
• Conception fonctionnelle : l’optimisation des
es implémentations matérielles et
logicielles
• Conception système : L’optimisation conjointe des implémentations matérielles et
logicielles

9
Type Eléments de base Conception

Composants Conception électrique


discrets

SSI Conception logique

MSI Conception numérique

LSI Conception architecturale

VLSI Conception fonctionnelle

ULSI Conception système

Table 1 Niveaux d’abstraction pour une conception matérielle

1.4. Rappels sur la logique combinatoire

1.4.1. Fonctions Logiques

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 :

10
Figure 3. Symboles des fonctions logiques de base

• Ces fonctions peuvent être réalisées par des opérateurs universels NAND e NOR,
leurs symboles sont :

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 5. Symbole d’un décodeur 3 vers 8

1.4.3. Les multiplexeurs

Un multiplexeur est un circuit à 2n entrées d’information (D0, D1…), n entrées


d’adresse A, B… et une sortie S. Les entrées d’adresse permettent la sélection d’une
entrée d’information pour transmettre son état à la sortie S.

Figure 6. Symbole logique d’un Multiplexeur 8 vers 1

11
1.4.4. Les démultiplexeurs

Un démultiplexeur distribue l’information d’entrée D vers l’une des 2n sorties (S0,S1…),


la sélection de la sortie concernée étant effectuée par n variables d’adresse. Il est
schématisé ainsi :

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
deux ensembles fonctionnels :
• 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 ensemble d’opérateur OU, appelé matrice OU, qui somme les produits.
La figure 8 illustre un exemple de réseau logique programmable

12
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
peuvent être un front ou un niveau comme le montre la figure 9

Figure 9. Instants de stabilité d’un circuit

Il existe deux types de synchronisation avec horloge :

• 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)

13
Figure 10. Circuit logique d’une bistable D

Lorsque l’Horloge C = 1 ⇒ nouvelle valeur de D remplace l’ancienne valeur


• La bascule
ascule synchrone est caractérisée par un état n’est modifié que sur un
front d’impulsion de l’horloge)

Figure 11. Circuit logique d’une Bascule D

1.5.3. Banc de registres

onstruction du chemin de données


Pour la construction données, il est primordial d’utiliser un BANC DE
REGISTRES comportant au moins un décodeur
décodeur pour chaque port de lecture ou écriture
et un ensemble
nsemble de registres construits avec des bascules D.. le schéma bloc de ce banc de
registres est donné par la figure 12.

Figure 12. Symbole de banc de registres

14
La description détaillée du banc de registres met en évidence un décodeur, un
ensemble de registres à chargement parallèle, des multiplexeurs et des signaux de
contrôle (Figure 13)

Figure 13. Description détaillée du banc de registres

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
front montant de l’horloge CLK

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


l'architecture de Von Neumann et plus tard l'architecture de Harvard a été adoptée pour
concevoir des ordinateurs numériques.

15
1.6.1.1. Architecture de VON NEUMANN

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 15. Architecture de VON NEUMANN

1.6.1.2. Architecture de HARVARD

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 16. Architecture de HARVARD

16
1.6.1.3. Architectures de HARVARD modifié

Cette architecture de HARVARD a été améliorée dans le but d’avoir plus de performance
par ajout d’un DMA pour augmenter le taux de transfert de données vers la mémoire
sans passer par le microprocesseur dans le cas de son déconnexion et aussi par l’ajout
d’une mémoire cache dont le but est stocker les informations les plus fréquemment
utilisées par les logiciels et les applications lorsqu'ils sont actifs, cette architecture est
appelée HAVAARD MODIFIE (Figure…) souvent utilisée par les microcontrôleurs.

Figure 17. Architecture de HARVARD modifié

1.6.2. Architectures de jeux d’instructions ISA

Les performances des microprocesseurs sont définies par trois facteurs clés :
• le nombre d’instructions I
• le temps de cycles d’horloge T
• 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
l’architecture des jeux d’instruction, nous distinguons trois types
• CISC (Complex Instruction Set Computer) : I faible, C grand
• RISC (Reduce Instruction Set Computer) : I élevé, C faible
• VLIW (Very Large Instruction Word) : I réduit car macro-instruction RISC, C faible
Cette dernière est une Famille d’ordinateurs dotés d’un Processeur à mot d’instruction
très long (> 128 bits) dont une instruction est équivalente à plusieurs instructions
indépendantes et les compilateurs génèrent un code en fonction des ressources
disponibles

17
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
tâches complexes par instruction unique. Pour une tâche donnée, une machine CISC
exécute ainsi un petit nombre d’instructions mais chacune nécessite un plus grand
nombre de cycles d’horloge (Exemple:8086,68000…). Par le passé la conception de
machines CISC était la seule envisageable. En effet, vue que la mémoire travaillait très
lentement par rapport au processeur, on pensait qu’il était plus intéressant de
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
nécessite un compilateur très évolué dans le cas de programmation en langage de haut
niveau (Exemple : MIPS,SPARC…).

1.6.2.3. Synthèse entre RISC et CISC

Comme synthèse, la différence entre ces deux architectures est présentée par le tableau
suivant
Architecture RISC Architecture CISC

• instructions simples ne prenant • instructions complexes prenant


qu’un seul cycle plusieurs cycles
• instructions au format fixe • instructions au format variable
• décodeur simple (câblé) • décodeur complexe
• beaucoup de registres (microcode)
• seules les instructions LOAD et • peu de registres
STORE ont accès à la mémoire • toutes les instructions sont
• peu de modes d’adressage susceptibles d’accéder à la
• compilateur complexe mémoire
• beaucoup de modes d’adressage
• compilateur simple
Tableau 2 : Différence entre RISC et CISC

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