CN106027426B - 防止欠载的分组存储器系统、方法和设备 - Google Patents

防止欠载的分组存储器系统、方法和设备 Download PDF

Info

Publication number
CN106027426B
CN106027426B CN201610193288.8A CN201610193288A CN106027426B CN 106027426 B CN106027426 B CN 106027426B CN 201610193288 A CN201610193288 A CN 201610193288A CN 106027426 B CN106027426 B CN 106027426B
Authority
CN
China
Prior art keywords
ports
packet data
packet
controller
memory
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
CN201610193288.8A
Other languages
English (en)
Other versions
CN106027426A (zh
Inventor
E·穆索尔
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.)
Kaiwei International Co
Marvell Asia Pte Ltd
Original Assignee
Marvell Asia Pte 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 Marvell Asia Pte Ltd filed Critical Marvell Asia Pte Ltd
Publication of CN106027426A publication Critical patent/CN106027426A/zh
Application granted granted Critical
Publication of CN106027426B publication Critical patent/CN106027426B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1673Details of memory controller using buffers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/20Support for services
    • H04L49/201Multicast operation; Broadcast operation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/10Packet switching elements characterised by the switching fabric construction
    • H04L49/103Packet switching elements characterised by the switching fabric construction using a shared central buffer; using a shared memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0607Interleaved addressing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/1647Handling requests for interconnection or transfer for access to memory bus based on arbitration with interleaved bank access
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/10Packet switching elements characterised by the switching fabric construction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/30Peripheral units, e.g. input or output ports
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • G06F2212/1024Latency reduction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1041Resource optimization
    • G06F2212/1044Space efficiency improvement
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
    • H04L12/1881Arrangements for providing special services to substations for broadcast or conference, e.g. multicast with schedule organisation, e.g. priority, sequence management

Abstract

一种用于选择性地在一个或多个输出端口上输出所接收到的分组的分组存储器系统。该分组存储器系统包括用于控制输出端口的控制器。具体地,针对需要从多个端口输出的多播或广播业务的分组,控制器指定从分组存储器中读取分组数据的一个或多个读取端口,使得其余的端口能够仅仅对读取的分组数据进行监听而不执行读取操作。

Description

