1 / 8

Pipeline - problema

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 ?

tyra
Download Presentation

Pipeline - problema

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Pipeline - problema Lab. FICAn03.Sapt04

  2. 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? • 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 • Î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? • 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 • Î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

  3. loop: LD F4, 4(R2) ADDD F2, F4, F2 LD F6, 4(R3) LD F8, 0(R4) DADDUI R2, R2, #16 MULD F6,F6,F2 ADDD F8, F8, F2 DADDUI R3, R3, #16 XOR R7,R8,R9 DSUBUI R4, R4, #16 SD F2, -4(R2) DSUBU R5, R4, R2 DSUBU R6, R3, R2 BNEZ R5, loop F4  Mem [R2 + 4] F2 F4 + F2 F6  Mem [R3 + 4] F8  Mem [R4] R2 R2 + 16 F6 F6 * F2 F8 F8 + F2 R3 R3 + 16 R7 R8 xor R9 R4 R4 -16 Mem[R2 - 4]  F2 R5  R4 - R2 R6  R3 - R2 If R5 ≠ 0 go Codul:

  4. Conditie de terminare bucla: R5 final = 0 La fiecare iteratie R5 = 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 Subpunctul a F4  Mem [R2 + 4] F2 F4 + F2 F6  Mem [R3 + 4] F8  Mem [R4] R2 R2 + 16 F6 F6 * F2 F8 F8 + F2 R3 R3 + 16 R7 R8 xor R9 R4 R4 -16 Mem[R2 - 4]  F2 R5  R4 - R2 R6  R3 - R2 If R5 ≠ 0 repeat loop

  5. Subpunctul b

  6. Sunpunctul c • Nr bucle * 23 + 2 = 11*23 +2 = 255 cc

  7. Subpunctul d

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

More Related