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

基于多符號多清理周期分析的搶先存儲器修復方法和系統(tǒng)的制作方法

文檔序號:6739415閱讀:94來源:國知局
專利名稱:基于多符號多清理周期分析的搶先存儲器修復方法和系統(tǒng)的制作方法
技術領域
本發(fā)明主題的實施例一般涉及計算機領域,尤其涉及計算機、裝置、設備等的存儲器的搶先修復。
背景技術
現(xiàn)代計算機系統(tǒng)典型地配置有大量存儲器,以便將數(shù)據(jù)和指令提供給計算機系統(tǒng)中的一個或多個處理器。歷史上,處理器速度已經(jīng)比大部分存儲器,尤其是DRAM存儲器(動態(tài)隨機存取存儲器)的存儲器存取時間更迅速地提高。為了減小處理器與存儲器之間的性能失配,已經(jīng)構造多存儲器層級。例如,大多數(shù)現(xiàn)代處理器被構造成含有由處理器半導體芯 片上的SRAM (靜態(tài)隨機存取存儲器)構成的LI (I級)高速緩存。LI高速緩存非??欤辉谔幚砥鞯囊粋€或幾個周期中提供讀寫。然而,LI高速緩存雖然非??欤蚕喈斝?,大概64KB (千字節(jié))到256KB。通常還在處理器芯片上實現(xiàn)L2 (2級)高速緩存。L2高速緩存典型地也使用SRAM存儲構成,雖然一些處理器利用DRAM存儲。L2高速緩存通常比LI高速緩存大幾倍字節(jié)數(shù),但讀寫較慢。一些現(xiàn)代處理器芯片還包含L3 (3級)高速緩存。L3高速緩存能夠保存比L2高速緩存大幾倍的數(shù)據(jù)。L3高速緩存有時利用DRAM存儲構成。一些計算機系統(tǒng)中的L3高速緩存被實現(xiàn)在與處理器分開的一個或多個芯片上,并利用印刷線路板(PWB)或多芯片模塊(MCM)上的布線與處理器耦合。計算機系統(tǒng)的主存儲器通常很大,往往多個GB (千兆字節(jié)),并且通常用DRAM實現(xiàn)。主存儲器通常利用存儲器控制器與處理器耦合,存儲器控制器可以集成在與處理器相同的器件上,或常常與處理器分開地處在相同MCM (多芯片模塊)或PWB上。存儲器控制器從處理器接收裝載或讀取命令和存儲或寫入命令,并為那些命令服務,從主存儲器中讀取數(shù)據(jù)或將數(shù)據(jù)寫入主存儲器中。通常,存儲器控制器含有一個或多個隊列,例如,讀取隊列和寫入隊列。讀取隊列和寫入隊列緩沖包括命令、控制、地址和數(shù)據(jù)的一種或多種的信息,從而使處理器能夠在給定時間在進程中含有多個請求——包括讀取和/或寫入請求。該行業(yè)不斷地把資金投入到廣泛的研究和開發(fā)努力中,以便通過改善存儲器系統(tǒng)或存儲器子系統(tǒng)設計和結構,來創(chuàng)建用于使整個系統(tǒng)性能和密度達到最大的改進、創(chuàng)新解決方案。由于顧客期待新計算機系統(tǒng)除了提供附加的功能、提高的性能、增大的存儲、和更低的運行成本等之外,在平均無故障時間(MTBF)方面也顯著優(yōu)于現(xiàn)有系統(tǒng),所以高可用性系統(tǒng)進一步提出了與整個系統(tǒng)可靠性有關的挑戰(zhàn)。其它常見顧客要求進一步加重了存儲器系統(tǒng)設計挑戰(zhàn),并且包括這樣的項目,如易于升級以及降低系統(tǒng)環(huán)境影響像,諸如空間、功率和冷卻。隨著DRAM接口的速度增大,讀取包括由存儲器設備、存儲器信號路徑中的任何互連結構、存儲器接口、耦合噪聲、電源波動或噪聲、溫度變化、時間漂移等的一種或多種引起的可糾正錯誤的概率也增加
發(fā)明內容
在一些示范性實施例中,一種方法包括跨多個清理周期的一個清理周期進行存儲器的存儲器清理。該方法包括識別作為響應于存儲器清理來自存儲器的區(qū)段的存取結果的、存儲器中的符號的可糾正錯誤。該方法還包括跨多個清理周期地進行分析,其中分析的進行包含確定跨多個清理周期的至少兩個符號是否含有至少一個可糾正錯誤。該方法包括響應于跨多個清理周期的至少兩個符號含有至少一個可糾正錯誤的確定,進行包括所述存儲器的區(qū)段的存儲器的至少一個修復。在一些示范性實施例中,一種方法包括跨多個清理周期的一個清理周期地進行存儲器的存儲器清理。該方法包括識別作為響應于存儲器清理來自存儲器的區(qū)段的存取結果 的、存儲器中的符號的可糾正錯誤。該方法還包括跨多清理周期地進行分析,其中分析的進行包含確定是否對符號的至少兩個符號的每一個已經(jīng)識別了至少一個可糾正錯誤。分析的進行還包括確定至少兩個符號的至少一個符號是否含有超過閾值的可糾正錯誤。分析的進行還包括響應于至少一個其它符號含有超過閾值的可糾正錯誤的確定,確定符號的至少一個其它符號是否含有超過閾值的可糾正錯誤。該方法包括響應于對至少兩個符號的每一個已經(jīng)識別了至少一個可糾正錯誤的確定、至少兩個符號的至少一個符號含有超過閾值的可糾正錯誤的確定、和至少一個其它符號含有超過閾值的可糾正錯誤的確定,進行包括所述存儲器的區(qū)段的存儲器的至少一個修復。


