Vous êtes sur la page 1sur 96

Structure et Fonctionnement des Ordinateurs (2e MIC)

Polycopi du cours

Michel Castan

Table des matires

1 Introduction .................................................................................................................................... 7 1.1 Historique ............................................................................................................................... 7 1.2 Les diffrentes gnrations .................................................................................................... 7 1.3 Le modle Von Neumann .................................................................................................... 10 1.4 Les architectures ................................................................................................................... 25 1.5 Mesures de performances ..................................................................................................... 25 2 Code et numration ...................................................................................................................... 27 2.1 Codage .................................................................................................................................. 27 2.2 Systme de numration ........................................................................................................ 35 3 Circuits de calcul ......................................................................................................................... 3.1 Oprations arithmtiques ...................................................................................................... 3.2 Les circuits arithmtiques .................................................................................................... 3.3 Le processeur ........................................................................................................................ 4 La Mmoire .................................................................................................................................. 4.1 Caractristiques fondamentales ............................................................................................ 4.2 Les diffrentes fonctions d'accs .......................................................................................... 4.3 Organisation de la mmoire principale ................................................................................ 4.4 Contrleur de mmoire dynamique ...................................................................................... 5 Les instructions ............................................................................................................................ 5.1 Classification des jeux d'instructions ................................................................................... 5.2 Un exemple de jeu d'instructions ......................................................................................... 5.3 L'adressage des oprandes .................................................................................................... 6 Unit de commande ..................................................................................................................... 6.1 Le squenceur cabl ............................................................................................................. 6.2 Le modle de Wilkes ........................................................................................................... 6.3 Unit de commande microprogramme ............................................................................... 45 45 48 54 69 69 71 72 74 77 77 77 82 85 86 89 90

Structure et Fonctionnement des Ordinateurs (2e MIC) - Polycopi du cours

Structure et Fonctionnement des Ordinateurs (2e MIC)


Polycopi du cours

Michel Castan
Ce polycopi est le support du cours Structure et Fonctionnement des Ordinateurs. Le premier chapitre est une introduction la structure de l'ordinateur. Aprs un rapide historique de l'volution des machines, il prsente le modle de Von Neumann, modle la base de toute machine informatique, par l'tude simplifie des diffrentes parties de l'ordinateur. Le deuxime chapitre concerne le codage de l'information et le systme de numration utilis pour la reprsentation des nombres dans la machine (en particulier le systme binaire). Le troisime chapitre montre comment ces nombres sont manipuls par les circuits de calculs de la machine et comment ces circuits fonctionnent. Le quatrime chapitre tudie l'aspect mmorisation du calculateur, du simple circuit mmoire aux mcanismes de mmoire virtuelle, en passant par la notion de cache mmoire. Le cinquime chapitre s'intresse la frontire entre le monde matriel et le monde logiciel, c'est dire le niveau instruction. Quelques principes de codage du jeu d'instructions sont prsents, ainsi que les techniques modernes utilises pour amliorer la vitesse d'excution de ces instructions. Le sixime chapitre montre comment raliser l'unit de commande permettant d'interprter le jeu d'instruction. Ce polycopi s'accompagne de plusieurs appliquettes Java illustrant un point particulier du cours. Elles sont indiques par l'icne suivant :

Si vous trouvez une erreur dans cette version du polycopi, vrifiez d'abord si l'erreur n'a pas dj t corrige dans la version en ligne. Si ce n'est pas le cas, merci d'en faire part par courrier lectronique l'adresse Michel.Castan@insa-toulouse.fr. Page 5 sur 96

Structure et Fonctionnement des Ordinateurs (2e MIC) - Polycopi du cours

Page 6 sur 96

Structure et Fonctionnement des Ordinateurs (2e MIC) - Polycopi du cours

Chapitre 1

Introduction
1.1 Historique
On attribue Charles Babbage (1792-1871) l'origine de l'ordinateur lectronique moderne. Il fut, en effet, le premier avoir dcrit les principes d'un calculateur d'application gnrale. Sa machine analytique (1833) comportait les quatre oprations de base: addition, soustraction, multiplication et division, et pouvait tre programme l'aide de cartes perfores (Ada Lovelace fut la premire personne programmer cette machine). Cette machine tait capable de rpter une mme squence d'oprations mais aussi de choisir une srie d'oprations ou une autre, suivant l'tat du calcul. Comme ce ft le cas plus tard avec les ordinateurs lectroniques, la partie magasin (mmoire) et la partie moulin (processeur) taient spares. Malheureusement, cette machine ne ft jamais acheve du vivant de son concepteur. Ce n'est que quelques deux cents ans plus tard qu'un consortium de socits informatiques a pu raliser cette machine haute de 2,3 mtres et longue de 3,5 mtres, compose de 4000 pices de mtal pour un poids de prs de 3 tonnes. Elle a pu effectuer un calcul complet en novembre 1991, avec une prcision de 31 chiffres. Les premires machines lectromcaniques verront le jour dans les annes 1890 grce Hermann Hollerith qui proposa une machine pour traiter les donnes du recensement aux tats-unis. Grce l'lectricit, sa machine tait capable de compter, lire et classer les informations fournies par les agents du recensement et enregistres sur cartes perfores. Pour exploiter ses brevets, il fonda, en 1896, la Tabulating Machine Corporation qui, aprs diverses pripties, deviendra en 1924, sous la houlette de Thomas Watson, l'International Business Machines : IBM. La premire machine entirement lectronique fut construite par John Atanasoff en 1938 pour rsoudre des calculs spcifiques. C'est le premier ordinateur spcialis au monde. Du fait de la seconde guerre mondiale, le prototype n'a pas eu de successeur. Il est reconnu actuellement que le premier ordinateur lectronique usage universel est l'ENIAC (Electronic Numerical Integrator And Calculator) construit dans le plus grand secret, dans les annes 1940, par John Eckert et John Mauchly pour le calcul des tables de tir d'artillerie. C'tait une machine norme de 30 m de long, 2,50 m de haut, disposant de 20 registres de 10 chiffres (chaque registre tait compos de 550 tubes lectroniques). Avec l'aide de John Von Neumann, qui on donne tort la paternit du modle qui porte son nom (modle Von Neumann), ils commencent l'tude du successeur de l'ENIAC : l'EDVAC mais dlaissent ce projet pour fonder, en 1947, l'Eckert-Mauchly Computer Corporation qui commercialisera, ds 1951, le premier ordinateur commercial non spcialis : l'UNIVAC (Universal Automatic Computer).

1.2 Les diffrentes gnrations


On a l'habitude de distinguer, dans l'volution des ordinateurs, un certain nombre d'tapes dcisives, appeles gnration. Ces tapes peuvent se dfinir aussi bien sur des aspects matriels, technologiques ou simplement logiciels. Il est intressant de constater que l'volution va de pair, que ce soit sur un de ces aspects ou bien sur un autre. Page 7 sur 96

Structure et Fonctionnement des Ordinateurs (2e MIC) - Polycopi du cours

1.2.1 Premire gnration: 1945-1958


C'est la gnration des ordinateurs spcialiss, c'est dire, soit nous avions des ordinateurs usage scientifique (pour rsoudre des calculs importants), soit des ordinateurs usage gestionnaire. C'est l'poque de la technologie des lampes ou des relais. L'organisation de l'ordinateur tait simple avec peu d'units diffrentes. Le nombre d'lments logiques tait de l'ordre de 10 4 environ. Au niveau logiciel, la programmation se faisait en langage machine, grce l'assembleur symbolique. La notion de bibliothque ou d'utilitaire commence voir le jour. Les machines excutaient des travaux de manire squentielle : chargement du programme en mmoire partir d'un support quelconque (cartes, ruban perfor), excution du programme, dition des rsultats sur imprimante. La plupart des concepts architecturaux que l'on trouve dans les ordinateurs modernes ont t invents cette poque: les registres d'indexation (1949), la microprogrammation (1951), la reprsentation des nombres avec virgule flottante (1954), les interruptions de programme (1954), les registres usage non spcialis (1956), les entres-sorties asynchrones (1956), l'adressage indirect (1958), et lgrement plus tard, la pagination (1959).

1.2.2 Deuxime gnration: 1958-1964


C'est la gnration des ordinateurs usage gnral utiliss pour le traitement des donnes, et non pas seulement pour le traitement des nombres. D'un point de vue technologique, le passage la seconde gnration correspond l'utilisation du transistor dans la conception des lments de l'ordinateur. Cela permet d'augmenter d'un ordre de grandeur, le nombre d'lments logiques (10 5). Les systmes taient composs d'un petit nombre d'units assez complexes. Le premier ordinateur transistor, appel TRADIC (800 transistors) est apparu en 1954. Cot logiciel, les premiers langages volus de programmation voient le jour (COBOL, FORTRAN, ALGOL, LISP), ainsi que la notion de macro-assembleur. La mise en oeuvre des units d'entres-sorties asynchrones permit une nouvelle manire d'exploiter les machines : le traitement par lot. Un calculateur auxilaire tait charg du transfert sur bandes magntiques des programmes et des donnes. Ces bandes magntiques taient alors traites par le calculateur principal qui gnrait galement les rsultats sur ce mme support. Enfin, le calculateur auxiliaire imprimait les rsultats partir des bandes magntiques. C'est au cours de cette gnration qu'est n un nouveau type d'application : le contrle de processus, rendu possible grce la prise en compte, au niveau matriel, du mcanisme d'interruption de programme. C'est aussi au cours de cette gnration qu'est n le premier mini-ordinateur, le PDP-1 de Digital Equipment Corporation (1961).

1.2.3 Troisime gnration: 1964-1978


La troisime gnration est celle du passage du traitement de donnes au traitement de l'information. La donne possde une smantique et pas seulement une syntaxe.

Page 8 sur 96

Structure et Fonctionnement des Ordinateurs (2e MIC) - Polycopi du cours

Au niveau technologique, elle est marque par l'utilisation de circuits intgrs SSI (Small Scale Integration) puis MSI (Medium Scale Integration), c'est dire des circuits contenant environ d'abord une dizaine de composants lmentaires, puis quelques centaines. Cela permettait la construction de machines contenant plusieurs lments assez complexes, pouvant tre programms de manire indpendante. Le nombre d'lments logiques constituant une machine a encore augment d'un ordre de grandeur (10 6). Au niveau de l'architecture des machines, c'est l'avnement de la notion de famille, avec la srie 360 d'IBM : une gamme de machines excutant le mme jeu d'instructions. La troisime gnration est aussi la gnration des mini-ordinateurs. C'est aussi la gnration des premiers microprocesseurs avec le circuit 4004 d'INTEL, apparu en 1972. Cot logiciel, le systme d'exploitation devient la ressource la plus importante et aussi la plus complexe en permettant de nouveaux modes d'utilisation des machines, comme la multiprogrammation, le conversationnel, le tltraitement. Au niveau des langages de programmation, on voit apparaitre PL1, Algol 68, Simula 67, Pascal, Basic, APL.

1.2.4 Quatrime gnration: 1978-1985


Cette gnration est caractrise principalement par la notion de rseaux de machines. Au niveau technologique, l'utilisation de circuits LSI (Large Scale Integration) contenant plusieurs centaines d'lments logiques, permet d'augmenter, encore d'un ordre de grandeur, le nombre de composants logiques lmentaires (10 7). Face la stagnation de la smantique des jeux d'intructions et la complexit grandissante des langages de programmation qui entraine une forte augmentation de la complexit des compilateurs, l'poque charnire entre la troisime et la quatrime gnration voit l'apparition d'un nouveau concept architectural : les machines langages ou multi-langages (Symbol, Burroughs B1700, Intel IAPX 432).

1.2.5 Cinquime gnration: 1985-...


La dernire gnration (pour l'instant), c'est celle des systmes distribus interactifs. Ce fut en son dbut, la gnration de machines langages ddies l'intelligence artificielle. Niveau technologique, les progrs sont immenses, par rapport aux premires gnrations. On parle de niveau d'intgration VLSI (Very Large Scale Integration) voire mme de WSI (Wafer Scale Integration), ce qui a permis d'augmenter de plusieurs ordres de grandeurs, le nombre de composants logiques lmentaires dans une machine (10 8). Un processeur complet de plusieurs millions de transistors contient dornavant dans un seul circuit intgr (le dj ancien Pentium II contient 7,5 millions de transistors pour la seule partie unit centrale, mmoire non comprise). Ct architecture, c'est le retour des jeux d'instructions beaucoup plus simples (architecture RISC : Reduced Instruction Set Computers), permettant des organisations plus performantes (processeurs multi-scalaires). La cinquime gnration est aussi la gnration des architectures paralllisme massif (plusieurs milliers ou millions de processeurs lmentaires).

Page 9 sur 96

Structure et Fonctionnement des Ordinateurs (2e MIC) - Polycopi du cours

1.3 Le modle Von Neumann


1.3.1 Principe de base
Le modle de machines Von Neumann (1946), caractrise les machines informatiques possdant les lments suivants : 1. Une mmoire squentielle contenant programme (instructions) et donnes, organise comme un vecteur de mots. 2. Une unit de calcul arithmtique ou logique : l'U.A.L. 3. Une unit permettant l'change d'informations avec des dispositifs externes la machine : l'unit d'entres-sorties. 4. Une unit de commande (ou unit de contrle), charge de diriger le tout. On peut schmatiser le fonctionnement de l'unit de commande de la manire suivante : l'unit de commande extrait une instruction de la mmoire; elle analyse l'instruction; elle recherche, dans la mmoire, les donnes sur lesquelles porte l'instruction; elle dclenche l'opration adquate sur l'unit de calcul ou encore l'unit d'entres-sorties; ventuellement elle range le rsultat dans la mmoire. Ce fonctionnement peut tre amlior, en dotant les units de calcul ou d'entres-sorties, d'lments de mmoire rapide : les registres.

1.3.2 L'horloge
Pour synchroniser l'ensemble des dispositifs logiques dans un ordinateur, nous avons besoin d'un chef d'orchestre qui puisse battre rgulirement la mesure. Ce chef s'appelle l'horloge. L'horloge va cadencer le temps avec des battements de mme dure, appels cycle. La dure du cycle de base de l'horloge permet de connatre la frquence de battement. Les microprocesseurs possdent actuellement des frquences d'horloge relativement leves. Les plus rapides arrivent ainsi des frquences de 2Ghz, c'est dire des cycles lmentaires d'une dure de 0.5 nanosecondes! Chaque cycle est numrot et correspond une phase particulire de l'horloge. Au bout d'un certain nombre de cycles appel le nombre de phases de l'horloge, l'horloge redbutera une nouvelle numrotation de cycle. Ainsi, par exemple, la figure 1.1 donne le chronogramme d'une horloge produisant quatre phases (les phases sont dsignes par H 0, H 1, H 2 et H 3).
H o r lo g e H H
0

H
1

H
2

Fig 1.1 : Horloge 4 phases

Horloge Page 10 sur 96

Structure et Fonctionnement des Ordinateurs (2e MIC) - Polycopi du cours

1.3.3 Les registres


On appelle registre, un dispositif de mmorisation de plusieurs informations binaires, la mmorisation de chaque information binaire tant commande par le mme signal de chargement. On distingue en gnral deux types de registres, suivant que le chargement s'effectue sur un niveau d'horloge (Fig. 1.2), ou sur un front d'horloge (Fig. 1.3).
cha rgem ent entre s o r t ie cha rgem ent entre s o r t ie

Fig 1.2 : Chargement d'un registre sur niveau

Fig 1.3 : Chargement d'un registre sur front

Par la suite, nous distinguerons les deux types de registres, comme indiqu dans les figures 1.4 et 1.5.

S ig n a l d e Ch a r g e m e n t

S ig n a l d e Ch a r g e m e n t

Fig 1.4 : Schma de registre avec chargement sur niveau

Fig 1.5 : Schma de registre avec chargement sur front

1.3.4 Les bus


Les informations manipules par l'ordinateur vont transiter d'une unit l'autre en suivant des chemins raliss par des fils lectriques. Ces chemins s'appellent les bus. On appellera largeur du bus, le nombre de fils constituant un chemin, c'est dire en fait, le nombre de chiffres binaires pouvant tre envoys en parallle sur un chemin (un fil vhiculant un chiffre binaire la fois). Par la suite, un simple fil sera dessin par un trait mince, tandis qu'un bus sera symbolis par un trait gras (avec ventuellement, l'indication de la largeur du bus).
n

Bu s d e la r g e u r 1
Fig 1.6 : Schma de bus

Bu s d e la r g e u r n

Page 11 sur 96

Structure et Fonctionnement des Ordinateurs (2e MIC) - Polycopi du cours

1.3.5 La mmoire
On peut assimiler la mmoire un vecteur de cellules. L'adresse est la valeur de l'index permettant de slectionner telle ou telle cellule dans le vecteur (valeur pouvant tre 0, 1, 2, ...). Les principales oprations pouvant tre effectues sur une mmoire sont la lecture et l'criture. Pour raliser ces deux oprations, l'unit de commande inscrit l'adresse d'une cellule dans un registre de la mmoire centrale, registre appel registre adresse (RA), puis demande soit lire le contenu de la cellule adresse, soit crire une information dans la cellule adresse. En gnral ces deux changes d'informations ne se font pas directement, mais par l'intermdiaire d'un registre, appel registre d'change ou encore registre mot (RM). L'unit d'information accessible en une seule opration de lecture est le mot. La taille du mot, c'est dire le nombre de caractres binaires le constituant varie d'un systme l'autre. Cela peut aller de 8 bits (un octet) jusqu' 64 bits sur de grosses machines. On dfinit la capacit de la mmoire comme le nombre de bits qu'elle contient. On parle alors de kilo bits (2 10 bits, c'est dire 1024 bits), de mga bits (2 20 bits, c'est dire 1 048 576 bits), de giga bits (2 30 bits, c'est dire 1 073 741 824 bits). La figure 1.7 reprsente un module mmoire trs simple, comprenant un registre adresse (RA), un registre mot (RM) et une mmoire. Les deux registres RA et RM peuvent tre chargs travers un seul bus amenant l'information depuis l'extrieur du module. Le registre RM peut tre lu, travers ce mme bus, depuis l'extrieur. Le chargement du registre RA se fait sur front, tandis que le chargement du registre RM se fait sur niveau.

Fig 1.7 : Module mmoire Regardons plus attentivement le fonctionnement d'un cycle de lecture ou d'criture dans cette mmoire. Ces deux oprations peuvent tre schmatises par les squences RTL suivantes :

Page 12 sur 96

Structure et Fonctionnement des Ordinateurs (2e MIC) - Polycopi du cours

Opration de lecture RAD adresse RM Mmoire[RAD]

Opration d'criture RAD adresse Mmoire[RAD] RM valeur

L'opration de lecture ne dtruit pas l'information prsente en mmoire. L'opration d'criture dtruit l'information prsente en mmoire et la remplace par la nouvelle valeur.

Mmoire Pour voir plus en dtail ce fonctionnement, nous devons dcrire le chronogramme de chaque commande utilise. Les figures 1.8 et 1.9 donnent un chronogramme possible pour chaque opration.
H o r lo g e Ch a r g e m e n t RA Ch a r g e m e n t RM

Fig 1.8 : Chronogramme de l'opration de lecture sur la mmoire


H o r lo g e Ch a r g e m e n t RA Ch a r g e m e n t RM Tr a n s fe r t RM m m o ir e

Fig 1.9 : Chronogramme de l'opration d'criture sur la mmoire

1.3.6 L'unit arithmtique et logique


L'unit arithmtique et logique peut se prsenter sous diverses formes. Mais d'une manire gnrale, on peut l'assimiler une fonction trois paramtres, l'opration effectuer et ses deux arguments, retournant une valeur rsultat. Les deux arguments viennent en gnral de la mmoire, tandis que le rsultat est destin la mmoire. Pour limiter le transfert d'informations entre mmoire et unit arithmtique et logique, on peut associer celle-ci un ou plusieurs registres. Dans le cas d'un seul registre, il est appel accumulateur et est utilis pour mmoriser le rsultat d'un calcul, mais aussi en tant que premier oprande de l'unit de calcul. La figure 1.10 reprsente un exemple d'unit arithmtique et logique avec un registre accumulateur. Un indicateur Z, compagnon de l'accumulateur, indique si la valeur mmorise par ce dernier, reprsente ou non la valeur zro. L'information vient de, ou va l'extrieur de l'unit, grce un bus unique.

Page 13 sur 96

Structure et Fonctionnement des Ordinateurs (2e MIC) - Polycopi du cours

L'accumulateur tant la fois le premier oprande et le destinataire du rsultat du circuit de calcul, son chargement ne peut se faire que sur front.

Fig 1.10 : Module Arithmtique et Logique Nous supposerons qu'une opration arithmtique (avec chargement du rsultat) peut se faire lors d'une phase de l'horloge. Pour une opration de transfert d'informations venant de l'extrieur vers l'accumulateur, en passant par le circuit de calcul, l'opration effectue correspond additionner la valeur zro. Les diffrentes oprations pouvant tre effectues par cette unit sont mieux dcrites par les chronogrammes des figures 1.11, 1.12 et 1.13 (on suppose que les diffrentes oprations commencent sur le front descendant de l'horloge) :
H o r lo g e S o r t ie U AL d is p o n ib le

