提供被請求數據的方法、控制器以及計算機系統的制作方法
【技術領域】
[0001]本發明一般地涉及數據處理系統,更具體地說,涉及使用錯誤糾正代碼傳輸數據的方法。
【背景技術】
[0002]常規計算機系統的基本結構包括一個或多個處理單元,它們連接到存儲層次結構和各種外圍設備,例如顯示器、鍵盤、網絡接口和永久存儲設備。處理單元通過各種方式(包括廣義互連或總線)與存儲器和外圍設備通信。在對稱多處理器(SMP)計算機中,所有處理單元通常相同,即,它們全部使用公共指令和協議集合或子集以便操作,并且通常具有相同的體系架構。一個示例性處理單元是國際商業機器公司出售的POWER處理器。處理單元還可以具有一個或多個高速緩存,例如指令高速緩存和數據高速緩存,它們使用高速存儲器件實現。高速緩存通常用于臨時存儲可能由處理器重復訪問的值,以便通過避免從系統存儲器(即,隨機存取存儲器或RAM)加載值的更長時間的步驟來加快處理。當與處理器核心一起完整封裝在單個集成芯片上時,這些高速緩存稱為“板上”高速緩存。每個高速緩存與高速緩存控制器(未示出)關聯,該控制器管理數據在處理器核心與高速緩沖存儲器之間的傳輸。存儲層次結構可以包括其它高速緩存,例如級別2 (L2)高速緩存,其支持板上(級別I)高速緩存。L2高速緩存用作系統存儲器和板上高速緩存之間的媒介,并且可以比板上高速緩存存儲更大量的信息(指令和數據),但以更長的訪問時間為代價。可以提供多級別高速緩存層次結構,其中具有許多級別的互連高速緩存。
[0003]當提供存儲值(指令或操作數數據)時,存儲控制器或高速緩存控制器可以使用錯誤糾正代碼(ECC)電路以便檢測和糾正值中的某些錯誤,這些值從存儲陣列接收以便傳輸到請求單元(即,處理器)。值中的位可能不正確,這是由于軟錯誤(例如雜散輻射或靜電放電)或硬錯誤(有缺陷的單元)所致。ECC可以用于重構正確的數據流。許多錯誤控制代碼提供有關錯誤位(多個)的具體位置的信息。某些ECC僅可以用于檢測和糾正單個位錯誤,即,如果特定塊中的兩個或更多位無效,則ECC可能無法確定正確的數據流實際上應該是什么,但至少可以檢測故障。其它ECC更復雜并且允許檢測或糾正雙重錯誤,某些ECC還允許將存儲字分為位群集或“符號”,然后可以更詳細地分析它們以了解錯誤。后面這些錯誤糾正起來成本高昂,但設計權衡是當出現雙位(或更高階)錯誤時停止機器。錯誤糾正存儲控制器傳統上使用漢明碼,然而某些控制器使用三重模塊冗余。高速緩存或系統存儲器可以是“標記存儲”陣列,其包含每個存儲塊或高速緩存行的錯誤信息。每當遇到錯誤時,可以將受錯誤影響的位位置存儲在標記存儲陣列中,以便用于主存儲器中的特定排(rank)。主存儲器中的排指訪問高速緩存行的特定存儲模塊。多個存儲模塊可以使用單個高速緩存,但每次僅一個模塊可以訪問高速緩存行。
【發明內容】
[0004]本發明一般地涉及一種用于將被請求數據從計算機系統的存儲器件提供給所述計算機系統的請求單元的方法和相關系統,為此首先使用具有旁路延遲的旁路路徑,將所述被請求數據作為具有糾正信息的未糾正數據從所述存儲器件的控制器傳輸到所述請求單元,使用所述請求單元處的所述糾正信息確定所述未糾正數據包含具有特定復雜性級別的錯誤,并且將重試選擇信號從所述請求單元發送到所述控制器,其中所述重試信號基于所述特定復雜性級別。所述控制器然后可以基于所述重試選擇信號,使用多個錯誤糾正單元中的一個選定錯誤糾正單元將所述被請求數據作為已糾正數據從所述控制器傳輸到所述請求單元,其中所述錯誤糾正單元提供不同的錯誤糾正復雜性級別并具有不同的糾正電路延遲,每個所述糾正電路延遲大于所述旁路延遲。所述存儲器件可以是所述計算機系統的系統存儲器件,在這種情況下所述控制器是系統存儲控制器。所述請求單元例如可以是所述計算機系統的處理器。盡管執行重試讀取將增加該單個操作的延遲,但通過提供多個糾正輸出并在該復雜性級別選擇完整糾正所需的一個輸出,所述存儲控制器的整體吞吐量顯著增加,但提供最低的附加延遲。在示例性實施例中,具有三個錯誤糾正單元,包括2位糾正單元、4位糾正單元和8位糾正單元。
[0005]所述存儲控制器還可以具有永久錯誤檢測電路,當多個重試選擇信號針對所述被請求數據的存儲地址重復指示錯誤時,所述永久錯誤檢測電路將所述地址標識為有缺陷,并且控制邏輯可以將所述被請求數據的所述存儲地址與所述永久錯誤檢測電路標識為具有包含關聯的復雜性級別的永久錯誤的地址列表相比較,并且當所述被請求數據的所述存儲地址與所述列表中的地址相匹配時,所述控制邏輯使用適當的錯誤糾正單元自動傳輸所述被請求數據。每次針對所述被請求數據的所述存儲地址檢測到錯誤時,所述永久錯誤檢測電路可以遞增對應的計數器,并且當所述計數器超過預定義的閾值時,將所述存儲地址標識為有缺陷。所述預定義的閾值可以例如經由所述操作系統編程。
[0006]本發明的上述以及其它目的、特性和優點將在以下詳細的書面說明中變得顯而易見。
【附圖說明】
[0007]通過參考附圖,可以更好地理解本發明并且本發明的眾多目標、特性和優點將對所屬技術領域的技術人員變得顯而易見,這些附圖是:
[0008]圖1是根據本發明的一個實施例構造的計算機系統的框圖;
[0009]圖2是示出根據本發明的一種實現的具有錯誤糾正選擇電路的存儲器或高速緩存控制器的框圖,所述錯誤糾正選擇電路允許錯誤旁路或者基于來自請求單元(主單元)的重試信號選擇適當的糾正單元;以及
[0010]圖3是示出根據本發明的一種實現的用于處理加載指令(讀取操作)的邏輯流程的圖。
[0011]在不同附圖中使用相同參考符號指示相似或相同項目。
【具體實施方式】
[0012]盡管近年來DRAM速度已經緩慢提高,但它們仍沒有跟上處理器核心速度的增加。因此,相對于處理器時鐘速率的存儲延遲實際上性能降低。最近趨向每個微處理器芯片具有更高的核心計數,這導致增加芯片到芯片互連和DRAM存儲位速率的額外壓力。這些更高的位速率對于提供存儲數據帶寬至關重要,而該帶寬是保持為處理器核心提供數據所需的。但是,這些更高的位速率在互連方面導致更高的固有位錯誤率,從而需要更可靠的ECC和/或循環冗余代碼(CRC)以便確保合理級別的數據完整性。這些更復雜的錯誤糾正代碼又對存儲延遲具有負面影響,這是由于需要更深的ECC和/或CRC邏輯管線以進行數據檢查和糾正所致。此外,更多的核心需要更多的高速緩存/存儲器排隊結構以便滿足大量未完成的加載操作的需要,這些操作不能以高速緩存層次結構作為源(即,高速緩存“未命中”)。改進有效存儲延遲的傳統方式是經由使用片上高速緩存,以使頻繁使用的數據更接近使用中的核心。整體微處理器片上解決方案(SOC)大小方面的限制迫使在片上核心數量和片上高速緩存量之間進行權衡。因此,從純粹的高速緩存容量角度來看,改進有效存儲加載延遲的機會進一步被限制。
[0013]因此,需要發明一種改進的降低存儲延遲的方法。如果所述方法可以減少防止執行流停止所需的存儲層次結構中的排隊結構深度,則會更有利。在本發明中,這些目標通過提供多輸出錯誤糾正邏輯來實現,該邏輯首先將被請求數據傳輸到主單元(以未糾正形式但具有糾正數據),然后基于來自主單元的重試信號,通過選定錯誤糾正輸出(2位、4位等)重新傳輸被請求數據,該重試信號在特定復雜性級別檢測到錯誤。如果發現永久錯誤,則可以在未來操作中經由適當的錯誤糾正輸出自動傳輸關聯的數據。
[0014]現在參考附圖,具體地說參考圖1,示出根據本發明構造的計算機系統的一個實施例10。計算機系統10是對稱多處理器(SMP)系統,其具有連接到系統總線14的多個處理器12a、12b。系統總線14還連接到組合式存儲控制器/主橋(MC/HB) 16或者與其通信,MC/HB16為系統存儲器18提供接口。系統存儲器18可以是本地存儲器件,或者備選地可以包括多個分布式存儲器件,優選地為動態隨機存取存儲器(DRAM)。系統存儲器不同于存儲層次結構中的其它結構,因為計算機的操作系統使用的尋址方案參考系統存儲器的地址。存儲層次結構中可以具有其它結構,例如處理器12a和12b中的板上(LI)高速緩存,以及未示出的第二級(L2)或第三級(L3)高速緩存。
[0015]MC/HB16還具有到外圍組件互連(PCI)Express鏈路20a、20b、20c的接口。每個PCI Express (PCIe)鏈路20a、20b連接到相應的PCIe適配器22a、22b,并且每個PCIe適配器22a、22b連接到相應的輸入/輸出(I/O)設備24a、24b。MC/H