Nothing Special   »   [go: up one dir, main page]

TW201312578A - System and method of distributive ECC processing - Google Patents

System and method of distributive ECC processing Download PDF

Info

Publication number
TW201312578A
TW201312578A TW100133246A TW100133246A TW201312578A TW 201312578 A TW201312578 A TW 201312578A TW 100133246 A TW100133246 A TW 100133246A TW 100133246 A TW100133246 A TW 100133246A TW 201312578 A TW201312578 A TW 201312578A
Authority
TW
Taiwan
Prior art keywords
sub
ecc
block
data
error
Prior art date
Application number
TW100133246A
Other languages
Chinese (zh)
Inventor
Jayaprakash Naradasi
Anand Venkitachalam
Original Assignee
Sandisk Technologies Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sandisk Technologies Inc filed Critical Sandisk Technologies Inc
Priority to TW100133246A priority Critical patent/TW201312578A/en
Publication of TW201312578A publication Critical patent/TW201312578A/en

Links

Landscapes

  • Techniques For Improving Reliability Of Storages (AREA)
  • Error Detection And Correction (AREA)

Abstract

Systems and methods to perform distributive ECC operations are disclosed. A method includes, in a controller of a memory device, receiving data including a data block and main error correction coding (ECC) data for the data block. The data block includes a first sub-block of data and first ECC data corresponding to the first sub-block. The method includes initiating a data block ECC operation to process the data block using the main ECC data and initiating a sub-block ECC operation to process the first sub-block using the first ECC data. The method also includes selectively initiating an error location search of the data block ECC operation based on a result of the sub-block ECC operation.

Description

分配的錯誤修正編碼處理之系統及方法System and method for assigning error correction coding processing

本發明一般而言係關於錯誤修正編碼(ECC)處理。The present invention is generally directed to error correction coding (ECC) processing.

在將資料寫入至記憶體中之處理程序期間,通常用額外位元(「同位位元」)編碼該資料以形成一碼字。在存在雜訊之情形下,表示碼字之位元中之某些位元可改變,因此使原始碼字出錯誤。當自記憶體讀取碼字時,可使用一解碼器來使用錯誤修正編碼(ECC)識別並修正錯誤。舉例而言,在其中位元錯誤往往係不相關之應用程式中使用博斯-喬赫裏-霍克昆亨(Bose-Chaudhuri-Hocquenghem,BCH)ECC方案。一ECC方案之一錯誤修正能力往往隨碼字之長度增加而增加。因此,實施於資料儲存系統及通信裝置中之ECC方案往往使用較長碼字。During the processing of writing data into the memory, the data is typically encoded with extra bits ("co-located bits") to form a codeword. In the presence of noise, some of the bits representing the bits of the codeword can be changed, thus causing the original codeword to be erroneous. When reading a codeword from memory, a decoder can be used to identify and correct the error using error correction coding (ECC). For example, the Bose-Chaudhuri-Hocquenghem (BCH) ECC scheme is used in applications where bit errors are often irrelevant. One of the error correction capabilities of an ECC scheme tends to increase as the length of the codeword increases. Therefore, ECC schemes implemented in data storage systems and communication devices often use longer codewords.

可在多個順序階段中執行BCH解碼以修正所接收資料中之錯誤。舉例而言,一BCH解碼器可產生可包含錯誤之一所接收碼字之症狀碼分量。BCH解碼器可產生可基於所計算之症狀碼而產生關鍵方程式(例如,一錯誤位置多項式)且該關鍵方程式可指示在所接收碼字中偵測到之錯誤之數目。可基於關鍵方程式之根經由諸如一陳氏(Chien)搜尋之一迭代處理程序來判定在所接收碼字內偵測到之錯誤之位置。由於通常對所接收碼字中之每一值順序地執行陳氏搜尋處理程序,因此用以處理該碼字之一時間量可與該碼字長度成比例。隨著碼字長度增加,陳氏搜尋處理所致之延遲可對ECC資料修正之速度產生限制。BCH decoding can be performed in multiple sequential stages to correct errors in the received data. For example, a BCH decoder can generate a symptom code component that can include a received codeword for one of the errors. The BCH decoder can generate a critical equation (e.g., an error location polynomial) that can be generated based on the calculated symptom code and the critical equation can indicate the number of errors detected in the received codeword. The location of the error detected within the received codeword can be determined based on the root of the key equation via an iterative handler such as a Chien search. Since the Chen search process is typically performed sequentially for each of the received codewords, the amount of time to process the codeword can be proportional to the length of the codeword. As the length of the codeword increases, the delay caused by Chen's search processing can limit the speed of ECC data correction.

分配的ECC處理包含一資料區塊及該資料區塊之一或多個子區塊之同時處理。當一子區塊被判定為不具有錯誤或具有可在子區塊處理期間修正之錯誤時,可跳過該資料區塊處理之一或多個部分。舉例而言,在該資料區塊處理期間執行之一陳氏搜尋可跳過已在子區塊處理期間經修正之子區塊。因此,與執行每一所接收碼字之一完全陳氏搜尋相比,可減少用以處理ECC碼字之平均時間。The allocated ECC processing includes simultaneous processing of one data block and one or more sub-blocks of the data block. When a sub-block is determined to have no errors or has an error that can be corrected during sub-block processing, one or more portions of the data block processing may be skipped. For example, performing one of the Chen searches during the data block processing may skip the sub-blocks that have been corrected during the sub-block processing. Thus, the average time to process ECC codewords can be reduced as compared to performing one of the complete code searches for each received codeword.

本發明揭示在ECC解碼期間使用諸如陳氏搜尋之線性錯誤位置搜尋且即使當錯誤出現在一資料區塊之結束處時亦具有減少之延時之系統及方法。可判定一或多個錯誤之一大致位置且可自該所判定位置開始錯誤位置搜尋。可藉由將資料區塊劃分成若干子區塊且對個別子區塊執行分配的ECC處理來判定一大致錯誤位置。與用於主區塊之ECC相比,可使用一較小ECC找到子區塊中之錯誤。可在子區塊處理期間修正具有極少錯誤之子區塊,從而減少用以執行主區塊錯誤位置搜尋之循環之數目且因此減少延時。The present invention discloses a system and method for using a linear error location search such as Chen's search during ECC decoding and having a reduced delay even when an error occurs at the end of a data block. An approximate location of one or more errors may be determined and an error location search may be initiated from the determined location. A substantially erroneous location can be determined by dividing the data block into a number of sub-blocks and performing an assigned ECC process on the individual sub-blocks. An error in the sub-block can be found using a smaller ECC than the ECC used for the main block. Sub-blocks with few errors can be corrected during sub-block processing, thereby reducing the number of loops used to perform the main block error location search and thus reducing latency.

參照圖1,其繪示用以執行分配的錯誤修正編碼(ECC)處理之一系統之一特定實施例且將該系統大體標示為100。系統100包含具有經組態以執行分配的ECC處理之一ECC引擎114之一資料儲存裝置102。系統100亦包含以操作方式耦合至資料儲存裝置102之一主機裝置104。Referring to Figure 1, a particular embodiment of one of the systems for performing error correction coding (ECC) processing of allocation is illustrated and generally designated 100. System 100 includes a data storage device 102 having one of ECC engines 114 configured to perform ECC processing. System 100 also includes a host device 104 operatively coupled to one of data storage devices 102.

在一特定實施例中,主機裝置104經組態以與資料儲存裝置102通信並發送對儲存於資料儲存裝置102處之資料之請求。主機裝置104進一步經組態以回應於該等請求而接收由資料儲存裝置102提供之資料。舉例而言,主機裝置104可包含一行動電話、一音樂或視訊播放器、一遊戲控制臺、一電子書閱讀器、一個人數位助理(PDA)、一電腦(諸如一膝上型電腦或筆記型電腦)、任一其他電子裝置或其任一組合。In a particular embodiment, host device 104 is configured to communicate with data storage device 102 and to send a request for data stored at data storage device 102. The host device 104 is further configured to receive the data provided by the data storage device 102 in response to the requests. For example, the host device 104 can include a mobile phone, a music or video player, a game console, an e-book reader, a PDA, a computer (such as a laptop or a notebook). Computer), any other electronic device, or any combination thereof.

資料儲存裝置102包含一控制器110及一記憶體112。控制器110經組態以管理記憶體112且在資料儲存裝置102以操作方式耦合至主機裝置104時達成與主機裝置104之通信。控制器110包含ECC引擎114且可經組態以接收自記憶體112讀取之資料且將所接收資料提供至ECC引擎114。控制器110可經組態以擷取由ECC引擎114輸出之資料(諸如已針對在儲存或傳輸期間出現之一或多個錯誤經修正之經解碼之資料)且將該經解碼的經修正資料提供至主機裝置104。The data storage device 102 includes a controller 110 and a memory 112. The controller 110 is configured to manage the memory 112 and communicate with the host device 104 when the data storage device 102 is operatively coupled to the host device 104. The controller 110 includes an ECC engine 114 and can be configured to receive data read from the memory 112 and provide the received data to the ECC engine 114. The controller 110 can be configured to retrieve data output by the ECC engine 114 (such as decoded data that has been corrected for one or more errors that occurred during storage or transmission) and the decoded corrected data Provided to the host device 104.

記憶體112經組態以儲存諸如資料(例如,使用者資料)及與該資料相關聯之ECC資料(例如,冗餘資料或「同位」)等資訊。舉例而言,該資料可包含待儲存於記憶體112處之一多媒體檔案之資料,且該同位可包含冗餘資訊以使得ECC引擎114能夠偵測並修正資料中之錯誤。可將該資料及對應ECC資料一起儲存為一資料字。記憶體112可係一非揮發性記憶體。舉例而言,記憶體112可係一快閃記憶體,諸如一NAND快閃記憶體。為圖解說明,資料儲存裝置102可係一記憶體卡,諸如一Secure Digital SD卡、一microSD卡、一miniSD.TM卡(特拉華州威明頓(Wilmington,Delaware)的SD-3C LLC之商標)、一MultiMediaCard.TM(MMC.TM)卡(維吉尼亞州阿靈頓(Arlington,Virginia)的JEDEC固態技術協會(Solid State Technology Association)之商標)或一CompactFlash(CF)卡(加利福尼亞州苗必達(Milpitas,California)的SanDisk公司之商標)。作為另一實例,資料儲存裝置102可經組態以耦合至主機裝置104作為嵌入式記憶體,諸如eMMC(維吉尼亞州阿靈頓的JEDEC固態技術協會之商標)及eSD,作為說明性實例。The memory 112 is configured to store information such as data (e.g., user data) and ECC data (e.g., redundant data or "co-located") associated with the data. For example, the data may include data of a multimedia file to be stored at the memory 112, and the parity may include redundant information to enable the ECC engine 114 to detect and correct errors in the data. The data and the corresponding ECC data can be stored together as a data word. The memory 112 can be a non-volatile memory. For example, memory 112 can be a flash memory, such as a NAND flash memory. To illustrate, the data storage device 102 can be a memory card, such as a Secure Digital SD. Card, a microSD Card, a miniSD.TM card (trademark of SD-3C LLC of Wilmington, Delaware), a MultiMediaCard.TM (MMC.TM) card (Arlington, VA) Virginia) is a trademark of the JEDEC Solid State Technology Association or a CompactFlash (CF) card (a trademark of SanDisk Corporation of Milpitas, Calif.). As another example, data storage device 102 can be configured to be coupled to host device 104 as an embedded memory, such as eMMC. (trademark of JEDEC Solid State Technology Association, Arlington, VA) and eSD, as illustrative examples.

