chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

基于ECB存儲單元的信號量管理的硬件設(shè)計與實現(xiàn)

電子設(shè)計 ? 來源:郭婷 ? 作者:電子設(shè)計 ? 2019-07-23 08:14 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

嵌入式技術(shù)執(zhí)行專用功能并被內(nèi)部計算機控制的設(shè)備或者系統(tǒng)。嵌入式系統(tǒng)不能使用通用型計算機,而且運行的是固化的軟件,用術(shù)語表示就是固件(firmware),終端用戶很難或者不可能改變固件。盡管絕大多數(shù)嵌入式系統(tǒng)是用戶針對特定任務(wù)而定制的,但它們一般都是由下面幾個模塊組成的: 一臺計算機或者微控制器,字長可能是可憐的4位或者8位、16位、32位甚至是64位。 用以保存固件的ROM(非揮發(fā)性只讀存儲器)。 用以存程序數(shù)據(jù)的RAM(揮發(fā)性的隨機訪問存儲器)。 連接微控制器和開關(guān)、按鈕、傳感器、模數(shù)轉(zhuǎn)化器、控制器、LED(發(fā)光二極管)和顯示器的I/O端口。 一個輕量級的嵌入式操作系統(tǒng),一般是自行編寫的。 專門的單片微控制器是大多數(shù)嵌入式系統(tǒng)的核心。通過把若干個關(guān)鍵的系統(tǒng)組成部分集成到單個芯片上,系統(tǒng)設(shè)計者就可以得到小而便宜、可以操作較少外圍電子設(shè)備的計算機。

隨著嵌入式技術(shù)的發(fā)展,實時操作系統(tǒng)RTOS(Real Time Operating System)被越來越多地應(yīng)用在嵌入式系統(tǒng)中,RTOS,即:實時系統(tǒng)(Real-time operating system),實時系統(tǒng)能夠在指定或者確定的時間內(nèi)完成系統(tǒng)功能和外部或內(nèi)部、同步或異步時間做出響應(yīng)的系統(tǒng)。它的正確性不僅依賴系統(tǒng)計算的邏輯結(jié)果,還依賴于產(chǎn)生這個結(jié)果的時間。因此實時系統(tǒng)應(yīng)該在事先先定義的時間范圍內(nèi)識別和處理離散事件的能力;系統(tǒng)能夠處理和儲存控制系統(tǒng)所需要的大量數(shù)據(jù)。 為了便于理解,機場的售票系統(tǒng)就是一個典型的實時系統(tǒng)。目前,軟件硬化常用的有兩種方法:(1)微程序方式,特點是成本較低,方便靈活;(2)組合邏輯方式,特點是速度快、可靠性高,隨著大規(guī)模集成電路的發(fā)展,這種方式逐漸顯示出優(yōu)越性。信號量管理是RTOS中頻繁運行的程序段之一,如果將這一部分用硬件實現(xiàn),對提高機器的速度將有很明顯的效果。

1 信號量管理的工作原理

μC /OS-II是一個完整的、可移植、可固化、可裁剪的占先式實時多任務(wù)內(nèi)核。μC/OS-II絕大部分的代碼是用ANSI的C語言編寫的,包含一小部分匯編代碼,使之可供不同架構(gòu)的微處理器使用。至今,從8位到64位,μC/OS-II已在超過40種不同架構(gòu)上的微處理器上運行。μC/OS-II已經(jīng)在世界范圍內(nèi)得到廣泛應(yīng)用,包括很多領(lǐng)域, 如手機、路由器、集線器、不間斷電源、飛行器、醫(yī)療設(shè)備及工業(yè)控制上。實際上,μC/OS-II已經(jīng)通過了非常嚴格的測試,并且得到了美國航空管 理局(Federal Aviation Administration)的認證,可以用在飛行器上。這說明μC/OS-II是穩(wěn)定可靠的,可用于與人性命攸關(guān)的安全緊要(safety critical)系統(tǒng)。除此以外,μC/OS-II 的鮮明特點就是源碼公開,便于移植和維護。

μC/OS-II中信號量主要數(shù)據(jù)結(jié)構(gòu)由兩部分組成:(1)信號量的計數(shù)值Cnt。當數(shù)值為正時用于記錄可使用的資源數(shù),當數(shù)值為負,其絕對值表示等待當前信號量的任務(wù)個數(shù);(2)等待該信號量的任務(wù)列表。信號量的基本數(shù)據(jù)結(jié)構(gòu)需要申請一個ECB來存儲。一個任務(wù)或ISR可以通過ECB向另外的任務(wù)發(fā)信號,一個任務(wù)可以等待另一個任務(wù)或中斷服務(wù)子程序給它發(fā)送信號,多個任務(wù)可同時等待同一個事件的發(fā)生。

