CN114090330A - 存储器系统、存储器控制器以及操作存储器系统的方法 - Google Patents
存储器系统、存储器控制器以及操作存储器系统的方法 Download PDFInfo
- Publication number
- CN114090330A CN114090330A CN202110258822.XA CN202110258822A CN114090330A CN 114090330 A CN114090330 A CN 114090330A CN 202110258822 A CN202110258822 A CN 202110258822A CN 114090330 A CN114090330 A CN 114090330A
- Authority
- CN
- China
- Prior art keywords
- memory
- system data
- memory device
- host
- memory controller
- 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/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/1469—Backup restoration techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/30—Means for acting in the event of power-supply failure or interruption, e.g. power-supply fluctuations
-
- 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/1458—Management of the backup or restore process
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/28—Supervision thereof, e.g. detecting power-supply failure by out of limits supervision
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1048—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
-
- G—PHYSICS
- 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/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1441—Resetting or repowering
-
- 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
- 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
- G06F11/1451—Management of the data involved in backup or backup restore by selection of backup contents
-
- 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/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0658—Controller construction arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4403—Processor initialisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4406—Loading of operating system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/442—Shutdown
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45545—Guest-host, i.e. hypervisor is an application program itself, e.g. VirtualBox
-
- 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/08—Address circuits; Decoders; Word-line control circuits
-
- 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/24—Bit-line control circuits
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/82—Solving problems relating to consistency
-
- 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)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Quality & Reliability (AREA)
- Computer Security & Cryptography (AREA)
- Human Computer Interaction (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明公开了一种存储器系统、存储器控制器以及操作存储器系统的方法。存储器系统可以在执行SPO恢复操作时,执行恢复由于SPO而丢失的系统数据的操作,并在恢复系统数据的操作完成的第一时间点之后并且在从主机接收到断电准备请求的第二时间点之前,将所恢复的系统数据清除到存储器装置中。
Description
相关申请的交叉引用
本申请要求于2020年8月24日提交的申请号为10-2020-0106069的韩国专利申请的优先权,该韩国专利申请通过引用整体并入本文。
技术领域
本公开的实施例涉及一种存储器系统、存储器控制器以及操作该存储器系统的方法。
背景技术
例如存储装置的存储器系统基于来自诸如计算机、移动终端(例如,智能电话或平板电脑)或各种其它电子装置中的任意一种的主机的请求来存储数据。存储器系统可以是诸如硬盘驱动器(HDD)的将数据存储在磁盘中的一种装置,或者是诸如固态驱动器(SSD)、通用闪存(UFS)装置或嵌入式MMC(eMMC)装置的将数据存储在非易失性存储器中的一种装置。
存储器系统可以包括存储器装置和用于控制该存储器装置的存储器控制器。存储器控制器可以从主机接收命令,并且可以基于接收到的命令,执行或控制用于读取存储器系统中包括的易失性存储器或非易失性存储器中的数据的操作、用于将数据写入存储器系统中包括的易失性存储器或非易失性存储器中的操作、或用于擦除存储器系统中包括的易失性存储器或非易失性存储器中的数据的操作。存储器控制器可以驱动固件以执行用于控制这些操作的逻辑操作。
当发生不是通过来自主机的请求执行的正常断电操作而是在未指定的时间点发生的断电操作的突然断电(SPO)时,存储器系统可以在通电之后执行SPO恢复操作。在SPO恢复操作中,存储器系统恢复未反映在存储器装置中的系统数据,并且将所恢复的系统数据清除(flush)到存储器装置中。
同时,当在存储器系统执行SPO恢复操作的同时再次发生SPO时,存储器系统将在下一次通电操作中再次恢复系统数据。
发明内容
本公开的实施例可以提供一种在重复发生SPO时能够防止字线的劣化和空闲存储块的消耗的存储器系统、存储器控制器以及操作该存储器系统的方法。
在一方面,本公开的实施例可以提供一种存储器系统,该存储器系统包括:存储器装置,包括多个存储块;以及存储器控制器,被配置为通过与存储器装置通信来控制存储器装置。
存储器控制器可以在执行突然断电(SPO)恢复操作时,执行恢复由于SPO而丢失的系统数据的操作。
存储器控制器可以在恢复系统数据的操作完成的第一时间点之后并且在从主机接收到断电准备请求的第二时间点之前,将所恢复的系统数据清除到存储器装置中。
存储器控制器可以根据恢复系统数据的操作所花费的第一时间和将所恢复的系统数据清除到存储器装置中的操作待花费的第二时间来将所恢复的系统数据清除到存储器装置中。
例如,存储器控制器可以读取多个存储块之中存储用户数据的开放存储块的页面,并且基于读取的结果来识别是否存在由于SPO而丢失的系统数据。此时,存储器控制器可以执行恢复与具有预设单位大小的每个用户数据相对应的系统数据的操作。
在将所恢复的系统数据清除到存储器装置中之后,存储器控制器可以将指示断电操作完成而没有任何错误的标记写入存储器装置中。
在第一时间点之后,存储器控制器可以将存储器控制器的状态切换到能够处理从主机接收的命令的状态。
存储器控制器可以将消息传输到主机,该消息包括关于存储器控制器的与能够处理从主机接收的命令的状态相对应的状态的信息。
在另一方面,本公开的实施例可以提供一种存储器控制器,该存储器控制器包括:存储器接口,被配置为与存储器装置通信;以及处理器,被配置为通过存储器接口与存储器装置通信,并且运行固件以控制存储器装置。
处理器可以在执行突然断电(SPO)恢复操作时,执行恢复由于SPO而丢失的系统数据的操作。
处理器可以在恢复系统数据的操作完成的第一时间点之后并且在从主机接收到断电准备请求的第二时间点之前,将所恢复的系统数据清除到存储器装置中。
处理器可以根据恢复系统数据的操作所花费的第一时间和将所恢复的系统数据清除到存储器装置中的操作待花费的第二时间来将所恢复的系统数据清除到存储器装置中。
例如,处理器可以读取多个存储块之中存储用户数据的开放存储块的页面,并且基于读取的结果来识别是否存在由于SPO而丢失的系统数据。此时,处理器可以执行恢复与具有预设单位大小的每个用户数据相对应的系统数据的操作。
在将所恢复的系统数据清除到存储器装置中之后,处理器可以将指示断电操作完成而没有任何错误的标记写入存储器装置中。
在恢复系统数据之后,处理器可以将存储器控制器的状态切换到能够处理从主机接收的命令的状态。
处理器可以将消息传输到主机,该消息包括关于存储器控制器的与能够处理从主机接收的命令的状态相对应的状态的信息。
在另一方面,本公开的实施例可以提供一种操作存储器系统的方法,存储器系统包括存储器装置和存储器控制器。
操作存储器系统的方法可以包括:在执行突然断电(SPO)恢复操作时,恢复由于SPO而丢失的系统数据。
恢复系统数据的步骤可以包括:读取多个存储块之中存储用户数据的开放存储块的页面;以及识别是否存在由于SPO而丢失的系统数据。
恢复系统数据的步骤可以包括:当恢复系统数据时,根据具有预设数据单位大小的每条用户数据,重复执行恢复与用户数据相对应的系统数据的操作。
操作存储器系统的方法可以包括以下步骤:在恢复系统数据的操作完成的第一时间点之后并且在从主机接收到断电准备请求的第二时间点之前,将所恢复的系统数据清除到存储器装置中。
此时,将系统数据清除到存储器装置中的步骤可以包括:根据恢复系统数据的操作所花费的第一时间和将系统数据清除到存储器装置中的操作待花费的第二时间来将所恢复的系统数据清除到存储器装置中。
操作存储器系统的方法可以进一步包括以下步骤:在将所恢复的系统数据清除到存储器装置中之后,将指示断电操作完成而没有任何错误的标记写入存储器装置中。
操作存储器系统的方法可以进一步包括以下步骤:在恢复系统数据之后,将存储器控制器的状态切换到能够处理从主机接收的命令的状态。
操作存储器系统的方法可以进一步包括以下步骤:将消息传输到主机,该消息包括关于存储器控制器的与能够处理从主机接收的命令的状态相对应的状态的信息。
根据本公开的实施例,即使重复发生SPO,也能够防止字线的劣化和空闲存储块的消耗。
附图说明
从以下结合附图的详细描述中,本公开的以上和其它方面、特征和优点将更加明显,其中:
图1是示意性地示出根据本公开的实施例的存储器系统的框图;
图2是示意性地示出根据本公开的实施例的存储器装置的框图;
图3是示出根据本公开的实施例的存储器装置的字线和位线的结构的示图;
图4示出根据本公开的实施例的存储器系统的SPO恢复操作;
图5示出根据本公开的实施例的存储器控制器将系统数据清除到存储器装置中的操作;
图6A和图6B示出根据本公开的实施例的存储器系统的操作与常规存储器系统的操作之间的对比;
图7示出根据本公开的实施例的存储器装置中的开放存储块;
图8是示出根据本公开的实施例的存储器控制器恢复系统数据的操作的概念图;
图9是示出根据本公开的实施例的存储器系统处理主机命令的操作的流程图;
图10示出根据本公开的实施例的操作存储器系统的方法;以及
图11是示出根据本公开的实施例的计算系统的示图。
具体实施方式
在下文中,将参照附图详细地描述本公开的实施例。
图1示出根据本公开的实施例的存储器系统100。
参照图1,存储器系统100可以包括被配置为存储数据的存储器装置110以及被配置为控制存储器装置110的存储器控制器120。
存储器装置110可以包括多个存储块。存储器装置110可以被配置为响应于从存储器控制器120接收到的控制信号而操作。例如,存储器装置110的操作可以包括读取操作、编程操作(也被称为“写入操作”)、擦除操作等。
存储器装置110可以包括存储器单元阵列,该存储器单元阵列包括被配置为存储数据的多个存储器单元(也被简称为“单元”)。存储器单元阵列可以存在于存储块内部。
例如,存储器装置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的写入(编程)操作、读取操作、擦除操作和后台操作。例如,后台操作可以包括垃圾收集(GC)操作、损耗均衡(WL)操作和坏块管理(BBM)操作之中的至少一种。
存储器控制器120可以在主机的请求下控制存储器装置110的操作。可选地,当存储器控制器120执行存储器装置的一个或多个后台操作时,存储器控制器120可以在没有主机的相应请求的情况下控制存储器装置110的操作。
存储器控制器120和主机可以是单独的装置。在一些实施例中,存储器控制器120和主机可以被集成在单个装置中。在下面的描述中,存储器控制器120和主机是单独的装置。
参照图1,存储器控制器120可以包括存储器接口122、控制电路123和主机接口121。
主机接口121可以提供用于与主机通信的接口。
当从主机接收命令时,控制电路123可以通过主机接口121接收命令,并且可以执行处理命令的操作。
存储器接口122可以连接到存储器装置110以提供用于与存储器装置110通信的接口。也就是说,存储器接口122可以在控制电路123的控制下为存储器装置110和存储器控制器120提供接口。
控制电路123可以通过执行用于存储器控制器120的整体控制的操作来控制存储器装置110的操作。例如,控制电路123可以包括处理器124和工作存储器125。控制电路123可以进一步包括错误检测/校正电路(ECC电路)126等。
处理器124可以控制存储器控制器120的全部操作。处理器124可以执行逻辑操作。处理器124可以通过主机接口121与主机通信。处理器124可以通过存储器接口122与存储器装置110通信。
处理器124可以执行闪存转换层(FTL)的功能。处理器124可以通过使用FTL将由主机提供的逻辑块地址(LBA)转换为物理块地址(PBA)。FTL可以接收LBA并且通过使用映射表将LBA转换成PBA。
根据映射单元,存在FTL可以采用的各种地址映射方法。典型的地址映射方法可以包括页面映射方法、块映射方法以及混合映射方法。
在编程操作中,处理器124可以使从主机接收的数据随机化。例如,处理器124可以通过使用随机化种子来使从主机接收的数据随机化。经随机化的数据作为待存储的数据被提供到存储器装置110并且被编程在存储器单元阵列中。
在读取操作期间,处理器124可以使从存储器装置110接收的数据去随机化。例如,处理器124可以通过使用去随机化种子来使从存储器装置110接收的数据去随机化。经去随机化的数据可以被输出到主机。
处理器124可以运行固件(FW)以控制存储器控制器120的操作。换言之,处理器124可以控制存储器控制器120的全部操作,并且为了执行逻辑操作,处理器124可以在启动期间运行或驱动加载到工作存储器125中的固件。
固件是指在存储器系统100内部运行的程序,并且可以包括各种功能层。
例如,固件可以包括闪存转换层(FTL)、主机接口层(HIL)以及闪存接口层(FIL)之中的至少一种,FTL被配置为执行由主机提供的逻辑地址和存储器装置110的物理地址之间的转换操作;HIL)被配置为解释主机向存储器系统100发出的命令并且将该命令传递给FTL,并且FIL被配置为将由FTL发出的命令传递给存储器装置110。
例如,固件可以存储在存储器装置110中,然后被加载到工作存储器125中。
工作存储器125可以存储驱动存储器控制器120所需的固件、程序代码、命令和/或多条数据。工作存储器125可以包括诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)等之中的至少一种的易失性存储器。
错误检测/校正电路126可以通过使用错误校正码来检测校验目标数据的错误位,并且校正所检测到的错误位。例如,该校验目标数据可以是工作存储器125中存储的数据、从存储器装置110检索的数据等。
错误检测/校正电路126可以被实施为通过使用错误校正码来对数据进行解码。错误检测/校正电路126可以通过使用各种代码解码器来实施。例如,错误检测/校正电路126可以包括执行非系统代码解码的解码器或执行系统代码解码的解码器。
例如,错误检测/校正电路126可以针对每条读取数据逐扇区地检测错误位。也就是说,每条读取数据可以包括多个扇区。如本文所使用的,扇区可以指比闪速存储器的读取单位(页面)更小的数据单位。构成每条读取数据的扇区可以使用地址彼此对应。
错误检测/校正电路126可以计算位错误率(BER),并且确定是否可以逐扇区地执行错误校正。例如,如果BER大于参考值,则错误检测/校正电路126可以确定相应扇区是不可校正的或失败的。如果BER小于或等于参考值,则错误检测/校正电路126可以确定相应扇区是可校正的或通过的。
错误检测/校正电路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和126)中的一些可以集成到单个元件中。另外,在一些情况下,除了存储器控制器120的上述组成元件之外,还可以将一个或多个其它组成元件添加到存储器控制器120。
在下文中,将参照图2更详细地描述存储器装置110。
图2是示意性地示出根据本公开的实施例的图1的存储器装置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中包括的多个存储器单元中的每一个可以存储至少一位数据。例如,存储器单元阵列210中包括的多个存储器单元中的每一个可以是被配置为存储一位数据的单层单元(SLC)。作为另一示例,存储器单元阵列210中包括的多个存储器单元中的每一个可以是被配置为存储两位数据的多层单元(MLC)。作为另一示例,存储器单元阵列210中包括的多个存储器单元中的每一个可以是被配置为存储三位数据的三层单元(TLC)。作为另一示例,存储器单元阵列210中包括的多个存储器单元中的每一个可以是被配置为存储四位数据的四层单元(QLC)。作为另一示例,存储器单元阵列210中包括的多个存储器单元中的每一个可以存储至少五位数据。
参照图2,地址解码器220、读取/写入电路230、控制逻辑240和电压生成电路250可以作为被配置为驱动存储器单元阵列210的外围电路而操作。
地址解码器220可以通过多个字线WL连接到存储器单元阵列210。
地址解码器220可以在控制逻辑240的控制下而操作。
地址解码器220可以通过存储器装置110内部的输入/输出缓冲器(未示出接收地址。地址解码器220可以对所接收到的地址之中的块地址进行解码。地址解码器220可以根据经解码的块地址选择存储器单元阵列210中的至少一个存储块。
地址解码器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执行读取操作时作为“读取电路”而操作,并且可以在存储器单元阵列210执行写入(或编程)操作时作为“写入电路”而操作。
读取/写入电路230可以被称为包括多个页面缓冲器PB的页面缓冲器电路或数据寄存器电路。读取/写入电路230可以包括参与数据处理功能的数据缓冲器,并且在一些情况下,读取/写入电路230可以进一步包括以高速缓存功能操作的高速缓存缓冲器。
读取/写入电路230中包括的多个页面缓冲器PB可以分别通过多个位线BL连接到存储器单元阵列210。为了在读取操作和编程验证操作期间感测存储器单元的阈值电压Vth,多个页面缓冲器PB可以将感测电流连续地供应到与存储器单元连接的位线BL,在感测节点处感测根据相应存储器单元的编程状态的流过相应位线的电流量的变化,并且可以将所感测的值锁存为感测数据。
读取/写入电路230可以响应于从控制逻辑240输出的页面缓冲器控制信号而操作。
在读取操作期间,读取/写入电路230感测存储器单元中的数据,临时存储所感测到的数据,并且将数据输出到存储器装置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可以彼此相交,从而限定了设置在多个字线WL和多个位线BL的各个相交点处的多个存储器单元MC。多个存储器单元MC中的每一个中可以布置有晶体管TR。
例如,布置在多个存储器单元MC中的每一个中的晶体管TR可以包括漏极、源极和栅极。晶体管TR的漏极(或源极)可以直接地或经由另一晶体管TR连接到相应位线BL。晶体管TR的源极(或漏极)可以直接地或经由另一晶体管TR连接到源极线(源极线可以是地)。晶体管TR的栅极可以包括浮栅(FG)和控制栅(CG),浮栅(FG)被绝缘体围绕,从相应字线WL向控制栅(CG)施加栅极电压。
在多个存储块BLK1至BLKz中的每一个中,第一选择线(也称为源极选择线或漏极选择线)可以附加地布置在多个字线WL中的两个最外字线之中更靠近读取/写入电路230的第一最外字线的外侧,并且第二选择线(也称为漏极选择线或源极选择线)可以附加地布置在多个字线WL中的两个最外字线之中更靠近源极线的第二最外字线的外侧。
在一些情况下,可以在第一最外字线和第一选择线之间附加地布置至少一个虚设字线。另外,可以在第二最外字线和第二选择线之间附加地布置至少一个虚设字线。
可以逐页面地执行存储块的读取操作和编程操作(或写入操作),并且可以逐存储块地执行擦除操作。
图3是示出根据本公开的实施例的图1的存储器装置110的字线WL和位线BL的结构的示图。
参照图3,存储器装置110具有设置存储器单元MC的内核区域和与除内核区域之外的剩余区域相对应的辅助区域。辅助区域支持存储器单元阵列210的操作。
内核区域可以包括多个页面PG和多个串STR。在内核区域中,多个字线WL1至WL9和多个位线BL布置为彼此相交。
字线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。
为了访问目标存储器单元MC,可以首先通过输入/输出缓冲器,然后通过行解码器310和列解码器320将地址输入到内核区域,从而可指定目标存储器单元MC。如本文所使用的,指定目标存储器单元MC是指访问在连接到行解码器310的字线WL1至WL9和连接到列解码器320的位线BL的相交点处的存储器单元MC中的一个。
第一方向(例如,X轴方向)上的页面PG由作为字线WL的公用线限定,并且第二方向(例如,Y轴方向)上的串STR由作为位线BL的公用线限定(或连接)。如本文所使用的,共同限定是指使用相同材料在结构上连接,以使得共同限定的组件在施加电压期间同时接收相同的电压。由于在前存储器单元MC两端的压降,施加到串联连接的存储器单元MC之中设置在中间位置的存储器单元MC的电压可以与施加到设置在第一位置的存储器单元MC的电压和施加到设置在最后位置的存储器单元MC的电压具有略有不同的电压电平,设置在第一位置的存储器单元MC比设置在中间位置的存储器单元MC更靠近电压生成电路250,并且设置在中间位置的存储器单元MC比设置在最后位置的存储器单元MC更靠近电压生成电路250。
因为存储器装置110进行的包括编程操作和读取操作的所有数据处理都是经由数据寄存器330发生,所以数据寄存器330起到重要的作用。如果数据寄存器330进行的数据处理被延迟,则所有其它电路需要等待,直到数据寄存器330完成数据处理为止。因此,数据寄存器330中的延迟会使存储器装置110的整体性能劣化。
参照图3,在一个串STR中,多个晶体管TR1至TR9可以分别连接到多个字线WL1至WL9。多个晶体管TR1至TR9对应于多个存储器单元MC。在该示例中,多个晶体管TR1至TR9中的每一个包括控制栅CG和浮栅FG。
多个字线WL1至WL9包括两个最外字线WL1和WL9。第一选择线DSL可以附加地布置在两个最外字线WL1和WL9之中就信号路径而言更靠近数据寄存器330的第一最外字线WL1的外侧。第二选择线SSL可以附加地布置在第二最外字线WL9的外侧。
响应于第一选择线DSL的电压而导通/关断的第一选择晶体管D-TR具有连接到第一选择线DSL的栅极,但是不包括浮栅FG。响应于第二选择线SSL的电压而导通/关断的第二选择晶体管S-TR具有连接到第二选择线SSL的栅极,但是不包括浮栅FG。
第一选择晶体管D-TR起到导通或关断相应串STR和数据寄存器330之间的连接的开关的作用。第二选择晶体管S-TR起到导通或关断相应串STR和源极线SL之间的连接的开关的作用。也就是说,第一选择晶体管D-TR和第二选择晶体管S-TR起到位于相应串STR的两端并且传递/阻断信号的网守的作用。
在编程操作期间,存储器系统100通过将目标存储器单元MC连接到位线BL以使得目标存储器单元MC被电子填充来对目标存储器单元MC进行编程。因此,存储器系统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两者都浮置,从而产生无穷大电阻。因此,在擦除操作期间,可以去除第一选择晶体管D-TR和第二选择晶体管S-TR的开关作用,并且由于电位差,电子仅可以在浮栅FG和衬底之间操作。
图4示出根据本公开的实施例的图1的存储器系统100的SPO恢复操作。
参照图4,在SPO恢复操作中,存储器系统100的存储器控制器120可以识别存储器装置110的存储块(BLK)中存储的系统数据和用户数据,以便恢复在发生SPO时未能存储在存储器装置110中的丢失的系统数据。
系统数据可以是用于管理被存储器系统100的存储器控制器120驱动的固件处理的用户数据的数据,并且可以称为元数据、管理数据等。
系统数据可以包括以下信息。
例如,系统数据可以包括指示逻辑地址和物理地址之间的关系的映射信息,该逻辑地址由主机提供,该物理地址对应于存储器装置110中的、存储用户数据的存储器区域的地址。
在另一示例中,系统数据可以包括指示存储器装置110中包括的多个存储块之中的开放存储块的信息。进一步地,系统数据可以包括写入指针,写入指针指示在每个开放存储块中写入数据的物理地址。
在另一示例中,系统数据可以包括关于存储器装置110中包括的多个存储块中的每一个的擦除/写入周期信息或读取计数信息。
在另一示例中,系统数据可以包括关于存储器装置110中包括的多个存储块的管理信息。管理信息可以包括关于存储映射信息的存储块的信息、关于存储与存储器系统100的操作有关的历史日志信息的存储块的信息、关于存储器装置110中包括的多个存储块之中的开放存储块的信息、以及关于存储器装置110中包括的多个存储块之中的封闭存储块的信息。
存储器控制器120可以基于存储器装置110的存储块(BLK)中存储的系统数据和用户数据来恢复丢失的系统数据。
在将系统数据首先存储在存储器控制器120内的工作存储器125中之后,系统数据可以被清除到存储器装置110中。当在系统数据存储在工作存储器125中时发生SPO时,工作存储器125中存储的系统数据丢失,而没有存储在存储器装置110中。因此,需要存储器控制器120通过执行SPO恢复操作来恢复由于SPO而丢失的系统数据。
图5示出根据本公开的实施例的图1的存储器控制器120将系统数据清除到存储器装置110中的操作。
参照图5,存储器系统100的存储器控制器120可以在恢复由于SPO而丢失的系统数据的操作完成的第一时间点和从主机接收到断电准备请求的第二时间点之间,将工作存储器125中存储的所恢复的系统数据清除到存储器装置110中。
断电准备请求可以是指示被配置为准备存储器系统100的断电操作的操作的请求,并且存储器系统100可以响应于断电准备请求将工作存储器125中存储的系统数据清除到存储器装置110中。在现有技术中,例如,当在SPO恢复操作完成之后从主机接收到断电准备请求时,存储器系统100可以将工作存储器125中存储的系统数据清除到存储器装置110中。进一步地,在另一示例中,存储器系统100可以在SPO恢复操作完成之后在处理从主机接收的另一请求的同时,从主机接收断电准备请求,并且当从主机接收到断电准备请求时,存储器系统100可以将工作存储器125中存储的系统数据清除到存储器装置110中。
然而,根据本公开的实施例,存储器控制器120可以在从主机接收到断电准备请求之前将所恢复的系统数据清除到存储器装置110中。
同时,存储器控制器120可以在从主机接收到断电准备请求之前,基于1)执行恢复丢失的系统数据的操作所花费的第一时间和2)将所恢复的系统数据清除到存储器装置110中待花费的第二时间,将所恢复的系统数据清除到存储器装置110中。
例如,当第一时间和第二时间之和短于预设阈值时间时,存储器控制器120可以将所恢复的系统数据清除到存储器装置110中。
另一方面,当第一时间和第二时间之和长于或等于预设阈值时间时,存储器控制器120可以不将所恢复的系统数据清除到存储器装置110中。这是为了防止由于恢复丢失的系统数据和清除所恢复的系统数据所花费的时间增加而引起存储器系统100的性能劣化。
在下文中,将描述与存储器控制器120响应于来自主机的断电准备请求,将所恢复的系统数据清除到存储器装置110中的常规存储器系统相比,存储器控制器120在从主机接收到断电准备请求之前将所恢复的系统数据清除到存储器装置110中的情况的优点。
图6A和图6B分别示出根据本公开的实施例的常规存储器系统的操作和图1的存储器系统100的操作。
参照图6A,当在执行了SPO恢复操作之后在从主机接收到断电准备请求之前再次发生SPO时,常规存储器系统每当发生SPO并且通电时就重复执行SPO恢复操作。
在这种情况下,当在从主机接收到断电准备请求之前重复发生SPO时,常规存储器系统在发生每次SPO之后重复执行SPO恢复操作。
如上所述,当重复执行SPO恢复操作时,常规存储器系统重复执行读取存储器装置中存储的系统数据或用户数据并且根据需要改变相应系统数据或用户数据的物理位置的操作。
此时,当重复读取存储器装置中存储的系统数据或用户数据的操作时,施加到与存储相应系统数据或用户数据的存储器区域联接的字线的读取应力增加,因此字线中可能会发生劣化。
进一步地,虚设数据被写入与无法识别是否执行擦除的给定字线联接的存储器区域中,以便在SPO恢复操作期间不使用给定字线,因此存储器装置中包括的多个存储块之中的空闲存储块的数量可能减少。在这种情况下,可能会更频繁地执行用于确保空闲存储块的垃圾收集操作,因此存储器系统的性能可能会下降。
另外,存储器装置中包括的多个存储块之中的特定存储块的读取计数值可能增加,因此用于执行读取回收操作的时间点可能更早。
另一方面,参照图6B,根据本公开的实施例的存储器系统100可以在恢复系统数据的操作完成的第一时间点之后,甚至在从主机接收到断电准备请求之前,执行用于将系统数据清除到存储器装置110中的操作。
因此,即使在将系统数据清除到存储器装置110中之后,在从主机接收到断电准备请求的第二时间点之前发生SPO,当SPO之后通电时也不再执行恢复系统数据的操作。
因此,当重复发生SPO时,存储器系统100可以防止不必要地重复恢复系统数据的操作的问题。也就是说,可以避免字线的劣化,空闲存储块的数量的减少以及读取回收操作的时间点的提前。
图7示出根据本公开的实施例的图1的存储器装置110中的开放存储块。
参照图7,存储器系统100的存储器控制器120可以通过读取存储器装置110中包括的存储块(BLK)之中的开放存储块中存储的用户数据,来识别是否存在由于SPO而丢失的系统数据,并且当识别出存在丢失的系统数据时,存储器系统100的存储器控制器120恢复丢失的系统数据。
当发生SPO时写入存储器装置110中的用户数据被写入开放存储块中。因此,存储器控制器120可以仅扫描写入开放存储块中的用户数据,并且识别与写入开放存储块中的用户数据相对应的系统数据是否存储在存储器装置110中,以便识别在发生SPO时是否存在丢失的系统数据。
存储器控制器120可以逐个地读取开放存储块中包括的所有页面中存储的用户数据,并且根据存储器装置110中存储的系统数据之中对应于每个页面的系统数据的值是否具有特定模式(例如,0xFFFFFFFF)来识别与用户数据相对应的系统数据是否存储在存储器装置110中。
当与写入开放存储块中的用户数据相对应的系统数据未存储在存储器装置110中时,存储器控制器120可以确定在发生SPO时丢失了与用户数据相对应的系统数据。
图8是示出根据本公开的实施例的图1的存储器控制器120恢复系统数据的操作的概念图。
参照图8,当恢复由于SPO而丢失的系统数据时,存储器系统100的存储器控制器120可以对具有预设单位大小(例如,4KB)的每个用户数据重复执行恢复系统数据的操作。此时,单位大小可以是页面大小的倍数,页面大小是在存储器装置110中读取数据或将数据写入存储器装置110中的单位大小。
具体地,当假设用于恢复系统数据的单位大小为4KB时,存储器控制器120可以检查具有4KB的单位大小的用户数据,恢复针对所检查的用户数据的系统数据,并且将所恢复的系统数据存储在存储器控制器120内的工作存储器125中。
存储器控制器120可以检查具有4KB的单位大小的另一用户数据,恢复针对所检查的用户数据的系统数据,并且将所恢复的系统数据存储在存储器控制器120内的工作存储器125中。
在重复执行恢复操作之后,当满足特定条件时,存储器控制器120可以将所有所恢复的系统数据清除到存储器装置110中。例如,当与所恢复的系统数据相对应的用户数据的大小大于或等于预设阈值数据大小(例如,1MB)时,存储器控制器120可以将所恢复的系统数据清除到存储器装置110中。
图9是示出根据本公开的实施例的图1的存储器系统100处理从主机接收到的主机命令的操作的流程图。
参照图9,当在发生SPO之后执行SPO恢复操作时,存储器系统100的存储器控制器120可以执行恢复由于SPO而丢失的系统数据的操作。
当恢复由于SPO而丢失的系统数据的操作完成时,存储器控制器120可以将所恢复的系统数据清除到存储器系统100的存储器装置110中。
在将所恢复的系统数据清除到存储器装置110中之后,存储器控制器120可以将断电正常(PON)标记写入存储器装置110中,PON标记指示断电操作正常完成而没有任何错误。此时,存储器控制器120可以将用于写入PON标记的内部命令传输到存储器装置110,该内部命令是在存储器系统100内使用的命令。
当存储器控制器120执行下一通电操作时,PON标记可以用于确定是否执行SPO恢复操作。当PON标记没有被写入存储器装置110中时,存储器控制器120可以执行SPO恢复操作。然而,当PON标记被写入存储器装置110中时,存储器控制器120可以加载存储器装置110中存储的系统数据而无需作任何改变。
当存储器控制器120正在执行恢复系统数据的操作时,无法处理从主机接收到的主机命令,例如,读取命令/写入命令/擦除命令。
在恢复系统数据的操作完成之后,存储器控制器120可以将存储器控制器120的状态切换到主机命令就绪状态。主机命令就绪状态是存储器控制器120能够处理从主机接收到的主机命令的状态。
在将存储器控制器120的状态切换到主机命令就绪状态之后,存储器控制器120可以将指示存储器控制器120的状态已经切换到主机命令就绪状态的响应命令传输到主机。响应命令是存储器控制器120使用的将对主机命令的响应传输到主机的命令。
在接收到指示存储器控制器120的状态已经切换到主机命令就绪状态的响应命令之后,主机可以再次将主机命令传输到存储器控制器120。此后,存储器控制器120可以将用于处理从主机接收到的主机命令的内部命令传输到存储器装置110。
图10示出根据本公开的实施例的操作图1的存储器系统100的方法。
参照图10,在S1010中,存储器控制器120可以执行恢复由于SPO而丢失的系统数据的操作。
在恢复操作中,存储器控制器120可以读取存储器装置110中的多个存储块之中存储用户数据的开放存储块的页面,并且识别是否存在由于SPO而丢失的系统数据。
对具有预设单位大小的每个用户数据重复执行恢复系统数据的操作。
在S1020中,存储器控制器120可以在恢复系统数据的操作完成的第一时间点和从主机接收到断电准备请求的第二时间点之间将所恢复的系统数据清除到存储器装置110中。
同时,可以基于恢复系统数据的操作所花费的第一时间和将系统数据清除到存储器装置110中的操作待花费的第二时间将所恢复的系统数据清除到存储器装置110中。
除了S1010和S1020之外,操作存储器系统100的方法可以进一步包括:在将系统数据清除到存储器装置110中之后,将指示正常执行断电操作的标记写入存储器装置110中。
操作存储器系统100的方法可以进一步包括:在恢复系统数据的第一时间点之后,将存储器控制器120的状态切换到可以处理从主机接收的主机命令的状态。
操作存储器系统100的方法可以进一步包括:将响应命令传输到主机,该响应命令包括关于存储器控制器120的可以处理从主机接收的主机命令的状态的信息。
同时,可以使用控制电路123来执行存储器控制器120的操作,并且处理器124可以运行或驱动固件来执行存储器控制器120的操作。
图11是示出根据本公开的实施例的计算系统1100的示图。
参照图11,计算系统1100可以包括:存储器系统100,电连接到系统总线1160;CPU1110,被配置为控制计算系统1100的全部操作;RAM 1120,被配置为存储与计算系统1100的操作有关的数据和信息;用户界面/用户体验(UI/UX)模块1130,被配置为向用户提供用户环境;通信模块1140,被配置为利用有线和/或无线的方法与外部装置通信;以及电源管理模块1150,被配置为管理由计算系统1100所使用的电力。
计算系统1100可以是个人计算机(PC),诸如智能电话、平板电脑的移动终端,或各种电子装置中的任意一种。
计算系统1100可以进一步包括用于供应操作电压的电池,并且可以进一步包括应用芯片组、图形相关模块、相机图像处理器、DRAM等中的一种或多种。
存储器系统100不仅可以包括诸如硬盘驱动器(HDD)的被配置为将数据存储在磁盘中的装置,还可以包括诸如固态驱动器(SSD)、通用闪存装置、嵌入式MMC(eMMC)装置等的被配置为将数据存储在非易失性存储器中的装置。非易失性存储器可以包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、闪速存储器、相变RAM(PRAM)、磁性RAM(MRAM)、电阻式RAM(RRAM)、铁电RAM(FRAM)等中的一种或多种。另外,存储器系统100可以被实施为各种类型的存储装置中的任意一种,并且被安装在各种电子装置中的任意一种的内部。存储器系统100可以对应于图1的存储器系统100。
根据上述本公开的实施例,可以使存储器系统的操作延迟时间最小化。另外,根据本公开的实施例,可以使在调用特定功能的进程中发生的开销最小化。
虽然已经出于说明性目的描述了本公开的各个实施例,但是本领域技术人员将理解的是,可以在不脱离如所附权利要求书中所公开的本公开的范围和精神的情况下,进行各种修改、添加和替换。因此,为了简洁和清楚起见,已经描述了本公开的实施例。本公开的范围应以所附权利要求书为基础进行解释,以使得与权利要求书等同的范围内包括的所有技术构思都属于本公开。
Claims (20)
1.一种存储器系统,包括:
存储器装置,包括多个存储块;以及
存储器控制器,与所述存储器装置通信并且控制所述存储器装置,
其中所述存储器控制器在执行突然断电恢复操作,即SPO恢复操作时,执行恢复由于SPO而丢失的系统数据的操作,并在恢复所述系统数据的操作完成的第一时间点之后并且在从主机接收到断电准备请求的第二时间点之前,将所恢复的系统数据清除到所述存储器装置中。
2.根据权利要求1所述的存储器系统,其中所述存储器控制器根据恢复所述系统数据的操作所花费的第一时间和将所恢复的系统数据清除到所述存储器装置中的操作待花费的第二时间来将所恢复的系统数据清除到所述存储器装置中。
3.根据权利要求1所述的存储器系统,其中所述存储器控制器读取所述多个存储块之中存储用户数据的开放存储块的页面,并且基于所述读取的结果来识别是否存在由于所述SPO而丢失的系统数据。
4.根据权利要求3所述的存储器系统,其中所述存储器控制器执行恢复与具有预设单位大小的每个用户数据相对应的系统数据的操作。
5.根据权利要求1所述的存储器系统,其中在将所恢复的系统数据清除到所述存储器装置中之后,所述存储器控制器将指示断电操作完成而没有任何错误的标记写入所述存储器装置中。
6.根据权利要求1所述的存储器系统,其中在所述第一时间点之后,所述存储器控制器将所述存储器控制器的状态切换到能够处理从所述主机接收的主机命令的状态,并且
其中所述存储器控制器将响应命令传输到所述主机,所述响应命令包括关于所述存储器控制器的与能够处理从所述主机接收的所述主机命令的状态相对应的状态的信息。
7.一种存储器控制器,包括:
存储器接口,与包括多个存储块的存储器装置通信;以及
处理器,通过所述存储器接口与所述存储器装置通信,并且运行固件以控制所述存储器装置,
其中所述处理器在执行突然断电恢复操作,即SPO恢复操作时,执行恢复由于SPO而丢失的系统数据的操作,并在恢复所述系统数据的操作完成的第一时间点之后并且在从主机接收到断电准备请求的第二时间点之前,将所恢复的系统数据清除到所述存储器装置中。
8.根据权利要求7所述的存储器控制器,其中所述处理器根据恢复所述系统数据的操作所花费的第一时间和将所恢复的系统数据清除到所述存储器装置中的操作待花费的第二时间来将所恢复的系统数据清除到所述存储器装置中。
9.根据权利要求7所述的存储器控制器,其中所述处理器读取所述多个存储块之中存储用户数据的开放存储块的页面,并且基于所述读取的结果来识别是否存在由于所述SPO而丢失的系统数据。
10.根据权利要求9所述的存储器控制器,其中所述处理器执行恢复与具有预设单位大小的每个用户数据相对应的系统数据的操作。
11.根据权利要求7所述的存储器控制器,其中在将所恢复的系统数据清除到所述存储器装置中之后,所述处理器将指示断电操作完成而没有任何错误的标记写入所述存储器装置中。
12.根据权利要求7所述的存储器控制器,其中在所述第一时间点之后,所述处理器将所述存储器控制器的状态切换到能够处理从所述主机接收的主机命令的状态。
13.根据权利要求12所述的存储器控制器,其中所述处理器将响应命令传输到所述主机,所述响应命令包括关于所述存储器控制器的与能够处理从所述主机接收的所述主机命令的状态相对应的状态的信息。
14.一种操作存储器系统的方法,所述存储器系统包括存储器装置和存储器控制器,所述方法包括:
在执行突然断电恢复操作,即SPO恢复操作时,恢复由于SPO而丢失的系统数据;以及
在恢复所述系统数据的操作完成的第一时间点之后并且在从主机接收到断电准备请求的第二时间点之前,将所恢复的系统数据清除到所述存储器装置中。
15.根据权利要求14所述的方法,其中将所恢复的系统数据清除到所述存储器装置中包括:根据恢复所述系统数据的操作所花费的第一时间和将所恢复的系统数据清除到所述存储器装置中的操作待花费的第二时间来将所恢复的系统数据清除到所述存储器装置中。
16.根据权利要求14所述的方法,其中恢复所述系统数据包括:
读取所述存储器装置中的多个存储块之中存储用户数据的开放存储块的页面;以及
基于所述读取的结果来识别是否存在由于所述SPO而丢失的系统数据。
17.根据权利要求16所述的方法,其中恢复所述系统数据包括:执行恢复与具有预设单位大小的每个用户数据相对应的系统数据的操作。
18.根据权利要求14所述的方法,进一步包括:在将所恢复的系统数据清除到所述存储器装置中之后,将指示断电操作完成而没有任何错误的标记写入所述存储器装置中。
19.根据权利要求14所述的方法,进一步包括:在所述第一时间点之后,将所述存储器控制器的状态切换到能够处理从所述主机接收的主机命令的状态。
20.根据权利要求19所述的方法,进一步包括:将响应命令传输到所述主机,所述响应命令包括关于所述存储器控制器的与能够处理从所述主机接收的所述主机命令的状态相对应的状态的信息。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020200106069A KR20220025401A (ko) | 2020-08-24 | 2020-08-24 | 메모리 시스템, 메모리 컨트롤러 및 메모리 시스템의 동작 방법 |
KR10-2020-0106069 | 2020-08-24 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114090330A true CN114090330A (zh) | 2022-02-25 |
Family
ID=80270759
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110258822.XA Withdrawn CN114090330A (zh) | 2020-08-24 | 2021-03-10 | 存储器系统、存储器控制器以及操作存储器系统的方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11500771B2 (zh) |
KR (1) | KR20220025401A (zh) |
CN (1) | CN114090330A (zh) |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101890767B1 (ko) * | 2011-07-01 | 2018-09-28 | 시게이트 테크놀로지 인터내셔날 | 주소 사상 정보 관리 방법 이를 적용한 저장 장치 |
KR101818176B1 (ko) | 2011-12-12 | 2018-01-15 | 삼성전자주식회사 | 메모리 시스템 및 그것의 동작 방법 |
KR20150082010A (ko) * | 2014-01-07 | 2015-07-15 | 삼성전자주식회사 | 불휘발성 메모리 파일 시스템에서의 마이크로 저널링 방법 |
KR20180104853A (ko) * | 2017-03-14 | 2018-09-27 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그의 동작 방법 |
KR102395538B1 (ko) * | 2017-04-28 | 2022-05-10 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그것의 동작 방법 |
KR102259256B1 (ko) * | 2017-05-16 | 2021-06-02 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그것의 동작 방법 |
KR102410296B1 (ko) * | 2017-11-06 | 2022-06-20 | 에스케이하이닉스 주식회사 | 컨트롤러 및 컨트롤러의 동작방법 |
TWI653538B (zh) * | 2017-11-13 | 2019-03-11 | 慧榮科技股份有限公司 | 資料儲存裝置與記憶體裝置之資料處理方法 |
KR20190092054A (ko) * | 2018-01-30 | 2019-08-07 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작 방법 |
CN111221750B (zh) * | 2018-11-27 | 2023-08-22 | 建兴储存科技(广州)有限公司 | 固态储存装置的数据处理方法 |
CN112882650B (zh) * | 2019-11-29 | 2024-04-30 | 慧荣科技股份有限公司 | 数据储存装置以及非挥发式存储器控制方法 |
CN112882649B (zh) * | 2019-11-29 | 2024-04-02 | 慧荣科技股份有限公司 | 数据储存装置以及非挥发式存储器控制方法 |
-
2020
- 2020-08-24 KR KR1020200106069A patent/KR20220025401A/ko active Search and Examination
-
2021
- 2021-01-21 US US17/154,838 patent/US11500771B2/en active Active
- 2021-03-10 CN CN202110258822.XA patent/CN114090330A/zh not_active Withdrawn
Also Published As
Publication number | Publication date |
---|---|
KR20220025401A (ko) | 2022-03-03 |
US11500771B2 (en) | 2022-11-15 |
US20220058122A1 (en) | 2022-02-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20230333932A1 (en) | Memory system and operating method thereof | |
CN114067870A (zh) | 存储器系统、存储器装置以及用于操作存储器装置的方法 | |
CN113903384A (zh) | 存储器系统、存储器控制器以及操作存储器系统的方法 | |
CN114253465A (zh) | 存储器系统及其操作方法 | |
CN113204312A (zh) | 存储器系统、存储器控制器及存储器系统的操作方法 | |
CN113257324A (zh) | 存储器系统、存储器控制器以及操作存储器系统的方法 | |
CN113010095A (zh) | 存储器系统、存储器控制器及其操作方法 | |
CN116136738A (zh) | 使用外部装置执行后台操作的存储器系统及其操作方法 | |
CN114090473A (zh) | 存储器系统、存储器控制器及操作存储器系统的方法 | |
CN113806254A (zh) | 存储器系统、存储器控制器及存储器系统的操作方法 | |
CN113936721A (zh) | 存储器系统、存储器装置和操作存储器装置的方法 | |
CN114242152A (zh) | 存储器系统及其操作方法 | |
US11467903B2 (en) | Memory system and operating method thereof | |
CN115952115A (zh) | 基于融合链表控制同步操作的存储器控制器及其操作方法 | |
CN115963981A (zh) | 存储器系统及存储器系统的操作方法 | |
CN115206393A (zh) | 存储器装置及存储器装置的操作方法 | |
CN112783426A (zh) | 存储器系统、存储器控制器和操作存储器控制器的方法 | |
CN112925476A (zh) | 存储器系统、存储器控制器及其操作方法 | |
US11500771B2 (en) | Memory system, memory controller, and method of operating memory system | |
CN114201110B (zh) | 存储器系统及其操作方法 | |
US11669266B2 (en) | Memory system and operating method of memory system | |
US11636007B2 (en) | Memory system and operating method thereof for flushing data in data cache with parity | |
CN114968078A (zh) | 存储器装置及其操作方法 | |
CN113764027A (zh) | 存储器系统、存储器控制器以及存储器系统的操作方法 | |
CN116303107A (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 |
Application publication date: 20220225 |
|
WW01 | Invention patent application withdrawn after publication |