gem5 se模式中,進行物理記憶體分配的時候,實現了簡單的虛擬位址到物理位址對映機制
在src/mem/page_table.cc中是具體的函式
在src/sim/process.cc中呼叫page_table.cc中的map函式新增實體地址到虛擬位址的對映;
process::allocatemem(addr vaddr, int64_t size, bool clobber)
實際的實體地址分配函式為allocphyspages,在src/sim/system.cc中
system::allocphyspages(int npages)
if ((pageptr << pageshift) > physmem.totalsize())
fatal("out of memory, please increase size of physical memory.");
return return_addr;
}
其中pageshift設定頁大小;pageptrgem5 一)配置Gem5執行環境
系統環境 ubuntu 18.04 1.安裝相關的依賴庫 通過命令sudo apt install 安裝下列的依賴庫 git,build essential,scons,python dev,swig,libprotobuf dev,python protobuf,protobuf compiler...
如何除錯gem5
printf 是很好的工具,同時gem5在自己 裡面就有很多已經做好的輸出資訊,可以通過flag制定來選擇。輸出flags fetch,decode,ethernet,exec,tlb,dma,bus,cache,loader,o3cpuall,要想知道所有的flags,執行的時候加上 debug ...
小白的Gem5安裝
查閱了很多部落格教程,我的安裝過程主要分為三步 安裝依賴軟體 編譯執行 為簡化,直接可以參考我瀏覽的部落格 傳送門 需要安裝g python scons 用於編譯 swig,zlib m4 protobuf 等依賴軟體。在安裝時出現了部分包無法識別的問題,我更新了中科大源並且 第二天 重新嘗試,沒有...