亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

用于在實(shí)時(shí)操作系統(tǒng)的實(shí)施中識別錯(cuò)誤的方法

文檔序號:6440767閱讀:224來源:國知局
專利名稱:用于在實(shí)時(shí)操作系統(tǒng)的實(shí)施中識別錯(cuò)誤的方法
技術(shù)領(lǐng)域
本發(fā)明涉及一種用于在執(zhí)行實(shí)時(shí)操作系統(tǒng)的實(shí)施中識別錯(cuò)誤的方法、一種計(jì)算機(jī)程序產(chǎn)品、以及一種用于在實(shí)時(shí)操作系統(tǒng)的實(shí)施中識別錯(cuò)誤的裝置。
背景技術(shù)
多種現(xiàn)代化的處理器當(dāng)前提供了更多處理器核心和虛擬化技術(shù)。在此,使用了所謂的系統(tǒng)管理程序(Hypervisor)。在此,這是指一種軟件,該軟件通過應(yīng)用虛擬化技術(shù)使得一個(gè)或多個(gè)客戶操作系統(tǒng)在真實(shí)的硬件上運(yùn)行,并且在此管理能使用的資源。資源在此可以被分配給客戶,也可以處于在系統(tǒng)管理程序控制下。與前面的能使用的技術(shù)相比,以較小的性能缺陷使其實(shí)現(xiàn)并且不會(huì)干預(yù)客戶操作系統(tǒng)。首要的目標(biāo)在于,最佳地充分利用現(xiàn)有的高處理器效率,這由此實(shí)現(xiàn),即為各個(gè)處理器核心分配不同的任務(wù)。因此例如可以在一個(gè)核心上委托具有控制任務(wù)的、有實(shí)時(shí)能力的操作系統(tǒng),而在另一個(gè)核心上應(yīng)用標(biāo)準(zhǔn)操作系統(tǒng)、如Windows系統(tǒng),以對進(jìn)行的過程虛擬化。在執(zhí)行實(shí)時(shí)操作系統(tǒng)時(shí)的一個(gè)問題在于,即必須針對錯(cuò)誤的實(shí)施對該系統(tǒng)進(jìn)行保護(hù)。程序錯(cuò)誤、以及硬件方面的錯(cuò)誤可以特別在自動(dòng)化系統(tǒng)中導(dǎo)致自動(dòng)化系統(tǒng)引起錯(cuò)誤的產(chǎn)品生產(chǎn)或產(chǎn)品加工,或者使自動(dòng)化系統(tǒng)的完全關(guān)閉。在所有情況下產(chǎn)生了較大的經(jīng)濟(jì)損失,其可能通過適合的錯(cuò)誤識別機(jī)構(gòu),在實(shí)時(shí)操作系統(tǒng)的實(shí)施中被避免。

