40 0 541KB
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
Bus code
Mémoire données
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
Conditions
ALU
Contrôle
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
B1
C1 RM
A3
C Op.
RI
Adr
B4
A2
B3 C Op.
Adr
Opérande
R A
A1
CO B2
Mémoire centrale
Acc : Accumulateur ALU : Unité arithmétique et logique RM : Registre mot RA : Registre d adresse COp : Code opération Adr : Adresse CO : Compteur ordinal (CP) RI : Registre instruction
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
Cycle d’instruction
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
Code opération
Adresse 1
Adresse 2
Code opération
Adresse
Adresse résultat
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 La valeur de l'opérande est contenue dans l’instruction.
Code opération
Valeur
Code opération
Adresse de la donnée
Code opération
Registre de base
Code opération
Déplacement
Code opération
Registre d’index
c. Adressage direct Le champ adresse de l'instruction contient l'adresse effective de l'opérande.
d. Adressage indirect 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 l'instruction au contenu du compteur programme. Ce type d'adressage est utilisé par exemple dans des instructions de branchement.
f. Adressage 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 ISRn
Adresse ISRi
ISR n
ISR i ISR 0
n
Adresse ISRn
i
Adresse ISRi
1 0
Adresse ISR1 Adresse ISR0
... ...
Numéros des interruptions
Adresse ISR0
ISR 1
Table des vecteurs d interruptions
Adresse ISR1
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