Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

03 Architecture Des Ordinateurs

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 11

Université de Bordj Bou Arreridj

Faculté des Sciences et de la Technologie


Département d’Electronique
MCIL 2

Chap. III
Architecture des ordinateurs
Sommaire
I. Définition .................................................................................................................................................................... 1
II. Blocs fonctionnels ................................................................................................................................................... 1
III. Architectures de base ............................................................................................................................................. 1
3.1 Architecture de Von Neumann................................................................................................................................. 1
3.2 Architecture de Harvard ........................................................................................................................................... 1
IV. Description et principe de fonctionnement ........................................................................................................... 2
4.1 L’unité centrale de traitement (UCT) CPU ou processeur ........................................................................................ 2
4.2 L’unité des entrées sorties (unité d’échange) .......................................................................................................... 4
4.3 Les bus : .................................................................................................................................................................... 6
V. Jeu d’instructions .................................................................................................................................................... 6
5.1 Niveaux de programmation...................................................................................................................................... 6
5.2 Architectures RISC et CISC ........................................................................................................................................ 6
5.3 Définition .................................................................................................................................................................. 6
5.4 Codage ...................................................................................................................................................................... 7
5.5 Type d’instructions ................................................................................................................................................... 7
5.6 Modes d’adressage................................................................................................................................................... 7
VI. Les interruptions ..................................................................................................................................................... 8
6.1 Principe de fonctionnement d’une interruption ...................................................................................................... 8
6.2 Mécanisme de gestion des interruptions ................................................................................................................. 8
6.3 Interruptions vectorisées ......................................................................................................................................... 9
VII. Exemple de l’architecture d’un microprocesseur 8 bits ....................................................................................... 10
I. Définition
L’architecture d’un ordinateur est la description de ses unités fonctionnelles et de leurs interconnexions. Un ordinateur
est une machine de traitement de l’information. Il est capable d’acquérir de l’information, de la stocker, de la
transformer en effectuant des traitements quelconques, puis de la restituer sous une autre forme.

II. Blocs fonctionnels


L’ordinateur est une machine qui exécute une suite d’instructions dite programme. Il est constitué essentiellement de
trois parties principales :
- L’unité centrale de traitement (CPU : Central Processing Unit) ou processeur ;
- La mémoire centrale (MC) ;
- L’unité d’entrées/sorties (unité d’échange).
Tous ces blocs sont connectés par un bus, un bus étant un ensemble de fils qui assure la transmission du même type
d’information. On retrouve trois types de bus : le bus d’adresses, le bus de données et le bus de contrôle.

Mémoire Unité centrale Unité d’E/S

Bus

Figure 1 : Blocs fonctionnels d’un ordinateur.

III. Architectures de base


3.1 Architecture de Von Neumann
Cette architecture est caractérisée par un processeur et une mémoire, reliés par un bus. Les instructions et les données
sont stockées dans la même mémoire.

Mémoire Unité centrale

Bus

Figure 2 : Architecture de Von Neumann.

3.2 Architecture de Harvard


Dans cette architecture on sépare physiquement la mémoire des instructions et la mémoire de données. Chacune de
ces mémoires est accessible par un bus différent. Il est alors possible d'accéder simultanément aux instructions et aux
données, ce qui permet d'augmenter le flux des informations.

Mémoire programmes Unité centrale Mémoire données

Bus code Bus data

Figure 3 : Architecture de Harvard.

Université de BBA -Département d’Electronique- T. Abed 1


IV. Description et principe de fonctionnement
4.1 L’unité centrale de traitement (UCT) CPU ou processeur
a. Description :
C’est l’élément de l’ordinateur qui interprète et exécute les instructions du programme. Le processeur est divisé en
deux parties, l’unité de commande et l’unité de traitement, en plus de un ou plusieurs registres généraux.

Horloge Registres

Unité de commande Unité de traitement

Unité centrale de traitement

Figure 4 : Schéma de principe de l’unité centrale de traitement.

• L’unité de traitement
Elle regroupe les circuits qui assurent les traitements nécessaires à l'exécution des instructions.
Case mémoire
er
1 Opérande 2ème Opérande