發(fā)明內(nèi)容
因此本發(fā)明的目的在于,提出一種方法、一種計(jì)算機(jī)程序產(chǎn)品以及一種裝置,用于在實(shí)時(shí)操作系統(tǒng)的實(shí)施中識別錯(cuò)誤。本發(fā)明的目的通過獨(dú)立權(quán)利要求所述的特征來實(shí)現(xiàn)。本發(fā)明的優(yōu)選的實(shí)施方式在從屬權(quán)利要求中給出。在此提出了一種用于在實(shí)時(shí)操作系統(tǒng)的實(shí)施中識別錯(cuò)誤的方法,其中實(shí)時(shí)操作系統(tǒng)的邏輯相同的實(shí)例(Instanz)在共用的虛擬化環(huán)境中的第一處理器的至少兩個(gè)處理器核心上被并行地實(shí)施,其中系統(tǒng)管理程序監(jiān)測實(shí)例的并行實(shí)施,其中在執(zhí)行通過實(shí)例引發(fā)的硬件訪問時(shí),通過系統(tǒng)管理程序?qū)⒃趯τ诿總€(gè)實(shí)例的硬件訪問時(shí)傳輸?shù)臄?shù)據(jù)相互比較, 其中,在傳輸?shù)臄?shù)據(jù)之間出現(xiàn)差別的情況下,或者在單方面的通過實(shí)例之一引發(fā)的硬件訪問的情況下,通過系統(tǒng)管理程序識別為是錯(cuò)誤。本發(fā)明因此提出了一種系統(tǒng)保護(hù)的方案,其中系統(tǒng)管理程序用于并行處理用于控制任務(wù)的實(shí)時(shí)操作系統(tǒng)(在下面也稱為固件)的多種不同的版本。目的在于,識別出在兩個(gè)核心上的處理過程中的差別,以及例如可能由于數(shù)據(jù)失真而對用戶產(chǎn)生損害之前,停止所分配的自動(dòng)化系統(tǒng)中的控制。表面上,利用在此提出的用于確保用戶的系統(tǒng)安全的措施使得控制器的系統(tǒng)性能不發(fā)生變化。必須分別在產(chǎn)品特性方面考慮對于性能、特別是處理速度以及等待時(shí)間的影響。在固件的行動(dòng)不同時(shí)需要系統(tǒng)管理程序的相互作用(例如訪問虛擬的或真實(shí)的硬件)。在這種情況下,對虛擬機(jī)的處理被中斷,并且將中斷原因通知給系統(tǒng)管理程序。對于虛擬化軟件也可能的是,通過對特殊的操作碼(Hypercall超級調(diào)用)的處理,中斷虛擬機(jī),以便幫助系統(tǒng)管理程序做準(zhǔn)備工作。兩種類型的中斷可以用于使得虛擬化的固件實(shí)例的工作-或中間結(jié)果實(shí)現(xiàn)匹配 (Abgleich)。所述類型的在中斷時(shí)的匹配在下面稱為“同步點(diǎn)”。因此實(shí)現(xiàn)了一種控制實(shí)例,其在控制器的內(nèi)部的執(zhí)行中識別出錯(cuò)誤,并且可以相應(yīng)地作出反應(yīng)??梢砸虼巳缭谙旅孢€要進(jìn)一步探討地,有助于解決由于未識別的存儲(chǔ)器錯(cuò)誤引起的錯(cuò)誤運(yùn)行的問題,這并不能在所有情況下都利用前述的解決辦法來實(shí)現(xiàn)。最少所需要的匹配包括檢測寫在硬件上的數(shù)據(jù)和分配由硬件讀取的數(shù)據(jù)。如果應(yīng)該描述不同的數(shù)據(jù),達(dá)到不同的同步點(diǎn)或者單方面地達(dá)到僅僅一個(gè)同步點(diǎn),則因此可以假定固件發(fā)生故障。根據(jù)本發(fā)明的一個(gè)實(shí)施方式,通過實(shí)例之一引發(fā)的硬件訪問是直接的硬件訪問或者是在應(yīng)用半虛擬化的情況下通過超級調(diào)用實(shí)現(xiàn)的硬件訪問?;旧?,固件通過例如輸入-和輸出區(qū)域(I/O端口)、存儲(chǔ)器映像設(shè)備(memory mapped device)、中斷請求(interrupt)和直接存儲(chǔ)器訪問(direct memory access-DMA) 和硬件集成在一起。所有這些相互作用可以而且必須通過系統(tǒng)管理程序?qū)崿F(xiàn)匹配和同步。硬件訪問在此基本上可以借助于兩個(gè)方法來實(shí)現(xiàn)。一方面可能的是,使虛擬化的固件中的硬件驅(qū)動(dòng)器保持原狀,并且對系統(tǒng)管理程序中產(chǎn)生的硬件訪問進(jìn)行攔截和匹配 (硬件虛擬化)。其它可能性在于,將硬件驅(qū)動(dòng)器的最下層移動(dòng)到系統(tǒng)管理程序中,并且通過超級調(diào)用實(shí)現(xiàn)對其的訪問(半虛擬化)。在硬件虛擬化的情況下,在I/O端口和存儲(chǔ)器映像設(shè)備上的硬件訪問可以通過系統(tǒng)管理程序攔截和處理。在通過中斷請求實(shí)現(xiàn)與硬件相互作用的情況下需要注意的是,不允許在不同的位置上中斷兩個(gè)虛擬化的固件實(shí)例。這可以由此實(shí)現(xiàn),即通過系統(tǒng)管理程序攔截所有的中斷請求,并且在同步點(diǎn)處將其注入虛擬化的固件中。另一個(gè)可能性在于,以封鎖中斷請求的方式運(yùn)行固件,并且有規(guī)律地在等候處理的事件中查詢前面的中斷請求源 (Polling輪流檢測)。為了對具有DMA能力的硬件進(jìn)行處理,對于硬件或系統(tǒng)管理程序存在附加的要求。DMA訪問僅僅在一個(gè)物理地址上實(shí)現(xiàn),因此系統(tǒng)管理程序?yàn)榱藢Υ鎯?chǔ)器內(nèi)容進(jìn)行比較或匹配而必須識別和處理存在的DMA傳輸裝置??梢缘屯度氲貎H僅通過在虛擬化固件的具有DMA能力的驅(qū)動(dòng)器中插入同步點(diǎn)來滿足這種要求,其使得對于系統(tǒng)管理程序而言能簡單地識別是否存在DMA指令(Auftrag)。在半虛擬化的解決辦法中,如上述地,使得驅(qū)動(dòng)器連同中斷請求-和DMA-處理一起移動(dòng)到系統(tǒng)管理程序中。驅(qū)動(dòng)器的調(diào)用通過超級調(diào)用來實(shí)現(xiàn)。在已經(jīng)實(shí)現(xiàn)處理之后,該結(jié)果通過注入中斷請求或者通過設(shè)定存儲(chǔ)單元通知虛擬化的固件實(shí)例。在決定了選擇哪個(gè)驅(qū)動(dòng)器模型時(shí),應(yīng)該權(quán)衡研發(fā)投入與性能的關(guān)系。如果性能被優(yōu)先考慮,則將硬件驅(qū)動(dòng)器擴(kuò)展到系統(tǒng)管理程序中。
根據(jù)本發(fā)明的一個(gè)實(shí)施方式,硬件訪問包括存儲(chǔ)器訪問,其中在執(zhí)行通過實(shí)例引發(fā)的存儲(chǔ)器訪問時(shí),實(shí)例訪問了共用的存儲(chǔ)器。例如,在應(yīng)用對于兩個(gè)實(shí)例的相同的虛擬化地址空間時(shí)進(jìn)行存儲(chǔ)器訪問,其中虛擬化地址空間分配有對于每個(gè)實(shí)例的不同的物理地址空間。固件的實(shí)例可以在這種情況下分別具有相同的虛擬化地址空間,其被分配給不同的物理地址空間。因此可以運(yùn)行固件的完全相同的版本??商鎿Q地,在應(yīng)用對于兩個(gè)實(shí)例的不同的虛擬化地址空間時(shí)實(shí)現(xiàn)存儲(chǔ)器訪問。兩個(gè)固件實(shí)例必須在這種情況下處于不同的定位位置。為了簡化系統(tǒng)管理程序的編程,不同的虛擬化的地址空間可以和所屬的物理地址空間保持相同,但這不是對于所述的方法的必要的前提條件。如果控制器的存儲(chǔ)器能被所有核心訪問,則系統(tǒng)管理程序可以通過對頁-表格相應(yīng)地編程用于實(shí)現(xiàn)適合的存儲(chǔ)器分配和訪問保護(hù)。雖然沒有對于實(shí)現(xiàn)系統(tǒng)保護(hù)的必要的前提條件,但是通過在固件實(shí)例彼此之間的橫向訪問以及由系統(tǒng)管理程序中的固件實(shí)例立即避免了錯(cuò)誤。系統(tǒng)管理程序自身持續(xù)訪問其客戶的存儲(chǔ)器、即在其控制之下運(yùn)行的固件實(shí)例。兩個(gè)所述的變體-相同的或不同的虛擬化地址空間-具有獨(dú)特的優(yōu)點(diǎn)因此基本上足以識別通過硬件錯(cuò)誤而損壞的儲(chǔ)存器,從而使得相同的硬件實(shí)例并行地運(yùn)行。處理隨后相關(guān)于編碼和數(shù)據(jù)在相同的虛擬地址上進(jìn)行,然而強(qiáng)制性地在不同的物理地址上進(jìn)行。對于數(shù)據(jù)而言,分別對于每個(gè)核心總歸需要一個(gè)固有的存儲(chǔ)器區(qū)域,對于程序編碼而言其也是必需的,以便除了損壞的數(shù)據(jù)存儲(chǔ)器之外也能識別損壞的程序存儲(chǔ)器。最遲在將損壞的數(shù)據(jù)發(fā)出到硬件接口上或者在同步點(diǎn)上背離時(shí)察覺到工作結(jié)果中的分歧。因此存儲(chǔ)器保護(hù)的這種變體適合用于識別硬件錯(cuò)誤,如存儲(chǔ)器翻轉(zhuǎn) (Speicherkipper)或通過具有DMA能力的裝置進(jìn)行錯(cuò)誤訪問。迄今為止僅可以在存儲(chǔ)器中通過使用ECC-RAM來識別錯(cuò)誤。相對于迄今為止的解決辦法的優(yōu)點(diǎn)在于這種可能性,即也可以利用使用標(biāo)準(zhǔn)RAM來識別這兩種錯(cuò)誤類型。然而雖然在這種配置中能確定通過硬件引起的存儲(chǔ)器錯(cuò)誤,但是軟件錯(cuò)誤可能還保持為未被察覺。例如這可能引起無法借助于錯(cuò)誤的指示器通過讀和寫來識別數(shù)據(jù)損壞, 這可能是錯(cuò)誤的固件編程的結(jié)果。因此有效的是,引入其它措施來使得固件多元化,然而不會(huì)不必要地在固件中帶來附帶的復(fù)雜性。為了能識別這種數(shù)據(jù)失真,因此例如在控制器內(nèi)部將兩個(gè)處理器的固件設(shè)置在不同的虛擬化地址上。固件在此還是相同的,僅僅是地址在定位時(shí)是不同的。如果現(xiàn)在讀或?qū)懲蝗贿x擇的存儲(chǔ)單元,則這導(dǎo)致了在控制器的兩個(gè)處理器中的不同邏輯內(nèi)容的錯(cuò)誤解釋或失真。如果處理了錯(cuò)誤的數(shù)據(jù)或執(zhí)行了錯(cuò)誤的固件,則可以識別出該錯(cuò)誤。對于這個(gè)問題而言目前沒有令人滿意的解決辦法。通過使用迄今為止可使用的方法、例如寫入保護(hù)并不能確保完全的安全性。根據(jù)本發(fā)明的另一個(gè)實(shí)施方式,對于不同的數(shù)據(jù)類型而言,共用的存儲(chǔ)器的分配的存儲(chǔ)器區(qū)域?qū)τ趯?shí)例而言是不同的。這能夠?qū)崿F(xiàn)識別由于超過存儲(chǔ)區(qū)域界限的讀和寫而引起的-例如是由于對固件錯(cuò)誤編程而引起的-數(shù)據(jù)損壞,因?yàn)樵趹?yīng)用指示器時(shí)的另一個(gè)錯(cuò)誤來源是超過為此可靠地設(shè)置的存儲(chǔ)區(qū)域的尋址。在此,數(shù)據(jù)在原本的有效數(shù)據(jù)旁邊是錯(cuò)誤解釋的或者是失真的。為了識別這種錯(cuò)誤類型因此提出,將數(shù)據(jù)類型的不同數(shù)據(jù)區(qū)域有區(qū)別地建立在兩個(gè)在不同的抽象等級上的核心上。這例如在最高的抽象等級(鏈路部段)上詳細(xì)地涉及了數(shù)據(jù)類型、例如初始化的全局?jǐn)?shù)據(jù)(例如..data)、未初始化的全局?jǐn)?shù)據(jù)(例如..bss)、固定的數(shù)據(jù)(例如· . rodata)、局部數(shù)據(jù)(堆棧區(qū)域)和程序數(shù)據(jù)(例如· · text)。例如可以從一種將數(shù)據(jù)分配給特定的存儲(chǔ)區(qū)域的特定分配關(guān)系出發(fā),對于固件實(shí)例之一而言,例如通過改變各個(gè)的鏈路部段的順序?qū)崿F(xiàn)在存儲(chǔ)器區(qū)域上的重新分類,在更深的抽象等級中例如改變是鏈路部段或者堆棧中的變量-和函數(shù)順序、將不同長度的不同的初始化的Dummy-變量和-函數(shù)引入鏈路部段中或堆棧中,或?qū)⑽闯跏蓟瘮?shù)據(jù)和空存儲(chǔ)器不同地初始化。附加地,優(yōu)選地在管理存儲(chǔ)器資源時(shí)這樣改變在不同的處理器上的初始化,從而在并行地要求資源時(shí)占據(jù)不同相鄰關(guān)系的區(qū)域。在此也解決了一個(gè)問題,對于該問題而言迄今為止還沒有令人滿意的技術(shù)方案。 雖然可以通過處理器機(jī)構(gòu)(Paging)確保數(shù)據(jù)的相鄰性。然而這是粗略的,即在實(shí)踐中對于單獨(dú)的數(shù)據(jù)結(jié)構(gòu)是不可用的??傮w上可以確定,即利用所述的方法可以保護(hù)存儲(chǔ)器,也可以在此識別所述類型的存儲(chǔ)器錯(cuò)誤,迄今為止的方法在此處是失敗的,或者出于費(fèi)用原因而不能應(yīng)用。在產(chǎn)品版本中不使用該方法的系統(tǒng)也可以由此獲得好處,即在系統(tǒng)測試階段期間臨時(shí)地應(yīng)用,以便顯示出上述類型的程序錯(cuò)誤。在本發(fā)明的另一個(gè)方面中,在第二處理器上實(shí)施實(shí)時(shí)操作系統(tǒng)的至少另一個(gè)相同的實(shí)例,其中在錯(cuò)誤識別的情況下將存在的錯(cuò)誤通知給第二處理器。這例如相應(yīng)于上述的用于可用性高的控制器(H-系統(tǒng))的方法的應(yīng)用??捎眯愿叩目刂破?H-系統(tǒng))由兩個(gè)控制器組件(H-CPU)組成,它們通過特殊的通信模塊相互連接。 目的在于,當(dāng)H-CPU之一發(fā)生故障或誤操作時(shí),能夠在剩下的H-CPU上無沖擊地繼續(xù)在這個(gè) H-系統(tǒng)中運(yùn)行的應(yīng)用程序。為了實(shí)現(xiàn)這個(gè)目的,用戶程序、如由現(xiàn)有技術(shù)已知地,在兩個(gè)H-CPU中并行進(jìn)行。 在此固件例如必須將輸入-和輸出的數(shù)據(jù)(例如外圍數(shù)據(jù)、通信數(shù)據(jù))在H-系統(tǒng)中單側(cè)連接的情況下分配到兩個(gè)H-CPU上,在兩側(cè)(冗余)連接的情況下,適合地使數(shù)據(jù)匹配。兩個(gè)H-CPU的固件在此對處理進(jìn)行監(jiān)控。當(dāng)H-CPU發(fā)生故障時(shí),剩下的H-CPU繼續(xù)運(yùn)行用戶程序。當(dāng)過程中出現(xiàn)差別時(shí)(冗余損耗),固件確保了,即那個(gè)H-CPU從H-系統(tǒng)中得出,其通過錯(cuò)誤的處理產(chǎn)生了差別。錯(cuò)誤性能的分配對于始發(fā)者而言是重要的。在 H-CPU的固件的情況下,該分配特別由于其很高的復(fù)雜性而變得困難。對于存儲(chǔ)器安全所提出的方案對于在H-系統(tǒng)中的應(yīng)用是有利的,這是因?yàn)槟軐?shí)現(xiàn)對錯(cuò)誤的H-CPU進(jìn)行可靠的識別。一旦H-CPU之一在其實(shí)時(shí)操作系統(tǒng)的實(shí)施中察覺到錯(cuò)誤,它就通知給另一個(gè)H-CPU,其隨后可以完全地承擔(dān)控制任務(wù)。也就取代了僅僅一個(gè)在兩個(gè)H-CPU的工作之間的差別進(jìn)行確定,而無需知道哪個(gè)CPU現(xiàn)在是錯(cuò)誤的,在當(dāng)前情況下錯(cuò)誤的CPU被識別為該CPU并且例如與所分配的自動(dòng)化系統(tǒng)的運(yùn)行脫離。
根據(jù)本發(fā)明的一個(gè)實(shí)施方式,通過將信號發(fā)送給第二處理器或者通過解除與第二處理器的通信連接來實(shí)現(xiàn)通知錯(cuò)誤。在另一個(gè)方面,本發(fā)明涉及一種具有用于執(zhí)行根據(jù)前述權(quán)利要求所述的方法步驟的、能由處理器執(zhí)行的指令的計(jì)算機(jī)程序產(chǎn)品。在另一個(gè)方面,本發(fā)明涉及一種用于在實(shí)時(shí)操作系統(tǒng)的實(shí)施中識別錯(cuò)誤的裝置, 其中該裝置具有帶有至少兩個(gè)處理器核心的第一處理器,其中該裝置設(shè)計(jì)用于在共用的虛擬化環(huán)境中的處理器核心上并行地實(shí)施實(shí)時(shí)操作系統(tǒng)的相同的實(shí)例,其中裝置還具有系統(tǒng)管理程序,其中該系統(tǒng)管理程序設(shè)計(jì)用于監(jiān)測實(shí)例的并行實(shí)施,其中系統(tǒng)管理程序還設(shè)計(jì)用于,在執(zhí)行通過實(shí)例引發(fā)的硬件訪問時(shí),通過系統(tǒng)管理程序?qū)⒃趯τ诿總€(gè)實(shí)例的硬件訪問時(shí)傳輸?shù)臄?shù)據(jù)相互比較,其中系統(tǒng)管理程序設(shè)計(jì)用于,在傳輸?shù)臄?shù)據(jù)之間出現(xiàn)差別的情況下,或者在單方面的通過實(shí)例之一引發(fā)的硬件訪問的情況下識別出錯(cuò)誤。


