[go: up one dir, main page]

TWI523023B - Ecc method for memory - Google Patents

Ecc method for memory Download PDF

Info

Publication number
TWI523023B
TWI523023B TW103101910A TW103101910A TWI523023B TW I523023 B TWI523023 B TW I523023B TW 103101910 A TW103101910 A TW 103101910A TW 103101910 A TW103101910 A TW 103101910A TW I523023 B TWI523023 B TW I523023B
Authority
TW
Taiwan
Prior art keywords
ecc
data set
bit
predetermined value
additional
Prior art date
Application number
TW103101910A
Other languages
Chinese (zh)
Other versions
TW201530553A (en
Inventor
郭乃萍
黃世昌
張欽鴻
陳耕暉
張坤龍
洪俊雄
Original Assignee
旺宏電子股份有限公司
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 旺宏電子股份有限公司 filed Critical 旺宏電子股份有限公司
Priority to TW103101910A priority Critical patent/TWI523023B/en
Publication of TW201530553A publication Critical patent/TW201530553A/en
Application granted granted Critical
Publication of TWI523023B publication Critical patent/TWI523023B/en

Links

Landscapes

  • Techniques For Improving Reliability Of Storages (AREA)
  • Read Only Memory (AREA)

Description

用於記憶體之錯誤校正碼方法 Error correction code method for memory

本案是有關於包括錯誤校正碼(Error Correction Code,ECC)邏輯之記憶體裝置及系統。 This case is related to memory devices and systems including Error Correction Code (ECC) logic.

用於積體電路記憶體之記憶體技術正朝向體積越來越小的技術發展,且應用於單一積體電路之越來越大的記憶體陣列上。隨著記憶胞(Memory Cell)之技術前進,用於感測資料之容限(Margin)會變成更嚴謹。又,在記憶胞狀態之擾動(由存取記憶胞及存取鄰近記憶胞之高速及高容積所導致)存在時,記憶胞保留資料值之能力(亦即,持久性)更受限於更嚴謹的容限。 The memory technology for integrated circuit memory is evolving toward smaller and smaller technologies and is applied to larger and larger memory arrays of a single integrated circuit. As the technology of Memory Cell advances, the tolerance for sensing data becomes more rigorous. Moreover, when the disturbance of the memory cell state (caused by accessing the memory cell and accessing the high speed and high volume of the adjacent memory cell) exists, the ability of the memory cell to retain the data value (ie, persistence) is more limited by Rigorous tolerance.

當這些技術著重在尺寸及密度上時,為了處理因更嚴謹的容限及記憶胞擾動而出現的關鍵問題,使用嵌入於積體電路記憶體之錯誤校正碼(ECC)已變得更普及。 When these techniques focus on size and density, the use of error correction codes (ECC) embedded in integrated circuit memory has become more popular in order to address critical issues arising from more stringent tolerances and memory cell perturbations.

通常將快閃記憶體設計成可藉由區塊抹除來一次抹除一區塊。當抹除一區塊時,區塊中之記憶胞被設定到邏輯值,例如1。在抹除了一區塊之後,區塊中之記憶胞可被程式化至不同數值,例如0。一旦記憶胞被程式化至0,對被程式化記憶胞之區塊進行區塊抹除可將記憶胞改回至1。一旦一區塊中之某些 記憶胞(例如區塊之一選擇的位元組(byte)或字(word)中的晶胞)係在一第一編程操作期間被程式化至0,在相同區塊之不同位元組或字中之其他記憶胞(已知是處於抹除狀態),仍然可在一第二編程操作期間被程式化至0,而不需要預先抹除此區塊。在本說明中,伴隨著對相同區塊中之不同位置所進行之第一編程操作及第二編程操作之一區塊抹除,可被稱為雙重圖案化。當然,當每個編程操作係針對此區塊之一不同部分以達成一"多重圖案化操作"時,區塊抹除操作可以伴隨著多重編程操作(兩個以上)。 Flash memory is typically designed to erase a block at a time by block erasing. When a block is erased, the memory cells in the block are set to a logical value, such as 1. After erasing a block, the memory cells in the block can be programmed to different values, such as zero. Once the memory cell is programmed to zero, block erase of the block of the stylized memory cell can change the memory cell back to 1. Once in a block A memory cell (eg, a byte selected in one of the blocks or a cell in a word) is programmed to 0 during a first programming operation, in a different byte of the same block or The other memory cells in the word (known to be in the erased state) can still be programmed to zero during a second programming operation without the need to pre-erase the block. In the present description, a block erasing along with a first programming operation and a second programming operation for different locations in the same block may be referred to as double patterning. Of course, when each programming operation is directed to a different portion of the block to achieve a "multiple patterning operation," the block erase operation can be accompanied by multiple programming operations (two or more).

在雙重或多重圖案化操作中,一錯誤校正碼(ECC)可在第一編程操作期間,被計算並程式化於此區塊中之一特定位置。然而,因為區塊抹除之一記憶體中的第二編程操作的關係,無法安全地改變ECC。ECC無法在第二編程操作中安全地被改變,這是因為一再計算出的ECC,必須將ECC中之至少一位元從0(被程式化狀態)改變成1(抹除狀態),且此改變將需要一區塊抹除,這將抹除整個區塊中的資料。 In a dual or multiple patterning operation, an error correction code (ECC) can be calculated and programmed into a particular location in the block during the first programming operation. However, because the block erases the relationship of the second programming operation in one of the memories, the ECC cannot be safely changed. The ECC cannot be safely changed in the second programming operation because the ECC calculated repeatedly must change at least one bit in the ECC from 0 (stylized state) to 1 (erased state), and this The change will require a block erase, which will erase the data in the entire block.

較好可以提供一種解決方法,用於確實地控制雙重圖案化及多重圖案化操作之錯誤偵測及修正用之ECC邏輯之利用。 Preferably, a solution is provided for reliably controlling the use of ECC logic for error detection and correction of double patterning and multiple patterning operations.

一種記憶體之操作方法包括:儲存複數個資料集(例如分頁),以及資料集用之複數個錯誤校正碼ECC於記憶體中,資料集包括複數個可編址段(例如字或位元組)。當將新資料寫入 在記憶體中之一選擇資料集之其中一個可編址段中時,如果儲存新資料及事先在選擇資料集中被程式化之資料之一些可編址段包括至少一預定數目之可編址段,則可為選擇資料集計算並儲存一ECC。預定數目可以是選擇資料集中之全部的可編址段。 A method of operating a memory includes: storing a plurality of data sets (eg, paging), and a plurality of error correction codes ECC for the data set in the memory, the data set including a plurality of addressable segments (eg, words or bytes) ). When writing new data When one of the memory selects one of the addressable segments of the data set, if the new data is stored and some of the addressable segments of the data that were previously programmed in the selected data set include at least a predetermined number of addressable segments , you can calculate and store an ECC for the selected data set. The predetermined number may be all of the addressable segments of the selected data set.

複數個指示可以與資料集一起被儲存,資料集表示是否致能或禁能與資料集一起被儲存之ECC之使用。這些指示可藉由儲存擴展ECC(例如128位元資料用之xtECC[9:0])而被提供,擴展ECC包括資料集之ECC之一欄位(例如128位元資料用之xtECC[7:0])、從ECC衍生出的一第一額外ECC位元之一欄位(例如xtECC[8])以及一第二額外ECC位元用一欄位(例如xtECC[9])。對ECC執行一邏輯互斥函數(logical exclusive-OR function)而衍生出第一額外ECC位元。擴展ECC可表示是否致能或禁能與資料集一起被儲存之ECC之使用。 A plurality of indications can be stored with the data set indicating whether the enabling or disabling of the ECC stored with the data set is enabled. These indications may be provided by storing extended ECC (eg, xtECC[9:0] for 128-bit data), which extends one of the ECC fields of the data set (eg, 128-bit data for xtECC[7: 0]), a field of a first additional ECC bit derived from the ECC (eg, xtECC[8]) and a second additional ECC bit are used in a field (eg, xtECC[9]). A first extra ECC bit is derived by performing a logical exclusive-OR function on the ECC. Extended ECC can indicate whether the use of ECC stored with the data set is enabled or disabled.

擴展ECC可具有一第一預定值(例如128位元資料用之9'h000)、一第二預定值(例如128位元資料用之9'h1C0)以及一計算值,第一預定值供第一額外位元與ECC使用,表示一第一狀態以禁能ECC之欄位中的資料之使用,第二預定值供第一額外位元與ECC使用,表示一第二狀態,於其中擴展ECC原始具有等於第一預定值之一計算值,而計算值表示一第三狀態,包括在ECC之欄位中的複數個計算出的ECC,以及在從計算出的ECC衍生出的第一額外ECC位元之欄位中的一位元。 The extended ECC may have a first predetermined value (eg, 9'h000 for 128-bit data), a second predetermined value (eg, 9'h1C0 for 128-bit data), and a calculated value, the first predetermined value for the first An extra bit is used with the ECC to indicate a first state to disable the use of data in the field of the ECC, the second predetermined value being used by the first extra bit and the ECC to indicate a second state in which the ECC is extended The original has a calculated value equal to one of the first predetermined values, and the calculated value represents a third state, including a plurality of calculated ECCs in the field of the ECC, and a first additional ECC derived from the calculated ECC One of the bits in the bit field.

