超标量处理器的分支预测
參考《超標量處理器設計》
超標量處理器根據去指令的地址,從I-Cache中取出多條指令,這些指令組成指令組(fetch group),處理器根據指令組中指令的個數,調整取指令的地址,進行下個周期的取指令。
超標量處理器中的取指令的地址不連續,每次增加的值等于指令組的字長,所以如果使用取指令的地址進行分支預測,就只對指令組的第一條指令進行了分支預測。
BTB需要幾下分支指令在四條指令中的位置(4way超標量處理器)
當前周期取出的質量不包括分支指令,BTB記錄下01即分支指令的偏移值,若四字對齊的四條指令中存在多于一條的分支指令,它們會互相干擾。
上述局限于指令出現在四字對齊的邊界內,如果可以對一個周期的所有指令做分支預測,情況如下
這種情況BTB需要四個讀端口,硬件利用效率低,不采用上述方法。
1.目標地址預測
對于RISC指令集,可以在取指階段馬上進行目標地址的計算不必進行目標地址的預測,需要在I-Cache取出時馬上識別出分支指令,可以在進入I-Cache之前進行預解碼,如果遇到間接跳轉的指令,此時無法對目標地址進行預測。
2.分支方向預測
基于局部歷史的分支預測,需要PHT和BHT支持多端口,可以通過交疊的方式模擬多端口
基于全局歷史的分支預測,考慮多條指令的GHR不一樣,所以不能簡單的模擬。
3.交疊
使用但端口存儲器模擬多端口的結構
?若尋址PHT的地址由哈希運算產生,要保證每周期尋址PHT的四個地址落在不同的bank上,否則會產生bank沖突。
可以將每條指令PC值的[3:2](PC需要字對齊)作為尋址的低位部分,這樣可以保證四個地址尋址到四個不同的bank。
交疊的優點:避免真正使用多端口存儲器而對芯片面積、功耗和延遲造成負面的影響。
大部分多端口功能部件如ROB、發射隊列(Issue Queue)和指令緩存(Instruction Buffer)等部件。
?
?
總結
以上是生活随笔為你收集整理的超标量处理器的分支预测的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 什么是PY平台?Python平台用途及安
- 下一篇: fckeditor for java_配