Vous êtes sur la page 1sur 19

Architecture de lordinateur Notes de cours

1|P age

Architecture de base d'un ordinateur

Un ordinateur est une machine de traitement de l'information. Il est capable d'acqurir de l'information, de la stocker, de la transformer en effectuant des traitements quelconques, puis de la restituer sous une autre forme. Le mot informatique vient de la contraction des mots information et automatique. Nous appelons information tout ensemble de donnes. On distingue gnralement diffrents types d'informations : textes, nombres, sons, images, etc., mais aussi les instructions composant un programme. Toute information est manipule sous forme binaire (ou numrique) par l'ordinateur.

1.1

Principes de fonctionnement

Les deux principaux constituants d'un ordinateur sont la mmoire principale et le processeur. La mmoire principale (MP en abrg) permet de stocker de l'information (programmes et donnes), tandis que le processeur excute pas pas les instructions composant les programmes. Notion de programme Un programme est une suite d'instructions lmentaires, qui vont tre excutes dans l'ordre par le processeur. Ces instructions correspondent des actions trs simples, comme additionner deux nombres, lire ou crire une case mmoire, etc. Chaque instruction est codifie en mmoire sur quelques octets. Le processeur est capable d'excuter des programmes en langage machine, c'est dire composs d'instructions trs lmentaires suivant un codage prcis. Chaque type de processeur est capable d'excuter un certain ensemble d'instructions, son jeu d'instructions. Pour crire un programme en langage machine, il faut donc connatre les dtails du fonctionnement du processeur qui va tre utilis. Le processeur Le processeur est un circuit lectronique complexe qui excute chaque instruction trs rapidement, en quelques cycles d'horloges. Toute l'activit de l'ordinateur est cadence par
2|P age

une horloge unique, de faon ce que tous les circuits lectroniques travaillent ensembles. La frquence de cette horloge s'exprime en MHz (millions de battements par seconde). Par exemple, un ordinateur "PC Pentium 133" possde un processeur de type Pentium et une horloge 133 MHz. Pour chaque instruction, le processeur effectue schmatiquement les oprations suivantes: 1. lire en mmoire (MP) l'instruction excuter ; 2. effectuer le traitement correspondant ; 3. passer l'instruction suivante. Le processeur est divis en deux parties (voir figure 1.1), l'unit de commande et l'unit de traitement : l'unit de commande est responsable de la lecture en mmoire et du dcodage des instructions ; l'unit de traitement, aussi appele Unit Arithmtique et Logique (U.A.L.), excute les instructions qui manipulent les donnes.

FIG 1.1- Architecture schmatique dun ordinateur

3|P age

1.2

La mmoire principale (MP)

Structure de la MP La mmoire est divise en emplacements de taille fixe (par exemple 8 bits) utiliss pour stocker instructions et donnes. En principe, la taille d'un emplacement mmoire pourrait tre quelconque ; en fait, la plupart des ordinateurs en service aujourd'hui utilisent des emplacements mmoire d'un octet (byte en anglais, soit 8 bits, unit pratique pour coder un caractre par exemple).

Dans une mmoire de taille N, on a N emplacements mmoires, numrots de 0 N 1. Chaque emplacement est repr par son numro, appel adresse. L'adresse est le plus souvent crite en hexadcimal. La capacit (taille) de la mmoire est le nombre d'emplacements, exprim en gnral en kilo-octets ou en mga-octets, voire davantage. Rappelons que le kilo informatique vaut 1024 et non 1000 (210 = 1024 w 1000). Voici les multiples les plus utiliss :

4|P age

