Euskal Herriko Unibertsitatea Konputagailuen …Euskal Herriko Unibertsitatea Konputagailuen...

16
Euskal Herriko Unibertsitatea Konputagailuen Arkitektura eta Informatika Fakultatea Teknologia Saila Konputagailuen Arkitektura II Segmentazio Lineala 1 1. Azal ezazu grafiko honen portaera, non prozesadore segmentatu bat erabiliz lortu daitekeen azelerazio-faktorea ageri den, segmentazioaren urrats-kopuruaren arabera. 0,5 1 1,5 2 2,5 3 0 2 4 6 8 10 12 14 16 Azelerazio-Faktorea Segmentazioaren urrats-kopurua 2. Prozesadore segmentatu bat definitzeko honako erreserba-taula hau erabiltzen da, non AM agindu- memoria, DM datu-memoria (segmentatuta), EM erregistro-multzoa, Rin iturburu-erregistroa (n = 1 edo 2), Rh helburu-erregistroa, OP UALeko eragiketa eta bn segmentazio-erregistroak edo latch-ak diren. 1) Ebatzi egiturazko dependentziak. 2) Zenbat bus behar dira EMrako eta DMrako? 3) Non behar dira multiplexoreak datu-bidean? 1 2 3 4 OP IR = AM(PC) PC = PC + 4 b1 = EM[Ri1] b2 = b1 OP bereh EM[Rh] = b2 OP b1 BRx IR = AM(PC) PC = PC + 4 b2 = EM[Ri2] b1 = EM[Ri1] baldin (b2=0) PC = b1 OPM IR = AM(PC) PC = PC + 4 b1 = EM[Ri1] + desp DM(b1) EM[Rh] = DM() OP b1 OPI IR = AM(PC) PC = PC + 4 b1 = EM[Ri2] EM[Rh] = b1 + bereh 3. Prozesadore segmentatu batean urrats-denbora maximoa 75 ns-koa da. Datu-bideko osagaien atzerapenak honako hauek dira: multiplexorea 2 ns, AM 60 ns, DMko lehen zikloa 30 ns, DMko bigarren zikloa 60 ns, OP batena 40 ns, EMko irakurketa edo idazketa 10 ns, konparaketa (=) 5 ns, (+,-) eragiketa 20 ns, PC edo latchetako idazketa, 2 ns. Erreserba-taula honetatik hasita, ebatzi itzazu datu-dependentziak eta zehaztu zirkuitulaburrek behar duten denbora eta geldiketetarako arrazoiak. 1 2 3 4 OP IR = AM(PC) PC = PC + 4 EM[Rh] = EM[Ri1] OP EM[Ri2] LD IR = AM(PC) PC = PC + 4 b1 = EM[Ri1] DM(b1 OP desp) EM[Rh] = DM() ST IR = AM(PC) PC = PC + 4 b1 = EM[Ri1] b2 = EM[Ri2] DM(b1 OP desp) b3 = b2 DM() = b3 BR1 IR = AM(PC) PC = PC + 4 EM[Ri1] = EM[Ri1] - 1 baldin (EM[Ri1] 0) PC = helb BR2 IR = AM(PC) PC = PC + 4 PC1 = PC b1 = EM[Ri1] - 1 b2 = EM[Ri2] PC2 = PC1 baldin (b1 = 0) PC = PC2 OP b2

Transcript of Euskal Herriko Unibertsitatea Konputagailuen …Euskal Herriko Unibertsitatea Konputagailuen...

Page 1: Euskal Herriko Unibertsitatea Konputagailuen …Euskal Herriko Unibertsitatea Konputagailuen Arkitektura eta Informatika Fakultatea Teknologia Saila Konputagailuen Arkitektura II Segmentazio

Euskal Herriko Unibertsitatea Konputagailuen Arkitektura eta Informatika Fakultatea Teknologia Saila Konputagailuen Arkitektura II Segmentazio Lineala 1 1. Azal ezazu grafiko honen portaera, non prozesadore segmentatu bat erabiliz lortu daitekeen

azelerazio-faktorea ageri den, segmentazioaren urrats-kopuruaren arabera.

0,5

1

1,5

2

2,5

3

0 2 4 6 8 10 12 14 16

Aze

lera

zio-

Fakt

orea

Segmentazioaren urrats-kopurua

2. Prozesadore segmentatu bat definitzeko honako erreserba-taula hau erabiltzen da, non AM agindu-memoria, DM datu-memoria (segmentatuta), EM erregistro-multzoa, Rin iturburu-erregistroa (n = 1 edo 2), Rh helburu-erregistroa, OP UALeko eragiketa eta bn segmentazio-erregistroak edo latch-ak diren.

1) Ebatzi egiturazko dependentziak. 2) Zenbat bus behar dira EMrako eta DMrako? 3) Non behar dira multiplexoreak datu-bidean?

1 2 3 4

OP IR = AM(PC) PC = PC + 4 b1 = EM[Ri1] b2 = b1 OP bereh EM[Rh] = b2 OP b1

BRx IR = AM(PC) PC = PC + 4 b2 = EM[Ri2] b1 = EM[Ri1] baldin (b2=0) PC = b1

OPM IR = AM(PC) PC = PC + 4 b1 = EM[Ri1] + desp DM(b1) EM[Rh] = DM() OP b1

OPI IR = AM(PC) PC = PC + 4 b1 = EM[Ri2] EM[Rh] = b1 + bereh

3. Prozesadore segmentatu batean urrats-denbora maximoa 75 ns-koa da. Datu-bideko osagaien

atzerapenak honako hauek dira: multiplexorea 2 ns, AM 60 ns, DMko lehen zikloa 30 ns, DMko bigarren zikloa 60 ns, OP batena 40 ns, EMko irakurketa edo idazketa 10 ns, konparaketa (=) 5 ns, (+,-) eragiketa 20 ns, PC edo latchetako idazketa, 2 ns.

Erreserba-taula honetatik hasita, ebatzi itzazu datu-dependentziak eta zehaztu zirkuitulaburrek behar duten denbora eta geldiketetarako arrazoiak.

1 2 3 4

OP IR = AM(PC) PC = PC + 4 EM[Rh] = EM[Ri1] OP EM[Ri2]

LD IR = AM(PC) PC = PC + 4 b1 = EM[Ri1] DM(b1 OP desp) EM[Rh] = DM()

ST IR = AM(PC) PC = PC + 4

b1 = EM[Ri1] b2 = EM[Ri2]

DM(b1 OP desp) b3 = b2

DM() = b3

BR1 IR = AM(PC) PC = PC + 4

EM[Ri1] = EM[Ri1] - 1 baldin (EM[Ri1] ≠ 0) PC = helb

BR2 IR = AM(PC) PC = PC + 4

PC1 = PC

