專利名稱:存儲控制電路及存儲控制電路中的地址錯誤檢驗方法
技術領域:
本發明涉及一種用于存儲器等的存儲控制電路,并且更具體地涉及一種用于檢測有關地址的多比特錯誤的存儲電路以及該存儲控制電路中檢驗錯誤的方法。
背景技術:
在用于存儲器等的存儲控制電路中存儲區域是由地址來指定,以將數據輸入到存儲控制電路或從存儲控制電路輸出。例如,將所需的數據寫入由地址指定的存儲區域,反之,將數據從由地址指定的存儲區域讀出。
通常,由于各種原因(例如信號線中的噪聲、用來在信號線之間進行傳送的有故障的緩沖器、信號線中的開斷、由電磁波引起的軟件錯誤),存儲控制電路可能產生包括地址格式錯誤,或者數據值反轉或固定為0或1這類錯誤。在數據寫期間出現地址錯誤的情況下,例如,數據被寫入的存儲區域不同于位于所需地址的存儲區域。這可能導致結合存儲控制電路的諸如PC(個人計算機)之類的信息處理裝置失控。
同樣,待寫的數據中的錯誤可能導致信息處理裝置失控,因此這是不希望出現的。同樣,數據讀取期間的地址或者數據錯誤會嚴重影響結合存儲控制電路的信息處理裝置。
為此,在傳統的實例中提出了錯誤檢測技術。例如,在日本專利申請公開No.1980-8617、1978-62936、1996-235793、1990-206855及1977-2244中描述了糾錯碼(ECC)的產生,其能夠利用存儲裝置中存儲的地址信息和數據校正單一比特錯誤及檢測兩比特錯誤。
另一方面,圖1示出了一種根據現有技術的錯誤檢測方法。圖1示出了存儲控制電路的一個實例,其能夠基于地址及數據的奇偶性產生檢驗碼,并將檢驗碼與數據一起寫到指定的地址。
地址奇偶檢驗碼產生電路11基于寫入數據指定的地址的奇偶比特(如圖1實例中的奇數奇偶性)產生地址碼103。圖1示出了由地址奇偶檢驗碼產生電路11產生比特圖形的實例。“X”標志表示當奇偶比特為1時處于高電平的那些比特。
數據檢驗碼產生電路12基于待寫數據產生數據碼104。盡管沒有示出,但由數據檢驗碼產生電路12產生的比特圖形(bit pattern)被設計為提供所需的編碼。
在圖1的情況,給定地址101(“01010101”)的奇偶比特(奇數奇偶性)為1。因此,產生“11111000”即開始的五比特被設置為高電平的編碼作為地址碼103。數據檢驗碼產生電路12產生例如“00101001”作為數據碼104。取二者的異或(EOR)產生檢驗碼105(“11010001”),并且檢驗碼105與數據102(“00000001”)一起被寫到由地址101指定的存儲區。
然后,在讀取期間,從讀取的數據102和地址101產生檢驗碼,以在數據寫期間讀取數據。將產生的檢驗碼與讀取的檢驗碼105比較。將兩個檢驗碼之間的不匹配檢測即認為發生錯誤。
但是,現有技術存在這樣的問題即地址多比特錯誤不能總被檢測。在圖1所示的傳統實例中,例如,即使地址中兩比特反轉(例如,如果第一比特和第二比特被轉換),奇偶比特仍保持1。因此,這種反轉沒有被檢測為錯誤。
發明內容
基于以上所述,本發明的目的是提供一種用于檢測有關地址的多比特錯誤的存儲控制電路,以及用于在存儲控制電路中進行錯誤檢查的方法。
作為本發明的一個方案,本發明提供一種存儲控制電路來實現以上目的,存儲控制電路包括存儲單元,能夠在地址指定的存儲區中存儲數據;檢驗碼產生單元,能夠基于寫入該存儲單元的數據及為寫入該數據指定的地址產生檢驗碼,該檢驗碼被存儲到與寫入該存儲單元的數據相應的該存儲單元;以及檢驗碼檢查單元,能夠基于從該存儲單元讀取的數據、相應于讀取的數據的檢驗碼及為讀取數據指定的地址進行錯誤檢測,其中該檢驗碼產生單元及該檢驗碼檢查單元編碼第一編碼和第二編碼,用偶數比特對分配給地址的第一編碼進行編碼;用奇數比特對分配給寫入存儲單元數據的第二編碼進行編碼;以及其中該檢驗碼產生單元及該檢驗碼檢查單元基于第一編碼和第二編碼產生或檢查相應于寫入的數據或讀取的數據的檢驗碼。
優選地,該地址被定界并分成多個組,每個組具有一個比特或多個比特;以及利用比特圖形用偶數比特編碼第一編碼,該比特圖形能夠識別多個組的每組中的每一比特或多個比特的錯誤。優選地,一個滾動比特進一步被分配給該地址,所述滾動比特的值隨指定寫數據到存儲單元或從存儲單元讀出數據的每個地址周期被反轉;以及用偶數比特編碼分配給含有滾動比特的地址的第一編碼。
作為本發明的第二個方案,通過提供一種檢驗存儲控制單元中的地址錯誤的方法來達到以上目的,該存儲控制電路具有能夠將數據存儲在由地址指定的存儲區域的存儲單元,該方法包括用偶數比特對分配給地址的第一編碼進行編碼;用奇數比特對分配給寫入存儲單元數據的第二編碼進行編碼;基于第一和第二編碼產生檢驗碼,并將該檢驗碼存儲在與被寫到存儲單元的數據相對應的存儲單元中;以及基于從該存儲單元讀取的數據、相應于讀出數據的檢驗碼及讀地址進行錯誤檢測。
優選地,該地址被定界并分成多個組,每個組具有一個比特或多個比特;利用比特圖形用偶數比特編碼第一編碼,該比特圖形能夠識別多個組的每組中的每一比特或多個比特的錯誤。一個滾動比特進一步被分配給該地址,所述滾動比特的值隨指定寫數據到存儲單元或從存儲單元讀出數據的每個地址周期被反轉;以及用偶數比特編碼分配給含有滾動比特的地址的第一編碼。
根據本發明的地址錯誤檢測方法的使用允許檢查有關地址的多比特錯誤,而不需要增加檢驗碼比特數。
當結合附圖時,從下文中的詳細描述將更清楚本發明的以上及其他目的、方案、特征及優點,附圖中圖1是根據現有技術的錯誤檢測方法的說明性圖;圖2是表示根據本發明實施例的存儲控制電路的結構實例圖;圖3A至3C表示由檢驗碼產生及檢查電路產生的比特圖形的實例;圖3A示出32比特數據的開始16比特的比特圖形;圖3B是表示32比特數據的末尾16比特的比特圖形;圖3C是關于9比特地址的比特圖形;圖4是在讀取地址中出現單一比特錯誤的情況下怎樣進行錯誤檢測的說明性圖;圖5是在讀取地址中出現兩比特錯誤的情況下怎樣進行錯誤檢測的說明性圖;圖6是在讀取地址中出現三比特錯誤的情況下怎樣進行錯誤檢測的說明性圖;圖7是旨在減少EOR門級數的有關地址的比特圖形實例;圖8A是表示本實施例中的物理存儲器結構圖;圖8B是列提取及說明性圖;圖8C是地址分組的說明性圖;圖9A是滾動比特(roll bit)的說明性圖;圖9B是在第一次循環中數據寫入的說明性圖;圖9C是第二次循環中數據寫入的說明性圖;圖10是滾動比特被指定時相關地址的比特圖形的實例;以及圖11是表示本實施例的存儲控制電路的改進實例圖。
具體實施例方式
下面,將參照附圖描述本發明的實施例。應該理解本發明的技術范圍不限于下文中的實施例,而應覆蓋本發明所限定的及其等效代換。
圖2是表示根據本發明實施例的存儲控制電路的結構實例圖。檢驗碼產生電路21接收為寫入數據指定的地址201(下文稱為寫地址)以及將存儲在存儲控制電路中的數據202(下文稱為寫數據)。
檢驗碼產生電路21基于寫地址201和寫數據202產生分配寫數據202的檢驗碼。下文將參照圖3A至3C描述由檢驗碼產生電路21產生的比特圖形。
存儲器25是本實施例的存儲控制電路中的存儲單元。存儲器25設置有由地址指定的多個存儲元件,并且這多個存儲元件構成存儲區。
寫寄存器(WR)22接收待存儲在存儲器25中的信息(寫數據202和檢驗碼204)。寫寄存器22暫時存儲待存儲在存儲器25中的信息。
寫解碼器(WDEC)23接收寫地址201。寫解碼器23驅動相應于寫地址201的存儲器25中的存儲區,以在驅動的存儲區中存儲來自寫寄存器22的信息。
讀解碼器(RDEC)24接收讀地址203。讀解碼器24讀取存儲在相應于讀地址203的存儲器25中存儲區的信息并將信息存儲在讀寄存器(RR)26中。
讀寄存器26接收從存儲器25(相應于讀地址203的寫數據202和檢驗碼204)讀取的信息。讀寄存器26暫時存儲從存儲器25讀取的信息。
檢驗碼檢查電路27接收讀地址203及從存儲器25讀取的信息(相應于讀地址203的寫數據202和檢驗碼204)。檢驗碼檢查電路27基于讀地址203及相應讀地址203的寫數據202產生檢驗碼,并比較產生的檢驗碼與相應于讀地址203的檢驗碼204。
在比較過程中,檢驗碼檢查電路27產生出錯比特(syndrome bits)。出錯比特即為通過產生的編碼和相應于讀地址203的檢驗碼204的異或產生的編碼。
當出錯比特都是0時檢驗碼檢查電路27確定沒有錯誤出現,并輸出相應于讀地址203的寫數據202。如果任一出錯比特含有1,則檢驗碼檢查電路27確定有錯誤出現,并輸出錯誤通知。由檢驗碼檢查電路27產生的檢驗碼與由檢驗碼產生電路21產生的檢驗碼相同,并且下文將參照圖3A至3C進行描述。
本實施例的存儲控制電路其特征在于由檢驗碼產生電路21和檢驗碼檢查電路27產生檢驗碼的比特圖形。本實施例的存儲控制電路用偶數比特對分配給寫地址201的碼進行編碼,用奇數比特對分配給寫數據202的碼進行編碼,以及取二者的異或(EOR)以產生檢驗碼。
圖3A至3C表示由檢驗碼產生電路21和檢驗碼檢查電路27產生的比特圖形的實例圖。圖3A至3C表示對于32比特寫數據202和9比特寫地址201的本實施例的存儲控制電路產生的檢驗碼的實例。
本實施例的存儲控制電路采用三比特編碼數據部分。即如果在32比特數據中每一比特的位置處的比特為1,則在檢驗碼中被設置為高電平的比特數為三。本實施例的存儲控制電路采用兩比特編碼地址部分。
圖3A是表示32比特數據的開始16比特的比特圖形圖,圖3B是表示32比特數據的末尾16比特的比特圖形;以及圖3C是關于9比特地址的比特圖形。“X”標志表示當該比特(數據或地址)為1時被設置為高電平(在產生的編碼中)的那些比特。
例如,在從末尾起在第二比特和第四比特為1的32比特數據“00000000000000000000000000001010”的情況下,取兩個編碼(當圖3A中的“D28”為1時被設置為高電平的比特構成的編碼“00001101”以及當圖3B中的“D30”為1時被設置為高電平的比特構成的編碼“00010101”)的異或,以產生“00011000”作為數據的編碼(第二編碼)。
當此數據被寫到地址“101010101”時,取五個編碼(當圖3C中的“A0”為1時被設置為高電平的多個比特構成的編碼“11000000”以及當圖3C中的“A2”、“A4”、“A6”及“A8”為1時被分別設置為高電平的多個比特構成的編碼“10010000”、“10000100”及“01010000”)的異或,以產生“00000101”作為用于地址的編碼(第一編碼)。
存儲控制電路取用于地址的第一編碼“00000101”和用于數據的第二編碼“00011000”的異或,以最終產生檢驗碼。在這種情況下,檢驗碼為“00011101”。
另一方面,圖3A至3C中數據部分的比特圖形彼此不同。例如,數據中用于第一比特D00的比特圖形“00001110”與數據中用于其他比特Dxx的任何其他比特圖形都不同。同樣,地址部分的比特圖形彼此不同。
如上所述,本實施例的存儲控制電路改變被分配地址和數據的編碼系統,從而允許檢查地址中出現的錯誤。在本實施例的存儲控制電路中,用兩比特來對分配給地址的碼進行編碼。因此,地址中出現的錯誤被檢測為出錯比特中的兩比特數據錯誤。
應當注意,盡管在本實施例中存儲控制電路用兩比特來對分配給寫地址201的碼進行編碼,而用三比特來對分配給寫數據202的碼進行編碼,但用于編碼的比特數不限于此。通常,只要用兩比特或者更多的偶數比特對分配給寫地址201的碼進行編碼,以及用三比特或者更多的奇數比特對分配給寫數據202的碼進行編碼,即可獲得與本實施例類似的效果。
在本實施例中,如果出錯比特的比特圖形與圖3A或者3B中的比特圖形相同,則表示相應數據比特有一比特錯誤。當相應數據比特反轉(校正)時能夠獲得確正的數據。另一方面,只有一個設置為高電平的出錯比特的比特圖形表示檢驗碼的單一比特錯誤,并且此錯誤可被忽略。當出錯比特都是0時,這表示沒有出現錯誤。如果出錯比特不符合這些情形中的任一種,則被識別為兩比特數據或地址錯誤。
為了檢查兩比特數據錯誤,每個數據比特被分配由三比特或更多的奇數比特構成的比特圖形,如圖3A和3B所示。作為在兩個任意數據比特的反轉中取兩個奇數比特圖形的異或的結果,導致出錯比特具有偶數比特圖形,從而允許識別該反轉為兩比特錯誤。就地址錯誤而言,由于被分配偶數比特圖形,作為在一比特或多比特的反轉中取兩個偶數比特圖形的異或的結果,出錯比特具有偶數比特圖形。因此,將該反轉識別為兩比特錯誤。
在圖3C的比特圖形實例中,比特圖形被分別分配為兩組,一組是從比特A0到A6,而另一個組是從比特A7到A8。在圖3C的比特圖形實例中,出錯比特具有偶數比特圖形,且具有地址組中以所有的不完全組合的兩比特或更多比特(比特1至7的任意組合)。因此,任意這種組合可被識別為兩比特錯誤。應該注意的是,在圍繞跨越兩個地址組的三比特或更多比特的錯誤中(例如,關于比特A0、A1及A7的同時反轉的錯誤),出錯比特全部設置為0。因此,錯誤不能被檢查出來。但是,構成每個地址組的比特同時出錯的可能性小。因此,出現檢查不到的錯誤即將所有出錯比特設置為0的機會很小。
圖4是在讀取地址203中出現一比特錯誤的情況下怎樣進行錯誤檢測的說明性圖。這幅圖表示由于在讀地址203被輸入到讀解碼器24的路徑中途出現的錯誤位置300,在地址中怎樣產生一比特反轉。數據寫被正常進行,且數據和檢驗碼被存儲在地址“101010101”。
然后,讀地址203(“101010101”)被指定,以讀取寫入的數據。由于讀地址203經過錯誤的位置300并產生一比特反轉(在此反轉的讀地址中的第一比特),從而讀解碼器24接收錯誤的地址303(“001010101”)。在相應的地址存儲的數據和檢驗碼經由讀寄存器26被輸入到檢驗碼檢查電路27。
另一方面,讀地址203被正常輸入到檢驗碼檢查電路27。檢驗碼檢查電路27基于已經讀取的數據和檢驗碼以及讀地址203產生出錯比特401。
產生的出錯比特401是錯誤地址303(“001010101”)處的檢驗碼304(“11000101”)和讀地址203(“101010101”)處的檢驗碼305(“00000101”)的異或。這里,出錯比特401為“11000000”,并且將該地址中的一比特反轉檢測為兩比特數據錯誤。
圖5是在讀取地址203中出現兩比特錯誤的情況下怎樣進行錯誤檢測的說明性圖。除了出現兩比特錯誤之外,圖5與圖4相同。
圖5表示由于在讀地址203被輸入到讀解碼器24的路徑中途出現的錯誤位置300,在地址中怎樣產生兩比特反轉。數據寫被正常進行,且數據和檢驗碼被存儲在地址“101010101”。
然后,讀地址203(“101010101”)被指定,以讀取寫入的數據。由于讀地址203經過錯誤的位置300并產生兩比特反轉(在此反轉的讀地址中的第一比特和第二比特),從而讀解碼器24接收錯誤的地址303(“011010101”)。在相應的地址存儲的數據和檢驗碼經由讀寄存器26被輸入到檢驗碼檢查電路27。
另一方面,讀地址203被正常輸入到檢驗碼檢查電路27。檢驗碼檢查電路27基于已經讀取的數據和檢驗碼以及讀地址203(“101010101”)產生出錯比特401。產生的出錯比特401是錯誤地址303(“011010101”)處的檢驗碼304(“01100101”)和讀地址203(“101010101”)處的檢驗碼305(“00000101”)的異或。這里,出錯比特401為“01100000”,并且將該地址中的兩比特反轉檢測為兩比特數據錯誤。
圖6是在讀取地址203中出現三比特錯誤的情況下怎樣進行錯誤檢測的說明性圖。除了出現三比特錯誤之外,圖5與圖4相同。
圖6表示由于在讀地址203被輸入到讀解碼器24的路徑中途出現的錯誤位置300,在地址中怎樣產生三比特反轉。數據寫被正常進行,且數據和檢驗碼被存儲在地址“101010101”。
然后,讀地址203(“101010101”)被指定,以讀取寫入的數據。由于讀地址203經過錯誤的位置300并產生三比特反轉(在此反轉的讀地址中的第1比特、第2比特及第3比特),從而讀解碼器24接收錯誤的地址303(“010010101”)。在相應的地址存儲的數據和檢驗碼經由讀寄存器26被輸入到檢驗碼檢查電路27。
另一方面,讀地址203被正常輸入到檢驗碼檢查電路27。檢驗碼檢查電路27基于已經讀取的數據和檢驗碼以及讀地址203(“101010101”)產生出錯比特401。產生的出錯比特401是錯誤地址303(“010010101”)處的檢驗碼304(“11110101”)和讀地址203(“101010101”)處的檢驗碼305(“00000101”)的異或。這里,出錯比特401為“11110000”,并且將該地址中的三比特反轉檢測為兩比特數據錯誤。如上所述,在出錯比特401中地址錯誤被檢測為偶數比特錯誤。
在圖3A至3C所示的檢驗碼比特圖形中,在逐行檢查檢驗碼的單個比特中,如果一行具有“x”標記的數量,則與“x”標記的數量相等級數的EOR門將被連接。這導致較長的延遲。為此,可以對檢驗碼產生電路21和檢驗碼檢查電路27進行設計,以平均單個行中的“x”標記數量,由此減少多級連接的EOR門。
圖7是旨在減少EOR門級數的有關地址的比特圖形實例。如果由圖7替代圖3C,則顯然檢驗碼第一比特C0所需的EOR門的級數少于圖3C。
另一方面,雖然在本實施例中八比特(C0至C7)被用作檢驗碼,但檢驗碼所需的比特數x僅滿足以下條件。即如果當不考慮排列從n個目標(thing)取r個目標時合并表示為nCr,則對于數據xCd>(數據比特數)必須為真。這里,d是所有的奇數,3或者更大,其用于編碼數據。因此,(8C3=56)+(8C5=56)+(8C7=8)=120。這個數大于數據比特數32。因此,顯然滿足該條件。
對于地址,兩個條件必須被滿足。第一個條件是xCa>(地址比特數)必須為真。這里,a為所有的偶數,2或者更大,其用于編編碼數據。因此,(8C2=28)+(8C4=70)+(8C6=28)+(8C8=1)=127。這個數量大于地址比特數9。因此,顯然該條件被滿足。對于地址的第二個條件是檢驗碼比特數必須大于地址組中的比特數。這里,地址組被分成兩組,一組是從比特A0至A6,而另一組是從比特A7至A8。這些組分別具有七比特和兩比特,而檢驗碼具有八比特,其大于地址組的比特數。因此,顯然滿足該條件。
接下來,描述地址組的實例。
圖8A是表示本實施例中的物理存儲器結構圖。這幅圖表示存儲器被分成四列(列0至列3)并表示寫入40比特數據、數據和檢驗碼的總比特數。
圖8B是列提取及說明性圖。每列含有能夠存儲128組40比特數據(第0行至第127行)的存儲元件。
圖8C是地址分組的說明性圖。在圖8A至8C所示的存儲器情況下,9比特地址中,從第一比特起的七比特被用于確定一行,而剩余的兩比特被用于確定一列。這個地址組被分成兩部分,七比特確定一列,兩比特確定一列。
就目前為止,描述了在數據讀取期間對地址錯誤的檢測。從上述說明中可清楚看出,寫到存儲器的檢驗碼含有編碼的寫地址信息,并且此信息與讀地址之間的不匹配被檢測為地址錯誤。容易設想,寫地址錯誤與讀地址錯誤一樣能夠被檢測。我們假定寫地址產生錯誤并且數據和檢驗碼被寫到存儲器中錯誤的地址。應當注意,我們假定檢驗碼已經從正確的寫地址產生。如果寫到錯誤地址的數據和檢驗碼被讀取,并且對檢驗碼進行檢查,則在讀檢驗碼中含有的讀地址和寫地址信息不匹配。因此,能夠檢查出地址錯誤。但是,注意,在寫地址出現錯誤的情況,舊的數據和檢驗碼仍然保持在新的數據和檢驗碼應該已經被寫入的地址。即使舊的數據和檢驗碼被讀取,讀檢驗碼中的讀地址和寫地址信息匹配。因此,不能檢測出地址錯誤。為了在舊的數據和檢驗碼被讀取時檢查錯誤,滾動比特被加入,其值在周期地每次寫數據到和從存儲單元讀出的尋址中被反轉。
圖9A是滾動比特的說明性圖。開始的9比特地址為“00000000”,而末尾的地址為“11111111”。每次周期地從“00000000”尋址至“11111111”時滾動比特反轉,然后重新返回至“00000000”。
圖9B是在第一周期中數據寫入的說明性圖。在第一周期中數據寫入時,產生檢驗碼且滾動比特設置為0,并且與數據一起被寫入。
圖9C是第二周期中數據寫入的說明性圖。在第二周期中數據寫入時,當寫地址201經過第一地址時,產生檢驗碼且滾動比特被設置為1,并與數據一起被寫入。我們假定圖9C中在試圖將第二周期的數據寫到地址“000000110”過程中出現三比特反轉,并且從而數據被寫到地址“000010101”。
當滾動比特被設置為0時產生的檢驗碼仍保留在相應于地址“000000110”的存儲器25中。通過將滾動比特設置為1產生的檢驗碼被存儲在相應于地址“000010101”的存儲器25中(盡管事實上周圍的存儲器區域具有滾動比特0)。
接下來,我們假定通過將滾動指定為1來執行數據讀取。在這種情況下,如果從地址“000000110”讀取數據并對數據進行錯誤檢查,由于通過滾動比特為0產生的檢驗碼仍保留在此地址處,從而會檢查出錯誤。
圖10為滾動比特被指定時有關地址的比特圖形的實例。與圖3C相比,這幅圖表示當添加的滾動比特(AX)為1時其所有比特都被設置為高電平的實例。即使在這種情況下,滾動比特被編碼為具有偶數比特。
圖11是表示本實施例的存儲控制電路的改進實例圖。改進實例不同于圖2所示的存儲控制電路之處在于可在具有合并寫解碼器23和讀解碼器24的功能的解碼器(DEC)30的單端口結構中獲得,而不是分別設置有寫解碼器23和讀解碼器24的雙端口結構。解碼器30接收寫和讀地址作為地址200,并處理每個這些地址。
即使在這種情況下,也能夠獲得與通過具有圖2所示結構的本實施例的存儲控制電路類似的效果。
如上所述,本實施例的存儲控制電路改變用于分配地址和數據的編碼系統,從而允許檢測甚至地址中出現的多比特錯誤。在本實施例的存儲控制電路,分配地址的編碼被編碼成兩比特。因此,地址中出現的錯誤被檢測為出錯比特中的兩比特數據錯誤。
此外,本實施例的存儲控制電路具有稱為滾動比特的虛擬比特,該滾動比特被添加到地址并以相同的方式對其進行編碼,從而允許檢測沒有進行數據寫入的地址中的錯誤。
這里,已經詳細描述了本發明示意性及目前優選的實施例,應該理解發明概念可以各種其他方式進行實施及利用,并且所附說明和限定旨在解釋為包括除了現有技術限定的范圍之外的這種改變。
權利要求
1.一種存儲控制電路,包括存儲單元,能夠在由地址指定的存儲區中存儲數據;檢驗碼產生單元,能夠基于寫入該存儲單元的數據及為寫入該數據指定的地址產生檢驗碼,該檢驗碼被存儲到與寫入該存儲單元的數據相應的存儲單元;以及檢驗碼檢查單元,能夠基于從該存儲單元讀取的數據、相應于讀取的數據的檢驗碼及為讀取數據指定的地址進行錯誤檢查,其中,該檢驗碼產生單元及該檢驗碼檢查單元用偶數比特對分配給地址的第一編碼進行編碼;用奇數比特對分配給寫入存儲單元數據的第二編碼進行編碼;以及該檢驗碼產生單元及該檢驗碼檢查單元基于第一編碼和第二編碼,產生或檢查相應于寫入的數據或讀取的數據的檢驗碼。
2.如權利要求1所述的存儲控制電路,其特征在于,該地址被定界并分成多個組,每個組具有一個比特或多個比特;以及利用比特圖形用偶數比特編碼第一編碼,該比特圖形能夠識別多個組的每組中的每一比特或多個比特的錯誤。
3.如權利要求1或2所述的存儲控制電路,其特征在于,一個滾動比特進一步被分配給該地址,所述滾動比特的值隨指定寫數據到存儲單元或從存儲單元讀出數據的每個地址周期被反轉;以及用偶數比特編碼分配給含有滾動比特的地址的第一編碼。
4.一種檢驗存儲控制電路中的地址錯誤的方法,該存儲控制電路具有能夠將數據存儲在由地址指定的存儲區域的存儲單元,該方法包括用偶數比特對分配給地址的第一編碼進行編碼;用奇數比特對分配給寫入存儲單元數據的第二編碼進行編碼;基于第一和第二編碼產生檢驗碼,并將該檢驗碼存儲在與被寫到存儲單元的數據相對應的存儲單元中;以及基于從該存儲單元讀取的數據、相應于讀出數據的檢驗碼及讀地址進行錯誤檢驗。
5.如權利要求4所述的地址錯誤檢驗方法,其特征在于,該地址被定界并分成多個組,每個組具有一個比特或多個比特;以及利用比特圖形用偶數比特編碼第一編碼,該比特圖形能夠識別多個組的每組中的每一比特或多個比特的錯誤。
6.如權利要求4所述的地址錯誤檢驗方法,其特征在于,一個滾動比特進一步被分配給該地址,所述滾動比特的值隨指定寫數據到存儲單元或從存儲單元讀出數據的每個地址周期被反轉;以及用偶數比特編碼分配給含有滾動比特的地址的第一編碼。
全文摘要
一種用于在存儲控制電路中進行地址錯誤檢驗的方法,存儲控制電路將數據存儲在由地址指定的存儲區域中,其中,該方法用偶數比特對分配給地址的第一編碼進行編碼;用奇數比特對分配給寫入存儲單元數據的第二編碼進行編碼;基于第一和第二編碼產生檢驗碼,并將檢驗碼存儲在相應于被寫到存儲單元的數據的存儲單元中;以及基于從存儲單元讀取的數據、相應于數據讀取的檢驗碼及讀取地址進行錯誤檢查,從而檢測多比特地址錯誤。
文檔編號G11C29/00GK1841334SQ20051008228
公開日2006年10月4日 申請日期2005年7月6日 優先權日2005年3月31日
發明者藏本昌宏, 小藪正夫, 對木潤, 稻垣淳一 申請人:富士通株式會社