此方法包括:如果儲存新資料及事先在選擇資料集 中被程式化之資料之一些可編址段包括至少一預定數目(例如全部)之可編址段,則使用選擇資料集之一擴展ECC之一計算值,且一錯誤狀況不會發生(於此錯誤狀況中,選擇資料集已經於新資料用之可編址段被程式化)。 This method includes: if you store new data and select the data set in advance Some of the addressable segments of the stylized data include at least a predetermined number (eg, all) of addressable segments, and one of the selected data sets is used to extend the calculated value of one of the ECCs, and an error condition does not occur (in In this error condition, the selected data set has been programmed in the addressable section of the new data.

此方法包括:如果選擇資料集係事先於新資料用之可編址段被程式化,則將擴展ECC設定成第一預定值,藉以表示禁能與選擇資料集一起被儲存之ECC之使用。此方法包括:如果擴展ECC等於第一預定值,且選擇資料集並未於新資料之可編址段被程式化,則將擴展ECC設定成第二預定值。 The method includes: if the selected data set is pre-programmed with the addressable segment for the new data, the extended ECC is set to a first predetermined value to indicate the use of the ECC that is disabled and stored with the selected data set. The method includes setting the extended ECC to a second predetermined value if the extended ECC is equal to the first predetermined value and the selected data set is not programmed in the addressable segment of the new data.

此方法更包括:將第二額外ECC位元設定成一數值,用於表示選擇資料集係在至少一可編址段中被程式化。一空白或未被程式化狀態可起因於資料集之一區塊抹除,以使位於空白ECC狀態之一ECC包括所有"1"。在一區塊抹除之後,第一額外ECC位元亦包括一數值'1'。一ECC之一計算值亦可以是所有"1",而ECC之第一額外ECC位元應具有一數'0',如於此所說明的。然而,在一保留錯誤的情況下,第一額外ECC位元可錯誤地改變成'1'。在那種情況下,為了決定ECC之使用是否應被致能的,一讀取操作無法分辨全為"1s"之ECC,以及具有一數值"1"之第一額外ECC位元是否是計算值或位於抹除狀態。第二額外ECC位元從而用於表示選擇資料集是否在至少一可編址段中被程式化。 The method further includes setting the second additional ECC bit to a value indicating that the selected data set is stylized in the at least one addressable segment. A blank or unstylized state can result from a block erase of the data set such that one of the ECCs located in the blank ECC state includes all "1"s. After a block erase, the first additional ECC bit also includes a value of '1'. One of the ECC calculations may also be all "1", and the first additional ECC bit of the ECC shall have a number '0', as explained herein. However, in the case of a reservation error, the first additional ECC bit may be erroneously changed to '1'. In that case, in order to determine whether the use of ECC should be enabled, a read operation cannot resolve ECCs that are all "1s", and whether the first extra ECC bits with a value of "1" are calculated values. Or in the erase state. The second additional ECC bit is thus used to indicate whether the selected data set is stylized in at least one addressable segment.

包括一ECC(例如128位元資料之xtECC[7:0])、一 第一額外ECC位元(例如xtECC[8])以及一第二額外ECC位元(例如xtECC[9])之一擴展ECC(例如128位元資料之xtECC[9:0]),係可從一選擇資料集被讀取,於此第一額外ECC位元係藉由使用一邏輯函數而從ECC衍生出。如果ECC之邏輯函數等於第一額外ECC位元,且ECC並不等於表示第一狀態之第一預定值以禁能ECC之使用,則可致能與選擇資料集一起被儲存之ECC之使用。 Includes an ECC (eg xtECC[7:0] of 128-bit data), one One of the first additional ECC bits (eg, xtECC[8]) and a second additional ECC bit (eg, xtECC[9]) extends the ECC (eg, xtECC[9:0] of 128-bit data), A selection data set is read, and the first additional ECC bits are derived from the ECC by using a logic function. If the logic function of the ECC is equal to the first additional ECC bit and the ECC is not equal to the first predetermined value representing the first state to disable the use of the ECC, then the use of the ECC stored with the selected data set may be enabled.

此方法包括:將ECC設定成表示第一狀態之第一預定值(例如9'h000),然後致能具有選擇資料集之ECC之使用。邏輯函數可以是一邏輯互斥函數,如果ECC之邏輯函數並不等於第一額外ECC位元,且ECC等於第二預定值(例如9'h1C0)(表示第二狀態,其中ECC原始具有等於第一預定值之一計算值)的話。 The method includes setting the ECC to a first predetermined value indicative of the first state (e.g., 9 'h000), and then enabling use of the ECC having the selected data set. The logic function may be a logical mutually exclusive function, if the logic function of the ECC is not equal to the first additional ECC bit, and the ECC is equal to the second predetermined value (eg, 9'h1C0) (representing the second state, where the ECC originally has equal to the first If one of the predetermined values is calculated).

此方法包括:讀取第二額外ECC位元,表示選擇資料集是否在至少一可編址段中被程式化;以及致能與選擇資料集一起被儲存之ECC之使用,如果ECC之邏輯函數並不等於第一額外ECC位元、ECC等於表示一空白ECC狀態之一空白值(例如8'hFF),以及第二額外ECC位元表示選擇資料集在至少一可編址段中被程式化的話。一空白ECC狀態可起因於資料集之一區塊抹除,以使位於空白ECC狀態之一ECC位於抹除狀態,例如所有"1"。第一與第二狀態用之第一與第二預定值係被預先決定成不同於空白值。 The method includes: reading a second additional ECC bit indicating whether the selected data set is programmed in at least one addressable segment; and enabling use of the ECC stored with the selected data set, if the logic function of the ECC Not equal to the first additional ECC bit, the ECC is equal to one blank value indicating a blank ECC state (eg, 8'hFF), and the second additional ECC bit indicates that the selected data set is stylized in at least one addressable segment if. A blank ECC state can result from a block erase of the data set such that ECC located in one of the blank ECC states is in an erased state, such as all "1"s. The first and second predetermined values for the first and second states are predetermined to be different from the blank value.

為了對本案之上述及其他方面有更佳的瞭解,下文 特舉較佳實施例,並配合所附圖式,作詳細說明如下: In order to better understand the above and other aspects of the case, the following The preferred embodiment is described in detail with reference to the accompanying drawings, as follows:

100‧‧‧記憶體 100‧‧‧ memory

105‧‧‧資料匯流排 105‧‧‧ data bus

110‧‧‧控制器 110‧‧‧ Controller

120‧‧‧偏壓配置電源電壓方塊 120‧‧‧ Bias Configuration Power Supply Voltage Block

130‧‧‧匯流排 130‧‧‧ Busbars

140‧‧‧列解碼器 140‧‧‧ column decoder

145‧‧‧字線 145‧‧‧ word line

150‧‧‧ECC邏輯 150‧‧‧ECC Logic

155‧‧‧信號 155‧‧‧ signal

160‧‧‧資料集 160‧‧‧ data set

165‧‧‧位元線 165‧‧‧ bit line

170‧‧‧分頁緩衝器 170‧‧ ‧ page buffer

175‧‧‧資料匯流排 175‧‧‧ data bus

190‧‧‧輸入/輸出電路 190‧‧‧Input/Output Circuit

210‧‧‧第一局部資料集編程操作 210‧‧‧First partial data set programming operation

211‧‧‧其他位址 211‧‧‧Other addresses

212‧‧‧陣列之ECC 212‧‧‧Array of ECC

213‧‧‧第一額外ECC位元及第二額外位元 213‧‧‧First extra ECC bit and second extra bit

220‧‧‧第二局部資料集編程操作 220‧‧‧Second partial data set programming operation

221‧‧‧其他位址 221‧‧‧Other addresses

222‧‧‧資料集之ECC 222‧‧‧ ECC of the data set

223‧‧‧第一額外ECC位元及第二額外位元 223‧‧‧First extra ECC bit and second extra bit

230‧‧‧最後局部陣列操作 230‧‧‧Last local array operation

232‧‧‧ECC 232‧‧‧ECC

233‧‧‧第一額外ECC位元 233‧‧‧First additional ECC bits

305、310、320、330、340、341、343、350、360、365、370、375、380、385、390‧‧‧步驟 305, 310, 320, 330, 340, 341, 343, 350, 360, 365, 370, 375, 380, 385, 390 ‧ ‧ steps

410、420、430、440、451、453、460、470、480、490‧‧‧步驟 410, 420, 430, 440, 451, 453, 460, 470, 480, 490 ‧ ‧ steps

510、520、530、550、551、560、561、563、570、571‧‧‧步驟 510, 520, 530, 550, 551, 560, 561, 563, 570, 571 ‧ ‧ steps

第1圖係為依據一實施例之一積體電路記憶體之簡化晶片方塊圖。 1 is a simplified wafer block diagram of an integrated circuit memory in accordance with an embodiment.

第2圖顯示一記憶體中之局部資料集編程操作。 Figure 2 shows the local data set programming operation in a memory.

第3圖係為一記憶體中之編程操作之流程圖。 Figure 3 is a flow chart of the programming operation in a memory.

第4圖係為使用擴展ECC之ECC產生之流程圖。 Figure 4 is a flow chart for ECC generation using extended ECC.

第5圖係為使用擴展ECC之讀取操作之流程圖。 Figure 5 is a flow chart of a read operation using extended ECC.

以下參考附圖而提供本案之複數個實施例之詳細說明。 A detailed description of a plurality of embodiments of the present invention is provided below with reference to the accompanying drawings.

隨著積體電路記憶體中之記憶胞的技術尺寸縮小,用於感測資料之容限會變得更嚴謹,因而在記憶胞狀態之擾動(由存取記憶胞及存取鄰近記憶胞之高速及高容積所導致)存在時,限制了記憶胞保留資料值之能力。為了處理起因於更嚴謹的容限與記憶胞擾動的議題,可使用嵌入於積體電路記憶體之錯誤校正碼(ECC)。 As the technical size of the memory cells in the memory of the integrated circuit is reduced, the tolerance for sensing data becomes more rigorous, and thus the disturbance of the memory cell state (by accessing the memory cell and accessing the adjacent memory cell) In the presence of high speed and high volume, the ability of the memory cell to retain data values is limited. In order to deal with issues arising from more stringent tolerances and memory cell perturbations, an error correction code (ECC) embedded in the integrated circuit memory can be used.

一種完整資料集編程操作係為將位於資料集中之每個位址之資料集予以程式化。當利用完整資料集編程操作而程式化一資料集(例如一分頁之記憶胞)時,可計算出此資料集之ECC並與資料集一起被儲存。一局部資料集編程操作係用於將位於資 料集中之某些而非所有位址之資料集予以程式化。當利用一第一局部資料集編程操作而程式化一資料集時,可計算出此資料集之ECC並與資料集一起被儲存。然而,當利用一在第一局部資料集編程操作之後的第二局部資料集編程操作來程式化資料集時,此資料集之ECC將無法被更新(理由於底下說明之),從而對利用多重局部資料集編程操作而程式化之資料集使用ECC可能失敗。 A complete data set programming operation is to program a set of data located at each address in the data set. When a data set (eg, a paged memory cell) is programmed with a full data set programming operation, the ECC of the data set can be calculated and stored with the data set. A partial data set programming operation is used to locate The data set of some, but not all, addresses in the collection is stylized. When a data set is programmed using a first partial data set programming operation, the ECC of the data set can be calculated and stored with the data set. However, when a data set is programmed using a second partial data set programming operation after the first partial data set programming operation, the ECC of the data set cannot be updated (for the reasons explained below), thereby utilizing multiple Local dataset programming operations and stylized datasets may fail using ECC.

本技術藉由使用擴展錯誤校正碼ECC來提供控制邏輯,用於致能由多重局部資料集編程操作而程式化之資料集的ECC之使用,擴展的錯誤校正碼ECC包括資料集之ECC、每一個資料集之一第一額外ECC位元及一第二額外ECC位元。 The present technique provides control logic by using an extended error correction code ECC for enabling the use of ECC for a data set that is programmed by multiple local data set programming operations. The extended error correction code ECC includes the ECC of the data set, each One of the data sets is a first additional ECC bit and a second additional ECC bit.

第1圖係為依據一實施例之一積體電路記憶體之簡化晶片方塊圖。在第1圖所顯示之例子中,一記憶體100儲存複數個資料集160,該些資料集160包括複數個可編址段以及資料集之擴展錯誤校正碼ECC。擴展ECC包括資料集之ECC、每一個資料集之一第一額外ECC位元及一第二額外ECC位元。 1 is a simplified wafer block diagram of an integrated circuit memory in accordance with an embodiment. In the example shown in FIG. 1, a memory 100 stores a plurality of data sets 160, which include a plurality of addressable segments and an extended error correction code ECC of the data set. The extended ECC includes an ECC of the data set, one of the first additional ECC bits of each data set, and a second additional ECC bit.

在第1圖所顯示之例子中,使用一偏壓配置狀態機之控制器110,係利用方塊120之電壓源或電源供應所產生或提供之電源電壓而控制偏壓配置(例如讀取及程式電壓)之施加。控制器110係耦接至分頁緩衝器170、ECC邏輯150以及具有擴展ECC(包括第一與第二額外ECC位元)之資料集160。ECC邏輯150係經由複數個信號155而耦接至分頁緩衝器170。 In the example shown in FIG. 1, a controller 110 using a bias configuration state machine controls the bias configuration (eg, reading and programming using the voltage source generated or provided by the voltage source or power supply of block 120). Application of voltage). The controller 110 is coupled to the page buffer 170, the ECC logic 150, and the data set 160 having an extended ECC (including the first and second additional ECC bits). ECC logic 150 is coupled to paged buffer 170 via a plurality of signals 155.