Oprations sur la mmoire Seul le processeur peut modifier l'tat de la mmoire. Chaque emplacement mmoire conserve les informations que le processeur y crit jusqu' coupure de l'alimentation lectrique, o tout le contenu est perdu (contrairement au contenu des mmoires externes comme les disquettes et disques durs). Les seules oprations possibles sur la mmoire sont : criture d'un emplacement : le processeur donne une valeur et une adresse, et la mmoire range la valeur l'emplacement indiqu par l'adresse ; lecture d'un emplacement : le processeur demande la mmoire la valeur contenue l'emplacement dont il indique l'adresse. Le contenu de l'emplacement lu reste inchang. Unit de transfert Notons que les oprations de lecture et d'criture portent en gnral sur plusieurs octets contigus en mmoire : un mot mmoire. La taille d'un mot mmoire dpend 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).

1.3.

Le processeur central

Le processeur est parfois appel CPU (de l'anglais Central Processing Unit) ou encore MPU (Micro-Processing Unit) pour les microprocesseurs. Un microprocesseur n'est rien d'autre qu'un processeur dont tous les constituants sont runis sur la mme puce lectronique (pastille de silicium), afin de rduire les cots de fabrication et d'augmenter la vitesse de traitement. Les microordinateurs sont tous quips de microprocesseurs. L'architecture de base des processeurs quipant les gros ordinateurs est la mme que celle des microprocesseurs.
5|P age

Les registres et l'accumulateur Le processeur utilise toujours des registres, qui sont des petites mmoires internes trs rapides d'accs utilises pour stocker temporairement une donne, une instruction ou une adresse. Chaque registre stocke 8, 16 ou 32 bits. Le nombre exact de registres dpend du type de processeur et varie typiquement entre une dizaine et une centaine. Parmi les registres, le plus important est le registre accumulateur, qui est utilis pour stocker les rsultats des oprations arithmtiques et logiques. L'accumulateur intervient dans une proportion importante des instructions. Par exemple, examinons ce qu'il se passe lorsque le processeur excute une instruction comme Ajouter 5 au contenu de la case mmoire d'adresse 180 : 1. Le processeur lit et dcode l'instruction ; 2. le processeur demande la mmoire la contenu de l'emplacement 180 ; 3. la valeur lue est range dans l'accumulateur ; 4. l'unit de traitement (UAL) ajoute 5 au contenu de l'accumulateur ; 5. le contenu de l'accumulateur est cris en mmoire l'adresse 180. C'est l'unit de commande (voir figure 1.1) qui dclenche chacune de ces actions dans l'ordre. L'addition proprement dite est effectue par l'UAL. Architecture d'un processeur accumulateur La figure 1.3 reprsente l'architecture interne simplifie d'un MPU accumulateur. On y distingue l'unit de commande, l'UAL, et le dcodeur d'instructions, qui, partir du code de l'instruction lu en mmoire actionne la partie de l'unit de commande ncessaire.

6|P age

Les informations circulent l'intrieur du processeur sur deux bus internes, l'un pour les donnes, l'autre pour les instructions. On distingue les registres suivants : ACC : Accumulateur ; RTUAL : Registre Tampon de l'UAL, stocke temporairement l'un des deux oprandes d'une instruction arithmtique (la valeur 5 dans l'exemple donn plus haut) ; Reg. d'tat : stocke les indicateurs, que nous tudierons plus tard ; RI : Registre Instruction, contient le code de l'instruction en cours d'excution (lu en mmoire via le bus de donnes) ; IP : Instruction Pointer ou Compteur de Programme, contient l'adresse de l'emplacement mmoire o se situe la prochaine instruction excuter ; RTA : Registre Tampon d'Adresse, utilis pour accder une donne en mmoire. Les signaux de commandes permettent au processeur de communiquer avec les autres circuits de l'ordinateur. On trouve en particulier le signal R/W (Read/Write), qui est utilis pour indiquer la mmoire principale si l'on effectue un accs en lecture ou en criture.

7|P age

1.4 Liaisons Processeur-Mmoire : les bus

Les informations changes entre la mmoire et le processeur circulent sur des bus. Un bus est simplement un ensemble de n fils conducteurs, utiliss pour transporter des signaux binaires. Le bus d'adresse est un bus unidirectionnel : seul le processeur envoie des adresses. Il est compos de a fils ; on utilise donc des adresses de a bits. La mmoire peut possder au maximum 2a emplacements (adresses 0 2a-1). Le bus de donnes est un bus bidirectionnel. Lors d'une lecture, c'est la mmoire qui envoie un mot sur le bus (le contenu de l'emplacement demand) ; lors d'une criture, c'est le processeur qui envoie la donne. Le bus de commandes est un bus bidirectionnel, il transporte les ordres et signaux provenant de lunit de commande vers les divers organes de la machine. Il vhicule aussi les divers signaux de rponse des composants.

Notion de jeu d'instructions-machine

Comme dfini prcdemment, une instruction-machine est une instruction qui est directement excutable par le processeur.

8|P age

L'ensemble de toutes les instructions-machine excutables par le processeur s'appelle le jeu d'instructions de l'ordinateur. Il est compos au minimum de quatre grandes classes d'instructions dans les micro-processeurs : instructions de traitement (ex :ADD, DIV, etc..) instructions de branchement ou de droutement (ex : JMP) instructions d'changes (ex : MOV, LOAD, STOR) instructions de comparaisons (ex : CMP)

D'autres classes peuvent tre ajoutes pour amliorer les performances de la machine (instructions de gestion mmoire, multimdias etc..).

3
3.1

Architectures volues
Architectures CISC et RISC

Traditionnellement, depuis les annes 70 on dnomme processeur architecture CISC (Complex Instruction Set Code) un processeur dont le jeu d'instructions possde les proprits suivantes :

Il contient beaucoup de classes d'instructions diffrentes. Il contient beaucoup de type d'instructions diffrentes complexes et de taille variable. Il se sert de beaucoup de registres spcialiss et de peu de registres gnraux.
L'architecture RISC (Reduced Instruction Set Code) est un concept mis en place par IBM, un processeur RISC est un processeur dont le jeu d'instructions possde les proprits suivantes :

Le nombre de classes d'instructions diffrentes est rduit par rapport un CISC. Les instructions sont de taille fixe. Il se sert de beaucoup de registres gnraux. Il fonctionne avec un pipe-line

Depuis les dcennies 90, les microprocesseurs adoptent le meilleur des fonctionnalits de chaque architecture provoquant de fait la disparition progressive de la diffrence entre RISC et CISC et les invitables polmiques sur l'efficacit suppose meilleure de l'une ou de l'autre architecture.

9|P age

3.2 Pipeline dans un processeur


Soulignons qu'un processeur est une machine squentielle ce qui signifie que le cycle de traitement d'une instruction se droule squentiellement. Supposons que par hypothse simplificatrice, une instruction machine soit traite en 3 phases :

lecture : dans le registre instruction (RI) dcodage : extraction du code opration et des oprandes excution : du traitement et stockage ventuel du rsultat.

Reprsentons chacune de ces 3 phases par une unit matrielle distinctes dans le processeur (on appelle cette unit un "tage") et figurons schmatiquement les 3 tages de traitement d'une

instruction : Supposons que suivions pas pas l'excution des 4 instructions machines suivants le long des 3 tages prcdents : ADD100,200, 300 MUL 150, 250, 350 DIV 300, 200, 120 MOV 100, 500 Chacune des 4 instructions est traite squentiellement en 3 phases sur chacun des tages; une fois une instruction traite par le dernier tage (tage d'excution) le processeur passe l'instruction suivante et la traite au premier tage et ainsi de suite

