?

基于多核ARM的數控系統實時性研究①

2017-06-07 08:24王穎慧郭銳鋒韓衛光尹震宇鄧昌義彭阿珍吳昊天
計算機系統應用 2017年5期
關鍵詞:任務調度數控系統實時性

王穎慧,郭銳鋒,韓衛光,尹震宇,鄧昌義,彭阿珍,吳昊天

1(中國科學院大學,北京 100049)

2(中國科學院 沈陽計算技術研究所,沈陽 110168)

基于多核ARM的數控系統實時性研究①

王穎慧1,2,郭銳鋒2,韓衛光2,尹震宇2,鄧昌義1,2,彭阿珍1,2,吳昊天1,2

1(中國科學院大學,北京 100049)

2(中國科學院 沈陽計算技術研究所,沈陽 110168)

隨著數控系統的不斷發展,數控系統對精度和速度有了更高的要求,這都對當前普遍采用的單核處理器平臺提出了嚴峻的挑戰.基于同構的四核ARM處理器平臺,在添加了實時補丁的Linux系統環境下,根據數控系統中硬實時任務、軟實時任務、非實時任務并存的特點,把數控系統任務合理的分配到多核ARM上運行,并采用改進的RM算法進行調度,最后對新的任務調度算法進行實時性能測試.本調度模型能夠解決了數控系統混合任務調度的問題,并能滿足數控系統對實時性的要求.

多核ARM;實時調度;RM算法;IRM算法

1 引言

目前基于嵌入式芯片的數控系統普遍采用單核處理器平臺,隨著對數控系統功能和性能要求的不斷提高,對處理器平臺的性能要求也越來越高,在單核平臺上運行高檔數控系統軟件遇到了嚴峻的挑戰.單純通過提高CPU的主頻和指令的執行效率來提高性能,不僅會帶來巨大的功耗問題,而且還面臨著技術和工藝方面的瓶頸.多核處理器的出現,大大提高了處理器的性能,滿足了人們對處理器性能提高的要求,成了商業化處理器的發展趨勢,但也給體系結構、軟件、功耗和安全性設計等方面帶來了巨大挑戰,多核系統線程調度算法就是其中一個重要的研究方向.隨著數控技術的發展,加工對象的復雜度增加,處理器處理運動控制插補運算的高速度高精度要求更高,要解決這一問題,除了更換更好性能的ARM芯片,多核ARM是其另一個重要的發展方向.

數控系統具有實時性和多任務的特點[1],如當數控系統正處于加工控制狀態時,各數控加工程序段的預處理、插補計算、位置控制和各種輔助控制任務都要及時進行.且數控系統是一個實時任務系統,其任務按是否具有實時性要求和周期性要求可分為:實時周期性任務、實時突發性任務和非實時任務.數控系統任務的復雜性,使得單核處理器不再適應數控系統對速度和精度的要求,而將多核ARM應用于數控系統可以根據任務的不同性質將任務合理的分配到不同的核,減少所有任務都等待同一個處理器而增加的延時,從而更好的適應數控系統的要求.目前,對多核處理器實時調度算法的研究主要為了提高多核處理器系統的負載平衡,本文采用改進的RM調度算法,主要針對數控系統混合任務的特點,可減小插補周期的延遲,提高數控系統加工工件的精度和速度.

2 基于數控系統的RM調度算法及其改進算法

2.1 RM調度算法的概述

1973年Liu和Layland提出的單調速率調度算法(RM)[5]是一種靜態優先級調度算法,已被證明是可搶占的硬實時周期性任務調度的最優算法.RM算法應用于周期任務,根據任務的周期來分配優先級,周期越短,優先級越高.理想的RM調度模型是基于一系列假設的基礎上的,這些假設是RM調度算法可執行的必要條件,RM調度模型的基本假設如下:

(A1) 所有的任務請求都是相隔固定時間觸發的即任務具有周期性,且為硬實時任務,任務必須在規定的時限內完成;

(A2)任務的周期即為任務的截止期,即任務必須在下一次任務到來之前完成;

(A3)任務之間是相互獨立的,每個任務的請求和執行與其他任務的請求和執行無關;

(A4)每個任務的運行時間是不變的,這里任務的運行時間是指處理器在無中斷情況下用于處理該任務的時間;

(A5)系統調度和任務的上下文切換的時間不計;

(A6)任務之間是可搶占的,高優先級任務可以搶占低優先級任務;

