CN110214437A - 用于存储器访问令牌重新分配的系统和方法 - Google Patents

用于存储器访问令牌重新分配的系统和方法 Download PDF

Info

Publication number
CN110214437A
CN110214437A CN201780084274.5A CN201780084274A CN110214437A CN 110214437 A CN110214437 A CN 110214437A CN 201780084274 A CN201780084274 A CN 201780084274A CN 110214437 A CN110214437 A CN 110214437A
Authority
CN
China
Prior art keywords
storage device
access token
memory access
storage devices
grouping
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.)
Granted
Application number
CN201780084274.5A
Other languages
English (en)
Other versions
CN110214437B (zh
Inventor
J·J·施罗德
N·A·斯米特
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 International Ltd
Marvell Asia Pte Ltd
Original Assignee
Mawier International Trade 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 Mawier International Trade Co Ltd filed Critical Mawier International Trade Co Ltd
Publication of CN110214437A publication Critical patent/CN110214437A/zh
Application granted granted Critical
Publication of CN110214437B publication Critical patent/CN110214437B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/1694Configuration of memory controller to different memory types
    • 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/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/0292User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/109Address translation for multiple virtual address spaces, e.g. segmentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • G06F12/1425Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block
    • G06F12/1433Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block for a module or a part of a module
    • 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/161Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement
    • G06F13/1626Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement by reordering requests
    • 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/90Buffering arrangements
    • 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/1052Security improvement

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Small-Scale Networks (AREA)

Abstract

描述了一种网络设备。该网络设备包括多个入口接口,被配置为存储在多个入口接口处接收到的分组的多个存储装置,存储器访问令牌的第一池,以及实现存储器控制器的一个或多个集成电路。存储器访问令牌对应于相应的存储装置,并且在第一池内是不同的。存储器控制器被配置为选择性地将至少一个单独的存储器访问令牌分配给入口接口以管理对存储装置的写入访问。入口接口将分组写入由对应的已分配的存储器访问令牌标识的存储装置。网络控制器被配置为基于访问非顺序存储装置的写入访问方案,将来自第一入口接口的第一存储器访问令牌重新分配给来自第一入口接口的连续写入命令之间的第二入口接口。

Description

用于存储器访问令牌重新分配的系统和方法
相关申请的交叉引用
本公开要求于2016年12月7日提交的名为“Writing to a Packet BufferWithout Memory Collisions”的美国第62/431,238号临时专利申请的权益,其公开内容以整体内容通过引用并入本文。
技术领域
本公开一般涉及通信系统,并且更具体地,涉及使用存储器访问令牌以存储所接收的数据。
背景技术
本文提供的背景描述是出于总体上呈现本公开的上下文的目的。目前指定的发明人的工作,其在本背景技术部分中被描述的程度,以及在提交时可能不具有作为现有技术资格的描述的方面,既不明确也不暗示地被认为是针对本公开的现有技术。
一些网络交换机将传入分组的部分存储在集中式分组缓冲器中,例如,同时标识针对分组的出口接口,并且由分组处理器执行其他处理操作。稍后,将分组从集中式分组缓冲器转移到所标识的出口接口。在一些配置中,集中式分组缓冲器由单独可寻址的许多存储装置组成,这允许同时写入分组缓冲器。例如,多个入口接口可以同时写入到集中式分组缓冲区的分离存储装置。
发明内容
在实施例中,网络设备包括多个入口接口;多个存储装置,被配置为在与在多个入口接口处接收到的分组相对应的数据由分组处理器处理以至少确定网络设备的通过其传送分组的出口接口的同时,存储分组;存储器访问令牌的第一池,以及实现存储器控制器的一个或多个集成电路。与多个存储装置的相应存储装置相对应的存储器访问令牌的第一池中的数个存储器访问令牌和访问令牌中的数个访问令牌在第一池内是不同的。一个或多个集成电路被配置为选择性地将第一池的单独存储器访问令牌分配给多个入口接口中的数个入口接口,以管理对多个存储装置的写入访问。多个入口接口之中的入口接口分别被分配至少一个存储器访问令牌,并且将分组写入到由对应的分配的一个或多个存储器访问令牌标识的多个存储装置的存储装置。一个或多个集成电路被配置为基于访问非顺序存储装置的写入访问方案,将来自多个入口接口的第一入口接口的第一池的第一存储器访问令牌重新分配给来自第一入口接口的连续写入命令之间的多个入口接口的第二入口接口。
在另一实施例中,一种用于在与在网络设备的多个入口接口处接收到的分组相对应的数据由分组处理器处理以至少确定网络设备的通过其传送分组的出口接口的同时,存储分组的方法,包括:由网络设备的存储器控制器选择性地将存储器访问令牌的第一池中的单独存储器访问令牌分配给多个入口接口中的数个入口接口以管理对多个存储装置的写入访问。多个入口接口之中的入口接口分别被分配至少一个存储器访问令牌,并且将分组写入到由对应的已分配的一个或多个存储器访问令牌标识的多个存储装置的存储装置。该方法还包括:在多个入口接口的第一入口接口处接收分组;确定存储分组的至少一部分的多个存储装置的所保留的存储装置的存储器地址,在所保留的存储装置处存储分组的至少一部分。所保留的存储装置由被分配给入口接口的存储器访问令牌标识。该方法还包括将分组的一部分存储在所保留的存储装置的存储器地址处;在分组的一部分已经被存储后,由存储器控制器将存储器访问令牌重新分配给多个入口接口的不同入口接口。
附图说明
图1是根据实施例的具有存储器控制器的示例网络设备的简化框图,其中实现了本公开的网络分组存储技术。
图2是根据实施例的图1的网络设备的示例存储器控制器的简化框图。
图3是根据实施例的图1的网络设备的示例逻辑存储装置的简化框图。
图4是根据实施例的图1的网络设备的简化框图。
图5是根据实施例的图3的示例逻辑存储装置的简化框图。根据实施例,如图1所示。
图6是根据实施例的说明在图1的网络设备中实现的存储在多个入口接口处接收到的分组的示例方法的流程图。
具体实施方式
在本文描述的各种实施例中,网络设备包括具有单独可寻址的多个存储装置的分组缓冲器。为网络设备的入口接口生成用于分组缓冲器的随机化(例如,非顺序)地址以存储所接收的网络分组,这在随后从分组缓冲器读取分组时提供改进的性能。在实施例中,随机化地址至少包括存储装置的非顺序选择。在另一实施例中,随机化地址包括存储装置的非顺序选择和所选存储装置内的非顺序地址。在实施例中,两个或更多个入口接口标识相应的随机化地址,并将对应的写入命令发送到分组缓冲器以存储相应的分组。在一种场景中,写入命令“冲突”,其原因在于:在接收到第二写入命令之前不能完成第一写入命令,因为对应的地址指的是相同的存储装置。在这种场景中,发生写入命令的拥塞,并且第二写入命令的执行被延迟直到第一写入命令已经完成为止。执行第二写入命令的延迟以及可能的到同一存储装置的后续写入命令一般是不确定的并且负面地影响网络设备的性能。在实施例中,对分组缓冲器的存储装置的写入访问由存储器访问令牌池管理,其中存储器访问令牌的池中的数个访问令牌对应于分组缓冲器的相应存储装置。存储器控制器选择性地将单独的存储器令牌分配给入口接口并重新分配存储器令牌以促进对分组缓冲器的写入命令的随机化(诸如非顺序)的分配。在一些实施例中,存储器令牌的使用排除了对于延迟(例如,拥塞)写入命令的先进先出缓冲空间的需要。在一些场景中,存储器令牌的使用降低了写入前读取的风险(即,在整个分组已经被写入存储器之前处理针对分组的读取命令),通过有效地“锁定”存储装置直到整个分组已写入到存储装置。
图1是根据实施例的在其中实现本公开的网络分组存储技术的示例网络设备100的简化框图。在各种实施例中,网络设备100是桥接器,路由器,交换机或被配置为在联网环境内操作的任何其他合适的网络设备。在图1所示的实施例中,网络设备100包括多个端口接口,包括端口103、105、107、109、113、115、117和119。在一些实施例中,多个端口中的每个端口是双向端口,其可以用做接收网络分组的入口端口或传送网络分组的出口端口。在其他实施例中,端口专用于入口端口或出口端口。例如,在实施例中,端口103、105、107和109是专用入口端口,端口113、115、117和119是专用出口端口。
虽然图1仅示出了八个端口,但是在其他实施例中网络设备100包括多于八个端口或少于八个端口。在各种实施例中,网络设备100被配置为处理单播,多播和/或广播操作。图1图示了网络设备100至少能够进行单播操作的实施例,以及在其中分组以单播方式经由端口103进入并经由端口112外出到单个目的地的场景。注意,在其他实施例和/或场景中,分组可以替代地经由一个端口(单播),经由两个端口,经由三个或更多个端口,或经由交换机的所有端口外出。
网络设备100包括具有多个存储装置121的分组缓冲器120,例如,如图1的实施例中所示的存储装置A、B、C、D和E。多个存储装置121被配置为存储在多个入口端口处接收到的分组(或其部分),例如,同时对应于分组的数据由一个或多个处理器处理,以至少确定网络设备100的出口端口,通过该网络设备100传送分组。网络设备100利用存储器访问令牌的一个或多个池122来管理对多个存储装置121的写入访问,例如,池122-1(图1)和池122-2、122-3和122-4(图4)。在实施例中,例如,池122的每个存储器访问令牌A、B、C、D和E对应于相应的存储装置A、B、C、D和E,并且生成用于存储分组的写入命令,该分组只有在对应的存储器访问令牌已被分配给入口端口时才从特定存储装置的入口端口处被接收(例如,入口端口是“令牌持有者”)。换言之,存储装置为存储器访问令牌的持有者被保留。在实施例中,存储器访问令牌的池122中的数个存储器访问令牌对应于多个存储装置121中的相应存储装置并且在池122内是不同的(例如,池122每个存储装置仅包含一个存储器访问令牌,以便池122内没有重复的令牌)。在图1和图4所示的实施例中,每个池122包括相应的存储器访问令牌A、B、C、D和E。
用于将所接收到的分组写入到多个存储装置121的写入命令包括所接收到的分组的至少一部分,并且标识i)要将所接收的分组的一部分存储到其中的所保留的存储装置,以及ii)所保留的存储装置的存储器地址。在实施例中,网络设备100利用存储装置的随机选择在随后从多个存储装置121读取分组时改进性能。在实施例中,网络设备还利用存储器访问令牌降低写入命令之间发生冲突的可能性。例如,在池中仅存在针对存储装置的存储器访问令牌的情况下,将存储器访问令牌分配给令牌组的特定接口或令牌组的端口会阻止令牌组的其他成员尝试使用存储器访问令牌进行写入,并因此分配到同一个存储装置。在另一实施例中,网络设备100重新分配存储器访问令牌以进一步促进多个存储装置121之间的分组的随机分布,如本文所述。
在各种实施例中,多个存储装置121包括合适的非瞬态存储器设备,诸如RAM或任何其他合适类型的存储器设备。在一些实施例中,多个存储装置121是高带宽共享分组存储器。在一些实施例和/或场景中,多个存储装置121由网络设备100的各端口共享,以用于存储根据调度或队列外出的分组,例如,当对应的目标出口端口拥塞时。在一个这样的场景中,要经由出口端口传送的分组被存储在多个存储装置121的对应的出口队列中,而另一分组由出口端口传送。在这种场景中,当以出口端口为目标的分组带宽大于出口端口所提供的带宽时,称出口端口为“拥塞的”。因此,并非所有针对给定出口端口的分组必然将在它们已经由分组处理器140处理之后立即被传送。在各种实施例中,多个存储装置121促进分组的复杂调度、速率限制或组装中的一个或多个。
在一些实施例中,网络设备100的两个或更多个端口被分组在一个或多个端口组内。在图1所示的实施例中,网络设备100包括端口组110、111和112。端口组110包括入口端口103、105、107和109,并且端口组111和112包括附加端口(未示出)。在各种实施例中,端口组的各端口共享到存储装置(例如,存储装置121)、存储器控制器(例如,存储器控制器125)或网络设备100的其他合适处理器(例如,处理器140)的一个或多个接口。在实施例中,端口组被配置为使得每个端口具有一个或多个相同的端口特性,例如,相同的最大传输速度(例如,1Gbps、40Gbps)。作为示例,端口组110的端口103、105、107和109中的每一个具有50Gbps的最大传输速度。在另一实施例中,端口组被配置为具有聚合组特性,例如,聚合最大传输速度。作为示例,端口103、105、107和109分别具有20Gbps、40Gbps、40Gbps和100Gbps的最大传输速度,并且端口组110具有200Gbps的聚合传输速度。在一些实施例中,两个或更多个端口或端口组共享朝向存储装置、存储器控制器或网络设备100的其他合适处理器的一个或多个入口接口。例如,在如图1所示的实施例中,端口组110、111和112共享到分组处理器140的入口接口。在另一实施例中,端口组110、111和112共享到存储器控制器125的入口接口。
在一些实施例中,网络设备100包括多个令牌组,例如,令牌组130、132、134和136(图1和图4)。换言之,多个端口和/或端口组被布置在令牌组中。在实施例中,令牌组是一组端口和/或端口组,其共享对应于实施例中的多个存储装置121的存储器访问令牌的池122。在图1和图4的实施例中,网络设备100包括四个令牌组130、132、134和136,并且利用对应于存储装置A,B,C,D和E的存储器访问令牌的四个相应的池122。在图1中,为清楚起见,仅示出了令牌组130的池122-1。在其他实施例中,网络设备100包括一个,两个,三个或更多个令牌组。
网络设备100包括至少一个令牌组存储器控制器125,以用于处理针对令牌组130的写入命令。在实施例中,网络设备100包括用于每个令牌组130、132、134和136的分离的令牌组存储器控制器(仅针对令牌组130的令牌组存储器控制器被示出)。在另一实施例中,令牌组130、132、134和136中的两个或更多个共享令牌组存储器控制器。在实施例中,令牌组存储器控制器125被配置为将单独的存储器访问令牌从存储器访问令牌的对应池122分配给端口和/或端口组中的数个端口和/或端口组。此外,在实施例中,令牌组存储器控制器125被配置为重新分配存储器访问令牌以改进多个存储装置121之间的分组的随机或非顺序分布。例如,重新分配存储器访问令牌防止端口在存储多个分组时独占相同的存储装置。在实施例中,令牌组存储器控制器125确保每个入口接口(例如,端口和/或端口组)具有至少一个分配的存储器访问令牌,以减少用于执行针对入口接口的写入命令的延迟。
在一些实施例中,多个存储装置121中的每一个是包括多个物理存储装置的逻辑存储装置。在实施例中,例如多个物理存储装置是单独且独立可访问的分离存储器芯片,并且逻辑存储装置作为单个存储装置被访问。在一些实施例中,逻辑存储装置的物理存储装置利用相同的地址空间来寻址,使得每个物理存储装置存储多字单元的字。在实施例中,例如,写入命令包括用于多字单元的数据部分,该多字单元具有与物理存储装置相同的字数。在该实施例中,存储多字单元在多个写入周期(例如,每周期存储一个字)上发生,并且单独的字由存储器旋转器123分布在物理存储装置上,如下所述。
在实施例中,多个存储装置被配置为使得单独的存储器访问令牌仅对多个物理存储装置中的一个物理存储装置(即,经由逻辑存储装置)提供写入访问,而剩余的物理存储装置对令牌组的成员可用。在该实施例中,逻辑存储装置被配置为处理来自多达相同数目的入口接口组(例如,令牌组)的同时写入命令,因为逻辑存储装置具有物理存储装置。在图1和图5所示的实施例中,逻辑存储装置A包括四个物理存储装置P1、P2、P3和P4中的多个,使得在实施例中,逻辑存储装置A可以处理多达四个同时写入命令。在实施例中,四个同时写入命令对应于存储器访问令牌的四个不同池的存储器访问令牌A的四个分离实例(例如,图4中所示的四个池122-1、122-2、122-3和122-4,每个包含存储器访问令牌A的一个实例)。换言之,多个存储装置121经由其存储器访问令牌的对应的池来支持四个令牌组,通过分配令牌来防止令牌组的成员之间的写入命令冲突,以及令牌组的“令牌持有者”之间的写入命令冲突通过经由逻辑存储装置的不同物理存储装置处理写入命令来防止。在实施例中,当单元在每个物理存储器中具有一个字时,则通过单个令牌组中的单个端口在4个连续写入周期中写入该单元。旋转器123每个写入周期将单个令牌组和物理存储器之间的连接旋转1,使得在4个写入周期期间将一个字写入到每个物理存储器。
在实施例中,网络设备100还包括一个或多个分组处理器140和一个或多个队列管理器170,其处理所接收的分组的一个或多个部分或表示该分组的其他合适的数据结构。在实施例中,网络设备100包括单个分组处理器140和单个队列管理器170,其处理针对网络设备100的所有端口的所接收的分组的部分。在另一实施例中(例如,如图1所示)网络设备100包括用于每个令牌组的一个分组处理器140和用于网络设备100的所有端口的单个队列管理器170。在其他实施例中,分组处理器140为一个或多个端口、端口组和/或令牌组处理分组。在一些实施例中,队列管理器170为一个或多个端口和/或端口组处理分组。
所接收的分组150一般包括报头151和有效负载152。在实施例中,分组处理器140标识将从其传送所接收的分组150的出口接口,并向队列管理器170提供所标识的出口接口的指示。在实施例中,分组处理器140从分组中提取分组报头并生成描述符155。在实施例中,描述符是表示对应分组并且被用于处理的数据单位。描述符与对应的分组分离,并且通常包含从对应分组中提取的报头信息以及表征对应分组的其他信息。在一些实施例中,分组处理器140包括用于处理所生成的描述符155以执行各种操作的一个或多个模块。一般,分组处理器140(例如,在实施例中,包括桥接引擎)处理描述符155,并访问各种路由、转发和/或其他被存储在查找存储器(未示出)中的合适的数据库,以为对应的分组执行转发操作。
分组处理器140包括用于处理分组的一个或多个有形/物理处理器引擎。在图1中所示的第一说明性实施例中,单个分组处理器140被示出。在实施例中,分组处理器140包括以ASIC管线配置所配置的一个或多个处理器引擎,其中引擎根据操作顺序执行一个或多个预定处理操作。在另一实施例中,分组处理器140包括至少一些引擎,其被配置为读取和执行存储在有形的、非瞬态的、计算机可读存储器(例如,RAM,只读存储器(ROM),FLASH存储器等)上的软件或固件指令。在又一实施例中,多个分组处理器引擎被配置为执行指令以基于处理上下文执行分组处理操作。在一些实施例中,软件或固件指令包括计算机可读指令,计算机可读指令在由(多个)处理器执行时,使得(多个)处理器执行本文描述的分组处理器140的各种动作中的任何动作。在一个这样的实施例中,各种组件被实现为相应的软件或固件模块,其中每个模块对应于由分组处理器140执行的指令。注意,图1所示的各种组件的视觉布置仅对应于操作的逻辑顺序而不是对应组件的物理位置。
在实施例中,在由分组处理器140处理之后,每个描述符155或代表该描述符的数据单位被发送到队列管理器170以被调度用于传输。在实施例中,队列管理器170维持对应于出口端口、分组流和/或其他合适目标的一个或多个出口队列(图1中未示出),以及用于要被提供给相应出口端口的分组的缓冲器描述符155。在一些实施例中,经由适当的出口端口,队列管理器170调度对应的分组以进行传输。在一个这样的实施例中,通过将排队的描述符155发送到与队列相关联的相应出口端口,以调度的顺序传送分组。在各种实施例中,队列包含具有指向多个存储装置121的指针的描述符155。在一些实施例中,队列管理器170将排队的描述符155发送到传送直接存储器访问设备(未示出),该传送直接存储器访问设备一般被配置为检索/读取存储在多个存储装置121中的分组,并将检索到的分组提供给网络设备100的对应出口端口。
使用被配置为如下所述操作的一个或多个集成电路(IC)来实现网络设备100。例如,可以在分离的IC上至少部分地实现端口103、105、107、109、113、115、117和119、存储装置121、存储器控制器125、分组处理器140和/或队列管理器170。作为另一示例,端口103、105、107、109、113、115、117和119的至少一部分、存储装置121、存储器控制器125、分组处理器140和/或队列管理器170可以在单个IC上被实现。
图2是根据实施例的用于网络设备100的示例存储器控制器200的框图。在实施例中,存储器控制器200对应于令牌组存储器控制器125。存储器控制器200被配置为针对来自两个或更多个入口接口的分组处理写入命令,这些分组将被存储在多个存储装置121中。在实施例中,存储器控制器200被配置为针对来自图1的端口组110、111和112的分组处理写入命令。
在实施例中,存储器控制器200包括用于每个入口接口的地址生成器和在入口接口之间分配和重新分配存储器访问令牌的令牌分配控制器230。在图2所示的实施例中,存储器控制器200包括分别对应于端口组110、111和112的地址生成器210、211和212。地址生成器210、211和212被配置为确定所保留的存储装置的存储器地址,在该存储器地址处存储在对应的入口接口处接收到的分组的至少一部分。所保留的存储装置由已分配给对应的入口接口的存储器访问令牌来标识。在实施例中,地址生成器210、211和/或212基于它们所分配的存储器访问令牌来随机地选择多个存储装置121中的所保留的存储装置。在一些实施例中,地址生成器210、211和/或212生成非顺序的、随机的或伪随机的存储器地址作为存储器地址。在实施例中,地址生成器210、211和/或212为所保留的存储装置从空闲地址列表中选择地址。地址生成器210、211和/或212生成写入命令,该写入命令包括从对应的入口接口接收的分组的至少一部分,并且标识i)所保留的存储装置,以及ii)存储器地址。
在实施例中,地址生成器210、211和212包括相应的令牌队列220,其存储已被分配给对应的入口接口的存储器访问令牌。在实施例中,令牌队列220是先进先出(FIFO)队列。在一些实施例中,令牌队列220存储或表示所分配的存储器访问令牌或其他合适的数据结构的指示。换言之,整个令牌不必在地址生成器210、211和212之间传递。在实施例中,令牌分配控制器230提供一个或多个逻辑控制线,其标识已经分配了哪些存储器访问令牌,例如,对应于相应的逻辑存储装置A、B、C、D和E的5位的位图,其中值“1”指示针对对应的逻辑存储器访问单位的存储器访问令牌已被分配给入口接口,并且值“0”表示尚未被分配的存储器访问令牌。
在实施例中,地址生成器210、211和212包括活动存储器槽222,用于保护当前正在使用的存储器访问令牌,例如,在多字单元的写入周期期间。换言之,地址生成器“锁定”存储器访问令牌,同时多字单元被存储到由活动存储器槽222的存储器访问令牌标识的存储装置中。在图2所示的实施例中,对应于地址生成器210的第一入口接口正在写入逻辑存储装置A,以及对应于地址生成器211的第二入口接口正在写入到逻辑存储装置C。在一些实施例中,活动存储器槽222在令牌队列220的前置位置,并且在已经存储了单元之后,将存储器访问令牌放置在令牌队列220的后面。
在实施例中,令牌分配控制器230在端口组110、111、112之间分配和重新分配存储器地址令牌,以便在每个写入周期内为每个端口组分配存储器访问令牌。附加地,令牌分配控制器230确保每个存储器访问令牌被精确地分配给地址生成器210、211或212中的一个。这确保了写入命令不因丢失的存储器访问令牌而被延迟。在实施例中,令牌分配控制器230在预定数目的周期(例如,10个周期,20个周期或另一合适的数目)后重新分配存储器地址令牌。在另一实施例中,令牌分配控制器230在预定数目的写入命令之后(例如在已经执行了两个、三个或更多个写入命令之后)重新分配存储器地址令牌。在实施例中,令牌分配控制器230尽可能频繁地重新分配存储器访问令牌以改进用于写入命令的存储装置的随机性。
在实施例中,网络设备100配置有比每个令牌组的成员更多的逻辑存储装置。在图1和图2的实施例中,五个逻辑存储装置和针对三个入口接口的对应存储器访问令牌提供在任何时候都可以被重新分配的至少两个“浮动”或“空闲”存储器访问令牌。在实施例中,令牌分配控制器230将空闲存储器访问令牌从第一令牌队列随机地重新分配给第二令牌队列。在一些实施例中,令牌分配控制器230在令牌队列220的后面重新分配存储器访问令牌(例如,最近使用的存储器访问令牌)。在其他实施例中,令牌分配控制器230重新分配不在令牌队列220的前面的任何存储器访问令牌。在图2所示的实施例中,存储器访问令牌D、B和E是空闲的并且可用于重新分配。
在实施例中,地址生成器210、211和212生成写入命令并将写入命令提供给存储器控制器200的多路复用器240,在实施例中。在实施例中,多路复用器240将写入命令路由发送到对应的逻辑存储装置。在一些实施例中,一旦已经确定了存储器地址,地址生成器就配置所保留的存储装置的单元。
在图2所示的实施例中,存储器控制器200包括地址生成器210、211和212、令牌分配控制器230和多路复用器240。在一些其他实施例中,地址生成器210、211和212中的一个或多个位于对应的入口接口处。在实施例中,例如,地址生成器210位于端口组110处。
图3是根据实施例的网络设备100的示例逻辑存储装置A、B、C和D的框图。在图3所示的实施例中,多个逻辑存储装置A、B、C、D和E包括物理存储装置1至20,每个逻辑存储装置具有四个物理存储装置,其中每个物理存储装置具有独立的读取/写入端口。在该实施例中,单元包括存储在单个逻辑存储装置中的四个字。在实施例中,例如,每个物理存储装置具有256位宽的读取/写入端口、在逻辑存储装置的每个物理存储器中具有一个256位字的1024位的多字单元,并且因此用于写入命令的多字单元被存储在四个写入周期中。此外,每个逻辑存储装置具有四个独立的读取/写入端口。如图3所示,单元W作为分离的字W.0、W.1、W.2和W.3被存储在逻辑存储装置A中,单元X作为分离的字X.0、X.1、X.2、和X.3被存储在逻辑存储装置B中,依此类推。在一些实施例中,多字单元的前面的字(例如,W.0、X.0、Y.0和Z.0)被存储在相同逻辑存储装置的不同物理存储装置中,如以下关于图5所述。多字单元的后续字被循环地存储或以“循环”方式被存储在逻辑存储装置的剩余物理存储装置中。
图4是根据实施例的网络设备100的另一框图。在图4所示的实施例中,网络设备100包括多个存储装置121和图1的令牌组130、132、134和136。多个存储器存储单位121包括逻辑存储装置A、B、C、D和E,每个逻辑存储装置具有四个单独可访问的物理存储装置,如上关于图3所述。在该实施例中,每个逻辑存储装置具有四个读取/写入端口(例如,每个物理存储装置一个读取/写入端口)。在该实施例中,逻辑存储装置的每个读取/写入端口被保留用于特定令牌组,例如,为令牌组130保留第一读取/写入端口,为令牌组132保留第二读取/写入端口等等。用于令牌组的存储器控制器通过将存储器访问令牌分配给入口端口来管理对特定逻辑存储装置的写入访问。另外,存储器旋转器123通过在物理存储装置之间旋转令牌组来管理对特定逻辑存储装置内的特定物理存储装置的写入访问。换言之,存储器控制器防止令牌组的成员之间的存储器写入冲突,并且存储器旋转器123防止令牌组之间的存储器写入冲突。
图5是根据实施例的图4的逻辑存储装置A的框图。逻辑存储装置A包括存储器旋转器123、逻辑存储器控制器502和四个物理存储装置1、2、3和4。在该实施例中,物理存储装置1、2、3和4的每一个具有可以存储字的相应的第一地址位置530和相应的第二地址位置532,例如,物理存储装置1的第一地址位置530-1,物理存储装置2的第一地址位置530-2等。虽然为了清楚起见仅示出了两个地址位置,但在各种实施例中,物理存储装置包含许多地址位置。在实施例中,例如,物理存储装置具有512兆位(2^29位)的存储容量,具有256位字大小(2^8位),并因此包含2097152(2^21)个地址位置。在该实施例中,四个物理存储装置1至4各自存储1024位多字单元的256位字。
在实施例中,物理存储装置1、2、3和4被配置为循环缓冲器,并且存储器旋转器123被配置为在逻辑存储装置A的物理存储装置之间“旋转”。换言之,存储器旋转器123在一个场景中将多字单元的第一、第二、第三和第四字分别存储到物理存储器1、2、3和4,并且在另一场景中将第一、第二、第三和第四字分别存储到物理存储器3,4,1和2等。在实施例中,通过为前面的字选择物理存储装置以及存储物理存储装置包含前面的字的指示,逻辑存储器控制器520为多字单元控制物理存储装置的顺序。当为多字单元执行读取命令时,逻辑存储器控制器502控制存储器旋转器123开始从包含前面的字的所指示的物理存储装置读取。在各种实施例中,指示是标识物理存储装置的位模式,例如,两位的位模式可以指示多达四个物理存储装置(00、01、10和11),三位的位模式可以指示多达八个物理存储装置,依此类推。在实施例中,逻辑存储器控制器502随机地或伪随机地为前面的字选择物理存储装置。在另一实施例中,逻辑存储器控制器502基于从其接收到写入命令的令牌组或入口接口来选择物理存储装置(例如,令牌组130在物理存储装置1处开始,令牌组132在物理存储装置处开始)。
在图4和图5所示的实施例中,由逻辑存储装置A接收同时写入命令510和520,并且将写入命令的所接收的分组的部分存储为跨越物理存储装置1到4的相应多字单元。多字单元的每个字被存储在逻辑存储装置的不同物理存储装置中。如图5所示,令牌组130为要被存储在第一地址位置530中的单元W提供写入命令510。在实施例中,存储器旋转器123将多字单元W划分为四个单独的字(W.0、W.1、W.2和W.3)并将每个字写入到不同的物理存储装置。令牌组136为要被存储在第二地址位置532中的单元Y提供写入命令520。在实施例中,存储器旋转器123将多字单元Y划分为四个单独的字(Y.0、Y.1、Y.2和Y.3)并将每个字写入到不同的物理存储装置。
在实施例中,存储器旋转器123在单个写入周期期间存储多字单元的每个字,并且因此每个多字单元在四个连续写入周期的周期内被存储。对于每个写入命令,存储器旋转器123在写入周期期间仅利用一个物理存储装置,并且因此存储器旋转器123被配置为通过引导相同写入周期内的不同写入命令的字至不同的物理存储装置,来处理四个分离的写入命令(例如来自不同的令牌组)。
在图5所示的实施例中,存储器旋转器123将字W.0存储在物理存储器2的第一存储器地址位置530-2处,并且在第一写入周期期间同时将字Y.0存储在物理存储器4的第二存储器地址位置532-4处。在随后的第二写入周期中,存储器旋转器123将字W.1存储在物理存储器3的第一存储器地址位置530-3处,并同时将字Y.1存储在物理存储器1的第二存储器地址位置532-1处。在第三写入周期中,存储器旋转器123将字W.2存储在物理存储器4的第一存储器地址位置530-4处,并同时将字Y.2存储在物理存储器2的第二存储器地址位置532-2处。在第四写入周期中,存储器旋转器123将字W.3存储在物理存储器1的第一存储器地址位置530-1处,并同时将字Y.3存储在物理存储器3的第二存储器地址位置532-3处。在其他实施例中,存储器旋转器123存储来自令牌组130、132、134和/或136的一个、三个或四个同时写入命令的多字单元。在其他实施例中,逻辑存储装置A包括不同数目的物理存储装置,例如,八个物理存储装置,并且因此存储器旋转器123被配置为在八个写入周期内同时存储多达八个多字单元,每个写入周期多字单元具有跨越八个物理存储装置的八个字
在各种实施例中,网络设备100的逻辑存储装置从网络设备100的出口端口(例如,端口113,115,116,119)接收用于单元的读取命令。在实施例中,出口端口不是令牌组的成员,并且读取命令由每个物理存储装置以写入命令未使用的周期处理。在写入命令之间处理读取命令的情况下,对读取命令的数据响应具有随机(例如,统计)的延迟。在该实施例中,在等待逻辑存储装置处理读取命令时出口端口的延迟是无限制的,因为逻辑存储装置可以由入口端口连续写入。在一些场景中,当分组跨越不同逻辑数据单位的多个单元时,基于逻辑数据单位是否被入口接口写入,数据响应被乱序地提供。
在实施例中,存储器访问令牌池的每个存储器访问令牌对应于一组逻辑存储装置,例如,一组两个、三个或更多个逻辑存储装置。在该实施例中,入口接口仅写入该组逻辑存储装置中的一个逻辑存储装置,因此该组的剩余逻辑存储装置是空闲的并且可以执行读取命令。在实施例中,入口接口在该组逻辑存储装置的逻辑存储装置之间为写入命令交替,并且获得剩余逻辑存储装置上的读取操作的改进的性能。
在一些场景中,对应于写入命令的分组或其部分不填充整个单元。作为示例,在单元包括四个256位字的情况下,750位分组填充四字单元的三个字,因为前面三个字提供了768位的存储,留下剩余的第四字和剩余的第四周期。作为另一示例,在单元包括总共1024位的四个256位字的情况下,2400位分组占用两个完整单元(2×1024位),并且该分组的352位占用第三单元的两个字,留下剩余的第三和第四个字和剩余的第三和第四周期。在实施例中,逻辑存储装置被配置为在剩余周期期间执行读取命令。在一些场景中,在剩余周期期间执行读取命令使得写入访问优先于读取访问,这降低了传入分组拥塞的可能性,因为它们不会被读取访问延迟。
图6是图示了根据实施例的用于在与分组相对应的数据由分组处理器处理以至少确定网络设备的通过其传送分组的出口接口的同时,存储在网络设备的多个入口接口处接收到的分组的示例方法600的流程图。在实施例中,方法600由根据实施例的网络设备100实现。参考图1,在实施例中,方法600由存储器控制器200实现。
在实施例中,在框602处,将存储器访问令牌的第一池的单独存储器访问令牌选择性地分配给多个入口接口中的数个入口接口,以管理对多个存储装置的写入访问。多个入口接口之间的入口接口分别被分配至少一个存储器访问令牌,并且将分组写入到由对应的已分配的一个或多个存储器访问令牌标识的多个存储装置的存储装置。在图2所示的实施例中,例如,存储器控制器200将存储器访问令牌A和D分配给对应于地址生成器210的第一入口接口(端口组110),将存储器访问令牌C分配给对应于地址生成器211的第二入口接口(端口组111),并将存储器访问令牌B和E分配给对应于地址生成器212的第三入口接口(端口组112)。在实施例中,存储装置被保留用于对应的存储器访问令牌的持有者。
在实施例中,在框604处,在多个入口接口的第一入口接口处接收分组。
在一些实施例中,在框606处,确定存储分组的多个存储装置的所保留的存储装置的存储器地址。所保留的存储装置由被分配给入口接口的存储器访问令牌标识。在实施例中,例如,地址生成器210从分配的存储器访问令牌A和D中选择存储器访问令牌A,并确定对应的逻辑存储装置A的存储器地址,如以上关于图2所描述的。
在实施例中,在框608处,将分组或其一部分存储在所保留的存储装置的存储器地址处。在实施例中,例如,存储器控制器200将多字单元W存储在逻辑存储装置A中,如以上关于图5所描述的。
在一些实施例中,在框610处,在分组被存储之后,将存储器访问令牌重新分配给多个入口接口中的不同入口接口。例如,令牌分配控制器230将存储器访问令牌A重新分配给对应于地址生成器211的第二入口接口。
本发明的其他方面涉及以下条款中的一个或多个。
在实施例中,一种网络设备包括:多个入口接口;多个存储装置,被配置为在与在多个入口接口处接收到的分组相对应的数据由分组处理器处理以至少确定网络设备的通过其传送分组的出口接口的同时,存储分组;存储器访问令牌的第一池,与多个存储装置的相应存储装置相对应的存储器访问令牌的第一池中的数个存储器访问令牌和访问令牌中的数个访问令牌在第一池内是不同的;以及实现存储器控制器的一个或多个集成电路。一个或多个集成电路被配置为:选择性地将第一池的单独存储器访问令牌分配给多个入口接口中的数个入口接口,以管理对多个存储装置的写入访问,其中多个入口接口之中的入口接口分别被分配至少一个存储器访问令牌,并将分组写入到由对应的已分配的一个或多个存储器访问令牌标识的多个存储装置的存储装置。一个或多个集成电路被配置为:基于访问非顺序存储装置的写入访问方案,将来自多个入口接口的第一入口接口的第一池的第一存储器访问令牌重新分配给来自第一入口接口的连续写入命令之间的多个入口接口的第二入口接口。。
在其他实施例中,网络设备包括以下特征中的一个或多个的任何合适的组合。
一个或多个集成电路被配置为:保留多个存储装置中的存储装置并且确定所保留的存储装置的存储器地址,在所保留的存储装置处存储在分配了第一存储器访问令牌的第一入口接口处接收到的分组的至少一部分,其中所保留的存储装置由第一存储器访问令牌标识并且保留以用于由分配了第一存储器访问令牌的入口接口进行的写入命令。一个或多个集成电路被配置为生成写入命令,该写入命令包括所接收到的分组的至少一部分并且标识i)所保留的存储装置,以及ii)存储器地址。
多个入口接口包括多组入口接口。多个组中的数个组与存储器访问令牌的相应池相对应。存储器访问令牌的池中的数个存储器访问令牌与多个存储装置的相应存储装置相对应并且在对应池内是不同的。存储器控制器还被配置为仅在对应组的入口接口的入口接口之中重新分配存储器访问令牌的池中的存储器访问令牌。
多个存储装置中的每个存储装置被配置用于由入口接口进行的同时写入访问,对应池的存储器访问令牌中的对应的存储器访问令牌已被分配到该入口接口。
多个存储装置之中的相应存储装置是逻辑存储装置,该逻辑存储装置由入口接口作为单个存储装置访问。相应的逻辑存储装置包括各自独立可访问的多个物理存储装置。
存储器访问令牌的相应池中的每个池内的每个存储器访问令牌对应于多个逻辑存储装置中的逻辑存储装置。多个存储装置中的每个逻辑存储装置被配置为处理来自多达与每个逻辑存储装置具有的物理存储装置相同的数目的组的入口接口的同时写入命令。
一个或多个集成电路被配置为将所接收到的同时写入命令的分组的部分存储为跨越物理存储装置的相应多字单元。多字单元的每个字被存储到对应的逻辑存储装置的不同物理存储装置。
一个或多个集成电路被配置为在对应的逻辑存储装置的不同物理存储装置中存储同时写入命令的多字单元的相应的前面的字。
第一入口接口被配置为在对应的存储装置的写入命令正在进行的同时锁定第一存储器访问令牌以免重新分配。
一个或多个集成电路被配置为将多个存储器访问令牌分配给第一入口接口,并且其中来自第一入口接口的写入命令的所保留的存储装置被配置为在已分配的存储器访问令牌之间交替。
在另一实施例中,一种用于在与在网络设备的多个入口接口处接收到的分组相对应的数据由分组处理器处理以至少确定网络设备的通过其传送分组的出口接口的同时,存储分组的方法包括:由网络设备的存储器控制器选择性地将存储器访问令牌的第一池中的单独存储器访问令牌分配给多个入口接口中的数个入口接口,以管理对多个存储装置的写入访问,其中多个入口接口之中的入口接口分别被分配至少一个存储器访问令牌,并将分组写入到由对应的已分配的一个或多个存储器访问令牌标识的多个存储装置的存储装置;在多个入口接口的第一入口接口处接收分组;确定多个存储装置的所保留的存储装置的存储器地址,在所保留的存储装置处存储分组的至少一部分,其中所保留的存储装置由被分配给入口接口的存储器访问令牌识别;将分组的一部分存储在所保留的存储装置的存储器地址处;以及在分组的一部分已经被存储后,由存储器控制器将存储器访问令牌重新分配给多个入口接口的不同入口接口。
在其他实施例中,该方法包括以下特征中的一个或多个的任何合适组合。
存储分组包括生成写入命令,该写入命令包括分组的一部分并且标识i)所保留的存储装置,以及ii)存储器地址。
多个入口接口包括多组入口接口。多个组中的数个组与存储器访问令牌的相应池相对应。存储器访问令牌的池中的数个存储器访问令牌与多个存储装置的相应存储装置相对应并且在对应的池内是不同的。重新分配存储器访问令牌包括仅在对应组的入口接口的入口接口之中重新分配存储器访问令牌的相应池中的存储器访问令牌。
该方法还包括由不同的入口接口同时写入到多个存储装置的存储装置,与该存储装置相对应的存储器访问令牌已被分配到该入口接口。
多个存储装置中的每个存储装置是逻辑存储装置,该逻辑存储装置由入口接口作为单个存储装置访问。同时写入到存储装置包括:由不同的入口接口的每个入口接口同时写入到逻辑存储装置的相应的独立可访问的物理存储装置。
同时写入到逻辑存储装置包括:同时向来自多达与逻辑存储装置的物理存储装置相同的数目的组的入口接口的、向逻辑存储装置的同时写入命令。
同时写入到逻辑存储装置包括:将所接收到的分组的部分存储为跨越物理存储装置的相应多字单元,其中多字单元的每个字被存储到对应的逻辑存储装置的不同物理存储装置。
将所接收的分组的部分存储为相应的多字单元包括:将同时写入命令的多字单元的相应的前面的字存储在对应的逻辑存储装置的不同的物理存储装置中。
该方法还包括由第一入口接口在对应的存储装置的写入命令正在进行中的同时锁定第一存储器访问令牌以免重新分配。
该方法还包括将多个存储器访问令牌分配给第一入口接口。确定多个存储装置的所保留的存储装置的存储器地址包括在由多个存储器访问令牌标识的不同的所保留的存储装置之间交替。
可以利用硬件、执行固件指令的处理器、执行软件指令的处理器或其任何组合来实现上述各种块、操作和技术中的至少一些。当利用执行软件或固件指令的处理器实现时,软件或固件指令可以被存储在任何计算机可读存储器中,诸如在磁盘、光盘或其他存储介质上,在RAM或ROM或闪存、处理器、硬盘驱动器、光盘驱动器、磁带驱动器中。软件或固件指令可以包括机器可读指令,机器可读指令在由一个或多个处理器执行时使得一个或多个处理器执行各种动作。
当以硬件实现时,硬件可以包括分立组件、集成电路、专用集成电路(ASIC)、可编程逻辑器件(PLD)等中的一个或多个。
尽管已经参考具体实施例描述了本发明,这些实施例仅旨在说明而不是对本发明的限制,可以对所公开的实施例进行改变、添加和/或删除而不脱离本发明的范围。