10 | P a g e

L'architecture pipe-line consiste optimiser les temps d'attente de chaque tage, en commenant le traitement de l'instruction suivante ds que l'tage de lecture a t libr par l'instruction en cours, et de procder identiquement pour chaque tage de telle faon que durant chaque phase, tous les tages soient occups fonctionner (chacun sur une instruction diffrente). A un instant t0 donn l'tage d'excution travaille sur les actions effectuer pour l'instruction de rang n, l'tage de dcodage travaille sur le dcodage de l'instruction de rang n+1, et l'tage de lecture sur la lecture de l'instruction de rang n+2. Il est clair que cette technique dnomme architecture pipe-line acclre le traitement d'une instruction donne, puisqu' la fin de chaque phase une instruction est traite en entier. Le nombre d'units diffrentes constituant le pipe-line s'appelle le nombre d'tages du pipeline.

11 | P a g e

La figure ci-dessous illustre le dmarrage du traitement des 4 instructions selon un pipe-line 3 tages (lecture, dcodage, excution) :

12 | P a g e

3.3

Architecture superscalaire

Une autre faon de gagner en performance est d'excuter plusieurs instructions en mme temps. L'approche superscalaire consiste doter le microprocesseur de plusieurs units de traitement travaillant en parallle. Les instructions sont alors rparties entre les diffrentes units d'excution. Il faut donc pouvoir soutenir un flot important d'instructions et pour cela disposer d'un cache performant.
Architecture scalaire :