b1 = EM[Ri1] - 1 b2 = EM[Ri2] PC2 = PC1

baldin (b1 = 0) PC = PC2 OP b2

Page 2: Euskal Herriko Unibertsitatea Konputagailuen …Euskal Herriko Unibertsitatea Konputagailuen Arkitektura eta Informatika Fakultatea Teknologia Saila Konputagailuen Arkitektura II Segmentazio

Euskal Herriko Unibertsitatea Konputagailuen Arkitektura eta Informatika Fakultatea Teknologia Saila Konputagailuen Arkitektura II Segmentazio Lineala 2 4. Aurreko ariketaren aginduak erabiliz, A bektorea B bektorean kopiatzen duen programa egin dugu,

begizta: LD R3, A[R1] ST B[R1], R3 BR1 R1, begizta NOP LD R3, C[R1] ....

R1 erregistroko hasierako balioa 99 da.

1) Konpiladoreak NOP bat sartu duela kontuan hartuz, kalkula ezazu programa exekutatzeko behar den ziklo-kopurua (zirkuitulaburrekin eta zirkuitulaburrik gabe). Ziklo hauetatik, zenbat izan dira baliagarriak eta zenbat galdu dira?

2) "Jauzi atzeratua" teknika erabil daitekeela suposatuz, aldatu aginduen ordena eraginkortasuna hobetzeko.

3) Jauzietarako apustuak erabiliko bagenitu, aldatuko litzateke eraginkortasuna (ziklo/ag)? 5. Ezaugarri hauek dituen prozesu-unitate segmentatu bat ari gara diseinatzen:

- urratseko denbora maximoa: 75 ns. - osagaien atzerapenak: agindu-memoriako atzipena 60 ns, datu-memoria segmentatuan lehen

zikloa 50 ns eta bigarrena 60 ns, UALa (op) 40 ns, erregistro-multzoko irakurketa/idazketa 20 ns, konparagailua 25 ns, batugailua 30 ns, deskodegailua 5 ns, latch-etako eta PCko idazketa 5 ns, multiplexoreak 2 ns.

- Erregistro orokorretako irakurketa beti urrats berean egin behar da. - Memoria-atzipena beti urrats berean egin behar da. - Erregistro orokorretako idazketa lehenbailehen bete behar da. - Agindu-multzoa honako hau da:

LOAD Rh, d(Ri1) Rh = DM(Ri1+d) STORE d(Ri1), Ri2 DM(Ri1+d) = Ri2 OP Rh, Ri1, bereh Rh = Ri1 op berehalakoa OPM Rh, d(Ri1) Rh = Rh op DM(Ri1+d) BR Ri1, Ri2, d baldin (Ri1=Ri2) PC = PC + d

1) Egin ezazu egiturazko dependentziak ez dituen erreserba-taula bat aurreko agindu-multzorako. Zenbat UAL eta zenbat batugailu erabili behar dira?

2) Aurreko erreserba-taulatik abiatuta, eta denborak kontuan hartuz, analiza itzazu OP eta OPM aginduen arteko datu-dependentziak, eta proposatu haien eragina arintzeko zirkuitulabur egokiak.

3) Begizta hau emanik:

begizta: OP R8, R8, 4 LOAD R6, 0(R8) OPM R5, 40(R4) BR R5, R2, begizta

- Zirkuitulaburrak kontuan hartu gabe, zein da begizta 50 aldiz exekutatzeko denbora? Eta zirkuitulaburrak kontuan hartuz?

- Zenbateraino labur daiteke denbora hori: a) kodea berrordenatuz? b) jauziaren aldeko apustua eginez?

Page 3: Euskal Herriko Unibertsitatea Konputagailuen …Euskal Herriko Unibertsitatea Konputagailuen Arkitektura eta Informatika Fakultatea Teknologia Saila Konputagailuen Arkitektura II Segmentazio

Euskal Herriko Unibertsitatea Konputagailuen Arkitektura eta Informatika Fakultatea Teknologia Saila Konputagailuen Arkitektura II Segmentazio Lineala 3 6. Hartu kontuan DLX prozesadorearen erreserba-taula osoa, non, besteak beste, pilako aginduen

exekuzio segmentatua ageri den. a. Zer gertatzen da POP SP agindua exekutatzen denean? Azal itzazu aurkitzen dituzun arazoak eta

ebazpideak.

b. Ebatzi OP/PUSH, POP/RET eta LOAD/PUSH aginduen arteko datu-dependentziak, prozesadorearen geldiketak, heina/eremua (RD, RAW) dependentziak direla eta, ekiditeko; azaldu erabilitako zirkuitulaburrak.

7. Irudian prozesadore segmentatu baten eskema orokorra ageri da. Makina horretan honako programa hau exekutatu behar da:

LD R1, (R2) ADD R3, R1, #1 BNZ R3, b1 ST (R4), R3 ST (R6), R3 b1: SUB R5, R3, R7 ST (R6), R5

Jauziaren latentzia ziklo batekoa da eta jauzi atzeratua aplikatzen da.

(a) Batere zirkuitulaburrik ez daudela kontuan hartuz, simula ezazu programa horren exekuzioa fasez fase; suposatu jauzia betetzen dela. Zenbat denbora (ns) behar da programa osoa, hasieratik bukaeraraino, exekutatzeko? (kalkula ezazu lehendabizi erloju-periodoa).

(b) Aurreko programako datu-dependentziak arintzeko zirkuitulaburrak eraiki nahi ditugu, baina ez dugu nahi ziklo-denbora 68 ns baino altuagoa izatea. Adierazi zein diren (nondik nora) zirkuitulabur horiek eta haien denbora. Kalkula ezazu zein izango den ziklo-denbora berria, eta zenbat denbora (ns) beharko den programa exekutatzeko.

A1 A2 A3

M1

EMD

EM

AG

IND

UC

ACH

E

DES

K.

45 ns 10 ns 20 ns 20 ns 40 ns 30 ns

35 n

20 ns

Tmux = 2nsTlatch = 4nsTbatu = 12ns

konp

15 ns

@

dat

M2 M3

s 50 ns 40 ns

Page 4: Euskal Herriko Unibertsitatea Konputagailuen …Euskal Herriko Unibertsitatea Konputagailuen Arkitektura eta Informatika Fakultatea Teknologia Saila Konputagailuen Arkitektura II Segmentazio

Euskal Herriko Unibertsitatea Konputagailuen Arkitektura eta Informatika Fakultatea Teknologia Saila Konputagailuen Arkitektura II Segmentazio Lineala 4 8. Jauzi-agindu bat exekutatzeko, batetik, jauziaren baldintza aztertu behar da, eta, bestetik, jauzi-

