CN107403645A - 非易失性存储器器件及其读取和拷回方法 - Google Patents
非易失性存储器器件及其读取和拷回方法 Download PDFInfo
- Publication number
- CN107403645A CN107403645A CN201710266270.0A CN201710266270A CN107403645A CN 107403645 A CN107403645 A CN 107403645A CN 201710266270 A CN201710266270 A CN 201710266270A CN 107403645 A CN107403645 A CN 107403645A
- Authority
- CN
- China
- Prior art keywords
- data
- page buffer
- randomization
- nonvolatile semiconductor
- semiconductor memory
- Prior art date
- Legal status (The legal status 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 status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/38—Response verification devices
- G11C29/42—Response verification devices using error correcting codes [ECC] or parity check
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/65—Purpose and implementation aspects
- H03M13/6566—Implementations concerning memory access contentions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1012—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using codes or arrangements adapted for a specific type of error
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1673—Details of memory controller using buffers
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/44—Indication or identification of errors, e.g. for repair
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/13—Linear codes
- H03M13/15—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
- H03M13/151—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
- H03M13/152—Bose-Chaudhuri-Hocquenghem [BCH] codes
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/13—Linear codes
- H03M13/15—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
- H03M13/151—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
- H03M13/1545—Determination of error locations, e.g. Chien search or other methods or arrangements for the determination of the roots of the error locator polynomial
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7203—Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Physics (AREA)
- General Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- General Engineering & Computer Science (AREA)
- Algebra (AREA)
- Pure & Applied Mathematics (AREA)
- Quality & Reliability (AREA)
- Read Only Memory (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Microelectronics & Electronic Packaging (AREA)
Abstract
提供了一种非易失性存储器件的读取方法。所述方法包括将从非易失性存储器件的所选择的存储器单元感测到的数据存储到页缓冲器中,通过对感测到的数据执行错误检测以检测错误,如果检测到错误则纠正检测到的错误,使用经纠正的数据重写页缓冲器,并在完成错误解码操作之后通过使用种子来对存储在页缓冲器中的数据进行解随机化。
Description
相关申请的交叉引用
本申请要求于2016年5月12日在韩国知识产权局提交的韩国专利申请No.10-2016-0058397的优先权,其公开内容通过引用并入本文。
技术领域
本文描述的发明构思涉及一种半导体存储器件,更具体地,涉及一种能够提高数据的完整性和读取性能的非易失性存储器件以及其读取和拷回方法。
背景技术
半导体存储器件分为易失性半导体存储器件和非易失性半导体存储器件。易失性半导体存储器件的读取和写入速度相对较快,但是当电源电压中断时存储在其中的数据丢失。然而,非易失性半导体存储器件在电源中断时保持存储在其中的数据。因此,当电源电压不可靠时,可以使用非易失性半导体存储器件来存储数据。
快闪存储器件是非易失性半导体存储器件的示例。闪存器件可以用于存储语音和图像数据。非易失性存储器件可以包括用于执行错误检测和纠正操作的片上纠错电路(ECC)和用于执行随机化操作的片上随机化器。
然而,当非易失性存储器执行错误检测和纠正操作或随机化操作时,读取和写入可能变慢。因此,需要一种即使在非易失性存储器件中执行这些操作也能够提高读取和写入性能的技术。
发明内容
本发明构思的至少一个实施例提供了一种包括片上ECC和片上随机化器的能够提高读取速度和可靠性的非易失性存储器件及其操作方法。
根据本发明构思的示例性实施例的非易失性存储器件的读取方法包括:将从非易失性存储器件的所选择的存储器单元感测到的数据存储到页缓冲器中,通过对感测到的数据执行错误检测来执行错误解码操作,如果检测到错误则纠正检测到的错误,并用经纠正的数据重写页缓冲器,并在错误解码操作完成之后通过使用种子来对存储在页缓冲器中的数据进行解随机化。
根据本发明构思的示例性实施例的非易失性存储器件的拷回方法包括:感测来自非易失性存储器件的源区域的源数据以将感测到的源数据存储到页缓冲器中,通过使用源种子来随机化补充数据,并通过使用随机化的补充数据来更新存储在页缓冲器中的源数据。
根据本发明构思的示例性实施例的非易失性存储器件包括:包括以行和列布置的存储器单元的单元阵列,被配置为将数据写入单元阵列或感测存储在单元阵列中的数据的页缓冲器,被配置为随机化要写入单元阵列的数据,将随机化数据提供给页缓冲器或对从页缓冲器输出的数据进行解随机化的第一电路(例如,加扰块(scramble block)),被配置为相对于感测到的数据执行纠错解码以生成纠错解码数据的第二电路(例如,纠错块),以及被配置为控制页缓冲器、第一电路和第二电路的控制逻辑。在数据读取操作期间,控制逻辑控制页缓冲器和第一电路,以使得存储在页缓冲器中的数据被第二电路解码,并使得纠错解码的数据被重写到页缓冲器上,并控制第一电路使得当输出重写到页缓冲器上的数据时执行解随机化操作。
根据本发明构思的示例性实施例的非易失性存储器件包括包括至少一个存储器单元的单元阵列、页缓冲器、第一电路,第二电路和控制电路。控制电路被配置为响应于外部写入命令而将写入数据存储到页缓冲器中,使用第一电路对写入数据进行加扰(scramble)以生成加扰数据(scrambled data),使用第二电路对加扰数据执行纠错编码以生成编码数据,用编码数据重写存储在页缓冲器中的写入数据,并将存储在页缓冲器中的编码数据复制到单元阵列。
附图说明
从以下参照附图的描述中,本发明构思将变得显而易见,其中除非另有说明,否则在各个附图中相同的附图标记表示相同的部件,其中:
图1是根据本发明构思的示例性实施例的非易失性存储器件的框图;
图2是示出了图1的非易失性存储器件的写入数据处理过程的框图;
图3是示出了根据本发明构思的示例性实施例的随机化器/解随机化器(de-randomizer)的配置的框图;
图4是示出了图1的非易失性存储器件的读取数据处理过程的框图;
图5是示出了根据本发明构思的示例性实施例的存储器件的读取方法的流程图;
图6是示出了根据本发明构思的示例性实施例的非易失性存储器件的读取方法的时序图;
图7是示出了根据本发明构思的示例性实施例的纠错块的框图;
图8是简要示出了对应于关于提供给纠错块的码字(codeword)的错误解码结果的ECC帧的表;
图9是示出了错误地址发生器的结构的图。
图10显示了其中检测出错误的ECC帧的示例。
图11A是示出了在图10的ECC帧条件下关于页缓冲器的重写操作的时序图;
图11B是示出了处理其中不存在错误的码字的方法的时序图;
图12是示出了根据本发明构思的示例性实施例的非易失性存储器件的框图;
图13是示出了根据本发明构思的示例性实施例的用于对非易失性存储器件执行更新拷回操作的命令序列的时序图;
图14是示出了根据本发明构思的示例性实施例的对非易失性存储器件执行更新拷回操作的处理的框图;
图15是示出了根据本发明构思的示例性实施例的更新拷回方法的流程图;
图16是根据本发明构思的示例性实施例的非易失性存储器件的框图;
图17是示出了被分割为多个写入单位的页面区域的图;
图18是示出了基于图16的NOP寄存器执行的拷回操作的表;
图19是示出了根据本发明构思的示例性实施例的非易失性存储器件的框图;
图20是示出了包括在图1、图12、图16、或图19中的单元阵列中的存储器块中的一个的电路图;
图21是示出了根据本发明构思的示例性实施例的包括非易失性存储器系统的存储器卡系统的框图;
图22是示出了包括根据本发明构思的示例性实施例的非易失性存储器系统的固态驱动系统的框图;以及
图23是示出了根据本发明构思的示例性实施例的包括非易失性存储器系统的用户系统的框图。
具体实施方式
图1是根据本发明构思的示例性实施例的非易失性存储器件的框图。参考图1,非易失性存储器件100包括单元阵列110、行解码器120、页缓冲器130、纠错块140(例如,配置为执行纠错的电路)、随机化器/解随机化器150(例如,被配置为从值生成随机数和/或从随机数生成值的电路)、输入/输出(I/O)缓冲器160、控制逻辑170(例如,控制电路)和电压发生器180。
单元阵列110通过字线和选择线连接到行解码器120。单元阵列110通过位线连接到页缓冲器130。单元阵列110包括多个NAND单元串。每个NAND单元串的通道可以在垂直或水平方向上形成。根据本发明构思的实施例的单元阵列110包括构成NAND单元串的多个存储器单元。可以由提供到位线或字线的电压来编程、擦除和读取存储器单元。可以由页单元或者由小于页单元(例如,NOP单元)的写入单元来执行编程操作,并且可以以块为单位执行擦除操作。例如,单元阵列110可以包括多个块BLK0、BL1、...、BLKi,其中每个块包括多个页,并且每个页被进一步分成具有写入单元的大小的部分。
在本发明构思的实施例中,单元阵列110被提供为三维(3D)存储器阵列。3-D存储器阵列可以在存储器单元阵列的一个或多个物理层中单片地形成,该存储器单元阵列具有布置在与硅衬底以及存储器单元的操作相关的电路上的有源区。与存储器单元的操作有关的电路可以位于衬底之中或衬底之上。术语“单片”意指3D阵列的每个级别(level)的层直接沉积在3D阵列的每个底层级别的层上。
在本发明构思的实施例中,3D存储器阵列包括垂直取向(oriented)的垂直NAND串,以使得至少一个存储器单元位于另一存储器单元上方。至少一个存储器单元可包括电荷陷阱层。每个垂直NAND串可以包括位于存储器单元上方的至少一个选择晶体管。至少一个选择晶体管可以具有与存储器单元相同的结构,并且与存储器单元一起被单片地形成。
通过引用并入本文的以下专利文献描述了适合三维存储器阵列的配置,其中三维存储器阵列被配置为多个级别,字线和/或位线在级别之间共享:美国专利号7,679,133、8,553,466、8,654,587、8,559,235和美国专利公开号2011/0233648。
在实施例中,行解码器120响应于地址ADD选择单元阵列110中的多个存储器块中的一个。行解码器120可以响应于地址ADD选择所选择的存储器块的字线中的一个。行解码器120可以将与操作模式相对应的电压提供给所选择的存储器块的字线。在编程操作期间,行解码器120可以向所选择的字线提供编程/验证电压,并向每个未选择的字线提供通过电压(pass voltage)。在读取操作期间,行解码器120可以向所选择的字线提供选择读取电压,并且向每个未选择的字线提供非选择读取电压。
页缓冲器130可以作为写驱动器或读出放大器操作。在编程操作期间,页缓冲器130可以将对应于要编程的数据的位线电压提供给单元阵列110的位线。在读取操作或验证读取操作期间,页缓冲器130可以通过位线感测存储在所选择的存储器单元中的数据。另外,页缓冲器130可在纠错块140或随机化器/解随机化器150的编码或解码操作期间提供缓冲器功能。例如,在随机化操作期间随机化的数据可被重写在没有被随机化的源数据上。页缓冲器130的缓冲器功能也可以在纠错操作期间执行。
纠错块140(例如,第二电路)执行用于纠错的编码和解码,并且随机化器/解随机化器150(例如,第一电路)可以对加载在页缓冲器130上的数据执行加扰。在实施例中,加扰模糊或去除存储器区域内的敏感数据。在实施例中,加扰处理是不可逆的,以使得不能从加扰数据导出原始数据。当数据被编程到单元阵列110中时,可以从输入/输出缓冲器160发送写入数据到页缓冲器130。存储在页缓冲器130中的写入数据可以由随机化器/解随机化器150随机化。可以由纠错块140对随机化写入数据进行编码以用于纠错。编码数据可以被再次提供给页缓冲器130。页缓冲器130中的随机化的和编码的数据可以被编程到单元阵列110的目标地区域中。
另外,在读取操作期间,可以将由页缓冲器130感测到的数据提供给纠错块140。也就是说,由纠错块140确定从页缓冲器130提供的感测到的数据中是否存在错误。如果确定在感测到的数据中存在错误,则纠错块140可以基于页缓冲器130的错误位置纠正错误。例如,纠错块140可以基于页缓冲器130中的感测到的位置来纠正错误。页缓冲器130中经纠错的读取数据可以在被发送到输入/输出缓冲器160时或者在其通过输入/输出缓冲器160被输出之后被解随机化。
可以通过对上述序列中的读取数据执行错误解码和解随机化来最小化页面缓冲器130内的整页的重写。因为在将纠错后的数据从页缓冲器130发送到输入/输出缓冲器160的同时执行解随机化操作,因此可以最小化重写。在实施例中,在对经纠错的数据执行随机化操作之后,解随机化的数据被存储在页缓冲器130中,并且整页的数据被重写在页缓冲器130中。在这个实施例中,因为感测到的和由页面缓冲器130锁存的数据的排列被解随机化操作完全改变,所以整页数据被重写。然而,由于纠错块140和随机化器/解随机化器150,不需要为解随机化在页缓冲器130中重写整页。另外,根据本发明构思的实施例的纠错块140仅在存在错误时才重写对应于错误位置的特定单元的数据。因此,当不存在错误时,可以最小化由于纠错造成的开销。这将参考以下附图详细描述。
I/O缓冲器160可以向页缓冲器130提供数据。由I/O缓冲器160提供的数据可以由位于非易失性存储器件100外部的源来供应。I/O缓冲器160可以将命令iCMD提供给控制逻辑170。由I/O缓冲器160提供的命令iCMD可由位于非易失性存储器装置100外部的源来供应。I/O缓冲器160可将地址ADD提供给控制逻辑170或行解码器120。此外,I/O缓冲器160可以将由页缓冲器130感测和锁存的数据输出到位于非易失性存储器件100外部的源。地址ADD可以由位于非易失性存储装置100的外部的源来供应。
在实施例中,响应于来自外部器件的命令iCMD或控制信号CNTL,控制逻辑170(例如,控制电路)控制页缓冲器130、纠错块140和随机化器/解随机化器150。在实施例中,控制逻辑170基于命令iCMD来控制页缓冲器130、纠错块140和随机化器/解随机化器150,以相对于所选择的存储器单元执行编程、读取或擦除操作。
具体地,在数据读取操作期间,控制逻辑170可以控制随机化器/解随机化器150,以使得在将纠错解码数据存储到页缓冲器130之后执行解随机化操作。例如,在读取使能信号/RE被触发(toggle)时,存储在页缓冲器130中的纠错解码过的数据可以被提供给随机化器/解随机化器150。由随机化器/解随机化器150解随机化的数据可以通过输入/输出缓冲器160输出到位于非易失性存储器件100外部的源。在实施例中,随机化器/解随机化器150包括基于从页缓冲器130顺序提供的数据的列地址立即生成种子的种子生成器。
在控制逻辑170的控制下,电压发生器180可以生成要分别提供给字线的各种字线电压和提供其中形成存储器单元的大块(例如,阱区域)的电压。要分别提供给字线的字线电压可以包括编程电压Vpgm、通过电压Vpass、选择和非选择读电压Vrd和Vread等。
在根据本发明构思的示例性实施例的非易失性存储器件100中,在数据读取操作期间,在没有解随机化操作的情况下,在页缓冲器130内重写被应用了纠错操作的数据。可以相对于从页缓冲器130输出到输入/输出缓冲器160的数据执行使用源种子的解随机化操作。在数据读取操作期间,在其中被执行纠错操作和解随机化操作两者的数据被重写到页缓冲器130上的实施例中,即使在数据中不存在错误,其布置根据随机化操作而改变的数据可以以整页为单位被重写。在示例性实施例中,要在页缓冲器130、纠错块140和随机化器/解随机化器150之间交换的数据通过(pass through)列选择器(未示出)和列修复电路。这种配置可能导致开销,因为使用了页缓冲器130和输入/输出缓冲器160之间的输入/输出线。
然而,根据本发明构思的示例性实施例,由于相对于从页缓冲器130输出到位于非易失性存储器件100外部的源的数据执行解随机化操作,所以当不存在错误时可以最小化重写。此外,根据本发明构思的实施例的纠错块140能够纠正其中存在错误的部分数据的错误,并且可以重写页缓冲器130内的经纠正的部分数据。根据本发明构思的实施例,因此,可以最小化在读取操作期间由于纠错和解随机化操作引起的各种延迟。因此,通过本发明构思的实施例,可以显著地提高不包括片上缓冲器(例如,静态随机存取存储器(SRAM))的非易失性存储器件的读取性能。
图2是示出了图1的非易失性存储器件的写入数据处理过程的框图。参考图2,可以从位于非易失性存储器件100外部的源提供写入命令、地址和写入数据W_Data。
虽然在图2中未示出,但可以将写入命令和地址从输入/输出缓冲器160提供给控制逻辑170、行解码器120或列解码器(未示出)。可以将写入数据W_Data从输入/输出缓冲器160提供给页面缓冲器130。写入数据W_Data可以由列选择器(未示出)顺序地选择,以便被加载到页面缓冲器130中。加载到页面缓冲器130的数据可具有例如4K字节的大小。由“①”标记的箭头指示写入数据W_Data从输入/输出缓冲器160到页面缓冲器130的流动。
将加载到页缓冲器130中的写入数据W_Data提供给随机化器150a用于随机化。用“②”标记的箭头指示写入数据W_Data到随机化器150a的流程。这里,随机化器150a可以是随机化器/解随机化器150的功能的一部分或其一部分。也就是说,随机化器150a可以是通过使用特定随机序列来对写入数据W_Data进行加扰的元件。包括在单元阵列110中的存储器单元的阈值电压(或阈值电压分布)可能由于相邻存储器单元之间的干扰而变化。干扰的幅度可以根据写入数据W_Data的模式而变化。存储器单元之间的干扰可以通过随机化操作加扰的数据模式来降低。因此,随机化操作可以提高非易失性存储器件100的读取余量(read margin)或可靠性。另外,加扰可以提高安全性能。
由随机化器150a随机化的写入数据W_Data被提供给纠错块140用于纠错编码。该数据流用“③”标记。纠错块140可以通过将随机化写入数据W_Data编码为码字单元来生成奇偶校验数据。各种方案可以应用于纠错编码。例如,纠错块140可以通过使用Bose-Chaudhuri Hocquenghem(BCH)码、汉明码,里德-所罗门(RS)码、turbo码和低密度奇偶校验码(LDPC)中的至少一个来执行编码。
由纠错块140编码的随机化的和编码的写入数据W_Data'可以被重写到页缓冲器130上。例如,具有写入数据W_Data的位置的页缓冲器130中的数据可以被随机化的和编码的写入数据W_Data'重写。该数据流用“④”标记。通过上述描述,首先加载到页缓冲器130中的写入数据W_Data的布置可以不同于随机化的和编码的写入数据W_Data'的布置。
之后,随机化的和编码的写入数据W_Data'可以被编程到单元阵列110的目的区域。该数据流用“⑤”标记。
简要描述了根据本发明构思的实施例的在非易失性存储器件100中处理写入数据的过程。由于随机化和纠错编码操作,写入目标页的随机化的和编码的写入数据W_Data'的布置可以不同于最初加载到页缓冲器130中的写入数据W_Data的布置。可以通过在读取操作期间的错误解码和解随机化操作来恢复该布置。
图3是示出了根据本发明构思的示例性实施例的随机化器/解随机化器150的框图。参考图3,根据本发明构思的实施例的随机化器/解随机化器150包括种子生成器152、随机序列生成器154和混合器156。
种子生成器152可以高速生成对应于要随机化的或要解随机化的数据的种子。例如,种子生成器152可以通过使用所选择的页的行地址R_ADD和列地址C_ADD(或偏移信息)来生成用于对小于页单位的单位的数据进行随机化或解随机化的种子。也就是说,种子生成器152可以高速生成用于对存储在页缓冲器130中的多个部分数据中的任意一个进行随机化或解随机化的种子。
随机序列生成器154通过使用种子生成随机序列(以下称为“RS”)。随机序列生成器154生成其中使用所输入的种子作为初始值的随机序列RS。随机序列发生器154可以用以斐波纳契(Fibonacci)配置操作的线性反馈移位寄存器来实现。
混合器156通过混合随机序列RS和从随机化或解随机化操作提供的输入数据Din来输出输出数据Dout。在实施例中,随机序列RS和输入数据Din通过异或(XOR)运算或XOR门来混合,并且输出数据Dout是作为混合结果输出。
具有上述配置的随机化器/解随机化器150可以使得高速生成相对于要被随机化或解随机化的数据的种子成为可能。例如,在其中将被解随机化的部分数据对应于一页中的后部的列地址的情况下,种子生成器152可以高速生成种子。
图4是示出了根据本发明构思的示例性实施例的图1的非易失性存储器件的读取数据处理过程的框图。参考图4,非易失性存储装置100响应于读取命令和地址输出读取请求的数据。
页缓冲器130感测对应于来自单元阵列110的地址的读取请求的数据。感测到的数据可以存储在页缓冲器130的锁存器中。该数据流用“⑥”标记。
页缓冲器130中的锁存读取数据R_Data被提供给纠错块140用于纠错解码。例如,读取数据R_Data可以以码字为单位提供给纠错块140。该数据流用“⑦”标记。
纠错块140可以检测在从页缓冲器130提供的数据中是否存在错误。一个码字包括能够检测错误的奇偶校验数据,并且可以通过使用奇偶校验数据来检测错误。在通过使用BCH码执行的错误解码中,可以通过使用奇偶校验数据来检测错误位和错误位置。如果检测到错误位置,则纠错块140可通过将纠错的位重写到与页缓冲器130内的错误位置相对应的位上(例如,通过位触发)来纠正错误。根据本发明构思的实施例的纠错块140仅对存在错误的数据区域执行纠错处理。该数据流用“⑧”标记。因此,如果不存在错误,则跳过由纠错块140到页缓冲器130上的数据重写。原因是当读取数据R_Data从页面缓冲器130输出到输入/输出缓冲器160时,执行了关于读取数据R_Data的解随机化操作。
可以根据输出请求(或读取使能信号/RE的触发)以特定数据为单位向解随机化器150b提供存储在页面缓冲器130中的经纠错的读取数据R_Data。例如,页大小的读取数据R_Data可以被划分为大小小于由I/O引脚单元传输的数据量的数据,以便在多个时钟周期期间被提供给解随机化器150b。此数据流用“⑨”标记。解随机化器150b可以是随机化器/解随机化器150的功能的一部分或其一部分。
解随机化器150b可以高速对输入读取数据R_Data进行解随机化。根据参照图3描述的结构,解随机化器150b可以通过使用这样提供的读取数据的行地址和列地址R_ADD和C_ADD高速地生成种子。解随机化器150b从所生成的种子生成要在随机化操作期间应用的随机序列RS。解随机化器150b可以基于所生成的随机序列RS和读取数据R_Data高速地对读取数据R_Data进行解随机化。可以将由解随机化操作生成的读取数据R_Data提供给输入/输出缓冲器160。该数据流用“⑩”标记。
根据上述读取过程,读取数据R_Data可以首先被页缓冲器130锁存。接下来,在被纠错解码处理之后,读取数据R_Data被再次重写到页缓冲器130上。当从页面缓冲器130输出读取数据R_Data到输入/输出缓冲器160时,执行相对于读取数据R_Data的解随机化操作。根据读取过程,当纠错解码数据从页缓冲器130输出到外部时,执行相对于读取数据R_Data的解随机化操作。因此,不需要再考虑由于解随机化操作引起的问题,即数据的布置的改变。此外,根据本发明构思的实施例的纠错块140仅将其中存在错误的数据重写到页缓冲器130上。因此,当不存在错误时,跳过重写操作。
图5是示出了根据本发明构思的示例性实施例的存储器件100的读取方法的流程图。参考图5,仅当在读取操作期间执行的纠错解码操作的结果指示存在错误时,才相对于页缓冲器130(参考图1)执行重写操作。另外,当从页面缓冲器130输出读取数据R_Data到外部时,执行关于读取数据R_Data的解随机化操作。
在操作S110中,非易失性存储器件100(参考图1)从外部接收读取命令。非易失性存储器件100可以接收连同读取命令的地址。控制逻辑170(参考图1)可以基于从外部提供的控制信号CNTL以及读取命令和地址来准备读取操作。
在操作S120中,控制逻辑170控制行解码器120和页缓冲器130,以使得从对应于地址的单元阵列110的所选择的存储器单元感测数据。页缓冲器130通过位线感测和锁存存储在所选择的存储器单元中的数据。
在操作S130中,控制逻辑170控制页缓冲器130和纠错块140,以使得页缓冲器130中的锁存的读取数据R_Data被发送到纠错块140。例如,存储在页缓冲器130中的读取数据R_Data可以以包括在奇偶校验字段中的码字为单位,被发送到纠错块140。纠错块140可以对所提供的码字执行错误检测。如果检测结果指示存在错误,则纠错块140通过使用校验子(syndrome)来获得错误位置信息。经纠正的数据可以被重写到对应于错误位置的页缓冲器130的锁存器上。如果检测结果指示不存在错误,则跳过经纠正的数据的重写。如果相对于锁存在页缓冲器130中的整个数据执行错误检测和纠正操作,则可以在页缓冲器130中准备经纠错的全页数据。
如果在页缓冲器130中存储已经完成错误检测和纠正操作的数据,则在操作S140中,控制逻辑170确定是否已经接收到读使能信号/RE。如果确定没有接收到读使能信号/RE,则控制逻辑170等待直到接收到读使能信号/RE,或者可以确定是否已经接收到另一个控制信号。如果确定已经接收到读使能信号/RE,则过程继续到操作S150。
在操作S150中,在控制逻辑170的控制下,存储在页缓冲器130中的数据被发送到随机化器/解随机化器150用于解随机化。随机化器/解随机化器150可以相对于与读使能信号/RE同步提供的输出数据流执行解随机化操作。
在操作S160中,由随机化器/解随机化器150解随机化的输出数据通过输入/输出缓冲器160被输出到外部。
简要描述了根据本发明构思的实施例的非易失性存储器件100的读取方法。在读取操作期间,在错误检测和纠正完成之后,通过页缓冲器130感测到的所有数据被写入页缓冲器130而不进行解随机化。相对于从页缓冲器130输出到外部的数据执行解随机化操作。在相对于根据上述描述纠错的数据执行的解随机化操作中,可以降低由于使用布置已改变的数据重写页缓冲器130而引起的开销。另外,在根据本发明构思的实施例的纠错块140的检测结果指示在数据中不存在错误的情况下,跳过具有数据的页缓冲器130的重写。因此,可以显着提高根据本发明构思的实施例的读取方法的读取性能。
图6是示出了根据本发明构思的示例性实施例的非易失性存储器件的读取方法的时序图。参考图6,非易失性存储装置100响应于来自外部的读取命令执行根据本发明构思的实施例的纠错和解随机化操作。这将在下面更详细地描述。
在时间T0,非易失性存储器件100从外部(例如,存储器控制器)接收读取命令。例如,非易失性存储器件100通过输入/输出数据线I/Oi接收读取命令“00h”。也就是说,当在命令锁存使能信号CLE的高部分期间触发写使能信号/WE时,将读取命令“00h”输入到非易失性存储器件100。
在时间T1,接收地址ADD。例如,当在地址锁存使能信号ALE的高部分期间触发写使能信号/WE时,读取请求的数据的行地址和列地址被输入到非易失性存储器件100。这里,应当理解,用于读取地址ADD的输入的写使能信号/WE的时钟周期仅是示例性的。
在完成对读取地址ADD的接收之后,在时间T2,非易失性存储器件100使就绪/忙信号R/B转变到忙状态(例如,逻辑低)。非易失性存储器件100感测与输入地址ADD相对应的存储器单元,并且在页缓冲器130中锁存感测到的数据。
在时间T3,非易失性存储器件100相对于锁存在页缓冲器130中的读取数据执行错误解码。也就是说,如果以码字为单位将锁存在页缓冲器130中的读取数据R_Data发送到纠错块140,则纠错块140可以检测相对于码字,也即读取数据的错误,并且可以纠正检测到的错误。由纠错块140纠正检测到错误的数据,并且可以重写经纠正的数据到页缓冲器130上。可以执行上述错误检测和纠正处理直到时间T4。
在时间T4,响应于读使能信号/RE的触发,页缓冲器130中的锁存数据被输入/输出单元解随机化,并且可以将解随机化的数据提供给输入/输出缓冲器160。可以通过输入/输出缓冲器160和输入/输出焊盘(未示出)将来自随机化器/解随机化器150的数据输出到外部。
从上述时序图可以理解,时间tR不包括执行解随机化操作所需的时间。由于解随机化操作是在当数据从页缓冲器130输出到输入/输出缓冲器160时执行的,所以其可以与读使能信号/RE触发的时间同步地执行。因此,可以显著减少感测和解码读取请求的数据所需的时间tR。此外,根据本发明构思的实施例,根据纠错块140的使用,可以显著减少执行错误解码所需的时间tECC。原因是仅当页缓冲器130中的数据具有错误时才重写页缓冲器130。
图7是示出了根据本发明构思的示例性实施例的纠错块的框图。参考图7,将描述纠错块140通过使用BCH码生成校验子(syndrome)并通过使用校验子检测错误位置的示例。然而,应当理解,能够检测错误位置的各种纠错码可应用于本发明构思的实施例。纠错块140包括读缓冲器141、校验子计算块142、钱氏搜索块143、错误地址生成器144、纠正器145和写缓冲器146。
从页缓冲器130发送的码字单元的数据R(x)被存储在读缓冲器141中。存储在读缓冲器141中的数据R(x)被提供给校验子计算块142。
校验子计算块142接收数据R(x)以计算校验子S(x)。例如,可以通过将奇偶检测多项式H(x)与读取数据R(x)相乘来计算校验子S(x)。可以使用生成多项式G(x)的根来生成奇偶检测多项式H(x)。通过校验子S(x)检测读取数据R(x)中是否存在错误。校验子S(x)包括数据R(x)的整体错误信息。也就是说,校验子S(x)包括错误的位置和模式以及错误的大小。因此,可以通过校验子S(x)确定相对于读取数据R(x)、错误位检测、纠错以及检测错误是否是可纠正的。
钱氏搜索块(Chien search block)143通过使用校验子S(x)来生成纠错向量E(x)。可以将由校验子计算块142计算出的校验子S(x)提供给关键方程解算器(KES)块(未示出)。可以由KES块从校验子S(x)生成错误位置多项式σ(x)和错误模式多项式ω(x)。钱氏搜索块143计算错误位置多项式的根。计算与通过错误位置多项式找到的每个错误位置相对应的错误的大小。如果通过钱氏搜索算法获得读取数据R(x)的错误位置和错误大小,则钱氏搜索块143输出用于纠正错误的纠错向量E(x)。纠错向量E(x)包括关于所提供的码字的错误位置信息。
错误地址生成器144可以通过使用纠错向量E(x)来生成要被重写到页缓冲器130上的部分数据的地址信息。将参考图9描述错误地址发生器144的详细配置。错误地址发生器144基于检测到的错误位置和大小生成写时钟W_CLK,并可以将写时钟W_CLK输出到页缓冲器(PB)130。错误地址发生器144生成对应于要用纠正的数据重写页缓冲器130的位置PB_ADD。
纠正器145通过使用错误纠正向量E(x)来纠正其中存在错误的数据。纠正器145可以通过相对于存储在读缓冲器141中的读取数据R(x)和由读缓冲器141计算的纠错矢量E(x)执行异或运算来纠正包括在读取数据R(x)中的错误。在被存储到写缓冲器146之后,经纠错的数据可以被重写到页缓冲器130上。
参考图7描述了纠错块140的示例性配置。纠错块140可以通过参考错误位置仅使用存在错误的部分数据重写页缓冲器130来执行纠错。如果检测到处理过的码字中不存在错误,则不需要重写其中存储了码字的页缓冲器130的锁存器。
图8是简要示出了与相对于提供给纠错块140的码字的错误解码结果相对应的ECC帧的表。参考图8,ECC帧包括与错误位置信息相对应的页缓冲器地址PB_ADD、纠错位ECCBIT和钱氏位。
这里,页缓冲器地址PB_ADD对应于被提供用于错误检测的码字的页缓冲器130中的位置。纠错位ECC BIT指示ECC帧中的位位置(bit location)。钱氏位CHIEN BIT指示通过错误检测操作检测到的错误的位置。例如,在钱氏位CHIEN BIT的逻辑值为“1”的情况下,将钱氏位的位置确定为存在错误的位置。
图9是示出了根据本发明构思的示例性实施例的错误地址生成器的结构的图。参考图9,错误地址发生器144被用于检测生成了错误的页缓冲器地址PB_ADD。
可以通过作为相对于码字执行错误检测操作的结果而提供的钱氏位CHIEN BIT来确定要被重写的页缓冲器130的地址。钱氏位<0>到钱氏位<7>被输入到第一门144a。当钱氏位CHIEN BIT<0>至CHIEN BIT<7>中的至少一个具有二进制“1”时,可以以经纠错的数据重写与ECC位ECC BIT<0>至ECC BIT<7>对应的页缓冲区。也就是说,与页缓冲器<0>相关联的命中信息(hit information)可以输出为“1”。
钱氏位CHIEN BIT<8>至CHIEN BIT<15>被输入到第二门144b。当钱氏位CHIEN BIT<8>至CHIEN BIT<15>中的至少一个具有二进制“1”时,可以以经纠错的数据重写与ECC位ECC BIT<8>至ECC BIT<15>对应的页缓冲区。也就是说,与页面缓冲器<1>相关联的命中信息可以输出为“1”。
钱氏位CHIEN BIT<16>至CHIEN BIT<23>被输入到第三门144c。当钱氏位CHIENBIT<16>至CHIEN BIT<23>中的至少一个具有二进制“1”时,可以以纠错数据重写与ECC位ECC BIT<16>至ECC BIT<23>对应的页缓冲区。也就是说,与页缓冲器<2>相关联的命中信息可以输出为“1”。
钱氏位CHIEN BIT<24>至CHIEN BIT<31>被输入到第四门144d。当钱氏位CHIENBIT<24>至CHIEN BIT<31>中的至少一个具有二进制“1”时,可以以纠错数据重写与ECC位ECC BIT<24>至ECC BIT<31>对应的页缓冲区。也就是说,可以输出与页缓冲器<3>相关联的命中信息为“1”。
图10简要地示出了其中检测到错误的ECC帧的示例。参考图10,假设生成错误的位置是ECC位<4>、<17>、<20>和<44>。在这种情况下,假设钱氏位<4>、<17>、<20>和<44>的逻辑值为“1”,以及剩余的钱氏位的逻辑值为“0”。
图11A是示出了在图10的ECC帧条件下相对于页缓冲器130的重写操作的时序图。参考图11A,重写操作由从页缓冲器130读取用于错误检测并纠正的码字的操作(t0至t7)和使用经纠正的数据重写检测到的错误位置的操作(t7至t9)组成。在t9之后执行的操作对应于另一码字的读取操作。
首先,在时间t0和时间t7之间将错误检测目标的码字提供给读取缓冲器141。可以与读取时钟同步地将码字从页缓冲器130发送到读取缓冲器141。当执行错误检测操作和纠正操作时,可以以参考图10描述的形式生成ECC帧。由于钱氏位<4>、<17>、<20>和<44>的逻辑值为“1”,所以可以仅对其中存在错误的页缓冲器地址PB<0>和PB<2>重写经纠正的数据。可以提供“1010”的4位命中信息。也就是说,命中信息“1010”意味着仅对页缓冲器地址PB<0>和PB<2>执行重写。因此,写时钟W_CLK在两个周期期间被提供给页缓冲器130。也就是说,仅使用要被纠错的部分数据重写页缓冲器130。
图11B是示出了当没有错误存在时处理码字的方法的时序图。参考图11B,如果从页缓冲器130读取的码字没有检测到错误,则跳过使用纠正的数据重写页缓冲器130的操作。
首先,在时间t0和t7之间将错误检测目标的码字提供给读取缓冲器141。可以与读取时钟同步地将码字从页面缓冲器130发送到读取缓冲器141。可以在执行错误检测操作和纠正操作的时候生成ECC帧。在作为错误检测操作的结果而生成的ECC帧中不存在逻辑值为“1”的钱氏位的情况下,可以生成命中信息hit PB“0000”。也就是说,命中信息“0000”指示在所发送的码字中不存在错误。在这种情况下,不需要用经纠正的数据重写页缓冲器130。因此,写时钟W_CLK保持在非活动状态(inactive state)。在时间t7之后,可以将另一个码字从页面缓冲器130发送到纠错块140。
上面描述了根据本发明构思实施例的纠错块140的特征。在存在错误时,根据本发明构思的实施例的纠错块140相对于页缓冲器130的一部分执行重写操作。因此,在没有错误的情况下,可以显著减少由于相对于页缓冲器130的重写操作的开销。
图12是示出了根据本发明构思的示例性实施例的非易失性存储器件的框图。参考图12,非易失性存储器件200包括单元阵列210、行解码器220、页缓冲器230、纠错块240、随机化器/解随机化器250、输入/输出缓冲器260和控制逻辑270。在此,单元阵列210、行解码器220、页缓冲器230、纠错块240、随机化器/解随机化器250、输入/输出缓冲器260等基本上与参照图1描述的那些相同。因此,这里省略其详细描述。
非易失性存储器件200可以相对于从源区读取的数据执行随机化操作和纠错操作,并且可以将结果数据存储在目的区域中。具体地,根据本发明构思的实施例的非易失性存储器件200更新从源区读取的源数据的一部分,并将更新的结果存储在目的区域中。在下文中,拷回操作被称为“更新拷回操作”。闪存中的数据不能重写,在重新写入之前必须先擦除。在NAND闪存中,擦除以块粒度(block granularity)发生,其中块包括多个页。有些页面可能包含有效数据,有些页面可能包含无效数据。通过将这些块的有效数据复制到另一目的地块,然后擦除源块,可以释放具有有效数据的多个源块。可以通过拷回操作来执行复制。
在拷回操作中,源页面的行地址可以不同于目标页面的行地址。在其中基于行地址生成种子的随机化器/解随机化器250在片上实现的非易失性存储器件200中,源页面的种子可以不同于目标页面的种子。因此,在执行更新拷回操作的情况下,存储在页缓冲器230中的源页面的种子和从外部输入的补充数据(supplement data)的种子可以具有不同的值。由于这个原因,难以在不使源页面和目标页面的随机化布置彼此相等的情况下执行更新拷回操作。
单元阵列210包括多个存储器块。每个存储器块被划分为多个页或页区域。在拷回操作期间,从页区域读取的源数据被临时存储在页缓冲器230中。在示例性实施例中,使用从非易失性存储器件200的外部提供的补充数据来更新源数据。在实施例中,补充数据的大小小于一页的大小。
如果存在用于在拷回操作期间更新源数据的补充数据,则控制逻辑270执行以下处理过程。这里,假设源数据是从第一页区域212读取的数据,并且目的区域是第三页区域214。如果接收到与拷回目标对应的源数据的读取命令,则控制逻辑270可以控制页缓冲器230以便感测和锁存来自第一页区域212的源数据。如果检测到存在用于更新源数据的补充数据,则控制逻辑270相对于补充数据执行随机化操作。可以通过使用与源数据的种子相同的种子来执行随机化操作。随机化补充数据可以被重写到存储在页面缓冲器230中的源数据上。
之后,控制逻辑270可以控制纠错块240和随机化器/解随机化器250,以便执行随机化处理和纠错编码,用于将经更新的源数据编程到作为目的区域的第三页面区域214。首先,随机化器/解随机化器250通过使用源种子来对使用补充数据更新的源数据进行解随机化。接下来,通过使用与目的区域相对应的目的种子来对解经随机化的数据进行随机化。然后,纠错块240可以相对于通过使用目的种子随机化的数据来选择性地执行纠错编码。通过纠错编码处理的数据可以被重写到页缓冲器230上,然后可以被编程到目的区域中。
简要描述了非易失性存储器件200用于更新拷回操作的功能。当存在用于更新源数据的补充数据时,可以触发更新拷回操作。如果检测到补充数据,则可以通过使用源种子随机化补充数据并用经随机化的补充数据重写源数据来更新源数据。之后,可以通过使用源种子的解随机化和使用目的种子的随机化,将更新的源数据写入目的区域。在这种情况下,应当理解,可以执行纠错编码。上述随机化方案可以使得在拷回操作期间更新源数据成为可能。
图13是示出了根据本发明构思的示例性实施例的用于对非易失性存储器件执行更新拷回操作的命令序列的时序图。参考图13,用于源数据S_Data 262的读取命令和用于更新源数据的补充数据D1 264和D2 266被输入到用于更新拷回操作的非易失性存储器件200。
首先,根据本发明构思的实施例,提供了用于读取源数据S_Data 262的命令序列用于更新拷回操作。例如,在就绪/忙信号R/B保持在就绪状态(“高”)的时段中,可以将命令序列'00h'-'S_ADD'-'35h'输入到非易失性存储器件200。这里,源地址261是要被拷回的源数据的地址。响应于命令序列'00h'-'S_ADD'-'35h',非易失性存储器件200通过使用页缓冲区230使就绪/忙信号R/B转变到忙状态(“低”),并且感测和锁存源区域的数据。
响应于读使能信号(未示出),可以将在页缓冲器230中锁存的源数据S_Data 262输出到外部。图13示出了源数据S_Data通过输入/输出线I/Oi被输出到外部的实施例。然而,应当理解,在更新拷回操作期间不需要输出源数据S_Data。
接下来,将要写入源数据S_Data 262的目的区域的地址和补充数据D1 264和D2266被输入到非易失性存储器件200。这里,可以将目的区域的地址D_ADD1 263和补充数据D1 264以命令序列'85h'-'D_ADD1'-'D1'输入到非易失性存储器件200。地址D_ADD1 263可以包括目的区域的行地址和与补充数据D1 264相对应的列地址。此外,通过命令序列'85h'-'D_ADD2'-'D2'提供补充数据D2 266。地址D_ADD2 265可以包括与补充数据D2266相对应的列地址。之后,根据本发明构思的实施例,如果提供了“10h”的确认命令267,则非易失性存储装置200执行随机化和解随机化操作用于更新源数据S_Data。这里,补充数据D1264和D2 266被输入到非易失性存储器件200的事件的数量可以由用户进行不同地改变。
图14是示出了根据本发明构思的示例性实施例的对非易失性存储器件执行更新拷回操作的处理的框图。参考图14,连同来自非易失性存储器件200的外部的拷回命令一起接收目的地址和补充数据D1和D2。这里,假定提前将源区域的源数据S_Data锁存在页缓冲器230中。
可以通过输入/输出缓冲器260将补充数据D1和D2提供给随机化器250a。这里,随机化器250a可以是随机化器/解随机化器250的功能的一部分或其一部分。由“①”标记的箭头指示补充数据D1和D2到随机化器250a的流程。
随机化器250a可以分别对补充数据D1和D2执行随机化操作。在这种情况下,通过使用用于随机化源数据S_Data的源种子S_Seed来对补充数据D1和D2进行随机化。在实施例中,使用其中使用源种子S_Seed和列地址的高速随机序列生成方案来随机化补充数据D1和D2。通过使用源种子S_Seed随机化的补充数据D1和D2可以被重写到锁存在页缓冲器230中的源数据S_Data上。该数据流用“②”标记。
在页缓冲器230上用随机化的补充数据D1和D2重写的源数据S_Data是通过相同源种子S_Seed而被随机化的全页数据。因此,可以防止由于源数据S_Data和补充数据D1和D2之间的随机化处理的不匹配而引起的问题。接下来,将更新的源数据S_Data提供给解随机化器250b。该数据流用“③”标记。
解随机化器250b对通过使用源数据S_Seed更新的源数据S_Data进行解随机化。然后,将更新的和解随机化的源数据S_Data发送到随机化器250a。该数据流用“④”标记。
随机化器250a随机化经更新和解随机化的源数据S_Data。在这种情况下,通过使用目的种子D_Seed来对经更新的和解随机化的源数据S_Data进行随机化。将通过使用目的种子D_Seed随机化的源数据S_Data发送到纠错块240。该数据流用“⑤”标记。
纠错块240相对于通过使用目的种子D_Seed随机化的源数据S_Data执行纠错编码。纠错块240可以再次将编码的源数据S_Data重写到页缓冲器230上。该数据流用“⑥”标记。这里,可以选择性地执行纠错块240的编码。如果未在芯片上实现纠错块240,则在更新拷回操作期间可以跳过纠错编码。
在页缓冲器230上加载的源数据S_Data被写入单元阵列210的目的区域中。该数据流用“⑦”标记。
简要描述了根据本发明构思的实施例的非易失性存储器件200的更新拷回操作。如果通过使用源种子来随机化用于更新的补充数据,则可以防止由于随机化的补充数据和随机化的源数据的布置之间的差异而导致的问题。
图15是示出了根据本发明构思的示例性实施例的更新拷回方法的流程图。参考图15,如果从外部接收到拷回命令、源地址、目的地址和补充数据,则执行非易失性存储器件200的更新拷回操作。下面,将参考图15描述根据本发明构思的示例性实施例的更新拷回操作。
在操作S210中,非易失性存储器件200接收连同拷回命令的源地址S_ADD。源地址S_ADD可以包括存储源数据S_Data的源区域的页地址。
在操作S215中,非易失性存储器件200通过使用页缓冲器230感测来自源区域的数据。非易失存储器件200将感测到的源数据S_Data锁存到页缓冲器230中。
在操作S220中,非易失性存储器件200从外部接收目的地址D_ADD和补充数据。目的地址D_ADD可以包括由补充数据更新的源数据将要被复制到的行地址。另外,目的地址D_ADD可以包括补充数据的列地址。
在操作S225中,非易失性存储器件200相对于补充数据执行随机化操作。在这种情况下,通过使用用于随机化源数据S_Data的源种子S_Seed来随机化补充数据。
在操作S230中,非易失性存储器件200将经随机化的补充数据重写到锁存在页缓冲器230中的源数据S_Data上。可以通过重写操作来更新源数据S_Data。被在页缓冲器230上的随机化补充数据重写的源数据S_Data对应于通过使用相同源种子S_Seed而随机化的页数据。
在操作S235中,非易失性存储器件200执行用于将由补充数据更新的源数据写入在目的区域中的附加过程。首先,非易失性存储装置200通过使用源种子S_Seed对使用补充数据更新的源数据进行解随机化。
在操作S240中,非易失性存储器件200通过使用目的种子D_Seed随机化经随机化的源数据S_Data。可以从连同拷回命令一起提供的目的地址生成目的种子S_Seed。
在操作S245中,非易失性存储器件200相对于通过使用目的种子D_Seed随机化的源数据S_Data执行纠错编码。可以选择性地执行相对于源数据S_Data的纠错编码。
在操作S250中,非易失性存储器件200重写在页缓冲器230上的经编码的数据。
在操作S255中,非易失性存储器件200控制页缓冲器230,以使得在页缓冲器230上加载的经更新的和随机化的源数据S_Data被写入单元阵列210的目的区域中。
上面描述了其中非易失性存储器件200执行更新拷回操作的过程。可以首先通过使用用于更新拷回操作的源种子S_Seed来随机化用于更新的补充数据输入。
图16是根据本发明构思的示例性实施例的非易失性存储器件的框图。参考图16,非易失性存储器件300包括单元阵列310、行解码器320、页缓冲器330、纠错块340、随机化器/解随机化器350、输入/输出缓冲器360和控制逻辑370。这里,单元阵列310、行解码器320、页缓冲器330、纠错块340、随机化器/解随机化器350和输入/输出缓冲器360基本上与参照图12描述的那些相同。因此,这里省略其详细描述。
非易失性存储器件300可以相对于从源区域读取的数据执行随机化操作和纠错操作,并且可以将结果数据存储在目的区域中。具体地,非易失性存储器件300可以通过使用多个写入单元来管理页面。这里,一页被分成多个写入单元NOP1、NOP2、NOP3和NOP4。NOP1-4中的NOP可代表程序单元数。
根据本发明概念的示例性实施例的非易失性存储器件可以在拷回操作期间由写入单元随机化以及更新存储在页缓冲器330中的源数据。另外,更新的数据可以由写入单元编程到单元阵列310中。为此,非易失性存储器件300可以包括NOP寄存器375。可以根据更新拷回操作的进展来更新NOP寄存器375的状态。可以基于NOP寄存器375的状态将更新的数据存储在目的区域中。在实施例中,基于NOP寄存器375的状态将部分页面而不是整页编程到目的区域中。
图17是示出了被划分为多个写入单位的页面区域的图。参考图17,页区域可以包括例如四个写入单元NOP1至NOP4以及存储写入单元NOP1至NOP4的状态的标志区域。写入单元NOP1至NOP4可以彼此独立地编程。在实施例中,页区域中的写入单元中仅有一个处于编程状态,并且其余写入单元处于擦除状态。写入单元NOP1至NOP4的状态信息存储在标志区域中。
在更新拷回操作期间,可以将要被补充数据更新的写入单元或即使未被更新也要随机化的写入单元编程到单元阵列310的目的区域中。因此,不需要相对于在源数据和目的区域两者中保持在擦除状态的写入单元执行编程操作。根据本发明构思的实施例的非易失性存储器件300可以在拷回操作期间通过使用NOP寄存器375来更新补充数据。此外,非易失性存储器件300可以由写入单元对单元阵列310中的经更新的页数据进行编程。因此,可以减少执行拷回操作所需的时间。
图18是示出了基于图16的NOP寄存器执行的拷回操作的表。参考图18,每当执行更新拷回操作时,NOP寄存器375可以存储关于写入单元NOP1至NOP4中的每一个的状态信息。控制逻辑370可以基于存储在NOP寄存器375中的状态信息来执行存储在页缓冲器330中的源数据的更新和对目的区域中的经更新的源数据的编程。以下,将描述参考NOP寄存器375执行更新拷回操作的每一步。
NOP寄存器375的状态号1的字段值指示请求读取拷回操作的源区域的状态。例如,写入单元NOP1和NOP2指示数据被编程的状态,写入单元NOP3和NOP4指示被擦除的状态。在这种情况下,与状态号2对应的写入单元NOP1至NOP4的值被设置为“TTFF”。
状态号3指示为更新操作接收的补充数据Din是否对应于写入单元NOP1至NOP4中的任意一个。在补充数据Din的列地址对应于写入单元NOP2和NOP3的情况下,状态号3的值被设置为“FTTF”。
可以将关于是否使与补充数据Din相对应的写入单元NOP2和NOP3随机化的信息存储在状态号4的寄存器中。在写入单元NOP2中,可以用补充数据更新现有源页面的数据。因此,需要通过使用源种子来随机化在写入单元NOP2上更新的补充数据。然而,在写入数据NOP3中,由于源数据保持在擦除状态,因此不需要通过使用源种子来执行随机化操作。因此,在页缓冲器330中对应于写入单元NOP1、NOP3和NOP4的数据保持在源数据状态。相反,可以将经随机化的补充数据重写在与写入单元NOP2相对应的页缓冲器330的锁存器上。
可以将要用补充数据更新的写入单元的位置信息存储在状态号5的寄存器中。也就是说,可以将状态值“T”分配给将用补充数据更新的写入单元NOP2和NOP3中的每一个。
将要应用解随机化操作的写入单元被存储在状态号6的寄存器中。使用源种子的解随机化操作可以仅应用于通过使用源种子随机化的写入单元。因此,可以向随机化器/解随机化器350仅提供来自页缓冲器330的与写入单元NOP1和NOP2对应的数据,并且可以通过使用源种子来对所提供的数据进行解随机化。
通过使用目的种子随机化的写入单元被指定在状态号7的寄存器中。可以通过使用目的种子将通过使用源种子解随机化的写入单元NOP1和NOP2的数据以及未应用解随机化操作的写入单元NOP3的数据随机化。为此,在状态号7的寄存器中,写入单元NOP1、NOP2和NOP3中的每一个被设置为“T”。
基本上在目的区域中编程的写入单元被指定在状态号8的寄存器中。数据可以被编程在对应于写入单元NOP1、NOP2和NOP3的页区域中。然而,与写入单元NOP4相对应的存储区可以保持在擦除状态。
描述了其中在页区域被划分为多个写入单元的情况下执行根据本发明构思的实施例的更新拷回操作的示例。在这种情况下,可以跳过与将要保持在擦除状态的写入单元相关联的写操作。另外,可以跳过随机化器/解随机化器350相对于在被擦除的写入区域上要被更新的补充数据的随机化和解随机化操作。
图19是示出了根据本发明构思的示例性实施例的非易失性存储器件的框图。参考图19,非易失性存储器件400包括单元阵列410、行解码器420、页缓冲器430、纠错块440、随机化器/解随机化器450、输入/输出缓冲器460和控制逻辑470。单元阵列410、行解码器420、页缓冲器430、纠错块440、随机化器/解随机化器450和输入/输出缓冲器460基本上与参考图1、图2和图16描述的那些相同。因此,在此不再重复其详细描述。
非易失性存储器器件400包括存储用于随机化或解随机化操作的源和目的种子的种子RAM 475。从通过命令序列输入的地址获得的源或目的种子存储在种子RAM 475中。为了快速提供与相对于页面区域的特定列地址相对应的种子,可以以表格的形式或各种形式将种子值存储在种子RAM 475中。
图20是示出了包括在图1、图12、图16或图19中的单元阵列中的多个存储器块中的一个的电路图。在实施例中,将参照图20描述具有三维结构的第一存储器块BLK1。参考图20,第一存储器块BLK1包括多个单元串CS11、CS12、CS21和CS22。单元串CS11、CS12、CS21和CS22可以沿着行方向和列方向布置以形成行和列。
例如,可以将单元串CS11和CS12连接到串选择线SSL1a和SSL1b以构成第一行。可以将单元串CS21和CS22连接到串选择线SSL2a和SSL2b以构成第二行。例如,可以将单元串CS11和CS21连接到第一位线BL1以构成第一列。可以将单元串CS12和CS22连接到第二位线BL2以构成第二列。
单元串CS11、CS12、CS21和CS22中的每一个可以包括多个单元晶体管。例如,单元串CS11、CS12、CS21和CS22中的每一个可以包括串选择晶体管SSTa和SSTb、多个存储器单元MC1至MC8、地选择晶体管(ground selection transistors)GSTa和GSTb以及虚拟存储器单元DMC1和DMC2。在实施例中,包括在单元串CS11、CS12、CS21和CS22中的存储器单元中的每一个可以是电荷捕获闪存(CTF)存储器单元。
存储器单元MC1至MC8可以串联连接,并且可以在作为垂直于由行方向和列方向限定的平面的方向的高度方向上堆叠。串选择晶体管SSTa和SSTb可以串联连接,并且可以布置在存储器单元MC1至MC8和位线BL之间。在每个单元串中,地选择晶体管GSTa和GSTb可以串联连接,并且可以布置在存储器单元MC1至MC8与公共源极线CSL之间。
在实施例中,在每个单元串中,第一虚拟存储器单元DMC1被布置在存储器单元MC1至MC8与地选择晶体管GSTa和GSTb之间。在实施例中,在每个单元串中,第二虚拟存储器单元DMC2被布置在存储器单元MC1至MC8与串选择晶体管SSTa和SSTb之间。
可以将单元串CS11、CS12、CS21和CS22的地选择晶体管GSTa和GSTb共同连接到地选择线GSL。在实施例中,同一行中的地选择晶体管连接到同一地选择线,并且在不同行中的地选择晶体管连接到另一地选择线。例如,第一行中的单元串CS11和CS12的第一地选择晶体管GSTa可以连接到第一地选择线,并且第二行中的单元串CS21和CS22的第一地选择晶体管GSTa可以连接到第二地选择线。
在实施例中,即使未在图20中示出,与衬底(未示出)相同高度布置的地选择晶体管被连接到同一接地选择线,而在不同高度提供的地选择晶体管被连接到不同的接地选择线。例如,单元串CS11、CS12、CS21和CS22的第一地选择晶体管GSTa可以连接到第一地选择线,并且其第二地选择晶体管GSTb可以连接到第二地选择线。
可以将与衬底(或地选择晶体管GSTa和GSTb)布置在相同高度的存储器单元共同连接到相同的字线,并且可以将位于不同高度的存储器单元连接到不同的字线。例如,单元串CS11、CS12,CS21和CS22的存储器单元MC1至MC8可以连接到第一至第八字线WL1至WL8。
可以将属于相同行的、来自相同高度的第一串选择晶体管SSTa中的串选择晶体管连接到相同的串选择线,并且可以将属于不同行的、来自相同高度的第一串选择晶体管SSTa中的串选择晶体管连接到不同的串选择线。例如,可以将第一行中的单元串CS11和CS12的第一串选择晶体管SSTa共同连接到串选择线SSL1a,并且可以将第二行中的单元串CS21和CS22的第一串选择晶体管SSTa共同连接到串选择线SSL1a。
同样,可以将属于相同行的、在相同高度的第二串选择晶体管SSTb中的串选择晶体管连接到相同的串选择线,并且可以将属于不同行的、在相同高度的第二串选择晶体管SSTb中的串选择晶体管连接到不同的串选择线。例如,可以将第一行中的单元串CS11和CS12的第二串选择晶体管SSTb共同连接到串选择线SSL1b,并且可以将第二行中的单元串CS21和CS22的第二串选择晶体管SSTb共同连接到串选择线SSL2b。
即使未在图20中示出,可以将同一行中的单元串的串选择晶体管共同连接到相同的串选择线。例如,可以将第一行中的单元串CS11和CS12的第一串选择晶体管SSTa和第二串选择晶体管SSTb共同连接到相同的串选择线。可以将第二行中的单元串CS21和CS22的第一串选择晶体管SSTa和第二串选择晶体管SSTb共同连接到相同的串选择线。
在实施例中,在相同高度上的虚拟存储器单元与相同的虚拟字线相连接,并且在不同高度的虚拟存储器单元与不同的虚拟字线相连接。例如,可以将第一虚拟存储器单元DMC1连接到第一虚拟字线DWL1,可以将第二虚拟存储器单元DMC2连接到第二虚拟字线DWL2。
在第一存储器块BLK1中,可以以行为单位执行读取和写入操作。例如,可以通过串选择线SSL1a、SSL1b、SSL2a和SSL2b来选择第一存储器块BLK1的行。例如,当向串选择线SSL1a和SSL1b提供开启电压以及向串选择线SSL2a和SSL2b提供关断电压时,可以将第一行中的单元串CS11和CS12分别连接到位线BL1和BL2。当向串选择线SSL2a和SSL2b提供导通电压以及向串选择线SSL1a和SSL1b提供关断电压时,可以将第二行中的单元串CS21和CS22分别连接到位线BL1和BL2。可以通过驱动字线来选择连接到被驱动的字线的单元串中的存储器单元中的布置在相同高度的存储器单元。可以相对于所选择的存储器单元执行读取和写入操作。所选择的存储器单元可以构成物理页单元。
在存储器块BLK1中,可以以存储器块或子块为单位擦除存储器单元。当以存储器块为单位执行擦除操作时,可以根据擦除请求同时擦除存储器块BLK1中的所有存储器单元MC。当以子块为单位执行擦除操作时,在其余的存储器单元可以是擦除禁止时,可以根据擦除请求同时擦除存储器块BLK1中的一些存储器单元MC。可以向连接到被擦除存储器单元的字线提供低电压(例如,地电压),并且可以浮置连接到擦除禁止的存储器单元的字线。
图20中所示的第一存储器块BLK1仅是示例性的。例如,可以增加或减少单元串的数量,并且可以根据单元串的数量增加或减少单元串的行数和单元串的列数。在第一存储器块BLK1中,可以增加或减少晶体管(GST、MC、DMC、SST等)的数量,并且可以根据第一存储器块BLK1的晶体管的数量增加或减少第一存储器块BLK1的高度。此外,可以根据晶体管的数量增加或减少与晶体管连接的线(GSL、WL、DWL、SSL等)的数量。
图21是示出了根据本发明构思的示例性实施例的包括非易失性存储器系统的存储器卡系统的框图。参考图21,存储器卡系统1000包括存储器控制器1100、非易失性存储器1200和连接器1300。
存储器控制器1100连接到非易失性存储器1200。存储器控制器1100被配置为访问非易失性存储器1200。例如,存储器控制器1100被配置为控制非易失性存储器1200的整体操作,包括但不限于读取操作、写入操作、擦除操作和背景操作。后台操作包括诸如耗损平均管理和垃圾收集的操作。
存储器控制器1100被配置为提供非易失性存储器1200和主机之间的接口。存储器控制器1100被配置为驱动用于控制非易失性存储器1200的固件。在实施例中,存储器控制器1100可以包括诸如但不限于RAM、处理单元、主机接口、存储器接口和纠错单元。
存储器控制器1100可以通过连接器1300与外部器件通信。存储器控制器1100可以基于特定通信协议与外部器件(例如,主机)通信。例如,存储器控制器1100可以通过诸如但不限于通用串行总线(USB)、多媒体卡(MMC)、eMMC(嵌入式MMC)、外围组件互连(PCI)、高速PCI(PCI-E)、高级技术附件(ATA)、串行ATA、并行ATA、小型计算机小接口(SCSI)、增强型小磁盘接口(ESDI)集成驱动电路(IDE)、固件、通用闪存存储(UFS)和非易失性存储器快速(NVMe)的各种通信协议中的至少一者与外部器件通信。在实施例中,由上述标准定义的写入命令可以包括写入数据的大小信息。
非易失性存储器1200可以用各种非易失性存储器件来实现,诸如但不限于电可擦除和可编程ROM(EEPROM)、NAND闪存、NOR闪存、相变RAM(PRAM)、电阻式RAM(ReRAM)、铁电RAM(FRAM)和自旋扭矩磁性RAM(STT-MRAM)。
在实施例中,存储器控制器1100和非易失性存储器1200被集成到单个半导体器件中。存储器控制器1100和非易失性存储器1200可以被集成在单个半导体器件中以形成固态驱动器(SSD)。存储器控制器1100和非易失性存储器1200可以被集成到单个半导体器件中以构成存储卡。例如,存储器控制器1100和非易失性存储器1200可以被集成到单个半导体器件中以形成存储卡,诸如但不限于PC卡(个人计算机存储卡国际协会(PCMCIA)卡)紧凑闪存卡(CF)、智能媒体卡(SM、SMC)、记忆棒、多媒体卡(MMC、RS-MMC、MMCmicro、eMMC)、SD卡(SD、miniSD、microSD、SDHC)和通用闪存存储器(UFS)。
图22是示出了根据本发明构思的示例性实施例的包括非易失性存储器系统的固态驱动系统的框图。参考图22,固态驱动器(SSD)系统2000包括主机2100和SSD 2200。SSD2200经由信号连接器2001与主机2100交换信号,并经由电源连接器2002接收电力。SSD2200包括SSD控制器2210、多个闪存2221至222n、辅助电源2230和缓冲存储器2240。
SSD控制器2210可以响应于来自主机2100的信号来控制闪存2221至222n。
辅助电源2230经由电源连接器2002连接到主机2100。辅助电源2230可以从主机2100接收电力,并且可以由电力充电。当不能从主机2100平稳地供应电力时,辅助电源2230可以为SSD系统2000供电。可以将辅助电源2230放置在SSD 2200内部或外部。例如,可以将辅助电源2230放置在主板上以向SSD2200提供辅助电力。
缓冲存储器2240作为SSD 2200的缓冲存储器操作。例如,缓冲存储器2240可以临时存储从主机2100或从闪速存储器2221至222n接收的数据,或者可以暂时存储闪速存储器2221至222n的元数据(例如,映射表)。缓冲存储器2240可以包括诸如DRAM、SDRAM、DDRSDRAM、LPDDR SDRAM和SRAM的易失性存储器,或诸如FRAM、ReRAM、STT-MRAM和PRAM的非易失性存储器。
图23是示出了根据本发明构思的示例性实施例的包括非易失性存储器系统的用户系统的框图。参考图23,用户系统3000包括应用处理器3100、存储器模块3200、网络模块3300、存储模块3400和用户界面3500。
应用处理器3100可以驱动用户系统3000的元件、操作系统等。例如,应用处理器3100可以包括用于控制用户系统3000的元件的控制器、图形引擎、各种接口等。例如,应用处理器3100可以是片上系统(SoC)。
存储器模块3200可作为用户系统3000的主存储器、工作存储器、缓冲存储器或高速缓冲存储器操作。存储器模块3200可以以诸如DRAM、SDRAM、双倍数据速率DRAM(DDRSDRAM)、DDR2SDRAM、DDR3SDRAM、LPDDR DRAM、LPDDR2DRAM或LPDDR3DRAM的易失性随机存取存储器,或诸如PRAM、MRAM、RRAM或FRAM的非易失性随机存取存储器来实现。
网络模块3300可以与外部器件通信。例如,网络模块3300可以支持诸如码分多址(CDMA)、全球移动通信系统(GSM)、宽带CDMA(WCDMA)、CDMA-2000、时分多址(TDMA)、长长期演进(LTE)、Wimax、WLAN、UWB、蓝牙和WI-DI的无线通信。在实施例中,网络模块3300可以被包括在应用处理器3100中。
存储模块3400可以存储数据。例如,存储模块3400可以存储从应用处理器3100接收的数据。或者,存储模块3400可以向应用处理器3100提供存储在其中的数据。例如,存储模块3400可以以诸如PRAM、MRAM、RRAM、NAND闪存、NOR闪存或三维NAND闪存的半导体存储器件来实现。
用户界面3500可以包括向应用处理器3100输入数据或命令或者将数据输出到外部器件的界面。例如,用户界面3500可以包括用户输入接口,诸如键盘、按键、按钮、触摸面板、触摸屏、触摸板、触摸球、相机、麦克风、陀螺仪传感器和振动传感器。用户界面3500还可以包括用户输出接口,诸如液晶显示器(LCD)、有机发光二极管(OLED)显示设备、有源矩阵OLED(AMOLED)显示设备、发光二极管(LED)、扬声器和马达。
根据本发明构思的实施例,可以在非易失性存储器件处在未检测到错误时减少输出数据所需的时间。此外,可以提供包括片上ECC和片上随机化块的非易失性存储器件,以在拷回操作期间在更新部分数据或写入补充数据的情况下没有冲突地执行随机化操作和纠错操作。
虽然已经参照示例性实施例描述了本发明构思,但是对于本领域技术人员显而易见的是,在不脱离本发明构思的精神和范围的情况下,可以进行各种改变和修改。因此,应当理解,上述实施例不是限制性的,而是示例性的。
Claims (22)
1.一种用于读取非易失性存储器件的方法,所述方法包括:
将从所述非易失性存储器件的所选择的存储器单元感测到的数据存储到页缓冲器中;
通过对所感测到的数据执行错误检测来检测错误,如果检测到错误,则纠正检测到的错误并用经纠正的数据重写页缓冲器,来执行错误解码操作;以及
在完成错误解码操作之后,通过使用种子来对存储在所述页缓冲器中的数据解随机化。
2.如权利要求1所述的方法,其中,所述错误解码操作包括:
计算被划分为多个数据部分的所感测到的数据的错误位置,其中每个数据部分对应于多个码字中的一个;
纠正与所述错误位置相对应的数据部分的错误;以及
从所述页缓冲器内的数据部分中重写已经纠正了错误的数据部分。
3.如权利要求2所述的方法,其中,使用Bose-Chaudhuri Hocquenghem(BCH)编码方案来计算所述错误位置。
4.如权利要求2所述的方法,其中,如果所述错误解码操作确定所述码字中没有一个包括错误,则跳过所述页缓冲器的重写。
5.如权利要求1所述的方法,其中,如果所述错误解码操作已经完成,则所述非易失性存储器件输出就绪状态的就绪/忙信号。
6.如权利要求5所述的方法,其中,当读取使能信号被输入到所述非易失性存储器件时,执行所述解随机化。
7.如权利要求1所述的方法,其中,在解随机化期间,从对应于将要被解随机化的数据的列地址生成种子。
8.如权利要求1所述的方法,还包括将经解随机化的数据输出到位于非易失性存储器件外部的源。
9.一种非易失性存储器件的拷回方法,所述方法包括:
从所述非易失性存储器件的源区域感测源数据,以将所感测到的源数据存储到页缓冲器中;
通过使用源种子来随机化补充数据;以及
通过使用经随机化的补充数据来更新存储在所述页缓冲器中的源数据。
10.如权利要求9所述的方法,其中,连同经更新的源数据将要被复制到的非易失性存储器器件的目的区域的地址一起输入所述补充数据。
11.如权利要求9所述的方法,还包括:
通过使用所述源种子在所述页缓冲器处对使用经随机化的补充数据更新的源数据进行解随机化;以及
通过使用与所述非易失性存储器件的目的区域相对应的目的种子来随机化经解随机化的数据。
12.如权利要求11所述的方法,还包括
相对于使用所述目的种子随机化的数据执行纠错编码。
13.如权利要求12所述的方法,还包括
在所述目的区域中对由所述纠错编码处理的数据进行编程。
14.如权利要求9所述的方法,其中,所述补充数据的随机化和存储在所述页缓冲器中的源数据的更新经由小于所述非易失性存储器器件的页面的数据部分执行。
15.一种非易失性存储器件,包括:
包括以行和列布置的存储器单元的单元阵列;
页缓冲器,被配置为将数据写入所述单元阵列或感测存储在所述单元阵列中的数据;
第一电路,被配置为随机化要写入所述单元阵列的数据、将经随机化的数据提供给所述页缓冲器或对从所述页缓冲器输出的数据进行解随机化;
第二电路,被配置为相对于所感测到的数据执行纠错解码以生成纠错解码数据;以及
控制逻辑,被配置为控制所述页缓冲器、第一电路和第二电路,
其中,在数据读取操作期间,所述控制逻辑控制所述页缓冲器和第一电路,以使得存储在所述页缓冲器中的数据被第二电路解码,并且以使得经纠错解码的数据被重写到所述页缓冲器上并控制第一电路,以使得当输出重写到所述页缓冲器上的数据时执行解随机化操作。
16.如权利要求15所述的非易失性存储器件,其中,在解码期间,第二电路纠正页缓冲器中的具有错误的数据部分,并且使用经纠正的数据部分重写页缓冲器。
17.如权利要求16所述的非易失性存储器件,其中,所述控制逻辑控制第一电路,以使得当读取使能信号被激活时,激活所述解随机化操作。
18.如权利要求17所述的非易失性存储器件,其中,所述控制逻辑通过使用与源数据相对应的源种子来随机化在用于更新源数据的拷回操作期间输入的补充数据,并通过使用经随机化的补充数据更新存储在页缓冲器中的源数据。
19.如权利要求15所述的非易失性存储器件,其中,每个存储器单元包括电荷捕获层,并且所述单元阵列是三维存储器阵列。
20.一种非易失性存储器件,包括:
包括至少一个存储器单元的单元阵列;
页缓冲器;
第一电路;
第二电路;以及
控制电路,其被配置为响应于外部写入命令将写入数据存储到所述页面缓冲器中,使用第一电路对写入数据进行加扰以生成加扰数据,使用第二电路对所述加扰数据执行纠错编码以生成编码数据,使用所述编码数据重写存储在所述页缓冲器中的所述写入数据,并将存储在所述页缓冲器中的所述编码数据复制到所述单元阵列。
21.如权利要求20所述的非易失性存储器件,其中,所述纠错编码将奇偶校验位添加到所述加扰数据。
22.如权利要求20所述的非易失性存储器件,其中,第一电路使用随机序列对所述写入数据进行加扰。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2016-0058397 | 2016-05-12 | ||
KR1020160058397A KR102636039B1 (ko) | 2016-05-12 | 2016-05-12 | 불휘발성 메모리 장치 및 그것의 읽기 방법 및 카피백 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107403645A true CN107403645A (zh) | 2017-11-28 |
CN107403645B CN107403645B (zh) | 2023-03-28 |
Family
ID=60295221
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710266270.0A Active CN107403645B (zh) | 2016-05-12 | 2017-04-21 | 非易失性存储器器件及其读取和拷回方法 |
Country Status (3)
Country | Link |
---|---|
US (2) | US10720945B2 (zh) |
KR (1) | KR102636039B1 (zh) |
CN (1) | CN107403645B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110688246A (zh) * | 2018-07-06 | 2020-01-14 | 旺宏电子股份有限公司 | 集成电路及用以操作集成电路上的存储器的方法 |
CN110782938A (zh) * | 2018-07-24 | 2020-02-11 | 三星电子株式会社 | 非易失性存储器装置、操作方法及存储器控制器操作方法 |
CN111177040A (zh) * | 2018-11-09 | 2020-05-19 | 三星电子株式会社 | 共享主机存储器的存储装置及其操作方法和存储系统 |
CN111863076A (zh) * | 2019-04-16 | 2020-10-30 | 三星电子株式会社 | 具有减少的存储器通道流量的存储器系统及其操作方法 |
CN113496744A (zh) * | 2020-04-01 | 2021-10-12 | 美光科技公司 | 用于存储器装置的元数据感知回拷 |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
ITMI20071012A1 (it) * | 2007-05-18 | 2008-11-19 | St Microelectronics Srl | Dispositivo di memoria migliorato a veloce programmazione |
KR102511459B1 (ko) * | 2016-03-17 | 2023-03-17 | 삼성전자주식회사 | 비휘발성 메모리 장치 및 그 동작 방법 |
KR102636039B1 (ko) | 2016-05-12 | 2024-02-14 | 삼성전자주식회사 | 불휘발성 메모리 장치 및 그것의 읽기 방법 및 카피백 방법 |
KR102648774B1 (ko) * | 2016-11-10 | 2024-03-19 | 에스케이하이닉스 주식회사 | 랜더마이즈 동작을 수행하는 반도체 메모리 장치 |
US10529439B2 (en) | 2017-10-24 | 2020-01-07 | Spin Memory, Inc. | On-the-fly bit failure detection and bit redundancy remapping techniques to correct for fixed bit defects |
US10481976B2 (en) | 2017-10-24 | 2019-11-19 | Spin Memory, Inc. | Forcing bits as bad to widen the window between the distributions of acceptable high and low resistive bits thereby lowering the margin and increasing the speed of the sense amplifiers |
US10489245B2 (en) | 2017-10-24 | 2019-11-26 | Spin Memory, Inc. | Forcing stuck bits, waterfall bits, shunt bits and low TMR bits to short during testing and using on-the-fly bit failure detection and bit redundancy remapping techniques to correct them |
US10656994B2 (en) * | 2017-10-24 | 2020-05-19 | Spin Memory, Inc. | Over-voltage write operation of tunnel magnet-resistance (“TMR”) memory device and correcting failure bits therefrom by using on-the-fly bit failure detection and bit redundancy remapping techniques |
US11561860B2 (en) * | 2017-11-13 | 2023-01-24 | Weka.IO Ltd. | Methods and systems for power failure resistance for a distributed storage system |
CN110910938A (zh) * | 2018-09-17 | 2020-03-24 | 北京兆易创新科技股份有限公司 | 一种数据纠正方法、装置、存储设备及存储介质 |
KR20210130734A (ko) * | 2019-02-22 | 2021-11-01 | 가부시키가이샤 한도오따이 에네루기 켄큐쇼 | 오류 검출 기능을 가지는 기억 장치, 반도체 장치, 및 전자 기기 |
KR20200117746A (ko) * | 2019-04-05 | 2020-10-14 | 삼성전자주식회사 | 비휘발성 메모리 장치, 비휘발성 메모리 장치의 동작 방법 및 비휘발성 메모리 장치를 포함하는 메모리 시스템 |
US11150985B2 (en) * | 2019-10-02 | 2021-10-19 | SK Hynix Inc. | Decoder for memory system and method thereof |
US11327884B2 (en) | 2020-04-01 | 2022-05-10 | Micron Technology, Inc. | Self-seeded randomizer for data randomization in flash memory |
CN111739574B (zh) * | 2020-06-05 | 2022-08-05 | 北京时代民芯科技有限公司 | 一种基于随机二进制序列的静态随机存取存储器验证方法 |
KR102208497B1 (ko) * | 2020-07-01 | 2021-01-27 | 주식회사 파두 | 메모리 컨트롤러 및 이를 포함하는 스토리지 디바이스 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080151618A1 (en) * | 2006-12-24 | 2008-06-26 | Sandisk Il Ltd. | Flash memory device and system with randomizing for suppressing errors |
CN101833996A (zh) * | 2009-03-10 | 2010-09-15 | 三星电子株式会社 | 非易失性存储设备及其读取方法 |
US20120284589A1 (en) * | 2011-05-02 | 2012-11-08 | Dong Kim | Memory system and error correction method |
KR20140049448A (ko) * | 2012-10-16 | 2014-04-25 | 삼성전자주식회사 | 랜덤화된 데이터를 저장하는 dram 및 이의 동작 방법 |
US20150154067A1 (en) * | 2013-12-03 | 2015-06-04 | SK Hynix Inc. | Memory system including randomizer and derandomizer |
US20150193163A1 (en) * | 2011-04-15 | 2015-07-09 | Samsung Electronics Co., Ltd. | Non-volatile memory devices, methods of operating non-volatile memory devices, and systems including the same |
US20150363262A1 (en) * | 2014-06-13 | 2015-12-17 | Sandisk Technologies Inc. | Error correcting code adjustment for a data storage device |
US20160062827A1 (en) * | 2014-08-28 | 2016-03-03 | Winbond Electronics Corp. | Semiconductor memory device and programming method thereof |
Family Cites Families (39)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100266748B1 (ko) * | 1997-12-31 | 2000-10-02 | 윤종용 | 반도체 메모리 장치 및 그 장치의 에러 정정 방법 |
JP3595495B2 (ja) * | 2000-07-27 | 2004-12-02 | Necマイクロシステム株式会社 | 半導体記憶装置 |
JP4418153B2 (ja) * | 2002-12-27 | 2010-02-17 | 株式会社ルネサステクノロジ | 半導体装置 |
US7702663B2 (en) * | 2004-01-05 | 2010-04-20 | International Business Machines Corporation | Breaking read barrier to apply optimizations |
US7159069B2 (en) | 2004-06-23 | 2007-01-02 | Atmel Corporation | Simultaneous external read operation during internal programming in a flash memory device |
JP2006048783A (ja) * | 2004-08-02 | 2006-02-16 | Renesas Technology Corp | 不揮発性メモリおよびメモリカード |
US7409473B2 (en) | 2004-12-21 | 2008-08-05 | Sandisk Corporation | Off-chip data relocation |
US7849381B2 (en) | 2004-12-21 | 2010-12-07 | Sandisk Corporation | Method for copying data in reprogrammable non-volatile memory |
WO2008078314A1 (en) * | 2006-12-24 | 2008-07-03 | Sandisk Il Ltd | Flash memory device, system and method with randomizing for suppressing error |
KR101226685B1 (ko) | 2007-11-08 | 2013-01-25 | 삼성전자주식회사 | 수직형 반도체 소자 및 그 제조 방법. |
US8301912B2 (en) | 2007-12-31 | 2012-10-30 | Sandisk Technologies Inc. | System, method and memory device providing data scrambling compatible with on-chip copy operation |
KR20100111990A (ko) * | 2009-04-08 | 2010-10-18 | 삼성전자주식회사 | 플래시 메모리 장치 및 그것의 데이터 랜덤화 방법 |
JP5492679B2 (ja) | 2009-06-30 | 2014-05-14 | パナソニック株式会社 | 記憶装置およびメモリコントローラ |
KR101691092B1 (ko) | 2010-08-26 | 2016-12-30 | 삼성전자주식회사 | 불휘발성 메모리 장치, 그것의 동작 방법, 그리고 그것을 포함하는 메모리 시스템 |
US8553466B2 (en) | 2010-03-04 | 2013-10-08 | Samsung Electronics Co., Ltd. | Non-volatile memory device, erasing method thereof, and memory system including the same |
US9536970B2 (en) | 2010-03-26 | 2017-01-03 | Samsung Electronics Co., Ltd. | Three-dimensional semiconductor memory devices and methods of fabricating the same |
US8819332B2 (en) | 2010-03-26 | 2014-08-26 | Panasonic Corporation | Nonvolatile storage device performing periodic error correction during successive page copy operations |
KR101682666B1 (ko) | 2010-08-11 | 2016-12-07 | 삼성전자주식회사 | 비휘발성 메모리 장치, 그것의 채널 부스팅 방법, 그것의 프로그램 방법 및 그것을 포함하는 메모리 시스템 |
US8751729B2 (en) | 2010-12-23 | 2014-06-10 | Samsung Electronics Co., Ltd. | Flash memory device and memory system including the same |
KR101736337B1 (ko) | 2011-02-28 | 2017-05-30 | 삼성전자주식회사 | 비휘발성 메모리 장치, 상기 메모리 장치를 제어하는 컨트롤러, 및 상기 컨트롤러 동작 방법 |
KR101893143B1 (ko) | 2011-03-16 | 2018-08-31 | 삼성전자주식회사 | 비휘발성 메모리 장치, 그것의 프로그램 방법 및 읽기 방법, 및 그것을 포함하는 메모리 시스템 |
KR101818209B1 (ko) * | 2011-04-15 | 2018-01-16 | 삼성전자주식회사 | 플래시 메모리 장치 및 그것을 포함한 메모리 시스템 |
KR101818671B1 (ko) | 2011-04-19 | 2018-02-28 | 삼성전자주식회사 | 불휘발성 메모리 장치, 불휘발성 메모리 시스템 및 그것의 랜덤 데이터 읽기 방법 |
KR101767649B1 (ko) | 2011-05-11 | 2017-08-14 | 삼성전자주식회사 | 시드 생성 방법과 그것을 이용한 플래시 메모리 장치 및 메모리 시스템 |
KR101873526B1 (ko) * | 2011-06-09 | 2018-07-02 | 삼성전자주식회사 | 에러 정정회로를 구비한 온 칩 데이터 스크러빙 장치 및 방법 |
KR20130043534A (ko) | 2011-10-20 | 2013-04-30 | 삼성전자주식회사 | 플래시 메모리 장치 및 플래시 메모리 장치의 프로그램 방법 |
KR20130049332A (ko) | 2011-11-04 | 2013-05-14 | 삼성전자주식회사 | 메모리 시스템 및 그것의 동작 방법 |
KR20130052811A (ko) | 2011-11-14 | 2013-05-23 | 에스케이하이닉스 주식회사 | 불휘발성 메모리 장치, 그것의 동작 방법 및 그것을 포함하는 데이터 저장 장치 |
KR20130052971A (ko) | 2011-11-14 | 2013-05-23 | 삼성전자주식회사 | 비휘발성 메모리 장치의 동작 방법 |
KR20130060795A (ko) * | 2011-11-30 | 2013-06-10 | 삼성전자주식회사 | 불휘발성 메모리 장치 및 그것의 동작 방법 |
KR101893145B1 (ko) * | 2011-12-06 | 2018-10-05 | 삼성전자주식회사 | 메모리 시스템들 및 그것들의 블록 복사 방법들 |
US9013921B2 (en) * | 2012-12-06 | 2015-04-21 | Samsung Electronics Co., Ltd. | Semiconductor memory device |
JP2014137834A (ja) | 2013-01-17 | 2014-07-28 | Samsung R&D Institute Japan Co Ltd | 半導体記憶装置 |
KR101862379B1 (ko) * | 2013-04-19 | 2018-07-05 | 삼성전자주식회사 | Ecc 동작과 리던던시 리페어 동작을 공유하는 메모리 장치 |
KR102195298B1 (ko) | 2014-02-13 | 2020-12-24 | 삼성전자주식회사 | 비휘발성 메모리 장치의 부분 페이지 프로그램 방법 |
KR102112024B1 (ko) | 2014-04-14 | 2020-05-19 | 삼성전자주식회사 | 데이터 스토리지 시스템에서의 스트로브 신호 성형방법 및 그에 따른 스트로브 신호 성형장치 |
KR20160105625A (ko) * | 2015-02-27 | 2016-09-07 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그것의 동작 방법 |
US10067825B2 (en) * | 2015-09-14 | 2018-09-04 | Samsung Electronics Co., Ltd. | Memory device and method of controlling ECC operation in the same |
KR102636039B1 (ko) | 2016-05-12 | 2024-02-14 | 삼성전자주식회사 | 불휘발성 메모리 장치 및 그것의 읽기 방법 및 카피백 방법 |
-
2016
- 2016-05-12 KR KR1020160058397A patent/KR102636039B1/ko active IP Right Grant
-
2017
- 2017-03-01 US US15/446,665 patent/US10720945B2/en active Active
- 2017-04-21 CN CN201710266270.0A patent/CN107403645B/zh active Active
-
2020
- 2020-06-03 US US16/891,664 patent/US11362685B2/en active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080151618A1 (en) * | 2006-12-24 | 2008-06-26 | Sandisk Il Ltd. | Flash memory device and system with randomizing for suppressing errors |
CN101833996A (zh) * | 2009-03-10 | 2010-09-15 | 三星电子株式会社 | 非易失性存储设备及其读取方法 |
US20150193163A1 (en) * | 2011-04-15 | 2015-07-09 | Samsung Electronics Co., Ltd. | Non-volatile memory devices, methods of operating non-volatile memory devices, and systems including the same |
US20120284589A1 (en) * | 2011-05-02 | 2012-11-08 | Dong Kim | Memory system and error correction method |
KR20140049448A (ko) * | 2012-10-16 | 2014-04-25 | 삼성전자주식회사 | 랜덤화된 데이터를 저장하는 dram 및 이의 동작 방법 |
US20150154067A1 (en) * | 2013-12-03 | 2015-06-04 | SK Hynix Inc. | Memory system including randomizer and derandomizer |
US20150363262A1 (en) * | 2014-06-13 | 2015-12-17 | Sandisk Technologies Inc. | Error correcting code adjustment for a data storage device |
US20160062827A1 (en) * | 2014-08-28 | 2016-03-03 | Winbond Electronics Corp. | Semiconductor memory device and programming method thereof |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110688246A (zh) * | 2018-07-06 | 2020-01-14 | 旺宏电子股份有限公司 | 集成电路及用以操作集成电路上的存储器的方法 |
CN110782938A (zh) * | 2018-07-24 | 2020-02-11 | 三星电子株式会社 | 非易失性存储器装置、操作方法及存储器控制器操作方法 |
CN110782938B (zh) * | 2018-07-24 | 2023-06-16 | 三星电子株式会社 | 非易失性存储器装置、操作方法及存储器控制器操作方法 |
CN111177040A (zh) * | 2018-11-09 | 2020-05-19 | 三星电子株式会社 | 共享主机存储器的存储装置及其操作方法和存储系统 |
CN111177040B (zh) * | 2018-11-09 | 2024-03-08 | 三星电子株式会社 | 共享主机存储器的存储装置及其操作方法和存储系统 |
CN111863076A (zh) * | 2019-04-16 | 2020-10-30 | 三星电子株式会社 | 具有减少的存储器通道流量的存储器系统及其操作方法 |
CN113496744A (zh) * | 2020-04-01 | 2021-10-12 | 美光科技公司 | 用于存储器装置的元数据感知回拷 |
CN113496744B (zh) * | 2020-04-01 | 2022-11-04 | 美光科技公司 | 用于存储器装置的元数据感知回拷 |
Also Published As
Publication number | Publication date |
---|---|
KR102636039B1 (ko) | 2024-02-14 |
CN107403645B (zh) | 2023-03-28 |
US11362685B2 (en) | 2022-06-14 |
US20200295788A1 (en) | 2020-09-17 |
US10720945B2 (en) | 2020-07-21 |
KR20170128686A (ko) | 2017-11-23 |
US20170329667A1 (en) | 2017-11-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107403645A (zh) | 非易失性存储器器件及其读取和拷回方法 | |
US9690654B2 (en) | Operation method of nonvolatile memory system | |
CN105097034B (zh) | 非易失性存储系统以及存储控制器的操作方法 | |
KR101975406B1 (ko) | 비휘발성 메모리 장치 및 그것을 포함하는 메모리 시스템 및 그것의 메모리 블록 관리, 소거, 및 프로그램 방법들 | |
CN106683702A (zh) | 非易失性存储器装置及其读方法 | |
CN110097913A (zh) | 存储器控制器及其操作方法 | |
US8164952B2 (en) | Nonvolatile memory device and related method of programming | |
US9947414B2 (en) | Nonvolatile memory device and operating method thereof | |
CN109410998A (zh) | 存储器装置及其操作方法 | |
CN107919157A (zh) | 存储器装置及存储器装置的操作方法 | |
KR20160047661A (ko) | 비휘발성 메모리 장치, 그것을 포함하는 저장 장치 및 그것의 동작 방법 | |
CN110136764A (zh) | 非易失性存储器装置及其读取方法 | |
CN103093818A (zh) | 存储系统及其操作方法 | |
CN103456361A (zh) | 操作非易失性存储装置的方法和集成电路存储系统 | |
CN109427400A (zh) | 存储器装置及其操作方法 | |
CN109656472A (zh) | 存储器系统及其操作方法 | |
US20170024139A1 (en) | Nonvolatile memory device and storage device comprising the same, method for storing bad block management information into the same | |
US11507448B2 (en) | Non-volatile memory device, method of operating the device, and memory system including the device | |
CN109524044A (zh) | 存储器系统及其操作方法 | |
CN110347330A (zh) | 存储器系统及其操作方法 | |
CN112102872A (zh) | 存储器装置和操作该存储器装置的方法 | |
CN112908370B (zh) | 存储器装置和操作该存储器装置的方法 | |
CN109308923B (zh) | 存储器装置及其操作方法 | |
CN112908388B (zh) | 存储器装置及其操作方法 | |
CN112000275A (zh) | 存储装置及其操作方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |