gem5模擬器使用介紹(二)

2021-07-13 07:23:49 字數 2749 閱讀 8072

一、使用gem5的全系統模擬

gem5的全系統模擬即利用gem5載入作業系統來進行模擬。

在將32位的ubuntu換成64位之後,由於一些針對32位系統所設計的應用在64位下無法執行(如用到的arm-linux-gcc的安裝)所以需要安裝一些32位系統下的庫(對應與arm-linux-gcc使用sudo apt-get install ia32-libs命令),如若該命令不能執行則首先執行下面的命令然後在執行上面的命令即可:$ sudo apt-get install libc6:i386 libgcc1:i386 gcc-4.6-base:i386 libstdc++5:i386 libstdc++6:i386    $ sudo apt-get install libncurses5:i386    $ sudo apt-get install g++-multilib 

至此系統已經完全可以載入作業系統映象了。具體方法是:

----------------------------------------------

wget

tar jxf arm-system-2011-08.tar.bz2

(3)修改環境變數

然後執行source ~/.bashrc 使環境變數生效,執行echo m5_path 來檢視環境變數是否生效。

(4)在以上工作完成之後就可以進入gem5的根目錄進行全系統的模擬了,在這裡使用gem5自帶的全系統模擬指令碼fs.py進行模擬,具體命令如下:

執行上面的命令就可以在gem5模擬器上面啟動ubuntu的全系統了。

(5)重新開啟乙個終端執行telnet工具或m5term工具(需要安裝)連線到模擬的作業系統,gem5模擬器為外部連線開放的埠號為3456,因此可以執行:telnet localhost 3456 來與載入的系統進行鏈結,連線之後以root身份登入即可在模擬硬體所載入的系統上進行相關的操作了。當然在這裡啟動的系統中只有系統自身的相關檔案並沒有自己測試所需的檔案,為了測試自己的相關程式必須將自己編譯好的檔案預先載入到映象檔案中,讓後在登入的終端之中執行即可。

(6)檢視輸出資訊,fs模擬和se模擬的輸出在同乙個目錄m5out下面,在這裡可以檢視模擬過程中的輸出檔案。

------------------------------------------

二、將自己的檔案載入到系統映象檔案中並進行模擬

上面的全系統模擬已經介紹了在gem5模擬器中啟動系統的方法,為了使自己所寫的程式能夠在模擬器所載入的系統中執行需要首先將編譯好的**載入到系統映象中。

(1)繫結映象檔案,為了將自己所編譯的**載入到映象檔案中首先必須將映象檔案繫結的乙個目錄下面,在這裡繫結到/mnt目錄下面,首先進入映象目錄disks下面,在這裡將會看到arm-ubuntu-natty-headless.img和linux-arm-ael.img兩個映象檔案,分別是完整的ubuntu映象和經過剪下的linux映象,這裡使用經過剪下的映象,因此執行以下命令進行繫結:sudo mount -o loop,offset=32256 linux-arm-ael.img /mnt;

(2)複製編譯好的正對arm架構的二進位制**到映象檔案中;

(3)解除安裝映象檔案,經過上面兩個步驟映象檔案中已經包含了自己編譯的**,執行:sudo umount /mnt 將繫結的映象解除安裝之後便成為我們所需的映象;

(4)按照「四」中所給出的步驟啟動映象檔案中的作業系統,並用終端登入該作業系統;

(5)在登入終端中執行載入的**,即可完成自己的**在模擬器所啟動的作業系統上的執行。

(6)模擬結束後可以在m5out目錄下檢視整個模擬過程相關的輸出資訊。

三、對bbench的模擬

對bbench的模擬是在全系統模式下進行的,因此為了完成對該benchmark的模擬必須將bbench的**載入到系統的映象檔案中來進行,在gem5的**中提供了包含bbench的系統映象,因此我們可以直接使用該映象進行fs模擬即可。

(3)修改環境變數到映象所在的目錄,該操作與前面修改linux映象的環境變數是一樣的;

(4)進如gem5的根目錄,執行命令:build/arm/gem5.opt configs/example/fs.py -b bbench-gb --kernel=vmlinux.smp.mouse.arm --frame-capture

即可開始系統的載入和bbench的執行,要執行完整個過程所需的時間大概在10小時左右;

(5)值得注意的是在該bbench的執行過程中所產生的檔案也會存放在m5out目錄下面,開啟該目錄可以看到在該目錄下面多了乙個名為frames_system.vncserver的目錄,在該目錄下生成了在不同的模擬時間所提取生成的影象檔案,我們可以通過檢視該影象檔案來判斷模擬器的進度;當整個模擬過程完成之後,就可以在m5out目錄下觀察所生成的完整的輸出檔案了。

四、用gem5執行spec2006

1、se模式執行,注意在對各個程式進行編譯的時候必須有-static標記(新增在makefile.default檔案中的cc、cxx、fc  下的flags後面即可);

2、用書中所給出的cmp.py和cpu2006.py指令碼執行的時候會產生很多錯誤,這是由於該指令碼中的模組新增缺失和程式縮排錯誤所造成的,需要認真修改;

3、為了能使spec可以在arm體系結構下執行,需要用交叉編譯器進行編譯(只需將makefile.default檔案中的cc、cxx、fc後的編譯器選項分別改為:arm-linux-gcc、arm-linux-g++、arm-linux-gfortran即可)。

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進行計算機體系結構研究時,充分了解要模擬的系統也很重要。我們可以在configs 中找到gem5的所有配置檔案。簡要說明如下 資料夾作用 boot 這些是在 full system 模式下使用的rcs檔案。這些檔案在li...