SESC模擬器的安裝方法

來源:互聯網
上載者:User
一種多核模擬器,全稱superEscalar Simulator,能夠類比目前大多數的處理器結構,包括單核亂序處理器結構、多執行緒器結構、CMP、PIM以及線程級猜測(thread level speculation,簡稱TLS)等多種體繫結構,而且能夠有效地類比多線程並行的結構和線程級猜測的結構。

目前我進行中異構CMP調度演算法的研究,希望認識同樣有使用該模擬器進行實驗工作的,有些問題需要請教。我也將隨著學習,階段性地貼出我的文件。

一 安裝環境

系統版本ubuntu-10.10 (建議不要用10.10以上的版本,我用12.10出現了大量的問題) 

安裝鏡像是  ubuntu-10.10-beta-desktop-i386.iso

硬體 HP-Z800 以及VM虛擬機器環境都測試成功

需要連網環境以及軟體源。(湖南大學校園網銳捷登陸方法見附錄A)

ubuntu-10.10 軟體源的設定:

http://blog.csdn.net/a8887396/article/details/8753535

二  gcc安裝

由於sesc當初是使用gcc3.4.x編譯,所以使用相同的編譯器不容易出問題。

安裝檔案見gcc3.4.6目錄

cpp-3.4_3.4.6-6ubuntu5_i386.deb  gcc-3.4-base_3.4.6-6ubuntu5_i386.deb

gcc-3.4_3.4.6-6ubuntu5_i386.deb

cd gcc3.4.6

sudo chmod 777 * 

sudo dpkg -i *

sudo ln -sf /usr/bin/gcc-3.4  /usr/bin/gcc

gcc -v 顯示版本 gcc version 3.4.6 (Ubuntu 3.4.6-6ubuntu5)

三 安裝sescutils

sescutils 是編譯sesc能啟動並執行程式的編譯器。

1 修改sh軟連結為bash

sudo ln -sf /bin/bash /bin/sh

ls -l /bin/sh 顯示 /bin/sh -> /bin/bash 表示修改成功

2 安裝前置軟體(若你是和我一樣是在新的系統中安裝,這些你可能都要安裝)

bison2.0和 flex (新版本的bison不行,若已有,刪除,安裝bison2.0)

bison的前置軟體需要m4

sudo apt-get install m4

bison2.0的 http://ftp.gnu.org/gnu/bison/ 也可以用我下載好的

安裝bison2.0

sudo tar zxvf  bison-2.0.tar.gz

cd bison-2.0

sudo ./configure

sudo make

sudo make install

sudo apt-get install flex

安裝 libncurses5-dev

若不安裝,編譯build-5-gdb時會提示 configure: error: no termcap library found

sudo apt-get install libncurses5-dev

3 要修改的地方

將 sescutils.tar.bz2 拷貝到$HOME目錄下 (也就是 cd ~ 進入的目錄)

tar -jxvf sescutils.tar.bz2 

cd sescutils

cd build-mipseb-linux/

vim build-common 

修改build-common中的三個參數為

GNUSRC=$HOME/sescutils/src

PREFIX=$HOME/sescutils/install

BUILD="i686-pc-linux-gnu"

4 編譯步驟

 sudo ./build-1-binutils 

 sudo ./build-2-gcc-core 

 sudo ./build-3-glibc 

 sudo ./build-4-gcc 

 sudo ./build-5-gdb 

5 安裝完成

四 安裝SESC

1 下載方式 

使用我修改過的包也可以,反正sesc已經從09年開始就沒更新過了。

下面是線上下載的方法

安裝 CVS

sudo apt-get install cvs

下載CVS

$cvs -d:pserver:anonymous@sesc.cvs.sourceforge.net:/cvsroot/sesc login

Note:需要輸入密碼 直接按斷行符號

$cvs -z3 -d:pserver:anonymous@sesc.cvs.sourceforge.net:/cvsroot/sesc co -P sesc

2 安裝需要的相關程式

sudo apt-get install binutils

sudo apt-get install zlib1g-dev

sudo apt-get install g++

