專利名稱:分布式ecc處理的系統(tǒng)和方法
技術(shù)領(lǐng)域:
本公開一般涉及錯(cuò)誤校正編碼(ECC)處理。
背景技術(shù):
在將數(shù)據(jù)寫到存儲(chǔ)器中的處理期間,通常用額外的位(“奇偶校驗(yàn)位”)來編碼數(shù)據(jù)以形成碼字。在存在噪聲時(shí),表示碼字的位中的一些可能改變,破壞原始碼字使其出錯(cuò)。當(dāng)從存儲(chǔ)器讀取碼字時(shí),可以使用解碼器使用錯(cuò)誤校正編碼(ECC)來識(shí)別和校正錯(cuò)誤。例如,使用博斯-查德胡里-霍昆格姆(Bose-Chaudhur1-Hocquenghem) (BCH)ECC方案用于其中位錯(cuò)誤趨向于不相關(guān)的應(yīng)用中。ECC方案的錯(cuò)誤校正能力趨向于隨著碼字的長(zhǎng)度增加而增力口。因此,在數(shù)據(jù)存儲(chǔ)系統(tǒng)和通信設(shè)備中實(shí)現(xiàn)的ECC方案趨向于使用更長(zhǎng)的碼字??梢栽诙鄠€(gè)連續(xù)的階段中進(jìn)行BCH解碼以校正接收的數(shù)據(jù)中的錯(cuò)誤。例如,BCH解碼器可以生成對(duì)于可能包括錯(cuò)誤的接收的碼字的伴隨式(syndrome)分量。BCH解碼器可以生成關(guān)鍵方程(key equation)(例如錯(cuò)誤位置多項(xiàng)式),該關(guān)鍵方程可以基于計(jì)算的伴隨式生成并且可以指示在接收的碼字中檢測(cè)到的錯(cuò)誤的數(shù)量。檢測(cè)到的錯(cuò)誤在接收的碼字內(nèi)的位置可以經(jīng)由諸如Chien搜索的迭代處理、基于關(guān)鍵方程的根(root)而確定。因?yàn)橥ǔm樞虻貙?duì)接收的碼字中的每個(gè)值進(jìn)行Chien搜索處理,所以處理碼字的時(shí)間量可能與碼字長(zhǎng)度成比例。隨著碼字長(zhǎng)度增加,由Chien搜索處理引起的延遲可能對(duì)ECC數(shù)據(jù)校正的速度施加限制。
發(fā)明內(nèi)容
分布式ECC處理包括數(shù)據(jù)塊以及數(shù)據(jù)塊的一個(gè)或多個(gè)子塊的同時(shí)處理。當(dāng)在子塊處理期間確定一子塊不具有錯(cuò)誤或者具有可校正的錯(cuò)誤時(shí),可以跳過數(shù)據(jù)塊處理的一個(gè)或多個(gè)部分。例如,在數(shù)據(jù)塊處理期間進(jìn)行的Chien搜索可以跳過在子塊處理期間已經(jīng)校正的子塊。因此,與進(jìn)行每個(gè)接收的碼字的全部Chien搜索相比,處理ECC碼字的平均時(shí)間可以減少。
圖1是包括數(shù)據(jù)存儲(chǔ)器件的系統(tǒng)的具體例示實(shí)施例的框圖,該數(shù)據(jù)存儲(chǔ)器件具有帶有分布式ECC處理的錯(cuò)誤校正編碼(ECC)引擎;圖2是用于進(jìn)行分布式ECC處理的系統(tǒng)的具體例示實(shí)施例的框圖;圖3是流水線分布式ECC處理的具體例示實(shí)施例的數(shù)據(jù)流程圖;圖4A-4B是基于分布式ECC處理系統(tǒng)中的子塊處理的結(jié)果在數(shù)據(jù)塊處理期間控制Chien搜索的方法的具體例示實(shí)施例的流程圖;以及圖5是分布式ECC處理的方法的具體例示實(shí)施例的流程圖。
具體實(shí)施方式
公開了在ECC解碼期間使用諸如Chien搜索的線性錯(cuò)誤位置搜索并且即使當(dāng)在數(shù)據(jù)塊的末尾發(fā)生錯(cuò)誤時(shí)也具有減少的等待時(shí)間的系統(tǒng)和方法。可以確定一個(gè)或多個(gè)錯(cuò)誤的近似位置并且可以從確定的位置開始錯(cuò)誤位置搜索??梢酝ㄟ^將數(shù)據(jù)塊劃分為子塊并對(duì)各個(gè)子塊進(jìn)行分布式ECC處理來確定近似錯(cuò)誤位置??梢允褂帽扔糜谥鲏K的更小的ECC來尋找子塊中的錯(cuò)誤??梢栽谧訅K處理期間校正具有少量錯(cuò)誤的子塊,降低進(jìn)行主塊錯(cuò)誤位置搜索的循環(huán)的數(shù)量,因此減少等待時(shí)間。參考圖1,描繪了用于進(jìn)行分布式錯(cuò)誤校正編碼(ECC)處理的系統(tǒng)的具體實(shí)施例,并且概括地指定為100。系統(tǒng)100包括具有ECC引擎114的數(shù)據(jù)存儲(chǔ)器件102,該ECC引擎114被配置為進(jìn)行分布式ECC處理。該系統(tǒng)100還包括操作地耦接到數(shù)據(jù)存儲(chǔ)器件102的主機(jī)設(shè)備104。在具體實(shí)施例中,主機(jī)設(shè)備104被配置為與數(shù)據(jù)存儲(chǔ)器件102通信并且發(fā)送對(duì)于存儲(chǔ)在數(shù)據(jù)存儲(chǔ)器件102處的數(shù)據(jù)的請(qǐng)求。主機(jī)設(shè)備104還配置為響應(yīng)于請(qǐng)求而接收由數(shù)據(jù)存儲(chǔ)器件102提供的數(shù)據(jù)。例如,主機(jī)設(shè)備104可以包括移動(dòng)電話、音樂或視頻播放器、游戲控制臺(tái)、電子書閱讀器、個(gè)人數(shù)字助理(PDA)、諸如膝上型計(jì)算機(jī)或者筆記本計(jì)算機(jī)的計(jì)算機(jī)、任何其他電子設(shè)備或其任意組合。數(shù)據(jù)存儲(chǔ)器件102包括控制器110和存儲(chǔ)器112??刂破?10被配置為管理存儲(chǔ)器112以及當(dāng)數(shù)據(jù)存儲(chǔ)器件102操作地耦接到主機(jī)設(shè)備104時(shí)使能與主機(jī)設(shè)備104的通信??刂破?10包括ECC引擎114,并且可以被配置為接收從存儲(chǔ)器112讀取的數(shù)據(jù)以及將接收的數(shù)據(jù)提供給ECC引擎114。控制器110可以被配置為取得由ECC引擎114輸出的數(shù)據(jù),比如已經(jīng)校正過在存儲(chǔ)或者傳輸期間發(fā)生的一個(gè)或多個(gè)錯(cuò)誤的解碼的數(shù)據(jù),并且被配置為將解碼的校正過的數(shù)據(jù)提供給主機(jī)設(shè)備104。存儲(chǔ)器112被配置為存儲(chǔ)諸如數(shù)據(jù)(例如用戶數(shù)據(jù))和與該數(shù)據(jù)相關(guān)聯(lián)的ECC數(shù)據(jù)(例如冗余數(shù)據(jù)或者“奇偶校驗(yàn)位”)的信息。例如,該數(shù)據(jù)可以包括要存儲(chǔ)在存儲(chǔ)器112處的多媒體文件的數(shù)據(jù),并且該奇偶校驗(yàn)位可以包括使得ECC引擎114能夠檢測(cè)和校正數(shù)據(jù)中的錯(cuò)誤的冗余信息。數(shù)據(jù)和相應(yīng)的ECC數(shù)據(jù)可以一起被存儲(chǔ)為數(shù)據(jù)字。存儲(chǔ)器112可以是非易失性存儲(chǔ)器。例如,存儲(chǔ)器112可以是快閃存儲(chǔ)器,比如NAND閃存。僅為了例示,數(shù)據(jù)存儲(chǔ)器102可以是存儲(chǔ)卡,比如安全數(shù)字SD 卡、微SD 卡、迷你SD.TM卡(特拉華,威爾明頓,SD-3C LLC的商標(biāo))、多媒體卡.TM (麗C.TM)卡(維吉尼亞,阿靈頓,JEDEC固態(tài)技術(shù)協(xié)會(huì)的商標(biāo))或者緊湊快閃 〔CompactFlash, CF)卡(加利福尼亞,米爾皮塔斯,SanDisk公司的商標(biāo))。作為另一例子,數(shù)據(jù)存儲(chǔ)器102可以被配置為耦接到主機(jī)設(shè)備104作為嵌入存儲(chǔ)器,比如eMMC (維吉尼亞,阿靈頓,JEDEC固態(tài)技術(shù)協(xié)會(huì)的商標(biāo))以及eSD,作為例示性的例子。代表性的ECC頁120被存儲(chǔ)在存儲(chǔ)器112中,ECC頁120包括數(shù)據(jù)塊130,該數(shù)據(jù)塊130包括第一子塊(SBl) 121、第二子塊(SB2) 122、第三子塊(SB3) 123和第四子塊(SB4)
124。數(shù)據(jù)塊130還包括與子塊121-124的每個(gè)相關(guān)聯(lián)的ECC數(shù)據(jù),比如第一子ECC數(shù)據(jù)
125、第二子ECC數(shù)據(jù)126、第三子ECC數(shù)據(jù)127和第四子ECC數(shù)據(jù)128。除了具有組合的子塊121-124以及組合的子ECC塊125-128的數(shù)據(jù)塊130之外,ECC頁120還包括奇偶校驗(yàn)位塊129,該奇偶校驗(yàn)位塊129存儲(chǔ)與數(shù)據(jù)塊130對(duì)應(yīng)的ECC數(shù)據(jù)。ECC引擎114被配置為經(jīng)由分布式ECC處理對(duì)接收的數(shù)據(jù)進(jìn)行ECC解碼操作。例如,ECC引擎114可以根據(jù)BCH方案、里德-所羅門方案或者諸如通過使用Chien搜索的順次地搜索錯(cuò)誤位置的任何其他方案來進(jìn)行解碼。ECC引擎114可以接收從存儲(chǔ)器讀取的數(shù)據(jù),比如ECC頁120,并且沿著并行處理路徑處理讀取的數(shù)據(jù)116。第一處理路徑包括進(jìn)行諸如包括數(shù)據(jù)塊130和ECC數(shù)據(jù)129的整個(gè)ECC頁120的整個(gè)ECC碼字的解碼的數(shù)據(jù)塊ECC解碼器142。第二并行處理路徑包括使用與數(shù)據(jù)的一個(gè)或多個(gè)子塊(比如子塊121-124)對(duì)應(yīng)的ECC數(shù)據(jù)(比如子ECC數(shù)據(jù)125-128)進(jìn)行這些子塊的ECC處理的子塊ECC編碼器140。ECC引擎114可以基本同時(shí)開始在數(shù)據(jù)塊ECC解碼器142處的數(shù)據(jù)塊ECC操作以及在子塊ECC編碼器140處的子塊ECC操作。在操作期間,響應(yīng)于在子塊121-124中的一個(gè)或多個(gè)中的、使用子ECC數(shù)據(jù)125-128在子塊ECC解碼器140處可校正的檢測(cè)到的錯(cuò)誤,可以減少在數(shù)據(jù)塊ECC解碼器142處的對(duì)于數(shù)據(jù)塊130的ECC處理的量。例如,四個(gè)子塊中的三個(gè)(例如子塊121-123)可能被確定為經(jīng)由在子塊ECC解碼器140處的子塊ECC處理可校正。因此,在數(shù)據(jù)塊ECC解碼器142處的錯(cuò)誤位置搜索可以被選擇性地開始以繞過可校正的子塊121-123,并且可以被約束為子塊124中的被確定為不可由子塊ECC處理校正的位置錯(cuò)誤。關(guān)于圖3-4進(jìn)一步詳細(xì)描述子塊和數(shù)據(jù)塊處理的例子。每個(gè)子塊121-124可以比ECC頁120更迅速地被處理,但是由于在子ECC數(shù)據(jù)125-128中的更少數(shù)量的ECC位而可能具有降低的錯(cuò)誤校正率(并且可能具有更大的誤校正(mis-correction)的機(jī)會(huì))。通過使用分布式ECC處理,ECC引擎114提供了具有與對(duì)于ECC頁的全部奇偶校驗(yàn)位相關(guān)聯(lián)的強(qiáng)度、同時(shí)在可以與校正ECC頁并行地校正一個(gè)或多個(gè)子塊時(shí)使能更快的操作的ECC解碼。參考圖2,繪出了用于進(jìn)行分布式ECC處理的系統(tǒng)的具體實(shí)施例,并且將其概括地指定為200。系統(tǒng)200包括主ECC處理電路202和子ECC處理電路204。例如,主ECC處理電路202可以對(duì)應(yīng)于圖1的數(shù)據(jù)塊ECC解碼器142,并且子ECC處理電路204可以對(duì)應(yīng)于圖1的子塊ECC解碼器140。子ECC處理電路204的輸出被提供給控制電路206??刂齐娐?06具有耦接到主ECC處理電路202的輸出。系統(tǒng)200被配置為接收數(shù)據(jù)字,其被例示為 ECC 頁 120。經(jīng)由并行處理路徑提供ECC頁120用于在主ECC處理電路202以及在子ECC處理電路204處的處理。主ECC處理電路202可以對(duì)整個(gè)ECC頁120進(jìn)行ECC處理。例如,主ECC處理電路202可以生成伴隨式,確定具有指示ECC頁120中的錯(cuò)誤的數(shù)量的次冪(order)的關(guān)鍵方程,并且比如通過進(jìn)行Chien搜索而定位錯(cuò)誤。在錯(cuò)誤的校正之后得到的數(shù)據(jù)被提供為校正后的數(shù)據(jù)240。子ECC處理電路204可以被配置為使用第一子ECC數(shù)據(jù)125進(jìn)行第一子塊121的ECC處理。子ECC處理電路204可以確定伴隨式、生成關(guān)鍵方程并且使用第一子ECC數(shù)據(jù)125進(jìn)行第一子塊121的Chien搜索。子ECC處理204可以被配置為還使用第二子ECC數(shù)據(jù)126處理第二子塊122、使用第三子ECC數(shù)據(jù)127處理第三子塊123以及使用第四子ECC數(shù)據(jù)128處理第四子塊124。例如,子ECC處理電路204可以被配置為以如關(guān)于圖3所述的流水線方式處理ECC處理的一個(gè)或多個(gè)階段。作為另一例子,子ECC處理電路204可以包括用于相互并行地處理子塊121-124中的兩個(gè)或多個(gè)的多個(gè)并行ECC處理電路。子ECC處理的結(jié)果250被提供給控制電路206。這樣的結(jié)果可以包括在子塊121-124的每個(gè)的子ECC處理期間檢測(cè)到的錯(cuò)誤的數(shù)量254、指示子塊121-124中的任何子塊是否不可校正(即具有比使用子ECC數(shù)據(jù)125-128可校正的更多的錯(cuò)誤)的一個(gè)或多個(gè)指示252、其他信息或其任意組合??刂齐娐?06可以被配置為基于從子ECC處理電路204返回的結(jié)果來確定一個(gè)或多個(gè)參數(shù)、比如Chien搜索起始位置260和Chien搜索末尾位置262以更有效地繼續(xù)主ECC處理電路202的處理。例如,ECC處理的各個(gè)組成可能需要不同的時(shí)間量。為了例示,可以按固定的時(shí)間間隔進(jìn)行伴隨式計(jì)算,而關(guān)鍵方程的生成可能需要與ECC頁中的錯(cuò)誤的數(shù)量成比例的時(shí)間量,并且進(jìn)行Chien搜索可能也需要與ECC頁中的錯(cuò)誤的數(shù)量和錯(cuò)誤的位置成比例的時(shí)間量。指示錯(cuò)誤是否已經(jīng)被校正或者子塊121-124的每個(gè)中的錯(cuò)誤是否不可校正的子ECC處理電路204的結(jié)果可以使得主ECC處理電路202能夠繞過主ECC處理的一個(gè)或多個(gè)方面的性能。為了例示,當(dāng)子ECC處理電路204能夠校正前三個(gè)子塊121-123中的所有檢測(cè)到的錯(cuò)誤但是不能矯正出現(xiàn)在第四子塊124中的錯(cuò)誤時(shí),控制電路206可以被配置為指示主ECC處理電路202在第四子塊124的起始處(即在第三ECC數(shù)據(jù)127之后的第一位處)選擇性地開始Chien搜索處理。以此方式,由于前三個(gè)子塊121-123的并行ECC處理,在主ECC處理電路202處的Chien搜索處理循環(huán)的總數(shù)量可以實(shí)質(zhì)上減少。參考圖3,例示了例示在諸如圖1的ECC引擎114或者圖2的系統(tǒng)200的分布式ECC系統(tǒng)中的ECC處理的例子的數(shù)據(jù)流圖,并且將其概括地指定為300。參考圖1的ECC頁120,根據(jù)ECC處理的代表時(shí)序繪出數(shù)據(jù)流,并且該數(shù)據(jù)流包括在子ECC操作302中的數(shù)據(jù)流以及在主ECC操作304中的數(shù)據(jù)流。子ECC操作302可以對(duì)應(yīng)于圖1的子塊ECC解碼器140中的或者圖2的子ECC處理電路204中的處理。主ECC操作304可以對(duì)應(yīng)于圖1的數(shù)據(jù)塊ECC解碼器142中的或者圖2的主ECC處理電路202中的處理。如例示的,子ECC操作302可以被流水線化而經(jīng)過多個(gè)流水線循環(huán),諸如第一循環(huán)310、第二循環(huán)311、第三循環(huán)312、第四循環(huán)313、第五循環(huán)314和第六循環(huán)315。循環(huán)310-315的每個(gè)被例示為通常對(duì)應(yīng)于ECC頁120的各個(gè)部分并且還對(duì)應(yīng)于與子ECC處理相關(guān)聯(lián)的每個(gè)流水線階段的處理時(shí)間。子ECC操作302可以包括計(jì)算對(duì)于接收的子塊的伴隨式的第一流水線階段、基于計(jì)算的伴隨式生成對(duì)于每個(gè)子塊的關(guān)鍵方程的第二流水線階段以及進(jìn)行Chien搜索以查找并校正子塊中的錯(cuò)誤的第三流水線階段。流水線階段可以被布置為使得每個(gè)循環(huán)時(shí)按順序的下一個(gè)子塊進(jìn)入第一流水線階段,并且可以同時(shí)處理三個(gè)或更多子塊,每個(gè)流水線階段一個(gè)子塊,并且每個(gè)子塊的處理至少部分地與一個(gè)或多個(gè)其他子塊的處理重疊。為了例示,第一循環(huán)310包括使用第一 ECC數(shù)據(jù)125對(duì)第一子塊121的處理,這被例示為第一伴隨式處理331,在此第一伴隨式處理331期間,使用第一子ECC數(shù)據(jù)125進(jìn)行第一子塊121的伴隨式計(jì)算。而且,對(duì)于主ECC操作304的伴隨式生成321在該第一循環(huán)310期間開始。第二循環(huán)311在第一循環(huán)310之后,并且包括使用第二 ECC數(shù)據(jù)126對(duì)第二子塊122的處理,進(jìn)入流水線,以第二伴隨式處理341而開始。另外,在第二循環(huán)311期間,進(jìn)行對(duì)于第一子塊121的第一關(guān)鍵方程生成332。在對(duì)于第一子塊121的第一關(guān)鍵方程生成332之后,對(duì)于第一子塊121的和對(duì)于第一子ECC數(shù)據(jù)125的第一 Chien搜索處理333在第二循環(huán)期間開始并且繼續(xù)到第三循環(huán)312中。
在第三循環(huán)312期間,使用第三ECC數(shù)據(jù)127的第三子塊123的處理以對(duì)于第三子塊123的第三伴隨式處理351而開始。另外,對(duì)于第一子塊121的和對(duì)于第一子ECC數(shù)據(jù)125的第一 Chien搜索處理333完成,并且進(jìn)行對(duì)于第二子塊122的第二關(guān)鍵方程生成342。還例示了,在第三循環(huán)312期間,在對(duì)于第一子塊121的和對(duì)于第一子ECC數(shù)據(jù)125的第一 Chien搜索處理333結(jié)束時(shí),對(duì)于第二子塊112和對(duì)于第二子ECC數(shù)據(jù)126的第二Chien搜索處理343開始。例示了由于占據(jù)了 Chien搜索流水線階段的第一 Chien搜索處理333導(dǎo)致的在第三循環(huán)312期間在第二關(guān)鍵方程處理342的完成和第二 Chien搜索處理343的開始之間的經(jīng)過時(shí)間。為了例示通常的流水線處理的目的繪出了第二子塊122的處理中的暫時(shí)中斷,并且其不應(yīng)被認(rèn)為是對(duì)系統(tǒng)300內(nèi)的處理的限制或者必然代表。使用第四ECC數(shù)據(jù)128的第四子塊124的處理在第四循環(huán)313期間以第四伴隨式處理361而開始。而且在第四循環(huán)313期間,對(duì)于第三子塊123的第三關(guān)鍵生成352開始,并且然后開始對(duì)于第三子塊123和對(duì)于第三子ECC數(shù)據(jù)127的第三Chien搜索處理353。而且在第四循環(huán)313期間,對(duì)于第二子塊112和對(duì)于第二子ECC數(shù)據(jù)126的第二 Chien搜索處理343完成。在第五循環(huán)314期間,進(jìn)行對(duì)于第四子字124的第四關(guān)鍵方程生成362。而且,對(duì)于第三子塊123和對(duì)于第三子ECC數(shù)據(jù)127的第三Chien搜索處理353完成,并且對(duì)于第四子塊124和第四子ECC數(shù)據(jù)128的第四Chien搜索處理363開始。另外,在第五循環(huán)314期間,主ECC操作304的伴隨式處理324完成,并且主ECC的關(guān)鍵方程生成322開始。如例示的,當(dāng)主ECC操作304開始關(guān)鍵方程生成322時(shí),第一和第二子塊121和122的子ECC處理已經(jīng)完成,并且第三和第四子塊123和124的子ECC處理在進(jìn)行中。在第六循環(huán)315期間,對(duì)于第四子塊124的子ECC處理開始,同時(shí)主ECC關(guān)鍵方程生成322繼續(xù)。因此,在主ECC Chien搜索處理323開始時(shí),作為處理各個(gè)子塊121-124的結(jié)果,搜索起始位置和/或在Chien搜索處理323期間要分析的一個(gè)或多個(gè)區(qū)域可以是已知的。例如,當(dāng)?shù)谝蛔訅K121和第二子塊122的子ECC處理完成而沒有發(fā)生不可校正的錯(cuò)誤時(shí),在對(duì)于第一和第二子塊121和122內(nèi)以及第一和第二 ECC塊125和126內(nèi)的數(shù)據(jù)位的主ECC操作304期間不需要應(yīng)用Chien搜索處理322。如果第三子塊123的子ECC操作302指示了不可校正的錯(cuò)誤,而第四子塊124被指示為可由子ECC操作302校正,則可以控制Chien搜索處理323以僅處理第三子塊123和第三ECC塊127。在傳統(tǒng)的系統(tǒng)中可以與ECC頁120的長(zhǎng)度成比例并且可以構(gòu)成解碼處理的實(shí)質(zhì)部分的進(jìn)行對(duì)于主ECC304的Chien搜索處理323的總處理時(shí)間可以減少四分之一或更多(a factor of four or more)。作為另一例子,當(dāng)子ECC操作302指示子字121-124都不具有不可校正的錯(cuò)誤時(shí),主ECC操作304的Chien搜索處理323可以限制為僅對(duì)ECC數(shù)據(jù)129的搜索或者可以一起跳過。參考圖4A-B,繪出了方法400的具體實(shí)施例,其在圖4A開始并且繼續(xù)到圖4B。方法400例示了可以基于子ECC處理的結(jié)果、比如由圖2的控制電路206進(jìn)行的處理。參考圖3的數(shù)據(jù)流圖說明方法400。圖4A繪出對(duì)由子ECC操作指示為具有不可校正的錯(cuò)誤的子塊進(jìn)行Chien搜索并且確定ECC字中的所有錯(cuò)誤是否已經(jīng)被校正。圖4B繪出在錯(cuò)誤仍未被校正(例如一個(gè)或多個(gè)子塊在子ECC處理期間被誤校正)時(shí)的處理,并且該處理包括對(duì)被指示為不具有不可校正的錯(cuò)誤的子塊進(jìn)行Chien搜索。
在402,接收主關(guān)鍵生成處理已經(jīng)完成的指示。例如,可以在圖3的關(guān)鍵生成處理322之后接收該指示。在404確定第一子塊(SB) 121是否導(dǎo)致不可校正的錯(cuò)誤。響應(yīng)于在404處第一子塊121導(dǎo)致不可校正的錯(cuò)誤,可以在主ECC操作304中開始Chien搜索(CS),該Chien搜索以第一子塊121的開頭而開始并且繼續(xù)到第一子ECC數(shù)據(jù)125的結(jié)尾。在408,確定第二子塊122是否導(dǎo)致不可校正的錯(cuò)誤。當(dāng)?shù)诙訅K122被確定為沒有導(dǎo)致不可校正的錯(cuò)時(shí),處理繼續(xù)到412?;蛘?,當(dāng)?shù)诙訅K122被確定為已經(jīng)導(dǎo)致不可校正的錯(cuò)誤時(shí),在410,在主ECC中進(jìn)行對(duì)應(yīng)于第二子塊122和第二子塊122的第二子ECC數(shù)據(jù)126的主ECC Chien搜索,并且處理前進(jìn)到412。在412,確定第三子塊123是否導(dǎo)致不可校正的錯(cuò)誤。當(dāng)?shù)谌訅K123被確定為沒有導(dǎo)致不可校正的錯(cuò)誤時(shí),處理前進(jìn)到416?;蛘撸?dāng)?shù)谌訅K123被確定為已經(jīng)導(dǎo)致不可校正的錯(cuò)誤時(shí),在414進(jìn)行與第三子塊123和第三子ECC數(shù)據(jù)127對(duì)應(yīng)的主ECC Chien搜索處理,并且處理繼續(xù)到416。在416,確定第四子塊124是否導(dǎo)致不可校正的錯(cuò)誤或者第四子塊124的處理是否未完成。當(dāng)在416第四子塊124導(dǎo)致了不可校正的錯(cuò)誤或者對(duì)于第四子塊124的Chien搜索處理未完成時(shí),可以進(jìn)行主ECC Chien搜索處理,以第四子塊124順序上的第一位開始并且繼續(xù)到ECC頁120的結(jié)尾(即包括ECC數(shù)據(jù)129)?;蛘?,當(dāng)?shù)谒淖訅K124未被指示為具有不可校正的錯(cuò)誤并且第四Chien搜索處理363已經(jīng)完成時(shí),處理繼續(xù)到420,在此確定(在子ECC操作302以及在406、410和414的Chien搜索的任意中檢測(cè)到的)錯(cuò)誤的總數(shù)是否等于從主ECC操作304的關(guān)鍵方程處理322得到的主關(guān)鍵方程的次冪。響應(yīng)于確定發(fā)現(xiàn)的錯(cuò)誤的總數(shù)不等于主ECC操作304的主關(guān)鍵方程的次冪,在424,從ECC頁120的ECC數(shù)據(jù)129的開頭進(jìn)行Chien搜索處理。否則,處理繼續(xù)到426,在此確定校正的ECC錯(cuò)誤的數(shù)量是否等于主ECC操作304的主關(guān)鍵處理322生成的關(guān)鍵方程的次冪。當(dāng)校正的ECC錯(cuò)誤(包括子ECC和主ECC校正)的數(shù)量等于從關(guān)鍵方程處理322得到的關(guān)鍵方程的次冪時(shí),基于主ECC操作304的所有檢測(cè)的錯(cuò)誤已經(jīng)被子ECC操作302和/或被在406、410、414、418中的一個(gè)或多個(gè)處進(jìn)行的目標(biāo)Chien搜索處理或其任意組合檢測(cè)到并校正。因此,在428,所有檢測(cè)到的錯(cuò)誤已經(jīng)被校正,并且對(duì)于ECC頁120的ECC處理完成。當(dāng)在426,校正過的錯(cuò)誤的數(shù)量被確定為不等于主關(guān)鍵方程的次冪時(shí),處理繼續(xù)到在圖4B中例示的430。在430,確定第一子塊121是否被子ECC操作302確定為具有不可校正的錯(cuò)誤。當(dāng)?shù)谝蛔訅K被子ECC操作302確定為不具有不可校正的錯(cuò)誤時(shí),在432,進(jìn)行第一子塊121和第一子ECC數(shù)據(jù)125的主ECC操作304的Chien搜索處理。繼續(xù)到434,在434確定校正過的錯(cuò)誤的數(shù)量是否等于主關(guān)鍵方程的次冪。當(dāng)在434確定校正過的錯(cuò)誤的數(shù)量等于主關(guān)鍵方程的次冪時(shí),在436所有檢測(cè)到的錯(cuò)誤已經(jīng)被校正并且處理完成。否則,在438,確定第二子塊122是否被子ECC操作302確定為導(dǎo)致了不可校正的錯(cuò)誤。當(dāng)?shù)诙訅K122被子ECC操作302確定為不具有不可校正的錯(cuò)誤時(shí),在440,對(duì)第二子塊122和第二子ECC數(shù)據(jù)126進(jìn)行主ECC操作304的Chien搜索處理。在440處,完成了第二 Chien搜索處理之后或者當(dāng)?shù)诙訅K122被子ECC操作302確定為具有不可校正的錯(cuò)誤時(shí),在442,確定校正過的錯(cuò)誤的數(shù)量是否等于主關(guān)鍵方程的次冪。如果在442處校正的錯(cuò)誤的數(shù)量被確定為等于主關(guān)鍵方程的次冪,則在444,所有檢測(cè)到的錯(cuò)誤已經(jīng)被校正并且處理完成。否則,在446,確定第三子塊123是否被子ECC操作302確定為不可校正。如果第三子塊123被子ECC操作302確定為不具有不可校正的錯(cuò)誤,則對(duì)第三子塊123和第三子ECC數(shù)據(jù)127進(jìn)行主ECC操作304的Chien搜索處理。在448的Chien搜索處理的完成之后,或者在446在確定第三子塊123被子ECC操作302確定為具有不可校正的錯(cuò)誤之后,在450,確定校正過的錯(cuò)誤的數(shù)量是否等于主關(guān)鍵方程的次冪。當(dāng)在450確定校正過的錯(cuò)誤的數(shù)量等于主關(guān)鍵方程的次冪時(shí),在452,所有檢測(cè)到的錯(cuò)誤已經(jīng)被校正并且處理完成。否則,在454,確定第四子塊124是否被子ECC操作302確定為具有不可校正的錯(cuò)誤。如果在454第四子塊124被子ECC操作302確定為不具有不可校正的錯(cuò)誤,則在456,對(duì)第四子塊124和第四子ECC數(shù)據(jù)128進(jìn)行Chien搜索處理。在458,確定總共校正過的錯(cuò)誤是否等于主關(guān)鍵方程的次冪。如果是,則在460所有檢測(cè)到的錯(cuò)誤已經(jīng)被校正并且處理結(jié)束。如果在458處,校正過的錯(cuò)誤的數(shù)量不等于主關(guān)鍵方程的次冪,則已經(jīng)發(fā)生的錯(cuò)誤的數(shù)量超過了主ECC操作304的能力,在462生成錯(cuò)誤,并且處理終止。圖5是分布式ECC處理的方法的實(shí)施例的流程圖。該方法可以在存儲(chǔ)器器件的控制器中、比如圖1的控制器110中進(jìn)行。該方法包括在502接收包括數(shù)據(jù)塊和對(duì)于該數(shù)據(jù)塊的主錯(cuò)誤校正編碼(ECC)數(shù)據(jù)的數(shù)據(jù)。該數(shù)據(jù)塊包括數(shù)據(jù)的第一子塊以及與該第一子塊對(duì)應(yīng)的第一 ECC數(shù)據(jù)。存儲(chǔ)器器件可以包括非易失性存儲(chǔ)器,并且可以通過從非易失性存儲(chǔ)器讀取數(shù)據(jù)并將讀取的數(shù)據(jù)發(fā)送到控制器的ECC引擎來接收數(shù)據(jù)。例如,可以在圖1的ECC引擎114處接收ECC頁120作為讀取的數(shù)據(jù)116。在504,開始數(shù)據(jù)塊ECC操作以處理該數(shù)據(jù)塊。該數(shù)據(jù)塊ECC操作可以包括主伴隨式生成處理、主關(guān)鍵方程生成處理和主錯(cuò)誤位置處理。例如,該數(shù)據(jù)塊ECC操作可以是圖3的主ECC操作304??梢酝ㄟ^將數(shù)據(jù)提供到諸如圖1的數(shù)據(jù)塊ECC解碼器142的數(shù)據(jù)塊ECC解碼器的輸入并指示數(shù)據(jù)塊ECC解碼器開始處理該數(shù)據(jù)來進(jìn)行開始數(shù)據(jù)塊ECC操作。在506,開始子塊ECC操作以使用第一 ECC數(shù)據(jù)來處理第一子塊。數(shù)據(jù)塊ECC操作和子塊ECC操作可以基本同時(shí)開始。子塊ECC操作可以包括對(duì)于數(shù)據(jù)塊中的每個(gè)子塊的子塊伴隨式生成處理、子塊關(guān)鍵方程生成處理和子塊錯(cuò)誤位置處理。數(shù)據(jù)塊可以包括第二子塊和對(duì)應(yīng)于第二子塊的第二 ECC數(shù)據(jù)。子塊ECC操作還可以使用第二 ECC數(shù)據(jù)處理第二子塊。子塊ECC操作可以被流水線化并且第二子塊的處理可以至少部分地與第一子塊的處理重疊。例如,子塊ECC操作可以是圖3的子ECC操作302??梢酝ㄟ^將數(shù)據(jù)提供到諸如圖1的子塊ECC解碼器140的子塊ECC解碼器的輸入并指示子塊ECC解碼器開始處理該數(shù)據(jù)來開始子塊ECC操作。在508,基于子塊ECC操作的結(jié)果選擇性地開始數(shù)據(jù)塊ECC操作的錯(cuò)誤位置搜索。例如,響應(yīng)于子塊ECC操作指示在第一子塊中的不可校正的錯(cuò)誤,可以開始錯(cuò)誤位置搜索以在第一子塊的起始處開始。錯(cuò)誤位置搜索可以包括Chien搜索,比如圖3的Chien搜索處理323。為了例示,可以通過接收指示不可由子塊ECC操作校正的子塊的起始位位置的起始位置數(shù)據(jù)、比如圖2的Chien搜索起始位置260來進(jìn)行基于子塊ECC操作的結(jié)果選擇性地開始數(shù)據(jù)塊ECC操作的錯(cuò)誤位置搜索。還可以接收指示與不可由子塊ECC操作校正的子塊對(duì)應(yīng)的ECC數(shù)據(jù)的末尾位位置的末尾位置數(shù)據(jù),比如圖2的Chien搜索末尾位置262??梢蚤_始錯(cuò)誤位置搜索以從起始位位置到末尾位位置順序地處理數(shù)據(jù)。數(shù)據(jù)塊ECC操作可以確定數(shù)據(jù)中的錯(cuò)誤的第一數(shù)量。錯(cuò)誤的第一數(shù)量由數(shù)據(jù)塊ECC操作、比如基于與該數(shù)據(jù)塊對(duì)應(yīng)的關(guān)鍵方程的次冪來確定。比如圖4A的決定420處,可以將錯(cuò)誤的第一數(shù)量與由子塊ECC操作校正的錯(cuò)誤的第二數(shù)量比較。當(dāng)數(shù)據(jù)塊包括多個(gè)子塊時(shí),可以控制錯(cuò)誤位置搜索以處理在子塊ECC操作期間被識(shí)別為具有不可校正的錯(cuò)誤的多個(gè)子塊的每個(gè)。例如,可以響應(yīng)于圖4A的決定404、408、412和416而選擇性地進(jìn)行Chien搜索。在完成被識(shí)別為具有不可校正的錯(cuò)誤的多個(gè)子塊的每個(gè)的錯(cuò)誤位置搜索之后,可以將校正過的錯(cuò)誤的數(shù)量與數(shù)據(jù)中的錯(cuò)誤的第一數(shù)量相比較。響應(yīng)于錯(cuò)誤的第一數(shù)量超過校正過的錯(cuò)誤的數(shù)量,可以控制錯(cuò)誤位置搜索以處理主ECC數(shù)據(jù),如在圖4A的420-424處所例示的。當(dāng)在主ECC數(shù)據(jù)中校正一個(gè)或多個(gè)錯(cuò)誤時(shí)可以更新校正過的錯(cuò)誤的數(shù)量。當(dāng)錯(cuò)誤的第一數(shù)量超過校正過的錯(cuò)誤的數(shù)量時(shí),比如響應(yīng)于圖4的決定430、438、446和454,可以控制錯(cuò)誤位置搜索以處理在子塊ECC操作期間未被識(shí)別為具有不可校正的錯(cuò)誤的多個(gè)子塊的至少一個(gè)。盡管圖1的分布式ECC系統(tǒng)在數(shù)據(jù)存儲(chǔ)器件中實(shí)現(xiàn),但是在其他實(shí)施例中,分布式ECC系統(tǒng)可以在其他系統(tǒng)、比如通信系統(tǒng)中實(shí)現(xiàn)。例如,圖1的ECC引擎114可以在無線接收器中實(shí)現(xiàn)以校正在編碼的信號(hào)的傳輸期間發(fā)生的錯(cuò)誤。盡管ECC頁120被例示為具有四個(gè)子塊121-124,但是在其他實(shí)施例中,ECC頁120可以具有少于四個(gè)子塊或者多于四個(gè)子塊。子塊可以同樣大小或者可以具有在ECC頁120內(nèi)的不同大小。另外,盡管圖3的子塊操作302以及圖4的處理被例示為順序地處理子塊121-124,但是在其他實(shí)施例中,可以按非順序的方式進(jìn)行子塊處理或者可以跳過一個(gè)或多個(gè)子塊。例如,可以通過與主塊同時(shí)地處理單個(gè)子塊并基于處理子塊的結(jié)果來控制主塊中的Chien搜索以減少平均ECC解碼等待時(shí)間。盡管在此繪出的各個(gè)組件被例示為塊組件并且按一般術(shù)語來描述,但是這樣的組件可以包括一個(gè)或多個(gè)微處理器、狀態(tài)機(jī)或者配置為使得圖1的數(shù)據(jù)存儲(chǔ)器件102能夠進(jìn)行屬于這樣的組件的具體功能的其他電路。例如,圖1的子塊ECC解碼器140和數(shù)據(jù)塊ECC解碼器142可以表示物理組件,比如硬件控制器、狀態(tài)機(jī)、邏輯電路或者使得圖1的ECC引擎114能夠使用子塊ECC解碼器140的結(jié)果來調(diào)整在數(shù)據(jù)塊ECC解碼器142處的處理來進(jìn)行分布式ECC處理的其他結(jié)構(gòu)。圖1的子塊ECC解碼器140和數(shù)據(jù)塊ECC解碼器142可以被實(shí)現(xiàn)為專用硬件(例如電路)來減少等待時(shí)間?;蛘撸梢允褂帽痪幊虨檫M(jìn)行ECC解碼的一個(gè)或多個(gè)階段、比如伴隨式生成、關(guān)鍵方程生成或者錯(cuò)誤位置搜索的微處理器或者微控制器來實(shí)現(xiàn)圖1的子塊ECC解碼器140和數(shù)據(jù)塊ECC解碼器142之一或兩者。在具體實(shí)施例中,子塊ECC解碼器140和數(shù)據(jù)塊ECC解碼器142之一或兩者包括由處理器執(zhí)行的可執(zhí)行指令,并且這些指令被存儲(chǔ)在存儲(chǔ)器112處。或者,或另外地,由可以被包括在控制器110中的處理器執(zhí)行的可執(zhí)行指令可以被存儲(chǔ)在不是存儲(chǔ)器112的部分的單獨(dú)的存儲(chǔ)器位置處,比如只讀存儲(chǔ)器(ROM)(未示出)。在具體實(shí)施例中,數(shù)據(jù)存儲(chǔ)器件102可以是被配置為選擇性地耦接到一個(gè)或多個(gè)外部設(shè)備的可攜式器件。但是,在其他實(shí)施例中,數(shù)據(jù)存儲(chǔ)器102可以附連或者嵌入在一個(gè)或多個(gè)主機(jī)設(shè)備內(nèi),比如在可攜式通信設(shè)備的外殼內(nèi)。例如,數(shù)據(jù)存儲(chǔ)器件102可以在諸如無線電話、個(gè)人數(shù)字助理(PDA)、游戲設(shè)備或控制臺(tái)、可攜式導(dǎo)航設(shè)備或者使用內(nèi)部非易失性存儲(chǔ)器的其他設(shè)備的包裝好的裝置內(nèi)。在具體實(shí)施例中,數(shù)據(jù)存儲(chǔ)器102包括非易失性存儲(chǔ)器,比如快閃存儲(chǔ)器(例如NAND、NOR、多級(jí)單元(MLC)、劃分的位線NOR (DINOR)、AND、高電容耦合比(HiCR)、不對(duì)稱非接觸晶體管(ACT)、或者其他閃存)、可擦除可編程只讀存儲(chǔ)器(EPROM)、電可擦除可編程只讀存儲(chǔ)器(EEPROM)、只讀存儲(chǔ)器(ROM)、一次可編程存儲(chǔ)器(OTP)或者任何其他類型的存儲(chǔ)器。在此描述的實(shí)施例的例示意圖提供對(duì)各個(gè)實(shí)施例的一般理解??梢岳貌谋竟_得出其他實(shí)施例,以便可以不脫離本公開的范圍做出結(jié)構(gòu)和邏輯上的替換和改變。本公開意圖覆蓋各個(gè)實(shí)施例的任意以及所有隨后的適應(yīng)及變型。因而,本公開和附圖將被認(rèn)為是例示性的而不是限制性的。以上公開的主題將被認(rèn)為是例示性的而不是限制性的,并且所附權(quán)利要求意圖覆蓋所有這樣的修改、增強(qiáng)和其他實(shí)施例,它們落在本公開的范圍內(nèi)。因此,達(dá)法律允許的最大范圍,本發(fā)明的范圍將由以下權(quán)利要求及其等效物的最寬可允許的解釋來確定,并且不應(yīng)受以上詳細(xì)描述的限制或限定。
權(quán)利要求
1.一種方法,包括: 在存儲(chǔ)器器件的控制器中: 接收包括數(shù)據(jù)塊和對(duì)于該數(shù)據(jù)塊的主錯(cuò)誤校正編碼(ECC)數(shù)據(jù)的數(shù)據(jù),所述數(shù)據(jù)塊包括數(shù)據(jù)的第一子塊和與該第一子塊對(duì)應(yīng)的第一 ECC數(shù)據(jù); 開始數(shù)據(jù)塊ECC操作以使用所述主ECC數(shù)據(jù)處理所述數(shù)據(jù)塊; 開始子塊ECC操作以使用所述第一 ECC數(shù)據(jù)處理所述第一子塊;以及 基于所述子塊ECC操作的結(jié)果選擇性地開始所述數(shù)據(jù)塊ECC操作的錯(cuò)誤位置搜索。
2.按權(quán)利要求1的方法,其中響應(yīng)于所述子塊ECC操作指示所述第一子塊中的不可校正的錯(cuò)誤,開始所述錯(cuò)誤位置搜索以在所述第一子塊的起始處開始。
3.按權(quán)利要求1的方法,其中所述錯(cuò)誤位置搜索包括Chien搜索。
4.按權(quán)利要求1的方法,其中所述數(shù)據(jù)塊包括第二子塊和與該第二子塊對(duì)應(yīng)的第二ECC數(shù)據(jù),以及其中所述子塊ECC操作還使用該第二 ECC數(shù)據(jù)處理該第二子塊。
5.按權(quán)利要求4的方法,其中所述子塊ECC操作被流水線化,以及其中所述第二子塊的處理至少部分地與所述第一子塊的處理重疊。
6.按權(quán)利要求1的方法,其中所述數(shù)據(jù)塊ECC操作確定數(shù)據(jù)中的錯(cuò)誤的第一數(shù)量,并且還包括: 將錯(cuò)誤的第一數(shù)量與由所述子塊ECC操作校正的錯(cuò)誤的第二數(shù)量相比較。
7.按權(quán)利要求1的方法,其中所述數(shù)據(jù)塊包括多個(gè)子塊,并且還包括: 控制所述錯(cuò)誤位置搜索以處理在所述子塊ECC操作期間被識(shí)別為具有不可校正的錯(cuò)誤的多個(gè)子塊的每個(gè)。
8.按權(quán)利要求7的方法,還包括在完成被識(shí)別為具有不可校正的錯(cuò)誤的多個(gè)子塊的每個(gè)的錯(cuò)誤位置搜索之后: 將校正過的錯(cuò)誤的數(shù)量與數(shù)據(jù)中的錯(cuò)誤的第一數(shù)量相比較,其中所述錯(cuò)誤的第一數(shù)量由所述數(shù)據(jù)塊ECC操作確定;以及 響應(yīng)于所述錯(cuò)誤的第一數(shù)量超過校正過的錯(cuò)誤的數(shù)量,控制所述錯(cuò)誤位置搜索以處理主ECC數(shù)據(jù)。
9.按權(quán)利要求8的方法,其中所述錯(cuò)誤的第一數(shù)量是基于與所述數(shù)據(jù)塊對(duì)應(yīng)的關(guān)鍵方程的次冪。
10.按權(quán)利要求8的方法,還包括: 當(dāng)在主ECC數(shù)據(jù)中校正一個(gè)或多個(gè)錯(cuò)誤時(shí),更新校正過的錯(cuò)誤的數(shù)量;以及當(dāng)錯(cuò)誤的第一數(shù)量超過校正過的錯(cuò)誤的數(shù)量時(shí),控制所述錯(cuò)誤位置搜索以處理在所述子塊ECC操作期間未被識(shí)別為具有不可校正的錯(cuò)誤的多個(gè)子塊的至少一個(gè)。
11.按權(quán)利要求1的方法,其中所述存儲(chǔ)器器件還包括非易失性存儲(chǔ)器,以及 其中通過以下來接收數(shù)據(jù): 從所述非易失性存儲(chǔ)器讀取數(shù)據(jù);以及 將讀取的數(shù)據(jù)發(fā)送到所述控制器的ECC引擎。
12.按權(quán)利要求1的方法,其中: 通過以下來開始數(shù)據(jù)塊ECC操作: 將數(shù)據(jù)提供到數(shù)據(jù)塊ECC解碼器的輸入;以及指示所述數(shù)據(jù)塊ECC解碼器開始處理所述數(shù)據(jù);以及 通過以下來開始子塊ECC操作: 將所述數(shù)據(jù)提供給子塊ECC解碼器的輸入;以及 指示所述子塊ECC解碼器開始處理所述數(shù)據(jù)。
13.按權(quán)利要求12的方法,其中基本同時(shí)開始所述數(shù)據(jù)塊ECC操作和所述子塊ECC操作。
14.按權(quán)利要求1的方法,其中通過以下來基于所述子塊ECC操作的結(jié)果選擇性地開始所述數(shù)據(jù)塊ECC操作的錯(cuò)誤位置搜索: 接收指示不可由子塊ECC操作校正的子塊的起始位位置的起始位置數(shù)據(jù); 接收指示與不可由所述子塊ECC操作校正的子塊對(duì)應(yīng)的ECC數(shù)據(jù)的末尾位位置的末尾位置數(shù)據(jù);以及 開始所述錯(cuò)誤位置搜索以從所述起始位位置到所述末尾位位置順序地處理所述數(shù)據(jù)。
15.按權(quán)利要求1的方法,其中所述數(shù)據(jù)塊ECC操作包括主伴隨式生成處理、主關(guān)鍵方程生成處理和主錯(cuò)誤位置處理,以及其中所述子塊ECC操作包括對(duì)于所述數(shù)據(jù)塊中的每個(gè)子塊的子塊伴隨式生成處理、子塊關(guān)鍵方程生成處理以及子塊錯(cuò)誤位置處理。
16.一種數(shù)據(jù)存儲(chǔ)器件,包括: 存儲(chǔ)器;以及 控制器,耦接到所述存儲(chǔ)器,其中所述控制器包括錯(cuò)誤校正編碼(ECC)引擎,該ECC引擎包括: 數(shù)據(jù)塊ECC解碼器,配置為處理從存儲(chǔ)器取得的數(shù)據(jù),所述數(shù)據(jù)包括數(shù)據(jù)塊和對(duì)于該數(shù)據(jù)塊的主錯(cuò)誤校正編碼(ECC)數(shù)據(jù);以及 子塊ECC解碼器,配置為處理所述數(shù)據(jù)塊的子塊和對(duì)應(yīng)于子塊的ECC數(shù)據(jù), 其中所述ECC引擎被配置為基本同時(shí)開始在所述數(shù)據(jù)塊ECC解碼器處和在所述子塊ECC解碼器處的數(shù)據(jù)的處理。
17.按權(quán)利要求16的數(shù)據(jù)存儲(chǔ)器件,其中所述ECC引擎被配置為基于所述子塊ECC解碼器的結(jié)果選擇性地開始在所述數(shù)據(jù)塊ECC解碼器處的錯(cuò)誤位置搜索。
18.按權(quán)利要求17的數(shù)據(jù)存儲(chǔ)器件,其中所述ECC引擎還包括響應(yīng)于子塊ECC解碼器的控制電路,該控制電路被配置為選擇在所述數(shù)據(jù)塊ECC解碼器處的錯(cuò)誤位置搜索的起始位置以搜索在所述子塊中的被所述子塊ECC解碼器識(shí)別為不可校正的錯(cuò)誤。
19.按權(quán)利要求16的數(shù)據(jù)存儲(chǔ)器件,其中所述存儲(chǔ)器是快閃存儲(chǔ)器。
20.按權(quán)利要求19的數(shù)據(jù)存儲(chǔ)器件,其中所述數(shù)據(jù)存儲(chǔ)器件是以下之一: 快閃存儲(chǔ)卡; 通用串行總線(USB)快閃盤; 固態(tài)盤(SSD);以及 嵌入式快閃存儲(chǔ)器。
21.一種數(shù)據(jù)存儲(chǔ)器件,包括: 快閃存儲(chǔ)器;以及 控制器,耦接到所述快閃存儲(chǔ)器,其中所述控制器包括錯(cuò)誤校正編碼(ECC)引擎,該ECC引擎包括:數(shù)據(jù)塊ECC解碼器,配置為處理從快閃存儲(chǔ)器取得的數(shù)據(jù),所述數(shù)據(jù)包括數(shù)據(jù)塊和對(duì)于該數(shù)據(jù)塊的主錯(cuò)誤校正編碼(ECC)數(shù)據(jù);以及 子塊ECC解碼器,配置為處理所述數(shù)據(jù)塊的子塊和對(duì)應(yīng)于子塊的ECC數(shù)據(jù), 控制電路,響應(yīng)于所述子塊ECC解碼器,并且被配置為選擇在所述數(shù)據(jù)塊ECC解碼器處的錯(cuò)誤位置搜索的起始位置以搜索在所述子塊中的被所述子塊ECC解碼器識(shí)別為不可校正的錯(cuò)誤。
22.按權(quán)利要求21的數(shù)據(jù)存儲(chǔ)器件,其中所述ECC引擎被配置為基本同時(shí)開始在所述數(shù)據(jù)塊ECC解碼器處和在所述子塊ECC解碼器處的數(shù)據(jù)的處理。
23.按權(quán)利要求21的數(shù)據(jù)存儲(chǔ)器件,其中所述數(shù)據(jù)存儲(chǔ)器件被配置為可移除地耦接到主機(jī)設(shè)備。
24.按權(quán)利要求21的數(shù)據(jù)存儲(chǔ)器件, 其中所述數(shù)據(jù)存儲(chǔ)器件被配置為耦接到主機(jī)設(shè)備作為嵌入式存儲(chǔ)器。
全文摘要
公開了用于進(jìn)行分布式ECC操作的系統(tǒng)和方法。方法包括在存儲(chǔ)器器件的控制器中接收包括數(shù)據(jù)塊和對(duì)于該數(shù)據(jù)塊的主錯(cuò)誤校正編碼(ECC)數(shù)據(jù)的數(shù)據(jù)。該數(shù)據(jù)塊包括數(shù)據(jù)的第一子塊和與該第一子塊對(duì)應(yīng)的第一ECC數(shù)據(jù)。該方法包括開始數(shù)據(jù)塊ECC操作以使用所述主ECC數(shù)據(jù)來處理所述數(shù)據(jù)塊以及開始子塊ECC操作以使用所述第一ECC數(shù)據(jù)來處理所述第一子塊。該方法還包括基于所述子塊ECC操作的結(jié)果來選擇性地開始所述數(shù)據(jù)塊ECC操作的錯(cuò)誤位置搜索。
文檔編號(hào)H03M13/29GK103098378SQ201180043802
公開日2013年5月8日 申請(qǐng)日期2011年9月12日 優(yōu)先權(quán)日2010年9月15日
發(fā)明者J.納拉達(dá)西, A.溫基塔查拉姆 申請(qǐng)人:桑迪士克科技股份有限公司