(A7)默認CPU是任務唯一需要爭奪的資源,任務所需的其他資源都是可滿足的.

給定一個獨立的任務集S={t1,t2,…,tn},集合中任務ti={Ei,Ti,Di}(i=1,…,n),其中,Ei表示任務ti的執行時間,Ti表示任務ti的周期,Di表示任務ti的截止期限.如果這n個任務的CPU利用率滿足下面的條件:

則該任務集S用RM算法是可調度的.L(n)表示這n個任務的CPU利用率的最小上界.當任務的數量n趨向于無窮大時,L(n)的最大值約為0.69,即系統的CPU利用率最大值為69%.圖1為RM調度算法的任務調度圖.

圖1 RM調度算法任務調度

由于RM調度算法的可執行條件的限制,導致RM調度算法在面對數控系統的實時環境方面存在一些不足.首先,數控系統是混合任務系統,不僅有周期任務還有非周期任務,而RM調度算法規定實時任務必須為周期任務;其次,RM調度算法是固定優先級調度算法,它的優先級只取決于任務的周期,任務周期越短,優先級越高,但是數控系統中的實時任務除了實時周期任務,還有實時突發任務,這些任務周期不固定且具有很高的實時性,需要系統及時的響應和處理.使用RM調度算法可能會使得一些重要的實時突發任務得不到調度,從而超過任務的時限,給系統帶來不可挽回的錯誤.

2.2 基于RM調度算法的改進算法

基于以上提到的RM調度算法的不足,文獻[3]提出一種基于RM調度算法的單調速率計算能力調度算法[3],該算法是應用于云環境任務調度.因數控系統有其自身的特點,例如:混合多任務、高要求的實時性等.本文在該算法的基礎上進行改進,提出一種能更好的適用于數控系統任務環境的調度算法IRM算法,使其更好的滿足數控系統對實時性的要求.

文獻[3]在RM調度算法的基礎上引進參數I,I表示一個任務的重要程度,數控系統操作者根據經驗靜態的給不同的實時任務賦一個I值,則數控系統任務的優先級為:其中,Di為任務的截止時間,周期任務的Ti=Di,ξ根據任務的性質設定,P值越大表示任務的優先級越高.本文在該算法的基礎上引入一個計數值N,N的值表示數控系統實時任務還可以等待多長時間,N=D-E-C(C表示任務已經等待的時間),這可以判斷哪些任務不能在該核上繼續等待,否則會錯過截止期限,通過對N值的判斷可以將不能繼續等待的任務遷移到其他核運行,從而避免這些任務錯過截止期限.設置兩個隊列Q、R分別存放數控系統實時任務.

IRM調度算法描述如下:

(1)調度開始;

(2)通過(3)式計算各個任務的優先級,按優先級從高到低進行排列;

(3)設置兩個隊列Q和R,且為每一個實時任務設置一個N值,計算并保存N值;

(4)按優先級從高到低選取實時任務,使用(1)(2)式來計算實時任務集是否可調度,選取最大可調度集,將此可調度集任務加入隊列Q中,將剩余任務加入隊列R中;

(5)選取隊列Q中的優先級最高的任務調度執行,同時每個時鐘周期將任務的N值減一,若某個任務的N<1,則將此任務遷移到其他核執行;

(6)判斷隊列R是否為空,如果為空,執行第7步,如果不是空隊列,則執行第4步;

(7)判斷隊列Q是否為空,如果是空執行第8步,如果不為空跳回到第5步;

(8)調度結束.

由此看出,改進的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 數控系統實時任務調度測試

本文基于搭建的數控系統仿真環境進行性能測試,插補算法選用逐點比較法[10],直線插補算法是在本地進行模擬測試,設插補周期為1ms和0.8ms,分別用C語言對直線插補進行仿真,把交叉編譯后的程序在目標平臺上運行,測試結果表明該插補算法可以在目標平臺上運行并繪制出一條直線,插補運算都能在其周期內完成,從而說明數控系統的實時性能基本能夠滿足數控系統插補運算的要求,能夠明顯的縮短數控系統的插補周期.

4 總結

