CN108139882B - 针对网络装置实施阶层分布式链接列表的系统及方法 - Google Patents

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

Info

Publication number
CN108139882B
CN108139882B CN201680047977.6A CN201680047977A CN108139882B CN 108139882 B CN108139882 B CN 108139882B CN 201680047977 A CN201680047977 A CN 201680047977A CN 108139882 B CN108139882 B CN 108139882B
Authority
CN
China
Prior art keywords
snapshot
memory
links
main memory
lists
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201680047977.6A
Other languages
English (en)
Other versions
CN108139882A (zh
Inventor
阿维奈许·嘉尼卓·曼尼
穆罕默德·K·伊沙
尼尔·贝瑞特
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Enno Van En Co Ltd
Original Assignee
Enno Van En Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Enno Van En Co Ltd filed Critical Enno Van En Co Ltd
Priority to CN201910887671.7A priority Critical patent/CN110795028B/zh
Publication of CN108139882A publication Critical patent/CN108139882A/zh
Application granted granted Critical
Publication of CN108139882B publication Critical patent/CN108139882B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/065Replication mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/06Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明描述一种用于网络装置的存储器系统。所述存储器系统包含经配置以存储一或多个数据元素的主存储器。此外,所述存储器系统包含经配置以存储链接列表元数据的母分布式链接列表。且,所述存储器系统包含子分布式链接列表,其经配置以维持列表元数据以使存储于所述主存储器中的所述一或多个数据元素互连,以产生至少第一快照,所述链接列表元数据参考所述快照。

Description

针对网络装置实施阶层分布式链接列表的系统及方法
技术领域
本发明的实施例涉及网络装置。特定来说,本发明的实施例涉及用于网络装置的存储器系统。
背景技术
网络装置用以在网络中的节点之间转移数据。随着网络发展和通信信道的数据率增加,需要增加网络装置可在一段时间内处理的数据量。为满足这些网络的需求,装置需要一种存储器系统,所述存储器系统经设计以将数据读取到存储器中且从存储器写出数据,以适应网络的需求且最小化读取请求与写入请求之间的任何冲突。当前系统通过增加存储器的存取端口数目及/或增加所述存储器的时钟速度而满足网络的高容量及高数据率需求,这需要先进的半导体技术。然而,增加存储器上的存取端口的数目及使用先进的半导体技术来增加存储器的操作频率会显著地增加存储器的成本及操作这些存储器所需的功率预算。
发明内容
描述一种用于网络装置的存储器系统。所述存储器系统包含经配置以存储一或多个数据元素的主存储器。此外,所述存储器系统包含链接存储器,其经配置以维持一或多个指针以使存储于所述主存储器中的所述一或多个数据元素互连。所述存储器系统还包含自由条目管理器,其经配置以产生包含所述链接存储器中的一或多个位置的可用库组。另外,所述存储器系统包含上下文管理器,其经配置以维持元数据用于多个列表,其中每一列表含有一或多个数据元素。
从附图及从下列详细描述将明白本发明的实施例的其它特征及优点。
附图说明
通过附图的图中的实例而非经由其限制说明本发明的实施例,其中相似元件符号指类似元件,且在附图中:
图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”)。本文中所描述的实施例也可实施于机器上,机器例如网络装置及一或多个计算机系统,包含程序存储装置。程序存储装置包含但不限于远离机器的大型存储装置、随机存取存储器、非易失性存储器、磁存储盘或光存储盘及其它计算机可读取存储媒体的任何者的一或多者。
在上述说明书中,已描述本发明的具体示范性实施例。然而,应明白,可对具体示范性实施例做各种修改及改变。因此,本说明书及图式应被视为说明性含义而非限制性含义。

Claims (21)

