基于多核 ARM 的數控系統實時性研究
2018-6-15 來源:轉載 作者:王穎慧 郭銳鋒 韓衛光 尹震宇 鄧昌義等
摘要: 隨著數控系統的不斷發展, 數控系統對精度和速度有了更高的要求, 這都對當前普遍采用的單核處理器平臺提出了嚴峻的挑戰. 基于同構的四核ARM處理器平臺, 在添加了實時補丁的Linux系統環境下, 根據數控系統中硬實時任務、軟實時任務、非實時任務并存的特點, 把數控系統任務合理的分配到多核 ARM 上運行, 并采用改進的 RM 算法進行調度, 最后對新的任務調度算法進行實時性能測試. 本調度模型能夠解決了數控系統混合任務調度的問題, 并能滿足數控系統對實時性的要求.
關鍵詞: 多核 ARM ; 實時調度; RM 算法; IRM 算法
1、引言
目前基于嵌入式芯片的數控系統普遍采用單核處理器平臺, 隨著對數控系統功能和性能要求的不斷提高, 對處理器平臺的性能要求也越來越高, 在單核平臺上運行高檔數控系統軟件遇到了嚴峻的挑戰. 單純通過提高 CPU 的主頻和指令的執行效率來提高性能, 不僅會帶來巨大的功耗問題, 而且還面臨著技術和工藝方面的瓶頸. 多核處理器的出現, 大大提高了處理器的性能, 滿足了人們對處理器性能提高的要求, 成了商業化處理器的發展趨勢, 但也給體系結構、軟件、功耗和安全性設計等方面帶來了巨大挑戰, 多核系統線程調度算法就是其中一個重要的研究方向. 隨著數控技術的發展, 加工對象的復雜度增加, 處理器處理運動控制插補運算的高速度高精度要求更高, 要解決這一問題, 除了更換更好性能的 ARM 芯片, 多核ARM 是其另一個重要的發展方向.
數控系統具有實時性和多任務的特點, 如當數控系統正處于加工控制狀態時, 各數控加工程序段的預處理、插補計算、位置控制和各種輔助控制任務都要及時進行. 且數控系統是一個實時任務系統,其任務按是否具有實時性要求和周期性要求可分為:實時周期性任務、實時突發性任務和非實時任務. 數控系統任務的復雜性, 使得單核處理器不再適應數控系統對速度和精度的要求, 而將多核 ARM 應用于數控系統可以根據任務的不同性質將任務合理的分配到不同的核, 減少所有任務都等待同一個處理器而增加的延時, 從而更好的適應數控系統的要求. 目前, 對多核處理器實時調度算法的研究主要為了提高多核處理器系統的負載平衡, 本文采用改進的 RM 調度算法, 主要針對數控系統混合任務的特點, 可減小插補周期的延遲, 提高數控系統加工工件的精度和速度.
2 、基于數控系統的RM調度算法及其改進算法
2.1 RM 調度算法的概述
1973 年 Liu 和 Layland 提出的單調速率調度算法(RM)是一種靜態優先級調度算法, 已被證明是可搶占的硬實時周期性任務調度的最優算法. RM 算法應用于周期任務, 根據任務的周期來分配優先級, 周期越短, 優先級越高. 理想的 RM 調度模型是基于一系列假設的基礎上的, 這些假設是 RM 調度算法可執行的必要條件, RM 調度模型的基本假設如下:
(A1) 所有的任務請求都是相隔固定時間觸發的即任務具有周期性, 且為硬實時任務, 任務必須在規定的時限內完成;
(A2) 任務的周期即為任務的截止期, 即任務必須在下一次任務到來之前完成;
(A3) 任務之間是相互獨立的, 每個任務的請求和執行與其他任務的請求和執行無關;
(A4) 每個任務的運行時間是不變的, 這里任務的運行時間是指處理器在無中斷情況下用于處理該任務的時間;
(A5) 系統調度和任務的上下文切換的時間不計;
(A6) 任務之間是可搶占的, 高優先級任務可以搶占低優先級任務;
(A7) 默認 CPU 是任務唯一需要爭奪的資源, 任務所需的其他資源都是可滿足的.



圖 1 RM 調度算法任務調度
由于 RM 調度算法的可執行條件的限制, 導致RM 調度算法在面對數控系統的實時環境方面存在一些不足. 首先, 數控系統是混合任務系統, 不僅有周期任務還有非周期任務, 而 RM 調度算法規定實時任務必須為周期任務; 其次, RM 調度算法是固定優先級調度算法, 它的優先級只取決于任務的周期, 任務周期越短, 優先級越高, 但是數控系統中的實時任務除了實時周期任務, 還有實時突發任務, 這些任務周期不固定且具有很高的實時性, 需要系統及時的響應和處理. 使用 RM 調度算法可能會使得一些重要的實時突發任務得不到調度, 從而超過任務的時限, 給系統帶來不可挽回的錯誤.
2.2 基于 RM 調度算法的改進算法
基于以上提到的 RM 調度算法的不足, 提出一種基于 RM 調度算法的單調速率計算能力調度算法, 該算法是應用于云環境任務調度. 因數控系統有其自身的特點, 例如: 混合多任務、高要求的實時性等. 本文在該算法的基礎上進行改進, 提出一種能更好的適用于數控系統任務環境的調度算法 IRM 算法, 使其更好的滿足數控系統對實時性的要求. 在 RM 調度算法的基礎上引進參數 I, I 表示一個任務的重要程度, 數控系統操作者根據經驗靜態的給不同的實時任務賦一個 I 值, 則數控系統任務的優先級為:



