用于運(yùn)行處理器的方法
【專利摘要】本發(fā)明涉及一種用于運(yùn)行處理器的方法,通過以下步驟:提供具有第一指令序列(32)的第一程序(10);提供至少一個(gè)具有第二指令序列(24)的第二程序(12),其中,第一程序(10)包括具有時(shí)間關(guān)鍵的指令(20)的時(shí)間關(guān)鍵的區(qū)段(52);在處理器流水線(18)中處理來自第一和第二程序(10,12)的指令(20,24,32);識(shí)別第一程序(10)中的時(shí)間關(guān)鍵的區(qū)段(52)的起始時(shí)間點(diǎn);以及一旦識(shí)別了第一程序(10)中的時(shí)間關(guān)鍵的區(qū)段(52)的起始時(shí)間點(diǎn),將預(yù)先確定的中斷程序(26)插入到至少一個(gè)第二程序(12)中。
【專利說明】用于運(yùn)行處理器的方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種用于運(yùn)行處理器的方法。此外,本發(fā)明還涉及一種處理器。最后,本發(fā)明還涉及一種具有處理器的自動(dòng)化設(shè)備。
【背景技術(shù)】
[0002]現(xiàn)代的處理器如今具有不止一個(gè)計(jì)算內(nèi)核,并且因?yàn)樗鼈兡軌蛘嬲⑿械貓?zhí)行多個(gè)程序,而被稱為多核處理器(MultiCore-Prozessoren MC)。在此過程中,每個(gè)程序在一個(gè)單獨(dú)的處理器內(nèi)核(Core)上運(yùn)行,并且只要這個(gè)程序還在運(yùn)行,它就不必與其他的程序分享這個(gè)處理器內(nèi)核連同其所有的像浮點(diǎn)運(yùn)算單元(Floating point unit,FPU)這樣的子單
J Li ο
[0003]在第一個(gè)多核處理器出現(xiàn)之前已經(jīng)存在雛形,它們雖然能夠建立一定的并行性,但是沒有立即并行地設(shè)置在已經(jīng)存在的計(jì)算內(nèi)核之外的附加的完整的計(jì)算內(nèi)核。這項(xiàng)技術(shù)公知為超線程技術(shù)(Hyper-Threading HT)。此時(shí),一個(gè)處理器內(nèi)核由處理不同任務(wù)的單元構(gòu)成。例如對此有在處理器寄存器和存儲(chǔ)器之間交換數(shù)據(jù)的加載-存儲(chǔ)-單元(Load-Storage-Unit LSU),或者負(fù)責(zé)整數(shù)計(jì)算的算術(shù)-邏輯-單元(Arithmetic-Logical-Unit ALU)。
[0004]只要存在數(shù)據(jù),這些單元甚至已經(jīng)可以在具有一個(gè)處理器內(nèi)核的處理器中部分地并行地工作。因此,ALU可以利用在特定的寄存器中的值工作,而LSU加載其他的寄存器或者將其傳輸給存儲(chǔ)器。處理器在內(nèi)部具有所謂的流水線,其中依次運(yùn)行各個(gè)指令,其中,流水線的各個(gè)階段構(gòu)成了處理器中不同的單元。然而在大部分情況下,這些單元必須相互等待,因此只能部分地填充該流水線,并且沒有充分利用理論上可能的計(jì)算效率。盡管HT-處理器在內(nèi)部僅可以多重支配部分附加的處理器,通過它向操作系統(tǒng)扮演兩個(gè)或者多個(gè)處理器,HT-處理器盡可能地消除了這一局限性。
[0005]因此,例如可以在具有一個(gè)處理器內(nèi)核(Single-Core-Prozessor單核處理器)的處理器上近乎并行地運(yùn)行兩個(gè)程序。在此,每個(gè)程序包括一個(gè)指令的列表(指令隊(duì)列Instruct1n-Queue),這些指令必須依次運(yùn)行。在單核處理器中,順序是明確的,并且在任意多次的執(zhí)行之后指令鏈的運(yùn)行時(shí)間也總是一樣的。在這種情況下,這些程序的運(yùn)行是確定性地。但是在HT-處理器中,處理器在其內(nèi)部混合來自兩個(gè)可使用的指令列表的指令,以便盡可能最佳地填充流水線,并且實(shí)現(xiàn)理論上可能的總計(jì)算效率。
[0006]在許多程序中確實(shí)很好地實(shí)現(xiàn)了這一點(diǎn),其中基于以下事實(shí),即不是所有的單元都存在多個(gè),所以不能實(shí)現(xiàn)雙倍的或者η倍的效率。最重要的是像FPU這樣的復(fù)雜單元在HT處理器中通常只能進(jìn)行一次。如果兩個(gè)進(jìn)行浮點(diǎn)-算法的程序并行運(yùn)行,那么HT處理器不比普通的單核處理器更快。但是因?yàn)檫@種情況通常很少見,所以HT處理器基本上能夠提升計(jì)算效率。
[0007]但是,此時(shí)的缺點(diǎn)是,程序的運(yùn)行時(shí)間不再是能預(yù)見的,因?yàn)樗诤艽蟪潭壬弦蕾囉诘诙€(gè)程序的指令。因此,在多次運(yùn)行時(shí)產(chǎn)生了多個(gè)不同的運(yùn)行時(shí)間。在標(biāo)準(zhǔn)操作系統(tǒng)(通用操作系統(tǒng)General-Purpose-Operating-Systems, GP0S)中,因?yàn)榇藭r(shí)程序不需要在確定的時(shí)間內(nèi)完成它們的任務(wù),判定性是沒有意義的。但是,在其中也使用實(shí)時(shí)操作系統(tǒng)(實(shí)時(shí)操作系統(tǒng),Real-Time-Operating-System, RT0S)的實(shí)時(shí)-系統(tǒng)的范圍內(nèi),能預(yù)見的運(yùn)行時(shí)間是應(yīng)用程序的關(guān)鍵組成部分。
[0008]上述情況妨礙了在實(shí)時(shí)-系統(tǒng)中使用HT處理器。在許多配置中,除了實(shí)時(shí)-應(yīng)用還運(yùn)行非實(shí)時(shí)-應(yīng)用程序,例如操作界面。相對于真正的多核處理器,HT處理器可以提供一種低成本的替代方案,以便至少非-實(shí)時(shí)-應(yīng)用程序獲得更高的計(jì)算效率,但是由于其對實(shí)時(shí)-應(yīng)用的運(yùn)行時(shí)間有很大的時(shí)間上的影響,所以不能被使用。
[0009]即使是真正的多核計(jì)算機(jī)也具有一定的局限性,一旦除了使用所有單元以多重形式存在于其中的處理器之外,還使用其他例如存儲(chǔ)器或者外圍設(shè)備的僅在整個(gè)系統(tǒng)中存在一次的組件,這些組件就會(huì)因此導(dǎo)致單個(gè)程序的彼此阻礙。
【發(fā)明內(nèi)容】
[0010]因此,本發(fā)明的目的在于,指出一種途徑,S卩如何可以提升處理器的效率和可靠性。
[0011]根據(jù)本發(fā)明,通過一種根據(jù)權(quán)利要求1的、用于運(yùn)行處理器的方法實(shí)現(xiàn)該目的。以相同的方式,該目的通過一種根據(jù)權(quán)利要求7的處理器并且通過根據(jù)權(quán)利要求10的自動(dòng)化設(shè)備來實(shí)現(xiàn)。本發(fā)明的有利改進(jìn)方案在從屬權(quán)利要求中給出。
[0012]根據(jù)本發(fā)明的用于運(yùn)行處理器的方法包括提供包含第一指令序列的第一程序;提供至少一個(gè)包含第二指令序列的第二程序,其中,第一程序包含具有時(shí)間關(guān)鍵的指令的時(shí)間關(guān)鍵的區(qū)段;在處理器流水線中處理來自第一和第二程序的指令;識(shí)別第一程序中的時(shí)間關(guān)鍵的區(qū)段的起始時(shí)間點(diǎn);并且一旦識(shí)別了第一程序中的時(shí)間關(guān)鍵的區(qū)段的起始時(shí)間點(diǎn),就將預(yù)先確定的中斷程序插入到至少一個(gè)第二程序中。
[0013]指令的概念特別地理解成處理器的機(jī)器指令。這些指令可以分配給處理器的相應(yīng)單元。區(qū)段的概念特別的描述了多個(gè)彼此相關(guān)的指令。作為程序特別地理解為由處理器運(yùn)行的指令的列表,以便實(shí)現(xiàn)確定的功能。此時(shí),指令可以分配給相應(yīng)的區(qū)段。
[0014]現(xiàn)在,在處理器上提供了至少兩個(gè)程序,它們包含相應(yīng)的指令序列。這些程序也被稱為指令隊(duì)列(Instruct1n-Queues)。處理器包括至少兩個(gè)邏輯內(nèi)核,其中,為每個(gè)邏輯內(nèi)核分配一個(gè)程序。因此,處理器構(gòu)造成如同超線程處理器(HT處理器)?,F(xiàn)在,處理器上的第一程序可以包括時(shí)間關(guān)鍵的區(qū)段或者時(shí)間關(guān)鍵的指令或指令序列。如此,第一程序可以包含非時(shí)間關(guān)鍵的區(qū)段和時(shí)間關(guān)鍵的區(qū)段。
[0015]此外,處理器或者在處理器的存儲(chǔ)器裝置上運(yùn)行的操作系統(tǒng)設(shè)計(jì)用于,識(shí)別第一程序中的時(shí)間關(guān)鍵的進(jìn)程的起始時(shí)間點(diǎn)。一旦得知第一程序中的時(shí)間關(guān)鍵的進(jìn)程的起始時(shí)間點(diǎn),就將預(yù)先確定的中斷程序插入到至少一個(gè)第二程序中。換句話說,通過相應(yīng)的中斷程序中斷或停止當(dāng)前在至少第二程序上的提供的或被處理的區(qū)段。這個(gè)中斷程序可以包含預(yù)知的或預(yù)先確定的指令的序列。因此,能夠準(zhǔn)確地預(yù)言該中斷程序。在中斷程序中優(yōu)選地準(zhǔn)確地認(rèn)識(shí)到,執(zhí)行哪些指令以及在此過程中訪問處理器的哪些部分。因此,可以使得其上處理了時(shí)間關(guān)鍵的指令或區(qū)段的處理器也對系統(tǒng)的非時(shí)間關(guān)鍵的部分開放,而不會(huì)在這個(gè)過程中對時(shí)間關(guān)鍵的進(jìn)程有不利的影響。常用的HT處理器中的區(qū)段或指令的混合會(huì)導(dǎo)致指令列表的不確定地運(yùn)行的原因,重要的方面就是不能預(yù)見性,其中指令相應(yīng)的位于其他程序中。根據(jù)本發(fā)明,如此實(shí)現(xiàn)該目的,即定義其他的程序的指令或區(qū)段,該程序在實(shí)例中也允許處理時(shí)間關(guān)鍵的進(jìn)程序列。
[0016]優(yōu)選地,隨著第一程序中時(shí)間關(guān)鍵的區(qū)段的開始,為了插入中斷程序?qū)⒅袛嘈盘柊l(fā)送到第二程序。一般來說,因?yàn)闀r(shí)間關(guān)鍵的處理器必須對事件作出反應(yīng),可以通過中斷(Interrupt)開始時(shí)間關(guān)鍵的區(qū)段或時(shí)間關(guān)鍵的序列。這種事件可以或者例如由計(jì)時(shí)器控制的循環(huán)地出現(xiàn)。同樣地,這種事件也可以偶爾因?yàn)榫瘓?bào)而出現(xiàn)?,F(xiàn)在,第一程序中的時(shí)間關(guān)鍵的區(qū)段或時(shí)間關(guān)鍵的序列的開始將中斷信號或Interrupt傳輸?shù)教幚砥鞯闹辽俚诙绦颍渲?,從操作系統(tǒng)的角度將第二程序視為獨(dú)立的并且完整的內(nèi)核。現(xiàn)在,插入第二程序中的也可以被稱為中斷服務(wù)程序(Interrupt-Service-Routine, ISR)的中斷程序使第二處理器內(nèi)核進(jìn)入所定義的狀態(tài)。因此,在具有至少兩個(gè)邏輯內(nèi)核的處理器中,當(dāng)?shù)谝贿壿媰?nèi)核被識(shí)別為時(shí)間關(guān)鍵的區(qū)段時(shí),至少使第二邏輯內(nèi)核進(jìn)入特定的狀態(tài)。
[0017]在優(yōu)選的實(shí)施方式中,在處理器流水線中以能預(yù)見的順序一起處理時(shí)間關(guān)鍵的區(qū)段連同中斷程序。當(dāng)在第一程序中識(shí)別了時(shí)間關(guān)鍵的區(qū)段時(shí),那么在至少第二程序中插入預(yù)先限定的或預(yù)先確定的中斷程序。因?yàn)檫@種也可稱為空閑-任務(wù)(Idle-Task)的中斷程序由已知的指令構(gòu)成,盡管與時(shí)間關(guān)鍵的區(qū)段的未知指令相混合,但該混合物在處理器流水線中仍是明確的。這導(dǎo)致了,特別是在多次運(yùn)行時(shí)間關(guān)鍵的程序時(shí)得到一直相同的運(yùn)行時(shí)間。
[0018]借助中斷程序的第二或者更多邏輯內(nèi)核以及程序的停止?fàn)顟B(tài)使得為時(shí)間關(guān)鍵的區(qū)段保留必要的確定性成為可能。此外,因?yàn)楫?dāng)目前沒有處理時(shí)間關(guān)鍵的區(qū)段時(shí),非時(shí)間關(guān)鍵的程序可以使用大于一個(gè)的處理器邏輯內(nèi)核,相對于單-處理器-解決方案,利用所描述的方法在處理非時(shí)間關(guān)鍵的程序時(shí)能夠?qū)崿F(xiàn)更高的流通量。當(dāng)時(shí)間關(guān)鍵的區(qū)段不活動(dòng)時(shí),非時(shí)間關(guān)鍵的程序可以使用至少兩個(gè)HT-處理器的邏輯內(nèi)核。因?yàn)楦鶕?jù)由于并行地處理而被提升的數(shù)據(jù)流通量來評估非時(shí)間關(guān)鍵的程序,非確定性的混合在此是不相關(guān)的。因此,可以提升整個(gè)處理器或設(shè)備的效率,而不會(huì)在此過程中影響了可靠性。
[0019]優(yōu)選地,利用時(shí)間關(guān)鍵的區(qū)段也終止了中斷程序。因此,通過中斷程序只會(huì)在這種時(shí)間期限內(nèi)打斷或者停止非時(shí)間關(guān)鍵的程序,即為處理時(shí)間關(guān)鍵的區(qū)段所需要的時(shí)間期限。緊接著又可以在這兩個(gè)處理器邏輯內(nèi)核上分別處理非時(shí)間關(guān)鍵的程序。因此,在處理器上可以加速處理非時(shí)間關(guān)鍵的程序或指令。
[0020]在一種設(shè)計(jì)方案中,中斷程序包括從存儲(chǔ)器中讀取一個(gè)值、將讀取的值與預(yù)先確定的值相比較、并且如果讀取的值和規(guī)定的值不同,重新啟動(dòng)中斷程序。在中斷程序或空閑任務(wù)中,首先從預(yù)先確定的存儲(chǔ)器單元中讀取一個(gè)值或日期。緊接著比較這個(gè)值是否與預(yù)先確定的值一致。如果不一致,那么在存儲(chǔ)器中重新讀取這個(gè)值,并且因此再次啟動(dòng)例行程序。利用這些指令也定義了使用哪些處理器的單元。其中,特別是使用這種單元,其在處理器中存在多個(gè)或者是第二程序或第二邏輯內(nèi)核單獨(dú)享有的單元。這種單元例如可以是加載-存儲(chǔ)-單元(Load-Storage-Unit),它能夠從存儲(chǔ)器中加載相應(yīng)的值。此外可以使用所謂的比較-單元(Compare-Unit),它能夠比較相應(yīng)的值。特別是可以使用處理器的內(nèi)存單元作為從中讀取值的存儲(chǔ)單元。因此可以防止在中斷程序期間訪問物理的主存儲(chǔ)器。因此識(shí)別了由中斷程序所使用的處理器的單元。其他的單元不受限制地供用于處理時(shí)間關(guān)鍵的區(qū)段的程序或邏輯內(nèi)核使用。由此不會(huì)對時(shí)間關(guān)鍵的區(qū)段或指令列表的運(yùn)行時(shí)間造成不利的影響。
[0021]在一種設(shè)計(jì)方案中,由此終止中斷程序,S卩,將與預(yù)先確定的值相等的值寫入到存儲(chǔ)器中。在中斷程序期間,可以從處理器的內(nèi)存中讀取一個(gè)值,并且與預(yù)先確定的值進(jìn)行比較。只要時(shí)間關(guān)鍵的區(qū)段還沒有停止或完成,就不將預(yù)先確定的值寫入到存儲(chǔ)器中。在完成時(shí)間關(guān)鍵的區(qū)段以后首先將預(yù)先確定的值寫入到存儲(chǔ)器中。因此也停止了中斷程序的例行程序。在此有利的是,選擇位于處理器內(nèi)的、并且不在物理主存儲(chǔ)器內(nèi)的存儲(chǔ)單元,從而中斷程序或空閑任務(wù)不能占據(jù)像存儲(chǔ)器連接部或者甚至總線系統(tǒng)這樣的唯一的資源。因此能夠以簡單的方式終止中斷程序,并且能夠相應(yīng)地在至少兩個(gè)程序或邏輯內(nèi)核上處理非時(shí)間關(guān)鍵的指令。
[0022]根據(jù)本發(fā)明的處理器包括用于提供包含第一指令序列的第一程序的第一處理器單元;至少一個(gè)用于提供至少一個(gè)包含第二指令序列的第二程序的第二處理器單元,其中,第一程序包含時(shí)間關(guān)鍵的區(qū)段;用于處理來自第一和第二程序的指令的處理器流水線和具有操作系統(tǒng)的存儲(chǔ)器裝置,其中,處理器還設(shè)計(jì)用于運(yùn)行操作系統(tǒng),并且其中,處理器或操作系統(tǒng)還設(shè)計(jì)用于識(shí)別第一程序中的時(shí)間關(guān)鍵的區(qū)段的起始時(shí)間點(diǎn),并且一旦識(shí)別了第一程序中的時(shí)間關(guān)鍵的區(qū)段的起始時(shí)間點(diǎn),將預(yù)先確定的中斷程序插入到至少一個(gè)第二程序中。
[0023]優(yōu)選地,處理器包含數(shù)據(jù)交換單元和比較單元,其中,數(shù)據(jù)交換單元還構(gòu)造成,在中斷程序期間從存儲(chǔ)器中讀取一個(gè)值,并且其中,比較單元還構(gòu)造成,在中斷程序期間將讀取的值與預(yù)先確定的值相比較。因此可以確保,在中斷程序期間只使用確定的處理器的單元。優(yōu)選地使用這種供相應(yīng)的處理器邏輯內(nèi)核或程序單獨(dú)使用的單元。同樣,優(yōu)選的也可以使用處理器的內(nèi)存。
[0024]在其他的設(shè)計(jì)方案中,處理器至少包括兩個(gè)處理器內(nèi)核。除了 HT-處理器之外,前述用于運(yùn)行處理器的方法也可以用于真正的多核-處理器,其中,所有的內(nèi)核都具有所有必需的單元。在常用的多核處理器中,即使嚴(yán)格地劃分了分配給相應(yīng)的處理器內(nèi)核的時(shí)間關(guān)鍵的和非時(shí)間關(guān)鍵的程序,因?yàn)閮蓚€(gè)分應(yīng)用程序都訪問了例如存儲(chǔ)器的其他系統(tǒng)組件或者外圍設(shè)備,也可能導(dǎo)致非-確定性的狀態(tài)。最重要的是,因?yàn)槎鄡?nèi)核的處理器與多個(gè)外圍設(shè)備的連接是通過單個(gè)的總線系統(tǒng)(大部分是PCI或PCIe)構(gòu)建的,即使不同的應(yīng)用程序使用不同的外圍設(shè)備,外圍設(shè)備也會(huì)導(dǎo)致許多問題。由此導(dǎo)致的可能的相互阻礙能夠通過所述方法排除。
[0025]其他的優(yōu)點(diǎn)是,通過該方法同樣實(shí)現(xiàn)了確定性的緩存-表現(xiàn)。不僅在許多的多核-處理器中,而且在超線程-處理器中,多個(gè)內(nèi)核都分享緩存。如果內(nèi)核中的程序或指令中的一個(gè)不能訪問緩存,而是必須訪問主存儲(chǔ)器,那么整體運(yùn)行時(shí)間明顯減慢。當(dāng)在運(yùn)行時(shí)間關(guān)鍵的區(qū)段時(shí)在至少一個(gè)其他的程序或內(nèi)核上運(yùn)行定義了的中斷程序時(shí),實(shí)時(shí)-應(yīng)用程序可以不被它的緩存-表現(xiàn)所影響。
[0026]根據(jù)本發(fā)明的自動(dòng)化設(shè)備包括前述的處理器。自動(dòng)化設(shè)備通常具備兩個(gè)重要的功能,即,真正地控制物理進(jìn)程和與外界通信。通信可以或者通過操作界面或者通過到外部操作設(shè)備的網(wǎng)絡(luò)連接來進(jìn)行??刂莆锢磉M(jìn)程通常需要遵守特定的時(shí)間條件,而在通信時(shí),由于使用者反應(yīng)遲緩就必須設(shè)計(jì)相應(yīng)的等待時(shí)間。控制功能通常意味著時(shí)間關(guān)鍵的區(qū)段,它大多數(shù)時(shí)只需要一小部分處理器的計(jì)算效率。但是,控制任務(wù)必須隨時(shí)都能夠執(zhí)行。為了使?fàn)顟B(tài)可視化或者為了與其他的設(shè)備交換數(shù)據(jù),通信程序通常需要明顯更大份額的計(jì)算效率。通過使用根據(jù)本發(fā)明的處理器能夠?yàn)橥ㄐ懦绦蛱峁┟黠@更多的計(jì)算效率。此外通過這種處理器還可以節(jié)省成本。
[0027]前面結(jié)合根據(jù)本發(fā)明的方法所提到的優(yōu)點(diǎn)和改進(jìn)方案同樣能夠轉(zhuǎn)移到根據(jù)本發(fā)明的處理器和根據(jù)本發(fā)明的自動(dòng)化設(shè)備上。
【專利附圖】
【附圖說明】
[0028]現(xiàn)在借助附圖詳細(xì)闡述本發(fā)明。其中示出:
[0029]圖1是在超線程-處理器中程序運(yùn)行的示意圖;
[0030]圖2是兩個(gè)程序的指令布置的示意圖,其中,第一程序包含時(shí)間關(guān)鍵的區(qū)段;
[0031]圖3是兩個(gè)程序的和處理器流水線的指令布置的示意圖;
[0032]圖4是測試布置的示意圖;和
[0033]圖5是其他的測試布置的示意圖。
【具體實(shí)施方式】
[0034]下面詳細(xì)描述的實(shí)施例是本發(fā)明的優(yōu)選實(shí)施方式。
[0035]圖1在示意圖中示出根據(jù)現(xiàn)有技術(shù)在處理器上對程序的處理。這種處理器被稱為超線程-處理器。處理器包括一個(gè)處理器內(nèi)核,在其上面例如設(shè)計(jì)了兩個(gè)處理器單元。此時(shí),每個(gè)處理器單元分配給一個(gè)程序。現(xiàn)在,在處理器上運(yùn)行著第一程序10和第二程序12。第一程序10包括第一指令序列14,并且第二程序12包括第二指令序列16。
[0036]第一程序10中的指令14的順序和第二程序12中的指令16的順序是明確對應(yīng)的。在第一程序10中并且在第二程序12中可以處理時(shí)間關(guān)鍵的和非時(shí)間關(guān)鍵的區(qū)段。在處理器流水線18中處理來自第一程序10的指令14和來自第二程序12的指令16。在處理器流水線18中,對指令14和16進(jìn)行相應(yīng)的分類和處理。此時(shí),在處理器流水線中得到第一指令14和第二指令16的不確定的并且雜亂的順序。
[0037]第一程序10和第二程序12可以理解為處理器邏輯內(nèi)核,其中,處理器只包括一個(gè)處理器內(nèi)核。此時(shí),根據(jù)處理器的生產(chǎn)商,處理器的不同單元可能存在一個(gè)或者多個(gè)。執(zhí)行簡單的計(jì)算任務(wù)的單元通常存在多個(gè),其中,復(fù)雜的單元僅存在一個(gè)。
[0038]圖2示出兩個(gè)程序10和12的示意圖,其中,第一程序10包括一個(gè)時(shí)間關(guān)鍵的區(qū)段52。因?yàn)樗仨殞κ录龀龇磻?yīng),通常由Interrupt啟動(dòng)這種時(shí)間關(guān)鍵的區(qū)段52。這種事件例如可以循環(huán)地出現(xiàn)或者僅偶爾出現(xiàn)。通過箭頭22標(biāo)示了時(shí)間關(guān)鍵的區(qū)段52的起始時(shí)間點(diǎn)。第二程序12包括一個(gè)非時(shí)間關(guān)鍵的區(qū)段52。
[0039]此外,該處理器或者在處理器的存儲(chǔ)器裝置上運(yùn)行的操作系統(tǒng)還構(gòu)造成,用于識(shí)別第一程序中的時(shí)間關(guān)鍵的區(qū)段52的開始或起始時(shí)間點(diǎn)。一旦得知第一程序10中的時(shí)間關(guān)鍵的區(qū)段52的起始時(shí)間點(diǎn),將預(yù)先確定的中斷程序26插入到第二程序12中。
[0040]隨著時(shí)間關(guān)鍵的區(qū)段52的開始,將相應(yīng)的中斷信號或Interrupt發(fā)送到第二程序12。這導(dǎo)致了,第二程序12上執(zhí)行的非時(shí)間關(guān)鍵的區(qū)段54被打斷,或者在非時(shí)間關(guān)鍵的區(qū)段54中插入了中斷程序26。從第一程序10傳輸?shù)降诙绦?2中的Interrupt在圖2中用箭頭28標(biāo)示。
[0041]中斷程序也可以被稱為空閑任務(wù),它可以包括以下步驟:
[0042]-從存儲(chǔ)器中讀取一個(gè)值,
[0043]-將讀取的值與預(yù)先確定的值相比較,并且
[0044]-如果讀取的值與規(guī)定的值不同,重新啟動(dòng)中斷程序。
[0045]利用這個(gè)指令順序同樣定義了使用處理器的哪些單元。在這里僅使用加載-存儲(chǔ)-單元和比較-單元。此外,優(yōu)選地訪問處理器的內(nèi)存。
[0046]隨著時(shí)間關(guān)鍵的區(qū)段52的結(jié)束,中斷程序26也結(jié)束了。當(dāng)時(shí)間關(guān)鍵的區(qū)段52已結(jié)束,通過寫入指令將預(yù)先確定的值寫入到被中斷程序26持續(xù)讀取的存儲(chǔ)器單元中。這在圖2中示例性地用箭頭30表示。
[0047]圖3示出了在第一程序10中的、第二程序12中的和處理器流水線18中處理指令的示意圖。第一程序10不僅包括非時(shí)間關(guān)鍵的區(qū)段56或指令32,而且還包括時(shí)間關(guān)鍵的區(qū)段52或指令20。如果在第一程序10中識(shí)別出時(shí)間關(guān)鍵的區(qū)段20的起始時(shí)間點(diǎn),則在第二程序12中插入預(yù)先確定的中斷程序26。此時(shí),目前在第二程序上運(yùn)行的非時(shí)間關(guān)鍵的區(qū)段24被中斷或停止。
[0048]在處理器流水線18中處理來自程序10和12的區(qū)段和指令20,24,26,32。
[0049]在識(shí)別出時(shí)間關(guān)鍵的區(qū)段52之前,以不能預(yù)見的順序完成第一程序10的和第二程序12的指令24,32,并且在處理器流水線18的范圍38中示出了這個(gè)指令順序。一旦識(shí)別出時(shí)間關(guān)鍵的區(qū)段52的起始點(diǎn),中斷程序26插入到第二程序中。中斷程序26包含預(yù)先確定的步驟。通過一起處理來自第一程序的時(shí)間關(guān)鍵的區(qū)段52和來自第二程序12的中斷程序26,獲得指令20,26的確定的并且能預(yù)見的順序。這在處理器流水線的范圍36中示出。在時(shí)間關(guān)鍵的區(qū)段52結(jié)束以后,中斷程序26也結(jié)束了。緊接著處理來自第一程序10和第二程序12的非時(shí)間關(guān)鍵的區(qū)段54,56。這由處理器流水線18中的范圍34表示。
[0050]圖4示出了用于對根據(jù)本發(fā)明的方法進(jìn)行定量評估的測試布置的示意圖。其中,第一程序包括時(shí)間關(guān)鍵的區(qū)段52。第二程序12包括非時(shí)間關(guān)鍵的或非時(shí)間關(guān)鍵的區(qū)段54。在第一種測試條件下,分別將一個(gè)超線程處理過程的邏輯內(nèi)核分配到第一程序10中和第二程序12中。在其他測試條件下,可以為第一程序10和第二程序12分別分配一個(gè)多核處理器(Multicore-Prozessors)的處理器內(nèi)核。
[0051]在這種測試場景下,使用浮點(diǎn)單元(Floating Point Unit, FPU)用于計(jì)算。在具有兩個(gè)邏輯內(nèi)核的HT-處理器中僅存在一個(gè)這種浮點(diǎn)單元。隨后實(shí)現(xiàn)以下測試場景:非時(shí)間關(guān)鍵的區(qū)段54執(zhí)行FPU所需要的持續(xù)性計(jì)算。相應(yīng)地觸發(fā)了時(shí)間關(guān)鍵的區(qū)段52,并且其也執(zhí)行FPU上的計(jì)算。此時(shí),時(shí)間關(guān)鍵的區(qū)段52測量用于在FPU上進(jìn)行計(jì)算的運(yùn)行時(shí)間。
[0052]在此,區(qū)段52,54有目的地分布在HT-處理器或MC-處理器的兩個(gè)邏輯內(nèi)核上,使得它們并行地填充程序10,12。下面的表格示出了在不同的測試情況下的對時(shí)間關(guān)鍵的區(qū)段52運(yùn)行時(shí)間的測量值,其中,在操作系統(tǒng)或操作系統(tǒng)中沒有采取任何措施。每次測試都進(jìn)行了 60000次運(yùn)行。
[0053]
【權(quán)利要求】
1.一種用于運(yùn)行處理器的方法,通過 -提供具有第一指令序列(32)的第一程序(10), -提供至少一個(gè)具有第二指令序列(24)的第二程序(12),其中-所述第一程序(10)包括具有時(shí)間關(guān)鍵的指令(20)的時(shí)間關(guān)鍵的區(qū)段(52),以及-在處理器流水線(18)中處理來自所述第一程序和所述第二程序(10,12)的所述指令(20,24,32), 其特征在于 -識(shí)別所述第一程序(10)中的所述時(shí)間關(guān)鍵的區(qū)段(52)的起始時(shí)間點(diǎn),以及-一旦識(shí)別了所述第一程序(10)中的所述時(shí)間關(guān)鍵的區(qū)段(52)的所述起始時(shí)間點(diǎn),就將預(yù)先確定的中斷程序(26)插入到所述至少一個(gè)第二程序(12)中。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,隨著所述第一程序中所述時(shí)間關(guān)鍵的區(qū)段(52)的開始,為了插入所述中斷程序(26)將中斷信號發(fā)送到所述第二程序(12)。
3.根據(jù)權(quán)利要求1或2所述的方法,其特征在于,在所述處理器流水線(18)中以能預(yù)見的順序一起處理所述時(shí)間關(guān)鍵的區(qū)段(52)和所述中斷程序(26)。
4.根據(jù)前述權(quán)利要求中任一項(xiàng)所述的方法,其特征在于,所述中斷程序(26)同樣隨著所述時(shí)間關(guān)鍵的區(qū)段(52)終止。
5.根據(jù)前述權(quán)利要求中任一項(xiàng)所述的方法,其中,所述中斷程序(26)包括以下步驟: -從存儲(chǔ)器中讀取 值, -將所述讀取的值與預(yù)先確定的值進(jìn)行比較,以及 -如果所述讀取的值與所述確定的值不同,則重新啟動(dòng)所述中斷程序(26)。
6.根據(jù)權(quán)利要求4或5所述的方法,其中,通過將等于所述預(yù)先確定的值的值寫入到存儲(chǔ)器中來終止所述中斷程序(26)。
7.—種處理器,具有 -用于提供具有第一指令序列(32)的第一程序(10)的第一處理器單元, -至少一個(gè)用于提供至少一個(gè)具有第二指令序列(24)的第二程序(12)的第二處理器單元,其中 -所述第一程序包括具有時(shí)間關(guān)鍵的指令(20)的時(shí)間關(guān)鍵的區(qū)段(52), -用于處理來自所述第一程序和所述第二程序(10,12)的所述指令(20,24,32)的處理器流水線(18),以及 -具有操作系統(tǒng)的存儲(chǔ)器裝置,其中,所述處理器設(shè)計(jì)用于實(shí)施所述操作系統(tǒng), 其特征在于 -所述處理器或所述操作系統(tǒng)設(shè)計(jì)用于識(shí)別所述第一程序(10)中的所述時(shí)間關(guān)鍵的區(qū)段(52)的起始時(shí)間點(diǎn),并且一旦識(shí)別了所述第一程序(10)中的所述時(shí)間關(guān)鍵的區(qū)段(52)的所述起始時(shí)間點(diǎn),預(yù)先確定的中斷程序(26)就插入到所述至少一個(gè)第二程序(12)中。
8.根據(jù)權(quán)利要求7所述的處理器,其特征在于,所述處理器包括數(shù)據(jù)交換單元和比較單元,其中,所述數(shù)據(jù)交換單元設(shè)計(jì)用于在所述中斷程序(26)期間讀取來自存儲(chǔ)器中的值,并且其中,所述比較單元設(shè)計(jì)用于在所述中斷程序(26)期間比較所述讀取的值與預(yù)先確定的值。
9.根據(jù)權(quán)利要求7或8所述的處理器,其特征在于,所述處理器包括至少兩個(gè)處理器內(nèi)核。
10.一種具有根據(jù)前 述權(quán)利要求中任一項(xiàng)所述的處理器的自動(dòng)化設(shè)備。
【文檔編號】G06F9/54GK104081344SQ201280068191
【公開日】2014年10月1日 申請日期:2012年1月31日 優(yōu)先權(quán)日:2012年1月31日
【發(fā)明者】勒內(nèi)·格拉夫, 沃爾夫?qū)す芈? 申請人:西門子公司