pipeline - problema lab. fic an03.sapt04. 2/8 text problema se da următorul cod scris in limbaj de...

8
Pipeline - problema Lab. FIC An03.Sapt04

Upload: cade-winget

Post on 14-Dec-2015

226 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Pipeline - problema Lab. FIC An03.Sapt04. 2/8 Text problema Se da următorul cod scris in limbaj de asamblare MIPS. Ştiind că iniţial: R4 = R2 +352 Se

Pipeline - problema

Lab. FICAn03.Sapt04

Page 2: Pipeline - problema Lab. FIC An03.Sapt04. 2/8 Text problema Se da următorul cod scris in limbaj de asamblare MIPS. Ştiind că iniţial: R4 = R2 +352 Se

2/8

Text problemaSe da următorul cod scris in limbaj de asamblare MIPS. Ştiind că iniţial:

R4 = R2 +352 Se cere:a) De căte ori se efectuează bucla?b) Presupunând că nu avem forwarding, nici bypassing, doar artificiul cu

tactul; iar branch-urile sunt tratate în maniera freeze flush, arătaţi funcţionarea buclei în pipeline

c) În cazul anterior câte impulsuri de tact trec de la iniţierea buclei până la terminarea ultimei instrucţiuni din ultima repetiţie a buclei?

d) Presupunând că avem forwarding, bypassing şi artificiul cu tactul; iar branch-urile sunt tratate în maniera predict as taken, arătaţi funcţionarea buclei în pipeline

e) În cazul anterior câte impulsuri de tact trec de la iniţierea buclei până la terminarea ultimei instrucţiuni din ultima repetiţie a buclei?

Punctaj: a – 0.5 b – 1.75 (din care branch:0.5) c – 0.25 d – 1.75 (din care branch:0.5) e – 0.25

Page 3: Pipeline - problema Lab. FIC An03.Sapt04. 2/8 Text problema Se da următorul cod scris in limbaj de asamblare MIPS. Ştiind că iniţial: R4 = R2 +352 Se

3/8

Codul:

loop: LD F4, 4(R2)ADDD F2, F4, F2LD F6, 4(R3)LD F8, 0(R4)DADDUI R2, R2, #16MULD F6,F6,F2ADDD F8, F8, F2DADDUI R3, R3, #16XOR R7,R8,R9DSUBUI R4, R4, #16SD F2, -4(R2)DSUBU R5, R4, R2DSUBU R6, R3, R2BNEZ R5, loop

F4 Mem [R2 + 4]F2 F4 + F2F6 Mem [R3 + 4]F8 Mem [R4]R2 R2 + 16F6 F6 * F2F8 F8 + F2R3 R3 + 16R7 R8 xor R9R4 R4 -16Mem[R2 - 4] F2R5 R4 - R2R6 R3 - R2If R5 ≠ 0 go

Page 4: Pipeline - problema Lab. FIC An03.Sapt04. 2/8 Text problema Se da următorul cod scris in limbaj de asamblare MIPS. Ştiind că iniţial: R4 = R2 +352 Se

4/8

Subpunctul a

• Conditie de terminare bucla:R5 final = 0

• La fiecare iteratieR5 = R4 – R2

R4 = R4anterior -16

R2 = R2anterior +16

=>R4 – R2 = R4anterior -16 – (R2anterior +16) R4 – R2 = R4anterior – R2anterior – 32

=>R5 = R5anterior - 32

• Din enunt se stie ca:R4initial = R2initial + 352 R4initial - R2initial = 352

F4 Mem [R2 + 4]F2 F4 + F2F6 Mem [R3 + 4]F8 Mem [R4]R2 R2 + 16F6 F6 * F2F8 F8 + F2R3 R3 + 16R7 R8 xor R9R4 R4 -16Mem[R2 - 4] F2R5 R4 - R2R6 R3 - R2If R5 ≠ 0 repeat loop

Page 5: Pipeline - problema Lab. FIC An03.Sapt04. 2/8 Text problema Se da următorul cod scris in limbaj de asamblare MIPS. Ştiind că iniţial: R4 = R2 +352 Se

5/8

Subpunctul b

instruction

