原创 簡單修改gem5的默認例子hello world
陸續寫些關於新書《自己動手寫CPU》的博客,本篇主要是講解簡單修改gem5的默認例子hello world gem5默認的例子是hello world,在tests/test-progs/hello/src文件夾下,內容如下: #inc
原创 Chisel實驗筆記(三)
在《Chisel實驗筆記(一)》中我們得到了verilog文件,在《Chisel實驗筆記(二)》中我們使用Icarus Verilog、GtkWave對的道德verilog文件進行了仿真測試,實際上,時歐諾個Chisel可以得到對應的C+
原创 使用llcbench分析幾款處理器的cache性能
陸續寫些關於新書《自己動手寫CPU》的博客,本篇主要是講解如何使用llcbench測試幾款處理器的緩存性能。 使用llcbench測試三款處理器的緩存性能,測試平臺如下: (1)平臺一 處理器:Pentium(R) Dual-Core
原创 自己動手寫CPU之第九階段(8)——MIPS32中的LL、SC指令說明
將陸續上傳新書《自己動手寫CPU》,今天是第47篇。 9.7 ll、sc指令實現思路 9.7.1 實現思路 這2條指令都涉及到訪問鏈接狀態位LLbit,可以將LLbit當做寄存器處理,ll指令需要寫該寄存器,sc指令需要
原创 gem5的安裝與使用
陸續寫些關於新書《自己動手寫CPU》的博客,本篇主要是講解gem5的安裝與簡單使用。 gem5是什麼?外事不決問谷歌,內事不決問百度。有很多這方面的資料,小生就不重複了。簡單列舉如下: The gem5 simu
原创 自己動手寫CPU之第九階段(5)——實現加載存儲指令4(修改OpenMIPS頂層模塊)
將陸續上傳新書《自己動手寫CPU》,今天是第44篇。 這幾天事情多,好久沒更新了 9.3.4 修改OpenMIPS頂層模塊 由於部分模塊增加了接口,所以需要修改頂層模塊OpenMIPS,以將新的接口連接起來。同時,從圖9
原创 自己動手寫CPU之第九階段(9)——修改OpenMIPS以實現ll、sc指令
將陸續上傳新書《自己動手寫CPU》,今天是第48篇。 9.8 修改OpenMIPS以實現ll、sc指令 9.8.1 LLbit寄存器的實現 LLbit寄存器在LLbit模塊中實現,模塊接口如圖9-30所示,各接口描述如表
原创 gem5驗證cache的不同映像方式對cache命中率的影響
陸續寫些關於新書《自己動手寫CPU》的博客,本篇主要是講解 gem5驗證cache的不同映像方式對cache命中率的影響。 cache的基本在http://blog.csdn.net/leishangwen/article/detail
原创 自己動手寫CPU之第九階段(6)——修改最小SOPC
將陸續上傳新書《自己動手寫CPU》,今天是第45篇。 這幾天事情多,好久沒更新了 前幾篇實現了加載存儲指令,今天將修改最小SOPC,用以測試加載存儲指令是否實現正確。閒話少說,進入正題。 9.4 修改最小SOPC
原创 gem5驗證數組的緩存優化
陸續寫些關於新書《自己動手寫CPU》的博客,本篇主要是講解 gem5驗證數組的緩存優化 軟件優化是提高cache命中率的十分有效的手段,cache的基本原理是利用程序局部性,而軟件優化可以通過提高程序局部性,從而提高cache命中率。舉
原创 使用llcbench測試緩存性能
陸續寫些關於新書《自己動手寫CPU》的博客,本篇主要是講解如何使用llcbench測試緩存性能。 LLCbench (底層表徵基準測試 Low-Level Characterization Benchmarks) 是一個基準測試工具,集
原创 Chisel實驗筆記(一)
最近在學習Risc-v,其中伯克利大學開源了一款兼容Risc-v指令集的處理器Rocket,而Rocket處理器是採用Chisel編寫的,所以要學習Chisel,Chisel的簡單介紹如下: Chisel (Constructing Ha
原创 Chisel實驗筆記(二)
在上一篇《Chisel實驗筆記(一)》中,我們的到了對應的verilog文件,本文將採用Icarus Verilog + GtkWave進行仿真驗證。 實驗平臺還是Ubuntu14.04(64位) 1、安裝Icarus Verilog-0
原创 gem5全系統模擬
陸續寫些關於新書《自己動手寫CPU》的博客,本篇主要是講解 gem5運行全系統模擬 使用gem5可以啓動Linux內核,稱爲全系統模擬,啓動之後,可以通過telent連接,進行訪問,但四telent有時不穩定,gem5推薦使用m5ter
原创 自己動手寫CPU之第九階段(7)——MIPS32中的LL、SC指令說明
將陸續上傳新書《自己動手寫CPU》,今天是第46篇。 在MIPS32指令集中有兩條特殊的存儲加載指令:鏈接加載指令LL、條件存儲指令SC,本次將介紹這兩條指令,在後續將實現這兩條指令。 9.6 鏈接加載指令ll、條件存儲指令sc說明