專利名稱:在具有至少兩個(gè)執(zhí)行單元的計(jì)算機(jī)系統(tǒng)中對程序代碼的執(zhí)行進(jìn)行分離的方法和設(shè)備的制作方法
背景技術(shù):
由α粒子或者宇宙輻射所引起的瞬時(shí)故障對于集成半導(dǎo)體電路來說日益成為一個(gè)問題。以下概率由于減小的結(jié)構(gòu)寬度、下降的電壓和更高的時(shí)鐘頻率而增加,即由α粒子或者宇宙輻射所引起的電壓峰值在集成電路中使邏輯值失真。結(jié)果可能是錯(cuò)誤的計(jì)算結(jié)果。因此,在安全性重要的系統(tǒng)中、尤其在機(jī)動(dòng)車中,這種故障必須可靠地被檢測。在必須可靠地檢測電子設(shè)備的功能失誤的安全性重要的系統(tǒng)、諸如機(jī)動(dòng)車中的ABS調(diào)節(jié)系統(tǒng)中,冗余度通常在這種系統(tǒng)的相應(yīng)的控制裝置中被用于故障識(shí)別。因此,例如在公知的ABS系統(tǒng)中,完整的微控制器分別是加倍的,其中冗余地計(jì)算所有ABS功能,并且對一致性進(jìn)行檢查。如果出現(xiàn)結(jié)果的不一致,則ABS系統(tǒng)被斷開。
一方面,微控制器的基本組件是存儲(chǔ)模塊(例如RAM、ROM、高速緩存)、核心和輸入/輸出接口、所謂的外圍設(shè)備(例如A/D轉(zhuǎn)換器、CAN接口)。因?yàn)榇鎯?chǔ)元件可以利用校驗(yàn)碼(奇偶或者ECC)有效地被監(jiān)控,并且外圍設(shè)備通常專用地作為傳感器或者執(zhí)行元件信號路徑的一部分被監(jiān)控,所以在微控制器的核心唯一地加倍時(shí)存在其它的冗余方案。
這種具有兩個(gè)集成核心的微控制器也被稱為雙核心結(jié)構(gòu)。兩個(gè)核心冗余地并且時(shí)鐘同步地(步鎖(Lockstep)模式)執(zhí)行相同的程序段,兩個(gè)核心的結(jié)果被比較,并且于是在對一致性進(jìn)行比較時(shí),故障被識(shí)別。雙核心系統(tǒng)的這種配置也被稱為比較模式。
在其它的應(yīng)用中,雙核心結(jié)構(gòu)也被用于提高效率、也即用于提高性能。兩個(gè)核心執(zhí)行不同的程序、程序段和指令,因此可以實(shí)現(xiàn)效率提高,因此雙核心系統(tǒng)的這種配置可以被稱為性能模式。該系統(tǒng)也被稱為對稱多處理器系統(tǒng)(SMP)。
這種系統(tǒng)的擴(kuò)展是借助于對特定地址的訪問和專用的硬件設(shè)備通過軟件在這兩種模式之間的轉(zhuǎn)換。在比較模式中,核心的輸出信號被相互比較。在性能模式中,兩個(gè)核心作為對稱多處理器系統(tǒng)(SMP)工作,并且執(zhí)行不同的程序、程序段或者指令。
發(fā)明內(nèi)容
在這種系統(tǒng)中問題是,在從比較模式過渡到性能模式時(shí)順序地分離程序流程。因此,本發(fā)明的任務(wù)是,提供能夠以簡單的形式實(shí)現(xiàn)這種分離的方法和裝置。
有利地使用一種用于在具有至少兩個(gè)執(zhí)行單元的計(jì)算機(jī)系統(tǒng)中對程序代碼的執(zhí)行進(jìn)行分離的方法,其中在至少兩種運(yùn)行模式之間進(jìn)行轉(zhuǎn)換,并且第一運(yùn)行模式對應(yīng)于比較模式,而第二運(yùn)行模式對應(yīng)于性能模式,并且至少兩個(gè)執(zhí)行單元在比較模式中執(zhí)行相同的程序代碼,其特征在于,在從比較模式轉(zhuǎn)換到性能模式時(shí)通過以下方式進(jìn)行程序代碼的分離,即給每個(gè)執(zhí)行單元分配標(biāo)識(shí),并且根據(jù)所述標(biāo)識(shí)將不同的程序代碼分配給至少兩個(gè)執(zhí)行單元。
有利地使用一種方法,其中所述標(biāo)識(shí)分別被包含在執(zhí)行單元的存儲(chǔ)器、尤其是寄存器中。
有利地使用一種方法,其中所述標(biāo)識(shí)分別被包含在執(zhí)行單元的狀態(tài)寄存器中。
有利地使用一種方法,其中所述標(biāo)識(shí)分別被包含在執(zhí)行單元的中斷狀態(tài)寄存器中。
有利地使用一種方法,其中所述標(biāo)識(shí)分別被包含在執(zhí)行單元的中斷屏蔽寄存器中。
有利地使用一種方法,其中根據(jù)每個(gè)執(zhí)行單元的標(biāo)識(shí)引用(verweisen)可預(yù)先給定的地址,其中所述執(zhí)行單元執(zhí)行在該地址處開始的程序代碼。
有利地使用一種方法,其中對可預(yù)先給定的地址的相應(yīng)引用通過地址指針來實(shí)現(xiàn)。
有利地使用一種方法,其中對可預(yù)先給定的地址的相應(yīng)引用通過轉(zhuǎn)移指令來實(shí)現(xiàn)。
有利地使用一種方法,其中將每個(gè)標(biāo)識(shí)與至少一個(gè)預(yù)先給定的標(biāo)識(shí)進(jìn)行比較,并且在一致時(shí)分配預(yù)先給定的程序代碼。
有利地使用一種方法,其中將每個(gè)標(biāo)識(shí)與至少一個(gè)預(yù)先給定的標(biāo)識(shí)進(jìn)行比較,并且在所有標(biāo)識(shí)不一致時(shí)識(shí)別出將導(dǎo)致未定義的狀態(tài)的事件。
有利地使用一種用于在具有至少兩個(gè)執(zhí)行單元的計(jì)算機(jī)系統(tǒng)中對程序代碼的執(zhí)行進(jìn)行分離的設(shè)備,其中在至少兩種運(yùn)行模式之間進(jìn)行轉(zhuǎn)換,并且第一運(yùn)行模式對應(yīng)于比較模式,而第二運(yùn)行模式對應(yīng)于性能模式,并且至少兩個(gè)執(zhí)行單元在比較模式中執(zhí)行相同的程序代碼,其特征在于,所述設(shè)備如此被構(gòu)造,使得在從比較模式轉(zhuǎn)換到性能模式時(shí)通過以下方式實(shí)現(xiàn)程序代碼的分離,即給每個(gè)執(zhí)行單元分配標(biāo)識(shí),并且根據(jù)所述標(biāo)識(shí)將不同的程序代碼分配給至少兩個(gè)執(zhí)行單元。
有利地使用一種設(shè)備,所述設(shè)備包含存儲(chǔ)有每個(gè)執(zhí)行單元的標(biāo)識(shí)的存儲(chǔ)器、尤其是寄存器。
有利地使用一種設(shè)備,其中每個(gè)執(zhí)行單元包含分別存儲(chǔ)有該執(zhí)行單元的標(biāo)識(shí)的狀態(tài)寄存器。
有利地使用一種設(shè)備,所述設(shè)備包含至少一個(gè)存儲(chǔ)有執(zhí)行單元的標(biāo)識(shí)的中斷狀態(tài)寄存器。
有利地使用一種設(shè)備,所述設(shè)備包含至少一個(gè)存儲(chǔ)有執(zhí)行單元的標(biāo)識(shí)的中斷屏蔽寄存器。
有利地使用一種計(jì)算機(jī)系統(tǒng)的執(zhí)行單元,所述計(jì)算機(jī)系統(tǒng)具有用于在具有至少兩個(gè)執(zhí)行單元的計(jì)算機(jī)系統(tǒng)中對程序代碼的執(zhí)行進(jìn)行分離的設(shè)備,其中在至少兩種運(yùn)行模式之間進(jìn)行轉(zhuǎn)換,并且第一運(yùn)行模式對應(yīng)于比較模式,而第二運(yùn)行模式對應(yīng)于性能模式,并且至少兩個(gè)執(zhí)行單元在比較模式中執(zhí)行相同的程序代碼,其特征在于,所述設(shè)備如此被構(gòu)造,使得在從比較模式轉(zhuǎn)換到性能模式時(shí)通過以下方式實(shí)現(xiàn)程序代碼的分離,即給每個(gè)執(zhí)行單元分配標(biāo)識(shí),并且根據(jù)所述標(biāo)識(shí)將不同的程序代碼分配給至少兩個(gè)執(zhí)行單元。
有利地使用一種計(jì)算機(jī)系統(tǒng),其具有兩個(gè)執(zhí)行單元和用于在具有至少兩個(gè)執(zhí)行單元的計(jì)算機(jī)系統(tǒng)中對程序代碼的執(zhí)行進(jìn)行分離的設(shè)備,其中在至少兩種運(yùn)行模式之間進(jìn)行轉(zhuǎn)換,并且第一運(yùn)行模式對應(yīng)于比較模式,而第二運(yùn)行模式對應(yīng)于性能模式,并且至少兩個(gè)執(zhí)行單元在比較模式中執(zhí)行相同的程序代碼,其特征在于,所述設(shè)備如此被構(gòu)造,使得在從比較模式轉(zhuǎn)換到性能模式時(shí)通過以下方式實(shí)現(xiàn)程序代碼的分離,即給每個(gè)執(zhí)行單元分配標(biāo)識(shí),并且根據(jù)所述標(biāo)識(shí)將不同的程序代碼分配給至少兩個(gè)執(zhí)行單元。
其它的優(yōu)點(diǎn)和有利的擴(kuò)展方案從權(quán)利要求的特征以及說明書中得出。
在圖1中示出了一種多處理器系統(tǒng)G60,其具有兩個(gè)執(zhí)行單元G10a、G10b、比較單元G20、轉(zhuǎn)換單元G50、和轉(zhuǎn)換愿望識(shí)別單元G40。
在圖2中示出了一種多處理器系統(tǒng)G60,其具有兩個(gè)執(zhí)行單元G10a、G10b、由比較單元G20和轉(zhuǎn)換單元G50所組成的組合式比較和轉(zhuǎn)換單元G70、以及轉(zhuǎn)換愿望識(shí)別單元G40。
在圖3中示出了一種多處理器系統(tǒng)G60,其具有兩個(gè)執(zhí)行單元G10a、G10b、由比較單元G20和轉(zhuǎn)換單元G50和轉(zhuǎn)換愿望識(shí)別單元G40所組成的組合式轉(zhuǎn)換愿望識(shí)別、比較和轉(zhuǎn)換單元G80。
在圖4中示出了一種具有兩個(gè)執(zhí)行單元G210a、G210b以及轉(zhuǎn)換和比較單元G260的多處理器系統(tǒng)G200。
在圖5中以流程圖的形式示出了一種方法,所述方法在特定的流水線級G230a、G230b內(nèi)使特定的未定義的位組合與NOP或者其它中立的位組合交換。
在圖6中示出一種具有兩個(gè)執(zhí)行單元H210a、H210b以及轉(zhuǎn)換和比較單元H260的多處理器系統(tǒng)H200。
在圖7中以流程圖的形式示出了一種方法,所述方法說明在具有兩個(gè)執(zhí)行單元的多處理器系統(tǒng)中在從比較模式轉(zhuǎn)換到性能模式時(shí)如何能夠借助于單元ID來分離程序流程。
在圖8中示出了一種在具有三個(gè)執(zhí)行單元的多處理器系統(tǒng)中在從比較模式轉(zhuǎn)換到性能模式時(shí)如何能夠借助于單元ID來分離程序流程的可能方法。
在圖9中以流程圖的形式示出了一種方法,所述方法在從性能模式轉(zhuǎn)換到比較模式時(shí)使執(zhí)行單元同步。
在圖10中示出了一種狀態(tài)自動(dòng)機(jī),其示出在性能和比較模式之間的轉(zhuǎn)換。
在圖11中示出了一種多處理器系統(tǒng)G400,其具有兩個(gè)執(zhí)行單元以及兩個(gè)包括其中所含有的中斷屏蔽寄存器G430a、G430b在內(nèi)的中斷控制器G420a、G420b和不同的中斷源G440a至G440n。
在圖12中示出一種包括兩個(gè)執(zhí)行單元、轉(zhuǎn)換和比較單元、以及具有三個(gè)寄存器組的中斷控制器的多處理器系統(tǒng)。
在圖13中示出了比較單元的最簡單形式。
圖14示出具有用于補(bǔ)償相位偏移的單元的比較單元。
在圖15中示出了在比較模式中優(yōu)選的組件M700(轉(zhuǎn)換和比較單元)的原理特性。
在圖16中示出了在性能模式中優(yōu)選的組件M700(轉(zhuǎn)換和比較單元)的原理特性。
在圖17中示出了轉(zhuǎn)換和比較單元的一種實(shí)施形式。
在圖18中示出了轉(zhuǎn)換和比較單元的另一實(shí)施形式。
在圖19中示出了產(chǎn)生模式信號的轉(zhuǎn)換和比較單元。
在圖20中示出了轉(zhuǎn)換和比較單元的一般表示。
圖21示出產(chǎn)生一般模式和一般故障信號的轉(zhuǎn)換和比較單元的一般表示。
在圖22中示出了與外部單元的問答通信。
在圖23中示出了與智能執(zhí)行元件的通信。
具體實(shí)施例方式
下面,不僅處理器、核心、CPU、而且FPU(浮點(diǎn)單元)、DSP(數(shù)字信號處理器)、協(xié)處理器或者ALU(算術(shù)邏輯單元)都可以被稱為執(zhí)行單元。
在圖1中示出了一種多處理器系統(tǒng)G60,其具有兩個(gè)執(zhí)行單元G10a、G10b、比較單元G20、轉(zhuǎn)換單元G50、和轉(zhuǎn)換愿望識(shí)別單元G40。
本發(fā)明涉及在圖1、圖2、圖3中所示的多處理器系統(tǒng)G60,所述多處理器系統(tǒng)具有至少兩個(gè)執(zhí)行單元G10a、G10b、比較單元G20、轉(zhuǎn)換單元G50和轉(zhuǎn)換愿望識(shí)別單元G40。轉(zhuǎn)換單元G50具有通向至少兩個(gè)系統(tǒng)接口G30a、G30b的至少兩個(gè)輸出端。寄存器、存儲(chǔ)器和例如數(shù)字輸出端、D/A轉(zhuǎn)換器、通信控制器的外圍設(shè)備能夠經(jīng)由這些接口被控制。該多處理器系統(tǒng)可以以至少兩種運(yùn)行模式、即比較模式(VW)和性能模式(PM)運(yùn)行。
在性能模式中,不同的指令、程序段或者程序在不同的執(zhí)行單元中并行地被執(zhí)行。在該運(yùn)行模式中,比較單元G20被去激活。在該運(yùn)行模式中,轉(zhuǎn)換單元G50如此被配置,使得每個(gè)執(zhí)行單元G10a、G10b與系統(tǒng)接口G30a、G30b相連接。在此,執(zhí)行單元G10a與系統(tǒng)接口G30a相連接,而執(zhí)行單元G10b與系統(tǒng)接口G30b相連接。
在比較模式中,相同的或者同類的指令、程序段或者程序在兩個(gè)執(zhí)行單元G10a、G10b中被執(zhí)行。有利地,這些指令以時(shí)鐘同步的方式被執(zhí)行,但是具有異步性或者所定義的時(shí)鐘偏差的執(zhí)行也是可設(shè)想的。執(zhí)行單元G10a、G10b的輸出信號在比較單元G20中被比較。在不同時(shí),識(shí)別出故障,并且可以采取相應(yīng)的措施。這些措施能夠觸發(fā)故障信號,引入故障處理,對開關(guān)進(jìn)行操作,或者是這些措施和其它可設(shè)想的措施的組合。在一種變型方案中,轉(zhuǎn)換單元G50如此被配置,使得只有一個(gè)信號被連接至系統(tǒng)接口G30a、G30b。在另一種配置中,轉(zhuǎn)換單元僅僅導(dǎo)致所比較的并且因此相同的信號被連接到系統(tǒng)接口G30a、G30b上。
轉(zhuǎn)換愿望識(shí)別單元G40不依賴于正好有效的模式來檢測向另一模式轉(zhuǎn)換的愿望。
在圖2中示出了一種多處理器系統(tǒng)G60,其具有兩個(gè)執(zhí)行單元G10a、G10b、由比較單元G20和轉(zhuǎn)換單元G50所組成的組合式比較和轉(zhuǎn)換單元G70、以及轉(zhuǎn)換愿望識(shí)別單元G40。
如在圖2中所示,在上述事實(shí)情況的實(shí)施形式中,轉(zhuǎn)換單元G50和比較單元G20可以被組合成一個(gè)共同的轉(zhuǎn)換和比較單元(UVE)G70。于是,該共同的組件G70接管單個(gè)組件G50、G20的任務(wù)。在圖15、圖16、圖17、圖18和圖19中示出了UVE G70的實(shí)施變型方案。
如在圖3中所示,在另一實(shí)施形式中,轉(zhuǎn)換愿望識(shí)別單元G40、比較單元G20和轉(zhuǎn)換單元G50可以被組合在一個(gè)共同的組件G80中。在另一(圖中未示出的)實(shí)施形式中,轉(zhuǎn)換愿望識(shí)別單元G40和比較單元G20可以被組合在一個(gè)共同的組件中。轉(zhuǎn)換愿望識(shí)別單元G40與轉(zhuǎn)換單元G50在共同的組件中的組合同樣是可設(shè)想的。
在下文中,如果沒有其它說明,則出發(fā)點(diǎn)是存在轉(zhuǎn)換愿望識(shí)別單元G40以及組合式轉(zhuǎn)換和比較單元G70。
也針對多于兩個(gè)執(zhí)行單元的應(yīng)用,在圖20中示出了轉(zhuǎn)換和比較組件的一般情況。n個(gè)信號N140,...,N14n從n個(gè)待考慮的執(zhí)行單元通向轉(zhuǎn)換和比較組件N100。該轉(zhuǎn)換和比較組件N100可以根據(jù)這些輸入信號產(chǎn)生直至n個(gè)輸出信號N160,...,N16n。在最簡單的情況、即“純性能模式”中,所有信號N14i被引到相應(yīng)的輸出信號N16i。在對立的邊界情況、即“純比較模式”中,所有信號N140,...,N14n只被引到輸出信號N16i中的正好一個(gè)。
借助該圖可以說明如何能夠產(chǎn)生不同的可設(shè)想的模式。為此,在該圖中包含開關(guān)邏輯N110的邏輯組件。該組件不必作為特有的組件存在。決定性的是實(shí)現(xiàn)系統(tǒng)中的所述功能。開關(guān)邏輯N110首先確定到底有多少個(gè)輸出信號。該開關(guān)邏輯進(jìn)一步確定,輸入信號中的哪一個(gè)有助于輸出信號中的哪一個(gè)。在此,一個(gè)輸入信號能夠正好有助于一個(gè)輸出信號。以數(shù)學(xué)形式不同地表述也就是通過開關(guān)邏輯來定義以下函數(shù),該函數(shù)將集合{N160,...,N16n}的元素分配給集合{N140,...,N14n}的每個(gè)元素。
于是,處理邏輯N120針對輸出N16i中的每一個(gè)確定輸入以何種形式有助于該輸出信號。該組件也不必作為特有的組件存在。決定性的又是實(shí)現(xiàn)系統(tǒng)中的所述功能。為了示例性地描述不同的變化可能性,在不限制一般性的情況下假設(shè)輸出N160通過信號N141,...,N14m來產(chǎn)生。如果m=1,這則簡單地對應(yīng)于信號的接通,如果m=2,則信號N141、N142如例如在圖13、圖14中的比較單元中所述的那樣被比較。該比較可以同步地或者異步地被執(zhí)行,可以逐位地或者只對重要的位或者以公差帶執(zhí)行。
如果m>=3,則存在多種可能性。
第一種可能性在于比較所有信號,并且在存在至少兩個(gè)不同的值時(shí)檢測出故障,可選地可以用信令通知所述故障。
第二種可能性在于從m中選擇k(k>m/2)。這可以通過使用比較單元來實(shí)現(xiàn)。如果信號中的一個(gè)被識(shí)別為不同,則可以可選地產(chǎn)生故障信號。如果所有三個(gè)信號都不同,則可能與該故障信號不同的故障信號可以被產(chǎn)生。
第三種可能性在于將這些值輸送給一種算法。這例如可以是平均值、中值的形成或容錯(cuò)算法(FTA)的使用。這種FTA基于刪去輸入值的極值并且對剩余的值進(jìn)行取平均值的行為??梢詫κS嗟闹档恼麄€(gè)集合或者優(yōu)選地對能夠在HW(硬件)中容易形成的子集進(jìn)行這種取平均值。在這種情況下,并不總是需要實(shí)際上對值進(jìn)行比較。在平均值形成中,例如必須只相加并且相除,F(xiàn)TM、FTA或者中值需要部分的分類。必要時(shí)這里也可以在足夠大的極值的情況下可選地輸出故障信號。
將多個(gè)信號處理為一個(gè)信號的這些不同的所述可能性為了簡明而被稱為比較操作。因此,處理邏輯的任務(wù)是為每個(gè)輸出信號并且從而也為所屬的輸入信號確定比較操作的準(zhǔn)確形態(tài)。開關(guān)邏輯N110(也即上述函數(shù))和處理邏輯(也就是說每個(gè)輸出信號、即每個(gè)函數(shù)值的比較操作的確定)的信息的組合是模式信息,并且該模式信息確定模式。該信息在一般情況下當(dāng)然是多值的,也即不能僅僅通過一個(gè)邏輯位來表示。并不是所有在理論上可設(shè)想的模式在所給定的實(shí)施中都是有意義的,優(yōu)選地將限制所允許的模式的數(shù)量。要強(qiáng)調(diào)的是在僅僅兩個(gè)只存在比較模式的執(zhí)行單元的情況下,整個(gè)信息可以只濃縮成僅僅一個(gè)邏輯位。
從性能模式到比較模式的轉(zhuǎn)換在一般情況下通過以下方式來表征,即在性能模式中朝不同的輸出被映射的執(zhí)行單元在比較模式中朝相同的輸出被映射。優(yōu)選地,這通過以下方式來實(shí)現(xiàn),即存在執(zhí)行單元的子系統(tǒng),在所述子系統(tǒng)中,在子系統(tǒng)中要考慮的所有輸入信號N14i在性能模式中都被直接轉(zhuǎn)換到相應(yīng)的輸出信號N16i上,而它們在比較模式中所有都朝一個(gè)輸出被映射。替代地,這種轉(zhuǎn)換也可以通過改變配對來實(shí)現(xiàn)。這通過以下方式來說明,即雖然在本發(fā)明的給定的構(gòu)成中可以這樣限制所允許的模式的數(shù)量,使得情況如此,但是在一般情況下可以不談及性能模式和比較模式。但是可以總是談及從性能模式到比較模式(和相反)的轉(zhuǎn)換。
在運(yùn)行中可以在通過軟件控制的情況下在這些模式之間動(dòng)態(tài)地轉(zhuǎn)換。在此,通過執(zhí)行特定的轉(zhuǎn)換指令、特定的指令序列、明確標(biāo)識(shí)的指令或者通過多處理器系統(tǒng)的執(zhí)行單元中的至少一個(gè)對確定地址的訪問來觸發(fā)該轉(zhuǎn)換。
誤操作(Fehlerschaltung)邏輯N130收集例如由比較單元所產(chǎn)生的故障信號,并且可以可選地通過以下方式被動(dòng)地切換輸出N16i,即該誤操作邏輯例如經(jīng)由開關(guān)中斷這些輸出N16i。
但是下面的例子大多關(guān)注于兩個(gè)執(zhí)行單元的情況,借助該情況可以更簡單地描述大多數(shù)構(gòu)思。
模式之間的轉(zhuǎn)換可以通過不同的方法來編碼。在一種可能的方法中可以使用特殊的轉(zhuǎn)換指令,所述轉(zhuǎn)換指令由轉(zhuǎn)換愿望識(shí)別單元G40檢測。用于對轉(zhuǎn)換進(jìn)行編碼的另一可能的方法是通過對特定的存儲(chǔ)區(qū)的訪問來定義的,所述訪問又由轉(zhuǎn)換愿望識(shí)別單元G40來檢測。另一方法在轉(zhuǎn)換愿望識(shí)別單元G40中分析用信令通知轉(zhuǎn)換的外部信號。下面描述在處理器的現(xiàn)有的指令集中使用未被利用的位組合的方法。該方法的特殊優(yōu)點(diǎn)在于能夠繼續(xù)使用現(xiàn)有的開發(fā)環(huán)境(匯編程序、編譯器、連接器、調(diào)試器)。
在圖4中示出了一種多處理器系統(tǒng)G200,其具有兩個(gè)執(zhí)行單元G210a、G210b以及轉(zhuǎn)換和比較單元G260。為了在比較模式和性能模式之間轉(zhuǎn)換(和反之),至少兩個(gè)執(zhí)行單元G210a、G210b的在匯編程序中沒有被定義的位組合被使用。在指令集的說明中被規(guī)定為未定義的或者非法的所有位組合都應(yīng)當(dāng)被理解為在這種意義上的沒有被定義的或者未定義的位組合。這例如是非法操作數(shù)、非法指令、非法操作。這些未定義的位組合的一般標(biāo)志是正常的執(zhí)行單元在執(zhí)行這樣的位組合時(shí)產(chǎn)生故障信號或者顯示出沒有被定義的特性。因此,這些位組合不需要被用于顯示通常的程序的語義。
因此,如對于單處理器系統(tǒng)來說存在的迄今的開發(fā)環(huán)境可以被用于軟件開發(fā)。這例如可以通過定義宏“SWITCH MODE TO PM(轉(zhuǎn)換模式至PM)”和宏“SWITCH MODE TO VM(轉(zhuǎn)換模式至VM)”來實(shí)現(xiàn),所述宏把相應(yīng)的在上述意義上未定義的位組合插入代碼中的適當(dāng)?shù)奈恢锰帯?br>
于是,這種組合的使用可以被定義為一般的“SWITCH(轉(zhuǎn)換)”宏。于是該宏導(dǎo)致依賴于目前的模式向分別另外的模式的轉(zhuǎn)換。如果在系統(tǒng)中存在多于兩種的不同模式,則為了使用該方法必須存在更多的這種組合,于是優(yōu)選地可以針對每種模式將一個(gè)這種組合用于轉(zhuǎn)換識(shí)別。
根據(jù)本發(fā)明,轉(zhuǎn)換愿望通過在指令集中沒有被定義的位組合來編碼。所述組合不允許在執(zhí)行單元G210a、G210b內(nèi)以通常的方式來處理。由于該原因,建議附加的流水線級(REPLACE級)G230a、G230b,其識(shí)別相應(yīng)的位組合并且用中立的位組合來代替這些相應(yīng)的位組合以便繼續(xù)處理。為此,有利地使用“NOP”(無操作)指令。NOP指令的特征在于,除了指令指針之外,該NOP指令不改變執(zhí)行單元的內(nèi)部狀態(tài)。在此,REPLACE級G230a、G230b被插入在通常第一級、即FETCH級G220a、G220b之后和剩余的流水線級G240a、G240b之前,在匯編程序中沒有被定義的位組合在這里被組合在一個(gè)單元中。
根據(jù)本發(fā)明,如果用于轉(zhuǎn)換的相應(yīng)的位組合已被識(shí)別,則作為流水線單元G215a、G215b中的特定的流水線級G230a、G230b的轉(zhuǎn)換愿望識(shí)別單元G40的這里所示的實(shí)施方案將產(chǎn)生附加的信號G250a、G250b,所述附加的信號用信令通知單獨(dú)的轉(zhuǎn)換單元和比較單元G260可以執(zhí)行處理模式的轉(zhuǎn)換。
REP級G230a、G230b優(yōu)選地被布置在執(zhí)行單元G210a、G210b的流水線單元G215a、G215b中的FET G220a、G220b和剩余的流水線級G240a、G240b之間。在此,REP級G230a、G230b識(shí)別相應(yīng)的位組合,并且在該情況下將NOP指令轉(zhuǎn)發(fā)給剩余的級G240a、G240b。同時(shí),相應(yīng)的信號G250a或者G250b被激活。在所有其它的情況中,REP級G230a、G230b表現(xiàn)中立,也即將所有其它的指令不加改變地傳遞給剩余的級G240a、G240b。
在圖5中以流程圖的形式示出了一種方法,所述方法在特定的流水線級G230a、G230b內(nèi)使特定的未定義的位組合與NOP或者其它中立的位組合交換。在FETCH級G300中,指令、也即位組合從存儲(chǔ)器中被取出。此后在塊G310中辨別所取出的位組合是否對應(yīng)于對轉(zhuǎn)換進(jìn)行編碼的特定的未定義的位組合。如果情況不是如此,則在下一步驟G320中位組合在未改變的情況下被轉(zhuǎn)交給剩余的流水線級G340以便進(jìn)行繼續(xù)處理。如果對轉(zhuǎn)換進(jìn)行編碼的特定的位組合在步驟G310中已被識(shí)別,則該位組合在步驟G330中由NOP位組合來代替,并且然后該NOP位組合被轉(zhuǎn)交給其它流水線級G340以便進(jìn)行繼續(xù)處理。在一種有利的實(shí)施形式中,塊G310、G320、G330表示根據(jù)本發(fā)明的REPLACE級G230a、G230b的功能,其中這些塊也可以包含其它功能。
在圖6中示出了一種多處理器系統(tǒng)H200,其具有兩個(gè)執(zhí)行單元H210a、H210b以及一個(gè)轉(zhuǎn)換和比較單元H260。組件H220a、H220b、H240a、H240b具有與G220a、G220b、G240a、G240b相同的意義。在這里通過特定的流水線級H230a、H230b所描述的轉(zhuǎn)換愿望識(shí)別單元G40的一種替代的實(shí)施方案中,所述單元除了具有用信令通知轉(zhuǎn)換的信號H250a、H250b之外還具有其它信號。為了能夠使執(zhí)行單元H210a、H210b在從性能模式轉(zhuǎn)換到比較模式時(shí)同步,執(zhí)行單元H210a、H210b的流水線單元H215a、H215b分別具有一個(gè)信號輸入H280a、H280b,利用該信號輸入能夠停止處理。該信號由交換和比較單元H260為首先已經(jīng)識(shí)別出轉(zhuǎn)換指令并且從而已經(jīng)激活了信號H250a或者H250b的那個(gè)流水線單元H215a或者H215b而設(shè)置。只有當(dāng)執(zhí)行單元H210a、H210b的兩個(gè)流水線單元H215a、H215b已經(jīng)識(shí)別出轉(zhuǎn)換指令并且已經(jīng)通過軟件或者其它硬件措施使其內(nèi)部狀態(tài)同步,所述信號H280a、H280b才又被取消。在從比較模式轉(zhuǎn)換到性能模式時(shí)不需要H280a、H280b,因?yàn)椴恍枰健?br>
這里所述的建議的前提是這樣的單元(被稱為ID單元)或者方法,通過該單元或者方法,每個(gè)執(zhí)行單元都能夠確定其單獨(dú)的號碼或者單元ID。在具有兩個(gè)執(zhí)行單元的系統(tǒng)中,例如一個(gè)執(zhí)行單元自身可以確定號碼0,另一個(gè)執(zhí)行單元可以確定號碼1。在具有多于兩個(gè)的執(zhí)行單元的系統(tǒng)中,號碼相應(yīng)地被分配或者確定。該ID不在比較模式和性能模式之間進(jìn)行區(qū)分,而是唯一地表示一個(gè)執(zhí)行單元。該ID單元可以被包含在相應(yīng)的執(zhí)行單元中,例如被實(shí)施為處理器狀態(tài)寄存器中的位或者位組合,或者被實(shí)施為特有的寄存器、或者單個(gè)位、或者在執(zhí)行單元外部的根據(jù)請求提供相應(yīng)的ID的單元。
在執(zhí)行單元根據(jù)轉(zhuǎn)換愿望執(zhí)行了到性能模式的轉(zhuǎn)換之后,雖然比較單元不再是有效的,但是執(zhí)行單元總是還執(zhí)行相同的指令。這原因在于指令指針不受轉(zhuǎn)換影響,所述指令指針在程序中標(biāo)識(shí)執(zhí)行工作在下一步驟中工作或者目前工作的位置。為了執(zhí)行單元隨后能夠執(zhí)行不同的軟件模塊,執(zhí)行單元的程序流程必須被分開。因此根據(jù)該情況,指令指針在性能模式中通常具有不同的值,因?yàn)楦鶕?jù)本發(fā)明,獨(dú)立的指令、程序段或者程序被處理。在這里所述的建議中通過確定相應(yīng)的執(zhí)行單元號碼來實(shí)現(xiàn)程序流程的分開。根據(jù)執(zhí)行單元具有哪個(gè)ID,該執(zhí)行單元執(zhí)行確定的軟件模決。因?yàn)槊總€(gè)執(zhí)行單元都具有單獨(dú)的號碼或者ID,因此參與的執(zhí)行單元的程序流可以可靠地被分開。
在圖7中以流程圖的形式示出了一種方法,所述方法表明在具有兩個(gè)執(zhí)行單元的多處理器系統(tǒng)中在從比較模式轉(zhuǎn)換到性能模式時(shí)如何能夠借助于單元ID將程序流程分開。在執(zhí)行從比較模式到性能模式的轉(zhuǎn)換G500之后,由兩個(gè)執(zhí)行單元進(jìn)行單元ID或者執(zhí)行單元號碼的詢問G510。在此,根據(jù)本發(fā)明,執(zhí)行單元0將獲得執(zhí)行單元號碼0,執(zhí)行單元1將獲得執(zhí)行單元號碼1。在G510中進(jìn)行所確定的執(zhí)行單元號碼與號碼0的比較。如果這些號碼相同,則該比較已成功的執(zhí)行單元在步驟G520中繼續(xù)進(jìn)行執(zhí)行單元0的編碼。該比較沒有成功的執(zhí)行單元在G530中繼續(xù)進(jìn)行與號碼1的比較。如果該比較成功,則在G540中繼續(xù)進(jìn)行執(zhí)行單元1的編碼。如果該比較沒有成功,則因此為相應(yīng)的執(zhí)行單元確定了不等于0和1的執(zhí)行單元號碼。這是故障情況,并且繼續(xù)進(jìn)行G550。
在圖8中描述了用于三個(gè)執(zhí)行單元的可能的方法。在執(zhí)行從比較模式到性能模式的轉(zhuǎn)換H500之后,由執(zhí)行單元進(jìn)行單元ID或者執(zhí)行單元號碼的詢問H510。在此,根據(jù)本發(fā)明,例如執(zhí)行單元0將獲得執(zhí)行單元號碼0,執(zhí)行單元1將獲得執(zhí)行單元號碼1,并且執(zhí)行單元2將獲得執(zhí)行單元號碼2。在H510中進(jìn)行所確定的執(zhí)行單元號碼與號碼0的比較。如果這些號碼相同,則該比較已成功的執(zhí)行單元在步驟H520中繼續(xù)進(jìn)行執(zhí)行單元0的編碼。該比較沒有成功的執(zhí)行單元在H530中繼續(xù)進(jìn)行與號碼1的比較。在該比較成功的執(zhí)行單元中,在H540中繼續(xù)進(jìn)行執(zhí)行單元1的編碼。該比較沒有成功的比較單元在H535中繼續(xù)進(jìn)行與號碼2的比較。該比較成功的執(zhí)行單元將在H536中繼續(xù)進(jìn)行執(zhí)行單元2的編碼。如果該比較沒有成功,則因此為相應(yīng)的執(zhí)行單元確定了不等于0、1和2的執(zhí)行單元號碼。這是故障情況,并且繼續(xù)進(jìn)行H550。代替與號碼的比較,所確定的執(zhí)行單元號碼也可以直接被用作轉(zhuǎn)移表中的索引。
根據(jù)該說明,該方法也可以被應(yīng)用于具有多于三個(gè)的執(zhí)行單元的多處理器系統(tǒng)。
如果從性能模式轉(zhuǎn)換到比較模式,則必須注意多種情況。在從性能模式轉(zhuǎn)換到比較模式時(shí)必須保證執(zhí)行單元的內(nèi)部狀態(tài)在轉(zhuǎn)換之后是同樣的,否則如果不同的起始狀態(tài)導(dǎo)致不同的輸出,則在比較模式中將可能識(shí)別出故障。這可以通過硬件、通過軟件、通過固件或者以所有三者的組合形式來執(zhí)行。其前提是所有執(zhí)行單元在轉(zhuǎn)換到比較模式之后執(zhí)行相同的或者同樣的指令、程序或者程序段。另外描述了一種同步方法,如果比較模式的特征在于處理相同的指令并且進(jìn)行精確到位的比較,則可應(yīng)用所述同步方法。
在圖9中以流程圖的形式示出一種方法,所述方法使執(zhí)行單元在從性能模式轉(zhuǎn)換到比較模式時(shí)同步。在步驟G600中,所有中斷優(yōu)選地被禁止。這不僅僅是重要的,因?yàn)閷τ诒容^模式來說中斷控制器必須相應(yīng)地被重新編程。還應(yīng)該通過軟件來匹配執(zhí)行單元的內(nèi)部狀態(tài)。但是,如果在準(zhǔn)備轉(zhuǎn)換到比較模式期間中斷被觸發(fā),則在沒有其它花費(fèi)的情況下不再可能匹配。
步驟G610如果兩個(gè)執(zhí)行單元具有單獨(dú)的高速緩存,則還必須在轉(zhuǎn)換之前使高速緩存的內(nèi)容相匹配,以便防止在比較模式中對于一個(gè)執(zhí)行單元的地址來說出現(xiàn)高速緩存命中(Cache-hit),而對于另一執(zhí)行單元來說出現(xiàn)高速緩存未命中(Cache-miss)。如果這不是由高速緩存硬件獨(dú)立地執(zhí)行,則這例如可以通過將所有的高速緩存管線(Cacheline)標(biāo)記為無效來實(shí)現(xiàn)。必須一直等待,直到該高速緩存(或者多個(gè)高速緩存)完全無效。這可以在需要時(shí)通過程序代碼中的等待循環(huán)來保證。這也可以通過其它方法來實(shí)現(xiàn),決定性的是在該步驟之后高速緩存處于相同的狀態(tài)中。
在步驟G620中,執(zhí)行單元的寫緩沖器被清空,以便在轉(zhuǎn)換之后不發(fā)生執(zhí)行單元的激活,所述激活仍由性能模式引起。
在步驟G630中,執(zhí)行單元的流水線級的狀態(tài)被同步。為此,例如在轉(zhuǎn)換序列/轉(zhuǎn)換指令之前執(zhí)行適當(dāng)數(shù)量的NOP(無操作)指令。NOP指令的數(shù)量取決于流水線級的數(shù)量,并且從而依賴于相應(yīng)的結(jié)構(gòu)。哪個(gè)指令適于作為NOP指令同樣依賴于結(jié)構(gòu)。如果執(zhí)行單元具有指令高速緩存,則在此應(yīng)該保證,該指令序列對準(zhǔn)高速緩存管線的邊界(Alignment)。因?yàn)橹噶罡咚倬彺嬖趫?zhí)行該NOP之前已經(jīng)被標(biāo)記為無效,所以該NOP必須首先被加載在高速緩存中。如果該指令序列在高速緩存管線邊界處開始,則在實(shí)現(xiàn)用于轉(zhuǎn)換的指令之前結(jié)束從存儲(chǔ)器(例如RAM/ROM/閃存)到高速緩存的數(shù)據(jù)傳送。這在確定NOP的必要的數(shù)量時(shí)也必須被考慮。
在步驟G640中,用于轉(zhuǎn)換到比較模式的指令步驟實(shí)際被執(zhí)行。
在步驟G650中,使每個(gè)執(zhí)行單元的相應(yīng)的寄存器文件的內(nèi)容相匹配。為此,在轉(zhuǎn)換之前或者之后,寄存器可以被加載相同的內(nèi)容。在此重要的是在寄存器內(nèi)容被向外傳送并且從而由比較單元比較之前,執(zhí)行單元中的寄存器的內(nèi)容在轉(zhuǎn)換之后是相同的。
在步驟G660中,中斷控制器被重新編程,使得外部的中斷信號在所有互連的執(zhí)行單元中觸發(fā)相同的中斷。
在步驟G670中,中斷再次被釋放。
如果從程序流程來看應(yīng)該何時(shí)轉(zhuǎn)換到交換模式中不是明確的,則必須將所打算的轉(zhuǎn)換通知給所參與的執(zhí)行單元。為此,優(yōu)選地在屬于相應(yīng)的執(zhí)行單元的中斷控制器中例如通過軟件來啟動(dòng)中斷。于是中斷處理促使執(zhí)行用于互連的上述序列。
在圖10中示出了狀態(tài)自動(dòng)機(jī),其示出在性能和比較模式之間(和相反)的轉(zhuǎn)換。在由“開機(jī)(Power On)”或者復(fù)位(軟件或硬件)所引起系統(tǒng)啟動(dòng)時(shí),系統(tǒng)經(jīng)由過渡G800被置于狀態(tài)G700。一般適用的是,系統(tǒng)在能夠觸發(fā)復(fù)位的未定義的事件之后總是在狀態(tài)G700中開始工作。能夠觸發(fā)復(fù)位的示例性事件是外部信號、電源的問題或者使繼續(xù)工作不再有意義的內(nèi)部故障事件。因此,轉(zhuǎn)換和比較單元G70以及工作在性能模式中的多處理器系統(tǒng)G60的狀態(tài)G700是系統(tǒng)的默認(rèn)狀態(tài)。在采取通常未定義的狀態(tài)的所有情況中采取默認(rèn)狀態(tài)G700。狀態(tài)G700的這種默認(rèn)調(diào)節(jié)在此通過硬件措施來保證。系統(tǒng)狀態(tài)或者轉(zhuǎn)換和比較單元G60的狀態(tài)例如可以在寄存器中、在寄存器的位中、通過寄存器中的位組合或者通過觸發(fā)器被編碼。
于是通過硬件來保證,在復(fù)位或者開機(jī)之后總是采取狀態(tài)G700。這通過以下方式來保證,即例如復(fù)位信號或者“開機(jī)”信號被引導(dǎo)到觸發(fā)器或者寄存器的復(fù)位輸入端或者設(shè)置輸入端上。
在狀態(tài)G700中,系統(tǒng)工作在性能模式中。因此,執(zhí)行單元G10a、G10b執(zhí)行不同的指令、程序和程序塊。例如可以通過執(zhí)行單元G10a、G10b執(zhí)行特定的轉(zhuǎn)換指令來識(shí)別轉(zhuǎn)換愿望。另外的可能性是通過對特定的存儲(chǔ)器地址的訪問、通過內(nèi)部信號或者也通過外部信號來識(shí)別。只要不存在轉(zhuǎn)換愿望,多處理器系統(tǒng)G60就停留在狀態(tài)G700中,并且從而轉(zhuǎn)換和比較單元G70也停留在狀態(tài)G700中。另外,轉(zhuǎn)換條件的識(shí)別被稱為轉(zhuǎn)換愿望,所述轉(zhuǎn)換條件如在該特定系統(tǒng)中表征轉(zhuǎn)換愿望那樣被表征。
通過過渡G810來表示停留在狀態(tài)G700中。如果轉(zhuǎn)換愿望由執(zhí)行單元G10a識(shí)別出,則轉(zhuǎn)換和比較單元G70經(jīng)由過渡G820被轉(zhuǎn)換到狀態(tài)G710中。狀態(tài)G710因此表示以下情形,即執(zhí)行單元G10a已經(jīng)識(shí)別出轉(zhuǎn)換愿望并且等待,直到執(zhí)行單元G10b同樣識(shí)別出轉(zhuǎn)換愿望為止。只要情況不是如此,轉(zhuǎn)換和比較單元G70就停留在狀態(tài)G710中,這用過渡G830來表示。
如果在狀態(tài)G710中執(zhí)行單元G10b同樣識(shí)別出轉(zhuǎn)換愿望,則過渡G840發(fā)生。因此,轉(zhuǎn)換和比較單元G70采取狀態(tài)G730。該狀態(tài)表示兩個(gè)執(zhí)行單元G10a、G10b已經(jīng)識(shí)別出轉(zhuǎn)換愿望的情形。在狀態(tài)G730中進(jìn)行同步方法,利用所述同步方法使兩個(gè)執(zhí)行單元G10a、G10b彼此同步,以便隨后以比較模式工作。在該過程期間,轉(zhuǎn)換和比較單元G70停留在狀態(tài)G730中,這用過渡G890來表示。
如果在狀態(tài)G700中首先由執(zhí)行單元G10b識(shí)別出轉(zhuǎn)換愿望,則經(jīng)由過渡G860轉(zhuǎn)換到狀態(tài)G720中。狀態(tài)G720因此表示以下情形,即執(zhí)行單元G10b已經(jīng)識(shí)別出轉(zhuǎn)換愿望并且等待,直到執(zhí)行單元G10a同樣識(shí)別出轉(zhuǎn)換愿望為止。只要情況不是如此,轉(zhuǎn)換和比較單元G70就停留在狀態(tài)G720中,這用過渡G870來表示。如果在狀態(tài)G720中執(zhí)行單元G10a同樣識(shí)別出轉(zhuǎn)換愿望,則過渡G880發(fā)生。因此,轉(zhuǎn)換和比較單元采取狀態(tài)G730。
如果在狀態(tài)G700中兩個(gè)執(zhí)行單元G10a、G10b同時(shí)識(shí)別出轉(zhuǎn)換愿望,則立即過渡到狀態(tài)G730中。該情況表示過渡G850。
如果轉(zhuǎn)換和比較單元G70處于狀態(tài)G730中,則兩個(gè)執(zhí)行單元G10a、G10b已經(jīng)識(shí)別出轉(zhuǎn)換愿望。在該狀態(tài)中,執(zhí)行單元G10a、G10b的內(nèi)部狀態(tài)被同步,以便在結(jié)束該同步過程之后以比較模式工作。隨著該同步工作的結(jié)束而發(fā)生過渡G900。該過渡表明同步的結(jié)束。在狀態(tài)G740中,兩個(gè)執(zhí)行單元G10a、G10b以比較模式工作。同步工作的結(jié)束可以由執(zhí)行單元G10a、G10b自己用信令通知。這意味著,如果兩個(gè)執(zhí)行單元G10a、G10b已經(jīng)用信令通知它們準(zhǔn)備以比較模式工作,則過渡G900發(fā)生。該結(jié)束也可以在固定地設(shè)定的時(shí)間內(nèi)用信令來通知。這意味著,在轉(zhuǎn)換和比較單元G70中對在狀態(tài)G730中停留多長時(shí)間固定地進(jìn)行編碼。該時(shí)間如此被設(shè)定,使得兩個(gè)執(zhí)行單元G10a、G10b已經(jīng)可靠地結(jié)束了其同步工作。于是,在經(jīng)過該時(shí)間之后,過渡G900被啟動(dòng)。在另一變型方案中,如果兩個(gè)執(zhí)行單元G10a、G10b已經(jīng)結(jié)束了其同步工作,則轉(zhuǎn)換和比較單元G70可以監(jiān)控并且自己識(shí)別執(zhí)行單元G10a、G10b的狀態(tài)。于是,在識(shí)別之后,開始過渡G900。
只要沒有轉(zhuǎn)換愿望被識(shí)別出,多處理器系統(tǒng)G60就停留在比較模式中,這通過過渡G910來表示。如果在狀態(tài)G740中轉(zhuǎn)換愿望被識(shí)別出,則轉(zhuǎn)換和比較單元經(jīng)由過渡G920被置于狀態(tài)G700中。如已經(jīng)所描述的,系繞在狀態(tài)G700中以性能模式工作。于是,在從狀態(tài)G740過渡到狀態(tài)G700時(shí)程序流程的分開可以如在所述方法中那樣被執(zhí)行。
在圖11中示出了一種多處理器系統(tǒng)G400,其具有兩個(gè)執(zhí)行單元G410a、G410b以及包括其中所包含的中斷屏蔽寄存器G430a、G430b在內(nèi)的兩個(gè)中斷控制器G420a、G420b和不同的中斷源G440a-G440n。另外示出了具有專門的中斷屏蔽寄存器G460的轉(zhuǎn)換和比較單元G450。
有利地,每個(gè)執(zhí)行單元G410a、G410b具有其自身的中斷控制器G420a、G420b,以便能夠在性能模式中同時(shí)處理兩個(gè)中斷。這特別在中斷處理是系統(tǒng)性能的瓶頸的系統(tǒng)中是有利的。在此,中斷源G440a-G440n有利地分別相同地被連接到兩個(gè)中斷控制器G420a、G420b上。這種連接方式導(dǎo)致在沒有其它措施的情況下在兩個(gè)執(zhí)行單元G410a、G410b上觸發(fā)相同的中斷。在性能模式中,中斷控制器G420a、G420b如此被編程,使得相應(yīng)的中斷源G440a-G440n根據(jù)應(yīng)用適當(dāng)?shù)乇环峙涞讲煌膱?zhí)行單元G410a、G410b上。這借助于對中斷屏蔽寄存器G430a、G430b的適當(dāng)編程來實(shí)現(xiàn)。屏蔽寄存器在寄存器中為每個(gè)中斷源G440a-G440n都設(shè)置一個(gè)位。如果該位被設(shè)置,則中斷被禁止,也即該中斷不被轉(zhuǎn)發(fā)給所連接的執(zhí)行單元G410a、G410b。在性能模式中,給定的中斷源G440a-G440n有利地由正好一個(gè)執(zhí)行單元G410a或者G410b處理。這有利地至少適用于中斷源中的一些。因此,可以實(shí)現(xiàn),在不發(fā)生中斷嵌套(中斷處理通過第二中斷被中斷)或者中斷掛起(第二中斷的處理被推遲,直到第一中斷的處理結(jié)束為止)的情況下,多個(gè)中斷源G440a-G440n能夠同時(shí)被處理。
在比較模式中必須保證,中斷控制器G420a、G420b在所有執(zhí)行單元G410a、G410b處同時(shí)觸發(fā)相同的中斷,否則將根據(jù)比較模式識(shí)別出故障。這意味著,在同步階段中在從性能模式轉(zhuǎn)換到比較模式時(shí)必須保證中斷屏蔽寄存器G430a、G430b是相同的。這種同步在圖9中在步驟G660中被描述。這種同步可以通過軟件用以下方式來執(zhí)行,即兩個(gè)中斷屏蔽寄存器G430a、G430b相應(yīng)地以相同的值被編程。建議使用專門的寄存器G460,以便加速轉(zhuǎn)換過程。在一種實(shí)施形式中,該寄存器G460被布置在轉(zhuǎn)換和比較單元G460中,但是也可以被包含在轉(zhuǎn)換愿望識(shí)別單元G40、組合式轉(zhuǎn)換愿望識(shí)別單元、比較單元、轉(zhuǎn)換單元G80以及所有組合中。同樣可以設(shè)想的是,該寄存器被布置在這三個(gè)組件之外另一適當(dāng)?shù)奈恢锰?。寄存器G460包含應(yīng)該在比較模式中適用的中斷屏蔽。轉(zhuǎn)換和比較單元G450從轉(zhuǎn)換愿望識(shí)別單元G40獲得用于從性能轉(zhuǎn)換到比較模式的信號。在中斷可能在步驟G600中被禁止之后,中斷控制器G420a、G420b的中斷屏蔽寄存器G430a、G430b被重新編程。這在轉(zhuǎn)換信號已被獲得并且中斷控制器G420a、G420b已被禁止之后現(xiàn)在通過硬件由轉(zhuǎn)換和比較單元G450與剩余的同步步驟并行地執(zhí)行。有利地,在比較模式中不是單獨(dú)地對中斷屏蔽寄存器G430a、G430b進(jìn)行重新編程,而總是對中央寄存器G460進(jìn)行重新編程。于是,該中央寄存器同步地通過硬件被轉(zhuǎn)移到兩個(gè)中斷屏蔽寄存器G430a、G430b上。這里針對中斷屏蔽寄存器所描述的方法可以以相同的方式被推廣到在中斷控制器中所布置的所有中斷狀態(tài)寄存器。當(dāng)然,也可以設(shè)想代替寄存器G460而使用其它的存儲(chǔ)介質(zhì),其中可以從所述存儲(chǔ)介質(zhì)盡可能快速地轉(zhuǎn)移到中斷屏蔽寄存器G430a、G430b上。
在圖12中建議一種多處理器系統(tǒng)G1000,其包括兩個(gè)執(zhí)行單元G1010a、G1010b、轉(zhuǎn)換和比較單元G1020、以及具有三個(gè)不同的寄存器組G1040a、G1040b、G1050的中斷控制器G1030。如圖12中所示,作為上述解決方案的替代方案,建議一種專用的中斷控制器G1030。該中斷控制器被應(yīng)用在多處理器系統(tǒng)G1000中,該多處理器系統(tǒng)在該例子中被示出為具有兩個(gè)執(zhí)行單元G1010a、G1010b、以及能夠在比較和性能模式之間轉(zhuǎn)換的轉(zhuǎn)換和比較單元G1020。
在此,在性能模式中使用寄存器組G1040a、G1040b。在該情況下,中斷控制器G1030與兩個(gè)中斷控制器G420a、G420b完全一樣地工作。該特性在圖11中被示出和描述。在此,寄存器組G1040a被分配給執(zhí)行單元G1010a,而寄存器組G1040b被分配給執(zhí)行單元G1010b。中斷源G1060a-G1060n通過屏蔽被適當(dāng)?shù)胤峙浣o執(zhí)行單元G1010a、G1010b。在從性能模式轉(zhuǎn)換到比較模式時(shí),轉(zhuǎn)換和比較單元G1020產(chǎn)生信號G1070。該信號用信令通知中斷控制器G1030被轉(zhuǎn)換到比較模式或者系統(tǒng)從該時(shí)刻起以比較模式工作。此后,中斷控制器G1030使用寄存器組G1050。因此保證在兩個(gè)執(zhí)行單元G1010a、G1010b處產(chǎn)生相同的中斷信號。轉(zhuǎn)換和比較單元G1020又通過信號G1070把從比較模式到性能模式的轉(zhuǎn)換用信令通知中斷控制器G1030,隨著所述從比較模式到性能模式的轉(zhuǎn)換又轉(zhuǎn)換到寄存器組G1040a、G1040b。因此,也可以有利地通過以下方式來實(shí)現(xiàn)對相應(yīng)的寄存器組的保護(hù),即在性能模式中只允許對寄存器組G1040a、G1040b的寫,并且通過硬件來禁止對為比較模式保留的寄存器組G1050的寫。同樣在另一方向上也可以在比較模式中只允許對寄存器組G1050的寫,而禁止對寄存器組G1040a、G1040b的寫。
在圖13中示出了比較單元M500、G20的最簡單形式。具有至少兩個(gè)在性能模式和比較模式之間轉(zhuǎn)換的執(zhí)行單元G10a、G10b的多處理器系統(tǒng)G60中的基本組件是比較單元M500。在圖13中以最簡單的形式示出了該比較單元M500。比較組件M500可以接收兩個(gè)輸入信號M510和M511。然后,該比較組件在這里所示的上下文中優(yōu)選地在逐位一致的意義上比較兩個(gè)輸入信號的一致性。在一致的情況下,輸入信號M510、M511的值被給予輸出信號M520,并且故障信號M530未被激活,也即它用信令通知“良好的”狀態(tài)。如果比較組件檢測出不一致性,則故障信號M530被激活。于是信號M520可以可選地被去激活。這具有以下優(yōu)點(diǎn),即從相應(yīng)的系統(tǒng)中不得出故障(“故障圍堵(fault containment)”)。也就是說,位于執(zhí)行單元之外的其它組件不會(huì)由于潛在的有錯(cuò)誤的信號而被損壞。但是也存在這樣的系統(tǒng),在這些系統(tǒng)中信號M520不必被去激活。如果在系統(tǒng)層面上只要求故障沉默(fail-silence),則例如情況如此。于是,故障信號能夠例如被引向外部。
從該基礎(chǔ)系統(tǒng)出發(fā)可設(shè)想多種實(shí)施形式。組件M500首先可以被實(shí)施為所謂的TSC(全自檢(totally self checking))組件。在這種情況下,故障信號M530在至少兩條線路(“雙軌”)上被引向外部,并且通過內(nèi)部的設(shè)計(jì)和故障發(fā)現(xiàn)措施來保證在比較組件的每種可能的故障情況下正確地存在或者可識(shí)別地不正確地存在該信號。在此,雙軌信號通過兩條線路優(yōu)選地如此提供二進(jìn)制信號,使得兩條線路在無故障的情況下相互反向。在使用本發(fā)明系統(tǒng)時(shí)的優(yōu)選變型方案是使用這種TSC比較單元。
第二類實(shí)施形式可以如下來區(qū)分,即兩個(gè)輸入M510、M511(或者M(jìn)610、M611)必須具有何種同步程度。一種可能的實(shí)施形式通過逐時(shí)鐘的同步來表征,也即數(shù)據(jù)的比較可以在一個(gè)時(shí)鐘內(nèi)被執(zhí)行。
輕微的變化通過以下方式產(chǎn)生,即在兩個(gè)輸入之間有固定的相位偏移時(shí)使用同步延遲元件,該同步延遲元件使相應(yīng)的信號例如延遲多個(gè)半(halbzahlig)時(shí)鐘周期或者整數(shù)個(gè)時(shí)鐘周期。這種相位偏移有助于避免共性原因故障、也即能夠同時(shí)或者同樣地影響多個(gè)處理單元的這種故障原因。
因此,圖14描述另一實(shí)施形式。組件和信號M600、M610、M611、M620、M630具有與圖13中的相應(yīng)的組件和信號M500、M510、M511、M520、M530相同的意義。因此,在圖14中除了這些組件之外還插入了組件M640,其使在時(shí)間上較早的輸入延遲所述相位偏移。優(yōu)選地,該延遲元件被安置在比較單元中,以便只在比較模式中使用該延遲元件。替代地或者補(bǔ)充地,可以將中間緩沖器M650、M651置于輸入鏈中,以便同樣能夠容忍不是純粹的時(shí)鐘或相位偏移的這種異步性。優(yōu)選地,該中間緩沖器被設(shè)計(jì)為FIFO(先進(jìn)先出)存儲(chǔ)器。這種存儲(chǔ)器具有一個(gè)輸入端和一個(gè)輸出端,并且可以存儲(chǔ)多個(gè)存儲(chǔ)字。到達(dá)的存儲(chǔ)字在新的存儲(chǔ)字到達(dá)時(shí)在其位置方面被移動(dòng)。在最后的位置(緩沖器深度)之后,所述存儲(chǔ)字“從存儲(chǔ)器”被移出。如果存在這種緩沖器,則也可以容忍直至緩沖器的最大深度的異步性。在這種情況下,如果緩沖器溢出,則故障信號也必須被輸出。
此外,在比較單元可以根據(jù)如何產(chǎn)生信號M520(或者M(jìn)620)來區(qū)分實(shí)施形式。優(yōu)選的實(shí)施形式是將輸入信號M510、M511(或者M(jìn)610、M611)置于輸出端上,并且使得通過開關(guān)可中斷連接。該實(shí)施形式的特殊優(yōu)點(diǎn)在于,為了在性能模式和可能的不同比較模式之間轉(zhuǎn)換,可以使用相同的開關(guān)。替代地,信號也可以由比較單元內(nèi)部的中間存儲(chǔ)器產(chǎn)生。
最后一類實(shí)施形式可以如下來區(qū)分,即在比較單元處存在多少個(gè)輸入并且比較單元應(yīng)該如何作出反應(yīng)。在三個(gè)輸入的情況下可以進(jìn)行多數(shù)表決、所有三個(gè)信號的比較或者只有兩個(gè)信號的比較。在四個(gè)或者更多輸入的情況下相應(yīng)地可設(shè)想多種實(shí)施形式??赡艿膶?shí)施形式的詳盡的描述被包含在圖20的描述中。
實(shí)施形式的準(zhǔn)確選擇優(yōu)選地應(yīng)該與整個(gè)系統(tǒng)的不同的運(yùn)行模式相結(jié)合。也就是說,如果存在多個(gè)不同的性能或者比較模式,則這些模式優(yōu)選地與比較單元的相應(yīng)的模式相結(jié)合。
在本發(fā)明的一些地方,去激活比較單元或者一般的表決/處理/分類元件(下面為了簡單起見總是被稱為比較單元)或者使其無效是必要的或者有利的。為此存在多種可能性。一方面,可以將信號引向該比較單元,利用該信號激活或者去激活該比較單元。為此,可以在比較單元中插入附加的邏輯,這可以由所述附加的邏輯執(zhí)行。另一可能性是不將要比較的數(shù)據(jù)輸送給比較單元。第三可能性是在系統(tǒng)層面上忽略比較單元的故障信號。此外,也可以自己中斷故障信號。所有可能性的共同點(diǎn)是,潛在地被比較的兩個(gè)或者更多數(shù)據(jù)是不同的,這在系統(tǒng)中是無關(guān)緊要的。如果情況如此,則比較單元被認(rèn)為是被動(dòng)的或者去激活的。
另外,考察與比較單元相連接的轉(zhuǎn)換單元、也即轉(zhuǎn)換和比較單元G70的實(shí)施方案。如果該轉(zhuǎn)換和比較單元與執(zhí)行單元G10a、G10b一起在一個(gè)芯片內(nèi)被實(shí)施,則該實(shí)施方案是特別有利的。
當(dāng)在一個(gè)芯片內(nèi)實(shí)施時(shí),通過組合組件、即比較單元和轉(zhuǎn)換單元只產(chǎn)生非常小的硬件開銷。因此,該實(shí)施方案的優(yōu)選的變型方案是將這兩個(gè)部分組合在一個(gè)組件中。這是具有至少所述輸入信號(輸出執(zhí)行單元1、輸出執(zhí)行單元2)、至少所述輸出信號(輸出1、輸出2)、邏輯輸出信號“總輸出”(在物理上可以與輸出1或者輸出2一致)和比較單元的組件。該組件具有以下能力,即轉(zhuǎn)換模式,在性能模式中允許所有信號通過,而在比較模式中比較多個(gè)信號并且必要時(shí)允許一個(gè)信號通過。另外,其它的輸入和輸出信號也是有利的用于用信令通知所檢測到的故障的故障信號、用于用信令通知所述組件所處于的模式的模式信號、以及來自和通向組件的控制信號。
在優(yōu)選的實(shí)施例中,兩個(gè)或者更多執(zhí)行單元在性能模式中作為主機(jī)被連接到處理器內(nèi)部的總線上。比較單元被去激活,或者在執(zhí)行單元的不同特性的情況下在可設(shè)想的比較模式之一中所產(chǎn)生的故障信號被屏蔽。這意味著,轉(zhuǎn)換和比較單元對于軟件來說是透明的。在所考察的比較模式中,待比較的物理執(zhí)行單元被當(dāng)作總線上的邏輯執(zhí)行單元來對待,也即只出現(xiàn)總線上的主機(jī)。比較單元的故障信號被激活。為此,轉(zhuǎn)換和比較單元使除了一個(gè)執(zhí)行單元之外的所有執(zhí)行單元通過開關(guān)與處理器內(nèi)部的總線分離,使邏輯執(zhí)行單元的輸入加倍,并且將這些輸入提供給所有參與比較模式的執(zhí)行單元。當(dāng)在總線上寫時(shí),輸出在比較單元中被比較,并且在一致時(shí)這些數(shù)據(jù)經(jīng)由至總線的現(xiàn)有入口被寫。
在圖15和圖16中說明了優(yōu)選的組件M700(轉(zhuǎn)換和比較單元,對應(yīng)于G70)的原理特性。為了簡單起見,只針對兩個(gè)執(zhí)行單元來繪制該圖。在此,圖15示出在比較模式中組件的狀態(tài),圖16示出在性能模式中組件的狀態(tài)。在這些模式中的不同的開關(guān)位置由M700通過控制裝置M760來實(shí)現(xiàn)。如果如在圖16中所示的那樣開關(guān)M750和M751閉合,則兩個(gè)執(zhí)行單元M730、M731首先能夠在性能模式中在數(shù)據(jù)和地址總線M710上寫。前提是可能的寫沖突通過總線協(xié)議或者通過其它的未畫出的組件來解決。在比較模式中,該特性至少從邏輯的角度來看是另一種特性。如在圖15中所示,隨后開關(guān)M750、M751被打開,并且因此直接的訪問可能性被中斷。然而與圖16不同,在圖15中隨后開關(guān)M752、M753被閉合。執(zhí)行單元M730、M731的信號M740、M741被引向比較組件M720。該比較組件至少如在圖13中所示的那樣被構(gòu)造,但是也可以包含如在圖14中所示的擴(kuò)展。但是,在圖15和圖16中舍棄了比較組件M720的故障信號或者其它信號。如果兩個(gè)信號一致,則開關(guān)M754被閉合,并且兩個(gè)一致的信號之一隨后被轉(zhuǎn)發(fā)到地址/數(shù)據(jù)總線M710上。總之,對此有必要的是,轉(zhuǎn)換和比較單元M700能夠影響開關(guān)M750-M754。相應(yīng)的開關(guān)位置取決于模式和故障識(shí)別。對此,也涵蓋開關(guān)M754總是閉合的并且適當(dāng)?shù)南到y(tǒng)反應(yīng)通過故障信號產(chǎn)生的變型方案。
在圖17中示出了轉(zhuǎn)換和比較單元的變型方案。對于只具有兩個(gè)執(zhí)行單元G10a、G10b的簡單系統(tǒng)來說也已經(jīng)存在轉(zhuǎn)換和比較單元的實(shí)施的多種變型方案。在圖17中示出了另一種變型方案,如果在比較單元中不能使用緩沖器,則所述另一種變型方案是特別有利的。如在圖15、圖16中那樣,存在執(zhí)行單元的信號M840、M841。所述執(zhí)行單元在該圖中沒有被示出。在本發(fā)明組件M800中存在模式邏輯M810,其預(yù)先給定組件的模式。在性能模式中,該模式邏輯閉合開關(guān)M831,在比較模式中該模式邏輯打開該開關(guān)M831。另外,該模式邏輯將模式信號給予比較單元M820。該比較單元在該實(shí)施方案中總是進(jìn)行比較,但是利用比較的結(jié)果和該模式信號來控制開關(guān)M830。在性能模式中,開關(guān)總是閉合的,在比較模式中如果不存在故障,則總是閉合的。如果故障曾經(jīng)被確定,則當(dāng)然開關(guān)也可以繼續(xù)保持被打開,直到相應(yīng)的復(fù)位到來為止。
在圖18中示出了轉(zhuǎn)換和比較單元的另一實(shí)施形式。雖然該替代方案具有多個(gè)開關(guān),但是為此使比較單元在性能模式中是未激活的,并且因此也可以更輕易地對付異步性。又存在執(zhí)行單元的兩個(gè)信號M940、M941。所述執(zhí)行單元在該圖中又未被示出。在本發(fā)明組件M900中存在模式邏輯M910,其預(yù)先給定組件的模式。在性能模式中,該模式邏輯閉合開關(guān)M931,并且打開開關(guān)M932、M933。因此,在該模式中,不給比較組件M920發(fā)送數(shù)據(jù)。這在異步時(shí)允許更長的緩沖時(shí)間或者在實(shí)施時(shí)更低的緩沖深度。在性能模式中,開關(guān)M930始終是閉合的。在比較模式中,組件M910閉合開關(guān)M932、M933,并且通過打開開關(guān)M931來中斷對總線的直接訪問??蛇x地,模式邏輯M910還可以將模式通知給比較單元M920。在比較模式中,開關(guān)M930在無故障的情況下是閉合的。在故障情況下,比較組件M920通過打開開關(guān)M930來中斷信號M940到總線上的轉(zhuǎn)發(fā)。
在所述的圖中,在沒有花費(fèi)的情況下能夠向外部引導(dǎo)模式或者故障信號。此外,尤其是為了產(chǎn)生內(nèi)部的模式狀態(tài),可以毫無疑問地實(shí)現(xiàn)其它信號通向組件。
因此,總之該組件的優(yōu)選實(shí)施方案的特征在于存在多個(gè)處理單元,其能夠?qū)⑤敵鲂盘枌懙娇偩€(例如地址/數(shù)據(jù)總線)上。重要的是該組件能夠處理(例如比較,但是也可能表決或者分類)執(zhí)行單元的輸出信號中的至少兩個(gè),并且該組件能夠影響至少一個(gè)開關(guān),其中利用所述至少一個(gè)開關(guān)來中斷直接總線訪問中的至少一個(gè)。如果執(zhí)行單元是計(jì)算機(jī)核心,則這是特別有利的。此外有利的是,可影響的開關(guān)的狀態(tài)表征計(jì)算單元的運(yùn)行模式。
如果該組件可以將信號置于地址數(shù)據(jù)總線上,則系統(tǒng)特性、尤其是可能的比較模式特別好地被轉(zhuǎn)換。有利地,該信號是執(zhí)行單元之一的輸出信號之一的接通。替代地,這可以從對不同執(zhí)行單元的不同輸出信號的處理中產(chǎn)生。
如例如已經(jīng)在對圖17、18的描述中變得明顯的,可以在系統(tǒng)中以及(根據(jù)組件的劃分)也在組件之一中識(shí)別模式信息。該模式信息根據(jù)實(shí)施方案甚至可以顯性地存在于子組件中。在一種優(yōu)選的實(shí)施方案中,該信號也可以從該組件被引出,并且被提供給系統(tǒng)的其他部分。
在一般情況下,可以借助圖21來說明根據(jù)本發(fā)明的特性。信號和組件N100、N110、N120、N130、N140、N141、N142、N143、N14n、N160、N161、N162、N163、N16n具有與在圖20中相同的意義。此外,在該圖中畫出了模式信號N150和故障信號N170??蛇x的故障信號由收集故障信號的誤操作邏輯N130產(chǎn)生,并且是單個(gè)故障信號的直接轉(zhuǎn)發(fā)或者是其中所包含的故障信息的集聚。模式信號N150是可選的,但是其在所述組件之外的應(yīng)用在許多地方都可以是有利的。開關(guān)邏輯N110(也即在圖20的描述中所述的函數(shù))和處理邏輯(也即每個(gè)輸出信號、即每個(gè)函數(shù)值的比較操作的確定)的信息的組合是模式信息,并且該模式信息確定模式。當(dāng)然該信息在一般情況下是多值的,也即不能僅僅通過一個(gè)邏輯位來表示。并不是所有在理論上可設(shè)想的模式在給定的實(shí)施方案中都是有意義的,優(yōu)選地限制所允許的模式的數(shù)量。模式信號向外轉(zhuǎn)播重要的模式信息。硬件實(shí)施方案優(yōu)選地如此來表示,使得外部可見的模式信號能夠被配置。優(yōu)選地,處理邏輯和開關(guān)邏輯同樣被可配置地構(gòu)成。優(yōu)選地,這些配置彼此匹配。替代地,也可以僅僅或者補(bǔ)充地向外提供模式信號的變化。這在第二配置中尤其具有優(yōu)點(diǎn)。
優(yōu)選地,該模式信號得到保障。在圖19中例如基于圖17中所示的實(shí)施方案示出二進(jìn)制(Zweiersystem)的實(shí)施方案。在那里,信號M850從轉(zhuǎn)換和比較單元被引出。在二進(jìn)制中,該信息在邏輯上可以通過位來表示。于是,保障可以優(yōu)選地通過雙軌信號來表示。在一般情況下同樣可以通過加倍來保障信號,所述加倍可選地是反轉(zhuǎn)的。替代地,也可以產(chǎn)生奇偶性或者使用CRC(循環(huán)冗余校驗(yàn))或者ECC(糾錯(cuò)碼),所述奇偶性優(yōu)選地在內(nèi)部以自身安全的方式被產(chǎn)生。
模式信號可以在組件之外被使用。首先,所述模式信號可以被用于對運(yùn)行系統(tǒng)進(jìn)行自監(jiān)控。所述模式信號從軟件角度看負(fù)責(zé)轉(zhuǎn)換,并且應(yīng)該總是知道系統(tǒng)處于哪種模式中,并且也使所述系統(tǒng)處于該模式。因此,對該信號的檢驗(yàn)可以被用于保障。這首先可以直接實(shí)現(xiàn)。但是,另一替代的可能性也是經(jīng)由定時(shí)器或者其它“獨(dú)立的”單元利用所述信號使向運(yùn)行系統(tǒng)的詢問合理。
通常,所述信號可選地也可以被用在μC(或者通用計(jì)算單元)的其它數(shù)據(jù)宿中。例如MPU(存儲(chǔ)器保護(hù)單元)可以如此被編程,使得該MPU只在確定的模式中允許(確定的執(zhí)行單元的)確定的存儲(chǔ)器訪問。在此,MPU是一種單元,該單元能夠通過以下方式保證只執(zhí)行所允許的對數(shù)據(jù)/地址總線的訪問,即例如所述單元針對確定的程序部分禁止對確定的地址空間的訪問。通過將模式信號引向MPU、對該MPU進(jìn)行相應(yīng)配置和編程并且分析配置數(shù)據(jù)和模式信號,可以實(shí)現(xiàn)附加的保障。如果模式信號已經(jīng)是用于檢驗(yàn)的充分的信息,則這有時(shí)甚至簡化編程。于是,在μC初始化時(shí)間的準(zhǔn)靜態(tài)編程足夠了。相應(yīng)的內(nèi)容可以適用于外圍單元。這里也存在這樣的應(yīng)用,在這些應(yīng)用中只有在確定的模式中才允許對相應(yīng)的外圍元件的訪問。通過將模式信號引向外圍元件、對外圍元件進(jìn)行相應(yīng)配置和編程、并且分析配置數(shù)據(jù)和模式信號,可以實(shí)現(xiàn)附加的保障。如果模式信號已經(jīng)是用于檢驗(yàn)的充分的信息,則這有時(shí)甚至簡化編程。于是在μC初始化時(shí)間的準(zhǔn)靜態(tài)編程足夠了。類似地,對所述信號的分析也可以在中斷控制器處被使用。這樣的監(jiān)控于是可以構(gòu)成安全性方案的基礎(chǔ)或者基本組成部分。通過適當(dāng)?shù)膶?shí)施和軟件結(jié)構(gòu)化也能夠可以針對整個(gè)故障類在所考察的應(yīng)用中根據(jù)該模式信號構(gòu)建安全性方案。如果該模式信號以如上所述的適當(dāng)形式是自身安全的,則這尤其是有利的。在這種情況下,如果所考察的組件在其檢測到模式信號和對其自身的訪問之間的不一致性的情況下具有發(fā)送故障信號或者控制斷路路徑的可能性,則這是進(jìn)一步有利的。
另一重要的使用目的是在計(jì)算單元之外分析模式信號。直接應(yīng)用是在遞減監(jiān)視定時(shí)器(Watchdog)中的分析。這種“監(jiān)視定時(shí)器”包括至少一個(gè)(計(jì)數(shù)器)寄存器,該(計(jì)數(shù)器)寄存器可以通過微處理器被設(shè)置為整數(shù)值。在設(shè)置該寄存器之后,該“監(jiān)視定時(shí)器”以固定周期獨(dú)立地遞減寄存器的值。如果寄存器的值是零或者出現(xiàn)溢出,則該“監(jiān)視定時(shí)器”產(chǎn)生故障信號。如果該故障信號不應(yīng)該被產(chǎn)生,則微處理器必須及時(shí)地重新復(fù)位寄存器的值。因此可以(在邊界中)檢驗(yàn),微處理器是否正確地執(zhí)行軟件。如果微處理器不再正確地執(zhí)行軟件,則假設(shè)在該情況下“監(jiān)視定時(shí)器”也不再被正確地操作,并且因此由“監(jiān)視定時(shí)器”產(chǎn)生故障信號。硬件和數(shù)據(jù)結(jié)構(gòu)的完整性可以可靠地在比較模式中被檢驗(yàn),但是為此必須保證微處理器定期地又被轉(zhuǎn)換回該比較模式中。因此,這里所描述的“監(jiān)視定時(shí)器”的任務(wù)是,不僅在所述監(jiān)視定時(shí)器在所定義的時(shí)間間隔內(nèi)不再被復(fù)位時(shí)產(chǎn)生故障信號,而且在微處理器在所定義的時(shí)間間隔內(nèi)不再被轉(zhuǎn)換回所定義的比較模式中時(shí)也產(chǎn)生故障信號。例如只有當(dāng)模式信號表明計(jì)算單元的所定義的比較模式時(shí),“監(jiān)視定時(shí)器”才被復(fù)位。因此保證計(jì)算單元定期地被轉(zhuǎn)換回該模式。替代地或者補(bǔ)充地,只有當(dāng)在微處理器中觸發(fā)確定的中斷時(shí),才遞減“監(jiān)視定時(shí)器”的寄存器中的值。為此,也必須將μC的外部中斷信號耦合到監(jiān)視定時(shí)器上。在監(jiān)視定時(shí)器中存儲(chǔ)有哪個(gè)中斷將μC轉(zhuǎn)換到所定義的比較模式中?!敖ⅰ北O(jiān)視定時(shí)器,一旦這種中斷到來,所述監(jiān)視定時(shí)器就由于正確的模式信號的存在而被復(fù)位。
完全一般地,有利的是,尤其是在應(yīng)用于安全性方案時(shí),在μC外部的源中分析模式信號。如在本發(fā)明中所述的那樣,保障軟件在計(jì)算機(jī)上正確運(yùn)行的基本點(diǎn)是在不同的所允許的模式之間的正確轉(zhuǎn)換。首先應(yīng)該自己檢驗(yàn)轉(zhuǎn)換能力,優(yōu)選地也檢驗(yàn)正確的轉(zhuǎn)換。如上所述,也可能感興趣于定期地采用特定的模式。如果模式信號本身以自身安全的方式被構(gòu)造,則這種方法總是特別有利的。
一種可能性是將模式信號引向ASIC或者另一μC。所述ASIC或者另一μC可以經(jīng)由定時(shí)器和簡單的邏輯在使用該信號的情況下檢驗(yàn)至少以下幾點(diǎn)計(jì)算單元足夠頻繁地(例如最遲每1000μs)進(jìn)入一個(gè)或者多個(gè)所定義的模式中?在轉(zhuǎn)換到一種模式中時(shí)總是輸出某一信號?計(jì)算單元定期地從一種模式出來?模式的順序的確定的簡單樣式是有效的?一般的時(shí)間樣式是有效的(例如在模式1中平均<70%而在模式2中<50%)?模式信號的邏輯、時(shí)間特性的任何一個(gè)組合必要時(shí)通過利用附加的信號來補(bǔ)充。
在此,在圖22中描述了除此之外的建議的基本配置。在這種伙伴ASIC或者μC和所考察的具有本發(fā)明的計(jì)算單元之間執(zhí)行特定的問答游戲。N300是能夠發(fā)出這種模式信號的計(jì)算單元。這例如可以是μC,其具有多個(gè)執(zhí)行單元和能夠產(chǎn)生該模式信號的另一組件。例如所述另一組件可以如在圖19或者圖21中那樣被實(shí)現(xiàn)。N300將該信號N310提供給伙伴(例如其它計(jì)算單元、其它μC或者ASIC)N330。該伙伴可以通過信號N320向N300提出問題,N300必須經(jīng)由N321來回答該問題。這種問題可以是計(jì)算任務(wù),其正確結(jié)果可以經(jīng)由N321由N300在所定義的時(shí)間間隔內(nèi)提供。N330可以獨(dú)立于N300檢驗(yàn)該結(jié)果的正確性。例如該結(jié)果被存儲(chǔ)在N330中,或者N330可以自己計(jì)算出該結(jié)果。在檢測到不正確的值時(shí)識(shí)別出故障。所建議的問答通信的特點(diǎn)在于,與應(yīng)答并行地考察模式信號。優(yōu)選地,可以如此提出問題,使得為了由N300應(yīng)答,必須采用這些確定的模式。因此可以可靠地檢驗(yàn),所有模式轉(zhuǎn)換都是可執(zhí)行的(funktionsfaehig),并且在程序流程中所設(shè)置的模式轉(zhuǎn)換也被執(zhí)行。尤其在系統(tǒng)初始化時(shí)、但是也可以在運(yùn)行中,這可以用作安全性方案的基本組成部分。
該構(gòu)思的另一應(yīng)用是在執(zhí)行元件控制裝置中分析模式信號。在汽車領(lǐng)域中的許多應(yīng)用中,目前趨勢是所謂的智能執(zhí)行元件。這是具有最小電子線路規(guī)模的執(zhí)行元件,該電子線路規(guī)模足以接收執(zhí)行元件調(diào)節(jié)指令并且隨后這樣控制執(zhí)行元件,使得該調(diào)節(jié)指令隨后也被執(zhí)行。
在圖23中示出了基本構(gòu)思。具有本發(fā)明的計(jì)算單元N400經(jīng)由連接N420向(智能)執(zhí)行元件或者執(zhí)行元件控制裝置N430給出調(diào)節(jié)指令。該計(jì)算單元并行地經(jīng)由連接N410向該執(zhí)行元件給出模式信號。執(zhí)行元件N430根據(jù)該模式信號檢驗(yàn),控制裝置是否被允許并且可選地通過信號N440返回故障狀態(tài)。在控制裝置有故障的情況下,執(zhí)行元件采用在系統(tǒng)中不關(guān)鍵的故障沉默狀態(tài)。
權(quán)利要求
1.用于在具有至少兩個(gè)執(zhí)行單元的計(jì)算機(jī)系統(tǒng)中對程序代碼的執(zhí)行進(jìn)行分離的方法,其中在至少兩種運(yùn)行模式之間進(jìn)行轉(zhuǎn)換,并且第一運(yùn)行模式對應(yīng)于比較模式,而第二運(yùn)行模式對應(yīng)于性能模式,并且至少兩個(gè)執(zhí)行單元在比較模式中執(zhí)行相同的程序代碼,其特征在于,在從比較模式轉(zhuǎn)換到性能模式時(shí)通過以下方式實(shí)現(xiàn)程序代碼的分離,即給每個(gè)執(zhí)行單元分配標(biāo)識(shí),并且根據(jù)所述標(biāo)識(shí)將不同的程序代碼分配給至少兩個(gè)執(zhí)行單元。
2.按照權(quán)利要求1所述的方法,其特征在于,所述標(biāo)識(shí)分別被包含在執(zhí)行單元的存儲(chǔ)器、尤其是寄存器中。
3.按照權(quán)利要求1所述的方法,其特征在于,所述標(biāo)識(shí)分別被包含在執(zhí)行單元的狀態(tài)寄存器中。
4.按照權(quán)利要求1所述的方法,其特征在于,所述標(biāo)識(shí)分別被包含在執(zhí)行單元的中斷狀態(tài)寄存器中。
5.按照權(quán)利要求1所述的方法,其特征在于,所述標(biāo)識(shí)分別被包含在執(zhí)行單元的中斷屏蔽寄存器中。
6.按照權(quán)利要求1所述的方法,其特征在于,根據(jù)每個(gè)執(zhí)行單元的標(biāo)識(shí)引用可預(yù)先給定的地址,其中所述執(zhí)行單元執(zhí)行在該地址處開始的程序代碼。
7.按照權(quán)利要求6所述的方法,其特征在于,對可預(yù)先給定的地址的相應(yīng)引用通過地址指針來實(shí)現(xiàn)。
8.按照權(quán)利要求6所述的方法,其特征在于,對可預(yù)先給定的地址的相應(yīng)引用通過轉(zhuǎn)移指令來實(shí)現(xiàn)。
9.按照權(quán)利要求1所述的方法,其特征在于,將每個(gè)標(biāo)識(shí)與至少一個(gè)預(yù)先給定的標(biāo)識(shí)進(jìn)行比較,并且在一致時(shí)分配預(yù)先給定的程序代碼。
10.按照權(quán)利要求1所述的方法,其特征在于,將每個(gè)標(biāo)識(shí)與至少一個(gè)預(yù)先給定的標(biāo)識(shí)進(jìn)行比較,并且在所有標(biāo)識(shí)不一致時(shí)識(shí)別出將導(dǎo)致未定義的狀態(tài)的事件。
11.用于在具有至少兩個(gè)執(zhí)行單元的計(jì)算機(jī)系統(tǒng)中對程序代碼的執(zhí)行進(jìn)行分離的設(shè)備,其中在至少兩種運(yùn)行模式之間進(jìn)行轉(zhuǎn)換,并且第一運(yùn)行模式對應(yīng)于比較模式,而第二運(yùn)行模式對應(yīng)于性能模式,并且至少兩個(gè)執(zhí)行單元在比較模式中執(zhí)行相同的程序代碼,其特征在于,所述設(shè)備如此被構(gòu)造,使得在從比較模式轉(zhuǎn)換到性能模式時(shí)通過以下方式實(shí)現(xiàn)程序代碼的分離,即給每個(gè)執(zhí)行單元分配標(biāo)識(shí),并且根據(jù)所述標(biāo)識(shí)將不同的程序代碼分配給至少兩個(gè)執(zhí)行單元。
12.按照權(quán)利要求11所述的設(shè)備,所述設(shè)備包含存儲(chǔ)有每個(gè)執(zhí)行單元的標(biāo)識(shí)的存儲(chǔ)器、尤其是寄存器。
13.按照權(quán)利要求11所述的設(shè)備,其中每個(gè)執(zhí)行單元包含分別存儲(chǔ)有該執(zhí)行單元的標(biāo)識(shí)的狀態(tài)寄存器。
14.按照權(quán)利要求11所述的設(shè)備,所述設(shè)備包含至少一個(gè)存儲(chǔ)有執(zhí)行單元的標(biāo)識(shí)的中斷狀態(tài)寄存器。
15.按照權(quán)利要求11所述的設(shè)備,所述設(shè)備包含至少一個(gè)存儲(chǔ)有執(zhí)行單元的標(biāo)識(shí)的中斷屏蔽寄存器。
16.具有按照權(quán)利要求11所述的設(shè)備的計(jì)算機(jī)系統(tǒng)的執(zhí)行單元。
17.具有兩個(gè)執(zhí)行單元和按照權(quán)利要求11所述的設(shè)備的計(jì)算機(jī)系統(tǒng)。
全文摘要
用于在具有至少兩個(gè)執(zhí)行單元的計(jì)算機(jī)系統(tǒng)中對程序代碼的執(zhí)行進(jìn)行分離的方法和設(shè)備,其中在至少兩種運(yùn)行模式之間進(jìn)行轉(zhuǎn)換,并且第一運(yùn)行模式對應(yīng)于比較模式,而第二運(yùn)行模式對應(yīng)于性能模式,并且至少兩個(gè)執(zhí)行單元在比較模式中執(zhí)行相同的程序代碼,其特征在于,在從比較模式轉(zhuǎn)換到性能模式時(shí)通過以下方式實(shí)現(xiàn)程序代碼的分離,即給每個(gè)執(zhí)行單元分配標(biāo)識(shí),并且根據(jù)所述標(biāo)識(shí)將不同的程序代碼分配給至少兩個(gè)執(zhí)行單元。
文檔編號G06F11/16GK101048750SQ200580036497
公開日2007年10月3日 申請日期2005年10月25日 優(yōu)先權(quán)日2004年10月25日
發(fā)明者R·安格鮑爾, Y·科拉尼, R·格梅力奇, E·博希爾 申請人:羅伯特·博世有限公司