亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        實(shí)時機(jī)模型及時間語義指令集研究*

        2021-05-11 01:35:34陳香蘭周學(xué)海
        關(guān)鍵詞:指令集時序指令

        陳香蘭,李 曦,汪 超,周學(xué)海

        (中國科學(xué)技術(shù)大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,安徽 合肥 230027)

        1 引言

        航空航天、汽車電子和軌道交通等硬實(shí)時HRT(Hard Real-Time)系統(tǒng)需要嚴(yán)格的時域控制,要求系統(tǒng)設(shè)計(jì)滿足時間可預(yù)測性,以保證時序行為確定性和安全隔離。所謂“時間可預(yù)測性”一般指靜態(tài)地計(jì)算程序執(zhí)行時間(Execution Time)的安全和精確上界的能力,與計(jì)算機(jī)體系結(jié)構(gòu)和任務(wù)執(zhí)行機(jī)制密切相關(guān)。現(xiàn)代的計(jì)算機(jī)系統(tǒng)通過在各個層次引入計(jì)算并行化和訪存緩存化等優(yōu)化機(jī)制,雖然有效提升了系統(tǒng)的平均性能,卻也帶來了嚴(yán)重的時序不確定性問題。另一方面,傳統(tǒng)實(shí)時系統(tǒng)設(shè)計(jì)采用優(yōu)先級調(diào)度策略,依賴定時器盡力而為地滿足任務(wù)執(zhí)行的時間約束,但定時器為處理器外設(shè),與指令執(zhí)行異步,且優(yōu)先級調(diào)度可能存在時序異常等問題。這兩方面的原因?qū)е鲁绦驁?zhí)行時間在設(shè)計(jì)階段難以緊致確定,且平臺依賴,難以驗(yàn)證。因此,現(xiàn)有設(shè)計(jì)方法只能基于保守設(shè)計(jì)思想,以最壞情況執(zhí)行時間WCET(Worst-Case Execution Time)分析理論為基礎(chǔ),采用時序相對簡單的系統(tǒng)架構(gòu)或過量資源預(yù)留策略,導(dǎo)致實(shí)際應(yīng)用中的資源利用率甚至不足30%。即便如此,在設(shè)計(jì)時仍然無法保證可預(yù)測性,操作的正確性只能事后驗(yàn)證。

        未來的實(shí)時系統(tǒng)具有混合關(guān)鍵系統(tǒng)MCS(Mixed Critical System)特征,要求為時序關(guān)鍵(Timing Critical)應(yīng)用提供實(shí)時性保證,為安全關(guān)鍵(Safety Critical)應(yīng)用提供時空隔離能力,為其他應(yīng)用提供高性能算力。因此,需要構(gòu)建嚴(yán)格的緊致時間MTTT(Multi-Tier Tight Timing)設(shè)計(jì)方法,需要突破現(xiàn)有計(jì)算機(jī)體系結(jié)構(gòu)理論和方法的局限,建立軟硬件混合系統(tǒng)的建模方法。

        自20世紀(jì)90年代起,實(shí)時系統(tǒng)研究者認(rèn)識到時間可預(yù)測性對硬實(shí)時系統(tǒng)設(shè)計(jì)的重要性,以構(gòu)造時間行為可預(yù)測的實(shí)時系統(tǒng)為目標(biāo),從計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)、處理器微結(jié)構(gòu)、編程模型和編程語言等方面展開了廣泛而深入的研究。研究表明,采用構(gòu)件化軟件體系結(jié)構(gòu)、基于時間觸發(fā)執(zhí)行機(jī)制和LET(Logical Execution Time)編程模型[1]構(gòu)建時序關(guān)鍵系統(tǒng)是實(shí)現(xiàn)MCS系統(tǒng)時序隔離、可預(yù)測、可組合和可擴(kuò)展(Extensibility)的可行技術(shù)路線。

        但是,受上述體系結(jié)構(gòu)和任務(wù)執(zhí)行機(jī)制限制,LET模型系統(tǒng)執(zhí)行效率低下。為此,本文認(rèn)為必須解決2個關(guān)鍵問題:(1)建立操作的時間語義模型,明確其時間行為、時間屬性和時間約束等要求;(2)突破現(xiàn)有計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)限制,提出具有時間語義的實(shí)時計(jì)算基礎(chǔ)架構(gòu)模型(處理器體系結(jié)構(gòu)、編程語言、分布式通信)和編程范式。目前廣泛應(yīng)用的建模方法只提供了描述時序約束的語法糖,缺少時間語義,無法在設(shè)計(jì)時進(jìn)行時序驗(yàn)證和組合。

        本文提出一種具有時間語義的處理器體系結(jié)構(gòu)模型——實(shí)時機(jī)RTM(Real-Time Machine),和時間觸發(fā)指令集TTI(Time-Triggered Instruction set)[2],作為構(gòu)建多層次協(xié)同的緊致時間MTTT設(shè)計(jì)方法的重要基礎(chǔ)。

        2 相關(guān)研究

        本節(jié)對當(dāng)前支持實(shí)時計(jì)算的處理器體系結(jié)構(gòu)和高級編程語言的研究現(xiàn)狀進(jìn)行梳理。

        2.1 實(shí)時計(jì)算處理器體系結(jié)構(gòu)

        實(shí)時處理器研究工作可分為3類:時間可預(yù)測處理器TPP(Time/Temporal/Timing Predictable Processor)、RTOS(Real-Time Operating System)加速器和反應(yīng)式處理器。

        LEOPARD(LEOn-based Probabilictically Analyzable processor Design)[3]基于通用處理器LEO,增加低開銷機(jī)制,支持基于測量的時序分析MBTA(Measurement-Based Timing Analysis)WCET時捕捉抖動(延時變化)資源的影響。在計(jì)算核級,分別控制Cache、TLB和延時可變的浮點(diǎn)計(jì)算單元的抖動。在芯片級,控制競爭,保證時間可組合。

        DMT(Dominant Meta Thread)[4]為同步多線程SMT(Simultaneous MultiTreading)處理器。處理器中存在多個硬實(shí)時(HRT)和軟實(shí)時SRT(Soft Real-Time)或非實(shí)時線程。主線程DMT以看起來是處理器中的唯一線程的方式執(zhí)行,因此可以采用單線程WCET分析技術(shù)。通過主時間共享技術(shù)DTS(Dominant Time Sharing),多個HRT線程共享DMT的執(zhí)行時間。各線程的時間片長度和周期可以在運(yùn)行時調(diào)整。

        FlexPRET[5]處理器為SMT處理器,采用特殊前推通路避免數(shù)據(jù)依賴,采用細(xì)粒度多線程技術(shù)通過并發(fā)降低不使用動態(tài)分支預(yù)測和Cache所導(dǎo)致的性能損失,達(dá)到WCET計(jì)算的復(fù)雜度與平均計(jì)算性能之間的平衡。同時執(zhí)行HRT任務(wù)和SRT任務(wù)。流水線使用線程隔離技術(shù)(HRT線程時分多址)消除線程間干擾。指令調(diào)度對SRT任務(wù)透明,不影響HRT任務(wù)。

        同時,F(xiàn)lexPRET以所謂PRET(PREcision-Timed)機(jī)模型[6]——一種提供可重復(fù)和可控制時序的處理器微結(jié)構(gòu)模型——為基礎(chǔ),針對時序可重復(fù)性問題進(jìn)行指令集擴(kuò)充,增加了一些時序控制指令,包括設(shè)定代碼段的執(zhí)行時間下界指令delay_until、設(shè)定跳轉(zhuǎn)時間下界指令branch_expire以及設(shè)定在某個時刻拋出異常的指令interrupt_expire。PRET機(jī)采用物理與邏輯混合的時間概念。在FlexPRET中,時間表示為相對于系統(tǒng)加電或復(fù)位開始的納秒值而不是時鐘滴答數(shù),時序精度為一個時鐘周期,時鐘寬度為32位,更長的相對時間需要軟件實(shí)現(xiàn)。這種表示方式使程序的時間值與處理器時鐘頻率無關(guān),保證了二進(jìn)制代碼的可移植性,并支持動態(tài)頻率調(diào)節(jié)技術(shù)。對分布式系統(tǒng),可以通過調(diào)整定時器的增加值來實(shí)現(xiàn)時間同步,并維持亞納秒定時精度。FlexPRET將具有明確時序約束的硬實(shí)時線程(HRT)和傳統(tǒng)的軟實(shí)時線程(SRT)組合在一起,由應(yīng)用程序平衡共享處理器資源,將HRT不占用的流水線周期讓給SRT使用。硬件多線程技術(shù)顯示,確定性隨著應(yīng)用中并發(fā)性增加而增加,與傳統(tǒng)處理器差別顯著。只要有足夠的并發(fā)性,流水線停頓和訪存延遲較小,線程執(zhí)行的時序更加規(guī)則和可預(yù)測,中斷響應(yīng)延遲也降低幾個數(shù)量級,處理器利用率可達(dá)100%,但線程交替訪問,難以確定截止時間。

        ARPRET(Auckland Reactive PRET)[7]處理器用于執(zhí)行PRET-C程序。PRET-C是C語言的宏擴(kuò)展,支持同步并發(fā)和表達(dá)邏輯時間的高級結(jié)構(gòu)。ARPRET基于3級流水線軟核Microblaze和1個硬件調(diào)度器PFU(Predictable Functional Unit)。只使用片上存儲器,因此其讀寫訪存指令為1個時鐘周期。ARPRET以吞吐率和簡化最壞情況響應(yīng)時間WCRT(Worst-Case Response Time)分析為目標(biāo)。采用邏輯時間概念,通過靜態(tài)代碼分析實(shí)現(xiàn)邏輯時間和物理時間的映射。

        JOP(Java Optimized Processor)處理器[8]使用2級棧緩存架構(gòu)實(shí)現(xiàn)Java虛擬機(jī)的棧架構(gòu)。采用3級流水線,使用2個寄存器存儲2個棧頂對象,棧的其他部分在SRAM中。由于分支延遲開銷很小,因此不使用分支預(yù)測。JOP中的所有字節(jié)碼被轉(zhuǎn)換為固定長度的微指令,每個微指令的執(zhí)行周期數(shù)固定,獨(dú)立于其周圍的指令。

        ARPA-MT(Advanced Real-time Processor Architecture-MultiThreaded)[9]是一種基于MIPS32架構(gòu)的SMT處理器,針對多任務(wù)實(shí)時系統(tǒng)進(jìn)行了優(yōu)化。ARPA-MT的協(xié)處理器0負(fù)責(zé)內(nèi)存管理、異常和中斷處理,協(xié)處理器2則實(shí)現(xiàn)了實(shí)時系統(tǒng)的硬件支持,如定時、任務(wù)調(diào)度、同步和切換,以及時序約束檢測。這些功能的硬件實(shí)現(xiàn)能夠更快、更加可預(yù)測地執(zhí)行任務(wù),減少了RTOS開銷,并改善其確定性。

        與環(huán)境高效和可靠地交互(稱“反應(yīng)”)是面向控制的嵌入式系統(tǒng)應(yīng)用的關(guān)鍵特征,往往采用同步語言(如Esterel)和編程范式。反應(yīng)式處理器不使用中斷而是使用ISA(Instruction-Set Architecture)指令與環(huán)境交互,且執(zhí)行機(jī)制采用時間觸發(fā)而非事件觸發(fā)。REMIC(REactive MICroprocessor)[10]是帶有同步反應(yīng)式功能單元和控制單元的反應(yīng)式處理器,EMPEROR(Embedded MultiProcessor supporting Esterel Reactive OpeRations)[11]提供在多處理器之間分配同步線程的方法。

        可以看出,TPP處理器通過限制使用分支預(yù)測、亂序執(zhí)行和Cache等造成時序不確定的技術(shù),提高WCET分析的緊致性。但是,TPP主要以滿足WCET分析緊致性要求為目標(biāo),損失了計(jì)算性能。RTOS加速器通過硬件實(shí)現(xiàn)任務(wù)調(diào)度和關(guān)鍵服務(wù)原語,降低RTOS的運(yùn)行開銷和時間抖動,提升了可預(yù)測性,利于系統(tǒng)驗(yàn)證(硬件執(zhí)行時序是完全確定的),但受硬件實(shí)現(xiàn)復(fù)雜度和資源限制,靈活性不佳,通信接口效率低、時延高。反應(yīng)式處理器僅支持特定的同步編程語言和范式,通用性不佳,且計(jì)算性能有限。

        2.2 實(shí)時計(jì)算高級語言和編程模型

        現(xiàn)代編程語言反映了計(jì)算機(jī)體系結(jié)構(gòu)的特征。面向通用計(jì)算的編程語言描述了操作的執(zhí)行順序,操作的時間屬性與程序的邏輯正確性無關(guān)。實(shí)時系統(tǒng)編程可以基于同步范式(使用同步編程語言,如Esterel)或異步范式(使用異步編程語言,如Ada)。

        同步模型基于邏輯時間模型和同步假設(shè),即動作是原子的且瞬間完成,并發(fā)動作間無交互,動作與邏輯Tick同一時刻發(fā)生,無抖動。該抽象為確定性模型,利于系統(tǒng)行為分析驗(yàn)證。同步語言中,邏輯Tick是語言語義的組成成分,用于事件定序,與實(shí)際物理時間無關(guān)。Esterel等同步語言基于虛擬時間抽象,與平臺的物理時間無關(guān),其邏輯行為總是可預(yù)測的。實(shí)現(xiàn)時采用時鐘驅(qū)動的靜態(tài)調(diào)度技術(shù),利于響應(yīng)時間分析和因果關(guān)系保證,但表達(dá)復(fù)雜交互行為的能力不足。

        異步語言基于物理時間的實(shí)時鐘模型,一般提供時鐘訪問、進(jìn)程延遲、同步與通信超時等實(shí)時控制設(shè)施(包括原語與結(jié)構(gòu))。Ada編程語言基于物理時間概念提供了量化描述時序約束的語言結(jié)構(gòu),需要借助定時器中斷或操作系統(tǒng)所提供的時間服務(wù)控制程序的時序行為。Ada采用中斷驅(qū)動的優(yōu)先級調(diào)度技術(shù),利用定時器控制任務(wù)執(zhí)行時間,且中斷是一種異步并發(fā)機(jī)制,必然導(dǎo)致應(yīng)用程序的時間行為不確定和不可重復(fù)。因此,采用Ada等高級語言進(jìn)行實(shí)時軟件編程是低效的,一方面其時序約束定義的粒度過粗(以任務(wù)為最小實(shí)體),另一方面,這些語言的編程模型所表達(dá)的時序約束僅為程序中位置相鄰的前后2個任務(wù)之間的時序關(guān)系,無法表達(dá)任意操作(可能并行)的時間約束。由于沒有支持通過合適的方法定義時間需求和進(jìn)行高精度時序分析的實(shí)時語言,實(shí)踐中HRT系統(tǒng)仍然只能采用低級編程語言,并手工對時間需求進(jìn)行調(diào)優(yōu)。

        Chung等[12]針對靜態(tài)調(diào)度方法,對C語言進(jìn)行擴(kuò)展,基于所謂時間有向圖(Directed Timed Graph)模型,給出表達(dá)時序約束和優(yōu)先約束的語言結(jié)構(gòu),包括時序塊(Timing Block)和Temporal表達(dá)式,描述操作的開始時間、完成時間和周期。

        ZET(Zero Execution Time)模型是同步反應(yīng)式編程的基礎(chǔ)抽象,BET(Bounded Execution Time)模型是實(shí)時調(diào)度理論的基礎(chǔ)抽象。實(shí)時程序的相關(guān)行為由輸入輸出時刻決定,而非程序代碼的執(zhí)行時刻。因此,Henzinger等[1]結(jié)合ZET和BET模型,在2000年提出了實(shí)時編程范式LET模型。采用LET模型時,任務(wù)總是在其激活區(qū)間的開始處讀數(shù)據(jù),結(jié)束處寫數(shù)據(jù),使其可觀察的時態(tài)行為獨(dú)立于任務(wù)的物理執(zhí)行。LET確定了讀程序輸入到寫程序輸出之間所需的時間,而不考慮執(zhí)行程序所需的時間,具有平臺可移植性。雖然實(shí)際應(yīng)用時LET模型的資源(緩存、時間)利用率較低,但LET為控制工程師和軟件工程師提供了清晰的時序模型接口。2017年以來,隨著多核平臺下可預(yù)測性(Predictability)成為關(guān)鍵問題,工業(yè)界認(rèn)為LET對于解決多核MCS應(yīng)用和分布式實(shí)時系統(tǒng)的通信確定性問題極具吸引力,甚至可能與Autosar相結(jié)合而成為新的工業(yè)標(biāo)準(zhǔn)。

        3 實(shí)時機(jī)模型

        計(jì)算機(jī)科學(xué)領(lǐng)域的時間概念相當(dāng)原始。圖靈機(jī)和馮·諾依曼機(jī)模型基于順序控制抽象,指令一條接一條執(zhí)行,時間先后關(guān)系(Temporal Succession)是當(dāng)前機(jī)器語言級唯一可用的時序關(guān)系。雖然定義馮·諾依曼機(jī)的程序邏輯行為無需顯式地引用時間概念,但無法滿足實(shí)時系統(tǒng)所需要的實(shí)時間約束。

        在時態(tài)邏輯、進(jìn)程代數(shù)、自動機(jī)和斷言等形式化建模方法中,時間概念在模型語義中是隱式的,所考慮的唯一時間屬性是順序,不考慮絕對時間(時間點(diǎn))或相對時間(持續(xù)時間),因此只能表達(dá)和驗(yàn)證離散事件系統(tǒng)行為的時態(tài)順序正確性,欠缺足夠的實(shí)時表達(dá)能力。它們的基本假設(shè)是程序代碼的執(zhí)行速度足夠快,程序的時間屬性與其功能正確性無關(guān)。為了適應(yīng)實(shí)時系統(tǒng)規(guī)約的需要,人們試圖擴(kuò)展傳統(tǒng)的形式化方法,以允許定量地表達(dá)定時特性,如時間自動機(jī)和實(shí)時時態(tài)邏輯(Real-Time Temporal Logic)等。這些方法可應(yīng)用于簡單系統(tǒng)的可調(diào)度性分析或時間行為驗(yàn)證,但難以應(yīng)用于具有嚴(yán)格時序行為約束的復(fù)雜實(shí)時系統(tǒng)。

        現(xiàn)代計(jì)算機(jī)系統(tǒng)依賴基于定時器的時鐘中斷機(jī)制提供定時服務(wù)。定時器作為處理器外設(shè),通過輪詢或中斷方式訪問。時鐘中斷是一種異步并發(fā)機(jī)制,精度低,開銷大,且存在副作用——中斷當(dāng)前任務(wù)將導(dǎo)致其執(zhí)行時間延長,可能產(chǎn)生危害性后果?;趦?yōu)先級的任務(wù)調(diào)度策略以中斷機(jī)制為基礎(chǔ),行為難以預(yù)測,且驗(yàn)證困難,平臺依賴性高。

        可以看出,由于當(dāng)前處理器體系結(jié)構(gòu)不顯式地提供時間語義支持,系統(tǒng)模型和基礎(chǔ)設(shè)施缺乏時間語義,或僅基于邏輯時間,或僅基于物理時間。雖有研究者提出了一些引入時間概念的高級語言,但底層沒有時間語義而僅僅從高層引入是有問題的,導(dǎo)致系統(tǒng)設(shè)計(jì)、分析、驗(yàn)證與實(shí)現(xiàn)的時間語義不一致。現(xiàn)有時間可預(yù)測性保證依賴基于WCET的可調(diào)度分析,但由于系統(tǒng)行為內(nèi)在的異步并發(fā)性,執(zhí)行時間有界并不能保證操作的執(zhí)行順序,因此不能保證時序行為可預(yù)測。

        傳統(tǒng)的保守方法只適合簡單實(shí)時系統(tǒng)設(shè)計(jì),MCS系統(tǒng)需要緊致時間設(shè)計(jì)方法。2005年以來,Bensalem等[13]多認(rèn)識到當(dāng)前研究的局限性,在不同場合提出實(shí)時計(jì)算需要重新思考甚至發(fā)展計(jì)算機(jī)科學(xué)的理論基礎(chǔ)。但迄今為止,由于實(shí)時應(yīng)用涉及控制工程、電子工程、計(jì)算機(jī)工程和軟件工程等多學(xué)科交叉,各領(lǐng)域之間存在理論方法甚至文化差異,這一問題遠(yuǎn)未解決。

        本文認(rèn)為,任務(wù)、動作和操作的時間語義應(yīng)包含時間行為和時間屬性。前者與硬件實(shí)現(xiàn)無關(guān),不應(yīng)依賴于底層實(shí)現(xiàn);后者與硬件實(shí)現(xiàn)相關(guān),即具有平臺依賴性。前者為語義確定性問題,后者為可預(yù)測性問題。LET模型通過解耦計(jì)算與通信,保證了時態(tài)確定性,具有時域控制與值域控制相分離、時序行為可預(yù)測可組合且平臺無關(guān)等特點(diǎn)。另一方面,時間觸發(fā)TT(Time-Triggered)執(zhí)行機(jī)制具有時序可預(yù)測性和時間隔離(分區(qū))的特性。但是,兩者都需要具有確定時間行為的處理器架構(gòu)和時間語義指令集支持,并以此為基礎(chǔ)形成緊致時間設(shè)計(jì)方法。

        定義1實(shí)時機(jī)RTM模型對馮·諾依曼機(jī)進(jìn)行以下擴(kuò)充:

        (1)計(jì)算機(jī)系統(tǒng)由運(yùn)算器、控制器、存儲器、時鐘設(shè)備和I/O設(shè)備等功能部件構(gòu)成;

        (2)指令時鐘部件用于操作定時,與CPU的指令數(shù)據(jù)通路和控制器緊耦合,在保持馮·諾依曼機(jī)指令的邏輯功能不變的同時,增加特定操作的執(zhí)行時刻和限定操作序列(動作)的執(zhí)行時間等時間語義;

        (3)RTM的指令字由操作碼、地址碼和定時碼構(gòu)成,操作碼定義操作的功能,地址碼指定操作數(shù)和下一條指令的地址,定時碼指定操作的時間約束。

        RTM如圖1所示,以支持緊致時間設(shè)計(jì)為目標(biāo),其核心思想不是僅僅在CPU中增加了時鐘部件,而在于明確了時間行為控制的概念,并通過提供時間語義指令集,使上層應(yīng)用的時間行為與指令周期同步,實(shí)現(xiàn)了時域控制的原子性,減小了定時抖動。RTM以“關(guān)注分離(Separation of Concerns)”和“構(gòu)建正確(Correct-by-Construction)”為設(shè)計(jì)原則,區(qū)分邏輯控制與時域控制,為實(shí)現(xiàn)從時序可預(yù)測設(shè)計(jì)到時序確定性設(shè)計(jì)轉(zhuǎn)變奠定了理論基礎(chǔ),利于實(shí)時程序代碼自動生成和降低系統(tǒng)驗(yàn)證的復(fù)雜度。

        Figure 1 RTM architecture圖1 RTM結(jié)構(gòu)

        以RTM為基礎(chǔ),時間語義指令集可提供at、delay-until和timestamp等控制時間行為的指令,支持邏輯執(zhí)行時間(LET)模型和時間觸發(fā)等應(yīng)用模式。

        4 應(yīng)用示例

        本節(jié)對RISC-V[14]指令集進(jìn)行時間語義擴(kuò)展,定義時間觸發(fā)指令集TTI,并給出一個直升機(jī)飛控應(yīng)用實(shí)例。

        4.1 TTI指令集

        TTI時間語義指令集擴(kuò)展主要包含時間模型、時間寄存器和時間語義指令3個部分。其中,時間模型規(guī)范該指令集擴(kuò)展時間相關(guān)的概念和應(yīng)用方法;時間寄存器是在通用寄存器之外添加的新寄存器,用于存放時間值,該時間值符合時間模型規(guī)范;時間語義指令包括時鐘管理指令、時間寄存器管理指令和時間語義操作指令。

        本文采用基于時間點(diǎn)(時刻)的絕對時間模型,即處理器時鐘的時間從設(shè)定時刻開始,一直以一定的速率增長。描述操作的時間時,采用某時刻的方式;描述一個時間段時,采用從某時刻開始到某時刻結(jié)束的方式。時間寄存器存放絕對時間模型的一個時間點(diǎn)。

        時間語義指令功能如表1所示,包括:

        (1)時間管理指令:setti/getti指令用于設(shè)置/獲取系統(tǒng)當(dāng)前時間;settg指令用于設(shè)置系統(tǒng)當(dāng)前時間粒度,即時間向前自增的單位。

        (2)時間寄存器管理指令:tmove指令用于通用寄存器和時間寄存器之間的數(shù)據(jù)傳輸。

        (3)實(shí)時操作指令:ttiat/ttoat指令用于在指定時刻I/O端口輸入輸出。

        Table 1 Function of extend instructions

        表1中,rs1、rs2和rd為通用寄存器,trs為時間寄存器地址,tg為系統(tǒng)當(dāng)前時間粒度寄存器,ti為當(dāng)前時間寄存器。

        RISC-V是一個典型的三操作數(shù)、加載-存儲形式的RISC指令集架構(gòu),由基礎(chǔ)指令集和擴(kuò)展指令集組成?;A(chǔ)指令由基本整數(shù)指令構(gòu)成,擴(kuò)展指令分為標(biāo)準(zhǔn)擴(kuò)展和非標(biāo)準(zhǔn)擴(kuò)展2大類?,F(xiàn)階段已經(jīng)完成的標(biāo)準(zhǔn)擴(kuò)展為一個包含標(biāo)準(zhǔn)乘法和除法(M)、原子(A)、單精度(F)和雙精度(D)運(yùn)算的通用標(biāo)量指令集。非標(biāo)準(zhǔn)擴(kuò)展作為一個高度特殊化的擴(kuò)展,由用戶根據(jù)功能需求自定義完成。TTI指令集基于RISC-V非標(biāo)準(zhǔn)擴(kuò)展進(jìn)行定義,如圖2所示。

        Figure 2 Format extension for TTI instructions圖2 TTI擴(kuò)展指令指令字格式

        4.2 直升機(jī)飛控

        直升機(jī)飛控系統(tǒng)的需求如圖3所示。若采用傳統(tǒng)的前后臺編程范式或輪詢范式實(shí)現(xiàn)飛控軟件,其架構(gòu)和時序分別如圖4a和圖4b所示??梢钥闯?,當(dāng)某時刻需要執(zhí)行多個動作時,采用這種編程模式必然存在定時抖動,如圖4b中時刻0,2和6。

        Figure 3 Requirements of a helicopter flight control system

        Figure 4 Software architecture and timing

        LET編程模型將任務(wù)的邏輯行為“輸入-計(jì)算-輸出”過程相分離,如圖5所示,定義了嚴(yán)格的輸入輸出時刻,要求在指定時刻輸入,在輸出時刻之前計(jì)算出結(jié)果,并能夠?qū)⑤敵鼋Y(jié)果保持到指定時刻輸出,具有時間行為可預(yù)測、可組合和平臺無關(guān)性等重要特征,利于設(shè)計(jì)時進(jìn)行系統(tǒng)行為驗(yàn)證。

        Figure 5 LET programming model圖5 LET編程模型

        基于LET編程模型的飛控系統(tǒng)的實(shí)現(xiàn)代碼如下所示:

        1Init(); // init the system

        2time_t1 =time_t2 =time_t3 =time_t4 = 0;/*suppose all tasks start at 0*/

        3flag_t1 =TTI(all_sensor_data,time_t1);

        4flag_t2 =TTI(keyboard_data,time_t2);

        5flag_t3 =TTI(sensor_data,mode_data,time_t3);

        6flag_t4 =TTI(loop_data1,loop_data2,loop_data3,time_t4);

        7SetIntertup();/*set a interrupt, and only enable it to interrupt*/

        8 /*t1~t4, every 1/180 second, when occur, store*/

        9 /*context for current task and go to INT_LABEL*/

        10while(TRUE) {

        11 INT_LABEL:

        12if(flag_t1) {

        13load_context();

        14t1();

        15store_context();

        16time_t1 += 1;

        17TTO(sensor_data,time_t1);

        18flag_t1 =TTI(all_sensor_data,time_t1);

        19 }

        20if(flag_t2) {

        21load_context();

        22t2();

        23store_context();

        24time_t2 += 6;

        25TTO(mode_data,time_t2);

        26flag_t2 =TTI(keyboard_data,time_t2);

        27 }

        28if(flag_t3) {

        29load_context();

        30t31();

        31t32();

        32t33();

        33store_context();

        34time_t3 += 2;

        35TTO(loop_data1,loop_data2,loop_data3,time_t3);

        36flag_t3 =TTI(sensor_data,mode_data,time_t3);

        37 }

        38if(flag_t4) {

        39load_context();

        40t4();

        41store_context();

        42time_t4 += 6;

        43TTO(control_data,time_t4);

        44flag_t4 =TTI(loop_data1,loop_data2,loop_data3,time_t4);

        45 }

        46 }

        基于LET編程模型的飛控系統(tǒng)各任務(wù)的時序行為如圖6所示。其中,t1為傳感器任務(wù),t2為模式任務(wù),t31,t32,t33為內(nèi)循環(huán)任務(wù),t4為控制器任務(wù)。

        Figure 6 Timing for the LET program of the helicopter flight control program圖6 直升機(jī)飛控LET程序的時序

        每個任務(wù)的LET實(shí)現(xiàn)包含3個部分:基于TTI()的定時輸入、計(jì)算和基于TTO()的定時輸出。其中,TTI()和TTO()分別是對ttiat和ttoat指令的封裝。TTI()在指定時刻完成指定數(shù)據(jù)的輸入,TTO()在指定時刻完成指定數(shù)據(jù)的輸出。若指定的時刻未到,則等待,等待過程中TTI()的返回值始終為FALSE,指定時刻到來時,TTI()完成指定數(shù)據(jù)的輸入,此后返回值為TRUE。TTO()類似,但沒有返回值。每個任務(wù)通過TTI()顯式地請求在指定時刻執(zhí)行指定數(shù)據(jù)的輸入。系統(tǒng)實(shí)現(xiàn)代碼中第3~6行分別是t1,t2,t3和t4的首次定時輸入請求,對應(yīng)圖6中的“↑”標(biāo)記。計(jì)算部分的代碼是位于load_contex()和store_context()中間的代碼,第14,22,30~32,40行所示。計(jì)算執(zhí)行完畢,每個任務(wù)通過TTO()顯式地請求在指定時刻輸出指定數(shù)據(jù),同時通過TTI()發(fā)出下一輪的定時輸入請求。系統(tǒng)實(shí)現(xiàn)代碼中第17,25,35,43行分別是這4個任務(wù)的定時輸出請求,第18,26,36,44行分別是它們的下一輪定時輸入請求,并且這4個任務(wù)都將本次輸出和下一輪的輸入放在同一時刻,對應(yīng)圖6中的“?”標(biāo)記??梢钥闯?,任務(wù)的LET實(shí)現(xiàn)中,輸入輸出時間完全由TTI()和TTO()指定的時刻決定,而不受任務(wù)計(jì)算部分程序執(zhí)行時間抖動的影響。

        飛控系統(tǒng)中設(shè)置一個周期性時鐘中斷,如系統(tǒng)實(shí)現(xiàn)代碼中第7行將中斷頻率設(shè)置為每秒180次。該中斷只用于中斷代碼中while循環(huán)中的4個任務(wù)。每次中斷處理,系統(tǒng)跳到INT_LABEL處開始處理。系統(tǒng)按照代碼順序依次查看是否需要執(zhí)行這4個任務(wù)的計(jì)算部分,如第12,20,28,38行的if語句。當(dāng)某任務(wù)設(shè)置的TTI()返回值為TRUE就執(zhí)行,如圖6中t1每次都執(zhí)行。當(dāng)某任務(wù)設(shè)置的TTI()返回值為FALSE,就跳過該任務(wù)不執(zhí)行,如圖6中點(diǎn)C處就跳過t2執(zhí)行t3。若沒有任務(wù)需要執(zhí)行,系統(tǒng)idle,如圖6中陰影右下角的idle部分,此時可以執(zhí)行其他軟實(shí)時或非實(shí)時任務(wù)。中斷發(fā)生時,若有當(dāng)前任務(wù)正在執(zhí)行,則該任務(wù)被中斷,保存該任務(wù)上下文,然后開始新一輪中斷處理,如圖6中點(diǎn)A處,中斷在t2執(zhí)行過程中發(fā)生,此時保存t2上下文,轉(zhuǎn)到INT_LABEL處從t1重新開始依次執(zhí)行。被中斷的任務(wù)在后續(xù)執(zhí)行中輪到該任務(wù)執(zhí)行時將繼續(xù)執(zhí)行,如圖6中點(diǎn)B處,t1執(zhí)行完后順次執(zhí)行t2時,加載t2之前被中斷的上下文繼續(xù)執(zhí)行。

        由于輸入輸出定時由ttiat/ttoat指令控制,與任務(wù)計(jì)算邏輯的執(zhí)行時間無關(guān),保證了控制系統(tǒng)的魯棒性。

        5 結(jié)束語

        針對未來復(fù)雜的混合關(guān)鍵系統(tǒng)需要研究新的緊致時間控制設(shè)計(jì)方法,采用構(gòu)件化軟件體系結(jié)構(gòu),基于時間觸發(fā)執(zhí)行機(jī)制和LET編程模型構(gòu)建時間關(guān)鍵系統(tǒng)是實(shí)現(xiàn)可預(yù)測性、時序隔離、可組合和可擴(kuò)展的有效方案,但性能低效和分析驗(yàn)證復(fù)雜是這一方案的瓶頸,需要實(shí)時計(jì)算機(jī)體系結(jié)構(gòu)創(chuàng)新。

        本文以馮·諾伊曼模型為基礎(chǔ),定義新的支持時間語義的實(shí)時計(jì)算機(jī)體系結(jié)構(gòu)模型,并以此為基礎(chǔ)實(shí)現(xiàn)緊致時間方法。文中提出了支持實(shí)時計(jì)算的RTM計(jì)算機(jī)模型和TTI指令集。RTM突破了馮·諾伊曼機(jī)模型在實(shí)時計(jì)算應(yīng)用中的理論局限,分離時域控制和值域控制的時序約束,明確了時間行為控制的基本抽象。

        目前本文正在對RISC-V指令集進(jìn)行TTI擴(kuò)展,實(shí)現(xiàn)一個實(shí)時處理器原型RPU(Realtime Processing Unit),以驗(yàn)證RTM的時序行為控制能力。RPU將采用硬件多線程技術(shù),以滿足安全關(guān)鍵應(yīng)用的高性能和時空隔離需求。支持時間行為約束表達(dá)的實(shí)時控制設(shè)施(原語與結(jié)構(gòu))、編程語言、中間語言以及時間安全性分析與驗(yàn)證理論和技術(shù)都是重要的課題。

        猜你喜歡
        指令集時序指令
        時序坐標(biāo)
        聽我指令:大催眠術(shù)
        基于Sentinel-2時序NDVI的麥冬識別研究
        3DNow指令集被Linux淘汰
        電腦報(2021年49期)2021-01-06 18:36:55
        ARINC661顯控指令快速驗(yàn)證方法
        LED照明產(chǎn)品歐盟ErP指令要求解讀
        電子測試(2018年18期)2018-11-14 02:30:34
        一種毫米波放大器時序直流電源的設(shè)計(jì)
        電子制作(2016年15期)2017-01-15 13:39:08
        實(shí)時微測量系統(tǒng)指令集及解析算法
        什么是AMD64
        基于覆蓋率驅(qū)動的高性能DSP指令集驗(yàn)證方法
        亚洲热线99精品视频| 国产高清一区二区三区视频| 国产av精品一区二区三区视频| 手机在线观看日韩不卡av| 老太脱裤子让老头玩xxxxx| 欧美日韩在线免费看| 亚洲国产精品福利片在线观看| 国产91成人精品亚洲精品| 成人午夜视频在线观看高清| 偷拍一区二区三区四区视频| 欧美video性欧美熟妇| AV无码最在线播放| 国产毛片一区二区日韩| 国产免费人成视频网站在线18| 亚洲人成77777在线播放网站 | 久久精品国产亚洲av天 | 亚洲精品久久久久一区二区| 天天弄天天模| 伊人亚洲综合网色AV另类| 天堂麻豆精品在线观看| 久久99精品久久久久久噜噜| 牛鞭伸入女人下身的真视频| 国产亚洲日本人在线观看| 成人免费播放视频影院| 亚洲av乱码一区二区三区按摩| 久久精品国产自清天天线| 午夜av内射一区二区三区红桃视 | 成人免费视频自偷自拍| 手机在线观看日韩不卡av| 国产sm调教视频在线观看| 日本一区二区三区激情视频| 草青青在线视频免费观看| 少妇粉嫩小泬喷水视频| 精品久久久久久久久久久aⅴ| 国产精品国产三级国av在线观看 | 亚洲人成无码区在线观看| 国产曰批免费视频播放免费s| 亚洲一区二区三区国产精品| 欧美成人精品第一区| 少妇厨房愉情理伦片免费| 欧美xxxxx精品|