[go: up one dir, main page]

CN108733312B - 存储管理方法和设备 - Google Patents

存储管理方法和设备 Download PDF

Info

Publication number
CN108733312B
CN108733312B CN201710250388.4A CN201710250388A CN108733312B CN 108733312 B CN108733312 B CN 108733312B CN 201710250388 A CN201710250388 A CN 201710250388A CN 108733312 B CN108733312 B CN 108733312B
Authority
CN
China
Prior art keywords
physical
profiles
profile
cache
record
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
Application number
CN201710250388.4A
Other languages
English (en)
Other versions
CN108733312A (zh
Inventor
韩耕
高健
李卫华
康剑斌
董继炳
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
EMC Corp
Original Assignee
EMC IP Holding Co LLC
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by EMC IP Holding Co LLC filed Critical EMC IP Holding Co LLC
Priority to CN201710250388.4A priority Critical patent/CN108733312B/zh
Priority to US15/954,812 priority patent/US10657066B2/en
Publication of CN108733312A publication Critical patent/CN108733312A/zh
Priority to US16/846,673 priority patent/US11093406B2/en
Application granted granted Critical
Publication of CN108733312B publication Critical patent/CN108733312B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1009Address translation using page tables, e.g. page table structures
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1008Correctness of operation, e.g. memory ordering
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/65Details of virtual memory and virtual address translation
    • G06F2212/657Virtual address space management
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7203Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks

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)
  • Memory System Of A Hierarchy Structure (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本公开的实施例涉及存储管理的方法和设备。例如,提出了一种方法,包括:创建用于地址映射的多个简档,简档包含总的映射表中部分的映射关系以及为多个简档中部分简档建立索引以加快查找速率。还公开了相应的设备和计算机程序产品。

Description

存储管理方法和设备
技术领域
本公开的实施例总体涉及存储管理,并且更具体地,涉及数据存储方法和设备。
背景技术
逻辑空间与物理空间之间的映射是一个经典的计算机科学课题。映射可以为非连续的物理空间提供虚拟化。通过虚拟化,可以获得如下好处:几个孤立的连续逻辑空间,每个空间都以相同的逻辑地址开始;结合按需分配或精简配置技术,可以获得大于物理容量的总逻辑容量。通常,地址映射表被用于记录逻辑块地址和物理块地址之间的映射关系。由于地址映射表的通常比较大,因此其被存储在非易失性存储设备上,不利于快速访问。
发明内容
本公开的实施例提供了存储管理方法、设备和相应的计算机程序产品。
根据本公开的第一方面,提供了一种存储管理的方法。该方法包括:创建用于地址映射的多个简档,一个简档包含被存储在非易失性存储设备上的地址映射表中的一部分并且简档指示:多个逻辑块中的初始逻辑块的逻辑地址,与逻辑起始地址相对应的物理起始地址,多个逻辑块的数目,以及修改标志位,指示该简档相对于地址映射表是否发生过改变;将所述多个简档按照相应的逻辑起始地址的顺序存储在缓存中;在缓存中为多个简档中的部分简档创建索引。
根据本公开的第二方面,提供了在一种电子设备。该设备包括:处理器;与处理器耦合的存储器,存储器具有存储于其中的指令,指令在被所述处理器执行时使得所述电子设备执行动作,所述动作包括:创建用于地址映射的多个简档,一个简档包含被存储在非易失性存储设备上的地址映射表中的一部分并且简档指示:多个逻辑块中的初始逻辑块的逻辑地址,与逻辑起始地址相对应的物理起始地址,多个逻辑块的数目,以及修改标志位,指示该简档相对于地址映射表是否发生过改变;将所述多个简档按照相应的逻辑起始地址的顺序存储在缓存中;在缓存中为多个简档中的部分简档创建索引。
本公开的第三方面提供了一种计算机可读介质。该计算机可读介质上存储有指令,当指令在被至少一个处理单元执行时,使得至少一个处理单元实现根据本公开的第一方面的实施例的方法。
提供发明内容部分是为了简化的形式来介绍对概念的选择,它们在下文的具体实施方式中将被进一步描述。发明内容部分无意标识本公开的关键特征或主要特征,也无意限制本公开的范围。
附图说明
通过结合附图对本公开示例性实施例进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施例中,相同的参考标号通常代表相同部件。
图1示出了根据本公开的实施例的存储管理环境的示意图;
图2示出了根据本公开的实施例的存储管理过程或方法的流程图;
图3示出了根据本公开的实施例的地址映射缓存结构的框图;
图4示出了根据本公开的实施例的用于检查地址映射的过程或方法的流程图;
图5示出了根据本公开的实施例的用于修改地址映射的过程或方法的流程图;
图6示出了根据本公开的实施例的用于回收存储空间的过程或方法的流程图;
图7示出了能够根据本公开实施例的用于存储管理的装置的示意性框图以及
图8示出了根据本公开的实施例的用于存储管理的设备的示意性框图。
具体实施方式
下面将参照附图更详细地描述本公开的优选实施例。虽然附图中显示了本公开的优选实施例,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
在本文中使用的术语“包括”及其变形表示开放性包括,即“包括但不限于”。除非特别申明,术语“或”表示“和/或”。术语“基于”表示“至少部分地基于”。术语“一个示例实施例”和“一个实施例”表示“至少一个示例实施例”。术语“另一实施例”表示“至少一个另外的实施例”。术语“第一”、“第二”等等可以指代不同的或相同的对象。下文还可能包括其它明确的和隐含的定义。
在本公开中,术语“逻辑块”是指逻辑存储空间被分为连续的逻辑单元,每个逻辑单元被称为“逻辑块”。每个逻辑块具有唯一的逻辑地址,该地址被称为“逻辑块地址”(Logical Block Address,LBA)。
在本公开中,术语“物理块”是指物理存储空间被分为多个物理单元,每个物理单元被称为“物理块”。每个物理块具有唯一的物理地址,该地址被称为“物理块地址”(Physical Block Address)。术语“物理区段”是指包括多个连续物理块的物理存储空间。
在本公开中,术语“地址映射表”是指记录LBA与PBA之间的地址关系的表。
如前所述,地址映射表被用于记录LBA与PBA之间的地址映射关系。地址映射表所占的存储空间通常远超于存储器的容量,所其被存储在诸如硬盘等的非易失性存储设备上。在运行期间,LBA和PBA之间的映射处于动态变化中。访问地址映射表的速度亟待提高。
为了至少部分地解决上述以及其他潜在的问题和缺陷,本公开的实施例提供了一种用于存储管理的方法。根据本公开的实施例,地址映射表的部分被存储在存储器的缓存中。本公开的实施例可以至少以下优点:提高了存储器的使用效率,节约了存储空间;提高了地址映射关系的查找效率;以及缓存中的数据结构易于维持。
图1示出了本公开的实施例可实现的环境100的示意图。环境100可以包括存储器106和非易失性存储设备(诸如硬盘)110。存储器106包括缓存108。根据本公开的实施例的地址映射缓存结构可以实现在缓存108中。应理解,图1中所示的存储器106、非易失性存储设备110以及缓存108的数目都是示例性的。
图2示出了根据本公开的实施例存储管理过程或方法200的流程图。现结合图3所示的地址映射缓存结构300,对图2进行进一步地解释。
在202,用于地址映射的多个简档302-1、302-2、302-3、302-4、302-5(统称简档302)被创建,一个简档302包括被存储在非易失性存储设备110中的地址映射表中的一部分,并且简档302指示多个逻辑块中的初始逻辑块的逻辑起始地址,与逻辑起始地址相对应的物理起始地址,多个逻辑块的数目,以及修改标志位,指示该简档相对于所述地址映射表是否发生过改变。
作为示例,如图1所示,简档302-1指示多个逻辑块中的初始逻辑块的逻辑起始地址为0x1000;与该逻辑起始地址相对应的物理起始地址为0x800;多个逻辑块的数目为20;修改标志位为“脏”,其指示简档302-1相对于地址映射表发生过改变。应理解,当修改标志位为“干净”时,其指示简档相对于地址映射表未发生过改变。应理解,图3中所示的简档302的数目仅为示例性的,而非限制性的。此外,图3中所示的多个简档302-1、302-2、302-3、302-4、302-5中的逻辑起始地址、物理起始地址、逻辑块的数目、修改标志位等的值均为示例性的,而非限制性的。
在204,多个简档302-1、302-2、302-3、302-4、302-5按照相应的逻辑起始地址的顺序被存储在缓存108中。仅作为示例,如图3所示,多个简档302-1、302-2、302-3、302-4、302-5按照逻辑起始地址的升序排列。应理解,多个简档302-1、302-2、302-3、302-4、302-5也可以按照逻辑起始地址降序排列。
在206,在缓存108中为多个简档302-1、302-2、302-3、302-4、302-5中的部分简档创建索引。仅作为示例,如图3所示,针对简档302-1、302-3和302-5创建了索引3021-1、3021-3和3021-5。在某些实施例中,索引3021-1、3021-3和3021-5分别指示对应的简档的逻辑初始地址。在某些实施例中,二级索引3031-3可以被创建。
本领域技术人员应理解存在多种为多个简档302-1、302-2、302-3、302-4、302-5中的部分简档创建索引的方法。例如,在某些实施例中,部分简档可以被随机地选择。仅作为说明性的示例,响应于简档302-1被存储在缓存108中,生成随机数。如果所生成的随机数为偶数,则创建简档302-1的索引。在某些实施例中,基于访问频度,部分简档被选择。应理解,上述方法仅为示例性的而非旨在限制本公开的实施例。
在某些实施例中,用于物理区段的记录3023被创建,该记录指示该物理区段中的物理起始地址和所包含的物理块的数目。简档302中的一个简档指示的多个逻辑块中的至少部分逻辑块被映射到该物理区段。仅作为示例,图3示出了多个记录3023-1、3023-2、3023-3、3023-4以及3023-5(统称为记录3023)。应理解,图3中所示的记录的数目是示例的而非限制的。仅作为示例,记录3023-1指示了对应的物理区段的起始物理块的物理起始地址为0x800,以及该物理区段包括80个物理块。应理解,图3所示的记录中的物理起始地址和物理块数目的值仅为示例的而非限制的。
在某些实施例中,由一个简档302所指示的多个逻辑块被映射到多个物理区段上,如图3所示,记录3023-1和记录3023-3指示了简档302-1所指示的逻辑块被映射到的两个物理区段的起始物理块的物理地址以及两个物理区段各自包括的物理块的数目。
在某些实施例中,如果多个记录中前一个记录的物理结束地址与后一个物理起始地址是连续的,则该前一个记录和后一个记录被合并。仅作为示例,图3所示的记录3023-3是由相邻的两个物理区段节点(未示出)合并得到的。因此,记录3023-3指示了两个简档302-3和302-3所指示的逻辑块被映射到的物理区段的起始物理块的物理地址以及总共的所包括的物理块的数目。应理解,图3中所示的记录指示的起始物理块的物理地址以及物理块的数目等的值均为示例性的而非限制性的。
图4至图7分别示出了可以被用于本公开的实施例的检查地址映射的方法、修改地址映射的方法以及回收简档的方法。
图4示出了根据本公开的实施例的用于查找地址映射的过程或方法400的流程图。在某些实施例中,响应于获得检查地址映射的请求,该请求基于简档被分为至少一个子请求,从而一个子请求不涉及两个简档。针对每个子请求,分别执行检查地址映射的过程或方法400。
在402,对目标简档的请求被接收。
在406,基于索引3021在缓存108中搜索请求对应的简档。
在408,所对应的简档被确定是否存在于缓存108中。
如果所对应的简档存在于缓存108中,则过程或方法400进行到422,在422,简档被用于服务该子请求。
如果所对应的简档不存在于缓存108中,则在412,目标简档被创建。在某些实施例中,在412,创建目标简档包括:从非易失性存储设备110获得目标简档所对应的地址映射表。在某些实施例中,如果创建的目标简档多于一个,则这些创建的目标简档按照逻辑起始地址的顺序被存储在缓存108中。
在某些实施例中,针对目标简档可以创建索引。应理解,上述创建索引的方法可以被用于创建目标简档的索引。
在422,目标简档被利用来服务该请求。。
如前所述,在某些实施例中,响应于获得检查地址映射的请求,该请求基于简档被分为至少一个子请求,从而一个子请求不涉及两个简档。针对每个子请求,分别执行检查地址映射的过程或方法400。响应于所有的子请求均被执行了执行检查地址映射的过程或方法400,所得到的所有结果将组合作为该请求的最终结果。
图5示出了根据本公开的实施例的用于修改地址映射的过程或方法500的流程图。在某些实施例中,响应于获得修改地址映射的请求,该请求基于简档被分为至少一个子请求,从而一个子请求不涉及两个简档。针对每个子请求,分别执行修改地址映射的过程或方法500。
在502,对目标简档包含的地址映射表的部分的修改的请求被接收。
在506,基于索引在缓存108中搜索目标简档。
在508,目标简档被确定是否存在于缓存108中。
如果目标简档存在于缓存108中,在512,根据目标简档,与该简档相关联的物理区段的记录被更新。
仅作为示例,在某些实施例中,根据目标简档指示的地址映射,物理区段记录内的起始物理地址以及物理块的数目可以被修改。在某些实施例中,根据该简档指示的地址映射,相邻的物理区段记录可以被合并。在某些实施例中,根据该简档指示的地址映射,一个物理区段记录也可以被分为多个物理区段记录。
如果目标简档不存在于缓存108中,则在510,目标简档被创建。在某些实施例中,针对目标简档可以创建索引。应理解,上述创建索引的方法可以被用于创建目标简档的索引。在某些实施例中,如果创建的目标简档多于一个,则这些创建的目标简档按照逻辑起始地址的顺序被存储在缓存108中。
在512,根据创建的简档,与该目标简档相关联的物理区段记录被更新。在某些实施例中,根据该简档指示的地址映射,物理区段记录内的起始物理地址以及物理块的数目可以被修改。在某些实施例中,根据该简档指示的地址映射,相邻的物理区段记录可以被合并。在某些实施例中,根据该简档指示的地址映射,一个物理区段记录也可以被分为多个物理区段记录。
在516,目标简档的修改指示位被标记为“脏”以指示目标简档相对于非易失性存储设备上的地址映射改变过。
如前所述,在某些实施例中,该请求基于简档可以被分为至少一个子请求,从而一个子请求不涉及两个简档。针对每个子请求,分别执行修改地址映射的过程或方法500,直至每个子请求都被处理。
图6示出了根据本公开的实施例的用于回收存储空间的过程或方法600的流程图。
在604,缓存108中空闲的简档数目被判断是否低于第一阈值。应理解,本领域技术人员可以在实践中设置合适的第一阈值。如果缓存108中空闲的简档数目不低于第一阈值,则不触发回收存储空间,即直接在610结束。如果缓存108中空闲的简档数目低于第一阈值,则触发回收存储空间。
在606,缓存中的简档被回收。在某些实施例中,如果回收的简档被创建了索引,则该索引被移除。在某些实施例中,改标志位为“干净”的简档可以被优先回收。
在某些实施例中,修改标志位为“脏”的简档可以被回收。在某些实施例中,修改标志位为“脏”的简档指示的地址映射被存储到非易失性存储设备上之后,该简档被回收。如果该修改标志位为“脏”的简档被创建了索引,则该索引将被移除。
在608,缓存108中空闲的简档的数目被判断是否高于第二阈值。应理解,本领域技术人员可以在实践中设置合适的第一阈值。如果缓存108中空闲的简档数目高于第二阈值,则直接在610结束回收简档。如果缓存108中空闲的简档数目低于第二阈值,则继续进行简档的回收。
图7示出了根据本公开的实施例的用于存储管理的装置700的示意性框图。装置700可以实现根据本公开的实施例。如图所示,装置700包括简档创建单元706、存储单元708和索引创建单元710。
简档创建单元706被配置为创建用于地址映射的多个简档,一个简档包含被存储在非易失性存储设备上的地址映射表中的一部分并且简档指示:多个逻辑块中的初始逻辑块的逻辑地址,与逻辑起始地址相对应的物理起始地址,多个逻辑块的数目,以及修改标志位,指示该简档相对于地址映射表是否发生过改变。存储单元708被配置为将所述多个简档按照相应的逻辑起始地址的顺序存储在缓存中。索引创建单元710被配置为在缓存中为多个简档中的部分简档创建索引。
在某些实施例中,索引创建单元710还被配置为随机地选择部分简档创建索引。在某些实施例中,索引创建单元还被配置为基于访问频度选择部分简档创建索引。
在某些实施例中,装置700还可以包括物理区段记录创建单元712(未示出),其被配置为创建用于第一物理区段的第一记录,第一记录指示第一物理区段中的物理起始地址和所包含的物理块的第一数目,多个简档中的第一简档指示的多个逻辑块中的至少部分逻辑块被映射到第一物理区段;创建用于第二物理区段的第二记录,第二记录指示第二物理区段中的物理起始地址和所包含的物理块的第二数目,多个简档中的第二简档指示的多个逻辑块的至少部分逻辑块被映射到第二物理区段;响应于第一物理区段的物理结束地址和第二物理区段的物理起始地址是连续的,合并第一记录和述第二记录以生成第三记录,述第三记录指示所第一物理区段中的物理起始地址以及第一数目与所述第二数目之和;以及将第三记录存储在缓存中。在某些实施例中,物理区段记录创建单元712还被配置为:响应于所述第一物理区段的物理结束地址和所述第二物理区段的物理起始地址是非连续的,将第一记录和第二记录存储在缓存中。
在某些实施例中,装置700还包括搜索单元714(未示出),被配置为:接收到对目标简档的请求,请求指示与目标简档相关联的;基于索引在缓存中搜索目标简档。在某些实施例中,简档创建单元706,还被配置为:响应于目标简档不存在于缓存中,基于地址映射表创建目标简档。
在某些实施例中,装置700还包括修改单元716(未示出),被配置为:响应于目标简档存在于缓存中,更新目标简档所包含的地址映射表的述部分。
在某些实施例中,装置700还包括回收单元718(未示出),被配置为:响应于缓存中的空闲简档数目低于第一阈值,触发对所述多个简档的回收;响应于缓存中的空闲简档的数目高于第二阈值,停止回收。
在某些实施例中,回收单元718还被配置为:回收多个简档中相对于地址映射表未发生过改变的简档。在某些实施例中,回收单元718还被配置为:将改变过的简档中的改变过的地址映射存储到非易失性存储设备。在某些实施例中,回收单元718还被配置为移除被回收的简档的索引。。
装置700中所包括的单元可以利用各种方式来实现,包括软件、硬件、固件或其任意组合。在一个实施例中,一个或多个单元可以使用软件和/或固件来实现,例如存储在存储介质上的机器可执行指令。除了机器可执行指令之外或者作为替代,装置700中的部分或者全部单元可以至少部分地由一个或多个硬件逻辑组件来实现。作为示例而非限制,可以使用的示范类型的硬件逻辑组件包括现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准品(ASSP)、片上系统(SOC)、复杂可编程逻辑器件(CPLD),等等。
图8示出了适合于用来实现本公开实施例的电子设备800的示意性框图。如图所示,设备800包括中央处理单元(CPU)810,其可以根据存储在只读存储器(ROM)820中的计算机程序指令或者从存储单元880加载到随机访问存储器(RAM)830中的计算机程序指令,来执行各种适当的动作和处理。在RAM 830中,还可存储设备800操作所需的各种程序和数据。CPU 810、ROM 820以及RAM 830通过总线840彼此相连。输入/输出(I/O)接口850也连接至总线840。
设备800中的多个部件连接至I/O接口850,包括:输入单元860,例如键盘、鼠标等;输出单元870,例如各种类型的显示器、扬声器等;存储单元880,例如磁盘、光盘等;以及通信单元890,例如网卡、调制解调器、无线通信收发机等。通信单元890允许设备800通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
上文所描述的各个过程和处理,例如过程200、300、400、500和600,可由处理单元810执行。例如,在一些实施例中,方法/方法200、300、400、500和600可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元880。在一些实施例中,计算机程序的部分或者全部可以经由ROM 820和/或通信单元890而被载入和/或安装到设备800上。当计算机程序被加载到RAM 830并由CPU 810执行时,可以执行上文描述的方法200、300、400、500和600的一个或多个步骤。备选地,在其他实施例中,CPU 801也可以以其他任何适当的方式被配置以实现上述过程。
本公开可以是方法、装置、系统和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于执行本公开的各个方面的计算机可读程序指令。
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本公开操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本公开的各个方面。
这里参照根据本公开实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本公开的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理单元,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理单元执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本公开的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本公开的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。

Claims (23)

1.一种存储管理的方法,包括:
创建用于地址映射的多个简档,一个简档包含被存储在非易失性存储设备上的地址映射表中的一部分并且简档指示:
多个逻辑块中的初始逻辑块的逻辑起始地址,
与所述逻辑起始地址相对应的物理起始地址,
所述多个逻辑块的数目,以及
修改标志位,指示该简档相对于所述地址映射表是否发生过改变;
将所述多个简档按照相应的逻辑起始地址的顺序存储在缓存中;
在所述缓存中为所述多个简档中的部分简档创建索引;
创建用于第一物理区段的第一记录,所述第一记录指示所述第一物理区段中的物理起始地址和所包含的物理块的第一数目,所述多个简档中的第一简档指示的所述多个逻辑块中的至少部分逻辑块被映射到所述第一物理区段;
创建用于第二物理区段的第二记录,所述第二记录指示所述第二物理区段中的物理起始地址和所包含的物理块的第二数目,所述多个简档中的第二简档指示的所述多个逻辑块的至少部分逻辑块被映射到所述第二物理区段;
响应于所述第一物理区段的物理结束地址和所述第二物理区段的物理起始地址是连续的,合并所述第一记录和所述第二记录以生成第三记录,所述第三记录指示所述第一物理区段中的物理起始地址以及所述第一数目与所述第二数目之和;以及
将所述第三记录存储在所述缓存中。
2.根据权利要求1所述的方法,其中在所述缓存中为所述多个简档中的部分简档创建索引包括:
随机地选择所述部分简档创建指引。
3.根据权利要求1所述的方法,其中在所述缓存中为所述多个简档中的部分简档创建索引包括:
基于访问频度选择所述部分简档创建索引。
4.根据权利要求1所述的方法,还包括:
响应于所述第一物理区段的物理结束地址和所述第二物理区段的物理起始地址是非连续的,将所述第一记录和所述第二记录存储在所述缓存中。
5.根据权利要求1所述的方法,还包括:
接收到对目标简档的请求,所述请求指示与所述目标简档相关联的;
基于所述索引在所述缓存中搜索所述目标简档。
6.根据权利要求5所述的方法,还包括:
响应于所述目标简档不存在于所述缓存中,基于所述地址映射表创建所述目标简档。
7.根据权利要求5所述的方法,其中所述请求包括对所述目标简档所包含的所述地址映射表的所述部分的修改的请求,还包括:
响应于所述目标简档存在于所述缓存中,更新所述目标简档所包含的所述地址映射表的所述部分。
8.根据权利要求1所述的方法,还包括:
响应于所述缓存中的空闲简档数目低于第一阈值,触发对所述多个简档的回收;
响应于所述缓存中的空闲简档的数目高于第二阈值,停止回收。
9.根据权利要求8所述的方法,其中触发对所述多个简档的回收包括:
回收所述多个简档中相对于所述地址映射表未发生过改变的简档。
10.根据权利要求8所述的方法,触发对所述多个简档的回收包括:
回收所述多个简档中相对于所述地址映射表改变过的简档,包括:
将所述改变过的简档中的改变过的地址映射存储到所述非易失性存储设备。
11.根据权利要求8所述的方法,还包括:
移除被回收的简档的索引。
12.一种电子设备,所述设备包括:
处理器;
与所述处理器耦合的存储器,所述存储器具有存储于其中的指令,所述指令在被所述处理器执行时使所述电子设备执行动作,所述动作包括:
创建用于地址映射的多个简档,一个简档包含被存储在非易失性存储设备上的地址映射表中的一部分并且简档指示:
多个逻辑块中的初始逻辑块的逻辑起始地址,
与所述逻辑起始地址相对应的物理起始地址,
所述多个逻辑块的数目,以及
修改标志位,指示该简档相对于所述地址映射表是否发生过改变;
将所述多个简档按照相应的逻辑起始地址的顺序存储在缓存中;
在所述缓存中为所述多个简档中的部分简档创建索引;
创建用于第一物理区段的第一记录,所述第一记录指示所述第一物理区段中的物理起始地址和所包含的物理块的第一数目,所述多个简档中的第一简档指示的所述多个逻辑块中的至少部分逻辑块被映射到所述第一物理区段;
创建用于第二物理区段的第二记录,所述第二记录指示所述第二物理区段中的物理起始地址和所包含的物理块的第二数目,所述多个简档中的第二简档指示的所述多个逻辑块的至少部分逻辑块被映射到所述第二物理区段;
响应于所述第一物理区段的物理结束地址和所述第二物理区段的物理起始地址是连续的,合并所述第一记录和所述第二记录以生成第三记录,所述第三记录指示所述第一物理区段中的物理起始地址以及所述第一数目与所述第二数目之和;以及
将所述第三记录存储在所述缓存中。
13.根据权利要求12所述的设备,其中在所述缓存中为所述多个简档中的部分简档创建索引包括:
随机地选择所述部分简档创建索引。
14.根据权利要求12所述的设备,其中在所述缓存中为所述多个简档中的部分简档创建索引包括:
基于访问频度选择所述部分简档创建索引。
15.根据权利要求12所述的设备,其中所述动作还包括:
响应于所述第一物理区段的物理结束地址和所述第二物理区段的物理起始地址是非连续的,将所述第一记录和所述第二记录存储在所述缓存中。
16.根据权利要求 12所述的设备,其中所述动作还包括:
接收到对目标简档的请求,所述请求指示与所述目标简档相关联的;
基于所述索引在所述缓存中搜索所述目标简档。
17.根据权利要求16所述的设备,其中所述动作还包括:
响应于所述目标简档不存在于所述缓存中,基于所述地址映射表创建所述目标简档。
18.根据权利要求16所述的设备,其中所述请求包括对所述目标简档所包含的所述地址映射表的所述部分的修改的请求,所述动作还包括:
响应于所述目标简档存在于所述缓存中,更新所述目标简档所包含的所述地址映射表的所述部分。
19.根据权利要求12所述的设备,所述动作还包括:
响应于所述缓存中的空闲简档数目低于第一阈值,触发对所述多个简档的回收;以及
响应于所述多个简档中的空闲简档的数目高于第二阈值,停止回收。
20.根据权利要求12所述的设备,所述动作还包括:
回收所述多个简档中相对于所述地址映射表未发生过改变的简档。
21.根据权利要求12所述的设备,所述动作还包括:
回收所述多个简档中相对于所述地址映射表改变过的简档,包括:
将所述改变过的简档中的改变过的地址映射存储到所述非易失性存储设备。
22.根据权利要求12所述的设备,所述动作还包括:
移除被回收的简档的索引。
23.一种计算机程序产品,所述计算机程序产品被有形地存储在非瞬态计算机可读介质上并且包括机器可执行指令,所述机器可执行指令在被执行时使机器执行根据权利要求1至11任一项所述的方法的步骤。
CN201710250388.4A 2017-04-17 2017-04-17 存储管理方法和设备 Active CN108733312B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN201710250388.4A CN108733312B (zh) 2017-04-17 2017-04-17 存储管理方法和设备
US15/954,812 US10657066B2 (en) 2017-04-17 2018-04-17 Method and device for storage management
US16/846,673 US11093406B2 (en) 2017-04-17 2020-04-13 Method and device for storage management

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710250388.4A CN108733312B (zh) 2017-04-17 2017-04-17 存储管理方法和设备

Publications (2)

Publication Number Publication Date
CN108733312A CN108733312A (zh) 2018-11-02
CN108733312B true CN108733312B (zh) 2021-05-28

Family

ID=63790607

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710250388.4A Active CN108733312B (zh) 2017-04-17 2017-04-17 存储管理方法和设备

Country Status (2)

Country Link
US (2) US10657066B2 (zh)
CN (1) CN108733312B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111949605B (zh) * 2019-05-15 2024-07-19 伊姆西Ip控股有限责任公司 用于实现文件系统的方法、设备和计算机程序产品
WO2021046725A1 (en) * 2019-09-10 2021-03-18 Micron Technology, Inc. Memory mapping device and method
CN112015341B (zh) * 2020-08-26 2024-03-22 合肥康芯威存储技术有限公司 一种数据存储方法、存储系统及存储介质
CN112199047B (zh) * 2020-10-12 2024-10-18 北京集创北方科技股份有限公司 一种存储装置、方法、驱动芯片、显示面板及电子设备
CN114816218A (zh) 2021-01-21 2022-07-29 伊姆西Ip控股有限责任公司 管理存储块的方法、电子设备和计算机程序产品
CN114817169A (zh) 2021-01-22 2022-07-29 伊姆西Ip控股有限责任公司 存储管理方法、设备和计算机程序产品
CN115269455B (zh) * 2022-09-30 2022-12-23 湖南兴天电子科技股份有限公司 基于fpga的磁盘数据读写控制方法、装置和存储终端

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101615146A (zh) * 2009-07-08 2009-12-30 中国科学院计算技术研究所 磁盘阵列在线重构系统及方法
CN103927130A (zh) * 2014-03-14 2014-07-16 山东大学 基于内存管理单元mmu的统一内外存架构
CN104102585A (zh) * 2013-04-03 2014-10-15 群联电子股份有限公司 映射信息记录方法、存储器控制器与存储器储存装置
CN106201916A (zh) * 2016-07-25 2016-12-07 中国人民解放军国防科学技术大学 一种面向ssd的非易失缓存机制
KR101716865B1 (ko) * 2016-04-29 2017-03-15 고려대학교 산학협력단 주 메모리의 에러 셀 회피를 위한 스택 및 힙 메모리 관리 장치 및 그 방법

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7130956B2 (en) 2004-02-10 2006-10-31 Sun Microsystems, Inc. Storage system including hierarchical cache metadata
US8775773B2 (en) * 2011-08-26 2014-07-08 Vmware, Inc. Object storage system
US20140006538A1 (en) * 2012-06-28 2014-01-02 Bytemobile, Inc. Intelligent Client-Side Caching On Mobile Devices
US9898410B2 (en) 2013-09-10 2018-02-20 Intel Corporation Hybrid main memory using a fine-grain level of remapping
US10127298B2 (en) * 2015-10-30 2018-11-13 Intuit Inc. Feedback loops for managing profile store synchronization issues

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101615146A (zh) * 2009-07-08 2009-12-30 中国科学院计算技术研究所 磁盘阵列在线重构系统及方法
CN104102585A (zh) * 2013-04-03 2014-10-15 群联电子股份有限公司 映射信息记录方法、存储器控制器与存储器储存装置
CN103927130A (zh) * 2014-03-14 2014-07-16 山东大学 基于内存管理单元mmu的统一内外存架构
KR101716865B1 (ko) * 2016-04-29 2017-03-15 고려대학교 산학협력단 주 메모리의 에러 셀 회피를 위한 스택 및 힙 메모리 관리 장치 및 그 방법
CN106201916A (zh) * 2016-07-25 2016-12-07 中国人民解放军国防科学技术大学 一种面向ssd的非易失缓存机制

Also Published As

Publication number Publication date
US20200257636A1 (en) 2020-08-13
US11093406B2 (en) 2021-08-17
US10657066B2 (en) 2020-05-19
CN108733312A (zh) 2018-11-02
US20180300254A1 (en) 2018-10-18

Similar Documents

Publication Publication Date Title
CN108733312B (zh) 存储管理方法和设备
CN111949605B (zh) 用于实现文件系统的方法、设备和计算机程序产品
US10831654B2 (en) Cache management using multiple cache history lists
US10705735B2 (en) Method and device for managing hash table, and computer program product
US10698831B2 (en) Method and apparatus for data access
CN107870728B (zh) 用于移动数据的方法和设备
CN110737399B (zh) 用于管理存储系统的方法、设备和计算机程序产品
CN108228646B (zh) 用于访问数据的方法和电子设备
US10733008B2 (en) Method, device and computer readable storage medium for managing a virtual machine
US11294880B2 (en) Method, device and computer program product for data processing
US11093389B2 (en) Method, apparatus, and computer program product for managing storage system
CN111506604B (zh) 访问数据的方法、装置和计算机程序产品
US20190129859A1 (en) Method, device and computer program product for cache management
CN114327917A (zh) 内存管理方法、计算设备及可读存储介质
CN104572917A (zh) 数据锁定方法、装置及分布式存储系统
US11520818B2 (en) Method, apparatus and computer program product for managing metadata of storage object
CN111104249A (zh) 用于数据备份的方法、设备和计算机程序产品
CN114816218A (zh) 管理存储块的方法、电子设备和计算机程序产品
CN113297003B (zh) 管理备份数据的方法、电子设备和计算机程序产品
CN113742131A (zh) 用于存储管理的方法、电子设备和计算机程序产品
CN110968649B (zh) 用于管理数据集的方法、设备和计算机程序产品
CN110427391B (zh) 确定重复数据的方法、设备和计算机程序产品
CN112486404B (zh) 用于管理存储块的方法、设备和计算机程序产品
CN111143232A (zh) 用于存储元数据的方法、设备和计算机程序产品
US12346205B2 (en) Method, device and computer readable medium for garbage collection

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