针对网络装置实施阶层分布式链接列表的系统及方法与流程

文档序号:19942649发布日期:2020-02-14 23:22阅读:169来源:国知局
针对网络装置实施阶层分布式链接列表的系统及方法与流程

分案申请信息

本发明专利申请是申请日为2016年7月14日、申请号为201680047977.6、发明名称为“针对网络装置实施阶层分布式链接列表的系统及方法”的发明专利申请案的分案申请。

本发明的实施例涉及网络装置。特定来说,本发明的实施例涉及用于网络装置的存储器系统。



背景技术:

网络装置用以在网络中的节点之间转移数据。随着网络发展和通信信道的数据率增加,需要增加网络装置可在一段时间内处理的数据量。为满足这些网络的需求,装置需要一种存储器系统,所述存储器系统经设计以将数据读取到存储器中且从存储器写出数据,以适应网络的需求且最小化读取请求与写入请求之间的任何冲突。当前系统通过增加存储器的存取端口数目及/或增加所述存储器的时钟速度而满足网络的高容量及高数据率需求,这需要先进的半导体技术。然而,增加存储器上的存取端口的数目及使用先进的半导体技术来增加存储器的操作频率会显著地增加存储器的成本及操作这些存储器所需的功率预算。



技术实现要素:

描述一种用于网络装置的存储器系统。所述存储器系统包含经配置以存储一或多个数据元素的主存储器。此外,所述存储器系统包含链接存储器,其经配置以维持一或多个指针以使存储于所述主存储器中的所述一或多个数据元素互连。所述存储器系统还包含自由条目管理器,其经配置以产生包含所述链接存储器中的一或多个位置的可用库组。另外,所述存储器系统包含上下文管理器,其经配置以维持元数据用于多个列表,其中每一列表含有一或多个数据元素。

从附图及从下列详细描述将明白本发明的实施例的其它特征及优点。

附图说明

通过附图的图中的实例而非经由其限制说明本发明的实施例,其中相似元件符号指类似元件,且在附图中:

图1说明根据实施例的包含实施分布式链接列表的存储器系统的网络装置的框图;

图2说明根据实施例的存储器系统的一部分的框图;

图3说明根据实施例的包含链接存储器的多个库的存储器系统的一部分的框图;

图4说明根据实施例的用于实施分布式链接列表的方法的流程图;

图5说明根据实施例的用于使用分布式链接列表来存储数据元素的方法的流程图;

图6说明根据实施例的用于使用分布式链接列表来读取数据元素的流程图;

图7说明根据实施例的包含实施阶层分布式链接列表的存储器系统的网络装置的框图;

图8说明根据实施例的包含母链接存储器的多个库的母分布式链接列表的一部分的框图;及

图9说明根据实施例的用于实施阶层分布式链接列表的方法的流程图。

具体实施方式

描述针对网络装置实施分布式链接列表的系统及方法的实施例。特定来说,描述一种存储器系统,其经配置以通过实施分布式链接列表而管理数据。存储器系统包含用于存储由网络装置接收的数据的主存储器。此外,存储器系统包含分布式链接列表。分布式链接列表包含链接存储器、自由条目管理器及上下文管理器。分布式链接列表经配置以跟踪存储于主存储器中的数据的位置且使位置结合到列表以维持数据之间的循序关系。此外,分布式链接列表使用库存储器结构来维持存储于主存储器中的数据之间的循序关系,而无需维持主存储器与分布式链接列表之间的直接关系。此架构能够使用单端口存储器且降低操作频率,从而降低存储器系统的成本及复杂性同时仍满足高容量网络的性能需求。

图1说明根据实施例的包含实施分布式链接列表的存储器系统的网络装置的框图。具体来说,图1说明包含多个输入/输出端口12的网络装置10。使用包含所属领域中已知的技术的技术通过端口12接收并发射数据包。端口12与主存储器14耦合。主存储器可包含存储器技术,包含但不限于动态随机存取存储器(“dram”)、静态随机存取存储器(“sram”)、快闪存储器及用以存储数据的包含所属领域中已知的技术的其它技术。

主存储器14与一或多个处理器16耦合。处理器16可包含但不限于中央处理单元(“cpu”)、控制器、专用集成电路(“asic”)、场可编程门阵列(“fpga”)或其它类型的控制单元。一或多个处理器16经配置以使用包含所属领域中已知的技术的技术来管理对主存储器14的存取。举例来说,一或多个处理器16经配置以确定用以存储在一或多个端口12上接收的数据的位置。一或多个处理器16还经配置以当存储于主存储器14中的数据将在一或多个端口12上发射时读取所述数据。此外,一或多个处理器16经配置以使用包含所属领域中已知的技术的技术来重写、更新及无效化存储器位置。

