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