helbidea kalkulatu behar da. Jauzien latentzia biziki garrantzitsua da, prozesadoreak agindu gehiago bilatu beharko baitu, jauzia beteko den ala ez jakin gabe. Jauziek sortzen dituzten kontrol-dependentziak arintzeko tekniken artean honako hauek aipa daitezke: jauzi atzeratua, beti baliogabetu, jauziaren aldeko apustua, ondokoaren aldeko apustua eta bi adarren aldeko apustua. Zenbait kasutan, apustu dinamikoa deitzen den teknika ere erabili da, zeinaren arabera programaren exekuzioan zehar zer egin erabakitzeko, jauzi ala ez, jauzi horren historia aztertzen baita. Historia horrek azkeneko jauzia, azkeneko bi jauziak, etab. har ditzake kontuan.

Izan bedi 2 latentziako jauzia. Programa jakin bat exekutatu da eta jauzi honi buruzko informazioa bildu da (jauzi -J- ala Segi -S-). Kontuan hartuz jauzietarako aipaturiko kontrol-motak, bete ezazu beheko taula informazio hau adieraziz:

• jauzi bakoitzean galdutako ziklo-kopurua. • emandako jauzi-sekuentziarako galdutako ziklo-kopuru osoa. • eraginkortasunaren galera (ziklo-kop. aginduko), %tan, programa osorako (175 agindu),

jauzietan ageri diren kontrol-dependentziak direla eta.

Apustu dinamikoetarako, bi kasu aztertzen dira: • historia 1: azken agerraldian egindakoaren alde egingo da apustua. • historia 2: apustua aldatuko da bi huts jarraian gertatzean.

Jauziaren portaera: • 35 jauzi aztertu dira, osora 175 agindu exekutatuz. • apustu dinamikoan, jauziaren aldeko apustua egin da hasieran. • 35 jauzien portaera: (J) J J J S J J S S S S J J S S S J S S J S S S S J S S S J S J J J J S J

Jauziaren kontrol-mota galduriko

zikloak baldin jauzi

galduriko zikloak baldin

segi

sekuentzia osoan

galdutako zikloak

programa osoan errendimendu

galera (%)

Jauzi atzeratua

0 agindu onuragarri

1 agindu onuragarri

2 agindu onuragarri

Beti baliogabetu

Jauziaren aldeko apustua

Ondokoaren aldeko apustua

Hutsegite-

kopurua sekuentzian

Asmatze-kopurua

sekuentzian

Apustu dinamikoa, h1

Apustu dinamikoa, h2

Bi adarren aldeko apustua

(jauzi-helbide bera, 1.a izan ezik)

Page 5: Euskal Herriko Unibertsitatea Konputagailuen …Euskal Herriko Unibertsitatea Konputagailuen Arkitektura eta Informatika Fakultatea Teknologia Saila Konputagailuen Arkitektura II Segmentazio

Euskal Herriko Unibertsitatea Konputagailuen Arkitektura eta Informatika Fakultatea Teknologia Saila Konputagailuen Arkitektura II Segmentazio Lineala 5 9. Exekutatu egin da beheko programa DLXn. Simula ezazu taula batean programaren exekuzioa,

urratsez urrats. Programaren laugarren agindua TRAP bat da, eta, gainera, salbuespen bat sortzen da zatiketa-aginduaren UAL urratsean. Segmentazio-eskema hau da: B - D/Ir - A - M - Id.

Zirkuitulabur bakar bat onartzen da: Id → D/Ir. IRET aginduaren latentzia 0 da. Salbuespen-errutinaren aginduek ez dute inolako dependentziarik sortzen. Marka itzazu izartxo batez (*) baliogabetzen diren aginduak.

jauz: LD R1, helb1 LD R2, helb2 MUL R3, R1, R2 TRAP v1 DIV R3, R6, R2 ADD R4, R3, R7 ST R4, helb3 SUBI R8, R8, #1 BNZ R8, jauz NOP @v1: LD R1, helb4 MUL R7, R3, R1 IRET @sal: SALB1 SALB2 SALB3 IRET

10. Beheko erreserba-taulak hiru aginduen exekuzioa adierazten du makina segmentatu batean.

a. Analiza itzazu heina/eremu, RAW, dependentziak LD→OP eta INC→OP aginduen artean eta adierazi posibleak diren zirkuitulaburrak. Makinaren osagaien latentziak hauexek dira:

terlojua = 80 ns, tmem (2. zikloa) = 60 ns, tual = 40 ns, tlatch = 5 ns, tmux = 2 ns

b. Demagun ez direla zirkuitulaburrik erabiltzen. Marraztu hiru agindu hauek behar duten datu-bidea; adieraz ezazu argiro unitate funtzionalen arteko konexioak eta segmentazioko latch-ak. Adieraz itzazu egin behar diren aldaketak (a) ataleko zirkuitulaburrak sartu ahal izateko. Nola kontrolatzen dira zirkuitulabur horiek?

c. Programa jakin baten exekuzioak 1.000 ziklo irauten du makina horretan, zirkuitulaburrik ez dagoenean. Exekuzioa aztertu eta gero, egiaztatu da denboraren %12a LD→OP dependentziei egotzi dakiekeela eta %2a, aldiz, INC→OP dependentziei. Zirkuitulaburrak gauzatzeko behar den hardwarea sartzeak %1ean gehitzen du erlojuaren periodoa, zirkuitulabur bakar bat sartzen bada, eta %3,5ean, bi baldin badira. Merezi du zirkuitulaburren bat gauzatzea? Arrazoitu erantzuna.

B D/Ir A M M/Id

OP rh, ri1, ri2 ir = AM(pc) pc = pc+1

a = EM[ri1] b = EM[ri2] c = a OP b e = c EM[rh] = e

LD rh, d(ri1) ir = AM(pc) pc = pc+1

a = EM[ri1] b = d c = a + b DM(c) EM[rh] = DM()

INC rh ir = AM(pc) pc = pc+1 a = EM[rh] EM(rh) = a + 1

Page 6: Euskal Herriko Unibertsitatea Konputagailuen …Euskal Herriko Unibertsitatea Konputagailuen Arkitektura eta Informatika Fakultatea Teknologia Saila Konputagailuen Arkitektura II Segmentazio

Euskal Herriko Unibertsitatea Konputagailuen Arkitektura eta Informatika Fakultatea Teknologia Saila Konputagailuen Arkitektura II Segmentazio Lineala 6 11. Alboko irudiak prozesadore segmentatu

lineal baten arkitektura azaltzen du (ez dira sartu PC eta IR erregistroei dagozkien eskemak).

a. Egin ezazu erreserba-taula bat

adierazten diren aginduen exekuzioa segmentatzeko (hartu kontuan makinaren hardwarea). Hardwarea ezin da aldatu. Jauziaren latentziak ahalik eta txikiena izan behar du. R0 erregistroak 0 balioa gordetzen du.

UAL

Erregistro-Multzoa

DM

A B

C

D

