国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      執(zhí)行計(jì)算機(jī)程序的方法、操作系統(tǒng)以及計(jì)算設(shè)備的制作方法

      文檔序號(hào):6657200閱讀:266來源:國(guó)知局
      專利名稱:執(zhí)行計(jì)算機(jī)程序的方法、操作系統(tǒng)以及計(jì)算設(shè)備的制作方法
      現(xiàn)有技術(shù)本發(fā)明涉及一種用于執(zhí)行在計(jì)算設(shè)備上、特別是微處理器上的計(jì)算機(jī)程序的方法。該計(jì)算機(jī)程序包括多個(gè)程序?qū)ο?。在該方法中,在?zhí)行計(jì)算機(jī)程序的過程中對(duì)計(jì)算設(shè)備檢測(cè)錯(cuò)誤。
      此外,本發(fā)明還涉及一種操作系統(tǒng),該操作系統(tǒng)能運(yùn)行在計(jì)算設(shè)備上,尤其是運(yùn)行在微處理器上。
      最后,本發(fā)明也涉及一種用于執(zhí)行計(jì)算機(jī)程序的計(jì)算設(shè)備,該計(jì)算機(jī)程序包括多個(gè)程序?qū)ο?。該?jì)算設(shè)備具有錯(cuò)誤發(fā)現(xiàn)機(jī)制用于檢測(cè)在計(jì)算設(shè)備上執(zhí)行計(jì)算機(jī)程序期間的錯(cuò)誤。
      在計(jì)算設(shè)備上執(zhí)行計(jì)算機(jī)程序期間,會(huì)導(dǎo)致所謂的暫態(tài)錯(cuò)誤。因?yàn)榘雽?dǎo)體模塊(所謂芯片)的結(jié)構(gòu)越來越小、而信號(hào)的時(shí)鐘頻率越來越大并且信號(hào)的電壓越來越低,所以總是經(jīng)常出現(xiàn)暫態(tài)錯(cuò)誤。與永久錯(cuò)誤相反,暫態(tài)錯(cuò)誤僅短暫出現(xiàn)并且通常在一段時(shí)間后又自己消失。在暫態(tài)錯(cuò)誤的情況下僅僅單個(gè)的位錯(cuò)誤,而并沒有永久地?fù)p害計(jì)算設(shè)備本身。暫態(tài)錯(cuò)誤可能出于不同的原因,例如電磁輻射、α粒子或者中子。
      今天,在通信系統(tǒng)中暫態(tài)錯(cuò)誤已經(jīng)成為錯(cuò)誤處理中的重點(diǎn)。在通信系統(tǒng)(例如在控制器局域網(wǎng),CAN中)公知的是在檢測(cè)到錯(cuò)誤時(shí)重新發(fā)送被確定為有錯(cuò)誤的數(shù)據(jù)。此外,還公知在通信系統(tǒng)中使用錯(cuò)誤計(jì)數(shù)器,該錯(cuò)誤計(jì)數(shù)器在檢測(cè)到錯(cuò)誤時(shí)增加,在正確的發(fā)送時(shí)遞減,并且只要該錯(cuò)誤計(jì)數(shù)器超過確定的值,就阻止數(shù)據(jù)的發(fā)送。
      然而,在用于執(zhí)行計(jì)算機(jī)程序的計(jì)算設(shè)備中基本上僅針對(duì)永久錯(cuò)誤來進(jìn)行錯(cuò)誤處理。對(duì)暫態(tài)錯(cuò)誤的考慮限于錯(cuò)誤計(jì)數(shù)器的累加和必要時(shí)為遞減。該錯(cuò)誤計(jì)數(shù)器被設(shè)置在存儲(chǔ)器中并且能夠離線地即例如在構(gòu)造為汽車控制設(shè)備的計(jì)算設(shè)備中在車間停留期間作為診斷或者錯(cuò)誤信息被讀出。接著才會(huì)對(duì)錯(cuò)誤進(jìn)行相應(yīng)地反應(yīng)。
      借助錯(cuò)誤計(jì)數(shù)器的錯(cuò)誤處理即一方面在尤其是對(duì)安全相關(guān)的系統(tǒng)所必需的短暫容錯(cuò)時(shí)間內(nèi)不允許錯(cuò)誤處理,而另一方面在這個(gè)意義上也不允許構(gòu)造性的錯(cuò)誤處理,即在容錯(cuò)時(shí)間內(nèi)因此計(jì)算機(jī)程序又被執(zhí)行。代替計(jì)算機(jī)在現(xiàn)有技術(shù)中計(jì)算機(jī)在超過錯(cuò)誤計(jì)數(shù)器的確定值之后被切換到應(yīng)急工作。這意味著,代替有錯(cuò)誤的計(jì)算機(jī)程序其它計(jì)算機(jī)程序被執(zhí)行并且為進(jìn)一步計(jì)算考慮到以這樣的方式所確定的替代值。替代值例如能按照其它參量來模型化。替換地,通過計(jì)算機(jī)程序的有錯(cuò)誤部分計(jì)算出的結(jié)果作為有錯(cuò)誤的而被丟棄并且為了進(jìn)一步計(jì)算通過為應(yīng)急工作設(shè)置的標(biāo)準(zhǔn)值被代替。因此,公知的用于處理運(yùn)行在計(jì)算設(shè)備上的計(jì)算機(jī)程序的暫態(tài)錯(cuò)誤的方法不能夠系統(tǒng)地、結(jié)構(gòu)地應(yīng)對(duì)大多數(shù)錯(cuò)誤的暫態(tài)性質(zhì)。
      此外,根據(jù)現(xiàn)有技術(shù)還公知在計(jì)算機(jī)設(shè)備上執(zhí)行計(jì)算機(jī)時(shí)通過計(jì)算機(jī)設(shè)備的完全重新啟動(dòng)來消除所出現(xiàn)的暫態(tài)錯(cuò)誤。該解決方案也不能真正令人滿意,因?yàn)樵诂F(xiàn)有的計(jì)算機(jī)程序執(zhí)行的過程中會(huì)丟失所獲得的參量并且計(jì)算設(shè)備在重啟的持續(xù)時(shí)間中不能執(zhí)行其通常的功能。特別是在安全相關(guān)的系統(tǒng)中這是不能接受的。
      最后,作為在計(jì)算設(shè)備上被執(zhí)行的計(jì)算機(jī)程序的暫態(tài)錯(cuò)誤的錯(cuò)誤處理還公知將計(jì)算機(jī)程序復(fù)位一段時(shí)間并且重復(fù)計(jì)算機(jī)程序的單個(gè)機(jī)器指令。該方法也被稱作微回滾(Micro Roll-Back)。在公知的方法中,僅僅對(duì)象被回跳到機(jī)器層(時(shí)鐘、機(jī)器指令)上。這要求對(duì)機(jī)器層的相應(yīng)硬件支持,這與計(jì)算設(shè)備的領(lǐng)域內(nèi)的極大費(fèi)用相關(guān)。公知方法的實(shí)施單純地通過軟件來控制是不可能的。
      現(xiàn)有技術(shù)中公知的錯(cuò)誤處理機(jī)制并不能夠以恰當(dāng)?shù)姆绞綄?duì)在計(jì)算設(shè)備上執(zhí)行計(jì)算機(jī)程序時(shí)出現(xiàn)的暫態(tài)錯(cuò)誤做出反應(yīng)。
      但是,暫態(tài)錯(cuò)誤在未來技術(shù)中卻是極為頻繁的。如果發(fā)現(xiàn)暫態(tài)錯(cuò)誤,例如它通過雙核機(jī)制,則因此始終保持應(yīng)答錯(cuò)誤定位的詢問,以便標(biāo)識(shí)正確的結(jié)果。當(dāng)有目的使暫態(tài)錯(cuò)誤不再導(dǎo)致計(jì)算機(jī)的重新啟動(dòng)時(shí),這就越適合。錯(cuò)誤定位典型如所描述地只能通過開銷比較大的方法來實(shí)現(xiàn)。
      本發(fā)明的技術(shù)問題是當(dāng)在計(jì)算機(jī)系統(tǒng)中執(zhí)行計(jì)算機(jī)程序時(shí),構(gòu)造性地處理暫態(tài)錯(cuò)誤使得在盡可能短的容錯(cuò)時(shí)間內(nèi)重新產(chǎn)生計(jì)算機(jī)系統(tǒng)的完整功能和功能安全性。
      為了解決該技術(shù)問題,從上面所述類型的方法出發(fā)建議在檢測(cè)到錯(cuò)誤時(shí)至少一個(gè)已執(zhí)行的程序?qū)ο蟊晦D(zhuǎn)移進(jìn)所定義的狀態(tài)中并且從該狀態(tài)出來被重新啟動(dòng)。
      當(dāng)然,對(duì)系統(tǒng)層還提出以下問題如何能有效地使用作業(yè)重復(fù)的概念。通常,并不是這樣的情況,即能簡(jiǎn)單地再次計(jì)算任意有錯(cuò)誤的作業(yè),因?yàn)楦郊颖匦璧挠?jì)算時(shí)間和為此所使用的時(shí)刻從系統(tǒng)上看被不同計(jì)劃。當(dāng)處理器負(fù)載已接近100%(通常是這樣)時(shí),則通過這種未計(jì)劃的附加負(fù)載(如該負(fù)載表示作業(yè)重復(fù))產(chǎn)生系統(tǒng)的過載,過載典型地會(huì)導(dǎo)致崩潰。當(dāng)考慮時(shí)間受控的系統(tǒng)時(shí)(如所表示的那樣,這些系統(tǒng)至少部分得以實(shí)施),這將變得更為明顯。在這些系統(tǒng)中,截止時(shí)間損害是不可容忍的,在大多數(shù)其它嚴(yán)格的實(shí)時(shí)概念中同樣不能容忍。
      因此得到,即從系統(tǒng)來看必須考慮到能由潛在作業(yè)重復(fù)形成的附加負(fù)載。當(dāng)根據(jù)每個(gè)作業(yè)維持作業(yè)重復(fù)必需的計(jì)算時(shí)間時(shí),則該作業(yè)無疑是有效的,當(dāng)然為了非錯(cuò)誤處理系統(tǒng)必須付出100%的附加性能。從成本來看,這是不能接受的。
      因此,本發(fā)明的作業(yè)是提供一種優(yōu)化的系統(tǒng)策略,該系統(tǒng)策略不再考慮兩次計(jì)算作業(yè)(以及由此產(chǎn)生永久和很大的費(fèi)用)并且同時(shí)解決這些問題,如這可與時(shí)間受控的方法相關(guān)。

      發(fā)明內(nèi)容
      因此,在根據(jù)本發(fā)明的系統(tǒng)策略的范圍內(nèi)建議了一種方法、一種操作系統(tǒng)以及一種計(jì)算設(shè)備,該系統(tǒng)策略允許將作業(yè)重復(fù)的概念與最小或者甚至沒有性能費(fèi)用結(jié)合。在這樣的情況下,這種系統(tǒng)策略是用于作業(yè)、作業(yè)、程序或者程序部分的調(diào)度方法的邊界條件,此外該邊界條件還被稱作程序?qū)ο蠡蛘咭恍┏绦驅(qū)ο蟆?br> 重新被啟動(dòng)的程序?qū)ο笤跈z測(cè)到錯(cuò)誤時(shí)不必完全被執(zhí)行。在本發(fā)明的意義上,這種程序?qū)ο笤诔霈F(xiàn)錯(cuò)誤時(shí)也能被重新啟動(dòng),該程序?qū)ο笤跈z測(cè)到錯(cuò)誤時(shí)刻還沒有完全被執(zhí)行,但是又剛好已經(jīng)開始其執(zhí)行。根據(jù)本發(fā)明,即在出現(xiàn)暫態(tài)或者永久錯(cuò)誤時(shí)重新執(zhí)行至少一個(gè)操作系統(tǒng)對(duì)象。相對(duì)于微回滾的優(yōu)點(diǎn)尤其是在于程序?qū)ο蟮闹貜?fù)能用很小的硬件支持來實(shí)現(xiàn)。最多必需額外的存儲(chǔ)器位置,以便能夠存儲(chǔ)幾個(gè)對(duì)重新實(shí)施程序?qū)ο笏匦璧男畔?例如程序?qū)ο蟮妮斎雲(yún)⒘?。根據(jù)本發(fā)明的方法的實(shí)際管理能通過計(jì)算設(shè)備的操作系統(tǒng)來實(shí)施。即根據(jù)本發(fā)明的方法能用傳統(tǒng)的商用處理器來實(shí)現(xiàn),而不需要額外的硬件。但是不言而喻,也可以用于硬件支持實(shí)現(xiàn)根據(jù)本發(fā)明的方法。
      因此,與現(xiàn)有技術(shù)相比,更有利的是,再次計(jì)算有錯(cuò)誤的作業(yè)即有錯(cuò)誤的作業(yè)或有錯(cuò)誤的程序或者程序部分或程序?qū)ο蠡蛘咧辽俨僮飨到y(tǒng)對(duì)象。如果該錯(cuò)誤原本是暫態(tài)的,則在重新計(jì)算時(shí)這兩個(gè)輸出是相同的,即錯(cuò)誤消失并且通過重新計(jì)算來進(jìn)行處理。
      從而以有利的方式,提出一種在一個(gè)計(jì)算設(shè)備上,特別是在一個(gè)微處理器上執(zhí)行一個(gè)計(jì)算機(jī)程序的方法,其中所述計(jì)算機(jī)程序包含多個(gè)程序目標(biāo),并且在所述方法的情況下,在所述計(jì)算設(shè)備上執(zhí)行計(jì)算機(jī)程序時(shí)檢測(cè)錯(cuò)誤,其中在檢測(cè)到一個(gè)錯(cuò)誤時(shí)把至少一個(gè)已經(jīng)輸送去執(zhí)行的程序目標(biāo)轉(zhuǎn)入一個(gè)確定的狀態(tài)并且從這種狀態(tài)重新起動(dòng),并且延遲隨后的其它的程序目標(biāo)。
      以適當(dāng)?shù)姆绞桨阉龀绦蚰繕?biāo)劃分成至少兩類,其中檢測(cè)到一個(gè)錯(cuò)誤時(shí)重復(fù)第一類的程序目標(biāo),并且在檢測(cè)到所述第一類的一個(gè)已經(jīng)輸送執(zhí)行的程序目標(biāo)的一個(gè)錯(cuò)誤時(shí),取代于第二類的一個(gè)程序目標(biāo)重新起動(dòng)所述第一類的該程序目標(biāo)。在此錯(cuò)誤的檢測(cè)只在重新啟動(dòng)的類中進(jìn)行。
      恰當(dāng)?shù)?,?duì)所有程序?qū)ο笤O(shè)置有一個(gè)循環(huán)的總計(jì)算時(shí)間并且這樣地劃分總計(jì)算時(shí)間,使得在檢測(cè)到錯(cuò)誤時(shí)重新啟動(dòng)的程序?qū)ο笤谟绣e(cuò)誤的情況下獲得一個(gè)循環(huán)的總計(jì)算時(shí)間的最多50%,其中不同類的程序?qū)ο蠼惶娴貓?zhí)行并且第一類的有錯(cuò)誤的程序?qū)ο蟠婢o接其后的第二類的程序?qū)ο蟊粓?zhí)行或被重新啟動(dòng)。
      根據(jù)任意的方法能夠自己進(jìn)行錯(cuò)誤檢測(cè)??梢钥紤]的是使用任意類型的錯(cuò)誤發(fā)現(xiàn)機(jī)制、該機(jī)制能檢測(cè)到執(zhí)行計(jì)算機(jī)程序(所謂并發(fā)檢驗(yàn))期間的錯(cuò)誤。例如在雙核架構(gòu)中,雙倍地構(gòu)造整個(gè)計(jì)算機(jī)核。當(dāng)計(jì)算機(jī)核以鎖步模式工作,對(duì)任何指令能比較計(jì)算機(jī)核是否提供相同的結(jié)果。于是這些結(jié)果的差別肯定會(huì)推斷出存在錯(cuò)誤。錯(cuò)誤發(fā)現(xiàn)機(jī)制實(shí)時(shí)發(fā)現(xiàn)執(zhí)行程序?qū)ο笃陂g的錯(cuò)誤。相應(yīng)地,也適于錯(cuò)誤發(fā)現(xiàn)的代碼,該代碼被連續(xù)地用于處理器架構(gòu)中,或者適于計(jì)算設(shè)備的相同的部分組件。所有這些錯(cuò)誤發(fā)現(xiàn)機(jī)制共同點(diǎn)在于它們很迅速地發(fā)現(xiàn)暫態(tài)錯(cuò)誤并且當(dāng)錯(cuò)誤被發(fā)現(xiàn)時(shí)提供錯(cuò)誤信號(hào)。
      根據(jù)錯(cuò)誤信號(hào)來啟動(dòng)錯(cuò)誤處理機(jī)制,該錯(cuò)誤處理機(jī)制重復(fù)程序?qū)ο?。如果在重新?zhí)行時(shí)再次出現(xiàn)相同的錯(cuò)誤,則被推斷出永久錯(cuò)誤,或者增加錯(cuò)誤計(jì)數(shù)器,其中當(dāng)錯(cuò)誤計(jì)數(shù)器超過確定的值時(shí)才推斷出永久錯(cuò)誤。相反,如果在重新執(zhí)行程序?qū)ο髸r(shí)不再出現(xiàn)該錯(cuò)誤,則由此能得到,該錯(cuò)誤為暫態(tài)錯(cuò)誤。在無錯(cuò)誤地重新執(zhí)行程序?qū)ο笃陂g,該計(jì)算機(jī)程序還準(zhǔn)備好其通常的功能。即可用性已在最短時(shí)間之后又重復(fù)。因此,重復(fù)至少一個(gè)程序?qū)ο笫且环N處理暫態(tài)錯(cuò)誤良好的方法。
      根據(jù)本發(fā)明的有利的擴(kuò)展方案,建議將程序?qū)ο髽?gòu)造為計(jì)算機(jī)程序的運(yùn)行時(shí)間對(duì)象(以下稱作特殊作業(yè))并且在錯(cuò)誤的檢測(cè)中重新執(zhí)行至少一個(gè)作業(yè)。作業(yè)尤其是操作系統(tǒng)層上是典型對(duì)象。如果希望甚至純粹軟件地控制,則作業(yè)的重復(fù)能用最小的開銷來實(shí)現(xiàn)。
      根據(jù)本發(fā)明的優(yōu)選的實(shí)施形式,建議重新啟動(dòng)在錯(cuò)誤發(fā)現(xiàn)的時(shí)刻所執(zhí)行的程序?qū)ο?。但是替換地或者附加地,也能啟動(dòng)或者重新執(zhí)行程序?qū)ο?,該程序?qū)ο笤跈z測(cè)到錯(cuò)誤的時(shí)刻已經(jīng)被完全執(zhí)行。
      建議在執(zhí)行計(jì)算機(jī)程序期間特別是開始執(zhí)行計(jì)算機(jī)程序時(shí)產(chǎn)生并且存儲(chǔ)程序?qū)ο蟮闹辽僖粋€(gè)被定義的狀態(tài)。這例如能通過這樣的方式來實(shí)現(xiàn),即存儲(chǔ)所有對(duì)程序?qū)ο蟮臓顟B(tài)相關(guān)的參量的值。
      此外,建議為了錯(cuò)誤發(fā)現(xiàn)使用相對(duì)于其上執(zhí)行具有多個(gè)程序?qū)ο蟮挠?jì)算機(jī)程序的計(jì)算設(shè)備冗余工作的其它設(shè)備。不言而喻,也將多于一個(gè)的冗余計(jì)算設(shè)備用于錯(cuò)誤檢測(cè)。
      有利地,根據(jù)本發(fā)明的方法應(yīng)用在汽車中,特別是應(yīng)用在汽車控制設(shè)備中,盡管在執(zhí)行計(jì)算機(jī)程序時(shí)不可避免暫態(tài)錯(cuò)誤但是保證了計(jì)算機(jī)程序的執(zhí)行安全和可靠。這特別是在汽車中對(duì)安全要求嚴(yán)格的應(yīng)用中的控制程序和/或調(diào)節(jié)程序的執(zhí)行是重要的。
      此外,還建議當(dāng)在重新執(zhí)行至少一個(gè)程序?qū)ο髸r(shí)重新出現(xiàn)相同的錯(cuò)誤,則推斷出永久錯(cuò)誤。也可考慮的是,當(dāng)在重復(fù)程序?qū)ο罂梢?guī)定的數(shù)量之后還始終出現(xiàn)錯(cuò)誤,才推斷出永久錯(cuò)誤。即在這樣的情況下,如果在第三次或者更后面重復(fù)程序?qū)ο笾箦e(cuò)誤消失,則還推斷出暫態(tài)錯(cuò)誤。通過本發(fā)明的擴(kuò)展方案,重要的程序?qū)ο竽鼙恢貜?fù)3次而不是僅僅2次。
      根據(jù)本發(fā)明的另一有利的擴(kuò)展方案,建議了至少一個(gè)程序?qū)ο蟮闹貜?fù)的數(shù)量被限制在預(yù)給定的值上。由此防止在永久錯(cuò)誤時(shí)隨便經(jīng)常地重復(fù)相同的程序?qū)ο蟆@缃柚?jì)算器或者通過時(shí)間限制來實(shí)現(xiàn)對(duì)至少一個(gè)程序?qū)ο笾貜?fù)的數(shù)量的限制。此外通過預(yù)給定與作業(yè)相關(guān)的重復(fù)值還能夠?qū)崿F(xiàn)比不是很重要的作業(yè)更經(jīng)常地重復(fù)重要的作業(yè),并且因此提供比不是很重要的作業(yè)更經(jīng)?;蛘吒L(zhǎng)地為重要的作業(yè)提供可能性,而沒有暫態(tài)錯(cuò)誤無錯(cuò)誤地運(yùn)行,在不是很重要的作業(yè)中相對(duì)迅速地推斷出永久錯(cuò)誤并且引起另一系統(tǒng)反應(yīng)。
      根據(jù)本發(fā)明的另一優(yōu)選實(shí)施形式,建議了至少一個(gè)程序?qū)ο蟮闹貜?fù)的數(shù)量動(dòng)態(tài)地被限制在可規(guī)定的值上。優(yōu)選地,至少一個(gè)程序?qū)ο蟮闹貜?fù)數(shù)量根據(jù)用于調(diào)度的剩余復(fù)位時(shí)間被動(dòng)態(tài)地限制在可規(guī)定的值上。以這樣的方式例如能通過第一作業(yè)和第二作業(yè),而第三作業(yè)能被多次重復(fù)。
      為了實(shí)現(xiàn)根據(jù)本發(fā)明的方法,建議了在執(zhí)行計(jì)算機(jī)程序期間在執(zhí)行程序?qū)ο笾按鎯?chǔ)執(zhí)行程序?qū)ο笏匦璧幕蛘叨x程序?qū)ο蟮臓顟B(tài)的參量。即根據(jù)該實(shí)施形式,存儲(chǔ)所有程序?qū)ο蟮膮⒘康闹怠?br> 作為替代方案,建議了在一個(gè)周期內(nèi)周期待執(zhí)行的計(jì)算機(jī)程序中當(dāng)對(duì)確定的程序?qū)ο髾z測(cè)到錯(cuò)誤時(shí)回跳到在計(jì)算機(jī)程序的周期中的預(yù)給定的回跳點(diǎn)。根據(jù)該實(shí)施形式,即在錯(cuò)誤的情況下在該周期內(nèi)始終回跳到相同的位置。優(yōu)選地,在執(zhí)行計(jì)算機(jī)程序期間只有在執(zhí)行程序?qū)ο笾霸诨靥c(diǎn)主要用于與程序?qū)ο笙嚓P(guān)的參量被存儲(chǔ)。即在回跳點(diǎn)對(duì)每個(gè)循環(huán)或者周期僅僅必需存儲(chǔ)程序?qū)ο蟮南嚓P(guān)參量一次。由此,能夠節(jié)約存儲(chǔ)的時(shí)間和存儲(chǔ)的位置。
      接著在檢測(cè)到錯(cuò)誤之后重新執(zhí)行程序?qū)ο髸r(shí),調(diào)用被存儲(chǔ)的輸入量并且被提供給重新被執(zhí)行的程序?qū)ο笞鳛檩斎肓俊?br> 作為本發(fā)明的另一實(shí)施形式,建議了為程序?qū)ο笤O(shè)置有多個(gè)回跳點(diǎn)。在出現(xiàn)錯(cuò)誤時(shí),不必重新執(zhí)行整個(gè)程序?qū)ο?,而是僅僅重新執(zhí)行程序?qū)ο蟮囊徊糠帧T诔霈F(xiàn)錯(cuò)誤時(shí),簡(jiǎn)單地回跳到那個(gè)前面經(jīng)過的回跳點(diǎn),直到程序?qū)ο蟮膱?zhí)行沒有錯(cuò)誤。例如,在直到第n回跳點(diǎn)無錯(cuò)誤執(zhí)行程序?qū)ο螽?dāng)在第n回跳點(diǎn)與第n+1回跳點(diǎn)之間出現(xiàn)錯(cuò)誤時(shí)則能回跳到第n回跳點(diǎn)。因此,該程序?qū)ο髲牡趎回跳點(diǎn)起被重新執(zhí)行。因此,可能節(jié)約時(shí)間。優(yōu)選地,在超過任何回跳點(diǎn)時(shí)在執(zhí)行程序?qū)ο笃陂g分別產(chǎn)生和存儲(chǔ)至少一個(gè)被定義的狀態(tài)。
      特別重要的是,以操作系統(tǒng)的形式實(shí)現(xiàn)根據(jù)本發(fā)明的方法。在這樣的情況下,操作系統(tǒng)能運(yùn)行在計(jì)算設(shè)備上尤其是能運(yùn)行在微處理器上并且當(dāng)操作系統(tǒng)運(yùn)行在計(jì)算設(shè)備上時(shí)為了實(shí)施根據(jù)本發(fā)明的方法編程操作系統(tǒng)。在這樣的情況下即本發(fā)明通過操作系統(tǒng)來實(shí)現(xiàn),使得該操作系統(tǒng)以相同的方式如操作系統(tǒng)適于其實(shí)施的方法來表示本發(fā)明。該操作系統(tǒng)優(yōu)選被存儲(chǔ)在存儲(chǔ)器元件上并且為了執(zhí)行而傳送給計(jì)算設(shè)備。作為存儲(chǔ)元件尤其是可應(yīng)用任何數(shù)據(jù)載體或者電子存儲(chǔ)器介質(zhì),例如隨機(jī)存儲(chǔ)器(RAM)、只讀存儲(chǔ)器(ROM)或者閃速存儲(chǔ)器。
      作為本發(fā)明的作業(yè)的另一解決方案,從前面所述類型的計(jì)算設(shè)備出發(fā)建議了,計(jì)算設(shè)備具有錯(cuò)誤處理機(jī)制,該錯(cuò)誤處理機(jī)制在檢測(cè)到錯(cuò)誤時(shí)通過錯(cuò)誤發(fā)現(xiàn)機(jī)制引起至少一個(gè)程序?qū)ο蟮闹匦聢?zhí)行。
      根據(jù)本發(fā)明的有利擴(kuò)展方案,建議了錯(cuò)誤處理機(jī)制具有觸發(fā)邏輯,該錯(cuò)誤觸發(fā)邏輯在檢測(cè)到錯(cuò)誤時(shí)重新啟動(dòng)至少一個(gè)程序?qū)ο蟆?br> 根據(jù)優(yōu)選的實(shí)施形式,建議了實(shí)時(shí)操作系統(tǒng)例如OSEK運(yùn)行在計(jì)算設(shè)備上。最后,建議了計(jì)算設(shè)備包括微處理器。


      本發(fā)明的另一些特征、應(yīng)用可能性和優(yōu)點(diǎn)從以下在附圖中所表示的本發(fā)明的實(shí)施形式的說明中得到。在這樣的情況下,所有所描述的或者所表示的特征本身或者以本發(fā)明的主題的任意組合,與其在權(quán)利要求中的結(jié)合或者其回引無關(guān)地或者與其表達(dá)或者圖示無關(guān)地形成在說明書中或形成在附圖中。其中圖1示出了按照其優(yōu)選實(shí)施形式的根據(jù)本發(fā)明的方法的流程圖;圖2大致示出了根據(jù)其優(yōu)選實(shí)施形式的根據(jù)本發(fā)明的計(jì)算設(shè)備;圖3由圖3a和3b組成地示出了根據(jù)本發(fā)明的用于結(jié)合作業(yè)重復(fù)的方法;圖4示出了由圖4a和圖4b組成的一個(gè)根據(jù)本發(fā)明的延伸用于包容進(jìn)作業(yè)重復(fù)的第二方案,且圖5示出由圖5a和圖5b組成的一個(gè)根據(jù)本發(fā)明的延伸用于包容進(jìn)作業(yè)重復(fù)的第三方案。
      具體實(shí)施例方式
      本發(fā)明涉及一種用于在計(jì)算設(shè)備上尤其是在微處理器上執(zhí)行計(jì)算機(jī)程序的方法。該計(jì)算機(jī)程序包括多個(gè)程序?qū)ο螅@些程序?qū)ο髢?yōu)選構(gòu)造為作業(yè)。在該方法中在計(jì)算設(shè)備上執(zhí)行計(jì)算機(jī)程序期間檢測(cè)到錯(cuò)誤。被檢測(cè)到的錯(cuò)誤可以是暫態(tài)(即暫時(shí)的)或者永久錯(cuò)誤。
      在計(jì)算設(shè)備上執(zhí)行計(jì)算機(jī)程序期間會(huì)出現(xiàn)暫態(tài)錯(cuò)誤。因?yàn)橛?jì)算設(shè)備的半導(dǎo)體模塊(所謂芯片)上的結(jié)構(gòu)越來越小,但信號(hào)的時(shí)鐘頻率越來越大以及信號(hào)的電壓越來越低,所以在計(jì)算設(shè)備上執(zhí)行計(jì)算機(jī)程序時(shí)越來越頻繁地出現(xiàn)暫態(tài)錯(cuò)誤。與永久錯(cuò)誤相反,僅僅暫時(shí)出現(xiàn)錯(cuò)誤并且在一段時(shí)間之后通常又消失。在暫態(tài)錯(cuò)誤中,僅單個(gè)位是錯(cuò)誤的,而計(jì)算設(shè)備本身沒有永久地?fù)p害。暫態(tài)錯(cuò)誤能有不同的原因,如例如電磁輻射、α粒子或者中子。
      由于暫態(tài)錯(cuò)誤幾乎不可預(yù)測(cè)地出現(xiàn)并且因此不能重現(xiàn)的事實(shí),在現(xiàn)有技術(shù)公知的計(jì)算設(shè)備中基本上僅對(duì)永久錯(cuò)誤進(jìn)行錯(cuò)誤處理。暫態(tài)錯(cuò)誤的考慮限于錯(cuò)誤計(jì)數(shù)器的累加和必要時(shí)遞減。該錯(cuò)誤計(jì)數(shù)器被設(shè)置在存儲(chǔ)器中并且能夠離線地即例如在構(gòu)造為汽車控制設(shè)備的計(jì)算設(shè)備中在車間停留期間作為診斷或者錯(cuò)誤信息被讀出。接著才會(huì)對(duì)錯(cuò)誤相應(yīng)地反應(yīng)。公知的錯(cuò)誤處理即尤其是對(duì)安全相關(guān)的系統(tǒng)所必需的短暫容錯(cuò)時(shí)間內(nèi)不允許錯(cuò)誤處理,而另一方面在這個(gè)意義上也不允許構(gòu)造性的錯(cuò)誤處理,即在容錯(cuò)時(shí)間內(nèi)因此計(jì)算機(jī)程序又被執(zhí)行并且計(jì)算設(shè)備能完成其通常的作業(yè)。
      與此相反,根據(jù)本發(fā)明的方法允許通過系統(tǒng)地、結(jié)構(gòu)地應(yīng)對(duì)大多數(shù)錯(cuò)誤的暫態(tài)性質(zhì)來處理運(yùn)行于計(jì)算設(shè)備上的計(jì)算機(jī)程序的暫態(tài)錯(cuò)誤。根據(jù)本發(fā)明的流程圖例如運(yùn)行對(duì)象、所謂作業(yè)表示在圖1中。其它作業(yè)的存在沒有影響原則上過程,即省去考慮。這樣如根據(jù)圖1所表示的過程來執(zhí)行作業(yè),即根據(jù)本發(fā)明還能執(zhí)行多個(gè)作業(yè)。并行工作的錯(cuò)誤發(fā)現(xiàn)機(jī)制是特別有利的(所謂并發(fā)檢驗(yàn))。但是在流程圖中并沒有這樣表示它,它作為串聯(lián)模塊附裝在相應(yīng)位置上。
      在功能塊1中開始根據(jù)本發(fā)明的方法。在功能塊1中在計(jì)算設(shè)備上開始作業(yè)的執(zhí)行,該作業(yè)被調(diào)用。在功能塊2中,產(chǎn)生回跳點(diǎn)。為此目的,足夠?qū)⒆鳂I(yè)置于用于重新啟動(dòng)的被定義的狀態(tài)中并且再次啟動(dòng)作業(yè)的作業(yè)輸入量存儲(chǔ)在計(jì)算設(shè)備的存儲(chǔ)元件中。優(yōu)選地,作業(yè)的所有輸入量被存儲(chǔ)。接著在功能塊3中進(jìn)一步執(zhí)行作業(yè)。在另一回跳點(diǎn)或者直到作業(yè)的結(jié)束能夠進(jìn)行執(zhí)行。因此,錯(cuò)誤發(fā)現(xiàn)機(jī)制被執(zhí)行。錯(cuò)誤檢測(cè)能按照任意方法來進(jìn)行。在執(zhí)行計(jì)算機(jī)程序(所謂并發(fā)檢驗(yàn))期間檢測(cè)到錯(cuò)誤。這樣例如在雙核架構(gòu)中,雙倍地構(gòu)造整個(gè)計(jì)算機(jī)核。當(dāng)計(jì)算機(jī)核以鎖步模式工作,對(duì)任何指令能比較,計(jì)算機(jī)核是否提供相同的結(jié)果。于是這些結(jié)果的不同肯定能夠推斷出存在錯(cuò)誤。這種錯(cuò)誤發(fā)現(xiàn)機(jī)制實(shí)時(shí)發(fā)現(xiàn)執(zhí)行程序?qū)ο笃陂g的錯(cuò)誤。相應(yīng)地,也適于錯(cuò)誤發(fā)現(xiàn)的代碼,該代碼被連續(xù)地用于處理器架構(gòu)中,或者適于計(jì)算設(shè)備的相同的部分組件。優(yōu)選地使用這種錯(cuò)誤發(fā)現(xiàn)機(jī)制,當(dāng)檢測(cè)到錯(cuò)誤時(shí)迅速地發(fā)現(xiàn)暫態(tài)錯(cuò)誤并且提供相應(yīng)的錯(cuò)誤信號(hào)。
      在詢問塊4中檢驗(yàn),錯(cuò)誤即暫態(tài)或者永久錯(cuò)誤是否被發(fā)現(xiàn)。如果錯(cuò)誤被發(fā)現(xiàn),則在另一詢問塊7中被分叉,在那里錯(cuò)誤計(jì)數(shù)器邏輯的當(dāng)前值被檢驗(yàn)。如果錯(cuò)誤計(jì)數(shù)器還未低于可規(guī)定的值(在遞減的錯(cuò)誤計(jì)數(shù)器中)或者超過(在累加的錯(cuò)誤計(jì)數(shù)器中)時(shí),還能執(zhí)行在其處理期間出現(xiàn)錯(cuò)誤的作業(yè)一次,或者確定數(shù)量的在出現(xiàn)錯(cuò)誤之前被執(zhí)行的作業(yè)還能被執(zhí)行一次。如果可以重新啟動(dòng)作業(yè)的執(zhí)行,則在功能塊8中被分叉,在該功能塊中錯(cuò)誤計(jì)數(shù)器邏輯的狀態(tài)用出現(xiàn)另一錯(cuò)誤的信息來更新(遞減或者累加)。從那里在功能塊5中被分叉,在該功能塊中存儲(chǔ)在功能塊2內(nèi)的量被加載并且在開始執(zhí)行時(shí)提供用于產(chǎn)生被定義的狀態(tài)的作業(yè)。接著,朝功能塊3被分叉,在那里待重復(fù)的作業(yè)部分即例如從已被執(zhí)行過的回跳點(diǎn)出來,或者但作為完整的即該作業(yè)從開始還被啟動(dòng)一次,還被執(zhí)行一次。
      如果在詢問塊4中得到在功能塊3中執(zhí)行作業(yè)期間沒有出現(xiàn)錯(cuò)誤,則在功能塊9中分叉,在該功能塊中用沒有檢測(cè)到錯(cuò)誤的信息更新錯(cuò)誤計(jì)數(shù)器邏輯的狀態(tài)。從那里出來,在詢問塊11中被分叉,在那里檢驗(yàn)計(jì)算機(jī)程序是否被執(zhí)行到結(jié)束。如果是這樣,則在結(jié)束計(jì)算機(jī)程序時(shí)在功能決6中被分叉。如果不是,在功能塊12中被分叉,在那里根據(jù)當(dāng)前的作業(yè)狀態(tài)產(chǎn)生另一回跳點(diǎn),其方式是定義并且存儲(chǔ)安全的相關(guān)作業(yè)輸入量,該量足夠再次啟動(dòng)作業(yè)。從那里出來,接著又向功能塊3被分叉,在那里待重復(fù)的作業(yè)又重新被啟動(dòng)并且部分或者全部地還被執(zhí)行一次。
      如果在詢問塊7中得到,由于錯(cuò)誤計(jì)數(shù)器邏輯的狀態(tài)而不再可以進(jìn)一步嘗試以重新執(zhí)行作業(yè),則在功能塊10中被分叉。在詢問塊7中檢驗(yàn),用于該作業(yè)的錯(cuò)誤計(jì)數(shù)器邏輯的值是否比作業(yè)相關(guān)的重復(fù)值大。作業(yè)相關(guān)的重復(fù)值可針對(duì)各種作業(yè)相同地預(yù)給定或者,但是也可各自針對(duì)每個(gè)作業(yè)單獨(dú)預(yù)給定。以這樣的方式可能的是,例如在發(fā)現(xiàn)永久錯(cuò)誤之前,首先多次重復(fù)特別重要的作業(yè)。當(dāng)作業(yè)相關(guān)的重復(fù)值被預(yù)給定為1時(shí),該作業(yè)僅在檢測(cè)到永久錯(cuò)誤之前,僅被重復(fù)一次。如果作業(yè)相關(guān)的重復(fù)值被預(yù)給定為2或者3,則在檢測(cè)到永久錯(cuò)誤之前作業(yè)被重復(fù)2次或者3次。在這樣的情況下,即該作業(yè)具有更長(zhǎng)的時(shí)間、或者更多的運(yùn)行,直到不再出現(xiàn)暫態(tài)錯(cuò)誤。在功能塊10中檢測(cè)到永久錯(cuò)誤并且采取相應(yīng)的措施。該措施例如可以是,將計(jì)算機(jī)程序轉(zhuǎn)移到應(yīng)急工作或者首先采取措施而接著結(jié)束計(jì)算機(jī)程序過程。
      根據(jù)本發(fā)明的方法不必一定包括所有在圖1中所表示的和上面所闡述的功能和詢問塊。這樣,例如省去了塊7至9,這些塊涉及錯(cuò)誤計(jì)數(shù)器邏輯。在檢測(cè)到錯(cuò)誤時(shí),該將要被重新啟動(dòng)和執(zhí)行的作業(yè)這樣長(zhǎng)地被重復(fù),直到不再出現(xiàn)錯(cuò)誤。沒有檢測(cè)到永久錯(cuò)誤,使得也能去掉功能單元10。替換地,作業(yè)相關(guān)的重復(fù)值能被預(yù)給定為1,使得能去掉用于更新錯(cuò)誤計(jì)數(shù)器的功能塊8和9。最后,當(dāng)用唯一的回跳點(diǎn)執(zhí)行唯一作業(yè)時(shí),也可以省去決11和12。
      在圖2中,表示用于根據(jù)其優(yōu)選的實(shí)施形式執(zhí)行計(jì)算機(jī)程序的根據(jù)本發(fā)明的計(jì)算設(shè)備。計(jì)算設(shè)備在其整體上用參考標(biāo)號(hào)20表示。計(jì)算設(shè)備包括存儲(chǔ)器元件21,該存儲(chǔ)器元件例如構(gòu)造為電子存儲(chǔ)器特別是構(gòu)造為閃存存儲(chǔ)器。此外,計(jì)算設(shè)備20還包括微處理器22,在該微處理器上計(jì)算機(jī)程序能被執(zhí)行。計(jì)算機(jī)程序被存儲(chǔ)在電子存儲(chǔ)器介質(zhì)21上并且用參考標(biāo)記23表示。為了在微處理器22上執(zhí)行計(jì)算機(jī)程序,計(jì)算機(jī)程序作為整體或者分段地例如逐指令地通過數(shù)據(jù)連接24傳輸給微處理器。數(shù)據(jù)連接24可以構(gòu)造為一個(gè)或者多個(gè)數(shù)據(jù)線或者構(gòu)造為用于數(shù)據(jù)傳輸?shù)目偩€系統(tǒng)。此外,在存儲(chǔ)介質(zhì)21上還存儲(chǔ)有操作系統(tǒng),在引導(dǎo)計(jì)算設(shè)備20時(shí)至少部分從存儲(chǔ)器21向微處理器22傳輸并且在那里被執(zhí)行。該操作系統(tǒng)用參考標(biāo)記25表示。該操作系統(tǒng)具有管理和控制計(jì)算機(jī)程序23在微處理器22上的執(zhí)行以及連接到計(jì)算設(shè)備20的周邊設(shè)備的作業(yè)。根據(jù)本發(fā)明,操作系統(tǒng)25以特別的方式構(gòu)造,使得當(dāng)操作系統(tǒng)在微處理器22上運(yùn)行時(shí)為了實(shí)施根據(jù)本發(fā)明的方法來編程它并且實(shí)施根據(jù)本發(fā)明的方法。尤其是,操作系統(tǒng)25包括進(jìn)入錯(cuò)誤發(fā)現(xiàn)機(jī)制的入口用于檢測(cè)在微處理器22上執(zhí)行計(jì)算機(jī)程序23期間的錯(cuò)誤。此外,操作系統(tǒng)25還包括錯(cuò)誤處理機(jī)制,該錯(cuò)誤處理機(jī)制在檢測(cè)到錯(cuò)誤時(shí)引起重新執(zhí)行計(jì)算機(jī)程序23的至少一個(gè)程序?qū)ο?作業(yè))。
      因此,在根據(jù)本發(fā)明的系統(tǒng)策略的框架下建議了一種方法、一種操作系統(tǒng)以及計(jì)算機(jī)設(shè)備,該系統(tǒng)策略允許以最小或者甚至沒有執(zhí)行開銷結(jié)合作業(yè)重復(fù)的概念。
      在這樣的情況下,系統(tǒng)策略被作為基礎(chǔ),該系統(tǒng)策略在各個(gè)不同的前提條件下使執(zhí)行開銷最小并且由此使成本最小。通常,在這樣的情況下,前提是提供尤其是已描述的錯(cuò)誤發(fā)現(xiàn)機(jī)制,在作業(yè)的運(yùn)行中能發(fā)現(xiàn)錯(cuò)誤(例如雙核機(jī)制,具有冗余執(zhí)行)。此外,在此特別,為了發(fā)現(xiàn)永久錯(cuò)誤,必需擴(kuò)展例如如上所述的錯(cuò)誤計(jì)數(shù)器。
      在根據(jù)本發(fā)明的用于結(jié)合作業(yè)重復(fù)的策略中,如在圖3中描述的那樣,幾個(gè)前提能被考慮到。
      至少兩類作業(yè)(例如關(guān)鍵和非關(guān)鍵的作業(yè))被區(qū)分。在這樣的情況下,已經(jīng)不將錯(cuò)誤發(fā)現(xiàn)機(jī)制用于所有類的作業(yè)和/或并不針對(duì)所有類的作業(yè)實(shí)施作業(yè)重復(fù)。
      在圖3的例子中,區(qū)分兩類作業(yè),在這些作業(yè)中只有在一類中實(shí)施和/或只有在一類中啟動(dòng)錯(cuò)誤發(fā)現(xiàn)機(jī)制。在區(qū)分關(guān)鍵作業(yè)和非關(guān)鍵作業(yè)時(shí),同樣根據(jù)本發(fā)明在關(guān)鍵作業(yè)中錯(cuò)誤被捕獲,尤其是只被用于第一類錯(cuò)誤發(fā)現(xiàn)機(jī)制。在這樣的情況下,關(guān)鍵作業(yè)是這種作業(yè),即在其中對(duì)系統(tǒng)的整個(gè)功能或者基本功能必需正確的執(zhí)行并且必須在確定的時(shí)刻稍后進(jìn)行,以便獲得該功能。非關(guān)鍵作業(yè)是這樣的,即在其中整個(gè)系統(tǒng)功能或者也有基本功能并不涉及或者并非主要地被限制。尤其是,在該系統(tǒng)中在這樣的情況下在對(duì)安全嚴(yán)格和對(duì)安全不嚴(yán)格的功能之間進(jìn)行區(qū)分。
      第二類即不關(guān)鍵類2的作業(yè)中的暫態(tài)錯(cuò)誤可能被忽視。此外如所述的那樣第二類作業(yè)也不允許輪到一次,即從系統(tǒng)角度來看并沒有嚴(yán)重的后果,當(dāng)?shù)诙愖鳂I(yè)在作業(yè)處理循環(huán)中并未被調(diào)用。此外,第一關(guān)鍵類1的作業(yè)的總運(yùn)行時(shí)間所占百分比應(yīng)當(dāng)最好不要超過過程或者作業(yè)處理循環(huán)的總計(jì)算時(shí)間中由特定系統(tǒng)所決定的百分比(例如50%)。在這樣的情況下,關(guān)鍵作業(yè)在平均劃分成關(guān)鍵和非關(guān)鍵作業(yè)時(shí)被分配總共最多50%的總計(jì)算時(shí)間,使得在所有關(guān)鍵作業(yè)有錯(cuò)誤的最壞情況下能夠重新啟動(dòng)或者計(jì)算這些作業(yè)。
      因此,根據(jù)圖3的系統(tǒng)是可能的,在該系統(tǒng)中各種類這樣交替,使得作業(yè)T1的“接替者”S1(類2)在調(diào)度表中獲得至少如T1的WCET(最壞情況執(zhí)行時(shí)間)一樣的時(shí)間。
      因此,基本構(gòu)思是在出現(xiàn)暫態(tài)錯(cuò)誤時(shí)在T1中代替S1再次計(jì)算T1。由此保證了,T1中的錯(cuò)誤在計(jì)算T2之前被消除。由此在作業(yè)的計(jì)算時(shí)間內(nèi)發(fā)生錯(cuò)誤識(shí)別和錯(cuò)誤處理(包括在保持容錯(cuò)特性的情況下很可能的處置)。
      在圖3中對(duì)此在類1的作業(yè)T1、T2和T3與類2的作業(yè)S1、S2和S3之間進(jìn)行區(qū)分。在無錯(cuò)誤地執(zhí)行時(shí),在圖3a中示例性地示出了作業(yè)序列T1、S1、T2、S2、T3、S3。在T1期間出現(xiàn)暫態(tài)錯(cuò)誤時(shí)根據(jù)圖3b在S1時(shí)間中再次計(jì)算作業(yè)并且接著計(jì)算T2、S2、T3、S3,使得暫態(tài)錯(cuò)誤得以校正。
      圖4示出了包容作業(yè)重復(fù)的另一個(gè)系統(tǒng)方案,圖4包含圖4a和圖4b。在此所述系統(tǒng)應(yīng)適合較小的跳動(dòng)(以一個(gè)作業(yè)計(jì)算時(shí)間的數(shù)量級(jí))。這最好通過采用平臺(tái)機(jī)制(首先是操作系統(tǒng))貫徹。在此,在圖4a中示出在無錯(cuò)誤地執(zhí)行的情況下作業(yè)T1、T2、T3、T4、T5和S的循環(huán)。
      又是應(yīng)當(dāng)至少有兩類的作業(yè)(例如上述的關(guān)鍵和非關(guān)鍵的),其中在此于舉例中只在一類的情況下進(jìn)行作業(yè)重復(fù),和/或只在一類的情況下起動(dòng)錯(cuò)誤發(fā)現(xiàn)機(jī)制。在區(qū)分為關(guān)鍵和非關(guān)鍵的作業(yè)的情況下,根據(jù)本發(fā)明只截取關(guān)鍵作業(yè)中的錯(cuò)誤,特別是只對(duì)第一類采用錯(cuò)誤發(fā)現(xiàn)機(jī)制。這是圖3所示的情況下。
      從而在此還可以忽略第二類的作業(yè)中的暫態(tài)錯(cuò)誤。在此還成立如果在一個(gè)作業(yè)處理循環(huán)沒有調(diào)用該第二類的一個(gè)作業(yè),還不“應(yīng)當(dāng)輪到”一次該第二類的作業(yè),就是說它從系統(tǒng)層沒有重要的后果。最后每次過程或者周期,也就是一個(gè)作業(yè)計(jì)算循環(huán)必須至少有一個(gè)持續(xù)得與最長(zhǎng)的關(guān)鍵作業(yè)那樣長(zhǎng)時(shí)間的非關(guān)鍵作業(yè)。這至少可以把一個(gè)非關(guān)鍵作業(yè)也實(shí)現(xiàn)成空閑時(shí)間,這當(dāng)然也對(duì)圖3的實(shí)施例成立。
      例如現(xiàn)在假定在一次運(yùn)行周期中有作業(yè)T1...至...Tn(在此n為自然數(shù),在此為5),它們?nèi)际顷P(guān)鍵的,并且應(yīng)當(dāng)按該序列執(zhí)行。此外在Tn以后還有至少一個(gè)作業(yè)S是非關(guān)鍵的并且長(zhǎng)于每個(gè)單個(gè)的Ti。這時(shí)在圖4b中在作業(yè)T3中出現(xiàn)一個(gè)暫態(tài)錯(cuò)誤。在Ti中檢測(cè)到一個(gè)錯(cuò)誤的情況下對(duì)應(yīng)于圖4b簡(jiǎn)單地立即重復(fù)作業(yè)Ti,并且把其余的,也就是T4和T5向后延遲。如果在這輪循環(huán)中只出現(xiàn)一個(gè)暫態(tài)錯(cuò)誤,就不會(huì)有關(guān)鍵的作業(yè)受到忽略并且不會(huì)在執(zhí)行中向后延遲超過最大的作業(yè)長(zhǎng)度。從而在此是否在多個(gè)錯(cuò)誤的情況下不執(zhí)行關(guān)鍵的作業(yè),直接取決于非關(guān)鍵作業(yè)的長(zhǎng)度或者空閑時(shí)間S。出于安全性的原因,在此還可以如此地選擇第一類的、關(guān)鍵的作業(yè)全部運(yùn)行時(shí)間,使之不占用一次運(yùn)行或者一個(gè)作業(yè)處理循環(huán)的一個(gè)確定的由系統(tǒng)決定的百分?jǐn)?shù)(例如50%)。在此也是在平均分配關(guān)鍵和非關(guān)鍵的時(shí)間時(shí)向關(guān)鍵作業(yè)最多總共指派總計(jì)算時(shí)間的50%,從而在最差的情況下,即如果所有關(guān)鍵作業(yè)都錯(cuò)誤的情況下可以把它們重新開始和重新計(jì)算。
      包含圖5a和圖5b的圖5示出另一個(gè)方案,其中成立實(shí)質(zhì)上相符的前提。在此適用于有較大跳動(dòng)(在一次運(yùn)行的數(shù)量級(jí))。這必須通過采用平臺(tái)機(jī)制,特別是用操作系統(tǒng)貫徹。還是有至少兩類的作業(yè)(例如關(guān)鍵的T1-T5和非關(guān)鍵的S)。在此還是只對(duì)第一類(T1-T5)采用錯(cuò)誤發(fā)現(xiàn)機(jī)制。在此也可以忽略第二類的一個(gè)作業(yè)中的暫態(tài)錯(cuò)誤。此外應(yīng)當(dāng)成立如果在一個(gè)作業(yè)處理循環(huán)沒有調(diào)用該第二類的一個(gè)作業(yè),還不“應(yīng)當(dāng)輪到”一次該第二類的作業(yè),就是說它從系統(tǒng)層沒有重要的后果。最后,每次運(yùn)行或者周期應(yīng)當(dāng)有至少一個(gè)非關(guān)鍵的作業(yè)持續(xù)得象最長(zhǎng)的關(guān)鍵作業(yè)那樣長(zhǎng)(在此還可以實(shí)現(xiàn)為空閑時(shí)間)。(如以上在圖3和圖4的情況那樣的考慮)。
      假定在一輪周期中有應(yīng)當(dāng)在該輪周期中執(zhí)行的作業(yè)T1、...、Tn(都是關(guān)鍵的)。此外在Tn以后還至少有一個(gè)非關(guān)鍵的,并且比每個(gè)單個(gè)的Ti長(zhǎng)的作業(yè)S。對(duì)此在圖5a中示出在一輪周期中按序列T1、T2、T3、T4、T5和S的無錯(cuò)誤的作業(yè)的流程。
      在Ti中(例如對(duì)應(yīng)于圖5b在T3中)檢測(cè)出一個(gè)錯(cuò)誤的情況下把Ti(T3)的結(jié)果解釋為不相干的,并且與前述實(shí)施例相反執(zhí)行完其它的作業(yè)(T4、T5)。在完成了Tn(T5)之后,再次計(jì)算Ti(T3)。在此,前提是一種不要求一輪的作業(yè)的結(jié)果不再為同一輪的其它作業(yè)(必須地)所需,因?yàn)樵诖瞬蛔袷厮鲎鳂I(yè)的序列。
      該系統(tǒng)方案根據(jù)對(duì)圖1和2的介紹采用相應(yīng)的裝置來實(shí)施,使得在公開方面根據(jù)本發(fā)明每個(gè)實(shí)施形式明確地可與任何其它實(shí)施形式組合。
      由此,根據(jù)本發(fā)明能夠在暫態(tài)錯(cuò)誤方面實(shí)現(xiàn)最佳的FO特性(FOFail Operation(al),F(xiàn)ault Operation(al)),甚至以很小的康復(fù)時(shí)間,該康復(fù)時(shí)間重新自行恢復(fù)FO特性。該方案也很好地用在時(shí)間控制的系統(tǒng)中并且能進(jìn)行優(yōu)化。
      權(quán)利要求
      1.用于執(zhí)行在計(jì)算機(jī)設(shè)備(2)上、尤其是在微處理器(22)上的計(jì)算機(jī)程序(23)的方法,其中所述計(jì)算機(jī)程序(23)包括多個(gè)程序?qū)ο?,并且在所述方法中,在?zhí)行計(jì)算機(jī)設(shè)備(20)上的所述計(jì)算機(jī)程序(23)期間進(jìn)行錯(cuò)誤檢測(cè),其特征在于,在檢測(cè)到錯(cuò)誤時(shí),把至少一個(gè)已經(jīng)執(zhí)行的程序?qū)ο筠D(zhuǎn)入到一個(gè)定義的狀態(tài),由此重新啟動(dòng)該程序?qū)ο螅舆t隨后的另外的程序?qū)ο蟆?br> 2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述程序?qū)ο蟊环殖芍辽賰深悾渲?,在檢測(cè)到錯(cuò)誤時(shí),重復(fù)第一類程序?qū)ο?;并且在檢測(cè)到所述第一類的一個(gè)已經(jīng)執(zhí)行的程序目標(biāo)的錯(cuò)誤時(shí),重新起動(dòng)所述第一類的該程序目標(biāo)并且延遲隨后的該第一類的其它程序目標(biāo)。
      3.根據(jù)權(quán)利要求2所述的方法,其特征在于,僅在被重新啟動(dòng)的類中實(shí)施錯(cuò)誤檢測(cè)。
      4.根據(jù)權(quán)利要求2所述的方法,其特征在于,對(duì)于所有程序?qū)ο笤谘h(huán)中設(shè)置總計(jì)算時(shí)間并且把所述總計(jì)算時(shí)間劃分成使得在檢測(cè)到錯(cuò)誤時(shí)被重新啟動(dòng)的程序?qū)ο笤跓o錯(cuò)誤的情況下獲得循環(huán)中的總計(jì)算時(shí)間的至多50%。
      5.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述不同類的程序?qū)ο蟀凑战惶娣绞奖粓?zhí)行。
      6.根據(jù)權(quán)利要求2和5所述的方法,其特征在于,所述第一類有錯(cuò)誤的程序?qū)ο蟠婢o接其后的第二類程序?qū)ο蠖粓?zhí)行。
      7.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述程序?qū)ο髽?gòu)造為所述計(jì)算機(jī)程序(23)的作業(yè)并且在檢測(cè)到錯(cuò)誤時(shí)重新執(zhí)行至少一個(gè)作業(yè)。
      8.根據(jù)權(quán)利要求1或者6所述的方法,其特征在于,在檢測(cè)到錯(cuò)誤時(shí)被執(zhí)行的程序?qū)ο笾匦卤粏?dòng)。
      9.根據(jù)權(quán)利要求1所述的方法,其特征在于,在執(zhí)行所述程序?qū)ο髸r(shí),尤其是在開始執(zhí)行程序?qū)ο髸r(shí)產(chǎn)生并且存儲(chǔ)程序?qū)ο蟮闹辽僖粋€(gè)被定義的狀態(tài)。
      10.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述方法被用于汽車中尤其是被用在汽車控制設(shè)備中。
      11.根據(jù)權(quán)利要求1所述的方法,其特征在于,在執(zhí)行所述計(jì)算機(jī)程序(23)期間,在執(zhí)行所述程序?qū)ο笾按鎯?chǔ)執(zhí)行計(jì)算機(jī)程序所需參量的值。
      12.根據(jù)權(quán)利要求1所述的方法,其特征在于,在一個(gè)周期內(nèi)的將要周期執(zhí)行的計(jì)算機(jī)程序(23)中,當(dāng)對(duì)確定的程序?qū)ο髾z測(cè)到錯(cuò)誤時(shí)回跳到在所述計(jì)算機(jī)程序(23)的周期中的可規(guī)定的回跳點(diǎn)上。
      13.操作系統(tǒng)(25),所述操作系統(tǒng)能夠運(yùn)行在計(jì)算機(jī)設(shè)備(20)上、尤其是能夠運(yùn)行在微處理器(22)上,其特征在于,當(dāng)所述操作系統(tǒng)運(yùn)行在所述計(jì)算設(shè)備(20)上時(shí),對(duì)所述操作系統(tǒng)(25)進(jìn)行編程以實(shí)施根據(jù)權(quán)利要求1至11中的一項(xiàng)所述的方法并且實(shí)施根據(jù)本發(fā)明的方法。
      14.用于執(zhí)行計(jì)算機(jī)程序(23)的計(jì)算設(shè)備(20),所述計(jì)算機(jī)程序包括多個(gè)程序?qū)ο?,其中所述?jì)算機(jī)設(shè)備(20)具有錯(cuò)誤發(fā)現(xiàn)機(jī)制以在執(zhí)行所述計(jì)算設(shè)備(20)上的所述計(jì)算機(jī)程序(20)期間檢測(cè)錯(cuò)誤,其特征在于,所述計(jì)算設(shè)備(20)具有錯(cuò)誤處理機(jī)制,在檢測(cè)到錯(cuò)誤時(shí),所述錯(cuò)誤處理機(jī)制通過所述錯(cuò)誤發(fā)現(xiàn)機(jī)制引起把至少一個(gè)已經(jīng)執(zhí)行的程序?qū)ο筠D(zhuǎn)入到一個(gè)定義的狀態(tài),由此重新啟動(dòng)該程序?qū)ο?,延遲隨后的另外的程序?qū)ο蟆?br> 15.根據(jù)權(quán)利要求14所述的計(jì)算設(shè)備(20),其特征在于,所述錯(cuò)誤處理機(jī)制被設(shè)計(jì)成所述程序?qū)ο蟊环殖芍辽賰深悾渲?,在檢測(cè)到錯(cuò)誤時(shí),在第一類程序?qū)ο笾袡z測(cè)到錯(cuò)誤時(shí),第一類程序?qū)ο蟠娴诙惓绦驅(qū)ο蠖恢匦聠?dòng)。
      16.根據(jù)權(quán)利要求14所述的計(jì)算設(shè)備(20),所述錯(cuò)誤處理機(jī)制具有觸發(fā)邏輯,所述觸發(fā)邏輯在檢測(cè)到錯(cuò)誤時(shí)重新啟動(dòng)至少一個(gè)程序?qū)ο蟆?br> 17.根據(jù)權(quán)利要求14所述的計(jì)算設(shè)備(20),其特征在于,在所述計(jì)算設(shè)備(20)上運(yùn)行實(shí)時(shí)操作系統(tǒng)(25)。
      全文摘要
      本發(fā)明涉及用于執(zhí)行在計(jì)算機(jī)設(shè)備上、尤其是在微處理器上的計(jì)算機(jī)程序的方法,其中所述計(jì)算機(jī)程序包括多個(gè)程序?qū)ο?,并且在所述方法中,在?zhí)行計(jì)算機(jī)設(shè)備(20)上的所述計(jì)算機(jī)程序(23)期間進(jìn)行錯(cuò)誤檢測(cè)。在檢測(cè)到錯(cuò)誤時(shí),把至少一個(gè)已經(jīng)執(zhí)行的程序?qū)ο筠D(zhuǎn)入到一個(gè)定義的狀態(tài),由此重新啟動(dòng)該程序?qū)ο?,延遲隨后的另外的程序?qū)ο蟆?br> 文檔編號(hào)G06F11/14GK101048742SQ200580036496
      公開日2007年10月3日 申請(qǐng)日期2005年10月19日 優(yōu)先權(quán)日2004年10月25日
      發(fā)明者R·韋伯勒, B·米勒, W·哈特爾, R·安格鮑爾, T·科特克, Y·科拉尼, R·格梅利希 申請(qǐng)人:羅伯特·博世有限公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1