iT邦幫忙

2026 iThome 鐵人賽

DAY 16
0

應徵前端設計師的時候
面試官問:會寫 html、JS 嗎
猴子答:不會,但是我會 CPU 前端
...

在進階的 OOO CPU 設計中
常常會分成前端和後端來討論
原因是前端和後端的 throughput 會不一樣
後端運算多的時候,前端可以繼續 fetch/decode
前端在做 branch redirect 的時候,後端也可以繼續執行沒被 flush 的指令
但是對於到底要切在哪裡的定義比較模糊
大家只要記得這是要解決兩邊負載不一定一致的問題就好了

另外除了 fetch/decode 這兩個部分之外
frontend 還需要考慮 branch prediction 相關的問題
但這些在目前的 pipeline 都被簡化掉了
(目前連 branch 都沒有,不然還能討論 branch target 在哪計算之類的問題)
單純考慮 fetch/decode 的部分就好

回到昨天的問題
為什麼下面這段指令沒有因為 dual issue 同時執行最前面兩道 addi 呢?
難道 D13/D14 看到的效能改進都是騙人的嗎?

addi x1,x0,6;
addi x2,x0,7;
add x3,x1,x2;
mul x4,x1,x2;
add x5,x3,x4

原因就是這個版本在 frontend 的部分是 single fetch
也就是說,就算前兩道指令沒有 dependency
在這種情況下也沒辦法展現效能提升

問題是找到了,要不要改呢....
先維持系統單純,之後有需要再加吧!


上一篇
Data Pipeline 做完了! ...嗎?
下一篇
Dual Issue In Order CPU Instruction Issue
系列文
猴子都寫得出來的 RISC-V OoO CPU 共 17 篇
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言