“調度”是指按一定的順序安排任務。根據Mindtools的隨意定義,它考慮了日常生活中的日程安排,日程安排是計劃您的活動的藝術,以便您可以在可用的時間內實現您的目標和優先事項。換句話說,調度通過優先處理那些最緊急的任務來確保有足夠的時間來處理 最重要的任務。翻譯到硬實時系統的世界:調度的關鍵功能是保證安全關鍵任務的執行。重要的不僅是任務的實際執行,而且要準確及時地執行。
我們已經在之前的文章“面向未來的實時汽車安全系統”中討論了硬實時系統及其必須滿足的要求。為了介紹這個概念,Kopetz 教授在他的經典著作Real-Time Systems中對調度問題進行了如下描述:滿足他們指定的期限。每項任務都需要計算和數據資源才能繼續進行。調度問題與分配這些資源以滿足所有時間要求有關。”
讓我們將其置于我們行業的背景下,汽車電子電氣系統正在朝著整合傳統分離領域的方向發展。隨著汽車功能在通用硬件上的聚合,系統準確時間行為的重要性正在上升。對于自動駕駛 (AD) 系統來說尤其如此,它結合了復雜的功能和嚴格的安全要求。它們的軟件功能必須與其他軟件驅動的汽車功能共存并共享資源,同時不犧牲其實時安全要求,從而提高汽車操作系統的標準。此外,AD 不僅對單個功能提出了嚴格的實時要求,而且還對傳感器、控制軟件和執行器網絡之間的優先級依賴關系提出了額外的要求。TTTech 實驗室科學家 Silviu S.混合臨界系統,在安全臨界合規性、時間和空間隔離方面需要更高的標準,導致在運行時需要新的調度功能,在設計時需要新的配置工具。
隨著自動、互聯、電動和共享 (ACES) 移動性的出現,這些挑戰隨著汽車中越來越多的數字功能而增加。為了充分響應,現代汽車不僅需要額外的計算性能來運行日益復雜的軟件,還需要能夠真正保證個人和集體安全水平以及所有汽車功能優先級的機制。這就是為什么安全的實時調度是汽車未來的核心。
什么是實時調度?
分布式實時計算機系統在其節點上同時執行多個系統功能。為了確保整個分布式系統中功能的一致執行,所有傳入事件必須由它們各自的節點按照它們發生的時間順序進行處理。
因此,分布式系統的所有互連組件必須相互之間適當地同步,以確保整個系統的可靠行為。對于實時分布式系統,還需要通過與國際原子時間 (TAI) 對齊,使所有節點的本地時鐘與遵循物理世界指標的參考時鐘正確同步。

實時分布式系統的節點必須在相同的全局時間下運行
為了定義“正確的”同步,我們可以想象每個節點都以其本地時鐘滴答,我們將這些滴答稱為微滴答。在可接受的容差范圍內與全局時間刻度對齊的微刻度子集將被稱為全局時間的宏刻度(或簡稱為 tic)。因此,當這些宏觀反映從正在考慮的節點集合的同步本地物理時鐘中正確選擇的微觀時,將全局時間概念引入系統。
除了跨節點同步執行任務之外,節點之間的協調通信對于整個系統的成功運行也是必不可少的。每個任務都由多個單獨的操作或步驟組成。在每個任務執行過程中,一個順序程序讀取輸入數據和節點內部狀態,確定并傳遞輸出結果,更新節點內部狀態。
所有這些都可以用時間來衡量:任務的實際持續時間是任務開始和結束之間的時間間隔。在所有可能的輸入數據和執行場景下,任務執行的最大可能持續時間稱為最壞情況執行時間(WCET)。在現實生活場景中,WCET 設置得越接近運行時,調度的使用效率就越高。抖動是 WCET 與任務的最小持續時間(任務執行的最小時間間隔)之間的差異。