由此看出, 改進的RM調度算法, 任務的優先級不再僅僅取決于任務的周期, 而是任務的重要度和截止期的二元函數. 同時為每一個任務維持一個表示還能等待多長時間的N值, 保證任務不會由于等待而錯過截止期限. 這樣在多任務混合的數控系統中, 不僅能夠保證周期任務的正常運行, 而且能夠使得非周期任務能及時響應. 由此可以看出, IRM調度算法比RM調度算法更加適用于多種實時任務并存的數控系統, 能更好的滿足數控系統對實時性的需求.
3、 多核處理器下數控系統的架構及實驗結果分析
3.1 多核處理器下數控系統的架構
按照對實時性要求的不同, 數控系統的任務可分為硬實時任務、軟實時任務和非實時任務. 在單核處理器時代, 其主要解決方法為在保證實時任務能夠在周期內完成的前提下, 在處理器空閑的時間才執行非實時任務. 由于處理器的個數限制, 使得非實時任務的等待時間大大的增加, 甚至導致非實時任務得不到運行. 同時也可能由于多個實時任務的周期相近而導致實時任務不能在截止期內完成.
軌跡插補是數控系統最重要的計算任務,軌跡插補具有實時性和精度的要求, 數控系統如果需要提高加工零件的精度, 則需要提高插補的精度, 插補精度可以通過減小步長獲得, 但減小步長將導致計算量成倍地增加, 極大地限制機床進的進給速度的提高, 甚至可能造成數控系統無法進行實時加工. 本文基于以上考慮, 從任務分配和任務調度兩個方面來縮小插補周期, 提高數控系統的加工精度, 同時保證數控系統的其他任務能夠更加高效的運行. 基于數控系統對實時性的需求, 本文基于四核的 ARM 硬件結構, 采用開源的 Linux 為軟件系統來搭建數控系統.

圖 2 數控系統任務分配
圖 2 中, 數控系統非實時任務分配到 core0 上執行, 使用 Linux 的分時調度器調度. 軟實時任務在 core1 核上調度, 采用 Linux 的實時調度器進行調度. core2 核上調度數控系統的硬實時任務, 采用 IRM 調度算法進行調度, 當 core2 核上某個任務的剩余等待時間 N<1時, 則將此任務賦予一個最高優先級, 遷移到 core1 核上運行. core3 核上運行數控系統的插補任務, 使用RM 調度算法進行調度, 單獨為插補任務分配一個內核運行, 有利于插補任務周期的縮短, 能有效提高數控系統的加工精度. 此任務分配模型既可以保證數控系統重要的實時任務能夠得到更快的執行, 也可以保證非實時任務能夠及時的響應, 有效的解決了數控系統多任務混合的調度問題.
3.2 仿真實驗與結果分析
本文基于四核 ARM 結構, 操作系統為添加了實時內核的 Linux 系統, 實時內核為 Xenomai. 3.2.1 Linux 系統實時性能測試.
本文針對數控系統的延遲時間進行了測試, 分別就 Linux 系統和添加了 Xenomai 實時內核后的系統進行了 20000 次實驗, 以下是測試結果.

圖 3 未添加實時補丁的系統延遲

圖 4 添加實時補丁的系統延遲
圖 3 為標準 Linux 內核的延遲, 延遲的最大值為97us, 最小值為 15us, 平均值為 20us, 延遲的波動性較大, 延遲時間較大, 系統的實時性能不佳. 圖 4 為添加了實時補丁后的系統延遲, 其最大延遲為 40us, 最小延遲為 5us, 延遲的時間比較穩定, 平均延遲為 11us. 從結果可以看出, 增加了實時補丁的 Linux 系統延遲明顯減小, 系統延遲更加穩定, 能更好的提高系統對任務的響應速度, 使得增加了實時補丁的系統比之前的系統在實時性能方面有很大的提高, 能更好的滿足數控系統對實時性的要求.
3.2.2 數控系統實時任務調度測試
本文基于搭建的數控系統仿真環境進行性能測試, 插補算法選用逐點比較法, 直線插補算法是在本地進行模擬測試, 設插補周期為1ms和0.8ms, 分別用C語言對直線插補進行仿真, 把交叉編譯后的程序在目標平臺上運行, 測試結果表明該插補算法可以在目標平臺上運行并繪制出一條直線, 插補運算都能在其周期內完成, 從而說明數控系統的實時性能基本能夠滿足數控系統插補運算的要求, 能夠明顯的縮短數控系統的插補周期.
4、 總結
由于單核處理器在性能上遇到的瓶頸問題,多核處理器的出現有效的提高了系統的性能和效率,將多核處理器應用到數控系統能有效的提高數控系統的效率,滿足數控系統對速度和精度的要求.木文基于四核的ARM處理器,搭建添加了實時補J‘的Linux操作系統,將數控系統任務合理的分配到每個核上運行,很好的提高了數控系統的效率.同時使用改進的RM調度算法來調度數控系統的實時任務,能夠進一步提高數控系統的加工速度和精度.接卜來的進一步任務是進行大量的實驗,根據這些實驗的經驗確定合理的插補周期,既能保證數控任務精度的要求也能使插補運算能夠在周期內完成.
來源:中國科學院大學, 中國科學院 沈陽計算技術研究所
投稿箱:
如果您有機床行業、企業相關新聞稿件發表,或進行資訊合作,歡迎聯系本網編輯部, 郵箱:skjcsc@vip.sina.com
如果您有機床行業、企業相關新聞稿件發表,或進行資訊合作,歡迎聯系本網編輯部, 郵箱:skjcsc@vip.sina.com
更多相關信息