03 Architecture Des Ordinateurs [PDF]

  • 0 0 0
  • Gefällt Ihnen dieses papier und der download? Sie können Ihre eigene PDF-Datei in wenigen Minuten kostenlos online veröffentlichen! Anmelden
Datei wird geladen, bitte warten...
Zitiervorschau

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