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?