1. 程式人生 > >SylixOS周期定時抖動分析

SylixOS周期定時抖動分析

sylixos 抖動 周期控制

1.概述

自動化與控制行業中有很多場景需要循環周期控制,而運動控制領域對循環周期控制的時間確定性要求尤為嚴格,周期抖動的時間確定性和周期控制的極限範圍直接影響運動控制產品的質量和性能。
SylixOS作為一款嵌入式實時操作系統,針對不同循環周期和不同程度的時間確定性要求均有對應的周期控制方式,其中就有為周期性任務解決多任務調度沖突並且時間確定性良好的速率單調調度(Rate Monotonic Scheduling RMS),還有傳統的以硬件平臺定時器作為中斷源,以中斷服務程序作為實時任務運行載體的周期控制方式。

2.周期定時方式

本文檔主要針對SylixOS實時周期任務進行時間確定性的測試,為貼近真實場景,除了實時周期任務,還有多個普通線程以及不間斷的串口中斷、網絡中斷等幹擾項,以此保證本文檔測試數據以及抖動分析有實際參考價值。


2.1 SMP模式的RMS方式

2.1.1 測試模型

測試平臺有兩個CPU,在應用程序中將實時任務綁定到CPU1上,其他任務則在CPU0上運行,其中SylixOS中斷的綁核不提供應用層的接口,因此我們編寫了一個.ko文件用於綁定中斷(包括串口中斷、網絡中斷、定時器中斷等)到CPU0上,測試時加載此.ko模塊即可,具體測試模型如圖 2-1所示。

技術分享

圖 2-1 SMP模式的RMS方式測試模型

2.1.2 抖動分析

RMS實現說明:基於操作系統tick的軟件定時,循環周期高於tick的部分以tick來實現,循環周期低於tick的部分以CPU忙等待處理實現,以此保證時間延時精度。


SylixOS在高精度時間的CPU忙等待處理中會使用自旋鎖,在這一過程中,操作系統不停地獲取CPU的時間計數值,每次獲取值的過程需要自旋鎖加鎖、解鎖的操作,多核競爭下共享資源使用自旋鎖進行互斥訪問會對RMS有影響,存在一個極限情況,CPU0在CPU1上的實時任務延時完成之前搶先占有自旋鎖,自旋鎖被占有的時間會導致SMP模式的RMS最大抖動極限值。

2.1.3 優點

  • SylixOS提供了RMS應用層接口,用戶使用方便;

  • RMS有助於解決多個實時任務調度沖突的問題,RMS基於任務的周期指定優先級,周期越短優先級越高。

2.1.4 缺點

  • SMP模式下的自旋鎖機制會影響實時任務的抖動;

  • 實時任務周期低於時鐘tick周期時會獨占CPU運行。

2.2 SMP模式的ISR方式

2.2.1 測試模型

以硬件平臺定時器作為中斷源,以中斷服務程序作為實時任務運行載體,這種SMP模式的ISR方式,將實時線程轉化為中斷任務,可有效提高任務的響應速度和任務循環周期的時間確定性,具體測試模型如圖 2-2所示。

技術分享

圖 2-2 SMP模式的ISR方式測試模型

2.2.2 抖動分析

SMP模式的ISR周期控制方式,SylixOS使用雙核平臺的私有定時器產生定時中斷到中斷處理程序開始執行存在一定時間間隔,不可避免。這段時間間隔就是中斷響應時間,穩定的中斷響應時間可以保證ISR方式的穩定循環周期。存在一個極限情況,前後兩次的定時中斷分別以最小的中斷響應時間和最大的中斷響應時間讓中斷處理程序開始執行,就會導致ISR周期控制方式的最大抖動極限值。SylixOS在雙核平臺的中斷響應時間集中在2-3μs,因此ISR周期控制方式的最大抖動極限值為±1μs。

2.2.3 優點

周期控制方式中時間確定性最好的一種方式。

2.2.4 缺點

因為任務在中斷服務程序中執行,要求任務代碼短小精悍且不允許有耗時操作,需要根據具體情況決定是否采用此方法,不具備通用性。

2.3 AMP模式的RMS方式

2.3.1 測試模型

SylixOS支持AMP模式,在雙核平臺的兩個CPU上分別運行SylixOS,測試模型與SMP模式的RMS方式類似,具體的測試模型如圖 2-3所示。

技術分享

圖 2-3 AMP模式的RMS方式測試模型

2.3.2 抖動分析

AMP模式的RMS周期控制方式相對SMP模式的RMS周期控制方式避免了多核競爭下共享資源使用自旋鎖互斥訪問的影響,最大抖動主要是和前後兩次實時任務運行之前的任務上下文切換時間有關,存在一個極限情況,前後兩次任務上下文切換分別以最小切換時間和最大切換時間來完成任務調度,會造成AMP模式的RMS方式的最大抖動極限值。

2.3.3 優點

由於每個CPU單獨運行一個操作系統,相比SMP模式下的RMS方式,避免了多核競爭下共享資源使用自旋鎖互斥訪問的影響,提高了時間確定性。

2.3.4 缺點

AMP模式的RMS方式可能會出現RMS任務獨占CPU的情況,SylixOS在雙核平臺的時鐘周期為100μs,當任務延時時間低於100μs(時鐘周期)時就會出現任務獨占CPU的情況。

3.總結

AMP模式的ISR周期控制方式和SMP模式的ISR控制方式結果類似,不單獨列出。
SylixOS有多種循環周期控制方式可供選擇,在對較小循環周期的控制場景下,SylixOS可以以針對性的控制方式保證實時任務的時間確定性,本文檔測試場景模擬了一些幹擾任務和中斷任務,用戶可根據自身實際場景選擇合適的周期控制方式。

SylixOS周期定時抖動分析