dU2

U3

U4

U5

E

F

+1

Ri1 Ri2

bald

ERRESERBA-TAULA

U1 U2 U3 U4 U5

OP rh = ri1 OP ri2

ir = AM(pc) pc = pc + 4

LD rh = M(ri1 + d)

ir = AM(pc) pc = pc + 4

LDI rh = M(ri2) ri2 = ri2+ 1

ir = AM(pc) pc = pc + 4

ST M(ri1 + d) = ri2

ir = AM(pc) pc = pc + 4

BNZ / BZ baldin (ri1 knp 0)

pc = helb

ir = AM(pc) pc = pc + 4

b. Bedi programatxo hau:

helb0: LD R1, d(R10) LD R2, d(R11) OP R3, R1, R2 OP R4, R3, R5 ST d(R12), R4 BNZ R4, helb1 (jauzia betetzen da) OP R9, R9, R9 helb1: LDI R1, (R2) OP R1, R1, R2 BNZ R1, helb0

Prozesadoreak ez dauka kontrol-dependentziak arintzeko inongo hardwarerik, eta, beraz, programa egokitu beharko duzu. Simulatu programaren exekuzioa (bete taula bat) (hartu kontuan makinaren hardwarea).

Zenbat ziklo galtzen dira datu-dependentziak eta kontrol-dependentziak direla medio, begiztaren pauso bakoitzean?

Adierazi ea posible den zirkuitulaburren bat gehitzea programaren exekuzio-denbora minimizatzearren. Horrela izanik, marraz ezazu nola egiten den hori makina horretan.

Page 7: Euskal Herriko Unibertsitatea Konputagailuen …Euskal Herriko Unibertsitatea Konputagailuen Arkitektura eta Informatika Fakultatea Teknologia Saila Konputagailuen Arkitektura II Segmentazio

Euskal Herriko Unibertsitatea Konputagailuen Arkitektura eta Informatika Fakultatea Teknologia Saila Konputagailuen Arkitektura II Segmentazio Lineala 7 12. Erreserba-taula hau oinarritzat hartuz, makina segmentatu bat diseinatu nahi dugu.

B UAL1 MEM UAL2 Id

INC Rh IR = AM(PC) PC = PC + 4 EM[Rh] = EM[Rh]+1

OPM Rh, Ri1, d(Ri2) IR = AM(PC) PC = PC + 4 b1 = EM[Ri2] + d mdr = DM(b1) buff = EM[Ri1] op

mdr EM[Rh] = buff

LOAD Rh, d(Ri2) IR = AM(PC) PC = PC + 4 mdr = EM[Ri2] + d buff = DM(mdr) mdr = buff EM[Rh] = mdr

STORE d(Ri2), Ri1 IR = AM(PC) PC = PC + 4 b1 = EM[Ri2] + d DM(b1) = EM[Ri1]

JMPCx Ri1, Ri2, desp IR = AM(PC) PC = PC + 4

buff = EM[Ri1] knp EM[Ri2]

baldin (buff) PC = PC + desp

JMPMCx Ri1, d(Ri2), desp

IR = AM(PC) PC = PC + 4 b1 = EM[Ri2] + d mdr = DM(b1)

b1 = PC + desp buff = EM[Ri1]

knp mdr baldin (buff)

PC = b1

Erregistro orokorretako irakurketa beti 2. urratsean egiten da.

a. Sortu erreserba-taula berria egiturazko dependentziak ebatziz, jauzi-aginduak barne. Zenbat UAL eta batugailu behar dira?

b. INC-OPM, OPM-INC, LOAD-OPM eta OPM-JMPCx aginduen arteko datu-dependentzia guztiak ebatzi; beharrezkoak direnean, adieraz itzazu zirkuitulaburrak.

c. Jauzietako eragiketak ezin dira urratsez aldatu, eta jauzietan ondoko blokearen aldeko apustua egiten da. Hartu kontuan bi programatxo hauek, non jauzi-baldintza betetzen den:

a) JMPCx R4, R5, 100 b) JMPMCx R8, 5(R6), 400 LOAD R6,100(R1) INC R8 INC R7 INC R9

Adieraz ezazu nola egingo litzatekeen apustuaren ondorioz exekutatzen ari diren aginduen

baliogabetzea, bi kasuetan; agindu bakoitzeko, erantzun galdera hauei: - zer teknika erabil daiteke baliogabetzea lortzeko? - zer urratsetan baliogabetzen da? - zer informazio eta zer urratsetan begiratu behar da baliogabetzea kontrolatzeko?

d. JMPCx aginduaren exekuzio-maiztasuna %20a bada, JMPMCx-arena %5ekoa, eta ondoko blokearen aldeko apustuan asmatze-tasa %60koa bada bi kasuetan, zein izango da eraginkortasunaren galera jauzien eraginez? Arrazoitu zure erantzuna.

Page 8: Euskal Herriko Unibertsitatea Konputagailuen …Euskal Herriko Unibertsitatea Konputagailuen Arkitektura eta Informatika Fakultatea Teknologia Saila Konputagailuen Arkitektura II Segmentazio

Euskal Herriko Unibertsitatea Konputagailuen Arkitektura eta Informatika Fakultatea Teknologia Saila Konputagailuen Arkitektura II Segmentazio Lineala 8 13. Diseinatzen dihardugun prozesadore segmentatu bat, erreserba-taula honetan oinarritzen da:

INC Rh, Ri1 IR = AM(PC)

PC = PC + 4

A = EM[Ri1] EM[Rh]= A + 1

OPM Rh, Ri1, d(Ri2) IR = AM(PC)

PC = PC + 4

A = EM[Ri1]

B = EM[Ri2]

A1 = A

B1 = B + d

A2 = A1

DM(B1)

A3 = DM()

op A2

EM[Rh] = A3

LOAD Rh, d(Ri2) IR = AM(PC)

PC = PC + 4

B = EM[Ri2] B1 = B + d DM(B1) A3 = DM() EM[Rh] = A3

STORE d(Ri2), Ri1 IR = AM(PC)

PC = PC + 4

A = EM[Ri1]

B = EM[Ri2]

A1 = A

B1 = B + d

A2 = A1

DM(B1)

DM() = A2

JMPCx Ri1, Ri2, desp IR = AM(PC)

PC = PC + 4

A = EM[Ri1]

B = EM[Ri2]

bald = A knp B baldin (bald)

PC =PC + desp

JMP desp IR = AM(PC)

PC = PC + 4

PC = PC + desp

Erreserba-taulan egiturazko dependentziak konponduta daude eta datu-memoria segmentatua da.

Galdera hauei erantzun:

a. Zenbat UAL, batugailu eta konparagailu behar dira? Zenbat bus dira beharrezkoak erregistroetako irakurketak eta idazketak egiteko? Eta, zenbat erregistro erabiliko dira PCak gordetzeko, jauziak egiten badira jauzi-aginduaren PCarekiko?

