CN112068983A - 存储器系统及其操作方法 - Google Patents
存储器系统及其操作方法 Download PDFInfo
- Publication number
- CN112068983A CN112068983A CN201911300115.1A CN201911300115A CN112068983A CN 112068983 A CN112068983 A CN 112068983A CN 201911300115 A CN201911300115 A CN 201911300115A CN 112068983 A CN112068983 A CN 112068983A
- Authority
- CN
- China
- Prior art keywords
- chip
- parity value
- kill
- cache
- data
- 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
- 230000015654 memory Effects 0.000 title claims abstract description 189
- 238000011017 operating method Methods 0.000 title description 3
- 239000000872 buffer Substances 0.000 claims abstract description 117
- 238000000034 method Methods 0.000 claims description 29
- 230000003139 buffering effect Effects 0.000 claims description 4
- 101100072644 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) INO2 gene Proteins 0.000 description 15
- 238000010586 diagram Methods 0.000 description 13
- 238000012937 correction Methods 0.000 description 10
- 230000008569 process Effects 0.000 description 10
- 238000012545 processing Methods 0.000 description 10
- 230000006870 function Effects 0.000 description 5
- 230000004044 response Effects 0.000 description 4
- 239000000470 constituent Substances 0.000 description 3
- 239000004065 semiconductor Substances 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- VYZAMTAEIAYCRO-UHFFFAOYSA-N Chromium Chemical compound [Cr] VYZAMTAEIAYCRO-UHFFFAOYSA-N 0.000 description 1
- 101000934888 Homo sapiens Succinate dehydrogenase cytochrome b560 subunit, mitochondrial Proteins 0.000 description 1
- 102100025393 Succinate dehydrogenase cytochrome b560 subunit, mitochondrial Human genes 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000009897 systematic effect Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 230000003936 working memory Effects 0.000 description 1
Images
Classifications
-
- 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
- G06F11/1032—Simple parity
-
- 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/1064—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 in cache or content addressable memories
-
- 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/1072—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 in multilevel memories
-
- 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/1076—Parity data used in redundant arrays of independent storages, e.g. in RAID systems
- G06F11/108—Parity data distribution in semiconductor storages, e.g. in SSD
-
- 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/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
-
- 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/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
- G06F12/0868—Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
-
- 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/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0877—Cache access modes
- G06F12/0882—Page mode
-
- 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/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
- G06F12/128—Replacement control using replacement algorithms adapted to multidimensional cache systems, e.g. set-associative, multicache, multiset or multilevel
-
- 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/061—Improving I/O performance
- G06F3/0611—Improving I/O performance in relation to response time
-
- 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/0656—Data buffering arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30029—Logical and Boolean instructions, e.g. XOR, NOT
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3004—Arrangements for executing specific machine instructions to perform operations on memory
- G06F9/30047—Prefetch instructions; cache control instructions
-
- 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/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0607—Interleaved addressing
-
- 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/10—Providing a specific technical effect
- G06F2212/1032—Reliability improvement, data loss prevention, degraded operation etc
-
- 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/21—Employing a record carrier using a specific recording technology
- G06F2212/214—Solid state disk
-
- 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/46—Caching storage objects of specific type in disk cache
- G06F2212/466—Metadata, control data
-
- 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
-
- 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/7208—Multiple device management, e.g. distributing data over multiple flash devices
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Quality & Reliability (AREA)
- Human Computer Interaction (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
一种存储器系统包括:存储器装置;写入缓冲器,缓冲第一主机数据和第二主机数据;芯片猎杀高速缓存,分别高速缓存第一主机数据和第二主机数据的第一候选芯片猎杀奇偶校验值和第二候选芯片猎杀奇偶校验值中的一个;芯片猎杀缓冲器,具有比芯片猎杀高速缓存更小的带宽和更大的容量;芯片猎杀管理器,通过对第一主机数据和第一候选芯片猎杀奇偶校验值执行XOR运算来生成第一芯片猎杀奇偶校验值,并且通过对第二主机数据和第二候选芯片猎杀奇偶校验值执行XOR运算来生成第二芯片猎杀奇偶校验值;以及处理器,控制存储器装置将第一主机数据和第一芯片猎杀奇偶校验值编程到第一开放块,并且将第二主机数据和第二芯片猎杀奇偶校验值编程到第二开放块。
Description
相关申请的交叉引用
本申请要求于2019年6月10日提交的申请号为10-2019-0067805的韩国专利申请的优先权,该韩国专利申请通过引用整体并入本文。
技术领域
本发明的各个实施例涉及一种存储器系统,并且更特别地,涉及一种高效地生成奇偶校验值(parity)的存储器系统以及该存储器系统的操作方法。
背景技术
计算机环境范例已经变为实际上可以随时随地使用计算系统的普适计算。因此,诸如移动电话、数码相机和膝上型计算机的便携式电子装置的使用已经迅速增加。这些便携式电子装置通常使用具有一个或多个存储器装置的存储器系统来存储数据。存储器系统可以用作便携式电子装置的主存储器装置或辅助存储器装置。
由于与硬盘装置相比,存储器系统没有移动部件,因此存储器系统提供优异的稳定性、耐用性、高信息访问速度和低功耗。具有这些优点的存储器系统的示例包括通用串行总线(USB)存储器装置、具有各种接口的存储卡以及固态驱动器(SSD)。
发明内容
本发明的实施例涉及一种能够通过使用设置在写入缓冲器和芯片猎杀缓冲器之间的芯片猎杀高速缓存来生成芯片猎杀奇偶校验值的存储器系统。
根据本发明的实施例,一种存储器系统包括:存储器装置;写入缓冲器,适于缓冲第一主机数据和第二主机数据;芯片猎杀高速缓存,适于高速缓存第一主机数据的第一候选芯片猎杀奇偶校验值和第二主机数据的第二候选芯片猎杀奇偶校验值中的一个;芯片猎杀缓冲器,适于当高速缓存在芯片猎杀高速缓存中的第一候选芯片猎杀奇偶校验值从芯片猎杀高速缓存中被逐出时,缓冲第一候选芯片猎杀奇偶校验值;芯片猎杀管理器,通过对第一主机数据和第一候选芯片猎杀奇偶校验值执行XOR运算来生成第一芯片猎杀奇偶校验值,以及通过对第二主机数据和第二候选芯片猎杀奇偶校验值执行XOR运算来生成第二芯片猎杀奇偶校验值;和处理器,适于控制存储器装置将第一主机数据和第一芯片猎杀奇偶校验值编程到第一开放块并且将第二主机数据和第二芯片猎杀奇偶校验值编程到第二开放块,其中芯片猎杀缓冲器具有大于芯片猎杀高速缓存的容量的容量,并且其中当第一候选芯片猎杀奇偶校验值在芯片猎杀高速缓存中是高速缓存命中时,处理器控制芯片猎杀管理器从芯片猎杀高速缓存读取第一候选芯片猎杀奇偶校验值并更新读取的第一候选芯片猎杀奇偶校验值,以及当第一候选芯片猎杀奇偶校验值在芯片猎杀高速缓存中是高速缓存未命中时,处理器控制芯片猎杀管理器从芯片猎杀缓冲器读取第一候选芯片猎杀奇偶校验值并且更新读取的第一候选芯片猎杀奇偶校验值。
根据本发明的另一实施例,一种存储器系统的操作方法包括:将第一主机数据和第二主机数据缓冲在写入缓冲器中;将第一主机数据的第一候选芯片猎杀奇偶校验值和第二主机数据的第二候选芯片猎杀奇偶校验值中的一个高速缓存在芯片猎杀高速缓存中;当高速缓存在芯片猎杀高速缓存中的第一候选芯片猎杀奇偶校验值从芯片猎杀高速缓存中被逐出时,将第一候选芯片猎杀奇偶校验值缓冲到芯片猎杀缓冲器中;通过对第一主机数据和第一候选芯片猎杀奇偶校验值执行XOR运算来生成第一芯片猎杀奇偶校验值,以及通过对第二主机数据和第二候选芯片猎杀奇偶校验值执行XOR运算来生成第二芯片猎杀奇偶校验值;以及将第一主机数据和第一芯片猎杀奇偶校验值编程到第一开放块,并且将第二主机数据和第二芯片猎杀奇偶校验值编程到第二开放块,其中当第一候选芯片猎杀奇偶校验值在芯片猎杀高速缓存中是高速缓存命中时,从芯片猎杀高速缓存读取第一候选芯片猎杀奇偶校验值并进行更新,以及当第一候选芯片猎杀奇偶校验值在芯片猎杀高速缓存中是高速缓存未命中时,从芯片猎杀缓冲器读取第一候选芯片猎杀奇偶校验值并进行更新,芯片猎杀缓冲器具有大于芯片猎杀高速缓存的容量的容量。
根据本发明的另一实施例,一种存储器系统包括:存储器装置,包括第一开放块和第二开放块;以及控制器,包括芯片猎杀高速缓存和具有大于芯片猎杀高速缓存的容量的容量的芯片猎杀缓冲器,其中该控制器适于:从主机接收包括第一数据和第二数据的主机数据;确定第一数据的第一候选芯片猎杀奇偶校验值是否被高速缓存在芯片猎杀高速缓存中;当确定第一候选芯片猎杀奇偶校验值被高速缓存在芯片猎杀高速缓存中时,从芯片猎杀高速缓存中读取第一候选芯片猎杀奇偶校验值;当确定第二数据的第二候选芯片猎杀奇偶校验值被高速缓存在芯片猎杀高速缓存中时,将从芯片猎杀高速缓存中选择的牺牲奇偶校验值逐出,将该牺牲奇偶校验值存储在芯片猎杀缓冲器中,并且从芯片猎杀缓冲器中读取第一候选芯片猎杀奇偶校验值;基于第一数据和第一候选芯片猎杀奇偶校验值生成第一芯片猎杀奇偶校验值并且基于第二数据和第二候选芯片猎杀奇偶校验值生成第二芯片猎杀奇偶校验值;将第一主机数据和第一芯片猎杀奇偶校验值存储在第一开放块中,将第二主机数据和第二芯片猎杀奇偶校验值存储在第二开放块中。
附图说明
图1是示出根据本发明的实施例的包括存储器系统的数据处理系统的框图。
图2是示出根据本发明的实施例的在存储器系统中使用的超级存储块的概念的框图。
图3是示出图1所示的存储器装置中的存储块的存储器单元阵列的电路图。
图4示出了芯片猎杀操作的概念。
图5A至图5C是示出生成芯片猎杀奇偶校验值的方法的框图。
图6是详细示出根据本发明的实施例的数据处理系统的框图。
图7是描述根据本发明的示例性实施例的存储器系统的操作进程的流程图。
具体实施方式
下面将参照附图更详细地描述本发明的示例性实施例。然而,本发明可以以不同的形式实施,并且不应被解释为限于本文阐述的实施例。相反,提供这些实施例使得本公开将是透彻且完整的,并且将向本领域技术人员充分传达本发明的范围。在整个本公开中,相同的附图标记在本发明的各个附图和实施例中指代相同的部件。
将理解的是,虽然术语“第一”、“第二”、“第三”等在本文中可以用于标识各个元件,但是这些元件不受这些术语的限制。这些术语用于将一个元件与具有相同或相似名称的另一元件区分开。因此,在不脱离本发明的精神和范围的情况下,以下描述的第一元件也可以称为第二或第三元件。
附图不一定按比例绘制,并且在某些情况下,已经放大比例以清楚地示出实施例的特征。当一个元件被称为连接或联接到另一元件时,应理解的是,前者可以直接连接或联接到后者,或者可以经由一个或多个中间元件电连接或联接到后者。
将进一步理解的是,当一个元件被称为“连接到”或“联接到”另一元件时,可以是直接连接或联接到另一元件,或者存在一个或多个中间元件。另外,还将理解的是,当元件被称为在两个元件“之间”时,该元件可以是两个元件之间的唯一元件,或者也可以存在一个或多个中间元件。
在本文中使用的术语是用于描述特定的实施例,而不是旨在限制本发明。
如本文中所用的,除非上下文另外明确指出,否则单数形式旨在包括复数形式,反之亦然。
将进一步理解的是,当在本说明书中使用时,术语“包括”、“包括有”、“包含”和“包含有”指定所陈述元件的存在,但是不排除一个或更多其他元件的存在或添加。如本文中所用的,术语“和/或”包括一个或多个所列项目的任意和所有组合。
除非另外定义,否则本文中使用的包括技术术语和科学术语的所有术语,具有与本发明所属领域的普通技术人员根据本公开而通常理解的含义相同的含义。将进一步理解的是,诸如在常用词典中定义的术语的术语应被解释为具有与它们在本公开和相关技术的上下文中的含义一致的含义,并且除非在本文中明确定义,否则不应以理想化或过于正式的方式进行解释。
在以下描述中,阐述了许多具体细节以提供对本发明的透彻理解。可以在没有某些或所有这些具体细节的情况下实践本发明。在其他情况下,没有详细描述公知的进程结构和/或进程,以免不必要地模糊本发明。
还注意的是,在某些情况下,对相关领域的技术人员显而易见的是,除非另有明确说明,否则结合一个实施例描述的特征或元件可以单独使用或与另一实施例的其他特征或元件组合使用。
图1是示出根据本发明的实施例的包括存储器系统110的数据处理系统100的框图。
参照图1,数据处理系统100可以包括可操作联接到存储器系统110的主机102。
主机102可以包括诸如移动电话、MP3播放器和膝上型计算机的各种便携式电子装置中的任意一种,或者诸如台式计算机、游戏机、电视(TV)和投影仪的各种非便携式电子装置中的任意一种。
主机102可以包括可以管理并控制主机102的全部功能和操作的至少一个操作系统(OS)。OS可以支持主机102和使用数据处理系统100或存储器系统110的用户之间的操作。OS可以支持用户请求的功能和操作。例如,根据主机102的移动性,OS可以被划分为通用OS和移动OS。根据用户的环境,通用OS可以被划分为个人OS和企业OS。例如,配置为支持向一般用户提供服务的功能的个人OS可以包括Windows和Chrome,配置为确保并支持高性能的企业OS可以包括Windows Server、Linux和Unix。此外,可以配置为支持向用户提供移动服务的功能和系统的省电功能的移动OS可以包括Android、iOS和Windows Mobile。主机102可以包括多个操作系统。主机102可以运行OS以对存储器系统110执行与用户的请求对应的操作。此处,主机102可以将与用户的请求对应的多个命令提供到存储器系统110。因此,存储器系统110可以执行与多个命令对应,即与用户的请求对应的特定操作。
存储器系统110可以响应于主机102的请求存储用于主机102的数据。存储器系统110的非限制性示例包括固态驱动器(SSD)、多媒体卡(MMC)、安全数字(SD)卡、通用存储总线(USB)装置、通用闪存(UFS)装置、紧凑型闪存(CF)卡、智能媒体卡(SMC)、个人计算机存储卡国际协会(PCMCIA)卡和记忆棒。MMC可以包括嵌入式MMC(eMMC)、尺寸减小的MMC(RS-MMC)和微型MMC。SD卡可以包括迷你SD卡和微型SD卡。
存储器系统110可以包括各种类型的存储装置。这些存储装置的非限制性示例包括诸如动态随机存取存储器(DRAM)和静态RAM(SRAM)的易失性存储器装置,以及诸如只读取存储器(ROM)、掩模ROM(MROM)、可编程ROM(PROM)、可擦除可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、铁电RAM(FRAM)、相变RAM(PRAM)、磁阻RAM(MRAM)、电阻式RAM(RRAM)和闪速存储器的非易失性存储器装置。
存储器系统110可以包括控制器130和存储器装置150。存储器装置150可以存储主机102的数据,控制器130可以控制将数据存储到存储器装置150中。
控制器130和存储器装置150可以被集成到单个半导体装置中,其中该单个半导体装置可以包括在如上所述的各种类型的存储器系统中的一种。例如,控制器130和存储器装置150可以被集成为单个半导体装置以构成SSD。当存储器系统110用作SSD时,可以提高连接到存储器系统110的主机102的操作速度。在另一示例中,控制器130和存储器装置150可以被集成为单个半导体装置以构成诸如下列的存储卡:个人计算机存储卡国际协会(PCMCIA)卡、紧凑型闪存(CF)卡、智能媒体卡(SMC)、记忆棒、多媒体卡(MMC)(例如,RS-MMC和微型MMC)、安全数字(SD)卡(例如,迷你SD、微型SD和SDHC)或通用闪存(UFS)装置。
存储器装置150可以是即使不供应电力也可以保留所存储的数据的非易失性存储器装置。存储器装置150可以通过写入操作存储从主机102提供的数据,并且可以通过读取操作将存储在其中的数据输出到主机102。在实施例中,存储器装置150可以包括多个存储器管芯,每个存储器管芯可以包括多个平面。每个平面可以包括多个存储块152至156,多个存储块152至156中的每一个可以包括多个页面,多个页面中的每一个可以包括联接到字线的多个存储器单元。在实施例中,存储器装置150可以是具有三维(3D)堆叠结构的闪速存储器。
控制器130可以响应于来自主机102的请求控制存储器装置150。例如,控制器130可以将从存储器装置150读取的数据提供至主机102,并且将从主机102提供的数据存储到存储器装置150中。对于该操作,控制器130可以控制存储器装置150的读取操作、写入操作、编程操作和擦除操作。
具体地,控制器130可以包括全部通过内部总线可操作联接或接合的主机接口(I/F)132、处理器134、错误校正码(ECC)组件138、存储器接口(I/F)142和存储器144。存储器144可以包括写入缓冲器122、芯片猎杀高速缓存125和芯片猎杀缓冲器155。可选地,写入缓冲器122、芯片猎杀高速缓存125和芯片猎杀缓冲器155可以在存储器144外部实施。ECC组件138可以包括芯片猎杀管理器180。
主机接口132可以处理主机102的命令和数据。主机接口132可以通过诸如下列的各种接口协议中的一个或多个与主机102通信:通用串行总线(USB)、多媒体卡(MMC)、外围组件高速互连(PCI-e或PCIe)、小型计算机系统接口(SCSI)、串列SCSI(SAS)、串行高级技术附件(SATA)、并行高级技术附件(PATA)、增强型小型磁盘接口(ESDI)和电子集成驱动器(IDE)。主机接口132可以经由固件,即主机接口层(HIL)驱动以与主机102交换数据。
ECC组件138可以校正待由存储器装置150处理的数据的错误位,并且可以包括ECC编码器和ECC解码器。ECC编码器可以对待编程到存储器装置150中的数据执行错误校正编码,以生成添加奇偶校验位的数据。包括奇偶校验位的数据可以存储在存储器装置150中。ECC解码器可以检测并校正从存储器装置150读取的数据中所包含的错误。换言之,ECC组件138可以通过在ECC编码进程中使用的ECC码对从存储器装置150读取的数据执行错误校正解码进程。根据错误校正解码进程的结果,ECC组件138可以输出信号,例如错误校正成功或失败信号。当错误位的数量大于可校正错误位的阈值时,ECC组件138可以不校正错误位,而是可以输出错误校正失败信号。
ECC组件138可以通过诸如低密度奇偶校验(LDPC)码、博斯-查德胡里-霍昆格姆(Bose-Chaudhri-Hocquenghem BCH)码、turbo码、里德-所罗门(Reed-Solomon、RS)码、卷积码、递归系统码(RSC)、网格编码调制(TCM)和分组编码调制(BCM)的编码调制来执行错误校正。然而,ECC组件138不限于这些错误校正技术。因此,ECC组件138可以包括执行合适错误校正的任何和所有电路、模块、系统或装置。
存储器接口142可以用作控制器130和存储器装置150之间的存储器/存储装置接口,使得控制器130可以响应于来自主机102的请求来控制存储器装置150。
存储器144可以用作存储器系统110和控制器130的工作存储器,并且存储用于驱动存储器系统110和控制器130的数据。控制器130可以控制存储器装置150响应于来自主机102的请求而执行读取操作、编程操作以及擦除操作。控制器130可以将从存储器装置150读取的数据提供至主机102,并且可以将从主机102提供的数据存储到存储器装置150中。存储器144可以存储控制器130和存储器装置150执行这些操作所需的数据。
存储器144可以是易失性存储器。例如,存储器144可以是静态随机存取存储器(SRAM)或动态随机存取存储器(DRAM)。存储器144可以设置在控制器130内部或外部。图1示出存储器144设置在控制器130内部。可选地,存储器144可以是具有在存储器144和控制器130之间传送数据的存储器接口的外部易失性存储器。
如上所述,存储器144可以包括存储在主机102和存储器装置150之间执行数据写入和读取操作所需的一些数据,以及存储控制器130和存储器装置150执行这些操作所需的其它数据的程序存储器、数据存储器、写入缓冲器/高速缓存、读取缓冲器/高速缓存、数据缓冲器/高速缓存和映射缓冲器/高速缓存。
处理器134可以控制存储器系统110的全部操作。处理器134可以使用固件来控制存储器系统110的全部操作。固件可以称为闪存转换层(FTL)。
控制器130可以通过处理器134在存储器装置150中执行由主机102请求的操作,处理器134被实施为微处理器或中央处理单元(CPU)。而且,控制器130可以通过处理器134对存储器装置150执行后台操作。后台操作可以包括将存储在存储器装置150的存储块152至156之中的一些存储块中的数据复制到其它存储块并进行处理的操作,例如垃圾收集(GC)操作。此外,后台操作可以包括在存储块152至156之间或在存储块152至156的数据之间执行交换的操作,例如损耗均衡(WL)操作。此外,后台操作可以包括将存储在控制器130中的映射数据存储在存储块152至156中的操作,例如映射清除(flush)操作。此外,后台操作可以包括管理存储器装置150的坏块的操作,例如,检测在存储器装置150中的存储块152至156之中的坏块并对坏块进行处理的坏块管理操作。
图2是示出根据本发明的实施例的在存储器系统中使用的超级存储块的概念的图。
注意的是,图2详细示出图1中所示的存储器系统110的构成元件之中的存储器装置150的构成元件。
存储器装置150可以包括多个存储块BLOCK000至BLOCK00N、BLOCK010至BLOCK01N、BLOCK100至BLOCK10N以及BLOCK110至BLOCK11N。
存储器装置150可以包括能够通过第零通道CH0输入和输出数据的第一存储器管芯DIE0和能够通过第一通道CH1输入和输出数据的第二存储器管芯DIE1。第零通道CH0和第一通道CH1可以以交织方案输入和输出数据。
第一存储器管芯DIE0可以包括分别与多个通路WAY0和WAY1对应的多个平面PLANE00和PLANE01。通路WAY0和WAY1可以通过共享第零信道CH0来以交织方案输入和输出数据。
第二存储器管芯DIE1可以包括分别与多个通路WAY2和WAY3对应的多个平面PLANE10和PLANE 11。通路WAY2和WAY3可以通过共享第一信道CH1以交织方案输入和输出数据。
第一存储器管芯DIE0的第一平面PLANE00可以包括多个存储块BLOCK000至BLOCK00N、BLOCK010至BLOCK01N、BLOCK100至BLOCK10N以及BLOCK110至BLOCK11N之中的预定数量的存储块BLOCK000至BLOCK00N。
第一存储器管芯DIE0的第二平面PLANE01可以包括多个存储块BLOCK000至BLOCK00N、BLOCK010至BLOCK01N、BLOCK100至BLOCK10N以及BLOCK110至BLOCK11N之中的预定数量的存储块BLOCK010至BLOCK01N。
第二存储器管芯DIE1的第一平面PLANE10可以包括多个存储块BLOCK000至BLOCK00N、BLOCK010至BLOCK01N、BLOCK100至BLOCK10N以及BLOCK110至BLOCK11N之中的预定数量的存储块BLOCK100至BLOCK10N。
第二存储器管芯DIE1的第二平面PLANE11可以包括多个存储块BLOCK000至BLOCK00N、BLOCK010至BLOCK01N、BLOCK100至BLOCK10N和BLOCK110至BLOCK11N之中的预定数量的存储块BLOCK110至BLOCK11N。
以这种方式,存储器装置150中的多个存储块BLOCK000至BLOCK00N、BLOCK010至BLOCK01N、BLOCK100至BLOCK10N以及BLOCK110至BLOCK11N可以根据这些存储块的物理位置以及通路和通道的使用被划分为组。
虽然在本发明的实施例中描述了两个存储器管芯DIE0和DIE1包括在存储器装置150中,两个平面PLANE00和PLANE01/PLANE10和PLANE11包括在各个存储器管芯DIE0和DIE1中,并且预定数量的存储块BLOCK000至BLOCK00N、BLOCK010至BLOCK01N、BLOCK100至BLOCK10N和BLOCK110至BLOCK11N包括在平面PLANE00和PLANE01/PLANE10和PLANE11中,但是本发明不限于此。实际上,根据系统设计人员的决定,多于或少于两个存储器管芯可以包括在存储器装置150中,多于或少于两个平面可以包括在各个存储器管芯中。此外,还可以根据系统设计人员的决策来不同地调整各个平面中的存储块的预定数量。
与根据存储块的物理位置来将存储器装置150中的多个存储块BLOCK000至BLOCK00N、BLOCK010至BLOCK01N、BLOCK100至BLOCK10N以及BLOCK110至BLOCK11N划分为存储器管芯DIE0和DIE1或平面PLANE00和PLANE01/PLANE10和PLANE11的方式不同,控制器130可以使用基于被同时选择并操作的存储块来划分多个存储块BLOCK000至BLOCK00N、BLOCK010至BLOCK01N、BLOCK100至BLOCK10N以及BLOCK110至BLOCK11N的方式。换言之,控制器130可以通过对在多个存储块之中能够被同时选择的存储块进行分组并由此将分组的存储块划分为超级存储块,来基于存储块的物理位置对位于不同管芯或不同平面中的多个存储块进行管理。
可以根据系统设计人员的决策以各种方式执行由控制器130将存储块分组为超级存储块的同时选择方案。在此文中,以下将例示三种同时选择方案。
第一种方案是将存储器装置150中的存储器管芯DIE0和DIE1之中的第一存储器管芯DIE0的第一平面PLANE00的任意存储块BLOCK000和第二平面PLANE01的任意存储块BLOCK010分组,并且将分组的存储块BLOCK000和BLOCK010作为单个超级存储块A1来管理。当将第一方案应用于存储器装置150中的存储器管芯DIE0和DIE1中的第二存储器管芯DIE1时,控制器130可以将来自第二存储器管芯DIE1的第一平面PLANE10的任意存储块BLOCK100和来自第二平面PLANE11的任意存储块BLOCK110分组,并且将分组的存储块BLOCK100和BLOCK110作为单个超级存储块A2来管理。
第二方案是将第一存储器管芯DIE0的第一平面PLANE00的任意存储块BLOCK002和来自第二存储器管芯DIE1的第一平面PLANE10的任意存储块BLOCK102分组,并且将分组的存储块BLOCK002和BLOCK102作为单个超级存储块B1来管理。另外,根据第二方案,控制器130可以将来自第一存储器管芯DIE0的第二平面PLANE01的任意存储块BLOCK012和来自第二存储器管芯DIE1的第二平面PLANE11的任意存储块BLOCK112分组,并且将分组的存储块BLOCK012和BLOCK112作为单个超级存储块B2来管理。
第三方案是将来自第一存储器管芯DIE0的第一平面PLANE00的任意存储块BLOCK001、来自第一存储器管芯DIE0的第二平面PLANE01的任意存储块BLOCK011、来自第二存储器管芯DIE1的第一平面PLANE10的任意存储块BLOCK101和来自第二存储器管芯DIE1的第二平面PLANE11的任意存储块BLOCK111分组,并且将分组的存储块BLOCK001、BLOCK011、BLOCK101和BLOCK111作为单个超级存储块C来管理。
控制器130可以通过交织方案同时选择各个超级存储块中的存储块。例如,交织方案可以包括通道交织方案、存储器管芯交织方案、存储器芯片交织方案或通路交织方案。
图3是示出图1中所示的存储器装置150中的存储块330的存储器单元阵列的电路图。
参照图3,存储块330可以包括联接到多个相应位线BL0至BLm-1的多个单元串340。每一列的单元串340可以包括一个或多个漏极选择晶体管DST和一个或多个源极选择晶体管SST。多个存储器单元MC0至MCn-1可以串联联接在漏极选择晶体管DST和源极选择晶体管SST之间。在实施例中,存储器单元晶体管MC0至MCn-1中的每一个可以由能够存储多个位的数据信息的多层单元(MLC)来实施。单元串340中的每一个可以电联接到多个位线BL0至BLm-1之中的相应位线。例如,如图3所示,第一单元串联接到第一位线BL0,最后单元串联接到最后位线BLm-1。
虽然图3示出NAND闪速存储器单元,但是本公开不限于此。注意的是,存储器单元可以是NOR闪速存储器单元,或者是包括组合在其中的两种或更多种类型的存储器单元的混合闪速存储器单元。而且,注意的是,存储器装置150可以是包括作为电荷存储层的导电浮栅的闪速存储器装置或包括作为电荷存储层的绝缘层的电荷撷取闪存(CTF)存储器装置。
存储器装置150可以进一步包括根据操作模式生成供应至字线的包括编程电压、读取电压和通过电压的不同的字线电压的电压供应装置310。电压供应装置310的电压生成操作可以由控制电路(未示出)控制。在控制电路(未示出)的控制下,电压供应装置310可以选择存储器单元阵列的存储块(或扇区)中的至少一个,选择被选择存储块的字线中的至少一个,并且将字线电压提供至被选择字线和未选择字线。
存储器装置150可以包括由控制电路控制的读取/写入电路320。在验证/正常读取操作期间,读取/写入电路320可以作为从存储器单元阵列读取(即,感测并放大)数据的读出放大器进行操作。在编程操作期间,读取/写入电路320可以作为根据待存储在存储器单元阵列中的数据将电压或电流供应至位线的写入驱动器进行操作。在编程操作期间,读取/写入电路320可以从缓冲器(未示出)接收待存储到存储器单元阵列中的数据,并且根据接收的数据来驱动位线。读取/写入电路320可以包括分别与列(或位线)或列对(或位线对)对应的多个页面缓冲器322至326。页面缓冲器322至326中的每一个可以包括多个锁存器(未示出)。
如先前参照图1所述,ECC组件138能够通过使用LDPC码来检测从存储器装置150读取的数据中的错误并进行校正。当ECC组件138无法校正错误时,存储在存储器系统110中的数据可能会丢失。因此,当ECC组件138无法校正错误时,可能需要从不可校正错误中恢复数据的附加方法以提高数据可靠性。控制器130能够通过进一步执行芯片猎杀操作来保护数据。芯片猎杀操作可以恢复错误校正操作无法恢复的数据。
图4示出芯片猎杀操作的概念。
在图4中,作为示例将描述根据以上参照图2描述的第三方案形成超级存储块的方法。
超级存储块SB可以包括第一至第四块BLK001至BLK111。作为示例,在图4中,第一至第四块BLK001至BLK111中的每一个包括三个页面。因此,超级存储块SB可以包括总共12个页面。
控制器130可以控制存储器装置150以将主机数据编程在超级存储块SB中的12个页面之中的除了与芯片猎杀奇偶校验值CHIPKILL PARITY相关联的一个页面之外的11个页面中。主机数据可以由11条数据形成,并且11条数据中的每一条可以对应于一个页面。换言之,这11条数据中的每一条可以具有一个页面的大小。控制器130可以控制存储器装置150以将芯片猎杀奇偶校验值CHIPKILL PARITY编程到超级存储块SB的页面中的相应一个页面。芯片猎杀奇偶校验值CHIPKILL PARITY可以是对被编程到超级存储块SB中的所有数据执行异或(XOR)运算的结果。
当被编程在超级存储块SB中的特定数据发生失败时,控制器130可以基于芯片猎杀奇偶校验值来恢复原始数据。例如,当被编程在超级存储块SB的特定页面402中的数据中的错误未被校正时,控制器130可以控制存储器装置150以读取被编程在超级存储块SB中的数据之中除页面402中的数据之外的剩余主机数据,并且读取芯片猎杀奇偶校验值。
由于芯片猎杀奇偶校验值CHIPKILL PARITY是对被编程在超级存储块SB中的所有数据执行异或(XOR)运算的结果,因此可以通过对芯片猎杀奇偶校验值CHIPKILL PARITY和剩余数据执行异或(XOR)运算来获得失败页面的原始数据。因此,控制器130可以将失败页面的原始数据提供至主机102。
返回参照图1,在控制器130将主机数据缓冲到写入缓冲器122然后形成写入条带单元(write stripe unit)之后,控制器130可以控制存储器装置150将主机数据编程在开放块OPEN BLK中。写入条带单元可以是位于超级存储块的相同索引处的页面的大小的总和。根据本发明的实施例,开放块OPEN BLK可以是以与上面参照图4描述的超级存储块SB相同的方式形成的超级存储块。
而且,控制器130可以在缓冲在写入缓冲器122中的主机数据被编程到超级存储块中的同时执行芯片猎杀奇偶校验值生成操作。控制器130可以将待存储在开放块的页面之中的除了待被编程芯片猎杀奇偶校验值的页面之外的剩余页面(以下称用户页面)中的每一个的主机数据划分为多条数据。被编程在用户页面的第一页面中的主机数据可以是起始数据,被编程在用户页面的最后页面中的主机数据可以是最后数据,除起始数据和最后数据之外的剩余主机数据可以是中间数据。
图5A至图5C是示出生成芯片猎杀奇偶校验值的方法的框图。
图5A是示出当缓冲在写入缓冲器122中的主机数据包括起始数据时生成芯片猎杀奇偶校验值的进程的框图。
参照图5A,当缓冲在写入缓冲器122中的主机数据形成写入条带单元并且主机数据包括起始数据D1时,处理器134可以将起始数据D1缓冲在芯片猎杀缓冲器502中。处理器134可以读取起始数据D1,并且将读取的起始数据D1提供至ECC组件138。而且,处理器134可以将主机数据的除起始数据D1之外的剩余数据D2、D3和D4提供至ECC组件138。
ECC组件138可以对提供的起始数据D1和作为在主机数据中包括的中间数据D2、D3和D4中的一个的第一数据D2执行异或(XOR)运算以便生成第一候选芯片猎杀奇偶校验值P11,并且将第一候选芯片猎杀奇偶校验值P11缓冲在芯片猎杀缓冲器502中。处理器134可以读取第一候选芯片猎杀奇偶校验值P11,并且向ECC组件138提供读取的第一候选芯片猎杀奇偶校验值P11。
ECC组件138可以对提供的第一候选芯片猎杀奇偶校验值P11和作为在主机数据中包括的剩余中间数据D3和D4中的一个的第二数据D3执行异或(XOR)运算以便生成第二候选芯片猎杀奇偶校验值P12,并且将第二候选芯片猎杀奇偶校验值P12缓冲在芯片猎杀缓冲器502中。处理器134和ECC组件138可以对主机数据中的形成写入条带单元的剩余数据D4重复执行上述操作。
在图5A中,总共四个页面共享超级存储块的第一索引INDEX1,并且页面的大小的总和可以形成写入条带单元。当将第一至第四数据D1至D4被缓冲在写入缓冲器122中的共享超级存储块的第一索引INDEX1的相应页面中时,控制器130可以控制存储器装置150将第一至第四数据D1至D4编程在开放块OPEN BLK中。
第一数据D1可以是存储在超级存储块的用户页面的第一页面中的起始数据,第二数据D2至第四数据D4可以是中间数据。处理器134可以在对第一至第四数据D1至D4进行编程的同时向ECC组件138提供第二至第四数据D2至D4。而且,处理器134可以将作为起始数据的第一数据D1缓冲在芯片猎杀缓冲器502中。处理器134可以读取第一数据D1并且向ECC组件138提供第一数据D1。
ECC组件138可以通过对从芯片猎杀缓冲器502提供的第一数据D1和从写入缓冲器122提供的第二数据D2执行XOR运算来生成第一候选芯片猎杀奇偶校验值P11。ECC组件138可以将第一候选芯片猎杀奇偶校验值P11缓冲在芯片猎杀缓冲器502中。处理器134可以读取第一候选芯片猎杀奇偶校验值P11,并且向ECC组件138提供读取的第一候选芯片猎杀奇偶校验值P11。ECC组件138可以通过对第一候选芯片猎杀奇偶校验值P11和第三数据D3执行XOR运算来生成第二候选芯片猎杀奇偶校验值P12。ECC组件138可以将第二候选芯片猎杀奇偶校验值P12缓冲在芯片猎杀缓冲器502中。以相同的方式,处理器134和ECC组件138可以通过对第二候选芯片猎杀奇偶校验值P12和第四数据D4执行XOR运算来生成第三候选芯片猎杀奇偶校验值P13。
图5B是示出当缓冲在写入缓冲器中的主机数据仅包括中间数据时生成芯片猎杀奇偶校验值的进程的框图。
参照图5B,当缓冲在写入缓冲器122中的主机数据的数据D5、D6、D7和D8都是中间数据时,处理器134可以控制存储器装置150将形成写入条带单元的主机数据编程到开放块OPEN BLK中。而且,处理器134可以向ECC组件138提供多条数据D5、D6、D7和D8,并且从芯片猎杀缓冲器502中读取开放块OPEN BLK的第三候选芯片猎杀奇偶校验值P13,并向ECC组件138提供读取的第三候选芯片猎杀奇偶校验值P13。
ECC组件138可以通过对提供的第三候选芯片猎杀奇偶校验值P13和主机数据中的中间数据D5、D6、D7和D8中的一条数据D5执行XOR运算来生成第四候选芯片猎杀奇偶校验值P14。ECC组件138可以将第四候选芯片猎杀奇偶校验值P14缓冲在芯片猎杀缓冲器502中。处理器134和ECC组件138可以通过对剩余中间数据D6、D7和D8重复执行上述XOR运算来执行芯片猎杀奇偶校验值生成操作。
例如,如以上参照图5A所述,当第一至第四数据D1至D4被编程在开放块OPEN BLK中并且生成第三候选芯片猎杀奇偶校验值P13时,处理器134可以检查缓冲在写入缓冲器122中的多条数据D5至D8是否包括起始数据或最后数据。由于缓冲在写入缓冲器122中的所有第五至第八数据D5至D8都是中间数据,因此处理器134可以控制存储器装置150将形成写入条带单元的第五至第八数据D5至D8编程到开放块OPEN BLK中。处理器134可以在对第五至第八数据D5至D8进行编程时向ECC组件138提供第五至第八数据D5至D8。而且,处理器134可以读取缓冲在芯片猎杀缓冲器502中的第三候选芯片猎杀奇偶校验值P13,并且向ECC组件138提供读取的第三候选芯片猎杀奇偶校验值P13。
ECC组件138可以通过对提供的第三候选芯片猎杀奇偶校验值P13和第五数据D5执行XOR运算来生成第四候选芯片猎杀奇偶校验值P14。ECC组件138可以将第四候选芯片猎杀奇偶校验值P14缓冲在芯片猎杀缓冲器502中。处理器134可以从芯片猎杀缓冲器502中读取第四候选芯片猎杀奇偶校验值P14,并且向ECC组件138提供读取的第四候选芯片猎杀奇偶校验值P14。ECC组件138可以通过对提供的第四候选芯片猎杀奇偶校验值P14和第六数据D6执行XOR运算来生成第五候选芯片猎杀奇偶校验值P15。同样地,处理器134和ECC组件138可以通过对第五候选芯片猎杀奇偶校验值P15和第七数据D7执行XOR运算来生成第六候选芯片猎杀奇偶校验值P16,并且可以通过对第六候选芯片猎杀奇偶校验值P16和第八数据D8执行XOR运算来生成第七候选芯片猎杀奇偶校验值P17。ECC组件138可以将第七候选芯片猎杀奇偶校验值P17缓存在芯片猎杀缓冲器502中。
图5C是示出当缓冲在写入缓冲器122中的主机数据包括最后数据时生成芯片猎杀奇偶校验的方法的框图。
参照图5C,当缓冲在写入缓冲器122中的主机数据D9、D10和D11包括最后数据D11时,处理器134可以控制存储器装置150将主机数据D9、D10和D11编程在开放块OPEN BLK中。当主机数据包括最后数据D11时,提供至存储器装置150的主机数据D9、D10和D11的大小可以比写入条带单元小一个页面大小。而且,处理器134可以向ECC组件138提供主机数据D9、D10和D11,并且处理器134可以读取缓冲在芯片猎杀缓冲器502中的开放块OPEN BLK的第七候选芯片猎杀奇偶校验值P17,并且向ECC组件138提供读取的第七候选芯片猎杀奇偶校验值P17。
ECC组件138可以通过对提供的第七候选芯片猎杀奇偶校验值P17和中间数据D9执行XOR运算来生成第八候选芯片猎杀奇偶校验值P18。ECC组件138可以将第八候选芯片猎杀奇偶校验值P18缓冲在芯片猎杀缓冲器502中。处理器134和ECC组件138可以通过对剩余中间数据D10和最后数据D11重复执行上述操作来最终生成开放块OPEN BLK的芯片猎杀奇偶校验值P1。处理器134可以控制存储器装置150将生成的芯片猎杀奇偶校验值P1编程到开放块OPEN BLK的除了用户页面之外的剩余一个空白页面。
例如,如以上参照图5A和5B所述,当第五至第八数据D5至D8被编程在开放块OPENBLK中并且生成第七候选芯片猎杀奇偶校验值P17时,处理器134可以检查缓冲在写入缓冲器122中的主机数据的数据D9、D10和D11是否包括最后数据。由于缓冲在写入缓冲器122中的第十一数据D11是最后数据,因此处理器134可以控制存储器装置150将比写入条带单元小一个页面大小的第九至第十一数据D9至D11编程到开放块OPEN BLK。处理器134可在将第九至第十一数据D9至D11编程到开放块OPEN BLK中的同时向ECC组件138提供第九至第十一数据D9至D11。而且,处理器134可以向ECC组件138提供缓冲在芯片猎杀缓冲器502中的第七候选芯片猎杀奇偶校验值P17。
ECC组件138可以通过对提供的第七候选芯片猎杀奇偶校验值P17和第九数据D9执行XOR运算来生成第八候选芯片猎杀奇偶校验值P18。ECC组件138可以将第八候选芯片猎杀奇偶校验值P18缓冲在芯片猎杀缓冲器502中。处理器134可以从芯片猎杀缓冲器502中读取第八候选芯片猎杀奇偶校验值P18,并且向ECC组件138提供第八候选芯片猎杀奇偶校验值P18。ECC组件138可以通过对提供的第八候选芯片猎杀奇偶校验值P18和第十数据D10执行XOR运算来生成第九候选芯片猎杀奇偶校验值P19。同样地,处理器134和ECC组件138可以通过对第九候选芯片猎杀奇偶校验值P19和第十一数据D11执行XOR运算来最终生成开放块OPEN BLK的芯片猎杀奇偶校验值P1。处理器134可以控制存储器装置150将芯片猎杀奇偶校验值P1编程到开放块OPEN BLK中。
芯片猎杀缓冲器可能需要大约是主机写入两倍的高带宽。例如,在主机写入的情况下,主机数据一次被提供给存储器装置,然而在芯片猎杀缓冲器的情况下,可以从芯片猎杀缓冲器读取候选芯片猎杀奇偶校验值,然后对候选芯片猎杀奇偶校验值和主机数据执行异或(XOR)运算的结果可以被写回到芯片猎杀缓冲器。因此,每单位时间处理的数据大小可能约为两倍。通常,可以利用具有大带宽的静态随机存取存储器(SRAM)来实现芯片猎杀缓冲器。
虽然以上参照图5A至图5C描述了当存在一个开放块时生成芯片猎杀奇偶校验值的方法,但是就像在存储器系统110通过多个写入流联接到多个主机的情况一样,可以存在多个开放块。当开放块的数量增加时,待由芯片猎杀缓冲器存储的候选芯片猎杀奇偶校验值的大小也可能增加。通常,由于SRAM非常昂贵,因此存储器系统110中的SRAM的大小受到限制。当随着开放块的数量的增加而需要增加芯片猎杀缓冲器的大小时,因为难以利用SRAM实现高容量的芯片猎杀缓冲器,所以可以用DRAM实现芯片猎杀缓冲器。由于DRAM的带宽小于SRAM的带宽,因此DRAM不支持高吞吐量。因此,当利用具有低带宽的DRAM实现芯片猎杀缓冲器时,生成芯片猎杀奇偶校验值的速率可能非常慢。
根据本发明的实施例,控制器130可以执行芯片猎杀奇偶校验生成操作,对写入条带单元的主机数据和存储在作为高速缓存的具有高带宽的SRAM中的候选芯片猎杀奇偶校验值执行XOR运算,同时使用SRAM编程主机数据。当第一开放块的主机数据是高速缓存命中时,控制器130可以通过从SRAM读取第一开放块的候选芯片猎杀奇偶校验值来执行芯片猎杀奇偶校验值生成操作。换言之,控制器130可以从SRAM读取第一开放块的候选芯片猎杀奇偶校验值,并且执行对读取的候选芯片猎杀奇偶校验值和第一开放块的主机数据执行XOR运算的芯片猎杀奇偶校验值生成操作。当第一开放块的主机数据是高速缓存未命中并且SRAM的容量不足时,控制器130可以逐出存储在SRAM中的第二开放块的候选芯片猎杀奇偶校验值并将第二开放块的候选芯片猎杀奇偶校验值存储在DRAM中。
图6是详细示出根据本发明的实施例的数据处理系统100的框图。注意的是,图6仅示出图1所示的数据处理系统100中与本发明有关的组成元件。
参照图6,控制器130可以包括存储器144、ECC组件138和处理器134。存储器144可以包括写入缓冲器122、芯片猎杀高速缓存125和芯片猎杀缓冲器155。此外,ECC组件138可以包括芯片猎杀管理器180。
写入缓冲器122可以缓冲从主机102提供的主机数据。可以利用DRAM实现写入缓冲器122。
处理器134可以针对每个开发块对缓冲在写入缓冲器122中的主机数据进行分类(或划分)。处理器134可以确定经分类主机数据是否包括最后数据。当主机数据不包括最后数据时,处理器134可以控制存储器装置150将与写入条带单元一样多的主机数据编程在开放块中。例如,当第一开放块的主机数据不包括最后数据并且主机数据对应于缓冲在写入缓冲器122中的一样多的写入条带单元时,处理器134可以控制存储器装置150将主机数据编程在第一开放块中。
而且,处理器134可以在将主机数据编程在开放块中的同时向芯片猎杀管理器180提供开放块的主机数据。例如,处理器134可以向芯片猎杀管理器180提供第一开放块的主机数据。
当主机数据包括最后数据时,处理器134可以控制存储器装置150将比写入条带单元小一个页面的主机数据编程在开放块中,并且在对主机数据执行编程操作的同时向芯片猎杀管理器180提供主机数据。
处理器134可以确定是否对从写入缓冲器122提供的第一开放块的主机数据执行高速缓存命中。当芯片猎杀高速缓存125高速缓存第一开放块的第一候选芯片猎杀奇偶校验值时,处理器134可以将第一开放块的主机数据确定为高速缓存命中。在高速缓存命中的情况下,处理器134可以从芯片猎杀高速缓存125读取第一候选芯片猎杀奇偶校验值,并且向芯片猎杀管理器180提供读取的第一候选芯片猎杀奇偶校验值PARITY_CANDIDATE。
芯片猎杀管理器180可以执行对第一开放块的主机数据HOST DATA和第一候选芯片猎杀奇偶校验值PARITY_CANDIDATE执行XOR运算的芯片猎杀奇偶校验值生成操作。如以上参照图5A至图5C所描述的,芯片猎杀管理器180可以对主机数据中的任何一条数据和读取的第一候选芯片猎杀奇偶校验值执行XOR运算,并且将XOR运算结果高速缓存在芯片猎杀高速缓存125中。处理器134可以读取高速缓存的XOR运算结果,并且向芯片猎杀管理器180提供高速缓存的XOR运算结果。然后,芯片猎杀管理器180可以对提供的XOR运算结果和另一主机数据执行XOR运算。芯片猎杀管理器180和处理器134可以通过对所有主机数据重复执行上述操作来执行芯片猎杀奇偶校验值生成操作。
当芯片猎杀高速缓存125没有高速缓存第一开放块的第一候选芯片猎杀奇偶校验值时,处理器134可以将第一开放块的主机数据确定为高速缓存未命中。例如,当芯片猎杀高速缓存125高速缓存第二开放块的候选芯片猎杀奇偶校验值时,处理器134可以将第一开放块的主机数据确定为高速缓存未命中。在高速缓存未命中的情况下,处理器134可以从芯片猎杀高速缓存125中选择待被逐出的牺牲芯片猎杀奇偶校验值VICTIM PARITY。处理器134可以基于各种逐出策略,诸如最近最少使用(LRU)方案来选择牺牲芯片猎杀奇偶校验值VICTIM PARITY。
处理器134可以确定牺牲芯片猎杀奇偶校验值VICTIM PARITY是否是脏的。当在芯片猎杀缓冲器155中存在与牺牲芯片猎杀奇偶校验值VICTIM PARITY相同的数据时,处理器134可以确定牺牲芯片猎杀奇偶校验值VICTIM PARITY是干净的。当在芯片猎杀缓冲器155中不存在与牺牲芯片猎杀奇偶校验值VICTIM PARITY相同的数据时,处理器134可以确定牺牲芯片猎杀奇偶校验VICTIM PARITY是脏的。当牺牲芯片猎杀奇偶校验值VICTIM PARITY是干净的时,处理器134可以从芯片猎杀高速缓存125中删除牺牲芯片猎杀奇偶校验值VICTIMPARITY,而无需执行附加操作。当牺牲芯片猎杀奇偶校验值VICTIM PARITY是脏的时,处理器134可以将牺牲芯片猎杀奇偶校验VICTIM PARITY缓冲在芯片猎杀缓冲器155中,然后从芯片猎杀高速缓存125中删除牺牲芯片猎杀奇偶校验值VICTIM PARITY。
当第一开放块的主机数据是高速缓存未命中时,处理器134可以从芯片猎杀缓冲器155读取第一开放块的第一候选芯片猎杀奇偶校验值PARITY_CANDIDATE,并且将读取的第一候选芯片猎杀奇偶校验提供至芯片猎杀管理器180。芯片猎杀管理器180可以对候选芯片猎杀奇偶校验值和第一主机数据执行XOR算,并且将XOR运算结果缓存在芯片猎杀高速缓存125中。处理器134可以读取高速缓存在芯片猎杀高速缓存125中的第一候选芯片猎杀奇偶校验值,并且向芯片猎杀管理器180提供读取的第一候选芯片猎杀奇偶校验值。芯片猎杀管理器180可以选择主机数据的剩余数据之中的一条数据,并且对选择的一条数据和第一候选芯片猎杀奇偶校验值执行XOR运算。当主机数据包括最后数据时,芯片猎杀管理器180可以通过对最后数据和候选芯片猎杀奇偶校验值执行XOR运算来生成芯片猎杀奇偶校验值,并且向存储器装置150提供生成的芯片猎杀奇偶校验值,并且处理器134可以控制存储器装置150将芯片猎杀奇偶校验值编程在第一开放块中。
上面参照图1和图6描述的处理器134可以被实现为存储器系统110的硬件,并且处理器134可以包括芯片猎杀高速缓存125。
图7是示出根据本发明示例性实施例的存储器系统110的操作进程的流程图。
参照图7,在步骤S702中,处理器134可以针对每个开放块对缓冲在写入缓冲器122中的主机数据进行划分。例如,处理器134可以将主机数据划分为第一开放块的主机数据和第二开放块的主机数据。
在步骤S704中,处理器134可以测量每个开放块的主机数据的大小。当主机数据不包括最后数据时,处理器134可以向芯片猎杀管理器180提供与写入条带单元一样多的主机数据。当主机数据包括最后数据时,处理器134可以向芯片猎杀管理器180提供具有比写入条带单元小一个页面的大小的主机数据。而且,处理器134可以控制存储器装置150将提供到芯片猎杀管理器180的主机数据编程到开放块。
在步骤S706中,处理器134可以确定提供到芯片猎杀管理器180的主机数据是否是高速缓存命中。当针对主机数据的开放块的候选芯片猎杀奇偶校验值被高速缓存在芯片猎杀高速缓存125中时,处理器134可以将主机数据确定为高速缓存命中。当针对主机数据的开放块的候选芯片猎杀奇偶校验值未被高速缓存在芯片猎杀高速缓存125中时,处理器134可以将主机数据确定为高速缓存未命中。当在第一开放块的主机数据正被编程在第一开放块中的同时,处理器134向芯片猎杀管理器180提供主机数据并且第一开放块的候选芯片猎杀奇偶校验值被高速缓存在芯片猎杀高速缓存125中时,处理器134可以将主机数据确定为高速缓存命中。当第二开放块的主机数据正被编程在第二开放块中的同时,处理器134向芯片猎杀管理器180提供主机数据并且第二开放块的候选芯片猎杀奇偶校验值未被高速缓存在芯片猎杀高速缓存125中时,处理器134可以将主机数据确定为高速缓存未命中。
在高速缓存命中的情况(在步骤S706中为“是”)下,在步骤S708中,处理器134可以读取高速缓存在芯片猎杀高速缓存125中的候选芯片猎杀奇偶校验值,并且将读取的候选芯片猎杀奇偶校验值提供到芯片猎杀管理器180。当在第一开放块的主机数据正被编程在第一开放块中的同时,处理器134向芯片猎杀管理器180提供主机数据并且第一开放块的候选芯片猎杀奇偶校验值被高速缓存在芯片猎杀高速缓存125中时,处理器134可以从芯片猎杀高速缓存125中读取第一开放块的候选芯片猎杀奇偶校验值,并且向芯片猎杀管理器180提供读取的候选芯片猎杀奇偶校验值。
在步骤S710中,芯片猎杀管理器180可以通过对提供的主机数据和候选芯片猎杀奇偶校验值执行XOR运算来执行芯片猎杀奇偶校验值生成操作。当主机数据包括第一数据和第二数据时,芯片猎杀管理器180可以通过对第一数据和候选芯片猎杀奇偶校验值执行XOR运算来生成更新的候选芯片猎杀奇偶校验值。芯片猎杀管理器180可以将候选芯片猎杀奇偶校验值高速缓存在芯片猎杀高速缓存125中,并且通过读取候选芯片猎杀奇偶校验值并且对读取的候选芯片猎杀奇偶校验值和第二数据执行XOR运算来生成更新的候选芯片猎杀奇偶校验值。芯片猎杀管理器180可以将更新的候选芯片猎杀奇偶校验值高速缓存在芯片猎杀高速缓存125中。
当主机数据包括最后数据时,芯片猎杀管理器180可以对最后数据和候选芯片猎杀奇偶校验值执行XOR运算,以生成芯片猎杀奇偶校验值并将芯片猎杀奇偶校验值提供到存储器装置150。处理器134可以控制存储器装置150将芯片猎杀奇偶校验值编程在开放块中。当第二条数据是最后数据时,芯片猎杀管理器180可以对候选芯片猎杀奇偶校验值和第二条数据执行XOR运算,以生成芯片猎杀奇偶校验值,并且向存储器装置150提供芯片猎杀奇偶校验值。处理器134可以控制存储器装置150将芯片猎杀奇偶校验值编程在开放块中。
在高速缓存未命中的情况(在步骤S706中为“否”)下,在步骤S712中,处理器134可以选择在高速缓存在芯片猎杀高速缓存125中的候选芯片猎杀奇偶校验值之中的牺牲芯片猎杀奇偶校验值。处理器134可以基于各种逐出策略,诸如最近最少使用(LRU)方案,来选择牺牲芯片猎杀奇偶校验值。然而,当芯片猎杀高速缓存125中有足够的空闲空间时,处理器134可以不逐出牺牲芯片猎杀奇偶校验值。
在步骤S714中,处理器134可以确定牺牲芯片猎杀奇偶校验值是否是脏的。当在芯片猎杀缓冲器155中存在与牺牲芯片猎杀奇偶校验值相同的数据时,处理器134可以确定牺牲芯片猎杀奇偶校验值是干净的。当在芯片猎杀缓冲器155中不存在与牺牲芯片猎杀奇偶校验值相同的数据时,处理器134可以确定牺牲芯片猎杀奇偶校验值是脏的。
当牺牲芯片猎杀奇偶校验值是脏的(步骤S714中为“是”)时,在步骤S716中,处理器134可以将牺牲芯片猎杀奇偶校验值缓冲在芯片猎杀缓冲器155中,然后从芯片猎杀高速缓存125中删除牺牲芯片猎杀奇偶校验值。当牺牲芯片猎杀奇偶校验值是干净的(步骤S714中为“否”)时,处理器134可以从芯片猎杀高速缓存125中删除牺牲芯片猎杀奇偶校验值而无需执行步骤S716的操作。
在步骤S718中,处理器134可以从芯片猎杀缓冲器155中读取候选芯片猎杀奇偶校验值,并且向芯片猎杀管理器180提供读取的候选芯片猎杀奇偶校验值。例如,处理器134可以在将第二开放块的主机数据编程到第二开放块的同时,向芯片猎杀管理器180提供第二开放块的主机数据。当第二开放块的候选芯片猎杀奇偶校验值未被高速缓存在芯片猎杀高速缓存125中时,处理器134可以从芯片猎杀缓冲器155读取第二开放块的候选芯片猎杀奇偶校验值并且将读取的候选芯片猎杀奇偶校验值提供到芯片猎杀管理器180。然而,当主机数据包括起始数据时,在芯片猎杀缓冲器155中不存在起始数据的候选芯片猎杀奇偶校验值。因此,处理器134可以不执行候选芯片猎杀奇偶校验值读取操作,而是可以将起始数据缓存在芯片猎杀高速缓存125中。
在步骤S720中,芯片猎杀管理器180可以通过对在步骤S718中提供的候选芯片猎杀奇偶校验值和主机数据执行XOR运算来执行芯片猎杀奇偶校验值生成操作。当主机数据包括第一数据和第二数据时,芯片猎杀管理器180可以通过对第一数据和候选芯片猎杀奇偶校验值执行XOR运算来生成更新的候选芯片猎杀奇偶校验值。芯片猎杀管理器180可以通过将候选芯片猎杀奇偶校验值高速缓存在芯片猎杀高速缓存125中、读取候选芯片猎杀奇偶校验值、并且对读取的候选芯片猎杀奇偶校验值和第二数据执行XOR运算来生成更新的候选芯片猎杀奇偶校验值。芯片猎杀管理器180可以将更新的候选芯片猎杀奇偶校验值高速缓存在芯片猎杀高速缓存125中。
当主机数据包括最后数据时,芯片猎杀管理器180可以向存储器装置150提供通过对最后数据和候选芯片猎杀奇偶校验值执行XOR运算而生成的芯片猎杀奇偶校验值。处理器134可以控制存储器装置150将芯片猎杀奇偶校验值编程在开放块中。当第二数据是最后数据时,芯片猎杀管理器180可以向存储器装置150提供通过对候选芯片猎杀奇偶校验值和第二数据执行XOR运算而生成的芯片猎杀奇偶校验值。处理器134可以控制存储器装置150将芯片猎杀奇偶校验值编程在开放块中。
根据本发明的实施例,存储器系统可以使用具有大带宽的芯片猎杀高速缓存和具有大容量的芯片猎杀缓冲器来快速生成大量的芯片猎杀奇偶校验值。
虽然已经针对特定实施例描述了本发明,但是对于本领域技术人员而言显而易见的是,在不脱离所附的权利要求书限定的本发明的精神和范围的情况下,可以进行各种改变和修改。
Claims (20)
1.一种存储器系统,包括:
存储器装置;
写入缓冲器,缓冲第一主机数据和第二主机数据;
芯片猎杀高速缓存,高速缓存所述第一主机数据的第一候选芯片猎杀奇偶校验值和所述第二主机数据的第二候选芯片猎杀奇偶校验值中的一个;
芯片猎杀缓冲器,当高速缓存在所述芯片猎杀高速缓存中的所述第一候选芯片猎杀奇偶校验值从所述芯片猎杀高速缓存中被逐出时,缓冲所述第一候选芯片猎杀奇偶校验值;
芯片猎杀管理器,通过对所述第一主机数据和所述第一候选芯片猎杀奇偶校验值执行XOR运算来生成第一芯片猎杀奇偶校验值,以及通过对所述第二主机数据和所述第二候选芯片猎杀奇偶校验值执行XOR运算来生成第二芯片猎杀奇偶校验值;以及
处理器,控制所述存储器装置将所述第一主机数据和所述第一芯片猎杀奇偶校验值编程到第一开放块,以及将所述第二主机数据和所述第二芯片猎杀奇偶校验值编程到第二开放块,
其中所述芯片猎杀缓冲器具有大于所述芯片猎杀高速缓存的容量的容量,并且
其中,当所述第一候选芯片猎杀奇偶校验值在所述芯片猎杀高速缓存中是高速缓存命中时,所述处理器控制所述芯片猎杀管理器从所述芯片猎杀高速缓存中读取所述第一候选芯片猎杀奇偶校验值并且更新读取的第一候选芯片猎杀奇偶校验值,以及当所述第一候选芯片猎杀奇偶校验值在所述芯片猎杀高速缓存中是高速缓存未命中时,所述处理器控制所述芯片猎杀管理器从所述芯片猎杀缓冲器中读取所述第一候选芯片猎杀奇偶校验值并且更新读取的第一候选芯片猎杀奇偶校验值。
2.根据权利要求1所述的存储器系统,其中当缓冲在所述写入缓冲器中的所述第一主机数据的大小达到设定写入条带单元时,所述处理器控制所述存储器装置将所述第一主机数据编程在所述第一开放块中。
3.根据权利要求2所述的存储器系统,其中所述写入条带单元是位于超级存储块的相同索引处的页面的大小的总和。
4.根据权利要求2所述的存储器系统,其中,在对所述第一开放块执行编程操作的同时,所述处理器确定所述第一主机数据是高速缓存命中还是高速缓存未命中,并且
所述高速缓存命中包括所述第一候选芯片猎杀奇偶校验值被高速缓存在所述芯片猎杀高速缓存中的情况。
5.根据权利要求4所述的存储器系统,其中所述高速缓存未命中包括所述第二候选芯片猎杀奇偶校验值被高速缓存在所述芯片猎杀高速缓存中的情况。
6.根据权利要求5所述的存储器系统,其中当高速缓存的所述第二候选芯片猎杀奇偶校验值是脏的并且在所述芯片猎杀高速缓存中没有剩余空间时,所述处理器将所述第二候选芯片猎杀奇偶校验值从所述芯片猎杀高速缓存逐出并且将逐出的所述第二候选芯片猎杀奇偶校验值写入所述芯片猎杀缓冲器。
7.根据权利要求5所述的存储器系统,其中当高速缓存的所述第二候选芯片猎杀奇偶校验值是干净的时,所述处理器从所述芯片猎杀高速缓存中删除所述第二候选芯片猎杀奇偶校验值。
8.根据权利要求2所述的存储器系统,其中当所述第一主机数据包括第一数据和第二数据并且所述第一数据包括所述第一开放块的起始数据时,
所述处理器控制所述芯片猎杀管理器将所述第一数据高速缓存在所述芯片猎杀高速缓存中,并且将通过对所述第一数据和所述第二数据执行XOR运算所生成的所述第一候选芯片猎杀奇偶校验值高速缓存在所述芯片猎杀高速缓存中。
9.根据权利要求8所述的存储器系统,其中当所述第二数据包括最后数据时,
所述处理器控制所述存储器装置将通过对高速缓存在所述芯片猎杀高速缓存中的所述第一候选芯片猎杀奇偶校验值和所述第二数据执行XOR运算而生成的所述第一芯片猎杀奇偶校验值编程到所述第一开放块中。
10.根据权利要求9所述的存储器系统,其中除了所述第一芯片猎杀奇偶校验值以外,所述起始数据被编程到所述第一开放块的第一页面中,并且
所述最后数据被编程到所述第一开放块的最后页面中。
11.一种存储器系统的操作方法,所述方法包括:
将第一主机数据和第二主机数据缓冲在写入缓冲器中;
将所述第一主机数据的第一候选芯片猎杀奇偶校验值和所述第二主机数据的第二候选芯片猎杀奇偶校验值中的一个分别高速缓存在芯片猎杀高速缓存中;
当高速缓存在所述芯片猎杀高速缓存中的所述第一候选芯片猎杀奇偶校验值从所述芯片猎杀高速缓存中被逐出时,将所述第一候选芯片猎杀奇偶校验值缓冲到芯片猎杀缓冲器中;
通过对所述第一主机数据和所述第一候选芯片猎杀奇偶校验值执行XOR运算来生成所述第一芯片猎杀奇偶校验值,以及通过对所述第二主机数据和所述第二候选芯片猎杀奇偶校验值执行XOR运算来生成所述第二芯片猎杀奇偶校验值;以及
将所述第一主机数据和所述第一芯片猎杀奇偶校验值编程到第一开放块,并且将所述第二主机数据和所述第二芯片猎杀奇偶校验值编程到第二开放块,
其中,当所述第一候选芯片猎杀奇偶校验值在所述芯片猎杀高速缓存中是高速缓存命中时,从所述芯片猎杀高速缓存读取所述第一候选芯片猎杀奇偶校验值并进行更新,以及当所述第一候选芯片猎杀奇偶校验值在所述芯片猎杀高速缓存中是高速缓存未命中时,从所述芯片猎杀缓冲器读取所述第一候选芯片猎杀奇偶校验值并进行更新,所述芯片猎杀缓冲器具有大于所述芯片猎杀高速缓存的容量的容量。
12.根据权利要求11所述的方法,进一步包括:
当缓冲在所述写入缓冲器中的所述第一主机数据的大小达到设定写入条带单元时,将所述第一主机数据编程在所述第一开放块中。
13.根据权利要求12所述的方法,其中所述写入条带单元是位于超级存储块的相同索引处的页面的大小的总和。
14.根据权利要求12所述的方法,其中所述高速缓存命中包括所述第一候选芯片猎杀奇偶校验值被高速缓存在所述芯片猎杀高速缓存中的情况。
15.根据权利要求12所述的方法,其中所述高速缓存未命中包括所述第二候选芯片猎杀奇偶校验值被高速缓存在所述芯片猎杀高速缓存中的情况。
16.根据权利要求15所述的方法,进一步包括:
当高速缓存的所述第二候选芯片猎杀奇偶校验值是脏的并且所述芯片猎杀高速缓存中没有剩余空间时,将所述第二候选芯片猎杀奇偶校验值从所述芯片猎杀高速缓存中逐出并且将逐出的所述第二候选芯片猎杀奇偶校验值写入所述芯片猎杀缓冲器。
17.根据权利要求15所述的方法,进一步包括:
当高速缓存的所述第二候选芯片猎杀奇偶校验值是干净的时,从所述芯片猎杀高速缓存中删除所述第二候选芯片猎杀奇偶校验值。
18.根据权利要求12所述的方法,进一步包括:
当所述第一主机数据包括第一数据和第二数据并且所述第一数据包括所述第一开放块的起始数据时,将所述第一数据高速缓存在所述芯片猎杀高速缓存中,并且将通过对所述第一数据和第二数据执行XOR运算生成的所述第一候选芯片猎杀奇偶校验值高速缓存在所述芯片猎杀高速缓存中。
19.根据权利要求18所述的方法,进一步包括:
当所述第二数据包括最后数据时,将通过对高速缓存在所述芯片猎杀高速缓存中的所述第一候选芯片猎杀奇偶校验值和所述第二数据执行XOR运算而生成的所述第一芯片猎杀奇偶校验值编程到所述第一开放块中。
20.根据权利要求19所述的方法,其中除了所述第一芯片猎杀奇偶校验值以外,所述起始数据被编程到所述第一开放块的第一页面中,并且
所述最后数据被编程到所述第一开放块的最后页面中。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2019-0067805 | 2019-06-10 | ||
KR1020190067805A KR20200141172A (ko) | 2019-06-10 | 2019-06-10 | 메모리 시스템 및 그것의 동작방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112068983A true CN112068983A (zh) | 2020-12-11 |
CN112068983B CN112068983B (zh) | 2024-07-23 |
Family
ID=73650581
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911300115.1A Active CN112068983B (zh) | 2019-06-10 | 2019-12-16 | 存储器系统及其操作方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11126545B2 (zh) |
KR (1) | KR20200141172A (zh) |
CN (1) | CN112068983B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030236943A1 (en) * | 2002-06-24 | 2003-12-25 | Delaney William P. | Method and systems for flyby raid parity generation |
CN1834943A (zh) * | 2005-03-14 | 2006-09-20 | 富士通株式会社 | 存储系统及其控制方法和程序 |
CN102103552A (zh) * | 2009-12-22 | 2011-06-22 | Nxp股份有限公司 | 安全高速缓存存储器架构 |
CN104508644A (zh) * | 2012-10-30 | 2015-04-08 | 惠普发展公司,有限责任合伙企业 | 智能存储器缓冲器 |
US20180129430A1 (en) * | 2016-11-08 | 2018-05-10 | Sk Hynix Memory Solutions Inc. | Cyclically interleaved xor array for error recovery |
CN109840158A (zh) * | 2017-11-29 | 2019-06-04 | 爱思开海力士有限公司 | 存储器和操作该存储器的方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6334168B1 (en) * | 1999-02-19 | 2001-12-25 | International Business Machines Corporation | Method and system for updating data in a data storage system |
KR101023877B1 (ko) | 2009-04-17 | 2011-03-22 | (주)인디링스 | 캐시 및 디스크 관리 방법 및 상기 방법을 이용한 컨트롤러 |
KR102585871B1 (ko) | 2016-02-26 | 2023-10-10 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그것의 동작 방법 |
US11055174B2 (en) * | 2018-12-31 | 2021-07-06 | SK Hynix Inc. | Soft chipkill recovery for bitline failures |
-
2019
- 2019-06-10 KR KR1020190067805A patent/KR20200141172A/ko active Search and Examination
- 2019-12-16 CN CN201911300115.1A patent/CN112068983B/zh active Active
- 2019-12-18 US US16/718,946 patent/US11126545B2/en active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030236943A1 (en) * | 2002-06-24 | 2003-12-25 | Delaney William P. | Method and systems for flyby raid parity generation |
CN1834943A (zh) * | 2005-03-14 | 2006-09-20 | 富士通株式会社 | 存储系统及其控制方法和程序 |
CN102103552A (zh) * | 2009-12-22 | 2011-06-22 | Nxp股份有限公司 | 安全高速缓存存储器架构 |
CN104508644A (zh) * | 2012-10-30 | 2015-04-08 | 惠普发展公司,有限责任合伙企业 | 智能存储器缓冲器 |
US20180129430A1 (en) * | 2016-11-08 | 2018-05-10 | Sk Hynix Memory Solutions Inc. | Cyclically interleaved xor array for error recovery |
CN109840158A (zh) * | 2017-11-29 | 2019-06-04 | 爱思开海力士有限公司 | 存储器和操作该存储器的方法 |
Also Published As
Publication number | Publication date |
---|---|
KR20200141172A (ko) | 2020-12-18 |
US20200387446A1 (en) | 2020-12-10 |
CN112068983B (zh) | 2024-07-23 |
US11126545B2 (en) | 2021-09-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107766257B (zh) | 存储器系统及其操作方法 | |
CN107229577B (zh) | 存储系统及其操作方法 | |
CN110765035B (zh) | 存储器系统及其操作方法 | |
US10102146B2 (en) | Memory system and operating method for improving rebuild efficiency | |
CN109671465B (zh) | 具有自适应读取阈值方案的存储器系统及其操作方法 | |
KR102615593B1 (ko) | 메모리 시스템 및 메모리 시스템의 동작 방법 | |
US20180090184A1 (en) | Apparatus and method for controlling memory | |
CN106257594B (zh) | 读取干扰收回策略 | |
KR102468751B1 (ko) | 메모리 시스템 및 메모리 시스템의 동작 방법 | |
CN110442529B (zh) | 可配置的存储器系统及配置和使用该存储器系统的方法 | |
KR102553170B1 (ko) | 메모리 시스템 및 메모리 시스템의 동작 방법 | |
CN110765029B (zh) | 控制器及用于操作该控制器的方法 | |
CN110781095A (zh) | 控制器及其操作方法 | |
KR20200032463A (ko) | 메모리 시스템 혹은 데이터 처리 시스템의 동작을 진단하는 장치 혹은 진단을 통해 신뢰성을 확보하는 방법 | |
CN110750380B (zh) | 具有奇偶校验高速缓存方案的存储器系统以及操作方法 | |
CN109800178B (zh) | 垃圾收集方法以及用于混合地址映射的存储器系统 | |
CN110825316A (zh) | 控制器及该控制器的操作方法 | |
KR20180027806A (ko) | 컨트롤러, 메모리 시스템 및 그의 동작 방법 | |
CN110277124B (zh) | 具有混合解码方案的存储器系统及其操作方法 | |
CN109918315B (zh) | 存储器系统及存储器系统的操作方法 | |
CN111755061A (zh) | 检查存储器系统中的存储器装置的操作状态的设备及方法 | |
CN111858390A (zh) | 存储器系统和操作存储器系统的方法 | |
KR20190001300A (ko) | 컨트롤러 및 메모리 시스템 및 메모리 시스템의 동작 방법 | |
US11538547B2 (en) | Systems and methods for read error recovery | |
US20190205249A1 (en) | Controller, operating method thereof and data processing system including the controller |
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 |