Contrôle ALU Conditions Registre d’état

Résultat

Accumulateur

Unité de traitement

Figure 5 : Unité de traitement

1. Unité Arithmétique et Logique (ALU) : circuit complexe qui assure les fonctions logiques (ET, OU, Comparaison,
Décalage, etc.…) ou arithmétique (Addition, soustraction).
2. Le registre d'état : Composé de bits à considérer individuellement. Chacun de ces bits est un indicateur dont l'état
dépend du résultat de la dernière opération effectuée. On les appelle indicateurs d’état ou drapeaux (flags).
- Retenue (carry : C) - Débordement (overflow : OV ou V)
- retenue intermédiaire (Auxiliary-Carry : AC) - Zéro (Z)
- Signe (Sign : S) - Parité (Parity : P)
3. Les accumulateurs : ce sont des registres de travail qui servent à stocker un opérande au début d'une opération
arithmétique et le résultat à la fin de l'opération.
• L’unité de commande
Elle comporte essentiellement :
- le registre d’instruction (RI) : reçoit l’instruction à exécuter ;
- le compteur programme (CP) ou Pointeur Instruction (IP) : Registre contenant l’adresse en mémoire où est
stockée l’instruction à chercher. Il pointe à chaque fois l’adresse de l’instruction suivante à exécuter ;
- le décodeur : détermine quelle opération doit être effectuée parmi toutes les opérations possibles ;
- le séquenceur : génère les signaux de commande ;
- l’horloge : synchronise toutes les actions de l’unité centrale.

Université de BBA -Département d’Electronique- T. Abed 2


Compteur programme Registre instructions

Décodeur

Séquenceur

Horloge

Unité de commande

Figure 6 : Unité de commande

• Les registres généraux (registres banalisés)


Jouent le même rôle que les cases mémoires, mais leur temps d’accès est très faible. Ils sont utilisés pour sauvegarder
des résultats intermédiaires pour éviter des accès à la mémoire, accélérant ainsi l’exécution des programmes.
b. Fonctionnement de l’unité centrale
Unité de traitement

Acc
C1
C1

ALU Séquenceur

Décodeur

C1 B1

RM A3 C Op. Adr RI Acc : Accumulateur


ALU : Unité arithmétique et logique
RM : Registre mot
B4
RA : Registre d adresse
A2
COp : Code opération
B3
R Adr : Adresse
C Op. Adr Opérande
A CO : Compteur ordinal (CP)
A1 CO
B2
RI : Registre instruction

Mémoire centrale Unité de commande

Figure 7 : Schéma de principe du fonctionnement de l’unité centrale.

Le traitement d’une instruction peut être décomposé en trois phases :


• Phase 1 : Recherche de l'instruction à traiter [Instruction Fetch]
A1 : (CO) → RA (pointer l’adresse de l’instruction)
A2 : Instruction → RM (Lecture de l’instruction dans la mémoire)
A3 : (RM) → RI (Transfert de l’instruction dans le RI)
Cette première phase est identique quelque soit l’instruction.
• Phase 2 : Décodage de l’instruction et recherche de l’opérande [decode]
B1 : C Op. → Décodeur (Décodage de l’opération pour la génération de séquences)
B2 : (CO) Calcul de l’adresse de l’instruction suivante.
B3 : Adr → RA (Transfert de l’adresse de l’opérande dans le RA)
B4 : Opérande → RM (Lecture de l’opérande dans la mémoire)
• Phase 3 : Exécution de l'instruction [execute]
C1 : (Acc) OP (RM) → Acc (Exécution de l’opération)
C2 : Positionnement des flags
Université de BBA -Département d’Electronique- T. Abed 3
c. Cycle d’horloge
Les circuits qui synchronisent et contrôlent toutes les opérations de l’ordinateur sont situés dans l’unité de commande.
Les signaux périodiques générés par l’horloge définissent le cycle de base ou cycle machine. Le temps d’exécution d’une
instruction dépend du type d’opération à effectuer, un cycle instruction peut s’étendre sur plusieurs cycles machines.

