[發明專利]用于多核/眾核可編程邏輯控制器的時間裕隙應用流水線平衡有效
| 申請號: | 201380026256.3 | 申請日: | 2013-04-19 |
| 公開(公告)號: | CN104321747B | 公開(公告)日: | 2017-11-17 |
| 發明(設計)人: | A.馬丁內斯卡內多;T.費克廷格;M.A.阿爾法魯奎 | 申請(專利權)人: | 西門子公司 |
| 主分類號: | G06F9/45 | 分類號: | G06F9/45 |
| 代理公司: | 北京市柳沈律師事務所11105 | 代理人: | 謝強,熊雪梅 |
| 地址: | 美國新*** | 國省代碼: | 暫無信息 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 用于 多核 可編程 邏輯 控制器 時間 應用 流水線 平衡 | ||
相關申請的交叉引用
本申請要求以Canedo等人于2012年4月19日提交的、美國臨時申請序號為61/635355、名稱為“Time Slack Application Pipeline Balancing for Multi-、Many-Core PLCs”的申請為優先權,該申請的全部內容在此以引用方式并入本文。
技術領域
本申請針對用于多核/眾核可編程邏輯控制器(PLC)的流水線(pipeline)平衡的方法。
背景技術
流水線操作是一種并行執行技術,其允許程序的不同迭代在多處理單元中、或在多核/眾核處理單元的多處理器核中并行地執行。流水線操作能成功地應用于PLC,以改進用戶程序的掃描周期時間。
將一個應用流水線化,要求多核/眾核處理器中的處理器核被高度利用,即使沒有任何有用的計算正在執行亦然如此。這是因為流水線中的階段(stage)典型地通過先進/先出(FIFO)隊列去耦(decouped),而使用者(consumers)(讀或從隊列中清除(de-queues))典型用忙等待循環實現,這消耗了可用CPU周期,同時,強制其它線程諸如系統服務競爭這些資源。系統服務包括但并不局限于TCP/IP或Profinet中的高優先級通信堆棧、人機接口(HMI)、以及告警/中斷處理程序。
將程序劃分為N個流水線階段需要一種算法,該算法對用戶程序執行時序分析,以計算數據流圖中適當的切入點(cut-points),其建立約含有相同工作負荷的N個階段。流水線操作減少了掃描周期時間(scan cycle time),因為程序的多次迭代在時間上的重疊提高了輸入和輸出對傳感器和執行元件進行讀/寫的頻率。
現行系統關注于將用戶程序的執行分開在N個核中,而系統級線程在不同的M個核中,其中N+M是PLC中可用核的總數。
雖然流水線操作劃分算法建立了良好平衡的階段,但工作負荷是不同的。這是因為這些算法依賴于靜態時序分析,其并未準確反映執行的運行時變化(分支預測、亂序執行(out-of-order execution)、存儲器訪問等)。短階段與最長階段、即關鍵路徑(critical path)之間的時間差典型用浪費寶貴CPU周期的忙等待循環填充。
圖1圖示給定用戶程序如何能劃分成良好平衡但并不相同的三個階段A、B、C?,F在參見該圖,提供程序的源代碼101,作為用于可編程邏輯控制器(PLC)103諸如IEC 61131-3PLC的編譯器、以及給時序分析程序103的輸入。應當注意到,在有些實施例中,時序分析可以包括有編譯器。然后,編譯器102和時序分析程序103的輸出,連同程序應當劃分成的階段數N 104一起,作為輸入提供給對程序進行劃分的流水線算法105。在此示范性而非限制性的示例中,流水線算法將程序劃分成四核處理器中的三個階段:階段A、階段B、階段C。關鍵路徑、即階段C是51毫秒,同時,階段A是45毫秒,而階段B是42毫秒。相對于關鍵路徑這是6毫秒和9毫秒的差。在運行時,階段A在核0中執行,階段B在核1中執行,以及,階段C在核2中執行。注意,系統服務諸如TCP/IP和HMI被分派至核3,并且,此CPU在兩個系統服務之間是分時的。箭頭109、110、112、113代表處理器間通信隊列,諸如,例如,輸入至第一階段、即階段A,以及,由其提供一個階段的輸出作為用于下一階段的輸入。對流水線操作進行充分利用的運行時環境具有51毫秒的掃描周期時間,其相當于關鍵路徑的長度。在單處理器中執行的相同程序,掃描周期時間是階段A、B、C的執行時間的總和(45毫秒+42毫秒+51毫秒=138毫秒),與之相比,在掃描周期時間上是約3倍的減少。
然而,注意階段A和階段B短于關鍵路徑。在每次迭代中,較短階段花費一些時間在浪費寶貴CPU資源的忙等待循環111中。在此特定示例中,階段A每次迭代花費6毫秒,而階段B每次迭代花費9毫秒。
短語“時間裕隙(time slack)”用來指浪費在忙等待循環或類似實現中的較短流水線階段上用于等待數據信號以觸發其計算的時間。
通過將用戶程序的執行和系統服務限制至特定數量的核,不同組的核中執行的劃分可能限制PLC上的性能改善。這是不合宜的,因為,在許多情況下,用戶程序和系統服務都可能從使用系統中所有核的方面獲益。另外,這要求在運行時間之前也就是在編譯時執行劃分。
發明內容
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于西門子公司,未經西門子公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201380026256.3/2.html,轉載請聲明來源鉆瓜專利網。





