張朝
摘 要:從1981年第一個(gè)商業(yè)嵌入式實(shí)時(shí)操作系統(tǒng)VRTX/OS的出現(xiàn),嵌入式實(shí)時(shí)操作系統(tǒng)已經(jīng)過三十多年的發(fā)展。本文對嵌入式相關(guān)的文獻(xiàn)進(jìn)行了調(diào)研,發(fā)現(xiàn)隨著嵌入式芯片多核技術(shù)的日趨成熟和廣泛應(yīng)用,嵌入式實(shí)時(shí)操作系統(tǒng)對多核處理器提供了一定的支持,包括對稱多核(SMP)和非對稱多核(AMP),但也仍然存在多核并發(fā)控制、任務(wù)調(diào)度等問題。在分析RTOS的研究現(xiàn)狀后,得出了今后RTOS的研究熱點(diǎn)有異構(gòu)多核支持和物聯(lián)網(wǎng)應(yīng)用。
關(guān)鍵詞: 嵌入式系統(tǒng);實(shí)時(shí)操作系統(tǒng);對稱多核;非對稱多核
中圖分類號:TP316 文獻(xiàn)標(biāo)識碼:A 文章編號:1009-3044(2015)12-0248-03
A Survey on Multi-Core Real-Time Operating System (RTOS)
ZHANG Zhao
(The Institute of Computer Application,China Academy of Engineering Physics,Mianyang 621900,China)
Abstract:The RTOS has been developed over three decades till now after the first available commercial RTOS which named VTRX/OS .After the study on embedded related literatures, it shows that with the development of Multi-core technology and widely use of Multi-core chips, the RTOS is becoming to support the Multi-core features include SMP and AMP, in order to fully use the potential of hardware, but still have some problem such as concurrency control and task allocation. So the next hot research filed of RTOS is the support of Heterogeneous multiprocessor. Besides the IOT also could be an important application filed for RTOS.
Key words:EOS; RTOS; SMP; AMP
早期的嵌入式應(yīng)用由于嵌入式處理器運(yùn)算能力低,所以功能單一,主要使用死循環(huán)代碼實(shí)現(xiàn)。隨著大規(guī)模集成電路技術(shù)的發(fā)展和摩爾定律(Moore Law)的驅(qū)使,嵌入式處理器的性能越來越強(qiáng),如今已經(jīng)可匹敵桌面電腦?,F(xiàn)在的嵌入式應(yīng)用已經(jīng)十分復(fù)雜,往往一個(gè)嵌入式應(yīng)用需要集成數(shù)個(gè)功能,這種多任務(wù)環(huán)境的嵌入式應(yīng)用已經(jīng)離不開嵌入式操作系統(tǒng)的支持。針對特定的實(shí)時(shí)性要求嚴(yán)格的應(yīng)用場景,比如工業(yè)控制、軍事武器,更需要嵌入式實(shí)時(shí)操作系統(tǒng)的支持。當(dāng)通提升過主頻來提升處理器性能達(dá)到瓶頸時(shí),多核技術(shù)的出現(xiàn)解決了單核芯片的性能瓶頸,使得處理性能的提升有了新的發(fā)展方向,尤其是異構(gòu)多核技術(shù)同時(shí)保障了性能和功耗。然而多核技術(shù)卻為嵌入式實(shí)時(shí)操作系統(tǒng)的設(shè)計(jì)者帶來了不少的挑戰(zhàn)。
1 正文
1.1 多核處理器的硬件結(jié)構(gòu)
多核處理器指一個(gè)芯片內(nèi)有多個(gè)計(jì)算核心,多核處理器也稱為片上多處理器 (chip multi-processor , CMP), 或單芯片多處理器。根據(jù)核心的類型可將多核處理器分為同構(gòu)多核處理器(Homogeneous multiprocessor)和異構(gòu)多核處理器(Heterogeneous multiprocessor)或者對稱多核處理器(Symmetric Multi-Processing , SMP)和非對稱多核處理器(Asymmetric Multi-Processing , AMP)。
同構(gòu)是指處理器內(nèi)部每個(gè)核心的結(jié)構(gòu)和指令架構(gòu)都完全一樣,如圖 1 Hydra CMP。這種處理器結(jié)構(gòu)的內(nèi)部核
心地位完全對等,可以將其視為多個(gè)單核芯片通過內(nèi)部總線相連,這種情況可以在每個(gè)核上運(yùn)行相同的操作系統(tǒng)。
異構(gòu)是指處理器內(nèi)部的運(yùn)算核心具有差異,一般分為主核和從核。如圖 2 同指令集異構(gòu)處理器,該處理器雖然都是ARM核心,但是架構(gòu)不同。還有一種情況是存在兩類或者多個(gè)類型的不同指令集的核心,也稱作完全異構(gòu)處理器,如圖 3 完全異構(gòu)處理器包含ARM核心和DSP核心。
1.2 多核處理器對RTOS設(shè)計(jì)帶來的挑戰(zhàn)
單核處理器雖然在宏觀上呈現(xiàn)的是多任務(wù)的并行運(yùn)行,但是在指令級仍是串行的執(zhí)行過程,這種情況下共享資源的互斥訪問使用原語就能控制。然而由于多核處理器具有多個(gè)運(yùn)算核心,在指令級不同核上可能同時(shí)運(yùn)行著對同一資源讀寫的指令,這使得操作系統(tǒng)的并發(fā)控制更難。因此RTOS在多核處理器上將面臨比單核處理器更多的技術(shù)挑戰(zhàn),如:多核處理器的操作系統(tǒng)組織、多核間的負(fù)載平衡、多核間并發(fā)控制、任務(wù)分配、功耗控制、高效核間通信[1]等。
1.3 RTOS對多核處理的支持
在多核芯片技術(shù)的發(fā)展過程最早應(yīng)用的是IBM的服務(wù)器芯片(POWER4),這時(shí)的多核處理器只是單純地把多個(gè)相同的核心集成到一個(gè)CPU上,也就是同構(gòu)多核處理器。最先發(fā)展的是同構(gòu)多核技術(shù),OS在同構(gòu)多核的支持上也比較早和成熟,如在Linux 2.0開始就支持了對稱多核(SMP)[2]。在嵌入式領(lǐng)域最開始應(yīng)用的也是同構(gòu)多核,接著出現(xiàn)了異構(gòu)多核技術(shù)。異構(gòu)多核的出現(xiàn)使得某些計(jì)算任務(wù)可以給專用的核心來執(zhí)行。這樣不僅可以減輕主核的運(yùn)算壓力,而且還因?yàn)閷S煤诵牡挠?jì)算效率更高,可以在整體上降低系統(tǒng)的功耗。近幾年異構(gòu)多核的應(yīng)用越來越廣泛,尤其是在流媒體和通信等對數(shù)據(jù)計(jì)算量很大的領(lǐng)域,這些異構(gòu)處理器通常會集成DSP核心來達(dá)到計(jì)算性能的要求。
操作系統(tǒng)對同構(gòu)多核處理器的兼容,最早使用的是單操作系統(tǒng)單內(nèi)核架構(gòu),在一個(gè)處理核心上運(yùn)行內(nèi)核作為主核,其他的核作為運(yùn)算設(shè)備,早期的Linux使用了這種架構(gòu)[2]。該架構(gòu)的特點(diǎn)是實(shí)現(xiàn)簡單,無需對操作系統(tǒng)進(jìn)行大的改動。但是只有一個(gè)核心運(yùn)行了內(nèi)核,所以只對用戶態(tài)的任務(wù)起到了多核加速,內(nèi)核依舊是單核運(yùn)行狀態(tài),RTOS早期也有用到這種架構(gòu)。
對于微內(nèi)核架構(gòu)的RTOS可以在同構(gòu)多核處理器上使用單操作系統(tǒng)多內(nèi)核架構(gòu)[3],在每個(gè)處理核心上加載運(yùn)行操作系統(tǒng)內(nèi)核,每個(gè)內(nèi)核都有本地的調(diào)度隊(duì)列,該架構(gòu)每個(gè)處理器核的地位是同等的[3][4]。這種架構(gòu)的優(yōu)點(diǎn)是在微內(nèi)核的上層提供一個(gè)全局的任務(wù)分配機(jī)制就可以做到核間的負(fù)載平衡,充分發(fā)揮多核的性能。
異構(gòu)多核處理器多使用主從的多RTOS架構(gòu),主核上運(yùn)行一個(gè)主控的OS,異構(gòu)核運(yùn)行同樣的OS[4]或者不同OS[1]。論文[1]中是現(xiàn)在比較典型的異構(gòu)多核的實(shí)現(xiàn)方式,芯片中的通用核運(yùn)行諸如Linux的非實(shí)時(shí)操作系統(tǒng)支持豐富的應(yīng)用,專用核運(yùn)行諸如uc/os II的RTOS給實(shí)時(shí)要求高的運(yùn)算提供服務(wù),作為協(xié)處理器運(yùn)行。這種架構(gòu)的好處是可以讓嵌入式設(shè)備兼具通用性和專用性。
嵌入式OS實(shí)現(xiàn)多核芯片支持除了上面的技術(shù),現(xiàn)在使用虛擬化技術(shù)也是最常見的一種。首先,虛擬化是指通過虛擬化技術(shù)將一臺計(jì)算機(jī)虛擬為多臺邏輯計(jì)算機(jī),這樣通過虛擬化這一中間層完全屏蔽了底層的硬件。使得在一臺計(jì)算機(jī)上同時(shí)運(yùn)行多個(gè)邏輯計(jì)算機(jī),每個(gè)邏輯計(jì)算機(jī)可運(yùn)行不同的操作系統(tǒng),并且應(yīng)用程序可以在相互獨(dú)立的空間內(nèi)運(yùn)行而互不影響,從而顯著提高計(jì)算機(jī)的工作效率和安全性。Hypervisor[5]是風(fēng)河公司提供的虛擬化方法,它是一種軟件,在虛擬服務(wù)器和底層硬件之間建立一個(gè)抽象層。如圖4 風(fēng)河公司的虛擬化結(jié)構(gòu)。
虛擬化技術(shù)不僅可以在將每個(gè)核模擬成一個(gè)虛擬計(jì)算機(jī)還可以將單個(gè)核模擬成多個(gè)計(jì)算機(jī)。這種技術(shù)可以簡化操作系統(tǒng)的設(shè)計(jì),在多核處理器上直接使用現(xiàn)有的很多操作系統(tǒng)資源。
除了上述如何組織多核處理器操作系統(tǒng)的研究,為了發(fā)揮異構(gòu)多核在功耗上的優(yōu)勢,RTOS研究人員在內(nèi)核的調(diào)度上進(jìn)行了相關(guān)的研究[6]-[8]。主要有:異構(gòu)多核中任務(wù)調(diào)度的任務(wù)劃分[7] ,解決如何將任務(wù)中計(jì)算量需求大且在通用處理核心上耗時(shí)的任務(wù)劃分出來給專有的核心;對固定截止時(shí)間任務(wù)進(jìn)行異構(gòu)多核資源的動態(tài)分配將任務(wù)的錯(cuò)過率降到最低[6];以及綜合考慮任務(wù)最早結(jié)束時(shí)間、核心負(fù)載均衡和低功耗的調(diào)度算法[8],在以往只考慮任務(wù)截止時(shí)間單個(gè)因素的算法基礎(chǔ)上針對異構(gòu)處理器增加了功耗控制。
2 總結(jié)
RTOS的發(fā)展與微電子和集成電路的發(fā)展息息相關(guān),現(xiàn)在市場已經(jīng)有具有八個(gè)核心的嵌入式處理,但是同構(gòu)多核的性能不能完全適應(yīng)嵌入式的應(yīng)用,在嵌入式領(lǐng)域中更加具有應(yīng)用前景的是異構(gòu)多核[9],給通用核心配上專用核心來提高系統(tǒng)性能和降低系統(tǒng)功耗。
物聯(lián)網(wǎng)是近年來IT產(chǎn)業(yè)發(fā)展的一個(gè)熱點(diǎn),最新的VxWorks 7已經(jīng)被風(fēng)河公司定義為專為物聯(lián)網(wǎng)設(shè)計(jì)的RTOS,并稱RTOS由此進(jìn)入真正的模塊化、可升級平臺時(shí)代,可廣泛支撐各種物聯(lián)網(wǎng)設(shè)備,從消費(fèi)者可穿戴設(shè)備到大型網(wǎng)絡(luò)設(shè)備皆可應(yīng)用[10]。這個(gè)市場的應(yīng)用量將非常大,大到航空航天小到各種穿戴設(shè)備。
參考文獻(xiàn):
[1] Chen J, Chang D W, Young C P, et al. Building a Multi-kernel Embedded System with High Performance IPC Mechanism[C]//High Performance Computing and Communications (HPCC), 2011 IEEE 13th International Conference on. IEEE, 2011: 506-511.
[2] 李彬, 任國林. Linux 內(nèi)核基于對稱多處理機(jī)的實(shí)現(xiàn)分析[J]. 計(jì)算機(jī)技術(shù)與發(fā)展, 2006(1).
[3] 張蔭芾, 應(yīng)忍冬, 周玲玲. 支持多核架構(gòu)的微內(nèi)核操作系統(tǒng)設(shè)計(jì)[J]. 計(jì)算機(jī)工程, 2009, 35(23): 249-251.
[4] 蔣建春, 汪同慶. 一種異構(gòu)多核處理器嵌入式實(shí)時(shí)操作系統(tǒng)構(gòu)架設(shè)計(jì)[J]. 計(jì)算機(jī)科學(xué), 2011, 38(6): 298-302.
[5] Wikipedia. Hypervisor [EB/OL]. http://en.wikipedia.org/wiki/Hypervisor.
[6] Tang H K, Rupnow K, Ramanathan P, et al. Dynamic binding and scheduling of firm-deadline tasks on heterogeneous compute resources[C]//Embedded and Real-Time Computing Systems and Applications (RTCSA), 2010 IEEE 16th International Conference on. IEEE, 2010: 275-280.
[7] Saha S, Deogun J S, Lu Y. Adaptive energy-efficient task partitioning for heterogeneous multi-core multiprocessor real-time systems[C]//High Performance Computing and Simulation (HPCS), 2012 International Conference on. IEEE, 2012: 147-153.
[8] Wenjing L, Lisheng W. Energy-considered scheduling algorithm based on heterogeneous multi-core processor[C]//Mechatronic Science, Electric Engineering and Computer (MEC), 2011 International Conference on. IEEE, 2011: 1151-1154.
[9] 黃國睿, 張平, 魏廣博. 多核處理器的關(guān)鍵技術(shù)及其發(fā)展趨勢[J]. 計(jì)算機(jī)工程與設(shè)計(jì), 2009 (10): 2414-2418.
[10] Windrive. 風(fēng)河推出新一代物聯(lián)網(wǎng)應(yīng)用實(shí)時(shí)操作系統(tǒng) VxWorks 7 [EB/OL]. http://www.windriver.com.cn/news/press/newsdetail.aspx?newsid=178.