Cycle d’horloge

Recherche de l’instruction Décodage de l’instruction Exécution

Instruction
Cycle d’instruction suivante

Figure 8 : Cycle horloge et cycle instruction.

4.2 L’unité des entrées sorties (unité d’échange)


Elle gère en entrée comme en sortie le transfert des informations entre l’ordinateur et les circuits ou périphériques
(clavier, imprimante, scanner etc.…). Durant une opération d’entrée/sortie, l’information est échangée entre la
mémoire principale et le périphérique relié au système. Cet échange nécessite une interface (ou contrôleur) pour gérer
la connexion. Le rôle de cette interface est de connecter le périphérique au bus de données et de gérer les échanges
entre le processeur et le périphérique.
Pour cela, l’interface est constituée par un registre de commande, un ou plusieurs registres de données qui contiennent
les mots à échanger entre le périphérique et la mémoire ainsi qu’un registre d’état qui indique si l’unité d’échange est
prête, si l’échange s’est bien déroulé, etc.…

a. Adressage des E/S


On accède aux données de l’interface par le biais d’un espace d’adresses d’entrées/sorties. Cet espace peut suivre l’une
des deux configurations d’adressage suivantes :
- Adressage cartographique
Les adresses des ports d’E/S appartiennent au même espace mémoire que les circuits mémoire (on dit que les E/S sont
mappées en mémoire). Ceci a pour conséquences :
• L’espace d’adressage des mémoires diminue ;
• L’adressage des ports d’E/S se fait avec une adresse de même longueur (même nombre de bits) que
pour les cases mémoires ;
• Toutes les instructions employées avec des cases mémoires peuvent être appliquées aux ports d’E/S :
les mêmes instructions permettent de lire et écrire dans la mémoire et les ports d’E/S, tous les modes
d’adressage étant valables pour les E/S.
- Adressage indépendant
Dans ce cas, le microprocesseur considère deux espaces distincts, l’un réservé à l’adressage des mémoires et l’autre
réservé à l’adressage des ports d’E/S. Ceci a pour conséquences :
• Contrairement à l’adressage cartographique, l’espace mémoire total adressable n’est pas diminué ;
• L’adressage des port d’E/S peut se faire avec une adresse plus courte (nombre de bits inférieur) que
pour les circuits mémoires ;
• Les instructions utilisées pour l’accès à la mémoire ne sont plus utilisables pour l’accès aux ports d’E/S,
ceux-ci disposent d’instructions spécifiques ;
• Une même adresse peut désigner soit une case mémoire, soit un port d’E/S. Le microprocesseur doit
donc fournir un signal permettant de spécifier l’accès à la mémoire ou bien aux ports d’E/S.

Université de BBA -Département d’Electronique- T. Abed 4


FFFFF...h FFFFF...h

Espace mémoire

Espace mémoire

00..FF..h

Espace des E/S Espace des E/S

00000...h 00000...h

(a) (b)
Figure 9 : (a) Adressage cartographique, (b) Adressage indépendant.

b. Modes de communication avec les circuits d’E/S


Il existe deux modes d’échange d’information, l’échange programmé et l’échange direct avec la mémoire :
• Le mode programmé par scrutation ou interruption est celui où le processeur sert d’intermédiaire entre la mémoire
et le périphérique.
- Dans le cas de la scrutation, le processeur interroge l’interface pour savoir si des transferts sont prêts. Tant que
des transferts ne sont pas prêts, le processeur attend. L’inconvénient majeur est que le processeur se retrouve
souvent en phase d’attente. Ce type d’échange est très lent.
- Dans un échange de données par interruption, le processeur exécute donc son programme principal jusqu’à ce
qu’il reçoive un signal sur sa ligne de requête d’interruption. Il se charge alors d’effectuer le transfert de
données entre l’interface et la mémoire (voir la section VI à la fin de ce document).
• Le mode d’échange direct avec la mémoire permet le transfert de blocs de données entre la mémoire et un
périphérique sans passer par le processeur. Pour cela, un circuit appelé DMAC ou contrôleur de DMA (Direct Memory
Access) prend en charge les différentes opérations. Le DMAC se charge entièrement du transfert d’un bloc de données.
Le processeur doit tout de même :
- Initialiser l’échange en donnant au DMA l’identification du périphérique concerné
- Donner le sens du transfert
- Fournir l’adresse du premier et du dernier mot concernés par le transfert
- Céder le contrôle du bus au DMAC pour qu’il puisse effectuer le transfert

