Burgent
May 22, 2013, 08:49:19 pm *
Welcome, Guest. Please login or register.

Login with username, password and session length
News: Als je dit leest, zit je op het nieuwe forum. Proficiat smiley Als er iets niet werkt, just let it know.
 
   Home   Help Search Calendar Login Register  
Pages: 1 2 3 [4] 5
  Print  
Author Topic: examen vrijdag 3 februari 2006  (Read 6299 times)
Greg
n00b
*
Posts: 27


« Reply #45 on: January 20, 2008, 06:37:57 pm »

Over vraag 3:

Dit examen en het ander van 2006 hebben dezelfde lus. 1 is een PAg en 't ander een GAg.
Voor een oef zoals dit, wat is het verschil in aanpak tussen de 2? undecided
Logged
rob
n00b
*
Posts: 46


« Reply #46 on: January 20, 2008, 06:45:52 pm »

Mijn oplossing voor vraag 6 (enkel cachetoegang):
cyclus 4: ld A
cyclus 5: ld E
cyclus 6: st D
cyclus 7: st A
cyclus 9: ld A

Er staat een andere oplossing op http://burgent.be/index.php?topic=168.15, maar die klopt volgens mij niet. Load D gaat daar naar de cache, terwijl de waarde van D vanaf store  D wordt geforward.

Load A wordt eerst speculatief uitgevoerd. In cyclus 6 komt Store A in Store Buffer, en wordt dus duidelijk dat Load A opnieuw moet worden uitgevoerd (4:39). Eerste load wordt genullifieerd, en in cyclus 7 komt Load A terug in Load RS. In cyclus 9 gaat hij dus naar het geheugen. Tegen dan is die store A geretired, dus forwardingmogelijkheden vanuit store buffer zijn er dan niet meer.
Logged
rob
n00b
*
Posts: 46


« Reply #47 on: January 20, 2008, 06:49:45 pm »

Over vraag 3:

Dit examen en het ander van 2006 hebben dezelfde lus. 1 is een PAg en 't ander een GAg.
Voor een oef zoals dit, wat is het verschil in aanpak tussen de 2? undecided
Bij GAg wordt er globale spronggeschiedenis bijgehouden. Bij deze oefening dus iets als:TTTNTTNNNTTTTNTTNNNT...
Bij PAg wordt er per sprongadres een geschiedenis bijgehouden. Bij deze oefening dus:
A: TNNTNNTNN...
B: TTTT...
C: TNTNTNTNTN...
D: NNNN....
E: TTTT...

en wordt met deze geschiedenissen de PHT geindexeerd. In deze oefening maakt het niet uit, want bij allebei hebben we 4 geschiedenisbits nodig (bij PAg is anders NTN niet te onderscheiden, bij GAg TTT niet)
Logged
Meerske
n00b
*
Posts: 41


« Reply #48 on: January 20, 2008, 06:55:35 pm »

Mijn oplossing voor vraag 6 (enkel cachetoegang):
cyclus 4: ld A
cyclus 5: ld E
cyclus 6: st D
cyclus 7: st A
cyclus 9: ld A

Er staat een andere oplossing op http://burgent.be/index.php?topic=168.15, maar die klopt volgens mij niet. Load D gaat daar naar de cache, terwijl de waarde van D vanaf store  D wordt geforward.

Load A wordt eerst speculatief uitgevoerd. In cyclus 6 komt Store A in Store Buffer, en wordt dus duidelijk dat Load A opnieuw moet worden uitgevoerd (4:39). Eerste load wordt genullifieerd, en in cyclus 7 komt Load A terug in Load RS. In cyclus 9 gaat hij dus naar het geheugen. Tegen dan is die store A geretired, dus forwardingmogelijkheden vanuit store buffer zijn er dan niet meer.

zo heb ik het ook...
Logged
Brahiiim
n00b
*
Posts: 42


« Reply #49 on: January 20, 2008, 07:07:08 pm »

ok. das dan al duidelijk. ik ga nog enkele ja of nee vragen stellen gewoon ter bevestiging. das gewoon superbelangrijk voor t examen, vandaar da ik zo anaal doe

1)bij de toestandsmodel van MOESI staat er bij een BW bij S en E gewoon s'=I. maar daar wordt ook een cacheblok doorgegeven. het enige verschil met de toestanden M en O is dat er nog niet naar geschreven is.