信號量管理的工作原理框圖如圖1所示。信號量管理模塊以及事件控制塊管理都是獨立于CPU的邏輯結(jié)構(gòu),都可以直接從數(shù)據(jù)總線上獲得數(shù)據(jù)信息進行處理,在信號量管理模塊與ECB的存儲模塊間建立一條數(shù)據(jù)通路,在不增加總線負擔(dān)的情況下加快二者間的通信

基于ECB存儲單元的信號量管理的硬件設(shè)計與實現(xiàn)

2 信號量管理的硬件設(shè)計與實現(xiàn)

2.1 ECB的設(shè)計與實現(xiàn)

ECB是實現(xiàn)信號量管理的基本數(shù)據(jù)結(jié)構(gòu),因此在設(shè)計實現(xiàn)信號量管理之前,要先完成ECB管理的設(shè)計與實現(xiàn)。本系統(tǒng)中ECB的結(jié)構(gòu)參照μC/OS-II中ECB的結(jié)構(gòu)設(shè)計。每個ECB存儲單元包含一個EventType(事件類型),用于標記當前ECB被分配給信號量、互斥型信號量、郵箱還是消息隊列;當一個ECB被分配給信號量時,Cnt做為信號量的計數(shù)器;ECB中的等待表lut用于存儲等待當前信號量任務(wù)的優(yōu)先級。

ECB中等待表硬件實現(xiàn)的結(jié)構(gòu)示意圖如圖2所示。等待表的結(jié)構(gòu)類似一個8行8列的矩陣,存儲單元編號從00~77。當一個任務(wù)在申請當前信號量而沒有獲得時,應(yīng)將當前任務(wù)設(shè)置為等待狀態(tài),令Wr有效,以申請該信號量任務(wù)的優(yōu)先級為地址,進行譯碼,選通相應(yīng)單元后再進行寫1操作。例如,申請該信號量的任務(wù)優(yōu)先級Sid為111111時,對其進行譯碼,高三位行地址譯碼為10000000,低三位列地址譯碼為10000000,選中77單元向其寫入1,則優(yōu)先級為111111的任務(wù)進入等待狀態(tài)。若要將一個處于等待表中的任務(wù)刪除,令De有效,同樣,根據(jù)地址線選通某一存儲單元,向單元內(nèi)寫0,從而刪除某一處于等待狀態(tài)的任務(wù)。在控制電路中設(shè)置EventGrp 8位寄存器,用于記錄當前各行中是否有等待任務(wù);如圖2所示,第i行中某一位置為1,EventGrp(i)=1,圖中狀態(tài)EventGrp(7)=1、EventGrp(6)=1、EventGrp(0)=0。Rd有效時,控制電路根據(jù)EventGrp采用一定算法生成優(yōu)先級的高三位;根據(jù)EventGrp讀出某行后生成優(yōu)先級低三位;下一時鐘送出最高優(yōu)先級。以上為對等待表進行基本讀寫操作的過程。

基于ECB存儲單元的信號量管理的硬件設(shè)計與實現(xiàn)

該硬件系統(tǒng)中ECB基本存儲單元通過調(diào)用系統(tǒng)的IP核來實現(xiàn),根據(jù)存儲數(shù)據(jù)的不同,采用不同的IP核;多個基本單元通過一個上層文件生成一個ECB單元,每個單元再作為一個基本器件用于實現(xiàn)整個ECB的存儲體。通過地址的譯碼選通ECB單元,根據(jù)控制信號對數(shù)據(jù)做讀寫操作。

2.2 創(chuàng)建/刪除一個信號量