防止欠载的分组存储器系统、方法和设备
技术领域
本发明涉及分组存储器系统。更具体地,本发明涉及在分组存储器系统中防止欠载(underrun)。
背景技术
类似于交换机微芯片的分组处理设备通常都需要在设备对分组进行处理时缓冲分组到具有一个或多个存储器库的分组缓冲存储器(PM)中分组。某些分组(例如,以太网分组)的大小事先是未知的,因此设备需要在不知道分组多大的情况下启动在分组缓冲器中存储分组。而且,分组以交错方式到达设备分组,因而设备同时将到达的多个分组存储到分组缓冲器中。分组在设备的分组存储器中存储分组的现有技术的解决方案是为每个分组分派分组存储器的多个块(被称作页面),而不是为其分派单个大的块。使用这种方案,分组没有被连续地存储在分组存储器的多个存储器库中,而是被分散在遍及分组存储器的多个存储器库的一个或多个页面中。因此,需要在交换机中维护特定分组所使用的所有页面(及其存储器库)的链表;随后遍历该链表,从而从分组存储器定位和读取分组来进行传输。
在被称作广播业务的分组业务类型中,要求设备的所有输出端口输出相同的分组数据。类似地,在被称作多播业务的分组业务类型中,要求设备的输出端口中的多个(但不是所有)端口输出相同的分组数据。因此,对于这样的业务,所有这些输出端口将针对该相同分组数据请求分组存储器。这会在设备中产生性能问题,因为这引起了大量的输出端口在大致相同的时间对相同数据的请求。具体地,当这种情况经常发生时,分组存储器中的少数存储器库将需要服务所有的请求,而其它存储器库保持空闲。因此,输出端口中的某些端口将很快地得到数据,但是其它端口将需要等待相对较长的时间以获取数据,这是因为这个存储器库的较小子集需要串行化来自多个输出端口的所有请求,因为每个存储器库通常只有少量的读取端口。
数据的这一等待时间具有两个不希望的结果。如果数据对应于分组的开始,那么将延迟整个分组的传输。这意味着端口带宽的下降,因为在其实际能够发送数据时却在等待发送数据。如果数据对应于分组的中部而且已经传输了分组中的一些数据,那么输出端口不能以需要的速率进行传输,并且引起欠载错误。这比上面描述的性能下降更为严重,因为分组在有错误的情况下传输,并且接收机将不得不丢弃该分组,从而导致在某些情况下代价很高的分组重传。上面描述的第二种情况在交换机工作在直通(cut-thru)模式时更加常见。在这种模式下,需要传输分组的所有输出端口都将在大致相同的时间进行操作,因为它们被指示尽快传输分组而无需等待接收到整个分组。
发明内容
一种用于选择性地在一个或多个输出端口上输出所接收的分组的分组存储器系统。该分组存储器系统包括用于控制输出端口的控制器。具体地,针对需要从多个端口输出的多播或广播业务的分组,控制器指定从分组存储器读取分组数据的一个或多个读取端口,使得其余的端口能够仅仅对读取的分组数据进行监听而不执行读取操作。
第一个方面针对分组存储器系统,所述系统包括非瞬态计算机可读分组存储器,所述非瞬态计算机可读分组存储器包括用于存储由所述系统输入的分组的分组数据的一个或多个存储器库,其中,所述分组数据在被存储在存储器库上时根据被映射到所述存储器库的一个或多个页面来进行组织;多个输出端口,多个输出端口与分组存储器耦合,并且被配置为选择性地从分组存储器读取分组数据,并且将分组数据向系统的外部输出;以及,与多个输出端口耦合的控制器,控制器用于控制哪些端口输出所述分组数据,其中如果分组数据将从两个或更多个端口被输出,则控制器命令少于两个或更多个端口中的所有端口的端口以引起分组数据从分组存储器被读出并且被传输至两个或更多个端口中的所有端口。在某些实施例中,多个输出端口和控制器正以直通(cut-thru)模式操作,以使得多个输出端口中的每个端口在分组的整体被接收到之前开始输出分组数据。在某些实施例中,控制器命令两个或更多个端口中的所有端口基于分组数据标识符在分组数据从分组存储器被读出之后监听并且输出分组数据,分组数据的标识符由控制器发送至两个或更多个端口中的所有端口。在某些实施例中,少于两个或更多个端口中的所有端口的端口中的每个端口引起分组数据的不同部分从所述分组存储器被读出。在某些实施例中,少于两个或更多个端口中的所有端口的端口中的每个端口的分组数据的不同部分由控制器基于在页面之间如何分配分组数据而确定。在某些实施例中,少于两个或更多个端口中的所有端口的端口的数量由控制器基于在其上存储有分组数据的页面的数量来确定。在某些实施例中,控制器基于两个或更多个端口中的每个端口的拥塞程度来选择少于所述两个或更多个端口中的所有端口的端口。在某些实施例中,多个输出端口中的每个端口包括缓冲器,缓冲器存储有用于标识已经由控制器指定将被端口输出的、但是还没有被该端口输出的一个或多个分组的列表,并且另外其中两个或更多个端口中的每个端口的拥塞程度基于由该端口的缓冲器列表所标识的分组的当前数量。在某些实施例中,少于所述两个或更多个端口中的所有端口的端口正是引起所有的分组数据从分组存储器被读出的两个或更多个端口中的一个端口。在某些实施例中,少于所述两个或更多个端口中的所有端口的端口正是两个或更多个端口中的第一端口和第二端口,并且另外其中控制器命令第一端口以引起分组数据的第一部分被读出,并且命令第二端口以引起分组数据的没有被包括在第一部分中内的剩余部分被读出。在某些实施例中,第一部分被存储在被映射到所述存储器库的页面中的一个或多个第一页面上并且包含分组数据的头部,并且另外其中分组数据的剩余部分被存储在被映射到所述存储器库的页面中的一个或多个第二页面上并且包括分组数据的没有被包含在第一页面内的剩余部分。
第二个方面针对存储在非瞬时性的计算机可读介质上并且与多个输出端口耦合的控制器,多个输出端口选择性地从分组存储器读取并输出分组数据,其中分组存储器具有存储分组数据的一个或多个存储器库,并且另外其中控制器被配置为,如果分组数据将从两个或更多个端口被输出所,则命令少于两个或更多个端口中的所有端口的端口以引起分组数据从分组存储器被读出并且被传输至两个或更多个端口中的所有端口。在某些实施例中,多个输出端口和控制器以直通模式进行操作,以使得多个输出端口中的每个端口在分组的整体被接收到之前开始输出分组数据。在某些实施例中,控制器被配置为,命令两个或更多个端口中的所有端口基于分组数据标识符在分组数据从分组存储器被读出之后监听并且输出所述分组数据,分组数据的标识符由控制器发送至两个或更多个端口中的所有端口。在某些实施例中,少于所述两个或更多个端口中的所有端口的端口中的每个端口引起分组数据的不同部分从所述分组存储器被读出。在某些实施例中,分组数据被存储在所述存储器库上时根据被映射到存储器库的一个或多个页面来进行组织,另外其中少于所述两个或更多个端口中的所有端口的端口中的每个端口的分组数据的不同部分由控制器基于在页面之间如何分配分组数据而确定。在某些实施例中,控制器被配置为,基于其上存储了分组数据的页面的数量来确定少于所述两个或更多个端口中的所有端口的端口的数量。在某些实施例中,控制器被配置为,基于两个或更多个端口中的每个端口的拥塞程度来选择少于所述两个或更多个端口中的所有端口的端口。在某些实施例中,多个输出端口中的每个端口包括缓冲器,缓冲器存储有用于标识已经由所述控制器指定将被端口输出的、但是还没有被该端口输出的一个或多个分组的列表,并且另外其中两个或更多个端口中的每个端口的拥塞程度基于由该端口的缓冲器列表所标识的分组的当前数量。在某些实施例中,少于两个或更多个端口中的所有端口的端口正是引起所有的分组数据从分组存储器被读出的两个或更多个端口中的一个端口。在某些实施例中,少于两个或更多个端口中的所有端口的端口正是所述两个或更多个端口中的第一端口和第二端口,并且其中控制器被配置为,命令第一端口以引起分组数据的第一部分被读出,并且命令第二端口以引起分组数据的没有被包括在第一部分内的剩余部分被读出。在某些实施例中,第一部分被存储在被映射到存储器库的页面中的一个或多个第一页面上并且包括分组数据的头部,并且另外其中分组数据的剩余部分被存储在被映射到存储库的页面中的一个或多个第二页面上并且包括分组数据的没有被包括在第一页面内的剩余部分。
第三个方面针对操作分组存储器系统的方法。方法包括:在非瞬态计算机可读分组存储器的一个或多个存储器库上存储分组的分组数据,其中在存储器库上存储分组数据包括当分组数据被存储在存储库上时根据被映射到存储库的一个或多个页面来进行组织;如果分组数据从被耦合至分组存储器的两个或更多个端口被输出,则利用被耦合至输出端口的控制器来命令少于两个或更多个端口中的所有端口的端口以引起分组数据以引起分组数据从所述分组存储器被读出且被传输至两个或更多个端口中的所有端口;以及利用两个或更多个端口从两个或更多个端口中的每个端口输出分组数据。在某些实施例中,多个输出端口和控制器以直通模式进行操作,以使得通过两个或更多个端口中的每个端口输出分组数据包括,在分组的整体被接收到之前开始输出分组数据的至少一部分。在某些实施例中,方法还包括,利用控制器命令两个或更多个端口中的所有端口基于分组数据标识符在分组数据从分组存储器被读出之后监听并且输出分组数据,分组数据标识符由控制器发送至两个或更多个端口中的所有端口。在某些实施例中,少于所述两个或更多个端口中的所有端口的所述端口中的每个端口引起分组数据的不同部分从所述分组存储器被读出。在某些实施例中,方法还包括,利用控制器基于在页面之间如何分配分组数据来确定少于所述两个或更多个端口中的所有端口的端口中的每个端口的分组数据的不同部分。在某些实施例中,方法还包括,利用控制器基于在其上存储了分组数据的页面的数量来确定少于两个或更多个端口中的所有端口的端口的数量。在某些实施例中,方法还包括,利用控制器基于两个或更多个端口中的每个端口的拥塞程度来选择数目少于两个或更多个端口中的所有端口的端口。在某些实施例中,多个输出端口中的每个端口包括缓冲器,缓冲器存储有用于标识已经由控制器指定将被端口输出的、但是还没有被该端口输出的一个或多个分组的列表,并且其中两个或更多个端口中的每个端口的拥塞程度基于由该端口的缓冲器列表所标识的分组的当前的数量。在某些实施例中,少于两个或更多个端口中的所有端口的端口正是引起所有的分组数据从所述分组存储器被读出的两个或更多个端口中的一个端口。在某些实施例中,少于所述两个或更多个端口中的所有端口的端口正是两个或更多个端口中的第一端口和第二端口,还包括,利用控制器命令第一端口以引起分组数据的第一部分被读出以及命令第二端口以引起分组数据的没有被包括在第一部分内的剩余部分被读出。在某些实施例中,第一部分被存储在被映射到存储器库的页面中的一个或多个第一页面上并且包括所述分组数据的头部,并且其中分组数据的剩余部分被存储在被映射到存储库的页面中的一个或多个第二页面上并且包括分组数据的没有被包括在第一页面内的剩余部分。
附图说明
图1图示了根据某些实施例的分组存储器系统。
图2图示了根据某些实施例的分组的页面链表和链表到分组存储器的存储器库的示例性映射。
图3图示了根据某些实施例的、在分组存储器系统中防止欠载的方法。
具体实施方式
在以下描述中,出于说明的目的阐述了许多细节。然而,本领域的技术人员将认识到,本发明可以不使用这些具体的细节来实践。因此,本发明并不旨在被限制于所示出的实施例,而是遵循与本文所描述的原理和特征相一致的最大的范围。
多个实施例针对用于选择性地在一个或多个输出端口上输出所接收的分组的分组存储器系统。该分组存储器系统包括用于控制输出端口的控制器。具体地,针对需要从多个端口输出的多播或广播业务的分组,控制器指定从分组存储器中读取分组数据的一个或多个读取端口,使得其余的端口能够仅仅对读取分组数据进行监听而不执行读取操作。因此,防止了所有输出端口基本上同时访问分组存储器中的分组的尝试,从而提高了系统的效率。
图1图示了根据某些实施例的分组处理设备102上的分组存储器系统100。如图1所示,分组存储器系统100包括与分组存储器104和控制器108耦合的一个或多个输出端口106。分组存储器104包括一个或多个存储器库110,每个存储器库具有一个或多个读取和/或写入端口(未示出),实现每周期从存储器库110读取数据或向其写入数据。存储器库110被耦合至每个端口106,使得每个存储体110能够输出由一个、多个或所有的端口106接收的数据。每个端口106包括端口缓冲器116,并且能够作为分组存储器访问元件112(例如,直接存储器访问块)的一部分,其中分组存储器访问元件112还可以包括被耦合至每个端口106以及至少一个存储器库110的一个或多个存储器库地址元件114。特别地,元件112可以包括用于每个存储体110的存储器库地址元件114。备选地,可以存在比存储器库110的数目更多或更少的存储器库地址元件114。因此,每个端口106能够经由相关联的存储器库地址元件114和分组存储器访问元件112与每个存储体110进行通信(例如,从其读取数据)。在某些实施例中,存储器库地址元件114是存储器库读取地址复用器(多路复用器)。控制器108能够对分组执行任何需要的修改,确定将分组发送到何处,并且执行所需的任何业务管理。控制器108与每个端口106耦合,使得控制器108能够选择性地向一个或多个端口106发送控制数据和其它类型的数据。另外,在某些实施例中,控制器108能够监测一个或多个端口106的端口缓冲器116的状态和/或接收来自一个或多个端口106的端口缓冲器116的反馈数据。
分组处理设备102可以是分组处理电路和/或微芯片。例如,设备102可以是数据中心的交换机微芯片(例如,机架顶端交换机)或其它类型的分组处理电路或专用集成电路。在某些实施例中,设备102是软件定义网络可编程微芯片,其能够被编程/定制以调整对分组进行处理的方式。备选地,设备102可以是本领域已知的其它类型的分组处理设备。端口106、控制器108和地址元件114可以包括硬件、软件、或硬件和软件的组合,其中的软件被存储在设备102的非瞬时性的计算机可读介质上。分组存储器104可以包括诸如三态内容可寻址存储器的非瞬时性的计算机可读介质。备选地,分组存储器104可以包括本领域已知的其它类型的存储器或它们的组合。系统100和/或设备102能够以常规模式和直通模式进行操作。在常规模式下,系统/设备在开始进行分组输出之前进行等待,直到接收到整个分组。在直通模式下,控制器108和/或输出端口106尽可能快地传输分组而不等到接收到整个分组。
图2图示了根据某些实施例的分组所使用的页面的链表202和链表202到分组存储器104的存储器库110的示例性映射。如图2所示,在映射到分组存储器104的存储器库110的一个或多个页面202上存储分组的分组数据。具体地,每个页面202都能够表示(或被映射到)多个存储器库110的一个或多个条目(entry)。因此,当在一个页面202上存储分组或分组的一部分时,这将导致该分组被存储在被映射到该页面的、分组存储器104内跨存储器库110分配的多个不连续的位置中。分组通常将需要多个页面202以便存储分组的整体。将页面的列表202称为链表,并且它可以用作指向在分组存储器104的存储器库110上存储分组的位置的指针的映射或列表。通常,链表202中的一个或多个页面的第一集合202a将包括分组的头部(header),而链表202中的一个或多个页面的第二集合202b将存储分组的主体(body)。具体地,头部页面含有控制块处理的头部数据,主体页面含有通常不由设备102改变的分组的主体。因此,页面202实现了跨存储器库110分配每个分组的分组数据,使得从存储器库110读取分组数据或向其写入分组数据更高效。
如图2所示,虽然头部页面202a跨两个存储器库110被映射,并且主体页面202b跨三个存储器库110被映射,但是页面202每个能够跨更多或更少的存储器库被映射。例如,可以将页面映射到单个存储器库110的不连续的条目,或者可以将其映射到多个存储器库110中任意数目的存储器库的条目。备选地,页面202可以被映射到单个存储器库110的连续的条目。分组具有关联的描述符或标记,基本形式的描述符或标记可以是指向存储分组的页面的链表202的第一页面的指针。使用这一初始指针,分组所使用的所有页面都能够按照与使用其遍历链表202的相同的次序来获取,因为每个后续页面都包含了指向列表202中的下一个页面的位置的指针。
在操作中,当设备/系统102/100处于直通模式时,控制器108确定分组是旨在由端口106中的单个目标端口输出的单播业务分组、还是旨在由端口106中的多个目标端口输出的多播/广播业务分组。如果确定分组为多播/广播,那么控制器108不会命令所有的目标端口106尝试从存储器104读取分组的分组数据,而是仅仅选择和命令目标端口106中的子集尝试读取分组数据。在某些实施例中,这一子集仅仅是目标端口106中的单个端口106,使得选择的单个端口106被命令从分组存储器104访问所有分组数据。备选地,这一子集可以是目标端口106中的多个(但不是所有)端口。在这些实施例中,选择的端口106中的每一个都能够被控制器108命令访问分组数据的不同部分,使得只有在所有的端口106都已经发布了它们的请求之后,才从分组存储器104中读取所有的分组数据。特别地,能够在链表202中的逐个页面的基础上划分分组数据和/或将其在端口的子集当中分配,从而使得子集中的每个端口被指定与分组相关联的链表202中的一个或多个页面。例如,如果子集具有两个端口106,控制器108能够将存储分组的头部数据的页面202a分配给子集中的第一个端口106,并且将存储分组的主体数据(或其余部分)的页面202b分配给子集中的第二个端口106。
在某些实施例中,控制器108随机地或根据轮询(round robin)协议选择哪些目标端口106将被包含在子集中和/或将被包含在子集中的目标端口106的数量。备选地,控制器108可以基于目标端口106当前的拥塞程度来选择哪些目标端口106将被包含在子集中和/或将被包含在子集中的目标端口106的数目。例如,将具有低拥塞程度的目标端口106选择为构成子集的读取端口。特别地,控制器108可以监测、请求和/或被传输以来自每个目标端口106的指示它们当前的业务拥塞程度的反馈。在某些实施例中,每个端口106的拥塞程度基于已经由控制器指定给端口将输出的、但是还没有被该端口输出的待处理的分组的数量,通过端口缓冲器116对其进行指示,端口缓冲器116存储了来自控制器108的、指示需要从端口106输出的分组数据的命令消息或标记。例如,端口缓冲器116可以根据先进先出协议进行操作,其中,将被输出的分组或分组数据的标识符(例如,描述符或标记)由缓冲器116进行接收,并且随后只有在端口106已经接收并且输出了相关联的分组或分组数据之后才从缓冲器116中将其去除。因此,存储在缓冲器116中的标识符的数量表示端口106当前的积压(backlog)或拥塞程度。备选地,拥塞程度可以基于其它的度量和/或因素。
在某些实施例中,控制器108可以基于分组的大小(例如,存储分组的页面的数目、字节数)、不同类型的分组数据的数目、和/或可以基于目标端口106的当前的拥塞程度,确定将被指定为读取端口106的子集的(目标端口中的)端口的数量。例如,基于第一选择端口106的拥塞程度,控制器108能够限制被指定给第一端口106的分组的页面的数目,并且能够确定需要一个或多个附加的端口106,其中,可以对每个附加的端口106执行同样的页面数目的限制和/或添加选择的端口106,直到已经将所有的分组数据指定给了形成子集的目标端口106为止。换言之,拥塞程度越高,将为选择的目标端口106所指定的页面的数目和/或分组数据量就越少,其中,如果由于拥塞限制而不能够在当前选择的端口106当中分配所有的数据,可以添加一个或多个端口106作为选择的读取端口106。
一旦控制器108已经确定了目标端口106的子集,控制器108向子集中的每个目标端口发送读取消息。读取消息包括读取标识符、分组标识符(例如,描述符或标记)、端口标识符、和/或分组数据标识符。读取标识符向端口106指示,其需要发布、从由该分组数据指示符所指示的分组存储器104的存储器库110的多个条目内的位置处读取由分组数据指示符所指示的分组数据的读取访问请求。端口标识符指示读取消息针对哪个端口106,并且由此使得端口106能够获知该消息是针对该端口106的。分组标识符唯一地标识分组,而且分组数据标识符标识指示端口106正被指向以从分组存储器104读出的分组数据或其中的部分。例如,分组数据标识符能够标识与分组相关联的链表202中的一个或多个页面,从而基于由所述页面所指向的存储器110中的位置,所选择的读取端口106能够发布读取访问消息,读取访问消息导致从分组存储器104读取出存储在所标识的页面上的分组数据。在某些实施例中,端口标识符能够被省略和/或分组标识符和分组数据标识符能够匹配或只有单个标识符。例如,如果子集仅仅是单个端口106,分组标识符自身能够被用于对分组数据进行标识(例如,经由相关联的链表202)。另外,分组标识符能够被附加到所有的访问请求,并且随后将所有的分组数据作为数据读出并且传输到设备102上的所有端口106,从而使得所有的目标端口106能够在接收到分组数据时,基于所附加的分组标识符来识别和输出分组数据。
控制器108还能够向没有被包含在选择的子集中的每个目标端口106发送监听消息。这些监听消息类似于读取消息,但是其中的分组数据标识符可以被省略、并且读取标识符能够被省略和/或指示端口106不是读取端口,并且相反地,其仅仅需要针对具有与监听消息中所指示的标识符相匹配的所附加的分组标识符的分组数据而监测/监听来自分组存储器104的输出。因此,没有被选择的或其余的目标端口106将不尝试从分组存储器104读取分组数据,并且相反地,将仅在基于子集的访问尝试、将分组数据从存储器104读出到所有的端口106时监听/监测分组数据。
在接收到读取消息之后,选择的目标端口106发布针对由分组数据标识符和/或包括所需要的分组数据的分组标识符所指示的存储器库110的多个条目上的数据的分组数据请求。如上所述,这些读取访问请求可以包括分组标识符,使得分组数据当从分组存储器104中读出时能够将该分组标识符附加,从而使所有的目标端口(子集和其余端口)能够通过将被附加到数据的分组标识符和所接收到的读取/监听消息中的分组标识符进行匹配,来接收和输出所读出的分组数据。所选择的端口106的子集能够发布对分组存储器104的任意所需数量的读取访问请求,以获取由控制器108所指示的分组数据。例如,对于为每个端口106所指定的页面,端口106能够从由所指定的页面中的第一个页面指示的存储器104内的第一位置开始,并且随后进行到由链表202中的下一页面所指示的分组存储器104内的另一位置,直到被指定给端口106的所有页面已经被发布访问/读取请求。
这些请求能够发生在访问元件112的内部。具体地,从端口106的子集传输请求至与在其中存储了所需要的分组数据的存储器库110(由页面202指示)相关联的存储器库地址元件114。存储器库地址元件114随后裁决在该周期中发布了读取访问请求的哪个端口106将获得对与存储器库110相关联的一个或多个读取端口的访问。这种裁决可以是独立的、或者可以针对每个地址元件114独立地发生,并且对于每个存储器库110也是如此。随后,如上所述,所访问的存储器库110的读取端口传播读取分组数据的请求的分组标识符,并且将该读取的分组数据传输到设备102上的所有的端口106。因此,在接收到分组数据之后,每个端口106能够对指定给端口106的分组标识符与被附加到分组数据的被传播的分组标识符进行比较,并且如果二者匹配,则消费(consume)并且输出该数据。因此,所有的目标端口106将根据控制器108的指示消费多播/广播分组数据并且输出所述数据,尽管实际上只有子集端口106从分组存储器104请求数据。因此,系统100提供了降低多播业务中针对存储器库110的争用的优点,并且由此消除或最小化了特别在直通模式期间的分组欠载的可能性。
图3图示了根据某些实施例的、在分组存储器系统中防止欠载的方法。如图3所示,在步骤302,分组处理设备102在分组存储器104的一个或多个存储器库110上存储一个或多个分组。如上所述,每个分组能够被存储在被映射到分组存储器104中的多个位置的链表202的一个或多个页面上。在步骤304,控制器108确定分组是否是需要从多个目标端口106输出的多播/广播分组。在步骤306,如果分组是多播或广播,控制器108发送读取命令至目标端口106的选择子集,指示子集中的每个端口从分组存储器104读取分组数据的部分或者全部。在步骤308,所有的目标输出端口106在接收到来自分组存储器103的分组数据后输出分组数据。在某些实施例中,设备102处于直通模式,从而由目标端口106输出分组数据包括,在接收到整个分组之前开始输出分组数据的至少部分。在某些实施例中,方法还包括,如果分组是多播或广播,控制器108发送监听命令至目标端口106中的未被选择的其余端口,并且指示其余端口中的每个端口在子集从分组存储器104读取分组数据时,监听/监测分组数据并且输入分组数据。因此,该方法提供了减少被发送给分组数据的存储器库110的针对多播/广播分组数据的读取访问流量的优点。
本文描述的分组存储器系统具有许多优点。具体地,系统提供了减少读取需要从端口发送的分组而对分组存储器的访问量,并且由此减少了对存储器库读取端口的争用。事实上,这反过来又降低了分组欠载的可能性,并且有助于端口的带宽性能。而且,当多个目标端口而不是所有的目标端口被指定为读取端口、从而可以执行适当数量的并行数据访问时,增加了分组存储器的带宽。特别是,在多个端口之间划分分组数据可以有助于防止所选择的所有端口对同时访问相同存储器库的需求。另外,通过使用来自多个端口的拥塞反馈,控制器除了可以确定需要的端口数量之外还可以提供在目标端口之间更好的分配读取访问负荷的益处。因此,系统可以再次降低分组欠载的可能性,并且有助于端口的带宽性能。
尽管已经参照许多特定的细节描述了本发明,但是本领域的技术人员将认识到的是,本发明可以通过其它的具体形式来体现,而没有背离本发明的精神。例如,虽然本文所描述的不同的方法和操作描述了步骤的特定次序,但是可以预见其它的次序以及省略一个或多个步骤和/或添加一个或多个新的步骤。而且,虽然在本文中独立地描述了前面的方法和操作,但是可以组合(全部地或部分地)一个或多个方法和操作。因此,本领域的技术人员将理解的是,本发明不受前面说明性细节的限制,而是由随附的权利要求限定。

