CN109032958B - 用于在控制同步操作期间读取数据的方法和设备 - Google Patents
用于在控制同步操作期间读取数据的方法和设备 Download PDFInfo
- Publication number
- CN109032958B CN109032958B CN201810446961.3A CN201810446961A CN109032958B CN 109032958 B CN109032958 B CN 109032958B CN 201810446961 A CN201810446961 A CN 201810446961A CN 109032958 B CN109032958 B CN 109032958B
- Authority
- CN
- China
- Prior art keywords
- control
- read request
- volatile memory
- overlap range
- address
- 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
Images
Classifications
-
- 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
- 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
- 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/10—Address translation
-
- 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/10—Address translation
- G06F12/1009—Address translation using page tables, e.g. page table structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0611—Improving I/O performance in relation to response time
-
- 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/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/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
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
-
- 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/1016—Performance improvement
- G06F2212/1024—Latency reduction
-
- 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/65—Details of virtual memory and virtual address translation
- G06F2212/657—Virtual address space management
-
- 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
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)
- Computer Security & Cryptography (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Memory System (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
公开了用于在数据储存装置上的控制同步操作期间优化读取操作的方法和设备。数据储存装置含有用于将存储器地址映射到非易失性存储器的管理表。控制同步操作将管理表复制到非易失性存储器。控制同步操作是非阻塞的—同步操作允许读取和写入操作与复制或更新管理表并行。在控制同步操作期间,读取操作通过CUQ和重叠范围表进行优化。CUQ可以充当暂时管理表,同时还含有被合并到管理表的更新。通过识别然后映射驻留在CUQ内的条目,重叠范围表用于允许跳过CUQ内的搜索。
Description
相关申请的交叉引用
本申请要求于2017年6月12日提交的美国临时专利申请No.62/518,255和于2018年4月9日提交的美国专利申请No.15/949,715的权益,其通过引用并入本文。
技术领域
本公开的实现方式一般涉及数据储存装置。
背景技术
数据储存装置使用户能够储存和取回数据。数据储存装置的示例包含易失性存储器装置和非易失性存储器装置。非易失性存储器装置在断电事件之后保留数据,并且易失性存储器装置在断电事件之后丢失数据。
数据储存装置可以维护与所储存的数据相关联的控制信息。控制信息可以是用于将逻辑地址映射到非易失性存储器中的物理地址的管理表。当将映射表写入可以称为控制同步的过程中的非易失性存储器时,可能会禁止对这些表的进一步更新,以防止将新的更新提前储存到非易失性存储器中。因此,有些系统在控制同步阶段不处理新的写入/读取请求。允许在控制同步期间处理新的写入/读取请求的系统可以选择在控制同步期间将对映射表的新的更新暂时地储存在用作其它映射表的扩展的控制更新队列(CUQ)内。当在控制同步期间使用CUQ时,当读取请求到达时,这样的系统将需要扫描CUQ并且首先寻找近期的更新。这种扫描可能低效,并且对装置性能产生负面影响。
因而,需要在CUQ不为空的情况下进行读取操作的有效手段。
发明内容
公开了用于在数据储存装置上的控制同步操作期间优化读取操作的方法和设备。数据储存装置含有用于将存储器地址映射到非易失性存储器的管理表。控制同步操作将管理表复制到非易失性存储器。控制同步操作是非阻塞的─同步操作允许读取和写入操作与复制或更新管理表并行。在控制同步操作期间,通过CUQ和重叠范围表优化读取操作。CUQ可以充当暂时管理表,同时还含有合并到管理表的更新。重叠范围表通过识别近期访问的地址来优化CUQ的搜索。
在一个实现方式中,在包含闪存转换层(FTL)和一个或多个管理表的耦合到非易失性存储器的控制器中的方法包括:维护CUQ和包括近期对非易失性存储器的访问信息的重叠范围表;在更新非易失性存储器中的一个或多个管理表期间接收读取请求;并且在更新一个或多个管理表期间使用重叠范围表和CUQ从非易失性存储器读取数据。
在另一个实现方式中,系统包括:包含FTL和一个或多个管理表的非易失性存储器;以及耦合到易失性存储器的至少一个处理器,至少一个处理器配置为:维护包括对非易失性存储器的近期访问信息的重叠范围表和CUQ;在将一个或多个管理表更新到非易失性存储器期间,接收读取请求;并且在由FTL更新一个或多个管理表期间,使用重叠范围表和CUQ从非易失性存储器读取数据。
在另一个实现方式中,公开了包含指令的非暂时性计算机可读介质,非暂时性计算机可读介质包含指令,当该指令由具有包含FTL和一个或多个管理表的耦合到非易失性存储器的控制器的系统的处理单元执行时,导致该系统通过进行以下步骤在对管理表的更新期间有效地进行读取:维护包括对非易失性存储器的近期访问信息的重叠范围表和CUQ;在非阻塞控制同步期间在更新一个或多个管理表期间由FTL接收读取请求;并且在非阻塞控制同步期间在更新一个或多个管理表期间使用CUQ从非易失性存储器读取数据。
在另一个实现方式中,公开了一种装置,其包括:非易失性存储器装置;用于映射耦合到非易失性存储器的物理地址的构件;在非阻塞控制同步期间在更新用于映射物理地址的构件期间接收读取请求的构件;以及在非阻塞控制同步期间在更新用于映射物理地址的构件期间使用用于映射物理地址的暂时的构件来从非易失性存储器读取数据的构件。
系统、方法和指令的实现方式优化了在控制同步操作期间的读取延时,因为它们采用了代理管理表(诸如CUQ)。重叠范围表避免了代理管理表的延长(prolonged)的搜索,当必要时将读取操作指向常规管理表。通过正确地管理具有控制更新的非易失性存储器上的新的映射,实现方式确保了使用最准确的闪存转换层映射。
附图说明
为了能够详细地理解本公开的上述特征的方式,可以通过参考实现方式来进行对以上简要概述的本公开的更具体的描述,其中一些实现方式在附图中示出。然而,应当注意,附图仅示出了本公开的典型实现方式,因此不被认为是对其范围的限制,因为本公开可以允许其它等同有效的实现方式。
图1示出了根据本文所描述的一个实现方式的包含配置为在非阻塞控制同步操作期间进行读取操作的数据储存装置的系统。
图2示出了根据本文所描述的一个实现方式的在非阻塞控制同步操作期间执行读取操作的方法。
图3示出了根据本文所描述的一个实现方式在非阻塞控制同步操作期间执行读取操作的另一种方法。
图4示出了根据本文所描述的一个实现方式作为在两个控制同步操作期间的时间的函数的CUQ的内容的图表。
图5示出了根据本文所描述的一个实现方式的用于从CUQ移除控制更新的方法。
图6示出了根据本文所描述的一个实现方式的用于从CUQ移除控制更新的另一种方法。
在可能的情况下,使用相同的附图标记来标明图中共同的元件。可以预期的是,在一个实现方式中所公开的元件可以在其它实现方式中被有益地利用,而没有特定的叙述。
具体实施方式
在下文中,参考本公开的实现方式。然而,应当理解,本公开不限于所描述的实现方式。相反,无论是否涉及不同的实现方式,以下特征和元素的任何组合都可以预期为实现和实践本公开。此外,虽然本公开的实现方式可以实现超过其它可能的解决方案和现有技术的优点,但是通过给定的实现方式是否实现特定的优点不是对本公开的限制。因而,以下方面、特征、实现方式和优点仅仅是说明性的,并且除非在权利要求中明确叙述,否则不被认为是所附权利要求的元素或限制。同样地,对“本公开”的引用不应被解释为本文所公开的任何发明主题的概括,并且除非在权利要求中明确地叙述,否则不应被认为是所附的权利要求的元素或限制。
公开了用于在数据储存装置上的控制同步操作期间优化读取操作的方法和设备。数据储存装置含有用于将存储器地址映射到非易失性存储器的管理表。控制同步操作将管理表复制到非易失性存储器。控制同步操作是非阻塞的─同步操作允许读取和写入操作与复制或更新管理表并行。在控制同步操作期间,通过CUQ和重叠范围表优化读取操作。CUQ可以充当暂时管理表,同时还含有合并到管理表的更新。重叠范围表通过识别近期访问的地址来优化CUQ的搜索。
在描述中,共同的或类似的特征可以由共同的附图标记标明。如本文所使用的,“示例性”可以指示示例、实现方式和/或方面,并且不应被解释为限制或者指示优选或者优选实现方式。
图1示出了根据本文所描述的一个实现方式的包含配置为在非阻塞控制同步操作期间进行读取操作的数据储存装置的系统100。系统100包含通信地耦合到装置180(诸如主机装置或访问装置)的数据储存装置102。在至少一个实现方式中,数据储存装置102包含非易失性存储器104和控制器130。控制器130经由存储器接口132通信地耦合到非易失性存储器104。
非易失性存储器104包含至少一个存储器裸芯,诸如第一存储器裸芯106和第二存储器裸芯108。第一存储器裸芯106含有储存元件的非易失性阵列。非易失性存储器104可以包含闪速存储器或电阻式存储器。非易失性存储器104可以具有平面或三维存储器配置。
控制器130包含通信地耦合到装置180的装置接口170。控制器130包含随机存取存储器140。在至少一个实现方式中,随机存取存储器140包含闪存转换层(FTL)142。FTL 142包含管理表144、重叠范围表150和CUQ160。
装置接口170能够在控制同步操作期间经由装置180接收读取请求182。读取请求182含有与储存在非易失性存储器104中的数据相关联的至少一个读取地址值184。在至少一个实现方式中,FTL 142配置为使用由读取请求182提供的读取地址值184来进行地址转换。在至少一个实现方式中,读取地址值184转换为与非易失性存储器104上的数据相关联的物理地址。存储器接口132配置为基于读取地址值184从非易失性存储器104读取数据。在至少一个实现方式中,控制器130经由存储器接口132和装置接口170将数据从非易失性存储器104返回到主机180。
管理表144含有非易失性存储器104中的储存元件的物理地址。在至少一个实现方式中,管理表144含有映射到或链接到非易失性存储器104中的储存元件的物理块地址的逻辑块地址。在至少一个实现方式中,管理表144将读取地址值184映射到非易失性存储器104中的物理地址。
重叠范围表150列出并识别位于CUQ 160中的至少一个地址值或特性。在至少一个实现方式中,至少一个地址值或特性链接到非易失性存储器104中的储存元件。储存元件可以是储存元件的物理区域或逻辑区域。储存元件的物理区域的示例包含块、扇区或字线。储存元件的逻辑区域的示例包含逻辑块地址。在至少一个实现方式中,重叠范围表150列出地址值位于CUQ 160中的储存元件的区域。在至少一个实现方式中,需要被更新的储存元件包含近期访问的储存元件。例如,近期访问的储存元件可以表示自从上次控制同步操作以来所访问的储存元件。在至少一个实现方式中,重叠范围表先前被更新以包含读取地址值184。该至少一个地址值或特性可以是逻辑地址。该至少一个值或特性有利于快速地识别管理表144中尚未更新的一个或多个储存元件。
CUQ 160储存管理表144的控制更新。CUQ 160是FTL 142中的管理表144的附加队列(side queue)。在至少一个实现方式中,管理表144的控制更新包含到非易失性存储器104的逻辑-物理映射。在至少一个实现方式中,CUQ 160含有与非易失性存储器104中的储存元件的物理地址匹配的地址(诸如,逻辑块地址)的值或特性。在至少一个实现方式中,CUQ 160基于读取地址值184指向非易失性存储器104中的物理地址。在至少一个实现方式中,CUQ 160能够进行与FTL 142中的管理表144相同的一组功能。这些功能可能包含逻辑块映射、均匀损耗均衡、垃圾收集和写入放大。
CUQ 160配置为在控制同步操作期间充当暂时或代理管理表。控制同步操作可以将管理表144复制到非易失性存储器104中,占用(tie up)管理表144的带宽。如果在预定的时间段中管理表144没有被更新在非易失性存储器104中,则也可以周期性地触发控制同步操作。在至少一个实现方式中,在将一组块分配给新的传入装置数据之后进行控制同步操作。
在控制同步操作期间,CUQ 160接收管理表144的新的控制更新。在控制同步操作之后,控制器130通过复制或重新分配控制更新来将控制更新合并到管理表144中。复制或重新分配控制更新包含物理地址的映射。在另一个实现方式中,CUQ 160自动地、逐步地将其所有值更新到管理表144,或者在一段时间内一次更新一个值。在至少一个实现方式中,CUQ 160包含根据非易失性存储器104中的近期访问的地址值和映射。近期访问可以由装置180请求。在另一个实现方式中,当达到预定阈值时,CUQ 160自动地更新管理表144。
CUQ 160可以储存在各种类型的存储器中,包含非易失性存储器104。CUQ 160可以被周期性地更新到非易失性存储器104。同样地,重叠范围表150可以被周期性地更新到非易失性存储器104。在另一个实现方式中,重叠范围表150和CUQ 160可以正好先于非阻塞控制同步被自动地更新到非易失性存储器104。
图2示出了根据本文所描述的一个实现方式的在非阻塞控制同步操作期间执行读取操作的方法200。在步骤210中,控制器130在数据储存装置102上启动控制同步操作。在步骤215中,控制器130维护CUQ和包括到非易失性存储器104的近期访问信息的重叠范围表。在步骤220中,装置180请求来自非易失性存储器104的读取操作。读取操作包含具有读取地址值184的读取请求182。在非阻塞控制同步操作期间,控制器130可以将读取请求182指向CUQ 160。
在步骤230中,控制器使用由CUQ 160提供的物理地址来执行读取操作,并且从非易失性存储器104取回数据。在一个实现方式中,CUQ 160作为管理表144的代理管理表。该代理(又名,CUQ 160)含有地址值到非易失性存储器104中的物理地址位置的映射。在至少一个实现方式中,CUQ 160保持读取地址值184到其物理地址的映射。如果在CUQ 160中没有找到读取操作的地址值,则控制器130使用管理表144来提供物理地址。在步骤240中,将对应于读取操作的数据返回到装置180。
在没有实现方法200的情况下,因为管理表144被控制同步操作占用,所以读取请求184可能被延迟。实现方法200优化了在控制同步操作期间的读取延时,因为它们采用了代理管理表(诸如CUQ 160)。实现方法200还确保使用最新的闪存转换层映射。也就是说,在使用接收控制更新的管理表144时可能出现读取操作错误。
图3示出了根据本文所描述的一个实现方式的在非阻塞控制同步操作期间执行读取操作的另一个方法300。在步骤310中,控制器130在数据储存装置102上启动控制同步操作。在步骤315中,控制器130维护CUQ和包含到非易失性存储器104的近期访问信息的重叠范围表。在步骤320中,装置180请求来自非易失性存储器104的读取操作。读取操作包含具有读取地址值184的读取请求182。在非阻塞控制同步操作期间,控制器130可以将读取请求182指向CUQ 160。
在步骤330中,控制器130检查重叠范围表150。重叠范围表150包括CUQ中的地址值的列表。重叠范围表150可以含有读取地址值184。在步骤340中,控制器130确定在重叠范围表150中是否找到了所请求的地址值。在步骤350中,如果在重叠范围表150中找到了读取地址值184,则控制器130在CUQ 160中定位对应于读取地址值184的物理地址。
在步骤360中,控制器130使用由CUQ 160提供的物理地址来取回非易失性存储器104中的数据。在步骤370中,控制器将对应于读取请求182的数据返回到装置180。
替代地,在至少一个实现方式中,控制器130在重叠范围表150中未找到所请求的地址值,诸如读取地址值184。然后,在步骤380中,控制器130经由常规管理表144定位对应于读取地址值184的物理地址。
在步骤390中,控制器130使用由常规管理表144提供的物理地址来取回非易失性存储器104中的数据。在步骤370中,控制器将对应于读取请求182的数据返回到装置180。
如果没有实现方法300,因为管理表144被控制同步操作占用,所以读取请求182可能被延迟。实现方法300优化了在控制同步操作期间的读取延时,因为它们采用了重叠范围表150。控制器130首先查看重叠范围表150以确定是否列出了读取地址值184,而不是对于每个转换层映射搜索CUQ160。如果CUQ 160满了或接近满,则通过使用重叠范围表150来避免冗长的搜索。因而,优化了正确映射的延长的读取延时。
图4示出了根据本文所描述的一个实现方式作为在两个控制同步操作期间的时间的函数的CUQ的内容的图表。在控制同步操作完成后,CUQ 160将其控制更新清除。移除CUQ值可以自动地、逐步地发生,或者在一段时间内一次一个值地发生。清除控制更新维护管理表144和新控制更新的准确性。通过减少要搜索的条目的数量,清除更新也会提高性能。
在时间410,控制同步操作启动,导致在CUQ 160中累积控制更新。在时间420或者对于第二控制同步操作在时间450,将管理表160写入非易失性存储器104。在此期间,CUQ160可能会继续积累控制更新。
在时间430,控制器130接收到管理表160被认为是安全的并且被储存到非易失性存储器104的指示。在此时开始清除控制更新。在至少一个实现方式中,一旦接收到成功的控制同步操作的指示,就可以自动清除控制更新。在至少一个替代实现方式中,可以先于对管理表144的附加的控制同步,清除控制更新。
在至少一个实现方式中,通过在CUQ 160中放置至少一个标记来指示对非易失性存储器104中的管理表144的部分更新,清除控制更新逐步地发生。标记指示尚未被清除的条目,并且这些条目是来自先前控制同步操作的剩余的条目。例如,如果在时间440之前没有移除,则在时间410或时间420输入的控制更新条目可以被标记为在时间460之后被移除。在随后的控制更新操作期间,将所标记的控制更新更新到管理表160。
控制更新条目可以在时间430与时间440之间的清除过程期间进入CUQ160。在至少一个实现方式中,对于每个新的传入控制更新条目,将清除至少一个控制更新条目。控制更新的逐渐移除防止CUQ 160在移除过程期间扩展。
图5示出了根据本文所描述的一个实现方式的用于从CUQ移除控制更新的方法500。在步骤510中,第一控制同步操作在含有至少一个控制更新的CUQ 160上开始。在步骤520中,控制器160接收管理表144已经被储存在非易失性存储器104中的指示。在步骤530中,控制器130开始CUQ 160中的控制更新的清除过程。在步骤540中,CUQ 160中的控制更新被自动地清除。在至少一个实现方式中,一旦接收到成功的控制同步操作的指示,就可以自动地清除控制更新。在至少一个替代实现方式中,控制更新可以先于对管理表144的附加控制同步被自动地清除。在步骤550中,启动第二控制同步操作。
图6示出了根据本文所描述的一个实现方式的用于从CUQ移除控制更新的另一种方法600。在步骤610中,第一控制同步操作在含有至少一个控制更新的CUQ 160上开始。在步骤620中,控制器160接收管理表144已经被储存在非易失性存储器104中的指示。在步骤630中,控制器130开始CUQ 160中的控制更新的清除过程。在步骤640中,在CUQ被完全清除之前开始第二控制同步操作。也就是说,当启动第二控制同步操作时,至少一个控制更新剩余在CUQ中。在步骤650中,将标记放置在至少一个CUQ条目上。该标记指示在随后的控制同步操作期间将移除至少一个控制更新条目。在步骤660中,在随后的控制同步操作之前,移除所标记的至少一个控制更新条目。
如本文所公开的,在包含闪存转换层(FTL)和一个或多个管理表的耦合到非易失性存储器的控制器中的方法包括:维护CUQ和包括对非易失性存储器的近期访问信息的重叠范围表;在更新非易失性存储器中的一个或多个管理表期间接收读取请求;并且在更新一个或多个管理表期间使用重叠范围表和CUQ从非易失性存储器读取数据。更新非易失性存储器中的一个或多个管理表是非阻塞控制同步操作的部分。该方法还包括在非阻塞控制同步操作之后并且在更新一个或多个管理表中的这些条目之后空出(evacuate)CUQ。该方法还包括进行闪存管理功能。闪存管理功能包括逻辑到物理地址映射、均匀损耗均衡、垃圾收集和写入放大。该方法还包括在重叠范围表中识别读取请求的地址值;以及以下中的一个:响应于在重叠范围表中识别读取请求的地址值,在CUQ中定位读取请求的物理地址;或者在重叠范围表中未识别该地址的情况下,从其它存储器管理表中定位读取请求的物理地址。根据由FTL按照时间顺序排列的最新更新,CUQ包含逻辑到物理映射对的列表。重叠范围表包含对非易失性存储器的近期访问的地址值的列表,允许有效的LBA范围搜索。重叠范围表包含在CUQ中存在的条目的指示标志,并且可选地还包含指向相关CUQ条目的指针。
另外地,本文中所公开的系统包括:包含FTL和一个或多个管理表的非易失性存储器;以及耦合到易失性存储器的至少一个处理器,至少一个处理器配置为:维护包括对非易失性存储器的近期访问信息的重叠范围表和CUQ;在将一个或多个管理表更新到非易失性存储器期间接收读取请求;并且在由FTL更新一个或多个管理表期间,使用重叠范围表和CUQ从非易失性存储器读取数据。至少一个实体还被配置为在重叠范围表中识别读取请求的地址值,其中响应于在重叠范围表中识别读取请求的地址,至少一个实体试图定位在CUQ中的读取请求的物理地址;并且在未在重叠范围表中识别该地址或未在CUQ中找到该地址的情况下,从其它存储器管理表中定位读取请求的物理地址。该至少一个实体包括处理器或硬件块。至少一个实体还配置为在重叠范围表中识别读取请求的地址值,其中响应于在重叠范围表中识别读取请求的地址值,不同的实体尝试在CUQ中定位读取请求的物理地址;并且在未在重叠范围表中识别该地址或未在CUQ中找到该地址的情况下,从其它存储器管理表定位读取请求的物理地址。该至少一个实体包括处理器或硬件块。
还公开了包含指令的非暂时性计算机可读介质,当该指令由具有包含FTL和一个或多个管理表的耦合到非易失性存储器的控制器的系统的处理单元执行时,该指令使得系统通过执行以下步骤来有效地在对管理表的更新期间进行读取:维护包括对非易失性存储器的近期访问信息的重叠范围表和CUQ;在非阻塞控制同步期间在更新一个或多个管理表期间由FTL接收读取请求;并且在非阻塞控制同步期间在更新一个或多个管理表期间使用CUQ从非易失性存储器读取数据。系统还进行以下步骤:在重叠范围表中识别读取请求的地址值;以及以下中的一个:响应于在重叠范围表中识别读取请求的地址值,在CUQ中尝试定位读取请求的物理地址;或者在重叠范围表中未标识该地址或未在CUQ中找到该条目的情况下,从其它存储器管理表中定位读取请求的物理地址。
另外地,装置,包括:非易失性存储器装置;用于映射耦合到非易失性存储器的物理地址的构件;在非阻塞控制同步期间在更新用于映射物理地址的构件期间接收读取请求的构件;以及在非阻塞控制同步期间在更新用于映射物理地址的构件期间使用用于映射物理地址的暂时的构件来从非易失性存储器读取数据的构件。该装置还包括识别用于在重叠范围表中识别读取请求的物理地址的构件的构件;以及以下中的一个:响应于识别用于在重叠范围表中识别读取请求的物理地址的构件,在用于映射物理地址的暂时的构件中定位读取请求的物理地址的构件;或者在重叠范围表中未识别该地址或在CUQ中未找到该地址的情况下,定位来自其它存储器管理表的读取请求的物理地址。
如本文所公开的,包含耦合到非易失性存储器的管理表的控制器中的方法包括:在更新管理表期间在非易失性存储器中接收读取请求;并且在更新管理表期间使用CUQ从非易失性存储器读取数据。该方法还包括在重叠范围表中识别读取请求的地址值;并且响应于在重叠范围表中识别读取请求的地址值,在CUQ中定位读取请求的物理地址。在该方法中,CUQ能够进行由管理表进行的一组功能。此外,该组功能包含逻辑块映射、均匀损耗均衡、垃圾收集和写入放大。CUQ包含根据在非易失性存储器中的近期访问的第二地址值。重叠范围表包含根据非易失性存储器中的近期访问的读取请求的地址值。重叠范围表列出了地址值所在的储存元件。储存元件是储存元件的物理或逻辑区域。CUQ是闪存转换层中的管理表的附加队列。当达到预定阈值时,CUQ更新管理表。CUQ具有储存在非易失性存储器中的副本。该方法还包括在确认更新管理表之后移除CUQ的条目。先于管理表的第二次更新,移除条目自动地发生。该条目被标记为在管理表的后续更新中移除。条目的标记指示没有先于更新管理表移除。一旦接收新的传入条目,至少将从CUQ中移除该条目。
还如在本文中所公开的,系统包括:包含管理表的非易失性存储器;至少一个处理器,其配置为:在将管理表更新到非易失性存储器期间,在非易失性存储器中接收读取请求;并且在更新管理表期间,使用CUQ从非易失性存储器读取数据。该系统还包含耦合到至少一个处理器的装置存储器。该至少一个处理器还配置为在重叠范围表中识别读取请求的地址值;并且响应于在重叠范围表中识别读取请求的地址值,在CUQ中定位读取请求的物理地址。
包含指令的非暂时性计算机可读介质,当该指令由具有包含耦合到非易失性存储器的管理表的控制器的系统的处理单元执行时,该指令使得系统通过进行以下步骤来有效地在对管理表的更新期间进行读取:在更新管理表期间接收在非易失性存储器中的读取请求;并且还公开了在更新管理表期间使用CUQ从非易失性存储器读取数据。控制器还使得在重叠范围表中识别读取请求的地址值;并且响应于在重叠范围表中识别读取请求的地址值,在CUQ中定位读取请求的物理地址。
还如在本文中所公开的,装置包括非易失性存储器装置;用于映射耦合到非易失性存储器的物理地址的构件;在更新用于映射物理地址的构件期间接收读取请求的构件;以及在更新用于映射物理地址的构件期间使用用于映射物理地址的暂时的构件来从非易失性存储器读取数据的构件。该装置还包含用于在重叠范围表中识别用于识别读取请求的物理地址的构件的构件;以及响应于识别用于在重叠范围表中识别读取请求的物理地址的构件,在用于映射物理地址的暂时的构件中定位读取请求的物理地址的构件。
系统和方法的实现方式优化了在控制同步操作期间的读取延时,因为它们采用代理管理表,诸如CUQ 160。重叠范围表避免了对代理管理表的延长的搜索,当必要时将读取操作指向常规管理表。系统和方法的实现方式还确保使用最新的闪存转换层映射。也就是说,在使用接收控制更新的管理表144时可能出现读取操作错误。
虽然前述内容指向本公开的实现方式,但是可以在不脱离本公开的基本范围的情况下设计本公开的其它和进一步的实现方式,并且其范围由随后的权利要求来确定。
Claims (31)
1.一种在包含闪存转换层FTL和一个或多个管理表的耦合到非易失性存储器的控制器中的方法,包括:
维护控制更新队列CUQ和包括对所述非易失性存储器的近期访问信息的重叠范围表;
接收读取请求并且检查所述非易失性存储器中的一个或多个管理表的更新是否正在进行;
如果正在进行所述一个或多个管理表的更新,则使用所述重叠范围表和所述控制更新队列从所述非易失性存储器读取数据;以及
响应于接收到所述一个或多个管理表的更新已经被储存到所述非易失性存储器的指示,清除控制更新。
2.如权利要求1所述的方法,其中所述非易失性存储器中的一个或多个管理表的更新是非阻塞控制同步操作的部分。
3.如权利要求2所述的方法,还包括在非阻塞控制同步操作之后并且在更新所述一个或多个管理表中的这些条目之后空出所述控制更新队列。
4.如权利要求3所述的方法,还包括进行闪存管理功能。
5.如权利要求4所述的方法,其中所述闪存管理功能包括逻辑到物理地址映射、均匀损耗均衡、垃圾收集和写入放大。
6.如权利要求1所述的方法,还包括:
在所述重叠范围表中识别所述读取请求的地址值;以及以下中的一个:
响应于在所述重叠范围表中识别所述读取请求的地址值,在所述控制更新队列中定位所述读取请求的物理地址;或者
在所述重叠范围表中未识别所述地址的情况下,从其它存储器管理表中定位所述读取请求的物理地址。
7.如权利要求6所述的方法,其中所述控制更新队列包含根据由所述FTL按时间顺序排列的近期更新的逻辑到物理映射对的列表。
8.如权利要求6所述的方法,其中所述重叠范围表包含对所述非易失性存储器的近期访问的地址值的列表,允许有效的LBA范围搜索。
9.如权利要求6所述的方法,其中所述重叠范围表包含指示标志,所述指示标志包含存在于所述控制更新队列中的条目,并且还包含对所述控制更新队列中的相关条目的指针。
10.如权利要求1所述的方法,其中在所述控制器将一个或多个管理表写入到闪存时,不更新所述表。
11.如权利要求10所述的方法,还包括将所述读取数据发送到主机装置。
12.一种用于在控制同步操作期间读取数据的系统,包括:
非易失性存储器;
FTL;
一个或多个管理表;以及
耦合到所述非易失性存储器的至少一个控制器,所述控制器配置为对于读取地址值检查重叠范围表,并且响应于接收到所述一个或多个管理表的更新已经被储存到所述非易失性存储器的指示,清除控制更新。
13.如权利要求12所述的系统,其中所述控制器配置为在更新一个或多个管理表时使用所述重叠范围表和控制更新队列来从所述非易失性存储器读取数据。
14.如权利要求13所述的系统,其中所述控制器配置为响应于接收读取请求而对于读取地址值检查所述重叠范围表。
15.如权利要求14所述的系统,其中所述控制器定位对应于所述读取地址值的物理地址,并且其中响应于在重叠表中找到逻辑地址,所述物理地址值在所述控制更新队列中。
16.如权利要求15所述的系统,其中所述控制器使用来自所述控制更新队列的物理地址来取回所述数据。
17.如权利要求16所述的系统,其中所述控制器配置为将所述数据返回到主机装置。
18.如权利要求12所述的系统,其中所述控制器还配置为在所述重叠范围表中识别读取请求的地址值,其中响应于在重叠范围表中识别所述读取请求的地址值,所述控制器尝试在控制更新队列中定位所述读取请求的物理地址;并且在未在所述重叠范围表中识别所述地址或未在所述控制更新队列中找到所述地址的情况下,从其它存储器管理表定位所述读取请求的物理地址。
19.一种用于在控制同步操作期间读取数据的系统,包括:
非易失性存储器;
FTL;
一个或多个管理表;
用于接收所述一个或多个管理表的更新已经储存在所述非易失性存储器中的指示的构件;以及
用于响应于接收到所述指示而清除控制更新的构件。
20.如权利要求19所述的系统,还包括用于自动地清除所述控制更新的构件。
21.如权利要求20所述的系统,还包括用于启动控制同步操作的构件。
22.一种用于在控制同步操作期间读取数据的装置,包括:
控制器,配置为:
识别重叠范围表中的读取请求的地址值;以及以下中的一个:
响应于在所述重叠范围表中识别所述读取请求的地址值,在控制更新队列中定位所述读取请求的物理地址;或者
在所述重叠范围表中未识别所述地址的情况下,从其它存储器管理表定位所述读取请求的物理地址;以及
响应于接收到一个或多个管理表的更新已经被储存到非易失性存储器的指示,清除控制更新。
23.如权利要求22所述的装置,其中所述控制器还配置为启动控制同步操作。
24.如权利要求23所述的装置,其中所述控制器还配置为在所述控制同步操作期间将映射表写入到非易失性存储器。
25.如权利要求23所述的装置,其中所述控制器配置为在控制所述同步操作期间不更新所述管理表。
26.如权利要求23所述的装置,其中所述控制同步操作以非阻塞方式进行,以便正在处理新的主机写入操作,并且需要储存对所述管理表的新的更新。
27.如权利要求23所述的装置,其中将在所述控制同步操作期间对所述管理表的新的更新储存在所述控制更新队列中,并且将匹配条目也添加到所述重叠范围表。
28.如权利要求22所述的装置,其中所述控制器还配置为在控制同步操作之后从所述控制更新队列清除数据。
29.如权利要求22所述的装置,其中所述控制器还配置为使用在所述控制更新队列中定位的所述物理地址,从非易失性存储器中取回所述读取请求的数据。
30.一种用于在控制同步操作期间读取数据的装置,包括:
非易失性存储器装置;
用于映射物理地址的构件;
用于在非阻塞控制同步期间在更新所述用于映射物理地址的构件期间接收读取请求的构件;
用于在所述非阻塞控制同步期间在更新所述用于映射物理地址的构件期间,使用用于映射物理地址的暂时的构件来从所述非易失性存储器读取数据的构件;以及
用于响应于接收到一个或多个管理表的更新已经被储存到所述非易失性存储器装置的指示,清除控制更新。
31.如权利要求30所述的装置,还包括:
用于识别用于在重叠范围表中识别所述读取请求的物理地址的构件的构件;以及以下中的一个:
用于响应于识别所述用于在重叠范围表中识别所述读取请求的物理地址的构件,在所述用于映射物理地址的暂时的构件中定位所述读取请求的物理地址的构件;或者
在所述重叠范围表中未标识用于识别所述读取请求的物理地址的构件或在所述用于映射物理地址的暂时的构件中未找到用于识别读取请求的物理地址的构件的情况下,用于从其它存储器管理表定位所述读取请求的物理地址的构件。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201762518255P | 2017-06-12 | 2017-06-12 | |
US62/518,255 | 2017-06-12 | ||
US15/949,036 | 2018-04-09 | ||
US15/949,036 US10732896B2 (en) | 2017-06-12 | 2018-04-09 | Method and system for reading data during control sync operations |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109032958A CN109032958A (zh) | 2018-12-18 |
CN109032958B true CN109032958B (zh) | 2023-07-11 |
Family
ID=64563455
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810446961.3A Active CN109032958B (zh) | 2017-06-12 | 2018-05-11 | 用于在控制同步操作期间读取数据的方法和设备 |
Country Status (2)
Country | Link |
---|---|
US (1) | US10732896B2 (zh) |
CN (1) | CN109032958B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10811112B2 (en) * | 2018-09-29 | 2020-10-20 | Western Digital Technologies, Inc. | Wear leveling with wear-based attack detection for non-volatile memory |
CN110347336B (zh) * | 2019-06-10 | 2020-07-10 | 华中科技大学 | 一种基于nvm与ssd混合存储结构的键值存储系统 |
US11042481B1 (en) * | 2019-12-19 | 2021-06-22 | Micron Technology, Inc. | Efficient processing of commands in a memory sub-system |
CN111158607B (zh) * | 2019-12-31 | 2023-11-17 | 潍柴动力股份有限公司 | 数据擦写操作的处理方法、系统、电子设备及存储介质 |
US20230280926A1 (en) * | 2022-03-03 | 2023-09-07 | Western Digital Technologies, Inc. | Data Relocation With Protection For Open Relocation Destination Blocks |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101965559A (zh) * | 2007-12-27 | 2011-02-02 | 普莱恩特技术股份有限公司 | 包括将处理器与内部存储器连接的交叉切换器的用于闪存的存储控制器 |
CN102169462A (zh) * | 2011-04-27 | 2011-08-31 | 中国科学院光电技术研究所 | 基于NAND Flash的数据记录方法与记录控制器 |
CN103197897A (zh) * | 2012-01-09 | 2013-07-10 | 三星电子株式会社 | 存储装置和非易失性存储器装置及其操作方法 |
CN105718206A (zh) * | 2014-12-03 | 2016-06-29 | 中国人民解放军国防科学技术大学 | 能够感知raid的闪存转换层及其实现方法 |
CN106802777A (zh) * | 2017-01-20 | 2017-06-06 | 杭州电子科技大学 | 一种用于固态存储设备的闪存转换层控制方法 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006126445A (ja) * | 2004-10-28 | 2006-05-18 | Matsushita Electric Ind Co Ltd | ナビゲーションシステム |
US7386655B2 (en) * | 2004-12-16 | 2008-06-10 | Sandisk Corporation | Non-volatile memory and method with improved indexing for scratch pad and update blocks |
CN100590608C (zh) * | 2005-05-23 | 2010-02-17 | 松下电器产业株式会社 | 存储器控制器及其控制方法、非易失性存储装置及系统 |
TW200805394A (en) * | 2006-07-07 | 2008-01-16 | Alcor Micro Corp | Memory storage device and the read/write method thereof |
WO2011090500A1 (en) * | 2010-01-19 | 2011-07-28 | Rether Networks Inc. | Random write optimization techniques for flash disks |
CN103026346B (zh) * | 2010-07-27 | 2016-01-20 | 国际商业机器公司 | 用于从固态存储器设备读取及写入数据的方法及存储系统 |
US20120317377A1 (en) * | 2011-06-09 | 2012-12-13 | Alexander Palay | Dual flash translation layer |
US20140059279A1 (en) * | 2012-08-27 | 2014-02-27 | Virginia Commonwealth University | SSD Lifetime Via Exploiting Content Locality |
US9817588B2 (en) * | 2015-04-10 | 2017-11-14 | Macronix International Co., Ltd. | Memory device and operating method of same |
US20170249257A1 (en) * | 2016-02-29 | 2017-08-31 | Itu Business Development A/S | Solid-state storage device flash translation layer |
US20180239532A1 (en) | 2017-02-23 | 2018-08-23 | Western Digital Technologies, Inc. | Techniques for performing a non-blocking control sync operation |
-
2018
- 2018-04-09 US US15/949,036 patent/US10732896B2/en active Active
- 2018-05-11 CN CN201810446961.3A patent/CN109032958B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101965559A (zh) * | 2007-12-27 | 2011-02-02 | 普莱恩特技术股份有限公司 | 包括将处理器与内部存储器连接的交叉切换器的用于闪存的存储控制器 |
CN102169462A (zh) * | 2011-04-27 | 2011-08-31 | 中国科学院光电技术研究所 | 基于NAND Flash的数据记录方法与记录控制器 |
CN103197897A (zh) * | 2012-01-09 | 2013-07-10 | 三星电子株式会社 | 存储装置和非易失性存储器装置及其操作方法 |
CN105718206A (zh) * | 2014-12-03 | 2016-06-29 | 中国人民解放军国防科学技术大学 | 能够感知raid的闪存转换层及其实现方法 |
CN106802777A (zh) * | 2017-01-20 | 2017-06-06 | 杭州电子科技大学 | 一种用于固态存储设备的闪存转换层控制方法 |
Also Published As
Publication number | Publication date |
---|---|
US20180357010A1 (en) | 2018-12-13 |
CN109032958A (zh) | 2018-12-18 |
US10732896B2 (en) | 2020-08-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109032958B (zh) | 用于在控制同步操作期间读取数据的方法和设备 | |
US8782327B1 (en) | System and method for managing execution of internal commands and host commands in a solid-state memory | |
US9329789B1 (en) | Methods and apparatus for efficiently operating on a storage device | |
US8838875B2 (en) | Systems, methods and computer program products for operating a data processing system in which a file delete command is sent to an external storage device for invalidating data thereon | |
US10579267B2 (en) | Memory controller and memory system | |
AU2015381014B2 (en) | Array controller, solid state disk, and method for controlling solid state disk to write data | |
JP2014179084A5 (zh) | ||
US8572309B2 (en) | Apparatus and method to protect metadata against unexpected power down | |
US8996791B2 (en) | Flash memory device, memory control device, memory control method, and storage system | |
DK3059679T3 (en) | CONTROL UNIT, FLASH MEMORY UNIT, PROCEDURE FOR IDENTIFICATION OF DATA BLOCK STABILITY, AND PROCEDURE FOR STORING DATA ON THE FLASH MEMORY UNIT | |
EP2816483A1 (en) | Information processing apparatus, control circuit, and control method | |
CN105917303B (zh) | 一种控制器、识别数据块稳定性的方法和存储系统 | |
US9122586B2 (en) | Physical-to-logical address map to speed up a recycle operation in a solid state drive | |
CN108073527B (zh) | 一种缓存替换的方法和设备 | |
WO2014120660A1 (en) | Methods and apparatus for storing data to a solid state storage device based on data classification | |
JP5868213B2 (ja) | キャッシュ制御装置、及びキャッシュ制御方法 | |
US20170160940A1 (en) | Data processing method and apparatus of solid state disk | |
CN107273306B (zh) | 一种固态硬盘的数据读取、数据写入方法及固态硬盘 | |
KR20170010810A (ko) | 플래시 메모리 내에 데이터를 판독/기록하기 위한 방법, 장치 및 사용자 장비 | |
CN105446664A (zh) | 一种对存储器进行文件存储方法和存储装置 | |
CN106257432B (zh) | 数据储存设备及其操作方法 | |
WO2017143972A1 (zh) | 数据处理方法及装置 | |
US20170199687A1 (en) | Memory system and control method | |
US20140108721A1 (en) | Data storage device and operating method thereof | |
US20210048948A1 (en) | Apparatus for Obsolete Mapping Counting in NAND-based Storage Devices |
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 |