面向可變錯(cuò)誤率的檢查點(diǎn)間隔實(shí)時(shí)確定方法
【專利摘要】本發(fā)明公開了一種面向可變錯(cuò)誤率的檢查點(diǎn)間隔實(shí)時(shí)確定方法,目的是提供一種能準(zhǔn)確地測算出實(shí)時(shí)錯(cuò)誤率,并動(dòng)態(tài)地調(diào)整應(yīng)用執(zhí)行的檢查點(diǎn)間隔的方法。技術(shù)方案是構(gòu)建由檢查點(diǎn)控制模塊、錯(cuò)誤率測算模塊和錯(cuò)誤恢復(fù)模塊組成的基于可變錯(cuò)誤率的檢查點(diǎn)控制系統(tǒng);檢查點(diǎn)控制模塊判定當(dāng)前檢查點(diǎn)間隔是否完成,更新檢查點(diǎn)狀態(tài);錯(cuò)誤恢復(fù)模塊進(jìn)行錯(cuò)誤恢復(fù),錯(cuò)誤率測算模塊測算錯(cuò)誤率和確定檢查點(diǎn)間隔;最后由檢查點(diǎn)控制模塊設(shè)定檢查點(diǎn)間隔和重設(shè)檢查點(diǎn)的開啟。本發(fā)明通過加權(quán)迭代法測算實(shí)時(shí)錯(cuò)誤率,在確保測算速度的同時(shí)能得到較好的測算精度,且在每次檢查點(diǎn)更新或錯(cuò)誤恢復(fù)時(shí)重新設(shè)定檢查點(diǎn)間隔,可以確保檢查點(diǎn)間隔動(dòng)態(tài)匹配錯(cuò)誤率的變動(dòng)。
【專利說明】面向可變錯(cuò)誤率的檢查點(diǎn)間隔實(shí)時(shí)確定方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及錯(cuò)誤率變化時(shí)容錯(cuò)處理器的檢查點(diǎn)間隔確定方法,特別是在錯(cuò)誤率變 動(dòng)明顯時(shí)的檢查點(diǎn)間隔實(shí)時(shí)確定方法。
【背景技術(shù)】
[0002] 軟錯(cuò)誤是處理器面對的主要威脅,目前主要的容錯(cuò)方式是兀余檢錯(cuò)+檢查點(diǎn)恢 復(fù)。其運(yùn)行方式是應(yīng)用程序W雙模兀余或雙線程的方式執(zhí)行,執(zhí)行中比較運(yùn)行狀態(tài)進(jìn)行檢 錯(cuò),定時(shí)的備份程序狀態(tài),檢測出錯(cuò)誤后返回到已備份的檢查點(diǎn)重新執(zhí)行。
[0003] 在檢查點(diǎn)系統(tǒng)中,應(yīng)用通常有H個(gè)狀態(tài);應(yīng)用運(yùn)行狀態(tài)、檢查點(diǎn)狀態(tài)和錯(cuò)誤恢復(fù)狀 態(tài),容錯(cuò)的過程就是應(yīng)用在H個(gè)狀態(tài)中轉(zhuǎn)移的過程。檢查點(diǎn)系統(tǒng)的任務(wù)就是控制應(yīng)用狀態(tài) 的轉(zhuǎn)移。傳統(tǒng)的檢查點(diǎn)系統(tǒng)由檢查點(diǎn)控制模塊和錯(cuò)誤恢復(fù)模塊組成。檢查點(diǎn)控制模塊的任 務(wù)是;獲取應(yīng)用的運(yùn)行狀態(tài)信息W檢測錯(cuò)誤,檢測出錯(cuò)誤時(shí)喚醒檢查點(diǎn)控制模塊,控制應(yīng)用 進(jìn)入檢查點(diǎn)和結(jié)束檢查點(diǎn)狀態(tài)。錯(cuò)誤恢復(fù)模塊在收到檢查點(diǎn)控制模塊發(fā)出的"檢測到錯(cuò)誤" 消息時(shí)控制整個(gè)系統(tǒng)進(jìn)行錯(cuò)誤恢復(fù),在錯(cuò)誤恢復(fù)完成后控制應(yīng)用返回應(yīng)用運(yùn)行狀態(tài)。
[0004] 在介紹技術(shù)方案之前,先給出幾個(gè)定義:
[000引 ? Tex:檢查點(diǎn)間隔時(shí)間,當(dāng)檢查點(diǎn)間隔時(shí)間到達(dá)時(shí)進(jìn)行檢查點(diǎn)的更新備份;
[0006] 參Tov:更新檢查點(diǎn)的時(shí)間開銷;
[0007] 參MTTE: (Mean Time To Error):發(fā)生一次錯(cuò)誤的平均時(shí)間,表征錯(cuò)誤率。
[0008] W上H個(gè)參數(shù)是常量,是傳統(tǒng)檢查點(diǎn)系統(tǒng)的主要參數(shù)。本發(fā)明中,與之對應(yīng)的參數(shù) 會(huì)隨著時(shí)間發(fā)生變化,我們定義如下:
[0009] ? ti:第i次錯(cuò)誤發(fā)生的時(shí)刻,t。為系統(tǒng)開始運(yùn)行的初始時(shí)間;
[0010] ? tJ:第j次檢查點(diǎn)間隔到達(dá)的時(shí)間;
[0011] ? Tex(j):第j次檢查點(diǎn)的間隔時(shí)間;
[0012] ? Tov(j):第j次檢查點(diǎn)更新的開銷時(shí)間;
[001引 ? MTTE (tj):時(shí)刻tj時(shí)的系統(tǒng)平均錯(cuò)誤時(shí)間;
[0014] ? P:計(jì)算系統(tǒng)平均錯(cuò)誤時(shí)間的權(quán)值;
[0015] ? tsys:當(dāng)前的系統(tǒng)時(shí)間;
[001引 ? 當(dāng)前檢查點(diǎn)開始的時(shí)刻;
[0017] ? context (j):第j次檢查點(diǎn)達(dá)到時(shí)應(yīng)用線程的運(yùn)行狀態(tài)信息。
[0018] 傳統(tǒng)檢查點(diǎn)系統(tǒng)的運(yùn)行通常有H個(gè)步驟。
[0019] 第一步,檢查點(diǎn)控制模塊通過系統(tǒng)時(shí)間判定當(dāng)前檢查點(diǎn)間隔是否完成。
[0020] 1. 1檢查點(diǎn)控制模塊對整個(gè)檢查點(diǎn)系統(tǒng)進(jìn)行初始化。包括設(shè)定檢查點(diǎn)間隔(傳統(tǒng) 的檢查點(diǎn)間隔是一個(gè)固定的時(shí)間參數(shù));設(shè)定應(yīng)用初始狀態(tài)為應(yīng)用運(yùn)行狀態(tài)。
[0021] 1.2檢查點(diǎn)控制模塊讀取當(dāng)前的系統(tǒng)時(shí)間t^,并與1. 1中設(shè)定的檢查點(diǎn)間隔對 比,如果tw,<t,t"t+Tex就返回1. 2繼續(xù)讀取并對比,否則轉(zhuǎn)至第二步。
[0022] 第二步,檢查點(diǎn)控制模塊檢測錯(cuò)誤,并根據(jù)檢錯(cuò)結(jié)果更新檢查點(diǎn)或進(jìn)行錯(cuò)誤恢復(fù)。
[002引 2. I檢查點(diǎn)控制模塊向應(yīng)用發(fā)送"啟動(dòng)檢查點(diǎn)"的消息。應(yīng)用收到消息后立即進(jìn)入 檢查點(diǎn)狀態(tài),并向檢查點(diǎn)控制模塊發(fā)送自己的運(yùn)行狀態(tài)信息。
[0024] 2. 2檢查點(diǎn)控制模塊獲取應(yīng)用線程的運(yùn)行狀態(tài)信息,線程的運(yùn)行狀態(tài)信息主要是 線程控制塊,包括程序計(jì)數(shù)器、CPU寄存器、存儲器管理信息等。
[00巧]2. 3檢查點(diǎn)控制模塊比對兀余線程的運(yùn)行狀態(tài)信息檢測錯(cuò)誤。容錯(cuò)執(zhí)行時(shí),每個(gè)應(yīng) 用線程都會(huì)有一個(gè)對應(yīng)的兀余線程,其執(zhí)行的程序與對應(yīng)的應(yīng)用線程完全相同,如果相互 兀余的兩個(gè)線程狀態(tài)信息相同,則此線程無誤,執(zhí)行2. 4。如果相互兀余的兩個(gè)線程狀態(tài)信 息不同,則說明此線程有誤,轉(zhuǎn)至2. 5。
[0026] 2.4 ;檢查點(diǎn)控制模塊啟動(dòng)DMA值irect Memo巧Access),用應(yīng)用當(dāng)前的檢查點(diǎn)狀 態(tài)信息更新前一次保存的狀態(tài)信息。更新完成后檢查點(diǎn)控制模塊向應(yīng)用發(fā)送"檢查點(diǎn)更新 完成"消息,轉(zhuǎn)至第H步。
[0027] 2. 5檢查點(diǎn)控制模塊喚醒錯(cuò)誤恢復(fù)模塊,錯(cuò)誤恢復(fù)模塊給應(yīng)用發(fā)送"錯(cuò)誤恢復(fù)開 始"消息并轉(zhuǎn)至2. 6 W進(jìn)行錯(cuò)誤恢復(fù)。
[0028] 2. 6 ;錯(cuò)誤恢復(fù)模塊啟動(dòng)DMA為應(yīng)用恢復(fù)之前保存的檢查點(diǎn)狀態(tài)?;謴?fù)成功后,錯(cuò) 誤恢復(fù)模塊給應(yīng)用發(fā)送"錯(cuò)誤恢復(fù)完成"消息并轉(zhuǎn)至第H步。
[0029] 第H步,檢查點(diǎn)控制模塊重設(shè)檢查點(diǎn)的開啟。
[0030] 3. 1:檢查點(diǎn)控制模塊根據(jù)應(yīng)用線程的狀態(tài)判定應(yīng)用是否已經(jīng)結(jié)束。如果應(yīng)用結(jié)束 則執(zhí)行3. 2,否則轉(zhuǎn)至3. 3。
[0031] 3. 2:檢查點(diǎn)控制模塊結(jié)束檢查點(diǎn)系統(tǒng)運(yùn)行。
[0032] 3. 3:檢查點(diǎn)控制模塊重新設(shè)定檢查點(diǎn)的開始時(shí)間并返回1. 2。
[0033] 傳統(tǒng)的檢查點(diǎn)系統(tǒng)可W確保錯(cuò)誤發(fā)生后,應(yīng)用能夠返回之前保存的檢查點(diǎn)繼續(xù)運(yùn) 行,不用從頭再開始執(zhí)行,從而降低了發(fā)生錯(cuò)誤時(shí)的開銷。但是檢查點(diǎn)本身需要不斷的保存 或更新檢查點(diǎn)狀態(tài),也會(huì)產(chǎn)生一定的性能開銷。性能開銷和檢查點(diǎn)間隔的時(shí)間長度密切相 關(guān),過短的檢查點(diǎn)間隔會(huì)導(dǎo)致頻繁的檢查點(diǎn)更新,而過長的檢查點(diǎn)間隔會(huì)導(dǎo)致錯(cuò)誤發(fā)生時(shí) 將返回更早的應(yīng)用狀態(tài)重新執(zhí)行。因此確定較合適的檢查點(diǎn)間隔是降低檢查點(diǎn)容錯(cuò)開銷的 重要方式。
[0034] 目前確定檢查點(diǎn)間隔的方法都是固定檢查點(diǎn)間隔方法,即程序執(zhí)行前先通過公式 1確定檢查點(diǎn)間隔Tex,在執(zhí)行的過程中檢查點(diǎn)間隔固定不變。
[00;35] = Wr化-(公式 1)
[0036] Tov是更新檢查點(diǎn)的時(shí)間開銷,MTTE是平均錯(cuò)誤時(shí)間,表征錯(cuò)誤率。
[0037] 隨著處理器故障率的激增,錯(cuò)誤率除了數(shù)量增大外,也呈現(xiàn)出動(dòng)態(tài)變化性。該是因 為軟錯(cuò)誤率受環(huán)境的影響很大,在應(yīng)用運(yùn)行過程中芯片的溫度、福射環(huán)境等也會(huì)動(dòng)態(tài)地變 化。另外,很多芯片越來越多的使用了動(dòng)態(tài)電壓頻率調(diào)制技術(shù),即動(dòng)態(tài)的調(diào)整芯片的主頻和 電壓W獲得性能和功耗的改進(jìn)。但是超頻和調(diào)低電壓會(huì)使芯片的錯(cuò)誤率產(chǎn)生極大的變動(dòng)。
[0038] -般認(rèn)為,在21攝氏度基礎(chǔ)上溫度每提高10攝氏度,芯片錯(cuò)誤率就會(huì)增加一倍, 而目前芯片的工作溫度高達(dá)幾百攝氏度。由于很多功耗技術(shù)的采用(休眠、降頻等),溫度 的變動(dòng)也會(huì)有幾十甚至上百攝氏度。另外在太空中的計(jì)算機(jī)隨著軌道變動(dòng)、福射風(fēng)暴等,錯(cuò) 誤率的變動(dòng)會(huì)超過百倍。
[0039] 固定的檢查點(diǎn)間隔確定方法不能隨著故障率的變動(dòng)動(dòng)態(tài)地調(diào)整檢查點(diǎn)間隔,使得 檢查點(diǎn)容錯(cuò)的性能受到很大影響。針對BOTS測試集的10個(gè)程序表明,在錯(cuò)誤率MTTE = Is(即平均每1砂發(fā)生一次錯(cuò)誤)時(shí)最優(yōu)檢查點(diǎn)間隔為48化cycles。如果檢查點(diǎn)間隔不 能隨故障率變動(dòng),那么在MTTE = 0. Is和0. Ols時(shí)開銷為28%和187%,而通過變動(dòng)檢查點(diǎn) 間隔則可W分別降低為8. 5%和34%。所W,如果能在兀余執(zhí)行時(shí)實(shí)時(shí)地調(diào)整檢查點(diǎn)間隔 W匹配變化的故障率,則可W極大地降低容錯(cuò)執(zhí)行的開銷。目前還沒有針對可變錯(cuò)誤率的 檢查點(diǎn)間隔實(shí)時(shí)確定的相關(guān)技術(shù)方案公布。
【發(fā)明內(nèi)容】
[0040] 本發(fā)明要解決的技術(shù)問題是提供一種面向可變錯(cuò)誤率的檢查點(diǎn)間隔實(shí)時(shí)確定方 法,能準(zhǔn)確地測算出實(shí)時(shí)錯(cuò)誤率,并動(dòng)態(tài)地調(diào)整應(yīng)用執(zhí)行的檢查點(diǎn)間隔。
[0041] 本發(fā)明的技術(shù)方案是:
[0042] 第一步,構(gòu)建基于可變錯(cuò)誤率的檢查點(diǎn)控制系統(tǒng)。該控制系統(tǒng)由檢查點(diǎn)控制模塊、 錯(cuò)誤率測算模塊和錯(cuò)誤恢復(fù)模塊組成。檢查點(diǎn)控制模塊獲取應(yīng)用的運(yùn)行狀態(tài)信息,根據(jù)運(yùn) 行狀態(tài)信息控制應(yīng)用執(zhí)行狀態(tài)的轉(zhuǎn)移;在每次啟動(dòng)應(yīng)用進(jìn)入檢查點(diǎn)狀態(tài)時(shí)啟動(dòng)錯(cuò)誤率測 算模塊;在檢測出錯(cuò)誤時(shí)喚醒錯(cuò)誤恢復(fù)模塊;在每次檢查點(diǎn)完成時(shí)設(shè)定檢查點(diǎn)間隔。錯(cuò)誤 率測算模塊在檢測到錯(cuò)誤時(shí)記錄錯(cuò)誤信息;根據(jù)已經(jīng)發(fā)生錯(cuò)誤的歷史測算當(dāng)前的實(shí)時(shí)錯(cuò)誤 率;根據(jù)系統(tǒng)運(yùn)行時(shí)間測定檢查點(diǎn)開銷;根據(jù)實(shí)時(shí)的錯(cuò)誤率和檢查點(diǎn)開銷確定最優(yōu)檢查點(diǎn) 間隔。錯(cuò)誤恢復(fù)模塊在接收檢查點(diǎn)控制模塊發(fā)送的"啟動(dòng)錯(cuò)誤恢復(fù)"信息時(shí)開始進(jìn)行錯(cuò)誤 恢復(fù);向應(yīng)用發(fā)送"錯(cuò)誤恢復(fù)開始"消息使應(yīng)用進(jìn)入錯(cuò)誤恢復(fù)狀態(tài),同時(shí)向錯(cuò)誤率測算模塊 發(fā)送"錯(cuò)誤恢復(fù)開始"消息使其記錄錯(cuò)誤信息;在發(fā)生錯(cuò)誤時(shí)為每個(gè)應(yīng)用線程恢復(fù)之前保存 的運(yùn)行狀態(tài)信息。
[0043] 第二步,檢查點(diǎn)控制模塊通過系統(tǒng)時(shí)間判定當(dāng)前檢查點(diǎn)間隔是否完成。
[0044] 2. 1檢查點(diǎn)控制模塊對整個(gè)檢查點(diǎn)系統(tǒng)進(jìn)行初始化。
[0045] 2. 1. 1設(shè)定應(yīng)用初始狀態(tài)為應(yīng)用運(yùn)行狀態(tài);
[004引 2. 1. 2 設(shè)定 j = 0, i = 0, t; = tsys, tj = tsys, tstart 二 t巧S ;
[0047] 2. 1. 3 設(shè)定 MTTE (tj) = Is, Tov (_]?)= 0. Ols, Tex (_]?)= 0. Is。
[0048] 2. I. 4 設(shè)定 P = 1/16, context (j) = NtXL (空指針)。
[0049] 2. 2檢查點(diǎn)控制模塊讀取系統(tǒng)當(dāng)時(shí)時(shí)間并與Tex (j)對比,如果 tsys<tstart+TeX(j)就返回2. 2,否則,j = j + 1并執(zhí)行第;步。
[0050] 第H步,檢查點(diǎn)控制模塊更新檢查點(diǎn)狀態(tài),錯(cuò)誤恢復(fù)模塊進(jìn)行錯(cuò)誤恢復(fù),與此同 時(shí),錯(cuò)誤率測算模塊測算錯(cuò)誤率和確定檢查點(diǎn)間隔。
[0051] 3. 1檢查點(diǎn)控制模塊向錯(cuò)誤率測算模塊發(fā)送"啟動(dòng)檢查點(diǎn)間隔測算"消息;同時(shí), 向應(yīng)用發(fā)送"啟動(dòng)檢查點(diǎn)"消息;檢查點(diǎn)控制模塊執(zhí)行3. 2,錯(cuò)誤率測算模塊執(zhí)行3. 5。
[0052] 3. 2檢查點(diǎn)控制模塊獲取應(yīng)用線程的運(yùn)行狀態(tài)信息,線程的狀態(tài)信息主要是線程 控制塊,包括程序計(jì)數(shù)器、CPU寄存器、存儲器管理信息等。
[0053] 3. 3檢查點(diǎn)控制模塊將應(yīng)用線程的運(yùn)行狀態(tài)信息與兀余線程的運(yùn)行狀態(tài)進(jìn)行比 對,如果兩者運(yùn)行狀態(tài)信息相同,則說明應(yīng)用線程無誤,轉(zhuǎn)至3. 4,如果有錯(cuò)誤,則轉(zhuǎn)3. 7步。
[0054] 3. 4 ;檢查點(diǎn)控制模塊進(jìn)行檢查點(diǎn)更新。檢查點(diǎn)控制模塊將當(dāng)前的應(yīng)用運(yùn)行狀態(tài)信 息保存在磁盤,W備發(fā)生錯(cuò)誤時(shí)可W從此處恢復(fù)執(zhí)行。
[00巧]3. 4. I檢查點(diǎn)控制模塊啟動(dòng)DMA,用應(yīng)用當(dāng)前的檢查點(diǎn)狀態(tài)信息替換前一次保存 的舊的狀態(tài)信息,即 context (j-1) = context (j)。
[0056] 3. 4. 2檢查點(diǎn)控制模塊向錯(cuò)誤率測算模塊和應(yīng)用線程發(fā)送"檢查點(diǎn)更新完成"消 息,轉(zhuǎn)至第四步。
[0057] 3. 5收到3. 1發(fā)送的消息后,錯(cuò)誤率測算模塊被喚醒,錯(cuò)誤率測算模塊記錄當(dāng)前的 系統(tǒng)時(shí)間W測量本次檢查點(diǎn)的開銷Tov (j)。
[0058] 3. 6錯(cuò)誤率測算模塊通過加權(quán)迭代法進(jìn)行實(shí)時(shí)錯(cuò)誤率的測算:
[0059] 3. 6. 1如果收到錯(cuò)誤恢復(fù)模塊發(fā)送的"錯(cuò)誤恢復(fù)開始"消息,則轉(zhuǎn)至3. 6. 2記錄錯(cuò) 誤,否則轉(zhuǎn)至3. 6. 3。
[0060] 3. 6. 2錯(cuò)誤率測算模塊進(jìn)行錯(cuò)誤記錄。
[0061] 3. 6. 2. Ii = i+1,錯(cuò)誤發(fā)生次數(shù) i 加 1 ;
[0062] 3. 6. 2. 2本次錯(cuò)誤發(fā)生的時(shí)刻ti = tsys。
[0063] 3. 6. 3錯(cuò)誤率測算模塊采用加權(quán)迭代法對MTTE (tj.)進(jìn)行測算。
[0064] 3. 6. 3. 1獲取當(dāng)前錯(cuò)誤發(fā)生次數(shù)i ;
[0065] 3. 6. 3. 2當(dāng)KK時(shí),K是計(jì)算一次平均錯(cuò)誤時(shí)間所需要平均的錯(cuò)誤次數(shù),范圍是 8 ?32,
[006引 MTTE (tj) = (tj-t。) /i,并轉(zhuǎn)至 3. 9 ;
[0067] 3. 6. 3. 3 當(dāng) i > K 時(shí),
[006引 MTTE (tp = P* (Wk-I) /K+ (I-P) *MTTE (Vi),其中,(Wk-I) /K 為最近 K 次錯(cuò)誤 的平均時(shí)間,MTTE(tw)為上一次檢查點(diǎn)更新時(shí)測算的錯(cuò)誤率;
[0069] 3. 6. 3. 4 如果 I (t^tw) /4-MTTE I /MTTE 〉0. 5,貝Ij
[0070] MTTE (tp = p* (t^tw) /4+ (1-p) *MTTE (Vi),轉(zhuǎn) 3. 9 ;
[007"如果 I (tj'-tw) /4-MTTE I /MTTE 《0. 5,則直接轉(zhuǎn) 3. 9。
[0072] 3. 7檢查點(diǎn)控制模塊向錯(cuò)誤恢復(fù)模塊發(fā)送"啟動(dòng)錯(cuò)誤恢復(fù)"消息,錯(cuò)誤恢復(fù)模塊收 到消息后被喚醒并向應(yīng)用和錯(cuò)誤率測算模塊發(fā)送"錯(cuò)誤恢復(fù)開始"消息,轉(zhuǎn)至3. 8進(jìn)行錯(cuò)誤 恢復(fù)。
[0073] 3. 8 ;錯(cuò)誤恢復(fù)模塊啟動(dòng)DMA為應(yīng)用恢復(fù)之前保存的檢查點(diǎn)狀態(tài)context (j)= context (j-1),恢復(fù)完成后錯(cuò)誤恢復(fù)模塊給錯(cuò)誤率測算模塊和應(yīng)用發(fā)送"錯(cuò)誤恢復(fù)完成"消 息,轉(zhuǎn)第四步。
[0074] 3. 9錯(cuò)誤率測算模塊讀取當(dāng)前系統(tǒng)時(shí)間并與3. 5. 1讀取的系統(tǒng)時(shí)間相減,即為 本次檢查點(diǎn)的開銷Tov (j)。
[007引 3. 10錯(cuò)誤率測算模塊利用3. 6得出的實(shí)時(shí)錯(cuò)誤率MTTE (tj)和3. 9的檢查點(diǎn)開銷 Tov(j),通過公式2計(jì)算本次檢查點(diǎn)的最優(yōu)檢查點(diǎn)間隔Tex(j):
[0076] Tex(J) = ^ov(J)* MTTEd.)(公式。
[0077] 計(jì)算完成后,向檢查點(diǎn)控制模塊發(fā)送"檢查點(diǎn)間隔測算完成"消息和Tex(j)。
[007引第四步,檢查點(diǎn)控制模塊設(shè)定檢查點(diǎn)間隔和重設(shè)檢查點(diǎn)的開啟。
[0079] 4. 1:檢查點(diǎn)控制模塊根據(jù)應(yīng)用線程的狀態(tài)判定應(yīng)用是否已經(jīng)結(jié)束。如果應(yīng)用結(jié)束 則執(zhí)行4. 2,否則轉(zhuǎn)至4. 3。
[0080] 4. 2:檢查點(diǎn)控制模塊結(jié)束檢查點(diǎn)系統(tǒng)運(yùn)行。
[0081] 4. 3:檢查點(diǎn)控制模塊從錯(cuò)誤率測算模塊獲取Tex(j)并設(shè)定檢查點(diǎn)間隔。
[0082] 4. 4:檢查點(diǎn)控制模塊重新設(shè)定檢查點(diǎn)的開始時(shí)間= tw,,并返回2. 2。
[0083] 采用本發(fā)明可W達(dá)到W下技術(shù)效果:
[0084] 1.該方法通過加權(quán)迭代法測算實(shí)時(shí)錯(cuò)誤率(步驟3. 6),在確保測算速度的同時(shí)能 得到較好的測算精度。
[0085] 2.該方法在每次檢查點(diǎn)更新或錯(cuò)誤恢復(fù)時(shí)重新設(shè)定檢查點(diǎn)間隔(步驟四),可W 確保檢查點(diǎn)間隔動(dòng)態(tài)匹配錯(cuò)誤率的變動(dòng)。
【專利附圖】
【附圖說明】
[0086] 圖1【背景技術(shù)】所述傳統(tǒng)檢查點(diǎn)系統(tǒng)結(jié)構(gòu)圖;
[0087] 圖2【背景技術(shù)】所述傳統(tǒng)的檢查點(diǎn)控制和錯(cuò)誤恢復(fù)流程;
[0088] 圖3本發(fā)明第一步構(gòu)建的檢查點(diǎn)系統(tǒng)結(jié)構(gòu)圖;
[0089] 圖4為本發(fā)明整體流程圖;
[0090] 圖5本發(fā)明步驟3. 6錯(cuò)誤率測算的效果示意圖。
【具體實(shí)施方式】
[0091] 圖3為本發(fā)明檢查點(diǎn)系統(tǒng)結(jié)構(gòu)圖(第一步)
[0092] 構(gòu)建基于可變錯(cuò)誤率的檢查點(diǎn)控制系統(tǒng)。該控制系統(tǒng)由檢查點(diǎn)控制模塊、錯(cuò)誤率 測算模塊和錯(cuò)誤恢復(fù)模塊組成。檢查點(diǎn)控制模塊獲取應(yīng)用的運(yùn)行狀態(tài)信息,根據(jù)運(yùn)行狀態(tài) 信息控制應(yīng)用執(zhí)行狀態(tài)的轉(zhuǎn)移;在每次啟動(dòng)應(yīng)用進(jìn)入檢查點(diǎn)狀態(tài)時(shí)啟動(dòng)錯(cuò)誤率測算模塊; 在檢測出錯(cuò)誤時(shí)喚醒錯(cuò)誤恢復(fù)模塊;在每次檢查點(diǎn)完成時(shí)設(shè)定檢查點(diǎn)間隔。錯(cuò)誤率測算模 塊在檢測到錯(cuò)誤時(shí)記錄錯(cuò)誤信息;根據(jù)已經(jīng)發(fā)生錯(cuò)誤的歷史測算當(dāng)前的實(shí)時(shí)錯(cuò)誤率;根據(jù) 系統(tǒng)運(yùn)行時(shí)間測定檢查點(diǎn)開銷;根據(jù)實(shí)時(shí)的錯(cuò)誤率和檢查點(diǎn)開銷確定最優(yōu)檢查點(diǎn)間隔。錯(cuò) 誤恢復(fù)模塊在接收檢查點(diǎn)控制模塊發(fā)送的"啟動(dòng)錯(cuò)誤恢復(fù)"信息時(shí)開始進(jìn)行錯(cuò)誤恢復(fù);向應(yīng) 用發(fā)送"錯(cuò)誤恢復(fù)開始"消息使應(yīng)用進(jìn)入錯(cuò)誤恢復(fù)狀態(tài),同時(shí)向錯(cuò)誤率測算模塊發(fā)送"錯(cuò)誤 恢復(fù)開始"消息使其記錄錯(cuò)誤信息;在發(fā)生錯(cuò)誤時(shí)為每個(gè)應(yīng)用線程恢復(fù)之前保存的運(yùn)行狀 態(tài)倍息。
[0093] 圖4本發(fā)明總體流程圖:
[0094] 第一步,構(gòu)建基于可變錯(cuò)誤率的檢查點(diǎn)控制系統(tǒng),該控制系統(tǒng)由檢查點(diǎn)控制模塊、 錯(cuò)誤率測算模塊和錯(cuò)誤恢復(fù)模塊組成。
[0095] 第二步,檢查點(diǎn)控制模塊通過系統(tǒng)時(shí)間判定當(dāng)前檢查點(diǎn)間隔是否完成。
[0096] 2. 1檢查點(diǎn)控制模塊對整個(gè)檢查點(diǎn)系統(tǒng)進(jìn)行初始化。
[0097] 2. 1. 1設(shè)定應(yīng)用初始狀態(tài)為應(yīng)用運(yùn)行狀態(tài);
[009引 2. 1. 2 設(shè)定 j = 0, i = 0, ti = tsys,tj = tsys,tstart = ;
[0099] 2. I. 3 設(shè)定 MTTE (tj) = Is, Tov (_j) = 0. Ols, Tex (_j) = 0. Is。
[0100] 2. I. 4 設(shè)定 P = 1/16, context (j) = NULL (空指針)。
[0101] 2. 2檢查點(diǎn)控制模塊讀取系統(tǒng)當(dāng)時(shí)時(shí)間并與Tex從對比,如果 tsys<tstart+TeX(j)就返回2. 2,否則,j = j + 1并執(zhí)行第;步。
[0102] 第H步,檢查點(diǎn)控制模塊更新檢查點(diǎn)狀態(tài),錯(cuò)誤恢復(fù)模塊進(jìn)行錯(cuò)誤恢復(fù),與此同 時(shí),錯(cuò)誤率測算模塊測算錯(cuò)誤率和確定檢查點(diǎn)間隔。
[0103] 3. 1檢查點(diǎn)控制模塊向錯(cuò)誤率測算模塊發(fā)送"啟動(dòng)檢查點(diǎn)間隔測算"消息;同時(shí), 向應(yīng)用發(fā)送"啟動(dòng)檢查點(diǎn)"消息;檢查點(diǎn)控制模塊執(zhí)行3. 2,錯(cuò)誤率測算模塊執(zhí)行3. 5。
[0104] 3. 2檢查點(diǎn)控制模塊獲取應(yīng)用線程的運(yùn)行狀態(tài)信息,線程的狀態(tài)信息主要是線程 控制塊,包括程序計(jì)數(shù)器、CPU寄存器、存儲器管理信息等。
[0105] 3. 3檢查點(diǎn)控制模塊將應(yīng)用線程的運(yùn)行狀態(tài)信息與兀余線程的運(yùn)行狀態(tài)進(jìn)行比 對,如果兩者運(yùn)行狀態(tài)信息相同,則說明應(yīng)用線程無誤,轉(zhuǎn)至3. 4,如果有錯(cuò)誤,則轉(zhuǎn)3. 7步。
[0106] 3. 4 ;檢查點(diǎn)控制模塊進(jìn)行檢查點(diǎn)更新。檢查點(diǎn)控制模塊將當(dāng)前的應(yīng)用運(yùn)行狀態(tài)信 息保存在磁盤,W備發(fā)生錯(cuò)誤時(shí)可W從此處恢復(fù)執(zhí)行。
[0107] 3. 4. 1檢查點(diǎn)控制模塊啟動(dòng)DMA,用應(yīng)用當(dāng)前的檢查點(diǎn)狀態(tài)信息替換前一次保存 的舊的狀態(tài)信息,即 context (j-1) = context (j)。
[010引3. 4. 2檢查點(diǎn)控制模塊向錯(cuò)誤率測算模塊和應(yīng)用線程發(fā)送"檢查點(diǎn)更新完成"消 息,轉(zhuǎn)至第四步。
[0109] 3. 5收到3. 1發(fā)送的消息后,錯(cuò)誤率測算模塊被喚醒,錯(cuò)誤率測算模塊記錄當(dāng)前的 系統(tǒng)時(shí)間W測量本次檢查點(diǎn)的開銷Tov (j)。
[0110] 3. 6錯(cuò)誤率測算模塊通過加權(quán)迭代法進(jìn)行實(shí)時(shí)錯(cuò)誤率的測算:
[01U] 3. 6. 1如果收到錯(cuò)誤恢復(fù)模塊發(fā)送的"錯(cuò)誤恢復(fù)開始"消息,則轉(zhuǎn)至3. 6. 2記錄錯(cuò) 誤,否則轉(zhuǎn)至3. 6. 3。
[0112] 3. 6. 2錯(cuò)誤率測算模塊進(jìn)行錯(cuò)誤記錄。
[0113] 3. 6. 2. Ii = i+1,錯(cuò)誤發(fā)生次數(shù) i 加 1 ;
[0114] 3. 6. 2. 2本次錯(cuò)誤發(fā)生的時(shí)刻ti = t。,。
[0115] 3. 6. 3錯(cuò)誤率測算模塊采用加權(quán)迭代法對MTTE (tj.)進(jìn)行測算。
[0116] 3. 6. 3. 1獲取當(dāng)前錯(cuò)誤發(fā)生次數(shù)i ;
[0117] 3. 6. 3. 2當(dāng)KK時(shí),K是計(jì)算一次平均錯(cuò)誤時(shí)間所需要平均的錯(cuò)誤次數(shù),范圍是 8 ?32,
[om] MTTE (tj) = (tj-t。) /i,并轉(zhuǎn)至 3. 9 ;
[0119] 3. 6. 3. 3 當(dāng) i > K 時(shí),
[0120] MTTE (tp = P* (Wk-I)/K+(I-P) *MTTE (Vi),其中,(Wk-I)/K 為最近 K 次錯(cuò)誤 的平均時(shí)間,MTTE(tw)為上一次檢查點(diǎn)更新時(shí)測算的錯(cuò)誤率;
[0121] 3. 6. 3. 4 如果 I (t^tw) /4-MTTE I /MTTE 〉0. 5,貝Ij
[0122] MTTE (tj) = p* /4+ (1-p) *MTTE (Vi),轉(zhuǎn) 3. 9 ;
[012引如果 I (tj-tw) /4-MTTE I /MTTE 《0. 5,則直接轉(zhuǎn) 3. 9。
[0124] 3. 7檢查點(diǎn)控制模塊向錯(cuò)誤恢復(fù)模塊發(fā)送"啟動(dòng)錯(cuò)誤恢復(fù)"消息,錯(cuò)誤恢復(fù)模塊收 到消息后被喚醒并向應(yīng)用和錯(cuò)誤率測算模塊發(fā)送"錯(cuò)誤恢復(fù)開始"消息,轉(zhuǎn)至3. 8進(jìn)行錯(cuò)誤 恢復(fù)。
[01巧]3. 8 ;錯(cuò)誤恢復(fù)模塊啟動(dòng)DMA為應(yīng)用恢復(fù)之前保存的檢查點(diǎn)狀態(tài)context (j)= context (j-1),恢復(fù)完成后錯(cuò)誤恢復(fù)模塊給錯(cuò)誤率測算模塊和應(yīng)用發(fā)送"錯(cuò)誤恢復(fù)完成"消 息,轉(zhuǎn)第四步。
[0126] 3. 9錯(cuò)誤率測算模塊讀取當(dāng)前系統(tǒng)時(shí)間tw,并與3. 5. I讀取的系統(tǒng)時(shí)間相減,即為 本次檢查點(diǎn)的開銷Tov (j)。
[0127] 3. 10錯(cuò)誤率測算模塊利用3. 6得出的實(shí)時(shí)錯(cuò)誤率MTTE (tj)和3. 9的檢查點(diǎn)開銷 Tov (j),通過公式2計(jì)算本次檢查點(diǎn)的最優(yōu)檢查點(diǎn)間隔Tex (j):
[012引 Tca-U)=扣。',.'UY* MT'化、t,)(公式。
[0129] 計(jì)算完成后,向檢查點(diǎn)控制模塊發(fā)送"檢查點(diǎn)間隔測算完成"消息和Tex(j)。
[0130] 第四步,檢查點(diǎn)控制模塊設(shè)定檢查點(diǎn)間隔和重設(shè)檢查點(diǎn)的開啟。
[0131] 4. 1:檢查點(diǎn)控制模塊根據(jù)應(yīng)用線程的狀態(tài)判定應(yīng)用是否已經(jīng)結(jié)束。如果應(yīng)用結(jié)束 則執(zhí)行4. 2,否則轉(zhuǎn)至4. 3。
[0132] 4. 2:檢查點(diǎn)控制模塊結(jié)束檢查點(diǎn)系統(tǒng)運(yùn)行。
[0133] 4. 3:檢查點(diǎn)控制模塊從錯(cuò)誤率測算模塊獲取Tex(j)并設(shè)定檢查點(diǎn)間隔。
[0134] 4. 4:檢查點(diǎn)控制模塊重新設(shè)定檢查點(diǎn)的開始時(shí)間= tw,,并返回2. 2。
[0135] 圖5本發(fā)明錯(cuò)誤率測算的效果(步驟3. 6)
[0136] 本發(fā)明由錯(cuò)誤測算模塊對處理器進(jìn)行錯(cuò)誤率的測算,采用的方法是加權(quán)迭代法。
[0137] 本發(fā)明將錯(cuò)誤率變動(dòng)為10倍W下的稱為溫和性變動(dòng)(左圖所示),將超過100倍 的稱為激進(jìn)性變動(dòng)(右圖所示)。圖中橫坐標(biāo)是時(shí)間,左側(cè)的縱坐標(biāo)表示錯(cuò)誤率,右側(cè)的縱 坐標(biāo)表示相對誤差。左圖中實(shí)線MTTE injected表示我們注入的錯(cuò)誤率變化,它有一個(gè)持 續(xù)5砂鐘的10倍錯(cuò)誤率變動(dòng)??找擦庑伪硎就ㄟ^本方法測試所得的錯(cuò)誤率,可W從圖看出, 除了在開始和變動(dòng)的很短時(shí)間中測試的錯(cuò)誤率有較大誤差,其它絕大部分時(shí)間中測試的誤 差極小。圖中虛線SRET表示各個(gè)時(shí)間段的累計(jì)相對誤差,可W看出溫和性錯(cuò)誤率變動(dòng)的累 計(jì)相對誤差在50s時(shí)為0. 06。
[013引右圖表示的是持續(xù)IOs的激進(jìn)性錯(cuò)誤率變動(dòng)。從圖可W看出,本方法在絕大部分 時(shí)間測試所得的錯(cuò)誤率都極為準(zhǔn)確,在50s時(shí)的累計(jì)相對誤差為0. 08。兩種情況下的累計(jì) 相對誤差都小于0. 1,說明評測的效果極好。
【權(quán)利要求】
1. 一種面向可變錯(cuò)誤率的檢查點(diǎn)間隔實(shí)時(shí)確定方法,其特征在于包括以下步驟: 第一步,構(gòu)建基于可變錯(cuò)誤率的檢查點(diǎn)控制系統(tǒng),該控制系統(tǒng)由檢查點(diǎn)控制模塊、錯(cuò) 誤率測算模塊和錯(cuò)誤恢復(fù)模塊組成;檢查點(diǎn)控制模塊獲取應(yīng)用的運(yùn)行狀態(tài)信息,根據(jù)運(yùn)行 狀態(tài)信息控制應(yīng)用執(zhí)行狀態(tài)的轉(zhuǎn)移,在每次啟動(dòng)應(yīng)用進(jìn)入檢查點(diǎn)狀態(tài)時(shí)啟動(dòng)錯(cuò)誤率測算模 塊,在檢測出錯(cuò)誤時(shí)喚醒錯(cuò)誤恢復(fù)模塊,在每次檢查點(diǎn)完成時(shí)設(shè)定檢查點(diǎn)間隔;錯(cuò)誤率測算 模塊在檢測到錯(cuò)誤時(shí)記錄錯(cuò)誤信息,根據(jù)已經(jīng)發(fā)生錯(cuò)誤的歷史測算當(dāng)前的實(shí)時(shí)錯(cuò)誤率,根 據(jù)系統(tǒng)運(yùn)行時(shí)間測定檢查點(diǎn)開銷,根據(jù)實(shí)時(shí)的錯(cuò)誤率和檢查點(diǎn)開銷確定最優(yōu)檢查點(diǎn)間隔; 錯(cuò)誤恢復(fù)模塊在接收檢查點(diǎn)控制模塊發(fā)送的"啟動(dòng)錯(cuò)誤恢復(fù)"信息時(shí)開始進(jìn)行錯(cuò)誤恢復(fù),向 應(yīng)用發(fā)送"錯(cuò)誤恢復(fù)開始"消息使應(yīng)用進(jìn)入錯(cuò)誤恢復(fù)狀態(tài),同時(shí)向錯(cuò)誤率測算模塊發(fā)送"錯(cuò) 誤恢復(fù)開始"消息使其記錄錯(cuò)誤信息,在發(fā)生錯(cuò)誤時(shí)為每個(gè)應(yīng)用線程恢復(fù)之前保存的運(yùn)行 狀態(tài)信息; 第二步,檢查點(diǎn)控制模塊通過系統(tǒng)時(shí)間判定當(dāng)前檢查點(diǎn)間隔是否完成,方法是: 2. 1檢查點(diǎn)控制模塊對整個(gè)檢查點(diǎn)系統(tǒng)進(jìn)行初始化,方法是: 2. I. 1設(shè)定應(yīng)用初始狀態(tài)為應(yīng)用運(yùn)行狀態(tài); 2. 1. 2設(shè)定檢查點(diǎn)更新次數(shù)j = 0,錯(cuò)誤發(fā)生次數(shù)i = 0,系統(tǒng)開始運(yùn)行的初始時(shí)間t =tsys,第j次檢查點(diǎn)間隔到達(dá)的時(shí)間tj = tsys,當(dāng)前檢查點(diǎn)開始的時(shí)刻tstart = tsys,tsys為 當(dāng)前的系統(tǒng)時(shí)間; 2. 1. 3設(shè)定時(shí)刻tj時(shí)的系統(tǒng)平均錯(cuò)誤時(shí)間MTTE (tj) = ls,第j次檢查點(diǎn)更新的開銷時(shí) 間Tov(j) = 0? 018,第j次檢查點(diǎn)的間隔時(shí)間Tex(j) = 0? Is ; 2. 1. 4設(shè)定計(jì)算系統(tǒng)平均錯(cuò)誤時(shí)間的權(quán)值p = 1/16,設(shè)定第j次檢查點(diǎn)達(dá)到時(shí)應(yīng)用線 程的運(yùn)行狀態(tài)信息context (j) = NULL ; 2. 2檢查點(diǎn)控制模塊讀取系統(tǒng)當(dāng)時(shí)時(shí)間tsys并與Tex (j)對比,如果tsys < tstart+Tex (j) 就返回2. 2,否則,j = j+1并執(zhí)行第三步; 第三步,檢查點(diǎn)控制模塊更新檢查點(diǎn)狀態(tài),錯(cuò)誤恢復(fù)模塊進(jìn)行錯(cuò)誤恢復(fù),與此同時(shí),錯(cuò) 誤率測算模塊測算錯(cuò)誤率和確定檢查點(diǎn)間隔,方法是: 3. 1檢查點(diǎn)控制模塊向錯(cuò)誤率測算模塊發(fā)送"啟動(dòng)檢查點(diǎn)間隔測算"消息;同時(shí),向應(yīng) 用發(fā)送"啟動(dòng)檢查點(diǎn)"消息;檢查點(diǎn)控制模塊執(zhí)行3. 2,錯(cuò)誤率測算模塊執(zhí)行3. 5 ; 3. 2檢查點(diǎn)控制模塊獲取應(yīng)用線程的運(yùn)行狀態(tài)信息,線程的狀態(tài)信息主要是線程控制 塊,包括程序計(jì)數(shù)器、CPU寄存器、存儲器管理信息; 3. 3檢查點(diǎn)控制模塊將應(yīng)用線程的運(yùn)行狀態(tài)信息與冗余線程的運(yùn)行狀態(tài)進(jìn)行比對,如 果兩者運(yùn)行狀態(tài)信息相同,則說明應(yīng)用線程無誤,轉(zhuǎn)至3. 4,如果有錯(cuò)誤,則轉(zhuǎn)3. 7步; 3. 4檢查點(diǎn)控制模塊進(jìn)行檢查點(diǎn)更新,檢查點(diǎn)控制模塊將當(dāng)前的應(yīng)用運(yùn)行狀態(tài)信息保 存在磁盤: 3. 4. 1檢查點(diǎn)控制模塊啟動(dòng)DMA,用應(yīng)用當(dāng)前的檢查點(diǎn)狀態(tài)信息替換前一次保存的舊 的狀態(tài)信息,即 context (j-1) =context (j); 3. 4. 2檢查點(diǎn)控制模塊向錯(cuò)誤率測算模塊和應(yīng)用線程發(fā)送"檢查點(diǎn)更新完成"消息,轉(zhuǎn) 至第四步; 3. 5收到3. 1發(fā)送的消息后,錯(cuò)誤率測算模塊記錄當(dāng)前的系統(tǒng)時(shí)間以測量本次檢查點(diǎn) 的開銷Tov (j); 3. 6錯(cuò)誤率測算模塊通過加權(quán)迭代法進(jìn)行實(shí)時(shí)錯(cuò)誤率的測算: 3. 6. 1如果收到錯(cuò)誤恢復(fù)模塊發(fā)送的"錯(cuò)誤恢復(fù)開始"消息,則轉(zhuǎn)至3. 6. 2記錄錯(cuò)誤,否 則轉(zhuǎn)至3. 6. 3 ; 3. 6. 2錯(cuò)誤率測算模塊進(jìn)行錯(cuò)誤記錄: 3. 6. 2. Ii = i+1,錯(cuò)誤發(fā)生次數(shù)i加1 ; 3. 6. 2. 2本次錯(cuò)誤發(fā)生的時(shí)刻h = tsys ; 3. 6. 3錯(cuò)誤率測算模塊采用加權(quán)迭代法對MTTE (tp進(jìn)行測算,得到MTTE (tp,轉(zhuǎn)3. 9 ; 3. 7檢查點(diǎn)控制模塊向錯(cuò)誤恢復(fù)模塊發(fā)送"啟動(dòng)錯(cuò)誤恢復(fù)"消息,錯(cuò)誤恢復(fù)模塊收到消 息后被喚醒并向應(yīng)用和錯(cuò)誤率測算模塊發(fā)送"錯(cuò)誤恢復(fù)開始"消息,轉(zhuǎn)至3. 8進(jìn)行錯(cuò)誤恢 復(fù); 3. 8 :錯(cuò)誤恢復(fù)模塊啟動(dòng)DM為應(yīng)用恢復(fù)之前保存的檢查點(diǎn)狀態(tài)context (j)= context (j-1),恢復(fù)完成后錯(cuò)誤恢復(fù)模塊給錯(cuò)誤率測算模塊和應(yīng)用發(fā)送"錯(cuò)誤恢復(fù)完成"消 息,轉(zhuǎn)第四步。 3. 9錯(cuò)誤率測算模塊讀取當(dāng)前系統(tǒng)時(shí)間tsys并與3. 5. 1讀取的系統(tǒng)時(shí)間相減,即為本次 檢查點(diǎn)的開銷Tov (j); 3. 10錯(cuò)誤率測算模塊利用3. 6得出的實(shí)時(shí)錯(cuò)誤率MTTEUi)和3.9的檢查點(diǎn)開銷 Tov (j),通過公式2計(jì)算本次檢查點(diǎn)的最優(yōu)檢查點(diǎn)間隔Tex (j):
計(jì)算完成后,向檢查點(diǎn)控制模塊發(fā)送"檢查點(diǎn)間隔測算完成"消息和Tex(j); 第四步,檢查點(diǎn)控制模塊設(shè)定檢查點(diǎn)間隔和重設(shè)檢查點(diǎn)的開啟,方法是: 4. 1:檢查點(diǎn)控制模塊根據(jù)應(yīng)用線程的狀態(tài)判定應(yīng)用是否已經(jīng)結(jié)束,如果應(yīng)用結(jié)束則執(zhí) 行4. 2,否則轉(zhuǎn)至4.3 ; 4. 2:檢查點(diǎn)控制模塊結(jié)束檢查點(diǎn)控制系統(tǒng)運(yùn)行; 4.3:檢查點(diǎn)控制模塊從錯(cuò)誤率測算模塊獲取Tex(j)并設(shè)定檢查點(diǎn)間隔; 4. 4:檢查點(diǎn)控制模塊重新設(shè)定檢查點(diǎn)的開始時(shí)間tstart = tsys,并返回2. 2。
2. 如權(quán)利要求1所述的面向可變錯(cuò)誤率的檢查點(diǎn)間隔實(shí)時(shí)確定方法,其特征在于 3. 6. 3步錯(cuò)誤率測算模塊采用加權(quán)迭代法對MTTE (tp進(jìn)行測算的過程是: 3. 6. 3. 1獲取當(dāng)前錯(cuò)誤發(fā)生次數(shù)i ; 3. 6. 3. 2當(dāng)i〈K時(shí),K是計(jì)算一次平均錯(cuò)誤時(shí)間所需要平均的錯(cuò)誤次數(shù),范圍是8?32, MTTE (tj) = (tj-t〇) /i,結(jié)束; 3. 6. 3. 3 當(dāng) i 彡 K 時(shí),MTTE (tp = p* (七廠心如)/K+(1-p) *MTTE (V1),其中,(七廠心如)/ K為最近K次錯(cuò)誤的平均時(shí)間,MTTEajJ為上一次檢查點(diǎn)更新時(shí)測算的錯(cuò)誤率; 3. 6. 3. 4 如果 I Uj-V3) /4-MITE (tj I /MTTE (V1) >0? 5,貝Ij MTTE (tj) = p* (tj-tH) /4+ (1-p) *MTTE (V1),結(jié)束; 如果 I (tj-td/^-MTTEaH) l/MTTEan)彡 0? 5,結(jié)束。
【文檔編號】G06F11/14GK104331347SQ201410683405
【公開日】2015年2月4日 申請日期:2014年11月25日 優(yōu)先權(quán)日:2014年11月25日
【發(fā)明者】賈文濤, 張春元, 李宗伯, 楊乾明, 羅磊, 薛云剛, 藍(lán)強(qiáng) 申請人:中國人民解放軍國防科學(xué)技術(shù)大學(xué)