对永久性存储装置写入和读取数据的方法和系统制造方法及图纸

技术编号:19424827 阅读:20 留言:0更新日期:2018-11-14 10:30
本发明专利技术涉及对永久性存储装置写入和读取数据的方法和系统。总体上来说,本技术的实施例涉及用于存储和读取来自永久性存储装置的数据的方法和系统。更具体地,本技术的实施例涉及用于将数据存储在永久性存储装置中的方法和系统,其中写入永久性存储装置的数据不能在永久性存储装置中立即访问(即,在不可访问周期期间)。在这种情况下,本技术的实施例提供了一种方法和系统,以使存储系统能够使用主缓存条目表(PCET)和溢出表来服务于对数据的读取请求。

【技术实现步骤摘要】
对永久性存储装置写入和读取数据的方法和系统
本公开涉及对永久性存储装置(storage)写入和读取数据的方法和系统。总体上来说,本技术的实施例涉及用于存储和读取来自永久性存储装置的数据的方法和系统。更具体地,本技术的实施例涉及用于将数据存储在永久性存储装置中的方法和系统,其中写入永久性存储装置的数据不能在永久性存储装置中立即访问(即,在不可访问周期期间)。
技术介绍
存储系统(storagesystem)包括为写入请求和读取请求提供服务的功能。更具体地说,传统的存储系统包括将数据写入永久性存储装置,然后立即从该永久性存储装置中读取该数据的功能。
技术实现思路
根据本公开的一个方面涉及一种用于管理存储在永久性存储装置中的数据的方法。所述方法包括:接收包括逻辑地址和第一数据的写入请求;将对应于所述逻辑地址的表条目存储在主缓存(cache)条目表中;更新对应于所述逻辑地址的位图条目;将所述第一数据存储在外部存储器(memory)中,其中所述外部存储器可操作地连接到所述永久性存储装置;和向所述永久性存储装置发送所述第一数据的副本。根据本公开的另一个方面涉及一种存储模块(storagemodule)。所述存储模块包括:现场可编程门阵列FPGA,其包括内部存储器;外部存储器,其可操作地连接到所述FPGA;和存储单元(storageunit),其可操作地连接到所述FPGA并且包括永久性存储装置。其中所述FPGA被配置为:接收包括逻辑地址和第一数据的写入请求;将对应于所述逻辑地址的表条目存储在所述内部存储器中的主缓存条目表中;在存储在所述外部存储器中的位图中更新对应于所述逻辑地址的位图条目;将所述第一数据存储在所述外部存储器中;和向所述永久性存储装置发送所述第一数据的副本。附图说明图1示出了根据本技术的一个或多个实施例的系统。图2示出了根据本技术的一个或多个实施例的存储模块。图3示出了根据本技术的一个或多个实施例的表条目的示例。图4示出了主缓存条目表和溢出表中的表条目可以如何关联的示例。图5示出了根据本技术的一个或多个实施例的用于将数据写入现场可编程门阵列(FPGA)和永久性存储装置的方法。图6示出了根据本技术的一个或多个实施例的用于从FPGA和永久性存储装置读取数据的方法。图7示出了根据本技术的一个或多个实施例的用于更新主缓存条目表和溢出表中的表条目的方法。具体实施方式现在将参考附图详细描述该技术的具体实施例。在本技术的实施例的以下详细描述中,阐述了许多具体细节以便提供对该技术更透彻的理解。然而,对于本领域的普通技术人员来说显而易见的是,可以在没有这些具体细节的情况下实践该技术。在其他情况下,没有详细描述众所周知的特征以避免不必要地使描述复杂化。在以下对图1至图7的描述中,在本技术的各种实施例中关于附图描述的任何组件可以等同于关于任何其他附图描述的一个或多个相同名称的组件。为了简洁起见,这些组件的描述将不会在每个图中重复。因此,每个附图的组件的每个和每一个实施例通过引用并入并且被假定为可选地存在于具有一个或多个相似命名组件的每个其他附图中。另外,根据本技术的各种实施例,附图的组件的任何描述将被解释为可选的实施例,其除了、结合或替代关于对应于任何其他图中的相似命名组件描述的实施例被实现。通常,本技术的实施例涉及用于存储和读取来自永久性存储装置的数据的方法和系统。更具体地,本技术的实施例涉及用于将数据存储在永久性存储装置中的方法和系统,其中写入永久性存储装置的数据不能在永久性存储装置中立即访问(即,在不可访问期间)。在这种情况下,本技术的实施例提供了一种方法和系统,以使存储系统能够使用主缓存条目表(PCET)和溢出表来服务对数据的读取请求。图1示出了根据本技术的一个实施例的系统。如图1所示,该系统包括一个或多个主机(100)、控制模块(102)以及一个或多个存储模块(104A、104N)。在本技术的一个实施例中,主机(100)是任何系统或在系统上执行的过程,其包括向控制模块发出读取请求和/或写入请求的功能。在本技术的一个实施例中,主机(100)可以分别包括处理器(未示出)、存储器(未示出)和永久性存储装置(未示出)。在本技术的一个实施例中,控制模块被配置为接收来自一个或多个主机(100)的写入请求和读取请求,并将接收到的请求发送到适当的存储模块(104A、104N)。关于存储模块的附加细节在下面的图2至图7中提供。此外,控制模块(102)包括接收对前述请求的响应并将响应提供给适当主机(100)的功能。在本技术的一个实施例中,控制模块包括被配置为执行指令以实现本技术的一个或多个实施例的处理器(未示出),其中指令被存储在位于控制模块(102)内或可操作地连接到控制模块(102)的非暂时性计算机可读介质(未示出)上。或者,控制模块可以使用硬件来实现。本领域技术人员将认识到,控制模块(102)可以使用软件和/或硬件的任何组合来实现。在本技术的一个实施例中,主机(100)被配置为使用以下协议中的一个或多个来与控制模块(102)通信:外围组件互连(PCI)、PCI-Express(PCIe)、PCI-eXtended(PCI-X)、非易失性存储器Express(NVMe)、PCI-Express结构的非易失性存储器Express(NVMe)、以太网结构的非易失性存储器Express(NVMe)和Infiniband结构的非易失性存储器Express(NVMe)。本领域技术人员将认识到,该技术不限于上述协议。在本技术的一个实施例中,控制模块(102)被配置为使用以下协议中的一个或多个来与存储模块(104A、104N)通信:外围组件互连(PCI)、PCI-Express(PCIe)、PCI-eXtended(PCI-X)、非易失性存储器Express(NVMe)、PCI-Express结构的非易失性存储器Express(NVMe)、以太网结构的非易失性存储器Express(NVMe)和Infiniband结构的非易失性存储器Express(NVMe)。本领域技术人员将认识到,该技术不限于上述协议。本领域技术人员将认识到,该技术不限于图1中所示的架构。图2示出了根据本技术的一个或多个实施例的存储模块。存储模块(200)包括现场可编程门阵列(FPGA)(202)、外部存储器(204)以及一个或多个存储单元(206A、206M)。下面描述这些组件中的每一个。在本技术的一个实施例中,FPGA(202)是被配置为执行图5至图7中描述的全部或部分方法的集成电路。FPGA(202)包括内部存储器(208)。内部存储器(208)是易失性存储器,其直接位于FPGA上,并且因此与存储在外部存储器(204)中的数据相比,存储在内部存储器中的数据可以更快速地被访问(即,以较低的延迟访问)。内部存储器(208)包括主缓存条目表(PCET)(210)。PCET包括一组表条目。关于表条目的附加细节在图3中提供。在本技术的一个实施例中,外部存储器(204)是易失性存储器,其包括溢出表(212)、位图(214)和数据缓存(216)。下面描述这些组件中的每一个。与PCET(210)类似,溢出表(212)包括表条目。然而,溢出表(212)的大小通常明显大于PCE本文档来自技高网...