Claims (33)

1.一种分组存储器系统,所述系统包括:
非瞬态计算机可读分组存储器,所述非瞬态计算机可读分组存储器包括用于存储由所述系统输入的分组的分组数据的一个或多个存储器库,其中所述分组数据在被存储在所述存储器库上时根据被映射到所述存储器库的一个或多个页面来进行组织,其中所述一个或多个页面是所述分组存储器的一个或多个块;
多个输出端口,所述多个输出端口与所述分组存储器耦合,并且被配置为选择性地从所述分组存储器读取所述分组数据并且将所述分组数据向所述系统外部输出;以及
与所述多个输出端口耦合的控制器,所述控制器用于控制哪些所述端口输出所述分组数据,其中在所述分组数据将从两个或更多个所述端口被输出时,所述控制器命令所述两个或更多个端口的子集以引起所述分组数据从所述分组存储器被读出并且被所述两个或更多个端口中的所有端口所共享,其中所述命令引起所述两个或更多个端口的不是所述子集的一部分的剩余端口在不需要从所述分组存储器读取所述分组数据的情况下接收所述分组数据,并且进一步其中所述控制器命令所述两个或更多个端口中的所有端口在所述分组数据从所述分组存储器被读出之后监听并输出所述分组数据。
2.根据权利要求1所述的系统,其中所述多个输出端口和所述控制器正以直通模式进行操作,以引起所述多个输出端口中的每个输出端口在所述分组数据的整体被接收到之前开始输出分组数据。
3.根据权利要求2所述的系统,其中所述控制器命令所述两个或更多个端口中的所有端口基于分组数据标识符在所述分组数据从所述分组存储器被读出之后监听并且输出所述分组数据,所述分组数据标识符由所述控制器发送至所述两个或更多个端口中的所有端口。
4.根据权利要求3所述的系统,其中所述两个或更多个端口的所述子集中的每个端口引起所述分组数据的不同部分从所述分组存储器被读出。
5.根据权利要求4所述的系统,其中所述两个或更多个端口的所述子集中的每个端口的所述分组数据的所述不同部分由所述控制器基于在所述页面之间如何分配所述分组数据来确定。
6.根据权利要求5所述的系统,其中所述两个或更多个端口的所述子集的端口的数量由所述控制器基于其上存储有所述分组数据的页面的数量来确定。
7.根据权利要求6所述的系统,其中所述控制器基于所述两个或更多个端口中的每个端口的拥塞程度来选择所述两个或更多个端口的所述子集。
8.根据权利要求7所述的系统,其中所述多个输出端口中的每个输出端口包括缓冲器,所述缓冲器存储用于标识已经由所述控制器指定将被所述端口输出的、但是还没有被所述端口输出的一个或多个分组的列表,并且另外其中所述两个或更多个端口中的每个端口的所述拥塞程度基于由所述端口的所述缓冲器的所述列表所标识的一个或更多个分组的当前数量。
9.根据权利要求7所述的系统,其中所述两个或更多个端口的所述子集正是引起所有的分组数据从所述分组存储器被读出的所述两个或更多个端口中的一个端口。
10.根据权利要求7所述的系统,其中所述两个或更多个端口的所述子集正是所述两个或更多个端口中的第一端口和第二端口,并且另外其中所述控制器命令所述第一端口以引起所述分组数据的第一部分被读出以及命令所述第二端口以引起所述分组数据的没有被包括在所述第一部分内的剩余部分被读出。
11.根据权利要求10所述的系统,其中所述第一部分被存储在被映射到所述存储器库的页面中的一个或多个第一页面上并且包括所述分组数据的头部,并且另外其中所述分组数据的所述剩余部分被存储在被映射到所述存储器库的页面中的一个或多个第二页面上并且包括所述分组数据的没有被包括在所述第一页面内的剩余部分。
12.一种存储在非瞬态计算机可读介质上并且与多个输出端口耦合的控制器,所述多个输出端口选择性地从分组存储器读取并且输出分组的分组数据,其中所述分组存储器具有存储所述分组数据的一个或多个存储器库,另外其中所述控制器被配置为,在所述分组数据将从两个或更多个端口被输出时,命令所述两个或更多个端口的子集以引起所述分组数据从所述分组存储器被读出并且被所述两个或更多个端口中的所有端口所共享,其中所述命令引起所述两个或更多个端口的不是所述子集的一部分的剩余端口在不需要从所述分组存储器读取所述分组数据的情况下接收所述分组数据,并且进一步其中所述控制器被配置为命令所述两个或更多个端口中的所有端口在所述分组数据从所述分组存储器被读出之后监听并输出所述分组数据。
13.根据权利要求12所述的控制器,其中所述多个输出端口和所述控制器正以直通模式进行操作,以引起所述多个输出端口中的每个输出端口在所述分组的整体被接收到之前开始输出分组数据。
14.根据权利要求13所述的控制器,其中所述控制器被配置为,命令所述两个或更多个端口中的所有端口基于分组数据标识符在所述分组数据从所述分组存储器被读出之后监听并且输出所述分组数据,所述分组数据标识符由所述控制器发送至所述两个或更多个端口中的所有端口。
15.根据权利要求14所述的控制器,其中所述两个或更多个端口的所述子集中的每个端口引起所述分组数据的不同部分从所述分组存储器被读出。
16.根据权利要求15所述的控制器,其中所述分组数据在被存储在所述存储器库上时根据被映射到所述存储器库的一个或多个页面来进行组织,其中所述一个或多个页面是所述分组存储器的一个或多个块,另外其中所述两个或更多个端口的所述子集中的每个端口的分组数据的不同部分由所述控制器基于在所述页面之间如何分配所述分组数据来确定。
17.根据权利要求16所述的控制器,其中所述控制器被配置为,基于其上存储有所述分组数据的页面的数量来确定所述两个或更多个端口的所述子集的端口的数量。
18.根据权利要求17所述的控制器,其中所述控制器被配置为,基于所述两个或更多个端口中的每个端口的拥塞程度来选择所述两个或更多个端口的所述子集。
19.根据权利要求18所述的控制器,其中所述多个输出端口中的每个输出端口包括缓冲器,所述缓冲器存储用于标识已经由所述控制器指定将被所述端口输出的、但是还没有被所述端口输出的一个或多个分组的列表,并且另外其中所述两个或更多个端口中的每个端口的所述拥塞程度基于由所述端口的所述缓冲器的所述列表所标识的分组当前数量。
20.根据权利要求18所述的控制器,其中所述两个或更多个端口的所述子集正是引起所有的分组数据从所述分组存储器被读出的所述两个或更多个端口中的一个端口。
21.根据权利要求18所述的控制器,其中所述两个或更多个端口的所述子集正是所述两个或更多个端口中的第一端口和第二端口,并且另外其中所述控制器被配置为,命令所述第一端口以引起所述分组数据的第一部分被读出以及命令所述第二端口以引起所述分组数据的没有被包括在所述第一部分内的剩余部分被读出。
22.根据权利要求21所述的控制器,其中所述第一部分被存储在被映射到所述存储器库的页面中的一个或多个第一页面上并且包括所述分组数据的头部,并且另外其中所述分组数据的所述剩余部分被存储在被映射到所述存储器库的页面中的一个或多个第二页面上并且包括所述分组数据的没有被包括在所述第一页面内的剩余部分。
23.一种操作分组存储器系统的方法,所述方法包括:
在非瞬态计算机可读分组存储器的一个或多个存储器库上存储分组的分组数据,其中在所述存储器库上存储所述分组数据包括当所述分组数据被存储在所述存储器库上时根据被映射到所述存储器库的一个或多个页面来进行组织,其中所述一个或多个页面是所述分组存储器的一个或多个块;
在所述分组数据将从被耦合至所述分组存储器的多个输出端口中的两个或更多个输出端口被输出时,利用被耦合至所述输出端口的控制器来命令所述两个或更多个端口的子集以引起所述分组数据从所述分组存储器被读出并且被所述两个或更多个端口中的所有端口所共享,其中所述命令引起所述两个或更多个端口的不是所述子集的一部分的剩余端口在不需要从所述分组存储器读取所述分组数据的情况下接收所述分组数据;以及
利用所述两个或更多个端口从所述两个或更多个端口中的每个端口输出所述分组数据。
24.根据权利要求23所述的方法,其中所述多个输出端口和所述控制器正以直通模式进行操作,以引起通过所述两个或更多个端口中的每个端口输出所述分组数据包括:在所述分组的整体被接收到之前开始输出所述分组数据的至少一部分。
25.根据权利要求24所述的方法,还包括利用所述控制器命令所述两个或更多个端口中的所有端口基于分组数据标识符在所述分组数据从所述分组存储器被读出之后监听并且输出所述分组数据,所述分组数据标识符由所述控制器发送至所述两个或更多个端口中的所有端口。
26.根据权利要求25所述的方法,其中所述两个或更多个端口的所述子集中的每个端口引起所述分组数据的不同的部分从所述分组存储器被读出。
27.根据权利要求26所述的方法,还包括利用所述控制器基于在所述页面之间如何分配所述分组数据来确定所述两个或更多个端口的所述子集中的每个端口的分组数据的所述不同部分。
28.根据权利要求27所述的方法,还包括利用所述控制器基于其上存储有所述分组数据的页面的数量来确定所述两个或更多个端口的所述子集的端口的数量。
29.根据权利要求28所述的方法,还包括利用所述控制器基于所述两个或更多个端口中的每个端口的拥塞程度来选择所述两个或更多个端口的所述子集。
30.根据权利要求29所述的方法,其中所述多个输出端口中的每个端口包括缓冲器,所述缓冲器存储用于标识已经由所述控制器指定将被所述端口输出的、但是还没有被所述端口输出的一个或多个分组的列表,并且另外其中所述两个或更多个端口中的每个端口的所述拥塞程度基于由所述端口的所述缓冲器的所述列表所标识的一个或更多个分组的当前数量。
31.根据权利要求29所述的方法,其中所述两个或更多个端口的子集正是引起所有的分组数据从所述分组存储器被读出的所述两个或更多个端口中的一个端口。
32.根据权利要求29所述的方法,其中所述两个或更多个端口的子集正是所述两个或更多个端口中的第一端口和第二端口,所述方法还包括利用所述控制器命令所述第一端口以引起所述分组数据的第一部分被读出以及命令所述第二端口以引起所述分组数据的没有被包括在所述第一部分内的剩余部分被读出。
33.根据权利要求32所述的方法,其中所述第一部分被存储在被映射到所述存储器库的页面中的一个或多个第一页面上并且包括所述分组数据的头部,并且另外其中所述分组数据的所述剩余部分被存储在被映射到所述存储器库的页面中的一个或多个第二页面上并且包括所述分组数据的没有被包括在所述第一页面内的剩余部分。
CN201610193288.8A 2015-03-30 2016-03-30 防止欠载的分组存储器系统、方法和设备 Active CN106027426B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/673,807 2015-03-30
US14/673,807 US10003551B2 (en) 2015-03-30 2015-03-30 Packet memory system, method and device for preventing underrun