此外,图1中所说明的实施例包含分布式链接列表18。分布式链接列表18与一或多个处理器16耦合。此外,分布式链接列表18包含链接存储器20、自由条目管理器22及上下文管理器24。链接存储器20经配置以维持元数据以使存储于主存储器14中的数据元素互连。针对实施例,维持元数据包含使用包含本文中所描述的技术的技术来产生、存储并更新元数据。另外,链接存储器20经配置以存储包含用以参考存储于主存储器14中的数据元素的一或多个指针的元数据。链接存储器20可包含如本文中所描述的存储器技术的一或多者。链接存储器20包含用于存储信息的多个位置。多个位置中的每一者具有用以存取存储于位置中的数据的地址。针对实施例,链接存储器20包含多个存储器库,其中存储器库中的每一者包含多个位置且每一位置具有用以存取数据的地址。

根据图1中所说明的实施例,分布式链接列表18还包含自由条目管理器22。自由条目管理器22经配置以在链接存储器20中产生位置的可用库组。可用库组是在链接存储器20中未经使用或分配的一或多个地址的群。针对实施例,一或多个地址驻存于链接存储器的不同存储器库中。举例来说,自由条目管理器22经配置以将所述位置的一或多个地址的列表维持在未被使用或分配的存储器中,用于存储用于当前作为可用库组而存储于主存储器14中的数据元素的元数据。针对实施例,自由条目管理器22使用包含所属领域中已知的存储器技术的一或多个存储器技术用于存储可用库组。针对实施例,一或多个处理器16经配置以当链接存储器地址经使用或经分配以使存储于主存储器14中的数据元素互连时从自由条目管理器22移除链接存储器地址。此外,一或多个处理器16经配置以在链接存储器地址不再使用之后将链接存储器地址添加到自由条目管理器22。举例来说,一旦从主存储器14读取数据元素,一或多个处理器16就经配置以解除分配或无效化与数据元素相关联的链接存储器20的位置,其包含将位置的地址写入于自由条目管理器22中。

根据图1中所说明的实施例,分布式链接列表包含上下文管理器24。上下文管理器24经配置以维持包含使存储于主存储器14中的一或多个数据元素互连的指针的元数据。针对实施例,上下文管理器24维持元数据,所述元数据包含头地址或在链接存储器20中用于列表中的第一条目的地址,及尾地址,链接存储器20中用于存储于链接存储器20中的列表中的最后条目的地址。针对实施例,如本文中所描述实施分布式链接列表的存储器系统具有从链接存储器解除链接主存储器的优点。解除链接实现了使用更有效的存储器技术及架构,包含但不限于使用单端口存储器及使用具有较低时钟速率的存储器。这实现了使用较低成本存储器技术及较低功率消耗同时满足高速、高容量网络装置的需要。

图2说明根据实施例的存储器系统的一部分的框图。存储器系统的部分包含主存储器200、链接存储器204及上下文管理器210。主存储器200包含用于存储数据元素的一或多个位置202a到d。数据元素包含但不限于数据包或数据包的单元。如所属领域中已知,数据包可分裂成多个单元。使用包含所属领域中已知的技术的技术使用与一或多个位置202a到d中的每一者相关联的地址对这些位置202a到d进行存取。链接存储器204还包含位置206a到d用于存储元数据以产生一或多个列表。举例来说,处理器16经配置以将元数据写入到位置206a到d,所述位置206a到d与位置202a到d互连以在列表中形成条目。列表维持存储于主存储器200中的数据元素应从主存储器200读取的序列的顺序。顺序可基于先入先出(fifo)、优先权或包含用于网络装置的所属领域中已知的标准的其它标准的一或多者。

针对实施例,链接存储器204经配置以存储元数据,例如一或多个指针,所述元数据用以使条目互连来形成存储于主存储器中的数据元素的一或多个列表。针对实施例,存储于链接存储器204中的元数据,例如指针,指定列表中的下一条目的链接存储器204内的位置的地址。除指针外,根据实施例,链接存储器204中的位置206a到d包含另一元数据,其包含但不限于序列识别符(例如,数据元素序列识别符)及在主存储器中用于数据元素的位置的地址。序列识别符表示从存储器读取数据元素及快照的顺序或序列。针对实施例,数据元素序列识别符是基于在网络装置处接收数据元素的顺序。而且,链接存储器204经配置以将地址存储于链接存储器204的位置206a到d中,用于数据元素被存储于其中的主存储器200中的位置202a到d。

