在多处理器环境中在多个任务当中分配共享的存储器制造技术

技术编号:19240270 阅读:19 留言:0更新日期:2018-10-24 03:52
本公开一般涉及一种用于在多个处理器当中有效地共享有限的存储器的方法和系统。每个处理器具有本地链表。本地链表标识被分配给特定处理器的页面以及对每个所分配的页面的空闲码字的数量。另外,本地链表包括对每个所分配页面的下一(多个)空闲码字的位置。当所有码字可用时,页面被认为是空闲的,并且可以被发送回到由所有处理器使用的页面池。如果在所分配的页面上有足够数量的连续的空闲码字,则新的码字数据可以被存储在页面中。如果在任何所分配的页面上都没有足够数量的连续的空闲码字,则从页面池中分配新的页面。这样就实现了存储器资源的高效分配。

【技术实现步骤摘要】
在多处理器环境中在多个任务当中分配共享的存储器
本公开的实施例一般涉及用于在多个处理器当中高效地共享有限的存储器的方法和系统。
技术介绍
在具有共享的存储器的多处理器硬盘驱动器(harddiskdrive,HDD)或SSD环境中,每个处理器需要以以下限制来分配用于使用的存储器:(1)已被另一处理器在使用的存储器不可以被分配给另外的处理器;以及(2)太多的存储器不可以被分配给任何单独的处理器。如果将太多的存储器分配给任何一个处理器,其他处理器可能由于缺乏存储器而“饥饿”。通常情况下,存储器被分成固定大小的被称为页面的块。每个处理器当需要页面时分配页面。由于不再需要已经被分配给处理器的页面,所以将该页面返回到全局页面池,以便该页面可以被系统中的任何处理器(重新)使用。页面是在诸如SSD设备的存储器设备中的写入操作所需的存储器粒度(granularity)。码字是针对在诸如SSD设备的存储器设备中的读取操作的存储器粒度。单个读取操作利用一个或多个码字。在许多存储器设备中,页面大小是码字大小的倍数。根据工作负荷,每个处理器可能只需要页面的一小部分用于处理器正在处理的任务。简单的解决方案是忽略不需要的页面的大部分,并且当处理器利用所需的存储器完成时,将整个页面返回到池中。对于具有大量可支配的存储器的系统,只使用页面的一小部分不是问题。但是,对于更小的嵌入式系统(诸如运行在HDD或SSD上的系统),通常没有足够的高性能存储器来允许浪费分配的页面的大部分。特别地,分配存储器是一种低开销操作(即,低处理器周期),并且当前缺乏效率。此外,存储器的总利用率非常高,其能够导致效率低下。存储器的总利用率和存储器的分配往往是冲突的。因此,本领域需要一种在多个处理器当中高效利用和分配存储器的方法和系统。
技术实现思路
本公开总体上涉及一种用于在多个处理器当中高效地共享有限的存储器的方法和系统。每个处理器具有本地链表。本地链表标识被分配给特定处理器的页面以及每个所分配页面的空闲码字的数量。另外,本地链表包括每个所分配页面的下一(多个)空闲码字的位置。当所有码字都可用时,页面被认为是空闲的,并且可以被发送回由所有处理器使用的页面池。如果在所分配的页面上有足够数量的连续的空闲码字,则新的码字数据可以被存储在页面中。如果在任何所分配的页面上都没有足够数量的连续的空闲码字,则从页面池将新的页面分配给处理器。实现了存储器资源的高效分配,因为除非在页面中没有码字保持被分配,页面不被交换回空闲池,这减少了分配和空闲页面的开销;在整个页面被释放之前,页面内的码字能够被重新使用,从而保持更高的缓冲器的整体利用率;并且随着码字被释放,页面被添加到码字连续空闲计数,从而允许进行更大的分配以使得增加整体的缓冲器的利用率。在本公开中提到“存储设备”。应该理解,“存储设备”不限于诸如SSD、HDD或其他存储器设备的任何特定的存储设备。相反,应该理解,除非特别说明,否则“存储设备”将包含任何通用存储设备的可能性。在一个实施例中,一种系统包括主机设备;以及耦合到该主机设备的存储设备。该存储设备包括多个处理器。每个处理器包括:创建本地链表的装置;从页面池中分配空闲页面的装置;将空闲页面返回到页面池的装置;从页面分配和释放码字的装置;检查本地链表的装置;改变本地链表中的第一空闲码字的标识的装置;以及改变本地链表中空闲码字的数量的标识数量的装置。存储设备还包括被耦合到多个处理器中的每个处理器的存储器设备。在另一实施例中,一种方法包括:检查多个处理器中的第一处理器上的本地链表;确定本地链表上被分配的页面具有大于或等于将要被分配的码字的数量的数量的连续码字;从分配的页面分配码字;增加本地链表中对所分配的页面为空闲的第一码字的编号;以及减少本地链表中对所分配的页面空闲的码字的数量。在另一实施例中,一种方法包括:释放在所分配的页面中的一个或多个码字,其中所分配的页面被分配给多个处理器中的第一处理器;增加针对第一处理器的本地链表中的所分配的页面中空闲的码字的数量;确定所分配的页面是否具有任何被分配的码字;并将所分配的页面返回给页面池,其中页面池被多个处理器共享。附图说明为了能够详细理解本公开的上述特征的方式,可以通过参考实施例(其中的一些在附图中被示出)来进行对上面简要总结的本公开的更具体的描述。然而,要注意的是,附图仅示出了本公开的典型实施例,并且因此不被认为是对其范围的限制,因为本公开可以允许其他等效的实施例。图1是根据一个实施例的系统的示意图。图2A是图1的系统的处理器的示意图。图2B是具有多个页面的存储器设备的示意图。图3是根据一个实施例的访问公共存储器设备的多个处理器的示意图。图4A-图4E是根据一个实施例的用于处理器的本地链表的示意图。图5是示出本公开的实施例的流程图。图6是示出本公开的另一实施例的流程图。为了便于理解,在可能的情况下已经使用相同的附图标记来指定对于附图共同的相同元件。可以预期的是,在没有特定叙述的情况下在一个实施例中公开的元件可以有权用于其他实施例。具体实施方式在下文中,对本公开的实施例进行参考。然而,应该理解,本公开不限于具体描述的实施例。相反,无论是否涉及不同实施例,以下特征和元件的任何组合都被考虑为实施和实践本公开。此外,虽然本公开的实施例可以实现优于其他可能的解决方案和/或现有技术的优点,但是给定实施例是否实现特定优点不是对本公开的限制。因此,以下方面、特征、实施例和优点仅仅是说明性的,并且不被认为是所附权利要求的元素或限制,除非在(多个)权利要求中明确地叙述。同样地,对“本公开”的提及不应被解释为对本文公开的任何专利技术主题的概括,并且不应被认为是所附权利要求的元素或限制,除非在(多个)权利要求中明确叙述。本公开总体上涉及一种用于在多个处理器当中高效地共享有限的存储器的方法和系统。每个处理器具有本地链表。本地链表标识分配给特定处理器的页面以及每个所分配页面的空闲码字的数量。另外,本地链表包括每个所分配页面的下一(多个)空闲码字的位置。当所有码字都可用时,页面被认为是空闲的,并且可以被发送回由所有处理器使用的页面池。如果在所分配的页面上有足够数量的连续的空闲码字,则新的码字数据可以被存储在页面中。如果在任何所分配的页面上都没有足够数量的连续空闲码字,则从页面池将新的页面分配给处理器。实现了存储器资源的高效分配,因为除非在页面中没有码字保持被分配,页面不被交换回空闲池,这减少了分配和空闲页面的开销;在整个页面被释放之前,页面内的码字能够被重新使用,从而保持更高的缓冲器的整体利用率;并且随着码字被释放,页面被添加到码字连续空闲计数,从而允许进行更大的分配以使得增加整体的缓冲器的利用率。图1是根据一个实施例的系统100的示意图。该系统包括与存储设备104交互的主机设备102。控制器106被耦合到主机设备102和存储设备104两者。存储设备104存储主机设备102在各种时间可能需要的数据。当需要数据时,主机设备102联系存储设备104以获得数据。控制器106控制存储设备104和主机设备102之间的通信。存储设备104包括控制器108和多个CPU或处理器110A-110N。存储设备104还包括存储器设备112。存储器设备112被耦合到所有CPU本文档来自技高网
...