Fig 1.11 : Opration de lecture de l'accumulateur


H o r lo g e Ch a r g e m e n t ACC

Fig 1.12 : Opration d'criture de l'accumulateur

Page 14 sur 96

Structure et Fonctionnement des Ordinateurs (2e MIC) - Polycopi du cours

H o r lo g e Ch a r g e m e n t ACC

Fig 1.13 : Opration arithmtique et logique

UAL

1.3.7 L'unit d'entres-sorties


L'unit d'entres-sorties sert d'interface entre le coeur de la machine (l'unit centrale) et les dispositifs priphriques. L'change d'informations entre unit centrale et priphrique peut se faire dans les deux sens comme pour la mmoire, avec des oprations de lecture et des opration d'criture, mais aussi dans un seul sens, suivant le priphrique utilis. Ainsi, pour un clavier, la seule opration possible sera l'opration de lecture. De mme, pour un cran de visualisation, la seule opration possible sera l'criture. Par contre, pour une bande magntique, les deux oprations de lecture et d'criture seront possibles. Pour piloter les priphriques, l'unit d'entres-sorties disposera d'un registre mmorisant l'adresse du priphrique, le registre de slection du priphrique (RS), et d'un registre permettant l'change d'informations entre unit centrale et priphrique, le registre d'change (RE) la manire du registre mot de l'unit de mmoire. Le registre RE sert d'interface entre les priphriques et le bus de sortie vers le reste de l'unit centrale. Sa sortie, cot priphrique, est directement pilote par le registre de slection (comme le montre la figure 1.14). Dans le module d'entres-sorties prsent dans la figure 1.14, le registre de slection est chargement sur front, tandis que le registre d'change est chargement sur niveau.

Page 15 sur 96

Structure et Fonctionnement des Ordinateurs (2e MIC) - Polycopi du cours

Fig 1.14 : Module d'Entres-Sorties Examinons les chronogrammes pour chaque opration (Fig. 1.15 et 1.16). Une opration de lecture ou une opration d'criture sur priphrique commencera par le chargement de l'adresse du priphrique dans le registre RS. Ensuite, au cycle d'horloge suivant, l'information crite sera charge dans le registre d'change, soit partir de l'unit centrale, dans le cas d'une opration de lecture, soit partir du priphrique le cas de l'opration d'criture. Dans le cas de l'opration d'criture, on crit la donne sur le priphrique concern la fin du deuxime cycle. Dans le cas d'une opration de lecture, l'information charge dans le registre d'change est galement envoy vers l'unit centrale (ce qui explique l'utilisation d'un chargement sur niveau pour ce registre d'change).
H o r lo g e Ch a r g e m e n t RS Ch a r g e m e n t RE

Fig 1.15 : Opration de lecture d'un priphrique


H o r lo g e Ch a r g e m e n t RS Ch a r g e m e n t RE

Page 16 sur 96

Structure et Fonctionnement des Ordinateurs (2e MIC) - Polycopi du cours

Fig 1.16 : Opration d'criture d'un priphrique Bien sr, ce schma de fonctionnement est trs simplifi. Nous verrons pas la suite comment cela se passe en ralit.

IO

1.3.8 L'unit de commande


Dans section Principe de base Le modle de machines Von Neumann (1946), caractrise les machines informatiques possdant les lments suivants : Une mmoire squentielle contenant programme (instructions) et donnes, organise comme un vecteur de mots. Une unit de calcul arithmtique ou logique : l'U.A.L. Une unit permettant l'change d'informations avec des dispositifs externes la machine : l'unit d'entres-sorties. Une unit de commande (ou unit de contrle), charge de diriger le tout. On peut schmatiser le fonctionnement de l'unit de commande de la manire suivante : l'unit de commande extrait une instruction de la mmoire; elle analyse l'instruction; elle recherche, dans la mmoire, les donnes sur lesquelles porte l'instruction; elle dclenche l'opration adquate sur l'unit de calcul ou encore l'unit d'entres-sorties; ventuellement elle range le rsultat dans la mmoire. Ce fonctionnement peut tre amlior, en dotant les units de calcul ou d'entres-sorties, d'lments de mmoire rapide : les registres. , nous avons vu le schma de fonctionnement de l'unit de commande. En premier lieu, elle extrait de la mmoire l'instruction qui doit tre excute. A quelle adresse va-telle lire cette instruction? Pour la connatre, il est ncessaire de disposer d'un registre particulier qui, en dbut du cycle d'excution d'une instruction, contiendra cette adresse. C'est le fameux compteur ordinal, appel aussi compteur de programme ou encore Program Counter (PC) dans le jargon anglosaxon. Aprs avoir extrait l'instruction slectionne de la mmoire, l'unit de commande analyse cette instruction. Pour accomplir cette analyse, il faut tre capable de mmoriser l'instruction. On utilise pour cela un registre particulier, appel registre instruction (RI). C'est un registre spcial car il dispose d'une logique combinatoire permettant l'unit de commande d'extraire ou d'analyser certains champs (ou parties) de l'instruction, comme en particulier le code opration. La figure 1.17 montre les deux composantes de ce module de contrle (registre instruction et compteur de programme), ainsi que le module horloge (avec ses quatre phases).

Page 17 sur 96

Structure et Fonctionnement des Ordinateurs (2e MIC) - Polycopi du cours

Fig 1.17 : Unit de contrle Une machine complte pourra tre construite partir des quatre modules (contrle, mmoire, UAL et E/S), en les reliant entre eux grce un bus inter-module (Fig 1.18).

Controle

Page 18 sur 96

Structure et Fonctionnement des Ordinateurs (2e MIC) - Polycopi du cours

Fig 1.18 : Machine complte Avant de poursuivre, nous devons dfinir le format d'une instruction. Nous allons prendre une instruction trs simple, compose de deux champs : un code opration et un paramtre. Les diffrentes instructions que nous allons pouvoir excuter sont: LirePriph, nom du priphrique Lecture du priphrique dsign par le paramtre de l'instruction. Chargement de la donne dans l'accumulateur. Ecriture du contenu de l'accumulateur dans le priphrique dsign par l'instruction. L'accumulateur est charg partir du contenu du mot mmoire dont l'adresse est donne dans l'instruction. Page 19 sur 96

EcrirePriph, nom du priphrique ChargerAcc, adresse mmoire

Structure et Fonctionnement des Ordinateurs (2e MIC) - Polycopi du cours

MmoriserAcc, adresse mmoire Additionner, adresse mmoire

Le contenu de l'accumulateur est crit dans le mot mmoire dont l'adresse est donne dans l'instruction. Le contenu du mot mmoire dont l'adresse est donne dans l'instruction est ajout l'accumulateur . Le rsultat est re-crit dans l'accumulateur. Le contenu du mot mmoire dont l'adresse est donne dans l'instruction est soustrait de l'accumulateur . Le rsultat est re-crit dans l'accumulateur. Le contenu du mot mmoire dont l'adresse est donne dans l'instruction est multipli par l'accumulateur. Le rsultat de la multiplication est re-crit dans l'accumulateur. L'accumulateur est divis par le contenu du mot mmoire dont l'adresse est donne dans l'instruction. Le rsultat de la division est re-crit dans l'accumulateur. Si l'accumulateur contient zro, le contrle de l'excution est donn l'instruction dont l'adresse est donne dans l'instruction. La machine s'arrte.

Soustraire, adresse mmoire

Multiplier, adresse mmoire

Diviser, adresse mmoire

TestZro, adresse instruction

Stop

Nous pouvons maintenant dcrire de manire plus prcise les diffrentes phases de l'excution d'une instruction. Nous nous baserons pour cela, sur le fonctionnement des modules prsents prcdemment. Les quatre phases de l'horloge seront notes par H 0, H 1, H 2 et H 3. Le paramtre de l'instruction sera not par RI Param . Voici le fonctionnement des codes oprations pour chacune des phases de l'horloge. H 0: RA PC H 1: RI RM, PC PC+1 LirePriph & H 2: RS RI Param Recherche de l'instruction. Chargement du registre instruction, et incrmentation du compteur ordinal. La machine continuera lorsqu'un nombre sera tap sur le clavier, ce qui aura pour effet de charger le registre d'change RE.

LirePriph & H 3: ACC RE EcrirePriph & H 2: RS RI Param EcrirePriph & H 3: RE ACC ChargerAcc & H 2: RA RI Param Le nombre est crit sur l'cran.

L'adresse de l'oprande est donne dans l'instruction.

Page 20 sur 96

Structure et Fonctionnement des Ordinateurs (2e MIC) - Polycopi du cours

ChargerAcc & H 3: ACC RM MmoriserAcc & H 2: RA RI Param MmoriserAcc & H 3: RM ACC Additionner & H 2: RA RI Param Additionner & H 3: ACC ACC + RM Soustraire & H 2: RA RI Param Soustraire & H 3: ACC ACC - RM Multiplier & H 2: RA RI Param Multiplier & H 3: ACC ACC * RM Diviser & H 2: RA RI Param Diviser & H 3: ACC ACC /RM TestZro & not Z & H 2: TestZro & Z & H 2: PC RI Param

Ecriture dans l'accumulateur.

L'adresse de l'oprande est donne dans l'instruction. Ecriture dans la mmoire.

L'adresse de l'oprande est donne dans l'instruction. On crit le rsultat.

L'adresse de l'oprande est donne dans l'instruction. On crit le rsultat.

L'adresse de l'oprande est donne dans l'instruction. On crit le rsultat.

L'adresse de l'oprande est donne dans l'instruction. On crit le rsultat. l'accumulateur n'est pas zro, on ne change pas le compteur ordinal. l'accumulateur est zro, on change le compteur ordinal. on ne fait rien. L'ordinateur boucle sur l'instruction stop, indfiniment.

TestZro & H 3 Stop & H 2: PC PC-1 Stop & H 3:

Comme on peut le constater, pratiquement tous les codes oprations ncessitent quatre cycles d'horloge pour s'excuter. Une exception cependant pour le code opration TestZro qui pourrait s'excuter en seulement trois cycles. Cependant, pour simplifier la conception de la machine, nous avons laiss un cycle qui ne fait rien (lors de la troisime phase de l'horloge), pour conserver les quatre cycles pour chaque code opration.

Machine

Page 21 sur 96

Structure et Fonctionnement des Ordinateurs (2e MIC) - Polycopi du cours

La table 1.1 montre un petit programme pouvant tre excut par cette machine. adresse 0 1 2 3 4 5 6 7 8 9 10 11 instruction LirePriph clavier TestZro 7 MmoriserAcc 10 LirePriph clavier Diviser 10 EcrirePriph cran Stop ChargerAcc 11 EcrirePriph cran Stop 0 "?"

Table 1.1 : Exemple de programme Pour pouvoir excuter un tel programme, il faut l'avoir pralablement charg dans la mmoire principale, aux adresses qui conviennent. Comment le charger ? C'est le rle d'un programme particulier appel le chargeur. Son travail est de lire le programme sur un support externe, puis de l'inscrire dans la mmoire. La question que l'on peut se poser est qui charge le chargeur?. En gnral, on dispose d'un trs petit programme le microchargeur capable d'effectuer ce chargement initial partir d'un ruban perfor, comme c'tait le cas dans les premires machines, ou partir d'une zone fixe sur un disque dur, comme c'est le cas dans la plupart des machines actuelles. Ce microchargeur n'a pas besoin d'tre charg puisqu'il est directement cod dans le matriel (soit de manire cable, soit rsidant dans une mmoire non volatile, par exemple de type Read Only Memory).

1.3.9 Les formats d'instruction


Nous venons de prsenter un jeu d'instructions trs simple o chaque instruction se prsente sous la forme d'un code opration accompagn d'un oprande. On dit alors que l'instruction possde un format une adresse, mme si l'oprande ne correspond pas forcment l'adresse d'un mot de la mmoire, comme c'est le cas pour les oprations d'entres-sorties. Format 1 adresse :

Page 22 sur 96

Structure et Fonctionnement des Ordinateurs (2e MIC) - Polycopi du cours

Avec un tel format, il est ncessaire de disposer d'un registre accumulateur servant alors de deuxime oprande lors des oprations arithmtiques et logiques qui correspondent trs souvent des oprateurs binaires. Il existe d'autres possibilits suivant que l'on utilise deux, trois ou encore quatre adresses. Dans le format deux adresses, la deuxime adresse pourra tre l'adresse d'un second oprande. Le premier oprande pourra galement recevoir le rsultat. Format 2 adresses:

Une opration possible peut ainsi tre : oprande 1 oprande 1 opration oprande 2 Avec un format trois adresses, on poura placer le rsultat d'un oprateur binaire dans une adresse destinataire diffrente des deux adresses d'oprandes : Format 3 adresses:

En poussant ce raisonnement, on peut imaginer un format 4 adresses, en autorisant l'utilisation d'une adresse de branchement, par exemple dans une opration arithmtique. Nous obtiendrions alors le format suivant : Format 4 adresses:

Cependant, l'intrt d'un tel format est trs limit, notamment si l'on regarde l'apport de complexit que cela entraine. Dans les quatre formats que nous venons de voir, l'instruction utilise soit des adresse explicites (fournies par l'instruction), soit des adresses implicites (par exemple l'accumulateur). Il est galement possible d'utiliser dans une machine, des instructions n'utilisant que des adresses implicites. C'est le format zro adresse : Format 0 adresse:

Page 23 sur 96

Structure et Fonctionnement des Ordinateurs (2e MIC) - Polycopi du cours

Les oprandes doivent alors tre mmorises dans une pile. L'instruction pourra ainsi prendre les deux oprandes dans le sommet de la pile et le sous-sommet, puis remettre le rsultat dans la pile. L'intrt de cette approche rside principalement dans la rduction de la taille du code machine gnr par le compilateur. Ce genre de machine eut, en son temps, un certain succs. Mais l'utilisation de mmoire de grande capacit, et surtout l'utilisation de registres gnraux ont rapidement limit l'intrt de ces machines.

1.3.10 Exemple de machine


La figure 1.19 montre le coeur d'une machine type PC. On peut facilement distinguer les divers composants que nous venons de voir: le processeur situ en bas droite (il contient l'unit de contrle, et l'unit arithmtique et logique), une mmoire rapide (Cache Mmoire), situe juste au dessus du processeur, la mmoire principale (organise sous forme de barrettes), situe au dessus de la mmoire rapide, le bus, dont les connecteurs se trouvent sur la partie gauche et le gestionnaire (Chipset) entre les connecteurs et la mmoire rapide, deux cartes spcialises (une carte graphique et une carte son) situes sur deux connecteurs du bus.

Fig 1.19 : Exemple de machine

Page 24 sur 96

Structure et Fonctionnement des Ordinateurs (2e MIC) - Polycopi du cours

1.4 Les architectures


Dans le pass, le terme d'architecture des ordinateurs faisait seulement rfrence la dfinition du jeu d'instructions. Les autres aspects de la conception des ordinateurs, c'est dire la partie matrielle, tait appele implmentation, terme utilis avec une connotation plutt pjorative. L'apparition de familles de machines, d'abord avec la srie 360 d'IBM, puis la srie VAX de Digital Equipment Corporation, ainsi que la srie SPARC de SUN, jusqu'au rcent processeur Alpha du mme Digital Equipment Corporation montre que la restriction du terme architecture au seul jeu d'instructions d'une machine est trs insuffisante. J. L. Hennessy et D. A. Patterson prfrent dcomposer l'architecture d'un ordinateur suivant trois composantes : l'architecture du jeu d'instructions, l'organisation de la machine, la ralisation matrielle. L'architecture du jeu d'instructions concerne la partie visible par le programmeur, et plus prcismment, le spcialiste du langage d'assemblage. C'est la frontire entre le logiciel et le matriel, domaine rserv aux concepteurs de compilateurs ou de systmes d'exploitation. L'organisation de la machine dcrit les aspects de haut niveau (par rapport au simple matriel), comme le systme de mmorisation, ou encore la structure du bus. La ralisation matrielle concerne la logique dtaille de la machine ou encore la technologie de conditionnement. Par exemple, imaginons trois machines excutant le jeu d'instructions dfini prcdemment. La premire correspond au fonctionnement prsent prcdemment. La deuxime utilise une technologie plus rapide et une frquence d'horloge plus leve. La troisime possde la mme technologie et la mme horloge que la seconde, mais utilise une mmoire organise en deux bancs, permettant la lecture de deux mots d'adresses conscutives, en un seul cycle de lecture. Ces trois architectures ont la mme architecture du jeu d'instructions. La premire et la deuxime ont une organisation identique mais elles diffrent au niveau de la ralisation matrielle. La deuxime et la troisime ont deux organisations lgrement diffrentes.

1.5 Mesures de performances


La notion de performance pour un ordinateur est une notion trs relative. Bien qu'elle est souvent lie la vitesse de calcul intrinsque de la machine, elle n'a pas la mme signification suivant le critre considr. Pour l'utilisateur devant sa console, la performance pourra correspondre au temps de rponse de la machine, appel aussi temps d'excution. Pour le responsable d'un centre d'informatique, la performance pourra correspondre la quantit de travail effectu par la machine, dans un temps donn. Pour un gestionnaire, la performance pourra tre lie la capacit de la machine grer de grandes quantits d'informations. Pour l'utilisateur d'un supercalculateur, la performance pourra tre synonyme du nombre d'oprations flottantes pouvant tre effectues par la machine en une seconde (Mflops : Mega Floating point Operations Per Second). Sur quels critres pouvons nous comparer deux machines? Une premire ide serait de regarder la frquence de l'horloge de base. Plus celle-ci est leve, plus la machine est rapide. Ceci est vrai condition de comparer des machines assez semblables dans la conception, par exemple un processeur Page 25 sur 96

Structure et Fonctionnement des Ordinateurs (2e MIC) - Polycopi du cours

Pentium 200Mhz et un processeur Pentium 266Mhz. Ce n'est plus vrai si les machines ont des architectures diffrentes. La deuxime ide consiste comparer le nombre d'intructions machines (MIPS : Million Instructions Per Second). La comparaison peut tre correcte condition que les instructions des deux machines possdent le mme niveau smantique. Ainsi, il est illusoire de comparer une machine de type RISC (Reduced Instructions Set Computer) une machine de type CISC (Complex Instructions Set Computer) par la simple comparaison du nombre d'instructions pouvant tre excutes par seconde; une instruction d'une machine CISC peut faire le mme travail que plusieurs instructions d'une machine RISC. La notion mme de MIPS peut galement tre toute relative lorsqu'on essaye de comparer deux machines ayant des jeux d'instructions diffrents. Ainsi, lorsque la machine VAX-11/780 a t annonce, elle a t compare une machine IBM 370/158 qui pouvait excuter un million d'instructions par seconde. Comme ces deux machines traitaient les mmes programmes dans le mme temps, les commerciaux de DEC ont prsents le VAX-11/780 comme tant une machine 1 MIPS. Par la suite, les performances de nouvelles machines ont t mesures par rapport au VAX-11/780 qui tait devenue une machine de rfrence. Ainsi, une machine traitant les programmes de test cinq fois plus vite que le VAX-11/780, tait considre comme tant une machine 5 MIPS. Ce n'est que quatre ans plus tard qu'on s'est aperu que le VAX-11/780 excutait, en environnement temps partag, en moyenne 0,5 millions d'instructions par seconde. Avec l'avnement des super-ordinateurs utiliss pour le calcul scientifique, le MIPS n'a plus t une mtrique adapte. La notion de mgaflops a alors t invente. L aussi, publicit oblige, les nouvelles machines taient prsentes sous leur meilleur profil, c'est dire la puissance dans les conditions idales; c'est le MFLOPS crte. Ainsi, une machine de 100 processeurs, chaque processeur pouvant thoriquement effectuer un million d'oprations flottantes par seconde, tait considre comme une machine 100 MFLOPS, mme s'il est trs difficile, voire impossible, de traiter en permanence dans un programme, 100 oprations flottantes en parallle. Le moyen le plus sr de comparer deux machines est encore de comparer les temps d'excution sur les mmes programmes. Plutt que d'excuter des programmes complets, il est plus simple de dfinir de petits programmes reprsentatifs du traitement ralis par la plupart des programmes utiliss sur les machines. Plusieurs programmes appels Benchmark ont t crits dans ce but (Whetstone, Dhrystone, boucle Livermore). Dans les annes 80, le groupe SPEC (System Performance and Evaluation Cooperative) a t cr pour tablir une base stable de benchmark : les programmes SPEC. Pour tre vraiment reprsentatifs, ces programmes doivent tre excuts sous certaines conditions, en particulier au niveau des options de compilation pouvant tre utilises.

Page 26 sur 96

Structure et Fonctionnement des Ordinateurs (2e MIC) - Polycopi du cours

Chapitre 2

Code et numration
2.1 Codage
2.1.1 Principe du codage
Soit I un ensemble d'lments d'informations (nombres, objets, ...). Soit B un ensemble fini de symboles b 1, b 2, ..., b n appel alphabet. Les symboles b i sont appels caractres de l'alphabet B. Coder I consiste faire correspondre chaque lment de I, un ensemble ordonn de symboles (appel mot) appartenant B. Le cardinal de l'ensemble B est appel la base du codage. Suivant le nombre de caractres utiliss pour constituer le mot, on parlera soit de codage longueur fixe, soit de codage longueur variable. Dans un codage longueur fixe, tous les mots ont le mme nombre de caractres. Comme exemples de codages longueur fixe, nous avons : le numro d'un individu pour la scurit sociale, le numro de tlphone d'un particulier (10 chiffres), le code postal d'une adresse en France. Si le nombre d'lments coder est infrieur b n (o b est le nombre de caractres constituant un mot du code), alors on dit que le codage est redondant. Il existe alors au moins un lment associ plusieurs codes. Si le nombre d'lments coder est gal b n, alors on dit que le codage est irredondant. Avec une base b , on peut reprsenter b n lments grce un codage longueur fixe n; il existe alors b n! codages possibles (cf. exercice). Dans un codage longueur variable, les mots ont des longueurs diffrentes. Comme exemples de codages longueur variable, nous avons: l'alphabet morse (les lettres les plus utilises correspondent aux codes les plus courts), les numros de tlphone dans le monde, le codage d'Huffman, l'ADN. Le codage d'Huffman est une codage optimal en place, bas sur les frquence des lments coder. L'lment le plus frquemment utilis sera associ au code le plus court, tandis que l'lment le moins frquemment utilis sera associ au code le plus long. Par exemple, si on veut coder 10 lments avec un alphabet de 3 caractres (a, b, c), suivant la frquence d'utilisation de ces lments, nous pourrions avoir : Page 27 sur 96

Structure et Fonctionnement des Ordinateurs (2e MIC) - Polycopi du cours

Elments coder lment 1 lment 2 lment 3 lment 4 lment 5 lment 6 lment 7 lment 8 lment 9 lment 10

Frquences d'utilisation 40% 20% 12% 8% 5% 5% 5% 2% 2% 1%

Code a b ca cb cca ccb ccca cccb cccca ccccb

La longueur moyenne de ce code est alors gale : 1 (40+20)/(100) +2 (12+8)/(100) +3 (5+5)/(100) +4 (5+2)/(100) +5 (2+1)/(100) = 1,73 caractre Il est galement possible d'utiliser plusieurs bases diffrentes pour dfinir un code. Le codage de l'immatriculation des automobiles en est un parfait exemple.

2.1.2 Codage binaire


Dans le codage binaire, on utilise un alphabet possdant seulement 2 caractres: {0,1}, ce qui offre un certain nombre d'avantages : c'est l'alphabet le plus simple, il est facile de construire des dispositifs lectroniques 2 tats {0v, +5v}, {ferm, ouvert}, ... il conduit une cot de reprsentation proche de l'optimum (cf. exercice). Le caractre binaire s'appelle le bit, mot qui vient de Binary Digit. Pour faire un systme de numration binaire, il suffit de reprsenter une valeur par une succession de chiffres (0 ou 1). La manire la plus naturelle, comparable au systme de numration usuel en base 10, consiste donner chaque chiffre de droite gauche, un poids gal une puissance de 2, partir de 2 0. C'est le codage binaire naturel : a n-1 a n-2 ... a 2 a 1 a 0 = a n-12 n-1+ a n-22 n-2 +... +a 22 2 +a 12 1+ a 02 0 Par exemple, les premiers entiers naturels seront cods, sur 5 bits, de la manire suivante : N 0 1 2 Page 28 sur 96 code 00000 00001 00010

Structure et Fonctionnement des Ordinateurs (2e MIC) - Polycopi du cours

3 4 5 ...

00011 00100 00101 ...

Cependant, suivant l'utilisation que l'on veut en faire, le code binaire naturel peut prsenter des inconvnients, comme le montrent les exemples ci-dessous.

2.1.2.1 Reprsentation de grandeurs physiques variation continue


Imaginons le dispositif suivant: un disque conducteur, sur lequel se trouvent des pistes base de matire isolante, lisibles grce des balais en contact avec le disque (A i):

Fig 2.1 : Disque codeur

Disque codeur Les signaux reus sur les balais traduisent une des huit positions angulaires du disque. L'information donne par A 2 A 1 A 0 code directement la position angulaire. Le problme apparait lorsque le passage d'une position la suivante implique le changement de plus d'un chiffre dans la position angulaire. Par exemple, dans le passage de la valeur 1 (001) la valeur 2 (010). Ce changement de plus d'un chiffre la fois peut induire des valeurs transitoires indsirables, si les chiffres n'voluent pas exactement en mme temps :

Page 29 sur 96

Structure et Fonctionnement des Ordinateurs (2e MIC) - Polycopi du cours

Fig 2.2 : Changement d'tat La solution ce problme consiste utiliser un code binaire rflchi (appel aussi, code de gray ) qui a justement la proprit suivante : deux mots conscutifs de ce code on une distance de 1 (la distance entre deux mots tant dfinie comme tant le nombre de caractres diffrents entre ces deux mots). Dans l'exemple ci-dessus, le codage des huit positions angulaires serait donn par: Position 0 1 2 3 4 5 6 7 Code 000 001 011 010 110 111 101 100

On peut galement remarquer que le code est cyclique, c'est dire que le premier mot et le dernier sont adjacents. La formation du code est simple. Le code binaire rflchi n correspondant au nombre binaire naturel N est donn par la formule suivante : n = (N (2 N))/(2) o est le ou exclusif, et o la division est une division entire. Le dcodage ou opration inverse correspond N = n k-1(2 k-1) ... n 1(2 2-1)n 0(2 1-1) o on attribue alternativement + et - aux diffrents chiffres 1, en commenant par + pour le chiffre 1 de plus fort poids. Par exemple, le code de gray 110 correspond 2 3 - 2 2 , c'est dire quatre.

Page 30 sur 96

Structure et Fonctionnement des Ordinateurs (2e MIC) - Polycopi du cours

2.1.2.2 Dtection de code erron


Une transformation inopportune de la valeur binaire 1 en 0, ou de 0 en 1, dans un dispositif lectronique est une erreur souvent frquente en informatique. En voici quelques exemples: Soit deux ordinateurs distants, communiquant entre eux grce une liaison tlphonique. Lors de la transmission, des altrations peuvent se produire sur l'information change. Par exemple, le message mis 011010 ... peut se transformer la rception en 010010 ... La transformation d'un 1 en 0, ou d'un 0 en 1 est une erreur de transmission. Une dfaillance dans un circuit lectrique peut introduire une telle erreur. Les rayons cosmiques peuvent faire basculer une information binaire dans une mmoire. Il est ncessaire de dtecter d'ventuelles erreurs. La seule possibilit est d'utiliser un code redondant, c'est dire un ensemble de mots dont seule une partie est dclare valide. Il existe plusieurs codage permettant de dtecter une erreur ventuelle: Bit de parit (paire ou impaire). on rajoute l'information coder, un lment binaire de manire obtenir un mot ayant un nombre pair (ou impair) de 1. Ainsi, avec une parit paire, nous aurons les codages suivants: 0110 --> 0 0110 1011 --> 1 1011 Pour savoir si un code est valide, il suffit alors de compter le nombre de bits 1 et vrifier si ce nombre est pair (ou impair). Code 2 parmi 5 Dans ce code, chaque mot de 5 bits contient seulement 2 bits 1. C'est un code non pondr (un code pondr tant un code o chaque chiffre binaire est dot d'un poids) : Figure 2.3.

Fig 2.3 : Code 2 parmi 5 Le code Biquinaire. c'est un code 2 parmi 7, mais pondr. Les poids successifs des chiffres sont : 5 0 4 3 2 1 0 (Figure 2.4).

Page 31 sur 96

Structure et Fonctionnement des Ordinateurs (2e MIC) - Polycopi du cours

Fig 2.4 : Code Biquinaire

Bit de parit

2.1.3 Codage des donnes alphanumrique


Face aux multiples possibilits de codage, il est ncessaire de se mettre d'accord pour dcider l'utilisation de tel code ou tel autre, c'est dire pour dfinir une norme. C'est cette fin que plusieurs organismes internationaux ont t crs. Les plus reprsentatifs sont ISO : International Standard Organisation, CCITT : Comit Consultatif International Tlgraphique et Tlphonique. Les caractres alpha-numriques ont fait l'objet de beaucoup de standardisation, suivant l'usage que l'on veut en faire.

2.1.3.1 Code Baudot


Le telex a t l'un des premiers codages internationaliss avec le code Baudot, code 5 moments (c'est dire, mots de 5 bits). Il permet 60 combinaisons possibles en utilisant deux modes : le mode lettre et le mode chiffre. Deux codes particuliers permettaient de spcifier le mode utilis. Les 30 autres codes (2 5-2) avaient deux interprtations diffrentes, suivant le mode dans lequel ils taient utiliss.

2.1.3.2 Code Hollerith


C'est l'ancien codage utilis dans les cartes perfores. Celles-ci contenaient 12 lignes de 80 colonnes. Un caractre alpha-numrique utilisait de une deux perforations sur une colonne.

2.1.3.3 Code ASCII


C'est le codage des caractres alphanumriques le plus utilis (Figure 2.5). C'est un code 7 moments. ASCII est l'abrviation de American Standard Code for Information Interchange.

Page 32 sur 96

Structure et Fonctionnement des Ordinateurs (2e MIC) - Polycopi du cours

bi t s 3 2 1 0
0000 000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111

bi t s 6 5 4

001 010 011 100 101 110 111

NUL SOH STX ETX EOT ENQ ACK BEL BS HT LF VT FF DLE DC1 DC2 DC3 DC4 NAK SYN ETB CAN EM SUB ESC FS , $ ( ) + % & # ! sp * " ' ; : < 5 9 6 0 3 8 1 4 7 2 @ J C G A D E F H I K L B Q [ \ U S P R T V W X Y Z g a e c j b d f h k l i ` y p q | u s v w x z r { t

CR GS = M ] m }

SO RS . > N ^ n ~

SI US / ? O _ o DEL

Fig 2.5 : Caractres ASCII

2.1.3.4 Code EBCDIC


C'est un systme de codage 8 moments dfini par IBM, pour faciliter le passage au code Hollerith. EBCDIC est l'abrviation de Extended BCD Interchange Code.

2.1.3.5 Unicode
C'est le systme de codage le plus rcent et le plus complet. Il contient pratiquement tous les alphabets existants dans le monde. La version 5.2 comprend 107_361 caractres diffrents pris dans les alaphabets/signes/symboles utiliss dans le monde. A ces caractres s'ajoutent 860_000 codes non utiliss. Ces codes sont organiss en plan multilangages (BMP) (plan 0 [U+0000, U+FFFF], plan 1 15 [U+10000, U+FFFFF], plan 16 [U+100000, U+10FFFF]. Les diffrents plans comportent plusieurs familles parmi lesquelles nous trouvons le Tibtain, le Thai, l'Hebreu, le Grec, le Cyrillic, ... Vous pouvez voir les diffrents caractres sur le site http://www.unicode.org/charts/ C'est le codage de caractres retenu par le langage de programmation Java. Tous ces caractres peuvent tre cods suivant trois standards universels (Universal Transformation Format) : UTF-8, UTF-16, UTF-32.

2.1.4 Codage des chiffres


Certaines machines anciennes utilisaient un codage des nombres mi-chemin entre le codage binaire naturel et le codage dcimal usuel. C'est le code DCB: Dcimal Cod Binaire (BCD en anglais). Les nombres taient reprsents avec la notation dcimale usuelle, tandis que chaque chiffre tait cod en binaire sur quatre bits. N 0 1 2 3 4 Code 0000 0001 0010 0011 0100 Page 33 sur 96

Structure et Fonctionnement des Ordinateurs (2e MIC) - Polycopi du cours

5 6 7 8 9

0101 0110 0111 1000 1001

Table 2.1 : Codage DCB Ainsi, le nombre dcimal 1997 se code en DCB par 0001 1001 1001 0111. L'avantage d'une telle reprsentation est qu'elle limine toute conversion dcimal --> binaire, ce qui pouvait tre trs intressant autrefois dans les programmes de gestion qui utilisaient beaucoup d'entres-sorties de valeurs numriques. L'inconvnient majeur est la ncessaire correction lorsque, suite une addition, on obtient un code non valide (1010, 1011, 1100, 1101, 1110, 1111), puisque dans ce cas, il faut ajouter 6 au nombre obtenu. Pour simplifier le test de la correction, un autre code a t jadis utilis : le code en excs de trois. C'est le principe du DCB mais en utilisant, pour le codage des chiffres, le code binaire naturel du chiffre augment de trois. Le code obtenu n'est pas un code pondr. N 0 1 2 3 4 5 6 7 8 9 Code 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100

Table 2.2 : Code excs de 3 De cette manire, il est ncessaire de toujours corriger le rsultat d'une addition, mais la rgle utiliser est plus symtrique que pour la notation DCB : Si il n'y a pas de retenue, alors soustraire 3, sinon ajouter 3 sur chaque chiffre. Exemples :

Page 34 sur 96

Structure et Fonctionnement des Ordinateurs (2e MIC) - Polycopi du cours

2.2 Systme de numration


Le systme de numration le plus rpandu sur la terre est le systme dcimal. Pourquoi ? peut-tre tout simplement parce que l'homme a dix doigts! Les ordinateurs n'ont pas de doigts, mais des portes logiques qui peuvent avoir deux tats : ouvert et ferm. Ils utilisent le systme binaire.

2.2.1 Reprsentation d'un nombre en numration pondre


Tout nombre A peut s'exprimer dans un systme de numration base b fixe, au moyen d'une suite ordonne de b symboles, prenant leurs valeurs dans l'ensemble [0, b-1]. Les lments de cette suite sont les chiffres de la base. L'expression d'un nombre A dans cette base b sera de la forme : A = (a na n-1... a 1a 0,a -1 a -2 ... a -m) b le caractre , permet de sparer la partie entire (partie gauche) de la partie fractionnaire (partie droite). Lorsqu'on la base n'est pas indique, c'est par dfaut la base dcimale. Pour une base b donne, cette reprsentation est unique. Une numration pondre signifie qu' chaque position est associ un poids. La valeur du nombre est obtenue alors par A = a nb n+a n-1b n-1+...+a 1b 1+a 0b 0+a -1b -1+ a -2b -2+... Les principales bases utilises sont : pour compter avec les dix doigts. dcimale binaire octale que des 0 ou des 1. base 8. Utilise sur certaines machines, car cela correspondait la taille des diffrents paramtres d'une instruction machine, et c'tait un moyen trs simple de lire et dcoder l'information (PDP 11). base 16. Elle est plus facile manipuler que la base 2, car la mme information ncessite quatre fois moins de chiffre qu'en binaire. De plus, la conversion binaire - hexadcimal est vidente.

hexadcimale

2.2.2 Changement de base b vers 10


La partie entire du nombre se traite diffremment de la partie fractionnaire. Partie entire Soit la partie entire du nombre A prcdent. Elle peut s'crire de deux manires diffrentes: Pondration a b n+a b n-1+...+a b 1+a b 0 Pour faire le changement de base, il suffit
n n-1 1 0

de multiplier chaque chiffre par le poids correspondant, puis faire la somme de toutes les valeurs obtenues. Exemple : le nombre binaire (100110011) 2 donnera en dcimal : 1 2 8+1 2 5+1 2 4+1 2 1+1 2 0 = 256 +32+16+2+1 = 307 Page 35 sur 96

Structure et Fonctionnement des Ordinateurs (2e MIC) - Polycopi du cours

Factorisation

((...(a nb+a n-1)b+...)b+a 1)b+a 0 Exemple : le nombre binaire (100110011) 2 donnera en dcimal : (((((((1 2+0) 2+0) 2+1) 2+1) 2+0) 2+0) 2+1) 2+1 = ((((((2 2+0) 2+1) 2+1) 2+0) 2+0) 2+1) 2+1 = (((((4 2+1) 2+1) 2+0) 2+0) 2+1) 2+1 = ((((9 2+1) 2+0) 2+0) 2+1) 2+1 = (((19 2+0) 2+0) 2+1) 2+1 = ((38 2+0) 2+1) 2+1 = (76 2+1) 2+1 = 153 2+1 = 307

Partie fractionnaire Comme pour la partie entire, nous aurons deux mthodes suivant la manire de reprsenter la partie fractionnaire : Pondration a b -1+a b -2+...+ a b -n+1 + a b -n
-1 -2 -n+1 -n

Pour faire le changement de base, il suffit de multiplier chaque chiffre par le poids correspondant, puis faire la somme de toutes les valeurs obtenues. Exemple : le nombre binaire (0,111001) 2 donnera en dcimal : 1 2 -1+1 2 -2+1 2 -3+1 2 -6 = 0,5 + 0,25+0,125+0,015625 = 0,890625 Factorisation (a -1+(a -2+(...+ (a -n+1+ a -nb -1)b -1 ...)b -1)b -1) b -1 Exemple : le nombre binaire (0,111001) 2 donnera en dcimal : (1+ (1+ (1+(0+(0+1 0,5) 0,5) 0,5) 0,5) 0,5) 0,5 = (1+ (1+ (1+(0+0,5 0,5) 0,5) 0,5) 0,5) 0,5 = (1+ (1+ (1+0.25 0,5) 0,5) 0,5) 0,5 = (1+ (1+ 1.125 0,5) 0,5) 0,5 = (1+ 1,5625 0,5) 0,5 = 1,78125 0,5 = 0,890625 Remarque : le changement de base peut quelquefois se faire avec une perte de prcision. C'est le cas lorsque le nombre n'a pas une reprsentation exacte dans la base b choisie. Par exemple, 0,2 s'crit en base 2 : 0,0011001100110011...

Page 36 sur 96

Structure et Fonctionnement des Ordinateurs (2e MIC) - Polycopi du cours

2.2.3 Changement de base 10 vers b


Comme pour le changement de base b --> 10, nous devons procder diffremment pour la partie entire et pour la partie dcimale du nombre.

2.2.3.1 Partie entire


Dans la base b, nous devons donc trouver les a i constituant le nombre A. Ici aussi, nous pouvons oprer de deux manires, suivant la reprsentation du nombre. Pondration Comme nous avons a b n+a b n-1+...+a b 1+a b 0 , nous voyons que nous
n n-1 1 0

pouvons obtenir le chiffre a n en faisant la division entire de A par b n . Le reste de cette division donnera alors a n-1b n-1+...+a 1b 1+a 0b 0 . Il suffit alors de rpter l'opration pour obtenir les autres chiffres. Exemple : Calculons la reprsentation binaire de 1997. 1997 973 461 205 77 13 13 13 5 1 1 = 1 2 10 + 973 = 1 2 9 + 461 = 1 2 8 + 205 = 1 2 7 + 77 = 1 2 6 + 13 = 0 2 5 + 13 = 0 2 4 + 13 = 1 23 + 5 = 1 22 + 1 = 0 21 + 1 = 1 20 + 0 --> a 10 = 1 --> a 9 = 1 --> a 8 = 1 --> a 7 = 1 --> a 6 = 1 --> a 5 = 0 --> a 4 = 0 --> a 3 = 1 --> a 2 = 1 --> a 1 = 0 --> a 0 = 1

Donc le nombre 1997 s'crit aussi (11111001101) 2 . Factorisation Nous pouvons aussi crire que A = ((...(a nb+a n-1)b+...)b+a 1)b+a 0 . Le chiffre a 0 est donc le reste de la division entire de A par b. Si nous considrons le rsultat de cette division entire, nous obtenons (...(a nb+a n-1)b+...)b+a 1 . Donc, pour obtenir les autres chiffres de la reprsentation, il suffit de recommencer ce calcul sur le rsultat de la division prcdente. Par exemple, pour 1997, nous aurons : 1997 998 499 = 998 2 + 1. = 499 2 + 0. = 249 2 + 1. --> a 0 = 1 --> a 1 = 0 --> a 2 = 1 Page 37 sur 96

Structure et Fonctionnement des Ordinateurs (2e MIC) - Polycopi du cours

249 124 62 31 15 7 3 1

= 124 2 + 1. = 62 2 + 0. = 31 2 + 0. = 15 2 + 1. = 7 2 + 1. = 3 2 + 1. = 1 2 + 1. = 0 2 + 1.

--> a 3 = 1 --> a 4 = 0 --> a 5 = 0 --> a 6 = 1 --> a 7 = 1 --> a 8 = 1 --> a 9 = 1 --> a 10 = 1

2.2.3.2 Partie fractionnaire


La mthode pour transformer la partie fractionnaire d'un nombre de la base dcimale dans une base b est trs simple. Dans la base b, pour la partie fractionnaire, nous avons : a -1b -1+a -2b -2+...+ a -n+1 + a -nb -n n+1b Si nous multiplions cette quation par b, nous obtenons : a -1+a -2b -1+...+ a -n+1b -n+2 + a -nb -n+1 Nous obtenons donc un nouveau nombre dont la partie entire est a -1 et la partie fractionnaire est a -2b -1+...+ a -n+1b -n+2 + a -nb -n+1 Donc nous avons mis en vidence le premier chiffre de la partie fractionnaire. Pour obtenir les autres chiffres, il suffit de recommencer ce calcul sur la partie fractionnaire du nombre obtenu. Exemple : le nombre 0,890625 donnera en binaire : 0,890625 2 0,78125 2 0,5625 2 0,125 2 0,25 2 0,5 2 = 1,78125 = 1,5625 = 1,125 = 0,25 = 0,5 =1 --> a -1 = 1 --> a -2 = 1 --> a -3 = 1 --> a -4 = 0 --> a -5 = 0 --> a -6 = 1

Remarque : Un nombre qui s'crit en dcimal avec une infinit de chiffres peut trs bien s'crire avec un nombre fini de chiffres, en utilisant une base approprie. Par exemple, (1)/(3) = 0,333... = (0,1) 3.

Nombres binaires non signs

Page 38 sur 96

Structure et Fonctionnement des Ordinateurs (2e MIC) - Polycopi du cours

2.2.4 Reprsentation des nombres ngatifs sur n bits


Il existe quatre manires de reprsenter des nombres ngatifs : Signe et valeur absolue, Complment 1, Complment 2 et avec excs.

2.2.4.1 Signe et valeur absolue


Le chiffre de plus fort poids (le plus gauche) reprsente le signe : 0 pour un nombre positif, 1 pour un nombre ngatif. Les n-1 nits de faible poids correspondent alors la valeur absolue du nombre. Exemple : +14 se reprsente en binaire sur 6 bits par 001110 -14 se reprsente en binaire sur 6 bits par 101110 Avec ce type de reprsentation, il existe deux reprsentations possible pour la valeur zro : +0 et -0. L'intervalle de valeurs pouvant tre reprsentes sur n bits est [-2 n-1 + 1, 2 n-1 - 1 ]

2.2.4.2 Complment 1
Pour reprsenter un nombre ngatif, on prend la reprsentation binaire de la valeur absolue, puis on inverse chaque bit sparment. Par exemple, -14 se reprsente sur 6 bits par 110001. Avec ce type de reprsentation sur n chiffres, la somme d'un nombre ngatif et de sa valeur absolue est gale 2 n-1, c'est dire avec les n bits 1. En complment 1, nous avons donc deux reprsentations de 0 : 00...000 et 11...111. L'intervalle de valeurs pouvant tre reprsentes sur n bits est [-2 n-1 + 1, 2 n-1 - 1 ]

2.2.4.3 Complment 2
Pour reprsenter un nombre ngatif en complment 2, il suffit de prendre la reprsentation du nombre en complment 1, puis de lui ajouter 1. Par exemple, -14 se reprsente sur 6 bits par 110010. Avec le complment 2, nous n'avons qu'une seule reprsentation de zro puisque la somme d'un nombre et de son oppos donnera 2 n , c'est dire 0 si on ne conserve que n bits. L'intervalle de valeurs pouvant tre reprsentes sur n bits est [-2 n-1 , 2 n-1 - 1 ]

2.2.4.4 Avec excs


On ajoute au nombre la valeur de l'excs et on utilise la reprsentation binaire du nombre obtenu comme un nombre non sign ordinaire. Il faut toutefois que le nombre reprsenter soit suprieur ou gal -excs. Par exemple, -14 se reprsente sur 6 bits avec un excs de 2 5 par 010010. Comme valeur typique de l'excs, pour une reprsentation sur n bits, on trouve souvent 2 n-1 . Dans ce cas (et ce cas seulement), le bit de poids fort indique le signe du nombre : 0 si ngatif, 1 si positif ou nul. L'avantage de cette reprsentation est de conserver une continuit dans la numration. Page 39 sur 96

Structure et Fonctionnement des Ordinateurs (2e MIC) - Polycopi du cours

L'intervalle des valeurs pouvant tre reprsentes sur n bits, avec excs de 2 n-1 est [-2 n-1, 2 n-1 - 1]

Nombres binaires signs

2.2.5 Reprsentation des nombres rels


Il existe plusieurs reprsentations possibles des nombres rels: en virgule fixe : on utilise toujours le mme nombre de chiffres pour la partie dcimale. C'est utilis, par exemple, dans les caisses enregistreuses des magasins, puisque seulement deux chiffres sont ncessaires aprs la virgule (pour les centimes). La reprsentation peut alors tre quivalente celle des entiers (si on raisonne en centimes, il n'y a plus que des entiers manipuls). codage par le logarithme. C'est une possibilit qui tend simplifier les oprations de multiplication ou de division. couple (numrateur, dnominateur). Ce type de reprsentation des nombres rationnels permet de conserver des rsultats justes, mais uniquement pour les nombres rationnels. en virgule flottante.

