introduction a l architecture des...

170
INTRODUCTION A LARCHITECTURE DES ORDINATEURS Jean-Christophe BUISSON septembre 2017

Upload: others

Post on 12-Jul-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: INTRODUCTION A L ARCHITECTURE DES ORDINATEURSdiabeto.enseeiht.fr/download/archi/cours/book2_4.5.pdfLa plupart des ordinateurs ont l’organisation générale de la Figure I-1. Figure

INTRODUCTIONAL’ARCHITECTUREDESORDINATEURS

Jean-ChristopheBUISSON

septembre2017

Page 2: INTRODUCTION A L ARCHITECTURE DES ORDINATEURSdiabeto.enseeiht.fr/download/archi/cours/book2_4.5.pdfLa plupart des ordinateurs ont l’organisation générale de la Figure I-1. Figure

2

Page 3: INTRODUCTION A L ARCHITECTURE DES ORDINATEURSdiabeto.enseeiht.fr/download/archi/cours/book2_4.5.pdfLa plupart des ordinateurs ont l’organisation générale de la Figure I-1. Figure

3

ChapitreI. PrincipesgénérauxI.1. Organisationgénéraled’unordinateur

I.1.1. LemodèledeVonNeumannLaplupartdesordinateursontl’organisationgénéraledelaFigureI-1.

FigureI-1.Organisationgénéraled’unordinateur;lesflèchessontdescheminsdedonnées.

Cetteorganisationestditede’Von-Neumann’,carelleressemblebeaucoupàlamachineconçueparJohnVonNeumannsurlamachineIASpeuaprèsladeuxièmeguerremondiale.Ellesupposeetimpliqueuncertainnombredepropriétéscaractéristiquesdesordinateursactuels:

Lamémoireestuncomposantcentral;c’estuntableaudemotsdetaillefixeOnvoitsurleschémaquelamémoirecentraleestaudépartetàl’arrivéedel’exécutiond’unprogramme.C’estellequicontientleprogrammeàexécuteretlesdonnéesinitiales;c’estdansellequeserontstockéslesrésultatsintermédiairesoufinaux.

C’estuntableaudemotsbinairesdetaillefixe.Chaquemotestrepéréparunnombreappeléadresse,etlesprogrammesferontréférenceauxdonnéesetauxinstructionsenmémoireparleursadresses.

LeprogrammeexécutéestdanslamémoirecentraleMêmesileprogrammequ’exécuteunordinateureststockéinitialementsurundisquedur,cen’estpasavantd’avoirétécopiéenmémoirecentrale,quesonexécutionpeutcommencer.

Unprogrammequ’exécuteunordinateurestcomposéd’instructionssousformedemotsmémoire.Lelangageutilisépourcoderlesinstructionsenmotsbinairesestappelélangagemachine,c’estleseulquecomprenneleprocesseur.Latailledesinstructionsvariebeaucoupselonletypedesprocesseurs.Parfoistouteslesinstructionsontlamêmetaille,égaleàunouplusieursmotsmémoire;parfoisellesontdestaillesvariablesselonlacomplexitédel’instruction.

Page 4: INTRODUCTION A L ARCHITECTURE DES ORDINATEURSdiabeto.enseeiht.fr/download/archi/cours/book2_4.5.pdfLa plupart des ordinateurs ont l’organisation générale de la Figure I-1. Figure

4

Leprocesseurestlecoordonnateurdel’exécutionLeprocesseurcontrôlel’exécutiondesprogrammes,enorganisantlechargementdesinstructionsetledétaildeleurexécution;c’estaussiluiquieffectuetouslescalculs,notammentsurlesnombresentiers.Cesdeuxfonctionssontassociéesdanslamêmeunitécarlecontrôledel’exécutionnécessitesouventdescalculsentiers,lorsqueparexempleilfautfaireunesommepourdéterminerl’adressedel’instructionsuivante.

Leprocesseurabesoindegarderlatraced’uncertainnombred’informationspendantl’exécutiondesinstructions:l’adressedel’instructionencoursparexemple,oulerésultatdeladernièreopérationarithmétique.Ilutilisepourceladesregistres,quisontdesmotsmémoirefixes,àaccèstrèsrapide.

LeprocesseurnedialoguepasdirectementaveclespériphériquesOnvoitsurlafigurequeleprocesseurdialogueavecdescontrôleursdepériphériquesetnonaveclespériphériqueseux-mêmes.Parexempleunprocesseurn’aaucuneconsciencedel’existenced’undisquedur;ildialogueavecuncontrôleurdedisque,àl’aided’instructionsgénériquesd’entrées/sorties.

I.1.2. OrganisationenbusLesflèchesentrelescomposantsdelaFigureI-1étaientàprendredansunsensfonctionnel;siellesdevaientreprésentereffectivementlescheminsparlesquelstransitentlesdonnées,lefonctionnementseraittrèsinefficace.Enpratique,lesdonnéescirculententrelesdifférentssous-systèmesd’unordinateursurdesbus,sortesd’autoroutes,etdescircuitsspécialisésjouentlerôled’échangeursauxcarrefoursdecesbus,defaçonàpermettredestransfertssimultanésdanscertainescirconstances.LaFigureI-2montreuneorganisationtypiqued’unsystèmedetypecompatiblePC.

FigureI-2.Architecturegénéraledesbusd’unordinateurcompatiblePC.

Uncircuitappelénorth-bridgerègleleséchangesàtrèsgrandevitesse,notammententreleprocesseuretlamémoirecentrale.IlexploitedefaçonsynchronelebusFSB(frontsidebus),encoreappelébussystème,dontlavitesseesttrèscorréléeàlapuissancegénéraledel’ensemble.Un

Page 5: INTRODUCTION A L ARCHITECTURE DES ORDINATEURSdiabeto.enseeiht.fr/download/archi/cours/book2_4.5.pdfLa plupart des ordinateurs ont l’organisation générale de la Figure I-1. Figure

5

secondcircuitappelésouth-bridgeeffectuequantàluideséchangesmoinsrapidesavecdespériphériquesSATA,réseau,etc.

LaFigureI-3montreunephotodecartemèretypique,avecl’emplacementphysiquedesdifférentsbus.Lamémoireetlenorthbridgesontplacéstrèsprèsduprocesseur,carilssontsurlesbuslesplusrapides.Lenorth-bridgeestéquipéd’unradiateuràcausedel’intensitédutravaildetransfertqu’ilréalise.

FigureI-3.Cartemèretypique.Lesbusrouges(FSBetmémoire),trèsrapides,sontgérésparlenorthbridge;lesbusverts(PCI,SATA,etc.),pluslents,sontgérésparlesouthbridge.

I.2. BitsetsignauxélectriquesL’informationeststockéeetvéhiculéedansunordinateur,logiquementsousformedechiffresbinairesoubits(binarydigit),etphysiquementsousformedesignauxélectriques.

Lalogiquebinaireestutiliséeparcequ’ilestplusfaciledeconstruiredessystèmesélectriquespossédantdeuxétatsstables,etparcequ’onamaintenantbeaucoupderésultatsmathématiquesenalgèbredeBoole,maisdesimplémentationssurdessystèmespossédantplusdedeuxétatsstablessontenvisageables.

Cesdeuxétatssontnotés’0’et’1’;ilscorrespondentleplussouventauxdeuxtensionsélectriques0vet+Vccrespectivement,Vccvalantexactement+5vpourdescircuitsutilisantlatechnologieTTL,etunevaleurcompriseentre2vet15venvironentechnologieCMOS(desvaleursdeVcc=3.3v,2.5vet1.8vétantutiliséedeplusenplussouvent).Pourtenircomptedufaitquecessignauxélectriquesvontêtredéforméslorsdestransmissions,desplagesdevaleurspluslargesontétéaffectéesàcesétats.Parexemple,entechnologieTTL,ellessontreprésentéesFigureI-4.Ilfautnoterquecesassignationssontlégèrementdifférentesselonqu’unetensionestconsidéréeenentréeouensortied’uncircuit.

Page 6: INTRODUCTION A L ARCHITECTURE DES ORDINATEURSdiabeto.enseeiht.fr/download/archi/cours/book2_4.5.pdfLa plupart des ordinateurs ont l’organisation générale de la Figure I-1. Figure

6

FigureI-4.Assignationdestensionsélectriquesauxvaleurslogiques(a)enentréedecircuit,(b)ensortiedecircuit(technologieTTL).

Lescircuitslogiquesquisontutiliséspourcombinerettransmettrelessignauxélectriqueslogiquesontdescaractéristiquesnonlinéairesquiontentreautrespourfonctionderemettreenformeunsignaldéforméparlebruit.OnvoitFigureI-5uneporte’non’quiinverselebitd’entrée,toutenproduisantunsignaldesortiedemeilleurequalitéquelesignald’entrée.

FigureI-5.Remiseenformed’unsignalaprèstraverséed’uneporte’non’.

Lessignauxpourrontdonctraverserunnombrequelconqued’étagesdecircuitslogiquessansquelesdéformationsinitialesnesoientamplifiées.

OnnoterasurlaFigureI-5laprésenced’untempsdepropagationtpHL(HLindiquant:dehautversbas)quicorrespondàladuréequemetlecircuitpourcalculersasortieaprèsquesesentréessesoientmodifiées.Cestempsdepropagationsecumulentlorsdelatraverséedeplusieursétages,etc’estfinalementeuxquilimiterontlavitessedefonctionnementmaximaled’uncircuit.

I.3. TechnologiesdefabricationdescircuitsintégrésLespremiersordinateursontétéconstruitsdurantladeuxièmeguerremondialeavecdestubescathodiques(des’lampes’)commedispositifdecommutation.En1947,leslaboratoiresBellinvententlepremiertransistor,quivatrèsvitesupplanterlalampeetapporterunfacteurde

Page 7: INTRODUCTION A L ARCHITECTURE DES ORDINATEURSdiabeto.enseeiht.fr/download/archi/cours/book2_4.5.pdfLa plupart des ordinateurs ont l’organisation générale de la Figure I-1. Figure

7

réductiondetailleimportant.Maislavéritablerévolutionn’interviendraqu’avecl’inventiondescircuitsintégrésVLSIdanslesannées1970,quiamènerontàlaréalisationdespremiersmicroprocesseurs.Ungrandnombredetechnologiesdefabricationdecircuitsintégrésexistent,quisedistinguentpardesqualitésdifférentesentermesdevitessedepropagation,densitéd’intégration,consommationetdissipationthermique.Onvaébaucherrapidementdanscettesectionlestroisfamilleslesplusconnues,enterminantparcellequiestactuellementlaplusrépandueetlaplussignificative,lafamilleCMOS.

TechnologieTTLLatechnologieTTLétaitlatechnologiestandardutiliséeàpartirdesannées1960pourlaréalisationdetouslestypesd’ordinateurs.Elles’alimentetypiquementen+5V,auneconsommationmodérée,estrobusteetadesrèglesd’interfacesimples.Unetrèsgrandefamilledecircuitsspécialisés,lafamille7400,estdisponiblesousformedecircuitsenboîtierDIL,etfournitdesmodulestoutprêts:portes,bascules,compteurs,etc.Lescapacitésd’intégrationdecircuitsTTLsontfaibles,etonnepeutguèremettreplusdequelquesmilliersdeportesTTLsurunepucedecircuitintégré.Onl’utiliseencoreaujourd’huipourdespetitesréalisations,notammentdansl’interfaçageavecd’autrescircuits.

TechnologieECLLatechnologieECLestcaractériséeparsatrèsgranderapidité,maisaussiparuneconsommationdecourantélevée.Elleestdeplusassezdifficileàutiliser,notammentenraisondel’emploidetensionsd’alimentationnégatives.Elleestutiliséedansdespetitesréalisationsoùlavitesseestcritique,maiscertainsexpertsprévoientundéveloppementdelatechnologieECLavecl’utilisationdenouveauxtypesdesemi-conducteurs.

TechnologieCMOSC’estlatechnologiereineactuelle.LatechnologieCMOSad’abordétédéveloppéeetvenduecommeunealternativeauTTL,pluslentemaisavecuneconsommationréduite.Commeparailleursellepeututiliserdestensionsd’alimentationfaibles(jusqu’à1V),elleaimmédiatementététrèsutiliséeparlesfabricantsdemontresdigitales,pourquilavitessedetraitementimportaitpeuparrapportàlaconsommation.Maisonaprogressivementréaliséquesaplusgrandequalitéétaitsontauxd’intégrationtrèsélevé;deplus,destaillesdetransistorsdeplusenpluspetitesontamenéesavecellesdestempsdecommutationdeplusenplusfaibles.C’estlatechnologieCMOSquiestutiliséeactuellementpourlafabricationdetouslesprocesseursetmicrocontrôleursdumarché,ainsiquepourtouteslesmémoiresstatiquesetlesmémoiresflash.Parailleurs,uncircuitCMOSneconsommesignificativementducourantquelorsdescommutationsdestransistors.Cettepropriétéaétéàl’originedecircuitsquiconsommentmoinsdecourantqueleuréquivalentTTL,quieuxenconsommentaureposetlorsdescommutations.Néanmoins,aufuretàmesurequ’ondiminueleurtensiond’alimentation,lescourantsdefuitedestransistorsCMOSdeviennentdeplusenplusprochesdescourantsdecommutation,etparconséquentlaconsommationdecescircuitsaureposn’estplusaussinégligeablequ’auparavant.

Page 8: INTRODUCTION A L ARCHITECTURE DES ORDINATEURSdiabeto.enseeiht.fr/download/archi/cours/book2_4.5.pdfLa plupart des ordinateurs ont l’organisation générale de la Figure I-1. Figure

8

Page 9: INTRODUCTION A L ARCHITECTURE DES ORDINATEURSdiabeto.enseeiht.fr/download/archi/cours/book2_4.5.pdfLa plupart des ordinateurs ont l’organisation générale de la Figure I-1. Figure

9

ChapitreII. ÉlémentsdelogiquecombinatoireII.1. Circuitscombinatoires

En1854,GeorgesBoolepubliasonouvrageséminalsurunealgèbremanipulantdesinformationsfactuellesvraiesoufausses.SontravailaétéredécouvertetdéveloppésouslaformequenousconnaissonsmaintenantparShannon.LenomdeBooleestentrédanslevocabulairecourant,avecl’adjectifbooléenquidésignecequinepeutprendrequedeuxvaleursdistinctes’vrai’ou’faux’.

Circuitscombinatoires:définitionUncircuitcombinatoireestunmoduletelquel’étatdessortiesnedépendquedel’étatdesentrées.L’étatdessortiesdoitêtreévaluéunefoisquelesentréessontstables,etaprèsavoirattenduuntempssuffisantàlapropagationdessignaux.Oncomprendintuitivementquelescircuitscombinatoirescorrespondentàdescircuitssansétatinterne:faceàlamêmesituation(lesmêmesentrées),ilsproduisenttoujourslesmêmesrésultats(lesmêmessorties).Unmoduled’additionenestunbonexemple:ilaenentréeslessignauxAetBàadditionner,ainsiqu’uneretenueCINd’unétageprécédent;ilfournitensortielasommeSetuneretenueCOUTpourunétagesuivant:

FigureII-1.Unadditionneurestuncircuitcombinatoire

Siuncircuitcombinatoireestcomposélui-mêmedesous-circuitscombinatoires,ondémontrequeladéfinitiondebaseestéquivalenteaufaitquecessous-circuitssontconnectésentreeuxsansrebouclages.Plusprécisément,sionrangelessignauxdegaucheàdroite,enmettanttoutafaitàgauchelesentrées,puisdanschaquecolonnelessous-circuitsquiontdesentréesparmilessignauxproduitsdanslacolonnedegauche,oudecolonnesplusàgauche,alorslecircuitestcombinatoiresietseulements’iln’yaaucuneliaisonquireboucle’enarrière’,enallantd’unétageàunétageplusàgauche(FigureII-2).L’implicationdanslesens’sansrebouclage’à’combinatoire’estfacileàdémontrer:silesentréesàgauchesontstables,alorsparconstructiontouteslessortiesdessous-circuitsdelapremièrecolonnesontstables,etnedépendentquedecesentrées.Donclessortiesdessous-circuitsdelacolonne2sontstables,etnedépendentquedesentrées.Ondémontreainsiparrécurrencequelessortiesdescircuitsdechaquecolonnesontstablesetnedépendentquedesvaleursdesentrées,jusqu’auxsortiesfinales.Lecircuitestdonccombinatoire.

Page 10: INTRODUCTION A L ARCHITECTURE DES ORDINATEURSdiabeto.enseeiht.fr/download/archi/cours/book2_4.5.pdfLa plupart des ordinateurs ont l’organisation générale de la Figure I-1. Figure

10

FigureII-2.Circuitcombinatoire:lessignauxinternesetlessortiesnerebouclentpasenarrière.

LesfiguresII.3etII.4montrentdesexemplesdecircuitscombinatoiresetnoncombinatoiresformésàpartirdeporteslogiques,dontonverradanslessous-sectionssuivantesqu’ellessontelles-mêmescombinatoires.

FigureII-3.Exemplesdecircuitscombinatoires:lesélémentsinternessonteux-mêmescombinatoires,etiln’yapasde

rebouclageinterne.

FigureII-4.Exemplesdecircuitsnoncombinatoires:ilyadesrebouclagesinternes.

II.2. TablesdevéritéUnedescontributionsessentiellesdeBooleestlatabledevérité,quipermetdecapturerlesrelationslogiquesentrelesentréesetlessortiesd’uncircuitcombinatoiresousuneformetabulaire.Considéronsparexempleuncircuitinconnupossédant2entréesAetBetunesortieS.Nouspouvonsanalyserexhaustivementcecircuitenluiprésentantles22=4jeuxd’entréesdifférents,etenmesurantàchaquefoisl’étatdelasortie.Letoutestconsignédansuntableauqu’onappelletabledevéritéducircuit(figureII.5).

Page 11: INTRODUCTION A L ARCHITECTURE DES ORDINATEURSdiabeto.enseeiht.fr/download/archi/cours/book2_4.5.pdfLa plupart des ordinateurs ont l’organisation générale de la Figure I-1. Figure

11

A B S0 0 00 1 01 0 01 1 1

FigureII-5.Uncircuitàdeuxentréesetunesortie,etsatabledevérité.

Ici,onreconnaîtl’opérationlogiqueET:Svaut1sietseulementsiAetBvalent1.Laconstructiond’unetabledevéritéestbiensûrgénéralisableàunnombrequelconquend’entréesetunnombremdesorties.Elleposséderaalors2nlignes,cequin’estpraticablequepourunevaleurdenassezpetite.

II.3. AlgèbreetopérateursdebasePlutôtquededécrireenextensionlarelationentrelesentréesetunesortie,onpeutladécrireenintentionàl’aided’uneformuledecalculutilisantseulementtroisopérateursbooléens:NON,ET,OU.

NONNON(NOTenanglais)estunopérateurunaire,quiinversesonargument.Onnoteragénéralement𝑁𝑂𝑇(𝐴) = 𝐴;etsatabledevéritéest:

𝐴 𝐴0 1

1 0

FigureII-6.TabledevéritéduNON,etdessindelaportecorrespondante.

Onabiensûr:𝐴 = 𝐴.

ETET(ANDenanglais)estunopérateurà2entréesouplus,dontlasortievaut1sietseulementsitoutessesentréesvalent1.Onlenotealgébriquementcommeunproduit,c’estàdireS=A×BouS=AB.Latabledevéritéd’unETàdeuxentrées,etledessinusueldelaportecorrespondantesontreprésentésfigureII.7.

𝐴 𝐵 𝐴. 𝐵0 0 00 1 01 0 01 1 1

FigureII-7.TabledevéritéduET,etsymboledelaportecorrespondante.

Deparsadéfinition,leETestassociatif:𝐴. 𝐵. 𝐶 = (𝐴. 𝐵). 𝐶 = 𝐴. (𝐵. 𝐶).Ilestégalementidempotent:𝐴. 𝐴 = 𝐴.

OUOU(ORenanglais)estunopérateurà2entréesouplus,dontlasortievaut1sietseulementsiunedesesentréesvaut1.Onlenotealgébriquementcommeunesomme,c’estàdireS=A+B.Latable

Page 12: INTRODUCTION A L ARCHITECTURE DES ORDINATEURSdiabeto.enseeiht.fr/download/archi/cours/book2_4.5.pdfLa plupart des ordinateurs ont l’organisation générale de la Figure I-1. Figure

12

devéritéd’unOUàdeuxentrées,etledessinusueldelaportecorrespondantesontreprésentésfigureII.8.

𝐴 𝐵 𝐴 + 𝐵0 0 00 1 11 0 11 1 1

FigureII-8.TabledevéritéduOU,etsymboledelaportecorrespondante.

Deparsadéfinition,leOUestassociatif:𝐴 + 𝐵 + 𝐶 = (𝐴 + 𝐵) + 𝐶 = 𝐴 + (𝐵 + 𝐶).Ilestégalementidempotent:𝐴 + 𝐴 = 𝐴.

DelatabledevéritéàlaformulealgébriqueOnpeutautomatiquementécrirelaformulealgébriqued’unefonctionbooléennecombinatoiredèslorsqu’onasatabledevérité.Ilsuffitdeconsidérerseulementleslignesquidonnentunesortieégaleà1,d’écrirelemintermcorrespondant,quicodesousformed’unETlacombinaisondecesentrées.Parexemple,lemintermassociéauvecteur(A,B,C)=(1,0,1)est:𝐴𝐵𝐶.LaformulealgébriquequidécrittoutelafonctionestleOUdetouscesminterms.Considéronsparexemplelatabledevéritédelafonctionmajoritéà3entrées,quivaut1lorsqu’unemajoritédesesentrées(2ou3)vaut1(figureII.9).

A B C S0 0 0 00 0 1 00 1 0 00 1 1 11 0 0 01 0 1 11 1 0 11 1 1 1

FigureII-9.Tabledevéritédelafonctionmajoritéà3entrées.

Latabledevéritécontient4lignesavecunesortieSà1,cequidonne:𝑆 = 𝐴𝐵𝐶 + 𝐴𝐵𝐶 + 𝐴𝐵𝐶 + 𝐴𝐵𝐶Cetteformuleestsimplifiable,commeonleverradansunesectionultérieure.Est-onsûrquelaformuleobtenueparcetteméthodeestcorrecte?Pourunecombinaisondesentréesquidoitdonnerunesortieà1,laformulepossèdelemintermcorrespondant,etdonneaussiunevaleurde1.Pourtouteslesautrescombinaisonsd’entrées,latabledonneunesortieà0,etlaformuleaussi,puisqu’aucunmintermn’estprésentquicorrespondeàcescombinaisons.Laformuledonnedonctoujourslemêmerésultatquelatable.Corollairement,celadémontrelerésultatfondamentalsuivant:

N’importequellefonctioncombinatoires’exprimesousformed’unesommedeminterms.

Page 13: INTRODUCTION A L ARCHITECTURE DES ORDINATEURSdiabeto.enseeiht.fr/download/archi/cours/book2_4.5.pdfLa plupart des ordinateurs ont l’organisation générale de la Figure I-1. Figure

13

Théorèmesdel’algèbredeBooleLetableaudelafigureII.10résumelesprincipauxthéorèmesetpropriétésdel’algèbredeBoole.Onpeutlesdémontrerdefaçonalgébrique,ouenutilisantdestablesdevérité.LesthéorèmesdeDeMorganpermettentdetransformerlesETenOUetvice-versa.Lecouple(ET,NON)oulecouple(OU,NON)suffisentdoncàexprimern’importequelleformulealgébriquecombinatoire.Lethéorèmed’absorption𝐴 + 𝐴𝐵 = 𝐴montrequ’untermeplusspécifiquedisparaîtauprofitd’untermemoinsspécifique.Parexempledansl’équation…+ 𝐴𝐵 + 𝐴𝐵𝐶 + …,leterme𝐴𝐵𝐶s’effaceauprofitde𝐴𝐵,moinsspécifiqueetquidoncl’inclut.

relation relation duale Propriété𝐴𝐵 = 𝐵𝐴 𝐴 + 𝐵 = 𝐵 + 𝐴 Commutativité

𝐴. 𝐵 + 𝐶 = 𝐴. 𝐵 + 𝐴. 𝐶 𝐴 + 𝐵. 𝐶 = 𝐴 + 𝐵 . (𝐴 + 𝐶) Distributivité

1. 𝐴 = 𝐴 0 + 𝐴 = 𝐴 Identité

𝐴. 𝐴 = 0 𝐴 + 𝐴 = 1 Complément

0. 𝐴 = 0 1 + 𝐴 = 1 Zéroetun

𝐴. 𝐴 = 𝐴 𝐴 + 𝐴 = 𝐴 Idempotence

𝐴. 𝐵. 𝐶 = 𝐴. 𝐵 . 𝐶 𝐴 + (𝐵 + 𝐶) = (𝐴 + 𝐵) + 𝐶 Associativité

𝐴 = 𝐴 Involution

𝐴𝐵 = 𝐴 + 𝐵 𝐴 + 𝐵 = 𝐴. 𝐵 ThéorèmesdeDeMorgan

𝐴. (𝐴 + 𝐵) = 𝐴 𝐴 + 𝐴. 𝐵 = 𝐴 Théorèmesd’absorption

𝐴 + 𝐴. 𝐵 = 𝐴 + 𝐵 𝐴. 𝐴 + 𝐵 = 𝐴. 𝐵 Théorèmesd’absorption

FigureII-10.Propriétésetthéorèmesdel’algèbredeBoole.

II.4. Autresporteslogiques

NANDNAND(=NOTAND)estunopérateurà2entréesouplus,dontlasortievaut0sietseulementsitoutessesentréesvalent1.Onlenote↑,etonadoncàdeuxentrées:𝐴�𝐵 = 𝐴. 𝐵Latabledevéritéd’unNANDàdeuxentrées,etledessinusueldelaportecorrespondantesontreprésentésfigureII.11.

𝐴 𝐵 𝐴�𝐵0 0 10 1 11 0 11 1 0

FigureII-11.TabledevéritéduNAND,etsymboledelaportecorrespondante.

LeNANDestunopérateurditcomplet,c’estàdirequ’ilpermetàluiseuld’exprimern’importequellefonctioncombinatoire.IlpermeteneffetdeformerunNOT,enreliantsesdeuxentrées:𝐴 = 𝐴�𝐵LesthéorèmesdeDeMorganassurentdoncqu’ilpeutexprimerunETetunOU,etdoncn’importequelleexpressioncombinatoire.

Page 14: INTRODUCTION A L ARCHITECTURE DES ORDINATEURSdiabeto.enseeiht.fr/download/archi/cours/book2_4.5.pdfLa plupart des ordinateurs ont l’organisation générale de la Figure I-1. Figure

14

NORNOR(=NOTOR)estunopérateurà2entréesouplus,dontlasortievaut0sietseulementaumoinsunedesesentrées1.Onlenote↓,etonadoncàdeuxentrées:𝐴�𝐵 = A + B.Latabledevéritéd’unNORàdeuxentrées,etledessinusueldelaportecorrespondantesontreprésentésfigureII.12.

𝐴 𝐵 𝐴�𝐵0 0 10 1 01 0 01 1 0

FigureII-12.TabledevéritéduNOR,etsymboledelaportecorrespondante.

CommeleNAND,leNORestégalementunopérateurcomplet.IlpermeteneffetdeformerunNOT,enreliantsesdeuxentrées::𝐴 = 𝐴�𝐵.LesthéorèmesdeDeMorganassurentdoncqu’ilpeutexprimerunETetunOU,etdoncn’importequelleexpressioncombinatoire.

XORXOR(=EXCLUSIVEOR)estunopérateurà2entréesouplus.Onpeutledéfinirdeplusieursfaçons;ladéfinitionquipermetleplusdirectementdedémontrersespropriétésestcellequiconsisteàenfaireundétecteurd’imparité:sasortievaut1sietseulementsiunnombreimpairdesesentréesestà1.Onlenote⊕;latabledevéritéd’unXORàdeuxentrées,etledessinusueldelaportecorrespondantesontreprésentésfigureII.13.

𝐴 𝐵 𝐴�𝐵0 0 00 1 11 0 11 1 0

FigureII-13.TabledevéritéduXOR,etsymboledelaportecorrespondante.

Onvoitàpartirdelatableque𝐴�𝐵 = 𝐴𝐵 + 𝐴𝐵.Lorsqu’iladeuxentrées,ilméritesonnomdeOUexclusifpuisquesasortienevaut1quesil’unedesesentréesvaut1,maisseulementune.Ilpossèdeplusieursautrespropriétésintéressantes:

• lorsqu’oninverseuneentréequelconqued’unXOR,sasorties’inverse.C’estévidentpuisquecelaincrémenteoudécrémentelenombred’entréesà1,etdoncinverselaparité.

• leXORàdeuxentréesestuninverseurcommandé.Eneffet,enexaminantlatabledevéritéduXOR(figureII.13),onconstatequelorsqueAvaut0,lasortieSreproduitl’entréeB,etlorsqueAvaut1,lasortieSreproduitl’inversedel’entréeB.L’entréeApeutêtrealorsvuecommeunecommanded’inversiondanslepassagedeBversS.Cettefonctionseratrèsutilelorsqu’onsouhaiteracorrigeruneerreurdétectéesuruneligne,parexemple.

• leXORestunopérateurd’additionarithmétique.Cettepropriétéestvalablequelquesoitlenombred’entréesduXOR.Biensûr,iln’estquestioniciquedubitdepoidsfaibledurésultat(ajouterntermesde1bitproduitunrésultatsurlog2(n)bits).Eteneffet,sionregardelatabledevéritéduXORàdeuxentrées,onconstatequelasortieestbienlasommearithmétiquedesdeuxentrées.Biensûràladernièreligne,lerésultatàuneretenuequeleXORàluiseulnepeutpasproduire.

Onpeutdémontrerquecerésultatestgénéralparunesimplerécurrence.Sieneffetonsupposeque𝑋𝑂𝑅(𝑒6, 𝑒8, … , 𝑒9)fournitlebitdepoidsfaibledelasomme𝑠9 = 𝑒6 + 𝑒8 + ⋯+𝑒9alors:𝑋𝑂𝑅 𝑒6, 𝑒8, … , 𝑒9, 𝑒9<6 = 𝑠9si𝑒9<6 = 0;𝑠9si𝑒9<6 = 1

= 𝑠9avecinversioncommandéepar𝑒9<6= 𝑠9�𝑒9<6

Page 15: INTRODUCTION A L ARCHITECTURE DES ORDINATEURSdiabeto.enseeiht.fr/download/archi/cours/book2_4.5.pdfLa plupart des ordinateurs ont l’organisation générale de la Figure I-1. Figure

15

• XORestunopérateurassociatif.Sadéfinitionmême,entantqu’indicateurd’imparité,assurecettepropriété.Quellequesoitlafaçondegrouperlestermes,lecalculdonneralemêmerésultat.CerésultatpermetdeconstruireavecunminimumdecircuitsdesXORsà3entréesouplus,encascadantdesXORsà2entrées.

Formulealgébriqued’unXORàplusde2entréesConsidéronslecalculduXORdetroisvariablesA,BetC.Onsaitquesonexpressionalgébriquepeutsemettresousformed’unesommedeminterms;onvadoncchercherparmitouslesmintermspossiblesceuxqu’ilfautincluredanslaformule,etceuxqu’ilfautrejeter.AveccestroisvariablesA,BetC,ilya8mintermspossibles:𝐴𝐵𝐶,𝐴𝐵𝐶,𝐴𝐵𝐶,…,𝐴𝐵𝐶nedoitpasêtreinclusdanslerésultat,puisqu’ildonne1pourlevecteur(0,0,0)quinecomportepasunnombreimpairde1.𝐴𝐵𝐶doitl’être,carildonne1pourlevecteur(0,0,1)quipossèdeunnombreimpair(1)de1.Larègleestsimple:ondoitinclureseulementlesmintermsquiontunnombreimpairdevariablesnonbarrées.PourleXORàtroisentrées,onpeutlefairedefaçonorganiséeenmettantd’abordles3mintermsayantunevariablenonbarrée,puislemintermayantles3variablesnonbarrées:

𝑋𝑂𝑅 𝐴, 𝐵, 𝐶 = 𝐴𝐵𝐶 + 𝐴𝐵𝐶 + 𝐴𝐵𝐶 + 𝐴𝐵𝐶Onpeutmontrerquecetteformulen’estpassimplifiableentantquesommedetermes.PourunXORà4entrées,oninclutles4mintermsayant1variablenonbarrée,puisles4mintermsayant3variablesnonbarrées:𝑋𝑂𝑅(𝐴, 𝐵, 𝐶, 𝐷) = 𝐴𝐵𝐶𝐷 + 𝐴𝐵𝐶𝐷 + 𝐴𝐵𝐶𝐷 + 𝐴𝐵𝐶𝐷 + 𝐴𝐵𝐶𝐷 + 𝐴𝐵𝐶𝐷 + 𝐴𝐵𝐶𝐷 + 𝐴𝐵𝐶𝐷Pourunnombrequelconqued’entrées,onpeutmontrerquelerésultatcomportetoujourslamoitiédetouslesmintermspossibles,etquecettesommen’estjamaissimplifiableentantquesommedetermes.

LemultiplexeurLemultiplexeurestuneporteàtroisentrées,quijoueunrôled’aiguillage.Sondessinindiquebiencettefonction(figureII.14).

𝑆𝐸𝐿 𝑆0 𝐴1 𝐵

FigureII-14.Tabledevéritécondenséedumultiplexeur,etdessindelaportecorrespondante.

Lorsquelacommandedesélectionvaut0,l’aiguillageestducôtédeA,etSprendlavaleurdeA;lorsqu’ellevaut1,SprendlavaleurdeB.Algébriquement,onadonc:

𝑆 = 𝑆𝐸𝐿 · 𝐴 + 𝑆𝐸𝐿 · 𝐵Àpartirdelacompréhensiondurôled’aiguillagedumultiplexeur,ilestclairquesioninverselesdeuxentrées,lasortieserainverséeégalement:

𝑆 = 𝑆𝐸𝐿 · 𝐴 + 𝑆𝐸𝐿 · 𝐵Orcen’estpassifacileàétabliralgébriquement: 𝑆 = 𝑆𝐸𝐿 · 𝐴 + 𝑆𝐸𝐿 · 𝐵 = 𝑆𝐸𝐿 · 𝐴 · 𝑆𝐸𝐿 · 𝐵 𝑆 = (𝑆𝐸𝐿 + 𝐴) · (𝑆𝐸𝐿 + 𝐵) = 𝐴 · 𝑆𝐸𝐿 + 𝑆𝐸𝐿 · 𝐵 + 𝐴 · 𝐵Onauntermeentrop,𝐴 · 𝐵!Enfait,onpeutlefairedisparaîtreenécrivant𝐴 · 𝐵 = 𝐴 · 𝐵 ·𝑆𝐸𝐿 + 𝐴 · 𝐵 · 𝑆𝐸𝐿: 𝑆 = 𝐴 · 𝑆𝐸𝐿 + 𝑆𝐸𝐿 · 𝐵 + 𝐴 · 𝐵 · 𝑆𝐸𝐿 + 𝐴 · 𝐵 · 𝑆𝐸𝐿 𝑆 = 𝐴 · 𝑆𝐸𝐿(1 + 𝐵) + 𝑆𝐸𝐿 · 𝐵(1 + 𝐴) = 𝑆𝐸𝐿 · 𝐴 + 𝑆𝐸𝐿 · 𝐵Onaiciunexempleoùlacompréhensiond’unefonctionapermisdesedispenserdecalculsalgébriquesoudeméthodesdesimplification.

Page 16: INTRODUCTION A L ARCHITECTURE DES ORDINATEURSdiabeto.enseeiht.fr/download/archi/cours/book2_4.5.pdfLa plupart des ordinateurs ont l’organisation générale de la Figure I-1. Figure

16

II.5. Méthodesdesimplificationdesfonctionscombinatoires

II.5.1. TablesdeKarnaughUnetabledeKarnaughestutiliséepourtrouvervisuellementlessimplificationsàfairesurunesommedetermes.Elleesttrèsfacileàutiliser,pourpeuqu’iln’yaitpasplusde4variablesenjeu.Audelà,ilvautmieuxemployerlaméthodedeQuine-McCluskeydécriteplusbas.ConsidéronsparexemplelafonctionayantlatabledevéritédelafigureII.17.

A B C D S0 0 0 0 00 0 0 1 10 0 1 0 10 0 1 1 10 1 0 0 00 1 0 1 10 1 1 0 00 1 1 1 11 0 0 0 01 0 0 1 11 0 1 0 01 0 1 1 11 1 0 0 11 1 0 1 11 1 1 0 11 1 1 1 1

FigureII-15.Tabledevéritéd’unefonctionàsimplifier

OnvareprésenterlesvaleursdeSdansuntableau4x4,chaquecasecorrespondantàundes16mintermspossiblesavec4variablesA,B,CetD(figureII.18).Onremarquerad’abordleslibellésdeslignesetdescolonnes,quiformentuncodedeGray:d’uneligneàl’autreoud’unecolonneàl’autre,iln’yaqu’unbitd’entréequichange.Latableauneformedecylindredanslesdeuxdirections,c’estàdirequelescolonnes’00’et’10’doiventêtreconsidéréescommecôteàcôte,toutcommeleslignes’00’et’10’.

FigureII-16.TabledeKarnaughreprésentantlatabledevérité.

Les11sorties’1’delatabledevéritéontétéreportéesdanslatabledeKarnaugh.Eneffectuantdesgroupesde’1’connexesde2,4ou8,onréaliseunesimplification(figureII-17).

Page 17: INTRODUCTION A L ARCHITECTURE DES ORDINATEURSdiabeto.enseeiht.fr/download/archi/cours/book2_4.5.pdfLa plupart des ordinateurs ont l’organisation générale de la Figure I-1. Figure

17

FigureII-17.TabledeKarnaughaveclesregroupements.

Parexempleleregroupement𝐴𝐵𝐶correspondàlasimplification𝐴𝐵𝐶𝐷 + 𝐴𝐵𝐶𝐷 = 𝐴𝐵𝐶(𝐷 +𝐷) = 𝐴𝐵𝐶.Demême,leregroupement𝐴𝐵correspondàlasimplificationdes4termes:𝐴𝐵𝐶𝐷 +𝐴𝐵𝐶𝐷 + 𝐴𝐵𝐶𝐷 + 𝐴𝐵𝐶𝐷 = 𝐴𝐵(𝐶𝐷 + 𝐶𝐷 + 𝐶𝐷 + 𝐶𝐷) = 𝐴𝐵.Onrepèrefacilementlerésultatenregardantleslibellésdeslignesetdescolonnesimpliquésdanslasimplification.Pourletermesimplifié𝐷parexemple,ilconcerneleslignes𝐶𝐷=01;11etlescolonnes𝐴𝐵=**;seul𝐷=1estconstant,ettouteslesautresvariablesdisparaissent.Finalementona:

𝑆 = 𝐷 + 𝐴𝐵 + 𝐴𝐵𝐶

UtilisationdescombinaisonsnonspécifiéesIlyadessituationsdanslesquellescertainescombinaisonsdesentréesneseproduisentjamais,qu’onpeutappelercombinaisonsinterditesoucombinaisonsnonspécifiées.Considéronsparexempleundécodeur7segments,quiconvertitunnombrebinairesur4bitsenunvecteurde7bitsquicommandeunafficheuràLedsdetype’calculette’(FigureII-18).

FigureII-18.Convertisseur7segmentspourafficheurdecalculette.

Laspécificationdececonvertisseurnousprécisequ’ilnefautconvertirqueleschiffresde0à9,c’estàdirelesvaleursduvecteur(𝐴, 𝐵, 𝐶, 𝐷)de(0,0,0,0)à(1,0,0,1).Ainsilefonctionnementducircuitn’estpasspécifiépourlesvaleursde(1,0,1,0)à(1,1,1,1),etonvaexploitercettelatitudepoursimplifierleséquations.Sionconsidèreparexemplelatabledevéritédusegmenta,ellecomporteainsi6lignespourlesquelleslavaleurdelasortien’estpasspécifiée,qu’onnote’*’(FigureII-19).

A B C D a0 0 0 0 10 0 0 1 00 0 1 0 10 0 1 1 10 1 0 0 00 1 0 1 10 1 1 0 10 1 1 1 11 0 0 0 11 0 0 1 1

Page 18: INTRODUCTION A L ARCHITECTURE DES ORDINATEURSdiabeto.enseeiht.fr/download/archi/cours/book2_4.5.pdfLa plupart des ordinateurs ont l’organisation générale de la Figure I-1. Figure

18

1 0 1 0 *1 0 1 1 *1 1 0 0 *1 1 0 1 *1 1 1 0 *1 1 1 1 *

FigureII-19.Tabledevéritédusegmenta.

DanslatabledeKarnaughcorrespondante,les’*’peuventêtreinclusesdanslesregroupements(FigureII-20)cequiconduitàleurdonnerlavaleur’1’.Biensûronnedoitpaschercheràincluretoutesles’*’danslesregroupements:onchercheàincluretousles’1’,maisles’*’permettentdetrouverdesregroupementsplusgrands.Iciparexemple,ontrouvelerésultattrèssimple:

𝑎 = 𝐶 + 𝐴 + 𝐵𝐷 + 𝐵𝐷

FigureII-20.TabledeKarnaughdusegmenta,aveclescombinaisonsnonspécifiéesmarquéespardes’*’.Onpeutinclure

les’*’pourformerdesregroupementsplusgrands.

DétectionetcorrectiondesglitchesUnautreusagedestablesdeKarnaughestladétectiondesglitchs,c'est-à-diredeschangementstrèsbrefsdessignauxdesortied’unefonctioncombinatoirelorsdechangementsdesentrées.Considéronsparexemplelafonctionsuivante:

𝑆 = 𝐴𝐵𝐶𝐷 + 𝐴𝐵𝐶𝐷 + 𝐴𝐵𝐶𝐷 + 𝐴𝐵𝐶𝐷 + 𝐴𝐵𝐶𝐷 + 𝐴𝐵𝐶𝐷OnconstruitdirectementlatabledeKarnaughassociéeàcettefonction,etontrouveimmédiatementdeuxregroupements(FigureII-21).

FigureII-21.TabledeKarnaughaveclesregroupements.Unglitchestpossibledanslepassagedeaàb,carlesdeux

regroupementssonttangentsàcetendroit.

L’équationsimplifiéeestalors:𝑆 = 𝐴𝐵 + 𝐴𝐶𝐷

Cetteéquationestplussimplequelapremière,maisellevasecomporterlégèrementdifféremmentlorsdecertainschangementsdevaleursdesentrées.Considéronsparexemplelechangementduvecteurd’entrées 𝐴, 𝐵, 𝐶, 𝐷 de 0,1,0,0 à 1,1,0,0 ,quicorrespondaupassagedeaàbsurlaFigureII-21.Danscecas,seul𝐴achangé,etlasortie𝑆devraitresterà1,aussibienpourl’équationinitialequepourl’équationsimplifiée.Orpourl’équationsimplifiée,leterme𝐴𝐵vapasserde0à1

Page 19: INTRODUCTION A L ARCHITECTURE DES ORDINATEURSdiabeto.enseeiht.fr/download/archi/cours/book2_4.5.pdfLa plupart des ordinateurs ont l’organisation générale de la Figure I-1. Figure

19

tandisqueleterme𝐴𝐶𝐷vapasserde1à0;sicechangementsefaitexactementenmêmetemps,𝑆resteraà1,maissilepremiertermepasseà0légèrementavantqueledeuxièmenepasseà1,unlégerglitchsur𝑆apparaîtra(FigureII-22).

FigureII-22.Glitchsurl’équation𝑺 = 𝑨𝑩 +𝑨𝑪𝑫,lorsdupassagede(𝑨, 𝑩, 𝑪, 𝑫)de(𝟎, 𝟏, 𝟎, 𝟎)à(𝟏, 𝟏, 𝟎, 𝟎).

CeglitchétaitprévisiblevisuellementsurlatabledeKarnaugh,parlefaitdesdeuxregroupementsquisontadjacentssansserecouvrir.Onconstateégalementquec’estleseulchangementd’uneseulevariablequipeutconduireàuntelproblème.Lasolutionestderajouterunregroupementquivafairelaliaisonentrecesdeuxgroupes,envalant1pendanttoutelatransition(FigureII-23).Finalement,onobtientl’expressionsimplifiéesansglitch:

𝑆 = 𝐴𝐵 + 𝐴𝐶𝐷 + 𝐵𝐶𝐷

FigureII-23.Ajoutduterme𝑩𝑪𝑫pourmaintenir𝑺à1lorsdelatransitiondeaversb.Leglitchdisparaîtsurlesignaldesortie𝑺.

II.5.2. MéthodedeQuine-McCluskeyOnvamontrersonusageensimplifiantlafonctionà5variablessuivante:

𝑓 𝐴, 𝐵, 𝐶, 𝐷, 𝐸 = 𝐴𝐵𝐶𝐷𝐸 + 𝐴𝐵𝐶𝐷𝐸 + 𝐴𝐵𝐶𝐷𝐸 + 𝐴𝐵𝐶𝐷𝐸 + 𝐴𝐵𝐶𝐷𝐸 + 𝐴𝐵𝐶𝐷𝐸+ 𝐴𝐵𝐶𝐷𝐸 + 𝐴𝐵𝐶𝐷𝐸 + 𝐴𝐵𝐶𝐷𝐸

UnetabledeKarnaughseraitdélicateàutiliserdanscecas,carelleauraitunetaillede4x8,etcertainsregroupementspossiblespourraientnepasêtreconnexes.Paréconomied’écriture,oncommenceparreprésenterchaquemintermparlenombreassociéàsareprésentationbinaire:

𝑓(𝐴, 𝐵, 𝐶, 𝐷, 𝐸) = (0, 2, 8, 10, 12, 13, 26, 29, 30)Onplaceensuitecesmintermsdansuntableau,enlesgroupantselonlenombrede1qu’ilspossèdent(FigureII-24).

Page 20: INTRODUCTION A L ARCHITECTURE DES ORDINATEURSdiabeto.enseeiht.fr/download/archi/cours/book2_4.5.pdfLa plupart des ordinateurs ont l’organisation générale de la Figure I-1. Figure

20

nombrede1 minterm valeurbinaire0 0 000001 2

80001001000

2 1012

0101001100

3 1326

0110111010

4 2930

1110111110

FigureII-24.Onclasselesmintermsselonlenombrede1deleurvaleurbinaire.

Lessimplificationsnepeuventseproduirequ’entregroupesadjacents.Lasimplificationentrelesminterms1et2senoteraparexemple:000-0,enmettantuntiretàl’endroitoùlavariableadisparu.Lorsqu’onaeffectuétouteslessimplificationspossibles,onrecommenceàpartirdesnouveauxgroupesformés,jusqu’àcequ’aucunesimplificationnesoitpossible(FigureII-25).

étape1 étape2 étape30 00000 ü28

0001001000

üü

1012

0101001100

üü

1326

0110111010

üü

2930

1110111110

üü

0-20-8

000-00-000

üü

2-108-108-12

0-010010-001-00

üü

10-2612-13

-10100110-

13-2926-30

-110111-10

0-2-8-10 0-0-0

FigureII-25.Onsimplifieentregroupesadjacents,étapeparétape.Lestermesquiontétéutilisésdansunesimplificationsontcochés.

Maintenant,ilsuffitdechoisirdanscetableaulestermesquivontincluretouslesmintermsdedépart,enessayantdetrouverceuxquicorrespondentàl’expressionlaplussimple.Onpeutlefairedefaçonpurementintuitive,encommençantparlestermeslesplusàdroite:parexemplelesgroupes0-2-8-10,8-12,13-29,26-30vontincluretouslesminterms.Ontrouvedonc:

𝑆 = 𝐴𝐶𝐸 + 𝐴𝐵𝐷𝐸 + 𝐵𝐶𝐷𝐸 + 𝐴𝐵𝐷𝐸Danslescascomplexes,ousionveutprogrammercetalgorithme,onénumèrelalistedesimplicantspremiers,quisontlestermesdutableauprécédentquin’ontétéutilisésdansaucunesimplification.Dansletableauprécédent,onacochéavecune’3’lestermesquiontétéutilisésdansunesimplification,donclalistedesimplicantspremiersest:8-12,10-26,12-13,13-29,26-30,0-2-8-10.Ilestclairquelerésultatsimplifiénecomporteraquedestermesdecetteliste,etlebutestdedéterminerparmieuxceuxqu’ilestindispensabledeplacerdanslerésultat,appelésimplicantspremiersessentiels.Onconstruitpourcelalatabledesimplicantspremiers(FigureII-26).

Page 21: INTRODUCTION A L ARCHITECTURE DES ORDINATEURSdiabeto.enseeiht.fr/download/archi/cours/book2_4.5.pdfLa plupart des ordinateurs ont l’organisation générale de la Figure I-1. Figure

21

0 2 8 10 12 13 26 29 30

8-12 01-00 ü ü 10-26 -1010 ü ü 12-13 0110- ü ü 13-29 -1101 * ü ü 26-30 11-10 * ü ü

0-2-8-10 0-0-0 * ü ü ü ü

FigureII-26.Tabledesimplicantspremiers;lesimplicantspremierssontenlignesetlesmintermsdedépartsontencolonnes.Unimplicantpremierestditessentiels’ilestleseulàcouvrirundesmintermsencolonne;onlerepèreavec

unemarque’*’.

Parmiles5mintermsplacésenlignedansletableau,3sontditsessentiels,parcequ’ilssontlesseulsàcouvrirundesmintermsplacésencolonnes:l’implicantpremier13-29estleseulàcouvrirleminterm29,26-30estleseulàcouvrir26et30,et0-2-8-10estleseulàcouvrirlesminterms0et2.8-12et12-13nesontpasessentiels,car8,12et13sontcouvertspard’autresimplicantspremiers.Lesimplicantspremiersessentielssontnécessaires,maispasforcementsuffisants.Iciparexemple,sionneprenaitqu’eux,leminterm12neseraitpascouvert.Ilrestedoncunephaseheuristiquedechoixparmilesimplicantspremiersnonessentielspourcouvrirtouslesmintermsnonencorecouverts.Dansnotreexemple,onpeutajouter,soit8-12,soit12-13pourcouvrirle12manquant,cequidonnelesdeuxpossibilitéssuivantes:

• versionavec8-12:𝑆 = 𝐴𝐶𝐸 + 𝐴𝐵𝐷𝐸 + 𝐵𝐶𝐷𝐸 + 𝐴𝐵𝐷𝐸• versionavec12-13:𝑆 = 𝐴𝐶𝐸 + 𝐴𝐵𝐶𝐷 + 𝐵𝐶𝐷𝐸 + 𝐴𝐵𝐷𝐸

II.6. DécodeursUndécodeurestuncircuitpossédantnentréeset2nsortiesnumérotées(FigureII-27).

Àtoutmoment,uneetuneseulesortieestactive:celledontlenumérocorrespondàlavaleurbinaireprésentesurlesnentrées.Ledécodeurtraduitdonclavaleurd’entréeenuneinformationdepositionspatiale.

module decodeur(e[2..0], en : s[7..0]) s[7] = en*e[2]*e[1]*e[0] ; s[6] = en*e[2]*e[1]*/e[0] ; s[5] = en*e[2]*/e[1]*e[0] ; s[4] = en*e[2]*/e[1]*/e[0] ; s[3] = en*/e[2]*e[1]*e[0] ; s[2] = en*/e[2]*e[1]*/e[0] ; s[1] = en*/e[2]*/e[1]*e[0] ; s[1] = en*/e[2]*/e[1]*/e[0] ; end module

FigureII-27.Décodeur3vers8.Aveclavaleur6enentrée(110enbinaire),lasortienuméro6estactivée.

Undécodeurpeutêtreutilisépourn’activerqu’auplusuncomposant3-étatsàlafois,puisqu’auplusuneseuledesessortiesestactiveàlafois.

Lesdécodeurspeuventégalementêtreutiliséspourimplémenterdesfonctionslogiquesbooléennes.Puisquechaquesortiereprésenteundesmintermspossibles,etquetoutefonctioncombinatoirebooléennes’exprimesousformed’unesommedeminterms,onrelieraavecunOUlessortiescorrespondantsauxmintermsdésirés.OnpeutvoirFigureII-28laréalisationd’unOUexclusif(XOR)àtroisentréesavecundécodeuretunOUà4entrées.

Page 22: INTRODUCTION A L ARCHITECTURE DES ORDINATEURSdiabeto.enseeiht.fr/download/archi/cours/book2_4.5.pdfLa plupart des ordinateurs ont l’organisation générale de la Figure I-1. Figure

22

FigureII-28.Undécodeur3vers8utilisépourréaliserunOUexclusifà3entrées.

II.7. MultiplexeursCessontdescircuitsd’aiguillagepourlessignauxlogiques.Unmultiplexeurpossède2nentréesdedonnées,nentréesdecommandes,etuneseulesortie.Onindiquesurlacommandelenuméro(enbinaire)del’entréededonnéequivaêtreaiguilléeensortie.OnaenFigureII-29unexempledemultiplexeur8vers1surlacommandeduquelestécrit1102=610;lasortiereflètealorsl’étatdelasixièmeentrée:E6.OndonneaussiFigureII-29l’écritureSHDLdecemultiplexeur,quiestcelled’uncircuitcombinatoiresimple.

module mux8to1(e[7..0], c[2..0] : s) s = c[2]*c[1]*c[0]*e[7] + c[2]*c[1]*/c[0]*e[6] + c[2]*/c[1]*c[0]*e[5] + c[2]*/c[1]*/c[0]*e[4] + /c[2]*c[1]*c[0]*e[3] + /c[2]*c[1]*/c[0]*e[2] + /c[2]*/c[1]*c[0]*e[1] + /c[2]*/c[1]*/c[0]*e[0] ; end module

FigureII-29.Multiplexeur8vers1.L’entréenuméro6estaiguilléeverslasortie.

Biensûr,lesmultiplexeurspeuventêtremisenparallèlepouraiguillerdesbusentiers.Onmettraalorsencommunleslignesdecommande,etenparallèleleslignesdedonnées.OnpeutvoirFigureII-30unmultiplexeur2vers1aiguillantdesbusde32bits,avecl’écritureSHDLcorrespondante.

module mux32to1(a[31..0], b[31..0], c : s[31..0]) s[31..0] = /c*a[31..0] + c*b[31..0] ; end module

FigureII-30.Multiplexeur2vers1,aiguillantdesbusde32bits.

Unmultiplexeur2vers1implémentematériellementunesituationdetypesi-alors-sinon;plusprécisément:siCalorsS=AsinonS=B(FigureII-31).C’estuneremarquequipeutsemblerbanale,maisquienfaitvapermettred’organiserledécoupageenmodulesd’unsystèmecomplexe,dèslorsqu’untelgenredesituationauraétéidentifié.

Page 23: INTRODUCTION A L ARCHITECTURE DES ORDINATEURSdiabeto.enseeiht.fr/download/archi/cours/book2_4.5.pdfLa plupart des ordinateurs ont l’organisation générale de la Figure I-1. Figure

23

FigureII-31.Unmultiplexeur2vers1implémenteunesituation’si-alors-sinon’:siCalorsS=AsinonS=B.

Unmultiplexeur2nvers1peutégalementêtreutilisédirectementpourimplémenterdesfonctionscombinatoiresànentrées.Ilsuffitderelierlesentréesdelafonctionàréaliserauxentréesdecommandedumultiplexeur:chaquecombinaisonvaconduireàunaiguillagespécifique,etiln’yaplusqu’àmettrelavaleur0ou1attenduesurl’entréededonnéecorrespondantedumultiplexeur.Iln’yacettefoisaucuncomposantsupplémentaireàrajouter,etonpeutvoirFigureII-32l’implémentationd’unefonctionXORà3entréesavecundécodeur8vers1.Biensûr,cettesolutionn’estpasoptimaleennombredetransistorsutilisés,puisquetouteslesentréesforcéesà0sontreliéesàdesportesETinutilisées.

FigureII-32.Unmultiplexeur8vers1utilisépourréaliserunOUexclusifà3entrées.

II.8. EncodeursdeprioritéUnencodeurdeprioritépossède2nentréesetnsorties.Lesentréessontnumérotées,etcorrespondentàdesévénementsdeprioritécroissante.Onverraenparticuliercommentutiliserlesencodeursdeprioritépourgérerl’arrivéed’interruptionssimultanéesdansunprocesseur,tellesquelesévénementsréseau,lesévénementsdisque,lesévénementsUSBouclavierousouris,etc.

LasortieNUMcontientlenumérodel’entréeactivéelaplusprioritaire,c’estàdiredenuméroleplusélevé.Uneautresortie(ACTsurlafigure)peutaussiindiquers’ilyaaumoinsuneentréeactive.LeschémadelaFigureII-33montreuntelencodeurpour23entréesaveclesentrées0,3et6activées,etlavaleurbinaire6placéesurlessorties.

Page 24: INTRODUCTION A L ARCHITECTURE DES ORDINATEURSdiabeto.enseeiht.fr/download/archi/cours/book2_4.5.pdfLa plupart des ordinateurs ont l’organisation générale de la Figure I-1. Figure

24

module encodeur(e[7..0]: num[2..0], act) num[2]=e[7]+e[6]+e[5]+e[4] ; num[1]=e[7]+e[6]+/e[5]*/e[4]*e[3]+ /e[5]*/e[4]*e[2] ; num[0]=e[7]+/e[6]*e[5]+/e[6]*/e[4]*e[3]+ /e[6]*/e[4]*/e[2]*e[1] ; act = e[7]+e[6]+e[5]+e[4]+e[3]+e[2]+e[1]+e[0] ; END MODULE

FigureII-33.Encodeurdeprioritésà8entrées.L’entréeactive#6estlaplusprioritaire.

Latabledevéritéd’untelcircuità8entréespossède256lignes;onpeutnéanmoinslareprésenterdefaçoncondensée(FigureII-34).

L’entrée#0estsouventnoncâblée:l’absenced’entréeactiveestalorsdétectéelorsqueNUM=0,évitantainsid’avoirlasortiesupplémentaireACT.

e[7] e[6] e[5] e[4] e[3] e[2] e[1] e[0] num[2..0] act1 * * * * * * * 111 10 1 * * * * * * 110 10 0 1 * * * * * 101 10 0 0 1 * * * * 100 10 0 0 0 1 * * * 011 10 0 0 0 0 1 * * 010 10 0 0 0 0 0 1 * 001 10 0 0 0 0 0 0 1 000 10 0 0 0 0 0 0 0 000 0

FigureII-34.Tabledevéritécondenséed’unencodeurdeprioritésà8entrées.

Onadonc:

𝑛𝑢𝑚 2 = 𝑒 7 + 𝑒 7 . 𝑒 6 + 𝑒 7 . 𝑒 6 . 𝑒 5 + +𝑒 7 . 𝑒 6 . 𝑒 5 . 𝑒[4]

𝑛𝑢𝑚 1 = 𝑒 7 + 𝑒 7 . 𝑒 6 + 𝑒 7 . 𝑒 6 . 𝑒 5 . 𝑒 4 . 𝑒 3 + 𝑒 7 . 𝑒 6 . 𝑒 5 . 𝑒 4 . 𝑒 3 . 𝑒[2]

𝑛𝑢𝑚 0 = 𝑒 7 + 𝑒 7 . 𝑒 6 . 𝑒 5 + 𝑒 7 . 𝑒 6 . 𝑒 5 . 𝑒 4 . 𝑒 3+ 𝑒 7 . 𝑒 6 . 𝑒 5 . 𝑒 4 . 𝑒 3 . 𝑒 2 . 𝑒[1]

Lethéorèmed’absorptions’appliqueplusieursfois,etonobtientfinalement:

𝑛𝑢𝑚 2 = 𝑒 7 + 𝑒 6 + 𝑒 5 + 𝑒[4]

𝑛𝑢𝑚 1 = 𝑒 7 + 𝑒 6 + 𝑒 5 . 𝑒 4 . 𝑒 3 + 𝑒 5 . 𝑒 4 . 𝑒[2]

𝑛𝑢𝑚 0 = 𝑒 7 + 𝑒 6 . 𝑒 5 + 𝑒 6 . 𝑒 4 . 𝑒 3 + 𝑒 6 . 𝑒 4 . 𝑒 2 . 𝑒[1]

L’écritureSHDLd’unencodeurà8entréesestdonnéeFigureII-33.

II.9. Circuitd’extensiondesigne

Page 25: INTRODUCTION A L ARCHITECTURE DES ORDINATEURSdiabeto.enseeiht.fr/download/archi/cours/book2_4.5.pdfLa plupart des ordinateurs ont l’organisation générale de la Figure I-1. Figure

25

Uncircuitd’extensiondesignedepbitsversnbits,p<nestuncircuitcombinatoirequitransformeunnombresignécodéencomplémentà2surpbitsencemêmenombrecodéencomplémentà2surunnombredebitsnplusgrand.

Considéronsparexempleuneextensiondesignede4bitsvers8bits,etquelquescasparticuliers:

• 00112(=3)seraconvertien000000112• 11112(=-1)seraconvertien111111112• 10002(=-8)seraconvertien111110002

Onvoitdoncquelemotdenbitsestformédelarecopiedumotdepbits,complétéàgaucheden−pbitstouségauxà0ouà1selonlesignedunombre.Onrecopieenfaitn−pfoislebitdesignedumotdedépart,c’estàdirelebitderangp−1(FigureII-35).

FigureII-35.Opérationd’extensiondesigne.Ondupliquelespbitsd’entréeetonajouteàgauchen-pbitsdesigne.

LaFigureII-36montreàtitred’exemplelecodeSHDLcorrespondantàuncircuitd’extensiondesignede13bitsvers32bits.

module signext13(e12..e0: s31..s0) s[12..0] = e[12..0]; s[31..13] = e12*0b1111111111111111111; end module

FigureII-36.ÉcritureSHDLd’uncircuitd’extensiondesigne13bitsvers32bits.Les13bitsdepoidsfaiblessontrecopiésetonajoute19bitsdepoidsforts,touségauxaubitdesignee[12]dunombrededépart.

II.10. DécaleuràbarilletLedécaleuràbarillet(barrelshifter)décaleunmotbinairedenbitsverslagaucheouversladroite,d’unnombrevariabledebits.LesensdudécalageestdéfiniparunecommandeR(pourright)etlenombredebitsdudécalageestdonnédansunecommandeNBsurpbits(FigureII-37).C’estuncircuitdirectementemployéàl’exécutiondesinstructionsdedécalageetderotationdesprocesseurs,tellesquelesinstructionsslletslrdeCRAPSquenousverronsauchapitresuivant.Généralement,n=p2:undécaleuràbarilletsur8bitsauraunevaleurdedécalagecodéesur3bits;undécaleursur32bitsauraunevaleurdedécalagesur5bits,etc.

Page 26: INTRODUCTION A L ARCHITECTURE DES ORDINATEURSdiabeto.enseeiht.fr/download/archi/cours/book2_4.5.pdfLa plupart des ordinateurs ont l’organisation générale de la Figure I-1. Figure

26

FigureII-37.Interfacegénérald’undécaleuràbarillet.Lemotdenbitsestdécaléàdroite(resp.gauche)siR=1(resp.0),

d’unnombredebitsNB.Lesbitsquisortentsontperdus,etlesbitsentrantssontdes0.

Sur8bitsparexemple,laFigureII-38présentelatabledevéritécondenséed’untelcircuit,avecunevaleurdécalagesur3bitsquipermettouslesdécalagesde0à7danslesensdroit(R=1)commedanslesensgauche(R=0).

r nb entrées sorties* 000 e7 e6 e5 e4 e3 e2 e1 e0 e7 e6 e5 e4 e3 e2 e1 e00 001 e7 e6 e5 e4 e3 e2 e1 e0 e6 e5 e4 e3 e2 e1 e0 00 010 e7 e6 e5 e4 e3 e2 e1 e0 e5 e4 e3 e2 e1 e0 0 00 011 e7 e6 e5 e4 e3 e2 e1 e0 e4 e3 e2 e1 e0 0 0 00 100 e7 e6 e5 e4 e3 e2 e1 e0 e3 e2 e1 e0 0 0 0 00 101 e7 e6 e5 e4 e3 e2 e1 e0 e2 e1 e0 0 0 0 0 00 110 e7 e6 e5 e4 e3 e2 e1 e0 e1 e0 0 0 0 0 0 00 111 e7 e6 e5 e4 e3 e2 e1 e0 e0 0 0 0 0 0 0 0

1 001 e7 e6 e5 e4 e3 e2 e1 e0 0 e7 e6 e5 e4 e3 e2 e11 010 e7 e6 e5 e4 e3 e2 e1 e0 0 0 e7 e6 e5 e4 e3 e21 011 e7 e6 e5 e4 e3 e2 e1 e0 0 0 0 e7 e6 e5 e4 e31 100 e7 e6 e5 e4 e3 e2 e1 e0 0 0 0 0 e7 e6 e5 e41 101 e7 e6 e5 e4 e3 e2 e1 e0 0 0 0 0 0 e7 e6 e51 110 e7 e6 e5 e4 e3 e2 e1 e0 0 0 0 0 0 0 e7 e61 111 e7 e6 e5 e4 e3 e2 e1 e0 0 0 0 0 0 0 0 e7

FigureII-38.Tabledevéritécondenséed’undécaleuràbarilletsur8bits.

Untelcircuitestdifficileàconcevoirdirectement;parailleurs,sionvoulaitleréalisersousformed’unseulétagedepropagation-cequiestpossibleenthéorie-leséquationsseraientcomplexes,etced’autantplusquelesvaleursdenetpseraientgrandes.

Àl’inverse,uneconceptionmodulaireetrécursiveestpossibledefaçontrèssimple,sionprocèdeparétage,avecdesdécalagesparpuissancesde2successives.Cetteorganisationgénéraleestditededécalageàbarillet,etelleestmontréeFigureII-39pourundécaleur8bits.

TouslesdécaleursontleurslignesRreliéesensemble,etdoncopèrentdanslemêmesens.Ilssonttouséquipésd’uneligneCS,etundécalagen’esteffectuéquesiCS=1.Ilseffectuentchacunun

Page 27: INTRODUCTION A L ARCHITECTURE DES ORDINATEURSdiabeto.enseeiht.fr/download/archi/cours/book2_4.5.pdfLa plupart des ordinateurs ont l’organisation générale de la Figure I-1. Figure

27

nombrededécalagesfixe,4,2ou1.Leurorganisationenbarilletpermetd’effectuertouteslesvaleursdedécalageentre0et7.Lepremierniveaueffectueundécalagede4bitsounon,selonquenb[2]=1ounon.Lesecondniveaueffectueounonundécalagede2bits,selonlavaleurdenb[1].Ledernierniveaueffectueundécalagede1bit,selonlavaleurdenb[0].

FigureII-39.Organisationen3niveaux(barillets)d’undécaleur8bits.Chaqueniveaudécaledansunsensouunautred’unnombredepositionségalàunepuissancededeux,sisaligneCSestà1.Leurscombinaisonspermettenttoutesles

valeursdedécalage.

Parexemplesinb=101etsiR=0,lepremierniveauvadécalerde4bitsverslagauche(saligneCSestà1),transformantE=(e7,e6,e5,e4,e3,e2,e1,e0)en(e3,e2,e1,e0,0,0,0,0).Lesecondniveauvalaisserpassercevecteursansletransformer.Leniveaudubasvaeffectuerundécalagede1,transformantlevecteuren(e2,e1,e0,0,0,0,0,0).Autotal,c’estdoncbien4+1=5décalagesàgauchequiontétéeffectués.

Biensûr,unetelleorganisationestgénéralisableàunnombrequelconquedebits.Undécaleur32bitsseraitconstituéde5étages,formésdedécaleursfixesde16,8,4,2et1bits.L’accroissementencomplexitéetentempsdepropagationaugmentedoncenlog(n),cequiesttrèssatisfaisant.

II.11. Sortieshaute-impédanceetbuffers3-étatsCertainscircuitspossèdentdessortiesditestroisétats(tri-state),c’estàdirequ’enplusdepouvoirêtredansl’état’0’oul’état’1’(c’estàdiredansunétatélectriquede’basseimpédance’),ellespeuventêtredansuntroisièmeétatditde’haute-impédance’,souventnotéHigh-Z.Lorsqu’unesortieestenhaute-impédance,toutsepassecommesiellen’étaitplusconnectée,carelleneproduitplusnineconsommeplusaucuncourant.Cettepropriétépermettraderelierdirectemententre-ellesplusieurssortiesdecetype,sousréservedegarantirqu’auplusuneseuledecessortiesproduiseducourantàunmomentdonné(souspeinedecourt-circuit!).

Lescircuitsayantdessortiestroisétatspossèdenteninternedescomposantsappelésbuffertrois-états,quisereprésententtelsquesurlaFigureII-40.

Page 28: INTRODUCTION A L ARCHITECTURE DES ORDINATEURSdiabeto.enseeiht.fr/download/archi/cours/book2_4.5.pdfLa plupart des ordinateurs ont l’organisation générale de la Figure I-1. Figure

28

FigureII-40.Buffer3-états-Lasortieestenhaute-impédancetantqueVALIDE=0.

LaligneVALIDEquiarrivesurlecôtédutriangle,souventnotéeOE(pour’OutputEnable’),commandel’étatdelasortie.Tantquecetteligneestinactive,lasortierestedansl’étatHigh-Z.

Dupointdevuedel’écritureSHDL,cettecommandeOutputEnablesurunsignaltelqueSs’indiqueparl’ajoutaprèslenomdusignald’unecommandetelleque:OE

SionconsidèrecetétatHigh-Zcommeuntroisièmeétatlogique(cequin’estpastrèsexactsurleplanmathématique),onalatabledevéritédelaFigureII-41.

𝐴 𝐵 𝐴 + 𝐵0 0 00 1 11 0 11 1 1

FigureII-41.Tabledevéritéd’unbuffer3états

Onpeutillustrerl’utilisationdecesbufferslorsdelaréalisationd’unmultiplexeur(FigureII-42).

module mux1(a, b, c : s) s = a : /c ; s = b : c ; end module

module mux2(a, b, c : s) s1 = /c * a ; s2 = c * b ; s = s1 + s2 ; end module

FigureII-42.Multiplexeurréaliséàl’aidedebuffers3-états,comparéàsaréalisationenlogiquecombinatoireclassique.Onéconomisele’ou’final.

Lessortiesdesdeuxbuffers3-étatssontreliéesentre-elles,carleurslignesOEs’activentdefaçonmutuellementexclusive.L’idéedeceschémaestque,soitondoitlaisserpasserlecourantquivientdeA(avecl’interrupteurcommandéqueformelebuffertroisétats),soitondoitlelaisserpasserdepuisB.Commecesdeuxconditionssontmutuellementexclusives,onpeutrelierlessortiesdes

Page 29: INTRODUCTION A L ARCHITECTURE DES ORDINATEURSdiabeto.enseeiht.fr/download/archi/cours/book2_4.5.pdfLa plupart des ordinateurs ont l’organisation générale de la Figure I-1. Figure

29

deuxbuffersentoutesécurité.OnéconomiseainsilecircuitOUduschémaclassiquededroite,quin’opéraitjamaisavecsesdeuxentréesà1simultanément.

Onnoteral’écritureSHDLtelleque:S=A:/C;L’équipotentielles’appelleS,maisdeuxsourcesdecourantpeuventyimposerleurpotentiel;onlesnotealorsA:/CetB:C.

OnvoitsurlaFigureII-43uneconfigurationélectriqueparticulièredececircuit:lacommandeCétantà1,seullebuffer3-étatsdubasvaêtredansunétatdebasseimpédance,etvaimposersonétatélectriqueàlasortieS.Lebuffertroisétatsduhautasasortieenhauteimpédanceetn’entrepasenconflitavecl’autrepourl’établissementdupotentieldeS;toutsepassecommes’ilétaitdéconnectéducircuit,cequiaétéfiguréparlesdeuxlignesbrisées.

FigureII-43.Fonctionnementdumultiplexeur.Danscetteconfiguration,c’estlebufferdubasquiimposesonpotentiel.

Sionrelieensembledeuxsortiesdebufferstroisétats,etqu’àunmomentdonnéleurslignesOEsontà1enmêmetemps,lecourtcircuitestréel,etlescircuitssemettentàchaufferdangereusement,entraînantparfoisladestructionoul’endommagementduplusfaible.

Celapeutseproduiredansdesréalisationscomposéesdeplusieurscircuitsintégrés,dontlessortiestroisétatssontreliéesentreelles.Celapeutseproduireégalementàl’intérieurd’unseulcircuitcommeunFPGA,danslequeldeslignesinternesàtroisétatspeuventêtrereliéesentreelleslorsdelaprogrammation-configuration.Onéviteparfoislepireavecunbonodorat,endétectantl’odeurdecuissondelapoussièreprésenteàlasurfacedescircuitsàdestempératuresavoisinantparfoisles100degrésCelsius,etendébranchantenhâtel’alimentation!

C’estenfaitlaseulesituationdangereusepourlescomposantslorsquel’onfaitdelalogiquedigitale.Tantqu’onn’utilisepasdecomposantsavecdessortiestroisétats,riennepeutêtreendommagésionprendsoindenerelierchaquesortiequ’àdesentrées.Aveclescomposantsayantdessortiestroisétats,ilfaudraimpérativementconnecterleurslignesOEàdescircuitstelsquedesdécodeurs(voirsection3)quivontgarantirl’exclusionmutuelleentrelessortiesreliéesentreelles.

II.12. Exercicescorrigés

Exercice1:utilisationdestablesdeKarnaughConcevoiruncircuitquidétectelaprésenced’unchiffredécimal(entre0et9)sursesentréesA,B,C,D.

SolutionLatabledevéritédecedétecteurdonne’1’pourlesvaleursde(0,0,0,0)à(1,0,0,1),et’0’pourlesvaleurssuivantes(FigureII-44).

Page 30: INTRODUCTION A L ARCHITECTURE DES ORDINATEURSdiabeto.enseeiht.fr/download/archi/cours/book2_4.5.pdfLa plupart des ordinateurs ont l’organisation générale de la Figure I-1. Figure

30

A B C D S0 0 0 0 10 0 0 1 10 0 1 0 10 0 1 1 10 1 0 0 10 1 0 1 10 1 1 0 10 1 1 1 11 0 0 0 11 0 0 1 11 0 1 0 01 0 1 1 01 1 0 0 01 1 0 1 01 1 1 0 01 1 1 1 0

FigureII-44.Tabledevéritéd’undétecteurdechiffredécimal.

OnpeutmaintenantdessinerlatabledeKarnaughcorrespondante,etchercherlepluspetitnombrederegroupementsquirecouvrenttousles’1’(FigureII-45).

FigureII-45.TabledeKarnaughaveclesregroupementspourledétecteurdechiffresdécimaux.

Ilyadeuxregroupements,cequidonnel’expressionsimplifiée:𝑆 = 𝐴 + 𝐵𝐶𝐷

Onpeuttrouverlemêmerésultatdefaçonalgébrique:𝑆 = ( 𝐴, 𝐵, 𝐶, 𝐷 ≤ 8) + ((𝐴, 𝐵, 𝐶, 𝐷) = 9)) = 𝐴 + 𝐴𝐵𝐶𝐷

ParabsorptiondeA:𝑆 = 𝐴 + 𝐵𝐶𝐷

Exercice2:analyseinductivedestablesdevéritéConcevoirlestranscodeurssuivants:

1. BinairepurversGrayréfléchi.2. Grayréfléchiversbinairepur.

SolutionLafigureII.61montrelatabledevéritéquirelieunevaleurbinaire(X,Y,Z,T)àuncodedeGray(A,B,C,D).LecodedeGrayaétéconstruitselonlaméthoderécursivedécriteàlasection5.4.

Page 31: INTRODUCTION A L ARCHITECTURE DES ORDINATEURSdiabeto.enseeiht.fr/download/archi/cours/book2_4.5.pdfLa plupart des ordinateurs ont l’organisation générale de la Figure I-1. Figure

31

OnpourraitdessinerdestablesdeKarnaugh,maisellesnedonneraientrienici.ParailleursonvavoirquelescodesdeGraysonttrèsétroitementassociésàl’opérateurXOR,etonvaessayerdedevinerlesrelationsdirectement.

X Y Z T A B C D0 0 0 0 0 0 0 00 0 0 1 0 0 0 10 0 1 0 0 0 1 10 0 1 1 0 0 1 00 1 0 0 0 1 0 00 1 0 1 0 1 0 10 1 1 0 0 1 1 10 1 1 1 0 1 1 01 0 0 0 1 0 0 01 0 0 1 1 0 0 11 0 1 0 1 0 1 11 0 1 1 1 0 1 01 1 0 0 1 1 0 01 1 0 1 1 1 0 11 1 1 0 1 1 1 11 1 1 1 1 1 1 0

FigureII-46.Binaire<->codedeGray.

1. BinairepurversGrayréfléchi.OnvoittoutdesuitequeA=X.BestégalàYpendantlapremièremoitiédelatable,puisilestégalà𝑌.’Êtredanslapremièremoitiédelatable’estgouvernéparX;enrésuméBestégalàYavecuneinversioncommandéeparX.C’estXORl’opérateurd’inversioncommandée,donc:𝐵 = 𝑋 ⊕ 𝑌Defaçonanalogue,onremarquequeCestégalàZlorsqueYvaut0,etestégalà𝑍lorsqueYvaut1,donc:𝐶 = 𝑌 ⊕ 𝑍.Ontrouvedemême𝐷 = 𝑍 ⊕ 𝑇.

2. Grayréfléchiversbinairepur.OnabiensûrX=A,etonvoitaussique𝑌 = 𝐴 ⊕ 𝐵.ParcontrepourZ,ilestbienégalàCou𝐶,maisl’inversionn’estpassimplementcommandéeparB.Ilyainversiondurantledeuxièmeetletroisièmequartdelatable:celaévoqueunXOR.Ilyaenfaitinversionlorsque𝐴 ⊕ 𝐵 = 1,donc:𝑍 = 𝐴 ⊕ 𝐵 ⊕ 𝐶.Parinductionondevine,etonvérifieensuite,que𝑇 = 𝐴 ⊕ 𝐵 ⊕ 𝐶 ⊕ 𝐷

Page 32: INTRODUCTION A L ARCHITECTURE DES ORDINATEURSdiabeto.enseeiht.fr/download/archi/cours/book2_4.5.pdfLa plupart des ordinateurs ont l’organisation générale de la Figure I-1. Figure

32

Page 33: INTRODUCTION A L ARCHITECTURE DES ORDINATEURSdiabeto.enseeiht.fr/download/archi/cours/book2_4.5.pdfLa plupart des ordinateurs ont l’organisation générale de la Figure I-1. Figure

33

ChapitreIII. ArithmétiquebinaireIII.1. Motsbinaires

Lessignauxbinairessontsouventregroupéspourformerdesmots.Lalargeurd’unmotbinaireestlenombredessignauxquisontregroupés.Onappelleparexempleoctetunmotde8bits(unmotdelargeur8).Unmotdenbitspermetdecoder2nvaleursdifférentes;256valeursparexemplepourunoctet.OnpeututiliserunoctetpourcoderuncaractèrealphanumériqueàlanormeISO-8859;unmotde32bitspourreprésenterunnombreentierrelatif;unmotde16à96bitspourreprésenterdesnombresréelsennotationscientifiqueflottanteselonlanormeIEEE754.Desstructuresdedonnéespluscomplexes(tableaux,listes,ensembles,dictionnaires,etc.)nécessitentuneagrégationdecestypessimples.

CodageenbinairepurOnécriralesnombresbinairesaveclechiffre2enindice.Parexemple:011011012.Surnbits,l’intervalledesvaleursreprésentéesest[0,2n-1].Commeendécimal,letotalestunesommepondérée,plusprécisémentleproduitdechaquechiffreparlapuissancede2demêmerang:

s = 2\b^

9_6

\`a

où𝑏\ estlebitderangidumot.Parexemple,onareprésentésurlafiguresuivantelespoidsrespectifsdesbitsdumotde8bits100110102=15410:

FigureIII-1.Poidsdeschiffresenbinairepur

Poidsforts,poidsfaiblesParréférenceàcettenotiondepondérationdeschiffres,onemploiecourammentdesexpressionstellesque’lesnbitsdepoidslesplusforts’,ou’lesnbitsdepoidslesplusfaibles’pourdésignerlesnbitslesplusàgauche(respectivementlesplusàdroite)dansunmotbinaire.Danslesdocumentationsenanglais,ontrouverafréquemmentdeslibelléstelsqueMSB(mostsignificantbits)ouLSB(leastsignificantbits)aveclesmêmesens.

1Kilon’estpas1000(eninformatique)Lorsquevousachetezunkilowatt-heured’électricité,ilestbienentenduavecvotrefournisseurqu’ils’agitde1000watts-heure.Cen’estpaslamêmechoseeninformatique!Pourcontinueràénumérerenutilisantlabase2,lesinformaticiensontdécidéd’utiliserl’unité1K=210=1024,doncunpeuplusde1000.Lesuffixe’méga’est:1M=1K×1K=220;un’giga’est:1G=1K×1M=230;un’Tera’est:1T=1K×1G=240.Ungrandnombredevaleursusuelless’exprimentalorsdirectementenmultiplesde1K,1M,1Gou1T,parexemplelatailledesmémoiresRAM,carelleestnécessairementunepuissancede2àcausedeleurorganisationmatricielle.1K,1Met1Gvalentenvironmille,unmillionetunmilliard,maislapetitedifférenceentre1000et1Kaugmentelorsqu’onpasseà1Met1G:1M=1024*1024=1048576,et1G=1024*1048576=1073741824,soitpresque1,1milliard.Lesvendeursdedisquesdursexploitentcetteambiguïté:le

1001101076543210

128 16 82

S=128+16+8+2=154

Page 34: INTRODUCTION A L ARCHITECTURE DES ORDINATEURSdiabeto.enseeiht.fr/download/archi/cours/book2_4.5.pdfLa plupart des ordinateurs ont l’organisation générale de la Figure I-1. Figure

34

plussouventsivousachetezundisqueétiqueté’100giga-octets’,ils’agitd’undisquede100milliardsd’octets,etnonde107374182400octets,soitunedifférencede7%.

64bits,latailleidéalepourlesdonnées?Lesmicroprocesseursmanipulentdesmotsbinairesdetaillefixe,lespluspetitsde8bits,d’autresde16bits,32bitsetmaintenant64bits.Unprocesseur8bits,s’ilveutajouter1000et1000,doiteffectuerdeuxadditionsetnonuneseule,puisque1000ne’rentre’pasdansuncodage8bits.Unprocesseur16bitscodedirectementdesnombresentiersdel’intervalle[-32768,+32767],cequinepermetpasdecoderdesnombresuntantsoitpeugrands.Onsembledéfinitivementàl’aiseavec32bits,maiscen’estpaslecas:leplusgrandentierquipeutêtrecodéest232,soitenviron4milliards,cequinesuffitpasàreprésenterlemontanteneurosd’unejournéedetransactionsàlaboursedeParis.Avec64bits,onestdéfinitivementsauvéscôtéentiers,àmoinsdevouloircompterlesgrainsdesablesurlaplage.Pourlecodagedesnombresréels,64bitsestlatailledecodageendoubleprécisionlaplususuelle,quidonneuneprécisiond’unedizainedechiffresaprèslavirgule,suffisantedanslamajoritédesapplications.Commeondoitaussisouventstockerdesadressesdemémoiredansdesmots,64bitsestaussiunetaillesuffisante,alorsque32bitsnepermettentpasdedépasser4giga-octets.Unetailledemotde64bitsadoncdesqualitésintrinsèquesquen’avaientpasjusquelà16bitsou32bits.Utiliserunetailleplusgrandede128bitsdansunprocesseurconduiraitàbeaucoupdegaspillage,puisquelaplupartdesmotsmanipulésseraienttrèspeuremplis.Maprédictionpersonnelleestque,danslefutur,cettetailledumotmémoirenevapasaugmenterindéfiniment,maisvasestabiliserà64bitsdufaitdesqualitésquiviennentd’êtredécrites.

NombresbinairesàvirguleCommeendécimal,onpeutmanipulerdesnombresàvirguleenbinaire.Leschiffresplacésaprèslavirguleontalorsdespoidsquisontlespuissancesnégativesdécroissantesde2.Ainsi,0.12=2−1=0.5;0.012=2−2=0.25,etc.Sioncherchelareprésentationbinaireapprochéedunombreπ,ontrouveraπ=11.001001…(FigureIII-2).

FigureIII-2.Écriturebinaireàvirgule(approchée)dunombreπ.

Pourchaqueposition,onmet1ou0defaçonàcequelavaleurcourantenedépassepaslavaleuràreprésenter,toutens’enapprochantlepluspossible.Parexempleaprèsavoirchoisi11.001(totalcourant=21+20+2−3=2+1+0.125=3.125),onnepeutpasmettrede1enposition-4ou-5,carceladépasseraitπ.Ondoitattendrelaposition-6,etonaunevaleurapprochéede21+20+2−3+2−6=3.140625.

1100100110-1-2-3-4-5-6

2

0,015625

π=2+1+0.125+0.015625

10,125

Page 35: INTRODUCTION A L ARCHITECTURE DES ORDINATEURSdiabeto.enseeiht.fr/download/archi/cours/book2_4.5.pdfLa plupart des ordinateurs ont l’organisation générale de la Figure I-1. Figure

35

IncrémenteretdécrémenterenbinaireUneopérationfréquenteeffectuéesurdesnombresbinairesestlecomptage.Parexemplesur3bits,passerde000à001,puis010,etc.Selonquelalgorithmeunevaleursetransforme-t-elleenlasuivante?Onpeutessayerdes’inspirerducomptageendécimal,qu’onsaitfairedepuisnotrepetiteenfance,etpourlequelonnenousapourtantjamaisdonnél’algorithmique.Pourpasserde124à125,seullechiffredesunitéss’estincrémenté.Enfaitcechiffres’incrémentetoujours,avecunpassagede9à0.Lechiffredesdizainesserarecopiéavecincrémentation,silechiffredesunitésvaut9,commedanslepassagede129à130,sinonilserarecopiésanschangement,commedanslepassagede124à125.Ontientnotrealgorithme:pourpasserd’unnombredécimalàsonsuivant,onconsidèrechaquechiffreunparun,etonlerecopieenl’incrémentantsitousleschiffresquisontàsadroitevalent9,ousinononlerecopiesanschangement.Onremarqueraquel’ordredetraitementsurleschiffresestindifférent,etqu’onpeuteffectuercetalgorithmeenparallèlesurtousleschiffres.LaFigureIII-3montreunexemple.

FigureIII-3.Incrémentationd’unnombredécimal.Unchiffreestrecopiéavecincrémentationsitousleschiffresàsa

droitevalent9;sinonilestrecopiésanschangement.

Lemêmealgorithmes’appliqueenbinaire,maiscettefoisl’opérationd’incrémentationd’unchiffreestencoreplussimple,carelleserésumeàuneinversiondubit.Pourincrémenterunnombrebinaire,onconsidèrechaquebitdumotinitial,etonlerecopieavecinversionsitouslesbitsquisontàsadroitevalent1,ouonlerecopiesanschangementsinon.Lebitleplusàdroiteesttoujoursinversé.LaFigureIII-4montreunexemple.

FigureIII-4.Incrémentationd’unnombrebinaire.Unbitestinversésitouslesbitsàsadroitevalent1;sinonilest

recopiésanschangement.

Làencorel’algorithmepeuts’effectuerenparallèlesurtouslesbits,doncpeutêtreréalisédirectementparuncircuitcombinatoire,dontc’estlemodedefonctionnementnaturel.

1

1

2 9 9

deschiffresàdroitediffèrentde9

onrecopiesanschanger

tousleschiffresàdroitevalent9

onrecopieenincrémentant

tousleschiffresàdroitevalent9

onrecopieenincrémentant

onincrémentetoujours

3 0 0

1 0 1 1

desbitsàdroitesontdifférentsde1

onrecopiesanschanger

touslesbitsàdroitevalent1

onrecopieeninversant

touslesbitsàdroitevalent1

onrecopieeninversant

oninversetoujours

1 1 0 0

Page 36: INTRODUCTION A L ARCHITECTURE DES ORDINATEURSdiabeto.enseeiht.fr/download/archi/cours/book2_4.5.pdfLa plupart des ordinateurs ont l’organisation générale de la Figure I-1. Figure

36

Attention,ilfautnoterqu’onnepeutpasincrémenterlavaleur’surplace’:lemotbinairequicontientlenombrededépartetlemotbinairequicontientlerésultatdoiventêtredistincts,etnepeuventpasêtreconfondus.Unalgorithmeanalogueexistepourledécomptage:onrecopieunbitavecinversionsitouslesbitsàsadroitevalent0,sinononlerecopiesanschangement.Parvacuité,lebitleplusàdroiteesttoujoursinversé.Parexemple,onpassede110à101eninversantlesdeuxbitsdepoidsfaible,cartouslesbitsquisontàleurdroitevalent0.

HexadécimalLesmotsmanipulésparunordinateurontsouventunelargeursupérieureà16ou32bits,etsontdoncdifficilesàtranscrireenbinaire.Pourobteniruneécritureconcise,onutilisesouventlabase16,appeléehexadécimal,dontles16chiffressontnotés:0,1,2,3,4,5,6,7,9,A,B,C,D,E,F.Chaquechiffrehexadécimalpermetdecoder4bits(24=16).Pourpasserd’unenotationbinaireàunenotationhexadécimale,ilsuffitdegrouperlesbitsparpaquetsde4,dedroiteàgaucheàpartirdespoidsfaibles.Parexemple:

0110.11012=6D16=109100110.1000.1010.11002=68AC16

Débordementlorsd’uneadditionnonsignéeLorsqu’onadditionnedesnombresentiersnaturelscodésenbinairepur,uneretenuefinaleindiqueundébordement.

III.2. CodagedesnombresentiersnaturelsOnutiliselebinairepur.Avecnbits,onpeutcoderlesnombresentierspositifsdel’intervalle[0,2n−1].L’additionetlasoustractions’effectuentdelamanièrehabituelle;ilyadébordementdel’additionlorsqu’uneretenuedoitêtrepropagéeaudelàdudernierbitderangn.

LecteuretimprimeurdécimalSiunprogrammeutilisedesnombresentiersnaturelscodésenbinairepur,lareprésentationexternedecenombreàl’utilisateurduprogrammeestgénéralementfaitedansuneautrebase,leplussouventlabase10.Unsous-programmeappeléimprimeurestchargédeconvertirunevaleurenbinairepurensonécrituredécimale,etunautreappelélecteurfaitlatraductioninverse.Onpeutexaminerrapidementlesalgorithmesqu’ilsutilisent.Ilsseraientbiensûrfacilementtransposablesàd’autresbases.

TraductiondubinaireversledécimalConsidéronsparexempleunmotde8bitsN=101101102;oncherchelasuitedescaractèresquireprésentecenombreenécrituredécimale.C’estunprogrammed’ordinateurquiréalisecetteconversion,etquidisposedoncd’opérateursarithmétiques(binaires)telsqueadditionetmultiplications,quisaitfairedescomparaisons,etc.Cettetraductionnecomporterapasplusde3chiffresdécimaux,notonsles:XYZ.OnchoisitpourXlechiffreleplusgrandtelque100X≤N.IciX=1convientcar1×100≤Net2×100>N.PourfairecechoixdeX,onpeuteffectivementréaliserdesmultiplications,ouutiliserunetablepréconstruite.IlresteàtraduireN1=N−X×100=10100102.Pourcettevaleur,oncherchelaplusgrandedesvaleursdeYtelleque10×Y≤N1;ontrouveY=8,etilresteàconvertirN2=N1−Y×10=000000102;ontrouvealorsZ=2.Finalement,lestroischiffresdécimauxcherchéssontXYZ=182.

TraductiondudécimalverslebinaireOncherchedoncàconvertirl’écrituredécimaled’unnombreenunmotbinaire.Leproblèmen’estpaslesymétriqueduprécédent,carl’ordinateursaitfairetouteslesopérationssurlecodagebinaire,alorsqu’ilnesaitenfaireaucunedirectementenbase10.

Page 37: INTRODUCTION A L ARCHITECTURE DES ORDINATEURSdiabeto.enseeiht.fr/download/archi/cours/book2_4.5.pdfLa plupart des ordinateurs ont l’organisation générale de la Figure I-1. Figure

37

Pourunnombredécimaltelque’XYZ’(quiconduitàunevaleurbinairesur8bits),ilsuffitenfaitdefairelecalculn=100x+10y+zoùx,yetzsontlesnumérosd’ordreassociésauxchiffres’X’,’Y’et’Z’respectivement.

III.3. CodagedesnombresentiersrelatifsAuxdébutsdel’informatique,oncodaitgénéralementlesnombresentierssignésenmettantdanslepremierbitlesigne(’1’signifiant’moins’)etdanslessuivantslavaleurabsolue.-3secodaitparexemple10000011sur8bits.L’encodageetledécodaged’untelnombreétaientsimple(bienqu’onnoteraque0peutêtrecodé+0ou-0),maisonnepouvaitplusréaliserunesimpleadditioncommeavecdesnombresnaturels.Siparexempleontentedefairel’additionbitàbitde10000011(-3)etde00000100(+4),onobtient:10000111,c’estàdire-7,cequiestabsurde.

Codageencomplémentà2Uncodageappelécomplémentàdeuxs’estrapidementimposédanslesannées1970.Lesdifférentsbitsd’unnombrecodéencomplémentà2ontpourpoidslespuissancessuccessivesde2,commepourlebinairepur,saufpourlebitdepoidsfort,quiaunpoidsde−29_6aulieud’avoirunpoidsde29_6:

𝑠 = −29_6𝑏9_6 + 2\𝑏\

9_8

\`a

où𝑏\ estlebitderangidumot.Onpeutprouverquececodagealespropriétésremarquablessuivantes:

• c’estuncodageéquilibré:surnbits,onreprésentelesnombresrelatifsdel’intervalle[−2n−1,2n−1−1]soitautantdenombrepositifsounulsquedenombresstrictementnégatifs

• 0secodesousformed’unchampuniformede0;iln’aqu’unseulcodage• lebitdepoidsfortducodagereprésentelesignedunombre• lesopérationsd’additionoudesoustractionenbinairepurs’appliquentégalementavecdes

opérandescodésencomplémentàdeux,avecladifférencequelaretenuen’apasdesensetdoitêtrenégligéelorsd’uneopérationencomplémentàdeux

Pourillustrerlefaitquelemêmeopérateurd’additionestutilisépourlebinairepuretlecomplémentà2,considéronsl’additiondela

FigureIII-5:

Page 38: INTRODUCTION A L ARCHITECTURE DES ORDINATEURSdiabeto.enseeiht.fr/download/archi/cours/book2_4.5.pdfLa plupart des ordinateurs ont l’organisation générale de la Figure I-1. Figure

38

FigureIII-5.Unemêmeopération’mécanique’d’additions’interprètededeuxfaçonsdifférentes.

Lamêmeopérationeffectuéemécaniquementsurdescodages(colonnecentrale)s’interprètededeuxfaçonsdifférentesselonqu’onconsidèrelesnombrescommeétantsignésounon.

Débordementlorsdel’additiondenombressignésQuandya-t-ildébordementlorsd’uneadditiondedeuxnombressignés?Ilestclairqu’ilnepeutpasseproduirelorsquelesopérandessontdesignesopposés,puisquelavaleurabsoluedurésultatestalorsinférieureàlaplusgrandedesvaleursabsoluesdesdeuxopérandes.Ilnepeutdoncseproduireques’ilssontdemêmesigne,touslesdeuxpositifsoutouslesdeuxnégatifs.Ondémontrequ’alorsilyadébordementsietseulementsil’additiondesdeuxdonneunrésultatdesigneopposéausignecommundesdeuxopérandes.

Comparaisondenombresencomplémentà2OnseposeicileproblèmededéterminerlespositionsrespectivesdedeuxnombresentiersAetBcodésencomplémentà2:sontilségaux,oul’unest-ilplusgrandquel’autre?Ilfautd’abordexaminerleurssignes,c’estàdireleursbitsdepoidsforts.Silessignessontdifférents,lacomparaisonestimmédiate.Silessignessontidentiques,ilsuffitdecomparerlesn−1autresbitsdansl’ordrebinairenaturel,quelesnombressoientpositifsounégatifs.

Calculdel’opposéAveclecodageencomplémentà2,ondémontrequelecodagedel’opposéd’unnombres’obtientenappliquantlaprocéduresuivante:

• oninversetoussesbits(=«complémentà1»)• onajoute1,sanstenircomptedel’éventuelleretenue(=«complémentà2»)

Parexemple,+3estcodé00000011sur8bits.Pourobtenirlecodagede-3,oninversetouslesbitsducodageprécédent,soit11111100etonajoute1,soit11111101quiestbienlecodagede-3.Sionréappliquelaprocédureaucodagede-3,onretrouveralecodagede+3.

Calculdel’opposé(bis)Ondémontreégalementquel’opposépeutsecalculeràpartirdel’originaldelafaçonsuivante:lebitdepoidsfaibleestrecopiételquel;lesautresbitssontinversésseulements’ilexisteunbità1surleurdroitedansl’original.

III.4. Problématiquedel’additionLorsqu’oneffectueuneadditionenbinaire,laméthodelaplussimpleconsisteàl’effectuerbitàbit,encommençantparlebitdepoidsfaible(figureII.29).

Page 39: INTRODUCTION A L ARCHITECTURE DES ORDINATEURSdiabeto.enseeiht.fr/download/archi/cours/book2_4.5.pdfLa plupart des ordinateurs ont l’organisation générale de la Figure I-1. Figure

39

FigureIII-6.Additionenbinairebitàbit.

Achaquerangidel’addition,onfaitlasommedesbitsA[i]etB[i],ainsiquedel’éventuelleretenuequiviendraitdurangprécédenti−1.CecalculproduitlebitS[i]durésultat,ainsiqu’uneretenuequiserapasséeaurangsuivant.Lorsqu’onaeffectuétoutescesadditionsdepuislebitdepoidsleplusfaible(rang0)jusqu’aubitdepoidsleplusfort,laretenuefinaleseralaretenuequisortdudernierrangd’addition.Onappelledemi-additionneurlecircuitquifaitlecalculdurang0,cariln’apasàprendreencomptederetenuequiviendraitd’unétageprécédent.Onappelleadditionneurcompletlecircuitquiprendencomptelecalculd’unbitderangquelconquedifférentde0.

III.4.1. Demi-additionneurUndemi-additionneurestlecircuitquiréaliseuneadditionentredeuxbitsAetB,etquiproduitlasommesurunbitSavecl’éventuelleretenueR.LatabledevéritéetlemodulecorrespondantsontreprésentésfigureII.30.IlestclaireneffetquelasommeestleXORentreAetB,etlaretenuenepeutintervenirquelorsqueAetBvalent1touslesdeux.

𝐴 𝐵 𝑆 𝑅0 0 0 00 1 1 01 0 1 01 1 0 1

FigureIII-7.Tabledevéritéetschémadudemi-additionneur.

III.4.2. AdditionneurcompletUnadditionneurcompletestundemi-additionneurquicomporteenplusenentréeuneretenueentrantequiviendraitd’unautreétaged’addition.Lesentréessontdonclesdeuxbits𝐴et𝐵etlaretenueentrante𝑅𝐸;lessortiessontlebitrésultat𝑆etlaretenuesortante𝑅𝑆.Ilestfacilededéterminer𝑆et𝑅𝑆auvudeleurfonction,sansavoirbesoindeleurtabledevérité:

• 𝑆estlasommedestroisbits𝐴, 𝐵et𝑅𝐸,etonsaitdepuislasection3quec’estunXORàtroisentrées:𝑆 = 𝐴�𝐵�𝑅𝐸

• 𝑅𝑆estlaretenuedecetteaddition,etvaut1lorsqu’ilyaaumoinsdeuxvaleursà1dansletriplet(𝐴, 𝐵, 𝑅𝐸):c’estdonclafonctionmajoritédéjàvueensection3,𝑅𝑆 = 𝐴. 𝐵 + 𝐴 ·𝑅𝐸 + 𝐵 · 𝑅𝐸

Page 40: INTRODUCTION A L ARCHITECTURE DES ORDINATEURSdiabeto.enseeiht.fr/download/archi/cours/book2_4.5.pdfLa plupart des ordinateurs ont l’organisation générale de la Figure I-1. Figure

40

module fulladder(A,B,RE: S,RS) S = /A*/B*RE+/A*B*/RE+A*/B*/RE+A*B*RE ; RS = A*B + A*RE + B*RE ; end module

FigureIII-8.Additionneurcomplet:lasommeestunXOR,etilyaretenuelorsqu’unemajoritédesentréesvaut1.

III.4.3. Additionneurripple-carryUnadditionneurripplecarryréaliselittéralementlaméthoded’additioncolonneparcolonne,encommençantparunedemi-additiondespoidsfaiblesetenenchaînantensuitel’additioncomplètedesbitssuivants.Surnbits,ilnécessiteraundemi-additionneur,etn−1additionneurscomplets.Sur4bitsparexemple,ilprendlaformedelafigureII.32.LadescriptionenlangageSHDLesttrèssimple:ilsuffitdecombinerlesécrituresd’undemi-additionneuretde3additionneurscomplets(figureII.33).Cetyped’additionneurestsimple,maislent:ilfautattendrequetouteslesretenuessesoientpropagéesdepuislebitdepoidsleplusfaiblejusqu’aubitdepoidsleplusfortpourquelecalculsoitterminé.Oruncalculd’additionestuncalculcombinatoire,doncquipeutêtreeffectuéenthéorieenuneétapedepropagation,sousformed’unesommedeminterms,etsanstouscestermesintermédiairesquereprésententlesretenues.Maisleséquationsàécriredeviennenttrèscomplexesdèslerang3,etsontdoncimpraticables.Entrecesdeuxextrêmes,ilestnécessairedeconcevoirdesadditionneursdecomplexitéraisonnablepourunnombredebitssupérieurà8,etavecdestempsdepropagationquinecroissentpaslinéairementaveccenombredebits.Onvavoirensection8.5commentlesadditionneurscarrylookaheadparviennentàcecompromis.

FigureIII-9.Additionripplecarry4bits.Lerang0estcalculéavecundemi-additionneur,etlesautresrangsavecdes

additionneurscomplets.

Page 41: INTRODUCTION A L ARCHITECTURE DES ORDINATEURSdiabeto.enseeiht.fr/download/archi/cours/book2_4.5.pdfLa plupart des ordinateurs ont l’organisation générale de la Figure I-1. Figure

41

module ripplecarry4(a3,b2,a1,a0,b3,b2,b1,b0: s3,s2,s1,s0,carry) halfadder(a0,b0:s0,c0); fulladder(a1,b1,c0:s1,c1); fulladder(a2,b2,c1:s2,c2); fulladder(a3,b3,c2:s3,carry); end module

module halfadder(a,b: s,cout) s = /a*b+a*/b; cout = a*b; end module

module fulladder(a,b,cin: s,cout) s = /a*/b*cin+/a*b*/cin+a*/b*/cin+a*b*cin; cout = a*b + a*cin + b*cin; end module

FigureIII-10.ÉcritureSHDLd’unadditionneurripple-carry4bits.Oncombineunmodulehalfadderet3modulesfulladder.

III.4.4. Additionneurcarry-lookaheadOnavuensection8.1quec’étaitlapropagationdelaretenuequiralentissaitlecalculd’unesommedansunadditionneurripplecarry.Sioncalculea[n..0]+b[n..0],onapourchaqueadditionneurcomplet:

𝑠\ = 𝑎\�𝑏\�𝑐\ 𝑐\ = 𝑎\. 𝑏\ + 𝑎\. 𝑐\ + 𝑏\. 𝑐\

Calculer𝑠eparexemplenécessitedecalculer𝑐e,donc𝑠8,donc𝑐8,etc.Laméthodecarrylookaheadpartduconstatqu’onpeutfacilementdétermineràchaqueétages’ilyaurauneretenueounon,enraisonnantentermesderetenuepropagéeetderetenuegénérée.Considéronsl’additiondesdeuxtermessuivants:

P P P G G P P1 0 1 1 1 0 0 10 1 0 1 1 1 0 0

Un’G’estplacéaudessusd’unecolonnederangilorsquelestermesàajouter𝑎\ et𝑏\ valenttousdeux’1’:onestalorssûrqu’uneretenuesera’Générée’pourl’étagesuivant.Sinon,un’P’estplacélorsqu’undesdeuxtermesvaut’1’:siuneretenuearrivedepuisl’étageprécédent,alorscetétagevala’Propager’,puisqu’onseraalorssûrqu’ilyaaumoinsdeux’1’parmilestroisbitsàadditionneràcerang.Enraisonnantuniquementsurles’P’etles’G’,ontrouvefacilementquelsétagesvontémettreuneretenue.Ainsisurl’exemple,l’étage0peutpropageruneretenue,maisaucunen’aencoreétégénérée.Lesétages3et4génèrentuneretenue,etlesétagessuivants5,6et7lapropagent.Lestermes𝐺\ et𝑃\ sonttrèsfacilesàcalculer:

𝐺\ = 𝑎\. 𝑏\ 𝑃\ = 𝑎\ + 𝑏\

Unmoduleautonomepeutprendreenentréeslesvaleursdes𝐺\ et𝑃\detouslesrangsetlesutiliserpourcalculerlesretenuesentrantesdechaqueadditionneurcomplet,selonleschémagénéraldelaFigureIII-11.

Page 42: INTRODUCTION A L ARCHITECTURE DES ORDINATEURSdiabeto.enseeiht.fr/download/archi/cours/book2_4.5.pdfLa plupart des ordinateurs ont l’organisation générale de la Figure I-1. Figure

42

FigureIII-11.Schémagénérald’unadditionneurcarry-lookahead.OncalculepourchaquerangideuxbitsGietPiqui

indiquentsicetétagevagénéreruneretenue,ouenpropagerunedel’étageprécédent.Unmodulespécifiquecarry_lookaheadcalculerapidementàpartirdesGietPilesretenuescipourtouslesrangs.

Onnoteraquelesretenuessortantescoutdesadditionneurscompletsnesontpasexploitées,puisquec’estlemodulecarry_lookaheadquis’occupeducalculdetouteslesretenues.Ilfautmaintenantréaliserunmodulecarry_lookaheadquieffectuececalculdansletempslepluscourt.L’idéegénéraleestqu’ilyauneretenueaurangisi𝐺\ =1ousi𝑃\=1etsiuneretenueexisteaurang𝑖 − 1:

𝑐\<6 = 𝐺\ + 𝑐\ · 𝑃\ Ontrouve:

𝑐6 = 𝐺a + 𝑐\9 · 𝑃a𝑐8 = 𝐺6 + 𝑐6 · 𝑃6 = 𝐺6 + 𝐺a. 𝑃6 + 𝑐\9 · 𝑃a. 𝑃6𝑐e = 𝐺8 + 𝑐8 · 𝑃8 = 𝐺8 + 𝐺6. 𝑃8 + 𝐺a. 𝑃6. 𝑃8 + 𝑐\9 · 𝑃a. 𝑃6. 𝑃8𝑐i = 𝐺e + 𝑐e · 𝑃e = 𝐺e + 𝐺8. 𝑃e + 𝐺6. 𝑃8. 𝑃e + 𝐺a. 𝑃6. 𝑃8. 𝑃e + 𝑐\9 · 𝑃a. 𝑃6. 𝑃8. 𝑃e

Ilnefautpasseleurrer:ilyalàaussiunecascadedanslescalculs,maiselleportesurdestermesplussimplesquesionavaitopérédirectementsurlestermesaietbi.Au-delàde7à8bits,leséquationsdumodulecarry_lookaheaddeviennenttropcomplexespourêtreimplémentéessousformedesommesdetermes,etdessignauxintermédiairesdoiventêtreintroduits.Sionconsidèrelasommedeproduitscommeunitédecalculetdepropagation(hypothèsed’implémentationdansunCPLDouunFPGA),lecalculcompletd’unesommenécessite1tempspourlecalculdesGietPi,1tempspourlecalculdesretenues,et1tempspourl’additionneurcomplet,soituntotalde3tempsdepropagation,contre4pourl’additionneurripplecarry.Legainestfaible,maisilaugmenteàmesurequelenombredebitsgrandit.

Page 43: INTRODUCTION A L ARCHITECTURE DES ORDINATEURSdiabeto.enseeiht.fr/download/archi/cours/book2_4.5.pdfLa plupart des ordinateurs ont l’organisation générale de la Figure I-1. Figure

43

L’écriturecomplèted’unteladditionneur4bitsenlangageSHDLestdonnéeFigureIII-12 end module

module carry_lookahead(G[3..0],P[3..0],c0:c4,c3,c2,c1) c1=G[0]+P[0]*c0 ; c2=G[1]+P[1]*G[0]+P[1]*P[0]*c0 ; c3=G[2]+P[2]*G[1]+P[2]*P[1]*G[0]+P[2]*P[1]*P[0]*c0 ; c4=G[3]+P[3]*G[2]+P[3]*P[2]*G[1]+P[3]*P[2]*P[1]*G[0]+P[3]*P[2]*P[1]*P[0]*c0 ; end module

module cla4(a[3..0],cin,b[3..0]:s[3..0],cout) G[3..0] = a[3..0] * b[3..0]; P[3..0] = a[3..0] + b[3..0]; carry_lookahead(G[3..0],P[3..0],cin:cout,c3,c2,c1) ; xor3(a[3],b[3],c3:s[3]) ; xor3(a[2],b[2],c2:s[2]) ; xor3(a[1],b[1],c1:s[1]) ; xor3(a[0],b[0],cin:s[0]) ; end module

FigureIII-12.ÉcritureSHDLd’unadditionneur4bitscarry-lookahead.Onnoteral’écriturevectoriellepourleséquationsdestermes𝑮𝒊et𝑷𝒊.

Associationd’additionneurscarry-lookaheadLatechniquedel’additionneurcarry-lookaheadnepeutpasêtreutiliséeaudelàde7à8bits,maisonsouhaitecontinueràl’exploitersurdesadditionneursdeplusgrandetaille.Onpeutsubdiviserlesmotsàadditionnerengroupesde4bitsparexemple,eteffectuerdanschaquegroupeuneadditioncarry-lookahead.Seposealorsleproblèmedel’associationdecesgroupes:va-t-onsecontenterdeleschaînerenripplecarry?Onpeutenfaitappliquerànouveaulatechniquecarry-lookaheadàl’échelledesgroupes.Chaqueadditionneurcarry-lookaheadsur4bits𝐶𝐿𝐴\ vagénérerdeuxsignaux𝐺𝐺\(groupgenerate)et𝐺𝑃\ (grouppropagate).𝐺𝐺\ indiqueraquelegroupegénèreranécessairementuneretenueet𝐺𝑃\ indiqueraquesiuneretenuearrivedanscegroupe(parsonentrée𝑐𝑖𝑛),elleserapropagéeàtraversluiaugroupesuivant.Lamêmeméthodeestainsiappliquéeàl’échelledesgroupes,chaquegroupejouanticilemêmerôlequejouaitunétagede1bitdansl’additionneurcarry-lookaheadordinaire.Lemêmemodulecarry_lookaheadestd’ailleursemployépourcalculerrapidementlesretenuesc4,c8,c12etc16quisontenvoyéesauxdifférentsgroupes.LaFigureIII-13montreunexempled’addition,etlaFigureIII-14présentel’organisationgénéraled’untelgroupement.

FigureIII-13.Exempled’addition16bitsavecunadditionneurgroupcarry-lookahead.Legroupe#0génèreuneretenue,

quiestpropagéeautraversdugroupe#1,etdontl’effetvientseterminerdanslegroupe#2.

Page 44: INTRODUCTION A L ARCHITECTURE DES ORDINATEURSdiabeto.enseeiht.fr/download/archi/cours/book2_4.5.pdfLa plupart des ordinateurs ont l’organisation générale de la Figure I-1. Figure

44

IlnousresteseulementàtrouverleséquationsdeGGetGP.GGindiquequ’uneretenueestgénéréeparlegroupe,c’estàdiregénéréeanniveaudubit3,ougénéréeauniveaudubit2etpropagéeaurang3,etc.:

𝐺𝐺 = 𝐺3 + 𝐺2 ∗ 𝑃3 + 𝐺1 ∗ 𝑃2 ∗ 𝑃3 + 𝐺0 ∗ 𝑃1 ∗ 𝑃2 ∗ 𝑃3

FigureIII-14.Schémagénérald’ungroupementde4additionneurs4bitscarry-lookahead.Chaqueadditionneurfournit

deuxsignauxGGetGPquiindiquents’ilgénèreoupropageuneretenuepourlegroupesuivant.Unmodulecarry_lookaheadeffectuelecalculrapidedesretenuesentrantesdechaquegroupeàpartirdecessignaux.

GPindiquequ’uneretenuearrivantparcinserapropagéetoutaulongdugroupe,c’estàdirequ’àchaquerangdebitiilyaaumoinsun’1’suraioubi,c’estàdireencorequ’àchaquerangionaPi=1

𝐺𝑃 = 𝑃0 ∗ 𝑃1 ∗ 𝑃2 ∗ 𝑃3

Page 45: INTRODUCTION A L ARCHITECTURE DES ORDINATEURSdiabeto.enseeiht.fr/download/archi/cours/book2_4.5.pdfLa plupart des ordinateurs ont l’organisation générale de la Figure I-1. Figure

45

Lafiguresuivantedonnel’ensemblecompletdeséquationsSHDLdecetadditionneur.Lesmodulescarry_lookaheadetfulladdersontlesmêmequ’àlafigureII.35,cla4aétélégèrementmodifiépuisqu’ilproduitmaintenantlessignauxGGetGP.module cla16(a15..a0,b15..b0,cin:s15..s0,cout) cla4(a3..a0,b3..b0,cin:s3..s0,c4_,GG0,GP0); cla4(a7..a4,b7..b4,c4:s7..s4,c8_,GG1,GP1); cla4(a11..a8,b11..b8,c8:s11..s8,c12_,GG2,GP2); cla4(a15..a12,b15..b12,c12:s15..s12,c16_,GG3,GP3); carry_lookahead(GG3,GP3,GG2,GP2,GG1,GP1,GG0,GP0,cin:cout,c12,c8,c4); end module

module cla4(a3,a2,a1,a0,b3,b2,b1,b0,cin:s3,s2,s1,s0,cout,GG,GP) G3..G0 = a3..a0 * b3..b0; P3..P0 = a3..a0 + b3..b0; carry_lookahead(G3,P3,G2,P2,G1,P1,G0,P0:cout,c2,c1,c0); full_adder(a3,b3,c2:s3,cout3); full_adder(a2,b2,c1:s2,cout2); full_adder(a1,b1,c0:s1,cout1); full_adder(a0,b0,cin:s0,cout0); GG = G3+G2*P3+G1*P2*P3+G0*P1*P2*P3; GP = P0*P1*P2*P3; end module

FigureIII-15.ÉcritureSHDLd’unadditionneur16bitscarry-lookahead.Lesmodulescla4,carry_lookaheadetfulladdersontceuxutilisésdanslaversion4bits,cla4ayantétélégèrementmodifiépourproduirelessignauxGGetGP.

III.4.5. Soustraction

ProblématiquedelasoustractionCommel’addition,lasoustractionpeutêtreeffectuéebitàbit,encommençantparlebitdepoidsfaible.

FigureIII-16.Soustractionenbinairebitàbit.Unbitd’empruntestpropagédesbitsdepoidsfaiblesverslesbitsdepoids

forts.

Lebitquiestpropagéderangenrangestunbitd’emprunt:ilvaut1lorsqueaiestpluspetitquebi,ouplusexactementlorsqueaiestpluspetitquebipluslebitd’empruntdel’étageprécédent.Chaquerangdesoustractionestuncircuitcombinatoireà3entréeset2sortiesappelésoustracteurcompletdontlatabledevéritéestdonnéeFigureIII-17.OnanotéEEl’empruntentrant,quivientdurangprécédentetESl’empruntsortantquiestpasséaurangsuivant.

Page 46: INTRODUCTION A L ARCHITECTURE DES ORDINATEURSdiabeto.enseeiht.fr/download/archi/cours/book2_4.5.pdfLa plupart des ordinateurs ont l’organisation générale de la Figure I-1. Figure

46

𝐴 B 𝐸𝐸 𝑆 𝐸𝑆0 0 0 0 00 0 1 1 1

0 1 0 1 10 1 1 0 11 0 0 1 01 0 1 0 0

1 1 0 0 01 1 1 1 1

FigureIII-17.Tabledevéritéd’unsoustracteurcomplet.OnsoustraitBàA;EEestl’empruntentrantetESl’empruntsortant.

OnvoitimmédiatementqueSestleXORdestroisentréesA,BetEE.L’empruntsortantESvaut1lorsqueAvaut0etqu’undesdeuxBouEEvaut1,oulorsqueAvaut1etqueBetEEvalenttouslesdeux1.Ontrouvedonc:𝐸𝑆 = 𝐴 · 𝐵 + 𝐴 · 𝐸𝐸 + 𝐸𝐸 · 𝐵LeschémadusoustracteurcompletetsonécritureSHDLsontdonnésFigureIII-18.

module fullsub(A,B,EE: S,ES) S = /A*/B*EE+/A*B*/EE+A*/B*/EE+A*B*EE ; ES = /A*B + /A*EE + B*EE ; end module

FigureIII-18.Soustracteurcomplet:ladifférenceestunXOR,etilyaretenuelorsqu’unemajoritédessignaux(/A,B,EE)vaut1.

Soustracteurripple-borrowCommeunadditionneurripple-carry,unsoustracteurripple-borrowestforméparchaînagedeplusieursétagesdesoustracteurscomplets.Commelui,ilesttrèssimpledeconception,maisprésenteaussilesmêmesinconvénientsdelenteurdusàlapropagationdessignauxd’emprunt.Lesfiguressuivantesmontrentunadditionneur4bitsripple-borrowetl’écritureSHDLassociée.

FigureIII-19.Schémagénérald’unsoustracteur4bitsripple-borrow.

Page 47: INTRODUCTION A L ARCHITECTURE DES ORDINATEURSdiabeto.enseeiht.fr/download/archi/cours/book2_4.5.pdfLa plupart des ordinateurs ont l’organisation générale de la Figure I-1. Figure

47

Transformationd’unadditionneurensoustracteurOnpeutfairelasoustractionA−Beneffectuantl’additionA+(−B).−Bestobtenuenprenantlecomplémentà2deB,c’estàdirelecomplémentà1deBauquelonajoute1.L’ajout+1peutsefaireenexploitantunsignalderetenueentrante,commeonpeutlevoirsurlafiguresuivante:

FigureIII-20.Additionneur/soustracteurréaliséàpartird’unadditionneur.Lorsquel’entréeADD/SUBvaut0l’additionA+Bestréalisée;lorsqu’ellevaut1,lesXORscalculentlecomplémentà1deBetleforçageà1delaretenueentrantecin

créélecomplémentà2,d’oùlasoustraction.

Cettefiguremontreunadditionneur/soustracteur:siADD/SUBvaut0ileffectueuneaddition;s’ilvaut1lesnXORseffectuentlecomplémentà1duvecteurB,etleforçageà1delaretenueentrantevaconduireàajouter1,doncàconstruirelecomplémentà2deB,doncàréaliserunesoustraction.Onperdmalheureusementlesignalderetenueentrante;laretenuesortantecoutparcontreabienlesensd’uneretenuepourl’addition,etsoninverselesensd’unemprunt,d’oùl’inversionfinalecommandéeparlesignalADD/SUB.LaFigureIII-21donnelecodeSHDLassociépourunadditionneur/soustracteur16bits;ellereprendlemoduleadditionneurcarry-lookahead16bitscla16étudiéàlasectionprécédente.

module addsub16(a[15..0],b[15..0],addsub: s[15..0],cout) bb[15..0] = /addsub*b[15..0] + addsub*/b[15..0]; cla16(a[15..0],bb[15..0],addsub:s[15..0],co); cout=/addsub*co+addsub*/co; end module

FigureIII-21.ÉquationsSHDLd’unadditionneur/soustracteur16bits.Onréutilisel’additionneurcarry-lookahead16bitsétudiéauparavant.

III.4.6. Multiplicateursystolique

ProblématiquedelamultiplicationOnsouhaitemultiplierdeuxnombresdenbitsnonsignés.Lerésultatestsur2nbits,puisquelamultiplicationdesdeuxplusgrandsnombressurnbitsdonne:

(29 − 1)(29 − 1) = 289 − 2 · 29 + 1 < 289 − 1Laproblématiqueestlamêmequepourl’addition:puisqu’ils’agitd’uncalculcombinatoire,ilpeutsefaireenthéoriesousformed’unesommedeminterms,enuneétapedepropagation(enconsidérantunefoisencorequel’unitédepropagationestlasommedeproduit).Maisbiensûrenpratique,leséquationsàimplémenterseraientbeaucouptropcomplexes.Enbinaire,laméthodelaplusdirectepoureffectuerunemultiplicationconsisteàlaposercommeàl’école:

Page 48: INTRODUCTION A L ARCHITECTURE DES ORDINATEURSdiabeto.enseeiht.fr/download/archi/cours/book2_4.5.pdfLa plupart des ordinateurs ont l’organisation générale de la Figure I-1. Figure

48

FigureIII-22.Exempledemultiplicationdenombresnonsignésde4bits.

Cetteopérationestplusfacileàfaireenbinairequ’endécimal,cariln’yapasàconnaîtresestablesdemultiplication!Plusprécisément,lorsqu’onmultiplieunchiffre𝑎\ avecunchiffre𝑏\,onproduit(c’estlecasdeledire)𝑎\. 𝑏\ (FigureIII-23).Ilresteensuiteàfairelasommedesproduitspartielsainsiobtenus.Quandonfaitcettesommeàlamain,onlafaitcolonneparcolonne,encommençantparlacolonnelaplusàdroite,etonadditionneàlafoistousleschiffresquiapparaissentdansunecolonneetlaoulesretenuesquiproviennentdelacolonneprécédente.Ilpeuteneffetyavoiruneretenuesupérieureà1lorsdelasommationdeschiffresd’unecolonne,contrairementaucasdel’addition.L’idéedumultiplicateursystolique(matriciel)consisteàréalisercettesommedesproduitspartielsdansunematricedecellulesquialamêmeformequelesrangéesàajouter(figureII.47).

FigureIII-23.(a)Lesretenuespeuventêtrepropagéesàunniveaulocal,etnonàl’échelledetoutelacolonne.(b)entrées

etsortiesauniveaud’unecellule.

Chaquefoisqu’unecelluleproduituneretenue,elleestpasséedirectementàlacolonneimmédiatementàgauche,unrangplusbas(situation(a)).Cettetechniquepermetdenepaslaisserlesretenuess’accumuleràchaquecolonne,enlestraitantsimmédiatementàunniveaulocal.Chaquecelluledoitfairel’additiondetroistermes:leproduitpartiel𝑎\. 𝑏\,lasommeduniveauprécédent,etlaretenuequiprovientdelacelluleenhautàdroite(situation(b)).Unadditionneurcompletpermetd’effectuercettesomme,quiestpasséeàlacelluleimmédiatementenbas,etdecalculeruneretenueàpasseràlacelluleenbasàgauche(FigureIII-24).

Page 49: INTRODUCTION A L ARCHITECTURE DES ORDINATEURSdiabeto.enseeiht.fr/download/archi/cours/book2_4.5.pdfLa plupart des ordinateurs ont l’organisation générale de la Figure I-1. Figure

49

FigureIII-24.Multiplicateursystolique:chaquecelluleestunadditionneurcomplet.

Leschémagénérald’untelmultiplicateurestdonnéFigureIII-25.Lescellulesontlamêmedispositionquelasommedestermespartiels,avecunrecadrageàdroite.Onremarqueraladernièrerangée,quifournitlesbitsdepoidsfortsdurésultatfinal𝑠o. . 𝑠i.Lesbitsdepoidsfaibles𝑠e. . 𝑠aproviennentquantàeuxdescellulesdelacolonnededroite.

FigureIII-25.Schémagénérald’unmultiplicateursystolique4bitsx4bitsvers8bits.

LetexteSHDLcorrespondantàceschémaestlesuivant:

Page 50: INTRODUCTION A L ARCHITECTURE DES ORDINATEURSdiabeto.enseeiht.fr/download/archi/cours/book2_4.5.pdfLa plupart des ordinateurs ont l’organisation générale de la Figure I-1. Figure

50

module multsyst(a[3..0], b[3..0]: s[7..0])

// première rangée ; produit s0 p30=a[3]*b[0]; p20=a[2]*b[0]; p10=a[1]*b[0]; p00=a[0]*b[0]; fulladder(0,0,p30:s30,c30); fulladder(0,0,p20:s20,c20); fulladder(0,0,p10:s10,c10); fulladder(0,0,p00:s[0],c00);

// deuxième rangée ; produit s1 p31=a[3]*b[1]; p21=a[2]*b[1]; p11=a[1]*b[1]; p01=a[0]*b[1]; fulladder(c30,0,p31:s31,c31); fulladder(c20,s30,p21:s21,c21); fulladder(c10,s20,p11:s11,c11); fulladder(c00,s10,p01:s[1],c01);

// troisième rangée ; produit s2 p32=a[3]*b[2]; p22=a[2]*b[2]; p12=a[1]*b[2]; p02=a[0]*b[2]; fulladder(c31,0,p32:s32,c32); fulladder(c21,s31,p22:s22,c22); fulladder(c11,s21,p12:s12,c12); fulladder(c01,s11,p02:s[2],c02);

// quatrième rangée ; produit s3 p33=a[3]*b[3]; p23=a[2]*b[3]; p13=a[1]*b[3]; p03=a[0]*b[3]; fulladder(c32,0,p33:s33,c33); fulladder(c22,s32,p23:s23,c23); fulladder(c12,s22,p13:s13,c13); fulladder(c02,s12,p03:s[3],c03);

// rangée du total final pour s7..s4 fulladder(0,c33,0:s[7],c3x); fulladder(s33,c23,0:s[6],c2x); fulladder(s23,c13,0:s[5],c1x); fulladder(s13,c03,0:s[4],c0x); end module

FigureIII-26.ÉcritureSHDLd’unmultiplicateursystolique4bitsx4bits.

Onvoitfacilementquecemultiplicateur4x4nécessite6tempsdepropagation(unité:sommedetermes).Defaçonplusgénérale,unmultiplicateursystoliquenbitsxnbitsnécessiten+2tempsdepropagation.C’estdoncuneméthodeassezefficace,quiestfacileàimplémenterdansdescircuitsmatricielstelsqueCPLDsetFPGAs.

III.4.7. Divisionentière

ProblématiquedeladivisionCommepourlamultiplication,onvaessayerdeconcevoirunréseaudecellulesquiréaliseunedivisionnonsignéeenutilisantlaméthodeeuclidienne.Prenonsunexemple:

Page 51: INTRODUCTION A L ARCHITECTURE DES ORDINATEURSdiabeto.enseeiht.fr/download/archi/cours/book2_4.5.pdfLa plupart des ordinateurs ont l’organisation générale de la Figure I-1. Figure

51

FigureIII-27.Exemplededivisioneuclidienneenbinaire.

Onaréaliséiciunedivisionnonsignée8bits/4bits->8bits.Ledividendeest𝑝o. . 𝑝a=11010101012=213etlediviseurest𝑑e. . 𝑑a=10112=11;ontrouveunquotient𝑞o. . 𝑞a=000100112=19etunreste𝑟e. . 𝑟a=01002=4.Onvoitquelenombred’étagesdecettedivisionestégalàlalargeurdudividende,8dansl’exemple.Àchaqueétape,oneffectueunesoustractionentreuntermecourantetlediviseur.Audépart,cetermecourantestlepoidsfortdudividendecomplétéde4zérosàgauche.Lediviseurestégalementcomplétéd’unzéroàgaucheetc’estunesoustractionsur5bitsquiestréalisée.Ilyaalorsdeuxcas:

• lasoustractiondonneunrésultatnégatif,signaléparlebitd’empruntà1;onnedoitalorspasprendresonrésultatpourletermecourant,maislelaissertelquel.Onluirajouteraàdroiteunbitsupplémentairedudividende,àl’étagesuivant.Onajouteunzéroàdroiteauquotient.

• lasoustractiondonneunrésultatpositif,signaléparlebitd’empruntà0;onremplaceletermecourantparlerésultatdecettesoustraction,etonluiajouteraàdroiteunbitsupplémentairedudividende,àl’étagesuivant.Onajouteun1àdroiteauquotient.

Lereste𝑟e. . 𝑟aestlavaleurdutermecourantaprèsladernièreétape.

StructuredudiviseurOnsouhaiteainsiréaliserundiviseur2nbits/nbits->2nbits;onvaprendreicicommedansl’exemplen=4,maislatechniqueestbiensûrgénéralisableàtoutevaleurden.Lafiguresuivantemontrelastructurenécessairedudiviseur.

Page 52: INTRODUCTION A L ARCHITECTURE DES ORDINATEURSdiabeto.enseeiht.fr/download/archi/cours/book2_4.5.pdfLa plupart des ordinateurs ont l’organisation générale de la Figure I-1. Figure

52

FigureIII-28.Structuredudiviseurnonsigné8bits/4bits->8bits.Àchaqueétageontestesionpeutsoustrairelediviseurautermecourant.Lesbitsduquotientsontlesinversesdesbitsd’empruntdessoustractions;leresteestla

valeurdutermecourantaprèsladernièreétape.

Àchaqueétageonréaliselasoustractionentreletermeissudel’étageprécédentet𝑑e. . 𝑑a.Onutilisepourceladessoustracteurs5bitssansretenueentrante,etavecuneretenuesortante;onavuauxsectionsprécédentescommentlesréaliser.Àchaqueétageilfautaussiconstruireletermecourant,enfonctiondesdeuxcasexaminésdansladiscussionprécédenteetdéterminésparlavaleurdubitd’empruntdelasoustraction.Ondevrapourcelautiliserdesmultiplexeursdontlacommandeseralebitd’emprunt.LafiguresuivantedonnelecodeSHDLcompletassociéàcediviseur.

Page 53: INTRODUCTION A L ARCHITECTURE DES ORDINATEURSdiabeto.enseeiht.fr/download/archi/cours/book2_4.5.pdfLa plupart des ordinateurs ont l’organisation générale de la Figure I-1. Figure

53

module div8(p[7..0],d[3..0]: q[7..0],r[3..0]) // soustracteur sub5(0,0,0,0,p[7],0,d[3],d[2],d[1],d[0]:x74,x73,x72,x71,x70,nq7); q[7]=/nq7; // multiplexeur s74=nq7*z+/nq7*x73; s73=nq7*z+/nq7*x73; s72=nq7*z+/nq7*x72; s71=nq7*z+/nq7*x71; s70=nq7*p7+/nq7*x70; sub5(s73,s72,s71,s70,p[6],0, d[3],d[2],d[1],d[0]:x64,x63,x62,x61,x60,nq6); q[6]=/nq6; s64=nq6*s73+/nq6*x64; s63=nq6*s72+/nq6*x63; s62=nq6*s71+/nq6*x62; s61=nq6*s70+/nq6*x61; s60=nq6*p6+/nq6*x60; ... // code analogue pour q4,...,q1 ... sub5(s13,s12,s11,s10,p0,0, d[3],d[2],d[1],d[0]:x04,x03,x02,x01,x00,nq0); q[0]=/nq0; s04=nq0*s13+/nq0*x04; r[3]=nq0*s12+/nq0*x03; r[2]=nq0*s11+/nq0*x02; r[1]=nq0*s10+/nq0*x01; r[0]=nq0*p0+/nq0*x00; end module

FigureIII-29.ÉcritureSHDLd’undiviseurnonsigné8bits/4bits->4bits.

III.4.8. ComparateursL’opérationdecomparaisonentrenombresentiersestfondamentaledansunordinateur.Sionsouhaitecomparerdeuxnombresdenbits,l’interfacegénéralequ’onpeututiliserestcelledelaFigureIII-30.

FigureIII-30.Interfaced’uncomparateursurnbits.UnesortieindiquequeA=B,uneautreindiquequeA>B.

UnesortieSUPindiquequeA>B,l’autreEQindiquequeA=B.AvoircesdeuxsortiespermetdetoutsavoirsurlespositionsrespectivesdeAetB:

• 𝐴 > 𝐵:SUP=1.• 𝐴 ≥ 𝐵:SUP=1ouEQ=1.• 𝐴 = 𝐵:EQ=1• 𝐴 < 𝐵:SUP=0etEQ=0.• 𝐴 ≤ 𝐵:SUP=0.

Ilfautmaintenantsavoirsilesnombresquel’oncomparesontdesnombresentiersnaturels,oudesnombresrelatifscodésencomplémentà2.Eneffet,siA=1111etB=0101,unecomparaisonnon

Page 54: INTRODUCTION A L ARCHITECTURE DES ORDINATEURSdiabeto.enseeiht.fr/download/archi/cours/book2_4.5.pdfLa plupart des ordinateurs ont l’organisation générale de la Figure I-1. Figure

54

signéevadonnerA>B(carA=15etB=5),alorsqu’unecomparaisonsignéedonneraA<B(carA=−1etB=+5).

ComparateurnonsignéSupposonsqueAetBsoientcodésenbinairepur,parexemplesur4bits.Oncommenced’abordparcomparerleurspoidsfortsA3etB3;siceluideAestplusgrandqueceluideB,onpeutconclureSUP=1;sinonSUPnepeutvaloir1quesiA3=B3etquesiA2..A0>B2..B0.OnaainsiunedéfinitionrécursivedeSUP:

𝑆𝑈𝑃 = (𝐴3 > 𝐵3) + (𝐴3 = 𝐵3) · (𝐴2. . 𝐴0 > 𝐵2. . 𝐵0)𝑆𝑈𝑃 = (𝐴3 > 𝐵3) + (𝐴3 = 𝐵3) · ((𝐴2 > 𝐵2) + (𝐴2 = 𝐵2) · (𝐴1. . 𝐴0 > 𝐵1. . 𝐵0))𝑆𝑈𝑃 = (𝐴3 > 𝐵3) + (𝐴3 = 𝐵3) · ((𝐴2 > 𝐵2) + (𝐴2 = 𝐵2) · ((𝐴1 > 𝐵1) + (𝐴1

= 𝐵1) · (𝐴0 > 𝐵0)))Ai>Bicorrespondenfaitàl’uniquesituationAi=1etBi=0ets’exprimedoncAi−Bi.PourAi=Bi,onpeututiliserlefaitqu’unXORestunopérateurdedifférence,etdoncquesoninverseestunopérateurdecoïncidence:(𝐴\ = 𝐵𝑖) = 𝐴w ⊕ 𝐵\ = 𝐴\ · 𝐵\ + 𝐴w · 𝐵w

𝑆𝑈𝑃 = 𝐴e𝐵e + 𝐴e ⊕ 𝐵e · (𝐴8𝐵8 + 𝐴8 ⊕ 𝐵8 · (𝐴6𝐵6 + 𝐴6 ⊕ 𝐵6 · 𝐴a𝐵a))LecodeSHDLcorrespondantest:

module cmpu4(a[3..0], b[3..0]: sup, eq) sup=a[3]*/b[3]+eq3*sup2; eq3=a[3]*b[3]+/a[3]*/b[3]; sup2=a[2]*/b[2]+eq2*sup1; eq2=a[2]*b[2]+/a[2]*/b[2]; sup1=a[1]*/b[1]+eq1*a[0]*/b[0]; eq1=a[1]*b[1]+/a[1]*/b[1]; eq0=a[0]*b[0]+/a[0]*/b[0]; eq=eq3*eq2*eq1*eq0; end module

ComparateursignéUnecomparaisonsignéeestunpeuplusdélicatequ’unecomparaisonnonsignée;l’essentieldelacomparaisonsejoueenexaminantlessignes𝑎9_6et𝑏9_6destermes𝐴 = 𝑎9_6. . 𝑎aet𝐵 =𝑏9_6. . 𝑏aàcomparer:

• siA<0(𝑎9_6 = 1)etB>0(𝑏9_6 = 0)alorslacomparaisonestimmédiate:SUP=0etEQ=0.

• siA>0 𝑎9_6 = 0 etB<0(𝑏9_6 = 1)alorslacomparaisonestimmédiate:SUP=1etEQ=0.

• siA>0 𝑎9_6 = 0 etB>0(𝑏9_6 = 0)alorsilsuffitdecomparerlesn−1bitsdepoidsfaibles.

• siA<0(𝑎9_6 = 1)etB<0(𝑏9_6 = 1)alorsilsuffitégalementdecomparerlesn−1bitsdepoidsfaibles.Eneffet,lesnombresdel’intervalle[2n−1,0]s’écriventencomplémentà2:[1000..000,1000..001,1111..111]etonvoitquelesn−1bitsdepoidsfaibleévoluentdefaçoncroissante.

OnareprésentésurlaFigureIII-31uncomparateursignésur5bitsutilisantuncompteurnonsignéde4bits.Unmultiplexeur4vers1sépareles4situationsdécrites.

Page 55: INTRODUCTION A L ARCHITECTURE DES ORDINATEURSdiabeto.enseeiht.fr/download/archi/cours/book2_4.5.pdfLa plupart des ordinateurs ont l’organisation générale de la Figure I-1. Figure

55

module cmps5(a[4..0],b[4..0]: sup, eq) cmpu4(a[3..0], b[3..0]: sup1, eq1); mux4(sup1, 1, 0, sup1, a[4], b[4]: sup); eq= a[4]*b[4]*eq1+/a[4]*/b[4]*eq1; eq=eq4*eq1; end module

FigureIII-31.Comparateursignésur5bits.Silessignesa4etb4sontdifférents,lacomparaisonestimmédiate;s’ilssontégauxoncompareennonsignéles4bitsdepoidsfaibles.

AssemblagedecomparateursnonsignésIlestfaciledechaîner2comparateursnonsignésdenetmbitspourformeruncomparateurnonsignéden+mbits(figureII.57).

module cmpu(a[9..0], b[9..0]: sup, eq) cmpu5(a[9..5], b[9..5]: sup1, eq1); cmpu5(a[4..0], b[4..0]: sup2,eq2); eq=eq1*eq2; sup=sup1+eq1*sup2; end module

FigureIII-32.Associationdedeuxcomparateursnbitsnonsignés.Lerésultatformeuncomparateur2nbitsaveclemêmeinterface.

Oncompared’abordlesnbitsdepoidsforts;siceuxdeAsontplusgrandsqueceuxdeB,leSUPfinalestassertéautraversduOU.SilespoidsfortsdeAetceuxdeBsontégaux,oncomparelesmbitsdepoidsfaiblesetonconclue.LasortiefinaleEQestquantàelleassertéelorsquelesdeux

Page 56: INTRODUCTION A L ARCHITECTURE DES ORDINATEURSdiabeto.enseeiht.fr/download/archi/cours/book2_4.5.pdfLa plupart des ordinateurs ont l’organisation générale de la Figure I-1. Figure

56

sortiesEQsontassertées.OnareprésentéenfigureII.58lecodeSHDLd’uncomparateurnonsignésur10bits,forméparl’assemblagededeuxcomparateursnonsignésde5bits.LasortiedemoduleEQaétéessentielleicipourpermettred’associerlescircuits.Parailleurs,lenouveaumoduleforméexposelemêmeinterfacequesesparties:AetBenentrées,etSUPetEQensorties,cequipermetànouveauetrécursivementd’associercescircuits.Commedanslesdisciplineslogiciellesdel’informatique,ilestintéressantdetrouverlabonneinterfaceàunmodule,quivapermettreunebonneréutilisation.

III.5. Exercicescorrigés

Exercice1:conversionsÉcrire54321enbinaire,puisenhexadécimal.

SolutionOnpeutsereporteràlatabledonnéeenannexeApourobtenirlalistedespremièrespuissancesde2.Laplusgrandequisoitinférieureà54321est215=32768.Onpeutécrirealors:

54321=215+21553.Onrecommenceavec21553:ilcontient214=16384,etilreste21553-16384=5169,donc:

54321=215+214+5169.5169contient212=4096,reste1073:

54321=215+214+212+1073.1073contient210=1024,reste49:

54321=215+214+212+210+49.Encontinuantceprocessus,ontrouve:

54321=215+214+212+210+25+24+20.L’écriturebinaireestalors:

54321=11010100001100012Pourtrouverl’écriturehexadécimale,onregroupelesbitsparpaquetsde4:

54321=1101.0100.0011.00012Onconvertitensuitechaquegroupeenunchiffrehexadécimaléquivalent:

54321=D43116

Exercice2:addition1. Donnerl’intervalledesvaleurspossiblespourdesnombresnonsignéscodésenbinairepur

sur11bits.1. Donnerl’intervalledesvaleurspossiblespourdesnombressignéscodésencomplémentà2

sur11bits.2. Effectuerlasommeenbinaire:11012+01112etinterpréterlerésultatenarithmétique

signéeetnonsignée.

Solution1. Intervalledesvaleurspossiblesenbinairepursur11bits.

Avec11bits,lenombredecombinaisonspossiblesest211=2048.L’intervalledesvaleursestdonc:[0,2047].

2. Intervalledesvaleurspossiblesencomplémentà2sur11bits.Onavudanslechapitreprécédentquelecodageencomplémentà2étaitéquilibré,c’estàdirequ’ilcodeautantdenombresstrictementnégatifsquedenombrespositifsounuls.Pourrespectercetéquilibreavec2048codes,ilnousfautnécessairement1024codespositifsounulset1024codesstrictementnégatifs,soitl’intervalle:[-1024,+1023].

3. Sommebinaire11012+01112.

Page 57: INTRODUCTION A L ARCHITECTURE DES ORDINATEURSdiabeto.enseeiht.fr/download/archi/cours/book2_4.5.pdfLa plupart des ordinateurs ont l’organisation générale de la Figure I-1. Figure

57

Eneffectuantlasommebitàbit,ontrouve01002avec1deretenuesortante.Enarithmétiquenonsignée,laretenuedoitêtrepriseencompte,etellesignaleundébordement;onpeuttoutdemêmeintégrercebitderetenuecommebitdepoidsfortdurésultat.Onadoncfaitlasomme13+7etontrouve101002,soitlavaleurattendue20.Enarithmétiqueencomplémentà2,laretenueestignorée.Lesnombresajoutéssont-3et+7etlerésultatest+4,cequiestégalementcorrect.Undébordementétaitimpossibleici,caronajoutaitunnombrepositifàunnombrenégatif.

Exercice3:simplificationsalgébriquesSimplifieralgébriquement:

1. 𝐹6 = 𝐴𝐵𝐶 + 𝐴𝐶 + 𝐴𝐵 + 𝐴𝐵𝐶2. 𝐹2 = 𝐴𝐵𝐶𝐷 + 𝐴𝐵𝐷 + 𝐴𝐶 + 𝐵𝐶 + 𝐴𝐶3. 𝐹3 = 𝐴 + 𝐵𝐶 + 𝐴𝐷𝐸 + 𝐴𝐵𝐶𝐷𝐸 + 𝐵𝐶𝐷𝐸 + 𝐴𝐶𝐷

Solution1. 1.𝐹6 = 𝐴𝐵𝐶 + 𝐴𝐶 + 𝐴𝐵 + 𝐴𝐵𝐶

Icidestermesdisparaissentcarilssontplusspécifiquesqued’autres.Parexemple𝐴𝐵𝐶estplusspécifiqueque𝐴𝐵etlepremierdisparaîtauprofitdudeuxième.Delamêmefaçon,𝐴𝐵𝐶estplusspécifiqueque𝐴𝐶etdisparaît.Ona:𝐹6 = 𝐴𝐶 + 𝐴𝐵

2. 𝐹2 = 𝐴𝐵𝐶𝐷 + 𝐴𝐵𝐷 + 𝐴𝐶 + 𝐵𝐶 + 𝐴𝐶𝐹2 = 𝐴𝐵(𝐶𝐷 + 𝐷) + 𝐴𝐶 + 𝐵𝐶 + 𝐴𝐶Aveclethéorèmed’absorption,𝐶𝐷 + 𝐷 = 𝐶 + 𝐷,donc:𝐹2 = 𝐴𝐵𝐷 + 𝐴𝐵𝐶 + 𝐴𝐶 + 𝐵𝐶 + 𝐴𝐶Parailleurs,+𝐴𝐶 = 𝐶,donc:𝐹2 = 𝐴𝐵𝐷 + 𝐴𝐵𝐶 + 𝐵𝐶𝐶𝐹2 = 𝐴𝐵𝐷 + 𝐴𝐵𝐶 + 𝐶Onpeutencoreutiliserlethéorèmed’absorptionsur𝐴𝐵𝐶 + 𝐶:𝐹2 = 𝐴𝐵𝐷 + 𝐴𝐵 + 𝐶𝐹2 = 𝐴𝐵 + 𝐶

3. 𝐹3 = 𝐴 + 𝐵𝐶 + 𝐴𝐷𝐸 + 𝐴𝐵𝐶𝐷𝐸 + 𝐵𝐶𝐷𝐸 + 𝐴𝐶𝐷Ainclue𝐴𝐷𝐸et,donc:𝐹3 = 𝐴 + 𝐵𝐶 + 𝐵𝐶𝐷𝐸 + 𝐶𝐷(absorptionentreAet𝐴𝐶𝐷)𝐹3 = 𝐴 + 𝐵𝐶 + 𝐷(𝐵𝐶𝐸 + 𝐶)𝐹3 = 𝐴 + 𝐵𝐶 + 𝐷(𝐵𝐸 + 𝐶)(absorptionde𝐶)𝐹3 = 𝐴 + 𝐵𝐶 + 𝐵𝐷𝐸 + 𝐶𝐷AvecdestablesdeKanaugh,dessimplificationsnonadjacentesdonneraientlemêmerésultat.

Exercice4:circuitincrémenteurConcevoiruncircuitcombinatoireprenantenentréeunnombrebinairea3…a0etdonnantensortieb3…b0lavaleurd’entréeincrémentéede1.ÉcrirelecodeSHDLcorrespondant.

SolutionL’algorithmedebasedel’incrémentationaétédonnéensection4.Lebitdepoidsfaibleb0esttoujoursinverséparrapportàa0.Ensuite,bnestl’inversedeansietseulementsitouslesbitsquisontàladroitedeanvalent1,soitlorsquean−1…a0=1.Onadoncuneinversioncommandéeparcettevaleur,etonavuensection4queleXORestlaporteadaptéeàcetteopération:𝑏9 = 𝑎9 ⊕(𝑎9_6 … 𝑎a)

Page 58: INTRODUCTION A L ARCHITECTURE DES ORDINATEURSdiabeto.enseeiht.fr/download/archi/cours/book2_4.5.pdfLa plupart des ordinateurs ont l’organisation générale de la Figure I-1. Figure

58

Finalement,sur4bits:𝑏a = 𝑎a𝑏6 = 𝑎6 ⊕ 𝑎a𝑏8 = 𝑎6 ⊕ (𝑎6𝑎a)𝑏e = 𝑎6 ⊕ (𝑎8𝑎6𝑎a)Exprimésousformedesommesdetermes:𝑏a = 𝑎a𝑏6 = 𝑎6𝑎a + 𝑎6𝑎a𝑏8 = 𝑎8𝑎6𝑎a + 𝑎8𝑎6𝑎a = 𝑎8𝑎6𝑎a + 𝑎8(𝑎6 + 𝑎a) = 𝑎8𝑎6𝑎a + 𝑎8𝑎6 + 𝑎8𝑎a𝑏e = 𝑎e𝑎8𝑎6𝑎a + 𝑎e𝑎8𝑎6𝑎a = 𝑎e𝑎8𝑎6𝑎a + 𝑎e𝑎8 + 𝑎e𝑎6 + 𝑎e𝑎aFinalement,lemoduleSHDLcorrespondantest:

module incr(a[3..0]: b[3..0]) b[0]=/a[0]; b[1]=/a[1]*a[0]+a[1]*/a[0]; b[2]=/a[2]*a[1]*a[0]+a[2]*/a[1]+a[2]*/a[0]; b[3]=/a[3]*a[2]*a[1]*a[0]+a[3]*/a[2]+a[3]*/a[1]+a[3]*/a[0]; end module

Page 59: INTRODUCTION A L ARCHITECTURE DES ORDINATEURSdiabeto.enseeiht.fr/download/archi/cours/book2_4.5.pdfLa plupart des ordinateurs ont l’organisation générale de la Figure I-1. Figure

59

ChapitreIV. ElementsdelogiqueséquentielleIV.1. Définition

Uncircuitestditséquentiel,silesvaleursdesessortiesnedépendentpasquedesvaleursdesesentrées.C’estdonclecontraired’uncircuitcombinatoire,dontlesvaleursdessortiesnedépendaientquedecellesdesesentrées,avecunepropagationsansretourarrièredessignauxdesentréesverslessorties.Àl’inverse,lessortiesd’uncircuitséquentieldépendentnonseulementdesvaleursdesentréesaumomentprésent,maisaussid’unétatinternequidépenddel’historiquedesvaleursd’entréesprécédentes.Envertudecequenousavionsdémontrépourlescircuitscombinatoires,celaimpliqueunrebouclageversl’arrièredecertainssignauxinternesaucircuit(Erreur!Nousn’avonspastrouvélasourcedurenvoi.).

FigureIII-33.Circuitséquentiel:certainssignauxinternesousortiesrebouclentenarrière.

Cetypedecircuitpeutdonnerlieuàdesfonctionnementstrèscomplexes;ilpeutégalementêtreinstabledanscertainesconfigurations.Plusencorequepourlescircuitscombinatoires,desméthodespourmaîtriserleurcomplexitésontnécessaires.Unedesvoiespourlasimplificationdeleurconceptionconsisteàsynchroniserleschangementsd’étatssurlesfrontsd’unehorlogeuniqueetglobale,etcelaconduitàl’étudedescircuitsséquentielsditssynchronespurs,qu’onétudieraprincipalementdanscelivre.

IV.2. LatchRSLanotiondecircuitséquentielavecsesétatsinternesincorporelanotiondemémoire(retoursursonpassé).LacellulemémoirelaplussimpleestlelatchRS(RSétantlesinitialesdeReset-Set),parfoisappelébistable(FigureIII-34).

Page 60: INTRODUCTION A L ARCHITECTURE DES ORDINATEURSdiabeto.enseeiht.fr/download/archi/cours/book2_4.5.pdfLa plupart des ordinateurs ont l’organisation générale de la Figure I-1. Figure

60

module latch_rs(s,r: q) q=/nq*/r ; nq=/q*/s ; end module

FigureIII-34.LatchRS.

Cecircuitaclairementdesconnexionsquireviennentenarrière.Ils’agitd’unecelluledemémorisationde1bit,dontlemoded’emploiestlesuivant:

1. lacelluleestenmode’lecture’lorsquelesentréesRetSsonttouteslesdeuxà0;lapaire𝑄, 𝑄estalorsnécessairementdansundesdeuxétats(0,1)ou(1,0),caronpeutconstaterquecesdeuxétats,etseulementeux,s’auto-entretiennentlorsqueRetSvalent0.

2. pourmémoriser0(c’estàdirequelessortiessoientdansl’état𝑄, 𝑄 = (0, 1)lorsquelacellulereviendradanslemode’lecture’),ilfautappliquerun1surR(reset),puisleremettreà0.Quelqu’aitétésonétatantérieur,lacelluleseretrouvealorsdansl’étatauto-stable𝑄, 𝑄 = (0, 1).

3. pourmémoriser1(c’estàdirequelessortiessoientdansl’état𝑄, 𝑄 = (1, 0)lorsquelacellulereviendradanslemode’lecture’),ilfautappliquerun1surS(set),puisleremettreà0.Quelqu’aitétésonétatantérieur,lacelluleseretrouvealorsdansl’étatauto-stable𝑄, 𝑄 = (1, 0).

Cecircuitestbienséquentiel:sessortiesnedépendentpasuniquementdesesentrées.Lanotiond’étatinterneesticiclairementprésentesouslaformed’unbitmémorisé.

Graphed’étatsLesmodesdefonctionnementdécritsprécédemmentpeuventêtrerésumésdanslegraphedelaFigureIII-35.Untelgrapheestappelégraphed’étatducircuit;ilsynthétisecomplètementsonfonctionnement.Lesdeuxnœudscorrespondentauxdeuxétatsstablesducircuit;lesarcsmontrentlespassagesducircuitd’unétatversunautrelorsd’unchangementdesvaleursdesentrées.LavaleurdelasortieQestassociéeàchacundesdeuxétats:0pourl’étataet1pourl’étatb.Onnereprésentequelesétatsstablesducircuit,etnonlesconfigurationsintermédiairesfugitivesentredeuxétats.

Page 61: INTRODUCTION A L ARCHITECTURE DES ORDINATEURSdiabeto.enseeiht.fr/download/archi/cours/book2_4.5.pdfLa plupart des ordinateurs ont l’organisation générale de la Figure I-1. Figure

61

FigureIII-35.Graphed’étatsd’unlatchRS.Lesnœudscorrespondentauxétatsstablesducircuit,etlesarcsreprésentent

lestransitionsentrelesétats.

IV.3. Frontsetniveaux;signauxd’horlogeLeniveaud’unsignal,c’estsavaleur0ou1.Onparledefrontlorsd’unchangementdeniveau:frontmontantlorsquelesignalpassede0à1,frontdescendantlorsqu’ilpassede1à0.Enpratique,cestransitionsnesontpastoutàfaitinstantanées,maisleurduréeesttrèsinférieureauxtempsdepropagationdesportes(FigureIII-36).

FigureIII-36.Frontsetniveauxd’unsignalréel,etleuréquivalentlogiquesimplifié.

Unehorlogeestunsignalpériodique,produitàpartird’unquartzoud’unréseauRC.Ilproduitdoncunesuccessionpériodiquedefrontsmontantset/oudescendants.Commeenphysiqueouenmathématiques,onemploielestermesdefréquenceetdepériodepourqualifierlachronologied’unsignald’horloge;elleagénéralementuneformecarrée,maiscen’estpasobligatoire.

IV.4. Circuitsséquentielssynchronesetasynchrones:définitions

CircuitsasynchronespursOnappellecircuitsséquentielsasynchronespursdescircuitsséquentielssanssignauxd’horloge,etdanslesquelscesontleschangementsdevaleurdesentréesquisontàlasourcedeschangementsd’états.LelatchRSestunexempledecircuitasynchronepur:iln’estpasgouvernéparunehorloge,etcesontleschangementsdesentréesquiprovoquentleschangementsd’état.

CircuitssynchronespursOnappellecircuitséquentielssynchronespursdescircuitsséquentielsquipossèdentunehorlogeunique,etdontl’étatinternesemodifieprécisémentaprèschaquefront(montantoudescendant)del’horloge.

Page 62: INTRODUCTION A L ARCHITECTURE DES ORDINATEURSdiabeto.enseeiht.fr/download/archi/cours/book2_4.5.pdfLa plupart des ordinateurs ont l’organisation générale de la Figure I-1. Figure

62

Lescircuitsséquentielssynchronespurssontplussimplesàétudieretàconcevoirquelescircuitsséquentielsasynchronespurs,carlemomentdelatransitionestdéfinidel’extérieuretsurunseulsignal.Ilspeuventparcontreêtremoinsrapidesqu’unéquivalentasynchrone,etconsommerplusd’énergie.Eneffet,onserappelle(section3)quelescircuitsCMOSconsommentessentiellementducourantlorsdeschangementsd’états.Uncircuitséquentielsynchroneconsommeraainsiducourantàchaquefrontd’horloge,contrairementàuncircuitasynchronepur.CeteffetesttoutefoisàrelativiseraveccertainscircuitsCMOSdontonabeaucoupabaissélatensiond’alimentation,etpourlesquelslecourantdefuite(consomméaurepos)estprocheducourantdecommutation(consommélorsdeschangements).

AutrescircuitsséquentielsLescircuitsséquentielsquinesont,nisynchronespurs,niasynchronespurs,n’ontpasdedénominationparticulière.Ilssontsouventl’uniondeplusieurssous-ensemblesquisontchacungouvernésdefaçonsynchroneparunehorloge,maisl’interfaceentrecessous-domainesestsouventlacausedeproblèmesdefiabilité.Onn’étudierapasdetelscircuitsdanscetouvrage.

IV.5. Graphesd’étatsConsidéronslefonctionnementducircuitséquentielsynchronedelaFigureIII-37,détecteurdelaséquence’1,0,1’:

FigureIII-37.Détecteurdeséquence1,0,1.

UnesuitedechiffresbinairesarrivesurE,etlesinstantsd’échantillonnage(momentsoùlavaleurdeEestpriseencompte)sontlesfrontsmontantsdeCLK.OnsouhaitequelasortieSvaille1sietseulementsilesdeuxdernièresvaleursdeEsont:1,0,1.Cettespécificationestenfaitimprécise,carelleneditpasexactementàquelmomentparrapportàl’horlogeCLKlasortiedoitprendresavaleur.Ilyadeuxpossibilités:

1. lasortienedépendquedel’étatinterneducircuit,etnepeutchangerquejusteaprèschaquefrontd’horloge.Ellenepourrachangerensuitequ’auprochainfrontd’horloge,mêmesilesentréeschangententretemps.OnappelleschémadeMOOREunetelleconception,etelleconduitaugraphedeMOOREdelaFigureIII-38.

Page 63: INTRODUCTION A L ARCHITECTURE DES ORDINATEURSdiabeto.enseeiht.fr/download/archi/cours/book2_4.5.pdfLa plupart des ordinateurs ont l’organisation générale de la Figure I-1. Figure

63

FigureIII-38.Détecteurdeséquence1,0,1detypeMoore,nonsimplifié.Chaqueétatestassociéàlaréceptiond’unecertaineséquencedes3derniersbits.Seull’étatgprovoquelasortieS=1.

LavaleurdelasortieSestclairementassociéeauxétats,etnepeutdoncchangerqu’aveceux.Leschangementsd’étatseproduisentàchaquefrontdel’horlogeCLK,quin’estpasreprésentéesurlegraphe,maisdontlaprésenceestimplicite.Unarclibellé’0’parexempleindiqueunchangementd’étatlorsqueE=0.

2. lasortiedépenddel’étatinterneducircuitetdesesentrées,etonditalorsqu’ils’agitd’unschémadeMEALY.Pourledétecteurdeséquenceparexemple,lasortieSpourraitvaloir1dèsqueEpasseà1pourladeuxièmefois,avantmêmequesavaleurnesoit’officiellement’échantillonnéeauprochainfrontd’horloge.CelaconduitaugraphedeMEALYdelaFigureIII-39.

FigureIII-39.Détecteurdeséquence1,0,1detypeMealy,nonsimplifié.

L’arclibellé’1/0’deaversbparexempleindiqueunchangementd’étatdeaversblorsqueE=1,avecunevaleurdelasortieS=0.Maisattention:lechangementd’étatneseproduiraqu’auprochainfrontd’horloge,alorsquelechangementdesortieseproduitimmédiatementaprèslechangementdesentrées.

Page 64: INTRODUCTION A L ARCHITECTURE DES ORDINATEURSdiabeto.enseeiht.fr/download/archi/cours/book2_4.5.pdfLa plupart des ordinateurs ont l’organisation générale de la Figure I-1. Figure

64

DifférencesentrelescircuitsdeMOOREetdeMEALYLaprincipaledifférencetientdanslefaitquedansuncircuitdeMEALY,onobtientlessortiesunempsd’horlogeplustôt.ParexempledanslatransitiondecversfpourE=1,lasortieS=1seraéchantillonnable(=mémoriséeetutilisable)aufrontd’horlogesuivant,enmêmetempsquel’étatcourantpasseraàf.DanslecircuitdeMOORE,lasortiepasseraà1aprèslefrontd’horlogesuivant,etneserastableetéchantillonnablequ’aufrontd’horlogeencoreultérieur,c’estàdireuntempsplustardquedanslecircuitdeMEALY.Pourcertainstypesdecircuits,ilestplusfacilededessinerungraphedeMOORE,quicorrespondàunevisionplus’statique’duproblème.Labonnenouvelleestqu’ilexisteuneméthodeautomatiquedetransformationd’ungraphedeMOOREengraphedeMEALY,lorsquel’onveutprofiterdesavantagesdecedernier.

Transformationd’ungraphedeMooreengraphedeMealyOnvoitsurlaFigureIII-40commentunarcdansungraphedeMOOREsetransformeenunarcdansungraphedeMEALYéquivalent.

FigureIII-40.Unarcd’ungraphedeMOOREtransforméenunarcéquivalentd’ungraphedeMEALY.Siavecl’entréeeon

vaenaassociéàunesortieS,alorscettesortiepeutêtredirectementattachéeàl’arc:e/S.

OnadoncuneméthodeautomatiquepourtransformerlesgraphesdeMOOREengraphesdeMEALY,trèsutilecarlesgraphesdeMOOREsontsouventplusfacilesàconcevoir.C’estellequ’onautiliséeparexemplepourtransformerlegraphedeMOOREdelaFigureIII-38engraphedeMEALY(FigureIII-39).

Transformationd’ungraphedeMealyengraphedeMooreCen’estpastoujourspossible,etdoncaucuneméthodegénéralen’existe.LescircuitsdeMEALYsontdoncintrinsèquementplusrichesqueceuxdeMOORE.

IV.6. TablesdetransitionsLestablesdetransitions,encoreappeléestablesdeHuffmannesontriend’autrequ’uneversiontabulairedesgraphesdetransitions.Parexemple,lestablesassociéesauxgraphesdeMOOREetdeMEALYdudétecteurdeséquencesontreprésentéesFigureIII-41etFigureIII-42.

Page 65: INTRODUCTION A L ARCHITECTURE DES ORDINATEURSdiabeto.enseeiht.fr/download/archi/cours/book2_4.5.pdfLa plupart des ordinateurs ont l’organisation générale de la Figure I-1. Figure

65

avant aprèsétat E étata 0 aa 1 bb 0 cb 1 dc 0 ec 1 fd 0 gd 1 he 0 ae 1 bf 0 cf 1 dg 0 eg 1 fh 0 gh 1 h

état Sa 0b 0c 0d 0e 0f 1g 0h 0

FigureIII-41.TabledetransitionsdugraphedeMOOREpourledétecteurdeséquence1,0,1.Àchaquearcdugraphecorrespondunelignedanslatable.Onnoteralatablecomplémentaire,quidonnelessortiesassociéesàchaqueétat.

avant aprèsétat E état Sa 0 a 0a 1 b 0b 0 c 0b 1 d 0c 0 e 0c 1 f 1d 0 g 0d 1 h 0e 0 a 0e 1 b 0f 0 c 0f 1 d 0g 0 e 0g 1 f 1h 0 g 0h 1 h 0

FigureIII-42.TabledetransitionsdugraphedeMEALYpourledétecteurdeséquence1,0,1.Àchaquetransitiondugraphecorrespondunelignedelatable.LavaleurdelasortieSestassociéeàchaquetransition.

SimplificationdestablesdetransitionUnetabledetransitionspermetnotammentderepérerfacilementdesétatséquivalents.UngroupeGd’étatssontditséquivalentssi,pourchaquecombinaisonpossibledesentrées,ilsconduisentàdesétatsdugroupeGaveclesmêmessorties.Onpeutalorsdiminuerlenombred’étatsenremplaçant

Page 66: INTRODUCTION A L ARCHITECTURE DES ORDINATEURSdiabeto.enseeiht.fr/download/archi/cours/book2_4.5.pdfLa plupart des ordinateurs ont l’organisation générale de la Figure I-1. Figure

66

touslesétatsdugroupeGparunseul,puistenterderappliquercetteprocédurederéductionsurl’ensembled’étatsréduit.Parexemple,surlatabledetransitionsprécédenteassociéeaudiagrammedeMOORE,onconstatequeaetesontéquivalents,quecetgsontéquivalents,quedethsontéquivalents.Attention:betfnesontpaséquivalentscar,bienqu’ilsaientmêmesétatssuivants,ilssontassociésàdessortiesdifférentes.Onpeutréécrirelatabledetransitionsensupprimantleslignesassociéesàe,geth,etenremplaçantpartoutepara,gparc,hpard(FigureIII-43).

avant aprèsétat E étata 0 aa 1 bb 0 cb 1 dc 0 ac 1 fd 0 cd 1 df 0 cf 1 d

état Sa 0b 0c 0d 0f 1

FigureIII-43.Tabledetransitionsdudétecteurdeséquence1,0,1aprèsunepremièrephasedesimplification.

Surcettetable,onconstatequebetdsontéquivalents,cequinepouvaitpasêtredéterminéàl’étapeprécédente.LaErreur!Nousn’avonspastrouvélasourcedurenvoi.Leprocessusdesimplifications’arrêteici.Finalement,4étatssuffisentpourcedétecteurdeséquence.Ceux-ciontperdulasignificationqu’ilsavaientinitialementdanslegrapheà8états.LegraphesimplifiéestreprésentéFigureIII-44.

FigureIII-44.GraphedeMOOREsimplifiédudétecteurdeséquence1,0,1

Cetteprocéduredesimplifications’appliqueégalementauxgraphesdeMEALY,encherchantdesidentitésdanslescouplesétat/sortie.Surl’exempleprécédent,onconstatequeaetesontéquivalents,quebetfsontéquivalents,quecetgsontéquivalents,etquedethsontéquivalents.Enprocédantauxsuppressionsetsubstitutionsassociées,ontrouvelanouvelletable(

avant aprèsétat E état Sa 0 a 0a 1 b 0b 0 c 0

Page 67: INTRODUCTION A L ARCHITECTURE DES ORDINATEURSdiabeto.enseeiht.fr/download/archi/cours/book2_4.5.pdfLa plupart des ordinateurs ont l’organisation générale de la Figure I-1. Figure

67

FigureIII-45).

FigureIII-45.Tabledetransitionsdudétecteurdeséquence1,0,1aprèsunedeuxièmephasedesimplification.

Cettefois,onvoitquebetfsontéquivalents(

avant aprèsétat E état Sa 0 a 0a 1 b 0b 0 c 0b 1 b 0c 0 a 0c 1 b 1

FigureIII-46).

avant aprèsétat E état Sa 0 a 0a 1 b 0b 0 c 0b 1 b 0c 0 a 0c 1 b 1

FigureIII-46.TabledetransitionsdeMOOREpourledétecteurdeséquence1,0,1,aprèsunedeuxièmephasedesimplification.

Leprocessuss’arrêteici.Commec’estsouventlecas,legraphedeMEALYestplussimplequelegraphedeMOOREassociéaumêmeproblème,necomportantque3états(FigureIII-47).

b 1 d 0c 0 a 0c 1 b 1d 0 c 0d 1 d 0

avant aprèsétat E état Sa 0 a 0a 1 b 0b 0 c 0b 1 d 0c 0 a 0c 1 b 1d 0 c 0d 1 d 0

Page 68: INTRODUCTION A L ARCHITECTURE DES ORDINATEURSdiabeto.enseeiht.fr/download/archi/cours/book2_4.5.pdfLa plupart des ordinateurs ont l’organisation générale de la Figure I-1. Figure

68

FigureIII-47.GraphedeMEALYsimplifiédudétecteurdeséquence1,0,1

IV.7. BasculessynchronesNotrebutestmaintenantderéaliseràl’aidedecircuitslogiqueslesmachinesséquentiellestellesqu’ellespeuventêtredécritesparlesgraphesd’états.Pourfacilitercettesynthèse,ilaétéimaginédecréerdescomposantsappelésbascules,quiformeraientlesbriquesdebaseàutiliser.Unebasculemémoriseunseulbitetpermetdereprésenterseulementdeuxétatsdistincts,maisl’utilisationd’unvecteurdenbasculespermetdecoderjusqu’à2nétatsdistincts.Parexemple,pourledétecteurdeséquenceanalyséàlasectionprécédente,legraphedeMooresimplifiécomportait4états,etunvecteurdedeuxbasculesvapermettredelesencoder.Parailleurs,pourquetoutunvecteurdebasculesévoluedefaçonfiabled’étatenétat,ilestsouhaitablequechacuned’ellesaituneentréed’horlogereliéeàunehorlogecommune(circuitsynchrone),etnepuissechangerd’étatqu’aumomentprécisd’unfrontdecettehorloge(montantoudescendant),etjamaisentredeuxfronts,mêmesilesautresentréesducircuitsontmodifiéesplusieursfoisentretemps.Detelscircuitssontdeconceptiondifficile;onlesprésentedanscettesection.

IV.7.1. LatchRSactifsurunniveaud’horlogeDanslebutderendresynchronelelatchRSvuprécédemment,onpeutessayerlimiterlapérioded’écriture(FigureIII-48).

FigureIII-48.LatchRSquimémorisesurunniveaudeH

L’étatdececircuitestmodifiablelorsqueH=1,c’estàdiresurunniveaudusignalH.TantqueHestauniveau1,lesmodificationsdeSetdeRvontavoiruneffetsurl’étatdubistable.Untellatchpeutavoircertainesapplications,maisiln’estpasadaptéàlaréalisationdecircuitsséquentielssynchrones,oùleschangementsd’étatsdeleursdifférentespartiesdoiventseproduiredefaçonparfaitementsynchronisée,aumomentprécisdéfiniparunfrontd’unehorlogecommune.Lasectionsuivantevaprésenteruntelcircuit.

IV.7.2. Basculeactivesurfrontd’horlogeNousavonsdoncbesoindecomposantsséquentielsquichangentd’étatsurunfrontd’horloge,etseulementàcemomentprécis.LelatchRSvuàlasectionprécédenteneremplissaitpascettecondition,puisquelebistablepouvaitchangerdevaleurtantqueHétaitauniveau1.Lecircuitde

Page 69: INTRODUCTION A L ARCHITECTURE DES ORDINATEURSdiabeto.enseeiht.fr/download/archi/cours/book2_4.5.pdfLa plupart des ordinateurs ont l’organisation générale de la Figure I-1. Figure

69

laFigureIII-49,quiréalisecequ’onvaappelerunebasculeD(Dpour’delay’),nechanged’étatquantàluiquesurlefrontdescendantdel’horlogeH.

module basculeD(h,d: q) s=/h*/r*/ns ; ns=/s*/d ; r=/nr*/h ; nr=/ns*/r ; q=/r*/nq ; nq=/s*/q ; end module

FigureIII-49.BasculeDsynchrone:l’étatdubistableqnechangequ’aumomentoùhpassede1à0.

Lacompréhensiondétailléedufonctionnementdececircuitestdifficile,etl’utilisationd’unsimulateurtelqueceluideSHDLpeutyaider.Onpeutdéjàremarquerquelorsquehvaut1,onanécessairementR=0etS=0,etdonclebistablefinalquiproduitqestdansl’étatderepos:tantquehvaut1,l’étatinterneqnepeutpaschanger,mêmesidchangedevaleurunnombrequelconquedefois.Lorsquehpassede1à0,onpeutmontrerquelebistableduhautvastockerlavaleurde𝐷etlaplacersurR,etqueceluidubasvastockerlavaleurdeDetlaplacersurS.Onadoncaumomentdufrontdescendantun’set’ouun’reset’dubistablefinal,danslesensdelamémorisationdeladonnéedenentrée.Enfin,etc’estlepointimportant,onpeutmontrerégalementquelorsquehestmaintenuà0,lesvaleursdeRetdeSnepeuventpaschangermêmesidchange,etdoncleschangementsdedn’affectentpaslebistablefinal.Onadoncbiendémontrélapropriétéessentielledececircuit,quiestquesonétatinterneqestaffectédurantlapériodetrèscourteoùl’horlogehpassede1à0,c’estàdiredurantunfrontdescendantdecelleci,etquetousleschangementssurdendehorsdecettepérioden’ontpasd’effetsurq.

IV.7.3. BasculeDUnetellebasculeDestreprésentéecourammentparleschémadelaFigureIII-50.

module test(e,h,reset: x) x:=e ; x.clk=h ; x.rst=reset ; end module

FigureIII-50.Représentationhabituelled’unebasculeDsynchrone.

Onaindiquéégalementl’écritureSHDLassociéeàcettebascule.LesignalderemiseàzéroRSTn’étaitpasprésentsurlaFigureIII-49.Ils’agitd’uneremiseàzéroasynchrone,quiprovoqueleforçageà0ducontenudelabascule,sansqu’ilyaitbesoind’unfrontd’horloge.TantquelesignalRSTestactif(surniveau1surlafigure),labasculeestforcéeà0etsoncontenunepeutpasévoluer.Ils’agitdumêmesignalresetqueceluiquiestprésentsurvotremicro-ordinateur,votretéléphone

Page 70: INTRODUCTION A L ARCHITECTURE DES ORDINATEURSdiabeto.enseeiht.fr/download/archi/cours/book2_4.5.pdfLa plupart des ordinateurs ont l’organisation générale de la Figure I-1. Figure

70

portable,etc.:enl’appliquant,vousremettezdansl’état0touslescomposantsséquentielsdevotremachine.Dupointdevuegraphique,letriangledevantl’entréeCLKindiqueunsignald’horloge.S’ilétaitprécédéd’unrond,celaindiqueraitunehorlogeactivesurfrontdescendant;ensonabsenceelleestactivesurfrontmontant.Delamêmefaçon,unronddevantl’entréeRSTindiqueuneactivitésurniveaubas.LaFigureIII-51illustrecesdifférentessituations.

module test(e,h,reset: x) x:=e ; x.clk=/h ; x.rst=reset ; end module

module test(e,h,reset: x) x:=e ; x.clk=h ; x.rst=reset ; end module

module test(e,h,reset: x) x:=e ; x.clk=/h ; x.rst=/reset ; end module

FigureIII-51.DifférentesbasculesD.(a)horlogesurfrontdescendant.(b)resetactifsurniveaubas.(c)horlogefrontdescendantetresetactifsurniveaubas.

BasculesetlangageSHDLEnSHDL,lanotation’:=’estappeléeaffectationséquentielle,etlessuffixes’.clk’et’.rst’serventàrepérerlessignauxd’horlogeetderemiseàzéro.Deshorlogesactivessurfrontdescendant,oudesresetactifssurniveaubassetraduisentparunsigne’/’devantlenomdusignald’horlogeoudereset.Parailleurs,onnoteraqu’onnepeutpasécrirequelquechosecomme:

x.clk = a*b ; // incorrect Celaimpliqueraitl’existenced’unebasculeetd’uneportecombinatoire,cequidoitsetraduirepardeuxéquationsdistinctes:

x.clk = i ; i = a*b ;

Lorsqu’onécritx.clk = /h; ,onnefaitpasappelàuneportesupplémentaired’inversion:onutiliseunebasculeactivesurfrontdescendant,etdonconn’apasàcréerdelignesupplémentaire.Pourlesmêmesraisons,onnedoitpasécrire:x:=a*b ;,mais:

x := i ; i = a*b ;

Onatoutdemêmelapossibilitéd’écrirex:=/i;,quicorrespondàunebasculeDquichargel’inversedesonentrée,etquisetraduitparlaprésenced’unronddevantl’entréeD(FigureIII-52).

Autresmodifieurs:- .rstpermetunforçageà0asynchrone,c’est-à-direindépendammentdufrontd’horloge.

Ons’ensertgénéralementpourinitialiserlecircuit.s- .setpermetunforçageà1asynchrone,defaçonanalogueà.rst- .enaestuneentrée‘enable’:labasculen’évoluepastantquecetteentréen’estpasactive.

Cemodifieurestfacultatifs.

Page 71: INTRODUCTION A L ARCHITECTURE DES ORDINATEURSdiabeto.enseeiht.fr/download/archi/cours/book2_4.5.pdfLa plupart des ordinateurs ont l’organisation générale de la Figure I-1. Figure

71

module test(e,h,reset:x) x:=e ; x.clk=/h ; x.rst=reset ; end module

module test(e,h,reset:x) x:=/e ; x.clk=h ; x.rst=reset ; end module

(a) (b)

FigureIII-52.Lesdeuxformespossiblesd’unebasculeD.(a)entréenormale.(b)entréeinversée.

Équationd’évolutionL’équationd’évolutiond’unebascule,c’estl’équationdelavaleurqueprendral’étataprèslefrontd’horloge.DanslecasdelabasculeD,c’esttoutsimplementlavaleurprésenteàsonentrée:

𝑄 ∶= 𝐷

IV.7.4. BasculeTToutcommelabasculeD,labasculeT(trigger)mémoriseégalementunbitdefaçonsynchrone,maiselleadesmodalitésdifférentesd’utilisation.Sonschéma,unetabledetransitionssynthétiqueetl’écritureSHDLassociéesontdonnésFigureIII-53.

avant aprèsT Q Q0 𝑥 𝑥1 𝑥 𝑥

module test(e,h,reset: x) x:=/e*x+e*/x ; x.clk=h ; x.rst=reset ; end module

FigureIII-53.BasculeTsynchrone.Lorsquel’entréeTestà0ellenechangepasd’état;lorsquel’entréeTvaut1sonétats’inverse.

L’étatmémorisédelabasculeTs’inverse(aprèslefrontd’horloge)sietseulementsisonentréeTvaut1.LorsquesonentréeTvaut0,cetétatresteinchangé.Elleestdoncadaptéeauxproblématiquesdechangementsd’unevaleuretnonàunsimplestockagecommelabasculeD.Endehorsdesvariationssurlesfrontsd’horlogeetlalignederesetasynchrone,lesdeuxseulesversionspossiblesdelabasculeTsontdonnéesFigureIII-54.

Page 72: INTRODUCTION A L ARCHITECTURE DES ORDINATEURSdiabeto.enseeiht.fr/download/archi/cours/book2_4.5.pdfLa plupart des ordinateurs ont l’organisation générale de la Figure I-1. Figure

72

module test(e,h,reset: x) x:=/e*x+e*/x ; x.clk=h ; x.rst=reset ; end module

module test(e,h,reset: x) x:=e*x+/e*/x ; x.clk=h ; x.rst=reset ; end module

(a) (b)

FigureIII-54.Lesdeuxformespossiblesd’unebasculeT.(a)entréenormale.(b)entréeinversée.Onnoteraladifférenced’écritureenlangageSHDL.

Equationd’évolution𝑄 ∶= 𝑇𝑄 + 𝑇𝑄

Lepremiertermeexprimebienque,siTestà0,Qnechangepas,etquesiTestà1,Qs’inverse.Onretrouvel’écritureSHDLdel’affectationséquentielle.

IV.7.5. BasculeJKCommelesbasculesDetT,labasculeJK(Jack-Kilby)mémoriseunbitdefaçonsynchrone.Sonschéma,satabledetransitionssimplifiéeetl’écritureSHDLassociéesontdonnésFigureIII-55.

avant aprèsJ K Q Q0 0 𝑥 𝑥0 1 - 01 0 - 11 1 𝑥 𝑥

module test(reset,h,j,k:x) x:=/k*x+j*/x ; x.clk=h ; x.rst=reset ; end module

FigureIII-55.BasculeJKsynchrone,tabledetransitionssimplifiéeetécritureSHDL.SelonlesvaleursdesesentréesJetK,ellepermetleforçagedesonétatà0ouà1,maisaussilaconservationoul’inversiondesonétat.

EllefonctionnedefaçonanalogueaulatchRS,JjouantlerôledeSetKdeR.LorsqueJetKsontà0,l’étatdelabasculenechangepasaufrontd’horloge.Sionveutfaireunemiseà1ouunemiseà0,onapplique1surJ(respectivementsurK)puisonappliqueunfrontd’horloge.Deplus,mettreàlafoisJetKà1estautorisé,etl’étatdelabascules’inverseaufrontd’horloge.

Équationd’évolution𝑄 ∶= 𝐾𝑄 + 𝐽𝑄

ElleestmoinsimmédiatementévidentequecelledesbasculesDetT.Onvérifiequedanstouslescas,onalerésultatattendu:

• si𝐽=0et𝐾=0,𝐾𝑄 + 𝐽𝑄 = 0 + 𝑄 = 𝑄• si𝐽=0et𝐾=1,𝐾𝑄 + 𝐽𝑄 = 0 + 0 = 0• si𝐽=1et𝐾=0,𝐾𝑄 + 𝐽𝑄 = 𝑄 + 𝑄 = 1• si𝐽=1et𝐾=1,𝐾𝑄 + 𝐽𝑄 = 0 + 𝑄 = 𝑄

LabasculeJKexisteégalementavecdesentréesJetKinversées.LaFigureIII-56montrecesdifférentesformes,etl’écritureSHDLassociée.

Page 73: INTRODUCTION A L ARCHITECTURE DES ORDINATEURSdiabeto.enseeiht.fr/download/archi/cours/book2_4.5.pdfLa plupart des ordinateurs ont l’organisation générale de la Figure I-1. Figure

73

module test(reset,h,j,k: x) x:=/k*x+j*/x ; x.clk=h ; x.rst=reset ; end module

module test(reset,h,j,k: x) x:=/k*x+/j*/x ; x.clk=h ; x.rst=reset ; end module

(a) (b)

module test(reset,h,j,k: x) x:=k*x+j*/x ; x.clk=h ; x.rst=reset ; end module

module test(reset,h,j,k: x) x:=k*x+/j*/x ; x.clk=h ; x.rst=reset ; end module

(c) (d)

FigureIII-56.Lesdifférentesformespossiblesd’unebasculeJKetleursécrituresSHDLassociées.(a)entréenormales.(b)entréeJinversée.(c)entréeKinversée.(d)entréesJetKinversées

IV.7.6. ChoixdesbasculesLabasculeDestclairementadaptéeauxsituationsoùondoitstockerunbitprésent.LabasculeTestadaptéeauxsituationsquiseposententermesdechangementoud’inversion.LabasculeJKsembleplusversatile,etelleestd’ailleurssouventappeléebasculeuniverselle.Paranalogieaveclesportescombinatoires,onpourraitsedemandersicettebasculeJKest’pluspuissante’quelesbasculesDouT,c’estàdires’ilestpossibledefabriqueravecelledescircuitsquelesautresnepourraientpasfaire.Laréponseestnon.Cestroistypesdebasculesontunepuissanced’expressionéquivalente:ellesmémorisentunbit,etellesnediffèrentqueparlesmodalitésdestockagedecebit.Parexemple,onvérifiefacilementqu’onpeutfabriquerunebasculeJKavecunebasculeTetréciproquement(FigureIII-57).

Page 74: INTRODUCTION A L ARCHITECTURE DES ORDINATEURSdiabeto.enseeiht.fr/download/archi/cours/book2_4.5.pdfLa plupart des ordinateurs ont l’organisation générale de la Figure I-1. Figure

74

(a) (b)

FigureIII-57.(a)constructiond’unebasculeTavecunebasculeJK,(b)constructiond’unebasculeJKavecunebasculeT.

Danslecas(a),ilestclairqu’enreliantlesdeuxentréesJetK,labasculerestedanslemêmeétatsitvaut0,etelles’inversesitvaut1,cequicorrespondbienaufonctionnementd’unebasculeT.

Danslecas(b),onafigurélasolutionavecunmultiplexeurpourplusdeclarté.LavaleurmiseenentréedelabasculeTdépenddelavaleurducouplej,k,etonvérifiequ’onalerésultatsouhaitédanstouslescas:

1. sijk=00,onplace0surl’entréedelabasculeTetellenechangerapasdevaleuraufrontd’horloge.

2. Sijk=10,onplacesurl’entréedelabasculeTl’inversedesonétatinterne,etilestfaciledevoirquecelaconduitàlamiseà1delabasculeauprochainfrontd’horloge.

3. Sijk=01,onplacel’étatcourantdelabasculeTsursonentrée,cequiconduitàlaforcerà0auprochainfront.

4. Enfinsijk=11,onplace1enentréedelabasculeTcequivadéclenchersoninversion.

IV.7.7. Schémagénérald’uncircuitséquentielsynchronedetypeMOORE

LaFigureIII-58montreleschémagénérald’uncircuitséquentielsynchronedetypeMOORE.L’étatinterneestmémorisédansunvecteurdenbits(2nétatauplus)constituédebasculesdetypequelconque.Pourquececircuitsoitbiendetypesynchronepur,toutesleshorlogesdesbasculesontbienétéreliéesensembledirectementàl’horlogegénérale,defaçonàgarantirunchangementd’étatdetouteslesbasculesexactementaumêmemoment.

Page 75: INTRODUCTION A L ARCHITECTURE DES ORDINATEURSdiabeto.enseeiht.fr/download/archi/cours/book2_4.5.pdfLa plupart des ordinateurs ont l’organisation générale de la Figure I-1. Figure

75

FigureIII-58.Schémagénérald’uncircuitséquentielsynchronedetypeMOORE

Lespropriétésdesbasculesgarantissentquecetétatnepeutpaschangerentredeuxfrontsd’horloge,mêmesilesentréesducircuitchangentplusieursfoisentretemps.Parailleursonvoitquelessortiesnedépendentquedel’étatinterne,étantunsimpletranscodagecombinatoiredecelui-ci.

IV.7.8. Schémagénérald’uncircuitséquentielsynchronedetypeMEALY

LaFigureIII-59montreleschémagénérald’uncircuitséquentielsynchronedetypeMEALY.Ils’agitégalementd’uncircuitsynchronepur,danslequelleshorlogesdetouteslesbasculessontreliéesentreellesàl’horlogegénérale.Avecunvecteurd’étatcomposédenbascules,onpeutégalementcoderauplus2nétatsdifférents,etlamécaniquedechangementd’étatsestanalogueàcelled’uncircuitdetypeMOORE.Laseuledifférenceestdanslecalculdessorties:onvoitqu’ellesnedépendentpasquedel’étatinterne,maisqu’ellesdépendentaussidesentrées.C’estcequivaleurpermettred’obtenirlesmêmessortiesqu’uncircuitdeMOORE,untempsplustôt.

FigureIII-59.Schémagénérald’uncircuitséquentielsynchronedetypeMEALY.

IV.8. Synthèsed’uncircuitséquentielsynchrone

IV.8.1. Étapesdelasynthèsed’uncircuitséquentielsynchroneLorsdelasynthèsed’uncircuitséquentielsynchroneàl’aidedebascules,qu’ilsoitdetypeMOOREoudetypeMEALY,onobtiendralecircuitleplussimpleensuivantlesétapessuivantes:

Page 76: INTRODUCTION A L ARCHITECTURE DES ORDINATEURSdiabeto.enseeiht.fr/download/archi/cours/book2_4.5.pdfLa plupart des ordinateurs ont l’organisation générale de la Figure I-1. Figure

76

1. Dessindugraphed’état:ilpermetunespécificationclaireducircuit2. tabledetransitions:formepluslisibledugraphe,quipermetdevérifierqu’aucunetransition

n’estoubliée,etpréparelaphasedesimplification.3. simplificationdelatabledetransitions:onappliquelaméthodevueprécédemment,parfois

enplusieursétapes.4. déterminationdunombredebascules:lenombred’étatsdugraphesimplifiépermet

d’établirunnombreminimumndebasculesàemployer.Onnechoisitpasencoreletypedesbasculesàemployer,carlaphased’assignationfourniradenouvellesinformations.

5. assignationdesétats:pourchaqueétat,unvecteuruniquedenbitsestassigné,appelévecteurd’état.Desrèglesheuristiquesd’assignationpermettentdetrouvercellequiconduiraàdescalculssimples.

6. tabledetransitionsinstanciée:onréécritlatabledetransitions,enremplaçantchaquesymboled’étatparlevecteurassocié.

7. choixdesbascules:enobservantlatabledetransitionsinstanciée,certainstypesdebasculespeuventêtrepréférés.OnemploieraunebasculeDlorsqu’unétatsuivantestlarecopied’unevaleurdel’étatprécédent,unebasculeTlorsquel’étatsuivantestl’inversed’unétatprécédent;danslesautrescas,labasculeJKpeutêtreemployée.

8. calculdesentréesdesbasculesetcalculdessortiesducircuit.

IV.8.2. Synthèsedudétecteurdeséquence,versionMOORE

Atitred’exemple,onvadétaillerlasynthèseducircuitdétecteurdelaséquence1,0,1décritprécédemment,enversionMOORE.Onreprenddonctouteslesétapesénuméréesenintroduction.

Graphed’état,tabledetransitions,simplificationCestroisétapesontétéréaliséesensection6,etontaboutiesaugraphesimplifiéetàlatabledetransitionsdelaFigureIII-60etdelaFigureIII-61.

FigureIII-60.GraphedeMOOREsimplifiédudétecteurdeséquence1,0,1.

avant aprèsétat E étata 0 aa 1 bb 0 cb 1 bc 0 ac 1 ff 0 cf 1 b

état Sa 0b 0c 0f 1

FigureIII-61.Tabledetransitionssimplifiéedudétecteurdeséquence1,0,1.

DéterminationdunombredebasculesIlyaquatreétatsàcoder,donc2basculesserontemployées,dontonappelleralessortiesXetY.

Page 77: INTRODUCTION A L ARCHITECTURE DES ORDINATEURSdiabeto.enseeiht.fr/download/archi/cours/book2_4.5.pdfLa plupart des ordinateurs ont l’organisation générale de la Figure I-1. Figure

77

AssignationdesétatsLaphased’assignationconsistedoncàaffecterunvecteurd’étatàchacundesétatsducircuit;iciuncouple(X,Y)pourchacundes4états.N’importequelleassignationpeutêtreemployée.Néanmoins,onpeuttoujoursaffecteràl’étatinitiallevecteurd’état(0,0,…),quiseraforcélorsd’unRESETasynchroneducircuit.Parailleurs,certainesassignationsdonnentlieuàdescalculsplussimplesqued’autres.Onlestrouvesouventenappliquantlesrèglesheuristiquessuivantes,parordredeprioritédécroissante:

1. rendreadjacentslesétatsdedépartquiontmêmeétatd’arrivéedanslegraphe.2. rendreadjacentslesétatsd’arrivéequiontmêmeétatdedépartdanslegraphe.3. rendreadjacentslesétatsquiontmêmessorties.

L’idéeestdeminimiserlenombredebitsquichangent(étatousorties)lorsdeschangementsd’états.Appliquéànotrecircuit,lapremièrerèglepréconised’associeraetc,aetf,betf;ladeuxièmerèglepréconised’associeraetb,betc,aetf;latroisièmerèglepréconised’associera,betc.LaFigureIII-62proposeuneassignationquirespecteaumieuxcesrègles.

FigureIII-62.Assignationdesétats:chaqueétatestassociéàuneconfigurationbinairedesbascules

TabledetransitionsinstanciéeOnrecopielatabledetransitionsprécédente,enremplaçantchaquesymboled’étatparsonvecteurd’état(FigureIII-63).

avant aprèsXY E XY00 0 0000 1 1111 0 0111 1 1101 0 0001 1 1010 0 0110 1 11

XY S00 011 001 010 1

FigureIII-63.Tabledetransitionsinstanciée.

ChoixdesbasculesEnobservantlatableinstanciée,onconstatequeXàl’étatsuivantreproduitl’entréeE:unebasculeDs’imposepourX.DanslecasdeY,ilreproduitpresquelavaleurdeXdel’étatprécédent,saufpourladeuxièmeligne.Atitred’exemple,onvachoisirunebasculeJK.

CalculdesentréesdesbasculesetdelasortieducircuitPlusieursméthodessontpossiblespourcescalculs.Cellequiseraemployéeiciestbaséesuruneréécrituredelatabledetransitions,àlaquelleonrajoutelesentréesdesbascules,iciDXpourlabasculeXetJY,KYpourlabasculeY(FigureIII-64.Tabledetransitionsinstanciéeaveclesentréesdesbasculeschoisies..

Page 78: INTRODUCTION A L ARCHITECTURE DES ORDINATEURSdiabeto.enseeiht.fr/download/archi/cours/book2_4.5.pdfLa plupart des ordinateurs ont l’organisation générale de la Figure I-1. Figure

78

avant aprèsXY E DX JY KY XY00 0 0 0 * 0000 1 1 1 * 1111 0 0 * 0 0111 1 1 * 0 1101 0 0 * 1 0001 1 1 * 1 1010 0 0 1 * 0110 1 1 1 * 11

XY S00 011 001 010 1

FigureIII-64.Tabledetransitionsinstanciéeaveclesentréesdesbasculeschoisies.

EnfaitonconnaissaitdéjàlerésultatpourX:𝐷𝑋 = 𝐸,quiestlaraisonpourlaquelleonavaitchoisieunebasculeD.PourY,ontrouvefacilementque𝐽𝑌 = 𝐸 + 𝑋et= 𝑋.Parailleurs,ona𝑆 =𝑋𝑌Lasynthèseestterminée,etnotreséquenceurseréduitauschémadelaFigureIII-65.Onnoteral’écrituredesaffectationsséquentiellesdexety:x:=eestl’équationd’évolutiondelabasculeD,ety:=x*y+jy*/yestuneéquationdelaformeq:=/k*q+j*/q,pourlaquellel’entréeKestinversée.

module seq101(rst,h,e: s) x := e ; x.clk = h ; x.rst = rst ; y := x*y+jy*/y ; y.clk = h ; y.rst = rst ; jy = e+x ; s = x*/y ; end module

FigureIII-65.Schémafinalsynthétisédudétecteurdeséquence1,0,1(typeMOORE)etdescriptionSHDLassociée

IV.8.3. Synthèsedudétecteurdeséquence,versionMEALYOneffectueicilasynthèsedumêmedétecteurdeséquence1,0,1,cettefoisenversionMEALY.Ilpermettrad’obtenirlasortieunfrontd’horlogeavantlaversionMOORE,etonpeutespéreruncircuitencoreplussimplepuisquesongraphesimplifiécomporteunétatdemoinsqueceluideMOORE.

Graphed’état,tabledetransitions,simplificationCestroisétapesontétéréaliséesensection6,etontaboutiesaugraphesimplifiédelaFigureIII-66etàlatabledetransitionsdela

avant aprèsétat E état Sa 0 a 0a 1 b 0b 0 c 0b 1 b 0c 0 a 0c 1 b 1

FigureIII-67.

Page 79: INTRODUCTION A L ARCHITECTURE DES ORDINATEURSdiabeto.enseeiht.fr/download/archi/cours/book2_4.5.pdfLa plupart des ordinateurs ont l’organisation générale de la Figure I-1. Figure

79

FigureIII-66.GraphedeMEALYsimplifiédudétecteurdeséquence1,0,1

avant aprèsétat E état Sa 0 a 0a 1 b 0b 0 c 0b 1 b 0c 0 a 0c 1 b 1

FigureIII-67.TabledetransitionsdeMEALYsimplifiéepourledétecteurdeséquence1,0,1.

AssignationdesétatsLaphased’assignationconsistedoncàaffecterunvecteurd’étatàchacundesétatsducircuit;iciuncouple(X,Y)pourchacundes3états.Afind’obtenirlesrésultatslesplussimplespossibles,onessaied’appliqueraumieuxlesheuristiquesd’assignationdécritesàlasectionprécédente.

Appliquéeànotrecircuit,lapremièrerèglepréconised’associeraetc;ladeuxièmerèglepréconised’associeraetb.LaFigureIII-68proposeuneassignationquirespecteaumieuxcesrègles.

FigureIII-68.Assignationdesétats:chaqueétatestassociéàuneconfigurationbinairedesbascules

TabledetransitionsinstanciéeOnrecopielatabledetransitionsprécédente,enremplaçantchaquesymboled’étatparsonvecteurd’état(FigureIII-69).

Page 80: INTRODUCTION A L ARCHITECTURE DES ORDINATEURSdiabeto.enseeiht.fr/download/archi/cours/book2_4.5.pdfLa plupart des ordinateurs ont l’organisation générale de la Figure I-1. Figure

80

avant aprèsXY E XY S00 0 00 000 1 10 010 0 01 010 1 10 001 0 00 001 1 10 1

FigureIII-69.Tabledetransitionsinstanciée.

ChoixdesbasculesEnobservantlatableinstanciée,onconstatequeXàl’étatsuivantreproduitl’entréeE:unebasculeDs’imposepourX.DanslecasdeY,iln’yaqu’uneligneoùYpasseà1;onpeutchoisirégalementunebasculeD,dontonappelleral’entréeDY.

CalculdesentréesdesbasculesetdelasortieducircuitIciencoreonvaréécrirelatabledetransitions,àlaquelleonvarajouterlesentréesdesbascules,iciDXpourlabasculeXetDYpourlabasculeY(FigureIII-70).

avant aprèsXY E DX DY XY S00 0 0 0 00 000 1 1 0 10 010 0 0 1 01 010 1 1 0 10 001 0 0 0 00 001 1 1 0 10 1

FigureIII-70.Tabledetransitionsinstanciéeaveclesentréesdesbasculeschoisies

EnfaitonconnaissaitdéjàlerésultatpourX:DX=E,quiestlaraisonpourlaquelleonavaitchoisiunebasculeD.PourY,onpeutfaireunetabledeKarnaughquivanouspermettred’exploiterlescombinaisonsnonspécifiéesduesaufaitquelatabled’assignationn’estpascomplètementremplie(FigureIII-71).

FigureIII-71.TabledeKarnaughpourlecalculdeDX.LevecteurXY=11estnonspécifié

Ontrouvedonc:𝐷𝑋 = 𝐸𝑋.Parailleurs,ona:𝑆 = 𝐸𝑌.

Lasynthèseestterminée,etnotreséquenceurseréduitauschémadelaFigureIII-72.Onvoitquecettefoislasortienedépendplusseulementdel’étatinternecommedanslecircuitdeMOORE;elledépendaussidel’entréeE.AveclesimulateurSHDL,onpourraseconvaincrequedanslecircuitdeMEALYonobtientbienlasortieSunfrontd’horlogeavantlecircuitdeMOORE.

Page 81: INTRODUCTION A L ARCHITECTURE DES ORDINATEURSdiabeto.enseeiht.fr/download/archi/cours/book2_4.5.pdfLa plupart des ordinateurs ont l’organisation générale de la Figure I-1. Figure

81

module seq101(rst,h,e: s) x := e ; x.clk = h ; x.rst = rst ; y := dy ; y.clk = h ; y.rst = rst ; dy = /e*x ; s = e*y ; end module

FigureIII-72.Schémafinalsynthétisédudétecteurdeséquence1,0,1(typeMEALY)etdescriptionSHDLassociée.OnvoitquelasortieSdépenddel’étatinterne,maisaussidel’entréeE

IV.9. Chronologied’uncircuitséquentielsynchrone

IV.9.1. Tempsdesetup,deholdetdepropagationdesbasculesParmilescaractéristiquestemporellesd’unebasculefigurentlestempsdesetupetdehold.Letempsdesetupestladuréeavantlefrontd’horlogedurantlaquellelesentréesdelabasculedoiventêtrestablespourquelebasculementsepassecorrectement.Letempsdeholdestladuréeanalogueaprèslefrontd’horloge.L’uniondesdeuxdéfinitunepériodeautourdufrontd’horlogedurantlaquellelesentréesdoiventêtrestables,fautedequoilebasculementneseproduiraitpascommeprévu.

Letempsdepropagationquantàluiestletempsaprèslequelonestgarantid’avoirlanouvellevaleurdelabascule,aprèslapérioded’instabilitédelatransition.

ToutescesduréessontillustréessurlaFigureIII-73.

FigureIII-73.Tempsdesetup,deholdetdepropagationd’unebascule

IV.9.2. Chronologiedétailléed’unetransition.Lalecturedecettesectionn’estpasnécessairepourquiveutconcevoiruncircuitséquentiel.Illuisuffitd’admettrequ’aprèslefrontd’horloge,aumomentoùlesbasculesducircuitchangentéventuellementd’état,onpassesanscoupférirdesvaleursdel’étatprécédentauxvaleursdel’étatsuivant.

Onpeutaussichercheràcomprendreendétailcequisepasselorsd’unetransition,etmêmecraindrequ’ellenesepassemal.Mêmesilefrontd’horlogeestlemêmepourtouteslesbascules,lesvaleursdessignauxdel’étatprécédentnepeuvent-ellespasinterféreraveccellesdel’étatsuivant?C’esteneffetpossibledanscertainesconditions.ConsidéronsparexempleleschémadelaFigureIII-74.

Page 82: INTRODUCTION A L ARCHITECTURE DES ORDINATEURSdiabeto.enseeiht.fr/download/archi/cours/book2_4.5.pdfLa plupart des ordinateurs ont l’organisation générale de la Figure I-1. Figure

82

Silabasculeaaunecommutationbeaucoupplusrapidequelabasculeb,lavaleurdeavachangerdurantlapériodedeholddelabasculeb,provoquantainsiunfonctionnementincorrect.

Leplussouvent,c’estletempsdesetupquiestviolé,lorsqu’onaugmentelavitessed’horlogeàunrythmetelqu’unfrontd’horlogearrivealorsquelesentréesdesbascules,quisontdesfonctionscombinatoiresdesentréesetdel’étatcourant,n’ontpaseuuntempssuffisantpoursestabiliser.

FigureIII-74.Silabasculeaesttroprapide,letempsdeholddebseraviolé.

Enpratique,onemploiedesbasculesauxcaractéristiquestemporellesanalogues.

IV.9.3. Basculesmaître-esclaveUnefaçonderésoudreleproblèmedetimingprécédentconsisteàséparerclairementlemomentdecapture(d’échantillonnage)desvaleursdel’étatprécédentdumomentoùonlibèrelesvaleurspourl’étatsuivant,plutôtquedecomptersurdesdélaisdepropagationtropserrés.

Onutilisepourceladesbasculesspécialesappeléesbasculesmaître-esclave,câbléesselonlemodèledelaFigureIII-75

FigureIII-75.Basculemaître-esclave.Oncapturelesvaleursdel’étatprécédentaufrontmontantdel’horloge,etonlibèrelesvaleurspourl’étatsuivantaufrontdescendant.

Surlefrontmontantdel’horlogeh,lesvaleursissuesdel’étatprécédentsontprisesencompte,sansêtrelibéréesencoreverslessorties,etdoncsansrisquederétroactionnéfaste.Plustard,surlefrontdescendantdeh,lesnouvellesvaleursdesbasculesassociéesàl’étatsuivantsontlibérées.

Lesbasculesmaître-esclavepeuventêtreemployéesàpeuprèspartoutoùsontemployéesdesbasculesordinaires,maisilfautcettefoisbiencontrôlerlesdeuxfrontsdel’horloge,etnonunseul.

IV.10. Compteursbinaires

CompteurdebaseUncompteurbinairesurnbitsincrémenteàchaquefrontd’horlogeunevaleurdenbits.Onpourraitd’abordpenseràcréerunregistredenbitsavecdesbasculesD,puisàrelierleursentréesàuncircuitd’incrémentation,maisilyaunesolutionplusdirecteetefficace.Onserappelleeneffet

Page 83: INTRODUCTION A L ARCHITECTURE DES ORDINATEURSdiabeto.enseeiht.fr/download/archi/cours/book2_4.5.pdfLa plupart des ordinateurs ont l’organisation générale de la Figure I-1. Figure

83

(section4)l’algorithmedecomptage:unbitestrecopiéavecinversionsitouslesbitsàsadroitevalent1,etlebitdepoidsfaibleesttoujoursinversé.

Cettedescriptionentermesd’inversionconduitàuneconceptionàbasedebasculesT,danslaquellel’entréeTd’unebasculeestreliéeauETdetouslesbitsquisontàsadroite.LaFigureIII-76montreunexempled’untelcompteursur4bits.

module cpt4(rst,h: a,b,c,d) d := /d ; d.clk = h ; d.rst = rst ; c := /d*c+d*/c ; c.clk = h ; c.rst = rst ; b := /tb*b+tb*/b ; b.clk = h ;

b.rst = rst ; tb = c*d ; a := /ta*a+ta*/a; a.clk = h ; a.rst = rst ; ta = b*c*d ; end module

FigureIII-76.Compteurbinaire4bits.Unbitestinversélorsquetouslesbitssituésàsadroitevalent1.

Cecompteurcomptebiensûrmodulo2n:aprèslavaleur’1111’,suitlavaleur’0000’sansqu’onpuisseêtreprévenudecedébordement.

Onnoteral’affectationséquentielleSHDLutiliséepourlabasculedepoidsfaibled:d:=/d;,quisetraduitparunebasculeTavecun’1’surl’entréeT.Pourlebitc,l’écriturec:=d*c+/d*/c;setraduitégalementparunebasculeT,maisavecuneinversionavantsonentrée.LesautresbasculesTontuneécrituredirectementtiréedel’équationd’évolutionstandardd’unebasculeT.

Danslafoulée,onpeutégalementcréeruncircuitdécompteurselonlamêmeméthode:unbitestinversélorsquetouslesbitsquisontàsadroitevalent0(FigureIII-77).

Page 84: INTRODUCTION A L ARCHITECTURE DES ORDINATEURSdiabeto.enseeiht.fr/download/archi/cours/book2_4.5.pdfLa plupart des ordinateurs ont l’organisation générale de la Figure I-1. Figure

84

module dec4(rst,h: a,b,c,d) d := /d ; d.clk = h ; d.rst = rst ; c := d*c+/d*/c ; c.clk = h ; c.rst = rst ; b := /tb*b+tb*/b ;

b.clk = h ; b.rst = rst ; tb = /c*/d ; a := /ta*a+ta*/a ; a.clk = h ; a.rst = rst ; ta = /b*/c*/d ; end module

FigureIII-77.Décompteurbinaire4bits.Unbitestinversélorsquetouslesbitssituésàsadroitevalent0

Ajoutd’uneentréedevalidationCescircuitscomptentoudécomptentenpermanence,etiln’yaaucunmoyendesuspendreetdereprendreleurcomptage.Onvamaintenantajouteruneentréedevalidationen(pour’enable’)quinepermettraaucompteurdecompterquesiellevaut’1’.Lorsqu’ellevaudra’0’,lecompteurresterafigésurladernièrevaleurproduite,malgrél’arrivéedefrontsd’horlogesurh.

Ilsuffitpourcelad’ajouteruneentréedevalidationàchaquebasculeT.LelangageSHDLautorisel’emploidel’écriture:q.ena=en;quiréaliseexactementcela,etqu’ilsuffitd’employerpourchacunedesbasculesducompteur.Sionnedisposequedebasculessansentréedevalidation,latransformationdelaFigureIII-78permetdel’obtenir.

module bascten(rst,h,en,t:q) q := /tq*q+tq*/q ; q.clk = h ; q.rst = rst ; tq = en*t ; end module

FigureIII-78.BasculeTavecentréedevalidation

Ajoutd’uneremiseàzérosynchroneOnsouhaitemaintenantajouteruneentréesclrderemiseàzérosynchrone,quiremetlecompteuràzéroauprochainfrontd’horloge.Ellen’estbiensûrpasdemêmenaturequel’entréederesetasynchrone,quin’estlàquepourl’initialisation.Parailleursilnefautpasessayerd’utiliserceresetasynchronepourimplémenternotreremiseàzérosynchrone.

Larègled’ordescircuitsséquentielssynchronespurs,c’estderelierentre-ellestoutesleshorlogesetderelierentreeuxtouslessignauxderesetasynchrone,sanschercheràlesmodifier.Noussommesheureuxdepouvoirréinitialiseràtoutcoupnotreordinateurpersonnelenappuyantsurleboutondereset,sansquecelanedépended’uneconditionplusoumoinsbienpenséeparunconcepteurpeurigoureux.

Page 85: INTRODUCTION A L ARCHITECTURE DES ORDINATEURSdiabeto.enseeiht.fr/download/archi/cours/book2_4.5.pdfLa plupart des ordinateurs ont l’organisation générale de la Figure I-1. Figure

85

Commepourl’entréedevalidation,lelangageSHDLauneécritureq.sclr=sclr;quifaitexactementcedontnousavonsbesoin.SionnedisposepasdebasculesTavecremiseàzérosynchrone,laFigureIII-79rempliracettefonction.

module tclr(rst,h,sclr,t:q) q := /tq*q+tq*/q ; q.clk = h ; q.rst = rst ; tq = /sclr*t+sclr*q ; end module

FigureIII-79.BasculeTavecremiseàzérosynchrone.

Onnoteral’écritureSHDLtq=/sclr*t+sclr*q;quiconduitàl’utilisationd’unmultiplexeur2vers1.Sisclrvaut0,labasculeTreçoitsonentréetnormalement;sisclrvaut1,labasculeTreçoitqenentrée,quiprovoquelaremiseà0auprochainfrontd’horloge.

Eneffet,silabasculeavaitl’état0,enayant0enentréeelleresteàl’état0;sielleavaitl’état1,enrecevant1enentrée,elles’inverseetpasseà0:danstouslescasellepasseàzéro.

ChaînagedemodulesdecomptageNoussouhaitonsmaintenantchaînerplusieursmodulesdecomptagedenbitsafindeformerdescompteursdem×nbits.L’algorithmiquedecomptageparblocestanalogueàcelleparbits:unblocincrémentesavaleursitouslesblocsquisontàsadroitesontàleurvaleurmaximum.Ilnousmanquedoncpourchaqueblocunsignalquiindiquequ’ilaatteintlavaleurmaximum.Pouréconomiserl’usagedeportesET,onvaplutôtproduireunsignalriplquivaut1lorsquelecompteurestàlavaleurmaximumetqueen=1.Pourchaînerlesmodules,ilsuffitmaintenantderelierleripldel’unauendel’autre.LaFigureIII-80montrelechaînagede4modulesde4bitspourformeruncompteur16bits.

Page 86: INTRODUCTION A L ARCHITECTURE DES ORDINATEURSdiabeto.enseeiht.fr/download/archi/cours/book2_4.5.pdfLa plupart des ordinateurs ont l’organisation générale de la Figure I-1. Figure

86

module cpt4(rst,h,en:a,b,c,d,ripl) d:=/en*d+en*/d ; d.clk=h ; d.rst=rst ; c:=/tc*c+tc*/c ; c.clk=h ; c.rst=rst ; tc=en*d ; b:=/tb*b+tb*/b ; b.clk=h ; b.rst=rst ; tb=en*c*d ; a:=/ta*a+ta*/a ; a.clk=h ; a.rst=rst ; ta=en*b*c*d ; ripl=en*a*b*c*d ; end module

module cpt16(rst,h,en:s15..s0) cpt4(rst,h,en:s3,s2,s1,s0,ripl1); cpt4(rst,h,ripl1:s7,s6,s5,s4,ripl2); cpt4(rst,h,ripl2:s11,s10,s9,s8,ripl3); cpt4(rst,h,ripl3:s15,s14,s13,s12,ripl); end module

FigureIII-80.Compteur16bitsforméavec4compteurs4bits.Lasortieripld’unmoduleindiquequ’ilestàlavaleurmaximumetquetousceuxquisontàsadroitesontàleurmaximum.Lemodulequiestàsagaucheasonentréeen

reliéeàcesignal,etnepeuts’incrémenterquelorsqu’ilvaut1.

IV.11. RegistresUnregistredenbitsestunensembledenbasculesDsynchronesmisesenparallèleetpartageantlamêmehorloge(FigureIII-81).

// Description SHDL d’un registre 32 bits module reg32(d[31..0],h,reset: q[31..0]) q[31..0] := d[31..0] ; q[31..0].clk = h ; q[31..0].rst = reset ; end module

FigureIII-81.Registrede32bitsavecsonécritureSHDL.

Onnoteral’écriturevectorielledetyped[31..d0].Elleeststrictementéquivalenteàl’écritured31..d0quiaétéutiliséejusqu’ici;elleestpluscourtelorsquelenomdusignalestlong,cariln’estmentionnéqu’unefois.

RegistreaveclignedesélectionUnregistrepeutêtreéquipéd’unelignedesélectionquidoitêtreactivéesil’onveutfaireuneécriture;cetypedesignalasouventpournomen(enable),oucs(chipselect)ouencorece(chipenable).OnavuàlasectionprécédentequelelangageSHDLdisposaitdel’écriture.enapourprendreencomptedirectementuntelsignal.LaFigureIII-82metenœuvrecetteécriturepournotreregistrede32bits.

Page 87: INTRODUCTION A L ARCHITECTURE DES ORDINATEURSdiabeto.enseeiht.fr/download/archi/cours/book2_4.5.pdfLa plupart des ordinateurs ont l’organisation générale de la Figure I-1. Figure

87

// description SHDL directe module reg32_2(reset,h,en,d31..d0: q31..q0) q[31..0] := d[31..0] ; q[31..0].clk = clk ; q[31..0].rst = reset ; q[31..0].ena = en ; end module

FigureIII-82.Registreavecentréedesélection,écritureSHDLdirecte.

Pourmieuxcomprendresonfonctionnement,onpeutleréaliseravecunmultiplexeuretparrebouclagedelasortiesurl’entrée.LaFigureIII-83montrecetteconstruction,aveclecodeSHDLcorrespondant.

module reg32_3(reset,h,en,d31..d0: q31..q0) reg32(reset,h,in[31..0]: out[31..0]) ; in[31..0] = d[31..0]*en + q[31..0]*/en ; q[31..0] = out[31..0] ; end module

FigureIII-83.Registreavecentréedesélectionconstruitavecunmultiplexeur.

Lorsquel’entréeenestà0,lemultiplexeurreconduitlavaleurduregistreenentrée:ilnechangealorspasdevaleurauprochainfrontd’horloge.Lorsqueenvaut1,c’estlavaleurprésentesurlesentréesd31..d0quiestaiguilléeparlemultiplexeur,puismémorisée.

Cetteconstructionestbiensûrmoinsperformantequ’avecdesbasculesDdéjàéquipéesd’uneentréedevalidation;enparticulierelledemandeuntempsdesetuppluslongdûàlapropagationautraversdumultiplexeur.

IV.12. Circuittimer/PWM

PrincipeUncircuittimer/PWMgénèreunsignalcycliquerectangulairedontlesparamètressontprogrammables.Cesparamètressont:

• lapériodeP,expriméeennombredecyclesdel’horlogegénérale.• laduréeDàl’intérieurdecettepériodeoùlasortievaut0,expriméeennombredecycles.

LaFigureIII-84illustrelaformedusignalrecherché.

Page 88: INTRODUCTION A L ARCHITECTURE DES ORDINATEURSdiabeto.enseeiht.fr/download/archi/cours/book2_4.5.pdfLa plupart des ordinateurs ont l’organisation générale de la Figure I-1. Figure

88

FigureIII-84.Signalpériodiquegénéréparuncircuittimer/PWM.

LetermePWM(PulseWidthModulation:modulationenlargeurd’impulsion)faitréférenceàunetechniqueutiliséefréquemmentpourmodulerl’énergiefournieàcertainsdispositifstelsquedeslampes,desmoteursàcourantcontinu,etc.Plutôtquedeleurfournirunetensionvariable,difficileàproduireavecprécision,onleurfournitunsignalpériodiquedontonfaitvarierlerapportcyclique

entrelesmomentsoùlatensionestmaximaleetceuxoùlatensionestnulle(~–�~

surlafigure).La

fréquence6~doitêtreassezélevéepouréviterlesà-coupsoulesclignotements,maispastropélevée

pouréviterd’éventuelseffetsnéfastes.

Parexemple,lesLEDsàhauteluminositéquiéquipentlesfeuxdestopetarrièredesvoituresontleurluminositécommandéedecettemanière.

Lecircuitseraplutôtappelé’timer’sionn’exploitequelesfrontsmontantsoudescendantsdusignaldesortie,pourgénéreruneinterruptionparexemple.

OrganisationPourréaliseruntimer/PWMsurnbits,onutiliseuncompteurnbitsetdeuxcomparateursnbits,quicomparentenpermanencelavaleurducompteurauxdeuxparamètresPetN(FigureIII-85).

Lecompteurdisposed’uneremiseàzérosynchrone(voirsection10.1),quiestactivéedèsquelecompteurarriveàlavaleurP.Ainsiilvacompter0,1,…,P,c’estàdireavecunepériodedeP+1cyclesd’horloge.

Page 89: INTRODUCTION A L ARCHITECTURE DES ORDINATEURSdiabeto.enseeiht.fr/download/archi/cours/book2_4.5.pdfLa plupart des ordinateurs ont l’organisation générale de la Figure I-1. Figure

89

FigureIII-85.Organisationd’untimer/PWMsurnbits.Lavaleurd’uncompteurnbitsestcomparéeauxvaleursdeNetP;quandilatteintPilestremisà0;quandildépasseNlavaleurdelasortiemchange.LabasculeDfinaleprévient

d’éventuelsglitchs.

DurantcettepériodeP+1,lavaleurducompteurestcomparéeàlavaleurdeN,etlasortiemestlerefletdecettecomparaison.Lasortiemn’estpasdirectementlerésultatcombinatoiredelacomparaison,maisonlefaitpasserautraversd’unebasculeD,pourdeuxraisons:

• ilpourraitêtreaffectédeglitchsdanscertainessituations;enlefaisantpasserautraversd’unebasculeDonestcertaind’avoirunsignalparfaitementpropre.

• sontimingestexactementalignéaveclesfrontsd’horloge,cequiaméliorelaprécision.

LaFigureIII-86donnelecodeSHDLd’untelcircuittimer/PWMsur4bits.OnréutiliselescircuitsdecomptageetdecomparaisondéjàdécritsenSHDLauxsections10.1et8.9.

module pwm(rst, clk, en, p[15..0], n[15..0], m) count4Z(clk, rst, en, eqP : cnt[3..0], ripple) ; ucmp4(cnt[15..0], p[3..0] : supP, eqP) ; ucmp4(cnt[15..0], n[3..0] : supN, eqN) ; dm = supN + eqN ; m := dm ; m.clk = clk ; m.rst = rst ; m.ena = en ; end module

FigureIII-86.ÉcritureSHDLd’untimer/PWMsur4bits.

Lapériodepestégaleàp3…p0+1ennombredecyclesdel’horlogeclk;lavaleurn3…n0définitlavaleurn.LetimingprécisdecemoduleestdéfiniparlechronogrammeFigureIII-87.

Page 90: INTRODUCTION A L ARCHITECTURE DES ORDINATEURSdiabeto.enseeiht.fr/download/archi/cours/book2_4.5.pdfLa plupart des ordinateurs ont l’organisation générale de la Figure I-1. Figure

90

FigureIII-87.Exempledechronologiedessignauxdutimer/PWMsur4bits.

IV.13. RAMsetROMs

IV.13.1. IntroductionCettesectionestconsacréeauxcircuitsutilisésdanslamémoirecentraledesordinateurs,quicontientlesprogrammesetlesdonnéesmanipulésparlesprogrammes.L’informationyeststockéesousformedemotsdetaillefixe,dontlalargeurdépenddel’architectureutilisée.Cesmotsmémoiresontordonnésetpossèdentchacununeadresse,sousformed’unnombre.Onpeutdoncvoirunemémoirecommeunrubandecasesnumérotées:

…oucommeuntableau:

𝑑𝑜𝑛𝑛é𝑒 = 𝑚𝑒𝑚[𝑎𝑑𝑟𝑒𝑠𝑠𝑒], 𝑎𝑑𝑟𝑒𝑠𝑠𝑒 ∊ [0, 𝑛].

Detellesmémoiresseclassentendeuxgrandstypes,selonqu’ellessontenlectureseuleouenlecture-écriture:lesRAMs(RandomAccessMemory)peuventêtreluesetécrites,etl’attributrandomindiquequeceslectures-écriturespeuventsefaireàdessuitesd’adressestotalementquelconques,paroppositionàdesmémoiresdetypeséquentiel(commelesdisquesdurs)quifontdessériesd’accèsàdesadressesconsécutives.LesROMs(ReadOnlyMemory)sontfonctionnellementidentiquesauxRAMs,maisnepermettentquelalectureetpasl’écriture.Utiliséesdanslamémoirecentraled’unordinateur,lesRAMspourrontstockerlesprogrammesetlesdonnées,alorsquelesROMsvontseulementstockerdesprogrammesinvariables,commeparexempleleprogrammeexécutéaudémarragedelamachine,etstockédanslaROMditedeBIOS.Danscertainsordinateursplusanciens,toutlesystèmed’exploitationétaitstockéenROM,cequipermettaitd’avoirunsystèmeincorruptibleetaudémarragerapide.

UneRAMpeutêtrestatiqueoudynamique.Chaquebitmémoired’uneRAMstatique(SRAM)estconstituéd’unebascule,etconservesonétattantqu’elleestalimentée.Al’inverse,chaquebitd’uneRAMdynamique(DRAM)estcomposéd’unecapacité,quidoitêtrerafraîchiepériodiquementparuneélectroniqueséparée.LesRAMsstatiquesontuntauxd’intégrationplusfaiblequelesRAMdynamiques,puisqu’unbitmémoirenécessite6transistorsdansuncas,etunecapacitéplusuntransistordansl’autre.

Page 91: INTRODUCTION A L ARCHITECTURE DES ORDINATEURSdiabeto.enseeiht.fr/download/archi/cours/book2_4.5.pdfLa plupart des ordinateurs ont l’organisation générale de la Figure I-1. Figure

91

UneRAMpeutêtresynchroneouasynchrone,uneRAMsynchroneétantenfaituneRAMasynchroneàlaquelleonaajoutéunemachineàétatsfinissynchronequiplacelescommandesdelectureetd’écrituredansunpipeline,afindepermettred’accepterunenouvellecommandeavantquelaprécédenten’aitétécomplétée.

LesbarrettesdeRAMdenosordinateurspersonnelssontdesSDRAM,c'est-à-diredesRAMdynamiquessynchrones,fonctionnantàdesfréquencesde200MHzetplus.EllessontsouventdetypeDDR(doubledatarate),quandlesfrontsmontantsetdescendantsdel’horlogesontexploitéspourleschangementsd’état.

Dansbeaucoupd’autresappareils(assistantspersonnels,consolesdejeux,etc.),laRAMestdetypestatiqueasynchrone(SRAM),souslaformedecircuitsintégrés.LesROMsexistentégalementdansungrandnombredetypesdifférents,principalementselonlafaçondontonpeutprogrammerleurcontenu(invariable,pardéfinition).Ilyad’abordlesROMsprogramméesparmasqueàl’usine;ellessontproduitesengrandnombreavecunfaiblecoûtàl’unité,maisleurcontenunepeutjamaisêtremisàjourultérieurement.

LesPROMs(ProgrammableRom)sontprogrammablesparunappareilspécial,quigénéralementdétruitparuncourantfortuneliaisoninternecorrespondantàunbit.LesEPROMs(ErasablePROM)fonctionnentdelamêmefaçon,maispossèdentunefenêtretransparenteetpeuventêtreeffacéesparuneexpositiond’unevingtainedeminutesauxrayonsultraviolets.EllessontmaintenantsouventremplacéespardesEEPROMs(ElectricallyEPROM),reprogrammablesélectriquement.LesmémoiresFlashsontégalementuneformedemémoireseffaçablesélectriquement,maisonréservegénéralementletermeEEPROMauxmémoirescapablesd’effaceràl’échelledumot,etleterme’mémoiresFlash’àcellesquieffacentàl’échelledeblocs.Danslesdeuxcas,letempsd’effacementestlongparrapportautempsdelecture,etellesnepeuventpasêtreconsidéréescommeuneformespécialedeRAM.OntrouvedelamémoireEEPROMetflashdanslesassistantspersonnels,danslessticksmémoiresurportsUSB,pourlestockagedufirmwaredenombreuxappareils(BIOSd’ordinateurs,lecteursdeDVD,tunerssatellites,etc.)

IV.13.2. Moded’emploidesmémoiresstatiquesasynchronesLesmémoiresstatiquesontgénéralementuneorganisationetunmoded’emploispécifique.Onavuàlasectionprécédentequechaquebitd’unetellemémoireétaitstockédansunebascule,cequiconduitpourlesformeslesplussimplesàséparerlesdonnéesàécriredesdonnéeslues,delamêmefaçonquesontséparéesl’entréeetlasortied’unebascule.

LaFigureIII-88montrel’interfaced’untelcircuit.

FigureIII-88.Interfaced’unboîtierdeRAMstatiqueasynchronede2mmotsdenbits,avecséparationdesdonnéesluesetdesdonnéesàécrire.

Lemoded’emploidececircuitestlesuivant:

Page 92: INTRODUCTION A L ARCHITECTURE DES ORDINATEURSdiabeto.enseeiht.fr/download/archi/cours/book2_4.5.pdfLa plupart des ordinateurs ont l’organisation générale de la Figure I-1. Figure

92

Lectured’unmotmémoire• activerlaligneCE(ChipEnable),placerl’adressedumotsurlesmlignesd’adresseADRet

garderinactivelaligneW(write).• aprèsuncertaintempsappelétempsd’accèsenlecture,lemotmémoire(delargeurn)placé

àcetteadresseestdisponiblesurleslignesDOUT(DataOut).

Écritured’unmotmémoireo activerlaligneCE(ChipEnable),placerl’adressedumotsurlesmlignesd’adresseADR,

placerladonnéeàécriresurlesnlignesDIN(DataIn)etactiverlaligneW(write).o aprèsuncertaintempsappelétempsd’écriture,lemot(delargeurn)estécritenmémoire,

etpourraêtreluultérieurement.

Letempsd’écritureestgénéralementvoisindutempsd’accèsenlecture;cestempsvarientd’unedizainedenanosecondespourlesmémoiresstatiqueslesplusrapidesàunecentainedenanosecondes.

Enpratique,lesboîtiersdisponiblesmettentencommunleslignesDINetDOUT,defaçonàminimiserlenombredebroches,etàfaciliterl’interconnexiondeplusieursboîtiers.Detelscircuitsontl’interfaceetlastructuresuivante:

FigureIII-89.Interfaced’unboîtierdeRAMstatiqueasynchronede2mmotsdenbits,avecdonnéesluesetécrites

communes.

UneentréesupplémentaireOE(OutputEnable)estnécessaire,quifonctionnedelafaçondécriteendébutdechapitre.Lorsdel’écritured’unmotmémoire,laligneOEdoitêtreinactive,etladonnéeàécrirepeutêtreplacéesurDATAsansrisquedecourt-circuit.Lorsd’unelectureenmémoire,laligneOEdoitêtreactivéeaprèsletempsd’accèsenlecturepourqueladonnéeluesoitdisponiblesurDATA.Onverraplusloincommentinterconnectercescircuits;lesprécautionsdéjàévoquéesdoiventêtrerespectéesici,etenparticulierlerisquequ’ilyad’avoiràlafoisOEactiveetunedonnéeprésenteenentréedeDATA,quipeutconduireàladestructionducircuit.

IV.13.3. Moded’emploidesmémoiresdynamiquesasynchronesLesmémoiresdynamiquesontgénéralementuneorganisationlégèrementdifférentedesmémoiresstatiques,mêmesicettedifférencen’estpasàattribueràleurnaturestatiqueoudynamique.LeurinterfaceestceluidelaFigureIII-90.

Page 93: INTRODUCTION A L ARCHITECTURE DES ORDINATEURSdiabeto.enseeiht.fr/download/archi/cours/book2_4.5.pdfLa plupart des ordinateurs ont l’organisation générale de la Figure I-1. Figure

93

FigureIII-90.Interfaced’unboîtierdeRAMdynamiqueasynchronede22mmotsdenbits.

Onremarqued’abordqu’iln’yapasdelignedevalidation(CEouCS),etquedeuxnouvelleslignesRASetCASsontprésentes.Lalégendedelafigureparlede22mmotsdenbits,alorsqu’onnevoitquemlignesd’adresses.Onvavoirqu’enfait,cesmlignessontmultiplexées,etqu’onyprésentesuccessivementunnumérodelignesurmbits,puisunnumérodecolonnesurmbits,pouraccéderàunecellulemémoiredansunematricede2mx2m=22mcellulesmémoire.LaprésentationdesnumérosdeligneetdecolonneestsynchroniséeparlessignauxRASetCAS.

RASsignifiesélectiondeligned’adresse(RowAddressSelect);CASsignifiesélectiondecolonned’adresse(ColumnAddressSelection).LeboîtierestinactiftantqueRASetCASsontinactifs.Leschronologiesdelectureetd’écrituresontmontréesFigureIII-91etFigureIII-92.

Pourunelectureouuneécriture,onplaced’abordunnumérodelignesurADR,quiestobtenuenprenantlamoitiédel’adressecomplète,généralementlespoidsfortsetonactiveensuitelaligneRAS(frontdescendant).OnplaceensuitesurADRl’autremoitiédel’adressecomplète,généralementlespoidsfaibles,etonactiveensuitelaligneCAS(frontdescendant).Encasdelecture(W=1)ladonnéeseradisponiblesurDOUT;encasd’écritureilfaudraplacerladonnéesurDIN.

FigureIII-91.Chronogrammedelecturedansunemémoiredynamique.

Page 94: INTRODUCTION A L ARCHITECTURE DES ORDINATEURSdiabeto.enseeiht.fr/download/archi/cours/book2_4.5.pdfLa plupart des ordinateurs ont l’organisation générale de la Figure I-1. Figure

94

FigureIII-92.Chronogrammed’écrituredansunemémoiredynamique.

Uncyclespécifiquederafraîchissementexisteégalement,quiopèresurdeslignesentièresdecellules.Chaquelignedoitêtrerafraîchietypiquementtoutesles5ms,etcelan’estpasfaitautomatiquementparlecircuit:c’estlalogiquedecommandequiestautourquidoits’encharger.

FigureIII-93.Structureinterned’unemémoiredynamiquede22mmotsdenbits.

UntelmodedefonctionnementcorrespondàlastructureinternedelaFigureIII-93.Onvoitque,lorsquelenumérodeligneestprésentésurADRetqu’unfrontdescendantestappliquésurRAS,cenumérodeligneeststockédansleregistredeligne.Savaleurestdécodéeetsélectionneunedesm2lignesdelamatrice.Delamêmefaçon,lorsquelenumérodecolonneestprésentésurADRetqu’unfrontdescendantestappliquésurCAS,cenuméroeststockédansleregistredecolonne,dontlavaleurestégalementdécodéeetsélectionneunedescolonnes.Unedescellulesmémoireestainsisélectionnée.Encasdelecture(W=1)ladonnéeseradisponiblesurDOUT;encasd’écritureilfaudraplacerladonnéesurDIN.Lamiseenœuvredecescircuitsestpluscomplexequecelledesmémoiresasynchrones,puisqu’onnepeutplusprésenterl’adresseentièredirectement.Onestobligédelaprésenterendeuxfois,généralementpoidsfortsd’abord(numérodeligne)etpoidsfaiblesensuite(numérodecolonne),cequipeutêtrefaitàl’aided’unmultiplexeur.

Page 95: INTRODUCTION A L ARCHITECTURE DES ORDINATEURSdiabeto.enseeiht.fr/download/archi/cours/book2_4.5.pdfLa plupart des ordinateurs ont l’organisation générale de la Figure I-1. Figure

95

IV.13.4. Associationdemémoiresstatiquesasynchrones

premièreassociationIlfautd’abordremarquerquedanslesdeuxcas,lamémoireobtenueabienunnombretotaldebitsmémoireégalàlasommedesbitsmémoiredesdeuxparties.Chaqueboîtierinitialpossèdem×2nbitsmémoire,etleursommefaitdoncm×2n+1.Danslapremièreassociation,onaura2nmotsde2mbitssoit2×m×2n=m×2n+1;dansladeuxièmeonauraaussilesm×2n+1bits.

Pourformerunemémoirede2nmotsde2mbits,ilfautmettreessentiellementtoutesleslignesdesdeuxboîtiersencommun,àl’exceptiondeslignesdedonnéesqu’ilfautmettreenparallèle.CeladonnelecircuitdelaFigureIII-94.

FigureIII-94.Associationdemémoiresasynchrones,avecdoublementdelalargeurdesdonnées.

Lorsqu’unaccèsmémoire(lectureouécriture)esteffectué,lesdeuxboîtierssontsélectionnésenmêmetempsàlamêmeadresse,etfournissentouacceptentsimultanémentlesdeuxmoitiésdelargeurmdeladonnéeglobaledelargeur2m.

deuxièmeassociationPourformerunemémoirede2n+1motsdembits,ilvafalloirmettreencommunlesmlignesdedonnées,etdoncilnevaplusêtrepossibledesélectionnerlesdeuxboîtiersenmêmetemps,souspeinedecourt-circuit.Pourunemoitiédesadresses,ilfaudrasélectionnerlepremierboîtier,etl’autrepourl’autremoitiédesadresses.Lamanièrelaplussimpleesticid’utiliserundesbitsdel’adresseden+1bits,parexempleadr[n],pourfairecettesélection(FigureIII-95).

Page 96: INTRODUCTION A L ARCHITECTURE DES ORDINATEURSdiabeto.enseeiht.fr/download/archi/cours/book2_4.5.pdfLa plupart des ordinateurs ont l’organisation générale de la Figure I-1. Figure

96

FigureIII-95.Associationdemémoiresasynchrones,avecdoublementdunombred’adresses.

Cebitestmisenentréed’undécodeur1vers2:s’ilvaut0,c’estleboîtiermémoireduhautquiestsélectionné;s’ilvaut1c’estleboîtierdubas.ToutcelasupposequelesignalCSglobalsoitactif,cars’ilnel’estpas,ledécodeurnesélectionneaucunboîtierLesignalOEsuituntraitementparticulier:pourchaqueboîtier,ilnedoitêtreactifquesileOEglobalestactif,etsileboîtierestsélectionné(CS=1).Onestalorsassuréqu’aucuncourt-circuitn’estpossible,puisquelesOEdesdeuxboîtierssontalorsmutuellementexclusifs.

Danscetteconfiguration,l’espacedesadressesdel’ensembleest[0,2n+1−1];lapremièremoitié[0,2n−1]correspondaupremierboîtier;laseconde[2n,2n+1−1]correspondausecond.Sionavaitutilisélebitdepoidsfaibledel’adresseglobalecommeentréedudécodeur,ladistributiondesadressesentrelesboîtiersauraitétédifférente:l’unauraitcontenulesadressespaires,etl’autrelesadressesimpaires.

IV.14. Exercicescorrigés

IV.14.1. Exercice1:systèmedesécurité

ÉnoncéRéaliserunsystèmedemiseenmarchedesécuritédemachinedangereuse.IlestéquipédedeuxentréesAetBetlamiseenmarcheestcontrôléeparlasortieM.Ilfautpourcelaquelaprocéduresuivantesoitrespectée:

1. AetBdoiventêtrerelâchésinitialement;2. appuyersurA,3. appuyersurB:lamachinesemetenmarche.

Touteautremanipulationarrêteoulaisselamachinearrêtée;ilfautensuitereprendrelaprocédureaupoint1pourlamettreenmarche.

Page 97: INTRODUCTION A L ARCHITECTURE DES ORDINATEURSdiabeto.enseeiht.fr/download/archi/cours/book2_4.5.pdfLa plupart des ordinateurs ont l’organisation générale de la Figure I-1. Figure

97

SolutionOnvaadopterunesolutiondetypeMOORE.Onferaégalementuneconceptionsynchrone,c’estàdirequ’onsupposeraprésenteunehorlogesuffisammentrapidepournerateraucunévénementsurAetB.Legraphed’étatdeceproblèmeestdonnéFigureIII-96.

FigureIII-96.Graphed’étatdusystèmedesécurité,typeMOORE

Enpartantdel’étata,onprogressejusqu’àl’étatcpourlequelM=1sionrespectelaséquencedemiseenmarche.Surcechemin,ontombedansl’étatd’erreuredèsqu’ons’écartedelaprocédure.Lorsqu’onestene,onyrestetantqueAetBnesontpasrelâchéstouslesdeux,conformémentàlaspécificationdel’énoncé.

Onréécritcegraphesousuneformetabulairepourcherchers’ilestsimplifiable(FigureIII-97).

avant aprèsétat A B étata 0 0 aa 0 1 ea 1 0 ba 1 1 eb 0 0 eb 0 1 eb 1 0 bb 1 1 cc 0 0 ec 0 1 ec 1 0 ec 1 1 ce 0 0 ae 0 1 ee 1 0 ee 1 1 e

état Sa 0b 0c 1e 0

FigureIII-97.Tabledetransitionsdugraphedesécurité

Aucunesimplificationn’estpossible;lecircuitpossèdedoncunnombreminimald’étatsde4.Ilfautdonc2basculespourcodercetétat,dontonappelleralessortiesXetY.

Vientmaintenantl’étaped’assignation,durantlaquellenousdevonschoisiruneconfigurationdesbasculesXetYpourchacundesétats.Onassigneraàl’étatalevecteurXY=00,associerauresetdes

Page 98: INTRODUCTION A L ARCHITECTURE DES ORDINATEURSdiabeto.enseeiht.fr/download/archi/cours/book2_4.5.pdfLa plupart des ordinateurs ont l’organisation générale de la Figure I-1. Figure

98

bascules.Pourlesautres,ilestsouhaitablepourobtenirdescalculsplussimplesderespecterlesheuristiquesd’assignation,quirecommandentdeplacercôteàcôtelesétatsfortementreliésdanslegraphe.Onpeutparexemplechoisirl’assignationdelaFigureIII-98.

FigureIII-98.Assignationdesétatsdusystèmedesécurité

Onpeutmaintenantréécrirelatabledetransition,enremplaçantlesétatssymboliquesparleurvecteurassocié(FigureIII-99).

avant aprèsétat A B état00 0 0 0000 0 1 0100 1 0 1000 1 1 0110 0 0 0110 0 1 0110 1 0 1010 1 1 1111 0 0 0111 0 1 0111 1 0 0111 1 1 1101 0 0 0001 0 1 0101 1 0 0101 1 1 01

état S00 010 011 101 0

FigureIII-99.Tabledetransitionsinstanciéedugraphedesécurité

Aucunebasculenesembleparticulièrementadaptéeàceschangementsd’état.Àtitred’exemple,onvautiliserdeuxbasculesT.Onpeutànouveauécrirelatabledetransitioninstanciée,enrajoutant2colonnesTXetTYquisontlesentréesTdesbasculesXetY(FigureIII-100).

Page 99: INTRODUCTION A L ARCHITECTURE DES ORDINATEURSdiabeto.enseeiht.fr/download/archi/cours/book2_4.5.pdfLa plupart des ordinateurs ont l’organisation générale de la Figure I-1. Figure

99

avant aprèsétat A B TX TY état00 0 0 0 0 0000 0 1 0 1 0100 1 0 1 0 1000 1 1 0 1 0110 0 0 1 1 0110 0 1 1 1 0110 1 0 0 0 1010 1 1 0 1 1111 0 0 1 0 0111 0 1 1 0 0111 1 0 1 0 0111 1 1 0 0 1101 0 0 0 1 0001 0 1 0 0 0101 1 0 0 0 0101 1 1 0 0 01

état S00 010 011 101 0

FigureIII-100.Tabledetransitionsinstanciéedugraphedesécurité,aveclesentréesdes2basculesT.

IlsuffitmaintenantdetrouverlesformulesalgébriquespourTXetTY,enfonctiondeX,Y,AetB.OnpeutpourcelautiliserdestablesdeKarnaugh(FigureIII-101).Ontrouve:

1. 𝑇𝑋 = 𝐴𝐵𝑋𝑌 + 𝐴𝑋 + 𝐵𝑋𝑌2. 𝑇𝑌 = 𝐴𝐵𝑋𝑌 + 𝐵𝑌𝑋 + 𝐴𝑋𝑌3. 𝑀 = 𝑋𝑌

FigureIII-101.Simplificationdeséquationsdusystèmedesécurité

IV.14.2. Exercice2:compteur/décompteur

ÉnoncéConcevoiruncircuitséquentielsynchroneavecuneentréeeet4sortiesa,b,c,d,quicompteenbinairesura,b,c,dlorsquee=0etquidécomptelorsquee=1.

SolutionOnpourraitconcevoircecircuitenconstruisantungraphed’états,unetabledetransitions,etc.Maiscetteméthodeneseraitpasgénériqueetavec4bitslegrapheseraitdéjàdegrandetailleavec16états.Ilestpréférableicidecombinerdeuxcircuitsquel’onconnaîtdéjà,lecompteuretledécompteur.

Page 100: INTRODUCTION A L ARCHITECTURE DES ORDINATEURSdiabeto.enseeiht.fr/download/archi/cours/book2_4.5.pdfLa plupart des ordinateurs ont l’organisation générale de la Figure I-1. Figure

100

Onadéjàprésentélescompteursetlesalgorithmesdecomptageetdedécomptageenbinaire(section4).Onréaliseuncompteurbinaire4bitsavec4basculesT;labasculedepoidsfaibleapourentrée1carellechanged’étatàchaquefrontd’horloge;lesautresbasculesontpourentréeleETdesbitsquisontàleurdroite.Undécompteursefaitégalementavec4basculesT;labasculedepoidsfaiblechangeégalementàchaquefront;lesautresbasculeschangentd’étatlorsquetouslesbitsquisontàleurdroitesontdes0.

Lasynthèsedesdeuxestdoncsimple:labasculedepoidsfaibleestcommune,carellechanged’étatàchaquefrontd’horlogedanslesdeuxcas.Pourlesautresbits,ils’agitégalementdefaireunETdanslesdeuxcas,maisdesbitsquisontàdroitepourlecomptageetdel’inversedecesmêmesbitspourledécomptage.Ilsuffitdoncdemettreuninverseurcommandé(unXOR,voirsection4)parlesignaledevantchacundesbitsàprendreencomptedansleET.CelaconduitauschémadelaFigureIII-102,avecuncodeSHDLimmédiat.

module cptdec(rst, h, e : a, b, c, d) // bascule a a := /ta*a+ta*/a; a.clk = clk; a.rst = rst; ta = nb * nc * nd; // bascule b b := /tb*b+tb*/b; b.clk = clk; b.rst = rst; tb = nc * nd; // bascule c c := /tc*c+tc*/c; c.clk = clk; c.rst = rst; tc = nd; // bascule d d := /d; d.clk = clk; d.rst = rst; // inversion de a,b,c,d // commandée par e na = a*/e + /a*e; nb = b*/e + /b*e; nc = c*/e + /c*e; nd = d*/e + /d*e;

end module

FigureIII-102.Compteur/décompteur:schémaetécritureSHDL

IV.14.3. Exercice3:utilisationdesbascules

ÉnoncéConstruireunebasculeDavecunebasculeT,puisunebasculeTavecunebasculeD.Onpourrautiliserdescircuitscombinatoires.

Solution1. BasculeDavecunebasculeT.

Page 101: INTRODUCTION A L ARCHITECTURE DES ORDINATEURSdiabeto.enseeiht.fr/download/archi/cours/book2_4.5.pdfLa plupart des ordinateurs ont l’organisation générale de la Figure I-1. Figure

101

Onpeutseposerunequestionsimple:commentmettreà0unebasculeT?IlsuffitdemettrelavaleurQdelabasculesursonentréeT.Siellevalait0elleyresteetsiellevalait1elles’inverseetpasseà0.

Pourmettreà1unebasculeT,onvoitaussifacilementqu’ilsuffitd’appliquerl’inversedeQsurl’entréeT.

Danslesdeuxcas,onaappliquésurl’entréeTlavaleurQdelabascule,avecuneinversioncommandéeparlavaleurDàmémoriser:XOR(D,Q).

FigureIII-103.BasculeDavecunebasculeT

2. BasculeTavecunebasculeD.

Lasolutionesticiplusdirecte:ilsuffitd’appliquersurDl’équationd’évolutiondelabasculeT,quiest𝑄 ∶= 𝑇𝑄 + 𝑇𝑄

FigureIII-104.BasculeTavecunebasculeD

Page 102: INTRODUCTION A L ARCHITECTURE DES ORDINATEURSdiabeto.enseeiht.fr/download/archi/cours/book2_4.5.pdfLa plupart des ordinateurs ont l’organisation générale de la Figure I-1. Figure

102

Page 103: INTRODUCTION A L ARCHITECTURE DES ORDINATEURSdiabeto.enseeiht.fr/download/archi/cours/book2_4.5.pdfLa plupart des ordinateurs ont l’organisation générale de la Figure I-1. Figure

103

ChapitreV. Programmationduprocesseur32bitsCRAPS/SPARC

Lelangagemachine(etsaformeéquivalentesymboliquediteassembleur)estexécutédirectementparleprocesseur,etilestàcetitrel’intermédiaireobligédetouslescomposantslogicielsd’unordinateur.Mêmes’ilestvraiquepeudegensprogrammentdirectementenassembleur,sonétudeestéclairantepourlacompréhensiondelarelationentrelogicieletmatériel.Lebutdeceprésentchapitreestd’initieràlaprogrammationenassembleurduprocesseurCRAPSautraversdeprogrammesdedifférentesnatures,defaçonàensuitemieuxcomprendresonarchitectureetsonfonctionnement.

V.1. Lelangagemachine,àlafrontièreentrelogicieletmatériel

LangagemachineetISALesinstructionsqu’exécuteunprocesseursontécritesdansunlangageappelélangagemachine,etsontforméesdecodesécritsdansdesmotsmémoiresconsécutifs;onappelleISA(InstructionSetArchitecture)celangageetsonorganisation.L’informatiqueutiliseungrandnombredelangagesdifférents:deslangagesdeprogrammationtelsqueCouJavapourlesprogrammeurs,deslangagesinterprétéstelsqueleslangagesdemacrodessuitesbureautiques,deslangagesdegestiondebasesdedonnées,etc.Maislaparticularitédulangagemachine,c’estd’êtrelelangageintermédiaireenlequeltouslesautreslangagesvontêtretraduits,enuneouplusieursétapes.Ilestsituéàlafrontièreentreleprocesseuretleslogiciels,entrehardwareetsoftware,etleprocesseurestl’interpréteurdecelangage(FigureIII-105),celuiquimetenactionsesinstructions.

FigureIII-105-Touslesprogrammesproduisentdulangagemachine,quiestexécutédirectementparleprocesseur.

ISAgénéraleouspécialisée?Biensûr,ilseraitplusefficaced’avoirunprocesseurquiexécutedirectementunlangageévolué,toutaumoinspourlesprogrammesécritsdanscelangage.Detelsprocesseursexistentouontexisté,notammentpourlelangageLisp,etplusrécemmentpourlelangageintermédiaire(bytecode)utiliséenJava.Cesdeuxlangagessontgénéralistesetpeuventêtreutilisésdanstouteslessituationsconcrètesdel’informatique,etl’espoirdesconcepteursdecesprocesseursétaitd’éleverauniveaudeceslangageslafrontièreentrematérieletlogiciel.MaislebytecodeJavaexploiteunemachineà

Page 104: INTRODUCTION A L ARCHITECTURE DES ORDINATEURSdiabeto.enseeiht.fr/download/archi/cours/book2_4.5.pdfLa plupart des ordinateurs ont l’organisation générale de la Figure I-1. Figure

104

basedepile,peuadaptéeàlacompilationd’autreslangagesdeprogrammationtelsqueC.Finalement,lecompromisgénéralementadoptélorsdelaconceptiond’unnouveauprocesseurestledéveloppementd’uneISAadaptéeàlacompilationdelaplupartdeslangagesdeprogrammationcourants.

ÉvolutiondesISACommetoutestructuresituéeàunefrontière,l’ISAestunéquilibreentredesforcesopposées.LesconcepteursdecompilateurssouhaitentuneISArégulièreetpossédantleplusdepossibilitésentermesd’adressagemémoire,d’opérationsarithmétiques,etc.,alorsquelesarchitectesdesprocesseursveulentuneISAsimpleàimplémenterefficacement.

Uneforceimportantequilimitel’apparitiondenouvellesISAs(denouveauxlangagesmachine)estlademandedesclientsd’unecompatibilitéascendanted’unprocesseurd’unegénérationàl’autre,defaçonàpouvoirfairefonctionnersanschangementleursanciensprogrammes.CetteforcesemanifestedefaçontrèspuissanteaveclesprocesseursdePC(dontl’ISAestsouventdésignéeparx86,parcequelesnomsdesprocesseursseterminentpar86:8086,80286,etc.),pourlaquelletoutchangementconduisantàunenoncompatibilitéestexclu.Ainsi,lesprocesseursx86lesplusrécentscontinuentàmanifesterlabizarreried’écritureenmémoireinverséedetypelittle-endian,parcequ’elleétaitprésenteàl’originesurleprocesseur8bitsIntel8080pourdesmotifsdesimplicitédeconception,etqu’elles’esttransmisepourraisondecompatibilitétoutlelongdelachaîne8080,8085,8086,80286,80386,Pentium,Pentium2,etc.jusqu’auxprocesseursdesPCsactuels.

D’autresprocesseursmoinsconnusontégalementunelignéetrèslongueetrespectable.OnpeutciterleprocesseurARM,undespremiersprocesseurs32bitscommercialisés,quifaitévoluersonISAdefaçonascendantedepuislesannées80jusqu’àmaintenant,etquiéquipeungrandnombredetéléphonesportables,lesconsolesdejeuxportablesNintendoetungrandnombred’appareilsmobiles.

ProcesseursCISCetRISCUnenouvellegénérationdeprocesseursestapparuedanslesannées80,caractériséeparunjeud’instructionlimitéàl’essentiel,d’oùleurnomdeprocesseursRISC(ReducedInstructionSetComputer).Parailleurs,leurISAestgénéralementtrèsrégulière,contientbeaucoupderegistresutilisateurs,etlesinstructionssontcodéessousformed’unmotmémoireunique.Toutcelarendheureuxlesarchitectesduprocesseur,quipeuventconcevoirdesarchitecturestrèsefficacespourcetteISA,etnerendpastropmalheureuxlesconcepteursdecompilateurs,quiontunpeuplusdedifficultéàtraduirelesprogrammes,maisquiapprécientlegainenvitessed’exécution.Paropposition,lesanciensprocesseurstelsquelesx86ontétérebaptisésprocesseursCISC(ComplexInstructionSetComputer),etsicen’étaitl’énormeinvestissementdûausuccèsduPCavecl’ISAx86,lesprocesseursRISCauraientconnusundéveloppementplusimmédiatetpluslarge.

V.2. RessourcesduprogrammeurCRAPS/SPARCLelangagemachinedeCRAPSestunsousensembledulangagemachineduSPARCdeSUN(aucasoùvousnel’auriezpasencoreremarqué,’CRAPS’=’SPARC’àl’envers!),avecuncertainnombredelimitations.C’estdoncunlangagedetypeRISC,quiserapartiellementcompatibleavecleSPARCauniveaubinaire.Néanmoinsiln’exploitepaslanotionSPARCdefenêtrederegistresetiln’apasd’instructiond’arithmétiqueflottante.

Page 105: INTRODUCTION A L ARCHITECTURE DES ORDINATEURSdiabeto.enseeiht.fr/download/archi/cours/book2_4.5.pdfLa plupart des ordinateurs ont l’organisation générale de la Figure I-1. Figure

105

Afinderendreplusconcrèteslesdescriptionsquisontsuivre,onvaprogressivementprogrammerlepetitalgorithmesuivantquifaitlasommedes10élémentsd’untableau:

résultat <- 0 ;

pour i de 0 à 9 faire

résultat <- résultat + TAB[i] ;

fin pour

V.2.1. TypesdedonnéesdeCRAPSCRAPSestunprocesseur32bits:celasignifiequelesmotsmémoirequ’ilmanipuleleplusdirectementont32bitsdelarge,etquetoussesregistressontde32bits.

Lesentierssignéssontcodésencomplémentà2etlesopérationsarithmétiquesdisponiblessontl’additionetlasoustractionsur32bits,lamultiplication16bitsX16bitsvers32bitsetladivision32bits/16bitsvers32bits.Ilnedisposepasderegistrespourlesnombresflottants,nid’instructiond’arithmétiqueflottante.Sidescalculssurdesréelsdoiventêtreeffectués,ilsdoiventêtreexécutéspardeslibrairieslogiciellesspécialisées.

Aucunautretypededonnéesn’estexplicitementsupporté.Leschaînesdecaractères,leslistesetc.devrontêtreassembléesetmanipuléesencombinantlesopérationssurlesoctetsetlesmotsde32bits.

V.2.2. LesregistresdeCRAPS

LesregistresbanalisésCRAPSpossède32registresdirectementaccessiblesauprogrammeur(FigureIII-106).Onlesnote%r0,…%r31.Ilssonttousaccessibleslibrementenlectureetenécriture,mais%r0aunstatutspécial:ilvauttoujours0enlecture,quellesquesoientlesécrituresqu’onfassededans.Cettebizarrerieestenfaittrèscommodeetonverraparlasuitecommentelleestexploitée.

FigureIII-106.LesregistresduprocesseurCRAPS.Ilssonttousaccessiblesauprogrammeur,maiscertainsontdéjàdesfonctionsassignéesparleprocesseur.

Page 106: INTRODUCTION A L ARCHITECTURE DES ORDINATEURSdiabeto.enseeiht.fr/download/archi/cours/book2_4.5.pdfLa plupart des ordinateurs ont l’organisation générale de la Figure I-1. Figure

106

r31serautilisécommeregistreinstructionparleprocesseuretr30commecompteurordinal;r29seragénéralementlepointeurdepileetr28serviraàstockerl’adressederetourdesinstructionscall(maiscesconventionsnesontpasimposéesparlematériel).

Leprogrammeurdisposedoncd’unnombreimportantderegistresqu’ilpeututiliseràsaguisedanssesopérationslocales,cequiestd’ungrandconfortetpermetdelimitergrandementlenombred’accèsàlamémoirecentrale.

Notrealgorithmesetransformedelafaçonsuivante:

%r1 <- 0;

pour %r2 de 0 à 9 faire

%r3 <- TAB[%r2] ;

%r1 <- %r1 + %r3 ;

fin pour

Troisregistresutilisateurssontdéjàmobilisés,etcen’estqu’undébut!Onvoitl’intérêtqu’offreauprogrammeuruneISAfournissantbeaucoupderegistresutilisateurs.

V.2.3. LemodèlemémoiredeCRAPSCommelaplupartdesprocesseursactuels,l’ISAdeCRAPSvoitlamémoiresousformed’unruband’octetssituésàdesadressesconsécutives(FigureIII-107).

FigureIII-107.LamémoiredeCRAPSestunrubandemots,numérotéspardesadressesallantde0à232–1.

LesadressesserontprésentesdansCRAPSsousformedemotsde32bits,définissantainsiunemémoirecentralepouvantcompterjusqu’à232cases,soit4giga-octets,lesadressesallantde0à232−1.Lefaitd’avoir32lignesd’adressesseracommodedansCRAPSpourmanipulerlesadressesàl’intérieurdesregistres.Cechoixn’étaitpasobligatoire,etonauraitpuimaginerunnombredelignesd’adressesinférieurousupérieuràlatailledumotmémoireduprocesseur,ici32.

Enpratique,l’ensembledecetespaced’adressagen’estsouventpasentièrementoccupépardelamémoirephysique.Unmécanismededécodagedesadressesquel’onétudieraauchapitresuivantpermettrad’associerunblocd’adressesparticulieràunboîtiermémoireparticulier;parailleurslalectureetl’écritureàcertainesadressesneconduirapasàunsimplestockage,maisdéclencheralacommandedecertainscircuits,telsqueletimeroulecircuitd’entrées-sorties,selonunmécanismeappeléentrées/sortiesmappéesenmémoire,dontonétudieral’implémentationauchapitresuivant,maisquel’onapprendraàutiliserentantqueprogrammeurunpeuplusloindanscechapitre.

Reprenonsnotrepetitalgorithmedesommedesnombresd’untableau.Onvadésignerparmem[adr]l’octetenmémoiresituéàl’adresseadr.NotretableauTABenmémoirecentraleestformédemotsde32bitssituésconsécutivement.

Notrealgorithmedevient:

Page 107: INTRODUCTION A L ARCHITECTURE DES ORDINATEURSdiabeto.enseeiht.fr/download/archi/cours/book2_4.5.pdfLa plupart des ordinateurs ont l’organisation générale de la Figure I-1. Figure

107

%r1 <- 0 ;

%r4 <- adresse de TAB ;

pour %r2 de 0 à 9 faire

%r3 <- mem[%r4+%r2] ;

%r1 <- %r1 + %r3 ;

fin pour

V.2.4. LesinstructionsdeCRAPSTouteslesinstructionsdeCRAPSsontconstituéesd’unseulmotde32bits.Cettecaractéristiquedesinstructionsd’avoirunetaillefixed’unmotesttypiquedesprocesseursRISC,etellefacilitegrandementcertainsaspectsdeleurconception.LesinstructionsdeCRAPSsontforméesdeplusieursgroupes,chacunayantunecertainestructuredecodage(FigureIII-108).

FigureIII-108.Structurebinairedesdifférentsgroupesd’instructionsdeCRAPS.

Lavaleurdesdeuxbitsdepoidsfortpermetd’identifierimmédiatementlegroupedel’instruction.LetableaudelaFigureIII-109donnelasignificationdeleursvaleurspourleprocesseurCRAPS.

FigureIII-109.Significationsdesvaleursd’opcodes.

Lesdifférentescombinaisonspossiblessurlesformatsd’instructionsconduisentautableaud’instructionsdelaFigureIII-110.

Page 108: INTRODUCTION A L ARCHITECTURE DES ORDINATEURSdiabeto.enseeiht.fr/download/archi/cours/book2_4.5.pdfLa plupart des ordinateurs ont l’organisation générale de la Figure I-1. Figure

108

FigureIII-110.Lesgroupesd’instructionsduprocesseurCRAPS.

Cetableauestremarquablementréduit;SPARC/CRAPSméritevéritablementsonqualificatifdeprocesseurRISC.LesversionssuivantesduSPARC,notammentl’UltraSparcIIsur64bits,vontajouteràcetensemblebeaucoupdeformatsd’instructionssupplémentaires,etperdredecetteélégantesimplicité.

LangageassembleurDanscestableauxFigureIII-110,lesinstructionsontétéécrites,nonpasenlangagemachinequiauraitétépeucompréhensible,maisdansuneécrituresymboliqueéquivalentediteécritureassembleur.Pourchaqueprocesseur,leconstructeurfournitledescriptifcompletdujeud’instructionenlangagemachine,maisaussiuneécritureassembleurconseilléeéquivalente.Lesdéveloppeurspeuventalorsécriredesprogrammesassembleurs,ditsencoreassembleurs,dontlerôleestdetraduireuntextesourceécritenlangageassembleur,enlasuitedescodesmachinecorrespondants.Letermeassembleurdésignedoncàlafoislelangageduprocesseur(soussaformesymbolique)etleprogrammequitraduituntextesourcedulangageassembleurverslelangagemachine.LaFigureIII-111montreuneinstructionécriteenassembleur,etsoncodemachineéquivalent.

addcc %r2, 10, %r3 ⇔ 10.00011.010000.00010.1.0000000001010

FigureIII-111.UneinstructionenassembleurCRAPS/SPARCetlecodemachinecorrespondant.

InstructionssynthétiquesCertainesinstructionssemblentmanquer.Parexemple,iln’yapasd’instructiondecopied’unregistreversunautre,oud’instructionquicompare2registres,ouencored’instructionquimetteàzérounregistre.Enfait,iln’estpasnécessairequecesinstructionsexistent,carellessontdescasparticuliersd’instructionsplusgénérales.Parexemplelamiseà0d’unregistre%ripeutsefairepar

Page 109: INTRODUCTION A L ARCHITECTURE DES ORDINATEURSdiabeto.enseeiht.fr/download/archi/cours/book2_4.5.pdfLa plupart des ordinateurs ont l’organisation générale de la Figure I-1. Figure

109

l’instructionorcc%r0,%r0,%ri.Onexploiteicilefaitque%r0vauttoujours0;leORde0avec%r0(quivaut0)estainsistockédans%ri,cequiestlerésultatsouhaité.

DanslasyntaxeduprocesseurCRAPS/SPARCfigurentainsidesinstructionsditessynthétiques,quisontenfaitremplacéesaumomentdel’assemblageparlaoulesinstructionséquivalentes.LaFigureIII-112montrel’ensembledesinstructionssynthétiquesdisponiblespourCRAPS.

Instruction Effet implémentation

clr %ri metàzéro%ri orcc %r0, %r0, %ri

mov %ri,%rj copie%ridans%rj orcc %ri, %r0, %rj

inccc %ri incrémente%ri addcc %ri, 1, %ri

deccc %ri décrémente%ri subcc %ri, 1, %ri

set val31..0, %ri copievaldans%ri sethi val31..8, %ri

orcc %ri, val7..0, %ri

setq val12..0, %ri copievaldans%ri orcc %ri, val12..0, %ri

cmp %ri, %rj compare%riet%rj subcc %ri, %rj, %r0

tst %ri testenullitéetsignede%ri orcc %ri, %r0, %r0

negcc %ri Calculel’opposéde%ri subcc %r0, %ri, %ri

nop nooperation sethi 0,%r0

call <label> Appeldesous-programmeterminal

or %r0, %r30, %r28

ba <label>

rcall <label> Appeldesous-programmeavecsauvegardedel’adressederetour

push %r28

call <label>

pop %r28

ret retourdesous-programme add %r28, 1, %r30

push %ri empile%ri sub %r29, 1, %r29

st %ri, [%r29]

pop %ri dépile%ri ld [%r29], %ri

add %r29, 1, %r29

FigureIII-112.LesinstructionssynthétiquesdeCRAPS.Ellessonttraduitesenuneécritureéquivalente.

Initialisationd’unregistreparuneconstanteL’instructionsynthétiqueset val,%risertàinitialiserunregistre%riavecuneconstantediteimmédiate,c’estàdirefourniedirectementdansleprogramme.Cetteinstructionsynthétiqueestremplacéepardeuxinstructionssethi val31..8,%rietorcc %ri,val7..0,%riquivonteffectivementbienfairecetteaffectation,enpositionnantd’abordles24bitsdepoidsfortavecsethi,puisles8bitsdepoidsfaiblesavecorcc.Lefaitd’avoiràexécuterdeuxinstructionspourinitialiserunregistreàunevaleurimmédiateesttypiquedesprocesseursRISC.Ceux-ciayantdes

Page 110: INTRODUCTION A L ARCHITECTURE DES ORDINATEURSdiabeto.enseeiht.fr/download/archi/cours/book2_4.5.pdfLa plupart des ordinateurs ont l’organisation générale de la Figure I-1. Figure

110

instructionsdelatailledeleurmotmémoire,ilsnepeuventpasdansuneseuleinstructionfournirunedonnéeimmédiatedecettetaille.Onnoteralaprésencedel’instructionsynthétiquesetq(rajoutéeparrapportauSPARC)quipermetdefaireunetelleinitialisationenuneseuleinstructionlorsquelaconstanteestpetite(13bitssignée,c’estàdireentre-4096et+4095).Elleestéquivalenteàorcc %r0,val,%riquitireencorepartidufaitque%r0vaut0.

Onnoteraégalementlatrèsclassiqueinstructionmov %r1,%rjquienréalitéest:orcc %ri,%r0,%rj,réalisantbienlacopieducontenude%ridans%rj.

Nouspouvonsmaintenantmettreuncertainnombred’instructionsCRAPSenfacedeslignesdenotrepetitalgorithme:

clr %r1 // %r1 <- 0 ;

set TAB, %r4 // %r4 <- adresse de TAB ;

pour %r2 de 0 à 9 faire

ld [%r4+%r2], %r3 // %r3 <- mem[%r4];

addcc %r1, %r3, %r1 // %r1 <- %r1 + %r3 ;

fin pour

Dansceprogramme,nemanquentquelesinstructionsquivontpermettred’implémenterlastructuredecontrôlepour … fin pour.Touteslesautresinstructionssontdenatureséquentielle,c’estàdirequ’elless’exécutentdansl’ordreoùellessontprésentesenmémoire,disposéesàdesadressescroissantes.

V.2.5. RupturesdeséquenceenCRAPSBiensûr,siunprocesseurn’étaitdotéqued’instructionsséquentielles,ilseraitincapabled’exécuterlamoindretâcheunpeucomplexe,puisqu’incapabled’implémenterdesbouclesoudesstructuresdecontrôledetype‘tantque’.Ilfautdoncabsolumentqu’ilsoitdotéd’instructionsditesderupturedeséquence,quipermettent,nonseulementde’sauter’àuneinstructionquin’estpaslasuivante,maisaussidefairecesautdefaçonconditionnelle,enfonctiondesrésultatsdesopérationsprécédentes.

UnregistrespécialdeCRAPS/SPARCappelé%pc(programcounter),nondirectementaccessibleauprogrammeur,contientenpermanencel’adressedel’instructionencoursd’exécution.Aprèsl’exécutiond’uneinstructionséquentielle,%pcestsystématiquementincrémenté,desortequ’aucycled’exécutionsuivant,lecontrôleestpasséàl’instructionsuivanteenmémoire.

BranchementsinconditionnelsPoureffectuerunsautinconditionneltelqueba addr,ilsuffitquecetteinstructionn’effectuepasl’incrémentationde%pc,maisaucontraire’force’lavaleurdel’adresseaddrdans%pc.Ainsiaucycled’exécutionsuivant,leprocesseurchargeral’instructionsituéeàcettenouvelleadresse,etlecontrôleseradonttransféréàcepointdansleprogramme.

BranchementsconditionnelsCesautpeutégalementêtrefaitdefaçonconditionnelleaveclesinstructionsbcctellesquebne, beq, bpos,etc.Achacunedecesinstructionsestassociéuntestbooléen;sicetestestvérifié,lesautesteffectué(%pcestalorsaffectéavecl’adressedesaut);sinon%pcestincrémenté,c’estàdire

Page 111: INTRODUCTION A L ARCHITECTURE DES ORDINATEURSdiabeto.enseeiht.fr/download/archi/cours/book2_4.5.pdfLa plupart des ordinateurs ont l’organisation générale de la Figure I-1. Figure

111

quelesautn’estpasfaitetquelecontrôlecontinueenséquencedansleprogramme,àl’instructionquisuitcebranchement.

Letestenquestionestfaitsurlavaleurde4bitsN,Z,V,Cappelésindicateursouflags,quisontpositionnésaprèscertainesinstructionsarithmétiquesetlogiques.Ilsontlessignificationssuivantes:

• Nindiquequelerésultatdel’opérationestnégatif,c’estàdirequesonpoidsfortestà1.

• Zindiquequelerésultatdel’opérationestnul.

• Vindiquequ’ilyaeudébordementd’uneadditionoud’unesoustractionsignée.

• Cindiquequ’ilyaeuuneretenuelorsd’uneadditionouempruntlorsd’unesoustraction.

Lesinstructionsquiaffectentlesflagsontunnomquiseterminegénéralementpar’cc’:addcc, xorcc,etc.Pourêtresûrdesflagsquisontaffectésounonparuneinstruction,ilfautsereporteràsadescriptiondétaillée,présenteàlafindel’ouvrage.

Lesinstructionsdebranchementconditionnelbcceffectuentlesautpourcertainescombinaisonsdevaleursdesflags.Lestableauxdes3figuressuivanteslesdécrivent,lepremiertableauprésentantlesbranchementsconditionnelslesplussimplesquinefontintervenirqu’unseulflag,lesecondprésentantlesbranchementsassociésàunearithmétiquesignéeetletroisièmelesbranchementsassociésàunearithmétiquenonsignée.

Instruction Opération Testba Branchalways 1

beq(synonymes:be,bz) Branchonequal Z

bne(synonyme:bnz) BranchonNotEqual notZ

bneg(synonyme:bn) BranchonNegative N

bpos(synonyme:bnn) BranchonPositive notN

bcs(synonyme:blu) BranchonCarrySet C

bcc(synonyme:bgeu) BranchonCarryClear notC

bvs BranchonOverflowSet V

bvc BranchonOverflowClear notV

FigureIII-113.Branchementsconditionnelsassociésàunseulflag.

Instruction Opération Testbg(synonyme:bgt) Branchonequal not(Zor(NxorV))

bge BranchonGreaterorEqual not(NxorV)

bl(synonyme:blt) BranchonLess (NxorV)

ble BranchonLessorEqual Zor(NxorV)

FigureIII-114.Branchementsconditionnelsassociésàunearithmétiquesignée.

Page 112: INTRODUCTION A L ARCHITECTURE DES ORDINATEURSdiabeto.enseeiht.fr/download/archi/cours/book2_4.5.pdfLa plupart des ordinateurs ont l’organisation générale de la Figure I-1. Figure

112

Instruction Opération Testbgu BranchonGreaterUnsigned not(ZorC)

bgeu(synonyme:bcc)

Branchongreaterthan,orequal,unsigned

notC

blu(synonyme:bcs) Branchonlessthan,unsigned C

bleu BranchonLessorEqualUnsigned ZorC

FigureIII-115.Branchementsconditionnelsassociésàunearithmétiquenonsignée.

Lesbranchementsdupremiertableauquinefontintervenirqu’unseulflagpeuventêtreutilisésdanslaplupartdessituationssimples,etonpeutenlescombinantn’utiliserqu’euxdansdessituationspluscomplexes.

Lesbranchementsassociésàl’arithmétiquesignéeetnonsignéedesdeuxtableauxsuivantsnesecomprennentquesionsupposequ’unecomparaisonentredeuxvaleursvientd’êtrefaite,c’estàdiredansunprogrammedelaforme:

cmp %ri, reg/val

bxx saut

bxxreprésenteunedesinstructionsdebranchementconditionnel,etreg/valreprésenteunregistreouuneconstante.L’instructionsynthétiquecmp %ri,opestéquivalenteàsubcc %ri,op,%r0c’estàdirequ’elleeffectuelasoustraction%ri–op(oppouvantêtreunregistreouuneconstantesignéesur13bits)danslebutd’obtenir,nonpaslavaleurdurésultatentantquetelle(quiestéliminéedans%r0),maisplutôtlavaleurdesflagsaprèscettesoustraction.Ceux-cipermettenteneffetdetoutsavoirsurlespositionsrespectivesde%rietdereg/val:

• %ri=op⇔%ri−op=0,soitZ.

• %ri>op⇔%ri−op>0,soitN=0etZ=0,soit𝑁 + 𝑍.

• %ri≥op⇔%ri−op≥0,soit𝑁.

• %ri<op⇔%ri−op<0,soitN.

• %ri≤op⇔%ri−op≤0,soitN=1ouZ=1,soitZ+N.

Enarithmétiquesignée,ondoitremplacerNpar(N+V)dansceséquationspourtenircomptedessituationsoùoncomparedesgrandsnombresenvaleurabsolue,etoùlasoustractionprovoqueundébordementmaisquipermettoutdemêmedeconclure.CelaconduitalorsauxéquationsdutableauFigureIII-114.

Enarithmétiquenonsignée,ondoitremplacerNparC,carCvaavoirlamêmevaleurqueNlorsdelasoustractiondepetitesvaleurs,maisvaégalementpermettredeconcluredansdessituationsoùlasoustractionaunegrandeamplitudeetchangelesignedurésultat,tellesquelacomparaisonde0x00000001et0xFFFFFFFF:leursoustractiondonne0x00000002,avecN=0etC=1.SeulCindiquedanstouslescasqu’ilafalluemprunterpoursoustrairelesdeuxarguments.CelaconduitauxéquationsdutableauFigureIII-115.

Page 113: INTRODUCTION A L ARCHITECTURE DES ORDINATEURSdiabeto.enseeiht.fr/download/archi/cours/book2_4.5.pdfLa plupart des ordinateurs ont l’organisation générale de la Figure I-1. Figure

113

Maintenant,noussommesprêtsàterminerlaprogrammationdenotrealgorithme:

/////// somme des éléments d’un tableau //////

clr %r1 // %r1 <- 0 ;

set TAB, %r4 // %r4 <- adresse de TAB ;

clr %r2 // index i

loop: ld [%r4+%r2], %r3 // %r3 <- TAB[i];

addcc %r1, %r3, %r1 // %r1 <- %r1 + %r3 ;

inccc %r2

cmp %r2, 9

bleu loop // fin pour

%r2estinitialiséà0audébutdelabouclepour…finpour.Enfindeboucle,%r2estincrémenté(incc %r2),puiscomparéà9.Entouterigueurilfaututiliserbleupuisqu’onfaituntest≤nonsigné,maisbposauraitfonctionnéégalementcarlesvaleursdesindicesrestentpetites.

BranchementsrelatifsPourtouslesbranchementsquenousvenonsdevoir,baetbcc,cen’estpasl’adresseabsoluedusautquiestcodée,maisundéplacementrelatifàcetteadresse.Sionreprendlecodagebinairedecesinstructions(FigureIII-108),onvoitquelebranchementestcodédanslechampdisp22quicodeundéplacementsigné,ennombredemots.Ledéplacementestsigné,cequisignifiequ’unevaleurnégativeconduiraàunsautenarrièredansleprogramme,etundéplacementpositifàunsautenavant.Ainsi,puisquel’instructionencoursd’exécutionasonadressestockéedansleregistre%pc,lesautconduiraàfairel’affectation:

%pc←%pc+disp22

Parexemple,l’instructiondenotreprogrammebne loopdécritunsaut(conditionnel)de4instructionsenarrière,soit:

00.0.1001.010.1111111111111111111100 bne loop

Coderlesautsousformed’undéplacementprésentedeuxavantages:

• c’estpluséconomiqueenmémoire,puisquetoutlesautestcodéenuneinstructiond’unmot.

• l’instructionobtenueesttranslatable,c’estàdirequ’unprogrammequinecomprendquedetellesinstructionspeutêtreplacén’importeoùenmémoire.C’estunecaractéristiqueimportantedesprogrammeslorsqu’ilsdoiventêtrechargésparlesystèmed’exploitationàuneplacelibreenmémoire.

Lesauteffectuéparcesinstructionsnepeutpasêtrefaitd’uneextrémitédelamémoireàl’autre.OnpeutvoirsurleformatbinairedesinstructionsFigureIII-108queledéplacementestcodésur22bits,etdonconnepeutpasfaireunsautdeplusde221instructionsenavantouenarrière.Enpratiquec’estunevaleurtrèssuffisantetantquelesautestfaitàl’intérieurd’unmêmeblocdeprogramme.

BranchementsabsolusDanscertainessituations,onpeutavoirlebesoindesebrancheràuneadresseabsolue,etnonuneadresselocaleetrelativeaublocdecodecourant.Lesystèmed’exploitationacebesoin,lorsqueson

Page 114: INTRODUCTION A L ARCHITECTURE DES ORDINATEURSdiabeto.enseeiht.fr/download/archi/cours/book2_4.5.pdfLa plupart des ordinateurs ont l’organisation générale de la Figure I-1. Figure

114

schedulerdetâchesvaenleverlecontrôleàunetâchepourledonneràuneautreparexemple,oulorsqu’ilvaexécuterunsous-programmed’interruption.Nousenverronsdesexemplesplusloindanscechapitre.

Danscecas,ondoitmanipulerdirectementlecompteurordinal,c'est-à-direleregistre%r31,quiestdirectementaccessibleauprogrammeur.

V.2.6. Lesmodesd’adressagedeCRAPSUnmoded’adressageestuntyped’accèsauxdonnéespourleprocesseur.PourCRAPS,ilssontaunombrede5:

• l’adressageregistre:ladonnéeestdansunregistre,spécifiéparsonnuméro.Parexemple:

addcc %r1, %r2, %r3

Iciles3donnéesmanipuléessontdansdesregistres.

• l’adressageimmédiat:l’instructionelle-même,danssoncodageenlangagemachine,contientladonnée.Parexemple:

addcc %r1, 2, %r3

Iciladeuxièmedonnée(2)estcodéedanslechampsimm13del’instruction.

• l’adressagedirect(ouabsolu):l’instructioncontientl’adressedeladonnée.Parexemple:

ld [600], %r1

%r1estchargéavecladonnéesituéeenmémoireàl’adresse600.Cetteadresse600estcodéedansl’instructionelle-même(unpeucommedansunadressageimmédiat),danssonchampsimm13.Commecettevaleurnepeutpasdépasser4095,cemoded’adressageestd’unusagetrèslimitédansCRAPS.

• l’adressageindirect:l’instructioncontientl’adressedel’adressedeladonnée.Parexemple:

ld [%r1], %r2

%r2estchargéavecladonnéesituéeàl’adressecontenuedans%r1.«L’adressedel’adresse»esticilenuméroduregistre(1)quicontientl’adressedeladonnée.Cemoded’adressageestindispensablepouraccéderauxélémentsd’untableaudetaillenonconnueapriori.C’estparexempleceluiqu’onautilisédansnotreprogrammedecalculdelasommedesélémentsd’untableau,pouraccéderauxnombresenmémoire.

• l’adressageindirectavecdéplacement.Parexemple:

ld [%r1-2], %r2

Cecasestsimilaireauprécédent,maisonajouteaucontenuduregistreuneconstante(ici-2)pourobtenirl’adressedeladonnée.

V.3. Directivesd’unprogrammeassembleur

Page 115: INTRODUCTION A L ARCHITECTURE DES ORDINATEURSdiabeto.enseeiht.fr/download/archi/cours/book2_4.5.pdfLa plupart des ordinateurs ont l’organisation générale de la Figure I-1. Figure

115

Sionchercheàassemblereffectivement,àl’aidedeCRAPSEMUparexemple,leprogrammedesommedesélémentsd’untableauétudiéàlasectionprécédente,lesymboleTABseradéclarécommeindéterminé.Ilesteneffetcenséreprésenterl’adressededébutdutableau,maisrienn’aétéspécifiépourl’initialiser.Unedirectivedansunprogrammeassembleurestunelignequinecorrespondpasàuneinstruction,maisquispécifie:

• lalocalisationenmémoired’unblocd’instructionsoudedonnées.• laréservationet/oul’initialisationd’unblocdedonnées.

PournotretableauTAB,nousavonsbesoindespécifieràlafoissonadresse,etsoncontenuinitial,sionsupposequ’ilestdonnéetnonqu’ilestlerésultatd’uncalculantérieur.Leprogrammesuivantcontientlesdirectivesnécessaires:

;;;;;;;;;; zone de programme ;;;;;;;;;

.org 0

clr %r1 // %r1 <- 0 ;

set TAB, %r4 // %r4 <- adresse de TAB ;

clr %r2 // pour i de 0 à 9

loop: ld [%r4+%r2], %r3 // %r3 <- TAB[i];

addcc %r1, %r3, %r1 // %r1 <- %r1 + %r3 ;

inccc %r2

cmp %r2, 9

bleu loop // fin pour

ba *

;;;;;;;;;; zone de données ;;;;;;;;;

.org 0x100

TAB .word 12, -4, 5, 8, 3, 10, 4, -1, 1, 9

ADRESSED’ASSEMBLAGELadirective.orgchangel’adressed’assemblagecourante.Avec.org0,leprogrammeseraassembléàpartirdel’adresse0.LetableauTABserasituéplusloinenmémoire,àpartirdel’adresse0x100,grâceàladirective.org0x100.

ALLOCATIONETINITIALISATIONDEMOTSENMEMOIRELadirective.wordfournitunelistedenombres,écritsendécimal,hexadécimaloubinaire,quiserontplacésenmémoireàpartirdel’adressed’assemblagecourante.Dansnotreprogrammeexemple,celanouspermetdecréeruntableauetdel’initialiserstatiquement(c’estàdireavantlelancementduprogramme)avec10motsde32bits.Voicicequedonnelelistingd’assemblagecomplet,quiimprimetouteslesadressesmémoire(colonnedegauche)etleurcontenu:

00000000 .org 0

00000000 82900000 clr %r1

00000001 12000002 set TAB, %r4

00000002 88912000

00000003 84900000 clr %r2

00000004 C6010002 loop: ld [%r4+%r2], %r3

00000005 82804003 addcc %r1, %r3, %r1

00000006 8480A001 inccc %r2

Page 116: INTRODUCTION A L ARCHITECTURE DES ORDINATEURSdiabeto.enseeiht.fr/download/archi/cours/book2_4.5.pdfLa plupart des ordinateurs ont l’organisation générale de la Figure I-1. Figure

116

00000007 80A0A009 cmp %r2, 9

00000008 08BFFFFB bleu loop

00000009 10800000 ba *

00000100 .org 0x100

00000100 0000000C TAB .word 12, -4, 5, 8, 3, 10, 4, -1, 1, 9

00000101 FFFFFFFC

00000102 00000005

00000103 00000008

00000104 00000003

00000105 0000000A

00000106 00000004

00000107 FFFFFFFF

00000108 00000001

00000109 00000009

Parexempleàl’adresse0x100ontrouve0x0000000C,c’estàdire12;àl’adresse0x101ontrouve0xFFFFFFFC,c’estàdire-4,etc.

UTILISATIONDESYMBOLESOnpeututiliserdessymbolespourreprésenterdesvaleursconstantesdefaçonpluslisibledansunprogramme.Onutilisepourcelauneécrituredutype:

N = 100

Danscetexemple,partoutoùNapparaîtra,ilseraremplacépar100.Parexemplesionécrit:set N, %r1,toutsepassecommesionavaitécritset 100, %r1.

Parailleurs,unearithmétiqueestutilisablesurdetelssymboles.Sionvoulaitinitialiseruntableauavecles3premiersmultiplesde15,onécrirait:

N = 15

TAB .word N, 2*N, 3*N

Detellesexpressionsarithmétiquespeuventcomporterdessignes’-’,’+’,’*’,’/’etdesparenthèsesaveclasyntaxeetlasémantiquehabituelle.Biensûr,onauracomprisquelescalculssurcesexpressionssonteffectuésaumomentdelaphased’assemblageetnonaumomentdel’exécutionduprogramme.Siparexempleonécrit:

N = 15 set 2*N+4, %r1

,toutsepassecommesionavaitécrit:set 34, %r1

V.4. Exempledeprogramme:cribled’ÉratosthèneAfind’illustrerdefaçonplusparlantelesélémentsdeprogrammationenassembleurquiviennentd’êtreprésentés,onvaécrireunprogrammequirecherchetouslesnombrespremiersinférieursàunecertainelimiteN,parlaméthodeducribled’Eratosthène.

ALGORITHMECetteméthodeconsisteàconstruireuntableauTAB[i],0≤i≤ndanslequelTAB[i]=0signifiequeiestpremier,etTAB[i]=1signifiequein’estpaspremier.Pourcelaonremplitd’abordtoutletableaudezéros.Ensuite,àpartirdei=2,onmetà1TAB[2*i],TAB[3*i],…jusqu’àlafindutableau,puisque

Page 117: INTRODUCTION A L ARCHITECTURE DES ORDINATEURSdiabeto.enseeiht.fr/download/archi/cours/book2_4.5.pdfLa plupart des ordinateurs ont l’organisation générale de la Figure I-1. Figure

117

2*i,3*i,…nesontpaspremiers.Onchercheensuite,après2,lepremierindiceidutableaupourlequelTAB[i]=0.Enl’occurrencec’est3,quiestnécessairementpremiercarsinonilauraitétécochéprécédemment.Onmetalorsà1TAB[2i],TAB[3i],…jusqu’àlafindutableau,puisque2i,3i,…nesontpaspremiers.

OnrecommenceensuiteaveclaprochainevaleurdeipourlaquelleTAB[i]=0,quiestnécessairementpremière,etc.Onpeutarrêterceprocessusdèsqueiatteint 𝑁,caronpeutfacilementmontrerqu’alorstouslesnombresnonpremiersontdéjànécessairementétémarquésà1dansletableau.

Onpeuttraduirecetteméthodeparl’algorithmesuivant:

pour i de 0 à N-1

TAB[i] <- 0 ;

fin pour

pour i de 2 à racine(N)

si TAB[i] = 0 alors

j <- 2*i ;

tant que (j < N)

TAB[j] <- 1 ;

j <- j + i ;

fin tq

fin si

fin pour

PROGRAMMATIOND’aprèsl’algorithme,lesélémentsdutableauTABsontseulementlesvaleurs0ou1.Untableaudebitsauraitfournilecodagelepluscompact,maisauraitétédifficileàmanipuler.PuisqueCRAPSn’aquedesaccèsmémoiredetypemot,onvasecontentericid’untableaudemotsde32bitspourstockercesvaleurs;cetableauoccuperadoncN*4octets.

Commençonsd’abordparlamiseàzérodesélémentsdutableau:

N = 300

TAB = 0x150

set TAB, %r1 // %r1 = pointeur en début de tableau

set N, %r5 // %r5 = N durant tout le programme

clr %r2 // pour i de 0 à N-1

loop: st %r0, [%r1+%r2] // TAB[i] <- 0

inccc %r2 // élément suivant

cmp %r2, %r5

blu loop ; fin pour

Oncherchedonclesnombrespremiersjusqu’à300,onsupposeiciqu’ilyaunezonedemémoirevivelibreàl’adresse0x150,oùonvastockerlesélémentsdutableauTAB.

Onaimplémentéstrictementl’algorithme,avec%r3commeindicedansletableauet%r1commepointeursurledébutdutableau.Pourécriredansletableau,onnepeutemployerquel’instructionstd’écritureenmémoire.Laformegénéraledecetteinstructionétant:st %ri, [op+%rj],leregistreàécrireseranécessairement%r0(quivaut0)etl’adressedumotde32bitsàécriresera

Page 118: INTRODUCTION A L ARCHITECTURE DES ORDINATEURSdiabeto.enseeiht.fr/download/archi/cours/book2_4.5.pdfLa plupart des ordinateurs ont l’organisation générale de la Figure I-1. Figure

118

%r1+%r2.Onfaiticilechoixdegarderunpointeurfixe%r1endébutdetableau,etdeluiajouterundéplacementvariable%r2pouraccéderàunélémentquelconquedutableau.Celaconduitàl’instruction:

st %r0,[%r1+%r2] // TAB[i] <- 0

Lestroisinstructionssuivantessontrelativesàlarecherchedel’indicesuivant.Oncommenced’abordparincrémenterl’indice:

inccc %r2 // élément suivant

Ilfautensuitevérifierquel’indiceestinférieuràlalimiteN−1:

cmp %r3, %r5

Cetteinstructionsynthétiquecmp %r3, %r5équivautàl’instructionsubcc %r3, %r5, %r0.Aprèssonexécution,lesflagssontpositionnésenfonctiondelavaleurde%r3−N,c’estàdiredei−N.Puisquel’algorithmementionneunerelationd’inégalité,c’estlavaleurduflagNquinousintéresse.Ona:

N=1⇔i−N<0⇔i<N⇔i≤N−1

Ondoitdoncutiliserl’instructionbneg,quieffectuelebranchementversledébutdelabouclesiN=1:

bneg loop // fin pour

Enfait,puisqu’ils’agitd’unecomparaisonnonsignée,ilestmêmepréférabled’utiliserlebranchementblu(synonyme:bcs),quifaitunecomparaisondetypeinférieurstrict,nonsignée.Ellepermettraeneffetd’étendrel’algorithmeàdesvaleursdeNtrèsgrandes,jusqu’aumaximumpossiblesur32bits.Onécrira:

blu loop // fin pour

Onvientdetraduirelittéralementl’algorithmequiétaitdonné,àlafaçond’uncompilateur,maisonpeutrendrececodepluscompactetplusefficace.

Danslerestedel’algorithme,lastructuredecontrôledeplushautniveauestdelaformepouride2à 𝑁...finpour.Cettefoisl’indiceiestutilisédefaçoncroissante.Onvaletraduirecommedanslapremièreversiondel’initialisationdutableau:

setq 2,%r2 // pour i de 2 a racine(N)

loopi : ...

<corps de la boucle>

...

nexti: inccc %r2

cmp %r2, RN

bleu loopi // fin pour

Onremarqueral’usagedel’instructionsynthétiquesetqpourinitialiserunepetiteconstante,pluséconomiquequesetquiutilisedeuxinstructions.RNestuneconstanteégaleàlaracinedeN;onfaiticil’hypothèsequ’ellenedépassepas13bitsafindepouvoiremployerdirectementcmp %r2, RN.

Page 119: INTRODUCTION A L ARCHITECTURE DES ORDINATEURSdiabeto.enseeiht.fr/download/archi/cours/book2_4.5.pdfLa plupart des ordinateurs ont l’organisation générale de la Figure I-1. Figure

119

Danslecorpsdelaboucle,ondoitensuitelirel’élémentTAB[i]dutableau,etchoisiruneautrevaleurdeisicetélémentdetableauvaut1:

setq 2,%r2 // pour i de 2 a racine(N)

loopi: ld [%r1+%r2], %r6

tst %r6

bne nexti // si TAB[i] = 0

...

L’élémentdetableauestluenmémoire,c’estdoncuneinstructionldquidoitêtreutilisée.Letableaucommenceàl’adresse%r1etonlitl’élémentd’indice%r2:ilsetrouvedoncàl’adresse%r1+%r2.Ilestludans%r6etcommecettelecturenemodifielesflags(voirdétaildel’instructionldenannexe),uneinstructiontst %r6estnécessaire.L’instructionbne nextiprovoquelarecherched’unnouvelindiceisiZ=0,c’estàdiresi%r6estdifférentde0,doncégalà1ici.

L’instructionj<-2*is’implémentetrèssimplementsousformed’uneaddition:

addcc %r2, %r2, %r3 // j <- 2*i

Onaensuiteunestructuredecontrôletant que (j < N),qu’onvatraduire:

loopj: cmp %r3, %r5 // comparaison entre %r3 et N

bpos nexti // tant que (j < N)

...

<corps de la boucle>

...

ba loopj // fin tq

Elleestanalogueàl’implémentationdelastructurepour…finpour,maisletestestfaitentêtedeboucle.%r4contientdepuisl’initialisationlaconstanteN.

Lecorpsdelabouclesetraduitensuitedirectement:

check: setq 1, %r4

st %r4, [%r1+%r3] // TAB[j] <- 1

addcc %r3, %r2, %r3 // j <- j + i

Finalement,leprogrammecompletestdonnéFigureIII-116.Onnoteral’instructiond’arrêtsousformedeboucleinfinie.

N = 300 // taille tableau

RN = 15 // sqrt(N)

TAB = 0x100 // adresse du tableau

set TAB, %r1

set N, %r5

clr %r4

loop: st %r0, [%r1+%r4] // TAB[i] <- 0

inccc %r4 // élément suivant

cmp %r4, %r5

blu loop // fin pour

setq 2, %r2 // pour i de 2 a rac(N)

loopi: ld [%r1+%r2], %r6

tst %r6

Page 120: INTRODUCTION A L ARCHITECTURE DES ORDINATEURSdiabeto.enseeiht.fr/download/archi/cours/book2_4.5.pdfLa plupart des ordinateurs ont l’organisation générale de la Figure I-1. Figure

120

bne nexti // si TAB[i] = 0

addcc %r2, %r2, %r3 // j <- 2*i

loopj: cmp %r3, %r5

bpos nexti // tant que (j < N)

check: setq 1, %r4

st %r4, [%r1+%r3] // TAB[j] <- 1

addcc %r3, %r2, %r3 // j <- j + i

ba loopj

nexti: inccc %r2

cmp %r2, RN

bleu loopi // fin pour

FigureIII-116.Programmecompletducribled’ÉratosthèneenCRAPS/SPARC.Ilconstruituntableaud’octetstelqu’unélémentd’indiceivalant0indiquequeiestpremier

V.5. Appelsdesous-programmesterminauxPourlemoment,nousn’avonsécritquedesprogrammesmonolithiques,utilisablesuneseulefois.Pourtant,ilseraitutilequ’unprogrammetelquelasommedesélémentsd’untableaupuisseêtreutiliséplusieursfoissurdifférentstableauxdurantl’exécutiond’unprogramme,sanspourautantavoiràdupliquersoncode.

CRAPSfournituntelmécanismesouslaformedesdeuxinstructionscalletret:

• call<adresse>sauvegardel’adressecouranted’exécutiondansleregistre%r28,puisprovoqueunbranchementàl’adressespécifiée,oùestsituélesous-programmequ’onsouhaiteappeler.

• retprovoquelebranchementàl’adresse%r28+2.Silecontenude%r28n’apasétémodifiédepuisl’appelcall,l’exécutionreprendàl’adressequisuitcelledel’instructioncall.

Toutsepassecommesicall<adresse>étaituneinstructiondesommedetableaux.Onmontresurleprogrammesuivantcommentnotreprogrammedesommedesélémentsd’untableauaététransforméensous-programme,etinvoquésurdeuxtableauxdifférents:

///////// programme principal ////////

set TAB1, %r4 // arg. 1er appel

call tabsum // 1er appel

set TAB2, %r4 // arg. 2eme appel

call tabsum // 2eme appel

stop: ba stop // arrêt

///////// sous-programme ////////

tabsum: clr %r1 // %r1 <- 0 ;

clr %r2 // pour i de 0 à 9

loop: ld [%r4], %r3 // %r3 <- mem[%r4,...,%r4+3];

addcc %r1, %r3, %r1 // %r1 <- %r1 + %r3 ;

addcc %r4, 4, %r4 // %r5 <- %r5 + 4 ;

inccc %r2

cmp %r2, 9

bleu loop // fin pour

ret

/////// zone de données ///////

Page 121: INTRODUCTION A L ARCHITECTURE DES ORDINATEURSdiabeto.enseeiht.fr/download/archi/cours/book2_4.5.pdfLa plupart des ordinateurs ont l’organisation générale de la Figure I-1. Figure

121

.org 0x1000

TAB1 .word 1, 2, 3, 4, 5, 6, 7, 8, 9, 10

TAB2 .word 2, 4, 6, 8, 10, 12, 14, 16, 18, 20

Cemécanismecall…retestappeléappeldesous-programmesterminaux,c'est-à-diredesous-programmessituésaudernierniveaud’appel.Onl’aurasansdoutedéjàcompris,iln’estpaspossibleaveccemécanismed’appelerunautresous-programmeàpartirducorpsd’unsous-programmeappelé,puisquelapremièreadressederetourseraitécraséeparlasecondedans%r31.Ilnousmanquemaintenantunmécanismequipermettedesauvegardercettevaleur;ilestprésentéàlasectionsuivante.

V.6. Utilisationdelapile

PrincipeUnepileestunestructurededonnéesquisemanipuleuniquementaveclesdeuxopérationssuivantes:

• PUSHdata:sauvegarde(empile)datadanslapile.• POP:enlèvelesommetdelapile,etlerenvoie.

Onpeutsauvegarderaprioriautantdedonnéesqu’onlesouhaite;l’inconvénientestqu’onnepeutpasrécupérern’importequandunedonnéesauvegardée:ondoitavantavoirrécupérétoutescellesquiontétéempiléesaprèselle.

Unetellepilepourraitêtreimplémentéedeplusieursfaçons,àcommencerparunepilematérielleàbased’ungrandtableauderegistres.Laméthodelaplussimple(maisaussilapluslente)estdestockerlapilesousformedemotsconsécutifsdanslamémoirecentrale,etd’utiliserunregistrequipointesurladernièrevaleurempilée,appelépointeurdepile.

DanslecasdeCRAPS,onutiliseraleregistre%r29,qu’onnoterasouvent%sp,etlesopérationspushetpopexistentdéjàsousformed’instructionssynthétiques:

push %ri : sub %r29, 1, %r29

st %ri, [%r29]

pop %ri : ld [%r29], %ri

add %r29, 1, %r29

LaFigureIII-117montrecequ’onobserveenmémoire,aprèsquatreopérationssuccessivesd’empilementetdedépilement.

Page 122: INTRODUCTION A L ARCHITECTURE DES ORDINATEURSdiabeto.enseeiht.fr/download/archi/cours/book2_4.5.pdfLa plupart des ordinateurs ont l’organisation générale de la Figure I-1. Figure

122

FigureIII-117.Opérationssuccessivesd’empilementetdedépilement.

Endisposantlerubanmémoiredehautenbas,onobservequelesopérationsd’empilementsetraduisentvisuellementparunempilementdesvaleurslesunessurlesautres:le7pardessusle5,etc.Réciproquementundépilementsetraduitparlasaisiedelavaleurausommet,c’estàdirecellequiestpointéepar%r29.Onnoteracependantquelavaleurdépiléen’estpaseffacéedelamémoire,maisqu’elleestlaisséetellequelle.Celan’aaucuneimportance,carellen’estplusaccessiblepardesopérationpop,etellepeutêtreécraséeparuneopérationpushultérieure.C’estcequisepasselorsdupushdelavaleur9(situation(e)).

LapiledeCRAPS,commecelledelaplupartdesprocesseurs,alesdeuxpropriétéssuivantes:

• lorsd’unempilement,lesommetdelapile’remonte’,c’estàdirequelavaleurdupointeurdepilediminue.

• lepointeurdepilepointetoujourssurladernièrevaleurempilée.

Cesindicationssontutilesnotammentlorsqu’ondébogueunprogrammeetqu’onsouhaitesavoirprécisémentcequelapilecontient.

Page 123: INTRODUCTION A L ARCHITECTURE DES ORDINATEURSdiabeto.enseeiht.fr/download/archi/cours/book2_4.5.pdfLa plupart des ordinateurs ont l’organisation générale de la Figure I-1. Figure

123

Allocationdel’espacedepileLapileétantenmémoirecentrale,doitêtredansunezonedeRAM.Parailleurs,ilfautprévoirqu’aveclesempilementssuccessifselleva’grignoter’delaplaceenmémoire,enprogressantverslesadressesbasses(FigureIII-118).

FigureIII-118.Lapilegranditenmémoireenprogressantverslesadressesbasses.Ellepeutdébordersurdeszonesdeprogrammeoudedonnées.

Ilyadoncundangerpotentield’écrasementd’unezonedeprogrammesoudedonnéesparlapile,sicelle-cigrandittrop.Lorsqu’onutiliseunepiledansunprogramme,ilfautdoncinitialiserlepointeurdepileenprenantencomptelapositiondesautresdonnéesenmémoire,etlataillemaximalequelapilepeutprendreaucoursdel’exécutiondesprogrammes.

SAUVEGARDEDEL’ADRESSEDERETOURDESOUS-PROGRAMMEUnpremierusagequel’onpeutfaired’unepileestderésoudrenotreproblèmedesauvegardedel’adressederetourlorsd’unappeldesous-programmedetypecall…ret.

Lasolutionesttrèssimple:

• justeavantl’appelcall,ilfautempilerl’adressederetour%r28• justeaprèsleretourducall,ondépiledans%r28cetteadresse

Ainsi,mêmesi%r28estmodifiédansl’appeldusous-programme,onestsûrderetrouverlavaleurde%r28quel’onavaitavantlecall,c’estàdirel’adressederetour(sousréservequelapilesoitaumêmeniveauauretourqu’audépart).

APPELSDEFONCTIONSRECURSIVESCetteméthodeouvred’unseulcouplapossibilitéderéaliserdesprogrammesrécursifsetmutuellementrécursifs,puisquelessauvegardes/restaurationsdesadressesderetourpeuventêtrefaitesennombrequelconquedanslapile.

Onval’illustrerparuncalculdeplusgrandcommundiviseur(PGCD),quis’obtientparl’algorithmerécursifsuivant:

Page 124: INTRODUCTION A L ARCHITECTURE DES ORDINATEURSdiabeto.enseeiht.fr/download/archi/cours/book2_4.5.pdfLa plupart des ordinateurs ont l’organisation générale de la Figure I-1. Figure

124

fonction int pgcd(int x, int y)

si (x = y) alors

val <- x ;

sinon si (x > y) alors

val <- pgcd(x-y, y) ;

sinon

val <- pgcd(x, y-x) ;

return val ;

fin fonction

Parexemple,PGCD(78,143)=PGCD(78,65)=PGCD(13,65)=PGCD(13,52)=PGCD(13,39)=PGCD(13,26)=PGCD(13,13)=13.

Commeparailleurs78=2×3×13et143=11×13,onvérifiebienque13estleurplusgrandcommundiviseur.

PourleprogrammerrécursivementenCRAPS,ilnoussuffitàl’intérieurdusous-programmepgcdderappelerparcalllesous-programmepgcd,enprenantsoindesauvegarderdanslapiletoutl’environnementlocalnécessaireaucalcul,c’estàdire:

• lesvaleursderegistresquel’onsouhaiteconserverautraversdecetappel• l’adressederetour%r28

LaFigureIII-119donnelelistingcompletduprogramme.

STACK = 0x150

.org 0

main: set STACK, %sp // init pointeur pile

set 78, %r1 // valeur de x

set 143, %r2 // valeur de y

call pgcd // appel pgcd

stop: ba stop // arrêt

// calcule pgcd(x,y)

// in : x = %r1, y = %r2

// out : résultat dans %r3

pgcd: push %r28 // sauvegarde @ retour

cmp %r2, %r1

bne skip ; x=y ?

// x = y : return x

mov %r1, %r3 // val <- x

ba retour // retour

skip: bneg sup // x>y ?

// x < y : préparation de pgcd(x, y-x)

subcc %r2, %r1, %r2 // y <- y - x

call pgcd // appel récursif

ba retour

sup: // x > y : préparation de pgcd(x-y, y)

subcc %r1, %r2, %r1 // x <- x - y

Page 125: INTRODUCTION A L ARCHITECTURE DES ORDINATEURSdiabeto.enseeiht.fr/download/archi/cours/book2_4.5.pdfLa plupart des ordinateurs ont l’organisation générale de la Figure I-1. Figure

125

call pgcd // appel récursif

pop %r28 // restaur. @ retour

retour: ret

FigureIII-119.ProgrammerécursifdecalculduPGCD.Leprogrammeesttrèslisible,auprixd’uneexécutionpluslente.

Leprogrammeestlatraductionlittéraledel’algorithmerécursif.Silecalculnécessitenappelsrécursifs,lapilevagrossirprogressivementjusqu’àoccupernmotsenmémoire,adressesderetoursauvegardéesàchaqueappel.Ensuite,nexécutionsdel’instructionretvontremettrelapileàsonniveauinitial.

L’utilisationdelarécursivitédanslecasdeceprogrammeestmaladroite,carelleestassezinefficaceàl’exécution,vulegrandnombred’accèsmémoireeffectués.L’algorithmepeuttrèssimplementêtretraduitdefaçonitérative:

fonction int pgcd(int x, int y)

tant que (x <> y) faire

si (x > y) alors

x <- x - y ;

sinon

y <- y -x ;

fin si

fin tq ;

return x ;

fin fonction

CetalgorithmesetraduitdirectementparleprogrammeFigureIII-120.

RAM = 0x100

.org 0

main: set 78, %r1 // valeur de x

set 143, %r2 // valeur de y

call pgcd // appel pgcd

stop: ba stop // arrêt

// calcule pgcd(x,y)

// in : x = %r1, y = %r2

// out : résultat dans %r3

pgcd: cmp %r2, %r1 // tant que x <> y

bne skip // x=y ?

// x = y : return x

mov %r1, %r3 // val <- x

ret retour

skip: bneg sup // x>y ?

// x < y

subcc %r2, %r1, %r2 // y <- y - x

ba pgcd

sup: // x > y

subcc %r1, %r2, %r1 // x <- x - y

ba pgcd

Page 126: INTRODUCTION A L ARCHITECTURE DES ORDINATEURSdiabeto.enseeiht.fr/download/archi/cours/book2_4.5.pdfLa plupart des ordinateurs ont l’organisation générale de la Figure I-1. Figure

126

FigureIII-120.ProgrammeitératifdecalculduPGCD.Ilestplusefficacequelaversionrécursivecariln’yaplusd’accèsenmémoire.

Laleçonàtirerdecetexempleestqu’ilnefautpasabuserdelarécursivitédanslesfonctionsdebasniveau,siunalgorithmeitératifestdisponible.Elleesteneffetgourmandeentempsetenespaceoccupéenmémoire.Larécursivitéestparcontreindispensabledanslesfonctionsdehautniveau,pourdesraisonsdeclartéetdemodularitédontladiscussionsortducadredecetouvrage.

Enfinonpeutnoterquelorsqu’onparamètrelacompilationd’unprogrammepourqu’ilproduiseuncodeplusefficace,ilchercheentreautrestechniquesàdérécursiverlesrécursionsterminalescommecellesdenotrefonctionPGCD,afindelesrendreitératives.

V.7. Langagesàstructuredeblocset‘stack-frames’Ons’intéressedanscettesectionauxproblèmesqueposentauxcompilateursleslangagesàstructuredeblocstelsqueC,Java,etc.lorsdelaphasedegénérationdecode.

Uncompilateuresteneffetessentiellementuntraducteurdulangagesourceversunlangageciblequiestgénéralementlelangageassembleurduprocesseurvisé.Oncherchedanscettesectionquellesméthodescescompilateursmettentenoeuvredefaçonsystématiquepourimplémenterlanotiondebloc,ainsiquelorsdesappelsdefonctions.

Implémentationdesblocssousformedestack-framesLesprogrammesécritsdansdeslangagestelsqueCetJavasontorganisésenblocs,encadréspardessymbolestelsque{...}oubegin…end.Àl’intérieurdechaquebloconpeutdéclarerdenouvellesvariables,dontlaportéeestlimitéeaubloc.

Généralementunblocestassociéàunestructuredecontrôle(boucleforouwhile)ouaucorpsd’unefonction.Onpeutnéanmoinscréerunblocàtoutmomentdansunprogramme,etydéclarerlesvariableslocalesdesonchoix:leurportéeseralimitéeàcebloc.AinsienlangageC,onpeutécrirelepetitprogramme(inutile)suivant:

int main(int argn,char** args) {

int x = 1 ;

int y = 10 ;

printf("x=%d\n", x) ;

{

int x = 2 ;

int z = x + y ;

printf("x=%d\n", x) ;

}

printf("x=%d\n", x) ;

}

Àl’exécution,ilvaproduirel’affichage:

x=1

x=2

x=1

Ilyadeuxblocsdansceprogramme:celuiassociéaucorpsdelaprocéduremain,etunblocinternesituéaubeaumilieu,etquin’estlàquepourillustrernotrepropos.Laportéedelavariablexsituée

Page 127: INTRODUCTION A L ARCHITECTURE DES ORDINATEURSdiabeto.enseeiht.fr/download/archi/cours/book2_4.5.pdfLa plupart des ordinateurs ont l’organisation générale de la Figure I-1. Figure

127

dansleblocinterneestlimitéeàcebloc,etelleatemporairementprislaplacedelavariablexdublocplusexterne.Lavariablezn’estvisiblequedansleblocinterne,etlavariableyestvisibledanslesdeuxblocs.

Lapileestutiliséepourmettreenplacecettevisibilitétemporairedesvariables.Lorsdel’entréedansunbloc,lecompilateurcréeunstack-framedanslapile,c’estàdireunezonedemémoiredanslaquelleserontplacéeslesvaleursdesvariablesdéclaréesdanslebloc.Lesstack-framesassociésauxdeuxblocsdenotreprogrammepourraientêtreimplantéscommesurlaFigureIII-121.

FigureIII-121.Stack-framesassociésauxdeuxblocsdecodeduprogramme.Chaquevariablelocaleasaplacedanslestack-frameassociéaubloc.Onremarqueralepointeurverslestack-frameprécédent.

Unregistreestgénéralementaffectéaupointageaupieddustack-framecourant,etlesaccèsauxdifférentsélémentsdustack-framesefonttrèssimplementparadressageindirectavecdéplacement.Parexemple,sionutilise%r27commepointeurdestack-frame,onauralemécanismed’adressagedelaFigureIII-122.

FigureIII-122.Utilisationduregistre%fp=%r27commepointeuràlabasedustack-framecourant.Lesaccèsauxvariableslocalessefontparadressageindirectavecdéplacement.

Lecodeassembleurtraduisantceprogrammepourraitêtre:

STACK = 0x200

main: // initialisation pointeur de pile

set STACK, %sp

Page 128: INTRODUCTION A L ARCHITECTURE DES ORDINATEURSdiabeto.enseeiht.fr/download/archi/cours/book2_4.5.pdfLa plupart des ordinateurs ont l’organisation générale de la Figure I-1. Figure

128

// création du stack-frame 1

push %fp // empile val. prec.de %fp

mov %sp, %fp // %fp reste fixe au pied du stack frame

add %sp, -2, %sp // réserve 2 mots dans la pile

setq 1, %r1

st %r1, [%fp-1] // x <- 1

setq 10, %r1

st %r1, [%fp-2] // y <- 10

// création du stack-frame 2

push %fp // empile val. prec. de %fp

mov %sp, %fp // %fp reste fixe au pied du stack frame

add %sp, -2, %sp // réserve 2 mots dans la pile

setq 2, %r1

st %r1, [%fp-1] // x <- 2

// recherche de la valeur de y par double indirection

ld [%fp], %r2 // %r2 <- "@stack-frame 1"

ld [%r2-2], %r1 // %r1 <- y

ld [%fp-1], %r3 // %r3 <- x

addcc %r1, %r3, %r4 // %r4 <- x + y

st %r4, [%fp-2] // stockage de z

// sortie stack frame 2

mov %fp, %sp // sp <- fp

pop %fp // dépilement dans %fp de la val prec.

// sortie stack frame 1

mov %fp, %sp // sp <- fp

pop %fp // dépilement dans %fp de la val prec.

Lacréationd’unstackframeconsisteessentiellementàréserverlaplacenécessaireauxvariableslocales;ils’agitd’unesimplesoustractionsurlavaleurde%sp.Àchaquecréationd’unstack-frame,lavaleurcourantede%fp=%r27estempilée,et%fpestpositionnéaupieddustack-frame.L’accèsàunevariablelocaleàceblocsefaitdirectementparréférenceà%fp;parexemplel’accèsàxdanslestack-frame2sefaitpar[%fp-1].Plusdélicatestl’accèsàlavariableydansl’expressionz=x+y;eneffetyn’appartientpasaubloccourant,maisaublocderanginférieur.Laréférenceàlavariableyestcorrecte,maislecompilateurdoitdanscecasaccéderàyparunedoubleindirection,enallantchercherd’abordl’adressedustack-framederanginférieur,puisenfaisantàpartirdelàunaccèsindirectavecdéplacement.Selonlescas,plusieursdecesindirectionspeuventêtrenécessaires.

AppeldefonctionL’appeld’unefonctiontelqu’ilesttypiquementimplémentéparlecompilateurd’unlangageàstructuredeblocspasseparlacréationd’unstack-framequicontiendratouteslesdonnéesmanipuléesparelle,àsavoir:

• lesparamètresd’appel,• lesvariableslocalesaublocprincipaldelafonction,• lavaleurquelafonctionvarenvoyer.

Page 129: INTRODUCTION A L ARCHITECTURE DES ORDINATEURSdiabeto.enseeiht.fr/download/archi/cours/book2_4.5.pdfLa plupart des ordinateurs ont l’organisation générale de la Figure I-1. Figure

129

Ainsi,chaquenouvelappelaurasonproprecontextedetravailsousformed’unstack-frame,etlesappelssuccessifsapparaitrontsousformed’unempilementdestack-framesquinemélangerontpasleursvariableslocalesetlesparamètresd’appel,permettantnotammentl’usagedelarécursivité.

Àlasortied’unappeldefonction,lavaleurrenvoyéeparlafonctionestrécupéréeavantquel’espacedustack-framenesoitdésallouédelapile(FigureIII-123).Onrestaureégalementl’adressederetour,(valeurde%r28danslecasdeCRAPS)quiavaitétéempiléejusteavantlebranchementaucodedelafonction.

FigureIII-123.Stack-framecréélorsd’unappeldefonction.Onytrouvelesparamètresd’appel,lesvariableslocales,l’emplacementdelavaleuràrenvoyer.L’adressederetourestempiléepar-dessusjusteavantlecall,maisnefaitpas

partiedustack-frame.Leregistre%fppointeaupieddustackframecourant;lestackframecontientégalementlavaleurde%fpdustack-frameprécédent,cequipermetderetrouverlesinformationsdescontextesantérieurs.

Atitred’exemple,onvaécrireselonceprincipeunprogrammedecalculdefactorielle.Lestack-frameassociéàchaqueinstanced’appeldelafonctioncontiendra(FigureIII-124):

- l’argumentd’appelx- unevariablelocalevalquijoueenmêmetempslerôledevaleuràretourner

FigureIII-124.Stack-framecréélorsd’unappeldelafonctionfact;onytrouveleparamètresd’appelxetunevariablelocaleval,quijoueenmêmetempslerôledevaleurdereturn.

Page 130: INTRODUCTION A L ARCHITECTURE DES ORDINATEURSdiabeto.enseeiht.fr/download/archi/cours/book2_4.5.pdfLa plupart des ordinateurs ont l’organisation générale de la Figure I-1. Figure

130

Leprogrammeprincipalappellefact(5):pourcela,ilcrééunstack-framedanslequelilinitialiseà5lavaleurdex,danslacasemémoired’adresse%fp-1.Justeavantl’appelparcall,ilempilel’adressederetourquiseretrouvedoncausommetdustack-frame.Auretour,lavaleurrenvoyéepeutêtrerécupéréedansval,àl’adresse%fp-2.Unefoiscestack-framed’appeldéfait,lapileseretrouveexactementdansl’étatinitial.

Avantchaqueappelrécursifdefact,unstack-frameestcréédelamêmemanière,etonydéposelesargumentsd’appel(icix).Auretourdelafonction,lavaleurretournéeestrécupéréedanslestack-frame,puiscelui-ciestdéfait.

STACK = 0x200 main: // initialisation pointeur de pile set STACK, %sp // création du stack-frame d'appel push %fp // empile val. prec. de %fp mov %sp, %fp // %fp reste au pied du stack frame add %sp, -3, %sp // réserve 2 mots dans la pile setq 5, %r1 st %r1, [%fp-1] // x <- 5 // branchement à fact avec sauvegarde @retour push %r28 call fact pop %r28 // récupération résultat dans %r2 ld [%fp-2], %r2 // sortie du stack frame d'appel mov %fp, %sp // sp <- fp pop %fp // dépilement dans %fp de la val prec // le programme est terminé // %r2 contient le résultat et la pile est dans l'état initial stop: ba stop ////////// fonction fact ///////// fact: ld [%fp-1], %r1 // lecture de x cmp %r1, 1 // x <= 1 ? bgu sup st %r1, [%fp-2] // x <= 1: cas terminal, val = x ba end_fact sup: // x > y : création du stack frame d'appel de fact(x-1) push %fp // empile val. prec. de %fp mov %sp, %fp // %fp reste au pied du stack frame add %sp, -3, %sp // réserve 2 mots dans la pile sub %r1, 1, %r1 st %r1, [%fp-1] // x <- x-1 // branchement à fact avec sauvegarde @retour push %r28 call fact pop %r28 // récupération résultat ld [%fp-2], %r2 // sortie du stack frame d'appel mov %fp, %sp // sp <- fp pop %fp // dépilement dans %fp de la val prec ld [%fp-1], %r1 // lecture de x umulcc %r1, %r2, %r2 // calcul de x*fact(x-1) st %r2, [%fp-2] // stockage dans val end_fact: // le résultat est dans [%fp-2] ret

Page 131: INTRODUCTION A L ARCHITECTURE DES ORDINATEURSdiabeto.enseeiht.fr/download/archi/cours/book2_4.5.pdfLa plupart des ordinateurs ont l’organisation générale de la Figure I-1. Figure

131

V.8. Programmationdesentrées/sortiesJusqu’icinousn’avonsécritquedesprogrammes’autistes’:ilsn’onteffectuéaucunéchangeavecl’extérieur.LesdonnéessurlesquellesilstravaillaientleursétaientfourniesdirectementsousformedezonesdemémoireprérempliesaveclesvaleursduproblèmeetilsproduisaientdesrésultatssousformededonnéesécritesenRAM.

Onvaconsidérerquel’interfaced’unordinateuravecl’extérieurestfaitautraversd’unensembledelignesdigitales,chacuned’elleétantàunmomentdonnéuneentréeouunesortie.Sic’estuneentrée,leprocesseurdoitêtrecapabledeliresonétat0ou1;sic’estunesortieildoitpouvoirforcersonétatà0ouà1.Desamplificateursoudesatténuateursenentréeouensortiepeuventpermettrelalectureoulacommandedecourantstrèsfortsoutrèsfaibles;mêmelacommandeoul’acquisitiondesignauxanalogiquesrentredanscecadre,puisqu’onpeututiliserdesconvertisseursnumérique/analogiquequivontfairelaconversiond’unmondeversl’autre.

Certainesdeceslignessontdesentréesoudessortiessanspouvoirchangerdenature:ceseraparexemplelecasdessortiesdescircuitsappeléstimer/PWMchargésdeproduiredessignauxparamétrablesdeformerectangulaire.Certaineslignesd’usageplussoupleserontdeslignesd’entrée/sortiegénérales,quipourrontêtreconfiguréesindividuellementetparprogrammeenentréeouensortie.

Instructionsspécialesd’entrées/sortiesSurcertainsprocesseursexistentdesinstructionsspécialesd’entrées/sorties.Lex86parexemplepossèdeuneinstructionINAL,PORTquilitunoctetdePORTversALetuneinstructionOUTPORT,ALquiécritunoctetdeALversPORT.PORTdésigneunnumérodeport,élémentparmiunespaced’adressagespécial,propreauxentrées/sorties.LesécrituressurdesnumérosdeportparticuliersmettentenactivitélespériphériquesassociéstelsquecontrôleursUSB,contrôleursdebusPCIExpress,etc.

Entrées/sortiesmappéesenmémoireSurd’autresprocesseurstelsqueCRAPS/SPARC,iln’existepasdetellesinstructionsspécialisées.Commentalorspeuvent-ilsfairepourinteragiravecl’extérieur?Ilsutilisentenfaitunmécanismeappeléentrées/sortiesmappéesenmémoire:c’estenlisantetenécrivantàcertainsemplacementsmémoireparticuliers,queleprocesseurvadialogueraveclespériphériques.L’avantagedecetteméthode,c’estqu’iln’yapasd’instructionsspécialesàutiliseretque,enCRAPSparexemple,desimplesldetstsuffiront.Soninconvénient,c’estdegaspillercertainsemplacementsdel’espaced’adressagemémoire,quinepeuventplusêtreutiliséspourdelavéritableRAMouROM.

LamachineCRAPS,tellequ’elleseradécriteendétailauchapitresuivant,ettellequ’elleestutilisableautraversdusimulateurCrapsEmuetdesonimplantationdansunFPGA,estéquipéed’untimer/PWM,de8lignesd’entréesreliéesà8interrupteursàglissière,de8lignesdesortiesreliéesà8LEDetde4afficheurs7-segment.Cespériphériquessontdoncmappésenmémoireetonvadécriremaintenantlafaçondelesprogrammer.

V.8.1. Programmationdeslignesd’entréesetdesortiesCRAPSestdoncéquipéde8lignesd’entréesreliéesàdesinterrupteursàglissière,etde8lignesdesortiesreliéesàdesLED,dontunextraitducâblageestdonnéFigureIII-125.

Page 132: INTRODUCTION A L ARCHITECTURE DES ORDINATEURSdiabeto.enseeiht.fr/download/archi/cours/book2_4.5.pdfLa plupart des ordinateurs ont l’organisation générale de la Figure I-1. Figure

132

FigureIII-125.Partieducâblagedeslignesd’entréesetdesortiesdeCRAPS.

OnvoitquesiunedelignesdesortieOut[0]ouOut[1]està’0’,ladiodecorrespondanteestéteinte;sielleestà’1’,uncourantd’environ20mAtraverseladiodeetl’allume.

Inversement,lorsqu’undesinterrupteursestouvert,lalignecorrespondantelit’1’(carlarésistancede1Kinduituncourantentrantde5mAsiVcc=5v);s’ilestferméellelit’0’.

AdressesmémoireutiliséesDanslaconfigurationquenousallonsdécrire,leslignesd’entréesetdesortiesdeCRAPSsontmappéesenmémoireselonletableaudelaFigureIII-126.

Adresse read/write Opération

0x90000000 read Lecturedes8lignesd’entrées(switches)

0xB0000000 write Ecrituredes8lignesdesorties(leds)

FigureIII-126.Mappingdesaddressesd’entréesetdesortiesdeCRAPS

Lesvaleurs0x900000,0xB00000nedépendentpasduprocesseurCRAPSenluimême,maisdelafaçondontilestinterfacéavecsespériphériques.Ondétailleracomplètementcetaspectdecequ’onappelleledécodagedesadressesauchapitreconsacréàlaconceptiondeCRAPS.

Lecture/écrituresurleslignesPourlirel’étatdesentrées,ilsuffitdelireen0x900000,etdetesterdanslemotlulesbitsdesrangs0à7correspondantsauxentrées.Pourpositionnerl’étatdessorties,ilsuffitd’écrireen0xB00000unmotdontlesbits0à7correspondentauxvaleursquel’onsouhaiteplacersurleslignes.

ParexemplesurleschémadelaFigureIII-125,pourlirel’étatdel’interrupteursituésurlaligneIn[1]etallumerladiodesituéesurOut[0]sicetinterrupteurestouvert(Out[0]=1)onécriralecodesuivant:

INPUTS = 0x90000000 // adresse de base des entrées

OUTPUTS = 0xB0000000 // adresse de base des sorties

set INPUTS, %r1

set OUTPUTS, %r2

ld [%r1], %r3 // lecture des lignes d’entrée

andcc %r3, 0b10, %r3 // isolation du bit 1

Page 133: INTRODUCTION A L ARCHITECTURE DES ORDINATEURSdiabeto.enseeiht.fr/download/archi/cours/book2_4.5.pdfLa plupart des ordinateurs ont l’organisation générale de la Figure I-1. Figure

133

srl %r3, 1, %r3 // déplacement de ce bit au rang 0

st %r3, [%r2] // écriture sur les lignes de sortie

Exemple:programmationd’unjeude’pileouface’LeprogrammedelaFigureIII-127exploitelecâblagedesentrées/sortiesdelaFigureIII-125,etfaitallumerenalternancel’unedesdeuxLEDssituéessurIO[0]etIO[1].Lorsquelejoueurappuiesurl’interrupteursituésurIO[0],l’étatdesLEDssefige,faisantapparaîtreunedesdeuxcombinaisons.

INPUTS = 0x90000000 // adresse de base des entrées

OUTPUTS = 0xB0000000 // adresse de base des sorties

set INPUTS, %r1

set OUTPUTS, %r2

setq 0b10, %r4 // état initial des LEDs

st %r4, [%r2] // écriture état des LEDs

loop: ld [%r1], %r3 // lecture des lignes d’entrées

andcc %r3, 0b10, %r3 // isolation du bit 1

bne loop // attend qu’il vaille 1

// interrupteur ouvert : on inverse l’état des LEDs

xor %r4, 0b11, %r4 // inversion par xor

st %r4, [%r2] // écriture état des LEDs

ba loop // reboucle éternellement

FigureIII-127.Programmed’unjeude’pileouface’.LesLEDs#0et#1s’allumentenalternance,etunappuisurl’interrupteur#2figelaconfiguration.

Lescommentairesduprogrammeparlentd’eux-mêmes.Onnoteral’inversionparlexordesdeuxbitsdepoidsfaiblesdel’étatdesLEDsdans%r4.

V.8.2. Programmationdesafficheurs7-segmentsLapériphériedeCRAPScomporte4afficheurs7-segmentsqu’onpeutallumer/éteindreglobalement,etdontonpeutaffecterlavaleurlorsqu’ilssontallumés.Ilssontcapablesd’afficherdesnombreshexadécimauxde0000àFFFF.

AdressesmémoireutiliséesCesafficheurssontmappésenmémoireselonletableaudelaFigureIII-128.

Adresse read/write Opération

0xA0000000 write Donnéeàafficher(16bitsdepoidsfaible)

0xA0000001 write Les4bitsdepoidsfaibledeladonnéeécritecommandentrespectivement

l’activationdes4afficheurs

FigureIII-128.Mappingdesaddressesdesafficheurs7-segments.

Parexemple,lecodesuivantallumelesafficheurs,puisyaffichelenombre«ABCD»:

SSEGS = 0xA0000000 // adresse de base afficheurs 7-segs

set SSEGS, %r1 // %r1 <- adresse de base

setq 0b1111, %r2

Page 134: INTRODUCTION A L ARCHITECTURE DES ORDINATEURSdiabeto.enseeiht.fr/download/archi/cours/book2_4.5.pdfLa plupart des ordinateurs ont l’organisation générale de la Figure I-1. Figure

134

st %r2, [%r1+1] // activation des 4 afficheurs

set 0xABCD, %r2

st %r2, [%r1] // affichage de “ABCD”

V.8.3. Programmationdutimer/PWM

PrincipegénéralCRAPSpossèdeuntimer/PWMquiluipermetdegénérersurunelignedesortiedédiée,dessignauxrectangulairesdontlapériodeetlerapportcycliquesontprogrammables.LaformedusignalestdonnéeFigureIII-129.

FigureIII-129.Formeetparamètresdusignaldesortiedutimer/PWMdeCRAPS.

Lesusagesd’untimer/PWMsontnombreux.Dansunsystèmemulti-tâches,lasortied’untimersertàdéclencheruneinterruptionquieffectuelacommutationentrelesdifférentestâches.Ilfonctionneàunefréquenced’environ50hertz,cequidonneàl’utilisateurl’illusionquesesdifférentsprogrammesfonctionnentenparallèle.

Ons’ensertégalementpourcontrôleravecprécisionl’énergiecommuniquéeàunappareildetypelampeoumoteuràcourantcontinu(aprèsamplification),celle-ciétantproportionnelleaurapport

cyclique~_�~

.

RegistresdecommandeIls’agitd’untimer16bits,c’estàdirequelesparamètresPetNsontcodéssur16bits,etreprésententunnombredecyclesdel’horlogedutimer.DanslaversionactuelledeCRAPS,l’horlogedutimerestobtenueàpartirdel’horlogegénérale,dontlafréquenceaétéprédiviséepar32.Avec

unefréquenced’horlogede50MHz,lapériodeDTdel’horlogedutimerestainside 6�a6a�

∗ 32 =0,64𝜇𝑠

LetimerpossèdeeninternedeuxregistresquistockentlesvaleursNetPnécessairesàsonfonctionnementetquisontégalementmappésenmémoire,auxadressesdonnéesFigureIII-130.

Adresse read/write Opération

0xC0000000 write EcrituredelavaleurdeP

0xC0000001 write EcrituredelavaleurdeN

FigureIII-130.Mappingdesaddressesassociéesautimer/PWM

Page 135: INTRODUCTION A L ARCHITECTURE DES ORDINATEURSdiabeto.enseeiht.fr/download/archi/cours/book2_4.5.pdfLa plupart des ordinateurs ont l’organisation générale de la Figure I-1. Figure

135

Siparexempleonsouhaitegénérerunsignalcarrédepériode100DT,onécriralecodesuivant:

BASETIMER = 0xC0000000 // adresse de base du timer

set BASETIMER, %r1 // %r1 = base timer

setq 100, %r2 // P = 100

st %r2, [%r1] // écriture de P

setq 50, %r2 // N = 50

st %r2, [%r1+1] // écriture de N

Exempled’utilisation:commanded’unservo-moteurUnservo-moteurestcomposéd’unmoteuràcourantcontinuavecunensembled’engrenagesdémultiplicateursquiluidonnentuncoupletrèsélevé.Ilestmunid’uneélectroniquedecommandequipermetdecontrôleravecprécision,nonpaslavitessederotation,maislapositionangulairedesonaxe,quin’aundébattementquede180°(FigureIII-131).

FigureIII-131.Servo-moteur.Larotationdel’axeesttrèsdémultipliéeetauncoupleélevé.Lacommandeajustelapositionangulairedel’axe,quipeutvarierde0°à180°.

Lacommandesefaitsurunseulfil,àlanormeTTL(0ou5v),etconsisteenuneimpulsionpériodiquedontlalargeurcodelapositionangulairedel’axe(FigureIII-132).

FigureIII-132.Formedusignaldecommanded’unservo-moteur.Ilestpériodiquedepériode20ms;l’impulsionaunelargeurcompriseentre1mset2ms,quicodelapositionangulairedel’axeentre0°et180°.

Danscediagramme,P=20msetNvarieentre18mset19ms.OnavuquelapériodedebasedutimerestDT=0,64μs,cequicorrespondauxvaleursderegistresP=31250(DT)etNvariantentre28125(DT)et29687(DT).

LaFigureIII-133donneunsous-programmedepositionnementduservo-moteur,auquelondonnecommeparamètrel’angledepositionnementdans%r1sousformed’unevaleurentre0et1562,0correspondantàunanglede0°et1562àunanglede180°.Lesous-programmeajoute28125àcettevaleuretprogrammeensuitelesregistresPetNdutimer.

Page 136: INTRODUCTION A L ARCHITECTURE DES ORDINATEURSdiabeto.enseeiht.fr/download/archi/cours/book2_4.5.pdfLa plupart des ordinateurs ont l’organisation générale de la Figure I-1. Figure

136

BASETIMER = 0xC0000000 // adresse de base du timer

main: // exemple d’utilisation

set 390, %r1

call servo

stop: ba stop

servo: set BASETIMER, %r2 // %r2 = base timer

set 31250, %r3 // valeur de P

st %r3, [%r2] // écriture de P

set 28125, %r3

add %r1, %r3, %r1 // N = %r1 + 28125

st %r1, [%r2+1] // écriture de N

ret

FigureIII-133.Sous-programmedecommandedeservo-moteur.

Oncomprendtoutl’intérêtdecommanderunservo-moteurparuntelcircuittimer/PWM:lesignalpériodiqueestgénérédefaçonautonomeetleprocesseurn’abesoind’intervenirquelorsd’unchangementdeposition,quisetraduitparunesimpleécritureenmémoire.

V.9. Programmationdesexceptions

V.9.1. DéfinitionsUneexceptionestunévénementexceptionnelquiintervientaucoursdufonctionnementduprocesseur.Lapriseencompted’uneexceptionsetraduitparl’exécutiond’unsous-programmequiluiestassocié,appelégestionnaired’exception.Onpourraitdirequ’uneexceptionestunappeldesous-programmeinattendu.

Onclasselesexceptionsendeuxgroupes,selonqueleurcauseestinterneouexterne.

LestrapsLestrapssontdesexceptionsàcauseinterne,provoquésparl’exécutiond’uneinstructionparleprocesseur.Unelistedetrapscourantsferacomprendreleurnature:

• instructionillégale.Leprocesseurtented’exécuteruneinstructiondontlecodemachinenecorrespondàaucuneinstructionconnue.

• buserror.Leprocesseurtented’effectuerunaccèsmémoireàuneadresseoùaucunemémoiren’estimplantée.

• divisionpar0.Leprocesseurexécuteuneinstructiondedivisionetlediviseurestnul.• erreurd’alignement.Leprocesseurtented’effectuerunaccèsmémoireàuneadressequi

n’estpasunmultiplede4siparexempleils’agitd’unprocesseur32bits.Laplupartdesprocesseursexigenteneffetquelalectureoul’écrituredesmotsrespectentdetellescontraintesd’alignement.

• instructionprivilégiée.Leprocesseurtented’exécuteruneinstructionprivilégiée(réservéeauxprogrammesenmodesuperviseur)maisiln’estpasenmodesuperviseur.

Onditdetellesexceptionsqu’ellessontsynchrones,carellessurviennentàunendroitprévisibleduprogramme.Ellescorrespondentgénéralementàunfonctionnementincorrectdecelui-cietconduisentsouventàl’arrêtdelatâcheassociée.

Page 137: INTRODUCTION A L ARCHITECTURE DES ORDINATEURSdiabeto.enseeiht.fr/download/archi/cours/book2_4.5.pdfLa plupart des ordinateurs ont l’organisation générale de la Figure I-1. Figure

137

Lestrapssontainsil’équivalentmatérieldesexceptionslogicielles,quiellesaussisedéclenchentencasd’exécutionincorrected’instructions,etquiontungestionnaireassocié.

LesinterruptionsUneinterruptionestuneexceptionàcauseexterne,généralementliéeàunévénementd’entrée/sortie.Parexemple:

• lalecturededonnéesparundisqueestterminéeetlecontrôleurdedisquesenvoieauprocesseuruneinterruptionpourl’eninformer.

• unpaquetderéseauvientd’arriver.• unévénementclavierousourisvientdeseproduire.• unchangementestintervenusurunedeslignesd’entrées/sorties.• unévénementestintervenusurlachaîneUSB.

Lesinterruptionssontditesasynchrones,carellessurviennentàdesmomentstotalementimprévisiblesdufonctionnementduprocesseur,etnonenrapportavecdesinstructionsprécises.Leprocesseurestprévenudel’occurrencedel’interruptionparl’activationd’uneligneexternespécifique,souventcommuneàplusieursouàtouteslesinterruptions.C’estseulementensuitequeletypedel’interruptionseraidentifié,etqu’unsous-programmeassociéseraexécuté,etced’unefaçonquidevrarestertransparentepourleprogrammeprincipalquiétaitencoursd’exécutionàcemoment.Parexemplelorsquevousappuyezsurunetouchedevotreclavierd’ordinateur,aucunprogrammen’attendspécifiquementetactivementcettefrappe.Lorsdelafrappe,uneinterruptionestgénéréeparlecontrôleurdeclavierversleprocesseur,etcelui-cisuspendleprogrammeencoursd’exécution,etappelleunsous-programmegestionnairedecetteinterruption,dontlerôlevaêtred’obtenirducontrôleurdeclavierlecodedelatouchefrappéeetdeleplacerdansunbuffersituéauniveaudusystèmed’exploitation.L’exécutiondecesous-programmeseratrèsrapideetonverraqu’elleserafaitedefaçontransparentepourleprogrammequiaétéinterrompu.

Uneinterruption=uncoupdesonnettePourmieuxfairecomprendrelestrapsetlesinterruptions,onpeutemployeruneanalogiedomestique.Supposonsquenoussoyonsentraindefaireungâteau,ensuivantlesinstructionsd’unerecette:ceseral’équivalentduprogrammeprincipalencoursd’exécution.Laplupartdesinstructionsdelarecettesontsansproblème:remuerlapâte,etc.Unpetitnombred’entre-ellespeuventmalsepasser:siondoitcasserunœufmaisqu’iln’estpasfrais;siondoitmettreunepincéedeselmaisqu’onn’aplusdesel,etc.Cesproblèmesspécifiquessontassociésàdesinstructionsspécifiques,cesontl’équivalentdestraps.Leplussouvent,leurpriseencompteconsisteraàabandonnerlatâcheencours.

Supposonsmaintenantquependantquenousfaisonscetterecettenousattendionslavisitedufacteur,maisquenotresonnettesoitenpanne.Commelemomentprécisdecettevisiten’estpasdéfini,celavanousobligeràinterrompresanscessenotrerecettepourallerregarderparlafenêtre.Celaserapénalisantpourlarecette,maisaussipastrèsefficace:lefacteurpeuttrèsbienêtrevenuetrepartienpensantqu’iln’yavaitpersonne,sionlaissepassertropdetempsentredeuxcoupsd’œil.Avecunesonnette,quijouelerôled’uneligned’interruption,onpeutréaliserlarecettesanspensersanscesseaufacteur.Siuncoupdesonnettesurvient,ontermineral’instructionencours,(parexemple,ilfautterminerdecasserunœufsionadéjàcommencé)etoncocherasurlarecettel’endroitoùons’estarrêté.

Page 138: INTRODUCTION A L ARCHITECTURE DES ORDINATEURSdiabeto.enseeiht.fr/download/archi/cours/book2_4.5.pdfLa plupart des ordinateurs ont l’organisation générale de la Figure I-1. Figure

138

Onréagiraensuiteàl’interruptionparuneprocédureadaptée:alleràlaporte,ouvrir,saluer,récupéreréventuellementdesdonnées,etc.Deretourdecetteprocédure,dontletraitementauraétécourt,onreprendralarecetteàl’instructionquisuitcellequ’onavaitcochée.

Cetteanalogiepermetmêmedeprésenterleproblèmedesniveauxdeprioritéentreexceptions.Commentdoit-onfairesiparexempleletéléphonesonnealorsqu’onestentrainderépondreauvisiteuràlaporte?Sionjugequeletéléphoneestplusprioritairequelaported’entrée,alorsoninterrompraledialogueencoursaveclevisiteurpoureffectuerlaprocédureassociéeautéléphone.Unefoisqu’onaurafiniderépondre,onreprendraledialogueaveclevisiteurlàoùonl’avaitarrêté,pourfinalementrevenirauprogrammeprincipal(larecette),dontl’exécutionn’aurapasétéperturbée.

NiveauxdeprioritéAinsi,àchaqueexception(trapouinterruption)estassociéunniveaudepriorité,codégénéralementsousformed’unnombreentier.Parailleursleprocesseurentretientdansunregistred’étatunevaleurdeniveaucourantd’exécution.Lorsqueleprocesseurexécuteunprogrammeàunniveaup,ilnepeutêtreinterrompuqueparuneexceptiondeniveauqsupérieuràp.Lorsquecetteinterruptionestpriseencompteetquesongestionnaireestexécuté,leprocesseurélèvesonniveaud’exécutionàqdefaçonànepluspouvoirêtreinterrompuquepardesexceptionsdeniveausupérieuràq.Lorsqueleprocesseursortdugestionnairedecetteexception,ilreprendleniveaud’exécutionqu’ilavaitavantl’appel.Leprogrammeprincipals’exécuteauniveau0,etilestparconséquentinterruptiblepartouteslesexceptions.

LaFigureIII-134montreunexempledescénariod’exécutionduprogrammeprincipaletdedeuxgestionnairesd’exceptiondeniveauxdeprioritédifférents.

FigureIII-134.Niveauxdeprioritésetgestionnairesd’exceptions.Leprogrammeprincipalestinterrompuparl’exception#25,quiluimêmeestinterrompuparl’exception#13;chaqueinterruptionesttransparentepourceluiquiest

interrompu.

Numérodel’exceptionÀchaqueexceptionestégalementassociéunnumérodetype,uniquepartyped’exception,quivaserviràlocaliserl’adressedesongestionnaired’exception.Cenuméron’aenprincipepasderapportdirectavecleniveaudeprioritédel’exception.

Page 139: INTRODUCTION A L ARCHITECTURE DES ORDINATEURSdiabeto.enseeiht.fr/download/archi/cours/book2_4.5.pdfLa plupart des ordinateurs ont l’organisation générale de la Figure I-1. Figure

139

Gestionnairesd’exceptionsLorsqu’uneexceptionestpriseencompte,unsous-programmeappelégestionnaired’exceptionouhandlerd’exceptionestappelé,associéaunumérodetypettdel’exception.

Ilexistegénéralementunetabledevecteursd’exceptionquicontientlesadressesdetouslesgestionnairesd’exception,classéeparnumérodetypett.Cettetableestinitialiséelorsduchargementdusystèmed’exploitation,ouellepeutêtreenROM.Souvent,unregistrespécialduprocesseurpointesurledébutdecettetable.

V.9.2. LesexceptionsdansleprocesseurCRAPSLagestiondesexceptionsestextrêmementsimplifiéedansCRAPS.Iln’yapasdetraps(exceptionsàcauseinterne)etiln’yaqu’uneseuleligned’interruption,quipeutêtrereliéeàlasortiedutimeroutoutautresignal.L’interruptioncorrespondalorsàunfrontmontantdecesignal,quiestmémorisédansunebasculevisibleentantquebit2duregistred’état%psr=%r25.Leprocesseurnepossèdepasplusieursniveauxd’exécution.

Unefoisl’interruptiondéclenchée,laprocéduresuivante,ininterruptible,estautomatiquementexécutéeparleprocesseur:

• l’instructionencoursd’exécutionestterminée• lebit2de%psr(lebitquimémorisel’interruption)estremisà0• %pcestempilé,defaçonàmémoriserl’adressederetourdansleprogrammeinterrompu• %psrestempilé,defaçonàsauvegarderlesflags• %pcß1,cequivaconduireaubranchementdanslehandlerd’interruption

Lehandlerd’interruptionestdoncnécessairementàl’adresse4.Cedoitêtreunsous-programmecourt,pournepasinterrompretroplongtempsleprogrammeprincipal.Ildoitseterminerparl’instructionreti,quiprovoqueunretourdansleprogrammeinterrompu,àl’adressesuivantl’instructionquiaétéinterrompue.

Lehandlerdoitprendresoindenepaschangerlesvaleursdesregistres,pournepasperturberleprogrammequiaétéinterrompu.Celapassesouventparunempilementdesvaleursdesregistresquelehandlermanipule,puisundépilementjusteavantleretipourredonneràcesregistreslesvaleursqu’ilsavaientaumomentdel’interruption.Iln’estpasnécessairedesauvegarderlesflags,quisontautomatiquementsauvegardésparlaprocéduredepriseencomptedel’interruption.

Enfin,puisquelehandlerestàl’adresse1,celaimpliquequ’encasd’usagedesinterruptions,lapremièreinstructionduprogrammeprincipalàl’adresse0doitêtreunbranchementinconditionnelplusloinenmémoireverslasuiteduprogramme,au-delàduhandlerd’interruption.

L’instructionretifonctionnedelafaçonsuivante:

• ondépiledans%psr(%r25)pourqu’ilretrouvesavaleurinitiale• ondépiledans%pcpourquelecontrôleretourneàl’adressequiaétéinterrompue

Ils’agitbiend’uneinstructionetnond’uneinstructionsynthétique,carelledevras’exécuterdefaçonatomiqueetnoninterruptible.

Page 140: INTRODUCTION A L ARCHITECTURE DES ORDINATEURSdiabeto.enseeiht.fr/download/archi/cours/book2_4.5.pdfLa plupart des ordinateurs ont l’organisation générale de la Figure I-1. Figure

140

Exemple:horlogetempsréelÀtitred’exemple,onvamettreenplaceunehorlogequipermettraàunprogrammed’obteniruneheured’uneprécisionparfaite,sousformed’unefonctiongetTimeMillis.

Àchaqueappeldecettefonction,onobtiendradans%r1lenombredemillisecondesécouléesdepuislamiseenroutedelamachine;cettevaleurs’incrémenteradefaçonexacteentrechaqueappel,sansqueleprogrammeprincipalencoursd’exécutionnes’enoccupeexplicitement.

Onvapourcelaprogrammerletimerpourqu’ilfournissedesimpulsionstouteslesmillisecondes,etbranchersasortieàlaligned’interruption.Lehandlerdel’interruptionincrémenterasimplementuncompteurdemillisecondes,quelafonctiongetTimeMillissecontenteraderenvoyer.

BASETIMER = 0x400000 // adresse de base du timer

STACK = 0x200 // adresse du sommet de pile

TIME = 0x100 // mot mémoire contenant le temps en ms

.org 0

ba main // brancht vers le début du programme

.org 1 // adresse du handler d’interruption = 1

handler: push %r1 // sauvegarde %r1 et %r2

push %r2

set TIME, %r1

ld [%r1], %r2 // lecture du temps

add %r2, 1, %r2 // incrémentation

st %r2, [%r1] // écriture valeur incrémentée

pop %r2 // restauration %r1 et %r2

pop %r1

reti

getTimeMillis: set TIME, %r1

ld [%r1], %r1

ret

init_timer: // configuration du timer à une période de 1ms

set BASETIMER, %r1 // %r1 = base timer

setq 1562, %r2 // P = 1562 * DT = 1ms

st %r2, [%r1] // écriture de P

setq 781, %r2 // N = P/2

st %r2, [%r1+1] // écriture de N

ret

main: set STACK, %r30 // initialisation sommet de la pile

call init_timer // initialisation timer

loop: call getTimeMillis

ba loop

V.10. Exercicescorrigés

Page 141: INTRODUCTION A L ARCHITECTURE DES ORDINATEURSdiabeto.enseeiht.fr/download/archi/cours/book2_4.5.pdfLa plupart des ordinateurs ont l’organisation générale de la Figure I-1. Figure

141

V.10.1. multiplicationprogrammée

ÉnoncéÉcrireunsous-programmequieffectuelamultiplicationdedeuxnombresnonsignésde16bitsplacésdanslespoidsfaiblesde%r1et%r2respectivement,avecunrésultatsur32bitsdans%r3.

SolutionOnsupposedoncqu’onnedisposepasdel’instructionumulcc.Onpourraitmettreenplaceunebouclequ’oneffectuerait%r1fois,etdanslaquelleoncumulerait%r2dans%r3.Cetteméthodeseraitsimple,maisparticulièrementinefficacepourdegrandesvaleursde%r1.Onvaplutôtutiliseruneméthodedanslaquelleonprendlesbitsde%r2unparunencommençantparlepoidsfaible,etoncumuledans%r3(initialiséà0)lavaleurde%r1,quel’ondécaleverslagaucheàchaqueétape.Celacorrespondàl’algorithmesuivant:

; calcul du produit A x B

résultat <- 0 ;

tant que (B <> 0) faire

b0 <- poids_faible(B) ;

décaler B d’un bit vers la droite ;

si b0 = 1 faire

résultat <- résultat + A ;

fin si

décaler A d’un bit vers la gauche ;

fin tq

Leprogrammequisuitestunetraductionlittéraledel’algorithme.Onnoteraletestbne noaddquin’estpasfaitimmédiatementaprèsl’instructionandcc %r2, 1, %r0quipositionneleflagZ;celaestpossiblecarl’instructionquilasuitsrl %r2, 1, %r2nemodifiepaslesflags.

// programme principal de test

set 17, %r1 // A <- 17

set 14, %r2 // B <- 14

call mulu16 // calcul de A x B

stop: ba stop // arrêt

mulu16: clr %r3 // résultat <- 0

loop: tst %r2 // tant que B <> 0

be fin

andcc %r2, 1, %r0 // b0 (Z) <- poids faible de B

srl %r2, 1, %r2 // décale B vers la droite

bne noadd // si b0 = 1 faire

addcc %r1, %r3, %r3 // résultat <- résultat + A

noadd: sll %r1, 1, %r1 // décale A à gauche

ba loop // fin tq

fin: ret

Page 142: INTRODUCTION A L ARCHITECTURE DES ORDINATEURSdiabeto.enseeiht.fr/download/archi/cours/book2_4.5.pdfLa plupart des ordinateurs ont l’organisation générale de la Figure I-1. Figure

142

V.10.2. Systèmedesécurité

ÉnoncéOnsouhaiteutiliserleslignesd’entrées/sortiesdeCRAPSpourréaliserunsystèmedemiseenmarchedemachinedangereuse.OnsupposeraquelesentréesIn[0]etIn[1]sontreliéesàdesboutonspoussoirsappelésAetBrespectivement,équipésd’undispositifanti-rebond.LaligneOut[0]commanderalamiseenmarchedelamachine.Ondemanded’écrireunprogrammequifonctionneenpermanence,etquidéclenchelamiseenmarchedelamachinelorsquelaprocéduresuivanteestrespectée:

• AetBdoiventêtrerelâchésinitialement;• appuyersurA,• appuyersurB:lamachinesemetenmarche.

Touteautremanipulationarrêteoulaisselamachinearrêtée;ilfautensuitereprendrelaprocédureaupoint1pourlamettreenmarche.

SolutionOnadéjàréaliséunetellecommandeàl’aidedecircuitsséquentiels.Ondemandemaintenantdeleréaliserparprogramme,commeonpourraitlefaireavecunmicrocontrôleur.

Onrappellelegraphed’étatsdecesystèmeFigureIII-135.

FigureIII-135.Graphed’étatsdusystèmedesécurité.

Àchaqueétatdanslegraphecorrespondraunepositiondansleprogramme.Celaconduitàl’algorithmesuivant:

label a:

écrire 0 sur M ;

lire état de A et B ;

cas (A,B)

(0,0): aller en a ;

(1,0): aller en b ;

autre: aller en e ;

fin cas

label b:

lire état de A et B ;

cas (A,B)

(1,0): aller en b ;

Page 143: INTRODUCTION A L ARCHITECTURE DES ORDINATEURSdiabeto.enseeiht.fr/download/archi/cours/book2_4.5.pdfLa plupart des ordinateurs ont l’organisation générale de la Figure I-1. Figure

143

(1,1): aller en c ;

autre: aller en e ;

fin cas

label c:

écrire 1 sur M ;

lire état de A et B ;

cas (A,B)

(1,1): aller en c ;

autre: aller en e ;

fin cas

label e:

écrire 0 sur M ;

lire état de A et B ;

cas (A,B)

(0,0): aller en a ;

autre: aller en e ;

fin cas

Leprogrammequisuitestunetraductionlittéraledel’algorithme.

INPUTS = 0x90000000 // adresse de base des entrées

OUTPUTS = 0xB0000000 // adresse de base des sorties

set INPUTS, %r3

set OUTPUTS, %r4

a: setq 0b0, %r2 // M <- 0

st %r0, [%r4]

ld [%r3], %r2 // lecture état de A et B

andcc %r2, 0b11, %r2 // isolation des bits 0 et 1

subcc %r2, 0b00, %r0

be a // (A,B) = (0,0) : aller en a

subcc %r2, 0b10, %r0 // (A,B) = (1,0) : aller en b

bne e // sinon aller en e ;

b: setq 0b0, %r2

st %r2, [%r4] // M <- 0

ld [%r3], %r2 // lecture état de A et B

andcc %r2, 0b11, %r2 // isolation des bits 0 et 1

subcc %r2, 0b10, %r0

be b // (A,B) = (1,0) : aller en b

subcc %r2, 0b11, %r0 // (A,B) = (1,1) : aller en c

bne e // sinon aller en e

c: setq 0b1, %r2

st %r2, [%r4] // M <- 1

ld [%r3], %r2 // lecture état de A et B

andcc %r2, 0b11, %r2 // isolation des bits 0 et 1

subcc %r2, 0b11, %r0 // (A,B) = (1,1) : aller en c

be c // sinon aller en e

e: setq 0b0, %r2

st %r2, [%r4] // M <- 0

ld [%r3], %r2 // lecture état de A et B

Page 144: INTRODUCTION A L ARCHITECTURE DES ORDINATEURSdiabeto.enseeiht.fr/download/archi/cours/book2_4.5.pdfLa plupart des ordinateurs ont l’organisation générale de la Figure I-1. Figure

144

andcc %r2, 0b11, %r2 // isolation des bits 0 et 1

subcc %r2, 0b00, %r0 // (A,B) <> (0,0) : aller en e

bne e

ba a // sinon aller en a

Page 145: INTRODUCTION A L ARCHITECTURE DES ORDINATEURSdiabeto.enseeiht.fr/download/archi/cours/book2_4.5.pdfLa plupart des ordinateurs ont l’organisation générale de la Figure I-1. Figure

145

ChapitreVI. AméliorationdesperformancesVI.1. Pipelines

Dansl’organisationinitialed’unprocesseurtellequecelledenotreCRAPS,l’exécutiond’uneinstructionsefaitenuneséquencedeplusieursétapes.Chaqueétapenefaitintervenirqu’unepartiedelamicro-machine,pendantquelesautresélémentsrestentinoccupés,cequilaisseunemarged’efficacitéinexploitée.L’idéed’uneorganisationenpipeline,c’estderéalisercettesuccessiond’étapescommesurunechained’assemblageautomobile,avecdespostesspécialisésàchaqueétape.Onchargeuneinstructiondanslapremièreétape,puisaucycled’horlogesuivant,cetteinstructionpasseàl’étape2pendantqu’unenouvelleinstructionenchargéeàl’étape1,etainsidesuite.Idéalement,silepipelineestconstituédenétages,lapremièreinstructionseratotalementexécutéeaprèsncyclesd’horloges,puisunenouvelleinstructionsetermineraàchaquenouveaucycled’horloge.Ainsi,mêmesiletempsd’exécutiond’uneinstructionesttoujourslemême,ledébitdesortiedesinstructionsestquant-àluimultipliéparn.Enpratique,plusieursfacteursempêcherontsouventlepipelinedefonctionneràpleinrendement,maisl’efficacitén’enserapasmoinstrèsaugmentée.

VI.1.1. UnpipelinepourCRAPSCommetouslesprocesseursRISC,CRAPSaunjeud’instructionsquiseprêtebienaudécoupagepourunpipeline.Parexemple,pourquasimenttouteslesinstructions,ilyauncalculetunseulàeffectuerparl’UAL,mêmepourlesaccèsmémoirepourlesquelsl’adresseestlerésultatd’unesomme.Onauradoncunétagedédiéàcecalculdanslepipeline.Onpeutparexempleutiliserledécoupagesuivant:

FigureIII-136.PipelinepourCRAPS.

Lescomposantssontséparéslesunsdesautrespardesregistresd’étage,quimémorisentlesinformationsnécessairesauxcomposantsdel’étagepourréaliserleurtâchespécifique.Lesétagesetleurstâchesassociéssont:

• EtagePC:leregistrepcestmémorisédansleregistred’étagePC,puisilestincrémentéde4.Aprèsexécutionducycle,ilestprêtàproduirelepcdel’instructionsuivantequientreradanslepipeline.

Page 146: INTRODUCTION A L ARCHITECTURE DES ORDINATEURSdiabeto.enseeiht.fr/download/archi/cours/book2_4.5.pdfLa plupart des ordinateurs ont l’organisation générale de la Figure I-1. Figure

146

• EtageInstr:l’instructionsituéeàl’adressePCestlueenmémoire,etenregistréedanslechampirduregistred’étagesuivant.

• EtageArgs:unelectureparallèledesregistresdontlesnumérossontformésdeschampsrs1,rs2,rs3del’instructionduregistred’étageesteffectuée,enprévisiondesdifférentessituationspossibles.Demême,l’extractiondesconstantesimmédiatesetdesdéplacementsdebranchementsontréalisés.Touscesrésultatssontmémorisésdansleregistred’étagesuivant.

• EtageCalc:l’additionpourlesbranchementsetlesaccèsmémoire,oul’opérationassociéeàl’instructiondecalcul,sonteffectués.Lerésultateststockédanslechampresduregistred’étagesuivant.

• EtageMem:pouruneinstructionld,lectureenmémoireàl’adressecontenuedanslechampresduregistred’étageetstockagedurésultatdanslechampresduregistred’étagesuivant.Pourlesautresinstructions,lechampresestsimplementtransféréàl’étagesuivant.

• EtageResult:lerésultatestmémorisédansunregistre(pcsic’estunbranchement),oudansunecasemémoire,selonletypedel’instruction.

Parexemple,uneinstructiontellequeld [%r1-2], %r3vas’exécuterdelafaçonsuivante:

§ PC:MémorisationduPCdansleregistred’étagesuivant,incrémentationdePCde4§ Instr:Lecturedel’instructionenmémoireàl’adressecalculéeàl’étageprécédent§ Args:lecturesimultanéede%r1,%r2et%r3.Lalecturede%r2,inutile,correspondàune

extractionincongrueduchamprs2;demêmelalecturede%r3serainutile.Parcontre,lechampsimm13estétendusur32bitspuismémorisédanslechamparg2duregistred’étagesuivant.

§ Calc:%r1(arg1)et-2(arg2)sontadditionnés,puismémorisésdanslechampresduregistred’étagesuivant.

§ Mem:lectureenmémoireàl’adressecontenuedansres,puisstockagedurésultatdanslechampresdel’étagesuivant.

§ Result:écrituredelavaleurlue,situéedanslechampresduregistred’étage,dansleregistredenumérord,ludanslechampirduregistred’étage.

Chaqueétageréaliseunetâchesimpleetspécialisée.Cettesimplicitépermetd’abaisserlestempsdecycled’horloge,etdoncd’augmenterledébitdesortiedesinstructions.

AléasIlexistetroistypesdesituations,appeléesaléas,oùlepipelinenepeutfonctionneràpleinrendement,etoùdesétagesrestentinoccupés:

§ Aléasstructurels–Ilscorrespondentaucasoùdeuxinstructionsutilisentlamêmeressourceduprocesseur(registre,mémoire,UAL)Parexemple,ilyaunconflitpotentielpourl’écrituredansleregistrepcentrelesétagesPcetResult,maisceconflitneseraeffectifques’ilyauneinstructiondebranchementdansl’étageResult.

§ Aléasdedonnées–Ilyaaléadedonnéelorsqu’uneinstructionproduitunrésultat,etqu’uneinstructionsuivanteabesoindecerésultatavantquelaprécédenten’aiteuletempsdel’écrireenmémoireoudansleregistredestination.Parexemple,danslemorceaudeprogrammesuivant:

Page 147: INTRODUCTION A L ARCHITECTURE DES ORDINATEURSdiabeto.enseeiht.fr/download/archi/cours/book2_4.5.pdfLa plupart des ordinateurs ont l’organisation générale de la Figure I-1. Figure

147

add %r1,%r2,%r3 st %r3,[%r4]

Lesinstructionsvontsesuivredanslepipeline,etlorsqueleaddseradansl’étageArgs,l’instructionstseradansl’étageCalc.Maisaddnepourrapascontinuer,carelleabesoindelavaleurde%r3quiseramodifiéeparstlorsquecelle-cifinirasonexécution.

Autreexemple:

st %r3,[%r4] ld [%r4],%r5

Ici,l’aléadedonnéesportesurlacasemémoiredontl’adresseestdans%r4.

§ Aléasdecontrôle–Unaléadecontrôleseproduitchaquefoisqu’unbranchementesteffectué.Lorsqu’uneinstructiondebranchementestchargée,ilestnécessairedeconnaîtrel’adressededestinationdubranchementpourchargerl’instructionsuivante.Or,savoirqu’uneinstructionestunbranchementn’estconnuqu’àl’étageInstr,etl’adressedubranchementn’estconnuequ’àl’étageResult.Plusieursstratégiessontpossiblespourpalierceproblème.

BullesdanslepipelineLorsqu’unaléaestdétecté,lesinstructionsprésentesàchaqueétagenepeuventpascontinueràêtreexécutéestellesquelles.Danscecas,lepipelineestpartagéendeux:lesétagesdelapartiedroitedupipelinequinesontpasaffectésparlesaléaspeuventcontinueràs’exécuteretàsedécalerprogressivementjusqu’àsortir;lesautresétagesrestentbloqués(aléasstructurel,aléasdedonnées)oueffacés(aléasdecontrôle)tantquedesaléaspersistent.Lesétagesvacantsentrelesdeuxsontappelésdes«bulles»dupipeline.

Ilestimportantdenoterquelesconséquencesdel’exécutiond’uneinstruction(écrituredansunregistreoudansunecasemémoireetaffectationdesflags)nesonteffectivementréaliséesquedansledernierétagedupipeline.Uneinstructionquiatteintcestadeestdéfinitivementvalidéeetleregistreoulacasemémoirerésultatsontdéfinitivementaffectésenuneopérationatomique;encasd’abandond’uneinstructionquiestencoreàunétageinférieuretdoncpartiellementexécutée,iln’yarienbesoindedéfaire.

DétectiondesaléasPourdétecterlesaléasdedonnéessurlesregistres,lesregistresd’étagemémorisentpourchaqueinstruction,àpartirdel’étagededécodageInstr,unchampdebits‘setreg’,quiindiquepourchaqueregistresil’instructionmodifierasavaleurdansl’étageResult.Uneinstructionsituéedansl’étageArgsserabloquéesielleabesoindelirelavaleurd’unregistrepourlequellebitcorrespondantde‘setreg’està1danslesétagesplushautCalc,MemouResult.

Unaléadedonnéesurunecasemémoireestdifficileàrepérerfinement;onpeutsecontenterd’ununiquebit‘setmem’danslesregistresd’étageàpartirdel’étageInstr,quiindiquequel’instructionvamodifierunecasemémoire.Uneinstructionsituéedansl’étageMemserabloquéesilebit‘setmem’duregistred’étageResultestà1.Onnoteraqu’enprincipe,uneinstructionstprovoqueunaléadedonnéesystématique,puisqu’elleestsusceptibledemodifierlescodesdesprochainesinstructionsquin’ontpasencoreétélusenmémoire.Enpratique,lesystèmed’exploitation,viala

Page 148: INTRODUCTION A L ARCHITECTURE DES ORDINATEURSdiabeto.enseeiht.fr/download/archi/cours/book2_4.5.pdfLa plupart des ordinateurs ont l’organisation générale de la Figure I-1. Figure

148

segmentationdelamémoire,interditàunprogrammedemodifierlazonedecoded’unautreprogramme,etcetaléan’existedoncpas.

Onpeutconsidérerquel’aléadecontrôleestuneformed’aléadedonnéessurleregistrepc,quipeutêtregéréenutilisantlechampdebits‘setreg’.Apartirdel’étageInstr,uneinstructiondebranchementvamettreà1lebitde‘setreg’associéàpc,indiquantparlàqu’elleestsusceptibledemodifierpc(mêmesicen’estpascertain).Ensuite,lesétagesquin’ontpasuntelbità1surleurdroitepeuventcontinueràprogresserdanslepipeline,ycomprisl’instructiondebranchementelle-même.

GestiondesaléasdecontrôleOnl’avu,lorsqu’uneinstructiondebranchementestchargée,ilestnécessairedeconnaîtrel’adressededestinationpourpouvoircontinueràchargerlepipelineaveclesinstructionssuivantes.Orcetteadressededestinationneseraconnueaveccertitudequequandl’instructiondebranchementauratraverséeledernierétagedupipeline.Plusieursstratégiessontalorspossibles:

• Leprocesseurpeutchargerdesbullesdanslepipelinejusqu’àcequelebranchementsortedupipeline.C’estbiensûrlaméthodelamoinsefficace

• leprocesseurpeutfaireleparisystématiquequelebranchementn’aurapaslieu(c’estlecasleplusfréquent,etleplussimple).Ilpeutalorscontinueràchargerdanslepipelinelesinstructionsquisuiventlebranchement,maisensepréparantàleseffacer(lesremplacerpardesbulles)silepariestperdu,c'est-à-diresifinalementils’avèrequelebranchementesteffectué,quandilestdansl’étageResult.Cettegestionpeutêtrefaiteenutilisantlebitassociéauregistrepcdanslechampdebitssetreg

• leprocesseurpeutréaliserdesprédictionsdebranchement.Destechniquessophistiquéesexistent,quiserontdétailléesplusloin,etquipermettentdeprédireavecunassezbontauxderéussitesiunbranchementseraprisounon,àpartirdel’histoiredesévénementsrécents.

Exempled’exécutionConsidéronsleprogrammesuivant:

setq 10, %r1 setq 1000, %r2 loop: st %r0, [%r2+%r1] deccc %r1 bne loop i6

i7 …

L’entréedesinstructionsdanslepipelineestmontréeFigureIII-137.Aprèslechargementdebne,leprocesseurfaitlepariquelebranchementn’aurapaslieuetcontinuedechargerlesinstructionssuivantes.

cycle PC Instr Args Calc Mem Result

1 @setq o o o o o 2 @setq setq o o o o

Page 149: INTRODUCTION A L ARCHITECTURE DES ORDINATEURSdiabeto.enseeiht.fr/download/archi/cours/book2_4.5.pdfLa plupart des ordinateurs ont l’organisation générale de la Figure I-1. Figure

149

3 @st setq setq o o o 4 @deccc st setq setq o o 5 @bne deccc st setq setq o 6 @bne deccc st o setq setq 7 @bne deccc st o o setq 8 @bne deccc st o o o 9 @i6 bne deccc st o o

10 @i7 i6 bne deccc st o

11 @i8 i7 i6 bne deccc st

12 @i9 i8 i7 i6 bne deccc

13 @i10 i9 i8 i7 i6 bne

14 o o o o o o

15 @st o o o o o

16 @deccc st o o o o

17 @bne deccc st o o o

18 @i6 bne deccc st o o

19 @i7 i6 bne decc st o

FigureIII-137.Entréedesinstructionsdanslepipeline.

Dansl’étagePC,lesinstructionssontprécédéesd’unsigne‘@’carc’estseulementleuradressequiestdansleregistrepc,maislecodeinstructionlui-mêmen’apasencoreétéluenmémoirenidécodé.Cettelectureetcedécodagesontréalisésàl’étagesuivantInstr.

Aucycle5,unaléadedonnéesseproduitpourlesregistres%r1et%r2entrel’instructionstquiestdansl’étageArgsetquiabesoindeleurvaleur,etlesinstructionssetqquimodifientcesregistresetquin’ontpasfinides’exécuter.Desbullessontdoncintroduites,jusqu’aucycle8.Acemoment,lesinstructionsst,decccetbnepeuventprogresserdanslepipeline,etl’instruction@i1yentreégalement.Aucycle9,unaléadecontrôleseproduitàcausedelaprésenceetdudécodagedel’instructionbneàl’étageInstr.Leprocesseurcontinueàchargerlesinstructionsi7,i8,etc.maisaucycle13,ilconstatequelebranchementestprisetqu’ilfauteffacertouteslesinstructionsàgauchedubranchement.Lemêmealéasereproduitaucycle17,etc.

Page 150: INTRODUCTION A L ARCHITECTURE DES ORDINATEURSdiabeto.enseeiht.fr/download/archi/cours/book2_4.5.pdfLa plupart des ordinateurs ont l’organisation générale de la Figure I-1. Figure

150

LeproblèmedesexceptionsLorsqu’uneexceptionestpriseencompte,lesystèmed’exploitations’attendàcequel’instructionencourssoitterminée,puisquelecontrôlesoitpasséauhandlerdel’exception.Ils’attendaussiàceque,lorsquel’exécutionduhandlerseraterminée,lecontrôlereprenneaprèsl’instructioninterrompue.Oncomprendqu’avecuneexécutionbaséesurunpipeline,lasituationestpluscomplexe.Toutd’abord,qu’est-ceque«l’instructionencours»?Eneffet,jusqu’à8instructionssontsimultanémentencoursd’exécutiondanslepipeline,àdesdegrésd’avancementdivers.SIl’exceptionestuneinterruption,c'est-à-direàcauseexterne(timer,I/O,etc.),onpeutconsidérerque«l’instructionencours»estl’instructionsituéedansledernierétagedupipeline,carc’estlaseulequiestcertained’êtreexécutée.Lesinstructionsquisontàsagauchedanslepipelinesontcellesquisuiventpossiblementdansleprogramme(cen’estpascertain)l’instructioninterrompue.Leplussimpleestdelesremplacerpardesbulles,carleprocesseurdoitexécuterimmédiatementlehandlerdel’interruption.Sil’exceptionestuntrap,c'est-à-direàcauseinterne(divisionpar0,instructionillégale,problèmed’accèsmémoire),ellepeutsurveniralorsquel’instructionn’estpascomplètementexécutée.Uneinstructionillégaleserarepéréecommetelledansl’étageInstr;unedivisionparzéroseradétectéedansl’étageCalc,uneerreurdelecturemémoiredansl’étageMemetuneerreurd’écrituremémoiredansl’étagefinalResult.Leproblèmeestqu’iln’estpascertainquecetteinstructionatteigneledernierétagedupipeline,àcaused’unbranchementoumêmed’uneinterruption.Lasolutionestdoncdemettreà1unbitspécialduregistred’étageoùs’estdéclenchéletrap,etdecontinueràexécuterlesinstructionsdupipelinejusqu’àcequecebit,quiestdécaléprogressivementversladroite,atteigneledernierétage,s’ill’atteint.Danscecas,onprocèdecommelorsd’uneinterruption,c'est-à-direqu’onremplacetouslesautresétagespardesbulles,etonlancel’exécutionduhandlerdel’exception.

PrédictiondebranchementOnavudansl’exempleFigureIII-137quelesbranchementspouvaientintroduiredenombreusesbullesdanslepipeline,etced’autantplusquecelui-cipossèdeungrandnombred’étages.Commeilyaenmoyenneunbranchementtoutesles5instructions,l’intérêtdupipelineserafortementdiminués’iln’yapasmoyendeprédireavecuneassezbonnecertitudesiunbranchementvaêtreprisounon.

VI.2. Cachesmémoire

VI.2.1. ProblèmedesaccèsmémoireL’écartdeperformanceenvitesseentreleprocesseuretlamémoireatendanceàs’accroitre.Unaccèsmémoirenécessiteparfoisplusieursdizainesdecyclesd’horlogeduprocesseur,sachantqu’ilyaenmoyenneunaccèsmémoirepour3instructionsexécutées.Surunsystèmedetypex86parexemple,onamaintenantdesCPUavecdeshorlogessupérieuresauGHz,alorsquelamémoirefonctionneàdesfréquencesbeaucoupplusbasse(figureVI-1).Cettedifférencedeperformanceauraitunimpacttrèsnégatifsurlaperformanceglobalesionn’introduisaitpasdemécanismepourmasquercettelatence.

Page 151: INTRODUCTION A L ARCHITECTURE DES ORDINATEURSdiabeto.enseeiht.fr/download/archi/cours/book2_4.5.pdfLa plupart des ordinateurs ont l’organisation générale de la Figure I-1. Figure

151

FigureIII-138.Différencesdevitesseentreleprocesseuretlamémoirecentrale

Pourtant,onsaittrèsbienfairedelamémoirequifonctionneraitàlafréquenceduCPU–qu’onpenseparexempleaubistablecomposéd’unepairedeNAND-maisellenepourraitêtrequesurlamêmepuce,etd’unetailleréduite.D’unautrecôté,onsaitfairedesmémoires(relativement)lentesetdegrandetaille.Leproblèmeestdonc:est-ilpossibledeconcevoirunemémoiredegrandetailleavecdesaccèsrapides,toutaumoinsdanslaplupartdescas?Laréponseest:oui,sionutiliselemécanismedesmémoirescache.

VI.2.2. MémoirecacheUnmémoirecacheestunepetitemémoire,trèsrapide,placéeentreleCPUetlamémoirecentralepluslente(FigureIII-139).Leprocesseurn’aaucunementconsciencedesaprésenceettoutsepassepourluicommes’ildialoguaitdirectementaveclamémoirecentrale.

FigureIII-139.LecacheestplacéentreleCPUetlamémoirecentrale

L’idéedebaseestdegarderlesmotslesplusutilisésdanslecache.Lorsqueleprocesseurfaitunaccèsmémoireenlectureouenécriture,silemotrecherchéestdanslecache,larequêteestexécutéeimmédiatementsansaccèsàlamémoirecentraleetonparledecachehit;sinononparledecachemissetunaccèsenmémoirecentraleestalorseffectué.Enpratique,onobserveuntauxdecachehitdel’ordrede80%à90%,cequiconduitàunefortediminutiondelalatencemoyennedelamémoire.

VI.2.3. LocalitédesaccèsmémoireLorsqu’onfaitunaccèsmémoireàl’adressex,laprobabilitéestgrandequelesprochainsaccèsmémoire(localitétemporelle)serontàdesadressesprochesdex(localitéspatiale):motsdansunepile,manipulationdechaînes,detableauxetmatrices,destructures.

Pourexploiterlalocalitéspatiale,lecachecontientdescopiesdesmotsmémoireparblocs,appeléscachelines.Enpratique,lescachelinesontunetaillede32ou64octets.

Pourexploiterlalocalitétemporelle,unchoixjudicieuxdescachelinesàretirerdoitêtrefaitlorsqu’ilfautrajouterunecachelineàuncachedéjàplein

Page 152: INTRODUCTION A L ARCHITECTURE DES ORDINATEURSdiabeto.enseeiht.fr/download/archi/cours/book2_4.5.pdfLa plupart des ordinateurs ont l’organisation générale de la Figure I-1. Figure

152

Parailleurs,onfaitsouventdescachesséparéspourlesinstructionsetpourlesdonnées(splitcachevsunifiedcache).

VI.2.4. Hiérarchiedescaches• Fréquemment:3niveauxdecache• Level1cache:surlapuceCPUelle-même,128/256K• Level2cache:danslemêmepackagequeleCPU,maispassurlamêmepuce,2/4Mo• Level3cache:surlacartemère

FigureIII-140.Hiérarchiedecachesàtroisniveaux

VI.2.5. Direct-mappedcache

FigureIII-141.Organisationdelatabledescachelines

• Lebitvalidindiquequelacachelinecontientunecopie,exacteounon,delamémoire.

Initialementtouslesbitsvalidsontà0.• Lebitdirtyindiquequelecontenudelacachelineaétémodifiédepuislalectureen

mémoire• Lorsd’unaccèsmémoire,lechampLINEestextraitdel’adresseetpermetd’accéderàune

cacheline.• Sivalid=1etsiTAGégalelechamptagdelacacheline:cachehit.Sinon:cachemiss.

• Cachehitenlecture:lemotdenuméroWORDestextraitdelacacheline• Cachemissenlecture:leblocdedonnéesestluenmémoireetplacédanslacacheline;le

champtagdelacachelineestmisàjour,validß1,dirtyß0• Cachehitenécriture:lemotWORDdelacachelineestmisàjour.Aucuneécritureen

mémoirecentralen’estfaite.dirtyß1.• Cachemissenécriture:lacachelineaccédéeestréécriteenmémoirecentralesisonbitdirty

està1.UnenouvellecachelineassociéeàTAG/LINEestluedepuislamémoire,lemotWORDestmisàjourdanslacacheline,dirtyß1.

Page 153: INTRODUCTION A L ARCHITECTURE DES ORDINATEURSdiabeto.enseeiht.fr/download/archi/cours/book2_4.5.pdfLa plupart des ordinateurs ont l’organisation générale de la Figure I-1. Figure

153

• Designtrèssimple• Bonnesperformancessurdesaccèsàdesadressesaléatoires• Sileprocesseurfaitdesaccèsmémoiresàdesadressesdifférentesmaisquiontlemême

LINE,situationpirequesanscache.Possibleavecdesaccèsmodulo-Nàdestableaux,matrices,etc.

VI.2.6. Set-associativecache• n-wayset-associativecache:chaquecachelineestunemémoireassociativedenblocs,

généralement2ou4• Lesurcoûtderecherchedanslamémoireassociativeestcompenséparl’améliorationdes

performances• Stratégiederetraitquandunemémoireassociativeestpleine:généralementLRU(least

recentlyused)

VI.2.7. Snoopingcachespourmultiprocesseursàmémoirepartagée

FigureIII-142.Organisationd’unsystèmemultiprocesseuràmémoirepartagée

• Problème:lescacheslocauxpeuventdevenirinconsistants=problèmedecohérencedecache

VI.2.8. Protocolesdecohérencedecaches• Empêchentdifférentesversionsdelamêmecachelined’apparaîtredansplusieurscaches• Lecontrôleurdechaquecachedoitécouterlesrequêtesmémoiresfaitessurlebus=

snooping

VI.2.9. Protocolewrite-through• Readmissàlitladonnéeenmémoire• Readhitàlitladonnéedanslecache• Writemissàmetàjourladonnéeenmémoire• Writehitàmetàjourlecacheetlamémoire,invalideleslignescorrespondantesdansles

cachesdesautresCPU.Variante:lesautresCPUmettentàjourleurcacheaulieudel’invalider.

• Lamémoireestàjourenpermanence• Pb:chaqueécritureeffectueuneopérationsurlebus

VI.2.10. Protocolewrite-back

Page 154: INTRODUCTION A L ARCHITECTURE DES ORDINATEURSdiabeto.enseeiht.fr/download/archi/cours/book2_4.5.pdfLa plupart des ordinateurs ont l’organisation générale de la Figure I-1. Figure

154

• Utiliserunbitdirtypourchaquecacheline• ProtocoleMESI(Pentium,UltraSparc):chaquecachelinepeutêtredans4états:

– I.invalid:lacachelinecontientunedonnéeinvalide– S.shared:plusieurscachespeuventcontenirladonnée,lamémoireestàjour– E.exclusive:aucunautrecachenecontientlamêmeligne,lamémoireestàjour– M.modified:lacachelineestvalide,lamémoireestinvalide,aucunecopien’existe

FigureIII-143.EvolutiondesbitsMESIlorsd’unesuccessiond’accèsmémoireenlectureetenécriture

VI.3. Mémoirevirtuelle• Idée:utiliserlamémoiresecondaire(disque)pourdonnerl’illusiond’unemémoireprincipale

plusgrande• Séparationentrel’espaced’adressageréeletl’espaced’adressagevirtuel.• Leprocesseurtravailleavecdesadressesvirtuelles;lemécanismelestraduitenadresses

réelles,defaçontransparentepourlesprogrammes• NécessiteunMMU(memorymanagementunit)etlacoopérationdusystèmed’exploitation

• Lamémoirevirtuellepermet:– D’augmenterletauxdemulti-programmation– Demettreenplacedesmécanismesdeprotectiondelamémoire

VI.3.1. Mémoirevirtuellepaginée• L’espaced’adressagevirtuelestdécoupéenpages(généralement4Kà64K).L’espaceréelest

découpéenportionsdemêmetaille,appeléespageframes.

Page 155: INTRODUCTION A L ARCHITECTURE DES ORDINATEURSdiabeto.enseeiht.fr/download/archi/cours/book2_4.5.pdfLa plupart des ordinateurs ont l’organisation générale de la Figure I-1. Figure

155

• LesystèmemaintientenRAMunetabledespagesquicontientnotammentl’associationnumérodepage(virtuelle)ànumérodepageframe(réelle)

• LeMMUcontientunemémoireassociativepouraccélérercettetraduction:translationlookasidebuffer(TLB)

VI.3.2. Pagination

FigureIII-144.Adressesvirtuellesetadressesréelles

VI.3.3. Tabledespages

FigureIII-145.Tabledespages

VI.3.4. Traductiond’adresse

Page 156: INTRODUCTION A L ARCHITECTURE DES ORDINATEURSdiabeto.enseeiht.fr/download/archi/cours/book2_4.5.pdfLa plupart des ordinateurs ont l’organisation générale de la Figure I-1. Figure

156

FigureIII-146Traductiond’uneadressevirtuelleenadressephysique

VI.3.5. Défautdepage• DéfautdepagelorsqueleMMUindiquequelapagedemandéen’estpasdanslamémoireà

interruption• Handlerdel’IT:

– Unalgorithmederemplacement(FIFO,LRU)choisitunepageframeàécraser.Silapageestdirty,elleestréécritesurledisque

– Lapageàchargerestluesurledisqueetcopiéeenmémoireàl’emplacementprévuparlenumérodepageframe.

– Latabledespagesestmiseàjour,notammentpourl’associationnumérodepageànumérodepageframe

FigureIII-147.Evolutiondelatabledespageslorsd’unesuccessiondelectureetécrituressurledisque.

Page 157: INTRODUCTION A L ARCHITECTURE DES ORDINATEURSdiabeto.enseeiht.fr/download/archi/cours/book2_4.5.pdfLa plupart des ordinateurs ont l’organisation générale de la Figure I-1. Figure

157

ChapitreVII. CRAPS:guideduprogrammeurLelangageassembleurduprocesseurCRAPSestlargementinspirédeceluiduSPARCversion8.Iln’implémentepaslanotiondefenêtrederegistresetlesinstructionsquisuiventlesbranchementsn’ontpasdestatutspécial.Ilnepossèdepasd’unitédecalculflottant.

VII.1. FormatbinairedesinstructionsdeCRAPS

VII.2. InstructionssynthétiquesLesinstructionsdutableausuivantsontappeléesinstructionssynthétiques;cesontdescasparticuliersd’instructionsplusgénérales.Plusieursd’entre-elless’appuientsurlefaitque%r0vauttoujours0.

Instruction Effet implémentation

clr %ri metàzéro%ri orcc %r0, %r0, %ri

mov %ri,%rj copie%ridans%rj orcc %ri, %r0, %rj

inccc %ri incrémente%ri addcc %ri, 1, %ri

deccc %ri décrémente%ri subcc %ri, 1, %ri

Page 158: INTRODUCTION A L ARCHITECTURE DES ORDINATEURSdiabeto.enseeiht.fr/download/archi/cours/book2_4.5.pdfLa plupart des ordinateurs ont l’organisation générale de la Figure I-1. Figure

158

set val31..0, %ri copievaldans%ri sethi val31..8, %ri orcc %ri, val7..0, %ri

setq val12..0, %ri copievaldans%ri orcc %ri, val12..0, %ri

cmp %ri, %rj compare%riet%rj subcc %ri, %rj, %r0

tst %ri testenullitéetsignede%ri orcc %ri, %r0, %r0

negcc %ri Calculeopposéde%ri subcc %r0, %ri, %ri

nop nooperation sethi 0,%r0

call <label> Appeldesous-programmeterminal

or %r0, %r30, %r28

ba <label>

rcall <label> Appeldesous-programmeavecsauvegardedel’adressederetour

push %r28

call <label>

pop %r28

ret retourdesous-programmeterminal

add %r28, 1, %r30

push %ri empile%ri sub %r29, 1, %r29 st %ri, [%r29]

pop %ri dépile%ri ld [%r29], %ri add %r29, 1, %r29

VII.1. Directivesdel’assembleurCRAPS

Syntaxe Rôle

.org val32 Forceàval32lanouvelleadressed’assemblage

label = val32 Associelabelàval32danslatabledessymboles.word val32 [,val32]* Alloueetinitialisedesmotsmémoires

consécutifs

.global sym Faitdesymunsymboleglobal,visibleparlesautresmodules

Page 159: INTRODUCTION A L ARCHITECTURE DES ORDINATEURSdiabeto.enseeiht.fr/download/archi/cours/book2_4.5.pdfLa plupart des ordinateurs ont l’organisation générale de la Figure I-1. Figure

159

VII.1. Tablesdesbranchementsconditionnels

Instruction Opération Testba Branchalways 1

beq(synonymes:be,bz) Branchonequal Z

bne(synonyme:bnz) BranchonNotEqual notZ

bneg(synonyme:bn) BranchonNegative N

bpos(synonyme:bnn) BranchonPositive notN

bcs(synonyme:blu) BranchonCarrySet C

bcc(synonyme:bgeu) BranchonCarryClear notC

bvs BranchonOverflowSet V

bvc BranchonOverflowClear notV

Branchementsconditionnelsassociésàunseulflag.

Instruction Opération Testbg(synonyme:bgt) BranchonGreater not(Zor(NxorV))

bge BranchonGreaterorEqual not(NxorV)

bl(synonyme:blt) BranchonLess (NxorV)

ble BranchonLessorEqual Zor(NxorV)

Branchementsconditionnelsassociésàunearithmétiquesignée.

Instruction Opération Testbgu BranchonGreaterUnsigned not(ZorC)

bgeu(synonyme:bcc)

Branchongreaterthan,orequal,unsigned

notC

blu(synonyme:bcs) Branchonlessthan,unsigned C

bleu BranchonLessorEqualUnsigned ZorC

Branchementsconditionnelsassociésàunearithmétiquenonsignée.

Page 160: INTRODUCTION A L ARCHITECTURE DES ORDINATEURSdiabeto.enseeiht.fr/download/archi/cours/book2_4.5.pdfLa plupart des ordinateurs ont l’organisation générale de la Figure I-1. Figure

160

Page 161: INTRODUCTION A L ARCHITECTURE DES ORDINATEURSdiabeto.enseeiht.fr/download/archi/cours/book2_4.5.pdfLa plupart des ordinateurs ont l’organisation générale de la Figure I-1. Figure

161

VII.2. Jeud’instructionsduprocesseurCRAPS

Instruction:addDescription:idemaddcc,maisaucunflagn’estaffecté.

Instruction:addccDescription:Effectuel’additiondesdeuxopérandes,etplacelerésultatdansl’opéranderésultat.LaretenueCn’estpasajoutéeauxarguments.Lesflags(conditioncodes,cc)sontpositionnésconformémentaurésultat.Flagsaffectés:N,Z,V,CExemple:addcc %r1, 5, %r1Ajoute5aucontenude%r1,etpositionnelesflags.

Instruction:andDescription:idemandcc,maisaucunflagn’estaffecté.

Instruction:andccDescription:EffectueunETlogiquebitàbitentrelesopérandessources,etplacelerésultatdansl’opéranderésultat.Lesflags(conditioncodes,cc)sontpositionnésconformémentaurésultat.Flagsaffectés:N,ZExemple:andcc %r1, %r2, %r3EffectueleETlogiquebitàbitentrelescontenusde%r1et%r2,etplacelerésultatdans%r3.

Instruction:b(cc)Description:Silaconditionccestvérifiée,sebrancheàl’adresseobtenueenajoutant4xdisp25àl’adressedel’instructioncourante.Silaconditionn’estpasvérifiée,passeàl’instructionsuivanteenséquence.disp25peutêtrenégatif,cequicorrespondàunbranchementàunpointantérieurduprogramme.Ontrouveraenannexelestablescomplètesdesconditionsdetestpossibles.Flagsaffectés:aucunExemple:bcs labelSebrancheàlabelsiCvaut1.C’estledéplacementrelatifentrelabeletl’adressecourantedel’instruction,ennombredemots,quiestcodédanslechampdisp25del’instruction.

Instruction:ldDescription:Loadword.Chargeunregistreàpartird’unmotde32bitsdelamémoirecentrale,soit4octetsconsécutifs.L’adresseestcalculéeenajoutantlecontenuduregistreduchamprs1aucontenuduchamprs2oudelavaleurimmédiatecontenuedanslechampsimm13,selonlecas.Flagsaffectés:aucun.Exemple:ld [%r2+%r3], %r1Copiedansleregistre%r1lemotmémoiredontl’adresseestobtenueenadditionnantlesvaleursdesregistres%r2et%r3.

Instruction:orDescription:idemorcc,maisaucunflagn’estaffecté.

Instruction:orcc

Page 162: INTRODUCTION A L ARCHITECTURE DES ORDINATEURSdiabeto.enseeiht.fr/download/archi/cours/book2_4.5.pdfLa plupart des ordinateurs ont l’organisation générale de la Figure I-1. Figure

162

Description:EffectueunOUlogiquebitàbitentrelesopérandessources,etplacelerésultatdansl’opéranderésultat.Lesflags(conditioncodes,cc)sontpositionnésconformémentaurésultat.Flagsaffectés:N,ZExemple:orcc %r1, 1, %r1Positionneà1lebitdepoidsleplusfaiblede%r1etlaissetouslesautresinchangés.

Instruction:retiDescription:Défaitlesempilementsde%pcetde%psrquisontréaliséslorsdelapriseencompted’uneexception.%psrreprenddoncsavaleurinitiale(etenparticulierlesflags),et%pcreprendlavaleurqu’ilavaitaumomentdudépart.Cetteinstructiondoitêtreplacéeàlafindechaquehandlerd’interruption.Flagsaffectés:potentiellementtous,lorsdudépilementde%psrExemple:reti

Instruction:sethiDescription:Positionneles24bitsdepoidsfortsd’unregistre,etforceàzéroles8bitsdepoidsfaibles.Flagsaffectés:aucunExemple:sethi 0xE2F1A0, %r1Positionneles24bitsdepoidsfortsde%r1àE2F1A016etforceà0les8bitsdepoidsfaibles.

Instruction:sllDescription:Décalelecontenud’unregistreverslagauched’unnombredepositionsdésignéparledeuxièmeargument,comprisentre0et31.Sicenombreestfournisousformed’unevaleurderegistre,seulsles5bitsdepoidsfaiblessontutilisés.Flagsaffectés:aucunExemple:sll %r1, 7, %r2Décalelecontenude%r1verslagauchede7bits,avecinsertionde7zérosparladroite,etstockelerésultatdans%r2.Aucunflagn’estaffecté.

Instruction:srlDescription:Décalelecontenud’unregistreversladroited’unnombredepositionsdésignéparledeuxièmeargument,comprisentre0et31.Sicenombreestfournisousformed’unevaleurderegistre,seulsles5bitsdepoidsfaiblessontutilisés.Flagsaffectés:aucunExemple:srl %r1, 7, %r2Décalelecontenude%r1versladroitede7bits,avecinsertionde7zérosparlagauche,etstockelerésultatdans%r2.Aucunflagn’estaffecté.

Instruction:stDescription:Stockelecontenud’unregistreenmémoirecentrale.L’adresseestcalculéeenajoutantlecontenuduregistreduchamprs1aucontenuduchamprs2oudelavaleurcontenuedanslechampsimm13,selonlecas.Lechamprdestutilisépourdésignerleregistresource.Flagsaffectés:aucunExemple: st %r1, [%r2]Copielecontenuduregistre%r1danslacasemémoiredontl’adresseestlavaleurde%r2.Danscecasparticulier,rs2=0,etl’instructionpourraitêtreécrite:st%r1,[%r2+%r0]

Page 163: INTRODUCTION A L ARCHITECTURE DES ORDINATEURSdiabeto.enseeiht.fr/download/archi/cours/book2_4.5.pdfLa plupart des ordinateurs ont l’organisation générale de la Figure I-1. Figure

163

Instruction:subDescription:idemsubcc,maisaucunflagn’estaffecté.

Instruction:subccDescription:Effectuelasoustractiondesdeuxopérandes,etplacelerésultatdansl’opéranderésultat.Lesflags(conditioncodes,cc)sontpositionnésconformémentaurésultat.Flagsaffectés:N,Z,V,CExemple:subcc %r1, 5, %r1Soustrait5aucontenude%r1,etpositionnelesflags.

Instruction:umulccDescription:Unsignedmultiply.Effectueunemultiplicationnonsignée16bitsx16bitsvers32bits.Seulsles16bitsdepoidsfaiblesdesdeuxopérandessourcesontprisencomptedanslecalcul.Flagsaffectés:ZExemple:umulcc %r7, %r1, %r6Copiedans%r6lerésultatdelamultiplicationnonsignéeentreles16bitsdepoidsfaiblesde%r7etles16bitsdepoidsfaiblesde%r1.

Instruction:xorDescription:idemxorcc,maisaucunflagn’estaffecté.

Instruction:xorccDescription:EffectueunXORlogiquebitàbitentrelesopérandessourcesetplacelerésultatdansl’opéranderésultat.Lesflags(conditioncodes,cc)sontpositionnésconformémentaurésultat.Flagsaffectés:N,ZExemple:xorcc %r7, %r1, %r6Copiedans%r6lexorcalculébitàbitentre%r7et%r1,etpositionnelesflagsNetZenconséquence.

Page 164: INTRODUCTION A L ARCHITECTURE DES ORDINATEURSdiabeto.enseeiht.fr/download/archi/cours/book2_4.5.pdfLa plupart des ordinateurs ont l’organisation générale de la Figure I-1. Figure

164

Page 165: INTRODUCTION A L ARCHITECTURE DES ORDINATEURSdiabeto.enseeiht.fr/download/archi/cours/book2_4.5.pdfLa plupart des ordinateurs ont l’organisation générale de la Figure I-1. Figure

165

VII.3. LamicromachinedeCRAPS

Page 166: INTRODUCTION A L ARCHITECTURE DES ORDINATEURSdiabeto.enseeiht.fr/download/archi/cours/book2_4.5.pdfLa plupart des ordinateurs ont l’organisation générale de la Figure I-1. Figure

166

Page 167: INTRODUCTION A L ARCHITECTURE DES ORDINATEURSdiabeto.enseeiht.fr/download/archi/cours/book2_4.5.pdfLa plupart des ordinateurs ont l’organisation générale de la Figure I-1. Figure

167

SYNTAXESHDLPARL'EXEMPLE

MODULESmodule xor3(a, b, c : s) // module à 3 entrées a,b,c et une sortie s

s = a*/b*/c + /a*b*/c + /a*/b*c; // équation combinatoire

end module

module xor6(a, b, c, d, e, f, s) // le ‘:’ n’est pas obligatoire

xor3(a, b, c, s1); // incorporation d’une instance du module xor3

xor3(d, e, f, s2); // incorporation d’une 2ème instance du module xor3

s = s1*/s2 + /s1*s2; // s = xor des deux sorties intermédiaires

end module

module xor6V(e[5..0] : s) // même module avec un vecteur d’entrée

xor3V(e[2..0], s1);

xor3V(e[5..3], s2);

s = s1*/s2 + /s1*s2;

end module

module descendant(rst, h, : down) // circuit séquentiel

down := e; // := affectation séquentielle (ici : bascule D)

down.clk = h; // horloge, front montant

down.rst = rst ; // signal de reset asynchrone

end module

AFFECTATIONSCOMBINATOIRESx = y*z + u*v*w ;

x = 0 ; // autorise car la valeur est 0 ou 1

x = 123 ; // INTERDIT (x scalaire, arité 1)

x[7..0] = 123 ; // pas de problème car 123 tient sur 8 bits

x[7..0] = 623 ; // INTERDIT (incompatibilité d'arités)

x[7..0] = -123 ;

x[7..0] = 0x7E ;

Page 168: INTRODUCTION A L ARCHITECTURE DES ORDINATEURSdiabeto.enseeiht.fr/download/archi/cours/book2_4.5.pdfLa plupart des ordinateurs ont l’organisation générale de la Figure I-1. Figure

168

x[7..0] = 0b10101010 ;

x[7..0] = y[7..0]*z[7..0]*u[7..0] ; // AND position par position

x[7..0] = y[7..0]*z[6..0] ; // INTERDIT (incompatibilité d'arités)

x[7..0] = y[7..0]+z[7..0]+u[7..0] ; // OR position par position

x[7..0] = y[7..0]+z[6..0] ; // INTERDIT (incompatibilité d'arités)

x[7..0] = y*z[7..0] ; // factorisation du scalaire y

x[7..0] = y*z[7..0]*u[7..0]*v ; // factorisation et AND par position

x[7..0] = y[7..0] * 0b1010 ;

x[7..0] = y[7..0] * 0b1010101010 ; // INTERDIT (incompatibilité d'arités)

x[7..0] = y[7..0] + 0b1101 ;

TRI-STATEx = y:oe; // buffer 3-états de y vers x, commandé par oe

x = /y:/oe; // idem avec des inversions sur l’entrée et la commande

x = y*z:oe; // INTERDIT (tri-state uniquement pour les buffers 3 états)

x[7..0] = y[7..0]:/oe; // vecteur de buffers 3-états avec mise en commun de la commande

x[7..0] = 0b10101010:oe; // entrée littérale, écrite en binaire

x[7..0] = y[7..0]:0b10101010;

x[7..0] = 0b11110000:0b10101010;

x[7..0] = 0b1010:0b10101010;

x[7..0] = 0b11110000:0b101010; // INTERDIT (incompatibilité d'arités)

AFFECTATIONSSEQUENTIELLESq := d ; // équation d’évolution de la bascule D

q := /d ; // bascule D avec entrée inversée

q := /t*q + t*/q ; // bascule T

q := /q*t + /t*q ; // bascule T avec entrée inversée

q := /k*q + j*/q ; // bascule JK

q := a*q + b*/q ; // bascule JK : b=J, /a=K

q := a*q + b*/c ; // INTERDIT (ne correspond à aucune bascule)

q := a*q ; // INTERDIT (ne correspond à aucune bascule)

q.rst = /nrst ; // reset asynchrone sur niveau bas

q.rst = a * b ; // INTERDIT (seulement un terme à un seul signal)

Page 169: INTRODUCTION A L ARCHITECTURE DES ORDINATEURSdiabeto.enseeiht.fr/download/archi/cours/book2_4.5.pdfLa plupart des ordinateurs ont l’organisation générale de la Figure I-1. Figure

169

q.ena = en ; // en = signal d’enable synchrone

q.set = set ; // set = signal de mise à 1 asynchrone

q.clk = /h ; // horloge de la bascule : front descendant de h

q[7..0] := 123 ;

q[7..0] := /d[7..0] ; // vecteur de bascules D

q[7..0] := /t[7..0]*q[7..0] + t[7..0]*/q[7..0] ; // vecteur de bascules T

q[7..0].ena = en ; // mise en commun

q[7..0].ena = en[7..0] ;

q[7..0].ena = en[5..0] ; // INTERDIT (incompatibilité d'arités)

SIGNAUXPREDEFINISSURNEXYS

Page 170: INTRODUCTION A L ARCHITECTURE DES ORDINATEURSdiabeto.enseeiht.fr/download/archi/cours/book2_4.5.pdfLa plupart des ordinateurs ont l’organisation générale de la Figure I-1. Figure

mclk // horloge 50MHz

btn[3..0] // 4 boutons poussoir

sw[7..0] // 8 switches à glissière

ld[7..0] // 8 leds haute luminosité

ssg[7..0] // cathodes (dp, g, f, e, d, c, b, a) des afficheurs 7 segments

an[3..0] // anodes des afficheurs 7 segments

red, grn, blue // port VGA : 3 signaux de couleur

hs, vs // port VGA: signaux de synchro. horizontale et verticale

ja_out[7..0] // connecteur d’extension ja, signaux de sortie

jb_out[7..0] // connecteur d’extension jb, signaux de sortie

jc_out[7..0] // connecteur d’extension jc, signaux de sortie

jd_out[7..0] // connecteur d’extension jd, signaux de sortie