下面根據(jù)附圖詳細(xì)說明了本發(fā)明的優(yōu)選的實(shí)施方式。圖中示出圖I示出用于在實(shí)時(shí)操作系統(tǒng)的實(shí)施中識別錯(cuò)誤的裝置的框圖,圖2示出存儲(chǔ)器布局的不同的可能性,圖3示出在應(yīng)用超級調(diào)用接口的情況下在實(shí)時(shí)操作系統(tǒng)的實(shí)施中用于識別錯(cuò)誤的裝置的框圖,圖4示出一種可能性,即對于不同的數(shù)據(jù)類型而言,如何能為實(shí)例區(qū)分共用的存儲(chǔ)器的所屬的存儲(chǔ)器區(qū)域,圖5示出H-系統(tǒng)的框圖。以下相互類似的元件以相同的標(biāo)號標(biāo)出。
具體實(shí)施例方式圖I示出用于在實(shí)時(shí)操作系統(tǒng)的實(shí)施中識別錯(cuò)誤的裝置的框圖。在此如上述地應(yīng)用了處理器,其具有兩個(gè)以標(biāo)號100和102標(biāo)出的核心(核心O和核心I)。在每個(gè)核心上實(shí)施實(shí)時(shí)操作系統(tǒng)的一個(gè)實(shí)例,其中在圖I中將實(shí)時(shí)操作系統(tǒng)稱為“固件”。核心100的固件106和核心102的固件116在邏輯上相同并且在一個(gè)共用的虛擬化環(huán)境中并行地實(shí)施。 需要說明的是,即固件實(shí)例僅僅“在邏輯上”相同,然而通過上述的用于實(shí)現(xiàn)多樣化的措施能完全地在物理上彼此加以區(qū)分。在這種情況下,固件實(shí)例除了這種用于實(shí)現(xiàn)多樣化的措施(例如不同應(yīng)用的虛擬化地址空間)之外都是相同的。系統(tǒng)管理程序110在此監(jiān)測了固件實(shí)例106和116的并行實(shí)施。在硬件虛擬化時(shí)進(jìn)行硬件訪問的情況下實(shí)現(xiàn)了相應(yīng)的固件 106和116對共用的硬件112的訪問,其中系統(tǒng)管理程序110可以攔截這種硬件訪問。這種對硬件訪問的攔截在圖I中以標(biāo)號108和114使用概念“同步點(diǎn)”說明。在此還要說明的是,即同步點(diǎn)為了提早識別錯(cuò)誤也能與硬件訪問無關(guān)地設(shè)定在固件中。當(dāng)在執(zhí)行通過固件106或116引發(fā)的對硬件112的訪問時(shí),在硬件訪問時(shí)所傳輸?shù)臄?shù)據(jù)通過系統(tǒng)管理程序Iio相互比較(標(biāo)號128)。由于兩個(gè)固件106和116在邏輯上相同并且彼此并行地工作,因此在單方面的、通過固件106或116引發(fā)的對硬件112訪問的情況下產(chǎn)生了決定,即在執(zhí)行固件106或116 時(shí)必然存在錯(cuò)誤。同樣地,系統(tǒng)管理程序110然后能將錯(cuò)誤識別為這種錯(cuò)誤,即在固件106 和116并行地進(jìn)行硬件訪問的情況下,在此所傳輸?shù)臄?shù)據(jù)彼此有差別。兩個(gè)固件106和116分別形成了一個(gè)相同的、用于執(zhí)行相應(yīng)的應(yīng)用程序104和118 的實(shí)時(shí)操作系統(tǒng),這些應(yīng)用程序?yàn)榱藢?shí)現(xiàn)錯(cuò)誤識別的目的而同樣必須是相同的。上述的硬件訪問包括對存儲(chǔ)器120的訪問,其中在執(zhí)行通過固件106和116引發(fā)的存儲(chǔ)器訪問時(shí),兩個(gè)固件對共用的存儲(chǔ)器120進(jìn)行訪問。存儲(chǔ)器120的一部分在此分配了固件106的區(qū)域122,并且存儲(chǔ)器的另一個(gè)部分分配了固件116的區(qū)域124。另一個(gè)存儲(chǔ)器區(qū)域126對于系統(tǒng)管理程序110來說是備用的。圖2現(xiàn)在示出了存儲(chǔ)器布局的不同的可能性。在圖2a中示出存儲(chǔ)器布局,其中固件106和116的實(shí)例分別具有相同的虛擬地址空間。然而該虛擬地址空間被分配給存儲(chǔ)器 120中的不同的物理地址空間。這因此涉及了固件106和116所運(yùn)行版本絕對相同的情況。在圖2b中相反地示出了分配不同的虛擬地址空間的可能性,其中在這種情況下兩個(gè)固件實(shí)例106和116被不同地定位。如上面已經(jīng)詳細(xì)探討地,這能實(shí)現(xiàn)借助于錯(cuò)誤的指示器通過讀和寫來識別數(shù)據(jù)錯(cuò)誤。圖3示出在實(shí)時(shí)操作系統(tǒng)的實(shí)施中用于識別錯(cuò)誤的裝置的框圖。和圖I不同地, 在圖3中實(shí)現(xiàn)了利用半虛擬化的硬件訪問,這如上述地表明,即相應(yīng)的硬件驅(qū)動(dòng)器移動(dòng)到系統(tǒng)管理程序110中。以標(biāo)號300和302標(biāo)出的“超級調(diào)用接口”是一種軟件接口,其能實(shí)現(xiàn),使得系統(tǒng)管理程序110的結(jié)構(gòu)簡化并且以提高的功率實(shí)施固件實(shí)例106和116。圖4示出一種可能性,對于不同的數(shù)據(jù)類型而言,如何能為實(shí)例區(qū)分共用的存儲(chǔ)器的所分配的存儲(chǔ)器區(qū)域。如上面描述地,錯(cuò)誤源在應(yīng)用指示器的情況下是超過許可的區(qū)域的尋址。在此,數(shù)據(jù)在固有的有效數(shù)據(jù)附近被錯(cuò)誤解釋或失真。如果例如對所應(yīng)用的固件進(jìn)行錯(cuò)誤的編程, 從而取代存儲(chǔ)器區(qū)域Var2的精確的尋址,實(shí)現(xiàn)實(shí)際的尋址超過Var2的許可的區(qū)域,因此這關(guān)于固件實(shí)例106在對來自區(qū)域Var3(參見圖4)的數(shù)據(jù)進(jìn)行寫和讀時(shí)產(chǎn)生。然而如果現(xiàn)在對于不同的數(shù)據(jù)類型Varl, Var2, Var3和Var4而言,對于固件實(shí)例 106和116采取了不同的數(shù)據(jù)區(qū)域的重新分類,則因此可以由于產(chǎn)生不同的傳輸數(shù)據(jù),在相應(yīng)的存儲(chǔ)器訪問中顯示出這種錯(cuò)誤源。如果例如,如在圖4a中示出地,在應(yīng)用指示器的情況下采取超過Var2的尋址,則這因此關(guān)于固件106在來自于區(qū)域Var3的數(shù)據(jù)中產(chǎn)生,相反地,固件116換而言之提供來自從區(qū)域Varl的數(shù)據(jù)。由于這些所提供的數(shù)據(jù)在正常情況下不是相同的,因此系統(tǒng)管理程序能夠基于超過區(qū)域界限的讀和寫探測到所述的數(shù)據(jù)損壞并且相應(yīng)地在固件106和116的實(shí)施中識別出錯(cuò)誤。圖5示出了 H-系統(tǒng)的框圖。H-系統(tǒng)在此由兩個(gè)控制組件組成,即通過相應(yīng)的通信模塊相互連接的CPU 520和522。通信模塊在此可以是CPU520的硬件112的和CPU 522 的硬件512的一部分。CPU 520又具有根據(jù)圖I的用于識別錯(cuò)誤的裝置、即核心100和102與相應(yīng)的固件 106和116以及系統(tǒng)管理程序110的組合。以類似的方式,CPU 522具有兩個(gè)核心500和502,在其上同樣運(yùn)行了邏輯上相同的固件506和516。兩個(gè)固件506和516在此與固件106和116在邏輯上是相同的。同樣也相關(guān)于CPU 522設(shè)有系統(tǒng)管理程序510,其監(jiān)測固件506和516的實(shí)例的并行實(shí)施。因此在處理器522上實(shí)施了固件106和116的至少另一個(gè)相同實(shí)例。在錯(cuò)誤識別的情況下、即存在相關(guān)于固件106或116的實(shí)施的錯(cuò)誤,硬件112將這一情況報(bào)告給CPU 522,其隨后與CPU 520的狀態(tài)無關(guān)地單獨(dú)繼續(xù)進(jìn)行其任務(wù)。在硬件112和512之間的通信在此通過在圖5中示出的通信連接524實(shí)現(xiàn)??商鎿Q地也可能的是,在錯(cuò)誤識別的情況下,CPU 520完全調(diào)節(jié)運(yùn)行或者利用硬件 520中斷通信連接524。CPU 522在此可以這樣配置,即在中斷通信連接524時(shí)單獨(dú)地繼續(xù)進(jìn)行CPU 522的運(yùn)行。下面探討在根據(jù)圖5的H-系統(tǒng)中的錯(cuò)誤識別的不同情況。在根據(jù)前述方法確定在H-CPU之一中的數(shù)據(jù)損壞的情況下,將產(chǎn)生的H-CPU明確地標(biāo)識。其隨后必須從H-系統(tǒng)中得出。這種情況例如出現(xiàn)在通過在H-CPU的存儲(chǔ)器中的比特翻轉(zhuǎn)(Bitkipper)引起的硬件錯(cuò)誤時(shí),和當(dāng)僅僅在H-系統(tǒng)的H-CPU上運(yùn)行的固件部分中的軟件錯(cuò)誤時(shí)。該情況可能在同步運(yùn)行的固件部分中的軟件錯(cuò)誤時(shí)出現(xiàn),這些固件部分通過所述的固件變型具有不同的效果。另一個(gè)可能性是在兩個(gè)H-CPU中確定數(shù)據(jù)損壞,因?yàn)樯鲜龅挠糜谧R別數(shù)據(jù)損壞的措施可以導(dǎo)致并行執(zhí)行的錯(cuò)誤編碼在一個(gè)H-系統(tǒng)的兩個(gè)H-CPU上被識別。這種情況導(dǎo)致 H-系統(tǒng)的失靈,并且必須要避免這如迄今為止地那樣通過應(yīng)用質(zhì)量安全的措施得到保障。 一個(gè)對于這種錯(cuò)誤反應(yīng)的優(yōu)點(diǎn)是,能提早識別產(chǎn)生的錯(cuò)誤,這特別在測試階段中使得對錯(cuò)誤的分析更容易。為了使得H-系統(tǒng)的錯(cuò)誤性能的可能性最小化,可以在固件上對于四個(gè)處理器核心中的每一個(gè)不同地實(shí)施上述的變體。也就是說,可以相關(guān)于固件106和116將兩個(gè)核心的固件設(shè)置在不同的虛擬地址上,相反地在固件506和516方面將核心的固件設(shè)置在再次不同的虛擬地址上。通過多種不同的固件變體,一方面提高了發(fā)現(xiàn)錯(cuò)誤的可能性,另一方面降低了在 H-系統(tǒng)中的兩方面錯(cuò)誤的可能性。另一個(gè)情況是確定H-系統(tǒng)中的數(shù)據(jù)損壞,其中這種情況描述了H-系統(tǒng)的錯(cuò)誤性能,其不被單獨(dú)的H-CPU所識別。它例如可以通過錯(cuò)誤編程的算法在固件中引起。在此,存儲(chǔ)器保護(hù)不提供相對于迄今為止的H-系統(tǒng)的優(yōu)點(diǎn)。這種類型的錯(cuò)誤也通過應(yīng)用質(zhì)量安全的措施來避免。要說明的是,即同樣也可能在錯(cuò)誤安全系統(tǒng)(F-系統(tǒng))中應(yīng)用所述的措施。
權(quán)利要求
1.一種用于在實(shí)時(shí)操作系統(tǒng)的實(shí)施中識別錯(cuò)誤的方法,其中實(shí)時(shí)操作系統(tǒng)的邏輯相同的實(shí)例(106;116)在共用的虛擬化環(huán)境中的第一處理器(520)的至少兩個(gè)處理器核心 (100 ;102)上被并行地實(shí)施,其中系統(tǒng)管理程序(128)監(jiān)測所述實(shí)例(106 ;116)的并行實(shí)施,其中在執(zhí)行通過所述實(shí)例(106;116)引發(fā)的硬件訪問時(shí),通過所述系統(tǒng)管理程序?qū)⒃趯τ诿總€(gè)實(shí)例(106;116)的所述硬件訪問時(shí)傳輸?shù)臄?shù)據(jù)相互比較,其中,-在所述傳輸?shù)臄?shù)據(jù)之間出現(xiàn)差別的情況下,或者-在單方面的通過所述實(shí)例之一引發(fā)的硬件訪問的情況下,通過所述系統(tǒng)管理程序 (128)識別為是錯(cuò)誤。
2.根據(jù)權(quán)利要求I所述的方法,其中所述硬件訪問包括存儲(chǔ)器訪問,其中在執(zhí)行通過所述實(shí)例(106;116)引發(fā)的存儲(chǔ)器訪問時(shí),所述實(shí)例訪問了共用的存儲(chǔ)器(120)。
3.根據(jù)權(quán)利要求2所述的方法,其中在應(yīng)用對于兩個(gè)實(shí)例(106;116)的相同的虛擬化地址空間時(shí)實(shí)現(xiàn)所述存儲(chǔ)器訪問,其中所述虛擬化地址空間分配有對于每個(gè)實(shí)例(106 ; 116)的不同的物理地址空間。
4.根據(jù)權(quán)利要求2所述的方法,其中在應(yīng)用對于兩個(gè)實(shí)例(106;116)的不同的虛擬化地址空間時(shí)實(shí)現(xiàn)所述存儲(chǔ)器訪問。
5.根據(jù)權(quán)利要求4所述的方法,其中所述相應(yīng)的虛擬化地址空間分配有物理地址空間,其中所述虛擬化地址空間和所述相應(yīng)的物理地址空間是相同的。
6.根據(jù)權(quán)利要求2所述的方法,其中對于不同的數(shù)據(jù)類型而言,所述共用的存儲(chǔ)器的所屬的存儲(chǔ)器區(qū)域(122 ;124)對于所述實(shí)例(106 ;116)而言是不同的。
7.根據(jù)權(quán)利要求I所述的方法,其中所述通過所述實(shí)例(106;116)之一引發(fā)的硬件訪問是直接的硬件訪問或者是在應(yīng)用半虛擬化的情況下通過超級調(diào)用實(shí)現(xiàn)的硬件訪問。
8.根據(jù)權(quán)利要求I所述的方法,其中還在第二處理器(522)上實(shí)施所述實(shí)時(shí)操作系統(tǒng)的至少另一個(gè)相同的實(shí)例(506 ;516),其中在錯(cuò)誤識別的情況下將存在的錯(cuò)誤通知給所述第二處理器(522)。
9.根據(jù)權(quán)利要求8所述的方法,其中通過將信號發(fā)送給所述第二處理器(522)或者通過解除與所述第二處理器(522)的通信連接(524)來實(shí)現(xiàn)通知所述錯(cuò)誤。
10.一種具有用于執(zhí)行根據(jù)前述權(quán)利要求所述的方法步驟的、能由處理器執(zhí)行的指令的計(jì)算機(jī)程序產(chǎn)品。
11.一種用于在實(shí)時(shí)操作系統(tǒng)的實(shí)施中識別錯(cuò)誤的裝置,其中所述裝置具有帶有至少兩個(gè)處理器核心(100;102)的第一處理器(520),其中所述裝置設(shè)計(jì)用于在共用的虛擬化環(huán)境中的所述處理器核心上并行地實(shí)施所述實(shí)時(shí)操作系統(tǒng)的邏輯相同的實(shí)例(106 ;116), 其中所述裝置還具有系統(tǒng)管理程序(110),其中所述系統(tǒng)管理程序設(shè)計(jì)用于監(jiān)測所述實(shí)例 (106;116)的并行實(shí)施,其中所述系統(tǒng)管理程序還設(shè)計(jì)用于,在執(zhí)行通過所述實(shí)例(106; 116)引發(fā)的硬件訪問時(shí),通過所述系統(tǒng)管理程序(110)將在對于每個(gè)實(shí)例的所述硬件訪問時(shí)傳輸?shù)臄?shù)據(jù)相互比較,其中所述系統(tǒng)管理程序(110)設(shè)計(jì)用于,-在所述傳輸?shù)臄?shù)據(jù)之間出現(xiàn)差別的情況下,或者-在單方面的通過所述實(shí)例(106 ;116)之一引發(fā)的硬件訪問的情況下,識別出錯(cuò)誤。
全文摘要
本發(fā)明涉及一種用于在實(shí)時(shí)操作系統(tǒng)的實(shí)施中識別錯(cuò)誤的方法,其中實(shí)時(shí)操作系統(tǒng)的邏輯相同的實(shí)例(106;116)在共用的虛擬化環(huán)境中的第一處理器(520)的至少兩個(gè)處理器核心(100;102)上并行地實(shí)施,其中系統(tǒng)管理程序(128)監(jiān)測實(shí)例(106;116)的并行實(shí)施,其中在執(zhí)行通過實(shí)例(106;116)引發(fā)的硬件訪問時(shí),通過系統(tǒng)管理程序?qū)⒃趯τ诿總€(gè)實(shí)例(106;116)的硬件訪問時(shí)傳輸?shù)臄?shù)據(jù)相互比較,其中,在傳輸?shù)臄?shù)據(jù)之間出現(xiàn)差別的情況下,或者在單方面的通過實(shí)例之一引發(fā)的硬件訪問的情況下,通過系統(tǒng)管理程序(128)識別為是錯(cuò)誤。
文檔編號G06F11/07GK102591736SQ20111041003
公開日2012年7月18日 申請日期2011年12月9日 優(yōu)先權(quán)日2010年12月9日
發(fā)明者奧托·尼塞爾 申請人:西門子公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會(huì)獲得點(diǎn)贊!
1