Académique Documents
Professionnel Documents
Culture Documents
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).
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.
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