ECB是公共數(shù)據(jù)結(jié)構(gòu),在傳統(tǒng)的操作系統(tǒng)中創(chuàng)建一個信號量時,首先需要申請一個ECB,初始化后才可以對這個信號量進行P/V等操作;在刪除一個信號量后,要對信號量占用的ECB進行釋放。創(chuàng)建信號量時,信號量管理模塊首先要申請一個空ECB,查找ECB的整個存儲體判斷是否有空余的ECB。如果沒有空余ECB,則信號量管理模塊將獲得一個申請失敗信號;否則將獲得一個空ECB的地址,并將其返回給創(chuàng)建該信號量的任務(wù);再根據(jù)地址初始化ECB。如果用硬件實現(xiàn)信號量管理后,按照以上過程進行操作會浪費很多時鐘,數(shù)據(jù)在模塊間來回傳送增加通信次數(shù),必然降低系統(tǒng)的執(zhí)行速度。如圖3所示。為方便討論,假設(shè)系統(tǒng)中ECB有64個(可以根據(jù)系統(tǒng)中ECB的個數(shù)來改變表的大?。?,表的每個位置對應(yīng)一個ECB,當某一位置為0時表示該位置對應(yīng)的ECB空閑,為1時表示該位置對應(yīng)的ECB被占用。如圖3所示,第1行、第8列為1,表示偏移地址為000111的ECB被占用;第2行、第2 列為1,偏移地址為010010的ECB被占用。

基于ECB存儲單元的信號量管理的硬件設(shè)計與實現(xiàn)

在創(chuàng)建一個信號量時,查找ECB映射表,判斷是否有為0的位置。如果沒有則返回申請失?。环駝t尋找一個為0的位置,生成ECB的地址,返回給創(chuàng)建該信號量的任務(wù)。在映射表中相應(yīng)位置寫1表明該ECB已經(jīng)被占用,下一時鐘對申請到的ECB進行初始化,寫入信號量初始值。在刪除一個信號量時,首先根據(jù)信號量的ECB地址查詢映射表中對應(yīng)位置是否為0,如果為0,則表示該信號量已經(jīng)被其他任務(wù)刪除,返回刪除錯誤;否則清除該信號量在映射表中的記錄,通知ECB管理模塊將等待該信號的所有任務(wù)置為就緒態(tài),觸發(fā)一次任務(wù)調(diào)度,清除ECB中的該信號量的所有信息。

2.3 申請/釋放一個信號量(P/V操作)

信號量管理中的主要操作就是P/V操作,P/V操作實現(xiàn)的RTL圖如圖4所示。

基于ECB存儲單元的信號量管理的硬件設(shè)計與實現(xiàn)

(1)P操。令pend_sem有效,首先應(yīng)判斷申請信號量的任務(wù)是否為中斷服務(wù)程序(在μC/OS-II中,中斷服務(wù)程序不允許申請一個信號量),如果是則返回申請錯誤信息,否則進行以下操作:令read_cnt有效去ECB管理模塊讀Cnt值;讀回后判斷Cnt的值。如果Cnt>0,當前申請任務(wù)獲得該信號量,任務(wù)繼續(xù)執(zhí)行,返回申請成功信號pend_err為低;否則pend_err為高阻,根據(jù)申請類型Pend_type來決定是否修改Cnt值,是否將申請信號量的任務(wù)置為等待態(tài)。

(2)V操作。令post_sem有效,通過硬件電路使read_cnt有效,同時給出信號量的ECB地址,下一時鐘讀出Cnt值,并判斷;如果Cnt>0則表示沒有任務(wù)等待當前信號量,修改Cnt值;如果Cnt<0則表示當前有任務(wù)等待該信號量,修改Cnt值,令select_h有效,從ECB任務(wù)等待表中找出優(yōu)先級最高的任務(wù),通知任務(wù)管理器將該任務(wù)置為就緒態(tài),觸發(fā)一次任務(wù)調(diào)度。

3 功能仿真

為驗證設(shè)計對系統(tǒng)性能的影響,采用ISE 8.2軟件對各個模塊進行時序仿真。P/V操作仿真結(jié)果如圖5所示。P/V操作需要在兩個模塊之間進行讀寫數(shù)據(jù),操作過程中,P/V信號始終有效。

基于ECB存儲單元的信號量管理的硬件設(shè)計與實現(xiàn)

(1)pend_sem有效(P操作)。申請信號量任務(wù)的優(yōu)先級為01,申請信號量的地址為05。pend_sem有效,令read_cnt為高,根據(jù)地址pend_addr讀當前信號量的值Cnt,下一個時鐘返回數(shù)值Cnt_in為0002,大于0;任務(wù)獲得信號量繼續(xù)執(zhí)行,wr_cnt為高,Cnt值進行減1操作后送Cnt_out寫回ECB。

(2)post_sem有效(V操作)。根據(jù)地址讀Cnt值,Cnt值為FFFE<0(Cnt值以補碼形式存儲)。下一個時鐘Cnt進行加1操作后寫回ECB,同時Select_h為高,從等待該信號量的任務(wù)列表中選擇出優(yōu)先級最高的任務(wù)設(shè)置為就緒態(tài),觸發(fā)一次任務(wù)調(diào)度。

(3)申請一個信號量。申請信號量任務(wù)的優(yōu)先級為03,申請的信號量的地址為09。如果下一個時鐘讀回的Cnt值為FFFD<0,并且申請類型為高(有等待申請),則修改Cnt值寫回,令wr_sid為高,將當前申請任務(wù)的優(yōu)先級送pend_prio_out寫入等待該信號的任務(wù)列表中。

(4)申請一個信號量,讀回的Cnt值為FFFA<0,但當前申請類型為低(無等待申請),不進行任何操作,返回申請失敗,通知任務(wù)管理器將當前任務(wù)阻塞。

用戶程序在創(chuàng)建、刪除一個信號量以及申請某類共享資源進行P/V操作時,用軟件實現(xiàn)信號量管理中,一般先從用戶態(tài)轉(zhuǎn)到系統(tǒng)態(tài),然后進行基本數(shù)據(jù)的查詢、讀出、比較、判斷等,再轉(zhuǎn)相應(yīng)的程序入口,最后還要從系統(tǒng)態(tài)轉(zhuǎn)回用戶態(tài)。而用硬件實現(xiàn)信號量管理后進行以上操作只需一條讀或?qū)懼噶?,并且這條指令在用軟件實現(xiàn)的信號量管理中也是必須的,其他操作都由硬件邏輯來實現(xiàn),簡化了操作過程。因此,硬化信號量管理后對整個機器速度的提高是非常明顯的,特別是對資源種類多、數(shù)量大的計算機系統(tǒng),速度的提高就會更加明顯。另一方面,由于硬件的可靠性遠超過軟件的可靠性,所以硬化后可提高RTOS的可靠性。

