看板 NKFUST-CCE90 關於我們 聯絡資訊
※ 引述《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
jovidream:對了...我的記憶回來了..我記得dump可以用trace的方式 12/16 22:23
jovidream:在command line window下指令...一次執行一個cycle 12/16 22:23
jovidream:或是指定個數的cycle 12/16 22:23