• Aucun résultat trouvé

E 1 /E 2(e.g., ID/EX).Lesétagesdepipelinesontlessuivants:

N/A
N/A
Protected

Academic year: 2022

Partager "E 1 /E 2(e.g., ID/EX).Lesétagesdepipelinesontlessuivants: "

Copied!
10
0
0

Texte intégral

(1)

L'examendure3heures.

Lesujetomporte6pagesdont2pagesderappelssurleLC-2.

Tousdoumentsautorisés.

Lebarèmeestdonnéàtitreindiatif,ilvoussertsurtoutàévaluerlepoidsrespetifdesexeries;

lasommedespointsest50.

Ilestimpératifdeommentervosprogrammesouséquenesdeontrle;laplupartdeslignes/instrutions

doiventêtresuiviesd'unommentairepermettantdeomprendreleurrle.

Il est impératifde justier lairementtoutes vos réponses.

OnveutréeruneversionpipelinéeduLC2.Pourela,onmodielastrutureduLC2ommeindiqué

dans laFigure 1. Onaplaé lesprinipaux blos hardware duLC2 dansles étages depipeline. Il ya

5étages depipeline : IF, ID,EX, MEM, WB; deux étagesde pipeline

E 1

et

E 2

(e.g., IDet EX) sont

séparésparunregistred'étageappelé

E 1 /E 2

(e.g., ID/EX).Lesétagesdepipelinesontlessuivants:

IF (InstrutionFeth) :hargementdel'instrution depuisla mémoire;ontrairementauLC2, il

n'y apasderegistreinstrutionIR,onstokel'instrutiondansleregistred'étageIF/ID;

ID(InstrutionDeode):leiruitdeontrledéterminelanaturedel'instrutionetréupèreles

opérandesdel'instrution(hampsdebitsontenusdansl'instrutionet/ouregistres);

EX (Exeute) :aluls arithmétiques et logiques,mais aussialuls d'adresses;ontrairementau

LC2,iln'y apasd'additionneurdediéaualuld'adresses;

MEM (Memory): hargementourangementdedonnéesenmémoire;

WB(WriteBak):érituredanslebanderegistres;

Attention,e pipelineduLC2estdiérentdeeluivuenours.

DanslaFigure1,ladesriptiondesportsdesdiérentsomposantsestlasuivante:

InstrutionCahe:AddrIN(16bits, adressedel'instrution),InstOUT(16bits,instrution);

RegisterBank : SR1,SR2 (3bits haun, numérodes registressoure 1et 2), OUT1,OUT2 (16

bitshaun,valeurdesregistressoure1et2),DR(3bits,numéroduregistredestination),IN(16

bits, valeuràériredansleregistredestination),LD.REG(1 bit,vaut1enasd'ériture);

Data Cahe : AddrIN (16 bits, adresse de la donnée àlire ou érire), DataIN (16 bits, valeurà

érire),DataOUT(16bits,valeurlue),R/W(1bit, vaut1enasd'ériture);

On suppose que le temps de yle d'horloge est très grand; en onséquene, toutes les tâhes qui

peuventthéoriquements'eetuerenunyles'exéutenteetivementenunyle(e.g.,leture/ériture

danslesahes,alulsdansl'ALU,et).

Dansl'ensembledusujet,onignorel'instrutionTRAP.

Lesexeries2,3,4sontrelativementindépendants,bien qu'ilsoit reommandéde lestraiterdans

l'ordre.En revanhe,ilestindispensabledeommenerparl'exerie1.

Exerie 1 - Exéution pipelinée des instrutions (20 points)

Dans ette question, on veut omprendre omment les instrutions du LC2 s'exéutent dans e

pipeline, et on veut progressivement ompléter le diagramme de la Figure 1. Vous devez reproduire

eshémasurvotreopie.

Question 1.1

Pourlepipeline,quelestl'intérêtd'avoirunahed'instrutionset unahededonnées?

(2)

Figure1Versionpipelinée duLC2.

Réponse

Celadonnel'illusionauproesseurquelesmémoiresdonnéesetinstrutionssontdeuxressouresdiérentes,

etdonilnepeutyavoirdeonitsderessoure.

Question 1.2

DanslaFigure1,l'étageWBneontientapparemmentauunblomatériel.Quelleressourematérielle

estenfaitutiliséedansetétage?

Réponse

Leportd'érituredubanderegistres.Pluspréisément,lessignaux:

LD.REG

,

DR

,

DR.IN

.

Question 1.3

Dansette question,ononsidèrelesinstrutionsarithmétiques etlogiques(ADD,AND,NOT).

(a)Quelletâheest eetuéedansl'étageMEMdupipelineparesinstrutions?

(b)Quelomposantfaut-ilajouterdansl'étageID,etparquellesinstrutionssera-t-ilutilisé?Aquoi

orrespondeomposant?

Réponse

(a) Auune, es instrutions se omportent omme des NOP pour et étage. Eventuellement, on pouvait

antiiperqueNZPsontalulésdansMEM,mais'était diileàestade.

(b)L'extensiondesigne(SEXT)utiliséepourlesmodesimmédiatdeADDetAND.Ceomposantn'estpas

uniruit,ils'agitjustederépliquerlebitdesigne11fois.

Question 1.4

Dansette question,ononsidèrelesinstrutionsdebranhementinonditionnel(JMP,JMPR).

(a)Quelomposantfaut-il ajouterdansl'étageIDpourpouvoirexéuterl'instrutionJMP?Aquel

iruitorrespondeomposant?

(b)Même questionpourJMPR?

()Alandequelétage,auplustt,onnait-onl'adressedebranhementpourJMPR?

(d)Dansunshémaséparé,ajoutezlesiruitsetheminsnéessairesàl'exéutiondeJMPetJMPR

dansl'étageIFdelaFigure1;indiquezlairementlenombredebitsetlanaturedel'informationportée

parhaquehemin.

Réponse

(a)L'adresse ibledeJMPestdonnéeparlaonaténationdes7bits depoidsfortduPC etdes 9bitsde

poidsfaible del'instrution.Ilfaut donajouterun opérateurdeonaténationdansl'étage ID,quin'est rien

d'autre,enfait,qu'unejontiondels.Aveetopérateur,ononnaitdonl'adresseibledubranhementàla

ndel'étageID.

(b)PourJMPR,ilfautajouterl'extensionnonsignée(ZEXT)dansl'étageID. Anouveau, en'estpas un

iruit,maissimplementl'ajoutdedix0enbitsdepoidsfort.

()PourJMPR,ilfautajouterl'index,ontenudansl'instrution,àunregistresoure.Cetteadditionalieu

dansl'ALU,donl'adresseibledubranhementestonnueàlandel'étageEX.

(3)

(a)ParrapportàJMPetJMPR,JSRetJSRRdoiventeetueruneationsupplémentaire,laquelle?

(b) En supposant que ette ation est eetuée dans l'étage ID, pourquoi peut-elle engendrer un

onitderessoures?Détaillezvotreréponse.

() Pour JSR, fournissez deux séquenes simples d'instrutions, l'une engendrant un tel onit de

ressoures,l'autre n'aboutissantpasàunonitderessoures.

(d) Dans quel étage faut-il eetuer ette ation pour être ertain de ne pas avoir de onit de

ressoures?Onsupposedorénavantqueetteexéutionesteetuéedansetétagelà.

(e)Alandequelétage,auplustt,onnait-onl'adressedebranhementpourRET?

(f)Enfatorisantlaquestion(d),ombienfaut-ild'instrutions,auminimum,entreunJSRetleRET

assoié pour que le programme s'exéute orretement (en supposant qu'il n'y a pas de forwarding)?

Quesepasse-t-ilsinon?

Réponse

(a)JSR/JSRRdoitsauvegarderPC+1dansleregistre

R7

.

(b)Ilpeutdonyavoirunonitderessouressurleportd'érituredubanderegistresavedesinstrutions

dansl'étageWBsil'oneetueettesauvegardeenID,lorsque

R7

estdisponibleetquel'onsaitquel'instrution estunJSR/JSRR.IdemsiondéidedelefaireenEX.

() Par exemple,la séquene i-dessous engendre un onit de ressoures pare que ADD veut érire son

résultatlorsqueJSRvoudrasauvegarder

R7

.

ADD R3, R2, R1

<INST>

<INST>

JSR ADDRESS

Dans laséquenei-dessous il n'ya pasde onitde ressourespare que STn'érit pas dansle ban de

registres,i.e.,ilnesepasserienàl'étageWB.

ST R3, ADDRESS2

<INST>

<INST>

JSR ADDRESS1

(d)Dansl'étageWB.

(e)Alandel'étageID,unefoisqu'onaluleregistre

R7

.

(f)LeJSRvastoker

R7

dansl'étageWB,etilfautqu'ilaiteetuéetteationpourqueleRETassoiélise

lavaleurorretedanslebanderegistres.OrRETlitlavaleurdansID,ilfautdonauminimum3instrutions

entreleJSRetleRETpourque

R7

ontiennelabonnevaleurlorsqueRETvalelire.Sinon,onvafaireunsaut

àlavaleurontenuedans

R7

enl'interprétantommeuneadresse.

Question 1.6

Dans ette question, ononsidère les instrutions de hargementmémoire (LD, LDR).A lan de

quelétagel'adresseest-elledisponiblepourLD?PourLDR?

Réponse

(a)LD:àlandeID,ommeJMP.

(b)LDR:àlandeEX,ommeLDR.

Question 1.7

Dans ette question, on onsidère l'instrution LEA. Quelle tâhe eetue LEA dans l'étage EX?

Dansl'étageMEM?

Réponse

Auune.

Question 1.8

Dansette question,ononsidèrelesinstrutionsderangementmémoire(ST,STR).

(a)A landequelétagel'adresseest-elledisponiblepourST? PourSTR?

(4)

Réponse

(a)MêmehosequepourLD/LDR.

(b)AlandeID(ladonnéeestluedanslebanderegistres).

Question 1.9

Dans ettequestion,ononsidèrel'instrutiondebranhementonditionnel(BR),etonétudieplus

endétaillesproblèmesdebranhement.

(a) DansleLC2pipeliné,d'où provientl'entréeduiruitombinatoirealulantlesbitsNZP?En

déduirepourquoiil fautmettreeiruitombinatoireetlesregistresNZP dansl'étageMEM.

Ajoutez le iruitNZP dans la Figure 1(on ne détaillerapas leiruit NZP lui-même, déjà vu en

TD,onlereprésenteraaveunesimpleboîte)et lesomposantset heminsnéessairespourobtenirson

entrée.

Onsupposequeleiruitpermettantdealulerlaonditiondubranhementsetrouvedanslemême

étage MEM,et on nestokeplusette onditiondans unregistre(plus de registreBEN),la sortiedu

iruitest utiliséeimmédiatementparunéventuelBR.

(b) Sansajouterlemoindre autreomposant(pasdetable depréditionouautre), quellepolitique

de prédition de branhement doit-onimpliitement utiliser pour pouvoirharger une instrutionpar

yle?

()Dansepipeline, jusqu'àlandequelétage, auplustard,peut-onautorisertouteinstrutionà

s'exéuterdefaçonspéulative?Pourquoi?

(d) Si l'on onsidère l'ensemble des instrutions de branhement, quels sont les délais minimal et

maximal (à partir du début de l'exéution de l'instrution de branhement) pour déterminer si une

préditiondebranhementest orrete?

(e)Donnezuneséquenesimpled'instrutionsillustrantunasoùesdélaisvariablesengendrentun

onitderessoures.Détaillezvotreréponse.

(f)Donnezuneséquenesimpled'instrutionsillustrantunasoùesdélaisvariablesengendrentune

exéutioninorreteduode,notammentenraisonduaratèrespéulatifdel'exéutiondesinstrutions.

(g) Dorénavant, on supposera que le branhement lui-même ne pourra être eetué que lorsque

l'instrutiondebranhementseradans l'étageMEM.Réalisezmaintenantlaversiondénitive(iruits

ethemins)del'étageIF dushémadelaFigure1.

Réponse

(a)Sil'instrutiondansl'étageMEMestuneinstrutionALU,onutiliselasortiedel'ALUdansEX/MEM,

sinon, on utilise la donnée lueen mémoire. Du oup, selon l'instrution quipréède le branhement, ondoit

éventuellementattendrel'étage MEMpouralulerNZP (asd'unLD/LDR),don ilfautmettrele iruitet

lesregistresNZPdansl'étageMEM.

Onplaedon leiruit deNZP dans l'étage MEM, ave, en entrée un multiplexeurprenant lasortie de

l'ALUprovenantduregistreEX/MEMetlavaleurrevenantdelamémoire.

(b)Impliitement,haquebranhementest prédit nonpris, don onpeut ontinuer àharger l'instrution

suivante,enutilisantlerésultatdePC+1.

()Jusqu'àlandel'étageEXpare que,jusqu'àetétage, l'étatduproesseur(registres, mémoire)n'est

pasmodiéparl'instrution.

(d)UneinstrutionJMP/JSRpeuteetuersonbranhementàlandel'étageID,uneinstrutionJMPR/JSRR

ouun BRpréédéd'unLD/LDRnepourraeetuersonbranhementqu'àlan del'étage MEM.Ledélaiest

donde2à4yles.

(e)Danslaséquenei-dessous,leJMPetleJMPRvontvouloireetuerleurbranhementaumêmeyle,

puisqueleJMPseradansl'étageIDetleJMPRdansl'étageEX.Ilyadonunonitderessouressurleport

d'éritureduPC,etsurtout,onnepeutlaisserJMPmodierl'étatdelamahineavantqueJMPRnesoitonnu.

JMPR R0, INDEX

JMP ADDRESS2

(f)Danslaséquenei-dessous,leBRestnonpris,etilestsuivid'uneinstrutionJMP.CommeleBRestnon

pris,ilnemodie paslePC, maisleJMPquilesuit,exéutéspéulativement,lemodie.Commelaondition

duBRestrésolueunyleaprèslesautduJMP(résolutionduBRenMEM,sautduJMPenID),leiruitde

ontrlen'apasenoreannulél'instrutionJMPpréédantleBR.LePCestdoninorretementmodié.

LD R0, ADDRESS1

BRn ADDRESS2; non pris

JMP ADDRESS3

(g)LemultiplexeurenentréeduPCn'aplusquedeuxentrées:soitPC+1,soituneadressedebranhement,

envoyéedepuisl'étageMEM.

(5)

haqueregistred'étage,indiquezlairementquellesinstrutionspartagentexatementlesmêmeshamps

duregistred'étage;présentezvosréponsesdelafaçonsuivante:

Registre

E 1 /E 2

:

INSTRUCTIONa,INSTRUCTIONb,... : <natureduhamp>(<nombrede bits>)

...

Réponse

IF/ID:

Toutes:instrution(16);

LD,JMP,LEA,BR:BitsdepoidsfortduPC(7);

JSR,JSRR:PC+1orrespondantàl'adressederetour(16);

Taille:16+16=32bits.

ID/EX:

Toutes:opode(4);

ADD,AND,NOT:les(valeursdes)deuxregistressoure(2x16),unseulpourNOTetADD,ANDreg-reg;

ADD,ANDreg-imm:unevaleurimmédiateétendue(16);

LD,JMP,LEA,JSR,BR,ST:adresse(16);

LDR,STR,JMPR,JSRR:unregistreetunindexétendu(16+16);

ST,STR:registre(valeuràérire)(16);

JMP,JMPR,JSR,JSRR:bitL(1);

JSR,JSRR:adressederetour(16);

BR:nzp(3)

Taille:4(opode),2x16pourlesregistressoures(utilisésparALUmaisaussil'adressageindexéetlesstores

pour lavaleurà érire), 16pour les adresses diretes, 16pour les immédiats étendus (signés), 16pour les in-

dexétendus(nonsignés),16pourl'adressederetour,1pourlebitL:4+2x16+16+16+16+16+1=101bits.

EX/MEM:

Toutes:opode(4);

ADD,AND,NOT,LDR,STR,JMPR,JSRR:sortiedel'ALU(valeurouadresse)(16);

LD,ST, LEA,JMP,JSR,BR:adresseobtenuedansDI(16);

ST,STR:registre(valeuràérire)(16);

JSR,JSRR:adressederetour(16);

JMP,JMPR,JSR,JSRR:bitL(1);

Taille : 4 (opode), 16(sortie ALU),16 (adresse direte), 16 (valeur à érire pour ST/STR), 16(adresse

retourpourJSR/JSRR),1(L):4+16+16+16+16+1=69bits.

MEM/WB :

Toutes:opode(4);

ADD,AND,NOT:résultatdel'ALUàériredansunregistre(16);

LD,LDR:valeurlueenmémoireetàériredansunregistre (16);

LEA:adresse(16);

ST,STR,JMP,JMPR:rien(0);

JSR,JSRR:adressederetour(16);

JMP,JMPR,JSR,JSRR:bitL(1);

Taille:4(opode),16(résultatALU),16(valeurmémoire),16(adresse),16(

R7

pourJSR/JSRR),1(L):4

+16+16+16+16+1=69bits.

Question 2.2

En supposantque l'on n'ajouteauun multiplexeur supplémentaireen entrée desregistresd'étage,

endéduirelatailledehaqueregistred'étage,enbits.

Réponse

Voirréponsepréédente.

Question 2.3

Onsupposemaintenantquel'onautorisel'ajoutdemultiplexeursenentréedesregistresd'étagean

(6)

desinformationsdenaturediérente,selonlesinstrutions.Cependant,onnepourramutualiserqueles

hamps demême taille. Indiquezla taille de haque registred'étage,en expliquant très lairementles

entréesdeesmultiplexeurs,etquelssontleshampsqui sontregroupéset pourquellesinstrutions.

Réponse

IF/ID:Onnepeutréduirelatailleduregistred'étage.

ID/EX:Chaqueinstrutionaauplusbesoindetroishampsde16bits(àausedeSTR:deuxregistreset

unindexétendu,etJSRR:registred'adresse, indexétendu,valeurderetour).Ensus, ilfautlebitL,l'opode

etles3bitsnzppourBR.Taille:4+1+3+3x16=56bits.Par exemple,onpeutregrouperlesinstrutions

ainsi:

hamp1(16):registresoure1pourADD,AND,NOT,registred'adressepourLDR,STR,JMPR,JSRR,

adressepourLD,JMP,LEA,JSR,BR,ST;

hamp 2 (16) : registre soure 2 ouimmédiat étendupour ADD, AND, index étendupour LDR, STR,

JMPR,JSRR;

hamp3(16):valeurderetourpourJSR,JSRR,valeuràérirepourST,STR;

opode(4);

JMP,JMPR,JSR,JSRR:bitL(1);

BR:nzp(3)

EX/MEM : L'adresse de STR ou elle de JSRR étant alulée, uneinstrution n'a plus besoin que deux

hampsde16bits,auplus. Ensus,opode,bitL;les bitsNZPsontproduitsetonsommésàetétage,ilsne

sontdonpaspassésàl'étageWBsuivant.Taille:2x16+4+1=37bits.Onpeutparexempleregrouperles

instrutionsainsi:

hamp 1(16) : ADD, AND,NOT, LDR,STR, JMPR,JSRR, LD,ST, LEA, JMP,JSR, BR:sortie de

l'ALU(valeurouadresseindexée)ouadressedirete(16);

hamp2(16):ST,STR:registre(valeuràérire),JSR,JSRR:adressederetour(16);

opode(4);

JMP,JMPR,JSR,JSRR:bitL(1);

MEM/WB :Chaqueinstrutionn'a plusbesoinqued'unhampde16bitsauplus,avetoujoursl'opode

etlebitL.Taille:16+4+1=21bits.

hamp1(16):résultatàériredansunregistre,valeurlueenmémoire(LD,LDR),adresse(LEA)àérire,

adressederetour(JSR,JSRR)àérire;

opode(4);

JMP,JMPR,JSR,JSRR:bitL(1);

Exerie 3 - Compiler pour une exéution pipelinée (10 points)

Dansettequestion, onsuppose que leLC2 pipelinéne dispose pasd'un ontrle matériellui per-

mettant dedéteter les aléas(ressoures, ontrle, données).C'est don auompilateur de modier le

programmepourqueesaléasneseproduisentpas.

Question 3.1

Un NOP (NOOperation)est uneinstrutionqui n'a auunimpatsur l'étatduproesseur.Quelle

instrutionduLC2peutêtreutiliséeommeunNOP?

Réponse

BR(sansn,zoup).

Question 3.2

Ononsidèreleprogrammesuivant,éritpourleLC-2nonpipeliné.Modiezlepourqu'ils'exéute

orretementsurleLC-2pipeliné.Expliquezlairementlaraisondevosmodiations.

LD R0, VALUE1

LD R1, VALUE2

ADD R0, R0, #1

ADD R1, R0, R0

LD R2, R3, #0

STR R1, R2, #10

Réponse

Lesregistressontéritsàlandel'étageWB,etilssontlusaudébutdel'étageID.SiuneinstrutionINST1

éritunregistreetqu'uneautreINST2lelit,ilfautauminimumtroisinstrutionsentreINST1etINST2pour

qu'àl'étageID,lavaleurlueparINST2danslebanderegistressoitlabonne.

(7)

NOP

ADD R1, R0, R0

LD R2, R3, #0

NOP

NOP

NOP

STR R1, R2, #10

Question 3.3

Même question en supposant que vous pouvez ajouter tous les hemins de forwarding souhaités.

Indiquezlairementquelsheminsdeforwardingvousdevezajouterpourréduireautantquepossiblele

tempsd'exéutionduprogramme.

Réponse

LavaleurduLDR0estdisponibledèslandel'étageMEM, etnéessaireaudébutdel'étageEXduADD

R0,dons'ilyaunforwardingentrelandel'étageMEMetledébutdeEX,auundélain'estnéessaire.De

mêmes'ilyaunforwardingentrelanetledébutdeEX,auundélain'est néessaireentreADDR0etADD

R1.Enrevanhe,lealuld'adressedeSTRalieu dansl'étage EX,etilfautdisposerdeR2pourealul, or

R2n'estdisponiblequ'àlandel'étageMEMduLD.Ilfautdon insérerunNOPentreleLDetleSTR.

LD R0, VALUE1

LD R1, VALUE2

ADD R0, R0, # 1

ADD R1, R0, R0

LD R2, R3, #0

NOP

STR R1, R2, #10

Exerie 4 - Contrle d'un pipeline (10 points)

Pouretexerie,onadoptelesnotationssuivantes:

Pourtestersiunopodeorrespondàune ertaineinstrutionINST(e.g.,LD),onériraopode

== INST(e.g., opode == LD);

Pour tester si le hamp CH d'un registre d'étage

E 1 /E 2

est égal à une valeur VAL, on érira

E 1 /E 2

.CH == VAL;

Onrappelle quelorsqu'une instrutionest en ours d'exéution dans unétage

E 2

,toutes les infor-

mationsassoiéessontontenuesdansleregistred'étage

E 1 /E 2

.

Question 4.1

ParmilesinstrutionsduLC2,quellessontellesqui :

(a)ériventuneinformationdansunregistre;

(b)lisentaumoinsunregistre;

()lisentdeuxregistres;

Réponse

(a)ADD,AND,NOT,LD,LDR,LEA,JSR,JSRR(

R7

);

(b)ADD,AND,NOT,LDR,ST, STR,JMPR,JSRR,RET(

R7

);

()ADDreg-reg,ANDreg-reg,STR;

Question 4.2

Donnezuniruitombinatoirequivaut1sideuxnombresde4bits

A 3 A 2 A 1 A 0

et

B 3 B 2 B 1 B 0

sont

identiques.

Réponse

AN D(N OT (XOR(A 3 , B 3 )), N OT (XOR(A 2 , B 2 )), N OT (XOR(A 1 , B 1 )), N OT (XOR(A 0 , B 0 )))

(8)

Question 4.3

Dansettequestion,onsupposequelesregistresd'étageID/EX,EX/MEMetMEM/WBontiennent

unhampDR de 3bitsorrespondantaunuméroduregistrede destinationde l'instrution,si elle-i

érituneinformationdansundesregistresgénérauxduproesseur(

R0

à

R7

).

Erivez l'ensemble des tests à eetuer pour déterminer si l'instrution en ours d'exéution dans

l'étage ID est vitime d'un aléa de données(data hazard), et doit don être stoppée. On distinguera

éventuellementsuivantlesinstrutions,maisilestreommandéderegrouperlesinstrutionsengendrant

lesmêmestests.

BienqueestestssoientimplémentéssousformedeiruitombinatoiredansunLC2pipeliné,onles

ériraiiommedestestsdeprogramme(e.g.,if...),enutilisantlesnotationsmentionnéesi-dessus.

Réponse

Ilyaunaléadedonnéessil'instrutionlitenIDunregistre éritparuneinstrutiondansunétagesuivant.

Lestestsontdon:

if (

(

// l'instrution dans IF/ID lit un registre RS1?

IF/ID.opode == (ADD or AND or NOT or LDR or STR or JMPR or JSRR)

// un des étages suivants ontient une instrution qui érit dans e registre?

and

( (ID/EX.opode == (ADD or AND or NOT or LD or LDR or LEA or JSR or JSRR)) and (IF/ID.RS1 ==

ID/EX.DR)

or (EX/MEM.opode == (ADD or AND or NOT or LD or LDR or LEA or JSR or JSRR)) and (IF/ID.RS1 ==

EX/MEM.DR)

or (MEM/WB.opode == (ADD or AND or NOT or LD or LDR or LEA or JSR or JSRR)) and (IF/ID.RS1 ==

MEM/WB.DR) )

)

or (

// l'instrution dans IF/ID lit un registre RS2?

IF/ID.opode == (ADD reg-reg or AND reg-reg or STR or JSRR)

and (ID/EX.opode == (ADD or AND or NOT or LD or LDR or LEA or JSR or JSRR)) and (IF/ID.RS2 ==

ID/EX.DR)

or (EX/MEM.opode == (ADD or AND or NOT or LD or LDR or LEA or JSR or JSRR)) and (IF/ID.RS2 ==

EX/MEM.DR)

or (MEM/WB.opode == (ADD or AND or NOT or LD or LDR or LEA or JSR or JSRR)) and (IF/ID.RS2 ==

MEM/WB.DR)

)

or (

// l'instrution dans IF/ID est RET

IF/ID.opode == RET

and ( ((ID/EX.opode == (ADD or AND or NOT or LD or LDR or LEA or JSR or JSRR)) and ID/EX.DR ==

R7)

or ((EX/MEM.opode == (ADD or AND or NOT or LD or LDR or LEA or JSR or JSRR)) and EX/MEM.DR ==

R7)

or ((MEM/WB.opode == (ADD or AND or NOT or LD or LDR or LEA or JSR or JSRR)) and MEM/WB.DR ==

R7) )

)

) data hazard

Question 4.4

Erivezletestàeetuer pourdéterminersiunbranhementalieu àl'étageMEM.

Réponse

if (

// l'instrution est un branhement inonditionnel;

(ID/EX.opode == (JMP or JMPR or JSR or JSRR or RET))

or

// l'instrution est un branhement onditionnel

( ID/EX.opode == BR and (Nn+Zz+Pp) )

) branh taken;

(9)

+1 2

IR LD.IR R PCMX LD.PC

2 MARMX

+ ZEXT

ZEXT

MDR MAR

R.W

KBDR

KBSR

CRTDR

CRTSR

2 INMUX LD.MAR

MIO.EN GateMDR

MEM.EN LD.MDR

Input Output

MIO.EN

GatePC

R7 R0

ALU OUT

SR2

OUT SR1

2

ALUK

GateALU SR1

SR2

SEXT

LD.REG DR

SR1MX DRMX

2

2

des

bus16bits

ontrle

adresses mémoire

adressable

sur16bits

N Z P LD.CC

ombinatoire ombinatoire

BEN LD.BEN SR2MX

ontrlemiroprogrammé BEN GateMARMX

PC

CarryOut CarryIn

16

[8:0℄

16

[15:9℄

[5:0℄

[7:0℄

16 16

16 16

3

3

3

16 16

[4:0℄

[5℄

[8:6℄

[11:9℄

[11:9℄

[15:11℄

[0:2℄

Figure2ShémaduLC-2

Note:lesiruitsPC,IR,MAR,MDR,BEN,N,ZetPsontdesregistres.

Lerle dessignauxdeontrledelagure2estexpliité danslalistesuivante.

LD.MAR

/ 1

,LD.MDR

/ 1

,LD.IR

/ 1

, LD.REG

/ 1

, LD.CC

/ 1

etLD.PC

/ 1

ommandentl'ériture dans

lesdiversregistresduLC-2.

LD.BEN

/ 1

ommandel'érituredansleregistreBEN(branhenable);eregistrevaut1lorsquele

branhementdoitêtrepris(sil'instrutionouranteestunbranhementonditionnel).

GatePC

/ 1

, GateMDR

/ 1

, GateALU

/ 1

et GateMARMX

/ 1

ommandent les aès en ériture sur le

bus.

MIO.EN

/ 1

doitêtremisà1lorsque l'onsouhaiteaéderàlamémoireouauxI/O,enletureou

enériture.

R.W

/ 1

estmisà0pouruneletureet1pouruneéritureenmémoire.

ALUK

/ 2

:00pourADD,01pourAND,10pourNOT,11pourfairetraverserl'entrée1sansalul.

PCMX

/ 2

séletionnel'unedesquatreentréesdumultiplexeur:dedroiteàgauhe,00,01,10et11.

(10)

MARMX

/ 2

séletionnel'unedestroisentréesdumultiplexeur:degauheàdroite,00,01et10(11 est inutilisé).

SR1MX

/ 2

séletionnel'unedesquatreentréesdumultiplexeur:dehaut enbas,00et01(10et11 nesontpasutilisés).

DRMX

/ 2

séletionneleregistredestination(signalDR):IR

[11 : 9]

pour00,IR

[8 : 6]

pour01(10

et 11nesontpasutilisés).

SR2MX

/ 1

estàpart:e signaldéterminesiladeuxièmeopérande vientdubandes registresou

duhampimmédiat,ilestparonstrutionégalaubit5duregistred'instrutionIRetn'intervient

pasdanslamiroprogrammation.

P C → P C + 1, LD.P C = 1, GateP C = 1, LD.M AR = 1 chargement instruction M IO.EN = 1, LD.M DR = 1 instruction dans M DR

GateM DR = 1, LD.IR = 1 instruction dans IR P CM X = 11, LD.P C = 1 @ → P C

Table1Exemple de séquenede ontrlepour l'instrutionJMP.

OnrappelleégalementlalistedesinstrutionsduLC-2(danssa versionsimpliée) enFigure3.

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

ADD DR, SR1, SR2

(DR

SR1 + SR2)

0 0 0 1 DR SR1 0 0 0 SR2

ADD DR, SR1, imm5

(DR

SR1 + SEXT(imm5))

0 0 0 1 DR SR1 1 imm5:immédiat5-bitssigné

AND DR, SR1, SR2

(DR

AND(SR1, SR2))

0 1 0 1 DR SR1 0 0 0 SR2

AND DR, SR1, imm5

(DR

AND(SR1, SEXT(imm5)))

0 1 0 1 DR SR1 1 imm5:immédiat5-bitssigné

NOT DR, SR

(DR

NOT(SR))

1 0 0 1 DR SR 1 1 1 1 1 1

BRnzp label

(PC = PC[15

:

9℄offset9

ifn.N+z.Z+p.P)

0 0 0 0 n z p oset9-bitsnonsignédanslapageourante

JMP label

(PC = PC[15

:

9℄offset9) 0 1 0 0 0 0 0 oset9-bitsnonsignédanslapageourante

JSR label

(R7

PCand PC = PC[15

:

9℄offset9)

0 1 0 0 1 0 0 oset9-bitsnonsignédanslapageourante

JMPR indexed address

(PC = BaseR + ZEXT(offset6))

1 1 0 0 0 0 0 BaseR index6-bitsnonsigné

JSR indexed address

(R7

PCand PC = BaseR + ZEXT(offset6))

1 1 0 0 1 0 0 BaseR index6-bitsnonsigné

LEA DR, label

(DR

PC[15

:

9℄offset9) 1 1 1 0 DR oset9-bitsnonsignédanslapageourante

LD DR, label

(DR

MEM(PC[15

:

9℄offset9) ) 0 0 1 0 DR oset9-bitsnonsignédanslapageourante

LDR DR, indexed address

(DR

MEM(BaseR + ZEXT(offset6)) )

0 1 1 0 DR BaseR index6-bitsnonsigné

ST SR, label

(SR

MEM(PC[15

:

9℄offset9) ) 0 0 1 1 SR oset9-bitsnonsignédanslapageourante

STR SR, indexed address

(SR

MEM(BaseR + ZEXT(offset6)) )

0 1 1 1 SR BaseR index6-bitsnonsigné

RET

(PC

R7)

1 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0

Figure3Format desinstrutionsduLC-2

Références

Documents relatifs

Solomon et Lynch, 1988, at- tribuent d’ailleurs leur résultat concernant une plus grande fermeté des gras sous- cutanés des agneaux nourris avec le ré-. gime le

Former une équation de la droite (AB) (chaque coecient contiendra seulement une fonction trigonométrique).. On la mettra sous la forme d'un produit

Como hay escasa información sobre la demanda o necesidad de PNF, el personal de atención de salud y de planificación de la familia puede tener un conocimiento limitado de

TS 8 Interrogation 7A 8 d´ecembre 2017 R´epondre aux questions sur la feuille... TS 8 Interrogation 7B 8 d´ecembre 2017 R´epondre aux questions sur

Vantail bois + plinthe automatique / Wooden door + automatic drop seal Vantail bois + joint balai / Wooden door + brush seal. Bloc-porte vantail bois ou vitré acoustique de 30 à

[r]

A.2 On donne quelques propri´ et´ es sur les id´ eaux ` a gauche de L(E)... On fixe un

La question pr´ ec´ edente montre alors que I contient une partie g´ en´ eratrice