b1. Ebatz itzazu INC-STORE, LOAD-INC, OPM-OPM eta OPM-INC aginduen arteko heina/eremu datu-dependentziak. Zirkuitulabur guztiak posibleak dira (ez dago arazorik denborarekin).

b2. Urrats bakoitzeko denbora maximoa 75 ns-koa da. Datu-bidearen osagaien denborak honako hauek dira: multiplexorea 2 ns, agindu-memoria 70 ns, datu-memoriako lehenengo urratsa 50 ns, bigarrena 30 ns, op 40 ns, EMko irakurketa/idazketa 25 ns, konparaketa (=) 35 ns, batugailua (+,-) 20 ns, eta PC eta latchetako idazketa 2 ns.

Adieraz ezazu aurreko zirkuitulaburrak betetzeko behar den denbora. Zein zirkuitulabur ezingo dira burutu denbora-falta dela eta?

c. Zein aginduren artean aurki daitezke heina-heina (WAW) dependentziak? Adieraz ezazu dependentzia horiek ebazteko behar den kontrola; esan nondik hartuko den informazioa.

d. Zein eragina izango litzateke hardwarean eta datu-dependentzietan, INC aginduan erregistroko

idazketa azken urratsera eramango bagenu? e. Jauzi-aginduei buruzko honako galdera hauei erantzun:

- Zein da JMPCx aginduaren atzerapena? Zenbateraino murritz daiteke atzerapen hori, 2b atalean aipatutako denborak kontuan harturik, eta suposatuz jauziaren baldintza kalkulatzeko behar den denbora axolagabekoa dela? Berridatzi ezazu JMPCx aginduari dagokion deskripzioa erreserba-taulan.

- JMPCx jauzia aurreratu gabe, JMPCx aginduaren exekuzioaren maiztasuna %20, eta JMP-

arena %15 baldin bada, zein izango da eraginkortasunaren galera jauzien eraginez, hardwareak ez baditu inoiz baliogabetzen jauzi ondorengo aginduak, eta konpiladoreak agindu onuragarri bat %50 kasutan lortzen badu eta bi %10 kasutan?

Page 9: Euskal Herriko Unibertsitatea Konputagailuen …Euskal Herriko Unibertsitatea Konputagailuen Arkitektura eta Informatika Fakultatea Teknologia Saila Konputagailuen Arkitektura II Segmentazio

Euskal Herriko Unibertsitatea Konputagailuen Arkitektura eta Informatika Fakultatea Teknologia Saila Konputagailuen Arkitektura II Segmentazio Lineala 9

14. Prozesadore segmentatu lineal bat diseinatu behar da, osagaien erantzun-denborak hauek direlarik:

Agindu- eta Datu-memoria 20 ns Deskodeketa 5 ns Irakurketa/Idazketa EMan 10 ns UALa 15 ns

Batugailua/kengailua 10 ns Konparagailua 10 ns Idazketak segmentazio-erregistroetan, PCetan eta IRetan 5 ns

Segmentazio-eskema ikasturtean zehar aztertu dugun makinarena da: B - D/Ir - A - M - Id. Agindu-multzoan, beste batzuen artean, agindu hau dago:

Branch R1, d Baldin (R1 ≠ 0) PC = PC + d R1 = R1 – 1

Informazio estatistiko hau lortu da. Egikaritzen diren aginduen %20a Branch motakoa da. Branch agindua ziklo bateko latentziarekin diseinatzen baldin bada, konpiladorea gauza da ziklo horretan agindu baliagarri bat sartzeko saioen %90ean. Jauziaren latentzia, aldiz, bi ziklokoa bada, konpiladoreak bi ziklo horiek aginduz betetzea lortzen du saioen %40an, agindu bakarra %50ean eta bat ere ez gainerako %10ean.

Aurreko informazioa kontuan hartuz: • Adierazi zein den Branch aginduaren segmentazio-eskema bi kasu horietarako, hots, jauziaren

latentzia 2 eta 1 denean. Adierazi erabiltzen duzun hardwarea. Zein izango litzateke kasu bakoitzean ziklo-denbora?

• Aurreko emaitzaren arabera, zer da eraginkorrago jauziaren exekuzioa segmentatzeko, ziklo bateko latentzia ala bikoa? Arrazoitu zure erantzuna.

15. Kontrol- eta datu-dependentziak ebazteko inongo hardwarerik ez duen prozesadore segmentatu lineal bat erabili behar da. Programa bat konpilatu eta gero, honako emaitza hau lortu da:

do i = 1, N A(i) = A(i) + 2 →enddo

begizta: LOAD R2, A(R1) nop nop ADDI R3, R2, #2 nop nop STORE A(R1), R3 SUBI R1, R1, #1 nop nop BNZ R1, #-10 (begizta) nop

Makinaren erloju-periodoa 32 ns-koa da, eta hardwareak atzerapen-denbora hauek ditu:

Memoria-atzipenak 20 ns UALa 15 ns Deskodeketa 10 ns Irakurketa/Idazketa EMan 10 ns Latch-ak, multiplexoreak, konparagailuak, PC, etab. 2 ns

a. Aukeratu segmentazio-eskema bat makina horretarako ahalik eta urrats-kopururik txikiena erabiliz, kontuan hartuz aurreko datuak eta konpilatzean lortu den kodea. Egin itzazu, LOAD, ADD/SUB, STORE eta BNZ aginduen segmentazio-eskemak.

b. Ebatzi LOAD/ADD, ADD/STORE eta SUB/BNZ aginduen arteko datu-dependentziak. c. Egoera berrirako (datu-dependentziak ebatzita) birkonpilatu eta gero, simula ezazu programaren

begizta-pauso baten exekuzioa. Kalkulatu begizta-pauso bakoitzeko ziklo-kopurua eta, aurreko kasuarekin alderatuz, aurrezten den denbora ehunekotan.

d. Kontrol-dependentziak ebazteko konpiladoreak apustuak egin ditzake. Adierazi nola geratuko litzatekeen kodea (c) kasuan, baldin eta begiztetarako egokiena den apustu-teknika aplikatuko balitz. Zenbat ziklo behar dira orain begizta-pauso bakoitzeko?

Page 10: Euskal Herriko Unibertsitatea Konputagailuen …Euskal Herriko Unibertsitatea Konputagailuen Arkitektura eta Informatika Fakultatea Teknologia Saila Konputagailuen Arkitektura II Segmentazio

Euskal Herriko Unibertsitatea Konputagailuen Arkitektura eta Informatika Fakultatea Teknologia Saila Konputagailuen Arkitektura II Segmentazio Lineala 10 16. Exekutatzen dira prozesadore segmentatu lineal arrunt batean (DLX bera: B, D/Ir, A, M, Id) beheko

