一種自動(dòng)從系統(tǒng)數(shù)據(jù)欠載異?;謴?fù)的方法
【專利摘要】本發(fā)明提供了一種自動(dòng)從系統(tǒng)數(shù)據(jù)欠載異?;謴?fù)的方法,在現(xiàn)有緩存結(jié)構(gòu)上增加了讀指針B及自動(dòng)恢復(fù)模塊。當(dāng)系統(tǒng)發(fā)生緩存欠載時(shí),讀指針A不再根據(jù)讀使能信號(hào)增加,而是產(chǎn)生欠載時(shí)的所需數(shù)據(jù)地址,讀指針B繼續(xù)根據(jù)讀使能變化并用來(lái)保持判斷緩存是否已經(jīng)恢復(fù)及記錄發(fā)生欠載數(shù)據(jù)的數(shù)量,系統(tǒng)自動(dòng)恢復(fù)后兩個(gè)讀針保持同步。本發(fā)明自動(dòng)從系統(tǒng)數(shù)據(jù)欠載異?;謴?fù),不需要占用中央處理器資源,降低了CPU和系統(tǒng)實(shí)時(shí)運(yùn)算能力要求,避免了在欠載異常時(shí)的崩潰和系統(tǒng)掛起,避免產(chǎn)生中斷和CPU干預(yù),節(jié)省了系統(tǒng)開(kāi)銷和復(fù)雜度,有較廣泛的應(yīng)用前景。
【專利說(shuō)明】一種自動(dòng)從系統(tǒng)數(shù)據(jù)欠載異?;謴?fù)的方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種自動(dòng)從系統(tǒng)數(shù)據(jù)欠載異?;謴?fù)的方法,具體說(shuō)是利用一種新型的緩存系統(tǒng)來(lái)解決短期緩存欠載問(wèn)題,使得系統(tǒng)無(wú)需主處理器干預(yù)、能自動(dòng)從異常狀況檢測(cè)恢復(fù)并能夠繼續(xù)運(yùn)行。
【背景技術(shù)】
[0002]在嵌入式系統(tǒng)中,系統(tǒng)會(huì)由于帶寬問(wèn)題或處理能力限制,無(wú)法及時(shí)產(chǎn)生或?qū)懭胄枰臄?shù)據(jù)內(nèi)容,而同時(shí)數(shù)據(jù)讀取端仍然需要繼續(xù)讀出數(shù)據(jù),此時(shí)數(shù)據(jù)緩存發(fā)生欠載異常。例如在顯示系統(tǒng)中沒(méi)有產(chǎn)生顯示的內(nèi)容或是無(wú)法按時(shí)寫入顯示輸入緩存,從而導(dǎo)致顯示崩潰和甚至死機(jī)。通常系統(tǒng)中的數(shù)據(jù)緩存處理不具有欠載恢復(fù)功能,容易導(dǎo)致系統(tǒng)出錯(cuò)甚至系統(tǒng)掛死。
[0003]現(xiàn)有技術(shù):美國(guó)專利US5819114 Interrupption recovery and resynchronizationof events in a computer,該專利使用了一個(gè)欠載計(jì)數(shù)器并用中斷來(lái)通知處理器來(lái)填充一個(gè)記錄緩存,但是它需要占用中央處理器資源,而且無(wú)法自動(dòng)從異常中恢復(fù)。
【發(fā)明內(nèi)容】
[0004]本發(fā)明解決了技術(shù)問(wèn)題是針對(duì)現(xiàn)有技術(shù)中,在通常系統(tǒng)中的數(shù)據(jù)緩存處理不具有欠載恢復(fù)功能,容易導(dǎo)致系統(tǒng)出錯(cuò)甚至系統(tǒng)掛死的缺點(diǎn),提出來(lái)一種新型的緩存系統(tǒng)來(lái)解決短期緩存欠載問(wèn)題,使得系統(tǒng)無(wú)需主處理器干預(yù)、能自動(dòng)從異常狀況恢復(fù)并能夠繼續(xù)運(yùn)行。
[0005]為解決上述技術(shù)問(wèn)題,本發(fā)明提出了一種自動(dòng)從系統(tǒng)數(shù)據(jù)欠載異常恢復(fù)的方法,包括以下步驟:
步驟一,當(dāng)系統(tǒng)數(shù)據(jù)欠載異常,緩存空或欠載時(shí),讀指針A停止而讀指針B繼續(xù)增加;步驟二,讀指針A被用作異常發(fā)生期間訪問(wèn)內(nèi)部數(shù)據(jù)緩存模塊的地址,地址或使用發(fā)生欠載異常前最后一個(gè)地址,地址或是跳到一個(gè)預(yù)設(shè)地址來(lái)使用預(yù)設(shè)內(nèi)容和數(shù)據(jù);
步驟三,緩存空及自動(dòng)恢復(fù)模塊根據(jù)讀指針A、讀指針B、發(fā)生欠載時(shí)保存的地址和寫指針,產(chǎn)生緩存空信號(hào)和自動(dòng)恢復(fù)信號(hào);
步驟四,當(dāng)寫指針等于讀指針B時(shí)表明顯示緩存已經(jīng)恢復(fù),緩存空及自動(dòng)恢復(fù)模塊產(chǎn)生的自動(dòng)恢復(fù)信號(hào)有效;
步驟五,當(dāng)收到恢復(fù)信號(hào)時(shí),根據(jù)讀指針B自動(dòng)重新采樣生成新的讀指針A,系統(tǒng)自動(dòng)恢復(fù)運(yùn)行,當(dāng)系統(tǒng)正常運(yùn)行未發(fā)生欠載時(shí),讀指針A和讀指針B同時(shí)變化,即每次讀使能有效時(shí)加一。
[0006]進(jìn)一步的,前述的一種自動(dòng)從系統(tǒng)數(shù)據(jù)欠載異常恢復(fù)的方法,步驟二中地址即是使用發(fā)生欠載異常前最后一個(gè)地址,欠載前的最后一個(gè)地址被重復(fù)讀取,系統(tǒng)繼續(xù)運(yùn)行。
[0007]進(jìn)一步的,前述的一種自動(dòng)從系統(tǒng)數(shù)據(jù)欠載異常恢復(fù)的方法,步驟二中地址即是跳到一個(gè)預(yù)設(shè)地址來(lái)使用預(yù)設(shè)內(nèi)容和數(shù)據(jù),預(yù)設(shè)地址是額外保存發(fā)生緩存欠載時(shí)的地址,預(yù)設(shè)內(nèi)容輔助異常時(shí)狀態(tài)或數(shù)據(jù)的處理。
[0008]進(jìn)一步的,前述的一種自動(dòng)從系統(tǒng)數(shù)據(jù)欠載異?;謴?fù)的方法,步驟四中讀指針B的位寬決定了系統(tǒng)可以容忍多長(zhǎng)時(shí)間的欠載,通過(guò)處理該長(zhǎng)度可以大于正常所需緩存容量。
[0009]本發(fā)明采用以上技術(shù)方案具有以下技術(shù)效果:讀指針B的位寬決定了系統(tǒng)可以容忍多長(zhǎng)時(shí)間的欠載,通過(guò)處理該長(zhǎng)度可以大于正常所需緩存容量,增大系統(tǒng)容錯(cuò)性,增加了系統(tǒng)對(duì)時(shí)延的容忍度。讀指針A或跳到一個(gè)預(yù)設(shè)地址來(lái)使用預(yù)設(shè)內(nèi)容和數(shù)據(jù),或被用作訪問(wèn)內(nèi)部數(shù)據(jù)緩存模塊的地址,降低了 CPU和系統(tǒng)實(shí)時(shí)運(yùn)算能力要求,避免了在欠載異常時(shí)的崩潰和系統(tǒng)掛起。緩存空及自動(dòng)恢復(fù)模塊根據(jù)所述讀指針A、所述讀指針B、發(fā)生欠載時(shí)保存的地址和寫指針,產(chǎn)生緩存空信號(hào)和自動(dòng)恢復(fù)信號(hào),無(wú)需CPU干預(yù)。發(fā)生異常時(shí)系統(tǒng)可以自動(dòng)檢測(cè)恢復(fù),避免產(chǎn)生中斷和CPU干預(yù),節(jié)省了系統(tǒng)開(kāi)銷和復(fù)雜度,不增加系統(tǒng)成本。
【專利附圖】
【附圖說(shuō)明】
[0010]圖1是本發(fā)明自動(dòng)從系統(tǒng)數(shù)據(jù)欠載異?;謴?fù)的緩存結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0011]為了加深對(duì)本發(fā)明的理解,下面將結(jié)合附圖和實(shí)施例對(duì)本發(fā)明作進(jìn)一步詳細(xì)描述,該實(shí)施例僅用于解釋本發(fā)明,并不對(duì)本發(fā)明的保護(hù)范圍構(gòu)成限定。
[0012]本發(fā)明的實(shí)質(zhì)是增加了所述讀指針B及所述自動(dòng)恢復(fù)模塊。當(dāng)系統(tǒng)發(fā)生緩存欠載時(shí),所述讀指針A不再根據(jù)讀使能信號(hào)增加,而是產(chǎn)生欠載時(shí)的所需數(shù)據(jù)地址,所述讀指針B繼續(xù)根據(jù)讀使能變化并用來(lái)保持判斷緩存是否已經(jīng)恢復(fù)及記錄發(fā)生欠載數(shù)據(jù)的數(shù)量,系統(tǒng)自動(dòng)恢復(fù)后兩個(gè)讀針保持同步。
[0013]本發(fā)明的具體實(shí)施過(guò)程如下:
1、當(dāng)系統(tǒng)數(shù)據(jù)欠載異常,緩存空或欠載時(shí),讀指針A停止而讀指針B繼續(xù)增加;
2、所述讀指針A被用作異常發(fā)生期間訪問(wèn)內(nèi)部數(shù)據(jù)緩存模塊的地址,所述地址或使用發(fā)生欠載異常前最后一個(gè)地址,所述地址或是跳到一個(gè)預(yù)設(shè)地址來(lái)使用預(yù)設(shè)內(nèi)容和數(shù)據(jù);
上述2中:所述地址或是使用發(fā)生欠載異常前最后一個(gè)地址,欠載前的最后一個(gè)地址被重復(fù)讀取,系統(tǒng)繼續(xù)運(yùn)行,不會(huì)出現(xiàn)系統(tǒng)崩潰或掛死;所述地址或是跳到一個(gè)預(yù)設(shè)地址來(lái)使用預(yù)設(shè)內(nèi)容和數(shù)據(jù),所述預(yù)設(shè)地址是額外保存發(fā)生緩存欠載時(shí)的地址,所述預(yù)設(shè)內(nèi)容輔助異常時(shí)狀態(tài)或數(shù)據(jù)的處理,例如顯示特定內(nèi)容、發(fā)送特定幀等;
3、緩存空及自動(dòng)恢復(fù)模塊根據(jù)所述讀指針A、所述讀指針B、發(fā)生欠載時(shí)保存的地址和寫指針,產(chǎn)生緩存空信號(hào)和自動(dòng)恢復(fù)信號(hào);
4、當(dāng)所述寫指針等于所述讀指針B時(shí)表明顯示緩存已經(jīng)恢復(fù),所述緩存空及自動(dòng)恢復(fù)模塊產(chǎn)生的自動(dòng)恢復(fù)信號(hào)有效,所述讀指針B的位寬決定了系統(tǒng)可以容忍多長(zhǎng)時(shí)間的欠載,通過(guò)處理該長(zhǎng)度可以大于正常所需緩存容量,增大系統(tǒng)容錯(cuò)性;
5、當(dāng)收到恢復(fù)信號(hào)時(shí),根據(jù)所述讀指針B自動(dòng)重新采樣生成新的所述讀指針A,系統(tǒng)自動(dòng)恢復(fù)運(yùn)行,當(dāng)系統(tǒng)正常運(yùn)行未發(fā)生欠載時(shí),所述讀指針A和所述讀指針B同時(shí)變化,即每次讀使能有效時(shí)加一。
[0014]綜上所述,本發(fā)明所涉及的一種自動(dòng)從系統(tǒng)數(shù)據(jù)欠載異?;謴?fù)的方法,自動(dòng)從異常中檢測(cè)恢復(fù),不需要占用中央處理器資源,降低了 CPU和系統(tǒng)實(shí)時(shí)運(yùn)算能力要求,避免了在欠載異常時(shí)的崩潰和系統(tǒng)掛起,避免產(chǎn)生中斷和CPU干預(yù),節(jié)省了系統(tǒng)開(kāi)銷和復(fù)雜度,不增加系統(tǒng)成本,有較廣泛的應(yīng)用前景。
【權(quán)利要求】
1.一種自動(dòng)從系統(tǒng)數(shù)據(jù)欠載異?;謴?fù)的方法,其特征在于,包括以下步驟: 步驟一,當(dāng)系統(tǒng)數(shù)據(jù)欠載異常,緩存空或欠載時(shí),讀指針A停止而讀指針B繼續(xù)增加; 步驟二,所述讀指針A被用作異常發(fā)生期間訪問(wèn)內(nèi)部數(shù)據(jù)緩存模塊的地址,所述地址或使用發(fā)生欠載異常前最后一個(gè)地址,所述地址或是跳到一個(gè)預(yù)設(shè)地址來(lái)使用預(yù)設(shè)內(nèi)容和數(shù)據(jù); 步驟三,緩存空及自動(dòng)恢復(fù)模塊根據(jù)所述讀指針A、所述讀指針B、發(fā)生欠載時(shí)保存的地址和寫指針,產(chǎn)生緩存空信號(hào)和自動(dòng)恢復(fù)信號(hào); 步驟四,當(dāng)所述寫指針等于所述讀指針B時(shí)表明顯示緩存已經(jīng)恢復(fù),所述緩存空及自動(dòng)恢復(fù)模塊產(chǎn)生的自動(dòng)恢復(fù)信號(hào)有效; 步驟五,當(dāng)收到恢復(fù)信號(hào)時(shí),根據(jù)所述讀指針B自動(dòng)重新采樣生成新的所述讀指針A,系統(tǒng)自動(dòng)恢復(fù)運(yùn)行,當(dāng)系統(tǒng)正常運(yùn)行未發(fā)生欠載時(shí),所述讀指針A和所述讀指針B同時(shí)變化,即每次讀使能有效時(shí)加一。
2.如權(quán)利要求1所述的一種自動(dòng)從系統(tǒng)數(shù)據(jù)欠載異常恢復(fù)的方法,其特征在于,步驟二中所述地址即是使用發(fā)生欠載異常前最后一個(gè)地址,欠載前的最后一個(gè)地址被重復(fù)讀取,系統(tǒng)繼續(xù)運(yùn)行。
3.如權(quán)利要求1所述的一種自動(dòng)從系統(tǒng)數(shù)據(jù)欠載異?;謴?fù)的方法,其特征在于,步驟二中所述地址即是跳到一個(gè)預(yù)設(shè)地址來(lái)使用預(yù)設(shè)內(nèi)容和數(shù)據(jù),所述預(yù)設(shè)地址是額外保存發(fā)生緩存欠載時(shí)的地址,所述預(yù)設(shè)內(nèi)容輔助異常時(shí)狀態(tài)或數(shù)據(jù)的處理。
4.如權(quán)利要求1所述的一種自動(dòng)從系統(tǒng)數(shù)據(jù)欠載異?;謴?fù)的方法,其特征在于,步驟四中所述讀指針B的位寬決定了系統(tǒng)可以容忍多長(zhǎng)時(shí)間的欠載,通過(guò)處理該長(zhǎng)度可以大于正常所需緩存容量。
【文檔編號(hào)】G06F11/28GK103970637SQ201310139988
【公開(kāi)日】2014年8月6日 申請(qǐng)日期:2013年4月22日 優(yōu)先權(quán)日:2013年4月22日
【發(fā)明者】龔惠民 申請(qǐng)人:龔惠民