CN110045922A - 网络设备和操作方法 - Google Patents
网络设备和操作方法 Download PDFInfo
- Publication number
- CN110045922A CN110045922A CN201910031443.XA CN201910031443A CN110045922A CN 110045922 A CN110045922 A CN 110045922A CN 201910031443 A CN201910031443 A CN 201910031443A CN 110045922 A CN110045922 A CN 110045922A
- Authority
- CN
- China
- Prior art keywords
- transmission buffer
- memory
- occupancy
- read
- read operation
- 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.)
- Pending
Links
- 238000011017 operating method Methods 0.000 title description 2
- 230000015654 memory Effects 0.000 claims abstract description 187
- 230000005540 biological transmission Effects 0.000 claims abstract description 129
- 238000000034 method Methods 0.000 claims description 36
- 230000009977 dual effect Effects 0.000 claims description 5
- 230000006399 behavior Effects 0.000 claims 1
- 230000001568 sexual effect Effects 0.000 description 7
- 230000001133 acceleration Effects 0.000 description 3
- 238000013459 approach Methods 0.000 description 3
- 230000003139 buffering effect Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000000151 deposition Methods 0.000 description 2
- 238000005315 distribution function Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 235000017060 Arachis glabrata Nutrition 0.000 description 1
- 241001553178 Arachis glabrata Species 0.000 description 1
- 235000010777 Arachis hypogaea Nutrition 0.000 description 1
- 235000018262 Arachis monticola Nutrition 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 235000020232 peanut Nutrition 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000007619 statistical method Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- 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
- G06F13/1673—Details of memory controller using buffers
-
- 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/061—Improving I/O performance
- G06F3/0613—Improving I/O performance in relation to throughput
-
- 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/0638—Organizing or formatting or addressing of data
-
- 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/0653—Monitoring storage devices or 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/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- 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/0671—In-line storage system
- G06F3/0673—Single storage device
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)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
一种网络设备包括具有多个存储器组的传送缓冲器、以及传送缓冲器控制器,传送缓冲器控制器被配置为:执行第一数目的写入操作,以将处理后的分组写入传送缓冲器的存储器组;监测传送缓冲器的占用率;以及当传送缓冲器的占用率至少等于阈值时,在每个存储器周期期间执行预定数目的读取操作,并且当传送缓冲器的占用率小于阈值时,在每个存储器周期期间执行大于预定数目的第二数目的读取操作。该设备使用多个端口在单个周期中并发地执行多个读取操作和多个写入操作。缓冲器控制器通过分配写入地址,在存储器组之间分发数据,以保持存储器占用率在存储器组之间基本上均匀,由此释放端口以允许读取操作的执行。
Description
相关申请的交叉引用
本申请要求2018年1月16日提交的共同未决的共同转让的美国临时专利申请No.62/617,972的权益,该临时专利申请据此通过引用以其整体被并入。
技术领域
本公开涉及一种存储器模块,其适合于用作数据交换设备中的传送缓冲器或传输FIFO。更特别地,本公开涉及一种传送缓冲器或传输FIFO,其可以在最坏情况条件下以至少预定或保证速率操作,但是在可能时可以以更高速率操作。
背景技术
本文提供的背景描述是用于总体上呈现本公开的上下文的目的。发明人的工作在该工作在该背景技术章节中所描述的范围内,以及该描述的在提交时可能在其他方面不够格作为现有技术的方面,既不明确地也不隐含地被承认为是针对本公开的现有技术。
网络交换设备以高数据速率和高带宽操作。为了维持设备之间的稳定通信,重要的是避免“欠载运行(underrun)”条件——即,存在不足数据要传输的情形,因为欠载运行条件可能使得远程设备在会话传输未完成时假定其完成,或者假定连接已经被破坏。在处理期间和之后,数据单元通常需要被写入网络设备(诸如交换机)中的存储器并且从其被读取。一些系统被设计为保证数据单元在处理之后可以以保证速率被写入传送缓冲器,该保证速率足以确保避免欠载运行。但是,向传送缓冲器提供某个保证写入速率的物理资源只能保证用于从传送缓冲器读取数据单元的较低速率。如果用于从存储器读取数据单元的速率要增加到高于某个可保证的读取速率,则在不增加系统资源而超出保证写入速率所需要的系统资源的情况下,或许不再有可能保证某个可保证的写入速率。然而,仍然可取的是,在最大可能的范围内利用允许某个保证写入速率的设备资源的已有容量,以努力接近对于读取操作和写入操作两者的“全线速度”。
发明内容
根据本公开的主题的实施方式,一种操作网络设备的方法包括:在每个存储器周期期间,执行第一数目的写入操作,以将处理后的分组数据写入传送缓冲器;监测传送缓冲器的占用率;以及当传送缓冲器的占用率至少等于阈值时,在每个存储器周期期间执行预定数目的读取操作以读取传送缓冲器中存储的分组数据,并且当传送缓冲器的占用率小于阈值时,在每个存储器周期期间执行第二数目的读取操作以读取传送缓冲器中存储的分组数据,第二数目大于预定数目。
在这样的方法的实施方式中,执行大于预定数目的第二数目的读取操作包括:使用多个端口在单个周期中并发地执行多个读取操作和多个写入操作。
在这样的实施方式中,在多个端口处在单个周期中并发地执行多个读取操作和多个写入操作包括:通过单个端口来执行两个或更多并发读取操作,并且使用纠错技术来重建要读取的数据。
在这样的方法的另一实施方式中,传送缓冲器具有一定数目的写入端口,并且第一数目是该一定数目的两倍。该方法还包括双重钟控传送缓冲器。
在这样的方法的第三实施方式中,传送缓冲器包括多个存储器组。该方法还包括:通过由传送缓冲器的存储器控制器对写入地址的分配,在存储器组之间分发数据,以保持存储器占用率在存储器组之间基本上均匀,由此释放端口以允许执行第二数目的读取操作。
在该第三实施方式的一个变体中,当传送缓冲器的占用率小于阈值时,在每个存储器周期期间执行大于预定数目的第二数目的读取操作,是仅在传送缓冲器的所有存储器组的占用率小于阈值时执行的。该方法还包括:当传送缓冲器的占用率小于阈值并且传送缓冲器的存储器组中的至少一个存储器组的占用率至少等于阈值时,在每个存储器周期期间执行预定数目的读取操作。
在第三实施方式的第二变体中,由传送缓冲器的存储器控制器分配写入地址,以控制在存储器组之间分发数据,以保持存储器占用率在存储器组之间基本上均匀,由此释放端口以允许执行第二数目的读取操作,是在分组写入的位置被确定时发生的。
这样的方法的第四实施方式还包括:由传送缓冲器的存储器控制器基于数据被读取的地址来分配写入地址,由此释放端口以允许执行第二数目的读取操作。
在这样的方法的第五实施方式中,读取操作的预定数目是写入操作的第一数目的一半。
根据本公开的主题的其他实施方式,一种被配置为处理从网络接收的网络分组的网络设备包括具有多个存储器组的传送缓冲器、以及传送缓冲器控制器,传送缓冲器控制器被配置为:在一系列存储器周期中的存储器周期期间,执行第一数目的写入操作,以将处理后的分组写入传送缓冲器的存储器组,监测传送缓冲器的占用率,以及当传送缓冲器的占用率至少等于阈值时,在每个存储器周期期间执行预定数目的读取操作,以读取传送缓冲器中存储的分组数据,并且当传送缓冲器的占用率小于阈值时,在每个存储器周期期间执行第二数目的读取操作,以读取传送缓冲器中存储的分组数据,第二数目大于预定数目。
在这样的实施方式中,网络设备被配置为:通过使用多个端口在单个周期中并发地执行多个读取操作和多个写入操作,来执行大于预定数目的第二数目的读取操作。
在该实施方式中,网络设备被配置为:通过经由单个端口执行两个或更多并发读取操作并且使用纠错技术重建要读取的数据,在多个端口处在单个周期中并发地执行多个读取操作和多个写入操作。
在第二实施方式中,网络设备还包括一定数目的写入端口。第一数目是该一定数目的两倍,并且传送缓冲器控制器还被配置为双重钟控每个存储器组。
在第三实施方式中,传送缓冲器控制器还被配置为:通过分配写入地址,在存储器组之间分发数据,以保持存储器占用率在存储器组之间基本上均匀,由此释放端口以允许执行第二数目的读取操作。
在该第三实施方式的第一变体中,传送缓冲器控制器被配置为:仅在传送缓冲器的占用率小于阈值并且存储器组中的每个存储器组的占用率小于阈值时,在每个存储器周期期间执行大于预定数目的第二数目的读取操作,并且传送缓冲器控制器还被配置为:当传送缓冲器的占用率小于阈值并且存储器组中的至少一个存储器组的占用率至少等于阈值时,在每个存储器周期期间执行预定数目的读取操作。
在该第三实施方式的第二变体中,传送缓冲器控制器还被配置为:当分组写入的位置被确定时分配写入地址,以控制在存储器组之间的数据分发,以保持存储器占用率在存储器组之间基本上均匀,由此释放端口以允许执行第二数目的读取操作。
在该第三实施方式的第三变体中,传送缓冲器具有标称传送缓冲器大小加上备用容量,备用容量等于标称传送缓冲器大小的50%。在该第三变体中,每个存储器组可以具有标称组大小加上备用容量,备用容量等于标称组大小的50%。
在第四实施方式中,传送缓冲器控制器还被配置为:基于数据被读取的地址来分配写入地址,由此释放端口以允许执行第二数目的读取操作。
在第五实施方式中,读取操作的预定数目是写入操作的第一数目的一半。
附图说明
一经结合附图考虑以下详细描述,本公开的另外的特征、其性质和各种优点将是明显的,在附图中,相似的参考字符始终指代相似的部分,并且在附图中:
图1是根据本公开的主题的实施方式的包含传送缓冲器的网络交换设备的表示;
图2是根据本公开的传送缓冲器的实施方式的内部结构的表示;以及
图3是根据本公开的主题的实施方式的方法的流程图,其用于确定是以确定性模式还是以概率性模式来执行读取操作。
具体实施方式
为了在概率上确保在接近全线速度时可以避免欠载运行,本公开的主题的实施方式提供了一种传送缓冲器,也称为“传输FIFO(TXFIFO)”,其提供每存储器周期可以执行的保证数目的写入操作、以及读取操作的数目的确定性底限(以维持用于传输的数据的输出以避免欠载运行),同时提供了“尽力而为”的可能性或者概率性的“加速”,以能够每存储器周期执行更多的读取操作(以接近全线速度)。
根据本公开的主题的实施方式的传送缓冲器从交换设备的分组缓冲器接收分组数据,以用于随后传输到交换设备之外至网络上的某个其他设备。从分组缓冲器接收的数据被写入传送缓冲器以用于暂时存储,直到它可以根据其报头信息被传输到交换设备之外。通常,交换设备的物理资源被配置为:保证新处理的分组数据可以与交换设备的分组处理器能够供应准备好传输的已处理分组数据一样快地被写入传送缓冲器。
为了防止出现欠载运行,还应当存在用于传输到交换设备之外的最小或预定读取速率。在一些实施方式中,相同的物理资源(诸如端口)被用来从传送缓冲器读取和向其写入分组数据。然而,虽然某些物理资源可以能够保证特定的写入速率,即,对应于分组可以由分组处理器处理和供应给输入侧的传送缓冲器的最大速率,但是这些相同的资源只能保证从传送缓冲器在输出侧的较低读取速率。如果使用提供保证的写入速率的那些相同资源的读取速率将增加到可保证的读取速率以上,则写入速率必然会降低到先前保证的写入速率以下。为了接近写入操作和读取操作两者以系统资源使能的最大速率被执行的全线速度,读取速率应当每当在可能时超过该预定的可保证的读取速率。
超过预定的可保证的读取速率的能力取决于在传送缓冲器的存储器组上具有可用端口。这进而取决于存储器组的占用率,即所使用的每个存储器组的存储容量的分数。例如,共同转让的美国专利8,514,651和共同转让的美国专利公开2016/0328158(其每个据此以它的相应整体通过引用并入本文)描述了使用XOR纠错技术在单个端口处在单个周期中执行多个读取操作和写入操作的相应技术。不管是否使用XOR纠错,在一些多组存储器系统中,每个组能够在存储器组中执行一个数目的同时存储器操作;该数目被通向该存储器组的物理端口的数目所限制。当读取操作需要从位于特定存储器组中的预定地址读取数据时,通向该存储器组的存储器访问端口被读取操作占用。写入操作不能使用正被用于执行读取操作的存储器访问端口并发地被执行。因此,写入操作使用未被同时读取操作或写入操作占用的端口来写入多组存储器系统中的存储器组,并且随后返回数据被写入的位置的地址。因此,随着存储器组的占用率增加,存在统计上增大的可能性:该存储器组的一些端口将不可用于执行同时写入操作,例如,因为端口已经正被用于读取操作。
确定性地保证最小数据速率在设备面积和功耗方面强加了成本。某个确定性写入速率应当被提供(因为必须能够在传送缓冲器中存储系统已经指定用于传输的任何数据,例如,处理后的分组数据),同时为了防止欠载运行,将被传输到传送缓冲器之外的数据的某个最小读取速率也应当被提供。因此,根据本公开的主题的实施方式,保证的最小确定性读取速率被提供,并且更高的读取速率在可能时被实现。
为了最小化上述在面积和功耗方面的成本,根据本公开的主题的实施方式的传送缓冲器被构造为允许某个预定的、保证的、确定性的写入速率、以及某个最小或预定的、保证的、确定性的读取速率。预定的保证的读取速率小于预定的写入速率,但是通过概率地控制传送缓冲器内的存储器组之间的数据分发,传送缓冲器将能够在很大部分的时间期间,以高于预定的保证的读取速率并且接近写入速率的读取速率进行操作。
在本公开的主题的实施方式中,保证的最小的确定性的读取速率对应于如下读取操作的数目,其可以在单个存储器周期中被提供,同时基于统计分析仍然确定性地保证存储器周期中的最小数目的写入操作。在一种实施方式示例中,当多组存储器的充满度或占用水平相对低,并且数据在多组系统的存储器组之间被分发时,大于读取操作的保证的最小数目的增加数目的同时读取操作通常可以被服务,而不减少保证的同时写入操作的数目。同时读取操作的增加数目由以下所约束:基于多组存储器系统中的任何特定存储器组的物理端口的数目,在存储器周期中可以执行的可能的同时读取操作的最大数目。虽然存储器周期可以与时钟周期相同,但是本公开的主题不限于这样的实施方式,并且传送缓冲器的存储器周期可以与网络交换设备的时钟异步。
图1示出了根据本公开的主题的实施方式的包含至少一个传送缓冲器(TXFIFO)101的网络交换设备100的传输部分或出口部分。图1中示出的网络交换设备100的实施方式包括端口组102。端口组102可以是双向的,但是只有端口组102的传输功能或出口功能与本公开相关。此外,尽管图1示出了一个传送缓冲器101和一个端口组102,但是在本公开的主题的范围内的其他实施方式可以具有其他数目的端口组102和其他数目的传送缓冲器101。另外,端口组102与传送缓冲器101的比率可以不同于一对一。
传输请求生成器103向传输队列104发出请求(REQ)以发起针对分组的传输或传出过程。传输队列104将分组描述符(DESC)返回到传输请求生成器103,传输请求生成器103进而向分组缓冲器105发出单元请求(Cell REQ)。传输请求生成器103还将具有单元标签的分组描述符(DESC)转发到传送缓冲器101的描述符存储器111。分组缓冲器105将有效载荷响应返回到传送缓冲器101,有效载荷响应包括直到传送缓冲器101的传输逻辑131向字缓冲器121发出读取请求(RD REQ)时存储在传送缓冲器101的字缓冲器121中的有效载荷数据。在141处,传输逻辑131还使用描述符信息将从字缓冲器121读出的有效载荷数据与报头数据相匹配。组装的网络分组(包括报头数据和有效载荷数据)然后经由端口组102被传输。
图2中示出了根据本公开的实施方式的传送缓冲器101的字缓冲器121的实施方式200的内部结构。
字缓冲器200包括六个存储器组——组0(210)、组1(220)、组2(230)、组3(240)、组4(250)和组5(260)——在一个实施方式中,每个组具有150×32=4800字节的容量。每个存储器组210-260被示出为四端口存储器,但是在替代实施方式中,可以是双重钟控(double-clocked)的双端口存储器。尽管每个存储器组210-260具有4800字节的容量,但是根据本公开的实施方式,每个存储器组210-260具有仅3200字节的标称容量,具有50%以上标称容量的备用容量,以便实施允许字缓冲器200接近全线速度的概率性加速。
通常,每个存储器组210-260以其实际容量的大约三分之二的标称占用率操作。然而,有可能的是,在极端情况下,尽管字缓冲器200作为整体的占用率处于或接近标称容量(其为实际容量的三分之二),但是存储器组210-260中的四个处于或接近实际容量,而存储器组中的两个为空或接近为空。注意,也可能存在其间的情形。无论占用率的分布如何,字缓冲器200进行操作以允许保证的确定性数目的写入操作、以及期望超过的最小保证数目的读取操作。
字缓冲器200还包括实施分发功能的控制器201,该分发功能确定存储器组210-260中的哪个接收从分组缓冲器105发送的用于传输到网络交换设备100之外的每个分组有效载荷或有效载荷部分(“块”)。字缓冲器200还返回分组ID(PID),分组ID向传输逻辑131通知特定分组或块已经被写入字缓冲器200中的何处。
如上文阐述的,在每个存储器周期,传送缓冲器101需要能够支持保证的确定性数目的写入202、以及保证的最小确定性数目的读取203。作为示例,每存储器周期的确定性数目的写入202是每存储器周期八个写入,而每存储器周期的最小确定性数目的读取203是每存储器周期四个读取。然而,这些数目仅是示例并且实际数目可以更大或更小。此外,每存储器周期的确定性数目的写入202与每存储器周期的最小确定性数目的读取203的2:1比率也仅是示例。每存储器周期的确定性的写入数目202通常将超过每存储器周期的保证的最小确定性的读取数目203。可以保证的写入数目202是以下各项的函数:存储器组的数目、每个存储器组的大小、和每个存储器组的占用水平、以及由于用来从传送缓冲器101读取分组而不能用于写入(当分组需要被读取时,读取被给予优先性)的端口的数目。
根据本公开的主题的实施方式,当读取请求被发送到分组缓冲器105时,传送缓冲器101中的响应-写入技术不预先分配存储器组210-260中的地址。相反,仅当要例如使用诸如在前述共同转让的美国专利公开2016/0328158中描述的技术将分组实际写入存储器组210-260中时,写入地址才被分配或确定,根据该技术,控制器201而不是外部主机或客户端确定存储器地址。以该方式,有可能在存储器组210-260之间最佳地分发写入,而同时维持保证的最小读取数目203,而不管数据位于存储器组210-260之中的何处。
写入分发在该实施方式中由控制器201在字缓冲器200内部处理。根据本公开的主题的实施方式,控制器201的写入分发功能监测存储器组210-260中的每个存储器组处的自由端口的数目、以及它们的例如由填充监测器211确定的占用水平221。基于存储器组210-260中的每个存储器组处的自由端口的数目和占用水平,通过最大可能程度地在存储器组210-260之间平衡占用水平的方式来分配写入地址,写入操作在存储器组210-260之间概率地被分配。
如果存储器组210-260中的任何一个变得太满,则写入操作将不成比例地被定向到存储器组210-260中的其他存储器组,这可能与存储器组210-260中的这些其他存储器组处的读取操作相冲突。因为读取操作具有优先权,如果在存储器组210-260中的这些其他存储器组处发生读取操作,则可能无法执行保证的最小数目的写入操作,而导致数据错误。概率地平衡存储器组210-260之间的占用水平防止了存储器组210-260中的任何一个变得太满,而避免了这样的情形。此外,针对高于保证的最小确定性的读取速率的总读取速率,在存储器组210-260中的每个处将释放更多端口用于读取,从而除了每存储器周期的保证的最小数目的读取操作203之外,还允许附加的尽力而为读取204。
尽管控制器201试图通过分配写入地址以释放端口用于高于最小确定性速率的读取操作来平衡存储器组210-260之中的写入操作,但是仍然会出现写入操作变得不平衡和存储器组210-260中的至少一个的占用率超过期望水平的情形。在这样的情况下,字缓冲器200可能必须恢复到确定性操作,每存储器周期执行预定的最小数目的读取操作203,因为可能没有足够的自由端口用于附加的读取操作。
作为字缓冲器200可能必须恢复到确定性操作的此类情形的一个示例,如果存在来自存储器组210-260中的特定的一个或多个存储器组的繁重读取活动,则其将减小存储器组210-260中的该一个或多个存储器组处的用于写入操作的端口可用性,特别是在如上文描述的系统中,其中相同的端口可以用于读取和写入两者。在该情况下,将必须通过把写入地址不成比例地分配给存储器组210-260中的其他存储器组来定向写入操作,使得存储器组210-260中的这些其他存储器组的占用率可能超过期望水平。
如上文指出的,存储器组210-260中的每个可以具有高于其标称容量的备用容量——例如,标称容量以上的50%的标称容量(即,标称容量的150%的总容量)。作为字缓冲器200可能必须恢复到确定性操作的情形的另一示例,在占用率不平衡的极端情况下,存储器组210-260中的四个可能处于最大容量(包括备用容量),而存储器组210-260中的两个可以为空。字缓冲器200在该情况下将处于标称容量,但是由于占用率不平衡(不是存储器组210-260中的仅一个而是四个高于标称占用率),字缓冲器200将恢复到确定性操作,其中每存储器周期仅发生预定最小数目的读取操作203。
尽管在前面的讨论中,焦点在于存储器组210-260之间的数据分发是否平衡,但是在实践中,在一些实施方式中,控制器201检查更客观的标准,诸如字缓冲器200的占用率是超过还是小于阈值,该阈值可以是容量的预定分数,诸如85%。当字缓冲器200的占用率至少等于阈值时,字缓冲器200以确定性模式操作,每存储器周期执行保证的最小数目的读取操作。当字缓冲器200的占用率小于阈值时,字缓冲器200以上文描述的概率性模式操作,以在尽力而为的基础上提供附加的读取。
如上文指出的,当通过概率地分配写入地址来分发写入操作时,所使用的写入端口的数目被最小化,以允许每存储器周期的多于保证的最小数目的读取操作被执行。在一些实施方式中,概率性模式中的每存储器周期的读取操作的总数目总是相同的数目,其大于每存储器周期的读取操作的保证的最小数目,例如,等于每存储器周期的写入操作的数目。在其他实施方式中,概率性模式中的每存储器周期的读取操作的数目将大于每存储器周期的读取操作的保证的最小数目,但是将从刚好高于每存储器周期的读取操作的保证的最小数目变化到每存储器周期的读取操作的某个最大数目,这取决于字缓冲器200的占用率小于阈值的程度。
在另外的实施方式中,控制器201不是基于字缓冲器200的总体占用率来确定是以确定性模式还是概率性模式操作,而是基于存储器组210-260中的任何一个的占用率至少等于或低于阈值,例如,实际容量的85%(包括备用容量,如果有的话),来确定是以确定性模式还是概率性模式操作。
图3是如上文描述的用于确定是以确定性模式还是概率性模式执行读取操作的控制器201的操作的一部分300的流程图。在301处,数据在字缓冲器200处被接收以被写入存储器组210-260以便最终传输到网络设备(诸如网络交换机)之外或从其传出。在302处,受制于基于当前读取活动水平的端口可用性(其可能使得数据不均等地被分发,在某些情况下,至少在暂时的时间段内),数据在存储器组210-260之间均等地被分发。
与301和302并行地,在311处,从存储器组210-260读出数据以用于传输出去的请求被接收。在312处,存储器组210-260中的一个或多个的占用率与阈值进行比较(如上文指出的,该比较可以是存储器组210-260的总占用率相对于阈值,或存储器组210-260中的任何一个的占用率相对于阈值)。如果在312处,(多个)存储器组210-260的占用率至少等于阈值,则在313处,保证的最小数目的读取操作在每个存储器周期期间被执行,并且方法300结束。如果在312处,(多个)存储器组210-260的占用率小于阈值,则在314处,在一种实施方式中基于上文描述的纠错技术的尽力而为数目的读取操作(附加于保证的最小数目)在每个存储器周期期间被执行,并且方法300结束。
在本公开的主题的实施方式中,上文描述的纠错技术用于增加可以通过给定端口执行的并发读取操作的数目。
注意,在本公开的主题的实施方式中,在存储器周期期间,313、314处的读取操作被给予优先性以访问读取存储器组中的一个或多个存储器组中存储的数据所需要的端口。与313、314中的任何一个处的读取操作一起在并发存储器周期中执行的301、302处的写入操作使用在并发周期中未用于读取操作的端口来执行,并且存储器控制器提供数据(诸如网络分组)被写入的组和存储器地址的指示(一旦被确定)。
因此,可以看到,提供了一种传送缓冲器或“传输FIFO(TXFIFO)”,其向每存储器周期可以执行的读取操作的数目提供保证的确定性底限(以维持用于传输的数据的输出以避免欠载运行),同时基于上述纠错技术和写入操作的概率分布提供了“尽力而为”“加速”的可能性,以便能够每存储器周期执行更多读取操作(以接近全线速度)。
如本文和随后的权利要求中使用的,“A和B之一”的结构应当意指“A或B”。
注意,前述内容仅说明本发明的原理,并且本发明可以通过除所描述的实施例之外的其他实施例来实践,所描述的实施例被呈现用于说明而非限制的目的,并且本发明仅由随后的权利要求来限制。
Claims (20)
1.一种操作网络设备的方法,所述方法包括:
在每个存储器周期期间,执行第一数目的写入操作以将处理后的分组数据写入传送缓冲器;
监测所述传送缓冲器的占用率;以及
当所述传送缓冲器的占用率至少等于阈值时,在每个存储器周期期间,执行预定数目的读取操作以读取所述传送缓冲器中存储的分组数据,以及
当所述传送缓冲器的占用率小于所述阈值时,在每个存储器周期期间,执行第二数目的读取操作以读取所述传送缓冲器中存储的分组数据,所述第二数目大于所述预定数目。
2.根据权利要求1所述的方法,其中执行大于所述预定数目的所述第二数目的读取操作包括:使用多个端口在单个周期中,并发地执行多个读取操作和多个写入操作。
3.根据权利要求2所述的方法,其中在所述多个端口处在所述单个周期中并发地执行多个读取操作和多个写入操作包括:通过单个端口来执行两个或更多并发读取操作,并且使用纠错技术来重建要读取的数据。
4.根据权利要求1所述的方法,所述传送缓冲器具有一定数目的写入端口,其中:
所述第一数目是所述一定数目的两倍;所述方法还包括:
双重钟控所述传送缓冲器。
5.根据权利要求1所述的方法,其中所述传送缓冲器包括多个存储器组,所述方法还包括:
通过由所述传送缓冲器的存储器控制器对写入地址的分配,在所述存储器组之间分发数据,以保持存储器占用率在所述存储器组之间基本上均匀,由此释放端口以允许执行所述第二数目的读取操作。
6.根据权利要求5所述的方法,其中:
当所述传送缓冲器的占用率小于所述阈值时,在每个存储器周期期间执行大于所述预定数目的第二数目的读取操作,是仅在所述传送缓冲器的所有所述存储器组的占用率小于所述阈值时执行的;所述方法还包括:
当所述传送缓冲器的占用率小于所述阈值,并且所述传送缓冲器的所述存储器组中的至少一个存储器组的占用率至少等于所述阈值时,在每个存储器周期期间执行所述预定数目的读取操作。
7.根据权利要求5所述的方法,其中由所述传送缓冲器的存储器控制器分配写入地址,以控制在所述存储器组之间分发数据以保持所述存储器占用率在所述存储器组之间基本上均匀,由此释放端口以允许执行所述第二数目的读取操作,是在分组写入的位置被确定时发生的。
8.根据权利要求1所述的方法,还包括:由所述传送缓冲器的存储器控制器基于数据被读取的地址来分配写入地址,由此释放端口以允许执行所述第二数目的读取操作。
9.根据权利要求1所述的方法,其中读取操作的所述预定数目是写入操作的所述第一数目的一半。
10.一种网络设备,被配置为处理从网络接收的网络分组,所述网络设备包括:
传送缓冲器,包括多个存储器组;以及
传送缓冲器控制器,被配置为:
在一系列存储器周期中的存储器周期期间,执行第一数目的写入操作以将处理后的分组写入所述传送缓冲器的存储器组;
监测所述传送缓冲器的占用率;以及
当所述传送缓冲器的占用率至少等于阈值时,在每个存储器周期期间,执行预定数目的读取操作以读取所述传送缓冲器中存储的分组数据,以及
当所述传送缓冲器的占用率小于所述阈值时,在每个存储器周期期间执行第二数目的读取操作,以读取所述传送缓冲器中存储的分组数据,所述第二数目大于所述预定数目。
11.根据权利要求10所述的网络设备,其中所述网络设备被配置为:通过使用多个端口在单个周期中并发地执行多个读取操作和多个写入操作,来执行大于所述预定数目的所述第二数目的读取操作。
12.根据权利要求11所述的网络设备,其中所述网络设备被配置为:通过经由单个端口执行两个或更多并发读取操作并且使用纠错技术重建要读取的数据,在所述多个端口处在所述单个周期中并发地执行所述多个读取操作和所述多个写入操作。
13.根据权利要求10所述的网络设备,还包括一定数目的写入端口;其中:
所述第一数目是所述一定数目的两倍;并且
所述传送缓冲器控制器还被配置为双重钟控每个存储器组。
14.根据权利要求10所述的网络设备,其中所述传送缓冲器控制器还被配置为:
通过分配写入地址在所述存储器组之间分发数据,以保持存储器占用率在所述存储器组之间基本上均匀,由此释放端口以允许执行所述第二数目的读取操作。
15.根据权利要求14所述的网络设备,其中:
所述传送缓冲器控制器被配置为:仅当所述传送缓冲器的占用率小于所述阈值并且所述存储器组中的每个存储器组的占用率小于所述阈值时,在每个存储器周期期间执行大于所述预定数目的所述第二数目的读取操作;并且
所述传送缓冲器控制器还被配置为:当所述传送缓冲器的占用率小于所述阈值并且所述存储器组中的至少一个存储器组的占用率至少等于所述阈值时,在每个存储器周期期间执行所述预定数目的读取操作。
16.根据权利要求14所述的网络设备,其中所述传送缓冲器控制器还被配置为:当分组写入的位置被确定时分配写入地址,以控制在所述存储器组之间的数据分发,以保持存储器占用率在所述存储器组之间的基本上均匀,由此释放端口以允许执行所述第二数目的读取操作。
17.根据权利要求14所述的网络设备,其中所述传送缓冲器具有标称传送缓冲器大小加上备用容量,所述备用容量等于所述标称传送缓冲器大小的50%。
18.根据权利要求17所述的网络设备,其中每个存储器组具有标称组大小加上备用容量,所述备用容量等于所述标称组大小的50%。
19.根据权利要求10所述的网络设备,其中所述传送缓冲器控制器还被配置为:基于数据被读取的地址来分配写入地址,由此释放端口以允许执行所述第二数目的读取操作。
20.根据权利要求10所述的网络设备,其中读取操作的所述预定数目是写入操作的所述第一数目的一半。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201862617972P | 2018-01-16 | 2018-01-16 | |
US62/617,972 | 2018-01-16 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110045922A true CN110045922A (zh) | 2019-07-23 |
Family
ID=67213991
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910031443.XA Pending CN110045922A (zh) | 2018-01-16 | 2019-01-14 | 网络设备和操作方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US10678718B2 (zh) |
CN (1) | CN110045922A (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11182090B2 (en) | 2018-11-19 | 2021-11-23 | Micron Technology, Inc. | Systems, devices, and methods for data migration |
US11256437B2 (en) * | 2018-11-19 | 2022-02-22 | Micron Technology, Inc. | Data migration for memory operation |
US11163473B2 (en) | 2018-11-19 | 2021-11-02 | Micron Technology, Inc. | Systems, devices, techniques, and methods for data migration |
US12120021B2 (en) * | 2021-01-06 | 2024-10-15 | Enfabrica Corporation | Server fabric adapter for I/O scaling of heterogeneous and accelerated compute systems |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050180250A1 (en) * | 2004-02-13 | 2005-08-18 | International Business Machines Corporation | Data packet buffering system with automatic threshold optimization |
JP2008228152A (ja) * | 2007-03-15 | 2008-09-25 | Victor Co Of Japan Ltd | データ圧縮記録装置およびデータ圧縮記録方法 |
CN102298580A (zh) * | 2010-06-22 | 2011-12-28 | Sap股份公司 | 使用异步缓冲器的多核查询处理 |
US20120012807A1 (en) * | 2010-07-16 | 2012-01-19 | Kabushiki Kaisha Toshiba | Semiconductor memory device |
CN102959913A (zh) * | 2010-07-02 | 2013-03-06 | 汤姆森特许公司 | 计算机系统和操作该计算机系统的方法 |
CN103827836A (zh) * | 2011-09-05 | 2014-05-28 | 华为技术有限公司 | 存储数据的方法和装置 |
CN104641361A (zh) * | 2012-09-18 | 2015-05-20 | 思科技术公司 | 实时且高分辨率缓冲占用监控和记录 |
CN104641608A (zh) * | 2012-09-18 | 2015-05-20 | 思科技术公司 | 超低延时网络缓冲存储 |
US20170264820A1 (en) * | 2016-03-14 | 2017-09-14 | Renesas Electronics Corporation | Semiconductor device, encoding control method and camera device |
US20170331752A1 (en) * | 2015-02-11 | 2017-11-16 | At&T Intellectual Property I, L.P. | Method and system for managing service quality according to network status predictions |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1114914C (zh) * | 1994-12-16 | 2003-07-16 | 德国汤姆逊-布朗特公司 | 抗振重放设备 |
US20040054776A1 (en) * | 2002-09-16 | 2004-03-18 | Finisar Corporation | Network expert analysis process |
GB0304052D0 (en) * | 2003-02-22 | 2003-03-26 | Hewlett Packard Development Co | Improved streaming in data storage drive |
-
2018
- 2018-10-30 US US16/174,951 patent/US10678718B2/en active Active
-
2019
- 2019-01-14 CN CN201910031443.XA patent/CN110045922A/zh active Pending
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050180250A1 (en) * | 2004-02-13 | 2005-08-18 | International Business Machines Corporation | Data packet buffering system with automatic threshold optimization |
JP2008228152A (ja) * | 2007-03-15 | 2008-09-25 | Victor Co Of Japan Ltd | データ圧縮記録装置およびデータ圧縮記録方法 |
CN102298580A (zh) * | 2010-06-22 | 2011-12-28 | Sap股份公司 | 使用异步缓冲器的多核查询处理 |
CN102959913A (zh) * | 2010-07-02 | 2013-03-06 | 汤姆森特许公司 | 计算机系统和操作该计算机系统的方法 |
US20120012807A1 (en) * | 2010-07-16 | 2012-01-19 | Kabushiki Kaisha Toshiba | Semiconductor memory device |
CN103827836A (zh) * | 2011-09-05 | 2014-05-28 | 华为技术有限公司 | 存储数据的方法和装置 |
CN104641361A (zh) * | 2012-09-18 | 2015-05-20 | 思科技术公司 | 实时且高分辨率缓冲占用监控和记录 |
CN104641608A (zh) * | 2012-09-18 | 2015-05-20 | 思科技术公司 | 超低延时网络缓冲存储 |
US20170331752A1 (en) * | 2015-02-11 | 2017-11-16 | At&T Intellectual Property I, L.P. | Method and system for managing service quality according to network status predictions |
US20170264820A1 (en) * | 2016-03-14 | 2017-09-14 | Renesas Electronics Corporation | Semiconductor device, encoding control method and camera device |
Also Published As
Publication number | Publication date |
---|---|
US10678718B2 (en) | 2020-06-09 |
US20190220425A1 (en) | 2019-07-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110045922A (zh) | 网络设备和操作方法 | |
US7249206B2 (en) | Dynamic memory allocation between inbound and outbound buffers in a protocol handler | |
US20070011396A1 (en) | Method and apparatus for bandwidth efficient and bounded latency packet buffering | |
CN100571195C (zh) | 多端口以太网交换装置及数据传输方法 | |
WO2004045161A1 (en) | Packet storage system for traffic handling | |
CN102377682A (zh) | 基于定长单元存储变长分组的队列管理方法及设备 | |
WO1999000738A1 (en) | Method and apparatus for dynamic queue sizing | |
JPH0675262B2 (ja) | メツセージ転送機構 | |
CN103946803A (zh) | 具有高效工作排队的处理器 | |
CN107018172A (zh) | 用于在分布式缓存存储器中自适应分区的系统和方法 | |
JP2004536515A (ja) | デュアルポートメモリエミュレーション方式によるスイッチファブリック | |
CN102929834A (zh) | 众核处理器及其核间通信的方法、主核和从核 | |
CN102971997B (zh) | 包括数据分段和数据描述分段的分组缓冲器 | |
CN103345451A (zh) | 一种在多核处理器中缓冲数据的方法 | |
US6138219A (en) | Method of and operating architectural enhancement for multi-port internally cached dynamic random access memory (AMPIC DRAM) systems, eliminating external control paths and random memory addressing, while providing zero bus contention for DRAM access | |
CN100539538C (zh) | 具有链表处理器的存储器管理系统 | |
CN114936171B (zh) | 存储访问控制器架构 | |
US10021035B1 (en) | Queuing methods and apparatus in a network device | |
CN101150525B (zh) | 缓存地址释放方法、系统及逻辑模块 | |
US10061513B2 (en) | Packet processing system, method and device utilizing memory sharing | |
US7755920B2 (en) | Electronic memory device | |
US9736069B1 (en) | Method for storing and retrieving packets in high bandwidth and low latency packet processing devices | |
US9128785B2 (en) | System and method for efficient shared buffer management | |
US8578194B2 (en) | Green mode data buffer control | |
US20050018492A1 (en) | Packet buffer circuit and method |
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 |