由于單核處理器在性能上遇到的瓶頸問題,多核處理器的出現有效的提高了系統的性能和效率,將多核處理器應用到數控系統能有效的提高數控系統的效率,滿足數控系統對速度和精度的要求.本文基于四核的ARM處理器,搭建添加了實時補丁的Linux操作系統,將數控系統任務合理的分配到每個核上運行,很好的提高了數控系統的效率.同時使用改進的RM調度算法來調度數控系統的實時任務,能夠進一步提高數控系統的加工速度和精度.接下來的進一步任務是進行大量的實驗,根據這些實驗的經驗確定合理的插補周期,既能保證數控任務精度的要求也能使插補運算能夠在周期內完成.

1王保勝,馬躍,吳文江,秦承剛.開放式數控系統任務調度模型.控制與檢測,2010,(6):37–39,42.

2丁萬夫,郭銳鋒,高甜容,秦承剛.面向數控系統的三級調度模型研究.小型微型計算機系統,2011,3(3):439–443.

3王琪元,閆宏印.基于改進RM算法的云環境任務調度研究.計算機測量與控制,2013,21(6):1612–1614.

4鄭玉虎,王品,陸小虎.基于雙核處理器平臺的數控系統軟件架構設計.組合機床與自動化加工技術,2013,(8):62–65.

5 Liu CL,Layland J.Scheduling algorithms for multiprogramming in a hard real-time environment.Journal of the ACM,1973,20(1):46–61.

6張修棋.基于Linux多核進程調度的研究[碩士學位論文].成都:電子科技大學,2012.

7張曉龍.實時系統性能測試方法的研究及應用[碩士學位論文].北京:中國科學院大學,2014.

8姚鑫驊,潘雪增,傅建中,陳子辰.數控系統的混合任務模型及其最優調度算法研究.浙江大學學報,2006,40(8):1315–1319.

9王濤,王太勇,許愛芬,趙麗,楊潔.嵌入式實時操作系統在數控系統設計中的應用.計算機工程,2008,34(4):250,251,268.

10金中波,張百臣,韓霞,代洪慶.逐點比較法直線插補原理及其改進算法分析.機械工程師,2009,3:126–128.

11 Laplante PA,Ovaska SJ.Real-Time Systems Design and Analysis.IEEE Press,2012:237–253.

12韓守謙,裴海龍,王清陽.基于Xenomai的實時嵌入式Linux操作系統的構建.計算機工程與設計,2011,32(1):96–98,102.

13 Zheng YH,Wang P,Lu XH.CNC Software architecture design based on dual-core CPU platform.Modular Machine Tool&AutomaticManufacturingTechnique,2013,(8):62–65.

Real-Time Performance of CNC System Based on Multi-CoreARM

WANG Ying-Hui1,2,GUO Rui-Feng2,HAN Wei-Guang2,YIN Zhen-Yu2,DENG Chang-Yi1,2,PENG A-Zhen1,2,WU Hao-Tian1,2

1(University of ChineseAcademy of Sciences,Beijing 100049,China)

2(Shenyang Institute of Computing Technology,ChineseAcademy of Sciences,Shenyang 110168,China)

With the continuous development of computer numerical control(CNC)system,there are higher requirements of accuracy and speed for CNC system,which brings grave challenge for the current most widely used single-core processor platform.In this paper,based on isomorphic quad core ARM processor platform which is under the Linux system environment with the real-time patch,according to the characteristic of hard real-time tasks,soft real-time tasks and non real-time tasks running parallel in the CNC system,the CNC system tasks are distributed to multi-core ARM reasonably.The improved RM algorithm is used to schedule.Finally execute the real-time performance test for the new scheduling algorithm.This scheduling model can solve the problems of mixed tasks scheduling of CNC system admirably,can well meet the real-time requirement of real-time control of CNC system.

multi-coreARM;real-time scheduling algorithm;rate-monotonic scheduling algorithm;IRM algorithm

國家科技重大專項(2014ZX04009031)

2016-08-03;收到修改稿時間:2016-09-05

10.15888/j.cnki.csa.005714

猜你喜歡
任務調度數控系統實時性
基于生產函數的云計算QoS任務調度算法
基于動態能量感知的云計算任務調度模型
航空電子AFDX與AVB傳輸實時性抗干擾對比
計算機控制系統實時性的提高策略
基于以太網的計算機與數控系統通信技術研究
可編程控制器的實時處理器的研究
華中數控在CIMT 2015上展示3C鉆攻生產線
基于HMS的任務資源分配問題的研究
基于混合粒子群算法的云計算任務調度研究
基于Windows的線接觸加工數控系統實時性研究
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合