CN114512175A - 存储器系统及其操作方法 - Google Patents
存储器系统及其操作方法 Download PDFInfo
- Publication number
- CN114512175A CN114512175A CN202110478573.5A CN202110478573A CN114512175A CN 114512175 A CN114512175 A CN 114512175A CN 202110478573 A CN202110478573 A CN 202110478573A CN 114512175 A CN114512175 A CN 114512175A
- Authority
- CN
- China
- Prior art keywords
- data
- parity
- memory
- size
- memory device
- 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.)
- Pending
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
- 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
- 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
-
- 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
-
- 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/0804—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
-
- 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/0871—Allocation or management of cache space
-
- 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
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1673—Details of memory controller using buffers
-
- G—PHYSICS
- 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
-
- 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/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
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input 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/18—Bit line organisation; Bit line lay-out
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C8/00—Arrangements for selecting an address in a digital store
- G11C8/14—Word line organisation; Word line lay-out
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Human Computer Interaction (AREA)
- Computer Security & Cryptography (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本公开的实施例涉及一种存储器系统及其操作方法。存储器系统可以包括存储器装置和存储器控制器,该存储器控制器被配置为:当从主机接收指示将被高速缓存在数据高速缓存中的数据清除到存储器装置的清除命令时,将被高速缓存在数据高速缓存中的第一数据清除到存储器装置,该第一数据的大小小于参考写入单位的大小;将与第一数据相关联的第一奇偶校验写入奇偶校验存储块;更新奇偶校验位置指针的值,该奇偶校验位置指针指示第一奇偶校验被写入的位置;以及设置奇偶校验写入标志,该奇偶校验写入标志指示奇偶校验位置指针所指向的位置处的奇偶校验是否有效。
Description
相关申请的交叉引用
本申请要求于2020年11月17日提交的、申请号为10-2020-0153351的韩国专利申请的优先权,该韩国专利申请通过引用整体并入本文。
技术领域
本公开的实施例涉及一种存储器系统及其操作方法。
背景技术
存储器系统包括基于来自诸如计算机、服务器、智能电话、平板PC或其它电子装置的主机的请求来存储数据的数据存储装置。存储器系统的示例涵盖从常规的基于磁盘的硬盘驱动器(HDD)到诸如固态驱动器(SSD)、通用闪存装置(UFS)或嵌入式MMC(eMMC)装置的基于半导体的数据存储装置。
存储器系统可以进一步包括用于控制存储器装置的存储器控制器。存储器控制器可以从主机接收命令,并且基于接收到的命令,可以运行该命令或控制对存储器系统中的存储器装置的读取/写入/擦除操作。存储器控制器可以用于运行用于执行逻辑操作的固件操作以控制这些操作。
当存储器系统向存储器装置写入数据时,存储器系统可以将与待写入存储器装置的数据相对应的奇偶校验与该数据一起写入,以便验证所写入的数据是否没有错误。
发明内容
本公开的实施例可以提供一种能够防止在将数据以及与该数据相关联的奇偶校验写入存储器装置时由于一起写入不必要的虚拟数据而导致性能降低的存储器系统及其操作方法,该存储器系统包括存储器装置。
一方面,本公开的实施例可以提供一种存储器系统,该存储器系统包括具有多个存储块的存储器装置以及用于与存储器装置通信并控制存储器装置的存储器控制器。
在一个实施例中,存储器控制器可以被配置为:当从主机接收指示存储器装置将被高速缓存在数据高速缓存中的数据清除到存储器装置的清除命令时,将第一数据清除到存储器装置,该数据高速缓存被配置为高速缓存待写入存储器装置的数据,该第一数据被高速缓存在数据高速缓存中并且该第一数据的大小小于参考写入单位的大小,该参考写入单位是用于将数据与奇偶校验一起写入存储器装置的参考。
存储器控制器可以将与第一数据相关联的第一奇偶校验写入多个存储块之中的奇偶校验存储块,该奇偶校验存储块存储大小小于参考写入单位的大小的数据的奇偶校验。
存储器控制器可以将奇偶校验位置指针的值更新为第一奇偶校验被写入的位置,该奇偶校验位置指针指示与大小小于参考写入单位的大小的数据相关联的多个奇偶校验之中的、最近被写入存储器装置的奇偶校验的位置。
存储器控制器可以设置奇偶校验写入标志,该奇偶校验写入标志指示由奇偶校验位置指针所指示或指向的奇偶校验是否有效。
另一方面,本公开的实施例可以提供一种操作存储器系统的方法,该存储器系统包括具有多个存储块的存储器装置。
操作存储器系统的方法可以包括:从主机接收清除命令,该清除命令指示存储器装置将被高速缓存在数据高速缓存中的数据清除到存储器装置,该数据高速缓存用于高速缓存待写入存储器装置的数据。
操作存储器系统的方法可以包括:将第一数据清除到存储器装置,该第一数据被高速缓存在数据高速缓存中并且该第一数据的大小小于参考写入单位的大小,该参考写入单位是用于将数据与奇偶校验一起写入存储器装置的参考。
操作存储器系统的方法还可以包括:将与第一数据相关联的第一奇偶校验写入多个存储块之中的奇偶校验存储块,该奇偶校验存储块被配置为存储小于参考写入单位的大小的数据的奇偶校验。
操作存储器系统的方法可以进一步包括:将奇偶校验位置指针的值更新为第一奇偶校验被写入的位置,该奇偶校验位置指针指示与小于参考写入单位的大小的数据相关联的多个奇偶校验之中的、最近被写入存储器装置的奇偶校验的位置。
操作存储器系统的方法还可以包括:设置奇偶校验写入标志,该奇偶校验写入标志指示由奇偶校验位置指针所指示的奇偶校验是否有效。
另一方面,本公开的实施例可以提供一种存储器系统,该存储器系统包括具有多个存储块的存储器装置以及用于与存储器装置通信并控制存储器装置的存储器控制器。
存储器控制器可以将第一数据写入存储器装置的位置。
存储器控制器可以接着已经写入第一数据的位置写入第二数据。
存储器控制器可以计算与第一数据相关联的第一奇偶校验。
存储器控制器可以确定奇偶校验位置指针的值,该奇偶校验位置指针指示已经写入第一奇偶校验的位置。
存储器控制器可以设置奇偶校验写入标志。
本公开的实施例提供能够有效地防止在将数据以及数据的奇偶校验写入存储器装置时由于一起写入不必要的虚拟数据而导致性能降低的存储器系统和方法。
附图说明
图1是示出根据所公开技术的实施例的存储器系统的配置的示意图。
图2是示意性地示出根据所公开技术的实施例的存储器装置的框图。
图3是示出根据所公开技术的实施例的存储器装置的字线和位线的结构的示图。
图4是示出根据本公开的实施例的由存储器系统处理从主机接收的清除命令的操作的示图。
图5是示出根据本公开的实施例的由存储器系统将数据和奇偶校验写入存储器装置的操作的示例的示图。
图6是示出根据本公开的实施例的由存储器系统将数据和奇偶校验写入存储器装置的操作的另一示例的示图。
图7是示出根据本公开的实施例的由存储器系统将第一数据和第一奇偶校验写入存储器装置的操作的示例的示图。
图8是示出根据本公开的实施例的奇偶校验位置指针和奇偶校验写入标志的示例的示图。
图9是示出根据本公开的实施例的由存储器系统在第一数据被写入之后另外写入第二数据的操作的示例的示图。
图10是示出根据本公开的实施例的写入与第一数据和第二数据的总和相关联的奇偶校验的操作的示例的示图。
图11是示出根据本公开的实施例的写入与第一数据和第二数据的总和相关联的奇偶校验的操作的示例的示图。
图12是示出根据本公开的实施例的写入与第一数据和第二数据的总和相关联的奇偶校验的操作的另一示例的示图。
图13是示出根据本公开的实施例的在通电重置时由存储器系统执行的操作的示例的流程图。
图14是示出根据本公开的实施例的操作存储器系统的方法的示图。
图15是示出基于所公开技术的一些实施例的计算系统的配置的示图。
具体实施方式
在下文中,参照附图详细描述本公开的实施例。在整个说明书中,对“实施例”、“另一实施例”等的引用不一定仅针对一个实施例,并且对任何这种短语的不同引用不一定针对相同的实施例。本文使用的术语“各个实施例”不一定指代所有实施例。
图1是示意性地示出基于所公开技术的实施例的存储器系统100的配置的示图。
在一些实施方案中,存储器系统100可以包括被配置为存储数据的存储器装置110以及被配置为控制存储器装置110的存储器控制器120。
存储器装置110可以包括多个存储块,每个存储块包括用于存储数据的多个存储器单元。存储器装置110可以被配置为响应于从存储器控制器120接收的控制信号而操作。存储器装置110的操作可以包括例如读取操作、编程操作(也被称为“写入操作”)、擦除操作等。
存储器装置110中的存储器单元用于存储数据,并且可以布置在存储器单元阵列中。存储器单元阵列可以被划分为存储器单元的存储块,并且每个块包括存储器单元的不同页面。在NAND闪速存储器装置的典型实施方案中,存储器单元的页面是可以进行编程或写入的最小存储器单位,并且存储器单元中存储的数据可以以块的层级进行擦除。
在一些实施方案中,存储器装置110可以被实施为各种类型,诸如双倍数据速率同步动态随机存取存储器(DDR SDRAM)、第四代低功率双倍数据速率(LPDDR4)SDRAM、图形双倍数据速率(GDDR)SDRAM、低功率DDR(LPDDR)、Rambus动态随机存取存储器(RDRAM)、NAND闪速存储器、垂直NAND闪速存储器、NOR闪速存储器、电阻式随机存取存储器(RRAM)、相变随机存取存储器(PRAM)、磁阻随机存取存储器(MRAM)、铁电随机存取存储器(FRAM)或自旋转移扭矩随机存取存储器(STT-RAM)。
存储器装置110可以以三维阵列结构实施。所公开技术的一些实施例可应用于任何类型的具有电荷存储层的闪速存储器装置。在实施方案中,电荷存储层可以由导电材料形成,这种电荷存储层可以被称为浮置栅极。在另一实施方案中,电荷存储层可以由绝缘材料形成,这种闪速存储器装置可以被称为电荷撷取闪存(CTF)。
存储器装置110可以被配置为从存储器控制器120接收命令和地址,以访问存储器单元阵列的、使用该地址选择的区域。也就是说,存储器装置110可以对存储器装置中的具有与从存储器控制器120接收的地址相对应的物理地址的存储器区域执行与接收到的命令相对应的操作。
在一些实施方案中,存储器装置110可以执行编程操作、读取操作、擦除操作等。在编程操作期间,存储器装置110可以将数据写入由地址选择的区域。在读取操作期间,存储器装置110可以从由地址选择的存储器区域中读取数据。在擦除操作期间,存储器装置110可以擦除由地址选择的存储器区域中存储的数据。
存储器控制器120可以控制对存储器装置110执行的写入操作(编程操作)、读取操作、擦除操作和后台操作。后台操作可以包括例如被实施以优化存储器装置110的整体性能的操作,诸如垃圾收集(GC)操作、损耗均衡(WL)操作和坏块管理(BBM)操作。
存储器控制器120可以在主机的请求下控制存储器装置110的操作。可选地,当存储器控制器120执行存储器装置的后台操作时,即使在没有来自主机的请求的情况下,存储器控制器120也可以控制存储器装置110的操作。
存储器控制器120和主机可以是分开的装置。在一些实施方案中,存储器控制器120和主机可以被集成并被实施为单个装置。在下面的描述中,作为非限制性示例,存储器控制器120和主机将被作为分开的装置进行讨论。
参照图1,存储器控制器120可以包括存储器接口122、控制电路123和主机接口121。
主机接口121可以被配置为提供用于与主机通信的接口。
当从主机HOST接收命令时,控制电路123可以通过主机接口121接收命令,并且可以响应于接收到的命令而执行操作。
存储器接口122可以直接或间接地连接到存储器装置110以提供用于与存储器装置110通信的接口。也就是说,存储器接口122可以被配置为向存储器装置110和存储器控制器120提供接口,以供存储器控制器120基于来自控制电路123的控制信号和指令在存储器装置110中执行存储器操作。
控制电路123可以被配置为通过存储器控制器120来控制存储器装置110的操作。例如,控制电路123可以包括处理器124和工作存储器125。控制电路123可以进一步包括被配置为检测和校正一个或多个错误的错误检测/校正电路(ECC电路)126等。
处理器124可以控制存储器控制器120的全部操作。处理器124可以执行逻辑操作。处理器124可以通过主机接口121与主机HOST通信。处理器124可以通过存储器接口122与存储器装置110通信。
处理器124可以被配置为执行与闪存转换层(FTL)相关联的操作,以有效地管理存储器系统100中的存储器操作。处理器124可以通过FTL将由主机提供的逻辑块地址(LBA)转换为物理块地址(PBA)。FTL可以接收LBA,并且通过使用映射表将LBA转换为PBA。
基于映射单位,存在可以由FTL采用的各种地址映射方法。典型的地址映射方法可以包括页面映射方法、块映射方法和混合映射方法。
处理器124可以被配置为对从主机接收的数据进行随机化,以将经随机化的数据写入存储器单元阵列。例如,处理器124可以通过使用随机化种子来对从主机接收的数据进行随机化。经随机化的数据被提供到存储器装置110并被写入存储器单元阵列。
处理器124可以被配置为在读取操作期间对从存储器装置110接收的数据进行去随机化。例如,处理器124可以通过使用去随机化种子来对从存储器装置110接收的数据进行去随机化。经去随机化的数据可以被输出到主机HOST。
处理器124可以运行固件(FW)以控制存储器控制器120的操作。换句话说,处理器124可以控制存储器控制器120的全部操作,并且为了执行逻辑操作,可以运行(驱动)在启动期间加载到工作存储器125中的固件。
术语“固件”是指某个非易失性存储器中存储的程序或软件,并且由存储器系统100内部的处理器124运行。
在一些实施方案中,固件可以包括各种功能层。例如,固件可以包括闪存转换层(FTL)、主机接口层(HIL)和闪存接口层(FIL)中的至少一个,闪存转换层(FTL)被配置为将主机HOST请求中的逻辑地址转换为存储器装置110的物理地址,主机接口层(HIL)被配置为解释主机HOST向诸如存储器系统100的数据存储装置发出的命令并且将该命令传递到FTL,闪存接口层(FIL)被配置为将由FTL发出的命令传递到存储器装置110。
例如,固件可以被存储在存储器装置110中,然后被加载到工作存储器125中。
工作存储器125可以存储操作存储器控制器120所必需的固件、程序代码、命令或多条数据。工作存储器125可以包括例如作为易失性存储器的静态RAM(SRAM)、动态RAM(DRAM)和同步RAM(SDRAM)中的至少一个。
错误检测/校正电路126可以被配置为通过使用错误检测和校正码来对数据中的一个或多个错误位进行检测和校正。在一些实施方案中,进行错误检测和校正的数据可以包括工作存储器125中存储的数据以及从存储器装置110检索的数据。
错误检测/校正电路126可以被实施为通过使用错误校正码来对数据进行解码。错误检测/校正电路126可以通过使用各种解码方案来实施。例如,可以使用执行非系统代码解码的解码器或执行系统代码解码的解码器。
在一些实施方案中,错误检测/校正电路126可以基于扇区来检测一个或多个错误位。也就是说,每条读取数据可以包括多个扇区。在本公开中,扇区可以指小于闪速存储器的读取单位(例如,页面)的数据单位。构成每条读取数据的扇区可以基于地址进行映射。
在一些实施方案中,错误检测/校正电路126可以逐个扇区地计算位错误率(BER),并且确定数据中的错误位的数量是否处于错误校正能力之内。例如,如果BER高于参考值,则错误检测/校正电路126可以确定相应扇区中的错误位是不可校正的,并且将相应扇区标记为“失败”。如果BER小于或等于参考值,则错误检测/校正电路126可以确定相应扇区是可校正的,或者可以将相应扇区标记为“通过”。
错误检测/校正电路126可以对所有的读取数据依次地执行错误检测和校正操作。当读取数据中包括的扇区是可校正的时,错误检测/校正电路126可以继续前进到下一扇区,以检查是否需要对该下一扇区进行错误校正操作。在以这种方式完成对所有读取数据的错误检测和校正操作之后,错误检测/校正电路126可以获取关于读取数据中的哪个扇区被认为是不可校正的信息。错误检测/校正电路126可以将这种信息(例如,不可校正位的地址)提供到处理器124。
存储器系统100还可以包括总线127,以在存储器控制器120的构成元件121、122、124、125和126(即,主机接口121、存储器接口122、处理器124、工作存储器125和错误检测/校正电路126)之间提供通道。总线127可以包括例如用于传递各种类型的控制信号和命令的控制总线以及用于传递各种类型的数据的数据总线。
作为示例,图1示出存储器控制器120的上述构成元件121、122、124、125和126。注意的是,可以省略附图所示的那些元件中的一些,或者可以将存储器控制器120的上述构成元件121、122、124、125和126中的一些集成到单个元件中。另外,在一些实施方案中,可以将一个或多个其它构成元件添加到存储器控制器120的上述构成元件中。
图2是示意性地示出基于所公开技术的实施例的存储器装置110的框图。
在一些实施方案中,基于所公开技术的实施例的存储器装置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可以以三维结构布置。
存储器单元阵列210中包括的多个存储器单元中的每一个可以存储至少一位数据。例如,存储器单元阵列210中包括的多个存储器单元中的每一个可以是被配置为存储一位数据的单层单元(SLC)。作为另一示例,存储器单元阵列210中包括的多个存储器单元中的每一个可以是被配置为每个存储器单元存储两位数据的多层单元(MLC)。作为另一示例,存储器单元阵列210中包括的多个存储器单元中的每一个可以是被配置为每个存储器单元存储三位数据的三层单元(TLC)。作为再一示例,存储器单元阵列210中包括的多个存储器单元中的每一个可以是被配置为每个存储器单元存储四位数据的四层单元(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。当存储器单元阵列210执行读取操作时,读取/写入电路230可以作为“读取电路”进行操作,并且当存储器单元阵列210执行写入操作时,读取/写入电路230可以作为“写入电路”进行操作。
上述读取/写入电路230也被称为页面缓冲器电路或数据寄存器电路,页面缓冲器电路包括多个页面缓冲器PB。读取/写入电路230可以包括参与数据处理功能的数据缓冲器,并且在一些实施方案中,可以进一步包括用于数据高速缓存的高速缓存缓冲器。
多个页面缓冲器PB可以通过多个位线BL连接到存储器单元阵列210。为了在读取操作和编程验证操作期间检测或感测存储器单元的阈值电压Vth,多个页面缓冲器PB可以向连接到存储器单元的位线BL连续地供应感测电流,以在感测节点处检测与根据相应存储器单元的编程状态而变化的电流量成比例的改变,并且可以将相应的电压保存或锁存为感测数据。
读取/写入电路230可以响应于从控制逻辑240输出的页面缓冲器控制信号而操作。
在读取操作期间,读取/写入电路230感测存储器单元的电压值,并且读出该电压值作为数据。读取/写入电路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。
设置在存储器装置110中的存储块BLK可以包括多个页面PG。在一些实施方案中,按列布置的多个存储器单元形成存储器单元串,并且按行布置的多个存储器单元形成存储块。多个页面PG中的每一个联接到字线WL中的一个,并且存储器单元串STR中的每一个联接到位线BL中的一个。
在存储块BLK中,多个字线WL和多个位线BL可以按行和列布置。例如,多个字线WL中的每一个可以沿行方向布置,并且多个位线BL中的每一个可以沿列方向布置。可选地,多个字线WL中的每一个可以沿列方向布置,并且多个位线BL中的每一个可以沿行方向布置。
在一些实施方案中,多个字线WL和多个位线BL可以彼此相交并且彼此电隔离,从而在多个存储器单元MC的阵列中进行单个存储器单元的寻址。在一些实施方案中,每个存储器单元MC可以包括晶体管TR,该晶体管TR包括可以保持电荷的材料层。
例如,每个存储器单元MC中布置的晶体管TR可以包括漏极、源极和栅极。晶体管TR的漏极(或源极)可以直接地或经由另一晶体管TR连接到相应的位线BL。晶体管TR的源极(或漏极)可以直接地或经由另一晶体管TR连接到源极线(可以是地)。晶体管TR的栅极可以包括由绝缘体包围的浮置栅极(FG)以及从字线WL向其施加栅极电压的控制栅极(CG)。
在多个存储块BLK1至BLKz的每一个中,可以在两个最外字线之中更靠近读取/写入电路230的第一最外字线的外侧另外布置第一选择线(也被称为源极选择线或漏极选择线),并且可以在另外的第二最外字线的外侧另外布置第二选择线(也被称为漏极选择线或源极选择线)。
在一些实施方案中,可以在第一最外字线和第一选择线之间另外布置至少一个虚设字线。另外,可以在第二最外字线和第二选择线之间另外布置至少一个虚设字线。
可以逐个页面地执行存储块的读取操作和编程操作(写入操作),并且可以逐个存储块地执行擦除操作。
图3是示出基于所公开技术的实施例的存储器装置110的字线WL和位线BL的结构的示图。
参照图3,存储器装置110具有布置存储器单元MC的内核区域,以及包括用于执行存储器单元阵列210的操作的电路的辅助区域(除了内核区域以外的剩余区域)。
在内核区域中,沿一个方向布置的一定数量的存储器单元可以被称为“页面”PG,并且串联联接的一定数量的存储器单元可以被称为“存储器单元串”STR。
字线WL1至WL9可以连接到行解码器310。位线BL可以连接到列解码器320。对应于图2的读取/写入电路230的数据寄存器330可以存在于多个位线BL和列解码器320之间。
多个字线WL1至WL9可以对应于多个页面PG。
例如,如图3所示,多个字线WL1至WL9中的每一个可以对应于一个页面PG。当多个字线WL1至WL9中的每一个具有较大大小时,多个字线WL1至WL9中的每一个可以对应于至少两个(例如,两个或四个)页面PG。每个页面PG是编程操作和读取操作中的最小单位,并且当进行编程操作和读取操作时,相同页面PG内的所有存储器单元MC可以同时执行操作。
多个位线BL可以连接到列解码器320。在一些实施方案中,可以将多个位线BL划分为奇数编号位线BL和偶数编号位线BL,使得一对奇数编号位线和偶数编号位线共同联接到列解码器320。
在访问存储器单元MC时,可以使用行解码器310和列解码器320以基于地址来定位所期望的存储器单元。
在一些实施方案中,因为由存储器装置110进行的、包括编程操作和读取操作的所有数据处理都经由数据寄存器330发生,所以数据寄存器330起着重要的作用。如果由数据寄存器330进行的数据处理被延迟,则所有的其它区域都需要等待,直到数据寄存器330完成数据处理,这降低了存储器装置110的整体性能。
参照图3所示的示例,在一个存储器单元串STR中,多个晶体管TR1至TR9可以分别连接到多个字线WL1至WL9。在一些实施方案中,多个晶体管TR1至TR9对应于存储器单元MC。在该示例中,多个晶体管TR1至TR9包括控制栅极CG和浮置栅极FG。
多个字线WL1至WL9包括两个最外字线WL1和WL9。可以在第一最外字线WL1的外侧另外布置第一选择线DSL,与另一最外字线WL9相比,该第一最外字线WL1更靠近数据寄存器330并具有更短的信号路径。可以在另外的第二最外字线WL9的外侧另外布置第二选择线SSL。
由第一选择线DSL控制以导通/关断的第一选择晶体管D-TR具有连接到第一选择线DSL的栅电极,但是不包括浮置栅极FG。由第二选择线SSL控制以导通/关断的第二选择晶体管S-TR具有连接到第二选择线SSL的栅电极,但是不包括浮置栅极FG。
第一选择晶体管D-TR用作将相应的存储器单元串STR连接到数据寄存器330的开关电路。第二选择晶体管S-TR用作将相应的存储器单元串STR连接到源极线SL的开关电路。也就是说,第一选择晶体管D-TR和第二选择晶体管S-TR可以用于启用或停用相应的存储器单元串STR。
在一些实施方案中,存储器系统100向第一选择晶体管D-TR的栅电极施加预定的导通电压Vcc,从而导通第一选择晶体管D-TR,并且向第二选择晶体管S-TR的栅电极施加预定的关断电压(例如,0V),从而关断第二选择晶体管S-TR。
在读取操作或验证操作期间,存储器系统100导通第一选择晶体管D-TR和第二选择晶体管S-TR两者。因此,在读取操作或验证操作期间,电流可以流经相应的存储器单元串STR并流到对应于地的源极线SL,使得可以测量位线BL的电压电平。然而,在读取操作期间,第一选择晶体管D-TR和第二选择晶体管S-TR之间的通/断定时可能存在时间差。
在擦除操作期间,存储器系统100可以通过源极线SL向衬底施加预定的电压(例如,+20V)。在擦除操作期间,存储器系统100施加一定的电压以允许第一选择晶体管D-TR和第二选择晶体管S-TR两者浮置。因此,所施加的擦除电压可以将电荷从所选择的存储器单元的浮置栅极FG中去除。
图4是示出根据本公开的实施例的由包括存储器装置100和存储器控制器120的存储器系统100处理从主机接收的清除命令FLUSH_CMD的操作的示图。
当从主机接收待写入存储器装置110的数据时,存储器系统100的存储器控制器120可以将接收到的数据高速缓存在数据高速缓存DATA_CACHE中。数据高速缓存DATA_CACHE可以位于存储待写入存储器装置110的数据的易失性存储器中。例如,数据高速缓存DATA_CACHE可以位于上面参照图1描述的工作存储器125上。
当满足特定条件时,存储器系统100的存储器控制器120可以将被高速缓存在数据高速缓存DATA_CACHE中的数据清除到存储器装置110。由存储器控制器120执行的从数据高速缓存DATA_CACHE清除到存储器装置110可以指存储器控制器120将相应的数据写入存储器装置110,并且从数据高速缓存DATA_CACHE中删除该数据。在这种情况下,可以将被高速缓存在数据高速缓存DATA_CACHE中的数据存储在设置在存储器装置110中的多个存储块BLK的任意一个中,或者被分布和存储在一个或多个存储块中。
当从主机接收清除命令FLUSH_CMD时,存储器控制器120可以将被高速缓存在数据高速缓存DATA_CACHE中的数据清除到存储器装置110。清除命令FLUSH_CMD可以是指示不管是否满足将被高速缓存在数据高速缓存DATA_CACHE中的数据清除到存储器装置110的条件都将被高速缓存在数据高速缓存DATA_CACHE中的数据清除到存储器装置110的命令。
当从主机接收清除命令FLUSH_CMD时,存储器控制器120可以在清除被高速缓存在数据高速缓存DATA_CACHE中的数据的同时写入与被写入存储器装置110的数据相关联的奇偶校验。在这种情况下,存储器控制器120可以例如通过对数据的每个位执行特定操作(例如,XOR操作)来生成与数据相对应的奇偶校验。作为另一示例,存储器控制器120可以通过将数据输入到单独的奇偶校验计算电路来生成与该数据相对应的奇偶校验。
在图4中,作为示例,已经描述了将数据以及与该数据相关联的奇偶校验写入存储器装置110中的相同存储块BLK(例如,存储块410)的情况。然而,数据以及与该数据相对应的奇偶校验可以被分布和存储在存储器装置110中的不同存储块BLK中。
在下文中,将详细描述由存储器系统100将数据以及与该数据相关联的奇偶校验写入存储器装置110的操作的示例。
图5是示出根据本公开的实施例的由存储器系统100将数据和奇偶校验写入存储器装置110的操作的示例的示图。
参照图5,存储器系统100的存储器控制器120可以通过将被高速缓存在数据高速缓存DATA_CACHE中的数据的大小510与参考写入单位REF_WR_UNIT的大小520进行比较,确定是否将数据写入存储器装置110。
参考写入单位REF_WR_UNIT可以是存储器控制器120用来将被高速缓存在数据高速缓存DATA_CACHE中的数据以及与该数据相关联的奇偶校验一起写入存储器装置110的参考。例如,参考写入单位REF_WR_UNIT可以是条带单位,该条带单位是在字线WL、存储器装置110或逻辑上捆绑存储器装置110中包括的多个存储块BLK中的至少一个的超级存储块中一次写入数据的单位。
当被高速缓存在数据高速缓存DATA_CACHE中的数据的大小510小于参考写入单位REF_WR_UNIT的大小520时,存储器控制器120可以将待写入的数据高速缓存在数据高速缓存DATA_CACHE中。
在被高速缓存在数据高速缓存DATA_CACHE中的数据的大小510超过或大于参考写入单位REF_WR_UNIT的大小520的情况下,存储器控制器120可以将具有参考写入单位REF_WR_UNIT的大小的数据以及与相应数据相关联的奇偶校验一起写入存储器装置110。例如,可以相继地或连续地将数据和奇偶校验写入存储器装置110。在这种情况下,数据和奇偶校验的相继写入可以并不意为数据和奇偶校验被写入物理上相邻的区域,而是数据和奇偶校验被写入参考写入单位REF_WR_UNIT内逻辑上相邻的地址。
图6是示出根据本公开的实施例的由存储器系统100将数据和奇偶校验写入存储器装置110的操作的另一示例的示图。
参照图6,当被高速缓存在数据高速缓存DATA_CACHE中的数据的大小610小于参考写入单位REF_WR_UNIT的大小620时,存储器系统100的存储器控制器120可以继续将待写入的数据高速缓存在数据高速缓存DATA_CACHE中。
在这种情况下,在被高速缓存在数据高速缓存DATA_CACHE中的数据的大小小于参考写入单位REF_WR_UNIT的大小时,存储器控制器120可能从主机接收清除命令FLUSH_CMD。
因为已经从主机接收到清除命令FLUSH_CMD,所以存储器控制器120将会将被高速缓存在数据高速缓存DATA_CACHE中的数据清除到存储器装置110。然而,此时,被高速缓存在数据高速缓存DATA_CACHE中的数据的大小小于参考写入单位REF_WR_UNIT的大小。
因此,存储器控制器120可以接着被高速缓存在数据高速缓存DATA_CACHE中的数据写入虚拟数据。在这种情况下,被高速缓存在数据高速缓存DATA_CACHE中的数据的大小与虚拟数据的大小的总和可以达到参考写入单位REF_WR_UNIT的大小。
进一步地,存储器控制器120可以计算与被高速缓存在数据高速缓存DATA_CACHE中的数据和虚拟数据的总和相关联的奇偶校验,并且将被高速缓存在数据高速缓存DATA_CACHE中的数据、虚拟数据以及奇偶校验一起写入存储器装置110。因此,即使当被高速缓存在数据高速缓存DATA_CACHE中的数据的大小小于参考写入单位REF_WR_UNIT时,存储器控制器120也可以处理从主机接收的清除命令FLUSH_CMD。
然而,如上所述的另外写入虚拟数据的方法可能具有以下问题。因为将主机未请求写入的虚拟数据写入了存储器装置110,所以可能存在(被写入存储器装置的数据量)/(主机请求写入的数据量)比率增加的问题。另外,存储器装置110中包括的多个存储块BLK之中的空闲存储块的数量可能减少。因此,存储器装置110的存储容量可能减小,并且执行用于获得空闲存储块的垃圾收集(GC)的频率可能增加,从而导致存储器系统100的性能降低的问题。
在下文中,本公开的实施例描述存储器系统100能够解决上述性能降低问题的新颖性操作。
图7是示出根据本公开的实施例的由存储器系统100将第一数据DATA_1和第一奇偶校验PARITY_1写入存储器装置110的操作的示例的示图。
参照图7,在第一数据DATA_1被高速缓存在数据高速缓存DATA_CACHE中时,存储器系统100的存储器控制器120可能从主机接收清除命令FLUSH_CMD。在这种情况下,第一数据DATA_1的大小710小于参考写入单位REF_WR_UNIT的大小720。另外,第一数据DATA_1的大小710可以是可变的。
在这种情况下,存储器控制器120可以在不添加虚拟数据的情况下将第一数据DATA_1清除到存储器装置110,并且可以将作为第一数据DATA_1的奇偶校验的第一奇偶校验PARITY_1写入存储器装置110中包括的多个存储块BLK之中的奇偶校验存储块PARITY_BLK。奇偶校验存储块PARITY_BLK是存储器装置110中包括的多个存储块BLK之中存储大小小于参考写入单位REF_WR_UNIT的大小的数据的奇偶校验的存储块。同时,即使在将第一奇偶校验PARITY_1写入奇偶校验存储块PARITY_BLK之后,存储器控制器120也可以在不删除第一奇偶校验PARITY_1的情况下在其中存储第一奇偶校验PARITY_1。
因此,存储器控制器120可以处理从主机接收的清除命令FLUSH_CMD,而无需另外向存储器装置110写入虚拟数据,从而解决了由于写入虚拟数据而导致的性能降低问题。
在这种情况下,存储器控制器120被配置为利用参考写入单位REF_WR_UNIT来管理第一数据DATA_1和第一奇偶校验PARITY_1,用以将被写入存储器装置110的第一数据DATA_1以及待另外写入的数据进行组合并再次写入存储器装置110。
在下文中,将描述奇偶校验位置指针PARITY_LOC_PTR和奇偶校验写入标志PARITY_WR_FLG,在本公开的实施例中,该奇偶校验位置指针PARITY_LOC_PTR和奇偶校验写入标志PARITY_WR_FLG是用于管理第一数据DATA_1和第一奇偶校验PARITY_1的信息。
图8是示出根据本公开的实施例的奇偶校验位置指针PARITY_LOC_PTR和奇偶校验写入标志PARITY_WR_FLG的示例的示图。
参照图8,存储器控制器120可以将奇偶校验位置指针PARITY_LOC_PTR的值更新为第一奇偶校验PARITY_1被存储的位置。
奇偶校验位置指针PARITY_LOC_PTR是指示与大小小于参考写入单位REF_WR_UNIT的大小的多个相应数据相关联的多个奇偶校验之中被最近写入存储器装置110的奇偶校验的位置的值。
在本公开的实施例中,因为具有参考写入单位REF_WR_UNIT的大小的数据的奇偶校验可以与该数据被一起写入,所以存储器系统100可以不需要单独地指示位置。然而,因为与大小小于参考写入单位REF_WR_UNIT的大小的数据相关联的奇偶校验被写入单独的奇偶校验存储块PARITY_BLK,所以可能需要指示奇偶校验被写入的位置的指针。
在将第一奇偶校验PARITY_1写入奇偶校验存储块PARITY_BLK之前,存储器控制器120可以通过使用现有奇偶校验位置指针PARITY_LOC_PTR的值来检查待写入第一奇偶校验PARITY_1的位置。另外,存储器控制器120可以接着或顺着现有奇偶校验位置指针PARITY_LOC_PTR所指示的位置写入第一奇偶校验PARITY_1,并且可以将奇偶校验位置指针PARITY_LOC_PTR的值更新为已经写入第一奇偶校验PARITY_1的位置。
此外,存储器控制器120可以设置奇偶校验写入标志PARITY_WR_FLG,该奇偶校验写入标志PARITY_WR_FLG是指示奇偶校验位置指针PARITY_LOC_PTR所指示(指向或识别)的位置处的奇偶校验是否有效的标志。
在设置了奇偶校验写入标志PARITY_WR_FLG的情况下,奇偶校验写入标志PARITY_WR_FLG可以指示奇偶校验位置指针PARITY_LOC_PTR所指示的位置处的奇偶校验是有效的。另一方面,如果重置了奇偶校验写入标志PARITY_WR_FLG,则奇偶校验写入标志PARITY_WR_FLG可以指示奇偶校验位置指针PARITY_LOC_PTR所指示的位置处的奇偶校验是无效的。
存储器控制器120可以通过将奇偶校验写入标志PARITY_WR_FLG的值设置为第一值(例如,1)来设置奇偶校验写入标志PARITY_WR_FLG。另外,存储器控制器120可以通过将奇偶校验写入标志PARITY_WR_FLG的值设置为第二值(例如,0)来重置奇偶校验写入标志PARITY_WR_FLG,该第二值不同于第一值。
同时,奇偶校验位置指针PARITY_LOC_PTR和奇偶校验写入标志PARITY_WR_FLG的位置可以根据实施方案而变化。
在示例性实施例中,奇偶校验位置指针PARITY_LOC_PTR和奇偶校验写入标志PARITY_WR_FLG可以被包括在用于管理存储器装置110中存储的数据的元数据中。
在另一示例性实施例中,奇偶校验位置指针PARITY_LOC_PTR和奇偶校验写入标志PARITY_WR_FLG可以被存储在存储器装置110中包括的多个存储块BLK之中被分配以存储奇偶校验位置指针PARITY_LOC_PTR和奇偶校验写入标志PARITY_WR_FLG的单独的存储块中。
上面的示例性实施例已经描述了存储器系统100将第一数据DATA_1写入存储器装置110的操作。
在下文中,本公开的实施例将描述存储器系统100在将第一数据DATA_1写入存储器装置110之后立即另外写入第二数据DATA_2的操作。
图9是示出根据本公开的实施例的由存储器系统100在第一数据DATA_1被写入之后另外写入第二数据DATA_2的操作的示例的示图。
参照图9,当在第一数据DATA_1被写入存储器装置110中之后写入第二数据DATA_2时,存储器系统100的存储器控制器120可以接着或顺着存储器装置110中写入第一数据DATA_1的位置写入第二数据DATA_2。在这种情况下,第二数据DATA_2的大小可以在运行期间改变。
图10是示出根据本公开的实施例的存储器系统100写入与第一数据DATA_1和第二数据DATA_2的总和相关联的奇偶校验的操作的示例的示图。
参照图10,存储器系统100的存储器控制器120可以将与第一数据DATA_1和第二数据DATA_2的总和相关联的奇偶校验写入存储器装置110。
在这种情况下,存储器控制器120写入与第一数据DATA_1和第二数据DATA_2的总和相关联的奇偶校验的特定操作可以根据第一数据DATA_1的大小和第二数据DATA_2的大小的总和而变化。在下文中,将参照图11和图12详细描述根据本公开的实施例的奇偶校验写入操作。
参照图11和图12,分开示出奇偶校验写入标志PARITY_WR_FLG与存储器装置110,以指示奇偶校验写入标志PARITY_WR_FLG是否改变,但理解的是,这不限于奇偶校验写入标志PARITY_WR_FLG存在于存储器装置110的外部的情况。
此外,在图11和图12中,奇偶校验写入标志PARITY_WR_FLG上的“V”标记表示已经设置了奇偶校验写入标志PARITY_WR_FLG,并且奇偶校验写入标志PARITY_WR_FLG上没有“V”标记表示已经重置了奇偶校验写入标志PARITY_WR_FLG。
图11是示出根据本公开的实施例的存储器系统100写入第一数据DATA_1与第二数据DATA_2的总和的奇偶校验的操作的示例的示图。
在图11中,第一数据DATA_1的大小1101与第二数据DATA_2的大小1102的总和1103具有大小1103,该大小1103等于参考写入单位REF_WR_UNIT的大小1104。另外,奇偶校验位置指针PARITY_LOC_PTR指示与第一数据DATA_1相关联的第一奇偶校验PARITY_1被写入的位置1105,并且奇偶校验写入标志PARITY_WR_FLG处于V标记所指示的设置状态1106。
在这种情况下,存储器控制器120可以重置奇偶校验写入标志PARITY_WR_FLG(将奇偶校验写入标志PARITY_WR_FLG改变为“未标记”框所指示的重置状态1107),并且接着第二数据DATA_2写入第一数据DATA_1与第二数据DATA_2的总和的奇偶校验。存储器控制器120重置奇偶校验写入标志PARITY_WR_FLG的原因是:第一数据DATA_1与第二数据DATA_2的总和的奇偶校验1109已经被写入存储器装置110,从而存储器控制器120不需要管理第一奇偶校验PARITY_1。
同时,存储器控制器120可以保持奇偶校验位置指针PARITY_LOC_PTR而不改变值。此后,当新奇偶校验被写入奇偶校验存储块PARITY_BLK时,可以基于奇偶校验位置指针PARITY_LOC_PTR的值来确定待写入的新奇偶校验的位置。
图12是示出根据本公开的实施例的写入第一数据DATA_1与第二数据DATA_2的总和的奇偶校验的操作的另一示例的示图。
参照图12,第一数据DATA_1的大小1201与第二数据DATA_2的大小1202的总和1203小于参考写入单位REF_WR_UNIT的大小1204。
在这种情况下,存储器控制器120可以重置奇偶校验写入标志PARITY_WR_FLG,并且将第一数据DATA_1与第二数据DATA_2的总和(与第一数据DATA_1和第二数据DATA_2的总和相关联)的奇偶校验在位置1205处写入奇偶校验存储块PARITY_BLK。这是因为:第一数据DATA_1的大小1201与第二数据DATA_2的大小1202的总和1203小于参考写入单位REF_WR_UNIT的大小1204。
因为第一数据DATA_1与第二数据DATA_2的总和的奇偶校验是有效奇偶校验,所以存储器控制器120可以设置例如由V标记1206所指示的奇偶校验写入标志PARITY_WR_FLG。
另外,因为第一数据DATA_1与第二数据DATA_2的总和的奇偶校验是最近写入的奇偶校验,所以存储器控制器120可以将奇偶校验位置指针PARITY_LOC_PTR的值更新为第一数据DATA_1与第二数据DATA_2的总和的奇偶校验被写入的位置1208。
图13是示出根据本公开的实施例的在通电重置时由存储器系统100执行的操作的示例的流程图。
参照图13,存储器系统100的存储器控制器120可以在通电重置(POR)时检查奇偶校验写入标志PARITY_WR_FLG(S1310)。
存储器控制器120可以确定是否设置了奇偶校验写入标志PARITY_WR_FLG(S1320)。在这种情况下,设置了奇偶校验写入标志PARITY_WR_FLG的状态可以意为大小小于参考写入单位REF_WR_UNIT的大小的数据被写入存储器装置110,因此存储器控制器120需要验证数据中是否已经发生了错误。
在设置了奇偶校验写入标志PARITY_WR_FLG的情况下(S1320-是),存储器控制器120可以基于被写入由奇偶校验位置指针PARITY_LOC_PTR所指示的位置的第一奇偶校验PARITY_1来验证被写入存储器装置110的第一数据DATA_1(S1330)。在这种情况下,存储器控制器120可以基于被写入存储器装置110的第一数据DATA_1来计算奇偶校验,并且通过确定计算出的奇偶校验是否与第一奇偶校验PARITY_1相同来验证第一数据DATA_1,并且可以终止操作(结束)。在没有设置奇偶校验写入标志PARITY_WR_FLG的情况下(S1320-否),存储器控制器120不执行动作(结束)。
同时,存储器控制器120可以在设置在存储器装置110中的多个存储块BLK之中的开放存储块中搜索第一数据DATA_1。这是因为:在大小小于参考写入单位REF_WR_UNIT的大小的第一数据DATA_1已经被写入存储器装置110的开放存储块之后,在写入第一数据DATA_1的存储块已经被封闭之前运行通电重置。
图14是示出根据本公开的示例性实施例的操作存储器系统100的方法的流程图。
参照图14,操作存储器系统100的方法可以包括从主机接收清除命令FLUSH_CMD,该清除命令FLUSH_CMD指示存储器系统100将被高速缓存在数据高速缓存DATA_CACHE中的数据清除到存储器装置110(S1410)。参照图4,存储器系统100从主机接收清除命令FLUSH_CMD。
另外,操作存储器系统100的操作方法可以包括将第一数据DATA_1清除到存储器装置110(S1420)。在这种情况下,第一数据DATA_1处于被高速缓存在数据高速缓存DATA_CACHE中的状态,并且具有小于参考写入单位REF_WR_UNIT的大小的大小,其中数据高速缓存DATA_CACHE用于高速缓存待写入存储器装置110的数据,该参考写入单位REF_WR_UNIT是用于将数据与奇偶校验一起写入存储器装置110的参考。
进一步地,操作存储器系统100的方法可以包括将作为与第一数据DATA_1相关联的奇偶校验的第一奇偶校验PARITY_1写入奇偶校验存储块PARITY_BLK(S1430)。奇偶校验存储块PARITY_BLK是存储器装置110中包括的多个存储块BLK之中用于存储数据块的奇偶校验的存储块,其中每个数据块的大小小于参考写入单位REF_WR_UNIT的大小。参照图12,与第一数据DATA_1相关联的PARITY_1被存储在奇偶校验存储块PARITY_BLK的位置1205,并且(DATA_1+DATA_2)的奇偶校验被存储在奇偶校验存储块PARITY_BLK的位置1208。
另外,存储器系统100的操作方法可以包括将奇偶校验位置指针PARITY_LOC_PTR的值更新为第一奇偶校验PARITY_1被写入的位置,该奇偶校验位置指针PARITY_LOC_PTR的值指示大小小于参考写入单位REF_WR_UNIT的大小的数据块的奇偶校验之中最近被写入存储器装置110的奇偶校验的位置(S1440)。
存储器系统100的操作方法可以包括设置奇偶校验写入标志PARITY_WR_FLG,该奇偶校验写入标志PARITY_WR_FLG是指示由奇偶校验位置指针PARITY_LOC_PTR所指示的奇偶校验是否有效的标志(S1450)。
在这种情况下,奇偶校验写入标志PARITY_WR_FLG和奇偶校验位置指针PARITY_LOC_PTR可以被包括在用于管理存储器装置110中存储的数据的元数据中。
操作存储器系统100的方法可以进一步包括接着存储器装置110中写入第一数据DATA_1的位置写入第二数据DATA_2,该第二数据DATA_2是紧接第一数据DATA_1之后将写入的数据。
存储器系统100的操作方法可以进一步包括将第一数据DATA_1与第二数据DATA_2的总和的奇偶校验写入存储器装置110。
在这种情况下,例如,当第一数据DATA_1的大小与第二数据DATA_2的大小的总和等于参考写入单位REF_WR_UNIT的大小时,可以重置奇偶校验写入标志PARITY_WR_FLG。可以接着第二数据DATA_2写入第一数据DATA_1与第二数据DATA_2的总和的奇偶校验。参照图11,接着或顺着第二数据DATA_2写入与DATA_1和DATA_2相关联的奇偶校验1109。
在另一示例性实施例中,在第一数据DATA_1的大小与第二数据DATA_2的大小的总和小于参考写入单位REF_WR_UNIT的大小的情况下,可以设置奇偶校验写入标志PARITY_WR_FLG,并且可以将第一数据DATA_1与第二数据DATA_2的总和的奇偶校验写入奇偶校验存储块PARITY_BLK,并且可以将奇偶校验位置指针PARITY_LOC_PTR的值更新为第一数据DATA_1与第二数据DATA_2的总和的奇偶校验被写入的位置。参照图12,可以将奇偶校验位置指针PARITY_LOC_PTR的值更新为第一数据DATA_1与第二数据DATA_2的总和的奇偶校验被写入的位置1208。
操作存储器系统100的方法可以进一步包括在通电重置时检查奇偶校验写入标志PARITY_WR_FLG,并且在设置了奇偶校验写入标志PARITY_WR_FLG的情况下,基于被写入由奇偶校验位置指针PARITY_LOC_PTR所指示的位置中的第一奇偶校验PARITY_1来验证被写入存储器装置110的第一数据DATA_1。
在一些实施方案中,上述存储器控制器120的操作可以由控制电路123控制,并且可以以处理器124运行(驱动)工作存储器125中的编程了存储器控制器120的全部操作的固件或程序指令的方式来执行。
图15是示出根据所公开技术的实施例的计算系统1500的配置的示图。
参照图15,根据所公开技术的实施例的计算系统1500可以包括:存储器系统100,电连接到系统总线1560;CPU 1510,被配置为控制计算系统1500的全部操作;RAM 1520,被配置为存储与计算系统1500的操作相关联的数据和信息;用户接口/用户体验(UI/UX)模块1530,被配置为向用户提供用户环境;通信模块1540,被配置为作为有线和/或无线类型与外部装置通信;以及电源管理模块1550,被配置为管理计算系统1500所使用的电力。
计算系统1500可以是个人计算机(PC),或者可以是诸如智能电话、平板电脑或各种电子装置的移动终端中的任意一个或多个。
计算系统1500可以进一步包括用于供应操作电压的电池,并且可以进一步包括应用芯片组、图形相关模块、相机图像处理器和DRAM。其它元件对于本领域技术人员而言将是显而易见的。
存储器系统100不仅可以包括诸如硬盘驱动器(HDD)的被配置为将数据存储在磁盘中的装置,还可以包括诸如固态驱动器(SSD)、通用闪存装置或嵌入式MMC(eMMC)装置的被配置为将数据存储在非易失性存储器中的装置。非易失性存储器可以包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、闪速存储器、相变RAM(PRAM)、磁性RAM(MRAM)、电阻式RAM(RRAM)、铁电RAM(FRAM)等。另外,存储器系统100可以被实施为各种类型的存储装置并且被安装在各种电子装置内部。
基于上述所公开技术的实施例,可以有利地减少或最小化存储器系统的操作延迟时间。另外,基于所公开技术的实施例,可以有利地减少或最小化在调用特定功能的进程中发生的开销。尽管已经出于说明的目的利用特定详情和不同细节描述了所公开技术的各个实施例,但是本领域技术人员将理解,可以基于本公开所公开或示出的内容进行各种修改、添加和替换。
Claims (20)
1.一种存储器系统,包括:
存储器装置,包括多个存储块;以及
存储器控制器,与所述存储器装置通信并控制所述存储器装置;
其中所述存储器控制器在从主机接收指示所述存储器装置将被高速缓存在数据高速缓存中的数据清除到所述存储器装置的清除命令时:
将被高速缓存在所述数据高速缓存中的第一数据清除到所述存储器装置,所述第一数据的大小小于参考写入单位的大小,所述参考写入单位是将数据与奇偶校验一起写入所述存储器装置的参考,并且
将与所述第一数据相关联的第一奇偶校验写入所述多个存储块之中的奇偶校验存储块,所述奇偶校验存储块存储数据块的奇偶校验,所述数据块中的每一个的大小小于所述参考写入单位的大小。
2.根据权利要求1所述的存储器系统,其中所述存储器控制器将奇偶校验位置指针的值更新为所述第一奇偶校验被写入的位置,所述奇偶校验位置指针的所述值指示所述数据块的奇偶校验之中被最近写入所述存储器装置的奇偶校验的位置,并且
设置奇偶校验写入标志,所述奇偶校验写入标志指示所述奇偶校验位置指针所指示的位置处的所述第一奇偶校验是否有效。
3.根据权利要求1所述的存储器系统,其中所述存储器控制器接着所述存储器装置中写入所述第一数据的位置写入将紧接着所述第一数据之后写入的第二数据。
4.根据权利要求3所述的存储器系统,其中所述存储器控制器将所述第一数据与所述第二数据的总和的奇偶校验写入所述存储器装置。
5.根据权利要求4所述的存储器系统,其中,当所述第一数据的大小与所述第二数据的大小的总和是所述参考写入单位的大小时,所述存储器控制器重置奇偶校验写入标志,并且接着所述第二数据写入所述第一数据与所述第二数据的总和的奇偶校验。
6.根据权利要求4所述的存储器系统,其中,当所述第一数据的大小与所述第二数据的大小的总和小于所述参考写入单位的大小时,所述存储器控制器设置奇偶校验写入标志,将所述第一数据与所述第二数据的总和的奇偶校验写入所述奇偶校验存储块,并且将奇偶校验位置指针的值更新为所述第一数据与所述第二数据的总和的奇偶校验被写入的位置。
7.根据权利要求1所述的存储器系统,其中所述存储器控制器在通电重置时检查奇偶校验写入标志,并且在设置了所述奇偶校验写入标志的情况下,基于被写入由奇偶校验位置指针所指示的位置的所述第一奇偶校验来验证被写入所述存储器装置的所述第一数据。
8.一种操作存储器系统的方法,所述存储器系统包括存储器装置,所述存储器装置具有多个存储块,所述方法包括:
由存储器控制器从主机接收清除命令,所述清除命令指示所述存储器装置将被高速缓存在数据高速缓存中的数据清除到所述存储器装置,
将被高速缓存在所述数据高速缓存中的第一数据清除到所述存储器装置,所述第一数据的大小小于参考写入单位的大小,所述参考写入单位是将数据与奇偶校验一起写入所述存储器装置的参考,并且
将与所述第一数据相关联的第一奇偶校验写入所述多个存储块之中的奇偶校验存储块,所述奇偶校验存储块存储数据块的奇偶校验,所述数据块中的每一个的大小小于所述参考写入单位的大小。
9.根据权利要求8所述的方法,进一步包括:将奇偶校验位置指针的值更新为所述第一奇偶校验被写入的位置,所述奇偶校验位置指针的所述值指示所述数据块的奇偶校验之中被最近写入所述存储器装置的奇偶校验的位置,并且
设置奇偶校验写入标志,所述奇偶校验写入标志指示由所述奇偶校验位置指针所指示的位置处的所述第一奇偶校验是否有效。
10.根据权利要求8所述的方法,进一步包括:接着所述存储器装置中写入所述第一数据的位置写入将紧接着所述第一数据之后写入的第二数据。
11.根据权利要求10所述的方法,进一步包括:将所述第一数据与所述第二数据的总和的奇偶校验写入所述存储器装置。
12.根据权利要求11所述的方法,进一步包括:当所述第一数据的大小与所述第二数据的大小的总和等于所述参考写入单位的大小时:
重置所述奇偶校验写入标志;并且
接着所述第二数据写入所述第一数据与所述第二数据的总和的奇偶校验。
13.根据权利要求11所述的方法,进一步包括:当所述第一数据的大小与所述第二数据的大小的总和小于所述参考写入单位的大小时:
由所述存储器控制器设置所述奇偶校验写入标志;
将所述第一数据与所述第二数据的总和的奇偶校验写入所述奇偶校验存储块;并且
将奇偶校验位置指针的值更新为所述第一数据与所述第二数据的总和的奇偶校验被写入的位置。
14.根据权利要求8所述的方法,进一步包括:
在通电重置时检查所述奇偶校验写入标志;并且
在设置了所述奇偶校验写入标志的情况下,基于被写入由所述奇偶校验位置指针所指示的位置的所述第一奇偶校验来验证被写入所述存储器装置的所述第一数据。
15.一种存储器系统,包括:
存储器装置,包括多个存储块;以及
存储器控制器,与所述存储器装置通信并控制所述存储器装置,
其中所述存储器控制器:
将第一数据写入所述存储器装置的位置;
接着已经写入所述第一数据的所述位置写入第二数据;
计算与所述第一数据相关联的第一奇偶校验;
确定奇偶校验位置指针的值,所述奇偶校验位置指针的所述值指示已经写入所述第一奇偶校验的位置;以及
设置奇偶校验写入标志。
16.根据权利要求15所述的存储器系统,其中所述存储器控制器进一步:
确定所述第一数据的大小与所述第二数据的大小的总和等于参考写入单位的大小;
在所述第一数据的大小与所述第二数据的大小的总和等于所述参考写入单位的大小的情况下:
重置所述奇偶校验写入标志;
计算与所述第一数据和所述第二数据的总和相关联的奇偶校验;并且
接着所述第二数据写入所计算出的奇偶校验。
17.根据权利要求15所述的存储器系统,其中所述存储器控制器进一步:
确定所述第一数据的大小与所述第二数据的大小的总和等于参考写入单位的大小;
在所述第一数据的大小与所述第二数据的大小的总和小于所述参考写入单位的大小的情况下:
计算与所述第一数据和所述第二数据的总和相关联的总和奇偶校验;并且
将所计算出的总和奇偶校验写入所述存储器装置中的奇偶校验存储块。
18.根据权利要求17所述的存储器系统,其中所述存储器控制器进一步:
将第二奇偶校验位置指针的值更新到所计算出的总和奇偶校验已经被写入的位置。
19.根据权利要求15所述的存储器系统,其中所述奇偶校验写入标志设置在所述存储器装置中。
20.根据权利要求15所述的存储器系统,其中所述奇偶校验写入标志设置在所述存储器装置的外部。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020200153351A KR20220067070A (ko) | 2020-11-17 | 2020-11-17 | 메모리 시스템 및 메모리 시스템의 동작 방법 |
KR10-2020-0153351 | 2020-11-17 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114512175A true CN114512175A (zh) | 2022-05-17 |
Family
ID=81547794
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110478573.5A Pending CN114512175A (zh) | 2020-11-17 | 2021-04-30 | 存储器系统及其操作方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11636007B2 (zh) |
KR (1) | KR20220067070A (zh) |
CN (1) | CN114512175A (zh) |
Family Cites Families (5)
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 |
KR101861247B1 (ko) | 2011-04-06 | 2018-05-28 | 삼성전자주식회사 | 메모리 컨트롤러, 이의 데이터 처리 방법, 및 이를 포함하는 메모리 시스템 |
US10303560B2 (en) * | 2017-02-14 | 2019-05-28 | Dell Products L.P. | Systems and methods for eliminating write-hole problems on parity-based storage resources during an unexpected power loss |
US10282116B2 (en) * | 2017-07-19 | 2019-05-07 | Avago Technologies International Sales Pte. Limited | Method and system for hardware accelerated cache flush |
US11334277B2 (en) * | 2020-04-07 | 2022-05-17 | Vmware Inc. | Issuing efficient writes to erasure coded objects in a distributed storage system with two tiers of storage |
-
2020
- 2020-11-17 KR KR1020200153351A patent/KR20220067070A/ko unknown
-
2021
- 2021-04-02 US US17/301,452 patent/US11636007B2/en active Active
- 2021-04-30 CN CN202110478573.5A patent/CN114512175A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
KR20220067070A (ko) | 2022-05-24 |
US11636007B2 (en) | 2023-04-25 |
US20220156141A1 (en) | 2022-05-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20230333932A1 (en) | Memory system and operating method thereof | |
CN114067870A (zh) | 存储器系统、存储器装置以及用于操作存储器装置的方法 | |
CN114489466A (zh) | 存储器系统及其操作方法 | |
CN113204312A (zh) | 存储器系统、存储器控制器及存储器系统的操作方法 | |
CN114090473A (zh) | 存储器系统、存储器控制器及操作存储器系统的方法 | |
CN113903384A (zh) | 存储器系统、存储器控制器以及操作存储器系统的方法 | |
CN113703662A (zh) | 存储器系统、存储器控制器及其操作方法 | |
CN113535598A (zh) | 存储器系统、存储器控制器以及存储器系统的操作方法 | |
CN112306387A (zh) | 存储器系统、存储器控制器以及操作存储器系统的方法 | |
US11467903B2 (en) | Memory system and operating method thereof | |
US12039190B2 (en) | Memory system and operating method of the memory system for calibrating a history read bias based on a number of error bits generated in a read operation | |
CN115963981A (zh) | 存储器系统及存储器系统的操作方法 | |
CN115952115A (zh) | 基于融合链表控制同步操作的存储器控制器及其操作方法 | |
CN116136738A (zh) | 使用外部装置执行后台操作的存储器系统及其操作方法 | |
CN115206393A (zh) | 存储器装置及存储器装置的操作方法 | |
CN114530173A (zh) | 存储器系统及其操作方法 | |
US11636007B2 (en) | Memory system and operating method thereof for flushing data in data cache with parity | |
US11704050B2 (en) | Memory system for determining a memory area in which a journal is stored according to a number of free memory blocks | |
US12099751B2 (en) | Memory system, memory controller and operating method of the memory system operating as read boost mode | |
US11893255B2 (en) | Memory system for managing data corresponding to a plurality of zones and operating method thereof | |
US20230297502A1 (en) | Memory system, memory controller and operating method of the memory system for controlling garbage collection | |
US20230376246A1 (en) | Memory system, memory controller and operating method of the memory system operating as read boost mode | |
CN114968078A (zh) | 存储器装置及其操作方法 | |
CN114756166A (zh) | 存储器系统及其操作方法 | |
CN115116517A (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 |