在硬實時系統中,所有關鍵任務都必須按時完成
在硬實時計算機系統中,安全關鍵任務必須在嚴格的時序約束下執行。這些任務必須滿足所有期限,并在非常緊迫的時間間隔內執行,以實現“全局”實時端到端保證。調度是將計算機系統的資源分配給任務以確保其準確及時執行的方法。在此基礎上,實時調度是一種方法,通過這種方法在系統的節點上分配任務,使得任何節點上的任何任務的最大允許抖動值都不會超過,從而確保可預測的、因此整個系統的安全行為。
實現自動駕駛汽車的硬實時調度
實時調度可以通過不同的方式來實現。讓我們考慮如下所示的可用選項:

實時調度分類
從上面開始,動態和靜態硬實時調度的主要區別在于動態調度是在運行時在線執行的,而靜態調度是在運行時之前離線執行的。動態調度器很靈活,可以“隨時隨地”做出調度決策。這意味著它們適應不斷發展的任務流,從而從當前的就緒任務集中選擇要調度的任務。在運行時查找此類計劃的開銷可能很大。動態調度器在運行時分配任務開始時間,而靜態調度器在設計時就已經找到了這些時間。靜態調度程序生成調度表,其中包含有關離線任務的完整信息集,然后在運行時調度這些任務。
繼續我們的分類圖,我們可以看到靜態和動態調度的兩種不同方法——搶占式和非搶占式調度。在搶占式調度中,一些任務可以被其他更緊急的任務中斷(搶占)。在非搶占式調度中,任務可以決定何時將資源(通常在完成時)釋放給其他任務。如果要執行許多短任務,那么以非搶占方式調度任務是有意義的。
尋找可行的時間表是一個復雜的過程,會導致整個分布式系統的效率更高。某些任務特征可能有助于此搜索。一個對可調度性特別有用的量是任務請求時間,即請求執行任務的時間。根據任務請求時間,我們可以區分兩種類型的任務:周期性的和零星的。在第一次請求周期性任務后,通過將已知周期的倍數添加到初始請求時間,可以知道所有未來的請求時間。對于零星任務,請求時間在其激活之前是未知的。在這種情況下,可調度性標準是零星任務的任意兩個請求時間之間是否存在最小間隔。此外,
考慮到可用的選項,什么是 AD 系統實時調度的正確方法?我們已經指出,AD 嚴重依賴于硬實時行為。查看 AD 系統的“內部”,我們會看到許多并發任務共享公共資源和交換數據。在現實世界的場景中,這涉及到許多依賴關系的考慮,例如優先級較高的任務優先于低優先級的任務以及任務之間的互斥約束以找到合適的調度。面對這些挑戰,動態調度技術很難保證這些任務可用的緊迫期限,特別是考慮到管理 E/E 架構節點之間的通信的需要。換句話說,動態模型的表達能力不足以有效地捕捉所有這些現實生活中的需求,因此一旦系統超出動態模型中的(極其過度簡化的)假設,就幾乎不可能確保保證。因此,為了實現所需的可預測性水平,實際上確保自動駕駛功能的安全性,我們需要一個靜態的運行前調度來代替。
靜態調度是在設計時根據事件和執行活動的總體確定的調度,適用于不同復雜程度的系統,包括分布式實時系統。它處理分布式系統中預先計劃的資源使用和對通信介質的預先計劃訪問。盡管計算機系統無法控制外部中斷,但這些傳入事件將被服務的時間點可以先驗地定義,基于對每一類事件的假設。我們可以將靜態調度視為對可行調度的搜索。此搜索的目標是找到一個完整的時間表,該時間表考慮了任務之間的所有優先關系和互斥約束,并確保所有任務在截止日期之前完成。為了改進和優化結果,可以將啟發式函數應用于搜索。獲獎論文Mapping and Scheduling Automotive Applications on ADAS (Advanced driver-assistance systems) Platforms using Metaheuristics提出了這種搜索優化策略。
盡管靜態調度是一種實現高級系統可預測性的方法,但它只能處理在設計時已經知道任務之間的依賴關系的情況。為了能夠解決可變的現實用例,引入了某些方法來增加靜態調度的靈活性。
這種效率措施之一是模式切換。ADAS 應用程序以不同的操作模式運行,例如停車模式或高速公路模式。這兩種模式不需要相同的服務和功能。如果將任務分開調度,則根據活動模式,可以實現更好的資源利用率。然后將資源分配到需要的時間和地點。系統設計人員必須識別所有操作和緊急模式,并離線計算每種模式的靜態調度,然后當在運行時請求模式切換時,必須相應地激活模式切換調度。
這些是靜態實時調度帶來的要素,以確保安全的 AD 系統行為以及在廣泛的可能場景及其個性化要求下對計算資源的最佳使用。他們必須確保系統的正確性和響應性。
使用MotionWise在實踐中進行安全的實時調度
已經提到的 ACES 發展正在推動汽車行業向軟件定義和集中式 E/E 架構發展。隨著這一趨勢,預計車輛操作系統將朝著在少數中央計算中心支持所有車輛功能的方向發展,同時確保整個系統的可用性和安全性。對測試和驗證工作的需求正在增加,并且需要模擬真實場景以獲得準確和值得信賴的系統行為。這種領域的整合,以及集成到系統中的混合關鍵性的不同應用程序,需要一個系統設計來支持關鍵軟件功能的保證優先級以及它們不受可能干擾的影響。
進入 MotionWise,這是一個軟件安全平臺,它結合運行時服務和設計時工具來解決這些問題,為軟件行為提供端到端的保證。通過為每個應用程序定義和強制執行預定義的執行邊界并實現運行前靜態調度,MotionWise 編排了較低級別操作系統提供的機制,以確保整個系統的實時行為。憑借其工具,MotionWise 能夠以協調和無縫的方式沿著開發生命周期系統開發汽車軟件,包括設計、集成、測試和驗證。
讓我們深入了解一下這里的工作技術:MotionWise 提供了一個執行管理器,可以確定性地協調跨系統中所有主機的多個應用程序的調度。主機之間的所有通信均通過確定性網絡實現,并由 MotionWise Communication Manager Stack 進行協調。全局調度概念確保主機的所有任務調度與連接這些主機的骨干通信網絡的網絡調度一致。由于全局調度要求所有主機上的時間概念相同,因此必須得到專用 MotionWise 功能的支持才能實現可靠的時間同步。此外,所有這些都是通過 MotionWise 規劃工具和執行車載軟件堆棧從用戶的角度抽象出來的。
現代分布式系統的復雜性,再加上極其復雜和不可預測的現實駕駛條件,為尋找能夠滿足高度自動化、軟件定義車輛的安全要求的適當時間表創造了一個具有挑戰性的起點。因此,創建有效的時間表需要全局視圖:系統范圍的計劃和全局時間考慮。這通常意味著在多主機,有時甚至是多 ECU 環境中進行架構工作。全局調度程序為整個異構、多 ECU、多 SoC、多核系統創建調度。這是通過 MotionWise Creator 實現的,它根據用戶定義的約束生成有效的時間表。該工具還可以在無法制定可行的時間表時提供信息。