1.一种用于网络装置的存储器系统,其包括:
主存储器,其经配置以存储数据元素;
写入电路,其经配置以:
将第一数据包的第一部分作为第一数据元素写入到所述主存储器;
写入第一子分布式链接列表以维持列表元数据,其包含到所述主存储器的第一数据元素指针以使存储于所述主存储器中的所述第一数据元素互连;
在写入所述第一数据包的所述第一部分之后且在将所述第一数据包的第二部分写入到所述主存储器之前:
将第二数据包的第一部分作为第二数据元素写入到所述主存储器;
写入包含第一快照的母分布式链接列表,所述第一快照表示:(i)到所述第一子分布式链接列表的第一子指针;及(ii)与所述第一快照相关联的第一序列识别符;及
写入第二子分布式链接列表,其包含到所述主存储器的第二数据元素指针以使存储于所述主存储器中的所述第二数据元素互连;
在将所述第二数据包的所述第一部分写入到所述主存储器之后,将所述第一数据包的所述第二部分作为第三数据元素写入到所述主存储器;
更新所述母分布式链接列表以包含第二快照,所述第二快照表示:(i)到所述第二子分布式链接列表的第二子指针;及(ii)与所述第二快照相关联的第二序列识别符;
写入第三子分布式链接列表,其包含到所述主存储器的第三数据元素指针以使存储于所述主存储器中的所述第三数据元素互连;及
在将所述第一数据包的所述第二部分写入到所述主存储器之后,更新所述母分布式链接列表以包含第三快照,所述第三快照表示:(i)到所述第三子分布式链接列表的第三子指针;及(ii)与所述第三快照相关联的第三序列识别符,其中所述第三序列识别符的值在所述第一序列识别符的值与所述第二序列识别符的值之间;及
读取电路,其经配置以读取所述主存储器以使用(i)包含于所述母分布式链接列表中的快照及(ii)包含于所述子分布式链接列表中的数据元素指针按顺序重建所述第一数据包及所述第二数据包,其中根据与所述快照相关联的所述序列识别符的所述值按顺序读取所述第一数据包及所述第二数据包的所述重建。
2.根据权利要求1所述的存储器系统,其进一步包括母快照存储器,其经配置以存储表示所述母分布式链接列表的所述快照的元数据。
3.根据权利要求2所述的存储器系统,其进一步包括母链接存储器,其经配置以存储指向存储于所述母快照存储器中的所述快照的快照存储器指针。
4.根据权利要求3所述的存储器系统,其进一步包括母自由条目管理器,其经配置以产生包含在所述母链接存储器中的一或多个位置的母可用库组。
5.根据权利要求4所述的存储器系统,其中所述母自由条目管理器经配置以产生包含所述一或多个位置的所述母可用库组,使得对所述母链接存储器的写入操作不与读取操作冲突。
6.根据权利要求4所述的存储器系统,其中所述母自由条目管理器经配置以产生包含所述一或多个位置的所述母可用库组,使得将不发生存取冲突。
7.根据权利要求1所述的存储器系统,其进一步包括子链接存储器,其经配置以存储表示所述第一、第二及第三数据元素指针的元数据。
8.根据权利要求7所述的存储器系统,
其中所述子链接存储器存储多个节点,且
其中所述元数据包含序列识别符,其用于确定存取所述子链接存储器中的所述多个节点的顺序。
9.根据权利要求3所述的存储器系统,
其中所述母链接存储器包含多个存储器库,
其中所述存储器系统进一步包括母上下文管理器,所述母上下文管理器包含对应于所述多个存储器库的多个头条目,
其中所述多个头条目中的每一头条目经配置以存储:(i)指向所述母链接存储器的所述相应存储器库中的相应节点的相应快照存储器指针;及(ii)所述相应节点的相应序列识别符,且
其中所述读取电路经配置以使用所述母上下文管理器中的所述头条目而基于存储于所述多个头条目中的每一头条目中的所述相应序列识别符来确定存取所述多个存储器库的所述顺序。
10.一种网络装置,其包括:
主存储器,其经配置以存储数据元素;
写入电路,其经配置以:
将第一数据包的第一部分作为第一数据元素写入到所述主存储器;
写入第一子分布式链接列表以维持列表元数据,其包含到所述主存储器的第一数据元素指针以使存储于所述主存储器中的所述第一数据元素互连;
在写入所述第一数据包的所述第一部分之后且在将所述第一数据包的第二部分写入到所述主存储器之前:
将第二数据包的第一部分作为第二数据元素写入到所述主存储器;
写入包含第一快照的母分布式链接列表,所述第一快照表示:(i)到所述第一子分布式链接列表的第一子指针;及(ii)与所述第一快照相关联的第一序列识别符;及
写入第二子分布式链接列表,其包含到所述主存储器的第二数据元素指针以使存储于所述主存储器中的所述第二数据元素互连;
在将所述第二数据包的所述第一部分写入到所述主存储器之后,将所述第一数据包的所述第二部分作为第三数据元素写入到所述主存储器;
更新所述母分布式链接列表以包含第二快照,所述第二快照表示:(i)到所述第二子分布式链接列表的第二子指针;及(ii)与所述第二快照相关联的第二序列识别符;
写入第三子分布式链接列表,其包含到所述主存储器的第三数据元素指针以使存储于所述主存储器中的所述第三数据元素互连;及
在将所述第一数据包的所述第二部分写入到所述主存储器之后,更新所述母分布式链接列表以包含第三快照,所述第三快照表示:(i)到所述第三子分布式链接列表的第三子指针;及(ii)与所述第三快照相关联的第三序列识别符,其中所述第三序列识别符的值在所述第一序列识别符的值与所述第二序列识别符的值之间;及
读取电路,其经配置以读取所述主存储器以使用(i)包含于所述母分布式链接列表中的快照及(ii)包含于所述子分布式链接列表中的数据元素指针按顺序重建所述第一数据包及所述第二数据包,其中根据与所述快照相关联的所述序列识别符的所述值按顺序读取所述第一数据包及所述第二数据包的所述重建。
11.根据权利要求10所述的网络装置,其进一步包括母快照存储器,其经配置以存储表示所述母分布式链接列表的所述快照的元数据。
12.根据权利要求11所述的网络装置,其进一步包括母链接存储器,其经配置以存储指向存储于所述母快照存储器中的所述快照的快照存储器指针。
13.根据权利要求12所述的网络装置,
其中所述母链接存储器包含多个存储器库,
其中所述网络装置进一步包括母上下文管理器,所述母上下文管理器包含对应于所述多个存储器库的多个头条目,
其中所述多个头条目中的每一头条目经配置以存储:(i)指向所述母链接存储器的所述相应存储器库中的相应节点的相应快照存储器指针;及(ii)所述相应节点的相应序列识别符,且
其中所述读取电路经配置以使用所述母上下文管理器中的所述头条目而基于存储于所述多个头条目中的每一头条目中的所述相应序列识别符来确定存取所述多个存储器库的所述顺序。
14.根据权利要求12所述的网络装置,其进一步包括母自由条目管理器,其经配置以产生包含在所述母链接存储器中的一或多个位置的母可用库组。
15.根据权利要求14所述的网络装置,其中所述母自由条目管理器经配置以产生包含所述一或多个位置的所述母可用库组,使得对所述母链接存储器的写入操作不与读取操作冲突。
16.根据权利要求14所述的网络装置,其中所述母自由条目管理器经配置以产生包含所述一或多个位置的所述母可用库组,使得将不发生存取冲突。
17.根据权利要求10所述的网络装置,其进一步包括子链接存储器,其经配置以存储表示所述第一、第二及第三数据元素指针的元数据。
18.根据权利要求17所述的网络装置,
其中所述子链接存储器包含多个节点,且
其中所述元数据包含序列识别符,其用于确定存取所述子链接存储器中的所述多个节点的顺序。
19.一种用于操作网络装置的方法,所述方法包括:
将数据元素存储于主存储器中;
将第一数据包的第一部分作为第一数据元素写入到所述主存储器;
写入第一子分布式链接列表以维持列表元数据,其包含到所述主存储器的第一数据元素指针以使存储于所述主存储器中的所述第一数据元素互连;
在写入所述第一数据包的所述第一部分之后且在将所述第一数据包的第二部分写入到所述主存储器之前:
将第二数据包的第一部分作为第二数据元素写入到所述主存储器;
写入包含第一快照的母分布式链接列表,所述第一快照表示:(i)到所述第一子分布式链接列表的第一子指针;及(ii)与所述第一快照相关联的第一序列识别符;及
写入第二子分布式链接列表,其包含到所述主存储器的第二数据元素指针以使存储于所述主存储器中的所述第二数据元素互连;
在将所述第二数据包的所述第一部分写入到所述主存储器之后,将所述第一数据包的所述第二部分作为第三数据元素写入到所述主存储器;
更新所述母分布式链接列表以包含第二快照,所述第二快照表示:(i)到所述第二子分布式链接列表的第二子指针;及(ii)与所述第二快照相关联的第二序列识别符;
写入第三子分布式链接列表,其包含到所述主存储器的第三数据元素指针以使存储于所述主存储器中的所述第三数据元素互连;及
在将所述第一数据包的所述第二部分写入到所述主存储器之后,更新所述母分布式链接列表以包含第三快照,所述第三快照表示:(i)到所述第三子分布式链接列表的第三子指针;及(ii)与所述第三快照相关联的第三序列识别符,其中所述第三序列识别符的值在所述第一序列识别符的值与所述第二序列识别符的值之间;及
读取所述主存储器以使用(i)包含于所述母分布式链接列表中的快照及(ii)包含于所述子分布式链接列表中的数据元素指针按顺序重建所述第一数据包及所述第二数据包,其中根据与所述快照相关联的所述序列识别符的所述值按顺序读取所述第一数据包及所述第二数据包的所述重建。
20.根据权利要求19所述的方法,其进一步包括:
将表示所述母分布式链接列表的所述快照的元数据存储于母快照存储器中;及
将指向存储于所述母快照存储器中的所述快照的快照存储器指针存储于母链接存储器中。
21.根据权利要求20所述的方法,
其中所述母链接存储器包含多个存储器库,
其中所述方法进一步包括:将(i)指向所述母链接存储器的所述相应存储器库中的相应节点的相应快照存储器指针及(ii)所述相应节点的相应序列识别符存储于包含对应于所述多个存储器库的多个头条目的母上下文管理器中的每一头条目中,且
其中读取所述主存储器以按顺序重建所述第一数据包及所述第二数据包包括:使用所述母上下文管理器中的所述头条目而基于存储于所述多个头条目中的每一头条目中的所述相应序列识别符来确定存取所述多个存储器库的所述顺序。
CN201680047977.6A 2015-07-15 2016-07-14 针对网络装置实施阶层分布式链接列表的系统及方法 Active CN108139882B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910887671.7A CN110795028B (zh) 2015-07-15 2016-07-14 针对网络装置实施阶层分布式链接列表的系统及方法

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/800,654 2015-07-15
US14/800,654 US20170017414A1 (en) 2015-07-15 2015-07-15 System And Method For Implementing Hierarchical Distributed-Linked Lists For Network Devices
PCT/US2016/042292 WO2017011663A1 (en) 2015-07-15 2016-07-14 System and method for implementing hierarchical distributed-linked lists for network devices

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN201910887671.7A Division CN110795028B (zh) 2015-07-15 2016-07-14 针对网络装置实施阶层分布式链接列表的系统及方法

