10 svar
107 visningar
Plugghingsten behöver inte mer hjälp
Plugghingsten 321
Postad: 16 jan 2019 14:47

Pipelining med direkt adressering

Jag förstår (a) men undrar över (b):

I.o.m. "direkt adressering" så skulle adressen till operanden ligga i instruktionen (vet dock inte om det är nödvändigt att påpeka det). Själva instruktionen skulle se ut på följande vis

ADD          A, B                              //AA+B

och skulle ta 1+1+1+1=4 ns

När jag kikar på facit läser jag

"Instruktionen skulle ta följande tid: 100 ns för att läsa in A, 100 ns för att läsa B, 1
ns för att beräkna additionen, och 100 ns för att skriva resultatet till minnet. Total
tid: 100+100+1+100=301 ns.".

Måste det inte vara flera instrukioner då? 

Laguna Online 30484
Postad: 16 jan 2019 14:59

Jag blir alltid skeptisk till kvaliteten på frågor i böcker när det är stavfel i dem: "komiplator".

Det är ovanligt att en instruktion innehåller adresser till flera operander på en gång. Jag skulle tro att

ADD R1,C

vore en möjlig instruktion. Men jag är inte bekant med de senaste arkitekturerna (däremot allt mellan 1980 och 2000). Jag måste läsa på hur ARM fungerar.

Även då måste man ju ladda värdet, så bara 4 ns kan det inte bli, såvida det inte rör sig om att B och C är konstanter, som kompilatorn har placerat i minnet i det första fallet. Men det brukar kallas "immediate", inte "direct addressing". Men jag kanske behöver fräscha upp min kunskap om terminologin också.

Men det var din fundering, antar jag. Det som facit säger verkar rätt. De har bytt ut

LOAD R2,C

ADD R1, R2

mot

ADD R1,C

Plugghingsten 321
Postad: 16 jan 2019 15:11

Men då jämför jag med uppgift (a):

Här är flera instruktioner och om nu de bara har bytt ut till ADD R1, C istället så tycker jag inte att det gör att hela blir en instruktion. Det står tydligt att det är fyra instruktioner på (a).

Laguna Online 30484
Postad: 16 jan 2019 15:15
Plugghingsten skrev:

Men då jämför jag med uppgift (a):

Här är flera instruktioner och om nu de bara har bytt ut till ADD R1, C istället så tycker jag inte att det gör att hela blir en instruktion. Det står tydligt att det är fyra instruktioner på (a).

Ordet "instruktionen" antyder förstås att det bara blir en instruktion, och det struntade jag i. Om vi inte struntar i det så måste alla adresser stå i instruktionen, t.ex.

ADD A,B,C

och sådana instruktioner har nog funnits i äldre arkitekturer (nu måste jag läsa på om x86 också). Det måste vara det de menar. Visar facit inte hur instruktionen ser ut? (C kan ju vara först lika gärna, det beror på hur man har valt att konstruera assemblern.)

Laguna Online 30484
Postad: 16 jan 2019 15:21

 Ju mer jag googlar på "direct addressing", desto mer förvirrad blir jag. Vad säger din lärobok att det betyder?

Plugghingsten 321
Postad: 16 jan 2019 15:32 Redigerad: 16 jan 2019 15:35

Men jag förstår inte hur allt sker i en och samma intruktion (viktigt då det står i uppgiften "direkt adressering" vilket betyder allt i en instruktion.

 

Det som står i föreläsningarna är kort:

"Direkt adressering
ADD R1,x //R1 <- R1+[x] Adressen till operanden ligger i
instruktionen. (på adress x finns värdet som adderas)"

Laguna Online 30484
Postad: 16 jan 2019 15:38

Instruktionerna i en CISC-dator (complex instruction set computer) är ofta själva implementerade med en enklare sorts instruktioner som kallas mikrokod. Mikrokoden för ADD A,B,C ser antagligen ut ungefär som de enkla instruktionerna i början, men kanske också med inlagda pauser för att data ska hinna komma till registren, och med minnesinstruktionerna uppdelade i en som hämtar adressen och en annan som hämtar indirekt via den hämtade adressen. RISC-datorer (reduced instruction set computer) har oftast ingen mikrokod, utan det är instruktionerna själva som är det lägsta lagret, och är så enkla att de kan göras i en processorcykel (plus väntetid för minnesaccesser).

Svarade jag på nånting du frågade om?

Plugghingsten 321
Postad: 16 jan 2019 15:45

Det blev nu lite tydligare, tack!. Koordinerade mig lite bättre i föreläsningarna men tråkigt att man behöver googla upp så mycket.

Plugghingsten 321
Postad: 16 jan 2019 18:08

Det här då!

Jag tolkar det nu som om det måste finnas åtminstone två instruktioner. Tolkar jag det fel?

Laguna Online 30484
Postad: 16 jan 2019 19:00
Plugghingsten skrev:

Det här då!

Jag tolkar det nu som om det måste finnas åtminstone två instruktioner. Tolkar jag det fel?

Ja, rentav fyra. Det ser ut som i första exemplet då.

Plugghingsten 321
Postad: 16 jan 2019 19:45 Redigerad: 16 jan 2019 20:10

                                   

Svara
Close