图2中所说明的实施例还包含上下文管理器210。上下文管理器210经配置以维持元数据用于一或多个列表,其中每一列表包含一或多个数据元素。具体来说,上下文管理器210包含经配置以存储元数据用于列表的头条目或第一条目及列表的尾条目或最后条目的头条目212及尾条目214。针对实施例,用于头及尾的元数据存储于一或多个寄存器中。然而,所属领域的技术人员将理解,可使用包含本文中所描述的技术的其它存储器技术。存储于头条目212中的元数据包含在其中存储列表的第一条目的主存储器200中的位置202a到d的地址。存储于头条目212中的元数据还包含到列表中的下一条目的位置206a到d的指针。举例来说,指针是到链接存储器204中的为列表中的下一条目的位置206a到d的地址条目。另外,头条目212可包含数据元素的数据元素序列识别符。尾条目214包含上文所描述的类型的元数据的一或多者,但用于列表中的最后条目。在列表包含仅一个数据元素的情况下,头条目212及尾条目214将包含相同元数据。针对实施例,当将元数据存储于主存储器200中或从主存储器200读取元数据时,使用一或多个处理器更新、重写及无效化头条目212及尾条目214中的元数据。

图3说明根据实施例的包含分布式链接列表存储器的多个库的存储器系统的一部分的框图。存储器系统的部分包含主存储器300、链接存储器303及上下文管理器314。主存储器300可使用本文中所描述的技术来实施。所述链接存储器由存储器元素阵列(例如存储器库304a到d)形成。针对实施例,每一存储器库304a到d是单端口存储器,所述单端口存储器提供每时钟循环的单次存取。如图3中所说明,实施例包含:第一存储器库304a,其包含位置306a到d;第二存储器库304b,其包含位置308a到d;第三存储器库304c,其包含位置310a到d;及第四存储器库304d,其包含位置312a到d。

如上文所描述,链接存储器经配置以存储元数据,其包含用以参考存储于主存储器中的数据元素的位置的地址的指针。由于可使用到主存储器的位置的指针,所以不需要主存储器的位置与链接存储器的位置之间的直接关系。这样实现将单独及不同架构用于主存储器及链接存储器的灵活性,链接存储器例如针对主存储器的每一库,具有存储器的多个库的链接存储器。链接存储器的多个库的使用提供使用具有单个存取端口的存储器及/或具有较低时钟速度的存储器的能力。如上文所描述,链接存储器经配置以使用包含上文所描述的技术的技术来存储用以使条目互连以形成存储于主存储器中的数据元素的列表的指针。此外,链接存储器的多个库的使用提供可按比例调整以支持较高容量系统的架构。举例来说,使用链接存储器的多个库的存储器系统可经设计以每时钟循环处理至少k+1次存储器存取,其中k是可存储于主存储器中的每时钟循环的数据元素的数目,且1是从主存储器读取的数目。存储器系统的其它实例经配置以支持大于1,其是使用包含本文中所描述的技术的技术来每时钟循环从主存储器读取的。

如图3中所说明,实施例还包含上下文管理器314。上下文管理器314包含多个尾条目及头条目。具体来说,上下文管理器314包含用于链接存储器304a的第一库的第一头条目316及第一尾条目318、用于链接存储器304b的第二库的第二头条目320及第二尾条目322、用于链接存储器304c的第三库的第三头条目324及第三尾条目326及用于链接存储器304d的第四库的第四头条目328及第四尾条目330。每一组尾条目及头条目分别针对每一库维持元数据用于列表的第一条目及最后条目。也就是说,第一头条目316维持元数据用于存储于第一库304a中的第一条目且第一尾条目318维持元数据用于存储于第一库304a中的最后条目。第二头条目320维持元数据用于存储于第二库304b中的第一条目且第二尾条目322维持元数据用于存储于第二库304b中的列表的最后条目。第三头条目324维持元数据用于存储于第三库304c中的列表的第一条目且第三尾条目326维持元数据用于存储于第三库304c中的所述列表的最后条目。第四头条目328维持元数据用于存储于第四库304d中的列表的第一条目且第四尾条目330维持元数据用于存储于第四库304d中的所述列表的最后条目。每一头条目及尾条目经配置以存储包含本文中所描述的元数据的元数据。每一库304a到d的列表一起用以产生完整列表,所述完整列表使存储于主存储器300中的数据元素互连。