2)het maakt niet uit of een CPUx wil schrijven naar een deel van de cachelijn die al beschreven is geweest door een andere CPUy in M of O toestand.wat ik precies bedoel: CPUx doet BW en krijgt volledig cacheblok(met veranderingen aangebracht door CPUy). als die besluit om daar een deel van over te schrijven is dat geen probleem: geen enkel andere CPU heeft proberen te lezen van dat cacheblok van CPUy, want anders zou CPUy niet in de toestand M of O gezeten hebben.
1) Enige verschil tussen M-E is inderdaad dat er al naar M geschreven is, en naar E nog niet. Ja dus.
Bij O-S veronderstel ik ook ja, maar toch wat  meer uitleg. Als er alleen maar S'en van een bepaalde cachelijn zijn, is er nog nooit naar geschreven. Als er echter verschillende cachelijnen (bijv. A) in S-toestand zijn, en op een processor is A ook in O-toestand, dan zijn alle waarden dirty. Alle cachelijnen zijn dus consistent met elkaar, maar niet met het geheugen. Dus inderdaad heeft een processor met een S-toestand van A nog niet naar A geschreven, maar hij heeft wel de door O beschreven waarde van A, en niet de originele (uit het geheugen)! Hoop dat dit wat duidelijker is
2) Begrijp niet helemaal wat je bedoelt. De zin " geen enkel andere CPU heeft proberen te lezen van dat cacheblok van CPUy, want anders zou CPUy niet in de toestand M of O gezeten hebben. " klopt in ieder geval niet. Het is net als een CPU leest van een CPUy in toestand M, dat CPUy toestand O krijgt.


merci voor t antwoord.je hebt gelijk ivm je uitspraak.ik bedoelde schrijven ipv lezen.damn grootverschil hier.. ik ga mn originele 2e jaofnee vraag herschrijven:

2)het maakt niet uit of een CPUx wil schrijven naar een deel van de cachelijn die al beschreven is geweest door een andere CPUy in M of O toestand.wat ik precies bedoel: CPUx doet BW en krijgt volledig cacheblokvan CPUy(met veranderingen aangebracht door CPUy). als CPUx besluit om een deel over te schrijven van wat CPUy reeds aangepast heeft, is dat geen probleem:CPUx krijgt het meest up to date cacheblok, als hij voor hij schrijft alle andere CPUs die dat cacheblok hebben invalideert,zodanig dat niemand de oude waarden(aangepast of niet) zou kunnen lezen, zie ik geen problemen


mijn hele punt is dat er eigenlijk data in de cache overschreven kan worden. en nog ns overschreven door een andere CPU zonder dat het geheugen die verandering ooit gezien heeft...

heb de post aangepast,want mn uitleg was ni relevant
« Last Edit: January 20, 2008, 07:19:10 pm by Brahiiim » Logged
Greg
n00b
*
Posts: 27


« Reply #50 on: January 20, 2008, 07:08:08 pm »

Over vraag 3:

Dit examen en het ander van 2006 hebben dezelfde lus. 1 is een PAg en 't ander een GAg.
Voor een oef zoals dit, wat is het verschil in aanpak tussen de 2? undecided
Bij GAg wordt er globale spronggeschiedenis bijgehouden. Bij deze oefening dus iets als:TTTNTTNNNTTTTNTTNNNT...
Bij PAg wordt er per sprongadres een geschiedenis bijgehouden. Bij deze oefening dus:
A: TNNTNNTNN...
B: TTTT...
C: TNTNTNTNTN...
D: NNNN....
E: TTTT...

en wordt met deze geschiedenissen de PHT geindexeerd. In deze oefening maakt het niet uit, want bij allebei hebben we 4 geschiedenisbits nodig (bij PAg is anders NTN niet te onderscheiden, bij GAg TTT niet)

Merci!!  embarassed
Logged
Tim
Global Moderator
postmonster
*****
Posts: 280



« Reply #51 on: January 20, 2008, 07:50:00 pm »

Vraag 2
als je de kost berekent: k voor predikaten en p.m+(1-p)(m+n+b) zonder
k<p.m+(1-p)(m+n+b)

Ik had p.m+(1-p)(n+b) < k

Waarom nog de extra m?

