新聞中心

        EEPW首頁 > EDA/PCB > 設(shè)計應用 > 基于FPGA的棧空間管理器的研究和設(shè)計

        基于FPGA的棧空間管理器的研究和設(shè)計

        作者: 時間:2010-10-09 來源:網(wǎng)絡 收藏

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

        本文引用地址:http://www.104case.com/article/191537.htm

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

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

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

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


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

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

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

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

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


        上一頁 1 2 3 下一頁

        關(guān)鍵詞: FPGA 棧空間 管理器

        評論


        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 怀集县| 泉州市| 安陆市| 阿克陶县| 萨迦县| 遂宁市| 双柏县| 大冶市| 乌鲁木齐市| 永川市| 东山县| 武冈市| 湖南省| 江陵县| 海口市| 上蔡县| 龙岩市| 宜黄县| 锡林浩特市| 鞍山市| 安陆市| 松阳县| 盐城市| 永昌县| 始兴县| 望都县| 子长县| 石城县| 德令哈市| 横峰县| 固安县| 樟树市| 额济纳旗| 博爱县| 邻水| 油尖旺区| 民勤县| 台安县| 新田县| 仙桃市| 苍山县|