pipeline - problema

8
Pipeline - problema Lab. FIC An03.Sapt04

Upload: tyra

Post on 10-Jan-2016

21 views

Category:

Documents


0 download

DESCRIPTION

Pipeline - problema. Lab. FIC An03.Sapt04. Text problema. Se da urm ătorul cod scris in limbaj de asamblare MIPS . Ştiind că iniţial: R4 = R2 +352 Se cere: De căte ori se efectuează bucla ? - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Pipeline - problema

Pipeline - problema

Lab. FICAn03.Sapt04

Page 2: Pipeline - problema

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

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

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

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

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

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

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