本公開涉及用于在要求功能安全性的應(yīng)用的電子系統(tǒng)的上下文中運(yùn)行程序的技術(shù)。所述的電子系統(tǒng)基于包括單個處理器(cpu)或者多個處理器的架構(gòu)。所述的技術(shù)設(shè)想:
執(zhí)行將經(jīng)由所述架構(gòu)所運(yùn)行的程序分解為多個并行子程序的操作;
將各并行子程序的執(zhí)行指配給系統(tǒng)的相應(yīng)處理模塊、特別是關(guān)聯(lián)到所述處理器之一的物理處理器或虛擬機(jī);以及
在所述架構(gòu)的正常操作期間周期地按照程序的循環(huán)頻率執(zhí)行設(shè)計成滿足功能安全性目標(biāo)的自測操作。
各個實(shí)施例可適用于功能安全性。特別是,各個實(shí)施例在工業(yè)機(jī)器人和工業(yè)控制領(lǐng)域的電子系統(tǒng)中以及在電子系統(tǒng)的技術(shù)領(lǐng)域中得到應(yīng)用,以供駕駛員輔助和部分或完全自動駕駛的汽車應(yīng)用。
背景技術(shù):
諸如iec61508、iso13849和iso26262之類的功能安全性標(biāo)準(zhǔn)包含對檢測集成電子系統(tǒng)中的潛在危險失效的要求。例如,在標(biāo)準(zhǔn)iso26262中,要求之一定義為“hw隨機(jī)失效的概率度量(pmhf)”,其對于給定失效模型f、作為第一近似定義為基本失效概率(λ)、在失效模型上的這個概率的分布(λf)、安全失效的分?jǐn)?shù)的一的補(bǔ)數(shù)(1-s)和非安全失效的診斷性覆蓋的一的補(bǔ)數(shù)之間的乘積。
通過“安全失效”表示這種失效:使得運(yùn)行于電子裝置的程序的任務(wù)將不受影響或者將按照安全方式來被影響;即,任務(wù)終止于已知狀態(tài)、即所謂的“安全狀態(tài)”,其中對功能安全性不存在危險。
單處理器或者多處理器處理系統(tǒng)的處理器是在這類集成電子系統(tǒng)的最關(guān)鍵元件之中,并且其復(fù)雜度隨著本領(lǐng)域取得的進(jìn)步而增加。
關(guān)于處理器,上述標(biāo)準(zhǔn)(例如iso26262-5,附錄d,表d.4)提供用于得到非安全失效的覆蓋的診斷性值(由k標(biāo)示,其盡可能高)的各種可能技術(shù)。
上述技術(shù)在現(xiàn)有技術(shù)中得到各種實(shí)現(xiàn)。
諸如例如專利no.us6233702或者專利no.us7472051中所述架構(gòu)等的架構(gòu)必然要求處理器的硬件的修改,以便保證功能安全性,使得實(shí)現(xiàn)處理器的完全或簡化形式的冗余度。
諸如例如專利no.us5513319中所述架構(gòu)等的架構(gòu)設(shè)想由處理器以預(yù)設(shè)時間間隔周期性地查詢獨(dú)立元件(監(jiān)視器)。然而,它能夠保證的功能安全性僅限于:處理器的失效的一小部分能夠采用這種方法被檢測到—基本上是引起程序流中的充分差異的方法。
技術(shù)實(shí)現(xiàn)要素:
本文所述的實(shí)施例的目的在于改進(jìn)按照先前所述現(xiàn)有技術(shù)的方法的潛力,特別是使得有可能取得對復(fù)雜架構(gòu)(諸如現(xiàn)代多處理器的復(fù)雜架構(gòu))高診斷性覆蓋,同樣限制單個處理器的覆蓋目標(biāo)并且限制或去除對硬件的修改的需要。
由于具有以下權(quán)利要求書中所述特性的方法,各個實(shí)施例取得上述目的。各個實(shí)施例還可涉及一種架構(gòu),因?yàn)樗鼈兺瑯由婕耙环N計算機(jī)程序產(chǎn)品,其能夠加載到至少一個計算機(jī)(例如網(wǎng)絡(luò)中的終端)的存儲器中,并且包括設(shè)計成當(dāng)程序運(yùn)行于至少一個計算機(jī)上時執(zhí)行該方法的步驟的軟件代碼部分。如本文所使用的上述計算機(jī)程序產(chǎn)品被理解為相當(dāng)于計算機(jī)可讀部件,其包含用于控制計算機(jī)系統(tǒng)以便協(xié)調(diào)按照本發(fā)明的方法的執(zhí)行的指令。提到“至少一個計算機(jī)”被理解為強(qiáng)調(diào)本發(fā)明按照模塊化和/或分布式形式來實(shí)現(xiàn)的可能性。權(quán)利要求書形成本文關(guān)于本發(fā)明所提供的技術(shù)教導(dǎo)的構(gòu)成整體所必需的部分。
各個實(shí)施例可設(shè)想,該方法包括自測操作,其包括:
診斷性自測操作,即,對處理器執(zhí)行測試并且將結(jié)果與設(shè)計階段期間預(yù)先計算的值進(jìn)行比較的操作;
在架構(gòu)上測量的系統(tǒng)值(完全作為舉例,電壓和溫度)的自測以及結(jié)果與預(yù)計參考范圍的比較的操作;以及
所述子程序的部分結(jié)果之間的比較的操作,
以及所述自測操作包括:
生成與自測操作有關(guān)的相應(yīng)自測數(shù)據(jù),并且對所述自測數(shù)據(jù)執(zhí)行檢查操作;
使用消息協(xié)議與另一獨(dú)立控制模塊連續(xù)地交換所述自測數(shù)據(jù);
在所述另一獨(dú)立控制模塊中執(zhí)行至少部分所述檢查操作;以及
執(zhí)行將程序分解為多個并行子程序以便尊重失效概率目標(biāo)(其作為所述診斷性自測操作所確定的覆蓋值、在架構(gòu)上測量的系統(tǒng)值的自測操作的給定覆蓋值、以及上述子程序的部分結(jié)果之間的比較操作所確定的覆蓋值的函數(shù))的所述操作。
分解所述程序以及將自測操作劃分為上述三個獨(dú)立操作(經(jīng)由診斷性測試的自測、經(jīng)由系統(tǒng)值的監(jiān)測的自測以及經(jīng)由中間結(jié)果的比較的自測)的過程實(shí)現(xiàn)對已知技術(shù)的改進(jìn)。特別是,這種三分實(shí)現(xiàn)按照優(yōu)化方式的目標(biāo)分布,即,降低這些操作(對于所述方法應(yīng)用于其上的特定類型的系統(tǒng)—其要求強(qiáng)設(shè)計工作量或硬件的修改以便被達(dá)到)的目標(biāo),而代替地,提升那些操作(其在這種上下文中更易于執(zhí)行)的目標(biāo)。
附圖說明
現(xiàn)在將完全作為舉例、參照附圖來描述各個實(shí)施例,在附圖中:
-圖1示出配置用于實(shí)現(xiàn)本文所述方法的電子系統(tǒng)的多處理器架構(gòu)的一實(shí)施例的框圖;
-圖2示出表示本文所述方法所使用的安全性功能的簡圖;
-圖3示出配置用于實(shí)現(xiàn)本文所述方法的多處理器架構(gòu)的軟件級的簡圖;
-圖4和圖5示出表示多處理器架構(gòu)所實(shí)現(xiàn)的通信協(xié)議所使用的分組的簡圖;
圖6示出與多處理器架構(gòu)協(xié)作以用于實(shí)現(xiàn)本文所述方法的控制模塊的框圖;
-圖7是本文所述多處理器架構(gòu)所運(yùn)行的測試程序的示意圖;
-圖8示出表示本文所述方法的分解操作的邏輯實(shí)現(xiàn)的一示例的邏輯圖;以及
-圖9示出具有二核對稱多處理器、soc(芯片上系統(tǒng))上系統(tǒng)的實(shí)現(xiàn)的原理圖。
具體實(shí)施方式
在以下描述中,提供許多具體細(xì)節(jié),以便實(shí)現(xiàn)對作為舉例所提供的實(shí)施例的最大理解。實(shí)施例可在具有或沒有特定細(xì)節(jié)的情況下或者采用其他方法、組件、材料等實(shí)現(xiàn)。在其他情況下,沒有詳細(xì)示出或描述眾所周知的結(jié)構(gòu)、材料或操作,以便使實(shí)施例的各個方面不會難以理解。本描述的過程中提到“一實(shí)施例”或“一個實(shí)施例”表示結(jié)合其實(shí)現(xiàn)而描述的特定結(jié)構(gòu)、特質(zhì)或特性包含在至少一個實(shí)施例中。因此,可在本描述的各個點(diǎn)反復(fù)出現(xiàn)的諸如“在一實(shí)施例中”或“在一個實(shí)施例中”之類的詞語不一定表示同一個實(shí)施例。此外,特定結(jié)構(gòu)、特質(zhì)或特性可按照任何便利方式結(jié)合在一個或多個實(shí)施例中。
各種提法在本文中只為了便于讀者而提供,而不是限定實(shí)施例的范圍或含意。
圖1示出用于提供有功能安全性的應(yīng)用的集成電子系統(tǒng)的、具有功能安全性的處理架構(gòu)。如所述,電子系統(tǒng)可以是例如用于駕駛員輔助的汽車應(yīng)用或者部分或完全自動駕駛的電子系統(tǒng),其包括按照功能安全性進(jìn)行操作的處理架構(gòu)。
上述架構(gòu)包括多處理器處理系統(tǒng);即,在多處理器處理系統(tǒng)上實(shí)現(xiàn),作為整體通過參考標(biāo)號10標(biāo)示,是基于提供多個處理和控制通道的功能安全性系統(tǒng)。在安全性以及特別是iec61508的上下文中,通過“通道”表示元件或元件集合,其獨(dú)立實(shí)現(xiàn)功能安全性功能或“安全性功能sf”(參見iec61508-4,3.3.6)。這例如可以是微處理器、虛擬機(jī)或者另外某個其他元件。
多處理器處理系統(tǒng)10包括多個處理器模塊11。上述處理器模塊11主要包括獨(dú)立cpu,即,所謂的“核心”。如以下更詳細(xì)描述,多核系統(tǒng)中(也如同單核系統(tǒng)中一樣)的處理器模塊在本描述中還可表示通過上述核心之一上的虛擬化軟件所生成的虛擬機(jī)。參照圖1和圖3,“處理器模塊”11因此在本文中表示多處理器10的多個核心c1…cm其中之一或者甚至在上述核心c1、…、cm的一個或多個上實(shí)現(xiàn)的多個虛擬機(jī)v1、…、vn其中之一。
多處理器10能夠在架構(gòu)上按照不同方式來構(gòu)建,其包括同構(gòu)架構(gòu)(其中各種處理核心11是相同的架構(gòu))和異構(gòu)架構(gòu)(其中處理核心11是不同的架構(gòu))以及通過消息的交換進(jìn)行通信的分布式存儲器架構(gòu)的共享存儲器架構(gòu)。從物理實(shí)現(xiàn)的觀點(diǎn)來看,多種解決方案是可能的,其范圍從較高集成度(其中核心11設(shè)置在同一個集成電路中)到較小程度(其中多處理器10的核心11設(shè)置在不同集成電路上或者在不同且獨(dú)立模塊上)。
在這個上下文中,圖1的示例中表示的是一種架構(gòu),其只包括上述多處理器10之一(其又包括多個處理器模塊11)。運(yùn)行于上述多處理器10的是應(yīng)用功能,即,例如用于控制或輔助駕駛機(jī)動車輛的程序p以及針對系統(tǒng)的完整性的自測和可能失效或失靈(其在多處理器10本身的邏輯和固態(tài)存儲器中或者在其子部件中可能發(fā)生)的檢測的安全性功能sf。
除了多處理器10之外,提供有圖1所表示的功能安全性的架構(gòu)還設(shè)想由控制模塊15所表示的獨(dú)立處理單元,其配置用于分析、處理和比較來自多處理器10中的各種操作程序(其實(shí)現(xiàn)上述自測操作)的監(jiān)測和控制消息mc的流的內(nèi)容,上述自測操作由多處理器10的處理器11來執(zhí)行,以便實(shí)現(xiàn)其功能安全性的監(jiān)測和任何可能失靈(其在組成它們的邏輯中或者更一般在子程序p1、…、pn(程序p所分解成的,使得它能夠運(yùn)行于相應(yīng)處理器模塊11)的執(zhí)行流程中可能發(fā)生)的檢測。
多處理器10和控制模塊15經(jīng)過通信部件12進(jìn)行通信,通信部件12使多處理器10的各種處理器模塊11能夠從/向處理和比較單元、即控制模塊15(其又能夠分別從/向多處理器10接收和發(fā)送消息、例如報警)接收/發(fā)送上述監(jiān)測和控制消息mc。
如所述,圖1中為了簡潔起見所表示的只是一個多處理器10,但是實(shí)際上,該架構(gòu)可設(shè)想多個處理器或者多處理器,其經(jīng)過相應(yīng)通信部件12與控制模塊15交換監(jiān)測和控制消息。
本文所述的方法適用于多處理器10(其上實(shí)現(xiàn)圖2中通過sf所標(biāo)示的安全性功能)的所有這些可能配置。通過“安全性功能”表示在系統(tǒng)的框架(對其要求上述標(biāo)準(zhǔn)中涉及的功能安全性的要求的尊重(respect))中進(jìn)行操作的功能。圖2實(shí)際上表示在軟件進(jìn)程中執(zhí)行的安全性功能sf以及運(yùn)行于多處理器10上的程序p。圖2中,作為循環(huán)運(yùn)行的進(jìn)程的程序p作為整體通過環(huán)面(其表示在時間t以循環(huán)時間tcyc的循環(huán)執(zhí)行)來表示。安全性功能sf占據(jù)上述程序p的時間段、即環(huán)面的扇區(qū),安全性功能sf一般是程序p的一部分,并且然后運(yùn)行比循環(huán)時間tcyc更短的安全執(zhí)行時間ts。又在圖2中指示的是在安全性功能sf的執(zhí)行期間、即安全執(zhí)行時間ts期間,如何交換監(jiān)測和控制消息mc,特別是與獨(dú)立控制模塊15。
如圖1所示,本文所述的方法設(shè)想將程序p分解為并行子程序p1、…、pn,其在圖1的架構(gòu)中各自在核心11上實(shí)現(xiàn)。即使圖1中示出一個多處理器,但是子程序p1、…、pn在處理系統(tǒng)只提供一個處理器的情況下也能夠例如經(jīng)由虛擬化技術(shù)來劃分。在多處理器的操作系統(tǒng)領(lǐng)域可用的技術(shù)解決方案是虛擬化技術(shù),其實(shí)現(xiàn)硬件(在其上,應(yīng)用程序運(yùn)行于單個核心,或者如以下所示還運(yùn)行于多處理器10的核心11)的準(zhǔn)確虛擬化(參照例如所謂的“管理程序”或“虛擬機(jī)監(jiān)測器”)。按照虛擬化技術(shù)的使用范例,程序p分解為多個并行進(jìn)程p1、…、pn,其各自可運(yùn)行于虛擬機(jī)v1、…、vn,以便得到并行執(zhí)行,其在功能上相當(dāng)于包括安全性功能sf的起始程序p。
在已知系統(tǒng)中通過考慮與特定程序p的功能有關(guān)的功能類型來指導(dǎo)分解為將要指配給各種虛擬機(jī)或核心的子程序p1、…、pn。如以下更全面描述,本文所述的方法而是設(shè)想將分解為子進(jìn)程p1、…、pn的上述操作作為尊重隨機(jī)類型的失效存在的情況下覆蓋的給定約束(其是工業(yè)和汽車應(yīng)用中設(shè)想的功能安全性標(biāo)準(zhǔn)所要求的)的函數(shù)來執(zhí)行。上述約束因此一般稱作該標(biāo)準(zhǔn)所要求的覆蓋k的等級的函數(shù)f(k)。
圖1的功能安全性架構(gòu)還配置用于在安全性功能sf的框架中執(zhí)行圖3更詳細(xì)描述的自測操作,其一般包括:
診斷性自測操作ast1,其通過運(yùn)行關(guān)聯(lián)到處理器11的自測庫(stl)50來執(zhí)行診斷性測試,如圖3所示;
在架構(gòu)上測量的系統(tǒng)值的自測操作asys,其也優(yōu)選地通過運(yùn)行自測庫(stl)50來執(zhí)行;以及
子程序p1、…、pn之間經(jīng)由應(yīng)用-比較軟件模塊60的比較操作achk,參照圖3所述。
圖2中關(guān)于這一點(diǎn)所表示的是自測庫(stl)50和應(yīng)用-比較軟件模塊60,其關(guān)聯(lián)到核心11的每個,并且各自實(shí)現(xiàn)三種類型的自測操作ast1、achk、asys。如所述,stl50優(yōu)選地包括用于執(zhí)行診斷性自測操作ast1以及用于執(zhí)行在架構(gòu)上測量的系統(tǒng)值的自測操作asys的軟件,但是在變體實(shí)施例中,系統(tǒng)值的自測操作asys能夠經(jīng)由獨(dú)立和專用軟件模塊來運(yùn)行。
上述三種類型的自測操作ast1、asys、achk包括在多處理器10上生成自測數(shù)據(jù),即,分別為診斷性自測數(shù)據(jù)dst1、系統(tǒng)自測數(shù)據(jù)dsys、應(yīng)用自測數(shù)據(jù)dchk。如圖3中更詳細(xì)提到和描述,還設(shè)想在軟件模塊(其通過診斷性自測庫50以及通過應(yīng)用-比較軟件模塊60所表示)中生成上述自測數(shù)據(jù)dst1、dsys、dchk,并且將它們在監(jiān)測和控制消息mc中發(fā)送,使得檢查操作經(jīng)由圖2所表示的作為控制模塊15中包含的邏輯模塊51、61的模塊對上述自測數(shù)據(jù)dst1、dsys、dchk來執(zhí)行。
圖1中再次示出的是通信系統(tǒng)12,其用于在處理器模塊(其組成多處理器10)與控制模塊15之間交換監(jiān)測和控制消息mc。上述通信通道可由點(diǎn)對點(diǎn)類型的段來組成,或者按照分層方式并且可能采用對共享物理介質(zhì)(例如在所示示例中的通信總線)的多次訪問來創(chuàng)建。待交換監(jiān)測和控制消息mc的內(nèi)容的確定經(jīng)由運(yùn)行除了以下詳細(xì)描述的其他操作之外還運(yùn)行自測操作ast1、asys、achk來得到,以及監(jiān)測和控制消息mc本身的發(fā)送在常規(guī)時間間隔(其中,組成多處理器10的處理器模塊11卸運(yùn)行從程序p的分解所得到的相應(yīng)應(yīng)用程序p1、…、pn,它們通常專用于其大部分時間,并且被指配給運(yùn)行特殊代碼、即自測庫50的程序的代碼)期間來得到。特別是,監(jiān)測和控制消息mc在運(yùn)行于多處理器10的軟件的不同分層等級來生成,如以下更詳細(xì)描述。系統(tǒng)多處理器10與控制模塊15之間的監(jiān)測和控制消息mc的交換按照通信協(xié)議pl(其也在以下更詳細(xì)描述)來得到。
按照本文所述方法的主要方面,設(shè)想執(zhí)行將程序p分解為多個并行子程序p1、…、pn的操作,以便尊重失效概率目標(biāo),其對于一般情況由g標(biāo)示,而在以下提供的二處理器示例中由g12標(biāo)示,其對每個子程序p1、…、pn是上述診斷性自測操作ast1所確定的相應(yīng)覆蓋值kst1、在多處理器架構(gòu)10上測量的值的自測操作asys的相應(yīng)給定覆蓋值ksys以及子程序p1、…、pn之間的比較操作achk所確定的覆蓋值kchk的函數(shù)。
在圖1的安全性架構(gòu)的各組件的診斷性覆蓋(dc)或者安全失效分?jǐn)?shù)(sff—關(guān)于這一點(diǎn)參見安全性標(biāo)準(zhǔn)iec61508)方面,特別是對于診斷性自測操作ast1的軟件程序的部分(自測庫50),覆蓋作為系統(tǒng)的下列特性的函數(shù)來確定:
-對系統(tǒng)、特別是二通道系統(tǒng)所取得的安全完整性等級(sil);這產(chǎn)生由系統(tǒng)所尊重的覆蓋k的要求;
-操作和診斷性測試間隔(dti)的基本循環(huán)頻率fcyc;在這點(diǎn)上,如圖2所示,程序p作為整體以循環(huán)時間tcyc、并且因此以基本循環(huán)的頻率fcyc循環(huán)地運(yùn)行;安全性功能sf占據(jù)上述程序p的時間分段達(dá)比循環(huán)時間tcyc更短的安全執(zhí)行時間ts;
-由控制模塊15在單位時間對診斷性自測操作ast1的結(jié)果進(jìn)行的,特別是在所考慮的架構(gòu)中,檢查的數(shù)量和類型;安全執(zhí)行時間ts是安全性標(biāo)準(zhǔn)所要求的覆蓋的約束的函數(shù)f(k);
此外,又如以下詳細(xì)描述,數(shù)據(jù)交換的操作采用消息序列來運(yùn)行,其中數(shù)據(jù)量q和頻率f按照將要尊重的上述失效概率目標(biāo)g的另一函數(shù)來選擇。
作為附加步驟,可設(shè)想一項(xiàng)檢查以校驗(yàn)作為上述失效概率目標(biāo)g的函數(shù)所確定的覆蓋目標(biāo)值k是否經(jīng)由在模擬步驟(例如按照以本申請人的名義所提交的專利no.ep1980964a1中所述)中的失效注入而有效地達(dá)成。
下面是按照將要尊重的失效概率目標(biāo)g的函數(shù),將程序p分解為多個并行子程序p1、…、pn的操作的詳細(xì)描述。
為了在沒有硬件修改并且具有對程序p的最小化影響(被理解為程序存儲器的大小并被理解為執(zhí)行時間)的情況下得到最低失效概率g,所述的方法實(shí)際上提供將程序p分解為兩個或更多獨(dú)立程序p1、p2、…、pn。
提供有所述功能安全性的架構(gòu)作為失效概率目標(biāo)g的函數(shù)并且因此作為將要達(dá)成的覆蓋k的值的函數(shù)來建立。特定示例以下基本上涉及二通道系統(tǒng),即,在其中程序p分解為在兩個核心c1和c2或者兩個虛擬機(jī)v1和v2(其提供結(jié)果的兩個通道)上運(yùn)行的兩個進(jìn)程p1和p2的系統(tǒng)。
因此,以分解為兩個程序p1、p2的操作情況為例,并且為了簡潔起見而假定兩個獨(dú)立程序p1、p2運(yùn)行于兩個相同處理器模塊11(其具有等于1的相同基本失效概率λ并且具有等于1的失效模型的相同分布λ),由處理器1和2所組成的多處理器系統(tǒng)的失效概率可描述為
g12≤(1-β)2*(l-s1)*(1-k1)*(1-s2)*(1-k2)*texp++β*(1-s12)*(1-k12)
(1)
其中:k1、k2是兩個處理器(例如分別是c1和/或c2,其運(yùn)行兩個程序p1和p2)的失效覆蓋;s1、s2分別是兩個處理器c1、c2(其運(yùn)行兩個程序p1和p2)的安全失效的分?jǐn)?shù);β是能夠引起兩個處理器c1、c2之間的共因失效(ccf)的失效的分?jǐn)?shù);k12是能夠引起兩個處理器c1、c2之間的共因失效的失效覆蓋;s12是兩個處理器c1、c2共同的安全失效的分?jǐn)?shù);以及texp是第一失效的曝光時間。時間texp由系統(tǒng)的使用類型并且由失效模型的類型來定義,并且在極限情況下可等于系統(tǒng)的服務(wù)時間。給定子程序pi,假定基本失效概率λ等于1并且失效模型的分布λ等于1,值對si、ki(其分別是對應(yīng)處理器的安全失效的分?jǐn)?shù)和失效覆蓋)充分地識別其失效概率。
先前對兩個單獨(dú)子程序p1和p2的失效概率目標(biāo)g12所定義的等式(1)經(jīng)由故障樹分析(fta)算法來確定(參見例如iso26262-10,附錄b);即,它對應(yīng)于(參見圖8)確定通過and類型的邏輯函數(shù)所連接的兩個子程序p1和p2的失效概率,在該邏輯函數(shù)中各程序運(yùn)行于其上的相應(yīng)硬件連接到極低失效概率。因此,等式(1)表達(dá)近似為相應(yīng)概率和曝光時間t的乘積的所產(chǎn)生平均失效概率、即失效概率目標(biāo)。
因此有可能將等式(1)容易地擴(kuò)展用于任意數(shù)量的獨(dú)立程序:例如,在三個程序的情況下,三輸入and門能夠分解為兩個二輸入and門,并且然后所產(chǎn)生公式能夠使用以上對兩個程序p1和p2所述的公式來構(gòu)成。
換言之,通過將子程序p1、…、pn看作是具有與子程序同樣多的輸入的and門的輸入、將上述and門分解為二輸入and門、并且將概率目標(biāo)計算為每個二輸入and門的輸出處的失效概率和執(zhí)行時間的乘積的函數(shù),來計算相對于將要尊重的失效概率目標(biāo)g的子程序p1、…、pn的失效概率的值。
再次應(yīng)用fta算法,失效概率g12通過與共因項(xiàng)β·(1-s12)·(1-k12)(其計及失效ccf)的總和(即,or類型的邏輯函數(shù))來完成。
因此,上述失效概率目標(biāo)g的計算包括將子程序p1、…、pn看作是具有與子程序p1、…、pn同樣多的輸入的and邏輯函數(shù)ag的輸入,將這個and邏輯函數(shù)(ag)分解為具有作為輸入的對(其能夠在上述子程序p1、…、pn之間組成)的二輸入and邏輯函數(shù),計算在來自每個二輸入and門的輸出處的失效概率(即對ki、si)與共因失效分?jǐn)?shù)β的補(bǔ)數(shù)和曝光時間texp的乘積,從而將上述概率目標(biāo)g計算為:前一操作的結(jié)果的函數(shù)加上,通過將or函數(shù)應(yīng)用于共因失效(即子程序p1、…、pn的所有對ij之間的對kij、sij)所得到的值乘以共因失效分?jǐn)?shù)β。
圖8經(jīng)由邏輯電路示出通過按照剛才所述實(shí)現(xiàn)邏輯函數(shù)來進(jìn)行的概率目標(biāo)g的計算操作。由ag標(biāo)示的是n輸入and門,其能夠按照以上所提到分解為二輸入門,并且其接收作為每個子程序pi的輸入的覆蓋ki和安全失效的分?jǐn)?shù)si(在公式(1)的示例中為k1、s1和k2、s2)。輸出與1-β(其是能夠引起共因失效的失效的分?jǐn)?shù)的補(bǔ)數(shù))相乘。and門(如fta算法中所設(shè)想)實(shí)現(xiàn)與待計算曝光時間的乘積。og標(biāo)示的是多輸入or門,其對兩個子程序pi和pj在輸入處接收共因失效覆蓋kij和共因安全失效的分?jǐn)?shù)sij(在本例中為k12、s12)。輸出與β(其是能夠引起共因失效的失效的分?jǐn)?shù))相乘。門ogt則計算門ag和og的輸出的總和,以產(chǎn)生等式(1)的失效目標(biāo)g12的一般形式g。
區(qū)分本方法的特性之一在于,失效覆蓋k1、k2和k12定義為三個份額的組合:
kst1,即,通過運(yùn)行診斷性自測操作ast1(經(jīng)由自測庫50、特別是與存在于模塊15上的模塊51協(xié)作來執(zhí)行)所保證的覆蓋分?jǐn)?shù);
kchk,即,通過執(zhí)行程序p1和p2的中間結(jié)果之間的比較、即執(zhí)行自測操作achk(在比較組件60中、特別是與存在于控制模塊15上的模塊61協(xié)作來執(zhí)行)所保證的覆蓋分?jǐn)?shù);
ksys,即,通過比較從自測操作asys(優(yōu)選地再次在多處理器10和模塊15的模塊之間,在多處理器架構(gòu)10的系統(tǒng)參數(shù)(諸如程序p1和p2運(yùn)行于其上的處理器c1、c2的溫度和電壓)之間協(xié)作來執(zhí)行)得到的系統(tǒng)自測數(shù)據(jù)dsys與參考值或極限值、即范圍ratt所保證的覆蓋分?jǐn)?shù)。
具體來說,對于程序p1和p2的覆蓋k1、k2以及共因覆蓋k12,具有:
k1=kst11∪kch2∪ksys,k2=kst12∪kch3∪ksys,k12=kst112∪kchk∪ksys(2)
并集操作符∪指示兩個覆蓋按照集合論的規(guī)則相結(jié)合,作為其單獨(dú)失效覆蓋的函數(shù)。
關(guān)聯(lián)到輸入至運(yùn)行于處理器c1上的程序中的庫50的自測庫kst11、關(guān)聯(lián)到輸入至運(yùn)行于處理器c2上的程序中的庫50的自測庫kst12、以及關(guān)聯(lián)到輸入至運(yùn)行于處理器c1和/或處理器c2上的程序中以用于覆蓋共因失效的庫50的自測庫kst112,它們的覆蓋目標(biāo)—并且因此它們的結(jié)構(gòu)及其編程—被確定,以便取得作為參數(shù)β、t以及s1、s2和s12的函數(shù)的失效概率目標(biāo)g12。
因此,在實(shí)踐中,該方法設(shè)想在安全性架構(gòu)中提供三種不同類型的自測操作ast1、achk、asys(覆蓋kst1、kchk、ksys與其關(guān)聯(lián)),以及給定程序p按照功能安全性所分解成的子程序p1、…、pn的數(shù)量,對于每種類型的自測操作ast1或achk或asys,通過定義自測操作ast1或achk或asys的參數(shù)將上述自測操作ast1或achk或asys關(guān)聯(lián)到每個子程序p1、…、pn和/或處理器11,使得覆蓋的所產(chǎn)生值kst1或kchk或ksys將,連同按照等式(1)所示從其他兩種類型的自測操作得出的值一起,尊重為系統(tǒng)所定義的失效概率目標(biāo)g。
按照本文所述方法的另一方面,上述
基于采用兩個處理器c1和c2的相應(yīng)自測覆蓋kst11、kst12和kst112所定義的自測庫50的診斷性自測操作ast1,
程序p1和p2的中間結(jié)果之間的比較操作achk、應(yīng)用自測數(shù)據(jù)dchk,與比較覆蓋kchk,以及
處理器c1、c2(程序p1和p2運(yùn)行于其上)的系統(tǒng)自測數(shù)據(jù)dsys與預(yù)計范圍ratt(其識別系統(tǒng)覆蓋ksys)之間的比較操作asys
沒有在多處理器10中運(yùn)行,而是經(jīng)由獨(dú)立于多處理器10的另一元件、即控制模塊15(其完成這些操作)依次完成。這經(jīng)由多處理器10與控制模塊15之間的數(shù)據(jù)交換(消息mc)來得到。
比較覆蓋kchk確定為在相對總量的每次比較所交換的數(shù)據(jù)量q和相對目標(biāo)時間t—通常計算為對應(yīng)于上述功能安全性標(biāo)準(zhǔn)的過程安全性時間(pst)或容錯時間間隔(ftti)—的數(shù)據(jù)交換周期t(其逆是數(shù)據(jù)交換頻率f)的函數(shù):
kchk=min(1,q.t/t)(3)
數(shù)據(jù)交換周期t對應(yīng)于安全執(zhí)行時間ts。
從等式(1)和(2)發(fā)現(xiàn),覆蓋k1、k2、k12取決于比較覆蓋kchk的值,并且失效概率目標(biāo)是k1、k2、k12的函數(shù)。因此還發(fā)現(xiàn),給定失效概率目標(biāo)g,所交換的數(shù)據(jù)量q和數(shù)據(jù)的交換頻率f的值確定大小成使得比較覆蓋kchk將采取這樣一個值,即,一旦其被輸入等式(1)和(2)則失效概率目標(biāo)g將被尊重。
覆蓋kst11、kst12、kst112、kchk和ksys相對于如上所述確定的目標(biāo)值的對應(yīng)性在模擬期間經(jīng)由失效注入來測試。
因此,本文所述的方法設(shè)想在提供有功能安全性的電子系統(tǒng)(其運(yùn)行給定程序p)的上下文中執(zhí)行,其中按照關(guān)系等式(1)(其將失效目標(biāo)鏈接到子程序的覆蓋,其又定義為三個自測操作ast1、achk、asys的覆蓋kst1、kchk、ksys的函數(shù),實(shí)現(xiàn)被指配給三個自測操作的每個的覆蓋目標(biāo)的準(zhǔn)確識別,同樣實(shí)現(xiàn)按照優(yōu)化方式的目標(biāo)分布)將程序p分解為子程序并且將自測操作劃分為三個獨(dú)立操作(即,經(jīng)由診斷性測試的自測ast1、經(jīng)由系統(tǒng)值的監(jiān)測的自測asys以及經(jīng)由中間結(jié)果的比較的自測achk)。
參照圖1所述的架構(gòu)還設(shè)想經(jīng)由用于交換監(jiān)測和控制消息mc的通信協(xié)議pl與外部模塊、即控制模塊15協(xié)作執(zhí)行上述自測操作?!巴獠磕K”在這里表示處理器11外部的模塊,即使上述模塊能夠包含在其中提供處理器的集成電路中。所述的方法設(shè)想,即,與已知系統(tǒng)中運(yùn)行的自測操作(其在同一個單處理器或多處理器處理系統(tǒng)中生成和檢查自測數(shù)據(jù))不同的自測操作,其設(shè)想在單處理器或多處理器處理系統(tǒng)中生成自測數(shù)據(jù),但是通過經(jīng)由單獨(dú)的獨(dú)立元件、即控制模塊15執(zhí)行檢查來完成自測操作。
為了更詳細(xì)描述上述和其他方面,圖3通過iso/osi類型的物理和軟件層的分級結(jié)構(gòu)而示意性示出所述解決方案的一實(shí)施例的抽象模型,其也表示通信協(xié)議pl。
上述通信協(xié)議pl在分層等級來實(shí)現(xiàn),其中在應(yīng)用層(圖3中的l4)的消息封裝在程序p所實(shí)現(xiàn)的協(xié)議pl中,以及在較低級(圖3中的層l2),添加與stl50有關(guān)的消息。如圖3所示,控制模塊15按照相對于上述分層等級鏡面(specular)的方式來實(shí)現(xiàn)通信協(xié)議pl。上述協(xié)議pl按分層框架(其實(shí)現(xiàn)不同處理器模塊11的不同標(biāo)識符id的不同分組的封裝及其在控制模塊15中朝預(yù)先設(shè)置用于其分析和比較的處理單元的路由選擇)來安排監(jiān)測和控制消息mc,如參照圖6更詳細(xì)表示。以下由vc標(biāo)示的是定址特定系統(tǒng)層的邏輯通道,由id標(biāo)示的是定址涉及處理元件的物理通道的標(biāo)識符,由c1、…、cm標(biāo)示的是物理核心,由v1、…、vm標(biāo)示的是虛擬機(jī)。特別是,在協(xié)議pl中,分組類型的消息mc包括用于數(shù)值的下列字段:
專用于消息mc的分層(作為它們所屬的邏輯通道vc的函數(shù))的字段;
用于消息mc的分組的基本和時間序列的字段;
控制模塊15的命令的字段;以及
包含控制模塊15相對其必須完成自測操作的數(shù)據(jù)的有效載荷字段。
控制模塊15還配置用于通過實(shí)現(xiàn)檢錯和/或糾錯的算法對消息mc的內(nèi)容執(zhí)行完整性檢查。優(yōu)選地,算法crc32用作檢錯算法(圖7中,它在模塊112a中實(shí)現(xiàn))。
研討圖3的物理和軟件分層等級的表示的更多細(xì)節(jié),由l1標(biāo)示的是用于與多處理器10(其包括多個核心c1、…、cm和輸入/輸出模塊10)對應(yīng)的硬件執(zhí)行的物理層。這通常通過一個或多個集成電路來實(shí)現(xiàn)。
由l2標(biāo)示的是管理程序?qū)觢2,通過用于管理虛擬機(jī)17的模塊表示,通常稱作“管理程序(hypervisor)”的軟件組件,其具有物理層l1的現(xiàn)有硬件的虛擬化的功能,從而使得具有對應(yīng)操作系統(tǒng)的數(shù)量n個虛擬機(jī)v1、…、vn在虛擬化級l3可用,使得它們能夠用作獨(dú)立單元、即所謂的“客戶虛擬機(jī)”。用于管理虛擬機(jī)17的模塊保證各種虛擬機(jī)v1、…、vn以及從程序p所分解(例如手動地)的對應(yīng)子程序p1、…、pn將具有程序p所需的給定特性。上述分解操作備選地甚至可以不受保護(hù),或者經(jīng)由應(yīng)用本身或者其操作系統(tǒng)的修改來保護(hù)。在功能安全性的應(yīng)用領(lǐng)域,上述特性通常包括保證不同進(jìn)程的執(zhí)行之間的實(shí)時執(zhí)行和無干擾。如所述,本文所述的方法而是設(shè)想,上述特性將僅或者也考慮失效概率目標(biāo)g。一般來說,虛擬機(jī)的數(shù)量n示為等于程序p所分解成的子進(jìn)程p1、…、pn的數(shù)量,其中在優(yōu)選示例中n=2。由于能夠在同一個核心中得到多個虛擬機(jī),所以核心的數(shù)量m優(yōu)選地小于或等于n。
本文所述的用于管理虛擬機(jī)17的模塊包括:與stl50對應(yīng)的軟件組件,其如所述引入對核心c1、…、cm的每個的功能完整性的測試;以及外設(shè),其構(gòu)成作為它的基礎(chǔ)的硬件、即物理層l1,以便保證隨機(jī)類型的可能失效(其本是在上述基礎(chǔ)硬件中發(fā)生)以覆蓋k的預(yù)定義百分比被檢測到。在同構(gòu)多處理器的情況下可以只存在一個庫50。用以在用于管理虛擬機(jī)17的模塊中集成軟件組件、在這里為stl50的組件(或者在非同構(gòu)多處理器的情況下stl50的組件)的形態(tài)本身是本部門的技術(shù)人員已知的。stl50的組件可易于集成在用于管理虛擬機(jī)17的模塊中,在這種類型的模塊范圍中,例如管理程序,其提供有已知的虛擬化系統(tǒng),通常向用戶呈現(xiàn)實(shí)現(xiàn)附加組件的集成的界面。因此,有可能將stl50的組件作為附加組件來集成,如圖3所示。
應(yīng)用層l4對應(yīng)于程序p所分解成的子程序p1、…、pn(其在虛擬機(jī)v1、…、vn上實(shí)現(xiàn))的等級。關(guān)聯(lián)到這個應(yīng)用層l4的是軟件模塊或組件、特別是對應(yīng)用比較60而言各進(jìn)程p1、…、pn一個,具體稱作“應(yīng)用安全性層”(asl),其一般執(zhí)行自測操作,其經(jīng)過通道的中間結(jié)果之間的比較來生成應(yīng)用自測數(shù)據(jù)dchk。更具體來說,如所述,在本文所述的方法中,應(yīng)用-比較軟件模塊或組件60、特別是各進(jìn)程p1、…、pn一個,得到應(yīng)用自測數(shù)據(jù)dchk,其然后在控制模塊15中被檢查和比較。
圖3中,控制模塊15表示為硬件組件,在圖6中詳細(xì)示出。但是,它也可以按等效方式實(shí)現(xiàn)為具有所產(chǎn)生組件的成本/性能的差異的軟件。完全作為舉例,控制模塊15可實(shí)現(xiàn)為另一處理器所運(yùn)行的程序。
與控制模塊15所交換以用于完成自測操作ast1、asys、achk的監(jiān)測和控制消息mc劃分為兩種不同類型:
包含與運(yùn)行于微處理器10上的程序p的特性無關(guān)的數(shù)據(jù)的消息;這些是例如通過在架構(gòu)上測量的系統(tǒng)值的自測操作asys所生成的系統(tǒng)自測數(shù)據(jù)dsys(其包括多處理器10的核心c1、…、cm的電壓和/或溫度的測量)以及與按照自測庫50的特定診斷性自測過程之一進(jìn)行的計算的中間結(jié)果有關(guān)的診斷性自測數(shù)據(jù)dst1;
包含與程序p的處理的中間結(jié)果有關(guān)的數(shù)據(jù)并且因此取決于程序p或應(yīng)用本身的消息;這些是通過子程序p1、…、pn之間經(jīng)由應(yīng)用-比較軟件模塊60的比較操作achk所生成的應(yīng)用自測數(shù)據(jù)dchk。
控制模塊15采用控制模塊15中包含的對應(yīng)自測邏輯組件51和應(yīng)用-比較邏輯組件61,經(jīng)由消息mc(其包含對應(yīng)自測數(shù)據(jù)dst1和dchk)的協(xié)作和交換,來完成在多處理器10中開始的自測操作ast1、asys、achk。如圖6所示,上述分離具有邏輯類型;但是,組件51和61可經(jīng)由硬件模塊的同一個集合來實(shí)現(xiàn)。這例如按如下方式進(jìn)行:
-控制模塊15通過在邏輯模塊51中進(jìn)行按照自測庫50的特定診斷性自測過程之一對多處理器10的核心c1、…、cm所進(jìn)行的計算的中間結(jié)果有關(guān)的診斷性自測數(shù)據(jù)dst1與上述控制模塊15中存儲的預(yù)先計算和預(yù)計值dst1a的集合之間的比較來完成診斷性自測操作ast1,并且檢測可能的共因失效(ccf);上述診斷性自測數(shù)據(jù)dst1與預(yù)先計算和預(yù)計值dsta1的集合之間的可能差指示邏輯中或者多處理器10的核心c1、…、cm的狀態(tài)中的失效的影響(是永久還是瞬時);
-同時,控制模塊15通過在邏輯模塊61中進(jìn)行一對處理器模塊11(是虛擬機(jī)還是核心)獨(dú)立產(chǎn)生的應(yīng)用自測數(shù)據(jù)dchk的連續(xù)比較實(shí),際執(zhí)行兩個對應(yīng)安全性通道之間的交叉檢查的功能;以及
-控制模塊15還通過檢查系統(tǒng)自測數(shù)據(jù)dsys是否落入預(yù)計范圍ratt(其同樣存儲在控制模塊15中)之內(nèi)而以檢查來完成在架構(gòu)上測量的系統(tǒng)值的自測操作asys。
控制模塊15按照例如用于比較的下列標(biāo)準(zhǔn)對監(jiān)測和控制消息mc進(jìn)行上述檢查:
它考慮消息mc的到達(dá)順序以及它們是否屬于對比較所考慮的循環(huán);因此,優(yōu)選地,不考慮單獨(dú)消息mc的絕對到達(dá)時間,即使在備選實(shí)施例中可被考慮;
控制模塊15配置用于實(shí)現(xiàn)來自不同源、即來自不同處理器元件11(在這種情況下為二)的消息mc的內(nèi)插,適當(dāng)?shù)刈鹬貎蓚€處理器模塊11的每個的序列中的順序,如先前所示;以及
控制模塊15通過完成循環(huán)時間tcyc所定義的每個循環(huán)的檢查而在循環(huán)的基礎(chǔ)上應(yīng)用其自己的檢查。
以下是自測庫50和補(bǔ)充邏輯模塊51的更詳細(xì)描述。
stl50具有下列雙重功能:
實(shí)現(xiàn)多處理器處理系統(tǒng)10的診斷性自測操作ast1所表示的自測操作;這個診斷性自測操作ast1通常通過比較由多處理器10在測試時刻本身所處理的計算結(jié)果、診斷性自測數(shù)據(jù)dst1與預(yù)先計算和存儲的正確結(jié)果、預(yù)計結(jié)果dst1a來實(shí)現(xiàn),以便檢查多處理器10是否正確計算和運(yùn)行對其指配的程序序列;這個計算結(jié)果dst1通常從算術(shù)和邏輯類型的操作以及定址操作的序列來得到,以便按照最完全、廣泛和詳盡的方式涉及微處理器11的各種電路部件;如所述,在本文所述的方法和架構(gòu)中,與預(yù)計值dst1a的比較操作與外部處理模塊、即控制模塊15協(xié)作(即,通過圖3的分層表示中的模塊50和51的協(xié)作)來實(shí)現(xiàn);以及
測量系統(tǒng)自測數(shù)據(jù)dsys,即,測量與每個微處理器的操作和/或操作條件有關(guān)的全局參數(shù);優(yōu)選地,測量諸如微處理器的工作電壓和系統(tǒng)的溫度或者微處理器內(nèi)部的溫度之類的量;這個功能在識別微處理器的可能失效的狀況以及特別是可確定微處理器中的共因失效的狀況中特別重要;如所述,上述系統(tǒng)自測數(shù)據(jù)dsys優(yōu)選地還經(jīng)由庫50中包含的對應(yīng)程序來得到,即使它們可在獨(dú)立庫中提供并且在邏輯模塊51中針對預(yù)計范圍ratt來檢查。
特別地并且關(guān)于診斷性自測操作ast1(其提供診斷性自測數(shù)據(jù)dst1),自測代碼通常由測試分段的集合(由202標(biāo)示并且參照圖7更詳細(xì)描述)來組成。
上述測試分段優(yōu)選地專用于按照在集成電路級并且特別是對單獨(dú)核心c1、…、cm或者單獨(dú)處理器進(jìn)行的“失效模式影響和診斷分析”(fmeda)類型的分析目標(biāo),來測試微處理器、在這種情況下為多處理器處理系統(tǒng)10的一個或多個功能單元。上述fmeda能夠例如在以本申請人的名義所提交的專利申請no.ep1980964a1中描述的過程之后進(jìn)行。組成每個核心c1、…、cm的stl50的測試分段的總體目標(biāo)是取得覆蓋等級、具體來說是自測覆蓋kst1或系統(tǒng)覆蓋ksys,諸如以滿足對組成核心c1、…、cm的整個邏輯預(yù)先確定的覆蓋約束f(k)。這通常是具有高級架構(gòu)(具有深層管線、具有超標(biāo)量、多問題類型)的微處理器的極難問題,并且困難隨著經(jīng)受自我診斷的微處理器的復(fù)雜度增加而顯著增加。與應(yīng)用部門相關(guān)的功能安全性標(biāo)準(zhǔn)定義對系統(tǒng)和系統(tǒng)的各種組件的完整性的最小要求。
因此,組成庫50的各個分段必須被設(shè)計用于作為整體在整個微處理器或核心上取得覆蓋kst1的目標(biāo)值,例如以便使—經(jīng)由例如以下通過應(yīng)用等式1所述過程等的計算過程—完整性等級達(dá)成大于或等于相關(guān)安全性標(biāo)準(zhǔn)所設(shè)想的。
診斷性自測庫50的程序通常,由于相對待測試微處理器的各種功能單元的可擴(kuò)展性和微處理器的每個功能單元上的更簡單單元、即測試分段202的專門化,按照模塊化形式來組織。
圖7關(guān)于這一點(diǎn)示意性表示由200標(biāo)示的自測庫50的自我診斷性程序。通過指示待運(yùn)行測試分段的標(biāo)識符id#、通過稱作“測試接口201”的軟件層(其提供朝向在循環(huán)和規(guī)則的基礎(chǔ)上調(diào)用庫50的自我診斷性程序的軟件的接口),來調(diào)用程序200中包含的測試分段202。測試分段202通過發(fā)送合格/不合格戳記進(jìn)行應(yīng)答。
測試分段202的結(jié)構(gòu)再次具有通過連續(xù)階段所組織的模塊化類型,并且包括序文203和后文204,其通常通過高級語言(ansi-c)來編寫,即,與經(jīng)受自測的微處理器的架構(gòu)無關(guān)。序文202和后文204專用于朝向高層的接口的功能、全局變量的管理和測試的結(jié)果,其將采用實(shí)現(xiàn)任何差錯(當(dāng)這在被這些軟件模塊所處理時可能折磨測試結(jié)果)的檢測的技術(shù)來管理。
測試分段202的心臟通過按照微處理器的架構(gòu)特定的低級代碼(通常為匯編程序)所編寫的一系列模塊206來表示,圖中標(biāo)示為“asm核心代碼”。在它們按針對性方式模擬微處理器的各種邏輯和算術(shù)及連續(xù)單元以便激活微處理器本身的可能失效并且使其是可觀察的范圍內(nèi),這些模塊206是有效地執(zhí)行自測的部件。按照低級代碼的各種模塊206能夠通過按照高級語言所編寫的例程205來管理。測試分段202包括戳記計算器207,以用于經(jīng)由模塊205和206在檢查結(jié)束時生成不合格/合格戳記。測試分段202包括按照低級代碼的多個模塊206,以用于得到相對于失效的覆蓋目標(biāo),考慮安全性分析所定義的失效模式的給定集合。
以下是處理器11上的stl50與控制模塊15上的邏輯組件51之間的自測分析的分布、具體來說是診斷性自測操作ast1的描述。
stl50的操作基于微處理器通過下列步驟來自行測試的能力:運(yùn)行代碼序列,例如以便要求組成它的各種邏輯的盡可能多的份額,并且產(chǎn)生中間結(jié)果,其適當(dāng)累積以使得中間結(jié)果中的可能差錯無法抵消,然后可產(chǎn)生標(biāo)志,其在與假定失效不存在的情況下預(yù)先計算的相同值進(jìn)行比較時將產(chǎn)生可能影響經(jīng)受測試的邏輯的可能失效的檢測的最高置信度。激活并且檢測失效的能力取決于stl50激活失效的能力以及取決于用于累積中間結(jié)果以使得中間結(jié)果中的任何可能差在累積過程期間無法抵消的數(shù)值方法。為了清楚起見,可存在微處理器中的stl50所產(chǎn)生的各種類型的結(jié)果,即,中間結(jié)果、累積和標(biāo)志,最后兩個按照實(shí)施例經(jīng)常是相同的。累積通常是減少原本不可管理的中間結(jié)果的數(shù)量所需的。以下為了簡潔起見,將參照中間結(jié)果,在這個定義中包括上述全部三種類型的結(jié)果。
單個微處理器中的失效的激活的檢測可經(jīng)過兩種不同機(jī)制進(jìn)行:
a)通過自測軟件本身進(jìn)行的檢測,其通過檢測診斷性自測數(shù)據(jù)dst1與預(yù)先計算數(shù)據(jù)、即預(yù)計結(jié)果dst1a的比較的差來確定差錯,并且以可編程方式采用對策,指出所檢測差錯;這是典型情況,其中失效沒有影響負(fù)責(zé)控制程序流程的邏輯,而是僅影響數(shù)據(jù)的算術(shù)/邏輯計算的部分;
b)通過與失效的發(fā)生聯(lián)合運(yùn)行stl50的測試所得到的模擬,其確定程序p的執(zhí)行的序列中的差錯,例如以便違反在外部監(jiān)視器(其通知關(guān)于差錯)所監(jiān)控的執(zhí)行時間t的測試極值;這是典型情況,其中失效影響負(fù)責(zé)控制程序流程的邏輯;要注意,監(jiān)視器可以是系統(tǒng)的專用組件或者另一個核心,其通過執(zhí)行交叉檢查進(jìn)行管理以檢測所考慮微處理器上的測試50的執(zhí)行的錯誤功能或時間行為。
在上述上下文中,圖3所示的stl50生成診斷性自測數(shù)據(jù)dst1,其包括與自測過程或中間結(jié)果(或者部分結(jié)果、中間結(jié)果的累積或者中間結(jié)果與預(yù)計值之間的比較結(jié)果)有關(guān)的數(shù)據(jù),其被發(fā)送給外部模塊、即控制模塊15,其執(zhí)行診斷性自測數(shù)據(jù)dst1(機(jī)制a)與程序流程的控制之間的交叉比較(按照這種方式在stl測試的模擬的機(jī)制b的上下文中執(zhí)行外部監(jiān)視器的功能,如上所述)。
stl50還生成測量值,包括系統(tǒng)配置、即系統(tǒng)自測數(shù)據(jù)dsys。
stl50對控制模塊15生成對應(yīng)消息mc,其包含上述診斷性自測數(shù)據(jù)dst1和系統(tǒng)自測數(shù)據(jù)dsys,控制模塊15經(jīng)由邏輯組件51來處理由運(yùn)行于多處理器10的物理核心c1、…、cm的stl50所生成的上述消息。
在邏輯組件51中執(zhí)行的這種處理配置用于執(zhí)行下列操作:
執(zhí)行對診斷性自測數(shù)據(jù)dst1的交叉檢查,
通過實(shí)現(xiàn)對微處理器c1、…、cm所進(jìn)行的比較的結(jié)果實(shí)現(xiàn)執(zhí)行流程的(通道內(nèi))檢查;以及
通過對于從微處理器c1、…、cm的每個上的庫50的測試的處理所得到的部分結(jié)果進(jìn)行(通道間)交叉檢查;
通過檢查比較的結(jié)果、即部分結(jié)果在預(yù)定時間窗口(其特征在于最大和最小等待時間)之內(nèi)并且按照預(yù)設(shè)順序來發(fā)送和接收對適當(dāng)時間執(zhí)行來執(zhí)行檢查;這實(shí)現(xiàn)流程的執(zhí)行中的可能差錯的檢測,如先前所示,作為要求外部組件的輔助的stl50的測試的執(zhí)行流程中的差錯的檢測機(jī)制;
對于測量值dsys是否實(shí)際屬于被測量量(通常為工作電壓和溫度)的可變性的預(yù)定義范圍之內(nèi)執(zhí)行檢查;另外,可執(zhí)行系統(tǒng)配置(其通過測試庫50來獲取并且表示執(zhí)行期間的系統(tǒng)的狀態(tài))的一致性的檢查。
剛才描述的檢查之一的違反暗示由控制模塊15生成報警al(如圖6所示),并且實(shí)現(xiàn)安全性的應(yīng)用所需的對策。上述報警生成功能將報警發(fā)送給模塊16,其是控制系統(tǒng)10中的系統(tǒng)資源的模塊,并且例如可實(shí)現(xiàn)復(fù)位或去除電源電壓或者在任何情況下迫使達(dá)到系統(tǒng)的安全狀態(tài)。
關(guān)聯(lián)到自測庫50的操作流程的一示例如下:
永遠(yuǎn)重復(fù){
從運(yùn)行于多處理器10、管理程序?qū)踊蛘咧苯舆\(yùn)行于每個物理核心的自我診斷庫的所有程序來接收數(shù)據(jù)
按照核心、虛擬通道和類型來劃分并且組織數(shù)據(jù)
對齊與庫50的各程序?qū)?yīng)的中間結(jié)果;檢查對應(yīng)中間結(jié)果與最大等待時間之間的最大偏斜
執(zhí)行庫50的中間結(jié)果之間的交叉檢查并且檢測差錯
從不同核心采集測量;檢查對應(yīng)中間結(jié)果與最大等待時間之間的最大偏斜
對范圍執(zhí)行檢查并且識別違反
}
又如圖6中參照模塊116所示,控制模塊15運(yùn)行值、順序、時間(等待時間、偏斜和使用時間戳的絕對到達(dá)時間)和范圍(在具有比較器的模塊114中)的多個檢查。具體來說,進(jìn)行對自測數(shù)據(jù)dst1、dchk、dsys的下列檢查:
·對值的檢查檢驗(yàn)中間結(jié)果是否相同或者已經(jīng)校正;
·對順序的檢查按照消息中的計數(shù)器來檢驗(yàn)消息的順序是否正確;
·對到達(dá)時間的檢查將消息的到達(dá)時間與執(zhí)行的當(dāng)前循環(huán)中的預(yù)計最小和最大時間和/或與來自另一個核心的對應(yīng)消息進(jìn)行比較;以及
·對范圍的檢查校驗(yàn)所測量的值是否屬于預(yù)定義范圍ratt。
校驗(yàn)的各違反由控制模塊15(其通知關(guān)于差錯并且然后向模塊16發(fā)送報警)來管理。
以下是控制模塊15中存在的應(yīng)用-比較軟件組件60和補(bǔ)充邏輯模塊61的更詳細(xì)描述。
因此,如圖3所示,運(yùn)行于虛擬機(jī)v1、…、vn的子程序p1、…、pn中存在的是應(yīng)用-比較軟件組件60,其實(shí)現(xiàn)asl、即子程序p1、…、pn的處理的部分結(jié)果的檢測過程。這些應(yīng)用-比較軟件組件60還執(zhí)行上述部分結(jié)果的累積,并且通過具有安全性功能sf的程序來檢測所累積的結(jié)果的差。上述應(yīng)用-比較軟件組件60還按照協(xié)議pl(其形成本文所述方法的主題)執(zhí)行累積結(jié)果和應(yīng)用數(shù)據(jù)dchk的幀中的差的組織。
如所述,應(yīng)用-比較軟件組件60還具有控制模塊15中的對應(yīng)應(yīng)用-比較邏輯組件61。對應(yīng)用自測數(shù)據(jù)dchk,控制模塊15具體通過下列步驟來執(zhí)行交叉比較:基于應(yīng)用自測數(shù)據(jù)dchk的值、其順序以及應(yīng)用-比較軟件組件60所生成的應(yīng)用自測數(shù)據(jù)dchk的分組中出現(xiàn)的時鐘時間來檢查信息的一致性。
現(xiàn)在更詳細(xì)描述的是通信協(xié)議pl。自測操作ast1、asys、achk的組織設(shè)想按照軟件層l2、…、l4(其生成消息)并且按照消息本身的目的來定義協(xié)議pl中的消息集合的不同類型。
定義下列邏輯通道或虛擬機(jī)vc。邏輯通道vc的每個攜帶來自通過id0和id1所表示的最多兩個不同物理通道的消息:
vc0:安全性vc—源自應(yīng)用層l4或者源自具有安全性功能sf的程序的安全性邏輯通道(具有標(biāo)識符id0和id1的物理通道);
vc1:管理程序vc—按照實(shí)現(xiàn)、源自管理程序?qū)觢2或者源自應(yīng)用層l4的邏輯通道(具有標(biāo)識符id0的物理通道);以及
vc2:q&s—按照實(shí)現(xiàn)(其對系統(tǒng)執(zhí)行維護(hù)操作(質(zhì)量和服務(wù)))、源自管理程序?qū)觢2或者源自虛擬機(jī)和操作系統(tǒng)層l3的質(zhì)量和服務(wù)邏輯通道(具有標(biāo)識符id0和id1的物理通道)。
在具有兩個物理通道的優(yōu)選實(shí)施例中具有
邏輯通道vc0和vc2支持兩個物理通道id0和id1,其因此是安全性通道;以及
邏輯通道vc1僅支持一個物理通道id0。
邏輯通道vc的上述定義在控制模塊15的特定特性中反映,使得有可能配置消息集合的每個類別的可編程校驗(yàn)和報警。
在控制模塊15的優(yōu)選實(shí)施例中,預(yù)先確定和固定各種邏輯通道vc的傳輸順序,例如vc0、vc1和vc2。圖4示出通過控制模塊15的比較邏輯所反映的通信協(xié)議pl的可能實(shí)施例的一示例。具體所示的是通信信道,其中在診斷性測試間隔dti之內(nèi),按照通信協(xié)議pl來發(fā)送邏輯通道vc0、vc1、vc2dti:
邏輯通道vc0,用于物理通道id0、id1—這攜帶安全性功能sf的數(shù)據(jù)、即應(yīng)用自測數(shù)據(jù)dchk,測試其與控制模塊15的組件61的一致性:屬于通道id0和id1的同構(gòu)消息相互比較,以及該比較必須產(chǎn)生正確結(jié)果、即相同的但是有差異、例如編碼的差異的數(shù)據(jù);數(shù)據(jù)實(shí)際上可按照不同方式來編碼(例如通道中互補(bǔ)),以便降低共因差錯的概率;
邏輯通道vc1,用于物理通道ido—這攜帶來自管理程序?qū)觢2的診斷性自測庫50的診斷性自測數(shù)據(jù)dst1;以及
邏輯通道vc2,用于物理通道id0、id1—這攜帶所測量的值、即系統(tǒng)自測數(shù)據(jù)dsys,例如溫度、電壓等的值。
再次參照圖4,應(yīng)當(dāng)注意,在傳輸必須按照連續(xù)方式并且在最壞情況下具有與程序p相同的循環(huán)時間tcyc進(jìn)行的范圍內(nèi),消息傳遞通道m(xù)c上的總傳輸時間必須不超過系統(tǒng)的診斷性測試間隔dti。
在圖5的簡圖中描述由控制模塊15對消息序列sq所進(jìn)行的校驗(yàn)。第一行中出現(xiàn)的是分層等級l以及所涉及元件,無論是處理器模塊c1或c2還是管理程序模塊17。標(biāo)記有標(biāo)識符id0和id1的消息mc封裝在消息的各個集合sq(sq1和sq2)中,并且包含在各種邏輯通道vc中。它們經(jīng)受控制模塊15進(jìn)行的兩種類型的校驗(yàn):
通道內(nèi)校驗(yàn)itc(圖5中未示出),其應(yīng)用于屬于同一個邏輯通道vc和同一個標(biāo)識符id的消息;
通道間校驗(yàn)intc,其應(yīng)用于屬于不同邏輯通道vc的消息mc(例如,與id1的第一消息sq10,1進(jìn)行比較的id0的第一消息sq10,0,與id1的第二消息sq2,1進(jìn)行比較的id0的第二消息sq12,0,等等);除了通道內(nèi)校驗(yàn)itc(其關(guān)心來自每個通道的消息的一致性)之外并且在比通道內(nèi)校驗(yàn)itc要高的等級還進(jìn)行這些通道間校驗(yàn)intc。
應(yīng)當(dāng)強(qiáng)調(diào),圖5表示按照其原始而不是時間序列(用以傳送它們)的消息。
所述通信協(xié)議pl以及對消息集合所執(zhí)行的校驗(yàn)的結(jié)構(gòu)在控制模塊15的功能架構(gòu)一直到其實(shí)現(xiàn)微架構(gòu)中存在直接對應(yīng)性,如參照圖6所示。
如所述,用于控制模塊15的軟件類型以及例如fpga裝置中或者asic中具有專用邏輯的硬件類型的實(shí)現(xiàn)都是可能的。
圖6示出控制模塊15中集成的主要功能。
圖6的描述的等級反映專用硬件單元,但是同樣可反映用于提供例如作為獨(dú)立于多處理器10的處理器模塊中的嵌入式軟件而不是fpga裝置或者asic中的專用硬件的其實(shí)施例的功能單元。完全作為舉例,圖9示出芯片上系統(tǒng)(soc)1000所提出的、具體來說具有二核對稱多處理器的架構(gòu)的可能實(shí)現(xiàn),其中兩個處理器11包含在“硬宏”1010中,而控制模塊15是運(yùn)行于soc1000的可編程部分1020(fpga)中實(shí)現(xiàn)的冗余處理器的軟件模塊。
回到圖6,通過112所表示的是到通信總線12的總線接口,其包括配置和狀態(tài)接口模塊112c以及用于各種通道id0和id1的消息的緩沖器112b。它還包括用于對到達(dá)的分組的crc類型的校驗(yàn)的模塊112a。
通過113所表示的是定時模塊,以用于檢查定時,具體來說是用于檢查執(zhí)行時間保持在為檢查所設(shè)置的極值之內(nèi)。
通過114所表示的是用于通道間校驗(yàn)(intc操作)的模塊,其包括用于通道的數(shù)據(jù)的通道間比較的比較器114a以及硬件故障注入器114b。
通過116所表示的是用于通道內(nèi)校驗(yàn)(itc操作)的模塊,其包括用于檢查到達(dá)數(shù)據(jù)的到達(dá)時間、順序和值。
數(shù)據(jù)由消息分發(fā)器模塊115來提供給上述模塊114和116,消息分發(fā)模塊115包括直接存儲器存取(dma)模塊116和消息控制器模塊116b。
通過111所表示的是差錯控制器,其經(jīng)由可編程事件路由器向模塊16發(fā)送報警。與從反常條件(其在模塊114和116中從物理通道id0與id1之間的比較或者相對值或預(yù)先計算結(jié)果的預(yù)計范圍的比較所檢測)所得出的數(shù)據(jù)和報警有關(guān)的信息和信號如參考安全性標(biāo)準(zhǔn)(參見例如iec61508“安全性設(shè)計推薦”)所要求來保持為獨(dú)立(從邏輯、電氣和物理觀點(diǎn)來看)。再次參照圖6,報警通過虛線表示。所示的報警源關(guān)心下列比較中的異常的檢測:
通道間校驗(yàn)intc(模塊114)—這種類型的比較包括值、例如由多處理器的不同核心所計算的、預(yù)計是相同的值的比較以及預(yù)先計算的預(yù)計值的比較;它們生成通道間報警alintc;
通道內(nèi)校驗(yàn)itc(模塊116)—這種類型的比較包括與預(yù)先計算的預(yù)計值的比較,即,相對(例如工作溫度或電壓的)預(yù)定義參考范圍的檢查;它們生成通道內(nèi)報警alitc;
對定時的校驗(yàn)(模塊113),例如對執(zhí)行時間是否保持在為校驗(yàn)所設(shè)置的極值之內(nèi)的校驗(yàn);它們生成定時報警alt;以及
從正式觀點(diǎn)來看的消息的結(jié)構(gòu)和組成的異常,在所考慮的示例中,由crc模塊112a對于接口112的輸入處的消息的文本進(jìn)行crc類型的校驗(yàn)的失敗,這個校驗(yàn)生成報警alc。
最后,控制模塊15包括故障注入模塊117。
如通過圖6的描述可理解,邏輯模塊51和61沒有單獨(dú)實(shí)現(xiàn),而是這些邏輯模塊的每個所需的功能基本上由模塊114、116和113來執(zhí)行。
因此,通過以上描述,本發(fā)明的優(yōu)點(diǎn)清楚地顯現(xiàn)。
所述的方法和架構(gòu)有利地使得有可能滿足多通道或單通道系統(tǒng)、甚至在單個集成電路上的多處理器中高度集成的系統(tǒng)的功能安全性的給定要求。
分解程序并且將自測操作劃分為三個獨(dú)立操作(即,經(jīng)由診斷性測試的自測、經(jīng)由系統(tǒng)值的監(jiān)測的自測以及經(jīng)由中間結(jié)果的比較的自測)的上述過程以及對應(yīng)等式(1)實(shí)現(xiàn)將要指配給三個自測操作的每個的覆蓋目標(biāo)的準(zhǔn)確識別,同樣實(shí)現(xiàn)按照優(yōu)化方式的目標(biāo)的分布,即,降低—對于對其應(yīng)用所述方法的特定類型的系統(tǒng)—要求取得主要設(shè)計工作量的操作的目標(biāo),而提升這種上下文中更易于執(zhí)行的操作的目標(biāo)。
所述的解決方案還實(shí)現(xiàn)經(jīng)過引入元件(基本上通過控制模塊所表示,即,單獨(dú)電子定時器模塊,由處理器以預(yù)設(shè)時間間隔周期地查詢,以用于以給定周期性或頻率來執(zhí)行所述的三個不同自測操作)來緩解共因失效(ccf)的問題。
具體來說,以上所述通過在自測操作中執(zhí)行下列步驟來得到:
-通過下列步驟的時間類型以及值和序列類型兩者的檢查功能:對預(yù)定義時間窗口中的預(yù)定義事件的發(fā)生和預(yù)定義序列的考慮來施加校驗(yàn);以及檢查所確定的或者在任何情況下由處理器所計算的數(shù)值,其對應(yīng)于上述診斷性自測操作;
-在處理器中通過處理器所計算或者經(jīng)由處理器或者一般來說的多處理器中可用的傳感器所測量的值相對與系統(tǒng)值的自測的上述操作對應(yīng)的預(yù)先計算的正確值的比較來檢測ccf的發(fā)生;以及
-用于基于交叉檢查來確定處理器的完整性的協(xié)議的實(shí)現(xiàn),其對應(yīng)于程序的中間結(jié)果的自測的上述操作。
在這點(diǎn)上,要強(qiáng)調(diào)多處理器的高度集成和同構(gòu)電路實(shí)施例如何是保證系統(tǒng)的最高性能和最低成本、同時易受ccf的問題的實(shí)施例,其在架構(gòu)越是同構(gòu)和高度集成時全部更為重要并且難以防止和/或檢測。ccf的存在是這種類型的架構(gòu)和實(shí)現(xiàn)解決方案沒有廣泛用于服從汽車和工業(yè)領(lǐng)域中的安全性標(biāo)準(zhǔn)的應(yīng)用世界的主要原因,其中具有可取得的經(jīng)濟(jì)有益效果的由此引起的損失。
所述的解決方案還實(shí)現(xiàn)虛擬機(jī)的控制軟件(例如管理程序)與專用軟件程序的組合,其實(shí)現(xiàn)上述自測操作,并且通過其聯(lián)合使用使取得工業(yè)和汽車應(yīng)用中要求的功能安全性的完整性等級所需的要求被滿足。
所述的方法和架構(gòu)還實(shí)現(xiàn)具體為具有核心之間的交叉檢查的支持的多核系統(tǒng)所優(yōu)化的邏輯和時間監(jiān)測;
用于具有1oo1表決的架構(gòu)和用于1oo2表決的架構(gòu)的診斷的實(shí)現(xiàn);
與多核的硬件有關(guān)的信息(狀態(tài)、溫度、供應(yīng)狀態(tài)等)的監(jiān)測;
自行監(jiān)測;
符合規(guī)范iec61508第二版的系統(tǒng),其能夠集成在sil-2和sil-3系統(tǒng)中;
與軟件配合使用的標(biāo)準(zhǔn)接口;
可配置反應(yīng);以及
所選實(shí)現(xiàn)技術(shù)(fpga或asic)的優(yōu)化的可能性。
當(dāng)然,沒有對本發(fā)明的原理的偏見,細(xì)節(jié)和實(shí)施例可相對本文中完全作為舉例所述的細(xì)節(jié)和實(shí)施例甚至顯著改變,而沒有由此背離范圍,這個保護(hù)范圍通過所附權(quán)利要求書所限定。
在作為舉例所考慮的安全性架構(gòu)中,控制模塊15能夠關(guān)聯(lián)到表決器模塊,其常用于在多通道架構(gòu)連續(xù)比較通道的輸出(在其由程序或者由致動器所使用之前),按照表決技術(shù)來評估將要提供給程序的安全輸出。or門能夠接收控制模塊15的輸出和表決器的輸出,并且檢測這些輸出之間的可能差。差的檢測確定失效的檢測條件,其迫使系統(tǒng)達(dá)到或保持為所運(yùn)行程序所定義的安全狀態(tài)。
術(shù)語“庫”在本描述中用于定義診斷性自測程序的軟件模塊,但是也可適用于系統(tǒng)數(shù)據(jù)(其如所述可包含在診斷性自測庫中)的自測的模塊,并且適用于子程序的中間結(jié)果之間的比較的自測模塊。
包括自測程序的上述庫或軟件模塊例如可存儲在卡上可用或者以其他方式所集成(其包括處理系統(tǒng))的閃速存儲器中,并且然后在處理模塊的ram中加載。
即使本文所述的方法表示處理系統(tǒng)、具體來說是多處理器系統(tǒng)和控制模塊,但是分解為子程序的操作本身也只適用于沒有獨(dú)立控制模塊的處理系統(tǒng)。換言之,形成本公開的主題的也是一種用于在提供有功能安全性的應(yīng)用的電子系統(tǒng)(其包括單處理器或多處理器類型的處理系統(tǒng))中運(yùn)行程序的方法,包括:執(zhí)行將程序(其包括安全性功能并且經(jīng)由上述系統(tǒng)來運(yùn)行)分解為多個并行子程序的操作;將各并行子程序的執(zhí)行指配給系統(tǒng)的相應(yīng)處理模塊、具體來說是上述多處理器架構(gòu)的處理器或者關(guān)聯(lián)到上述處理器之一的虛擬機(jī);在系統(tǒng)中、在上述安全性功能的框架中按照系統(tǒng)的正常操作期間的程序循環(huán)頻率周期地執(zhí)行關(guān)聯(lián)到上述子程序的每個并且關(guān)聯(lián)到對應(yīng)處理模塊(它們在其上運(yùn)行)的自測操作,其中上述自測操作包括診斷性自測操作(其執(zhí)行診斷性自測)、測量系統(tǒng)值的自測操作、子程序的中間結(jié)果之間的比較的自測操作,并且這些自測操作包括生成與自測操作對應(yīng)的相應(yīng)自測數(shù)據(jù),并且執(zhí)行對這些自測數(shù)據(jù)進(jìn)行檢查的操作,以尊重給定失效概率目標(biāo)這樣一種方式執(zhí)行將程序分解為多個并行子程序的上述操作,得到關(guān)聯(lián)于相應(yīng)子程序或處理模塊的上述自測操作每個的覆蓋目標(biāo)。