硬件管理的压缩的高速缓存的制作方法

文档序号:9713548阅读:260来源:国知局
硬件管理的压缩的高速缓存的制作方法
【技术领域】
[0001 ]本发明涉及数据存储适配器,并且更具体地,涉及数据存储适配器中写高速缓存的硬件实施。
【背景技术】
[0002]存储适配器和存储子系统通常包括写高速缓存以改善性能。写高速缓存典型地可以使用相对快速的非易失性存储器(例如,使用支持闪存的DRAM)来实施。写高速缓存可以用于减轻写操作的性能代偿,诸如在独立磁盘冗余阵列(“RAID”,诸如RAID 5和RAID 6)的特定配置中要求的密集的奇偶计算。通过将位于写高速缓存的多个主机操作合并到可以通过RAID和盘设备更经济地处理的单个离台操作,写高速缓存也可以改善存储性能。
[0003]由于存储器芯片大小的增加以及通过使用压缩技术以压缩写高速缓存的数据内容,写高速缓存的有效大小已经随着时间显著增长。同时,更快的存储设备(诸如固态驱动器(SSD))已经变得越来越流行,这增加了存储适配器所需的总体吞吐量,并且相应地增加计算需求以赶上附接的驱动器。

【发明内容】

[0004]本发明的实施例一般地涉及用于以硬件实施用于压缩的高速缓存的控制结构,从而改进存储系统的性能的控制器和系统。
[0005]实施例提供一种用于管理压缩的高速缓存的计算元件,包括:第一硬件引擎,配置为分配第一数目的虚拟存储器页和第一数目的物理存储器页,以便将接收的数据存储到压缩的高速缓存;第二硬件引擎,配置为压缩接收的数据,并且存储压缩的数据,其中所述第一硬件引擎进一步配置为解除分配没有用于存储压缩的数据的一个或多个物理存储器页。
[0006]实施例提供一种数据存储系统,包括:主机系统;一个或多个存储设备;以及耦合到所述主机系统和所述一个或多个存储设备的存储适配器,存储适配器包括第一硬件引擎,配置为分配第一数目的虚拟存储器页和第一数目的物理存储器页,以便将接收的数据存储到压缩的高速缓存;第二硬件引擎,配置为压缩接收的数据,并且存储压缩的数据,其中所述第一硬件引擎进一步配置为解除分配没有用于存储压缩的数据的一个或多个物理存储器页。
[0007]实施例提供一种用于管理压缩的高速缓存的方法,其中在接收要存储到压缩的高速缓存的数据的大小时,第一硬件引擎分配虚拟存储器页和物理存储器页,压缩接收的数据,并且存储到物理存储器页中,并且第一硬件引擎解除分配没有用于存储压缩的数据的物理存储器页。
【附图说明】
[0008]以使得上述各方面能够被详细理解的方式,可以参照实施例进行上面简要概述的本发明实施例更特定描述,一些实施例在附图中图示。然而,要注意的是附图仅图示本发明的典型实施例,并且因此不应被视为其范围的限制,对于本发明可以允许其他等效的实施例。
[0009]图1A是图示根据在此描述的实施例的示例性存储系统的框图。
[0010]图1B和1C是图示根据在此描述的实施例的存储系统中的示例性写高速缓存的逻辑结构。
[0011]图2是图示根据在此描述的实施例的使用压缩的写高速缓存的存储操作的框图。
[0012]图3图示根据在此描述的实施例的使用压缩的写高速缓存的示例操作。
[0013]图4是图示根据在此描述的实施例的使用压缩的写高速缓存的解压缩操作的框图。
[0014]图5是图示根据在此描述的实施例的使用压缩的写高速缓存的解除分配操作的框图。
【具体实施方式】
[0015]为了改善存储适配器和存储系统的性能,可以通过直接以硬件实施用于压缩的高速缓存的控制结构,添加功能性到存储适配器。这可以包括例如压缩和解压缩功能,并且还可以包括管理维持压缩的高速缓存所需的存储器资源(虚拟的和物理的)的分配和解除分配。
[0016]图1A图示根据在此描述的实施例的示例性存储系统100。存储系统100包括主机系统110、存储适配器120和存储180。主机系统110可以通过适于满足存储适配器120的吞吐量要求的任何连接,连接到存储适配器120的控制器140;在示出的示例中,主机系统110通过外围组件快速互连(PCI e)接口 150连接到存储适配器120。
[0017]存储适配器120通常配置为在主机系统110和存储180之间传送数据,并且可以利用用于这样做的任何可行技术。存储适配器120可以包括用于控制存储(CS)122和数据存储(DS)124的存储器,其为写高速缓存123提供控制存储和数据存储。用于CS 122和DS 124的存储器示出为动态随机存取存储器(DRAM),但是可以是任何其他可行类型的存储器。存储适配器120还可以包括若干额外类型的存储器,诸如闪速存储器126和非易失性随机存取存储器(NVRAM) 128。
[0018]存储适配器120包括控制器140,其包括处理器145。处理器145旨在代表单个处理器、多个处理器、具有多个处理核心的单个CPU等。尽管处理器145示出为集成到控制器140中,但是在替代实施例中,处理器可以位于存储适配器120中的任何位置,并且通过合适的高速互连(诸如PCIe连接)通信地耦合到控制器140。
[0019]控制器140可以进一步包括以硬件实施的若干引擎,其用于执行根据在此描述的实施例的数据存储和写高速缓存操作。如所示的,控制器140至少包括主机直接存储器存取(HDMA)引擎155、分配/解除分配引擎160、一个或多个压缩/解压缩引擎165、以及X0R引擎170(其可以提供用于存储操作的奇偶计算)。控制器140可以包括一个或多个串行附接SCSI(SAS)控制器175^,提供控制器140和存储180之间一个或多个数据连接。
[0020]引擎可以实施为分离的计算元件,或者在替代性实施例中,两个或者多个引擎的功能可以组合到一个计算元件中。在其他实施例中,上述一个或者多个引擎可以驻留在存储适配器中的任何位置,或者所有引擎可以驻留在存储适配器的外部。
[0021]存储180包括一个或多个存储设备182^。存储设备182^可以包括硬盘驱动器、固态驱动器或任何其他合适的存储设备,并且可以包括不同类型的存储设备(例如,一个或多个硬盘驱动器和一个或多个固态驱动器)的组合。存储180可以是主机系统110的外围设备,并且替代地或额外地可以耦合到一个或多个其他计算系统。
[0022]图1Β进一步图示写高速缓存123的结构,其至少包括CS 122和DS 1240CS 122提供用于存储结构以及与DS 124中存储的数据相关联的额外信息的存储。CS 122可以包括其中每个页表格具有一个或多个页索引的页表格结构122A(示出为122A1>2),以及具有一个或多个高速缓存线(示出为122Bh)的高速缓存线结构122BAS 124可以通常分割为预定大小的一个或多个块(不出为124i,2),或者大小可以改变。在一个实施例中,DS 124分割为统一的预定大小的存储块。
[0023]在一个实施例中,页表格结构122A包含多个页索引,每个页索引对应于一个或多个高速缓存线并且包含指向一个或多个高速缓存线的一个或多个索引。包含在页表格中的页索引可以用在用于直接存储器存取(DMA)操作的散集列表中,其中页索引122An对应于高速缓存线122B!并且页索引122A12对应于高速缓存线122B3。
[0024]接下来,图1C图示各个高速缓存线122B和DS124的存储块之间的逻辑关系。如所示的,高速缓存线122Bi包含一个或多个索引122D,并且可以包含额外数据122C。每个索引122D可以指向DS 124中的各个存储块。如所示的,一个索引对应于存储块12如并且另一索
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1