• 
    

    
    

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

      ?

      OpenRISC處理器片上監(jiān)控系統(tǒng)設(shè)計

      2014-01-16 00:44:52王宇劉宏偉
      關(guān)鍵詞:流水線寄存器指令

      王宇,劉宏偉

      (哈爾濱工業(yè)大學(xué)計算機科學(xué)與技術(shù)學(xué)院,哈爾濱 150001)

      OpenRISC處理器片上監(jiān)控系統(tǒng)設(shè)計

      王宇,劉宏偉*

      (哈爾濱工業(yè)大學(xué)計算機科學(xué)與技術(shù)學(xué)院,哈爾濱 150001)

      文章介紹OpenRISC軟核處理器基本架構(gòu),闡述使用開源軟核處理器實現(xiàn)工作在FPGA上的片上處理器監(jiān)控系統(tǒng)的具體方案,設(shè)計片上雙核系統(tǒng),實現(xiàn)軟核關(guān)鍵技術(shù)監(jiān)控的軟硬件系統(tǒng),通過仿真及試驗驗證該技術(shù)效果。

      OpenRISC;FPGA;片上系統(tǒng)

      計算機處理器性能指標(biāo)研究大部分局限于理論分析和模型仿真,基于硬件處理器監(jiān)控系統(tǒng)成本極高。為解決這一問題,本文提出一種在FPGA芯片上實現(xiàn)的處理器監(jiān)控系統(tǒng)。相對于常規(guī)處理器,F(xiàn)PGA具有可重構(gòu)優(yōu)勢,適合多任務(wù)切換場合,節(jié)約系統(tǒng)資源,實現(xiàn)功能復(fù)用,提高整個系統(tǒng)性能。

      研究選用完全開源32位軟核處理器OpenRISC且作為被監(jiān)控處理器和監(jiān)控處理器。該處理器由開源社區(qū)OpenCores提供并維護,適合于網(wǎng)絡(luò)及嵌入式應(yīng)用[1]。該處理器擁有外圍接口等資源,用戶可根據(jù)需要自由選擇。由于其源代碼完全開放,使用者可根據(jù)應(yīng)用場合的不同修改處理器的硬件描述語言源代碼,針對系統(tǒng)功能對處理器作出相應(yīng)優(yōu)化。

      1 軟核處理器分類

      1.1 非開源軟核處理器

      Altera公司開發(fā)的NoisⅡ處理器是一種通用RISC處理器核,提供全32位指令集,集成Altera嵌入式邏輯分析儀,可實時分析FPGA設(shè)計中的指令及數(shù)據(jù)信號[2]。

      MicroBlaze嵌入式處理器是一種針對Xilinx FP?GA優(yōu)化的32位軟核處理器。同時,用戶可根據(jù)需要對MicroBlaze軟核處理器進行功能配置[3]。

      1.2 開源軟核處理器

      LEON系列中LEON3處理器是一款使用VHDL語言編寫的32位SPARC V8結(jié)構(gòu)的處理器。LEON3處理器的全部源代碼公開,提供片上指令和數(shù)據(jù)跟蹤調(diào)試功能,支持多處理器工作[4]。

      OpenRISC是一款完全開放源代碼的32位RISC處理器,使用Verilog HDL實現(xiàn)。該體系結(jié)構(gòu)最為顯著的特性是指令擴展,可配置數(shù)量的通用寄存器,可配置的高速緩存以及直接映射快表,動態(tài)能量管理的支持,以及為用戶指令提供空間[5]。

      2 OpenRISC關(guān)鍵技術(shù)仿真跟蹤

      ModelSim是一種常用的硬件描述語言仿真軟件,可以方便跟蹤處理器內(nèi)部的各個信號,結(jié)果也可以用波形方式很直觀地顯示。其結(jié)果可以和實際運行取得的信號相比較,作為驗證。

      2.1 ModelSim仿真跟蹤流水線

      使用如下的一段代碼:

      其中,第3條和第4條指令會發(fā)生數(shù)據(jù)相關(guān)。為解決這一問題,OR1200采用前向通路技術(shù)[10]。

      通過修改OR1200源代碼方式禁止前向通路。具體做法是關(guān)閉從ex_forw到ALU的數(shù)據(jù)通路,如圖1所示。

      由圖1可知,在禁止前向通路的情況下,在第4條指令執(zhí)行周期,ALU的數(shù)據(jù)輸入端b的數(shù)據(jù)為0x00020000,即寄存器r2在第3條指令執(zhí)行之前的值,最終參與運算也是這個值,最終,r3寄存器的值是0x0002000,是錯誤結(jié)果。

      另一種解決方法是在流水線中加入空周期以實現(xiàn)流水線的延遲執(zhí)行,如圖2所示。

      圖1 ModelSim仿真跟蹤禁止前向通路技術(shù)Fig.1 Tracking the situation when forward path is disabled through simulation by ModelSim

      圖2 ModelSim仿真跟蹤加入空周期Fig.2 Tracking the empty cycle through simulation by ModelSim

      由圖2可知,當(dāng)出現(xiàn)數(shù)據(jù)相關(guān)時,使流水線的特定功能段空轉(zhuǎn),直到能夠避免該數(shù)據(jù)相關(guān)。具體到上述程序涉及的先寫后讀數(shù)據(jù)相關(guān),可采用暫停流水線中的譯碼功能段方法解決。本文通過修改OR1200源代碼方式實現(xiàn)加入空周期。首先,在OR1200檢測到數(shù)據(jù)相關(guān)發(fā)生后,產(chǎn)生一個周期脈沖信號,作為暫停信號,發(fā)送到OR1200處理器的CTRL模塊,連接到id_freeze接口。該信號使譯碼流水段延長到兩個周期。在流水線空轉(zhuǎn)1個周期內(nèi),第3條指令運行結(jié)果已存入寄存器r2。因此,在空周期結(jié)束之后,第4條指令執(zhí)行時,ALU的數(shù)據(jù)輸入端輸入的數(shù)據(jù)正確,最終結(jié)果是寄存器r3的值為0x00050000,數(shù)據(jù)正確。可見,使用加入空周期方法能解決數(shù)據(jù)相關(guān)問題,但是這種方法延長程序執(zhí)行時間,降低流水線工作效率。

      2.2 ModelSim仿真跟蹤Cache的命中與非命中

      OR1200的Cache分為指令Cache和數(shù)據(jù)Cache,其中,對于指令Cache來說,指令在Cache中被訪問到稱作命中,反之為非命中,當(dāng)一條指令,第一次在程序中被使用,則會發(fā)生非命中。該條指令所在的塊被調(diào)入Cache,塊的大小為4個字節(jié),此條指令之后的3條指令也同時被送入Cache,三條指令運行時會發(fā)生命中。通過ModelSim可觀察這一過程中Cache相關(guān)單元變化,比較Cache命中與非命中情況下,每條指令執(zhí)行的不同時鐘周期。

      綜上,通過ModelSim對OR1200軟核處理器進行仿真跟蹤可觀察到各種需要信號而不必在硬件電路上顯示,提高分析設(shè)計效率,為后續(xù)設(shè)計工作奠定基礎(chǔ)。軟件仿真存在固有弊端,無法完全替代真實監(jiān)控系統(tǒng)。因此,通過ModelSim仿真對軟核處理器流水線跟蹤分析只能作為硬件監(jiān)控系統(tǒng)補充。

      3 基于Wishbone總線的OpenRISC最小系統(tǒng)實現(xiàn)

      OpenRISC最小系統(tǒng)以O(shè)penRISC系列處理器中的OR1200為核心,通過wb_conmax模塊掛接存儲器(RAM)、通用輸入輸出單元(GPIO)、串行接口(UART)。OpenRISC處理器采用Wishbone總線技術(shù),Wishbone是一種免費開放的總線規(guī)范。wb_conmax是一種Wishbone互聯(lián)矩陣。

      OR1200的指令總線和數(shù)據(jù)總線分別連接wb_conmax的0號和1號主接口,存儲器(RAM)、通用輸入輸出單元(GPIO)和串行接口(UART)在分別連接了0號、1號和2號從接口,如圖3所示。

      圖3 基于Wishbone總線的OpenRISC最小系統(tǒng)Fig.3 OpenRISC minimum system based on Wishbone bus

      對該最小系統(tǒng)進行編譯,下載到FPGA開發(fā)板上,運行測試程序,結(jié)果如圖4所示。通過在PC機上運行的串口助手接收到由OR1200經(jīng)由Wish?bone總線和串行接口發(fā)來的數(shù)據(jù)。

      圖4 OR1200處理器通過串行接口發(fā)送的數(shù)據(jù)Fig.4 Data sent through the serial interface by OR1200

      4 開源軟核處理器FPGA片上監(jiān)控系統(tǒng)的設(shè)計

      4.1 片上雙核監(jiān)控系統(tǒng)的設(shè)計

      4.1.1 片上雙核系統(tǒng)的實現(xiàn)

      在同一片F(xiàn)PGA芯片上實現(xiàn)兩個OR1200系統(tǒng),這兩個系統(tǒng)除共享時鐘與復(fù)位信號之外,其他資源完全獨立,這兩個系統(tǒng)擁有獨立的RAM、GPIO和wb_conmax,其程序可在同一時鐘下獨立運行。這里選用的FPGA是Altera公司的EP4CE15 F17C8,通過Quartus軟件進行邏輯綜合,得到該系統(tǒng)占用片上資源情況,如圖5所示。

      通過在開發(fā)板上進行驗證試驗,編寫通過GPIO輸出控制LED燈閃爍的程序,觀察試驗結(jié)果,兩組LED燈可同步正常工作,證明兩個處理器可同步正確工作。

      圖5 片上雙核系統(tǒng)占用的資源Fig.5 Resources occupied by the dual core system on a chip

      4.1.2 雙核監(jiān)控系統(tǒng)設(shè)計

      為通過硬件平臺實時監(jiān)控開源軟核處理器的關(guān)鍵技術(shù)指標(biāo),設(shè)計基于FPGA芯片的片上雙核監(jiān)控系統(tǒng)。該系統(tǒng)在上述片上雙核系統(tǒng)的基礎(chǔ)上實現(xiàn)。其中,兩個處理器核分別作為監(jiān)控處理器和被監(jiān)控處理器。重點監(jiān)控的信號有流水線功能段相關(guān)信號、Cache命中率統(tǒng)計相關(guān)信號。

      在系統(tǒng)結(jié)構(gòu)設(shè)計上,被監(jiān)控處理器采用常規(guī)系統(tǒng)配置,正常工作;監(jiān)控處理器則采用最小系統(tǒng)以節(jié)約系統(tǒng)資源并且通過控制系統(tǒng)時鐘信號控制被監(jiān)控處理器的工作。信號采集通過監(jiān)控處理器的GPIO單元實現(xiàn),該單元與被監(jiān)控處理器待測試信號直接相連,通過運行在監(jiān)控處理器上的程序?qū)崿F(xiàn)數(shù)據(jù)采集、暫存、處理等功能,最后通過串行接口發(fā)送到系統(tǒng)計算機。在系統(tǒng)計算機端,通過串口助手接收到數(shù)據(jù)并顯示。監(jiān)控系統(tǒng)結(jié)構(gòu)如圖6所示。

      4.2 獨立監(jiān)控模塊設(shè)計

      為實現(xiàn)對軟核處理器的跟蹤監(jiān)控,使用Verilog硬件描述語言在FPGA上開發(fā)獨立監(jiān)控模塊。該模塊功能包括:接收上位機從串行接口傳送的單步運行指令,每接收一個單步運行指令,監(jiān)控模塊控制微處理器工作一個時鐘周期,同時,采集上位機需要監(jiān)控的各個流水線功能段寄存器狀態(tài),通過串行接口再發(fā)送給上位機,每一個時鐘周期都要進行一次狀態(tài)采集。

      如圖7所示,該模塊內(nèi)部又分為串行通信單元、單節(jié)拍發(fā)生器單元、四位環(huán)形計數(shù)器單元、系統(tǒng)時鐘分頻器單元,寄存器信息采集單元、寄存器數(shù)據(jù)緩沖單元、寄存器數(shù)據(jù)轉(zhuǎn)換單元等單元。

      圖6 片上監(jiān)控系統(tǒng)結(jié)構(gòu)Fig.6 Structure of monitoring system on a chip

      圖7 監(jiān)控模塊結(jié)構(gòu)Fig.7 Structure of the monitor unit

      在監(jiān)控模塊工作時,串行通信單元首先接收到由上位機串行口發(fā)送的一個字節(jié)數(shù)據(jù),在接收過程中串行通信單元的輸出信號rxint為高電平,接收結(jié)束轉(zhuǎn)為低電平,該信號被傳送給單節(jié)拍發(fā)生器單元,單節(jié)拍發(fā)生器單元據(jù)此產(chǎn)生一個固定寬度的單脈沖,送給CPU的時鐘輸入引腳,同時rx?int信號觸發(fā)一個四位環(huán)形計數(shù)器,該計數(shù)器的輸出連接到寄存器信息采集單元的寄存器選擇端口,計數(shù)器不同的輸出代表不同的寄存器,寄存器信息采集單元據(jù)此依次采集各個寄存器的值,采集到的32位寄存器數(shù)據(jù)經(jīng)過寄存器數(shù)據(jù)緩沖單元、寄存器數(shù)據(jù)轉(zhuǎn)換單元被分成4個字節(jié)的數(shù)據(jù),從串行通信單元依次發(fā)送回上位機。該模塊使用Verilog HDL硬件描述語言編寫,在FPGA上實現(xiàn)。

      4.2.1 串行通信單元

      在本設(shè)計中,上位機發(fā)送端和FPGA上的監(jiān)控模塊的波特率均采用9 600 bps。重點在于波特率確定、數(shù)據(jù)格式約定及確保時序上正確性。標(biāo)準(zhǔn)的串行通信協(xié)議中,每次最多只能傳送8位二進制數(shù)據(jù),而OR1200中需要采集信息的寄存器均為32位,因此,無法將采集到的寄存器數(shù)據(jù)直接發(fā)送給串行通信模塊,需進行數(shù)據(jù)轉(zhuǎn)換。

      4.2.2 單節(jié)拍發(fā)生器單元

      要實現(xiàn)用戶可通過上位機軟件控制OR1200軟核處理器單步運行,需提供給CPU一個單脈沖信號,在串行通信單元中,每接收到一個數(shù)據(jù),就產(chǎn)生一個正脈沖,但是這個正脈沖寬度不確定無法滿足為處理器提供時鐘信號需要。因此,設(shè)計單節(jié)拍發(fā)生器單元。該單元可實現(xiàn)忽略輸入信號周期與占空比,可輸出一個穩(wěn)定的固定寬度的單脈沖信號,用以控制處理器單拍工作。

      4.2.3 四位環(huán)形計數(shù)信息的獲取

      FPGA可進行多個寄存器數(shù)據(jù)同時采集;但串行通信單元只有一個,所以需要對寄存器數(shù)據(jù)信息進行排序,以實現(xiàn)依次發(fā)送。本文采用四位環(huán)形計數(shù)器,最多可進行16個數(shù)據(jù)的選擇,滿足開發(fā)驗證平臺需求。四位環(huán)形計數(shù)器不同輸出與不同寄存器相對應(yīng),被選中寄存器的值從寄存器信息采集單元輸出到下一單元。

      四位環(huán)形計數(shù)器工作需要自己時鐘信號,單脈沖無法滿足要求,每個單脈沖到來后,需采集若干個寄存器信息,需一個連續(xù)時鐘脈沖信號(所采用時鐘脈沖信號為50 MHz),與串行發(fā)送的速率相比速度過高,需要分頻器降低頻率操作,給計數(shù)器提供合適時鐘信號。

      4.2.4 寄存器信息采集單元

      寄存器信息采集單元的數(shù)據(jù)輸入端直接與CPU內(nèi)部各等待采集信號相連,而選擇端被四位環(huán)形計數(shù)器所控制,被選中的數(shù)據(jù)輸出到寄存器數(shù)據(jù)緩沖單元。

      4.2.5 寄存器數(shù)據(jù)的轉(zhuǎn)換

      由于各個寄存器均為32位,而串行通信每次最多只能發(fā)送8位數(shù)據(jù),因此要進行數(shù)據(jù)的暫存與轉(zhuǎn)換,需要將32位的數(shù)據(jù)轉(zhuǎn)換為4個8位數(shù)據(jù)按照合適的時間間隔依次發(fā)送給串行通信單元。每個數(shù)據(jù)發(fā)送完畢后,串行通信模塊會反饋回一個信號,數(shù)據(jù)轉(zhuǎn)換單元據(jù)此信號,發(fā)送下一字節(jié)的數(shù)據(jù)給串行通信模塊。

      通過該監(jiān)控模塊進行流水線的單步跟蹤控制實驗。通過上位機的串行接口發(fā)送指令,每次發(fā)出一個脈沖到CPU的時鐘輸入接口,控制微處理器單拍運行。上位機軟件界面上顯示的取指寄存器數(shù)據(jù)if、譯碼寄存器id、執(zhí)行寄存器ex分別顯示正位于本功能段的指令的值,通過連續(xù)發(fā)送單步運行指令,可觀察到流水線的流動。

      5 結(jié)論

      本文介紹開源軟核處理器的體系結(jié)構(gòu),論述該處理器關(guān)鍵技術(shù),闡述微處理器流水線功能段跟蹤。提出可進行流水線跟蹤監(jiān)控方案,對監(jiān)控模塊的方案功能、結(jié)構(gòu)和實現(xiàn)方式進行描述。通過開源軟核處理器實現(xiàn)的監(jiān)控系統(tǒng)結(jié)構(gòu)簡單、成本較低,可于單片F(xiàn)PGA上實現(xiàn),節(jié)約系統(tǒng)資源;開源軟核處理器的可裁減可修改的特性則使該系統(tǒng)易于實現(xiàn)特定功能,可根據(jù)需要隨時重構(gòu),適合于計算機體系結(jié)構(gòu)設(shè)計與研究。

      [1]曹慧淵,郟輝,胡浩.基于Openrisc的TPCM架構(gòu)設(shè)計[J].信息工程大學(xué)學(xué)報,2011,12(2):246-250.

      [2]Hasamnis M A,Limaye S S.Custom hardware interface using NIOS II processor through GPIO[C].2012 7th IEEE Conference on Industrial Electronics and Applications(ICIEA),Singapore: IEEE,2012:1381-1385.

      [3]Muralikrishna B,Gnana D K.Input/output peripheral devices con?trol through serial communication using microblaze processor[C]. 2012 International Conference on Devices,Circuits and Systems (ICDCS),Coimbatore:IEEE,2012:532-536.

      [4]Abbasitabar H,Zarandi H R,Salamat R.Susceptibility analysis of LEON3 embedded processor against multiple event transients and upsets[C].2012 IEEE 15th International Conference on Computa?tional Science andEngineering,Nicosia:IEEE,2012:548-553.

      [5]Wang B S,Lv S W,Yang D K,et al.A new solution to GNSS re?ceiver baseband signal processing SOC platform based on open?RISC processor[C].2011 7th International Conference on Wire?less Communications,Networking and Mobile Computing(WiC?OM).Wuhan:IEEE,2011:1-4.

      Design of OpenRISC monitoring system on a chip

      WANG Yu,LIU Hongwei (School of Computer Science and Technology,Harbin Institute of Technology,Harbin 150001,China)

      The paper introduces the basic architecture of the OpenRISC soft core processor, expounds the specific solutions of using open source soft core processor to realize the on-chip processor monitoring system working on FPGA,designed the dual core system on a chip,realized the software and hardware of the key technology monitoring system,verified the effect of the technology through simulation and experiment.

      OpenRISC;FPGA;system on a chip

      TP391.41

      A

      1005-9369(2014)09-0111-05

      2014-06-06

      國家863重大項目(2013AA01A215)

      王宇(1982-),男,工程師,碩士研究生,研究方向為計算機體系結(jié)構(gòu)。E-mail:snowcity@hit.edu.cn

      *通訊作者:劉宏偉,教授,博士生導(dǎo)師,研究方向為容錯計算、移動計算等。E-mail:liuhw@hit.edu.cn

      時間2014-9-18 10:44:12[URL]http://www.cnki.net/kcms/detail/23.1391.S.20140918.1044.007.html

      王宇,劉宏偉.OpenRISC處理器片上監(jiān)控系統(tǒng)設(shè)計[J].東北農(nóng)業(yè)大學(xué)學(xué)報,2014,45(9):111-115.

      Wang Yu,Liu Hongwei.Design of OpenRISC monitoring system on a chip[J].Journal of Northeast Agricultural University, 2014,45(9):111-115.(in Chinese with English abstract)

      猜你喜歡
      流水線寄存器指令
      Gen Z Migrant Workers Are Leaving the Assembly Line
      聽我指令:大催眠術(shù)
      Lite寄存器模型的設(shè)計與實現(xiàn)
      流水線
      ARINC661顯控指令快速驗證方法
      LED照明產(chǎn)品歐盟ErP指令要求解讀
      電子測試(2018年18期)2018-11-14 02:30:34
      分簇結(jié)構(gòu)向量寄存器分配策略研究*
      報廢汽車拆解半自動流水線研究
      SIMATIC IPC3000 SMART在汽車流水線領(lǐng)域的應(yīng)用
      自動化博覽(2014年6期)2014-02-28 22:32:05
      坐標(biāo)系旋轉(zhuǎn)指令數(shù)控編程應(yīng)用
      機電信息(2014年27期)2014-02-27 15:53:56
      横山县| 安阳县| 陈巴尔虎旗| 额敏县| 广东省| 仙居县| 九龙坡区| 睢宁县| 和平区| 乳山市| 项城市| 平阳县| 湄潭县| 荣昌县| 延长县| 沽源县| 轮台县| 鄂托克前旗| 安泽县| 墨脱县| 金寨县| 湘西| 商丘市| 进贤县| 平顺县| 光山县| 浙江省| 富宁县| 珲春市| 云浮市| 磐石市| 凌云县| 高阳县| 勃利县| 望城县| 买车| 牙克石市| 科技| 泊头市| 云和县| 富宁县|