CN108139867B - 用于实现对数据元素列表的高读取率的系统及方法 - Google Patents
用于实现对数据元素列表的高读取率的系统及方法 Download PDFInfo
- Publication number
- CN108139867B CN108139867B CN201680047978.0A CN201680047978A CN108139867B CN 108139867 B CN108139867 B CN 108139867B CN 201680047978 A CN201680047978 A CN 201680047978A CN 108139867 B CN108139867 B CN 108139867B
- Authority
- CN
- China
- Prior art keywords
- memory
- list
- library
- data element
- snapshot
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0615—Address space extension
- G06F12/0623—Address space extension for memory modules
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0253—Garbage collection, i.e. reclamation of unreferenced memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1041—Resource optimization
- G06F2212/1044—Space efficiency improvement
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
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 Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明描述一种用于网络装置的存储器系统。所述存储器系统包含经配置以存储一或多个数据元素的主存储器。此外,所述存储器系统包含母分布式链接表,其经配置以存储链接表元数据。并且,所述存储器系统包含子分布式链接表,其经配置以维持列表元数据以使存储于所述主存储器中的所述一或多个数据元素互连以产生至少一第一快照,所述链接表元数据参考所述快照。
Description
技术领域
本发明的实施例涉及网络装置。特定来说,本发明的实施例涉及用于网络装置的存储器系统。
背景技术
网络装置用以在网络中的节点之间转移数据。随着网络发展和通信信道的数据率增加,需要增加网络装置可在一段时间内处理的数据量。为满足这些网络的需求,装置需要一种存储器系统,所述存储器系统经设计以将数据读取到存储器中且从存储器写出数据,以适应网络的需求且最小化读取请求与写入请求之间的任何冲突。当前系统通过增加存储器的存取端口数目及/或增加所述存储器的时钟速度而满足网络的高容量及高数据率需求,这需要先进的半导体技术。然而,增加存储器上的存取端口的数目及使用先进的半导体技术来增加存储器的操作频率会显著地增加存储器的成本及操作这些存储器所需的功率预算。
发明内容
描述一种用于网络装置的存储器系统。所述存储器系统包含经配置以存储一或多个数据元素的主存储器。此外,所述存储器系统包含链接存储器,其经配置以维持一或多个指针以使存储于所述主存储器中的所述一或多个数据元素互连。所述存储器系统还包含自由条目管理器,其经配置以产生包含所述链接存储器中的一或多个位置的可用库组。另外,所述存储器系统包含上下文管理器,其经配置以维持元数据用于多个列表,其中每一列表含有一或多个数据元素。
从附图及从下列详细描述将明白本发明的实施例的其它特征及优点。
附图说明
通过附图的图中的实例而非经由其限制说明本发明的实施例,其中相似元件符号指类似元件,且在附图中:
图1说明根据实施例的包含实施分布式链接表的存储器系统的网络装置的框图;
图2说明根据实施例的存储器系统的一部分的框图;
图3说明根据实施例的包含链接存储器的多个库的存储器系统的一部分的框图;
图4说明根据实施例的用于实施分布式链接表的方法的流程图;
图5说明根据实施例的用于使用分布式链接表来存储数据元素的方法的流程图;
图6说明根据实施例的用于使用分布式链接表来读取数据元素的流程图;
图7说明根据实施例的包含实施分层分布式链接表的存储器系统的网络装置的框图;
图8说明根据实施例的包含母链接存储器的多个库的母分布式链接表的一部分的框图;
图9说明根据实施例的用于实施分层分布式链接表的方法的流程图;
图10说明根据实施例的使用由系统产生的跳表的示范性数据元素列表的框图;
图11说明根据实施例的用于使用跳表的读取存取的示范性时间表;
图12说明根据实施例的经配置以存储图10中所说明的数据元素列表的链接存储器及上下文管理器的框图;
图13说明根据实施例的用于方法的流程图,所述方法用于实施产生包含一或多个跳表及相关联元数据的数据元素列表的方法;
图14a到f说明根据实施例的表示产生包含一或多个跳表及相关联元数据的数据元素列表的方法的框图;
图15说明根据实施例的用于在链接存储器中产生可用库列表的流程图;
图16说明根据实施例的由存储器系统产生的互连快照列表;
图17说明根据实施例的产生互连快照列表的方法的流程图,所述互连快照列表包含一或多个数据元素组列表,其包含一或多个跳表及相关联快照列表元数据;
图18a到d说明根据实施例的表示产生互连快照列表的方法的框图,所述互连快照列表包含一或多个数据元素组列表,其包含一或多个跳表及相关联快照列表元数据;
图19说明根据实施例的用于在链接存储器中产生可用库列表的流程图,其包含子链接存储器及母链接存储器;
图20说明根据实施例的用于使用一或多个快照跳表的读取存取的示范性方法的框图。
具体实施方式
描述针对网络装置实施分布式链接表的系统及方法的实施例。特定来说,描述一种存储器系统,其经配置以通过实施分布式链接表而管理数据。存储器系统包含用于存储由网络装置接收的数据的主存储器。此外,存储器系统包含分布式链接表。分布式链接表包含链接存储器、自由条目管理器及上下文管理器。分布式链接表经配置以跟踪存储于主存储器中的数据的位置且使位置结合到列表以维持数据之间的顺序关系。此外,分布式链接表使用库存储器结构来维持存储于主存储器中的数据之间的顺序关系,而无需维持主存储器与分布式链接表之间的直接关系。此架构能够使用单端口存储器且降低操作频率,这降低了存储器系统的成本及复杂性同时仍满足高容量网络的性能需求。
图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到202d。数据元素包含但不限于数据包或数据包的单元。如所属领域中已知,数据包可分裂成多个单元。使用包含所属领域中已知的技术的技术使用与一或多个位置202a到202d中的每一者相关联的地址对这些位置202a到202d进行存取。链接存储器204还包含位置206a到206d用于存储元数据以产生一或多个列表。举例来说,处理器16经配置以将元数据写入到位置206a到206d,所述位置206a到206d使位置202a到202d互连以在列表中形成条目。列表维持存储于主存储器200中的数据元素应从主存储器200读取的序列的顺序。顺序可基于先入先出(FIFO)、优先权或包含用于网络装置的所属领域中已知的标准的其它标准的一或多者。
针对实施例,链接存储器204经配置以存储元数据,例如一或多个指针,所述元数据用以使条目互连来形成存储于主存储器中的数据元素的一或多个列表。针对实施例,存储于链接存储器204中的元数据,例如指针,指定列表中的下一条目的链接存储器204内的位置的地址。除指针外,根据实施例,链接存储器204中的位置206a到206d包含另一元数据,其包含但不限于序列识别符(例如,数据元素序列识别符)及在主存储器中用于数据元素的位置的地址。序列识别符表示从存储器读取数据元素及快照的顺序或序列。针对实施例,数据元素序列识别符是基于在网络装置处接收数据元素的顺序。而且,链接存储器204经配置以将地址存储于链接存储器204的位置206a到206d中,用于数据元素被存储于其中的主存储器200中的位置202a到202d。
图2中所说明的实施例还包含上下文管理器210。上下文管理器210经配置以维持元数据用于一或多个列表,其中每一列表包含一或多个数据元素。具体来说,上下文管理器210包含经配置以存储元数据用于列表的头条目或第一条目及列表的尾条目或最后条目的头条目212及尾条目214。针对实施例,用于头及尾的元数据存储于一或多个寄存器中。然而,所属领域的技术人员将理解,可使用包含本文中所描述的技术的其它存储器技术。存储于头条目212中的元数据包含在其中存储列表的第一条目的主存储器200中的位置202a到202d的地址。存储于头条目212中的元数据还包含到列表中的下一条目的位置206a到206d的指针。举例来说,指针是到链接存储器204中的为列表中的下一条目的位置206a到206d的地址。另外,头条目212可包含数据元素的数据元素序列识别符。尾条目214包含上文所描述的类型的元数据的一或多者,但用于列表中的最后条目。在列表包含仅一个数据元素的情况下,头条目212及尾条目214将包含相同元数据。针对实施例,当将元数据存储于主存储器200中或从主存储器200读取元数据时,使用一或多个处理器更新、覆写及无效化头条目212及尾条目214中的元数据。
图3说明根据实施例的包含分布式链接表存储器的多个库的存储器系统的一部分的框图。存储器系统的部分包含主存储器300、链接存储器303及上下文管理器314。主存储器300可使用本文中所描述的技术来实施。所述链接存储器由存储器元件阵列(例如存储器库304a到304d)形成。针对实施例,每一存储器库304a到304d是单端口存储器,所述单端口存储器提供每时钟循环的单次存取。如图3中所说明,实施例包含:第一存储器库304a,其包含位置306a到306d;第二存储器库304b,其包含位置308a到308d;第三存储器库304c,其包含位置310a到310d;及第四存储器库304d,其包含位置312a到312d。
如上文所描述,链接存储器经配置以存储元数据,其包含用以参考存储于主存储器中的数据元素的位置的地址的指针。由于可使用到主存储器的位置的指针,所以不需要主存储器的位置与链接存储器的位置之间的直接关系。这样实现将单独及不同架构用于主存储器及链接存储器的灵活性,例如链接存储器针对主存储器的每一库具有存储器的多个库。链接存储器的多个库的使用提供使用具有单个存取端口的存储器及/或具有较低时钟速度的存储器的能力。如上文所描述,链接存储器经配置以使用包含上文所描述的技术的技术来存储用以使条目互连以形成存储于主存储器中的数据元素的列表的指针。此外,链接存储器的多个库的使用提供可按比例调整以支持较高容量系统的架构。举例来说,使用链接存储器的多个库的存储器系统可经设计以每时钟循环处理至少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到304d的列表一起用以产生完整列表,所述完整列表使存储于主存储器300中的数据元素互连。
针对实施例,处理器经配置以将数据元素序列识别符指派到在端口上接收的每一数据元素。数据元素序列识别符经指派到每一数据元素以指示接收每一数据元素的顺序。数据元素序列识别符作为元数据存储于链接存储器的位置中,如本文中所描述。另外,如果存储于主存储器中的对应数据元素是库中的列表的头或库中的列表的尾,那么数据元素序列识别符存储于头条目及尾条目中。
针对包含链接存储器的多个库的实施例,例如图3中所说明的实施例,存储器系统经配置以通过比较经指派到数据包的数据元素序列识别符而确定列表中的下一元素。经配置以确定下一元素的存储器系统包含经配置以读取经存储用于链接存储器303中的每一库304a到304d的头条目316、320、324及328的处理器。处理器比较存储于全部头条目316、320、324及328中的数据元素序列识别符以确定数据元素的哪一者是列表中的下一者。针对实施例,最低数据元素序列识别符是经指派以使得最低数值可用以确定列表中的下一数据元素的数值;然而,系统不限于使用最低数据元素序列识别符作为指示符。根据实施例,数据元素序列识别符一旦到达网络装置后即经指派到数据元素。一旦处理器确定列表中的下一数据元素,那么处理器经配置以检索数据元素存储于其中的主存储器位置302a到302d的地址。针对实施例,处理器经配置以从具有最低数据元素序列识别符的头条目316、320、324及328检索地址。处理器进一步经配置以使用经检索地址来从主存储器读出数据元素。
针对实施例,处理器经配置以更新从主存储器读出的存储于头条目中的数据元素的元数据。处理器经配置以使用存储列表中的下一条目用于库304a到304d的链接存储器303中的位置的地址。处理器还经配置以在响应于将新的数据元素存储于主存储器300中而将新的条目添加到列表用于库304a到304d时更新尾条目318、322、326及330用于库304a到304d。
如上文所描述,自由条目管理器用以产生用于将条目存储于链接存储器中的可用库组。针对包含存储器的多个库的实施例,例如图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到804d。针对实施例,每一存储器库804a到804d是单端口存储器,所述单端口存储器提供每时钟循环单次存取。如图8中所说明,实施例包含:第一存储器库804a,其包含位置806a到806d;第二存储器库804b,其包含位置808a到d;第三存储器库804c,其包含位置810a到810d;及第四存储器库804d,其包含位置812a到812d。
如图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到804d的列表快照一起用以产生完整快照列表,所述完整快照列表使存储于母快照存储器800中的快照的一或多者互连。
针对实施例,处理器经配置以将快照序列识别符指派到每一快照。快照序列识别符指示在网络装置处接收每一快照的顺序。举例来说,在经接收用于快照的最后数据元素到达后就指派快照序列识别符。快照序列识别符作为链接表元数据而存储于母链接存储器803的位置中,如本文中所描述。另外,如果存储于母快照存储器800中的对应快照是库中的快照的列表的头或库中的快照的列表的尾,那么快照序列识别符存储于头条目及任选地尾条目中。
针对包含母链接存储器803的多个库的实施例,例如,图8中所说明的实施例,存储器系统经配置以通过比较经指派到快照的快照序列识别符而确定快照的列表中的下一快照。经配置以确定下一快照的存储器系统包含经配置以读取经存储用于母上下文管理器814中的每一库804a到804d的头条目816、820、824及828的处理器。处理器比较存储于全部头条目816、820、824及828中的快照序列识别符来确定快照的哪一者是快照的列表中的下一者。针对实施例,最低快照序列识别符是经指派使得最低数值可用以确定列表中的下一数据元素的数值;然而,系统不限于使用最低快照序列识别符作为指示符。根据实施例,快照序列识别符一旦到达网络装置后就经指派为数据元素。一旦处理器确定列表中的下一快照,处理器就经配置以检索快照存储于其中的母快照存储器802a到802d的地址。针对实施例,处理器经配置以从具有最低快照序列识别符的头条目816、820、824及828检索地址。处理器进一步经配置以使用包含本文中所描述的技术的技术来使用经检索地址来从母快照存储器800读出数据元素且将快照存储于子上下文管理器中。
针对实施例,处理器经配置以更新从母快照存储器800读出的存储于母上下文管理器814的头条目中的快照的链接表元数据。处理器经配置以使用存储快照列表中的下一条目用于库804a到804d的母链接存储器803中的位置的地址。处理器还经配置以例如在响应于将新的快照存储于母上下文存储器800中而将新的快照添加到快照列表用于库804a到804d时更新尾条目818、822、826及830用于库804a到d。
如上文所描述,母自由条目管理器用以产生用于将条目存储于母链接存储器803中的母可用库组。针对包含存储器的多个库的实施例(例如,图8中所说明的实施例),母自由条目管理器经配置以产生母可用库组,其包含库中的每一者中的一或多个位置,使得将不发生存取冲突。如果需要超过母链接存储器的库的能力的对库的读取或写入存取,那么将发生存取冲突。举例来说,包含具有单个存取端口的库的母链接存储器将限于每时钟循环一次读取或写入。因此,在使用具有单个存取端口的库的实施例中,母自由条目管理器将经配置以从母可用库组排除经调度用于时钟循环中的读取或写入的库的位置。
根据实施例,母自由条目管理器经配置以基于下列标准的一或多者而产生母可用库组,包含但不限于:1)位置不供另一数据元素使用;2)含有到列表的条目的库不由读取操作存取;及3)含有链接条目的库不经存取用于链接操作。链接操作包含但不限于用以更新链接表元数据的写入存取,用以更新头条目或尾条目的读取存取,用以包含链接表元数据用于到列表的新的条目的写入存取、用以无效化快照的列表中的条目的存取或对母链接存储器中的位置的其它存取。母自由条目管理器还可经配置以确定用于库的读取/写入存取可用性,包含一个以上单个存取端口。母自由条目管理器经配置以基于所属领域中已知的技术确定库的可用性,包含但不限于请求位/旗标组、经激活的请求总线线路、调度协议或以其它方式保留对库的存取的其它指示符。
图9说明根据实施例的用于实施分层分布式链接表的方法的流程图。方法包含使用包含本文中所描述的技术的技术来存储一或多个数据元素(902)。方法还包含使用包含本文中所描述的技术的技术来维持列表元数据以使一或多个数据元素互连(904)。此外,方法包含使用包含本文中所描述的技术的技术基于列表元数据而产生至少一第一快照(906)。方法包含使用本文中所描述的技术的技术来将一或多个位置分配于存储器中(908)。另外,方法任选地包含使用包含本文中所描述的技术的技术来维持链接表元数据以使第一快照与至少一第二快照互连(910)。而且,方法任选地包含使用包含本文中所描述的技术的技术基于列表元数据而确定数据元素列表的下一数据元素(912)。方法任选地包含基于链接表元数据确定第二快照的存储器中的位置914。
针对实施例,如本文中所描述的存储器系统经配置以使用一或多个跳表来产生数据元素列表。使用一或多个跳表的数据元素列表可克服横越基于硬件的数据元素列表中固有的读取率限制。实例读取率限制是针对数据元素的读取请求与所述数据元素的可用性之间的延迟的结果。此外,通过使用包含一或多个跳表的数据元素列表而获得的效率提供使用具有较少存取端口的较低成本存储器(例如,单个存取端口存储器)的益处。举例来说,分布式链接表的库存储器结构可包含跳表。这些跳表可用以实现更高读取率以克服与硬件相关联的读取率限制。
针对实施例,数据元素列表经产生以包含K数目个跳表。数据元素列表中的前K节点中的每一者是K跳表的头。每一跳表含有数据元素子序列,其形成完整数据元素列表。针对实施例,系统经配置以产生跳表中的两个后续元素之间的距离以基于存储器系统的硬件设计而克服读取响应延迟。作为实例读取率限制,考虑具有三个时钟循环的读取率限制的存储器系统,所述存储器系统经配置以产生数据元素列表,使得所述数据元素列表中的第一跳表的第二元素在所述数据元素列表中的第三元素之后。基于跳表结构而产生数据元素列表(例如本文中所描述的数据元素列表)使得对数据元素列表中的前K元素的快速存取能够克服在由于横越硬件列表的读取存取之间的延迟。
图10说明根据实施例的使用由系统产生的跳表的示范性数据元素列表的框图。根据此实例,数据元素列表1000包含三个跳表。每一跳表包含头节点。在图10中,头节点标记为1001、1002及1003。数据列表中的每一头节点包含到所述跳表中的下一元素的链接(例如如本文中所描述的指针)。如本文中所描述,所述数据元素列表内的跳表中的下一元素的位置是部分基于数据元素列表中的跳表的数目。数据元素列表中的跳表的数目也可基于用于系统的数据元素的所期望读取率。在图10中所说明的实例中,具有头节点1001的第一跳表链接到第一跳表1004的第二节点。具有头节点1002的第二跳表(所述数据元素列表中的第二节点)链接到第二跳表1005的第二节点。具有头节点1003的第三跳表链接到第三跳表1006的第二节点。
图11说明根据实施例的使用跳表的读取存取以存取数据元素列表的数据元素的示范性方法的框图。下文所描述的实例假设用于数据元素的读取请求与所述数据元素的可用性之间的延迟是三个时钟循环。然而,所属领域的技术人员将理解,跳表的不同布置可用以解决任何量的延迟。所述系统起始读取事件以读取数据元素列表的第一节点(1102)。举例来说,所述系统在时间零处起始读取事件以通过发布读取请求用于第一跳表1001的头节点、数据元素列表中的第一节点及数据元素列表中的第一跳表的头节点,使用包含本文中所描述的技术的技术从数据元素列表1000(如图10所说明)读取第一跳表1001的头节点。如上文所描述,存储器系统(例如)通过使用本文中所描述的技术读取头条目而确定数据元素列表中的第一节点。读取与数据元素列表中的第一数据元素相关联的元数据(1104),其根据实施例包含其中存储第一数据元素的主存储器中的地址及用于跳表中的下一节点的指针。针对图10中所说明的实例,在第一跳表1001的头节点之后的跳表中的下一节点基于元数据读取而经确定为第一跳表1004的第二节点。现具有用于跳表中的下一节点的指针的系统现在可并行操作以基于读取元数据而存取与第一跳表中的下一数据元素相关联的元数据(1106)。举例来说,参考图10,与第一跳表1001的头节点相关联的元数据用以存取与第一跳表1004的第二节点相关联的元数据,使得用于第一跳表1004的第二节点的元数据在时间3处可用。
所述方法包含起始针对数据元素列表的第二节点的读取事件(1108)。举例来说,参考图10,在时间1处,所述系统起始读取事件以通过发布读取请求用于第二跳表1002的头节点(其是数据元素列表1000中的第二节点),使用包含本文中所描述的技术的技术而从数据元素列表1000读取第二跳表1002的头节点。如上文所描述,系统(例如)通过使用本文中所描述的技术来读取头条目以确定数据元素列表中的第二节点。一旦确定第二节点,就读取(1110)与数据元素列表的第二数据元素相关联的元数据,其根据实施例包含其中存储第二数据元素的主存储器中的地址及用于跳表中的下一节点的指针。继续如图10中所说明的实例,所述系统通过读取与第二跳表1002的头节点相关联的元数据来确定第二跳表1005的第二节点。此外,所述方法包含基于读取元数据来存取与第二跳表中的下一数据元素相关联的元数据(1112)。举例来说,使用图10中的实例,所述系统使用参考第二跳表1005的第二节点的指针,且现在可并行操作以存取与第二跳表1005的第二节点相关联的元数据,使得元数据将在时间4处可用。
继续参考图10的实例,在时间2处,所述系统起始读取事件以通过发布针对第三跳表1003的头节点的读取请求,使用包含本文中所描述的技术的技术而从数据元素列表1000读取第三节点,第三跳表1003的头节点。举例来说,如上文所描述,存储器系统通过使用本文中所描述的技术来读取头条目以确定数据元素列表中的第三节点。一旦第三节点经确定为第三跳表1003的头节点,就读取与第三跳表1003的头节点相关联的元数据,其根据实施例包含其中存储第三数据元素的主存储器中的地址及用于跳表中的下一节点的指针。如图10中所说明,跳表中的下一节点是第三跳表1006的第二节点。现在具有用于跳表中的下一节点的指针的系统现在可并行操作以存取与数据元素相关联的元数据,使得与数据元素相关联的元数据将在时间5处可用。
在时间3处,与数据元素列表1000中的第一跳表1004的第二节点相关联的元数据基于通过读取指针在时间0处的读取存取的起始而可用。在时间4处,与数据元素列表1000中的第二跳表1005的第二节点相关联的元数据基于通过读取指针在时间1处的读取存取的起始而可用。所述方法将继续上文所描述的过程直到读取数据元素列表中的最后节点为止。图12说明根据实施例的经配置以存储图10中所说明的数据元素列表的链接存储器及上下文管理器的框图。
针对实施例,经配置以产生数据元素列表(其包含一或多个跳表)的存储器系统包含存储器系统,其包含分布式链接表存储器的多个库,包含本文中所描述的存储器。所述链接存储器经配置以含有与使用包含本文中所描述的技术的技术的数据元素列表相关联的数据元素链接节点。针对实施例,所述链接存储器的每一库与数据元素列表的跳表相关联。根据实施例,链接存储器中的每一条目包含元数据,其包含提供经存储于主存储器中的数据元素的位置的地址、到对包含用于跳表中的下一元素的元数据的链接存储器中的地址的参考的下一指针及序列指针。针对另一实施例,所述链接存储器中的每一条目与缓冲存储器条目指派相关联。此实施例提供用于元数据的存储,例如用于跳表中的下一元素的下一指针。此提供以下益处:需要较小存储器分配用于链接存储器的每一条目,同时维持元数据以实施包含跳表的数据元素列表。针对实施例,链接存储器中的条目包含其它相关联数据,其包含如本文中所描述的元数据。而且,所述存储器系统包含上下文管理器,其经配置以使用包含本文中所描述的技术的技术来维持多个尾条目及头条目。针对实施例,所述上下文管理器包含用于与跳表相关联的每一库的头条目及尾条目。
图13说明根据实施例的方法的流程图,所述方法用于实施产生包含一或多个跳表及相关联元数据的数据元素列表的方法。图14a到f说明表示母分布式链接表的一部分的状态的框图,所述母分布式链接表在如图13中所说明的方法期间包含多个库。针对实施例,用以产生包含一或多个跳表的数据元素列表的方法包含接收第一数据元素1302,如图13中所说明。所述方法包含使用包含本文中所描述的技术的技术来:产生第一元数据1304,其包含到对用于跳表中的下一元素的元数据的链接存储器中的地址的参考的下一指针;及将第一元数据写入存储器系统中以形成数据元素列表的第一节点1306。举例来说,如图14a中所说明,将经产生的第一元数据1216a写入到第一头条目816。
如图13中所说明,所述方法包含:产生第二元数据1308,其包含到对用于第二跳表中的下一元素的元数据的链接存储器中的地址的参考的下一指针;及将第二元数据写入存储器系统中用于第二数据元素1310,其使用包含本文中所描述的技术的技术到达网络装置以形成数据元素列表的第二节点,其是数据元素列表的第二节点及第二跳表的头节点。第二元数据(例如)响应于接收第二数据元素而产生。举例来说,如图14b中所说明,将经产生的第二元数据1220a写入到第二头条目824。
所述方法还包含:产生第三元数据1312,其包含到对用于第三跳表中的下一元素的元数据的链接存储器中的地址的参考的下一指针;及将第三元数据写入存储器系统中用于第三数据元素1314,其使用包含本文中所描述的技术的技术到达网络装置以形成数据元素列表的第三节点,其是第三跳表的头节点。举例来说,如图14c中所说明,将经产生的第三元数据1224a写入到第三头条目820。此外,所述方法包含:产生第四元数据1316,其包含到对用于第一跳表中的下一元素的元数据的链接存储器中的地址的参考的下一指针;及将元数据写入存储器系统中用于第四数据元素1318,其使用包含本文中所描述的技术的技术到达网络装置以形成数据元素列表的第四节点,其是第一跳表的第二节点。举例来说,如图14d中所说明,将经产生的第四元数据1216b写入到第一存储器库中的位置806b。
而且,所述方法包含:产生第五元数据1320,其包含到对用于第二跳表中的下一元素的元数据的链接存储器中的地址的参考的下一指针;及将元数据写入存储器系统中用于第五数据元素1322,其使用包含本文中所描述的技术的技术到达网络装置以形成数据元素列表的第五节点,其是第二跳表的第二节点。举例来说,如图14e中所说明,将经产生的第五元数据1220b写入到第二存储器库中的位置808c。所述方法包含:产生第六元数据1324,其包含到对用于第三跳表中的下一元素的元数据的链接存储器中的地址的参考的下一指针;及将元数据写入存储器系统中用于第六数据元素1326,其使用包含本文中所描述的技术的技术到达网络装置以形成数据元素列表的第六节点,其是第三跳表的第二节点。举例来说,如图14f中所说明,将经产生的第六元数据1224b写入到第三存储器库中的位置810b。
针对经配置以产生包含一或多个跳表的数据元素列表的存储器系统,数据元素列表中的每一跳表表现为单个数据元素列表。举例来说,通过比较序列识别符而确定读取的顺序,其使用包含本文中所描述的技术的技术而存储于每一跳表的头条目中。此存储器系统经配置以确保通过实施存取约束而不遇到存取冲突。此外,存储器系统经配置以在调度读取存取的时钟循环期间限制对链接存储器的存储器库的写入。而且,为最小化存取冲突,存储器系统经配置以基于所期望读取率而在链接存储器中具有若干存储器库。
用于实施经配置以产生包含一或多个跳表的数据元素列表的存储器系统的写入的方法包含在链接存储器中产生可用库列表。图15说明根据实施例的用于产生可用库列表于链接存储器中的流程图。产生可用库列表(潜在地针对每一写入器/源)可包含以下一或多者:从列表移除全部完整库1522;移除与写入存取相同的时钟循环中的读取存取所需的一或多个库1524;移除一或多个库1526,其由最后γ时钟循环中的相同写入器选择,其中γ基于存储器系统的所期望读取率而确定;及移除经选择用于与其它写入器相同的时钟循环中的写入存取的一或多个库1528。此外,所述方法包含从经产生的可用库列表选择最少填充库1530。
针对实施例,存储器系统经配置以基于包含一或多个快照跳表的数据元素列表而实施分层分布式链接表。所述存储器系统经配置以通过使用包含本文中所描述的技术的技术产生数据元素列表而使数据元素互连。此外,所述存储器系统经配置以通过基于列表元数据产生一或多个快照而实施分层分布式链接表以使用包含本文中所描述的技术的技术维持包含一或多个跳表的数据元素的列表。此外,所述存储器系统经配置以使用包含本文中所描述的技术的技术维持链接表元数据以使多个快照互连。
通过使快照互连,所述存储器系统(例如)经配置以按在网络装置处接收所述数据包的顺序(例如基于经接收用于数据包的最后单元的顺序)维持数据包的顺序。另外,所述存储器系统经配置以通过基于包含一或多个跳表的数据元素列表而使快照互连而形成数据包队列。队列可基于目的地址、网络策略、业务整形及/或包含用于排序数据包的所属领域中已知的技术的其它技术而形成。使用本文中所描述的技术,所述存储器系统经配置以维持链接表元数据以产生快照来使数据包的单元的一或多个列表互连。此外,实施分层分布式链接表的所述存储器系统经配置以维持经接收的每一数据包的单元且维持经接收的每一数据包的顺序,使得每一数据包可从所述存储器系统检索用于基于经接收的顺序及/或封包放置于队列中的顺序而出端口。而且,从包含跳表的数据元素列表产生的互连快照可用以在给定操作频率下提供高读取率。
针对实施例,所述存储器系统经配置以产生互连快照(数据元素组列表),其包含一或多个快照跳表,使得包含于互连快照中的每一快照(数据元素组)在互连快照中具有相关联快照列表节点。快照列表节点包含用于与其相关联的快照的快照列表元数据。针对实施例,快照列表元数据包含头地址(在存储器中针对快照中的第一数据元素的地址);尾地址(在存储器中针对快照中的最后数据元素的地址);及下一快照指针。下一快照指针包含如本文中所描述的到快照跳表中的下一快照的链接或指针。如本文中所描述,互连快照内的快照跳表中的下一元素的位置取决于互连快照中的快照跳表的数目。互连快照列表中的快照跳表的数目可基于用于存储器系统的数据元素的所期望读取率。
图16说明根据实施例的由存储器系统产生的互连快照列表(数据元素组列表-1423)。互连快照列表包含四个快照列表节点(1418、1419、1420、1421),其与4个可变长度快照(1401、1406、1410、1414)相关联。所述四个快照列表节点(1418、1419、1420、1421)包含三个快照跳表,其中两者包含单个节点。所述快照跳表包含第一快照列表节点1418及第四快照列表节点1421。所述第一快照列表节点包含用于快照1401的快照列表元数据,例如本文中所描述的快照列表元数据及到快照跳表1421中的后续快照列表节点的下一快照指针。第二快照列表节点1419,例如本文中所描述的快照列表元数据。第三快照列表节点1420,例如本文中所描述的快照列表元数据。
针对实施例,经配置以实施来自数据元素列表(其包含一或多个快照跳表)的分层分布式链接表的存储器系统包含子分布式链接表、母分布式链接表及主存储器。所述子分布式链接表包含多个存储器库且经配置以产生数据元素列表以使用本文中所描述的技术产生包含一或多个跳表的数据元素列表。所述母分布式链接表经配置以基于使用本文中所描述的技术由子分布式链接表产生的数据元素列表而产生快照。所述母分布式链接表还经配置以维持链接表元数据以使多个快照互连以使用本文中所描述的技术产生包含一或多个快照跳表的互连快照列表。通过使快照互连,母分布式链接表(例如)经配置以按在网络装置处接收所述数据元素的顺序(例如基于经接收用于数据包的最后单元的顺序)维持数据元素的顺序。另外,母分布式链接表经配置以通过使快照互连而形成数据包队列。
针对实施例,所述存储器系统经配置以当数据元素列表到达时使数据元素与其一起存储。所述数据元素跨跳表而存储于接收上下文中且利用包含本文中关于实施跳表所描述的存取约束的存取约束。一旦最后数据元素到达数据元素组,就使用包含本文中所描述的技术的技术将快照捕获且存储于数据元素组列表中。图17说明根据实施例的产生互连快照列表的方法的流程图,所述互连快照列表包含一或多个数据元素组列表,其包含一或多个跳表及相关联快照列表元数据。图18a到f说明表示在如图17中所说明的方法期间包含多个库的母分布式链接表的一部分的状态的框图。如图17中所说明,所述方法包含捕获第一快照1602且存储其于数据元素组列表中。针对实施例,将第一快照存储于数据元素组列表中包含:产生第一快照列表元数据,其包含到对用于第一快照跳表中的下一快照的元数据的存储器中的地址的参考的下一快照指针;及将元数据写入存储器系统中以使用包含本文中所描述的技术的存储及写入元数据的技术而形成数据元素组列表的第一快照列表节点。举例来说,如图18a中所说明,将经产生的第一快照列表元数据1502a写入到第二头条目824。
在图17处,所述方法包含:产生第二快照列表元数据1606,其包含到对用于(如果存在)快照跳表中的下一快照的元数据的存储器中的地址的参考的下一快照指针;及使用包含本文中所描述的技术的技术将第二快照列表元数据写入存储器系统中用于第二快照以形成数据元素列表的第二快照列表节点1608,其是数据元素组列表的第二节点。举例来说,如图18b中所说明,将经产生的第二快照列表元数据1504a写入到第一头条目816。所述方法还包含:产生第三快照列表元数据1610,其包含到对用于(如果存在)快照跳表中的下一快照的快照列表元数据的存储器中的地址的参考的下一快照指针;及使用包含本文中所描述的技术的技术将第三快照列表元数据写入存储器系统中用于第三快照以形成数据元素组列表的第三快照列表节点1612。举例来说,如图18c中所说明,将经产生的第三快照列表元数据1506a写入到第四头条目828。此外,如图17中所说明,所述方法包含:产生第四快照列表元数据1614,其包含到对用于(如果存在)快照跳表中的下一快照的第四快照列表元数据的存储器中的地址的参考的下一快照指针;及使用包含本文中所描述的技术的技术将第四快照列表元数据写入存储器系统中用于第四快照以形成数据元素组列表的第四快照列表节点1616,其是第一快照跳表的第二节点。举例来说,如图18d中所说明,将经产生的第四元数据1504b写入到第三存储器库中的位置810a。
用于实施经配置以产生来自数据元素列表(其包含一或多个快照跳表)的分层分布式链接表的存储器系统的写入的方法包含在链接存储器(包含子链接存储器及母链接存储器)中产生可用库列表。图19说明根据实施例的用于在链接存储器(包含子链接存储器及母链接存储器)中产生可用库列表的流程图。产生可用库列表可包含以下每一者中的一或多者:从列表移除全部完整库1702;移除与写入存取相同的循环中的读取存取所需的库1704;移除一或多个库1706,其由最后γ时钟循环中的相同写入器选择,其中γ基于存储器系统的所期望读取率而确定;及移除经选择用于与其它写入器相同的时钟循环中的写入存取的一或多个库1708。此外,所述方法包含从经产生的可用库列表选择最少填充库1710。
图20说明根据实施例的使用一或多个快照跳表的读取存取的示范性方法的框图。用于实施经配置以产生来自数据元素列表(其包含一或多个快照跳表)的分层分布式链接表的存储器系统的读取的方法包含:使用在每一跳表的头条目处的快照序列识别符而确定下一快照跳表(1802)。所述方法还包含使用在头条目处的最低序列识别符而选择快照跳表(1804)。所述方法还包含读取经选择快照跳表的头条目(1806)及评估所述条目中的快照(1808)。所述快照提供所述组数据元素列表跳表。所述方法还包含使用在每一跳表的头条目处的数据元素序列识别符而确定下一数据元素列表跳表(1810)。所述方法还包含使用在热条目处的最低序列识别符而选择跳表。针对实施例,代替序列识别符而使用循环机制来确定数据元素列表及/或跳表中的下一数据元素或快照。
可使用半导体芯片、ASIC、FPGA的一或多者及使用离散组件实施本文中所描述的实施例。而且,存储器系统的元件可实施为半导体芯片上的一或多个核心,例如芯片上系统(“SoC”)。本文中所描述的实施例也可实施于机器上,机器例如网络装置及一或多个计算机系统,包含程序存储装置。程序存储装置包含但不限于远离机器的大型存储装置、随机存取存储器、非易失性存储器、磁存储盘或光存储盘及其它计算机可读取存储媒体的任何者的一或多者。
在上述说明书中,已描述本发明的具体示范性实施例。然而,应明白,可对具体示范性实施例做各种修改及改变。因此,本说明书及图式应被视为说明性含义而非限制性含义。
Claims (24)
1.一种用于网络装置的存储器系统,其包括:
主存储器,其经配置以存储数据元素;
链接存储器,其包含包含第一存储器库及不同的第二存储器库的多个存储器库,其中每一存储器库具有针对连续执行的存储器存取操作的延迟,
其中所述多个存储器库的每一存储器库经配置以存储各自维持表示以下内容的元数据的多个节点:(i)到所述主存储器的数据元素指针,其用于存取由所述数据元素指针参考的数据元素,及(ii)下一节点指针,其用于存取同一存储器库中的下一节点,
其中所述多个存储器库中的所述数据元素指针指向存储在所述主存储器中的存储器位置中的数据元素以形成一或多个数据包,且
其中所述下一节点指针将每一节点连接到相应存储器库中的下一节点以形成多个跳表的相应单独跳表,每一跳表具有初始节点及最终节点,且每一跳表的所有所述节点存储在相应单个存储器库中;及
上下文管理器,其包含针对所述多个存储器库中的每一存储器库的相应头条目及相应尾条目,
其中所述多个头条目中的每一头条目经配置以包含指向所述相应存储器库中的所述跳表的所述初始节点的唯一地址,
其中所述多个尾条目中的每一尾条目经配置以包含指向所述相应存储器库中的所述跳表的所述最终节点的唯一地址,及
电路,其经配置以使用所述上下文管理器中的所述头条目及尾条目以:
存取针对所述多个跳表中的第一跳表的存储在所述第一存储器库中的第一初始节点;
(i)在针对所述第一跳表存取存储在所述第一存储器库的下一节点之前及(ii)在小于针对所述第一存储器库的所述延迟的时间内,存取针对第二跳表的存储在所述第二存储器库中的第二初始节点;及
(i)在存取所述第二初始节点之后及(ii)在满足针对所述第一存储器库的所述延迟之后,针对所述第一跳表存取存储在所述第一存储器库中的所述下一节点。
2.根据权利要求1所述的存储器系统,其中所述上下文管理器经配置以存储用于连接数据元素以形成多个数据包的快照列表元数据。
3.根据权利要求2所述的存储器系统,其中所述多个头条目的每一头条目经配置以存储指示在所述网络装置处接收数据元素的顺序的序列标识符。
4.根据权利要求2所述的存储器系统,其中所述多个存储器库的每一存储器库包含单个存取端口。
5.根据权利要求1所述的存储器系统,其进一步包括经配置以产生可用库组的自由条目管理器,所述可用库组包含当前未用以维持所述数据元素指针及所述下一节点指针的所述链接存储器中的一或多个位置。
6.根据权利要求5所述的存储器系统,其中所述自由条目管理器经配置以产生包含所述一或多个位置的所述可用库组,所述一或多个位置当前未用以维持所述数据元素指针及所述下一节点指针,使得到所述链接存储器的写入操作不与读取操作冲突。
7.根据权利要求5所述的存储器系统,其中所述自由条目管理器经配置以产生包含所述一或多个位置的所述可用库组,所述一或多个位置当前未用以维持所述数据元素指针及所述下一节点指针,使得存取冲突将不发生。
8.根据权利要求1所述的存储器系统,其中所述存储器系统经配置以比较所述多个头条目中的第一头条目中的第一序列标识符与所述多个头条目中的第二头条目中的第二序列标识符以确定快照列表中的第一快照。
9.一种网络装置,其包括:
主存储器,其经配置以存储数据元素;
链接存储器,其包含包含第一存储器库及不同的第二存储器库的多个存储器库,其中每一存储器库具有针对连续执行的存储器存取操作的延迟,
其中所述多个存储器库的每一存储器库经配置以存储各自维持表示以下内容的元数据的多个节点:(i)到所述主存储器的数据元素指针,其用于存取由所述数据元素指针参考的数据元素,及(ii)下一节点指针,其用于存取同一存储器库中的下一节点,
其中所述多个存储器库中的所述数据元素指针指向存储在所述主存储器中的存储器位置中的数据元素以形成一或多个数据包,且
其中所述下一节点指针将每一节点连接到相应存储器库中的下一节点以形成多个跳表的相应单独跳表,每一跳表具有初始节点及最终节点,且每一跳表的所有所述节点存储在相应单个存储器库中;及
上下文管理器,其包含针对所述多个存储器库的每一存储器库的相应头条目及相应尾条目,
其中所述多个头条目中的每一头条目经配置以包含指向所述相应存储器库中的所述跳表的所述初始节点的唯一地址,
其中所述多个尾条目中的每一尾条目经配置以包含指向所述相应存储器库中的所述跳表的所述最终节点的唯一地址,及
电路,其经配置以使用所述上下文管理器中的所述头条目及尾条目以:
存取针对所述多个跳表中的第一跳表的存储在所述第一存储器库中的第一初始节点;
(i)在针对所述第一跳表存取存储在所述第一存储器库的下一节点之前及(ii)在小于针对所述第一存储器库的所述延迟的时间内,存取针对第二跳表的存储在所述第二存储器库中的第二初始节点;及
(i)在存取所述第二初始节点之后及(ii)在满足针对所述第一存储器库的所述延迟之后,针对所述第一跳表存取存储在所述第一存储器库中的所述下一节点。
10.根据权利要求9所述的网络装置,其中所述上下文管理器经配置以存储用于连接数据元素以形成多个数据包的快照列表元数据。
11.根据权利要求10所述的网络装置,其中所述多个头条目的每一头条目经配置以存储指示在所述网络装置处接收数据元素的顺序的序列标识符。
12.根据权利要求10所述的网络装置,其中所述多个存储器库的每一存储器库包含单个存取端口。
13.根据权利要求9所述的网络装置,其进一步包括经配置以产生可用库组的自由条目管理器,所述可用库组包含当前未用以维持所述数据元素指针及所述下一节点指针的所述链接存储器中的一或多个位置。
14.根据权利要求13所述的网络装置,其中所述自由条目管理器经配置以产生包含所述一或多个位置的所述可用库组,所述一或多个位置当前未用以维持所述数据元素指针及所述下一节点指针,使得到所述链接存储器的写入操作不与读取操作冲突。
15.根据权利要求13所述的网络装置,其中所述自由条目管理器经配置以产生包含所述一或多个位置的所述可用库组,所述一或多个位置当前未用以维持所述数据元素指针及所述下一节点指针,使得存取冲突将不发生。
16.根据权利要求9所述的网络装置,其中所述存储器系统经配置以比较所述多个头条目中的第一头条目中的第一序列标识符与所述多个头条目中的第二头条目中的第二序列标识符以确定快照列表中的第一快照。
17.一种用于操作网络装置的方法,所述方法包括:
将数据元素存储在主存储器中;
在包含第一存储器库及不同的第二存储器库的多个存储器库的链接存储器中存储各自维持表示以下内容的元数据的多个节点:(i)到所述主存储器的数据元素指针,其用于存取由所述数据元素指针参考的数据元素,及(ii)下一节点指针,其用于存取同一存储器库中的下一节点,其中每一存储器库与针对连续执行的存储器存取操作的延迟相关联,
其中所述多个存储器库中的所述数据元素指针指向存储在所述主存储器中的存储器位置中的数据元素以形成一或多个数据包,且
其中所述下一节点指针将每一节点连接到相应存储器库中的下一节点以形成多个跳表的相应单独跳表,每一跳表具有初始节点及最终节点,且每一跳表的所有所述节点存储在相应单个存储器库中;以及
在包含针对所述多个存储器库的每一存储器库的多个头条目及多个尾条目的上下文管理器的每一头条目中存储指向所述相应存储器库中的所述跳表的所述初始节点的唯一地址,
在所述上下文管理器的每一尾条目中并针对每一存储器库存储指向所述相应存储器库中的所述跳表的所述最终节点的唯一地址,
使用所述上下文管理器中的所述头及尾条目:
针对所述多个跳表中的第一跳表,存取存储在所述第一存储器库中的第一初始节点;
(i)在针对所述第一跳表存取存储在所述第一存储器库的下一节点之前及(ii)在小于针对所述第一存储器库的所述延迟的时间内,存取针对第二跳表的存储在所述第二存储器库中的第二初始节点;及
(i)在存取所述第二初始节点之后及(ii)在满足针对所述第一存储器库的所述延迟之后,针对所述第一跳表存取存储在所述第一存储器库中的所述下一节点。
18.根据权利要求17所述的方法,其进一步包括在所述上下文管理器中存储用于连接数据元素以形成多个数据包的快照列表数元数据。
19.根据权利要求18所述的方法,其进一步包括在所述多个头条目的每一头条目中存储指示在所述网络装置处接收数据元素的顺序的序列标识符。
20.根据权利要求18所述的方法,其中所述多个存储器库的每一存储器库包含单个存取端口。
21.根据权利要求17所述的方法,其进一步包括由自由条目管理器产生可用库组,所述可用库组包含当前未用以维持所述数据元素指针及所述下一节点指针的所述链接存储器中的一或多个位置。
22.根据权利要求21所述的方法,其中产生所述可用库组进一步包括产生所述可用库组,所述可用库组包含当前未用以维持所述数据元素指针及所述下一节点指针的所述一或多个位置,使得到所述链接存储器的写入操作不与读取操作冲突。
23.根据权利要求21所述的方法,其中所述自由条目管理器正产生所述可用库组进一步包括产生包含所述一或多个位置的所述可用库组,所述一或多个位置当前未用以维持所述数据元素指针及所述下一节点指针,使得存取冲突将不发生。
24.根据权利要求17所述的方法,其进一步包括比较所述多个头条目中的第一头条目中的第一序列标识符与所述多个头条目中的第二头条目中的第二序列标识符以确定快照列表中的第一快照。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910888914.9A CN110765030B (zh) | 2015-07-15 | 2016-07-14 | 用于实现对数据元素列表的高读取率的系统及方法 |
Applications Claiming Priority (7)
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 |
US201562209215P | 2015-08-24 | 2015-08-24 | |
US62/209,215 | 2015-08-24 | ||
US14/975,585 | 2015-12-18 | ||
US14/975,585 US20170017419A1 (en) | 2015-07-15 | 2015-12-18 | System And Method For Enabling High Read Rates To Data Element Lists |
PCT/US2016/042303 WO2017011671A1 (en) | 2015-07-15 | 2016-07-14 | System and method for enabling high read rates to data element lists |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910888914.9A Division CN110765030B (zh) | 2015-07-15 | 2016-07-14 | 用于实现对数据元素列表的高读取率的系统及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108139867A CN108139867A (zh) | 2018-06-08 |
CN108139867B true CN108139867B (zh) | 2019-10-18 |
Family
ID=57758253
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910888914.9A Active CN110765030B (zh) | 2015-07-15 | 2016-07-14 | 用于实现对数据元素列表的高读取率的系统及方法 |
CN201680047978.0A Active CN108139867B (zh) | 2015-07-15 | 2016-07-14 | 用于实现对数据元素列表的高读取率的系统及方法 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910888914.9A Active CN110765030B (zh) | 2015-07-15 | 2016-07-14 | 用于实现对数据元素列表的高读取率的系统及方法 |
Country Status (4)
Country | Link |
---|---|
US (2) | US20170017419A1 (zh) |
CN (2) | CN110765030B (zh) |
TW (2) | TWI704488B (zh) |
WO (1) | WO2017011671A1 (zh) |
Families Citing this family (5)
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 |
CN109388490B (zh) | 2017-08-07 | 2020-11-17 | 华为技术有限公司 | 一种内存分配方法和服务器 |
US11221955B2 (en) * | 2018-09-06 | 2022-01-11 | International Business Machines Corporation | Metadata track selection switching in a data storage system |
CN109324987B (zh) * | 2018-09-27 | 2021-06-01 | 海信视像科技股份有限公司 | 模拟通信接口的时序控制方法、装置与电子设备 |
US11934313B2 (en) | 2021-08-23 | 2024-03-19 | Apple Inc. | Scalable system on a chip |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102971997A (zh) * | 2010-01-18 | 2013-03-13 | 马维尔国际有限公司 | 包括数据分段和数据描述分段的分组缓冲器 |
Family Cites Families (76)
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 |
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 |
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 |
TW467370U (en) * | 1999-12-07 | 2001-12-01 | Via Tech Inc | Reference clock generation circuit of the disk data pre-recording region |
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 |
CN1400549A (zh) * | 2001-08-07 | 2003-03-05 | 华为技术有限公司 | 在数据库中检索数据和向拨号上网用户分配ip地址的方法 |
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 |
US8549176B2 (en) * | 2004-12-01 | 2013-10-01 | Cisco Technology, Inc. | Propagation of routing information in RSVP-TE for inter-domain TE-LSPs |
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 |
US20070198979A1 (en) | 2006-02-22 | 2007-08-23 | David Dice | Methods and apparatus to implement parallel transactions |
US8150805B1 (en) * | 2006-06-30 | 2012-04-03 | Symantec Operating Corporation | Consistency interval marker assisted in-band commands in distributed systems |
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 |
US9601199B2 (en) * | 2007-01-26 | 2017-03-21 | Intel Corporation | Iterator register for structured memory |
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 |
CN101681312B (zh) | 2008-02-29 | 2012-05-23 | 株式会社东芝 | 存储器系统 |
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 |
US8515911B1 (en) | 2009-01-06 | 2013-08-20 | Emc Corporation | Methods and apparatus for managing multiple point in time copies in a file system |
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 |
CN101594302B (zh) * | 2009-07-01 | 2011-08-03 | 华为技术有限公司 | 数据出队的方法及装置 |
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 |
US8719331B2 (en) | 2011-08-02 | 2014-05-06 | Cavium, Inc. | Work migration in a processor |
JP5863076B2 (ja) * | 2011-08-17 | 2016-02-16 | ▲ホア▼▲ウェイ▼技術有限公司 | パケットを再構築し再順序付けするための方法、装置、およびシステム |
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 |
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 |
US9535832B2 (en) * | 2013-04-30 | 2017-01-03 | Mediatek Singapore Pte. Ltd. | Multi-hierarchy interconnect system and method for cache system |
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 |
US9674086B2 (en) * | 2013-11-05 | 2017-06-06 | Cisco Technology, Inc. | Work conserving schedular based on ranking |
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 |
-
2015
- 2015-12-18 US US14/975,585 patent/US20170017419A1/en not_active Abandoned
-
2016
- 2016-06-24 US US15/192,820 patent/US9785367B2/en active Active
- 2016-07-14 WO PCT/US2016/042303 patent/WO2017011671A1/en active Application Filing
- 2016-07-14 CN CN201910888914.9A patent/CN110765030B/zh active Active
- 2016-07-14 TW TW105122271A patent/TWI704488B/zh active
- 2016-07-14 CN CN201680047978.0A patent/CN108139867B/zh active Active
- 2016-07-14 TW TW109127109A patent/TWI720926B/zh active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102971997A (zh) * | 2010-01-18 | 2013-03-13 | 马维尔国际有限公司 | 包括数据分段和数据描述分段的分组缓冲器 |
Also Published As
Publication number | Publication date |
---|---|
TWI720926B (zh) | 2021-03-01 |
US20170017423A1 (en) | 2017-01-19 |
WO2017011671A1 (en) | 2017-01-19 |
US20170017419A1 (en) | 2017-01-19 |
TW201716984A (zh) | 2017-05-16 |
CN108139867A (zh) | 2018-06-08 |
TW202044009A (zh) | 2020-12-01 |
US9785367B2 (en) | 2017-10-10 |
TWI704488B (zh) | 2020-09-11 |
CN110765030B (zh) | 2023-11-24 |
CN110765030A (zh) | 2020-02-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108139985B (zh) | 用于实现对数据元素列表的高读取率的系统及方法 | |
CN108139867B (zh) | 用于实现对数据元素列表的高读取率的系统及方法 | |
CN108139882B (zh) | 针对网络装置实施阶层分布式链接列表的系统及方法 | |
CN105320608A (zh) | 用于控制存储器设备处理访问请求的存储器控制器和方法 | |
KR20120092930A (ko) | 맵 리듀스를 이용한 분산 메모리 클러스터 제어 장치 및 방법 | |
EP3777059B1 (en) | Queue in a network switch | |
WO2022212062A1 (en) | Multi-headed multi-buffer for buffering data for processing | |
CN108139767A (zh) | 针对网络装置实施分布式链接列表的系统及方法 | |
US10067690B1 (en) | System and methods for flexible data access containers | |
CN109344093A (zh) | 缓存结构、读写数据的方法和装置 |
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 |