單片機處理器能力的提高和應(yīng)用程序功能的復(fù)雜化、精確化,迫使應(yīng)用程序劃分為多個重要性不同的任務(wù),在各任務(wù)間優(yōu)化地分配CPU時間和系統(tǒng)資源,同時還要保證實時性。靠用戶自己編寫一個實現(xiàn)上述功能的內(nèi)核一般是不現(xiàn)實的,而這種需求又是普遍的。在這種形勢之下,由專業(yè)人員編寫的、滿足大多數(shù)用戶需要的高性能RTOS內(nèi)核就是一種必然結(jié)果了。對程序?qū)崟r性和可靠性要求的提高也是RTOS發(fā)展的一個原因。此外,單片機系統(tǒng)軟件開發(fā)日趨工程化,產(chǎn)品進入市場時間不斷縮短,也迫使管理人員尋找一種有利于程序繼承性、標準化、多人并行開發(fā)的管理方式。從長遠的意義上來講,RTOS的推廣能夠帶來嵌入式軟件工業(yè)更有效、更專業(yè)化的分工,減少社會重復(fù)勞動、提高勞動生產(chǎn)率。


聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 微控制器
    +關(guān)注

    關(guān)注

    48

    文章

    8183

    瀏覽量

    160013
  • 控制器
    +關(guān)注

    關(guān)注

    114

    文章

    17503

    瀏覽量

    188581
  • 嵌入式
    +關(guān)注

    關(guān)注

    5175

    文章

    19986

    瀏覽量

    324587
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    FreeRTOS信號量使用教程

    信號量是操作系統(tǒng)中重要的一部分,信號量一般用來進行資源管理和任務(wù)同步, FreeRTOS中信號量又分為二值信號量、 計數(shù)型
    的頭像 發(fā)表于 12-19 09:22 ?4061次閱讀
    FreeRTOS<b class='flag-5'>信號量</b>使用教程

    硬件實時操作系統(tǒng)信號量管理的工作原理是什么?

    )組合邏輯方式,特點是速度快、可靠性高,隨著大規(guī)模集成電路的發(fā)展,這種方式逐漸顯示出優(yōu)越性[2]。信號量管理是RTOS中頻繁運行的程序段之一,如果將這一部分用硬件實現(xiàn),對提高機器的速度
    發(fā)表于 10-30 06:35

    請問信號量是一種特殊的ECB嗎?

    可以說信號量就是一種特殊的ECB嗎?
    發(fā)表于 03-09 04:36

    使用FAMOS管的存儲單元

    使用FAMOS管的存儲單元
    發(fā)表于 12-04 12:27 ?1008次閱讀
    使用FAMOS管的<b class='flag-5'>存儲單元</b>

    硬件實時操作系統(tǒng)信號量管理的工作原理是什么?怎樣去實現(xiàn)它?

    硬件系統(tǒng)中ECB基本存儲單元通過調(diào)用系統(tǒng)的IP核來實現(xiàn),根據(jù)存儲數(shù)據(jù)的不同,采用不同的IP核;多個基本
    發(fā)表于 07-18 08:30 ?4565次閱讀
    <b class='flag-5'>硬件</b>實時操作系統(tǒng)<b class='flag-5'>信號量</b><b class='flag-5'>管理</b>的工作原理是什么?怎樣去<b class='flag-5'>實現(xiàn)</b>它?

    你了解Linux 各類信號量

    內(nèi)核信號量與用戶信號量,用戶信號量分為POXIS信號量和SYSTEMV信號量,POXIS信號量
    發(fā)表于 05-04 17:19 ?2739次閱讀
    你了解Linux 各類<b class='flag-5'>信號量</b>?

    嵌入式μC/OS-II系統(tǒng)中基于ECB基本存儲單元實現(xiàn)信號量管理的設(shè)計

    方式,特點是速度快、可靠性高,隨著大規(guī)模集成電路的發(fā)展,這種方式逐漸顯示出優(yōu)越性。信號量管理是RTOS中頻繁運行的程序段之一,如果將這一部分用硬件實現(xiàn),對提高機器的速度將有很明顯的效果
    發(fā)表于 03-10 10:25 ?1603次閱讀
    嵌入式μC/OS-II系統(tǒng)中基于<b class='flag-5'>ECB</b>基本<b class='flag-5'>存儲單元</b><b class='flag-5'>實現(xiàn)</b><b class='flag-5'>信號量</b><b class='flag-5'>管理</b>的設(shè)計

    存儲單元結(jié)構(gòu)

    靜態(tài)RAM的基本構(gòu)造塊是SRAM存儲單元。通過升高字線的電平觸發(fā)存儲單元,再通過位線對所觸發(fā)的存儲單元進行讀出或?qū)懭?。在靜態(tài)CMOS存儲器中,存儲單
    發(fā)表于 05-14 09:19 ?4324次閱讀
    <b class='flag-5'>存儲單元</b>結(jié)構(gòu)

    詳解互斥信號量的概念和運行

    1 、互 斥 信 號 1.1 互斥信號量的概念及其作用 互斥信號量的主要作用是對資源實現(xiàn)互斥訪問,使用二值信號量也可以
    的頭像 發(fā)表于 10-22 11:57 ?1.2w次閱讀
    詳解互斥<b class='flag-5'>信號量</b>的概念和運行

    Linux信號量(2):POSIX 信號量

    存儲)置于可選部分中。在 SUSv4 之前,POSIX 信號量接口已經(jīng)被包含在信號量選項中。在 SUSv4 中,這些接口被移至了基本規(guī)范,而消息隊列和共享存儲接口依然是可選的。 POS
    的頭像 發(fā)表于 10-29 17:34 ?1081次閱讀

    LINUX內(nèi)核的信號量設(shè)計與實現(xiàn)

    控制路徑可以睡眠。我們從 LINUX內(nèi)核信號量最直觀的設(shè)計/實現(xiàn)出發(fā),通過一步步改進,揭示在x86平臺上完整的信號量設(shè)計/實現(xiàn),然后探討在不同平臺上通用的
    發(fā)表于 01-14 16:55 ?5次下載

    開源硬件信號量在行動

    電子發(fā)燒友網(wǎng)站提供《開源硬件信號量在行動.zip》資料免費下載
    發(fā)表于 11-16 10:22 ?0次下載
    開源<b class='flag-5'>硬件</b><b class='flag-5'>信號量</b>在行動

    FreeRTOS的二值信號量

    FreeRTOS中的信號量是一種任務(wù)間通信的方式,信號量包括:二值信號量、互斥信號量、計數(shù)信號量,本次實驗只使用二值
    的頭像 發(fā)表于 02-10 15:07 ?2135次閱讀

    使用Linux信號量實現(xiàn)互斥點燈

    信號量常用于控制對共享資源的訪問,有計數(shù)型信號量和二值信號量之分。初始化時信號量值大于1的,就是計數(shù)型信號量,計數(shù)型
    的頭像 發(fā)表于 04-13 15:12 ?1202次閱讀
    使用Linux<b class='flag-5'>信號量</b><b class='flag-5'>實現(xiàn)</b>互斥點燈

    存儲單元是指什么

    存儲單元是計算機系統(tǒng)中的基本元素,用于存儲和檢索數(shù)據(jù)。以下是對存儲單元的全面解析,涵蓋其定義、類型、功能、特點以及在計算機系統(tǒng)中的重要作用。
    的頭像 發(fā)表于 08-30 11:03 ?6810次閱讀