原创 簡單修改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說明