當(dāng)前位置:首頁 > EDA > 電子設(shè)計(jì)自動(dòng)化
[導(dǎo)讀] 摘 要: 提出了一種將堆??臻g劃分為任務(wù)棧和中斷嵌套棧的設(shè)計(jì)結(jié)構(gòu),使堆棧空間最小化。采用VHDL硬件語言,在FPGA設(shè)備上模擬實(shí)現(xiàn)了具有自動(dòng)檢驗(yàn)功能的??臻g管理器。??臻g管理器由不同功能的邏輯模塊組成,主要闡

  摘  要: 提出了一種將堆??臻g劃分為任務(wù)棧和中斷嵌套棧的設(shè)計(jì)結(jié)構(gòu),使堆??臻g最小化。采用VHDL硬件語言,在FPGA設(shè)備上模擬實(shí)現(xiàn)了具有自動(dòng)檢驗(yàn)功能的??臻g管理器。棧空間管理器由不同功能的邏輯模塊組成,主要闡述了狀態(tài)控制邏輯模塊和地址產(chǎn)生邏輯模塊的設(shè)計(jì)方法。

  航空航天、工業(yè)控制、汽車電子和核電站建設(shè)等領(lǐng)域的高速發(fā)展,對嵌入式操作系統(tǒng)實(shí)時(shí)性的要求越來越高。同時(shí),由于FPGA的集成度和速度的不斷提高,使嵌入式操作系統(tǒng)硬件化實(shí)現(xiàn)成為發(fā)展趨勢。硬實(shí)時(shí)操作系統(tǒng)中的堆棧管理對系統(tǒng)的實(shí)時(shí)性和可靠性起著至關(guān)重要的作用,而傳統(tǒng)操作系統(tǒng)內(nèi)核是將每個(gè)任務(wù)的堆棧空間直接進(jìn)行最大化處理,導(dǎo)致大量存儲空間浪費(fèi),另外采用通用RAM尋址方式也不能滿足對被切換任務(wù)信息的快速保護(hù)。

  基于上述問題,本文提出了一種堆??臻g結(jié)構(gòu),設(shè)計(jì)了一款具有自動(dòng)檢驗(yàn)功能的??臻g管理器,并在Xilinx公司的集成開發(fā)環(huán)境FPGA系統(tǒng)上實(shí)現(xiàn)。

  1 堆棧空間結(jié)構(gòu)

  堆??臻g是按先進(jìn)后出(LIFO)原則分配的連續(xù)存儲器空間,可以滿足保護(hù)任務(wù)切換信息和中斷響應(yīng)時(shí)保護(hù)處理器狀態(tài)和任務(wù)參數(shù)數(shù)據(jù)的需要[1],且對每個(gè)任務(wù)分配一個(gè)單獨(dú)的任務(wù)棧和一個(gè)響應(yīng)系統(tǒng)中斷任務(wù)的中斷嵌套棧。如圖1所示,??臻g劃分為n個(gè)任務(wù)棧和1個(gè)中斷嵌套棧。


  任務(wù)棧主要保護(hù)被切換任務(wù)的信息。它存放的數(shù)據(jù)有:任務(wù)代碼首地址、任務(wù)參數(shù)、任務(wù)中定義的局部變量、被調(diào)用函數(shù)的參數(shù)和局部變量及任務(wù)中各個(gè)函數(shù)的返回地址。中斷嵌套棧存放被中斷任務(wù)的數(shù)據(jù),包括發(fā)生中斷時(shí)需要保存的上下文、中斷嵌套時(shí)需要保存的上下文和中斷服務(wù)程序的局部變量。

  在硬實(shí)時(shí)操作系統(tǒng)中,當(dāng)發(fā)生中斷或中斷嵌套時(shí),堆棧地址指針從任務(wù)棧切換到中斷嵌套棧。當(dāng)所有的中斷服務(wù)程序全部執(zhí)行完成后,堆棧地址指針從中斷嵌套棧切換到任務(wù)棧,繼續(xù)執(zhí)行該被中斷的任務(wù)。這種管理方式同以往操作系統(tǒng)采用被中斷任務(wù)的數(shù)據(jù)保存到相應(yīng)任務(wù)堆棧的方法相比,更有效節(jié)約了堆??臻g開銷。

  2 棧空間管理器總體結(jié)構(gòu)

  為了節(jié)約RAM開銷,從總體結(jié)構(gòu)上構(gòu)建了一款具有LIFO及自檢功能的棧空間管理器。??臻g管理器結(jié)構(gòu)包括一個(gè)雙端口存儲單元、狀態(tài)控制邏輯模塊、地址產(chǎn)生邏輯模塊、中斷判斷邏輯。其中狀態(tài)控制邏輯模塊由空/滿標(biāo)志產(chǎn)生邏輯、二進(jìn)制運(yùn)算邏輯和標(biāo)志寄存器組3部分組成;地址產(chǎn)生邏輯模塊由讀/寫地址邏輯、中斷棧邏輯和地址寄存器組3部分組成。

  由圖2可知,狀態(tài)控制邏輯模塊的工作過程為:從標(biāo)志寄存器組中讀出當(dāng)前任務(wù)棧的使用量fcount信號值,fcount信號值傳送至二進(jìn)制運(yùn)算邏輯。在讀/寫控制信號有效的情況下,二進(jìn)制運(yùn)算邏輯有效,修改fcount信號值,修改后的值作為USED的輸出值,同時(shí)寫回到標(biāo)志寄存器的對應(yīng)fcount位中。修改后的信號值也作為空/滿標(biāo)志產(chǎn)生邏輯的輸入信號,空/滿標(biāo)志產(chǎn)生邏輯生成Full/Empty標(biāo)志,并把該標(biāo)志位寫回到標(biāo)志寄存器對應(yīng)位Full/Empty中。其中標(biāo)志寄存器freg的結(jié)構(gòu)如圖3所示,初始值為0000001000000000B。


  中斷判斷邏輯由輸入信號INT與標(biāo)志寄存器位IntNeSTing值決定是否有效。如果有中斷發(fā)生,則中斷棧邏輯有效,中斷棧邏輯生成讀/寫地址,否則讀/寫地址邏輯有效,生成相應(yīng)的讀/寫地址。

  在讀/寫控制信號有效的情況下,從堆棧地址寄存器組中讀出當(dāng)前任務(wù)的地址,經(jīng)過讀/寫地址邏輯或中斷棧邏輯產(chǎn)生堆棧地址指針,作為HOS 堆??臻g的入棧/出棧地址。執(zhí)行入棧時(shí),在同步時(shí)鐘和入??刂菩盘栍行У那闆r下,中斷判斷邏輯判斷是否存在中斷或中斷嵌套,如果沒有,則由寫地址邏輯生成入棧地址;否則由中斷棧邏輯生成寫地址。同理,執(zhí)行出棧時(shí),在同步時(shí)鐘和出棧控制信號有效的情況下,中斷判斷邏輯判斷是否存在中斷或中斷嵌套,如果沒有,則讀地址邏輯生成出棧地址;否則中斷棧邏輯生成出棧地址。

  3 ??臻g管理器設(shè)計(jì)

  為了快速、有效地保護(hù)被切換任務(wù)的信息,并滿足自動(dòng)檢驗(yàn)功能的要求,在??臻g管理器設(shè)計(jì)中設(shè)計(jì)了2個(gè)邏輯模塊,分別為狀態(tài)控制邏輯模塊和地址產(chǎn)生邏輯模塊。狀態(tài)控制邏輯模塊主要生成入棧/出??刂菩盘柡蚒sed信號,地址產(chǎn)生邏輯模塊主要生成有效的入棧/出棧地址?;趯?臻g管理器總體結(jié)構(gòu)工作過程的闡述,在Xilinx公司設(shè)計(jì)的XUP Virtex II Pro 系列的芯片上設(shè)計(jì)一個(gè)模擬??臻g管理器,模擬管理8個(gè)任務(wù),任務(wù)棧的深度為64,寬度為16 bit,中斷嵌套棧的深度為128,寬度為16 bit,容量為10 KB的堆棧空間。在設(shè)計(jì)管理器中,保證管理器快速綜合,使占用FPGA的資源盡可能少,存儲單元的選擇是關(guān)鍵,該系統(tǒng)采用的是FPGA上一個(gè)18 KB的Block RAM資源,使用ISE 8.2i提供的雙端口RAM存儲模塊的 IP核。如果選擇其他方法,如用觸發(fā)器和寄存器搭建存儲單元,則綜合時(shí)間長,且占用大量FPGA的 Slices資源。

  在實(shí)際嵌入式系統(tǒng)應(yīng)用中,根據(jù)系統(tǒng)要求,可計(jì)算出??臻g深度和寬度,具體的深度和寬度在VHDL代碼中修改即可。

  3.1 狀態(tài)控制邏輯模塊設(shè)計(jì)

  由于狀態(tài)標(biāo)志寄存器的空/滿狀態(tài)標(biāo)志位決定??臻g入棧/出棧操作,所以如何設(shè)計(jì)空/滿狀態(tài)標(biāo)志位是關(guān)鍵。為了保護(hù)的數(shù)據(jù)能正確入棧與出棧,防止存儲器出現(xiàn)向上溢出或向下溢出,保證在滿的情況下,不能進(jìn)行push操作;在空的狀態(tài)下,不能進(jìn)行pop操作。控制信號的產(chǎn)生過程如圖4所示。


  在狀態(tài)控制邏輯模塊設(shè)計(jì)時(shí), prio_int信號驅(qū)動(dòng)4個(gè)多路選擇器,選擇對應(yīng)狀態(tài)標(biāo)志寄存器組中的各位段,分別有full信號值、empty信號值、fcount信號值和intNesting信號值。 empty/full信號和push/pop信號作為組合邏輯輸入信號產(chǎn)生相應(yīng)的push_en/pop_en有效控制信號,該控制信號決定??臻g是否執(zhí)行入棧/出棧操作。

  在push_en/pop_en控制信號有效的情況下,驅(qū)動(dòng)二進(jìn)制運(yùn)算邏輯加/減1,輸出運(yùn)算結(jié)果。輸出的信號值有3個(gè)用途:(1)作為空/滿標(biāo)志狀態(tài)產(chǎn)生邏輯的輸入信號,該信號邏輯產(chǎn)生empty/full信號;(2)寫回到fregx對應(yīng)的fcount位中;(3)作為Used輸出信號值,表示當(dāng)前任務(wù)?;蛑袛嗲短讞5氖褂们闆r。

  在產(chǎn)生empty、full信號邏輯模塊設(shè)計(jì)時(shí),采用了對輸入信號的每一位進(jìn)行組合邏輯判斷的方法,使該信號分兩路,一路作為與門組合邏輯的輸入信號產(chǎn)生full信號。如果輸入信號的每一位都為1, 則full信號置1,其他情況置0;另一路作為或門非組合邏輯的輸入信號產(chǎn)生empty信號。如果輸入信號的每一位都為0, 則empty置1,其他情況置0。在整個(gè)邏輯模塊設(shè)計(jì)中,采用組合邏輯設(shè)計(jì),目的是縮短工作時(shí)延,提高系統(tǒng)工作頻率。

  3.2 地址產(chǎn)生邏輯模塊設(shè)計(jì)

  堆棧地址指針SP決定了堆??臻g單元的數(shù)據(jù)正確入棧和出棧,堆棧地址指針SP的獲得在于如何驅(qū)動(dòng)讀/寫邏輯模塊和中斷棧模塊。為了確保被保護(hù)數(shù)據(jù)的有效性和實(shí)時(shí)性,防止出現(xiàn)不確定狀態(tài),須在時(shí)序同步的狀態(tài)下,對數(shù)據(jù)進(jìn)行操作,如圖5所示。


  在地址產(chǎn)生邏輯設(shè)計(jì)時(shí),先對堆棧地址寄存器組賦初值,該模擬系統(tǒng)管理8個(gè)任務(wù),有9個(gè)堆棧地址寄存器,分別為8個(gè)任務(wù)堆棧地址寄存器和1個(gè)中斷嵌套棧堆棧地址寄存器。

  當(dāng)任務(wù)優(yōu)先級Prio信號和中斷使能int_en信號同時(shí)驅(qū)動(dòng)多路選擇器時(shí),堆棧地址指針SP從堆棧地址寄存器組中選擇存放在Pregx中的當(dāng)前任務(wù)的地址,在設(shè)計(jì)的??臻g管理器中,SP指向??臻g的下一個(gè)存儲單元的地址。如果入棧控制信號有效,則SP作為棧空間的尋址地址,寫入數(shù)據(jù),SP加1;如果出??刂菩盘栍行?,則SP減1,改變后的SP值作為??臻g的尋址地址,讀出數(shù)據(jù)。操作完成后,改變后的SP值寫回到對應(yīng)的堆棧地址寄存器組Pregx中。

  4 仿真結(jié)果分析

  本??臻g管理器容量為10 KB,寬度為16 bit。在ISE 8.2i開發(fā)軟件中進(jìn)行了綜合和仿真,設(shè)計(jì)中使用了294個(gè)Slices芯片、396個(gè)觸發(fā)器芯片、274個(gè)input LUTs、60個(gè)bounded IOBs、1個(gè)塊BRAMs。

  仿真時(shí),輸入十進(jìn)制數(shù)的數(shù)據(jù),圖6為系統(tǒng)時(shí)序仿真波形圖。


  (1)當(dāng)INT無效時(shí),即系統(tǒng)中不存在中斷或中斷嵌套。在push有效的情況下,置prio信號值為2,data_in信號值分別為32 768、57 908。仿真時(shí),輸出結(jié)果為:used信號值分別為1、2,而ostcbstkptr信號值分別為128、129;同理,在pop有效情況下,置prio信號值為2,觀察仿真結(jié)果為:dout_out信號值分別為32 768、57 908,used的信號值分別為1、0, ostcbstkptr信號值分別為129、128。由此可得,在無中斷處理的條件下,根據(jù)任務(wù)的優(yōu)先級prio,按LIFO原則在任務(wù)棧中寫入和讀出數(shù)據(jù),并且每次的有效操作同時(shí)修改當(dāng)前任務(wù)的used和ostcbstkptr信號值。

  (2)當(dāng)INT 有效時(shí),即系統(tǒng)中產(chǎn)生中斷或存在中斷嵌套。在push有效的情況下,置prio信號值為6及data_in信號值為8192,觀察仿真結(jié)果為:used信號值依次為1、2、3、4,ostcbstkptr信號值依次為576、577、578、579;同理,在pop有效情況下,置prio為6,此時(shí)的仿真結(jié)果:data_out信號值為8192,used信號值依次輸出4、3、2、1,ostcbstkptr信號值依次輸出579、578、577、576。由此可得,當(dāng)系統(tǒng)中產(chǎn)生中斷或存在中斷嵌套,按LIFO原則在中斷嵌套棧中寫入和讀出數(shù)據(jù),并且每次有效操作同時(shí)修改中斷嵌套棧的used和ostcbstkptr的值。

  由以上結(jié)果分析可知,該實(shí)驗(yàn)驗(yàn)證了??臻g管理器的正確性,符合系統(tǒng)設(shè)計(jì)的要求。

  本文分析了堆??臻g結(jié)構(gòu)及對被切換任務(wù)相應(yīng)數(shù)據(jù)信息的保護(hù),并對堆棧空間進(jìn)行了合理的結(jié)構(gòu)劃分。實(shí)驗(yàn)數(shù)據(jù)表明了該系統(tǒng)的可行性和穩(wěn)定性。??臻g管理器能有效節(jié)約硬實(shí)時(shí)操作系統(tǒng)分配堆棧空間的時(shí)間,減少RAM存儲空間。從硬件角度上看,簡化了設(shè)計(jì),降低了成本,具有一定的使用價(jià)值。目前只在實(shí)驗(yàn)平臺上仿真,下一步擬將??臻g管理器的IP核應(yīng)用于硬實(shí)時(shí)操作系統(tǒng),以提高操作系統(tǒng)的運(yùn)行效率。
 

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運(yùn)營商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡稱"軟通動(dòng)力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