習(xí)偉 弓羽箭 韓輝 閆佳偉
摘? 要: 目前基于雙核CPU的AMP的混合多系統(tǒng)存在較大的缺陷和不足,首先會導(dǎo)致消耗不必要的資源與時間;其次,綁定硬件大多只局限于ARM;并且復(fù)雜度高、維護困難,對電力系統(tǒng)中其他運行應(yīng)用程序的影響極大,會造成實時性任務(wù)抖動。該文提出一種適用于多核板卡的通用軟件平臺,其通過自動化配置工具對硬件資源進行配置,將混合多系統(tǒng)平臺抽象出ARCH與BSP層,通過心跳包監(jiān)測其他CPU是否正常運行,通過cache劃分通用寄存器,設(shè)置消除核間廣播,可實現(xiàn)配置智能化和硬件平臺的多樣化,增加系統(tǒng)穩(wěn)定性。
關(guān)鍵詞: 電力系統(tǒng); 多核板卡; 軟件平臺; 混合多系統(tǒng); 資源配置; 試驗驗證
中圖分類號: TN911?34? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 文獻標(biāo)識碼: A? ? ? ? ? ? ? ? ? ? ?文章編號: 1004?373X(2020)22?0006?04
Abstract: There are major defects and disadvantages in AMP hybrid multi?systems based on dual?core CPU, which will lead to unnecessary consumption of resources and time. Most of the binding hardware is limited to ARM, and it has high complexity and difficult maintenance, which has a great impact on other running applications in the power system, and can cause real?time task jitter. A general software platform suitable for multi?core board is proposed, which configures hardware resources by means of the automated configuration tools, abstracts the ARCH and BSP layers out of the hybrid multi?system platform, and monitors whether other CPUs are running normally through heartbeat packets. The inter core broadcast is eliminated by setting the general register by cache partition, which can realize intelligent configuration and diversify hardware platforms, and increase system stability.
Keywords: power system; multi?core board; software platform; hybrid multi system; resource allocation; experimental verification
0? 引? 言
隨著嵌入式產(chǎn)品的更新升級,越來越多的功能被集中在同一塊硬件上,往往各個功能之間互相聯(lián)系,互相影響[1]。為了更好地處理實時性任務(wù)與非實時任務(wù),混合多系統(tǒng)可以使任務(wù)分工更精細,靈活地適應(yīng)不同情景[2]。目前基于雙核CPU的AMP的混合多系統(tǒng)存在較大的缺陷和不足[3?4],首先會導(dǎo)致消耗不必要的資源與時間;其次,綁定硬件大多只局限于ARM;并且復(fù)雜度高、維護困難,對電力系統(tǒng)中其他運行應(yīng)用程序的影響極大,會造成實時性任務(wù)抖動?;诖?,本文提出一種適用于多核板卡的通用軟件平臺,其通過自動化配置工具對硬件資源進行配置,將混合多系統(tǒng)平臺抽象出ARCH與BSP層,通過心跳包監(jiān)測其他CPU是否正常運行,通過cache劃分通用寄存器,設(shè)置消除核間廣播,可實現(xiàn)配置智能化和硬件平臺的多樣化,增加系統(tǒng)穩(wěn)定性。
1? 混合多系統(tǒng)的現(xiàn)狀以及缺陷分析
1.1? 混合多系統(tǒng)核間通信技術(shù)的現(xiàn)狀[3]
目前,一般的混合多系統(tǒng)為基于雙核CPU的移動頁面加速(Accelerated Mobile Pages,AMP)技術(shù),大多使用Linux與實時多任務(wù)操作系統(tǒng)(Micro?Controller Operating System,[μCOS])搭配實現(xiàn),即CPU0運行Linux,CPU1運行[μCOS]。
1.2? 存在的不足之處
這種方法有較大的缺陷和不足,首先是會消耗不必要的資源與時間,其需要提前在代碼階段劃分好內(nèi)存資源,規(guī)定所運行的CPU,重新編譯后再進行加載工作。這些代碼往往分布在不同內(nèi)核組件中,修改時費事費力。第二,需要綁定硬件,大多只局限于ARM,現(xiàn)有方法僅適用于ARM體系架構(gòu)的雙核處理器,并且隨著功能復(fù)雜度的增加,硬件處理器的性能提升令硬件無法適用,例如X86架構(gòu)的intel處理器,四核ARM Cortex A53的MPSOC處理器都無法適用。第三,在運行過程中無法判斷其他CPU核是否正常運行,容易造成對應(yīng)用提供數(shù)據(jù)、功能錯誤,復(fù)雜度高,維護困難;另外,該混合系統(tǒng)對系統(tǒng)中其他運行應(yīng)用程序影響極大,造成實時性任務(wù)抖動。
也就是說,如果其中一個CPU上的任務(wù)出現(xiàn)bug導(dǎo)致重啟運行,那么另一個CPU將也被重啟運行,這樣會導(dǎo)致正常運行的CPU被重啟;如果其中一個CPU上的任務(wù)進行大量的系統(tǒng)調(diào)用等進入內(nèi)核特權(quán)態(tài)的操作,會對另一個CPU上任務(wù)的運行造成很大的抖動。
2? 平臺架構(gòu)原理
本文提出一種適用于所有多核板卡的通用軟件平臺。該平臺不僅減少核間相互干擾,而且提供了很多直接可用的功能組件,方便程序員使用。圖1為本文所提出的適用于所有多核板卡的通用軟件平臺的架構(gòu)圖。
該架構(gòu)適用于所有多核板卡的通用軟件平臺,包括ARCH層與板級支持包BSP(Board Support Package)層,自動化配置工具對平臺資源進行修改。
3? 通用軟件平臺的實現(xiàn)
3.1? 總體框架
如圖1和圖2所示的適用于所有多核板卡的通用軟件平臺中主核和從核可以是任意操作系統(tǒng)。圖2中的主核和從核均為SylixOS,主核和從核均包括通用異步收發(fā)傳輸器URAR1、媒體訪問控制MAC、嵌入式多媒體卡eMMC和寄存器CACHE;硬件公有部分包括中斷控制器GIC和片上存儲器OCM。
以下以主核運行Linux,其他核CPU運行SylixOS為例,其中SylixOS為國產(chǎn)大型嵌入式實時操作系統(tǒng)。
主核CPU0運行Linux,其他核CPU運行SylixOS,將SylixOS的編譯鏈部署在Linux上,ARCH層與BSP層提供不同的鏡像庫。
自動化配置工具對腳本進行修改,自動定位到配置代碼處,對內(nèi)存資源、CPU資源、中斷資源、硬件架構(gòu)選擇修改,編譯后自動運行。
抽象出ARCH層與BSP層,其中ARCH層與BSP層是操作系統(tǒng)為上層應(yīng)用所提供通用接口設(shè)計的,在應(yīng)用編寫過程中,直接調(diào)用應(yīng)用程序編程接口。當(dāng)沒有ARCH層與BSP層時,應(yīng)用程序調(diào)用的僅為空函數(shù)接口,當(dāng)操作系統(tǒng)將ARCH層與BSP層的具體應(yīng)用鏈接到編程接口時,應(yīng)用程序即可完成調(diào)用。
3.2? 用戶操作方法以及平臺運行方法
適用于所有多核板卡的通用軟件平臺的用戶操作方法中的用戶操作方法包括:用戶啟動程序、打開配置工具、選擇架構(gòu)與BSP、對硬件資源進行配置、自動編譯所有CPU上的操作系統(tǒng)OS,從而啟動通用軟件平臺。
通用軟件平臺運行方法包括:通用軟件平臺啟動程序、打開配置工具、 自動導(dǎo)入源碼工程、自動尋找目錄修改相關(guān)系統(tǒng)文件、自動編譯所有CPU上的操作系統(tǒng)OS,從而啟動平臺,如圖3所示。
3.3? 多核間重啟
當(dāng)其中一個CPU上的任務(wù)出現(xiàn)bug導(dǎo)致重啟運行時,由于提前通過配置文件進行了中斷的綁定,即私有中斷,需要啟動從核時進行判斷是否為異常重啟,即非掉電重啟;如果不是異常重啟,則初始化所有硬件資源;如果是異常重啟,則判斷是否為CPU所用的資源。如果是CPU所用的資源,則初始化硬件資源;如果不是CPU所用的資源,則不做初始化操作,即不再重新初始化其他CPU上的操作系統(tǒng)資源,從而實現(xiàn)多核之間的獨立重啟,不影響其他CPU上任務(wù)的正常運行。圖4為適用于所有多核板卡的通用軟件平臺實現(xiàn)多核之間的獨立重啟方法。
3.4? 心跳檢測
平臺內(nèi)部需提供心跳檢測功能,用于判斷其他CPU是否正常運行。具體在于,所有CPU在正常運行的狀態(tài)下,向其他CPU發(fā)送心跳包,其他CPU在收到心跳包后查詢心跳數(shù)據(jù),如果確認CPU核正常運行,則繼續(xù)進行心跳檢測功能。適用于所有多核板卡的通用軟件平臺內(nèi)部心跳檢測的方法如圖5所示。
3.5? 試驗驗證
提前對last level cache進行劃分處理,鎖定于各個CPU之上,同時對硬件輔助寄存器進行操作,屏蔽由于轉(zhuǎn)換檢測緩沖區(qū)TLB(Translation Lookaside Buffer)一致性而產(chǎn)生的廣播操作。如果其中一個CPU上的任務(wù)在進行大量的系統(tǒng)調(diào)用等進入內(nèi)核特權(quán)態(tài)的操作時,其他CPU不會因此被影響,真正做到任務(wù)更加獨立。
在處理器設(shè)計中,一般last level cache被所有CPU核所共享使用,在ARMv7架構(gòu)中會提供相應(yīng)寄存器,可以設(shè)置使用cache保證不被其他核清除,具體代碼如下所示:
3.6? 試驗結(jié)果
本文所提的適用于所有多核板卡的通用軟件平臺使用方便,節(jié)約時間,通過智能配置工具,輕松實現(xiàn)對硬件和資源的配額修改,還可實現(xiàn)配置智能化與硬件處理器多樣化,滿足足夠多用戶的使用場景。通過對軟件平臺的ARCH層與BSP層抽象,可以實現(xiàn)硬件平臺的多樣化,能夠適配多種硬件平臺,以及智能檢測軟件完整性,通過心跳檢測功能,保證平臺的健壯性以及完成度,保證上層應(yīng)用正常運行。最后,平臺穩(wěn)定性強,通過處理多核之間的影響,如cache lock、廣播屏蔽等操作保證平臺穩(wěn)定性。需要說明的是,本文中的計算機可讀存儲介質(zhì),包括處理器和存儲器,存儲器中存儲有計算機程序指令,計算機程序指令被處理器執(zhí)行時,用以實現(xiàn)所述方法。
4? 結(jié)? 論
本文從分析現(xiàn)有技術(shù)中的多混合系統(tǒng)特性出發(fā),總結(jié)了現(xiàn)有技術(shù)中的多混合系統(tǒng)中存在的不足,提出一種簡單的多混合系統(tǒng),通過實驗驗證了通用軟件平臺的可行性,為后續(xù)的混合多系統(tǒng)研究提供了可靠的理論支撐。
本文中的技術(shù)方案的全部或部分可以以軟件產(chǎn)品的形式體現(xiàn)出來。計算機軟件產(chǎn)品存儲在一個存儲介質(zhì)中,包括若干指令用以使得1臺計算機設(shè)備(可以是個人計算機、服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本文設(shè)計的各個實例方法的全部或部分步驟。而前述的存儲介質(zhì)包括U盤、移動硬盤、只讀存儲器(Read?Only Memory,ROM)、隨機存取存儲器(Random Access Memory,RAM)、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。
參考文獻
[1] 吳相楠,龔行梁,周強,等.雙核處理器AMP模式在電力設(shè)備控制中的應(yīng)用[J].單片機與嵌入式系統(tǒng)應(yīng)用,2018,18(6):38?41.
[2] 張象羽,施慧莉.基于以太網(wǎng)和PCIe的多核DSP開發(fā)平臺[J].計算機工程與科學(xué),2019,41(10):1731?1737.
[3] 董延軍,項濤.多核嵌入式操作系統(tǒng)及板級結(jié)構(gòu)探討[J].信息通信,2018(12):145?147.
[4] 占鵬.基于多核CPU的電力系統(tǒng)多速率電磁暫態(tài)仿真[D].北京:華北電力大學(xué),2018.
[5] 王豐,印釗.基于多核CPU的運行時驗證技術(shù)的研究與實現(xiàn)[J].電子設(shè)計工程,2018,26(11):23?27.
[6] 馮文波,廉迎戰(zhàn),甘玉軒,等.基于多核CPU的嵌入式數(shù)控系統(tǒng)研究[J].工業(yè)控制計算機,2016,29(6):8?9.
[7] 許少尉,呂浩.多核處理器系統(tǒng)節(jié)能調(diào)度技術(shù)研究[J].航空計算技術(shù),2018,48(1):98?101.
[8] 喻文燁.探究軟件工程技術(shù)在電力系統(tǒng)中的應(yīng)用[J].明日風(fēng)尚,2017(9):344.
[9] 顧威,張艷,古庭赟,等.一種大規(guī)模全范圍電力系統(tǒng)實時仿真的研究和應(yīng)用[J].電力大數(shù)據(jù),2017,20(11):8?11.
[10] 呂國遠,劉晨,尚博祥.基于電力大數(shù)據(jù)的信息系統(tǒng)體系結(jié)構(gòu)研究[J].經(jīng)營與管理,2017(4):112?114.