CN115145468A - 获取地址空间属性的方法、数据备份方法及存储设备 - Google Patents
获取地址空间属性的方法、数据备份方法及存储设备 Download PDFInfo
- Publication number
- CN115145468A CN115145468A CN202110341520.9A CN202110341520A CN115145468A CN 115145468 A CN115145468 A CN 115145468A CN 202110341520 A CN202110341520 A CN 202110341520A CN 115145468 A CN115145468 A CN 115145468A
- Authority
- CN
- China
- Prior art keywords
- address space
- command
- data
- address
- read
- 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
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
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1448—Management of the data involved in backup or backup restore
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0647—Migration mechanisms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/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]
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)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
提供了获取地址空间属性的方法、数据备份方法及存储设备。其中,获取地址空间属性的方法,应用于主机,包括:向控制部件发送读地址空间属性命令,所述读地址空间属性命令用于读取一个地址或一段地址空间的至少一种属性;接收所述控制部件反馈的第一数据,所述第一数据对应于所述读地址空间属性命令所指示的至少一种属性。
Description
技术领域
本申请涉及存储技术,特别地,涉及获取地址空间属性的方法、数据备份方法及存储设备。
背景技术
图1展示了存储设备的框图。存储设备102同主机相耦合,用于为主机提供存储能力。主机同存储设备102之间可通过多种方式相耦合,耦合方式包括但不限于通过例如SATA(Serial Advanced Technology Attachment,串行高级技术附件)、SCSI(Small ComputerSystem Interface,小型计算机***接口)、SAS(Serial Attached SCSI,串行连接SCSI)、IDE(Integrated Drive Electronics,集成驱动器电子)、USB(Universal Serial Bus,通用串行总线)、PCIE(Peripheral Component Interconnect Express,PCIe,高速***组件互联)、NVMe(NVM Express,高速非易失存储)、以太网、光纤通道、无线通信网络等连接主机与存储设备102。主机可以是能够通过上述方式同存储设备相通信的信息处理设备,例如,个人计算机、平板电脑、服务器、便携式计算机、网络交换机、路由器、蜂窝电话、个人数字助理等。存储设备102包括接口103、控制部件104、一个或多个NVM芯片105以及DRAM(DynamicRandom Access Memory,动态随机访问存储器)110。
NAND闪存、相变存储器、FeRAM(Ferroelectric RAM,铁电存储器)、MRAM(MagneticRandom Access Memory,磁阻存储器)、RRAM(Resistive Random Access Memory,阻变存储器)、XPoint存储器等是常见的NVM。
接口103可适配于通过例如SATA、IDE、USB、PCIE、NVMe、SAS、以太网、光纤通道等方式与主机交换数据。
控制部件104用于控制在接口103、NVM芯片105以及DRAM 110之间的数据传输,还用于存储管理、主机逻辑地址到闪存物理地址映射、擦除均衡、坏块管理等。控制部件104可通过软件、硬件、固件或其组合的多种方式实现,例如,控制部件104可以是FPGA(Field-programmable gate array,现场可编程门阵列)、ASIC(Application SpecificIntegrated Circuit,应用专用集成电路)或者其组合的形式。控制部件104也可以包括处理器或者控制器,在处理器或控制器中执行软件来操纵控制部件104的硬件来处理IO(Input/Output)命令。控制部件104还可以耦合到DRAM 110,并可访问DRAM 110的数据。在DRAM可存储FTL表和/或缓存的IO命令的数据。
控制部件104包括闪存接口控制器(或称为介质接口控制器、闪存通道控制器),闪存接口控制器耦合到NVM芯片105,并以遵循NVM芯片105的接口协议的方式向NVM芯片105发出命令,以操作NVM芯片105,并接收从NVM芯片105输出的命令执行结果。已知的NVM芯片接口协议包括“Toggle”、“ONFI”等。
在存储设备中,利用FTL(Flash Translation Layer,闪存转换层)来维护从逻辑地址到物理地址的映射信息。逻辑地址构成了操作***等上层软件所感知到的存储设备的存储空间。物理地址是用于访问存储设备的物理存储单元的地址。在相关技术中还可利用中间地址形态实施地址映射。例如将逻辑地址映射为中间地址,进而将中间地址进一步映射为物理地址。这些情况下,存储设备所接收的读/写命令指示逻辑地址。
存储了从逻辑地址到物理地址的映射信息的表结构被称为L2P表(Logicaladdress To Physical address,逻辑地址到物理地址)(也称为FTL表)。L2P表是存储设备中的重要元数据。通常L2P表的条目(也称为L2P条目)记录了存储设备中以数据页为单位的地址映射关系。
一些存储设备的FTL由存储设备所耦合的主机提供,由主机的存储器存储L2P表,主机的CPU执行软件提供FTL。还有一些被设置在主机与存储设备之间的存储管理装置提供FTL。这些情况下,存储设备所接收的读/写命令指示物理地址。
主机提供给存储设备的命令可能访问L2P的一个或多个条目所对应的逻辑地址空间。以及控制部件可能将从接口103接收的命令改变形态(例如,根据L2P条目所对应的逻辑地址空间大小切分命令),并处理改变形态的命令。为了清楚的目的,在本文中,将主机提供给存储设备的命令称为IO命令。
图2展示了现有技术中的L2P表的示意图。
如图2所示,L2P表包括多个L2P条目,每个L2P的条目存储有NVM数据帧地址。NVM数据帧地址为NVM芯片中的物理地址。例如,L2P条目0存储的是NVM数据帧地址0。L2P表中的条目是按照例如逻辑地址增大的方式排序的,比如L2P条目0的逻辑地址是LBA 0、L2P条目1的逻辑地址是LBA 1、L2P条目2的逻辑地址是LBA 2、……以此类推。
图3展示了现有技术中控制部件的框图。
主机以遵循存储协议的IO命令访问存储设备。控制部件根据来自主机的IO命令,生成一个或多个存储命令并提供给介质接口控制器。介质接口控制器根据存储命令生遵循NVM芯片的接口协议的存储介质访问命令(例如,编程命令、读命令、擦除命令)。控制部件还跟踪从一个IO命令生成的所有存储命令都被执行完成,并向主机指示IO命令的处理结果。
参看图3,控制部件包括例如主机接口、主机命令处理单元、存储命令处理单元、介质接口控制器与存储介质管理单元。主机接口获取主机提供的IO命令,并生成存储命令提供给存储命令处理单元。存储命令例如访问相同大小的存储空间,例如4KB。将NVM芯片中记录的对应一个存储命令所访问数据的数据单元称为数据帧。物理页记录一个或多个数据帧。例如,物理页的大小17664字节,而数据帧大小为4KB,则一个物理页能存储4个数据帧。
发明内容
对存储设备进行备份或制作镜像是常见需求。通常情况下,对存储设备进行备份包括2种方式。一是利用文件***精确地获得存储设备的有效数据,并对有效数据进行备份,这种方式备份的数据量少但严格地需要使用文件***。第二种方式是在没有文件***的情况下,将存储设备的完整地址空间的每个地址所对应的数据都进行备份,这就导致存在大量无效数据也进行了复制,从而浪费大量的时间、能量与数据传输带宽。本申请实施例通过读地址空间属性命令,实现即使在没有文件***的情况下,在存储设备备份过程中也不需要将存储设备中的所有数据都进行复制,从而大大的减少了备份的数据量,减少备份数据所需的时间、能量与数据传输带宽。
根据本申请实施例提供的读地址空间属性命令,除了用于存储备份,还能用于存储设备碎片整理、顺序流检测、地址空间属性表复制等多种目的。读地址空间命令也作为存储设备的架构化的接口,以丰富存储设备的功能和并促进对存储设备的使用。
根据本申请的第一方面,提供了根据本申请第一方面的第一获取地址空间属性的方法,应用于主机,包括:向控制部件发送读地址空间属性命令,所述读地址空间属性命令用于读取一个地址或一段地址空间的至少一种属性;接收所述控制部件反馈的第一数据,所述第一数据对应于所述读地址空间属性命令所指示的至少一种属性。
根据本申请第一方面的第一获取地址空间属性的方法,提供了根据本申请第一方面的第二获取地址空间属性的方法,属性包括有效元素、有效元素占比、连续数据块大小、随机度和各个属性的时间变化值。
根据本申请第一方面的第一或第二获取地址空间属性的方法,提供了根据本申请第一方面的第三获取地址空间属性的方法,所述读地址空间属性命令指示的地址为逻辑地址。
根据本申请第一方面的第一获取地址空间属性的方法,提供了根据本申请第一方面的第四获取地址空间属性的方法,所述第一数据为地址空间属性表的部分或全部;或者,所述第一数据为所述读地址空间属性命令所要求的至少一种属性。
根据本申请第一方面的第四获取地址空间属性的方法,提供了根据本申请第一方面的第五获取地址空间属性的方法,若所述第一数据为地址空间属性表的部分或全部,所述地址空间属性表表征地址空间的各个地址对应的是否是有效元素,所述方法还包括:对所述第一数据进行处理,获取所述至少一种属性。
根据本申请的第二方面,提供了根据本申请第二方面的第一获取地址空间属性的方法,应用于控制部件,包括:接收主机发送的读地址空间属性命令,所述读地址空间属性命令用于读取一个地址或一段地址空间的至少一种属性;根据所述读地址空间属性命令,访问地址空间属性表,以获取第一数据,所述第一数据对应于所述读地址空间属性命令指示的至少一种属性,所述地址空间属性表表征地址空间的各个地址对应的是否是有效元素;向所述主机反馈所述第一数据。
根据本申请第二方面的第一获取地址空间属性的方法,提供了根据本申请第二方面的第二获取地址空间属性的方法,属性包括有效元素、有效元素占比、连续数据块大小、随机度和各个属性的时间变化值。
根据本申请第二方面的第一或第二获取地址空间属性的方法,提供了根据本申请第二方面的第三获取地址空间属性的方法,所述读地址空间属性命令指示的地址为逻辑地址。
根据本申请第二方面的第一至第三获取地址空间属性的方法之一,提供了根据本申请第二方面的第四获取地址空间属性的方法,所述方法还包括:响应于所述读地址空间属性命令,根据所述读地址空间属性命令携带的地址,获取第一地址索引;根据所述第一地址索引,从所述地址空间属性表中获取所述第一数据,所述第一数据为所述地址空间属性表的部分或全部。
根据本申请第二方面的第四获取地址空间属性的方法,提供了根据本申请第二方面的第五获取地址空间属性的方法,从所述地址空间属性表中获取所述第一数据,包括:从所述地址空间属性表读取第二数据;压缩所述第二数据,获取所述第一数据。
根据本申请第二方面的第一获取地址空间属性的方法,提供了根据本申请第二方面的第六获取地址空间属性的方法,所述方法还包括:响应于所述读地址空间属性命令,根据所述读地址空间属性命令携带的地址,获取第一地址索引;根据所述第一地址索引,从所述地址空间属性表中读取若干个有效元素;根据所述读地址空间属性命令指示的属性,对所述若干个有效元素进行处理,以获取所述第一数据,所述第一数据为所述读地址空间属性命令所要求的属性。
根据本申请的第三方面,提供了根据本申请第三方面的第一存储设备的数据备份方法,包括:利用读地址空间属性命令获取第三数据,所述第三数据为地址空间属性表的部分或全部,所述地址空间属性表表征地址空间的各个地址对应的是否是有效元素;根据所述第三数据中有效元素对应的第一多个逻辑地址,访问第一存储设备,以从所述第一存储设备中读取第一多个待备份数据,所述第一多个待备份数据同所述第一多个逻辑地址对应;将所述第一多个待备份数据写入第二存储设备,以获得备份数据;其中,每个有效元素对应于一个逻辑地址,所述利用读地址空间属性命令获取第三数据采用如上述第一方面中任一项所述的方法实现。
根据本申请第三方面的第一存储设备的数据备份方法,提供了根据本申请第三方面的第二存储设备的数据备份方法,所述将所述待备份数据写入第二存储设备,包括:按照有效元素与逻辑地址的对应关系,将所述待备份数据写入所述第二存储设备,以使所述第二存储设备中的备份数据与逻辑地址的对应关系与所述有效元素与逻辑地址的对应关系相同。
根据本申请的第四方面,提供了根据本申请第四方面的第一地址空间属性的获取方法,包括:主机向控制部件发送第一读地址空间属性命令,所述第一读地址空间属性命令用于读取一个地址或一段地址空间的至少一种属性;响应于所述第一读地址空间属性命令,所述控制部件访问地址空间属性表,以获取第一数据,所述地址空间属性表表征地址空间的各个地址对应的是否是有效元素;所述控制部件向所述主机反馈所述第一数据,所述第一数据对应于所述第一读地址空间属性命令所指示的至少一种属性。
根据本申请第四方面的第一地址空间属性的获取方法,提供了根据本申请第四方面的第二地址空间属性的获取方法,在所述第一读地址空间属性命令指示获取第一地址空间的随机度时,所述方法包括:响应于所述第一读地址空间属性命令,所述控制部件获取所述第一地址空间中随机度大于预设阈值的第二地址空间;所述控制部件获取所述第二地址空间内的有效元素;所述控制部件根据所述第二地址空间内的有效元素,标记所述第二地址空间;所述控制部件向所述主机反馈标记后的所述第二地址空间对应的地址。
根据本申请第四方面的第一地址空间属性的获取方法,提供了根据本申请第四方面的第三地址空间属性的获取方法,在所述第一读地址空间属性命令指示获取所述地址空间属性表时,所述方法还包括;响应于所述第一读地址空间属性命令,所述控制部件向所述主机反馈所述地址空间属性表;所述主机存储所述地址空间属性表。
根据本申请的第五方面,提供了根据本申请第五方面的第一存储设备的访问方法,所述存储设备包括地址空间属性表,所述方法包括:主机向控制部件发送第一访问命令,所述第一访问命令包括读命令和写命令;所述控制部件根据所述地址空间属性表处理所述第一访问命令;或者,所述控制部件根据所述第一访问命令调整所述地址空间属性表。
根据本申请第五方面的第一存储设备的访问方法,提供了根据本申请第五方面的第二存储设备的访问方法,在所述第一访问命令是写命令时,所述控制部件根据所述写命令将数据写入存储介质,并修改所述地址空间属性表。
根据本申请第五方面的第二存储设备的访问方法,提供了根据本申请第五方面的第三存储设备的访问方法,所述控制部件根据所述写命令将数据写入存储介质,并修改所述地址空间属性表,包括:所述控制部件为待写入数据分配物理地址,所述物理地址与第二逻辑地址对应,所述写命令指示所述第二逻辑地址;所述控制部件根据所述第二逻辑地址和所述物理地址,更新L2P表;所述控制部件将待写入数据写入所述物理地址对应的存储空间;所述控制部件根据所述第二逻辑地址,修改所述地址空间属性表。
根据本申请第五方面的第三存储设备的访问方法,提供了根据本申请第五方面的第四存储设备的访问方法,所述控制部件根据所述第二逻辑地址,修改所述地址空间属性表,包括:所述控制部件修改所述地址空间属性表中,与所述第二逻辑地址对应的至少一个元素的取值,以使修改后的所述地址空间属性表中的所述第二逻辑地址对应的是有效元素;和/或,所述控制部件修改所述地址空间属性表中的至少一种属性。
根据本申请第五方面的第一至第四存储设备的访问方法之一,提供了根据本申请第五方面的第五存储设备的访问方法,在所述第一访问命令是第一读命令时,所述方法包括:所述主机向所述控制部件发送所述第一读命令;响应于所述第一读命令,所述控制部件根据所述读命令指示的第三地址空间,判断所述第一读命令是否属于顺序流读命令;在为是时,所述控制部件获取所述第三地址空间的随机度;所述控制部件根据所述第三地址空间的随机度再次判断所述第一读命令是否属于顺序流读命令。
根据本申请第五方面的第五存储设备的访问方法,提供了根据本申请第五方面的第六存储设备的访问方法,所述控制部件根据所述第三地址空间的随机度再次判断所述第一读命令是否属于顺序流读命令,包括:所述控制部件判断所述第三地址空间的随机度是否大于预设阈值;在为是时,所述控制部件将所述第一读命令标记为不属于顺序流读命令。
根据本申请第五方面的第五或第六存储设备的访问方法,提供了根据本申请第五方面的第七存储设备的访问方法,在任一判断结果为否时,所述控制部件将所述第一读命令标记为属于顺序流读命令。
根据本申请第五方面的第一存储设备的访问方法,提供了根据本申请第五方面的第八存储设备的访问方法,在所述第一访问命令是第二读命令时,所述方法包括:所述主机向所述控制部件发送第二读命令;响应于所述第二读命令,所述控制部件判断所述读命令指示的第三地址空间是否命令第一缓存;在为是时,所述控制部件从所述第一缓存中获取第一读数据;所述控制部件向所述主机反馈所述第一读数据。
根据本申请第五方面的第八存储设备的访问方法,提供了根据本申请第五方面的第九存储设备的访问方法,在为否时,所述控制部件从所述存储介质中获取第二读数据,并将所述第二读数据搬移到第二缓存;所述控制部件向所述主机反馈所述第二读数据。
根据本申请第五方面的第八存储设备的访问方法,提供了根据本申请第五方面的第十存储设备的访问方法,所述控制部件还获取所述第三地址空间的随机度变化;所述控制部件判断所述随机度变化是否大于预设阈值;在所述随机度变化大于预设阈值时,所述控制部件向所述主机反馈所述第二读数据后释放所述第二缓存。
根据本申请第五方面的第八存储设备的访问方法,提供了根据本申请第五方面的第十一存储设备的访问方法,在所述随机度变化小于预设阈值时,所述控制部件向所述主机反馈所述第二读数据后保留所述第二缓存。
根据本申请的第六方面,提供了根据本申请第六方面的第一存储***,包括主机、控制部件及存储介质;其中,所述控制部件维护L2P表和地址空间属性表,所述地址空间属性表表征地址空间的各个地址对应的是否是有效元素;所述存储***执行如上述第一方面至第五方面中任一项所述的方法。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
图1为现有技术中的存储设备的框图;
图2为现有技术中的L2P表的示意图;
图3为现有技术中的控制部件的框图;
图4为本申请实施例提供的读地址空间属性命令的示意图;
图5A为本申请实施例提供的L2P表的示意图;
图5B为本申请实施例提供的获取地址空间属性的方法的流程图;
图5C为本申请实施例提供的与L2P表对应的位图的示意图;
图6A为本申请实施例提供的控制部件的框图;
图6B展示了更新地址空间属性表的方法的流程图;
图7A为本申请实施例提供的处理读命令的方法的流程图;
图7B为本申请实施例提供的处理写命令的方法的流程图;
图8为本申请实施例提供的数据备份方法的流程图;
图9为本申请实施例提供的碎片数据整理方法的流程图;
图10为本申请实施例提供的地址空间属性表备份方法的流程图;
图11为本申请实施例提供的处理读命令的又一种方法的流程图;
图12为本申请实施例提供的处理读命令的再一种方法的流程图。
具体实施方式
下面结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
应当理解,本申请的权利要求、说明书及附图中的术语“第一”、“第二”、“第三”和“第四”等是用于区别不同对象,而不是用于描述特定顺序。本申请的说明书和权利要求书中使用的术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在此本申请说明书中所使用的术语仅仅是出于描述特定实施例的目的,而并不意在限定本申请。如在本申请说明书和权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。还应当进一步理解,在本申请说明书和权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
如在本说明书和权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。
下面结合附图来详细描述本申请的具体实施方式。
图4展示了本申请实施例提供的读地址空间属性命令的示意图。
如图4所示,本申请实施例提供了多种读地址空间属性命令(在图4中表示为读地址空间属性命令),每个读地址空间属性命令指示地址空间范围及属性类型。
读地址空间属性命令所指示的地址空间范围,指示读地址空间属性命令所要获取其属性的存储设备的地址空间的范围。例如,存储设备的地址空间是LBA空间,其完整范围是从LBA0到LBA 2000,那么地址空间范围的全空间是LBA 0-LBA2000,读地址空间属性命令指示的地址范围可以是全空间内的部分或全部,如LBA 0-LBA 1000、LBA101-LBA 1520。其中,还可以用特定标识位表示全空间。
读地址空间属性命令所指示的属性类型,指示读地址空间属性命令要获取的对应于地址空间范围的属性的类别。属性包括有效元素(指记录了有效数据的地址空间的地址)、有效元素占比、连续数据块大小(指例如连续的记录了有效数据的地址空间的多个地址的数量)、随机度(指记录了有效数据的地址空间的地址在地址空间中的分布的随机度)和前述各个属性的时间变化值。属性类型则是读地址空间属性命令中指示待获取的属性的类别的信息,例如,有效元素的属性类别是1、有效元素占比的属性类别是2、连续数据块大小的属性类别是3、随机度的属性类别是4。而各个属性的时间变化值包括有效元素的时间变化值、有效元素占比的时间变化值、连续数据块大小的时间变化值、随机度的时间变化值等。有效元素的时间变化值的属性类型为51、有效元素占比的时间变化值的属性类型为52、连续数据块大小的时间变化值的属性类型为53、随机度的时间变化值的属性类型为54。
可选地,本申请中的有效元素是指同要获取其属性的地址空间对应的L2P条目中记录的是有效地址或记录的是有效元素标识。有效元素标识就表征该条目对应的逻辑地址存储有有效数据,而非空白,也非经垃圾回收后的垃圾数据。
图5A展示了本申请实施例提供的L2P表的一种示意图。
如图5A所示,该L2P表包括6个L2P条目,分别是L2P条目0、L2P条目1、……、L2P条目5。图5A中虚线框中的是地址索引,其表征了地址索引并不必然是以数据的形式存储在L2P条目中的,而是由于L2P条目是和逻辑地址一一对应的,其逻辑地址即为L2P条目的索引。例如,L2P条目0-5分别对应于逻辑地址LBA 0-5,则逻辑地址LBA 3为L2P条目3对应的索引。本实施例中,L2P表的每个条目中存储的是NVM数据帧地址,包括有效地址和无效地址。例如,L2P条目5中存储的NVM数据帧地址5是NVM的物理地址,通过访问NVM数据帧地址5可以读取出存储在该物理地址中的数据。本实施例中,无效地址可选地是物理地址或指示无效地址的特定标识(例如,N/A),但访问无效地址无法读取出数据。例如访问L2P条目4中存储的物理地址,就会发生错误而无法读取数据。本实施例中的无效地址可以是NVM中的任一物理地址,预先设定一个物理地址为无效地址。例如,物理地址0或者物理地址100被设置为无效地址,则访问物理地址0或访问物理地址100无法写入数据及读出数据。进一步,在逻辑地址和物理地址的映射关系发生改变后,L2P表也会进行更新,例如在逻辑地址LBA 0对应的物理地址中写入数据后,在L2P表中L2P条目0中存储的无效地址就会被修改为有效地址;又如,逻辑地址LBA 2被执行例如去分配命令后,L2P表中的L2P条目2存储的有效地址会被修改为无效地址。
图5B展示了本申请实施例提供的一种获取地址空间属性的方法的流程图。
作为举例,图5B中的读地址空间属性命令指示读取的属性类型是有效元素,读地址空间属性命令指示的地址空间由如图5A所示的L2P表所表达。下面以该读地址空间属性命令是主机发送的,控制部件收到该读地址空间属性命令为例,描述图5B的流程。
步骤510,收到读地址空间属性命令。
步骤520,根据地址索引L2P表条目。控制部件收到该读地址属性命令之后,获取读地址空间属性命令指示的地址空间范围,地址空间范围中的每个逻辑地址都可作为地址索引用于访问L2P表。例如,控制部件获取到地址范围是LBA 21-LBA50,则控制部件获取L2P表中LBA 21-LBA50共30个条目。进一步,控制部件每次根据一个地址索引获取L2P表中的一个条目。
步骤530,判断L2P表条目记录的地址是否有效。继续沿用前例,具体的,控制部件判断L2P表中由逻辑地址LBA 21到LBA 50的每个对应的30个L2P条目,这30个条目中记录的是否是有效地址。具体的,控制部件对每个条目进行一次判断。
在判断结果为否时,返回执行步骤520,以继续判断下一个L2P条目中记录的是否是有效地址。在判断结果为是时,执行步骤540,用使用的地址标记对应地址空间的位图。图5C展示了本申请实施例提供的位图的示意图。参看图5C,该位图包括LBA0-LBA5共6个地址对应的有效元素信息。其中,LBA0、LBA2、LBA3和LBA5对应的是有效元素,而LBA1和LBA4对应的是无效元素;或者,LBA0、LBA2、LBA3和LBA5对应的是无效元素,而LBA1和LBA4对应的是有效元素。
生成的位图包括多个比特,每个比特对应的读地址空间属性命令所指示的地址空间范围的一个元素。作为举例,对于逻辑地址LBA 21到LBA 50的地址空间范围,所生成的位图包括30比特,每个比特的值依次指示其对应的该地址空间范围的逻辑地址之一。
可选地,在执行步骤540之前,位图中记录的全部是有效元素或全部是无效元素。例如,执行步骤540之前,位图中记录的是全0或全1。又如,执行步骤540之前位图是例如图5C所示的“101101”。
可选地,在步骤540执行时,每次执行步骤540修改位图中1位,执行步骤540之后回到步骤520,循环执行步骤520-步骤540,直至与地址范围对应的位图更新完成。在另一些实施例中,执行步骤540时,将与地址范围对应的位图中的多个位或所有位全部更新,在执行完步骤540之后,继续执行步骤550。
步骤550,用对应地址空间的位图响应读地址空间属性命令。在获取到与地址范围对应的最新的位图之后,控制部件将该位图反馈给主机,作为读地址空间属性命令的响应。
本实施例中,主机向控制部件发送读地址空间属性命令。控制部件响应于收到该读地址空间属性命令,根据L2P表生成位图,并将位图作为读地址空间属性命令的响应。
本申请又一实施例提供了又一种获取地址空间属性的方法,应用于主机,包括:向控制部件发送读地址空间属性命令,读地址空间属性命令用于获取一个地址或一段地址空间的至少一种属性;接收控制部件反馈的第一数据,第一数据对应于所述读地址空间属性命令所指示的至少一种属性。可选地,本实施例中的属性包括有效元素、有效元素占比、连续数据块大小、随机度和各个属性的时间变化值。可选地,读地址空间属性命令指示的地址或者读地址空间属性命令携带的地址为逻辑地址或物理地址。
例如,读地址空间属性命令用于获取LBA 52开始的连续数据块大小,或者某指定地址空间范围内的最大的连续数据块的大小。又如,读地址空间属性命令用于获取LBA52-LBA 103范围内的有效元素占比和随机度。再如,读地址空间属性命令用于获取LBA128-256的有效元素的随机度在第一时间段内随时间的变化值。
在可选的实施方式中,控制部件提供地址空间属性表,以促进读地空间属性命令的处理。控制部件生成并维护地址空间属性表,地址空间属性表可如表1和表2所示。第一数据为地址空间属性表的部分或全部;或者,第一数据为所述读地址空间属性命令所要求的至少一种属性。本实施方式中,控制部件反馈的第一数据可以是地址空间属性表、地址空间属性表的部分(一个或多个条目)或者第一数据是根据地址空间属性表获取的属性。可选地,控制部件生成地址空间属性表的方式可参见上一实施例中图5B所展示的方法,即控制部件在收到读地址空间属性命令的指示后生成地址空间属性表。或者,控制部件配置为预先生成地址空间属性表,并一直维护该表。例如,存储设备的控制部件在存储设备出厂前生成地址空间属性表,并在收到访问命令(读命令和/或写命令)之后更新地址空间属性表。进一步可选地,控制部件在收到读地址空间属性表的指示之后,更新地址空间属性表。
表1
地址索引 | 有效元素 |
LBA 100 | 0 |
LBA 101 | 1 |
LBA 102 | 0 |
LBA 103 | 0 |
LBA 104 | 1 |
LBA 105 | 0 |
LBA 106 | 1 |
LBA 107 | 1 |
表1展示了一种地址空间属性表。表1的地址空间属性表包括多个条目,每个条目由LBA索引,每个条目的大小为例如1比特。
表1中记录了地址索引LBA 100-LBA 107对应的是否是有效元素。以“1”为有效为例,表1指示有4个逻辑地址中存储的是有效元素。
在一个实施方式中,控制部件根据读地址空间属性命令的地址索引,获取地址空间属性表中与该地址索引对应的条目。或者控制部件根据读地址空间属性命令的地址索引,获取与该地址索引对应的地址空间属性表(全部条目)。例如,读地址空间属性命令指示获取LBA 102-LBA 105范围的有效元素,则控制部件获取表1中LBA 102-LBA 105对应的4个条目,并将这4个条目反馈给主机。又如,读地址空间属性命令指示获取LBA100-LBA 107的有效元素,则控制部件获取表1全部条目,并将这8个条目反馈给主机。再如,读地址空间属性命令指示获取LBA 102-LBA 105的有效元素,则控制部件解析该读地址空间属性命令的地址索引属于表1,从而控制部件获取表1全部条目,并将这8个条目反馈给主机。
在又一个实施方式中,第一数据为读地址空间属性命令所要求的至少一种属性时,控制部件根据地址空间属性表获取所要求的至少一种属性。例如,读地址空间属性命令指示获取LBA100-LBA107对应的有效元素和随机度,控制部件读取表1中的地址空间属性表的所有条目得到读地址空间属性命令所要求的有效元素。控制部件根据表1的所有条目计算随机度,从而获取随机度。计算随机度的方式可参见现有技术,在此不进行限定。控制部件将获取的有效元素和随机度反馈给主机,作为对读地址空间属性命令的响应。
表2
表2展示了另一种地址空间属性表。如表2所示,表2中除了有LBA 108-LBA115对应的有效元素,还有其对应的连续数据块大小和有效元素占比共三种属性。
在一个实施方式中,第一数据为地址空间属性表的部分或全部时,控制部件根据读地址空间属性命令的地址索引,获取地址空间属性表中与该地址索引对应的条目。或者控制部件根据读地址空间属性命令的地址索引,获取与该地址索引对应的地址空间属性表(全部条目)。在地址空间属性表是例如表2的地址空间属性表时,控制部件响应于读地址空间属性命令,读取地址空间属性表的部分或全部条目作为反馈,读取条目的方法可参见上述实施例中的描述,在此不进行展开。
在又一个实施方式中,第一数据为读地址空间属性命令所要求的至少一种属性时,控制部件根据地址空间属性表获取所要求的至少一种属性。在地址空间属性表是例如表2的地址空间属性表时,控制部件可以直接读取地址空间属性表中至少一种属性。例如,控制部件读取LBA 108-LBA 114的连续数据块大小为“1113”或者“3”(该LBA范围内的最大连续数据块数量)。
进一步,若第一数据为地址空间属性表的部分或全部,且地址空间属性表表征地址空间的各个地址对应的是否是有效元素(即该地址空间属性表如表1所示),则主机在接收到第一数据之后,对所述第一数据进行处理,获取至少一种属性。
图6A展示了一种控制部件的框图。在图6A中,控制部件包括主机接口、主机命令处理单元、存储命令处理单元、介质接口控制器和存储介质管理单元。其中介质接口控制器与NVM芯片耦合,控制部件通过主机接口接收主机发送的读地址空间属性命令。主机命令处理单元解析读地址空间属性命令,并生成适用于存储命令处理单元的命令。响应于收到命令,存储命令处理单元进行操作介质接口控制器访问NVM芯片、或进行操作存储介质管理单元以维护L2P表和地址空间属性表。本实施例中,存储介质管理单元除了维护L2P表,还维护地址空间属性表。
本申请实施例提供了又一获取地址空间属性的方法,应用于控制部件,包括:接收主机发送的读地址空间属性命令,读地址空间属性命令用于读取一个地址或一段地址空间的至少一种属性。根据读地址空间属性命令,访问地址空间属性表,以获取第一数据,第一数据对应于所述读地址空间属性命令指示的至少一种属性,地址空间属性表表征地址空间的各个地址对应的是否是有效元素;向所述主机反馈所述第一数据。
可选地,读地址空间属性命令指示的地址为逻辑地址。
进一步可选地,响应于读地址空间属性命令,根据所述读地址空间属性命令携带的地址,获取第一地址索引。根据第一地址索引,从地址空间属性表中获取第一数据,第一数据为所述地址空间属性表的部分或全部。本实施方式中,读地址空间属性命令指示的地址即为地址空间属性表的地址索引,也就是逻辑地址。或者,读地址空间属性命令指示的地址并非是地址空间属性表的地址索引,此时控制部件还需根据该命令携带的地址获取地址索引。
进一步可选地,控制部件从地址空间属性表读取的是第二数据,即第二数据是地址空间属性表的条目。控制部件将压缩第二数据,获取第一数据,即第一数据是地址空间属性表的条目经过压缩后得到的数据,从而能够进一步减少控制部件反馈给主机的数据量,进而减少数据传输的时长。一些情况下,对第二数据进行压缩是有益的。例如,地址空间属性表中,0与1的数量明显不均衡时,通过压缩能显著减少数据尺寸。依然作为举例,在第二数据的0与1的数量明显不均衡时(例如,0的数量显著少于1),而仅传输具有0的数据以及其在地址空间属性表中的位置(索引),也能显著降低要传输数据的尺寸。
在另一些实施例中,响应于读地址空间属性命令,控制部件根据读地址空间属性命令携带的地址,获取第一地址索引。控制部件根据第一地址索引,从地址空间属性表中读取若干个有效元素。控制部件根据读地址空间属性命令指示的属性,对若干个有效元素进行处理,以获取第一数据,第一数据为读地址空间属性命令所要求的属性。本实施例中获取地址索引的方式可参见上述实施例中的描述,在此不进行展开。本实施例中,控制部件不直接反馈地址空间属性表的条目或地址空间属性表记录的数据,而是对有效元素进行处理,得到第一数据,从而减轻了主机的负载。
图6B展示了更新地址空间属性表的方法的流程图。
步骤610,收到更新地址空间属性命令。本实施例中,更新地址空间属性命令指示控制部件对地址空间属性表进行更新。
步骤620,获取更新地址空间属性命令指示的(一个或多个)逻辑地址范围。控制部件收到更新地址空间属性命令之后,解析该命令,获得至少一个逻辑地址范围。需要注意的是一个逻辑地址范围包括一个或多个逻辑地址。
步骤630,更新(一个或多个)逻辑地址对应的地址空间属性表的表项。控制部件对该至少一个逻辑地址范围对应的地址空间属性表中的表项进行更新。本实施例中,更新地址空间属性命令中并不必须指示表项的更新值,例如在地址空间属性表为表1所示的地址空间属性表时,由于记录的表项值为0或1,控制部件只需要对待更新的表项在这两个值中进行调整。
可选地,步骤640,将(一个或多个)逻辑地址对应的L2P表的表项清零,或者设置为指定值。本实施例中,控制部件在完成对地址空间属性表的维护之后,还对L2P表进行更新,更新的方式包括对表项进行清零或者修改为指定值。指定值为物理地址。
通过更新地址空间属性命令,主机得以向存储设备指示一个或多个逻辑地址范围的属性为无效。
根据本申请的实施例,由于地址空间属性表的存在,L2P表的条目未必反映了最新的逻辑地址空间的属性。例如,也参看图6B,在步骤630执行完成后,步骤640执行完成前,地址空间属性表已被更新,而L2P表尚未被更新,此时L2P表中记录的部分数据是过时的。因此,为了对读命令进行正确的处理,需要调整读命令的处理过程,也参看图7A。
图7A展示了本申请实施例提供的一种处理读命令的方法的流程图。下面以控制部件执行图7A中的流程为例进行描述。
步骤710,收到读命令。控制部件接收主机发送的读命令,该读命令指示控制部件访问NVM芯片并读取数据。
步骤712,判断所读取的逻辑地址是否对应有效元素。例如,控制部件读取地址空间属性表中的“有效元素”这一属性。例如,控制部件根据LBA 512-LBA 520访问地址空间属性表,从而获取LBA 512-LBA 520是否对应有效元素。在判断结果为否时,执行步骤714。在判断结果为是时,执行步骤716。可选地,本实施例中,判断逻辑地址是否有效是利用地址空间属性表进行的。本实施例中,通过提前判断逻辑地址是否有效,排除掉对应于无效物理地址或没有对应物理地址的情况,从而降低读取数据失败或读取数据出错的概率,进而减少读数据所需要的时长,也避免了因地址空间属性表与L2P表不一致所引入的错误。
步骤714,以例如全0或指定值作为对读命令的响应。控制部件用全0作为对读命令的响应,除了使得读命令被流畅的处理,也能够告知主机某个LBA当前无法读取出有效数据。
作为举例,读命令携带的逻辑地址为LBA 512-LBA 520,其中在步骤712识别LBA512无效,而其他LBA有效,则对于LBA 512执行步骤714,而对于其他有效的LBA,执行步骤716以完成对读命令的处理。
步骤716,查询L2P表获得要读取的逻辑地址对应的物理地址。在判断结果为是时,控制部件根据LBA 512-LBA 520中各有效的LBA,查询L2P表,获得有效LBA对应的物理地址。
步骤718,从物理地址读取数据作为对读命令的响应。控制部件根据获得的物理地址访问NVM芯片,读出数据。
控制部件将读出的数据反馈给主机作为读命令的响应。
图7B展示了本申请实施例提供的一种处理写命令的方法的流程图。下面以控制部件执行图7B中的流程为例进行描述。
步骤720,收到写命令。控制部件收到主机发送的写命令。
步骤722,为写命令分配物理地址,并更新L2P表。控制部件获取写命令指示或携带的逻辑地址,并为该逻辑地址分配物理地址。在为逻辑地址分配物理地址之后,控制部件需要维护L2P表,从而控制部件根据逻辑地址与分配的物理地址的对应关系,更新L2P表。
步骤724,向物理地址写入数据,反馈写命令处理完成信息。控制部件根据物理地址访问NVM芯片,将数据写入该物理地址,并向主机反馈写命令处理完成信息。
步骤726,更新地址空间属性表。本实施例中,控制部件还根据逻辑地址和物理地址的对应关系更新地址空间属性表。响应于写命令向例如LBA 100写入数据,由LBA 100所指示的地址空间的属性为有效。响应于再次向LBA 100写入数据,由LBA 100所指示的地址空间的属性依然为有效。
根据本申请实施例提供的读地址空间属性命令,以及可选的地址空间属性表,增强了存储设备的处理能力。对于一些应用场合,能显著增强处理能力或降低处理的复杂性。结合图8到图12,提供了多个应用读地址空间属性命令以及可选的地址空间属性表的例子。
图8展示了本申请实施例提供的一种对存储设备进行数据备份或制作镜像方法的流程图。对存储设备进行数据备份或制作镜像不仅需要获取存储设备中记录的所有(有效)数据,并且,还需要按有效数据在存储设备中的位置(地址),以相同的地址将对应数据写入新的存储设备。根据本申请的实施例,通过读地址空间属性命令,能便捷且快速地获取存储设备中记录了有效数据的所有地址(逻辑地址),从而接下来通过从这些地址读出数据并按同样的地址写入新的存储设备,以完成数据备份。这样进行的数据备份,也实现了对存储设备制作镜像。虽然所制作的镜像中,不包括原始存储设备的无效地址所对应的数据,但所制作的镜像在语义上同原存储设备是等价的,因为无效数据不会也不应再被访问。
步骤810,用读地址空间属性命令获取存储设备的完整地址空间的所有有效元素。
步骤820,根据所有有效元素对应的逻辑地址从存储设备读出数据。
步骤830,将读出数据写入备份存储设备的相同逻辑地址。
下面以控制部件为例,描述图8中的流程。
为进行数据备份,主机先向存储设备发出读地址空间属性命令,并在该读地址空间属性命令中将访问的地址范围设定为存储设备的完整地址空间。控制部件获取读地址空间属性命令之后,根据该读地址空间属性命令指示,获得存储设备的完整地址的所有有效元素。可选地,控制部件遍历L2P表以获得存储设备的地址空间的所有有效元素。依然可选地,控制部件根据读取地址空间属性表获得地址空间的所有有效元素。
可以理解地,存储设备的地址空间的有效元素同管理该地址空间的文件***所使用的有效空间并非一致,而是存储设备的地址空间的有效元素的集合是对应文件***所使用的有效空间的超集。文件***可能删除了部分地址空间元素,但文件***对地址空间元素的“删除”操作可能不为存储设备所知。这部分已经被“主机”删除但未进行垃圾回收的数据也属于本申请中的“完整地址空间的所有有效元素”。即使这样,通过读地址空间属性命令获取的地址空间的所有有效元素,依然可以通常地小于存储设备的完整地址空间的所有元素,进而减少数据备份中需要从存储设备读出并搬移到新存储设备的数据量。
根据一种实施方式,控制部件利用读地址空间属性命令获取第三数据,第三数据为地址空间属性表的部分或全部,地址空间属性表表征地址空间的各个地址对应的是否是有效元素。控制部件获取的第三数据是对应于有效元素的地址。控制部件进一步根据第三数据对应的多个逻辑地址,访问存储设备,从而读取出所有的待备份数据。控制部件将所有的待备份数据写入第二存储设备,从而完成数据的备份。本实施例中,写入备份存储设备的数据,即第二存储设备中的数据和第一存储设备中的数据有相同的逻辑地址。
进一步可选地,控制部件是按照有效元素与逻辑地址的对应关系,将待备份数据写入第二存储设备,以使所述第二存储设备中的备份数据与逻辑地址的对应关系与所述有效元素与逻辑地址的对应关系相同。
本申请实施例提供了又一对存储设备进行数据备份或制作镜像方法,包括:主机向控制部件发送第一读地址空间属性命令,第一读地址空间属性命令用于读取存储设备的完整地址空间的有效元素。响应于所述第一读地址空间属性命令,控制部件向主机反馈第一数据,第一数据指示了存储设备的完整地址空间中的所有有效的地址。第一数据的形式是例如地址空间属性表的全部,或者经压缩的地址空间属性表,或者根据L2P表现场生成的指示了地址空间的各地址是否有效的位图,或者有效的地址的集合。主机根据地址数据得到该要备份的存储设备的完整地址空间中的所有有效的地址。以及主机根据该要备份的存储设备的完整地址空间中的所有有效的地址,从该存储设备读出有效地址对应的数据,以及按照有效地址与其对应数据,将数据按其对应的有效地址写入新的存储设备,从而使得新的存储设备成为原来的存储设备的备份或镜像。
根据本申请的实施例,读地址空间属性命令也用于识别存储设备的碎片,根据存储设备的碎片分布可用于判断是否要对存储设备进行磁盘整理。通过利用指示获取第一地址空间的随机度的读地址空间属性命令来识别存储设备的碎片,也参看图9。
在第一读地址空间属性命令指示获取第一地址空间的随机度时,响应于第一读地址空间属性命令,获取第一地址空间中随机度大于预设阈值的第二地址空间;获取第二地址空间内的有效元素;根据第二地址空间内的有效元素,标记第二地址空间。
图9展示了本申请实施例提供的一种碎片数据整理方法的流程图。
步骤910,用读地址空间属性命令获取指定地址空间的随机度。
步骤920,获取随机度大于阈值的地址空间范围。
步骤930,读地址空间属性命令获取该地址空间范围的有效元素。
步骤940,根据有效元素标识该地址空间范围的碎片。
根据本申请的实施例,主机通过向存储设备发出例如两个读地址空间属性命令来识别存储设备上的碎片。第一个读地址空间属性命令获取地址空间的随机度属性,将随机度高于阈值的地址空间视为存在碎片,以及第二个读地址空间属性命令获取地址空间的有效元素,以区分碎片中的有效数据与无效数据便于进行碎片整理。例如,响应于指示获取随机度的读地址空间属性命令,控制部件根据读地址空间属性命令获取指定逻辑地址范围的随机度。
可选地,主机提供的读地址空间属性命令还指示阈值或指示使用预设的阈值。==例如阈值为0.5,控制部件获取该指定逻辑地址范围内随机度取值大于0.5的若干个随机度对应的逻辑地址(总共有N个逻辑地址)。控制部件获取这N个逻辑地址中的有效元素并提供给主机,主机根据这些有效元素来标记存储设备中的碎片。例如,逻辑地址范围为LBA77-LBA 88,这一段逻辑地址空间的随机度大于0.5,控制部件获取到LBA 77-LBA 88对应的有效元素为“010101001101”,控制部件利用“010101001101”中的“1”来标记对应的有效逻辑地址,最后被标记的碎片为LBA 78、LBA 80、LBA 82、LBA 85、LBA86和LBA88。可选地,控制部件还将被标记的碎片对应的地址反馈给主机。例如,控制部件将LBA 78、LBA 80、LBA 82、LBA 85、LBA86和LBA88反馈给主机。可选地中,控制部件向主机反馈标记后的地址,以使主机或者存储设备中的碎片数据的状态,从而能够进一步进行操作。
利用读地址空间属性命令,还有助于在主机的参与下协助存储设备备份地址空间属性表。同L2P表类似,地址空间属性表也是存储设备的重要元数据。在关闭存储设备前,需要备份地址空间属性表,以便存储设备下次上电后能正常工作。
图10给出了本申请实施例提供的一种下电时存储地址空间属性表的方法。
如图10所示,主机发送读地址空间属性命令,即步骤1010,用读地址空间属性命令获取完整地址空间的所有有效元素。本实施例中,控制部件根据读地址空间属性命令,获取地址空间属性表的所有条目,从而获得完整地址空间的所有有效元素。
步骤1020,存储获取的完整地址空间的有效元素。控制部件将地址空间属性表的所有条目反馈给主机,由主机将其存储。从而防止控制部件下电时丢失地址空间属性表,并且在控制部件上电时不需要重新根据L2P表生成地址空间属性。需要注意的是,本实施例中,主机不一定要将地址空间属性表存储在主机内部,可选地主机将地址空间属性表存储在其它存储设备中。
图11展示了本申请实施例提供了识别读命令是否属于顺序流的方法的流程图。
步骤1110,获取读命令。控制部件获取主机发送的读命令,并解析该读命令。
步骤1120,判断该读命令是否属于顺序流读命令。步骤1120中,可采用例如现有技术的方式判断读命令是否属于顺序流。控制部件判断读命令是否属于顺序流读命令,在判断结果为否是,执行步骤1130,将该读命令标识为属于非顺序流。而在判断结果为是时,执行步骤1140,获取读命令所访问地址空间的随机度。利用例如地址空间属性表获取读命令所访问地址空间的随机度。并进一步执行步骤1150,判断随机度是否大于阈值。若本次判断结果为是,则执行步骤1130。若本次判断结果为否,则执行步骤1160,将该读命令标识为属于顺序流。
本实施例通过根据随机度再一次判断读命令是否属于顺序流读命令,从而提高了判断的准确率,实现对顺序流精确识别。由于在后续针对顺序流读命令和非顺序流读命令处理所需的时间不同,对读命令的精确分类能够有效地减少处理大量读命令时的总时长。
图12展示了本申请实施例提供的利用缓存处理读命令的方法的流程图。
根据本申请提供的地址空间属性表,还有助于有效地识别是否为读命令分配缓存。存储设备中,缓存是稀缺资源。希望将缓存分配给少数读命令,这些读命令所访问的数据在接下来的较短时间内大概率被再次访问。地址空间的随机度变化情况为缓存分配提供了辅助依据。地址空间的随机度变化程度,意味着该地址空间被更新的程度。频繁被更新的数据不宜在读命令中被缓存,因为缓存的数据可能很快即无效。而频繁被更新的数据则适宜在写命令中被缓存,因为可将多次更新合并后再写入NVM存储介质,从而减少向NVM的写操作。
步骤1210,获取读命令。控制部件获取主机发送的读命令,控制部件解析该读命令,并获取读命令指示的地址。
步骤1220,判断地址是否命中缓存。控制部件判断读命令指示的地址是否命中缓存,若命中缓存则表明这条读命令所要读取的数据已经在缓存中,该缓存为控制部件内的缓存。若没有命中缓存则表明这条读命令需要从NVM芯片中读取数据。
步骤1231,获取读命令所访问的地址空间的随机度变化。本实施例中,控制部件还获取读命令指示的地址的随机度变化这一属性。
步骤1232,从NVM读出数据响应读命令。需要注意的是步骤1231和步骤1232的执行顺序不分先后。在执行完步骤1232之后,主机侧对该读命令的处理已经完成,而控制部件仍需继续执行剩余的步骤。
步骤1240,从缓存中获取数据响应读命令。若命中缓存,则控制部件将从缓存中读取数据并响应该读命令。
步骤1250,判断随机度变化是否大于阈值。控制部件进一步判断读命令所访问的地址空间的随机度变化是否大于预设阈值。若不大于预设阈值,表明读命令所访问的地址空间不被经常更新,从而缓存当前读命令的数据有助于在后续的读命令也会访问这一段地址空间时命中缓存,从而执行步骤1260,保留读命令所使用的缓存。从而在下一次访问这一段地址空间时,控制部件就不需要再次分配缓存,节省时间。在步骤1250若大于预设阈值,则执行步骤1270,释放读命令所使用的缓存。在随机度变化大于预设阈值时,意味着这一段地址空间会被经常性地更新,导致缓存中的(旧)数据失效,也导致缓存的数据不能用于响应后续的读命令,从而控制部件不需要为这一段地址空间保留缓存,可将缓存释放用于其他任务,从而提高缓存资源的利用率。
需要说明的是,为了简明的目的,本申请将一些方法及其实施例表述为一系列的动作及其组合,但是本领域技术人员可以理解本申请的方案并不受所描述的动作的顺序限制。因此,依据本申请的公开或教导,本领域技术人员可以理解其中的某些步骤可以采用其他顺序来执行或者同时执行。进一步,本领域技术人员可以理解本申请所描述的实施例可以视为可选实施例,即其中所涉及的动作或模块对于本申请某个或某些方案的实现并不一定是必需的。另外,根据方案的不同,本申请对一些实施例的描述也各有侧重。鉴于此,本领域技术人员可以理解本申请某个实施例中没有详述的部分,也可以参见其他实施例的相关描述。
在具体实现方面,基于本申请的公开和教导,本领域技术人员可以理解本申请所公开的若干实施例也可以通过本文未公开的其他方式来实现。例如,就前文所述的电子设备或装置实施例中的各个单元来说,本文在考虑了逻辑功能的基础上对其进行拆分,而实际实现时也可以有另外的拆分方式。又例如,可以将多个单元或组件结合或者集成到另一个***,或者对单元或组件中的一些特征或功能进行选择性地禁用。就不同单元或组件之间的连接关系而言,前文结合附图所讨论的连接可以是单元或组件之间的直接或间接耦合。在一些场景中,前述的直接或间接耦合涉及利用接口的通信连接,其中通信接口可以支持电性、光学、声学、磁性或其它形式的信号传输。
虽然当前申请参考的示例被描述,其只是为了解释的目的而不是对本申请的限制,对实施方式的改变,增加和/或删除可以被做出而不脱离本申请的范围。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (10)
1.一种获取地址空间属性的方法,应用于主机,其特征在于,包括:
向控制部件发送读地址空间属性命令,所述读地址空间属性命令用于读取一个地址或一段地址空间的至少一种属性;
接收所述控制部件反馈的第一数据,所述第一数据对应于所述读地址空间属性命令所指示的至少一种属性。
2.如权利要求1所述的方法,其特征在于,所述第一数据为地址空间属性表的部分或全部;或者,所述第一数据为所述读地址空间属性命令所要求的至少一种属性。
3.一种获取地址空间属性的方法,应用于控制部件,其特征在于,包括:
接收主机发送的读地址空间属性命令,所述读地址空间属性命令用于读取一个地址或一段地址空间的至少一种属性;
根据所述读地址空间属性命令,访问地址空间属性表,以获取第一数据,所述第一数据对应于所述读地址空间属性命令指示的至少一种属性,所述地址空间属性表表征地址空间的各个地址对应的是否是有效元素;
向所述主机反馈所述第一数据。
4.如权利要求3所述的方法,其特征在于,所述方法还包括:
响应于所述读地址空间属性命令,根据所述读地址空间属性命令携带的地址,获取第一地址索引;
根据所述第一地址索引,从所述地址空间属性表中获取所述第一数据,所述第一数据为所述地址空间属性表的部分或全部。
5.一种存储设备的数据备份方法,其特征在于,包括:
利用读地址空间属性命令获取第三数据,所述第三数据为地址空间属性表的部分或全部,所述地址空间属性表表征地址空间的各个地址对应的是否是有效元素;
根据所述第三数据中的有效元素对应的第一多个逻辑地址,访问第一存储设备,以从所述第一存储设备中读取第一多个待备份数据,所述第一多个待备份数据同所述第一多个逻辑地址对应;
将所述第一多个待备份数据写入第二存储设备,以获得备份数据;
其中,所述第三数据包括至少一个有效元素,每个有效元素对应于一个逻辑地址,所述利用读地址空间属性命令获取第三数据采用如权利要求1-5中任一项所述的方法实现。
6.如权利要求5所述的方法,其特征在于,所述将所述待备份数据写入第二存储设备,包括:
按照有效元素与逻辑地址的对应关系,将所述待备份数据写入所述第二存储设备,以使所述第二存储设备中的备份数据与逻辑地址的对应关系与所述有效元素与逻辑地址的对应关系相同。
7.一种存储设备的访问方法,其特征在于,所述存储设备包括地址空间属性表,所述方法包括:
主机向控制部件发送第一访问命令,所述第一访问命令包括读命令和写命令;
所述控制部件根据所述地址空间属性表处理所述第一访问命令;或者,所述控制部件根据所述第一访问命令调整所述地址空间属性表。
8.如权利要求7所述的方法,其特征在于,在所述第一访问命令是第一读命令时,所述方法包括:
所述主机向所述控制部件发送所述第一读命令;
响应于所述第一读命令,所述控制部件根据所述读命令指示的第三地址空间,判断所述第一读命令是否属于顺序流读命令;
在为是时,所述控制部件获取所述第三地址空间的随机度;
所述控制部件根据所述第三地址空间的随机度再次判断所述第一读命令是否属于顺序流读命令。
9.如权利要求7所述的方法,其特征在于,在所述第一访问命令是第二读命令时,所述方法包括:
所述主机向所述控制部件发送第二读命令;
响应于所述第二读命令,所述控制部件判断所述读命令指示的第三地址空间是否命令第一缓存;
在为是时,所述控制部件从所述第一缓存中获取第一读数据;
所述控制部件向所述主机反馈所述第一读数据。
10.一种存储***,其特征在于,包括主机、控制部件及存储介质;其中,所述控制部件维护L2P表和地址空间属性表,所述地址空间属性表表征地址空间的各个地址对应的是否是有效元素;
所述存储***执行如权利要求1-9中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110341520.9A CN115145468A (zh) | 2021-03-30 | 2021-03-30 | 获取地址空间属性的方法、数据备份方法及存储设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110341520.9A CN115145468A (zh) | 2021-03-30 | 2021-03-30 | 获取地址空间属性的方法、数据备份方法及存储设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115145468A true CN115145468A (zh) | 2022-10-04 |
Family
ID=83404219
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110341520.9A Pending CN115145468A (zh) | 2021-03-30 | 2021-03-30 | 获取地址空间属性的方法、数据备份方法及存储设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115145468A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116795297A (zh) * | 2023-08-18 | 2023-09-22 | 苏州云途半导体有限公司 | 一种存储设备、存储方法及装置 |
-
2021
- 2021-03-30 CN CN202110341520.9A patent/CN115145468A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116795297A (zh) * | 2023-08-18 | 2023-09-22 | 苏州云途半导体有限公司 | 一种存储设备、存储方法及装置 |
CN116795297B (zh) * | 2023-08-18 | 2023-11-17 | 江苏云途半导体有限公司 | 一种存储设备、存储方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111475427B (zh) | 使用低延迟非易失性存储器进行逻辑至物理映射管理 | |
US10635310B2 (en) | Storage device that compresses data received from a host before writing therein | |
US11048624B2 (en) | Methods for multi-stream garbage collection | |
US10545864B2 (en) | Memory system and method for controlling nonvolatile memory | |
US10789162B2 (en) | Memory system and method for controlling nonvolatile memory | |
US10628060B2 (en) | Smart storage management based on dynamic logic capacity for the storage | |
US10402091B1 (en) | Managing data in log-structured storage systems | |
US8166233B2 (en) | Garbage collection for solid state disks | |
EP3168737A2 (en) | Distributed multimode storage management | |
US10013344B2 (en) | Enhanced SSD caching | |
US20130073798A1 (en) | Flash memory device and data management method | |
CN110678836A (zh) | 用于键值存储的持久性存储器 | |
US9727245B2 (en) | Method and apparatus for de-duplication for solid state disks (SSDs) | |
CN109086219B (zh) | 去分配命令处理方法及其存储设备 | |
US10936203B2 (en) | Memory storage device and system employing nonvolatile read/write buffers | |
US11747979B2 (en) | Electronic device, computer system, and control method | |
US20200183831A1 (en) | Storage system and system garbage collection method | |
US10459803B2 (en) | Method for management tables recovery | |
US11200178B2 (en) | Apparatus and method for transmitting map data in memory system | |
WO2012021847A2 (en) | Apparatus, system and method for caching data | |
US11947419B2 (en) | Storage device with data deduplication, operation method of storage device, and operation method of storage server | |
CN115145468A (zh) | 获取地址空间属性的方法、数据备份方法及存储设备 | |
CN111858401A (zh) | 提供异构命名空间的存储设备及其在数据库中的应用 | |
US11941246B2 (en) | Memory system, data processing system including the same, and operating method thereof | |
EP4369206A1 (en) | Techniques for instance storage using segment-based storage |
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 |