CN113010095A - 存储器***、存储器控制器及其操作方法 - Google Patents
存储器***、存储器控制器及其操作方法 Download PDFInfo
- Publication number
- CN113010095A CN113010095A CN202010634698.8A CN202010634698A CN113010095A CN 113010095 A CN113010095 A CN 113010095A CN 202010634698 A CN202010634698 A CN 202010634698A CN 113010095 A CN113010095 A CN 113010095A
- Authority
- CN
- China
- Prior art keywords
- memory
- memory device
- open
- spo
- 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.)
- Withdrawn
Links
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/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
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1448—Management of the data involved in backup or backup restore
-
- 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
- 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/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1458—Management of the backup or restore process
- G06F11/1461—Backup scheduling policy
-
- 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/0253—Garbage collection, i.e. reclamation of unreferenced memory
-
- 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
-
- 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
- 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/72—Details relating to flash memory management
- G06F2212/7205—Cleaning, compaction, garbage collection, erase control
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Quality & Reliability (AREA)
- Computer Security & Cryptography (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本公开的实施例涉及一种存储器***、存储器控制器及其操作方法。在突然断电(SPO)发生之后执行恢复操作时,通过基于存储器装置的状态来确定是否从存储器装置中删除与目标开放存储块中存储的数据相关联的日志信息,从而防止在包括在存储器装置中的空闲存储块的数量不足的情况下的不必要的数据移动,并且将包括在存储器装置中的空闲存储块的数量保持在预定值或更多。
Description
相关申请的交叉引用
本申请要求于2019年12月20日提交的申请号为10-2019-0171457的韩国专利申请的优先权和权益,其通过引用整体并入本文。
技术领域
本公开的实施例涉及一种存储器***、存储器控制器及其操作方法。
背景技术
存储器***可以包括存储装置以存储数据。这种存储器***可以基于来自诸如计算机、服务器、移动装置(例如,智能电话或平板PC)或其它类似电子装置的主机的请求进行操作。存储器***的示例涵盖了从传统的硬盘驱动器(HDD)到基于半导体的数据存储装置,诸如固态驱动器(SSD)、通用闪速存储装置(UFS)或嵌入式MMC(eMMC)装置。
存储器***可以进一步包括用于控制存储器装置的存储器控制器。存储器控制器可以从主机接收命令输入,并且可以执行命令或控制对包括在存储器***中的存储器装置的读取操作/写入操作/擦除操作。存储器控制器可以用于运行固件以执行用于执行或控制这种操作的逻辑操作。
一些存储器***被设计成通过使用恢复操作来处理突然电力丢失。如果在存储器装置的读取或写入操作期间存储器***中发生突然断电(SPO),则存储器***可以执行恢复操作,以使数据丢失最小化。
发明内容
本公开可以在各个实施例中实施,以提供一种存储器***、存储器控制器以及操作存储器***或存储器控制器的方法,从而防止在包括在存储器装置中的空闲存储块的数量不足的情况下的不必要的数据移动。
此外,本公开的一些实施例可以提供一种存储器***、存储器控制器以及操作存储器***或存储器控制器的方法,以将包括在存储器装置中的空闲存储块的数量保持在预定的范围。
在一方面,本公开的实施例可以提供一种存储器***,包括:存储器装置,具有多个存储块;以及存储器控制器,用于控制存储器装置。
存储器控制器可以被配置成在突然断电(SPO)发生之后执行恢复操作。
在执行恢复操作时,存储器控制器可以基于SPO发生时存储器装置是否处于第一状态,确定是否从存储器装置中删除与一个或多个开放存储块之中的目标开放存储块中存储的数据相关联的日志信息。
在这种情况下,一个或多个开放存储块中的每一个可以包括多个存储块中的一个或多个。
存储器控制器可以被配置成确定SPO发生时是否正在执行垃圾收集。
存储器控制器可以被配置成在执行垃圾收集之后,确定SPO发生时存储器装置是否处于第一状态。
如果确定SPO发生时存储器装置处于第一状态,则存储器控制器可以在恢复操作时删除与目标开放存储块中存储的数据相关联的日志信息。
存储器控制器可以被配置成在确定SPO发生时存储器装置处于与第一状态不同的第二状态之后,在恢复操作时将一个或多个开放存储块中存储的数据之中日志信息未写入到存储器装置的数据迁移到存储器装置的迁移存储块。
在这种情况下,日志信息可以包括与日志信息对应的数据的i)逻辑地址、ii)源物理地址或iii)目标物理地址。
在另一方面,本公开的实施例可以提供一种用于存储器装置的存储器控制器,该存储器装置包括多个存储块,该存储器控制器包括:存储器接口,与存储器装置的多个存储块通信;以及控制电路,与用于控制存储器装置的存储器接口通信。
在恢复操作中,控制电路可以基于SPO发生时存储器装置是否处于第一状态,确定是否从存储器装置中删除与一个或多个开放存储块之中的目标开放存储块中存储的数据相关联的日志信息。
在这种情况下,一个或多个开放存储块中的每一个可以包括多个存储块中的一个或多个。
如果确定SPO发生时正在进行垃圾收集,则控制电路可以确定存储器装置处于第一状态。
如果确定SPO发生时存储器装置处于第一状态,则控制电路可以在SPO事件之后的恢复操作时从存储器装置中删除与目标开放存储块中存储的数据相关联的日志信息。
如果确定SPO发生时存储器装置处于与第一状态不同的第二状态,则控制电路可以在针对SPO的恢复操作时将一个或多个开放存储块中存储的数据之中日志信息未写入到存储器装置的数据迁移到存储器装置的迁移存储块。
在这种情况下,日志信息可以包括与日志信息对应的数据的i)逻辑地址、ii)源物理地址或iii)目标物理地址。
一种操作存储器控制器的方法可以包括:开始恢复操作以从突然断电(SPO)中恢复。
操作存储器控制器的方法可以包括识别SPO发生时存储器装置是否处于第一状态。
操作存储器控制器的方法可以包括基于SPO发生时存储器装置是否处于第一状态,确定是否从存储器装置中删除与一个或多个开放存储块之中的目标开放存储块中存储的数据相关联的日志信息。
基于本公开的实施例,可以防止在包括在存储器装置中的空闲存储块的数量不足的情况下的不必要的数据移动。
此外,基于各种实施例,可以将包括在存储器装置中的空闲存储块的数量保持在预定值或更多。
附图说明
图1是示出基于本公开的实施例的存储器***的示意性配置的示图。
图2是示意性地示出基于本公开的实施例的存储器装置的框图。
图3是示意性地示出基于本公开的实施例的存储器装置的存储块的示图。
图4是示出基于本公开的实施例的存储器装置的字线和位线的结构的示图。
图5是示出基于本公开的一些实施例的在突然断电(SPO)事件发生时存储器***执行恢复操作时的状态的示图。
图6是示出基于本公开的一些实施例的在突然断电(SPO)事件发生时存储器***执行恢复操作的过程的流程图。
图7是示出基于本公开的一些实施例的由存储器***确定SPO发生时存储器装置的状态的过程的示例的流程图。
图8是示出基于本公开的一些实施例的在SPO事件之后存储器***执行恢复操作的示例的示图。
图9是示出基于本公开的一些实施例的存储在存储器装置中的日志信息的结构的示图。
图10是示出基于本公开的一些实施例的包括在存储器装置中的元区域的示图。
图11是示出基于本公开的一些实施例的存储器控制器删除存储在存储器装置中的日志信息的操作的示图。
图12是示出基于本公开的一些实施例的在SPO事件之后存储器***执行恢复操作的另一示例的示图。
图13是示出当基于本公开的一些实施例的存储器***针对SPO执行恢复操作时迁移数据的操作的示图。
图14是示出基于本公开的一些实施例的操作存储器控制器的方法的流程图。
图15是示出基于本公开的实施例的计算***的配置的示图。
具体实施方式
在下文中,将参照附图详细地描述本公开技术的实施例。
图1是示出基于本公开的实施例的存储器***100的示意性配置的示图。
在一些实施方式中,基于本公开的实施例的存储器***100可以包括:存储器装置110,被配置成存储数据;以及存储器控制器120,被配置成控制存储器装置110。
存储器装置110可以包括多个存储块以存储数据,并且每个存储块可以包括用于存储数据的预定数量的存储器单元。存储器装置110可以被配置成响应于从存储器控制器120接收到的控制信号来操作。除其他外,存储器装置110的操作可以包括读取操作、编程操作(也被称为“写入操作”)以及擦除操作。
存储器装置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可以对存储器装置中具有与从控制器接收到的地址对应的物理地址的存储器区域执行与接收到的命令对应的操作。
在一种实施方式中,除其他外,存储器装置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可以被配置成使从主机HOST接收的数据随机化,以将经随机化的数据写入存储器单元阵列。例如,处理器124可以通过使用随机化种子来使从主机HOST接收的数据随机化。经随机化的数据提供到存储器装置110,并且写入到存储器单元阵列。
在读取操作期间,处理器124可以被配置成使从存储器装置110接收的数据去随机化。例如,处理器124可以通过使用去随机化种子来使从存储器装置110接收的数据去随机化。经去随机化的数据可以输出到主机HOST。
处理器124可以运行固件(FW)以便控制存储器控制器120的操作。换言之,处理器124可以控制存储器控制器120的全部操作,并且为了执行逻辑操作,可以在启动期间运行(驱动)加载到工作存储器125中的固件。
固件指存储在特定非易失性存储器上的程序或软件,并在存储器***100内部运行。
在一些实施方式中,固件可以包括各种功能层。例如,固件可以包括以下中的至少一个:闪存转换层(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之间的通道。总线127可以包括例如用于传递各种类型的控制信号和命令的控制总线,以及用于传递各种类型的数据的数据总线。
图1通过示例示出了存储器控制器120的构成元件121、122、124、125和126。要注意的是,图中所示的那些构成元件中的一些可以省略,或者存储器控制器120的上述构成元件121、122、124、125和126中的一些可以集成到单个元件中。此外,在一些实施方式中,可以将一个或多个其它构成元件添加到存储器控制器120的上述构成元件。
在下文中,将参照图2更详细地描述存储器装置110。
图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中包括的多个存储器单元中的每一个可以是被配置成每个存储器单元存储一位数据的单层单元(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。
图3是示意性地示出基于本公开的实施例的存储器装置110的存储快BLK的示图。
在一些实施方式中,存储器装置110中包括的存储块BLK中的存储器单元可以成行和列布置,使得存储器单元成行(字线方向)布置以形成多个页面PG并且成列(位线方向)布置以形成多个串TTR。
这样,多个页面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)以及控制栅极(CG),其中浮置栅极(FG)由绝缘体包围,并且栅极电压从字线WL施加到控制栅极(CG)。
在多个存储块BLK1-BLKz的每一个中,第一选择线(也称为源极选择线或漏极选择线)可以另外设置在两个最外字线之中更靠近读取/写入电路的第一最外字线的外部,并且第二选择线(也称为漏极选择线或源极选择线)可以另外设置在另一第二最外字线的外部。
在一些实施方式中,可以在第一最外字线和第一选择线之间额外设置至少一个虚设字线。另外,可以在第二最外字线和第二选择线之间另外设置至少一个虚设字线。
在如图3所示的存储块结构的情况下,可以按页面执行读取操作和编程操作(写入操作),并且可以按存储块执行擦除操作。
图4是示出基于本公开的实施例的存储器装置110的字线WL和位线BL的结构的示图。
在一些实施方式中,存储器装置110具有布置有存储器单元MC的内核区域,以及包括用于执行存储器单元阵列210的操作的电路的辅助区域(除内核区域之外的剩余区域)。
在内核区域中,在一个方向上布置的一定数量的存储器单元可以被称为页面PG,并且串联联接的一定数量的存储器单元可以被称为存储器串STR。
字线WL1-WL9可以连接到行解码器410。位线BL可以连接到列解码器420。对应于图2的读取/写入电路230的数据寄存器430可存在于多个位线BL和列解码器420之间。
多个字线WL1-WL9可以对应于多个页面PG。
例如,多个字线WL1-WL9中的每一个可以对应于如图4所示的一个页面PG。相反地,当多个字线WL1-WL9中的每一个的大小较大时,多个字线WL1-WL9中的每一个可以对应于至少两个(例如,两个或四个)页面PG。每个页面PG是编程操作和读取操作中的最小单位,并且在进行编程操作和读取操作时,同一页面PG内的所有存储器单元MC可以同时执行操作。
多个位线BL可以连接到列解码器420。在一些实施方式中,多个位线BL可以划分为奇数编号的位线BL和偶数编号的位线BL,使得一对奇数编号的位线BL和偶数编号的位线BL共同联接到列解码器420。
在访问存储器单元MC时,行解码器410和列解码器420用于基于地址来定位所需的存储器单元。
在一些实施方式中,因为存储器装置110进行的包括编程和读取操作的所有数据处理经由数据寄存器430进行,因此数据寄存器430起着重要的作用。如果数据寄存器430进行的数据处理被延迟,则所有其它区域都需要等待,直到数据寄存器430完成数据处理,这使存储器装置110的整体性能劣化。
参照图4所示的示例,在一个串STR中,多个晶体管TR1-TR9分别连接到多个字线WL1-WL9。在一些实施方式中,多个晶体管TR1-TR9对应于存储器单元MC。在一个示例中,多个晶体管TR1-TR9中的每一个包括控制栅极CG和浮置栅极FG。
多个字线WL1-WL9包括两个最外字线WL1和WL9。第一选择线DSL可以另外地设置在更靠近数据寄存器430并且与另一最外字线WL9相比具有更短的信号路径的第一最外字线WL1的外部,并且第二选择线SSL可以另外地设置在另一第二最外字线WL9的外部。
通过第一选择线DSL控制导通/关断的第一选择晶体管D-TR具有连接到第一选择线DSL的栅电极,但是不包括浮置栅极FG。通过第二选择线SSL控制导通/关断的第二选择晶体管S-TR具有连接到第二选择线SSL的栅电极,但是不包括浮置栅极FG。
第一选择晶体管D-TR用作将相应的串STR连接到数据寄存器430的开关电路。第二选择晶体管S-TR用作将相应的串STR连接到源极线SL的开关电路。也就是说,第一选择晶体管D-TR和第二选择晶体管S-TR可以用于启用或禁用相应的串STR。
在一些实施方式中,存储器***100将预定的导通电压Vcc施加到第一选择晶体管D-TR的栅电极,从而导通第一选择晶体管D-TR,并将预定的关断电压(例如,0V)施加到第二选择晶体管S-TR的栅电极,从而关断第二选择晶体管S-TR。
在读取操作或验证操作期间,存储器***100导通第一选择晶体管D-TR和第二选择晶体管S-TR两者。相应地,电流可以流过相应的串STR并且流到对应于地的源极线SL,从而可以测量位线BL的电压电平。然而,在读取操作期间,在第一选择晶体管D-TR和第二选择晶体管S-TR之间的导通/关断定时可能存在时间差。
在擦除操作期间,存储器***100可以通过源极线SL将预定电压(例如,+20V)施加到衬底。在擦除操作期间,存储器***100施加一定的电压以使得第一选择晶体管D-TR和第二选择晶体管S-TR两者浮置。因此,施加的擦除电压可以将电荷从所选择的存储器单元的浮栅FG去除。
图5是示出根据本公开的一些实施例的在突然断电(SPO)事件发生时存储器***100执行恢复操作时的状态的示图。
在一些实施方式中,当在SPO事件之后执行恢复操作时,包括在存储器***100中的存储器装置110包括一个或多个开放存储块OPEN_BLK。
在一些实施方式中,开放块可以指示将数据存储在至少一个逻辑页面中但是仍然包括未写入的空闲页面的块。例如,一个或多个开放存储块OPEN_BLK可以指一个或多个存储块,其中数据可以通过写入操作或后台操作(例如,垃圾收集、读取回收)或主机HOST请求的其它操作写入。当包括在存储器***100中的存储器控制器120完成将数据写入开放存储块OPEN_BLK的操作时,存储器控制器120可以关闭相应的开放存储块OPEN_BLK,使得数据可以不再写入到相应的开放存储块OPEN_BLK。
在这种情况下,开放存储块OPEN_BLK中的每一个可以包括一个或多个未写入的空闲页面,其中,主机或后台操作可以将数据写入到该空闲页面。在一些实施方式中,开放存储块OPEN_BLK可以包括用于主机写入的开放块以及用于垃圾收集(GC)的开放块。
存储器装置110可以包括存储关于存储在存储器装置110中的用户数据的元信息(例如,逻辑地址与物理地址之间的映射信息、其中存储用户数据的存储块的读取计数/擦除计数)的元区域META_AREA。
存储器装置110的元区域META_AREA可以存储与上述一个或多个开放存储块OPEN_BLK之中的目标开放存储块TGT_OPEN_BLK中存储的数据相关联的日志信息。日志信息指包括与存储在存储器装置110中的数据相关联的日志文件或其它日志记录信息的信息。在一些实施方式中,日志信息的结构可以如图9所示实施。
日志文件***是一种通过在“日志”中记录尚未进行的改变的意图来跟踪这种改变的文件***。在电源故障的情况下,可以恢复这种文件***以完成预期的改变。
在一些实施方式中,日志文件***可以仅跟踪存储的元数据。在其它实施方式中,日志文件***可以跟踪存储的数据以及相关的元数据。
在本公开的一些实施例中,当执行针对SPO的恢复操作时,在存储器装置110的状态与图5的状态相同时,包括在存储器***100中的存储器控制器120可以基于SPO发生时存储器装置110是否处于第一状态,确定是否从存储器装置110中删除与存储在上述目标开放存储块TGT_OPEN_BLK中的数据有关的日志信息。
在本公开的一些实施例中,第一状态指示当SPO事件发生时垃圾收集正在进行中。
在下文中,将描述由存储器控制器120针对SPO执行恢复操作的过程以及确定存储器装置110是否处于第一状态的过程。
图6是示出基于本公开的一些实施例的在突然断电(SPO)发生事件时存储器***100执行恢复操作的过程的流程图。
在操作S610中,当SPO发生时,包括在存储器***100中的存储器控制器120可以首先确定存储器装置110是否处于第一状态。在一些实施方式中,存储器装置110可以使用标志信号来指示存储器装置110是否处于第一状态。例如,当将存储在存储器装置110中的标志值设置为预定值时,存储器控制器120可以确定存储器装置110处于第一状态。如将在下文参照图7所讨论的,存储器控制器120可以在SPO事件之后,根据SPO发生时存储器装置110处于第一状态还是第二状态来以不同方式执行恢复。
如果存储器装置110指示SPO发生时其处于第一状态(S620-是),则在操作S630处,存储器控制器120可以从存储器装置110中删除与存储在图5所示的目标开放存储块TGT_OPEN_BLK中的数据相关联的日志信息。稍后将参照图8详细描述操作S630。
另一方面,如果SPO发生时存储器装置110的状态不处于第一状态(S620-否),则在操作S640处,存储器控制器120可以将存储在图5所示的一个或多个开放存储块OPEN_BLK中的数据之中其日志系信息未被写入到存储器装置110的数据迁移到迁移存储块。稍后将参照图12和图13详细描述操作S640。
图7是示出基于本公开的一些实施例的由存储器***100确定SPO发生时存储器装置110的状态的过程的示例的流程图。
在操作S710中,包括在存储器***100中的存储器控制器120可以确定SPO发生时是否正在执行垃圾收集(GC)。例如,当指示GC的标志在存储器装置110中时,存储器控制器120可以确定SPO发生时正在执行GC。
如果确定SPO发生时正在执行GC(S710-是),则在操作720处,存储器控制器120可以确定存储器装置110处于第一状态。
另一方面,如果确定SPO发生时GC未正在执行(S710-否),则在操作730处,存储器控制器120可以确定存储器装置110处于与第一状态不同的第二状态。
在一些实施方式中,如果确定SPO发生时GC正在进行并且没有其它操作(例如读取/写入/擦除操作)正在执行,则存储器控制器120可以确定存储器装置110处于第一状态。
在一些实施方式中,如果存储器装置110处于第一状态,则存储器***100执行从SPO事件恢复的特定恢复操作。
图8是示出基于本公开的实施例的在SPO事件之后存储器***100执行恢复操作的示例的示图。
在一些实施方式中,如果SPO发生时存储器装置110的状态处于第一状态,则包括在存储器装置110中的目标开放存储块TTG_OPEN_BLK可以是用于GC的开放存储块OPEN_BLK。用于GC的开放存储块OPEN_BLK是在GC操作期间将存储在另一个存储块中的有效数据迁移到其中的开放存储块OPEN_BLK。也就是说,用于GC的开放存储块OPEN_BLK可以是存储由于垃圾收集操作(GC)而从其它存储块迁移过来的数据的开放存储块。
在这种情况下,仅上述一个目标开放存储块TTG_OPEN_BLK可以作为存储器装置110中包括的开放存储块OPEN_BLK存在。也就是说,在存储器控制器120执行GC操作时,写入从主机HOST接收的数据的操作或读取回收操作可能会停止,因此,可能仅存在用于GC的开放存储块OPEN_BLK。
在这种情况下,存储器控制器120可以从存储器装置110删除与存储在存储器装置110内的元区域META_AREA中的目标开放存储块TTG_OPEN_BLK中存储的数据相关联的日志信息。
在SPO事件之后执行恢复操作的过程中,存储器控制器120可通过删除与存储在目标开放存储块TTG_OPEN_BLK中的数据相关联的日志信息而具有如下所讨论的优点。
在一些实施方式中,在SPO事件之后的恢复操作期间,存储器控制器120可以将SPO发生时存在的现有开放存储块OPEN_BLK中存储的数据之中不具有其相应的日志信息的数据迁移到新的开放存储块或空闲块。接着,存储器控制器120可以关闭现有开放存储块OPEN_BLK,然后执行刷新操作,以将存储在现有开放存储块OPEN_BLK中的数据迁移到另一个存储块。这是因为存储在现有开放存储块OPEN_BLK中的数据可能由于SPO而损坏。
然而,如上所述的将数据迁移到新的开放存储块可能导致存储器装置110中包括的存储块之中的空闲存储块的数量减少。在存储器控制器120在存储器装置110中包括的空闲存储块的数量不足时执行垃圾收集(GC)的特定情况下,由于空闲存储块的数量的减少而导致的整个存储器***100的性能下降可能是显著的。
另一方面,在执行垃圾收集(GC)时,可将存储在用于GC的开放存储块OPEN_BLK中的数据存储在作为垃圾收集(GC)的目标的牺牲存储块中。因此,即使删除了存储在用于GC的开放存储块OPEN_BLK中的数据,也可以对存储在牺牲存储块中的数据执行垃圾收集(GC)。因此,可以删除存储在用于GC的开放存储块OPEN_BLK中的数据,而无需将其迁移到新的开放存储块。
相应地,存储器控制器120可以在SPO事件之后执行恢复操作时,从存储器装置110中删除关于存储在目标开放存储块TGT_OPEN_BLK中的数据的日志信息,即,存储在用于垃圾收集(GC)的开放存储块OPEN_BLK中的数据。
通过这种方式,存储器控制器120可以通过在针对SPO执行恢复操作时生成新的开放存储块来防止存储器装置110中包括的空闲存储块的数量减少,并且可以将存储器装置110中包括的空闲存储块的数量保持在特定期望的水平。
另外,存储器控制器120可以防止存储在目标开放存储块TTG_OPEN_BLK中的数据不必要地移动到新的开放存储块。
上述日志信息和特定的删除操作可以如下文所讨论的方式实施。
图9是示出基于本公开的实施例的存储在存储器装置110中的日志信息的结构的示图。
在一些实施方式中,存储在存储器装置110的元区域META_AREA中的日志信息可以包括与日志信息对应的数据的i)逻辑地址、ii)源物理地址以及iii)目标物理地址中的至少一个。
在这种情况下,与每条日志信息对应的数据的大小可以是一个页面(例如4KB或8KB)。
与日志信息对应的数据的逻辑地址可以是用于主机HOST识别相应数据的逻辑位置的地址。
与日志信息对应的数据的源物理地址可以是指示在将数据迁移到目标开放存储块TTG_OPEN_BLK之前将相应数据存储到存储器装置110上的位置的地址。
与日志信息对应的数据的目标物理地址可以是指示在将数据迁移到目标开放存储块TTG_OPEN_BLK之后将相应数据存储到存储器装置110上的位置的地址。
当存储在存储器装置110中的日志信息的量等于或大于预定阈值时,存储器控制器120可以基于存储的日志信息来更新映射表,并随后擦除映射表中反映的日志信息。映射表是指存储针对存储在存储器装置110中的用户数据的逻辑地址和物理地址之间的映射信息的表。
图10是示出基于本公开的一些实施例的包括在存储器装置110中的元区域的示图。
在一些实施方式中,存储器装置110的元区域META_AREA可以包括一个或多个元切片META_SLICE。
元切片META_SLICE中的一些可以存储日志信息,而其它的元切片META_SLICE不存储日志信息。如果元切片META_SLICE中的任意一块都不存储任何日志信息,则相应的元切片META_SLICE可以表示为空。
图11是示出基于本公开的一些实施例的存储器控制器120删除存储在存储器装置110中的日志信息的操作的示图。
在一些实施方式中,存储器控制器120可以从元区域META_AREA中删除包括相应的日志信息的元切片META_SLICE,以删除与存储在图8所示的目标开放存储块TGT_OPEN_BLK中的数据,即,存储在用于GC的开放存储块OPEN_BLK中的数据对应的日志信息。
在这种情况下,元区域META_AREA可以仅包括空的元切片META_SLICE以及不包括与存储在用于GC的开放存储块OPEN_BLK中的数据对应的日志信息的元切片META_SLICE。也就是说,存储在元区域META_AREA中的信息的状态可以是在记录删除的日志信息之前的状态。
如果SPO发生时存储器装置110不处于第一状态,则存储器***100可以在SPO事件之后执行如下所述的恢复操作。
图12是示出基于本公开的实施例的在SPO事件之后存储器***100执行恢复操作的另一示例的示图。
在一些实施方式中,包括在存储器***100中的存储器装置110可以包括三个开放存储块OPEN_BLK。例如,该三个开放存储块OPEN_BLK可以是:i)用于GC的开放存储块,ii)用于写入从主机HOST接收的数据的开放存储块,以及iii)用于刷新先前存储在存储器装置110中的数据的开放存储块。
在图12中,与存储在用于GC的开放存储块中的四条数据相关联的日志信息可以写入元区域META_AREA,并且与两条数据相关联的日志信息可以不写入元区域META_AREA。
与存储在用于写入从主机HOST接收的数据的开放存储块中的一条数据相关联的日志信息可以写入元区域META_AREA,并且与两条数据相关联的日志信息可以不写入元区域META_AREA。
与存储在用于刷新先前存储在存储器装置110中的数据的开放存储块中的两条数据相关联的日志信息可以写入元区域META_AREA,并且与两条数据相关联的日志信息可以不写入元区域META_AREA。
也就是说,与存储在任意一个开放存储块OPEN_BLK中的总共13条数据之中的7(=3+2+2)条数据相关联的日志信息可以写入元区域META_AREA,并且与6(=2+2+2)条数据相关联的日志信息可能不写入元区域META_AREA。
图13是示出当基于本公开的实施例的存储器***100针对SPO执行恢复操作时迁移数据的操作的示图。
在一些实施方式中,在针对SPO执行恢复操作期间,存储器控制器120可以将存储在任意一个开放存储块OPEN_BLK中的13条数据之中其日志信息未写入元区域META_AREA的6条数据迁移到迁移存储块MIGRATION_BLK。
在这种情况下,迁移存储块MIGRATION_BLK可以包括存储器装置110中包括的多个存储块之中的一个或多个空闲存储块。
如上所述,在SPO事件之后的恢复操作期间,存储器控制器120可以将存储在开放存储块OPEN_BLK中的数据之中其日志信息未被写入的数据写入新的迁移存储块MIGRATION_BLK。
图14是示出基于本公开的实施例的操作存储器控制器120的方法的流程图。
在操作S1410处,操作存储器控制器120的方法可以包括:在SPO发生之后开始恢复操作以从SPO恢复。
在操作1420处,操作存储器控制器120的方法可以包括:识别SPO发生时存储器装置110是否处于第一状态。
在操作1430处,操作存储器控制器120的方法可以包括:基于SPO发生时存储器装置110是否处于第一状态,确定是否从存储器装置110中删除与存储器装置110中包括的开放存储块之中的目标开放存储块中存储的数据相关联的日志信息。在这种情况下,每个开放存储块可包括存储器装置110中包括的多个存储块中的一个或多个。
如果SPO发生时存储器装置110处于第一状态,则存储器控制器120可以在SPO之后进行恢复操作时从存储器装置110中删除关于目标开放存储块中存储的数据的日志信息。
如果SPO发生时存储器装置110处于与第一状态不同的第二状态,则存储器控制器120可以在SPO之后进行恢复操作时将开放存储块中存储的数据之中其日志信息未写入存储器装置的数据迁移到存储器装置110的迁移存储块。
在一些实施方式中,存储器控制器120的上述操作可以由控制电路123控制,并且处理器124可以以通过编程的固件执行存储器控制器120的所有操作的方式来执行。
图15是示出基于本公开的实施例的计算***1500的配置的示图。
参照图15,基于本公开的实施例的计算***1500可以包括:存储器***100,电连接到***总线1560;CPU 1510,被配置成控制计算***1500的全部操作;RAM 1520,被配置成存储与计算***1500的操作有关的数据和信息;用户接口/用户体验(UI/UX)模块1530,被配置成向用户提供用户环境;通信模块1540,被配置成以有线和/或无线方式与外部装置通信;以及电源管理模块1550,被配置成管理计算***1500所使用的电力。
计算***1500可以是个人计算机(PC),或者可以包括诸如智能电话、平板电脑或各种电子装置的移动终端。
计算***1500可以进一步包括用于供应操作电压的电池,并且可以进一步包括应用芯片组、图形相关模块、相机图像处理器(CIS)以及DRAM。其它元件对于本领域技术人员将是显而易见的。
存储器***100可以以如下的配置来实现:不仅包括诸如硬盘驱动器(HDD)的被配置成将数据存储在磁盘中的装置,还包括诸如固态驱动器(SSD)、通用闪速存储装置或嵌入式MMC(eMMC装置的被配置成将数据存储在非易失性存储器中的装置。非易失性存储器装置可以包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、闪速存储器、相变RAM(PRAM)、磁性RAM(MRAM)、电阻式RAM(RRAM)以及铁电RAM(FRAM)。另外,存储器***100可以被实施为各种类型的存储装置,并且安装在各种电子装置内。
基于上述本公开的实施例,可以使存储器***的操作延迟时间最小化。另外,基于本公开的实施例,可以使在调用特定功能的过程中发生的开销最小化。尽管已经出于说明性目的描述了本公开的各个实施例,但是本领域技术人员将理解的是,在不脱离本公开的范围和精神的情况下,可以进行各种修改、添加和替换。
Claims (19)
1.一种存储器***,包括:
存储器装置,包括存储数据的存储器单元,存储器单元被划分为多个存储块,每个存储块包括存储器单元;以及
存储器控制器,控制所述存储器装置,并且在突然断电即SPO发生之后执行恢复操作,
其中在执行所述恢复操作时,所述存储器控制器基于SPO发生时所述存储器装置是否处于第一状态,确定是否从所述存储器装置中删除与一个或多个开放存储块之中的目标开放存储块中存储的数据相关联的日志信息,所述开放存储块包括所述多个存储块中的一个或多个。
2.根据权利要求1所述的存储器***,其中所述存储器控制器确定SPO发生时是否正在执行垃圾收集,所述存储器控制器在执行所述垃圾收集之后进一步确定SPO发生时所述存储器控制器是否处于所述第一状态。
3.根据权利要求2所述的存储器***,其中所述目标开放存储块为存储在所述垃圾收集期间待迁移的数据的开放存储块。
4.根据权利要求3所述的存储器***,其中开放存储块的数量为一。
5.根据权利要求1所述的存储器***,其中如果确定SPO发生时所述存储器装置处于所述第一状态,则所述存储器控制器在所述恢复操作时从所述存储器装置中删除与所述目标开放存储块中存储的数据相关联的所述日志信息。
6.根据权利要求5所述的存储器***,其中所述存储器控制器在确定SPO发生时所述存储器装置处于与所述第一状态不同的第二状态之后,在所述恢复操作时将所述一个或多个开放存储块中存储的数据之中相应的日志信息未写入到所述存储器装置的数据迁移到所述存储器装置的迁移存储块。
7.根据权利要求1所述的存储器***,其中所述日志信息包括与所述日志信息对应的数据的i)逻辑地址、ii)源物理地址或iii)目标物理地址。
8.根据权利要求7所述的存储器***,其中所述存储器控制器将所述日志信息存储在元信息切片中,与所述存储器装置中存储的用户数据对应的元数据存储在所述元信息切片中。
9.一种存储器装置的存储器控制器,所述存储器装置包括多个存储块,所述存储器控制器包括:
存储器接口,与所述存储器装置的所述多个存储块通信;以及
控制电路,与所述存储器接口通信以控制所述存储器装置,并在突然断电即SPO时执行恢复操作,其中在所述恢复操作中,所述控制电路基于SPO发生时所述存储器装置是否处于第一状态,确定是否从所述存储器装置中删除与一个或多个开放存储块之中的目标开放存储块中存储的数据相关联的日志信息,所述开放存储块包括所述多个存储块中的一个或多个。
10.根据权利要求9所述的存储器控制器,其中如果确定SPO发生时正在进行垃圾收集,则所述控制电路确定SPO发生时所述存储器装置处于所述第一状态。
11.根据权利要求10所述的存储器控制器,其中所述目标开放存储块是存储在所述垃圾收集期间待迁移的数据的开放存储块。
12.根据权利要求11所述的存储器控制器,其中开放存储块的数量为一。
13.根据权利要求9所述的存储器控制器,其中如果确定SPO发生时所述存储器装置处于所述第一状态,则所述控制电路在SPO事件之后的所述恢复操作时从所述存储器装置中删除与所述目标开放存储块中存储的数据相关联的所述日志信息。
14.根据权利要求13所述的存储器控制器,其中如果确定SPO发生时所述存储器装置处于与所述第一状态不同的第二状态,则所述控制电路在针对SPO的所述恢复操作时将所述一个或多个开放存储块中存储的数据之中相应的日志信息未写入到所述存储器装置的数据迁移到所述存储器装置的迁移存储块。
15.根据权利要求9所述的存储器控制器,其中所述日志信息包括与所述日志信息对应的数据的i)逻辑地址、ii)源物理地址或iii)目标物理地址。
16.根据权利要求15所述的存储器控制器,其中所述控制电路将所述日志信息存储在元信息切片中,与所述存储器装置中存储的用户数据对应的元数据存储在所述元信息切片中。
17.一种操作存储器控制器的方法,所述存储器控制器控制存储器装置,所述存储器装置包括多个存储块,所述方法包括:
开始恢复操作以从突然断电即SPO中恢复;
识别SPO发生时所述存储器装置是否处于第一状态;以及
基于SPO发生时所述存储器装置是否处于所述第一状态,确定是否从所述存储器装置中删除与一个或多个开放存储块之中的目标开放存储块中存储的数据相关联的日志信息,所述开放存储块包括所述多个存储块中的一个或多个。
18.根据权利要求17所述的方法,其中如果确定SPO发生时所述存储器装置处于所述第一状态,则所述方法进一步包括从所述存储器装置中删除与所述目标开放存储块中存储的数据相关联的所述日志信息。
19.根据权利要求18所述的方法,其中如果确定SPO发生时所述存储器装置处于与所述第一状态不同的第二状态,则所述方法进一步包括将所述一个或多个开放存储块中存储的数据之中相应的日志信息未写入到所述存储器装置的数据迁移到所述存储器装置的迁移存储块。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020190171457A KR20210079549A (ko) | 2019-12-20 | 2019-12-20 | 메모리 시스템, 메모리 컨트롤러 및 그 동작 방법 |
KR10-2019-0171457 | 2019-12-20 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113010095A true CN113010095A (zh) | 2021-06-22 |
Family
ID=76383110
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010634698.8A Withdrawn CN113010095A (zh) | 2019-12-20 | 2020-07-02 | 存储器***、存储器控制器及其操作方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11449421B2 (zh) |
KR (1) | KR20210079549A (zh) |
CN (1) | CN113010095A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20230177897A1 (en) * | 2021-12-08 | 2023-06-08 | SK Hynix Inc. | Storage device and method of operating the same |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102456176B1 (ko) | 2020-05-21 | 2022-10-19 | 에스케이하이닉스 주식회사 | 메모리 컨트롤러 및 그 동작 방법 |
US11573891B2 (en) | 2019-11-25 | 2023-02-07 | SK Hynix Inc. | Memory controller for scheduling commands based on response for receiving write command, storage device including the memory controller, and operating method of the memory controller and the storage device |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7941692B2 (en) * | 2007-12-31 | 2011-05-10 | Intel Corporation | NAND power fail recovery |
US9411717B2 (en) * | 2012-10-23 | 2016-08-09 | Seagate Technology Llc | Metadata journaling with error correction redundancy |
KR101738965B1 (ko) | 2015-06-30 | 2017-05-23 | 성균관대학교산학협력단 | 가비지 컬렉션 저널링 장치 및 방법 |
KR20180039785A (ko) | 2016-10-10 | 2018-04-19 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작방법 |
TWI628542B (zh) * | 2017-04-21 | 2018-07-01 | 慧榮科技股份有限公司 | 快閃記憶體的垃圾回收斷電回復方法以及使用該方法的裝置 |
KR102430791B1 (ko) | 2017-07-19 | 2022-08-10 | 에스케이하이닉스 주식회사 | 컨트롤러 및 컨트롤러의 동작방법 |
US11017098B2 (en) * | 2018-06-28 | 2021-05-25 | Seagate Technology Llc | Collection of uncorrelated entropy during a power down sequence |
-
2019
- 2019-12-20 KR KR1020190171457A patent/KR20210079549A/ko active Search and Examination
-
2020
- 2020-05-21 US US16/879,998 patent/US11449421B2/en active Active
- 2020-07-02 CN CN202010634698.8A patent/CN113010095A/zh not_active Withdrawn
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20230177897A1 (en) * | 2021-12-08 | 2023-06-08 | SK Hynix Inc. | Storage device and method of operating the same |
Also Published As
Publication number | Publication date |
---|---|
KR20210079549A (ko) | 2021-06-30 |
US11449421B2 (en) | 2022-09-20 |
US20210191863A1 (en) | 2021-06-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11386005B2 (en) | Memory system, memory controller, and method of operating memory system for caching journal information for zone in the journal cache | |
US11532360B2 (en) | Memory system, memory device, and method for operating memory device | |
US11449421B2 (en) | Memory system, memory controller and method for minimizing data loss using recovery operations in sudden power loss events | |
US11561725B2 (en) | System and operating method thereof | |
US11726878B2 (en) | Memory system and operating method thereof | |
CN113936721A (zh) | 存储器***、存储器装置和操作存储器装置的方法 | |
CN113806254A (zh) | 存储器***、存储器控制器及存储器***的操作方法 | |
US11467903B2 (en) | Memory system and operating method thereof | |
CN115952115A (zh) | 基于融合链表控制同步操作的存储器控制器及其操作方法 | |
CN115963981A (zh) | 存储器***及存储器***的操作方法 | |
CN114530173A (zh) | 存储器***及其操作方法 | |
US11704050B2 (en) | Memory system for determining a memory area in which a journal is stored according to a number of free memory blocks | |
US11822819B2 (en) | Memory system and operating method thereof | |
US11636007B2 (en) | Memory system and operating method thereof for flushing data in data cache with parity | |
US11500771B2 (en) | Memory system, memory controller, and method of operating memory system | |
US11669266B2 (en) | Memory system and operating method of memory system | |
US11507509B2 (en) | Memory system, memory controller and method for operating memory system for determining whether to perform direct write based on reference write size | |
US20230376246A1 (en) | Memory system, memory controller and operating method of the memory system operating as read boost mode | |
CN115774518A (zh) | 存储器***及存储器***的操作方法 | |
CN117311599A (zh) | 存储器***、存储器控制器和操作存储器***的方法 | |
CN115116517A (zh) | 存储器***及其操作方法 | |
CN116301569A (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: 20210622 |