针对实施例,处理器经配置以将数据元素序列识别符指派到在端口上接收的每一数据元素。数据元素序列识别符经指派到每一数据元素以指示接收每一数据元素的顺序。数据元素序列识别符作为元数据存储于链接存储器的位置中,如本文中所描述。另外,如果存储于主存储器中的对应数据元素是库中的列表的头或库中的列表的尾,那么数据元素序列识别符存储于头条目及尾条目中。

针对包含链接存储器的多个库的实施例,例如图3中所说明的实施例,存储器系统经配置以通过比较经指派到数据包的数据元素序列识别符而确定列表中的下一元素。经配置以确定下一元素的存储器系统包含经配置以读取经存储用于链接存储器303中的每一库304a到d的头条目316、320、324及328的处理器。处理器比较存储于全部头条目316、320、324及328中的数据元素序列识别符以确定数据元素的哪一者是列表中的下一者。针对实施例,最低数据元素序列识别符是经指派以使得最低数值可用以确定列表中的下一数据元素的数值;然而,系统不限于使用最低数据元素序列识别符作为指示器。根据实施例,数据元素序列识别符一旦到达网络装置后即经指派到数据元素。一旦处理器确定列表中的下一数据元素,那么处理器经配置以检索数据元素存储于其中的主存储器位置302a到d的地址。针对实施例,处理器经配置以从具有最低数据元素序列识别符的头条目316、320、324及328检索地址。处理器进一步经配置以使用经检索地址来从主存储器读出数据元素。

针对实施例,处理器经配置以更新从主存储器读出的存储于头条目中的数据元素的元数据。处理器经配置以使用存储列表中的下一条目用于库304a到d的链接存储器303中的位置的地址。处理器还经配置以响应于将新的数据元素存储于主存储器300中而在将新的条目添加到列表用于库304a到d时更新尾条目318、322、326及330用于库304a到d。

如上文所描述,自由条目管理器用以产生用于将条目存储于链接存储器中的可用库组条目。针对包含存储器的多个库的实施例,例如图3中所说明的实施例,所述自由条目管理器经配置以产生可用库组,所述可用库组包含库中的每一者中的一或多个位置,使得将不发生存取冲突。如果需要对库的读取或写入存取超过链接存储器的库的容量,那么将发生存取冲突。举例来说,包含具有单个存取端口的库的链接存储器将限于每时钟循环一次读取或写入。因此,在使用具有单个存取端口的库的实施例中,自由条目管理器将经配置以从可用库组排除经排程用于时钟循环中的读取或写入的库的位置。

根据实施例,自由条目管理器经配置以基于下列标准的一或多者而产生可用库组,包含但不限于:1)位置不供另一数据元素使用;2)含有到列表的条目的库不通过读取操作存取;及3)含有链接条目的库不经存取用于链接操作。链接操作包含但不限于写入用以更新元数据的存取,读取用以更新头条目或尾条目的存取,写入用以包含元数据用于到列表的新的条目的存取、用以无效化列表中的条目的存取或到链接存储器中的位置的其它存取。自由条目管理器还可经配置以确定用于包含一个以上单个存取端口的库的读取/写入存取可用性。自由条目管理器经配置以基于所属领域中已知的技术确定库的可用性,包含但不限于请求位/旗标组、经激活的请求总线线路、排程协议或排程或以其它方式保留对库的存取的其它指示器。

图4说明根据实施例的用于实施分布式链接列表的方法的流程图。所述方法包含存储一或多个数据元素402。举例来说,将一或多个数据元素存储于主存储器中包含使用包含本文中所描述的技术的技术。此外,方法包含维持一或多个指针来使一或多个数据元素互连404。举例来说,维持一或多个指针以使一或多个数据元素互连包含使用如本文中所描述的技术来存储并更新指针及其它元数据。方法还包含将一或多个条目分配于链接存储器中406。举例来说,将一或多个条目分配于链接存储器中包含从位置的可用库组选择位置且使用包含本文中所描述的技术的技术来设置用以参考那个位置的地址的指针。而且,方法包含维持元数据以形成一或多个数据元素408的列表。举例来说,维持元数据以形成一或多个数据元素的列表包含使用包含本文中所描述的技术的技术来存储并更新头条目及尾条目。

