introduction a l architecture des...
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](https://reader033.vdocuments.pub/reader033/viewer/2022050100/5f3feb5282e22138f12a56b3/html5/thumbnails/1.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050100/5f3feb5282e22138f12a56b3/html5/thumbnails/2.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050100/5f3feb5282e22138f12a56b3/html5/thumbnails/3.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050100/5f3feb5282e22138f12a56b3/html5/thumbnails/4.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050100/5f3feb5282e22138f12a56b3/html5/thumbnails/5.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050100/5f3feb5282e22138f12a56b3/html5/thumbnails/6.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050100/5f3feb5282e22138f12a56b3/html5/thumbnails/7.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050100/5f3feb5282e22138f12a56b3/html5/thumbnails/8.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050100/5f3feb5282e22138f12a56b3/html5/thumbnails/9.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050100/5f3feb5282e22138f12a56b3/html5/thumbnails/10.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050100/5f3feb5282e22138f12a56b3/html5/thumbnails/11.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050100/5f3feb5282e22138f12a56b3/html5/thumbnails/12.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050100/5f3feb5282e22138f12a56b3/html5/thumbnails/13.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050100/5f3feb5282e22138f12a56b3/html5/thumbnails/14.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050100/5f3feb5282e22138f12a56b3/html5/thumbnails/15.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050100/5f3feb5282e22138f12a56b3/html5/thumbnails/16.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050100/5f3feb5282e22138f12a56b3/html5/thumbnails/17.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050100/5f3feb5282e22138f12a56b3/html5/thumbnails/18.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050100/5f3feb5282e22138f12a56b3/html5/thumbnails/19.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050100/5f3feb5282e22138f12a56b3/html5/thumbnails/20.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050100/5f3feb5282e22138f12a56b3/html5/thumbnails/21.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050100/5f3feb5282e22138f12a56b3/html5/thumbnails/22.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050100/5f3feb5282e22138f12a56b3/html5/thumbnails/23.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050100/5f3feb5282e22138f12a56b3/html5/thumbnails/24.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050100/5f3feb5282e22138f12a56b3/html5/thumbnails/25.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050100/5f3feb5282e22138f12a56b3/html5/thumbnails/26.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050100/5f3feb5282e22138f12a56b3/html5/thumbnails/27.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050100/5f3feb5282e22138f12a56b3/html5/thumbnails/28.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050100/5f3feb5282e22138f12a56b3/html5/thumbnails/29.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050100/5f3feb5282e22138f12a56b3/html5/thumbnails/30.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050100/5f3feb5282e22138f12a56b3/html5/thumbnails/31.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050100/5f3feb5282e22138f12a56b3/html5/thumbnails/32.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050100/5f3feb5282e22138f12a56b3/html5/thumbnails/33.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050100/5f3feb5282e22138f12a56b3/html5/thumbnails/34.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050100/5f3feb5282e22138f12a56b3/html5/thumbnails/35.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050100/5f3feb5282e22138f12a56b3/html5/thumbnails/36.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050100/5f3feb5282e22138f12a56b3/html5/thumbnails/37.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050100/5f3feb5282e22138f12a56b3/html5/thumbnails/38.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050100/5f3feb5282e22138f12a56b3/html5/thumbnails/39.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050100/5f3feb5282e22138f12a56b3/html5/thumbnails/40.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050100/5f3feb5282e22138f12a56b3/html5/thumbnails/41.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050100/5f3feb5282e22138f12a56b3/html5/thumbnails/42.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050100/5f3feb5282e22138f12a56b3/html5/thumbnails/43.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050100/5f3feb5282e22138f12a56b3/html5/thumbnails/44.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050100/5f3feb5282e22138f12a56b3/html5/thumbnails/45.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050100/5f3feb5282e22138f12a56b3/html5/thumbnails/46.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050100/5f3feb5282e22138f12a56b3/html5/thumbnails/47.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050100/5f3feb5282e22138f12a56b3/html5/thumbnails/48.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050100/5f3feb5282e22138f12a56b3/html5/thumbnails/49.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050100/5f3feb5282e22138f12a56b3/html5/thumbnails/50.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050100/5f3feb5282e22138f12a56b3/html5/thumbnails/51.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050100/5f3feb5282e22138f12a56b3/html5/thumbnails/52.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050100/5f3feb5282e22138f12a56b3/html5/thumbnails/53.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050100/5f3feb5282e22138f12a56b3/html5/thumbnails/54.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050100/5f3feb5282e22138f12a56b3/html5/thumbnails/55.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050100/5f3feb5282e22138f12a56b3/html5/thumbnails/56.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050100/5f3feb5282e22138f12a56b3/html5/thumbnails/57.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050100/5f3feb5282e22138f12a56b3/html5/thumbnails/58.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050100/5f3feb5282e22138f12a56b3/html5/thumbnails/59.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050100/5f3feb5282e22138f12a56b3/html5/thumbnails/60.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050100/5f3feb5282e22138f12a56b3/html5/thumbnails/61.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050100/5f3feb5282e22138f12a56b3/html5/thumbnails/62.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050100/5f3feb5282e22138f12a56b3/html5/thumbnails/63.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050100/5f3feb5282e22138f12a56b3/html5/thumbnails/64.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050100/5f3feb5282e22138f12a56b3/html5/thumbnails/65.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050100/5f3feb5282e22138f12a56b3/html5/thumbnails/66.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050100/5f3feb5282e22138f12a56b3/html5/thumbnails/67.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050100/5f3feb5282e22138f12a56b3/html5/thumbnails/68.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050100/5f3feb5282e22138f12a56b3/html5/thumbnails/69.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050100/5f3feb5282e22138f12a56b3/html5/thumbnails/70.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050100/5f3feb5282e22138f12a56b3/html5/thumbnails/71.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050100/5f3feb5282e22138f12a56b3/html5/thumbnails/72.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050100/5f3feb5282e22138f12a56b3/html5/thumbnails/73.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050100/5f3feb5282e22138f12a56b3/html5/thumbnails/74.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050100/5f3feb5282e22138f12a56b3/html5/thumbnails/75.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050100/5f3feb5282e22138f12a56b3/html5/thumbnails/76.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050100/5f3feb5282e22138f12a56b3/html5/thumbnails/77.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050100/5f3feb5282e22138f12a56b3/html5/thumbnails/78.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050100/5f3feb5282e22138f12a56b3/html5/thumbnails/79.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050100/5f3feb5282e22138f12a56b3/html5/thumbnails/80.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050100/5f3feb5282e22138f12a56b3/html5/thumbnails/81.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050100/5f3feb5282e22138f12a56b3/html5/thumbnails/82.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050100/5f3feb5282e22138f12a56b3/html5/thumbnails/83.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050100/5f3feb5282e22138f12a56b3/html5/thumbnails/84.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050100/5f3feb5282e22138f12a56b3/html5/thumbnails/85.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050100/5f3feb5282e22138f12a56b3/html5/thumbnails/86.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050100/5f3feb5282e22138f12a56b3/html5/thumbnails/87.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050100/5f3feb5282e22138f12a56b3/html5/thumbnails/88.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050100/5f3feb5282e22138f12a56b3/html5/thumbnails/89.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050100/5f3feb5282e22138f12a56b3/html5/thumbnails/90.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050100/5f3feb5282e22138f12a56b3/html5/thumbnails/91.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050100/5f3feb5282e22138f12a56b3/html5/thumbnails/92.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050100/5f3feb5282e22138f12a56b3/html5/thumbnails/93.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050100/5f3feb5282e22138f12a56b3/html5/thumbnails/94.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050100/5f3feb5282e22138f12a56b3/html5/thumbnails/95.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050100/5f3feb5282e22138f12a56b3/html5/thumbnails/96.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050100/5f3feb5282e22138f12a56b3/html5/thumbnails/97.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050100/5f3feb5282e22138f12a56b3/html5/thumbnails/98.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050100/5f3feb5282e22138f12a56b3/html5/thumbnails/99.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050100/5f3feb5282e22138f12a56b3/html5/thumbnails/100.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050100/5f3feb5282e22138f12a56b3/html5/thumbnails/101.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050100/5f3feb5282e22138f12a56b3/html5/thumbnails/102.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050100/5f3feb5282e22138f12a56b3/html5/thumbnails/103.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050100/5f3feb5282e22138f12a56b3/html5/thumbnails/104.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050100/5f3feb5282e22138f12a56b3/html5/thumbnails/105.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050100/5f3feb5282e22138f12a56b3/html5/thumbnails/106.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050100/5f3feb5282e22138f12a56b3/html5/thumbnails/107.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050100/5f3feb5282e22138f12a56b3/html5/thumbnails/108.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050100/5f3feb5282e22138f12a56b3/html5/thumbnails/109.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050100/5f3feb5282e22138f12a56b3/html5/thumbnails/110.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050100/5f3feb5282e22138f12a56b3/html5/thumbnails/111.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050100/5f3feb5282e22138f12a56b3/html5/thumbnails/112.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050100/5f3feb5282e22138f12a56b3/html5/thumbnails/113.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050100/5f3feb5282e22138f12a56b3/html5/thumbnails/114.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050100/5f3feb5282e22138f12a56b3/html5/thumbnails/115.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050100/5f3feb5282e22138f12a56b3/html5/thumbnails/116.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050100/5f3feb5282e22138f12a56b3/html5/thumbnails/117.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050100/5f3feb5282e22138f12a56b3/html5/thumbnails/118.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050100/5f3feb5282e22138f12a56b3/html5/thumbnails/119.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050100/5f3feb5282e22138f12a56b3/html5/thumbnails/120.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050100/5f3feb5282e22138f12a56b3/html5/thumbnails/121.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050100/5f3feb5282e22138f12a56b3/html5/thumbnails/122.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050100/5f3feb5282e22138f12a56b3/html5/thumbnails/123.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050100/5f3feb5282e22138f12a56b3/html5/thumbnails/124.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050100/5f3feb5282e22138f12a56b3/html5/thumbnails/125.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050100/5f3feb5282e22138f12a56b3/html5/thumbnails/126.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050100/5f3feb5282e22138f12a56b3/html5/thumbnails/127.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050100/5f3feb5282e22138f12a56b3/html5/thumbnails/128.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050100/5f3feb5282e22138f12a56b3/html5/thumbnails/129.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050100/5f3feb5282e22138f12a56b3/html5/thumbnails/130.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050100/5f3feb5282e22138f12a56b3/html5/thumbnails/131.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050100/5f3feb5282e22138f12a56b3/html5/thumbnails/132.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050100/5f3feb5282e22138f12a56b3/html5/thumbnails/133.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050100/5f3feb5282e22138f12a56b3/html5/thumbnails/134.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050100/5f3feb5282e22138f12a56b3/html5/thumbnails/135.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050100/5f3feb5282e22138f12a56b3/html5/thumbnails/136.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050100/5f3feb5282e22138f12a56b3/html5/thumbnails/137.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050100/5f3feb5282e22138f12a56b3/html5/thumbnails/138.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050100/5f3feb5282e22138f12a56b3/html5/thumbnails/139.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050100/5f3feb5282e22138f12a56b3/html5/thumbnails/140.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050100/5f3feb5282e22138f12a56b3/html5/thumbnails/141.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050100/5f3feb5282e22138f12a56b3/html5/thumbnails/142.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050100/5f3feb5282e22138f12a56b3/html5/thumbnails/143.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050100/5f3feb5282e22138f12a56b3/html5/thumbnails/144.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050100/5f3feb5282e22138f12a56b3/html5/thumbnails/145.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050100/5f3feb5282e22138f12a56b3/html5/thumbnails/146.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050100/5f3feb5282e22138f12a56b3/html5/thumbnails/147.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050100/5f3feb5282e22138f12a56b3/html5/thumbnails/148.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050100/5f3feb5282e22138f12a56b3/html5/thumbnails/149.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050100/5f3feb5282e22138f12a56b3/html5/thumbnails/150.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050100/5f3feb5282e22138f12a56b3/html5/thumbnails/151.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050100/5f3feb5282e22138f12a56b3/html5/thumbnails/152.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050100/5f3feb5282e22138f12a56b3/html5/thumbnails/153.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050100/5f3feb5282e22138f12a56b3/html5/thumbnails/154.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050100/5f3feb5282e22138f12a56b3/html5/thumbnails/155.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050100/5f3feb5282e22138f12a56b3/html5/thumbnails/156.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050100/5f3feb5282e22138f12a56b3/html5/thumbnails/157.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050100/5f3feb5282e22138f12a56b3/html5/thumbnails/158.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050100/5f3feb5282e22138f12a56b3/html5/thumbnails/159.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050100/5f3feb5282e22138f12a56b3/html5/thumbnails/160.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050100/5f3feb5282e22138f12a56b3/html5/thumbnails/161.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050100/5f3feb5282e22138f12a56b3/html5/thumbnails/162.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050100/5f3feb5282e22138f12a56b3/html5/thumbnails/163.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050100/5f3feb5282e22138f12a56b3/html5/thumbnails/164.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050100/5f3feb5282e22138f12a56b3/html5/thumbnails/165.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050100/5f3feb5282e22138f12a56b3/html5/thumbnails/166.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050100/5f3feb5282e22138f12a56b3/html5/thumbnails/167.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050100/5f3feb5282e22138f12a56b3/html5/thumbnails/168.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050100/5f3feb5282e22138f12a56b3/html5/thumbnails/169.jpg)
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](https://reader033.vdocuments.pub/reader033/viewer/2022050100/5f3feb5282e22138f12a56b3/html5/thumbnails/170.jpg)
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