專利名稱::監(jiān)控設(shè)備的制作方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及一種監(jiān)控設(shè)備。具體但不排他地,本發(fā)明涉及一種適合于在時間觸發(fā)嵌入式系統(tǒng)中檢測任務(wù)超限(overrun)的監(jiān)控設(shè)備。
背景技術(shù):
:嵌入式處理器普遍存在它們形成大量日常物品(汽車、飛機(jī)、醫(yī)療設(shè)備、工廠系統(tǒng)、移動電話、DVD播放器、音樂播放器、微波爐、玩具等)的核心組件。在一些情況下,可以分別針對特定功能來采用多個嵌入式處理器。例如,典型的現(xiàn)代汽車可以包含大約五十個嵌入式處理器。在可預(yù)測行為成為重要考慮的應(yīng)用中(如在汽車系統(tǒng)、航天系統(tǒng)、醫(yī)療系統(tǒng)、工業(yè)系統(tǒng),以及在許多電子產(chǎn)品和大型家用電器中),至關(guān)重要的是使用可靠的系統(tǒng),并且該系統(tǒng)以高度可預(yù)測的方式進(jìn)行操作。出于安全考慮,這很重要,但也是由于可靠設(shè)備在其使用壽命期間可能引起減少的維護(hù)和/或維修成本(并導(dǎo)致用戶的不便)。因此,重要的是,這樣的系統(tǒng)足夠健壯,并且可以快速并容易地檢測到故障,使得可以采取適合的操作。時間觸發(fā)(TT)嵌入式系統(tǒng)是執(zhí)行一組周期性任務(wù)的實(shí)時系統(tǒng)。己提出了各種形式的TT體系結(jié)構(gòu),范圍從具有協(xié)作任務(wù)調(diào)度的最簡單形式的"循環(huán)執(zhí)行式"體系結(jié)構(gòu)到采用搶占的單調(diào)速率的體系結(jié)構(gòu)。特別關(guān)注的是采用協(xié)作任務(wù)調(diào)度的TT系統(tǒng)。這些系統(tǒng)也被稱為"時間驅(qū)動的循環(huán)執(zhí)行式"。采用時間觸發(fā)協(xié)作(TTC)調(diào)度的嵌入式系統(tǒng)能夠具有高度可預(yù)測的行為模式,包括非常低水平的任務(wù)抖動。當(dāng)與TTC實(shí)現(xiàn)方式具有非常低資源要求的事實(shí)相結(jié)合時,該體系結(jié)構(gòu)是對成本敏感/安全相關(guān)應(yīng)用(包括汽車控制)的合適選擇。不幸的是,在一個或多個任務(wù)超出其預(yù)測的"最差情況"執(zhí)行時間(WCET)的情況下,TTC系統(tǒng)的行為會變得不可預(yù)測。這種情況被稱為任務(wù)超限。在硬實(shí)時系統(tǒng)中,任務(wù)超限可能對所采用的系統(tǒng)并可能對用戶產(chǎn)生嚴(yán)重后果。因此,需要系統(tǒng)恢復(fù)機(jī)制,并且,響應(yīng)于對這種時間約束的違反必需立即觸發(fā)該機(jī)制。為了實(shí)現(xiàn)這一點(diǎn),需要連續(xù)監(jiān)控該系統(tǒng)的時間行為。過去數(shù)十年,許多研究集中在對實(shí)時系統(tǒng)的運(yùn)行時間行為的監(jiān)控。所采用的方法可以分為三類,基于硬件的監(jiān)控方法,基于軟件的監(jiān)控方法,混合監(jiān)控方法。這三種方法分別具有其如下所述的優(yōu)點(diǎn)和缺點(diǎn)?;谟布谋O(jiān)控涉及目標(biāo)系統(tǒng)的非侵入式觀察,但是通常昂貴而復(fù)雜。與目標(biāo)系統(tǒng)分離的監(jiān)控系統(tǒng)需要附加硬件。監(jiān)控系統(tǒng)通常包括連接至目標(biāo)系統(tǒng)并探查來自其總線、存儲器系統(tǒng)和輸入/輸出信道的信號的復(fù)雜體系結(jié)構(gòu)。該監(jiān)控系統(tǒng)然后使用該信息來模仿目標(biāo)系統(tǒng)并從而發(fā)現(xiàn)其狀態(tài)。然而,該方法需要復(fù)雜的硬件,特別是對目標(biāo)系統(tǒng)定制的硬件。此外,由于現(xiàn)代微控制器中組件的小型化和集成,很難對來自一些總線或存儲器端口的信號進(jìn)行測量。此外,微控制器具有有限數(shù)目的管腳,這可能使以上方法變得不可行。另一方面,基于軟件的監(jiān)控價格低廉、簡單并靈活。在目標(biāo)系統(tǒng)的軟件程序中感興趣的點(diǎn)處插入探測碼(也被稱為軟件傳感器)。軟件傳感器被設(shè)計為在那些感興趣的點(diǎn)處對目標(biāo)系統(tǒng)的狀態(tài)迸行記錄。然而,該布置將產(chǎn)生對目標(biāo)系統(tǒng)的運(yùn)行時間行為的某種程度的干擾,這是由于軟件傳感器不僅與目標(biāo)系統(tǒng)共享資源,而且不可避免地增加了系統(tǒng)的計算復(fù)雜度。巳開發(fā)了許多不同的技術(shù),以嘗試最小化這種所謂的"探針效應(yīng)"對目標(biāo)系統(tǒng)行為的影響。一種方法是構(gòu)造監(jiān)控系統(tǒng)作為目標(biāo)系統(tǒng)的永久部分。這避免了必須移除軟件探針而導(dǎo)致系統(tǒng)行為畸變。另一種方法提出,僅當(dāng)不能對數(shù)據(jù)值進(jìn)行重構(gòu)時才存儲數(shù)據(jù)值。此外,提出使用內(nèi)嵌軟件傳感器來代替作為函數(shù)調(diào)用的傳感器。這兩種技術(shù)可以優(yōu)化軟件監(jiān)控方法的空間和時間方面。然而,軟件監(jiān)控的探針效應(yīng)由于其侵入屬性而不能被完全消除?;旌媳O(jiān)控方法使用軟件和硬件監(jiān)控的組合,并減輕了兩種方法的某些缺點(diǎn)。在這種方法中,軟件監(jiān)控系統(tǒng)捕獲目標(biāo)系統(tǒng)中感興趣的事件,并將這些事件傳遞至外部專用硬件設(shè)備,以進(jìn)一步進(jìn)行分析。因此,這種方法可以最小化由軟件監(jiān)控方法引起的探針效應(yīng),并可以減少與目標(biāo)系統(tǒng)的硬件連接的需要。然而,仍需要特別定制的硬件平臺及其附帶的成本。因此,本發(fā)明的目的是提供一種可以改善上述問題中的一些或全部的解決方案。
發(fā)明內(nèi)容根據(jù)本發(fā)明的第一方面,提供了一種用于處理器的監(jiān)控設(shè)備,包括用于對處理器的功耗進(jìn)行監(jiān)控的裝置;以及用于對所述功耗進(jìn)行分析以檢測處理器的異常操作的裝置。根據(jù)本發(fā)明的第二方面,提供了一種用于監(jiān)控處理器的方法,包括以下步驟對處理器的功耗進(jìn)行監(jiān)控;以及對所述功耗進(jìn)行分析以檢測處理器的異常操作。在優(yōu)選實(shí)施例中,分析步驟可以包括將釆樣功耗曲線與參考或期望曲線進(jìn)行比較??梢皂憫?yīng)于比較的失配來產(chǎn)生觸發(fā),從而指示異常操作。該觸發(fā)可以用于提醒用戶或重新啟動系統(tǒng)的一部分或全部。從處理器的角度,計算機(jī)程序僅是指令序列。處理器通過向其不同邏輯門集合施加或移除電荷來執(zhí)行不同指令。因此,處理器所消耗的能量將取決于正在執(zhí)行的指令??赡?但也可能性非常小)不同的指令集將消耗相同量的能量,因此可能在正在執(zhí)行計算機(jī)程序時,處理器的功耗將隨時間而變化。即使特定指令確實(shí)消耗相同量的能量,也可能通過將實(shí)際功耗與系統(tǒng)正確操作時期望的功耗進(jìn)行比較來確定處理器是否正確工作。相應(yīng)地,本發(fā)明使得能夠簡單地通過觀察實(shí)際功耗并將實(shí)際功耗與期望的功耗進(jìn)行比較來檢測故障。該比較可以針6對絕對值,更一般地,可以針對功耗隨時間的模式。與傳統(tǒng)的基于硬件的監(jiān)控方法相比較,本發(fā)明由于其不需要對目標(biāo)系統(tǒng)進(jìn)行模仿或?qū)Ω鱾€信號的狀態(tài)進(jìn)行采樣而實(shí)現(xiàn)起來更經(jīng)濟(jì)而且簡單。然而,本發(fā)明確實(shí)保留了基于硬件的監(jiān)控系統(tǒng)的非侵入屬性,從而不會導(dǎo)致對目標(biāo)系統(tǒng)的干擾(如由基于軟件的系統(tǒng)的探針效應(yīng)引起的干擾)。因此,取代對目標(biāo)系統(tǒng)的內(nèi)部信號的測量,本發(fā)明利用處理器的功耗來被動地提取系統(tǒng)的時間狀態(tài)。本發(fā)明的優(yōu)點(diǎn)在于,提供了一種用于系統(tǒng)中故障的快速檢測的直接技術(shù)。此外,本發(fā)明可以在不影響目標(biāo)系統(tǒng)的性能的能提下用來監(jiān)控實(shí)時行為。由于不需要改變目標(biāo)處理器,根據(jù)本發(fā)明的單一監(jiān)控設(shè)備可以與多種目標(biāo)系統(tǒng)兼容以便監(jiān)控其功耗。本發(fā)明的監(jiān)控設(shè)備還包括用于向用戶提醒異常操作的裝置。附加或備選地,該設(shè)備還可以包括由于檢測到異常操作而停止處理器、復(fù)位處理器或發(fā)起系統(tǒng)恢復(fù)操作的裝置。本發(fā)明特別適用于監(jiān)控時間觸發(fā)的系統(tǒng),這是由于這些系統(tǒng)通常涉及要由處理器執(zhí)行的周期性任務(wù),從而處理器的功耗也可能是周期性的。如所期望的,這允許在系統(tǒng)的功耗不是周期性時簡單地檢測到故障。更具體地,本發(fā)明的實(shí)施例可以被配置為與時間觸發(fā)協(xié)作(TTC)處理器一起使用,其中,所有任務(wù)被配置為在預(yù)定時鐘周期(時鐘周期)間隔內(nèi)運(yùn)行直到完成為止,并且處理器被配置為在下個時鐘周期之前返回至空閑模式。典型地,在這種類型的系統(tǒng)中,通過周期性(即,在每個時鐘周期上)觸發(fā)的中斷服務(wù)例程(ISR)來發(fā)起任務(wù)。ISR針對每個任務(wù)更新定時信息,并執(zhí)行在該時鐘周期間隔內(nèi)應(yīng)運(yùn)行的所有任務(wù)。每個任務(wù)被配置為在應(yīng)發(fā)起運(yùn)行的下個任務(wù)之前運(yùn)行直到其完成為止。可以在相同時鐘周期間隔中運(yùn)行的所有任務(wù)被配置為在時鐘周期間隔結(jié)束之前完成,使得可以將處理器置于空閑模式以等待下一個ISR。相應(yīng)地,在本發(fā)明的該實(shí)施例中,當(dāng)處理器處于空閑模式并沒有任務(wù)正在運(yùn)行或進(jìn)行更新時,處理器的功耗應(yīng)當(dāng)周期性地為零(或至少為最小值)。如果功耗不是周期性地處于這樣的最小水平,則處理器沒有正確工作(即,任務(wù)可能已超過其WCET,導(dǎo)致時鐘周期超限)。監(jiān)控設(shè)備可以被配置為檢測這樣的問題并相應(yīng)地進(jìn)行操作。這樣,TTC系統(tǒng)的處理器的功耗可以用于提取其定時行為。因此,本發(fā)明提供了一種可以用來檢測TTC嵌入式系統(tǒng)中任務(wù)超限的簡單的非侵入式技術(shù)。這種超限的檢測是至關(guān)重要的,使得可以實(shí)現(xiàn)系統(tǒng)恢復(fù)機(jī)制。在本發(fā)明的實(shí)施例中,可以對由處理器上一個或多個外圍組件所消耗的功率進(jìn)行監(jiān)控,例如,1/0端口或如ADC轉(zhuǎn)換器的片上組件。本發(fā)明的實(shí)施例還可以被配置用于在包括任務(wù)搶占的系統(tǒng)中使用。由于本發(fā)明在監(jiān)控處理器中的任務(wù)調(diào)度中特別有利,從而其可以被認(rèn)為是非侵入式調(diào)度代理(NISA)。隨時間變化的處理器功耗可以表示為P(t一I(t)XV(t),其中,P是由處理器消耗的功率,I是流過處理器的電流,V是處理器兩端的電位差,以上均是在時刻t處測量的。在本發(fā)明的實(shí)施例中,如果在任何時刻t,V的變化是可忽略的,則V可以被認(rèn)為是常數(shù)。因此,I(t)可以用來指示處理器的功耗,并用來提取目標(biāo)系統(tǒng)的時間行為。根據(jù)上述內(nèi)容,在本發(fā)明的特定實(shí)施例中,用于對處理器的功耗進(jìn)行監(jiān)控的裝置可以包括對數(shù)值已知的電阻器(R)兩端的電位差(V)進(jìn)行測量,該電阻器與處理器的功率輸入串聯(lián)。然后,根據(jù)歐姆定律(I=V/R)來計算流過處理器的電流(1)。因此,隨著時間的變化,I的變化提供了對處理器功耗變化的指示。如果這種變化不是期望的,則處理器可能呈現(xiàn)異常行為。在系統(tǒng)幵發(fā)期間,監(jiān)控設(shè)備可以用作調(diào)試工具,但還對監(jiān)控實(shí)時系統(tǒng)非常有用。更具體地,本發(fā)明在系統(tǒng)開發(fā)/調(diào)試期間是有用的,在系統(tǒng)開發(fā)/調(diào)試期間,本發(fā)明將提供有用的機(jī)制(使用在試驗臺上或使用在現(xiàn)場中),以確保系統(tǒng)正確操作(并且,具體地,關(guān)于任務(wù)的最差情況執(zhí)行8時間的假設(shè)是正確的)?,F(xiàn)在將參照附圖對本發(fā)明的特定實(shí)施例進(jìn)行描述,在附圖中圖1示出了TTC調(diào)度器的操作;圖2示出了具有添加至所有任務(wù)執(zhí)行時間的0.7ms時間延遲的本發(fā)明實(shí)施例的實(shí)驗測試結(jié)果;圖3示出了具有添加至所有任務(wù)執(zhí)行時間的0.8ms時間延遲的本發(fā)明實(shí)施例的實(shí)驗測試結(jié)果;圖4示出了具有添加至所有任務(wù)執(zhí)行時間的0.9ms時間延遲的本發(fā)明實(shí)施例的實(shí)驗測試結(jié)果;圖5示出了具有隨機(jī)添加至任務(wù)3的執(zhí)行時間的0.6ms時間延遲的本發(fā)明實(shí)施例的實(shí)驗測試結(jié)果;圖6示出了具有隨機(jī)添加至任務(wù)3的執(zhí)行時間的0.8ms時間延遲的本發(fā)明實(shí)施例的實(shí)驗測試結(jié)果;以及圖7示出了本發(fā)明實(shí)施例中采用的信號調(diào)節(jié)模塊的示意圖。具體實(shí)施例方式本發(fā)明提供一種用于被動監(jiān)控處理器以檢測異常行為的設(shè)備和方法。在本發(fā)明的特定實(shí)施例中,目標(biāo)處理器包括TTC系統(tǒng)。在TTC系統(tǒng)中,任務(wù)在所調(diào)度的其處理時間或期限內(nèi)是周期性或單次執(zhí)行的。這樣地任務(wù)是非搶占的,意味著一旦開始它們就運(yùn)行直至完成。這種類型的系統(tǒng)可以在不同體系結(jié)構(gòu)中實(shí)現(xiàn),如超循環(huán)體系結(jié)構(gòu)或基于定時器的體系結(jié)構(gòu)。在如下述本發(fā)明實(shí)施例中所采用的基于定時器的體系結(jié)構(gòu)中,周期性(典型地,在每個時鐘周期間隔中)觸發(fā)中斷服務(wù)例程(ISR),以更新所有任務(wù)的定時信息(即,倒計時至它們應(yīng)運(yùn)行的時刻)。ISR還在該特定時鐘周期間隔中執(zhí)行應(yīng)運(yùn)行的任務(wù)。只要涉及這種嵌入式系統(tǒng)的功耗,在任務(wù)完成其在每個時鐘周期間隔中的執(zhí)行之后,將系統(tǒng)設(shè)置為空閑狀態(tài)并等待下一ISR發(fā)生。以下示出了這種簡單的TTC-ISR調(diào)度器的一些代碼段。在該特定示例中,前臺處理中的"Update"函數(shù)是ISR。如上所述,調(diào)度器返回至后臺處理,以在完成ISR的執(zhí)行之后將系統(tǒng)設(shè)置為空閑狀態(tài)。后臺處理前臺處理while(l)Go—To—Sleep();voidUpdate(void)時鐘周期—G++;switch(時鐘周期—G)case1:Task_A();breakscase2:Task一B();break;case3:Task一C();時鐘周期G=0;10ms定時器將任務(wù)完成期限設(shè)置為小于時鐘周期間隔,使得可以在下個ISR運(yùn)行之前將調(diào)度器置于空閑模式。在多于一個任務(wù)在時鐘周期間隔內(nèi)運(yùn)行的情況下,還可以將任務(wù)執(zhí)行的總持續(xù)時間設(shè)置為小于時鐘周期間隔,即,其組合的完成期限在時鐘周期間隔結(jié)束之前。在圖1中示出了以上TTC調(diào)度器的正常操作。調(diào)度器在開始操作時啟動定時器。該定時器用于在每個時鐘周期間隔開始處觸發(fā)ISR("Update"函數(shù))10。如上所述,ISR的職責(zé)是對系統(tǒng)任務(wù)數(shù)組中每個任務(wù)的與時間相關(guān)的變量進(jìn)行更新。它還對準(zhǔn)備用于ISR的中斷標(biāo)記進(jìn)行復(fù)位。在"Update"IO函數(shù)完成之后,通過名為"Dispatch"12的函數(shù)來執(zhí)行應(yīng)運(yùn)行的任務(wù)。如果沒有任務(wù)被調(diào)度執(zhí)行或當(dāng)調(diào)度的任務(wù)16已完成其執(zhí)行時,"Dispatch"12函數(shù)調(diào)用"Sleep"14函數(shù),以將系統(tǒng)設(shè)置為空閑狀態(tài)。在空閑狀態(tài)中,所有外圍設(shè)備仍可操作;但是處理器的活動停止。因此,處理器的功耗顯著降低至最低水平。當(dāng)下個時鐘周期間隔發(fā)生時,ISR喚醒處理器,使其功耗快速增加。然后,調(diào)度器繼續(xù)下個循環(huán)的操作。在一些情況下,例如,當(dāng)任務(wù)被調(diào)度為在時鐘周期間隔內(nèi)執(zhí)行但在其期限之前未完成其執(zhí)行時,任務(wù)將繼續(xù)運(yùn)行,直到完成其執(zhí)行。如果這樣的任務(wù)執(zhí)行超出其時鐘周期間隔,則ISR將不能完成,從而在下個時鐘周期到期時不能中斷運(yùn)行的任務(wù)。由于處理器在這種情況下連續(xù)運(yùn)行,其功耗將不會下降至最低水平。因此,本發(fā)明的監(jiān)控設(shè)備將檢測到系統(tǒng)的功耗并非如所期望的那樣是周期性的,因此可能發(fā)生任務(wù)超限。根據(jù)以上技術(shù),可以對處理器的功耗進(jìn)行監(jiān)控,以反應(yīng)支持定時器中斷和空閑模式的任何TTC嵌入式系統(tǒng)中的時間行為。相應(yīng)地,本發(fā)明適合于檢測這種系統(tǒng)中的任務(wù)超限。為了評估本發(fā)明的方法,申請人建立了如下所述的實(shí)驗平臺。該平臺由目標(biāo)系統(tǒng)和根據(jù)本發(fā)明實(shí)施例的監(jiān)控設(shè)備組成。隨時間變化的處理器功耗可以表示為P(t"I(t)XV(t),其中,P是處理器所消耗的功率,I是流過處理器的電流,V是處理器兩端的電位差,上述均在時刻t處測量。在該特定設(shè)置中,確定在任何時刻t,V的變化不明顯,從而V被認(rèn)為是常數(shù)。因此,可以使用I(t)來指示處理器的功耗,并提取目標(biāo)系統(tǒng)的時間行為。根據(jù)上述內(nèi)容,以與處理器的功率輸入串聯(lián)的方式,將1Q采樣電阻器插入目標(biāo)系統(tǒng)中。因此,通過測量采樣電阻器(R)兩端的電位差(V),并使用歐姆定律ONV/R),可以確定流過處理器的電流(I)。事實(shí)上,由于使用1Q電阻器,在任何時刻t,I(t)的值簡單地等于電阻器兩端的電位差V的值。目標(biāo)系統(tǒng)包括安裝有PhilipsLPC210632位微控制器的AshlingEVAB7評估板,以及TTC系統(tǒng)。LPC2106微控制器包含ARM7TDMI-S處理器和一組外圍設(shè)備,如fC串行接口和Watchdog定時器。該LPC2106微控制器還支持空閑模式以停止處理器,以及允許處理器以從10MHz至60MHz頻率操作的片上鎖相環(huán)(PPL)。AshlingEVAB7評估板向微控制器提供兩個分離的電源提供給處理器1.8V電源和提供給I/0的3.3V電源。在所述特定實(shí)施例中,對提供給處理器的1.8V電源進(jìn)行監(jiān)控。然而,在其他實(shí)施例中,可以對I/0端口或如ADC轉(zhuǎn)換器的片上組件所消耗的功率進(jìn)行監(jiān)控。在這種情況下,所監(jiān)控的信號不那么純凈,可能需要進(jìn)一步處理,以使得能夠提取處關(guān)于系統(tǒng)操作(即,"空閑時間")的信息。監(jiān)控系統(tǒng)包括NationalInstruments的NIPCI-6035E數(shù)據(jù)獲取(DAQ)卡和使用LabVIEW8實(shí)現(xiàn)的軟件監(jiān)控程序。DAQ卡能夠以16比特分辨率對模擬信號進(jìn)行高達(dá)200KS/s的采樣。該DAQ卡通過NationalInstruments的CL-68LP連接塊連接至采樣電阻器,以對模擬功率信息進(jìn)行采樣。監(jiān)控程序采用預(yù)定圖形界面(DAQ助手)來配置DAQ卡并與DAQ卡進(jìn)行通信。將DAQ卡所獲得的數(shù)據(jù)采樣通過DAQ助手發(fā)送至監(jiān)控程序。該監(jiān)控程序順序地以圖形方式顯示原始數(shù)據(jù)、將原始數(shù)據(jù)存儲在數(shù)據(jù)文件中,相對于用戶輸入(如時鐘周期間隔的持續(xù)時間、釆樣率、以及針對每個任務(wù)的WCET)來對原始數(shù)據(jù)進(jìn)行分析,并產(chǎn)生和存儲分析報告。根據(jù)由用戶輸入的采樣率和時鐘周期間隔的持續(xù)時間,監(jiān)控程序確定要在時鐘周期間隔內(nèi)取得的采樣數(shù)目。注意,同樣由用戶輸入的預(yù)設(shè)邊界值用于與數(shù)據(jù)采樣進(jìn)行比較,以確定目標(biāo)系統(tǒng)是正在運(yùn)行(即,值大于或等于邊界)還是正在空閑(即,值小于邊界)。監(jiān)控程序通過對時鐘周期間隔內(nèi)小于邊界值的采樣數(shù)目進(jìn)行計數(shù),來評估時鐘周期間隔內(nèi)系統(tǒng)的空閑時間?;谠摽臻e時間,該程序能夠容易地確定任務(wù)超過所調(diào)度的其處理時間的限度或超過其最差情況執(zhí)行時間(WCET)。然而,空閑時間的精度取決于采樣率的頻率。相應(yīng)地,必須將用于本方法的采樣率設(shè)置為適當(dāng)?shù)乃?,以允許將空閑時間確定在所需精度之內(nèi)。注意,本實(shí)施例中的監(jiān)控系統(tǒng)應(yīng)當(dāng)在目標(biāo)系統(tǒng)之前啟動。這是由于監(jiān)控系統(tǒng)中的分析器假定在目標(biāo)系統(tǒng)的調(diào)度器啟動之前獲得第一個12到達(dá)的數(shù)據(jù)采樣。為了實(shí)現(xiàn)這一點(diǎn),監(jiān)控系統(tǒng)被配置為發(fā)送信號以觸發(fā)目標(biāo)系統(tǒng)在監(jiān)控系統(tǒng)本身啟動之后隨即啟動。通過在實(shí)驗平臺上以兩種不同的實(shí)驗來執(zhí)行若干測試,對該方法進(jìn)行評估。該實(shí)驗集中關(guān)注對該方法識別任務(wù)是否超過所調(diào)度的其處理時間的限度或超過其WCET的能力進(jìn)行測試。在描述實(shí)驗之前,考慮目標(biāo)系統(tǒng)和監(jiān)控系統(tǒng)的設(shè)置。在監(jiān)控系統(tǒng)中,將采樣率調(diào)整為200KS/s(即,200,000采樣每秒),該采樣率產(chǎn)生土0.005ms的采樣精度。對前210,000數(shù)據(jù)采樣進(jìn)行記錄。然而,當(dāng)執(zhí)行分析時,濾除在由監(jiān)控系統(tǒng)檢測到的第一個上升沿(指示目標(biāo)系統(tǒng)中第一個時鐘周期間隔的開始)之前收集的數(shù)據(jù)。應(yīng)當(dāng)注意,目標(biāo)系統(tǒng)和監(jiān)控系統(tǒng)的時鐘在檢測到第一上升沿時是同步的。由于每個實(shí)驗的持續(xù)時間較短,目標(biāo)系統(tǒng)和監(jiān)控系統(tǒng)的時鐘漂移是可忽略的。因此,無需對系統(tǒng)進(jìn)行重新同步。根據(jù)經(jīng)驗選擇6mV的邊界值,以確定目標(biāo)系統(tǒng)處于空閑模式還是處于執(zhí)行模式。在目標(biāo)系統(tǒng)中,將處理器設(shè)置為以29.4912MHz進(jìn)行操作。將時鐘周期間隔設(shè)置為lms,使得在每個時鐘周期間隔內(nèi)取200個采樣。在目標(biāo)系統(tǒng)中提供5個不同的任務(wù),如下1.使4個LED閃爍。2.讀取I/0端口。3.讀取實(shí)時時鐘并將當(dāng)前時間存儲至緩沖器。4.使用UART發(fā)送緩沖器中的數(shù)據(jù)。5.使用SPI(串行外圍接口總線)發(fā)送數(shù)據(jù)。每個實(shí)驗包含多個測試集。在每個測試集中,針對任務(wù)使用唯一的參數(shù)值集合,如針對每個任務(wù)使用周期性運(yùn)行對間的值。在進(jìn)行新測試之前,在目標(biāo)系統(tǒng)和監(jiān)控系統(tǒng)中均對這些參數(shù)值進(jìn)行更新。在第一個實(shí)驗中,針對所有任務(wù)選擇70。/。時鐘周期間隔的WECT(即0.7ms)。此外,在特定時鐘周期間隔之后,將固定時間延遲添加至所有任務(wù)該固定延遲具有從0至90%時鐘周期間隔的值。由于添加了固定延遲,任務(wù)可能超過其WCET,但是可能不會超出所調(diào)度的其時鐘周期間隔的限度。多數(shù)設(shè)置。然而,為了使該實(shí)驗更接近實(shí)際情況,在每個測試中,在隨機(jī)時刻將固定量的時間延遲添加至所選任務(wù)。將具有隨機(jī)數(shù)集合的唯一査找表分配至每個測試。每個隨機(jī)數(shù)與特定時鐘周期間隔相關(guān)聯(lián),以確定是否應(yīng)當(dāng)將時間延遲添加至在該時鐘周期間隔中運(yùn)行的所選任務(wù)。第一個實(shí)驗包括480個測試,第二個實(shí)驗包括370個測試。監(jiān)控系統(tǒng)成功地捕獲了測試中超出其WCET或超過所調(diào)度的其處理時間的任務(wù)。以下討論來自這些實(shí)驗的一些結(jié)果。第一個實(shí)驗表l示出了從第一個實(shí)驗選出的測試集之一中針對目標(biāo)系統(tǒng)的任務(wù)信息。<table>tableseeoriginaldocumentpage14</column></row><table>表l:第一個實(shí)驗中的測試集的任務(wù)信息在該測試集中,在時鐘周期989之后,將固定量的時間延遲添加至所有任務(wù)執(zhí)行時間。利用相應(yīng)時間延遲0.7ms、0.8ms和0.9ms,將測試執(zhí)行三次。目標(biāo)系統(tǒng)的行為由監(jiān)控系統(tǒng)捕獲,并在時鐘周期997和時鐘周期1001之間,針對各個時間延遲,在圖2、3和4中以測量電壓對采樣編號的圖形示出。如圖2所示,當(dāng)將0.7ms時間延遲添加至T4、T2和T0的執(zhí)行時間時,T4、T2和T0均超過其WCET但是在其相應(yīng)的時鐘周期間隔內(nèi)完成。如前所述,0.7ms的WCET用于該實(shí)驗中的所有任務(wù)。從圖2中還可以看出,時鐘周期997在第200147個采樣處開始,而非在第199400個采樣處開始(使用每時鐘周期200個采樣來計算)。這是由于由在目標(biāo)系統(tǒng)之前啟動的監(jiān)控系統(tǒng)產(chǎn)生的上述預(yù)采樣濾波。這種情況同樣出現(xiàn)在圖3和4中,這是由于在圖3中時鐘周期997在第200113個采樣處開始,但是在圖4中它在第200788個采樣處開始。如圖3所示,當(dāng)時間延遲增加至0.8ms時,任務(wù)T4和T2仍超過其WCET,但在時鐘周期間隔的期限內(nèi)完成。然而,TO超過其WCET的量使其錯過其期限并超出時鐘周期間隔的限度。圖4示出了當(dāng)時間延遲針對所有任務(wù)增加至0.9ms時監(jiān)控系統(tǒng)的結(jié)果。這導(dǎo)致所有執(zhí)行的任務(wù)T4、T2和T0錯過其期限并超出其時鐘周期間隔的限度。從電壓不能周期性地(即,在每個時鐘周期間隔期間)下降到其邊界電平(6mV)以下這一事實(shí)可以清楚地看出這一點(diǎn)。相應(yīng)地,可以使用本發(fā)明的特定實(shí)施例來檢測這些任務(wù)超限。第二個實(shí)驗表2示出了從第二實(shí)驗中選出的測試集之一中的目標(biāo)系統(tǒng)的任務(wù)信息。<table>tableseeoriginaldocumentpage15</column></row><table>表2—第二個實(shí)驗中測試集的任務(wù)信息在該測試集中,T3是所選任務(wù),其中,可能將固定量的時間延遲添加至T3的執(zhí)行時間。這取決于與T3被調(diào)度在其中運(yùn)行的時鐘周期間隔相關(guān)聯(lián)的隨機(jī)數(shù)。由監(jiān)控系統(tǒng)捕獲的兩個不同的測試結(jié)果(針對0.6ms和0.8ms時間延遲)分別在圖5和6中示出。為了允許進(jìn)行比較。針對每個測試顯示來自三段的結(jié)果,示出了不同的時鐘周期間隔。在每幅圖中,左邊的段示出了時鐘周期15以及時鐘周期16的開始部分,中間段示出了時鐘周期75和76以及時鐘周期77的開始部分,并且右邊的段示出了時鐘周期195和時鐘周期196的開始部分。在圖5中,左邊的段示出了在時鐘周期15中正常執(zhí)行的T3,并沒有違反時間約束。根據(jù)中間段可以確定,在時鐘周期75中存在任務(wù)超限。監(jiān)控系統(tǒng)報告,在該時鐘周期間隔中運(yùn)行有三個任務(wù)(T2、T3和T4)。顯然,這些任務(wù)執(zhí)行的總持續(xù)時間超過了時鐘周期間隔,從而導(dǎo)致時鐘周期超限。右邊的段示出,在時鐘周期195中T3超過其WCET(0.7ms),但是在其期限(即在時鐘周期間隔結(jié)束之前)之前完成其執(zhí)行。在圖6中,如左邊的段所示,T3同樣在時鐘周期15中正常運(yùn)行。與圖5的中間段不同,T2、T3和T4在該測試的時鐘周期75中沒有違反任何定時約束。在時鐘周期195中,右邊的段確認(rèn)T3正常執(zhí)行而沒有違反任何定時約束。因此能夠確定,在第一測試的時鐘周期75和195中(圖6所示),向T3添加了時間延遲,但是在該測試的時鐘周期15中沒有添加時間延遲。還應(yīng)當(dāng)清楚,在第二測試中(圖6所示),在時鐘周期15、75和195中的任何一個中,沒有向T3添加時間延遲。相應(yīng)地,上述結(jié)果說明,所提出的監(jiān)控方法能夠用來檢測TTC嵌入式系統(tǒng)中的任務(wù)超限。確實(shí),結(jié)合NIPCI-6035EDAQ使用LabVIEW特別適合于實(shí)驗室實(shí)驗,這是由于其允許相對快的采樣率和高分辨率結(jié)果。然而,在實(shí)際中,該方案實(shí)現(xiàn)的監(jiān)控系統(tǒng)可能是受成本限制的。同樣,繼續(xù)使用較快采樣率來獲得實(shí)時的高分辨率采樣需要較大計算功率,這可能不是對所有應(yīng)用都現(xiàn)實(shí)的。相應(yīng)地,本申請人想到所提出方法的實(shí)際實(shí)現(xiàn)方式,其目的在于提供經(jīng)濟(jì)而可靠的解決方案。可以想到,這樣的實(shí)際實(shí)現(xiàn)方式可以用來在目標(biāo)系統(tǒng)的整個壽命期中對其進(jìn)行監(jiān)控。在本發(fā)明的實(shí)施例中,監(jiān)控系統(tǒng)的硬件包括安裝有基于ARM7的LPC212932位微控制器的KeilMCB2100評估板。LPC2129微控制器包含內(nèi)部10比特模數(shù)轉(zhuǎn)換器(ADC),該ADC具有高達(dá)400KS/s的采樣率,允許對從0至3.3伏的模擬信號進(jìn)行測量。因此,從0至3.3伏(參考),ADC分辨率是10比特。因此,在O至3.3伏之間存在1023個單位。相應(yīng)地,每個單位具有3.23mV的近似值。當(dāng)目標(biāo)系統(tǒng)處于空閑狀態(tài)時,采樣電阻器兩端的電壓降(VD)16(5mV)與當(dāng)目標(biāo)系統(tǒng)執(zhí)行時的最低VD(16mV)之間的差值近似為llmV。根據(jù)上述ADC分辨率,將5mV視為l個單位(<2X3.23mV),將16mV視為4個單位(<5X3.23mV)。因此,在5至16mV的范圍之間,僅存在3個單位差值。如果邊界值要將它們分開,則可以將邊界設(shè)置為大于5mVl個單位并且小于16mV2個單位,或反之。由于1023個單位中的l個單位非常小并且容易受到噪聲的破壞,該示例中的ADC分辨率對于在可靠系統(tǒng)中使用而言不夠高。為了解決該問題,向該系統(tǒng)添加較小(低成本)信號調(diào)節(jié)模塊20。信號調(diào)節(jié)模塊20在將采樣電阻器兩端的電壓降(VD)傳遞至ADC之前將其放大10倍(盡管可以將倍數(shù)設(shè)置為任何期望值)。從而當(dāng)目標(biāo)系統(tǒng)處于空閑狀態(tài)時VD變成50mV,當(dāng)目標(biāo)系統(tǒng)執(zhí)行時變成160mV(原先最小為16mV)。因此,兩個狀態(tài)之間的差值更大許多(110mV)。相應(yīng)地,對于監(jiān)控系統(tǒng)而言,當(dāng)前ADC分辨率變得足以精確地識別目標(biāo)系統(tǒng)狀態(tài)(在50160mV之間提供34個單位)。由3個CA741CE運(yùn)算放大器、4個電阻器以及3個電位計構(gòu)造信號調(diào)節(jié)模塊20;對來自采樣電阻器兩端的電壓信號進(jìn)行放大(IO倍)并相減。隨后將產(chǎn)生的信號饋送至ADC。圖7示出了信號調(diào)節(jié)模塊20的示意圖。ADC對信號進(jìn)行數(shù)字化,并將信號的當(dāng)前值與預(yù)定邊界值進(jìn)行比較,以確定目標(biāo)系統(tǒng)是否在運(yùn)行。與上述實(shí)驗實(shí)現(xiàn)方式不同,實(shí)際監(jiān)控系統(tǒng)需要盡可能長時間對目標(biāo)系統(tǒng)進(jìn)行監(jiān)控并使用最小計算功率。如上所述,實(shí)際監(jiān)控系統(tǒng)被配置為在目標(biāo)系統(tǒng)之前啟動。在目標(biāo)系統(tǒng)上完成初始化過程之后,目標(biāo)系統(tǒng)上的調(diào)度器開始運(yùn)行。同時,監(jiān)控系統(tǒng)被配置為開始搜索上升沿(指示在目標(biāo)系統(tǒng)中第一個時鐘周期間隔己經(jīng)開始)。一旦找到第一個上升沿,定時器啟動,但將監(jiān)控系統(tǒng)設(shè)置為空閑模式。每l/5個目標(biāo)系統(tǒng)的時鐘周期間隔產(chǎn)生定時器中斷,以使計數(shù)變量增加l。當(dāng)該變量的值等于4時,監(jiān)控系統(tǒng)被喚醒并再次開始搜索上升沿。一旦找到上升沿,定時器立即重新重啟。監(jiān)控系統(tǒng)然后對計數(shù)變量進(jìn)行復(fù)位,并返回至空閑模式。在下個時鐘周期循環(huán)中執(zhí)行相同的操作。然而,當(dāng)目標(biāo)系統(tǒng)中的任務(wù)沒有滿足其期限時(即當(dāng)發(fā)生時鐘周期超限時),不能找到上升沿。在這種情況下,監(jiān)控系統(tǒng)被配置為發(fā)送信號以執(zhí)行系統(tǒng)恢復(fù)操作(即,重新啟動目標(biāo)系統(tǒng))。出于測試本系統(tǒng)的目的,當(dāng)計數(shù)變量達(dá)到5時(即,在目標(biāo)系統(tǒng)的時鐘周期間隔的結(jié)束處),監(jiān)控系統(tǒng)重新啟動定時器并復(fù)位計數(shù)變量。此外,在監(jiān)控系統(tǒng)返回至空閑狀態(tài)之前,對時鐘周期間隔編號進(jìn)行記錄。然后將所記錄的時鐘周期間隔編號發(fā)送至主機(jī)以進(jìn)行存儲并在測試結(jié)束時進(jìn)行顯示。以下示出涉及部分上述過程的"C"代碼段。If(ADC—Search—Start—Edge()){〃在搜索第一個上升沿之前將濾除目標(biāo)系統(tǒng)〃的初始化并且啟動定時器0(用于產(chǎn)生中斷)While(Tick—Count_G<MAX_TICK){〃采樣1000個目標(biāo)系統(tǒng)時鐘周期PCON=l;If(Inner—Tick—Count—G==4){ADC—Search—Rising—Edge();〃監(jiān)控系統(tǒng)處于空閑狀態(tài)并將由定時器0喚醒〃目標(biāo)系統(tǒng)時鐘周期間隔的4/5〃搜索上升沿〃停止定時器0〃檢測到任務(wù)超限<table>tableseeoriginaldocumentpage18</column></row><table>因此,在該實(shí)施例中,當(dāng)找到每個上升沿時,目標(biāo)系統(tǒng)和監(jiān)控系統(tǒng)同步。此外,監(jiān)控系統(tǒng)不需要在整個時鐘周期間隔上進(jìn)行采樣,而是僅在時鐘周期間隔結(jié)束處的短時間段上進(jìn)行采樣。相應(yīng)地,該實(shí)施例中的監(jiān)控系統(tǒng)能夠節(jié)省計算功率和存儲器空間,這也意味著其可以以相對經(jīng)濟(jì)的方式來實(shí)現(xiàn)。上述關(guān)于圖2至6的實(shí)驗測試用來對上述實(shí)際監(jiān)控系統(tǒng)進(jìn)行測試。然而,監(jiān)控系統(tǒng)僅對目標(biāo)系統(tǒng)的正好1000個時鐘周期間隔(從0至999時鐘周期)進(jìn)行監(jiān)控,并且測試僅集中于對任務(wù)超限的檢測(即不包括對超過其WCET的任務(wù)的檢測)。如上所述,在該實(shí)施例中,將所測量的信號相比于其原始值放大至10倍。相應(yīng)地,選擇80mV的邊界值來區(qū)分目標(biāo)系統(tǒng)是在運(yùn)行還是處于空閑模式。執(zhí)行如上所述的相同數(shù)目的測試,來評估該實(shí)施例的性能(即,在第一個實(shí)驗中為480個測試,在第二個實(shí)驗中為370個測試)。將由ARM7微控制器實(shí)現(xiàn)的本監(jiān)控系統(tǒng)的結(jié)果與由LabVIEW實(shí)現(xiàn)的監(jiān)控系統(tǒng)的結(jié)果進(jìn)行比較。如預(yù)期的,在每個測試中的前1000個時鐘周期中,兩個監(jiān)控系統(tǒng)均檢測到目標(biāo)系統(tǒng)中發(fā)生的任何任務(wù)超限。因此,參照圖2,在實(shí)際監(jiān)控系統(tǒng)中沒有檢測到相應(yīng)的任務(wù)超限;參照圖4,在時鐘周期977,在實(shí)際監(jiān)控系統(tǒng)中檢測到任務(wù)超限;以及參照圖5,在時鐘周期75,在實(shí)際監(jiān)控系統(tǒng)中檢測到任務(wù)超限。因此,總體而言,根據(jù)本發(fā)明的監(jiān)控設(shè)備實(shí)現(xiàn)了對時間觸發(fā)的系統(tǒng)的簡單而有效的監(jiān)控,以確??焖贆z測到故障,使得能夠采取快速操作,從而最小化不可預(yù)測的系統(tǒng)行為的影響。本領(lǐng)域技術(shù)人員將認(rèn)識到,在不背離本發(fā)明的范圍的前提下,可以對上述實(shí)施例進(jìn)行各種修改。例如,盡管上述討論主要涉及在TTC嵌入式系統(tǒng)中使用的監(jiān)控設(shè)備,但是本發(fā)明同樣適用于系統(tǒng)的功耗可以用來確定系統(tǒng)是否按其應(yīng)有的方式操作的其他應(yīng)用。權(quán)利要求1、一種用于處理器的監(jiān)控設(shè)備,包括用于對處理器的功耗進(jìn)行監(jiān)控的裝置;以及用于對所述功耗進(jìn)行分析以檢測處理器的異常操作的裝置。2、根據(jù)權(quán)利要求l所述的監(jiān)控設(shè)備,其中,用于對功耗進(jìn)行分析的裝置被配置為將采樣功耗曲線與參考曲線進(jìn)行比較。3、根據(jù)權(quán)利要求2所述的監(jiān)控設(shè)備,其中,響應(yīng)于所述比較的失配來產(chǎn)生觸發(fā),以指示異常操作。4、根據(jù)權(quán)利要求3所述的監(jiān)控設(shè)備,其中,所述觸發(fā)被配置為重新啟動處理器的一部分。5、根據(jù)前述權(quán)利要求中任一項所述的監(jiān)控設(shè)備,還包括用于將向用戶提醒異常操作的裝置。6、根據(jù)前述權(quán)利要求中任一項所述的監(jiān)控設(shè)備,還包括由于檢測到異常操作而執(zhí)行停止處理器、復(fù)位處理器或發(fā)起系統(tǒng)恢復(fù)操作中的至少一項的裝置。7、根據(jù)前述權(quán)利要求中任一項所述的監(jiān)控設(shè)備,被配置為檢測時間觸發(fā)協(xié)作TTC處理器中的異常操作。8、根據(jù)權(quán)利要求7所述的監(jiān)控設(shè)備,被配置為監(jiān)控功耗是否周期性地達(dá)到預(yù)定最低水平,并在功耗沒有周期性地達(dá)到預(yù)定最低水平的情況下檢測到異常操作。9、根據(jù)前述權(quán)利要求中任一項所述的監(jiān)控設(shè)備,其中,對由處理器上的一個或多個外圍組件所消耗的功率進(jìn)行監(jiān)控,以檢測異常操作。10、根據(jù)前述權(quán)利要求中任一項所述的監(jiān)控設(shè)備,被配置用于監(jiān)控處理器中的任務(wù)調(diào)度。11、根據(jù)前述權(quán)利要求中任一項所述的監(jiān)控設(shè)備,其中,用于對處理器的功耗進(jìn)行監(jiān)控的裝置包括用于執(zhí)行以下操作的裝置對數(shù)值已知的電阻器R兩端的電位差V進(jìn)行測量,所述電阻器與處理器的功率輸入串聯(lián)布置;以及根據(jù)^V/R對流過處理器的電流I進(jìn)行計算,以使電流I的改變提供對功耗改變的指示。12、根據(jù)前述權(quán)利要求中任一項所述的監(jiān)控設(shè)備,被配置用作調(diào)試工具。13、一種用于監(jiān)控處理器的方法,包括以下步驟對處理器的功耗進(jìn)行監(jiān)控;以及對所述功耗進(jìn)行分析以檢測處理器的異常操作。14、一種實(shí)質(zhì)上如以上參照附圖所描述的監(jiān)控設(shè)備。15、一種對實(shí)質(zhì)上如以上參照附圖所描述的處理器進(jìn)行監(jiān)控的方法。全文摘要本發(fā)明涉及一種用于處理器的監(jiān)控設(shè)備,包括用于對處理器的功耗進(jìn)行監(jiān)控的裝置,以及用于對所述功耗進(jìn)行分析以檢測處理器的異常操作的裝置。文檔編號G06F1/32GK101689132SQ200880018493公開日2010年3月31日申請日期2008年5月9日優(yōu)先權(quán)日2007年5月11日發(fā)明者邁克爾·約瑟夫·龐特,陳錦亮申請人:萊斯特大學(xué)