缓存存储适配器架构制造技术

技术编号:8275217 阅读:150 留言:0更新日期:2013-01-31 12:21
一种接口适配器,包括:包含非易失性随机访问存储器(RAM)的存储模块和查找模块。存储模块被配置为将元数据存储在非易失性RAM中。元数据标识缓存在固态存储设备中的来自外部存储设备的数据。查找模块被配置为接收读请求。查找模块进一步被配置为响应于读请求并且基于元数据而选择性地提供来自固态存储设备的已缓存数据或者提供从外部存储设备获取的第二数据。

【技术实现步骤摘要】
【国外来华专利技术】
本公开涉及缓存主机总线适配器,并且更具体地,涉及使用固态存储设备和非易失性存储器的缓存主机总线适配器。
技术介绍
在此提供的背景描述是为了总体上给出本公开的上下文。就在此
技术介绍
中描述 的工作而言,专利技术人的工作以及在提交时没有被证明为现有技术的描述并未被明确或者隐含地称为相对于本公开的现有技术。现在参考图1A,示出了一个计算机架构的示例的框图。处理器100经由北桥模块106与主存储器102和图形处理模块104通信。北桥模块106与提供对外围设备的访问的南桥模块108对接。仅作为示例,南桥模块108与PCI (外围组件互连)Express插槽110对接。在图IA中,PCI Express卡112-1和112-2安装在PCI Express插槽110上。现在参考图1B,示出了一个备选计算机架构。处理器150包括允许处理器150直接与主存储器152和图形处理模块154通信的电路。用于在处理器150与图形处理模块154之间通信的总线例如可以是AGP(加速图形端口)或者PCI Express。北桥模块156提供对处理器150的外围访问。例如,北桥模块156与安装有PCI Express卡112-1和112-2的PCI Express插槽110对接。南桥模块108和156可以与附加的总线对接,例如用于连网的以太网、用于外部外设的USB(通用串行总线)以及用于盘驱动的SATA(串行高级技术附件)。PCI Express卡112可以实现附加的接口。例如,PCI Express卡112-1可以是主机总线适配器,其为处理器100提供对诸如SCSI (小型计算机系统接口 )、eSATA (外部SATA)或者光纤通道的接口的访问。
技术实现思路
一种接口适配器,包括包含非易失性随机访问存储器(RAM)的存储模块和查找模块。存储模块被配置为将元数据存储在非易失性RAM中。元数据标识缓存在固态存储设备中的来自外部存储设备的数据。查找模块被配置为接收读请求。查找模块进一步被配置为响应于读请求并且基于元数据而选择性地提供来自固态存储设备的已缓存数据或者提供从外部存储设备获取的第二数据。在其他特征中,存储模块进一步被配置为在非易失性RAM中维护写缓冲区。第二数据在从外部存储设备被获取之后被存储在写缓冲区中。第二数据在被存储在写缓冲区之后被存储到固态存储设备中。在其他特征中,接口适配器包括缓冲区控制模块,被配置为确定何时将来自写缓冲区的第二数据存储到固态存储设备中。缓冲区控制模块被配置为基于写缓冲区中存在的用于存储在固态存储设备中的相邻位置中的、包括第二数据在内的数据的预定数量,而将第二数据存储到固态存储设备中。在又一些特征中,接口适配器包括缓存回收模块,被配置为选择性地允许固态存储设备中的数据被覆盖。在其他特征中,查找模块被配置为响应于读请求而构建存在于存储模块中的数据的命中列表,构建不存在于存储模块中的数据的未命中列表,以及根据未命中列表向外部存储设备发送数据请求。一种主机总线适配器,包括固态存储设备、非易失性随机访问存储器(RAM)以及执行模块。主机总线适配器被配置为安装在计算机中。执行模块被配置为将来自外部存储设备的数据缓存在固态存储设备中。执行模块还被配置为将元数据存储在非易失性RAM中。元数据指示什么数据被缓存在固态存储设备中。执行模块还被配置为从计算机的中央处理器接收读请求,并且使用来自固态存储设备的已缓存数据选择性地对读请求做出响 应。在其他特征中,执行模块被配置为使用部分非易失性RAM作为写缓冲区。执行模块还被配置为从中央处理器接收写请求。执行模块还被配置为在将对应于写请求的写数据存储在固态存储设备之前将写数据存储在写缓冲区中。执行模块还被配置为响应于读请求而选择性地提供来自写缓冲区的数据。执行模块还被配置为当元数据指示用于读请求之一的第一数据未被存储在写缓冲区或者固态存储设备中时,从外部存储设备请求第一数据。执行模块还被配置为一旦从外部存储设备接收到第一数据,便在将第一数据存储在固态存储设备中之前将第一数据存储在写缓冲区中。一种操作接口适配器的方法,包括将元数据存储在接口适配器的非易失性随机访问存储器(RAM)中。元数据标识被缓存在固态存储设备中的来自外部存储设备的数据。该方法包括接收读请求,以及响应于读请求并且基于元数据而选择性地提供来自固态存储设备的已缓存数据或者提供从外部存储设备获取的第二数据。通过详细描述、权利要求和附图,本公开的其他适用领域将变得清楚。详细描述和具体示例仅用于说明目的,无意限制本公开的范围。附图说明通过详细描述和附图,本公开将变得被更完全地理解,其中图IA是根据现有技术的一个计算机架构的功能框图;图IB是根据现有技术的一个计算机架构的功能框图;图2A是根据本公开原理的一个计算系统的示例的功能框图;图2B是根据本公开原理的一个计算系统的备选示例的功能框图;图3A是根据本公开原理的缓存存储适配器的示例的一个高级别功能框图;图3B是根据本公开原理的缓存存储适配器的示例的另一高级别功能框图;图4是根据本公开原理的缓存存储适配器的一个实现示例的功能框图;图5是根据本公开原理的缓存存储适配器的一个实现示例的功能框图;图6是描绘根据本公开原理的缓存存储适配器的操作示例的流程图;以及图7是描绘根据本公开原理的缓存存储适配器的操作示例的流程图。具体实施例方式下面的描述本质上仅仅是说明性的,而绝非有意限制公开、其应用或使用。出于清楚的目的,在附图中将使用相同的参考标号来标识类似的元素。在此使用的短语“A、B和C中至少一个”应当被解释为使用非排他性逻辑“或”的逻辑(A或B或C)。应当理解,方法中的步骤可以按照不同的顺序执行而不改变本专利技术的原理。在此使用的术语“模块”可以是以下项的部分或者包括以下项专用集成电路(ASIC);电子电路;组合逻辑电路;现场可编程门阵列(FPGA);执行代码的处理器(共享、专用或群组);提供所描述功能的其他适当部件;或者上述某些或全部的组合,诸如在片上·系统中。术语“模块”可以包括存储由处理器执行的代码的存储器(共享、专用或群组)。上面使用的术语“代码”可以包括软件、固件和/或微代码,并且可以表示程序、例程、函数、类和/或对象。上面使用的术语“共享”表示来自多个模块的某些或者全部代码可以使用单个(共享的)处理器执行。而且,来自多个模块某些或者全部代码可以由单个(共享的)存储器存储。上面使用的术语“群组”表示来自单个模块的某些或者全部代码可以使用一组处理器执行。而且,来自单个模块的某些或者全部代码可以使用一组存储器存储。在此描述的装置和方法可以由一个或多个处理器执行的一个或多个计算机程序来实现。计算机程序包括存储在非瞬态有形计算机可读介质上的处理器可执行指令。计算机程序还可以包括存储的数据。非瞬态有形计算机可读介质的非限制性示例是非易失性存储器、磁性存储设备以及光学存储设备。现在参考图2A,其示出了根据本公开原理的一个计算系统的示例。计算机202包括处理器204,其使用北桥模块210与主存储器206和图形处理模块208对接。北桥模块210与南桥模块212对接,南桥模块212为处理器204提供对外设的访问。北桥模块212与PCI Express插槽220对接。PCI Expres本文档来自技高网
...

【技术保护点】

【技术特征摘要】
【国外来华专利技术】...

【专利技术属性】
技术研发人员:A·普鲁西S·卡马卡K·拉斯托吉S·施沃卡
申请(专利权)人:马维尔国际贸易有限公司
类型:
国别省市:

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

1