本發(fā)明涉及用于運(yùn)行微處理器的方法以及用于執(zhí)行所述方法的計(jì)算機(jī)程序和計(jì)算單元。
背景技術(shù):
微處理器經(jīng)常單獨(dú)地或作為微控制器的組成部分被使用,所述微控制器在芯片上除了微處理器之外還具有附加的外圍設(shè)備、諸如網(wǎng)絡(luò)接口、adc、dac、e/a等等。
如例如在機(jī)動(dòng)車輛的控制設(shè)備中(例如在用于控制發(fā)動(dòng)機(jī)的發(fā)動(dòng)機(jī)控制設(shè)備中)所使用的現(xiàn)代微處理器大多是具有多個(gè)(至少兩個(gè))處理器核心(core(核心))的多核處理器。處理器核心或者核心包括算術(shù)邏輯單元(alu)以及此外包括本地存儲(chǔ)器(lokalenspeicher),其中所述算術(shù)邏輯單元是用于實(shí)施任務(wù)、程序、計(jì)算指令等的實(shí)際電子計(jì)算器(rechenwerk)。這樣的本地存儲(chǔ)器例如可以被構(gòu)造為由一個(gè)或多個(gè)寄存器組成的寄存器組或被構(gòu)造為ram存儲(chǔ)器。此外,微處理器包括全局存儲(chǔ)器,所述全局存儲(chǔ)器例如可以被構(gòu)造為閃存、nor閃存或ram存儲(chǔ)器。
應(yīng)當(dāng)由微處理器實(shí)施的程序代碼大多以微處理器的特殊的(speziell)指令集架構(gòu)來(lái)編碼。
指令集架構(gòu)描述微處理器的指令集、也即指令的集合,所述指令可以由微處理器實(shí)施,以及描述指令集的二進(jìn)制編碼。指令集架構(gòu)同樣可以描述數(shù)據(jù)結(jié)構(gòu)的構(gòu)造和數(shù)據(jù)類型、存儲(chǔ)器架構(gòu)以及存儲(chǔ)區(qū)域的尋址。此外,也可以通過(guò)指令集架構(gòu)描述微處理器的特殊行為方式,例如所述微處理器如何對(duì)中斷請(qǐng)求作出反應(yīng)。
技術(shù)實(shí)現(xiàn)要素:
按照本發(fā)明,建議具有獨(dú)立專利權(quán)利要求的特征的用于運(yùn)行微處理器的方法以及用于執(zhí)行所述方法的計(jì)算機(jī)程序和微處理器。有利的擴(kuò)展方案是從屬權(quán)利要求以及隨后的描述的主題。
在本方法的范圍中,轉(zhuǎn)換軟件(所謂的動(dòng)態(tài)二進(jìn)制翻譯軟件(dynamicbinarytranslationsoftware))在微處理器中被實(shí)施,通過(guò)所述轉(zhuǎn)換軟件執(zhí)行程序代碼的二進(jìn)制翻譯。在所述二進(jìn)制翻譯的過(guò)程中,源指令被二進(jìn)制地翻譯成相應(yīng)的目標(biāo)指令,其中所述源指令按照第一指令集架構(gòu)(instructionsetarchitecture(指令集架構(gòu)),isa)被編碼,所述目標(biāo)指令按照第二指令集架構(gòu)被編碼。源指令和目標(biāo)指令因此在內(nèi)容上尤其是相同的,并且按照不同的指令集架構(gòu)來(lái)撰寫(verfasst)。第一或第二指令集架構(gòu)例如可以分別是x86架構(gòu)或arm架構(gòu)。
由轉(zhuǎn)換軟件復(fù)制被翻譯成第二指令集架構(gòu)的目標(biāo)指令。在該所復(fù)制的目標(biāo)指令中,存儲(chǔ)區(qū)域由第二存儲(chǔ)區(qū)域代替,其中在實(shí)施目標(biāo)指令的過(guò)程中應(yīng)當(dāng)訪問(wèn)所述存儲(chǔ)區(qū)域。所述存儲(chǔ)區(qū)域尤其可以是目標(biāo)存儲(chǔ)器,其中所實(shí)施的目標(biāo)指令的結(jié)果應(yīng)當(dāng)被寫到所述目標(biāo)存儲(chǔ)器中。這尤其可以涉及處理器的本地存儲(chǔ)器、例如由一個(gè)或多個(gè)寄存器組成的寄存器組或ram存儲(chǔ)器。存儲(chǔ)區(qū)域尤其可以被代替,其方式是存儲(chǔ)區(qū)域的地址或相應(yīng)的存儲(chǔ)寄存器在目標(biāo)指令的源代碼中被重命名。目標(biāo)指令和所復(fù)制的目標(biāo)指令由微處理器實(shí)施。
為了能夠由微處理器實(shí)施指令,所述指令必須以微處理器的特殊的第二指令集架構(gòu)來(lái)編碼。不同制造商的處理器在此大多按照不同的、特定于制造商的指令集架構(gòu)被編碼。為了能夠在其他制造商的其他微處理器中實(shí)施程序代碼,程序代碼從其特定的最初第一指令集架構(gòu)(仿真isa(emulatedisa))被翻譯成其他微處理器的第二指令集架構(gòu)(所謂的本機(jī)isa(nativeisa)),其中所述程序代碼針對(duì)特殊的微處理器按照其特定的指令集架構(gòu)(所謂的仿真isa)得以開發(fā)。相應(yīng)的二進(jìn)制翻譯可以通過(guò)轉(zhuǎn)換軟件來(lái)執(zhí)行。
特別有利地,在本方法的范圍中執(zhí)行動(dòng)態(tài)二進(jìn)制翻譯,其中在所述動(dòng)態(tài)二進(jìn)制翻譯過(guò)程中,一旦程序代碼的各個(gè)部分或各個(gè)指令應(yīng)當(dāng)被調(diào)用并且被實(shí)施,這些指令就被翻譯。但是也可以執(zhí)行靜態(tài)二進(jìn)制翻譯,其中在所述靜態(tài)二進(jìn)制翻譯過(guò)程中,在程序代碼的各個(gè)指令被實(shí)施之前,全部程序代碼并且因此程序代碼的所有指令被翻譯。
可理解的是,在本方法的范圍中,可以由轉(zhuǎn)換軟件二進(jìn)制地翻譯多個(gè)不同的源指令。適宜地,所有相應(yīng)的所翻譯的目標(biāo)指令可以被復(fù)制并且其存儲(chǔ)區(qū)域可以被代替,或者也僅僅特殊的目標(biāo)指令可以被復(fù)制并且其存儲(chǔ)區(qū)域可以被代替。為了由微處理器來(lái)實(shí)施經(jīng)翻譯的和所復(fù)制的目標(biāo)指令,所述兩種指令從轉(zhuǎn)換軟件尤其被轉(zhuǎn)發(fā)給微處理器的相應(yīng)模塊、例如被轉(zhuǎn)發(fā)給調(diào)度器,所述調(diào)度器協(xié)調(diào)指令的實(shí)施。所述兩種指令尤其由算術(shù)邏輯單元(alu)、即用于實(shí)施任務(wù)、程序、計(jì)算指令等的電子計(jì)算器實(shí)施。
轉(zhuǎn)換軟件在本方法的范圍中不僅被設(shè)置用于二進(jìn)制翻譯,而且用于擴(kuò)展兩個(gè)附加功能,也即擴(kuò)展了復(fù)制功能(replicate(復(fù)制))和重命名功能(rename(重命名))。因此,可以以簡(jiǎn)單的方式實(shí)現(xiàn)指令到微處理器中的冗余實(shí)施。通過(guò)復(fù)制目標(biāo)指令,所述目標(biāo)指令被微處理器實(shí)施兩次,并且雙重實(shí)施的目標(biāo)指令的結(jié)果被寫到分別不同的存儲(chǔ)區(qū)域中。兩個(gè)目標(biāo)指令例如可以并行地或也可以相繼地被實(shí)施。
視微處理器的應(yīng)用而定,可能出于安全性原因要求這樣的冗余。尤其在機(jī)動(dòng)車輛領(lǐng)域中,通過(guò)準(zhǔn)則(norm)、例如通過(guò)準(zhǔn)則iso26262要求冗余地實(shí)施特殊的與安全性相關(guān)的功能。通過(guò)該方法,可以保證按照iso26262的安全性標(biāo)準(zhǔn)或者按照其中所定義的asil(automotivesafetyintegritylevel(汽車安全完整性等級(jí)))來(lái)實(shí)施微處理器的功能。尤其可以遵守按照asilc和asild的安全性方針,所述安全性方針是iso26262的最高的和最嚴(yán)格的安全性要求。因此該方法特別有利地適用于微處理器在機(jī)動(dòng)車輛中的使用。特別優(yōu)選地,通過(guò)目標(biāo)指令實(shí)施與安全性相關(guān)的機(jī)動(dòng)車輛功能,所述機(jī)動(dòng)車輛功能必須按照預(yù)先給定的安全性方針冗余地被保障。
此外,通過(guò)本發(fā)明提供以下可能性:以簡(jiǎn)單的方式將新功能實(shí)現(xiàn)到微處理器中,而不改變所述微處理器的硬件。例如,不需要例如為了提高微處理器的計(jì)算能力而將附加的處理器或者處理器核心或附加的存儲(chǔ)器裝入到所述微處理器中。所述附加功能可以僅僅通過(guò)在轉(zhuǎn)換軟件中的改變被添加。
尤其當(dāng)微處理器已經(jīng)處于現(xiàn)場(chǎng)中或者處于其正常運(yùn)行中時(shí),具有附加功能的相應(yīng)轉(zhuǎn)換軟件也可以在其完成(seinerfertigstellung)之后被引入到所述微處理器中。附加功能或者相應(yīng)地更新的轉(zhuǎn)換軟件例如可以在更新過(guò)程中被引入到微處理器中,例如在維護(hù)工作過(guò)程中借助于所連接的計(jì)算機(jī)或者也借助于所謂的空中編程(over-the-air-programmierng,ota)被引入,在所述空中編程(ota)情況下,新的、修改過(guò)的程序代碼以無(wú)線方式經(jīng)由無(wú)線電連接、諸如wlan或移動(dòng)無(wú)線電網(wǎng)絡(luò)(例如lte、gsm、3g、4g等)例如從微處理器制造商的服務(wù)器被傳輸給微處理器。
微處理器大多針對(duì)寬廣的市場(chǎng)被開發(fā)和制造,并且大多例如不明確地針對(duì)在機(jī)動(dòng)車輛中的使用來(lái)制造。商業(yè)上通用的微處理器因此不強(qiáng)制性地滿足在機(jī)動(dòng)車輛領(lǐng)域中適用的要求。針對(duì)機(jī)動(dòng)車輛領(lǐng)域明確地制造微處理器,例如使得特殊的機(jī)動(dòng)車輛功能可以基于硬件地被執(zhí)行或者微處理器的特殊硬件架構(gòu)是為機(jī)動(dòng)車輛功能的實(shí)施設(shè)置的,大多與非常高的成本耗費(fèi)相關(guān)聯(lián)。然而通過(guò)本方法使得能夠?yàn)榱嗽跈C(jī)動(dòng)車輛領(lǐng)域中使用并且為了實(shí)施機(jī)動(dòng)車輛功能以簡(jiǎn)單的方式改裝微處理器。
通常,微處理器的硬件架構(gòu)在其規(guī)劃和開發(fā)階段的開始就例如按照功能性被確定,其中所述微處理器大概應(yīng)當(dāng)在其后來(lái)的正常運(yùn)行中實(shí)施所述功能性。在微處理器的開發(fā)和制造階段的進(jìn)一步進(jìn)程中,還改變硬件架構(gòu)大多并非能夠容易地發(fā)生,或者是與開發(fā)技術(shù)上的和成本密集的大耗費(fèi)相關(guān)聯(lián)的。如果例如應(yīng)當(dāng)在開發(fā)進(jìn)程中決定微處理器迄今不應(yīng)當(dāng)實(shí)施所規(guī)劃的附加功能,那么大多不再可能使硬件架構(gòu)匹配于這些功能。然而通過(guò)所述方法,這樣的功能可以耗費(fèi)低地和成本低地僅通過(guò)使用相應(yīng)的轉(zhuǎn)換軟件被實(shí)現(xiàn)到微處理器中。
按照一種有利的實(shí)施方式,將所實(shí)施的目標(biāo)指令的結(jié)果和所實(shí)施的所復(fù)制的目標(biāo)指令的結(jié)果相互比較。因此,尤其可以實(shí)現(xiàn)所謂的鎖步(lockstep),在所述鎖步的過(guò)程中,為了識(shí)別錯(cuò)誤和校正錯(cuò)誤,雙重實(shí)施的相同的指令的結(jié)果被相互比較。在機(jī)動(dòng)車輛中,尤其在實(shí)施與安全性相關(guān)的功能時(shí),例如通過(guò)準(zhǔn)則iso26262要求這樣的鎖步或者相應(yīng)的錯(cuò)誤識(shí)別。
優(yōu)選地,結(jié)果的所述比較通過(guò)實(shí)施比較指令來(lái)執(zhí)行。所述比較指令有利地由轉(zhuǎn)換軟件在復(fù)制目標(biāo)指令的情況下(mitdemkopieren)被創(chuàng)建,并且適宜地轉(zhuǎn)交給微處理器的調(diào)度器。因此除了復(fù)制和重命名功能外,轉(zhuǎn)換軟件此外優(yōu)選地被擴(kuò)展了比較功能。
微處理器優(yōu)選地具有兩個(gè)或多個(gè)處理器核心。轉(zhuǎn)換軟件有利地在所述處理器核心中的至少兩個(gè)上并行地被實(shí)施。微處理器和所翻譯的目標(biāo)指令因此不太容易受單獨(dú)處理器核心的失效和錯(cuò)誤的影響。因此不僅可以通過(guò)在一個(gè)處理器核心上(時(shí)間上)并行地實(shí)施目標(biāo)指令來(lái)實(shí)現(xiàn)時(shí)間上的冗余,而且可以通過(guò)在不同的處理器核心上并行地實(shí)施目標(biāo)指令來(lái)實(shí)現(xiàn)本地或者局部(?rtlich)的冗余。此外,因此可以執(zhí)行更精確的錯(cuò)誤識(shí)別和錯(cuò)誤校正,尤其其方式是將在處理器核心上實(shí)施的目標(biāo)指令和所復(fù)制的目標(biāo)指令的各個(gè)結(jié)果相互比較。
按照一種特別優(yōu)選的實(shí)施方式,設(shè)置微處理器的第二處理器核心,所述第二處理器核心檢驗(yàn)第一處理器核心。所述第一處理器核心在此尤其被設(shè)置為主核心。第二處理器核心或者檢驗(yàn)核心適宜地對(duì)于操作系統(tǒng)是不可見的,所述操作系統(tǒng)尤其由第一主核心實(shí)施。
在第一處理器核心上實(shí)施按照上述描述的轉(zhuǎn)換軟件。通過(guò)二進(jìn)制翻譯所獲得的、經(jīng)翻譯的目標(biāo)指令被儲(chǔ)存在翻譯存儲(chǔ)器(translationcache(翻譯緩存))中。不僅主核心而且檢驗(yàn)核心可以訪問(wèn)所述翻譯存儲(chǔ)器,所述翻譯存儲(chǔ)器例如可以被構(gòu)造為微處理器的全局存儲(chǔ)器。此外在第一處理器核心中,所翻譯的目標(biāo)指令通過(guò)轉(zhuǎn)換軟件被復(fù)制,并且在所復(fù)制的目標(biāo)指令的存儲(chǔ)區(qū)域通過(guò)第二存儲(chǔ)區(qū)域來(lái)代替。目標(biāo)指令和所復(fù)制的目標(biāo)指令在第一處理器核心中被實(shí)施。
在第二處理器核心中,優(yōu)選地實(shí)施第二轉(zhuǎn)換軟件。所述第二轉(zhuǎn)換軟件適宜地是在第一處理器核心中所實(shí)施的軟件的輕微改變的版本。第二轉(zhuǎn)換軟件適宜地不自己(selbst)實(shí)施目標(biāo)指令的二進(jìn)制翻譯,而是優(yōu)選地讀出儲(chǔ)存在翻譯存儲(chǔ)器中的經(jīng)翻譯的目標(biāo)指令。因?yàn)闄z驗(yàn)核心對(duì)于操作系統(tǒng)是不可見的,所以該檢驗(yàn)核心尤其不能執(zhí)行存儲(chǔ)操作,以便可以保證系統(tǒng)中的數(shù)據(jù)一致性。因此第二處理器核心尤其也不實(shí)施復(fù)制功能。代替地,第二轉(zhuǎn)換軟件優(yōu)選地改變所讀出的經(jīng)翻譯的目標(biāo)指令,使得在實(shí)施所讀出的目標(biāo)指令的過(guò)程中應(yīng)當(dāng)訪問(wèn)的存儲(chǔ)區(qū)域由第三存儲(chǔ)區(qū)域代替。該經(jīng)改變的目標(biāo)指令在第二處理器核心中被實(shí)施。
優(yōu)選地,在第一處理器核心中所實(shí)施的目標(biāo)指令和所復(fù)制的目標(biāo)指令以及在第二處理器核心中所實(shí)施的經(jīng)改變的目標(biāo)指令的結(jié)果被相互比較,尤其用于識(shí)別錯(cuò)誤和校正錯(cuò)誤。尤其可以以這種方式識(shí)別永久性錯(cuò)誤,所述永久性錯(cuò)誤例如可能起因于有錯(cuò)誤的輸入?yún)?shù)或起因于微處理器的硬件缺陷。
按照本方法的一種特別有利的實(shí)施方式,微處理器被使用在機(jī)動(dòng)車輛的控制設(shè)備中。優(yōu)選地,通過(guò)實(shí)施目標(biāo)指令來(lái)實(shí)施機(jī)動(dòng)車輛的駕駛員輔助功能和/或與安全性相關(guān)的功能。例如,目標(biāo)指令可以在發(fā)動(dòng)機(jī)調(diào)節(jié)過(guò)程中作為與安全性相關(guān)的功能被執(zhí)行,或通過(guò)目標(biāo)指令可以影響轉(zhuǎn)向、制動(dòng)、加速等。
用于駕駛員輔助功能的示例是間距調(diào)節(jié)巡航控制(adaptivecruisecontrol(自適應(yīng)巡航控制),acc)、轉(zhuǎn)彎輔助、停車輔助、輪轍保持輔助、自主縱向引導(dǎo)(l?ngsführung)、注意力輔助或者疲勞識(shí)別、電子穩(wěn)定程序(esp)、發(fā)動(dòng)機(jī)拖曳扭矩調(diào)節(jié)(motor-schleppmoment-regelung)(msr)、牽引力滑動(dòng)調(diào)節(jié)(antriebsschlupfregelung)(asr)、防抱死制動(dòng)系統(tǒng)(antiblockiersystem)(abs)以及在自動(dòng)化行駛過(guò)程中的功能。
例如機(jī)動(dòng)車輛的控制設(shè)備的按照本發(fā)明的微處理器尤其在程序技術(shù)上被設(shè)立用于執(zhí)行按照本發(fā)明的方法。
以計(jì)算機(jī)程序的形式實(shí)現(xiàn)本方法也是有利的,因?yàn)橛绕洚?dāng)進(jìn)行實(shí)施的控制設(shè)備還被用于其他任務(wù)并且因此反正是存在的時(shí),這引起特別小的成本。用于提供計(jì)算機(jī)程序的適當(dāng)?shù)臄?shù)據(jù)載體尤其是磁存儲(chǔ)器、光學(xué)存儲(chǔ)器和電存儲(chǔ)器、諸如硬盤、閃存存儲(chǔ)器、eeprom、dvd以及其他等等。經(jīng)由計(jì)算機(jī)網(wǎng)絡(luò)(因特網(wǎng)、內(nèi)聯(lián)網(wǎng)等)下載程序也是可能的。
從說(shuō)明書和附圖中得到本發(fā)明的其他優(yōu)點(diǎn)和擴(kuò)展方案。
本發(fā)明根據(jù)實(shí)施例在附圖中示意性地示出,并且隨后參考附圖被描述。
附圖說(shuō)明
圖1示意性地示出按照本發(fā)明的微處理器的一種優(yōu)選的擴(kuò)展方案,所述微處理器被設(shè)立用于,執(zhí)行按照本發(fā)明的方法的一種優(yōu)選的實(shí)施方式。
圖2示意性地示出按照本發(fā)明的微處理器的另一優(yōu)選的擴(kuò)展方案,所述微處理器被設(shè)立用于,執(zhí)行按照本發(fā)明的方法的一種優(yōu)選的實(shí)施方式。
具體實(shí)施方式
在圖1中示意性地示出了按照本發(fā)明的微處理器的一種優(yōu)選的擴(kuò)展方案,并且用100表示。微處理器100優(yōu)選地是機(jī)動(dòng)車輛的控制設(shè)備(例如發(fā)動(dòng)機(jī)控制設(shè)備)的部分,并且例如被使用用于在發(fā)動(dòng)機(jī)控制過(guò)程中執(zhí)行與安全性相關(guān)的功能。
為了能夠滿足在機(jī)動(dòng)車輛領(lǐng)域中的安全性條件,微處理器100尤其在程序技術(shù)上(programmtechnisch)被設(shè)立用于執(zhí)行按照本發(fā)明的方法的一種優(yōu)選的實(shí)施方式,其中所述安全性條件例如在準(zhǔn)則iso26262中被描述。
在本方法的過(guò)程中,程序代碼通過(guò)動(dòng)態(tài)二進(jìn)制翻譯(übersetzung)被翻譯成微處理器的指令集架構(gòu),所述程序代碼例如在x86指令集架構(gòu)中被編碼。此外,執(zhí)行程序代碼的錯(cuò)誤監(jiān)控和冗余實(shí)施。為此目的,在微處理器中實(shí)施轉(zhuǎn)換軟件(umwandlungssoftware)110、例如所謂的動(dòng)態(tài)二進(jìn)制翻譯軟件。
程序代碼和相應(yīng)的源指令例如被儲(chǔ)存在微處理器100的存儲(chǔ)單元101中、例如儲(chǔ)存在閃存存儲(chǔ)器(flash-speicher)中。源指令由轉(zhuǎn)換軟件110從存儲(chǔ)單元101中讀入。
由轉(zhuǎn)換軟件110的解釋功能(解釋器(interpreter))111執(zhí)行源指令的動(dòng)態(tài)二進(jìn)制翻譯。在通過(guò)解釋功能111將源指令翻譯成了目標(biāo)指令之后,目標(biāo)指令被緩存在高速緩沖存儲(chǔ)器112中,其中所述目標(biāo)指令以微處理器的指令集架構(gòu)被編碼。
通過(guò)優(yōu)化功能113(優(yōu)化器(optimizer)),在高速緩沖存儲(chǔ)器112中所緩存的目標(biāo)指令可以被編譯。在此,目標(biāo)指令的確定屬性可以被最小化或最大化或優(yōu)化,例如為了實(shí)施目標(biāo)指令所需要的時(shí)間可以被最小化。
在優(yōu)化之后,通過(guò)復(fù)制功能114、重命名功能115和比較功能116處理目標(biāo)指令。
通過(guò)復(fù)制功能114復(fù)制目標(biāo)指令,并且通過(guò)重命名功能115,總是通過(guò)第二存儲(chǔ)區(qū)域代替以所復(fù)制的目標(biāo)指令命名的存儲(chǔ)區(qū)域,其方式是相應(yīng)的存儲(chǔ)區(qū)域的地址被重命名。
通過(guò)比較功能116創(chuàng)建比較指令,以便將目標(biāo)指令的結(jié)果與相應(yīng)的所復(fù)制的目標(biāo)指令的結(jié)果分別相互比較。
目標(biāo)指令(1)、(2)、(3)的息息相關(guān)的系列例如可以看起來(lái)如下:
通過(guò)上述指令中的第一指令(1),來(lái)自寄存器r4的數(shù)據(jù)例如可以被加載到寄存器r0中。類似地,可以通過(guò)上述第二指令(2)將來(lái)自寄存器r5的數(shù)據(jù)加載到寄存器r1中。在寄存器r0和r1中的值通過(guò)第三指令(3)相加,并且相應(yīng)的結(jié)果被寫到寄存器r3中。
通過(guò)應(yīng)用復(fù)制、重命名和比較功能114、115、116,上述目標(biāo)指令中的第一目標(biāo)指令(1)例如被改變?yōu)橛扇齻€(gè)指令(1)、(1')(1'')組成的集(satz):
指令(1')在此是所復(fù)制的目標(biāo)指令(1),其中寄存器r0由寄存器r10代替或者相應(yīng)地被重命名了。通過(guò)指令(1''),寄存器r0和r10的內(nèi)容被比較。如果所述兩個(gè)寄存器的內(nèi)容不同,那么可以推斷出在指令(1)的實(shí)施中的錯(cuò)誤。
類似地,通過(guò)復(fù)制、重命名和比較功能114、115、116,第二目標(biāo)指令(2)例如被改變?yōu)橛芍噶睿?)、(2')、(2'')組成的以下集:
在所復(fù)制的目標(biāo)指令(2')中,寄存器r1由寄存器r11代替了或者被重命名了。寄存器r1和r11的內(nèi)容通過(guò)指令(2'')被比較。兩個(gè)寄存器的差別表明在指令(2)的實(shí)施中的錯(cuò)誤。
也可設(shè)想的是,改變目標(biāo)指令(1)和(2),使得恒定的偏移值被添加給所讀入的數(shù)據(jù)。目標(biāo)指令(1)在此例如可以被改變成以下指令集:
按照該所復(fù)制的指令(1*),寄存器r4和r63的內(nèi)容被相加,并且被加載到寄存器r10中。在寄存器r63中,例如可以儲(chǔ)存相應(yīng)的恒定的偏移值。
類似地,目標(biāo)指令(2)可以如下被改變,
按照所復(fù)制的指令(2*),來(lái)自寄存器r63的恒定的偏移值也被添加給寄存器r5的內(nèi)容。
第三目標(biāo)指令通過(guò)復(fù)制、重命名和比較功能114、115、116例如被改變成以下指令集:
在該情況下,在所復(fù)制的目標(biāo)指令(3')中尤其兩個(gè)存儲(chǔ)區(qū)域被重命名,也即一方面寄存器r0被重命名為寄存器r10并且另一方面寄存器r1被重命名為寄存器r11。通過(guò)指令(3''),寄存器r3和r13的內(nèi)容被比較。如果兩個(gè)寄存器內(nèi)容不同,那么可以推斷出指令(3)的有錯(cuò)誤的實(shí)施。
在應(yīng)用了復(fù)制、重命名和比較功能114、115、116之后,相應(yīng)的目標(biāo)指令(1)、(2)、(3)、所復(fù)制的目標(biāo)指令(1')、(2')、(3')或者(1*)、(2*)、(3')和比較指令(1'')、(2'')、(3'')由轉(zhuǎn)換軟件110被轉(zhuǎn)發(fā)給微處理器100的特殊硬件模塊120并且由所述硬件模塊120實(shí)施。
例如,指令首先被傳送給調(diào)度器(scheduler)121,所述調(diào)度器121協(xié)調(diào)時(shí)間進(jìn)程,其中按照所述時(shí)間進(jìn)程實(shí)施指令。按照所述時(shí)間進(jìn)程,指令在實(shí)施模塊122中、例如在算術(shù)邏輯單元(alu)中被實(shí)施。寫模塊113可以將所執(zhí)行的指令的結(jié)果寫到相應(yīng)的存儲(chǔ)區(qū)域或寄存器中。
在圖2中示出了按照本發(fā)明的微處理器的另一優(yōu)選的擴(kuò)展方案,并且用200表示,所述微處理器具有兩個(gè)處理器核心201和202。在圖1和2中的相同的附圖標(biāo)記表示(結(jié)構(gòu))相同的功能或元件。
類似于來(lái)自圖1的微處理器100,來(lái)自圖2的微處理器200也在機(jī)動(dòng)車輛的、用于控制發(fā)動(dòng)機(jī)的控制設(shè)備中被使用。
第一處理器核心201被用作主核心(master-kern)。在所述主核心中,類似于圖1地實(shí)施轉(zhuǎn)換軟件210。然而與圖1不同,在該示例中由轉(zhuǎn)換軟件210僅實(shí)施復(fù)制功能214和重命名功能215,而不實(shí)施比較功能。此外,由解釋功能111創(chuàng)建的并且通過(guò)優(yōu)化功能113編譯的目標(biāo)指令從轉(zhuǎn)換軟件210被儲(chǔ)存在翻譯存儲(chǔ)器203中,其中所述目標(biāo)指令被緩存在高速緩沖存儲(chǔ)器112中,所述翻譯存儲(chǔ)器203例如被構(gòu)造為微處理器200的全局閃存存儲(chǔ)器。
第二處理器核心202用作用于檢驗(yàn)主核心(master-kern)201的檢驗(yàn)核心。檢驗(yàn)核心202尤其對(duì)于在主核心201中運(yùn)行的操作系統(tǒng)是不可見的。
第二轉(zhuǎn)換軟件220在檢驗(yàn)核心202中被實(shí)施。然而,轉(zhuǎn)換軟件220既不執(zhí)行解釋功能也不執(zhí)行優(yōu)化功能,而是讀出儲(chǔ)存在翻譯存儲(chǔ)器203中的目標(biāo)指令,并且將所述目標(biāo)指令復(fù)制到第二處理器核心202的高速緩沖存儲(chǔ)器222中。
因?yàn)闄z驗(yàn)核心202對(duì)于操作系統(tǒng)是不可見的,所以該檢驗(yàn)核心尤其不能執(zhí)行存儲(chǔ)操作,以便可以保證系統(tǒng)中的數(shù)據(jù)一致性。因此,第二轉(zhuǎn)換軟件220也不實(shí)施復(fù)制功能,而是僅實(shí)施重命名功能225。
目標(biāo)指令的息息相關(guān)的序列例如可以包括結(jié)合圖1闡述的目標(biāo)指令(1)、(2)、(3)以及另一目標(biāo)指令(4):
通過(guò)第四指令(4),將來(lái)自寄存器r3的結(jié)果儲(chǔ)存在寄存器r6中。
通過(guò)轉(zhuǎn)換軟件210的復(fù)制功能和重命名功能214、215,指令(4)被復(fù)制并且如下被改變:
寄存器r6在所復(fù)制的目標(biāo)指令(4')中由寄存器r16代替。
由第二轉(zhuǎn)換軟件220的重命名功能225直接地重命名指令(4)的寄存器。重命名功能225因此將指令(4)改變成以下經(jīng)改變的目標(biāo)指令(4*):
轉(zhuǎn)換軟件210將目標(biāo)指令(1)至(4)以及所復(fù)制的指令(4')轉(zhuǎn)交給第一處理器核心201的相應(yīng)的調(diào)度器121,所述目標(biāo)指令在所述第一處理器核心201中被實(shí)施。類似地,目標(biāo)指令(1)至(4)以及(4*)在第二處理器核心202中被實(shí)施。
在各個(gè)指令被實(shí)施并且所述指令的結(jié)果被儲(chǔ)存在相應(yīng)的處理器核心的相應(yīng)的寄存器r16中之后,所述各個(gè)結(jié)果被相互比較用于識(shí)別錯(cuò)誤。所述比較可以由微處理器200自身執(zhí)行,或也可以由外部計(jì)算單元執(zhí)行。在后一種情況下,相應(yīng)的寄存器的數(shù)據(jù)例如可以通過(guò)存儲(chǔ)器直接存取單元(directmemoryaccesseinheit(直接存儲(chǔ)器存取單元),dma單元)讀出,并且數(shù)據(jù)可以由存儲(chǔ)器直接存取單元例如經(jīng)由以太網(wǎng)連接或經(jīng)由現(xiàn)場(chǎng)總線、諸如spi被轉(zhuǎn)發(fā)給外部計(jì)算單元。