在一編程模式中,控制器110所包括的邏輯在將新 資料寫入在記憶體中之一選擇資料集之其中一個可編址段時,可為選擇資料集計算並儲存一ECC,如果儲存新資料及事先在選擇資料集中被程式化之資料之一些可編址段係包括至少一預定數目之可編址段的話。預定數目之可編址段可以是選擇資料集之全部可編址段。舉例而言,如第2圖所示,對一最後的局部陣列操作(例如230)而言,儲存新資料(例如最終字wordx)及事先在選擇資料集中被程式化之資料(例如word0至wordx-1)之一些可編址段包括選擇資料集之全部可編址段。因此,選擇的資料集之ECC(232)係被計算出並與選擇資料集一起被儲存。 In a programming mode, the logic included in the controller 110 can calculate and store an ECC for the selected data set when the new data is written into one of the addressable segments of the selected data set in the memory, if stored. The new information and some of the addressable segments of the data that were previously programmed in the selected data set include at least a predetermined number of addressable segments. The predetermined number of addressable segments may be all of the addressable segments of the selected data set. For example, as shown in FIG. 2, for a final partial array operation (eg, 230), new material (eg, final word word x ) and data previously programmed in the selected data set (eg, word 0 ) are stored. Some of the addressable segments up to word x-1 ) include all of the addressable segments of the selected data set. Therefore, the ECC (232) of the selected data set is calculated and stored with the selected data set.

複數個指示可以與資料集一起被儲存,這些指示表示是否致能或禁能與資料集一起被儲存之ECC之使用。這些指示可藉由儲存擴展ECC(包括資料集之ECC之一欄位,以及從ECC衍生之一第一額外ECC位元之一欄位)而提供。擴展ECC表示是否致能或禁能與資料集一起被儲存之ECC之使用。控制器110另包括一邏輯,此邏輯儲存選擇資料集用之一第二額外ECC位元,以表示選擇資料集係在至少一可編址段中被程式化。 A plurality of indications can be stored with the data set indicating whether the use of the ECC stored with the data set is enabled or disabled. These indications may be provided by storing an extended ECC (including one of the ECC fields of the data set and one of the first additional ECC bits derived from the ECC). Extended ECC indicates whether the use of ECC stored with the data set is enabled or disabled. Controller 110 further includes logic for storing a second additional ECC bit for the selected data set to indicate that the selected data set is stylized in at least one addressable segment.

在一讀取模式中,控制器110包括邏輯,此邏輯從一選擇資料集讀取一擴展ECC(包括一ECC及一第一額外ECC位元),於此,第一額外ECC位元係藉由使用一邏輯函數(Logical Function)而從ECC衍生出。如果ECC之邏輯函數等於第一額外ECC位元,且ECC並不等於指示將ECC使用禁能之一第一狀態之一第一預定值,則控制器110所包括之邏輯可致能ECC(其與選 擇資料集一起被儲存)之使用。藉由使用第二額外ECC位元,控制器110所包括之邏輯可致能一空白資料集之ECC之使用。 In a read mode, the controller 110 includes logic to read an extended ECC (including an ECC and a first additional ECC bit) from a selected data set, where the first additional ECC bit is borrowed. It is derived from ECC by using a Logical Function. If the logic function of the ECC is equal to the first additional ECC bit, and the ECC is not equal to indicating the first predetermined value of one of the first states of the ECC use disable, the logic included in the controller 110 may enable the ECC (which And election Use the data set to be stored together). By using the second additional ECC bit, the logic included in controller 110 can enable the use of an ECC of a blank data set.

控制器110可藉由使用如習知技藝已知的特殊用途邏輯電路(Special-Purpose Logic Circuitry)而被實施。在替代實施例中,控制邏輯包括可在相同的積體電路上被實施之一通用處理器(General-Purpose Processor),通用處理器執行一電腦程式以控制此裝置之操作。在又其他實施例中,可利用特殊用途邏輯電路及通用處理器之組合來實行控制邏輯。 Controller 110 can be implemented using a Special-Purpose Logic Circuitry as is known in the art. In an alternate embodiment, the control logic includes a general-purpose processor that can be implemented on the same integrated circuit, the general purpose processor executing a computer program to control the operation of the device. In still other embodiments, the control logic can be implemented using a combination of special purpose logic circuitry and a general purpose processor.

在第1圖所顯示之例子中,一列解碼器140係耦接至複數條字線145,並沿著資料集160中之列而排列。分頁緩衝器170係耦接至複數條沿著資料集160中之多行排列之位元線165,用於從資料集160讀取資料並寫入資料至資料集160。複數個位址係在匯流排130上從控制器110被提供至分頁緩衝器170與列解碼器140。分頁緩衝器170可包括耦接至資料集160與匯流排130之行解碼器,以及讀取操作用之複數個感測放大器,以及耦接至行解碼器之編程操作之程式緩衝器。於此例子中,分頁緩衝器170係經由資料匯流排175而耦接至輸入/輸出電路190。輸入/輸出電路190將資料驅動至記憶體100外部之目標。輸入/輸出資料及控制信號係透過資料匯流排105而移動,資料匯流排105介於輸入/輸出電路190、記憶體100上之控制器110及輸入/輸出埠或記憶體100內部或外部之其他資料源(例如一通用處理器或特殊用途應用電路,或者提供由資料集160所支持之系統單 晶片功能之模組之一組合)之間。 In the example shown in FIG. 1, a column of decoders 140 is coupled to a plurality of word lines 145 and arranged along columns in the data set 160. The page buffer 170 is coupled to a plurality of bit lines 165 arranged along the plurality of rows in the data set 160 for reading data from the data set 160 and writing the data to the data set 160. A plurality of addresses are provided from the controller 110 to the page buffer 170 and the column decoder 140 on the bus bar 130. The page buffer 170 can include a row decoder coupled to the data set 160 and the bus 130, and a plurality of sense amplifiers for read operations, and a program buffer coupled to the programming operations of the row decoder. In this example, the page buffer 170 is coupled to the input/output circuit 190 via the data bus 175. The input/output circuit 190 drives the data to a target external to the memory 100. The input/output data and control signals are moved through the data bus 105, which is interposed between the input/output circuit 190, the controller 110 on the memory 100, and the input/output port or other internal or external memory 100. Source of data (such as a general purpose processor or special purpose application circuit, or a system list supported by data set 160) Between one of the modules of the chip function).

