前言
在2024年2月26日,ETAS推出了名為“Time-Triggered Scheduling (TTS)”的確定性調(diào)度解決方案。這項(xiàng)技術(shù)旨在改變汽車行業(yè)中的軟件工作負(fù)載管理方式。隨著汽車行業(yè)向軟件定義車輛(SDV)的轉(zhuǎn)變,軟件組件數(shù)量不斷增加,依賴關(guān)系變得復(fù)雜,底層硬件資源也多樣化。特別是在集成了系統(tǒng)級(jí)芯片(SoC)的電子控制單元(ECU)和高級(jí)駕駛輔助系統(tǒng)(AD/ADAS)的開發(fā)中。
Time-Triggered Scheduling (TTS)
Time-Triggered Scheduling (TTS) 中間件是為多核 SOC 嵌入式系統(tǒng)設(shè)計(jì)的,它提供了一種時(shí)間確定性的調(diào)度方法。這種調(diào)度方法能夠確保系統(tǒng)的行為和響應(yīng)時(shí)間是可預(yù)測的,這對于需要高度精確和實(shí)時(shí)響應(yīng)的復(fù)雜系統(tǒng)至關(guān)重要,通過預(yù)先定義任務(wù)的執(zhí)行計(jì)劃,TTS能夠有效地管理多核處理器中對共享資源的訪問,從而減少因資源競爭導(dǎo)致的延遲和不確定性,提升系統(tǒng)的實(shí)時(shí)性能和整體可靠性。這項(xiàng)技術(shù)的引入將有助于更好地滿足未來汽車系統(tǒng)對性能、可靠性和安全性的需求。
智能汽車軟件的現(xiàn)狀與挑戰(zhàn)
智能汽車中的應(yīng)用程序數(shù)量和同時(shí)運(yùn)行的任務(wù)數(shù)取決于車輛的具體軟件架構(gòu)和硬件能力。目前,智能汽車的軟件架構(gòu)正逐步向服務(wù)導(dǎo)向架構(gòu)(SOA)演進(jìn),這意味著軟件和算法成為車企競爭的核心要素。例如,一些高級(jí)的智能汽車平臺(tái)可能集成了多達(dá)數(shù)百個(gè)應(yīng)用程序,同時(shí)運(yùn)行多個(gè)任務(wù)以支持復(fù)雜的功能,如自動(dòng)駕駛、智能座艙管理、娛樂系統(tǒng)等。
1.1什么是確定性調(diào)度?
確定性調(diào)度是指在操作系統(tǒng)中,任務(wù)或任務(wù)鏈按照預(yù)定的時(shí)間和順序執(zhí)行,以確保系統(tǒng)行為的可預(yù)測性。
雖然Linux系統(tǒng)本身不是一個(gè)實(shí)時(shí)操作系統(tǒng),但它可以通過實(shí)時(shí)調(diào)度策略來增強(qiáng)任務(wù)的確定性執(zhí)行。這意味著,即使在非實(shí)時(shí)系統(tǒng)中,也可以通過特定的調(diào)度策略來提高系統(tǒng)對任務(wù)執(zhí)行時(shí)間的控制。
實(shí)時(shí)系統(tǒng)與非實(shí)時(shí)系統(tǒng)的主要區(qū)別在于,實(shí)時(shí)系統(tǒng)能夠提供更強(qiáng)的時(shí)間保證和更高的確定性。
時(shí)間的確定性:
在嵌入式系統(tǒng)中,時(shí)間的確定性是指系統(tǒng)能夠保證在規(guī)定的時(shí)間內(nèi)完成特定的任務(wù)。這是實(shí)時(shí)操作系統(tǒng)(RTOS)的一個(gè)重要特性,它可以分為硬實(shí)時(shí)和軟實(shí)時(shí)兩種類型。
硬實(shí)時(shí)系統(tǒng):
硬實(shí)時(shí)系統(tǒng)要求在嚴(yán)格的時(shí)間限制內(nèi)必須完成操作,任何超時(shí)都是不允許的。這種類型的系統(tǒng)通常用于關(guān)鍵任務(wù),如飛行控制系統(tǒng)或醫(yī)療設(shè)備,其中任何延遲都可能導(dǎo)致嚴(yán)重后果。
軟實(shí)時(shí)系統(tǒng):
相比之下,軟實(shí)時(shí)系統(tǒng)對完成任務(wù)的時(shí)間要求較為寬松,允許一定程度的延遲。這類系統(tǒng)通常用于多媒體應(yīng)用等領(lǐng)域,其中一些小的延遲不會(huì)導(dǎo)致災(zāi)難性的后果。
基于時(shí)間的確定性調(diào)度:
軟實(shí)時(shí)系統(tǒng)可能無法提供同樣的時(shí)間保證,但通過實(shí)現(xiàn)實(shí)時(shí)調(diào)度策略,可以在一定程度上提高確定性調(diào)度的吞吐量。換句話說,確定性調(diào)度并不會(huì)將Linux轉(zhuǎn)變?yōu)閷?shí)時(shí)系統(tǒng),但通過實(shí)時(shí)系統(tǒng)提供的調(diào)度機(jī)制可以提高Linux中任務(wù)執(zhí)行的時(shí)間確定性,從而在特定應(yīng)用中提升系統(tǒng)的整體性能。
1.2確定性調(diào)度的重要性和面臨的挑戰(zhàn)
確定性調(diào)度是系統(tǒng)設(shè)計(jì)中的一種關(guān)鍵技術(shù),它通過精確控制任務(wù)執(zhí)行的時(shí)間和順序,來確保系統(tǒng)的可預(yù)測性和穩(wěn)定性。汽車行業(yè)面臨著一系列前所未有的挑戰(zhàn),這些挑戰(zhàn)包括:
任務(wù)執(zhí)行的可預(yù)測性:確定性調(diào)度確保系統(tǒng)中的任務(wù)能夠按照預(yù)定的時(shí)間和順序執(zhí)行,這對于實(shí)時(shí)系統(tǒng)至關(guān)重要,因?yàn)樗鼈兺ǔP枰趪?yán)格的時(shí)間限制內(nèi)響應(yīng)外部事件。
系統(tǒng)穩(wěn)定性:通過確保任務(wù)按照既定的計(jì)劃執(zhí)行,確定性調(diào)度有助于維持系統(tǒng)的穩(wěn)定性,尤其是在軟件迭代和集成過程中,這有助于減少因任務(wù)沖突或資源爭用導(dǎo)致的不穩(wěn)定性。
周期性任務(wù)的管理:在AD/ADAS系統(tǒng)中,如傳感器數(shù)據(jù)采集等周期性任務(wù)需要準(zhǔn)確而靈活地執(zhí)行,確定性調(diào)度可以協(xié)調(diào)這些周期性任務(wù),確保它們按時(shí)完成。
計(jì)算結(jié)果的時(shí)效性:例如,基于融合后數(shù)據(jù)的路徑規(guī)劃需要在特定時(shí)間內(nèi)完成,確定性調(diào)度可以保證這些計(jì)算任務(wù)及時(shí)執(zhí)行,以滿足系統(tǒng)對時(shí)間的嚴(yán)格要求。
偶發(fā)任務(wù)的處理:確定性調(diào)度允許系統(tǒng)在不影響核心任務(wù)的情況下,及時(shí)處理如異常情況等偶發(fā)任務(wù)。
任務(wù)執(zhí)行順序:在多團(tuán)隊(duì)開發(fā)環(huán)境中,不同團(tuán)隊(duì)開發(fā)的算法任務(wù)可能存在依賴關(guān)系,確定性調(diào)度有助于協(xié)調(diào)這些任務(wù)的執(zhí)行順序,降低同步和協(xié)調(diào)的復(fù)雜性。
算法復(fù)雜度:數(shù)據(jù)采集、融合、規(guī)控等算法不僅復(fù)雜,而且更新迭代速度快,通常涉及多個(gè)開發(fā)團(tuán)隊(duì)。
性能監(jiān)控:確定性調(diào)度提供了一種方案來監(jiān)控核心任務(wù)的執(zhí)行情況和測量任務(wù)的性能,這對于優(yōu)化系統(tǒng)性能和確保質(zhì)量標(biāo)準(zhǔn)至關(guān)重要。
在信息娛樂系統(tǒng)(IVI)或車身控制系統(tǒng)中,確定性調(diào)度同樣重要,因?yàn)樗鼌f(xié)調(diào)了如數(shù)字信號(hào)處理器(DSP)和SoC之間的數(shù)據(jù)處理任務(wù),確保數(shù)據(jù)的準(zhǔn)確傳輸和處理。
基于SoC的ECU開發(fā)要求開發(fā)者在保證算法復(fù)雜度和迭代速度的同時(shí),還要管理好任務(wù)的穩(wěn)定性、時(shí)效性和執(zhí)行順序,確保系統(tǒng)整體的高性能和可靠性。這需要一套綜合的任務(wù)調(diào)度和性能監(jiān)控機(jī)制,以適應(yīng)自動(dòng)駕駛系統(tǒng)的高安全和實(shí)時(shí)性要求。
1.3ETASTTS確定性調(diào)度如何解決這些問題
確定性調(diào)度的范圍涵蓋了多個(gè)關(guān)鍵領(lǐng)域,以確保復(fù)雜系統(tǒng)中任務(wù)的準(zhǔn)時(shí)執(zhí)行和資源的有效管理。以下是清晰的描述:
1.基于時(shí)間觸發(fā)任務(wù)調(diào)度:
周期任務(wù)和浮動(dòng)任務(wù)激活窗口:TTS確保周期性任務(wù)在預(yù)定的時(shí)間窗口內(nèi)激活,同時(shí)為非周期性任務(wù)提供靈活的激活機(jī)制。
CPU資源(時(shí)間片)管理:通過分配固定的時(shí)間片,TTS允許任務(wù)在指定的CPU資源上運(yùn)行,優(yōu)化處理器的使用。
執(zhí)行時(shí)間監(jiān)控:TTS監(jiān)控任務(wù)的執(zhí)行時(shí)間,確保它們不會(huì)超出預(yù)定的時(shí)間限制。
性能測量:開發(fā)者可以選擇性地測量任務(wù)的性能,以評估系統(tǒng)的效率和響應(yīng)速度。
2.基于數(shù)據(jù)觸發(fā)任務(wù)、任務(wù)鏈調(diào)度:
任務(wù)依賴鏈和協(xié)調(diào)同步:TTS管理任務(wù)之間的依賴關(guān)系,并確保它們按照正確的順序同步執(zhí)行。
CPU資源和數(shù)據(jù)內(nèi)存共享:TTS允許任務(wù)共享CPU和內(nèi)存資源,同時(shí)管理這些資源的訪問,防止沖突。
依賴鏈時(shí)間監(jiān)控:TTS監(jiān)控依賴鏈中各任務(wù)的時(shí)間,確保整個(gè)鏈的流暢運(yùn)行。
3.基于事件觸發(fā)任務(wù)、任務(wù)鏈調(diào)度:
零星事件處理:TTS支持對非周期性事件的及時(shí)響應(yīng),如傳感器輸入或用戶交互。
事件處理任務(wù)鏈:任務(wù)鏈中的任務(wù)按照事件觸發(fā)進(jìn)行調(diào)度,確保系統(tǒng)的反應(yīng)能力。
CPU最佳利用:通過精確的時(shí)間控制,減少系統(tǒng)中的不確定性,確保數(shù)據(jù)傳輸和處理的及時(shí)性。
任務(wù)、任務(wù)鏈deadline:TTS管理任務(wù)的截止時(shí)間,確保任務(wù)按照既定的性能標(biāo)準(zhǔn)運(yùn)行。
4.調(diào)度表切換:
多模系統(tǒng):TTS支持在不同模式下切換調(diào)度表,適應(yīng)多變的系統(tǒng)需求,提高了中間件的靈活性。
5.可視化調(diào)度工具:
系統(tǒng)資源預(yù)測:TTS提供工具,如可視化調(diào)度工具,幫助開發(fā)者更好地理解和管理任務(wù)調(diào)度。
6.日志查看過濾工具:
DltViewer:集成了DltViewer,這是一個(gè)用于遠(yuǎn)程日志查看和分析的工具,增強(qiáng)了用戶的日志管理能力。
ETAS TTS確定性調(diào)度通過這些功能的集成,成為了一個(gè)高度可配置、可監(jiān)控和性能優(yōu)化的中間件解決方案,為軟件定義車輛的開發(fā)和運(yùn)行提供了強(qiáng)有力的支持。
ETAS確定性調(diào)度中間件—TTS
Time-Triggered Scheduling (TTS)中間件,專為復(fù)雜的多核心系統(tǒng)設(shè)計(jì),以確保智能駕駛系統(tǒng)的任務(wù)能夠得到有效的全局編排和調(diào)度。這種中間件通過時(shí)間觸發(fā)、數(shù)據(jù)觸發(fā)和事件觸發(fā)的機(jī)制,為智能駕駛系統(tǒng)提供了一個(gè)可靠和確定性的運(yùn)行環(huán)境,為關(guān)鍵任務(wù)鏈提供了確定性的計(jì)算、通信和端到端的時(shí)延保證。它支持多種場景和任務(wù)組合,能夠?yàn)槎嗪薙oC的系統(tǒng)提供整體規(guī)劃,確保任務(wù)的確定性執(zhí)行。這對于確保系統(tǒng)的穩(wěn)定性和性能至關(guān)重要,特別是在需要高度安全和實(shí)時(shí)響應(yīng)的智能駕駛應(yīng)用中。
Time-Triggered Scheduling (TTS) 確定性調(diào)度系統(tǒng)是為高度復(fù)雜和實(shí)時(shí)性要求嚴(yán)格的環(huán)境設(shè)計(jì)的,它通過一系列精細(xì)的機(jī)制確保任務(wù)的及時(shí)執(zhí)行和資源的高效管理。
以下是TTS系統(tǒng)關(guān)鍵特性的概述:
任務(wù)調(diào)度:TTS為周期性和非周期性任務(wù)提供了精確的激活窗口,確保它們在適當(dāng)?shù)臅r(shí)間內(nèi)啟動(dòng)。
資源分配:通過固定時(shí)間片的分配,TTS優(yōu)化了CPU資源的使用,提高了處理器效率。
執(zhí)行監(jiān)控:TTS嚴(yán)格監(jiān)控任務(wù)執(zhí)行時(shí)間,防止任何任務(wù)超出其預(yù)定的時(shí)間限制。
性能評估:開發(fā)者可以測量任務(wù)性能,以評估和優(yōu)化系統(tǒng)效率。
依賴管理:TTS協(xié)調(diào)任務(wù)之間的依賴關(guān)系,確保按正確順序同步執(zhí)行。
資源共享:TTS管理CPU和內(nèi)存資源的共享,任務(wù)時(shí)間片共享,避免資源訪問沖突。
多模式支持:TTS適應(yīng)不同系統(tǒng)模式下的調(diào)度需求,增加了系統(tǒng)的靈活性。
預(yù)測與記錄:TTS預(yù)測資源需求并進(jìn)行日志記錄,便于后續(xù)的問題追蹤和性能分析。
調(diào)度靈活性:TTS支持調(diào)度表的動(dòng)態(tài)切換任務(wù)調(diào)度,提高了調(diào)度的靈活性。
可視化工具:TTS提供可視化調(diào)度工具和DltViewer,幫助開發(fā)者更好地理解和管理任務(wù)調(diào)度。
ETAS TTS中間件是一個(gè)多功能的實(shí)時(shí)任務(wù)調(diào)度系統(tǒng),它通過時(shí)間觸發(fā)、數(shù)據(jù)觸發(fā)和事件觸發(fā)機(jī)制,實(shí)現(xiàn)了任務(wù)的精確調(diào)度和性能監(jiān)控。這個(gè)系統(tǒng)不僅提高了任務(wù)執(zhí)行的效率和準(zhǔn)確性,還通過其靈活的調(diào)度策略,確保了系統(tǒng)的高度可靠性和韌性。
通常情況下,TTS中不管是基于時(shí)間觸發(fā)的任務(wù)調(diào)度還是基于數(shù)據(jù)觸發(fā)的任務(wù)和任務(wù)鏈調(diào)度,面向的任務(wù)都是周期性任務(wù)。
在運(yùn)行時(shí)處理任務(wù)動(dòng)態(tài)性的挑戰(zhàn)以及調(diào)度的關(guān)鍵點(diǎn),如激活窗口設(shè)計(jì)和支持多模式系統(tǒng),通常可以可以概括為時(shí)間觸發(fā)和非時(shí)間觸發(fā)。
非時(shí)間觸發(fā)(如固定優(yōu)先級(jí)或最早截止日期優(yōu)先):可能會(huì)導(dǎo)致所有其他任務(wù)的執(zhí)行發(fā)生變化,從而改變整個(gè)系統(tǒng)的狀態(tài)。這種調(diào)度方式在處理突發(fā)事件時(shí)具有靈活性,但也可能引入不確定性,因?yàn)槿蝿?wù)的執(zhí)行受到其他任務(wù)和系統(tǒng)狀態(tài)的影響。
時(shí)間觸發(fā): 保持所有其他任務(wù)的執(zhí)行不變,不會(huì)引起系統(tǒng)狀態(tài)的變化。這種調(diào)度策略按照預(yù)定的時(shí)間表執(zhí)行任務(wù),提供了更高的確定性和可預(yù)測性。它適用于那些需要嚴(yán)格時(shí)間控制的應(yīng)用,如工業(yè)控制系統(tǒng)或安全關(guān)鍵的應(yīng)用。時(shí)間觸發(fā)調(diào)度通過固定的激活窗口和對多模式系統(tǒng)的支持,為系統(tǒng)提供了穩(wěn)定和可靠的任務(wù)執(zhí)行環(huán)境。
2.1基于時(shí)間觸發(fā)的任務(wù)調(diào)度
TTS的時(shí)間觸發(fā)任務(wù)調(diào)度系統(tǒng),它通過浮動(dòng)窗口激活周期性任務(wù),并為這些任務(wù)分配時(shí)間片,確保它們在指定的時(shí)間內(nèi)得到執(zhí)行。這種調(diào)度方式采用動(dòng)態(tài)優(yōu)先級(jí)和FIFO(先進(jìn)先出)策略,以及對任務(wù)執(zhí)行的嚴(yán)格監(jiān)控,確保關(guān)鍵任務(wù)在截止時(shí)間前被激活并釋放CPU資源給其他任務(wù)。此外,系統(tǒng)支持多模式操作,允許在不同的核心上調(diào)度同一進(jìn)程(SWC)的Runnable,以及通過線程池為Runnable分配線程,并提供性能測量接口。
基于時(shí)間觸發(fā)的任務(wù)調(diào)度可以實(shí)現(xiàn)以下目標(biāo):
1.周期任務(wù)動(dòng)態(tài)激活窗口:通過精確的激活時(shí)間窗口,確保系統(tǒng)中的周期性任務(wù)既能按照預(yù)定的時(shí)間表執(zhí)行又有一定的靈活性,從而維護(hù)系統(tǒng)的穩(wěn)定性。
2.核心任務(wù)資源保障:即使增加新的軟件模塊,也不會(huì)影響已有的核心功能模塊的運(yùn)行狀態(tài)。這意味著核心任務(wù)的資源分配和執(zhí)行不會(huì)受到其他任務(wù)的干擾。
3.任務(wù)執(zhí)行監(jiān)控:對任務(wù)的執(zhí)行進(jìn)行監(jiān)控,確保任務(wù)按照預(yù)期執(zhí)行。如果任務(wù)執(zhí)行超出預(yù)期,錯(cuò)誤處理模塊將及時(shí)上報(bào)異常。
4.性能測量通道:為開發(fā)者提供任務(wù)性能測量的通道,以便評估任務(wù)的執(zhí)行效率和性能。
5.快速集成:這種調(diào)度策略可以快速集成到已開發(fā)的軟件系統(tǒng)中,為系統(tǒng)提供更高的可靠性和實(shí)時(shí)性。
TTS(Time-Triggered Scheduling)的核心功能之一是為POSIX系統(tǒng)提供穩(wěn)定和可預(yù)測的任務(wù)執(zhí)行環(huán)境,確保任務(wù)的確定性執(zhí)行,同時(shí)提供了靈活性和可擴(kuò)展性,以適應(yīng)不同的系統(tǒng)需求和運(yùn)行模式。以下是其關(guān)鍵特性:
浮動(dòng)窗口激活周期任務(wù):通過動(dòng)態(tài)調(diào)整任務(wù)的激活窗口,TTS確保即使在系統(tǒng)負(fù)載變化的情況下,周期性任務(wù)也能夠穩(wěn)定執(zhí)行,增強(qiáng)了系統(tǒng)的韌性。
任務(wù)分配時(shí)間片:每個(gè)任務(wù)都被分配了一個(gè)時(shí)間片,確保它在指定的時(shí)間內(nèi)有足夠的CPU資源來執(zhí)行,從而保證任務(wù)的運(yùn)行時(shí)資源。
動(dòng)態(tài)優(yōu)先級(jí):TTS使用動(dòng)態(tài)優(yōu)先級(jí)機(jī)制(例如Linux中的FIFO調(diào)度)來保證任務(wù)在其時(shí)間片內(nèi)得到執(zhí)行。
任務(wù)執(zhí)行監(jiān)控:系統(tǒng)監(jiān)控任務(wù)的執(zhí)行情況,確保任務(wù)在最晚開始時(shí)間之前激活,并在截止時(shí)間之前釋放CPU資源,以供其他任務(wù)使用。
調(diào)度單位:TTS將SWC(Process)中的Runnable(Thread)作為調(diào)度單位,這些Runnable可以在不同的核心(Core)上進(jìn)行調(diào)度。
線程池:通過線程池為Runnable分配線程,并提供性能測量接口,使開發(fā)者能夠監(jiān)控和評估Runnable的性能。
調(diào)度表切換:TTS支持多模式系統(tǒng),允許根據(jù)不同的運(yùn)行模式切換調(diào)度表,這些調(diào)度表包含了基于時(shí)間觸發(fā)、事件觸發(fā)和數(shù)據(jù)觸發(fā)的任務(wù)。
2.2基于數(shù)據(jù)觸發(fā)的任務(wù)鏈調(diào)度
數(shù)據(jù)觸發(fā)任務(wù)鏈調(diào)度是TTS的核心功能之一,它支持基于圖形依賴關(guān)系的任務(wù)鏈。在這個(gè)系統(tǒng)中,每個(gè)Runnable都被分配了時(shí)間片,并且它們的運(yùn)行狀態(tài)不僅取決于自身的時(shí)間觸發(fā)屬性,還受到任務(wù)鏈中其他任務(wù)的影響。所有Runnable共享時(shí)間片,形成一個(gè)有向無環(huán)圖。系統(tǒng)內(nèi)部提供共享內(nèi)容機(jī)制,以及接口來保證數(shù)據(jù)在有依賴關(guān)系的Runnable之間傳遞。此外,系統(tǒng)還監(jiān)控圖的執(zhí)行時(shí)間和性能。
多任務(wù)編排示運(yùn)行意圖
數(shù)據(jù)觸發(fā)任務(wù)鏈調(diào)度是TTS提供的一種調(diào)度策略,它支持基于圖狀依賴關(guān)系的任務(wù)鏈。這種策略中,每個(gè)可運(yùn)行單元(Runnable)都是周期性任務(wù),并且被分配了時(shí)間片,以確保任務(wù)鏈中的任務(wù)能夠有效地運(yùn)行并訪問資源。在這個(gè)系統(tǒng)中:
每個(gè)節(jié)點(diǎn)都具有時(shí)間觸發(fā)屬性,其運(yùn)行狀態(tài)還取決于任務(wù)圖中其他任務(wù)的運(yùn)行狀態(tài)。
所有Runnable和組內(nèi)的Runnable共享時(shí)間片,以優(yōu)化資源利用。
為了避免循環(huán)依賴和潛在的死鎖,Runnable組成的圖必須是有向無環(huán)圖(DAG)。
在同一SoC內(nèi)部,提供了共享內(nèi)容機(jī)制,通過接口保證有依賴關(guān)系的Runnable之間的數(shù)據(jù)傳遞。通過集成了ETAS RTA-VRTE PIPC(共享內(nèi)存組件,冰羚的商業(yè)版)來保證Runnable之間的數(shù)據(jù)高效、安全傳輸。
圖中的Runnable(Thread)可以屬于不同的軟件組件SWC(Process)以及不同的處理器核心。
系統(tǒng)提供了圖的執(zhí)行時(shí)間監(jiān)控和性能測量功能,以確保調(diào)度的效率和效果。
此調(diào)度策略與基于事件觸發(fā)的任務(wù)鏈調(diào)度相結(jié)合,形成跨SoC的綜合調(diào)度圖。
這種調(diào)度方法為開發(fā)者提供了一個(gè)清晰的框架,用于管理和優(yōu)化在復(fù)雜的多核環(huán)境中的任務(wù)執(zhí)行。
2.3基于事件觸發(fā)任務(wù)、任務(wù)鏈調(diào)度
事件觸發(fā)任務(wù)調(diào)度則關(guān)注于處理偶發(fā)事件,無論是單個(gè)任務(wù)還是任務(wù)鏈。它的目標(biāo)是確保這些任務(wù)在規(guī)定時(shí)間內(nèi)完成,而不是簡單地提高響應(yīng)速度。這個(gè)系統(tǒng)也構(gòu)建了一個(gè)有向無環(huán)圖,其中的Runnable可以屬于不同的SWC和核心。它還提供了任務(wù)鏈中有依賴關(guān)系的Task之間的數(shù)據(jù)緩存機(jī)制和數(shù)據(jù)同步機(jī)制。
它的核心功能包括:
支持零星事件處理:可以是單個(gè)任務(wù)或一系列任務(wù)鏈,以靈活應(yīng)對不同的事件處理需求。
確保任務(wù)按時(shí)完成:重點(diǎn)是在規(guī)定時(shí)間內(nèi)完成任務(wù),而不僅僅是快速響應(yīng)。
有向無環(huán)圖結(jié)構(gòu):Runnable組成的任務(wù)圖必須避免循環(huán)依賴,確保任務(wù)的順利執(zhí)行。
事件分類:零星事件可以被定義為用戶級(jí)或系統(tǒng)級(jí),以區(qū)分事件的來源和重要性。
動(dòng)態(tài)資源管理:CPU資源的動(dòng)態(tài)計(jì)算,確保處理零星事件的同時(shí),不會(huì)影響其他已有任務(wù)的執(zhí)行。
跨SWC和核心的任務(wù)分配:任務(wù)鏈中的Runnable可以分布在不同的軟件組件和處理器核心上。
監(jiān)控和性能測量:對處理事件的任務(wù)鏈進(jìn)行Deadline監(jiān)控和性能測量,以優(yōu)化調(diào)度效率。
數(shù)據(jù)緩存和同步:為有依賴關(guān)系的Task提供數(shù)據(jù)緩存和同步機(jī)制,確保數(shù)據(jù)的一致性。
這種調(diào)度策略為軟件定義車輛(SDV)中的事件驅(qū)動(dòng)任務(wù)提供了一個(gè)可靠和高效的框架,特別適用于需要精確時(shí)間管理的自動(dòng)駕駛和高級(jí)駕駛輔助系統(tǒng)。
2.31系統(tǒng)事件和用戶事件
在基于事件的調(diào)度系統(tǒng)中,當(dāng)事件被觸發(fā),系統(tǒng)的首要關(guān)注點(diǎn)是確定事件的處理時(shí)間。這涉及到從事件發(fā)生的那一刻起,評估系統(tǒng)上所有CPU核心的空閑時(shí)間,以確保是否有足夠的資源來處理該事件。
這種調(diào)度機(jī)制的關(guān)鍵特點(diǎn)是它能夠同時(shí)響應(yīng)事件并及時(shí)處理,同時(shí)保證不會(huì)干擾到其他周期性任務(wù)的調(diào)度。事件被分為兩類:
系統(tǒng)事件:這類事件一旦觸發(fā),會(huì)立即搶占其他任務(wù)的資源以開始執(zhí)行,因?yàn)樗鼈兺ǔ>哂懈叩膬?yōu)先級(jí)。
用戶事件:對于這類事件,系統(tǒng)會(huì)先計(jì)算所有CPU核心的空閑時(shí)間,以判斷是否有足夠的資源來處理事件。只有在資源不足以處理事件時(shí),才會(huì)考慮搶占其他任務(wù)的資源。
這些事件的處理通常是動(dòng)態(tài)的,它們只有在運(yùn)行時(shí)才會(huì)被分配到具體的CPU核心。這種動(dòng)態(tài)分配和資源管理確保了系統(tǒng)能夠靈活地響應(yīng)各種事件,同時(shí)維持其他任務(wù)的穩(wěn)定運(yùn)行。
2.4調(diào)度表切換
ETAS確定性調(diào)度系統(tǒng)能夠根據(jù)實(shí)時(shí)需求靈活切換工作模式。系統(tǒng)可以在緊急情況下迅速轉(zhuǎn)換到新模式,雖然這可能會(huì)帶來一定程度的不確定性和不可預(yù)測性。為了安全和可預(yù)測性,系統(tǒng)也可以在預(yù)定的時(shí)間點(diǎn),如任務(wù)周期的開始或結(jié)束時(shí),安全地切換到新模式,確保所有組件同步更新狀態(tài)。這種設(shè)計(jì)既滿足了即時(shí)響應(yīng)的需求,也保證了系統(tǒng)的穩(wěn)定運(yùn)行。
時(shí)間觸發(fā)調(diào)度系統(tǒng)的模式變更
時(shí)間觸發(fā)調(diào)度系統(tǒng)的模式變更,提供了更細(xì)粒度的靈活性和動(dòng)態(tài)行為:
?基本模式變更 - 一組基礎(chǔ)模式,例如停車、巡航控制、城市駕駛等。
?即時(shí)變更 - 新模式在觸發(fā)后盡可能快地發(fā)生。
o系統(tǒng)狀態(tài)可能是不確定的。
o缺乏所需的可預(yù)測性。
o例如,從巡航控制到駕駛員控制的緊急模式。
?延遲變更 - 在調(diào)度周期的結(jié)束或開始的預(yù)定義點(diǎn),確保所有節(jié)點(diǎn)切換到新模式。
o系統(tǒng)狀態(tài)是安全的。
o可預(yù)測性。
o例如,從駕駛模式切換到停車模式。
2.5ETAS確定性調(diào)度中間件TTS的其它功能
TTS中間件是一個(gè)多功能的軟件框架,專為軟件定義車輛而設(shè)計(jì)。它不僅提供了強(qiáng)大的確定性調(diào)度能力,還包含了一系列輔助功能,以支持車輛系統(tǒng)的高效開發(fā)和運(yùn)行。以下是TTS中間件的一些關(guān)鍵功能:
日志記錄:具備全面的日志記錄功能,允許用戶應(yīng)用層軟件記錄事件,便于追蹤和問題診斷。
DltViewer支持:集成了DltViewer,這是一個(gè)用于遠(yuǎn)程日志查看和分析的工具,增強(qiáng)了用戶的日志管理能力。
數(shù)據(jù)傳輸與共享:通過IceOryx支持,實(shí)現(xiàn)了任務(wù)鏈之間的高效數(shù)據(jù)共享,提升了數(shù)據(jù)處理的速度和可靠性。
多模式系統(tǒng)支持:能夠根據(jù)不同模式切換調(diào)度表,適應(yīng)多變的系統(tǒng)需求,提高了中間件的靈活性和適應(yīng)性。
AUTOSAR Adaptive集成:與ETAS AUTOSAR Adaptive(VRTE)平臺(tái)緊密集成,尤其是與PHM模塊的集成,使得任務(wù)執(zhí)行監(jiān)控結(jié)果能夠上報(bào)給PHM處理,從而增強(qiáng)系統(tǒng)的自我監(jiān)控能力。
配置和調(diào)度驗(yàn)證工具:提供了配置工具和調(diào)度驗(yàn)證工具,幫助用戶確保系統(tǒng)配置的準(zhǔn)確性和調(diào)度策略的有效性。
eBPF性能分析工具集成:集成了eBPF性能分析工具,這是一種先進(jìn)的性能分析技術(shù),幫助用戶優(yōu)化系統(tǒng)性能。
綜上所述,ETAS TTS中間件通過這些功能的集成,成為了一個(gè)高度可配置、可監(jiān)控和性能優(yōu)化的中間件解決方案,為軟件定義車輛的開發(fā)和運(yùn)行提供了強(qiáng)有力的支持。
2.5.1日志記錄
Log模塊中的Stamp后臺(tái)進(jìn)程是一個(gè)關(guān)鍵組件,它在用戶發(fā)出指令時(shí)被喚醒。這個(gè)進(jìn)程負(fù)責(zé)捕捉和記錄線程的調(diào)度狀態(tài)、狀態(tài)轉(zhuǎn)換觸發(fā)的具體時(shí)刻等重要信息,并將這些數(shù)據(jù)整理成日志文件。
Log模塊內(nèi)部流程圖
用戶隨后可以通過用戶界面查看這些詳細(xì)的日志信息,以便進(jìn)行系統(tǒng)監(jiān)控和性能調(diào)優(yōu)。
Runnable實(shí)際運(yùn)行狀態(tài)圖
TTS的日志模塊與ETAS AUTOSAR Adaptive(RTA-VRTE)平臺(tái)可以無縫集成,特別是與PHM模塊的交互。這樣,任務(wù)執(zhí)行監(jiān)控的結(jié)果可以傳遞給PHM處理,從而增強(qiáng)了系統(tǒng)的自我監(jiān)控能力。
2.5.2TTS配置工具以及調(diào)度分析工具
TTS中間件的配置工具和調(diào)度分析工具是為高效和精確的任務(wù)管理而設(shè)計(jì)的。
2.5.2.1TTS UI配置工具
TTS確定性調(diào)度中間件配備了一個(gè)定制的UI配置工具,該工具具有跨平臺(tái)的靈活性,如Ubuntu和Windows操作系統(tǒng)上獨(dú)立運(yùn)行,或者作為Eclipse插件集成到現(xiàn)有的客戶現(xiàn)有的工具鏈中,提供無縫的用戶體驗(yàn)和增強(qiáng)的工作流程效率。這個(gè)工具提供了一個(gè)直觀的界面,使用戶能夠輕松配置和管理調(diào)度任務(wù)。
如下圖所示:在軟件組件SWC(Process)中,您可以設(shè)置進(jìn)程的可執(zhí)行文件信息,確保正確的程序被調(diào)用。對于Runnable(rnbl或Thread),則是配置線程或任務(wù)的細(xì)節(jié),以便它們能夠按預(yù)期執(zhí)行。而在任務(wù)鏈(TaskChain,簡稱grp1)中,通過配置任務(wù)的序列和關(guān)系,這樣它們就能以正確的順序和方式協(xié)同工作。這些配置步驟是確保系統(tǒng)中各個(gè)部分能夠高效、準(zhǔn)確地協(xié)同運(yùn)行的關(guān)鍵。
TTS UI配置主界面
TTS UI配置——Arcs1(任務(wù)鏈的一段)
TTS UI配置——任務(wù)鏈
TTS中間件允許用戶利用圖形化界面,基于他們所配置的文件,直觀地監(jiān)控整個(gè)系統(tǒng)中Runnable的預(yù)期運(yùn)行狀況。這個(gè)功能不僅可以幫助用戶提前識(shí)別出任何不合理的任務(wù)規(guī)劃,還能通過特定命令激活確定性調(diào)度模塊來跟蹤和記錄Runnable的實(shí)際運(yùn)行數(shù)據(jù),如啟動(dòng)時(shí)間、運(yùn)行時(shí)長以及被中斷的時(shí)間等。這些信息隨后會(huì)在UI界面中展示,使用戶能夠?qū)崟r(shí)查看并分析任務(wù)的實(shí)際運(yùn)行情況,從而優(yōu)化系統(tǒng)性能和調(diào)度策略。
2.5.2.2調(diào)度狀態(tài)圖形化界面
通過這個(gè)功能,用戶可以利用現(xiàn)有的配置文件,以圖形化的方式查看整個(gè)系統(tǒng)中Runnable的預(yù)期運(yùn)行狀態(tài)。這不僅有助于提前識(shí)別和解決任務(wù)規(guī)劃中可能出現(xiàn)的問題,還允許用戶通過特定命令記錄和監(jiān)控Runnable的實(shí)際運(yùn)行狀態(tài),包括啟動(dòng)時(shí)間、運(yùn)行時(shí)間和被強(qiáng)占時(shí)間等關(guān)鍵信息。
系統(tǒng)被調(diào)度的Runnable的預(yù)期運(yùn)行狀態(tài)圖
支持通過勾選或鼠標(biāo)選中Runnable的方式,選擇性地顯示想要觀察的Runnable的執(zhí)行情況。
2.5.2.3運(yùn)行狀態(tài)監(jiān)控和分析
TTS工具也提供了一個(gè)圖形化界面,用于監(jiān)控Runnable的運(yùn)行狀態(tài)。用戶可以通過命令激活確定性調(diào)度模塊,記錄所需的運(yùn)行狀態(tài)信息,并通過UI界面進(jìn)行查看,從而確保任務(wù)的實(shí)際運(yùn)行與預(yù)期一致。
任務(wù)鏈
例如:通過勾選Runnable A、B、C、D來顯示任務(wù)鏈的執(zhí)行情況
TTS確定性調(diào)度中間件多任務(wù)編排示意圖
用戶可以使用命令來啟用確定性調(diào)度模塊,以記錄需要記錄的Runnable的運(yùn)行狀態(tài)。這些狀態(tài)包括啟動(dòng)時(shí)間、運(yùn)行時(shí)間、被強(qiáng)占時(shí)間等等。通過UI界面,用戶可以查看被記錄的Runnable的實(shí)際運(yùn)行狀態(tài),從而監(jiān)控Task的執(zhí)行情況。這樣,用戶可以更好地了解系統(tǒng)中各個(gè)任務(wù)的運(yùn)行情況。
Runnable實(shí)際運(yùn)行狀態(tài)圖
TTS中間件的配置工具和調(diào)度分析工具提供了一個(gè)全面的解決方案,用于優(yōu)化任務(wù)的配置、監(jiān)控和分析,確保系統(tǒng)運(yùn)行的高效性和準(zhǔn)確性。這些工具的集成和使用,顯著提高了任務(wù)管理的可視化和用戶友好性,同時(shí)也增強(qiáng)了系統(tǒng)的可靠性和性能。
2.6 ETAS TTS中間件確定性調(diào)度的性能
TTS中間件利用其高精度的確定性調(diào)度能力,顯著提升了CPU資源的使用效率。通過這種優(yōu)化,任務(wù)能夠以0.01毫秒的高定時(shí)器精度高效執(zhí)行。在測試環(huán)境中,硬件為S32G274RDB2,操作系統(tǒng)為Linux 5.4.69,設(shè)置了不同周期的任務(wù)鏈和時(shí)間觸發(fā)任務(wù)。這些任務(wù)鏈和時(shí)間觸發(fā)任務(wù)的精確調(diào)度,確保了任務(wù)的及時(shí)完成,并最大化了CPU資源的利用。
ETAS的TTS解決方案正在與客戶Orin的Drive OS進(jìn)行集成和測試部署。未來,該解決方案將根據(jù)客戶項(xiàng)目的具體需求,擴(kuò)展對更多硬件環(huán)境的支持。此外,該解決方案還提供了硬件定時(shí)器支持,使得任務(wù)調(diào)度可以更加精確,從而有效提升系統(tǒng)性能。
-
SoC芯片
+關(guān)注
關(guān)注
1文章
610瀏覽量
34905 -
多核處理器
+關(guān)注
關(guān)注
0文章
109瀏覽量
19908 -
TTS
+關(guān)注
關(guān)注
0文章
41瀏覽量
10787 -
ADAS系統(tǒng)
+關(guān)注
關(guān)注
4文章
226瀏覽量
25691
原文標(biāo)題:ETAS推出TTS時(shí)間確定性調(diào)度中間件
文章出處:【微信號(hào):ETASChina,微信公眾號(hào):ETAS易特馳】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論