CN111443866B - 能从非正常关机迅速恢复的非易失性存储系统及其方法 - Google Patents
能从非正常关机迅速恢复的非易失性存储系统及其方法 Download PDFInfo
- Publication number
- CN111443866B CN111443866B CN201911225497.6A CN201911225497A CN111443866B CN 111443866 B CN111443866 B CN 111443866B CN 201911225497 A CN201911225497 A CN 201911225497A CN 111443866 B CN111443866 B CN 111443866B
- Authority
- CN
- China
- Prior art keywords
- data
- control data
- volatile memory
- sequential
- host
- 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.)
- Active
Links
- 230000015654 memory Effects 0.000 title claims abstract description 318
- 230000002159 abnormal effect Effects 0.000 title claims abstract description 21
- 238000000034 method Methods 0.000 title claims description 34
- 238000011084 recovery Methods 0.000 claims description 32
- 238000012544 monitoring process Methods 0.000 claims description 12
- 230000004044 response Effects 0.000 claims description 4
- 230000001419 dependent effect Effects 0.000 claims 1
- 238000004891 communication Methods 0.000 description 15
- 238000013507 mapping Methods 0.000 description 11
- 238000010586 diagram Methods 0.000 description 10
- 230000010076 replication Effects 0.000 description 9
- 238000012005 ligant binding assay Methods 0.000 description 7
- 239000000872 buffer Substances 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 6
- 238000003491 array Methods 0.000 description 5
- 238000007726 management method Methods 0.000 description 5
- 238000002360 preparation method Methods 0.000 description 5
- 230000008859 change Effects 0.000 description 4
- 230000005291 magnetic effect Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 239000004065 semiconductor Substances 0.000 description 3
- 238000013519 translation Methods 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 238000012937 correction Methods 0.000 description 2
- 150000002500 ions Chemical class 0.000 description 2
- 230000005415 magnetization Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 239000007784 solid electrolyte Substances 0.000 description 2
- 239000000758 substrate Substances 0.000 description 2
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 1
- 229910017629 Sb2Te3 Inorganic materials 0.000 description 1
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 1
- 239000003990 capacitor Substances 0.000 description 1
- 239000005387 chalcogenide glass Substances 0.000 description 1
- 238000012512 characterization method Methods 0.000 description 1
- 239000004020 conductor Substances 0.000 description 1
- 229910052802 copper Inorganic materials 0.000 description 1
- 239000010949 copper Substances 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000005294 ferromagnetic effect Effects 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- GNPVGFCGXDBREM-UHFFFAOYSA-N germanium atom Chemical group [Ge] GNPVGFCGXDBREM-UHFFFAOYSA-N 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 229910052751 metal Inorganic materials 0.000 description 1
- 239000002184 metal Substances 0.000 description 1
- 238000001465 metallisation Methods 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 229910052710 silicon Inorganic materials 0.000 description 1
- 239000010703 silicon Substances 0.000 description 1
- 229910052709 silver Inorganic materials 0.000 description 1
- 239000004332 silver Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 239000010409 thin film Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- WFKWXMTUELFFGS-UHFFFAOYSA-N tungsten Chemical compound [W] WFKWXMTUELFFGS-UHFFFAOYSA-N 0.000 description 1
- 229910052721 tungsten Inorganic materials 0.000 description 1
- 239000010937 tungsten Substances 0.000 description 1
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/1474—Saving, restoring, recovering or retrying in transactions
-
- 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/16—Error detection or correction of the data by redundancy in hardware
- G06F11/1666—Error detection or correction of the data by redundancy in hardware where the redundant component is memory or memory area
-
- 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/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
- 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
- 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/1471—Saving, restoring, recovering or retrying involving logging of persistent data for recovery
-
- 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
- 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
-
- 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/065—Replication 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/0653—Monitoring storage devices or systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- 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/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/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- 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
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0688—Non-volatile semiconductor memory arrays
-
- G—PHYSICS
- 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
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
本发明题为“能从非正常关机迅速恢复的非易失性存储系统”。本发明公开了一种设备,其包括多个非易失性存储器单元和连接到多个非易失性存储器单元的控制电路。控制电路被配置为从主机接收写入命令并且识别与临时数据相关联的写入命令。在恢复操作中,从重建的控制数据中省略与临时数据相关联的控制数据。
Description
技术领域
本公开涉及一种设备,具体地,涉及一种从非正常关机迅速恢复的非易失性存储设备。
背景技术
许多电子设备都利用存储器系统。通常,存储器系统包括非易失性存储器,诸如闪存存储器。包括存储器系统或连接到存储器系统的电子设备通常被称为主机。
包括半导体存储器的存储器系统可通过接口与主机通信。在一些情况下,多于一个数据存储设备可通过一个或多个接口与主机系统通信。
包括半导体存储器的存储器系统可包括与控制器通信的一个或多个非易失性存储器管芯。例如,存储器总线可将非易失性存储器管芯与存储器系统中的控制器连接。
发明内容
本申请公开了一种设备,该设备包括:连接到多个非易失性存储器单元的控制电路,所述控制电路被配置为从主机接收写入命令,识别与所述写入命令相关联的顺序数据和非顺序数据,并且以由与所述写入命令一起接收的顺序数据和非顺序数据的量和恢复操作的时间限制所确定的频率将与顺序和非顺序数据相关联的控制数据从易失性存储器复制到所述多个非易失性存储器单元。
附图说明
类似编号的元件是指不同图中的共同部件。
图1是连接到主机的存储器系统的一个实施方案的框图。
图2是前端处理器电路的一个实施方案的框图。前端处理器电路是控制器的一部分。
图3是后端处理器电路的一个实施方案的框图。在一些实施方案中,后端处理器电路是控制器的一部分。
图4是存储器封装件的一个实施方案的框图。
图5是存储器管芯的一个实施方案的框图。
图6示出了与控制数据相关联的存储器系统的部件的示例。
图7示出了存储在非易失性存储器中的开放块中的数据的示例。
图8示出了从非正常关机恢复的步骤的示例。
图9示出了将存储器系统配置为具有小于限制的恢复时间的方法的示例。
图10示出了具有顺序开放块和非顺序开放块的非易失性存储器的示例。
图11示出了在存储器系统中复制控制数据的方法的示例。
图12示出了在存储器系统中写入临时数据和非临时数据的方法的示例。
图13示出了包括用于临时数据的开放块的非易失性存储器的示例。
图14示出了在存储器系统中复制控制数据的方法的示例。
图15示出了在分离临时数据的存储器系统中从非正常关机恢复的方法的示例。
图16示出了操作存储器系统的方法的示例。
具体实施方式
在一些非易失性存储系统中,控制数据可以存储在易失性存储器中并且可以间隔地复制到非易失性存储器中。断电可能会导致非正常关机(UGSD),这可能会导致易失性存储器中尚未复制到非易失性存储器的任何控制数据的丢失。在从非正常关机的恢复操作期间,控制数据可被重建(例如,通过执行开放块的扫描以识别未反映在存在于非易失性存储器中的控制数据中的存储数据)。此类重建可能花费大量时间,并且在一些情况下可能会超过时间限制。在重建控制数据之前,存储器系统可能无法从主机执行读取命令,这可能会影响主机恢复时间。如何从此类UGSD迅速恢复提出了可由本技术的各方面解决的技术问题。
根据此处提出的一些示例,可以管理未复制的控制数据(易失性存储器中未被复制到非易失性存储器的控制数据)的量,以确保重建控制数据的时间不会过多。可以监测主机写入命令(例如,以识别写入了多少顺序数据和多少非顺序数据)。可以根据对这些主机写入命令的监测来确定用于将控制数据从易失性存储器复制到非易失性存储器的频率。例如,重建与给定量(例如,100MB)的顺序数据相关联的控制数据比针对相同量的非顺序数据重建控制数据更快。基于主机写入工作负载(接收到多少顺序数据和非顺序数据),可以调整复制控制数据的频率以确保重建控制数据的估计时间保持在适当水平(例如,低于预定时间限制)。可以随着主机写入工作负载的变化来适当地调整控制数据复制频率(例如,由重建控制数据的估计时间确定频率,使得重建的最大估计时间小于时间限制)。根据主机写入工作负载来调整控制数据复制频率可以为及时的UGSD恢复问题提供技术解决方案。此类解决方案可通过使得能够在存储器系统中迅速重建控制数据来改善存储器系统的操作,这使得能够在UGSD之后迅速执行主机读取命令。
根据此处提出的一些示例,当接收主机写入命令时,非易失性存储系统可识别主机在恢复期间响应于非正常关机而将不需要的临时数据(例如,页面或交换文件数据、由浏览器使用的高速缓存文件和/或应用程序创建的临时文件)。例如,主机在发送对应的写入命令时可能将某些写入数据识别为临时的。非易失性存储系统可将临时数据存储在专用区域(例如,一个或多个专用块)中。在从非正常关机的恢复操作期间,非易失性存储系统可例如通过在扫描开放块时省略与临时数据相关联的任何专用区域来在重建控制数据时省略与临时数据相关联的控制数据。因此,不会重建与临时数据相关联的控制数据。减少要重建的控制数据的量可以使重建更快,从而允许更快的恢复操作,并且可以为及时UGSD恢复的问题提供技术解决方案。此类解决方案可通过使得能够在存储器系统中迅速重建控制数据来改善存储器系统的操作,这使得能够在UGSD之后迅速执行主机读取命令。临时数据的单独处理可与根据写入工作负载来调整控制数据复制频率相结合(例如,在估计重建控制数据的时间时,可以省略与临时数据相关联的控制数据)。
图1是连接到主机120的存储器系统100的一个实施方案的框图。存储器系统100可以实现本文提议的技术。许多不同类型的存储器系统可与本文提出的技术一起使用。一个示例性存储器系统为固态驱动器(“SSD”)。存储器系统包括控制器102、用于存储数据的非易失性存储器104、以及本地存储器(例如,DRAM/ReRAM)106。控制器102包括前端处理器电路(FEP)110和一个或多个后端处理器电路(BEP)112。在一个实施方案中,FEP 110电路在ASIC上实现。在一个实施方案中,每个BEP电路112在单独ASIC上实现。用于BEP电路112和FEP电路110中的每一者的ASIC在同一半导体上实现,使得控制器102被制造为片上系统(“SoC”)。FEP 110和BEP 112均包括其本身的处理器。在一个实施方案中,FEP 110和BEP112用作主从配置,其中FEP 110是主设备,并且每个BEP 112是从设备。例如,FEP电路110实现闪存转换层,该闪存转换层执行存储器管理(例如,垃圾收集、损耗均衡等)、逻辑到物理地址转换、与主机的通信、DRAM(本地易失性存储器)的管理以及SSD(或其他非易失性存储系统)的整体操作的管理。BEP电路112根据FEP电路110的请求来管理存储器封装件/管芯中的存储器操作。例如,BEP电路112可进行读取、擦除和编程过程。另外,BEP电路112可执行缓冲器管理,设置FEP电路110所需的特定电压电平,执行纠错(ECC),控制到存储器封装件的接口(例如,切换模式接口)等。在一个实施方案中,每个BEP电路112负责其本身的一组存储器封装件。
在一个实施方案中,非易失性存储器104包括多个存储器封装件。每个存储器封装件都包括一个或多个存储器管芯。因此,控制器102连接到一个或多个非易失性存储器管芯。在一个实施方案中,存储器封装件104中的每个存储器管芯利用NAND闪存存储器(包括二维NAND闪存存储器和/或三维NAND闪存存储器)。在其他实施方案中,存储器封装件可包括其他类型的存储器。
控制器102经由接口130与主机120通信,该接口实现PCI Express(PCIe)上的NVMExpress(NVMe)。为了与存储器系统100一起工作,主机120包括主机处理器122、主机存储器124和PCIe接口126。主机存储器124是主机的物理存储器,并且可以是DRAM、SRAM、非易失性存储器或另一类型的存储装置。主机120位于存储器系统100的外部并与该存储器系统分开(例如,SSD)。在一个实施方案中,存储器系统100嵌入在主机120中。
图2是FEP电路110的一个实施方案的框图。图2示出与主机120通信的PCIe接口150,以及与该PCIe接口通信的主机处理器152。主机处理器152可以是本领域中已知的适于实现的任何类型的处理器。主机处理器152与片上网络(NOC)154通信。NOC是集成电路上的通信子系统,通常在SoC中的核心之间。NOC可跨越同步和异步时钟域,或者使用非时钟的异步逻辑。NOC技术将网络理论和方法应用于片上通信,并且与常规总线和交叉开关互连相比带来了显著的改善。与其他设计相比,NOC提高了SoC的可扩展性以及复杂SoC的功率效率。NOC的导线和链路由许多信号共享。由于NOC中的所有链路可在不同的数据分组上同时运行,因此实现了高度并行。因此,随着集成子系统的复杂性不断增大,与先前的通信架构(例如,专用的点对点信号线、共享总线或具有桥的分段总线)相比,NOC提供增强的性能(诸如吞吐量)和可扩展性。连接到NOC 154并且与NOC 154通信的是存储器处理器156、SRAM 160和DRAM控制器162。DRAM控制器162用于操作DRAM(例如,DRAM 106)并且与该DRAM通信。SRAM160是由存储器处理器156使用的本地RAM存储器。存储器处理器156用于运行FEP电路并且执行各种存储器操作。与NOC通信的还有两个PCIe接口164和166。在图2的实施方案中,SSD控制器将包括两个BEP电路112;因此,存在两个PCIe接口164/166。每个PCIe接口与BEP电路112中的一个通信。在其他实施方案中,可存在多于或少于两个BEP电路112;因此,可存在多于两个PCIe接口。
图3是BEP电路112的一个实施方案的框图。图3示出用于与FEP电路110通信(例如,与图2的PCIe接口164和166中的一个通信)的PCIe接口200。PCIe接口200与两个NOC 202和204通信。在一个实施方案中,两个NOC可被组合成一个大的NOC。每个NOC(202/204)通过XOR引擎(224/254)和ECC引擎(226/256)连接到SRAM(230/260)、缓冲器(232/262)、处理器(220/250)和数据路径控制器(222/252)。ECC引擎226/256用于执行纠错,如本领域所知。XOR引擎224/254用于对数据执行XOR,使得可在存在编程错误的情况下以可恢复的方式组合和存储数据。数据路径控制器22连接到接口模块,以用于经由四个信道与存储器封装件进行通信。因此,顶部NOC 202与用于与存储器封装件通信的四个信道的接口228相关联,并且底部NOC 204与用于与存储器封装件通信的四个附加信道的接口258相关联。每个接口228/258包括四个切换模式接口(TM接口)、四个缓冲器和四个调度器。对于信道中的每一个存在一个调度器、缓冲器和TM接口。处理器可以是本领域中已知的任何标准处理器。数据路径控制器222/252可以是处理器、FPGA、微处理器、或其他类型的控制器。XOR引擎224/254和ECC引擎226/256是专用的硬件电路,称为硬件加速器。在其他实施方案中,XOR引擎224/254和ECC引擎226/256可在软件中实现。调度器、缓冲器和TM接口是硬件电路。
图4是包括连接到存储器总线294(数据线和芯片使能线)的多个存储器管芯292的非易失性存储器104的存储器封装件的一个实施方案的框图。存储器总线294连接到切换模式接口296以用于与BEP电路112的TM接口进行通信(参见例如图3)。在一些实施方案中,存储器封装件可以包括连接到存储器总线和TM接口的小控制器。存储器封装件可以具有一个或多个存储器管芯。在一个实施方案中,每个存储器封装件包括8或16个存储器管芯;然而,也可以实现其他数量的存储器管芯。本文描述的技术不限于任何特定数量的存储器管芯。
图5是存储器管芯300的一个实施方案的功能框图。图5中描绘的部件为电子电路。在一个实施方案中,每个存储器管芯300包括存储器结构326、控制电路310和读取/写入电路328。存储器结构326能够经由行解码器324由字线来寻址,并且经由列解码器332由位线来寻址。读取/写入电路328包括多个感测块350,包括SB1、SB2、…、SBp(感测电路),并且允许存储器单元页面被并行读取或编程。命令和数据经由线路318在控制器与存储器管芯300之间传输。在一个实施方案中,存储器管芯108包括连接到线路118的一组输入和/或输出(I/O)引脚。
控制电路310与读取/写入电路328配合以在存储器结构326上执行存储器操作(例如,写入、读取等),并且包括状态机312、片上地址解码器314、功率控制模块316(功率控制电路)和温度检测电路319。状态机312提供存储器操作的管芯级控制。在一个实施方案中,状态机312可由软件编程。在其他实施方案中,状态机312不使用软件并且完全在硬件(例如,电子电路)中实现。在一个实施方案中,控制电路310包括缓冲器,诸如寄存器、ROM熔丝和用于存储默认值诸如基极电压和其他参数的其他存储设备。
片上地址解码器314提供控制器102所用的地址和解码器324和332所用的硬件地址之间的地址接口。功率控制模块316控制在存储器操作期间提供给字线和位线的功率和电压。功率控制模块316可以包括用于产生电压的充电泵。感测块包括位线驱动器。
在一个实施方案中,存储器结构326包括非易失性存储器单元的三维存储器阵列,其中多个存储器级形成在单个衬底诸如晶圆上方。存储器结构可包括任何类型的非易失性存储器,该非易失性存储器在具有设置在硅(或其他类型的)基板上方的有源区域的存储器单元的一个或多个物理级中一体地形成。在一个示例中,非易失性存储器单元包括具有电荷捕获材料的竖直NAND串,诸如例如在美国专利9,721,662中所述的,该专利全文以引用方式并入本文。
在另一个实施方案中,存储器结构326包括非易失性存储器单元的二维存储器阵列。在一个示例中,非易失性存储器单元是利用浮栅的NAND闪存存储器单元,诸如例如在美国专利9,082,502中所述的,该专利全文以引用方式并入本文。也可使用其他类型的存储器单元(例如,NOR型闪存存储器)。
包括在存储器结构326中的存储器阵列架构或存储器单元的确切类型不限于上述示例。许多不同类型的存储器阵列架构或存储器技术可用于形成存储器结构326。实现本文提出的要求保护的新实施方案不需要特定的非易失性存储器技术。用于存储器结构326的存储器单元的合适技术的其他示例包括ReRAM存储器、磁阻存储器(例如,MRAM、自旋转移扭矩MRAM、自旋轨道扭矩MRAM)、相变存储器(例如,PCM)等。用于存储器结构126的存储器单元架构的合适技术的示例包括二维阵列、三维阵列、交叉点阵列、堆叠二维阵列、竖直位线阵列等等。
ReRAM、或PCMRAM、交叉点存储器的一个示例包括可逆电阻切换元件,其布置在由X线和Y线(例如,字线和位线)访问的交叉点阵列中。在另一个实施方案中,存储器单元可包括导电桥存储器元件。导电桥存储器元件也可称为可编程金属化单元。基于固体电解质内的离子的物理重新定位,导电桥存储器元件可用作状态改变元件。在一些情况下,导电桥存储器元件可包括两个固体金属电极,一个是相对惰性的(例如,钨),而另一个是电化学活性的(例如,银或铜),在两个电极之间具有固体电解质的薄膜。随着温度升高,离子的迁移率也增加,这导致导电桥存储器单元的编程阈值降低。因此,导电桥存储器元件可在整个温度范围内具有宽范围的编程阈值。
磁阻存储器(MRAM)通过磁存储元件存储数据。元件由两个铁磁板形成,每个铁磁板可保持磁化,由薄的绝缘层隔开。两个板中的一个是设置为特定极性的永磁体;可以改变另一个板的磁化以匹配外磁场的磁化来存储内存。存储器设备由此类存储器单元的网格构建。在用于编程的一个实施方案中,每个存储器单元位于一对写入线之间,该对写入线被布置成彼此成直角,与单元平行,一个在单元上方并且一个在单元下方。当电流通过它们时,产生感应磁场。
相变存储器(PCM)利用了硫属化合物玻璃的独特性能。一个实施方案使用GeTe-Sb2Te3超晶格通过仅利激光脉冲(或来自另一个源的光脉冲)改变锗原子的配位状态来实现非热相变。因此,编程的剂量是激光脉冲。可以通过阻止存储器单元接收光来抑制存储器单元。应当注意,在该文件中使用“脉冲”不需要矩形脉冲,但包括声音、电流、电压光或其他波的(连续或非连续)振动或脉冲串。
在一些情况下,存储器系统可能会意外断电,使得存储器系统无法以有序的方式关闭。当存储器系统再次上电时(例如,当恢复电力时),这可能会产生后果。当预期断电时,存储器系统可能会经历例程以便以有序的方式进行准备和关闭(正常关机或GSD)。例如,可以将可存储在易失性存储器中的某些数据复制到非易失性存储器,以为断电做准备。相反,在非正常关机(UGSD)期间,不会执行此类准备,并且易失性存储器中存储的数据可能会丢失。该数据可包括可以重建的控制数据。然而,重建此类控制数据可能是耗时的。减少响应于非正常关机而执行此类重建所需的时间可以提供某些优点,例如,确保从意外断电中恢复操作的总时间少于预定时间量。
图6示出了存储器系统100的一些部件的示例,该存储器系统通过接口130连接到主机120,以从主机120接收写入命令,如先前在图1中所示。与来自主机120的写入命令一起接收的写入数据被写入到非易失性存储器104中的开放块602,604,606(虽然在该图示中示出了三个开放块,但是应当理解,开放块的数量可以大于或小于三个)。一般来讲,可以从具有对应逻辑地址(例如,逻辑块地址或LBA)的主机接收与主机写入命令一起接收的此类写入数据,该逻辑地址由控制器102的映射电路608映射到非易失性存储器104中的物理地址(例如,映射到开放块602,604,606中的位置)。映射电路608可根据数据的特性(例如,顺序的、非顺序的)将数据存储在不同的位置。映射电路608生成控制数据610(在该示例中,逻辑到物理映射数据),该控制数据可存储在易失性存储器诸如本地存储器106中。控制数据610可由控制数据复制电路612复制到非易失性存储器104。这在非易失性存储器104中提供了控制数据614的副本,使得在断电之后它是可用的(非易失性存储器中的此类副本可被称为“日志”)。例如,控制数据610可基于写入非易失性存储器104中的新数据的量以某个频率被复制,或者可被复制以为断电或其他事件做准备。当控制数据610作为关机例程的一部分被复制以为断电做准备时,控制数据614随后包含断电时的所有当前控制数据,使得可以通过从非易失性存储器104中的控制数据614进行复制来恢复本地存储器106中的控制数据610。在一些存储器系统中,当外部电源丢失时,电池或电容器可提供足够的电力来完成关机例程。在其他存储器系统中,可能会在没有警告的情况下断电,因此不会执行关机例程。如果在没有充分准备的情况下断电,则本地存储器106中的控制数据610和非易失性存储器104中的控制数据614之间可能会存在差异。例如,与自上次控制数据复制操作以来写入的数据相关联的控制数据可以被记录在本地存储器106中的控制数据610中,但是可以不记录在非易失性存储器614中的控制数据614中。提供控制数据重建电路616以在此类情况下重建控制数据610(即,重建在断电之前可能已经在本地存储器106中但不在非易失性存储器104中的任何丢失的控制数据)。控制数据重建电路616可以检查控制数据614中的最后记录的条目,以查看最后记录的写入在开放块602,604,606中发生的位置。然后,控制数据重建电路616可扫描超出开放块602,604,606中最后记录的写入,以查看在这些写入之后是否存在任何写入的数据。如果存在附加写入,则读取与此类数据(例如,LBA和/或其他识别信息)一起写入的元数据,并将其用于重建控制数据610(例如,基于发现数据的物理位置以及与数据相关联的LBA来构建逻辑到物理映射)。
图7示出了在控制数据复制操作之间的某个时间(即,在数据已经被写入非易失性存储器104中并且本地存储器106中的对应控制数据尚未被复制到非易失性存储器104的时间)本地存储器106中的控制数据610和非易失性存储器104中的控制数据614的示例。开放块602包含第一写入部分720,该第一写入部分包含在最后的控制数据复制操作之前写入的数据。因为该数据是在最后的控制数据复制操作之前写入的,所以在最后的控制数据复制操作中,与第一写入部分720对应的控制数据被复制到非易失性存储器104。因此,非易失性存储器104中的控制数据614包括用于第一写入部分720(以及用于开放块604,606的在最后的控制数据复制操作之前写入的对应部分)的逻辑到物理映射数据。第二写入部分722包含在最后的控制数据复制操作之后写入的数据。因为该数据是在最后的控制数据复制操作之后写入的,所以与第二写入部分722对应的控制数据尚未被复制到非易失性存储器104。因此,非易失性存储器104中的控制数据614不包括用于第二写入部分722(或用于开放块604,606的对应部分)的逻辑到物理映射。虽然与第二写入部分722对应的控制数据存在于本地存储器106中,但在UGSD的情况下,该控制数据可能会丢失。
在从UGSD恢复期间,读取控制数据614以识别所有开放块的最后记录的条目。这识别了第一写入部分720的边界724。开放块602的扫描从边界724开始,以识别存储在第二写入部分722中的数据(例如,识别用于第二写入部分722中的每个写入位置的LBA)。扫描继续进行,直到第二写入部分722和未写入部分728之间的边界726。对开放块604,606以及任何其他开放块执行此类扫描,这些开放块可包含要扫描的不同量的数据。相同数据(相同LBA)的不同副本可存在于在不同开放块中,并且正确地重建控制数据可能需要确定最近写入的版本(即,一些扫描结果可作为过时的数据被丢弃)。
识别存储在非易失性存储器中的数据以重建控制数据结构的此类过程可能很慢,特别是对于非顺序数据,其中对于在最后的控制数据复制之后写入的每个单元(例如,对于自最后的控制数据复制以来写入每个开放块中的每个闪存管理单元“FMU”)可分别读取元数据。对于顺序数据而言重建可能更快,其中具有顺序地址(例如,顺序LBA)的单元被一起接收并一起存储在非易失性存储器中。在存储在开放块中的数据被识别为顺序数据的情况下,可以将用于此类序列的所有单元的逻辑到物理映射一起重建,而不是单独重建。在许多情况下,控制数据的重建包括针对顺序数据和非顺序数据重建控制数据,使得所需时间可能会有所不同,这不仅取决于自最后的控制数据复制以来写入了多少数据,而且还取决于该数据中有多少是顺序的,有多少是非顺序的。
图8示出了用于在UGSD之后重建控制数据诸如本地存储器106中的控制数据610的过程的示例。固件被加载830(例如,可以从非易失性存储器104加载用于控制器102的操作的固件,以启用控制器102的操作)。然后读取832FTL(闪存转换层)事务的日志。例如,非易失性存储器104中的控制数据614可包括此类日志。事务可包括与数据的逻辑到物理映射有关的条目,该数据包括在最后的控制数据复制操作之前写入开放块中的数据。在发生正常关机的情况下,该日志可能是完整的且是最新的,并且可以通过在正常关机期间设置的标志来指示。在发生UGSD的情况下(例如,如未设置的标志所指示的),日志可能不完整且不是最新的。对开放块进行扫描834以获取有效数据和元数据(例如,对开放块602的第二写入部分722进行扫描以获取有效数据以及与此类有效数据相关联的LBA)。根据该扫描的结果(适用于所有开放块),重建836FTL表(例如,在本地存储器106中的控制数据610中重建FTL表)。在重建FTL表之前,存储器系统没有足够的信息来定位主机数据和执行主机读取命令。因此,主机直到控制数据被重建才能访问此类存储器系统中的数据,由此可能无法加载用于主机恢复操作的数据(例如,从存储器系统启动的主机可能直到存储器系统完成重建任何丢失的控制数据才能访问启动数据)。在FTL表被重建836之后,可将就绪指示符提供给主机,例如从存储器系统100发送到主机120的就绪信号,以指示存储器系统100处于就绪状态,在该状态下它可以接受读取命令。更迅速地完成图8中所示的步骤可允许更快地接受读取命令,这可允许主机在断电之后更迅速地恢复。
一般来讲,扫描和重建控制数据对于顺序数据比对于非顺序数据而言更快。这些操作中的任一者所需的时间可能是合理可预测的。因此,例如,扫描和重建32MB随机(非顺序)主机数据的控制数据可能花费10ms,而扫描和重建1GB顺序主机数据的控制数据也可能花费10ms。在许多情况下,要扫描的数据包含顺序数据和非顺序数据,并且要扫描的数据的量可能会有所不同,这取决于自最后的控制数据复制操作以来已写入了多少数据。虽然更频繁地执行控制数据复制操作会减少要扫描的数据的量,但这也会增加对非易失性存储器的写入次数,这可能会影响存储器耐久性。
根据本技术的示例,存储器系统可确保其在UGSD之后的恢复时间不超过可由主机设置的限制。例如,存储器系统可使用恢复时间的估计(它可以基于某种模型,或者可以通过测量实际时间来获得,或者以一些其他方式估计)来识别控制数据复制频率与恢复时间之间的关系,并且设置控制复制频率以确保恢复时间小于限制(例如,确保重建最大量的控制数据不超过预定时间)。
图9示出了可应用于存储器系统诸如存储器系统100以确保恢复时间不超过限制的方法的示例。存储器系统估计或测量写入工作负载940的恢复时间。例如,存储器系统可以通过监测主机写入命令工作负载来进行该操作,例如监测由存储器系统接收的主机写入命令以确定正在接收的顺序数据和非顺序数据的量,并且由此可以估计重建对应控制数据所需的时间。然后,存储器系统可基于期望的恢复时间942(例如,在固件中设置,由主机、应用程序或通过其他方式设置的恢复时间)来设置对易失性控制结构(例如,控制数据610)的限制。例如,在与4GB非顺序主机数据对应的控制数据的恢复将花费约1.2秒的情况下,与70MB主机数据对应的控制数据的恢复花费约20ms。因此,假设存储器系统启动所需的其他操作(例如,加载固件)花费约30ms,则每次写入70MB主机数据时复制控制数据都会将UGSD恢复时间限制为50ms,即使在所有70MB主机数据都是非顺序数据的最坏的条件下也是如此。监测写入命令以识别顺序写入和非顺序写入提供对恢复时间的更准确估计,并且可允许较低的控制数据复制频率(控制数据复制操作之间较长的间隔,这对非易失性存储器单元产生较少的损耗)。
在一些非易失性存储器中,将从主机接收的要写入非易失性存储器中的数据被识别为顺序的或非顺序的(随机的),并相应地存储在例如不同的块中。在写入的数据少于阈值数量的顺序FMU的情况下,数据可被分类为非顺序的,并且在写入的数据多于阈值数量的顺序FMU的情况下,数据可被分类。因此,可能存在用于存储顺序数据的一个或多个开放的顺序块,以及用于存储非顺序数据的一个或多个开放的非顺序块。尽管不是必需的,但此类独立存储可有助于估计恢复时间。
图10示出了在控制复制操作之间的时间处的非易失性存储器104的示例。在该示例中,开放块602是仅存储非顺序数据的开放的非顺序块,而开放块606是仅存储顺序数据的开放的顺序块。开放块602包括第一写入部分720(包含非顺序数据,其对应的控制数据保存在控制数据614中)和第二写入部分722(包含非顺序数据,其对应的控制数据在本地存储器106中的控制数据610中,但不保存在非易失性存储器104中的控制数据614中)。开放块606包括第一写入部分1050(包含顺序数据,其对应的控制数据保存在控制数据614中)和第二写入部分1052(包含顺序数据,其对应的控制数据在本地存储器106中的控制数据610中,但不保存在非易失性存储器104中的控制数据614中)。恢复时间的估计可以包括用以重建与第二写入部分722中的非顺序数据对应并且与第二写入部分1052中的顺序数据相对应的控制数据的估计。一般来讲,针对给定量的非顺序数据重建控制数据所花费的时间要比针对相同量的顺序数据更长,使得即使第二写入部分1052中的顺序数据可能比第二写入部分722中的非顺序数据更多,针对第二写入部分1052中的顺序数据重建对应的控制数据也可能比针对第二写入部分722中的非顺序数据更快。可以应用加权来生成反映在针对顺序数据和非顺序数据重建控制数据中的这些差异的估计。例如,如果重建与非顺序数据对应的控制数据所花费的时间比重建与顺序数据对应的控制数据长十倍(10倍),则相应加权可能会反映该比率(即10:1)。当从主机接收数据并将其存储在非易失性存储器中时,可以动态应用这些加权以写入数据,或者可以基于对来自主机的写入数据的组成的某种估计,或者根据基于建模的某种预测,或者以其他方式来应用这些加权。
图11示出了用于在存储器系统诸如存储器系统100中管理控制数据复制操作的方法。从主机1160(例如,从主机120)接收写入命令,并对其进行监测以确定写入数据是否为顺序的1162。对于顺序数据,应用1164顺序加权(例如,通过将写入非易失性存储器中的顺序数据的单元数目乘以反映每个单元恢复控制数据的时间的第一加权因数)。对于非顺序数据,应用1166非顺序加权(例如,通过将写入非易失性存储器中的非顺序数据的单元数目乘以反映每个单元恢复控制数据的时间的第二加权因数)。加权值(例如,数据的加权量)被组合1168以生成与重建顺序数据和非顺序数据两者的对应控制数据所需的时间相对应的值。然后根据组合的加权值1170将控制数据复制到非易失性存储器(NVM,例如,非易失性存储器104)。例如,能够以选择的频率复制控制数据,使得自最后的控制数据复制以来存储的顺序数据和非顺序数据的控制数据的最长重建时间小于预定的最大时间。复制频率可被实时地动态调整,使得控制数据的复制在顺序数据和非顺序数据的量接近限制时发生,或者可以基于写入命令的一些较早采样来应用,以估计控制数据重建时间,或者可以基于写入命令工作负载的一些其他表征(例如,离线建模)。
在一些情况下,临时数据可由主机存储在非易失性存储器诸如非易失性存储器104中。在UGSD之后主机(例如,主机120)可能不需要此类临时数据,因此可能不需要重建对应的控制数据。此类临时数据的示例可包括页面或文件交换数据、高速缓存文件(例如,由主机中的浏览器使用的高速缓存文件)、应用程序创建的临时文件、以及在UGSD之后主机未读取的其他临时数据。页面或交换文件数据可以是主机临时存储在非易失性存储器中的数据,而主机的主存储器中没有可用空间。在UGSD之后,主机不会从非易失性存储器中读取此类数据。浏览器高速缓存文件可由浏览器生成,以加快一些页面的加载速度。在UGSD之后,浏览器可从原始源而不是从非易失性存储器(其中此类文件可能已过时)下载此类文件。除了浏览器以外的应用程序还可以创建在UGSD之后不会从非易失性存储器中读取的临时文件(例如,与用户界面相关的文件)。当在UGSD之后扫描和重建控制数据时,可以省略预期不会被读取的此类临时数据,这可以节省大量时间。例如,可能不会扫描临时数据,并且可能不会针对此类临时数据重建控制数据。在一些情况下,当主机将主机写入数据发送到非易失性存储器时,主机可识别临时数据。显式指示符可以由主机(例如,NVMe上下文属性)提供,或者可以由存储器系统推断。临时数据可被存储在一个或多个专用块中。因此,可能存在在任何给定时间专用于存储临时数据的一个或多个开放块。在从UGSD的恢复操作期间,当扫描和重建控制数据时,可以省略此类开放块。
图12示出了操作存储器系统诸如存储器系统100的方法的示例,该存储器系统将临时数据和非临时数据分开。当接收到写入数据1274时,确定写入数据是否是临时的1276。如果写入数据不是临时的,则执行二次分类1278。例如,数据可被分类为顺序的或非顺序的。还可以根据访问频率将数据分类为频繁访问的“热”数据或不频繁访问的“冷”数据,和/或可以按一种或多种其他方式对数据进行分类。然后将数据相应地写入顺序和非顺序(随机)块1280(例如,如图10所示)。如果写入数据是临时的,则将其写入一个或多个临时块1282,该临时块可以是专用于临时数据的专用块。在一些情况下,可以将所有临时数据写入单个开放的临时块,而在其他情况下,可以将临时数据写入两个或更多个开放的临时块。例如,可以对临时数据执行二次分类(例如,分类为顺序临时数据和非顺序临时数据),并且可以将临时数据相应地写入不同的开放块。
图13示出了在控制复制操作之间的时间处的非易失性存储器104的示例。在该示例中,开放块602是开放的非顺序块,而开放块606是开放的顺序块,如前在图10中所示。此外,开放块604是专用于存储临时数据的开放临时块。开放块604包含第一写入部分1384(其控制数据存储在非易失性存储器104中的控制数据614中)和第二写入部分1386(其控制数据存储在本地存储器106中,而不是在非易失性存储器104中)。在UGSD之后,控制数据重建电路可扫描开放块602,606以识别分别存储在第二写入部分772和1052中的数据。可以从此类扫描中省略开放块604,因为开放块604的第二写入部分1386仅包含将不会被主机读取的临时数据。省略扫描开放块604以及重建对应的控制数据可以在从UGSD恢复期间节省大量时间。
图14示出了操作存储器系统诸如存储器系统100的方法,该存储器系统可提供从UGSD的迅速恢复。从主机接收写入命令1488,并且确定与写入命令相关联的写入数据是否是临时数据1490(例如,检查可以与主机写入命令一起接收的主机指示符,诸如NVMe上下文属性)。该确定可由映射电路608(其可以被认为是用于识别与主机写入命令一起接收的临时数据并且用于将该临时数据存储在多个非易失性存储器单元的专用于存储临时数据的专用块中的装置)作出。当将数据确定为临时数据时,将其存储在临时块1492中,例如根据映射电路608的映射方案将其存储在专用于存储临时数据的块中。如果数据是非临时数据,则确定该数据是否为顺序数据1493。对于顺序数据,应用顺序加权1494,并且对于非顺序数据,应用非顺序加权1495,并且组合加权值1496。然后根据组合的加权值将控制数据复制到非易失性存储器1498(例如,以确保针对非临时数据重建未复制的控制数据将花费少于预定时间的控制数据复制频率来进行复制)。应当注意,组合加权值不包括反映临时数据的任何值,因为临时数据是单独存储的,并且不计入加权值。由于不扫描临时数据,并且由于不重建对应的控制数据,因此在估计重建时间和设置控制数据复制频率时可以省略临时数据。
图15示出了从可以在存储器系统诸如非易失性存储器系统100中使用的UGSD恢复的方法的示例。图15的方法可以用在单独存储临时数据的存储器系统中(例如,如图14所示)。检测到非正常关机1500(例如,通过在首次接收电力时检查标志)。从非易失性存储器读取控制数据1502,并且在开放块中扫描未反映在来自非易失性存储器的控制数据中的数据,同时省略临时数据1504(例如,开放的临时块中的数据)。使用扫描结果1506在易失性存储器(例如,本地存储器106)中重建控制数据。扫描和重建可由控制数据重建电路诸如控制数据重建电路616(其可以被认为是用于通过以下方式来从非正常关机恢复的装置:扫描多个非易失性存储器单元的开放块,省略存储在开放块中的临时数据以针对多个非易失性存储器单元重建对应的控制数据,省略与临时数据相关联的控制数据)来执行。然后,存储器系统通知主机它已准备好读取命令1508。因为没有扫描临时块,并且没有重建对应的控制数据,所以与没有以这种方式分离临时数据相比,可以更快地完成这些步骤。
在一些情况下,可以记录通过扫描开放块并在易失性存储器中重建对应的控制数据来重建丢失的控制数据的时间(即,图15的步骤1504和1506)。所记录的一个或多个时间可以与用于重建的时间限制(例如,由主机设置的时间)进行比较。可以根据所记录的重建时间与时间限制之间的差值来调整将控制数据从易失性存储器复制到非易失性存储器的频率。例如,如果重建时间显著少于限制,则可以减小频率。如果重建时间接近限制或超过限制,则可以增加频率以确保更快的重建。因此,存储器系统可以动态地调整以确保不会不必要地执行复制,同时将重建时间保持在限制以下。例如,控制数据复制电路612可以确定用于复制控制数据的频率,并且能够以该频率复制控制数据(复制电路612可被认为是用于基于从主机接收的顺序数据和非顺序数据的量以及根据从非正常关机恢复的时间限制来确定用于将控制数据从易失性存储器复制到多个非易失性存储器单元的频率的装置)。
设备的示例包括多个非易失性存储器单元和连接到多个非易失性存储器单元的控制电路,该控制电路被配置为从主机接收写入命令,识别与临时数据相关联的写入命令,并且响应于非正常关机而在恢复操作中从重建的控制数据中省略与临时数据相关联的控制数据。
控制电路可被配置为根据与来自主机的写入命令一起提供的指示符来识别与临时数据相关联的写入命令。控制电路可被配置为将临时数据存储在多个非易失性存储器单元的专用于存储临时数据的一个或多个专用块中。控制电路可被配置为通过扫描多个非易失性存储器单元的开放块、省略一个或多个专用块来在易失性存储器中重建控制数据。临时数据可包括以下各项中的一者或多者:页面或交换文件数据、浏览器高速缓存文件以及应用程序创建的临时文件。控制电路可被进一步配置为识别与写入命令一起接收的顺序数据和非顺序数据。控制电路可被配置为以由与写入命令一起接收的顺序数据和非顺序数据的量以及恢复操作的时间限制所确定的频率将控制数据从易失性存储器复制到多个非易失性存储器单元。主机可以选择恢复操作的时间限制,并且控制电路可被配置为以由重建控制数据的估计时间所确定的频率将控制数据从易失性存储器复制到多个非易失性存储器单元,使得重建控制数据的最大估计时间少于时间限制。
方法的示例包括监测由存储器系统接收的主机写入命令;将与主机写入命令一起接收的数据的控制数据记录在易失性存储器中;根据对主机写入命令的监测来确定用于将控制数据从易失性存储器复制到非易失性存储器的频率;以及以该频率将控制数据从易失性存储器复制到非易失性存储器。
监测由存储器系统接收的主机写入命令可包括确定与主机写入命令相关联的顺序数据的量以及与主机写入命令相关联的非顺序数据的量。确定用于复制控制数据的频率可包括根据重建对应控制数据的估计时间将相应加权应用于顺序数据的量和非顺序数据的量,组合顺序数据和非顺序数据的加权量以获得主机写入命令与重建对应控制数据的估计时间之间的关系。确定用于复制控制数据的频率还可包括根据主机写入命令与重建对应控制数据的估计时间之间的关系选择频率,使得重建以该频率复制的对应控制数据的最大估计时间少于由主机选择的预定时间限制。该方法还可包括:在将控制数据从易失性存储器复制到非易失性存储器之后,断电并且丢失记录在易失性存储器中的控制数据;从非易失性存储器恢复复制的控制数据;通过扫描开放块来重建丢失的控制数据;以及在重建丢失的控制数据后向主机指示就绪状态。丢失的控制数据可以包括在以一定频率进行的复制操作之间的间隔中接收到的控制数据,使得重建丢失的控制数据所花费的时间少于预定时间限制。该方法可包括:记录用于通过扫描开放块来重建丢失的控制数据的重建时间;将重建时间与预定时间限制进行比较;以及根据重建时间与预定时间限制之间的差值调整频率。监测主机写入命令可包括识别与主机写入命令一起接收的临时数据和非临时数据,并且通过扫描开放块来重建丢失的控制数据可能省略扫描专用于存储临时数据的一个或多个开放块。可以在不扫描专用于存储临时数据的一个或多个开放块的情况下向主机指示就绪状态。
存储器系统的示例包括多个非易失性存储器单元以及用于通过以下方式来从非正常关机恢复的装置:扫描多个非易失性存储器单元的开放块,省略存储在开放块中的临时数据以针对多个非易失性存储器单元重建对应的控制数据,省略与临时数据相关联的控制数据。
存储器系统还可包括用于识别与主机写入命令一起接收的临时数据并且用于将该临时数据存储在多个非易失性存储器单元的专用于存储临时数据的专用块中的装置。存储器系统还可包括用于基于从主机接收的顺序数据和非顺序数据的量以及根据从非正常关机恢复的时间限制来确定用于将控制数据从易失性存储器复制到多个非易失性存储器单元的频率的装置。
出于本文件的目的,说明书中提到“实施方案”、“一个实施方案”、“一些实施方案”或“另一个实施方案”可用于描述不同的实施方案或相同的实施方案。
出于本文件的目的,连接可为直接连接或间接连接(例如,经由一个或多个其他部件)。在一些情况下,当元件被提及连接或耦接到另一个元件时,该元件可直接连接到另一个元件,或者经由居间元件间接连接到另一个元件。当元件被提及直接连接到另一个元件时,则在该元件与另一个元件之间没有居间元件。如果两个设备是直接连接或间接连接的,则两个设备处于“通信”中,使得它们能够在彼此之间进行电子信号通信。
出于本文档的目的,术语“基于”可理解为“至少部分地基于”。
出于本文档的目的,在没有附加上下文的情况下,诸如“第一”对象、“第二”对象和“第三”对象的数字术语的使用可能不意味着对象的排序,而是可用于识别目的以识别不同的对象。
出于本文档的目的,对象的术语“组”可指一个或多个对象的“组”。
出于说明和描述的目的已提供了上述详细描述。其并非旨在详尽的或旨在限制本发明所公开的精确形式。根据以上教导内容,很多修改和变型都是可能的。选择所述实施方案以便最好地解释所建议的技术的原理及其实际应用,从而使本领域的其他技术人员能够在各种实施方案中和适于设想的具体使用的各种修改中最好地利用它。本发明的范围旨在由所附权利要求书限定。
Claims (20)
1.一种存储设备,包括:
连接到多个非易失性存储器单元的控制电路,所述控制电路被配置为从主机接收写入命令,识别与所述写入命令相关联的顺序数据和非顺序数据,并且以由与所述写入命令一起接收的顺序数据和非顺序数据的量和恢复操作的时间限制所确定的频率将与顺序和非顺序数据相关联的控制数据从易失性存储器复制到所述多个非易失性存储器单元。
2.根据权利要求1所述的存储设备,其中所述控制电路被配置为根据与来自所述主机的所述写入命令一起提供的指示符来识别与临时数据相关联的写入命令。
3.根据权利要求2所述的存储设备,其中所述控制电路被配置为将所述临时数据存储在所述多个非易失性存储器单元的专用于存储所述临时数据的一个或多个专用块中。
4.根据权利要求3所述的存储设备,其中所述控制电路被配置为通过扫描所述多个非易失性存储器单元的开放块、省略所述一个或多个专用块来在易失性存储器中重建控制数据。
5.根据权利要求2所述的存储设备,其中所述临时数据包括以下各项中的一者或多者:页面或交换文件数据、浏览器高速缓存文件和应用程序创建的临时文件。
6.根据权利要求1所述的存储设备,其中所述控制电路被进一步配置为识别与临时数据相关联的写入命令,将所述临时数据存储在所述多个非易失性存储器单元中,并且响应于非正常关机而在恢复操作中从重建的控制数据中省略与存储在所述多个非易失性存储器单元中的所述临时数据相关联的控制数据。
7.根据权利要求6所述的存储设备,其中所述控制电路被配置为根据重建对应控制数据的估计时间将相应加权应用于顺序数据的所述量和非顺序数据的所述量,以及组合顺序数据和非顺序数据的加权量以获得所述主机写入命令与重建对应控制数据的估计时间之间的关系。
8.根据权利要求1所述的存储设备,其中所述恢复操作的时间限制由所述主机选择,并且所述控制电路被配置为以由重建所述控制数据的估计时间所确定的频率将控制数据从易失性存储器复制到所述多个非易失性存储器单元,使得重建所述控制数据的最大估计时间少于所述时间限制。
9.一种操作存储设备的方法,包括:
监测由存储器系统接收的主机写入命令;
将与所述主机写入命令一起接收的顺序和非顺序数据的控制数据记录在易失性存储器中;
根据对所述主机写入命令的监测来确定用于将与所述顺序和非顺序数据相关联的所述控制数据从所述易失性存储器复制到非易失性存储器的频率;以及
以所述频率将所述控制数据从所述易失性存储器复制到所述非易失性存储器。
10.根据权利要求9所述的方法,其中监测由所述存储器系统接收的主机写入命令包括确定与所述主机写入命令相关联的顺序数据的量和与所述主机写入命令相关联的非顺序数据的量。
11.根据权利要求10所述的方法,其中确定用于复制所述控制数据的所述频率包括根据重建对应控制数据的估计时间将相应加权应用于顺序数据的所述量和非顺序数据的所述量,组合顺序数据和非顺序数据的加权量以获得所述主机写入命令与重建对应控制数据的估计时间之间的关系。
12.根据权利要求11所述的方法,其中确定用于复制所述控制数据的所述频率还包括根据所述主机写入命令与重建对应控制数据的估计时间之间的所述关系选择所述频率,使得重建以所述频率复制的对应控制数据的最大估计时间少于由主机选择的预定时间限制。
13.根据权利要求9所述的方法,还包括:
在将所述控制数据从所述易失性存储器复制到所述非易失性存储器之后,断电并且丢失记录在所述易失性存储器中的控制数据;
从所述非易失性存储器恢复复制的控制数据;
通过扫描开放块来重建丢失的控制数据;以及
在重建丢失的控制数据后向主机指示就绪状态。
14.根据权利要求13所述的方法,其中所述丢失的控制数据包括在以所述频率进行的复制操作之间的间隔中接收到的控制数据,使得重建所述丢失的控制数据所花费的时间少于预定时间限制。
15.根据权利要求14所述的方法,还包括:
记录用于通过扫描开放块来重建丢失的控制数据的重建时间;
将所述重建时间与所述预定时间限制进行比较;以及
根据所述重建时间与所述预定时间限制之间的差值调整所述频率。
16.根据权利要求13所述的方法,其中监测主机写入命令包括识别与主机写入命令一起接收的临时和非临时数据,并且其中通过扫描开放块来重建丢失的控制数据省略扫描专用于存储临时数据的一个或多个开放块。
17.根据权利要求16所述的方法,其中在不扫描专用于存储临时数据的所述一个或多个开放块的情况下向所述主机指示所述就绪状态。
18.一种存储器系统,包括:
装置,所述装置用于通过以下方式来从非正常关机恢复:扫描所述多个非易失性存储器单元的开放块,省略存储在所述开放块的非易失性存储器单元中的临时数据以针对所述多个非易失性存储器单元重建对应的控制数据,省略与存储在所述开放块的非易失性存储器单元中的所述临时数据相关联的控制数据;以及
用于基于从主机接收的顺序数据和非顺序数据的量以及根据从非正常关机恢复的时间限制来确定用于将控制数据从易失性存储器复制到所述多个非易失性存储器单元的频率的装置。
19.根据权利要求18所述的存储器系统,还包括:用于识别与主机写入命令一起接收的临时数据并且用于将所述临时数据存储在所述多个非易失性存储器单元的专用于存储临时数据的专用块中的装置。
20.根据权利要求18所述的存储器系统,其中用于复制所述控制数据的频率取决于重建对应控制数据的估计时间,所述对应控制数据是从组合顺序和非顺序数据的加权量获得的。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/249,479 | 2019-01-16 | ||
US16/249,479 US11086737B2 (en) | 2019-01-16 | 2019-01-16 | Non-volatile storage system with rapid recovery from ungraceful shutdown |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111443866A CN111443866A (zh) | 2020-07-24 |
CN111443866B true CN111443866B (zh) | 2023-06-27 |
Family
ID=71132223
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911225497.6A Active CN111443866B (zh) | 2019-01-16 | 2019-12-04 | 能从非正常关机迅速恢复的非易失性存储系统及其方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11086737B2 (zh) |
KR (1) | KR102315300B1 (zh) |
CN (1) | CN111443866B (zh) |
DE (1) | DE102019134294A1 (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11372754B2 (en) | 2020-06-12 | 2022-06-28 | Western Digital Technologies, Inc. | Storage system and method for enabling a software-defined dynamic storage response |
US11366601B2 (en) * | 2020-06-22 | 2022-06-21 | EMC IP Holding Company LLC | Regulating storage device rebuild rate in a storage system |
US20220334929A1 (en) * | 2021-04-14 | 2022-10-20 | Pure Storage, Inc. | Ensuring timely restoration of an application |
US11635900B2 (en) * | 2021-08-27 | 2023-04-25 | Micron Technology, Inc. | Memory sub-system signature generation |
US11797445B2 (en) | 2021-12-06 | 2023-10-24 | Western Digital Technologies, Inc. | Data storage device and method for preventing data loss during an ungraceful shutdown |
US20240272794A1 (en) * | 2023-02-15 | 2024-08-15 | Western Digital Technologies, Inc. | Data padding reduction in log copy |
KR20240140367A (ko) * | 2023-03-16 | 2024-09-24 | 삼성전자주식회사 | 메모리 컨트롤러, 상기 메모리 컨트롤러를 포함하는 스토리지 장치, 및 상기 메모리 컨트롤러의 동작 방법 |
CN117687845B (zh) * | 2024-02-04 | 2024-06-11 | 成都佰维存储科技有限公司 | 上电恢复方法、装置、可读存储介质及电子设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102971717A (zh) * | 2010-05-25 | 2013-03-13 | 马维尔国际贸易有限公司 | 存储器访问表保存和复原系统及方法 |
CN108874302A (zh) * | 2017-05-16 | 2018-11-23 | 爱思开海力士有限公司 | 数据存储装置及其操作方法 |
CN108984336A (zh) * | 2017-06-02 | 2018-12-11 | 西部数据技术公司 | 处理存储设备的热关机 |
Family Cites Families (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101495795B1 (ko) | 2008-06-13 | 2015-02-27 | 삼성전자주식회사 | 불휘발성 메모리 장치 및 그것의 프로그램 방법 |
US7941692B2 (en) * | 2007-12-31 | 2011-05-10 | Intel Corporation | NAND power fail recovery |
US8074014B2 (en) * | 2008-03-31 | 2011-12-06 | Microsoft Corporation | Storage systems using write off-loading |
US9547589B2 (en) * | 2008-06-18 | 2017-01-17 | Super Talent Technology, Corp. | Endurance translation layer (ETL) and diversion of temp files for reduced flash wear of a super-endurance solid-state drive |
US8392479B1 (en) * | 2009-09-14 | 2013-03-05 | Symantec Corporation | Method and apparatus for optimizing storage space allocation for computer data |
JP4829370B1 (ja) * | 2010-07-09 | 2011-12-07 | 株式会社東芝 | メモリ制御装置、メモリ装置および停止制御方法 |
US8966191B2 (en) * | 2011-03-18 | 2015-02-24 | Fusion-Io, Inc. | Logical interface for contextual storage |
US20140143476A1 (en) * | 2012-11-16 | 2014-05-22 | Rotem Sela | Usage of cache and write transaction information in a storage device |
US9170938B1 (en) * | 2013-05-17 | 2015-10-27 | Western Digital Technologies, Inc. | Method and system for atomically writing scattered information in a solid state storage device |
US9082502B2 (en) | 2013-10-10 | 2015-07-14 | Sandisk Technologies Inc. | Bit line and compare voltage modulation for sensing nonvolatile storage elements |
US9645769B2 (en) * | 2014-10-24 | 2017-05-09 | Western Digital Technologies, Inc. | Performance acceleration during shutdown of a data storage device |
US10007433B2 (en) | 2015-01-21 | 2018-06-26 | Sandisk Technologies Llc | Systems and methods for performing adaptive host memory buffer caching of transition layer tables |
US9977623B2 (en) | 2015-10-15 | 2018-05-22 | Sandisk Technologies Llc | Detection of a sequential command stream |
US9721662B1 (en) | 2016-01-13 | 2017-08-01 | Sandisk Technologies Llc | Non-volatile memory with efficient programming |
US20180011714A1 (en) * | 2016-07-08 | 2018-01-11 | Super Micro Computer, Inc. | Graceful shutdown with asynchronous dram refresh of non-volatile dual in-line memory module |
US9817593B1 (en) * | 2016-07-11 | 2017-11-14 | Sandisk Technologies Llc | Block management in non-volatile memory system with non-blocking control sync system |
US10223272B2 (en) * | 2017-04-25 | 2019-03-05 | Seagate Technology Llc | Latency sensitive metadata object persistence operation for storage device |
DE102017124188A1 (de) * | 2017-10-17 | 2019-04-18 | Hyperstone Gmbh | Verfahren und Vorrichtung zum Steuern eines Speichersystems zum Zwecke eines sicheren Herunterfahrens eines flüchtigen Speichers eines Hosts |
US10838629B2 (en) * | 2018-09-24 | 2020-11-17 | Western Digital Technologies, Inc. | Solid state device with fast boot after ungraceful shutdown |
US10895991B2 (en) * | 2018-11-14 | 2021-01-19 | Western Digital Technologies, Inc. | Solid state device with improved sustained data writing speed |
-
2019
- 2019-01-16 US US16/249,479 patent/US11086737B2/en active Active
- 2019-12-04 CN CN201911225497.6A patent/CN111443866B/zh active Active
- 2019-12-04 KR KR1020190160028A patent/KR102315300B1/ko active IP Right Grant
- 2019-12-13 DE DE102019134294.5A patent/DE102019134294A1/de active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102971717A (zh) * | 2010-05-25 | 2013-03-13 | 马维尔国际贸易有限公司 | 存储器访问表保存和复原系统及方法 |
CN108874302A (zh) * | 2017-05-16 | 2018-11-23 | 爱思开海力士有限公司 | 数据存储装置及其操作方法 |
CN108984336A (zh) * | 2017-06-02 | 2018-12-11 | 西部数据技术公司 | 处理存储设备的热关机 |
Also Published As
Publication number | Publication date |
---|---|
KR20200089211A (ko) | 2020-07-24 |
DE102019134294A1 (de) | 2020-07-16 |
CN111443866A (zh) | 2020-07-24 |
KR102315300B1 (ko) | 2021-10-19 |
US20200226038A1 (en) | 2020-07-16 |
US11086737B2 (en) | 2021-08-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111443866B (zh) | 能从非正常关机迅速恢复的非易失性存储系统及其方法 | |
US10990311B2 (en) | Multi-stream non-volatile storage system | |
CN111164566B (zh) | 具有主机侧命令注入的非易失性存储系统 | |
US10579548B2 (en) | Adaptive interleaving of data transfer requests | |
US10572185B2 (en) | Non-volatile storage system with command replay | |
US11119954B2 (en) | Host emulator | |
US20200356280A1 (en) | Non-volatile storage system with hybrid command | |
US20190004700A1 (en) | Non-volatile storage device system with page based remapping | |
US10558576B2 (en) | Storage device with rapid overlay access | |
US11086772B2 (en) | Memory system performing garbage collection operation and operating method of memory system | |
US10896724B2 (en) | Non-volatile storage system with reduced program transfers | |
JP4661369B2 (ja) | メモリコントローラ | |
US11762553B2 (en) | Runtime selection of memory devices and storage devices in a disaggregated memory system | |
US11935585B2 (en) | Pseudo multi-plane read methods and apparatus for non-volatile memory devices | |
US20170125070A1 (en) | System and method for hibernation using a delta generator engine | |
US11842076B2 (en) | Storage system and operating method for same | |
CN112860175B (zh) | 具有自适应命令处理的非易失性存储系统 | |
US20230325093A1 (en) | Storage device and operating method thereof | |
US11392321B2 (en) | Memory system restoring data based on parity data and operating method thereof | |
US20240296085A1 (en) | Write and retire pages in qlc nand blocks | |
US20190187553A1 (en) | Apparatus and methods for reticle configuration | |
US20220171706A1 (en) | Memory system and operating method thereof | |
US20240176519A1 (en) | Operating methods, memory controllers, and memory systems | |
CN115295046A (zh) | 具有优化读取的非易失性存储器 | |
KR20240112167A (ko) | 스토리지 장치, 스토리지 장치의 동작 방법 및 비휘발성 메모리의 동작 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20240918 Address after: Delaware, USA Patentee after: SANDISK TECHNOLOGIES Inc. Country or region after: U.S.A. Address before: California, USA Patentee before: Western Digital Technologies, Inc. Country or region before: U.S.A. |
|
TR01 | Transfer of patent right |