Mémoire DMAC Unité centrale

Interruption
Configuration

Bus

E/S

Périphériques (port série, mémoire externe…)

Figure 10 : Schéma de principe de l’accès direct à la mémoire.

Université de BBA -Département d’Electronique- T. Abed 5


4.3 Les bus :
a. Définition
Un bus est un ensemble de connexions (fils) qui assure la transmission du même type d’information. On retrouve trois
types de bus véhiculant des informations en parallèle :
- Un bus de données bidirectionnel, qui assure le transfert des informations entre le processeur et son
environnement. Son nombre de lignes fait référence à la capacité de traitement du processeur ;
- Un bus d’adresses unidirectionnel qui permet la sélection de la position des informations à traiter dans un
espace mémoire (ou espace adressable) qui peut avoir 2A emplacements, A étant le nombre de lignes dans le
bus d'adresses ;
- Un bus de commande : constitué par des signaux qui assurent la synchronisation des flux d'information sur les
bus de données et d’adresses.
b. Connexion sur le bus
La multiplication des périphériques autour du processeur oblige la présence d’un décodage d’adresse permettant
d’aiguiller les données présentes sur le bus de données vers leur destination exacte. En effet, le processeur peut
communiquer avec les différentes mémoires et les différents boîtiers d’interface, ceux-ci étant tous reliés sur le même
bus de données. Afin d’éviter des conflits, un seul composant doit être sélectionné à la fois. Ceci est possible en
attribuant à chaque périphérique une adresse ou bien une plage d’adresse qui lui est propre. Une fonction de décodage
permet la sélection du périphérique lorsque son adresse est présente sur le bus. Lorsqu’un composant n’est pas
sélectionné, ses sorties sont mises à l’état "haute impédance" afin de ne pas perturber les données circulant sur le bus.

V. Jeu d’instructions
5.1 Niveaux de programmation
- Langage machine : programmation en utilisant le code machine pour chaque instruction.
- Langage assembleur : Utilisation de mnémoniques pour les instructions machines.
- Langages évolués : (Pascal, C, Java, etc. …) Les instructions sont proches du langage humain. Ces langages
nécessitent une conversion en langage machine effectuée par un interpréteur ou un compilateur.

5.2 Architectures RISC et CISC


• L’architecture CISC (Complex Instruction Set Computer) : Ordinateur à jeu d’instruction large. C’est une architecture
avec un grand nombre d’instructions où le processeur peut exécuter des tâches complexes par instruction unique.
• L’architecture RISC (Reduced Instruction Set Computer) : Ordinateur à jeu d’instruction réduit. C’est une architecture
dans laquelle les instructions sont en nombre réduit. Les instructions élémentaires sont les seules disponibles, les
instructions complexes devront être programmées par l’utilisateur.

5.3 Définition
Le jeu d’instructions décrit l’ensemble des opérations élémentaires que le processeur peut exécuter. Une instruction
au niveau machine doit fournir à l'unité centrale toutes les informations nécessaires pour déclencher l’opération : type
d'action, où trouver le ou les opérandes, où ranger le résultat, etc. C'est pourquoi une instruction comporte plusieurs
champs ou groupes de bits. Le premier champ contient le code opération. Les autres champs peuvent comporter les
adresses des opérandes et du celle du résultat.
Code opération Adresse 1 Adresse 2 Adresse résultat

Code opération Adresse 1 Adresse 2

Code opération Adresse

Figure 11 : Différents types d’instructions.

Université de BBA -Département d’Electronique- T. Abed 6


