欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

非易失性高速緩沖存儲器、其處理方法以及計算機系統(tǒng)與流程

文檔序號:11407382閱讀:543來源:國知局
非易失性高速緩沖存儲器、其處理方法以及計算機系統(tǒng)與流程
本發(fā)明涉及非易失性高速緩沖存儲器、非易失性高速緩沖存儲器的處理方法以及具有非易失性高速緩沖存儲器的計算機系統(tǒng)。

背景技術(shù):
在已知的計算機系統(tǒng)中,處理器從主存儲器獲取數(shù)據(jù)和諸如命令的信息或更新主存儲器的信息。此時,諸如主存儲器的等待時間的存取性能劣于處理器的處理性能。因此,主存儲器和處理器之間的性能差造成計算機系統(tǒng)的總性能的瓶頸。高速緩沖存儲器是新設(shè)置在存儲層以消除瓶頸并設(shè)置在處理器和主存儲器之間的存儲器。一般地,使用以高于主存儲器的速度運行的SRAM(靜態(tài)隨機存取存儲器)作為高速緩沖存儲器。當(dāng)處理器從主存儲器獲取數(shù)據(jù)或更新主存儲器的信息時,相同數(shù)據(jù)也存儲在高速緩沖存儲器中。然后,當(dāng)獲取或更新相同數(shù)據(jù)時,高速緩存存儲器代替主存儲器執(zhí)行數(shù)據(jù)的輸入和輸出。因此,主存儲器和處理器之間的性能差被隱蔽掉,從而構(gòu)建了高速計算機系統(tǒng)。另一方面,為了對移動設(shè)備應(yīng)用計算機系統(tǒng),越來越需求節(jié)電控制技術(shù)。在最新的高性能處理器中使用的半導(dǎo)體電路技術(shù)中,漏電流與功耗的比例很大。因此,例如,當(dāng)沒有要處理的命令時,一直使用一種所謂的電源門控的技術(shù)來中斷對處理器的供電以防止漏電發(fā)生。另一方面,用作高速緩沖存儲器的SRAM是易失性存儲器。因此,當(dāng)中斷供電時,存儲在SRAM中的數(shù)據(jù)丟失。鑒于上述問題,日本專利申請公開號2011-150653公開了一種方法,在構(gòu)成高速緩沖存儲器的部件中,該方法僅對控制數(shù)據(jù)的輸入和輸出的控制器中斷供電,而對存儲數(shù)據(jù)的SRAM單元陣列保持供電,以減少高速緩沖存儲器中消耗的電力。