第2圖顯示依據本實施例之記憶體中之局部資料集編程操作。在第2圖所顯示之例子中,記憶體儲存例如分頁之資料集。資料集包括複數個可編址段(例如字或位元組),以及該記憶體之該些資料集之錯誤校正碼ECC。每個資料集亦可包括一第一額外ECC位元及一第二額外位元。如在本案所說明的,一資料集包括一擴展ECC,而擴展ECC包括一資料集之一ECC、一第一額外ECC位元以及一第二額外位元。在第2圖所顯示之例子中,在一第一局部資料集編程操作(例如210)期間,一第一字(例如word0)係於一資料集中之一第一位址被程式化,而資料集中之其他位址維持未被程式化(例如211)。陣列之ECC(例如212)在第一局部資料集編程操作期間並未被程式化,且維持於一空白或未被程式化狀態。在第一局部資料集編程操作(例如210)之後,第一額外ECC位元及第二額外位元(例如213)亦維持於一空白或未被程式化狀態。 Fig. 2 shows a partial data set programming operation in the memory according to the present embodiment. In the example shown in Figure 2, the memory stores, for example, a paged data set. The data set includes a plurality of addressable segments (eg, words or bytes) and error correction codes ECC for the data sets of the memory. Each data set may also include a first additional ECC bit and a second additional bit. As explained in the present case, a data set includes an extended ECC, and the extended ECC includes one of a data set ECC, a first additional ECC bit, and a second additional bit. In the example shown in FIG. 2, during a first partial data set programming operation (eg, 210), a first word (eg, word 0 ) is programmed in one of the first addresses in a data set, and Other addresses in the dataset remain unprogrammed (eg, 211). The ECC of the array (e.g., 212) is not programmed during the first partial data set programming operation and remains in a blank or unprogrammed state. After the first partial data set programming operation (e.g., 210), the first additional ECC bit and the second additional bit (e.g., 213) are also maintained in a blank or unstylized state.

一空白ECC狀態可起因於資料集之一區塊抹除,以使位於空白ECC狀態之一ECC包括抹除狀態值,例如全部為"1s"。舉例而言,如果一ECC包括8位元,則ECC之空白ECC狀態等於"11111111"或抹除狀態值。在一區塊抹除之後,ECC可具有指示空白ECC狀態之一空白值(例如"11111111")。如於此所說明的資料集之第一額外ECC位元及第二額外ECC位元,亦可在一區塊抹除之後具有一抹除數值(例如'1')。不同位元數目之 ECC對應至不同長度資料,舉例而言,8位元ECC係用於128位元之資料。對一資料集之8位元ECC而言,資料集之擴展ECC包括10位元,其包括ECC之8位元,第一額外ECC位元之1位元以及第二額外ECC位元之1位元。 A blank ECC state may result from a block erase of the data set such that one of the ECC states located in the blank ECC state includes an erase status value, such as all "1s". For example, if an ECC includes 8 bits, the blank ECC status of the ECC is equal to "11111111" or the erased state value. After a block erase, the ECC may have a blank value (eg, "11111111") indicating a blank ECC state. The first additional ECC bit and the second additional ECC bit of the data set as described herein may also have an erase value (eg, '1') after a block erase. Number of different bits The ECC corresponds to different length data. For example, the 8-bit ECC is used for 128-bit data. For an 8-bit ECC of a data set, the extended ECC of the data set includes 10 bits, including 8 bits of ECC, 1 bit of the first additional ECC bit, and 1 bit of the second additional ECC bit. yuan.

在一第二局部資料集編程操作(例如220)期間,一第二字(例如word1)係於資料集之一第二位址被程式化,而資料集之其他位址維持未被程式化(例如221)。資料集之ECC(例如222)在第二局部資料集編程操作期間並未被程式化,且維持於一空白ECC狀態。第一額外ECC位元及第二額外位元(例如223)亦在第二局部資料集編程操作(例如220)之後,維持於一空白或未被程式化狀態。 During a second partial data set programming operation (e.g., 220), a second word (e.g., word 1 ) is programmed in the second address of one of the data sets, while other addresses in the data set remain unprogrammed (eg 221). The ECC of the data set (e.g., 222) is not programmed during the second partial data set programming operation and is maintained in a blank ECC state. The first additional ECC bit and the second additional bit (e.g., 223) are also maintained in a blank or unstylized state after the second partial data set programming operation (e.g., 220).

可執行額外局部資料集編程操作,以將資料集中之更多字予以程式化,直到資料集係於此陣列中之全部的位址被程式化為止。如第2圖所示,在一最後的局部陣列操作(例如230)中,在第二字(例如word1)與最終字(例如wordx)兩者之間的字(例如word2~wordx-1)在資料集中被程式化之後,一最終字(例如wordx)係於資料集之一最後位址被程式化。當資料集之最終字(例如wordx)被程式化時,資料集之ECC(例如232)係被計算出並與資料集一起被儲存。第一額外ECC位元(例如233)亦可在最後的局部資料集編程操作(例如230)期間被計算出並與資料集一起被儲存。因此,在一讀取操作期間,當利用多重局部資料集程式化操作來將資料集程式化時,可致能與資料集一起被儲存之ECC之使 用。第一額外ECC位元及第二額外位元係參考第4圖及第5圖而更進一步作說明。更特別是,在資料集之至少一位址被程式化時,第二額外位元係被程式化。 Additional local dataset programming operations can be performed to program more words in the dataset until the dataset is programmed for all of the addresses in the array. As shown in FIG. 2, in a final partial array operation (eg, 230), a word between a second word (eg, word 1 ) and a final word (eg, word x ) (eg, word 2 ~word x) -1 ) After the data set is stylized, a final word (such as word x ) is stylized in the last address of one of the data sets. When the final word of the data set (eg word x ) is stylized, the ECC (eg 232) of the data set is calculated and stored with the data set. The first additional ECC bit (e.g., 233) may also be calculated during the last partial data set programming operation (e.g., 230) and stored with the data set. Thus, during a read operation, when a multiple local data set stylization operation is used to program the data set, the use of ECCs stored with the data set can be enabled. The first additional ECC bit and the second additional bit are further described with reference to FIGS. 4 and 5. More specifically, when at least one address of the data set is stylized, the second extra bit is stylized.

於一實施例中,資料集中的位址朝第一字至最終字之方向增加,於此第一字係位於最低位址,而最終字係位於資料集中之最高位址。在一替代實施例中,資料集中的位址朝最終字至第一字之方向增加,於此第一字係位於最高位址,而最終字係位於資料集中之最低位址。 In one embodiment, the address in the data set increases in the direction from the first word to the final word, where the first word is located at the lowest address and the final word is located at the highest address in the data set. In an alternate embodiment, the address in the data set increases in the direction of the final word to the first word, where the first word is at the highest address and the final word is at the lowest address in the data set.

結合第3、4及5圖說明控制邏輯,此控制邏輯用於在一資料集中之最終字被程式化時計算並儲存ECC,且用於在一讀取操作期間致能與資料集一起被儲存之ECC之使用。 The control logic is illustrated in conjunction with Figures 3, 4, and 5, which are used to calculate and store the ECC when the final word in a data set is programmed, and to be enabled to be stored with the data set during a read operation. The use of ECC.

第3圖係為記憶體之編程操作之流程圖。在第3圖所顯示之例子中,於步驟305,接收到記憶體之一選擇資料集之其中一個可編址段的新資料。於步驟310,決定新資料之編程操作是否為一完整資料集編程操作或一局部資料集編程操作。如果新資料用之編程操作係為一完整資料集編程操作(步驟310,是),則於步驟320為新資料計算一錯誤校正碼ECC。於步驟330,檢查資料集是否於任何位址被程式化。如果資料集並未於任何位址被程式化,則資料集被稱為空白。如果資料集是空白的(步驟340,是),則於步驟341,資料集係與新資料及從此資料集所計算出之ECC一起被程式化。如果資料集係於任何位址被程式化或不是空白的(步驟340,否),則於步驟343,資料集係與新資料一起被程 式化,且ECC被設定為一第一預定值(例如9'h00),其指示禁能ECC之使用之一第一狀態。第一狀態係更進一步結合第4圖作說明。或者,用於為新資料計算ECC之步驟320,係可在步驟340之後(當決定資料集是空白時)以及在步驟341之前(當ECC被程式化時)被執行。 Figure 3 is a flow chart of the programming operation of the memory. In the example shown in FIG. 3, in step 305, new data is received from one of the addressable segments of one of the memory selection data sets. In step 310, it is determined whether the programming operation of the new data is a complete data set programming operation or a partial data set programming operation. If the programming operation for the new data is a complete data set programming operation (step 310, YES), then in step 320 an error correction code ECC is calculated for the new data. At step 330, it is checked if the data set is stylized at any address. If the dataset is not stylized at any address, the dataset is called a blank. If the data set is blank (step 340, yes), then in step 341, the data set is stylized along with the new data and the ECC calculated from the data set. If the data set is stylized or not blank at any address (step 340, no), then in step 343, the data set is accompanied by the new data. The ECC is set to a first predetermined value (eg, 9'h00) indicating one of the first states of use of the disabled ECC. The first state is further illustrated in connection with Figure 4. Alternatively, step 320 for calculating ECC for new material may be performed after step 340 (when determining that the data set is blank) and before step 341 (when ECC is programmed).

如果新資料之編程操作並非是一完整資料集編程操作而是一局部資料集編程操作(步驟310,否),則於步驟350,檢查資料集,以決定是否新資料之位址是空白的或被程式化。如果資料集於新資料之位址並非是空白的(步驟360,否),則資料集係於這些位址與新資料一起被程式化,且ECC被設定到第一預定值(例如9'h00),其指示禁能ECC之使用之第一狀態(步驟365)。第一狀態係更進一步結合第4圖作說明。 If the programming operation of the new data is not a complete data set programming operation but a partial data set programming operation (step 310, No), then in step 350, the data set is checked to determine if the address of the new data is blank or Stylized. If the address of the data set in the new data is not blank (step 360, no), then the data set is stylized with the new data and the ECC is set to the first predetermined value (eg 9'h00) ), which indicates the first state of use of the disabled ECC (step 365). The first state is further illustrated in connection with Figure 4.