Une instruction écrite sous la première forme, possède un très long code. Afin d’éviter ceci, des écritures alternatives
sont utilisées. Dans le deuxième type d’instruction, l’adresse du résultat est celle de l’un des deux opérandes. La
dernière forme est dite instruction à une seule adresse, où l’adresse de l’un des opérandes et celle du résultat est
implicite : un registre accumulateur.

5.4 Codage
La largeur en bits de chacun des différents champs est importante, en particulier pour le code opération. Le nombre de
bits est déterminé par le nombre d'opérations distinctes envisagées : n bits autorisent 2n instructions. Cependant toutes
les opérations ne nécessitent pas forcément le même nombre de champs ou des champs de même longueur.
De manière générale, une instruction est composée de deux champs :
- Le champ code opération, qui indique au processeur quelle instruction réaliser ;
- Le champ opérande qui contient la donnée, ou la référence à une donnée en mémoire (son adresse).

Code opération Opérande

Figure 12 : Codage des instructions.

5.5 Type d’instructions


Les instructions peuvent être classées en quatre groupes :
- transferts de données : de mémoire à registre, de registre à registre, de registre à mémoire
- opérations arithmétiques : addition, soustraction, multiplication et division
- opérations logiques : ET, OU inclusif, NON, OU exclusif, etc.
- contrôle de séquence : branchements, test, appel de procédure, etc.

5.6 Modes d’adressage


Un mode d'adressage définit la manière avec laquelle le processeur va déterminer l’opérande ou bien l’adresse de
l’opérande. Les modes d'adressage dépendent des processeurs et des constructeurs, on retrouve en général :
a. Adressage implicite Code opération
L’instruction contient seulement le code opération. (Ex. incrémenter un registre)
b. Adressage immédiat
Code opération Valeur
La valeur de l'opérande est contenue dans l’instruction.
c. Adressage direct Adresse de la
Code opération
Le champ adresse de l'instruction contient l'adresse effective de l'opérande. donnée

d. Adressage indirect
Code opération Registre de base
Le champ adresse (ou le mot suivant) contient l'adresse d'un pointeur :
Registre qui contient l'adresse effective de l'opérande.
e. Adressage relatif
L'adresse effective est obtenue en additionnant le contenu du champ adresse de Code opération Déplacement
l'instruction au contenu du compteur programme. Ce type d'adressage est utilisé
par exemple dans des instructions de branchement.
f. Adressage indexé
Code opération Registre d’index
L'adresse effective est obtenue en additionnant le contenu du champ adresse
de l'instruction au contenu d’un registre d’indexe.
Figure 13 : Modes d’adressage.

Université de BBA -Département d’Electronique- T. Abed 7


VI. Les interruptions
En électronique, les ordinateurs sont utilisés comme systèmes de commande permettant de contrôler divers processus
ou phénomènes (température, vitesse, pression, processus industriel, etc.…). Les circuits d’E/S connectés à l’ordinateur
disposent de capteurs permettant de prélever une mesure sur l’état du phénomène à contrôler. Ces données sont
transmises à l’ordinateur afin qu’il puisse exécuter les traitements nécessaires puis renvoyer les commandes vers les
actionneurs du circuit d’E/S permettant d’agir sur le phénomène. Des échanges de données sont nécessaires donc entre
le microprocesseur et les circuits d’E/S. Le principe de cet échange peut être réglé de deux manières :
• La scrutation d’état (Status Polling) : le microprocesseur doit périodiquement lire l’état des ports d’E/S. Cette
méthode a pour avantage la facilité de sa programmation, mais son inconvénient majeur est la perte de temps
du microprocesseur, surtout dans le cas où il y a de nombreux périphériques à interroger, et éventuellement la
perte de données émises par un circuit d’E/S lorsqu’elles changent rapidement.
• Les interruptions : lorsqu’un circuit d’E/S désire communiquer avec le microprocesseur il émet un signal relié à
une entrée du microprocesseur appelée demande d’interruption (IRQ : Interrupt Request). L’avantage de cette
méthode est de diminuer la perte du temps du microprocesseur, qui n’effectuera une lecture du port d’E/S
seulement lorsqu’une interruption survient. Un clavier par exemple, génère une demande d’interruption
lorsqu’une touche est enfoncée, à ce moment le microprocesseur effectue la lecture de la donnée émise.

