本發(fā)明專利技術(shù)公開了一種基于優(yōu)先級(jí)位圖的AUTOSAR?NvM讀寫任務(wù)的管理方法,通過構(gòu)建256組普通任務(wù)隊(duì)列、一組立即任務(wù)隊(duì)列、一隊(duì)列映射表和一優(yōu)先級(jí)位圖就緒表;根據(jù)隊(duì)列映射表和優(yōu)先級(jí)位圖就緒表將讀寫任務(wù)插入任務(wù)隊(duì)列或從任務(wù)隊(duì)列中抓取讀寫任務(wù);在抓取讀寫任務(wù)時(shí)本發(fā)明專利技術(shù)利用優(yōu)先級(jí)位圖算法以就緒表為偏移,從優(yōu)先級(jí)位圖查找表中查找出待處理讀寫任務(wù)的最高優(yōu)先級(jí),通過這種固定地有限次數(shù)的查表算法能夠以O(shè)(1)的時(shí)間復(fù)雜度找到當(dāng)前優(yōu)先級(jí)最高的就緒任務(wù),且擴(kuò)展后的257個(gè)讀寫請(qǐng)求隊(duì)列的開銷較小,維護(hù)比較簡單。
【技術(shù)實(shí)現(xiàn)步驟摘要】
—種基于優(yōu)先級(jí)位圖的AUTOSAR NvM讀寫任務(wù)的管理方法
本專利技術(shù)屬于計(jì)算機(jī)讀寫
,具體涉及一種基于優(yōu)先級(jí)位圖的AUTOSAR NvM 讀寫任務(wù)的管理方法。
技術(shù)介紹
AUTOSAR(AUTomotive Open System Architecture)是一款標(biāo)準(zhǔn)化的開放式汽車軟件架構(gòu)。在AUTOSAR標(biāo)準(zhǔn)中,采用分層結(jié)構(gòu)管理存儲(chǔ)器,具體分為存儲(chǔ)器驅(qū)動(dòng)層、硬件抽象層以及存儲(chǔ)器服務(wù)層。其中硬件驅(qū)動(dòng)層通過直接操作具體的寄存器,對(duì)硬件功能和特征進(jìn)行封裝;硬件抽象層是對(duì)不同類型的存儲(chǔ)器進(jìn)行進(jìn)一步地封裝,抽象為若干用戶配置的存儲(chǔ)塊,使不同存儲(chǔ)器類型及其限制對(duì)于上層存儲(chǔ)器服務(wù)層透明;存儲(chǔ)服務(wù)層以塊為基本單位為用戶提供對(duì)存儲(chǔ)器讀、寫等操作。NvM (NVRAM Manager,非易失性存儲(chǔ)器管理器)是AUTOSAR存儲(chǔ)服務(wù)層的核心模塊,它的重要功能之一就是將Nv Data存儲(chǔ)到對(duì)應(yīng)的NvRAM Block。其中Nv Data指的是存儲(chǔ)在非易失性存儲(chǔ)器中的數(shù)據(jù),這些數(shù)據(jù)中被分為兩類一類是不能有延時(shí)需要立即寫入存儲(chǔ)器中的數(shù)據(jù),這一類數(shù)據(jù)被稱為crash data ;另一類為普通的數(shù)據(jù),其寫入存儲(chǔ)器的可以存在一定的延時(shí)。而NvRAM Block是指整個(gè)管理和存儲(chǔ)非易失數(shù)據(jù)的結(jié)構(gòu),它的基本單位稱為Nv Block7Nv Block駐留在非易失存儲(chǔ)中,它是讀、寫等操作的基本單位。若Nv Block 中存儲(chǔ)的 NvData 為 Crash Data,則該 Nv Block 稱為 Immediate Block。另外,AUTOSAR 標(biāo)準(zhǔn)中,對(duì)每個(gè)Nv Block都設(shè)置了一個(gè)優(yōu)先級(jí),優(yōu)先級(jí)的范圍為O到255,ImmediateBlock的優(yōu)先級(jí)為0,O為最高優(yōu)先級(jí)。每一個(gè)讀寫任務(wù)即是把數(shù)據(jù)從一個(gè)NvBlock讀取或?qū)懭氲倪^程,故該Nv Block的優(yōu)先級(jí)即是對(duì)應(yīng)讀寫任務(wù)的優(yōu)先級(jí)。AUTOSAR標(biāo)準(zhǔn)中規(guī)定對(duì)Nv Block的讀、寫過程采用異步的方式實(shí)現(xiàn),即用戶調(diào)用特定的函數(shù)發(fā)出讀、寫請(qǐng)求,將讀、寫請(qǐng)求任務(wù)存儲(chǔ)到隊(duì)列中(AUTOSAR標(biāo)準(zhǔn)規(guī)定,同一時(shí)間,隊(duì)列中只能存儲(chǔ)一個(gè)針對(duì)同一個(gè)Nv Block的任務(wù))。通過另一個(gè)周期性調(diào)用的函數(shù)從隊(duì)列中抓取Nv Block的讀、寫請(qǐng)求任務(wù),完成對(duì)應(yīng)的讀、寫操作。AUTOSAR標(biāo)準(zhǔn)中從讀寫隊(duì)列中讀取Nv Block讀寫請(qǐng)求任務(wù)的順序根據(jù)用戶配置參數(shù)NvmJobPrioritization(布爾型用戶配置參數(shù))是否為Ture,被分為基于Nv Block優(yōu)先級(jí)的順序處理和先來先服務(wù)的順序處理兩種方式。AUTOSAR NvM 378中規(guī)定在基于Nv Block優(yōu)先級(jí)任務(wù)處理的方式下, NvM模塊需要使用兩個(gè)隊(duì)列,一個(gè)為立即隊(duì)列,它僅存放crash data的寫任務(wù),而另一個(gè)為普通隊(duì)列,它存儲(chǔ)除Crash Data寫任務(wù)以外的其他任務(wù)。立即隊(duì)列中的任務(wù)可以搶占普通隊(duì)列中任務(wù)的執(zhí)行(即取消普通隊(duì)列中正在進(jìn)行的任務(wù),執(zhí)行立即任務(wù)隊(duì)列中的寫任務(wù)), 普通任務(wù)隊(duì)列不能搶占其他任務(wù),但也需要根據(jù)讀寫任務(wù)Nv Block優(yōu)先級(jí)的順序執(zhí)行。在這種讀寫請(qǐng)求隊(duì)列實(shí)現(xiàn)過程中,對(duì)普通的隊(duì)列中操作開銷比較大和維護(hù)比較困難。其按照任務(wù)就緒的先后順序插入隊(duì)列,這種情況下從隊(duì)列中抓取優(yōu)先級(jí)最高的任務(wù)時(shí), 需要遍歷整個(gè)隊(duì)列找到最高優(yōu)先級(jí)的任務(wù)(若采用數(shù)組實(shí)現(xiàn)隊(duì)列,從隊(duì)列中刪除任務(wù)時(shí), 還需要調(diào)整隊(duì)列使得隊(duì)列連續(xù)),因此此 種方法的時(shí)間復(fù)雜度為O (η)。
技術(shù)實(shí)現(xiàn)思路
針對(duì)現(xiàn)有技術(shù)所存在的上述技術(shù)缺陷,本專利技術(shù)提供了一種基于優(yōu)先級(jí)位圖的 AUTOSAR NvM讀寫任務(wù)的管理方法,其操作開銷相對(duì)較小,且維護(hù)簡便。,如下首先,構(gòu)建256組普通任務(wù)隊(duì)列、一組立即任務(wù)隊(duì)列、一隊(duì)列映射表和一優(yōu)先級(jí)位 圖就緒表;所述的隊(duì)列映射表用于為各組普通任務(wù)隊(duì)列的頭尾提供指向,所述的優(yōu)先級(jí)位 圖就緒表用于記錄各優(yōu)先級(jí)的讀寫任務(wù)加載情況;當(dāng)有讀寫任務(wù)載入時(shí),判斷其是否為Crash Data的寫任務(wù)若是,直接將該任務(wù)插入立即任務(wù)隊(duì)列的尾部;若否,則根據(jù)其優(yōu)先級(jí)通過隊(duì)列映射表將該任務(wù)插入對(duì)應(yīng)普通任務(wù)隊(duì)列的尾部, 并更新隊(duì)列映射表和優(yōu)先級(jí)位圖就緒表;當(dāng)抓取讀寫任務(wù)時(shí),首先判斷立即任務(wù)隊(duì)列是否為空若否,則從立即任務(wù)隊(duì)列的頭部抓取對(duì)應(yīng)的任務(wù),并取消當(dāng)前正在運(yùn)行的讀寫任 務(wù),直接運(yùn)行抓取出來的任務(wù);若是,則等待當(dāng)前正在運(yùn)行的讀寫任務(wù)結(jié)束后,根據(jù)優(yōu)先級(jí)位圖就緒表通過優(yōu)先 級(jí)位圖算法查找出待處理讀寫任務(wù)的最高優(yōu)先級(jí),并通過隊(duì)列映射表從該優(yōu)先級(jí)對(duì)應(yīng)的普 通任務(wù)隊(duì)列的頭部抓取對(duì)應(yīng)的任務(wù),進(jìn)而運(yùn)行該任務(wù)。本專利技術(shù)采用周期性調(diào)用函數(shù)定時(shí)抓取讀寫任務(wù)。所述的隊(duì)列映射表具有對(duì)應(yīng)256組普通任務(wù)隊(duì)列的256欄映射信息,每一欄映射 信息包括對(duì)應(yīng)普通任務(wù)隊(duì)列的隊(duì)列長度、隊(duì)列頭指向和隊(duì)列尾指向;通過指向從隊(duì)列頭部 抓取任務(wù)或?qū)⑷蝿?wù)插入隊(duì)列尾部。所述的優(yōu)先級(jí)位圖就緒表具有對(duì)應(yīng)256組普通任務(wù)隊(duì)列的256個(gè)標(biāo)志位,標(biāo)志位 為O或I。優(yōu)先級(jí)位圖就緒表中各標(biāo)志位初始化為0,當(dāng)有讀寫任務(wù)插入任一普通任務(wù)隊(duì) 列,則將該普通任務(wù)隊(duì)列對(duì)應(yīng)的標(biāo)志位置為I;當(dāng)任一普通任務(wù)隊(duì)列為空時(shí),則將該普通任 務(wù)隊(duì)列對(duì)應(yīng)的標(biāo)志位置為O。本專利技術(shù)利用優(yōu)先級(jí)位圖算法以就緒表為偏移,從優(yōu)先級(jí)位圖查找表(常量表)中 查找出待處理讀寫任務(wù)的最高優(yōu)先級(jí)。優(yōu)先級(jí)位圖算法是廣泛應(yīng)用于實(shí)時(shí)操作系統(tǒng)任務(wù)調(diào) 度的一種算法,它利用一個(gè)字節(jié)的8個(gè)二進(jìn)制位表示8個(gè)不同的優(yōu)先級(jí),若對(duì)應(yīng)優(yōu)先級(jí)的標(biāo) 志位為1,則表示存在該優(yōu)先級(jí)的任務(wù)處于就緒狀態(tài),從而構(gòu)成任務(wù)就緒表;而后以該值為 索引查另一個(gè)固定的映射表即優(yōu)先級(jí)位圖查找表,得到當(dāng)前處于就緒狀態(tài)任務(wù)的最高優(yōu)先 級(jí),通過這種固定地有限次數(shù)的查表算法能夠以0(1)的時(shí)間復(fù)雜度找到當(dāng)前優(yōu)先級(jí)最高 的就緒任務(wù)。優(yōu)先級(jí)位圖算法的優(yōu)勢(shì)在于通過查表的方法,得到當(dāng)前最高優(yōu)先級(jí),時(shí)間效率高, 同時(shí)所需增加的就緒表利用二進(jìn)制的比特位表示每個(gè)優(yōu)先級(jí),空間開銷較小,操作維護(hù)起 來簡單,但是優(yōu)先級(jí)位圖的限制在于僅適用于優(yōu)先級(jí)數(shù)目固定的情況。AUTOSAR NvM標(biāo)準(zhǔn)中 規(guī)定Nv Block的優(yōu)先級(jí)范圍為O到256,符合優(yōu)先級(jí)位圖算法的要求,因此應(yīng)用此算法能夠 得在時(shí)間和空間上的效率上取得較好的效果,實(shí)現(xiàn)起來也比較簡單。本專利技術(shù)當(dāng)讀寫請(qǐng)求隊(duì)列的順序?yàn)榛贜v Block優(yōu)先級(jí)時(shí),定義一個(gè)長度為256的順序表,如數(shù)組。每個(gè)元素包含一個(gè)指向存儲(chǔ)請(qǐng)求隊(duì)列的元素,并且包含該讀寫請(qǐng)求隊(duì)列 的隊(duì)列頭和隊(duì)列尾;另外定義一個(gè)隊(duì)列為立即隊(duì)列,準(zhǔn)備存儲(chǔ)crash數(shù)據(jù)的寫任務(wù)。將定義 的結(jié)構(gòu)中每個(gè)讀寫請(qǐng)求的隊(duì)列頭和隊(duì)列尾初始化為0,表示當(dāng)前隊(duì)列中沒有元素。初始化 優(yōu)先級(jí)位圖的就緒表;當(dāng)有讀寫請(qǐng)求任務(wù)時(shí),首先判斷它是否為crash data寫任務(wù),如果 結(jié)果為真,則直接插入到立即隊(duì)列的隊(duì)列尾。如果結(jié)果為假,則根據(jù)優(yōu)先級(jí)位圖算法,更新 優(yōu)先級(jí)位圖的就緒表的響應(yīng)元素。在NvM模塊中周期性調(diào)用函數(shù)處理讀寫任務(wù)時(shí),首先判 斷立即隊(duì)列是否為空,如果結(jié)果不為空,則取消當(dāng)前運(yùn)行的任務(wù),處理立即隊(duì)列中的crash data寫任務(wù)。如果結(jié)果為空,則等待當(dāng)前任務(wù)運(yùn)行結(jié)束,利用優(yōu)先級(jí)位圖,計(jì)算出處于當(dāng)前 讀寫請(qǐng)求隊(duì)列中優(yōu)先級(jí)最高的優(yōu)先級(jí)號(hào),并從該優(yōu)先級(jí)的讀寫請(qǐng)求隊(duì)列中讀取它的本文檔來自技高網(wǎng)...
【技術(shù)保護(hù)點(diǎn)】
一種基于優(yōu)先級(jí)位圖的AUTOSAR?NvM讀寫任務(wù)的管理方法,如下:首先,構(gòu)建256組普通任務(wù)隊(duì)列、一組立即任務(wù)隊(duì)列、一隊(duì)列映射表和一優(yōu)先級(jí)位圖就緒表;所述的隊(duì)列映射表用于為各組普通任務(wù)隊(duì)列的頭尾提供指向,所述的優(yōu)先級(jí)位圖就緒表用于記錄各優(yōu)先級(jí)的讀寫任務(wù)加載情況;當(dāng)有讀寫任務(wù)載入時(shí),判斷其是否為Crash?Data的寫任務(wù):若是,直接將該任務(wù)插入立即任務(wù)隊(duì)列的尾部;若否,則根據(jù)其優(yōu)先級(jí)通過隊(duì)列映射表將該任務(wù)插入對(duì)應(yīng)普通任務(wù)隊(duì)列的尾部,并更新隊(duì)列映射表和優(yōu)先級(jí)位圖就緒表;當(dāng)抓取讀寫任務(wù)時(shí),首先判斷立即任務(wù)隊(duì)列是否為空:若否,則從立即任務(wù)隊(duì)列的頭部抓取對(duì)應(yīng)的任務(wù),并取消當(dāng)前正在運(yùn)行的讀寫任務(wù),直接運(yùn)行抓取出來的任務(wù);若是,則等待當(dāng)前正在運(yùn)行的讀寫任務(wù)結(jié)束后,根據(jù)優(yōu)先級(jí)位圖就緒表通過優(yōu)先級(jí)位圖算法查找出待處理讀寫任務(wù)的最高優(yōu)先級(jí),并通過隊(duì)列映射表從該優(yōu)先級(jí)對(duì)應(yīng)的普通任務(wù)隊(duì)列的頭部抓取對(duì)應(yīng)的任務(wù),進(jìn)而運(yùn)行該任務(wù)。
【技術(shù)特征摘要】
1.一種基于優(yōu)先級(jí)位圖的AUTOSAR NvM讀寫任務(wù)的管理方法,如下首先,構(gòu)建256組普通任務(wù)隊(duì)列、一組立即任務(wù)隊(duì)列、一隊(duì)列映射表和一優(yōu)先級(jí)位圖就緒表;所述的隊(duì)列映射表用于為各組普通任務(wù)隊(duì)列的頭尾提供指向,所述的優(yōu)先級(jí)位圖就緒表用于記錄各優(yōu)先級(jí)的讀寫任務(wù)加載情況;當(dāng)有讀寫任務(wù)載入時(shí),判斷其是否為Crash Data的寫任務(wù)若是,直接將該任務(wù)插入立即任務(wù)隊(duì)列的尾部;若否,則根據(jù)其優(yōu)先級(jí)通過隊(duì)列映射表將該任務(wù)插入對(duì)應(yīng)普通任務(wù)隊(duì)列的尾部,并更新隊(duì)列映射表和優(yōu)先級(jí)位圖就緒表;當(dāng)抓取讀寫任務(wù)時(shí),首先判斷立即任務(wù)隊(duì)列是否為空若否,則從立即任務(wù)隊(duì)列的頭部抓取對(duì)應(yīng)的任務(wù),并取消當(dāng)前正在運(yùn)行的讀寫任務(wù),直接運(yùn)行抓取出來的任務(wù);若是,則等待當(dāng)前正在運(yùn)行的讀寫任務(wù)結(jié)束后,根據(jù)優(yōu)先級(jí)位...
【專利技術(shù)屬性】
技術(shù)研發(fā)人員:楊國青,顧宗華,王旭陽,金曦,吳朝暉,
申請(qǐng)(專利權(quán))人:浙江大學(xué),
類型:發(fā)明
國別省市:
還沒有人留言評(píng)論。發(fā)表了對(duì)其他瀏覽者有用的留言會(huì)獲得科技券。