如果資料集於新資料之位址是空白的(步驟360,是),則決定資料集是否於資料集之第一位址或最後位址被程式化(步驟370)。如果資料集係於資料集之第一位址或最後位址被程式化(步驟370,是),則更進一步決定資料集是否於不是新資料之位址之其他位址是空白的(步驟380)。如果不是(步驟380,否),則新資料及於資料集中之其他位址事先被程式化之資料可填滿資料集。因此,如果儲存新資料及事先在選擇資料集中被程式化之資料之可編址段包括至少一預定數目之可編址段,則為選擇資料集之ECC計算出一數值(步驟385)。預定數目可以是選擇資料集中之全部的可編址段。於步驟390,資料集係與新資料及選擇資 料集的ECC一起被程式化。 If the address of the data set in the new data is blank (step 360, yes), then it is determined whether the data set is stylized at the first or last address of the data set (step 370). If the data set is stylized in the first or last address of the data set (step 370, yes), it is further determined whether the data set is blank at other addresses that are not the address of the new data (step 380). ). If not (step 380, no), the new data and other stylized data in the data set may be filled with the data set. Therefore, if the addressable segment storing the new data and the data previously programmed in the selected data set includes at least a predetermined number of addressable segments, a value is calculated for the ECC of the selected data set (step 385). The predetermined number may be all of the addressable segments of the selected data set. In step 390, the data set and the new data and selection resources The ECC of the material set is programmed together.

如果資料集於第一位址並未被程式化,且於資料集之最後位址並未被程式化(步驟370,否),或如果資料集於某些位址(非新資料用之位址)是空白的(步驟380,是),則新資料與事先在選擇資料集中被程式化之資料無法填滿資料集。因此,新資料係被程式化(步驟375),但並不計算ECC,直到新資料與事先在選擇資料集中被程式化之資料可填滿選擇資料集為止。 If the data set is not stylized at the first address, and the last address in the data set is not stylized (step 370, no), or if the data set is at some address (non-new data is used) The address is blank (step 380, yes), and the new data and the data that was previously programmed in the selected data set cannot fill the data set. Therefore, the new data is stylized (step 375), but the ECC is not calculated until the new data and the data previously programmed in the selected data set fill the selected data set.

十六進位及二進位的表示法係使用於本案中。舉例而言,"8'hFF"係為一8位元二進位數"8'b11111111"之十六進位的表示法,於此二進位數中之每個位元具有一數值'1'。"8'hFF"或"8'b11111111"中之"8"表示位元數。"8'hFF"中之"h"表示十六進位的,而"8'b11111111"中之"b"表示二進位的。在"8'hFF"中之"h"之後的數字係為十六進位數字。在"8'b11111111"中之"b"之後的數字係為二進位數字。十六進位數字包括16個數值:0、1、2、3、4、5、6、7、8、9、A、B、C、D、E及F,分別等於二進位中的0000、0001、0010、0011、0100、0101、0110、0111、1000、1001、1010、1011、1100、1101、1110及1111。因此,十六進位中的"8'hFF"、"8'h00"及"8'hC0"係分別等於二進位中的"8'b11111111"、"8'b00000000"及"8'b11000000"。對另一個例子而言,1'b0係為只包括具有數值'0'之1位元之二進位數,而1'b1係為只包括具有數值'1'之1位元之二進位數。 The hexadecimal and binary representations are used in this case. For example, "8'hFF" is a representation of the hexadecimal number of an 8-bit binary digit "8'b11111111", where each of the binary digits has a value of '1'. "8" in "8'hFF" or "8'b11111111" indicates the number of bits. "h" in "8'hFF" indicates hexadecimal, and "b" in "8'b11111111" indicates binary. The number after "h" in "8'hFF" is a hexadecimal number. The number after "b" in "8'b11111111" is a binary number. The hexadecimal number includes 16 values: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, and F, which are equal to 0000, 0001 in the binary, respectively. , 0010, 0011, 0100, 0101, 0110, 0111, 1000, 1001, 1010, 1011, 1100, 1101, 1110, and 1111. Therefore, "8'hFF", "8'h00", and "8'hC0" in the hexadecimal are equal to "8'b11111111", "8'b00000000", and "8'b11000000" in the binary respectively. For another example, 1'b0 is a binary number that includes only one bit with a value of '0', and 1'b1 is a binary number that includes only one bit with a value of '1'.

第4圖係為使用擴展ECC之ECC產生之流程圖。 在第4圖所顯示之例子中,一資料集具有128位元資料,而資料之ECC具有8個位元。複數個指示可與資料集一起被儲存,以表示是否致能或禁能ECC(與資料集一起被儲存)之使用。這些指示可藉由儲存擴展ECC(例如128位元資料用之xtECC[9:0])而提供,擴展ECC包括資料集之ECC之一欄位(例如xtECC[7:0])、從ECC衍生出的一第一額外ECC位元之一欄位(例如xtECC[8])以及一第二額外ECC位元之一欄位(例如xtECC[9])。第一額外ECC位元可以藉由對ECC執行邏輯互斥函數(XOR)而衍生出。ECC之長度隨著資料長度改變,且因此擴展ECC之長度隨著資料長度而改變。例如,在一替代實施例中,256位元資料之ECC具有9個位元(例如xtECC[8:0]),而256位元資料之擴展ECC具有11個位元(例如xtECC[10:0]),包括第一額外位元(例如xtECC[9])及第二額外位元(例如xtECC[10])。 Figure 4 is a flow chart for ECC generation using extended ECC. In the example shown in Figure 4, a data set has 128 bit data and the ECC of the data has 8 bits. A plurality of indications can be stored with the data set to indicate whether the use of ECC (stored with the data set) is enabled or disabled. These indications may be provided by storing extended ECC (eg, xtECC[9:0] for 128-bit data), which extends one of the ECC fields of the data set (eg, xtECC[7:0]), derived from ECC. A field of one of the first additional ECC bits (eg, xtECC[8]) and a field of a second additional ECC bit (eg, xtECC[9]). The first additional ECC bit may be derived by performing a logical mutex function (XOR) on the ECC. The length of the ECC varies with the length of the data, and thus the length of the extended ECC varies with the length of the data. For example, in an alternate embodiment, the ECC of 256-bit data has 9 bits (eg, xtECC[8:0]), and the extended ECC of 256-bit data has 11 bits (eg, xtECC[10:0] ]), including the first extra bit (eg xtECC[9]) and the second extra bit (eg xtECC[10]).

擴展ECC可具有一第一預定值(例如9'h000)、一第二預定值(例如9'h1C0)以及一計算值;第一預定值指示禁能ECC之欄位中的資料之一第一狀態;第二預定值指示一第二狀態,於其中擴展ECC原始具有一等於第一預定值之計算值;而計算值指示一第三狀態,其包括複數個在ECC欄位中之計算出的ECC及在從計算出的ECC衍生出的第一額外ECC位元之欄位中的一位元。於此例子中,第一預定值及第二預定值兩者係128位元資料之擴展ECC中之第一額外位元與ECC。 The extended ECC may have a first predetermined value (eg, 9'h000), a second predetermined value (eg, 9'h1C0), and a calculated value; the first predetermined value indicates one of the fields in the field of the disabled ECC. a second predetermined value indicating a second state in which the extended ECC originally has a calculated value equal to the first predetermined value; and the calculated value indicates a third state including a plurality of calculated values in the ECC field The ECC and a bit in the field of the first additional ECC bit derived from the computed ECC. In this example, both the first predetermined value and the second predetermined value are the first extra bit of the extended ECC of 128-bit data and the ECC.

第一、第二及第三狀態係總結在第4圖之表格中。 當ECC被設定到第一預定值(例如9'h000)以禁能ECC之使用時,第一狀態對應至步驟460之是(Yes)分支及步驟470。當ECC被設定到第二預定值(例如9'h1C0)以表示ECC原始為等於第一預定值之計算值時,第二狀態對應至步驟440之是(Yes)分支及步驟451。當致能計算出的ECC之使用時,第三狀態對應至步驟440之否(No)分支及步驟453。 The first, second and third states are summarized in the table in Figure 4. When the ECC is set to a first predetermined value (e.g., 9'h000) to disable the use of the ECC, the first state corresponds to the (Yes) branch of step 460 and step 470. When the ECC is set to a second predetermined value (e.g., 9'h1C0) to indicate that the ECC is originally a calculated value equal to the first predetermined value, the second state corresponds to the (Yes) branch of step 440 and step 451. When the calculated use of ECC is enabled, the third state corresponds to the No (No) branch of step 440 and step 453.

ECC產生之流程於步驟410開始,於此,係藉由如第3圖所示之步驟341、343、390、375及365來決定是否計算資料集之ECC。於此所說明之複數個理由,決定結果可以是不要計算一ECC(步驟410,否),如對應於步驟375、343及365,或要計算一ECC(步驟410,是),如對應於步驟341及390。 The ECC generation process begins at step 410 where the ECC of the data set is calculated by steps 341, 343, 390, 375, and 365 as shown in FIG. For a plurality of reasons described herein, the decision may be such as not to calculate an ECC (step 410, no), such as corresponding to steps 375, 343, and 365, or to calculate an ECC (step 410, yes), as corresponding to the steps. 341 and 390.