MotionWise 全局調度程序功能
如前所述,現實生活中的情況通常會引入高度復雜的任務流程,此時需要妥善管理大量相互依賴、相互排斥的任務。為了確保所有這些任務根據它們的相互依賴關系和延遲要求得到良好的組織和調度,MotionWise 將這些任務分組到所謂的計算鏈 (CC) 中。此外,它們可以安排在任何主機上并具有不同的時間段。在運行時,CC 的確定性執行理想地由其任務和消息傳輸的 WCET 來確保。如果 WCET 無法準確估計,則無法保證特定任務不會超出其預定時間。在實踐中,運行時預算是迭代估計的,以盡量減少超支的可能性。在仍然發生溢出的極少數情況下,MotionWise 會檢測到,報告,并觸發適當的錯誤反應。傳入的任務可以分為事件驅動、數據驅動或時間驅動。例如,規劃和控制是時間驅動的,而多個異步傳感器輸入是事件驅動的。數據驅動任務的一個例子是感知層,它由一系列進程組成,它們之間存在數據依賴關系。

計算鏈
由于不同的應用程序根據其要求和優先級在不同的主機上運行,ADAS 系統架構師決定將哪些策略應用于哪個應用程序,以滿足所有功能和安全要求。
時間觸發的調度策略能夠高度確定地執行相關的時間驅動任務。這些任務在它們各自的固定長度時隙內被激活和執行,并在預定的時間點周期性地發生。調度表離線生成并靜態部署。這種方法允許高度不受干擾,但是,任務可能不需要全部分配的時間預算來執行它們(尤其是那些具有高度變化的運行時間的),因此需要更有效地使用這些場景的資源。由于即使是對安全至關重要的任務也可能具有可變的運行時間,因此在每個主機上有效地使用資源非常重要。此外,在我們硬實時系統的整體處理活動中,不僅是周期性的,但也需要考慮零星的任務。這似乎是靜態調度的弱點。
顯然,現代汽車行業需要靈活的調度機制來涵蓋各種可能的用例。作為對現實世界駕駛條件的響應,MotionWise 調度功能體現了靈活性和安全性之間的完美協同作用。我們的時間感知解決方案架構通過允許完成事件驅動和數據驅動的任務,同時仍然提供時間保證,從而能夠執行各種應用程序。例如,周期性傳感器輸入(相機圖像幀)本質上是異步的,因此必須以事件驅動的方式處理。MotionWise Scheduling Service 通過將事件驅動任務(傳感器輸入)集成到時間感知架構中來處理時間驅動和事件驅動任務。與時間驅動任務的預定義時隙不同,

