用于周期控制系統(tǒng)的流水線操作的制作方法
【專利說明】用于周期控制系統(tǒng)的流水線操作
[0001]對(duì)相關(guān)申請(qǐng)的交叉引用
[0002]本申請(qǐng)要求2012年8月2日提交的美國臨時(shí)申請(qǐng)61/678,736的優(yōu)先權(quán),其公開內(nèi)容通過引用包含于此。
技術(shù)領(lǐng)域
[0003]本公開大致涉及周期控制系統(tǒng),并且更確切而言涉及用于改進(jìn)周期控制系統(tǒng)的運(yùn)行的流水線操作技術(shù)。
【背景技術(shù)】
[0004]周期控制系統(tǒng)是制藥、制造、能源和自動(dòng)化工業(yè)中的硬實(shí)時(shí)系統(tǒng),其設(shè)計(jì)用于通過傳感器和執(zhí)行器與控制物理過程交互。受控制和信息理論啟發(fā),大多周期控制系統(tǒng)按周期(循環(huán)地)運(yùn)行應(yīng)用。掃描時(shí)間(也已知為采樣率)指的是這樣的時(shí)期,在該時(shí)期中期望系統(tǒng)⑴讀取受控系統(tǒng)的狀態(tài),⑵計(jì)算用于將系統(tǒng)置于目標(biāo)狀態(tài)的校正,以及⑶發(fā)送校正命令。
[0005]過去,周期控制系統(tǒng)利用更快的單處理器的優(yōu)點(diǎn)來運(yùn)行軟件中的更多功能和降低掃描周期時(shí)間以利于控制算法。因?yàn)閼?yīng)用的整個(gè)工作負(fù)荷在單個(gè)CPU中運(yùn)行,所以需要開發(fā)出復(fù)雜的優(yōu)先調(diào)度算法來保證這些系統(tǒng)的實(shí)時(shí)響應(yīng)。嵌入式處理器標(biāo)記將多核技術(shù)推向工業(yè)自動(dòng)化領(lǐng)域。這對(duì)于研宄者和實(shí)踐者激發(fā)了研宄多核周期控制系統(tǒng)提供的性能、能量效率、可縮放性、合并和冗余之益處的機(jī)會(huì)。
【發(fā)明內(nèi)容】
[0006]根據(jù)本發(fā)明的一個(gè)示例性實(shí)施例,一種管理控制系統(tǒng)的方法包括:在第一時(shí)期中,在多核計(jì)算機(jī)系統(tǒng)的第一處理器核中運(yùn)行程序的第一迭代,其中該程序從共享存儲(chǔ)器讀取至控制系統(tǒng)的輸入和來自程序的早先迭代的輸出,以生成新的輸出;在與第一時(shí)期重疊的第二時(shí)期中在所述多核計(jì)算機(jī)系統(tǒng)的第二處理器核中運(yùn)行所述程序的第二迭代;以及利用這些迭代的輸出來控制該控制系統(tǒng),其中,所述程序?qū)蚕泶鎯?chǔ)器的讀取和寫入操作是原子的。
[0007]在一個(gè)示例性實(shí)施例中,在第一迭代期間,程序?qū)ζ漭斎脒M(jìn)行計(jì)算,以算出一個(gè)值和將該值存儲(chǔ)在共享存儲(chǔ)器的一個(gè)變量中,并且在第二迭代期間,直至程序在第一迭代中完成了對(duì)該值的存儲(chǔ),程序才能夠讀取該變量。
[0008]在一個(gè)示例性實(shí)施例中,控制系統(tǒng)包括將輸入提供給共享存儲(chǔ)器的物理傳感器。
[0009]在一個(gè)示例性實(shí)施例中,控制系統(tǒng)包括物理執(zhí)行器,并且迭代的輸出被用于控制該執(zhí)行器。
[0010]在一個(gè)示例性實(shí)施例中,在使用之前,該方法還包括在與第二時(shí)期重疊的第一時(shí)期之后的第三時(shí)期中,在多核系統(tǒng)的第一處理器核中運(yùn)行程序的第三迭代(例如當(dāng)存在至少兩個(gè)核時(shí))。然而,如果存在附加的核,則第三迭代可以在第三處理器核中運(yùn)行。
[0011]例如,在一個(gè)示例性實(shí)施例中,在使用之前,該方法還包括在與第二時(shí)期重疊的第一時(shí)期之后的第三時(shí)期中,在多核系統(tǒng)的第三處理核中運(yùn)行程序的第三迭代。該方法還可以向上縮放至任意數(shù)量的處理核。
[0012]根據(jù)本發(fā)明的一個(gè)示例性實(shí)施例,管理控制系統(tǒng)的方法包括:在多核計(jì)算機(jī)系統(tǒng)的第一處理器核中起動(dòng)程序的第一迭代,其中程序從存儲(chǔ)器讀取至控制系統(tǒng)的輸入和來自程序的早先迭代的輸出,以生成新的輸出:在遇到對(duì)允許進(jìn)行程序的下一迭代進(jìn)行指示的標(biāo)記指令的情況下,第一迭代的程序生成事件;響應(yīng)于對(duì)該事件的接收,在多核計(jì)算機(jī)系統(tǒng)的第二處理器核中起動(dòng)程序的第二迭代;并且利用這些迭代的輸出來控制該控制系統(tǒng)。
[0013]在一個(gè)示例性實(shí)施例中,生成事件包括發(fā)送該系統(tǒng)的操作系統(tǒng)的事件處置器的計(jì)算機(jī)消息。在一個(gè)示例性實(shí)施例中,響應(yīng)于對(duì)該計(jì)算機(jī)消息的接收,該事件處置器起動(dòng)程序的第二迭代的運(yùn)行。
[0014]在一個(gè)示例性實(shí)施例中,在使用之前,該方法還包括:在遇到標(biāo)記指令的情況下,第二迭代的程序生成第二事件;以及,響應(yīng)于對(duì)第二事件的接收,在所述第一處理器核中起動(dòng)程序的第三迭代的運(yùn)行。
[0015]在一個(gè)示例性實(shí)施例中,在使用之前,該方法還包括:在遇到標(biāo)記指令的情況下,第二迭代的程序生成第二事件;以及,響應(yīng)于對(duì)第二事件的接收,在多核系統(tǒng)的第三處理器核中起動(dòng)程序的第三迭代的運(yùn)行。
[0016]根據(jù)本發(fā)明的一個(gè)示例性實(shí)施例,管理控制系統(tǒng)的方法包括:在第一時(shí)期中在多核系統(tǒng)的第一處理器核中運(yùn)行程序的第一迭代,其中程序從存儲(chǔ)器讀取至控制系統(tǒng)的輸入和來自程序的早先迭代的輸出,以生成新的輸出;在與第一時(shí)期重疊的第二時(shí)期中,在多核系統(tǒng)的第二處理器核中運(yùn)行程序的第二迭代;確定在迭代中是否發(fā)生了數(shù)據(jù)相關(guān)性違背;以及,如果發(fā)生了違背,則利用第一迭代的輸出控制該控制系統(tǒng)。
[0017]在一個(gè)示例性實(shí)施例中,該方法還包括,如果發(fā)生了違背,在第二處理器核中停止和重新起動(dòng)第二迭代。在一個(gè)示例性實(shí)施例中,該方法還包括,在重新起動(dòng)第二迭代之后,在多核系統(tǒng)的第一處理器核或第三處理器核中起動(dòng)程序的第三迭代。
[0018]在一個(gè)示例性實(shí)施例中,違背的判斷包括,預(yù)測(cè)第二迭代的利用變量的計(jì)算是否將在調(diào)度第一迭代以更新該變量之前發(fā)生。
【附圖說明】
[0019]本公開的示例性實(shí)施例將根據(jù)下面結(jié)合附圖的描述而被更詳細(xì)地理解,其中:
[0020]圖1示出了可以被用于存儲(chǔ)控制系統(tǒng)的輸入和輸出數(shù)據(jù)的存儲(chǔ)器的一個(gè)示例。
[0021]圖2示出了根據(jù)本發(fā)明的一個(gè)示例性實(shí)施例的流水線操作策略。
[0022]圖3示出了根據(jù)本發(fā)明的一個(gè)示例性實(shí)施例的流水線操作策略。
[0023]圖4示出了根據(jù)本發(fā)明的一個(gè)示例性實(shí)施例的流水線操作策略。
[0024]圖5示出了根據(jù)本發(fā)明的一個(gè)示例性實(shí)施例的流水線操作策略。
[0025]圖6示出了循環(huán)控制程序中的數(shù)據(jù)相關(guān)性的一個(gè)示例性分布。
[0026]圖7示出了被過度和不足利用的多核的一個(gè)示例。
[0027]圖8示出了根據(jù)本發(fā)明的一個(gè)示例性實(shí)施例的流水線操作策略。
[0028]圖9示出了根據(jù)本發(fā)明的一個(gè)示例性實(shí)施例的流水線操作策略。
[0029]圖10示出了根據(jù)本發(fā)明的一個(gè)示例性實(shí)施例的流水線操作策略。
[0030]圖11示出了根據(jù)本發(fā)明的一個(gè)示例性實(shí)施例的流水線操作策略。
[0031]圖12根據(jù)本發(fā)明的一個(gè)示例性實(shí)施例示出了被用于控制一個(gè)迭代中由程序讀取/寫入數(shù)據(jù)的位置的參數(shù)。
[0032]圖13A-D示出了根據(jù)本發(fā)明的示例性實(shí)施例的流水線操作策略。
[0033]圖14示出了根據(jù)本發(fā)明的示例性實(shí)施例的流水線操作策略。
[0034]圖15示出了根據(jù)本發(fā)明的一個(gè)示例性的用于控制控制系統(tǒng)的方法。
[0035]圖16示出了根據(jù)本發(fā)明的一個(gè)示例性的用于控制控制系統(tǒng)的方法。
[0036]圖17示出了根據(jù)本發(fā)明的一個(gè)示例性的用于控制控制系統(tǒng)的方法。
[0037]圖18示出了能夠?qū)崿F(xiàn)根據(jù)本公開的實(shí)施例的方法和系統(tǒng)的計(jì)算機(jī)系統(tǒng)的一個(gè)示例。
【具體實(shí)施方式】
[0038]下面參考圖1-18詳細(xì)討論本發(fā)明的示例性實(shí)施例。然而,本發(fā)明可以按照不同形式實(shí)現(xiàn)并且不應(yīng)被理解為限于在此闡述的實(shí)施例。
[0039]應(yīng)理解的是,在此描述的系統(tǒng)和方法可以按照硬件、軟件、固件、特殊用途處理器或其組合的各種形式來實(shí)現(xiàn)。尤其,本發(fā)明的至少一部分可以被實(shí)現(xiàn)為包括程序指令的應(yīng)用程序,這些程序指令被有形地實(shí)現(xiàn)在一個(gè)或多個(gè)程序存儲(chǔ)設(shè)備(例如硬盤、軟磁盤、RAM、ROM、⑶ROM等)上,并且可以由包括合適架構(gòu)的任意設(shè)備運(yùn)行,諸如具有處理器、存儲(chǔ)器和輸入/輸出接口的通用數(shù)字計(jì)算機(jī)。還應(yīng)理解的是,因?yàn)楦綀D中描繪的子系統(tǒng)部件和過程步驟中的一些可以以軟件實(shí)現(xiàn),所以系統(tǒng)模塊之間的聯(lián)系(或者方法步驟的邏輯流程)可以根據(jù)本發(fā)明被編程的方式而不同。如果給出在此的教導(dǎo),則本領(lǐng)域一般技術(shù)人員將能夠理解這些和本發(fā)明的類似實(shí)現(xiàn)方案。
[0040]現(xiàn)代控制系統(tǒng)需要足夠快以控制高速物理過程諸如化學(xué)和原子反應(yīng)。周期控制系統(tǒng)的采樣時(shí)間或者I/o同步之間的頻率被已知為掃描周期時(shí)間,并且其是一個(gè)重要的度量標(biāo)準(zhǔn),因?yàn)槠湟?guī)定了成本和最終控制系