本技術(shù)涉及自動駕駛技術(shù),尤其涉及一種內(nèi)置自檢測試方法和片上系統(tǒng)。
背景技術(shù):
1、針對自動駕駛技術(shù)的潛在故障度量(latent?fault?metric,lfm)的診斷覆蓋率,自動駕駛系統(tǒng)(autonomous?driving?system,ads)需要在車輛一個駕駛周期內(nèi),有對應(yīng)的內(nèi)置自檢測試(build?in?self?test,bist)架構(gòu),用以覆蓋測試ads內(nèi)部功能安全性能,達(dá)成系統(tǒng)內(nèi)部lfm的要求。
2、相關(guān)技術(shù)主要采取bist檢測和執(zhí)行邏輯硬化、軟件輔助的策略。被測對象的bist架構(gòu)包括向量加載、執(zhí)行、結(jié)果獲取等基于芯片硬化的邏輯,從而達(dá)到快速自檢目的。通常軟件只需要在上電啟動階段配置相關(guān)的自檢功能和參數(shù),執(zhí)行主要由硬件自動完成,軟件獲取最終結(jié)果。
3、但是上述bist全硬化實現(xiàn)技術(shù),隨著自動駕駛功能日益復(fù)雜,對算力要求會更高,從而使系統(tǒng)規(guī)模倍增,不但增加芯片的設(shè)計復(fù)雜度,還會增大芯片的制造成本。
技術(shù)實現(xiàn)思路
1、本技術(shù)提供一種內(nèi)置自檢測試方法和片上系統(tǒng),以提高自檢效率并減少啟動時間,還可以減少對運行態(tài)業(yè)務(wù)和啟動時間的影響分時間。
2、第一方面,本技術(shù)提供一種內(nèi)置自檢測試方法,方法應(yīng)用于車輛上的自動駕駛系統(tǒng)的片上系統(tǒng)soc,soc包括soc內(nèi)置自檢調(diào)度器、soc內(nèi)置自檢執(zhí)行器和soc內(nèi)置自檢結(jié)果收集器;方法包括:當(dāng)soc處于第一過程時,soc內(nèi)置自檢調(diào)度器發(fā)送第一自測啟動命令;soc內(nèi)置自檢執(zhí)行器接收第一自測啟動命令,并根據(jù)第一自測啟動命令獲取第一測試序列,第一測試序列是第一測試序列集中尚未執(zhí)行、且排在最前的測試序列,第一測試序列集包括多個測試序列,第一測試序列集是基于soc自檢對象劃分得到的至少一個測試序列集中的任意一個;soc內(nèi)置自檢執(zhí)行器運行內(nèi)置自檢測試bist以執(zhí)行第一測試序列及第一測試序列集中排在第一測試序列之后的一個或多個測試序列,直到滿足第一自測啟動命令中的結(jié)束條件;soc內(nèi)置自檢結(jié)果收集器根據(jù)soc內(nèi)置自檢執(zhí)行器運行bist的情況獲取測試結(jié)果。
3、本技術(shù)實施例,通過對測試序列區(qū)分邏輯區(qū)(測試序列集),一方面可以在更多的soc過程中運行bist,以提高自檢效率,另一方面,通過邏輯分區(qū)將上電階段的測試序列減少,可以減少啟動時間;而對劃分最小執(zhí)行單元bf的測試序列,可以采取分段、分時執(zhí)行的方式,以減少對運行態(tài)業(yè)務(wù)和啟動時間的影響分時間。
4、soc可以包括4個狀態(tài):工作狀態(tài)(working)、空閑狀態(tài)(idle)、休眠狀態(tài)(suspend)以及關(guān)機(jī)狀態(tài)(shutdown),其中,soc?shutdown是指所有的soc自檢對象都進(jìn)入了空閑且掉電狀態(tài);soc?suspend是指至少有一個soc自檢對象進(jìn)入空閑且掉電狀態(tài),另外至少有一個soc自檢對象沒有進(jìn)入空閑且掉電狀態(tài);soc?idle是指至少有一個soc自檢對象進(jìn)入了業(yè)務(wù)空閑狀態(tài)且關(guān)時鐘、復(fù)位的低功耗狀態(tài);soc?working是指至少有一個soc自檢對象進(jìn)入業(yè)務(wù)運行狀態(tài)。前述soc自檢對象可以包括但不限于soc處理器、soc存儲器、總線等。
5、soc可以在上述4個狀態(tài)之間切換,則可能存在以下6個切換過程(簡稱過程):
6、1、從soc?shutdown向soc?working的切換過程;
7、2、從soc?working向soc?shutdown的切換過程;
8、3、從soc?working向soc?suspend的切換過程;
9、4、從soc?suspend向soc?working的切換過程;
10、5、從soc?working向soc?idle的切換過程;
11、6、從soc?idle向soc?working的切換過程。
12、當(dāng)只劃分得到一個測試序列集時,上述第一過程可以包括soc從工作狀態(tài)向關(guān)機(jī)狀態(tài)的切換過程(即上述2過程),soc從工作狀態(tài)向休眠狀態(tài)的切換過程(即上述3過程)或者soc從工作狀態(tài)向空閑狀態(tài)的切換過程(即上述5過程)。
13、當(dāng)檢測到soc處于上述第一過程時,soc內(nèi)置自檢調(diào)度器即可發(fā)送第一自測啟動命令,以觸發(fā)bist運行。
14、本技術(shù)實施例中,soc內(nèi)置自檢調(diào)度器(即上述ads?system?manager?schedulerb)可以統(tǒng)計并計算整個駕駛周期內(nèi)測試序列執(zhí)行的覆蓋度,并且將上次執(zhí)行結(jié)束時的測試序列的序號(亦稱作向量號)作為初始序號,設(shè)置系統(tǒng)供向量可執(zhí)行的時間,將前述二者通過自測啟動命令傳遞給soc?bist?manager。
15、第一自測啟動命令可以包括第一序號,該第一序號可以是第二測試序列的序號,該第二測試序列是當(dāng)前執(zhí)行的測試序列集(對應(yīng)下文的第一測試序列集)中已執(zhí)行、且序號在第一測試序列之前的測試序列。第一測試序列是當(dāng)前執(zhí)行的測試序列集中尚未執(zhí)行、且序號最靠前的測試序列。如上文所述,測試序列集包括多個測試序列,每個測試序列可以對應(yīng)一個序號,以區(qū)分測試序列。
16、即在即將執(zhí)行的第一測試序列之前最后一個執(zhí)行完的測試序列即為第二測試序列。
17、此外,第一自測啟動命令還包括bist的可運行時間(即上述系統(tǒng)供向量可執(zhí)行的時間)?;蛘?,自測啟動命令還包括測試序列數(shù)量n,n為正整數(shù)。
18、上述兩種情況可以是第一自測啟動命令中用于通知soc內(nèi)置自檢執(zhí)行器(即上述soc?bist?executor)本次bist的結(jié)束條件。前者bist的可運行時間是soc內(nèi)置自檢調(diào)度器統(tǒng)計系統(tǒng)供向量可執(zhí)行的時間,通知soc內(nèi)置自檢執(zhí)行器即將運行bist可以達(dá)到多長時間,一旦時間到了,soc內(nèi)置自檢執(zhí)行器需要即時停止bist;后者測試序列數(shù)量n是soc內(nèi)置自檢調(diào)度器根據(jù)預(yù)先設(shè)置或者系統(tǒng)供向量可執(zhí)行的時間得到的在一次運行bist中可以執(zhí)行多少個測試序列,進(jìn)而將該數(shù)量通知給soc內(nèi)置自檢執(zhí)行器,一旦soc內(nèi)置自檢執(zhí)行器執(zhí)行了n個測試序列,soc內(nèi)置自檢執(zhí)行器需要即時停止bist。
19、第一測試序列是第一測試序列集中尚未執(zhí)行、且排在最前的測試序列,第一測試序列集包括多個測試序列,第一測試序列集是基于soc自檢對象劃分得到的至少一個測試序列集中的任意一個。
20、soc內(nèi)置自檢執(zhí)行器可以根據(jù)預(yù)先設(shè)定確定當(dāng)前soc所處的過程要處理的測試序列集(即上述第一測試序列集)。而后根據(jù)第一測試序列集的處理進(jìn)度確定第一測試序列,即根據(jù)自測啟動命令,將上次執(zhí)行結(jié)束時的測試序列的序號(亦稱作向量號)作為初始序號,并且獲取該初始序號所標(biāo)識的測試序列(即第一測試序列)。
21、soc內(nèi)置自檢執(zhí)行器根據(jù)測試序列的序號順序(可以按序號從大到小的順序,或者按序號從小到大的順序,或者按序號其它順序,對此不做具體限定)從第一測試序列開始,向后逐一執(zhí)行測試序列,直到滿足結(jié)束條件而結(jié)束bist。
22、第一自測啟動命令包括bist的可運行時間的情況,結(jié)束條件包括bist的可運行時間結(jié)束。即,如果soc內(nèi)置自檢調(diào)度器在自測啟動命令中攜帶bist的可運行時間,那么soc內(nèi)置自檢執(zhí)行器停止bist的時刻可以是bist的可運行時間結(jié)束的時刻。
23、第一自測啟動命令包括測試序列數(shù)量n的情況,結(jié)束條件包括運行bist以執(zhí)行完n個測試序列。即,如果soc內(nèi)置自檢調(diào)度器在自測啟動命令中攜帶測試序列數(shù)量n,那么soc內(nèi)置自檢執(zhí)行器停止bist的時刻可以是執(zhí)行完n個測試序列的時刻。
24、需要說明的是,結(jié)束條件還可以包括其他情況,也可以依據(jù)自測啟動命令中包含的信息進(jìn)行設(shè)置,本技術(shù)實施例對此不做具體限定。
25、當(dāng)soc內(nèi)置自檢執(zhí)行器運行完一次bist后,soc內(nèi)置自檢結(jié)果收集器(即上述socbist?result?collector)可以根據(jù)bist的運行情況收集測試結(jié)果。如果測試結(jié)果顯示有錯誤,該錯誤可以區(qū)分軟件錯誤和硬件錯誤,其中硬件錯誤對應(yīng)硬件失效,軟件錯誤對應(yīng)軟件失效。
26、在一種可能的實現(xiàn)方式中,當(dāng)soc處于第二過程時,soc內(nèi)置自檢調(diào)度器發(fā)送第二自測啟動命令;soc內(nèi)置自檢執(zhí)行器接收第二自測啟動命令,并根據(jù)第二自測啟動命令獲取第二測試序列,第二測試序列是第二測試序列集中尚未執(zhí)行、且排在最前的測試序列,第二測試序列集包括多個測試序列,第二測試序列集是至少一個測試序列集中除第一測試序列集外的任意一個;soc內(nèi)置自檢執(zhí)行器運行bist以執(zhí)行第二測試序列及第二測試序列集中排在第二測試序列之后的一個或多個測試序列,直到滿足第二自測啟動命令中的結(jié)束條件;soc內(nèi)置自檢結(jié)果收集器根據(jù)soc內(nèi)置自檢執(zhí)行器運行bist的情況獲取測試結(jié)果。
27、如上文所述,當(dāng)劃分得到兩個測試序列集時,上述第一過程還可以包括soc從關(guān)機(jī)狀態(tài)向工作狀態(tài)的切換過程(即上述1過程),soc從休眠狀態(tài)向工作狀態(tài)的切換過程(即上述4過程)或者soc從空閑狀態(tài)向工作狀態(tài)的切換過程(即上述6過程)。即soc內(nèi)置自檢調(diào)度器可以在1、4或者6過程中,觸發(fā)soc內(nèi)置自檢執(zhí)行器運行bist以執(zhí)行第一測試序列集中的測試序列。
28、與此同時,另外一個測試序列集(即第二測試序列集)可以在第二過程中,由soc內(nèi)置自檢調(diào)度器觸發(fā)soc內(nèi)置自檢執(zhí)行器運行bist以執(zhí)行第二測試序列集中的測試序列。
29、第二過程包括soc從工作狀態(tài)向關(guān)機(jī)狀態(tài)的切換過程(即上述2過程),soc從工作狀態(tài)向休眠狀態(tài)的切換過程(即上述3過程),soc從工作狀態(tài)向空閑狀態(tài)的切換過程(即上述5過程),soc從關(guān)機(jī)狀態(tài)向工作狀態(tài)的切換過程(即上述1過程),soc從休眠狀態(tài)向工作狀態(tài)的切換過程(即上述4過程)或者soc從空閑狀態(tài)向工作狀態(tài)的切換過程(即上述6過程);且第二過程與第一過程不同。
30、在一種可能的實現(xiàn)方式中,當(dāng)soc處于第三過程時,soc內(nèi)置自檢調(diào)度器發(fā)送第三自測啟動命令;soc內(nèi)置自檢執(zhí)行器接收第三自測啟動命令,并根據(jù)第三自測啟動命令獲取第三測試序列,第三測試序列是第三測試序列集中尚未執(zhí)行、且排在最前的測試序列,第三測試序列集包括多個測試序列,第三測試序列集是至少一個測試序列集中除第一測試序列集和第二測試序列集外的任意一個;soc內(nèi)置自檢執(zhí)行器運行bist以執(zhí)行第三測試序列及第三測試序列集中排在第三測試序列之后的一個或多個測試序列,直到滿足第三自測啟動命令中的結(jié)束條件;soc內(nèi)置自檢結(jié)果收集器根據(jù)soc內(nèi)置自檢執(zhí)行器運行bist的情況獲取測試結(jié)果。
31、如上文所述,當(dāng)劃分得到三個測試序列集時,除上述第一過程和第二過程外,soc內(nèi)置自檢調(diào)度器還可以在第三過程中,觸發(fā)soc內(nèi)置自檢執(zhí)行器運行bist以執(zhí)行第三測試序列集中的測試序列。
32、第三過程包括soc從工作狀態(tài)向關(guān)機(jī)狀態(tài)的切換過程(即上述2過程),soc從工作狀態(tài)向休眠狀態(tài)的切換過程(即上述3過程),soc從工作狀態(tài)向空閑狀態(tài)的切換過程(即上述5過程),soc從關(guān)機(jī)狀態(tài)向工作狀態(tài)的切換過程(即上述1過程),soc從休眠狀態(tài)向工作狀態(tài)的切換過程(即上述4過程)或者soc從空閑狀態(tài)向工作狀態(tài)的切換過程(即上述6過程);且第三過程分別與第一過程和第二過程不同。
33、在一種可能的實現(xiàn)方式中,當(dāng)檢測到車輛處于第四過程時,soc內(nèi)置自檢調(diào)度器發(fā)送自測停止命令;soc內(nèi)置自檢執(zhí)行器接收自測停止命令,并根據(jù)自測停止命令停止運行bist。
34、第四過程可以包括車輛發(fā)動,車輛上的自動駕駛業(yè)務(wù)啟動或者車輛上的應(yīng)用程序app發(fā)出激活運行指令。
35、在一種可能的實現(xiàn)方式中,如果測試序列執(zhí)行失敗,soc需要恢復(fù)正常(normal)狀態(tài),soc內(nèi)置自檢執(zhí)行器可以確認(rèn)失敗的測試序列,然后將其記錄到共享內(nèi)存中;如果bist運行失敗,導(dǎo)致soc無法恢復(fù)到normal狀態(tài),此時ads?system?manager?scheduler?a可以從軟件協(xié)助soc內(nèi)置自檢結(jié)果收集器界定是否已經(jīng)發(fā)生了硬件失效。
36、第二方面,本技術(shù)提供一種片上系統(tǒng)soc,包括:一個或多個處理器;存儲器,用于存儲一個或多個程序;當(dāng)所述一個或多個程序被所述一個或多個處理器執(zhí)行,使得所述一個或多個處理器實現(xiàn)如上述第一方面中任一項所述的方法。
37、第三方面,本技術(shù)提供一種計算機(jī)可讀存儲介質(zhì),包括計算機(jī)程序,所述計算機(jī)程序在計算機(jī)上被執(zhí)行時,使得所述計算機(jī)執(zhí)行上述第一方面中任一項所述的方法。
38、第四方面,本技術(shù)提供一種計算機(jī)程序產(chǎn)品,所述計算機(jī)程序產(chǎn)品包括計算機(jī)程序代碼,當(dāng)所述計算機(jī)程序代碼在計算機(jī)上運行時,使得計算機(jī)執(zhí)行上述第一方面中任一項所述的方法。
39、第五方面,本技術(shù)提供一種芯片,包括處理器和存儲器,所述存儲器用于存儲計算機(jī)程序,所述處理器用于調(diào)用并運行所述存儲器中存儲的計算機(jī)程序,以執(zhí)行如上述第一方面中任一項所述的方法。