Publications (2)

Publication Number Publication Date
CN108139882A CN108139882A (zh) 2018-06-08
CN108139882B true CN108139882B (zh) 2019-10-18

Family

ID=57758329

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201910887671.7A Active CN110795028B (zh) 2015-07-15 2016-07-14 针对网络装置实施阶层分布式链接列表的系统及方法
CN201680047977.6A Active CN108139882B (zh) 2015-07-15 2016-07-14 针对网络装置实施阶层分布式链接列表的系统及方法

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN201910887671.7A Active CN110795028B (zh) 2015-07-15 2016-07-14 针对网络装置实施阶层分布式链接列表的系统及方法

Country Status (4)

Country Link
US (3) US20170017414A1 (zh)
CN (2) CN110795028B (zh)
TW (1) TWI706314B (zh)
WO (1) WO2017011663A1 (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170017420A1 (en) 2015-07-15 2017-01-19 Innovium, Inc. System And Method For Enabling High Read Rates To Data Element Lists
US10146438B1 (en) 2016-06-29 2018-12-04 EMC IP Holding Company LLC Additive library for data structures in a flash memory
US10261704B1 (en) * 2016-06-29 2019-04-16 EMC IP Holding Company LLC Linked lists in flash memory
US10055351B1 (en) 2016-06-29 2018-08-21 EMC IP Holding Company LLC Low-overhead index for a flash cache
US10089025B1 (en) 2016-06-29 2018-10-02 EMC IP Holding Company LLC Bloom filters in a flash memory
US10037164B1 (en) 2016-06-29 2018-07-31 EMC IP Holding Company LLC Flash interface for processing datasets
US10331561B1 (en) 2016-06-29 2019-06-25 Emc Corporation Systems and methods for rebuilding a cache index

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6178133B1 (en) * 1999-03-01 2001-01-23 Micron Technology, Inc. Method and system for accessing rows in multiple memory banks within an integrated circuit
CN1992067A (zh) * 2005-12-09 2007-07-04 三星电子株式会社 具有设备间点对点和点对两点链接的存储系统
US7627870B1 (en) * 2001-04-28 2009-12-01 Cisco Technology, Inc. Method and apparatus for a data structure comprising a hierarchy of queues or linked list data structures

Family Cites Families (71)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5093910A (en) 1986-10-29 1992-03-03 United Technologies Corporation Serial data transmission between redundant channels
FR2707382B1 (fr) 1993-07-09 1995-09-22 Framatome Sa Echangeur de chaleur comportant un faisceau de tubes cintrés en U et des barres antivibratoires entre les parties cintrées des tubes.
US6493347B2 (en) 1996-12-16 2002-12-10 Juniper Networks, Inc. Memory organization in a switching device
US6032207A (en) 1996-12-23 2000-02-29 Bull Hn Information Systems Inc. Search mechanism for a queue system
US6117185A (en) 1997-09-24 2000-09-12 International Business Machines Corporation Skip list data storage during compilation
US6892378B2 (en) 2001-09-17 2005-05-10 Hewlett-Packard Development Company, L.P. Method to detect unbounded growth of linked lists in a running application
US6754735B2 (en) 2001-12-21 2004-06-22 Agere Systems Inc. Single descriptor scatter gather data transfer to or from a host processor
US20030196024A1 (en) 2002-04-16 2003-10-16 Exanet, Inc. Apparatus and method for a skip-list based cache
US6829617B2 (en) 2002-02-15 2004-12-07 International Business Machines Corporation Providing a snapshot of a subset of a file system
US7733888B2 (en) 2002-06-04 2010-06-08 Alcatel-Lucent Usa Inc. Pointer allocation by prime numbers
US7349382B2 (en) 2002-08-10 2008-03-25 Cisco Technology, Inc. Reverse path forwarding protection of packets using automated population of access control lists based on a forwarding information base
US7930426B1 (en) 2003-04-01 2011-04-19 Cisco Technology, Inc. Method for tracking transmission status of data to entities such as peers in a network
US8566292B2 (en) 2003-04-14 2013-10-22 Schneider Electric It Corporation Method and system for journaling and accessing sensor and configuration data
CA2426619A1 (en) 2003-04-25 2004-10-25 Ibm Canada Limited - Ibm Canada Limitee Defensive heap memory management
US7827375B2 (en) 2003-04-30 2010-11-02 International Business Machines Corporation Defensive heap memory management
US7111136B2 (en) 2003-06-26 2006-09-19 Hitachi, Ltd. Method and apparatus for backup and recovery system using storage based journaling
US7321951B2 (en) 2003-11-17 2008-01-22 Micron Technology, Inc. Method for testing flash memory power loss recovery
US7865364B2 (en) 2005-05-05 2011-01-04 Nuance Communications, Inc. Avoiding repeated misunderstandings in spoken dialog system
JP2006332927A (ja) 2005-05-25 2006-12-07 Seiko Epson Corp Tcp/ip受信処理回路及びそれを具備する半導体集積回路
US7831624B2 (en) 2005-06-24 2010-11-09 Seagate Technology Llc Skip list with address related table structure
GB0519981D0 (en) 2005-09-30 2005-11-09 Ignios Ltd Scheduling in a multicore architecture
US7990737B2 (en) * 2005-12-23 2011-08-02 Intel Corporation Memory systems with memory chips down and up
US20070198978A1 (en) 2006-02-22 2007-08-23 David Dice Methods and apparatus to implement parallel transactions
US7680842B2 (en) 2006-08-18 2010-03-16 Isilon Systems, Inc. Systems and methods for a snapshot of data
US7899958B2 (en) 2006-12-21 2011-03-01 Unisys Corporation Input/output completion system and method for a data processing platform
US8600953B1 (en) 2007-06-08 2013-12-03 Symantec Corporation Verification of metadata integrity for inode-based backups
US20090006804A1 (en) 2007-06-29 2009-01-01 Seagate Technology Llc Bi-level map structure for sparse allocation of virtual storage
US7793146B1 (en) * 2007-08-07 2010-09-07 Panasas, Inc. Methods for storing data in a data storage system where a RAID-X format or formats are implemented at a file level
US8375062B2 (en) 2007-11-19 2013-02-12 Oracle America, Inc. Simple optimistic skiplist
NO327653B1 (no) 2007-12-20 2009-09-07 Fast Search & Transfer As Fremgangsmate for dynamisk oppdatering av en indeks og en sokemotor som implementerer samme
US8443133B2 (en) 2008-02-29 2013-05-14 Kabushiki Kaisha Toshiba Memory system storing management information and method of controlling same
US8126927B1 (en) 2008-06-06 2012-02-28 Amdocs Software Systems Limited Data structure, method, and computer program for providing a linked list in a first dimension and a plurality of linked lists in a second dimension
CA2731954C (en) 2008-07-25 2014-10-21 Roberto Tamassia Apparatus, methods, and computer program products providing dynamic provable data possession
US8352519B2 (en) 2008-07-31 2013-01-08 Microsoft Corporation Maintaining large random sample with semi-random append-only operations
US20100125554A1 (en) 2008-11-18 2010-05-20 Unisys Corporation Memory Recovery Across Reboots of an Emulated Operating System
US8412677B2 (en) 2008-11-26 2013-04-02 Commvault Systems, Inc. Systems and methods for byte-level or quasi byte-level single instancing
KR20110104477A (ko) 2008-12-18 2011-09-22 모사이드 테크놀로지스 인코퍼레이티드 프리셋 동작을 필요로 하는 메인 메모리 유닛 및 보조 메모리 유닛을 갖는 반도체 장치
US8515911B1 (en) 2009-01-06 2013-08-20 Emc Corporation Methods and apparatus for managing multiple point in time copies in a file system
EP2211263A3 (en) 2009-01-23 2013-01-23 Infortrend Technology, Inc. Method for performing storage virtualization in a storage system architecture
US8266408B2 (en) 2009-03-17 2012-09-11 Memoir Systems, Inc. System and method for storing data in a virtualized high speed memory system
US8873550B2 (en) 2010-05-18 2014-10-28 Lsi Corporation Task queuing in a multi-flow network processor architecture
US8583893B2 (en) 2009-05-28 2013-11-12 Marvell World Trade Ltd. Metadata management for virtual volumes
US8533388B2 (en) 2009-06-15 2013-09-10 Broadcom Corporation Scalable multi-bank memory architecture
AU2009202442A1 (en) 2009-06-18 2011-01-13 Canon Kabushiki Kaisha Skip list generation
US8402071B2 (en) 2009-06-19 2013-03-19 Aptare, Inc. Catalog that stores file system metadata in an optimized manner
EP2290562A1 (en) 2009-08-24 2011-03-02 Amadeus S.A.S. Segmented main-memory stored relational database table system with improved collaborative scan algorithm
US8205062B2 (en) 2009-10-14 2012-06-19 Inetco Systems Limited Tiered data management method and system for high performance data monitoring
CN102117278B (zh) * 2009-12-31 2016-10-05 联想(北京)有限公司 链表的创建方法及系统、数据的查找方法及系统
US8364864B2 (en) 2010-03-17 2013-01-29 Juniper Networks, Inc. Multi-bank queuing architecture for higher bandwidth on-chip memory buffer
US9251214B2 (en) 2010-04-08 2016-02-02 Microsoft Technology Licensing, Llc In-memory database system
US8694733B2 (en) 2011-01-03 2014-04-08 Sandisk Enterprise Ip Llc Slave consistency in a synchronous replication environment
US8909602B2 (en) 2011-02-03 2014-12-09 Vmware, Inc. Programmatic snapshot and revert of virtualized data center inventory
US8806112B2 (en) 2011-07-14 2014-08-12 Lsi Corporation Meta data handling within a flash media controller
WO2013020002A1 (en) 2011-08-02 2013-02-07 Cavium, Inc. Incremental update of rules for packet classification
US9063768B2 (en) 2011-10-10 2015-06-23 Vmware, Inc. Method and apparatus for comparing configuration and topology of virtualized datacenter inventories
US8984183B2 (en) * 2011-12-16 2015-03-17 Nvidia Corporation Signaling, ordering, and execution of dynamically generated tasks in a processing system
US20130339569A1 (en) 2012-06-14 2013-12-19 Infinidat Ltd. Storage System and Method for Operating Thereof
US9160624B2 (en) 2012-07-03 2015-10-13 Opera Software Ireland Limited Linked list scripting engine
US9390018B2 (en) * 2012-08-17 2016-07-12 Advanced Micro Devices, Inc. Data cache prefetch hints
GB2505185A (en) 2012-08-21 2014-02-26 Ibm Creating a backup image of a first memory space in a second memory space.
US9251053B2 (en) * 2013-03-14 2016-02-02 SanDisk Technologies, Inc. Managing configuration parameters for a non-volatile medium
US9128615B2 (en) 2013-05-15 2015-09-08 Sandisk Technologies Inc. Storage systems that create snapshot queues
US9411533B2 (en) * 2013-05-23 2016-08-09 Netapp, Inc. Snapshots and versioning of transactional storage class memory
US9584637B2 (en) 2014-02-19 2017-02-28 Netronome Systems, Inc. Guaranteed in-order packet delivery
US20150270015A1 (en) 2014-03-19 2015-09-24 Micron Technology, Inc. Memory mapping
US20150295883A1 (en) 2014-04-09 2015-10-15 Freescale Semiconductor, Inc. Storage and retrieval of information using internet protocol addresses
US10726831B2 (en) 2014-05-20 2020-07-28 Amazon Technologies, Inc. Context interpretation in natural language processing using previous dialog acts
US10162716B2 (en) 2014-06-09 2018-12-25 Sap Se Hybrid SCM-DRAM transactional storage engine for fast data recovery
US9959299B2 (en) 2014-12-02 2018-05-01 International Business Machines Corporation Compression-aware partial sort of streaming columnar data
US20160179865A1 (en) 2014-12-17 2016-06-23 Yahoo! Inc. Method and system for concurrency control in log-structured merge data stores
US10616144B2 (en) 2015-03-30 2020-04-07 Cavium, Llc Packet processing system, method and device having reduced static power consumption

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6178133B1 (en) * 1999-03-01 2001-01-23 Micron Technology, Inc. Method and system for accessing rows in multiple memory banks within an integrated circuit
US7627870B1 (en) * 2001-04-28 2009-12-01 Cisco Technology, Inc. Method and apparatus for a data structure comprising a hierarchy of queues or linked list data structures
CN1992067A (zh) * 2005-12-09 2007-07-04 三星电子株式会社 具有设备间点对点和点对两点链接的存储系统

Also Published As

Publication number Publication date
US20170364291A1 (en) 2017-12-21
CN110795028A (zh) 2020-02-14
US9753660B2 (en) 2017-09-05
CN108139882A (zh) 2018-06-08
TWI706314B (zh) 2020-10-01
US10055153B2 (en) 2018-08-21
CN110795028B (zh) 2021-12-07
WO2017011663A1 (en) 2017-01-19
US20170017414A1 (en) 2017-01-19
TW201716983A (zh) 2017-05-16
US20170017404A1 (en) 2017-01-19

Similar Documents

Publication Publication Date Title
CN108139882B (zh) 针对网络装置实施阶层分布式链接列表的系统及方法
US10740006B2 (en) System and method for enabling high read rates to data element lists
US9785367B2 (en) System and method for enabling high read rates to data element lists
US10601723B2 (en) Bandwidth matched scheduler
US9767014B2 (en) System and method for implementing distributed-linked lists for network devices
US10067690B1 (en) System and methods for flexible data access containers

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant