相關(guān)申請(qǐng)的交叉引用
本申請(qǐng)要求于2016年2月26日提交的申請(qǐng)?zhí)枮?0-2016-0023622的韓國(guó)申請(qǐng)的優(yōu)先權(quán),其全部?jī)?nèi)容通過(guò)引用并入本文。
各個(gè)實(shí)施例總體涉及一種錯(cuò)誤校正電路,且更特別地涉及一種利用迭代解碼技術(shù)的錯(cuò)誤校正電路。
背景技術(shù):
數(shù)據(jù)存儲(chǔ)裝置響應(yīng)于寫(xiě)入請(qǐng)求存儲(chǔ)由外部裝置提供的數(shù)據(jù)。數(shù)據(jù)存儲(chǔ)裝置也可響應(yīng)于讀取請(qǐng)求將存儲(chǔ)的數(shù)據(jù)提供至外部裝置。使用數(shù)據(jù)存儲(chǔ)裝置的外部裝置的示例包括計(jì)算機(jī)、數(shù)碼相機(jī)、移動(dòng)電話(huà)等。數(shù)據(jù)存儲(chǔ)裝置可被嵌入在外部裝置中或被單獨(dú)地制造并隨后連接。
數(shù)據(jù)存儲(chǔ)裝置可包括校正發(fā)生在存儲(chǔ)的數(shù)據(jù)中的錯(cuò)誤位的錯(cuò)誤校正電路。
技術(shù)實(shí)現(xiàn)要素:
在實(shí)施例中,一種錯(cuò)誤校正方法可包括:執(zhí)行第一錯(cuò)誤校正操作,第一錯(cuò)誤校正操作包括通過(guò)基于奇偶校驗(yàn)矩陣計(jì)算對(duì)應(yīng)于碼字的校正子(syndrome)矩陣來(lái)執(zhí)行校正子檢查操作、根據(jù)校正子檢查操作的結(jié)果對(duì)碼字執(zhí)行解碼操作、以及迭代解碼操作直到在執(zhí)行解碼操作時(shí)獲得的碼字通過(guò)校正子檢查操作或解碼操作的迭代計(jì)數(shù)達(dá)到閾值計(jì)數(shù);將在解碼操作被迭代時(shí)計(jì)算的校正子矩陣?yán)奂又晾奂泳仃?;以及?dāng)?shù)?jì)數(shù)達(dá)到閾值計(jì)數(shù)時(shí),基于累加矩陣對(duì)通過(guò)迭代對(duì)碼字的解碼操作獲得的最后碼字執(zhí)行第二錯(cuò)誤校正操作。
在實(shí)施例中,一種錯(cuò)誤校正方法可包括:當(dāng)解碼操作被迭代至閾值計(jì)數(shù)時(shí),基于奇偶校驗(yàn)矩陣對(duì)碼字的各自位組(bitgroup)計(jì)算校正子值;基于校正子值將不滿(mǎn)足計(jì)數(shù)計(jì)數(shù)為各自位組尚未滿(mǎn)足校正子檢查的計(jì)數(shù);基于位組的不滿(mǎn)足計(jì)數(shù),在通過(guò)解碼操作獲得的最后碼字的位組中選擇預(yù)定數(shù)量的位組;選擇共同包括在所有選擇的位組中的一個(gè)或多個(gè)位;選擇性地位翻轉(zhuǎn)選擇的位;以及對(duì)位翻轉(zhuǎn)的碼字執(zhí)行校正子檢查操作。
在實(shí)施例中,根據(jù)校正子檢查操作的結(jié)果,在解碼操作被迭代至閾值計(jì)數(shù)時(shí)獲得碼字,校正子檢查操作包括計(jì)算分別對(duì)應(yīng)于碼字的校正子矩陣;將校正子矩陣?yán)奂又晾奂泳仃?;以及基于累加矩陣?duì)碼字中的最后碼字執(zhí)行位翻轉(zhuǎn)操作。
在實(shí)施例中,一種錯(cuò)誤校正電路可包括:校正子檢查單元,其被配置成通過(guò)基于奇偶校驗(yàn)矩陣計(jì)算對(duì)應(yīng)于碼字的校正子矩陣來(lái)執(zhí)行校正子檢查操作;解碼器,其被配置成根據(jù)校正子檢查操作的結(jié)果對(duì)碼字執(zhí)行解碼操作,以及迭代解碼操作直到在執(zhí)行解碼操作時(shí)獲得的碼字通過(guò)校正子檢查操作或解碼操作的迭代計(jì)數(shù)達(dá)到閾值計(jì)數(shù);累加單元,其被配置成將當(dāng)解碼操作被迭代時(shí)從校正子檢查單元計(jì)算的校正子矩陣?yán)奂又晾奂泳仃?;以及位翻轉(zhuǎn)單元,其被配置成當(dāng)?shù)?jì)數(shù)達(dá)到閾值計(jì)數(shù)時(shí)基于累加矩陣對(duì)通過(guò)對(duì)碼字的解碼操作獲得的最后碼字執(zhí)行位翻轉(zhuǎn)操作。
在實(shí)施例中,位翻轉(zhuǎn)單元在累加矩陣中選擇預(yù)定數(shù)量的累加值,基于選擇的累加值選擇最后碼字中的一個(gè)或多個(gè)位以及選擇性地位翻轉(zhuǎn)選擇的位,以及校正子檢查單元對(duì)位翻轉(zhuǎn)的碼字執(zhí)行校正子檢查操作。
在實(shí)施例中,位翻轉(zhuǎn)單元通過(guò)以降序排列累加矩陣的累加值來(lái)選擇預(yù)定數(shù)量的累加值。
在實(shí)施例中,位翻轉(zhuǎn)單元通過(guò)以降序排列累加矩陣的部分累加值來(lái)選擇預(yù)定數(shù)量的累加值,各自部分累加值具有在對(duì)應(yīng)于最后碼字的最后校正子矩陣中的不滿(mǎn)足校正子檢查的相應(yīng)校正子值。
在實(shí)施例中,位翻轉(zhuǎn)單元在奇偶校驗(yàn)矩陣的行中選擇對(duì)應(yīng)于選擇的累加值的一個(gè)或多個(gè)行,搜索在選擇的行中共同放置預(yù)定值的一個(gè)或多個(gè)位置,以及在最后碼字中選擇對(duì)應(yīng)于搜索位置的一個(gè)或多個(gè)位。
在實(shí)施例中,位翻轉(zhuǎn)單元在最后碼字的位組中選擇分別對(duì)應(yīng)于選擇的累加值的位組,并選擇包括在所有選擇的位組中的一個(gè)或多個(gè)位。
在實(shí)施例中,位翻轉(zhuǎn)單元對(duì)選擇的位的子集合的位翻轉(zhuǎn)進(jìn)行迭代直到位翻轉(zhuǎn)的碼字通過(guò)校正子檢查操作。
附圖說(shuō)明
圖1是說(shuō)明根據(jù)實(shí)施例的錯(cuò)誤校正電路的框圖。
圖2是說(shuō)明圖1所示的校正子檢查單元的校正子檢查操作和累加單元的操作的簡(jiǎn)圖。
圖3是說(shuō)明圖1所示的位翻轉(zhuǎn)單元的操作的簡(jiǎn)圖。
圖4是說(shuō)明圖1所示的位翻轉(zhuǎn)單元的操作的簡(jiǎn)圖。
圖5是說(shuō)明圖1所示的位翻轉(zhuǎn)單元的操作的簡(jiǎn)圖。
圖6是說(shuō)明圖1的錯(cuò)誤校正電路的操作方法的流程圖。
圖7是說(shuō)明圖1的錯(cuò)誤校正電路執(zhí)行第二錯(cuò)誤校正操作的方法的流程圖。
圖8是說(shuō)明圖1的錯(cuò)誤校正電路執(zhí)行第二錯(cuò)誤校正操作的方法的流程圖。
圖9是說(shuō)明應(yīng)用根據(jù)實(shí)施例的錯(cuò)誤校正電路的數(shù)據(jù)存儲(chǔ)裝置的框圖。
圖10是說(shuō)明應(yīng)用圖9的數(shù)據(jù)存儲(chǔ)裝置的數(shù)據(jù)處理系統(tǒng)的框圖。
具體實(shí)施方式
在下文中,將通過(guò)本發(fā)明的示例性實(shí)施例參照附圖描述根據(jù)本發(fā)明的數(shù)據(jù)存儲(chǔ)裝置及其操作方法。然而,本發(fā)明可以不同的形式呈現(xiàn)且不應(yīng)被解釋為限于本文所闡述的實(shí)施例。相反,提供這些實(shí)施例以詳細(xì)地描述本發(fā)明以達(dá)到在本發(fā)明所屬領(lǐng)域的技術(shù)人員能夠?qū)嵤┍景l(fā)明的技術(shù)概念的程度。
將理解的是,本發(fā)明的實(shí)施例不限于附圖中所示的細(xì)節(jié),附圖不一定按比例繪制,并且在一些情況下,可以夸大比例以便更清楚地描述本發(fā)明的某些特征。雖然使用了特定術(shù)語(yǔ),但是將理解的是,所使用的術(shù)語(yǔ)僅用于描述特定實(shí)施例,并且不旨在限制本發(fā)明的范圍。
圖1是說(shuō)明根據(jù)實(shí)施例的錯(cuò)誤校正電路100的框圖。
錯(cuò)誤校正電路100可執(zhí)行第一錯(cuò)誤校正操作和第二錯(cuò)誤校正操作。當(dāng)通過(guò)第一錯(cuò)誤校正操作沒(méi)有校正所有錯(cuò)誤位時(shí),錯(cuò)誤校正電路100可執(zhí)行第二錯(cuò)誤校正操作。在圖1中,由虛線(xiàn)表示的信息傳輸可與第一錯(cuò)誤校正操作相關(guān)聯(lián),由實(shí)線(xiàn)表示的信息傳輸可與第二錯(cuò)誤校正操作相關(guān)聯(lián)。
詳細(xì)地,錯(cuò)誤校正電路100可通過(guò)根據(jù)校正子檢查操作的結(jié)果將解碼操作迭代至閾值計(jì)數(shù)m來(lái)執(zhí)行第一錯(cuò)誤校正操作。錯(cuò)誤校正電路100可將在第一錯(cuò)誤校正操作中每當(dāng)?shù)獯a操作時(shí)計(jì)算的校正子矩陣s(i)累加至累加矩陣t(i)。錯(cuò)誤校正電路100可通過(guò)基于累加矩陣t(m)選擇性地位翻轉(zhuǎn)來(lái)自當(dāng)?shù)谝诲e(cuò)誤校正操作的迭代計(jì)數(shù)達(dá)到閾值計(jì)數(shù)m時(shí)最后生成的最后碼字c(m)的具有高可能性為錯(cuò)誤位的位來(lái)執(zhí)行第二錯(cuò)誤校正操作。
錯(cuò)誤校正電路100可包括校正子檢查單元110、解碼器120、累加單元130和位翻轉(zhuǎn)單元140。
校正子檢查單元110可通過(guò)基于奇偶校驗(yàn)矩陣計(jì)算對(duì)應(yīng)于碼字c(i)的校正子矩陣s(i)來(lái)執(zhí)行校正子檢查操作。校正子檢查單元110可執(zhí)行校正子檢查操作以確定碼字c(i)是否包括錯(cuò)誤位。
解碼器120可根據(jù)校正子檢查單元110的校正子檢查操作的結(jié)果對(duì)碼字c(i)執(zhí)行解碼操作。當(dāng)對(duì)碼字c(i)執(zhí)行解碼操作時(shí)獲得的碼字c(i+1)可被輸入至校正子檢查單元110,可通過(guò)校正子檢查單元110再次執(zhí)行校正子檢查操作。解碼器120可根據(jù)對(duì)碼字c(i+1)的校正子檢查操作的結(jié)果,即碼字c(i+1)是否包括錯(cuò)誤位來(lái)迭代對(duì)碼字c(i+1)的解碼操作。解碼器120可迭代解碼操作直到在執(zhí)行解碼操作時(shí)獲得的碼字通過(guò)校正子檢查操作。此外,解碼器120可迭代解碼操作直到解碼操作的迭代計(jì)數(shù)達(dá)到閾值計(jì)數(shù)m。
累加單元130可將當(dāng)?shù)獯a操作時(shí)從校正子檢查單元110計(jì)算的校正子矩陣s(i)累加至累加矩陣t(i)。
目前為止描述的、其中校正子檢查單元110的校正子檢查操作和解碼器120的解碼操作被迭代的進(jìn)程可被包括在第一錯(cuò)誤校正操作中。如果直到解碼操作的迭代計(jì)數(shù)達(dá)到閾值計(jì)數(shù)m時(shí)沒(méi)有通過(guò)校正子檢查操作,則可結(jié)束第一錯(cuò)誤校正操作,并且可開(kāi)始下面將描述的第二錯(cuò)誤校正操作。
首先,累加單元130可將累加矩陣t(m)傳輸至位翻轉(zhuǎn)單元140。累加矩陣t(m)可以是其中校正子矩陣s(i)被累加直到解碼操作的迭代計(jì)數(shù)達(dá)到閾值計(jì)數(shù)m的矩陣。
位翻轉(zhuǎn)單元140可基于累加矩陣t(m)對(duì)當(dāng)解碼操作的迭代計(jì)數(shù)達(dá)到閾值計(jì)數(shù)m時(shí)通過(guò)解碼操作獲得的最后碼字c(m)執(zhí)行位翻轉(zhuǎn)操作。位翻轉(zhuǎn)單元140可通過(guò)對(duì)最后碼字c(m)的位翻轉(zhuǎn)操作生成位翻轉(zhuǎn)的碼字cbf。位翻轉(zhuǎn)單元140可將位翻轉(zhuǎn)的碼字cbf傳輸至校正子檢查單元110。位翻轉(zhuǎn)單元140可通過(guò)選擇性地位翻轉(zhuǎn)最后碼字c(m)的位來(lái)迭代位翻轉(zhuǎn)操作直到位翻轉(zhuǎn)的碼字cbf通過(guò)校正子檢查操作。
詳細(xì)地,位翻轉(zhuǎn)單元140可從累加矩陣t(m)中選擇預(yù)定數(shù)量的累加值。位翻轉(zhuǎn)單元140可基于選擇的累加值在最后碼字c(m)中標(biāo)記或選擇一個(gè)或多個(gè)位。位翻轉(zhuǎn)單元140可通過(guò)選擇性地位翻轉(zhuǎn)標(biāo)記位而生成位翻轉(zhuǎn)的碼字cbf。位翻轉(zhuǎn)單元140可對(duì)標(biāo)記位的子集合迭代位翻轉(zhuǎn)直到位翻轉(zhuǎn)的碼字cbf通過(guò)校正子檢查單元110的校正子檢查操作。
位翻轉(zhuǎn)單元140從累加矩陣t(m)選擇累加值的方法如下。例如,位翻轉(zhuǎn)單元140可通過(guò)以降序排列累加矩陣t(m)的累加值來(lái)選擇預(yù)定數(shù)量的累加值。根據(jù)實(shí)施例,位翻轉(zhuǎn)單元140可通過(guò)以降序排列累加矩陣t(m)的部分累加值來(lái)選擇預(yù)定數(shù)量的累加值,各自部分累加值可以是其在對(duì)應(yīng)于最后碼字c(m)的最后校正子矩陣中的相應(yīng)校正子值不滿(mǎn)足校正子檢查的累加值。
位翻轉(zhuǎn)單元140基于選擇的累加值標(biāo)記最后碼字c(m)中的一個(gè)或多個(gè)位的方法如下。位翻轉(zhuǎn)單元140可在奇偶校驗(yàn)矩陣的行中選擇與選擇的累加值對(duì)應(yīng)的一個(gè)或多個(gè)行。位翻轉(zhuǎn)單元140可搜索在選擇的行中共同放置預(yù)定值“1”的一個(gè)或多個(gè)位置。位翻轉(zhuǎn)單元140可在最后碼字c(m)中標(biāo)記對(duì)應(yīng)于搜索位置的一個(gè)或多個(gè)位。
根據(jù)實(shí)施例,位翻轉(zhuǎn)單元140可在最后碼字c(m)的位組中選擇分別對(duì)應(yīng)于選擇的累加值的位組,并且可標(biāo)記共同包括在所有選擇的位組中的一個(gè)或多個(gè)位。最后碼字c(m)的位組可分別對(duì)應(yīng)于與最后碼字c(m)相對(duì)應(yīng)的最后校正子矩陣的校正子值。
根據(jù)實(shí)施例,解碼器120可根據(jù)對(duì)位翻轉(zhuǎn)的碼字cbf的校正子檢查操作的結(jié)果對(duì)位翻轉(zhuǎn)的碼字cbf執(zhí)行解碼操作。解碼器120可以與執(zhí)行第一錯(cuò)誤校正操作的情況相同的方式將對(duì)位翻轉(zhuǎn)的碼字cbf的解碼操作迭代至預(yù)定計(jì)數(shù)。
校正子檢查單元110和解碼器120可基于迭代解碼方案的錯(cuò)誤校正算法來(lái)操作。例如,校正子檢查單元110和解碼器120可基于低密度奇偶校驗(yàn)(ldpc)算法來(lái)操作。然而,將注意的是,實(shí)施例不限于此。
綜上,錯(cuò)誤校正電路100可通過(guò)在迭代解碼操作中生成的校正子矩陣s(i)的累加矩陣t(m)標(biāo)記最后碼字c(m)中具有高可能性為錯(cuò)誤位的位并且通過(guò)選擇性地位翻轉(zhuǎn)標(biāo)記位而提供改善的錯(cuò)誤校正能力。
圖2是說(shuō)明圖1所示的校正子檢查單元110的校正子檢查操作以及圖1所示的累加單元130的操作的簡(jiǎn)圖。
校正子檢查單元110可通過(guò)基于奇偶校驗(yàn)矩陣h計(jì)算對(duì)應(yīng)于碼字c(i)的校正子矩陣s(i)來(lái)執(zhí)行校正子檢查操作。
詳細(xì)地,校正子檢查單元110可通過(guò)將奇偶校驗(yàn)矩陣h和碼字c(i)的列向量相乘來(lái)計(jì)算校正子矩陣s(i)。奇偶校驗(yàn)矩陣h的行可定義碼字c(i)的各自位組,并且位組可分別對(duì)應(yīng)于校正子矩陣s(i)的校正子值s0至s4。即,可以使用奇偶校驗(yàn)矩陣h的各自行使得生成對(duì)應(yīng)于碼字c(i)中的各自位組的校正子值。例如,奇偶校驗(yàn)矩陣h的第一行可定義由碼字c(i)的第一位c0、第四位c3、第五位c4和第六位c5構(gòu)成的第一位組,并且可使用奇偶校驗(yàn)矩陣h的第一行使得生成作為第一位組的校正子值的第一校正子值s0。
當(dāng)碼字c(i)不包括錯(cuò)誤位時(shí),校正子矩陣s(i)可被計(jì)算為“0”矩陣。然而,當(dāng)碼字c(i)包括錯(cuò)誤位時(shí),校正子矩陣s(i)可以不是“0”矩陣。因此,解碼器120可迭代解碼操作直到通過(guò)對(duì)碼字c(i)的校正子檢查操作,即,對(duì)應(yīng)于碼字c(i)的校正子矩陣s(i)變?yōu)椤?”。然而,解碼器120可不無(wú)限地迭代解碼操作并且可迭代解碼操作直到解碼操作的迭代計(jì)數(shù)達(dá)到閾值計(jì)數(shù)m。
當(dāng)在第一錯(cuò)誤校正操作中解碼操作被迭代至閾值計(jì)數(shù)m時(shí),“m”個(gè)碼字c(i)可從解碼器120中生成,對(duì)應(yīng)于生成的“m”個(gè)碼字c(i)的“m”個(gè)校正子矩陣也可被計(jì)算?!癿”個(gè)校正子矩陣可被累加至累加矩陣t(i)。
綜上所述,累加矩陣t(i)的累加值t0到t4可以是當(dāng)解碼操作被迭代至閾值計(jì)數(shù)m時(shí)碼字c(i)的位組不滿(mǎn)足校正子檢查的計(jì)數(shù)。因此,由于最后累加矩陣t(m)的累加值大,所以對(duì)應(yīng)的位組可具有與錯(cuò)誤位相關(guān)的高可能性。
圖3是說(shuō)明圖1所示的位翻轉(zhuǎn)單元140的操作的簡(jiǎn)圖。在下面的描述中,第一次錯(cuò)誤校正操作中的解碼操作的閾值迭代計(jì)數(shù)m是“15”,然而,閾值迭代計(jì)數(shù)m不限于“15”,并且可以具有其它值。
參照?qǐng)D3,其示出通過(guò)解碼器120獲得的最后碼字c(14),對(duì)應(yīng)于最后碼字c(14)、未通過(guò)校正子檢查操作即不是“0”矩陣的最后校正子矩陣s(14)以及將針對(duì)最后校正子矩陣s(14)的校正子矩陣?yán)奂又疗涞睦奂泳仃噒(14)。
首先,位翻轉(zhuǎn)單元140可通過(guò)以降序排列累加矩陣t(14)的累加值來(lái)選擇預(yù)定數(shù)量的累加值。例如,位翻轉(zhuǎn)單元140可在包括在累加矩陣t(14)中的5個(gè)累加值中選擇兩個(gè)最大累加值,即“12”和“10”。
位翻轉(zhuǎn)單元140可基于選擇的累加值標(biāo)記最后碼字c(14)中具有高可能性為錯(cuò)誤位的位。詳細(xì)地,位翻轉(zhuǎn)單元140可在奇偶校驗(yàn)矩陣h的行中選擇對(duì)應(yīng)于選擇的累加值的第一行和第二行。
在這方面,對(duì)應(yīng)于選擇的第一行和第二行的第一位組和第二位組可具有與錯(cuò)誤位相關(guān)的高可能性。因此,共同包括在第一位組和第二位組中的位可具有高可能性為錯(cuò)誤位。
為了發(fā)現(xiàn)具有高可能性為錯(cuò)誤位的位,位翻轉(zhuǎn)單元140可搜索在奇偶校驗(yàn)矩陣h的第一行和第二行中共同放置“1”的位置。位翻轉(zhuǎn)單元140可標(biāo)記對(duì)應(yīng)于搜索位置的第一位c0和第六位c5,即最后碼字c(14)中的第一位置和第六位置。
位翻轉(zhuǎn)單元140可通過(guò)選擇性地位翻轉(zhuǎn)標(biāo)記的位c0和c5而生成位翻轉(zhuǎn)的碼字cbf。位翻轉(zhuǎn)單元140可迭代對(duì)標(biāo)記的位c0和c5的子集合{c0}、{c5}和{c0,c5}的位翻轉(zhuǎn)直到位翻轉(zhuǎn)的碼字cbf通過(guò)校正子檢查操作。在圖3中,由于針對(duì)其中標(biāo)記的位c0和c5兩者都被位翻轉(zhuǎn)的碼字cbf(c0,c5)的校正子矩陣s被計(jì)算為“0”矩陣,所以可通過(guò)校正子檢查操作。
綜上,錯(cuò)誤校正電路100可通過(guò)基于累加矩陣t(m)的第二錯(cuò)誤校正操作有效地校正在第一錯(cuò)誤校正操作中未被校正的錯(cuò)誤位。
根據(jù)實(shí)施例,位翻轉(zhuǎn)單元140從累加矩陣t(m)選擇累加值的預(yù)定數(shù)量可以是“1”。即,位翻轉(zhuǎn)單元140可從累加矩陣t(m)僅選擇最大累加值。在這種情況下,位翻轉(zhuǎn)單元140可通過(guò)選擇性地位翻轉(zhuǎn)最后碼字c(m)中對(duì)應(yīng)于選擇的最大累加值的位組的位來(lái)執(zhí)行第二錯(cuò)誤校正操作。例如,在圖3中,位翻轉(zhuǎn)單元140可迭代對(duì)在最后碼字c(14)中對(duì)應(yīng)于最大累加值“12”的第一位c0、第四位c3、第五位c4和第六位c5的“24-1”個(gè)子集合的位翻轉(zhuǎn)。
圖4是說(shuō)明圖1所示的位翻轉(zhuǎn)單元140的操作的簡(jiǎn)圖。
根據(jù)實(shí)施例,位翻轉(zhuǎn)單元140可以在累加矩陣t(14)中選擇預(yù)定數(shù)量的累加值的方法中與圖3不同地操作。位翻轉(zhuǎn)單元140可確定在第二錯(cuò)誤校正操作開(kāi)始前一刻未滿(mǎn)足校正子檢查的位組可與錯(cuò)誤位進(jìn)一步相關(guān)。
參照?qǐng)D4,位翻轉(zhuǎn)單元140可通過(guò)以降序排列累加矩陣t(14)的部分累加值選擇預(yù)定數(shù)量的累加值。例如,位翻轉(zhuǎn)單元140可選擇包括在累加矩陣t(14)中的3個(gè)部分累加值(諸如“12”、“3”和“8”)中的2個(gè)最大累加值(諸如“12”和“8”)。部分累加值“12”、“3”和“8”中的每個(gè)可具有在最后校正子矩陣s(14)中不滿(mǎn)足校正子檢查的對(duì)應(yīng)校正子值(諸如“1”)。
位翻轉(zhuǎn)單元140可基于選擇的累加值選擇性地位翻轉(zhuǎn)最后碼字c(14)中具有高可能性為錯(cuò)誤位的位。即,位翻轉(zhuǎn)單元140可基于選擇的累加值“12”和“8”選擇性地位翻轉(zhuǎn)最后碼字c(14)中的第一位c0和第五位c4。由于對(duì)此的操作方法與上述參照?qǐng)D3的操作方法基本上類(lèi)似,所以本文將省略其詳細(xì)的說(shuō)明。
圖5是說(shuō)明圖1所示的位翻轉(zhuǎn)單元140的操作的簡(jiǎn)圖。
與以上參照?qǐng)D3和圖4描述的方法不同,根據(jù)實(shí)施例,位翻轉(zhuǎn)單元140可記憶關(guān)于分別對(duì)應(yīng)于奇偶校驗(yàn)矩陣h的行的位組(例如包括在各自位組中的位)的信息。在這種情況下,位翻轉(zhuǎn)操作可通過(guò)比以上參照?qǐng)D3和圖4描述的方法更簡(jiǎn)單的方法來(lái)執(zhí)行。
在當(dāng)在累加矩陣t(m)中選擇第一累加值t0和第二累加值t1的情況下,位翻轉(zhuǎn)單元140可選擇對(duì)應(yīng)于累加值t0和t1的第一位組和第二位組,并可立即標(biāo)記共同包括在第一位組和第二位組中的位c0和c5。位翻轉(zhuǎn)單元140可對(duì)在最后碼字c(m)中標(biāo)記的位c0和c5執(zhí)行位翻轉(zhuǎn)操作。
圖6是說(shuō)明圖1的錯(cuò)誤校正電路100的操作方法的流程圖。
在步驟s10處,錯(cuò)誤校正電路100可接收初始碼字。
在步驟s100處,錯(cuò)誤校正電路100可對(duì)碼字執(zhí)行第一錯(cuò)誤校正操作。步驟s100可包括步驟s110至s150。
在步驟s110處,校正子檢查單元110可通過(guò)基于奇偶校驗(yàn)矩陣計(jì)算對(duì)應(yīng)于碼字的校正子矩陣來(lái)執(zhí)行校正子檢查操作。
在步驟s120處,校正子檢查單元110可基于校正子矩陣確定碼字是否已經(jīng)通過(guò)校正子檢查操作。當(dāng)校正子矩陣為“0”時(shí),校正子檢查單元110可確定碼字已經(jīng)通過(guò)校正子檢查操作,并且進(jìn)程可作為校正成功被結(jié)束。當(dāng)校正子矩陣不為“0”時(shí),校正子檢查單元110可確定碼字尚未通過(guò)校正子檢查操作,并且進(jìn)程可繼續(xù)至步驟s130。
在步驟s130處,累加單元130可將校正子矩陣?yán)奂又晾奂泳仃?。初始累加矩陣可以是?”矩陣。
在步驟s140處,解碼器120可確定解碼操作的迭代計(jì)數(shù)是否已經(jīng)達(dá)到閾值計(jì)數(shù)。當(dāng)?shù)?jì)數(shù)尚未達(dá)到閾值計(jì)數(shù)時(shí),進(jìn)程可繼續(xù)至步驟s150。
在步驟s150處,解碼器120可對(duì)碼字執(zhí)行解碼操作并且可增加迭代計(jì)數(shù)。然后,進(jìn)程可繼續(xù)至步驟s110。
在步驟s110處,校正子檢查單元110可對(duì)當(dāng)執(zhí)行解碼操作時(shí)獲得的碼字執(zhí)行校正子檢查操作。即,解碼器120可迭代解碼操作直到當(dāng)解碼操作被執(zhí)行時(shí)獲得的碼字通過(guò)校正子檢查操作或迭代計(jì)數(shù)達(dá)到閾值計(jì)數(shù)。
在步驟s140處,當(dāng)?shù)?jì)數(shù)已經(jīng)達(dá)到閾值計(jì)數(shù)時(shí),進(jìn)程可繼續(xù)至步驟s200。
在步驟s200處,錯(cuò)誤校正電路100可基于累加矩陣對(duì)通過(guò)解碼操作獲得的最后碼字執(zhí)行第二錯(cuò)誤校正操作。下面將參照?qǐng)D7和圖8詳細(xì)地描述用于執(zhí)行第二錯(cuò)誤校正操作的方法。
圖7是說(shuō)明圖1的錯(cuò)誤校正電路100執(zhí)行第二錯(cuò)誤校正操作的方法的流程圖。圖7所示的方法可對(duì)應(yīng)于以上參照?qǐng)D3和圖4描述的方法。
在步驟s210處,位翻轉(zhuǎn)單元140可從累加矩陣中選擇預(yù)定數(shù)量的累加值。例如,位翻轉(zhuǎn)單元140可通過(guò)以降序排列累加矩陣的累加值來(lái)選擇預(yù)定數(shù)量的累加值。根據(jù)實(shí)施例,位翻轉(zhuǎn)單元140可通過(guò)以降序排列累加矩陣的部分累加值來(lái)選擇預(yù)定數(shù)量的累加值,各自部分累加值可以是具有在對(duì)應(yīng)于最后碼字的最后校正子矩陣中的不滿(mǎn)足校正子檢查的相應(yīng)校正子值的累加值。
在步驟s220處,位翻轉(zhuǎn)單元140可在奇偶校驗(yàn)矩陣的行中選擇對(duì)應(yīng)于選擇的累加值的一個(gè)或多個(gè)行。
在步驟s230處,位翻轉(zhuǎn)單元140可搜索在選擇的行中共同放置“1”的一個(gè)或多個(gè)位置。
在步驟s240處,位翻轉(zhuǎn)單元140可標(biāo)記或選擇最后碼字中對(duì)應(yīng)于搜索位置的一個(gè)或多個(gè)位。
在步驟s250處,位翻轉(zhuǎn)單元140可選擇性地位翻轉(zhuǎn)最后碼字中的標(biāo)記位。位翻轉(zhuǎn)單元140可位翻轉(zhuǎn)標(biāo)記位的子集合。
在步驟s260處,校正子檢查單元110可對(duì)位翻轉(zhuǎn)的碼字執(zhí)行校正子檢查操作。
在步驟s270處,校正子檢查單元110可基于對(duì)應(yīng)于位翻轉(zhuǎn)的碼字的校正子矩陣確定位翻轉(zhuǎn)的碼字是否已經(jīng)通過(guò)校正子檢查操作。當(dāng)校正子矩陣為“0”時(shí),校正子檢查單元110可確定位翻轉(zhuǎn)的碼字已經(jīng)通過(guò)校正子檢查操作,并且進(jìn)程可作為校正成功被結(jié)束。當(dāng)校正子矩陣不為“0”時(shí),校正子檢查單元110可確定位翻轉(zhuǎn)的碼字尚未通過(guò)校正子檢查操作,進(jìn)程可繼續(xù)至步驟s280。
在步驟s280處,位翻轉(zhuǎn)單元140可確定標(biāo)記位的所有子集合是否被位翻轉(zhuǎn)。當(dāng)所有子集合被位翻轉(zhuǎn)時(shí),進(jìn)程可作為校正失敗被結(jié)束。當(dāng)子集合沒(méi)有被全部位翻轉(zhuǎn)時(shí),進(jìn)程可繼續(xù)至步驟s250。
綜上,位翻轉(zhuǎn)單元140可迭代位翻轉(zhuǎn)操作直到位翻轉(zhuǎn)的碼字通過(guò)校正子檢查操作或者標(biāo)記位的所有子集合都被位翻轉(zhuǎn)。
圖8是說(shuō)明圖1的錯(cuò)誤校正電路100執(zhí)行第二錯(cuò)誤校正操作的方法的流程圖。圖8所示的方法可對(duì)應(yīng)于以上參照?qǐng)D5描述的方法。
在圖8所示的進(jìn)程中,步驟s310和s340至s370可分別與圖7的步驟s210和s250至s280基本上類(lèi)似。因此,下面將描述與圖7的進(jìn)程的主要區(qū)別。
在步驟s320處,位翻轉(zhuǎn)單元140可在最后碼字的位組中選擇分別對(duì)應(yīng)于選擇的累加值的位組。最后碼字的位組可分別對(duì)應(yīng)于與最后碼字對(duì)應(yīng)的最后校正子矩陣的校正子值。
在步驟s330處,位翻轉(zhuǎn)單元140可標(biāo)記共同包括在所有選擇的位組中的一個(gè)或多個(gè)位。
圖9是說(shuō)明應(yīng)用根據(jù)實(shí)施例的錯(cuò)誤校正電路100的數(shù)據(jù)存儲(chǔ)裝置1000的框圖。
數(shù)據(jù)存儲(chǔ)裝置1000可被配置成響應(yīng)于來(lái)自外部裝置的寫(xiě)入請(qǐng)求存儲(chǔ)從外部裝置提供的數(shù)據(jù)。而且,數(shù)據(jù)存儲(chǔ)裝置1000可被配置成響應(yīng)于來(lái)自外部裝置的讀取請(qǐng)求向外部裝置提供存儲(chǔ)的數(shù)據(jù)。
數(shù)據(jù)存儲(chǔ)裝置1000可通過(guò)個(gè)人計(jì)算機(jī)存儲(chǔ)卡國(guó)際協(xié)會(huì)(pcmcia)卡、標(biāo)準(zhǔn)閃存(cf)卡、智能媒體卡、記憶棒、各種多媒體卡(mmc、emmc、rs-mmc和微型-mmc)、各種安全數(shù)字卡(sd、迷你-sd和微型-sd)、通用閃速存儲(chǔ)器(ufs)、固態(tài)驅(qū)動(dòng)器(ssd)等來(lái)配置。
數(shù)據(jù)存儲(chǔ)裝置1000可包括控制器1100以及存儲(chǔ)介質(zhì)1200。
控制器1100可控制主機(jī)裝置1500和存儲(chǔ)介質(zhì)1200之間的數(shù)據(jù)交換??刂破?100可包括處理器1110、隨機(jī)存取存儲(chǔ)器(ram)1120、只讀存儲(chǔ)器(rom)1130、錯(cuò)誤校正碼(ecc)單元1140、主機(jī)接口1150和存儲(chǔ)介質(zhì)接口1160。
處理器1110可以控制控制器1100的一般操作。處理器1110可根據(jù)來(lái)自主機(jī)裝置1500的數(shù)據(jù)處理請(qǐng)求將數(shù)據(jù)存儲(chǔ)在存儲(chǔ)介質(zhì)1200中并且從存儲(chǔ)介質(zhì)1200讀取存儲(chǔ)的數(shù)據(jù)。為了高效地管理存儲(chǔ)介質(zhì)1200,處理器1110可控制數(shù)據(jù)存儲(chǔ)裝置1000的內(nèi)部操作,諸如合并操作、磨損均衡操作等。
ram1120可存儲(chǔ)通過(guò)處理器1110使用的程序和程序數(shù)據(jù)。ram1120可在將從主機(jī)接口1150接收的數(shù)據(jù)傳送至存儲(chǔ)介質(zhì)1200之前臨時(shí)地存儲(chǔ)從主機(jī)接口1150接收的數(shù)據(jù),并可在將從存儲(chǔ)介質(zhì)1200接收的數(shù)據(jù)傳送至主機(jī)裝置1500之前臨時(shí)地存儲(chǔ)從存儲(chǔ)介質(zhì)1200接收的數(shù)據(jù)。
rom1130可存儲(chǔ)通過(guò)處理器1110讀取的程序代碼。程序代碼可包括待被處理器1110處理的命令,使得處理器1110可控制控制器1100的內(nèi)部單元。
ecc單元1140可編碼存儲(chǔ)在存儲(chǔ)介質(zhì)1200中的數(shù)據(jù)并可解碼從存儲(chǔ)介質(zhì)1200中讀取的數(shù)據(jù)。ecc單元1140可根據(jù)ecc算法檢測(cè)并校正發(fā)生在數(shù)據(jù)中的錯(cuò)誤。
ecc單元1140可包括圖1的錯(cuò)誤校正電路100。ecc單元1140可通過(guò)根據(jù)校正子檢查操作的結(jié)果對(duì)從存儲(chǔ)介質(zhì)1200讀取的碼字迭代解碼操作至閾值計(jì)數(shù)來(lái)執(zhí)行第一錯(cuò)誤校正操作。ecc單元1140可將當(dāng)在第一錯(cuò)誤校正操作中迭代解碼操作時(shí)計(jì)算的校正子矩陣?yán)奂又晾奂泳仃?。?dāng)?shù)谝诲e(cuò)誤校正操作的迭代計(jì)數(shù)達(dá)到閾值計(jì)數(shù)m時(shí),ecc單元1140可通過(guò)基于累加矩陣選擇性地位翻轉(zhuǎn)來(lái)自最后碼字的具有高可能性為錯(cuò)誤位的位來(lái)執(zhí)行第二錯(cuò)誤校正操作。
主機(jī)接口1150可與主機(jī)裝置1500交換數(shù)據(jù)處理請(qǐng)求、數(shù)據(jù)等。
存儲(chǔ)介質(zhì)接口1160可向存儲(chǔ)介質(zhì)1200傳輸控制信號(hào)和數(shù)據(jù)。存儲(chǔ)介質(zhì)接口1160可接收來(lái)自存儲(chǔ)介質(zhì)1200的數(shù)據(jù)。存儲(chǔ)介質(zhì)接口1160可通過(guò)多個(gè)通道ch0至chn與存儲(chǔ)介質(zhì)1200聯(lián)接。
存儲(chǔ)介質(zhì)1200可包括多個(gè)非易失性存儲(chǔ)器裝置nvm0至nvmn。多個(gè)非易失性存儲(chǔ)器裝置nvm0至nvmn中的每個(gè)可根據(jù)控制器1100的控制執(zhí)行寫(xiě)入操作和讀取操作。
非易失性存儲(chǔ)器裝置可包括諸如以下的閃速存儲(chǔ)器中的一個(gè):nand閃存或nor閃存、鐵電隨機(jī)存取存儲(chǔ)器(feram)、相變隨機(jī)存取存儲(chǔ)器(pcram)、磁阻隨機(jī)存取存儲(chǔ)器(mram)、電阻式隨機(jī)存取存儲(chǔ)器(reram)等。
圖10是說(shuō)明其中將圖9的數(shù)據(jù)存儲(chǔ)裝置1000應(yīng)用為數(shù)據(jù)存儲(chǔ)裝置2300的數(shù)據(jù)處理系統(tǒng)2000的框圖。圖9的數(shù)據(jù)存儲(chǔ)裝置1000可被實(shí)現(xiàn)為圖10中的數(shù)據(jù)存儲(chǔ)裝置2300。
數(shù)據(jù)處理系統(tǒng)2000可包括計(jì)算機(jī)、筆記本電腦、上網(wǎng)本、智能電話(huà)、數(shù)字tv、數(shù)字照相機(jī)、導(dǎo)航儀等。數(shù)據(jù)處理系統(tǒng)2000可包括主處理器2100、主存儲(chǔ)器裝置2200、數(shù)據(jù)存儲(chǔ)裝置2300和輸入/輸出裝置2400。數(shù)據(jù)處理系統(tǒng)2000的內(nèi)部單元可通過(guò)系統(tǒng)總線(xiàn)2500交換數(shù)據(jù)、控制信號(hào)等。
主處理器2100可控制數(shù)據(jù)處理系統(tǒng)2000的一般操作。主處理器2100可以是諸如微處理器的中央處理單元。主處理器2100可在主存儲(chǔ)器裝置2200上執(zhí)行操作系統(tǒng)、應(yīng)用、裝置驅(qū)動(dòng)程序等的軟件。
主存儲(chǔ)器裝置2200可存儲(chǔ)被主處理器2100使用的程序和程序數(shù)據(jù)。主存儲(chǔ)器裝置2200可臨時(shí)地存儲(chǔ)被傳輸至數(shù)據(jù)存儲(chǔ)裝置2300和輸入/輸出裝置2400的數(shù)據(jù)。
數(shù)據(jù)存儲(chǔ)裝置2300可包括控制器2310和存儲(chǔ)介質(zhì)2320。數(shù)據(jù)存儲(chǔ)裝置2300可以與圖9所示的數(shù)據(jù)存儲(chǔ)裝置1000基本上相似的方式被配置和操作。
輸入/輸出裝置2400可包括能夠與用戶(hù)交換數(shù)據(jù),諸如從用戶(hù)接收用于控制數(shù)據(jù)處理系統(tǒng)2000的命令或向用戶(hù)提供處理結(jié)果的鍵盤(pán)、掃描儀、觸摸屏、屏幕監(jiān)視器、打印機(jī)、鼠標(biāo)等。
根據(jù)實(shí)施例,數(shù)據(jù)處理系統(tǒng)2000可通過(guò)諸如局域網(wǎng)(lan)、廣域網(wǎng)(wan)、無(wú)線(xiàn)網(wǎng)絡(luò)等的網(wǎng)絡(luò)2600與至少一個(gè)服務(wù)器2700通信。數(shù)據(jù)處理系統(tǒng)2000可包括訪(fǎng)問(wèn)網(wǎng)絡(luò)2600的網(wǎng)絡(luò)接口(未示出)。
雖然上文已經(jīng)描述了各種實(shí)施例,但是本領(lǐng)域技術(shù)人員將理解的是,所描述的實(shí)施例僅是示例。因此,本文所描述的數(shù)據(jù)存儲(chǔ)裝置及其操作方法不應(yīng)基于所描述的實(shí)施例被限制。在不脫離如所附權(quán)利要求限定的本發(fā)明的精神和/或范圍的情況下,相關(guān)領(lǐng)域的技術(shù)人員可想到許多其它實(shí)施例和/或其變型。