图5说明根据实施例的用于使用分布式链接列表来存储数据元素的方法的流程图。方法包含接收数据元素502。方法还包含存储数据元素504。存储数据元素包含使用包含本文中所描述的技术的技术。此外,方法包含在存储器中产生位置的可用库组用于存储指针506。产生位置的可用库组用于存储指针包含使用包含本文中所描述的技术的技术。方法还包含将自由位置分配于存储器中508。举例来说,将自由位置分配于存储器中包含从位置的可用库组选择位置且设置指针以参考那个位置的地址。另外,方法包含将元数据写入存储器中的自由位置中510。将元数据写入存储器中的自由位置中包含使用包含本文中所描述的技术的技术。方法还包含更新尾条目及任选地头条目512。举例来说,当产生新的列表(排队/链接)或从存储器读取列表中的第一条目(出队/未链接)时,方法更新头条目。举例来说,当将新的条目添加到列表(排队/链接)或从存储器读取最后条目(出队/未链接)时,方法更新尾条目。更新头条目及/或尾条目包含使用包含本文中所描述的技术的技术。

图6说明根据实施例的用于使用分布式链接列表来读取数据元素的流程图。方法包含接收读取请求用于数据元素602。此外,方法包含确定列表的下一数据元素604。举例来说,确定列表的下一数据元素包含使用包含本文中所描述的技术的技术来使用一或多个头条目。方法还包含检索位置用于列表的下一数据元素606。举例来说,检索位置用于列表的下一数据元素包含使用包含本文中所描述的技术的技术从头条目读取下一元素的存储器中的位置的地址。而且,方法包含基于经检索位置从存储器读取下一数据元素608。基于经检索位置从存储器读取下一数据元素包含使用例如本文中所描述的技术的技术。方法还包含更新头条目及任选地更新尾条目610。举例来说,当产生新的列表或从存储器读取列表中的第一条目时,方法更新头条目。举例来说,当将新的条目添加到列表或从存储器读取最后条目时,方法更新尾条目。更新头条目及/或尾条目包含使用包含本文中所描述的技术的技术。

图7说明根据实施例的包含实施阶层分布式链接列表的存储器系统的网络装置的框图。存储器系统经配置以通过使用包含本文中所描述的技术的技术产生列表而使数据元素互连。此外,实施阶层分布式链接列表的存储器系统经配置以基于用以维持数据元素的列表的列表元数据而产生一或多个快照。维持列表元数据包含使用包含本文中所描述的技术的技术来产生、存储及更新列表元数据。存储器系统经配置以维持链接列表元数据以使多个快照互连。针对实施例,维持链接列表元数据包含使用包含本文中所描述的技术的技术而产生、存储并更新链接列表元数据。

针对实施例,实施阶层分布式链接列表的存储器系统经配置以存储经分裂成多个单元的多个数据包,其中接着在网络装置710处发射和接收每一单元。存储器系统经配置以当使用子分布式链接列表726来接收单元时,接收数据包的单元且使数据包的单元互连。子分布式链接列表726经配置以使用关于实施分布式链接列表并产生数据元素的列表的本文中所描述的技术来产生数据包的单元的列表。由子分布式链接列表726产生的列表的单元维持数据包的单元的顺序,以便使用子链接存储器730、子自由条目管理器732及子上下文管理器734在网络装置处接收单元。子链接存储器730经配置以使用关于实施链接存储器的本文中所描述的技术来维持元数据,以使存储于主存储器714中的数据元素互连。子自由条目管理器732经配置以使用包含关于实施自由条目管理器的本文中所描述的技术的技术来产生位置的子可用库组于子链接存储器730中。子上下文管理器734经配置以使用包含关于实施自由条目管理器的本文中所描述的技术的技术来维持包含指针的元数据,指针使存储于主存储器714中的一或多个数据元素互连。

此外,根据实施例,实施阶层分布式链接列表的存储器系统包含母分布式链接列表718。母分布式链接列表718经配置以基于由子分布式链接列表726产生的数据元素的列表来产生快照。母分布式链接列表718还经配置以维持链接列表元数据以使多个快照互连。通过使快照互连,例如,母分布式链接列表718经配置以维持数据包的顺序,以便数据包接收于网络装置处,例如基于经接收用于数据包的最后单元的顺序。另外,母分布式链接列表718经配置以通过使快照互连来形成一队列数据包。可基于目的地址、网络政策、业务量调整及/或包含所属领域中已知的技术的技术来形成一队列,用于排序数据包。使用子分布式链接列表726以产生单元的列表用于经接收的每个数据包,且使用母分布式链接列表718以维持链接列表元数据,以产生快照以使数据包的一或多个列表的单元互连,实施阶层分布式链接列表的存储器系统经配置以维持单元用于经接收的每一数据包,且维持经接收的每一数据包的顺序,使得可从存储器系统检索每一数据包,而基于经接收的顺序及/或包放置于一队列中的顺序来出端口。

