作者jovidream (跟著心情走)
看板NKFUST-CCE90
標題Re: [求救] 還是simplescalar = ="
時間Tue Dec 16 22:20:20 2008
※ 引述《MaxHaru (懂得放手..才能王道)》之銘言:
: 好不容易,
: 總算把數據run出來了
: 但是,下一個問題來了
: 要怎麼把文字檔(我存成.txt)裡的資料用excel畫成"指令位址對時間"
: 座標圖咧?
: 我目前run了mibench裡面其中9個程式(其中有3個不知道怎麼run @@a)
: 每個程式有一個profile
: 每個profile裡面最多有10000筆資料
: 資料格式如下:
: ++ 1 [xor: 0x7fff8009] {1} @ 0x00400140: lw r16,0(r29)
: ++ 2 [xor: 0x6ffe8019] {3} @ 0x00400148: lui r28,0x1001
: ++ 3 [xor: 0x6fff20f9] {4} @ 0x00400150: addiu r28,r28,-24336
: ++ 4 [xor: 0x1000a0cd] {5} @ 0x00400158: addiu r17,r29,4
: ++ 5 [xor: 0x6fff20f5] {6} @ 0x00400160: addiu r3,r17,4
: ++ 6 [xor: 0x6fff20e1] {7} @ 0x00400168: sll r2,r16,2
: ++ 7 [xor: 0x6fff20f5] {8} @ 0x00400170: addu r3,r3,r2
: ++ 8 [xor: 0x1000a009] {9} @ 0x00400178: addu r18,r0,r3
: ===== ===========
: 時間 指令位址
: 難不成要我一個一個key嗎??
: key完我也升天了 冏rz
: 版上的強者,快來救救我吧>"<
: PS:如果不用excel,那還有什麼東西可以用咧,教教我吧>"<
服了你了...你說得時間是指1->2->3...像這樣的指令順序...
還是指令執行的時間..如 (1)0.02s (2)0.1s...
如果是指令順序...你可以去loop 去print出來
struct RUU_station {
/* inst info */
md_inst_t IR; /* instruction bits */
enum md_opcode op; /* decoded instruction opcode */
md_addr_t PC, next_PC, pred_PC; /* inst PC, next PC, predicted PC */
int in_LSQ; /* non-zero if op is in LSQ */
int ea_comp; /* non-zero if op is an addr comp */
int recover_inst; /* start of mis-speculation? */
int stack_recover_idx; /* non-speculative TOS for RSB pred */
struct bpred_update_t dir_update; /* bpred direction update info */
int spec_mode; /* non-zero if issued in spec_mode */
md_addr_t addr; /* effective address for ld/st's */
INST_TAG_TYPE tag; /* RUU slot tag, increment to
squash operation */
INST_SEQ_TYPE seq; /* instruction sequence, used to
sort the ready list and tag inst */
unsigned int ptrace_seq; /* pipetrace sequence number */
/* instruction status */
int queued; /* operands ready and queued */
int issued; /* operation is/was executing */
int completed; /* operation has completed execution */
這是他的RUU data structure...
你如果想知道它執行啥指令...可以看md_inst_t IR
你如果想看是在哪個PC執行的...就...看PC囉...
/* dump the contents of the RUU */
static void
ruu_dumpent(struct RUU_station *rs, /* ptr to RUU station */
int index, /* entry index */
/* output stream */
int header) /* print header? */
{
這段可以把整個RUU都printf出來...
只是...不要輕易嘗試...
零八曾經跑mp3 codec跑了20G的text file還停不下來...
你想知道怎麼printf...去trace這個function吧
在sim_outorder.c最後有一個
for (;;)
{
....
略
....
}
這是他的cycle loop...
也就是跑一次是一個cycle...
以上...有問題再問吧...
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 203.73.47.234
1F:→ jovidream:對了...我的記憶回來了..我記得dump可以用trace的方式 12/16 22:23
2F:→ jovidream:在command line window下指令...一次執行一個cycle 12/16 22:23
3F:→ jovidream:或是指定個數的cycle 12/16 22:23