gem5模擬器快速入門 四 (參考官方文件)

2021-10-09 09:40:00 字數 2755 閱讀 8616

gem5附帶了許多配置指令碼,可讓您非常快速地使用gem5。但是,在使用gem5進行計算機體系結構研究時,充分了解要模擬的系統也很重要。

我們可以在configs/中找到gem5的所有配置檔案。簡要說明如下:

資料夾作用

boot/

這些是在 full-system 模式下使用的rcs檔案。 這些檔案在linux啟動後由模擬器載入,並由shell執行。

common/

該目錄包含許多用於建立模擬系統的幫助程式指令碼和函式。options.py包含可以在命令列上設定的各種選項。像cpu的數量,系統時鐘等等。這是檢視是否要更改的選項是否已經包含命令列引數的好地方。cacheconfig.py包含用於設定經典記憶體系統的快取引數的選項和功能。memconfig.py提供了一些用於設定記憶體系統的幫助程式功能。fsconfig.py包含為許多不同型別的系統設定全系統**所需的功能。simulation.py包含許多用於設定和執行gem5的輔助函式。

dram/

包含用於測試dram的指令碼。

example/

該目錄包含一些示例gem5配置指令碼,可以直接使用它們來執行gem5。 具體來說,se.py和fs.py非常有用。

ruby/

此目錄包含ruby及其隨附的快取一致性協議的配置指令碼。

splash2/

目錄包含用於執行splash2基準套件的指令碼,其中包含一些用於配置模擬系統的選項。

topologies/

該目錄包含建立ruby快取層次結構時可以使用的拓撲的實現。

在這裡,將討論兩個檔案共有的選項。本節中討論的大多數選項都可以在options.py中找到,。本節未詳細介紹所有選項。要檢視所有選項,請使用來執行配置指令碼–help,或閱讀指令碼的源**。

首先,讓我們簡單地執行不帶任何引數的hello world程式:

build/x86/gem5.opt configs/example/se.py --cmd=tests/test-progs/hello/bin/x86/linux/hello
但是,預設情況下,gem5使用原子cpu並使用原子記憶體訪問,因此沒有實際的時序資料報告!要確認這一點,可以檢視m5out / config.ini。

為了在計時模式下實際執行gem5,我們指定乙個cpu型別。在此期間,我們還可以為l1快取指定大小。

build/x86/gem5.opt configs/example/se.py --cmd=tests/test-progs/hello/bin/x86/linux/hello --cpu-type=timing******cpu --l1d_size=64kb --l1i_size=16kb
現在,讓我們檢查config.ini檔案,並確保將這些選項正確配置到最終系統。如果在m5out / config.ini中搜尋「cache」,則會發現未建立任何快取!即使我們指定了快取的大小,也沒有指定系統應使用快取,因此未建立快取。 正確的命令列應為:

build/x86/gem5.opt configs/example/se.py --cmd=tests/test-progs/hello/bin/x86/linux/hello --cpu-type=timing******cpu --l1d_size=64kb --l1i_size=16kb --caches
通過比較兩次執行,可以明顯發現總時間減少。

執行如下命令時將列印所有可能的選項:

build/x86/gem5.opt configs/example/se.py --help
一些重要選項:

資料夾作用

–cpu-type=cpu_type

要執行的cpu型別。。預設值為atomic,它不執行時序**。

–sys-clock=sys_clock

以系統速度執行的塊的頂級時鐘。

–cpu-clock=cpu_clock

以cpu速度執行的塊的時鐘。這與上面的系統時鐘是分開的。

–mem-type=mem_type

要使用的記憶體型別。選項包括不同的ddr記憶體和ruby記憶體控制器。

–caches

使用經典快取執行模擬。

–l2cache

如果使用經典快取,請使用l2快取執行**。

–ruby

使用ruby代替傳統的快取作為快取系統模擬。

-m ticks, --abs-max-tick=ticks

執行到指定的模擬滴答聲,包括來自已恢復檢查點的滴答聲。如果只想模擬一定數量的模擬時間,這將很有用。

-i maxinsts, --maxinsts=maxinsts

要模擬的指令總數(預設值:永遠執行)。如果要在執行一定數量的指令後停止**,此功能很有用。

-c cmd, --cmd=cmd

在系統呼叫**模式下執行的二進位制檔案。

-o options, --options=options

傳遞給二進位制檔案的選項在整個字串周圍使用「」。當您執行帶有選項的命令時,這很有用。您可以通過此變數傳遞引數和選項(例如–whatever)。

–output=output

將標準輸出重定向到檔案。如果您想將模擬應用程式的輸出重定向到檔案而不是列印到螢幕,這將很有用。注意:要重定向gem5輸出,您必須在配置指令碼之前傳遞引數。

–errout=errout

將stderr重定向到檔案。與上面類似。

gem5 模擬器安裝

gem5模擬器是乙個用於計算機系統架構研究的模組化平台,包括系統級架構和處理器微結構。ubuntu 18.04 gcc 7.4.0 sudo apt get install mercurial scons swig gcc m4 python python dev libgoogle perftoo...

安裝gem5模擬器001

1 ubuntu18.04虛擬機器,記憶體4g的時候說是 virtual memory exhausted cannot allocate memory scons build arm arch arm generated generic cpu exec 4.o error 1然後就把記憶體調成8...

gem5模擬器使用介紹(二)

一 使用gem5的全系統模擬 gem5的全系統模擬即利用gem5載入作業系統來進行模擬。在將32位的ubuntu換成64位之後,由於一些針對32位系統所設計的應用在64位下無法執行 如用到的arm linux gcc的安裝 所以需要安裝一些32位系統下的庫 對應與arm linux gcc使用sud...