Vous êtes sur la page 1sur 33

Introduction

La conception d'un processeur a été, depuis longtemps,


considérée comme une tâche complexe.
Les concepteurs doivent concevoir des processeurs,

d'un côté pour satisfaire des besoins précis : personnel,


industrie, science, etc…

et de l'autre côté, atteindre les performances désirées avec


des coûts acceptables.
ENSET SKIKDA

DEPARTEMENT MATH et INFO


NIVEAU / 2 PEM

Cours ARCHITECTURE DES ORDINATEURS 2

Partie 1 Introduction + Partie opérative


Introduction
Dans ce cas, le concepteur doit, avant tout, déterminer quels
sont les critères et les contraintes qui s'imposent pour cette
conception. Citons par exemple:

Le jeu d'instructions

Les contraintes de consommation.

Les contraintes de surface


Motivations

• L'architecture de l'ordinateur ne cesse d'évoluer afin de


satisfaire les besoins imposés par l'accroissement des domaines
d'applications.

• En effet, lorsque l'ordinateur a été introduit dans les années


quarante, l'architecture du processeur était relativement simple
(architecture de Von Newman):
• petite mémoire,
• quelques registres
• et quelques fonctionnalités.
Motivations

• La programmation était une tâche fastidieuse et l'ordinateur


était dépourvu de système d'exploitation.

• Plus tard, des langages évolués et autres formes d'abstraction


ont été développées,

• ceci a engendrer de nouvelles visions comportementales du


système.
Motivations

• La conception et la mise en place de


nouvelles plates-formes architecturales
capables de supporter de telles visions
s'avère nécessaire.

. Support langages évolués
• L'architecture logicielle (la couche ISA)

• c'est la machine virtuelle que voit un compilateur, ou un


programmeur en langage machine.
Support langages évolués
. Support langages évolués
• Le but de l'architecture logicielle d'un processeur est de permettre une exécution
efficace des langages de haut niveau (LHN).

• Ces constructions ont une sémantique riche (par exemple : boucle, appel de
procédure, passage de paramètres, objet,…) par rapport au langage machine.

• Les architecture à concevoir ne doivent pas seulement supporter les concepts de


base (structure répétitive, structure de test, branchement, objet de type simple),

• mais supporter aussi les capacités complexes de langage, à savoir les procédures,
les modules et les structure de données complexes (tableaux, record,…..), et
supporter les nouveaux concepts, issus des différentes formes d'abstraction, a
savoir les objets, les TAD.
Support langages évolués
• La prise en compte de l'ensemble des contraintes liées

aux LHN a

des conséquences majeures à tous les

niveaux de l'architecture (matérielle ou logicielle)


Support système d’exploitation
• L'évolution des systèmes d'exploitation a été tout le temps liée à l'évolution de
l'architecture de la machine.

• En effet, le rôle principal d'un système d'exploitation est de cacher la


complexité physique de la machine à ses utilisateurs, toute en assurant une
gestion efficace des ressources de celle-ci.
Support système d’exploitation
• La gestion des ressources dépend beaucoup de la
nature du système :
• mono-utilisateur
• multi- utilisateur,
• centralisé
• réparti,
• mono-tâche
• multitâche,
• ou autres,

• et des facilités offertes par l'architecture elle-même.


Support système d’exploitation
• Parmi les contraintes systèmes prises en considération lors de la
conception des architectures, on peut citer :

• La gestion de la mémoire (segmentation, pagination et MV).