hiru aginduak. Alboan prozesadorearen oinarrizko arkitektura dago, zeinari gehitu baitzaizkio zirkuitulabur batzuk (etenkako marrak).

LD R1, A(R2) ADD R3, R1, #3 ST A(R2), R3

ErrM

.

D

MAg

IR

C

B

A

@

UA

L

F

E

dat

MDat

Analizatu programa eta proposatu zirkuitulabur egokienak haren datu-dependentziak arintzeko. Adierazi irudiko zirkuitulaburrak ondo edo gaizki dauden, eta egokiak direnentz programa horretarako, eta zergatik. Gaizki baleude, zuzendu itzazu.

(b) Exekutatu behar da programa hau DLX prozesadorean:

101: LD R1, A(R2) 102: MUL R3, R1, #3 103: BZ R1, #2 ( 105) 104: ADD R3, R3, #1 105: ST A(R2), R3 106: SUB R2, R2, R4 107: BNZ R2, #-6 ( 101)

Jauzien latentzia ziklo batekoa da. Erlojua 50 MHz-ekoa da. Programaren portaera analizatuz, datu jakin batzuk erabiliz, egiaztatu egin da erdiko jauzia (103a) %60an betetzen dela, batez bestean. Kalkula ezazu (eta arrazoitu) programa horren 1000 iterazio exekutatzeko denbora kasu hauetan:

1 Ez da inongo tratamendurik egiten datu-dependentziak zein kontrol-dependentziak arintzeko. 2 Zirkuitulaburrak gehitzen dira (guztiak, UFen artekoak izan ezik). Hori dela eta, erloju-periodoa

hazi egin behar da %10ean. 3 Aurrekoaz gain, jauziak tratatzeko “jauziaren aldeko apustua” aplikatzen da. Idatzi kode berria teknika hori aplikatu eta gero. 4 "Jauziaren aldeko apustua” aplikatu beharrean, BTB gailu bat erabiltzen da. Adierazi zein izango den BTBko edukia 1000 iterazioak bukatzean.

(c) Itzul gaitezen berriz zirkuitulaburrik gabeko kasura (b1 kasua). Aplika dakioke “jauzi atzeratua” teknika tarteko jauziari (BZ, 103a)? Nola (idatzi kodea)? Azkarragoa izango da programaren exekuzioa? Zergatik?

(d) Aurreko programa exekutatzen ari denean, b2 kasuan (zirkuitulaburrekin), salbuespen bat sortzen da BZ aginduaren lehenengo fasean. Salbuespenak zehatzak mantendu behar dira. Adierazi:

– noiz tratatuko den salbuespena – zer agindu egongo diren exekuzioan une horretan, eta zer egin behar den haiekin. – nora itzuliko den salbuespen-errutina programaren exekuzioarekin jarraitzeko.

Page 11: Euskal Herriko Unibertsitatea Konputagailuen …Euskal Herriko Unibertsitatea Konputagailuen Arkitektura eta Informatika Fakultatea Teknologia Saila Konputagailuen Arkitektura II Segmentazio

Euskal Herriko Unibertsitatea Konputagailuen Arkitektura eta Informatika Fakultatea Teknologia Saila Konputagailuen Arkitektura II Segmentazio Lineala 11 17. Izan bedi honako programatxo hau:

do i = 1, N a(i) = a(i) + 1; if (a(i) == 0) then b(i) = b(i) + 1; else b(i) = 0; enddo

p0: LD F1, A(R1) FADD F2, F1, #1.0 ST A(R1), F2 BZ F2, p1 ST B(R1), #0.0 JMP p2 p1: LD F3, B(R1) FADD F4, F3, # 1.0 ST B(R1), F4 p2: ADD R1, R1, #1 SUB R2, R1, #N BNZ R2, p0

Hiru zutabe hauetan aurreko programaren hiru “bertsio” ageri dira, jauziei tratamendu desberdinak emanez. Jauzi guztien latentzia ziklo batekoa da.

p0: LD F1, A(R1) FADD F2, F1, #1.0 BZ F2, p1 ST A(R1), F2 ST B(R1), #0.0 JMP p2 NOP p1: LD F3, B(R1) FADD F4, F3, # 1.0 ST B(R1), F4 p2: ADD R1, R1, #1 BNZ R2, p0 SUB R2, R1, #N

p0: LD F1, A(R1) FADD F2, F1, #1.0 ST A(R1), F2 BZ F2, p1 NOP ST B(R1), #0.0 JMP p2 ADD R1, R1, #1 p1: LD F3, B(R1) FADD F4, F3, # 1.0 ST B(R1), F4 p2: SUB R2, R1, #N BNZ R2, p0 NOP

LD F1, A(R1) p0: FADD F2, F1, #1.0 ST A(R1), F2 BZ F2, p1 ST B(R1), #0.0 JMP p2 ADD R1, R1, #1 p1: LD F3, B(R1) FADD F4, F3, # 1.0 ST B(R1), F4 ADD R1, R1, #1 p2:

SUB R2, R1, #N BNZ R2, p0 LD F1, A(R1)

1. bertsioa 2. bertsioa 3. bertsioa

Adierazi, kasu bakoitzean, programaren bertsioa ondo edo gaizki dagoen. Gaizki badago, esan zergatik; eta ondo badago, esan zer teknika aplikatu den jauzi bakoitza tratatzeko.

18 Konputagailu jakin bat lau urratsetan segmentatuta dago:

BD → Bilaketa eta Deskodeketa; IA → Irakurketa eta Exekuzioa UALean; M → Memoriako atzipena; Id → Idazketa

Segmentatu behar dituzu, era egokian makina horretarako, agindu hauek:

LD Rh, d(Ri1) Rh = M(Ri1+d) OP Rh, Ri1, Ri2 Rh = Ri1 OP Ri2 ST d(Ri1), Ri2 M(Ri1+d) = Ri2 BZ Ri1, d if (Ri1 =0) PC = PC+d

Idatz ezazu aginduen erreserba-taula eta osatu datu-bidea agindu horiek exekutatu ahal izateko.

(b) Aurreko makinan agindu hauek exekutatzen dira: LD R1, d(R2) OP R3, R1, R5 ST d(R2), R3

Page 12: Euskal Herriko Unibertsitatea Konputagailuen …Euskal Herriko Unibertsitatea Konputagailuen Arkitektura eta Informatika Fakultatea Teknologia Saila Konputagailuen Arkitektura II Segmentazio

Euskal Herriko Unibertsitatea Konputagailuen Arkitektura eta Informatika Fakultatea Teknologia Saila Konputagailuen Arkitektura II Segmentazio Lineala 12

Analiza itzazu haien arteko datu-dependentziak eta esan zein zirkuitulaburrak behar diren exekuzio-denbora minimizatzeko. Kontuan hartu osagaien atzerapenak eragiketetarako:

