Vinnaren i pepparkakshustävlingen!
2023-02-15, 23:47
  #1
Medlem
EmAdelMans avatar
Hur lång tid i klockcykler tar exekvering av programmet nedan i en processor utan pipelining:

ADD R1, R2, R3
MUL R3, R2, A
SUB R2, C, R2
ADD R4, R5, B

Givet är att det tar följande antal klockcykler för:
access (läsa eller skriva) till minne tar 8 klockcykler,
access (läsa eller skriva) till register tar 2 klockcykler, och
avkodning och beräkning tar 8 klockcykler per instruktion.

Så här fungerar instruktionerna:
ADD Rx, Ry, Rz betyder Rx=Ry+Rz, där Rx, Ry och Rz är register
ADD Rx, Ry, Z betyder Rx=Ry+Z, där Rx, Ry är register och Z är en minnesplats

Känns som det borde vara 56... Alltså:
2 att läsa R2, 2 att läsa R3, 2 att addera R2 och R3, 2 att skriva till R1. 8

2 att läsa R2, 8 att läsa A, 8 att multiplicera R2 & A, 2 att skriva till R3. 20

8 att läsa C, 2 att läsa R2, 2 att subtrahera C från R2, 2 att skriva till R2. 14

2 att läsa R5, 8 att läsa B, 2 att addera R5 & B, 2 att skriva till R4. 14

8 + 20 + 14 + 14 = 56.
Är det rätt eller?
Citera
2023-02-16, 02:22
  #2
Medlem
Vilken tidsstudie.
Citera

Stöd Flashback

Flashback finansieras genom donationer från våra medlemmar och besökare. Det är med hjälp av dig vi kan fortsätta erbjuda en fri samhällsdebatt. Tack för ditt stöd!

Stöd Flashback