實驗3-SimpleScalar與程序優(yōu)化_第1頁
實驗3-SimpleScalar與程序優(yōu)化_第2頁
實驗3-SimpleScalar與程序優(yōu)化_第3頁
實驗3-SimpleScalar與程序優(yōu)化_第4頁
實驗3-SimpleScalar與程序優(yōu)化_第5頁
已閱讀5頁,還剩2頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

實驗3SimpleScalar與程序優(yōu)化201208010218路志桐計科二班簡介:SimpleScalar是上世紀由威斯康辛大學(xué)發(fā)布的一款開源模擬器,具備良好的可移植性和可擴展性。作為一款時鐘精確的模擬器,SimpleScalar采用執(zhí)行驅(qū)動方式模擬,包含功能模擬和性能模擬。SimpleScalar的指令集架構(gòu)采用C語言宏聲明,目前3.0版本主要支持PISA指令集和Alpha指令集。根據(jù)模擬的目的不同,SimpleScalar包含多個模擬器實體,從最簡單的Sim-fast到最為復(fù)雜的Sim-outorder,可分別用于功能模擬、Cache配置策略、流水線、前瞻預(yù)測等體系結(jié)構(gòu)問題的全面研究。安裝:1、首先從官網(wǎng)上下載相關(guān)的文件:Simpletools-2v0.tgz;Simplesim-3v0e.tar.gz;Simpleutils-990811.tar.gz;Gcc-2.7.2.3.ss_.tar.gz;2、然后安裝flex,build-essential$sudoapt-getinstallflex;$sudoapt-getinstallbuild-essential;本來還需要bison的,不過之前安裝過了,略過。另外除此之外我們還需要配置一下環(huán)境變量安裝目錄:$exportIDIR=/home/my/simplescalar設(shè)置主機:$exportHOST=i686-pc-linux設(shè)置目的機器成小字段機器:$exportTARGET=sslittle-na-sstrix3、設(shè)置完環(huán)境之后我們便可以安裝simpletools了進入到目的地址后,我們用tarxzvf命令將之前下載下來的simpletools解壓;由于simplescalar需要Gcc2.7以上版本支持,所以我們需要通過rm命令移除原先電腦自帶的Gcc。$cd$IDIR$tarxzvfsimpletools-2v0.tgz

$rm-rfgcc-2.6.34、其次是simpleutils$tarxzvfsimpleutils-990811.tar.gz$cdsimpleutils-990811然后編譯前要打開simpleutils-990811/ld下的文件ldlex.l并且將里面全部的 yy_current_buffer替換成大寫,否則代碼將會報錯。然后就可以進行編譯$./configure-host=$HOST-target=$TARGET-with-gnu-as-with-gnu-ld-prefix=$IDIR$make$makeinstall5、接下來安裝simplesim3.0$cd$IDIR$tarxzvfsimplesim-3v0e.tgz$cdsimplesim-3.0$makeconfig-alpha$make6、最后安裝gcc2.7編譯器套件$cd$IDIR$tarxzvfgcc-2.7.2.3.ss.tar.gz$cdgcc-2.7.2.3$exportPATH=$PATH:/home/YOUR_USER_NAME/simplescalar/sslittle-na-sstrix/bin$./configure-host=$HOST-target=$TARGET-with-gnu-as-with-gnu-ld-prefix=$IDIR這里面有好幾處代碼需要修改,我們一一修改了相應(yīng)的代碼!修改代碼:./MakefileLine130:增加-I/usr/include或-I./include——>-I/usr/include!修改代碼:./protoize.c$sudochmod+wprotoize.c!修改權(quán)限#include<varargs.h>–>#include<stdarg.h>!修改代碼:./obstack.h$sudochmod+wobstack.h!修改權(quán)限*((void**)__o->next_free)++=((void*)datum);—–>*((void**)__o->next_free++)=((void*)datum);!復(fù)制補丁文件$cp./patched/sys/cdefs.h../sslittle-na-sstrix/include/sys/cdefs.h$cp../sslittle-na-sstrix/lib/libc.a../lib/$cp../sslittle-na-sstrix/lib/crt0.o../lib/!解壓ar-ranlib.tar.gz到$IDIR/sslittle-na-sstrix/bin!修改ar及ranlib的權(quán)限$sudochmod+warranlib$sudochmod+xarranlib$cd$IDIR/gcc-2.7.2.3$make!修改代碼:./insn-output.cLine675/750/823:末尾增加“\”#defineDECLARE_FAULT(FAULT)

\

{fault=(FAULT);break;}#include"machine.def"

default:

panic("attemptedtoexecuteabogusopcode");}

if(fault!=md_fault_none)fatal("fault(%d)detected@0x%08p",fault,regs.regs_PC);

if(MD_OP_FLAGS(op)&F_MEM){

sim_num_refs++;

if(MD_OP_FLAGS(op)&F_STORE)

is_write=TRUE;

}

if(MD_OP_FLAGS(op)&F_CTRL)

{

md_addr_tpred_PC;

structbpred_update_tupdate_rec;

sim_num_branches++;

if(pred)//如果分支預(yù)測器創(chuàng)建成功

{

/*獲取預(yù)測的下條指令的地址*/

pred_PC=bpred_lookup(pred,

/*分支地址*/regs.regs_PC,

/*目的地址*/target_PC,

/*指令操作碼*/op,

/*call?*/MD_IS_CALL(op),

/*return?*/MD_IS_RETURN(op),

/*stashanupdateptr*/&update_rec,

/*stashreturnstackptr*/&stack_idx);

/*判斷從分支預(yù)測器返回的下條指令地址是否合法*/

if(!pred_PC)//不合法,(當(dāng)返回0時,表示采用分支不轉(zhuǎn)移預(yù)測)

{

/*分支不轉(zhuǎn)移,pc直接加一*/

pred_PC=regs.regs_PC+sizeof(md_inst_t);

}

/*根據(jù)指令執(zhí)行的實際結(jié)果,來更新分支預(yù)測器*/

bpred_update(pred,

/*分支地址*/regs.regs_PC,

/*resolvedbranchtarget*/regs.regs_NPC,

/*分支是否轉(zhuǎn)移*/regs.regs_NPC!=(regs.regs_PC+

sizeof(md_inst_t)),

/*predtaken?*/pred_PC!=(regs.regs_PC+

sizeof(md_inst_t)),

/*correctpred?*/pred_PC==regs.regs_NPC,

/*opcode*/op,

/*predictorupdatepointer*/&update_rec);

}

}

/*checkforDLitedebuggerentrycondition*/

if(dlite_check_break(regs.regs_NPC,

is_write?ACCESS_WRITE:ACCESS_READ,

addr,sim_num_insn,sim_num_insn))

dlite_main(regs.regs_PC

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論