Claims (20)

1.一种网络设备,包括:
多个入口接口;
多个存储装置,被配置为对在所述多个入口接口处接收到的分组进行存储,与此同时与所述分组相对应的数据由分组处理器处理以至少确定所述网络设备的出口接口,通过所述出口接口将传送所述分组;
存储器访问令牌的第一池,与所述多个存储装置的相应存储装置相对应的存储器访问令牌的所述第一池中的数个存储器访问令牌和访问令牌中的数个访问令牌在所述第一池内是不同的;以及
实现存储器控制器的一个或多个集成电路,被配置为:
选择性地将所述第一池的单独存储器访问令牌分配给所述多个入口接口中的数个入口接口,以管理对所述多个存储装置的写入访问,其中所述多个入口接口之中的入口接口分别被分配至少一个存储器访问令牌,并将分组写入到由对应的已分配的一个或多个所述存储器访问令牌标识的所述多个存储装置的存储装置,以及
基于访问非顺序存储装置的写入访问方案,将来自所述多个入口接口的第一入口接口的所述第一池的第一存储器访问令牌重新分配给来自所述第一入口接口的连续写入命令之间的所述多个入口接口的第二入口接口。
2.根据权利要求1所述的网络设备,其中所述一个或多个集成电路被配置为:
保留所述多个存储装置中的存储装置并且确定所保留的所述存储装置的存储器地址,在所保留的所述存储装置处存储在分配了所述第一存储器访问令牌的所述第一入口接口处接收到的分组的至少一部分,其中所保留的所述存储装置由所述第一存储器访问令牌标识并且保留以用于由分配了所述第一存储器访问令牌的入口接口进行的写入命令;以及
生成写入命令,所述写入命令包括所接收到的分组的至少一部分并且标识i)所保留的所述存储装置,以及ii)所述存储器地址。
3.根据权利要求1所述的网络设备,其中:
所述多个入口接口包括多组入口接口,所述多组中的数个组与存储器访问令牌的相应池相对应,存储器访问令牌的所述池中的数个存储器访问令牌与所述多个存储装置的相应存储装置相对应并且在对应的池内是不同的;以及
所述存储器控制器还被配置为仅在对应组的入口接口的入口接口之中重新分配存储器访问令牌的池中的存储器访问令牌。
4.根据权利要求3所述的网络设备,其中所述多个存储装置中的每个存储装置被配置用于由入口接口进行的同时写入访问,对应池的所述存储器访问令牌中的对应的所述存储器访问令牌已被分配到所述入口接口。
5.根据权利要求4所述的网络设备,其中:
所述多个存储装置之中的相应存储装置是逻辑存储装置,所述逻辑存储装置由入口接口作为单个存储装置访问;以及
相应的所述逻辑存储装置包括各自独立可访问的多个物理存储装置。
6.根据权利要求5所述的网络设备,其中:
存储器访问令牌的所述相应池中的每个池内的每个存储器访问令牌对应于所述多个逻辑存储装置中的逻辑存储装置;以及
其中所述多个存储装置中的每个逻辑存储装置被配置为处理来自多达与每个逻辑存储装置具有的物理存储装置相同的数目的组的入口接口的同时写入命令。
7.根据权利要求5所述的网络设备,其中所述一个或多个集成电路被配置为将所接收到的同时写入命令的分组的部分存储为跨越所述物理存储装置的相应多字单元,所述多字单元的每个字被存储到对应的所述逻辑存储装置的不同物理存储装置。
8.根据权利要求7所述的网络设备,其中所述一个或多个集成电路被配置为在对应的所述逻辑存储装置的不同物理存储装置中存储同时写入命令的多字单元的相应的前面的字。
9.根据权利要求2所述的网络设备,其中所述第一入口接口被配置为在对应的所述存储装置的写入命令正在进行的同时锁定所述第一存储器访问令牌以免重新分配。
10.根据权利要求2所述的网络设备,其中所述一个或多个集成电路被配置为将多个存储器访问令牌分配给所述第一入口接口,并且其中来自所述第一入口接口的写入命令的所保留的所述存储装置被配置为在已分配的所述存储器访问令牌之间交替。
11.一种对在网络设备的多个入口接口处接收到的分组进行存储的方法,与此同时与所述分组相对应的数据由分组处理器处理以至少确定所述网络设备的出口接口,通过所述出口接口将传送所述分组,所述方法包括:
由所述网络设备的存储器控制器选择性地将存储器访问令牌的第一池中的单独存储器访问令牌分配给所述多个入口接口中的数个入口接口,以管理对所述多个存储装置的写入访问,其中所述多个入口接口之中的入口接口分别被分配至少一个存储器访问令牌,并将分组写入到由对应的已分配的一个或多个所述存储器访问令牌标识的所述多个存储装置的存储装置;
在所述多个入口接口的第一入口接口处接收分组;
确定所述多个存储装置的所保留的存储装置的存储器地址,在所保留的所述存储装置处存储所述分组的至少一部分,其中所保留的所述存储装置由被分配给所述入口接口的存储器访问令牌标识;
将所述分组的所述一部分存储在所保留的所述存储装置的所述存储器地址处;以及
在所述分组的所述一部分已经被存储后,由所述存储器控制器将所述存储器访问令牌重新分配给所述多个入口接口的不同入口接口。
12.根据权利要求11所述的方法,其中存储所述分组包括生成写入命令,所述写入命令包括所述分组的所述一部分并且标识i)所保留的所述存储装置,以及ii)所述存储器地址。
13.根据权利要求12所述的方法,其中:
所述多个入口接口包括多组入口接口,所述多组中的数个组与存储器访问令牌的相应池相对应,存储器访问令牌的所述池中的数个存储器访问令牌与所述多个存储装置的相应存储装置相对应并且在对应的池内是不同的;以及
重新分配所述存储器接口令牌包括仅在对应组的入口接口的入口接口之中重新分配存储器访问令牌的所述相应池中的存储器访问令牌。
14.根据权利要求13所述的方法,包括由不同的入口接口同时写入到所述多个存储装置的存储装置,与所述存储装置相对应的存储器访问令牌已被分配到所述入口接口。
15.根据权利要求14所述的方法,其中:
所述多个存储装置的每个存储装置是逻辑存储装置,所述逻辑存储装置由入口接口作为单个存储装置访问;以及
同时写入到所述存储装置包括:由所述不同的入口接口的每个入口接口同时写入到所述逻辑存储装置的相应的独立可访问的物理存储装置。
16.根据权利要求15所述的方法,其中同时写入到所述逻辑存储装置包括:来自多达与所述逻辑存储装置的物理存储装置相同的数目的组的入口接口的、向逻辑存储装置的同时写入命令。
17.根据权利要求15所述的方法,其中同时写入到所述逻辑存储装置包括:将所接收到的所述分组的部分存储为跨越所述物理存储装置的相应多字单元,所述多字单元的每个字被存储到对应的所述逻辑存储装置的不同物理存储装置。
18.根据权利要求17所述的方法,其中将所接收到的分组的部分存储为相应的多字单元包括:将同时写入命令的多字单元的相应的前面的字存储在对应的所述逻辑存储装置的不同的物理存储装置中。
19.根据权利要求12所述的方法,还包括由所述第一入口接口在对应的所述存储装置的写入命令正在进行的同时锁定所述第一存储器访问令牌以免重新分配。
20.根据权利要求12所述的方法,其中:
所述方法还包括将多个存储器访问令牌分配给所述第一入口接口;以及
确定所述多个存储装置的所保留的所述存储装置的所述存储器地址包括在由所述多个存储器访问令牌标识的不同的所保留的存储装置之间交替。
CN201780084274.5A 2016-12-07 2017-12-07 用于存储器访问令牌重新分配的系统和方法 Active CN110214437B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201662431238P 2016-12-07 2016-12-07
US62/431,238 2016-12-07
PCT/IB2017/001779 WO2018122619A2 (en) 2016-12-07 2017-12-07 System and method for memory access token reassignment

