專利名稱:用散列函數區(qū)分存儲系統(tǒng)中隨機和重復差錯的方法和系統(tǒng)的制作方法
技術領域:
本發(fā)明一般涉及計算機存儲系統(tǒng),更具體地說,涉及存儲系統(tǒng)中的差錯檢測和預測故障分析。
背景技術:
計算機系統(tǒng)存儲器包括長期(非易失性)和短期(易失性)存儲設備。長期存儲設備,比如硬盤驅動器(HDD)即使在斷電狀態(tài)下也能夠保持軟件和數據。短期存儲設備,比如雙列直插存儲器模塊(DIMM,Dual In-Line Memory Module)能夠在通電狀態(tài)下保持指令和數據。軟件指令和數據可以無限期地保存在長期存儲器中,并根據需要加載到短期存儲器上以便由處理器執(zhí)行。執(zhí)行指令的結果,比如處理后的數據也可被臨時保存在短期存儲器中,用于通電計算會話期間的繼續(xù)訪問,或者被保存在長期存儲器中,用于后續(xù)計算會話中的訪問和處理。在DMM中會出現差錯,所述差錯會影響存儲系統(tǒng)的性能和可靠性。一種DMM差錯是單比特差錯(SBE,Single Bit Error) 0極其接近高效開關調節(jié)器的隨機電源和地噪聲是SBE的一個原因。存儲系統(tǒng)中越來越嚴格的定時要求是SBE的另一個作用因素。DIMM 還含有越來越大的存儲單元密度,這導致每個DIMM的比特差錯率(BER)更高。每個計算機系統(tǒng)含有密度不斷增大的DIMM,這也會導致相應更高的差錯率。
發(fā)明內容
本發(fā)明的一個實施例提供一種檢測存儲模塊中的單比特差錯的方法。每個單比特差錯被識別為隨機差錯或重復差錯。計數在一個時間間隔內發(fā)生的每個識別的隨機差錯和每個識別的重復差錯。響應于在所述時間間隔內,識別的隨機差錯的數目達到隨機差錯閾值,或者識別的重復差錯的數目達到重復差錯閾值,產生報警。重復差錯閾值小于隨機差錯閾值。本發(fā)明的另一個實施例提供一種存儲系統(tǒng)。存儲控制器包括用于檢測存儲模塊中的單比特差錯的差錯檢測控制邏輯。包括計數在一個時間間隔內發(fā)生的隨機差錯的隨機差錯計數器。包括計數在所述時間間隔內發(fā)生的重復差錯的重復差錯計數器。提供比較隨機差錯計數器與隨機差錯閾值以及比較重復差錯計數器與重復差錯閾值的閾值比較器。重復差錯閾值小于隨機差錯閾值。報警發(fā)生器被配置成響應于在所述時間間隔內,隨機差錯計數器達到隨機差錯閾值,或者重復差錯計數器達到重復差錯閾值,產生報警。
圖1是按照本發(fā)明的一個實施例,對其實現預測故障分析(PFA,predictive failure analysis)的計算機存儲系統(tǒng)的示意圖。圖2是一般概述可在存儲系統(tǒng)中進行的PFA處理的流程圖。
具體實施方式
本發(fā)明的實施例包括在存儲系統(tǒng)中進行預測故障分析(PFA)的系統(tǒng)和方法。每個單比特差錯(SBE)現在可被識別為隨機差錯或者重復差錯,隨機差錯是被確定在預定時間間隔內在特定存儲地址或存儲地址塊出現不超過一次的差錯,重復差錯是被確定在所述預定時間間隔內在特定存儲地址或特定塊出現多于一次的差錯。隨后可以對照不同閾值來比較在預定時間間隔內出現的隨機差錯和重復差錯的數目,以便生成PFA報警。更特別地,與被識別為重復差錯的SBE相比,可對被識別為隨機差錯的SBE設定更高的閾值,因為與重復差錯相比,隨機差錯明顯不太可能影響存儲器性能。隨機差錯還不太可能擴展成無法校正的差錯,所述無法校正的差錯的出現對存儲系統(tǒng)的運行的破壞性極大。因此,按照這種方式區(qū)分隨機差錯和重復差錯將使得可以識別DIMM中的更嚴重的重復差錯,同時避免當DIMM 僅經歷比率可接受的隨機差錯時,不必要地或者過早地把DIMM標記成壞的DIMM。
在下面討論的一個實施例中,使用散列處理來減少跟蹤系統(tǒng)存儲器中重復發(fā)生差錯的每個位置所需的存儲器的量和計算循環(huán)的數目??蓪ψR別出SBE的存儲地址應用散列處理,以確定將記錄SBE的表格位置。存儲地址可被分組成多個塊,其中當應用散列函數時,給定塊中的每個存儲地址產生相同的散列和。隨后,可以使用小至1比特簽名的相應差錯狀態(tài)字段來跟蹤在所述存儲地址或存儲地址塊是否產生了第一個或后續(xù)差錯。整個系統(tǒng)所需的計數器少至兩個,一個計數器用于跟蹤被識別為隨機差錯的SBE的總數,而另一個計數器用于跟蹤在存儲系統(tǒng)中被識別為重復差錯的SBE的總數??瑟毩⒌卣{整諸如隨機差錯閾值、重復差錯閾值、時間間隔、散列表格的大小、每個存儲地址塊的大小、以及每個差錯狀態(tài)字段的大小的參數,以按需調整存儲系統(tǒng)。
圖1是按照本發(fā)明的一個實施例,對其實現預測故障分析(PFA)的計算機存儲系統(tǒng)10的示意圖。存儲系統(tǒng)10可被設置在機架式計算機系統(tǒng)的刀片服務器上。存儲系統(tǒng)10 包括主存儲器12,主存儲器12具有一個或多個雙列直插存儲器模塊(DIMM),比如可設置在刀片服務器的系統(tǒng)板上的DIMM。存儲控制器20包含相對于主存儲器12讀取和寫入數據的讀/寫控制邏輯22、識別和校正DIMM差錯的差錯檢測控制邏輯23。包含在主存儲器12 的DIMM內的DRAM(動態(tài)隨機存取存儲器)芯片可包括專用于差錯校正的存儲比特(未示出)。存儲控制器20可以使用這些差錯檢測比特來記錄奇偶性,或者使用糾錯碼(ECC)來檢測所有的單比特差錯。差錯檢測控制邏輯可包括SEDDED( “單差錯檢測,雙差錯檢測”) 碼以檢測和校正單比特差錯,并利用額外的奇偶校驗比特來可選地檢測雙比特差錯。
主存儲器12可包含成千上萬個或者數百萬個保存數據的離散存儲單元。主存儲器12被分成多個塊14,每個塊14只包含存在于主存儲器12中的所有存儲單元的子集。每個存儲單元具有唯一的存儲地址,使得每個塊14包含存在于主存儲器12中的所有唯一存儲地址的子集。附圖標記16表示存儲單元的一個例子,所述存儲單元具有例證的存儲地址 “afbf0018”。像這樣的8字符地址可利用一個存儲字節(jié)來表示。通過參照對應的存儲地址, 包含在存儲系統(tǒng)10內的存儲控制器20可以讀寫特定的存儲單元。每個塊一般是存儲地址的物理分組。為了便于討論,塊14被圖示成正方形或矩形塊14的組陣,圖中用行字母(A, B,C等)和列數字(1,2,3等)來識別每個塊。然而,塊14不必具有所示的特定物理分組。
每個塊14可包括任意數目的存儲單元,每個存儲單元具有唯一的存儲地址。圖1 提供了其中主存儲器12具有相應的1024k個存儲地址處的總共IOMX 10~3 ( BP, 1024k)個存儲單元的例子。主存儲器12中的1024k個存儲單元可被劃分成1000個塊14,使得每個塊14具有IOM個存儲單元。以每個塊14少至1個存儲單元的方式(即,以每個塊14代表主存儲器12中的一個地址的方式)來構成主存儲器12也在本發(fā)明的范圍內。然而,跟蹤每個存儲地址處的SBE的發(fā)生是極其存儲器密集和CPU密集的。如下所述,在本實施例中,把多個存儲地址組成每個塊14使得可以更高效地進行PFA。
提供電子表格40,以便跟蹤在主存儲器12中檢測到的單比特差錯(SBE)。表格40 可以是系統(tǒng)的存儲控制器20可讀寫的主存儲器12的子集。專用系統(tǒng)代碼可包含在主存儲器20內,以訪問表格40和執(zhí)行PFA功能。另一方面,可以包括在主存儲器12之外的硬件和軟件部件,以執(zhí)行這些功能。主存儲器12的每個塊14中的存儲單元按照其存儲地址被映射到電子表格40中的對應位置。在本實施例中,表格40包括與每個存儲地址塊相對應的獨立記錄,使得特定地址塊內的每個地址被映射到表格40中的相同位置。具體地說,每個地址塊連同包含在該地址塊內的存儲地址被映射到表格40的一行,其中每一行包含一項不同的記錄。例如,地址塊Al和包含在地址塊Al內的IOM個存儲地址中的每個存儲地址被映射到表格40的相應第一行41,地址塊A2及其IOM個地址被映射到表格40的相應第二行42,等等。第一列(塊列表列)43列出主存儲器12中的塊14。表格的第二列(差錯跟蹤列)44用于以1比特簽名45的形式來記錄SBE的發(fā)生。
每個地址塊的存儲地址可以多種方式映射到表格40。在本實施例中,通過對存儲地址應用散列函數對,存儲地址被有效地映射到表格40。選擇散列函數對,使得當應用散列函數M時,給定塊14中的每個存儲地址產生相同的散列和。散列函數對向每個塊14提供邏輯分組,其中,當應用散列函數對時,特定塊14中的每個存儲地址具有相同的散列值。 在圖解說明的例子中,散列函數具有IOM 1的散列縮小率。當應用散列函數對時,塊Al 中的IOM個存儲地址中的每個存儲地址產生相同的散列和。塊A2中的IOM個存儲地址中的每個存儲地址產生與關于塊Al的IOM個地址計算的散列和不同的另一個散列和,等等。因此,表格40包括1000行,每個塊14 一行。當在主存儲器12中的特定存儲單元檢測到差錯時,對該存儲單元的存儲地址應用散列函數24,以確定表格40的哪一行把該差錯記錄在差錯跟蹤列44中。
在一個實施例中,通過識別SBE并跟蹤SBE的位置,以把SBE識別為隨機差錯或重復差錯,可對主存儲器12進行PFA。對本公開來說,在規(guī)定的時間間隔內,在任意特定地址或地址塊出現不多于一次的差錯可被看作隨機差錯。在特定地址或地址塊出現多于一次的差錯可被看作重復差錯。在另一個實施例中,只有在特定地址重復發(fā)生的那些差錯才可被看作重復差錯,以及差錯在存儲地址塊內的意外過高重現可用作該地址塊內的特定存儲地址處的可能重復差錯的指示符。跟蹤主存儲器12中的每個存儲地址處的SBE,以明確確定特定存儲地址是否經歷重復差錯在本發(fā)明的范圍之內。然而,通過把存儲地址組成多個塊 14,可在塊層面跟蹤差錯的發(fā)生,而不是在單個存儲地址的層面跟蹤差錯的發(fā)生,從而提供一種更高效的跟蹤SBE并把SBE分類成隨機差錯或重復差錯的方式。通過把每個單個存儲地址看作一個獨立的塊,可提供在區(qū)分隨機差錯和重復差錯方面最高的分辨率水平。然而, 跟蹤每個存儲地址處的差錯率是極其內存密集和CPU密集的。通過改為把存儲地址組成多個塊14并在塊層面監(jiān)測SBE的發(fā)生和重現,可獲得具有可接受的分辨率水平的更高效率。
在本實施例中,設置第一計數器(隨機差錯計數器)26,以計數被識別為隨機差錯的每個SBE。設置第二計數器(重復差錯計數器)28,以計數被識別為重復差錯的每個SBE。 定時器功能30被用于定時具有預定持續(xù)時間的連續(xù)時間間隔。在每個時間間隔的開始,通過把差錯跟蹤列44中的所有簽名比特45重置為0來初始化表格40。在每個連續(xù)時間間隔內,檢測SBE,并按照出現每個SBE的地址塊14,把SBE記錄在表格40的差錯跟蹤列44中。 通過利用差錯跟蹤列44,出現在任意給定塊中的第一個差錯可被看作隨機差錯,以及在特定時間間隔內該塊中的任何重現差錯被看作重復差錯(在這種方案的變形中,不是把第一個差錯看作隨機差錯,而是在每個預定時間間隔的結束,確定差錯是隨機差錯還是重復差錯。在所述時間間隔內在給定塊中出現一個并且僅一個差錯可被看作隨機差錯,而在給定塊中出現多于一個的差錯可被看作重復差錯)。在相應的計數器沈、觀上計數隨機差錯和重復差錯。閾值比較器32比較隨機差錯計數器沈和第一閾值(隨機差錯閾值)27,以及比較重復差錯計數器觀和第二閾值(重復差錯閾值)29。報警發(fā)生器34被配置成如果在任意預定時間間隔內,識別的隨機差錯的數目達到隨機差錯閾值27,或者識別的重復差錯的數目達到重復差錯閾值四,則生成PFA報警。
報警發(fā)生器34可用于觸發(fā)補救動作,比如把DMM標記成壞的DMM,并自動使該 DIMM下線。響應于PFA報警可采取的備選動作或其它動作可包括例如在DIMM故障日志50 中記錄被懷疑故障的DIMM的位置,以有助于該DIMM的后續(xù)修復動作。在另一個動作中,也可響應于PFA報警而開啟與問題DIMM相鄰的LED或其它視覺指示器。此外,響應于PFA報警,風扇控制器52可加強冷卻,例如降低可能成為DIMM故障原因之一的高溫。還可包括存儲器節(jié)流控制邏輯53,以響應于PFA報警而降低DIMM性能。差錯檢測控制邏輯23還可開始更頻繁的掃描以檢測和校正差錯,比如通過使用存儲器擦洗。
重復差錯閾值四最好被設定成小于隨機差錯閾值27。設定明顯低于隨機差錯閾值的重復差錯閾值可提供對隨機差錯的容限大于對重復差錯的容限的PFA。附圖中給出一個例子,其中隨機差錯閾值27被設定成1000,而重復差錯閾值四僅僅被設定成10。在這個例子中,隨機差錯閾值27從而是重復差錯閾值四的大小的10倍。隨機差錯閾值27和重復差錯閾值四以及(上面討論的)散列縮小率可以是由作過說明的存儲器性能要求或者可靠性、可用性和可維修性(RAQ要求決定的存儲器的量的函數。
在本實施例中,設置在每一行(記錄)的差錯跟蹤列44中的簽名比特45是1比特簽名。1比特是存儲器的最小可用單元,它可具有兩個互斥的二進制值之一,比如“0”或 “1”。1比特簽名的使用令人滿意地把指示差錯狀態(tài)所需的存儲量降到最小,同時提供關于特定塊的差錯狀態(tài)的有限信息量。當差錯檢測控制邏輯23檢測到SBE時,對SBE的存儲地址應用散列函數,以確定表格40的哪一行記錄該SBE。如果該行中的簽名比特45目前為 “0”,那么把該簽名比特從“0”轉換為“1”以記錄該差錯,并遞增隨機差錯計數器沈。如果在相同時間間隔內,在同一個塊14內發(fā)生后續(xù)SBE,那么存儲控制器20根據簽名比特45的 “1”值,確定在該塊中先前已出現過至少一個差錯,從而遞增重復差錯計數器觀。簽名比特在所述時間間隔的持續(xù)時間內保持值1,使得對于在所述特定時間間隔內在同一個塊出現的每個SBE,重復差錯計數器觀都將被遞增。同時,在所述時間間隔內,在其它塊14只出現一次的SBE將被隨機差錯計數器沈計數成隨機差錯。在該具體實施例中,計數被識別為隨機差錯的SBE的總數和被識別為重復差錯的SBE的總數,而不詳細說明在每個塊出現了多少重復差錯。
在圖1的實施例中,每個塊14可具有許多存儲地址(例如,本例中,每個塊具有 1024個地址),然而,簽名比特45只包括一個比特。從而,差錯跟蹤列44中的簽名比特45 的值只指示在當前時間間隔內,先前在給定塊14中是否發(fā)生了 SBE,而不詳細說明先前發(fā)生SBE的具體存儲地址。然而,每個塊14處的重復差錯的計數仍然提供了對PFA有用的信息,因為給定塊內的壞的存儲地址或壞的一組存儲地址會導致該塊中的不相稱的較大差錯計數??梢赃x擇重復差錯閾值四的值,以指示在期望水平的確定性內,在該塊內存在有缺陷的存儲地址。
差錯跟蹤列44中的每個字段的大小是可為調整對存儲系統(tǒng)10的PFA處理的性能而選擇的一個參數??梢允共铄e跟蹤列44中的每個字段的大小從所示的1比特簽名增大到多比特字段,以便于記錄更多的具體信息。例如,如果使差錯跟蹤列44中的每個字段的大小從單個比特增大到完整的一個存儲字節(jié),那么差錯跟蹤列44中的每個字段可被用于計數在每個塊14發(fā)生的差錯的數目,而不僅僅是計數在存儲系統(tǒng)10中發(fā)生的差錯的總數。 計數每個塊14處的差錯的數目將提供用于分析在主存儲器12中發(fā)生的SBE的附加信息。 可以產生報警,以指示具有不相稱的較大數目重復差錯的塊。例如,如果在一個時間間隔內,在存儲系統(tǒng)12中出現總共10個重復差錯,那么在一個塊中出現10個重復差錯可指示與10個不同塊的每個塊處1個重復差錯相比更嚴重的問題。另一個閾值可被用于響應于特定塊中的重復SBE的數目而觸發(fā)報警。
歸入每個塊14中的存儲地址的數目是可為調整對存儲系統(tǒng)10的PFA處理的性能而選擇的另一個參數。增大每個塊14的存儲地址的數目會減小表格40的大小,以及增大存儲系統(tǒng)10中的PFA處理的速度。相反,減小每個塊14的存儲地址的數目會增大表格大小,但更好地區(qū)分隨機差錯和重復差錯。在一個極端,把每個塊14的大小減小到單個存儲地址實際上使存儲系統(tǒng)10能夠識別在任意特定存儲地址出現的重復差錯。然而,由于需要差錯跟蹤列44中的字段與主存儲器12中的唯一存儲地址的數目一樣多,因此這樣做會增大表格40的大小。可按照多少存儲地址被歸入每個塊14中,來獲得效率和分辨率的理想平衡。
隨機差錯閾值27和重復差錯閾值四是可為調整對存儲系統(tǒng)10的PFA處理的性能而選擇的另外兩個參數。每個閾值27、四越大,PFA處理對相應差錯類型的容限越高。然而,由于隨機差錯被認為不太可能在存儲系統(tǒng)10中導致任意種類的災難性故障,因此隨機差錯閾值27可被設定成是重復差錯閾值四的許多倍。
定時器功能30所測量的時間間隔是可為調整對存儲系統(tǒng)10的PFA處理的性能而選擇的另一個參數。例如,較長的時間間隔可以給出在存儲系統(tǒng)10的各個塊中出現差錯的任何趨勢的更全面指示。然而,可以選擇較短的時間間隔,使得系統(tǒng)10更快地對差錯做出反應以及產生被證明具有充分依據的任何PFA報警。
此外,字段大小、塊大小、隨機差錯閾值27和重復差錯閾值29、以及時間間隔等參數相互影響,從而可以相互協同地進行調整,以實現所需調節(jié)。例如,如果塊大小被減小到每個塊包括較少的存儲地址,那么系統(tǒng)10將能夠更好地區(qū)分隨機差錯和重復差錯。從而, 重復差錯閾值四可隨同塊大小的減小一起被減小,因為在大小減小的塊中計數的重復差錯的數目更可能出自單個存儲地址或者較小的一組存儲地址。同樣地,如果選擇較長的時間間隔,那么可以選擇隨機差錯閾值27和重復差錯閾值四的對應更大的值。
選擇圖1的例子,以便易于利用數目便利的1000個存儲塊進行討論。在另一個更實際的例子中,4. 千兆字節(jié)(GB)DMM可被分成16384個塊,每個塊包含沈2144 (4. 29GB/16384)個字節(jié)。利用1比特/塊算法跟蹤16384個塊將只需要 2048(16384/8)字節(jié)表格。這會產生2097152 (4. ^GB/2048字節(jié))1的散列比。這是一個相當大的散列比,產生可以非常高效地管理的對應較小表格。對于區(qū)分隨機差錯和重復差錯來說,本例中的所述較大散列比的效率應是綽綽有余的。
圖2是概述在存儲系統(tǒng),包括(但不限于)圖1的存儲系統(tǒng)10中執(zhí)行的PFA處理的流程圖。步驟100涉及啟動或重置定時器和表格。所述表格是電子表格,其例子是圖1 的表格40。表格包括用于每個存儲地址塊的差錯跟蹤字段,以跟蹤在所述存儲地址塊識別的SBE。每次重復步驟100時,表格中的差錯跟蹤字段都被重置為0或空值。定時器將被用于定時在其間識別和計數SBE的連續(xù)時間間隔。每次重復步驟100時,定時器一開始也被設定為0。
在步驟102中,監(jiān)測存儲系統(tǒng)的一個或多個DIMM的差錯,包括單比特差錯(SBE)。 條件步驟104對SBE的檢測作出反應,而條件步驟106對當前時間間隔是否到期作出反應。 在步驟102、104和106,在所述時間間隔的持續(xù)時間不斷監(jiān)測DMM的SBE。如果在當前時間間隔內的任意時間在步驟104檢測到SBE,那么處理進入步驟106,在步驟106,對識別出 SBE的存儲地址應用散列函數,以確定表格中記錄該SBE的位置。例如,可以選擇散列函數, 以便當把該散列函數應用于給定塊中的任意存儲地址時,產生相同的散列和。表格位置可以是用于該塊的特定行。
在條件步驟108中,可以參照與該塊相對應的行或其它表格位置內的字段來確定在當前時間間隔內,先前在該表格位置是否記錄了任意SBE。如果在當前時間間隔內,先前在該表格位置記錄了一個或多個SBE,那么在步驟110,遞增重復差錯計數器。如果對于整個存儲系統(tǒng)只使用一個重復差錯計數器,那么重復差錯計數器可以通用于該存儲系統(tǒng),或者如果對每個塊提供獨立的計數器,那么重復差錯計數器可專用于該塊。然而如果在步驟 108中,先前未在該表格位置記錄SBE,那么在步驟112可改為遞增隨機差錯計數器。隨機差錯計數器通用于整個存儲系統(tǒng)。
隨后可比較SBE與相關閾值。如果在步驟108,SBE被識別為隨機差錯,從而在步驟112使隨機差錯計數器遞增,那么按照條件步驟114,比較隨機差錯計數器與隨機差錯閾值(閾值1)。如果在步驟108,SBE改為被識別為重復差錯,從而在步驟110使重復差錯計數器遞增,那么按照條件步驟116,比較重復差錯與重復差錯閾值(閾值幻。如果在步驟 114隨機差錯計數器達到隨機差錯閾值,或者在步驟116重復差錯計數器達到重復差錯閾值,那么在步驟118產生報警。
如果兩個閾值都未被超過,那么處理返回條件步驟106,以確定當前時間間隔是否已到期。如果所述時間間隔還未到期,那么處理繼續(xù)監(jiān)測一個或多個DIMM(步驟10 、識別 SBE的發(fā)生(步驟104)、記錄任何重復差錯(步驟110)或隨機差錯(步驟112)、比較SBE 計數器與相應閾值(步驟114和116)。一旦在步驟106檢測到當前時間間隔到期,那么處理返回步驟100,在步驟100,如上所述重置定時器和表格。
本領域的技術人員會理解,本發(fā)明的各個方面可被具體體現成系統(tǒng)、方法或計算機程序產品。因而,本發(fā)明的各個方面可以采取純硬件實施例、純軟件實施例(包括固件、駐留軟件、微代碼等),或者結合這里通??杀环Q為“電路”、“模塊”或“系統(tǒng)”的軟件和硬件特征的實施例的形式。此外,本發(fā)明的各個方面可以采取包含在一個或多個計算機可讀介質中的計算機程序產品的形式,所述一個或多個計算機可讀介質具有包含于其中的計算機可讀程序代碼。
可以使用一個或多個計算機可讀介質的任意組合。計算機可讀介質可以是計算機可讀信號介質或計算機可讀存儲介質。計算機可讀存儲介質可以是例如(但不限于)電、 磁、光、電磁、紅外或半導體系統(tǒng)、設備或裝置,或者它們的任意適當組合。計算機可讀存儲介質的更具體的例子(非窮舉列表)可包括具有一根或多根導線的電連接,可移植計算機磁盤,硬盤,隨機存取存儲器(RAM),只讀存儲器(ROM),可擦可編程只讀存儲器(EPR0M或閃速存儲器),光纖,可移植光盤只讀存儲器(CD-ROM),光存儲裝置,磁存儲裝置,或者上述存儲介質的任意適當組合。在本文的上下文中,計算機可讀存儲介質可以是能夠包含或者保存供指令執(zhí)行系統(tǒng)、設備或裝置使用的,或者結合指令執(zhí)行系統(tǒng)、設備或裝置使用的程序的任何有形介質。
計算機可讀信號介質可包括計算機可讀程序代碼包含在其中,例如,包含在基帶中,或者體現為載波的一部分的傳播數據信號。這種傳播信號可以采取任意各種形式,包括 (但不限于)電磁、光或者它們的任意適當組合。計算機可讀信號介質可以是不是計算機可讀存儲介質,并且能夠傳遞、傳播或傳送供指令執(zhí)行系統(tǒng)、設備或裝置使用的,或者結合指令執(zhí)行系統(tǒng)、設備或裝置使用的程序的任何計算機可讀介質。
包含在計算機可讀介質上的程序代碼可利用任何適當的媒體傳送,包括(但不限于)無線媒體、有線媒體、光纖電纜、RF等,或者它們的任意適當組合。
可用一種或多種編程語言,包括諸如Java、Smalltalk, C++之類的面向對象的編程語言,和諸如“C”編程語言或類似編程語言之類的常規(guī)過程編程語言的任意組合,編寫執(zhí)行本發(fā)明的各個方面的操作的計算機程序代碼。程序代碼可完全在用戶的計算機上運行, 部分在用戶的計算機上運行,作為獨立的軟件包,部分在用戶的計算機上運行并且部分在遠程計算機上運行,或者完全在遠程計算機或服務器上運行。在后一情況下,遠程計算機可通過任意類型的網絡,包括局域網(LAN)或廣域網(WAN),連接到用戶的計算機,或者可實現與外部計算機的連接(例如,利用因特網服務提供商,經因特網實現與外部計算機的連接)。
下面參考按照本發(fā)明的各個實施例的方法、設備(系統(tǒng))和計算機程序產品的流程圖和/或方框圖,說明本發(fā)明的各個方面。要明白流程圖和/或方框圖的每個方框,以及流程圖和/或方框圖中的各個方框的組合可用計算機程序指令實現。這些計算機程序指令可被提供給通用計算機,專用計算機或者其它可編程的數據處理設備的處理器,從而產生機器,以致借助計算機或其它可編程數據處理設備的處理器執(zhí)行的指令產生實現在流程圖和/或方框圖的一個或多個方框中指定的功能/動作的裝置。
這些計算機程序指令也可被保存在計算機可讀介質中,所述計算機可讀介質能夠指令計算機、其它可編程數據處理設備或者其它裝置按特定方式運行,以致保存在計算機可讀介質中的指令產生制成品,所述制成品包括實現在流程圖和/或方框圖的一個或多個方框中指定的功能/動作的指令。
計算機程序指令也可被加載到計算機,其它可編程數據處理設備或其它裝置上,使得在計算機,其它可編程數據處理設備或其它裝置上執(zhí)行一系列的操作步驟,從而產生計算機實現的處理,以致在計算機或其它可編程設備上執(zhí)行的指令提供實現在流程圖和/ 或方框圖的一個或多個方框中指定的功能/動作的處理。
附圖中的流程圖和方框解說明按照本發(fā)明的各個實施例的系統(tǒng)、方法和計算機程序產品的可能實現的體系結構、功能和操作。在這方面,流程圖或方框圖中的每個方框可代表包含實現指定的邏輯功能的一個或多個可執(zhí)行指令的模塊、程序段或一部分代碼。 另外應注意,在一些備選實現中,在方框中表示的功能可不按照附圖中所示的順序發(fā)生。例如,接連表示的兩個方框事實上可以基本同時地執(zhí)行,或者各個塊有時可按照相反的順序執(zhí)行,取決于所涉及的功能。另外應注意方框圖和/或流程圖的每個方框,以及方框圖和/ 或流程圖中的各個方框的組合可用實現指定功能或動作的基于硬件的專用系統(tǒng),或者專用硬件和計算機指令的組合實現。
這里使用的術語只是用于說明具體的實施例,并不意圖限制本發(fā)明。這里使用的單數形式意圖還包括復數形式,除非上下文明確地另有所示。另外要明白當用在本說明書中時,術語“包含”指定指定所陳述的特征、整數、步驟、操作、部件、組件和/或組的存在,然而并不排除一個或多個其它特征、整數、步驟、操作、部件、組件和/或組的存在或增加。術語“最好”、“優(yōu)選”、“寧可”、“視情況”、“可以”和類似術語用于指示所涉及的某一項目、條件或步驟是本發(fā)明的可選(非必需)特征。
下面的權利要求中的所有裝置或步驟加功能部件的對應結構、材料、動作和等同物意圖包括與明確要求保護的其它部件結合地實現功能的任意結構、材料或動作。提供本發(fā)明的說明是出于舉例說明的目的,而不是窮舉的,或者意圖把本發(fā)明局限于所公開的形式。對本領域的普通技術人員來說,許多修改和變化是顯而易見的,而不脫離本發(fā)明的精神和范圍。選擇并說明實施例是為了更好地解釋本發(fā)明的原理和實際應用,以及使本領域的其他普通技術人員能夠關于具有適合于預期的特定應用的各種修改的各個實施例,理解本發(fā)明。
權利要求
1.一種檢測差錯的方法,包括 檢測存儲模塊中的單比特差錯;把每個單比特差錯識別為隨機差錯或重復差錯;計數在一個時間間隔內發(fā)生的每個識別的隨機差錯和每個識別的重復差錯;以及響應于在所述時間間隔內識別的隨機差錯的數目達到隨機差錯閾值或者識別的重復差錯的數目達到重復差錯閾值,產生報警,其中,所述重復差錯閾值小于所述隨機差錯閾值。
2.按照權利要求1所述的方法,進一步包括把在所述時間間隔內單比特差錯在存儲地址的子集中的每個第一次出現識別為隨機差錯;以及把在同一個時間間隔內單比特差錯在存儲地址的所述子集中的每個后續(xù)出現識別為重復差錯。
3.按照權利要求1所述的方法,進一步包括把在所述時間間隔內在存儲地址的塊中出現一個且僅僅一個單比特差錯識別為隨機差錯;以及把在所述時間間隔內在所述存儲地址的塊中出現多于一個的單比特差錯識別為重復差錯。
4.按照權利要求1所述的方法,進一步包括把每個檢測到的單比特差錯的存儲地址映射到電子表格中的相應位置; 把在所述時間間隔內被映射到電子表格中的一個位置的單比特差錯的第一次出現識別為隨機差錯;以及把在所述時間間隔內被映射到電子表格中的所述位置的單比特差錯的重復出現識別為重復差錯。
5.按照權利要求4所述的方法,進一步包括對每個檢測到的單比特差錯的存儲地址應用散列函數,以獲得電子表格中的相應位置。
6.按照權利要求5所述的方法,其中,所述散列函數把多于一個的存儲地址映射到電子表格中的每個位置。
7.按照權利要求4所述的方法,進一步包括響應于在所述時間間隔內,已被映射到電子表格的所述位置的檢測到的單比特差錯的每個第一次出現,遞增隨機差錯的計數;以及響應于在所述時間間隔內,已被映射到電子表格的所述位置的檢測到的單比特差錯的后續(xù)出現,遞增重復差錯的計數。
8.按照權利要求1所述的方法,進一步包括響應于在所述時間間隔內單比特差錯在存儲地址的塊的第一次出現,把與所述存儲地址的塊唯一關聯的簽名比特從第一二進制值轉換成第二二進制值;響應于簽名比特從第一二進制值被轉換成第二二進制值,遞增隨機差錯的計數;以及響應于在同一個時間間隔內所述存儲地址的塊處的后續(xù)單比特差錯,根據簽名比特的第二二進制值,確定先前在所述存儲地址的塊中已出現至少一個差錯,并遞增重復差錯的計數。
9.按照權利要求1所述的方法,進一步包括分別計數在多個塊中的每個塊出現的單比特差錯的數目,每個塊包括一個或多個存儲地址;響應于在所述時間間隔內每個塊具有一個且僅僅一個單比特差錯,遞增隨機差錯的計數;以及響應于在所述時間間隔內每個塊具有多于一個的單比特差錯,遞增重復差錯的計數。
10.一種檢測差錯的存儲系統(tǒng),包括存儲控制器,包括用于檢測存儲模塊中的單比特差錯的差錯檢測控制邏輯; 隨機差錯計數器,用于計數在一個時間間隔內出現的隨機差錯; 重復差錯計數器,用于計數在所述時間間隔內出現的重復差錯; 閾值比較器,用于比較隨機差錯計數器和隨機差錯閾值以及比較重復差錯計數器和重復差錯閾值,其中,所述重復差錯閾值小于所述隨機差錯閾值;以及報警發(fā)生器,被配置成響應于在所述時間間隔內隨機差錯計數器達到隨機差錯閾值或者重復差錯計數器達到重復差錯閾值,產生報警。
11.按照權利要求10所述的存儲系統(tǒng),進一步包括能夠由存儲控制器寫入的電子表格,所述存儲控制器被配置成把每個檢測到的單比特差錯的存儲地址映射到所述電子表格中的相應位置;把在所述時間間隔內,映射到電子表格中的一個位置的單比特差錯的第一次出現識別為隨機差錯的控制邏輯;以及把在所述時間間隔內,映射到電子表格中的所述位置的單比特差錯的重復出現識別為重復差錯的控制邏輯。
12.按照權利要求11所述的存儲系統(tǒng),進一步包括對每個檢測到的單比特差錯的存儲地址應用散列函數,以獲得電子表格中的相應位置的控制邏輯。
13.按照權利要求12所述的存儲系統(tǒng),其中,所述散列函數具有電子表格中的每個位置多于一個的存儲地址的縮小率。
14.按照權利要求11所述的存儲系統(tǒng),進一步包括響應于在所述時間間隔內,已被映射到電子表格的所述位置的檢測到的單比特差錯的每個第一次出現,遞增隨機差錯計數器的控制邏輯;以及響應于在所述時間間隔內,已被映射到電子表格的所述位置的檢測到的單比特差錯的后續(xù)出現,遞增重復差錯計數器的控制邏輯。
15.按照權利要求11所述的存儲系統(tǒng),進一步包括 與電子表格中的每個位置唯一關聯的比特;響應于在所述時間間隔內,已被映射到電子表格的關聯位置的檢測到的單比特差錯的每次出現,在第一二進制值和第二二進制值之間轉換每個比特的控制邏輯;響應于所述比特從第一二進制值被轉換成第二二進制值,遞增隨機差錯計數器的控制邏輯;以及響應于所述比特從第二二進制值被轉換回第一二進制值,遞增重復差錯計數器的控制邏輯。
全文摘要
用散列函數區(qū)分存儲系統(tǒng)中隨機和重復差錯的方法和系統(tǒng)。一個實施例提供了一種差錯檢測方法,其中檢測存儲模塊中的單比特差錯并識別為隨機差錯或重復差錯。計數在一個時間間隔內出現的每個識別的隨機差錯和每個識別的重復差錯。響應于在預定時間間隔內識別的隨機差錯的數目達到隨機差錯閾值,或者識別的重復差錯的數目達到重復差錯閾值,產生報警。重復差錯閾值被設定成小于隨機差錯閾值??蓪γ總€檢測到的差錯的存儲地址應用散列處理,從而把存儲系統(tǒng)中的差錯的位置映射到電子表格中的相應位置。
文檔編號G06F11/00GK102541667SQ20111028114
公開日2012年7月4日 申請日期2011年9月21日 優(yōu)先權日2010年9月21日
發(fā)明者C·L·普林頓, D·A·勞維, I·R·扎帕塔, J·Q·赫爾南德斯, M·C·埃萊斯, M·L·斯科蘭德, S·K·巴哈里, 鄧夫子 申請人:國際商業(yè)機器公司