這裡我自動安裝的是g++-4.3版本的 不知為何我找不到下面兩個安裝檔案了

g++-3.4_3.4.6-1ubuntu2_i386

libstdc++6-dev_3.4.6-1ubuntu2_i386 

據說是在 http://archive.ubuntu.com/ubuntu/pool/main/g/gcc-3.4/ 下載的

但是我用g++-4.3來編譯sesc 沒有報奇怪的問題 發現問題再換吧。

3 解壓sesc

在home目錄下解壓sesc.tar.gz

sudo tar zxvf sesc.tar.gz 

產生一個sesc檔案夾 其源碼需要做些修改 如下: (我給的檔案已經該過裡)

sesc/src/libcore/FetchEngine.cpp 中 加上 #include <limits.h>

sesc/src/libmint/subst.cpp 中 include <linux/dirent.h>, 改為include<dirent.h> 

在home下建立一個空檔案夾 sesc-build 用來存放編譯結果。

sudo mkdir sesc-build

cd sesc-build

../sesc/configure

sudo make

在報如下類似錯誤的檔案中加上 #include <stdint.h>

ERROR‘uint32_t’ was not declared in this scope

在報如下類似錯誤的檔案中加上 #include <limits.h>

ERROR: USHRT_CHAR undefined

測試是否安裝成功

make testsim

五 第一個程式

1 修改路徑參數

建立檔案

vim setupsesc

寫入如下內容

set +h

export PATH=$HOME/sescutils/install/bin:$HOME/sesc-build:$PATH

echo "setup finished"

注意PATH,如果你完全按照我的來,那可以照樣寫,若你把sescutils和sesc-build放在了別的目錄,那仿照這個來

儲存退出 再 source setupsesc

成功的標誌是你可以在shell 中使用 mipseb-linux-gcc

2 第一個sesc程式

vim hellosesc.c

#include <stdio.h>

int main()

{

        printf("hello world\n");

}

編譯方法 如果不加這些選項 會報錯

mipseb-linux-gcc -mips2 -mabi=32 -static -Wa,-non_shared -mno-abicalls -Wl,--script=$HOME/sescutils/src/mint.x,-static hellosec.c -o hello

如能編譯 則編譯成功

這是我從make testsim從看過來的命令 你可以把sesc/confs中你要用到的conf檔案 拷貝到當前檔案夾中以便使用

這個xx.conf是根據你的sesc模擬器編譯時間選項的不同 不同的 shared.conf也是一定需要的固定檔案

cp /home/hnu/sesc-build/../sesc/confs/mem.conf sesc.conf

cp /home/hnu/sesc-build/../sesc/confs/shared.conf .

運行程式

./sesc.mem -h0x800000 -csesc.conf hello

static[0x45bc90-0x10000c8c] heap[0x10002000-0x10802000] stack[0x10802000-0x10ffa000] -> [0xa6000000-0xb6b9e370]

hello world

sesc.conf 是運行時的配置 和前面的-c中間沒有空格 若沒有指定 則指定當前檔案夾下的sesc.conf

若兩者都沒有 則運行錯誤

hello是之前編譯的可執行檔

若有輸入資料 寫在檔案中tt.in 

./sesc.mem -h0x800000 -csesc.conf hello << tt.in

3獲得可視化報告

 ../sesc/scripts/report.pl sesc_hello.cRj18s 

附錄A 湖南大學銳捷登陸方法:

cd myxrgsu

將lib中的檔案拷貝到 /usr/lib中:

cd lib 

sudo cp * /usr/lib

將myxrgsu拷貝到/usr/bin中

cp myxrgsu /usr/bin

將IP設定為同一網段IP,網段IP參考同一區域網路內其他人的IP

sudo ipconfig eth0 xxx.xxx.xxx.xxx up

設定網關 網關也看同一內網的人的網關

設定網關 sudo route add default gw  xxx.xxx.xxx.xxx

運行程式

sudo myxrgsu

前兩個是輸入登陸銳捷的使用者名稱和密碼

DHCP 選擇 1 使用DHCP

其他都預設0

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.