莫錦攀
摘要:隨著近年來泛在物聯(lián)網及邊緣計算技術在電力系統(tǒng)中的興起,對于嵌入式電力產品的處理能力提出了巨大的挑戰(zhàn)。以此同時,多核處理已經發(fā)展成為主流的處理器技術。面對日益復雜嵌入式電力應用領域,為了滿足產品高性能、低功耗的要求,越來越多的嵌入式電力產品使用多核處理器作為應用平臺。異構和同構是兩種主要的多核處理器應用形態(tài),由于系統(tǒng)架構采用多種了不同功能的核心,多核異構模式的處理器更加適合于功能復雜實時性要求高的嵌入式電力應用場合。鑒于此,文章結合筆者多年工作經驗,就如何使用異構多核技術來搭建高實時性多核平臺來滿足日益復雜的嵌入式電力產品開發(fā)需求提出個人的觀點,以供參考。
關鍵詞:電力系統(tǒng);嵌入式產品;多核異構;平臺
引言
使用linux系統(tǒng)來應對嵌入式電力產品開發(fā)的復雜需求是非常適合的方案,linux系統(tǒng)有著龐大的生態(tài)系統(tǒng),需要復雜的應用在linux系統(tǒng)上都有有著合適的解決方案,這可以極大加速嵌入式電力產品的開發(fā)速度,但linux系統(tǒng)是非實時系統(tǒng),但嵌入式電力應用場景卻對實時性要求非常高,這樣矛盾的問題就可以通過引入處理的多核異構方案來解決。
1、多處理系統(tǒng)架構應用方案介紹
多核處理器根據(jù)內核的用途或結構,通常可分為多核異構架構和多核同構架構兩種架構。多核異構是指處理器中的內核在結構或用途上是不同的,而多核同構架構是指處理器中的內核在結構或用途上是相同的;這些內核可以是通用內核,也可以是用于解決某些特定應用的專用內核。多核同構架構相比于多核異構架構,在軟件和硬件設計上較為簡單,通用性較高,但在某些特定應用場合下,如多核異構架構專用的硬件加速硬核,多核異構架構的性能會更高。
根據(jù)其軟件構架,多核處理器的運行模式有SMP(對稱多處理運行模式)、AMP(非對稱多處理運行模式)和BMP(受約束多處理運行模式)這三種運行模式。
SMP:該運行模式指多個內核運行一個操作系統(tǒng),這個操作系統(tǒng)同時管理多個內核,如x86電腦。
AMP:該運行模式指內核之間運行相對獨立的任務,每個內核相互隔離,可以運行不同的操作系統(tǒng)或裸機程序。
BMP:該運行模式與 SMP 類似,但軟件程序設計者可以指定將某個任務僅在某個指定核上執(zhí)行。
SMP為較高級的應用提供統(tǒng)一的操作系統(tǒng)平臺,軟件程序設計者在操作系統(tǒng)之上構建應用時,無需考慮多個內核之間的資源共享和進程間通信。另外,對 SMP 而言存在一定的性能開銷,這會對實時性要求較高的應用造成較大影響。比如電腦的多核處理器一般運行在SMP模式,對實時性的要求不高,但實現(xiàn)的功能較為復雜。
而 AMP運行模式開銷相對比較小,比較適合實時性要求較高的應用場景,在運行裸機應用程序時,甚至幾乎沒有開銷;但需要考慮到內核之間資源共享和通信等問題。如嵌入式電力控制保護產品通常需要與人機接口實現(xiàn)復雜的通信和高實時性的計算能力,一般采用 AMP運行模式,一個內核運行 Linux 操作系統(tǒng),另一個內核運行裸機應用程序,最大程度兼顧了電力系統(tǒng)控制設備需要的實時性和復雜功能。
2、多核異構系統(tǒng)的操作系統(tǒng)選擇
面對復雜的應用場景是,使用操作系統(tǒng)可以極大的簡化系統(tǒng)應用,并提高程序的復用能力,為此在需要使用到多核處理的復雜嵌入式電力產品中,一般都會選擇使用嵌入式操作系統(tǒng)。
嵌入式電力產品需要處理各種復雜的應用功能,有需要保證各種功能的實時性要求,選擇合適的操作系統(tǒng)就顯得至關重要。多核異構處理,由于存在多個獨立運行的內核為此,可以根據(jù)應用的需求不同選擇多種不同的嵌入式系統(tǒng),這是多核異構處理模式,相對于常規(guī)單核處理模式和多核同構處理模式不具備的重要優(yōu)勢
linux系統(tǒng)是目前世界上使用最為廣泛的操作系統(tǒng),他具有非常高的穩(wěn)定性以及非常豐富的應用生態(tài),非常適合用于處理嵌入式電力系統(tǒng)中復雜的高級應用。但是由于linux是非實時系統(tǒng),其系統(tǒng)任務調度間隔在1ms左右,實時性一般在10ms左右,無法滿足嵌入式電力系統(tǒng)高實時部分應用的需求。這部分功能一般選擇RTOS嵌入式實時操作系統(tǒng),RTOS嵌入式實時操作系統(tǒng)具有高實時性以及系統(tǒng)精簡占用資源少的特點,它能在較少資源的情況下完成高實時任務,從而騰出足夠多的資源以供linux系統(tǒng)使用來完成嵌入式電力產品中的復雜高級應用。
3、多核異構系統(tǒng)的任務分配
由于電力系統(tǒng)中高實時要求的任務占比比較高,同時為了兼顧運行開銷,一般使用AMP模式來構建多核異構系統(tǒng)。在多核異構系統(tǒng)中,如何設定多核之間的協(xié)作方式將是我們第一個需要面對的問題。
嵌入式電力產品的功能可以劃分成保護功能和通訊功能兩部分,其中保護部分功能包括了對外部數(shù)據(jù)的實時采集、數(shù)據(jù)計算分析和分析結果的執(zhí)行三大部分,一般的繼電保護功能要求在30ms內響應,即整個數(shù)據(jù)采集、計算分析和結果處理要在一個半周波內完成,此部分實現(xiàn)要求都比較高,一般建議放在由RTOS構建的實時內核上。而通訊部分功能主要是指嵌入式電力產品對外通訊功能,一般涉及到101規(guī)約、104規(guī)約、IEC61850規(guī)約等多種規(guī)約的處理,除了IEC61850規(guī)約的GOOSE部分功能有較高的實時性要求外,其他部分功能對實時性要求均比較低,一般建議放在由linux系統(tǒng)構建的復雜應用內核上。
4、多核異構系統(tǒng)的資源分配
根據(jù)上面分析,電力系統(tǒng)宜采用Linux+RTOS的多核異構系統(tǒng)架構,其中Linux具有系統(tǒng)穩(wěn)定,資源豐富的特點,適合處理復雜的高級應用,其對資源的需求也是比較高的,而RTOS系統(tǒng)具有高實時性適合處理高實時任務,同時其系統(tǒng)一般都比較精簡,對系統(tǒng)資源消耗較低。因此一般會將大部分內存和flash分配給Linux系統(tǒng),并且將復雜以太網、USB、LCD、的外設也分配給Linux系統(tǒng)管理。而將小部分的內存和flash分配給RTOS系統(tǒng),并讓其管理那些高實時要求的外設。
5、多核異構系統(tǒng)的通訊方式
在 AMP 運行模式下的多核異構系統(tǒng),雖然不同類型的內核可以獨立運行,但往往大多數(shù)情況下,我們的軟件設計要求多核之間能夠進行數(shù)據(jù)交互,也就是能夠實現(xiàn)核間通信,以訪問共享資源時避免沖突,如果沒有考慮到這些問題,則可能會導致系統(tǒng)運行出現(xiàn)問題。那多核之間的通訊方式都有哪些手段呢?
1、共享內存,我們可以設置一塊系統(tǒng)內存區(qū)域,這塊內存作為兩個或多個核之間的共享數(shù)據(jù)區(qū)域,也就是說所有的核都可對該內存進行
2、SGI 中斷,與硬件中斷方式不同,SGI(軟件生成中斷(software generated interrupts)可以通過軟件方式觸發(fā)中斷, 可以中斷自身、可以中斷另一個 CPU(核)或多個CPU,例如將某一個SGI 中斷信號綁定到 cpu1,并且綁定了相應的中斷處理函數(shù),當 cpu0 需要與 cpu1 進行通信時就可以觸發(fā)這個 SGI 中斷信號,這樣就會執(zhí)行到 cpu1 的中斷處理函數(shù);事實上,SGI 中斷本身就是為了核間通信而設計的,所以它是最適合用于核間通信的一種方法,但往往多數(shù)情況下只使用 SGI 中斷是很難實現(xiàn)比較復雜的核間通信的,還得需要共享內存的配合。
6、多核異構系統(tǒng)的外設管理
多核異構系統(tǒng)相對于多處理系統(tǒng)的一個重要優(yōu)勢就是其外設可以由多核共同管理,這樣可以提供非常靈活的外設管理方案,但同時也是多核異構系統(tǒng)的一個設計難點。
一般多核異構系統(tǒng)的外設有兩種管理方案,一種是獨占式,即外設完全分配給某一個內核來管理,其他內核無權直接訪問該外設,必須通過核間通許來間接范圍指定外設,其優(yōu)點是系統(tǒng)底層設計相對簡單穩(wěn)定,一般沒有外設共享沖突的,其缺點是會增加核間通訊的開銷。另外一種是共享式,多核之間通過通訊的方式確定外設的使用權,獲得使用權的內核可以直接對外設進行訪問,其優(yōu)點是內核對外設的訪問速度比較快,核間通訊開銷較小,缺點是系統(tǒng)底層設計相對比較復雜,處理不當容易出現(xiàn)外設共享沖突。綜合電力系統(tǒng)的高實時性要求,一般建議復雜外設由linux內核獨占使用,簡單的外設或者實時性要求高的外設全部由RTOS實時內核進行管理,多內核之間在應用層進行數(shù)據(jù)交互。
參考文獻
[1] 丁毅, 陳新之,潘可,張堯,張瑋,習偉. 基于電力專用多核異構芯片架構的低壓保護測控裝置設計[J]. 南方電網技術.2020(14):59
[2] 楊瑞星. 基于LPC4357 的異構雙核配電網終端系統(tǒng)設計 與實現(xiàn)究[C]. 華南理工大學.2015-6