我們的時間感知架構中的事件驅動任務
MotionWise還允許數據驅動的調度,其中用戶可以定義一組數據驅動的任務。數據驅動方法的用例是在感知層中任務的動態順序執行,其中數據驅動的任務可以在滿足先決條件(輸入數據準備好)后立即開始。盡管單個任務的執行本質上并不取決于先前任務的完成,但至關重要的是端到端延遲不超過上限。

通過數據驅動的調度優化資源
MotionWise 同時靈活而準確,展示了支持這一終極安全目標的不同機制。我們已經提到模式切換是一種非常有用的提高靜態調度效率的方法。為了有效地分配資源,重要的是為系統的不同操作模式采用單獨的調度方法。換句話說,具有單個調度表會導致資源使用不理想,并且生成調度需要更長的時間。MotionWise Scheduling Service 支持在運行時在多個預先配置的調度表之間切換,以實現互斥的應用程序,例如高速公路領航員和停車輔助。
正如本文所述,硬實時調度對于 ADAS 和整個 AD 發展至關重要。MotionWise 平臺提供了當今規劃、構建和運行安全的實時 E/E 架構所需的所有功能。隨著 ACES 移動性在我們的世界中逐漸成為現實,必須在技術進步的同時確保人類生命永遠不會處于危險之中。在 TTTech Auto,我們了解這一旅程的意義,并每天熱情地工作,為安全提供無條件的解決方案,這是真正繁榮的現代移動性的要求。
審核編輯:郭婷
-
傳感器
+關注
關注
2576文章
55032瀏覽量
791252 -
汽車電子
+關注
關注
3045文章
8957瀏覽量
172801 -
計算機
+關注
關注
19文章
7806瀏覽量
93190
原文標題:自動駕駛安全實時調度算法
文章出處:【微信號:阿寶1990,微信公眾號:阿寶1990】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
基于大模型的發射任務調度與過程保障分系統平臺的應用與未來發展
米爾RK3506核心板SDK重磅升級,解鎖三核A7實時控制新架構
大模型驅動的發射任務智能調度分系統軟件平臺的應用與未來發展
嵌入式基礎知識-系統調度
如何守護未來互聯汽車的網絡安全
高清可視化?全域可調度:石油銷售調度中心信息化升級建設方案
深入解析米爾全志T536核心板的實時性技術突破
一文讀懂:嵌入式Linux實時性進階
零延遲響應:安卓工控機如何用實時操作系統(RTOS)賦能工業控制
安全生產調度管理系統的核心功能模塊
基于LuatOS核心庫的實時操作系統開發:從理論到實踐~
AI賦能安全調度系統:智能升級與功能躍遷
什么樣的才叫實時工業操作系統
為什么安全的實時調度是汽車未來的核心
評論