Publications (2)

Publication Number Publication Date
CN110214437A true CN110214437A (zh) 2019-09-06
CN110214437B CN110214437B (zh) 2023-04-14

Family

ID=62165591

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201780084274.5A Active CN110214437B (zh) 2016-12-07 2017-12-07 用于存储器访问令牌重新分配的系统和方法

Country Status (3)

Country Link
US (1) US10318449B2 (zh)
CN (1) CN110214437B (zh)
WO (1) WO2018122619A2 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11748253B1 (en) 2021-09-30 2023-09-05 Amazon Technologies, Inc. Address generation for page collision prevention in memory regions
US11789859B1 (en) * 2021-09-30 2023-10-17 Amazon Technologies, Inc. Address generation for page collision prevention

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5734926A (en) * 1992-07-15 1998-03-31 Advanced Hardware Architectures Direct memory access controller in an integrated circuit
CN1206526A (zh) * 1995-12-28 1999-01-27 德纳克公司 管理网络资源的方法和设备
US20020112178A1 (en) * 2001-02-15 2002-08-15 Scherr Allan L. Methods and apparatus for providing security for a data storage system
US20030095558A1 (en) * 2001-11-16 2003-05-22 Force 10 Networks, Inc. High efficiency data buffering in a computer network device
US20050138621A1 (en) * 2003-12-17 2005-06-23 International Business Machines Corporation Method of resource allocation using an access control mechanism
US20080077721A1 (en) * 2006-09-26 2008-03-27 Sony Computer Entertainment Inc. Methods And Apparatus For Dynamic Grouping Of Requestors Of Resources In A Multi-Processor System
US20130173849A1 (en) * 2011-12-29 2013-07-04 International Business Machines Corporation Write bandwidth management for flashdevices
CN104169935A (zh) * 2012-03-28 2014-11-26 索尼公司 信息处理装置、信息处理系统、信息处理方法及程序
US9306876B1 (en) * 2013-04-01 2016-04-05 Marvell Israel (M.I.S.L) Ltd. Multibank egress queuing system in a network device
US20160210248A1 (en) * 2015-01-20 2016-07-21 Fujitsu Limited Information processing system, method and medium

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FI104672B (fi) 1997-07-14 2000-04-14 Nokia Networks Oy Kytkinjärjestely
US7023840B2 (en) * 2001-02-17 2006-04-04 Alcatel Multiserver scheduling system and method for a fast switching element
US7305492B2 (en) 2001-07-06 2007-12-04 Juniper Networks, Inc. Content service aggregation system
US7096328B2 (en) * 2002-01-25 2006-08-22 University Of Southern California Pseudorandom data storage
US7177311B1 (en) 2002-06-04 2007-02-13 Fortinet, Inc. System and method for routing traffic through a virtual router-based network switch
US7602720B2 (en) * 2004-10-22 2009-10-13 Cisco Technology, Inc. Active queue management methods and devices
US7478220B2 (en) * 2005-06-23 2009-01-13 International Business Machines Corporation Method, apparatus, and product for prohibiting unauthorized access of data stored on storage drives
US20070121499A1 (en) * 2005-11-28 2007-05-31 Subhasis Pal Method of and system for physically distributed, logically shared, and data slice-synchronized shared memory switching
TWI330964B (en) * 2007-01-29 2010-09-21 Via Tech Inc Packet processing method and a network device using the method
CA2636833C (en) * 2007-06-21 2011-08-30 Maged E. Beshai Large-scale packet switch
US7924860B1 (en) 2008-12-23 2011-04-12 Juniper Networks, Inc. Maintaining data unit order in a network switching device
US8725873B1 (en) * 2010-08-10 2014-05-13 Marvell Israel (M.I.S.L) Ltd. Multi-server round robin arbiter
CN103004158B (zh) 2011-01-06 2016-12-28 马维尔以色列(M.I.S.L)有限公司 具有可编程内核的网络设备
US9455907B1 (en) 2012-11-29 2016-09-27 Marvell Israel (M.I.S.L) Ltd. Multithreaded parallel packet processing in network devices
US9553820B2 (en) 2012-12-17 2017-01-24 Marvell Israel (M.L.S.L) Ltd. Maintaining packet order in a parallel processing network device
WO2014096964A1 (en) * 2012-12-17 2014-06-26 Marvell Israel (M.I.S.L. ) Ltd. Maintaining packet order in a parallel processing network device
CN104871145A (zh) 2012-12-20 2015-08-26 马维尔国际贸易有限公司 网络设备中的存储器共享
WO2015036870A2 (en) 2013-09-10 2015-03-19 Marvell World Trade Ltd. Multi-stage interconnect network in a parallel processing network device
CN106537863B (zh) 2013-10-17 2019-11-26 马维尔国际贸易有限公司 用于并发地处理网络分组的方法和设备
WO2015056095A1 (en) 2013-10-17 2015-04-23 Marvell World Trade Ltd. Packet parsing and key generation in a network device
US9460019B2 (en) 2014-06-26 2016-10-04 Intel Corporation Sending packets using optimized PIO write sequences without SFENCEs
US9942169B1 (en) * 2014-12-02 2018-04-10 Adtran, Inc. Systems and methods for efficiently searching for stored data
US10146710B1 (en) * 2015-08-14 2018-12-04 Marvell Israel (M.I.S.L) Ltd. Multiple input multiple output arbiter device
US9977745B2 (en) * 2016-01-05 2018-05-22 Knuedge, Inc. Flow control through packet router

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5734926A (en) * 1992-07-15 1998-03-31 Advanced Hardware Architectures Direct memory access controller in an integrated circuit
CN1206526A (zh) * 1995-12-28 1999-01-27 德纳克公司 管理网络资源的方法和设备
US20020112178A1 (en) * 2001-02-15 2002-08-15 Scherr Allan L. Methods and apparatus for providing security for a data storage system
US20030095558A1 (en) * 2001-11-16 2003-05-22 Force 10 Networks, Inc. High efficiency data buffering in a computer network device
US20050138621A1 (en) * 2003-12-17 2005-06-23 International Business Machines Corporation Method of resource allocation using an access control mechanism
US20080077721A1 (en) * 2006-09-26 2008-03-27 Sony Computer Entertainment Inc. Methods And Apparatus For Dynamic Grouping Of Requestors Of Resources In A Multi-Processor System
US20130173849A1 (en) * 2011-12-29 2013-07-04 International Business Machines Corporation Write bandwidth management for flashdevices
CN104169935A (zh) * 2012-03-28 2014-11-26 索尼公司 信息处理装置、信息处理系统、信息处理方法及程序
US9306876B1 (en) * 2013-04-01 2016-04-05 Marvell Israel (M.I.S.L) Ltd. Multibank egress queuing system in a network device
US20160210248A1 (en) * 2015-01-20 2016-07-21 Fujitsu Limited Information processing system, method and medium

