數(shù)據(jù)處理電路的制作方法
【專利摘要】本發(fā)明的各個實施例涉及一種數(shù)據(jù)處理電路。該數(shù)據(jù)處理電路包括錯誤處理電路和存儲器。字?jǐn)?shù)據(jù)由被分為多個部分字的主體數(shù)據(jù)和冗余數(shù)據(jù)配置而成。冗余數(shù)據(jù)由錯誤修正附加比特配置而成,該錯誤修正附加比特基于預(yù)定錯誤修正算法從主體數(shù)據(jù)生成,并且錯誤修正附加比特包括與部分字相對應(yīng)的多個奇偶校驗比特。錯誤處理電路包括錯誤修正電路和奇偶校驗檢查電路,字?jǐn)?shù)據(jù)被并行地輸入到錯誤修正電路和奇偶校驗檢查電路中。錯誤修正電路通過使用冗余數(shù)據(jù)來判定錯誤類型并且對可修正錯誤進(jìn)行修正。奇偶校驗檢查電路基于訪問所請求的部分字和對應(yīng)的奇偶校驗比特來執(zhí)行奇偶校驗檢查。
【專利說明】數(shù)據(jù)處理電路
[0001]相關(guān)申請的交叉引用
[0002]2015年3月27日提交的日本專利申請2015-066301號的公開,包括說明書、附圖和摘要,以引用的方式全部并入本文。
技術(shù)領(lǐng)域
[0003]本發(fā)明涉及一種數(shù)據(jù)處理電路,并且更具體地,涉及如下這種類型的數(shù)據(jù)處理電路:其優(yōu)選地用于用錯誤修正代碼保護(hù)已經(jīng)寫入到存儲器中的數(shù)據(jù),并且也優(yōu)選地用于對從存儲器讀出的數(shù)據(jù)執(zhí)行錯誤修正處理。
【背景技術(shù)】
[0004]為了提高存儲器的可靠性,采用了如下這種類型的存儲器:其配置以存儲主體數(shù)據(jù),該主體數(shù)據(jù)通過向其添加錯誤修正代碼(ECC)而被存儲,以便對讀出的數(shù)據(jù)進(jìn)行錯誤修正檢測和錯誤修正處理。在如上所提及的這種存儲器中,通常使用單錯誤修正一雙錯誤檢測(SECDED)代碼,通過使用該代碼對單比特錯誤進(jìn)行修正以及對雙比特錯誤進(jìn)行檢測(雙比特錯誤不可修正)。
[0005]在日本特開平5(1993)-165736號公報中,公開了一種通過簡單電路通過使用SE⑶ED代碼來修正雙比特錯誤的電路系統(tǒng)。
[0006]在日本特開平10(1998)-97471號公報中,公開了一種用于在數(shù)據(jù)的塊傳輸時修正存儲在存儲器中的數(shù)據(jù)中的錯誤的方法。將ECC代碼添加至整個數(shù)據(jù)塊,將數(shù)據(jù)塊分為多個數(shù)據(jù)串,并且將多個比特添加至每個數(shù)據(jù)串。
【發(fā)明內(nèi)容】
[0007]通過本發(fā)明的發(fā)明人及其他人對分別在日本特開平5(1993)-165736號公報以及平10(1998)-97471號公報中公開的系統(tǒng)和方法所進(jìn)行的研究,發(fā)現(xiàn)仍存在如下新課題。
[0008]在從處理器諸如CPU(中央處理單元)等進(jìn)行存取的存儲器中,將指令代碼長度(例如,32比特指令、64比特指令等)、數(shù)據(jù)長度等,設(shè)置為對存儲器進(jìn)行存取的存取單位。然而,存儲器本身的電路配置具有,比存取單位的增加趨勢更陡的、每個字的數(shù)據(jù)長度以128比特、256比特等的數(shù)量級增加的趨勢。因此,當(dāng)讀出數(shù)據(jù)時,與已經(jīng)請求對數(shù)據(jù)的地址讀出相對應(yīng)的部分,被從需要逐字讀出的數(shù)據(jù)中物理地切出、并且輸出。此時,將ECC代碼添加至I個字的數(shù)據(jù)中。即,被逐字讀出的比特長度的部分為主體數(shù)據(jù),而其它部分則為從主體數(shù)據(jù)生成的ECC附加比特。錯誤修正處理電路從整個讀出數(shù)據(jù)(主體數(shù)據(jù)和ECC附加比特)生成校正子,判定是否存在錯誤、錯誤類型是單比特錯誤還是雙比特錯誤,輸出判定結(jié)果,并且在存在單比特錯誤的情況下,修正在主體數(shù)據(jù)中的錯誤、并且輸出主體數(shù)據(jù)。
[0009]由于就生成校正子和判定錯誤類型而言,必須輸入主體數(shù)據(jù)和ECC附加比特中的全部,因此,一般而言,判定錯誤類型所需的時間與數(shù)據(jù)長度的對數(shù)成比例地增加。例如,當(dāng)向128比特數(shù)據(jù)添加9個ECC附加比特時,判定錯誤類型所需的延時估計是8個雙輸入XOR門和5個雙輸入OR門。當(dāng)向256比特數(shù)據(jù)添加10個ECC附加比特時,延時估計是9個雙輸入XOR門和5個雙輸入OR門。該延時取決于這種串聯(lián)布置的門的數(shù)量,并且還取決于隨著在并聯(lián)方向上布置的門的規(guī)模的增加而導(dǎo)致的布線負(fù)載。如上所提及的,生成校正子以及判定錯誤類型所需的延時,主要取決于數(shù)據(jù)長度。
[0010]另一方面,發(fā)現(xiàn)存在需要使處理器速度提升的趨勢,并且生成校正子和判定錯誤類型所需的延時很可能成為阻礙存儲器存取速度增加和阻礙處理器速度提升的主要原因。
[0011]雖然下面將對用于解決如上所提及的主題的措施進(jìn)行描述,但本發(fā)明的其它主題和新穎特征也將通過以下對本發(fā)明的說明書和附圖的描述而變得顯而易見。
[0012]下面將對根據(jù)本發(fā)明的一個實施例的數(shù)據(jù)處理電路進(jìn)行描述。
[0013]S卩,該數(shù)據(jù)處理電路包括:存儲器,由主體數(shù)據(jù)和冗余數(shù)據(jù)配置而成的字?jǐn)?shù)據(jù)存儲到該存儲器中,并且字?jǐn)?shù)據(jù)以字?jǐn)?shù)據(jù)為單位從該存儲器讀出。該數(shù)據(jù)處理電路配置如下。
[0014]主體數(shù)據(jù)被分為多個部分字。冗余數(shù)據(jù)由錯誤修正附加比特配置而成,整個錯誤修正附加比特已經(jīng)基于預(yù)定錯誤修正算法從主體數(shù)據(jù)生成,并且錯誤修正附加比特包括多個奇偶校驗比特,多個奇偶校驗比特分別與多個部分字對應(yīng)。
[0015]錯誤處理電路包括錯誤修正電路和奇偶校驗檢查電路,從存儲器讀出的字?jǐn)?shù)據(jù)被并行地輸入到錯誤修正電路和奇偶校驗檢查電路中。錯誤修正電路通過使用包括在所輸入的字?jǐn)?shù)據(jù)中的冗余數(shù)據(jù)來判定包括在所輸入的字?jǐn)?shù)據(jù)中的主體數(shù)據(jù)的錯誤類型并且對可修正錯誤進(jìn)行修正。奇偶校驗檢查電路基于包括在所輸入的字?jǐn)?shù)據(jù)中的部分字和與有關(guān)的部分字對應(yīng)的奇偶校驗比特來執(zhí)行奇偶校驗檢查。
[0016]下面將簡要描述通過根據(jù)本發(fā)明的一個實施例的數(shù)據(jù)處理電路所獲得的有利效果O
[0017]S卩,在字?jǐn)?shù)據(jù)以字?jǐn)?shù)據(jù)為單位從存儲器讀出的該存儲器中,能夠與字長的增加相結(jié)合地、抑制存取速度的減慢,該字?jǐn)?shù)據(jù)包括多個部分字,將多個部分字中的每個部分字設(shè)置為從外部存取的存取單位并且向多個部分字添加錯誤修正代碼。
【附圖說明】
[0018]圖1是圖示了根據(jù)第一實施例的一種用于在SE⑶ED代碼中生成ECC附加比特的方法的一個示例的說明圖;
[0019]圖2是圖示了根據(jù)第一實施例的一種用于在SE⑶ED代碼中生成校正子的方法的一個示例的說明圖;
[0020]圖3是圖示了一種用于在每個實施例均使用的錯誤修正算法中生成ECC附加比特的方法的一個示例的說明圖;
[0021]圖4是圖示了一種用于在每個實施例均使用的錯誤修正算法中生成校正子的方法的一個示例的說明圖;
[0022]圖5是圖示了向存儲器添加了錯誤處理電路的比較示例的數(shù)據(jù)處理電路的一個配置示例的框圖;
[0023]圖6是圖示了根據(jù)向存儲器添加了錯誤處理電路的第二實施例的數(shù)據(jù)處理電路的一個配置示例的框圖;
[0024]圖7是圖示了圖5的錯誤處理電路的一個操作示例的定時圖;
[0025]圖8是圖示了圖6的錯誤處理電路的一個操作示例的定時圖;
[0026]圖9是圖示了在比較示例中的一種用于生成ECC附加比特的方法的一個示例的說明圖,該ECC附加比特被包括在需要輸入到圖5的錯誤處理電路中的字?jǐn)?shù)據(jù)中;
[0027]圖10是圖示了在比較示例中的一種用于在圖5的錯誤處理電路中生成校正子的方法的一個示例的說明圖;
[0028]圖11是圖示了根據(jù)第二實施例的一種用于生成ECC附加比特的方法的一個示例的說明圖,該ECC附加比特被包括在需要輸入到圖6的錯誤處理電路中的字?jǐn)?shù)據(jù)中;
[0029]圖12是圖示了根據(jù)第二實施例的一種用于在圖6的錯誤處理電路中生成校正子的方法的一個示例的說明圖;
[0030]圖13是圖示了根據(jù)第二示例的圖6的錯誤處理電路的一個更詳細(xì)的配置示例的框圖;
[0031]圖14是圖示了根據(jù)向存儲器添加了錯誤處理電路的第三實施例的數(shù)據(jù)處理電路的一個配置示例的框圖;
[0032]圖15是圖示了根據(jù)第三實施例的一種用于生成ECC附加比特的方法的一個示例的說明圖,該ECC附加比特被包括在需要輸入到圖14的錯誤處理電路中的字?jǐn)?shù)據(jù)中;
[0033]圖16是圖示了根據(jù)第三實施例的一種用于在圖14的錯誤處理電路中生成校正子的方法的一個示例的說明圖;
[0034]圖17是圖示了圖14的錯誤處理電路的一個更詳細(xì)的配置示例的框圖;
[0035]圖18是圖示了圖14的錯誤處理電路的一個操作示例的定時圖;
[0036]圖19是圖示了圖14的錯誤處理電路的更改示例的框圖;
[0037]圖20是圖示了圖17的錯誤處理電路的更改示例的框圖;
[0038]圖21是圖示了當(dāng)將根據(jù)第二實施例的存儲器和錯誤處理電路加載到用奇偶校驗碼保護(hù)總線數(shù)據(jù)的系統(tǒng)時的一個配置示例的框圖;
[0039]圖22是圖示了當(dāng)將根據(jù)第三實施例的存儲器和錯誤處理電路加載到用奇偶校驗碼保護(hù)總線數(shù)據(jù)的系統(tǒng)時的一個配置示例的框圖;
[0040]圖23是圖示了一個向圖21的配置添加用于將數(shù)據(jù)寫入到存儲器中的電路的配置示例的框圖;
[0041]圖24是圖示了一個向圖22的配置添加用于將數(shù)據(jù)寫入到存儲器中的電路的配置示例的框圖。
【具體實施方式】
[0042]在下文中,將參照附圖對本發(fā)明的優(yōu)選實施例進(jìn)行詳細(xì)描述。附帶提及,在加附以便對本發(fā)明的實施例進(jìn)行圖示的所有附圖中,原則上,相同的部分具有相同的標(biāo)號或者符號,并且略去對其的重復(fù)描述。
[0043]第一實施例
[0044]〈操作原理〉
[0045]首先,將對本發(fā)明的每個實施例所使用的錯誤修正算法進(jìn)行簡要描述。
[0046]基本算法是漢明碼。漢明碼是如下這樣的代碼:其中在伽羅瓦域GF(2)上的不為“O”的m維矢量中的不同者(different things)的數(shù)目為2m_l,其中“2”被設(shè)定為用于任意正整數(shù)m的模數(shù),并且從而,所有這些不同者被排列為列的矩陣被用作檢查矩陣,并且代碼長度nS2m-l,并且信息比特數(shù)目k為n-m(k和η均為正整數(shù))。此時,“2m”意指“2”的第m次冪(這同樣適用于本發(fā)明的整個說明書)。在漢明碼中,在代碼字之間的最小距離為3,并且能夠用漢明碼對單比特錯誤進(jìn)行修正。另一方面,通過將在代碼字之間的最小距離增加到4來使檢測到雙比特錯誤成為可能的代碼,是擴展型漢明碼,并且擴展型漢明碼的一個典型示例為SECDED代碼。
[0047]將對SECDED代碼的算法進(jìn)行描述。
[0048]圖1是圖示了一種用于在SE⑶ED代碼中生成ECC附加比特的方法的一個示例的說明圖。通過將k個信息比特(d0到dk-Ι)乘以(m+1)行Xk列(k和m均為正整數(shù))的生成矩陣,來生成m個ECC附加比特(PO到pm)。在生成矩陣中,在圖1的上側(cè)所圖示的m行X k列的矩陣中的相應(yīng)列,由與漢明碼相似的“在m維矢量中的不同者”配置而成,S卩,由在除了所有比特均為“O”的組合之外的2m-l個組合中的彼此不同的矢量配置而成。能夠通過將所有比特均為“I”的行添加至最下層,來使在代碼字之間的最小距離增加到如上所提及的4;并且從而,除了修正單比特錯誤的功能之外,還添加了檢測雙比特錯誤的功能??商娲兀€可以通過配置使彼此不同的向量分別具有奇數(shù)個“I”,來使在代碼字之間的最小距離增加到如上所提及的4;并且從而,除了修正單比特錯誤的功能之外,還添加了檢測雙比特錯誤的功能。每個矢量也可以配置為具有偶數(shù)個“I”。
[0049]將信息比特d0到dk-Ι和所生成的ECC附加比特p0到pm結(jié)合在一起,存儲到存儲器中、并且從存儲器讀出。從存儲器讀出的數(shù)據(jù)段由xO到xk-Ι以及pO到pm表示。當(dāng)不存在錯誤時,數(shù)據(jù)段xO到xk-Ι與信息比特d0到dk-Ι相同。雖然存在在ECC附加比特pO到pm中也可能生成錯誤的可能性,但為了方便起見,對于被從存儲器讀出的ECC附加比特,原樣地使用相同的代碼。為了判定錯誤類型,首先,獲取校正子。
[0050]圖2是圖示了一種用于在SE⑶ED代碼中生成校正子的方法的一個示例的說明圖。通過將已經(jīng)被從存儲器讀出的數(shù)據(jù)段xO到xk-Ι以及pO到pm、乘以(m+Ι)行X (k+m+1)列的檢查矩陣,來生成校正子s0到Sm。該檢查矩陣通過使上面所提及的(m+1)行Xk列的生成矩陣與(m+Ι)行X (m+Ι)列的單位矩陣結(jié)合在一起,配置而成。
[005?]所生成的校正子s0到sm用于判定錯誤類型。當(dāng)所有的校正子s0到sm均為“O”時,判定不存在錯誤。將校正子s0到sm和與上面所提及的在檢查矩陣中的(m+Ι)行Xk列的生成矩陣相對應(yīng)的部分的每列進(jìn)行比較,并且當(dāng)存在與校正子匹配的列時,判定生成單比特錯誤;并且當(dāng)不存在與校正子匹配的列時,判定生成雙比特錯誤、并且不對錯誤進(jìn)行任何修正。不對三比特或者更多比特的錯誤進(jìn)行判定。
[0052]由于與校正子s0到sm匹配的列的編號與已經(jīng)生成錯誤的信息比特的比特的位置的編號對應(yīng),因此,通過將在已經(jīng)從存儲器讀出的數(shù)據(jù)段xO到xk-Ι中的對應(yīng)比特位置處的數(shù)據(jù)反轉(zhuǎn),來修正錯誤,并且從而重新存儲信息比特d0到dk-Ι。
[0053]圖3是圖示了一種用于在每個實施例均使用的該錯誤修正算法中生成ECC附加比特的方法的一個示例的說明圖。通過使N X L個信息比特乘以M行X (N X L)列的生成矩陣(L、M和N均為正整數(shù)),來生成M個ECC附加比特(pO到pM-1)。信息比特以N個比特為單位劃分為部分字,并且由L個部分字配置而成。即,第一個部分字用“d0、dl、…和dN-1”表示,第二個部分字用“dN、dN+l、...和d2N-l”表示,并且接續(xù)的部分字繼續(xù)用該方式表示,直到第L個部分字用“(1(1^-1州、(1(1^-1)(肝1)、"_和(11^-1”表示。所有信息比特的比特長度為~\1^比特。
[0054]生成矩陣由M行X(NXL)列配置而成。列數(shù)與信息比特的比特數(shù)相同這一點,與圖1所圖示的SECDED代碼的情況相同。生成矩陣的第O列到第(N-1)列,分別與第一部分字的(10、(11^"和(^-1對應(yīng),生成矩陣的第~列到第2^1列,分別與第二部分字的(^、(^+1^"和d2N-l對應(yīng)。同樣地,生成矩陣的第(L-1)N列到第(LN-1)列,分別與第L部分字的d(L-l)N、d(1^-1)(肝1)、."和(11^-1對應(yīng)。
[0055]在生成矩陣中M行中的m行均為與漢明碼相似的“在m維矢量中的不同者”,并且由在除了所有比特均為“O”的組合之外的2m-l個組合中的彼此不同的矢量配置而成。然而,在SECDED代碼中,通過添加一行使在代碼字之間的最小距離增加到4;并且從而,添加了檢測雙比特錯誤的功能;在本算法(本發(fā)明的每個實施例均使用的該錯誤修正算法)中,添加了L行。在所添加的L行中,僅與部分字對應(yīng)的列由“I”配置而成,而其它列由“O”配置而成。由于所添加的行數(shù)多,因此,存在在代碼字之間的最小距離變得大于4的情況。在這種情況下,只要每列可能滿足SECDED代碼的要求,就能夠減少行的總數(shù)M。此處,SECDED代碼的要求是指,例如,“所有列彼此不同并且每列具有奇數(shù)個‘I’”的規(guī)范。原因是,通過使SECDED代碼滿足總共為M行(包括所添加的L行)的要求,單比特錯誤修正-雙比特錯誤檢測成為可能。
[0056]一些通過使用該生成矩陣生成的ECC附加比特(pO到pM-1),配置與相應(yīng)的部分字對應(yīng)的奇偶校驗比特。即,通過僅僅與第一部分字的d0、dl、…和dN-Ι對應(yīng)的列為“I”的第(M-L+1)行生成的ECC附加比特pM-L,生成為d0、dl、…和dN-Ι的X0R,并且配置了用于向第一部分字提供偶數(shù)的奇偶校驗的奇偶校驗比特。同樣地,與第二部分字dN、dN+l、…和d2N-l對應(yīng)的ECC附加比特ρΜ-L+l,配置了用于向第二部分字提供偶數(shù)的奇偶校驗的奇偶校驗比特。這也順序地適用于下文,并且與第L部分字d(L-l)N、d(L-l)(N+l)、…和dLN-l對應(yīng)的ECC附加比特PM-1,配置用于向第L部分字提供偶數(shù)的奇偶校驗的奇偶校驗比特。
[0057]圖4是圖示了一種用于在本算法中生成校正子的方法的一個示例的說明圖。與已經(jīng)參照圖2所描述的SE⑶ED代碼的情況相似,通過將已經(jīng)從存儲器讀出的數(shù)據(jù)段x0、xlv
和叉^131叉奸1^"以及叉211、."、叉(1^-1外、叉(1^-1)(奸1)^"和叉1^-1以及?0到?]\1-1乘以1行X (NXL+M)列的檢查矩陣,來生成校正子sO到sm。該檢查矩陣通過使上面所提及的M行X(N X L)列的生成矩陣與M行X M列的單位矩陣結(jié)合在一起配置而成。
[0058]所生成的校正子sO到sM-1用于判定錯誤類型。當(dāng)所有的校正子sO到sM-1均為“O”時,判定不存在錯誤。將校正子sO到sM-1和與上面所提及的在檢查矩陣中的M行X (NXL)列的生成矩陣對應(yīng)的部分的每列進(jìn)行比較,并且當(dāng)存在與校正子匹配的列時,判定生成單比特錯誤;而當(dāng)不存在與校正子匹配的列時,判定生成雙比特錯誤,并且不對錯誤進(jìn)行任何修正。不對三比特或者更多比特的錯誤進(jìn)行判定。
[0059]與校正子sO到sM-1匹配的列的編號,與已經(jīng)生成錯誤的信息比特的比特位置的編號對應(yīng)。通過將在已經(jīng)從存儲器讀出的數(shù)據(jù)段x0、xl、…和xN-l、xN、xN+l、…和x2N-l、…、X(L-l)N、x(L-l)(N+l)、…和xLN-1中的對應(yīng)的比特位置處的數(shù)據(jù)反轉(zhuǎn),來修正錯誤,并且從而重新存儲信息比特 d0、dl、…和 dN-l、dN、dN+l、…和 d2N-l、…、d(L-l)N、d(L-l)(N+l)、...和dLN-l O
[0060]如上所描述的,以與SE⑶ED代碼相同的方式執(zhí)行通過本算法進(jìn)行錯誤修正。
[0061]由于,在本算法中,如上所描述的,奇偶校驗pM-L到ρΜ-l配置了分別對應(yīng)于第I到第L個部分字的奇偶校驗比特,因此,每個部分字的奇偶校驗檢查(奇偶校驗解碼),能夠與上面所提及的校正子生成和錯誤類型判定的執(zhí)行并行地執(zhí)行。奇偶校驗解碼可能對所有部分字并行地執(zhí)行,或者按照時分方式對部分字連續(xù)地執(zhí)行。
[0062]附帶提及,所有圖示的矩陣均為線性的,并且可以可選地執(zhí)行行交換和列交換。
[0063]本算法所適用的存儲器是如下這樣的存儲器:將包括主體數(shù)據(jù)和ECC附加比特的一個字,用作用于數(shù)據(jù)寫入和讀出的單位,并且將部分字設(shè)置為從外部存取的存取單位。該存儲器為ROM(只讀存儲器),諸如例如,閃速存儲器等,并且本算法所適用的錯誤處理電路被添加至該存儲器。作為替代,該存儲器可以由RAM(隨機存儲存儲器)配置而成,并且進(jìn)一步地,可以將從寫入數(shù)據(jù)(也可以包括地址)生成ECC附加比特的編碼電路,添加至存儲器。對已經(jīng)從存儲器讀出的整個數(shù)據(jù)執(zhí)行上面所提及的錯誤類型判定和錯誤修正,并且與上面所提及的錯誤類型判定和錯誤修正的執(zhí)行并行地、對部分字執(zhí)行奇偶校驗檢查。即,從已經(jīng)從存儲器讀出的數(shù)據(jù),抽出部分字和對應(yīng)的奇偶校驗;以所抽出的部分字和奇偶校驗為對象,執(zhí)行奇偶校驗解碼(奇偶校驗檢查);并且從而能夠判定在該部分字中是否存在單比特錯誤。由于僅檢查了奇偶校驗,因此,所做的僅限于檢測單比特錯誤,并且此處不對錯誤進(jìn)行任何修正。
[0064]如上所描述的,在本算法中,由于對已經(jīng)從存儲器讀出的整個數(shù)據(jù)執(zhí)行了與通過SECDED代碼進(jìn)行的單比特錯誤修正-雙比特錯誤檢測相同的單比特錯誤修正-雙比特錯誤檢測,因此,能夠與從(NX L+M)比特生成校正子sO到sM-1和判定錯誤類型的執(zhí)行并行地、執(zhí)行對每個部分字的奇偶校驗檢查。由于輸入(N+1)比特用于對每個部分字執(zhí)行的奇偶校驗檢查、并且(N+1)比特與用于上面所提及的校正子生成的(NXL+M)比特的約1/1對應(yīng),因此電路延時非常小。使得上面所提及的部分字的比特數(shù)與存儲器的存取單位匹配,并且由此能夠及時檢測出,在已經(jīng)進(jìn)行存取請求的部分字中不存在單比特錯誤。在存在單比特錯誤的情況下,等待直到完成已經(jīng)從存儲器讀出的整個數(shù)據(jù)的錯誤修正,再輸出部分字。附加地,在已經(jīng)從存儲器讀出的整個數(shù)據(jù)中存在雙比特錯誤的情況下,存在難以通過對每個部分字進(jìn)行的奇偶校驗檢查來檢測到錯誤的情況。將在這種情況下執(zhí)行的數(shù)據(jù)處理,委托至后面級。在實際的電路操作中,在大多情況下不會生成錯誤,單比特錯誤的生成極為罕見,而雙比特錯誤的生成比單比特錯誤的生成更為罕見。因此,由于存儲器的平均存取速度主要根據(jù)在不存在錯誤時的延時限定,所以能夠提高整體的存儲器的存取性能。
[0065]雖然,在上文中,已經(jīng)基于漢明碼和擴展型漢明碼(SECDED代碼),對錯誤修正算法的使用進(jìn)行了描述,但可以將該代碼改變?yōu)榱硪诲e誤修正代碼。即,將生成矩陣和檢查矩陣配置為,當(dāng)已經(jīng)將主體數(shù)據(jù)分為多個部分字時,使得:用于以符合預(yù)定錯誤修正算法的整個主體數(shù)據(jù)為對象的被執(zhí)行的錯誤修正的ECC附加比特,包括有為相應(yīng)的部分字設(shè)置的奇偶校驗比特。存儲器將包括主體數(shù)據(jù)和ECC附加比特的一個字,用作用于數(shù)據(jù)寫入和讀出的單位,并且將部分字設(shè)置為從外部進(jìn)行存取的存取單位。當(dāng)將主體數(shù)據(jù)和ECC附加比特存儲在存儲器中、并且稍后從存儲器讀出時,通過使用主體數(shù)據(jù)和ECC附加比特、與符合有關(guān)的錯誤修正算法的判定錯誤類型和錯誤修正的執(zhí)行并行地、執(zhí)行已經(jīng)進(jìn)行存取請求的部分字的奇偶校驗解碼(奇偶校驗檢查)。當(dāng)通過執(zhí)行奇偶校驗解碼(奇偶校驗檢查)、而已經(jīng)判定在存取請求的部分字中不存在錯誤時,能夠高速地從讀出數(shù)據(jù)輸出對應(yīng)的部分字。另一方面,當(dāng)已經(jīng)判定存在錯誤時,基于上面提及的符合有關(guān)的錯誤修正算法的錯誤類型判定的結(jié)果,適當(dāng)?shù)貓?zhí)行錯誤修正,并且給出轉(zhuǎn)至在后面級中執(zhí)行的錯誤處理的通知,諸如,輸出來自修正的數(shù)據(jù)的被請求存取的部分字、宣告在輸出的部分字上的數(shù)據(jù)無效等等。從而,能夠通過向字?jǐn)?shù)據(jù)添加錯誤修正代碼(ECC附加比特),而與存儲器中的字長的增加相結(jié)合地、抑制存取速度的減慢;在該存儲器中,將包括有多個部分字的字?jǐn)?shù)據(jù)按字?jǐn)?shù)據(jù)的單位來讀出,該多個部分字中的每個部分字都是從外部進(jìn)行存取的存取單位。
[0066]第二實施例
[0067]〈奇偶校驗解碼的并行化〉
[0068]將對更詳細(xì)的實施例進(jìn)行描述。
[0069]圖5是圖示了向存儲器添加了錯誤處理電路的比較示例的數(shù)據(jù)處理電路的一個配置示例的框圖。圖6是圖示了根據(jù)第二實施例的數(shù)據(jù)處理電路的一個配置示例的框圖。雖然,在附圖中,布線是由信號布線的一個或者多個組配置而成的總線配置的數(shù)字信號布線,但是省略了對總線的圖示。附加地,省略了對用于配置和控制流水線的信號線諸如時鐘信號線等、以及對用于控制對存儲器的存取的信號線諸如地址線等的圖示。這同樣適用于本發(fā)明的其它實施例的其它附圖。
[0070]圖5所圖示的比較示例的數(shù)據(jù)處理電路通過將錯誤處理電路10耦合至存儲器20配置而成。錯誤處理電路10包括配置流水線的校正子生成電路1、錯誤類型判定電路2、錯誤修正電路3、已修正數(shù)據(jù)選擇電路4、確認(rèn)生成電路5、字切出電路6以及多個觸發(fā)器9_1到9_3。需要從存儲器20讀出的數(shù)據(jù)RDW是包括主體數(shù)據(jù)X和ECC附加比特P的字?jǐn)?shù)據(jù)。將整個讀出的字?jǐn)?shù)據(jù)RDW(X、P)提供至校正子生成電路1,并且經(jīng)由觸發(fā)器9_1將主體數(shù)據(jù)部分RDW(X)提供至錯誤修正電路3。經(jīng)由觸發(fā)器9_2,將已經(jīng)由校正子生成電路I生成的校正子提供至錯誤類型判定電路2和錯誤修正電路3。錯誤類型判定電路2判定錯誤類型是什么,“無錯誤(NED:未檢測到錯誤)”、“單比特錯誤(SEC:修正了單比特錯誤)”或者“雙比特錯誤(DED:檢測到雙比特錯誤)”,并且將判定結(jié)果作為錯誤類型ERR輸出。錯誤修正電路3基于所輸入的校正子S對讀出的修正前主體數(shù)據(jù)對丸行錯誤修正處理,并且經(jīng)由觸發(fā)器9_3向已修正數(shù)據(jù)選擇電路4輸出修正后主體數(shù)據(jù)Y。已修正數(shù)據(jù)選擇電路4基于錯誤類型ERR來選擇修正前主體數(shù)據(jù)X或者修正后主體數(shù)據(jù)Y,并且將其輸出至字切出電路6。在單比特錯誤的情況下,選擇并且輸出修正后主體數(shù)據(jù)Y,而在無錯誤或者雙比特錯誤的情況下,選擇并且輸出修正前主體數(shù)據(jù)X。字切出電路6從已經(jīng)從已修正數(shù)據(jù)選擇電路4輸出的修正前主體數(shù)據(jù)X或者修正后主體數(shù)據(jù)Y,切出已經(jīng)向存儲器20請求存取的部分字,并且將切出的部分字作為輸出數(shù)據(jù)RDT輸出。確認(rèn)生成電路5生成確認(rèn)信號ACK,該確認(rèn)信號ACK指示如下這樣的定時:其時,基于錯誤類型ERR,輸出對于輸出數(shù)據(jù)RDT有效的數(shù)據(jù)。當(dāng)錯誤類型為單比特錯誤、并且該錯誤由錯誤修正電路3修正時,執(zhí)行錯誤修正處理消耗了時間,并且因此相對于修正前主體數(shù)據(jù)X延遲一個周期輸出修正后主體數(shù)據(jù)Y。因此,與在無錯誤的情況下斷言信號ACK相比,當(dāng)錯誤類型ERR為單比特錯誤時,確認(rèn)生成電路5晚一個周期斷言確認(rèn)信號ACK。當(dāng)錯誤類型ERR為雙比特錯誤時,難以對錯誤進(jìn)行修正。在這種情況下的每個信號的輸出,根據(jù)來自在后面級中安裝的錯誤處理電路10的請求來適當(dāng)?shù)叵薅ā?br>[0071]圖7是圖示了圖5的錯誤處理電路10的一個操作示例的定時圖。橫軸表示時間,并且指示了時間tl到t5,其中被提供至觸發(fā)器9_1到9_3的流水線時鐘信號的周期被設(shè)置為單位。在縱軸方向上,已經(jīng)從存儲器20讀出的字?jǐn)?shù)據(jù)RDW、校正子S、修正前主體數(shù)據(jù)X以及修正后主體數(shù)據(jù)Y按該順序從上到下表示。進(jìn)一步地,分別表示了:針對無錯誤、單比特錯誤以及雙比特錯誤這三種錯誤類型中的每種錯誤類型的、所輸出的錯誤類型ERR、確認(rèn)信號ACK以及部分字RDT。雖然通過對有關(guān)信號的名稱進(jìn)行描述而在每種波形中指出了在所關(guān)注的存取周期中的數(shù)據(jù),但是空周期可以供在非關(guān)注的另外的存取周期中的數(shù)據(jù)使用。這同樣適用于本發(fā)明的實施例的其它定時圖。
[0072]在時間tl處,從存儲器20讀出字?jǐn)?shù)據(jù)RDW。字?jǐn)?shù)據(jù)RDW包括主體數(shù)據(jù)X和ECC附加比特P。將已經(jīng)由校正子生成電路I生成的校正子S取入觸發(fā)器9_2中,并且在時間t2處輸出。在時間t2處,經(jīng)由觸發(fā)器9_1,將在讀出的字?jǐn)?shù)據(jù)RDW中的主體數(shù)據(jù)對是供至錯誤修正電路3。同樣在時間t2處,將對應(yīng)的校正子S提供至錯誤修正電路3,并且錯誤修正電路3對主體數(shù)據(jù)X執(zhí)行錯誤修正處理,并且在時間t3處,經(jīng)由觸發(fā)器9_3輸出修正后主體數(shù)據(jù)Y。在將校正子S提供至錯誤類型判定電路2的時間t2處,錯誤類型判定電路2判定錯誤類型,并且輸出無錯誤(NED)、單比特錯誤(SEC)和雙比特錯誤(DED)中的任一個,作為錯誤類型ERR。
[0073]在無錯誤的情況下(ERR= NED),同樣在時間t2處輸出的修正前主體數(shù)據(jù)X由已修正數(shù)據(jù)選擇電路4選擇、并且輸出,并且需要存取的部分字由字切出電路6切出、并且作為輸出數(shù)據(jù)RDT (X)輸出。此時,確認(rèn)生成電路5同樣在時間t2處斷言確認(rèn)信號ACK。
[0074]在單比特錯誤的情況下(ERR=SEC),由已修正數(shù)據(jù)選擇電路4選擇并且輸出在時間t2—個周期之后的時間t3處輸出的修正后主體數(shù)據(jù)Y,并且需要存取的部分字由字切出電路6切出,并且作為輸出數(shù)據(jù)RDT(Y)輸出。此時,確認(rèn)生成電路5同樣在時間t2—個周期之后的時間t3處,斷言確認(rèn)信號ACK。
[0075]在雙比特錯誤的情況下(ERR= DED),由已修正數(shù)據(jù)選擇電路4選擇并且輸出同樣在時間t2處輸出的修正前主體數(shù)據(jù)X,并且需要存取的部分字由字切出電路6切出,并且作為輸出數(shù)據(jù)RDT (X)輸出。此時,確認(rèn)生成電路5同樣在時間12處斷言確認(rèn)信號ACK。即,不管錯誤類型被判定為雙比特錯誤(ERR = DED)這一事實,輸出可能包括錯誤的修正前主體數(shù)據(jù)X。這是因為雙比特錯誤超出了錯誤修正電路3的錯誤修正能力,并且因此將錯誤處理委托給后面的級??梢愿鶕?jù)需要在后面級執(zhí)行的錯誤處理的內(nèi)容,來適當(dāng)?shù)馗淖冊陔p比特錯誤(E RR = D E D)的情況下需要輸出的輸出信號的規(guī)范。
[0076]圖6是圖示了根據(jù)第二實施例的數(shù)據(jù)處理電路的一個配置示例的框圖。圖6所圖示的根據(jù)第二實施例的數(shù)據(jù)處理電路,通過將錯誤處理電路10耦合至存儲器20配置而成。與圖5所圖示的根據(jù)比較示例的錯誤處理電路10相似,錯誤處理電路10包括配置了流水線等的校正子生成電路1、錯誤類型判定電路2、錯誤修正電路3、已修正數(shù)據(jù)選擇電路4、確認(rèn)生成電路5、字切出電路6以及多個觸發(fā)器9_1到9_3。錯誤處理電路10進(jìn)一步包括字+奇偶校驗切出電路7、奇偶校驗解碼電路8等。從存儲器20讀出的數(shù)據(jù)RDW是包括主體數(shù)據(jù)X和ECC附加比特P的字?jǐn)?shù)據(jù)。將已經(jīng)從存儲器20讀出的整個字?jǐn)?shù)據(jù)RDW(X、P)提供至校正子生成電路I,經(jīng)由觸發(fā)器9_1將主體數(shù)據(jù)部分RDW(X)提供至錯誤修正電路3,并且與進(jìn)行上面所提及的操作并行地、將整個字?jǐn)?shù)據(jù)RDW(X、P)提供至字+奇偶校驗切出電路7。
[0077]經(jīng)由觸發(fā)器9_2,將已經(jīng)由校正子生成電路I生成的校正子S提供至錯誤類型判定電路2和錯誤修正電路3。錯誤類型判定電路2判定錯誤類型是什么:無錯誤(NED)、單比特錯誤(SEC)或者雙比特錯誤(DED);并且將判定結(jié)果作為錯誤類型ERR輸出。錯誤修正電路3基于所輸入的校正子S對讀出的修正前主體數(shù)據(jù)對丸行錯誤修正處理,并且經(jīng)由觸發(fā)器9_3向字切出電路6輸出修正后主體數(shù)據(jù)Y。字切出電路6將已經(jīng)向存儲器20請求的部分字從修正后主體數(shù)據(jù)Y切出,并且將切出的部分字輸出至已修正數(shù)據(jù)選擇電路4。
[0078]字+奇偶校驗切出電路7從提供的字?jǐn)?shù)據(jù)RDW(X、P)切出已經(jīng)向存儲器20請求存取的部分字和與該部分字對應(yīng)的奇偶校驗比特,并且將部分字和對應(yīng)的奇偶校驗比特提供至奇偶校驗解碼電路8。將切出的部分字輸出至已修正數(shù)據(jù)選擇電路4。奇偶校驗解碼電路8對所提供的部分字和奇偶校驗比特執(zhí)行奇偶校驗解碼,判定是否存在奇偶校驗錯誤,并且輸出可修正錯誤信號CER。由于此處僅判定是否存在奇偶校驗錯誤,因此要基于從錯誤類型判定電路2輸出的錯誤類型ERR來判定奇偶校驗錯誤實際上是否可修正。然而此時,奇偶校驗錯誤是否存在被簡單地輸出,作為可修正錯誤信號CER。
[0079]已修正數(shù)據(jù)選擇電路4選擇并且輸出已經(jīng)從修正后主體數(shù)據(jù)Y切出的部分字、或者已經(jīng)從修正前主體數(shù)據(jù)X切出的部分字。在存在奇偶校驗錯誤的情況下,選擇并且輸出已經(jīng)從修正后主體數(shù)據(jù)Y切出的部分字。在不存在奇偶校驗錯誤的情況下,選擇并且輸出已經(jīng)從修正前主體數(shù)據(jù)X切出的部分字。
[0080]確認(rèn)生成電路5生成確認(rèn)信號ACK,該確認(rèn)信號ACK指示如下這樣的定時:其時,基于可修正錯誤信號CER,輸出對于輸出數(shù)據(jù)RDT有效的數(shù)據(jù)。當(dāng)尚未檢測到奇偶校驗錯誤時,在已經(jīng)從存儲器20讀出數(shù)據(jù)的周期中,輸出已經(jīng)從修正前主體數(shù)據(jù)X切出的部分字;并且因此,確認(rèn)生成電路5斷言確認(rèn)信號ACK到該周期。另一方面,當(dāng)已經(jīng)檢測到奇偶校驗錯誤時,由于等待直到完成由錯誤修正電路3執(zhí)行的錯誤修正處理,延時兩個周期地輸出已經(jīng)從修正后主體數(shù)據(jù)Y切出的部分字;并且因此,當(dāng)沒有已經(jīng)檢測到奇偶校驗錯誤時,確認(rèn)生成電路5相對于需要執(zhí)行的信號斷言,延時兩個周期地斷言確認(rèn)信號ACK。
[0081]圖8是圖示了圖6的錯誤處理電路的一個操作示例的定時圖。與圖7的示例相似,橫軸表示時間,并且指示了時間tl到t5,其中被提供至觸發(fā)器9_1到9_3的流水線時鐘信號的周期被設(shè)置為單位。在縱軸方向上,已經(jīng)從存儲器20讀出的字?jǐn)?shù)據(jù)RDW、校正子S、修正前主體數(shù)據(jù)X、修正后主體數(shù)據(jù)Y以及錯誤類型ERR按該順序從上到下表示。進(jìn)一步地,分別表示了:針對不存在奇偶校驗錯誤和存在奇偶校驗錯誤的、所輸出的可修正錯誤信號CER、確認(rèn)信號ACK以及部分字RDT。
[0082]在時間tl處,從存儲器20讀出字?jǐn)?shù)據(jù)RDW,該字?jǐn)?shù)據(jù)RDW包括主體數(shù)據(jù)X和ECC附加比特P。將已經(jīng)由校正子生成電路I生成的校正子S取入觸發(fā)器9_2中,并且在時間t2處輸出。在時間t2處,經(jīng)由觸發(fā)器9_1,將在讀出的字?jǐn)?shù)據(jù)RDW中的主體數(shù)據(jù))(提供至錯誤修正電路3。同樣在時間t2處,將對應(yīng)的校正子S提供至錯誤修正電路3,并且錯誤修正電路3對主體數(shù)據(jù)X執(zhí)行錯誤修正處理,并且在時間t3處,經(jīng)由觸發(fā)器9_3輸出已修正的主體數(shù)據(jù)Y。在將校正子S提供至錯誤類型判定電路2的時間t2處,錯誤類型判定電路2判定錯誤類型,并且輸出無錯誤(NED)、單比特錯誤(SEC)和雙比特錯誤(DED)中的任一個,作為錯誤類型ERR。到目前為止所執(zhí)行的操作與圖7所圖示的比較示例的操作相同。
[0083]在從存儲器20讀出字?jǐn)?shù)據(jù)RDW的時間11處,字+奇偶校驗切出電路7切出部分字和與該部分字對應(yīng)的奇偶校驗比特,并且將切出的部分字和對應(yīng)的奇偶校驗比特提供至奇偶校驗解碼電路8。將切出的部分字輸出至已修正數(shù)據(jù)選擇電路4。奇偶校驗解碼電路8對所提供的部分字和奇偶校驗比特執(zhí)行奇偶校驗解碼,判定奇偶校驗錯誤是否存在,并且輸出可修正錯誤信號CER。由于字+奇偶校驗切出電路7是配置為從字?jǐn)?shù)據(jù)RDW簡單地選擇部分字和奇偶校驗比特的簡單電路、并且奇偶校驗檢查電路8可以具有高速電路配置(其延時級數(shù)減少,這是因為被解碼的對象是在數(shù)據(jù)大小上是字?jǐn)?shù)據(jù)RDW的若干分之一的部分字)因此,能夠在與從存儲器20讀出字?jǐn)?shù)據(jù)RDW的周期相同的周期中執(zhí)行奇偶校驗解碼。
[0084]在不存在奇偶校驗錯誤的情況下(CER= 0),由已修正數(shù)據(jù)選擇電路4選擇,已經(jīng)從在時間tl處輸出的修正前主體數(shù)據(jù)X切出的部分字,并且將其作為輸出數(shù)據(jù)RDT(X)輸出。在存在奇偶校驗錯誤的情況下(CER=I),由已修正數(shù)據(jù)選擇電路4選擇,已經(jīng)從在時間t3處輸出的修正后主體數(shù)據(jù)Y切出的部分字,并且將其作為輸出數(shù)據(jù)RDT(Y)輸出。
[0085]即使當(dāng)已經(jīng)判定在部分字中不存在奇偶校驗錯誤(CER= O)時,可能也并不一定意味著在字?jǐn)?shù)據(jù)RDW中不存在錯誤(ERR = NED)。存在可能在除了有關(guān)的部分字之外的部分中生成了錯誤的可能性,還存在可能在有關(guān)的部分字中生成了雙比特錯誤的可能性。因此,如上所提及的已經(jīng)在時間tl處輸出的輸出數(shù)據(jù)RDT(X),可能并不一定是已經(jīng)從不存在錯誤的字?jǐn)?shù)據(jù)切出的部分字。然而,由于實際生成錯誤的可能性低,因此,通過在后面級中、將當(dāng)不存在奇偶校驗錯誤時獲得的數(shù)據(jù)用作輸出數(shù)據(jù)RDT,改進(jìn)了存儲器20的存取周期。通過比較圖7的示例和圖8的示例,發(fā)現(xiàn),在圖8的示例中,提前了一個周期輸出數(shù)據(jù)。另一方面,由于如上所提及的在時間t2處輸出基于校正子S判定的修正錯誤類型ERR,因此,在后面級中,一旦在時間tl處基于修正錯誤類型ERR的判定結(jié)果輸出了輸出數(shù)據(jù)RDT(X),對其執(zhí)行適當(dāng)?shù)奶幚?。例如,在單比特錯誤的情況下(ERR = SEC),一旦輸出了輸出數(shù)據(jù)RDT(X),使其無效,并且用由已經(jīng)從修正后主體數(shù)據(jù)Y切出的部分字配置而成的輸出數(shù)據(jù)RDT(Y)替代。在雙比特錯誤的情況下(ERR = DED),流程轉(zhuǎn)到適當(dāng)?shù)腻e誤處理。
[0086]在實際的電路操作中,在大多數(shù)情況下不生成錯誤,單比特錯誤的生成極為罕見,并且雙比特錯誤的生成比單比特錯誤的生成更為罕見。因此,由于存儲器20的平均存取速度主要根據(jù)在不存在錯誤時的延時限定,所以能夠整體提高存儲器20的存取性能。
[0087]附帶提及,已經(jīng)在第二實施例中描述的流水線配置僅僅是一個示例,并且考慮到會在每個流水線級中發(fā)生的電路延時,可以進(jìn)行適當(dāng)?shù)馗淖?,并且圖7和圖8所圖示的定時圖可以根據(jù)流水線配置的改變結(jié)果而改變。
[0088]將對錯誤處理電路10的一個具體配置示例進(jìn)行描述。為了便于理解,將基于主體數(shù)據(jù)由9比特配置而成、并且每個部分字由3比特配置而成的假設(shè),進(jìn)行說明。配置每個主體數(shù)據(jù)和每個部分字中的每一個的比特數(shù)僅僅是一個示例,并且可選地可以改變。
[0089]圖9是圖示了根據(jù)比較示例的一種用于生成ECC附加比特的方法的一個示例的說明圖,該ECC附加比特被包括在輸入到圖5的錯誤處理電路10中的字?jǐn)?shù)據(jù)中。通過將9比特主體數(shù)據(jù)d0到d8乘以5行X 9列的生成矩陣,來生成5個ECC附加比特pO到p4。此處所使用的生成矩陣是如下這樣的擴展型漢明碼生成矩陣:該生成矩陣的列彼此不同,并且每列均由奇數(shù)個“I”配置而成。
[0090]圖10是圖示了一種用于在圖5的錯誤處理電路中生成校正子的方法的一個示例的說明圖。通過將已經(jīng)從存儲器20讀出的數(shù)據(jù)段xO到x8以及pO到p4,乘以5行X 14列的檢查矩陣,來生成校正子sO到s4。該檢查矩陣通過使上面所提及的5行X 9列的生成矩陣與5行X 5列的單位矩陣結(jié)合在一起配置而成。圖5的校正子生成電路I根據(jù)該乘法公式來生成校正子sO 到 s40
[0091]圖11是圖示了根據(jù)第二實施例的一種用于生成ECC附加比特的方法的一個示例的說明圖,該ECC附加比特被包括在被輸入到圖6的錯誤處理電路10中的字?jǐn)?shù)據(jù)中。通過使9比特主體數(shù)據(jù)d0到d8乘以6行X9列的生成矩陣,來生成6個ECC附加比特pO到p5。此處所使用的生成矩陣是如下這樣的擴展型漢明碼生成矩陣:該生成矩陣的列彼此不同,并且每列由奇數(shù)個“I”配置而成,并且同時包括用于生成每個部分字奇偶校驗碼的部分。即,在生成矩陣的第4行中,與第一部分字的比特d0到d2對應(yīng)的第I到第3列均為T,其它列均為“O”,并且通過第4行生成的奇偶校驗p3配置了用于第一部分字d0到d2的奇偶校驗代碼。同樣地,在生成矩陣的第5行中,與第二部分字的比特d3到d5對應(yīng)的第4到第6列均為“I”,其它列均為“O”,并且通過第5行生成的奇偶校驗p4配置了用于第二部分字d3到d5的奇偶校驗代碼。此外,在生成矩陣的第6行中,與第三部分字的比特d6到d8對應(yīng)的第7到第9列均為“I”,其它列均為“O”,并且通過第6行生成的奇偶校驗p5配置了用于第三部分字d6到d8的奇偶校驗代碼。
[0092]圖12是圖示了根據(jù)第二實施例的一種用于在圖6的錯誤處理電路10中生成校正子的方法的一個示例的說明圖。通過將已經(jīng)從存儲器20讀出的字?jǐn)?shù)據(jù)xO到x8以及pO到p5乘以6行X 15列的檢查矩陣,來生成校正子sO到s5。該檢查矩陣通過使上面所提及的6行X9列的生成矩陣與6行X6列的單位矩陣結(jié)合在一起配置而成。圖6的校正子生成電路I根據(jù)該乘法公式來生成校正子sO到s5。
[0093]由于在ECC附加比特pO到p5中的比特p3到p5分別配置用于如上所描述的第一部分字到第三部分字的奇偶校驗碼,因此,能夠與上面所提及的校正子生成以及之后的錯誤類型判定處理和錯誤修正處理的執(zhí)行并行地、執(zhí)行每個部分字的奇偶校驗檢查。
[0094]圖13是圖示了圖6的錯誤處理電路10的一個更詳細(xì)的配置示例的框圖。
[0095]將已經(jīng)從存儲器20讀出的修正前主體數(shù)據(jù)Χ(χ0到x8)和ECC附加比特(pO到p5)輸入到錯誤處理電路10中。將整個讀出的字?jǐn)?shù)據(jù)(xO到X8以及PO到p5)輸入至校正子生成電路I,并且經(jīng)由觸發(fā)器9_1將主體數(shù)據(jù)xO到x8輸入到錯誤修正電路3中。
[0096]經(jīng)由觸發(fā)器9_2,將已經(jīng)由校正子生成電路I生成的校正子sO到s5提供至錯誤類型判定電路2和錯誤修正電路3。錯誤類型判定電路2判定錯誤類型是什么:無錯誤(NED)、單比特錯誤(SEC)或者雙比特錯誤(DED);并且將判定結(jié)果作為錯誤類型ERR輸出。錯誤修正電路3基于所輸入的校正子sO到s5對讀出的修正前主體數(shù)據(jù)xO到x8執(zhí)行錯誤修正處理,并且經(jīng)由觸發(fā)器9_3向字切出電路6輸出修正后主體數(shù)據(jù)y0到y(tǒng)8。字切出電路6從修正后主體數(shù)據(jù)y0到y(tǒng)8,切出已經(jīng)向存儲器20請求存取的部分字y0到y(tǒng)2或者y3到y(tǒng)5或者y6到y(tǒng)8,并且切出的部分字輸出至已修正數(shù)據(jù)選擇電路4。
[0097]字+奇偶校驗切出電路7由用于從主體數(shù)據(jù)xO到x8切出有關(guān)的部分字的選擇器71和用于從ECC附加比特pO到p5切出對應(yīng)的奇偶校驗比特的選擇器72配置而成。選擇器71從主體數(shù)據(jù)xO到x8切出已經(jīng)向存儲器20請求存取的部分字xO到x2或者x3到x5或者x6到x8,并且將切出的部分字輸出至已修正數(shù)據(jù)選擇電路4和奇偶校驗解碼電路8。選擇器72從ECC附加比特PO到p5切出與上面所提及的部分字對應(yīng)的奇偶校驗比特p3或者p4或者p5,并且將切出的奇偶校驗比特輸出至奇偶校驗解碼電路8 ο奇偶校驗解碼電路8對所提供的部分字和奇偶校驗比特執(zhí)行奇偶校驗解碼,判定是否存在奇偶校驗錯誤,并且輸出可修正錯誤信號CER0
[0098]已修正數(shù)據(jù)選擇電路4基于可修正錯誤信號CER,選擇并且輸出已經(jīng)從修正后主體數(shù)據(jù)Y切出的部分字或者已經(jīng)從修正前主體數(shù)據(jù)X切出的部分字。在存在奇偶校驗錯誤的情況下,選擇并且輸出已經(jīng)從修正后主體數(shù)據(jù)Y切出的部分字。在不存在奇偶校驗錯誤的情況下,選擇并且輸出已經(jīng)從修正前主體數(shù)據(jù)X切出的部分字。
[0099]確認(rèn)生成電路5生成確認(rèn)信號ACK,該確認(rèn)信號ACK指示如下這樣的定時:其時,基于可修正錯誤信號CER,輸出對于輸出數(shù)據(jù)RDT有效的數(shù)據(jù)。
[0100]這樣,將已經(jīng)從存儲器20讀出的整個9比特數(shù)據(jù)XO到X8和5個ECC附加比特PO到p5、總計15比特,輸入到校正子生成電路I,并且由此,校正子生成電路I生成由6個比特配置而成的校正子sO到s5ο與此相反,在對每個部分字執(zhí)行的奇偶校驗檢查中,經(jīng)由在字+奇偶校驗切出電路7中的選擇器71或者72中的一個級,將由用于部分字的3個比特和I個奇偶校驗比特配置而成的總計4個比特,輸入到奇偶校驗解碼電路8中,并且由此,生成可修正錯誤信號CER。因此,與總計輸入15比特的校正子生成電路I相比,能夠大大減少電路延時。由此,不存在奇偶校驗錯誤,被高速地判定;并且由此,通過考慮到錯誤生成的可能性而得到的存儲器20的平均存取速度,能夠得到提高。
[0101]在第二實施例中,已經(jīng)對在時分方式下操作奇偶校驗解碼電路8的配置進(jìn)行了圖示。作為替代,可以針對每個部分字提供奇偶校驗解碼電路8,并且這樣設(shè)置的奇偶校驗解碼電路8可以彼此并行地操作。
[0102]圖19是圖示了圖13所圖示的錯誤處理電路10的一個更改示例的框圖。在圖19中,省略了對多個觸發(fā)器和確認(rèn)生成電路5的圖示。作為奇偶校驗解碼電路8,3個奇偶校驗解碼電路81到83針對每個部分字彼此并列地布置,并且分別輸出解碼結(jié)果peO到pe2。由于將已經(jīng)從存儲器20讀出的整個數(shù)據(jù)xO到x8和ECC附加比特pO到p5輸入到奇偶校驗解碼電路8中,因此字+奇偶校驗切出電路7成為無用的、并且因此省略。對于已修正數(shù)據(jù)的選擇,3個已修正數(shù)據(jù)選擇電路4_1到4_3針對每個部分字彼此并列地布置。字切出電路6安裝在這3個已修正數(shù)據(jù)選擇電路4_1到4_3的后面級處。
[0103]第三實施例
[0104]〈在錯誤修正之前的字切出〉
[0105]將對另一詳細(xì)實施例進(jìn)行描述。
[0106]圖14是圖示了根據(jù)第三實施例的數(shù)據(jù)處理電路的一個配置示例的框圖。與圖6所圖示的根據(jù)第二實施例的錯誤處理電路相似,圖14所圖示的根據(jù)第三實施例的數(shù)據(jù)處理電路,通過將錯誤處理電路10耦合至存儲器20配置而成。根據(jù)第三實施例的數(shù)據(jù)處理電路,在錯誤處理電路10包括校正子生成電路1、錯誤類型判定電路2、錯誤修正電路3、已修正數(shù)據(jù)選擇電路4、確認(rèn)生成電路5、字切出電路6、字+奇偶校驗切出電路7以及多個觸發(fā)器等這一點上,與根據(jù)第二實施例的數(shù)據(jù)處理電路相同。然而,根據(jù)第三實施例的數(shù)據(jù)處理電路,在字切斷字切出電路6布置在錯誤修正電路3的前面級處這一點上,與根據(jù)第二實施例的數(shù)據(jù)處理電路不同。字切出電路6從存儲器20讀出的數(shù)據(jù)RDW的主體數(shù)據(jù)X切出已經(jīng)向存儲器20請求存取的部分字,并且將切出的部分字提供至錯誤修正電路3。由于錯誤修正電路3是不對整個主體數(shù)據(jù)X而對切出的部分字執(zhí)行錯誤修正處理的類型的電路,因此,電路延時小。因此,也改變了配置流水線的觸發(fā)器的布置。即,省略了設(shè)置在圖6的錯誤修正電路3的前面級處的觸發(fā)器9_1,并且觸發(fā)器9_4替代觸發(fā)器9_3布置在錯誤修正電路3的后面級處。結(jié)合觸發(fā)器9_4的提供,用于校正子S的觸發(fā)器9_2被移到在通過其將數(shù)據(jù)輸入到錯誤修正電路3中的節(jié)點之后的級。雖然,如上所提及的,根據(jù)第三實施例的數(shù)據(jù)處理電路,在提供的對部分字執(zhí)行錯誤修正處理的錯誤修正電路3這一點上,與根據(jù)第二實施例的數(shù)據(jù)處理電路極為不同;但是除了與觸發(fā)器9_4和錯誤修正電路3的設(shè)置相結(jié)合地、略微改變了流水線結(jié)構(gòu)之外,根據(jù)第三實施例的數(shù)據(jù)處理電路與根據(jù)第二實施例的數(shù)據(jù)處理電路的操作方式相同。雖然省略了對與第二實施例相同的配置和操作的說明,但是在下文中,將集中于不同點對根據(jù)第三實施例的錯誤處理電路10的操作進(jìn)行描述。
[0107]在錯誤修正代碼算法諸如SE⑶ED等中,一般來說,需要進(jìn)行錯誤修正處理的對象限于整個主體數(shù)據(jù),并且難以僅將主體數(shù)據(jù)的部分設(shè)置為需要進(jìn)行錯誤修正處理的對象。在第三實施例中,采用了對主體數(shù)據(jù)實施部分錯誤修正的生成矩陣。
[0108]圖15是圖示了根據(jù)第三實施例的一種用于生成ECC附加比特的方法的一個示例的說明圖。與圖11所圖示的第二實施例相似,通過使9比特主體數(shù)據(jù)do到d8乘以6行X9列的生成矩陣,來生成6個ECC附加比特pO到p5。第三實施例在所使用的生成矩陣是生成矩陣的列彼此不同并且每列均由奇數(shù)個“I”配置而成并且包括有用于生成每個部分字奇偶校驗碼的部分的擴展型漢明碼的生成矩陣這幾點上,與第二實施例相同。第三實施例在除了用于生成每個部分字奇偶校驗碼的部分之外的部分的元素由對于與相應(yīng)的部分字相對應(yīng)的每組多個列彼此相同的部分矩陣配置而成這一點上,與第二實施例不同。即,使以下相應(yīng)的部分矩陣彼此相同。
[0109]在與第一部分字對應(yīng)的第I列到第3列中,與除了第4行到第6行之外的部分相對應(yīng)的3行X 3列的部分矩陣,用于生成每個部分字奇偶校驗碼。
[0110]在與第二部分字對應(yīng)的第4列到第6列中,與除了第4行到第6行之外的部分對應(yīng)的3行X 3列的部分矩陣,用于生成每個部分字奇偶校驗碼。
[0111]在與第三部分字對應(yīng)的第7列到第9列中,與除了第4行到第6行之外的部分對應(yīng)的3行X 3列的部分矩陣,用于生成每個部分字奇偶校驗碼。
[0112]即使這樣的生成矩陣,仍然滿足生成擴展型漢明碼所需的“相應(yīng)的列彼此不同并且每列均由奇數(shù)個‘I’配置而成”的條件。
[0113]圖16是圖示了根據(jù)第三實施例的一種用于生成校正子的方法的一個示例的說明圖。雖然如上所提及的,檢查矩陣與生成矩陣的變化相結(jié)合地、同樣地改變,但是檢查矩陣滿足擴展型漢明碼所需要的條件,并且因此,能夠生成符合擴展型漢明碼的算法的校正子sO到s5,并且還能夠通過使用該校正子相似地執(zhí)行錯誤修正處理。附加地,校正子sO到s5配置了與每個部分字對應(yīng)的部分字奇偶校驗碼。
[0114]所生成的校正子sO到s5用于判定錯誤類型。當(dāng)所有的校正子sO到s5均為“O”時,判定不存在錯誤。將校正子sO到s5和與在檢查矩陣中的生成矩陣對應(yīng)的部分的每列進(jìn)行比較,當(dāng)存在與校正子匹配的列時,判定生成單比特錯誤,并且當(dāng)不存在與校正子匹配的列時,判定生成雙比特錯誤、并且不對錯誤進(jìn)行任何修正。不對三比特或者更多比特的錯誤進(jìn)行判定。
[0115]在第三實施例中,將除了校正子S3到s5之外的并且配置了部分字奇偶校驗碼的校正子sO到s2,和與在第一行到第三行中的生成矩陣對應(yīng)的部分的每列進(jìn)行比較。即,將校正子sO到s2與在第I行到第3行中的第I列到第9列進(jìn)行比較。此時,如參照圖15所描述的,由于在第I行到第3行中,在第I列到第3列中的部分矩陣、在第4列到第6列中的部分矩陣以及在第7列到第9列中的部分矩陣彼此相同,因此,將校正子sO到s2與三組列數(shù)據(jù)進(jìn)行比較是足夠的。這三組列數(shù)據(jù)是:第I列、第4列和第7列的列數(shù)據(jù),第2列、第5列和第8列的列數(shù)據(jù),以及第3列、第6列和第9列的列數(shù)據(jù)。
[0116]在擴展型漢明碼的錯誤修正處理中,由于與校正子sO到s5匹配的列的編號,與已經(jīng)生成錯誤的信息比特的比特位置的編號對應(yīng),因此,通過將在已經(jīng)從存儲器20讀出的數(shù)據(jù)段xO到x8中的對應(yīng)的比特位置處的數(shù)據(jù)反轉(zhuǎn),來修正錯誤,并且從而重新存儲信息比特d0到d8。與此相反,在第三實施例中,與校正子sO到s2匹配的列為第I列、第4列和第7列的列數(shù)據(jù)、第2列、第5列和第8列的列數(shù)據(jù)、以及第3列、第6列和第9列的列數(shù)據(jù)。
[0117]另一方面,在從存儲器20讀出的主體數(shù)據(jù)xO到x8中,將已經(jīng)由字切出電路6切出的部分字xO到x2、x3到x5或者x6到x8輸入到錯誤修正電路3中。當(dāng)校正子sO到s2與第I列、第4列和第7列的列數(shù)據(jù)匹配時,不論輸入了哪個部分字,均對第一比特x0、x3或者x6進(jìn)行修正。當(dāng)校正子sO到s2與第2列、第5列和第8列的列數(shù)據(jù)匹配時,不論輸入了哪個部分字,均對第二比特xl、x4或者x7進(jìn)行修正。當(dāng)校正子sO到s2與第3列、第6列以及第9列的列數(shù)據(jù)匹配時,不論輸入了哪個部分字,均對第三比特x2、x5或者x8進(jìn)行修正。
[0118]經(jīng)由觸發(fā)器9_4,將已經(jīng)用該方式修正的部分字y0到y(tǒng)2、y3到y(tǒng)5或者y6到y(tǒng)8,輸入到已修正數(shù)據(jù)選擇電路4中。提前將已經(jīng)從修正前主體數(shù)據(jù)X切出的部分字xO到x2、x3到x5或者x6到x8,輸入到已修正數(shù)據(jù)選擇電路4的另一側(cè)。已修正數(shù)據(jù)選擇電路4基于可修正錯誤信號CER,選擇并且輸出已經(jīng)從修正后主體數(shù)據(jù)Y切出的部分字(y0到y(tǒng)2、y3到y(tǒng)5或者y6到y(tǒng)8)、或者已經(jīng)從修正前主體數(shù)據(jù)X切出的部分字(xO到x2、x3到x5或者x6到x8)。在存在奇偶校驗錯誤的情況下,選擇并且輸出已經(jīng)從修正后主體數(shù)據(jù)Y切出的部分字(y0到y(tǒng)2、y3到y(tǒng)5或者y6到y(tǒng)8)。在不存在奇偶校驗錯誤的情況下,選擇并且輸出已經(jīng)從修正前主體數(shù)據(jù)X切出的部分字(xO到x2、x3到x5或者x6到x8)。
[0119]將對根據(jù)第三實施例的錯誤處理電路10的配置進(jìn)行更詳細(xì)地描述。
[0120]圖17是圖示了圖14的錯誤處理電路10的一個更詳細(xì)的配置示例的框圖。
[0121]將已經(jīng)從存儲器20讀出的修正前主體數(shù)據(jù)Χ(χ0到x8)和ECC附加比特Ρ(ρ0到p5),輸入到錯誤處理電路10中。將整個字?jǐn)?shù)據(jù)(xO到x8以及PO到p5),輸入到校正子生成電路I和字+奇偶校驗切出電路7中。校正子生成電路I生成校正子sO到s5,并且將所生成的校正子sO到s5提供至錯誤修正電路3。附加地,校正子生成電路I經(jīng)由觸發(fā)器9_2,也將校正子sO到s5提供至錯誤類型判定電路2。錯誤類型判定電路2判定錯誤類型是什么:無錯誤(NED)、單比特錯誤(SEC)或者雙比特錯誤(DED);并且將判定結(jié)果作為錯誤類型ERR輸出。
[0122]字+奇偶校驗切出電路7由用于從主體數(shù)據(jù)xO到x8切出有關(guān)的部分字的選擇器71以及用于從ECC附加比特pO到p5切出對應(yīng)的奇偶校驗比特的選擇器72配置而成。選擇器71從主體數(shù)據(jù)xO到x8切出已經(jīng)向存儲器20請求存取的部分字xO到x2或者x3到x5或者x6到x8,并且將切出的部分字輸出至錯誤修正電路3、已修正數(shù)據(jù)選擇電路4以及奇偶校驗解碼電路
8。選擇器72從ECC附加比特pO到p5切出與上面所提及的部分字對應(yīng)的奇偶校驗比特p3或者p4或者p5,并且將切出的奇偶校驗比特輸出至奇偶校驗解碼電路8。雖然圖14對字切出電路6進(jìn)行了圖示,但是被包括在字+奇偶校驗切出電路7中的選擇器71具有與在圖17的示例中的字切出電路6相同的功能,并且因此,替代地應(yīng)用來自選擇器71的輸出。奇偶校驗解碼電路8對所提供的部分字和奇偶校驗比特執(zhí)行奇偶校驗解碼,判定是否存在奇偶校驗錯誤,并且輸出可修正錯誤信號CER。
[0123]錯誤修正電路3基于輸入的校正子sO到s5對已經(jīng)從修正前主體數(shù)據(jù)X切出的部分字xO到x2、x3到x5或者x6到x8執(zhí)行上面所提及的錯誤修正處理,并且輸出已修正的部分字y0到y(tǒng)2、y3到y(tǒng)5或者y6iljy8。經(jīng)由觸發(fā)器9_4,將已修正的部分字y0到y(tǒng)2、y3到y(tǒng)5或者y6到y(tǒng)8輸入到已修正數(shù)據(jù)選擇電路4中。
[0124]已修正數(shù)據(jù)選擇電路4基于可修正錯誤信號CER,選擇并且輸出已經(jīng)從修正后主體數(shù)據(jù)Y切出的部分字(y0到y(tǒng)2、y3到y(tǒng)5或者y6到y(tǒng)8)、或者已經(jīng)從修正前主體數(shù)據(jù)X切出的部分字UO到x2、x3到x5或者x6到x8)。在存在奇偶校驗錯誤的情況下,選擇并且輸出已經(jīng)從修正后主體數(shù)據(jù)Y切出的部分字(y0到y(tǒng)2、y3到y(tǒng)5或者y6到y(tǒng)8)。在不存在奇偶校驗錯誤的情況下,選擇并且輸出已經(jīng)從修正前主體數(shù)據(jù)X切出的部分字(xO到x2、x3到x5或者x6到x8)。
[0125]確認(rèn)生成電路5生成確認(rèn)信號ACK,該確認(rèn)信號ACK指示如下這樣的定時:其時,基于可修正錯誤信號CER,輸出對于輸出數(shù)據(jù)RDT有效的數(shù)據(jù)。
[0126]圖18是圖示了圖14的錯誤處理電路10的一個操作示例的定時圖。與圖8的定時圖相似,橫軸表示時間,并且指示了時間tl到t5,其中被提供至觸發(fā)器9_1、9_2以及9_4的流水線時鐘信號的周期被設(shè)置為單位。在縱軸方向上,已經(jīng)從存儲器20讀出的字?jǐn)?shù)據(jù)RDW、校正子S、修正前主體數(shù)據(jù)X、修正后主體數(shù)據(jù)Y以及錯誤類型ERR按該順序從上到下表示。進(jìn)一步地,分別表示了:針對不存在奇偶校驗錯誤和存在奇偶校驗錯誤的、所輸出的可修正錯誤信號CER、確認(rèn)信號ACK以及部分字RDT。
[0127]在時間11處,從存儲器20讀出字?jǐn)?shù)據(jù)RDW,該字?jǐn)?shù)據(jù)RDW包括主體數(shù)據(jù)X和ECC附加比特P。在不受觸發(fā)器9_2干預(yù)的情況下,直接將已經(jīng)由校正子生成電路I生成的校正子S,提供至錯誤修正電路3。同樣在時間tl處,將已經(jīng)從在讀出的字?jǐn)?shù)據(jù)RDW中的主體數(shù)據(jù)X切出的部分字(xO到x2、x3到x5或者x6到x8)提供至錯誤修正電路3。錯誤修正電路3對該部分字執(zhí)行錯誤修正處理,并且在時間t2處經(jīng)由觸發(fā)器9_4向已修正數(shù)據(jù)選擇電路4輸出已修正的部分字(y0到y(tǒng)2、y3到y(tǒng)5或者y6到y(tǒng)8)。
[0128]在時間t2處,經(jīng)由觸發(fā)器9_2,將校正子S提供至錯誤類型判定電路2,錯誤類型判定電路2判定錯誤類型,并且輸出無錯誤(NED)、單比特錯誤(SEC)以及雙比特錯誤(DED)中的任一個作為錯誤類型ERR。
[0129]在從存儲器20讀出字?jǐn)?shù)據(jù)RDW的時間11處,字+奇偶校驗切出電路7切出部分字和與該部分字對應(yīng)的奇偶校驗比特,并且將切出的部分字和對應(yīng)的奇偶校驗比特提供至奇偶校驗解碼電路8。將切出的部分字輸出至已修正數(shù)據(jù)選擇電路4。奇偶校驗解碼電路8對所提供的部分字和奇偶校驗比特執(zhí)行奇偶校驗解碼,判定奇偶校驗錯誤是否存在,并且輸出可修正錯誤信號CER。
[0130]在不存在奇偶校驗錯誤的情況下(CER= 0),由已修正數(shù)據(jù)選擇電路4選擇已經(jīng)從在時間tl處輸出的修正前主體數(shù)據(jù)X切出的部分字(xO到x2、x3到X5或者X6到X8),并且將其作為輸出數(shù)據(jù)RDT (X)輸出。在存在奇偶校驗錯誤的情況下(CER = I),由已修正數(shù)據(jù)選擇電路4選擇已經(jīng)從在時間t2處輸出的修正后主體數(shù)據(jù)Y切出的部分字(y0到y(tǒng)2、y3到y(tǒng)5或者y6到y(tǒng)8),并且將其作為輸出數(shù)據(jù)RDT(Y)輸出。
[0131]在第三實施例中,由于錯誤修正電路3僅針對部分字執(zhí)行錯誤修正處理,因此,會發(fā)生的延時小,并且電路規(guī)模也小。因此,如圖14、圖17以及圖18所圖示的,能夠比在圖6、圖8以及圖13所圖示的第二實施例的情況早一個周期輸出修正結(jié)果。雖然在每個附圖中均圖示了主體數(shù)據(jù)由9比特配置而成并且每個部分字由3比特配置而成的示例,但是當(dāng)主體數(shù)據(jù)的比特數(shù)和/或每個部分字的比特數(shù)改變時,仍然能夠減少錯誤修正電路3的延時,并且相似地減小其電路規(guī)模。
[0132]雖然在第三實施例中,已經(jīng)對在時分方式下操作錯誤修正電路3的配置進(jìn)行了圖示,但是仍然能夠?qū)㈠e誤修正電路3布置為針對每個部分字對部分字執(zhí)行錯誤修正處理,并且能夠?qū)@樣彼此并列布置的錯誤修正電路3進(jìn)行操作。
[0133]圖20是圖示了圖17的錯誤處理電路10的更改示例的框圖。省略了對多個觸發(fā)器和確認(rèn)生成電路5的圖示。與圖19的示例相似,省略了字+奇偶校驗切出電路7。在奇偶校驗解碼電路8中,3個奇偶校驗解碼電路81到83針對每個部分字彼此并列地布置,并且分別輸出解碼結(jié)果PeO到pe2。附加地,布置了 3個錯誤修正電路3_1到3_3,分別對其對應(yīng)的部分字彼此并行地執(zhí)行錯誤修正處理,并且輸出已修正的部分字y0到y(tǒng)2、y3到y(tǒng)5以及y6到78。3個已修正數(shù)據(jù)選擇電路4_1、4_2以及4_3彼此并列地布置,分別基于奇偶校驗解碼結(jié)果peO到pe2選擇修正前部分字或者修正后部分字,并且將所選的部分字輸出至布置在后面級中的字切出電路6。
[0134]第四實施例
[0135]〈用奇偶校驗碼保護(hù)總線數(shù)據(jù)的系統(tǒng)〉
[0136]能夠在用奇偶校驗碼保護(hù)總線數(shù)據(jù)的系統(tǒng)上,搭載在上面所提及的第一實施例到第三實施例中所描述的存儲器20和錯誤處理電路10。在第一實施例到第三實施例中所描述的存儲器20和錯誤處理電路10中,保存有用于每個部分字的奇偶校驗碼的信號。因此,在通過使每個部分字的比特長度與總線寬度匹配而添加奇偶校驗的情況下,在耦合至總線時,能夠?qū)⒈4嬖谄渲械钠媾夹r灤a信號按原樣輸出。
[0137]圖21是圖示了當(dāng)將根據(jù)第二實施例的存儲器20和錯誤處理電路10搭載到用奇偶校驗碼保護(hù)總線數(shù)據(jù)的系統(tǒng)時的一個配置示例的框圖。錯誤處理電路10的配置,在省略了確認(rèn)生成電路5、省略了可修正錯誤信號CER和確認(rèn)信號ACK的輸出、并且輸出與部分字相對應(yīng)的奇偶校驗RDT(奇偶校驗)這些點上,與根據(jù)第二實施例的圖6所圖示的錯誤處理電路10的配置不同。由于在錯誤處理電路10中的其它配置和操作,與圖6的錯誤處理電路10相同,因此省略對其的描述。將錯誤處理電路10輸出的部分字RDT(數(shù)據(jù))和對應(yīng)的奇偶校驗RDT(奇偶校驗),與錯誤類型ERR—起,輸出至讀出總線40并且輸入到總線主控器30中??偩€主控器30包括奇偶校驗解碼電路31、確認(rèn)生成電路32等,并且基于已經(jīng)輸入的部分字RDT(數(shù)據(jù))和對應(yīng)的奇偶校驗RDT(奇偶校驗),自己生成可修正錯誤信號CER和確認(rèn)信號ACK。
[0138]圖22是圖示了當(dāng)將根據(jù)第三實施例的存儲器20和錯誤處理電路10搭載到用奇偶校驗碼保護(hù)總線數(shù)據(jù)的系統(tǒng)時的一個配置示例的框圖。錯誤處理電路10的配置,在省略了確認(rèn)生成電路5、省略了可修正錯誤信號CER和確認(rèn)信號ACK的輸出、并且輸出與部分字對應(yīng)的奇偶校驗RDT(奇偶校驗)這些點上,與根據(jù)第三實施例的圖14所圖示的錯誤處理電路10的配置不同。由于在錯誤處理電路10中的其它配置和操作與圖14的錯誤處理電路10相同,因此省略對其的描述。將錯誤處理電路10輸出的部分字RDT(數(shù)據(jù))和對應(yīng)的奇偶校驗RDT(奇偶校驗),與錯誤類型ERR—起,輸出至讀出總線40并且輸入到總線主控器30中??偩€主控器30包括奇偶校驗解碼電路31、確認(rèn)生成電路32等,并且基于已經(jīng)輸入的部分字RDT(數(shù)據(jù))和對應(yīng)的奇偶校驗RDT(奇偶校驗),自己生成可修正錯誤信號CER和確認(rèn)信號ACK。
[0139]當(dāng)將存儲器20和錯誤處理電路10如上所提及地搭載到用奇偶校驗碼保護(hù)總線數(shù)據(jù)的系統(tǒng)時,可能將部分字RDT (數(shù)據(jù))和對應(yīng)的奇偶校驗RDT (奇偶校驗)僅僅輸出至讀出總線40,并且因此,能夠使得確認(rèn)生成電路是不必要的。
[0140]部分字的比特長度是可選的,并不限于在第二實施例和第三實施例中所描述的示例,并且可以使其與讀出總線40的數(shù)據(jù)寬度匹配。
[0141]第五實施例
[0142]〈RAM〉
[0143]雖然在上面所提及的第一實施例到第四實施例中,已經(jīng)主要對從存儲器讀出的數(shù)據(jù)進(jìn)行了描述,但是也能夠通過將ECC生成電路搭載在錯誤處理電路10上,而對正在寫入到存儲器中的數(shù)據(jù)進(jìn)行處理。
[0144]圖23是圖示了將用于將數(shù)據(jù)寫入到存儲器中的電路添加到圖21的配置的一個配置示例的框圖??偩€主控器30經(jīng)由寫入總線41,將寫入數(shù)據(jù)和奇偶校驗提供至錯誤處理電路10。錯誤處理電路10包括用于寫入數(shù)據(jù)的奇偶校驗解碼電路13,對所輸入的寫入數(shù)據(jù)和奇偶校驗執(zhí)行奇偶校驗解碼(奇偶校驗檢查),并且當(dāng)已經(jīng)判定存在錯誤時、將總線奇偶校驗錯誤發(fā)回到總線主控器30。由于寫入數(shù)據(jù)的比特長度與部分字的比特長度相同,因此,字結(jié)合電路12等待、直到完成多次執(zhí)行的寫入數(shù)據(jù)提供,配置存儲器20的一個字,并且將該字輸入到ECC生成電路11中。ECC生成電路11通過使用生成矩陣(圖10所圖示的)來生成ECC附加比特,將ECC附加比特添加至寫入數(shù)據(jù),并且將添加了 ECC附加比特的寫入數(shù)據(jù)寫入到存儲器20中。
[0145]圖24是圖示了將用于將數(shù)據(jù)寫入到存儲器中的電路添加到圖22的配置的一個配置示例的框圖??偩€主控器30經(jīng)由寫入總線41,將寫入數(shù)據(jù)和奇偶校驗提供至錯誤處理電路10。錯誤處理電路10包括用于寫入數(shù)據(jù)的奇偶校驗解碼電路13,對所輸入的寫入數(shù)據(jù)和奇偶校驗執(zhí)行奇偶校驗解碼(奇偶校驗檢查),并且當(dāng)已經(jīng)判定存在錯誤時、將總線奇偶校驗錯誤發(fā)回到總線主控器30。由于寫入數(shù)據(jù)的比特長度與部分字的比特長度相同,因此,字結(jié)合電路12等待、直到完成多次執(zhí)行的寫入數(shù)據(jù)提供,配置存儲器20的一個字,并且將該字輸入到ECC生成電路11中。ECC生成電路11通過使用生成矩陣(圖15所圖示的)來生成ECC附加比特,將ECC附加比特添加至寫入數(shù)據(jù),并且將添加了 ECC附加比特的寫入數(shù)據(jù)寫入到存儲器20中。
[0146]雖然圖23和圖24已經(jīng)對將需要寫入到存儲器中的字?jǐn)?shù)據(jù)作為多個部分字從寫入總線41提供的示例進(jìn)行了圖示,但是錯誤處理電路10可以配置為,使數(shù)量小于在圖23和圖24中所圖示的示例中所使用的部分字的數(shù)量的部分字,通過讀出-修改-寫入處理而被提供并且寫入到存儲器20中。即,一旦所提供的包括部分字的字?jǐn)?shù)據(jù)從存儲器20讀出,由錯誤修正電路3進(jìn)行修正,并且之后被提供至字結(jié)合電路12。字結(jié)合電路12將從寫入總線41提供的在已經(jīng)由錯誤修正電路3修正并且接著從錯誤修正電路3提供的主體數(shù)據(jù)中的部分?jǐn)?shù)據(jù)重新寫入,配置新的主體數(shù)據(jù),并且將該新的主體數(shù)據(jù)提供至ECC生成電路11ACC生成電路11通過使用生成矩陣(圖15所圖示的)來生成ECC附加比特,將ECC附加比特添加至新的主體數(shù)據(jù),并且將添加了 ECC附加比特的新的主體數(shù)據(jù)寫入到存儲器20中。
[0147]還能夠通過將ECC生成電路11加載到錯誤處理電路10上而對寫入到存儲器中的數(shù)據(jù)進(jìn)行處理。
[0148]部分字的比特長度是可選的,并不限于在第二實施例和第三實施例中所描述的示例,并且可以使其與讀出總線40和/或?qū)懭霐?shù)據(jù)41的數(shù)據(jù)寬度匹配。
[0149]雖然對在第一實施例到第五實施例中所描述的存儲器20和錯誤處理電路10以及在第四實施例和第五實施例中所描述的總線40和41以及總線主控器30不做特別限制,但是,半導(dǎo)體器件(數(shù)據(jù)處理電路)通過使用例如已知的半導(dǎo)體集成電路制造技術(shù),在由硅等制成的單個半導(dǎo)體襯底上形成。
[0150]在上文中,已經(jīng)基于優(yōu)選實施例,對已經(jīng)由本專利申請的發(fā)明人提出的本發(fā)明進(jìn)行了具體描述。然而,不言自明地,本發(fā)明不限于上面所提及的實施例,并且,在不脫離本發(fā)明的主旨的范圍內(nèi),可以通過各種方式對其進(jìn)行更改和修改。
[0151]例如,可以適當(dāng)改變配置了流水線的觸發(fā)器的布置。
【主權(quán)項】
1.一種數(shù)據(jù)處理電路,包括: 存儲器,在所述存儲器中存儲有由主體數(shù)據(jù)和冗余數(shù)據(jù)配置而成的字?jǐn)?shù)據(jù),并且所述字?jǐn)?shù)據(jù)以所述字?jǐn)?shù)據(jù)為單位從所述存儲器被讀出;以及錯誤處理電路, 其中所述主體數(shù)據(jù)被劃分為多個部分字, 其中所述冗余數(shù)據(jù)由錯誤修正附加比特配置而成,整個所述錯誤修正附加比特已經(jīng)基于預(yù)定錯誤修正算法從所述主體數(shù)據(jù)生成,并且所述錯誤修正附加比特包括多個奇偶校驗比特,所述多個奇偶校驗比特分別與所述部分字相對應(yīng), 其中所述錯誤處理電路包括錯誤修正電路和奇偶校驗檢查電路,從所述存儲器讀出的所述字?jǐn)?shù)據(jù)被并行地輸入到所述錯誤修正電路和所述奇偶校驗檢查電路中, 其中所述錯誤修正電路是如下這樣的電路:其通過使用被包括在所輸入的所述字?jǐn)?shù)據(jù)中的、基于所述錯誤修正算法的所述冗余數(shù)據(jù),修正被包括在所輸入的所述字?jǐn)?shù)據(jù)中的所述主體數(shù)據(jù)中的錯誤,并且 其中所述奇偶校驗檢查電路是如下這樣的電路:其基于被包括在所輸入的所述字?jǐn)?shù)據(jù)中的至少一個部分字、和與所述部分字相對應(yīng)的所述奇偶校驗比特,來執(zhí)行奇偶校驗檢查。2.根據(jù)權(quán)利要求1所述的數(shù)據(jù)處理電路, 其中所述錯誤修正算法是允許單錯誤修正-雙錯誤檢測的算法。3.根據(jù)權(quán)利要求2所述的數(shù)據(jù)處理電路, 其中所述主體數(shù)據(jù)由L個部分字配置而成,所述部分字是針對每N個比特劃分而得的;所述錯誤修正附加比特的數(shù)量為M,并且所述錯誤修正附加比特通過將所述主體數(shù)據(jù)乘以M行X (NXL)列的生成矩陣而生成, 其中所述生成矩陣包括L行,在所述L行中的每一行中,與有關(guān)的所述部分字相對應(yīng)的列為“I”,而其它列為“O”,并且所述生成矩陣的每一列均包括奇數(shù)個“I”并且由彼此不同的代碼串配置而成,并且 其中通過僅僅與作為所述奇偶校驗檢查的對象的所述部分字相對應(yīng)的列為“I”的行而生成的、所述錯誤修正附加比特中的一個錯誤修正附加比特,作為與有關(guān)的所述部分字相對應(yīng)的奇偶校驗比特被輸入到所述奇偶校驗檢查電路中。4.根據(jù)權(quán)利要求3所述的數(shù)據(jù)處理電路,進(jìn)一步包括: 讀出總線, 其中所述讀出總線包括:讀出數(shù)據(jù)總線,所述讀出數(shù)據(jù)總線在比特寬度上與所述部分字相同;以及讀出奇偶校驗信號,并且 其中所述錯誤處理電路將作為所述奇偶校驗檢查的對象的所述部分字輸出至所述讀出數(shù)據(jù)總線,并且將與有關(guān)的所述部分字相對應(yīng)的所述奇偶校驗比特輸出至所述讀出奇偶校驗信號。5.根據(jù)權(quán)利要求4所述的數(shù)據(jù)處理電路,進(jìn)一步包括: 寫入總線, 其中所述寫入總線包括:寫入數(shù)據(jù)總線,所述寫入數(shù)據(jù)總線在比特寬度上與所述部分字相同;以及寫入奇偶校驗信號, 其中所述錯誤處理電路進(jìn)一步包括字結(jié)合電路和錯誤修正代碼生成電路, 其中所述字結(jié)合電路通過將從所述寫入總線輸入的所述部分字彼此結(jié)合,配置在需要寫入所述存儲器中的所述字?jǐn)?shù)據(jù)中的所述主體數(shù)據(jù);并且將所配置的所述主體數(shù)據(jù)提供給所述錯誤修正代碼生成電路,并且 其中所述錯誤修正代碼生成電路通過使用所述生成矩陣,從所提供的所述主體數(shù)據(jù)生成所述錯誤修正附加比特;將所述錯誤修正附加比特與有關(guān)的所述主體數(shù)據(jù)結(jié)合在一起;并且從而生成需要寫入所述存儲器中的所述字?jǐn)?shù)據(jù)。6.根據(jù)權(quán)利要求3所述的數(shù)據(jù)處理電路, 其中在所述生成矩陣中,由在所述多個列中的除了分別與所述L個部分字相對應(yīng)的所述L行之外的行所配置而成的多個部分矩陣彼此相等,并且 其中所述錯誤修正電路是如下這樣的電路:其基于配置了所述字?jǐn)?shù)據(jù)和所述錯誤修正附加比特的所述L個部分字中的至少一個部分字,修正在所輸入的部分字中的錯誤。7.根據(jù)權(quán)利要求6所述的數(shù)據(jù)處理電路,進(jìn)一步包括: 讀出總線, 其中所述讀出總線包括:讀出數(shù)據(jù)總線,所述讀出數(shù)據(jù)總線在比特寬度上與所述部分字相同;以及讀出奇偶校驗信號,并且 其中所述錯誤處理電路將作為所述奇偶校驗檢查的對象的所述部分字輸出至所述讀出數(shù)據(jù)總線,并且將與有關(guān)的所述部分字相對應(yīng)的所述奇偶校驗比特輸出至所述讀出奇偶校驗信號。8.根據(jù)權(quán)利要求7所述的數(shù)據(jù)處理電路,進(jìn)一步包括: 寫入總線, 其中所述寫入總線包括:寫入數(shù)據(jù)總線,所述寫入數(shù)據(jù)總線在比特寬度上與所述部分字相同;以及寫入奇偶校驗信號, 其中所述錯誤處理電路進(jìn)一步包括字結(jié)合電路和錯誤修正代碼生成電路, 其中所述字結(jié)合電路通過將從所述寫入總線輸入的所述部分字彼此結(jié)合,配置在需要寫入所述存儲器中的所述字?jǐn)?shù)據(jù)中的所述主體數(shù)據(jù);并且將所述主體數(shù)據(jù)提供給所述錯誤修正代碼生成電路,并且 其中所述錯誤修正代碼生成電路通過使用所述生成矩陣,從所提供的所述主體數(shù)據(jù)生成所述錯誤修正附加比特;將所述錯誤修正附加比特與有關(guān)的所述主體數(shù)據(jù)結(jié)合在一起;并且從而生成需要寫入所述存儲器中的所述字?jǐn)?shù)據(jù)。9.根據(jù)權(quán)利要求1所述的數(shù)據(jù)處理電路, 其中所述存儲器為閃速存儲器。10.根據(jù)權(quán)利要求1所述的數(shù)據(jù)處理電路, 其中所述存儲器為隨機存取存儲器。11.根據(jù)權(quán)利要求1所述的數(shù)據(jù)處理電路, 其中所述數(shù)據(jù)處理電路形成在單個半導(dǎo)體襯底上。
【文檔編號】G11C29/42GK106021012SQ201610147621
【公開日】2016年10月12日
【申請日】2016年3月15日
【發(fā)明人】林伴, 林伴一
【申請人】瑞薩電子株式會社