1 svar
125 visningar
Plugghingsten behöver inte mer hjälp
Plugghingsten 321
Postad: 10 aug 2019 22:53

Assemblyprogram

"En programmerare har skrivit koden A = B+C och med hjälp av en kompilator har följande Assemblerinstruktioner genererats...

LOAD          R1, B                                    //R1←B

LOAD          R2, C                                    //R2←C

ADD            R1, R2                                  //R1←R1+R2

STORE        A, R1                                    //A←R1

...där A, B och C är minnesplatser för lagring av A, B och C.

För Assemblerprogrammet ovan, beräkna exekveringstid om exekveringen görs på en icke-pipelinad processor där minnesläsning/-skrivning tar 100 ns, registerläsning/-skrivning tar 1 ns och ALU-operationer tar 1 ns.

 

Min lösning:

Jag har länge suttit med denna uppgift och inte riktigt fått grepp på det. Svaret jag har fått fram ovan är rätt men är det rätt tänkt av mig?  Jag vet att det kan vara en del att titta på men hoppas att där finns någon som orkar denna helg.

Affe Jkpg 6630
Postad: 11 aug 2019 10:52

Uppgiften är obegripligt akademiskt formulerad. I verkligheten räknar man typiskt klock-cykler för varje instruktion och antalet cykler är typiskt tabellerad som t.ex.:

https://www.agner.org/optimize/instruction_tables.pdf

I t.ex. denna länk definieras sedan typiskt fem steg för att exekvera en assembler-kodad rad.

https://en.wikipedia.org/wiki/Cycles_per_instruction

Uppgiften tycks t.ex. förbise att instruktionen ska läsas...från var då...externt minne?

Relationen 100ns / 1 ns är orimlig.

Svara
Close