本技術涉及計算機,尤其涉及一種任務鏈的時延抖動控制方法及相關裝置。
背景技術:
1、在基于軟件的控制系統中,通常會采用多個依次執行的任務來實現特定的控制行為(例如自動駕駛場景下的車輛加速行為)。多個依次執行的任務構成一個任務鏈。一般來說,對于任務鏈中相鄰的兩個任務而言,只有在前一個任務執行完畢且產生輸出數據后,后一個任務才能夠執行。
2、為了保證控制行為的實現,一個任務鏈的端到端時延通常會有一個預定的設計值。其中,任務鏈的端到端時延是指從任務鏈中第一個任務開始執行到最后一個任務結束執行所用的總時間。當任務鏈的實際端到端時延等于預定的設計值時,控制系統可以按預期的行為工作。如果在控制系統的運行過程中,任務鏈的實際端到端時延存在抖動(比如實際端到端時延時延小于或大于設計值),控制系統的行為則可能會偏離預期,導致預期指標不再滿足要求,造成系統性能的劣化。
3、由于任務鏈中的多個任務之間具有執行依賴關系,且任務鏈中的每個任務在執行期間都容易受到系統負載變化的影響而導致任務的完成時間出現抖動,從而導致整個任務鏈的端到端時延容易出現較大的抖動,影響系統的性能。
技術實現思路
1、本技術提供一種任務鏈的時延抖動控制方法,用于控制任務鏈的端到端時延抖動。
2、本技術第一方面提供一種任務鏈的時延抖動控制方法,應用于調整控制系統中的任務鏈。該方法包括:獲取第一任務鏈以及第一任務鏈的最壞情況執行時間(worst-caseexecution?time,wcet)。第一任務鏈為需要控制時延抖動的原始任務鏈,且第一任務鏈包括依次執行的多個任務。并且,第一任務鏈的wcet用于指示執行第一任務鏈所需時間的最大值。
3、然后,在第一任務鏈的第一任務后添加第二任務,得到第二任務鏈。第一任務為第一任務鏈中的最后一個任務,第二任務用于獲取第一任務輸出的數據并在目標時間點下將數據輸出。目標時間點與第二任務鏈開始執行的時間點之間的時長為預設閾值,且預設閾值與第一任務鏈的wcet相關。具體來說,第二任務是添加在第一任務鏈的最后一個任務(即第一任務)之后,且第二任務需要在第一任務執行完畢之后才能夠開始執行,即第二任務的執行依賴于第一任務。并且,第二任務并非是第一任務執行完畢之后立刻就才能夠執行,而是需要在第一任務執行完畢后的目標時間點執行。
4、其中,第二任務并沒有對第一任務所輸出的數據執行實質上的處理,而是將從第一任務獲取到的數據在目標時間點上輸出(即重新輸出原始的第一任務鏈的輸出數據),從而保證第二任務鏈輸出數據的時間點是固定的,即保證第二任務鏈的端到端時延是固定的。
5、本方案中,通過在原始任務鏈的后面添加一個任務,該任務讀取原始任務鏈所輸出的數據,并能夠在特定的時間點下輸出所讀取的數據,從而使得原始任務鏈的輸出數據能夠在特定時間點下輸出。這樣,無論原始任務鏈的實際執行時長是多大,都能夠確保執行原始任務鏈所得到的數據在特定時間點下輸出,確保新的任務鏈的端到端時延是穩定的,避免任務鏈的時延抖動過大而影響系統的正常運行。
6、在一種可能的實現方式中,上述的目標時間點包括多個時間點,預設閾值包括多個閾值。多個時間點與第二任務鏈開始執行的時間點之間的時長分別為多個閾值。也就是說,在多個時間點下均可以觸發第二任務的執行,且多個時間點中的每個時間點與第二任務鏈開始執行的時間點之間的時長都為一個固定的閾值,不同時間點與第二任務鏈開始執行的時間點之間的時長并不相同。
7、并且,第二任務用于在獲取到第一任務輸出的數據后,在多個時間點中位于第一時刻之后的最近一個時間點將數據輸出,第一時刻為第二任務獲取到第一任務輸出的數據的時刻。
8、本方案中,通過設定第二任務鏈中的最后一個任務能夠輸出數據的多個時間點,可以將第二任務鏈的端到端時延控制在有限的多個閾值中,從而能夠支持多模式的任務鏈工作方式,便于支撐依賴于第二任務鏈的其他任務鏈的設計,保證第二任務鏈的輸出能夠匹配依賴于第二任務鏈的其他任務鏈的多種工作模式。此外,基于多個時間點的設計,能夠將第二任務鏈的端到端時延控制在合理的多個值上,避免第二任務鏈的端到端時延始終為一個較大的閾值,從而提高任務鏈的執行效率。
9、在一種可能的實現方式中,多個時間點分別對應的多個閾值均小于或等于wcet,且多個閾值中存在一個閾值等于wcet。這樣,通過設定多個閾值均小于或等于第二任務鏈的wcet,能夠盡可能地降低第二任務鏈的端到端時延,且多個閾值中存在一個閾值等于wcet則能夠保證第二任務鏈在任意執行情況下均能夠輸出數據,確保第二任務鏈的正常執行。
10、在一種可能的實現方式中,上述的方法還包括:獲取目標時間點所包括的時間點的數量以及第一任務鏈對應的多個執行時間,多個執行時間是在不同的執行情況下執行第一任務鏈得到的。即,在不同的執行環境下,反復多次執行第一任務鏈,從而得到第一任務鏈的多個執行時間,從而獲知第一任務鏈的執行時間分布情況。
11、然后,基于多個執行時間,確定第一任務鏈的執行時間的累積分布函數(cumulative?distribution?function,cdf)。在得到第一任務鏈的cdf之后,即可確定第一任務鏈的執行時間的分布情況,即第一任務鏈出現各種執行時間的概率。
12、其次,基于目標時間點所包括的時間點的數量以及cdf,通過算法迭代求解確定多個時間點對應的多個閾值的大小,以達到預設的優化目標。
13、其中,預設的優化目標可以有多種實現方式,具體可根據實際應用場景來確定或調整。例如,在一種可能的實現方式中,預設的優化目標包括第二任務鏈的平均執行時間為最小值,其中,平均執行時間與多個閾值的大小以及cdf相關。
14、本方案中,確定觸發第二任務執行的多個時間點的數量后,可以是以最小化第二任務鏈的平均執行時間為目標,求得多個時間點的具體值,從而使得基于這多個時間點來觸發第二任務執行時,第二任務鏈的平均執行時間能夠盡可能小。
15、在一種可能的實現方式中,上述用于執行迭代求解的算法包括粒子群優化算法、遺傳算法或模擬退火算法。
16、在一種可能的實現方式中,目標時間點僅包括一個時間點,且目標時間點與第二任務鏈開始執行的時間點之間的時長大于或等于第一任務鏈的wcet,即上述的預設閾值大于或等于第一任務鏈的wcet。
17、也就是說,通過設計目標時間點僅包括一個時間點,可以使得第二任務鏈的執行時長是固定的且只有一個值(即預設閾值),從而實現第二任務鏈的端到端時延的精確控制,避免第二任務鏈的時延抖動過大而影響系統的正常運行,且有利于依賴于第二任務鏈的其他任務鏈的設計。
18、在一種可能的實現方式中,上述的方法還包括:將第二任務鏈中的第一任務所輸出的數據的標識從第一標識修改為第二標識;將第二任務鏈中的第二任務所接收的數據的標識配置為第二標識,以及將第二任務鏈中的第二任務所輸出的數據的標識配置為第一標識。
19、本方案中,通過修改原始任務鏈中最后一個任務的輸出數據的標識,以及配置新的任務鏈中最后一個任務的輸出數據的標識為原始任務鏈中最后一個任務的輸出數據原先的標識,能夠保證依賴于原始任務鏈的其他任務鏈不需要任何改動即可獲取到新的任務鏈的輸出數據,減少了對其他任務鏈的改動,且保證了任務鏈的正常執行。
20、在一種可能的實現方式中,第一任務與第二任務之間通過發布訂閱機制通信,第一任務為數據的發布者,第二任務為數據的訂閱者。
21、在一種可能的實現方式中,上述的方法應用于自動駕駛場景、機器人控制場景或工業控制場景。
22、在一種可能的實現方式中,多個任務中的每個任務的執行主體為線程或進程。
23、本技術第二方面提供一種任務鏈的時延抖動控制裝置,包括:獲取模塊,用于獲取第一任務鏈以及第一任務鏈的wcet,第一任務鏈包括依次執行的多個任務,wcet用于指示執行第一任務鏈所需時間的最大值;處理模塊,用于在第一任務鏈的第一任務后添加第二任務,得到第二任務鏈,第一任務為第一任務鏈中的最后一個任務,第二任務用于獲取第一任務輸出的數據并在目標時間點下將數據輸出,目標時間點與第二任務鏈開始執行的時間點之間的時長為預設閾值,且預設閾值與wcet相關。
24、在一種可能的實現方式中,目標時間點包括多個時間點,預設閾值包括多個閾值,多個時間點與第二任務鏈開始執行的時間點之間的時長分別為多個閾值;第二任務用于在獲取到第一任務輸出的數據后,在多個時間點中位于第一時刻之后的最近一個時間點將數據輸出,第一時刻為第二任務獲取到第一任務輸出的數據的時刻。
25、在一種可能的實現方式中,多個閾值均小于或等于wcet,且多個閾值中存在一個閾值等于wcet。
26、在一種可能的實現方式中,獲取模塊,還用于獲取目標時間點所包括的時間點的數量以及第一任務鏈對應的多個執行時間,多個執行時間是在不同的執行情況下執行第一任務鏈得到的;處理模塊,還用于基于多個執行時間,確定第一任務鏈的執行時間的cdf;處理模塊,還用于基于目標時間點所包括的時間點的數量以及cdf,通過算法迭代求解確定多個時間點對應的多個閾值的大小,以達到預設的優化目標。
27、在一種可能的實現方式中,優化目標包括第二任務鏈的平均執行時間為最小值,平均執行時間與多個閾值的大小以及cdf相關。
28、在一種可能的實現方式中,算法包括粒子群優化算法、遺傳算法或模擬退火算法。
29、在一種可能的實現方式中,目標時間點僅包括一個時間點,且預設閾值大于或等于wcet。
30、在一種可能的實現方式中,處理模塊,還用于:將第二任務鏈中的第一任務所輸出的數據的標識從第一標識修改為第二標識;將第二任務鏈中的第二任務所接收的數據的標識配置為第二標識,以及將第二任務鏈中的第二任務所輸出的數據的標識配置為第一標識。
31、在一種可能的實現方式中,第一任務與第二任務之間通過發布訂閱機制通信,第一任務為數據的發布者,第二任務為數據的訂閱者。
32、在一種可能的實現方式中,裝置應用于自動駕駛場景、機器人控制場景或工業控制場景。
33、在一種可能的實現方式中,多個任務中的每個任務的執行主體為線程或進程。
34、本技術第三方面提供一種任務鏈的時延抖動控制裝置,可以包括處理器,處理器和存儲器耦合,存儲器存儲有程序指令,當存儲器存儲的程序指令被處理器執行時實現上述第一方面或第一方面任一實現方式的方法。對于處理器執行第一方面的各個可能實現方式中的步驟,具體均可以參閱第一方面,此處不再贅述。
35、本技術第四方面提供了一種計算機可讀存儲介質,計算機可讀存儲介質中存儲有計算機程序,當其在計算機上運行時,使得計算機執行上述第一方面任一實現方式的方法。
36、本技術第五方面提供了一種電路系統,電路系統包括處理電路,處理電路配置為執行上述第一方面任一實現方式的方法。
37、本技術第六方面提供了一種計算機程序產品,當其在計算機上運行時,使得計算機執行上述第一方面任一實現方式的方法。
38、本技術第七方面提供了一種芯片系統,該芯片系統包括處理器,用于支持電子設備實現上述第一方面任一實現方式中所涉及的功能,例如,處理上述方法中所涉及的數據和/或信息。在一種可能的設計中,芯片系統還包括存儲器,存儲器,用于保存電子設備必要的程序指令和數據。該芯片系統,可以由芯片構成,也可以包括芯片和其他分立器件。
39、上述第二方面至第七方面的有益效果可以參考上述第一方面的介紹,在此不再贅述。