2.2.5.1 Les nombres flottants


La virgule flottante est de loin la reprsentation la plus utilise en informatique pour reprsenter les nombres rels. En rgle gnrale, on reprsente un nombre par un signe, une mantisse m , et un exposant e pour une base b donne : N = m be Mme avec une seule base, il peut y avoir une infinit de reprsentations du mme nombre. Par exemple, voici quelques reprsentations du nombre 3,14159 en virgule flottante, en utilisant la base 10 : mantisse 10 exposant 0,00314159 10 +3 3,14159 10 0 314159 10 -5 314159000 10 -8 314159000000 10 -11 Pour simplifier, en particulier les oprations de comparaisons, on utilisera une seule reprsentation appele nombre normalis. La normalisation consiste prendre une mantisse comprise dans l'intervalle [1,b[, b tant la base de reprsentation du nombre, c'est dire que la mantisse se reprsentera avec un seul chiffre diffrent de zro, gauche de la virgule. La valeur 0 fait l'objet d'une reprsentation particulire.

Page 40 sur 96

Structure et Fonctionnement des Ordinateurs (2e MIC) - Polycopi du cours

Bien sr, suivant le nombre de bits utiliss pour reprsenter la mantisse, et le nombre de bits utiliss pour reprsenter l'exposant, nous pourrons avoir une multitude de reprsentations possibles. En voici quelques exemples tirs de machines clbres :

2.2.5.2 La norme IEEE754