【技术保护点】
1.一种用于管理存储在永久性存储装置中的数据的方法,所述方法包括:接收包括逻辑地址和第一数据的写入请求;将对应于所述逻辑地址的表条目存储在主缓存条目表中;更新对应于所述逻辑地址的位图条目;将所述第一数据存储在外部存储器中,其中所述外部存储器可操作地连接到所述永久性存储装置;和向所述永久性存储装置发送所述第一数据的副本。

【技术特征摘要】
2017.04.28 US 15/581,9631.一种用于管理存储在永久性存储装置中的数据的方法,所述方法包括:接收包括逻辑地址和第一数据的写入请求;将对应于所述逻辑地址的表条目存储在主缓存条目表中;更新对应于所述逻辑地址的位图条目;将所述第一数据存储在外部存储器中,其中所述外部存储器可操作地连接到所述永久性存储装置;和向所述永久性存储装置发送所述第一数据的副本。2.根据权利要求1所述的方法,还包括:接收包括第二逻辑地址和第二数据的写入请求;将对应于所述第二逻辑地址的第二表条目存储在溢出表中;更新对应于所述第二逻辑地址的位图条目;将所述第二数据存储在所述外部存储器中;和向所述永久性存储装置发送所述第二数据的副本。3.根据权利要求1所述的方法,其中将所述第二表条目存储在所述溢出表中包括:散列所述第二逻辑地址以获得散列值;利用所述散列值来确定所述主缓存条目表中的位置是满的;识别所述溢出表中的位置;和基于所述确定,将所述第二表条目存储在所述溢出表中的所述位置中。4.根据权利要求3所述的方法,其中所述表条目包括对所述第二表条目的引用。5.根据权利要求1所述的方法,其中将所述表条目存储在所述主缓存条目表中包括:散列所述逻辑地址以获得散列值;利用所述散列值来确定所述主缓存条目表中的位置是空的;和基于所述确定,将所述表条目存储在所述位置中。6.根据权利要求1所述的方法,其中所述主缓存条目表位于现场可编程门阵列FPGA上。7.根据权利要求1所述的方法,还包括:从客户端接收包括所述逻辑地址的读取请求;确定设置了所述位图中对应于所述逻辑地址的条目;基于所述确定,从所述主缓存条目表中识别所述表条目;从所述外部存储装置获得来自与所述表条目相关联的位置的所述第一数据的第二副本;和向所述客户端提供所述第一数据的所述第二副本。8.根据权利要求1所述的方法,还包括:从客户端接收包括所述逻辑地址的读取请求;确定没有设置所述位图中对应于所述逻辑地址的条目;基于所述确定,从所述永久性存储装置获得所述第一数据的第二副本;和向所述客户端提供所述第一数据的所述第二副本。9.根据权利要求1所述的方法,还包括:选择所述表条目;确定所述表条目已经存在于所述主缓存条目表中的时间周期超过了与所述永久性存储装置相关联的不可用周期;基于所述确定,将所述表条目标记为无效。10.根据权利要求9所述的方法,还包括:在将所述表条目标记为无效之后,使用响应于第二写入请求而生成的第二表条目替换所述表条目。11.根据权利要求1所述的方法,还包括:选择所述表条目;确定所述表条目已经存在于所述主缓存条目表中的时间周期超过了与所述永久性存储装置相关联的不可用周期;基于所述确定:识别第二表条目,其中所述表包括对所述第二表条目的引用,以及使用所述第二表条目替换所述表条目。12.一种存储模块,包括:现场可编程门阵列FPGA,其包括内...

【专利技术属性】
技术研发人员:T·怀尔德S·拉加达亚K·拉玛钱德兰M·西本遥
申请(专利权)人:EMC知识产权控股有限公司
类型:发明
国别省市:美国,US

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1