【技术保护点】
1.一种系统,包括:主机设备;以及被耦合到所述主机设备的存储设备,所述存储设备包括:多个处理器,其中每个处理器包括:创建本地链表的装置;从页面池分配空闲页面的装置;将空闲页面返回到所述页面池的装置;从所述页面分配和释放码字的装置;检查所述本地链表的装置;改变所述本地链表中的第一空闲码字的标识的装置;以及改变所述本地链表中空闲的码字的数量的标识数量的装置;以及被耦合到所述多个处理器中的每个处理器的存储器设备。

【技术特征摘要】
2017.03.30 US 15/474,3551.一种系统,包括:主机设备;以及被耦合到所述主机设备的存储设备,所述存储设备包括:多个处理器,其中每个处理器包括:创建本地链表的装置;从页面池分配空闲页面的装置;将空闲页面返回到所述页面池的装置;从所述页面分配和释放码字的装置;检查所述本地链表的装置;改变所述本地链表中的第一空闲码字的标识的装置;以及改变所述本地链表中空闲的码字的数量的标识数量的装置;以及被耦合到所述多个处理器中的每个处理器的存储器设备。2.如权利要求1所述的系统,其中所述页面池包括能够被分配给所述多个处理器的多个页面。3.如权利要求1所述的系统,其中从所述页面池分配页面的装置与将空闲页面返回到页面池的装置是相同的。4.如权利要求1所述的系统,其中所述本地链表包括一个或多个所分配的页面的标识、所述本地链表中的对每个所分配的页面空闲的第一码字的列表、以及所述本地链表中的对每个所分配的页面空闲的码字的总数量的列表。5.一种方法,包括:检查多个处理器的第一处理器上的本地链表;确定所述本地链表上的所分配的页面具有大于或等于将要被分配的码字的数量的数量的连续码字;从所分配的页面分配码字;增加所述本地链表中对所分配的页面为空闲的第一码字的编号;以及减少所述本地链表中对所分配的页面空闲的码字的数量。6.如权利要求5所述的方法,还包括:检查所述第一处理器上的本地链表;确定所分配的页面不具有足够的连续码字可用;以及从由所述多个处理器共享的页面池获得新的页面。7.如权利要求6所述的方法,还包括从所述新的页面分配码字。8.如权利要求7所述的方法,还包括更新所述本地链表。9.如权利要求8所述的方法,还包括:从被分配给所述第一处理器的第二页面释放多个码字;确定所述第二页面的所有码字是空闲的;以及将所述第二页面返回到页面池。10.如权利要求5所述的方法,还包括:检查所述第一处理器上的本地链表;确定所分配的页面不具有足够的连续码字可用...

【专利技术属性】
技术研发人员:DG德雷尔KJ温泽尔AR格龙塞思
申请(专利权)人:西部数据技术公司
类型:发明
国别省市:美国,US

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

1