• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      嵌入式系統(tǒng)設(shè)計(jì)實(shí)驗(yàn)的Qt MIPS仿真軟件開(kāi)發(fā)

      2017-04-10 12:05:45姚英彪曾憲彬
      實(shí)驗(yàn)室研究與探索 2017年1期
      關(guān)鍵詞:仿真器流水線內(nèi)存

      姚英彪, 曾憲彬

      (杭州電子科技大學(xué) 通信工程學(xué)院,杭州 310018)

      嵌入式系統(tǒng)設(shè)計(jì)實(shí)驗(yàn)的Qt MIPS仿真軟件開(kāi)發(fā)

      姚英彪, 曾憲彬

      (杭州電子科技大學(xué) 通信工程學(xué)院,杭州 310018)

      針對(duì)嵌入式系統(tǒng)設(shè)計(jì)的實(shí)驗(yàn)教學(xué),采用Qt C++應(yīng)用程序開(kāi)發(fā)框架,開(kāi)發(fā)了一款嵌入式軟硬件仿真平臺(tái)軟件Qt MIPS。Qt MIPS主要特點(diǎn)如下:集匯編代碼編輯、匯編、仿真和調(diào)試于一體,并具有友好的人機(jī)交互界面;支持周期準(zhǔn)確的MIPS32指令仿真和分層存儲(chǔ)系統(tǒng)的參數(shù)化配置;提供多種性能統(tǒng)計(jì)工具,對(duì)學(xué)生開(kāi)放仿真器源碼。Qt MIPS使用實(shí)踐表明,它能夠加深學(xué)生對(duì)嵌入式系統(tǒng)設(shè)計(jì)相關(guān)理論知識(shí)的理解,能夠培養(yǎng)學(xué)生的嵌入式系統(tǒng)編程能力和系統(tǒng)性能分析能力,有效提升嵌入式系統(tǒng)設(shè)計(jì)的實(shí)驗(yàn)教學(xué)效果。

      嵌入式系統(tǒng); 仿真軟件; 實(shí)驗(yàn)

      0 引 言

      近幾年來(lái),隨著嵌入式系統(tǒng)在各行各業(yè)的應(yīng)用,嵌入式系統(tǒng)設(shè)計(jì)已經(jīng)成為高等院校電子信息類專業(yè)的一門重要基礎(chǔ)課程。在其理論和實(shí)踐教學(xué)過(guò)程中,如何讓學(xué)生更直觀的理解嵌入式系統(tǒng)組成和嵌入式處理器指令集,以及部件級(jí)(如CPU、內(nèi)存)和系統(tǒng)級(jí)的性能評(píng)價(jià)與優(yōu)化方法,一直是一個(gè)難點(diǎn)問(wèn)題[1-2]。利用仿真技術(shù),可以在沒(méi)有硬件實(shí)驗(yàn)平臺(tái)的條件下(如各種開(kāi)發(fā)板),通過(guò)軟件抽象建模嵌入式硬件系統(tǒng)的“軟”平臺(tái),然后模擬指令序列在目標(biāo)處理器上的執(zhí)行[3-5]。這種方法因?yàn)榭梢愿玫挠^察指令執(zhí)行過(guò)程,分析系統(tǒng)的部件和整體的性能,因此在嵌入式系統(tǒng)設(shè)計(jì)實(shí)踐教學(xué)過(guò)程中被廣泛采用。

      目前,常見(jiàn)的嵌入式仿真軟件有ARM ADS1.2[6]、MIPS SPIM[7]、CCS[8]等。這些仿真軟件都是CPU廠家提供的商業(yè)軟件,主要面向嵌入式系統(tǒng)開(kāi)發(fā),存在源碼不開(kāi)放、參數(shù)固定等諸多缺點(diǎn),不適合應(yīng)用于嵌入式系統(tǒng)設(shè)計(jì)課程的實(shí)踐教學(xué)。SimpleScalar[9]作為一款開(kāi)源的仿真軟件,支持多種類型的處理器,但它沒(méi)有提供圖形用戶界面,需要在Linux系統(tǒng)中利用命令行進(jìn)行相關(guān)參數(shù)配置,操作極其麻煩,因而也不適合嵌入式系統(tǒng)設(shè)計(jì)課程的實(shí)驗(yàn)教學(xué)。MARS[10]雖然是面向教學(xué)開(kāi)發(fā)的仿真軟件,但同樣存在源碼不開(kāi)放,功能少等缺點(diǎn)。因此,專門面向嵌入式系統(tǒng)設(shè)計(jì)實(shí)驗(yàn)教學(xué)的仿真軟件還是比較缺乏。

      針對(duì)上述問(wèn)題,本文設(shè)計(jì)了一款面向嵌入式系統(tǒng)設(shè)計(jì)課程實(shí)踐教學(xué)的仿真軟件Qt MIPS。Qt MIPS采用Qt C++應(yīng)用程序開(kāi)發(fā)框架開(kāi)發(fā),可以跨平臺(tái)運(yùn)行[11];面向MIPS指令集[12-13],可以實(shí)現(xiàn)MIPS32指令集的周期準(zhǔn)確仿真;支持參數(shù)化的存儲(chǔ)系統(tǒng)配置,可以進(jìn)行存儲(chǔ)系統(tǒng)設(shè)計(jì)探索[14];支持處理器內(nèi)部寄存器、存儲(chǔ)器的實(shí)時(shí)查看和修改,以及各種性能統(tǒng)計(jì);為基于MIPS的嵌入式系統(tǒng)設(shè)計(jì)實(shí)驗(yàn)提供了一個(gè)集匯編程序編輯、匯編、配置、調(diào)試、運(yùn)行于一體的集成實(shí)驗(yàn)環(huán)境。

      1 整體結(jié)構(gòu)

      Qt MIPS采用模塊化的設(shè)計(jì)方法和C++語(yǔ)言開(kāi)發(fā)完成。它可以分為5個(gè)模塊,分別為編輯器(Editor)、匯編器(Assembler)、仿真器(Simulator)、調(diào)試器(Debugger)、性能分析與展示器(Profiler),如圖1所示。圖中實(shí)線表示仿真流程,虛線表示控制流程。

      圖1 Qt MIPS總體結(jié)構(gòu)

      Qt MIPS核心是仿真器,它由CPU流水線、片上內(nèi)存和片外內(nèi)存三部分組成,如圖2所示。CPU流水線采用經(jīng)典5級(jí)流水線建模[12-13],分為取指(IF)、譯碼(ID)、執(zhí)行(EXE)、訪存(MEM)和回寫(xiě)(WB)。片上內(nèi)存采用Scratch-Pad RAM(SPM)和高速緩存(Cache)建模[14]。

      圖2 Qt MIPS的仿真器總體結(jié)構(gòu)

      Qt MIPS作為一款集編輯器、匯編器、仿真器、調(diào)試器于一體的面向“嵌入式系統(tǒng)設(shè)計(jì)”課程實(shí)驗(yàn)教學(xué)的仿真平臺(tái)軟件,其基本功能包括:

      (1) 編輯功能。Editor實(shí)現(xiàn)指令高亮顯示,字符查找等功能,方便進(jìn)行匯編代碼編輯。

      (2) 匯編功能。Editor里的匯編代碼,可以通過(guò)Assembler進(jìn)行匯編,然后仿真執(zhí)行。

      (3) 仿真功能。Simulator支持周期準(zhǔn)確的MIPS32指令集仿真,并且支持仿真時(shí)單步/多步執(zhí)行時(shí)指令跳轉(zhuǎn)高亮動(dòng)態(tài)跟蹤功能。

      (4) 調(diào)試功能。Debugger支持快捷的仿真執(zhí)行控制功能,如斷點(diǎn),執(zhí)行次數(shù),多步執(zhí)行的步數(shù)設(shè)置,寄存器與內(nèi)存內(nèi)容查看等。

      此外,為方便“嵌入式系統(tǒng)設(shè)計(jì)”課程實(shí)驗(yàn)教學(xué),還具有如下特色功能:

      (1) 跨平臺(tái)特性。采用Qt編程實(shí)現(xiàn),可以運(yùn)行于Windows、Linux等多種操作系統(tǒng)下,實(shí)現(xiàn)了仿真軟件的跨平臺(tái)性。

      (2) 參數(shù)化設(shè)計(jì)。CPU的時(shí)鐘、片上/片外內(nèi)存的大小、性能,以及Cache的組織方式都是參數(shù)化設(shè)計(jì)。在實(shí)驗(yàn)過(guò)程中,通過(guò)設(shè)置這些參數(shù),就能改變嵌入式系統(tǒng)的性能,這樣學(xué)生更容易理解嵌入式系統(tǒng)性能的影響因素。

      (3) 詳盡的性能統(tǒng)計(jì)工具。仿真器在仿真時(shí),實(shí)時(shí)統(tǒng)計(jì)程序執(zhí)行時(shí)鐘周期數(shù),片上內(nèi)存命中次數(shù),片外內(nèi)存訪問(wèn)次數(shù)等各種統(tǒng)計(jì)數(shù)據(jù),便于學(xué)生深入理解嵌入式系統(tǒng)的部件級(jí)和系統(tǒng)級(jí)的性能評(píng)價(jià)。

      (4) Simulator源碼開(kāi)放。對(duì)嵌入式系統(tǒng)設(shè)計(jì)特別感興趣的同學(xué),可以查看Simulator源碼,深入理解嵌入式系統(tǒng)組成、軟件執(zhí)行過(guò)程、現(xiàn)代CPU的原理等內(nèi)容,甚至在提供的Simulator源碼基礎(chǔ)上還可以進(jìn)行二次開(kāi)發(fā)。

      2 模塊功能

      2.1 編輯器

      Editor實(shí)現(xiàn)匯編程序新建、打開(kāi)、保存、編輯等功能。Qt MIPS支持的匯編程序?yàn)?.s結(jié)尾的文本文件,打開(kāi)效果如圖3所示??梢钥吹?,Editor支持不同類型關(guān)鍵字用不同顏色表示,所在行代碼高亮顯示。此外,Editor也可以打開(kāi)機(jī)器碼文件(工具欄第3個(gè)按鈕)。最后,Editor也實(shí)現(xiàn)了常用的文本編輯器所具有的字符查找、剪切、復(fù)雜等功能,方便學(xué)生編輯和調(diào)試MIPS匯編代碼。

      圖3 Editor打開(kāi)*.s匯編文件

      2.2 調(diào)試器

      調(diào)試器主要實(shí)現(xiàn)寄存器設(shè)置、存儲(chǔ)設(shè)置、斷點(diǎn)設(shè)置、運(yùn)行設(shè)置(單步、多步、執(zhí)行次數(shù)等)等。其中,存儲(chǔ)設(shè)置是Qt MIPS的一個(gè)亮點(diǎn),它包括內(nèi)存結(jié)構(gòu)設(shè)置和內(nèi)存顯示控制設(shè)置,分別如圖4和圖5所示。從圖4中可以看到,Qt MIPS可以實(shí)現(xiàn)SPM添加及其大小配置,Cache的大小及組織方式設(shè)置,具體包括Cache的組數(shù)、塊大小、相聯(lián)映射方式、替換策略、寫(xiě)策略、寫(xiě)缺失策略等。由圖5可見(jiàn),Qt MIPS內(nèi)存顯示設(shè)置包括顯示數(shù)據(jù)類型、內(nèi)存類型、起始地址及長(zhǎng)度設(shè)置、訪問(wèn)次數(shù)統(tǒng)計(jì)地址設(shè)置等。

      圖4 內(nèi)存結(jié)構(gòu)設(shè)置圖5 內(nèi)存顯示設(shè)置

      2.3 性能分析與展示器

      在指令仿真運(yùn)行期間,Qt MIPS重載匯編代碼的機(jī)器碼,在Profiler展示,如圖6所示。Text Segment窗口實(shí)現(xiàn)了單步/多步執(zhí)行時(shí)指令跳轉(zhuǎn)高亮動(dòng)態(tài)跟蹤,最左邊的是機(jī)器碼,中間是指令的存儲(chǔ)地址,右邊是對(duì)應(yīng)的匯編代碼。Console窗口實(shí)時(shí)顯示程序指令執(zhí)行條數(shù)t1,數(shù)據(jù)內(nèi)存總訪問(wèn)次數(shù)t2,SPM的訪問(wèn)次數(shù)t3,以及數(shù)據(jù)Cache的訪問(wèn)次數(shù)t4,命中次數(shù)t5,以及指令Cache的訪問(wèn)次數(shù)t6,命中次數(shù)t7等實(shí)時(shí)仿真統(tǒng)計(jì)結(jié)果。Registers和Memory窗口實(shí)時(shí)顯示寄存器或內(nèi)存的值。Labels窗口顯示匯編代碼中的標(biāo)號(hào)情況(數(shù)據(jù)對(duì)象和函數(shù)對(duì)象的首地址)。

      根據(jù)圖6Console窗口輸出的性能統(tǒng)計(jì)結(jié)果,可粗略評(píng)價(jià)嵌入式系統(tǒng)的處理性能,即程序執(zhí)行時(shí)間T可以近似為:

      T=[t1+t3(Nspm-1) +(t5+t7)(Nhit-1)+ (t4+t6-t5-t7)Nmiss]·CCT

      式中:CCT是處理器的時(shí)鐘周期(假設(shè)指令都為單周期指令);Nspm是SPM訪問(wèn)時(shí)鐘周期;Nhit是Cache訪問(wèn)命中時(shí)的時(shí)鐘周期;Nmiss是Cache訪問(wèn)缺失時(shí)訪問(wèn)外存的時(shí)鐘周期。

      3 匯編器與仿真器設(shè)計(jì)

      3.1 匯編器

      Qt MIPS的匯編器是利用Flex和Bison這兩個(gè)開(kāi)源工具實(shí)現(xiàn)[15]。Flex是一款詞法分析器生成工具,利用Flex可以快速地生成詞法分析器,識(shí)別文本中的詞素。Bison則是一款語(yǔ)法分析器生成工具,可以根據(jù)用戶設(shè)定好的語(yǔ)法,快速生成相應(yīng)的語(yǔ)法識(shí)別程序。因?yàn)樗鼈兩傻膮R編器是串行匯編,分支、跳轉(zhuǎn)、子程序調(diào)用及存取指令若在符號(hào)地址定義之前出現(xiàn)的話,就會(huì)出現(xiàn)匯編錯(cuò)誤。

      圖6 Profiler結(jié)構(gòu)

      圖3中Edit窗口第14行“l(fā)a$16, my_bs+4”與第18行“sw 0, my_bs+1036”這兩條匯編指令,由于my_bs符號(hào)在18行之前未定義,在沒(méi)有進(jìn)行任何處理的情況下,匯編器會(huì)串行匯編將my_bs的值設(shè)定為0,然而在圖3 Labels窗口中可見(jiàn),my_bs的地址是0x10005430,所以匯編器會(huì)發(fā)生串行匯編錯(cuò)誤。為解決這個(gè)問(wèn)題,本文提出了SR(保存恢復(fù))算法,它用到兩種映射容器類Map和Multimap。Map容器是一對(duì)一映射容器,Multimap是一對(duì)多映射容器,如圖7所示。其中,infoLine是一個(gè)用戶定義的結(jié)構(gòu)體,用來(lái)保存含符號(hào)的指令行信息。

      main0x00400024my_bs0x10005430……

      Map

      Multimap

      圖7 Map與Multimap容器類

      SR算法是根據(jù)符號(hào)label出現(xiàn)位置分別處理。①label出現(xiàn)在定義處:此時(shí)先將label保存到Map中,然后判斷l(xiāng)abel是否出現(xiàn)在Multimap中;如果出現(xiàn),說(shuō)明在label定義之前已經(jīng)有指令用到該label,需要恢復(fù)Multimap中的使用該label的指令;如果沒(méi)出現(xiàn),不需要做任何處理。②label出現(xiàn)在指令中:此時(shí)需要判斷l(xiāng)abel是否出現(xiàn)在Map中,如果出現(xiàn),說(shuō)明label已經(jīng)在之前定義好,可以直接使用Map中該label的值匯編該指令;否則,說(shuō)明label還未定義,需要將該label保存到Multimap容器,等到該label定義后再恢復(fù)。

      3.2 仿真器

      3.2.1 CPU流水線仿真

      Qt MIPS的仿真器采用經(jīng)典的5級(jí)流水線,分別為IF、ID、EXE、MEM和WB,每級(jí)流水線的功能為:

      IF——訪問(wèn)指令內(nèi)存,得到32 bit的指令。

      ID——對(duì)指令進(jìn)行譯碼,根據(jù)譯碼結(jié)果讀取CPU寄存器的內(nèi)容。

      EXE——完成指令執(zhí)行。

      MEM——Load/Store指令完成數(shù)據(jù)內(nèi)存訪問(wèn)。

      WB——指令執(zhí)行結(jié)果保存到寄存器文件中。

      為便于學(xué)生理解CPU硬件結(jié)構(gòu),這5級(jí)流水線分別編寫(xiě)相應(yīng)函數(shù)。在程序?qū)崿F(xiàn)時(shí),碰到的一個(gè)難點(diǎn)問(wèn)題是MIPS體系結(jié)構(gòu)的延遲槽指令的程序流程控制,它反映在IF和EXE流水級(jí)。為此,在Qt MIPS的仿真器設(shè)計(jì)中,使用了兩個(gè)指針PC和Delay_PC,以及一個(gè)分支跳轉(zhuǎn)指令狀態(tài)標(biāo)志BJ_Flag來(lái)實(shí)現(xiàn)指令執(zhí)行順序的控制。程序執(zhí)行流程控制的偽代碼為:

      (1) IF階段的流水線控制

      1. if (BJ_Flag=0)

      2. Access(PC); Delay_PC=PC+4;

      3. else if (BJ_Flag==1)

      4. Access(Delay_PC); Delay_PC=PC; BJ_Flag=2;

      5. else

      6. Access(Delay_PC); PC=Delay_PC; Delay_PC=PC+4; BJ_Flag=0;

      IF階段:①BJ_Flag=0,代表EXE級(jí)的指令不是跳轉(zhuǎn)指令,下一條指令地址在PC處,因而通過(guò)Access(PC)取指,并設(shè)置延遲槽指令地址Delay_PC為PC+4。②BJ_Flag=1,代表EXE級(jí)的指令是跳轉(zhuǎn)指令,下一條指令需要取延遲槽里面的指令,即在Delay_PC處,因而通過(guò)Access(Delay_PC)到延遲槽中取指,然后設(shè)置Delay_PC為上一條跳轉(zhuǎn)指令真正的目標(biāo)地址PC,最后設(shè)置BJ_Flag=2進(jìn)入跳轉(zhuǎn)狀態(tài)。③BJ_Flag=2,代表需要執(zhí)行跳轉(zhuǎn)指令真正目標(biāo)地址處的指令,因而通Access(Delay_PC)取指,最后將PC、Delay_PC和BJ_Flag恢復(fù)為正常指令執(zhí)行狀態(tài)。

      (2) EXE階段的流水線控制

      1. if跳轉(zhuǎn)指令

      2. BJ_Flag=1;

      3. if跳轉(zhuǎn)成功

      4. PC=目標(biāo)地址;

      5. else

      6. PC+=8;

      7. else

      8. BJ_Flag=0; PC+=4;

      EXE階段:需要對(duì)指令類型進(jìn)行判斷,①如果該指令不是跳轉(zhuǎn)指令,設(shè)置BJ_Flag=0,PC=PC+4,表示流水線處于正常狀態(tài);②如果該指令是跳轉(zhuǎn)指令,設(shè)置BJ_Flag=1,表示流水線即將進(jìn)入延遲狀態(tài);然后判斷跳轉(zhuǎn)指令跳轉(zhuǎn)是否成功,如果成功,設(shè)置PC為新的目標(biāo)地址,否則設(shè)置PC=PC+8(由于存在延長(zhǎng)槽)。

      3.2.2 存儲(chǔ)系統(tǒng)仿真

      Qt MIPS的存儲(chǔ)系統(tǒng)支持片上SPM大小,Cache塊數(shù)、塊大小、地址映射策略、替換策略、寫(xiě)策略等的參數(shù)化配置。其中,Cache地址映射策略包括直接映射、組相聯(lián)映射策略;替換策略包括最近最少使用(LRU)策略和先入先出(FIFO)策略;寫(xiě)策略包括寫(xiě)透(Write Through)和寫(xiě)回(Write Back)策略[16]。Qt MIPS存儲(chǔ)系統(tǒng)建模的難點(diǎn)在于Cache的建模,其模型如圖8所示。圖中,F(xiàn)IFO/LRU替換策略的主要差別在于:

      (1) 在訪問(wèn)Cache命中時(shí),采用FIFO策略,不需要更新FIFO隊(duì)列順序;采用LRU策略,需要將命中項(xiàng)調(diào)整到LRU隊(duì)列的最近訪問(wèn)位置。這一點(diǎn)體現(xiàn)在圖9中的第4和第6請(qǐng)求,此時(shí)FIFO隊(duì)列順序不變,而LRU隊(duì)列順序發(fā)生變化。

      (2) 在Cache未命中需要選擇剔除項(xiàng)時(shí),雖然形式上都是選擇隊(duì)尾的項(xiàng)進(jìn)行剔除,但是物理意義不一樣。FIFO隊(duì)尾項(xiàng)代表該項(xiàng)是最先進(jìn)入隊(duì)列,而LRU隊(duì)尾項(xiàng)代表該項(xiàng)是最近最少使用。這一點(diǎn)體現(xiàn)在圖9中的第5請(qǐng)求,此時(shí)FIFO策略選擇剔除“0”,LRU策略選擇剔除“1”。

      由于這兩點(diǎn)的不同,故FIFO/LRU替換策略的性能不一樣。例如,在圖9示例中,當(dāng)處理第4請(qǐng)求“0”時(shí),隊(duì)列順序已經(jīng)不一樣;當(dāng)處理第5請(qǐng)求“3”時(shí),隊(duì)列內(nèi)容已經(jīng)不一樣;當(dāng)處理第7請(qǐng)求“0”時(shí),命中情況已經(jīng)不一樣,即性能不一樣。

      圖8 Qt MIPS的Cache讀寫(xiě)模型

      圖9 FIFO/LRU替換策略舉例(假設(shè)Cache的容量為3,初始為空)

      4 結(jié) 語(yǔ)

      針對(duì)嵌入式系統(tǒng)設(shè)計(jì)的實(shí)驗(yàn)教學(xué),采用Qt跨平臺(tái)C++應(yīng)用程序開(kāi)發(fā)框架,開(kāi)發(fā)了一款支持MIPS32指令集的嵌入式軟硬件仿真軟件Qt MIPS。它集MIPS32匯編代碼編輯、匯編、仿真和調(diào)試于一體,并且其仿真器的源碼開(kāi)放。學(xué)生在學(xué)習(xí)嵌入式系統(tǒng)設(shè)計(jì)相關(guān)理論知識(shí)的同時(shí),通過(guò)使用Qt MIPS仿真和學(xué)習(xí)其源碼,可以更直觀地理解嵌入式系統(tǒng)的組成、嵌入式CPU的指令集和流水線,以及部件級(jí)(如CPU、存儲(chǔ))和系統(tǒng)級(jí)的性能評(píng)價(jià)與優(yōu)化方法等。Qt MIPS在我校的“嵌入式系統(tǒng)設(shè)計(jì)”實(shí)驗(yàn)教學(xué)中使用結(jié)果表明,它能明顯加深學(xué)生對(duì)嵌入式系統(tǒng)設(shè)計(jì)相關(guān)理論知識(shí)的理解和融會(huì)貫通,同時(shí)對(duì)增強(qiáng)學(xué)生的嵌入式系統(tǒng)設(shè)計(jì)興趣也起到意外的效果。

      [1] 仲偉波, 包亞萍, 付躍文, 等. 關(guān)于嵌入式系統(tǒng)教學(xué)的幾點(diǎn)思考[J]. 實(shí)驗(yàn)室研究與探索, 2006, 25(12),1565-1568.

      [2] 左冬紅, 羅 杰, 張 林, 等. 計(jì)算機(jī)原理與接口技術(shù)實(shí)踐教學(xué)改革[J]. 實(shí)驗(yàn)室研究與探索, 2015, 34(10), 187-190.

      [3] 龔 軍, 羅 杰, 汪小燕. 基于仿真的嵌入式系統(tǒng)教學(xué)實(shí)驗(yàn)方法[J]. 實(shí)驗(yàn)室研究與探索, 2009, 28(5), 53-56.

      [4] 付琳 , 胡 錦, 梁利平. 指令集仿真器的關(guān)鍵技術(shù)[J]. 計(jì)算機(jī)應(yīng)用, 2015, 35(5): 1421-1425.

      [5] 王盛朋, Vania Joloboff, 鄧仰東. 一種基于近似計(jì)時(shí)模型的嵌入式CPU仿真器[J]. 計(jì)算機(jī)仿真, 2014, 31(5): 238-242.

      [6] 李哲英, 駱 麗, 劉元盛. ARM 核嵌入式系統(tǒng)的開(kāi)發(fā)平臺(tái)ADS[J]. 半導(dǎo)體技術(shù), 2002, 27(2): 13-16.

      [7] Larus. J. SPIM: A MIPS32 simulator[EB/OL]. http://pages.cs.wisc.edu/~larus/spim.html.

      [8] 陽(yáng) 華, 劉海濤. 新一代TI集成開(kāi)發(fā)環(huán)境Code Composer Studio[J]. 微處理機(jī), 2001(2): 24-26.

      [9] SimpleScalar[EB/OL]. http://www.simplescalar.com/.

      [10] K. Vollmar and P. Sanderson. MARS: an education-oriented MIPS assembly language simulator[J]. ACM SIGCSE Bulletin, 2006, 38 (1): 239-243.

      [11] Qt參考文檔[EB/OL]. http://www.qtopia.org.cn/doc/qiliang.net/qt/index.html.

      [12] 左冬紅. 計(jì)算機(jī)原理與接口技術(shù)——基于MIPS架構(gòu)[M]. 北京: 清華大學(xué)出版社, 2014.

      [13] 趙俊良, 張福新, 陶 品. MIPS處理器設(shè)計(jì)透視[M]. 北京:北京航天航空大學(xué)出版社, 2005.

      [14] Kumar T.S. Rajesh, Ravikumar C.P, Govindarajan R. Memory Architecture Exploration Framework for Cache Based Embedded SOC[C]. 21st International Conference on VLSI Design, 2008: 553-559.

      [15] 曾憲彬. MIPS仿真器設(shè)計(jì)與應(yīng)用[D]. 浙江: 杭州電子科技大學(xué), 2013.

      [16] J. L. Hennessy and D. A. Patterson, Computer Architecture: A Quantitative Approach[M]. San Francisco: Morgan Kaufmann Publishers Inc, 2002.

      Development of Qt MIPS Software for Embedded System Design Experiments

      YAOYing-biao,ZENGXian-bin

      (College of Communication Engineering, Hangzhou Dianzi University, Hangzhou 310018, China)

      Focusing on the experimental teaching of embedded system design, we developed a simulation platform for an embedded software and hardware, briefly called as Qt MIPS. The platform is based on Qt C++ application development framework. The features of Qt MIPS include that it has integrated the editor, assembler, simulator and debugger together, and has friendly man-machine interface; it supports cycle-accurate MIPS32 instruction simulation and parameterizes hierarchical memory system; it provides several performance statistics tools and source codes of its simulator are open for students. The usage practice of Qt MIPS shows that it can help students to have a better understanding the relevant theoretical knowledge and train students programming capability and performance analytical ability of embedded system design. Therefore, it can greatly improve the experimental teaching effect of embedded system design.

      embedded systems; simulation software; experiments

      2016-03-01

      杭州電子科技大學(xué)《單片機(jī)與嵌入式系統(tǒng)》教學(xué)模式改革項(xiàng)目;高教重點(diǎn)改革項(xiàng)目(SYZD1108)

      姚英彪(1976-),男,湖北松滋人,博士,副教授,碩士生導(dǎo)師,研究方向?yàn)榍度胧较到y(tǒng)設(shè)計(jì)。E-mail:yaoyb@hdu.edu.cn

      TP 391.9

      A

      1006-7167(2017)01-0098-06

      猜你喜歡
      仿真器流水線內(nèi)存
      Gen Z Migrant Workers Are Leaving the Assembly Line
      流水線
      “春夏秋冬”的內(nèi)存
      報(bào)廢汽車拆解半自動(dòng)流水線研究
      基于多線程的慣導(dǎo)邏輯仿真器設(shè)計(jì)
      SIMATIC IPC3000 SMART在汽車流水線領(lǐng)域的應(yīng)用
      基于內(nèi)存的地理信息訪問(wèn)技術(shù)
      天文測(cè)量仿真器模擬星圖精度分析
      并行片上網(wǎng)絡(luò)仿真器ParaNSim的設(shè)計(jì)及性能分析
      基于32位SPARC處理器的JTAG仿真器設(shè)計(jì)與實(shí)現(xiàn)
      峨山| 平南县| 辉县市| 奉贤区| 巩义市| 五台县| 洪洞县| 凤阳县| 会同县| 探索| 沧源| 深水埗区| 东乌珠穆沁旗| 黄石市| 民勤县| 尼勒克县| 景泰县| 蒙山县| 庆安县| 富民县| 岢岚县| 靖州| 阜城县| 林口县| 南投市| 错那县| 阿拉善左旗| 上林县| 连南| 镇江市| 南涧| 宜黄县| 东平县| 呼玛县| 华蓥市| 民和| 襄城县| 金川县| 吉安市| 商城县| 安仁县|