Try   HackMD

2018q3 第 9 週測驗題 (下)

測驗 1

考慮以下 Y86_64 組合語言程式:

mrmovq (%rax), %rcx
addq %rcx, %rax
irmovq $0x1234, %rsp
popq %rcx
ret

在 5-cycle pipeline 處理器上執行這個程式,在最少的 stall 狀況下,哪些數值會被 forwarding 呢?挑選出所有可能數值列表

V1: %rcx from mrmovq to addq
V2: %rax from mrmovq to addq
V3: %rcx from mrmovq to popq
V4: %rsp from irmovq to popq
V5: %rax from addq to ret
V6: %rsp from popq to ret

作答區

A1 = ?

  • (a) V1, V2, V3
  • (b) V2, V3, V4
  • (c) V2, V4, V6
  • (d) V1, V3, V5
  • (e) V1, V4, V6
  • (f) V3, V4, V5
  • (g) V4, V5, V6

測驗 2

承上,在 3-stage pipeline 處理器上 (fetch + decode, execute, memory + writeback) 執行程式,stall 需要佔用到幾個 cycle 呢?

提示:考慮到 forwarding 與否

作答區

A2 = ?

  • (a) 0
  • (b) 1
  • (c) 2
  • (d) 3
  • (e) 4
  • (f) 0 或 4 (含) 以上