3.4

Architecture pipeline et superscalaire

Le principe est de d'excuter les instructions de faon pipeline dans chacune des units de traitement travaillant en parallle.

13 | P a g e

Les changes de donnes

La fonction d'un systme microprocesseurs, quel qu'il soit, est le traitement de l'information. Il est
donc

vident qu'il doit acqurir l'information fournie par son

environnement et restituer les rsultats de ses traitements. Chaque systme est donc quip d'une ou plusieurs interfaces d'entres/sorties permettant d'assurer la communication entre le microprocesseur et le monde extrieur. Les techniques
d'entres/sorties

sont trs importantes pour les performances du systme. Rien

ne sert d'avoir un microprocesseur calculant trs rapidement s'il doit souvent perdre son temps pour lire des donnes ou crire ses rsultats. Durant une opration d'entre/sortie, l'information est change entre la mmoire principale et un priphrique reli au systme.

Cet change

ncessite

une interface (ou contrleur) pour grer la connexion. Plusieurs

techniques sont employes pour effectuer ces changes. Types de dispositifs d'E/S Quelques critres : 1 Direction de transfert : 2 Entre seulement : ex. clavier, souris ; Sortie seulement : ex. cran cathodique, imprimante ; Entre et sortie : ex. disques et bandes magntiques, connexions aux rseaux.

Partenaire du transfert :

14 | P a g e

Humain (ex. clavier, souris) ; Machine (ex. disques, imprimantes, rseaux).

Taux de transfert (E/S mmoire principale) : Lents (< 1 Koct/s, ex. clavier, imprimante matricielle) ; Vitesse moyenne (entre 1 Koct/s et 1000 Koct/s, ex. scanner, rseaux, imprim. laser) ; Rapides (> 1000 Koct/s, ex. disques magntiques, affichage graphique).

5.1 L'interface d'entre/sortie


5.1.1 Rle Chaque priphrique dont le rle est de : Connecter le priphrique au bus de donnes Grer les changes entre le microprocesseur et le priphrique
sera

reli au systme par l'intermdiaire d'une interface (ou contrleur)

5.1.2 Constitution Pour cela, l'interface est constitue par : Un registre de commande dans lequel le processeur dcrit le travail effectuer (sens de transfert, mode de transfert). Un ou plusieurs registres de donnes qui contiennent les mots changer entre le priphrique et la mmoire Un registre d'tat qui indique si l'unit d'change est prte, si l'change s'est bien droul, etc... On accde aux donnes de l'interface par le biais d'un espace d'adresses d'entres/sorties.

5.2

Techniques d'change de donnes


recevoir

Avant d'envoyer ou de

des informations, le microprocesseur doit connatre l'tat du

priphrique. En effet, le microprocesseur doit savoir si un priphrique est prt recevoir ou transmettre une information pour que la transmission se fasse correctement. Il existe 2 modes d'change d'information :
15 | P a g e

Le mode programm par scrutation ou interruption o le microprocesseur sert d'intermdiaire entre la mmoire et le priphrique Le mode en accs direct la mmoire (DMA) o le microprocesseur ne se charge pas de l'change de donnes.

