亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        嵌入式多線程處理器的執(zhí)行控制設(shè)計方法的研究

        2012-09-06 11:02:18張文波苑凌嬌譚小波付立冬
        沈陽理工大學(xué)學(xué)報 2012年4期
        關(guān)鍵詞:指令系統(tǒng)設(shè)計

        張文波,苑凌嬌,譚小波,付立冬

        (沈陽理工大學(xué)信息科學(xué)與工程學(xué)院,遼寧沈陽110159)

        在目前的單處理器系統(tǒng)中,多線程處理通常使用軟件實現(xiàn),即需依靠運行操作系統(tǒng)完成對線程調(diào)度的管理。這種設(shè)計方法繼承了軟件解決方法的很多優(yōu)點,如線程調(diào)度機制靈活以及最大并發(fā)線程數(shù)量調(diào)整容易等,同時也存在很多不足。首先,依靠操作系統(tǒng)軟件實現(xiàn)多線程操作會占用大量處理器時間,而且操作系統(tǒng)本身管理線程的運行、線程的切換操作以及線程工作現(xiàn)場的保護均需要指令代碼來實現(xiàn),在實現(xiàn)一次線程切換操作時,需要消耗大量的時間才能完成[1],這使得處理器執(zhí)行用戶線程的效率較低;其次,現(xiàn)今的大多數(shù)處理器結(jié)構(gòu)是為單線程處理設(shè)計的,沒有多線程環(huán)境下的硬件保護機制,因而僅依靠上層操作系統(tǒng)的調(diào)度實現(xiàn)多線程的運行,會存在安全漏洞;另外,用戶對于多線程編程開發(fā),也將存在需要依賴系統(tǒng)函數(shù)等實現(xiàn)較復(fù)雜的問題[2]。

        特別是軟硬件資源嚴重受限的嵌入式系統(tǒng)環(huán)境下,利用硬件設(shè)計一個嵌入式多線程調(diào)度處理器具有重要的現(xiàn)實意義,而執(zhí)行控制單元的設(shè)計對整個處理器性能的影響又是至關(guān)重要的。為此,本文重點論述了多線程調(diào)度處理器執(zhí)行控制單元的設(shè)計,該設(shè)計已經(jīng)應(yīng)用于一個通過FPGA實現(xiàn)的處理器中。

        1 處理器執(zhí)行控制

        在這個處理器的流水線設(shè)計上,采用了二級流水線機制,因而在設(shè)計指令執(zhí)行節(jié)拍控制電路時需要同時考慮兩個因素:當(dāng)前指令執(zhí)行節(jié)拍的控制和流水線的控制[3-4]。

        1.1 狀態(tài)機實現(xiàn)指令節(jié)拍控制

        解決處理器指令執(zhí)行節(jié)拍控制的一種很好的方法是采用有限狀態(tài)機(Finite State Machine)。有限狀態(tài)機是指由寄存器和組合邏輯構(gòu)成的,能夠根據(jù)時序進行狀態(tài)轉(zhuǎn)移間的硬件時序電路,是協(xié)調(diào)相關(guān)信號完成特定操作的控制中心。有限狀態(tài)機由三個部分組成:當(dāng)前狀態(tài)(Current State,簡稱CS)、下一個狀態(tài)(Next State,簡稱NS)和輸出邏輯(Output State,簡稱OS)。在有限狀態(tài)機的設(shè)計中,通常,當(dāng)前狀態(tài)通過對一個N位觸發(fā)器進行賦值實現(xiàn),其輸入信號是下一狀態(tài)的輸出,其輸出將作為輸出邏輯的輸入;輸出邏輯是狀態(tài)機的外部輸出信號,由外部輸入和當(dāng)前狀態(tài)決定。結(jié)合有限狀態(tài)機的這些特點,為了實現(xiàn)對譯碼電路及依靠時序控制的邏輯單元的控制,有限狀態(tài)機成了最佳選擇。

        為此,在設(shè)計中采用摩爾型有限狀態(tài)機,并結(jié)合VHDL語言對多線程處理器進行了描述。在此設(shè)計中,所有狀態(tài)均使用VHDL語言來實現(xiàn)。由于VHDL[5-6]語句描述的是 FPGA 芯片中的實際邏輯通路,為了獲得可綜合的、高效的VHDL狀態(tài)機描述,通常使用枚舉類數(shù)據(jù)類型定義狀態(tài)機的狀態(tài),并結(jié)合多進程方式描述狀態(tài)機的內(nèi)部邏輯,指令執(zhí)行的狀態(tài)機如圖1所示。

        圖1 指令執(zhí)行的狀態(tài)機

        每一個狀態(tài)的躍遷在時間上均是在處理器主時鐘脈沖的上升或下降沿處發(fā)生[7]。由于處理器的外部存儲器芯片的操作速度可能遠慢于處理器的執(zhí)行速度[8],因而在該狀態(tài)機中,設(shè)有“取指令準(zhǔn)備狀態(tài)(IFdelay)”與“存儲器訪問準(zhǔn)備狀態(tài)(MEMdelay)”。

        處理器在上電后首先執(zhí)行一次復(fù)位操作。復(fù)位操作結(jié)束后,處理器進入正常的執(zhí)行過程,進入取指準(zhǔn)備狀態(tài)(IFdelay),而后在主時鐘的上升沿進入取指(IF)和譯碼(DI)狀態(tài),在處理器的譯碼過程中,將會判斷所執(zhí)行的指令是否需要進行外存儲器訪問操作,如果需要訪問外存,即memos信號為“1”,狀態(tài)機的下一個狀態(tài)將會進入存儲器訪問準(zhǔn)備狀態(tài)(MEMdelay),然后在主時鐘的上升沿進入存儲器訪問狀態(tài)(MEM)。若當(dāng)前指令不包含訪問外存的需求,處理器在譯碼后將直接進入執(zhí)行操作狀態(tài)(EX)和寫回操作狀態(tài)(WB)。在EX狀態(tài)下,主要完成邏輯操作、數(shù)學(xué)運算操作、條件判斷及跳轉(zhuǎn)語句的地址運算等工作;而在WB狀態(tài)下,運算的結(jié)果被寫回處理器的通用寄存器中。

        1.2 多周期流水線設(shè)計

        因為本文所實現(xiàn)的處理器的工作頻率為20MHz,速度遠高于系統(tǒng)所使用的靜態(tài)隨機存儲器,所以在進行訪存操作如MEM和IF前需要增加一定的延時。在實現(xiàn)中,分別添加了訪存準(zhǔn)備節(jié)拍MEMdelay和IFdelay。這兩個訪存準(zhǔn)備節(jié)拍會讓處理器延遲三個晶振周期。其中,處理器執(zhí)行每條指令都要經(jīng)過一個IFdelay操作,這是因為本處理器的指令空間在片外的這個靜態(tài)存儲器中。由此可見,這種方法也在處理器的正常執(zhí)行時形成一個了瓶頸。

        因而,在設(shè)計處理器的流水節(jié)拍時,除了考慮流水路徑的設(shè)計以外,還分析了如何可以更好協(xié)調(diào)處理器內(nèi)部指令的流水執(zhí)行以及訪問存儲器操作的同步問題。針對這個問題,提出了“多周期流水線設(shè)計”的流水設(shè)計模型。在傳統(tǒng)的處理器流水線設(shè)計中,通常是將取指、譯碼、執(zhí)行、寫回等每一個節(jié)拍操作定義為流水線的一級。而在實現(xiàn)過程中,考慮到以上瓶頸問題,將處理器的流水線分為兩級,每一級為四個晶振周期:第一級流水線包括取指準(zhǔn)備IFdelay和取指IF操作,第二級流水線包括譯碼DI、執(zhí)行EX和寫回WB操作。

        2 硬件多線程執(zhí)行機制的實現(xiàn)

        2.1 硬件多線程機制的實現(xiàn)

        在硬件結(jié)構(gòu)上,依據(jù)本文所實現(xiàn)的處理器只擁有一個處理器核心,它是按單位時間片(一個指令周期)依次調(diào)度多個線程的方式執(zhí)行多線程。在每一個指令周期,處理器需要按順序完成“恢復(fù)工作空間”、“執(zhí)行當(dāng)前空間中的指令”、“保護當(dāng)前的工作空間”這三個步驟。

        首先,每個線程的工作空間如指針寄存器及通用寄存器組等的保護,可以通過在處理器內(nèi)部重復(fù)設(shè)置多組相同的資源,并劃分為多個資源頁實現(xiàn),如圖2中所示的GPR1、GPR2等。當(dāng)處理器需要切換線程時,處理器將會以換頁的方式對這些資源進行切換。這些資源的分頁號,則是依靠處理器內(nèi)的線程選擇器所產(chǎn)生的線程號來控制。在實現(xiàn)過程中,需要重點考慮如何連貫地將這三個操作過程在最短的時間內(nèi)順序完成。

        其次,在處理器執(zhí)行過程中,某些內(nèi)部資源并非一直需要使用,例如,通用寄存器只有在處理器的EX和WB節(jié)拍里才會使用。據(jù)此,可以通過適當(dāng)排列操作順序,以及在硬件結(jié)構(gòu)上設(shè)置一些緩沖寄存器,來達到處理器中當(dāng)前線程的執(zhí)行、保護以及與下一線程工作空間的恢復(fù)操作并行執(zhí)行的目的。

        圖2 硬件多線程處理器結(jié)構(gòu)框圖

        2.2 線程選擇模塊的實現(xiàn)

        本文所實現(xiàn)的處理器,每一個硬件線程都有唯一的線程號標(biāo)識,在處理器內(nèi)部,依靠這些線程號區(qū)分硬件線程。當(dāng)前執(zhí)行的線程號可以通過查詢線程控制寄存器的最高三位來獲得。

        在多線程執(zhí)行時,線程的執(zhí)行順序由線程選擇器控制,它的結(jié)構(gòu)原理圖,如圖3所示。

        圖3 線程選擇器結(jié)構(gòu)原理圖

        在這個選擇器中包含一個線程選擇列陣。列陣輸出端輸出的是下一個指令周期處理器將要執(zhí)行的線程號。列陣的輸入激勵由兩部分組成,分別為:線程控制寄存器中當(dāng)前激活的線程標(biāo)識和線程基數(shù)計數(shù)器的輸出。

        3 處理器工作空間的保護

        在多線程下,處理器工作空間的保護實際就是對處理器內(nèi)部各個公用的工作空間的保護。本文所實現(xiàn)的處理器中,線程切換時需要保護的部分如下:指針寄存器PC、堆棧指針寄存器SP、數(shù)據(jù)段指針寄存器DS、代碼段指針寄存器CS、通用寄存器組、處理器狀態(tài)字寄存器、內(nèi)部私有存儲器空間。

        在具體實現(xiàn)上有兩種方法:一種是頁面管理法,另外一種是資源快速切換法。

        圖4 處理器工作空間的保護、恢復(fù)時序邏輯圖

        前一種方法是建立多個重復(fù)的需要保護的寄存器或存儲器資源,處理器的硬件線程切換管理電路將這些寄存器、存儲器按頁分為單位管理,而每個線程只能訪問某個特定頁分中的資源。這種方法的特點在于,由于被保護的資源通過頁面管理實現(xiàn)切換,不需要搬動被保護的寄存器或存儲器中的數(shù)據(jù),因而在執(zhí)行時速度較快,同時控制電路也比較簡單,但在設(shè)計中需要消耗掉大量的寄存器或存儲器資源,在FPGA中進行底層布線實現(xiàn)時會影響布線的效果,使得處理器的工作主頻降低。后一種方法是在處理器中額外設(shè)置一塊高速靜態(tài)存儲器,當(dāng)處理器需要切換資源時,利用硬件電路將要保護的寄存器中的內(nèi)容存放到高速存儲器當(dāng)中。在這樣的設(shè)計中,高速存儲器可以放到存儲器中的任何地方,而不一定是在被保護寄存器、存儲器的模塊中,這樣在被保護的寄存器、存儲器本身規(guī)模比較大的時候,有助于削減模塊的規(guī)模,以達到較高的處理器執(zhí)行頻率;同時,最重要的是由于保護空間與被保護的資源在空間上分開,可以對被保護的寄存器、存儲器添加特殊屬性端口,而不需要將這些特性設(shè)計到高速存儲器上。但這種設(shè)計方法也有它自身的缺點,如控制電路復(fù)雜,保護過程消耗時間較長等。

        至于具體使用哪種方法,應(yīng)根據(jù)在具體環(huán)境中實現(xiàn)的難易程度和所需要的切換速度來選擇。在設(shè)計中,考慮到最大化地利用FPGA自身的結(jié)構(gòu)特點,以及具體實現(xiàn)的方便,對通用寄存器、私有存儲器空間采用第一種方法實現(xiàn)對其保護,而對PC、SP、CS、DS以及處理器狀態(tài)字寄存器的保護采用第二種方法。圖4給出了多線程的運行環(huán)境下,這些工作空間的保護以及恢復(fù)的操作時序。

        4 系統(tǒng)性能分析

        4.1 測試系統(tǒng)及測試工具

        在測試過程中,使用如下三種系統(tǒng):

        (1)硬件多線程處理器系統(tǒng):此系統(tǒng)是根據(jù)上面論述的方法設(shè)計的,處理器的工作主頻為20MHz,配置有64Kbytes的程序存儲器空間,最大支持8個硬件線程。

        (2)WebitX操作系統(tǒng):此系統(tǒng)最大支持8個任務(wù)。使用ATMEL公司AT90S8515 RISC單片機處理器,處理器工作頻率 8MHz,系統(tǒng)配置有4Kbytes程序存儲器空間。

        (3)RMX51操作系統(tǒng):此系統(tǒng)處理器為Intel公司的i8051處理器,工作頻率12MHz。系統(tǒng)配置12Kbytes程序存儲器空間。

        4.2 測試內(nèi)容及方法

        由于上述三套系統(tǒng)的處理器的機器指令碼、指令執(zhí)行所需時鐘周期數(shù)以及處理速度各不相同,所以直接比較絕對的處理時間并不準(zhǔn)確。而采用用戶線程執(zhí)行比率的方法可以客觀和準(zhǔn)確地比較處理時間,消除絕對處理時間對處理器效率的影響。因而本文采用比較用戶線程執(zhí)行比率的辦法。執(zhí)行比率定義如下:

        執(zhí)行比率=多線程執(zhí)行總時間/單個線程執(zhí)行總時間;

        執(zhí)行效率=系統(tǒng)支持最大線程數(shù)/執(zhí)行比率;

        首先讓三套測試系統(tǒng)都只運行一個線程,雖然測試程序代碼各不相同,但功能是一樣的:連續(xù)執(zhí)行加1操作100次,分別測出各系統(tǒng)完成操作需要的時間。然后,讓三套測試系統(tǒng)同時各執(zhí)行8個線程,且每套系統(tǒng)中的所有線程執(zhí)行的程序相同,不同系統(tǒng)的程序功能又是一樣的,仍然是連續(xù)執(zhí)行加1操作100次。

        測試中,分別使用這三個系統(tǒng)的通用I/O端口作為測試程序執(zhí)行狀態(tài)的指示標(biāo)志位。通過事先編寫的程序,定義通用I/O口在系統(tǒng)初始化后為低,第一條代碼運行前,將I/O置高,測試程序完全運行結(jié)束后,又將通用I/O置低。用邏輯分析儀抓取通用I/O口處于高電平的時間,可以得到測試程序的運行時間。

        4.3 測試結(jié)果及分析

        表1 系統(tǒng)測試結(jié)果

        從表1中可以看出,對于硬件多線程處理器系統(tǒng),由于線程的切換交由處理器硬件完成,并不需要執(zhí)行線程切換程序指令,因而在8個線程同時執(zhí)行的情況下,執(zhí)行效率較高,總運行時間基本等于一個線程運行時間的8倍,各個線程能夠各自獨立地完成任務(wù),并且得到了預(yù)期的結(jié)果。而對于操作系統(tǒng)軟件實現(xiàn)的線程調(diào)度,雖然各個線程也能并發(fā)執(zhí)行并得到正確的計算結(jié)果,但是,由于需要執(zhí)行線程切換調(diào)度保護處理程序,在實際運行中將額外消耗較多的處理器時間,因此執(zhí)行效率遠小于1。通過以上分析可以看出,本設(shè)計所實現(xiàn)的硬件多線程處理器中執(zhí)行控制機制在多線程條件下的執(zhí)行效率較高,證明該設(shè)計是合理的。

        5 結(jié)論

        采用硬件實現(xiàn)線程的調(diào)度、資源的保護等功能,提高了系統(tǒng)多線程處理的效率及安全性,并降低了在多線程環(huán)境下程序開發(fā)的復(fù)雜性。隨著對多線程處理能力需求的增長,在很多處理系統(tǒng)尤其是在自身處理能力較弱的嵌入式系統(tǒng)中,本文所提出的執(zhí)行控制機制將在硬件多線程處理器的設(shè)計和實現(xiàn)中有著廣泛應(yīng)用。

        [1]方建,石永山.數(shù)字電路的VHDL語言設(shè)計方法[J].光電技術(shù)應(yīng)用,2006,3(21):38 -42.

        [2]趙海,陳飛鳴.嵌入式Internet的體系結(jié)構(gòu)及其ONDC模型的實現(xiàn)[J].東北大學(xué)學(xué)報(自然科學(xué)版),1999,20(3):257-260.

        [3]張晨曦.計算機系統(tǒng)結(jié)構(gòu)[M].北京:高等教育出版社,2008:47-192.

        [4]喻之斌,金海,鄒南海.計算機體系結(jié)構(gòu)軟件模擬技術(shù)[J].軟件學(xué)報,2008,4(19):1052 -1068.

        [5]宋紅.計算機組成原理[M].北京:中國鐵道出版社,2008:34-153.

        [6]張慧,孫立香.VHDL程序設(shè)計的教學(xué)研究[J].科教導(dǎo)刊,2011(10):144-179.

        [7]曾光裕,李清寶,王煒.計算機系統(tǒng)結(jié)構(gòu)課程群建設(shè)[J].中國電子教育,2011(2):55 -59.

        [8]張朝福,徐惠興,樓銘達,等.基于AVR高速嵌入式單片機的ATSE控制器[J].智能電器及計算機應(yīng)用,2009,13(3):18 -19.

        猜你喜歡
        指令系統(tǒng)設(shè)計
        聽我指令:大催眠術(shù)
        Smartflower POP 一體式光伏系統(tǒng)
        WJ-700無人機系統(tǒng)
        ZC系列無人機遙感系統(tǒng)
        北京測繪(2020年12期)2020-12-29 01:33:58
        ARINC661顯控指令快速驗證方法
        LED照明產(chǎn)品歐盟ErP指令要求解讀
        電子測試(2018年18期)2018-11-14 02:30:34
        瞞天過?!律O(shè)計萌到家
        連通與提升系統(tǒng)的最后一塊拼圖 Audiolab 傲立 M-DAC mini
        設(shè)計秀
        海峽姐妹(2017年7期)2017-07-31 19:08:17
        有種設(shè)計叫而專
        Coco薇(2017年5期)2017-06-05 08:53:16
        无码一区二区三区网站| 欧美午夜刺激影院| 国产福利姬喷水福利在线观看| av无码天堂一区二区三区| 亚洲综合中文一区二区| 亚洲精品宾馆在线精品酒店| 国产成人一区二区三区影院动漫| 极品美女高潮喷白浆视频| 高清亚洲成av人片乱码色午夜| 亚洲另类丰满熟妇乱xxxx| 色爱无码av综合区| 国产nv精品你懂得| 一区二区三区免费观看在线视频| 成人av蜜桃在线观看| 色天使综合婷婷国产日韩av| 少妇高潮喷水久久久影院| 中文字幕一区二区网站| 女同三级伦理在线观看| 国色天香精品一卡2卡3卡4| 亚洲一区欧美二区| 日韩精品中文字幕人妻中出| 免费人成视频网站在线不卡| 小荡货奶真大水真多紧视频| 久久无码精品精品古装毛片| 蜜桃精品国产一区二区三区| 国精产品一区一区三区| 欧美日韩中文国产一区发布| 国产一区二区三区免费在线视频| 日本一区二区三区四区在线视频| 久久精品国产亚洲7777| 丰满岳乱妇在线观看中字无码| 亚洲成人激情在线影院| 国产一区二区三区在线综合视频| 深夜福利小视频在线观看| 国产一区二区三区免费在线视频| 国产激情在线观看免费视频| 午夜福利av无码一区二区| 久久精品国产99精品国偷| 国产人妖直男在线视频| 粗大的内捧猛烈进出少妇| 亚洲爆乳无码专区|