• La protection (les niveaux de privilèges, les droits d'accès,….).
• La gestion des exceptions et des interruptions.
• La gestion de processus.
• La gestion de cache.
• La gestion des E/S.
Amélioration de performances
Les performances d'une machine peuvent s'exprimer de
différentes manières Pour l'utilisateur final,

• le temps d'exécution d'un programme, de son début à sa fin,


• les accès mémoires,
• les entrées-sorties
• le temps utilisé pour les besoins du système d'exploitation.
• Il dépend des performances de l'ensemble des composantes
matérielles et logicielles du système.
Conception d’un processeur
• La conception d'un processeur est une tâche complexe Cette architecture
est composée de deux parties :
Partie contrôle (PC) et Partie opérative (PO)

• Les deux parties communiquent par le biais de commandes et comptes


rendus
Conception d’un processeur
• Les commandes, générées par la partie contrôle, sont des entrées
pour la partie opérative, elles précisent l'opération à réaliser dans le
cycle.

• Les comptes rendues, issus de la partie opérative, sont des entrées


pour la partie contrôle qui influencent le séquencement des
commandes.

Partie opérative

• La partie opérative, très souvent appelée chemin de données


(Data Path),

• correspond à un ensemble blocs fonctionnelles interconnectés de


manière à permettre l'exécution des opérations demandées par la
partie contrôle.
Partie opérative

• Parmi les blocs composant la partie opérative on peut trouver


principalement :
• Les unités fonctionnelles pouvant chacune exécuter des opérations :
ALU, Décaleur, Comparateur,…..

• Les unités de mémorisation : registres (CO, RI, ACC, MDR, MAR,..),


cache,…

• Les unités de connexion : bus, multiplexeur, …


Partie opérative / le DP
• Chemin de données :
• C’est la partie l plus délicate lors de la conception d’un
processeur.

• C’est un graphe qui se compose de plusieurs nœuds de 2


types : mémoire et calcules.

• Chaque instruction lors de son exécution suit un chemin


particulier spécifique dans le DP.

• Le déplacement sur le chemin prend la forme de petit saut


d’un noeud mémoire à l’autre.
Partie opérative / le DP
Partie opérative / UAL
• Le processeur contient des circuits capables de faire des
calculs arithmétiques, des opérations logiques, et des
comparaisons, qui sont regroupés dans une unité de calcul
appelée unité arithmétique et logique
Partie
l opérative / UAL
Définition :
 L’UAL est le circuit combinatoire responsable
des opérations arithmétiques et logiques.

 Elle a 2 entrées (sur N bits) comme


opérandes, et une sortie de résultat.

 Elle possède aussi une entrée de commande


permettant de choisir l’opération à faire.

 Une table des codes des opérations pour


l’entrée des commandes est associée à l’UAL.
Partie opérative / UAL
Partie opérative/ UAL
• L'intérieur d'une unité de calcul
• Les unités de calcul les plus simples contiennent un circuit différent
pour chaque opération possible. L’entrée de sélection sert
uniquement à sélectionner le bon circuit.
• Pour effectuer cette sélection, on peut utiliser des multiplexeurs
commandés par l'entrée de sélection.
Partie opérative / UAL

• Pour construire un UAL il faut créer un circuit


combinatoire pour chaque opération.

• Les arranger en parallèle l’un à coté de l’autre,


et utiliser un multiplexeur pour choisir la sortie
de l’opération sélectionnée par la commande.
Partie opérative / Les registres
• Les registres
• De nombreux registres n'ont ni nom de registre, ni adresse, et sont
sélectionnés implicitement par certaines instructions : program
counter, registre d'état, etc. Ces registres sont reliés au chemin de
données directement. On peut citer le cas du registre accumulateur,

Partie opérative / Les registres
• Le banc de registres est souvent une mémoire multiport, avec au
moins un port d'écriture et deux ports de lecture
Partie opérative / Les registres
Register File :
• Le banc de registres est une collection ou un regroupement
de registres.
• Tous les registres ont une entrée unique et partagée tous
les registres,
• Le RF possède 2 sorties, se concordant avec les é entées
d’une UAL,
Partie opérative / Les registres
• Register :

Un registre est un tableau permet de mémoriser


une valeur sur plusieurs bits
Partie opérative / Les registres
Partie opérative / Les registres
• RF 4 registres sur 4 bits :

• Tous les registres sont sur 4 bits,

• 2 Signaux de cmmmandes (2 bits pour choisir un registre sur


l’une des sorties.

• Un signal d’écriture, plus un autre sur 2 bits pour chousir sur


lequel écrire.

Vous aimerez peut-être aussi