Hoe doe je dan het tweede stuk van de opgave?

omdat bij foute voorspelling met kans 1-p je zoiezo eerst m instructies zal uitvoeren om tot besluit te komen dat je fout bezig bent en dan b+n
Klopt dit wel?
Ik kom ook tot k<p.m+(1-p)(n+b).
Ik dacht dat b inclusief de verkeerd ingeladen instructies was. Het is ook niet zo dat wanneer ie verkeerd voorspelt die m instructies uitgevoerd worden, soms meer, andere keren maar een deel.

Iemand trouwens een oplossing voor (b)?
Ik bekom:
Indien max(m,n) = m => p=1 => komt eigenlijk neer op zekere sprong, dus stom te predikeren.
Indien max(m,n) = n => [tex]p \le \frac{b}{n-m+b}[/tex]
Maar totaal niet zeker over...
Logged
Greg
n00b
*
Posts: 27


« Reply #52 on: January 20, 2008, 07:53:30 pm »

Mijn oplossing voor vraag 6 (enkel cachetoegang):
cyclus 4: ld A
cyclus 5: ld E
cyclus 6: st D
cyclus 7: st A
cyclus 9: ld A

Er staat een andere oplossing op http://burgent.be/index.php?topic=168.15, maar die klopt volgens mij niet. Load D gaat daar naar de cache, terwijl de waarde van D vanaf store  D wordt geforward.

Load A wordt eerst speculatief uitgevoerd. In cyclus 6 komt Store A in Store Buffer, en wordt dus duidelijk dat Load A opnieuw moet worden uitgevoerd (4:39). Eerste load wordt genullifieerd, en in cyclus 7 komt Load A terug in Load RS. In cyclus 9 gaat hij dus naar het geheugen. Tegen dan is die store A geretired, dus forwardingmogelijkheden vanuit store buffer zijn er dan niet meer.

Kan het zijn dat die Store A al in cyclus 5 in de SB komt? Wordt ge-issued in cyclus 4 dus waarom zou die pas in cyclus 6 in de SB komen?
Voor de rest heb ik hetzelfde en komt mijn Ld A ook in cyclus 9 in het geheugen...
Logged
Meerske
n00b
*
Posts: 41


« Reply #53 on: January 20, 2008, 08:08:16 pm »

Mijn oplossing voor vraag 6 (enkel cachetoegang):
cyclus 4: ld A
cyclus 5: ld E
cyclus 6: st D
cyclus 7: st A
cyclus 9: ld A

Er staat een andere oplossing op http://burgent.be/index.php?topic=168.15, maar die klopt volgens mij niet. Load D gaat daar naar de cache, terwijl de waarde van D vanaf store  D wordt geforward.

Load A wordt eerst speculatief uitgevoerd. In cyclus 6 komt Store A in Store Buffer, en wordt dus duidelijk dat Load A opnieuw moet worden uitgevoerd (4:39). Eerste load wordt genullifieerd, en in cyclus 7 komt Load A terug in Load RS. In cyclus 9 gaat hij dus naar het geheugen. Tegen dan is die store A geretired, dus forwardingmogelijkheden vanuit store buffer zijn er dan niet meer.

Kan het zijn dat die Store A al in cyclus 5 in de SB komt? Wordt ge-issued in cyclus 4 dus waarom zou die pas in cyclus 6 in de SB komen?
Voor de rest heb ik hetzelfde en komt mijn Ld A ook in cyclus 9 in het geheugen...

yep, Store A in cyclus 5 in SB (en doet lookup naar die Load A die verkeerd is)... in cyclus 6 wordt Load A genullifieerd en in cyclus 7 komt Load A terug in RS...
(is waarschijnlijk een typ-foutje geweest van rob]
Logged
Tim
Global Moderator
postmonster
*****
Posts: 280



« Reply #54 on: January 20, 2008, 09:06:10 pm »

kan er me iemand zeggen of mijn register hernoeming in orde is bij vraag 5? (zelfs daar val ik soms over)

ld r3(A),f1
add r2,r3,f2
sub f2,r3,f3
mul f3,f2,f4
add f4,f1,f5
add f5,f2,f6

waardoor dus elke instructie RAW afhankelijk is van de vorige (vanaf instr 2)