具体来说,图7说明包含多个输入/输出端口712的网络装置710。使用包含所属领域中已知的技术的技术而通过端口712接收并发射数据包。端口712与主存储器714耦合。主存储器可包含存储器技术,包含但不限于动态随机存取存储器(“dram”)、静态随机存取存储器(“sram”)、快闪存储器及用以存储数据的包含所属领域中已知的技术的其它技术。

主存储器714与一或多个处理器716耦合。处理器716包含但不限于中央处理单元(“cpu”)、控制器、专用集成电路(“asic”)、场可编程门阵列(“fpga”)或其它类型的控制单元。一或多个处理器716经配置以使用包含所属领域中已知的技术的技术来管理到主存储器714的存取。举例来说,一或多个处理器716经配置以确定用以存储经接收于一或多个端口712上的数据的位置。一或多个处理器716还经配置以当将在一或多个端口712上发射存储于主存储器714中的数据时读取数据。此外,一或多个处理器716经配置以使用包含所属领域中已知的技术的技术来重写、更新及无效化存储器位置。

此外,图7中所说明的实施例包含母分布式链接列表718。母分布式链接列表718系与一或多个处理器716耦合。此外,母分布式链接列表718包含母链接存储器720、母自由条目管理器722、母上下文管理器724及母快照存储器725。母链接存储器720经配置以维持链接列表元数据,以使基于用以使存储于主存储器714中的数据元素互连的列表元数据来产生的多个快照互连。举例来说,母链接存储器720经配置以存储包含一或多个指针的链接列表元数据,一或多个指针参考存储于母快照存储器725中的至少一个快照。母链接存储器720可包含如本文中所描述的存储器技术的一或多者。母链接存储器720包含用于存储信息的多个位置。多个位置中的每一者具有用以存取存储于位置中的数据的地址。针对实施例,母链接存储器720包含多个存储器库,其中存储器库中的每一者包含多个位置,且每一位置具有用以存取数据的地址。母链接存储器720还可包含单个存储器库。

根据图7中所说明的母分布式链接列表718还包含母自由条目管理器722。自由条目管理器722经配置以产生母链接存储器720中的位置的母可用库组。母可用库组是母链接存储器720中未经使用或分配使用的的一或多个地址的群。针对实施例,一或多个地址驻存于母链接存储器720的不同存储器库中。举例来说,母自由条目管理器722经配置以维持地址的列表用于母链接存储器720中的位置,其不用于存储或不经分配用于存储链接列表元数据用于使当前存储于母快照存储器725中的快照互连作为母可用库组。针对实施例,母自由条目管理器722使用包含所属领域中已知的技术的一或多个存储器技术用于存储母可用库组。针对实施例,一或多个处理器716经配置以当链接存储器地址经使用或经分配以存储链接列表元数据以使存储于母上下文管理器724中的快照互连时,从母自由条目管理器722移除母链接存储器地址。此外,一或多个处理器716经配置以在连接存储器地址不再使用或分配之后,将母链接存储器地址添加到母自由条目管理器722。举例来说,一旦与快照相关联的数据元素或数据包从主存储器714读取,一或多个处理器716就经配置以解除分配或无效化与快照相关联的母链接存储器720的位置,其包含将位置的地址写入于母自由条目管理器722中。

根据图7中所说明的实施例,母分布式链接列表718包含母上下文管理器724。母上下文管理器724经配置以维持包含一或多个指针的快照列表元数据,所述一或多个指针使存储于母快照存储器725中的一或多个快照互连以产生快照的列表。维持快照列表元数据包含使用包含本文中所描述的技术的技术来产生、存储并更新快照列表元数据。母快照存储器725包含如本文中所描述的存储器技术的一或多者。与维持于母快照存储器725中的数据元素的列表相关联的列表元数据是快照。针对实施例,母上下文管理器724维持包含头地址(母快照存储器725中用于快照的列表中的第一条目的地址)及尾地址(母快照存储器725中用于列表的快照中的最后条目的地址)的快照列表元数据。实施如本文中所描述的阶层分布式链接列表的存储器系统的实施例具有使主存储器与链接存储器解除链接的优点。解除链接实现了使用更有效存储器技术及架构,包含但不限于使用单端口存储器及使用具有较低时钟速率的存储器。这实现了使用较低成本存储器技术及较低功率消耗同时满足高速、高容量网络装置的需要。