通過參考附圖可以更好地理解本實施例,并且使許多目的、特征和優(yōu)點對本領域的普通技術人員來說是顯而易見的。圖I描繪了按照一些示范性實施例、基于多符號多清理周期分析的搶先存儲器修復的計算機系統(tǒng)。圖2描繪了按照一些示范性實施例、基于多符號多清理周期分析的搶先存儲器修復的流程圖。圖3描繪了按照一些示范性實施例、存儲跨多個清理周期的多個符號的錯誤的二維表格。圖4描繪了按照一些示范性實施例、基于多符號多清理周期分析的搶先存儲器修復的繼續(xù)操作的流程圖。圖5描繪了按照一些示范性實施例、基于多符號多清理周期分析的搶先存儲器修復的繼續(xù)操作的流程圖。圖6描繪了按照一些示范性實施例、利用三個不同修復的搶先存儲器修復的流程圖。圖7描繪了按照一些其它示范性實施例、存儲跨多個清理周期的多個符號的錯誤的二維表格。
具體實施例方式如下的描述包括體現(xiàn)本發(fā)明主題的技術的示范性系統(tǒng)、方法、技術、指令序列以及計算機程序產(chǎn)品。但是,要理解所述的實施例可以無需這些具體細節(jié)地實施。例如,盡管一些例子提到三個類型的搶先存儲器修復,但一些示范性實施例可以應用更多種或更少數(shù)量的搶先修復以及其它類型的搶先修復。在其它情況下,未詳細示出眾所周知的指令實例、協(xié)議、結構和技術,以便不混亂本描述。存儲器中的錯誤可以因存儲單元未適當存儲數(shù)據(jù)而發(fā)生。錯誤也可以發(fā)生在存儲器的外部(例如,存取存儲器的數(shù)據(jù)引腳)從而引起存儲器中的錯誤。一些示范性實施例收集用于分析的數(shù)據(jù)以將不同類型的修復應用于存儲器來糾正這些錯誤。在一些示范性實施例中,糾錯碼(ECC)存儲器可以將不同修復方法應用于存儲器來修復。第一修復方法包括修復一個符號寬度ECC高速緩存行錯誤的符號標志修復——兩位寬度修復。第二修復方法包括修復一個芯片寬度ECC高速緩存行錯誤的芯片標志修復一八位寬度修復。在一些示范性實施例中,使用一個或多個糾錯碼(ECC)操作糾正符號標志修復和芯片標志修復。具體地,根據(jù)ECC校驗位,可以對什么數(shù)據(jù)應該已經(jīng)存儲在存儲器中作出確定。于是,ECC操作可以從存儲器接收不正確的數(shù)據(jù),并重新計算以提供正確的數(shù)據(jù)。這樣的ECC操作可以針對符號級寬度存取以及芯片級寬度存取來進行。第三修復方法包括存儲器(例如,動態(tài)隨機存取存儲器(DRAM)調整。一旦出現(xiàn)一個壞芯片,存儲器調整就部署一個備用存儲器。一些示范性實施例建立和應用確定將哪些修復方法應用于存儲器修復的不同準則。與傳統(tǒng)存 儲器修復方法相比,一些示范性實施例收集建立這些不同準則的附加數(shù)據(jù)。具體地,一些示范性實施例包括跨多個清理(scrub)周期延伸多個清理周期和多個符號的分析。于是,一些實施例能夠跟蹤可以隨時間緩慢積累(可能無法通過傳統(tǒng)錯誤檢查方法檢測)的小錯誤。如果得不到修復,這些小的可糾正錯誤可以轉變成導致系統(tǒng)崩潰的不可恢復錯誤。傳統(tǒng)方法未嘗試過跨多個清理周期地尋找多個出錯符號。于是,對于傳統(tǒng)方法,可以對于單個清理周期內而不是在另一個清理周期期間檢測壞符號。因此,對于傳統(tǒng)方法,因為沒有足夠的數(shù)據(jù)用于分析和采取行動,所以仍然存在即將發(fā)生不可恢復錯誤(由多個出錯符號引起)的機會。一些示范性實施例在跨多個清理周期的時段上累積可恢復錯誤,以便找出以后可能導致不可恢復錯誤的、含有跨高速緩存行(cache line)的可恢復錯誤的多個符號。在累積了跨多個清理周期的多個符號的清理統(tǒng)計量之后,可以分析這樣的統(tǒng)計量。如下面進一步所述,可以確定相對于可配置閾值的含有跨多個清理周期的可恢復錯誤的多個符號的各種組合。這樣的分析可以導致將應用于含有可恢復錯誤的存儲器的各種搶先ECC修復、存儲器替換修復等。一些示范性實施例在存儲器中建立存儲有關可恢復錯誤(CE)的統(tǒng)計量的二維數(shù)據(jù)陣列或表格。CE統(tǒng)計量可以針對存儲器的給定列(rank)的符號。此外,可以為每個清理周期收集CE統(tǒng)計量,其中將跨多個清理周期的CE統(tǒng)計量存儲在二維陣列中。可以根據(jù)先進先出(FIFO)原則將每個清理周期的CE統(tǒng)計量插入陣列中和從陣列中刪除。陣列(CE_Table)的大小可以是N個符號X滑動窗口 CE_Table[N_Symbols][Sliding_ffindow],其中N_Symbols=對于用于存儲器的存儲器控制器的給定列上的符號數(shù);SlidingJVindow=用于CE分析的清理周期數(shù)。CE_TabIe [N_SymboI s] [O]含有最老清理周期的數(shù)據(jù)統(tǒng)計量,和CE_TabIe [N_Symbols] [Sliding_Window_l]含有當前清理周期的數(shù)據(jù)統(tǒng)計量。在一些示范性實施例中,可以跨存儲在陣列中的多個清理周期收集數(shù)據(jù)。陣列的大小可以基于系統(tǒng)的類型、存儲器的類型、應用的類型等而變。在一些示范性實施例中,存在用于存儲器內的每列的表格。雖然針對存儲器的列來描述,但一些示范性實施例可應用于存儲器中的不同地址范圍的任何區(qū)段或分段(例如,行)。此外,對于存儲器中的不同列可以存在跟蹤錯誤的多個表格。一列可以具有取決于系統(tǒng)的類型、應用等的不同大小(例如,1GB、2GB等)。因此,如下面進一步所述,對于存儲器中的分開列,可以分開進行分析和糾錯。圖I描繪了按照一些示范性實施例、基于多符號多清理周期分析的搶先存儲器修復的計算機系統(tǒng)。計算機系統(tǒng)100包括處理器102 (可能包括多個處理器、多個核、多個節(jié)點、和/或實現(xiàn)多線程等)。計算機系統(tǒng)100還包括可以代表不同級別高速緩存(例如,LI,L2,L3等)的高速緩存106。處理器102通信地與高速緩存106耦合,高速緩存106通信地與總線 108 (例如,PCI、ISA、PCI-Express、HyperTransport 、InfiniBand. 、NuBus 等)、網(wǎng)絡接口 YY05 (例如,ATM接口、以太網(wǎng)接口、幀中繼接口、SONET接口、無線接口等)、和存儲設備YY09 (例如,光存儲,磁存儲體)耦合。 計算機系統(tǒng)100還包括存儲器系統(tǒng)110,存儲器系統(tǒng)110包括存儲器控制器112和存儲器114。存儲器系統(tǒng)110通信地與總線108耦合。存儲器114可以包括同步動態(tài)存取存儲器(SRAM)、DRAM、零電容器RAM、雙晶體管RAM、擴展數(shù)據(jù)輸出(EDO) RAM、雙數(shù)據(jù)速率(DDR)RAM、納米RAM (NRAM)、電阻性RAM (RRAM)等。存儲器114包括可以包括一個或多個列的多個模塊115(例如,雙列直插式存儲模塊(DIMM))。在一些示范性實施例中,可以將模塊115之一的列與上面的多個存儲器芯片相聯(lián)系。在一些示范性實施例中,一個或多個存儲器芯片可以是用于存儲器調整修復(可糾正錯誤的可能的搶先修復之一)的備用芯片。計算機系統(tǒng)100還包括服務處理器105,服務處理器105被配置成運行錯誤模塊107。服務處理器105通信地與高速緩存106耦合。例如,錯誤模塊107可以是軟件和/或固件指令。如下面進一步所述,在運行時,錯誤模塊107可以定位存儲在存儲器114的列115中的數(shù)據(jù)的錯誤。錯誤模塊107也可以填充跨多個符號和跨多個清理周期地存儲錯誤的二維陣列。錯誤模塊107還可以根據(jù)相對于可配置閾值的跨多個符號和多個清理周期的錯誤數(shù)量,為搶先修復配置存儲器114。錯誤模塊107的操作將在下面參考例示在圖2-5中的流程圖作進一步描述。雖然描述在相對于處理器102的獨立服務處理器上執(zhí)行錯誤模塊107的操作,但在一些其他示范性實施例中處理器102也可以運行錯誤模塊107。計算機系統(tǒng)100還包括ECC解碼器111,ECC解碼器111通信地與總線108耦合。如下面進一步所述,ECC解碼器111可以配置成執(zhí)行ECC操作來為存儲器114中的數(shù)據(jù)糾正存儲器錯誤。例如,ECC解碼器111可以執(zhí)行ECC操作以進行符號標志修復和芯片標志修復的至少一個。具體地,根據(jù)ECC校驗位,可以對什么數(shù)據(jù)應該已經(jīng)存儲在存儲器中作出確定。于是,ECC操作可以從存儲器接收不正確數(shù)據(jù),并重新計算以提供正確數(shù)據(jù)。這樣的ECC操作可以針對符號級寬度存取以及芯片級寬度存取來進行。計算機系統(tǒng)100還包括非易失性機器可讀介質150 (例如,光存儲、磁存儲等),非易失性機器可讀介質150通信地與總線108耦合。并且,一些實現(xiàn)可以包括未例示在圖I中的更少或附加組件(例如,視頻卡、音頻卡、附加網(wǎng)絡接口、外圍設備等)。現(xiàn)在描述按照一些示范性實施例的操作的流程圖。具體地,圖2以及圖4-6描繪了基于多符號多清理周期分析的搶先存儲器修復的流程圖。如下面進一步所述,圖2以及4-5中的流程圖的操作在不同過渡點(過渡點A,B和C)上相互跨越地移動。圖6描繪了包括作為圖4的方塊406中的操作的擴展的操作的流程圖。在一些示范性實施例中,圖2以及4-6中的流程圖的操作由圖I的錯誤模塊107和ECC解碼器111執(zhí)行。于是,圖2以及圖4-6中的流程圖參考計算機系統(tǒng)100來描述。此外,為了有助于描述,參考例示在圖3和7中的示范性二維表格來描述流程圖。針對對存儲器的一列執(zhí)行的操作來描述圖2-5的流程圖的操作。但是,一些示范性實施例可以對其中不止一個或所有列執(zhí)行。圖2描繪了按照一些示范性實施例、基于多符號多清理周期分析的搶先存儲器修 復的流程圖。流程圖200的操作從方塊202開始。在方塊202中,錯誤模塊107跨多個清理周期的一個新清理周期地進行存儲器的新存儲器清理。參照圖1,錯誤模塊107進行存儲器114的列的新存儲器清理。在存儲器清理周期期間,從高速緩存106中讀取高速緩存線,使得從存儲器114的數(shù)據(jù)的相應讀取。在一些示范性實施例中,高速緩存線的符號覆蓋存儲器114的地址空間。ECC解碼器111使用ECC操作(例如,使用存儲成高速緩存線的一部分的校驗位)檢測是否存在符號錯誤。對于識別的每個符號錯誤,通知錯誤模塊107。在一些示范性實施例中,周期性(例如,每隔12小時)地進行新存儲器清理。在方塊204中繼續(xù)流程圖200的操作。在方塊204中,ECC解碼器111以高速緩存線為粒度識別存儲器114中的符號的可糾正錯誤。參考圖1,ECC解碼器111可以接收來自存儲器114的數(shù)據(jù),并響應于存取確定是否返回了正確數(shù)據(jù)。如一些示范性實施例所述,存儲器清理針對高速緩存106中的給定高速緩存線中的每個符號。此外,ECC解碼器111可以將可糾正錯誤的標識提供給錯誤模塊107。在方塊206中繼續(xù)流程圖200的操作。在方塊206中,錯誤模塊107利用對這個清理周期識別的可糾正錯誤更新表格(存儲跨多個清理周期的高速緩存的高速緩存行中定義的符號的可糾正錯誤)。參考圖1,錯誤模塊107可以從ECC解碼器111接收可糾正錯誤的這些標識。為了例示的目的,圖3描繪了按照一些示范性實施例、存儲跨多個清理周期的多個符號的錯誤的二維表格。圖3描繪了存儲沿著高速緩存的高速緩存行的符號的可糾正錯誤的計數(shù)的表格300。表格300的垂直軸包括用于高速緩存行的不同清理周期的行。表格300的水平軸包括以高速緩存行為粒度(例如,128個字節(jié))的用于存儲器114的不同符號的列。在一些示范性實施例中,高速緩存行包含兩個64字節(jié)ECC字,其中對每個64字節(jié)字進行ECC生成和校驗。如本文所述,可以每列存儲可糾正錯誤統(tǒng)計量。于是,在一些示范性實施例中,清理讀取列中的所有高速緩存行。存儲器控制器112維持多少次讀取遇到該符號的可覆蓋錯誤的每符號計數(shù)。例如,清理結束時符號N的64計數(shù)指示,對于那個列中的64個不同ECC字或32個不同高速緩存行在相同符號索引上存在可覆蓋錯誤。具體地,表格300包括映射到高速緩存行的10個不同符號的10個不同列(column)。為了清晰起見,對于給定高速緩存行只示出了 10個符號。在一些示范性實施例中,高速緩存106中的給定高速緩存行包括72個符號。在這樣的實施例中,表格300包括高速緩存行的72個不同符號的72個不同列。表格300包括10個不同符號的10個列——列322、324、326、328、330、332、334、336、338、和340。列322存儲高速緩存行中的第I符號的可糾正錯誤計數(shù)。列324存儲高速緩存行中的第2符號的可糾正錯誤計數(shù)。列326存儲高速緩存行中的第3符號的可糾正錯誤計數(shù)。列328存儲高速緩存行中的第4符號的可糾正錯誤計數(shù)。列330存儲高速緩存行中的第5符號的可糾正錯誤計數(shù)。列332存儲高速緩存行中的第6符號的可糾正錯誤計數(shù)。列334存儲高速緩存行中的第7符號的可糾正錯誤計數(shù)。列336存儲高速緩存行中的第8符號的可糾正錯誤計數(shù)。列338存儲高速緩存行中的第9符號的可糾正錯誤計數(shù)。列340存儲高速緩存行中的第10符號的可糾正錯誤計數(shù)。表格300還包括映射到10個不同清理周期的10個不同行(row)。為了清晰起見,只示出了 10個不同清理周期。但是,在表格300中可以存儲更少或更多數(shù)量的清理周期。
表格 300 包括 10 個不同行-行 302、304、306、308、310、312、314、316、318、和 320。行 302
存儲當前清理周期的10個不同符號的錯誤計數(shù)。行 304存儲以前清理周期的相同10個符號的錯誤計數(shù)。行306存儲以前清理周期的相同10個符號的錯誤計數(shù)。行308存儲以前清理周期的相同10個符號的錯誤計數(shù)。行310存儲以前清理周期的相同10個符號的錯誤計數(shù)。行312存儲以前清理周期的相同10個符號的錯誤計數(shù)。行314存儲以前清理周期的相同10個符號的錯誤計數(shù)。行316存儲以前清理周期的相同10個符號的錯誤計數(shù)。行318存儲以前清理周期的相同10個符號的錯誤計數(shù)。行320存儲最老清理周期的相同10個符號的錯誤計數(shù)。在一些示范性實施例中,根據(jù)先進先出(FIFO)原理建立和刪除表格300的行。具體地,表格300將限定數(shù)量的清理周期存儲在行中。在本例中,表格300存儲10不同清理周期的符號的錯誤計數(shù)。一旦跟蹤到超過10個清理周期的錯誤計數(shù),錯誤模塊107 (圖I)就刪除最老清理周期以便存儲當前清理周期。返回到圖2的描述,錯誤模塊107根據(jù)沿著高速緩存行的不同符號的錯誤計數(shù)(從ECC解碼器111接收)更新表格300。在本例中,錯誤模塊107將當前清理周期的錯誤計數(shù)存儲在表格300的頂部(行302),并刪除具有最老清理周期——在時間上比存儲在行320中的最老清理周期更老的清理周期的行??梢詫⒈砀?00存儲在非易失性機器可讀介質150中。在方塊208中繼續(xù)圖2的流程圖200的操作。在方塊208中,錯誤模塊107從以前的分析中確定是否已經(jīng)將修復方法應用于存儲器的這個列。具體地,如下面進一步所述,可以將限定數(shù)量的修復方法應用于存儲器的給定列來修復其中的符號的錯誤。因此,如果當前正在應用這些修復方法的一些修復其它符號的以前識別錯誤,則這些修復方法不用于修復在這個分析期間識別的符號的任何錯誤。
在一些不范性實施例中,將三個不同修復方法應用于存儲器的給定列-符號標志修復、
芯片標志修復和存儲器調整修復。如下面進一步所述,可以將這些修復的至少兩個應用于給定分析,以便可以將第三修復應用于在隨后分析中識別的錯誤。于是,方塊208中的操作需要從以前的分析中確定是否已經(jīng)應用了這樣的修復。如果從以前的分析中已經(jīng)應用了修復,則流程圖200的操作繼續(xù)轉到在圖5 (下面更詳細描述)的流程圖500上繼續(xù)的過渡點C。否則,在方塊210中繼續(xù)流程圖200的操作。在方塊210中,錯誤模塊107確定是否已經(jīng)對至少兩個符號的每一個至少識別了可糾正錯誤(跨其數(shù)據(jù)存儲在表格中的多個清理周期)。參照圖3,錯誤模塊107對跨整個表格300的兩個不同符號確定是否存在至少兩個非零條目。于是,錯誤模塊107跨多個清理周期地進行分析。在本例中,對于三個不同符號,在表格300中存在12個非零條目I)行302列330上的條目存儲20的錯誤計數(shù)一第一符號;
2)行304列330上的條目存儲20的錯誤計數(shù)一第一符號;3)行306列330上的條目存儲15的錯誤計數(shù)一第一符號;4)行308列330上的條目存儲20的錯誤計數(shù)一第一符號;5)行310列330上的條目存儲35的錯誤計數(shù)一第一符號;6)行312列330上的條目存儲20的錯誤計數(shù)一第一符號;7)行314列330上的條目存儲20的錯誤計數(shù)一第一符號;8)行316列330上的條目存儲20的錯誤計數(shù)一第一符號;9)行318列330上的條目存儲18的錯誤計數(shù)一第一符號;10)行320列330上的條目存儲15的錯誤計數(shù)一第一符號;11)行316列322上的條目存儲16的錯誤計數(shù)一第二符號;12)行316列340上的條目存儲11的錯誤計數(shù)一第三符號。于是,在本例中,錯誤模塊107遍歷表格300,定位含有非零條目的三個符號。如果不存在含有非零條目的至少兩個符號,則在方塊202中繼續(xù)流程圖200的操作,其中對于新的清理周期進行新的存儲器清理。否則,流程圖200的操作在過渡點A繼續(xù),過渡點A在圖4 (的流程圖400現(xiàn)在描述)繼續(xù)。圖4描繪了按照一些示范性實施例、基于多符號多清理周期分析的搶先存儲器修復的繼續(xù)操作的流程圖。流程圖400的操作在方塊402開始。在方塊402上,錯誤模塊107確定含有至少一個可糾正錯誤的至少一個符號是否含有超過閾值的可糾正錯誤(跨其數(shù)據(jù)存儲在表格中的多個清理周期)。參考圖3,錯誤模塊107確定被識別成具有非零錯誤計數(shù)的三個符號(符號1,符號2或符號3)的至少一個是否含有表格300中具有超過閾值的錯誤計數(shù)的條目。在一些示范性實施例中,閾值是取決于系統(tǒng)的類型、應用的類型、存儲器的類型等的可配置值。假設將閾值設置成值30。在本例中,表格300的一個條目超過閾值一行310列330上的條目存儲35的錯誤計數(shù)。如果沒有至少一個符號含有錯誤計數(shù)超過閾值的條目,則圖400的操作在返回到流程圖200的方塊202的過渡點B繼續(xù),其中對新的清理周期內進行新的存儲器清理。否則,在方塊404中繼續(xù)流程圖400的操作。在方塊404中,錯誤模塊107確定至少兩個其它符號是否含有超過閾值的可糾正錯誤(跨其數(shù)據(jù)存儲在表格中的多個清理周期)。參考圖3,錯誤模塊107再次遍歷表格300,嘗試定位含有超過閾值的可糾正錯誤的至少兩個其它符號。假設將閾值設置成值10而不是30。在這樣的情況下,錯誤模塊107識別出條目的錯誤計數(shù)超過閾值的兩個其它符號I)行316列322上的條目存儲16的錯誤計數(shù)一第二符號;2)行316列340上的條目存儲11的錯誤計數(shù)一第三符號。如果存在含有超過閾值的可糾正錯誤的至少兩個其它符號,則在方塊406繼續(xù)流程圖400的操作。否則,在方塊408繼續(xù)流程圖400的操作。在方塊406中,錯誤模塊107利用三個不同修復進行搶先修復。具體地,錯誤模塊107已經(jīng)識別了具有已經(jīng)超過閾值的錯誤計數(shù)的至少三個符號。利用三個不同修復進行搶先修復的操作將在下面參考圖6作更詳細描述。然后完成圖4的流程圖400的操作。在方塊408中,錯誤模塊107確定至少一個其它符號是否含有超過閾值的可糾正錯誤(跨其數(shù)據(jù)存儲在表格中的多個清理周期)。參考圖3,錯誤模塊107再次遍歷表格300,嘗試定位含有超過閾值的可糾正錯誤的至少一個其它符號。假設將閾值設置成值15而不是30或10。在這樣的情況下,錯誤模塊107識別出條目的錯誤計數(shù)超過閾值的一個其它符號I)行316列322上的條目存儲16的錯誤計數(shù)一第二符號。如果不存在含有超過閾值的可糾正錯誤的至少一個其它符號,則流程圖400的操作在返回到流程圖200的方塊202的過渡點B繼續(xù),其中對于新的清理周期內進行新的存儲器清理。否則,在方塊410繼續(xù)流程圖400的操作。
在方塊410中,錯誤模塊107對含有最多可糾正錯誤的符號進行存儲器調整修復(識別成含有超過閾值的錯誤的兩個符號之間)。具體地說,錯誤模塊107在方塊402中識別出具有超過閾值的錯誤計數(shù)的第一符號,和在方塊408中識別出具有超過閾值的錯誤計數(shù)的第二符號。對于存儲器調整修理,錯誤模塊107將配置存儲器114,以便用備用存儲器芯片替換存儲含有最多可糾正錯誤的符號的存儲器芯片。如上所述,存儲器114被配置成以便備用芯片可用于允許存儲器調整。作為修復的一部分,錯誤模塊107可以將內容從被替換的芯片復制到備用芯片(除了具有超過閾值的錯誤計數(shù)的符號之外)。對于這些符號,錯誤模塊107可以根據(jù)ECC解碼器111提供的數(shù)據(jù)寫入正確數(shù)據(jù)。此外,錯誤模塊107可以將存儲器控制器112重新配置成以便將對從舊芯片存取數(shù)據(jù)的請求現(xiàn)在重新指向備用芯片。雖然描述了以便將存儲器調整修復應用于存儲含有最多可糾正錯誤的符號的存儲器芯片,但一些其它實施例可以使用其它準則來確定將哪個修復應用于哪個符號(如下面進一步所述)。在方塊412繼續(xù)流程圖400的操作。在方塊412中,錯誤模塊107對含有超過閾值的可糾正錯誤的其它符號進行芯片標志修復或符號標志修復。在一些示范性實施例中,錯誤模塊107根據(jù)故障的寬度確定使用哪個修復。例如,如果存在具有彼此相鄰或相近的非零錯誤計數(shù)的其它符號(作為相同芯片的一部分),則錯誤模塊107進行芯片標志修復(從而糾正八位)。如果不存在含有與這個特定錯誤相近或相鄰的錯誤的其它符號,則錯誤模塊107進行符號標志修復(從而糾正兩位)。在一些示范性實施例中,使用ECC解碼器111執(zhí)行的一個或多個糾錯碼(ECC)操作進行符號標志修復和芯片標志修復。具體地,根據(jù)ECC校驗位,ECC解碼器111確定什么數(shù)據(jù)應該已經(jīng)存儲在存儲器中。于是,ECC解碼器111可以從存儲器接收不正確數(shù)據(jù),并重新計算以提供正確數(shù)據(jù)。這樣的ECC操作可以針對符號級寬度存取以及芯片級寬度存取來進行。于是,錯誤模塊107可以將指令發(fā)送給ECC解碼器111,以便對從存儲器114存取的給定位組進行芯片標志修復或符號標志修復。圖400的操作在返回到流程圖200的方塊202的過渡點B繼續(xù),其中對新的清理周期內進行新的存儲器清理。圖5描繪了按照一些示范性實施例、基于多符號多清理周期分析的搶先存儲器修復的繼續(xù)操作的流程圖。流程圖500的操作在方塊502開始。這是從圖2的流程圖200的過渡點C的繼續(xù),其中從以前的分析中確定已經(jīng)存在已應用的修復。如果從以前的分析中完成了這樣的修復,則使用三個修復的兩個(參見上述的方塊410-412)。在方塊502中,錯誤模塊107確定至少一個符號是否含有超過閾值的可糾正錯誤(跨其數(shù)據(jù)存儲在表格中的多個清理周期)。參考圖3,錯誤模塊107遍歷表格300,定位含有超過閾值的可糾正錯誤的符號。在一些示范性實施例中,如果存在滿足這些準則的多個符號,則錯誤模塊107選擇含有最多可糾正錯誤的符號。在一些示范性實施例中,錯誤模塊107選擇在遍歷表格300期間定位的滿足準則的第一符號。如果不存在至少一個符號含有錯誤計數(shù)超過閾值的條目,則流程圖500的操作在返回到流程圖200的方塊202的過渡點B繼續(xù),其中對新的清理周期內進行新的存儲器清理。否則,在方塊504中繼續(xù)流程圖500的操作。在方塊504中,錯誤模塊107對這個識別的符號進行芯片標志修復或符號標志修復。具體地,錯誤模塊107根據(jù)以前的分析進行當前未使用的修復。錯誤模塊107進行在上述的方塊412 (其中選擇芯片標志修復或符號標志修復)中未選擇的修復。在一些示范性實施例中,使用ECC解碼器111執(zhí)行的一個或多個糾錯碼(ECC)操作進行符號標志修復和芯片標志修復。具體地,根據(jù)ECC校驗位,ECC解碼器111確定什么數(shù)據(jù)應該已 經(jīng)存儲在存儲器中。于是,ECC解碼器111可以從存儲器接收不正確數(shù)據(jù),并重新計算以提供正確數(shù)據(jù)。這樣的ECC操作可以針對符號級寬度存取以及芯片級寬度存取來進行。于是,錯誤模塊107可以將指令發(fā)送給ECC解碼器111以便對從存儲器114存取的給定位組進行芯片標志修復或符號標志修復。完成流程圖500的操作(因為已經(jīng)將所有三個修復都應用于存儲器的這個列)。圖6描繪了按照一些示范性實施例、利用三個不同修復方法的搶先存儲器修復的流程圖。流程圖600包括作為在圖4的方塊406的操作的擴展的操作(其中進行利用三個不同修復的搶先修復)。流程圖600的操作在方塊602開始。在方塊602中,錯誤模塊107對含有最多可糾正錯誤的符號進行存儲器調整修復(識別成含有超過閾值的錯誤的三個符號當中)。具體地說,錯誤模塊107在方塊402中識別出具有超過閾值的錯誤計數(shù)的第一符號和在方塊404中識別出具有超過閾值的錯誤計數(shù)的第二和第三符號。對于存儲器調整修理,錯誤模塊107將配置存儲器114,以便用備用存儲器芯片替換存儲含有最多可糾正錯誤的符號的存儲器芯片。如上所述,配置存儲器114以便備用芯片可用于允許存儲器調整。作為修復的一部分,錯誤模塊107可以將內容從被替換的存儲器芯片復制到備用存儲器芯片(除了具有超過閾值的錯誤計數(shù)的符號之外)。對于這些符號,錯誤模塊107可以根據(jù)ECC解碼器111提供的數(shù)據(jù)寫入正確數(shù)據(jù)。此外,錯誤模塊107可以重新配置存儲器控制器112,以便將對從舊存取芯片訪問數(shù)據(jù)的請求現(xiàn)在重新指向到備用存儲器芯片。在方塊604中繼續(xù)流程圖600的操作。在方塊604中,錯誤模塊107對含有超過閾值的次多可糾正錯誤的符號進行芯片標志修復。在一些示范性實施例中,使用ECC解碼器111執(zhí)行的一個或多個糾錯碼(ECC)操作進行芯片標志修復。具體地,根據(jù)ECC校驗位,ECC解碼器111確定什么數(shù)據(jù)應該已經(jīng)存儲在存儲器中。于是,ECC解碼器111可以從存儲器接收不正確數(shù)據(jù),并重新計算以提供正確數(shù)據(jù)。于是,錯誤模塊107可以將指令發(fā)送給ECC解碼器111以便對從存儲器114存取的八位進行芯片標志修復。在方塊606中繼續(xù)流程圖600的操作。在方塊606中,錯誤模塊107對含有超過閾值的第三多可糾正錯誤的符號進行符號標志修復。在一些示范性實施例中,使用ECC解碼器111執(zhí)行的一個或多個糾錯碼(ECC)操作進行符號標志修復。具體地,根據(jù)ECC校驗位,ECC解碼器111確定什么數(shù)據(jù)應該已經(jīng)存儲在存儲器中。于是,ECC解碼器111可以從存儲器接收不正確數(shù)據(jù),并重新計算以提供正確數(shù)據(jù)。于是,錯誤模塊107可以將指令發(fā)送給ECC解碼器111以便對從存儲器114存取的兩位進行符號標志修復。結束流程圖600的操作。
雖然描述了以便將存儲器調整修復應用于含有最多可糾正錯誤的符號,將芯片標志修復應用于含有次多可糾正錯誤的符號,以及將符號標志修復應用于含有最少量可糾正錯誤的符號,但一些示范性實施例可以根據(jù)其它準則將這些修復應用于不同符號。例如,錯誤模塊107可以考慮內含有可糾正錯誤的符號的分組。具體地,錯誤模塊107可以為那個芯片內含有最多可糾正錯誤的那個存儲器芯片選擇存儲器調整修復。此外,在一些示范性實施例中,錯誤模塊107可以根據(jù)故障的寬度確定使用哪個修復。例如,如果存在具有彼此相鄰或相近的非零錯誤計數(shù)的其它符號(作為相同芯片的一部分),則錯誤模塊107進行芯片標志修復(從而糾正八位)。如果不存在含有與這個特定錯誤相近或相鄰的錯誤的其它符號,則錯誤模塊107進行符號標志修復(從而糾正兩位)。一些示范性實施例可以將可替代或附加準則用于確定符號是否適合修復。為了例示的目的,圖7描繪了按照一些其它示范性實施例、存儲跨多個清理周期的多個符號的錯誤的二維表格。與圖3類似,圖7描繪了存儲沿著高速緩存的高速緩存行的符號的可糾正錯誤的計數(shù)的表格700。表格700的垂直軸包括高速緩存行的不同清理周期的行。表格700的水平軸包括高速緩存行的不同符號的列。 具體地,表格700包括映射到高速緩存行的10個不同符號的10個不同列。為了清晰起見,對于給定高速緩存行只示出了 10個符號。在一些示范性實施例中,高速緩存106中的給定高速緩存行包括72個符號。在這樣的實施例中,表格700將包括高速緩存行的72個不同符號的72個不同列。表格700包括10個不同符號的10個列——列722、724、726、728、730、732、734、736、738、和740。列722存儲高速緩存行中的第I符號的可糾正錯誤計數(shù)。列724存儲高速緩存行中的第2符號的可糾正錯誤計數(shù)。列726存儲高速緩存行中的第3符號的可糾正錯誤計數(shù)。列728存儲高速緩存行中的第4符號的可糾正錯誤計數(shù)。列730存儲高速緩存行中的第5符號的可糾正錯誤計數(shù)。列732存儲高速緩存行中的第6符號的可糾正錯誤計數(shù)。列734存儲高速緩存行中的第7符號的可糾正錯誤計數(shù)。列736存儲高速緩存行中的第8符號的可糾正錯誤計數(shù)。列738存儲高速緩存行中的第9符號的可糾正錯誤計數(shù)。列740存儲高速緩存行中的第10符號的可糾正錯誤計數(shù)。表格700還包括映射到10個不同清理周期的10個不同行。為了清晰起見,只示出了 10個不同清理周期。但是,在表格700中可以存儲更少或更多個清理周期。表格700
包括 10 個不同行-行 702、704、706、708、710、712、714、716、718、和 720。行 702 存儲當
前清理周期的10個不同符號的錯誤計數(shù)。行704存儲以前清理周期的相同10個符號的錯誤計數(shù)。行706存儲以前清理周期的相同10個符號的錯誤計數(shù)。行708存儲以前清理周期的相同10個符號的錯誤計數(shù)。行710存儲以前清理周期的相同10個符號的錯誤計數(shù)。行712存儲以前清理周期的相同10個符號的錯誤計數(shù)。行714存儲以前清理周期的相同10個符號的錯誤計數(shù)。行716存儲以前清理周期的相同10個符號的錯誤計數(shù)。行718存儲以前清理周期的相同10個符號的錯誤計數(shù)。行720存儲最老清理周期的相同10個符號的錯誤計數(shù)。在一些示范性實施例中,根據(jù)先進先出(FIFO)原理建立和刪除表格700的行。具體地,表格700將限定數(shù)量的清理周期存儲在行中。在本例中,表格700存儲10不同清理周期的符號的錯誤計數(shù)。一旦跟蹤到超過10個清理周期的錯誤計數(shù),錯誤模塊107 (圖I)就刪除最老清理周期以便存儲當前清理周期。
為了例示,與表格300的條目相比較,將用于確定符號適合修復不同錯誤計數(shù)的可替代或附加準則的使用存儲在表格700的條目中。具體地,存儲在列730中的相同符號在三個相繼清理周期(行712、行710和行708)內具有非零錯誤計數(shù)。此外,存儲在列722中的相同符號在兩個相繼清理周期(行718和行716)內具有非零錯誤計數(shù)。存儲在列740中的相同符號在兩個非相繼清理周期(行720和行716)內具有非零錯誤計數(shù)。在一些示范性實施例中,錯誤模塊107可以遵循給定符號的錯誤計數(shù)的趨勢以確定是否需要修復。例如,如果相同符號對兩個相繼清理周期具有至少兩個非零錯誤計數(shù)(例如,列722中的符號),則需要修復。在另一個例子中,如果相同符號對相繼或非相繼清理周期具有大于閾值(例如,15)的至少兩個錯誤計數(shù)(例如,列730中的符號),則需要修復。在另一個例子中,如果相同符號對相繼或非相繼清理周期具有至少兩個非零錯誤計數(shù)(例如,列740中的符號),則需要修復。可替代地或除了上面在圖2-6中所述的準則之外,錯誤模塊107可以使用這些準則。作為附加準則使用可以強化符號需要校正的假設。
如所屬技術領域的技術人員知道,本發(fā)明主題可以實現(xiàn)為系統(tǒng)、方法或計算機程序產(chǎn)品。因此,本發(fā)明主題可以具體采用為以下形式,即可以是完全的硬件實施例、也可以是完全的軟件(包括固件、駐留軟件、微代碼等)實施例,還可以是硬件和軟件方面結合實施例的形式,本文一般都稱為“電路”、“模塊”或“系統(tǒng)”。此外,本發(fā)明主題的各方面還可以采用為在一個或多個計算機可讀介質中的計算機程序產(chǎn)品的形式,該計算機可讀介質中包含其上實現(xiàn)的計算機可讀的程序代碼??梢圆捎靡粋€或多個計算機可讀的介質的任意組合。計算機可讀介質可以是計算機可讀信號介質或者計算機可讀存儲介質。計算機可讀存儲介質例如可以是一但不限于——電、磁、光、電磁、紅外線、或半導體的系統(tǒng)、裝置或器件,或者以上的任何適當組合。計算機可讀存儲介質的更具體的例子(非窮舉的列表)包括以下具有一個或多個導線的電連接、便攜式計算機磁盤、硬盤、隨機存取存儲器(RAM)、只讀存儲器(ROM)、可擦式可編程只讀存儲器(EPR0M或閃存)、光纖、便攜式緊湊盤只讀存儲器(CD-ROM)、光存儲器件、磁存儲器件、或者上述的任意合適的組合。在本文件上下文中,計算機可讀存儲介質可以是任何可以包含或存儲程序的有形介質,該程序可以被指令執(zhí)行系統(tǒng)、裝置或者器件使用或者與其結合使用。計算機可讀的信號介質可以包括例如在基帶中或者作為載波一部分傳播的數(shù)據(jù)信號,其中承載了計算機可讀的程序代碼。這種傳播的數(shù)據(jù)信號可以采用多種形式的任一,包括——但不限于——電磁信號、光信號或上述的任意合適的組合。計算機可讀的信號介質還可以是計算機可讀存儲介質以外的任何計算機可讀介質,該計算機可讀介質可以發(fā)送、傳播或者傳輸用于由指令執(zhí)行系統(tǒng)、裝置或者器件使用或者與其結合使用的程序。計算機可讀介質上實現(xiàn)的程序代碼可以用任何適當?shù)慕橘|傳輸,包括一但不限于一無線、電線、光纜、RF等等,或者上述的任意合適的組合??梢砸砸环N或多種程序設計語言的任何組合來編寫用于本發(fā)明主題各方面的操作的計算機程序代碼,所述程序設計語言包括面向對象的程序設計語言一諸如Java、Smalltalk、C++,還包括常規(guī)的過程式程序設計語言一諸如” C”程序設計語言或類似的程序設計語言。程序代碼可以完全地在用戶計算機上執(zhí)行、部分地在用戶計算機上執(zhí)行、作為一個獨立的軟件包執(zhí)行、部分在用戶計算機上部分在遠程計算機上執(zhí)行、或者完全在遠程計算機或服務器上執(zhí)行。在后者的情形中,遠程計算機可以通過任意種類的網(wǎng)絡一包括局域網(wǎng)(LAN)或廣域網(wǎng)(WAN)—連接到用戶計算機,或者,可以進行連接到外部計算機(例如利用因特網(wǎng)服務提供商來通過因特網(wǎng))。下面將參照根據(jù)本發(fā)明主題的實施例的方法、裝置(系統(tǒng))和計算機程序產(chǎn)品的流程示和/或框圖描述本發(fā)明主題。應當理解,流程示和/或框圖的每個方框以及流程示和/或框圖中各方框的組合,都可以由計算機程序指令實現(xiàn)。這些計算機程序指令可以提供給通用計算機、專用計算機或其它可編程數(shù)據(jù)處理裝置的處理器,從而生產(chǎn)出一種機器,這些指令通過計算機或其它可編程數(shù)據(jù)處理裝置的處理器執(zhí)行,產(chǎn)生了實現(xiàn)流程圖和/或框圖中的方框中規(guī)定的功能/操作的裝置。 也可以把這些計算機程序指令存儲在能指引計算機、其它可編程數(shù)據(jù)處理裝置、或其他設備以特定方式工作的計算機可讀介質中,這樣,存儲在計算機可讀介質中的指令就產(chǎn)生出一個包括實現(xiàn)流程圖和/或框圖中的方框中規(guī)定的功能/操作的制造品(manufacture)。也可以把計算機程序指令加載到計算機、其它可編程數(shù)據(jù)處理裝置、或其它設備上,使得在計算機、其它可編程數(shù)據(jù)處理裝置或其它設備上執(zhí)行一系列操作步驟,以產(chǎn)生計算機實現(xiàn)的過程,從而使得在計算機或其它可編程裝置上執(zhí)行的指令提供實現(xiàn)流程圖和/或框圖中的方框中規(guī)定的功能/操作的過程。雖然參考各種實現(xiàn)和開發(fā)描述了各實施例,但應該明白,這些實施例是例示性的,本發(fā)明主題的范圍不局限于它們。一般說來,如本文所述的搶先存儲器修復技術可以利用與任何硬件系統(tǒng)或硬件系統(tǒng)相容的設施實現(xiàn)。許多改變、修改、添加和改進是可能的??梢詾楸疚拿枋龀蓡蝹€實例的部件、操作或結構提供多個實例。最后,各種部件、操作和數(shù)據(jù)存儲之間的邊界有些任意,并且特定操作是在特定例示性配置的背景下例示的。功能的其它分配可以被預想,并且可以都在本發(fā)明主題的范圍之內。一般說來,在示范性配置中表示成單獨部件的結構和功能可以實現(xiàn)成組合結構或部件。類似地,表示成單個部件的結構和功能可以實現(xiàn)幾個單獨部件。這些和其它改變、修改、添加和改進都在本發(fā)明主題的范圍之內。
權利要求
1.一種修復存儲器的方法,其包含 跨多個清理周期的一個清理周期地進行存儲器的存儲器清理; 識別作為響應于存儲器清理來自存儲器的區(qū)段的存取的結果的、存儲器中的符號的可糾正錯誤; 跨多個清理周期地進行分析,其中分析的進行包含確定跨多個清理周期的至少兩個符號是否含有至少一個可糾正錯誤;以及 響應于確定跨多個清理周期的至少兩個符號含有至少一個可糾正錯誤,進行包括所述存儲器的區(qū)段的存儲器的至少一個修復。
2.如權利要求I所述的方法,其中確定跨多個清理周期的至少兩個符號是否含有至少一個可糾正錯誤包含 確定是否對符號的至少兩個符號的每一個已經(jīng)識別至少一個可糾正錯誤; 確定至少兩個符號的至少一個符號是否含有超過閾值的可糾正錯誤;以及響應于確定至少一個其它符號含有超過閾值的可糾正錯誤,確定符號的至少一個其它符號是否含有超過閾值的可糾正錯誤。
3.如權利要求2所述的方法,其中進行包括所述存儲器的區(qū)段的存儲器的至少一個修復包含 響應于確定對至少兩個符號的每一個已經(jīng)識別了至少一個可糾正錯誤、確定至少兩個符號的至少一個符號含有超過閾值的可糾正錯誤、和確定至少一個其它符號含有超過閾值的可糾正錯誤,進行包括所述存儲器的區(qū)段的存儲器的至少一個修復。
4.如權利要求I所述的方法,其中進行包括所述存儲器的區(qū)段的存儲器的至少一個修復包含進行包括所述存儲器的區(qū)段的存儲器的至少兩個修復,其中至少兩個修復包含存儲器調整修復、芯片標志修復和符號標記修復中的至少兩個。
5.如權利要求I所述的方法,其中確定跨多個清理周期的至少兩個符號含有至少一個可糾正錯誤包含對多個清理周期的至少兩個相繼清理周期確定至少兩個符號的每一個超過閾值。
6.如權利要求I所述的方法,其中所述存儲器的區(qū)段包含存儲器的列。
7.一種修復存儲器的方法,包含 跨多個清理周期的一個清理周期地進行存儲器的存儲器清理; 識別作為響應于存儲器清理來自存儲器的區(qū)段的存取的結果的、存儲器中符號的可糾正錯誤; 跨多個清理周期地進行分析,其中進行分析包含 確定是否對符號的至少兩個符號的每一個已經(jīng)識別了至少一個可糾正錯誤; 確定至少兩個符號的至少一個符號是否含有超過閾值的可糾正錯誤;以及響應于確定至少一個其它符號含有超過閾值的可糾正錯誤,確定符號的至少一個其它符號是否含有超過閾值的可糾正錯誤;以及 響應于確定對至少兩個符號的每一個已經(jīng)識別了至少一個可糾正錯誤、確定至少兩個符號的至少一個符號含有超過閾值的可糾正錯誤、和確定至少一個其它符號含有超過閾值的可糾正錯誤,進行包括所述存儲器的區(qū)段的存儲器的至少一個修復。
8.如權利要求7所述的方法,進一步包含在進行分析期間確定第一其它符號和第二其它符號含有超過閾值的可糾正錯誤,其中進行存儲器的至少一個修復包含 針對至少一個符號、第一其它符號、和第二其它符號,根據(jù)可糾正錯誤的數(shù)量確定至少一個符號、第一其它符號、和第二其它符號之間的次序; 對于存儲至少一個符號、第一其它符號、和第二其它符號之間含有最多可糾正錯誤的符號的存儲器芯片,用備用存儲器芯片替換存儲器的所述存儲器芯片; 對于存儲至少一個符號、第一其它符號、和第二其它符號之間含有次多可糾正錯誤的符號的存儲器芯片,進行存儲器的芯片寬度糾錯碼(ECC)高速緩存行修復;以及 對于至少一個符號、第一其它符號、和第二其它符號之間含有第三多可糾正錯誤的符號,進行存儲器的符號寬度ECC高速緩存行修復。
9.如權利要求7所述的方法,進一步包含 跨多個清理周期的不同清理周期地進行存儲器的不同存儲器清理; 對于所述不同清理周期,識別作為響應于存儲器清理來自所述存儲器的區(qū)段的存取的結果的、限定在高速緩存的高速緩存行中的符號的可糾正錯誤; 跨多個清理周期地進行不同的分析,其中進行不同的分析包含 跨多個清理周期地確定符號的不同符號是否含有超過閾值的可糾正錯誤,并且在以前進行的分析中是否未被識別出來;以及 響應于確定不同符號含有超過閾值的可糾正錯誤,進行包括所述存儲器的區(qū)段的存儲器的不同修復,其中進行不同修復包含在至少一個修復期間進行以前未進行過的ECC高速緩存行修復。
10.如權利要求7所述的方法,其中所述存儲器的區(qū)段包含存儲器的列。
11.一種修復存儲器的裝置,其包含 配置成跨多個清理周期的一個清理周期地進行存儲器的存儲器清理的部件; 配置成對于所述清理周期,識別作為響應于存儲器清理來自存儲器的區(qū)段的存取的結果的、限定在通信地與存儲器耦合的高速緩存的高速緩存行中的符號的可糾正錯誤的部件; 配置成利用對于所述清理周期識別的符號的可糾正錯誤更新表格的部件,其中所述表格被配置成存儲跨多個清理周期的符號的可糾正錯誤; 配置成對跨其數(shù)據(jù)仍然存儲在表格中的多個清理周期的符號進行表格分析的部件,其包含 配置成確定對符號的至少兩個符號的每一個是否已經(jīng)識別了至少一個可糾正錯誤的部件; 配置成確定至少兩個符號的至少一個符號是否含有超過閾值的可糾正錯誤的部件;以及 配置成響應于確定至少一個其它符號含有超過閾值的可糾正錯誤,確定符號的至少一個其它符號是否含有超過閾值的可糾正錯誤的部件;以及 配置成響應于確定對至少兩個符號的每一個已經(jīng)識別了至少一個可糾正錯誤、確定至少兩個符號的至少一個符號含有超過閾值的可糾正錯誤、和確定至少一個其它符號含有超過閾值的可糾正錯誤,進行包括所述存儲器的區(qū)段的存儲器的至少一個修復的部件。
12.如權利要求11所述的裝置,其中配置成確定至少一個其它符號含有超過閾值的可糾正錯誤的部件包含配置成在進行分析期間確定第一其它符號和第二其它符號含有超過閾值的可糾正錯誤的部件。
13.如權利要求12所述的裝置,其中配置成進行存儲器的至少一個修復的部件包含 配置成針對至少一個符號、第一其它符號、和第二其它符號,根據(jù)可糾正錯誤的數(shù)量確定至少一個符號、第一其它符號、和第二其它符號之間的次序的部件; 配置成對于存儲至少一個符號、第一其它符號、和第二其它符號之間含有最多可糾正錯誤的符號的存儲器芯片,用備用存儲器芯片替換存儲器的所述存儲器芯片的部件; 配置成對于存儲至少一個符號、第一其它符號、和第二其它符號之間含有次多可糾正錯誤的符號的存儲器芯片,進行存儲器的芯片寬度糾錯碼(ECC)高速緩存行修復的部件;以及 配置成對于至少一個符號、第一其它符號、和第二其它符號之間含有第三多可糾正錯誤的符號,進行存儲器的符號寬度ECC高速緩存行修復的部件。
14.如權利要求11所述的裝置,其中配置成確定至少一個其它符號含有超過閾值的可糾正錯誤的部件包含配置成在分析期間確定只有一個其它符號含有超過閾值的可糾正錯誤的部件,其中配置成進行存儲器的至少一個修復的部件包含 配置成針對至少一個符號和只有一個其它符號,根據(jù)可糾正錯誤的數(shù)量確定至少一個符號和只有一個其它符號之間的次序的部件; 配置成對于存儲至少一個符號和只有一個其它符號之間含有最多可糾正錯誤的符號的存儲器模塊,用備用存儲器模塊替換存儲器的所述存儲器模塊的部件;以及 配置成對于至少一個符號和只有一個其它符號之間含有次多可糾正錯誤的符號,進行對存儲該符號的存儲器芯片的存儲器的芯片寬度糾錯碼(ECC)高速緩存行修復、和存儲器的符號寬度ECC高速緩存行修復中的至少一個的部件。
15.如權利要求14所述的裝置,進一步包含配置成跨多個清理周期的不同清理周期地進行存儲器的不同存儲器清理的部件; 配置成對于所述不同清理周期,識別作為響應于存儲器清理來自所述存儲器的區(qū)段的存取的結果的、限定在高速緩存的高速緩存行中的符號的可糾正錯誤的部件;配置成利用對于所述不同清理周期識別的符號的可糾正錯誤更新表格的部件; 配置成對跨多個清理周期的符號進行表格的不同分析的部件,其中配置成進行不同分析的部件包含 配置成跨多個清理周期地確定符號的不同符號是否含有超過閾值的可糾正錯誤并且在以前進行的分析中是否未被識別出來的部件;以及 配置成響應于確定不同符號含有超過閾值的可糾正錯誤,進行包括所述存儲器的區(qū)段的存儲器的不同修復的部件,其中進行不同修復包含在至少一個修復期間進行以前未進行過的ECC高速緩存行修復。
16.一種修復存儲器的裝置,其包含 配置成跨多個清理周期的一個清理周期地進行存儲器的存儲器清理的部件; 配置成識別作為響應于存儲器清理來自存儲器的區(qū)段的存取的結果的、存儲器中的符號的可糾正錯誤的部件;配置成跨多個清理周期地進行分析的部件,其中所述分析包含跨多個清理周期的至少兩個符號是否含有至少一個可糾正錯誤的確定;以及 配置成響應于跨多個清理周期的至少兩個符號含有至少一個可糾正錯誤的確定,進行包括所述存儲器的區(qū)段的存儲器的至少一個修復的部件。
17.如權利要求16所述的裝置,其中配置成確定跨多個清理周期的至少兩個符號是否含有至少一個可糾正錯誤的部件包含 配置成確定是否對符號的至少兩個符號的每一個已經(jīng)識別了至少一個可糾正錯誤的部件; 配置成確定至少兩個符號的至少一個符號是否含有超過閾值的可糾正錯誤的部件;以及 配置成響應于至少一個符號含有超過閾值的可糾正錯誤的確定,確定符號的至少一個其它符號是否含有超過閾值的可糾正錯誤的部件。
18.如權利要求17所述的裝置,其中配置成進行至少一個修復的部件包含 配置成響應于對至少兩個符號的每一個已經(jīng)識別了至少一個可糾正錯誤的確定、至少兩個符號的至少一個符號含有超過閾值的可糾正錯誤的確定、和至少一個其它符號含有超過閾值的可糾正錯誤的確定,進行包括所述存儲器的區(qū)段的存儲器的至少一個修復的部件。
19.如權利要求16所述的裝置,其中配置成進行至少一個修復的部件包含配置成進行包括所述存儲器的區(qū)段的存儲器的至少兩個修復的部件,其中至少兩個修復包含存儲器調整修復、芯片標志修復和符號標記修復的至少兩個。
20.如權利要求16所述的裝置,其中配置成確定跨多個清理周期的至少兩個符號含有至少一個可糾正錯誤的部件包含配置成對多個清理周期的至少兩個相繼清理周期確定至少兩個符號的每一個超過閾值的部件。
21.如權利要求16所述的裝置,其中所述存儲器的區(qū)段包含存儲器的列。
全文摘要
在一些示范性實施例中,一種方法包括跨多個清理周期的一個清理周期地進行存儲器的存儲器清理。該方法包括識別作為響應于存儲器清理來自存儲器的區(qū)段中的存取的結果的、存儲器中的符號的可糾正錯誤。該方法還包括跨多個清理周期地進行分析,其中分析的進行包含確定跨多個清理周期的至少兩個符號是否含有至少一個可糾正錯誤。該方法包括響應于確定跨多個清理周期的至少兩個符號含有至少一個可糾正錯誤,進行包括所述存儲器的區(qū)段的存儲器的至少一個修復。
文檔編號G11C29/44GK102855941SQ20121022598
公開日2013年1月2日 申請日期2012年6月29日 優(yōu)先權日2011年6月29日
發(fā)明者J.W.卡曼, M.A.戈魯布, A.卡恩杜爾, J.帕特爾 申請人:國際商業(yè)機器公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
木兰县| 凤台县| 利辛县| 建昌县| 精河县| 大悟县| 元朗区| 喀喇| 金沙县| 密云县| 棋牌| 北海市| 寿光市| 陇西县| 裕民县| 黄浦区| 湖州市| 广平县| 沅江市| 镇坪县| 潜江市| 于田县| 建阳市| 九寨沟县| 绍兴县| 南皮县| 双城市| 邵武市| 罗田县| 闽侯县| 延寿县| 贵德县| 乡城县| 龙岩市| 禄丰县| 敦化市| 长乐市| 林甸县| 上栗县| 古田县| 泽州县|