T_clock = 100 ns T_deskod = 10 ns T_Mem = 70 ns T_EM = 20 ns T_UAL = 40 ns T_latch = 2 ns T_batug = 15 ns T_mux = 1 ns

Marraz itzazu zirkuitulaburrak aurreko eskeman. Adierazi zenbat ziklo galdu den exekuzioan zehar.

AM

DESKOD

PC

DM

19 Honako ezaugarri hauek dituen

- Segmentazio-eskema: B/D – Ir/A- Osagaien atzerapenak: Agindu-mem

UALa (35ns), Batugailu/Kengailuamultiplexoreak (5ns).

- Inplementatu beharreko agindu-m

OP rh, ri, rj OPM rh, d(ri), rj LD+ rh, d(ri) rh := M ST+ d(ri), rj M(d+r

- Unitate Aritmetiko Logikoa A+1 e

a) Irudiko datu-bidea bete ezazu latcerreserba-taula egin R-R dependen

b) Osagaien atzerapenak kontutan kalkulatu.

c) (b) atalean kalkulatutako ziklo-denadieraziz:

BNZ ri,desp if ri ≠ 0BMNZ d(ri),desp if M(ri+d) ≠ 0

IR

EM

UAL

makina segmentatu lineala diseinatu nahi dugu: – M – A/Id

oria (45ns), Datu-memoria (55ns), Erregistro multzoa (15ns), (20ns), konparagailua (20ns), deskodegailua (10ns), latchak (5ns) eta

ultzoa:

rh := ri op rj rh := M(d+ri) op rj (d+ri); ri := ri+1 (ri ≠ rh) i) := rj; ri := ri+1 ragiketa egiteko gauza da. h-en kopuru minimoa erabiliz eta adierazitako lau aginduei dagokien tziarik ez dadin izan. Zenbat irakurketa- eta idazketa-bus behar dira?

hartuz, adierazitako aginduak egikaritzeko behar den ziklo-denbora

bora kontuan harturik, jauzi agindu hauek diseinatu haien latentziak

then pc := pc+desp; then pc := pc+desp

Page 13: Euskal Herriko Unibertsitatea Konputagailuen …Euskal Herriko Unibertsitatea Konputagailuen Arkitektura eta Informatika Fakultatea Teknologia Saila Konputagailuen Arkitektura II Segmentazio

Euskal Herriko Unibertsitatea Konputagailuen Arkitektura eta Informatika Fakultatea Teknologia Saila Konputagailuen Arkitektura II Segmentazio Lineala 13

Zerbait gehitu beharko zenuke datu-bidean? Baiezkoa erantzutekotan, adieraz ezazu. Edozein kasutan zure erantzuna arrazoitu.

d) Agindu bikote hauen datu-dependentziak ebatzi: OP R3, R1, R2 ST+ d1(R1), R2 LD+ R4, d(R3) OPM R5, d2(R1), R2

b) atalean kalkulaturiko ziklo-denbora kontutan hartuta, R-D dependentzietarako zirkuitulaburrik aplika daiteken adieraz ezazu eta datu-bidean egin beharreko aldaketak azaldu.

C1

A1

B1

AM PC

EM

UAL1

UAL2

DM

+ B/D

C4 C2 C3

A4 A2 A3

B4 B2 B3

A/Id

M

Ir/A

Page 14: Euskal Herriko Unibertsitatea Konputagailuen …Euskal Herriko Unibertsitatea Konputagailuen Arkitektura eta Informatika Fakultatea Teknologia Saila Konputagailuen Arkitektura II Segmentazio

Euskal Herriko Unibertsitatea Konputagailuen Arkitektura eta Informatika Fakultatea Teknologia Saila Konputagailuen Arkitektura II Segmentazio Lineala 14 20 Prozesadore segmentatu lineal batean honako bi agindu hauek exekutatzen dira:

Agindua U1 U2 U3 U4 U5 LD Rh, Ri,Rj (Rh=M(Ri+Rj)+Ri)

IR=AM(PC) PC=PC+1 PC1=PC

decode A=EM(Ri) B=EM(Rj)

DM(A+B) C=A

D=DM() E=C

EM(Rh)=D+E

BR Ri, desp (if (Ri knp 0) PC=PC+desp Ri=Ri-1)

IR=AM(PC) PC=PC+1 PC1=PC

decode A=EM(Ri) PC2=PC1

C=A-1 if (A cmp 0) PC=PC2+desp

E=C EM(Ri)=E

(IR-ren segmentazioa ez da taulan agertzen eskeman ageri behar da)

a) Erreserba-taula hau jarraituz, bete ezazu bi aginduei dagokien datu-bidearen eskema.

b) Datu-bideko osagaien atzerapenak hauek badira, eta ziklo-denbora 100 ns-koa bada, bi agindu hauen arteko datu-dependentziak ebatzi: LD BR eta BR LD. Azaldu argi eta garbi proposatutako zirkuitulaburrak, eta hauek aurrera eramateko behar den denbora.

Agindu-memoria: 50 ns; Deskodegailua: 5 ns; Datu-memoria (1. fasea): 50 ns; Konparagailua: 25 ns; Datu-memoria (2. fasea): 30 ns; Batugailu/kengailu: 40 ns; Erregistro-multzoa: 20 ns; Latch-ak, PC, Ir, ...: 5 ns Multiplexoreak: 2 ns;

c) Jauzien tratamendurako teknika desberdinen eragina neurtu nahi dugu prozesadore honetan. Jauzien azterketa batek honako probabilitate hauek ematen ditu:

BR motako agindu bat exekutatzearen probabilitatea 0.2 Jauzia ez den agindu bat exekutatzearen probabilitatea 0.8 Jauzi atzeratua 2 agindu baliagarri aurkitzeko probabilitatea 0.2 Agindu baliagarri bakar bat aurkitzeko probabilitatea 0.5 Agindu baliagarririk ez aurkitzeko probabilitatea 0.3 Apostua: jauzia betetzearen probabilitatea 0.7 Bi adarren aldeko apostua: BTBn asmatzeko probabilitatea 0.95

Bakarrik kontrol-dependentziak kontuan hartuta, eta aurreko taulan oinarrituta, kalkula ezazu milioi bat

agindu exekutatzeko denbora, kasu hauetarako (aurreko ziklo-denbora suposatu, 100 ns): 1. Jauzi atzeratua. 2. Jauziaren aldeko apustua. 3. Bi adarren aldeko apustua (BTB). 4. Jauzien %60an jauzi atzeratua aplikatzen da eta gainontzeko %40an ondoz ondoko blokearen aldeko

apustua egiten da.

