Computer Architecture- 為什麼不把pipeline加深, 為什麼不用多個issue的Super Scalar?

ss
Apr 25, 2022

--

參考以下這篇

如果說五階的pipeline可以增加though put, 為什麼不加深pipeline的長度, 若4-issue的super scalar可以增加效能, 為什麼不加到8-issue? 例如 50階的pipeline 和 20-issue的super scalar

我們參考下面這段指令

a = b * c;
d = a + 1;

可以看到有一個dependence, 這在computer裡是一個非常嚴重的問題, 因為processer並不能平行處理這段

當然學過CA得我們知道我們可以利用bypass來幫助解決這個問題, 但假設以乘法來說, 他可能會用上好幾個cycle去計算, 所以我們只能加上stall來等待他, 通常又稱為 bubble

當一個instruction到了execute stage, 直到下一個instruction可以執行execute stage, 這個時間差我們稱為latency(這個定義比較特別, 實際上已硬體工程師來說不會這樣寫, 詳細可以參考附件文章), 若是越深的pipeline, 可能會導致這個latency變得更差,

所以加深pipeline並不會讓增加效能, 只要一個dependence有可能會導致所有instruction 都得填上bubble

對編譯器來說, 一個整數的運算大概需要1cycle, 而一個浮點數的運算大概需要3–6 cycle

除了浮點數運算, 還有memory load的問題, 我們很難去預測他的時間, 因為memory有cache hit跟 miss的問題(在其他筆記會紀錄)

Unlisted

--

--

ss
ss

No responses yet