405-archi

Upload: bestcourse4ucom

Post on 11-Oct-2015

104 views

Category:

Documents


0 download

TRANSCRIPT

  • Circuits et architecture des ordinateurs

    Anne 2011/2012

    Universit Paris Diderot

    Olivier Carton

    Version du 21 dc. 2011

    Licence Creative Commons

  • 1 Circuits et architecture des ordinateurs en M1

    Licence Creative Commons.

    Cours rfrenc sur le site de lUniversit Numrique Ingnierie et Technologie (Unit)

    Rattrapage du cours annul le mardi 6 dcembre de 8h30 10h30 en salle 270F Cours le lundi en salle 470E (halle aux farines) de 13h30 15h30 Bibliographie Travaux dirigs (tkgate version 1.8.7)

    vendredi en salle 473F ou 447C de 8h30 10h30 (Pierre Letouzey) Ce support de cours en PDF Processeur LC3 Rfrences Annes 2006/2007, 2007/2008, 2008/2009, 2009/2010 et 2010/2011 ProjetPrsentation du cours Cours n 1 : historique et reprsentation des donnes

    galeries de photos entiers entiers signs

    Cours n 2 : reprsentation des donnes (suite), transistors, portes rels (norme IEEE 754) caractres (ASCII et Unicode) logique de Boole table de vrit tableaux de Karnaugh transistors portes logiques (inverseur, nand, nor)

    Cours n 3 : additionneurs circuits lmentaires additionneurs

    semi-additionneur additionneur complet additionneur par propagation de retenue (ripple-carry adder) calcul des indicateurs soustraction

    Cours n 4 : additionneurs (suite) additionneur par anticipation de retenue (carry-lookahead adder) additionneur rcursif additionneur hybride additionneur par slection de retenue

    Cours n 5 : mmoire mmoire statique/mmoire dynamique bascule RS

    - 1 -

    1 Circuits et architecture des ordinateurs en M1Circuits et architecture des ordinateurs

  • bascule D mmoire 4 3 bits

    Cours n 6 : circuits squentiels et architecture gnrale dun micro-processeur principe des circuits squentiels construction dune guirlande cas dun automate fini modle de von Neumann

    unit de contrle unit de traitement mmoire

    Cours n 7 : description du LC-3 registres organisation de la mmoire jeu dinstructions du processeur LC-3 chemins de donnes du LC-3

    Cours n 8 : programmation en assembleur du LC-3 longueur dune chane mutiplication non signe, signe et logarithmique addition 32 bits

    Cours n 9 : appels de sous-programmes, pile appels de sous-programme pile sauvegarde des registres tours de Hano

    Cours n 10 : appels systmes et interruptions entres/sorties appels systmes interruptions

    Cours n 11 : autres architectures processeurs 80x86 comparaison CISC/RISC architecture IA-64

    Cours n 12 : pipeline principe tages ralisation alas

    Cours n 13 : gestion de la mmoire mmoires associatives mmoire virtuelle mmoires cache

    Examen : mercredi 11 janvier de 15h30 18h30 en salle 575F

    - 2 -

    Olivier Carton1 Circuits et architecture des ordinateurs en M1

  • 2 Historique2.1 Historique gnralQuelques dates cls

    500 av JC apparition des bouliers et abaques

    1632 invention de la rgle calcul

    1642 Pascal invente la Pascaline

    1833 machine de Babbage

    1854 publication par Boole dun ouvrage sur la logique

    1904 invention du tube vide

    1937 article dAlan Turing sur la calculabilit : machines de Turing

    1943 cration du ASCC Mark 1 (Harvard - IBM) : Automatic Sequence-Controlled Calculator

    1946 construction de lENIAC

    1947 invention du transistor (Bell)

    1955 premier ordinateur Transistors : TRADIC (Bell)

    1958 premier circuit intgr (Texas Instrument)

    1964 langage de programmation BASIC

    1965 G. Moore nonce la loi qui porte son nom : loi de Moore

    1969 systme dexploitation MULTICS puis UNIX (Bell)

    1971 premier microprocesseur : 4004 dIntel (4 bits, 108 KHz, 2300 transistors)

    1972 microprocesseur 8008 dIntel (8 bits, 200 KHz, 3500 transistors)

    1973 langage C pour le dveloppement dUNIX

    1974 premier microprocesseur Motorola : 6800 (8 bits)

    1974 microprocesseur 8080 dIntel

    - 3 -

    2 HistoriqueHistorique

  • 2.2 Historique des micro-processeurs

    2.2.1 RfrencesHistoire des micro-processeurs de 1971 1996 Collection de micro-processeurs Autre collection de micro-processeurs Histoire des premiers micro-processeurs Muse en franais de la micro-informatique

    2.2.2 Principaux micro-processeursIntel 4004

    1971, 4 bits, 108 KHz, 2300 transistors Intel 8008

    1972, 8 bits, 200 KHz, 3500 transistors Intel 8080

    1974, 8 bits, 6000 transitors Motorola 6800 (Photos avec boitier plastique et boitier cramique)

    1974, 8 bits, 2Mhz, 7000 transistors MOS Technology 6502

    1975, 1 MHz, 8 bits Zilog Z80

    1976, 2Mhz, 8 bits Intel 8086

    1978, 16 bits Motorola 6809

    1978, 8 bits Intel 8088

    1979, 16 bits Motorola 68000

    1979, 16 bits, 68000 transistors Pentium

    1993, CISC PowerPC

    1993, RISC Sparc

    1995, RISC

    2.2.3 Gnalogie des micro-processeurs

    - 4 -

    Olivier Carton2.2 Historique des micro-processeurs

  • - 5 -

    2.2.3 Gnalogie des micro-processeursHistorique

  • Gnalogie des micro-processeurs

    2.2.3.1 SourcesIntel

    4004 iAPX 432 Intel i860 Intel i960 Itanium Core Core 2

    Motorola 68000

    F8 IMP-16 DEC (T-11) ARM PA-RISC (wikipedia) PA-RISC (openpa) RISC MIPS PowerPC DEC alpha SPARC National 320xx Comparatif de quelques architectures

    - 6 -

    Olivier Carton2.2.3 Gnalogie des micro-processeurs

  • 3 Reprsentation des donnesDans un ordinateur, toute linformation est sous forme de bits qui sont regroups en octets. Il faut doncquil y ait un codage de cette information. Ce codage dpend bien sr du type des donnes. Cette partiedcrit les codages les plus utiliss pour les types de base, cest--dire les entiers, les nombres flottantset les caractres.

    3.1 Entiers

    3.1.1 Entiers positifsLes entiers positifs sont toujours cods en base 2. Une suite bk-1 ,,b0 de k bits reprsente lentier ndonn par la formule suivante.

    n = i=0 k-1 b i 2 i .

    Avec k bits, on peut donc reprsenter tous les entiers de lintervalle 0 2k -1. Le nombre de bitsutiliss pour coder les entiers dpend de la machine. Cest encore trs souvent 32 bits mais lapparitiondes micro-processeurs 64 bits rend le codage 64 bits de plus en plus frquent.

    3.1.2 Big endian/Little endianCette caractristique dcrit dans quelle ordre sont placs les octets qui reprsentent un entier. Dans lemode big endian les octets de poids fort sont placs en tte et occupent donc des emplacementsmmoire avec des adresses plus petites. Dans le mode little endian, les octets de poids faibles sont aucontraire placs en tte. Dans le cas dentiers de 32 bits, il existe encore des modes mixtes. Cetteterminologie provient du livre Les voyages de Gulliver de J. Swift.

    Big et little endian

    Le mode big endian acclre les oprations qui ncessitent de regarder en premier les bits de poidsforts comme la recherche du signe, la comparaison de deux entiers et la division. Au contraire le mode little endian favorise les oprations qui commencent par les bits de poids faible comme laddition et la multiplication.

    - 7 -

    3 Reprsentation des donnesReprsentation des donnes

  • Big endian Mixed endian Little endian Motorola 68xx, 680x0

    IBMHewlett-Packard

    SPARC

    Motorola PowerPCSilicon Graphics MIPS

    IntelDEC VAX

    3.1.3 Codage BCD (Binary Coded Decimal)Il sagit dune reprsentation surtout utilise dans les premiers temps de linformatique. Lareprsentation BCD dun entier n est obtenue de la manire suivante. Lentier n est crit en dcimalpuis chaque chiffre dcimal entre 0 et 9 est ensuite cod sur 4 bits. Il faut donc (k+1)/2 octets pourcoder un nombre ayant k chiffres dcimaux. Le seul intrt de cette reprsentation est de faciliterlaffichage en base 10 de lentier. Certains processeurs possdaient quelques instructions spcifiquespour traiter, en particulier pour laddition, les entiers cods en BCD.

    3.1.4 Entiers signsIl existe plusieurs faons de coder les entiers signs. La reprsentation avec un bit de signe est la plussimple mais elle a trop dinconvnients pour tre utilise en pratique. La reprsentation biaise estuniquement utilise pour le codage des exposants des flottants. La reprsentation en complment 2est utilise par tous les ordinateurs car elle facilite de nombreuses oprations.

    3.1.4.1 Reprsentation avec un bit de signeDans cette reprsentation, le bit de poids fort indique le signe du nombre avec la convention 0 pourpositif et 1 pour ngatif. Les bits restants sont utiliss pour coder la valeur absolue du nombre commeun nombre positif. Cette reprsentation semble la plus naturelle mais elle nest pas utilise en pratiquecar elle souffre de nombreux dfauts dont le principal est de compliquer les additions et soustractions.En effet, pour additionner deux nombres cods de cette faon, il est ncessaire de faire une addition ouune soustraction suivant que ces deux nombres sont du mme signe ou de signes diffrents.

    Avec k bits, cette reprsentation permet de reprsenter tous les entiers de de lintervalle -2k-1 +1 2k-1 -1. Lentier 0 a alors deux codages.

    Reprsentation avec bit de signe sur 3 bits

    - 8 -

    Olivier Carton3.1.3 Codage BCD (Binary Coded Decimal)

  • 3.1.4.2 Reprsentation biaiseCette reprsentation est utilise pour le codage des exposants des nombres flottants. Avec k bits, cettereprsentation permet de reprsenter tous les entiers de lintervalle -2k-1 2k-1 -1. Chaque entier n decet intervalle est cod par le codage de n + 2k-1 comme un entier positif.

    Reprsentation biaise (avec un biais de 4) sur 3 bits

    3.1.4.3 Reprsentation en complment 2Cette reprsentation est la plus importante car cest elle qui est utilise dans les ordinateurs. Malgrson apparente complexit, elle simplifie de nombreuses oprations sur les entiers.

    Avec k bits, cette reprsentation permet de reprsenter tous les entiers de de lintervalle -2k-1 2k-1 -1. Les entiers de 0 2k-1 -1 sont cods comme les nombres positifs. Le bit de poids fort de leurreprsentation est donc toujours 0. Un nombre ngatif n de lintervalle -2k-1 -1 est reprsent par lecodage de n+2k (qui appartient lintervalle 2k-1 2k -1) sur k bits.

    Dans la reprsentation en complment 2, les reprsentations dont le bit de poids fort est 0 sontutilises par les nombres positifs. Au contraire, les reprsentations dont le bit de poids fort est 1 sontutilises par les nombres ngatifs. Le bit de poids fort se comporte donc comme un bit de signe. Cecifacilite le test de signe dun entier sign.

    - 9 -

    3.1.4 Entiers signsReprsentation des donnes

  • Reprsentation en complment 2 sur 3 bits

    3.1.4.3.1 Calcul de loppostant donn un entier n positif ou ngatif reprsent en complment 2, lalgorithme suivant permetde calculer la reprsentation en complment 2 de son oppos -n. Ceci est bien sr possible pourtoutes les valeurs de lintervalle -2k-1 2k-1 -1 sauf pour -2k-1 dont loppos nest plus dans lintervalle.

    Lalgorithme est le suivant. Soit n la reprsentation en complment 2 de n. Lalgorithme comporteles deux tapes suivantes qui utilisent des oprations prsentes dans tous les micro-processeurs etfacilement ralisables avec des portes logiques.

    1. Calculer le complment bit bit de n. 2. Ajouter 1 au rsultat de ltape prcdente.

    Pour expliquer cette algorithme, on remarque que le complment bit bit de m donne la diffrenceentre le nombre crit avec que des 1 et n, cest--dire la valeur 2k -n-1. Le rsultat de lalgorithme estdonc 2k -n. Le tableau ci-dessous permet de vrifier que quel que soit le signe de n, lalgorithmedonne le bon rsultat. Soit n un entier positif ou ngatif et soit n son codage en complment 2.

    Nombre n Codage n de n Rsultat Nombre cod 0 n 2k-1 -1 n = n 2k -n = -n -n

    -2k-1 +1 n -1 n = n+2k 2k -n -n

    n = -2k-1 n = 2k-1 n = 2k-1 n

    - 10 -

    Olivier Carton3.1.4 Entiers signs

  • 3.1.4.3.2 Calcul de la sommeUn des grands avantages de la reprsentation en complment 2 est de faciliter les additions etsoustractions. En effet, laddition de deux nombres m et n se fait simplement en additionnant leurreprsentations m et n.

    Le tableau ci-dessous rcapitule les diffrents cas de laddition suivant les signes des oprandes.Soient m et n deux entiers signs reprsents sur k bits. On distingue donc les trois cas : le cas m et npositifs, le cas m positif et n ngatif et le cas m et n ngatifs. Le quatrime cas est omis du tableau caril est symtrique du cas m positif et n ngatif. Pour chacun des cas, on donne les codages respectifs met n de m et n, puis on distingue nouveau deux sous-cas suivant la valeur de la somme m+n. Lersultat de laddition de m et n nest pas ncessairement m+n puisque m+n peut tre suprieur 2k et ne pas scrire sur k bits. Le rsultat de cette addition est m+n si 0 m+n 2k -1 et m+n-2ksi 2k m+n 2k+1 -1.

    Nombre m

    Codage m

    Nombre n

    Codage n

    Cas Rsultat Nombre cod

    C k C k-1

    Commentaire

    m positif0 m 2k-1 -1

    m = m

    n positif0 n 2k-1 -1

    n = n

    0 m+n 2k-1 -1 m+n m+n 0 0 Rsultat positif

    2k-1 m+n 2k -2 m+n m+n-2

    k 0 1 Dbordement carm+n 2k-1

    m positif0 m 2k-1 -1

    m = m

    n ngatif-2k-1 n -1

    n = n + 2k

    2k-1 m+n 2k -1 m+n m+n 0 0

    Rsultat ngatifcar |m| < |n|

    2k m+n 2k +2k-1 -1 m+n-2

    k m+n 1 1 Rsultat positifcar |m| > |n|

    m ngatif-2k-1 m -1

    m = m

    + 2kn ngatif-2k-1 n -1

    n = n + 2k

    2k m+n 2k +2k-1 -1 m+n-2

    k m+n+2k 1 0 Dbordement carm+n < -2k-1

    2k +2k-1 m+n 2k+1 -1

    m+n-2k m+n 1 1 Rsultat ngatif

    3.1.4.3.3 Exemple de calculs de sommeOn se place avec k = 3 bits. Les nombres reprsentables en complments deux sont donc les entiersde -4 3. La table ci-dessous donne pour chaque paire de reprsentation, la somme et sa valeur. Lesvaleurs des deux retenues C2 et C3 sont codes par la couleur du fond. Les couleurs jaune et rougecorrespondent aux dbordements, cest--dire C2 C3 = 1.

    C 2 = 0 C 2 = 1

    C 3 = 0 C 3 = 1 C 3 = 0 C 3 = 1

    - 11 -

    3.1.4 Entiers signsReprsentation des donnes

  • +100-4

    101-3

    110-2

    111-1

    0000

    0011

    0102

    0113

    100-4

    0000

    0011

    0102

    0113

    100-4

    101-3

    110-2

    111-1

    101-3

    0011

    0102

    0113

    100-4

    101-3

    110-2

    111-1

    0000

    110-2

    0102

    0113

    100-4

    101-3

    110-2

    111-1

    0000

    0011

    111-1

    0113

    100-4

    101-3

    110-2

    111-1

    0000

    0011

    0102

    0000

    100-4

    101-3

    110-2

    111-1

    0000

    0011

    0102

    0113

    0011

    101-3

    110-2

    111-1

    0000

    0011

    0102

    0113

    100-4

    0102

    110-2

    111-1

    0000

    0011

    0102

    0113

    100-4

    101-3

    0113

    111-1

    0000

    0011

    0102

    0113

    100-4

    101-3

    110-2

    3.1.4.4 Extension signe et non signeAvec toutes les reprsentations tudies, un nombre signs ou non qui peut tre reprsent sur k bitpeut encore tre reprsent avec k+h bits pour tout h 0. On tudie ici comme calculer cettereprsentation sur k+h bits pour la reprsentation des nombres non signs et pour la reprsentation encomplment 2 des nombres signs.

    3.1.4.4.1 Extension non signeSoit un nombre n positif ayant bk-1 b0 comme reprsentation non signe sur k bits. Lareprsentation non signe de n sur k+h bits est simplement la reprsentation 00bk-1 b0 obtenue enajoutant h chiffres 0 devant la reprsentation k bits.

    Extension non signe de k bits k+h bits dun entier

    - 12 -

    Olivier Carton3.1.4 Entiers signs

  • 3.1.4.4.2 Extension signeSoit un nombre n positif ou ngatif ayant bk-1 b0 comme reprsentation en complment 2 sur kbits. Si n est positif, la reprsentation en complment 2 de n sur k+h bits est la reprsentation 00bk-1 b0 obtenue en ajoutant h chiffres 0 devant la reprsentation k bits. Si n est ngatif, lareprsentation en complment 2 de n sur k+h bits est la reprsentation 11bk-1 b0 obtenue enajoutant h chiffres 1 devant la reprsentation k bits. Dans les deux cas, la reprsentation de n sur k+hest bk-1 bk-1 bk-1 bk-2 b1 b0 obtenue en ajoutant h copies du bit de poids fort bk-1 devant lareprsentation sur k bits.

    Extension signe de k bits k+h bits dun entier

    3.1.4.5 Comparaison des reprsentations

    Reprsentation Avantages Inconvnients

    avec bit de signereprsentation naturelleintervalle symtriquechangement de signe facile

    2 reprsentations pour 0comparaison difficileaddition difficile

    biaise comparaison facilevritable diffrence

    reprsentation de 0intervalle non symtriqueaddition difficile

    en complment 2

    reprsentation de 0bit de signecomparaison facileaddition et soustraction semblables

    intervalle non symtrique

    3.2 Nombres en virgule fixe

    3.3 Nombres en virgule flottanteLa norme IEEE 754 dfinit des codages des nombres en virgule flottante sur un format de 32 bitsappel simple prcision (dclar par float en C), un format de 64 bits appel double prcision(dclar double en C) et un format de 80 bits appel prcision tendue (dclar long double enC). Elle dfinit aussi les oprations arithmtiques usuelles (+,-,,/,) et les arrondis effectuer pour

    - 13 -

    3.2 Nombres en virgule fixeReprsentation des donnes

  • ces oprations. Par contre, elle ne normalise pas les fonctions mathmatiques comme exp, log, sin, cos, . Lintrt principal de cette norme est davoir des comportements identiques des programmes surdes machines diffrentes.

    Le codage dun nombre est inspir de la notation scientifique comme -1.5 10+3 . Chaque nombre estdcompos en trois parties : signe, exposant et mantisse. Le signe est cod par le bit de poids fort.Ensuite un certain nombre de bits sont consacrs lexposant et le reste la mantisse. La tableci-dessous donne le nombre de bits de chacun des lments dans les diffrents formats.

    Encodage Signe s Exposant e Mantisse m Valeur dun nombre Simple prcision 32 bits 1 bit 8 bits 1e254 23 bits (-1) s 1.m 2 e-127 Double prcision 64 bits 1 bit 11 bits 1e2046 52 bits (-1) s 1.m 2 e-1023 Prcision tendue 80 bits 1 bit 15 bits 1e32766 64 bits (-1) s 1.m 2 e-16383

    Dans la table ci-dessus, la formule 1.m doit tre interprte de la faon suivante. Si les bits de lamantisse sont b1 b2 bn , on a

    1.m = 1 + b1 /2 + b2 /22 + b3 /23 + + bn /2n

    Soit lexemple en simple prcision 1011111101011000 (0xbf580000 en hexadcimal). Il sedcompose en le signe s = 1, lexposant e = 01111110 = (126)10 et la mantisse m = 10101000. Lavaleur de 1.m = 1+1/2+1/8+1/16 = 1,6875. La valeur du nombre est donc -1,6875 2 -1 = -0,84375.

    Les fonctions C suivantes permettent de considrer un flottant comme un entier et inversement afin parexemple dafficher le codage hexadcimal dun flottant. Il nest pas possible dutiliser les castdirectement sur les valeurs car cela effectuerait une conversion. On utilise au contraire un cast sur les pointeurs.

    // On suppose sizeof(int) == sizeof(float)int float2int(float f) { int* p = (int*) &f; return *p;}

    float int2float(int n) { float* p = (float*) &n; return *p;}

    int main(void) { // Float --> hexa printf("%08x\n", float2int(-0.84375));

    // Hexa --> float printf("%g\n", int2float(0xbf580000));}

    Si le nombre de bits consacrs lexposant est k, la valeur de lexposant e vrifie 0 < e < 2k -1. Lesvaleurs 0 et 2k -1 sont rserves pour des valeurs spciales.

    - 14 -

    Olivier Carton3.3 Nombres en virgule flottante

  • La norme prvoit quatre types darrondi : vers 0, vers +, vers - ou au plus prs. En thorie,lutilisateur a le choix de larrondi mais aucun des langages de programmation actuels ne permet de lechoisir effectivement.

    Les valeurs spciales qui peuvent tre reprsentes sont donnes par la table ci-dessous dans le cas dela simple prcision.

    Signe Exposant Mantisse Valeur Commentaire 0 0 0 0 unique reprsentation de 0 s 0 m 0 (-1) s 0.m 2 -126 nombres dnormaliss 0 255 0 + rsultat de 1/0 1 255 0 - rsultat de -1/0 0 255 m 0 NaN Not a Number : rsultat de 0/0 ou -1

    Dans le cas de la simple prcision, les valeurs maximales sont (2-2 -23 )2127 2128 . La plus petitevaleur positive reprsentable est 2 -23 2 -126 = 2 -249 (nombre dnormalis).

    3.4 Caractres

    3.4.1 Codage ASCIILe codage ASCII affecte un code sur 7 bits aux principaux caractres mais pas aux caractresaccentus. Il existe des extensions plus ou moins standards pour coder les caractres accentus sur unoctet comme le codage ISO Latin 1.

    3.4.2 Codage UNICODELe codage Unicode permet de manipuler tous les caractres possibles. Il affecte en effet un code 32bits tous les caractres de toutes les langues. Il faut cependant faire attention au fait que les codes nesont pas manipuls explicitement pour viter que chaque caractre occupe 4 octets. On utilise unformat de codage dont le plus rpandu est le format UTF-8.

    - 15 -

    3.4 CaractresReprsentation des donnes

  • 4 Transistors et portes logiquesOn explique dans cette partie le fonctionnement schmatique dun transistor ainsi que la faon deraliser des portes logiques avec des transistors.

    4.1 Semi-conducteursLes trois semi-conducteurs utiliss dans la fabrication des composants lectroniques sont les suivants :

    le silicium Si utilis majoritairement, le germanium Ge, larsniure de gallium AsGa.

    En plaant ces diffrents lments dans la table des lments chimiques (cf. figure ci-dessous), onconstate que ces lments sont proches. Ces semi-conducteurs sont forms dlments ayant 4lectrons de valence sur la dernire couche comme le silicium ou le germanium ou dun mlangedlments ayant 3 et 5 lectrons de valence comme le gallium et larsenic.

    Une partie de la table des lments

    4.1.1 Semi-conducteur intrinsqueDans un cristal de silicium pur, les atomes forment 4 liaisons de covalence avec 4 voisins. Ilremplissent ainsi la dernire couche en partageant les lectrons.

    Cristal de silicium

    Dans la figure ci-dessus, le cristal est reprsent en plan mais il faut bien sr imaginer ce cristal danslespace. La maille lmentaire du rseau est reprsente la figure ci-dessous.

    - 16 -

    Olivier Carton4 Transistors et portes logiques

  • Rseau dans lespace

    Au zro absolu, cest--dire la temprature 0K, la structure du cristal est stable et le silicium nestpas conducteur du courant lectrique. Lorsque la temprature augmente, les lectrons possdent unenergie supplmentaire qui provoque la rupture de certaines liaisons de covalence. Certains lectronsdeviennent libres (cf. figure ci-dessous) et le silicium est alors peu conducteur, do le nom de semi-conducteur.

    lectron libre

    4.1.2 Semi-conducteurs dopsLe silicium est dop en introduisant des impurets dans le cristal. On distingue deux types de dopagesuivant la nature des lments ajouts au silicium. On parle de semi-conducteur de type n lorsque ledopage est ralis avec des lments ayant 5 lectrons de covalence comme le phosphore, larsenic etlantimoine. Latome avec 5 lectrons de covalence forme 4 liaisons de covalence et garde un lectronqui est alors relativement libre (cf. figure ci-dessous).

    - 17 -

    4.1.2 Semi-conducteurs dopsTransistors et portes logiques

  • Silicium dop n avec un lectron libre

    On parle de semi-conducteur de type p lorsque le dopage est ralis avec des lments ayant 3lectrons de covalence comme le bore, laluminium et le gallium. Latome avec 3 lectrons decovalence ne peut former que 3 liaisons de covalence. Il y en quelque sorte un trou dlectron (cf.figure ci-dessous).

    Silicium dop p avec un trou

    4.2 DiodeUne jonction entre un semi-conducteur de type n et un semi-conducteur de type p est appele une diode. La partie de type n est appele cathode et la partie de type p est appele anode. Le courantlectrique ne peut passer travers une diode que dans un seul sens comme lvoque son symbole enforme dentonnoir.

    Diode

    Le principe de fonctionnement de la diode est le suivant. Les lectrons libres du semi-conducteur detype n ont tendance aller boucher les trous du semi-conducteur de type p. Il en dcoule une diffusiondes lectrons de la rgion dope n vers la rgion dope p. Chaque lectron qui se dplace laisse un ionpositif dans la rgion n. Il sensuit donc un champ lectrique de rappel vers la rgion n qui conduit un quilibre. Dans cet quilibre, il y a une zone, appele zone de charge despace qui ressemble dusilicium non dop et o il y a en outre un champ lectrique.

    - 18 -

    Olivier Carton4.2 Diode

  • Si on applique une tension positive la cathode et ngative lanode, les lectrons sont attirs vers lebord de la cathode et les trous vers le bord de lanode. La zone de charge despace stend et la diodenest pas conductrice. Si on contraire, on applique une tension positive lanode et ngative lacathode qui est suprieure au champ lquilibre, les lectrons peuvent circuler de la cathode verslanode et la diode est conductrice.

    4.3 TransistorsLe transistor est la brique avec laquelle sont construits les circuits lectroniques tels lesmicro-processeurs. La technologie actuellement utilise pour fabriquer les micro-processeurs est latechnologie MOS (Metal-Oxide-Semiconductor). Il existe deux types de transistors MOS : lestransistors de type n et les transistors de type p. Les micro-processeurs actuels utilisent des transistorsdes deux types. On parle alors de technologie CMOS (Complementary Metal-Oxide-Semiconductor).

    4.3.1 FonctionnementUn transistor possde trois broches appeles drain, grille et source. Pour dautres types de transistors,elle sont aussi appeles collecteur, base et metteur. Dans le cas des transistors MOS, le drain et lasource jouent des rles (presque) symtriques et sont (pratiquement) interchangeables. Un transistor secomporte comme un interrupteur lectrique entre la source et le drain qui serait command par lagrille. Le dessin ci-dessous illustre de manire image la faon dont fonctionne un transistor.

    Fonctionnement imag dun transistor

    - 19 -

    4.3 TransistorsTransistors et portes logiques

  • Le comportement dun transistor n-MOS est le suivant. Si la grille est mise une tension de 2.9V, lasource et le drain sont connects. Si au contraire, la grille est mise une tension de 0V, le circuit entrela source et le drain est ouvert. Le fonctionnement dun transistor p-MOS est linverse. Le drain et lasource sont connects lorsque la tension applique la grille est 0V.

    4.3.2 CompositionUn transistor est form de deux jonctions np obtenues en intercalant une couche p (respectivement n)entre deux couches n (respectivement p). Le transistor de type n correspond aux trois couches n-p-n etle transistor de type p aux couches p-n-p. Il y a en outre une grille en mtal au dbut de la techniqueMOS mais maintenant faite en polysilicium. Cette grille est spare de la couche intermdiaire par unefine couche doxyde de silicium SiO 2 isolant. Le potentiel appliqu la grille permet de modifierltat de la couche intermdiaire.

    Transistors n-MOS et p-MOS

    4.3.3 Principe de fonctionnementOn considre un transistor de type n. Si aucune tension nest applique la grille, les deux jonctions np et pn se comporte comme des diodes en opposition et aucun courant ne peut passer entre la sourceet le drain. Si au contraire une tension positive est applique la grille, les lectrons chargsngativement saccumulent dans le substrat dans la zone prs de la grille. La rgion du substrat prs dela grille va alors se comporter comme un semi-conducteur dop n (cf. figure ci-dessous). Le courantpeut alors passer entre la source et le drain.

    - 20 -

    Olivier Carton4.3.2 Composition

  • Formation dun tunnel n dans le substrat

    4.4 Conventions dans les schmasDans tous les schmas du cours, on adopte la convention qui est illustre la figure suivante. Si un filsarrte a une intersection avec un autre fil, les deux fils sont connects. Si par contre, deux fils secroisent, il ny a pas connexion des deux fils sauf si lintersection est matrialise par un gros point.

    Convention des connexions aux intersections

    4.5 Portes not, nand et norLa porte la plus simple est la porte not de la ngation. Elle prend en entre une valeur x qui vaut 0 ou 1et elle sort la valeur 1-x. La table de vrit de cette porte est donne ci-dessous.

    Entre SortieI I0 11 0

    La porte not peut tre ralise en logique CMOS par un circuit constitu de deux transistors, un detype n et un de type p. Ce circuit est appel inverseur. Linverseur ainsi que son symbole sontreprsents la figure ci-dessous.

    Schma et symbole de linverseur

    La porte nand prend en entre deux valeurs 0 ou 1. La sortie vaut 0 si les deux entres valent 1 et ellevaut 1 si au moins une des deux entres vaut 0. La table de vrit est donne ci-dessous.

    - 21 -

    4.4 Conventions dans les schmasTransistors et portes logiques

  • Entres SortieA B (A B)0 0 10 1 11 0 11 1 0

    Un circuit pour raliser la porte nand en logique CMOS est donn ci-dessous. Il est constitu de quatretransistors dont deux n-MOS et deux p-MOS.

    Schma et symbole de la porte nand

    La porte nor prend en entre deux valeurs 0 ou 1. La sortie vaut 0 si au moins une des entres vaut 1 etelle vaut 1 si les deux entres valent 0. La table de vrit est donne ci-dessous.

    Entres SortieA B (A B)0 0 10 1 01 0 01 1 0

    Un circuit pour raliser la porte nor en logique CMOS est donn ci-dessous. Il est constitu de quatretransistors dont deux n-MOS et deux p-MOS. Cest le circuit dual du circuit de la porte nand. Les deuxtransistors p-MOS qui tait en parallle dans le circuit de la porte nand sont en srie dans le circuit dela porte nor. Au contraire, les deux transistors n-MOS qui tait en srie dans le circuit de la porte nandsont en parallle dans le circuit de la porte nor.

    - 22 -

    Olivier Carton4.5 Portes not, nand et nor

  • Schma et symbole de la porte nor

    4.6 Portes or et andSi dans le schma de la porte nor, chaque transistor n-MOS est remplac par un transistor p-MOS etinversement, on obtient un schma qui donne thoriquement une porte or. Pourtant, le circuit de laporte or nest pas ralis de cette manire. Cela provient du fait que la source et le drain des transistorsne jouent pas des rles compltement symtriques. Pour des raisons de consommation, les connexionsavec le 0 sont toujours commandes par des transistors de type n et les connexions avec le 1 par destransistors de type p.

    Les circuits des portes and et or sont respectivement obtenus en combinant un circuit de la porte nandet nor avec un inverseur.

    La porte and prend en entre deux valeurs 0 ou 1. La sortie vaut 1 si les deux entres valent 1 et ellevaut 0 sinon. La table de vrit est donne ci-dessous.

    Entres SortieA B A B0 0 00 1 01 0 01 1 1

    Schma et symbole de la porte and

    - 23 -

    4.6 Portes or et andTransistors et portes logiques

  • La porte and pourrait thoriquement tre aussi ralise par le schma ci-dessous qui comporte moinsde transistors. Ce schma nest cependant pas utilis en pratique. Dans ce schma, la sortie est relieau 1 par des transistors n et au 0 par des transistors p. Ceci induit une consommation excessive parrapport au schma prcdent.

    Mauvais schma dune porte and

    La porte or prend en entre deux valeurs 0 ou 1. La sortie vaut 0 si les deux entres valent 0 et ellevaut 1 sinon. La table de vrit est donne ci-dessous.

    Entres SortieA B A B0 0 00 1 11 0 11 1 1

    Schma et symbole de la porte or

    4.7 Portes nand et nor trois entresOn peut bien sr raliser une porte nand trois entres en combinant deux portes nand deux entres.Il est plus conomique en nombre de transistors de raliser directement cette porte. Cest la mmechose pour la porte nor trois entres.

    - 24 -

    Olivier Carton4.7 Portes nand et nor trois entres

  • Schma et symbole de la porte nand 3 entres

    Schma et symbole de la porte nor 3 entres

    4.8 Portes and et or entres multiplesLes schmas des portes nand et nor trois entres peuvent tre gnraliss pour obtenir des schmaspour des portes nand et nor un nombre quelconque dentres. Pour des raisons technologiques, cesportes ne sont pas ralises de cette faon. Il est prfrable de construire des portes un grand nombredentres en combinant plusieurs portes 2 ou 3 entres.

    Des circuits pour les portes and ou or entres multiples peuvent tre construits en utilisant un arbreconstitu de portes and ou or respectivement. La construction dun circuit pour une porte k entrespeut tre faite de manire rcursive. Si k vaut 1 ou 2, le circuit est vident. Si k est suprieur 2, onconstruit dabord deux circuits ayant respectivement k/2 et k/2 entres. Les sorties des ces deuxcircuits sont ensuite envoyes sur une dernire porte and ou or. On vrifie par rcurrence que lenombre de portes dun tel circuit est exactement k-1 et que sa profondeur (nombre maximal de portesmises en cascade) est log2 (k).Pour k = 4, on obtient le premier circuit reprsent la figure ci-dessous. Pour conomiser lestransistors, chaque bloc de trois portes and ou or peut tre remplac par deux portes nand et une porte nor ou linverse. On obtient ainsi le second circuit reprsent la figure ci-dessous. Il existe dautres

    - 25 -

    4.8 Portes and et or entres multiplesTransistors et portes logiques

  • circuits comme le troisime reprsent la figure ci-dessous qui ralisent une porte and 4 entres. Cecircuit est cependant viter car il augmente le temps de latence en raison de sa plus grande profondeur.

    Schmas de portes and 4 entres

    En appliquant le procd ci-dessus pour k = 16, puis en remplaant chaque bloc de trois portes and pardeux portes nand et une porte nor, on obtient le circuit ci-dessous qui a 10 portes nand et 5 portes nor.Ce circuit est particulirement rgulier car k est une puissance de 2.

    Schma dune porte and 16 entres

    4.9 Porte xorLa porte xor permet de raliser la fonction ou exclusif qui savre trs utile pour construire lesadditionneurs. Comme toutes les autres fonctions boolennes, elle se ralise avec les portes and et orou bien encore nand et nor. Il faut la considrer comme une abrviation pour un petit circuit trs utile.

    - 26 -

    Olivier Carton4.9 Porte xor

  • Entres SortieA B A B0 0 00 1 11 0 11 1 0

    Schmas et symbole de la porte xor

    - 27 -

    4.9 Porte xorTransistors et portes logiques

  • 5 Circuits lmentairesLes dcodeurs et multiplexeurs sont des circuits relativement lmentaires mais trs souvent utiliss. Ilsagit de deux briques de base pour la construction de circuits plus labors. Ils sont en particulierprsents dans chaque circuit mmoire. Un dcodeur y dcode ladresse et active la lignecorrespondante. Un multiplexeur permet dy slectionner la bonne sortie lors dune lecture.

    5.1 DcodeursUn dcodeur k bits possde k entres et 2k sorties. La sortie dont le numro est donn par les entresest active (valeur 1) alors que toutes les autres sorties sont inactives (valeur 0).

    Le dcodeur 1 bit a donc une seule entre A0 et deux sorties S0 et S1 . La table de vrit des sorties S0 et S1 est la suivante.

    Entre SortiesA 0 S 0 S 10 1 01 0 1

    On remarque que la sortie S0 est la ngation de lentre A0 alors que la sortie S1 est gale A0 . On adonc le circuit suivant avec un seul inverseur.

    Schma et symbole dun dcodeur 1 bit

    Le dcodeur 2 bits a deux entres A0 et A1 ainsi que quatre sorties S0 , S1 , S2 et S3 . La table devrit des quatre sorties en fonction des deux entres est la suivante.

    Entres SortiesA 1 A 0 S 0 S 1 S 2 S 30 0 1 0 0 00 1 0 1 0 01 0 0 0 1 01 1 0 0 0 1

    On remarque que lon a les quatre formules suivantes pour les sorties.

    - 28 -

    Olivier Carton5 Circuits lmentaires

  • S0 = A1 A0S1 = A1 A0S2 = A1 A0S3 = A1 A0

    Schma et symbole dun dcodeur 2 bits

    Le dcodeur 3 bits a 3 entres et 8 sorties. Chaque sortie est obtenue comme le et logique des entresou de leurs ngations. Les entres devant tre inverses correspondent aux zros dans lcriture enbinaire du numro de la sortie. Ainsi la sortie S5 est gal A2 A1 A0 car 5 scrit 101 en binaire.

    Schma et symbole dun dcodeur 3 bits

    Les circuits donns pour k gal 1, 2 et 3 se gnralisent facilement un entier quelconque. Le circuitest alors constitu dinverseurs et de 2k portes and ayant chacune k entres. Le nombre dinverseursncessaires est k puisquil en faut un pour chaque entre A i afin de disposer de sa ngation A i . Surles schmas pour k = 1, 2, 3, certains inverseurs peuvent tre vits en rutilisant une valeur calculepar un autre. Par contre, les schmas deviennent beaucoup moins clair. Comme chaque porte and kentres peut tre ralise avec k-1 portes and 2 entres (cf. la section portes logiques), on obtient untotal de (k-1)2k portes and. La profondeur de ce circuit est alors log2 (k).

    - 29 -

    5.1 DcodeursCircuits lmentaires

  • 5.1.1 Dcodeur rcursifIl est possible de construire de manire rcursive un dcodeur ayant n entre. Il faut alors introduire uncircuit un peu plus gnral avec une nouvelle entre appele CS pour Chip Select. Un dcodeur k bitsavec une entre CS possdent donc k+1 entres CS, A0 , , Ak-1 et 2k sorties S0 , , S2k -1 . Cecircuit se comporte de la faon suivante. Si lentre CS vaut 0, toutes les sorties valent 0 et si CS vaut1, il se comporte comme un simple dcodeur. Lentre dont le numro scrit en binaire Ak-1 A0vaut 1 et toutes les autres sorties valent 0.

    Pour k = 1, la table de vrit du dcodeur 1 bit avec une entre CS est donc la suivante.

    Entre SortiesCS A 0 S 0 S 10 0 0 00 1 0 01 0 1 01 1 0 1

    On en dduit facilement le circuit ci-dessous.

    Schma et symbole dun dcodeur 1 bit avec entre CS

    Pour k > 1, on peut construire un dcodeur k+1 entres en utilisant deux dcodeurs k entres et undcodeur 1 entre et en les combinant comme sur le schma ci-dessous. Les deux dcodeurs kentres reoivent les entres A0 , , Ak-1 et leurs deux entres CS sont commandes par les deuxsorties du dcodeur 1 bit. Ce dernier reoit en entre Ak et CS.

    Construction rcursive dun dcodeur k+1 entres

    - 30 -

    Olivier Carton5.1.1 Dcodeur rcursif

  • Pour k gal 2 et 3, la construction donne les deux dcodeurs suivants.

    Schmas des dcodeurs rcursifs 2 et 3 bits

    On montre facilement que le nombre de dcodeurs 1 bit utiliss dans le dcodeur k bits est 2k -1 et quele nombre de portes and utilises est donc 2k+1 -2. La profondeur du circuit est k. Par rapport audcodeur construit de manire directe, le circuit construit rcursivement utilise moins de porteslogiques (2k+1 au lieu de k2k ) mais a une profondeur suprieure (k au lieu de log2 (k)).

    5.2 MultiplexeursUn multiplexeur est en quelque sorte linverse dun dcodeur. Un multiplexeurs k bits permet deslectionner une entre parmi 2k disponibles. Un multiplexeur k bits a k + 2k entres et une seulesortie. Les k premires entres A0 ,,Ak-1 sont appeles bits dadresses car elles donnent le numrode lentre slectionner parmi les entres B0 ,,B2k -1 . La sortie S est alors gale cette entre slectionne.

    Le multiplexeur 1 bit a donc 3 entres A0 , B0 et B1 et une seule sortie S. La formule donnant la sortieS en fonction des entres est la suivante.

    S = (A0 B1 ) (A0 B0 )

    Schma et symbole dun multiplexeur 1 bit

    - 31 -

    5.2 MultiplexeursCircuits lmentaires

  • Le multiplexeur 2 bit a donc 6 entres A0 , A1 , B0 , B1 , B2 et B3 et une seule sortie S. La formuledonnant la sortie S en fonction des entres est la suivante.

    S = (A1 A0 B3 ) (A1 A0 B2 ) (A1 A0 B1 ) (A1 A0 B0 )

    Schma et symbole dun multiplexeur 2 bits

    Le multiplexeur k bits peut tre construit rcursivement en utilisant le schma ci-dessous qui donne laconstruction dun multiplexeur k+1 bits avec deux multiplexeurs k bits et un multiplexeur 1 bit.

    Multiplexeur k+1 bits construit avec deux multiplexeurs k bits

    Pour k gal 2 et 3, la construction donne les deux multiplexeurs suivants.

    - 32 -

    Olivier Carton5.2 Multiplexeurs

  • Schmas des multiplexeurs rcursifs 2 et 3 bits

    Comme pour les dcodeurs rcursifs, on montre facilement que le nombre de multiplexeurs 1 bitutiliss dans le multiplexeur k bits est 2k -1 et que le nombre de portes logiques and et or utilises estdonc 3(2k -1). La profondeur du circuit est k. Par rapport au multiplexeur construit de manire directe,le circuit construit rcursivement utilise moins de portes logiques (3 2k au lieu de k2k ) mais a uneprofondeur suprieure (k au lieu de log2 (k)).

    5.3 Construction de circuitsDans cette partie, nous expliquons comment construire le circuit dune fonction boolenne. Nousallons le faire sur lexemple de la fonction hidden bit.

    5.3.1 DfinitionNous commenons par donner la dfinition de la fonction hidden bit. Cette fonction prend en entre kvaleurs boolennes et retourne une valeur boolenne. Soient k entres binaires A1 ,, Ak et soit s lasomme de ces entres, cest--dire le nombre dentres gales 1 : s = #{ i | A i = 1 }. Cette somme estcomprise entre 0 et k. La sortie S est alors gale 0 si s = 0 et elle est gale A s si 1 s k.

    5.3.2 Cas k = 1Entre Sorties

    A 1 s S0 0 01 1 1

    On a alors lgalit S = A1 . Le circuit est dans ce cas trivial puisquil se contente de mettre lentre A1 en sortie.

    - 33 -

    5.3 Construction de circuitsCircuits lmentaires

  • 5.3.3 Cas k = 2Entres SortiesA 1 A 2 s S0 0 0 01 0 1 10 1 1 01 1 2 1

    On a alors lgalit S = A1 . Le circuit est encore une fois immdiat puisquil se contente de mettrelentre A1 en sortie.

    5.3.4 Cas k = 3Le cas k = 3 est le premier cas intressant. On commence par calculer la table qui donne pour chaquevaleur des entres les valeurs des deux sorties s et S.

    Entres SortiesA 1 A 2 A 3 s S0 0 0 0 01 0 0 1 10 1 0 1 01 1 0 2 10 0 1 1 01 0 1 2 00 1 1 2 11 1 1 3 1

    Partir de cette table de vrit de la fonction, il est facile de trouver une expression de la sortie S enfonction des trois entres A1 , A2 et A3 .

    S = A1 A2 A3 + A1 A2 A3 + A1 A2 A3 + A1 A2 A3

    Les quatre monmes correspondent aux quatre lignes de la table o la sortie prend la valeur 1. Lepremier monme A1 A2 A3 correspond par exemple la seconde ligne de la table. La sortie S vaut 1lorsque A1 = 1, A2 = 0 et A3 = 0.

    Il est possible de construire un circuit partir de la formule ci-dessus. Les valeurs des monmespeuvent tre calcules par quatre portes et trois entres et la valeur finale de S peut tre calcule partrois portes ou deux entres. Afin de construire un circuit le plus petit possible, il est ncessaire desimplifier au maximum la formule.

    - 34 -

    Olivier Carton5.3.3 Cas k = 2

  • La formule ci-dessus peut tre simplifie. La somme des deux premiers monmes peut tre rduite un seul monme plus simple de la faon suivante.

    A1 A2 A3 + A1 A2 A3 = A1 A3 (A2 + A2 ) = A1 A3

    Nous prsentons maintenant une mthode graphique lmentaire permettant de trouver une expressionsimple pour une formule. Cette mthode dite des tables de Karnaugh (cf. aussi wikibook) ne donnepas toujours la meilleure expression mais elle fonctionne relativement bien tout en tant facile mettreen uvre.

    Nous expliquons la mthode sur notre exemple. La mthode consiste disposer les valeurs delexpression dans une table rectangulaire comme ci-dessous.

    A 1 A 1

    A 2 A 2 A 2 A 2

    A 3 1 0 0 1 A 3 1 1 0 0

    Il faut essayer alors de regrouper les valeurs 1 en blocs rectangulaires. Ainsi, les deux 1 rougescorrespondent A1 = 1 et A3 = 0. Ils donnent donc le monme A1 A3 que nous avions obtenu enregroupant les deux premiers monmes de notre formule initiale. Les blocs de 1 peuvent ne pas trecontigus. Les deux 1 bleus correspondent A2 = 1 et A3 = 1 et ils donnent le monme A2 A3 . Lesblocs de 1 peuvent ventuellement se chevaucher. On a donc finalement trouv la formule suivantepour S.

    S = A2 A3 + A1 A3

    Le circuit construit partir de la formule prcdente ne contient plus que deux portes et et une porte ou deux entres. On reconnat le circuit dun multiplexeur 1 bit o A3 est le bit dadresse (ou decommande) et A1 et A2 sont les entres.

    Schma pour la fonction hidden bit 3 entres

    - 35 -

    5.3.4 Cas k = 3Circuits lmentaires

  • 5.3.5 Cas k = 4Entres Sorties

    A 1 A 2 A 3 A 4 s S0 0 0 0 0 01 0 0 0 1 10 1 0 0 1 01 1 0 0 2 10 0 1 0 1 01 0 1 0 2 00 1 1 0 2 11 1 1 0 3 10 0 0 1 1 01 0 0 1 2 00 1 0 1 2 11 1 0 1 3 00 0 1 1 2 01 0 1 1 3 10 1 1 1 3 11 1 1 1 4 1

    A 1 A 1

    A 2 A 2 A 2 A 2

    A 3A 4 1 1 0 1 A 4 1 0 0 1

    A 3 A 4 1 1 0 0 A 4 0 0 0 1

    S = A1 A3 A4 + A2 A3 A4 + A1 A2 A4 + A1 A3 A4

    - 36 -

    Olivier Carton5.3.5 Cas k = 4

  • Schma pour la fonction hidden bit 4 entres

    5.3.6 Cas k = 5S = A1 A3 A4 A5 + A2 A3 A4 A5 + A1 A2 A4 A5 + A1 A3 A4 A5 + A1 A2 A4 A5 + A1 A3 A4 A5 + A1 A2 A3 A5 + A1 A2 A4 A5

    Schma pour la fonction hidden bit 5 entres

    - 37 -

    5.3.6 Cas k = 5Circuits lmentaires

  • 6 AdditionneursLaddition est une opration trs courante dans un microprocesseur. Outre dans lunit arithmtique,elle sert pour incrmenter le compteur de programme et pour les calculs dadresses. Il est doncimportant quelle soit optimise pour tre rapide. Malgr la simplicit apparente du problme, il existede multiples faons de construire des additionneurs efficaces en temps et en nombre de portes logiques utilises.

    6.1 Semi-additionneurCe premier circuit est la brique de base. Il prend en entre deux bits A et B et calcule la somme S et laretenue C (pour Carry en anglais). Les bits C et S peuvent aussi tre vus comme les bits de poids fortet de poids faible de lcriture sur deux bits de la somme A + B.

    Entres SortiesA B C S0 0 0 00 1 0 11 0 0 11 1 1 0

    On remarque sur la table de vrit que S est le ou exclusif des deux entres A et B, i.e. S = A B etque C vaut 1 lorsque les deux entres valent 1, cest--dire C = A B.

    Schma et symbole dun semi-additionneur (HA)

    6.2 Additionneur complet 1 bitPour construire un additionneur sur plusieurs bits, plusieurs additionneurs 1 bit sont mis en cascade.Chacun de ces addionneurs prend en entre deux bits A et B ainsi que la retenue prcdente C0 . Ilcalcule la somme S de ces trois valeurs binaires ainsi que la retenue C1 . Comme pour lesemi-additionneur, ces bits C1 et S peuvent aussi tre vus comme les bits de poids fort et de poidsfaible de lcriture sur deux bits de la somme A + B + C0 . Cette somme scrit justement sur deux bitscar elle est comprise entre 0 et 3.

    - 38 -

    Olivier Carton6 Additionneurs

  • Entres SortiesA B C 0 C 1 S0 0 0 0 00 1 0 0 11 0 0 0 11 1 0 1 00 0 1 0 10 1 1 1 01 0 1 1 01 1 1 1 1

    On peut remarquer sur la table de vrit que S est le ou exclusif des trois entres A, B et C0 , i.e. S = A B C0 et que la retenue C1 vaut 1 ds que deux des trois entres valent 1, cest--dire C1 = AB AC0 BC0 .

    Schma partir des formules dun additionneur complet

    Ce circuit peut aussi tre construit en assemblant deux semi-additionneurs en cascade. Le premiersemi-additionneur calcule dabord la somme de A et B puis le second calcule la somme du premierrsultat et de C0 . La retenue C1 vaut 1 sil y a au moins une retenue une des deux sommes effectues.

    - 39 -

    6.2 Additionneur complet 1 bitAdditionneurs

  • Schma et symbole dun additionneur complet (SC)

    6.3 Additionneur par propagation de retenueLadditionneur par propagation de retenue est le plus simple. Il est calqu sur lalgorithme manuelpour effectuer laddition. Les paires de bits sont additionns colonne par colonne et les retenues sontpropages vers la gauche.

    En mettant en cascade k additionneurs complets 1 bits, on construit un additionneur k bits appel additionneur par propagation de retenue car la retenue se propage dadditionneur en additionneur.

    Ladditionneur est form de k additionneurs 1 bit numrots de 0 k-1 de la droite vers la gauche.Ladditionneur i reoit en entres les bits A i et B i des entres A et B ainsi que la retenue C iengendre par ladditionneur i-1. Il calcule le bit S i de la somme et la retenue C i+1 qui est transmise ladditionneur i+1.

    Ladditionneur 0 reoit une retenue C0 qui est normalement 0 pour effectuer une addition. Lutilitde cette entre est double. Elle permet dune part de cascader les additionneurs pour former desadditionneurs sur plus de bits. Elle permet dautre part deffectuer la soustraction.

    Le nombre de portes logiques utilises par un additionneur par propagation de retenue k bits estproportionnel au nombre k. Le temps de propagation de la retenue est galement proportionnel aunombre k. Pour cette raison, cet additionneur est impraticable pour des nombres levs de bits comme16 ou 64. Il est seulement utilis pour des petits nombres de bits, comme 4. Par contre, il peut servir debrique de base des additionneurs plus sophistiqus comme ladditionneur hybride.

    Additionneur 4 bits

    - 40 -

    Olivier Carton6.3 Additionneur par propagation de retenue

  • 6.4 Calcul des indicateursDans tout micro-processeur, il existe des indicateurs ou flags qui sont des registres 1 bit pouvantprendre les valeurs 0 ou 1. Ils sont mis jour ds quun chargement ou une opration logique ouarithmtique est effectue. Ces indicateurs peuvent ensuite tre tests par les branchement conditionnels.

    Les principaux indicateurs utiliss sont les indicateurs N, Z, C et O dcrits ci-dessous. Chacun de cesindicateurs concerne le rsultat de la dernire opration effectue (chargement, logique ou arithmtique).

    Indicateur N (pour Ngatif) Il indique si le rsultat est ngatif. Comme les entiers sont reprsents en complments 2, il estgal au bit de poids fort du rsultat.

    Indicateur Z (pour Zro) Il indique si le rsultat est gal 0. Il est donc gal au complmentaire du ou logique (cest--direun nor) de tous les bits du rsultat.

    Indicateur C (pour Carry) Il indique si lopration a provoqu une retenue. Il est peut donc uniquement tre positionn parles oprations arithmtiques. Il est mis 1 lorsquil y a une retenue. Ceci correspond undbordement pour une addition de nombres non signs.

    Indicateur O (pour Overflow) Il indique un dbordement lors dune addition de nombres signs. Ce dbordement intervientlorsque la somme de deux nombres positifs est suprieure 2k-1 ou lorsque la somme de deuxnombres ngatifs est infrieure -2k-1 -1. Cet indicateur est gal au ou exclusif Ck Ck-1 desdeux dernires retenues.

    Calcul des indicateurs

    6.5 Additionneur par anticipation de retenueLa lenteur de ladditionneur par propagation de retenue impose dutiliser dautres techniques pour desadditionneurs ayant un nombre important de bits. Comme cette lenteur est due au temps ncessaire lapropagation de la retenue, toutes les techniques ont pour but dacclrer le calcul des retenues. Lapremire technique appele anticipation de retenue consiste faire calculer les retenues par un circuit extrieur.

    - 41 -

    6.4 Calcul des indicateursAdditionneurs

  • Afin de faciliter le calcul des retenues, on introduit deux quantits appeles G (pour Generate enanglais) et P (pour Propagate en anglais). Pour deux quantits binaires A et B, les quantits G et P sontdfinies de la faon suivante.

    G = AB et P = A + B

    Soient A = An-1 A0 et B = Bn-1 B0 deux entres de n bits. On note C i la retenue de laddition desi bits de poids faible de A et B. Pour acclrer le calcul des C i , on introduit les deux quantits G i et P iassocies aux entres A i et B i par les formules suivantes.

    G i = A i B i et P i = A i + B i

    La valeur G i est la retenue engendre par laddition des deux bits A i et B i et la valeur de P idtermine si la retenue de C i se propage. On a donc la formule suivante qui exprime simplement quela retenue C i+1 provient soit directement de laddition des bits A i et B i soit de la propagation de laretenue C i .

    C i+1 = G i + P i C i

    En utilisant plusieurs fois cette formule, on peut obtenir les formules suivantes qui expriment C i+1 enfonction dune retenue prcdente et des valeurs G j et P j intermdiaires.

    C i+1 = G i + P i G i-1 + P i P i-1 C i-1 C i+1 = G i + P i G i-1 + P i P i-1 G i-2 + P i P i-1 P i-2 C i-2

    Le circuit suivant permet de calculer la somme ainsi que les deux quantits G i et P i .

    Cellule de calcul de S, G et P.

    - 42 -

    Olivier Carton6.5 Additionneur par anticipation de retenue

  • 6.5.1 Calcul anticip des retenuesEn utilisant les formules ci-dessus, on obtient les formules suivantes pour les retenues C1 , C2 , C3 , et C4 partir de C0 et des signaux G0 , P0 , G1 , P1 , G2 , P2 G3 et P3 .

    C1 = G0 + P0 C0 C2 = G1 + P1 G0 + P1 P0 C0 C3 = G2 + P2 G1 + P2 P1 G0 + P2 P1 P0 C0 C4 = G3 + P3 G2 + P3 P2 G1 + P3 P2 P1 G0 + P3 P2 P1 P0 C0

    Comme la retenue C4 nest pas ncessaire pour calculer les sommes S0 , S1 , S2 et S3 , celle-cipeut-tre calcule en utilisant la formule suivante.

    C4 = G3 + P3 C3

    Lutilisation de cette dernire formule ne retarde pas les calculs des sommes et conomise des portes.

    Circuit de calcul des retenues

    6.5.2 Additionneur 4 bits avec calcul anticip des retenues

    - 43 -

    6.5.1 Calcul anticip des retenuesAdditionneurs

  • Additionneur 4 bits avec calcul anticip des retenues

    6.5.3 Additionneur 16 bits avec calcul anticip des retenuesPlus gnralement, on note pour deux indices i et j, G j,i et P j,i la retenue engendre par laddition desbits de i j et la possibilit quune retenue se propage travers les bits de i j. On a donc la formulesuivante qui exprime la retenue C j+1 en fonction de G j,i , P j,i et C i .

    C j+1 = G j,i + P j,i C i

    - 44 -

    Olivier Carton6.5.3 Additionneur 16 bits avec calcul anticip des retenues

  • Circuit de calcul des retenues et de G et P

    - 45 -

    6.5.3 Additionneur 16 bits avec calcul anticip des retenuesAdditionneurs

  • Additionneur 16 bits avec calcul anticip des retenues

    6.5.4 Additionneur 64 bits avec calcul anticip des retenues

    Additionneur 64 bits avec calcul anticip des retenues

    6.6 Additionneur rcursifOn commence par dfinir une opration binaire sur les paires (G,P). Cette opration note prend enparamtre deux paires (G, P) et (G, P) de valeurs binaires et retourne une nouvelle paire (G, P) =(G, P) (G, P) dfinie par les formules suivantes.

    G = G + PG et P = PP

    Cette opration nest pas commutative mais elle est associative. Les deux calculs de ((G, P) (G, P)) (G, P) ou de (G, P) ((G, P) (G, P)) donnent en effet la paire suivante. Il sagit pour lesconnaisseurs dun produit semi-direct.

    - 46 -

    Olivier Carton6.6 Additionneur rcursif

  • (G+PG+PPG, PPP)

    Cette opration permet des calculs rapides de toutes les valeurs G et P en utilisant les formules ci-dessous.

    Pour i = k, on a G i,i = G i et P i,i = P i . Pour i j k, on a la formule suivante qui permet de calculerrcursivement toutes les valeurs Gk,i et Pk,i .

    (Gk,i , Pk,i ) = (Gk,j+1 , Pk,j+1 ) (G j,i , P j,i ).

    Le circuit GP ci-dessous calcule lopration Il prend en entre deux paires (Gk,j+1 , Pk,j+1 ) et (G j,i , P j,i ) et calcule la paire (Gk,i , Pk,i ) en utilisant la formule ci-dessus.

    Cellule de calcul des Gk,i et Pk,i

    Le circuit GP peut tre utilis pour former un arbre de calcul des valeurs Gk,i et Pk,i . Cet arbre necalcule pas toutes les valeurs Gk,i et Pk,i mais seulement celles ncessaires au calcul des retenues.

    Arbre de calcul des Gk,i et Pk,i

    - 47 -

    6.6 Additionneur rcursifAdditionneurs

  • Le circuit GP peut tre tendu en un circuit GPC qui effectue en outre le calcul de la retenue enutilisant la formule suivante dj donne ci-dessus.C j+1 = G j,i + P j,i C i .

    Le circuit GPC prend donc entre deux paires (Gk,j+1 , Pk,j+1 ) et (G j,i , P j,i ) et une retenue C i etcalcule la paire (Gk,i , Pk,i ) et la retenue C j+1 .

    Cellule de calcul des Gk,i , Pk,i et C j

    Si on remplace les circuit GP par des circuits GPC dans larbre de calcul ci-dessus, on obtient uncircuit qui calcule en outre les retenues.

    Additionneur rcursif 8 bits

    - 48 -

    Olivier Carton6.6 Additionneur rcursif

  • Pour un circuit travaillant sur des entres de k bits, la profondeur de larbre est gale log k. Lenombre de portes du circuit est donc de lordre de k. Le temps de calcul des retenues est proportionnel log k. Les signaux G et P doivent descendre jusqu la racine de larbre puis les calculs de retenuesdoivent remonter jusquaux feuilles.

    6.7 Additionneur hybrideLide gnrale dun additionneur hybride est de combiner des techniques diffrentes de calcul deretenues pour construire un gros additionneur. Une premire technique comme la propagation de laretenue peut tre utilise pour construire des petits additionneurs qui sont ensuite regroups en utilisantune autre technique comme le calcul anticip de la retenue. On construit ci-dessous un additionneur 16bits en combinant 4 additionneurs 4 bits par propagation de retenue. Ces 4 additionneurs 4 bits sontassembls autour dun circuit danticipation de retenue qui calcule leurs 4 retenues dentre.

    Afin de pouvoir utiliser un circuit danticipation de retenue, il faut disposer dun circuit calculant lesvaleurs G et P associes chacun des blocs de 4 bits. Ce circuit GP prend en entre les 8 valeurs G0 , G1 , G2 , G3 , P0 , P1 , P2 , et P3 associes aux 4 paires de bits et produit les valeurs G3,0 et P3,0 dubloc de 4 bits.

    On construit 4 additionneurs par propagation de retenue qui calculent galement les valeurs G0 , G1 , G2 , G3 , P0 , P1 , P2 , et P3 associes aux 4 paires de bits.

    Additionneur 4 bits et calcul de G et P

    Les quatre additionneurs par propagation de retenue 4 bits 4SGP sont combins au circuitdanticipation de retenue 4C par lintermdiaire des circuits GP de calcul des valeurs G et P des blocs.Le circuit global obtenu est un additionneur hybride 16 bits.

    - 49 -

    6.7 Additionneur hybrideAdditionneurs

  • Additionneur hybride 16 bits

    6.8 Additionneur par slection de retenueLide gnrale de ladditionneur par slection de retenue est deffectuer en parallle le calcul avecune retenue de 0 et le calcul avec une retenue de 1 puis de slectionner le bon rsultat lorsque laretenue est enfin connue.

    Additionneur par slection de retenue 16 bits

    - 50 -

    Olivier Carton6.8 Additionneur par slection de retenue

  • 6.9 SoustracteurPour calculer la diffrence A - B de deux nombre signs A et B, on utilise un circuit qui calculedabord loppos -B de B puis effectue la somme de A avec -B grce un additionneur. Le calcul de-B est ralis en prenant la ngation de B bit bit puis en ajoutant 1 au rsultat obtenu. Ce dernier 1 esten fait ajout directement la somme de A et -B en linjectant comme retenue C0 ladditionneur.

    Le circuit ci-dessous effectue une somme ou une diffrence suivant la valeur de la commande Cmd. SiCmd vaut 0, le circuit calcule la somme A + B. Si, au contraire, Cmd vaut 1, le circuit calcule ladiffrence A - B. En effet, chacune des portes xor effectue la ngation ou non dune entre B i suivantla valeur de Cmd.

    La diffrence est ici calcule avec un simple additionneur par propagation de retenue mais tout autreadditionneur plus sophistiqu aurait pu aussi tre utilis.

    Soustracteur 4 bits

    - 51 -

    6.9 SoustracteurAdditionneurs

  • 7 MmoiresOn appelle mmoire un composant lectronique permettant de stocker une information sous formebinaire. On distingue les mmoires lecture seule appeles ROM pour Read Only Memory et lesmmoires lecture/criture appeles improprement RAM pour Random Access Memory. Le contenudes mmoires lecture seule est fix lors de la fabrication en usine et reste dans la mmoire lorsquecelle-ci nest pas alimente. Au contraire, les mmoires lecture/criture sont volatiles. Le contenu estperdu ds quelles ne sont plus alimentes.

    Il existe des mmoires intermdiaires entre les RAM et les ROM. Elles se comportent comme desROM dans la mesure o elles ne perdent pas leur contenu sans alimentation mais ce contenu peuttoutefois tre modifi par un processus spcial. Le contenu dune EPROM est effac par uneexposition aux ultra-violets. Un nouveau contenu peut alors tre crit par un appareil spcialis. LesEEPROM peuvent tre reprogrammes de manire lectrique. Les mmoires flash sont des EEPROMdont la reprogrammation est rapide (do leur nom).

    Les mmoires des tous premiers ordinateurs taient magntiques. Les mmoires sont maintenant descomposants lectroniques base de transistors. Il existe deux types de mmoires qui se distinguent parleur technique de fabrication : les mmoires dynamiques et les mmoires statiques. Il sagit dans lesdeux cas de mmoires volatiles qui ncessitent une alimentation pour conserver leur contenu. Lammoire dynamique est appele DRAM pour Dymanic RAM par opposition la mmoire statiqueappele SRAM pour Static RAM.

    Mmoire dynamique Mmoire statique Grande densit dintgration Petite densit dintgration Bon march Chre Lente Rapide Mcanisme de rafrachissent

    Comme son cot est moindre et que sa densit dintgration est suprieure, la mmoire dynamique estutilise pour la mmoire principale de lordinateur. Par contre, la mmoire statique est utilise pour lescaches en raison de sa plus grande vitesse.

    7.1 Mmoire dynamiqueChaque lment de mmoire dynamique est form dun condensateur et dun transistor de commande(cf. figure ci-dessous). La ligne A est appele ligne de commande ou ligne dadresse. La ligne B est la ligne de donne sur laquelle est lu ou crit le bit dinformation. Le bit dinformation est reprsent parla charge du condensateur. Lorsque la ligne de commande est 0, le condensateur est isol de la lignede donne et la charge reste prisonnire du condensateur. Au contraire, lorsque la ligne de commandeest 1, on peut lire le bit en dtectant la charge ou crire un nouveau bit en forant la ligne de donne une valeur.

    - 52 -

    Olivier Carton7 Mmoires

  • Mmoire dynamique 1 bit

    7.1.1 Types de mmoires dynamiquesIl existe deux types principaux de mmoire dynamique qui se distinguent par leur faon decommuniquer avec le processeur. Les premires mmoires dynamiques taient asynchrones alors queles mmoires actuelles sont synchrones. Ces dernires sont appeles SDRAM pour SynchronousDymanic RAM.

    Lorsque le processeur lit une donne dans une mmoire asynchrone, celui-ci lui envoie ladresse puisattend que celle-ci lui retourne la donne cette adresse. Plusieurs cycles horloge peuvent scouleravant que la donne ne parvienne au processeur. Aprs rception de la donne, le processeur peut nouveau demander une autre donne la mmoire. chaque requte la mmoire, le processeur resteinactif en attendant que la donne narrive.

    Dans le cas de mmoire synchrone, le processeur peut envoyer la mmoire une nouvelle requte delecture ou dcriture avant que celle-ci nait fini de traiter la premire requte. Les demandessuccessives sont alors excutes squentiellement par la mmoire. Chaque requte est reue pendantun cycle dhorloge et les donnes sont dlivres quelques cycles dhorloge plus tard. Le nombre decycles dhorloge entre la requte et la donne est fixe. De cette manire, le processeur peut dterminer quelle requte correspond chaque donne. Le principe de fonctionnement dune mmoire synchroneest identique au pipeline utilis pour raliser un processeur. La mmoire est organise comme unechane o sont traites les requtes. La mmoire traite simultanment plusieurs requtes qui setrouvent des tapes diffrentes de la chane. Le traitement dune seule requte prend plusieurs cyclesdhorloge mais une requte est traite chaque cycle.

    Parmi les mmoires synchrones, on distingue encore plusieurs variantes. Les mmoires SDR SDRAMpour Single Data Rate SDRAM reoivent une requte chaque cycle dhorloge. Les mmoires DDRSDRAM pour Double Data Rate DRAM permettent de doubler le dbit de donnes entre le processeuret la mmoire. Une requte est encore traite chaque cycle dhorloge mais chaque requte concernedeux mots conscutifs en mmoire. Le premier mot est transmis sur le front montant du signaldhorloge alors que le second est transmis sur front descendant du signal dhorloge. Les mmoiresDDR2 SDRAM doublent encore le dbit de donnes en traitant quatre mots conscutifs en mmoire chaque requte.

    7.2 Mmoire statiqueChaque lment de mmoire statique est form de six transistors. Quatre de ces six transistorsconstituent deux inverseurs mis tte-bche et les deux derniers, commands par la ligne dadresse A,relient les inverseurs aux lignes de donnes

    - 53 -

    7.2 Mmoire statiqueMmoires

  • Mmoire statique 1 bit

    Le verrou SR est un bit de mmoire muni de deux entres S et R permettant de le positionner 1 (Set)ou 0 (Reset). Ce circuit peut tre ralis avec deux portes nor ou deux portes nand. Dans ce derniercas, les commandes S et R sont inverses : elles sont actives pour la valeur 0 et inactive pour la valeur 1.

    Verrou SR

    Linconvnient principal du verrou SR est que son tat nest pas spcifi si les deux commandes S et Rsont actives simultanment. Le verrou D rsout ce problme. Ce verrou a deux entres D (pour Data)et W (pour Write). La premire entre donne la valeur qui doit tre crite dans le bit de mmoire et laseconde entre valide lentre D. Si W vaut 0, rien nest crit dans la mmoire et son tat resteinchang. Si au contraire W vaut 1, la valeur de D est crite dans la mmoire.

    Verrou D (mmoire 1 bit)

    La bascule D est obtenue en mettant en srie deux verrous D avec des entres W en opposition(ngation lune de lautre). Lentre W du premier verrou D est lentre Clk de la bascule et sa sortieest lentre D du second verrou D. Lentre W du second verrou est la ngation Clk de lentre Clkde la bascule. Quand lentre Clk de la bascule vaut 1, son entre D est crite dans le premier verroupendant que le second verrou reste inchang. Quand lentre Clk de la bascule vaut 0, le premierverrou reste inchang et son tat est crit dans le second verrou. Il sagit dune sorte de bufferisationqui permet de lire et dcrire simultanment dans une mmoire 1 bit. Pendant que Clk vaut 1, le

    - 54 -

    Olivier Carton7.2 Mmoire statique

  • premier verrou reoit la nouvelle valeur pendant que lancienne valeur est lue dans le second verrou.Pendant que Clk vaut 0, la nouvelle valeur est transfre dans le second verrou.

    Les bascules D sont utilises dans les circuits squentiels et elle reoivent alors le signal dhorloge surlentre Clk (pour Clock).

    Bascule D (mmoire 1 bit avec bufferisation)

    7.3 Organisation de la mmoire

    7.3.1 Mmoires k n bitsLa mmoire peut tre vue comme organise en grille. Chaque ligne correspond une adresse. Lenombre de lignes est donc une puissance de deux. Ce nombre est gal 2k o k est le nombre delignes dadresse. Chaque colonne de la grille correspond un des bits de la donne transmise. Lenombre de colonnes peut tre quelconque mme si dans la pratique, cest aussi une puissance de deux,souvent 8, 16 ou 32.

    - 55 -

    7.3 Organisation de la mmoireMmoires

  • Mmoire 4 3 bits

    7.3.2 Mmoires 1 bitDans le cas dune mmoire 1 bit, il y a un intrt ne pas lorganiser comme une seule colonne selonle principe prcdent mais encore sous forme dune grille. Il y a alors un gain sur le nombre de porteslogiques utilises pour le dcodage des adresses.

    - 56 -

    Olivier Carton7.3.2 Mmoires 1 bit

  • Organisations colonne et grille dune mmoire 28 1 bits

    Soit par exemple une mmoire 28 1 bits. Si elle est organise selon une seule colonne, on a undcodeur 8 entres qui utilise donc 256 = 28 portes et logique ayant chacune 8 entres. Cette mmemmoire peut tre organise selon une grille 16 16. Les quatre premiers bits A0 A3 sont envoyssur un dcodeur pour slectionner la ligne parmi les 16 = 24 lignes. Un multiplexeur command parles quatre derniers bits A4 A7 permet de slectionner le bit parmi les 16 bits provenant des 16colonnes. Le dcodeur et le multiplexeur utilisent chacun 16 portes et logique ayant chacune 3 ou 4entres. Ceci fait un total de 32 portes dans lorganisation en grille et donc un gain de 224 portesportes par rapport lorganisation en colonne. Dans le cas de mmoires ayant un nombre trsimportant de bits, le gain est bien suprieur.

    Dans le cas dune grille, celle-ci na pas besoin dtre carre comme dans lexemple. Il est possibledutiliser tous les intermdiaires entre une seule colonne et un carr. Par contre, ce sont les grillescarres qui procurent le plus grand gain en nombre de portes logiques. Dans lorganisation colonne, lenombre de portes utilises est proportionnel au nombre de bits de la mmoire. Chaque bit mmoirencessite un seul transistor alors que chaque porte logique ncessite plusieurs transistors. Du coup,lessentiel des transistors est finalement utilis pour le dcodage des adresses. Dans lorganisation engrille, le nombre de portes logiques utilises pour le dcodage est proportionnel la racine carre nde n o n est le nombre de bits de la mmoire.

    7.3.3 Couplage de mmoireLa plupart des mmoires utilises dans les ordinateurs sont des mmoires 1 bit. Pour obtenir unemmoire dont chaque mot est un octet, il est ncessaire dassembler huit botiers. Ceux-ci sont mis enparallle dans la mesure o ils reoivent tous la mme adresse. Par contre, chacun des botiers reoitune seule ligne du bus de donne.

    - 57 -

    7.3.3 Couplage de mmoireMmoires

  • Mmoire 28 8 bits

    7.3.4 Augmentation de la taillePour construire une mmoire ayant 2k mots avec des botiers mmoire 2k mots, il faut utiliser 2k-kbotiers. Les k bits dadresses sont alors distribus de la manire suivante. Les k bits de poids faibles A0 Ak-1 sont envoys sur tous les botiers. Les k-k bits de poids fort Ak Ak-1 arrivent sur undcodeur permettant de slectionner un seul des 2k-k botiers mmoire. Tous les bits du bus dedonnes sont relis chacun des botiers. Ceci est possible aussi bien en lecture quen criture car lesentre/sorties des botiers sont dans un tat dit haute impdance lorsque le circuit nest pas slectionn.

    Mmoire 212 8 bits

    7.4 Mmoires associativesLes mmoires associatives permettent de stocker un ensemble de paires (cls,valeurs), de rechercheren temps constant si une valeur est associe une cl. Un tel dispositif est utilis dans les routeursrseaux et surtout pour le Translation Lookaside Buffer de la mmoire virtuelle. La mmoireassociative sert alors traduire les adresses virtuelles en adresses physiques.

    - 58 -

    Olivier Carton7.4 Mmoires associatives

  • Principe de la mmoire associative

    Organisation dune mmoire associative

    Cellule de mmoire associative

    - 59 -

    7.4 Mmoires associativesMmoires

  • 8 Circuits squentielsIl ny a aucune notion de temps dans les circuits combinatoires. Un circuit combinatoire estsimplement une fonction qui calcule des valeurs de sortie en fonction des valeurs dentre. On peutajouter la notion de temps avec un signal dhorloge. Un signal dhorloge est un signal carr priodiquequi peut tre produit par un quartz.

    8.1 Principe

    Principe du circuit squentiel

    8.2 Horloge

    Signal dhorloge

    8.3 ExempleLe petit circuit ci-dessous permet dincrmenter ou de dcrmenter un entier cod sur trois bits. Soit nlentier reprsent en binaire par les trois bits dentre A2 A1 A0 . Si la valeur en entre de Cmd est 0,lentier reprsent par les trois bits de sortie S2 S1 S0 est n+1. Si au contraire la valeur en entre de Cmd est 1, lentier reprsent par les trois bits de sortie S2 S1 S0 est n-1. Les calculs de n+1 ou n-1sont bien sr effectus modulo 8.

    Incrmenteur/dcrmenteur commande

    - 60 -

    Olivier Carton8 Circuits squentiels

  • Le circuit ci-dessous ralise une guirlande lumineuse. Les lampes sallument tour de rle de manirecyclique. La vitesse du processus est contrle par le signal dhorloge Clk. Le sens de rotation ducycle est dtermin par lentre Cmd.

    Guirlande commande

    8.4 Automate

    Implantation dun automate

    - 61 -

    8.4 AutomateCircuits squentiels

  • 9 Architecture dun micro-processeurAvant dtudier larchitecture dtaille dun micro-processeur prcis, on aborde ici larchitectureglobale dun micro-processeur. Tous les micro-processeurs conus jusqu aujourdhui sorganisentglobalement de mme faon. Ils peuvent tre dcomposs en quatre composants dcrits par le modlede von Neumann.

    9.1 Modle de von NeumannLe modle de von Neumann donne les quatre composants essentiels qui constituent unmicro-processeur. Il dcrit galement les interactions entre ces diffrents composants.

    Les quatre composants du modle de von Neumann sont les suivants.

    1. unit de contrle 2. unit de traitement 3. mmoire 4. unit dentres/sorties

    Modle de von Neumann

    9.2 Organisation interne des composants

    - 62 -

    Olivier Carton9 Architecture dun micro-processeur

  • Unit de contrle

    Unit de traitement

    9.2.1 MmoireLe registre dadresse (Memory Address Register) est le registre o est stock ladresse de la casemmoire lue ou crite lors dun accs la mmoire. La donne transite par le registre de donne (Memory Data Register). Lors dune lecture, la donne parvient au processeur dans ce registre. Lorsdune criture, la donne est place dans ce registre par le processeur avant dtre crite dans la case mmoire.

    - 63 -

    9.2.1 MmoireArchitecture dun micro-processeur

  • Mmoire

    9.3 Instructions

    9.4 Cycle dexcution1. chargement de linstruction 2. dcodage de linstruction 3. calcul des adresses des oprandes 4. chargement des oprandes 5. excution 6. mise en place du rsultat

    9.5 Registres PC et IRLe compteur de programme (PC pour Program counter) contient en permanence ladresse de laprochaine instruction excuter. chaque dbut de cycle dexcution, linstruction excuter estcharge dans le registre IR partir ladresse contenue dans le registre PC. Ensuite, le registre PC estincrment pour pointer sur linstruction suivante.

    Le registre dinstruction (IR) contient linstruction en cours dexcution. Ce registre est charg audbut du cycle dexcution par linstruction dont ladresse est donne par le compteur de programme PC.

    9.6 Codage des instructionsLes instructions excuts par le processeur sont stockes en mmoire. Toutes les instructions possiblessont reprsentes par des codes. Le code dune instruction est appel op-code. Les op-code peuventtre de longueur fixe comme dans le LC-3 ou de longueur variable comme dans le Pentium.

    - 64 -

    Olivier Carton9.3 Instructions

  • 10 Micro-processeur LC-3Le micro-processeur LC-3 est vocation pdagogique. Il nexiste pas de ralisation concrte de ceprocesseur mais il existe des simulateurs permettant dexcuter des programmes. Lintrt de cemicro-processeur est quil constitue un bon compromis de complexit. Il est suffisamment simple pourquil puisse tre apprhend dans son ensemble et que son schma en portes logiques soit accessible. Ilcomprend cependant les principaux mcanismes des micro-processeurs (appels systme, interruptions)et son jeu dinstructions est assez riche pour crire des programmes intressants.

    10.1 RegistresLe micro-processeur LC-3 dispose de 8 registres gnraux 16 bits appels R0,,R7. Il possde aussiquelques registres spcifiques dont lutilisation est aborde plus tard. Le registre PSR (Program StatusRegister) regroupe plusieurs indicateurs binaires dont lindicateur de mode (mode utilisateur ou modeprivilgi), les indicateurs n, z et p qui sont tests par les branchements conditionnels ainsi que leniveau de priorit des interruptions. Les registres USP (User Stack Pointer) et SSP (System StackPointer) permettent de sauvegarder le registre R6 suivant que le programme est en mode privilgi ounon. Comme tous les micro-processeurs, le LC-3 dispose dun compteur de programme PC et dunregistre dinstruction IR qui sont tous les deux des registres 16 bits.

    Registres du LC-3

    10.1.1 Registre PSRLe registre PSR regroupe plusieurs informations diffrentes. Le bit de numro 15 indique si leprocesseur est en mode utilisateur (0) ou privilgi (1). Les trois bits de numros 10 8 donnent lapriorit dexcution. Les trois bits de numros 2 0 contiennent respectivement les indicateurs n, z et p.

    Registre PSR

    - 65 -

    10 Micro-processeur LC-3Micro-processeur LC-3

  • 10.2 Indicateurs N, Z et PLes indicateurs sont des registres 1 bit. Les trois indicateurs n, z et p font, en fait, partie du registrespcial PSR. Ils sont positionns ds quune nouvelle valeur est mise dans un des registres gnraux R0,,R7. Ceci a lieu lors de lexcution dune instruction logique (NOT et AND), arithmtique (ADD)ou dune instruction de chargement (LD, LDI, LDR et LEA). Ils indiquent respectivement si cettenouvelle valeur est ngative (n), nulle (z) et positive (p). Ces indicateurs sont utiliss par linstructionde branchement conditionnel BR pour savoir si le branchement doit tre pris ou non.

    10.3 MmoireLa mmoire du LC-3 est organise par mots de 16 bits. Ladressage du LC-3 est galement de 16 bits.La mmoire du LC-3 est donc forme de 216 mots de 16 bits, cest--dire 128 KiB avec des adressesde 0000 FFFF en hexadcimal. Cette organisation de la mmoire est inhabituelle mais elle simplifiele cblage. La mmoire de la plupart des micro-processeurs est organise par octets (mots de 8 bits).Par contre, ces micro-processeurs ont la possibilit de charger directement 2, 4 ou 8 octets. Pourcertains, ce bloc doit tre align sur une adresse multiple de 2, 4 ou 8 alors que ce nest pas ncessairepour dautres.

    Mmoire du LC-3

    10.4 InstructionsLes instructions du LC-3 se rpartissent en trois familles : les instructions arithmtiques et logiques,les instructions de chargement et rangement et les instructions de branchement (appeles aussi instructions de saut ou encore instructions de contrle).

    Les instructions arithmtiques et logiques du LC-3 sont au nombre de trois. Le LC-3 possde uneinstruction ADD pour laddition, une instruction AND pour le et logique bit bit et une instruction NOTpour la ngation bit bit. Le rsultat de ces trois oprations est toujours plac dans un registre. Lesdeux oprandes peuvent tre soit les contenus de deux registres soit le contenu dun registre et uneconstante pour ADD et AND.

    - 66 -

    Olivier Carton10.2 Indicateurs N, Z et P

  • Les instructions de chargement et rangement comprennent des instructions (avec des nomscommencent par LD) permettant de charger un registre avec une valeur et des instructions (avec desnoms commencent par ST) permettant de ranger en mmoire le contenu dun registre. Ces instructionsse diffrencient par leurs modes dadressage qui peut tre immdiat, direct, indirect ou relatif. Lesinstructions de chargement sont LD, LDI, LDR, LEA et les instructions de rangement sont ST, STI et STR.

    Les instructions de branchement comprennent les deux instructions de saut BR et JMP, les deuxinstructions dappel de sous-routine JSR et JSRR, une instruction TRAP dappel systme, uneinstruction RET de retour de sous-routine et une instruction RTI de retour dinterruption.

    10.4.1 Description des instructions10.4.1.1 Instructions arithmtiques et logiquesCes instructions du LC-3 nutilisent que les registres aussi bien pour les sources que pour ladestination. Ceci est une caractristique des architectures RISC. Le nombre dinstructionsarithmtiques et logiques du LC-3 est rduit au strict ncessaire. Les micro-processeurs rels possdentaussi des instructions pour les autres oprations arithmtiques (soustraction, multiplication, division) etles autres oprations logiques (ou logique, ou exclusif). Ils possdent aussi des instructions pourladdition avec retenue, les dcalages.

    10.4.1.1.1 Instruction NOT

    Linstruction NOT permet de faire le non logique bit bit dune valeur 16 bits. Sa syntaxe est NOT DR,SR o DR et SR sont les registres destination et source.

    10.4.1.1.2 Instruction ADD

    Linstruction ADD permet de faire laddition de deux valeurs 16 bits. Elle convient pour les additionspour les nombres signs ou non puisque les nombres sont reprsents en complment 2. Elle a deuxformes diffrentes. Dans la premire forme, les deux valeurs sont les contenus de deux registresgnraux. Dans la seconde forme, la premire valeur est le contenu dun registre et la seconde est uneconstante (adressage immdiat). Dans les deux formes, le rsultat est rang dans un registre.

    La premire forme a la syntaxe ADD DR,SR1,SR2 o DR est le registre destination o est rang lersultat et SR1 et SR2 sont les registres sources do proviennent les deux valeurs. La seconde formea la syntaxe ADD DR,SR1,Imm5 o DR et SR1 sont encore les registres destination et source et Imm5 est une constante code sur 5 bits (-16 Imm5 15). Avant deffecteur lopration, la constante Imm5 est tendue de faon signe sur 16 bits en recopiant le bit 4 sur les bits 5 15.

    10.4.1.1.3 Instruction AND

    Linstruction AND permet de faire le et logique bit bit de deux valeurs 16 bits. Elle a deux formessimilaires celles de linstruction ADD de syntaxes AND DR,SR1,SR2 et AND DR,SR1,Imm5.

    - 67 -

    10.4.1 Description des instructionsMicro-processeur LC-3

  • 10.4.1.2 Instructions de chargement et rangementLes instructions de chargement permettent de charger un des registres gnraux avec un mot enmmoire alors que les instructions de rangement permettent de ranger en mmoire le contenu dun deces registres. Ce sont les seules instructions faisant des accs la mmoire. Ces diffrentes instructionsse diffrencient par leur mode dadressage. Un mode dadressage spcifie la faon dont ladressemmoire est calcule. Le micro-processeur LC-3 possde les principaux modes dadressage qui sontles modes dadressage immdiat, direct, relatif et indirect. La terminologie pour les modes dadressagenest pas fixe car chaque constructeur a introduit ses propres termes. Le mme mode peut avoir desnoms diffrents chez deux constructeurs et le mme nom utilis par deux constructeurs peut recouvrirdes modes diffrents.

    Il faut faire attention au fait que presque tous les modes dadressage du LC-3 sont relatifs au compteurde programme. Cette particularit est l pour compenser la petite taille des offsets qui permettent unadressage un espace rduit.

    Excepte linstruction LEA, les instructions de chargement et rangement vont par paire. Pour chaquemode dadressage, il y a une instruction de chargement dont le mnmonique commence par LD pour LoaD et une instruction de rangement dont le mnmonique commence par ST pour STore.

    Toutes les instructions de chargement et rangement contiennent un offset. Cet offset nest en gnralpas donn explicitement par le programmeur. Celui-ci utilise des tiquettes et lassembleur se chargede calculer les offsets.

    10.4.1.2.1 Instruction LEA

    Linstruction LEA pour Load Effective Address charge dans un des registres gnraux la somme ducompteur de programme et dun offset cod dans linstruction. Ce mode adressage est gnralementappel adressage absolu ou immdiat car la valeur charge dans le registre est directement contenuedans linstruction. Aucun accs supplmentaire la mmoire nest ncessaire. Cette instruction est parexemple utilise pour charger dans un registre ladresse dun tableau.

    Adressage immdiat

    - 68 -

    Olivier Carton10.4.1 Description des instructions

  • 10.4.1.2.2 Instructions LD et ST

    Les instructions LD et SD sont les instructions gnrales de chargement et rangement. Linstruction LDcharge dans un des registres gnraux le mot mmoire ladresse gale la somme du compteur deprogramme et dun offset cod dans linstruction. Linstruction ST range le contenu du registre cettemme adresse. Ce mode adressage est gnralement appel adressage direct. Il ncessite un seul accs la mmoire.

    Adressage direct

    10.4.1.2.3 Instructions LDR et STR

    Linstruction LDR charge dans un des registres gnraux la mot mmoire ladresse gale la sommedu registre de base et dun offset cod dans linstruction. Linstruction STR range le contenu duregistre cette mme adresse. Ce mode adressage est gnralement appel adressage relatif ou bas. Ilncessite un seul accs la mmoire. La premire utilit de ces instructions est de manipuler les objetssur la pile comme par exemple les variables locales des fonctions. Elles servent aussi accder auxchamps des structures de donnes. Le registre de base pointe sur le dbut de la structure et loffset duchamp dans la structure est cod dans linstruction.

    Adressage relatif

    - 69 -

    10.4.1 Description des instructionsMicro-processeur LC-3

  • 10.4.1.2.4 Instructions LDI et STI

    Les instructions LDI et STI sont les instructions les plus complexes de chargement et rangement. Ellemettent en uvre une double indirection. Elles calculent, comme les instructions LD et SD, la sommedu compteur de programme et de loffset. Elle chargent la valeur contenue cette adresse puis utilisentcette valeur nouveau comme adresse pour charger ou ranger le registre. Ce mode adressage estgnralement appel adressage indirect. Il ncessite deux accs la mmoire.

    Adressage indirect

    10.4.1.3 Instructions de branchements

    10.4.1.3.1 Instruction BR

    Linstruction gnrale de branchement est linstruction BR. Elle modifie le droulement normal desinstructions en changeant la valeur contenue par le registre PC. Cette nouvelle valeur est obtenue enajoutant la valeur de PC un offset cod sur 9 bits dans linstruction.Le branchement peut tre inconditionnel ou conditionnel. Le cas conditionnel signifie que lebranchement est rellement excut seulement si une condition est vrifie. Certains des troisindicateurs n, z, et p sont examins. Si au moins un des indicateurs examins vaut 1, le branchementest pris. Sinon, le branchement nest pas pris et le droulement du programme continue aveclinstruction suivante.

    On rappelle que les trois indicateurs n, z et p sont mis jour ds quune nouvelle valeur est chargedans un des registres gnraux. Ceci peut tre ralis par une instruction arithmtique ou logique oupar une instruction de chargement. Les indicateurs qui doivent tre pris en compte par linstruction BRsont ajouts au mnmonique BR pour former un nouveau mnmonique. Ainsi linstruction BRnpexcute le branchement si lindicateur n ou lindicateur p vaut 1, cest--dire si lindicateur z vaut 0.Le branchement est alors pris si la dernire valeur charge dans un registre est non nulle.

    - 70 -

    Olivier Carton10.4.1 Description des instructions

  • Branchement conditionnel

    Les programmes sont crits en langage dassembleur qui autorise lutilisation dtiquettes (labels enanglais) qui vitent au programmeur de spcifier explicitement les offsets des branchements. Leprogrammeur crit simplement une instruction BR label et lassembleur se charge de calculerloffset, cest--dire la diffrence entre ladresse de linstruction de branchement et ladresse dsignepar ltiquette label.

    Comme loffset est cod sur 9 bits, linstruction BR peut uniquement atteindre une adresse situe de-255 256 mots mmoire. Le dcalage dune unit est d au fait que le calcul de la nouvelle adresseest effectu aprs lincrmentation du compteur de programme qui a lieu lors de la phase dechargement de linstruction.

    10.4.1.3.2 Instruction JMP

    Linstruction JMP permet de charger le compteur de programme PC avec le contenu dun des registresgnraux. Lintrt de cette instruction est multiple.

    1. Linstruction JMP compense la faiblesse de linstruction BR qui peut uniquement effectuer unbranchement proche. Linstruction JMP permet de sauter nimporte quelle adresse. Si ltiquette label dsigne une adresse trop loigne, le branchement cette adresse peut tre effectue parle code suivant.

    LD R7,labelp JMP R7labelp: .FILL label ...

    label: ...

    2. Linstruction JMP est indispensable pour tout les langages de programmation qui manipulentexplicitement comme C et C++ ou implicitement des pointeurs sur des fonctions. Tous leslangages de programmation objet manipulent des pointeurs sur des fonctions dans la mesure ochaque objet a une table de ses mthodes.

    3. Linstruction JMP permet aussi les retours de sous-routines puisque linstruction RET est en faitune abrviation pour linstruction JMP R7.

    - 71 -

    10.4.1 Description des instructionsMicro-processeur LC-3

  • Branchement par registre

    10.4.2 Rcapitulatif des InstructionsLa table suivante d