Publications (2)

Publication Number Publication Date
CN106027426A CN106027426A (zh) 2016-10-12
CN106027426B true CN106027426B (zh) 2020-07-07

Family

ID=56937077

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610193288.8A Active CN106027426B (zh) 2015-03-30 2016-03-30 防止欠载的分组存储器系统、方法和设备

Country Status (6)

Country Link
US (1) US10003551B2 (zh)
KR (1) KR102524566B1 (zh)
CN (1) CN106027426B (zh)
DE (1) DE102016003679A1 (zh)
FR (1) FR3034542A1 (zh)
TW (1) TW201642140A (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10333848B2 (en) * 2016-07-01 2019-06-25 Intel Corporation Technologies for adaptive routing using throughput estimation
US11606346B2 (en) 2020-06-29 2023-03-14 Rockwell Automation Technologies, Inc. Method and apparatus for managing reception of secure data packets
US11599649B2 (en) * 2020-06-29 2023-03-07 Rockwell Automation Technologies, Inc. Method and apparatus for managing transmission of secure data packets
CN112257104A (zh) * 2020-10-10 2021-01-22 北京字跳网络技术有限公司 权限控制方法、装置和电子设备

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1770745A (zh) * 2004-09-29 2006-05-10 英特尔公司 使用设备向量能够路由多播数据分组的集成电路
CN103036805A (zh) * 2011-09-30 2013-04-10 美国博通公司 用于改善分组共享存储器体系结构组播性能的系统和方法

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5978379A (en) 1997-01-23 1999-11-02 Gadzoox Networks, Inc. Fiber channel learning bridge, learning half bridge, and protocol
WO2000052889A1 (en) 1999-03-05 2000-09-08 Allayer Technologies Corporation Packet switching fabric having a segmented ring with token based resource control protocol and output queuing control
CA2283627C (en) 1999-09-27 2008-08-12 Nortel Networks Corporation High-capacity wdm-tdm packet switch
US7079525B1 (en) 2000-04-27 2006-07-18 Cisco Technology, Inc. Network switch having a hybrid switch architecture
US7068603B2 (en) 2001-07-06 2006-06-27 Juniper Networks, Inc. Cross-bar switch
US7215639B2 (en) * 2001-08-31 2007-05-08 4198638 Canada Inc. Congestion management for packet routers
US7043569B1 (en) 2001-09-07 2006-05-09 Chou Norman C Method and system for configuring an interconnect device
US7289537B1 (en) 2002-11-01 2007-10-30 Greenfield Networks, Inc. Single-chip multi-port Ethernet switch
US7916743B2 (en) * 2004-11-17 2011-03-29 Jinsalas Solutions, Llc System and method for improved multicast performance
US7719982B2 (en) * 2005-08-31 2010-05-18 Intel Corporation Switching device utilizing flow-control management
US20090073873A1 (en) 2007-09-17 2009-03-19 Integrated Device Technology, Inc. Multiple path switch and switching algorithms
US8554851B2 (en) 2010-09-24 2013-10-08 Intel Corporation Apparatus, system, and methods for facilitating one-way ordering of messages
US9246795B2 (en) 2011-03-07 2016-01-26 Tejas Networks Limited Protection method and system for preplanning duality of paths for a unicast and/or a multicast traffic
US9195622B1 (en) 2012-07-11 2015-11-24 Marvell World Trade Ltd. Multi-port memory that supports multiple simultaneous write operations
US9148346B2 (en) 2012-09-05 2015-09-29 Brocade Communications Systems, Inc. Multiple ring identification and configuration protocol
US9037670B2 (en) 2012-09-18 2015-05-19 Cisco Technology, Inc. Ultra low latency network buffer storage
US9154441B2 (en) 2013-01-25 2015-10-06 Broadcom Corporation Adaptive buffer allocation management
US9582440B2 (en) 2013-02-10 2017-02-28 Mellanox Technologies Ltd. Credit based low-latency arbitration with data transfer
US9699118B2 (en) * 2014-04-25 2017-07-04 Avago Technologies General Ip (Singapore) Pte. Ltd. System for flexible dynamic reassignment of throughput

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1770745A (zh) * 2004-09-29 2006-05-10 英特尔公司 使用设备向量能够路由多播数据分组的集成电路
CN103036805A (zh) * 2011-09-30 2013-04-10 美国博通公司 用于改善分组共享存储器体系结构组播性能的系统和方法

Also Published As

Publication number Publication date
TW201642140A (zh) 2016-12-01
US10003551B2 (en) 2018-06-19
DE102016003679A1 (de) 2016-10-06
US20160294729A1 (en) 2016-10-06
FR3034542A1 (zh) 2016-10-07
KR102524566B1 (ko) 2023-04-21
CN106027426A (zh) 2016-10-12
KR20160117232A (ko) 2016-10-10

Similar Documents

Publication Publication Date Title
US11916781B2 (en) System and method for facilitating efficient utilization of an output buffer in a network interface controller (NIC)
CN106027426B (zh) 防止欠载的分组存储器系统、方法和设备
US10146475B2 (en) Memory device performing control of discarding packet
WO2015165398A1 (zh) 一种数据处理装置和终端
US9838500B1 (en) Network device and method for packet processing
US11874780B2 (en) Packet processing system, method and device utilizing a port client chain
US9665514B2 (en) Integrated circuit having a bus network, and method for the integrated circuit
US9063841B1 (en) External memory management in a network device
US10061513B2 (en) Packet processing system, method and device utilizing memory sharing
JP2010067091A (ja) 共有メモリシステム
KR100560277B1 (ko) 메모리로의 액세스의 수를 감소시키는 방법 및 시스템 및 기록 매체
US9628398B1 (en) Queuing methods and apparatus in a network device
US9582215B2 (en) Packet processing system, method and device utilizing memory sharing
US9612950B2 (en) Control path subsystem, method and device utilizing memory sharing
US9922000B2 (en) Packet buffer with dynamic bypass
WO2016014044A1 (en) Node-based compute device with protocol-based priority
US8233478B2 (en) Method and an apparatus for data storage and communications

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 1230365

Country of ref document: HK

SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information
CB02 Change of applicant information

Address after: California, USA

Applicant after: Cavium, Inc.

Address before: California, USA

Applicant before: Cavium, Inc.

TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20200427

Address after: Singapore City

Applicant after: Marvell Asia Pte. Ltd.

Address before: Ford street, Grand Cayman, Cayman Islands

Applicant before: Kaiwei international Co.

Effective date of registration: 20200427

Address after: Ford street, Grand Cayman, Cayman Islands

Applicant after: Kaiwei international Co.

Address before: California, USA

Applicant before: Cavium, Inc.

GR01 Patent grant
GR01 Patent grant