Cette multitude de reprsentation ne facilite pas l'change de donnes entre machines de types diffrents. Pour remdier cet inconvnient plusieurs normes ont vu le jour. La plus utilise ce jour est la norme IEEE754. Dans cette norme, tant donn que les nombres normaliss sont tels que la mantisse appartient l'intervalle [1,0 2, 10,0 2[ en notation binaire, le seul chiffre gauche de la virgule est donc toujours le chiffre 1 (sauf videmment pour la valeur zro qui constitue un cas particulier). Il ne sera donc pas ncessaire de conserver ce chiffre dans la reprsentation. Ce sera, en quelque sorte, un bit implicite.

Page 41 sur 96

Structure et Fonctionnement des Ordinateurs (2e MIC) - Polycopi du cours

Dans cette norme, un nombre de 32 bits (simple prcision) se reprsentera l'aide d'une mantisse de 23 bits (plus le bit implicite) et un exposant de 8 bits. Nous obtiendrons donc le dcoupage de la figure 2.6.

Fig 2.6 : Format IEEE754 sur 32 bits La partie exposant est souvent utilise pour des oprations de comparaison, notamment lorsqu'on veut aligner les virgules de deux nombres dont on veut, par exemple, calculer la somme. L'opration de comparaison tant plus simple si les nombres sont uniquement positifs o nuls, nous nous ramnerons ce cas particulier en utilisant une reprsentation des nombres avec excs. Dans le cas des exposant reprsents sur 8 bits, nous utiliserons un excs de 127. Ainsi, le nombre en reprsentation flottante sur 32 bits de la figure 2.6 reprsente la valeur : (-1) S 1,F 2 E-127 Exemple : retrouvons le nombre flottant IEEE754 dont la valeur binaire est (1100 0000 1010 0000 0000 0000 0000 0000) 2 Il faut tout d'abord extraire les champs S, E et F. S vaut 1 (bit de fort poids). Donc, nous avons affaire un nombre ngatif. E vaut (1000 0001) 2 , soit la valeur 129, c'est dire un exposant gal 129-127=2 F vaut (010 0000 0000 0000 0000 0000) 2 , ce qui donne une valeur de (0,010000...) 2 soit 0,25, c'est dire une mantisse gale 1,25 Ce nombre reprsente donc une valeur gale (-1) S 1,F 2 E-127 , c'est dire (-1) 1 1,25 2 129-127 soit -5.

Reprsentation IEEE754 La norme IEEE754 dfinit galement une reprsentation sur 64 bits (double prcision), utilisant 1 bits de signe, 11 bits d'exposant et 52 bits de mantisse, mais aussi des reprsentations sur plus de 79 bits (double prcision tendue). La reprsentation des nombres rels dans un ordinateur, n'est qu'une reprsentation approche, puisqu'elle offre un nombre fini de valeurs alors que dans R, entre deux valeurs, il existe une infinit de valeurs. Ceci nous amne dfinir la Prcision de la reprsentation comme tant la diffrence qu'il y a entre les mantisses de deux nombres rels conscutifs dans la reprsentation choisie. Cette prcision est indpendante de la valeur de l'exposant et ne dpend donc que de la mantisse M. Ainsi, la reprsentation IEEE754 sur 32 bits, la prcision de la reprsentation est de (0,0000 0000 0000 0000 0000 001) 2 soit encore 2 -23 .

Page 42 sur 96

Structure et Fonctionnement des Ordinateurs (2e MIC) - Polycopi du cours

Suivant la valeur des champs E et F, la norme IEEE754 permet de reprsenter un certain nombre de valeurs particulires rsumes par la table . E E max E max 0 0 F 0 0 0 0 valeur reprsente NaN 0 nombres dnormaliss

Table 2.3 : Valeurs particulires de la norme IEEE 754 Not a Number La valeur NaN (Not a Number), est intressante notamment par sa facult de propagation dans les calculs. Par exemple, racine-carre(-1) donnera la valeur NaN, de mme que le calcul de 4 racinecarre(-1) . Nombres dnormaliss Les nombres dnormaliss sont des reprsentations de nombres tels que le bit implicite est ici gal 0, et non 1 comme dans le cas des nombres normaliss. La valeur d'un nombre dnormalis en reprsentation flottante sur 32 bits ( figure 2.6) est de : (-1) S 0,F 2 -126 Si nous ne gardions que des valeurs normalises, les nombres plus petits que la plus petite valeur normalise seraient considrs comme gal 0, ce qui pourrait poser quelques problmes, par exemple dans le cas d'un test d'galit de deux de ces nombres. Regardons ce qui se passe, par exemple en base 10 avec une mantisse de 4 chiffres. Soit x=1,234 10 Emin et y=1,256 10 Emin o Emin est la valeur minimum de l'exposant (c'est dire telle que le champ E soit nul). Nous aurons y-x=0,022 10 Emin , c'est dire une valeur diffrente de zro (au lieu de la valeur zro si nous n'avions gard que des nombres normaliss). Arrondi Etant donn le nombre fixe de bits retenus pour la reprsentation, il est ncessaire, quelquefois, d'arrondir les rsultats obtenus. Comment faire cet arrondi? la norme IEEE754 propose 4 manires d'arrondir les nombres, la premire tant le mode d'arrondi par dfaut: si on se trouve au milieu, on arrondit vers le nombre pair. Par exemple, arrondi au plus proche avec une mantisse reprsente sur deux chiffres, 3.05 sera arrondi 3.0 et non 3.1 Le langage de programmation Java utilise cet arrondi lors d'oprations par les oprateurs +, -, .. arrondi vers zro arrondi vers +infini Page 43 sur 96 Le langage de programmation Java utilise cet arrondi lors d'oprations de conversion Flottant vers Entier

Structure et Fonctionnement des Ordinateurs (2e MIC) - Polycopi du cours

arrondi vers -infini

Arrondis norme IEEE 754

Page 44 sur 96

Structure et Fonctionnement des Ordinateurs (2e MIC) - Polycopi du cours

Chapitre 3

Circuits de calcul
3.1 Oprations arithmtiques
Les oprations arithmtiques constituent une partie trs importante dans une machine. Une arithmtique errone peut tre lourde de consquences, mme si l'erreur est minime. Il suffit de considrer les 300 millions de dollars dpenss par INTEL pour le remplacement des circuits PENTIUM bogus!

3.1.1 Oprations binaires


3.1.1.1 Addition et soustraction
L'opration d'addition (ou de soustraction) binaire entre deux chiffres binaires peut se rsumer par la figure 3.1.

Fig 3.1 : Tables de vrit de l'addition et de la soustraction Chaque opration fournit un rsultat et une retenue. Rsultats et retenues sont dfinies par les quations logiques suivantes : Addition somme(a, b) = a b retenue(a, b) = a . b Soustraction diffrence(a, b) = a b retenue(a, b) = a . b Pour effectuer une addition ou une soustraction de deux nombres de plusieurs chiffres, il suffit d'oprer comme nous le faisons en base 10, en effectuant l'opration chiffre par chifre, des faibles poids aux forts poids, en propagant la retenue issue de l'opration effectue sur le chiffre prcdent. Exemples:

Page 45 sur 96

Structure et Fonctionnement des Ordinateurs (2e MIC) - Polycopi du cours

Problme du dbordement Le dbordement intervient lorque le rsultat de l'opration n'est pas reprsentable dans le systme utilis, c'est dire lorsque le nombre de chiffres significatifs du rsultat est suprieur au nombre de chiffres utilis pour reprsenter un nombre. Par exemple, en base 10 avec une reprsentation des nombres sur 3 chiffres, la somme 856+421 provoque un dbordement, puisque le rsultat 1277 n'est pas reprsentatble sur 3 chiffres. La dtection du dbordement lors de l'addition de deux nombres binaires s'ffectue en regardant la retenue sortante sur le chiffre de plus fort poids (une retenue 1 correspond un dbordement). Exemples (on utilise 5 chiffres pour la reprsentation des nombres) :

Nous venons de voir l'opration d'addition (et de soustraction) de deux nombres binaires considrs positifs (ou nuls). Que se passe-t-il si on opre de la mme manire avec des nombres ngatifs? En fait cela dpend de la reprsentation adopte pour les nombres ngatifs. Addition avec le complment deux Soit Z=X+Y sur n bits. La valeur absolue d'un nombre |x|, peut donc se reprsenter sur n-1 bits. Dans un premier temps, on suppose qu'il n'y a pas de dbordement. Examinons les diffrentes configurations possibles pour l'opration d'addition: X et Y sont positifs ou nuls. L'addition binaire de X et Y se faisant sans dbordement, nous obtiendrons un rsultat sur n-1 bits. De plus, le bit de signe tant l'addition de deux signes positifs (0+0) donnera bien un nombre positif, ce que l'on attendait. Donc l'addition binaire est correcte. X et Y sont ngatifs. Sachant que, pour tout nombre ngatif reprsent en binaire sur n chiffres en complment 2, nous avons -|X| = 2 n - |X|, nous pouvons crire : Z= X+Y = (2 n -|X|) + (2 n -|Y|) = 2 n+1 - (|X| + |Y|) = = 2 n+1 - |Z|, sur n bits, on obtient aussi 2 n - |Z|

Page 46 sur 96

Structure et Fonctionnement des Ordinateurs (2e MIC) - Polycopi du cours

Donc, nous obtenons bien, en rsultat, la somme correspondant un nombre ngatif en complment deux. X est ngatif et Y est positif ou nul. Nous devons alors considrer deux cas (le cas o Y=-X tant trivial): |X| < Y : dans ce cas, nous avons Z= X+Y = (2 n -|X|) + Y = 2 n + (Y -|X|) 2 n correspond ici la retenue sortante. Y-|X| est un nombre positif. |X| > Y : dans ce cas, nous avons Z= X+Y = (2 n -|X|) + Y = 2 n -(|X| - Y) |X| - Y tant positif, nous avons ici l'expression d'un nombre ngatif en complment deux, ce qui tait attendu. Supposons maintenant qu'il y a un dbordement, c'est dire que le rsultat ne soit pas reprsentable sur n bits, en complment deux. Ce dbordement ne peut arriver que si X et Y sont de mme signe et si |X|+|Y| est suprieur ou gal 2 n-1 (en fait, nous aurons |X|+|Y|=2 n-1+z, avec z tant un nombre reprsentable sur n bits). Si X et Y sont positif, nous obtiendrons, suivant la reprsentation en complment deux, un nombre ngatif : bit de signe = 2 n-1 Si X et Y sont ngatifs, nous obtiendrons un rsultat positif sur n bits : 2 n+1-(2 n-1+z) = 2 n+1-2 n-1z = 2 n+2 n-1 - z or z<2 n-1, donc le bit de signe sera 0. Le dbordement peut donc tre dtect en comparant le signe des oprandes au signe du rsultat il y a dbordement si les oprandes sont de mme signe, et si le rsultat est du signe oppos. On peut galement dtecter le dbordement en comparant la retenue qui entre dans le dernier tage (l'tage de fort poids) et la retenue qui sort de ce mme tage : il y a dbordement si la retenue entrante est de l'inverse de la retenue sortante. Exemples (on utilise 5 chiffres pour la reprsentation des nombres en complment 2) :

Page 47 sur 96

Structure et Fonctionnement des Ordinateurs (2e MIC) - Polycopi du cours

3.1.1.2 Multiplication et division


Les oprations de multiplication et de division binaire s'effectuent de manire analogue aux oprations correspondantes sur les nombres dcimaux, par une srie d'additions ou de soustractions. Elles sont plus simples que leurs homologues dcimales, puisque le produit du multiplicande par un chiffre du multiplicateur est rduit une multiplication par un ou par zro. Exemples :

Il y a donc une grande simplicit dans le principe. De plus, cette mthode fonctionne galement avec la reprsentation des nombres ngatifs en complment 1 et en complment 2 ( condition toutefois d'tendre le bit de signe).

3.2 Les circuits arithmtiques


3.2.1 L'addition
Le circuit de base utilis pour l'addition de donnes binaires est le demi-additionneur dont le fonctionnement correspond celui dfini par la figure 3.1. Un demi-additionneur est donc un circuit possdant deux entres (a et b) et produisant deux sorties (la somme et la retenue).

Demi-Additionneur A partir de ce circuit de base, on peut construire un additionneur complet, gnrant les deux sorties du demi-additionneur, mais partir de trois entres, les deux donnes plus une retenue entrante. Un additionneur complet ralise en fait l'opration (a + b + r in) (Fig. 3.2). La table 3.1 donne la table de vrit de l'additionneur complet. r in 0 0 0 0 1 1 1 Page 48 sur 96 a 0 0 1 1 0 0 1 b 0 1 0 1 0 1 0 somme r out 0 1 1 0 1 0 0 0 0 0 1 0 1 1

Structure et Fonctionnement des Ordinateurs (2e MIC) - Polycopi du cours

Table 3.1 : Table de vrit de l'additionneur complet

r _in

r _o u t

Fig 3.2 : Additionneur complet

Additionneur complet Pour raliser un additionneur sur n bits, nous prendrons n additionneur complet, puis nous relierons la retenue de sortie du i e additionneur la retenue entrante du i+1 e additionneur, comme le montre la figure 3.3. La retenue entrante au premier tage (celui correspondant aux bits de plus faible poids) est positionne 0, tandis que la retenue sortante du dernier tage (celui correspondant aux bits de plus fort poids) fournira la retenu sortante de l'additionneur (et pourra donc servir d'indicateur de dbordement dans le cas d'addition de nombres binaires naturels). On obtient ainsi un Circuit Propagation Simple de Retenue.
a7 b7 a1 b1 a0 b0 0

a d d it io n n e u r c o m p le t

...

a d d it io n n e u r c o m p le t

a d d it io n n e u r c o m p le t

r _o u t q 7

q1

q0

Fig 3.3 : Additionneur complet sur 8 bits L'inconvnient majeur du circuit d'addition propagation simple de retenue est le temps ncessaire pour propager cette retenue, du premier tage au dernier, puisque ce temps est proportionnel au nombre d'tages (voir exercice). Il existe cependant plusieurs techniques pour acclrer l'addition.

3.2.2 La multiplication

Page 49 sur 96

Structure et Fonctionnement des Ordinateurs (2e MIC) - Polycopi du cours

3.2.2.1 Multiplication squentielle


Le multiplieur le plus simple opre sur deux nombres non signs, chiffre par chiffre, suivant le mme principe que celui utilis pour la multiplication des nombres dcimaux. Soit deux nombres A=a n-1a n-2... a 1a 0 et B=b n-1b n-2... b 1b 0. Pour calculer le produit P=AB, aprs avoir initialis P zro, on rpte n fois, l'tape suivante : Si le chiffre de faible poids de A est 1, on ajoute B au contenu de P, sinon on ajoute 0 au contenu de P. Les registres P et A sont dcals droite, la retenue sortante de P tant transfre dans le chiffre de fort poids de P, tandis que le chiffre de faible poids de P est transfr dans le chiffre de fort poids de A. L'ancien chiffre de faible poids de A n'tant plus ncessaire, est purement et simplement perdu. Aprs la n e tape, les n bits de forts poids du produit se trouvent dans P, tandis que les n bits de faibles poids se trouvent dans A. La figure 3.4 montre le schma fonctionnel d'un tel multiplieur.
De c a la g e Re t e n u e S o r t a n t e

1 b it

n b it s

n b it s

1 b it

n b it s

Fig 3.4 : Multiplieur squentiel

Multiplication squentielle

3.2.3 La division
Le diviseur le plus simple opre sur deux nombres non signs et produit un bit du quotient chaque tape (Figure 3.5). Au dbut de la division, le registre A contient le dividende, le registre B contient le diviseur, tandis que le registre P est initialis 0. On rpte n fois l'tape suivante : On dcale les registres (P,A) d'un bit gauche (le bit de fort poids de A est inject dans le bit de faible poids de P). On effectue P = P - B. Si la valeur contenue dans P est ngative, on met 0 dans le bit de faible poids de A sinon on met 1. Si la valeur contenue dans P est ngative, on restaure l'ancien contenu en effectuant P = P + B. Page 50 sur 96

Structure et Fonctionnement des Ordinateurs (2e MIC) - Polycopi du cours

De c a la g e

n + 1 b it s

n b it s

1 b it

n b it s

Fig 3.5 : Diviseur squentiel A la fin de cette rptition, le quotient se trouve dans le registre A, tandis que le reste de la division se trouve dans le registre P. Cet algorithme est appel division avec restauration, du fait de la dernire partie de l'itration.

Division Sequentielle avec Rest. On peut viter cette restauration, en changeant l'tape itrative par la suivante : Si le contenu de P est ngatif alors On dcale les registres (P,A) d'un bit gauche (le bit de fort poids de A est inject dans le bit de faible poids de P). On effectue P = P + B

sinon On dcale les registres (P,A) d'un bit gauche (le bit de fort poids de A est inject dans le bit de faible poids de P). - On effectue P = P - B Si P est ngatif, mettre 0 dans le bit de faible poids de A, si non mettre 1 dans le bit de faible poids de A. A la fin de cette rptition, si le registre P contient un nombre ngatif, nous devons effectuer une restauration en ajoutant P le contenu du registre B. Finalement, le registre P contient le reste de la division, tandis que le registre A contient le quotient. Page 51 sur 96

Structure et Fonctionnement des Ordinateurs (2e MIC) - Polycopi du cours

On obtient ainsi un algorithme de division sans restauration. En fait, par rapport l'algorithme avec restauration, le registre P contiendra la mme valeur puisque, le fait d'additionner B aprs un dcalage donne correspond bien la restauration avant le dcalage, plus une soustraction de B aprs le dcalage : si p-B est le contenu de P avant le dcalage, nous avons bien 2(p-B)+B=2p-B.

Division Sequentielle sans rest.

3.2.4 La division SRT


A chaque tape de la division avec ou sans restauration, une addition ou une soustraction est ralise. L'algorithme de division SRT (pour Sweeney, Robertson et Tocher qui ont propos indpendamment des algorithmes similaires), permet, dans certains cas de figure, d'viter une ou plusieurs de ces oprations, et donc d'amliorer lgrement la performance du diviseur (plus particulirement lorsque le reste intermdiaire de la division est suffisamment petit). Nous reprenons la figure 3.5 prcdente, en mettant dans le registre A le dividende, et en mettant dans le registre B le diviseur. L'algorithme est alors le suivant : 1. S'il y a k zros dans les bits de fort poids du diviseur, on dcale gauche les registres (P,A) et B. Comme B n+1 bits, B contiendra 0 sur le bit n (bit de plus fort poids), et 1 sur le bit n-1. (Remarque: dans le cas de nombres flottants normaliss, nous aurons toujours k=0). 2. Pour i=0 n-1, faire : 1. si les trois bits de fort poids de P sont gaux, mettre q i 0 et dcaler (P,A) d'une position gauche (le bit de fort poids de A tant inject dans le bit de faible de poids de P). 2. sinon, si les trois bits de fort poids de P ne sont pas gaux et si P est ngatif, faire q i = 1 (c'est dire -1), dcaler (P,A) d'une position gauche et ajouter B. 3. sinon, faire q i=1, dcaler (P,A) d'une position gauche et soustraire B. 3. Si le reste final est ngatif, le corriger en ajoutant B, et corriger le quotient en soustrayant 1 de q 0. Finalement, dcaler le reste de k positions vers la droite, k tant le dcalage initial. A la fin de l'opration, pour liminer les chiffres ngatifs du quotient, il suffit de deux registres distincts pour le quotient : le premier dans lequel on met les chiffres positifs, le second dans lequel on met les chiffres ngatifs. Pour obtenir le quotient, il suffit alors de soutraire le contenu du second registre au premier.

Division SRT Analyse: Tout d'abord, nous pouvons constater que cet algorithme permet l'utilisation d'un reste ngatif. Ceci n'est pas un problme dans la mesure o l'on s'autorise l'utilisation de chiffres ngatifs dans le quotient. Ainsi, dans le cas de la division en base 10, nous pourrions avoir la dmarche suivante :

Page 52 sur 96

Structure et Fonctionnement des Ordinateurs (2e MIC) - Polycopi du cours

Pour obtenir le quotient avec seulement des chiffres positifs, nous ferons : 126 = 120 - 006 = 114. Examinons maintenant les diffrentes instructions qui se trouvent dans la boucle de l'algorithme. Lorsque le registre P contient trois chiffres identiques en fort poids, cela signifie que le nombre contenu dans P est compris entre -1/4 et +1/4 en considrant que la virgule se trouve aprs le premier chiffre (0,00 si le nombre est positif, 1,11 si le nombre est ngatif). Donc, en valeur absolue, ce nombre est plus petit que le diviseur qui contient le nombre 0,1xxxxxx > 1/2. Ainsi, il ne pourra pas contenir, aprs dcalage, le diviseur. D'o le chiffre 0 du quotient. Lorsque le registre P ne contient pas trois chiffres identiques, alors nous pouvons dire que le nombre contenu dans P possde une valeur absolue suprieure 1/4. Si P est positif, on rajoute le chiffre 1 au quotient, si c'est un nombre ngatif, on rajoute le chiffre -1 (1). Exemple: Examinons la division de 8 (1000 2) par 3 (0011 2). Etape 1 : P=00000 A=1000 B=0011 il y a deux bits 0 dans les fort poids de B, on dcale donc (P,A) et B de 2 positions vers la gauche Etape 2.1 : P=00010 A=0000 B=1100 Les trois bits de fort poids de P sont gaux. On fait un simple dcalage, et q 0=0. Etape 2.2 : P=00100 A=0000 B=1100 Les trois bits de fort poids de P sont ingaux et P positif. On dcale, on soustrait B, q 1=1. Etape 2.3 : P=11100 A=0001 B=1100 Les trois bits de fort poids de P sont gaux. On dcale, q 2=0. Etape 2.4 : P=11000 A=0010 B=1100 Les trois bits de fort poids de P sont ingaux et P ngatif. On dcale, on ajoute B, q 3=1. Etape 3 : P=11100 A=0101 B=1100 P ngatif. On rajoute B, on fait -1 sur le quotient, on dcale le reste de 2 positions droite (pour annuler le dcalage de la premire tape). Enfin, nous avons : reste=10, quotient = 0101-1 = 0010. Remarque : Le Pentium utilise un algorithme de division SRT base 4 avec un additionneur conservation de retenue. Page 53 sur 96

Structure et Fonctionnement des Ordinateurs (2e MIC) - Polycopi du cours

3.3 Le processeur
Nous venons de voir les divers circuits permettant d'effectuer telle ou telle opration arithmtique. En gnral, ces circuits n'apparaissent pas seuls dans la machine, ils sont organiss dans une structure appele processeur. Le processeur est la partie de l'ordinateur qui va excuter les oprations indiques par les instructions. C'est l'unit de commande qui pilote le processeur, en lui envoyant, par exemple, un certain nombre de commandes excuter. Le processeur son tour peut envoyer l'unit de commande, des informations concernant l'tat du calcul, comme le signe d'un rsultat, la retenue sortante aprs une opration, etc. Le processeur peut contenir plusieurs lments dont le plus important, pour le calcul, est l'unit arithmtique et logique. A cette unit, se greffe divers dispositifs, comme le registre condition ou encore un dcaleur, ou, plus important, un ou plusieurs registres. Dans la machine tudie au chapitre 1, le processeur tait rduit la simple unit arithmtique, couple un registre appel accumulateur. Il ne faut pas confondre processeur et microprocesseur. Le microprocesseur reprsente une unit centrale complte (c'est dire processeur et unit de commande) intgre dans un seul circuit.

3.3.1 L'Unit Arithmtique et Logique (UAL)


L'unit arithmtique et logique est une unit combinatoire permettant de raliser plusieurs fonctions sur un couple d'entre. Elle permet d'excuter plusieurs fonctions de type arithmtique (addition, soustraction, ...). Elle peut aussi excuter plusieurs fonctions logiques (, , ...). La figure 3.6 montre les diffrents lments fournis l'unit arithmtique et logique, et les diffrents lments fournis par l'unit arithmtique et logique.
n n

m od e
k

F o n c t io n Co u t

F
n

Cin

Fig 3.6 : Unit Arithmtique et Logique Une commande mode permet de spcifier le type de calcul (arithmtique ou logique). La commande fonction sur k bits, permet d'indiquer l'une parmi les 2 k fonctions possibles dans le mode considr. La fonction slectionne s'appliquera sur les donnes A et B pour fournir le rsultat F. L'entre Cin sera utilise dans le mode arithmtique comme retenue entrante, tandis que la sortie Cout sera la retenue sortante dans ce mme mode arithmtique. Dans le cas du mode logique, tant donn que la retenue Page 54 sur 96

Structure et Fonctionnement des Ordinateurs (2e MIC) - Polycopi du cours

entrante ne sert pas, nous pourrons utiliser cette entre comme un bit de commande supplmentaire, de manire obtenir 2 k+1 fonctions logiques diffrentes.

3.3.2 Partie arithmtique


Elle est construite partir d'un additionneur n bits, dont les entres peuvent tre controles par des commandes. Par exemple, considrons le dispositif de contrle suivant :

s1

s0

y
Grce ce dispositif plac sur l'entre B d'un additionneur n bits (Fig 3.6), nous pouvons forcer l'additionneur additionner au contenu de la premire entre A, soit la valeur 0, soit la valeur B, soit la valeur B, soit, enfin, la valeur 111... 1. Ainsi, associs la retenue entrante, les deux bits de commande s 1 et s 0 nous permettrons d'obtenir huit fonctions arithmtiques diffrentes sur les entres A et B.
B

s1

s0

Co u t

Cin

Table 3.2 : Contrle d'entre Page 55 sur 96

Structure et Fonctionnement des Ordinateurs (2e MIC) - Polycopi du cours

Examinons, maintenant, ce que devient la retenue sortante pour chaque opration ralise. F=A (avec s 0=s 1=0) Pour cette opration, nous obtenons, quelque soit la configuration des entres, une retenue sortante nulle. F=A+1 Une retenue sortante 1 correspond un rsultat nul (A=2 n-1). F=A+B ou F=A+B+1 La retenue sortante 1 correspond un dbordement, si l'addition se fait entre des nombres non signs. F=A-B-1 La retenue sortante est 1 si et seulement A est strictement suprieur B. F=A-B La retenue sortante est 1 si et seulement A est suprieur ou gal B. F=A-1 La retenue sortante est toujours gale 1, sauf lorsque A=0. F=A (avec s 0=s 1=1) La retenue sortante est toujours gale 1. Ceci est rsum par la table . s1 0 0 0 0 1 1 1 1 s0 0 0 1 1 0 0 1 1 c in 0 1 0 1 0 1 0 1 c out 0 1 --> A = 2 n -1 1 --> overflow 1 --> overflow 1 --> A > B 1 --> A B 1 --> A # 0 1

Table 3.3 : Retenue sortante

3.3.3 Partie logique


Les 16 oprations logiques peuvent tre obtenues partir des oprations , et NOT. Nous pouvons donc nous limiter ces 3 fonctions, c'est dire nous limiter 2 bits de commandes. Comme 2 bits de commandes permettent d'obtenir 4 commandes diffrentes, nous ajouterons l'opration (ou exclusif). La ralisation un tel circuit sera simplifie par l'utilisation d'un multiplexeur 4 voies vers 1. Nous obtiendrons ainsi le schma de la figure 3.6.

Page 56 sur 96

Structure et Fonctionnement des Ordinateurs (2e MIC) - Polycopi du cours

Ai B i

MUX

s1 s0

Fi
En rptant ce schma sur chaque bit des oprandes A et B, nous obtenons le circuit permettant de calculer nos 4 fonctions logiques.

3.3.4 Assemblage du tout


Nous pouvons combiner les deux circuits prcdents en un seul circuit de calcul arithmtique et logique en distribuant les deux bits de commandes s 1 et s 0 ainsi que les deux entres A et B sur ces deux circuits. La slection de l'une ou l'autre des deux sorties se fera grce multiplexeur 2 voies vers 1, command par une troisime commande s 2. La figure 3.7 montre l'organisation de cette unit arithmtique et logique.

A
n

B
n

s1 s0

c in

Lo g iq u e
n

Ar it h m t iq u e
n

MUX
n

s2

Fig 3.7 : Unit arithmtique et logique simple

Page 57 sur 96

Structure et Fonctionnement des Ordinateurs (2e MIC) - Polycopi du cours

Cette unit arithmtique pourra excuter l'une parmi les 8 oprations de la table . s2 0 0 0 0 1 1 1 1 s1 0 0 1 1 0 0 1 1 s0 0 1 0 1 0 1 0 1 F A + c in A + B + c in A - B + c in A - 1 + c in AB AB AB A

Table 3.4 : Oprations de l'unit arithmtique et logique simple Ce type d'approche n'est toutefois pas intressante car on peut obtenir les mmes rsultats avec moins de circuits, en modifiant la partie interne de l'additionneur de la manire suivante. Si, chaque tage de l'additionneur, c'est dire sur chaque bit de l'additionneur, nous supprimons la retenue entrante (par exemple, en effectuant un OU logique avec la commande s 2 ), nous obtenons un circuit correspondant au OU exclusif ( Fig 3.7).

Ai

Bi

Co u t

s2
Cin

Fi
Table 3.5 : Contrle sur la retenue entrante En ajoutant la commande de la figure 3.6, nous obtenons le schma de la figure 3.7.

Page 58 sur 96

Structure et Fonctionnement des Ordinateurs (2e MIC) - Polycopi du cours

Bi

s1

s0

Co u t

s2
Cin

Fi
Table 3.6 : Contrle d'entre Ce dernier schma ne nous permet pas d'obtenir un circuit quivalent celui de la figure 3.7. Pour obtenir l'quivalence nous devons obtenir l'opration A B la place de l'opration A (s 2s 1s 0=100), et l'opration A B la place de l'opration A equiv B (s 2s 1s 0=110). Pour cela, il suffit de slectionner comme entre A, le rsultat de A B lorsque s 2s 1s 0=100, et de slectionner A B lorsque s 2s 1s 0=110. En effet, dans ce dernier cas, nous obtiendrons comme sortie : (A B) equiv B = ((A B) B) ((A B) B) = ((A B) (B B)) (A B) B) =AB La figure 3.8 reprsente un tage de l'additionneur fournissant les 8 fonctions arithmtiques et logiques souhaites.

Page 59 sur 96

Structure et Fonctionnement des Ordinateurs (2e MIC) - Polycopi du cours

s2

s1

s0

Ai

Bi

Co u t Cin

Fi

Fig 3.8 : Etage additionneur modifi Le circuit 74F382 est une unit arithmtique et logique permettant de raliser trois fonctions arithmtiques et trois fonctions logiques sur des donnes de 4 bits. La table donne le codage du mot de commande de trois bits s 2s 1s 0 utilis par cette ALU. s2 0 0 0 0 1 1 1 1 s1 0 0 1 1 0 0 1 1 s0 0 1 0 1 0 1 0 1 F Clear B-A A-B A+B AB AB AB Preset

Table 3.7 : Oprations de l'ALU 74F382

3.3.5 Le registre condition


Quelquefois, aprs une opration effectue par l'unit arithmtique et logique, il est prudent de vrifier la validit du rsultat obtenu, c'est dire de tester un dbordement ventuel. D'autre fois, le but de l'opration arithmtique sera de comparer deux valeurs entre elles, ou une valeur une valeur particulire (par exemple zro). Le test ne pouvant se faire gnralement pas en mme temps que l'opration arithmtique, il est ncessaire de mmoriser le rsultat du test. Le registre condition est un registre (en gnral de 4 bits) permettant de mmoriser les quatre indicateurs suivant: V pour dtecter un dpassement (overflow) de capacit pour la reprsentation du rsultat.

Page 60 sur 96

Structure et Fonctionnement des Ordinateurs (2e MIC) - Polycopi du cours

Z S C

pour dtecter un rsultat nul (zro). pour connaitre le signe du rsultat, dans le cas de nombres signs. pour connaitre la retenue sortante (carry).

Le registre condition est charg la fin d'une opration arithmtique ou logique. La figure 3.9 montre comment nous pouvons initialiser ce registre partir des donnes issues de l'unit arithmtique et logique, pour une machine manipulant des donnes sur 8 bits. Nous avons dj vu que l'indicateur overflow pouvait s'obtenir par une simple comparaison entre la retenue entrante sur l'tage de fort poids de l'additionneur, et la retenue sortante de l'additionneur, videmment seulement dans le cas de nombres signs. Le bit de signe est le bit de fort poids du rsultat. Enfin, le signal zro s'obtient en faisant le OU logique de tous les bits du rsultat, puis en inversant la sortie du OU.

A
n -1 0 n -1

B
0

... V Z S C
C C

...

Cir c u it Ar it h m t iq u e
n n -1
n -1 0

Fig 3.9 : Chargement du registre condition Grce aux diffrentes informations qu'il mmorise, le registre condition nous permettra de dtecter la valeur d'un simple bit dans une oprande, aprs avoir isol le bit choisi, grce un simple ET logique entre le nombre et une valeur appele masque. Par exemple, la dtection de la valeur du bit A 3 se fera par l'opration A 0000008 16; la valeur du bit sera indique par l'indicateur Z du registre condition. Ce registre condition nous permettra, galement, d'effectuer des comparaison entre deux nombres. Les indicateurs examiner dpendront du type de la comparaison : entre nombres non signs ou entre nombres signs. Dans les deux cas, l'opration effectue pour le positionnement des indicateurs, est la soustraction. On ne s'intressera qu'au registre condition.

...

...

3.3.5.1 Comparaison de nombres non signs


Lorsqu'on effectue la soustraction A - B, on ralise en fait l'addition A + B + 1. Nous avons dj vu que, si le nombre A est suprieur ou gal B, nous obtiendrons une retenue sortante gale 1. Donc le simple test de la retenue sortante suffira pour une comparaison A B. Pour la comparaison stricte

Page 61 sur 96

Structure et Fonctionnement des Ordinateurs (2e MIC) - Polycopi du cours

A > B, il suffira de regarder, en plus de la retenue sortante, si le rsultat est nul ou non. Les autres comparaisons peuvent ensuite se dduire de celles-ci. La table rsume les diffrents tests effectuer. Relation A>B AB A<B AB A=B A#B Opration sur registre condition CZ C C CZ Z Z

Table 3.8 : Comparaison de nombres non signs

3.3.5.2 Comparaison de nombres signs


Dans le cas des nombres signs, il faut tenir compte d'un ventuel dbordement, qui a pour effet d'inverser le signe du rsultat. Ainsi, la comparaison A B donnera un signe positif s'il n'y a pas de dbordement, et une signe ngatif s'il y a dbordement. Donc, la comparaison A B se dtectera par (V S) (V S), c'est dire encore V equiv S. Les autres comparaisons se dduisent facilement de celle-ci. Elles sont rsumes dans la table . Relation A>B AB A<B AB A=B a#B Opration sur registre condition (V equiv S) Z V equiv S VS (V S) Z Z Z Table 3.9 : Comparaison de nombres signs

3.3.6 le dcaleur
Comme son nom l'indique, la fonction du dcaleur est d'effectuer un ou plusieurs dcalage. Le type de dcalage est donn par un mot de commande. La figure 3.10 montre un dcaleur travaillant sur des mots de n bits, et pouvant effectuer 2 k oprations, indiques par le mot de commande CMD.

Page 62 sur 96

Structure et Fonctionnement des Ordinateurs (2e MIC) - Polycopi du cours

Cir c u it D c a le u r
Cin

CM D

Co u t
n

Fig 3.10 : Dcaleur Les principaux types de dcalages sont les dcalages logique, arithmtique ou circulaire, vers la gauche ou la droite, avec ou sans le bit de retenue (bit C du registre condition).Le dcalage arithmtique est un dcalage avec conservation de la retenue. Le bit de signe ne change pas lors du dcalage. Le dcalage circulaire gauche (resp. droit) est un dcalage simple vers la gauche (resp. droite) avec injection du bit de fort poids (resp. faible poids) dans le bit de faible poids (resp. fort poids). Le dcalage avec le bit de retenue consiste faire un dcalage circulaire en considrant le bit C comme tant le bit de plus fort poids. La table montre le rsultat obtenu pour quelques dcalages diffrents pouvant tre effectus sur le couple (C, N) o C est l'indicateur retenue du registre condition (valeur c), et N le nombre l'entre du dcaleur 8 bits (N=n 7n 6n 5n 4n 3n 2n 1n 0). dcalage simple droit simple gauche arithmtique droit arithmtique gauche circulaire droit circulaire gauche circulaire droit avec C circulaire gauche avec C C c c c c c c n0 n7 sortie du dcaleur 0n 7n 6n 5n 4n 3n 2n 1 n 6n 5n 4n 3n 2n 1n 00 n 7n 7n 6n 5n 4n 3n 2n 1 n 7n 5n 4n 3n 2n 1n 00 n 0n 7n 6n 5n 4n 3n 2n 1 n 6n 5n 4n 3n 2n 1n 0n 7 cn 7n 6n 5n 4n 3n 2n 1 n 6n 5n 4n 3n 2n 1n 0c

Table 3.10 : Diffrents types de dcalage La figure 3.11 montre le i e tage d'un dcaleur trs simple. Il se rduit un simple multiplexeur 3 voies vers 1, permettant un dcalage droite, un dcalage gauche ou pas de dcalage du tout.

Page 63 sur 96

Structure et Fonctionnement des Ordinateurs (2e MIC) - Polycopi du cours

X i+ 1 X i

X i-1

cm d
2

Fig 3.11 : Dcaleur simple (tage i) La figure 3.12 montre comment combiner n exemplaires de ces dcaleurs pour construire un dcaleur n bits permettant le dcalage circulaire droite ou a gauche, avec bit de retenue.

c in cm d
2 2 1 0

... cou t
Fig 3.12 : Dcaleur simple complet

La figure 3.13 montre un dcaleur multiple (barrel shifter) sur 8 bits, permettant, en un seul cycle, d'effectuer de 0 7 dcalages circulaires sur des donnes de 8 bits. Ce type de circuit est particulirement intressant pour des processeurs destins effectuer beaucoup de manipulations binaires (extraction de champs de bits, insertion de champs de bits).
X7 X6 X5 X4 X3 X2 X1 X0

N2

N1

N0 Y7 Y6 Y5 Y4 Y3 Y2 Y1 Y0

Fig 3.13 : Dcaleur multiple sur 8 bits

Page 64 sur 96

Structure et Fonctionnement des Ordinateurs (2e MIC) - Polycopi du cours

3.3.7 Le processeur complet (exemple)


La figure 3.14 reprsente un exemple de processeur complet (Exemple tir du livre Digital Logic and Computer Design de M. Morris Mano Prentice-Hall ) . Ce processeur dispose d'un ensemble de 7 registres, nots R1 R7. Un de ces registres peut tre crit partir de la donne sortant du dcaleur, chaque cycle d'horloge. Trois bits de commandes D=d 2d 1d 0 permettent d'indiquer le registre slectionn en criture. La configuration D=000 2 est utilise pour indiquer qu'aucun registre ne doit tre crit.
E n t r e s e xt e r n e s

Re g is t r e s R1 a R7

7n

S le c t io n Bu s A
n

S le c t io n Bu s B
n

A D

A
Re g is t r e Co n d it io n

B
3

U .A.L. V Z S C F
n

F Cin

Cir c u it D c a le u r

S o r t ie

Fig 3.14 : Le processeur complet Chaque entre de l'unit arithmtique et logique peut recevoir une donne partir de l'un des septs registres, ou encore partie d'une entre externe. Trois bits de commandes A=a 2a 1a 0 (resp. B=b 2b 1b 0) permettent d'indiquer le registre slectionn en lecture sur le port A (resp. B). La configuration A=000 2 (Resp. B=000 2) est utilise pour indiquer que l'entre externe est slectionne sur l'entre A (Resp. B) de l'unit arithmtique et logique. L'unit arithmtique et logique est commande par un mot de 3 bits F=f 2f 1f 0, permettant ainsi 4 oprations arithmtiques (A+C in, A+B+C in, A+B+C in, A-1+C in) et 4 oprations logiques (A B, A B, A B, A).

Page 65 sur 96

Structure et Fonctionnement des Ordinateurs (2e MIC) - Polycopi du cours

Le registre condition est globalement initialis uniquement lors des oprations arithmtiques. Le bit Z peut tre aussi initialis lors d'oprations logiques. Enfin le bit C peut aussi tre initialis lors d'oprations de dcalage (dcalage circulaire seulement). Il n'y a pas d'opration pour initialiser explicitement le bit de retenue. Ceci peut toutefois se faire soit par l'opration A+C in pour la remise zro du bit C ( condition que la retenue soit nulle), soit par l'opration A-1+C in ( condition que la retenue soit gale 1). La donne issue de la sortie de l'unit arithmtique et logique passe par un dcaleur. Les oprations permises par ce dcaleur sont au nombre de 6 : pas de dcalage, sortie mise zro, dcalage gauche avec insertion de 0 droite, dcalage droit avec insertion de 0 gauche, dcalage circulaire gauche avec C, dcalage circulaire droit avec C. Il reste donc deux codes non utiliss. On les notera par nop, pour Non OPration. Les cinq commandes A, B, D, F et H, sont rsumes dans la table 3.15. Le bit de retenue entrante peut tre considr comme un bit de commande supplmentaire.

Fig 3.15 : Commandes du processeur Voici quelques exemples de codage de mots de commande (une valeur quelconque est indique par x): R1 = R2 - R3 A=010 Comparaison R 2 et R 3 A=010 R 1 = Donn externe A=000 Sortie externe = R 7 B=xxx D=001 F=000 C in=0 H=000 B=011 D=000 F=010 C in=1 H=000 B=011 D=001 F=010 C in=1 H=000

Page 66 sur 96

Structure et Fonctionnement des Ordinateurs (2e MIC) - Polycopi du cours

A=111 Mise 1 du bit C A=xxx

B=xxx

D=000

F=000

C in=0

H=000

B=xxx

D=000

F=011

C in=1

H=000

Dcalage circulaire droit de R 2 avec C A=010 RAZ R 6 A=xxx B=xxx D=110 F=xxx C in=x H=011 B=010 D=010 F=100 C in=x H=101

Comme on peut le constater, certaines oprations peuvent se faire de plusieurs manire. Par exemple, la remise zro d'un registre peut se faire galement en utilisant le : R i=R i R i.

Page 67 sur 96

Structure et Fonctionnement des Ordinateurs (2e MIC) - Polycopi du cours

Page 68 sur 96

Structure et Fonctionnement des Ordinateurs (2e MIC) - Polycopi du cours

Chapitre 4

La Mmoire
4.1 Caractristiques fondamentales
Nous appellerons Mmoire, tout dispositif lectronique capable de conserver et restituer une information. D'une manire gnrale, l'information est mmorise dans un format binaire, c'est dire que l'information la plus lmentaire est le bit. On parle souvent d'octet (byte en anglais), qui correspond une information de 8 bits (ce qui correspond souvent au codage d'un caractre alphanumrique). Le mot sera l'ensemble de bits pouvant tre lus ou crits simultanment. Actuellement, une taille courante est 32 bits pour les calculateurs de petite et moyenne taille. Pour les grosses machines, la taille d'un mot pourra tre de 64 bits.

4.1.1 Cycle Lecture-Mmorisation-Ecriture


D'une manire gnrale, nous aurons le cycle suivant: Ecriture de l'information, Mmorisation de l'information et Lecture de l'information. L'criture peut se faire 1 ou plusieurs fois. L'criture unique peut tre ralise lors de la fabrication. On parle alors de mmoire ROM (Read Only Memory). Ces mmoires peuvent tre utilises comme des tables (table de codage des caractres du clavier), comme support de programme fixe (programme des machines laver ou des distributeurs de boisson), ou comme support de donnes non effaable (disque CD). L'criture unique peut aussi tre ralise aprs fabrication. On parle alors de mmoire PROM (Programmable Read Only Memory). Ce sont des mmoires destines aux mmes usages que les mmoires ROM. On peut dire par exemple que la carte perfore est du type PROM. La grande majorit des mmoires sont des mmoires criture multiple. On trouve dans cette catgorie les disques magntiques, les mmoires internes des calculateurs. Parmi les mmoires pouvant tre crites plusieurs fois, il y a une sous-catgorie qui s'apparente plutt aux PROM, ce sont les REPROM (Reprogrammable Read Only Memory). Ce sont des mmoires pouvant tre re-crites un certain nombre (limit) de fois mais dont l'usage s'apparente celui des mmoires de type PROM. Quelquefois, la recriture ne peut se faire que par un dispositif diffrent de celui de la lecture. C'est le cas des mmoire REPROM effaable grce des lampes utltra-violet. La dure de la mmorisation est aussi une caractristique des mmoires autorisant des critures multiples. Elle peut tre quasi-permanente comme pour les mmoires sur support magntique ou encore les mmoires lectroniques statiques. A cette caractristique, nous associerons la non volatilit, c'est dire la capacit de conserver intacte l'information mmorise malgr un dfaut d'alimentation lectrique. La dure de la mmorisation peut aussi tre temporaire, c'est dire pendant un dlai fixe, relativement court. C'est le cas des mmoires dites dynamiques qui ncessitent un cycle rafraichissement (en gnral, il faut rafraichir 128 lignes mmoires toutes les 2 ms). Enfin, la mmorisation peut durer jusqu' la prochaine lecture. C'est le cas des mmoires lecture destructrice, comme les anciennes mmoires tores magntiques. Page 69 sur 96

Structure et Fonctionnement des Ordinateurs (2e MIC) - Polycopi du cours

4.1.2 Mode d'accs


Le mode d'accs caractrise la manire de retouver une information mmorise. Il existe beaucoup de manire d'accder l'information (une descripttion plus dtaille est donne dans la section 4.2). Le mode d'accs le plus utilis est l'accs direct ou accs alatoire. Dans ce cas, pour retrouver une information, on utilise une adresse.

4.1.3 Capacit
La capacit d'une mmoire reprsente le nombre d'informations qu'elle peut contenir. On l'exprime le plus souvent par une puissance de 2 (1024, 2048, ...). Pour simplifier, on utilise les units suivantes : Kilo 1K = 2 10 = 1 024 Mga Giga Tra Peta 1M = 2 20 = 1 048 576 1G = 2 30 = 1 073 741 824 1T = 2 40 = 1 099 511 627 776 1P = 2 50 = 1 125 899 906 842 620

Les capacits les plus importantes actuellement sont de 256 Mgabits dans une seul circuit, ce qui permet, entre autre, la mmorisation du dictionnaire Petit Robert de 2600 pages (environ 180 Mgabits).

4.1.4 Temps d'accs


Le temps d'accs est le temps qui spare le moment o l'on dbute une opration de lecture, de l'instant d'apparition de l'information recherche. Ce temps est trs variable suivant la technologie utilise. En gnral, plus la capacit est grande, plus le temps d'accs sera important.

4.1.5 Dbit d'accs


Le dbit d'accs reprsente la quantit d'informations lues ou crites par unit de temps. On parlera ainsi de capacits en mga octets par seconde.

4.1.6 Hirarchie mmoire


L'idal, pour un ordinateur, est de disposer de la mmoire la plus rapide possible, offrant la plus grande capacit possible. Cela est malheureusement irralisable, d'une part du fait du cot engendr (les mmoires les plus rapides sont extrmement chres), d'autre part technologiquement impossible (le temps d'accs augmente avec la capacit). Cependant, bien que la capacit totale de donnes mmoriser reste grande, il n'est pas ncessaire de disposer d'un temps d'accs rapide pour l'ensemble de ces donnes. Seules les donnes les plus utilises ncessiteront une temps d'accs trs petit. On aura donc intrt utiliser plutt une hirarchie mmoire qui ira de la mmoire de petite capacit mais d'accs trs rapide (le registre) la mmoire de trs grande capacit offrant un temps d'accs plus raisonnable (le disque).

Page 70 sur 96

Structure et Fonctionnement des Ordinateurs (2e MIC) - Polycopi du cours

La table prsente les diffrents niveaux mmoire que l'on trouve dans les machines actuelles. Les temps d'accs correspondent aux temps d'accs typiques des machines en 1995. Registres Capacit typique Temps d'accs (ns) Dbit (Mo/s) < 1 Ko 2-5 4 000-32 000 Cache Mmoire < 4 Mo 3-10 800-5 000 Mmoire principale < 4 Go 80-400 400-2 000 Disques > 1 Go 5 000 000 4-32

Table 4.1 : Hirarchie mmoire On peut noter qu'un dbit de 4000 Mo/s correspond la transmission d'un mot de 32bits par nanoseconde! Remarque: La capacit des disques durs peut arriver actuellement 1 To, tandis que la prochaine gnration de DVD permettra d'atteindre une capacit de 1 Po (DVD multicouches couches, avec rayonnement fluorescent sur chaque couche, source StorexTechnology).

4.2 Les diffrentes fonctions d'accs


Il existe diverses mthodes d'accs aux donnes mmorises. Le choix de l'une ou l'autre de ces mthodes dpend surtout de l'utilisation que l'on veut faire de la mmoire. Examinons les principales fonctions d'accs, ainsi que l'utilisation que nous pouvons en faire.

4.2.1 Accs alatoire


L'accs alatoire est la fonction d'accs la plus utilise. La mmoire s'apparente un vecteur de mots (squence de longueur fixe de bits). A chaque mot est associ un indice unique : l'adresse. Cet indice, ou adresse, permet de dsigner, de manire non ambige, le mot recherch. Le fonctionnement de ce type de mmoire est celui dj prsent au chapitre 1.3.5. Un registre RA permet de mmoriser l'adresse de l'information traiter (en lecture ou en criture). Un registre RM est utilis pour recevoir, lors d'une opration de lecture, l'information lue, ou lors d'une opration d'criture, l'information mmoriser. A tout instant, n'importe quelle adresse peut tre traite, d'o le nom d'accs alatoire. La taille d'une adresse dpend de la capacit de la mmoire utilise. Ainsi, pour une mmoire de 4 gigamots, il faut utiliser une adresse de 32 bits, minimum. Utilisation: Ce type de mmoire est surtout utilis pour la mmoire principale, c'est dire la mmoire qui contient la fois le programme excuter, et les donnes manipules par le programme. Nous reviendrons, dans la section 4.3 sur les diverses manires d'organiser une telle mmoire. Les oprations utilises pour ce type d'accs sont: Lecture(adr) Ecriture(adr, donne) lecture de la donne mmorise dans le mot d'adresse adr. criture de donne dans le mot d'adresse adr.

Exemple de fonctionnement: Voici une srie d'oprations effectues sur une mmoire RAM, avec l'indication, pour les oprations de lecture, de la donne lue: Page 71 sur 96

Structure et Fonctionnement des Ordinateurs (2e MIC) - Polycopi du cours

Opration Ecriture(0, abc) Ecriture(1, def) Ecriture(2, ghi) Lecture(1) Ecriture(1, jkl) Lecture(2) Lecture(1) Lecture(2)

Donne lue

def ghi jkl ghi

4.3 Organisation de la mmoire principale


En gnral, on ne dispose pas de circuits correspondant exactement la capacit de mmoire que l'on souhaite avoir pour une machine. Dans certains cas, on peut tre amen utiliser des technologies diffrentes dans un mme espace mmoire (par exemple, avoir de la mmoire ROM avec de la mmoire RAM).

S le c t io n Le c t u r e

S le c t io n Le c t u r e E c r it u r e

ROM 4 0 9 6 x8
Ad r e s s e
12

RAM 1 0 2 4 x8
D
8

Ad r e s s e
10

La figure 4.0 prsente l'interface de circuits typique de mmoire ROM et RAM. Nous supposerons que nous avons notre disposition des circuits de mmoire ROM de 4096 mots de 8 bits, et des circuits de mmoire RAM de 1024 mots de 8 bits. Chaque type de circuit possde en entre un signal de slection, un signal de lecture, une entre Adresse, et pour le circuit mmoire RAM, un signal d'criture. Les sorties D utilisent une technologie haute impdance; la sortie est active si le circuit est slectionn dans un mode lecture. On dsire construire une mmoire pour une machine disposant d'un espace adressable de 2 16 mots. La machine travaille sur des mots de 32 bits. Pour obtenir un mot, nous devrons utiliser, en parallle, 4 circuits de mots de 8 bits. Bien que disposant de 16 bits d'adresse, on ne veut construire qu'une mmoire comprenant 4096 mots en mmoire RAM, et autant en mmoire ROM. La premire tape consiste dfinir une carte d'adresses mmoires, c'est dire dfinir dans l'espace mmoire, la position de chaque zone mmoire. Nous choisissons d'avoir la mmoire RAM dans les adresses les plus basses de l'espace adressable, et la mmoire ROM dans les adresses les plus leves de l'espace adressable. Nous obtenons alors le tableau .

Page 72 sur 96

Structure et Fonctionnement des Ordinateurs (2e MIC) - Polycopi du cours

circuits RAM 0-i RAM 1-i RAM 2-i RAM 3-i libre ROM 4-i

sous-espace adressable 0000 16-03FF 16 0400 16-07FF 16 0800 16-0BFF 16 0C00 16-0FFF 16 1000 16-EFFF 16 F000 16-FFFF 16

bus adresse 0000 00xx xxxx xxxx 0000 01xx xxxx xxxx 0000 10xx xxxx xxxx 0000 11xx xxxx xxxx 1111 xxxx xxxx xxxx

Table 4.2 : Exemple de carte d'adresses Nous obtenons alors l'organisation de mmoire prsente dans la figure 4.1.
Le c t u r e E c r it u r e Bu s Ad r e s s e M e m o ir e
1 1 -1 0 2 15 14 13 12 9 -0 10 16

CS 0 1 2 3

S le c t io n Le c t u r e E c r it u r e

0 -3

S le c t io n Le c t u r e E c r it u r e

0 -2

S le c t io n Le c t u r e E c r it u r e

0 -1

S le c t io n Le c t u r e E c r it u r e

0 -0

RAM 1 0 2 4 x8
Ad r e s s e
10

RAM 1 0 2 4 x8
D
8

RAM 1 0 2 4 x8
D
8

RAM 1 0 2 4 x8
D
8

Ad r e s s e
10

Ad r e s s e
10

Ad r e s s e
10

S le c t io n Le c t u r e E c r it u r e

1 -3

S le c t io n Le c t u r e E c r it u r e

1 -2

S le c t io n Le c t u r e E c r it u r e

1 -1

S le c t io n Le c t u r e E c r it u r e

1 -0

RAM 1 0 2 4 x8
Ad r e s s e
10

RAM 1 0 2 4 x8
D
8

RAM 1 0 2 4 x8
D
8

RAM 1 0 2 4 x8
D
8

Ad r e s s e
10

Ad r e s s e
10

Ad r e s s e
10

S le c t io n Le c t u r e E c r it u r e

2 -3

S le c t io n Le c t u r e E c r it u r e

2 -2

S le c t io n Le c t u r e E c r it u r e

2 -1

S le c t io n Le c t u r e E c r it u r e

2 -0

RAM 1 0 2 4 x8
Ad r e s s e
10

RAM 1 0 2 4 x8
D
8

RAM 1 0 2 4 x8
D
8

RAM 1 0 2 4 x8
D
8

Ad r e s s e
10

Ad r e s s e
10

Ad r e s s e
10

S le c t io n Le c t u r e E c r it u r e

3 -3

S le c t io n Le c t u r e E c r it u r e

3 -2

S le c t io n Le c t u r e E c r it u r e

3 -1

S le c t io n Le c t u r e E c r it u r e

3 -0

RAM 1 0 2 4 x8
Ad r e s s e
10

RAM 1 0 2 4 x8
D
8

RAM 1 0 2 4 x8
D
8

RAM 1 0 2 4 x8
D
8

Ad r e s s e
10

Ad r e s s e
10

Ad r e s s e
10

S le c t io n Le c t u r e

4 -3

S le c t io n Le c t u r e

4 -2

S le c t io n Le c t u r e

4 -1

S le c t io n Le c t u r e

4 -0

ROM 4 0 9 6 x8
9 -0 9 -0

ROM 4 0 9 6 x8
9 -0

ROM 4 0 9 6 x8
9 -0

ROM 4 0 9 6 x8
D
8

Ad r e s s e
1 1 -1 0 1 2 2

Ad r e s s e
1 1 -1 0 1 2 2

Ad r e s s e
1 1 -1 0 1 2 2

Ad r e s s e
1 1 -1 0 1 2 2

8 3 1 -2 4 32

8 2 3 -1 6

8 1 5 -8

8 7 -0

Bu s Do n n e e

Page 73 sur 96

Structure et Fonctionnement des Ordinateurs (2e MIC) - Polycopi du cours

Fig 4.1 : Organisation d'une mmoire Dans la figure 4.1, nous avons une mmoire adressable au mot, c'est dire que deux valeurs conscutives d'adresse dsignent deux mots conscutifs. Il est possible, avec cette mme structure de mmoire d'avoir un adressage l'octet, c'est dire que deux valeurs conscutives d'adresse dsignent deux octets conscutifs et non pas deux mots. Ainsi, le premier mot aura l'adresse 0, le second aura l'adresse 4 (dans la figure, le mot une largeur de 32 bits), le troisime aura l'adresse 8, etc. Il se pose alors le problme de l'adresse de l'octet de faible poids dans le mot. On peut lui donner, par rapport au mot, l'adresse la plus faible, c'est la convention petit bout (Little Endian), ou bien l'adresse la plus leve, c'est la convention gros bout (Big Endian). Le tableau ci-dessous rsume ces deux conventions, pour une mmoire organise en mots de 32 bits, avec adressage l'octet. Petit Bout 03 02 01 00 07 06 05 04 11 10 09 08 15 14 13 12 ... Gros Bout 00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 ...

La famille x86 utilise l'ordre petit Bout. La famille 68000 utilise l'ordre gros bout. En fait, cela n'a aucune importance tant que l'on ne mlange pas les diffrents type de donnes. Par contre, si l'on souhaite voir, par exemple, un mot comme un tableau d'octets, la convention utilise aura son importance. De mme lorsqu'on change des informations entre machines ayant des conventions d'adressage diffrentes. Un consquence de l'adresse l'octet est l'alignement des donnes de tailles suprieures l'octet. Une donne de taille n octets et d'adresse A sera aligne si on a A mod s = 0. Par exemple, dans le cas de mot, les mots d'adresses 0, 2, 4, 6, ... sont aligns tandis que les mots d'adresse 1, 3, 5, 7, ... ne le sont pas.

4.4 Contrleur de mmoire dynamique


Du fait de leur grande capacit et de leur structure interne, les circuits de mmoire dynamique multiplexent le bus adresse. Ainsi, comme le montre la figure 4.2, une mmoire de 4 Mga mots de 1 bit ne dispose que de 11 entres d'adresse, alors que l'espace adressable ncessite 22 bits. Il est alors ncessaire de fournir deux signaux pour indiquer que l'on envoie soit les 11 bits de poids fort (adresse d'une ligne : RAS) soit les 11 bits de poids faible (adresse d'une colonne : CAS). C'est le signal CAS qui va permettre de slectionner, en lecture ou en criture, tel ou tel circuit de mmoire. Pour donner une ide du temps d'accs de ces mmoires, en 1995, un circuit de 64 Mgabits offre un temps de cycle de 90 ns environ, avec un temps d'accs ligne de 59 ns 65 ns et un temps d'accs colonne de 10 ns. Pour ce type de circuit, le rafraichissement prend environ 5% du temps d'utilisation. Actuellement, les temps d'accs des mmoires sont identiques, mais les capacits sont beaucoup plus importantes (de l'ordre du Gb).

Page 74 sur 96

Structure et Fonctionnement des Ordinateurs (2e MIC) - Polycopi du cours

Si l'on souhaite raliser, par exemple une mmoire de 16 Mga mots, partir de circuits de 4 Mga bits, nous devrons assembler ensemble 4 circuits diffrencis uniquement par le signal CAS. Nous devrons donc tre capable de gnrer 4 signaux CAS diffrents, suivant l'addresse slectionne.

Ad r
11

4 M x1
Ra s Ca s We D

Fig 4.2 : Circuit mmoire dynamique (4M fois 1 bit) Un autre problme des mmoires dynamiques rside dans la ncessit d'effectuer priodiquement un cycle de rafraichissement. Il faut donc grer un compteur permettant de connatre, tout moment, le numro de ligne devant subir un cycle de rafraichissement. La ralisation d'une mmoire de 16 mga mots partir de circuits de 4 mga bits conduira au schma de la figure 4.3 (le schma reprsente en fait une mmoire de 16 mga mots de 1 bit. Pour obtenir une mmoire avec des mots de n bits, il suffit de remplacer chaque circuit de 4 Mga bits par n circuits de 4 Mga bits, assembls en parallle).

24

2 3 -2 2
2

2 1 -1 1
11

1 0 -0
11

D
1 11 2 11

D Ad r Ad r

D Ad r

Ad r

4 M x1
Ra s Ca s We

4 M x1
Ra s Ca s We

4 M x1
Ra s Ca s We

4 M x1
Ra s Ca s We

Ct r

Le c t u r e E c r it u r e

Co m m a n d e

Co n t r le u r

Fig 4.3 : Contrleur de mmoire dynamique (16M mots) Dans le schma de la figure 4.3, la partie compteur, la partie multiplexage de l'adresse ainsi que la partie gnration des signaux RAS et CAS forme le contrleur de la mmoire. Ce contrleur est en gnral disponible dans un seul circuit intgr, offrant en plus d'autres fonctionnalits (contrle d'accs au bus de donne, ...).

Page 75 sur 96

Structure et Fonctionnement des Ordinateurs (2e MIC) - Polycopi du cours

Page 76 sur 96

Structure et Fonctionnement des Ordinateurs (2e MIC) - Polycopi du cours

Chapitre 5

Les instructions
Nous examinons dans ce chapitre, l'architecture du jeu d'instructions qui est la partie de la machine visible par le programmeur. L'architecture est en quelque sorte l'interface entre le matriel et le logiciel.

5.1 Classification des jeux d'instructions


Chaque machine, ou famille de machine possde un jeu d'instructions spcifique. Nous avons dj vu au chapitre 1 une taxinomie de machine d'aprs le nombre d'adresses d'oprandes manipuls par l'instruction. On peut galement faire une classification suivant la relation entre la mmoire et les registres. Ainsi, nous pourrons distinguer les architectures registre-mmoire dont les instructions peuvent manipuler les donnes directement dans les registres ou dans la mmoire, et les architectures chargement-rangement (ou registre-registre) dont les seules instructions utilisant la mmoire sont les instructions de chargement de registres (load) et rangement de registres (store). Certaines machines anciennes faisaient partie d'une troisime catgorie, les architectures mmoire-mmoire. Naturellement chaque classe de machine possde ses avantages et ses inconvnients. Une architecture chargement-rangement permet un codage simple de l'instruction et une excution rapide en un nombre fixe de cycles. Ceci facilitera la ralisation du compilateur. En contre partie, le nombre d'instructions gnres par un compilateur pour un programme donn peut-tre important. De plus, un codage uniforme peut entrainer un gaspillage de bit dans le cas d'instructions courtes. Une architecture registre-mmoire permet de gnrer un code plus compact que celui gnr pour l'architecture chargement-rangement. Malheureusement les instructions sont plus difficiles dcoder, et surtout ncessitent un nombre de cycles d'horloge variable pour s'excuter. Les architectures mmoire-mmoire conduisent la gnration de code la plus compacte. Mais cela implique des instructions plusieurs tailles. De plus, lors de l'excution, les accs mmoires constituent un goulet d'tranglement. La tendance actuelle va dans le sens des machines chargement-rangement.

5.2 Un exemple de jeu d'instructions


Examinons le jeux d'instructions de la machine simproc dont le simulateur sera utilis en sance de TP (une version simplifie de cette machine a t utilise dans le premier chapitre). Avant de regarder la smantique de ces instructions, c'est dire comment elles s'excutent sur la machine, il faut connaitre la syntaxe, c'est dire la manire de les reprsenter ou les coder en binaire. Nous avons dj vu les 3 formats possibles pour coder ces instructions :
15 12 11 8 7 4 3 0

COP

S CO

A B
Page 77 sur 96

Structure et Fonctionnement des Ordinateurs (2e MIC) - Polycopi du cours

15

12 11

COP
15 12 11

S CO
8 7

d pla ce me nt
0

COP

S CO

d pla ce me nt

donn e imm dia te

Toutes les instructions possdent en commun le code opration (COP) qui permet de dterminer, entre autre, le format de ses paramtres. Dans notre exemple de machine, un premier paramtre donnant l'extension du code opration (SCO) se retrouve dans toutes les instructions, mais cela n'est pas une gnralit. Le premier format permet de faire rfrence deux oprandes A et B qui sont en fait des numros de registre de la machine. Nous avons donc un exemple de machine disposant d'instructions 2 adresses. Chaque adresse permet de rfrencer l'un parmi les 16 registres de la machine (les instructions utilisant l'unit arithmtique et logique de notre machine, comme l'instruction ADD, sont codes de cette manire). Le deuxime format utilise, la place de 2 adresses de registre, une adresse d'instructions sur 8 bits. Etant donn que l'adressage de la mmoire ncessite plus de 8 bits, cela ne peut tre qu'une adresse relative par rapport une autre (en gnral celle contenue dans le compteur de programme de la machine), on l'appelle alors une dplacement (les instructions de branchement de notre machine, comme l'instruction JNN, sont codes de cette manire). Quelques fois, nous avons besoin de manipuler dans l'instruction une valeur code sur un mot entier. Une solution souvnet utilise consiste prendre le mot suivant l'instruction. On obtient alors le troisime format qui necessite deux mots au lieu d'un seul (les instructions de notre machine utilisant une donne immdiate, comme l'instruction LDI, sont codes de cette manire). Nous pouvons organiser l'ensemble des instructions de cette machine dans 4 groupes : le groupe 0 contient les instructions qui utilisent l'unit arithmtique et logique de la machine :

Page 78 sur 96

Structure et Fonctionnement des Ordinateurs (2e MIC) - Polycopi du cours

le groupe 1 rassemble les instructions de transfert d'information (entre registres, mmoire et registre, registre et priphrique) :

Page 79 sur 96

Structure et Fonctionnement des Ordinateurs (2e MIC) - Polycopi du cours

le groupe 2 rassemble les instructions de branchement (conditionnel ou inconditionnel) :

Page 80 sur 96

Structure et Fonctionnement des Ordinateurs (2e MIC) - Polycopi du cours

le groupe 3 rassemble le reste des instructions. On y trouve des instructions de squencement (comme les appel et retour de sous-programme ou la gestion des interruptions), et des instructions mettant en oeuvre directement les indicateurs de l'unit arithmtique et logique (remise zro de la retenue) :

Page 81 sur 96

Structure et Fonctionnement des Ordinateurs (2e MIC) - Polycopi du cours

5.3 L'adressage des oprandes


L'instruction fait rfrence une donne. Pour cela elle a besoin de connatre l'adresse de cette donne (dans le cas d'une adresse mmoire, on parle d'adresse effective). Cette adresse effective peut tre fournie l'instruction soit directement, soit par l'intermdiaire d'une autre donne, soit par un calcul. Le mode d'adressage indique comment est obtenue cette adresse effective. Plusieurs modes d'adressages peuvent tre utiliss dans les ordinateurs. Nous les dcrivons ici en utilisant une notation qui n'est pas normalise, mais souvent utilise, en particulier au niveau du langage d'assemblage. Parmi tous ces modes d'adressage, les modes d'adressage Dplacement, Immdiat et Indirect par registres sont les modes les plus utiliss (de 75% 99%).

5.3.1 Adressage direct de registre


L'oprande se trouve dans le registre. On indique donc un numro de registre dans l'instruction. Par exemple, l'instruction Add R4, R3 permet d'additionner le contenu du registre R4 au contenu du registre R3.

5.3.2 Adressage indirect de registre


L'oprande se trouve en mmoire l'adresse donne dans un registre directement dsign par l'instruction. Par exemple, l'instruction load R3, [R5] permet de charger le registre R3 (adressage

Page 82 sur 96

Structure et Fonctionnement des Ordinateurs (2e MIC) - Polycopi du cours

direct de registre) avec le contenu du mot de la mmoire dont l'adresse se trouve dans le registre R5 (adressage indirect de registre).

5.3.3 Adressage immdiat ou littral


L'oprande se trouve directement dans l'instruction. Par exemple, l'instruction Add R4, #3 permet d'additionner la valeur immdiate 3 au contenu du registre R4.

5.3.4 Adressage implicite


L'information manipule n'est pas donne par un paramtre de l'instruction, mais est indique de manire implicite par le code opration de l'instruction. Par exemple, l'instruction clearCarry fait rfrence de manire implicite l'indicateur de retenue de l'unit arithmtique et logique.

5.3.5 Adressage Direct ou absolu


L'adresse de l'oprande est donne directement dans l'instruction. Par exemple, l'instruction Add R1, (1001) fait rfrence au mot de la mmoire situ l'adresse 1001. Cet adressage s'utilise souvent pour l'accs aux variables globales.

5.3.6 Adressage indirect via la mmoire


L'adresse de l'oprande est le contenu de l'adresse mmoire donne par un registre. Par exemple, l'instruction Add R1, @(R3) permet d'ajouter au registre R1, le contenu du mot dont l'adresse se trouve dans le mot adress par le registre R3.

5.3.7 Adressage avec dplacement ou bas


L'adresse de l'oprande est donne en deux parties, une base, et un dplacement. Par exemple, l'instruction Add R4, 100(R1) permet d'ajouter au registre R4, le contenu du mot mmoire dont l'adresse est obtenue en ajoutant le contenu du registre R1 (la base) un dplacement, la valeur 100. C'est le dplacement utilis pour l'accs des variables locales une procdure.

5.3.8 Adressage index


L'adresse de l'oprande s'obtient en ajoutant une premire adresse, le contenu d'un registre appel l'index. Par exemple, l'instruction Add R4, (R1+R2), l'adresse de la deuxime oprande est obtenue en additionnant le registre R1 au registre R2.

5.3.9 Adressage post-incrment


C'est un adressage indirect par registre, avec une opration d'incrmentation du registre aprs l'accs la donne. Par exemple, dans l'instruction Add R1, (R2)+, aprs l'accs l'oprande dont l'adresse est donne par le registre R2, on ajoute 1 au contenu de ce registre. Ce mode d'adressage est utile si on souhaite parcourir tous les lments d'un tableau.

Page 83 sur 96

Structure et Fonctionnement des Ordinateurs (2e MIC) - Polycopi du cours

5.3.10 Adressage pr-dcrment


Comme l'adressage prcdent, mais avec une opration de dcrmentation (-1) du registre avant l'accs indirect la donne. Par exemple, dans l'instruction Add R1, -(R2), avant l'accs l'oprande on soustrait 1 du registre R2 qui contient alors l'adresse de l'oprande. Post-incrment ou pr-dcrment peuvent s'utiliser pour effectuer un accs LIFO par exemple.

5.3.11 Adressage index tendu


L'adresse de l'oprande est obtenu en ajoutant une donne immdiate 100 au contenu d'un registre et au produit entre la taille de la donne et un autre du registre. Par exemple, dans l'instruction Add R1, 100(R2)[R3], l'adresse de l'oprande est obtenu en ajoutant la donne immdiate 100 au contenu du registre R2 et au produit du contenu du registre R3 par la taille du type de la donne manipule. Ce mode d'adressage peut s'utiliser pour indexer des tableaux. Notons enfin que la plupart des instructions de contrle utilisent le compteur de programme comme registre implicite. Trs souvent, le mode d'adressage utilis pour ces instructions sont des adressages relatifs ce compteur de programme. ceci permet d'amliorer la relogeabilit des programmes dans la mmoire.

Page 84 sur 96

Structure et Fonctionnement des Ordinateurs (2e MIC) - Polycopi du cours

Chapitre 6

Unit de commande
Dans les chapitres prcdents, nous avons appris comment raliser les diffrents lments constituant l'ordinateur, et comment les relis entre eux pour former le chemin de donnes. La figure ci-dessous montre un exemple d'organisation

Cin S1 @2
0 1 2

S3
Din

1 4

S6 Dout Din

Out 2 ALU

Re gis tre s
@1
Wr W5

Out 1
4

S4

M moire
@

c z n v

W4
1

W1

Re gis tre Ins truction


2-0 6-4 11-8 7-0 15-12

S5 0 +1
0 1 2

S2

Wr

W2

PC

W3

S CO COP

Pour effectuer une opration particulire, il faut d'une part ouvrir certaines liaisons, et d'autre part, chantillonner les signaux dans l'un des dispositifs de mmorisation (registre ou mmoire).

+
Page 85 sur 96

Structure et Fonctionnement des Ordinateurs (2e MIC) - Polycopi du cours

Cin S1 @2
0 1 2

S3
Din

S6 Dout Din

Out 2

ALU

Re gis tre s
@1
Wr W5

Out 1
4

S4

M moire
@

c z n v

W4
1

W1

Re gis tre Ins truction


2-0 6-4

S5 0 +1
0 1 2

S2

Wr

W2

PC

W3

7-0

Par exemple, pour charger le registre instruction avec l'instruction adresse par le compteur de programme PC, il faut positionner S4 = 1 (on slectionne la sortie de l'additionneur comme entre adresse de la mmoire) S5 = 0 (on slectionne la valeur 0 comme premire entre de l'additionneur) Ensuite, il faut actionner W1 (la commande de chargement du registre instruction). Le signal de chargement devant intervenir lorsque les diffrentes entres sont stabilises:
H o r lo g e Do u t W1

Le dispositif qui va se charger de gnrer ces diffrents signaux s'appelle le squenceur.

6.1 Le squenceur cabl


Comment peut-on raliser le squenceur cabl ?

6.1.1 Inventaire des diffrentes commandes


La premire opration consiste faire l'inventaire des diffrentes commandes gnrer. Nous avons vu que nous avions deux types de commandes, celles pour tablir un chemin (Si ou Cin), celles pour chantillonner et mmoriser une information (Wi) : W1 : Chargement du registre instruction W2 : Chargement du compteur ordinal W3 : Ecriture mmoire W4 : Ecriture code condition W5 : Ecriture mmoire de registres S1 : Slection entre mmoire de registres S2 : Slection entre du compteur ordinal

Page 86 sur 96

Structure et Fonctionnement des Ordinateurs (2e MIC) - Polycopi du cours

S3 : Slection retenue entrante S4 : Slection adresse mmoire S5 : Slection additionneur compteur ordinal S6 : Opration unit arithmtique ou logique Cin : retenue entrante

6.1.2 Inventaire des diffrentes tats


La deuxime tape consiste faire l'inventaire des diffrents tats du squenceur. Par exemple, ici, nous pouvons imaginer que l'excution d'une instruction s'effectue en 4 tapes : 00 2 : Recherche de l'instruction : 01 2 : Incrmentation du compteur ordinal 10 2 : Excution 1 11 2 : Excution 2 Quelques instructions peuvent ncessiter que trois tapes. Pour simplifier nous considrerons qu'il y en a 4 quelque soit l'instruction. Si cela n'est pas possible, il faudra revoir la conception du squenceur. Pour chaque tape, nous dfinissons une phase de l'horloge pour l'tablissement d'un chemin, ainsi qu'un signal d'chantillonnage. Nous aurons ainsi, les signaux d'horloge suivants:
H o r lo g e H0 H W0 H1 H W1 H2 H W2 H3 H W3

6.1.3 Dfinition des quations logiques


Pour chaque commande que nous avons mis en vidence, nous pouvons maintenant tablir les quations logiques. Certaines seront simples, d'autres plus complexes. Regardons, par exemple le cas de trois signaux : W1, W2 et S5.

6.1.3.1 W1 : Chargement du registre instruction


Le chargement du registre instruction se fait uniquement pendant la premire phase, quel que soit l'instruction. Donc W1 = HW0 Page 87 sur 96

Structure et Fonctionnement des Ordinateurs (2e MIC) - Polycopi du cours

6.1.3.2 W2 : Chargement du compteur ordinal


Le chargement du compteur ordinal se fait pendant la deuxime phase, quel que soit l'instruction, ainsi que lors de la troisime phase suivant certaines conditions, pour les instructions de branchement, mais aussi pour l'instruction LDI (COP=1, SCO=4). Par exemple, pour l'instruction JMP (COP=2, SCO=0), en plus du chargement lors de la deuxime phase, nous aurons un chargement durant la troisime phase. Pour l'instruction JNN (COP=2, SCO=6), en plus du chargement lors de la deuxime phase, nous aurons un chargement durant la troisime phase si l'indicateur N de l'alu indique 0 (non ngatif). Donc l'quation de W2 sera de la forme: W2 = HW1 (HW2 ((COP=2 SCO=0) (COP=2 SCO=6 N=0) (COP=1 SCO=4) ...) )

6.1.3.3 S5 : Slection de la valeur ajouter au PC


Le chargement du compteur ordinal se fait en ajoutant +1 pendant la deuxime phase, quel que soit l'instruction, mais aussi lors de la troisime phase pour l'instruction LDI (COP=1, SCO=4), tandis que pour les instructions JMP (COP=2, SCO=0) ou JNN (COP=2, SCO=6) on ajoute la valeur fournie par l'instruction. Donc l'quation de S5 sera de la forme: S5 = (H1 '01') (H2 ((COP=2 SCO=0) (COP=2 SCO=6 N=0)) '10') (H2 (COP=1 SCO=4) '01') ... Remarque : attention, ici la commande S5 tant sur 2 bits, l'quation prcdente doit s'interprter de la manire suivante : S5 1 = (H1 '0') (H2 ((COP=2 SCO=0) (COP=2 SCO=6 N=0)) '1') (H2 (COP=1 SCO=4) '0') ... = (H2 COP=2 (SCO=0 (SCO=6 N))) ... S5 0 = (H1 '1') (H2 ((COP=2 SCO=0) (COP=2 SCO=6 N=0)) '0') (H2 (COP=1 SCO=4) '1') Page 88 sur 96

Structure et Fonctionnement des Ordinateurs (2e MIC) - Polycopi du cours

... = H1 (H2 COP=1 SCO=4) ...

6.1.4 Gnration des signaux


La gnrateur des signaux s'obtient simplement partir de la synthse avec les portes logiques, des quations prcdentes :

N
0 1 2

... ... ...

W2

S CO

4 5 6 ... 15

S 51 S 50

0 1 2

COP HW1 H1 HW2 H2

4 5 ... 7

Cette manire de raliser un squenceur cabl tait l'approche suivie pour la fabrication des premiers ordinateurs. Cette mthode prsente quelques dsavantages. D'abord, la complexit est proportionnelle celle du jeu d'instructions. Ici, nous avons choisi des instructions trs simples. Si nous voulons rajouter des insrtructions plus complexes, calcul de la racine carre par exemple, la cration du squenceur deviendrait trs difficile. Ensuite, nous concevons aisment que la modification d'une seule instruction remet en cause TOUT le squenceur et conduit une nouvelle tude des quations logiques. Il devient donc trs difficile de mettre au point une machine, et quasiment IMPOSSIBLE modifier.

6.2 Le modle de Wilkes


La microprogrammation est une alternative lgante aux squenceurs cabls. Les bases en ont t dfinies par M. Wilkes ds 1951. La microprogrammation fait rfrence l'usage d'une mmoire (appele mmoire de contrle) pour raliser l'unit de squencement d'une machine. Dans son modle, M. Wilkes voyait la mmoire de contrle comme deux matrices de diodes. La premire matrice dtermine les microcommandes du chemin des donnes, tandis que la deuxime matrice dtermine, en partie du moins, la prochaine micro-instruction excuter pour continuer l'interprtation de l'instruction courante. Le choix de cette Page 89 sur 96

Structure et Fonctionnement des Ordinateurs (2e MIC) - Polycopi du cours

prochaine micro-instruction peut tre influenc par un signal, par exemple, ici l'indicateur N de l'unit arithmtique et logique :
0 1 COP

D code ur

2 3 4 5

S CO

Re gis tre

Le registre mmorise le numro de la ligne de la matrice qui sera slectionne. Le circuit dcodeur permet alors d'activer ( le fil horizontal correspondant ce numro. Si une liaison, par une diode, existe entre le fil horizontal slectionn et un fil vertical, ce dernier se trouvera actif, c'est dire fournira la valeur logique 1, sinon il restera la valeur logique 0. Chaque micro-instruction donne une partie du numro de la microinstruction suivante, le reste du numro pouvant provenir du registre instruction, par exemple ici le code opration (COP) et le paramtre SCO. L'intrt de cette approche vient du fait qu'il est trs facile de modifier le fonctionnement de la machine, car il suffit de changer simplement la mmoire de contrle, sans toucher au reste de la machine. La technique de microprogrammation introduite par M. Wilkes a ensuite suivie l'volution de la technologie. Elle a conduit au concept d'mulation qui consiste excuter sur une machine, un programme crit dans un autre langage machine (VAX 11-80, B1700, QM-1).

6.3 Unit de commande microprogramme


6.3.1 Schma
Schmatiquement, l'unit de contrle microprogramme se prsente comme suit:

Page 90 sur 96

{
Comma nde s

Structure et Fonctionnement des Ordinateurs (2e MIC) - Polycopi du cours

M moire de contrle

re gis tre microins truction Unit


Com m ande s

Ca lcul a dre s s e s uiva nte


Etat (COP, S CO, C, Z, S , V, ...)

Fonctionne lle

Un registre de microinstruction mmorise chaque cycle d'horloge la microinstruction excuter. La microinstruction comprend deux parties, l'une correspondant aux commandes envoyes sur le chemin de donnes ou unit fonctionnelle (les signaux Si, Wi, Cin, ..), l'autre permettant de calculer l'adresse de la microinstruction suivante.

6.3.2 Calcul de l'adresse suivante


Le module Calcul adresse suivante permet, partir des informations fournies par la micro-instruction, ainsi que des informations issues du chemin de donnes (indicateurs UAL, COP, SCO, ...), de calculer l'adresse de la prochaine micro-instruction. Enfin, la mmoire de contrle est le support de mmorisation des micro-instruction. Cette mmoire est en gnral lecture seule (ROM), mais peut aussi tre lecture/criture, ce qui permet de modifier le fonctionnement d'une machine par un simple chargement de microprogramme (microprogrammation dynamique, mulation). On retrouve dans ce fonctionnement le schma du modle Von Neumann, cycle recherche - excution, mais trs simplifi puisque l'quivalent de l'instruction, la microinstruction, doit tre recherch chaque cycle de l'horloge de base. La microinstruction permet de gnrer les commandes des ressources matrielles d'une machine. Ces commmandes sont donc figes par le matriel. On peut cependant les combiner de diverses manires : chaque bit de la microinstruction correspond un bit de commande. On parle alors de microprogrammation horizontale, les microinstructions sont de grande taille mais permettent un contrle simultan sur toute les ressources de la machine, et donc une meilleure performance. la microinstruction est compose de plusieurs champs (voire un seul), chaque champ permettant de slectionner une seule commande parmi plusieurs. On parle alors de microprogrammation verticale, les microinstructions sont plus courtes mais plus nombreuses car elles offrent moins de Page 91 sur 96

Structure et Fonctionnement des Ordinateurs (2e MIC) - Polycopi du cours

possibilits pour le contrle de la machine. De plus, le dcodage de chaque champ entraine un dlai supplmentaire, et donc temps de cycle de microinstruction plus long que dans le cas de la microprogrammation horizontale. Regardons plus attentivement comment calculer l'adresse de la microinstruction suivante. Ce calcul dpend de l'tat du contrleur, c'est dire en fait de la microinstruction courante, mais aussi de certaines informations founies par le chemin de donne. L'une de ces informations est videmment le code opration de l'instruction en cours d'excution (ainsi que, dans notre machine, de l'extension du code opration : SCO). En effet, dcoder l'instruction reviendra ici excuter une squence de microinstructions associes au code opration. Une solution possible consiste calculer une adresse de micro-instruction partir du code opration, et ici de l'extension du code opration. Ce calcul peut se faire simplement par concatnation de champs, par exemple '10'+COP+SCO (o + signifie concatener : si COP='01' et SCO='0110' on obtiendra l'adresse '10010110'). Quelquefois, l'adresse de la microinstruction suivante pourra dpendra d'un indicateur de l'unit arithmtique et logique. C'est le cas lorsqu'on veut excuter une instruction conditionnelle, par exemple JNN adr qui signifie branchement une adresse si l'indicateur Ngatif n'est pas positionn. Suivant la valeur de l'indicateur N, il faudra effectuer certaines oprations ou d'autres, ce qui peut se traduire par excuter une squence de microinstructions ou une autre. Dans ce cas, une solution consiste calculer une adresse de microinstruction partir de la valeur de l'indicateur N, par exemple, en utilisant une adresse de microinstruction fournie par la microinstruction elle-mme, mais en utilisant, comme bit de faible poids, l'indicateur lui-mme. Enfin, l'adresse de la microinstruction suivante pourra tre fournie directement et compltement par la microinstruction courante elle-mme. La figure ci-dessous donne un exemple de calcul d'adresse de microinstruction. Trois champs de la microinstruction commandent ce calcul : SelSeq : 0 permet de calculer l'adresse partir d'une adresse fournie par le champ Adr et ventuellement des indicateurs de l'unit arithmtique et logique, 1 permet de calculer l'adresse partir du code opration et de son extension, prsents dans le registre instruction Adr : les forts poids d'une adresse de microinstruction SelTest : la slection du bit de faible poids de l'adresse fournie par la microinstruction 0 : la valeur 0 1 : la valeur 1 2 : l'indicateur C ...

Par exemple la microinstruction ayant SelSeq='0' Adr='0010110' SelTest='000', permettra de slectionner comme adresse suivante '00101100' la microinstruction ayant SelSeq='0' Adr='0010110' SelTest='001', permettra de slectionner comme adresse suivante '00101101' la microinstruction ayant SelSeq='0' Adr='0010110' SelTest='010', permettra de slectionner comme adresse suivante '00101100' si l'indicateur C n'est pas positionn, '00101101' sinon la microinstruction ayant SelSeq='1' (les champs Adr et SetTest ne sont pas utiliss), permettra de slectionner comme adresse suivante '10101101' si le code oprations est '101' et l'extension SCO est '101' Page 92 sur 96

Structure et Fonctionnement des Ordinateurs (2e MIC) - Polycopi du cours

6.3.3 Cycle de la microinstruction


La microinstruction s'excute en un seul cycle d'horloge. Le chargement du registre de microinstruction se fait sur le front montant de l'horloge. Comme nous l'avions fait pour le squenceur cabl, le chargement des diffrents registres/mmoire du chemin de donne (Registre instruction, Compteur Ordinal, criture mmoire, ...), chargement command par les diffrentes commandes Wi, se fera avant la fin du cycle de l'horloge comme indiqu par le diagramme suivant:
H o r lo g e Ch t Re g M ic r o In s t H Wi

Page 93 sur 96

Structure et Fonctionnement des Ordinateurs (2e MIC) - Polycopi du cours

6.3.4 Exemples de microprogramme


6.3.4.1 Recherche de l'instruction
Nous supposons que la phase de fetch dbute la microinstruction d'adresse 0. Nous avons dj vu les microcommandes positionner pour le chemin de donne :

Cin S1 @2
0 1 2

S3
Din

S6 Dout Din

Out 2
ALU

Re gis tre s
@1
Wr W5

Out 1
4

S4

M moire
@

c z n v

W4
1

W1

Re gis tre Ins truction


2-0 6-4

S5 0 +1
0 1 2

S2

Wr

W2

PC

W3

7-0

Regardons le squencement de ces oprations. La premire microinstruction se chargera d'tablir ce chemin pour charger l'instruction dans le registre instruction. La deuxime permettra d'augmenter le compteur de programme d'une unit, mais aussi de calculer l'adresse de la troisime microinstruction excuter, partir du code opration et de l'extension du code opration. Nous aurons donc les microinstructions :
adresse :SelSeq adr SelTest W1 W2 W3 W4 W5 cIn S1 S2 S3 S4 S5 S6 00000000: 0 0000000 001 1 0 0 0 0 0 00 00 0 1 00 0000 00000001: 1 0000000 000 0 1 0 0 0 0 00 10 0 1 01 0000

6.3.4.2 Instruction ADD


Les microcommandes positionner pour le chemin de donne sont indiques dans la figure ci-dessous :

Page 94 sur 96

Structure et Fonctionnement des Ordinateurs (2e MIC) - Polycopi du cours

Cin S1 @2
0 1 2

S3
Din

S6 Dout Din

Out 2
ALU

Re gis tre s
@1
Wr W5

Out 1
4

S4

M moire
@

c z n v

W4
1

W1

Re gis tre Ins truction


2-0 6-4

S5 0 +1
0 1 2

S2

Wr

W2

PC

W3

7-0

La premire microinstruction correspondant ce code opration se situera l'adresse "84 16=10000100 2 puisque le code opration est 0 et l'extension est 4. En fait, une seule microinstruction sera ncessaire pour cette opration. Donc la microinstruction qui sera ensuite excute sera la premire microinstruction de la phase de fetch (adresse 0) :
adresse :SelSeq adr SelTest W1 W2 W3 W4 W5 cIn S1 S2 S3 S4 S5 S6 10000100: 0 0000000 000 0 0 0 1 1 0 01 00 0 0 00 0001

6.3.4.3 Instruction JNN


Les microcommandes positionner pour le chemin de donne sont indiques dans la figure ci-dessous :

Page 95 sur 96

Structure et Fonctionnement des Ordinateurs (2e MIC) - Polycopi du cours

Cin S1 @2
0 1 2

S3
Din

S6 Dout Din

Out 2
ALU

Re gis tre s
@1
Wr W5

Out 1
4

S4

M moire
@

c z n v

W4
1

W1

Re gis tre Ins truction


2-0 6-4

S5 0 +1
0 1 2

S2

Wr

W2

PC

W3

7-0

La premire microinstruction correspondant ce code opration se situera l'adresse A6 16=10100110 2 puisque le code opration est 2 et l'extension est 6. Pour cette instruction, nous aurons besoin de plusieurs cycles de microinstruction. Or, nous ne pouvons pas mettre la deuxime microinstruction l'adresse suivante A7 16 puisque cette adresse est rserve pour un autre couple (COP, SCO). Donc on va utiliser une adresse libre dans la mmoire de contrle, par exemple l'adresse 4. Comment pouvons nous procder? Simplement en calculant l'adresse de la deuxime microinstruction excuter, partir de l'indicateur N. Si N vaut 0, nous obtiendrons l'adresse 4, et si N vaut 1, nous obtiendrons l'adresse 5. La microinstruction d'adresse 4 permettra de modifier le compteur de programme, tandis que la microinstruction d'adresse 5 le laissera inchang, de manire excuter l'instruction squentiellement suivante. Nous aurons donc :
adresse :SelSeq adr SelTest W1 W2 W3 W4 W5 cIn S1 S2 S3 S4 S5 S6 10100110 : 0 0000010 100 0 0 0 0 0 0 00 00 0 0 00 0000 00000100 : 0 00000101 : 0 0000000 000 0000000 000 0 0 1 0 0 0 0 0 0 0 0 0 00 10 0 00 00 0 0 0 10 0000 00 0000

Cette instruction ncessitera donc, en plus de la phase de fetch, 2 cyles : @A6 puis @4 si N est gal 0, @A6 puis @5 si N est gal 1.

Page 96 sur 96

Vous aimerez peut-être aussi