Edit: hoe komt het dat je zegt dat de ADD die afhankelijk is van de MUL via F4 op hetzelfde moment in zijn EX zit als die MUL? In de oefeningen werd die altijd een stapje later gestart.
Vetgedrukt moet f3 zijn.

Waar haal je dat van die add en mul? Bij mij komt die add pas in de ex als de mul gedaan heeft. Zoals het hoort dacht ik?
Logged
bulbanos
nerd
**
Posts: 87


« Reply #55 on: January 20, 2008, 09:15:31 pm »

...
Vetgedrukt moet f3 zijn.

Waar haal je dat van die add en mul? Bij mij komt die add pas in de ex als de mul gedaan heeft. Zoals het hoort dacht ik?
Ja idd f3

ik meen dat van die add en mul begrepen te hebben uit Meerske zijn comment
« Last Edit: January 20, 2008, 09:17:03 pm by bulbanos » Logged
Greg
n00b
*
Posts: 27


« Reply #56 on: January 20, 2008, 09:17:38 pm »

Ja dacht ook dat hij het zo bedoelde.
Maar ik had het zoals Tim het zei. Add pas in de ex als mul gedaan is.
Aangezien we het zo in de les gedaan hebben zou ik het zo doen.  smiley
Logged
rob
n00b
*
Posts: 46


« Reply #57 on: January 20, 2008, 09:23:55 pm »

Mijn oplossing voor vraag 6 (enkel cachetoegang):
cyclus 4: ld A
cyclus 5: ld E
cyclus 6: st D
cyclus 7: st A
cyclus 9: ld A

Er staat een andere oplossing op http://burgent.be/index.php?topic=168.15, maar die klopt volgens mij niet. Load D gaat daar naar de cache, terwijl de waarde van D vanaf store  D wordt geforward.

Load A wordt eerst speculatief uitgevoerd. In cyclus 6 komt Store A in Store Buffer, en wordt dus duidelijk dat Load A opnieuw moet worden uitgevoerd (4:39). Eerste load wordt genullifieerd, en in cyclus 7 komt Load A terug in Load RS. In cyclus 9 gaat hij dus naar het geheugen. Tegen dan is die store A geretired, dus forwardingmogelijkheden vanuit store buffer zijn er dan niet meer.

Kan het zijn dat die Store A al in cyclus 5 in de SB komt? Wordt ge-issued in cyclus 4 dus waarom zou die pas in cyclus 6 in de SB komen?
Voor de rest heb ik hetzelfde en komt mijn Ld A ook in cyclus 9 in het geheugen...

yep, Store A in cyclus 5 in SB (en doet lookup naar die Load A die verkeerd is)... in cyclus 6 wordt Load A genullifieerd en in cyclus 7 komt Load A terug in RS...
(is waarschijnlijk een typ-foutje geweest van rob]

inderdaad typfout
Logged
Meerske
n00b
*
Posts: 41


« Reply #58 on: January 21, 2008, 01:33:43 am »

...
Vetgedrukt moet f3 zijn.

Waar haal je dat van die add en mul? Bij mij komt die add pas in de ex als de mul gedaan heeft. Zoals het hoort dacht ik?
Ja idd f3

ik meen dat van die add en mul begrepen te hebben uit Meerske zijn comment

volgens mij is mijn opmerking daar verkeerd wegens gewoon onmogelijk. Je gaat afhankelijke instructies tegelijkertijd uitvoeren.
Er staat dat het niet-blokkerende caches zijn, en heb de slides daar nog eens van bekeken. Volgens mij moet die load die een cache-miss heeft niet helemaal herstart worden. Vanaf het moment dat de data beschikbaar is kunnen de afhankelijke instructies van die load uitgevoerd worden. kga het morgen nog eens vlug die oefening herdoen om te zien of het lukt...
Logged
Brahiiim
n00b
*
Posts: 42


« Reply #59 on: January 21, 2008, 02:32:01 am »

VRAAG 1: bergis ik mij of is deze toestandstabel quasi gelijk aan de toestandstabel van MOESI? het lijkt me zo hard een instinker...alle de E toestand bestaat niet en wordt eigenlijk vervangen door de M toestand...that's it
Logged
Pages: 1 2 3 [4] 5
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.12 | SMF © 2006-2009, Simple Machines LLC Valid XHTML 1.0! Valid CSS!