# 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 (含) 以上