针对实施例,存储器系统经配置以响应于接收列表的最后数据元素而存储维持于子上下文管理器734中的列表元数据作为母快照存储器725中的快照。存储器系统还可经配置以响应于接收第二列表的数据元素而存储维持于子上下文管理器734中的列表元数据作为母快照存储器725中的快照。举例来说,如果子上下文管理器734当前正存储列表元数据用于第一列表的数据元素(例如与第一数据包相关联的数据元素)且在网络装置处接收数据元素用于第二列表的数据元素(例如与第二数据包相关联的数据元素),那么存储器系统经配置以存储用于第一列表的列表元数据作为母快照存储器725中的第一快照。存储器系统经配置以从母快照存储器725检索第一快照且存储来自子上下文管理器734的列表元数据以更新列表元数据用于第一列表。

存储器系统还经配置以从母快照存储器725检索快照且响应于用以发射数据元素或数据包的请求而将快照的列表元数据存储于子上下文管理器734中。存储器系统经配置以更新母上下文管理器724及母链接存储器720中的链接列表元数据且例如一旦将快照的列表元数据存储于子上下文管理器734中后就响应于用以发射数据元素或数据包的请求而解除分配母快照存储器中的位置。针对实施例,处理器/控制器716经配置以使用包含所属领域中已知的技术的技术来检索快照,存储链接列表元数据,更新链接列表元数据及其它元数据。

图8说明根据实施例的包含母链接存储器的多个库的母分布式链接列表的一部分的框图。母分布式链接列表的部分包含母快照存储器800、母链接存储器803及母上下文管理器814。母快照存储器800可使用本文中所描述的技术实施。母链接存储器803由存储器元素阵列形成,例如存储器库804a到d。针对实施例,每一存储器库804a到d是单端口存储器,所述单端口存储器提供每时钟循环单次存取。如图8中所说明,实施例包含:第一存储器库804a,其包含位置806a到d;第二存储器库804b,其包含位置808a到d;第三存储器库804c,其包含位置810a到d;及第四存储器库804d,其包含位置812a到d。

如图8中所说明,实施例还包含母上下文管理器814。母上下文管理器814包含多个尾条目及头条目。具体来说,母上下文管理器814包含用于母链接存储器804a的第一库的第一头条目816及第一尾条目818、用于母链接存储器804b的第二库的第二头条目820及第二尾条目822、用于母链接存储器804c的第三库的第三头条目824及第三尾条目826及用于母链接存储器804d的第四库的第四头条目828及第四尾条目830。每一组尾条目及头条目分别针对母链接存储器803的每一库维持快照列表元数据用于快照的列表的第一条目及最后条目。也就是说,第一头条目816维持快照元数据用于存储于第一库804a中的第一条目且第一尾条目818维持快照元数据用于存储于第一库804a中的最后条目。第二头条目820维持快照元数据用于存储于第二库804b中的第一条目且第二尾条目822维持快照元数据用于存储于第二库804b中的最后条目。第三头条目824维持快照元数据用于存储于第三库804c中的快照的列表的第一条目且第三尾条目826维持元数据用于存储于第三库804c中的列表快照的最后条目。第四头条目828维持快照元数据用于存储于第四库804d中的快照的列表的第一条目且第四尾条目830维持快照元数据用于存储于第四库804d中的列表快照的最后条目。每一头条目及尾条目经配置以存储包含本文中所描述的元数据的快照列表元数据。每一库804a到d的列表快照一起用以产生完整快照列表,所述完整快照列表使存储于母快照存储器800中的快照的一或多者互连。

针对实施例,处理器经配置以将快照序列识别符指派到每一快照。快照序列识别符指示在网络装置处以其接收每一快照的顺序。举例来说,在经接收用于快照的最后数据元素到达后就指派快照序列识别符。快照序列识别符作为链接列表元数据而存储于母链接存储器803的位置中,如本文中所描述。另外,如果存储于母快照存储器800中的对应快照是库中的快照的列表的头或库中的快照的列表的尾,那么快照序列识别符存储于头条目及任选地尾条目中。

