反覆試驗多比特糾錯的製作方法
2023-04-25 22:55:46 3
專利名稱:反覆試驗多比特糾錯的製作方法
技術領域:
本發明的實施方案涉及微處理器領域,更具體地說,涉及糾錯。
背景技術:
隨著微處理器的體系結構為了支持高性能的應用而變得越來越複雜,高效的數據檢錯和糾錯成為了一項挑戰。高性能的微處理器、儲存裝置或通信系統通常容易遭受多種不同類型的差錯,包括設備故障、導線故障、存儲器單元上的硬差錯和軟差錯,等等。
用於解決存儲器或通信數據的檢錯糾錯問題的現有技術有多種不利之處。典型地,這些技術使用根據碼多項式設計的專用硬體電路或組件。這些技術是昂貴的,需要複雜的硬體結構。它們也不夠靈活,並且可能無法適應多種不同類型的差錯。
發明內容
本發明的實施方案是一種使用反覆試驗(trial-and-error)技術執行糾錯的技術。根據本發明的一個方面,提供了一種裝置,包括檢驗子(syndrome)生成器,該檢驗子生成器提供根據至少一個糾錯參數的選擇進行修改的數據字的數據檢驗子的生成,所述數據字與在一個單元上執行的至少一個事務相關聯;以及,耦合到檢驗子生成器的控制器,該控制器控制迭代數據檢驗子的生成。其中所述糾錯參數包括差錯類型、比特位置和奇偶性糾正位置。所述檢驗子生成器包括差錯類型選擇器,該差錯類型選擇器選擇所述數據字的差錯類型;比特位置選擇器,該比特位置選擇器基於所選擇的差錯類型,選擇所述數據字中將被修改的至少一個比特位置;耦合到所述比特選擇器的數據修改器,該數據修改器使用所選擇的至少一個比特位置來修改所述數據字;以及,耦合到所述數據修改器的數據檢驗子計算器,該數據檢驗子計算器計算修改後的數據字的數據檢驗子。
根據本發明的另一個方面,提供了一種方法,包括提供根據至少一個糾錯參數的選擇進行修改的數據字的數據檢驗子的生成,所述數據字與在一個單元上執行的至少一個事務相關聯;以及控制迭代所述數據檢驗子的生成。
根據本發明的又一個方面,提供了一種系統,包括在至少一個事務中接收或發送數據字的接收器/發射器;以及,耦合到所述接收器/發射器,以糾正所述數據字上的差錯的糾錯單元,所述糾錯單元包括檢驗子生成器,該檢驗子生成器提供根據至少一個糾錯參數的選擇進行修改的數據字的數據檢驗子的生成,以及,耦合到所述檢驗子生成器的,該控制器控制迭代所述數據檢驗子的生成。
參考以下描述和附圖可以最好地理解本發明的實施方案,其中附圖用來圖示說明本發明的實施方案。在附圖中圖1是圖示了可實現本發明一個實施方案的系統的圖。
圖2是根據本發明的一個實施方案圖示了使用反覆試驗技術的糾錯單元的圖。
圖3是根據本發明的一個實施方案圖示了數據字格式的圖。
圖4是根據本發明的一個實施方案圖示了數據修改器(data modifier)的圖。
圖5是根據本發明的一個實施方案圖示了控制器的圖。
圖6是根據本發明的一個實施方案圖示了用於糾錯的處理的流程圖。
圖7是根據本發明的一個實施方案圖示了用於修改數據字的處理的流程圖。
具體實施例方式
本發明的實施方案是一種使用反覆試驗方法執行糾錯的技術。檢驗子生成器提供根據至少一個糾錯參數的選擇來修改的數據字的數據檢驗子的生成。數據字與在單元上執行的至少一個事務相關聯。控制器控制迭代數據檢驗子的生成。
在以下描述中闡述了大量具體的細節。但是,可以理解,沒有這些具體的細節也可以實現本發明的實施方案。此外,沒有示出公知的電路、結構和技術,以免模糊了對本說明書的理解。
本發明的一個實施方案可以被描述為一個處理(process),它通常用流程圖、流動圖、結構圖或框圖來描繪。雖然流程圖可以將多個操作描述為一個順序的處理,但是其中很多操作可以並行或並發地進行。此外,操作的順序可以重新排列。當一個處理的操作都完成時,該處理終止。一個處理可以對應於方法、程序、過程、加工或製造方法等。
本發明的一個實施方案是一種使用反覆試驗方法來糾正數據差錯的技術。反覆試驗方法通過針對糾錯參數的各種選擇進行迭代來完成。糾錯參數的例子是差錯類型、比特位置(bit position)和奇偶性糾正位置。所述技術是在時間域而不是在使用複雜電路結構的空間域中完成複雜的糾錯。該技術在糾錯能力(correctability)和誤糾錯容忍度之間還提供了靈活的妥協。
圖1是圖示了可實現本發明一個實施方案的系統100的圖。系統100包括處理單元/發射器110、糾錯單元120和存儲器單元/接收器130。系統100可以代表想要進行糾錯的任何系統。系統100的實施例可以包括微處理器、多核微處理器、微處理器系統、通信系統、數據處理系統、儲存系統(例如,硬碟控制器)等。
處理單元/發射器110可以是產生涉及一系列數據字的事務或事件的任何設備。它可以是處理器、多核處理器、微處理器、微控制器、數據生成器、發射器等。所述事務可以是讀事務、寫事務、數據移動事務、數據傳輸事務、偵聽事務等。
糾錯單元(ECU)120是在處理單元/發射器110和存儲器單元/接收器130之間對數據進行糾錯的單元。它可以從處理單元/發射器110或存儲器單元/接收器130接收數據,對該數據進行檢錯和糾錯,並將已糾錯的數據轉發到期望的目的地。它可以在單個事務或多個事務上執行該操作。數據可以以單字或多字突發的形式出現。數據字長度可以是適於數據路徑的任何長度。ECU 120使用迭代式反覆試驗技術來執行檢錯和糾錯。這項技術是高效靈活的,並且節省了相當多的硬體。ECU 120可以由處理單元/發射器110或存儲器單元/接收器130重新配置,從而根據系統要求、速度和糾錯能力之間的妥協、差錯類型的先驗知識、通信信道特性等來以多種模式來運行。
ECU 120為了糾錯可以執行以下操作(1)迭代;(2)在多組參數上的迭代,所述參數例如是差錯類型、比特位置等;(3)使用冗餘校驗位來引導對哪個或哪些比特位置進行糾錯,或者引導對哪些類型的差錯進行糾正,或者確定糾錯是否已成功;(4)同時使用不同類型的校驗位,根據糾錯是否已成功獨立地導出位置和類型;以及(5)使用從先前已發現的差錯中得出的信息來引導對哪個或哪些比特位置進行糾錯,或者引導對哪些類型的差錯進行糾正。校驗碼可以是任何類型的差錯校驗碼。這些碼的例子是奇偶校驗碼和循環冗餘碼(CRC)。
存儲器單元/接收器130可以包括存儲或接收來自處理單元/發射器110的數據的任何設備或多個設備。它可以包括一個或多個存儲器器件,例如靜態隨機訪問存儲器(SRAM)或動態隨機訪問存儲器(DRAM)。它也可以是通信系統中的接收器。它可以是儲存數據緩存、指令或兩者的緩存存儲器。它可以位於處理器內部或外部,或者位於晶片組中。
圖2是根據本發明的一個實施方案圖示了使用反覆試驗技術的糾錯單元120的圖。ECU 120包括檢驗子生成器210和控制器220。
檢驗子生成器210提供根據糾錯參數的選擇進行修改的數據字的數據檢驗子的生成。數據字與在一個單元上執行的事務相關聯,該單元例如是存儲器單元/接收器130(圖1)。數據檢驗子被用來確定修改後的數據字是不是已糾錯的數據字。典型地,當數據檢驗子等於0時,修改後的數據字沒有差錯,並且對應於已糾錯的數據字。檢驗子生成器210按照反覆試驗方法迭代地生成數據檢驗子。
糾錯參數可以是對差錯的糾錯能力有影響的任何參數。在一個實施方案中,糾錯參數可以是差錯類型、比特位置、奇偶性糾正位置中的至少一個。檢驗子生成器210包括差錯類型選擇器230、比特位置選擇器240、數據修改器250和數據檢驗子計算器260。
差錯類型選擇器230選擇數據字的差錯類型。差錯類型可以是單撞擊(single-strike)單比特差錯類型、單撞擊多比特差錯類型、雙撞擊單+單比特差錯類型、雙撞擊單+多比特差錯類型、雙撞擊多+多比特差錯類型、晶片或器件差錯類型以及連接故障類型的任何一種或者這些類型的組合。組合的例子包括晶片差錯和單撞擊單比特差錯、連接故障和單撞擊單比特差錯等。正如本領域的技術人員所知,任何其他差錯類型或者這些差錯的任意組合都可以被包括進來。需要注意,包括進來的差錯類型越多,誤糾錯的可能性就越高。撞擊指的是可以翻轉一個非常有限的空間區域(例如,具有1比特到5比特的區域)內的一個或幾個比特的事件或事務。雙撞擊單+單比特差錯指的是有兩次撞擊或兩個獨立的事件,每一個翻轉單個比特的差錯類型。晶片差錯類型指的是對存儲數據字一部分的整個晶片或器件產生影響的差錯。連接故障是在導線連接上的故障或差錯,例如開路或短路。差錯類型選擇器230包括差錯選擇嚮導235,用於引導對差錯類型的選擇。引導操作可以使用基於一組校驗位的檢驗子和對單元的事務的觀測結果之一的線索。差錯選擇嚮導的目的就是使搜索變窄,以加快糾錯處理並防止誤糾錯。有關應用環境、典型遇到的差錯類型、特定差錯類型的頻率以及其他相關信息的知識可以在選擇或作出有關差錯類型的假定時提供某種情報。過去糾錯的歷史也可以是確定差錯類型的另一個因素。例如,如果前面的糾錯看起來集中在兩個相鄰比特位置附近,那麼差錯選擇嚮導可以推斷在這些兩個比特位置上傳送信號的兩根導線上發生故障的可能性是很高的。
比特位置選擇器240選擇數據字中的至少一個比特位置以基於所選擇的差錯類型進行修改。這一個比特位置可以對應於一組比特中的單個比特或起始比特位置。比特位置的數量可以是一個、兩個、或三個,或者根據所選擇的差錯類型可以是任意數量。例如,如果差錯類型被認為是單撞擊雙比特差錯,則比特選擇器240在數據字中選擇最有可能發生差錯的兩個比特位置。比特選擇器240包括比特選擇嚮導245,用於引導至少一個比特位置的選擇。引導操作可以基於所選擇的差錯類型。
數據修改器250使用所選擇的至少一個比特位置來修改數據字215。數據字215可以來自包括多個存儲器器件在內的一個存儲器單元。對於二進位數據,為了糾錯而修改數據字中的一個比特意味著對該比特求補或翻轉該比特,即,將0變為1,或者將1變為0。數據修改器250可以包括簡單的比特翻轉器或者更複雜的結構,這取決於正在使用的數據組織和糾錯方案。數據修改器將修改後的數據提供給數據檢驗子計算器260。
數據檢驗子計算器260計算修改後的數據字的數據檢驗子。如果數據檢驗子等於0,則修改後的數據字非常有可能被糾錯了。否則,修改後的數據字未被糾錯,並且有必要進行進一步的處理或更多的迭代。數據檢驗子由控制器220來使用。
控制器220控制迭代數據檢驗子的生成。它使用幾種標準或引導操作向檢驗子生成器210提供控制信號。控制器220從數據檢驗子計算器260接收到數據檢驗子,以確定是否有必要進行進一步的處理或更多的迭代。它可以包含控制迭代和/或向檢驗子生成器210產生控制信號的狀態機。
圖3是根據本發明的一個實施方案圖示了數據字215的圖。數據字215示出了一系列單位(tick)。一個單位是串行發送的數據字的一個部分。為圖示目的,僅示出了四個單位單位A、B、C和D,分別對應於四個字310、320、330和340。單位的數量可以是任意個。
字310、320、330和340中的每一個都包括數據位和對應的奇偶單元或奇偶位。字310、320、330和340中的每一個在一個事務中被傳輸到器件(例如,存儲器單元)或從該器件中傳出。字310包括有效載荷位A0到An-1和奇偶位315 PA0到PAK-1。字320包括有效載荷位B0到Bn-1和奇偶位325 PB0到PBK-1。字330包括有效載荷位C0到Cn-1和奇偶位335 PC0到PCK-1。字340包括有效載荷位D0到Dm-1和奇偶位345 PD0到PDK-1。字340還包括從Dm到Dn-1的CRC字342。CRC字342的位置是任意的。它可以位於數據字215內的任何地方。在一個實施方案中,CRC字342位於數據字的一端。這增強了對最常發生的差錯的校驗性質。
字長根據應用可以是任何長度。一般地,它是從80到好多百位的量級。在一個實施方案中,K是8,n典型地等於136,m典型地是121,CRC字342的長度是15。八位存儲器器件的總數是18。由於這一長的字長,現有技術中的直接硬體實現方案會很昂貴。反覆試驗技術在靈活性、性能和效能方面提供了好得多的解決方案。
注意,CRC字342和奇偶位被用來實施強糾錯碼(ECC)。CRC字342可以被任何校驗碼取代。它可以是另一種ECC碼或隨機生成的奇偶校驗碼。在該示例性的實施例中,CRC字342是跨越各個單位,在數據位上計算出來的。奇偶性是在一個單位內的位上計算出來的,無論這些位只是數據字位還是和數據字位在一起的CRC位。計算出奇偶性,以便一旦知道有出錯的單元,它就包含著為重建出錯單元的信息所必需的信息。出錯單元可以是器件、導線或者存儲單元。
如下計算奇偶位PZj=Zn-(8-j)XOR Zn-(16-j)XOR...Z(8+j)XOR Zj(1)其中j=0,...,7;Z=A,B,C或D;而XOR是異或運算,n是一個單位中的數據位或數據+CRC位的數量。
已經發現,一個重要的CRC碼(本身也是ECC)是0X5BF3,其中0X代表十六進位表示。常數0X5BF3代表本領域的技術人員公知的Galois域GF(2)上的多項式的係數,並被稱為相應CRC碼的GF(2)上CRC係數。該CRC碼生成14個校驗位。該校驗碼的鏡像碼0X67ED具有類似的性質,也是強ECC。這些CRC校驗位的排列也可以產生其他校驗碼,它們幾乎可以和這些CRC碼一樣強。這些校驗碼當與奇偶位一起使用時變得特別強。加在一起,它們使得器件故障、單比特差錯、在多達一組8位(對齊至8位邊界)中的單撞擊差錯、以及單比特+單比特差錯能夠實現100%的糾錯。這些碼也可以用來檢測所有的單+單差錯、所有的雙+雙差錯、所有的三+單差錯、以及所有的三+三差錯、以及其他差錯組合。
可以通過添加一個總奇偶位,例如將CRC多項式乘以x+1多項式,而由以上CRC碼生成強得多的CRC碼。這產生了兩個CRC碼0XA837及其鏡像碼0XEC15,它們生成15個校驗位。這些更強的CRC碼即便在缺少奇偶性的情況下,也可實現極好的(例如,完全或近乎完全的)單撞擊差錯(包括1比特、2比特、3比特和4比特的差錯)的糾錯能力。沒有奇偶性信息的例子包括為了在器件故障之後將器件映射出去或者在導線故障之後將導線映射出去而用盡奇偶性的情況。
更強的碼也可以通過將這些CRC碼乘以其他多項式而生成。可以通過排列所獲得碼的校驗位或數據位而產生變體。也可以使用這些變體的任何組合。例如,可以通過這些CRC碼和其他多項式的乘積,進而由校驗位或數據位的排列而形成碼。通過這些操作生成的每個碼在起源碼中都有根。可以比只使用奇偶性和CRC增加更多級的校驗,而使碼變得更強。換言之,通過至少以下部分形成碼(1)0X5BF3、0X67ED、0XA837和0XEC15之一和一個多項式的乘積;(2)以下之一0X5BF3、0X67ED、0XA837和0XEC15之一以及校驗位和數據位中的至少一個的排列。
圖4是根據本發明的一個實施方案圖示了數據修改器250的圖。數據修改器250包括比特翻轉器410和奇偶性修改器420。當奇偶位被用在數據字215中時,使用奇偶性修改器420。
比特翻轉器410根據比特選擇器240(圖2)所提供的比特位置,對比特選擇器240所提供的(一個或多個)比特求補或翻轉。換言之,它將0變為1,將1變為0。比特翻轉器410包括解碼器412和異或(XOR)邏輯414。解碼器412對比特位置信息進行解碼。XOR邏輯414一位一位地對數據字215和解碼器412的輸出執行異或運算。比特翻轉器410還可以被配置為根據由控制器220控制的具體迭代階段使數據字215不被修改或者被比特翻轉。比特翻轉器410也可以使用掩碼在選定的比特位置上翻轉數據字。掩碼指定了多個連續比特中哪個(哪些)比特將翻轉。掩碼在最簡單的情況下可以只有1比特長。可以同時或者在不同的時候翻轉在幾個比特位置上的幾組比特。
當數據字215包括奇偶字和CRC字(如圖3所示)時,使用奇偶性修改器420。它包括奇偶性檢驗子計算器430、奇偶性糾正位置選擇器440和重建器450。奇偶性檢驗子計算器430在包括存儲的奇偶性在內的翻轉後數據字上計算奇偶性檢驗子。奇偶性糾正位置選擇器440選擇數據字中的奇偶性糾正位置。奇偶性糾正位置選擇器440可以在控制器220的控制下在所有的位置上迭代。奇偶性糾正位置選擇器440包括奇偶性糾正位置嚮導445,用於引導奇偶性糾正位置的選擇。在這種安排下,奇偶性糾正位置選擇器440起到使用奇偶性檢驗子在數據字中選擇將被重建的比特位置的掩碼的作用。重建器450重建數據字。重建器450可以通過異或運算來實現,其中在選定的奇偶性糾正位置上奇偶性檢驗子與數據字相互XOR。重建後的數據字形成被饋給數據檢驗子計算器260(圖2)的修改後數據255。
在典型的場景中,使用差錯類型選擇器來認定主要差錯。該主要差錯可以利用奇偶性檢驗子計算器430所提供的奇偶性檢驗子來修改。該奇偶性檢驗子可被用作糾錯掩碼。然後以反覆試驗的方式進行迭代,以確定掩碼的位置。稍後在已經使用奇偶性檢驗子進行糾錯的數據字上檢測次級(secondary)差錯。然後在糾錯掩碼位置之外的比特位置上進行迭代。
圖5是根據本發明的一個實施方案圖示了控制器220的圖。控制器220包括狀態機510、迭代參數選擇器520和固定參數選擇器530。反覆試驗技術本質上包括對應參數的選擇的迭代。
狀態機510向迭代參數選擇器520和固定參數選擇器530提供控制信號,以控制迭代檢驗子生成器210。它接收有關數據檢驗子計算器260(圖2)所提供的數據檢驗子和事務觀測結果的信息。
迭代參數選擇器520在(多個)糾錯參數的選擇上提供迭代,所述糾錯參數例如是第一差錯類型、(多個)比特位置和奇偶單元位置。固定參數選擇器530固定(多個)糾錯參數的選擇或者說使其保持不變,所述糾錯參數例如是第二差錯類型、(多個)比特位置和奇偶單元位置。
狀態機510通過迭代糾錯參數的第一組合的選擇,同時固定糾錯參數的第二組合,從而迭代檢驗子生成器210。第一組合是由迭代參數選擇器520提供的,而第二迭代是由固定參數選擇器530提供的。第一組合和第二組合是互斥的或不同的。例如,狀態機510提供控制信號,以在比特位置和奇偶單元位置上進行迭代,而保持差錯類型相同。在該實施例中,第一組合包括比特位置和奇偶單元位置,第二組合只包括差錯類型(例如,單比特差錯類型,但卻是在不同的比特位置上)。注意,差錯類型、比特位置和奇偶單元位置只是用於糾錯的參數的例子。可影響糾錯能力的任何相關參數都是可以使用的。
利用狀態機510和迭代參數選擇器520和固定參數選擇器530,控制器220可以以反覆試驗的方式完成大量操作。例如,當數據檢驗子等於0時,控制器220停止迭代數據檢驗子的生成。這是發生在認定數據字已被糾錯的時候。在另一個實施例中,控制器220繼續針對差錯類型的一個子集來迭代檢驗子生成器。這是發生在控制器220在一定程度上獲知差錯類型中只有一個子集是可能的,因此僅關注該子集以便更快收斂到結果。在另一個實施例中,控制器220繼續針對同一差錯類型迭代檢驗子生成器210,同時觀測原始事務的重試是否指示了暫態差錯。在另外一個實施例中,控制器220在所有情況下繼續迭代,即使在發現了等於0的檢驗子後也是如此,以確定只存在一個具有0檢驗子的已糾錯數據。每一個都具有0檢驗子的不同「已糾錯」數據表明在它們當中至少有一個誤糾錯。在另外一個實施例中,控制器220對於每個事務都執行反覆試驗方法,並通過預選定的迭代中的一個固定子集,以在差錯存在或不存在的情況下,對於每個事務都獲得確定性的延時。
通過使反覆試驗技術的搜索區域進一步變窄或者限制迭代,可以實現很多優化。例如,數據檢驗子計算器260可以使用查找表來獲得常見的差錯類型。奇偶性修改器420可以並行地,或者在隔離位糾正之前,而不是之後,重建數據字,此時在奇偶檢驗子中有一位也將不得不翻轉。假設有了一個硬器件故障或硬導線故障,奇偶性掩碼可以保持相同。
圖6是根據本發明的一個實施方案圖示了用於糾錯的處理600的流程圖。
在開始後,處理600選擇差錯類型(框610)。差錯類型可以是單撞擊單比特差錯類型、單撞擊多比特差錯類型、雙撞擊單+單比特差錯類型、雙撞擊單+多比特差錯類型、雙撞擊多+多比特差錯類型、晶片或器件差錯類型以及連接故障類型中的任何一種。正如本領域的技術人員所公知的那樣,任何其他差錯類型或這些差錯的任意組合都可以被包括進來。然後,處理600基於所選擇的差錯類型選擇數據字中將被修改的至少一個比特位置(框620)。接著,處理600使用所述至少一個比特位置修改數據字(框630)。然後,處理600計算修改後的數據字的數據檢驗子(框640)。
接著,處理600確定數據檢驗子是否等於0。如果不是,則處理600在差錯類型(框660)、比特位置(框670)、奇偶性糾正位置(框680)或者這些選擇的組合(框690)上進行迭代。執行迭代在這裡表示選擇每個選項。如果處理600在差錯類型上迭代,則它回到框610。如果處理600在比特位置上迭代,則它回到框620。如果處理600在奇偶性糾正位置或某種組合上迭代,則它回到框610或620,這取決於組合的方式。例如,處理600可以在差錯類型的一個子集上迭代,然後在比特位置的一個子集上迭代,然後在差錯類型的下一個子集上迭代,然後在比特位置的同一子集或下一子集上迭代,諸如此類等等。
如果數據檢驗子等於0,則處理600提供修改後的數據作為已糾錯數據(框690),然後該處理終止。
圖7是根據本發明的一個實施方案圖示了用於修改數據字的處理630的流程圖。
在開始後,處理630確定糾錯的類型(框710)。如果它是簡單類型,則該處理例如在掩碼的幫助下,在選定的比特位置上翻轉數據字中的一個或多個比特(框720),然後終止。如果它是多級類型,例如帶有奇偶性和CRC的類型,則處理630在選定的比特位置上翻轉數據字中的一個或多個比特(框730)。然後,處理630計算奇偶性檢驗子(框750)。接著,處理630選擇在數據字中規定了奇偶性糾正的位置的奇偶性糾正位置(框760)並前進到框770。注意,奇偶性糾正位置的選擇可以如圖6的框680中所示來迭代。
在框770中,處理630基於奇偶性糾正位置來重建數據字。重建的數據字形成了修改後的數據字。處理630然後終止。
雖然參考幾種實施方案描述了本發明,但是本領域的技術人員將認識到,本發明不限於所描述的實施方案,而是可以用落入本發明的精神和範圍內的修改和替換來實現。說明書因而被視為示意性的而非限制性的。
權利要求
1.一種裝置,包括檢驗子生成器,所述檢驗子生成器提供根據至少一個糾錯參數的選擇進行修改的數據字的數據檢驗子的生成,所述數據字與在一個單元上執行的至少一個事務相關聯;以及耦合到所述檢驗子生成器的控制器,所述控制器控制迭代所述數據檢驗子的生成。
2.如權利要求1所述的裝置,其中所述糾錯參數包括差錯類型、比特位置和奇偶性糾正位置。
3.如權利要求1所述的裝置,其中所述檢驗子生成器包括差錯類型選擇器,所述差錯類型選擇器選擇所述數據字的差錯類型;比特位置選擇器,所述比特位置選擇器基於所選擇的差錯類型,選擇所述數據字中將被修改的至少一個比特位置;耦合到所述比特選擇器的數據修改器,所述數據修改器使用所選擇的至少一個比特位置來修改所述數據字;以及耦合到所述數據修改器的數據檢驗子計算器,所述數據檢驗子計算器計算修改後的數據字的數據檢驗子。
4.如權利要求3所述的裝置,其中所述差錯類型選擇器包括差錯選擇嚮導,所述差錯選擇嚮導引導對所述差錯類型的選擇。
5.如權利要求4所述的裝置,其中所述比特位置選擇器包括比特選擇嚮導,所述比特選擇嚮導引導對所述至少一個比特位置的選擇。
6.如權利要求4所述的裝置,其中所述差錯類型是單撞擊單比特差錯類型、單撞擊多比特差錯類型、雙撞擊單+單比特差錯類型、雙撞擊單+多比特差錯類型、雙撞擊多+多比特差錯類型、晶片差錯類型和連接故障類型中的至少一個。
7.如權利要求4所述的裝置,其中所述差錯選擇嚮導使用基於一組校驗位的檢驗子和所述單元事務的觀測結果之一的線索來引導所述選擇。
8.如權利要求1所述的裝置,其中當所述數據檢驗子等於0時,所述控制器停止迭代所述數據檢驗子的生成。
9.如權利要求6所述的裝置,其中所述控制器針對差錯類型的一個子集繼續迭代所述檢驗子生成器。
10.如權利要求1所述的裝置,其中所述控制器在重試所述事務以檢測暫態差錯的同時繼續迭代所述檢驗子生成器。
11.如權利要求5所述的裝置,其中所述數據修改器包括在所述至少一個比特位置上翻轉所述數據字的比特翻轉器。
12.如權利要求11所述的裝置,其中所述數據修改器還包括選擇所述數據字中的奇偶性糾正位置的奇偶性糾正位置選擇器;耦合到所述比特翻轉器,以在翻轉後的數據字上計算奇偶性檢驗子的奇偶性檢驗子計算器;以及耦合到所述奇偶性糾正位置選擇器和所述奇偶性檢驗子計算器,以在選定的奇偶性糾正位置上重建所述數據字的重建器,重建後的數據字形成修改後的數據字。
13.如權利要求12所述的裝置,其中所述數據檢驗子計算器包括數據檢驗子嚮導,所述數據檢驗子嚮導基於常見差錯類型的查找表來引導對所述數據檢驗子的選擇。
14.如權利要求13所述的裝置,其中所述奇偶性糾正位置選擇器包括奇偶性糾正嚮導,所述奇偶性糾正嚮導引導對所述奇偶性糾正位置的選擇。
15.如權利要求14所述的裝置,其中所述控制器通過迭代對所述差錯類型、所述至少一個比特位置和所述奇偶性糾正位置中至少一個的選擇,來迭代所述檢驗子生成器。
16.如權利要求1所述的裝置,其中所述控制器通過迭代對所述糾錯參數的第一組合的選擇,同時固定所述糾錯參數的第二組合,來迭代所述檢驗子生成器,其中所述第二組合不同於所述第一組合。
17.如權利要求1所述的裝置,其中所述數據字包括至少一個奇偶字和具有循環冗餘校驗係數的循環冗餘校驗字。
18.如權利要求17所述的裝置,其中GF(2)上的循環冗餘校驗係數是產生14個校驗位的0X5BF3和0X67ED以及產生15個校驗位的0XA837和0XEC15之一。
19.如權利要求17所述的裝置,其中GF(2)上的循環冗餘校驗係數是由0X5BF3、0X67ED、0XA837和0XEC15之一與一個多項式的至少一個乘積形成的。
20.如權利要求17所述的裝置,其中GF(2)上的循環冗餘校驗係數由至少以下之一形成0X5BF3、0X67ED、0XA837和0XEC15之一與校驗位和數據位中至少一個的排列。
21.如權利要求1所述的裝置,其中所述控制器針對一個事務迭代所述檢驗子生成器,同時通過預選擇的迭代的一個固定子集,以獲得所述事務的確定性延時。
22.一種方法,包括提供根據至少一個糾錯參數的選擇進行修改的數據字的數據檢驗子的生成,所述數據字與在一個單元上執行的至少一個事務相關聯;以及控制迭代所述數據檢驗子的生成。
23.如權利要求21所述的方法,其中所述糾錯參數包括差錯類型、比特位置和奇偶性糾正位置。
24.如權利要求22所述的方法,其中提供所述數據檢驗子的生成的步驟包括選擇所述數據字的差錯類型;基於所選擇的差錯類型,選擇所述數據字中將被修改的至少一個比特位置;使用所選擇的至少一個比特位置來修改所述數據字;以及計算修改後的數據字的數據檢驗子。
25.如權利要求24所述的方法,其中選擇差錯類型的步驟包括引導對所述差錯類型的選擇。
26.如權利要求25所述的方法,其中選擇至少一個比特位置的步驟包括引導對所述至少一個比特位置的選擇。
27.如權利要求25所述的方法,其中所述差錯類型是單撞擊單比特差錯類型、單撞擊多比特差錯類型、雙撞擊單+單比特差錯類型、雙撞擊單+多比特差錯類型、雙撞擊多+多比特差錯類型、晶片差錯類型和連接故障類型中的至少一個,或前述錯誤類型的組合。
28.如權利要求25所述的方法,其中引導對所述差錯類型的選擇的步驟包括使用基於一組校驗位的檢驗子和所述單元事務的觀測結果之一的線索來引導所述選擇。
29.如權利要求22所述的方法,其中控制迭代的步驟包括當所述數據檢驗子等於0時,停止迭代所述數據檢驗子的生成。
30.如權利要求27所述的方法,其中控制迭代的步驟包括針對差錯類型的一個子集繼續迭代所述檢驗子的生成。
31.如權利要求22所述的方法,其中控制迭代的步驟包括在重試所述事務以檢測暫態差錯的同時繼續迭代所述檢驗子的生成。
32.如權利要求26所述的方法,其中修改所述數據字的步驟包括在所述至少一個比特位置上翻轉所述數據字。
33.如權利要求32所述的方法,其中修改所述數據字的步驟還包括選擇所述數據字中的奇偶性糾正位置;在翻轉後的數據字上計算奇偶性檢驗子;以及使用所述奇偶性檢驗子,在選定的奇偶性糾正位置上重建所述數據字,重建後的數據字形成修改後的數據字。
34.如權利要求33所述的方法,其中計算所述數據檢驗子的步驟包括基於常見差錯類型的查找表來引導對所述數據檢驗子的選擇。
35.如權利要求34所述的方法,其中選擇奇偶糾正位置的步驟包括引導對所述奇偶性糾正位置的選擇。
36.如權利要求35所述的方法,其中控制迭代的步驟包括通過迭代對所述差錯類型、所述至少一個比特位置和所述奇偶性糾正位置中至少一個的選擇,來迭代所述檢驗子的生成。
37.如權利要求22所述的方法,其中控制迭代包括通過迭代對所述糾錯參數的第一組合的選擇,同時固定所述糾錯參數的第二組合,來迭代所述檢驗子的生成,其中所述第二組合不同於所述第一組合。
38.如權利要求22所述的方法,其中所述數據字包括至少一個奇偶字和具有循環冗餘校驗係數的循環冗餘校驗字。
39.如權利要求28所述的方法,其中GF(2)上的循環冗餘校驗係數是產生14個校驗位的0X5BF3和0X67ED以及產生15個校驗位的0XA837和0XEC15之一。
40.如權利要求28所述的方法,其中GF(2)上的循環冗餘校驗係數是由0X5BF3、0X67ED、0XA837和0XEC15之一與一個多項式的至少一個乘積形成的。
41.如權利要求28所述的方法,其中GF(2)上的循環冗餘校驗係數由至少以下之一形成0X5BF3、0X67ED、0XA837和0XEC15之一與校驗位和數據位中至少一個的排列。
42.如權利要求22所述的方法,還包括針對一個事務迭代所述數據檢驗子的運算,同時通過預選擇的迭代的一個固定子集,以獲得所述事務的確定性延時。
43.一種系統,包括在至少一個事務中接收或發送數據字的接收器/發射器;以及耦合到所述接收器/發射器,以糾正所述數據字上的差錯的糾錯單元,所述糾錯單元包括檢驗子生成器,所述檢驗子生成器提供根據至少一個糾錯參數的選擇進行修改的數據字的數據檢驗子的生成,以及耦合到所述檢驗子生成器的控制器,所述控制器控制迭代所述數據檢驗子的生成。
44.如權利要求43所述的系統,其中所述糾錯參數包括差錯類型、比特位置和奇偶性糾正位置。
45.如權利要求43所述的系統,其中所述檢驗子生成器包括差錯類型選擇器,所述差錯類型選擇器選擇所述數據字的差錯類型;比特位置選擇器,所述比特位置選擇器基於所選擇的差錯類型,選擇所述數據字中將被修改的至少一個比特位置;耦合到所述比特選擇器的數據修改器,所述數據修改器使用所選擇的至少一個比特位置來修改所述數據字;以及耦合到所述數據修改器的數據檢驗子計算器,所述數據檢驗子計算器計算修改後的數據字的數據檢驗子。
46.如權利要求45所述的系統,其中所述差錯類型是單撞擊單比特差錯類型、單撞擊多比特差錯類型、雙撞擊單+單比特差錯類型、雙撞擊單+多比特差錯類型、雙撞擊多+多比特差錯類型、晶片差錯類型和連接故障類型中的至少一個。
47.如權利要求43所述的系統,其中當所述數據檢驗子等於0時,所述控制器停止迭代所述數據檢驗子的生成。
48.如權利要求45所述的系統,其中所述控制器針對差錯類型的一個子集繼續迭代所述檢驗子生成器。
49.如權利要求45所述的系統,其中所述控制器在重試所述事務以檢測暫態差錯的同時繼續迭代所述檢驗子生成器。
50.如權利要求45所述的系統,其中所述數據修改器包括在所述至少一個比特位置上翻轉所述數據字的比特翻轉器。
51.如權利要求50所述的系統,其中所述數據修改器還包括選擇所述數據字中的奇偶性糾正位置的奇偶性糾正位置選擇器;耦合到所述比特翻轉器,以在翻轉後的數據字上計算奇偶性檢驗子的奇偶性檢驗子計算器;以及耦合到所述奇偶性糾正位置選擇器和所述奇偶性檢驗子計算器,以在選定的奇偶性糾正位置上重建所述數據字的重建器,重建後的數據字形成修改後的數據字。
52.如權利要求51所述的系統,其中所述控制器通過迭代對所述差錯類型、所述至少一個比特位置和所述奇偶性糾正位置中至少一個的選擇,來迭代所述檢驗子生成器。
53.如權利要求44所述的系統,其中所述控制器通過迭代對所述糾錯參數的第一組合的選擇,同時固定所述糾錯參數的第二組合,來迭代所述檢驗子生成器,其中所述第二組合不同於所述第一組合。
54.如權利要求43所述的系統,其中所述數據字包括至少一個奇偶字和具有循環冗餘校驗係數的循環冗餘校驗字。
55.如權利要求43所述的系統,其中所述控制器針對一個事務迭代所述檢驗子生成器,同時通過預選擇的迭代的一個固定子集,以獲得所述事務的確定性延時。
56.如權利要求43所述的系統,其中所述接收器/發射器是存儲器單元、處理單元、緩存存儲器、多核處理器和微處理器之一。
全文摘要
本發明的實施方案是一種使用反覆試驗技術執行糾錯的技術。檢驗子生成器提供根據至少一個糾錯參數的選擇進行修改的數據字的數據檢驗子的生成。數據字與在一個單元上執行的至少一個事務相關聯。控制器控制迭代數據檢驗子的生成。
文檔編號G06F11/00GK1811720SQ20061000230
公開日2006年8月2日 申請日期2006年1月26日 優先權日2005年1月28日
發明者亨克·尼夫斯, 艾倫·鮑姆 申請人:英特爾公司