CN112748870A - 存储器系统、存储器控制器及操作存储器控制器的方法 - Google Patents
存储器系统、存储器控制器及操作存储器控制器的方法 Download PDFInfo
- Publication number
- CN112748870A CN112748870A CN202010501794.5A CN202010501794A CN112748870A CN 112748870 A CN112748870 A CN 112748870A CN 202010501794 A CN202010501794 A CN 202010501794A CN 112748870 A CN112748870 A CN 112748870A
- Authority
- CN
- China
- Prior art keywords
- parity
- memory
- data
- block
- blocks
- 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.)
- Withdrawn
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/1004—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
-
- 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/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
- 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
- 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
- G06F11/1068—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 sector programmable memories, e.g. flash disk
-
- 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/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0647—Migration mechanisms
-
- 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/0658—Controller construction arrangements
-
- 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/0683—Plurality of storage devices
- G06F3/0688—Non-volatile semiconductor memory arrays
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Quality & Reliability (AREA)
- Computer Security & Cryptography (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本申请涉及一种存储器系统、存储器控制器及其操作方法,其中设置多个超级存储块,计算存储在第一超级存储块中的数据的奇偶校验,将所计算的奇偶校验存储在奇偶校验缓冲器中,并且将存储在奇偶校验缓冲器中的奇偶校验写入到存储器装置中包括的多个奇偶校验块中的一个。因此,可解决由于计算奇偶校验的时间而延迟向存储器装置写入数据的时间的问题,并且高效地管理存储在存储器装置中的奇偶校验。
Description
相关申请的交叉引用
本申请要求于2019年10月29日提交的申请号为10-2019-0135001的韩国专利申请的优先权,其通过引用整体并入本文。
技术领域
各个实施例涉及一种存储器系统、存储器控制器以及操作存储器控制器的方法。
背景技术
与存储装置相对应的存储器系统是基于来自诸如以下的主机的请求而存储数据的装置:计算机、诸如智能电话或平板PC的移动终端或各种电子装置。存储器系统不仅可包括将数据存储在磁盘中的装置,诸如硬盘驱动器(HDD),还可包括将数据存储在非易失性存储器中的装置,诸如固态驱动器(SSD)、通用闪存(UFS)装置或嵌入式MMC(eMMC)。
存储器系统可进一步包括用于控制存储器装置(例如,易失性存储器或非易失性存储器)的存储器控制器,并且存储器控制器可接收来自主机的命令,并且可基于所接收的命令来针对存储器装置运行或控制读取、写入或擦除存储器装置中包括的数据的操作。然后,存储器控制器可驱动用于执行逻辑操作的固件,以运行或控制这些操作。
同时,当向存储器装置写入数据时,存储器系统可检查数据中是否出现错误,并且当数据中出现错误时,存储器系统可写入奇偶校验,奇偶校验用于将数据恢复到存储器装置出现错误之前的状态。
发明内容
实施例可提供一种能够解决由于计算奇偶校验的时间而延迟将数据写入存储器装置的时间的问题的存储器系统、存储器控制器以及操作存储器控制器的方法。
此外,实施例可提供一种能够高效地管理存储在存储器装置中的奇偶校验的存储器系统、存储器控制器以及操作存储器控制器的方法。
在一方面,实施例可提供一种存储器系统,包括:多个存储器管芯,每个存储器管芯包括多个存储块中的至少一个;以及存储器控制器,被配置成控制多个存储器管芯。
存储器控制器可从多个存储块中设置多个超级存储块。
存储器控制器可计算作为多个子数据而存储在多个超级存储块中的选择的第一超级存储块中的数据的第一奇偶校验,第一奇偶校验的大小等于子数据的大小。
在这种情况下,第一奇偶校验的第I位的值可以是通过对多个子数据的各自子数据的第I位的值执行XOR运算而获得的值,其中I是自然数。
存储器控制器可将第一奇偶校验存储在被配置成存储一个或多个奇偶校验的奇偶校验缓冲器中。
当存储在奇偶校验缓冲器中的奇偶校验的数量等于或大于第一设定值时,存储器控制器可将存储在奇偶校验缓冲器中的第一奇偶校验写入被配置成存储奇偶校验的多个奇偶校验块中的第一奇偶校验块。
在这种情况下,多个奇偶校验块中的每一个可以是多个超级存储块中的一个,第一奇偶校验块可以是多个超级存储块之中的不同于第一超级存储块的第二超级存储块。
存储器控制器可设置包括奇偶校验映射条目组的奇偶校验映射。在这种情况下,每个奇偶校验映射条目可指示奇偶校验在奇偶校验块中的位置和相应数据在超级存储块中的位置。
在将第一奇偶校验写入第一奇偶校验块之后,存储器控制器可更新奇偶校验映射条目组之中的与第一奇偶校验相对应的奇偶校验映射条目。
存储器控制器可设置包括标志信息的有效奇偶校验表,该标志信息指示与奇偶校验映射中包括的每个奇偶校验映射条目相对应的奇偶校验是否有效。此外,存储器控制器可更新有效奇偶校验表中的、与第一奇偶校验相对应的标志信息。
当多个子数据中的第一子数据中出现不可校正ECC(UECC)时,存储器控制器可基于i)第一奇偶校验和ii)多个子数据之中的除了第一子数据之外的其余子数据来恢复第一子数据。
存储器控制器通过对第一奇偶校验的第I位的值和多个子数据之中的除了第一子数据之外的其余子数据的第I位的值执行XOR运算来恢复第一子数据的第I位的值,其中I是自然数。
当多个奇偶校验块之中的空闲奇偶校验块的数量等于或小于第二设定值时,存储器控制器可将多个奇偶校验块之中的至少一个牺牲奇偶校验块中存储的奇偶校验之中的有效奇偶校验迁移到多个奇偶校验块中的目标奇偶校验块。
存储器控制器可通过基于多个奇偶校验块中的每一个中存储的奇偶校验之中的无效奇偶校验的数量选择牺牲奇偶校验块,来迁移有效奇偶校验。
在将存储在牺牲奇偶校验块中的奇偶校验之中的有效奇偶校验迁移到目标奇偶校验块之后,存储器控制器可擦除牺牲奇偶校验块。
在另一方面,实施例可提供一种包括控制电路的存储器控制器,控制电路用于控制多个存储器管芯,每个存储器管芯包括多个存储块中的至少一个。
控制电路可从多个存储块中设置多个超级存储块。
控制电路可计算作为多个子数据而存储在多个超级存储块中的选择的第一超级存储块中的数据的第一奇偶校验,第一奇偶校验的大小等于子数据的大小。
在这种情况下,第一奇偶校验的第I位的值可以是通过对多个子数据的各自第I位的值执行XOR运算而获得的值,其中I是自然数。
控制电路可将第一奇偶校验存储在被配置成存储一个或多个奇偶校验的奇偶校验缓冲器中。
当存储在奇偶校验缓冲器中的奇偶校验的数量等于或大于第一设定值时,控制电路可将存储在奇偶校验缓冲器中的第一奇偶校验写入被配置成存储奇偶校验的多个奇偶校验块中的第一奇偶校验块。
一种操作存储器控制器的方法可包括从多个存储块中设置多个超级存储块的步骤。
该操作存储器控制器的方法可包括计算作为多个子数据而存储在多个超级存储块中的第一超级存储块中的数据的第一奇偶校验的步骤,第一奇偶校验的大小等于子数据的大小。
该操作存储器控制器的方法可包括将第一奇偶校验存储在被配置成存储一个或多个奇偶校验的奇偶校验缓冲器中的步骤。
该操作存储器控制器的方法可包括当存储在奇偶校验缓冲器中的奇偶校验块的数量等于或大于第一设定值时,将存储在奇偶校验缓冲器中的第一奇偶校验写入被配置成存储奇偶校验的多个奇偶校验块之中的第一奇偶校验块的步骤。
在一方面,实施例可提供一种存储器系统,该存储器系统包括存储器装置、奇偶校验缓冲器和控制器,其中该存储器装置包括存储器区域组和奇偶校验区域。
控制器可控制存储器装置以将数据存储到存储器区域组中,同时生成数据的奇偶校验并且将该奇偶校验缓冲到奇偶校验缓冲器中。
控制器可控制存储器装置将所缓冲的奇偶校验存储到奇偶校验区域中。
根据实施例,可解决由于计算奇偶校验的时间而延迟将数据写入存储器装置的时间的问题。
此外,根据实施例,可高效地管理存储在存储器装置中的奇偶校验。
附图说明
下文结合附图的详细描述将更清楚地表明本公开的上述和其它方面、特征和优点,在附图中:
图1是示例性地示出根据本公开的各个实施例的存储器系统的配置的示图;
图2是示例性地示出根据本公开的各个实施例的存储器装置的框图;
图3是示例性地示出根据本公开的各个实施例的存储器装置的每个存储块的视图;
图4是示出根据本公开的各个实施例的存储器装置中的字线WL和位线BL的结构的示图;
图5是示出根据本公开的各个实施例的在存储器系统中设置超级存储块的示例性操作的示图;
图6是示出根据本公开的各个实施例的将数据和奇偶校验存储在存储器系统中的示例性操作的示图;
图7是示出根据本公开的各个实施例的将数据和奇偶校验存储在存储器系统中的另一示例性操作的示图;
图8是示出根据本公开的各个实施例的存储器系统将存储在图7的奇偶校验缓冲器中的第一奇偶校验写入存储器装置的操作的示图;
图9是示出根据本公开的各个实施例的存储器系统将存储在图7的奇偶校验缓冲器中的第一奇偶校验写入超级存储块中的一个的操作的示图;
图10是示出根据本公开的各个实施例的在存储器系统中设置的奇偶校验映射的示图;
图11是示出根据本公开的各个实施例的在存储器系统中设置的有效奇偶校验表的示图;
图12是示出根据本公开的各个实施例的存储器系统100的超级存储块SBLK中存储的数据中的一个子数据中出现不可校正ECC(UECC)的示图;
图13是示出根据本公开的各个实施例的存储器系统恢复图12中的出现UECC的第一子数据的操作的示图;
图14是示出根据本公开的各个实施例的存储器系统恢复出现UECC的第一子数据的操作的示图;
图15是示出根据本公开的各个实施例的存储器系统中的奇偶校验块的状态的示图;
图16是示出根据本公开的各个实施例的存储器系统选择牺牲奇偶校验块和目标奇偶校验块的操作的示图;
图17是示出根据本公开的各个实施例的在存储器系统中的多个奇偶校验块之中选择牺牲奇偶校验块的示例的示图;
图18是示出根据本公开的各个实施例的将在存储器系统中的牺牲奇偶校验块中存储的奇偶校验迁移到目标奇偶校验块的操作的示图;
图19是示出根据本公开的各个实施例的在存储器系统中擦除牺牲奇偶校验块的操作的示图;
图20是示出根据本公开的各个实施例的操作存储器控制器的方法的流程图;以及
图21是示意性地示出根据本公开的实施例的计算系统的配置的示图。
具体实施方式
在下文中,将参照附图详细地描述实施例。
图1是示例性地示出根据本公开的各个实施例的存储器系统100的配置的示图。
参照图1,例如,存储器系统100可包括被配置成存储数据的存储器装置110和被配置成控制存储器装置110的存储器控制器120。
存储器装置110包括多个存储块,并且响应于存储器控制器120的控制来操作。此处,例如,存储器装置110的操作可包括读取操作、编程操作(也称为“写入操作”)和擦除操作。
存储器装置110可包括存储器单元阵列,存储器单元阵列包括用于存储数据的多个存储器单元(也简称为“单元”)。这种存储器单元阵列可存在于存储块中。
例如,存储器装置110可使用例如双倍数据速率同步动态随机存取存储器(DDRSDRAM)、低功率双倍数据速率4(LPDDR4)SDRAM、图形双倍数据速率(GDDR)SDRAM、低功率DDR(LPDDR)、Rambus动态随机存取存储器(RDRAM)、NAND闪速存储器,3D NAND闪速存储器、NOR闪速存储器、电阻式随机存取存储器(RRAM)、相变随机存取存储器(PRAM)、磁阻随机存取存储器(MRAM)、铁电随机存取存储器(FRAM)或自旋转移力矩随机存取存储器(STT-RAM)而实施为各种类型。
此外,存储器装置110可以以三维阵列结构来实施。这些实施例不仅适用于由导电浮栅来形成电荷存储层的闪速存储器装置,还适用于由绝缘膜来形成电荷存储层的电荷撷取闪存(CTF)。
存储器装置110被配置成从存储器控制器120接收例如命令和地址,并且访问存储器单元阵列中的由地址选择的区域。也就是说,存储器装置110可对由地址选择的区域执行与命令相对应的操作。
例如,存储器装置110可执行例如编程操作、读取操作或擦除操作。在这方面,在编程操作期间,存储器装置110将数据编程在由地址选择的区域中。在读取操作期间,存储器装置110将从由地址选择的区域读取数据。在擦除操作期间,存储器装置110将从由地址选择的区域擦除数据。
存储器控制器120可控制对存储器装置110的写入(编程)操作、读取操作、擦除操作和后台操作。此处,例如,后台操作可包括垃圾收集(GC)操作、损耗均衡(WL)操作或坏块管理(BBM)操作中的至少一个。
存储器控制器120可根据来自主机(HOST)的请求来控制存储器装置110的操作。可选地,存储器控制器120可控制存储器装置110的操作,而不考虑来自主机(HOST)的请求。
此外,存储器控制器120和主机(HOST)可以是分开的装置。在一些情况下,存储器控制器120和主机(HOST)可合并到并且实施为单个装置。在下文中,为了便于描述,将描述存储器控制器120和主机(HOST)是相互分开的装置的示例。
参照图1,例如,存储器控制器120可包括存储器接口122和控制电路123,并且可进一步包括例如主机接口121。
主机接口121提供用于与主机(HOST)通信的接口。
当接收来自主机(HOST)的命令时,控制电路123可经由主机接口121来接收命令,并且可执行处理所接收命令的操作。
存储器接口122连接到存储器装置110以提供用于与存储器装置110通信的接口。也就是说,存储器接口122可被配置成响应于控制电路123的控制来提供在存储器装置110和存储器控制器120之间的接口。
控制电路123通过执行存储器控制器120的全部控制操作来控制存储器装置110的操作。为此,例如,控制电路123可包括例如处理器124和工作存储器125中的一个或多个。在一些情况下,控制电路123可进一步包括例如错误检测和校正电路(ECC电路)126。
处理器124可控制存储器控制器120的全部操作并且执行逻辑操作。处理器124可经由主机接口121与主机(HOST)通信,并且可经由存储器接口122与存储器装置110通信。
处理器124可执行闪存转换层(FTL)的功能。处理器124可经由闪存转换层(FTL)将由主机提供的逻辑块地址(LBA)转换为物理块地址(PBA)。闪存转换层FTL可接收逻辑块地址(LBA),并且可使用映射表来将逻辑块地址LBA转换为物理块地址(PBA)。
根据映射单元,存在几种闪存转换层的地址映射方法。代表性的地址映射方法包括页面映射方法、块映射方法和混合映射方法。
处理器124被配置成随机化从主机(HOST)接收的数据。例如,处理器124将使用随机化种子来随机化从主机(HOST)接收的数据。将经随机化的数据作为待存储的数据而提供到存储器装置110,并且编程到存储器单元阵列中。
处理器124被配置成在读取操作期间使从存储器装置110接收的数据去随机化。例如,处理器124将使用去随机化种子来使从存储器装置110接收的数据去随机化。将经去随机化的数据输出到主机(HOST)。
处理器124可通过运行固件来控制存储器控制器120的操作。换言之,处理器124可在启动时运行(驱动)加载在工作存储器125中的固件,以控制存储器控制器120的全部操作并且执行逻辑操作。
固件是在存储器系统100中运行的程序,并且可包括各种功能层。
例如,固件可包括闪存转换层(FTL)、主机接口层(HIL)和闪存接口层(FIL)中的至少一个,其中闪存转换层(FTL)用于主机(HOST)从存储器系统100请求的逻辑地址和存储器装置110的物理地址之间的转换,主机接口层(HIL)解释主机(HOST)从作为存储装置的存储器系统100请求的命令并且将命令传送到闪存转换层(FTL),闪存接口层(FIL)将由闪存转换层FTL提供的命令传送到存储器装置110。
例如,固件可存储在存储器装置110中,然后可加载到工作存储器125中。
工作存储器125可存储驱动存储器控制器120所需的固件、程序代码、命令或数据。例如,工作存储器125可包括作为易失性存储器的静态RAM(SRAM)、动态RAM(DRAM)和同步DRAM(SDRAM)中的至少一个。
错误检测和校正电路126可被配置成使用错误校正码来检测待检查的数据的错误位并且校正检测到的错误位。此处,例如,待检查的数据可以是存储在工作存储器125中的数据或从存储器装置110读取的数据。
错误检测和校正电路126可被实施以使用错误校正码来解码数据。错误检测和校正电路126可利用各种编码解码器来实施。例如,可使用执行非系统编码解码的解码器或执行系统编码解码的解码器。
例如,错误检测和校正电路126可以以扇区为单位来检测每个读取数据中的错误位。也就是说,每个读取数据可由多个扇区组成。扇区可以表示小于页面的数据单元,其中页面是闪速存储器的读取单位。构成每个读取数据的扇区可经由地址而彼此对应。
错误检测和校正电路126可计算位错误率(BER),并且可以扇区为单位来确定是否可进行校正。例如,当位错误率(BER)高于参考值时,错误检测和校正电路126将相应扇区确定为不可校正或失败。相反,当位错误率(BER)低于参考值时,将相应扇区确定为可校正或通过。
错误检测和校正电路126可对所有读取数据顺序地执行错误检测和校正操作。当包括在读取数据中的扇区为可校正时,错误检测和校正电路126可省略针对下一读取数据的相应扇区的错误检测和校正操作。当以这种方式完成了对所有读取数据的错误检测和校正操作时,错误检测和校正电路126可检测被确定为不可校正的扇区,直到结束为止。可能存在一个或多个区段被确定为不可校正。错误检测和校正电路126可向处理器124传送关于被确定为不可校正的扇区的信息(例如,地址信息)。
总线127可被配置成在存储器控制器120的组件121、122、124、125和126之间提供通道。例如,总线127可包括用于传送例如各种控制信号和命令的控制总线以及用于传输各种数据的数据总线。
存储器控制器120的上述组件121、122、124、125和126仅是示例。可将存储器控制器120的上述组件121、122、124、125和126中的一些删除,或者可将存储器控制器120的上述组件121、122、124和125中的一些集成为一个组件。在一些情况下,可将一个或多个其它组件添加到存储器控制器120的上述组件中。
在下文中,将参照图2更详细地描述存储器装置110。
图2是示例性地示出根据本公开的各个实施例的存储器装置110的框图。
参照图2,例如,根据示例性实施例的存储器装置110可包括存储器单元阵列210、地址解码器220、读取和写入电路230、控制逻辑240和电压生成电路250。
存储器单元阵列210可包括多个存储块BLK1至BLKz(其中z是2或更大的自然数)。
在多个存储块BLK1至BLKz中,可设置多个字线WL和多个位线BL,并且可布置多个存储器单元MC。
多个存储块BLK1至BLKz可经由多个字线WL连接到地址解码器220。多个存储块BLK1至BLKz可经由多个位线BL连接到读取和写入电路230。
多个存储块BLK1至BLKz中的每一个可包括多个存储器单元。例如,多个存储器单元是非易失性存储器单元,并且可由具有垂直沟道结构的非易失性存储器单元组成。
存储器单元阵列210可被配置成具有二维结构的存储器单元阵列,并且在一些情况下,可被配置成具有三维结构的存储器单元阵列。
此外,存储器单元阵列210中包括的多个存储器单元中的每一个可存储至少1位数据。作为示例,存储器单元阵列210中包括的多个存储器单元中的每一个可以是存储1位数据的单层单元(SLC)。作为另一示例,存储器单元阵列210中包括的多个存储器单元中的每一个可以是存储2位数据的多层单元(MLC)。作为又一示例,存储器单元阵列210中包括的多个存储器单元中的每一个可以是存储3位数据的三层单元(TLC)。作为又一示例,存储器单元阵列210中包括的多个存储器单元中的每一个可以是存储4位数据的四层单元(QLC)。作为又一示例,存储器单元阵列210可包括每个存储器单元存储五位或更多位数据的多个存储器单元。
参照图2,例如,地址解码器220、读取和写入电路230、控制逻辑240和电压生成电路250可作为驱动存储器单元阵列210的外围电路来操作。
地址解码器220可经由多个字线WL连接到存储器单元阵列210。
地址解码器220可被配置成响应于控制逻辑240的控制来操作。
地址解码器220可经由存储器装置110内的输入/输出缓冲器来接收地址。地址解码器220可被配置成对所接收地址之中的块地址进行解码。地址解码器220可根据经解码的块地址来选择至少一个存储块。
地址解码器220可从电压生成电路250接收读取电压Vread和通过电压Vpass。
在读取操作中的读取电压施加操作期间,地址解码器220可将读取电压Vread施加到所选择存储块中的所选择字线WL,并且可将通过电压Vpass施加到其余的未选择字线WL。
在编程验证操作期间,地址解码器220可将由电压生成电路250生成的验证电压施加到所选择存储块中的所选择字线WL,并且可将通过电压Vpass施加到其余的未选择字线WL。
地址解码器220可被配置成对所接收地址之中的列地址进行解码。地址解码器220可将经解码的列地址传送到读取和写入电路230。
存储器装置110的读取操作和编程操作可以以页面单位来执行。请求读取操作和编程操作时接收的地址可包括块地址、行地址和列地址中的一个或多个。
地址解码器220可根据块地址和行地址来选择一个存储块和一个字线。列地址可由地址解码器220解码,并且可将经解码的列地址提供到读取和写入电路230。
例如,地址解码器220可包括块解码器、行解码器、列解码器和地址缓冲器中的一个或多个。
读取和写入电路230可包括多个页面缓冲器PB。读取和写入电路230可在存储器单元阵列210的读取操作期间作为“读取电路”来操作,并且可在写入操作期间作为“写入电路”来操作。
上述的读取和写入电路230也可被称为包括多个页面缓冲器PB的页面缓冲器电路或数据寄存器电路。此处,读取和写入电路230可包括用于数据处理功能的数据缓冲器,并且在一些情况下,可进一步包括用于高速缓存功能的高速缓存缓冲器。
多个页面缓冲器PB可经由多个位线BL连接到存储器单元阵列210。在读取操作和编程验证操作期间,为了感测存储器单元的阈值电压Vth,在连续地向连接到存储器单元的位线BL提供感测电流的同时,多个页面缓冲器PB可通过感测节点来感测根据相应存储器单元的编程状态而流动的电流量,并且可将所感测的电流量锁存为感测数据。
读取和写入电路230可响应于从控制逻辑240输出的页面缓冲器控制信号来操作。
在读取操作期间,读取和写入电路230感测存储器单元的数据,临时存储读取数据,然后将数据(DATA)输出到存储器装置110的输入/输出缓冲器。在示例性实施例中,除了页面缓冲器PB或页面寄存器之外,读取和写入电路230还可包括例如列选择电路。
例如,控制逻辑240可连接到地址解码器220、读取和写入电路230和电压生成电路250。控制逻辑240可经由存储器装置110的输入/输出缓冲器来接收命令信号CMD和控制信号CTRL。
控制逻辑240可被配置成响应于控制信号CTRL来控制存储器装置110的全部操作。控制逻辑240可输出用于调整多个页面缓冲器PB的感测节点的预充电电势电平的控制信号。
控制逻辑240可控制读取和写入电路230来执行存储器单元阵列210的读取操作。电压生成电路250可响应于从控制逻辑240输出的电压生成电路的控制信号来生成在读取操作中使用的读取电压Vread和通过电压Vpass。
图3是示例性地示出根据本公开的各个实施例的存储器装置110的每个存储块的示图。
参照图3,存储器装置110中包括的存储块BLK可以配置为多个页面PG和多个串STR,该多个页面PG和多个串STR以彼此交叉的方向来设置。
多个页面PG对应于多个字线WL,并且多个串STR对应于多个位线BL。
在存储块BLK中,多个字线WL和多个位线BL可设置成彼此交叉。例如,多个字线WL中的每一个可设置在行方向上,并且多个位线BL中的每一个可设置在列方向上。例如,多个字线WL中的每一个可设置在列方向上,多个位线BL中的每一个可设置在行方向上。
将多个字线WL和多个位线BL彼此交叉以定义多个存储器单元MC。晶体管TR可设置在每个存储器单元MC中。
例如,设置在每个存储器单元MC中的晶体管TR可包括例如漏极、源极和栅极。晶体管TR的漏极(或源极)可直接地或经由另一晶体管TR连接到相应的位线BL。晶体管TR的漏极(或源极)可直接地或经由另一晶体管TR连接到源极线(或接地)。晶体管TR的栅极可包括由绝缘体包围的浮置栅极(FG)和从字线WL向其施加栅极电压的控制栅极(CG)。
在多个存储块BLK1至BLKz中的每一个中,第一选择线(也称为源极选择线或漏极选择线)可进一步设置在两个最外侧字线之中的更靠近读取和写入电路230的第一最外侧字线的外部,第二选择线(也称为漏极选择线或源极选择线)可进一步设置在另一第二最外侧字线的外部。
在一些情况下,一个或多个虚设字线可进一步设置在第一最外侧字线和第一选择线之间。此外,一个或多个虚设字线可进一步设置在第二最外侧字线和第二选择线之间。
当具有如图3所示的存储块结构时,读取操作和编程操作(写入操作)可以以页面为单位来执行,擦除操作可以以存储块为单位来执行。
图4是示出根据本公开的各个实施例的存储器装置110的字线WL和位线BL的结构的示图。
参照图2和图4,在存储器装置110中,存在核心区域和辅助区域,其中存储器单元MC位于核心区域,辅助区域对应于除了核心区域之外的其余区域并且支持存储器单元阵列210的操作。
核心区域可包括页面PG和串STR。在核心区域中,多个字线WL1至WL9和多个位线BL设置为彼此交叉。
多个字线WL1至WL9可连接到行解码器410,多个位线BL可连接到列解码器420。与读取和写入电路230相对应的数据寄存器430可存在于多个位线BL和列解码器420之间。
多个字线WL1至WL9对应于多个页面PG。
例如,如图4所示,多个字线WL1至WL9中的每一个可对应于一个页面PG。可选地,当多个字线WL1至WL9中的每一个的大小较大时,多个字线WL1至WL9中的每一个可对应于两个或更多个(例如,两个或四个)页面PG。页面PG是执行编程操作和读取操作的最小单位。在编程操作和读取操作中,相同页面PG中的所有存储器单元MC可同时执行操作。
可在奇数位线BL和偶数位线BL被彼此区分开的状态下,将多个位线BL连接到列解码器420。
为了访问存储器单元MC,首先,可经由输入/输出端子通过行解码器410和列解码器420将地址输入核心区域,并且可指定目标存储器单元。“指定目标存储器单元”表示访问位于连接到行解码器410的字线WL1至WL9和连接到列解码器420的位线彼此交叉的位置处的存储器单元MC,以将数据编程到存储器单元MC或从存储器单元MC读取经编程的数据。
第一方向(例如,X轴方向)上的页面PG被捆束到称为字线WL的公共使用线,第二方向(例如,Y轴方向)上的串STR也被捆束(连接)到称为位线BL的公共线。“捆束到公共线”表示使用相同的材料将页面或串在结构上连接,并且当向它们施加电压时,同时地施加相同的电压。在串联连接的存储器单元MC中,位于中间位置的存储器单元MC或位于最后位置的存储器单元MC受到先前存储器单元MC的电压降的影响,因此施加到第一存储器单元MC的电压和施加到最后存储器单元MC的电压可能略有不同。
因为在存储器装置110的所有数据处理中,经由数据寄存器430来编程和读取数据,因此数据寄存器430起到关键作用。当数据寄存器430的数据处理延迟时,所有其它区域应当等待直到数据寄存器430完成数据处理。此外,当数据寄存器430的性能劣化时,存储器装置110的整体性能可能劣化。
参照图4的示例,在一个串STR中,可存在连接到多个字线WL1至WL9的多个晶体管TR1至TR9。存在多个晶体管TR1至TR9的区域对应于存储器单元MC。此处,如上文所述,多个晶体管TR1至TR9是每个包括控制栅极CG和浮置栅极FG的晶体管。
多个字线WL1至WL9包括两个最外侧字线WL1和WL9。第一选择线DSL可进一步设置在第一最外侧字线WL1的外部。就信号路径而言,在两个最外侧字线WL1和WL9之中的第一最外侧字线WL1更接近数据寄存器430,并且第二选择线SSL可进一步设置在另一第二最外侧字线WL9的外部。
由第一选择线DSL控制导通-关断(ON-OFF)的第一选择晶体管D-TR是仅具有连接到第一选择线DSL的栅电极并且不包括浮置栅极FG的晶体管。由第二选择线SSL控制ON-OFF的第二选择晶体管S-TR是仅具有连接到第二选择线SSL的栅电极并且不包括浮置栅极FG的晶体管。
第一选择晶体管D-TR用作导通或关断相应串STR和数据寄存器430之间的连接的开关。第二选择晶体管S-TR用作导通或关断相应串STR和源极线SL之间的连接的开关。也就是说,第一选择晶体管D-TR和第二选择晶体管S-TR位于相应串STR的相对端,并且用作连接和断开信号的网守(gatekeepers)。
在编程操作期间,因为需要利用电子填充待编程的位线BL的目标存储器单元MC,所以存储器系统100向第一选择晶体管D-TR的栅电极施加预定导通电压(Vcc)以导通第一选择晶体管D-TR,并且向第二选择晶体管D-TR的栅电极施加预定关断电压(例如,0V)以关断第二选择晶体管S-TR。
在读取操作或验证操作中,存储器系统100导通第一选择晶体管D-TR和第二选择晶体管S-TR两者。因此,因为电流可经由串STR而到对应于地的源极线SL,所以可测量位线BL的电压电平。然而,在读取操作中,第一选择晶体管D-TR和第二选择晶体管S-TR的导通-关断定时之间可能存在时间差。
在擦除操作中,存储器系统100可经由源极线SL向衬底提供预定电压(例如,+20V)。在擦除操作中,存储器系统100使第一选择晶体管D-TR和第二选择晶体管S-TR两者浮置以产生无穷大电阻。因此,获得了使第一选择晶体管D-TR和第二选择晶体管S-TR不起作用的结构,并且电子可以由于仅在浮置栅极FG和衬底之间的电势差而工作。
存储器系统100可包括多个存储器管芯DIE_1、DIE_2、DIE_3至DIE_N,这些存储器管芯包括多个存储块BLK中的一个或多个。在下文中,将参考以下附图作为示例来描述多个存储器管芯DIE_1、DIE_2、DIE_3至DIE_N包括在上述存储器装置110中的情况。
图5是示出根据实施例的在存储器系统100中设置超级存储块SBLK的示例性操作的示图。
参照图5,存储器系统100中包括的存储器装置110可包括多个存储器管芯DIE_1、DIE_2、DIE_3至DIE_N。此外,多个存储器管芯DIE_1、DIE_2、DIE_3至DIE_N中的每一个可包括存储器装置110中包括的多个存储块BLK中的一个或多个。
存储器系统100中包括的存储器控制器120可从多个存储块BLK设置多个超级存储块SBLK。
例如,存储器控制器120可在多个存储块BLK中设置多个超级存储块SBLK,每个超级存储块SBLK包括多个存储块BLK之中的、不同存储器管芯中包括的各自存储块的部分。在这种情况下,多个超级存储块SBLK中的任意一个中包括的存储块的部分可被称为存储块的段或子单元。
例如,存储器控制器120可设置一个超级存储块SBLK,该超级存储块SBLK包括存储器管芯DIE_1中包括的一个存储块BLK的部分、存储器管芯DIE_2中包括的一个存储块BLK的部分、存储器管芯DIE_3中包括的一个存储块BLK的部分以及存储器管芯DIE_N中包括的一个存储块BLK的部分。
当向多个超级存储块SBLK中的任意一个写入数据时,存储器控制器120可划分待写入数据,并且将经划分数据并行地写入各个存储器管芯。也就是说,存储器控制器120可划分待写入数据,并且可将经划分数据排队到对应于各个存储器管芯的队列中,并且存储器装置110可并行地写入在与各个存储器管芯的相对应的队列中排队的经划分数据。存储器控制器120能够通过并行地向存储器装置110写入数据来提高写入性能。
如上文所述,当存储器控制器120将数据写入超级存储块SBLK时,写入超级存储块SBLK的一些数据可能由于各种原因(例如,超级存储块中包括的存储块的劣化)而损坏。在这种情况下,当读取写入到超级存储块SBLK的数据时可能会发生错误。
因此,存储器控制器120可计算写入超级存储块SBLK中的数据的奇偶校验,并且可将所计算的奇偶校验和数据一起存储在存储器装置110中。如果当读取写入超级存储块SBLK的数据时发生错误,则存储器控制器120可使用数据的奇偶校验来恢复数据。
如上所述,可不同地确定将由存储器控制器120计算的奇偶校验存储在存储器装置110中的方法。
例如,存储器控制器120可将在上述多个超级存储块SBLK之中的第一超级存储块SBLK_1中存储的数据划分为多个子数据,并且可存储多个子数据。然后,针对作为多个子数据而存储在第一超级存储块SBLK_1中的数据,存储器控制器120可计算第一奇偶校验PARITY_1,该第一奇偶校验PARITY_1是具有与子数据大小相同大小的奇偶校验,并且可将所计算的第一偶校验PARITY_1存储在存储器装置110中。
在这种情况下,多个子数据中的每一个的大小和奇偶校验的大小可以是存储器装置110中包括的多个存储块BLK中的一个存储块中包括的一个页面的大小(例如,4KB或8KB)。
在下文中,将描述存储器控制器120计算存储在第一超级存储块SBLK_1中的数据的第一奇偶校验PARITY_1的方法。
存储器控制器120可将奇偶校验的第I位(I是自然数)的值计算为通过对上述多个子数据中的每一个的第I位的值执行XOR运算而获得的值。
作为示例,存储在第一超级存储块SBLK_1中的12位数据是0b101011010100,并且以4位为单位将该数据划分为三个子数据0b1010、0b1101和0b0100,这些子数据存储在第一超级存储块SBLK_1中。
此时,第一奇偶校验PARITY_1是4位,第一奇偶校验PARITY_1中的每个位计算如下。
第一奇偶校验PARITY_1的第一位是(1XOR 1XOR 0)=0,这是通过对作为三个子数据的第一位的1、1和0执行XOR运算获得的值。
第一奇偶校验PARITY_1的第二位是(0XOR 1XOR 1)=0,这是通过对作为三个子数据的第二位的0、1和1执行XOR运算获得的值。
第一奇偶校验PARITY_1的第三位是(1XOR 0XOR 0)=1,这是通过对作为三个子数据的第三位的1、0和0执行XOR运算获得的值。
第一奇偶校验PARITY_1的第四位是(0XOR 1XOR 0)=1,这是通过对作为三个子数据的第四位的0、1和0执行XOR运算获得的值。
因此,将第一奇偶校验PARITY_1计算为0b0011。
在上文中,描述了存储器控制器120计算数据的奇偶校验的示例。
在下文中,将参照图6至图9描述存储器控制器120将上述多个子数据和奇偶校验存储在存储器装置110中的操作的实施例。
图6是示出根据实施例的将数据和奇偶校验存储在存储器系统100中的示例性操作的示图。
参照图6,存储器系统100中包括的存储器控制器120可将数据和作为该数据的奇偶校验的第一奇偶校验PARITY_1一起存储在多个超级存储块SBLK中的第一超级存储块SBLK_1中。
存储器控制器120可将数据划分为多个子数据,并且可将多个子数据存储在多个存储器管芯DIE_1、DIE_2、DIE_3至DIE_N中的每一个中包括的块BLK中。然后,存储器控制器120可将第一奇偶校验PARITY_1存储在存储器管芯DIE_N中包括的存储块BLK中。
当存储器控制器120将数据和奇偶校验一起存储在第一超级存储块SBLK_1中时,优点在于存储器控制器120可仅访问第一超级存储块SBLK_1来一起读取数据和奇偶校验。
然而,当存储器控制器120将数据和奇偶校验一起存储在第一超级存储块SBLK_1中时,缺点在于对包括存储奇偶校验的存储块BLK的存储器管芯DIE_N的写入操作的性能可能会劣化。这是因为仅在计算了待存储在存储器管芯DIE_N中包括的存储器模块BLK中的子数据和整体数据的奇偶校验之后,存储器控制器120才能够进行写入。
因此,存储器控制器120需要快速计算数据的奇偶校验,以便将对存储器管芯DIE_N的写入操作的性能劣化最小化。为了快速计算数据的奇偶校验,存储器控制器120可使用单独的XOR引擎,以便在数据的各个位之间快速执行XOR运算,或者可使用高速操作的单独的RAM装置(例如,SRAM)来快速访问用于计算数据中的奇偶校验的部分。然而,添加单独的XOR引擎或RAM装置增加了实施存储器系统100的整体成本。
为了解决上述问题,存储器控制器120可将奇偶校验写入存储器装置110中的、与写入数据的超级存储块不同的位置,而不是将数据和奇偶校验写入相同的超级存储块。
图7是示出根据本公开的各个实施例的将数据和奇偶校验存储在存储器系统100中的另一示例性操作的示图。
参照图7,存储器系统100中包括的存储器控制器120可将数据写入多个超级存储块SBLK中的第一超级存储块SBLK_1。在这种情况下,如图6所示,存储器控制器120可将数据划分成多个子数据,并且可存储子数据。
然后,如图6所示,针对写入到第一超级存储块SBLK_1的数据,存储器控制器120可计算第一奇偶校验PARITY_1,该第一奇偶校验PARITY_1是具有与子数据大小相同大小的奇偶校验。在这种情况下,存储器控制器120可将所计算的第一奇偶校验PARITY_1存储在被配置成存储一个或多个奇偶校验的奇偶校验缓冲器PARITY_BUF中。
在这种情况下,奇偶校验缓冲器PARITY_BUF可位于存储器控制器120的工作存储器125上。奇偶校验缓冲器PARITY_BUF可被配置成仅存储数据的奇偶校验而不存储数据。
当存储器控制器120以这种方式将数据的奇偶校验存储在单独的奇偶校验缓冲器PARITY_BUF中时,存储器控制器120可在完成数据的奇偶校验计算之前将所有子数据写入第一超级存储块SBLK_1。因此,在如参照图6所示的计算奇偶校验时,不会发生由于存储器控制器120没有完成将数据写入存储器装置110的操作而引起的问题。
此外,当如上所述将数据的奇偶校验存储在单独的奇偶校验缓冲器(PARITY_BUF)中时,应当将存储在奇偶校验缓冲器PARITY_BUF中的一个或多个奇偶校验再次存储在存储器装置110中。这是因为有必要将奇偶校验存储在存储器装置110中,以确保即使当向存储器系统100提供的电力中断时也不会丢失奇偶校验。
因此,当满足预定条件时,存储器控制器120可将存储在奇偶校验缓冲器PARITY_BUF中的一个或多个奇偶校验中的全部或一些写入存储器装置110。此外,在存储在奇偶校验缓冲器PARITY_BUF中的一个或多个奇偶校验之中,从奇偶校验缓冲器PARITY_BUF中删除写入存储器装置110中的奇偶校验。
图8是示出根据本公开的各个实施例的存储器系统100将图7的奇偶校验缓冲器PARITY_BUF中存储的第一奇偶校验PARITY_1写入存储器装置110的操作的示图。
参照图8,存储器系统100中包括的存储器控制器120可将存储在奇偶校验缓冲器PARITY_BUF中的第一奇偶校验PARITY_1写入多个存储块BLK之中的多个奇偶校验块PARITY_BLK之中的第一奇偶校验块PARITY_BLK_1。奇偶校验块PARITY_BLK是被配置成存储奇偶校验的存储块。
存储器控制器120可独立地将第一奇偶校验PARITY_1写入第一奇偶校验块PARITY_BLK_1,或者可将存储在奇偶校验缓冲器PARITY_BUF中的全部奇偶校验(包括第一奇偶校验PARITY_1)同时存储到第一奇偶校验块PARITY_BLK_1。
当满足预定条件时,存储器控制器120可将第一奇偶校验PARITY_1写入第一奇偶校验块PARITY_BLK_1。
例如,当存储在奇偶校验缓冲器PARITY_BUF中的奇偶校验的数量等于或大于第一预定值(VAL_1)(例如,32/64)时,存储器控制器120可将第一奇偶校验PARITY_1写入第一奇偶校验块PARITY_BLK_1。
当存储在奇偶校验缓冲器PARITY_BUF中的奇偶校验的数量等于或大于第一预定值(VAL_1)时,存储器控制器120可将第一奇偶校验PARITY_1写入第一奇偶校验块PARITY_BLK_1中,以确保奇偶校验缓冲器PARITY_BUF中的空闲空间。在这种情况下,可以与奇偶校验块PARITY_BLK的大小成比例地确定第一预定值(VAL_1)。
作为另一示例,存储器控制器120可在每个设定周期(例如,10ms)检查奇偶校验缓冲器PARITY_BUF中是否存在存储的奇偶校验。此外,当第一奇偶校验PARITY_1存储在奇偶校验缓冲器PARITY_BUF中时,存储器控制器120可将第一奇偶校验PARITY_1写入第一奇偶校验块PARITY_BLK_1。
此外,可以以各种方式设置存储器装置110中包括的多个奇偶校验块PARITY_BLK。
例如,每个奇偶校验块PARITY_BLK可被设置为存储器装置110中包括的一个或多个存储块BLK。
作为另一示例,多个奇偶校验块PARITY_BLK中的每一个可以是上述参照图5至图7描述的多个超级存储块SBLK中的一个。在下文中,将参照图9描述每个奇偶校验块PARITY_BLK是多个超级存储块SBLK中的一个的情况。
图9是示出根据实施例的存储器系统100将图7中的奇偶校验缓冲器PARITY_BUF中存储的第一奇偶校验PARITY_1写入超级存储块中的一个的操作的示图。
参照图9,存储器系统100中包括的存储器控制器120可将存储在奇偶校验缓冲器PARITY_BUF中的第一奇偶校验PARITY_1写入存储器装置110中包括的多个奇偶校验块PARITY_BLK中的第一奇偶校验块PARITY_BLK_1。
在这种情况下,第一奇偶校验块PARITY_BLK_1可以是多个超级存储块SBLK之中的、不同于存储数据的第一超级存储块SBLK_1的第二超级存储块SBLK_2。
如上参照图7至图9所述,当将数据和奇偶校验存储在分开的区域中时,另外需要用于管理数据和数据的奇偶校验之间的映射信息的数据结构。这是因为存储器控制器120需要知道数据的奇偶校验位于多个奇偶校验块PARITY_BLK中的何处。
因此,存储器控制器120可设置用于管理数据和数据的奇偶校验之间的映射信息的奇偶校验映射。在下文中,将参照图10详细地描述奇偶校验映射。
图10是示出根据本公开的各个实施例的在存储器系统100中设置的奇偶校验映射PARITY_MAP的示图。
参照图10,存储器系统100中包括的存储器控制器120可设置包括奇偶校验映射条目组的奇偶校验映射PARITY_MAP。在这种情况下,奇偶校验映射条目组中包括的每个奇偶校验映射条目可指示奇偶校验在奇偶校验块PARITY_BLK中的位置和相应数据在超级存储块SBLK中的位置。
例如,每个奇偶校验映射条目可包括索引字段P_IDX和地址字段P_ADDR,其中索引字段P_IDX指示存储数据的超级存储块,地址字段P_ADDR指示数据的奇偶校验的位置。
存储器控制器120可将作为存储在第一超级存储块SBLK_1中的数据的奇偶校验的第一奇偶校验PARITY_1写入奇偶校验块PARITY_BLK,然后可在奇偶校验映射PARITY_MAP中更新对应于第一奇偶校验PARITY_1的奇偶校验映射条目。
也就是说,存储器控制器120可针对奇偶校验映射PARITY_MAP中包括的奇偶校验映射条目中的一个奇偶校验映射条目,来更新相应的奇偶校验映射条目,使得相应的奇偶校验映射条目的索引字段P_IDX指示第一超级存储块SBLK_1,并且相应的奇偶校验映射条目的地址字段P_ADDR指示存储第一奇偶校验PARITY_1的地址,第一奇偶校验PARITY_1是存储在第一超级存储块SBLK_1中的数据的奇偶校验。
此外,当存储器控制器120如上文所述地重复更新奇偶校验映射PARITY_MAP中包括的奇偶校验映射条目的过程时,对应于奇偶校验映射条目的奇偶校验可从有效奇偶校验变为无效奇偶校验。在这种情况下,“奇偶校验有效”是指与奇偶校验相对应的数据是有效的,也就是说,主机(HOST)可访问相应的数据。相反,“奇偶校验无效”是指与奇偶校验相对应的数据是无效的,即主机(HOST)不能访问相应的数据。
例如,奇偶校验映射PARITY_MAP中包括的奇偶校验映射条目中的一个指示数据的奇偶校验在多个超级存储块SBLK之中的第一超级存储块SBLK_1中存储的位置。
如果存储在第一超级存储块SBLK_1中的数据被改变,则存储器控制器120可将经改变数据写入多个超级存储块SBLK之中的除第一超级存储块SBLK_1之外的另一超级存储块。
然后,存储器控制器120可重新计算经改变数据的奇偶校验,并且可将重新计算的奇偶校验存储在奇偶校验缓冲器PARITY_BUF中。
在这种情况下,存储在第一超级存储块SBLK_1中的数据不再有效,并且存储在第一超级存储块SBLK_1中的数据的奇偶校验也无效。
因此,存储器控制器120应当记录指示奇偶校验块PARITY_BLK中存储的奇偶校验之中的、存储在第一超级存储块SBLK_1中的数据的奇偶校验无效的信息。
因此,存储器控制器120需要设置有效奇偶校验表PARITY_VPT,有效奇偶校验表PARITY_VPT是指示奇偶校验是否有效的数据结构。在下文中,将参照图11详细地描述有效奇偶校验表PARITY_VPT。
图11是示出根据实施例的在存储器系统100中设置的有效奇偶校验表PARITY_VPT的示图。
有效奇偶校验表PARITY_VPT可指示包括在图10的奇偶校验映射PARITY_MAP中的每个奇偶校验映射条目中的奇偶校验是否有效。
有效奇偶校验表PARITY_VPT可包括一个或多个奇偶校验表条目。每个奇偶校验表条目可包括索引信息V_IDX和一组标志FLG,一组标志FLG指示与一个奇偶校验映射条目相对应的奇偶校验是否有效。
在这种情况下,标志FLG可以由一位信息来表示,一组标志FLG可以由位图来表示。
例如,有效奇偶校验表PARITY_VPT中包括的每个奇偶校验表条目可包括包含32个标志FLG的组,并且该32个标志FLG可由4字节的数值表示(例如,0xFFFFFFFF、0xFFF20FFF和0x090FFFFF)。基于有效奇偶校验表条目PARITY_VPT的索引信息V_IDX和一组标志FLG中的标志FLG的位置,存储器控制器120可指定对应于标志FLG的奇偶校验。
在图11中,奇偶校验表条目的索引信息V_IDX为0的奇偶校验表条目中包括的标志FLG中的一个对应于第一奇偶校验PARITY_1,并且标志FLG中的另一个对应于与第一奇偶校验PARITY_1不同的第二奇偶校验PARITY_2。
在图11中,对应于第一奇偶校验PARITY_1的标志FLG指示存储在第一奇偶校验块PARITY_BLK_1中的第一奇偶校验PARITY_1是有效的。此外,对应于第二奇偶校验PARITY_2的标志FLG指示存储在第一奇偶校验块PARITY_BLK_1中的第二奇偶校验PARITY_2是无效的。
此外,基于数据映射中的位置,可确定以上参照图10描述的奇偶校验映射PARITY_MAP中的位置,其中数据映射指示关于存储在存储器装置110中的数据的映射信息(也就是说,指示数据存储在存储器装置110中的哪个位置的信息)。
例如,指示奇偶校验映射PARITY_MAP中的位置的地址值可与指示数据映射中的位置的地址值连续。如果数据映射中的位置为0x00000至0xFFFFF,则奇偶校验映射PARITY_MAP中的位置可从0x10000开始。
类似地,基于指示存储在存储器装置110中的数据是否有效的有效数据表中的位置,可确定图11中上述有效奇偶校验表PARITY_VPT中的位置。
例如,指示有效奇偶校验表PARITY_VPT中的位置的地址值可与指示有效数据表中的位置的地址值连续。如果有效数据表中的位置为0x20000至0x2FFFF,则有效奇偶校验表PARITY_VPT中的位置可从0x30000开始。
在上文中,描述了将数据和奇偶校验存储在存储器装置110中的操作以及用于管理数据和奇偶校验的数据结构。
在下文中,将描述在读取数据时发生错误时,基于上述的数据和奇偶校验来恢复数据的详细操作。
图12是示出根据实施例的在存储器系统100中的超级存储块SBLK中存储的数据中的一个子数据中出现不可校正ECC(UECC)的情况的示图。
参照图12,在多个超级存储块SBLK中的第一超级存储块SBLK_1中存储的数据之中,在存储器管芯DIE_3中包括的存储块BLK中存储的第一子数据(SUB_D1)中出现UECC。
此外,将存储在第一超级存储块SBLK_1中的数据的奇偶校验存储在第一奇偶校验块PARITY_BLK_1中。在图12中,即使第一奇偶校验块PARITY_BLK_1包括在存储器管芯DIE_1中,但是第一奇偶校验块PARITY_BLK_1的位置不限于特定的存储器管芯。例如,如参照图9所述,第一奇偶校验块PARITY_BLK_1可以是多个超级存储块SBLK中的一个。
图13是示出根据实施例的存储器系统100恢复图12中的出现UECC的第一子数据SUB_D1的操作的示图。
参照图13,基于存储在第一奇偶校验块PARITY_BLK_1中的第一奇偶校验PARITY_1和存储在第一超级存储块中的数据之中的除了出现UECC的第一子数据SUB_D1之外的其余子数据,存储器系统100中包括的存储器控制器120可恢复出现UECC的第一子数据SUB_D1。
图14是示出根据各个实施例的存储器系统100恢复出现UECC的第一子数据SUB_D1的逻辑的示图。
作为图14中的示例,在第一超级存储块SBLK_1中存储12位数据,并且以被划分为三个子数据SUB_D1、SUB_D2和SUB_D3的状态来存储12位数据,三个子数据SUB_D1、SUB_D2和SUB_D3具有4位大小。
在三个子数据SUB_D1、SUB_D2和SUB_D3之中,第一子数据SUB_D1是0b1010,第二子数据SUB_D2是0b1101,第三子数据SUB_D3是0b0100。
在这种情况下,存储在第一超级存储块SBLK_1中的12位数据的奇偶校验被计算为((0b1010)XOR(0b1101)XOR(0b0100))=0b0011。
具体地,奇偶校验的第一位被计算为0,这是通过对第一子数据SUB_D1的第一位1、第二子数据SUB_D2的第一位1、第三子数据SUB_D3的第一位0执行XOR运算而获得的值((1XOR 1XOR 0)=0)。
奇偶校验的第二位被计算为0,这是通过对第一子数据SUB_D1的第二位0、第二子数据SUB_D2的第二位1、第三子数据SUB_D3的第二位1执行XOR运算而获得的值((0XOR 1XOR1)=0)。
奇偶校验的第三位被计算为1,这是通过对第一子数据SUB_D1的第三位1、第二子数据SUB_D2的第三位0、第三子数据SUB_D3的第三位0执行XOR运算而获得的值((1XOR 0XOR0)=1)。
奇偶校验的第四位被计算为0,这是通过对第一子数据SUB_D1的第四位0、第二子数据SUB_D2的第四位1、第三子数据SUB_D3的第四位0执行XOR运算而获得的值((0XOR 1XOR0)=1)。
当在第一子数据SUB_D1中出现UECC时,存储器系统100的存储器控制器120可将对三个子数据SUB_D1、SUB_D2和SUB_D3之中的、除了第一子数据SUB_D1之外的其余两个子数据SUB_D2和SUB_D3以及奇偶校验执行XOR运算而获得的值((0b1101)XOR(0b0100)XOR(0b0011))=(0b1010)确定为正常的第一子数据SUB_D1的值(也就是说,在出现UECC之前的第一子数据SUB_D1的值)。
具体地,存储器控制器120可确定正常的第一子数据SUB_D1的第一位的值为1,这是通过对第二子数据SUB_D2的第一位1、第三子数据SUB_D3的第一位0、奇偶校验的第一位0执行XOR而获得的值((1XOR 0XOR 0)=1)。
存储器控制器120可确定正常的第一子数据SUB_D1的第二位的值为0,这是通过对第二子数据SUB_D2的第二位1、第三子数据SUB_D3的第二位1、奇偶校验的第二位0执行XOR而获得的值((1XOR 1XOR 0)=0)。
存储器控制器120可确定正常的第一子数据SUB_D1的第三位的值为1,这是通过对第二子数据SUB_D2的第三位0、第三子数据SUB_D3的第三位0、奇偶校验的第三位1执行XOR而获得的值((0XOR 0XOR 1)=1)。
存储器控制器120可将正常的第一子数据SUB_D1的第四位的值确定为0,这是通过对第二子数据SUB_D2的第四位1、第三子数据SUB_D3的第四位0、奇偶校验的第四位1执行XOR而获得的值((1XOR 0XOR 1)=0)。
在上文中,描述了基于数据和奇偶校验来恢复数据的具体操作。
在下文中,将描述管理存储奇偶校验的奇偶校验块PARITY_BLK的详细操作。
图15是示出在根据本公开的各个实施例的存储器系统100中设置的奇偶校验映射PARITY_MAP的状态的示图。
参照图15,多个奇偶校验块PARITY_BLK中的至少一些可以是空闲奇偶校验块FREE_PARITY_BLK。空闲奇偶校验块FREE_PARITY_BLK是指处于数据已经被擦除的状态的奇偶校验块,并且是没有存储有效奇偶校验和无效奇偶校验的奇偶校验块。
此外,如果存储在存储器装置110中的数据被继续更新,则经更新数据的奇偶校验也被新生成。因此,存储在奇偶校验块PARITY_BLK中的有效奇偶校验和无效奇偶校验的数量之和持续增加。
此外,奇偶校验块PARITY_BLK之中的空闲奇偶校验块FREE_PARITY_BLK的数量减少。这是因为,当新生成的奇偶校验不能存储在除了空闲奇偶校验块FREE_PARITY_BLK之外的奇偶校验块中时,新生成的奇偶校验存储在空闲奇偶校验块FREE_PARITY_BLK中的一个中。
当空闲奇偶校验块FREE_PARITY_BLK的数量持续减少,从而在奇偶校验块PARITY_BLK之中不存在空闲奇偶校验块FREE_PARITY_BLK时,即使随后更新了存储在存储器装置110中的数据,也可能出现存储器控制器120不能将待更新数据的奇偶校验存储在存储器装置110中的问题。
因此,当空闲奇偶校验块FREE_PARITY_BLK的数量小于或等于第二设定值时,存储器控制器120可在奇偶校验块PARITY_BLK之中指定至少一个牺牲奇偶校验块,并且可将存储在牺牲奇偶校验块中的奇偶校验之中的有效奇偶校验迁移到目标奇偶校验块。此外,存储器控制器120可擦除牺牲奇偶校验块以形成空闲奇偶校验块FREE_PARITY_BLK。通过该进程,存储器控制器120可将奇偶校验块PARITY_BLK之中的空闲奇偶校验块FREE_PARITY_BLK的数量确保为预定值或更多。
图16是示出根据本公开的各个实施例的存储器系统100在奇偶校验块PARITY_BLK之中选择牺牲奇偶校验块VICTIM_BLK和目标奇偶校验块TARGET_BLK的操作的示图。
牺牲奇偶校验块VICTIM_BLK可以是存储一个或多个有效奇偶校验或者一个或多个无效奇偶校验的奇偶校验块。
在这种情况下,目标奇偶校验块TARGET_BLK可以是参照图15描述的空闲奇偶校验块FREE_PARITY_BLK。
此外,可存在存储器系统100从奇偶校验块PARITY_BLK中选择牺牲奇偶校验块VICTIM_BLK的各种方法。
例如,存储器系统100中包括的存储器控制器120可从多个奇偶校验块PARITY_BLK之中的除空闲奇偶校验块FREE_PARITY_BLK之外的奇偶校验块中随机地选择牺牲奇偶校验块VICTIM_BLK。
作为另一示例,存储器控制器120可基于存储在多个奇偶校验块的每一个中的奇偶校验之中的无效奇偶校验的数量,来选择牺牲奇偶校验块VICTIM_BLK。在下文中,将参照图17对此详细地描述。
图17是示出根据本公开的各个实施例的在存储器系统100中的多个奇偶校验块PARITY_BLK之中选择牺牲奇偶校验块VICTIM_BLK的示例的示图。
在图17中,存储器装置110中存在四个奇偶校验块PARITY_BLK_1、PARITY_BLK_2、PARITY_BLK_3和PARITY_BLK_4。
参照图17,奇偶校验块PARITY_BLK_1存储三个有效奇偶校验和七个无效奇偶校验。奇偶校验块PARITY_BLK_2存储两个有效奇偶校验和五个无效奇偶校验。奇偶校验块PARITY_BLK_3存储四个有效奇偶校验和一个无效奇偶校验。最后,奇偶校验块PARITY_BLK_4存储三个有效奇偶校验和三个无效奇偶校验。
在四个奇偶校验块PARITY_BLK_1、PARITY_BLK_2、PARITY_BLK_3和PARITY_BLK_4中,存储器控制器120可选择具有最大数量的无效奇偶校验的N个奇偶校验块(N是自然数)作为牺牲奇偶校验块VICTIM_BLK。
如果N=2,则存储器控制器120可选择两个奇偶校验块PARITY_BLK_1和PARITY_BLK_2作为牺牲奇偶校验块VICTIM_BLK,其中奇偶校验块PARITY_BLK_1和PARITY_BLK_2具有最大数量的无效奇偶校验。
存储器控制器120在多个奇偶校验块PARITY_BLK之中选择具有最大数量的无效奇偶校验的N个奇偶校验块作为牺牲奇偶校验块VICTIM_BLK的原因在于,当在之后,存储器控制器120擦除牺牲奇偶校验块VICTIM_BLK时,通过擦除尽可能多的无效奇偶校验来确保更多的空闲空间来存储新生成的奇偶校验。
图18是示出根据本公开的各个实施例的在存储器系统100中将存储在牺牲奇偶校验块VICTIM_BLK中的奇偶校验迁移到目标奇偶校验块TARGET_BLK的操作的示图。
在擦除牺牲奇偶校验块VICTIM_BLK之前,存储器系统100中包括的存储器控制器120可将存储在牺牲奇偶校验块VICTIM_BLK中的奇偶校验之中的有效奇偶校验迁移到目标奇偶校验块TARGET_BLK。这是因为即使牺牲奇偶校验块VICTIM_BLK被擦除,存储在牺牲奇偶校验块VICTIM_BLK中的奇偶校验之中的有效奇偶校验也应当继续存储在存储器装置110中。
此外,当如上所述,存储器控制器120将存储在牺牲奇偶校验块VICTIM_BLK中的奇偶校验之中的有效奇偶校验迁移到目标奇偶校验块TARGET_BLK时,存储器控制器120可在奇偶校验映射中更新与所迁移的奇偶校验相对应的奇偶校验映射条目,并且可在有效奇偶校验表中更新关于所迁移的奇偶校验的标致信息。
图19是示出根据实施例的从存储器系统100擦除牺牲奇偶校验块VICTIM_BLK的操作的示图。
在将存储在牺牲奇偶校验块VICTIM_BLK中的奇偶校验之中的全部有效奇偶校验迁移到目标奇偶校验块TARGET_BLK之后,存储器系统100中包括的存储器控制器120可擦除牺牲奇偶校验块VICTIM_BLK。当牺牲奇偶校验块VICTIM_BLK被擦除时,经擦除的牺牲奇偶校验块VICTIM_BLK变为空闲奇偶校验块FREE_PARITY_BLK。
以这种方式,存储器控制器120可重复从奇偶校验块PARITY_BLK中擦除无效奇偶校验的操作和收集有效奇偶校验的操作,从而高效地管理存储在多个超级存储块SBLK的每一个中的数据的奇偶校验。
图20是示出根据本公开的各个实施例的操作存储器控制器120的方法的流程图。
操作存储器控制器120的方法可包括设置多个超级存储块的步骤(S2010)。
操作存储器控制器120的方法可包括针对第一超级存储块计算第一奇偶校验的步骤,其中第一奇偶校验是作为多个子数据存储在第一超级存储块中的数据的奇偶校验,第一超级存储块是在步骤S2010中设置的多个超级存储块中的一个(S2020)。在这种情况下,子数据的大小和第一奇偶校验的大小是相同的。
操作存储器控制器120的方法可包括将在步骤S2020中计算的第一奇偶校验存储在被配置成存储一个或多个奇偶校验的奇偶校验缓冲器中的步骤(S2030)。
操作存储器控制器120的方法可包括:当存储在奇偶校验缓冲器中的奇偶校验的数量等于或大于第一设定值时,将存储在奇偶校验缓冲器中的第一奇偶校验写入到多个存储块之中的被配置成存储奇偶校验的多个奇偶校验块中的第一奇偶校验块的步骤(S2040)。
上述的存储器控制器120的操作可由控制电路123控制,并且可以以处理器124运行(驱动)固件的方式来执行,其中存储器控制器120的全部操作被编程在固件中。
图21是示出根据本公开的各个实施例的计算系统2100的配置的示图。
参照图21,例如,根据实施例的计算系统2100可包括电连接到系统总线2160的存储器系统100、被配置成控制计算系统2100的操作的中央处理单元(CPU)210、被配置成存储与计算系统2100的操作相关联的数据和信息的RAM 2120、被配置成向用户提供用户环境的用户界面/用户体验(UI/UX)模块2130、被配置成以有线和/或无线方式与外部装置通信的通信模块2140,以及用于管理计算系统2100使用的电力的电源管理模块2150。
计算系统2100可以是个人计算机(PC),或者可包括诸如智能电话或平板电脑的移动终端或者各种电子装置。
计算系统2100可进一步包括用于提供操作电压的电池,并且例如可进一步包括应用芯片组、图形相关模块、相机图像处理器(CIS)和DRAM。对于已经获得本领域中的公知常识的人员,其他特征将是显而易见的。
存储器系统100不仅可包括用于将数据存储在磁盘中的装置,诸如硬盘驱动器(HDD),还可包括用于将数据存储在非易失性存储器中的装置,诸如固态驱动器(SSD)、通用闪存(UFS)装置或嵌入式MMC(eMMC)。例如,非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、闪速存储器、相变RAM(PRAM)、磁性RAM(MRAM)、电阻式RAM(RRAM)或铁电RAM(FRAM)。此外,存储器系统100可被实施为各种类型的存储装置,并且可安装在各种电子装置中。
虽然已经出于说明性目的描述了本公开的优选实施例,但本领域技术人员将理解,在不脱离所附权利要求书中公开的本公开的范围和精神的情况下,可进行各种修改、添加和替换。因此,为了简洁和清楚起见,描述了本公开的示例性实施例。本发明的范围应当基于所附权利要求书以以下方式进行解释:与权利要求书等同的范围内包括的所有技术思想都属于本公开。
Claims (20)
1.一种存储器系统,包括:
多个存储器管芯,所述多个存储器管芯中的每个包括多个存储块中的至少一个;以及
存储器控制器:
从所述多个存储块中设置多个超级存储块;
计算作为多个子数据而存储在所述多个超级存储块中的选择的第一超级存储块中的数据的第一奇偶校验,所述第一奇偶校验的大小等于所述子数据的大小;
将所述第一奇偶校验存储在奇偶校验缓冲器中,所述奇偶校验缓冲器存储一个或多个奇偶校验;以及
当存储在所述奇偶校验缓冲器中的奇偶校验的数量等于或大于第一设定值时,将存储在所述奇偶校验缓冲器中的所述第一奇偶校验写入多个奇偶校验块之中的第一奇偶校验块,所述多个奇偶校验块存储所述奇偶校验。
2.根据权利要求1所述的存储器系统,其中所述第一奇偶校验的第I位的值是通过对所述多个子数据的各自第I位的值执行XOR运算而获得的值,其中I是自然数。
3.根据权利要求1所述的存储器系统,
其中所述多个奇偶校验块中的每个是所述多个超级存储块中的一个,并且
其中所述第一奇偶校验块是所述多个超级存储块之中的不同于所选择的第一超级存储块的第二超级存储块。
4.根据权利要求1所述的存储器系统,其中所述存储器控制器进一步:
设置奇偶校验映射,所述奇偶校验映射包括奇偶校验映射条目组,所述奇偶校验映射条目中的每个指示所述奇偶校验在所述奇偶校验块中的位置和相应数据在所述超级存储块中的位置;以及
在将所述第一奇偶校验写入所述第一奇偶校验块之后,更新所述奇偶校验映射条目组之中的与所述第一奇偶校验相对应的奇偶校验映射条目。
5.根据权利要求4所述的存储器系统,其中所述存储器控制器进一步:
设置有效奇偶校验表,所述有效奇偶校验表包括标志信息,所述标志信息指示与所述奇偶校验映射中包括的每个奇偶校验映射条目相对应的奇偶校验是否有效;以及
更新所述有效奇偶校验表中的、与所述第一奇偶校验相对应的标志信息。
6.根据权利要求1所述的存储器系统,其中所述存储器控制器进一步:当所述多个子数据之中的第一子数据中出现不可校正ECC,即UECC时,基于所述第一奇偶校验和所述多个子数据之中的除了所述第一子数据之外的其余子数据,来恢复所述第一子数据。
7.根据权利要求6所述的存储器系统,其中所述存储器控制器通过对所述第一奇偶校验的第I位的值和所述多个子数据之中的除了所述第一子数据之外的其余子数据的第I位的值执行XOR运算,来恢复所述第一子数据的第I位的值,其中I是自然数。
8.根据权利要求1所述的存储器系统,其中所述存储器控制器进一步:当所述多个奇偶校验块之中的空闲奇偶校验块的数量等于或小于第二设定值时,将所述多个奇偶校验块之中的至少一个牺牲奇偶校验块中存储的奇偶校验之中的有效奇偶校验迁移到所述多个奇偶校验块之中的目标奇偶校验块。
9.根据权利要求8所述的存储器系统,其中所述存储器控制器通过基于所述多个奇偶校验块中的每个中存储的奇偶校验之中的无效奇偶校验的数量选择所述牺牲奇偶校验块,来迁移所述有效奇偶校验。
10.根据权利要求9所述的存储器系统,其中所述存储器控制器进一步:在将所述牺牲奇偶校验块中存储的奇偶校验之中的有效奇偶校验迁移到所述目标奇偶校验块之后,擦除所述牺牲奇偶校验块。
11.一种存储器控制器,包括:
控制电路,控制多个存储器管芯,所述所述存储器管芯中的每个包括多个存储块中的至少一个,
其中所述控制电路:
从所述多个存储块中设置多个超级存储块;
计算作为多个子数据而存储在所述多个超级存储块中的选择的第一超级存储块中的数据的第一奇偶校验,所述第一奇偶校验的大小等于所述子数据的大小;
将所述第一奇偶校验存储在奇偶校验缓冲器中,所述奇偶校验缓冲器存储一个或多个奇偶校验;以及
当所述奇偶校验缓冲器中存储的奇偶校验的数量等于或大于第一设定值时,将所述奇偶校验缓冲器中存储的所述第一奇偶校验写入多个奇偶校验块之中的第一奇偶校验块,所述多个奇偶校验块存储所述奇偶校验。
12.根据权利要求11所述的存储器控制器,其中所述第一奇偶校验的第I位的值是通过对所述多个子数据的各自第I位的值执行XOR运算而获得的值,其中I是自然数。
13.根据权利要求11所述的存储器控制器,
其中所述多个奇偶校验块中的每个是所述多个超级存储块中的一个,并且
其中所述第一奇偶校验块是所述多个超级存储块之中的不同于所选择的第一超级存储块的第二超级存储块。
14.根据权利要求11所述的存储器控制器,其中所述控制电路进一步:
设置奇偶校验映射,所述奇偶校验映射包括奇偶校验映射条目组,所述奇偶校验映射条目中的每个指示所述奇偶校验在所述奇偶校验块中的位置和相应数据在所述超级存储块中的位置;以及
在将所述第一奇偶校验写入所述第一奇偶校验块之后,更新所述奇偶校验映射条目组之中的与所述第一奇偶校验相对应的奇偶校验映射条目。
15.根据权利要求14所述的存储器控制器,其中所述控制电路进一步:
设置有效奇偶校验表,所述有效奇偶校验表包括标志信息,所述标志信息指示与所述奇偶校验映射中包括的每个奇偶校验映射条目相对应的奇偶校验是否有效;以及
更新所述有效奇偶校验表中的与所述第一奇偶校验相对应的标志信息。
16.根据权利要求11所述的存储器控制器,其中所述控制电路:
当所述多个子数据之中的第一子数据中出现不可校正ECC,即UECC时,基于所述第一奇偶校验和所述多个子数据之中的除了所述第一子数据之外的其余子数据,来恢复所述第一子数据。
17.根据权利要求16所述的存储器控制器,其中所述控制电路通过对所述第一奇偶校验的第I位的值和所述多个子数据之中的除了所述第一子数据之外的其余子数据的第I位的值执行XOR运算来恢复所述第一子数据的第I位的值,其中I是自然数。
18.根据权利要求11所述的存储器控制器,其中所述控制电路进一步:当所述多个奇偶校验块之中的空闲奇偶校验块的数量等于或小于第二设定值时,将所述多个奇偶校验块之中的至少一个牺牲奇偶校验块中存储的奇偶校验之中的有效奇偶校验迁移到所述多个奇偶校验块之中的目标奇偶校验块。
19.根据权利要求18所述的存储器控制器,其中所述控制电路通过基于所述多个奇偶校验块中的每个中存储的奇偶校验之中的无效奇偶校验的数量选择所述牺牲奇偶校验块,来迁移所述有效奇偶校验。
20.一种操作存储器控制器的方法,所述存储器控制器控制多个存储器管芯,所述多个存储器管芯中的每个包括多个存储块之中的至少一个存储块,所述方法包括:
从所述多个存储块中设置多个超级存储块;
计算作为多个子数据而存储在所述多个超级存储块中的第一超级存储块中的数据的第一奇偶校验,所述第一奇偶校验的大小等于所述子数据的大小;
将所述第一奇偶校验存储在奇偶校验缓冲器中,所述奇偶校验缓冲器存储一个或多个奇偶校验;以及
当所述奇偶校验缓冲器中存储的奇偶校验的数量等于或大于第一设定值时,将所述奇偶校验缓冲器中存储的所述第一奇偶校验写入多个奇偶校验块之中的第一奇偶校验块,所述多个奇偶校验块存储所述奇偶校验。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2019-0135001 | 2019-10-29 | ||
KR1020190135001A KR20210050661A (ko) | 2019-10-29 | 2019-10-29 | 메모리 시스템, 메모리 컨트롤러 및 그 동작 방법 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112748870A true CN112748870A (zh) | 2021-05-04 |
Family
ID=75586011
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010501794.5A Withdrawn CN112748870A (zh) | 2019-10-29 | 2020-06-04 | 存储器系统、存储器控制器及操作存储器控制器的方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11249838B2 (zh) |
KR (1) | KR20210050661A (zh) |
CN (1) | CN112748870A (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11687405B2 (en) * | 2021-12-01 | 2023-06-27 | Western Digital Technologies, Inc. | Centralized SRAM error location detection and recovery mechanism |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160179422A1 (en) * | 2014-12-19 | 2016-06-23 | Samsung Electronics Co., Ltd. | Method of performing garbage collection and raid storage system adopting the same |
CN107133121A (zh) * | 2016-02-26 | 2017-09-05 | 爱思开海力士有限公司 | 数据存储装置及其操作方法 |
CN108121617A (zh) * | 2016-11-30 | 2018-06-05 | 三星电子株式会社 | 存储器模块、存储器系统和操作存储器系统的方法 |
CN109101361A (zh) * | 2017-06-21 | 2018-12-28 | 爱思开海力士有限公司 | 存储器系统及其操作方法 |
CN110148434A (zh) * | 2018-02-13 | 2019-08-20 | 三星电子株式会社 | 半导体存储器件、存储系统和操作半导体存储器件的方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7516354B2 (en) | 2004-08-25 | 2009-04-07 | International Business Machines Corporation | Storing parity information for data recovery |
US10025662B2 (en) * | 2016-04-27 | 2018-07-17 | Silicon Motion Inc. | Flash memory apparatus and storage management method for flash memory |
KR101970864B1 (ko) | 2016-11-25 | 2019-04-19 | 인하대학교 산학협력단 | 총 플래시 어레이 기반 오픈스택 클라우드 블록 스토리지에서의 패리티 데이터 중복제거 방법 |
US10789126B2 (en) * | 2018-10-09 | 2020-09-29 | Micron Technology, Inc. | Multiple memory devices having parity protection |
-
2019
- 2019-10-29 KR KR1020190135001A patent/KR20210050661A/ko active Search and Examination
-
2020
- 2020-04-13 US US16/846,479 patent/US11249838B2/en active Active
- 2020-06-04 CN CN202010501794.5A patent/CN112748870A/zh not_active Withdrawn
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160179422A1 (en) * | 2014-12-19 | 2016-06-23 | Samsung Electronics Co., Ltd. | Method of performing garbage collection and raid storage system adopting the same |
CN107133121A (zh) * | 2016-02-26 | 2017-09-05 | 爱思开海力士有限公司 | 数据存储装置及其操作方法 |
CN108121617A (zh) * | 2016-11-30 | 2018-06-05 | 三星电子株式会社 | 存储器模块、存储器系统和操作存储器系统的方法 |
CN109101361A (zh) * | 2017-06-21 | 2018-12-28 | 爱思开海力士有限公司 | 存储器系统及其操作方法 |
CN110148434A (zh) * | 2018-02-13 | 2019-08-20 | 三星电子株式会社 | 半导体存储器件、存储系统和操作半导体存储器件的方法 |
Also Published As
Publication number | Publication date |
---|---|
KR20210050661A (ko) | 2021-05-10 |
US11249838B2 (en) | 2022-02-15 |
US20210124642A1 (en) | 2021-04-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102635689B1 (ko) | 메모리 시스템, 메모리 컨트롤러 및 동작 방법 | |
KR20220005111A (ko) | 메모리 시스템, 메모리 컨트롤러 및 메모리 시스템의 동작 방법 | |
CN112650442A (zh) | 存储器系统、存储器控制器及操作方法 | |
KR20220013661A (ko) | 메모리 시스템, 메모리 장치 및 메모리 장치의 동작 방법 | |
CN113903384A (zh) | 存储器系统、存储器控制器以及操作存储器系统的方法 | |
KR20210097353A (ko) | 메모리 시스템, 메모리 컨트롤러 및 메모리 시스템의 동작 방법 | |
CN112445726B (zh) | 存储器系统、存储器控制器及操作方法 | |
CN114090473A (zh) | 存储器系统、存储器控制器及操作存储器系统的方法 | |
CN114968856B (zh) | 存储器系统及其操作方法 | |
US11249838B2 (en) | Memory system, memory controller, and method of operating memory controller | |
CN115963981A (zh) | 存储器系统及存储器系统的操作方法 | |
KR20220068535A (ko) | 메모리 시스템 및 메모리 시스템의 동작 방법 | |
CN112748871A (zh) | 存储器系统、存储器控制器以及存储器控制器的操作方法 | |
US12131042B2 (en) | Memory system for managing namespace using write pointer and write count, memory controller, and method for operating memory system | |
US11500771B2 (en) | Memory system, memory controller, and method of operating memory system | |
KR20220067070A (ko) | 메모리 시스템 및 메모리 시스템의 동작 방법 | |
KR20230094622A (ko) | 슈퍼 메모리 블록의 프로그램 상태를 기초로 타깃 동작을 실행하는 메모리 시스템 및 그 방법 | |
KR20230036680A (ko) | 메모리 시스템 및 메모리 시스템의 동작 방법 | |
KR20220168510A (ko) | 메모리 시스템 및 메모리 시스템의 동작 방법 | |
KR20230094588A (ko) | 복수의 존들에 대응하는 데이터를 관리하는 메모리 시스템 및 그 방법 | |
KR20230161676A (ko) | 이퓨즈 메모리를 제어하는 컨트롤러 및 그 동작 방법 | |
KR20220163661A (ko) | 메모리 시스템 및 메모리 시스템의 동작 방법 | |
KR20210132806A (ko) | 메모리 시스템, 메모리 컨트롤러 및 메모리 시스템의 동작 방법 | |
KR20210113743A (ko) | 메모리 시스템, 메모리 컨트롤러 및 메모리 시스템의 동작 방법 | |
CN112667145A (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 | ||
WW01 | Invention patent application withdrawn after publication | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20210504 |