5.2.1 Echange programm 5.2.1.1 Scrutation Chaque priphrique dispose d'un indicateur (bit dans un registre d'tat) que le processeur vient tester
rgulirement.

Si cet indicateur est positionn, le processeur comprend que le

priphrique en question dsire raliser un change d'information. Par exemple si on a appuy sur une touche du clavier, celui-ci mmorise la touche dans sa mmoire tampon et positionne son indicateur pour l'informer qu'un caractre attend d'tre lu.

Cette technique ncessite que le processeur excute en permanence une boucle de scrutation qui visite sans arrt tous les contrleurs d'E/S. l'inconvnient de cette technique est qu'elle peut avoir un certain retard entre le moment ou le contrleur positionne son indicateur est le moment o son tour de scrutation arrive. En plus, le temps d'excution est partag entre le programme de scrutation et les autres programmes en train de s'excuter sur le CPU.

5.2.1.2 Interruption Une interruption est un signal, gnralement asynchrone au programme en cours, pouvant tre mis par tout dispositif externe au microprocesseur. Le microprocesseur possde une ou plusieurs entres rserves cet effet. Sous rserve de certaines conditions, elle peut interrompre le travail courant du microprocesseur pour forcer l'excution d'un programme traitant la cause de l'interruption.

16 | P a g e

Dans un change de donnes par interruption, le microprocesseur excute donc son programme principal jusqu' ce qu'il reoive un signal sur sa ligne de requte d'interruption. Il se charge alors d'effectuer le transfert de donnes entre l'interface et la mmoire.

Principe de fonctionnement d'une interruption : Avant chaque excution d'instructions, le microprocesseur examine sil y a eu une requte sur sa ligne d'interruption. Si c'est le cas, il interrompt toutes ces activits et sauvegarde l'tat prsent (registres, PC, accumulateurs, registre d'tat) dans un registre particulier appel pile. Les donnes y sont ''entasses'' comme on empile des livres (la premire donne sauvegarde sera donc la dernire tre restitue). Ensuite, il excute le programme d'interruption puis restitue l'tat sauvegard avant de reprendre le programme principal. Remarques : Certaine source d'interruption possde 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 possde un vecteur d'interruption o est sauvegarde l'adresse de dpart du programme excuter. Les interruptions sont classes par ordre de priorit. Dans le cas o plusieurs interruptions se prsentent en mme temps, le microprocesseur traite d'abord celle avec la priorit la plus leve.

17 | P a g e

5.2.2 Echange direct avec la mmoire Ce mode permet le transfert de blocs de donnes entre la mmoire et un priphrique sans passer par le microprocesseur. Pour cela, un circuit appel contrleur de DMA (Direct Memory Access) prend en charge les diffrentes oprations. Le DMA se charge entirement du transfert d'un bloc de donnes. Le microprocesseur doit tout de mme : initialiser l'change en donnant au DMA l'identification du priphrique concern donner le sens du transfert fournir l'adresse du premier et du dernier mot concerns par le transfert

Un contrleur de DMA est dot d'un registre d'adresse, d'un registre de donne, d'un compteur et d'un dispositif de commande (logique cble). Pour chaque mot change, le DMA demande au microprocesseur le contrle du bus, effectue la lecture ou l'criture mmoire l'adresse contenue dans son registre et libre le bus. Il incrmente ensuite cette adresse et dcrmente son compteur. Lorsque le compteur atteint zro, le dispositif informe le processeur de la fin du transfert par une ligne d'interruption. Le principal avantage est que pendant toute la dure du transfert, le processeur est libre d'effectuer un traitement quelconque. La seule contrainte est une limitation de ses propres accs mmoire pendant toute la dure de l'opration, puisqu'il doit parfois retarder certains de ses accs pour permettre au dispositif d'accs direct la mmoire d'effectuer les siens : il y a apparition de vols de cycle.

18 | P a g e

Le Microprocesseur Motorola 68000

19 | P a g e