CN105761739B - 存储装置、存储***和操作该装置的方法 - Google Patents
存储装置、存储***和操作该装置的方法 Download PDFInfo
- Publication number
- CN105761739B CN105761739B CN201610004085.XA CN201610004085A CN105761739B CN 105761739 B CN105761739 B CN 105761739B CN 201610004085 A CN201610004085 A CN 201610004085A CN 105761739 B CN105761739 B CN 105761739B
- Authority
- CN
- China
- Prior art keywords
- data
- dimensional
- read
- write
- 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.)
- Active
Links
Images
Classifications
-
- 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/1048—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 arrangements adapted for a specific error detection or correction feature
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C5/00—Details of stores covered by group G11C11/00
- G11C5/02—Disposition of storage elements, e.g. in the form of a matrix array
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- 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/02—Detection or location of defective auxiliary circuits, e.g. defective refresh counters
- G11C29/024—Detection or location of defective auxiliary circuits, e.g. defective refresh counters in decoders
-
- 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/14—Implementation of control logic, e.g. test mode decoders
-
- 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/18—Address generation devices; Devices for accessing memories, e.g. details of addressing circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1006—Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/22—Read-write [R-W] timing or clocking circuits; Read-write [R-W] control signal generators or management
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C8/00—Arrangements for selecting an address in a digital store
- G11C8/06—Address interface arrangements, e.g. address 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
- G11C2029/0411—Online error correction
-
- 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/18—Address generation devices; Devices for accessing memories, e.g. details of addressing circuits
- G11C2029/1802—Address decoder
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Quality & Reliability (AREA)
- Computer Security & Cryptography (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
提供了存储装置、存储***和操作该装置的方法。一种操作包括多个随机存取存储器(RAM)芯片的存储装置的方法包括:输入读取命令;从所述多个随机存取存储器芯片中的每个随机存取存储器芯片读取包括与读取命令对应的第一块数据的多条块数据;通过组合从每个RAM芯片读取的多条块数据来产生二维(2D)数据;通过利用2D数据处理读取命令。
Description
本申请要求于2015年1月5日提交到韩国知识产权局的第10-2015-0000858号韩国专利申请的优先权,通过引用将该韩国专利申请的公开内容全部包含于此。
技术领域
发明构思涉及一种存储装置、一种存储***和一种操作存储装置的方法,更具体地说,涉及改善可靠性的一种存储装置、一种存储***和一种操作存储装置的方法。
背景技术
由于存储装置的集成度的增加和存储装置的尺寸的减小,所以更可能发生错误。这些错误的示例包括读取错误的数据(即,从存储器中的一个位置读取除了写入到该位置的实际数据之外的数据)或写入错误的数据(即,向存储器中的一个位置写入除了意图将要被写入到该位置的实际数据之外的数据)。纠错技术可以用来纠正这些错误。然而,纠错技术会使用存储器的过多的可用空间。因此,需要一种提高纠正错误的能力的方法。
发明内容
发明构思的至少一个实施例提供了改善可靠性的一种存储装置、一种存储***和一种操作存储装置的方法。
根据发明构思的示例性实施例,提供了一种操作包括多个随机存取存储器(RAM)芯片的存储装置的方法。所述方法包括:输入读取命令;从多个RAM芯片中的每个RAM芯片读取包括与读取命令对应的第一块数据的多条块数据;通过组合从RAM芯片中的每个RAM芯片读取的多条块数据来产生二维(2D)数据;通过利用2D数据处理读取命令。
根据发明构思的示例性实施例,提供了一种操作包括存储控制器和存储装置的存储***的方法。所述方法包括:通过存储控制器将读取命令发送到存储装置;响应于读取命令,产生包括从第一存储区域和第二存储区域读取的数据的第一组合数据;确定第一组合数据中是否包括M个错误,其中,N是正整数,M是大于N的正整数;当第一组合数据中包括M个错误时,读取包括从第一存储区域和第二存储区域读取的数据的多条数据;重建第二组合数据;通过利用第二组合数据处理第一组合数据中的错误。
根据发明构思的示例性实施例,提供了一种包括多个存储区域和错误控制电路的存储装置,其中,多个存储区域被配置成响应于读取命令输出第一块数据,错误控制电路被配置成基于通过对1D数据执行单校双检(SEC-DED)操作而获得的结果,确定是否将产生包括第一组合块数据的2D数据,其中,1D数据通过组合分别从多个存储区域读取的多条第一块数据来产生。
根据发明构思的示例性实施例,提供了一种包括存储控制器和存储装置的存储***。所述存储装置包括多个存储器芯片和错误控制电路,其中,错误控制电路被配置成当第一组合数据中包括M个错误时,组合存储在多个存储器芯片中的至少一个中的多条用户数据,并且重建2D第二组合数据以执行ECC操作,其中,通过组合分别从多个存储器芯片接收到的多条用户数据来产生第一组合数据,其中,N是正整数,M是大于N的正整数。
根据发明构思的示例性实施例,提供了一种操作包括多个随机存取存储器(RAM)芯片的存储装置的方法。所述方法包括:输入参考RAM芯片之中的第一RAM芯片的地址的读取命令;产生具有包括每个存储器芯片的地址处的字线的第一数据部分的单行的一维(1D)数据;对1D数据执行错误检测和纠正步骤以产生结果;当结果指示存在双错误时,利用二维(2D)数据处理读取命令,其中,2D数据的每列包括第一RAM芯片的字线的不同部分。
附图说明
从下面结合附图进行的详细描述,将更清楚地理解发明构思的示例性实施例,在附图中:
图1是根据发明构思的示例性实施例的操作存储装置的方法的流程图;
图2是根据发明构思的示例性实施例的存储装置的图;
图3是图2中示出的随机存取存储器(RAM)芯片的读取操作的图;
图4是根据发明构思的示例性实施例的二维(2D)读取数据的图;
图5是根据发明构思的示例性实施例的存储***的图;
图6是根据发明构思的示例性实施例的存储装置的图;
图7是根据发明构思的示例性实施例的操作存储装置的方法的流程图;
图8是根据发明构思的示例性实施例的一维(1D)读取数据的图;
图9是根据发明构思的示例性实施例的操作存储装置的方法的流程图;
图10是根据发明构思的示例性实施例的更新与2D写入数据相关的奇偶校验数据的方法的流程图;
图11A、图11B、图11C和图11D是根据发明构思的示例性实施例的第一RAM芯片根据图10的方法的写入操作的图;
图12是根据发明构思的示例性实施例的更新与2D写入数据相关的奇偶校验数据的方法的流程图;
图13是根据发明构思的示例性实施例的根据图12的方法的第一RAM芯片的写入操作的图;
图14是根据发明构思的示例性实施例的存储装置的图;
图15是根据发明构思的示例性实施例的操作存储***的方法的流程图;
图16是根据发明构思的示例性实施例的存储***的图;
图17和图18是根据发明构思的示例性实施例的图16的存储装置的图;
图19是根据发明构思的示例性实施例的存储***的图;
图20和图21是根据发明构思的示例性实施例的操作图19的存储***的方法的流程图;
图22和图23是根据发明构思的示例性实施例的处理第一组合数据中的错误的方法的流程图;
图24是根据发明构思的示例性实施例的存储***的图;
图25是根据发明构思的示例性实施例的存储装置的框图。
具体实施方式
现在将在下文中参照附图更充分地描述本发明构思,附图中示出了示例性实施例。同样的附图标记始终指示同样的元件。
在本发明构思的实施例中,提供了一种三维(3D)存储阵列。3D存储阵列整体地形成在使有源区设置在硅基底上的存储单元的阵列的一个或更多个物理级和与这些存储单元的操作相关的电路中,无论这样的相关电路在这样的基底之上或在这样的基底内。术语“整体的”意味着阵列的每一级的层直接沉积在阵列的每个基础级的层上。在本发明构思的实施例中,3D存储阵列包括竖直取向的竖直NAND串,使得至少一个存储单元位于另一个存储单元之上。所述至少一个存储单元可以包括电荷俘获层。下面的专利文件(通过引用包含于此)描述可适合三维存储阵列的构造,其中,三维存储阵列被配置为多个级,并且字线和/或位线在各个级之间被共享:U.S.专利号7,679,133、8,553,466、8,654,587、8,559,235以及US专利公布号2011/0233648。
图1是根据发明构思的示例性实施例的操作存储装置的方法100的流程图。参照图1,根据示例性实施例的操作存储装置的方法100包括:输入读取命令(S120);响应于读取命令从多个随机存取存储器(RAM)芯片中的每个,读取包括与读取命令对应的第一读取块数据的多条读取块数据(S140);通过使从每个RAM芯片读取的多条读取块数据组合来产生二维(2D)读取数据(S160);通过利用2D读取数据来处理对读取命令的响应(S180)。
图2是根据发明构思的示例性实施例的存储装置200的图。参照图2,存储装置200包括多个RAM芯片220_1、220_2、……、和220_N。RAM芯片220_1、220_2、……、和220_N中的每个可以由动态随机存取存储器(DRAM)、静态RAM(SRAM)、磁性RAM(MRAM)、铁电RAM(FRAM)或者电阻式RAM(RRAM)来实现。多个RAM芯片220_1、220_2、……、和220_N可以是同一类型的RAM芯片,多个RAM芯片220_1、220_2、……、和220_N中的至少一个可以是不同类型的RAM芯片。例如,多个RAM芯片220_1、220_2、……、和220_N中的第一RAM芯片220_1可以是MRAM芯片,剩余的RAM芯片可以是DRAM芯片。
存储装置200还可以包括被构造成控制RAM芯片220_1、220_2、……、和220_N中的每个的控制芯片240。控制芯片240可以接收外部施加的命令并控制RAM芯片220_1、220_2、……、和220_N中的每个的操作。例如,控制芯片240可以处理响应于外部施加的写入命令或读取命令而将被写入或读取的数据中的错误。为此,控制芯片240可以包括错误控制单元242(例如,错误控制电路)。然而,错误控制单元242可以作为附加逻辑单元被包括在存储装置200中而不是在控制芯片240中。下面将详细地描述错误控制单元242。虽然在图2中示出了,但是根据示例性实施例的存储装置200可以不包括控制芯片240,控制逻辑单元可以包括在RAM芯片220_1、220_2、……、和220_N中的每个中并且可以作为控制芯片240。
可以通过图2的存储装置200来执行图1的操作存储装置的方法100。现在将参照图1和图2详细地描述操作根据示例性实施例的存储装置200的方法。当缓冲命令输入到存储装置200(S120)时,RAM芯片220_1、220_2、……、和220_N中的每个读取存储在读取地址处的数据,其中,所述读取地址与读取命令一起被传输或者被包括在读取命令中(S140)。为了简洁起见,响应于读取命令而将要被读取的数据将被称作第一读取块数据。
图3是图2的RAM芯片220_1、220_2、……、和220_N中的每个中的读取操作的图。参照图3,RAM芯片220_1、220_2、……、和220_N中的每个包括存储单元阵列MCA和行缓冲器RBUF。在示例性实施例中,多个RAM芯片220_1、220_2、……、和220_N将存储在加载读取地址处的第一读取块数据DTA11、DTA21、……、和DTAN1同时且分别地加载到行缓冲器RBUF中。即,响应于一个读取命令,多个RAM芯片220_1、220_2、……、和220_N同时地读取各个第一读取块数据DTA11、DTA21、……、和DTAN1。第一读取块数据DTA11、DTA21、……、和DTAN1向各个RAM芯片220_1、220_2、……、和220_N的行缓冲器RBUF的加载可以与第一读取块数据DTA11、DTA21、……、和DTAN1从各个RAM芯片220_1、220_2、……、和220_N的输出同义。
在示例性实施例中,多个RAM芯片220_1、220_2、……、和220_N也分别将具有与第一读取块数据DTA11、DTA21、……、和DTAN1相同的行地址的多条数据加载到行缓冲器RBUF中。例如,第一RAM芯片220_1同时向行缓冲器RBUF加载存储在连接到映射到行地址RAdr[a]的字线的存储单元中的多条数据DTA11、DTA12……和DTA1x。
在示例性实施例中,响应于在多个存储器芯片之中的单一存储器芯片内利用地址来引用特定字线的读取命令,在基本同一时刻,将每个存储器芯片内的同一字线处的数据的第一部分复制到不同行缓冲器。例如,当出现两个存储器芯片时,如果读取命令利用与第一RAM芯片220_1的给定字线相关的行地址Radr[a],于是在基本同一时刻,将第一RAM芯片220_1中的字线的数据的第一部分(例如,DTA11)复制到第一RAM芯片220_1的行缓冲器,将第二RAM芯片220_2中的字线的数据的第一部分(例如,DTA21)复制到第二RAM芯片220_2的行缓冲器。第一部分可以位于每个RAM芯片中的字线内的同一相对位置处。在示例性实施例中,响应于读取命令,各个字线的附加部分与第一部分一起被复制到各个行缓冲器。例如,当出现两个存储器芯片时,如果读取命令利用与第一RAM芯片220_1的给定的字线相关的行地址Radr[a],那么在基本同一时刻,第一RAM芯片220_1中的字线的数据的第一部分和第二部分(例如,DTA11和DTA12)被复制到第一RAM芯片220_1的行缓冲器,第二RAM芯片220_2中的字线的数据的第一部分和第二部分(例如,DTA21和DTA22)被复制到第二RAM芯片220_2的行缓冲器。被复制的附加部分可以包括字线的所有部分。
由RAM芯片220_1、220_2、……、和220_N响应于读取命令而同时加载到行缓冲器RBUF中的多条数据可以被称作多条读取块数据。因此,多条读取块数据可以包括与读取命令对应的第一读取块数据。虽然图3示出了具有相同行地址的所有数据被同时加载到行缓冲器RBUF中的情况,但是本发明构思不限于此。在示例性实施例中,仅具有相同行地址的一些数据被加载到行缓冲器RBUF中。
返回参照图1和图2,控制芯片240的错误控制单元242将从各个RAM芯片220_1、220_2、……、和220_N中读取的多条读取块数据组合而产生2D读取数据(S160)。例如,错误控制单元242可以将第一RAM芯片220_1的多条读取块数据DTA11、DTA12、……、和DTA1x组合而产生2D读取数据。例如,错误控制单元242可以顺序地或同时地产生与RAM芯片220_1、220_2、……、和220_N中的每个相关的2D读取数据。2D读取数据可以指具有形成在行和列中的位的数据。然而,2D读取数据不限于通过将同一RAM芯片的多条读取块数据组合而产生的数据。例如,可以通过利用不同RAM芯片的读取块数据来产生2D读取数据。可选择地是,可以通过利用每个RAM芯片的第一读取块数据产生2D读取数据。然而,为了简洁起见将假设通过利用同一RAM芯片的多条第一读取块数据来产生2D读取数据。
图4是根据发明构思的示例性实施例的第一RAM芯片220_1的2D读取数据的图。参照图4,可以产生第一RAM芯片220_1的2D读取数据2DRD使得第一RAM芯片220_1的多条读取块数据DTA11、DTA12、……、和DTA1x分别形成不同的行。具体地说,读取块数据DTA11可以形成2D读取数据2DRD的第一行R1,读取块数据DTA12可以形成2D读取数据2DRD的第二行R2,读取块数据DTA1x可以形成2D读取数据2DRD的第x行Rx。在这种情况下,多条读取块数据DTA11、DTA12、……和DTA1x的位于相同位置中的位形成2D读取数据2DRD的列。例如,多条读取块数据DTA11、DTA12、……、和DTA1x的第一位b1可以形成2D读取数据2DRD的第一列C1,多条读取块数据DTA11、DTA12、……、和DTA1x的第二位b2可以形成2D读取数据2DRD的第二列C2,多条读取块数据DTA11、DTA12、……、和DTA1x的最后的位by可以形成第y列Cy。
在示例性实施例中,响应于具有行地址的读取命令而从存储器芯片的给定行地址读取的一行数据被转换成被称作2D读取数据2DRD的一列多位数据。例如,如果在给定的行地址处的一行数据包括布置在第一行第一列的DTA11、布置在第1行第2列的DTA12、布置在第1行第3列的DTA1X-1与布置在第1行第4列的DTA1X,那么2D读取数据2DRD包括布置在第1行第1列的DTA11、布置在第2行第1列的DTA12、布置在第3行第1列的DTA1X-1以及布置在第4行第1列的DTA1X,其中,最后一行(即,行4)是针对2D读取数据2DRD的剩余数据的奇偶校验数据(parity data)。在示例性实施例中,2D读取数据2DRD包括来自于存储器芯片中的另外一个存储器芯片的附加行。
在示例性实施例中,读取块数据DTA1x是不同于多条读取块数据DTA11、DTA12、……、和DTA1x-1的奇偶校验数据。为了简洁起见,2D读取数据2DRD可以指通过组合全部的多条读取块数据DTA11、DTA12、……、和DTA1x而产生的数据,或者指包括多条读取块数据DTA11、DTA12、……、和DTA1x的数据,只是将读取块数据DTA1x用作奇偶校验数据。2D读取数据2DRD的奇偶校验数据可以指2D奇偶校验数据2DPA。
参照图1和图2,可以通过利用产生的2D读取数据2DRD来处理对读取命令的响应(S180)。存储控制器可以将读取命令施加到存储装置200,并且从存储装置200接收2D读取数据2DRD。
图5是根据发明构思的示例性实施例的存储***500的图。参照图5,根据示例性实施例的存储***500包括存储装置200和存储控制器520。如上所述,根据示例性实施例的存储装置200可以由包括控制芯片240和多个RAM芯片220的存储模块来实现。存储控制器520可以将命令、数据、地址和控制信号发送到存储装置200。可以通过被配置成电连接存储控制器520和存储装置200的总线540来发送命令、数据和地址。此外,存储装置200可以将对读取命令的响应通过总线540发送到存储控制器520。总线540可以包括有线通信信道和无线通信信道。可以通过被配置成电连接存储控制器520和存储装置200的连接线560来发送控制信号。图5示出了作为控制信号的错误信号XER。错误信号XER可以指包括与检测错误和纠正错误有关的信息的信号。
不被执行错误检测和纠正(ECC)操作的2D读取数据2DRD可以通过总线540发送到存储控制器520。此外,存储控制器520可以对2D读取数据2DRD执行ECC操作。在这种情况下,存储装置200可以将2D读取数据2DRD发送到存储控制器520。2D奇偶校验数据2DPA可以被包括在2D读取数据2DRD中,存储控制器520可以包括被配置成对2D读取数据2DRD执行ECC操作的2D ECC引擎ECCE2。存储控制器520可以从无误或已纠错的2D读取数据2DRD提取各个RAM芯片220_1、220_2、……、和220_N的第一读取块数据(参照图3中的DTA11、DTA21、……、和DTAN1),并且处理已提取的第一读取块数据作为对读取命令的响应。此外,存储控制器520还可以包括被配置成对将要在下面描述的1D读取数据执行ECC操作的1D ECC引擎ECCE1。下面将详细描述存储控制器520的ECC操作。
图5示出了将没有执行ECC操作的2D读取数据2DRD发送到存储控制器520的示例,但是发明构思不限于此。例如,可以从存储装置200输出被执行ECC操作的2D读取数据2DRD。
图6是根据发明构思的示例性实施例的存储装置的控制芯片的图。参照图6,控制芯片240包括错误控制单元242(例如,错误控制电路)和2D ECC引擎ECCE2。如上所述,错误控制单元242可以产生2D读取数据2DRD。2D读取数据2DRD可以施加到2D ECC引擎ECCE2。2DECC引擎ECCE2可以以2D读取数据的列为单位检测错误。例如,2D ECC引擎ECCE2可以检测在图4的2D读取数据2DRD的第一列C1中的错误,检测在该2D读取数据2DRD的第二列C2中的错误,并且以相同的方式检测在第y列Cy中的错误。此外,2D ECC引擎ECCE2可以以2D读取数据2DRD的行为单位检测错误。以上述方式,2D ECC引擎ECCE2被配置成对RAM芯片220_1、220_2、……、和220_N中的每个的2D读取数据2DRD中的双错误进行检测。
2D ECC引擎ECCE2可以将通过对RAM芯片220_1、220_2、……、和220_N中的每个的2D读取数据2DRD执行2D ECC操作而获得的结果作为错误信号XER来发送到错误控制单元242。错误控制单元242可以接收错误信号XER,当每条2D读取数据2DRD没有错误时或者当纠正了每条2D读取数据2DRD中的错误时从2D读取数据2DRD中提取第一读取块数据DTA11、DTA21、……、和DTAN1,并且作为对读取数据的响应来输出被提取的第一读取块数据。相反,当多条2D读取数据2DRD中的错误没有被纠正时,错误控制单元242可以通知存储控制器520读取操作失败。如后面详细描述的,即使多条2D读取数据2DRD中的所有的错误没有得到纠正或如果仅有一个错误,错误控制单元242可以从2D读取数据2DRD中提取第一读取块数据DTA11、DTA21、……、和DTAN1并且作为对读取命令的响应输出已提取的第一读取块数据。
如上所述,在根据示例性实施例的存储装置200和操作存储装置200的方法100中,当由于存储装置的集成度的增大与存储装置的尺寸减小导致可能经常发生多比特错误时,与应用博斯-查德胡里-霍昆格母(BCH)方法的情况不同,不会大幅度地增加用于产生奇偶校验数据的开销。在根据示例性实施例的存储装置200和操作存储装置的方法100中,当未发生多比特错误时,可以通过单校双检(SEC-DED)处理法处理错误,使得如下面所述,可以减小存储装置200的操作延迟。
图7是根据发明构思的示例性实施例的操作存储装置的方法700的流程图。参照图2和图7,当响应于读取命令分别从多个RAM芯片220_1、220_2、……、和220_N中读取包括第一读取块数据的多条读取块数据(参照图1中的S140)时,操作存储装置的方法700还包括通过组合多个芯片220_1、220_2、……、和220_N的多条读取块数据来产生1D读取数据(S720),并且在产生2D读取数据2DRD(S160)之前,确认通过对1D读取数据执行SEC-DED操作而获得的结果(S740)。当如在图1的操作存储装置的方法100中,1D读取数据中包括双错误(参照S760中的YES)时,产生2D读取数据2DRD(S160),通过利用2D读取数据2DRD来处理对读取命令的响应(S180)。然而,当1D读取数据中不包括双错误时(参照S760中的NO),对读取命令的响应被处理为1D读取数据或被纠错了的1D读取数据(S780)。
图8是根据发明构思的示例性实施例的1D读取数据的图。参照图8,通过组合各个RAM芯片220_1、220_2、……、和220_N的第一读取块数据DTA11、DTA21、……、和DTAN1来产生1D读取数据1DRD。即,可以通过组合第一RAM芯片220_1的第一读取块数据DTA11、DTA21、……、和DTAN1以及第二RAM芯片220_2的第一读取块数据DTA11、DTA21、……、和DTAN1来产生第一读取块数据DTA11、DTA21、……DTAN1。在示例性实施例中,1D读取数据1DRD是从若干个RAM芯片的行的各个部分产生的单行数据。如上所述,RAM芯片220_1、220_2、……、和220_N可以响应于一个读取命令同时输出第一读取块数据DTA11、DTA21、……、和DTAN1。因此,即使错误控制单元242不执行附加的控制操作,1D读取数据也响应于读取命令而产生。
可以由图6的SEC-DED ECC引擎ECCE1来执行对通过对1D读取数据1DRD执行SEC-DED操作而获得的结果进行确定的操作S740。SEC-DED ECC引擎ECCE1将作为错误信号XER的通过对1D读取数据1DRD执行SEC-DED操作而获得的结果发送到错误控制单元242。当错误信号XER指示1D读取数据1DRD中不包括错误或者错误被纠正时,错误控制单元242输出1D读取数据1DRD作为对读取命令的响应(S780)。当错误信号XER指示1D读取数据1DRD中包括双错误(或者两个错误比特)时,错误控制单元242产生2D读取数据2DRD。
然而,发明构思不限于此。例如,如图5和图6中所示,存储装置200的错误控制单元242可以接收错误信号XER,该错误信号是在存储控制器520的SEC-DED ECC引擎ECCE1对1D读取数据1DRD执行SEC-DED操作时获得的结果。SEC-DED ECC引擎ECCE1能够纠正1D读取数据1DRD中包括的一个错误并且能够检测1D读取数据1DRD中包括的两比特错误。因此,在根据示例性实施例的存储装置200和操作存储装置的方法700中,在不降低存储装置200的操作特性的情况下,顺序地应用具有不同的纠错能力的ECC引擎以提高可靠性。虽然图8示出了1D读取数据1DRD包括与1D读取数据1DRD有关的奇偶校验数据1DPA的情况,但是由于除了1D读取数据1DRD以外,也可以处理与1D读取数据1DRD有关的奇偶校验数据1DPA,所以发明构思不限于此。
图9是根据发明构思的示例性实施例的操作存储装置200的方法900的流程图。参照图2和图9,操作存储装置200的方法900包括:输入写入命令和对应于写入命令的第一写入块数据(S920);响应于写入命令将写入到多个RAM芯片220_1、220_2、……、和220_N中的每个的第二写入块数据更新成第一写入块数据(S940);将包括第二写入块数据的2D写入数据的奇偶校验数据更新成包括第一写入块数据的2D写入数据的奇偶校验数据(S960)。
第二写入块数据可以指存储在RAM芯片220_1、220_2、……、和220_N中的每个的写入地址处的数据,响应于写入命令第一写入块数据将要被写入RAM芯片220_1、220_2、……、和220_N。例如,当写入地址指示图3的各个RAM芯片220_1、220_2、……、和220_N中的行地址RAdr[a]的第一块时,第二写入块数据可以是DTA11、DTA21、……、和DTAN1。响应于写入命令,各个RAM芯片220_1、220_2、……、和220_N的第二写入块数据DTA11、DTA21、……、和DTAN1可以分别更新成第一写入块数据DTA11'、DTA21'、……、和DTAN1'。因此,与读取操作相似,可以同时对各个RAM芯片220_1、220_2、……、和220_N执行写入操作。响应于一个写入命令而同时写入的第一写入块数据DTA11'、DTA21'、……、和DTAN1'可以被称作1D写入数据。
如上所述,通过利用2D读取数据2DRD来处理对读取命令的响应,在数据的写入期间,可以产生并存储2D奇偶校检数据2DPA。因此,操作存储装置200的方法900可以包括产生与具有第一写入块数据的2D写入数据有关的奇偶校检数据(S960)。
图10是根据发明构思的示例性实施例的更新2D写入数据的奇偶校检数据的方法的流程图。参照图10,将与包括第二写入块数据的2D写入数据有关的奇偶校检数据更新成与包括第一写入块数据的2D写入数据有关的奇偶校检数据的方法S960a包括将第一写入块数据与第二写入块数据进行比较(S1062)并且将第一写入块数据和第二写入块数据之间的差施加到与包括第二写入块数据的2D写入数据有关的奇偶校检数据(S1064)。
图11A至图11D是根据发明构思的示例性实施例的第一RAM芯片利用图10的方法的写入操作的图。
在图11A中,假设在数据DTA11、DTA12和DTA13以及与数据DTA11、DTA12和DTA13有关的2D奇偶校验数据2DPA存储在第一RAM芯片220_1的存储单元阵列MCA的行地址RAdr[a]处时施加写入命令。数据DTA11可以被称作第二写入块数据。为了简洁起见,包括第一写入块数据DTA11'或第二写入块数据DTA11并且在写入命令的行地址处被写入的数据被称作多条写入块数据。多条写入块数据组合成2D数据并且被称作2D写入数据。2D奇偶校验数据指与2D写入数据有关的奇偶校验数据。
当施加写入命令来写入与图11B的1010对应的第一写入块数据DTA11'时(S920),错误控制单元242将第一写入块数据DTA11'与第二写入块数据DTA11进行比较(S1062)。可以通过对第一写入块数据DTA11'与第二写入块数据DTA11执行可以执行的诸如逻辑异或(XOR)操作来执行比较操作。例如,与XOR门可以用于执行XOR操作。因为第二写入块数据DTA11是1011,第一写入块数据DTA11'是1010,所以可以确定的是,一个比特值发生了变化。例如,仍然设定在XOR的结果中的位数指示多少位值发生了变化。
如果确定第一写入块数据DTA11'与第二写入块数据DTA11之间的差值是1,那么错误控制单元242基于该差值更新与包括第二写入块数据DTA11的2D写入数据2DWD有关的2D奇偶校检数据2DPA。如图11C中所示,因为与包括第二写入块数据DTA11的2D写入数据2DWD有关的2D奇偶校检数据2DPA是1111,所以更新的2D奇偶校检数据2DPA'可以具有1110的值。例如,可以从2D奇偶校检数据2DPA中减去差值以产生更新的2D奇偶校检数据2DPA'。如图11D中所示,更新的2D奇偶校检数据2DPA'可以是与包括第一写入块数据DTA11'的2D写入数据2DWD'有关的奇偶校检数据。第一写入块数据DTA11'和2D奇偶校检数据2DPA'可以被写入到存储单元阵列MCA。
图12是根据发明构思的示例性实施例的更新与2D写入数据有关的奇偶校检数据的流程图。参照图12,产生与包括第一写入块数据的2D写入数据有关的奇偶校检数据的操作S960b包括:读取存储在与存储单元的将要存储第一写入块数据的行地址相同的行地址处的多条写入块数据(S1262);通过组合包括已读取的第一写入块数据的多条写入块数据来产生包括第一写入块数据的2D写入数据(S1264);对包括第一写入块数据的2D写入数据执行ECC编码操作(S1266)。
图13是根据发明构思的示例性实施例的第一RAM芯片的利用图10的方法的写入操作的图。参照图13,错误控制单元242对包括第一写入块数据DTA11'的多条写入块数据DTA11'、DTA12'、……、和DTAx-1进行组合并且产生2D写入数据。如上所述,可以通过在不同的行中形成各条块数据来产生2D数据。在实施例中,错误控制单元242中包括的编码器ENC对2D写入数据的各个列进行编码并且产生与包括第一写入块数据DTA11'的2D写入数据有关的2D奇偶校检数据2DPA'。
上述方法中产生的与2D数据有关的奇偶校验数据可以被写入到RAM芯片220_1、220_2、……、和220_N的每个RAM芯片中的存储单元阵列MC。根据上面描述的图3的示例,与2D数据有关的奇偶校验数据2DPA或2DPA'可以存储在与2D数据的行地址相同的行地址处。然而,发明构思不限于此。参照图14,图14示出了根据示例性实施例的存储装置200,存储装置200还包括被配置成存储奇偶校验数据的芯片260。例如,芯片260可以专用于仅存储奇偶校验数据。被配置成存储奇偶校验数据的芯片260可以包括存储与1D数据(1D读取数据和1D写入数据)有关的奇偶校检数据的区域。此外,芯片260可以包括存储与2D数据(2D读取数据和2D写入数据)有关的奇偶校检数据的区域。
图15是根据发明构思的示例性实施例的操作存储***的方法1500的流程图。参照图15,根据示例性实施例的操作存储***的方法1500包括:通过存储控制器将读取命令发送到存储装置(S1510);响应于读取命令,由存储装置产生包括多条数据的第一组合数据,其中,分别且同时从第一存储区域和第二存储区域读取所述多条数据并且所述多条数据与读取命令对应(S1520);确定大于N个错误的M个错误是否被包括在第一组合数据中(S1530);从第一存储区域读取包括与读取命令对应的数据的多条数据并且当第一组合数据中包括M个错误时重建第二组合数据(S1540);通过利用与第一存储区域有关的第二组合数据来处理第一组合数据中的错误(S1550)。可以由图16的存储***来执行操作存储***的方法1500。在实施例中,N是正整数,M是大于N的正整数。
图16是根据发明构思的示例性实施例的存储***1600的图。参照图16,根据示例性实施例的存储***1600包括存储装置1610、存储控制器1620和被配置成电连接存储装置1610和存储控制器1620的总线1640。存储控制器1620可以将命令、数据、地址和用于控制存储装置1610的操作的控制信号施加到存储装置1610。存储装置1610可以在存储控制器1620的控制下执行操作。响应于任意的操作,存储装置1610可以将操作结果发送到存储控制器1620。例如,存储控制器1620可以通过总线1640将读取命令发送到存储装置1610,存储装置1610可以响应于读取命令通过总线1640将读取数据发送到存储控制器1620。
存储装置1610包括第一存储区域1612_1、第二存储区域1612_2和错误控制单元1614。第一存储区域1612_1包括被配置成存储用户数据DTA1的区域,第二存储区域1612_2包括被配置成存储用户数据DTA2的区域。用户数据DTA1和DTA2可以响应于存储控制器1620的写入命令分别存储在第一存储区域1612_1和第二存储区域1612_2中。当读取命令发送到存储装置1610时(参照图15中的S1510),第一存储区域1612_1和第二存储区域1612_2响应于读取命令分别输出用户数据DTA1和DTA2。在这种情况下,可以响应于一个写入命令同时向第一存储区域1612_1和第二存储区域1612_2执行用户数据DTA1和DTA2的写入。
相似地,可以响应于一个读取命令从第一存储区域1612_1和第二存储区域1612_2同时执行用户数据DTA1和DTA2的读取。可以根据如何确定被配置成响应于一个读取命令而同时输出用户数据的区域来不同地实现第一存储区域1612_1和第二存储区域1612_2。当由如图3中示出的存储模块来实现存储装置1610时,第一存储区域1612_1和第二存储区域1612_2可以分别是第一RAM芯片220_1和第二RAM芯片220_2。然而,存储装置1610还可以包括除了第一存储区域1612_1和第二存储区域1612_2之外的存储区域。除了第一存储区域1612_1和第二存储区域1612_2之外的存储区域可以是除了图3的第一RAM芯片220_1和第二RAM芯片220_2之外的RAM芯片。
可选择地是,当存储装置1610由如图17中示出的存储器芯片来实现时,第一存储区域1612_1和第二存储区域1612_2中的每个可以由存储器芯片中包括的存储体(bank)来实现。如图17中示出的,当存储装置1610包括四个存储体时,第一存储区域1612_1可以由第一存储体来实现,第二存储区域1612_2可以由第二存储体来实现。可选择地是,第一存储区域1612_1可以由第一存储体和第三存储体来实现,第二存储区域1612_2可以由第二存储体和第四存储体来实现。在图17的存储装置1610中,错误控制单元1614可以被包括在***区域中。
可选择地是,当如图18中示出的,存储装置1610由包括多个存储层的堆叠型存储模块来实现时,第一存储区域1612_1和第二存储区域1612_2中的每个由堆叠型存储模块中包括的存储层来实现。在图18中示出的存储装置1610中,第一存储区域1612_1由第一存储层来实现,第二存储区域1612_2由第二存储层来实现。可选择地是,存储装置1610还可以包括除了第一存储区域1612_1和第二存储区域1612_2之外的存储区域。除了第一存储区域1612_1和第二存储区域1612_2之外的存储区域可以由其他存储层实现。
可以通过硅通孔(TSV)来执行命令或数据向每个存储层的传输。图18的存储装置1610还可以包括被配置成对每个存储层的操作进行控制的控制层CLAY。错误控制单元1614可以包括在控制层CLAY中。然而,发明构思不限于此。在实施例中,存储装置1610不包括额外的控制层CLAY,而每个存储层包括被配置成起控制层功能的控制逻辑件。在这种情况下,错误控制单元1614也可以被包括在任意存储层中。
返回参照图16,上面在一个示例中描述的响应于一个读取命令而从第一存储区域1612_1和第二存储区域1612_2同时输出的用户数据DTA1和DTA2将被称作第一组合数据CDTA1。第一组合数据CDTA1可以对应于图8的1D读取数据1DRD。存储装置1610可以在数据队列单元(未示出)或缓冲器(未示出)中组合用户数据DTA1和DTA2并且产生第一组合数据CDTA1(参照图15中的S1520),其中,分别从第一存储区域1612_1和第二存储区域1612_2同时读取用户数据DTA1和DTA2。图16示出错误控制单元1614分别从第一存储区域1612_1和第二存储区域1612_2接收用户数据DTA1和DTA2并且输出第一组合数据CDTA1的示例,但是发明构思不限于此。如上所述,可以由于RAM的标准规范而产生第一组合数据CDTA1。
错误控制单元1614可以确定第一组合数据CDTA1中是否包括M个错误(M是大于N的正整数)(参照图15中的S1530)。在这种情况下,N指的是可以由被配置成对第一组合数据CDTA1执行ECC操作的ECC引擎来纠正的比特的数量,M指的是可以由被配置成对第一组合数据CDTA1执行ECC操作的ECC引擎来检测的比特的数量。因为上面参照图5描述的SEC-DEDECC引擎ECCE1可以纠正1个比特错误并且检测2个比特错误,所以N可以是1,M可以是2。然而,发明构思不限于此,N可以具有除了1之外的值,M可以具有除了2之外的值。可以基于通过对第一组合数据CDTA1执行ECC操作而获得的结果来确定第一组合数据CDTA1中是否包括大于N个错误的M个错误。
当第一组合数据CDTA1中包括大于N个错误的M个错误时,错误控制单元1614将控制信号XCON施加到第一存储区域1612_1和第二存储区域1612_2并且控制将要产生的第二组合数据CDTA2(参照图15中的S1540)。因为第二组合数据CDTA2的产生或第二组合数据CDTA2的重建可以与参照图3和图4描述的2D读取数据2DRD相似,所以这里省略对第二组合数据CDTA2的详细的描述。
存储***1600可以对第二组合数据CDTA2执行ECC操作并且处理第一组合数据CDTA1中的错误(参照图15中的S1550)。可以通过存储控制器1620或存储装置1610来对第一组合数据CDTA1和第二组合数据CDTA2执行ECC操作。首先描述通过存储控制器1620来对第一组合数据CDTA1和第二组合数据CDTA2执行ECC操作的情况。
图19是根据发明构思的示例性实施例的存储***1900的图,图20是根据发明构思的示例性实施例的操作图19的存储***1900的方法的图。参照图19和图20,存储***1900的存储控制器1620包括第一ECC引擎ECCE1和第二ECC引擎ECCE2。当存储控制器1620将读取命令发送到存储装置1610(S2005)时,存储装置1610产生第一组合数据CDTA1(S2010)并且将第一组合数据CDTA1发送到存储控制器1620(S2015)。被配置成纠正N个比特错误并检测M个比特错误的第一ECC引擎ECCE1对第一组合数据CDTA1执行ECC操作(S2020)。当第一组合数据CDTA1中包括N个错误或更少的错误时,第一ECC引擎ECCE1纠正第一组合数据CDTA1中的错误并且将读取操作处理为成功(S2025)。错误被纠正的第一组合数据CDTA1被发送到存储装置1610(S2030)并且被写入到存储装置1610(S2035)。相反,当第一组合数据CDTA1中包括M个错误(M是大于N的正整数)时,第一ECC引擎ECCE1向存储装置1610发送指示第一组合数据CDTA1中包括M个错误的错误信号XER(S2040)。
存储装置1610的错误信号接收单元1614_1可以接收错误信号XER并通知数据重建单元1614_2第一组合数据CDTA1中包括大于N个错误的M个错误。因此,数据重建单元1614_2产生与第一存储区域1612_1有关的第二组合数据CDTA2(S2045),并且将第二组合数据CDTA2发送到存储控制器1620(S2050)。被配置成对存储控制器1620执行2D ECC操作的第二ECC引擎ECCE2对第一存储区域1612_1的第二组合数据CDTA2执行ECC操作(S2055)。因为对第一存储区域1612_1的第二组合数据CDTA2的2D ECC操作可以与对2D读取数据2DRD的上述ECC操作相似,所以省略对第二组合数据CDTA2的2D ECC操作的详细的描述。
当纠正了第一存储区域1612_1的第二组合数据CDTA2中的错误时,将读取操作处理为成功(S2060)。此外,从其中错误被纠正的第二组合数据CDTA2提取的第一组合数据CDTA1或者其中错误被纠正的第二组合数据CDTA2被发送到存储装置1610(S2065),其中错误被纠正的第一组合数据CDTA1写入到存储装置1610(S2070)。然而,在这种情况下,写入操作不是响应于写入命令而执行,而被处理为响应于读取命令的操作。
如图21中所示,当在第一存储区域1612_1的第二组合数据CDTA2中纠正了比需要纠正的错误少的错误时,产生与附加存储区域(即,第二存储区域1612_2)相关的第二组合数据CDTA2,对产生的第二组合数据CDTA2执行上述操作(S2075)。在这种情况下,如下所述,可以根据处理第一组合数据CDTA1中的错误的方法来不同地确定第二组合数据CDTA2中需要纠正的错误的数量。
图22和图23是根据发明构思的示例性实施例的处理第一组合数据中的错误的方法的流程图。以下,假设在第一组合数据中检测到M个错误。首先,参照图19和图22,处理第一组合数据CDTA1中的错误的方法S1550a包括对与第一存储区域1612_1有关的第二组合数据CDTA2执行ECC操作(S2252)并且确定与第一存储区域1612_1有关的第二组合数据CDTA2中的M个错误是否被纠正(S2254)。如果与第一存储区域1612_1有关的第二组合数据CDTA2中的M个错误被纠正(参照S2254中的YES),那么读取操作被处理为成功(S2256)。由于上述操作,从其中M个错误被纠正的第二组合数据CDTA2提取的第一组合数据CDTA1可以不包括任何错误。
相反,当在第一存储区域1612_1中没有纠正第二组合数据CDTA2中的M个错误时(参照S2254中的NO),产生与第二存储区域1612_2有关的第二组合数据CDTA2,并执行ECC操作(S2258)。当与第一存储区域1612_1有关的第二组合数据CDTA2和与第二存储区域1612_2有关的第二组合数据CDTA2中纠正了总共M个错误时,读取操作可以被处理为成功。当与第一存储区域1612_1有关的第二组合数据CDTA2和与第二存储区域1612_2有关的第二组合数据CDTA2中纠正了小于M个错误的错误时,读取操作可以处理为成功。当存储装置1610还包括被配置成存储用户数据的其他存储区域时,可以通过顺序地处理与剩余存储区域有关的第二组合数据来处理第一组合数据CDTA1中的错误。
接下来,参照图23,处理第一组合数据CDTA1中的错误的方法S1550b还包括对与第一存储区域1612_1相关的第二组合数据CDTA2执行ECC操作(S2352)。基于对第二组合数据CDTA2执行ECC操作的结果,读取操作被处理为成功(S2356)或对与第二存储区域1612_2相关的第二组合数据CDTA2执行附加操作(S2358)。
然而,如图23中所示,处理第一组合数据CDTA1中的错误的方法S1550b可以包括确定第二组合数据CDTA2中是否纠正了(M-N)个错误而不是M个错误(S2354)。即使第二组合数据CDTA2中没有纠正所有的M个错误,第一组合数据CDTA1也可以仅包括可以在第一ECC引擎ECCE1的错误可纠正范围内的N个错误。从第二组合数据CDTA2提取第一组合数据CDTA1并且第一组合数据CDTA1被写入存储装置1610。因此,当随后施加读取第一组合数据CDTA1的新读取命令时,可以通过常规途径纠正第一组合数据CDTA1中的错误,即,不产生第二组合数据CDTA2。
图24是根据发明构思的示例性实施例的存储***2400的图。参照图24,存储***2400的存储装置1610包括具有第一ECC引擎ECCE1和第二ECC引擎ECCE2的ECC单元1616。在这种情况下,当存储装置1610响应于从存储控制器1620施加的读取命令来执行读取操作时,存储装置1610对第一组合数据CDTA1或第二组合数据CDTA2执行ECC操作,并且作为对读取命令的响应向存储控制器1620发送错误最终被纠正的第一组合数据CDTA1。存储控制器1620可以将接收到的第一组合数据CDTA1发送到主机并且将读取操作处理为成功。如果通过处理第二组合数据CDTA2没有纠正第一组合数据CDTA1中的错误,那么存储装置1610可以通知存储控制器1620读取命令失败。
虽然没有参照图16、图19和图20对存储***的写入操作进行描述,但是因为根据示例性实施例的存储装置或存储***的写入操作与上面参照图10至图13描述的写入操作相似,所以这里省略了对其详细的描述。
图25是包括根据发明构思的示例性实施例的存储装置的计算***2500的框图。RAM 2520可以安装在诸如移动装置或桌面计算机的计算***2500中。RAM 2520可以是根据上述示例性实施例的存储装置中的任意一种。此外,图25的RAM 2520可以包括存储装置和存储控制器两者。
根据示例性实施例的计算***2500包括均可以电连接到总线2550的中央处理单元(CPU)2510、RAM 2520、用户接口2530和非易失性存储器2540。非易失性存储器2540可以是诸如诸如固态硬盘(SSD)或硬盘驱动器(HDD)的大容量存储设备。
虽然已经参照发明构思的示例性实施例具体地示出并且描述了发明构思,但将理解的是,在不脱离发明构思的精神和范围的情况下,这里可以做出形式上或细节上的各种改变。例如,图21示出了将第一组合数据CDTA1和第二组合数据CDTA2顺序地发送到存储控制器1620并且被处理的情况,但是发明构思不限于此。可以将第一组合数据CDTA1和第二组合数据CDTA2同时发送到存储控制器1620并且进行处理。
Claims (22)
1.一种操作包括多个随机存取存储器芯片的存储装置的方法,所述方法包括:
输入读取命令到存储装置;
由存储装置从所述多个随机存取存储器芯片中的每个随机存取存储器芯片读取包括与读取命令对应的第一块数据的多条块数据;
由存储装置通过组合从随机存取存储器芯片中的每个随机存取存储器芯片读取的所述多条块数据来产生二维数据;
由存储装置通过利用二维数据来处理读取命令,
其中,存储装置通过将读取的所述多条块数据布置为多行数据来产生二维数据,其中,所述多行数据中的每行数据为读取的所述多条块数据之中的不同的一条块数据。
2.根据权利要求1所述的方法,其中,多条块数据的读取包括输出具有与存储单元的存储有所述多条块数据的行地址相同的行地址的数据。
3.根据权利要求1所述的方法,其中,所述方法还包括对二维数据执行二维错误检测和纠正解码操作以产生错误检测和纠正解码的二维数据,
其中,对读取命令的处理包括输出从错误检测和纠正解码的二维数据提取的第一块数据作为对读取命令的响应。
4.根据权利要求1所述的方法,在执行二维数据的产生之前,所述方法还包括:
通过组合所述多个随机存取存储器芯片中的每个随机存取存储器芯片的第一块数据来产生一维数据;
确认通过对一维数据执行单校双检操作而获得的第一结果;
确定是否将执行二维数据的产生。
5.根据权利要求4所述的方法,其中,对是否将执行二维数据的产生的确定包括:
当第一结果指示一维数据包括双错误时,将执行控制二维数据的产生;
当第一结果指示一维数据没有错误,或者纠正了一维数据中的错误时,将不执行控制二维数据的产生。
6.根据权利要求4所述的方法,其中,当第一结果指示一维数据没有错误,或者纠正了一维数据中的错误时,对读取命令的处理包括产生对读取命令的响应为一维数据或错误被纠正的一维数据。
7.根据权利要求1所述的方法,所述方法还包括:
输入写入命令以写入第一写入块数据;
响应于写入命令将写入到所述多个随机存取存储器芯片中的每个随机存取存储器芯片的第二写入块数据更新成第一写入块数据;
将与包括第二写入块数据的二维写入数据有关的奇偶校验数据更新成与包括第一写入块数据的二维写入数据有关的奇偶校验数据。
8.根据权利要求7所述的方法,其中,与包括第一写入块数据的二维写入数据有关的奇偶校验数据的产生包括:
读取存储在与存储单元的将存储有第一写入块数据的行地址相同的行地址处的多条写入块数据;
通过组合包括读取的第一写入块数据的所述多条写入块数据来产生包括第一写入块数据的二维写入数据;
对包括第一写入块数据的二维写入数据执行错误检测和纠正编码操作。
9.根据权利要求7所述的方法,其中,与包括第二写入块数据的二维写入数据有关的奇偶校验数据向与包括第一写入块数据的二维写入数据有关的奇偶校验数据的更新包括;
比较第一写入块数据与第二写入块数据;
通过将第一写入块数据与第二写入块数据之间的差施加到与包括第二写入块数据的二维写入数据有关的奇偶校验数据来产生与包括第一写入块数据的二维写入数据有关的奇偶校验数据。
10.一种操作包括存储控制器和存储装置的存储***的方法,所述方法包括:
通过存储控制器将读取命令发送到存储装置;
响应于读取命令,组合从存储装置中的第一存储区域和第二存储区域读取的数据以产生一维第一组合数据,其中,第一存储区域包括存储第一用户数据的区域并且第二存储区域包括存储第二用户数据的区域;
确定第一组合数据中是否包括M个比特错误,其中,N是正整数,M是大于N的正整数,M指的是对第一组合数据执行错误检测和纠正操作而检测的比特的数量;
当第一组合数据中包括M个错误时,从第一存储区域读取包括与读取命令对应的数据的多条数据;
通过将从第一存储区域读取的多条数据布置为多行数据来重建二维第二组合数据;
通过对第二组合数据执行错误检测和纠正操作来处理第一组合数据中的错误。
11.根据权利要求10所述的方法,所述方法还包括:
通过存储控制器检测第一组合数据中的错误;
当第一组合数据中包括N个错误时,纠正第一组合数据中的错误并且完成对读取命令的处理;
当第一组合数据中包括M个错误或更少的错误时,通过存储控制器将第一错误信号发送到存储装置,
其中,响应于第一错误信号执行读取数据到第二组合数据的重建。
12.根据权利要求10所述的方法,其中,通过利用第二组合数据来对第一组合数据中的错误进行处理包括:
通过存储控制器从存储装置接收第二组合数据;
通过存储控制器对第二组合数据执行错误检测和纠正操作;
当纠正了第二组合数据中的M个错误时,通过存储控制器完成对读取命令的处理。
13.根据权利要求10所述的方法,其中,通过利用第二组合数据来对第一组合数据中的错误进行处理包括:
通过存储控制器从存储装置接收第二组合数据;
通过存储控制器对第二组合数据执行错误检测和纠正操作;
当纠正了M-N个错误作为对第二组合数据执行错误检测和纠正操作的结果时,通过存储控制器完成对读取命令的处理。
14.一种包括存储控制器和存储装置的存储***,
其中,所述存储装置包括:
多个存储器芯片;
错误控制电路,被配置成当一维第一组合数据中包括M个比特错误时,产生二维第二组合数据使得存储在所述多个存储器芯片中的至少一个存储器芯片中的多条用户数据分别形成不同的行,并且执行二维第二组合数据的错误检测和纠正操作,其中,通过组合分别从所述多个存储器芯片中的每个存储器芯片接收到的第一用户数据来产生一维第一组合数据,其中,N是正整数,M是大于N的正整数,M指的是对第一组合数据执行错误检测和纠正操作而检测的比特的数量。
15.根据权利要求14所述的存储***,所述存储***还包括:
第一错误检测和纠正引擎,被配置成检测第一组合数据中的错误并且当第一组合数据中包括N个错误或更少的错误时,纠正所述错误;
第二错误检测和纠正引擎,被配置成纠正二维第二组合数据中的错误。
16.根据权利要求14所述的存储***,其中,错误控制电路被配置成当从存储在所述多个存储器芯片的第一存储器芯片中的数据产生的二维第二组合数据不包括错误或者第二组合数据中纠正的错误的数量小于M-N时,从所述多个存储器芯片的第二存储器芯片的多条用户数据产生二维第二组合数据。
17.根据权利要求14所述的存储***,其中,当在与所述多个存储器芯片的第一存储器芯片有关的第二组合数据中纠正了M-N个错误时,错误控制电路被配置成不产生与另一存储器芯片有关的二维第二组合数据。
18.根据权利要求14所述的存储***,其中,错误控制电路被配置成同时产生与各个存储器芯片有关的第二组合数据。
19.根据权利要求14所述的存储***,其中,存储装置由动态随机存取存储模块来实现。
20.一种操作包括多个随机存取存储器芯片的存储装置的方法,所述方法包括:
输入读取命令到存储装置,响应于读取命令在随机存取存储器芯片之中的第一随机存取存储器芯片内利用地址来引用字线;
由存储装置产生具有包括每个存储器芯片的所述地址处的字线的第一数据部分的单行数据的一维数据;
通过对一维数据执行单校双检操作来执行错误检测和纠正步骤,以产生作为错误信号的结果;
当结果指示存在双错误时,通过将每个存储器芯片的所述地址处的字线处的多条数据布置成多行数据来产生二维数据,利用对二维数据的错误检测和纠正步骤来处理对读取命令的响应。
21.根据权利要求20所述的方法,所述方法还包括当结果指示一维数据中不存在错误或者错误已经被纠正时,利用一维数据处理对读取命令的响应。
22.根据权利要求20所述的方法,其中,在利用对二维数据的错误检测和纠正步骤来处理对读取命令的响应期间,所述错误检测和纠正步骤被配置成以二维数据的列为单位检测错误。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2015-0000858 | 2015-01-05 | ||
KR1020150000858A KR102254100B1 (ko) | 2015-01-05 | 2015-01-05 | 메모리 장치, 메모리 시스템 및 메모리 장치의 동작 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105761739A CN105761739A (zh) | 2016-07-13 |
CN105761739B true CN105761739B (zh) | 2021-07-06 |
Family
ID=56286591
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610004085.XA Active CN105761739B (zh) | 2015-01-05 | 2016-01-04 | 存储装置、存储***和操作该装置的方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US9904491B2 (zh) |
KR (1) | KR102254100B1 (zh) |
CN (1) | CN105761739B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10891057B1 (en) * | 2015-12-31 | 2021-01-12 | EMC IP Holding Company LLC | Optimizing flash device write operations |
KR102504178B1 (ko) * | 2016-08-23 | 2023-02-28 | 에스케이하이닉스 주식회사 | 반도체장치 |
US10169126B2 (en) * | 2016-10-12 | 2019-01-01 | Samsung Electronics Co., Ltd. | Memory module, memory controller and systems responsive to memory chip read fail information and related methods of operation |
KR102605205B1 (ko) * | 2018-07-25 | 2023-11-24 | 에스케이하이닉스 주식회사 | 메모리 장치 및 프로세싱 시스템 |
CN110537259A (zh) | 2019-06-28 | 2019-12-03 | 长江存储科技有限责任公司 | 三维存储器件中的存储器内计算 |
CN112466350B (zh) | 2019-06-28 | 2023-05-12 | 长江存储科技有限责任公司 | 一种三维3d存储器件以及用于操作三维3d存储器件上的数据处理单元的***及方法 |
KR102263044B1 (ko) * | 2019-08-23 | 2021-06-09 | 삼성전자주식회사 | 데이터 신뢰성을 향상한 메모리 컨트롤러, 이를 포함하는 메모리 시스템 및 메모리 컨트롤러의 동작방법 |
Family Cites Families (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07105102A (ja) | 1993-10-08 | 1995-04-21 | Toshiba Corp | メモリ制御装置 |
JPH1097471A (ja) | 1996-09-20 | 1998-04-14 | Toshiba Corp | メモリデータのエラー訂正方法、及びエラー訂正方式 |
JPH1145595A (ja) | 1997-07-24 | 1999-02-16 | Nec Corp | 多値セル用誤り訂正回路 |
US6683372B1 (en) * | 1999-11-18 | 2004-01-27 | Sun Microsystems, Inc. | Memory expansion module with stacked memory packages and a serial storage unit |
WO2004001761A1 (ja) * | 2002-06-25 | 2003-12-31 | Fujitsu Limited | 半導体メモリ |
KR20050082222A (ko) * | 2004-02-18 | 2005-08-23 | 대성산업 주식회사 | 피씨기반 영상처리 2차원 바코드 스캐너의 판독데이터를이용한 관리정보 제공방법 |
US7203889B2 (en) | 2004-04-01 | 2007-04-10 | Intel Corporation | Error correction for memory |
KR100624960B1 (ko) * | 2004-10-05 | 2006-09-15 | 에스티마이크로일렉트로닉스 엔.브이. | 반도체 메모리 장치 및 이의 패키지 및 이를 이용한메모리 카드 |
JP2006179131A (ja) | 2004-12-22 | 2006-07-06 | Fujitsu Ltd | メモリシステム及び半導体記憶装置 |
US7451380B2 (en) | 2005-03-03 | 2008-11-11 | International Business Machines Corporation | Method for implementing enhanced vertical ECC storage in a dynamic random access memory |
JP2008090442A (ja) | 2006-09-29 | 2008-04-17 | Fujitsu Ltd | メモリ制御装置 |
KR101226685B1 (ko) | 2007-11-08 | 2013-01-25 | 삼성전자주식회사 | 수직형 반도체 소자 및 그 제조 방법. |
US8230316B2 (en) * | 2008-01-25 | 2012-07-24 | Nevion Usa, Inc. | Forward error correction for burst and random packet loss for real-time multi-media communication |
JP2009295252A (ja) | 2008-06-06 | 2009-12-17 | Nec Electronics Corp | 半導体記憶装置及びそのエラー訂正方法 |
JP2010079485A (ja) | 2008-09-25 | 2010-04-08 | Panasonic Corp | 半導体記録装置 |
JP2010282511A (ja) * | 2009-06-05 | 2010-12-16 | Elpida Memory Inc | メモリモジュール及びこれを備えるメモリシステム |
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 |
JP5343921B2 (ja) | 2010-05-07 | 2013-11-13 | 富士通セミコンダクター株式会社 | 半導体メモリ、システムおよび半導体メモリの製造方法 |
KR101682666B1 (ko) | 2010-08-11 | 2016-12-07 | 삼성전자주식회사 | 비휘발성 메모리 장치, 그것의 채널 부스팅 방법, 그것의 프로그램 방법 및 그것을 포함하는 메모리 시스템 |
WO2012082654A2 (en) * | 2010-12-14 | 2012-06-21 | Sandisk 3D Llc | Architecture for three dimesional non-volatile storage with vertical bit lines |
JP5617776B2 (ja) | 2011-06-27 | 2014-11-05 | 株式会社デンソー | メモリ回路,メモリ装置及びメモリデータの誤り訂正方法 |
KR20130052811A (ko) * | 2011-11-14 | 2013-05-23 | 에스케이하이닉스 주식회사 | 불휘발성 메모리 장치, 그것의 동작 방법 및 그것을 포함하는 데이터 저장 장치 |
KR20130140504A (ko) | 2012-06-14 | 2013-12-24 | 에스케이하이닉스 주식회사 | Ecc 회로를 포함하는 반도체 메모리 시스템 |
-
2015
- 2015-01-05 KR KR1020150000858A patent/KR102254100B1/ko active IP Right Grant
- 2015-12-02 US US14/956,457 patent/US9904491B2/en active Active
-
2016
- 2016-01-04 CN CN201610004085.XA patent/CN105761739B/zh active Active
Non-Patent Citations (2)
Title |
---|
《"Low-power, Low-storage-overhead Chipkill Correct via》;X. Jian extrinsic;《Proceedings of the International Conference on High Performance》;20131130;全文 * |
《Multi-bit Error Tolerant Caches Using Two-Dimensional Error Coding》;Jangwoo Kim;《40th Annual IEEE / ACM International Symposium on Microarchitecture (MICRO》;20071231;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN105761739A (zh) | 2016-07-13 |
KR20160084232A (ko) | 2016-07-13 |
KR102254100B1 (ko) | 2021-05-20 |
US20160196180A1 (en) | 2016-07-07 |
US9904491B2 (en) | 2018-02-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105761739B (zh) | 存储装置、存储***和操作该装置的方法 | |
US10496484B2 (en) | Methods and apparatus for error detection for data storage devices | |
US10643707B2 (en) | Group write operations for a data storage device | |
JP6346303B2 (ja) | メモリモジュール | |
US9697905B2 (en) | Updating read voltages using syndrome weight comparisons | |
KR101668972B1 (ko) | 오류 검출 및 정정 장치 및 방법 | |
US20180091172A1 (en) | Ecc and raid-type decoding | |
US9105333B1 (en) | On-chip copying of data between NAND flash memory and ReRAM of a memory die | |
US20200142771A1 (en) | Error correction code decoders, semiconductor memory devices and memory systems | |
CN107037982B (zh) | Raid-6数据存储装置以及包括其的数据处理*** | |
KR20190097657A (ko) | 반도체 메모리 장치, 이를 포함하는 메모리 시스템 및 반도체 메모리 장치의 동작 방법 | |
US9244767B1 (en) | Data storage device with in-memory parity circuitry | |
US9811418B2 (en) | Syndrome-based codeword decoding | |
US10114549B2 (en) | Error correction code processing and data shaping for reducing wear to a memory | |
CN110942798B (zh) | 半导体存储器件、存储***及操作半导体存储器件的方法 | |
US10700712B2 (en) | Semiconductor device including error correction code unit that generates data block matrix including plural parity blocks and plural data block groups diagonally arranged, and methods of operating the same | |
US20170123694A1 (en) | Memory controller and memory device | |
US9785502B2 (en) | Pipelined decoder with syndrome feedback path | |
US10133645B2 (en) | Data recovery in three dimensional non-volatile memory array after word line short | |
US10572189B2 (en) | Method and decoder to adjust an error locator polynomial based on an error parity | |
US20190155687A1 (en) | Variable length cldpc encoder and method of operation in an autonomous vehicle | |
US20230163786A1 (en) | Error correction code circuit, memory device including error correction code circuit, and operation method of error correction code circuit | |
KR102414202B1 (ko) | 계층적 디코더를 이용한 오류 정정 | |
US11562803B2 (en) | Memory device storing parity and memory system including the same | |
EP4386556A1 (en) | Operation method of memory controller configured to control memory device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | 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 |