本發(fā)明涉及汽車、列車、升降機(jī)等運(yùn)輸機(jī)器等的所需功能多種多樣的系統(tǒng)、組合了多種硬件、多種軟件的大規(guī)模系統(tǒng)中的使用多核心處理器來控制系統(tǒng)的車輛控制裝置。
背景技術(shù):
在汽車、升降機(jī)、建筑機(jī)械等中使用了由所謂嵌入式軟件來對控制對象進(jìn)行控制的嵌入式控制裝置。關(guān)于嵌入式軟件,作為其優(yōu)點(diǎn),與現(xiàn)有的由機(jī)械機(jī)構(gòu)和電路實(shí)現(xiàn)的方式相比,例如能夠?qū)崿F(xiàn)更靈活且先進(jìn)的控制。
這樣的嵌入式控制裝置,例如在車輛的控制裝置中,以減少車載空間和降低制造成本為目的,正在進(jìn)行將以往搭載在不同的ecu(electroniccontrolunit:電子控制單元)中的功能集中至1個(gè)ecu的ecu統(tǒng)合。另外,在進(jìn)行ecu統(tǒng)合時(shí),考慮到需要在同一ecu中處理多個(gè)功能,因此開始對車輛控制裝置應(yīng)用多核心處理器。
多核心處理器不僅能夠使用多個(gè)核心并行地實(shí)施不同的處理,而且在一部分核心故障的情況下,能夠用其他核心代替處理對該核心分配的應(yīng)用軟件。由此,已知能夠?qū)崿F(xiàn)系統(tǒng)的冗余化,例如在專利文獻(xiàn)1中有記載。
另外,在多核心處理器的一部分核心中檢測出故障的情況下,通過僅使被檢測出故障的核心重新起動(dòng),能夠不使系統(tǒng)整體的功能停止就使故障的核心恢復(fù)。作為實(shí)現(xiàn)這一點(diǎn)的技術(shù),已知按多核心處理器的每個(gè)核心動(dòng)態(tài)變更運(yùn)轉(zhuǎn)/非運(yùn)轉(zhuǎn)的技術(shù),例如在專利文獻(xiàn)2中有記載。
但是,因?yàn)槎嗪诵奶幚砥髡w的處理能力存在上限,所以在一部分核心重新起動(dòng)時(shí),難以執(zhí)行最初的所有應(yīng)用軟件。因此,要求被檢測出故障的核心盡快地重新起動(dòng),執(zhí)行原本的應(yīng)用軟件。
現(xiàn)有技術(shù)文獻(xiàn)
專利文獻(xiàn)
專利文獻(xiàn)1:日本特開2007-154050號(hào)公報(bào)
專利文獻(xiàn)2:日本特開2006-260568號(hào)公報(bào)
技術(shù)實(shí)現(xiàn)要素:
發(fā)明要解決的問題
圖2是按多核心微型計(jì)算機(jī)的每個(gè)核心分配車載功能的例子。圖2的核心1中運(yùn)行adas(advanceddriverassistancesystems:高級駕駛輔助系統(tǒng))功能,核心2中運(yùn)行電動(dòng)制動(dòng)系統(tǒng),核心n中運(yùn)行通信功能。這樣,通過用多核心處理器進(jìn)行ecu的統(tǒng)合,能夠用一個(gè)ecu來處理以往用不同的ecu處理的功能。
圖3示出了在多核心微型計(jì)算機(jī)的核心1中檢測出故障的情況下的核心重新起動(dòng)的流程。圖3(a)是在核心1中檢測出異常的圖。圖3(b)是根據(jù)專利文獻(xiàn)1,用核心2代替處理核心1中實(shí)施的adas功能的圖。圖3(c)是根據(jù)專利文獻(xiàn)2,僅使核心1重新起動(dòng)的圖。
這樣,通過使用多核心處理器,例如在一部分核心中檢測出異常的情況下,也能夠不使系統(tǒng)整體的功能停止而是繼續(xù)工作,并恢復(fù)為原本的狀態(tài)。
圖3(a)、(b)、(c)中,因?yàn)橛煤诵?運(yùn)行核心1的adas功能,所以核心2的處理量大幅增加。因此,在核心中檢測出異常的情況下,要求核心1盡可能快速地重新起動(dòng),恢復(fù)為原本的狀態(tài)。但是,上述現(xiàn)有技術(shù)中沒有進(jìn)行關(guān)于核心的重新起動(dòng)處理的研究。
根據(jù)以上所述,本發(fā)明的目的在于提供一種車輛控制裝置,其在多核心處理器中的一部分核心中檢測出異常的情況下,能夠縮短被檢測出異常的核心重新起動(dòng)、再次執(zhí)行應(yīng)用軟件所需的時(shí)間。
用于解決問題的技術(shù)手段
為了達(dá)成上述目的,本發(fā)明根據(jù)起動(dòng)全部處理器核心的情況和重新起動(dòng)全部處理器核心中的一部分的情況,具有不同的診斷處理的執(zhí)行方法,在僅使一部分處理器核心重新起動(dòng)的情況下,執(zhí)行重新起動(dòng)一部分處理器核心的情況下的診斷處理方法,由此縮短了一部分處理器核心重新起動(dòng)所需的時(shí)間。特別是,在一部分處理器核心重新起動(dòng)時(shí)的診斷處理中,其他處理器核心在重新起動(dòng)的處理器核心執(zhí)行軟件診斷之前執(zhí)行軟件診斷,由此縮短了重新起動(dòng)所需的時(shí)間。
發(fā)明效果
根據(jù)本發(fā)明,在僅使多核心處理器的一部分核心重新起動(dòng)的情況下,能夠縮短核心重新起動(dòng)并執(zhí)行應(yīng)用軟件所需的時(shí)間。
附圖說明
圖1是本發(fā)明的一個(gè)實(shí)施方式中的車輛控制裝置的系統(tǒng)結(jié)構(gòu)圖。
圖2是表示使用了多核心微型計(jì)算機(jī)的功能的并行處理的具體例的圖。
圖3是表示使用現(xiàn)有技術(shù)的情況下的、從在多核心微型計(jì)算機(jī)中檢測出異常到核心重新起動(dòng)的具體處理流程的圖。
圖4是表示從微型計(jì)算機(jī)起動(dòng)到應(yīng)用軟件開始的一般例的流程圖。
圖5是表示提案方法中的從處理器核心起動(dòng)到應(yīng)用程序開始的具體例的流程圖。
圖6是表示提案方法中的一部分核心重新起動(dòng)時(shí)軟件診斷的具體例的圖。
圖7是表示提案方法中的存儲(chǔ)區(qū)域的軟件診斷進(jìn)度的具體例的圖。
圖8是表示提案方法中的多個(gè)核心協(xié)作的情況下的、存儲(chǔ)區(qū)域的軟件診斷進(jìn)度的具體例的圖。
具體實(shí)施方式
以下參考附圖說明本發(fā)明的一個(gè)實(shí)施方式。
圖1是表示本發(fā)明的一個(gè)實(shí)施方式的車輛控制裝置的系統(tǒng)結(jié)構(gòu)的系統(tǒng)結(jié)構(gòu)圖。車輛控制裝置1具有診斷單元101、診斷處理方法變更部102、電源ic103、多核心處理器104、存儲(chǔ)區(qū)域105、診斷處理日志106。
此處,多核心處理器104具有多個(gè)核心10401、10402、10403。
此處,診斷單元101具有全部核心起動(dòng)時(shí)使用的診斷單元即全部核心起動(dòng)時(shí)用診斷單元10101、和一部分核心重新起動(dòng)時(shí)使用的診斷單元即部分核心重新起動(dòng)時(shí)用診斷單元10102。診斷處理方法變更部102在處理器核心起動(dòng)時(shí),在全部核心起動(dòng)的情況下選擇全部核心起動(dòng)時(shí)用診斷單元10101,在一部分核心重新起動(dòng)的情況下選擇部分核心重新起動(dòng)時(shí)用診斷單元10102。由此,縮短一部分核心重新起動(dòng)并執(zhí)行應(yīng)用軟件所需的時(shí)間。
圖4是表示從微型計(jì)算機(jī)起動(dòng)到應(yīng)用程序開始的一般例的流程圖。在步驟s1020101中處理開始。在步驟s1020102中微型計(jì)算機(jī)起動(dòng)。在步驟s1020103中執(zhí)行bist(built-inself-test:內(nèi)建自測試)。在步驟s1020104中執(zhí)行使用軟件的診斷。在步驟s1020105中開始應(yīng)用程序,在步驟s1020106中結(jié)束處理。
如圖4所示,一般而言在微型計(jì)算機(jī)起動(dòng)的情況下,首先執(zhí)行電路(硬件)中嵌入的bist,之后執(zhí)行使用軟件的診斷。
此處,步驟s1020104中記載的軟件診斷,例如指的是使用軟件的以存儲(chǔ)區(qū)域105為對象的ram診斷。具體而言,對存儲(chǔ)區(qū)域105寫入固定值,判斷寫入后讀取的結(jié)果是否等于最初的固定值。由此,能夠診斷存儲(chǔ)區(qū)域105是否正常工作。此外,軟件診斷也有使用校驗(yàn)的rom診斷和用故障注入進(jìn)行的ecc(errorcheckandcorrect:錯(cuò)誤檢查和糾正)功能的診斷等。
圖5是表示提案方法中的從處理器核心起動(dòng)到應(yīng)用程序開始的具體例的流程圖。在步驟s1020201中處理開始。在步驟s1020202中核心起動(dòng)。在步驟s1020203中,判斷是否僅起動(dòng)一部分處理器核心?!笆恰钡那闆r即僅起動(dòng)一部分處理器核心的情況下,前進(jìn)至步驟s1020204,執(zhí)行部分核心重新起動(dòng)時(shí)用診斷單元10101。在步驟s1020204中執(zhí)行部分核心起動(dòng)時(shí)用的bist。在步驟s1020205中執(zhí)行部分核心重新起動(dòng)時(shí)用的軟件診斷。在步驟s1020206中開始應(yīng)用軟件,在步驟s1020207中結(jié)束處理。另一方面,步驟s1020203中為“否”的情況即全部處理器核心起動(dòng)的情況下,前進(jìn)至步驟s1020208,執(zhí)行全部核心起動(dòng)時(shí)用診斷單元10102。在步驟s1020208中執(zhí)行全部核心起動(dòng)時(shí)用bist。在步驟s1020209中執(zhí)行全部核心起動(dòng)時(shí)用的軟件診斷。在步驟s1020206中開始應(yīng)用軟件,在步驟s1020207中結(jié)束處理。
圖6示出了使用提出技術(shù)的情況下的一部分核心重新起動(dòng)時(shí)的軟件診斷的具體例。圖6中,示出了在核心1中檢測出異常且運(yùn)行部分核心重新起動(dòng)時(shí)用診斷單元10101的狀態(tài)。提案技術(shù)中,在檢測出異常的核心1執(zhí)行bist時(shí),核心n先執(zhí)行軟件診斷,對診斷對象范圍即核心1用存儲(chǔ)區(qū)域進(jìn)行診斷,由此能夠縮短核心1開始應(yīng)用軟件前的時(shí)間。
圖7示出了對存儲(chǔ)區(qū)域10502進(jìn)行軟件診斷的情況下的進(jìn)度管理。如圖7所示,作為軟件診斷的進(jìn)度的管理方法,對診斷結(jié)束的范圍的地址值進(jìn)行記錄管理,由此在診斷途中變更作業(yè)的情況下,也能夠從之前的場所起繼續(xù)軟件診斷。
圖8示出了多個(gè)核心協(xié)作的情況下的存儲(chǔ)區(qū)域10503的軟件診斷進(jìn)度。如圖8所示,例如用2個(gè)核心進(jìn)行診斷的情況下,一個(gè)核心從低地址值起開始診斷,另一個(gè)核心從高地址值起開始診斷,由此能夠進(jìn)一步縮短診斷所需的時(shí)間。
符號(hào)說明
1:車輛控制裝置,101:診斷單元,10101:全部核心起動(dòng)時(shí)用診斷單元,10102:部分核心重新起動(dòng)時(shí)用診斷單元,102:診斷處理方法變更部,103:電源ic,104:多核心處理器,10401、10402、10403:處理器核心,105、10501、10502、10503:存儲(chǔ)區(qū)域,106:診斷處理日志。