專利名稱:故障診斷系統(tǒng)、用于車輛的電子控制單元、故障診斷方法
技術領域:
本發(fā)明涉及一種用于具有多個CPU核的多核中央處理單元(CPU)的故障診斷系統(tǒng)并且更具體地涉及一種分別地進行各CPU核的故障診斷的故障診斷系統(tǒng)、一種用于車輛的電子控制單元(ECU)和一種故障診斷方法。
背景技術:
有時通過以下方式檢測LSI (大規(guī)模集成電路)或者微計算機中的異常來進行相互異常檢測使用將多個LSI或者微計算機安裝于一個系統(tǒng)中的配置,并且監(jiān)視從一個大規(guī)模集成電路(LSI)(微計算機)向另一 LSI (微計算機)發(fā)送的監(jiān)視信號。另外,在一個微計算機帶有多個CPU核這樣的多核處理器中,通過在多個CPU中執(zhí)行相同處理并且比較處理結果來檢測異常。另外,公開號為7-230392的日本專利申請(JP-A-7-230392)公開如下方法,按照該方法,CPU通過自診斷來檢測異常。圖14是根據JP-A-7-230392進行自診斷的處理器的框圖。指令代碼生成單元根據建立的規(guī)則來生成指令本征代碼并且在代碼比較單元中輸入該代碼。指令執(zhí)行代碼生成單元根據參照指令代碼生成單元的規(guī)則而言反轉的規(guī)則來生成指令本征代碼,并且向代碼比較單元4中輸入生成的指令本征代碼。代碼比較單元比較兩個指令本征代碼,如果代碼互不相同則檢測到處理器中的故障。然而如圖14中所示,在多個CPU中執(zhí)行相同處理或者執(zhí)行用于異常檢測的某個指令可能給微計算機或者處理器的資源帶來壓力,由此影響標準處理(比如作為處理器的基本需要的控制或者數據處理)的執(zhí)行速度(標準處理的執(zhí)行速度相對于通常執(zhí)行速度降低)。常規(guī)多核處理器具有對稱多處理(或者稱為SMP)的處理模式、不對稱多處理(或者稱為AMP)的處理模式和將SMP與AMP組合的混合多處理(或者稱為BMP)的處理模式。另外例如公開號為2008-123439的日本專利申請(JP-A-2008-123439)公開了一種配置成用于BMP模式的處理器,其中當在任何CPU核中出現異常時,把分配給其中已經出現異常的CPU核的處理分配到另一 CPU核。就JP-A-2008-123439中公開的操作系統(tǒng)(OS)而言,當向另一個核分配處理時,向正常CPU分配優(yōu)先級順序高的處理而不進行優(yōu)先級順序低的處理,由此使得可以以與在已經檢測到異常之前的效率相同的效率執(zhí)行優(yōu)先級順序高的處理。然而,當檢測到異常時,JP-A-2008-123439中公開的OS與JP-A-7-230392中公開的OS在給微計算機或者處理器的資源帶來壓力這一點上(例如CPU核進行“1+1”的相加)并沒有不同,因此可能影響標準處理的執(zhí)行速度。
發(fā)明內容
本發(fā)明提供一種可以從多個CPU核中確定其中已經出現異常的CPU核而不影響標準處理的執(zhí)行速度的故障診斷系統(tǒng)以及一種用于車輛的ECU(電子控制單元)和一種故障診斷方法。本發(fā)明的第一方面涉及用于多核CPU的故障診斷系統(tǒng),所述多核CPU具有安裝于其中的多個CPU核,所述CPU核被配置成從SMP (對稱多處理)模式切換成AMP (非對稱多處理)模式,所述系統(tǒng)包括負荷預測裝置,用于預測所述多核CPU的處理負荷;模式切換裝置,用于在所述處理負荷小于閾值時將至少一個所述CPU核切換成AMP模式;以及故障診斷裝置,用于對已經被切換成AMP模式的所述CPU核進行故障診斷。在根據第一方面的故障診斷系統(tǒng)中,所述負荷預測裝置對所述多核CPU在所述故障診斷裝置執(zhí)行故障診斷所需的時間段內的處理負荷進行預測。另外,在根據第一方面的故障診斷系統(tǒng)中,所述負荷預測裝置建立在如下時間點開始的時間段,所述時間點是要被切換成AMP模式的所述CPU核執(zhí)行的任務結束的時間 點。另外,根據第一方面的故障診斷系統(tǒng)還可以包括第一數據總線,專用于在SMP模式下的所述CPU核;第二數據總線,專用于在AMP模式下的所述CPU核;以及數據控制裝置,用于把在SMP模式下的所述CPU核連接至所述第一數據總線,把在AMP模式下的所述CPU核連接至所述第二數據總線。。另外,在根據第一方面的故障診斷系統(tǒng)中,所述數據控制裝置具有分別連接至所述多個CPU核的多個復用器單元;并且所述模式切換裝置將連接至已被切換成AMP模式的所述CPU核的所述復用器單元的連接目的地從所述第一數據總線切換為所述第二數據總線。另外,在根據第一方面的故障診斷系統(tǒng)中,述故障診斷裝置將用于故障診斷的測試數據的處理結果與已經預先存儲的期望值進行比較,并且根據所述處理結果和所述期望值是否一致來對已被切換成AMP模式的所述CPU核執(zhí)行故障診斷。另外,根據第一方面的故障診斷系統(tǒng)還可以包括存儲所述測試數據和所述期望值的外部存儲器,其中,所述故障診斷裝置經由所述第二數據總線讀取所述測試數據和所述期望值。另外,在根據第一方面的故障診斷系統(tǒng)中,將所述測試數據的所述處理結果與所述期望值之間的比較結果存儲在所述外部存儲器中。另外,在根據第一方面的故障診斷系統(tǒng)中,所述數據控制裝置存儲所述測試數據和所述期望值。另外,在根據第一方面的故障診斷系統(tǒng)中,當所述故障診斷裝置檢測到所述CPU核的故障時,所述CPU核被從所述多核CPU斷開,并且僅向未被診斷為已發(fā)生故障的其余CPU核分配任務。另外,在根據第一方面的故障診斷系統(tǒng)中,處理負荷的所述閾值被設置為如下的值,所述值使得當切換成AMP模式的所述CPU核經受故障診斷時處在SMP模式下的所述CPU核中的標準處理的處理能力不降低。另外,在根據第一方面的故障診斷系統(tǒng)中,所述標準處理是要求實時執(zhí)行能力的處理。另外,根據第一方面的故障診斷系統(tǒng)還可以包括用于將已進行故障診斷的時間作為信息來存儲的存儲裝置,其中在從最后一次故障診斷起經過的時間超過預定時間的情況下再次執(zhí)行故障診斷。。
根據本發(fā)明第二方面的一種用于車輛的ECU包括根據第一方面的故障診斷系統(tǒng);導航裝置;視頻輸出裝置;以及音頻輸出裝置。。本發(fā)明的第三方面涉及一種用于多核CPU的故障診斷方法,該多核CPU具有安裝于其中的多個CPU核,所述CPU核被配置成從SMP模式切換成AMP模式,所述方法包括預測所述多核CPU的處理負荷;在所述處理負荷小于閾值時將至少一個所述CPU核切換成AMP模式;以及對已經被切換成AMP模式的所述CPU核進行故障診斷。本發(fā)明可以提供一種可以從多個CPU核中確定其中已經出現異常的CPU核而不影響標準處理的執(zhí)行速度的故障診斷系統(tǒng)以及一種用于車輛的ECU和一種故障診斷方法。
通過如下參照附圖對示例實施例的說明,本發(fā)明的前述和/或更多目的、特征和優(yōu)點將變得明顯,附圖中,相似的符號用來代表相似的單元,其中圖I是示意地圖示根據本發(fā)明第一實施例的微計算機的故障診斷的示例圖;圖2圖示了根據本發(fā)明第一和第二實施例的帶有多核CPU的微計算機的框圖的例子;圖3圖示了根據本發(fā)明第一和第二實施例的ECU的系統(tǒng)層的例子;圖4圖示了根據本發(fā)明第二實施例的數據控制單元的配置圖的例子;圖5圖示了根據本發(fā)明第二實施例的OS提供的功能塊的例子;圖6A和6B示意地圖示了根據本發(fā)明第二實施例的負荷預測的例子;圖7示出了緊接在根據本發(fā)明第二實施例的模式切換單元已經向模式控制單元輸出控制信號之后的數據控制單元;圖8說明當根據本發(fā)明第二實施例的CPU核0讀取故障診斷測試數據和期望值時的數據流;圖9圖示了在根據本發(fā)明第二實施例的CPU核0已經執(zhí)行故障診斷測試數據之后的數據流;圖10示出了在完成根據本發(fā)明第二實施例的診斷處理時的數據控制單元;圖IlA和圖IlB是圖示了如下過程的流程圖的例子,在該過程中根據本發(fā)明第二實施例的微計算機對各CPU核執(zhí)行故障診斷;圖12示出了根據本發(fā)明第三實施例的微計算機的框圖的例子,該微計算機具有安裝于其中的具有四個CPU核0至3的多核CPU ;圖13是根據本發(fā)明第四實施例的微計算機的框圖的例子,該微計算機中在數據控制單元中設置有外部存儲器;并且圖14是根據有關技術進行自診斷的處理器的框圖。
具體實施例方式下文將參照
本發(fā)明的實施例。首先將說明第一實施例。圖I是示意地圖示了根據本發(fā)明第一實施例的微計算機100的故障診斷的示例圖。圖2圖示了根據本發(fā)明第一和第二實施例的帶有多核CPU的微計算機的框圖的例子。圖3圖示了根據本發(fā)明第一和第二實施例的ECU的系統(tǒng)布局例子。微計算機100具有CPU核0和CPU核I (如圖2中所示,在未區(qū)分CPU核0和CPU核I的情況下,這稱為CPU核11,而由CPU核0和CPU核I構成的一個系統(tǒng)稱為多核CPU 13)。安裝于微計算機100中的OS 21可以使CPU核0和CPU核I各自在SMP (對稱多處理)與AMP (不對稱多處理)處理模式(下文將SMP處理模式和AMP處理模式分別稱為“SMP模式”和“AMP模式”)之間切換。因此,動態(tài)地(進行故障診斷時暫時)將OS 21和CPU核11從SMP模式切換成BMP處理模式,而不是完全按照BMP處理,從而提高了處理效率。SMP模式一般是如下處理模式,在該處理模式中一個OS 21具有CPU核O、CPU核I和一個存儲器,并且OS 21向處理負荷小的CPU核11動態(tài)分配任務。因此,在任務與CPU核11之間無聯(lián)系,并且從OS 21的觀點來看,各CPU核是等同的。AMP模式一般是如下處理模式,在該處理模式中預先確定向CPU核11分配的任務。在這一模式中,即使某個CPU核11的處理負荷小,除非作為執(zhí)行目標的任務是已經向處理負荷小的CPU核11分配的任務,這一 CPU核11仍然可以不執(zhí)行作為執(zhí)行目標的任務。另外,BMP模式是如下處理模式,在該處理模式中一個OS 21向特定的CPU核分配特定任務而向其余CPU核動態(tài)分配其它任務。參照圖I,CPU核0和CPU核I起初以SMP模式執(zhí)行標準處理(圖I中的“ I ”)。標準處理是根據車輛駕駛員進行的操作、車輛的行駛狀態(tài)或者車輛狀態(tài),隨時要求CPU核11執(zhí)行的控制或者數據處理(換言之,除了檢測故障的任務以外的處理)。標準處理通常由多個不同任務構成。在CPU核0的故障診斷時間,OS 21在將CPU核0從SMP模式切換成AMP模式之前進行檢查以確認即使在只有CPU核I執(zhí)行標準處理時也不會對標準處理的執(zhí)行速度產生影響(處理負荷在閾值以下)(圖I中的“II”)。因而即使在CPU核0處于AMP模式并且在進行故障診斷時僅執(zhí)行故障診斷任務時,仍可保證執(zhí)行標準處理而無延遲。OS 21將作為故障診斷目標的CPU核(在這一情況下為CPU核0) 11從SMP模式切換為AMP模式。CPU核0在AMP模式下執(zhí)行的特定任務是故障診斷任務。CPU核0在AMP模式下不執(zhí)行除了故障診斷任務之外的任何任務。對照而言,CPU核I保持于SMP模式并且CPU核I繼續(xù)標準處理(圖I中的“III”)。一旦CPU核0完成故障診斷任務,OS 21將CPU核0從AMP模式切換成SMP模式(圖I中的“IV”)。另外,在CPU核I的故障診斷時間,OS 21以與圖I中所示CPU核0的故障診斷類似的過程將CPU核I從SMP模式切換成AMP模式并且向CPU核I分配故障診斷任務。通過安裝可以在SMP模式與AMP模式之間切換的多核CPU 13和OS 21并且在切換之前檢查處理負荷是否可以由一個CPU核11進行標準處理而無延遲,可以進行多核CPU13的各CPU核11的個別故障診斷而不影響標準處理的執(zhí)行速度。下文將說明第二實施例。在圖2中,微計算機100具有多核CPU 13、數據存取控制器14、存儲器存取控制器15和數據總線16、17。多核CPU13具有CPU核0、CPU核I和數據控制單元12。數據存取控制器14連接到外部存儲器18,并且存儲器存取控制器15連接到外部存儲器19。多核CPU 13可以安裝于LSI而不是微計算機100。安裝于車輛的電子控制單元(E⑶)200可以由微計算機100、外部存儲器18和外部存儲器19實現。例如在多媒體系統(tǒng)的ECU 200中,基于全球定位系統(tǒng)(GPS)接收器檢測到的位置信息在顯示設備上顯示道路地圖并且搜索通向目的地的路線這樣的處理、電視或者、相機圖像的視頻處理和無線接收裝置或者CD播放器的語音處理是標準處理的例子。在引擎ECU中,標準處理是充分控制燃料注入量、燃料注入時序、進氣閥和排氣閥的開-關時序、風門打開程度和點火器的點火時序這樣的處理。另外,還可以安裝車體ECU、剎車ECU和各種ECU來用于輔助駕駛。在該實施例中在不影響這些種類的標準處理的執(zhí)行速度的情況下執(zhí)行故障診斷。因此也可以將需要實時執(zhí)行能力的處理定義為標準處理。數據控制單元12控制CPU核0與CPU核I之間的CPU通信。在各周期時間通知CPU核11的狀態(tài)的功能和經由共享存儲器在CPU核0與CPU核I之間發(fā)送和接收數據的功能可以視為CPU通信的典型功能。例如在兩個CPU核11執(zhí)行相同應用并且使用相互獲得的處理結果的情況下,數據控制單元12檢查處理結果的兼容性。另外,CPU核11可以通過使用預備的應用編程接口(API)并且向數據控制單元12發(fā)送請求來從CPU核0中斷CPU
核I (并且反之亦然)。數據總線17是CPU核11在標準處理期間使用的總線。數據總線16是CPU核11在故障診斷期間使用的總線。在故障診斷時間,數據控制單元12使CPU核11經由數據總線16存取外部存儲器18。例如由于CPU核I即使在CPU核0執(zhí)行故障診斷任務時仍然進行標準處理,所以通過單獨提供在標準處理期間使用的數據總線17和在故障診斷期間使用的數據總線16,可以增加數據總線17在故障診斷期間的總線負荷并且防止對標準處理的執(zhí)行速度的任何影響。數據存取控制器14在故障診斷期間響應于來自數據控制單元12的請求來存取外部存儲器18并且讀取下述測試數據和期望值。外部存儲器19是容量相對較大的存儲器設備(例如硬盤驅動器(HDD)或者固態(tài)盤(SSD)),其存儲應用程序、OS 21和標準處理所必需的文件。數據控制單元12經由數據總線17向存儲器存取控制器15發(fā)送執(zhí)行標準處理的CPU核11的存取請求。各種智能設備(IP, Intellectual Property)(圖中未示出)連接到總線10。這些IP是集成電路、比如電源電路、I/O接口電路、控制區(qū)域網絡(CAN)通信電路和馬達控制電路。在微計算機100安裝于多媒體系統(tǒng)的ECU 200的情況下,比如無線電調諧器、電視調諧器、AV解碼器、聲音識別/合成電路、藍牙電路和觸摸屏傳感器電路這樣的IC是IP。音頻系統(tǒng)的IP經由放大器連接到揚聲器,而視頻系統(tǒng)的IP連接到顯示器。圖3示出了 E⑶200的系統(tǒng)層的例子。因此圖3示出了如下系統(tǒng)層,在這些系統(tǒng)層中微計算機100安裝于多媒體系統(tǒng)的E⑶200。與多核CPU13最近的層是OS 21這一層。OS 21這一層實際上包括如下中間件,該中間件提供用于控制激勵器的設備驅動器和虛擬執(zhí)行環(huán)境并且執(zhí)行特定計算(比如協(xié)議處理或者數據壓縮和展開)。在該實施例中,OS 21控制將CPU核11從SMP模式切換成AMP模式的操作。在OS 21上方的層是用戶接口(UI)控制應用22和功能邏輯23的層。n控制應用22控制由多媒體系統(tǒng)的E⑶200顯示在顯示器上的W。如圖中所示,最上層是用于各種功能的n應用29,這些功能控制n以使它可為用戶所見。用于導航的人機接口(HMI)應用25生成與導航功能有關的UI或者生成將由用戶操作的菜單的UI。視頻系統(tǒng)的HMI應用26生成用于視頻如DVD或者電視的UI或者生成由用戶用來操作這一功能的菜單的UI。音頻系統(tǒng)的HMI應用27生成與音頻功能如無線電或者電視聲音有關的UI或者生成將由用戶操作的菜單的UI。與車輛有關的HMI應用程序28例如生成用于讓用戶操作與使用位置信息的車輛控制有關的功能的n或者用于顯示警報信號或者消息的n。n控制應用22可以控制由各功能的n應用29生成的n的顯示。例如可以進行控制,使得僅預定功能的UI被顯示在顯示器的整個屏幕上,或者所有UI被劃分并顯示在顯示器上,或者僅預定功能的UI不顯示。HMI-API 24(位于UI控制應用22與用于各功能的UI應用29之間的層)代表用于讓各功能的UI應用29調用功能邏輯23的API。例如當用戶輸入針對預定UI應用29的操作時,被操作的UI應用29調用與針對HMI-API 24的操作對應的API,并且HMI-API 24根據調用的API來調用預定功能邏輯23。功能邏輯23是導航邏輯23a、視頻系統(tǒng)邏輯23b、音頻系統(tǒng)邏輯23c和與車輛有關的邏輯23d。該邏輯用于ECU 200的各功能。當這樣分離用于各功能的n邏輯29和功能邏輯23時,增加了開發(fā)的自由度。例如可以僅改變UI而使功能邏輯23不變。下文將參照圖4描述數據控制單元12。數據控制單元12具有三個復用器 (MUX) 41,42和45、模式控制單元43、CPU數字編號寄存器44和比較塊46。CPU核0連接到MUX 41,而CPU核I連接到MUX 42。MUX 41連接到數據存取控制器14和存儲器存取控制器15這兩者。MUX42也連接到數據存取控制器14和存儲器存取控制器15。模式控制單元43 連接到 MUX 41、MUX 42、CPU 核 0 和 CPU 核 I。MUX 45 連接到 CPU 核 0 和 CPU 核 I。MUX45也連接到比較塊46。模式控制單元43切換CPU核0和CPU核I的處理模式。因此,模式控制單元43將CPU核0切換成AMP模式而使CPU核I處于SMP模式,以及將CPU核I切換成AMP模式而使CPU核0處于SMO模式。具體而言,例如向要被切換成AMP模式的CPU核11輸入“High”信號。在這種情況下接通/關斷已經被切換成AMP模式的CPU核11的內部開關以形成針對故障診斷而設計的連接線或者邏輯電路。例如通過使得可以獲得若干塊中的故障診斷的處理結果,用于故障診斷的邏輯電路可以在短時間內完成故障診斷。另外,已經被切換成AMP模式的CPU核0將處理結果輸出至MUX45,并且已經被切換成AMP模式切換的CPU核I將處理結果輸出至MUX45。因此,在MUX 45中輸入僅來自處于AMP模式的CPU核11的處理結果。模式控制單元43也切換MUX 41和42的處理模式。在SMP模式下,MUX 41和42向存儲器存取控制器15輸出存取請求,在AMP模式下向數據存取控制器14輸出存取請求。因而在將CPU核0切換成AMP模式的情況下,模式控制單元43將MUX 41切換成AMP模式而使MUX 42處于SMP模式。具體而言,模式控制單元43例如向MUX 41輸入“High”信號。類似地,在將CPU核I切換成AMP模式的情況下,模式控制單元43將MUX 42切換成AMP模式而使MUX 41處于SMP模式。具體而言,模式控制單元43例如向MUX 42輸入“High”信號。MUX 45在比較塊46中輸入從處于AMP模式的CPU核11輸入的處理結果。比較塊46具有存儲處理結果的處理結果存儲單元46a、比較器46b和期望值存儲單元46c。處理結果存儲單元46a存儲處理結果。期望值存儲單元46c存儲處理結果的期望值38、也就是正確處理結果。期望值38預先存儲于外部存儲器18中,并且當OS 21將任一 CPU核11切換成AMP模式時,OS 21將期望值從外部存儲器18讀取至存儲單元46c。處理結果存儲單元46a和期望值存儲單元46c例如由動態(tài)隨機存取存儲器(DRAM)或者寄存器構成并且未必在物理上分離。比較器46b比較處理結果存儲單元46a的處理結果與期望值存儲單元46c的期望值38并且確定結果是否匹配。例如當結果匹配時輸出“High”信號。也可以確定處理結果 和期望值38中的任一個是否在預定閾值以下。確定結果是故障診斷結果。CPU數字編號寄存器44是存儲CPU核的標識號的寄存器。例如模式控制單元43在CPU編號寄存器44中存儲接下來經受故障診斷的CPU核11的標識號。每當完成一個(PU核11的故障診斷時,模式控制單元43遞增CPU編號寄存器44。另外,當達到安裝于多核CPU 13中的CPU核11的“個數-I”時,CPU編號寄存器44的存儲內容返回至“O”。因而多個CPU核可以均等地經受故障診斷而不是對同一 CPU核11進行故障診斷。圖5示出了 OS 21提供的功能塊的例子。圖6A和6B示出了示意地圖示負荷預測的說明圖的例子。OS 21 (例如調度器)在查詢CPU核11的處理負荷時向CPU核11分配任務A至C。在圖5中,在CPU核0的任務提示31中登記任務B、A,而在CPU核I的任務提示32中登記任務A至C。因此可以通過查詢任務提示31、31來預測將來的處理負荷。負荷預測單元34存儲如下表33,在該表中任務與每秒百萬指令(MIPS)值關聯(lián)。例如任務A是每秒發(fā)出1,000, 000個指令的程序并且具有比其它任務B和C的處理負荷更高的處理負荷。CPU核11的處理負荷往往對于MIPS值高的任務而言更高。負荷預測單元34讀取在CPU核11中執(zhí)行的任務和任務提示31、32的任務,從表33讀取MIPS值并且預測多核CPU 13的處理負荷。圖6A示出了如下例子,該例子圖示對CPU核11的處理負荷隨時間的改變的預測。在組合型系統(tǒng)中,已經預先已知應用,因此可以針對應用的各任務指定MIPS 值。到負載要被預測的某一將來時刻的時間(下文將從預測負荷的當前時刻到將來時刻的間隔稱為“時段”)是至少執(zhí)行故障診斷任務所需的時間。故障診斷任務對應于測試數據37,或者測試數據37的執(zhí)行。這是因為,已經執(zhí)行故障診斷任務的CPU核11返回至標準處理,不會對標準處理的執(zhí)行速度產生任何影響,除非多核CPU 13的處理負荷在故障診斷任務執(zhí)行完成之前超過CPU核11的處理負荷。最長時段約為I秒,并且考慮到諸如從SMP模式向AMP模式切換和讀取測試數據37等開銷,可以認為該時段會在小于I秒到若干秒之內完成。如圖6A中所示,考慮到各任務的完成時間,當CPU核11的處理負荷重疊時,可以獲得對多核CPU 13的處理負荷進行預測的圖6B。就典型OS 21而言,靜態(tài)監(jiān)視這樣的處理負荷,并且執(zhí)行處理使得優(yōu)先向任務提示31、32為空的CPU核11分配任務。因此優(yōu)選的是負荷預測不對標準處理產生影響。雖然可以將負荷處理預測認為是多核CPU 13的額外處理(因為可以通過從正在執(zhí)行的任務和任務提示31、32中指定任務并且匹配MIPS值來進行負荷預測),但是處理負荷預測沒有變?yōu)閷藴侍幚碛杏绊懙呢摵?。如圖6B中所示,當獲得多核CPU 13的處理負荷與時間之間的關系時,負荷預測單元34確定所述時段的處理負荷是否超過在SMP模式下連續(xù)執(zhí)行標準處理的CPU核11 (這里為CPU核I)的處理能力。由于CPU核11的處理能力已知并且也可以由MIPS值表示,所以可以容易地進行比較。如圖6B中所示,確定時段A的處理負荷超過CPU核I的處理負荷,但是未確定時段B的處理負荷超過CPU核I的處理負荷。因此從時段A結束的時間點t2 (下文稱為“可以開始故障診斷的時間”)執(zhí)行CPU核0的故障診斷任務。與預測處理負荷進行比較的CPU核11的處理能力是所有其余的未接受故障診斷的CPU核11的處理能力的總和。因此例如在CPU核11的數目為四的情況下,與預測處理負荷比較的對象是三個CPU核11的處理能力的總和。然而在存在已經向任務提示31、32分配的任務的情況下,假設在已經執(zhí)行所有這些任務之后進行故障診斷。在這一情況下,假設所述時段始于作為故障診斷對象的CPU核11的任務完成的時間。因此,必須預測的處理負荷也變成該時段的處理負荷。因此如圖6A中所示,在CPU核0經受故障診斷的情況下,在CPU核0中完成任務提示31的最終任務A的時間變成該時段的起點。具體而言,有可能的是每當該“時段”從起點起流逝時可以開始故障診斷。負荷預測單元34預測其它CPU核I從完成任務A的時間起執(zhí)行的任務C和后續(xù)任務的處理負荷(在圖6B中示出了任務C,但是CPU核I在CPU核0結束任務A時執(zhí)行的任務根據CPU核I對各任務的執(zhí)行時間而改變)。當曾經分配給任務提示31的任務可能被再次分配時,負荷預測單元34可以找出 多核CPU 13的處理負荷未超過處理能力的時段并且可以在該時段內把已經分配給CPU核0的任務重新分配給并非故障診斷目標的CPU核I。當負荷預測單元34找到有可能進行故障診斷的時段時,負荷預測單元向模式切換單元35通知可以開始故障診斷的時間。當達到可以開始故障診斷的時間時,模式切換單元35 (實際上為CPU核11)向數據控制單元12的模式控制單元43輸出控制信號。因而如上文所述,數據控制單元12切換CPU核11和MUX 41,42的處理模式以便執(zhí)行故障診斷任務。被模式控制單元43切換成AMP模式的CPU核11執(zhí)行故障診斷任務。因此CPU核11通過執(zhí)行故障診斷任務來實現故障診斷單元36。圖7至圖10圖示了數據控制單元12在CPU核11被切換成AMP模式時的操作的一個例子。圖7示出了緊接在模式切換單元35已經向模式控制單元43輸出控制信號之后的數據控制單元12。在圖7中對與圖4中所示部件相同的部件賦予相同附圖標記并且省略其說明。當模式控制單元43查詢CPU編號寄存器44并且檢測到“0”時,模式控制單元將CPU核(^PMUX 41切換為AMP模式。因而MUX 41可以訪問數據存取控制器14,而CPU核0可以訪問MUX 45。圖8圖示了當CPU核0讀出故障診斷測試數據37和期望值38時的數據流。已經被切換成AMP模式的CPU核0請求數據存取控制器14經由MUX 41從外部存儲器18讀取測試數據37和期望值38。因而CPU核0高速緩存測試數據37并且向寄存器中設置測試數據37的地址。另外,數據存取控制器14把期望值38直接從外部存儲器18讀入至比較塊46 (直接存儲器存取(DMA))。測試數據37可以是如下的適當數據,該數據可以被輸入到微計算機100中以便使故障診斷單元36能夠將與標準處理的指令相同的指令用于故障診斷。因此,當期望值38 (該期望值是在正常CPU核11中執(zhí)行測試數據37時獲得的處理結果)已知時可以使用任何測試數據37。優(yōu)選的是測試數據37限于最少的必需數據,因為可以使故障診斷所必需的時間(前述“時段”)最少。包括指令的測試數據37也可以用于故障診斷。在這種情況下測試數據37是用于確定CPU核11是否正常的指令(操作碼)和最少必需參數(操作數)。使用如下簡單指令和參數,這些指令和參數由CPU核11的算術和邏輯單元(ALU)或用于擴展功能的運算電路處理。圖9圖示了在CPU核0已經執(zhí)行故障診斷的測試數據37之后的數據流。當執(zhí)行測試數據37時,CPU核0向MUX 45輸出處理結果。MUX 45把處理結果存儲在比較塊46的處理結果存儲單元中。在這種情況下,可以將期望值38和處理結果輸入到比較器46b中,并且比較器46b比較二者并且保持比較結果,或者將結果輸出到數據存取控制器14。數據存取控制器14將比較結果存儲在外部存儲器18中。可以僅在處理結果不同于期望值時向外部存儲器18輸出在比較期望值38和處理結果時獲得的比較結果。在這種情況下可以縮短故障診斷任務的執(zhí)行時間。CPU核I在故障診斷期間執(zhí)行標準處理,但是由于數據控制單元12經由數據總線17訪問外部存儲器19或者IP,所以故障診斷引起的總線負荷增加并不影響標準處理的執(zhí)行速度。圖10示出了在故障診斷完成時的數據控制單元12。模式控制單元43緊接在CPU核0的處理模式已被切換之后遞增CPU編號寄存器44的值。因此,CPU編號寄存器44的值變成“I”。因而CPU核I執(zhí)行下一故障診斷的任務(測試數據37)。圖IlA和圖IlB示出了如下的流程圖的示例,該流程示微計算機100針對各CPU核進行的故障診斷過程。在圖IlA和圖IlB中,將CPU核0當作故障診斷對象。無需這樣頻繁地執(zhí)行故障診斷。例如,即使可能由于時間導致老化而出現故障,以約每天一次的頻率進行故障診斷也足夠了。出于這一目的,OS 21存儲與最近的故障診斷有關的日期-時間信息。例如,對于每次點火接通,在參照日期-時間信息確定在最近一次故障診斷之后經過了等于或長于故障診斷時間間隔(例如一天)的時間時,開始圖IlA和圖IlB中所示處理。當以一天為故障診斷時間間隔時,可以在車輛運轉時以至少一天間隔進行故障診斷。日期-時間信息與CPU核關聯(lián)地存儲于外部存儲器18中,并且可以針對各個CPU核設置診斷間隔。當接通點火并且激活OS 21時,OS 21從外部存儲器18讀取日期-時間信息和故障診斷時間間隔(Sio)并且把在當前時間點以前已經經過的時間與故障診斷時間間隔(S20)進行比較。在經過的時間超過故障診斷時間間隔的情況下(在步驟S20中為是),使負荷預測單元34預測處理負荷(S30)。負荷預測單元34根據CPU編號寄存器44的值指定作為故障診斷目標的CPU核O。負荷預測單元34預測向CPU核0的任務提示31分配的最近任務的結束時間并且預測從結束時間起的各時段的處理負荷(S30)。然后針對各時段確定處理負荷是否超過CPU核I的處理能力(S40)。在處理負荷超過CPU核I的處理能力的情況下(在S40中為否),可能影響標準處理的執(zhí)行速度。因此,模式切換單元35不將CPU核0切換為AMP模式。因而OS 21在SMP模式下在所有CPU核0與CPU核I之間分散負荷(S50)并且繼續(xù)標準處理(S60)。負荷預測單元34等待直到經過預測處理負荷的時段(S70)并且一旦該時段經過就返回至步驟S30并且再次預測負荷。在步驟S40中,當一個CPU核I的處理能力大于處理負荷時(在S40中為是),模式切換單元35根據CPU編號寄存器44的值指定作為故障診斷目標的CPU核0 (S80)。模式切換單元35從負荷預測單元34接收可以開始故障診斷的時間。模式切換單元35等待,直至可以開始故障診斷的時間(S90)。作為故障診斷目標的CPU核0仍然以SMP模式執(zhí)行已經分配至任務提示31的任務,直至能夠開始故障診斷的時間(S100)。可以在能夠開始故障診斷的時間之前立即再次預測處理負荷。當能夠開始故障診斷的時間到來時,模式切換單元35請求數據控制單元12切換CPU核0的處理模式(SllO)。因而數據控制單元12的模式控制單元43將CPU核0從SMP模式切換成AMP模式,并且將MUX 41的處理模式從SMP模式切換成AMP模式。
在這種情況下,已經被切換成AMP模式的CPU核0開始故障診斷(S120)。如上文所述,CPU核0從外部存儲器18讀取測試數據37并且實現故障診斷單元36,并且數據存取控制器14把期望值從外部存儲器18讀入至期望值存儲單元46c。故障診斷單元36確定診斷是否已經完成(S130)。例如,可以基于是否在測試數據37完全結束之前已經執(zhí)行診斷,或者比較器46b是否已經輸出比較結果來確定診斷是否已經完成。在尚未完成故障診斷的情況下(在S130中為否),故障診斷單元36繼續(xù)在AMP模式下執(zhí)行測試數據37(S140)。在完成故障診斷的情況下(在S130中為是),故障診斷單元36請求模式切換單元35切換處理模式。因而模式切換單元35請求數據控制單元12切換CPU核0的處理模式,并且數據控制單元12的模式控制單元43把CPU核0從AMP模式切換成SMP模式,并且把MUX 41的處理模式從AMP模式切換成SMP模式(S150)。另外,模式控制單元43在存在診斷尚未完成的CPU核時遞增CPU編號寄存器44的值(S160)。因而在CPU編號寄存器44中將接下來要經受故障診斷的CPU核的編號設置成 “ I ”。因此完成一個CPU核0的故障診斷。因此處理流程返回至步驟S30并且OS 21執(zhí)行CPU核I的故障診斷。例如,對于每次點火接通,可以通過將上述過程重復與多核CPU 13中的CPU核的數目相等的次數來執(zhí)行所有CPU核11的故障診斷。在檢測到CPU核11的故障的情況下,多核CPU 13將該CPU核11從多核CPU 13斷開并且標準處理可以僅由其余CPU核11執(zhí)行。在這種情況下,雖然處理能力已經減少,但是可以在已經確保標準處理的處理結果之后繼續(xù)標準處理。在這種處理中,優(yōu)選的是建立優(yōu)先級順序高的重要任務并且僅執(zhí)行標準處理任務中的所述建立的任務。這樣,可以實現微計算機100的失效保險模式,提高對微計算機的故障保護。下文將說明使用第一和第二實施例中說明的故障診斷的微計算機100作為第三實施例。圖12示出了微計算機100的框圖的例子,該微計算機具有安裝于其中的具有四個CPU核0至3的多核CPU 13。在圖12中對與圖2中所示部件相同的部件賦予相同的附圖標記并且省略其說明。當兩個CPU核0和I中的一個經歷故障診斷時,向另一個CPU核11施加較大負荷。因此可以縮短預測的處理負荷未超過一個CPU核11的處理能力的時段,并且在這種情況下有時可以不必選取用于故障診斷所需要的時間(對照而言,在存在四個CPU核的情況下,未超過處理能力的時段相對較長,因此故障診斷通常是可能的)。對照而言,即使來自四個CPU核0至3之中的一個CPU核11經歷故障診斷,OS 21仍然分散負荷而三個CPU核11仍然在SMP模式中。因此可以容易檢測到所述時段。因此,該實施例的故障診斷無論CPU核11的數目如何都可以應用于任何多核CPU 13。在多核CPU 13具有四個CPU核11的情況下,如圖12中所示,以兩比特的配置來使用數據控制單元12的CPU編號寄存器44以使其適合于四個CPU核11。另外,在數據控制單元12的數據存取控制器14這一側提供共計四個MUX,并且各MUX連接到相應的CPU核0至3。分別連接MUX 45和CPU核0至3。模式控制單元43交替地將CPU核0至3中的一個和四個MUX中的一個(該MUX對應于所述的CPU核0至3中的一個從SMP模式切換成AMP模式,由此使OS 21能夠執(zhí)行各CPU核11的故障診斷。故障診斷處理類似于圖IlA和圖IlB中所示故障診斷處理,并且可以將步驟SlO至S160重復與CPU核11的數目相等的次數。如果有可能并行進行多個CPU核的故障診斷而不影響標準處理的執(zhí)行速度,則可以并行進行多個CPU核的故障診斷。在圖2中所示配置中,外部存儲器18從外部附接至微計算機100,但外部存儲器 18也可以被設置在微計算機100中。圖13示出了第四實施例的微計算機100的框圖的例子,其中外部存儲器18設置在數據控制單元12中。圖13中,與圖2中所示部件相同的部件被賦予相同的附圖標記并且這里省略其說明。測試數據37可以是相同的而與時間的流逝無關,并且當測試數據37不變時,期望值也可以相同。因此,外部存儲器可以由此并入數據控制單元12中。在這種情況下,數據存取控制器14不必從外部存儲器18讀取測試數據37和期望值,并且可以縮短故障診斷時間。并入數據控制單元12中的外部存儲器18是只讀存儲器(ROM)、隨機存取存儲器(RAM)或電可擦除可編程存儲器(EEPROM)等形式。在并入RAM的情況下,例如,當啟動微計算機100時從外部存儲器19讀取數據并存儲在RAM中。如上文所述,通過僅在可以執(zhí)行標準處理時把作為故障診斷目標的CPU核11從SMP模式切換成AMP模式(不受并非故障診斷目標的CPU核11所阻礙),該實施例的微計算機100可以針對多核CPU 13的各CPU核11個別地進行故障診斷而不影響標準處理。盡管已經參照本發(fā)明的作為舉例的實施方式描述本發(fā)明,但是應當理解本發(fā)明并不限于作為舉例的實施方式或者構造。恰好相反,本發(fā)明意圖覆蓋各種修改和等效布置。此夕卜,盡管在各種示例組合和配置中示出了作為舉例的實施方式的各種單元,但是包括更多、更少或者僅單個單元的其它組合和配置也在本發(fā)明的精神實質和范圍內。
權利要求
1.一種用于多核CPU的故障診斷系統(tǒng),所述多核CPU具有安裝于其中的多個CPU核,所述CPU核被配置成從SMP模式切換成AMP模式,所述系統(tǒng)的特征在于包括 負荷預測裝置,用于預測所述多核CPU的處理負荷; 模式切換裝置,用于在所述處理負荷小于閾值時將至少一個所述CPU核切換成AMP模式;以及 故障診斷裝置,用于對已經被切換成AMP模式的所述CPU核進行故障診斷。
2.根據權利要求I所述的故障診斷系統(tǒng),其中所述負荷預測裝置對所述多核CPU在所述故障診斷裝置執(zhí)行故障診斷所需的時間段內的處理負荷進行預測。
3.根據權利要求2所述的故障診斷系統(tǒng),其中所述負荷預測裝置建立在如下時間點開始的時間段,所述時間點是要被切換成AMP模式的所述CPU核執(zhí)行的任務結束的時間點。
4.根據權利要求I至3中任意一項所述的故障診斷系統(tǒng),還包括 第一數據總線,專用于在SMP模式下的所述CPU核; 第二數據總線,專用于在AMP模式下的所述CPU核;以及 數據控制裝置,用于把在SMP模式下的所述CPU核連接至所述第一數據總線,把在AMP模式下的所述CPU核連接至所述第二數據總線。
5.根據權利要求4所述的故障診斷系統(tǒng),其中 所述數據控制裝置具有分別連接至所述多個CPU核的多個復用器單元;并且 所述模式切換裝置將連接至已被切換成AMP模式的所述CPU核的所述復用器單元的連接目的地從所述第一數據總線切換為所述第二數據總線。
6.根據權利要求4所述的故障診斷系統(tǒng),其中所述故障診斷裝置將用于故障診斷的測試數據的處理結果與已經預先存儲的期望值進行比較,并且根據所述處理結果和所述期望值是否一致來對已被切換成AMP模式的所述CPU核執(zhí)行故障診斷。
7.根據權利要求6所述的故障診斷系統(tǒng),還包括存儲所述測試數據和所述期望值的外部存儲器,其中, 所述故障診斷裝置經由所述第二數據總線讀取所述測試數據和所述期望值。
8.根據權利要求7所述的故障診斷系統(tǒng),其中將所述測試數據的所述處理結果與所述期望值之間的比較結果存儲在所述外部存儲器中。
9.根據權利要求6所述的故障診斷系統(tǒng),其中所述數據控制裝置存儲所述測試數據和所述期望值。
10.根據權利要求I至9中任意一項所述的故障診斷系統(tǒng),其中當所述故障診斷裝置檢測到所述CPU核的故障時,所述CPU核被從所述多核CPU斷開,并且僅向未被診斷為已發(fā)生故障的其余CPU核分配任務。
11.根據權利要求I至10中任意一項所述的故障診斷系統(tǒng),其中處理負荷的所述閾值被設置為如下的值,所述值使得當切換成AMP模式的所述CPU核經受故障診斷時處在SMP模式下的所述CPU核中的標準處理的處理能力不降低。
12.根據權利要求11所述的故障診斷系統(tǒng),其中所述標準處理是要求實時執(zhí)行能力的處理。
13.根據權利要求I至12中任意一項所述的故障診斷系統(tǒng),還包括用于將已進行故障診斷的時間作為信息來存儲的存儲裝置,其中在從最后一次故障診斷起經過的時間超過預定時間的情況下再次執(zhí)行故障診斷。
14.一種用于車輛的電子控制單元,其特征在于包括 根據權利要求I至13中任意一項所述的故障診斷系統(tǒng); 導航裝置; 視頻輸出裝置;以及 音頻輸出裝置。
15.一種用于多核CPU的故障診斷方法,所述多核CPU具有安裝于其中的多個CPU核,所述CPU核被配置成從SMP模式切換成AMP模式,所述方法包括 預測所述多核CPU的處理負荷; 在所述處理負荷小于閾值時將至少一個所述CPU核切換成AMP模式;以及 對已經被切換成AMP模式的所述CPU核進行故障診斷。
全文摘要
一種用于多核CPU的故障診斷系統(tǒng)(100),該多核CPU具有安裝于其中的多個CPU核(11),該多核CPU被配置成從對稱多處理模式切換成非對稱多處理模式切換,該系統(tǒng)包括負荷預測裝置,用于預測所述多核CPU的處理負荷;模式切換裝置,用于在所述處理負荷小于閾值時將至少一個所述CPU核(11)切換成非對稱多處理模式;以及故障診斷裝置,用于對已經被切換成非對稱多處理模式的所述CPU核進行故障診斷。
文檔編號G06F11/07GK102741818SQ201080012408
公開日2012年10月17日 申請日期2010年2月2日 優(yōu)先權日2009年3月17日
發(fā)明者繁原英一郎 申請人:豐田自動車株式會社