Page 15: Euskal Herriko Unibertsitatea Konputagailuen …Euskal Herriko Unibertsitatea Konputagailuen Arkitektura eta Informatika Fakultatea Teknologia Saila Konputagailuen Arkitektura II Segmentazio

Euskal Herriko Unibertsitatea Konputagailuen Arkitektura eta Informatika Fakultatea Teknologia Saila Konputagailuen Arkitektura II Segmentazio Lineala 15 21 Taula honetan prozesadore segmentatu baten aginduen segmentazio-eskema ageri da.

Agindua Urratsak

SUB / LD / ST / Jauziak Batuketa (FADD) Biderketa (FMUL) Zatiketa (FDIV)

B D Ir A M Id B D Ir A+ (3) Id B D Ir A* (5) Id B D Ir A/ (7) Id

Prozesadorea ziklo anitzeko motakoa da. Jauzien latentzia 2 ziklokoa da eta jauzi atzeratua erabiltzen da. Unitate funtzional mota bakoitzeko ale bakarra dago.

Simula ezazu programa honen exekuzioa, urratsez urrats, aipatzen diren kasuetan:

1 loop: LOAD F1, d1(R9) 2 LOAD F2, d2(R9) 3 FMUL F3, F4, F1 4 FADD F7, F7, F7 5 FMUL F5, F2, F1 6 FADD F7, F6, F2 7 ADDI R9, R9, #1 8 SUBI R6,R6, #1 8 BNEZ R6, loop 9 STORE d3(R9), F5 10 STORE d4(R9), F7

1 Exekuzio-eredua "ordena hertsia" da. Unitate funtzionalak ez daude segmentatuta. Ez dago zirkuitulaburrik.

2 Exekuzio-eredua "ordena hertsia" da. Unitate funtzionalak segmentatuta daude. Id Ir zirkuitulaburra erabil daiteke.

3 Exekuzio-eredua "ordena/desordena" da. Unitate funtzionalak ez daude segmentatuta. Ez dago zirkuitulaburrik.

4 Exekuzio-eredua "ordena/desordena" da. Unitate funtzionalak segmentatuta daude. Id Ir zirkuitulaburra erabil daiteke.

Page 16: Euskal Herriko Unibertsitatea Konputagailuen …Euskal Herriko Unibertsitatea Konputagailuen Arkitektura eta Informatika Fakultatea Teknologia Saila Konputagailuen Arkitektura II Segmentazio

Euskal Herriko Unibertsitatea Konputagailuen Arkitektura eta Informatika Fakultatea Teknologia Saila Konputagailuen Arkitektura II Segmentazio Lineala 16 22 Programa bat exekutatzen da DLX prozesadore segmentatuan. Programak X eta Y bektoreen hainbat

osagairen biderkadura eskalar karratua kalkulatzen du [(XiYi+Xi+1Yi+1)**2] eta Z bektorean utzi; prozesu hori bektoreen hurrengo osagaiekin errepikatzen da, KONT aldagaian adierazten den adina aldiz. R0 erregistroak 0ko bat dauka.

Ag. PC Agindua 1 0 ADDI R2, R0, #0 ; R2 = 0 X, Y bektoreak helbideratzeko 2 4 ADDI R3, R0, #0 ; R3 = 0 Emaitza, Z, helbideratzeko 3 8 JMP #12 ; jauzi 6 agindura; PC = 8+12 = 20

4 12 SUBI R4, R4, #1 5 16 STORE KONT(R0), R4 ; eguneratu KONT (eragiketa-kopurua) 6 20 ADDI R5, R0, #0 ;R5 = 0 metagailua, batura eramateko 7 24 ADDI R6, R0, #2 ;R6 = 2 begizta-kontagailua (bi aldiz)

8 28 LOAD R10, X(R2) ;Xi Indizea, R2 (0, 1, 2, ...) 9 32 LOAD R11, Y(R2) ;Yi Indizea, R2 (0, 1, 2, ...) 10 36 MUL R11, R11, R10 ;XiYi 11 40 ADD R5, R5, R11 ; +XiYi 12 44 ADDI R2, R2, #1 ;R2 indizea gehitu 13 48 SUBI R6, R6, #1 ;begizta-kontagailua dekrementatu 14 52 BNZ R6, #-24 ;jauzi atzera, bloke nagusia errepikatzera; PC = 52-24 = 28

15 56 MUL R5, R5, R5 ;biderkadura eskalarra ber 2 16 60 ADDI R3, R3, #1 17 64 STORE Z(R3), R5 ;gorde emaitza Z(R3)-an 18 68 LOAD R4, KONT(R0) ;KONT, zenbat aldiz errepikatu behar den aurrekoa 19 72 BNZ R4, #-60 ;jauzi 4 agindura. R4 0 ez bada; PC= 72-60 =12 ... ... ...

Egin itzazu aurreko programaren exekuzio segmentatuak (taula batean, beste adibideetan bezala), kasu hauetarako:

a. Prozesadoreak ez dauka inongo hardwarerik kontrol-dependentziek sortzen dituzten geldiketak

betetzeko; bai, aldiz, datu-dependentziek sortzen dituztenentzat. Ez dago zirkuitulaburrik. b. Bigarren kasu honetan, datu-dependentziak ebazteko behar diren zirkuitulabur guztiak erabil

daitezke. Era berean, badago hardwarea jauziek sortzen dituzten geldiketa-zikloak betetzeko (latentzia-agindua baliogabetu beti).

c. b kasuko makina bera erabiltzen da, eta, gainera, konpiladoreak berrordenatu egiten du kodea, jauzi atzeratua eta load atzeratua erabiliz.

d. b kasutik abiatuta, konpiladoreak apustuak egiten ditu kontrol-dependentziak ebazteko. Kasu guztietan jauziaren aldeko apustua egiten da.

Datozen kasu hauetarako, har ezazu kontuan c ataleko makina.

e. Programaren exekuzioan zehar bi salbuespen sortzen dira, bata LOAD R10, X(R2) aginduan

(barne begiztatik pasatzen den lehen aldian) memoria urratsean, eta bestea ADD R5, R5, R11 aginduan UAL urratsean. Lehenengo kasuan, salbuespenerako 1 tratamendu-errutina exekutatzen da, eta bigarrenean 2 zenbakiduna, taulan adierazten den bezala.

f. Orain, programa exekutatzen denean salbuespen bat sortzen da ADD R5, R5, R11 aginduan UAL urratsean, eta 1 errutina exekutatzen da. Horrez gain, eten bat ailegatzen da 13. zikloan, 2 errutina exekutatzera behartuz.

g. Programak TRAP bat dauka (eten softwarea) eta adierazten den errutina exekutatu behar da. h. Programaren exekuzioan, taulan ageri den bezala aldatuta, bi eten heltzen dira: bata 6. zikloan eta

bestea 12. zikloan; 1 eta 2 errutinak exekutatzen dira hurrenez hurren.