如果決定是不要計算ECC(步驟410,否),則更進一步決定是否禁能讀取操作之ECC的使用(步驟460)。此決定可以是不要禁能一讀取操作之ECC的使用(步驟460,否),因為局部資料集編程操作尚未程式化一完整資料集(步驟375)。如果此決定是不要禁能一讀取操作之ECC之使用(步驟460,否),則如於步驟305所接收之新資料係在記憶體中被程式化,而不需要儲存任何新資料之ECC(步驟480)。此決定可以是禁能一讀取操作之ECC之使用(步驟460,是),因為一資料集對一完整資料集編程操作而言並非是空白的(步驟343),或因為一資料集對一局部資料集編程操作而言是於新資料用之位址被程式化(步驟365)。如果此決定是禁能一讀取操作之ECC之使用(步驟460,是),則於步驟 470,將第一額外位元與資料集之擴展ECC中之ECC設定到第一預定值(例如xtECC[8:0]=9'h000),藉以指示在一讀取操作中,禁能ECC(與資料集一起被儲存)之使用。 If it is decided not to calculate the ECC (step 410, no), it is further determined whether the use of the read ECC is disabled (step 460). This decision may be to disable the use of the ECC of a read operation (step 460, no) because the local data set programming operation has not yet programmed a complete data set (step 375). If the decision is to disable the use of the ECC for a read operation (step 460, no), then the new data received in step 305 is stylized in memory without the need to store ECC for any new data. (Step 480). This decision may be the use of the ECC that disables the read operation (step 460, yes) because a data set is not blank for a complete data set programming operation (step 343), or because a data set is one The local data set programming operation is programmed for the address of the new data (step 365). If the decision is to disable the use of the ECC for a read operation (step 460, yes), then in the step 470. Set the first extra bit and the ECC in the extended ECC of the data set to a first predetermined value (eg, xtECC[8:0]=9'h000), thereby indicating that the ECC is disabled in a read operation ( Used in conjunction with the data set).

如果於步驟410之決定是計算一ECC(步驟410,是),如對應於一完整資料集編程操作之步驟341,或對應於一局部資料集編程操作(程式化資料集中之最終字)之步驟390,則於步驟420,計算資料集之ECC之數值。於步驟430,此數值係由來自ECC之第一額外ECC位元所衍生出。此數值可藉由對ECC執行一邏輯互斥函數(XOR)(例如xECC[8]=XOR(xtECC[7:0])而衍生出。包括第一額外ECC位元與ECC之擴展ECC,係可被使用在一讀取操作中,用於表示是否致能或禁能ECC(與資料集一起被儲存)之使用。 If the decision in step 410 is to calculate an ECC (step 410, YES), such as step 341 corresponding to a complete data set programming operation, or a step corresponding to a partial data set programming operation (the final word in the programmed data set) 390. At step 420, calculate the value of the ECC of the data set. At step 430, this value is derived from the first additional ECC bit from the ECC. This value can be derived by performing a logical mutual exclusion function (XOR) on the ECC (eg, xECC[8]=XOR(xtECC[7:0]). The extended ECC including the first additional ECC bit and ECC, Can be used in a read operation to indicate whether the use of ECC (stored with the data set) is enabled or disabled.

於步驟440,決定ECC是否等於表示第一狀態之第一預定值,如步驟470中所使用的。如果是的話(步驟440,是),則一特殊情況發生,於此擴展ECC用之計算值可以是9'h000,對應於步驟470之第一狀態,從而錯誤地指示禁能ECC之使用。為了解決特殊情況,將擴展ECC中之第一額外位元與ECC設定到指示一第二狀態之第二預定值(例如xtECC[8:0]=9'h1C0),於其中擴展ECC原始具有等於第一預定值之計算值。在如結合第5圖所說明的一讀取操作中,特殊情況是相反的(步驟550及551,第5圖)。如果ECC並不等於表示第一狀態之第一預定值,則於步驟453,包括第一額外ECC位元與ECC之擴展ECC是不變的。 At step 440, it is determined whether the ECC is equal to the first predetermined value indicative of the first state, as used in step 470. If so (step 440, yes), then a special case occurs where the calculated value for the extended ECC may be 9'h000, corresponding to the first state of step 470, thereby erroneously indicating the use of the disabled ECC. In order to solve the special case, the first extra bit in the extended ECC and the ECC are set to a second predetermined value indicating a second state (for example, xtECC[8:0]=9'h1C0), wherein the extended ECC original has equal to The calculated value of the first predetermined value. In a read operation as described in connection with Fig. 5, the special case is reversed (steps 550 and 551, Fig. 5). If the ECC is not equal to the first predetermined value indicating the first state, then in step 453, the extended ECC including the first additional ECC bit and the ECC is unchanged.

在步驟451、453或470以後,第二額外ECC位元可被設定到指示被程式化狀態之數值(例如xtECC[9]=1'b0),用於表示選擇資料集係在至少一可編址段中被程式化,因此,資料集並非是一空白資料集。第二額外ECC位元因此可用來保護一空白資料集,如結合第5圖所說明的。於步驟305所接收之新資料與新資料之擴展ECC(例如xtECC[9:0]),係可在記憶體之資料集中被程式化(步驟490)。 After step 451, 453 or 470, the second additional ECC bit may be set to a value indicating the stylized state (eg xtECC[9]=1'b0) for indicating that the selected data set is at least one editable The address segment is stylized, so the dataset is not a blank dataset. The second additional ECC bit can thus be used to protect a blank data set, as explained in connection with FIG. The extended ECC (e.g., xtECC[9:0]) of the new and new data received in step 305 can be programmed in the data set of the memory (step 490).

第5圖係為使用擴展ECC之讀取操作之流程圖。在第5圖所顯示之例子中,從記憶體讀取一資料集中之資料(例如128位元資料)與擴展ECC(例如xtECC[9:0]);擴展ECC包括一資料集中之資料之ECC(例如xtECC[7:0])、一第一額外ECC位元(例如xtECC[8])以及一第二額外ECC位元(例如xtECC[9])(步驟510)。第一額外ECC位元係藉由使用一邏輯函數而從ECC衍生出。用於衍生儲存於資料集之第一額外ECC位元所用之相同邏輯函數係對ECC執行,且接著決定從資料集讀取之第一額外ECC位元是否等於來自邏輯函數之結果(步驟520)。 Figure 5 is a flow chart of a read operation using extended ECC. In the example shown in Figure 5, the data in a data set (for example, 128-bit data) and the extended ECC (for example, xtECC[9:0]) are read from the memory; the extended ECC includes the ECC of the data in a data set. (e.g., xtECC[7:0]), a first additional ECC bit (e.g., xtECC[8]), and a second additional ECC bit (e.g., xtECC[9]) (step 510). The first additional ECC bits are derived from the ECC by using a logic function. The same logic function used to derive the first additional ECC bits stored in the data set is performed on the ECC, and then determines whether the first additional ECC bit read from the data set is equal to the result from the logic function (step 520). .

在讀取流程中所使用的第一狀態、第二狀態、第三狀態及一空白ECC狀態係總結在第5圖之表格中。當禁能ECC之使用時,第一狀態對應至步驟560之是(Yes)分支及步驟561。當ECC被反轉至等於表示第一狀態之第一預定值之原始數值時,第二狀態對應至步驟550之是(Yes)分支及步驟551。當致能計算出的ECC之使用時,第三狀態對應至步驟563。 The first state, the second state, the third state, and a blank ECC state used in the reading flow are summarized in the table of FIG. When the use of the ECC is disabled, the first state corresponds to the (Yes) branch of step 560 and step 561. When the ECC is inverted to equal the original value representing the first predetermined value of the first state, the second state corresponds to the (Yes) branch of step 550 and step 551. When the calculated use of ECC is enabled, the third state corresponds to step 563.

如果從資料集讀取之第一額外ECC位元(例如xtECC[8])等於來自邏輯函數之結果(步驟520,是),則更進一步決定ECC是否等於表示第一狀態之第一預定值(例如xtECC[7:0]=8'h00)。如果不是的話(步驟560,否),則擴展ECC(例如xtECC[8:0])表示資料集係藉由一完整資料集編程操作(步驟341)或程式化資料集中之最終字之一局部資料集編程操作(步驟390)而與ECC一起被程式化。因此,致能ECC(與資料集一起被儲存)之使用(步驟563)。 If the first additional ECC bit (e.g., xtECC[8]) read from the data set is equal to the result from the logic function (step 520, YES), it is further determined whether the ECC is equal to the first predetermined value indicating the first state ( For example xtECC[7:0]=8'h00). If not (step 560, no), the extended ECC (e.g., xtECC[8:0]) indicates that the data set is programmed by a complete data set (step 341) or one of the final words of the stylized data set. The set programming operation (step 390) is programmed along with the ECC. Thus, the use of ECC (stored with the data set) is enabled (step 563).

於步驟560,如果ECC等於表示第一狀態之第一預定值(例如xtECC[7:0]=8'h00),則並未致能ECC(與資料集一起被儲存)之使用(步驟561),其乃因為第一狀態表示禁能ECC之欄位中的資料之使用(步驟470、第4圖)。 In step 560, if the ECC is equal to the first predetermined value indicating the first state (eg, xtECC[7:0]=8'h00), the use of ECC (stored with the data set) is not enabled (step 561). This is because the first state indicates the use of the data in the field of the disabled ECC (steps 470, 4).

如果從資料集讀取之第一額外ECC位元(例如xtECC[8])並不等於來自邏輯函數之結果(步驟520,No),則可表示ECC等於指示第二狀態之第二預定值(xtECC[7:0]=8'hC0),ECC等於指示空白ECC狀態之空白值(xtECC[7:0]=8'hFF),或擴展ECC由於一保留錯誤已改變。更進一步決定ECC是否等於表示第一狀態之第一預定值(例如xtECC[7:0]=8'h00)。如果是的話(步驟530,是),則並未致能與資料集一起被儲存之ECC之使用(步驟540)。如果不是的話(步驟530,否),則更進一步決定ECC等於是否指示第二狀態之第二預定值(例如xtECC[7:0]=8'hC0),如為特殊情況所設定的(步驟451,第4圖)。如果ECC 等於指示第二狀態之第一預定值(步驟550,是),則將ECC設定到第一預定值(例如xtECC[7:0]=8'h00),然後,致能與資料集一起被儲存之ECC之使用(步驟551)。 If the first additional ECC bit read from the data set (eg, xtECC[8]) is not equal to the result from the logic function (step 520, No), then the ECC may be equal to indicating a second predetermined value of the second state ( xtECC[7:0] = 8'hC0), ECC is equal to the blank value indicating the blank ECC status (xtECC[7:0] = 8'hFF), or the extended ECC has changed due to a reservation error. It is further determined whether the ECC is equal to the first predetermined value indicating the first state (e.g., xtECC[7:0] = 8'h00). If so (step 530, YES), the use of the ECC stored with the data set is not enabled (step 540). If not (step 530, no), it is further determined whether the ECC is equal to whether the second predetermined value of the second state is indicated (e.g., xtECC[7:0] = 8'hC0), as set for the special case (step 451). , Figure 4). If ECC Equal to indicating the first predetermined value of the second state (step 550, YES), then setting the ECC to a first predetermined value (eg, xtECC[7:0]=8'h00), and then enabling storage with the data set Use of ECC (step 551).

