天天看點

CSAPP:處理器體系結構實驗

本實驗主要由《深入了解計算機系統》第四章課後家庭作業問題組裝起來形成的一個實驗。實驗主要是模拟一下自己設計的處理器如何執行Y86指令。而實驗僅僅是一個模拟過程,實驗前,應該透徹地搞懂真正的原理理論。這樣,才會有事半功倍的效果。

做此實驗首先要有模拟環境。而實驗的模拟器安裝卻是比較複雜的,下面把我成功安裝的工程記錄一下(僅供參考,每個人的機器不一樣,一些設定也會不一樣)

Y86模拟器安裝

無圖形TTY模式運作--------

1,首先下載下傳資源,資源名稱為archlab-handout.Tar(網上搜尋可以搜到)。

2,解壓tar xvf archlab-handout.tar,一般包含以下四個檔案:README, Makefile, sim.tar,archlab.pdf,and simguide.pdf.

3,解壓sim.Tar檔案:tar xvf sim.tar

4,進入sim目錄:cd sim

5, 修改Makefile檔案(sim目錄下):

注釋掉:

#GUIMODE=-DHAS_GUI

#TKLIBS=-L/usr/lib -ltk -ltcl

#TKINC=-isystem /usr/include

6,make clean;

   make;

搞定!此時所有的模拟器都會生成可執行檔案包括misc(yas、yis、hcl2c)、pipe(psim)、seq(ssim、ssim+)、y86-code(pptest)等。下面簡單程式測試以下:

../misc/yas asum.ys

../misc/yis asum.yo

../seq/ssim -h

../seq/ssim -t < asum.yo

../pipe/psim -t -g asum.Yo

有圖形GUI模式運作--------

(注:在無圖形TTY模式安裝好的情況下,再繼續有圖形)【可能沒必要,但我第一次是這樣運作成功的】

對Ubuntu而言:

1,由于ubuntu預設沒有lex詞法分析工具,在編譯時需要先安裝flex

sudo apt-get install flex

然後安裝tcl/tk

sudo apt-get install tcl8.5-dev tk8.5-dev tcl8.5 tk8.5

2,進入sim/seq目錄下,修改Makefile

VERSION=full

GUIMODE=-DHAS_GUI

TKLIBS=-L/usr/local/lib -ltk8.5 -ltcl8.5 -lpthread -ldl -lx11

TKINC=-I/usr/local/include -I/usr/include/tcl8.5

可以參考

http://blog.chinaunix.net/u1/42908/showart_1960009.html

http://techblog.iamzellux.com/2008/03/ics-lab4/

3,Makefile修改完成後,make以下

   make clean;

   make VERSION=full ssim

這裡注意,我們經常會看到象make VERSION=full ssim這樣的語句,其實根本不需要這樣,因為在Makefile檔案裡面已經設定了VERSION(預設情況下為full),而後直接make clean;make即可!當然,make VERSION=full ssim更加的具體化而已。當然,仔細的話可以發現:出現了seq-full.c檔案,而且可執行檔案隻有ssim,沒有了ssim+。為什麼?隻是因為VERSION問題。如果你把VERSION設定為std,make後則會同時出現seq-std.c、seq+.std.c以及兩個可執行檔案ssim、ssim+。你也可以具體化make,比如make VERSION=std ssim、make VERSION=std ssim+。

搞定!檢視seq目錄下是否有ssim可執行檔案,有的話說明安裝成功!測試一下:

./ssim -t asum.yo

./ssim -g asum.yo

此時應該會出現圖形化界面了。

因為此時我們設定的VERSION為full而非std(标準版),是以結果隻會出來ssim,而沒有ssim+。而且此時運作./ssim -g asum.yo後出現的模拟器标題為“Y86 Processor:seq-full.hcl”。

psim的gui安裝同上,首先進入sim/pipe,然後修改Makefile

# Modify this line to indicate the default version to build

VERSION=std #這裡可以修改為full、full-ans、lw、nt、btfnt等等

# Comment this out if you don't have Tcl/Tk on your system

GUIMODE=-DHAS_GUI

# Modify the following line so that gcc can find the libtcl.so and

# libtk.so libraries on your system. You may need to use the -L option

# to tell gcc which directory to look in. Comment this out if you

# don't have Tcl/Tk.

TKLIBS=-L/usr/local/lib -ltk8.5 -ltcl8.5 -lpthread -ldl -lX11

# Modify the following line so that gcc can find the tcl.h and tk.h

# header files on your system. Comment this out if you don't have

# Tcl/Tk.

TKINC=-I/usr/local/include -I/usr/include/tcl8.5

基本操作同ssim。

make clean

make 

此時出現psim,運作./psim -g asum.yo将會出現如下效果:

CSAPP:處理器體系結構實驗

這個是自己實作模拟處理器!

CSAPP:處理器體系結構實驗

這個是加載的Y86程式。

CSAPP:處理器體系結構實驗

這是記憶體分布情況。

安裝部分到這裡就結束了,接下來進行具體的實驗部分。

實驗部分本來是準備認真做的,結果發現實驗指導手冊上面的實驗步驟不是很好,我覺得有能力把《深入了解計算機系統》課後的家庭作業做出來的話,能力提升更快,當然這是建立在你把第四章了解地很透徹的基礎上!

最後總結,把書上的原理搞通才是根本所在。。。