6.1 Principe de fonctionnement d’une interruption


Une interruption est un signal matériel qui permet d’interrompre l’exécution du programme en cours. Un
microprocesseur dispose en général de deux sources d’interruptions, l’une non-masquable (NMI) et l’autre masquable.
L’interruption non-masquable doit être impérativement prise en charge par le microprocesseur. Par contre, le
traitement relatif à une interruption masquable peur être différé, dans le cas où le microprocesseur exécute un
programme considéré plus important. L’entrée de l’interruption masquable est connectée à plusieurs sources à travers
un contrôleur d’interruptions. Plusieurs interruptions peuvent donc se produire en même temps. Le contrôleur
d’interruptions permet de leur affecter une priorité, le microprocesseur ne recevra que la demande de la source la plus
prioritaire. Les autres seront traitées après la fin de la prise en charge de la première.
Le masquage de l’interruption se fait en positionnant un flag dans le registre d’état. Une interruption non masquée se
manifeste en positionnant un bit dans le registre d’état. Le microprocesseur, après la fin de l’exécution de chaque
instruction lit le contenu de cet indicateur pour savoir s’il existe une demande d’interruption.

6.2 Mécanisme de gestion des interruptions


Le mécanisme de prise en charge d’une interruption suit les étapes suivantes :
- Une demande d’interruption est émise par un périphérique ;
- Le microprocesseur termine l’exécution de l’instruction en cours ;
- Il constate l’existence d’une demande d’interruption ;
- Il range le contenu des principaux registres (pointeur d’instruction, flags, ...) dans la pile ;
- Il émet un accusé de réception à la demande d’interruption (sur la ligne INTA) indiquant au circuit d’E/S que la
demande d’interruption est acceptée ;
- Il identifie la source de l’interruption et détermine l’adresse du sous-programme de service de l’interruption
(ISR, Interrupt Service Routine) qui lui correspond ;
- Il abandonne l’exécution du programme principal en cours ;
- Il exécute le sous-programme de service de l’interruption ;
- L’ISR se termine par l’instruction IRET, son exécution implique la restauration des registres à partir de la pile ;
- Le microprocesseur reprend l’exécution du programme principal à partir de l’adresse restituée du pointeur
d’instruction.

Université de BBA -Département d’Electronique- T. Abed 8


Figure 14 : Exécution de l’ISR d’une interruption.

6.3 Interruptions vectorisées


Le contrôleur des interruptions permet de gérer des interruptions simultanées en leur affectant des priorités. Il permet
donc d’avertir le microprocesseur de la requête d’interruption et lui indique la source de l’interruption en plaçant sur
le bus de donnée un nombre (ou code) correspondant à la source de l’interruption, c’est le numéro de l’interruption.
De son côté, le microprocesseur dispose en mémoire d’une table contenant les adresses des sous-programmes
d’interruption, c’est la table des vecteurs d’interruptions. Chaque élément de cette table, paire (numéro, adresse de
l’ISR) est appelé vecteur d’interruption. Grâce au numéro de l’interruption il est possible donc de déterminer l’adresse
de l’ISR.

Mémoire Centrale

Adresse ISR1
ISR 1

Adresse ISRn
ISR n

Adresse ISRi
ISR i

Adresse ISR0
ISR 0
Table des vecteurs

n Adresse ISRn
d interruptions
Numéros des
interruptions

...

i Adresse ISRi
...

1 Adresse ISR1
0 Adresse ISR0

Figure 15 : Principe des interruptions vectorisées

Université de BBA -Département d’Electronique- T. Abed 9


VII. Exemple de l’architecture d’un microprocesseur 8 bits

Figure 16 : Exemple de l’architecture d’un microprocesseur 8 bits.

Université de BBA -Département d’Electronique- T. Abed 10

Vous aimerez peut-être aussi