如果ECC並不等於指示第二狀態之第二預定值(步驟550,否),則於步驟570,更進一步決定ECC是否等於指示一空白ECC狀態之空白值(例如xtECC[7:0]=8'hFF)。如果ECC並不等於指示一空白ECC狀態之空白值,則不致能與資料集一起被儲存之ECC之使用(步驟561)。 If the ECC is not equal to the second predetermined value indicating the second state (step 550, no), then in step 570, it is further determined whether the ECC is equal to a blank value indicating a blank ECC state (eg, xtECC[7:0]=8 'hFF). If the ECC is not equal to a blank value indicating a blank ECC state, then the use of the ECC stored with the data set is not enabled (step 561).

於步驟570,如果ECC等於指示一空白ECC狀態之空白值(例如xtECC[7:0]=8'hFF),則更進一步決定第二額外ECC位元是否被程式化(例如xtECC[9]=1'b0),藉以指示資料集不是空白的。如果資料集不是空白的(步驟571,否),則不致能與資料集一起被儲存之ECC之使用(步驟561)。因為資料集不是空白的,所以已發生一項錯誤,如由從資料集讀取之第一額外ECC位元不等於來自邏輯函數之結果(步驟520,否)之事實所表示的。如果資料集是空白的(例如xtECC[9]=1'b1。步驟571,是),則與資料集一起被儲存之ECC之使用係為一空白資料集而致能(步驟572),從而保護一資料集中之一空白資料圖案。 In step 570, if the ECC is equal to a blank value indicating a blank ECC state (eg, xtECC[7:0]=8'hFF), it is further determined whether the second additional ECC bit is stylized (eg, xtECC[9]= 1'b0), indicating that the data set is not blank. If the data set is not blank (step 571, no), then the use of the ECC stored with the data set is not enabled (step 561). Since the data set is not blank, an error has occurred, as indicated by the fact that the first additional ECC bit read from the data set is not equal to the result from the logical function (step 520, no). If the data set is blank (eg, xtECC[9]=1'b1. Step 571, yes), then the use of the ECC stored with the data set is enabled as a blank data set (step 572), thereby protecting A blank data pattern in one of the data sets.

綜上所述,雖然本案已以較佳實施例揭露如上,然其並非用以限定本案。本案所屬技術領域中具有通常知識者,在不脫離本案之精神和範圍內,當可作各種之更動與潤飾。因此,本案之保護範圍當視後附之申請專利範圍所界定者為準。 In summary, although the present invention has been disclosed above in the preferred embodiment, it is not intended to limit the present invention. Those who have ordinary knowledge in the technical field of the present invention can make various changes and refinements without departing from the spirit and scope of the present case. Therefore, the scope of protection of this case is subject to the definition of the scope of the patent application attached.

305、310、320、330、340、341、343、350、360、365、370、375、380、385、390‧‧‧步驟 305, 310, 320, 330, 340, 341, 343, 350, 360, 365, 370, 375, 380, 385, 390 ‧ ‧ steps

Claims (9)

