gem5記憶體對映原始碼

2021-08-30 13:39:57 字數 597 閱讀 8564

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設定頁大小;pageptr
gem5 一)配置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 等依賴軟體。在安裝時出現了部分包無法識別的問題,我更新了中科大源並且 第二天 重新嘗試,沒有...