CN113031856A - 存储器子***中的断电数据保护 - Google Patents
存储器子***中的断电数据保护 Download PDFInfo
- Publication number
- CN113031856A CN113031856A CN202011547542.2A CN202011547542A CN113031856A CN 113031856 A CN113031856 A CN 113031856A CN 202011547542 A CN202011547542 A CN 202011547542A CN 113031856 A CN113031856 A CN 113031856A
- Authority
- CN
- China
- Prior art keywords
- data
- block
- memory
- source block
- source
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 230000015654 memory Effects 0.000 title claims abstract description 211
- 238000013507 mapping Methods 0.000 claims abstract description 42
- 238000012545 processing Methods 0.000 claims description 64
- 238000000034 method Methods 0.000 claims description 58
- 238000011084 recovery Methods 0.000 claims description 8
- 230000004044 response Effects 0.000 claims description 7
- 230000008569 process Effects 0.000 description 31
- 238000007726 management method Methods 0.000 description 14
- 238000003491 array Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 5
- 239000003990 capacitor Substances 0.000 description 4
- 238000004891 communication Methods 0.000 description 4
- 230000001934 delay Effects 0.000 description 4
- 230000003068 static effect Effects 0.000 description 4
- 238000004590 computer program Methods 0.000 description 3
- 238000013500 data storage Methods 0.000 description 3
- 230000009977 dual effect Effects 0.000 description 3
- 239000000203 mixture Substances 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 1
- 150000004770 chalcogenides Chemical class 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000007596 consolidation process Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
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/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/0604—Improving or facilitating administration, e.g. storage management
-
- 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
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/325—Power saving in peripheral device
- G06F1/3275—Power saving in memory, e.g. RAM, cache
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
- G06F12/0873—Mapping of cache memory to specific storage devices or parts thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0877—Cache access modes
- G06F12/0882—Page mode
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- 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
-
- 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
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/401—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
- G11C11/4063—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
- G11C11/407—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
- G11C11/408—Address circuits
- G11C11/4085—Word line control circuits, e.g. word line drivers, - boosters, - pull-up, - pull-down, - precharge
-
- 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/22—Safety or protection circuits preventing unauthorised or accidental access to memory cells
- G11C16/225—Preventing erasure, programming or reading when power supply voltages are outside the required ranges
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
- G06F12/0868—Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
-
- 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/21—Employing a record carrier using a specific recording technology
- G06F2212/214—Solid state disk
-
- 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/7201—Logical to physical mapping or translation of blocks or pages
-
- 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/7203—Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
-
- 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
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/005—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor comprising combined but independently operative RAM-ROM, RAM-PROM, RAM-EPROM cells
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/401—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
- G11C11/4063—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
- G11C11/407—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
- G11C11/4074—Power supply or voltage generation circuits, e.g. bias voltage generators, substrate voltage generators, back-up power, power control circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/401—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
- G11C11/4063—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
- G11C11/407—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
- G11C11/4076—Timing circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/401—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
- G11C11/4063—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
- G11C11/407—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
- G11C11/4078—Safety or protection circuits, e.g. for preventing inadvertent or unauthorised reading or writing; Status cells; Test cells
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/56—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
- G11C11/5621—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
-
- 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/30—Power supply circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C2207/00—Indexing scheme relating to arrangements for writing information into, or reading information out from, a digital store
- G11C2207/22—Control and timing of internal memory operations
- G11C2207/2245—Memory devices with an internal cache buffer
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
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)
- Microelectronics & Electronic Packaging (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本申请案涉及存储器子***中的断电数据保护。执行媒体管理操作,即将数据编程到存储器子***的存储器装置的写入请求,所述媒体管理操作将数据从高速缓存存储器的源块写入到处于比所述高速缓存存储器更高的数据密度下的存储器子***的存储区域的目的地块的页集合。产生识别对应于所述高速缓存存储器的所述源块的页计数的第一数据结构的条目。在确定数据被写入到所述存储区域的所述目的地块的所述页集合后,更新所述条目以识别对应于所述源块的减小页计数,其中当所述减小页计数满足条件时,从所述源块擦除所述数据。还更新包含将逻辑块映射到所述高速缓存存储器的所述源块的信息的第二数据结构的第二条目。
Description
技术领域
本公开的实施例大体上涉及存储器子***,且更具体地说,涉及存储器子***中的断电数据保护。
背景技术
存储器子***可包含存储数据的一或多个存储器装置。存储器装置可以是例如非易失性存储器装置和易失性存储器装置。一般来说,主机***可利用存储器子***来将数据存储在存储器装置处且从存储器装置检索数据。
发明内容
在一个方面中,本申请案提供一种方法,其包括:通过处理装置执行媒体管理操作以将数据从高速缓存存储器的源块写入到具有比高速缓存存储器更高的数据密度的存储器子***的存储区域的目的地块的页集合;产生识别对应于高速缓存存储器的源块的页计数的第一数据结构的条目;确定数据被写入到存储区域的目的地块的页集合;更新条目以识别对应于源块的减小页计数,其中当减小页计数满足条件时,从源块擦除数据;和更新包括将逻辑块映射到高速缓存存储器的源块的信息的第二数据结构的第二条目。
在另一方面中,本申请案进一步提供一种包括指令的非暂时性计算机可读媒体,所述指令在由处理装置执行时使处理装置执行包括以下的操作:通过处理装置执行媒体管理操作以将数据从高速缓存存储器的源块写入到具有比高速缓存存储器更高的数据密度的存储器子***的存储区域的目的地块的页集合;确定数据被写入到存储区域的目的地块的页集合;和从源块擦除数据。
在又一方面中,本申请案进一步提供一种***,其包括:存储器装置;和处理装置,其以操作方式与存储器装置耦合以执行包括以下的操作:接收将数据编程到存储器装置的写入请求;产生数据结构的中间条目,中间条目包含识别与对应于写入请求的中间写入操作相关联的写入缓冲器的指针;接收从存储器装置读取数据的读取请求;执行对数据结构的查找操作以识别中间条目;使用指针来定位与中间写入操作相关联的写入缓冲器;将写入缓冲器复制到与读取请求相关联的读取缓冲器;和使用读取缓冲器来执行读取请求。
附图说明
根据下文给出的详细描述和本公开的各种实施例的随附图式,将更充分地理解本公开。然而,图式不应视为将本公开限制于具体实施例,而是仅用于解释和理解。
图1说明根据本公开的一些实施例的包含存储器子***的实例计算***。
图2是根据一些实施例的结合与存储器子***相关的垃圾收集操作来管理数据结构的实例方法的流程图。
图3说明根据一些实施例的由存储器子***的数据保护组件管理的实例源块数据结构。
图4说明根据一些实施例的结合垃圾收集操作来管理数据结构的实例数据保护组件。
图5是根据一些实施例的结合与存储器子***相关的垃圾收集操作来管理数据结构的实例方法的流程图。
图6是本公开的实施方案可在其中操作的实例计算机***的框图。
具体实施方式
本公开的方面是针对存储器子***中的数据电力丢失保护。存储器子***可以是存储装置、存储器模块或存储装置与存储器模块的混合。下文结合图1描述存储装置和存储器模块的实例。一般来说,主机***可利用包含一或多个组件(如存储数据的存储器装置)的存储器子***。主机***可提供待存储于存储器子***处的数据且可请求从存储器子***检索数据。
存储器子***可包含具有一或多个存储器单元阵列的多个存储器组件,如具有单层级单元(SLC)的低密度存储装置或具有多层级单元(MLC)、三层级单元(TLC)或四层级单元(QLC)的高密度存储装置。主机***可将数据写入到存储器子***的低密度存储位置(例如,SLC高速缓存),所述低密度存储方位包含典型地配置成基于先入先出而存储主机数据的多个保留数据块。常规地,可执行垃圾收集操作以将存储于SLC高速缓存中的所有主机数据再定位到称为XLC(例如,MLC/TLC/QLC)存储区域(例如,具有256GB存储大小)的高密度大容量存储装置。垃圾收集操作包含将数据从一或多个源数据块(例如,静态SLC高速缓存)再定位到一或多个目的地数据块(例如,XLC存储装置)中的过程,预期目的在于数据合并以释放静电SLC高速缓存的存储资源以用于后续擦除和新的写入处理。在执行垃圾收集操作期间,可将主机数据从对应于SLC高速缓存的一或多个NAND位置复制到对应于较高密度存储区域(例如,XLC存储装置)的另一NAND位置。在这一过程期间,将字线(例如,较高密度存储装置的存储器单元的一部分)编程有数据。每一字线(亦称作“存储器单元部分”)含有多个子块,所述子块含有多个页(例如,下部页(LP)、上部页(UP)和额外页(XP)),其中一或多个下部和上部页彼此耦合。字线并未完全编程直到已编程字线的所有页。如此,如果在上部页或额外页编程期间经历断电,那么字线上的所耦合下部和上部页可损坏,从而引起数据丢失。常规地,为解决在字线编程期间的断电的例子,电容器用于存储和提供额外电力以使与字线相关联的最末程序操作能够完成。然而,这引起额外硬件和相关联装置成本。另外,由于与电容器相关联的寿命周期问题和限制,因此管理断电问题的电容器的使用降低存储器子***的可靠性。
本公开的方面通过具有存储器子***来解决以上和其它缺陷,所述存储器子***实施和管理能够在存储器单元部分(例如,字线)的编程期间的断电事件的情况下使用存储于存储器组件的高速缓存存储器的源块中的数据来恢复数据的数据结构。在将由主机***写入的数据编程到存储器组件中期间,数据存储到一个或更多源块(例如,高速缓存存储器的SLC块)中。存储器子***存储器控制器维持数据结构,所述数据结构包含对应于存储器装置的逻辑块的一系列逻辑地址与存储器装置的存储器单元的物理地址的高速缓存存储器中的源块的地址(也称为“源块地址”)之间的映射信息(也称为“逻辑到物理(L2P)映射数据结构”)。
当高速缓存存储器达到容量(例如,满)时,启动媒体管理操作(例如,回收或垃圾收集过程)以将数据从高速缓存存储器移动到存储器子***的较高密度存储区域的目的地块(例如,XLC块,如TLC块或MLC块)。存储器控制器确定在从数据高速缓存擦除源块之前编程整个字线(例如,字线的所有页)。另外,存储器控制器延迟具有已更新源块地址信息的L2P映射数据结构的更新直到确定已编程整个字线后为止。
有利地,存储器控制器延迟更新直到在确定整个字线“安全”(即,已编程高密度存储装置的目的地块(例如,TLC块)的所有页)之后为止,而非在页编程操作完成之后更新高速缓存存储器(即,从高速缓存存储器中的源块擦除数据)和L2P映射数据结构(即,更新源块地址信息)。有利地,这引起对由于在目的地块的编程期间发生的异步断电事件引起的数据损坏和丢失的保护。此外,在断电事件后,可执行通电重建过程以从保存(即,未擦除)的源块(例如,SLC块)恢复数据以完成中断的程序操作且将数据恰当地存储在目的地块(例如TLC块)中。可在无在完全编程目的地块之前擦除源块数据的风险的情况下执行从高速缓存存储器的这一重建。本公开的优点进一步包含但不限于通过避免如在常规***中所使用而使用额外断电电容器提供所存储电力以在断电的情况下完成程序操作来实现对目的地块数据丢失的保护。
图1说明根据本公开的一些实施例的包含存储器子***110的实例计算***100。存储器子***110可包含媒体,如一或多个易失性存储器装置(例如,存储器装置140)、一或多个非易失性存储器装置(例如,存储器装置130)或这些的组合。
存储器子***110可以是存储装置、存储器模块或存储装置与存储器模块的混合。存储装置的实例包含固态驱动器(SSD)、快闪驱动器、通用串行总线(USB)快闪驱动器、嵌入式多媒体控制器(eMMC)驱动器、通用快闪存储(UFS)驱动器、安全数字(SD)卡和硬盘驱动器(HDD)。存储器模块的实例包含双列直插式存储器模块(DIMM)、小外形DIMM(SO-DIMM)和各种类型的非易失性双列直插式存储器模块(NVDIMM)。
计算***100可以是计算装置,如台式计算机、膝上型计算机、网络服务器、移动装置、交通工具(例如,飞机、无人机、火车、汽车或其它运输工具)、具有物联网(IoT)功能的装置、嵌入式计算机(例如,交通工具、工业设备或联网商业装置中包含的嵌入式计算机)或包含存储器和处理装置的此类计算装置。
计算***100可包含耦合到一或多个存储器子***110的主机***120。在一些实施例中,主机***120耦合到不同类型的存储器子***110。图1说明耦合到一个存储器子***110的主机***120的一个实例。如本文中所使用,“耦合到”或“与…耦合”通常指代组件之间的连接,其可以是间接通信连接或直接通信连接(例如不具有介入组件),无论有线或无线,包含如电性连接、光学连接、磁性连接等的连接。
主机***120可包含处理器芯片组以及由处理器芯片组执行的软件堆栈。处理器芯片组可包含一或多个核心、一或多个高速缓存、存储器控制器(例如,NVDIMM控制器)和存储协议控制器(例如,PCIe控制器、SATA控制器)。主机***120使用例如存储器子***110将数据写入到存储器子***110并从存储器子***110读取数据。
主机***120可经由物理主机接口耦合到存储器子***110。物理主机接口的实例包含但不限于串行高级技术附件(SATA)接口、***组件互连高速(PCIe)接口、通用串行总线(USB)接口、光纤通道、串行连接的SCSI(SAS)、双数据速率(DDR)存储器总线、小型计算机***接口(SCSI)、双列直插式存储器模块(DIMM)接口(例如,支持双数据速率(DDR)的DIMM套接接口)等。物理主机接口可用于在主机***120与存储器子***110之间传输数据。当存储器子***110通过PCIe接口与主机***120耦合时,主机***120可进一步利用NVM高速(NVMe)接口来存取组件(例如,存储器装置130)。物理主机接口可提供接口以用于在存储器子***110与主机***120之间传递控制、地址、数据以及其它信号。图1说明存储器子***110作为实例。一般来说,主机***120可经由同一通信连接、多个单独通信连接和/或通信连接的组合来存取多个存储器子***。
存储器装置130、140可包含不同类型的非易失性存储器装置和/或易失性存储器装置的任何组合。易失性存储器装置(例如,存储器装置140)可以是但不限于随机存取存储器(RAM),如动态随机存取存储器(DRAM)和同步动态随机存取存储器(SDRAM)。
非易失性存储器装置(例如,存储器装置130)的一些实例包含与非(NAND)型快闪存储器和就地写入存储器,如三维交叉点(“3D交叉点”)存储器装置,其是非易失性存储器单元的交叉点阵列。非易失性存储器的交叉点阵列可结合可堆叠交叉网格化数据存取阵列而基于体电阻的变化来执行位存储。此外,与许多基于快闪的存储器对比,交叉点非易失性存储器可执行就地写入操作,其中可在不预先擦除非易失性存储器单元的情况下编程非易失性存储器单元。NAND型快闪存储器包含例如二维NAND(2D NAND)和三维NAND(3D NAND)。
存储器装置130中的每一个可包含一或多个存储器单元阵列。一种类型的存储器单元,例如,单层级单元(SLC)可存储每单元一个位。其它类型的存储器单元,如多层级单元(MLC)、三层级单元(TLC)和四层级单元(QLC)可存储每单元多个位。在一些实施例中,存储器装置130中的每一个可包含一或多个存储器单元阵列,如SLC、MLC、TLC、QLC或这些的任何组合。在一些实施例中,特定存储器装置可包含存储器单元的SLC部分以及MLC部分、TLC部分或QLC部分。存储器装置130的存储器单元可分组为页,所述页可指用于存储数据的存储器装置的逻辑单元。对于一些类型的存储器(例如,NAND),页可进行分组以形成块。
虽然描述如非易失性存储器单元3D交叉点阵列和NAND型快闪存储器(例如,2DNAND、3D NAND)的非易失性存储器组件,但存储器装置130可基于任何其它类型的非易失性存储器,如只读存储器(ROM)、相变存储器(PCM)、自选存储器、其它基于硫族化物的存储器、铁电晶体管随机存取存储器(FeTRAM)、铁电随机存取存储器(FeRAM)、磁随机存取存储器(MRAM)、自旋转移力矩(STT)-MRAM、导电桥接RAM(CBRAM)、电阻性随机存取存储器(RRAM)、基于氧化物的RRAM(OxRAM)、或非(NOR)快闪存储器和电可擦除可编程只读存储器(EEPROM)。
存储器子***控制器115(或简称为控制器115)可与存储器装置130通信以执行操作,如在存储器装置130处读取数据、写入数据或擦除数据和其它这类操作。存储器子***控制器115可包含硬件,如一或多个集成电路和/或离散组件、缓冲存储器或其组合。硬件可包含具有专用(即,硬译码)逻辑的数字电路***以执行本文中所描述的操作。存储器子***控制器115可以是微控制器、专用逻辑电路***(例如,现场可编程门阵列(FPGA)、专用集成电路(ASIC)等)或其它合适的处理器。
存储器子***控制器115可包含配置成执行存储在本地存储器119中的指令的处理器117(例如,处理装置)。在所说明的实例中,存储器子***控制器115的本地存储器119包含配置成存储指令的嵌入式存储器,所述指令用于执行控制存储器子***110的操作(包含操控存储器子***110与主机***120之间的通信)的各种过程、操作、逻辑流程和例程。
在一些实施例中,本地存储器119可包含存储存储器指针、所提取数据等的存储器寄存器。本地存储器119还可包含用于存储微码的只读存储器(ROM)。虽然图1中的实例存储器子***110已说明为包含存储器子***控制器115,但在本公开的另一实施例中,存储器子***110不包含存储器子***控制器115,且可实际上依赖于外部控制(例如,由外部主机或由与存储器子***分离的处理器或控制器提供)。
一般来说,存储器子***控制器115可从主机***120接收命令或操作,且可将命令或操作转换为指令或适当命令以实现对存储器装置130的所要存取。存储器子***控制器115可负责其它操作,如耗损均衡操作、如垃圾收集操作的媒体管理操作、误差检测和误差校正码(ECC)操作、加密操作、高速缓存操作和与存储器装置130相关联的逻辑块地址(例如,逻辑块地址(LBA)、名字空间)与物理块地址(例如,物理块地址)之间的地址转译。存储器子***控制器115可进一步包含主机接口电路***以经由物理主机接口与主机***120通信。主机接口电路***可将从主机***接收到的命令转换成存取存储器装置130的命令指令,以及将与存储器装置130相关联的响应转换成用于主机***120的信息。
存储器子***110还可包含未说明的额外电路***或组件。在一些实施例中,存储器子***110可包含高速缓存或缓冲器(例如,DRAM)和地址电路***(例如,行解码器和列解码器),所述地址电路***可从存储器子***控制器115接收地址且解码所述地址以存取存储器装置130。
在一些实施例中,存储器装置130包含本地媒体控制器135,其结合存储器子***控制器115操作以对存储器装置130的一或多个存储器单元执行操作。外部控制器(例如,存储器子***控制器115)可在外部管理存储器装置130(例如,对存储器装置130执行媒体管理操作)。在一些实施例中,存储器装置130是受管理存储器装置,其是与本地控制器(例如,本地控制器135)组合以在同一存储器装置封装内进行媒体管理的原始存储器装置。受管理存储器装置的实例是受管理NAND(MNAND)装置。
存储器子***110包含可用于在媒体管理操作(例如,垃圾收集或回收过程)期间管理由主机***120写入的数据的数据保护组件113,其中数据从存储器子***的高速缓存存储器的源块(例如,SLC块)写入到存储器子***的高密度存储区域的目的地块(例如,TLC块)。数据保护组件113还管理包含使逻辑地址和存储器子***的源块的物理地址(也称为源块地址)相关联的映射信息的数据结构(也称为“L2P映射数据结构”)。数据保护组件113确定在从高速缓存存储器的源块擦除写入数据之前已在垃圾收集操作期间写入目的地块的存储器单元的一部分(例如,字线的所有页)。在如此操作时,数据保护组件113使得能够在完全编程存储器单元的部分之前发生的断电事件的情况下使用所保存源块的数据来执行数据恢复过程。数据保护组件113进一步延迟具有新源块地址的L2P映射数据结构的更新直到确定作为媒体管理操作(例如,垃圾收集操作)的部分已完全编程存储器单元的部分之后为止。在一些实施例中,存储器子***控制器115包含数据保护组件113的至少一部分。举例来说,存储器子***控制器115可包含处理器117(处理装置),其配置成执行存储在本地存储器119中的指令以用于执行本文中所描述的操作。在一些实施例中,数据保护组件113是主机***120、应用程序或操作***的部分。在相同或替代实施例中,数据保护组件113的部分是主机***120的部分,而数据保护组件113的其它部分在存储器子***控制器115处执行。
图2是根据一些实施例的结合媒体管理操作(例如,垃圾收集操作)来管理存储于源块和L2P映射数据结构的一或多个条目中的数据的实例方法200的流程图。方法200可由处理逻辑执行,所述处理逻辑可包含硬件(例如,处理装置、电路***、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令)或其组合。在一些实施例中,方法200由图1的数据保护组件113执行。虽然以特定顺序或次序来展示,但除非另外规定,否则可修改过程的次序。因此,所说明实施例应仅作为实例理解,且所说明过程可以不同次序执行,且一些过程可并行执行。此外,可在各种实施例中省略一或多个过程。因此,并非在每个实例中都需要所有过程。其它过程流程是可能的。
如图2中所展示,在操作210处,处理逻辑执行将数据从高速缓存存储器的源块写入到处于比高速缓存存储器更高的密度下的存储器子***的存储区域的目的地块的页集合的媒体管理操作。在一实施例中,源块可以是SLC块且存储器子***的更高密度存储区域可以是TLC块。在一实施例中,源块可以是并未耦合在存储器单元(例如,字线)的一部分的多个页之间的一位存储器。在一实施例中,媒体管理操作包含可响应于确定高速缓存存储器达到容量或阈值水平而启动的垃圾收集或回收过程。在一实施例中,响应于确定待写入到的目的地块的页是LP/UP页,可更新物理到逻辑(P2L)页,且如果P2L页是满的,那么存储于高速缓存存储器的源块中的数据可写入到目的地块(即,可启动和执行媒体管理流程,包含将回收写入请求发送到存储器子***的后端)。
在操作220处,处理逻辑产生识别对应于高速缓存存储器的源块的页计数的第一数据结构的条目。在一实施例中,第一数据结构包含与高速缓存存储器的源块相关的信息。举例来说,第一数据结构可包含表,所述表包含与可用于管理主机写入数据和媒体管理处理(例如,垃圾收集处理)的高速缓存的源块相关的一或多个条目。第一数据结构可包含识别源块编号、如页计数(例如,待从源块移动或写入到目的地块的页的数目)的第一值计数器和如程序擦除计数(PEC)的第二值计数器的条目(例如,版本识别符)。在一实施例中,产生包含对应于存储主机写入数据的源块的源块编号、与源块相关联的页计数和程序擦除计数的条目。第一数据结构300的实例展示于图3中。如图3中所展示,可维持和更新与高速缓存存储器的多个源块(例如,存储待移动或写入到存储器子***的目的地块的主机写入数据的多个SLC块)相关的条目。在一实施例中,与源块相关联的条目可包含第一数据结构(例如,源块表)中的当前PEC以指示并不释放和重复使用源块。在一实施例中,每一条目可包含对应于来自源块的页计数的计数值。在一实施例中,源块页计数由于编程到目的地块的每一页而减小,且当源块页计数满足条件(例如,等于零)时,当前源块进行擦除是安全的,且可对源块数据结构300中的下一源块执行切换。
在操作230中,处理逻辑确定数据写入到存储区域的目的地块的页集合。在一实施例中,确定数据已写入到所有页(例如,页集合)指示存储器单元的部分(例如,整个字线)的写入操作完成。在一实施例中,处理装置可通过确定字线的最末额外页(XP)的编程完成来确定数据已写入到目的地块的所有页,从而指示字线是安全的。
在操作240中,处理逻辑更新条目以识别对应于源块的减小页计数,其中当减小页计数满足条件时,从源块擦除数据。在一实施例中,当与源块相关联的页计数等于零时,满足条件。在一实施例中,在确定页计数满足条件(例如,页计数等于零)后,处理逻辑可鉴于确认字线是安全的而释放源块且擦除数据。在一实施例中,处理逻辑将数据维持在源块中(即,并未擦除数据)直到确定字线是安全的(即,在操作230中)之后为止。
在操作250中,处理逻辑更新包含将逻辑块映射到高速缓存存储器的源块的信息的第二数据结构的第二条目。在一实施例中,第二数据结构是L2P映射数据结构,所述L2P映射数据结构包含将逻辑块映射到高速缓存存储器的源块的地址的条目(也称为“第二条目”)。在一实施例中,与常规***对比,前一映射(例如,逻辑块地址到源块的物理块地址)维持在L2P映射数据结构(例如,表)中直到在操作230中确定整个字线是安全的之后为止。有利地,如果断电事件在操作230之前发生,那么可执行数据恢复操作以使用在源块中保存(即,未擦除)的数据和在L2P映射数据结构中保存的L2P映射信息来恢复待写入到目的地块的数据。在一实施例中,通过在擦除源块上的数据之前确定目的地块上的数据是安全的来保护数据免于在垃圾收集过程(例如,将数据从源块写入到目的地块)期间损坏。在一实施例中,通过将数据保留在源块上直到目的地块完全编程为止,可响应于在垃圾收集处理期间发生的断电事件而执行通电重建过程以恢复数据。
图4说明由根据实施例的数据保护组件113管理的实例第一数据结构400(即,源块数据结构)和第二数据结构420(即,L2P映射数据结构)。如图4中所展示,数据保护组件113配置成从主机***120接收写入请求。写入请求包含执行写入操作以将数据编程到存储器子***的更高密度存储区域470物理页的物理目的地块472的指令。写入请求识别与存储器子***的一或多个逻辑块相关联的逻辑块地址。数据保护组件113采用数据结构420以将逻辑块地址转换为对应源块地址(例如,图4中的源块0)。第一数据结构400维持在高速缓存存储器450(例如,SLC存储装置)中且包含与一或多个源块相关联的信息。可执行垃圾收集过程以将主机数据从源块写入到更高密度存储区域470(例如,TLC存储装置)的目的地块472。
在一实施例中,源块数据结构400可用于记录在垃圾收集处理期间的源块编号和程序误差计数(PEC)。在一实施例中,如果在垃圾收集处理期间重写逻辑块,那么L2P映射数据结构420中的源块编号改变以使得源块编号和PEC并不匹配存储于源块数据结构400中的源块编号和PEC。在一实施例中,来自源块的页计数用于关联物理到逻辑(P2L)映射信息。
在一实施例中,L2P映射数据结构420可包含标准条目和中间条目。标准条目可与未在处理中或进行中写入请求中涉及的存储器位置相关。标准条目(也称为“标准L2P条目”)可包含与逻辑地址到源块的物理地址相关的映射转译信息,包含逻辑块地址标头、逻辑块地址标头的计划编号、逻辑单元编号(LUN)和物理块地址信息(例如,页和块识别符)。
中间条目是识别在写入操作的待决期间(例如,在写入操作已完成且对应数据已写入到存储器子***的目的地物理位置之前)存储与中间或处理中写入操作相关联的数据的写入缓冲器的地址的L2P映射数据结构中的条目。在一实施例中,中间条目包含指针(例如,包含对应于存储与中间写入操作相关联的数据的写入缓冲器452的地址的标签或其它识别符)。在一实施例中,指针可包含***管理的标签(也称为“systag”),其具有可用于存储识别中间写入操作的信息的一或多个额外位。在一实施例中,指针识别存储与中间写入操作相关联的数据的高速缓存中的写入缓冲器地址。
在一实施例中,在接收到写入请求后,处理逻辑可检查L2P映射数据结构中的对应条目是否是标准条目或中间条目(即,与中间写入操作相关联)。在一实施例中,处理逻辑可识别对应于写入请求的条目是标准条目,产生中间条目,且将中间条目存储于数据结构中。在一实施例中,处理逻辑可识别对应于写入请求的条目是中间条目(例如,条目与另一中间写入操作相关),处理逻辑可用与接收到的写入请求相关联的已更新指针替换当前中间条目的指针。
在一实施例中,在写入操作的待决期间监测对应于写入请求的中间写入操作的数据保护组件113,数据结构420中的中间条目422。在一实施例中,中间条目422可包含识别与中间写入操作相关联的写入缓冲器452的高速缓存450中的地址的指针或其它识别符。在一实施例中,指针是***管理标签(或“systag”)编号,其包含一或多个位以识别包含与中间写入操作相关联的数据的写入缓冲器的位置。
在一实施例中,存储于数据结构420中的物理块地址条目可识别物理块地址“未决”以向数据保护组件413发信数据仍尚未写入到存储器子***的物理存储器装置。如图4中所展示,指针表(或其它数据结构)可存储于高速缓存450中且包含与每一中间写入操作相关联的指针信息。在一实施例中,如果在写入操作完成后,数据保护组件113确定存储于中间条目422中的指针并不匹配存储于指针表中的指针信息,那么数据保护组件113确定已覆写逻辑块。
在一实施例中,数据保护组件113延迟更新源块数据结构400和L2P映射数据结构420直到目的地块(例如,字线的下部页、上部页和额外页)474的整个部分的编程完成之后为止。在一实施例中,数据保护组件113将数据保存在源块数据结构400和L2P映射数据结构420中以使得能够在垃圾收集过程在进行中但仍未完成时(例如,在UP/XP编程期间)发生的断电事件的情况下进行数据恢复处理。
图5是根据一些实施例的结合主机写入操作和垃圾收集操作来管理数据结构以保存数据从而用于响应于在垃圾收集操作期间发生的断电事件而执行数据恢复过程的实例方法500的流程图。方法500可由处理逻辑执行,所述处理逻辑可包含硬件(例如,处理装置、电路***、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令)或其组合。在一些实施例中,方法500由图1的数据保护组件113执行。在一实施例中,方法500的操作可结合图2的操作230执行。在一实施例中,方法500涉及结合垃圾收集操作的执行来管理源块数据结构和L2P映射数据结构以将主机写入数据从高速缓存存储器的源块(例如,SLC块)移动或写入到存储器子***的高密度存储区域的目的地块(例如,TLC块)的部分(例如,字线的所有页)。虽然以特定顺序或次序来展示,但除非另外规定,否则可修改过程的次序。因此,所说明实施例应仅作为实例理解,且所说明过程可以不同次序执行,且一些过程可并行执行。此外,可在各种实施例中省略一或多个过程。因此,并非在每个实例中都需要所有过程。其它过程流程是可能的。
如图5中所展示,在操作510处,处理逻辑确定数据(例如,由主机写入到存储器子***的数据)从第一源块写入到高密度存储区域的目的地块的最末额外页。在一实施例中,确定目的地块的最末额外页指示字线的所有页已编程且字线是“安全”的。在一实施例中,数据从第一源块写入到目的地块作为所执行垃圾收集操作的部分。
在操作520中,处理逻辑存取L2P映射数据结构以识别对应于逻辑块和第一源块的条目。在操作525中,处理逻辑确定条目是否是中间条目(例如,与中间或进行中写入操作相关的)。如果条目是中间条目,那么过程500继续到操作570,如下文更详细描述。如果条目是标准条目,那么过程继续到操作530。
在操作530中,处理逻辑识别来自L2P表的第一源块。在操作540中,处理逻辑识别来自源块数据结构的第二源块。在一实施例中,源块数据结构(例如,图3和图4中展示的实例源块数据结构)包含与高速缓存存储器的源块相关的条目。
在操作545中,处理逻辑确定与第一源块和第二源块地址相关的信息是否匹配。如果第一源块信息和第二源块信息并不匹配,那么方法500进行到操作570。在一实施例中,如果第一源块的块编号并不匹配第二源块的块编号,那么处理逻辑确定L2P映射在确认字线“安全”之前改变,且处理逻辑丢弃或去除映射的“未决”状态。在一实施例中,如果第一源块的块编号和第二源块的块编号匹配,但PEC并不匹配,那么处理逻辑确定逻辑块已重写且第一源块已在与同一逻辑块的映射的情况下重复使用。在一实施例中,处理逻辑增加PEC且将未决映射丢弃到前一源块。
在操作545中,处理逻辑可通过确定存储于L2P映射数据结构中的第一源块的块编号和PEC匹配存储于源块数据结构中的第二源块的块编号和PEC来确定映射有效,方法500进行到操作550。在操作550中,处理逻辑在源块数据结构中减小第二源块的有效页计数。在操作中,处理逻辑用对新源块的已更新映射来更新L2P映射数据结构。在一实施例中,处理逻辑可增加与新源块相关联的有效页计数数目。
在操作570中,处理逻辑减小源块数据结构中的第二源块的页计数。在操作580中,处理逻辑可检查以确定第二源块的页计数是否满足条件。在一实施例中,当页计数达到或等于零时,满足条件,从而指示第二源块进行擦除是安全的。
在操作590中,处理逻辑执行擦除第二源块的指令。在一实施例中,通过在方法500的这一阶段处(例如,在确定字线关闭和安全之后)(例如,从存储器子***的高速缓存存储器)擦除第二源块的数据,处理逻辑在待响应于在垃圾收集操作期间(例如,在将数据从第二源块写入到目的地块的字线的所有页之前时)发生的断电事件而执行数据恢复操作的情况下将数据保存在第二源块中。
图6说明计算机***600的实例机器,在所述实例机器内可执行用于使得机器执行本文中所论述的方法中的任何一或多种的指令集。在一些实施例中,计算机***600可对应于主机***(例如,图1的主机***120)或可用于执行控制器的操作(例如,执行操作***以执行对应于图1的数据保护组件113的操作),所述主机***包含、耦合到或利用存储器子***(例如,图1的存储器子***110)。在替代性实施例中,机器可连接(例如,联网)到LAN、内联网、外联网和/或因特网中的其它机器。机器可作为点对点(或分散式)网络环境中的对等机器或作为云计算基础设施或环境中的服务器或客户端机器而在客户端-服务器网络环境中的服务器或客户端机器的容量中操作。
机器可以是个人计算机(PC)、平板PC、机顶盒(STB)、个人数字助理(PDA)、蜂窝电话、网络设备、服务器、网络路由器、交换机或网桥、数字或非数字电路***,或能够执行指定要由此机器进行的动作的指令集(顺序的或以其它方式)的任何机器。另外,尽管说明单个机器,但还应认为术语“机器”包含机器的任何集合,所述集合单独地或共同地执行一(或多)个指令集以执行本文中所论述的方法中的任何一或多种。
实例计算机***600包含处理装置602、主存储器604(例如,只读存储器(ROM)、快闪存储器、动态随机存取存储器(DRAM),如同步DRAM(SDRAM)或Rambus DRAM(RDRAM)等)、静态存储器606(例如,快闪存储器、静态随机存取存储器(SRAM)等)以及数据存储***618,它们经由总线630彼此通信。
处理装置602表示一或多个通用处理装置,如微处理器、中央处理单元或类似物。更确切地说,处理装置可以是复杂指令集计算(CISC)微处理器、精简指令集计算(RISC)微处理器、超长指令字(VLIW)微处理器或实施其它指令集的处理器,或实施指令集的组合的处理器。处理装置602也可以是一或多个专用处理装置,如专用集成电路(ASIC)、现场可编程门阵列(FPGA)、数字信号处理器(DSP)、网络处理器或类似物。处理装置602配置成执行用于执行本文中所论述的操作和步骤的指令626。计算机***600可进一步包含网络接口装置608以经由网络620通信。
数据存储***618可包含机器可读存储媒体624(也称为计算机可读媒体),其上存储有一或多个指令集626或体现本文中所描述的方法或功能中的任何一或多种的软件。指令626还可在其由计算机***600执行期间完全或至少部分地驻存在主存储器604内和/或处理装置602内,主存储器604和处理装置602也构成机器可读存储媒体。机器可读存储媒体624、数据存储***618和/或主存储器604可对应于图1的存储器子***110。
在一个实施例中,指令626包含实施对应于数据保护组件(例如,图1的数据保护组件113)的功能性的指令。尽管在实例实施例中机器可读存储媒体624展示为单个媒体,但术语“机器可读存储媒体”应认为包含存储一或多个指令集的单个媒体或多个媒体。术语“机器可读存储媒体”还应认为包含能够存储或编码供机器执行的指令集且使得机器执行本公开的方法中的任何一或多种的任何媒体。因此,应认为术语“机器可读存储媒体”包含但不限于固态存储器、光学媒体以及磁性媒体。
已在针对计算机存储器内的数据位的操作的算法和符号表示方面呈现了先前详细描述的一些部分。这些算法描述和表示是数据处理领域的技术人员用以将其工作的主旨最有效地传达给所属领域的其它技术人员的方式。算法在这里且通常认为是引起所期望结果的操作的自洽序列。操作是要求对物理量进行物理操控的操作。通常(但未必),这些量采用能够存储、组合、比较和以其它方式操控的电信号或磁信号的形式。有时,主要出于通用的原因,已经证明将这些信号称为位、值、元件、符号、字符、术语、数目或类似物是方便的。
然而,应牢记,所有这些和类似术语应与适当物理量相关联,且仅仅是应用于这些量的方便标签。本公开可涉及将计算机***的寄存器和存储器内的表示为物理(电子)量的数据操控和变换为计算机***存储器或寄存器或其它这类信息存储***内的类似地表示为物理量的其它数据的计算机***或类似电子计算装置的动作和过程。
本公开还涉及用于执行本文中的操作的设备。这一设备可出于所需目的而专门构造,或其可包含通过存储在计算机中的计算机程序选择性地激活或重新配置的通用计算机。此类计算机程序可存储在计算机可读存储媒体中,如但不限于任何类型的盘(包含软盘、光盘、CD-ROM和磁性光盘)、只读存储器(ROM)、随机存取存储器(RAM)、EPROM、EEPROM、磁卡或光卡或适合于存储电子指令的任何类型的媒体,它们各自耦合到计算机***总线。
本文中呈现的算法和显示器并非在本质上与任何特定计算机或其它设备相关。各种通用***可与根据本文中的教示的程序一起使用,或其可证明构造用以执行所述方法更加专用的设备是方便的。将如下文描述中所阐述的那样来呈现多种这些***的结构。另外,不参考任何特定编程语言来描述本公开。将了解,可使用多种编程语言来实施如本文中所描述的本公开的教示。
本公开可提供为计算机程序产品或软件,其可包含在其上存储有指令的机器可读媒体,所述指令可用于编程计算机***(或其它电子装置)以执行根据本公开的过程。机器可读媒体包含用于以机器(例如,计算机)可读的形式存储信息的任何机构。在一些实施例中,机器可读(例如,计算机可读)媒体包含机器(例如,计算机)可读存储媒体,如只读存储器(“ROM”)、随机存取存储器(“RAM”)、磁盘存储媒体、光学存储媒体、快闪存储器组件等。
在前述说明书中,已参考其特定实例实施例描述了本公开的实施例。将显而易见的是,可在不脱离如所附权利要求书中阐述的本公开的实施例的更广精神和范围的情况下对本公开进行各种修改。因此,应在说明性意义上而非限制性意义上看待说明书和图式。
Claims (20)
1.一种方法,其包括:
通过处理装置执行媒体管理操作以将数据从高速缓存存储器的源块写入到具有比所述高速缓存存储器更高的数据密度的存储器子***的存储区域的目的地块的页集合;
产生识别对应于所述高速缓存存储器的所述源块的页计数的第一数据结构的条目;
确定所述数据被写入到所述存储区域的所述目的地块的所述页集合;
更新所述条目以识别对应于所述源块的减小页计数,其中当所述减小页计数满足条件时,从所述源块擦除所述数据;和
更新包括将逻辑块映射到所述高速缓存存储器的所述源块的信息的第二数据结构的第二条目。
2.根据权利要求1所述的方法,其中所述第一数据结构包括源块列表,所述源块列表包括识别用于作为所述媒体管理操作的部分来存储待写入到一或多个目的地块的主机写入数据的多个源块的信息。
3.根据权利要求1所述的方法,其中所述第二数据结构包括逻辑到物理L2P块地址映射,所述逻辑到物理块地址映射包括将所述逻辑块地址映射到所述高速缓存存储器的所述源块的所述信息。
4.根据权利要求1所述的方法,其进一步包括:
识别与所述存储区域的所述目的地块相关联的断电事件;和
使用存储于所述源块中的所述数据来执行数据恢复操作以完成所述写入到所述目的地块。
5.根据权利要求1所述的方法,其中所述存储区域的所述目的地块的所述页集合包括对应于所述存储器子***的字线的多个页。
6.根据权利要求1所述的方法,其进一步包括:
确定所述减小页计数满足所述条件,其中当所述减小页计数等于零时,满足所述条件;和
从所述源块擦除所述数据。
7.根据权利要求1所述的方法,其中更新所述第二数据结构的所述第二条目包括用对不同源块的更新映射来替换对所述源块的所述映射。
8.一种包括指令的非暂时性计算机可读媒体,所述指令在由处理装置执行时使所述处理装置执行包括以下的操作:
通过处理装置执行媒体管理操作以将数据从高速缓存存储器的源块写入到具有比所述高速缓存存储器更高的数据密度的存储器子***的存储区域的目的地块的页集合;
确定所述数据被写入到所述存储区域的所述目的地块的所述页集合;和
从所述源块擦除所述数据。
9.根据权利要求8所述的非暂时性计算机可读媒体,其中所述页集合包括对应于所述目的地块的字线的一或多个下部页、上部页和额外页。
10.根据权利要求8所述的非暂时性计算机可读媒体,所述操作进一步包括:
响应于确定所述数据被写入到所述目的地块的所述页集合,从包含逻辑块与所述源块之间的映射的数据结构擦除识别所述源块的信息。
11.根据权利要求8所述的非暂时性计算机可读媒体,所述操作进一步包括:
在从所述源块擦除所述数据之前,识别与所述存储区域的所述目的地块相关联的断电事件;和
使用存储于所述源块中的所述数据来执行数据恢复操作以完成所述写入到所述目的地块。
12.根据权利要求8所述的非暂时性计算机可读媒体,所述操作进一步包括:
减小与所述源块相关联的页计数值以产生减小页计数值;和
确定所述减小页计数值满足条件,其中当所述减小页计数等于零时,满足所述条件。
13.根据权利要求8所述的非暂时性计算机可读媒体,所述操作进一步包括:
管理源块列表的多个条目,所述源块列表包括识别用于作为所述媒体管理操作的部分来存储待写入到一或多个目的地块的主机写入数据的多个源块的信息。
14.一种***,其包括:
存储器装置;和
处理装置,其以操作方式与所述存储器装置耦合以执行包括以下的操作:
接收将数据编程到所述存储器装置的写入请求;
产生数据结构的中间条目,所述中间条目包含识别与对应于所述写入请求的中间写入操作相关联的写入缓冲器的指针;
接收从所述存储器装置读取所述数据的读取请求;
执行对所述数据结构的查找操作以识别所述中间条目;
使用所述指针来定位与所述中间写入操作相关联的所述写入缓冲器;
将所述写入缓冲器复制到与所述读取请求相关联的读取缓冲器;和
使用所述读取缓冲器来执行所述读取请求。
15.根据权利要求14所述的***,其中所述第一数据结构包括源块列表,所述源块列表包括识别用于作为媒体管理操作的部分来存储待写入到一或多个目的地块的主机写入数据的多个源块的信息。
16.根据权利要求14所述的***,其中所述第二数据结构包括逻辑到物理L2P块地址映射,所述逻辑到物理块地址映射包括将所述逻辑块地址映射到所述高速缓存存储器的所述源块的所述信息。
17.根据权利要求14所述的***,所述操作进一步包括:
识别与所述存储区域的所述目的地块相关联的断电事件;和
使用存储于所述源块中的所述数据来执行数据恢复操作以完成所述写入到所述目的地块。
18.根据权利要求14所述的***,其中所述存储区域的所述目的地块的所述页集合包括对应于所述存储器子***的字线的多个页。
19.根据权利要求14所述的***,所述操作进一步包括:
确定所述减小页计数满足所述条件,其中当所述减小页计数等于零时,满足所述条件;和
从所述源块擦除所述数据。
20.根据权利要求14所述的***,其中更新所述第二数据结构的所述第二条目包括用对不同源块的更新映射来替换对所述源块的所述映射。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/726,527 US11256616B2 (en) | 2019-12-24 | 2019-12-24 | Power loss data protection in a memory sub-system |
US16/726,527 | 2019-12-24 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113031856A true CN113031856A (zh) | 2021-06-25 |
Family
ID=76437251
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011547542.2A Pending CN113031856A (zh) | 2019-12-24 | 2020-12-24 | 存储器子***中的断电数据保护 |
Country Status (2)
Country | Link |
---|---|
US (2) | US11256616B2 (zh) |
CN (1) | CN113031856A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114242125A (zh) * | 2021-11-15 | 2022-03-25 | 珠海妙存科技有限公司 | Nand flash数据的掉电保护方法、装置及介质 |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20210127026A (ko) * | 2020-04-13 | 2021-10-21 | 에스케이하이닉스 주식회사 | 저장 장치 및 그 동작 방법 |
US11210168B1 (en) * | 2020-06-25 | 2021-12-28 | Micron Technology, Inc. | Error handling optimization in memory sub-system mapping |
US12019899B2 (en) | 2022-03-03 | 2024-06-25 | Western Digital Technologies, Inc. | Data relocation with protection for open relocation destination blocks |
KR20230139153A (ko) * | 2022-03-25 | 2023-10-05 | 에스케이하이닉스 주식회사 | 메모리 컨트롤러를 포함하는 저장 장치 및 그 동작 방법 |
US20240020272A1 (en) * | 2022-07-15 | 2024-01-18 | Western Digital Technologies, Inc. | Logical-to-physical mapping for defragmentation of host file system in a data storage device |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
NL6714260A (zh) * | 1966-11-01 | 1968-05-02 | ||
CN1145684A (zh) * | 1995-03-17 | 1997-03-19 | 爱特梅尔股份有限公司 | 具有快擦写类存储器芯体的电可擦可编程只读存储器阵列 |
US20080235432A1 (en) * | 2007-03-19 | 2008-09-25 | A-Data Technology Co., Ltd. | Memory system having hybrid density memory and methods for wear-leveling management and file distribution management thereof |
US20110022778A1 (en) * | 2009-07-24 | 2011-01-27 | Lsi Corporation | Garbage Collection for Solid State Disks |
US20120173797A1 (en) * | 2010-12-31 | 2012-07-05 | Yang-Chih Shen | Method for performing block management/flash memory management, and associated memory device and controller thereof |
US20140108703A1 (en) * | 2010-03-22 | 2014-04-17 | Lsi Corporation | Scalable Data Structures for Control and Management of Non-Volatile Storage |
US20140208005A1 (en) * | 2013-01-22 | 2014-07-24 | Lsi Corporation | System, Method and Computer-Readable Medium for Providing Selective Protection and Endurance Improvements in Flash-Based Cache |
US20160342509A1 (en) * | 2015-05-22 | 2016-11-24 | Sandisk Enterprise Ip Llc | Hierarchical FTL Mapping Optimized for Workload |
US20190108888A1 (en) * | 2017-10-06 | 2019-04-11 | Western Digital Technologies, Inc. | Method and system for a storage (ssd) drive-level failure and health prediction leveraging machine learning on internal parametric data |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10943651B2 (en) * | 2018-08-03 | 2021-03-09 | Toshiba Memory Corporation | Semiconductor memory device, memory system, and write method |
US10733098B2 (en) * | 2018-12-31 | 2020-08-04 | Western Digital Technologies, Inc. | Incomplete write group journal |
-
2019
- 2019-12-24 US US16/726,527 patent/US11256616B2/en active Active
-
2020
- 2020-12-24 CN CN202011547542.2A patent/CN113031856A/zh active Pending
-
2022
- 2022-01-20 US US17/579,966 patent/US11693768B2/en active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
NL6714260A (zh) * | 1966-11-01 | 1968-05-02 | ||
CN1145684A (zh) * | 1995-03-17 | 1997-03-19 | 爱特梅尔股份有限公司 | 具有快擦写类存储器芯体的电可擦可编程只读存储器阵列 |
US20080235432A1 (en) * | 2007-03-19 | 2008-09-25 | A-Data Technology Co., Ltd. | Memory system having hybrid density memory and methods for wear-leveling management and file distribution management thereof |
US20110022778A1 (en) * | 2009-07-24 | 2011-01-27 | Lsi Corporation | Garbage Collection for Solid State Disks |
US20140108703A1 (en) * | 2010-03-22 | 2014-04-17 | Lsi Corporation | Scalable Data Structures for Control and Management of Non-Volatile Storage |
US20120173797A1 (en) * | 2010-12-31 | 2012-07-05 | Yang-Chih Shen | Method for performing block management/flash memory management, and associated memory device and controller thereof |
US20140208005A1 (en) * | 2013-01-22 | 2014-07-24 | Lsi Corporation | System, Method and Computer-Readable Medium for Providing Selective Protection and Endurance Improvements in Flash-Based Cache |
US20160342509A1 (en) * | 2015-05-22 | 2016-11-24 | Sandisk Enterprise Ip Llc | Hierarchical FTL Mapping Optimized for Workload |
US20190108888A1 (en) * | 2017-10-06 | 2019-04-11 | Western Digital Technologies, Inc. | Method and system for a storage (ssd) drive-level failure and health prediction leveraging machine learning on internal parametric data |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114242125A (zh) * | 2021-11-15 | 2022-03-25 | 珠海妙存科技有限公司 | Nand flash数据的掉电保护方法、装置及介质 |
Also Published As
Publication number | Publication date |
---|---|
US20210191853A1 (en) | 2021-06-24 |
US11256616B2 (en) | 2022-02-22 |
US20220147444A1 (en) | 2022-05-12 |
US11693768B2 (en) | 2023-07-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11693768B2 (en) | Power loss data protection in a memory sub-system | |
CN114730300A (zh) | 对区命名空间存储器的增强型文件***支持 | |
CN113010449A (zh) | 存储器子***中命令的有效处理 | |
US20220300195A1 (en) | Supporting multiple active regions in memory devices | |
CN113035262A (zh) | 存储器子***中奇偶校验数据的管理 | |
CN115605852A (zh) | 在主机存储器缓冲区中存储转换层元数据 | |
CN113127254A (zh) | 存储器子***中多平面奇偶校验数据的存储管理 | |
CN114942893A (zh) | 物理存储器位置的反转刷新 | |
US11373729B2 (en) | Grown bad block management in a memory sub-system | |
KR20220114078A (ko) | 캐시의 데이터 블록의 기록 모드 변경을 기반으로 한 미디어 관리 동작 수행 | |
CN113093990A (zh) | 存储器子***处的数据块切换 | |
CN114942858B (zh) | 基于条目未中的主机***通知 | |
US11698867B2 (en) | Using P2L mapping table to manage move operation | |
US11714722B2 (en) | Power loss recovery for memory devices | |
CN112860182B (zh) | 用于写回合并的位屏蔽有效扇区 | |
CN115705159A (zh) | 存储器子***中双字的智能交换和有效编码 | |
CN115048042A (zh) | 启用针对持久性存储器的存储器存取事务 | |
CN112912834A (zh) | 存取单元和管理片段存储器操作 | |
CN114077404B (zh) | 使存储器单元与主机***解除关联 | |
US11922011B2 (en) | Virtual management unit scheme for two-pass programming in a memory sub-system | |
US11698856B2 (en) | Maintaining sequentiality for media management of a memory sub-system | |
US11934685B2 (en) | Performing memory access operations based on quad-level cell to single-level cell mapping table | |
US11221949B2 (en) | Multi state purgatory for media management for a memory subsystem | |
US20240118971A1 (en) | Temporary parity buffer allocation for zones in a parity group | |
US20220035747A1 (en) | Write requests with partial translation units |
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 |