Clock cycles

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25loop: LD F4, 4(R2) IF ID EX ME WBADDD F2, F4, F2 IF IF IF ID A1 A2 A3 A4 ME WBLD F6, 4(R3) IF ID EX ME WBLD F8, 0(R4) IF ID EX ME WBDADDUI R2, R2, #16 IF ID EX EX ME WBMULD F6,F6,F2 IF IF IF ID M1 M2 M3 M4 M5 M6 M7 ME WBADDD F8, F8, F2 IF ID A1 A2 A3 A4 ME WBDADDUI R3, R3, #16 IF ID EX ME WBXOR R7,R8,R9 IF ID EX ME WBDSUBUI R4, R4, #16 IF ID EX EX ME WBSD F2, -4(R2) IF ID ID EX EX ME WBDSUBU R5, R4, R2 IF IF IF ID EX ME WBDSUBU R6, R3, R2 IF ID EX ME WBBNEZ R5, loop IF IF ID EX ME WB

IF next …

Page 6: Pipeline - problema Lab. FIC An03.Sapt04. 2/8 Text problema Se da următorul cod scris in limbaj de asamblare MIPS. Ştiind că iniţial: R4 = R2 +352 Se

6/8

Sunpunctul c

• Nr bucle * 23 + 2 = 11*23 +2 = 255 cc

instruction

Clock cycles

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25loop: LD F4, 4(R2) IF ID EX ME WBADDD F2, F4, F2 IF IF IF ID A1 A2 A3 A4 ME WBLD F6, 4(R3) IF ID EX ME WBLD F8, 0(R4) IF ID EX ME WBDADDUI R2, R2, #16 IF ID EX EX ME WBMULD F6,F6,F2 IF IF IF ID M1 M2 M3 M4 M5 M6 M7 ME WBADDD F8, F8, F2 IF ID A1 A2 A3 A4 ME WBDADDUI R3, R3, #16 IF ID EX ME WBXOR R7,R8,R9 IF ID EX ME WBDSUBUI R4, R4, #16 IF ID EX EX ME WBSD F2, -4(R2) IF ID ID EX EX ME WBDSUBU R5, R4, R2 IF IF IF ID EX ME WBDSUBU R6, R3, R2 IF ID EX ME WBBNEZ R5, loop IF IF ID EX ME WB

IF next …

Page 7: Pipeline - problema Lab. FIC An03.Sapt04. 2/8 Text problema Se da următorul cod scris in limbaj de asamblare MIPS. Ştiind că iniţial: R4 = R2 +352 Se

7/8

Subpunctul d

instruction

Clock cycles

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

loop: LD F4, 4(R2)

IF ID EX ME WB

ADDD F2, F4, F2

IF ID ID A1 A2 A3 A4 ME WB

LD F6, 4(R3)

IF IF ID EX ME WB

LD F8, 0(R4)

IF ID EX ME WB

DADDUI R2, R2, #16

IF ID EX EX ME WB

MULD F6,F6,F2

IF ID M1 M2 M3 M4 M5 M6 M7 ME WB

ADDD F8, F8, F2

IF ID A1 A2 A3 A4 ME WB

DADDUI R3, R3, #16

IF ID EX ME WB

XOR R7,R8,R9

IF ID EX ME WB

DSUBUI R4, R4, #16

IF ID EX EX ME WB

SD F2, -4(R2)

IF ID ID EX ME WB

DSUBU R5, R4, R2

IF IF ID EX ME WB

DSUBU R6, R3, R2

IF ID EX ME WB

BNEZ R5, loop

IF ID EX ME WB

IFLD IF IDLD … If taken

IFnext … If not taken

Page 8: Pipeline - problema Lab. FIC An03.Sapt04. 2/8 Text problema Se da următorul cod scris in limbaj de asamblare MIPS. Ştiind că iniţial: R4 = R2 +352 Se

8/8

Subpunctul e: nr bucle*17+3=190cc

instruction

Clock cycles

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

loop: LD F4, 4(R2)

IF ID EX ME WB

ADDD F2, F4, F2

IF ID ID A1 A2 A3 A4 ME WB

LD F6, 4(R3)

IF IF ID EX ME WB

LD F8, 0(R4)

IF ID EX ME WB

DADDUI R2, R2, #16

IF ID EX EX ME WB

MULD F6,F6,F2

IF ID M1 M2 M3 M4 M5 M6 M7 ME WB

ADDD F8, F8, F2

IF ID A1 A2 A3 A4 ME WB

DADDUI R3, R3, #16

IF ID EX ME WB

XOR R7,R8,R9

IF ID EX ME WB

DSUBUI R4, R4, #16

IF ID EX EX ME WB

SD F2, -4(R2)

IF ID ID EX ME WB

DSUBU R5, R4, R2

IF IF ID EX ME WB

DSUBU R6, R3, R2

IF ID EX ME WB

BNEZ R5, loop

IF ID EX ME WB

IFLD IF IDLD … If taken

IFnext … If not taken