技術(shù)實現(xiàn)要素:
然而,因為在SRAM單元陣列本身中也會發(fā)生漏電,所以通過上述方法難以實現(xiàn)足夠的節(jié)電。因此,應(yīng)考慮使用非易失性高速緩沖存儲器并且在對處理器中斷供電時中斷對整個高速緩沖存儲器的供電。作為這種非易失性高速緩沖存儲器的候選,已經(jīng)在關(guān)注使用鐵磁性體的MRAM(磁性隨機存取存儲器)、使用相變材料的PCRAM(相變隨機存取存儲器)、使用具有可變電阻特性的材料的ReRAM(電阻式隨機存取存儲器)等。此外,國際公開號2009-028298的小冊子公開了一種存儲器,該存儲器在正常操作下作為SRAM而操作,但是被制作成非易失性的,因為在供電中斷時其將數(shù)據(jù)存儲在非易失性元件中。在非易失性存儲器中,即使供電中斷,原則上也會保留所存儲的數(shù)據(jù),但存儲器具有保留數(shù)據(jù)的時間限制。例如,有可能會由于MRAM中的熱擾動而使數(shù)據(jù)丟失。到數(shù)據(jù)丟失的時間被稱為保留時間??梢酝ㄟ^使對熱擾動性的耐性提供來增加保留時間。然而,須考慮以下事實:保留時間取決于寫入數(shù)據(jù)時消耗的電力和寫入數(shù)據(jù)所需的時間。換言之,需用大的電力來寫入數(shù)據(jù)或需要長時間來寫入數(shù)據(jù)以增加保留時間,這會不利于節(jié)電和加速。因此,需要小心設(shè)計非易失性高速緩沖存儲器的使用時的保留時間。當(dāng)非易失性高速緩沖存儲器處于啟動供電的操作狀態(tài)下時,數(shù)據(jù)被頻繁地從存儲器輸出和輸入存儲器中。因此,需要以高速對非易失性高速緩沖存儲器進行數(shù)據(jù)的輸入和輸出。此外,需要使用更少的能量來寫入數(shù)據(jù),以用于節(jié)電。為了滿足這樣的需求,期望的是非易失性高速緩沖存儲器的保留時間被設(shè)計得很短。另一方面,當(dāng)非易失性高速緩沖存儲器處于供電中斷的待機狀態(tài)下時,需要在非易失性高速緩沖存儲器中保留數(shù)據(jù)。然而,因為非易失性高速緩沖存儲器的停留時間被設(shè)計得很短,所以當(dāng)非易失性高速緩沖存儲器處于待機狀態(tài)下時,有可能丟失數(shù)據(jù)。這會導(dǎo)致主存儲器和非易失性高速緩沖存儲器之間的數(shù)據(jù)的不一致,而使得會降低計算機系統(tǒng)的可靠性。鑒于上述問題創(chuàng)作了本發(fā)明,因此,期望的是當(dāng)非易失性高速緩沖存儲器處于供電中斷的待機狀態(tài)下時,增強非易失性高速緩沖存儲器的數(shù)據(jù)的可靠性。根據(jù)本發(fā)明的實施方式,提供了一種非易失性高速緩沖存儲器,其包括非易失性存儲器部和高速緩存控制器。非易失性存儲器部被配置為存儲高速緩存數(shù)據(jù)。高速緩存控制器被配置為控制對非易失性存儲器部進行的高速緩存數(shù)據(jù)的讀取和寫入。此外,高速緩存控制器被配置為執(zhí)行用于生成待機狀態(tài)數(shù)據(jù)并將所生成的待機狀態(tài)數(shù)據(jù)存儲在非易失性存儲器部中的待機準(zhǔn)備處理,作為供電中斷的準(zhǔn)備。此外,高速緩存控制器被配置為在供電恢復(fù)時,使用待機狀態(tài)數(shù)據(jù)對存儲在非易失性存儲器部中的高速緩存數(shù)據(jù)執(zhí)行恢復(fù)處理。根據(jù)本發(fā)明的另一個實施方式,提供了一種非易失性高速緩沖存儲器的處理方法,該非易失性高速緩沖存儲器具有被配置為存儲高速緩存數(shù)據(jù)的非易失性存儲器部。在處理方法中,進行用于生成待機狀態(tài)數(shù)據(jù)并在非易失性存儲器部中存儲所生成的待機狀態(tài)數(shù)據(jù)的待機準(zhǔn)備處理,作為供電中斷的準(zhǔn)備。此外,在供電恢復(fù)時,使用待機狀態(tài)數(shù)據(jù)對存儲在非易失性存儲器部中的高速緩存數(shù)據(jù)進行恢復(fù)處理。根據(jù)本發(fā)明的又一實施方式,提供了一種計算機系統(tǒng),其包括處理器、非易失性高速緩沖存儲器、電力控制電路和主存儲器。電力控制電路被配置為控制對處理器和非易失性高速緩沖存儲器的供電。處理器被配置為通過非易失性高速緩沖存儲器進行對主存儲器的數(shù)據(jù)的讀取和寫入。此外,處理器被配置為當(dāng)電力控制電路中斷供電時,將請求轉(zhuǎn)移到待機狀態(tài)的待機信號發(fā)送至非易失性高速緩沖存儲器。此外,處理器被配置為當(dāng)電力控制電路恢復(fù)供電時,將請求恢復(fù)供電和轉(zhuǎn)移至操作狀態(tài)的恢復(fù)信號發(fā)送至非易失性高速緩沖存儲器。非易失性高速緩沖存儲器具有非易失性存儲器部和高速緩存控制器。非易失性存儲器部被配置為存儲高速緩存數(shù)據(jù)。高速緩存控制器被配置為控制對非易失性存儲器部的高速緩存數(shù)據(jù)的讀取和寫入。此外,高速緩存控制器被配置為在接收到待機信號時,進行生成待機狀態(tài)數(shù)據(jù)并將所生成的待機狀態(tài)數(shù)據(jù)存儲在非易失性存儲器部中的待機準(zhǔn)備處理。此外,高速緩存控制器被配置為在接收到恢復(fù)信號時,使用待機狀態(tài)數(shù)據(jù)對存儲在非易失性存儲器部中的高速緩存數(shù)據(jù)進行恢復(fù)處理。換言之,根據(jù)本發(fā)明的實施方式,非易失性高速緩沖存儲器在供電中斷時執(zhí)行生成待機狀態(tài)數(shù)據(jù)并在非易失性存儲器部中存儲所生成的待機狀態(tài)數(shù)據(jù)的待機準(zhǔn)備處理。例如,非易失性高速緩沖存儲器存儲具有錯誤糾正數(shù)據(jù)(ECC(錯誤糾正碼)數(shù)據(jù))或錯誤檢測數(shù)據(jù)(EDC(錯誤檢測碼)數(shù)據(jù))的待機狀態(tài)數(shù)據(jù)。然后,在供電恢復(fù)時,非易失性高速緩沖存儲器使用待機狀態(tài)數(shù)據(jù)對存儲在非易失性存儲器部中的高速緩存數(shù)據(jù)進行恢復(fù)處理,作為恢復(fù)操作。例如,非易失性高速緩沖存儲器進行錯誤糾正處理或錯誤檢測處理。因此,例如,即使在供電中斷期間丟失了高速緩存數(shù)據(jù),也能夠在供電恢復(fù)之后使用正確的高速緩存數(shù)據(jù)來進行高速緩存操作。根據(jù)本發(fā)明的實施方式,能夠提高非易失性高速緩沖存儲器的可靠性。這是因為即使非易失性高速緩沖存儲器在待機狀態(tài)下丟失了它的信息,其也可以通過檢測和恢復(fù)信息來保持與主存儲器的信息的一致性。根據(jù)附圖所示的以下最佳實施方式的詳細(xì)描述,本發(fā)明的這些以及其他目的、特征和優(yōu)點將變得更加顯而易見。附圖說明圖1是根據(jù)本發(fā)明實施方式的計算機系統(tǒng)的框圖;圖2是用于說明根據(jù)第一實施方式和第二實施方式的高速緩存線的示圖;圖3是用于說明根據(jù)第一實施方式的處于操作狀態(tài)下的高速緩存線的數(shù)據(jù)結(jié)構(gòu)的示圖;圖4是用于說明根據(jù)第一實施方式的處于待機狀態(tài)下的高速緩存線的數(shù)據(jù)結(jié)構(gòu)的示圖;圖5是示出了根據(jù)第一實施方式的讀取操作的流程圖;圖6是示出了根據(jù)第一實施方式的寫入操作的流程圖;圖7是示出了根據(jù)第一實施方式的轉(zhuǎn)移到待機狀態(tài)的處理的流程圖;圖8是示出了根據(jù)第一實施方式的恢復(fù)到操作狀態(tài)的處理的流程圖;圖9是用于說明根據(jù)第二實施方式的處于待機狀態(tài)下的高速緩存線的數(shù)據(jù)結(jié)構(gòu)的示圖;圖10是用于說明根據(jù)第二實施方式的在轉(zhuǎn)移到待機狀態(tài)的過程中高速緩存線的分類的示圖;圖11是示出了根據(jù)第二實施方式的轉(zhuǎn)移到待機狀態(tài)的過程的流程圖;圖12是用于說明根據(jù)第三實施方式的高速緩存線的示圖;圖13是用于說明根據(jù)第三實施方式的處于操作狀態(tài)和待機狀態(tài)下的高速緩存線的數(shù)據(jù)結(jié)構(gòu)的示圖;圖14是示出了根據(jù)第三實施方式的轉(zhuǎn)移到待機狀態(tài)的處理的流程圖;圖15是用于說明根據(jù)第四實施方式的高速緩存線的示圖;圖16是用于說明根據(jù)第四實施方式的處于待機狀態(tài)下的高速緩存線的數(shù)據(jù)結(jié)構(gòu)的示圖;圖17是示出了根據(jù)第四實施方式的轉(zhuǎn)移到待機狀態(tài)的過程的流程圖;圖18是示出了根據(jù)第四實施方式的恢復(fù)到操作狀態(tài)的過程的流程圖。具體實施方式下文中,將參照附圖詳細(xì)描述本發(fā)明的實施方式。然而,本發(fā)明不限于以下實施方式。請注意,將按以下順序給出描述。(1)實施方式的基本構(gòu)造(2)第一實施方式(3)第二實施方式(4)第三實施方式(5)第四實施方式(6)變形例(1)實施方式的基本構(gòu)造圖1示出了根據(jù)實施方式的計算機系統(tǒng)的構(gòu)造。圖1所示的計算機系統(tǒng)具有處理器10、非易失性高速緩沖存儲器11、主存儲器12、電力控制電路13、內(nèi)部總線14和系統(tǒng)總線15。在計算機系統(tǒng)中,處理器10通過非易失性高速緩沖存儲器11對主存儲器12進行數(shù)據(jù)的讀取和寫入。非易失性高速緩沖存儲器11能夠以高于主存儲器12的速度進行數(shù)據(jù)的輸入和輸出。電力控制電路13控制對處理器10和非易失性高速緩沖存儲器11的供電的執(zhí)行和中斷。首先,將描述非易失性高速緩沖存儲器11。如圖1所示,非易失性高速緩沖存儲器11具有管理數(shù)據(jù)的輸入和輸出的高速緩存控制器21和存儲數(shù)據(jù)的非易失性存儲器部22。用于對處理器10進行數(shù)據(jù)的讀取和寫入的請求通過內(nèi)部總線14傳輸至高速緩存控制器21。高速緩存控制器21管理被稱為高速緩存線的單元中的非易失性存儲器部22的數(shù)據(jù)。圖2是以全相關(guān)映射(mapping)的方式示出高速緩存線CL的構(gòu)造示例的示圖。每條高速緩存線CL1、CL2,...CLn都具有標(biāo)記區(qū)域和高速緩存數(shù)據(jù)區(qū)域。在圖2中,存儲在每個標(biāo)記區(qū)域中的標(biāo)記信息被表示為“TG”,且存儲在每個高速緩存數(shù)據(jù)區(qū)域中的高速緩存數(shù)據(jù)被表示為“CD”。表示每條高速緩存線的編號被添加至“TG”和“CD”。例如,高速緩存線CL1的標(biāo)記信息被表示為“TG1”,且其高速緩存數(shù)據(jù)被表示為“CD1”。此外,高速緩存線CL2的標(biāo)記信息被表示為“TG2”,且其高速緩存數(shù)據(jù)被表示為“CD2”。如圖2所示,作為主存儲器12的數(shù)據(jù)的副本的高速緩存數(shù)據(jù)CD存儲在每個高速緩存數(shù)據(jù)區(qū)域中。標(biāo)記信息TG存儲在每個標(biāo)記區(qū)域中。每個標(biāo)記信息TG包括表示主存儲器12中的相應(yīng)高速緩存數(shù)據(jù)CD的存儲位置的信息(地址高階位)和表示相應(yīng)高速緩存線CL的狀態(tài)的控制位。沒有必要存儲所有的地址位作為存儲在每個標(biāo)記區(qū)域中的地址信息。例如,當(dāng)每個高速緩存數(shù)據(jù)區(qū)域具有32字節(jié)的寬度時,不含低階五位的高階位地址存儲在每個標(biāo)記區(qū)域中。在這個意義上,地址信息在圖2中被表示為“地址高階位”。存儲在每個標(biāo)記區(qū)域中的控制位包括ECC位Eb、有效位Vb和頁面重寫標(biāo)志位(dirtybit)Db。ECC位Eb是當(dāng)非易失性高速緩沖存儲器11處于待機狀態(tài)下時使用的位,將在每個實施方式中對其進行詳細(xì)描述。有效位Vb是表示相應(yīng)高速緩存線CL的有效性的位。當(dāng)有效位Vb是1時,高速緩存控制器21可從高速緩存線CL的高速緩存數(shù)據(jù)區(qū)域中讀取高速緩存數(shù)據(jù)CD。頁面重寫標(biāo)志位Db是表示相應(yīng)高速緩存數(shù)據(jù)CD在被讀取后發(fā)生改變的位。在其頁面重寫標(biāo)志位為1的高速緩存線CL中,高速緩存數(shù)據(jù)CD不同于主存儲器12的數(shù)據(jù)。因此,在釋放高速緩存線CL時,需要將高速緩存數(shù)據(jù)CD寫回主存儲器12的相應(yīng)地址,以保持?jǐn)?shù)據(jù)與主存儲器12的一致性。在從處理器10接收到用于讀取數(shù)據(jù)的請求時,高速緩存控制器21檢索在非易失性存儲器部22中是否存在相應(yīng)有效高速緩存數(shù)據(jù)CD。如果在非易失性存儲器部22中存在有效高速緩存數(shù)據(jù)CD,則高速緩存控制器21從高速非易失性存儲器部22中讀取高速緩存數(shù)據(jù)CD,并通過內(nèi)部總線14將讀取的高速緩存數(shù)據(jù)CD傳輸至處理器10。如果在非易失性存儲器部22中不存在有效高速緩存數(shù)據(jù)CD,則高速緩存控制器21通過系統(tǒng)總線15從主存儲器12中讀取相應(yīng)高速緩存數(shù)據(jù)CD。然后,高速緩存控制器21通過內(nèi)部總線14將所讀取的高速緩存數(shù)據(jù)CD傳輸至處理器10,同時將所讀取的高速緩存數(shù)據(jù)CD與其地址一起存儲在非易失性存儲器部22中。返回參照圖1,將繼續(xù)進行描述。電力控制電路13控制時鐘信號和電力是否被供應(yīng)至處理器10和非易失性高速緩沖存儲器11。處理器10具有節(jié)電功能,其中在該節(jié)電功能下,例如,當(dāng)不存在要處理的命令時,處理器10轉(zhuǎn)移到待機狀態(tài)以中斷時鐘信號和電力的供應(yīng),以減少耗電。當(dāng)轉(zhuǎn)移至待機狀態(tài)時,處理器10將表示其將轉(zhuǎn)移至待機狀態(tài)的信號PW_OFF輸出至電力控制電路13。一旦接收到信號PW_OFF,電力控制電路13就將輸入至處理器10的電力PW_COR4和時鐘信號CLK_COR4以及輸入至非易失性高速緩沖存儲器11的電力PW_CACHE和時鐘信號CLK_CACHE設(shè)定為低電平,以中斷時鐘信號和電力的供應(yīng)。此時,當(dāng)中斷供電時,保留在寄存器中的內(nèi)部數(shù)據(jù)或保留在處理器10中的類似數(shù)據(jù)丟失。因此,期望的是使預(yù)先保存在非易失性高速緩沖存儲器11或其本身的寄存器等中的這種數(shù)據(jù)為非易失性的。在國際公開號2009-028298的小冊子中公開了使寄存器等為非易失性的方法。非易失性高速緩沖存儲器11將高速緩存數(shù)據(jù)CD存儲在非易失性存儲器部22中。因此,即使中斷了供電,高速緩存數(shù)據(jù)CD原則上也會保留在非易失性存儲器部22中。然而,高速緩存數(shù)據(jù)CD被丟失的可能性取決于待機時間的長度。鑒于上述問題,在根據(jù)實施方式的計算機系統(tǒng)中,當(dāng)處于待機狀態(tài)時,非易失性高速緩沖存儲器11將高速緩存線CL轉(zhuǎn)換為具有用于待機狀態(tài)的數(shù)據(jù)結(jié)構(gòu)的高速緩存線。例如,當(dāng)用于待機狀態(tài)的每條高速緩存線CL具有錯誤糾正碼時,即使在待機狀態(tài)下丟失了數(shù)據(jù),原始數(shù)據(jù)也會被恢復(fù)或使丟失的數(shù)據(jù)無效。因此,能夠保持與主存儲器12的數(shù)據(jù)的一致性。當(dāng)轉(zhuǎn)移到待機狀態(tài)時,處理器10將請求轉(zhuǎn)移到待機狀態(tài)的信號STBY輸出至非易失性高速緩沖存儲器11,之后將表示其將轉(zhuǎn)移至待機狀態(tài)的信號PW_OFF輸出至電力控制電路13。一旦接收到信號STBY,非易失性高速緩沖存儲器11的高速緩存控制器21就進行待機準(zhǔn)備處理,以將非易失性存儲器部22內(nèi)的高速緩存線CL轉(zhuǎn)換為具有供待機狀態(tài)時使用的數(shù)據(jù)結(jié)構(gòu)的高速緩存線。如將在下面所詳細(xì)描述的,高速緩存控制器21生成包含ECC數(shù)據(jù)或EDC數(shù)據(jù)的待機狀態(tài)數(shù)據(jù),并將所生成的待機狀態(tài)數(shù)據(jù)存儲在非易失性存儲器部22中。一旦高速緩存線CL至具有供待機狀態(tài)時使用的數(shù)據(jù)結(jié)構(gòu)的高速緩存線的轉(zhuǎn)換完成之后,非易失性高速緩沖存儲器11的高速緩存控制器21將表示轉(zhuǎn)換已完成的信號STBYR輸出至處理器10。一旦接收到信號STBYR,處理器10確定非易失性高速緩沖存儲器11已完成待機準(zhǔn)備處理,以轉(zhuǎn)移到待機狀態(tài),并因此將信號PW_OFF輸出至電力控制電路13。以上述方式進行隨后的操作,且處理器10和非易失性高速緩沖存儲器11轉(zhuǎn)移到待機狀態(tài)。為了終止待機狀態(tài)并恢復(fù)到操作狀態(tài),可使用從外部輸入至電力控制電路13的信號INT。一旦接收到信號INT,電力控制電路13就將輸入至處理器10的電力PW_COR4和時鐘信號CLK_COR4以及輸入至非易失性高速緩沖存儲器11的電力PW_CACHE和時鐘信號CKL_CACHE啟動,以恢復(fù)電力和時鐘信號的供應(yīng)。一旦檢測到電力和時鐘信號的供應(yīng)恢復(fù),處理器10就將請求恢復(fù)到正常操作的信號R4S輸出至非易失性高速緩沖存儲器11。一旦接收到信號R4S,非易失性高速緩沖存儲器11的高速緩存控制器21就將非易失性高速緩沖存儲器22內(nèi)的高速緩存線CL重新轉(zhuǎn)換為具有供操作狀態(tài)時使用的數(shù)據(jù)結(jié)構(gòu)的高速緩存線。一旦完成高速緩存線CL至具有供操作狀態(tài)時使用的數(shù)據(jù)結(jié)構(gòu)的高速緩存線的重新轉(zhuǎn)換之后,高速緩存控制器21就將重新轉(zhuǎn)換已完成的信號R4SR輸出至處理器10。一旦接收到信號R4SR,處理器10確定非易失性高速緩沖存儲器11已完成準(zhǔn)備處理以轉(zhuǎn)移至操作狀態(tài),并恢復(fù)正常操作。注意,非易失性高速緩沖存儲器11可檢測時鐘信號和電力的供應(yīng)的恢復(fù),并在不接收信號RES的情況下,將非易失性存儲器部22內(nèi)的高速緩存線CL重新轉(zhuǎn)換為具有供操作狀態(tài)時使用的數(shù)據(jù)結(jié)構(gòu)的高速緩存線。如上所述,非易失性存儲器部22內(nèi)的高速緩存線CL具有不同數(shù)據(jù)結(jié)構(gòu)以對應(yīng)于操作狀態(tài)和待機狀態(tài)。換言之,非易失性高速緩沖存儲器11進行待機準(zhǔn)備處理,以生成含有EDC數(shù)據(jù)、ECC數(shù)據(jù)等的待機狀態(tài)數(shù)據(jù),并將生成的待機狀態(tài)數(shù)據(jù)存儲在非易失性存儲器部22中,作為供電中斷的準(zhǔn)備。因此,在供電中斷之后的待機狀態(tài)下,使非易失性存儲器部22具有包括待機狀態(tài)數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)。然后,在供電恢復(fù)時,非易失性高速緩沖存儲器11使用所存儲的待機狀態(tài)數(shù)據(jù)進行存儲在非易失性存儲器部22中的高速緩存數(shù)據(jù)CD的恢復(fù)處理。如以下所述,非易失性高速緩沖存儲器11進行例如錯誤糾正處理、錯誤檢測處理和其它必要的處理。因此,例如,即使在待機狀態(tài)下丟失信息,也能夠通過檢測和恢復(fù)信息來保持與主存儲器12的信息一致。即,至少有效高速緩存數(shù)據(jù)CD被設(shè)定為與主存儲器12的數(shù)據(jù)一致。換言之,根據(jù)第一實施方式至第四實施方式(將在下面描述)的非易失性高速緩沖存儲器11具有用于存儲高速緩存數(shù)據(jù)CD的非易失性存儲器部22和高速緩存控制器21。高速緩存控制器21控制對非易失性存儲器部22進行的高速緩存數(shù)據(jù)CD的讀取和寫入。此外,高速緩存控制器21進行待機準(zhǔn)備處理,以生成待機狀態(tài)數(shù)據(jù),并將所生成的待機狀態(tài)數(shù)據(jù)存儲在非易失性存儲器部22中,作為供電中斷的準(zhǔn)備。然后,在供電恢復(fù)時,高速緩存控制器21使用待機狀態(tài)數(shù)據(jù)進行存儲在非易失性存儲器部22中的高速緩存數(shù)據(jù)CD的恢復(fù)處理。在第一實施方式至第三實施方式中,高速緩存控制器21生成包含能夠至少對存儲在非易失性存儲器部22中的高速緩存數(shù)據(jù)CD進行錯誤糾正的錯誤糾正數(shù)據(jù)(ECC數(shù)據(jù))的待機狀態(tài)數(shù)據(jù),并將所生成的待機狀態(tài)數(shù)據(jù)存儲在非易失性存儲器部22中,作為待機準(zhǔn)備處理。然后,高速緩沖控制器21使用待機狀態(tài)數(shù)據(jù)中的錯誤糾正數(shù)據(jù)對存儲在非易失性存儲器部22中的高速緩存數(shù)據(jù)CD進行錯誤糾正處理,作為恢復(fù)處理。在第四實施方式中,高速緩存控制器21生成包含能夠至少對存儲在非易失性存儲器部22中的高速緩存數(shù)據(jù)CD進行錯誤檢測的錯誤檢測數(shù)據(jù)(EDC數(shù)據(jù))的待機狀態(tài)數(shù)據(jù),并將所生成的待機狀態(tài)數(shù)據(jù)存儲在非易失性存儲器部22中,作為待機準(zhǔn)備處理。然后,高速緩沖控制器21使用待機狀態(tài)數(shù)據(jù)中的錯誤檢測數(shù)據(jù)對存儲在非易失性存儲器部22中的高速緩存數(shù)據(jù)CD進行錯誤檢測處理,作為恢復(fù)處理。(2)第一實施方式接下來,將描述第一實施方式。在第一實施方式中,以圖2中所述的方式構(gòu)造高速緩存線CL。如圖3和圖4所示構(gòu)造高速緩存線CL的數(shù)據(jù)結(jié)構(gòu),以對應(yīng)于操作狀態(tài)(供應(yīng)電力的正常狀態(tài))和待機狀態(tài)(供電中斷的狀態(tài))。圖3示出操作狀態(tài)下的高速緩存線CL。在這種情況下,所有高速緩存線CL(CL1至CLm)都處于高速緩存線模式下。在高速緩存線模式下,每條高速緩存線CL的控制位的ECC位Eb都被設(shè)定為“0”,這表示高速緩存線CL處于高速緩存線模式下。每條高速緩存線CL的有效位Vb和頁面重寫標(biāo)志位Db根據(jù)每條高速緩存線CL的狀態(tài)來設(shè)定。在圖3中,“×”表示“1”或“0”。每條高速緩存線CL的地址高階位存儲有主存儲器12的地址(主存儲器地址)的必要高階位,作為高速緩存數(shù)據(jù)CD的參照源,且高速緩存數(shù)據(jù)CD存儲對應(yīng)于主存儲器地址的數(shù)據(jù)。然后,當(dāng)從操作狀態(tài)轉(zhuǎn)移到待機狀態(tài)時,進行待機準(zhǔn)備處理以將高速緩存線CL1至CLm分為高速緩存線模式下的高速緩存線CL和ECC模式下的高速緩存線CL。ECC模式是指每條高速緩存線CL存儲待機狀態(tài)數(shù)據(jù)的狀態(tài)。在待機狀態(tài)下,高速緩存線模式下的高速緩存線CL(例如,高速緩存線CL1、CL2等)具有與操作狀態(tài)下的高速緩存線CL的數(shù)據(jù)結(jié)構(gòu)相同的數(shù)據(jù)結(jié)構(gòu)。在處于ECC模式下的每條高速緩存線CL(例如,高速緩存線CLx)中,ECC位Eb被設(shè)定為“1”,這表示高速緩存線CL處于ECC模式下(即,這表示高速緩存線CL存儲ECC數(shù)據(jù)作為待機狀態(tài)數(shù)據(jù))。此外,在處于ECC模式下的每條高速緩存線CL中,高速緩存線CL的控制位的有效位Vb和頁面重寫標(biāo)志位Db被設(shè)定為“0”。此外,在處于ECC模式下的每條高速緩存線CL中,存儲地址高階位的區(qū)域和高速緩存數(shù)據(jù)區(qū)域的組合被新稱為ECC區(qū)域。ECC區(qū)域包括存儲高速緩存地址CA的高速緩存地址區(qū)域和存儲ECC數(shù)據(jù)EC的ECC數(shù)據(jù)區(qū)域。下面,將詳細(xì)描述在類似這樣的待機狀態(tài)下使用這兩種模式存儲數(shù)據(jù)的方法。如上所述,存在待機時間期間非易失性高速緩沖存儲器中所存儲的數(shù)據(jù)丟失的可能性。鑒于上述問題,根據(jù)本實施方式的非易失性高速緩沖存儲器11使用錯誤糾正碼(ECC)檢測丟失的數(shù)據(jù)并在必要時糾正錯誤。在待機狀態(tài)下,高速緩存線模式下的每條高速緩存線CL的頁面重寫標(biāo)志位Db、地址高階位以及高速緩存數(shù)據(jù)CD構(gòu)成ECC對象數(shù)據(jù)。然后,對ECC對象數(shù)據(jù)進行錯誤糾正編碼,以獲得ECC數(shù)據(jù)。在此,ECC對象數(shù)據(jù)和ECC數(shù)據(jù)的組合是錯誤糾正碼。在所產(chǎn)生的錯誤糾正碼中,ECC對象數(shù)據(jù)(ECC奇偶校驗)除外的部分是ECC數(shù)據(jù)。ECC數(shù)據(jù)存儲于處于ECC模式下的每條高速緩存線CL的ECC數(shù)據(jù)區(qū)域中。此時,每條高速緩存線CL的地址(高速緩存地址CA)存儲于高速緩存地址區(qū)域中,以顯示ECC數(shù)據(jù)得自于哪條高速緩存線CL。在圖4所示的示例中,對應(yīng)于高速緩存線CL1的ECC對象數(shù)據(jù)的ECC數(shù)據(jù)EC1和表示高速緩存線CL1的高速緩存地址CA1存儲于與高速緩存線CL1不同的高速緩存線CLx中。此外,對應(yīng)于高速緩存線CL2的ECC對象數(shù)據(jù)的ECC數(shù)據(jù)EC2和表示高速緩存線CL2的高速緩存地址CA2也存儲于高速緩存線CLx中。在這種情況下,高速緩存地址CA的總位數(shù)量和ECC數(shù)據(jù)EC的數(shù)量被設(shè)定為小于ECC區(qū)域的位數(shù)量。因此,每個ECC區(qū)域可成對地存儲高速緩存地址CA和ECC數(shù)據(jù)EC。作為示例,圖4示出了存儲兩對高速緩存地址CA和ECC數(shù)據(jù)EC的情況。然而,高速緩存地址CA和ECC數(shù)據(jù)EC的對數(shù)不限于兩個。例如,可存儲一對或三對以上高速緩存地址CA和ECC數(shù)據(jù)EC。接下來,描述將高速緩存線CL分配為處于高速緩存線模式和ECC模式的方法。在高速緩存線模式下,通常對象為其有效位是1的有效高速緩存線CL。這是因為沒有必要保留其有效位是0的高速緩存線CL,即,待機狀態(tài)下的無效緩存線CL。基本上,其有效位為0的無效高速緩存線CL被分配至ECC模式。然而,如果要被分配至ECC模式的高速緩存線CL的數(shù)量大于無效高速緩存線CL的數(shù)量,則存儲對應(yīng)于所有有效高速緩存線CL的ECC數(shù)據(jù)EC的區(qū)域會變得不足。因此,有效高速緩存線CL被適當(dāng)選擇并分配至ECC模式。在這種情況下,將被分配至ECC模式的有效高速緩存線CL的有效位Vb設(shè)定為無效“0”。在從有效高速緩存線CL中選擇高速緩存線CL時,可使用正常高速緩沖存儲器中使用的各種線替換方法。例如,循環(huán)方法、LRU(最近很少使用)方法、隨機方法等是可用的。基于上述的選擇,高速緩存線模式下的高速緩存線CL的ECC位Eb和有效位Vb分別變?yōu)椤?”和“1”,而ECC模式下的高速緩存線CL的ECC位Eb和有效位Vb分別變?yōu)椤?”和“0”。在此,需考慮到以下事實:處于待機狀態(tài)下時,在ECC位Eb和有效位Vb中也會發(fā)生錯誤。當(dāng)高速緩存線模式下的高速緩存線CL的ECC位Eb變?yōu)榇龣C狀態(tài)下的“1”時,ECC位Eb和有效位Vb都會變?yōu)椤??!币驗檫@樣的高速緩存線CL既不處于高速緩存線模式下,也不處于ECC模式下,所以它們是無效的。類似地,當(dāng)高速緩存線模式下的高速緩存線CL的有效位Vb變?yōu)椤?”,ECC模式下的高速緩存線CL的ECC位Eb變?yōu)椤?”,且ECC模式下的高速緩存線CL的有效位Vb變?yōu)椤?”時,高速緩存線CL也失效。因此,即使在不受錯誤糾正保護的ECC位Eb和有效位Vb中發(fā)生錯誤,也能夠防止發(fā)生故障。當(dāng)由于供電恢復(fù)而從待機狀態(tài)轉(zhuǎn)移至操作狀態(tài)時,從處于ECC模式下的那些高速緩存線中選擇具有與處于高速緩存線模式下的高速緩存線CL的高速緩存地址相同的高速緩存地址CA的高速緩存線CL,以獲取ECC數(shù)據(jù)EC。然后,ECC對象數(shù)據(jù)和ECC數(shù)據(jù)EC組合在一起構(gòu)成錯誤糾正碼,以進行錯誤糾正。必要時,正確數(shù)據(jù)被寫入ECC對象數(shù)據(jù)。視情況而定,由于在ECC位Eb和有效位Vb中發(fā)生錯誤,所以處于具有相同的高速緩存地址CA的ECC模式下的高速緩存線CL可能不會被找到。在這種情況下,因為難以進行錯誤糾正,所以使高速緩存線CL無效。接下來,將描述由本實施方式中的高速緩存控制器21執(zhí)行的處理。首先,圖5示出了在正常操作狀態(tài)下,高速緩存控制器11從處理器10接收讀取數(shù)據(jù)的請求的情況下的處理示例。在步驟F101中,一旦從處理器10接收到讀取地址A的請求,在步驟F102中,高速緩存控制器21確定在非易失性存儲器部22中是否存在對應(yīng)于地址A的有效高速緩存線CL。即,高速緩存控制器21確定其有效位Vb為“1”且地址A被存儲為主存儲器地址的高速緩存線CL是否存在。如果存在有效高速緩存線CL,則高速緩存控制器21繼續(xù)進行至步驟F103。在步驟F103中,高速緩存控制器21從高速緩存線CL獲取高速緩存數(shù)據(jù)CD,并將所獲取的高速緩存數(shù)據(jù)CD傳輸至處理器10。即,在這種情況下,高速緩存控制器21將地址A的數(shù)據(jù)傳輸至處理器10而無需存取主存儲器12,作為所謂的高速緩存命中(hit)傳輸。另一方面,如果對應(yīng)于地址A的有效高速緩存線CL不存在,則高速緩存控制器21繼續(xù)進行至步驟F104。在步驟F104中,高速緩存控制器21從主存儲器12讀取地址A的數(shù)據(jù)D。然后,在步驟F105中,高速緩存控制器21確定是否存在任何無效高速緩存線CL,以將從主存儲器12中讀取的數(shù)據(jù)D存儲在非易失性存儲器部22中。如果存在無效高速緩存線CL,則在步驟F106中,高速緩存控制器21選擇一條無效緩存線CL。接下來,在步驟F110中,高速緩存控制器21將從主存儲器12中讀取的數(shù)據(jù)D和地址A新寄存于所選擇的高速緩存線CL中。即,高速緩存控制器21在選擇的高速緩存線CL中存儲數(shù)據(jù)D作為高速緩存數(shù)據(jù)CD,并存儲地址A作為主存儲器地址。此外,因為高速緩存線CL變?yōu)樾碌挠行Ц咚倬彺婢€,所以高速緩存控制器21將高速緩存線CL的有效位Vb和頁面重寫標(biāo)志位Db分別設(shè)定為“1”和“0”。然后,在步驟F111中,高速緩存控制器21將數(shù)據(jù)D傳輸至處理器10。即,在這種情況下,因為沒有產(chǎn)生高速緩存命中,所以高速緩存控制器21將從主存儲器12讀取的數(shù)據(jù)D傳輸至處理器10。此外,高速緩存控制器21將從主存儲器12讀取的數(shù)據(jù)D存儲于某些高速緩存線CL中,作為高速緩存數(shù)據(jù)CD。另一方面,如果在步驟F105中確定不存在無效高速緩存線CL,則高速緩存控制器21繼續(xù)進行至步驟F107。在步驟F107中,高速緩存控制器21選擇一條有效高速緩存線CL。接下來,在步驟F108中,高速緩存控制器21確定所選擇的高速緩存線CL的頁面重寫標(biāo)志位Db是否為“0?!比绻x擇的高速緩存線CL的頁面重寫標(biāo)志位Db是“0”,則高速緩存控制器21繼續(xù)進行至步驟F110和F111。在步驟F110和步驟F111中,高速緩存控制器21將數(shù)據(jù)D新寄存于高速緩存線CL中并將寄存的數(shù)據(jù)D傳輸?shù)教幚砥?0。在這種情況下,高速緩存控制器21將寄存于某些有效高速緩存線CL中的高速緩存數(shù)據(jù)CD刪除,并將從主存儲器12新讀取的數(shù)據(jù)D存儲于其中,作為高速緩存數(shù)據(jù)CD。此外,如果在步驟F108中確定所選擇的高速緩存線CL的頁面重寫標(biāo)志位Db是“1”,則高速緩存控制器21進行步驟F109的處理。在這種情況下,高速緩存線CL的高速緩存數(shù)據(jù)CD不同于從主存儲器12讀取的地址A的數(shù)據(jù)D。因此,高速緩存控制器21從高速緩存線CL讀取高速緩存數(shù)據(jù)CD和主存儲器地址,并將所讀取的高速緩存數(shù)據(jù)CD和主存儲器地址寫回主存儲器12。因此,高速緩存控制器21在主存儲器12中的地址A的數(shù)據(jù)上反映高速緩存數(shù)據(jù)CD的更新。在此之后,高速緩存控制器21進行步驟F110和步驟F111的處理。接下來,圖6示出了在正常操作狀態(tài)下,高速緩存控制器21從處理器10接收寫入數(shù)據(jù)的請求的情況下的處理示例。在步驟F201中,高速緩存控制器21從處理器10接收將數(shù)據(jù)D寫入地址A中的請求。首先,在步驟F202中,高速緩存控制器21確定在非易失性存儲器部22中是否存在對應(yīng)于地址A的有效高速緩存線CL。如果在非易失性存儲器部22中存在有效高速緩存線CL,則在步驟F203中,高速緩存控制器21將高速緩存線CL的高速緩存數(shù)據(jù)CD重寫成從處理器10提供的數(shù)據(jù)D。即,高速緩存控制器21更新高速緩存線CL的高速緩存數(shù)據(jù)CD。此外,隨著高速緩存數(shù)據(jù)CD的更新,高速緩存控制器21將高速緩存線CL的頁面重寫標(biāo)志位Db和有效位Vb分別設(shè)定為“1”和“1”。然后,在步驟F210中,高速緩存控制器21將數(shù)據(jù)D寫入主存儲器12的地址A中。然而,沒有必要在每次更新高速緩存線CL時更新主存儲器12的數(shù)據(jù)。例如,如果在隨后的某一階段要進行主存儲器12的數(shù)據(jù)更新,則沒有必要在步驟F210中進行數(shù)據(jù)的寫入。此外,當(dāng)在步驟F210中,在主存儲器12上反映高速緩存數(shù)據(jù)CD的更新數(shù)據(jù)時,高速緩存控制器21將高速緩存線CL的頁面重寫標(biāo)志位Db恢復(fù)到“0”。如果在步驟F202中確定在非易失性存儲器部22中不存在對應(yīng)于地址A的有效高速緩存線CL,則高速緩存控制器21進行至步驟F204。在步驟F204中,高速緩存控制器21確定是否存在任何無效高速緩存線CL,以在非易失性存儲器部22中存儲數(shù)據(jù)D。如果存在無效高速緩存線CL,則在步驟F205中,高速緩存控制器21選擇一條無效高速緩存線CL。接下來,在步驟F209中,高速緩存控制器21將地址A和數(shù)據(jù)D新寄存于所選擇的高速緩存線CL中。即,高速緩存控制器21在所選擇的高速緩存線CL中存儲數(shù)據(jù)D作為緩存數(shù)據(jù)CD并存儲地址A作為主存儲器地址。此外,因為高速緩存線CL變?yōu)樾碌挠行Ц咚倬彺婢€,所以高速緩存控制器21將高速緩存線CL的有效位Vb設(shè)定為“1”。此外,因為新數(shù)據(jù)D(高速緩存數(shù)據(jù)CD)在此階段不對應(yīng)于主存儲器12的地址A的數(shù)據(jù),所以高速緩存控制器21將高速緩存線CL的頁面重寫標(biāo)志位Db設(shè)定為“1”。然后,在步驟F210中,高速緩存控制器21將數(shù)據(jù)D寫入主存儲器12的地址A中。在這種情況下,高速緩存控制器21將高速緩存線CL的頁面重寫標(biāo)志位Db恢復(fù)為“0”??商鎿Q地,高速緩存控制器21在該階段可以不執(zhí)行步驟F210的處理。如果在步驟F204中確定不存在無效高速緩存線CL,則在步驟F206中,高速緩存控制器21選擇一條有效高速緩存線CL。接下來,在步驟F207中,高速緩存控制器21確定所選擇的有效高速緩存線CL的頁面重寫標(biāo)志位Db是否為“0”。如果在步驟F207中確定所選擇的有效高速緩存線CL的頁面重寫標(biāo)志位Db是“0”,則高速緩存控制器21將數(shù)據(jù)CD新寄存在高速緩存線CL中,如步驟F209中的那樣。此外,在步驟F210中,高速緩存控制器21將數(shù)據(jù)CD寫入主存儲器12中(或在此階段不寫入數(shù)據(jù)CD)。在這種情況下,高速緩存控制器21將寄存在某些有效高速緩存線CL中的高速緩存數(shù)據(jù)CD刪除,并在其中新寄存所寫入的數(shù)據(jù)D作為緩存數(shù)據(jù)CD。此外,如果在步驟F207中確定所選擇的高速緩存線CL的頁面重寫標(biāo)志位Db是“1”,則高速緩存控制器21執(zhí)行步驟F208的處理。在這種情況下,高速緩存數(shù)據(jù)CD與從主存儲器12讀取的地址A的數(shù)據(jù)D不同。因此,高速緩存控制器21從高速緩存線CL讀取高速緩存數(shù)據(jù)CD和主存儲器地址,并將讀取的高速緩存數(shù)據(jù)CD和主存儲器地址寫回主存儲器12中的地址A中。因此,高速緩存控制器21在主存儲器12中的地址A的數(shù)據(jù)上反映高速緩存數(shù)據(jù)CD的更新。在此之后,高速緩存控制器21執(zhí)行步驟F209(和F210)的處理。接下來,圖7示出了在從正常操作狀態(tài)轉(zhuǎn)移至待機狀態(tài)的過程中,高速緩存控制器21從處理器10接收待機信號的情況下的處理示例,即,高速緩存控制器21的待機準(zhǔn)備處理的示例。在步驟F301中,高速緩存控制器21從處理器10接收待機信號。首先,在步驟F302中,高速緩存控制器21計數(shù)非易失性存儲器部22中的有效高速緩存線CL的數(shù)量。換言之,高速緩存控制器21計數(shù)其有效位Vb是“1”的高速緩存線CL的數(shù)量。高速緩存控制器21計數(shù)的數(shù)量作為有效高速緩存線的數(shù)量(V)。接下來,在步驟F303中,高速緩存控...
當(dāng)前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
项城市| 铁力市| 保定市| 清徐县| 沙坪坝区| 长兴县| 甘洛县| 阜宁县| 郧西县| 海淀区| 福鼎市| 淮滨县| 南丹县| 宜丰县| 务川| 武穴市| 三河市| 上杭县| 夏津县| 定日县| 鄂尔多斯市| 田阳县| 剑河县| 青龙| 新晃| 潮安县| 大关县| 晴隆县| 南川市| 万全县| 临沧市| 剑川县| 康保县| 海淀区| 建昌县| 东莞市| 宜宾县| 阿勒泰市| 如皋市| 博野县| 抚远县|