# 2018q3 第 9 週測驗題 (下) ### 測驗 `1` 考慮以下 Y86_64 組合語言程式: ``` mrmovq (%rax), %rcx addq %rcx, %rax irmovq $0x1234, %rsp popq %rcx ret ``` 在 5-cycle pipeline 處理器上執行這個程式,在最少的 stall 狀況下,哪些數值會被 [forwarding](http://web.cs.iastate.edu/~prabhu/Tutorial/PIPELINE/forward.html) 呢?挑選出所有可能數值列表 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 (含) 以上