一代表性ECC頁120係儲存於記憶體112中。ECC頁120包含一資料區塊130,資料區塊130包含一第一子區塊(SB1)121、一第二子區塊(SB2)122、一第三子區塊(SB3)123及一第四子區塊(SB4)124。資料區塊130進一步包含與子區塊121至124中之每一者相關聯之ECC資料,諸如第一子ECC資料125、第二子ECC資料126、第三子ECC資料127及第四子ECC資料128。除具有經組合子區塊121至124及經組合子ECC區塊125至128之資料區塊130以外,ECC頁120亦包含儲存對應於資料區塊130之ECC資料之一同位區塊129。A representative ECC page 120 is stored in memory 112. The ECC page 120 includes a data block 130. The data block 130 includes a first sub-block (SB1) 121, a second sub-block (SB2) 122, a third sub-block (SB3) 123, and a first Four sub-blocks (SB4) 124. The data block 130 further includes ECC data associated with each of the sub-blocks 121-124, such as the first sub-ECC data 125, the second sub-ECC data 126, the third sub-ECC data 127, and the fourth sub-ECC. Information 128. In addition to the data block 130 having the combined sub-blocks 121-124 and the combined sub-ECC blocks 125-128, the ECC page 120 also includes a co-located block 129 that stores one of the ECC data corresponding to the data block 130.

ECC引擎114經組態以經由分配的ECC處理對所接收資料執行一ECC解碼操作。舉例而言,ECC引擎114可根據一BCH方案、一裏德-所羅門(Reed-Solomon)方案或連續搜尋錯誤位置(諸如藉由使用一陳氏搜尋)之任一其他方案來執行解碼。ECC引擎114可接收自記憶體讀取之資料(諸如ECC頁120),且沿並行處理路徑處理讀取資料116。一第一處理路徑包含一資料區塊ECC解碼器142以執行一整個ECC碼字(諸如包含資料區塊130及ECC資料129之整個ECC頁120)之一解碼。一第二並行處理路徑包含一子區塊ECC編碼器140以使用對應於該資料之一或多個子區塊(例如,子區塊121至124)之ECC資料(例如,子ECC資料125至128)來執行該等子區塊之ECC處理。ECC引擎114可實質上同時地起始資料區塊ECC解碼器142處之一資料區塊ECC操作及子區塊ECC編碼器140處之一子區塊ECC操作。The ECC engine 114 is configured to perform an ECC decoding operation on the received data via the assigned ECC processing. For example, ECC engine 114 may perform decoding in accordance with a BCH scheme, a Reed-Solomon scheme, or any other scheme that continuously searches for an error location, such as by using a Chen search. The ECC engine 114 can receive data read from memory (such as ECC page 120) and process the read data 116 along a parallel processing path. A first processing path includes a data block ECC decoder 142 to perform decoding of one of the entire ECC codewords, such as the entire ECC page 120 containing the data block 130 and the ECC data 129. A second parallel processing path includes a sub-block ECC encoder 140 to use ECC data corresponding to one or more sub-blocks (eg, sub-blocks 121-124) of the data (eg, sub-ECC data 125-128) ) to perform ECC processing of the sub-blocks. The ECC engine 114 may initiate one of the data block ECC operations at the data block ECC decoder 142 and one of the sub-block ECC operations at the sub-block ECC encoder 140 substantially simultaneously.

在操作期間,回應於可在子區塊ECC解碼器140處使用子ECC資料125至128修正之於子區塊121至124中之一或多者中偵測到之錯誤,可減少用於在資料區塊ECC解碼器142處之資料區塊130之ECC處理之一量。舉例而言,該四個子區塊中之三者(例如,子區塊121至123)可被判定為可在子區塊ECC解碼器140處經由子區塊ECC處理修正。因此,可選擇性地起始資料區塊ECC解碼器142處之一錯誤位置搜尋以繞過可修正子區塊121至123且可將該錯誤位置搜尋限制於被判定為不可由子區塊ECC處理修正之子區塊124中之定位錯誤。關於圖3至圖4更詳細地闡述子區塊及資料區塊處理之實例。During operation, in response to errors detected in one or more of sub-blocks 121-124 that may be modified at sub-block ECC decoder 140 using sub-ECC data 125-128, may be reduced for use in One of the ECC processing of the data block 130 at the data block ECC decoder 142. For example, three of the four sub-blocks (eg, sub-blocks 121-123) may be determined to be revampable via sub-block ECC processing at sub-block ECC decoder 140. Accordingly, one of the error location searches at the data block ECC decoder 142 can be selectively initiated to bypass the correctable sub-blocks 121-123 and can limit the error location search to being determined not to be processed by the sub-block ECC. The positioning error in the modified sub-block 124 is incorrect. Examples of sub-block and data block processing are explained in more detail with respect to Figures 3 through 4.

可比ECC頁120更快地處理每一子區塊121至124,但由於子ECC資料125至128中之ECC位元之一較小數目,每一子區塊121至124可具有一減小之錯誤修正率(且可能具有一較大誤修正機率)。藉由使用分配的ECC處理,ECC引擎114提供ECC解碼(其具有與一ECC頁之一總同位相關聯之強度),同時在可與修正該ECC頁並行地修正一或多個子區塊時達成較快操作。Each of the sub-blocks 121-124 can be processed faster than the ECC page 120, but since one of the ECC bits of the sub-ECC data 125-128 is a smaller number, each of the sub-blocks 121-124 can have a reduced Error correction rate (and possibly a large error correction probability). By using the allocated ECC processing, the ECC engine 114 provides ECC decoding (which has an intensity associated with the total co-location of one of the ECC pages) while achieving one or more sub-blocks that can be modified in parallel with modifying the ECC page. Faster operation.

參照圖2,其繪示用以執行分配的ECC處理之一系統之一特定實施例且將該系統大體標示為200。系統200包含一主ECC處理電路202及一子ECC處理電路204。舉例而言,主ECC處理電路202可對應於圖1之資料區塊ECC解碼器142且子ECC處理電路204可對應於圖1之子區塊ECC解碼器140。可將子ECC處理電路204之一輸出提供至控制電路206。控制電路206具有耦合至主ECC處理電路202之一輸出。系統200經組態以接收圖解說明為ECC頁120之一資料字。Referring to Figure 2, a particular embodiment of one of the systems for performing ECC processing of the allocation is illustrated and generally designated 200. System 200 includes a primary ECC processing circuit 202 and a sub-ECC processing circuit 204. For example, primary ECC processing circuit 202 may correspond to data block ECC decoder 142 of FIG. 1 and sub-ECC processing circuit 204 may correspond to sub-block ECC decoder 140 of FIG. One of the outputs of the sub-ECC processing circuit 204 can be provided to the control circuit 206. Control circuit 206 has an output coupled to one of main ECC processing circuits 202. System 200 is configured to receive a data word illustrated as one of ECC pages 120.

經由用於主ECC處理電路202處及子ECC處理電路204處之處理之並行處理路徑提供ECC頁120。主ECC處理電路202可對整個ECC頁120執行ECC處理。舉例而言,主ECC處理電路202可產生症狀碼,判定具有指示ECC頁120中之錯誤數目之一階數之一關鍵方程式,且定位錯誤(諸如藉由執行一陳氏搜尋)。錯誤之修正之後的所得資料係提供為經修正資料240。The ECC page 120 is provided via a parallel processing path for processing at the primary ECC processing circuit 202 and at the sub-ECC processing circuit 204. The main ECC processing circuit 202 can perform ECC processing on the entire ECC page 120. For example, the primary ECC processing circuit 202 can generate a symptom code that is determined to have a key equation indicating one of the orders of the number of errors in the ECC page 120, and a positioning error (such as by performing a Chen search). The resulting information after the correction of the error is provided as corrected information 240.

子ECC處理電路204可經組態以使用第一子ECC資料125執行第一子區塊121之ECC處理。子ECC處理電路204可判定症狀碼,產生一關鍵方程式,且使用第一子ECC資料125執行第一子區塊121之一陳氏搜尋。子ECC處理電路204可經組態以亦使用第二子ECC資料126處理第二子區塊122、使用第三子ECC資料127處理第三子區塊123及使用第四子ECC資料128處理第四子區塊124。舉例而言,子ECC處理電路204可經組態以便以如關於圖3所闡述之一流水線化方式處理ECC處理之一或多個階段。作為另一實例,子ECC處理電路204可包含多個並行ECC處理電路以彼此並行地處理子區塊121至124中之兩者或兩者以上。Sub-ECC processing circuit 204 can be configured to perform ECC processing of first sub-block 121 using first sub-ECC material 125. The sub-ECC processing circuit 204 can determine the symptom code, generate a key equation, and perform a Chen search of the first sub-block 121 using the first sub-ECC material 125. The sub-ECC processing circuit 204 can be configured to process the second sub-block 122 using the second sub-ECC data 126, the third sub-block 123 using the third sub-ECC data 127, and the fourth sub-ECC data 128. Four sub-blocks 124. For example, sub-ECC processing circuit 204 can be configured to process one or more stages of ECC processing in a pipelined manner as illustrated with respect to FIG. As another example, sub-ECC processing circuit 204 can include multiple parallel ECC processing circuits to process two or more of sub-blocks 121-124 in parallel with one another.