针对包含母链接存储器803的多个库的实施例,例如,图8中所说明的实施例,存储器系统经配置以通过比较经指派到快照的快照序列识别符而确定快照的列表中的下一快照。经配置以确定下一快照的存储器系统包含经配置以读取经存储用于母上下文管理器814中的每一库804a到d的头条目816、820、824及828的处理器。处理器比较存储于全部头条目816、820、824及828中的快照序列识别符来确定快照的哪一者是快照的列表中的下一者。针对实施例,最低快照序列识别符是经指派使得最低数值可用以确定列表中的下一数据元素的数值;然而,系统不限于使用最低快照序列识别符作为指示器。根据实施例,快照序列识别符一旦到达网络装置后就经指派为数据元素。一旦处理器确定列表中的下一快照,处理器就经配置以检索快照存储于其中的母快照存储器802a到d的地址。针对实施例,处理器经配置以从具有最低快照序列识别符的头条目816、820、824及828检索地址。处理器进一步经配置以使用包含本文中所描述的技术的技术来使用经检索地址来从母快照存储器800读出数据元素且将快照存储于子上下文管理器中。

针对实施例,处理器经配置以更新从母快照存储器800读出的存储于母上下文管理器814的头条目中的快照的链接列表元数据。处理器经配置以使用存储快照列表中的下一条目用于库804a到d的母链接存储器803中的位置的地址。处理器还经配置以例如响应于将新的快照存储于母上下文存储器800中而在将新的快照添加到快照列表用于库804a到d时更新尾条目818、822、826及830用于库804a到d。

如上文所描述,母自由条目管理器用以产生用于将条目存储于母链接存储器803中的母可用库组。针对包含存储器的多个库的实施例(例如,图8中所说明的实施例),母自由条目管理器经配置以产生母可用库组,其包含库中的每一者中的一或多个位置,使得将不发生存取冲突。如果需要到库的读取或写入存取超过母链接存储器的库的容量,那么将发生存取冲突。举例来说,包含具有单个存取端口的库的母链接存储器将限于每时钟循环一次读取或写入。因此,在使用具有单个存取端口的库的实施例中,母自由条目管理器将经配置以从母可用库组排除经排程用于时钟循环中的读取或写入的库的位置。

根据实施例,母自由条目管理器经配置以基于下列标准的一或多者而产生母可用库组,包含但不限于:1)位置不供另一数据元素使用;2)含有到列表的条目的库不由读取操作存取;及3)含有链接条目的库不经存取用于链接操作。链接操作包含但不限于写入用以更新链接列表元数据的存取,读取用以更新头条目或尾条目的存取,写入用以包含链接列表元数据用于到列表的新的条目的存取、用以无效化快照的列表中的条目的存取或到母链接存储器中的位置的其它存取。母自由条目管理器还可经配置以确定用于库的读取/写入存取可用性,包含一个以上单个存取端口。母自由条目管理器经配置以基于所属领域中已知的技术确定库的可用性,包含但不限于请求位/旗标组、经激活的请求总线线路、排程或以其它方式保留对库的存取的其它指示器。

图9说明根据实施例的用于实施阶层分布式链接列表的方法的流程图。方法包含使用包含本文中所描述的技术的技术来存储一或多个数据元素(902)。方法还包含使用包含本文中所描述的技术的技术来维持列表元数据以使一或多个数据元素互连(904)。此外,方法包含使用包含本文中所描述的技术的技术基于列表元数据而产生至少一第一快照(906)。方法包含使用本文中所描述的技术的技术来将一或多个位置分配于存储器中(908)。另外,方法任选地包含使用包含本文中所描述的技术的技术来维持链接列表元数据以使第一快照与至少一第二快照互连(910)。而且,方法任选地包含使用包含本文中所描述的技术的技术基于列表元数据而确定数据元素列表的下一数据元素(912)。方法任选地包含基于链接列表元数据确定第二快照的存储器中的位置914。

可使用半导体芯片、asic、fpga的一或多者及使用离散组件实施本文中所描述的实施例。而且,存储器系统的元件可实施为半导体芯片上的一或多个核心,例如芯片上系统(“soc”)。本文中所描述的实施例也可实施于机器上,机器例如网络装置及一或多个计算机系统,包含程序存储装置。程序存储装置包含但不限于远离机器的大型存储装置、随机存取存储器、非易失性存储器、磁存储盘或光存储盘及其它计算机可读取存储媒体的任何者的一或多者。

在上述说明书中,已描述本发明的具体示范性实施例。然而,应明白,可对具体示范性实施例做各种修改及改变。因此,本说明书及图式应被视为说明性含义而非限制性含义。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1