專利名稱:并行程控的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種控制方法以及ー種用于在并行操作的多個(gè)處理単元上執(zhí)行多個(gè)程序的方法。
背景技術(shù):
機(jī)器以及設(shè)備?;诳蓮拇鎯?chǔ)器編程的控制系統(tǒng)(SPS)來(lái)控制。為了此目的,微型計(jì)算器通常用以執(zhí)行檢索分別連接至該機(jī)器或設(shè)備的一些傳感器狀態(tài)的程序,并基于所確定的狀態(tài)而分別接入連接至該機(jī)器或設(shè)備的一些執(zhí)行器。復(fù)雜的機(jī)器或設(shè)備分別可包含多個(gè)傳感器以及執(zhí)行器,并對(duì)于微型計(jì)算器的性能具有高需求。為了分別控制機(jī)器或設(shè)備,微型計(jì)算器常并行地執(zhí)行ー些程序。該程序可彼此交 互作用,或彼此獨(dú)立。例如,當(dāng)涉及對(duì)于傳感器的狀態(tài)改變或?qū)τ趥鞲衅鞯娜宇l率、或當(dāng)情況可能為對(duì)于輸出執(zhí)行器值的最小保證反應(yīng)時(shí)間時(shí),不同的程序?qū)τ谖⑿陀?jì)算器有不同的需求。上至某種程度,利用在微型計(jì)算器中計(jì)時(shí)較快的微處理器可滿足對(duì)于控制系統(tǒng)的所增加需求。然而,由于物理?xiàng)l件,這種能力增強(qiáng)不能如所想要的増加,以至于目前的微處理器主要依賴幾個(gè)并行操作的計(jì)算核心,以增加它們的能力。在過(guò)去所使用只利用ー個(gè)計(jì)算核心來(lái)控制用于控制機(jī)器的數(shù)個(gè)程序的定義順序的方法幾乎不適合用于將程序分配至多個(gè)計(jì)算核心。DE 196 48 422 C2提出利用時(shí)間片段控制而將計(jì)算核心的可用計(jì)算時(shí)間交替地分配至用于控制這種機(jī)器的有實(shí)時(shí)能力的程序以及非有實(shí)時(shí)能力的操作系統(tǒng)。所提出的時(shí)間片段控制是利用可編程定時(shí)器來(lái)控制,該可編程定時(shí)器在預(yù)定義的時(shí)間量到期之后在該計(jì)算核心中導(dǎo)致中斷(INT)。獨(dú)立于分配至該操作系統(tǒng)的計(jì)算時(shí)間,可確定分配至該操作系統(tǒng)的計(jì)算時(shí)間。基于本發(fā)明的目的是提供ー種方法以及ー種系統(tǒng),以在并行操作的多個(gè)處理単元上執(zhí)行用于控制機(jī)器的數(shù)個(gè)程序。
發(fā)明內(nèi)容
利用包含權(quán)利要求I的特征的控制方法,以及利用包含權(quán)利要求12的特征的系統(tǒng)來(lái)解決本發(fā)明的目的。在從屬權(quán)利要求中指出了本發(fā)明的有利具體實(shí)施例。在第一具體實(shí)施例中,時(shí)間信號(hào)產(chǎn)生器被指派至并行操作的多個(gè)處理単元的每ー個(gè),當(dāng)該時(shí)間信號(hào)產(chǎn)生器到期時(shí),在所指派的處理單元上執(zhí)行用于執(zhí)行程序的控制過(guò)程。在此上下文中,該控制方法包含下述步驟選擇可用于在該處理單元上執(zhí)行的程序、將到期的時(shí)間信號(hào)產(chǎn)生器設(shè)定至預(yù)定義的時(shí)間持續(xù)期間、以及在該處理単元上開始所選擇的程序。如此ー來(lái),可達(dá)成在時(shí)間信號(hào)產(chǎn)生器所控制的時(shí)間持續(xù)期間到期之后,在處理單元上分別接入控制方法,在該處理単元上被執(zhí)行的程序的改變將被控制。因此,可使用包含多個(gè)處理単元的常規(guī)微處理器,其中前提是程序只可利用控制指令而在該微處理器的其中一個(gè)處理単元上初始化,該控制指令在所述處理単元上執(zhí)行。特別是,包含多個(gè)計(jì)算核心的x86型微處理器以這種方式配置,且可有利地被使用,以執(zhí)行該控制方法。根據(jù)常規(guī)的方法,為了利用在微處理器的第二處理單元上執(zhí)行的控制程序來(lái)控制該微處理器的第一處理單元上的程序初始化,需要許多時(shí)間以及努力,其通常需要在該第一處理單元上開始另一個(gè)控制程序以及該兩個(gè)控制程序之間的通信。由干與其涉及的同步化努力,兩個(gè)處理單元將不可用于執(zhí)行該微處理器的其它程序達(dá)相當(dāng)長(zhǎng)的時(shí)間持續(xù)期間;因此,并非該微處理器的全部計(jì)算能力都可被使用??捎糜趫?zhí)行的程序可具有實(shí)時(shí)能力,且此外,可提供非有實(shí)時(shí)能力的操作系統(tǒng)用于計(jì)算核心中的執(zhí)行。當(dāng)在相同的處理單元上連續(xù)地執(zhí)行控制方法時(shí),可交替地選擇該有實(shí)時(shí)能力的程序以及非有實(shí)時(shí)能力的操作系統(tǒng)。通過(guò)相應(yīng)地選擇時(shí)間信號(hào)產(chǎn)生器設(shè)定成的預(yù)定義的時(shí)間持續(xù)期間,時(shí)間的持續(xù)期間可被分別指派至所選擇的程序或操作系統(tǒng),在這期間,處理単元可分別由該程序或操作系統(tǒng)使用。因此,一旦其已被接入,可影響接入該程序的間隔、程序用于其執(zhí)行的最大等待 時(shí)間以及多少計(jì)算時(shí)間是在該程序的配置。并行于該程序的執(zhí)行,非有實(shí)時(shí)能力的操作系統(tǒng)可用于執(zhí)行標(biāo)準(zhǔn)工作,例如,分別輸入或輸出程序數(shù)據(jù)至硬盤或顯示器上。該操作系統(tǒng)或分別被其控制的程序可在一個(gè)或數(shù)個(gè)計(jì)算核心上并行執(zhí)行??稍谧杂傻慕缦迌?nèi)無(wú)限制地設(shè)定時(shí)間的持續(xù)期間。操作系統(tǒng)以及有實(shí)時(shí)能力的程序的預(yù)定義的時(shí)間持續(xù)期間可將彼此補(bǔ)足,以產(chǎn)生指派至處理單元的周期時(shí)間。不同的處理單元可包含不同的相關(guān)周期時(shí)間。周期時(shí)間被分配至該操作系統(tǒng)以及該有實(shí)時(shí)能力的程序的比例可,例如,基于參數(shù)來(lái)修改。此參數(shù)可分別在該處理單元或微處理器的操作期間修改,以考慮到由該程控的機(jī)器的可變負(fù)載條件。在將到期的時(shí)間信號(hào)產(chǎn)生器設(shè)定至預(yù)定的時(shí)間持續(xù)期間之前,該預(yù)定的時(shí)間持續(xù)期間能以該時(shí)間持續(xù)期間的調(diào)度結(jié)束自不同處理單元的時(shí)間信號(hào)產(chǎn)生器的調(diào)度到期起不偏移少于預(yù)定義的時(shí)間持續(xù)期間的如此方式而被適配(adapted)。因此可保護(hù)控制方法不在相同的時(shí)間被多于ー個(gè)處理單元接入的情況。如果控制程序執(zhí)行用于在多個(gè)處理単元上協(xié)調(diào)ー些程序所需并排除數(shù)個(gè)控制程序情況同時(shí)發(fā)生的進(jìn)ー步工作時(shí),這是特別有利的。這種工作可,例如,包含分別將共享的資源指派至該程序或該操作系統(tǒng),或控制程序之間的通信。通過(guò)如所述來(lái)調(diào)整預(yù)定義的時(shí)間持續(xù)期間,可通過(guò)避免處理單元必須在執(zhí)行控制程序之前等待來(lái)最大化處理單元的總輸出。調(diào)整可通過(guò)調(diào)度的時(shí)間持續(xù)期間的一次修改而生效;或者,可修改指派至該程序的預(yù)定義時(shí)間持續(xù)期間,以至于該調(diào)整在所有隨后的程序接入中生效。相關(guān)計(jì)算核心的周期時(shí)間可因此改變,以至于與其它處理単元的周期的沖突一直較少發(fā)生。特別是可因此避免結(jié)束周期性地抵觸的周期時(shí)間(使得每個(gè)單一情況中的調(diào)整較不可能發(fā)生)。在進(jìn)ー步的具體實(shí)施例中,控制方法可包含避免進(jìn)ー步接入該控制方法的先前步驟以及能夠進(jìn)一歩接入該控制方法的結(jié)束步驟。如果該控制方法將不在多個(gè)處理単元上并行執(zhí)行,如上所述,這些步驟可作為對(duì)于處理錯(cuò)誤的額外保護(hù)。由于控制程序在同時(shí)因此產(chǎn)生的多重可接入性,例如,可基于以關(guān)于時(shí)間信號(hào)產(chǎn)生器異步的方式發(fā)生的事件來(lái)接入該控制程序,例如通過(guò)主動(dòng)地接入在處理單元上執(zhí)行的程序。可將列表指派至每個(gè)處理單元,其中列出了可用于在所述處理単元上執(zhí)行的程序。然后在所述列表上的項(xiàng)目下進(jìn)行選擇該程序。因此,単獨(dú)的程序可被指派至特定的處理單元。優(yōu)選地用以并行執(zhí)行的程序可被指派至不同的處理單元,而優(yōu)選地用于以連續(xù)方法執(zhí)行的程序可被指派至相同的處理單元。以此方式,可將,例如由一些程控的機(jī)器所造成的程序之間的依賴列入考慮。使用處理單元的程序分配可由用戶執(zhí)行,以至于可使用該用戶的系統(tǒng)知識(shí);在進(jìn)一歩的具體實(shí)施例中,可利用該控制程序來(lái)執(zhí)行該分配,其中該控制程序例如使用至少ー個(gè)處理単元的先前容量利用作為用于該分配的確定性基礎(chǔ)。利用通過(guò)該控制程序的該分配,可達(dá)成一致該處理単元的均勻容量利用。此外可能分別部分或完全地將處理単元的其中ー個(gè)免除來(lái)執(zhí)行程序或免除該操作系統(tǒng),以至于可將該處理単元設(shè)定成節(jié)能模式。列表中程序的項(xiàng)目可包含該程序的優(yōu)先性,且可基于該優(yōu)先性來(lái)執(zhí)行選擇該程序。因此使得高優(yōu)先性的程序從計(jì)算核心擠出低優(yōu)先性的程序變得可能。通過(guò)將優(yōu)先性列入考慮,被控制機(jī)器的時(shí)間規(guī)則可遵從因此可能增加控制系統(tǒng)的彈性以及可靠性。由于只針對(duì)各自的計(jì)算核心來(lái)局部地評(píng)估列表,可在不同的計(jì)算核心上同時(shí)執(zhí)行具有不同優(yōu)先性的程序??刂品椒稍跒殡娮佑?jì)算器程序產(chǎn)品形式的電子計(jì)算器系統(tǒng)上執(zhí)行,或儲(chǔ)存在電子計(jì)算器可讀取的記錄裝置上。根據(jù)第二具體實(shí)施例,用于執(zhí)行一些程序的系統(tǒng)包含多個(gè)處理単元、與每個(gè)處理単元相關(guān)聯(lián)的時(shí)間信號(hào)產(chǎn)生器以及上述控制方法。該處理単元可包含在集成電路中。特別是,該處理單元可包含計(jì)算核心(核心)或虛擬計(jì)算核心(像是用于例如超執(zhí)行緒程(hyper-threading))。因此,用途可由在該集成電路上該處理單元的緊密型連接來(lái)構(gòu)成,以至于例如可利用連接彼此的多個(gè)程序來(lái)更有效率地完成復(fù)雜技術(shù)設(shè)備的控制??蓪r(shí)間信號(hào)產(chǎn)生器實(shí)施為在時(shí)鐘信號(hào)上操作的計(jì)數(shù)器,其中一旦該計(jì)數(shù)器達(dá)到預(yù)定的值時(shí),每個(gè)計(jì)數(shù)器在其相關(guān)聯(lián)的處理單元中導(dǎo)致中斷(INT)。特別是,該計(jì)數(shù)器可倒數(shù),且該預(yù)定的值可為零。這種計(jì)數(shù)器已在現(xiàn)有包含多個(gè)處理単元的微處理器中被提供。每個(gè)計(jì)數(shù)器可包含可編程的除法器,用于將對(duì)于每個(gè)計(jì)數(shù)器相同的系統(tǒng)時(shí)鐘分成指派至該計(jì)數(shù)器的時(shí)鐘信號(hào)。利用這個(gè),所有的時(shí)間持續(xù)期間衍生自相同的時(shí)間基礎(chǔ),且具有已知關(guān)于彼此的比例。通過(guò)選擇計(jì)數(shù)器所設(shè)定成的值,以及通過(guò)相應(yīng)地編程相關(guān)聯(lián)的除法器,可在自由的界限內(nèi)設(shè)定該計(jì)數(shù)器的時(shí)間持續(xù)期間,以至于可實(shí)現(xiàn)用于處理具有強(qiáng)烈不同需求的程序的有弾性系統(tǒng)。
在下述中,將參照伴隨的附圖來(lái)更詳細(xì)地描述本發(fā)明,其中圖I示出了受控制的技術(shù)設(shè)備的示意概圖;圖2示出了圖I的處理器的示意圖;圖3描繪了用于在圖2的處理器上執(zhí)行的方法的流程圖; 圖4示出了用于圖3方法的示范性過(guò)程表;以及圖5描繪了用于預(yù)防在圖2的處理器上設(shè)定的時(shí)間持續(xù)期間結(jié)束的沖突的各種啟發(fā)法。
具體實(shí)施例方式圖I示出了受控制的技術(shù)設(shè)備100的示意概圖。該受控制的技術(shù)設(shè)備100包含以已知方式連接至主存儲(chǔ)器120、只讀存儲(chǔ)器130、顯示器140以及輸入裝置150的微型計(jì)算器110。該微型計(jì)算器110通常包含至少ー微處理器(處理器,中央處理單元,CPU)以及各種額外的組件,例如電壓供應(yīng)器以及至該主存儲(chǔ)器120以及至該只讀存儲(chǔ)器130的接ロ。提供該顯示器140以及該輸入裝置150以允許用戶操作該微型計(jì)算器110。利用經(jīng)由網(wǎng)絡(luò)的接ロ以 及連接至該接ロ的進(jìn)ー步的電子計(jì)算器系統(tǒng),可隨選地或額外地實(shí)現(xiàn)該微型計(jì)算器110的用途。在ー個(gè)具體實(shí)施例中,可相應(yīng)地忽略該顯示器140以及該輸入裝置150。制造機(jī)器160包含連接至傳感器接ロ 170的多個(gè)傳感器165,以及連接至執(zhí)行器接ロ 180的多個(gè)執(zhí)行器175。每個(gè)該接ロ 170以及180連接至該微型計(jì)算器110。可提供有實(shí)時(shí)能力的網(wǎng)絡(luò),以分別將該傳感器165連接至該傳感器接ロ 170,或?qū)⒃搱?zhí)行器175連接至該執(zhí)行器接ロ 180,及/或?qū)⒃摻鹰?170以及180連接至該微型計(jì)算器110,例如EtherCat。所描繪的制造機(jī)器160代表了由微型計(jì)算器110控制的任何想要的機(jī)器或設(shè)備。該制造機(jī)器160可,例如為CNC機(jī)器工具或用于制造鋼板的軋板機(jī)。在替代的具體實(shí)施例中,可包含少于所描繪的傳感器165及/或執(zhí)行器175。該傳感器165可為模擬及/或數(shù)字傳感器,例如為路徑傳感器、光傳感器、溫度傳感器、速度傳感器、聲波或其它傳感器的形式。在復(fù)雜的制造機(jī)器160中,傳感器165的數(shù)目可多于100。該執(zhí)行器175可實(shí)現(xiàn)模擬及/或數(shù)字執(zhí)行器值,例如以閥、驅(qū)動(dòng)器、光以及溫度控制以及其它執(zhí)行器的形式。復(fù)雜的制造機(jī)器160可包含用于控制80個(gè)軸或更多個(gè)的執(zhí)行器。由組件110-150組成的電子計(jì)算器系統(tǒng)取樣傳感器165,并取決于所取樣的值來(lái)控制執(zhí)行器175。取決于制造機(jī)器160的配置,在該電子計(jì)算器系統(tǒng)110-150上執(zhí)行ー或數(shù)個(gè)程序,以確定該執(zhí)行器175的活化。圖2示出了圖I的微型計(jì)算器110的處理器200的示意圖。該處理器200包含外殼210,其中配置了四個(gè)計(jì)算核心C0-C3。在其它的具體實(shí)施例中,該處理器200可包含不同的數(shù)量的計(jì)算核心C0-C3,在處理器200中計(jì)算核心C0-C3的典型數(shù)目為2、4、8、16或32。對(duì)于該處理器200中的計(jì)算核心C0-C3沒有上限;此外,該處理器200中計(jì)算核心C0-C3的數(shù)目不一定必須為ニ的次方。該計(jì)算核心C0-C3可在該處理器200中被物理地實(shí)施,或由虛擬技木,例如超執(zhí)行緒程,來(lái)提供。每個(gè)該計(jì)算核心C0-C3連接至指派至它的計(jì)數(shù)器T0-T3,該計(jì)數(shù)器隨后連接至指派至它的除法器D0-D3。所有的除法器D0-D3連接至共享的時(shí)鐘產(chǎn)生器220。該時(shí)鐘產(chǎn)生器220可,例如位在圖I的微型計(jì)算器110中,或在替代的具體實(shí)施例中,在該處理器200的該外殼210內(nèi)。在優(yōu)選的具體實(shí)施例中,用于脈沖該計(jì)算核心C0-C3的時(shí)鐘信號(hào)以及由該時(shí)鐘產(chǎn)生器220提供的時(shí)鐘信號(hào)衍生自共享的時(shí)鐘信號(hào)。每個(gè)計(jì)算核心C0-C3可使用寫入操作以及優(yōu)選地也以讀取操作來(lái)接入D0-D3指派至它的計(jì)數(shù)器T0-T3以及該除法器。利用由所指派的計(jì)算核心C0-C3來(lái)執(zhí)行的寫入操作,該除法器D0-D3可被編程成除數(shù),以至于由時(shí)鐘產(chǎn)生器220提供的時(shí)鐘信號(hào)以其頻率被除以所編程的除數(shù),且所產(chǎn)生的時(shí)鐘信號(hào)被提供至各自的計(jì)數(shù)器T0-T3。計(jì)數(shù)器T0-T3為當(dāng)該計(jì)數(shù)器的狀態(tài)到達(dá)零時(shí)在相關(guān)聯(lián)的計(jì)算核心C0-C3中導(dǎo)致中斷的減量器(decrementer)。用以減少的開始點(diǎn)的計(jì)數(shù)器狀態(tài)可被相關(guān)聯(lián)的計(jì)算核心寫入至該計(jì)數(shù)器T0-T3。在優(yōu)選的具體實(shí)施例中,該計(jì)數(shù)器T0-T3也可被相關(guān)聯(lián)的計(jì)算核心停止以及開始。除法器D0-D3以及計(jì)數(shù)器T0-T3與計(jì)算核心C0-C3的關(guān)聯(lián)是透明的,其意指在該計(jì)算核心Cl至C3的其中一個(gè)上執(zhí)行的程序只接入至該除法器D0-D3以及至與該程序正執(zhí)行所在的計(jì)算核心C0-C3相關(guān)聯(lián)的計(jì)數(shù)器T0-T3。對(duì)于所有的計(jì)算核心C0-C3,用于接入相關(guān)聯(lián)的除法器D0-D3以及計(jì)數(shù)器T0-T3的程序指令是相同的。由于處理器200的構(gòu)造,不可能接入不同計(jì)算核心C0-C3的除法器D0-D3或計(jì)數(shù)器T0-T3。如果,例如在計(jì)算核心Cl上執(zhí)行的程序?qū)懭肱c計(jì)算核心CO相關(guān)聯(lián)的計(jì)數(shù)器TO中,在該計(jì)算核心Cl上執(zhí)行的程序必須確保其將在計(jì)算核心改變成在該計(jì)算核心CO上執(zhí)行,或該計(jì)算核心Cl上執(zhí)行的程序必須連絡(luò)在該計(jì)算核心CO上執(zhí)行的另ー個(gè)程序,以至于后者的程序執(zhí)行所想要的至計(jì)數(shù)器TO的接入。 如果在計(jì)算核心C0-C3的其中一個(gè)上發(fā)生了中斷,例如通過(guò)初步地設(shè)定中斷向量而在各自的核心C0-C3上接入控制程序(調(diào)度器),該調(diào)度器選擇將在相應(yīng)的計(jì)算核心C0-C3上執(zhí)行的程序。隨后該控制程序重設(shè)指派的計(jì)數(shù)器T0-T3及/或指派的除法器D0-D3,并開始所選擇的程序。以此方式,實(shí)施了時(shí)間片段機(jī)制,該時(shí)間片段機(jī)制在新的中斷再次接入該控制程序之前只提供有限的計(jì)算時(shí)間至所選擇的程序,且該控制程序檢查哪個(gè)程序?qū)⒃谙率鲋欣^續(xù)。對(duì)于所有的計(jì)算核心C0-C3,控制程序是相同的。因此,該控制程序?qū)⒈黄渲概傻挠?jì)數(shù)器T0-T3最后中斷的計(jì)算核心C0-C3分配至可用的程序以在所述計(jì)算核心C0-C3上執(zhí)行。因此,為了以分配的方式在多個(gè)計(jì)算核心C0-C3上執(zhí)行ー些程序?qū)嵤┝藭r(shí)間片段機(jī)制。通過(guò)選擇將在各自計(jì)算核心C0-C3(控制程序在該計(jì)算核心C0-C3上執(zhí)行)上局部執(zhí)行的程序,該控制程序在所有的計(jì)算核心C0-C3上被有效地執(zhí)行,因此已達(dá)成分配至該計(jì)算核心C0-C3的程序負(fù)載,且不再需要通過(guò)在單ー計(jì)算核心上執(zhí)行的中央控制程序來(lái)控制在處理器200上執(zhí)行的所有程序的復(fù)雜方法。圖3示出了用于在圖I的微型計(jì)算器110中在圖2的處理器200上執(zhí)行的方法300的流程圖。該方法300代表上述參照?qǐng)D2的控制程序(調(diào)度器)的必要步驟。在第一步驟305中,方法300在其初始狀態(tài)中。步驟305是在已接入該方法300之后由該方法300由執(zhí)行的第一個(gè)步驟,例如通過(guò)來(lái)自圖2的計(jì)數(shù)器T0-T3中的其中ー個(gè)的中斷。在后續(xù)的步驟310中,該方法300先阻擋該方法300的進(jìn)ー步接入,以預(yù)防該方法300在多個(gè)該計(jì)算核心C0-C3上并行執(zhí)行的幾個(gè)情況??衫缋靡阎奶幚砥?00的同步化機(jī)制使阻擋生效,例如信號(hào)量(semaphore)或相應(yīng)的寄存器,其被提供以協(xié)調(diào)該計(jì)算核心C0-C3對(duì)不能同時(shí)利用的資源的競(jìng)爭(zhēng)接入。只有在該方法300提供超過(guò)程序至計(jì)算核心C0-C3的分配且妨礙該方法300的并行執(zhí)行的服務(wù)時(shí),才需要服務(wù)步驟310。這種服務(wù)可例如包括專門使用的資源的分配(例如該只讀存儲(chǔ)器130)至在該計(jì)算核心C0-C3上執(zhí)行的程序。對(duì)于至計(jì)算核心C0-C3的程序小量分配,在不同的計(jì)算核心C0-C3上可能允許ー些同時(shí)執(zhí)行的方法300,且不需要步驟310上所描述的阻擋。在隨后的步驟315中,檢查了有實(shí)時(shí)能力的程序或非有實(shí)時(shí)能力的操作系統(tǒng)是否是下ー個(gè)將在各自的計(jì)算核心C0-C3上執(zhí)行。方法300以在相同計(jì)算核心C0-C3上連續(xù)接入該方法300的例子中,該操作系統(tǒng)以及有實(shí)時(shí)能力的程序以替代的方式執(zhí)行之如此方法而被配置。如下更詳細(xì)地參照?qǐng)D4的描述,如果將執(zhí)行有實(shí)時(shí)能力的程序,該方法200分支成步驟320,并從分配至該計(jì)算核心C0-C3的表中選擇項(xiàng)目(該方法300在該計(jì)算核心C0-C3上執(zhí)行),該項(xiàng)目代表可用于在該計(jì)算核心C0-C3上執(zhí)行的潛在的一些程序的其中之
O在隨后的步驟325中,在以時(shí)間控制的方式再次接入方法300之前,確定了將哪個(gè)時(shí)間持續(xù)期間提供至所選擇的程序,以執(zhí)行至計(jì)算核心C0-C3的新程序分配。
然而,如果在步驟315中確定將執(zhí)行操作系統(tǒng),方法300分支成步驟330,并選擇該操作系統(tǒng)作為將執(zhí)行的下ー個(gè)程序。該操作系統(tǒng)可協(xié)調(diào)其它的程序,其至計(jì)算核心C0-C3的其中ー個(gè)的分配不被該方法300控制,但被該操作系統(tǒng)本身控制。取決于該操作系統(tǒng)的這種程序在提供給該操作系統(tǒng)的時(shí)間幀內(nèi)由該方法300的控制程序來(lái)執(zhí)行。類似于上述步驟325中,在隨后的步驟335中確定了哪個(gè)時(shí)間持續(xù)期間被指派至該操作系統(tǒng)用于執(zhí)行。在執(zhí)行步驟325及/或335之后,該方法在步驟340中繼續(xù),該步驟340檢查所定義的時(shí)間持續(xù)期間的結(jié)束是否與定時(shí)器T0-T3其中之一被編程所針對(duì)的不同時(shí)間持續(xù)期間的結(jié)束抵觸。為了此目的,所有計(jì)數(shù)器T0-T3的到期時(shí)間可被儲(chǔ)存在存儲(chǔ)器區(qū)域中,該存儲(chǔ)器區(qū)域可被每個(gè)計(jì)算核心C0-C3接入。在此上下文中,時(shí)間持續(xù)期間的結(jié)束的沖突意指在步驟325或335其中之ー確定的該時(shí)間持續(xù)期間的結(jié)束更接近定時(shí)器T0-T3其中ー個(gè)到期且方法300比已預(yù)定的還早被接入的時(shí)間點(diǎn)。此預(yù)定范圍至少相應(yīng)于該方法300用于一次執(zhí)行通常所需的時(shí)間。如果步驟240確定預(yù)定義的時(shí)間持續(xù)期間的結(jié)束與另ー個(gè)時(shí)間持續(xù)期間沖突,在步驟345中調(diào)整該預(yù)定義的時(shí)間持續(xù)期間。為了此目的,該預(yù)定義的時(shí)間持續(xù)期間可增加或減少ー預(yù)定的值。步驟345中用于調(diào)整該預(yù)定的時(shí)間持續(xù)期間的啟發(fā)法也可考慮計(jì)數(shù)器T0-T3導(dǎo)致中斷的時(shí)間點(diǎn)的周期性。在ー個(gè)具體實(shí)施例中,重復(fù)步驟340以及345,直到已達(dá)成該時(shí)間持續(xù)期間的調(diào)整,其確保將不會(huì)發(fā)生沖突??墒褂糜糜陬A(yù)防步驟340以及345的無(wú)限循環(huán)的一般保護(hù)步驟。在步驟350中,與方法300被執(zhí)行所在的計(jì)算核心C0-C3相關(guān)聯(lián)的計(jì)數(shù)器T0-T3被設(shè)定成相應(yīng)于預(yù)定的時(shí)間持續(xù)期間的值。最后在步驟355中,移除了在步驟310中設(shè)定的阻擋,以至于方法300的進(jìn)ー步接入變得可能,并開始了在步驟320或330其中之一中選擇的程序或操作系統(tǒng)。優(yōu)選地,這些動(dòng)作都在一個(gè)單ー步驟中被不能分離地執(zhí)行,以至于該方法300在所選擇的程序或操作系統(tǒng)分別在計(jì)算核心C0-C3上開始之前不被重新開始。圖4示出了用于圖3的方法300的示范性過(guò)程表400。單獨(dú)的過(guò)程表400被指派至圖2的每個(gè)計(jì)算核心C0-C3。通過(guò)將程序410-450輸入該過(guò)程表400中,執(zhí)行該程序410-450至各自的計(jì)算核心C0-C3的分配被執(zhí)行。在表400中記錄程序410至450。指派優(yōu)先性、等待時(shí)間、狀態(tài)以及ー些時(shí)間步驟給每個(gè)輸入的程序410-450。該優(yōu)先性指出將執(zhí)行該程序410-450的急迫性,高優(yōu)先性相應(yīng)于高急迫性。在ー些可用于執(zhí)行的程序410-450中,由方法300的控制程序選擇具有最高優(yōu)先性的程序410-450。該程序410-450的等待時(shí)間指出在該程序410-450的連續(xù)接入之間經(jīng)過(guò)了多少時(shí)間。該等待時(shí)間通常以可調(diào)整用于計(jì)算核心C0-C3的系統(tǒng)時(shí)鐘単位指出,其中該系統(tǒng)時(shí)鐘總計(jì)可為10μ s至100ms,優(yōu)選為100μ s至1ms。在ー個(gè)具體實(shí)施例中,該系統(tǒng)時(shí)鐘被設(shè)定成表400中所記錄的所有程序410-450的最短等待時(shí)間。例如,為了簡(jiǎn)化與可整合于圖I的制造機(jī)器160中的另ー個(gè)處理系統(tǒng)的通信,進(jìn)ー步可提供另ー個(gè)時(shí)鐘以同步化該系統(tǒng)時(shí)鐘。因此,在技術(shù)設(shè)備100的架構(gòu)內(nèi)可分別提供多個(gè)分配的時(shí)鐘產(chǎn)生器或時(shí)鐘,該時(shí)鐘產(chǎn)生器或時(shí)鐘提供用于不同控制過(guò)程的時(shí)間基礎(chǔ)??衫缤ㄟ^(guò)插入等待周期而發(fā)生同步化。程序410-450的狀態(tài)指出該程序410-450是否可用于執(zhí)行、等待或被執(zhí)行。如果程序410-450的狀態(tài)是高度準(zhǔn)備好的,其已等待用于執(zhí)行夠久,且準(zhǔn)備好被執(zhí)行。如果該程序410-450不需要任何計(jì)算時(shí)間,并等待其下ー個(gè)接入,該狀態(tài)為等待中。如果該程序410-450被執(zhí)行,其狀態(tài)為執(zhí)行中。隨著每個(gè)系統(tǒng)時(shí)鐘,每個(gè)程序410-450的時(shí)間步驟數(shù)目被減少I。如果程序410-450的時(shí)間步驟的數(shù)目到達(dá)零,該程序410-450的狀態(tài)被設(shè)為高度準(zhǔn)備好的。然而,該時(shí)間步驟被繼續(xù)計(jì)數(shù),直到由圖3的方法300的控制程序選擇用于執(zhí)行的程序410-450。該程序410-450的狀態(tài)然后被設(shè)為執(zhí)行中,且該程序410-450的時(shí)間步驟數(shù)目被設(shè)成其等待時(shí)間。程序410-450的狀態(tài)從等待到高度準(zhǔn)備好的改變不因此立即導(dǎo)致在圖2的其中一個(gè)計(jì)算核心C0-C3上執(zhí)行該程序410-450。反而,該程序410-450的狀態(tài)以信號(hào)通知其可行性,以及在方法300的控制程序的下ー個(gè)接入期間,程序410-450被執(zhí)行,其狀態(tài)為高度準(zhǔn)備好的以及其同時(shí)具有最高優(yōu)先性。如果所執(zhí)行的程序410-450已完成其工作,且直到其下一次被接入之前不需要任何進(jìn)ー步的計(jì)算時(shí)間,該程序410-450接入圖3的方法300的控制程序。在過(guò)程表400中的該程序410-450的狀態(tài)從執(zhí)行中被設(shè)成等待中。在ー個(gè)具體實(shí)施例中,由方法300的控制程序使程序410-450分別至表400或計(jì)算核心C0-C3的分配生效。該控制程序針對(duì)每個(gè)接入將哪個(gè)程序410-450在什么時(shí)候被選擇文件化。如果沒有程序410-450可選擇,因?yàn)闆]有ー個(gè)可用于執(zhí)行,該計(jì)算核心的閑置時(shí)間被文件化。該控制程序從文件化的工作時(shí)間以及閑置時(shí)間來(lái)確定該計(jì)算核心的容量利用,且如果需要的話,將程序410-450分配至計(jì)算核心C0-C3,其容量利用低于其它計(jì)算核心C0-C3的容量利用。也能以使得最小數(shù)目的計(jì)算核心C0-C3展現(xiàn)盡可能高的容量利用的方式來(lái)執(zhí)行分配,以至于剰余的計(jì)算核心C0-C3完全不被使用或只使用一小程度,且可轉(zhuǎn)為節(jié)能模式。在進(jìn)ー步的具體實(shí)施例中,由微型計(jì)算器110的用戶手動(dòng)地執(zhí)行程序410-450分別至表或至計(jì)算核心C0-C3的分配。如同上述所解釋的,然而方法300的控制程序可收集相應(yīng)的文件化項(xiàng)目,基于該文件化項(xiàng)目,該用戶可執(zhí)行該分配。作為支持的手段,可例如以列表或圖表的形式來(lái)處理所文件化的數(shù)據(jù)。在一個(gè)替代方案中,將多個(gè)計(jì)算核心C0-C3的容量利用程度作為時(shí)間的進(jìn)程來(lái)呈現(xiàn)給該用戶,因?yàn)樵摾涌梢允沁B同平均的該計(jì)算核心C0-C3容量利用平均程度。在圖I的微型計(jì)算器110的操作期間,可改變程序410-450分別至表400或至計(jì)算核心C0-C3的分配,其允許對(duì)于該微型計(jì)算器110的變動(dòng)條件或或需求的調(diào)整。也可例如通過(guò)用戶將ー些程序410-450分別手動(dòng)地分配至表或計(jì)算核心C0-C3,、以及通過(guò)方法300的控制程序?qū)⑵渌绦蚍謩e自動(dòng)地分配至表或計(jì)算核心C0-C3來(lái)并行地將兩方法皆執(zhí)行。圖5示出了用于預(yù)防在圖2的處理器上設(shè)定的時(shí)間持續(xù)期間結(jié)束的沖突的各種啟發(fā)法。以水平的方向指出了時(shí)間進(jìn)程。在垂直的方向,在示范性的計(jì)算核心CO或Cl上指出了四行程序410-450以及操作系統(tǒng)510的執(zhí)行順序。深色區(qū)域代表操作系統(tǒng)的配置,明亮區(qū)域?yàn)橛袑?shí)時(shí)能力的程序410-450的具體實(shí)施例。在明亮以及深色區(qū)域之間的每個(gè)改變的時(shí)候,接入了圖3的方法300的控制程序。當(dāng)與在各自的計(jì)算核心C0-C3上由操作系統(tǒng)以及有實(shí)時(shí)能力的程序410-450使用的時(shí)間相比時(shí),該方法300的執(zhí)行時(shí)間很少,使得它們不在圖5的描繪中被指出。
第一行描繪了計(jì)算核心CO上操作系統(tǒng)以及有實(shí)時(shí)能力的程序410-450的配置順序。第二行示出了計(jì)算核心Cl上該操作系統(tǒng)以及有實(shí)時(shí)能力的程序410-450的相應(yīng)配置順序。連接該兩行的垂直虛線示出了計(jì)算核心CO以及Cl上方法300的接入沖突點(diǎn)。在第三行中,第二行的進(jìn)程沿著時(shí)間軸而被平移特定的值。此平移是因?yàn)橹概芍脸绦?10-450的時(shí)間持續(xù)期間延長(zhǎng)了預(yù)定義的時(shí)間Λ所造成,以預(yù)防在圖5描繪的右邊結(jié)束時(shí)的沖突(垂直虛線)。時(shí)間Λ的插入只執(zhí)行一次。第四行概述了用于預(yù)防沖突的替代方法。這里,指派至程序410-450的時(shí)間持續(xù)期間在指派至該程序410-450的任何時(shí)間持續(xù)期間到期之后延長(zhǎng)了時(shí)間Λ。在第三行之后用于預(yù)防沖突的啟發(fā)法似乎較簡(jiǎn)單,因?yàn)橹豢紤]了在另ー個(gè)計(jì)算核心CO上的方法300的下ー個(gè)接入。在第四行之后的方法具有分別產(chǎn)生為指派至操作系統(tǒng)的時(shí)間持續(xù)期間以及指派至程序410-450的時(shí)間持續(xù)期間的總和的周期時(shí)間可相互對(duì)照調(diào)整的優(yōu)勢(shì)。取決于第一以及第二行進(jìn)程的周期時(shí)間關(guān)于彼此而具有的比例,可選擇第三以及第四行的方法,以預(yù)防計(jì)算核心CO以及Cl上方法300的時(shí)間沖突。兩種啟發(fā)法的組合同樣地是可能的,例如在第一調(diào)整中通過(guò)提供線性依賴的周期時(shí)間以及在第二調(diào)整中通過(guò)對(duì)于彼此的一次平移。
權(quán)利要求
1.一種用于在并行操作的多個(gè)處理単元(C0-C3)上執(zhí)行程序(410-450)的控制方法(300),每個(gè)處理單元(C0-C3)與時(shí)間信號(hào)產(chǎn)生器(220,D0-D3,T0-T3)相關(guān)聯(lián),在該時(shí)間信號(hào)產(chǎn)生器(220,D0-D3,T0-T3)的到期之后,在該相關(guān)聯(lián)的處理單元(C0-C3)上執(zhí)行該控制方法(300),該控制方法(300)包含下述步驟 -選擇(320)可用于在該處理單元(C0-C3)上執(zhí)行的程序(410-450); -將該到期的時(shí)間信號(hào)產(chǎn)生器(220,D0-D3,T0-T3)設(shè)定(350)至預(yù)定義的時(shí)間持續(xù)期間;以及 -在該處理單元(C0-C3)上開始(355)該選擇的程序(410-450)。
2.根據(jù)權(quán)利要求I所述的控制方法(300),其中可用于執(zhí)行的該程序(410-450)是有實(shí)時(shí)能力的,且有實(shí)時(shí)能力的操作系統(tǒng)(510)額外地可用于執(zhí)行,且其中對(duì)于在相同處理單元(C0-C3)上該控制方法(300)的連續(xù)執(zhí)行,以交替的方式選擇該有實(shí)時(shí)能力的程序(410-450)以及該有實(shí)時(shí)能力的操作系統(tǒng)(510)。
3.根據(jù)權(quán)利要求2所述的控制方法(300),其中該操作系統(tǒng)(510)以及該有實(shí)時(shí)能力的程序(410-450)的該預(yù)定義的時(shí)間持續(xù)期間將彼此補(bǔ)足,以產(chǎn)生指派至該處理単元(C0-C3)的周期時(shí)間。
4.如前述權(quán)利要求任一項(xiàng)所述的控制方法(300),包含比較(340)該預(yù)定義的時(shí)間持續(xù)期間的結(jié)束是否自指派至不同處理單元(C0-C3)的時(shí)間信號(hào)產(chǎn)生器(220,D0-D3,T0-T3)的調(diào)度到期起偏離少于預(yù)定義的時(shí)間持續(xù)期間的步驟,以及如果是這個(gè)情況的話,修改(345)該預(yù)定義的時(shí)間持續(xù)期間的步驟。
5.根據(jù)權(quán)利要求3所述的控制方法(300),修改的該步驟包含經(jīng)由ー固定值(△)的平移。
6.如前述權(quán)利要求任一項(xiàng)所述的控制方法(300),進(jìn)ー步包含預(yù)防(310)該控制方法(300)的進(jìn)ー步接入的先前步驟,以及能夠進(jìn)ー步接入(355)該控制方法(300)的結(jié)束步驟。
7.如前述權(quán)利要求任一項(xiàng)所述的控制方法(300),列表(400)被指派至每個(gè)處理單元(C0-C3),其中列出了指派至此處理単元(C0-C3)的該程序(410-450),以及選擇(320)在所述列表(400)中的該項(xiàng)目下發(fā)生。
8.根據(jù)權(quán)利要求7所述的控制方法(300),每個(gè)項(xiàng)目包含優(yōu)先性,以及選擇(320)取決于該優(yōu)先性而生效。
9.如前述權(quán)利要求所述的控制方法(300),進(jìn)ー步包含基于該處理單元(C0-C3)中的至少ー個(gè)的過(guò)去的容量利用而將程序(410-450)輸入這些列表(400)其中之ー的該步驟。
10.一種電子計(jì)算器程序產(chǎn)品,如果該電子計(jì)算器程序產(chǎn)品是在電子計(jì)算器系統(tǒng)(110-150)上執(zhí)行,該電子計(jì)算器程序產(chǎn)品包含用于執(zhí)行如前述權(quán)利要求任ー項(xiàng)所述的該控制方法(300)的程序編碼裝置。
11.根據(jù)權(quán)利要求10所述的電子計(jì)算器程序產(chǎn)品,其儲(chǔ)存在電子計(jì)算器可讀取的記錄裝置上。
12.—種用于在多個(gè)處理單兀(C0-C3)上執(zhí)行一些程序(410-450)的系統(tǒng),該系統(tǒng)包含 -多個(gè)處理單元(C0-C3)、指派至每個(gè)處理單元(C0-C3)的時(shí)間信號(hào)產(chǎn)生器(220,D0-D3, T0-T3); -根據(jù)前述權(quán)利要求任一項(xiàng)所述的控制方法(300),該控制方法(300)在這些處理單元(C0-C3)其中之一上被執(zhí)行。
13.根據(jù)權(quán)利要求12所述的系統(tǒng),其特征在于,這些處理單元(C0-C3)由集成電路(200)所包含。
14.根據(jù)權(quán)利要求12或13所述的系統(tǒng),其特征在于,這些時(shí)間信號(hào)產(chǎn)生器(220,D0-D3,T0-T3)包含由時(shí)鐘信號(hào)操作的計(jì)數(shù)器(T0-T3),一旦該計(jì)數(shù)器(TO-T3)達(dá)到預(yù)定的值,每個(gè)計(jì)數(shù)器(T0-T3)在指派至其的該處理単元(C0-C3)中導(dǎo)致中斷。
15.根據(jù)權(quán)利要求12至14任一項(xiàng)所述的系統(tǒng),其特征在干,每個(gè)計(jì)數(shù)器包含可編程的除法器(D0-D3),用于將所有除法器共享的時(shí)鐘信號(hào)分成指派至計(jì)數(shù)器(T0-T3)的ー個(gè)各自的時(shí)鐘信號(hào)。
全文摘要
本發(fā)明涉及一種用于在并行操作的多個(gè)處理單元上執(zhí)行程序的控制方法,其中時(shí)間信號(hào)產(chǎn)生器被指派至每個(gè)處理單元,在該時(shí)間信號(hào)產(chǎn)生器到期之后,該控制方法在指派至其的處理單元上執(zhí)行,且該方法包含下述步驟選擇可用于在該處理單元上執(zhí)行的程序、將所執(zhí)行的時(shí)間信號(hào)產(chǎn)生器設(shè)定至特定的持續(xù)期間、以及在該處理單元上開始所選擇的程序。
文檔編號(hào)G06F9/48GK102667648SQ201080053025
公開日2012年9月12日 申請(qǐng)日期2010年10月26日 優(yōu)先權(quán)日2009年11月23日
發(fā)明者拉蒙·巴斯 申請(qǐng)人:倍福自動(dòng)化有限公司