【香山雙週報】20220228期
歡迎來到我們的雙週報專欄。本次是香山雙週報專欄的第十期,我們將透過這一專欄,定期介紹香山的開源進展,希望與大家共同學習,一起進步。歡迎大家透過公眾號後臺留言的方式與我們交流!
前端
BPU 部分:
減少 GHR buffer 到滿足需求的長度
修復 FTB 替換演算法的兩個效能 bug
恢復 BPU 控制訊號的功能(可以在執行時透過改變 CSR 的值控制 BPU 的功能)
FTQ 部分:
在給 IFU 發請求的前一拍讀對應 FTQ 項的 fetch status(比原來早一拍)
把後端與誤預測和 load replay 相關的路徑上,計算 pc 和 target 的邏輯放到 FTQ 中,避免不必要的線延遲
ICache 部分:
鎖存了 ITLB 的 miss 請求避免從 FTQ req 到 miss 再到 FTQ ready 的長路徑。
ITLB 的 requesetor 埠增加到 6 個(4 個給 ICacheMainPipe,1個給 IFU,1 個給 IPrefetch),減少查詢埠競爭帶來的時序問題。
修復了 prefetch ID 的位寬問題。
後端
將 store data 的浮點資料讀推遲一拍進行。由於浮點物理暫存器堆與 store data 保留站距離過遠,我們根據物理設計結果相應地調整了前端程式碼的實現
為 store data 保留站的時序考慮,將浮點 busyTable 複製了一份。目前有兩份浮點的 busyTable,分別被 store data 和浮點運算部件使用
訪存子系統
修正了 ld-ld 違例檢查的問題
調整了 dcache tag error 相關的邏輯以最佳化時序
HuanCun 子模組
修復了一個執行Debian模擬測試時發現的bug:
L2 因 A 通道請求而向上 Probe toB 時,L1D 有可能會發回 ProbeAck BtoN(與一個 Release 合併了),此時 L2 需要根據 ProbeAck 的 param 來決定如何寫 Clients dir。
SoC
由於時序問題,在L1->L2的路徑上增加了一級buffer。
香山第一版(雁棲湖)晶片已
經在農曆新年前回來,並在寒假期間成功點亮並
正確執行Linux/Debian作業系統
,目前在除錯板卡上
正確支援SD卡、乙太網等外設
。在
使用DDR4-1600的情況下SPEC CPU2006實測評分超過7分@1GHz
,更細緻的DDR與CPU效能調優(主要是CPU/DDR在更高頻率下的穩定性驗證)正在進行中。我們會在有更新結果時及時與大家分享,歡迎關注!
下面是包雲崗老師針對香山晶片除錯過程的一個分享:
香山晶片除錯目標完成,直播完畢 - 知乎 (zhihu。com)
香山開源處理器正在火熱地開發中,我們將透過香山雙週報專欄定期地同步我們的開源進展。感謝您的關注,歡迎在後臺留言與我們交流!
編輯:徐易難 勾凌睿 金越 王華強 王凱帆 藺嘉煒 張紫飛