Also Published As

Publication number Publication date
WO2018122619A3 (en) 2018-08-23
WO2018122619A2 (en) 2018-07-05
US10318449B2 (en) 2019-06-11
US20180157606A1 (en) 2018-06-07
CN110214437B (zh) 2023-04-14

Similar Documents

Publication Publication Date Title
US5734649A (en) Data packet router
US7443836B2 (en) Processing a data packet
US7555579B2 (en) Implementing FIFOs in shared memory using linked lists and interleaved linked lists
US20070011396A1 (en) Method and apparatus for bandwidth efficient and bounded latency packet buffering
US8930595B2 (en) Memory switch for interconnecting server nodes
US7346067B2 (en) High efficiency data buffering in a computer network device
US7072342B1 (en) Reordering of out-of-order packets
JP2002344502A (ja) パケットバッファ
CN106209679A (zh) 用于使用多个链接的存储器列表的方法及装置
CN105993150A (zh) 增加网络设备中的分组处理速率
US9954771B1 (en) Packet distribution with prefetch in a parallel processing network device
US10248315B2 (en) Devices and methods for interconnecting server nodes
US10021035B1 (en) Queuing methods and apparatus in a network device
US20230185735A1 (en) Packet processing system, method and device utilizing a port client chain
CN110214437A (zh) 用于存储器访问令牌重新分配的系统和方法
US9658951B1 (en) Scalable high bandwidth memory in a network device
CN106027426A (zh) 防止欠载的分组存储器系统、方法和设备
EP1631906B1 (en) Maintaining entity order with gate managers
CN104412246B (zh) 用于从存储器到处理客户端提供复制数据的系统和方法
CN105446935B (zh) 共享存储并发访问处理方法及装置
US11704270B2 (en) Networked computer with multiple embedded rings
CN104247352B (zh) 一种用于存储信息单元的存储器系统及其方法
US9148270B2 (en) Method and apparatus for handling data flow in a multi-chip environment using an interchip interface
EP0023213B1 (en) Shared memory computer apparatus
US10540101B1 (en) Transmit buffer device for operations using asymmetric data widths

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
TA01 Transfer of patent application right

Effective date of registration: 20200512

Address after: Ford street, Grand Cayman, Cayman Islands

Applicant after: Kaiwei international Co.

Address before: Hamilton, Bermuda

Applicant before: Marvell International Ltd.

Effective date of registration: 20200512

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: 20200512

Address after: Hamilton, Bermuda

Applicant after: Marvell International Ltd.

Address before: Babado J San Mega Le

Applicant before: MARVELL WORLD TRADE Ltd.

TA01 Transfer of patent application right
GR01 Patent grant
GR01 Patent grant