專利名稱:用于在信息處理系統(tǒng)中管理存儲錯誤的系統(tǒng)和方法
技術領域:
本發(fā)明一般涉及計算機系統(tǒng)和信息處理系統(tǒng)領域,并且尤其涉及處理存
儲錯誤(memory error)。
背景技術:
隨著信息的價值和使用不斷地增加,個人和企業(yè)均在尋求其它的處理和 存儲信息的方法。對于用戶而言, 一個可用的選擇就是信息處理系統(tǒng)。信息 處理系統(tǒng)通常處理、匯集、存儲和/或傳輸用于商業(yè)、個人或者其他目的的信 息和數(shù)據(jù),從而使用戶得以利用信息的價值。由于不同的用戶或應用之間存 在不同的技術和信息處理需要和需求,因此信息處理系統(tǒng)在以下方面可能不 同信息處理的類型;處理信息的方法;處理、存儲或傳輸信息的方法;所 處理、存儲或傳輸?shù)男畔⒘?;以及處理、存儲或傳輸信息的速度和效率方面?信息處理系統(tǒng)中的變化允許信息處理系統(tǒng)成為通用的、或者針對特定用戶或 者諸如金融交易處理、航班訂票、企業(yè)數(shù)據(jù)存儲或者全球通信的特定用途而 被配置。另外,信息處理系統(tǒng)可以包含或包括多種被配置為處理、存儲和傳 輸信息的軟硬組件,并且可以包含一個或者多個計算機系統(tǒng)、數(shù)據(jù)存儲系統(tǒng) 和網(wǎng)絡系統(tǒng)。
計算系統(tǒng)通常將包括某些形式的臨時信息存儲介質,例如隨機存取存儲 器。在最新的計算系統(tǒng)中,信息處理系統(tǒng)所包含的存儲量可以是千兆字節(jié)級 的。隨著存儲大小的增加,存儲部分可能被制造得存在缺陷或者隨著時間地 過去而變得存在缺陷的可能性也在急劇增大。如果放任不理,不管缺陷存儲 單元有多大,缺陷存儲單元的存在能導致信息處理系統(tǒng)出現(xiàn)故障,該故障能 夠引起信息處理系統(tǒng)的當前操作的突然終止,從而導致重要數(shù)據(jù)的丟失或可
以阻止信息處理系統(tǒng)的完全啟動。
隨著計算系統(tǒng)不斷地發(fā)展和計算機技術的進步,CPU和存儲器之間的操
作關系變得更加重要?,F(xiàn)代系統(tǒng)的許多屬性(特別是多核處理器和虛擬化的
全面引入)導致了不斷增長的存儲占用量(footprint)。因此,不僅僅系統(tǒng)存 儲器逐漸變成整體解決方案成本的相當大的部分,而且存儲器中的錯誤行為 的影響會對計算系統(tǒng)的相關壽命周期費用產(chǎn)生更加壞的影響。
通常,嵌入的錯誤校正策略成功地被用于避免在單比特上的"沖突
(crash)"并且被用來檢測多比特惡化(corruption)。然而,隨著存儲器體積 的變小以及存儲容量的增大,有必要增加服務保護的另一個標準,該標準是 迅速可用的并且常駐在它自己的存儲模塊中。PC結構中系統(tǒng)的成功運行依 賴于某些存儲區(qū)域沒有缺陷。例如,甚至在包括128GB存儲器的高級處理 器系統(tǒng)中,如中斷矢量地址、基本輸入/輸出系統(tǒng)("BIOS")數(shù)據(jù)區(qū)域以及 在F000:0地址空間的64KB區(qū)域的某些存儲區(qū)域不包括缺陷是至關重要的。 存在許多被用來追蹤或用來指示存在已知存儲錯誤的各種方法。因此, 在缺陷的或損壞的存儲塊的存在和狀況是已知的實例中,可以容忍存儲缺陷
(memory defect)的早期BIOS加電自檢("POST")過程變得有必要。特別 地,盡管存在已知的存儲缺陷,但期待允許POST過程在沒有沖突的情況下 成功地完成POST初始化過程。
發(fā)明內容
根據(jù)本發(fā)明的內容,公開了一種用于在單個處理器和多處理器信息處理 系統(tǒng)中的POST階段和存儲器校準期間處理存儲缺陷的方法,由此關于已知 存儲缺陷的位置的信息被利用以優(yōu)化信息處理信息的性能。
本發(fā)明的技術優(yōu)點在于其通過在不損害系統(tǒng)性能的情況下允許具有已 知存儲缺陷的存儲組件的使用,從而大幅降低了信息處理系統(tǒng)的成本。識別
并存儲存儲缺陷信息的能力允許具有部分有缺陷的存儲組件的信息處理系 統(tǒng)在沒有"沖突"的情況下操作。特別地,信息處理系統(tǒng)在它繞過有缺陷的存 儲單元時保持可操作性,并且當新的缺陷出現(xiàn)時更新它的存儲缺陷信息。隨 著系統(tǒng)存儲器逐漸成為了整個解決方案成本的相當大的部分,所述改進之處 的重要性也得到了擴大。
本發(fā)明的另一個技術優(yōu)點在于其允許系統(tǒng)保持正常工作而不管系統(tǒng)存 儲器中的較小的缺陷。通過最小化錯誤的存儲器行為的影響,根據(jù)本發(fā)明的 系統(tǒng)和方法可以大幅降低信息處理系統(tǒng)的相關的壽命周期費用。通過閱讀以 下說明書、權利要求書和附圖,其他技術優(yōu)點對本領域技術人員而言將顯而 易見。
通過參考以下結合附圖的描述,可以獲得對本實施方式及其優(yōu)點的更加 透徹的理解,附圖中,相同的參考數(shù)字表示相似的特征,其中 圖1是傳統(tǒng)的信息處理系統(tǒng)的框圖2是在具有非一致性隨機存儲器訪問結構的服務器中處理存儲缺陷的 步驟的流程圖3是在雙列直插式存儲模塊(Dual In-line Memory Module)校準時處 理存儲缺陷的流程圖4是具有缺陷區(qū)域的示例的存儲模塊的流程圖5是在分配用于POST任務使用的存儲器時處理存儲缺陷的步驟流程圖。
具體實施例方式
針對本公開的目的,信息處理系統(tǒng)可以包括任何手段或者手段的集合,
所述手段用于計算、分類、處理、發(fā)送、接收、獲取、創(chuàng)建、交換、存儲、 顯示、顯現(xiàn)、檢測、記錄、復制、操作、或者利用任何形式的用于商業(yè)、科 學、控制或者其他目的的信息、智能、或者數(shù)據(jù)。例如,信息處理系統(tǒng)可以 為個人計算機、網(wǎng)絡存儲設備或者其他合適的設備,并且可以在大小、形狀、 性能、功能和價格上有所不同。所述信息處理系統(tǒng)可以包括隨機存取存儲器
(RAM)、 一個或者多個諸如中央處理單元(CPU)或者硬件或軟件控制邏 輯的處理資源、ROM、和/或其他類型的非易失性存儲器。所述信息處理系 統(tǒng)的附加組件可以包括一個或者多個磁盤驅動器、 一個或者多個與外部設備 進行通信的網(wǎng)絡端口、以及各種輸入和輸出(I/O)設備,例如鍵盤、鼠標 和視頻顯示器。所述信息處理系統(tǒng)還可以包括一個或者多個用于在所述各種 硬件組件之間發(fā)送通信信息的總線。
圖1中示出了一般的信息處理系統(tǒng)的框圖。所述一般的信息處理系統(tǒng)5 的處理器或CPU 100以通信的方式連接到存儲控制器中心或北橋芯片(north bridge) 102。存儲控制器中心102連接到存儲器104和圖形處理單元106。 存儲控制器中心102還連接到I/0控制中心或南橋(south bridge) 108。 I/O 控制中心108連接到計算機系統(tǒng)的存儲元件,該存儲元件包括諸如用于計算 機系統(tǒng)的BIOS的閃存ROM的存儲元件110和計算機系統(tǒng)的硬盤驅動器 112。 I/O控制中心108還可以連接到新一代I/O芯片114,該芯片114自身 連接到計算機系統(tǒng)的多個I/0端口, 1/0端口包括鍵盤116、鼠標118和并行 端口 120。
在圖2中,在具有非一致性存儲器訪問(NUMA)結構的處理器中用于 處理存儲缺陷的步驟的流程圖由參考數(shù)字200表示。在NUMA系統(tǒng)中,每 個處理器有自己本地映射的存儲器。另外,每個處理器也可以訪問連接在其 它處理器的存儲器,該存儲器作為遠程的存儲器被映射在處理器上。典型地, 一個在NUMA結構中的處理器被指定為默認啟動服務處理器(BSP)。默認 啟動服務處理器的指定可以作為系統(tǒng)硬件配置的部分或可以通過軟件功能
被選擇或修改。BIOS初始從默認啟動服務處理器運行。
在步驟202,處理POST過程期間,BIOS在每個存儲段上尋找并且定位 缺陷存儲塊。下一步,在步驟204,默認啟動服務處理器被選定作為處理器, 該處理器的存儲器將被進行存儲缺陷分析。在步驟206,確定默認啟動服務 處理器的存儲段是否有任何缺陷存儲塊。如果沒有,在步驟208默認啟動處 理器將仍然是啟動服務處理器,并且在步驟210它的本地(local)存儲器將 被用來作為系統(tǒng)配置算法的起始點。然后該過程將在步驟212終止。
如果默認啟動服務處理器的存儲段具有缺陷存儲塊,那么在步驟214確 定該有缺陷存儲是否可以被系統(tǒng)容忍(tolerate)。在一個實施方式中,確定 容忍依賴于在特定地址范圍中存在的缺陷存儲是否可以接受,或是否優(yōu)化系 統(tǒng)的行為和性能。當確定特定缺陷存儲地址是否對系統(tǒng)有不可容忍的影響 時,許多的其它因素將被考慮。在一個實施方式中,配置在節(jié)點上的如存儲 的類型、存儲的大小、存儲的速度以及存儲總量的因素被考慮以確定存儲缺 陷是否可以被容忍。如果存儲缺陷是較小的并且可以被系統(tǒng)容忍,那么默認 啟動服務處理器將仍然是啟動服務處理器,并且在步驟210它的本地存儲器 將被用作系統(tǒng)配置算法的起始點。然后該過程將在步驟212終止。
如果存儲缺陷是如使系統(tǒng)不能優(yōu)化執(zhí)行的存儲缺陷或在預先指定的最 低水平,那么在步驟216確定在多處理器系統(tǒng)中是否存在被分析的其它處理 器。如果沒有剩余處理器,該過程在步驟218終止并且存儲缺陷錯誤被檢測 并且在系統(tǒng)中被通知。相反地,如果在系統(tǒng)中存在沒有被分析的其它處理器, 在步驟220另一個處理器將被選定為啟動服務處理器,并且上面的過程將被 重復用于新選定的啟動服務處理器。繼續(xù)該過程直到可接受的處理器被定位 或者沒有其它將被處理的處理器。
因此,如果默認啟動服務處理器的存儲段在地址范圍有不可接受的或最
佳化系統(tǒng)的行為、性能或操作系統(tǒng)的缺陷塊,那么BIOS將選擇作為啟動服 務處理器的備用處理器。作為啟動服務服務器的備用處理器的選擇可以通過 用于選擇備用啟動服務處理器的任何適用的算法來完成。繼續(xù)該過程直到?jīng)] 有存儲缺陷或具有可接受水平的存儲缺陷的啟動服務處理器被選擇或存儲 缺陷錯誤信號被產(chǎn)生。
結合本公開的優(yōu)點,如本領域技術人員理解的,缺陷存儲塊的確定可以 包括將預先定義的缺陷存儲塊存儲在非易失性的RAM中或通過POST時間 存儲器測試來識別兩個部分。盡管圖2所示的流程圖涉及NUMA結構,但 是結合本公開的優(yōu)點,本領域技術人員可以理解,相同的方法可以在其它如 多核中央處理單元的多處理器系統(tǒng)中使用。例如,在多核CPU系統(tǒng)中,系 統(tǒng)可以從備用CPU插口中選擇處理器核來代替挑選備用啟動服務處理器。
用于最小化存儲缺陷對系統(tǒng)影響的方法如圖3中的300所示。圖3示出 了在雙列直插式存儲模塊的參數(shù)的校準期間用于處理已知存儲缺陷方法的 流程圖,該雙列直插式存儲模塊的參數(shù)可以例如是分布式排隊系統(tǒng)(DQS) 延遲和允許接收的(Receive-Enable)校準。
當校準DIMM參數(shù)時,處理存儲缺陷的能力非常重要。例如,在基于 雙倍數(shù)據(jù)速率2 (DDR2)或全緩沖DIMM (FBD)存儲器的設計中,校準 過程的算法包括在任意給定的DIMM存儲器中對特定偏移量(offset)的寫/ 讀操作。在校準階段的存儲缺陷處理的重要性通過事實被放大甚至在存儲 器是錯誤校驗碼(ECC)存儲器的實例中,ECC功能不能優(yōu)先于校準過程被 執(zhí)行。此外,不管存儲錯誤是單比特或多比特錯誤,結果都相同,因為ECC 功能不能在校準過程被執(zhí)行。因此,由DIMM中的存儲缺陷在用于校準的 特定DIMM地址導致的硬件存儲器錯誤將導致校準失敗。
在步驟302,初始化校驗碼并且算法的迭代計數(shù)器被設置為1。在步驟 304,用于校準的初始DIMM地址被確定。在步驟306,將初始DIMM地址 與在缺陷存儲映射表(faulty memory map)中指示的缺陷進行比較。存儲空
間在圖4中被示出并且總的采用參考數(shù)字400來表示。存儲映射表指示存儲 器404、 408、 412的某些部分包括存儲缺陷?,F(xiàn)在返回至圖3,在步驟308 中,確定初始DIMM地址是否與缺陷存儲位置匹配。
如果初始DIMM地址不與缺陷存儲位置匹配,則在步驟310校準算法 使用該地址來校準DIMM,并且該過程在步驟312終止。如果初始DIMM 地址與缺陷存儲映射表指示的已知存儲缺陷位置中的一個不匹配,則在步驟 314確定是否達到迭代閾值。迭代閾值是預先確定的數(shù)字,該數(shù)字表示執(zhí)行 迭代的次數(shù)以找到與存儲缺陷不匹配的初始DIMM地址。如果達到迭代的 閾值數(shù)字,在步驟316發(fā)出缺陷存儲錯誤消息,該消息指示校準過程沒有成 功,然后過程在步驟312終止。
如果迭代閾值沒有達到,那么在步驟318迭代計數(shù)器增加(計數(shù)器的計 數(shù)值加l)。接著,在步驟320, DIMM中的新地址偏移量將被選擇作為用于 校準的DIMM地址。被使用的偏移量是預先確定的因數(shù)。在一個實施方式 中,偏移量可以是連續(xù)的緩存行(cache line)偏移量或頁(page)偏移量。 偏移量地址將指向新的DIMM存儲位置,該偏移量地址將在步驟306中再 檢查以確定它是否包括任何存儲缺陷。該過程被重復直到達到迭代閾值,或 沒有錯誤用于校準過程的DIMM地址被識別。
圖5的流程圖描述了用于最小化存儲缺陷對系統(tǒng)影響的另一個方法,并 且總的由參考數(shù)字500表示。特別地,圖5的流程圖描述了當分配用于POST 任務使用的存儲器時,不管是用于編碼或數(shù)據(jù)存儲,用于處理存儲缺陷的方 法。POST任務使用的存儲器的分配包括,例如,CPU物理地址的分配位于 四千兆字節(jié)存儲地址范圍以下,高級配置與電源接口 (ACPI)表、系統(tǒng)管理 BIOS (SMBIOS)表以及通用串行總線(USB)數(shù)據(jù)結構被定位在該存儲地 址范圍內。在一個實施方式中,圖5所示的方法可以通過BIOS或固件來執(zhí) 行。
在步驟502,用于特殊POST任務的所需存儲空間量被確定。接下來,
在步驟504,在用于特定任務的想要的存儲空間中的第一存儲地址被選定。 在步驟506,確定與選定的存儲地址對應的存儲位置是否包括任何錯誤或缺 陷。如果沒有,那么在步驟508與分析的存儲地址對應的存儲空間被添加到 沒有錯誤的存儲器范圍內。在步驟510,系統(tǒng)將決定是否為特定的POST任 務留出足夠的沒有錯誤的存儲空間量。如果有,那么在步驟512沒有錯誤的 的存儲器范圍被用于任務,并且該過程在514終止。如果沒有為特定的POST 任務留出足夠的沒有錯誤的存儲空間量,那么在步驟516想要的存儲器范圍 中的下一個存儲地址被選定并且該過程返回到步驟506來確定新選定的存儲 空間是否包括任何缺陷或錯誤。如果在步驟506確定與選定的存儲地址對應 的存儲位置確實包括錯誤或缺陷,那么在步驟518該存儲空間被跳過,并且 在步驟516隨后的存儲空間被選擇。結合本公開的優(yōu)點,如本領域技術人員 所理解的,跳過的存儲空間量和用于下一個選定的存儲位置的偏移量被預先 指定。
通過返回到圖4可以更好的理解圖5的過程,存儲空間400具有一些編 號從數(shù)字402到414的部分。圖5所示的過程將經(jīng)過與存儲空間400中的存 儲位置對應的存儲地址,并且為包括存儲錯誤或缺陷的存儲位置404、 408、 412定位。然后,這些包括存儲錯誤或缺陷的存儲位置被跳過,并且POST 任務在存儲空間400包括一個連續(xù)的、由區(qū)域402、 406、 410和414組成的 沒有錯誤的存儲部分的假設下被執(zhí)行。結合本公開的優(yōu)點,如本領域技術人 員所理解的, 一旦錯誤被檢測,跳過的存儲量根據(jù)應用而改變,并且不局限 于圖4所示的示例性的實施方式。
結合本公開的優(yōu)點,如本領域技術人員所理解的,參考圖3和圖5所公 開的方法的執(zhí)行不局限于多處理器系統(tǒng)。這些方法被用于許多信息處理系統(tǒng) 中以最小化存儲錯誤的影響。盡管本公開被詳細的描述,但可以理解在不偏 離附屬的權利要求所限定的本發(fā)明的精神和范圍,可以進行各種變化、替換 以及修改。
權利要求
1.一種在多處理器系統(tǒng)中處理存儲錯誤的方法,該方法包括在存儲段中定位缺陷存儲塊,其中每個存儲段對應一個處理器;選擇與具有預定可接受水平的缺陷存儲塊的所述存儲段相對應的處理器;以及指定所選擇的處理器作為啟動服務處理器。
2、 根據(jù)權利要求l所述的方法,還包括指定與所述所選擇的處理器對應 的存儲段來作為系統(tǒng)存儲器配置的起始點。
3、 根據(jù)權利要求l所述的方法,其中所述多處理器系統(tǒng)包括非均勻存儲 器訪問系統(tǒng)。
4、 根據(jù)權利要求l所述的方法,其中所述多處理器系統(tǒng)包括多核中央處 理單元系統(tǒng)。
5、 根據(jù)權利要求l所述的方法,其中基本輸入/輸出系統(tǒng)定位所述存儲 段中的缺陷存儲塊。
6、 根據(jù)權利要求l所述的方法,其中所述缺陷存儲塊的位置被存儲在非 易失性的隨機訪問存儲器中。
7、 根據(jù)權利要求l所述的方法,其中所述缺陷存儲塊的位置通過加電自 檢時間存儲器檢測來確定。
8、 根據(jù)權利要求l所述的方法,其中與所述處理器對應的存儲段是處理 器的本地存儲器。
9、 一種用于在雙列直插式存儲模塊校準中處理存儲缺陷的方法,該方法包括確定用于校準的初始地址;將與所述初始地址相對應的存儲位置與缺陷存儲映射表進行比較;以及 如果與所述初始地址相對應的存儲位置被包括在所述缺陷存儲映射表 中,則偏移所述初始地址。
10、 根據(jù)權利要求9所述的方法,還包括 初始化閾值計數(shù)器;指定迭代閾值;在偏移所述初始地址之后增加迭代計數(shù)器;以及 如果迭代計數(shù)器等于所述迭代閾值,則發(fā)送錯誤消息。
11、 根據(jù)權利要求9所述的方法,其中偏移所述初始地址包括使用連續(xù) 的緩存行偏移量。
12、 根據(jù)權利要求9所述的方法,其中偏移所述初始地址包括使用連續(xù) 的頁偏移量。
13、 根據(jù)權利要求9所述的方法,其中所述雙列直插式存儲模塊校準包 括允許接收的校準。
14、 一種用于在加電自檢存儲分配中處理存儲缺陷的方法,該方法包括: 分析任務所請求的存儲空間;檢測所述存儲空間中的存儲缺陷;從所述存儲空間移去與所述存儲缺陷對應的存儲位置;以及 用沒有錯誤的存儲空間代替被移去的存儲位置。
15、 根據(jù)權利要求14所述的方法,其中分析任務所請求的存儲空間包括 在所述存儲空間中選擇第一地址; 檢査所述第一地址中的存儲缺陷;以及 如果檢測到存儲缺陷,則偏移所述第一地址。
16、 根據(jù)權利要求15所述的方法,其中檢査所述第一地址中的存儲缺陷 包括確定所述第一地址是否在缺陷存儲映射表中被指定為具有缺陷。
17、 根據(jù)權利要求16所述的方法,還包括當檢測到新的存儲缺陷時,更 新所述缺陷存儲映射表。
18、 根據(jù)權利要求15所述的方法,其中偏移所述第一地址包括跳過預定 的存儲量。
19、 根據(jù)權利要求14所述的方法,其中所述加電自檢存儲分配包括為編 碼、靜態(tài)數(shù)據(jù)或堆棧中的一者分配存儲。
20、 一種用于在加電自檢階段處理存儲缺陷的方法,該方法包括 確定用于雙列直插式存儲模塊校準的初始地址; 將與所述初始地址相對應的存儲位置與缺陷存儲映射表進行比較; 如果與所述初始地址相對應的存儲位置包括存儲缺陷,則偏移該初始地址;分析加電自檢任務所請求的存儲空間; 檢測所述存儲空間中的存儲缺陷;從所述存儲空間移去與所述存儲缺陷相對應的存儲位置;以及 用沒有錯誤的存儲空間代替被移去的存儲位置。
全文摘要
公開了一種用于在POST階段以及在單處理器和多處理器信息處理系統(tǒng)中存儲器校準的期間處理存儲缺陷的方法,由此關于已知存儲缺陷的位置的信息被用以優(yōu)化信息處理系統(tǒng)的性能。在系統(tǒng)存儲器中的存儲缺陷被識別并且在操作期間被沒有錯誤的存儲空間替代。
文檔編號G06F11/07GK101369240SQ20081021050
公開日2009年2月18日 申請日期2008年8月13日 優(yōu)先權日2007年8月14日
發(fā)明者F·E·諾羅德, J·D·派克, M·P·哈爾特里, P·D·斯塔爾茨 申請人:戴爾產(chǎn)品有限公司