將子ECC處理之結果250提供至控制電路206。此等結果可包含在子區塊121至124中之每一者之子ECC處理期間偵測到之錯誤之數目254、指示子區塊121至124中之任一者是否係不可修正(亦即,與可使用子ECC資料125至128修正之錯誤相比具有更多的錯誤)之一或多個指示252、其他資訊或其任一組合。控制電路206可經組態以判定一或多個參數(諸如一陳氏搜尋開始位置260及一陳氏搜尋結束位置262)而基於自子ECC處理電路204返回之結果更高效地繼續主ECC處理電路202之處理。The result 250 of the sub-ECC processing is provided to control circuit 206. These results may include the number 254 of errors detected during sub-ECC processing of each of sub-blocks 121-124, indicating whether any of sub-blocks 121-124 are uncorrectable (ie, One or more indications 252, other information, or any combination thereof, with more errors than errors that may be corrected using sub-ECC data 125-128. Control circuit 206 can be configured to determine one or more parameters (such as a Chen search start position 260 and a Chen search end position 262) to continue the main ECC processing more efficiently based on the results returned from sub-ECC processing circuit 204. Processing of circuit 202.

舉例而言,ECC處理之各種組件可需要不同時間量。為圖解說明,可在一固定時間間隔中執行症狀碼計算,而一關鍵方程式之產生可需要與ECC頁中之錯誤之數目成比例之一時間量,且執行陳氏搜尋亦可需要與錯誤之數目成比例之一時間量及ECC頁中之錯誤之位置。指示是否已修正錯誤或在子區塊121至124中之每一者中之錯誤是否係不可修正之子ECC處理電路204之結果可使得主ECC處理電路202能夠繞過執行主ECC處理之一或多個態樣。為圖解說明,當子ECC處理電路204能夠修正前三個子區塊121至123中的所有所偵測到之錯誤但不能修正在第四子區塊124中出現之錯誤時,控制電路206可經組態以指示主ECC處理電路202選擇性地在第四子區塊124之開始處(亦即,在第三ECC資料127之後的第一位元處)起始陳氏搜尋處理。以此方式,由於前三個子區塊121至123之並行ECC處理,可實質上減少主ECC處理電路202處之陳氏搜尋處理循環之一總數目。For example, the various components of ECC processing may require different amounts of time. To illustrate, symptom code calculations can be performed in a fixed time interval, and the generation of a critical equation can be proportional to the number of errors in the ECC page, and the execution of the Chen search can also be required with errors. The number is proportional to the amount of time and the location of the error in the ECC page. The result of the sub-ECC processing circuit 204 indicating whether the error has been corrected or whether the error in each of the sub-blocks 121-124 is uncorrectable may enable the main ECC processing circuit 202 to bypass one or more of the execution main ECC processing. A situation. To illustrate, when sub-ECC processing circuit 204 is capable of correcting all detected errors in the first three sub-blocks 121-123 but not correcting errors occurring in fourth sub-block 124, control circuit 206 may The configuration is instructed to cause the primary ECC processing circuit 202 to initiate the Chen search process selectively at the beginning of the fourth sub-block 124 (i.e., at the first bit after the third ECC profile 127). In this manner, due to the parallel ECC processing of the first three sub-blocks 121-123, the total number of one of the Chen search processing cycles at the primary ECC processing circuit 202 can be substantially reduced.

參照圖3,其圖解說明圖解說明一分配的ECC系統(諸如圖1之ECC引擎114或圖2之系統200)中之ECC處理之一實例之一資料流程圖且將該分配的ECC系統大體標示為300。資料流程係根據參照圖1之ECC頁120之ECC處理之一代表性時序而繪示且包含一子ECC操作302中之資料流程及一主ECC操作304中之資料流程。子ECC操作302可對應於圖1之子區塊ECC解碼器140中或圖2之子ECC處理電路204中之處理。主ECC操作304可對應於圖1之資料區塊ECC解碼器142中或圖2之主ECC處理電路202中之處理。Referring to Figure 3, there is illustrated a data flow diagram illustrating one of an example of ECC processing in an assigned ECC system (such as ECC engine 114 of Figure 1 or system 200 of Figure 2) and generally indicating the assigned ECC system Is 300. The data flow is depicted in accordance with one of the representative timings of the ECC processing of ECC page 120 of FIG. 1 and includes a data flow in a sub-ECC operation 302 and a data flow in a primary ECC operation 304. Sub-ECC operation 302 may correspond to processing in sub-block ECC decoder 140 of FIG. 1 or sub-ECC processing circuit 204 of FIG. The main ECC operation 304 may correspond to the processing in the data block ECC decoder 142 of FIG. 1 or the main ECC processing circuit 202 of FIG.

如所圖解說明,子ECC操作302可係跨越諸如一第一循環310、一第二循環311、一第三循環312、一第四循環313、一第五循環314及一第六循環315等多個流水線循環流水線化。循環310至315中之每一者係圖解說明為大體對應於ECC頁120之一各別部分且亦對應於與子ECC處理相關聯之每一流水線階段之一處理時間。As illustrated, the sub-ECC operation 302 can span, for example, a first loop 310, a second loop 311, a third loop 312, a fourth loop 313, a fifth loop 314, and a sixth loop 315. A pipeline is streamlined. Each of the loops 310-315 is illustrated as generally corresponding to one of the individual portions of the ECC page 120 and also corresponding to one of the pipeline stages associated with the sub-ECC processing.

子ECC操作302可包含:一第一流水線階段,其用以計算一所接收子區塊之症狀碼;一第二流水線階段,其用以基於該等所計算之症狀碼來產生每一子區塊之一關鍵方程式;及一第三流水線階段,其用以執行一陳氏搜尋以定位並修正子區塊中之錯誤。可配置該等流水線階段以使得一順序地接下來之子區塊每一循環進入該第一流水線階段且可同時處理三個或三個以上子區塊,其中每一流水線階段處有一個子區塊且其中每一子區塊之處理與一或多個其他子區塊之處理至少部分地重疊。The sub-ECC operation 302 can include: a first pipeline stage for calculating a symptom code of a received sub-block; and a second pipeline stage for generating each sub-area based on the calculated symptom code One of the key equations of the block; and a third pipeline stage for performing a Chen search to locate and correct errors in the sub-block. The pipeline stages can be configured such that each subsequent sub-block sequentially enters the first pipeline stage and can process three or more sub-blocks simultaneously, with one sub-block at each pipeline stage And the processing of each of the sub-blocks at least partially overlaps with the processing of one or more other sub-blocks.

為圖解說明,第一循環310包含使用第一ECC資料125之第一子區塊121之處理,圖解說明為期間使用第一子ECC資料125執行第一子區塊121之症狀碼計算之第一症狀碼處理331。此外,主ECC操作304之症狀碼產生321在第一循環310期間開始。To illustrate, the first loop 310 includes a process of using the first sub-block 121 of the first ECC profile 125, illustrating the first execution of the symptom code calculation of the first sub-block 121 using the first sub-ECC profile 125 during the period. Symptom code processing 331. Additionally, the symptom code generation 321 of the primary ECC operation 304 begins during the first cycle 310.

第二循環311跟在第一循環310之後且包含進入流水線之使用第二ECC資料126之第二子區塊122之處理,其以第二症狀碼處理341開始。另外,在第二循環311期間,執行第一子區塊121之第一關鍵方程式產生332。在第一子區塊121之第一關鍵方程式產生332之後,第一子區塊121及第一子ECC資料125之第一陳氏搜尋處理333在第二循環311期間開始且繼續至第三循環312中。The second loop 311 follows the first loop 310 and includes processing of the second sub-block 122 of the second ECC profile 126 entering the pipeline, which begins with a second symptom code process 341. Additionally, during the second loop 311, a first key equation generation 332 of the first sub-block 121 is performed. After the first key equation generation 332 of the first sub-block 121, the first sub-block 121 and the first Chen search processing 333 of the first sub-ECC data 125 begin during the second loop 311 and continue to the third loop. 312.

在第三循環312期間,使用第三ECC資料127之第三子區塊123之處理以第三子區塊123之第三症狀碼處理351開始。另外,第一子區塊121及第一子ECC資料125之第一陳氏搜尋處理333完成,且執行第二子區塊122之第二關鍵方程式產生342。亦圖解說明,在第三循環312期間,在第一子區塊121及第一子ECC資料125之第一陳氏搜尋處理333結束時,第二子區塊122及第二子ECC資料126之第二陳氏搜尋處理343開始。一逝去時間係圖解說明於第三循環312期間之第二關鍵方程式處理342之完成與第二陳氏搜尋處理343之開始之間,此乃由佔據陳氏搜尋流水線階段之第一陳氏搜尋處理333所致。第二子區塊122之處理中之暫時中斷係出於大體圖解說明流水線處理之目的而繪示且不應被視為對系統300內之處理之一限定或必要代表。During the third cycle 312, processing using the third sub-block 123 of the third ECC profile 127 begins with the third symptom code process 351 of the third sub-block 123. In addition, the first sub-block 121 and the first sub-ECC processing 125 of the first sub-ECC data 125 are completed, and the second key equation generation 342 of the second sub-block 122 is performed. Also illustrated, during the third loop 312, at the end of the first sub-block 121 and the first Chen search processing 333 of the first sub-ECC data 125, the second sub-block 122 and the second sub-ECC data 126 The second Chen search process 343 begins. The elapsed time is illustrated between the completion of the second critical equation process 342 during the third cycle 312 and the beginning of the second Chen search process 343, which is the first Chen search process that occupies the Chen search pipeline stage. Caused by 333. The temporary interruption in the processing of the second sub-block 122 is illustrated for the purpose of generally illustrating pipeline processing and should not be considered as limiting or necessarily representative of one of the processes within system 300.

使用第四ECC資料128之第四子區塊124之處理在具有第四症狀碼處理361之第四循環313期間開始。亦在第四循環313期間,第三子區塊123之第三關鍵產生352開始且後跟第三子區塊123及第三子ECC資料127之第三陳氏搜尋處理353之起始。亦在第四循環313期間,第二子區塊122及第二子ECC資料126之第二陳氏搜尋處理343完成。The process of using the fourth sub-block 124 of the fourth ECC profile 128 begins during a fourth loop 313 with the fourth symptom code process 361. Also during the fourth loop 313, the third key generation 352 of the third sub-block 123 begins with the start of the third sub-block search processing 353 of the third sub-block 123 and the third sub-ECC data 127. Also during the fourth loop 313, the second sub-block 122 and the second Chen search processing 343 of the second sub-ECC data 126 are completed.

在第五循環314期間,執行第四子字124之第四關鍵方程式產生362。此外,第三子區塊123及第三子ECC資料127之第三陳氏搜尋處理353完成且第四子區塊124及第四子ECC資料128之第四陳氏搜尋處理363開始。另外,在第五循環314期間,主ECC操作304之症狀碼處理324完成且主ECC之關鍵方程式產生322開始。如所圖解說明,當主ECC操作304開始關鍵方程式產生322時,第一及第二子區塊121及122之子ECC處理已完成且第三及第四子區塊123及124之子ECC處理係正在進行。During a fifth cycle 314, a fourth key equation generation 362 of the fourth sub-word 124 is performed. In addition, the third sub-block 123 and the third sub-ECC search processing 353 of the third sub-ECC data 127 are completed and the fourth sub-block 124 and the fourth sub-ECC search processing 363 of the fourth sub-ECC data 128 start. Additionally, during the fifth cycle 314, the symptom code processing 324 of the primary ECC operation 304 is completed and the key equation generation 322 of the primary ECC begins. As illustrated, when the primary ECC operation 304 begins the critical equation generation 322, the sub-ECC processing of the first and second sub-blocks 121 and 122 is complete and the sub-ECC processing of the third and fourth sub-blocks 123 and 124 is get on.

在第六循環315期間,第四子區塊124之子ECC處理終止而主ECC關鍵方程式產生322繼續。因此,在起始主ECC陳氏搜尋處理323時,可由於處理個別子區塊121至124而知曉一搜尋開始位置及/或待於陳氏搜尋處理323期間分析之一或多個區域。舉例而言,當第一子區塊121及第二子區塊122之子ECC處理在未出現不可修正錯誤之情形下完成時,在主ECC操作304期間無需針對在第一及第二子區塊121及122內以及在第一及第二ECC區塊125及126內之資料位元應用陳氏搜尋處理322。During the sixth loop 315, the sub-ECC processing of the fourth sub-block 124 terminates and the primary ECC key equation generation 322 continues. Therefore, at the time of initiating the main ECC Chen search process 323, one or more regions may be analyzed during processing of the individual sub-blocks 121-124 and/or during the Chen search process 323. For example, when the sub-ECC processing of the first sub-block 121 and the second sub-block 122 is completed without an uncorrectable error, there is no need for the first and second sub-blocks during the main ECC operation 304. The data bits in 121 and 122 and in the first and second ECC blocks 125 and 126 are applied to the Chen search process 322.

若第三子區塊123之子ECC操作302指示不可修正錯誤而第四子區塊124係指示為可由子ECC操作302修正,則可控制陳氏搜尋處理323以僅處理第三子區塊123及第三ECC區塊127。用以執行主ECC操作304之陳氏搜尋處理323之一總處理時間可減少到四分之一或更小,該總處理時間在習用系統中可與ECC頁120之一長度成比例且可構成解碼處理程序之一實質部分。作為另一實例,當子ECC操作302指示子字121至124中之任一者皆不具有不可修正錯誤時,主ECC操作304之陳氏搜尋處理323可僅限定於ECC資料129之一搜尋或可一起跳過。If the sub-ECC operation 302 of the third sub-block 123 indicates an uncorrectable error and the fourth sub-block 124 indicates that the sub-ECC operation 302 can be modified by the sub-ECC operation 302, the Chen search processing 323 can be controlled to process only the third sub-block 123 and Third ECC block 127. The total processing time of one of the Chen search processes 323 used to perform the main ECC operation 304 can be reduced to a quarter or less, which can be proportional to the length of one of the ECC pages 120 in the conventional system and can be constructed A substantial part of the decoding process. As another example, when the sub-ECC operation 302 indicates that none of the sub-words 121-124 has an uncorrectable error, the Chen search process 323 of the primary ECC operation 304 may be limited to only one of the ECC data 129 searches or Can be skipped together.

參照圖4A至圖4B,其繪示一方法400之一特定實施例,方法400在圖4A上開始並繼續至圖4B。方法400圖解說明可基於子ECC處理之結果執行之一處理程序,諸如藉由圖2之控制電路206。參照圖3之資料流程圖闡釋方法400。圖4A繪示對由子ECC操作指示為具有不可修正錯誤之子區塊執行一陳氏搜尋及判定是否已修正ECC字中之所有錯誤。圖4B繪示當錯誤保持未修正(例如,該等子區塊中之一或多者係在子ECC處理期間被誤修正)時之處理且包含對指示為不具有不可修正錯誤之子區塊執行一陳氏搜尋。Referring to Figures 4A-4B, a particular embodiment of a method 400 is illustrated. The method 400 begins on Figure 4A and continues to Figure 4B. Method 400 illustrates that one of the processing procedures can be performed based on the results of the sub-ECC processing, such as by control circuit 206 of FIG. Method 400 is illustrated with reference to the data flow diagram of FIG. 4A illustrates performing a Chen search for a sub-block indicated by a sub-ECC operation as having an uncorrectable error and determining whether all errors in the ECC word have been corrected. 4B illustrates the processing when an error remains uncorrected (eg, one or more of the sub-blocks are miscorrected during sub-ECC processing) and includes execution of sub-blocks indicated as having no uncorrectable errors. A Chen search.

在402處,接收到主關鍵產生處理已完成之一指示。舉例而言,可在圖3之關鍵產生處理322之後接收到該指示。在404處,做出第一子區塊121是否導致一不可修正錯誤之一判定。回應於在404處第一子區塊121導致一不可修正錯誤,可在主ECC操作304中起始一陳氏搜尋,其以第一子區塊121之一開始而開始且繼續至第一子ECC資料125之一結束。At 402, an indication is received that the primary key generation process has completed. For example, the indication can be received after the key generation process 322 of FIG. At 404, a determination is made whether the first sub-block 121 results in an uncorrectable error. In response to the first sub-block 121 at 404 causing an uncorrectable error, a Chen search may be initiated in the main ECC operation 304, starting with one of the first sub-blocks 121 and continuing to the first sub- One of the ECC materials 125 ends.

在408處,做出第二子區塊122是否導致不可修正錯誤之一判定。當第二子區塊122被判定為未已導致不可修正錯誤時,處理繼續至412。另一選擇係,當第二子區塊122被判定為已導致不可修正錯誤時,在410處於主ECC中執行對應於第二子區塊122及第二子區塊122之第二子ECC資料126之一主ECC陳氏搜尋,且處理繼續進行至412。At 408, a determination is made as to whether the second sub-block 122 results in an uncorrectable error. When the second sub-block 122 is determined to have not caused an uncorrectable error, the process continues to 412. Alternatively, when the second sub-block 122 is determined to have caused an uncorrectable error, the second sub-ECC data corresponding to the second sub-block 122 and the second sub-block 122 is executed in the main ECC at 410. One of the 126 primary ECC Chen searches, and processing continues to 412.

在412處,做出第三子區塊123是否導致不可修正錯誤之一判定。當第三子區塊123被判定為未已導致不可修正錯誤時,處理前進至416。另一選擇係,當第三子區塊123被判定為已導致不可修正錯誤時,在414處執行對應於第三子區塊123及第三子ECC資料127之主ECC陳氏搜尋處理,且處理繼續至416。At 412, a determination is made as to whether the third sub-block 123 results in an uncorrectable error. When the third sub-block 123 is determined to have not caused an uncorrectable error, the process proceeds to 416. Alternatively, when the third sub-block 123 is determined to have caused an uncorrectable error, the main ECC Chen search processing corresponding to the third sub-block 123 and the third sub-ECC data 127 is performed at 414, and Processing continues to 416.

在416處,做出第四子區塊124是否導致不可修正錯誤或第四子區塊124之處理是否尚未完成之一判定。當在416處第四子區塊124導致不可修正錯誤或第四子區塊124之陳氏搜尋處理尚未完成時,可執行主ECC陳氏搜尋處理,其以第四子區塊124之一順序地第一位元開始且繼續至ECC頁120之結束(亦即,包含ECC資料129)。另一選擇係,當第四子區塊124不指示為具有不可修正錯誤且第四陳氏搜尋處理363已完成時,處理繼續至420,在420中做出(在子ECC操作302中以及在406、410及414之陳氏搜尋中之任一者中所偵測到之)錯誤之一總和是否等於自主ECC操作304之關鍵方程式處理322產生之主關鍵方程式之一階數之一判定。At 416, a determination is made whether the fourth sub-block 124 results in an uncorrectable error or whether the processing of the fourth sub-block 124 has not completed. When the fourth sub-block 124 results in an uncorrectable error at 416 or the Chen search processing of the fourth sub-block 124 has not been completed, the main ECC Chen search process may be performed in the order of one of the fourth sub-blocks 124. The first bit begins and continues to the end of the ECC page 120 (i.e., contains ECC data 129). Alternatively, when the fourth sub-block 124 is not indicated as having an uncorrectable error and the fourth Chen search process 363 has been completed, processing continues to 420, which is made in 420 (in sub-ECC operation 302 and in Whether the sum of one of the errors detected in any of the Chen search of 406, 410, and 414 is equal to one of the orders of one of the main key equations generated by the critical equation process 322 of the autonomous ECC operation 304.

回應於判定所找到錯誤之總和不等於主ECC操作304之主關鍵方程式之階數,在424處自ECC頁120之ECC資料129之開始執行陳氏搜尋處理。否則,處理繼續至426,在426中做出經修正ECC錯誤之數目是否等於由主ECC操作304之主關鍵處理322產生之關鍵方程式之一階數之一判定。當經修正ECC錯誤(包含子ECC及主ECC修正)之數目等於自關鍵方程式處理322產生之關鍵方程式之階數時,已偵測到基於主ECC操作304之所有所偵測到之錯誤並由子ECC操作302及/或由在406、410、414、418中之一或多者處執行之目標陳氏搜尋處理或其一組合來對其進行修正。因此,在428處,已修正所有所偵測到之錯誤且ECC頁120之ECC處理完成。當在426處經修正錯誤之數目被判定為不等於主關鍵方程式之一階數時,處理繼續至430,圖解說明於圖4B中。In response to determining that the sum of the found errors is not equal to the order of the primary key equation of the primary ECC operation 304, the Chen search process is performed at 424 from the beginning of the ECC data 129 of the ECC page 120. Otherwise, processing continues to 426 where a determination is made whether one of the corrected ECC errors is equal to one of the orders of the key equations generated by the master key processing 322 of the primary ECC operation 304. When the number of modified ECC errors (including sub-ECC and main ECC corrections) is equal to the order of the key equations generated by the critical equation process 322, all detected errors based on the main ECC operation 304 have been detected and are sub- The ECC operation 302 and/or the target Chen search process performed at one or more of 406, 410, 414, 418, or a combination thereof, is modified. Thus, at 428, all detected errors have been corrected and the ECC processing of ECC page 120 is complete. When the number of corrected errors at 426 is determined to be not equal to an order of the primary key equation, processing continues to 430, illustrated in Figure 4B.

在430處,做出第一子區塊121是否由子ECC操作302判定為具有不可修正錯誤之一判定。當第一子區塊係由子ECC操作302判定為不具有不可修正錯誤時,在432處執行第一子區塊121及第一子ECC資料125之主ECC操作304之陳氏搜尋處理。繼續至434,在434處做出經修正錯誤之數目是否等於主關鍵方程式之一階數之一判定。當在434處做出經修正錯誤之數目等於主關鍵方程式之階數之一判定時,在436處已修正所有所偵測到之錯誤且完成處理。否則,在438處做出第二子區塊122是否由子ECC操作302判定為已導致不可修改錯誤之一判定。當第二子區塊122係由子ECC操作302判定為未已導致不可修正錯誤時,可在440處對第二子區塊122及第二子ECC資料126執行主ECC操作304之陳氏搜尋處理。在於440處完成第二陳氏搜尋處理之後,或當第二子區塊122係由子ECC操作302判定為具有不可修正錯誤時,在442處做出經修正錯誤之數目是否等於主關鍵方程式之一階數之一判定。At 430, a determination is made whether the first sub-block 121 is determined by the sub-ECC operation 302 to have one of the uncorrectable errors. When the first sub-block is determined by the sub-ECC operation 302 to have no uncorrectable error, the Chen search process of the first sub-block 121 and the primary ECC operation 304 of the first sub-ECC data 125 is performed at 432. Continuing to 434, a determination is made at 434 as to whether the number of corrected errors is equal to one of the orders of the primary key equation. When the number of corrected errors made at 434 is equal to one of the orders of the primary key equation, all detected errors have been corrected at 436 and processing is complete. Otherwise, a determination is made at 438 as to whether the second sub-block 122 is determined by the sub-ECC operation 302 to have caused an uncorrectable error. When the second sub-block 122 is determined by the sub-ECC operation 302 to have not caused an uncorrectable error, the second sub-block 122 and the second sub-ECC data 126 may be subjected to the Chen search processing of the main ECC operation 304 at 440. . After the second Chen search process is completed at 440, or when the second sub-block 122 is determined by the sub-ECC operation 302 to have an uncorrectable error, whether the number of corrected errors is equal to one of the primary key equations at 442 One of the orders is determined.

若在442處經修正錯誤之數目被判定為等於主關鍵方程式之一階數,則在444處已修正所有所偵測到之錯誤且處理完成。否則,在446處做出第三子區塊123是否由子ECC操作302判定為不可修正之一判定。若第三子區塊123係由子ECC操作302判定為不具有不可修正錯誤,則對第三子區塊123且對第三子ECC資料127執行主ECC操作304之陳氏搜尋處理。在於448處完成陳氏搜尋處理之後,或在於446處判定第三子區塊123係由子ECC操作302判定為具有不可修正錯誤之後,在450處做出經修正錯誤之數目是否等於主關鍵方程式之階數之一判定。If the number of corrected errors at 442 is determined to be equal to one of the main key equations, then all detected errors have been corrected at 444 and processing is complete. Otherwise, a determination is made at 446 as to whether the third sub-block 123 is determined by the sub-ECC operation 302 to be uncorrectable. If the third sub-block 123 is determined by the sub-ECC operation 302 to have no uncorrectable error, then the third sub-block 123 and the third sub-ECC data 127 perform the Chen search process of the main ECC operation 304. After the completion of the Chen search process at 448, or after determining at 446 that the third sub-block 123 is determined to have an uncorrectable error by the sub-ECC operation 302, whether the number of corrected errors is equal to the primary key equation at 450 One of the orders is determined.

當在450處經修正錯誤之數目被判定為等於主方程式之階數時,在452處已修正所有所偵測到之錯誤且處理完成。否則,在454處做出第四子區塊124是否由子ECC操作302判定為具有不可修正錯誤之一判定。若在454處第四子區塊124係由子ECC操作302判定為不具有不可修正錯誤,則在456處對第四子區塊124及第四子ECC資料128執行陳氏搜尋處理。When the number of corrected errors at 450 is determined to be equal to the order of the main equation, all detected errors have been corrected at 452 and processing is complete. Otherwise, a determination is made at 454 as to whether the fourth sub-block 124 is determined by the sub-ECC operation 302 to have an uncorrectable error. If the fourth sub-block 124 is determined by the sub-ECC operation 302 to have no uncorrectable error at 454, then the fourth sub-block 124 and the fourth sub-ECC data 128 are subjected to Chen search processing at 456.

在458處,做出總經修正錯誤是否等於主關鍵方程式之階數之一判定。若如此,則在460處已修正所有所偵測到的錯誤且處理結束。若在458處經修正錯誤之數目不等於主關鍵方程式之階數,則已出現錯誤之數目超出主ECC操作304之容量,在462處產生一錯誤且處理終止。At 458, a determination is made whether the total corrected error is equal to one of the orders of the primary key equation. If so, all detected errors have been corrected at 460 and processing ends. If the number of corrected errors at 458 is not equal to the order of the primary key equation, then the number of errors that have occurred exceeds the capacity of the primary ECC operation 304, an error is generated at 462 and processing terminates.

圖5係分配的ECC處理之一方法之一實施例之一流程圖。可在一記憶體裝置之一控制器(諸如圖1之控制器110)中執行該方法。該方法包含在502處接收包含一資料區塊及該資料區塊之主錯誤修正編碼(ECC)資料之資料。該資料區塊包含資料之一第一子區塊及對應於該第一子區塊之第一ECC資料。該記憶體裝置可包含一非揮發性記憶體且可藉由自該非揮發性記憶體讀取資料並將該所讀取資料發送至該控制器之一ECC引擎來執行接收該資料。舉例而言,可在圖1之ECC引擎114處接收ECC頁120作為讀取資料116。Figure 5 is a flow diagram of one of the embodiments of one of the methods of ECC processing assigned. The method can be performed in a controller of a memory device, such as controller 110 of FIG. The method includes receiving, at 502, data comprising a data block and a primary error correction coding (ECC) data for the data block. The data block includes a first sub-block of data and a first ECC data corresponding to the first sub-block. The memory device can include a non-volatile memory and can perform the receiving of the data by reading data from the non-volatile memory and transmitting the read data to an ECC engine of the controller. For example, ECC page 120 can be received at ECC engine 114 of FIG. 1 as read material 116.

在504處,起始一資料區塊ECC操作以使用主ECC資料來處理該資料區塊。該資料區塊ECC操作可包含一主症狀碼產生處理程序、一主關鍵方程式產生處理程序及一主錯誤位置處理程序。舉例而言,該資料區塊ECC操作可係圖3之主ECC操作304。可藉由將資料提供至一資料區塊ECC解碼器(諸如圖1之資料區塊ECC解碼器142)之一輸入並指示該資料區塊ECC解碼器開始處理該資料來執行起始該資料區塊ECC操作。At 504, a data block ECC operation is initiated to process the data block using the primary ECC data. The data block ECC operation may include a main symptom code generation processing program, a main key equation generation processing program, and a main error position processing program. For example, the data block ECC operation may be the primary ECC operation 304 of FIG. The initiation of the data area can be performed by providing data to one of the data block ECC decoders (such as the data block ECC decoder 142 of FIG. 1) and instructing the data block ECC decoder to begin processing the data. Block ECC operation.

在506處,起始一子區塊ECC操作以使用第一ECC資料處理第一子區塊。可實質上同時起始資料區塊ECC操作及子區塊ECC操作。子區塊ECC操作可包含一子區塊症狀碼產生處理程序、一子區塊關鍵方程式產生處理程序及該資料區塊中之每一子區塊之一子區塊錯誤位置處理程序。該資料區塊可包含一第二子區塊及對應於該第二子區塊之第二ECC資料。子區塊ECC操作可進一步使用該第二ECC資料來處理該第二子區塊。子區塊ECC操作可係流水線化且第二子區塊之處理可與第一子區塊之處理至少部分地重疊。舉例而言,子區塊ECC操作可係圖3之子ECC操作302。可藉由將資料提供至一子區塊ECC解碼器(諸如圖1之子區塊ECC解碼器140)之一輸入並指示該子區塊ECC解碼器開始處理該資料來執行起始該子區塊ECC操作。At 506, a sub-block ECC operation is initiated to process the first sub-block using the first ECC profile. The data block ECC operation and the sub-block ECC operation can be initiated substantially simultaneously. The sub-block ECC operation may include a sub-block symptom code generation processing program, a sub-block key equation generation processing program, and a sub-block error position processing program for each sub-block in the data block. The data block can include a second sub-block and a second ECC data corresponding to the second sub-block. The sub-block ECC operation may further process the second sub-block using the second ECC data. Sub-block ECC operations may be pipelined and the processing of the second sub-block may at least partially overlap with the processing of the first sub-block. For example, sub-block ECC operations may be associated with sub-ECC operation 302 of FIG. The initiation of the sub-block may be performed by providing data to one of the sub-block ECC decoders (such as sub-block ECC decoder 140 of FIG. 1) and instructing the sub-block ECC decoder to begin processing the data. ECC operation.

在508處,基於子區塊ECC操作之一結果而選擇性地起始資料區塊ECC操作之一錯誤位置搜尋。舉例而言,回應於指示第一子區塊中之不可修正錯誤之子區塊ECC操作,可起始該錯誤位置搜尋以在第一子區塊之一開始處開始。該錯誤位置搜尋可包含一陳氏搜尋,諸如圖3之陳氏搜尋處理323。At 508, one of the error locations of the data block ECC operation is selectively initiated based on the result of one of the sub-block ECC operations. For example, in response to a sub-block ECC operation indicating an uncorrectable error in the first sub-block, the error location search can be initiated to begin at one of the first sub-blocks. The error location search may include a Chen search, such as the Chen search process 323 of FIG.

為圖解說明,可藉由接收指示不可由子區塊ECC操作修正之一子區塊之一開始位元位置(諸如圖2之陳氏搜尋開始位置260)之開始位置資料來執行基於子區塊ECC操作之結果選擇性地起始資料區塊ECC操作之錯誤位置搜尋。亦可接收指示對應於不可由子區塊ECC操作修正之子區塊之ECC資料之一結束位元位置(諸如圖2之陳氏搜尋結束位置262)之結束位置資料。可起始該錯誤位置搜尋以自開始位元位置至結束位元位置順序地處理資料。To illustrate, sub-block ECC can be performed by receiving a start location data indicating that a bit position (such as the Chen search start position 260 of FIG. 2) cannot be corrected by one of the sub-blocks of the sub-block ECC operation. The result of the operation selectively initiates an error location search for the data block ECC operation. End position data indicating an end bit position (such as the Chen search end position 262 of FIG. 2) indicating one of the ECC data of the sub-block that cannot be corrected by the sub-block ECC operation may also be received. The error location search can be initiated to process the data sequentially from the start bit position to the end bit position.

資料區塊ECC操作可判定資料中之錯誤之一第一數目。藉由資料區塊ECC操作(諸如)基於對應於該資料區塊之一關鍵方程式之一階數來判定錯誤之該第一數目。諸如在圖4A之決策420處,可將錯誤之該第一數目與由子區塊ECC操作修正之錯誤之一第二數目進行比較。The data block ECC operation can determine the first number of errors in the data. The first number of errors is determined by a data block ECC operation, such as based on an order corresponding to one of the key equations of the data block. For example, at decision 420 of FIG. 4A, the first number of errors can be compared to one of the second errors corrected by the sub-block ECC operation.

當資料區塊包含多個子區塊時,可控制錯誤位置搜尋以處理在子區塊ECC操作期間被識別為具有不可修正錯誤之該多個子區塊中之每一者。舉例而言,可回應於圖4A之決策404、408、412及416而選擇性地執行一陳氏搜尋。在完成對被識別為具有不可修正錯誤之該多個子區塊中之每一者之一錯誤位置搜尋之後,可將經修正錯誤之數目與該資料中之錯誤之該第一數目進行比較。回應於錯誤之該第一數目超過經修正錯誤之該數目,可控制錯誤位置搜尋以處理主ECC資料,如圖4A之420至424處所圖解說明。When the data block contains a plurality of sub-blocks, the error location search can be controlled to process each of the plurality of sub-blocks identified as having uncorrectable errors during the sub-block ECC operation. For example, a Chen search can be selectively performed in response to decisions 404, 408, 412, and 416 of FIG. 4A. After completing an error location search for one of the plurality of sub-blocks identified as having an uncorrectable error, the number of corrected errors can be compared to the first number of errors in the material. In response to the first number of errors exceeding the number of corrected errors, the error location search can be controlled to process the primary ECC data, as illustrated at 420-424 of Figure 4A.

當在主ECC資料中修正一或多個錯誤時可更新經修正錯誤之數目。當錯誤之該第一數目超過經修正錯誤之該數目時,可控制錯誤位置搜尋以處理在子區塊ECC操作期間未被識別為具有不可修正錯誤之該多個子區塊中之至少一者,諸如回應於圖4之決策430、438、446及454。The number of corrected errors can be updated when one or more errors are corrected in the primary ECC profile. When the first number of errors exceeds the number of corrected errors, the error location search may be controlled to process at least one of the plurality of sub-blocks that were not identified as having uncorrectable errors during sub-block ECC operation, Such as responding to decisions 430, 438, 446 and 454 of FIG.

儘管圖1之分配的ECC系統係實施於一資料儲存裝置中,但在其他實施例中可在其他系統(諸如一通信系統)中實施該分配的ECC系統。舉例而言,可在一無線接收器中實施圖1之ECC引擎114以修正在一經編碼信號之發射期間出現之錯誤。Although the ECC system assigned in FIG. 1 is implemented in a data storage device, in other embodiments the distributed ECC system can be implemented in other systems, such as a communication system. For example, the ECC engine 114 of FIG. 1 can be implemented in a wireless receiver to correct errors that occur during transmission of an encoded signal.

儘管ECC頁120被圖解說明為具有四個子區塊121至124,但在其他實施例中ECC頁120可具有四個以下子區塊或四個以上子區塊。在ECC頁120內該等子區塊可係同樣大小或可具有不同大小。另外,儘管圖3之子區塊操作302及圖4之處理被圖解說明為順序地處理子區塊121至124,但在其他實施例中子區塊處理可以一非順序次序來執行或可跳過一或多個子區塊。舉例而言,可藉由同時處理一單個子區塊與主區塊且基於處理該子區塊之一結果控制該主區塊中之一陳氏搜尋來減少平均ECC解碼延時。Although ECC page 120 is illustrated as having four sub-blocks 121-124, in other embodiments ECC page 120 may have four sub-blocks or more than four sub-blocks. The sub-blocks may be the same size or may have different sizes within the ECC page 120. Additionally, although the sub-block operations 302 and FIG. 4 of FIG. 3 are illustrated as sequentially processing the sub-blocks 121-124, in other embodiments the sub-block processing may be performed in a non-sequential order or may be skipped. One or more sub-blocks. For example, the average ECC decoding delay can be reduced by simultaneously processing a single sub-block with the primary block and controlling one of the primary blocks based on processing one of the sub-blocks.

儘管本文中所繪示之各種組件被圖解說明為方塊組件且概括地加以闡述,但此等組件可包含一或多個微處理器、狀態機或經組態以使得圖1之資料儲存裝置102能夠執行歸於此等組件之特定功能之其他電路。舉例而言,圖1之子區塊ECC解碼器140及資料區塊ECC解碼器142可表示實體組件,諸如硬體控制器、狀態機、邏輯電路或使得圖1之ECC引擎114能夠使用子區塊ECC解碼器140之一結果執行分配的ECC處理以調整資料區塊ECC解碼器142處之處理之其他結構。Although the various components illustrated herein are illustrated as block components and are generally set forth, such components can include one or more microprocessors, state machines, or configured to cause data storage device 102 of FIG. Other circuits capable of performing specific functions belonging to such components. For example, sub-block ECC decoder 140 and data block ECC decoder 142 of FIG. 1 may represent physical components, such as hardware controllers, state machines, logic circuits, or enable ECC engine 114 of FIG. 1 to use sub-blocks. One of the ECC decoders 140 results in performing the assigned ECC processing to adjust the other structure of the processing at the data block ECC decoder 142.

可將圖1之子區塊ECC解碼器140及資料區塊ECC解碼器142實施為專用硬體(亦即,電路)以達成減少之延時。另一選擇係,可使用經程式化以執行ECC解碼之諸如症狀碼產生、關鍵方程式產生或錯誤位置搜尋等一或多個階段之一微處理器或微控制器來實施圖1之子區塊ECC解碼器140及資料區塊ECC解碼器142中之一者或兩者。在一特定實施例中,子區塊ECC解碼器140及資料區塊ECC解碼器142中之一者或兩者包含由一處理器執行之可執行指令且該等指令係儲存於記憶體112處。另一選擇係或另外,由可包含於控制器110中之一處理器執行之可執行指令可儲存於非係記憶體112之一部分之一單獨記憶體位置處,諸如一唯讀記憶體(ROM)(未展示)處。Sub-block ECC decoder 140 and data block ECC decoder 142 of FIG. 1 may be implemented as dedicated hardware (ie, circuitry) to achieve reduced latency. Alternatively, the sub-block ECC of FIG. 1 may be implemented using a microprocessor or microcontroller that is programmed to perform ECC decoding, such as symptom code generation, critical equation generation, or error location search, in one or more stages. One or both of decoder 140 and data block ECC decoder 142. In a particular embodiment, one or both of the sub-block ECC decoder 140 and the data block ECC decoder 142 include executable instructions executed by a processor and the instructions are stored in the memory 112. . Alternatively or additionally, executable instructions executed by one of the processors that may be included in controller 110 may be stored at a separate memory location of one of the portions of non-system memory 112, such as a read-only memory (ROM) ) (not shown).

在一特定實施例中,資料儲存裝置102可係經組態以選擇性地耦合至一或多個外部裝置之一可攜式裝置。然而,在其他實施例中,資料儲存裝置102可附接或嵌入於一或多個主機裝置內,諸如一可攜式通信裝置之一外殼內。舉例而言,資料儲存裝置102可在一經封裝設備內,諸如一無線電話、一個人數位助理(PDA)、遊戲裝置或控制臺、可攜式導航裝置或使用內部非揮發性記憶體之其他裝置。在一特定實施例中,資料儲存裝置102包含一非揮發性記憶體,諸如一快閃記憶體(例如,NAND、NOR、多位階單元(MLC)、分開式位元線NOR(DINOR)、AND、高電容性耦合比(HiCR)、非對稱性非接觸電晶體(ACT)或其他快閃記憶體)、一可抹除可程式化唯讀記憶體(EPROM)、一電可抹除可程式化唯讀記憶體(EEPROM)、一唯讀記憶體(ROM)、一單次可程式化記憶體(OTP)或任一其他類型之記憶體。In a particular embodiment, data storage device 102 can be configured to be selectively coupled to one of the one or more external devices. However, in other embodiments, the data storage device 102 can be attached or embedded within one or more host devices, such as within a housing of a portable communication device. For example, data storage device 102 can be within a packaged device, such as a wireless telephone, a PDA, a gaming device or console, a portable navigation device, or other device that uses internal non-volatile memory. In a particular embodiment, data storage device 102 includes a non-volatile memory such as a flash memory (eg, NAND, NOR, multi-level cell (MLC), split bit line NOR (DINOR), AND High capacitance coupling ratio (HiCR), asymmetric contactless transistor (ACT) or other flash memory), erasable programmable read only memory (EPROM), and an erasable programmable program Read-only memory (EEPROM), a read-only memory (ROM), a single-time programmable memory (OTP), or any other type of memory.

本文中所闡述之實施例之說明意欲提供對各種實施例之一大體理解。可利用其他實施例及自本發明導出該等其他實施例,以使得可在不背離本發明之範疇之情形下做出結構及邏輯替代及改變。本發明意欲涵蓋各種實施例之任一及所有後續改動或變化形式。因此,應將本發明及各圖視為說明性而非限制性。The description of the embodiments set forth herein is intended to provide a general understanding of the various embodiments. Other embodiments may be utilized and derived from the present invention so that structural and logical substitutions and changes can be made without departing from the scope of the invention. The invention is intended to cover any and all subsequent modifications or variations of the various embodiments. Accordingly, the invention is to be considered as illustrative and not limiting.

上文所揭示之標的物應被視為說明性而非限制性,且隨附申請專利範圍意欲涵蓋歸屬於本發明之範疇內之所有此等修改、改進及其他實施例。因此,在法律允許之最大限度內,本發明之範疇將由對以下申請專利範圍及其等效內容之最廣泛的許可解釋來判定,且不應受前述實施方式之限制或限定。The above-identified subject matter is to be considered as illustrative and not restrictive, and the scope of the invention is intended to cover all such modifications, improvements and other embodiments falling within the scope of the invention. Therefore, to the extent permitted by law, the scope of the invention is determined by the broadest interpretation of the scope of the following claims and their equivalents, and should not be limited or limited by the foregoing embodiments.

100...系統100. . . system

102...資料儲存裝置102. . . Data storage device

104...主機裝置104. . . Host device

110...控制器110. . . Controller

112...記憶體112. . . Memory

114...錯誤修正編碼引擎114. . . Error correction coding engine

116...讀取資料116. . . Reading data

120...錯誤修正編碼頁120. . . Error correction code page

121...第一子區塊/子字121. . . First subblock/subword

122...第二子區塊/子字122. . . Second subblock/subword

123...第三子區塊/子字123. . . Third subblock/subword

124...第四子區塊/子字124. . . Fourth subblock/subword

125...第一子錯誤修正編碼資料125. . . First sub-error correction code data

126...第二子錯誤修正編碼資料126. . . Second sub-correction coding data

127...第三子錯誤修正編碼資料127. . . Third sub-correction coding data

128...第四子錯誤修正編碼資料128. . . Fourth sub-correction coding data

129...同位區塊/錯誤修正編碼資料129. . . Co-located block/error correction coding data

130...資料區塊130. . . Data block

140...子區塊錯誤修正編碼解碼器140. . . Subblock error correction codec

142...資料區塊錯誤修正編碼解碼器142. . . Data block error correction codec

200...系統200. . . system

202...主錯誤修正編碼處理電路202. . . Main error correction coding processing circuit

204...子錯誤修正編碼處理電路204. . . Sub-error correction coding processing circuit

206...控制電路206. . . Control circuit

240...經修正資料240. . . Corrected data

250...結果250. . . result

252...指示252. . . Indication

254...錯誤數目254. . . Number of errors

260...陳氏搜尋開始位置260. . . Chen's search start position

262...陳氏搜尋結束位置262. . . Chen's search end position

300...分配的錯誤修正編碼系統300. . . Assigned error correction coding system

302...子錯誤修正編碼操作302. . . Sub-error correction encoding operation

304...主錯誤修正編碼操作304. . . Master error correction encoding operation

310...第一循環310. . . First cycle

311...第二循環311. . . Second cycle

312...第三循環312. . . Third cycle

313...第四循環313. . . Fourth cycle

314...第五循環314. . . Fifth cycle

315...第六循環315. . . Sixth cycle

321...症狀碼產生321. . . Symptom code generation

322...關鍵方程式產生322. . . Key equation generation

323...陳氏搜尋處理323. . . Chen search processing

331...第一症狀碼處理331. . . First symptom code processing

332...第一關鍵方程式產生332. . . First key equation generation

333...第一陳氏搜尋處理333. . . First Chen search processing

341...第二症狀碼處理341. . . Second symptom code processing

342...第二關鍵方程式產生342. . . Second key equation generation

343...第二陳氏搜尋處理343. . . Second Chen search processing

351...第三症狀碼處理351. . . Third symptom code processing

352...第三關鍵產生352. . . Third key generation

353...第三陳氏搜尋處理353. . . Third Chen search processing

361...第四症狀碼處理361. . . Fourth symptom code processing

362...第四關鍵方程式產生362. . . Fourth key equation generation

363...第四陳氏搜尋處理363. . . Fourth Chen search processing

圖1係一系統之一特定說明性實施例之一方塊圖,該系統包含具有具有分配的錯誤修正編碼(ECC)處理之一ECC引擎之一資料儲存裝置;1 is a block diagram of a particular illustrative embodiment of a system including a data storage device having one of an ECC engine having assigned error correction coding (ECC) processing;

圖2係用以執行分配的ECC處理之一系統之一特定說明性實施例之一方塊圖;2 is a block diagram of one particular illustrative embodiment of one of the systems for performing an assigned ECC process;

圖3係流水線化的分配的ECC處理之一特定說明性實施例之一資料流程圖;3 is a data flow diagram of one of the specific illustrative embodiments of one of the pipelined ECC processes;

圖4A至圖4B係一方法之一特定說明性實施例之流程圖,該方法用以基於一分配的ECC處理系統中之子區塊處理之結果而在資料區塊處理期間控制一陳氏搜尋;且4A-4B are flow diagrams of a particular illustrative embodiment of a method for controlling a Chen search during data block processing based on the results of sub-block processing in an allocated ECC processing system; And

圖5係分配的ECC處理之一方法之一特定說明性實施例之一流程圖。Figure 5 is a flow diagram of one of the specific illustrative embodiments of one of the methods of ECC processing assigned.

100...系統100. . . system

102...資料儲存裝置102. . . Data storage device

104...主機裝置104. . . Host device

110...控制器110. . . Controller

112...記憶體112. . . Memory

114...錯誤修正編碼引擎114. . . Error correction coding engine

116...讀取資料116. . . Reading data

120...錯誤修正編碼頁120. . . Error correction code page

121...第一子區塊/子字121. . . First subblock/subword

122...第二子區塊/子字122. . . Second subblock/subword

123...第三子區塊/子字123. . . Third subblock/subword

124...第四子區塊/子字124. . . Fourth subblock/subword

125...第一子錯誤修正編碼資料125. . . First sub-error correction code data

126...第二子錯誤修正編碼資料126. . . Second sub-correction coding data

127...第三子錯誤修正編碼資料127. . . Third sub-correction coding data

128...第四子錯誤修正編碼資料128. . . Fourth sub-correction coding data

129...同位區塊/錯誤修正編碼資料129. . . Co-located block/error correction coding data

130...資料區塊130. . . Data block

140...子區塊錯誤修正編碼解碼器140. . . Subblock error correction codec

142...資料區塊錯誤修正編碼解碼器142. . . Data block error correction codec

Claims (24)

一種方法,其包括:在一記憶體裝置之一控制器中:接收包含一資料區塊及該資料區塊之主錯誤修正編碼(ECC)資料之資料,該資料區塊包含資料之一第一子區塊及對應於該第一子區塊之第一ECC資料;起始一資料區塊ECC操作以使用該主ECC資料來處理該資料區塊;起始一子區塊ECC操作以使用該第一ECC資料來處理該第一子區塊;及基於該子區塊ECC操作之一結果而選擇性地起始該資料區塊ECC操作之一錯誤位置搜尋。A method comprising: receiving, in a controller of a memory device, data comprising a data block and a main error correction coding (ECC) data of the data block, the data block comprising one of the first data a sub-block and a first ECC data corresponding to the first sub-block; starting a data block ECC operation to process the data block using the main ECC data; starting a sub-block ECC operation to use the First ECC data to process the first sub-block; and selectively initiating an error location search for the data block ECC operation based on one of the sub-block ECC operations. 如請求項1之方法,其中回應於該子區塊ECC操作指示該第一子區塊中之不可修正錯誤,起始該錯誤位置搜尋以在該第一子區塊之一開始處開始。The method of claim 1, wherein in response to the sub-block ECC operation indicating an uncorrectable error in the first sub-block, the error location search is initiated to begin at one of the beginning of the first sub-block. 如請求項1之方法,其中該錯誤位置搜尋包含一陳氏搜尋。The method of claim 1, wherein the error location search comprises a Chen search. 如請求項1之方法,其中該資料區塊包含一第二子區塊及對應於該第二子區塊之第二ECC資料,且其中該子區塊ECC操作進一步使用該第二ECC資料來處理該第二子區塊。The method of claim 1, wherein the data block includes a second sub-block and a second ECC data corresponding to the second sub-block, and wherein the sub-block ECC operation further uses the second ECC data Processing the second sub-block. 如請求項4之方法,其中該子區塊ECC操作係流水線化且其中該第二子區塊之處理與該第一子區塊之處理至少部分地重疊。The method of claim 4, wherein the sub-block ECC operation is pipelined and wherein processing of the second sub-block at least partially overlaps processing of the first sub-block. 如請求項1之方法,其中該資料區塊ECC操作判定該資料中之錯誤之一第一數目,且其進一步包括:將錯誤之該第一數目與由該子區塊ECC操作修正之錯誤之一第二數目進行比較。The method of claim 1, wherein the data block ECC operation determines a first number of errors in the data, and further comprising: correcting the first number of errors with an error corrected by the sub-block ECC operation A second number is compared. 如請求項1之方法,其中該資料區塊包含多個子區塊,且其進一步包括:控制該錯誤位置搜尋以處理在該子區塊ECC操作期間被識別為具有不可修正錯誤之該多個子區塊中之每一者。The method of claim 1, wherein the data block comprises a plurality of sub-blocks, and further comprising: controlling the error location search to process the plurality of sub-regions identified as having uncorrectable errors during the sub-block ECC operation Each of the blocks. 如請求項7之方法,其進一步包括在完成被識別為具有不可修正錯誤之該多個子區塊中之每一者之該錯誤位置搜尋之後:將經修正錯誤之一數目與該資料中之錯誤之一第一數目進行比較,其中由該資料區塊ECC操作判定錯誤之該第一數目;及回應於錯誤之該第一數目超過經修正錯誤之該數目,控制該錯誤位置搜尋以處理該主ECC資料。The method of claim 7, further comprising, after completing the search for the error location of each of the plurality of sub-blocks identified as having an uncorrectable error: a number of the corrected errors and an error in the material Comparing a first number, wherein the first number of errors is determined by the data block ECC operation; and controlling the error location search to process the primary in response to the first number of errors exceeding the number of corrected errors ECC information. 如請求項8之方法,其中錯誤之該第一數目係基於對應於該資料區塊之一關鍵方程式之一階數。The method of claim 8, wherein the first number of errors is based on an order corresponding to one of the key equations of the data block. 如請求項8之方法,其進一步包括:當在該主ECC資料中修正一或多個錯誤時更新經修正錯誤之該數目;及當錯誤之該第一數目超過經修正錯誤之該數目時,控制該錯誤位置搜尋以處理在該子區塊ECC操作期間未被識別為具有不可修正錯誤之該多個子區塊中之至少一者。The method of claim 8, further comprising: updating the number of corrected errors when one or more errors are corrected in the primary ECC profile; and when the first number of errors exceeds the number of corrected errors, The error location search is controlled to process at least one of the plurality of sub-blocks that were not identified as having an uncorrectable error during the sub-block ECC operation. 如請求項1之方法,其中該記憶體裝置進一步包括一非揮發性記憶體,且其中藉由以下各項來執行接收該資料:自該非揮發性記憶體讀取該資料;及將該所讀取資料發送至該控制器之一ECC引擎。The method of claim 1, wherein the memory device further comprises a non-volatile memory, and wherein receiving the data is performed by: reading the data from the non-volatile memory; and reading the data The data is sent to one of the ECC engines of the controller. 如請求項1之方法,其中:藉由以下各項來執行起始該資料區塊ECC操作:將該資料提供至一資料區塊ECC解碼器之一輸入;及指示該資料區塊ECC解碼器開始處理該資料;及藉由以下各項來執行起始該子區塊ECC操作:將該資料提供至一子區塊ECC解碼器之一輸入;及指示該子區塊ECC解碼器開始處理該資料。The method of claim 1, wherein: the initiating the data block ECC operation is performed by: providing the data to an input of a data block ECC decoder; and indicating the data block ECC decoder Initiating processing of the data; and performing the initiating the sub-block ECC operation by: providing the data to an input of a sub-block ECC decoder; and instructing the sub-block ECC decoder to begin processing data. 如請求項12之方法,其中實質上同時起始該資料區塊ECC操作及該子區塊ECC操作。The method of claim 12, wherein the data block ECC operation and the sub-block ECC operation are initiated substantially simultaneously. 如請求項1之方法,其中藉由以下各項來執行基於該子區塊ECC操作之該結果選擇性地起始該資料區塊ECC操作之該錯誤位置搜尋:接收指示不可由該子區塊ECC操作修正之一子區塊之一開始位元位置之開始位置資料;接收指示對應於不可由該子區塊ECC操作修正之該子區塊之ECC資料之一結束位元位置之結束位置資料;及起始該錯誤位置搜尋以自該開始位元位置至該結束位元位置順序地處理該資料。The method of claim 1, wherein the error location search for selectively starting the data block ECC operation based on the result of the sub-block ECC operation is performed by: receiving an indication that the sub-block is not available The ECC operation corrects the start position data of the start bit position of one of the sub-blocks; and receives the end position data of the end bit position corresponding to one of the ECC data of the sub-block that cannot be corrected by the sub-block ECC operation. And starting the error location search to sequentially process the data from the start bit position to the end bit position. 如請求項1之方法,其中該資料區塊ECC操作包含一主症狀碼產生處理程序、一主關鍵方程式產生處理程序及一主錯誤位置處理程序,且其中該子區塊ECC操作包含一子區塊症狀碼產生處理程序、一子區塊關鍵方程式產生處理程序及該資料區塊中之每一子區塊之一子區塊錯誤位置處理程序。The method of claim 1, wherein the data block ECC operation comprises a main symptom code generation processing program, a main key equation generation processing program, and a main error position processing program, and wherein the sub-block ECC operation includes a sub-region The block symptom code generation processing program, a sub-block key equation generation processing program, and one sub-block error position processing program of each sub-block in the data block. 一種資料儲存裝置,其包括:一記憶體;及一控制器,其耦合至該記憶體,其中該控制器包括一錯誤修正編碼(ECC)引擎,該錯誤修正編碼(ECC)引擎包含:一資料區塊ECC解碼器,其經組態以處理自該記憶體擷取之資料,該資料包含一資料區塊及該資料區塊之主錯誤修正編碼(ECC)資料;及一子區塊ECC解碼器,其經組態以處理該資料區塊之子區塊及對應於該等子區塊之ECC資料,其中該ECC引擎經組態以實質上同時起始該資料區塊ECC解碼器處及該子區塊ECC解碼器處之該資料之處理。A data storage device comprising: a memory; and a controller coupled to the memory, wherein the controller includes an error correction coding (ECC) engine, the error correction coding (ECC) engine comprising: a data a block ECC decoder configured to process data retrieved from the memory, the data comprising a data block and a primary error correction coding (ECC) data of the data block; and a sub-block ECC decoding And configured to process sub-blocks of the data block and ECC data corresponding to the sub-blocks, wherein the ECC engine is configured to initiate the data block ECC decoder substantially simultaneously and Processing of the data at the sub-block ECC decoder. 如請求項16之資料儲存裝置,其中該ECC引擎經組態以基於該子區塊ECC解碼器之一結果而選擇性地起始該資料區塊ECC解碼器處之一錯誤位置搜尋。The data storage device of claim 16, wherein the ECC engine is configured to selectively initiate an error location search at the data block ECC decoder based on a result of one of the sub-block ECC decoders. 如請求項17之資料儲存裝置,其中該ECC引擎進一步包括控制電路,該控制電路回應於該子區塊ECC解碼器且經組態以選擇該資料區塊ECC解碼器處之該錯誤位置搜尋之一開始位置以搜尋由該子區塊ECC解碼器識別為不可修正之子區塊中之錯誤。The data storage device of claim 17, wherein the ECC engine further comprises a control circuit responsive to the sub-block ECC decoder and configured to select the error location search at the data block ECC decoder A start position is to search for errors in the sub-blocks identified by the sub-block ECC decoder as uncorrectable. 如請求項16之資料儲存裝置,其中該記憶體係一快閃記憶體。The data storage device of claim 16, wherein the memory system is a flash memory. 如請求項19之資料儲存裝置,其中該資料儲存裝置係以下各項中之一者:一快閃記憶體卡;一通用串列匯流排(USB)快閃磁碟機;一固態磁碟機(SSD);及一嵌入式快閃記憶體。The data storage device of claim 19, wherein the data storage device is one of: a flash memory card; a universal serial bus (USB) flash drive; and a solid state disk drive (SSD); and an embedded flash memory. 一種資料儲存裝置,其包括:一快閃記憶體;及一控制器,其耦合至該快閃記憶體,其中該控制器包括一錯誤修正編碼(ECC)引擎,該錯誤修正編碼(ECC)引擎包含:一資料區塊ECC解碼器,其經組態以處理自該快閃記憶體擷取之資料,該資料包含一資料區塊及該資料區塊之主錯誤修正編碼(ECC)資料;一子區塊ECC解碼器,其經組態以處理該資料區塊之子區塊及對應於該等子區塊之ECC資料;及控制電路,其回應於該子區塊ECC解碼器且經組態以選擇該資料區塊ECC解碼器處之一錯誤位置搜尋之一開始位置以搜尋由該子區塊ECC解碼器識別為不可修正之子區塊中之錯誤。A data storage device comprising: a flash memory; and a controller coupled to the flash memory, wherein the controller includes an error correction coding (ECC) engine, the error correction coding (ECC) engine The method includes: a data block ECC decoder configured to process data retrieved from the flash memory, the data comprising a data block and a main error correction coding (ECC) data of the data block; a sub-block ECC decoder configured to process sub-blocks of the data block and ECC data corresponding to the sub-blocks; and control circuitry responsive to the sub-block ECC decoder and configured The error location is searched for by one of the error locations at the ECC decoder of the data block to search for an error in the sub-block identified by the sub-block ECC decoder as uncorrectable. 如請求項21之資料儲存裝置,其中該ECC引擎經組態以實質上同時起始該資料區塊ECC解碼器處及該子區塊ECC解碼器處之該資料之處理。The data storage device of claim 21, wherein the ECC engine is configured to initiate processing of the data at the data block ECC decoder and the sub-block ECC decoder substantially simultaneously. 如請求項21之資料儲存裝置,其中該資料儲存裝置經組態而以可抽換方式耦合至一主機裝置。The data storage device of claim 21, wherein the data storage device is configured to be replaceably coupled to a host device. 如請求項21之資料儲存裝置,其中該資料儲存裝置經組態以耦合至一主機裝置作為嵌入式記憶體。The data storage device of claim 21, wherein the data storage device is configured to be coupled to a host device as an embedded memory.
TW100133246A 2011-09-15 2011-09-15 System and method of distributive ECC processing TW201312578A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
TW100133246A TW201312578A (en) 2011-09-15 2011-09-15 System and method of distributive ECC processing

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW100133246A TW201312578A (en) 2011-09-15 2011-09-15 System and method of distributive ECC processing

Publications (1)

Publication Number Publication Date
TW201312578A true TW201312578A (en) 2013-03-16

Family

ID=48482593

Family Applications (1)

Application Number Title Priority Date Filing Date
TW100133246A TW201312578A (en) 2011-09-15 2011-09-15 System and method of distributive ECC processing

Country Status (1)

Country Link
TW (1) TW201312578A (en)

Similar Documents

Publication Publication Date Title
US8392807B2 (en) System and method of distributive ECC processing
US9197247B2 (en) Memory system and error correction method
KR101369444B1 (en) Hybrid error correction coding to address uncorrectable errors
US8719677B2 (en) Using ECC encoding to verify an ECC decode operation
US8726140B2 (en) Dummy data padding and error code correcting memory controller, data processing method thereof, and memory system including the same
KR102277521B1 (en) Storage device and read reclaim and reading method thereof
JP4856110B2 (en) Chain search apparatus and chain search method
US20150154111A1 (en) Apparatus and method of offloading processing from a data storage device to a host device
US8954816B2 (en) Error correction coding (ECC) decode operation scheduling
WO2015047688A1 (en) Updating read voltages
JP2009211742A (en) Error correcting device and error correcting method
TW201346923A (en) Erasure correction using single error detection parity
US11687408B2 (en) Memory sub-system codeword quality metrics streaming
US9553608B2 (en) Data storage device decoder and method of operation
KR102503169B1 (en) Semiconductor memory device and operating method thereof
KR101157516B1 (en) BCH codec with improved data processing efficiency
KR101367351B1 (en) System and method of distributive ecc processing
TW201312578A (en) System and method of distributive ECC processing
CN112346651A (en) Controller for semiconductor memory device and method of operating the same
KR101982381B1 (en) Performance optimization of data transfer for soft information generation
JP5121947B2 (en) Error correction apparatus and error correction method