一種記憶體之操作方法,包括:儲存複數個資料集以及該些資料集之複數錯誤校正碼(ECC)於該記憶體中,該些資料集包括複數個可編址段;當將新資料寫入在該記憶體中之一選擇資料集之該些可編址段之其中一個可編址段中時,如果儲存該新資料及事先在該選擇資料集中被程式化之資料之可編址段包括至少一預定數目之可編址段的話,則計算並儲存該選擇資料集之一ECC;以及儲存複數指示於該些資料集,該些指示表示是否致能或禁能與該些資料集一起被儲存之該些ECC之使用。 A method of operating a memory, comprising: storing a plurality of data sets and a complex error correction code (ECC) of the data sets in the memory, the data sets comprising a plurality of addressable segments; when writing new data When in one of the addressable segments of the addressable segment of the selected data set in the memory, if the new data is stored and the addressable segment of the data that was previously programmed in the selected data set is Comprising at least a predetermined number of addressable segments, calculating and storing one of the selected data sets; and storing a plurality of indications for the data sets, the indications indicating whether to enable or disable the data sets The use of these ECCs that are stored. 如申請專利範圍第1項所述之方法,包括:儲存複數個擴展ECC,包括該些資料集之該些ECC的一欄位,以及從該ECC衍生出的一第一額外ECC位元之一欄位。 The method of claim 1, comprising: storing a plurality of extended ECCs, including a field of the ECCs of the data sets, and one of the first additional ECC bits derived from the ECC. Field. 如申請專利範圍第2項所述之方法,其中該些擴展ECC具有一第一預定值、一第二預定值以及一計算值,該第一預定值表示一第一狀態,用於禁能該些ECC之該欄位中的該資料之使用,該第二預定值表示一第二狀態,其中該些擴展ECC原始具有等於該第一預定值之一計算值,而該計算值表示一第三狀態,包括在該些ECC之該欄位中的複數個計算出的ECC,以及在從該計算出的ECC衍生出的該第一額外ECC位元之該欄位中的一位元;如果儲存該新資料及事先在該選擇資料集中被程式化之資 料之可編址段包括至少一預定數目之可編址段,且該選擇資料集已經於該新資料之該可編址段被程式化的一錯誤狀況不會發生的話,則使用該選擇資料集之一擴展ECC之一計算值;如果該選擇資料集係於該選擇資料集之可編址段數目中的一第一可編址段或一最終可編址段被程式化,且該選擇資料集係於非該新資料之該些位址之其他位址被程式化的話,則使用該計算值;如果該選擇資料集係於該新資料之該可編址段事先被程式化的話,則將該擴展ECC設定成該第一預定值,藉以表示禁能與該選擇資料集一起被儲存之該些ECC之使用;如果該擴展ECC等於該第一預定值,且該選擇資料集並未於該新資料用之該可編址段被程式化的話,則將該擴展ECC設定成該第二預定值;以及該些擴展ECC包括一第二額外ECC位元之一欄位,包括將該第二額外ECC位元設定成一數值,用於表示該選擇資料集係在至少一可編址段中被程式化。 The method of claim 2, wherein the extended ECC has a first predetermined value, a second predetermined value, and a calculated value, the first predetermined value indicating a first state for disabling the The use of the data in the field of the ECC, the second predetermined value indicating a second state, wherein the extended ECCs originally have a calculated value equal to one of the first predetermined values, and the calculated value represents a third a state comprising a plurality of calculated ECCs in the field of the ECCs, and a bit in the field of the first additional ECC bits derived from the calculated ECC; if stored The new information and the funds previously stylized in the selected data set The optional data may be used if the addressable segment includes at least a predetermined number of addressable segments, and an error condition that the selected data set has been programmed in the addressable segment of the new data does not occur One of the sets of extended ECC calculation values; if the selected data set is programmed in a first addressable segment or a final addressable segment of the number of addressable segments of the selected data set, and the selection The data set is used if the other address of the address other than the new data is stylized; if the selected data set is pre-programmed in the addressable segment of the new data, And then setting the extended ECC to the first predetermined value, thereby indicating that the use of the ECCs that are stored together with the selected data set is disabled; if the extended ECC is equal to the first predetermined value, and the selected data set is not And if the new data is programmed for the addressable segment, the extended ECC is set to the second predetermined value; and the extended ECC includes a field of a second additional ECC bit, including The second additional ECC bit is set to a value, It indicates that the selected data set is based at least in a stylized addressable segments. 一種記憶體之操作方法,該記憶體儲存包括複數個可編址段之複數個資料集以及該記憶體中之該些資料集之複數個錯誤校正碼(ECC),該操作方法包括:從一選擇資料集讀取一擴展ECC,該擴展ECC包括一ECC及一第一額外ECC位元,其中該第一額外ECC位元係藉由使用一邏輯函數而從該ECC衍生出;以及 如果該ECC之該邏輯函數等於該第一額外ECC位元,且該ECC不等於一第一預定值的話,則致能與該選擇資料集一起被儲存之該ECC之使用,其中該第一預定值表示一第一狀態以禁能該些ECC之使用。 A method of operating a memory, the memory storing a plurality of data sets including a plurality of addressable segments and a plurality of error correction codes (ECCs) of the data sets in the memory, the method comprising: Selecting a data set to read an extended ECC, the extended ECC including an ECC and a first additional ECC bit, wherein the first additional ECC bit is derived from the ECC by using a logic function; If the logic function of the ECC is equal to the first additional ECC bit, and the ECC is not equal to a first predetermined value, enabling use of the ECC stored with the selected data set, wherein the first predetermined The value represents a first state to disable the use of the ECCs. 如申請專利範圍第4項所述之方法,包括:如果該ECC之該邏輯函數不等於該第一額外ECC位元,且該ECC等於一第二預定值的話,則將該ECC設定成該第一預定值,然後,致能相關於該選擇資料集之該ECC之使用,其中該第二預定值表示一第二狀態,該ECC原始具有等於該第一預定值之一計算值。 The method of claim 4, comprising: if the logic function of the ECC is not equal to the first additional ECC bit, and the ECC is equal to a second predetermined value, setting the ECC to the first A predetermined value is then enabled for use of the ECC associated with the selected data set, wherein the second predetermined value represents a second state, the ECC originally having a calculated value equal to one of the first predetermined values. 如申請專利範圍第4項所述之方法,包括:讀取一第二額外ECC位元,該第二額外ECC位元表示該選擇資料集是否在至少一可編址段中被程式化;以及如果該ECC之該邏輯函數不等於該第一額外ECC位元,該ECC等於表示一空白ECC狀態之一空白值,且該第二額外ECC位元表示該選擇資料集是空白的話,則致能與該選擇資料集一起被儲存之該些ECC之使用。 The method of claim 4, comprising: reading a second additional ECC bit, the second additional ECC bit indicating whether the selected data set is stylized in at least one addressable segment; If the logic function of the ECC is not equal to the first additional ECC bit, the ECC is equal to one blank value indicating a blank ECC state, and the second additional ECC bit indicates that the selected data set is blank, then enabling The use of the ECCs stored with the selection data set. 一種記憶體,包括:複數個資料集,包括複數個可編址段,以及該記憶體中之該些資料集之複數個錯誤校正碼(ECC);以及一控制器,耦接至該些資料集,包括邏輯,該邏輯在將新資料寫入在該記憶體中之一選擇資料集之該些可編址段之其中一個可編址段中時,如果儲存該新資料及事先在該選擇資料集中被 程式化之資料之一些可編址段係包括至少一預定數目之可編址段的話,則計算並儲存該選擇資料集之一ECC;且儲存複數指示於該些資料集,該些指示表示是否致能或禁能與該些資料集一起被儲存之該些ECC之使用。 A memory comprising: a plurality of data sets, comprising a plurality of addressable segments, and a plurality of error correction codes (ECCs) of the data sets in the memory; and a controller coupled to the data a set, comprising logic, when the new data is written in one of the addressable segments of the addressable segments of the selected data set in the memory, if the new data is stored and prior to the selection Data set If some of the addressable segments of the stylized data include at least a predetermined number of addressable segments, then one of the selected data sets is calculated and stored; and the stored complex number is indicated for the data sets, the indications indicating whether The use or use of the ECCs stored with the data sets is enabled or disabled. 如申請專利範圍第7項所述之記憶體,其中該控制器包括:一邏輯,儲存複數個擴展ECC,該些擴展ECC包括該些資料集之該些ECC的一欄位,以及從該ECC衍生出的一第一額外ECC位元之一欄位,該些擴展ECC具有一第一預定值、一第二預定值以及一計算值,該第一預定值表示一第一狀態,用於禁能該些ECC之該欄位中的該資料之使用,該第二預定值表示一第二狀態,於其中該些擴展ECC原始具有等於該第一預定值之一計算值,而該計算值表示一第三狀態,包括在該些ECC之該欄位中的複數個計算出的ECC,以及在從該計算出的ECC衍生出的該第一額外ECC位元之在該欄位中的一個位元;一邏輯,使用該選擇資料集之一擴展ECC之一計算值,如果儲存該新資料及事先在該選擇資料集中被程式化之資料之可編址段包括至少一預定數目之可編址段,且該選擇資料集已經於該新資料之該可編址段被程式化的一錯誤狀況不會發生的話;一邏輯,其將該擴展ECC設定成該第一預定值,藉以表 示禁能與該選擇資料集一起被儲存之該些ECC之使用,如果該選擇資料集係於該新資料之該可編址段事先被程式化的話;一邏輯,將該擴展ECC設定成該第二預定值,如果該擴展ECC等於該第一預定值且該選擇資料集並未於該新資料之該可編址段被程式化的話,該些擴展ECC包括一第二額外ECC位元用之一欄位;以及一邏輯,該邏輯將該第二額外ECC位元設定成一數值,以表示該選擇資料集係在至少一可編址段中被程式化。 The memory of claim 7, wherein the controller comprises: a logic storing a plurality of extended ECCs, the extended ECCs including a field of the ECCs of the data sets, and from the ECC Deriving a field of a first additional ECC bit, the extended ECC having a first predetermined value, a second predetermined value, and a calculated value, the first predetermined value indicating a first state for The use of the data in the fields of the ECCs, the second predetermined value indicating a second state, wherein the extended ECCs originally have a calculated value equal to one of the first predetermined values, and the calculated values represent a third state comprising a plurality of calculated ECCs in the field of the ECCs, and a bit in the field of the first additional ECC bits derived from the calculated ECC a logic that uses one of the selected data sets to extend a calculated value of one of the ECCs, and if the new data is stored and the addressable segments of the data that were previously programmed in the selected data set include at least a predetermined number of addressable Segment, and the selection data set is already in the new data If the error condition that the addressable segment is stylized does not occur; a logic that sets the extended ECC to the first predetermined value, thereby Determining the use of the ECCs stored with the selected data set, if the selected data set is pre-programmed in the addressable segment of the new data; a logic, setting the extended ECC to the a second predetermined value, if the extended ECC is equal to the first predetermined value and the selected data set is not programmed in the addressable segment of the new data, the extended ECC includes a second additional ECC bit a field; and a logic that sets the second additional ECC bit to a value to indicate that the selected data set is stylized in at least one addressable segment. 如申請專利範圍第7項所述之記憶體,其中該控制器包括:一邏輯,用於從一選擇資料集讀取包括一ECC及一第一額外ECC位元之一擴展ECC,其中該第一額外ECC位元係藉由使用一邏輯函數而從該ECC衍生出;一邏輯,用於致能與該選擇資料集一起被儲存之該ECC之使用,如果該ECC之該邏輯函數等於該第一額外ECC位元,且該ECC並不等於一第一預定值的話,該第一預定值表示一第一狀態以禁能該些ECC之使用;一邏輯,將該ECC設定成該第一預定值,然後致能具有該選擇資料集之該ECC之使用,如果該ECC之該邏輯函數並不等於該第一額外ECC位元,且該ECC等於一第二預定值,該第二預定值表示該ECC原始具有等於該第一預定值之一計算值之一第二狀態; 一邏輯,讀取一第二額外ECC位元,該第二額外ECC位元表示該選擇資料集是否在至少一可編址段中被程式化;以及一邏輯,致能與該選擇資料集一起被儲存之該些ECC之使用,如果該ECC之該邏輯函數並不等於該第一額外ECC位元、該ECC等於表示一空白ECC狀態之一空白值,以及該第二額外ECC位元表示該選擇資料集是空白的話。 The memory of claim 7, wherein the controller comprises: a logic for reading an extended ECC including an ECC and a first additional ECC bit from a selected data set, wherein the An additional ECC bit is derived from the ECC by using a logic function; a logic for enabling use of the ECC stored with the selected data set, if the logical function of the ECC is equal to the An additional ECC bit, and the ECC is not equal to a first predetermined value, the first predetermined value indicating a first state to disable use of the ECCs; and a logic to set the ECC to the first predetermined a value, and then enabling use of the ECC having the selected data set, if the logic function of the ECC is not equal to the first additional ECC bit, and the ECC is equal to a second predetermined value, the second predetermined value is represented The ECC originally has a second state equal to one of the calculated values of the first predetermined value; a logic to read a second additional ECC bit, the second additional ECC bit indicating whether the selected data set is stylized in at least one addressable segment; and a logic to enable the selected data set The use of the ECCs stored, if the logic function of the ECC is not equal to the first additional ECC bit, the ECC is equal to one blank value indicating a blank ECC state, and the second additional ECC bit indicates Select the data set to be blank.
TW103101910A 2014-01-20 2014-01-20 Ecc method for memory TWI523023B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
TW103101910A TWI523023B (en) 2014-01-20 2014-01-20 Ecc method for memory

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW103101910A TWI523023B (en) 2014-01-20 2014-01-20 Ecc method for memory

Publications (2)

Publication Number Publication Date
TW201530553A TW201530553A (en) 2015-08-01
TWI523023B true TWI523023B (en) 2016-02-21

Family

ID=54342816

Family Applications (1)

Application Number Title Priority Date Filing Date
TW103101910A TWI523023B (en) 2014-01-20 2014-01-20 Ecc method for memory

Country Status (1)

Country Link
TW (1) TWI523023B (en)

Also Published As

Publication number Publication date
TW201530553A (en) 2015-08-01

Similar Documents

Publication Publication Date Title
US11362685B2 (en) Nonvolatile memory device and read and copy-back methods thereof
CN105144302B (en) Error correction operations in storage arrangement
KR101730510B1 (en) Non-regular parity distribution detection via metadata tag
US9535785B2 (en) ECC method for flash memory
KR101750662B1 (en) Circuits, apparatuses, and methods for correcting data errors
US8402217B2 (en) Implementing RAID in solid state memory
TWI442407B (en) Data recovery in a solid state storage system
US9159441B2 (en) Method of operating memory device assuring reliability and memory system
US9760434B2 (en) ECC method for double pattern flash memory
CN103119569A (en) Stripe-based non-volatile multilevel memory operation
KR20210029661A (en) Defective bit line management in connection with a memory access
US20160283319A1 (en) Data storage device and encoding method thereof
US11010289B2 (en) Data storage device and operating method thereof
CN104810061B (en) Memory and operation method thereof
CN111798913A (en) Memory system, memory controller and operating method thereof
TWI523023B (en) Ecc method for memory
JP4582078B2 (en) Memory controller, flash memory system, and flash memory control method
JP2010282369A (en) Memory system
CN104637542B (en) Memory device for storing error correction code corresponding to data and operating method thereof
US9104596B2 (en) Memory system
US9417954B2 (en) Data storage device and method for operating the same
TWI500036B (en) Nonvolatile storage device and control method thereof
JP6267497B2 (en) Semiconductor memory control device and unstable memory region detection method
JP2006221334A (en) Memory controller, flash memory system, and control method for flash memory
JP2008165518A (en) Memory controller, flash memory system, and control method of flash memory