Vous êtes sur la page 1sur 7

1.

3 Architecture de base d'un ordinateur


Dans cette partie, nous dcrivons rapidement l'architecture de base d'un ordinateur et les principes de son fonctionnement. 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. Comme on l'a vu dans la premire partie, toute information est manipule sous forme binaire (ou numrique) par l'ordinateur. 1.3.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 lctronique complexe qui excute chaque instruction trs rapidement, en quelques cycles d'horloges. Toute l'activit de l'ordinateur est cadence par 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 ), 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.

Figure 1.1: Architecture schmatique d'un ordinateur. 1.3.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).

Figure 1.2: Structure de la mmoire principale.

Dans une mmoire de taille N, on a N emplacements mmoires, numrots de 0 N1. 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 1000). Voici les multiples les plus utiliss :
1 K (Kilo) 1 M (Mga) 1 G (Giga) 1 T (Tra) 210 220 230 240 = 1024 = 1048 576 = 1 073 741 824 = 1 099 511 627 776

Oprations sur la mmoire Seul le processeur peut modifier l'tat de la mmoire1 . 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 contigs 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.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. 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 memoire d'adresse 180'' : 1. 2. 3. 4. 5. Le processeur lit et dcode l'instruction; le processeur demande la mmoire la contenu de l'emplacement 180; la valeur lue est range dans l'accumulateur; l'unit de traitement (UAL ) ajoute 5 au contenu de l'accumulateur; le contenu de l'accumulateur est cris en mmoire l'adresse 180.

C'est l'unit de commande (voir figure 1.1 page pageref) qui dclenche chacune de ces actions dans l'ordre. L'addition proprement dite est effectue par l'UAL. Architecture d'un processeur accumulateur

Figure 1.3: Schma simplifi d'un processeur. Le processeur est reli l'extrieur par les bus de donnes et d'adresses, le signal d'horloge et les signaux de commandes. 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. 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 instructions arithmtiques (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. 1.3.4 Liaisons Processeur-Mmoire : les bus

Figure 1.4: Connexions Processeur-Mmoire : bus de donnes, bus d'adresse et signal lecture/criture. 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 n 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 2a1). 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.

Introduction au langage machine Dans cette partie du cours, nous allons tudier la programmation en langage machine et en assembleur d'un microprocesseur. L'tude complte d'un processeur rel, comme le 80486 ou le Pentium fabriqus par Intel, dpasse largement le cadre de ce cours : le nombre d'instructions et de registres est trs lev. Nous allons ici nous limiter un sous-ensemble du microprocesseur 80486 (seuls les registres et les instructions les plus simples seront tudis). De cette faon, nous pourrons tester sur un PC les programmes en langage machine que nous crirons.

2.1 Caractristiques du processeur tudi


La gamme de microprocesseurs 80x86 quipe les micro-ordinateurs de type PC et compatibles. Les premiers modles de PC, commercialiss au dbut des annes 1980, utilisaient le 8086, un microprocesseur 16 bits2. Le modles suivants ont utilis successivement le 80286, 80386, 80486 et Pentium (ou 80586)3. Chacun de ces processeurs est plus puissant que les prcdents : augmentation de la frquence d'horloge, de la largeur de bus (32 bits d'adresse et de donnes), introduction de nouvelles instructions (par exemple calcul sur les rels) et ajout de registres. Chacun d'entre eux est compatible avec les modles prcdents; un programme crit dans le langage machine du 286 peut s'excuter sans modification sur un 486. L'inverse n'est pas vrai, puisque chaque gnration a ajout des instructions nouvelles. On parle donc de compatibilit ascendante. Du fait de cette compatibilit, il est possible de programmer le 486, utilis dans nos salles de Travaux Pratiques, comme un processeur 16 bits. C'est ce que nous ferons cette anne par souci de simplification. Ainsi, nous n'utiliserons que des registres de 16 bits. Voici les caractristiques du processeur simplifi que nous tudierons : CPU 16 bits accumulateur :

bus de donnes 16 bits; bus d'adresse 32 bits;

Registres :

accumulateur AX (16 bits); registres auxiliaires BX et CX (16 bits); pointeur d'instruction IP (16 bits); registres segments CS, DS, SS (16 bits); pointeur de pile SP (16 bits), et pointeur BP (16 bits).

Les registres IP et AX (accumulateur) ont dja t tudis. Les autres le seront progressivement dans ce chapitre. Nous verrons plus loin que les registres de donnes de 16 bits peuvent parfois tre utiliss comme deux registres indpendants de 8 bits (AX devient la paire (AH,AL)) :
8 bits (8 bits) (AH) AX (16 bits) 8 bits (8 bits) (BH) BX (16 bits) 8 bits (8 bits) (CH) CX (16 bits)

(AL)

(BL)

(CL)

Noter que nous voquons ici uniquement les registres qui apparaissent explicitement dans l'criture des instructions, et pas les registres intermdiaires tels que RI, RTUAL et RTA