Documente Academic
Documente Profesional
Documente Cultură
ordinateurs
T. ABED
Support de cours : Architecture et fonctionnement des
ordinateurs. - Année 2010/2011 -
Les instructions et les données sont stockées dans la mémoire. Pour accéder à une information contenue en mémoire le
processeur affiche sur le bus l'adresse de celle-ci. Après un certain temps le contenu demandé est affiché par la
mémoire sur le bus. C’est à cette architecture que nous nous intéresserons.
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.
4- Blocs fonctionnels
L’ordinateur est une machine qui effectue une suite d’instructions dite programme. Il est constitué essentiellement de
trois parties principales :
- l’unité centrale (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 est un ensemble de fils qui assure la transmission du même type
d’information. On retrouve trois types de bus : bus d’adresses, bus de données et bus de contrôle.
5- Principe de fonctionnement
5.1 La mémoire centrale :
La mémoire d’un ordinateur permet de stocker les données, ainsi que les programmes à exécuter. La capacité (ou taille)
mémoire d’un ordinateur est le nombre de cases mémoires qu’il contient. Ce nombre a une limite supérieure pour
chaque ordinateur, c’est le nombre de bits qui forment l’adresse qui fixe cette limite. Avec une adresse de n bits il est
possible de référencer au plus 2n cases mémoire.
Les opérations de lecture et d’écriture mémoire portent en général sur plusieurs octets contigus en mémoire : un mot
mémoire. La taille d’un mot mémoire dépend du type de processeur ; elle est de :
- 1 octet (8 bits) dans les processeurs 8 bits (par exemple Motorola 6502) ;
- 2 octets dans les processeurs 16 bits (par exemple Intel 8086) ;
- 4 octets dans les processeurs 32 bits (par ex. Intel 80486 ou Motorola 68030).
5.2 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. Pour chaque instruction, le
processeur effectue schématiquement les opérations suivantes :
1. lire en mémoire l’instruction à exécuter ;
2. effectuer le traitement correspondant ;
3. passer à l’instruction suivante.
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 :
L’unité de traitement :
C’est le coeur du processeur. Elle regroupe les circuits qui assurent les traitements nécessaires à l'exécution des
instructions. Le traitement d’une instruction quelconque nécessite de connaître trois adresses :
- celle du 1er opérande
- celle du 2ème opérande
- et l’adresse à laquelle on doit ranger le résultat.
Cependant, on peut réduire le nombre de ces adresses en utilisant des adresses implicites, c’est ainsi que la majorité
des ordinateurs actuels fonctionnent : machine à une adresse. Dans ce cas, un registre spécial, appelé accumulateur
contient le 1er opérande et reçoit le résultat.
L’unité de traitement est formée des éléments suivants :
Unité Arithmétique et Logique (ALU) : circuit complexe qui assure les fonctions logiques (ET, OU, Comparaison,
Décalage, etc.…) ou arithmétique (Addition, soustraction).
Le registre d'état : généralement 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 par l’ALU. On les appelle indicateurs d’état ou flag ou
drapeaux.
- Retenue (carry : C)
- retenue intermédiaire (Auxiliary-Carry : AC)
- Signe (Sign : S)
- Débordement (overflow : OV ou V)
- Zéro (Z)
- Parité (Parity : P)
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 :
Ensemble de dispositifs qui assure le fonctionnement séquentiel des instructions. Elle comporte essentiellement :
- le registre d’instruction (RI) : reçoit l’instruction à exécuter
- le compteur ordinal (CO), ou compteur programme (CP) (Instruction Pointer IP) : Registre contenant l’adresse en
mémoire où est stockée l’instruction à chercher. Ce registre est incrémenté automatiquement chaque fois
qu’une instruction est placée dans le RI, et ce afin de pointer l’adresse de l’instruction suivante.
- le décodeur de code opération : 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
CO RI
Décodeur
Séquenceur
Horloge
Unité de commande
Les registres généraux : (ou 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
Cycle d’horloge
Instruction
Cycle d’instruction suivante
Le séquenceur peut se représenter lui-même sous forme d'un automate particulier (ou une machine à états). Sa forme
diffère d'un processeur à l'autre, mais il comporte toujours trois parties bien distinctes :
- Chargement du code opération ;
- Traitement du mode d'adressage ;
- Traitement de l'instruction associée au code opération et au mode d'adressage.
Le séquenceur du processeur peut être réalisé de deux manières : séquenceur câblé ou micro programmé. Sous sa
forme câblée, le séquenceur est un circuit séquentiel très complexe, qui génère pour chaque instruction les signaux de
commande nécessaires à son exécution. Alors que dans le second cas on fait correspondre à chaque code opération
d’une instruction une adresse d’un microprogramme qui génère ces signaux de commande. [Figure Micro- commandes]
5.3 L’unité d’entrées sorties (unité d’échange) :
Elle gère en entrée comme en sortie le transfert des informations entre l’ordinateur et les 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 dans lequel le processeur décrit le travail à effectuer (sens de transfert, mode de
transfert).
- Un ou plusieurs registres de données qui contiennent les mots à échanger entre le périphérique et la mémoire
- Un registre d’état qui indique si l’unité d’échange est prête, si l’échange s’est bien déroulé, etc.…
On accède aux données de l’interface par le biais d’un espace d’adresses d’entrées/sorties.
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.
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é contrôleur de DMA (Direct Memory Access)
prend en charge les différentes opérations. Le DMA 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
Il existe deux types de liaisons différentes pour se connecter à des périphériques : la liaison parallèle ou la liaison série.
On caractérise un type de liaison par sa vitesse de transmission ou débit (en bit/s).
5.4 Les bus :
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 dans un système de traitement programmé de l’information :
- un bus de données : bidirectionnel qui assure le transfert des informations entre le processeur et son
environnement, et inversement. Son nombre de lignes est égal à la capacité de traitement du processeur.
- un bus d’adresses : unidirectionnel qui permet la sélection des informations à traiter dans un espace mémoire
(ou espace adressable) qui peut avoir 2n emplacements, avec n = nombre de conducteurs du bus d'adresses.
- un bus de commande : constitué par quelques conducteurs qui assurent la synchronisation des flux
d'informations sur les bus des données et des adresses.
La multiplication des périphériques autour du processeur oblige la présence d’un décodeur d’adresse chargé d’aiguiller
les données présentes sur le bus de données.
En effet, le processeur peut communiquer avec les différentes mémoires et les différents boîtiers d’interface. Ceux-ci
sont tous reliés sur le même bus de données et afin d’éviter des conflits, un seul composant doit être sélectionné à la
fois.
Lorsqu’on réalise un système micro programmé, on attribue donc à chaque périphérique une zone d’adresse, et une
fonction de décodage d’adresse est nécessaire afin de fournir les signaux de sélection de chacun des composants.
Remarque : 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.
Exemple : mémoire espace : FFFF-FC00, FBFF un périphérique d’entrée, FBFE un périphérique de sortie.
6- Jeu d’instructions
6.1 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
une telle opération élémentaire : type d'action, où trouver le ou les opérandes, où ranger le résultat, etc. C'est pourquoi
une instruction comporte en général plusieurs champs ou groupes de bits. Le premier champ contient le code
opération. Les autres champs peuvent comporter des données ou l'identification des opérandes.
6.2 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 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).
7 Les interruptions
7.1 Définition
Une interruption est un signal matériel qui permet d’interrompre l’exécution du programme en cours. Le processeur
possède une ou plusieurs entrées réservées à cet effet. Par exemple, le processeur ne va pas vérifier en permanence si
l’utilisateur a pressé une touche, mais c’est plutôt le contrôleur du clavier qui va envoyer une interruption au processeur
pour stopper l’exécution du programme en cours.
7.2 Principe de fonctionnement d’une interruption
Avant chaque exécution d’instruction, le processeur examine s’il y a eu une requête sur sa ligne d’interruption. Si c’est le
cas, il interrompt toutes ces activités et sauvegarde l’état présent (registres, PC, accumulateurs, registre d’état) dans
une zone mémoire particulière appelée pile. Ensuite, il exécute le programme d’interruption puis restitue l’état
sauvegardé avant de reprendre le programme principal.
Remarques :
- Certaines sources d’interruption possèdent leur propre autorisation de fonctionnement sous la forme d’un bit à
positionner, on l’appelle le masque d’interruption.
- On peut donc interdire ou autoriser certaines sources d’interruptions, on les appelle les interruptions masquables.
- Chaque source d’interruption possède un vecteur d’interruption où est sauvegardée l’adresse de départ du
programme à exécuter.
- Les interruptions sont classées par ordre de priorité. Dans le cas où plusieurs interruptions se présentent en même
temps, le processeur traite d’abord celle avec la priorité la plus élevée.