CN112400297A - 用于减少时延和缓存大小的传输缓存系统和传输缓存器操作方法 - Google Patents
用于减少时延和缓存大小的传输缓存系统和传输缓存器操作方法 Download PDFInfo
- Publication number
- CN112400297A CN112400297A CN201880095371.9A CN201880095371A CN112400297A CN 112400297 A CN112400297 A CN 112400297A CN 201880095371 A CN201880095371 A CN 201880095371A CN 112400297 A CN112400297 A CN 112400297A
- Authority
- CN
- China
- Prior art keywords
- transmission
- buffer
- packet
- data
- transmission buffer
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Communication Control (AREA)
Abstract
提供了一种传输缓存系统(1)。其包括传输缓存器(10)和传输控制器(11)。所述传输缓存器(10)用于从第一外部单元(20)接收数据包作为码流,在接收到所述码流时将其逐位存储,并且将存储的码流传输到第二外部单元(21)。所述传输控制器(11)用于确定由所述传输缓存器(10)存储的所述数据包的第一数据量,当所述第一数据量超过传输阈值时,控制所述传输缓存器(10)开始传输包括所述数据包的所述码流,控制所述传输缓存器(10)继续存储所述码流,直到所述传输控制器(11)确定整个数据包已成功传输为止,并且在缓存欠载的情况下控制所述传输缓存器(10)开始重新传输所述数据包。
Description
技术领域
本发明涉及用于在传输数据之前存储此数据的传输缓存器。特别地,本发明涉及交换机中的传输缓存器。
背景技术
在联网系统中,使用高容量和高带宽交换机。交换机含有多个双向端口。通常由以太网包组成的来自输入端口的到达业务基于交换机内做出的决策而指向输出端口。端口凭其端口速率而为人所知,所述端口速率对于输入和输出通常是相同的,即100Gbps端口(每秒100千兆比特)能够以100Gbps的速率接收业务并以100Gbps的速率发送业务。
交换机含有用于在业务发送到输出端口之前临时保留传入业务的存储器,要在交换机内保留业务的原因很多,例如:
1.多个输入端口接收指向单个输出端口(多对一)的业务,如果输出端口不能传递所有接收到的业务,则必须临时存储到达所述输出端口的一些接收到的业务
2.从交换机外部到输出端口的反压会阻止业务进一步流向所述输出端口,因此必须临时存储指向此端口的所有接收到的业务
3.输出端口的调度速率是交换机内的参数,所述参数可以用于限制某个端口的输出速率,因此必须临时存储指向此端口的接收到的业务
高容量和高带宽交换机中的存储器通常构建为共享存储器,也就是说,所述存储器在所有输出端口之间共享。与每个输出端口具有专用存储器相比,共享能力的主要好处是存储器更少。
来自不同输入端口的到达业务经过分类引擎以选择输出端口和相应的队列以存储接收到的业务。分类引擎还决定到达业务可能需要的任何编辑。在分类后,业务存储在存储器中以临时缓存接收到的业务。存储器实际上排列成队。由控制逻辑管理队列、缓存器管理和对输出端口功能的调度。所有接收到的业务都存储在存储器中并按队列进行管理。排队可以是任何方法,例如输入队列、输出队列、虚拟输出队列(virtual output queue,VOQ)等。
在高容量高带宽交换机中,存储器架构通常会在所有输出端口之间共享。这意味着可以将从任何输入端口接收到的指向任何输出端口的业务写入此共享存储器中。存在用于管理每个输出端口的存储器的算法。
这些交换机由单硅——即单个设备——构建,使得对共享存储器的所有高速访问都限于设备内部,而没有外部接口,而外部接口可能会使交换机不可能构建为单个设备。
所有端口之间共享的单个存储器块具有严格的带宽限制,例如,每个端口以100GbE运行的64端口交换机需要6.4Gbps的读取带宽和6.4Gbps的写入带宽,这对于使用单个存储器块实现是不切实际的。
一种可能的解决方案是使用一起充当共享存储器的多个存储器块。必要时,输入端口写入到存储器块,而输出端口从存储器块读取。
使用多个存储器块有两个步骤:
1.捆绑端口组(管道),使得在工作频率下以及在最坏情况业务情形下(100%负载和分段),选定的段大小C足以在每个时钟周期提供C而不会造成任何瓶颈
2.设置并行连接的M个存储器块,使得每个管道都可以访问存储器块以进行读取或写入
在每个时钟周期,每个输入管道可以请求对共享存储器的写入,而每个输出管道可以请求从共享存储器的读取。
为了正确操作,对于给定数量的管道P,存储器块的数量M应至少为2P个存储器块,使得P个读取和P个写入可以在同一时钟周期(同时)进行。
“排队引擎和控制”块在每个时钟周期接受来自所有入口管道的写入请求,并在每个时钟周期接受来自所有出口管道的读取请求。然后,所述排队引擎和控制块决定哪个出口管道执行读取以及从哪个存储器块读取,以及哪个入口管道执行写入以及写入到哪个存储器块。
从出口管道读取的顺序取决于调度算法,所述算法与包在存储器块中的放置无关,并且与其它出口管道的调度决策无关。
如果2个或更多出口管道请求从同一存储器块读取,则只有一个出口管道会授予读取权限,而其余出口管道将等待并且不会在此时钟周期执行读取。这种情况称为冲突。
由于读取必须按顺序,因为必须按照原始包的次序传输包的各个段,因此在典型的实施方案中,读取不能乱序。
在每个时钟周期,控制逻辑都会接受来自入口管道的W个写入请求和来自出口管道的R个读取请求(并非所有管道在每个时钟周期都请求读取或写入)。
然后,控制逻辑根据请求如下执行用于读取以及用于写入的存储器块的选择:
1.选择用于读取的存储器块
a.在请求读取(最多P个)的出口管道和相应的存储器块(M)之间执行最大匹配
b.应注意,由于可能发生冲突,并非所有读取请求都可以在同一时钟周期内得到支持
c.设置匹配对{出口管道、存储器块}
2.选择用于写入的存储器块
a.设置可用于写入的存储器块列表(M')
i.未选择用于读取且未满的任何存储器块
b.从M'列表中选择W个存储器块,并将每个存储器块附接到具有有效写入请求的入口管道
i.使用以下一种机制选择存储器块:
1.所有可用存储器块之间的循环顺序
2.基于从最小占用到最大占用的占用程度列出存储器块列表,并选择列表占用的W个存储器块
c.设置匹配对{入口管道、存储器块}
存在用于执行读取和写入的多种机制。以上仅是实施方案的实例。
由多个存储器块构建的共享存储器架构有可能因读取冲突而降低其输出速率。
应注意,读取请求由排队引擎控制,且更具体地说由调度器控制,所述调度器选择待传输的包而不管其到达顺序如何。
“冲突”被定义为多个输出端口执行读取待传输的数据的情况,其中读取请求来自同一存储器块。在此情况下,只有一个端口将获得服务,其余端口将等待并在晚些时候执行读取。
通常,每个输出端口都具有含有待传输的业务的输出缓存器。此缓存器保留已从共享存储器中读取的数据;所述缓存器充当共享存储器中有效负载的“预读”缓存器。此输出缓存器也称为传输缓存器。
在使用多个存储器块的共享存储器架构中,由于从不同的出口管道到同一存储器块的读取请求可能发生冲突,因此减小读取带宽。
应注意,在不考虑来自其它出口管道的请求的情况下,在每个出口管道处计算来自出口管道的读取请求,因此两个或更多出口管道可能将同时从同一存储器块请求读取。
实际上,对于给定数量的存储器块,发生任何冲突的概率随管道数量增加而增加,并且对于给定数量的管道,发生任何冲突的概率随存储器块数量增加而减小。
以下方程式计算完全无冲突的概率:
其中M是存储器块数且P是请求读取的管道数。
因此,发生任何冲突的概率为:
作为以太网标准的一部分,当端口开始包传输时,整个包必须在其中没有“空洞”的情况下传输,这意味着包必须以连续的数据流从开始到结束不间断地传输。传输中的“空洞”称为“欠载”。
另一方面,由于共享存储器中的非零冲突概率,因此一旦包开始传输,端口可能将无法及时从存储器中读取其余的包以避免欠载。
由此,每个输出端口的输出缓存器的目的在于保留待传输的包的足够数据。
从每个端口的输出FIFO开始包传输由以下逻辑控制:
1.如果(输出缓存器包含至少一个完整包)
a.开始包传输
2.否则,如果(输出缓存器中的数据量>传输阈值)
a.开始包传输
3.否则//输出缓存器中没有完整包
a.不开始发送包
并行地,保持从共享存储器中读取填充每个端口的输出缓存器的数据。
用于从每个端口的输出缓存器开始包传输的高传输阈值会导致传输包的较高时延,如下所述:
如果传输阈值==最大包大小
由于在开始传输包之前已经在输出缓存器中累积了整个包,因此不存在欠载的可能性。
这种情况增加了每个包的时延,因为每个包在传输之前已完全存储在输出缓存器中。
如果传输阈值<最大包大小。
由于在开始传输包之前没有在输出缓存器中累积整个包,因此存在欠载的可能性。
这种情况减少了每个包的时延,因为每个包在传输之前未完全存储在输出缓存器中。
因此,问题在于如何减少每端口输出缓存器中累积的数据量而不会中断包的传输,即欠载。
在使用由多个存储器块构建的共享存储器架构的交换机设备的示例性解决方案中,实施用于每个输出端口的缓存器,并且将传输阈值设置为使得欠载概率等于线路错误(传输线路上的错误)的概率的值。这意味着阈值相对较高,从而使包在传输之前大部分累积。
由于仍然存在上述高传输阈值的缺点,本发明的目的在于提供一种允许传输时延低和要求较低传输缓存器大小的传输系统和方法。
发明内容
通过根据权利要求1所述的装置特征和根据权利要求14所述的方法特征来实现所述目的。此外,通过根据权利要求15所述的相关联计算机程序的特征来所述目的。附属权利要求含有进一步的展开。
根据本发明的第一方面,提供一种传输缓存系统。所述系统包括传输缓存器和传输控制器。传输缓存器用于从第一外部单元接收数据包作为码流,在接收到所述码流时将其逐位存储,并且将所存储的码流传输到第二外部单元。传输控制器用于:确定由传输缓存器存储的数据包的第一数据量,当所述第一数据量超过传输阈值时控制所述传输缓存器开始传输包括所述数据包的码流,控制所述传输缓存器继续存储所述码流,直到所述传输控制器确定整个数据包已成功传输为止,并且在缓存欠载的情况下控制所述传输缓存器开始重新传输所述数据包。这允许显著降低传输阈值,从而显著减小时延和必要的传输缓存器大小。
有利地,当传输控制器确定数据包已成功传输或已传输比整个数据包小的数据包预定量时,传输控制器用于控制传输缓存器丢弃存储的码流。这允许进一步减小传输缓存器的大小。
更有利地,传输控制器用于在缓存欠载的情况下控制传输缓存器立即终止数据包的传输。这允许开始重新传输而不必等待包的结束。这进一步减少了时延。
此外,传输控制器有利地用于通过控制传输缓存器传输数据包的已传输部分不正确的循环冗余校验位码来控制所述传输缓存器终止所述数据包的传输。这允许快速且有效地终止包的传输。
有利的是,传输控制器另外用于:将包存储器指针的起点设置为所述传输缓存器中数据包的起点,控制所述传输缓存器在包存储器指针的起点的开端开始传输所述数据包,并且将所述包存储器指针的起点保持在所述传输缓存器中所述数据包的起点,直到所述传输控制器确定成功传输整个数据包为止,或直到已传输比整个数据包小的数据包预定量为止。这允许对传输缓存器进行非常简单的存储器管理。
更有利地,传输控制器用于在所述传输缓存器缓存欠载的情况下,控制所述传输缓存器在包存储器指针的起点的开端开始重新传输数据包。这允许非常简单地开始重新传输。
有利地,传输控制器用于在所述传输控制器确定传输成功的情况下,将包指针的起点设置为传输缓存器中下一数据包的起点。这允许非常有效的整体传输。
此外,传输控制器有利地用于在所述传输控制器确定传输成功的情况下,释放其中存储数据包的传输缓存器的一部分内存。这允许进一步减小必要的传输缓存器的大小。
有利地,传输阈值小于数据包的大小,优选地小于所述数据包的大小的50%,最优选地小于所述数据包的大小的20%。这允许进一步减小必要的传输缓存器内存的大小。
有利地,传输阈值另外可由用户配置。用户可以由此设置由于缓存欠载而导致传输中断的概率,从而允许非常灵活的传输方案。
有利地,传输缓存系统包括用于确定传输阈值的传输阈值确定器。这允许自动确定传输阈值并优化整体传输。
传输阈值确定器有利地用于基于以下条件确定传输阈值:数据包的包长度,前提是事先已知所述包长度;和/或传输到第二外部单元的误码率;和/或第一外部单元的端口速率;和/或第二外部单元的端口速率;和/或到达传输缓存器的码流的数据速率。这允许非常灵活和准确地确定传输阈值。
有利地,传输阈值确定器用于在事先已知数据包的包长度的情况下基于所述包长度来确定传输阈值。在此情况下,传输阈值比是数据包的大小与传输阈值的比。然后,传输阈值确定器用于确定传输阈值,使得传输阈值比是恒定的。这允许特别有效地优化传输。
根据本发明的第二方面,提供一种传输缓存器操作方法。方法包括:传输缓存器从第一外部单元接收数据包作为码流;在接收到所述码流时将所述码流逐位存储在所述传输缓存器中;确定由所述传输缓存器存储的所述数据包的第一数据量;当所述第一数据量超过传输阈值时,开始传输包括所述数据包的所述码流;继续存储所述码流,直到确定整个数据包已成功传输为止;并且在缓存欠载的情况下开始重新传输所述数据包。这允许显著减小传输阈值,从而显著减小时延和必要的传输缓存器大小。
有利地,当确定已成功传输数据包或已传输比整个数据包小的数据包预定量时,丢弃存储的码流。这允许进一步减小传输缓存器的大小。
更有利地,在缓存欠载的情况下立即终止数据包的传输。这允许开始重新传输而不必等待包的结束。这进一步减少了时延。
有利地,通过传输数据包的已传输部分不正确的循环冗余校验位码来终止所述数据包的传输。这允许快速且有效地终止包的传输。
将包存储器指针的起点有利地设置为传输缓存器中数据包的起点。在此情况下,传输缓存器在包存储器指针的起点的开端开始传输数据包。将包存储器指针的起点保持在传输缓存器中数据包的起点下,直到传输控制器确定整个数据包已成功传输为止,或直到已传输比整个数据包小的数据包预定量为止。这允许对传输缓存器进行非常简单的存储器管理。
有利地,在传输缓存器缓存欠载的情况下,所述传输缓存器在包存储器指针的起点的开端开始重新传输数据包。这允许非常简单地开始重新传输。
在传输控制器确定传输成功的情况下,将包指针的起点有利地设置为传输缓存器中下一数据包的起点。这允许非常有效的整体传输。
有利地,在传输成功的情况下,释放其中存储数据包的传输缓存器的一部分内存。这允许进一步减小必要的传输缓存器的大小。
传输阈值有利地小于数据包的大小,优选地小于所述数据包的大小的50%,最优选地小于所述数据包的大小的20%。用户可以由此设置由于缓存欠载而导致传输中断的概率,从而允许非常灵活的传输方案。
有利地,传输阈值可由用户配置。用户可以由此设置由于缓存欠载而导致传输中断的概率,从而允许非常灵活的传输方案。
更有利地,可自动确定传输阈值。这允许自动确定传输阈值并优化整体传输。
特别地,基于以下条件可以自动确定传输阈值:数据包的包长度,前提是事先已知所述包长度;和/或第二外部单元的传输的误码率;和/或第一外部单元的端口速率;和/或所述第二外部单元的端口速率;和/或到达传输缓存器的码流的数据速率。这允许非常灵活和准确地确定传输阈值。
特别地,如果在事先已知数据包的包长度的情况下基于包长度自动确定传输阈值,传输阈值比是数据包的大小与传输阈值的比。在此情况下,自动确定传输阈值,使得传输阈值比保持恒定。这允许特别有效地优化传输。
根据本发明的第三方面,提供一种计算机程序。计算机程序包括程序代码,所述程序代码用于在所述计算机程序在计算机上运行时执行根据第二方面所述的方法。
通常,必须注意,在本申请中描述的所有布置、设备、元件、单元和构件等可通过软件或硬件元件或其任何种类的组合来实施。此外,设备可以是处理器或可包括处理器,其中在本申请中描述的元件、单元和构件的功能可在一个或多个处理器中实施。本申请中描述的各种实体执行的所有步骤和所描述的将由各种实体执行的功能旨在表明各个实体适于或用于执行各自的步骤和功能。即使在以下描述或具体实施例中,将由一般实体执行的具体功能或步骤并未反映在执行所述具体步骤或功能的所述实体的具体详述元件的描述中,技术人员也应该清楚,这些方法和功能可以用相应的软件或硬件元件或其任何种类的组合来实施。
附图说明
下文相对于本发明的实施例且参考附图详细阐述本发明,在附图中
图1以框图示出本发明的传输缓存系统的第一实施例;
图2a示出处于第一状态的本发明的第一方面的第二实施例中的传输缓存器;
图2b示出处于第二状态的本发明的第一方面的第二实施例中的传输缓存器;
图2c示出处于第三状态的本发明的第一方面的第二实施例中的传输缓存器;
图2d示出处于第四状态的本发明的第一方面的第二实施例中的传输缓存器;
图2e示出处于第五状态的本发明的第一方面的第二实施例中的传输缓存器;
图3以流程图示出根据本发明第二方面的传输缓存器操作方法的实施例。
具体实施方式
首先,沿着图1展示根据本发明的第一方面的传输缓存系统的一般结构和功能。关于图2a至图2e,沿着处于不同状态的本发明的第一方面的实施例示出功能的细节。关于图3,描述了根据本发明的第二方面的方法的实施例的详细功能。已经部分省略了在不同图式中的相似实体和附图标记。
此创新背后的大体思路是进一步减小传输缓存器的传输阈值,使得可以更早地传输包,以减少所述包的时延和抖动,同时减少所需的传输缓存器内存量。
针对最差的情况计算用于选择传输阈值的示例性解决方案,使得缓存欠载的概率(大于0)将与传输线(SERDES)的误码率匹配。然而,通常,即使阈值较低也可以完全读取包而不会进入欠载状态,因此一般情况下不会受此高阈值的影响。
基本概念是,基于低得多的阈值从传输缓存器开始传输包,这对于一般情况是有利的。在缓存欠载的情况下,终止包的传输且再次开始传输所述包。
仅通过发送不良循环冗余校验(cyclic redundancy check,CRC),可在以太网中终止包。重新传输是能够降低传输阈值的关键,这需要对传输缓存器做出一些更改。
在图1中示出了本发明的第一方面的传输缓存系统1的实施例。传输缓存系统1包括连接到传输控制器11的传输缓存器10。此外,传输控制器11连接到任选的用户接口12和任选的阈值确定器13。此外,传输缓存器10连接到第一外部单元20和第二外部单元21。不过,重要的是应注意,第一外部单元20和第二外部单元21不是传输缓存系统1的部分。
在操作中,第一外部单元20将数据包作为码流传输到传输缓存器10。传输缓存器10接收数据包作为码流,且在接收到码流时将其逐位存储。然后,传输缓存器10继续将存储的码流传输到第二外部单元21。由传输控制器11控制传输缓存器10进行的传输。
特别地,传输控制器确定由传输缓存器存储的数据包的第一数据量,并且仅当第一数据量超过传输阈值时才控制传输缓存器开始传输包括所述数据包的码流。此外,传输控制器11控制传输缓存器10继续存储码流,直到传输控制器11确定整个包已成功传输为止。在缓存欠载的情况下,传输控制器11控制传输缓存器开始重新传输数据包。
此外,当确定数据包已成功传输或已传输比整个数据包小的数据包预定量时,传输控制器11控制传输缓存器10丢弃存储的码流。
此外,在缓存欠载的情况下,传输控制器11控制传输缓存器立即终止包的传输。
可以通过传输数据包的已传输部分的不良CRC校验位码来终止传输。
为了节省传输缓存器大小,使用的传输阈值小于包大小,优选地小于包大小的50%,最优选地小于包大小的20%。
在传输缓存系统1包括用户接口12的情况下,此用户接口可用于从用户输入接收传输缓存器大小。然后,传输控制器11可使用此传输缓存器大小。
如果传输缓存系统1包括阈值确定器13,则此阈值确定器可以自动确定传输阈值的大小。阈值确定器13可以在已知数据包的包长度的情况下特别使用所述包长度和/或传输到第二外部单元的误码率和/或第一外部单元的端口速率和/或第二外部单元的端口速率和/或到达传输缓存器10的码流的数据速率作为输入值以用于确定传输阈值。
特别地,如果阈值确定器13基于包长度确定传输阈值,则传输阈值比保持恒定。此传输阈值比是数据包的大小与传输阈值的比。
在图2a中示出处于第一状态的传输缓存器10。传输缓存器10由连续布置的多个存储单元30-47构成。将数据从左到右写入传输缓存器10的存储单元30-47中。此处,包在由包指针的起点50指示的存储单元32中开始。包的末端位于存储单元46中,且由包指针的终点51指示。但目前为止,仅写入存储单元32-36。这由指向最近写入的存储单元36的写指针61指示。并且,在图2a中展示了传输阈值70。这意味着一旦写指针61经过传输阈值70,就在包指针的起点50开始传输包。
在图2b中示出了比图2a中描述的情况稍晚的情况。此处,写指针61现在已经过传输阈值70。这意味着现在包的传输在包指针的起点50处开始。这由读指针60指示,所述读指针也指向存储包的开端的存储单元32。现在,读指针60从左向右移动通过存储单元32-46,从而传输包。
在图2c中示出了比图2b中的情况更晚的情况。此处,读指针60已到达存储单元36。因此,存储单元32-36的内容已作为传输15传输。从图2b和图2c可以看出,读指针60比写指针61更快地移动通过传输缓存器10。目前,如图2c所示,这还不是问题,因为已存储但还未传输包的数据的若干个存储单元37-41。
现在图2d中描述比图2c中的情况更晚的情况。可以容易地看出,写指针61没有移离其在图2c中的位置。这表明没有本可以存储在传输缓存器10中的其它数据到达。另一方面,读指针60已移动通过传输缓存器10并超过写指针61,从而导致缓存欠载。此缓存欠载在包的终点51之前发生。因此,包未正确地传输。从图2d中可以看出,传输15包括存储单元32-41的内容,但不包括包的其余存储单元42-46的内容。替代地,已将不正确的循环冗余校验位码添加到传输15的末端,以终止传输。
现在图2e中描述比图2d中的情况更晚的情况。此处,在传输不正确的循环冗余校验位码且由此终止包的传输之后,读指针60回到包指针的起点50,且开始重新传输所述包。读指针60现再次移动通过在存储单元32处开始的传输缓存器内存储的包。这可通过现在已经包括存储单元32的内容的传输15看到。
仅在成功传输整个包之后,或至少在成功传输整个包的预定义部分之后,才释放包的起点所用的存储区域,并将其用于存储其它数据。
从图2a-2e中可以看出,传输缓存器10由也称为存储单元30-47的多个数据块构成,每个数据块都保留待传输的包的一段。其具有2个指针:
●Rd-Ptr:指向数据块的指针,所述数据块是待读取的第一数据块(缓存器的头),也称为读指针60,以及
●Wr-Ptr:指向可被写入的第一个空数据块(缓存器的尾)的指针。
Rd-Ptr(包括)与Wr-Ptr之间的所有数据块都含有待传输的包的块。
从传输缓存器传输数据时不擦除传输的数据。如果发生欠载,则将读指针60移回到第一个数据块的指针50,然后再次开始传输包,如图2e所示。
逻辑如下:
如果(不传输任何包)
SOP-Ptr=Rd-Ptr
如果(缓存器占用度>阈值)
开始TX包
Rd-Ptr随着读取进度递增
不释放缓存器中的已读条目
如果(在TX期间检测到欠载)
利用不良CRC终止包到线路的TX
将Rd-Ptr设置为SOP-Ptr
从包的开端开始重新传输
如果(完成整个包的TX)
将条目SOP-Ptr从缓存器释放到Rd-Ptr
将Rd-Ptr和SOP-Ptr设置为Rd_Ptr+1
如果(在发送TX期间传输数据阈值量)
将所有已读条目从SOP-Ptr释放到Rd-Ptr
继续发送直至包的终点为止
在每个数据条目上将SOP-ptr设置为Rd_ptr
应注意,Wr-Ptr与此过程无关。每次写入输出缓存器时,Wr-Ptr都会递增。
使用这种方法可以大大降低阈值。
在图3中示出了描绘本发明的第二方面的实施例的功能的流程图。在第一步骤100中,传输缓存器接收数据包作为码流。在第二步骤101中,传输缓存器在接收到包括数据包的码流时将其逐位存储。在第三步骤102中,确定存储的包的第一数据量。在第四步骤103中,确定第一数据量是否大于传输阈值。如果不是这样的情况,则继续进行第二步骤101。但如果是这样的情况,就在第五步骤104中开始传输包。在第六步骤105中,确定在包的传输结束之前是否发生缓存欠载。如果是这种情况,则在第七步骤106中通过发送不正确的循环冗余校验位码来终止传输。然后,通过在包的开端再次开始传输来继续进行第五步骤104。但如果直到包的传输结束为止都没有发生缓存欠载,则继续进行第八步骤107,释放传输缓存器内的数据包的内存。在第九步骤108中,继续码流的下一数据包。
本发明不限于所述实例,且尤其不限于在交换机中的传输缓存系统的特定应用。上述本发明可应用于许多不同的通信和数据处理系统。可以任何有利的组合的形式使用示例性实施例的特性。
已结合本文中的各种实施例描述了本发明。但本领域的技术人员通过实践所要求的发明、研究附图、本公开以及所附权利要求书可以理解并实现所公开的实施例的其它变化形式。在权利要求书中,词“包括”并不排除其它元件或步骤,并且不定冠词“一(a或an)”并不排除多个。单个处理器或其它单元可满足权利要求书叙述的若干项目的功能。在某些措施通常在不同的附属权利要求项中叙述的这一单纯事实并不表明不能有利地使用这些措施的组合。计算机程序可存储或分布到合适的介质上,例如与其它硬件一起或作为其它硬件的部分提供的光学存储介质或固态介质,还可以例如通过因特网或其它有线或无线通信系统的其它形式分布。
Claims (15)
1.一种传输缓存系统(1),其特征在于,包括
-传输缓存器(10),其用于
-从第一外部单元(20)接收数据包作为码流,
-在接收到所述码流时将其逐位存储,并且
-将存储的码流传输到第二外部单元(21),
-传输控制器(11),其用于
-确定由所述传输缓存器(10)存储的所述数据包的第一数据量,
-当所述第一数据量超过传输阈值时,控制所述传输缓存器(10)开始传输包括所述数据包的所述码流,
-控制所述传输缓存器(10)继续存储所述码流,直到所述传输控制器(11)确定整个数据包已成功传输为止,并且
-在缓存欠载的情况下,控制所述传输缓存器(10)开始重新传输所述数据包。
2.根据权利要求1所述的传输缓存系统(1),
其特征在于,所述传输控制器(11)用于控制所述传输缓存器(10)在以下情况下丢弃存储的码流:
-所述传输控制器(11)确定所述数据包已成功传输,或
-已传输比整个数据包小的数据包预定量。
3.根据权利要求1或2所述的传输缓存系统(1),
其特征在于,所述传输控制器(11)用于在缓存欠载的情况下控制所述传输缓存器(10)立即终止所述数据包的传输。
4.根据权利要求3所述的传输缓存系统(1),
其特征在于,所述传输控制器(11)用于通过控制所述传输缓存器(10)传输所述数据包的已传输部分不正确的循环冗余校验位码来控制所述传输缓存器(10)终止所述数据包的传输。
5.根据权利要求1至4中任一项所述的传输缓存系统(1),
其特征在于,所述传输控制器(11)用于
-将包存储器指针的起点(50)设置为所述传输缓存器(10)中所述数据包的起点,
-控制所述传输缓存器(10)在所述包存储器指针的起点(50)的开端开始传输所述数据包,并且
-将所述包存储器指针的起点保持在所述传输缓存器(10)中所述数据包的起点,
-直到所述传输控制器(11)确定整个数据包已成功传输为止,或
-直到已传输比整个数据包小的数据包预定量为止。
6.根据权利要求5所述的传输缓存系统(1),
其特征在于,所述传输控制器(11)用于在所述传输缓存器(10)缓存欠载的情况下,控制所述传输缓存器(10)在所述包存储器指针的起点(50)的开端开始重新传输所述数据包。
7.根据权利要求5或6所述的传输缓存系统(1),
其特征在于,所述传输控制器(11)用于在所述传输控制器(11)确定传输成功的情况下,将所述包指针的起点设置为所述传输缓存器(10)中下一数据包的起点。
8.根据权利要求7所述的传输缓存系统(1),
其特征在于,所述传输控制器(11)用于在所述传输控制器(11)确定传输成功的情况下,释放其中存储所述数据包的所述传输缓存器(10)的一部分内存。
9.根据权利要求1至8中任一项所述的传输缓存系统(1),
其特征在于,所述传输阈值(70)小于所述数据包的大小,优选地小于所述数据包的大小的50%,最优选地小于所述数据包的大小的20%。
10.根据权利要求1至9中任一项所述的传输缓存系统(1),
其特征在于,所述传输阈值(70)可由用户配置。
11.根据权利要求1至10中任一项所述的传输缓存系统(1),
其特征在于,所述传输缓存系统(1)包括用于确定所述传输阈值(70)的传输阈值确定器(13)。
12.根据权利要求11所述的传输缓存系统(1),
其特征在于,所述传输阈值确定器(13)用于基于以下条件确定所述传输阈值(70):
-所述数据包的包长度,前提是事先已知所述包长度,和/或
-传输到所述第二外部单元(21)的误码率,和/或
-所述第一外部单元(20)的端口速率,和/或
-所述第二外部单元(21)的端口速率,和/或
-到达所述传输缓存器(10)的所述码流的数据速率。
13.根据权利要求11所述的传输缓存系统(1),
其特征在于,所述传输阈值确定器(13)用于在事先已知所述数据包的包长度的情况下基于所述包长度来确定所述传输阈值(70),
其中,传输阈值比是所述数据包的大小与所述传输阈值(70)的比,并且
其中,所述传输阈值确定器(13)用于确定所述传输阈值(70),使得所述传输阈值比是恒定的。
14.一种传输缓存器的操作方法,其特征在于,包括
-所述传输缓存器(10)从第一外部单元(20)接收(100)数据包作为码流,
-在接收到所述码流时将其逐位存储(101)在所述传输缓存器(10)中,
-确定(102)由所述传输缓存器(10)存储的所述数据包的第一数据量,
-当(103)所述第一数据量超过传输阈值时,开始(104)传输包括所述数据包的所述码流,
-继续存储所述码流,直到确定整个数据包已成功传输为止,并且
-在缓存欠载的情况下开始重新传输所述数据包。
15.一种具有程序代码的计算机程序,所述程序代码用于在所述计算机程序在计算机上运行时执行根据权利要求14所述的方法。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/EP2018/068337 WO2020007481A1 (en) | 2018-07-06 | 2018-07-06 | Transmission buffer system and transmission buffer operating method for reducing latency and buffer size |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112400297A true CN112400297A (zh) | 2021-02-23 |
CN112400297B CN112400297B (zh) | 2022-03-29 |
Family
ID=62904445
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201880095371.9A Active CN112400297B (zh) | 2018-07-06 | 2018-07-06 | 用于减少时延和缓存大小的传输缓存系统和传输缓存器操作方法 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN112400297B (zh) |
WO (1) | WO2020007481A1 (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6192028B1 (en) * | 1997-02-14 | 2001-02-20 | Advanced Micro Devices, Inc. | Method and apparatus providing programmable thresholds for half-duplex flow control in a network switch |
US6401146B1 (en) * | 1998-02-06 | 2002-06-04 | Lg Semicon Co., Ltd. | Device and method for controlling PCI ethernet |
CN101252589A (zh) * | 2008-03-25 | 2008-08-27 | 中国科学院计算技术研究所 | 数据缓存装置和采用该装置的网络存储系统及缓存方法 |
CN101521807A (zh) * | 2008-12-30 | 2009-09-02 | 深圳市同洲电子股份有限公司 | 一种传输流平滑处理的方法、系统及数字电视前端设备 |
US20130204961A1 (en) * | 2012-02-02 | 2013-08-08 | Comcast Cable Communications, Llc | Content distribution network supporting popularity-based caching |
CN103369509A (zh) * | 2012-03-29 | 2013-10-23 | 中兴通讯股份有限公司 | 一种缓存状态上报方法及终端设备 |
US20140310371A1 (en) * | 2013-04-15 | 2014-10-16 | Verizon Patent And Licensing Inc. | Cache and delivery based application data scheduling |
-
2018
- 2018-07-06 WO PCT/EP2018/068337 patent/WO2020007481A1/en active Application Filing
- 2018-07-06 CN CN201880095371.9A patent/CN112400297B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6192028B1 (en) * | 1997-02-14 | 2001-02-20 | Advanced Micro Devices, Inc. | Method and apparatus providing programmable thresholds for half-duplex flow control in a network switch |
US6401146B1 (en) * | 1998-02-06 | 2002-06-04 | Lg Semicon Co., Ltd. | Device and method for controlling PCI ethernet |
CN101252589A (zh) * | 2008-03-25 | 2008-08-27 | 中国科学院计算技术研究所 | 数据缓存装置和采用该装置的网络存储系统及缓存方法 |
CN101521807A (zh) * | 2008-12-30 | 2009-09-02 | 深圳市同洲电子股份有限公司 | 一种传输流平滑处理的方法、系统及数字电视前端设备 |
US20130204961A1 (en) * | 2012-02-02 | 2013-08-08 | Comcast Cable Communications, Llc | Content distribution network supporting popularity-based caching |
CN103369509A (zh) * | 2012-03-29 | 2013-10-23 | 中兴通讯股份有限公司 | 一种缓存状态上报方法及终端设备 |
US20140310371A1 (en) * | 2013-04-15 | 2014-10-16 | Verizon Patent And Licensing Inc. | Cache and delivery based application data scheduling |
Non-Patent Citations (1)
Title |
---|
毛健彪等: "PiBuffer:面向数据中心的OpenFlow流缓存管理模型", 《计算机学报》 * |
Also Published As
Publication number | Publication date |
---|---|
WO2020007481A1 (en) | 2020-01-09 |
CN112400297B (zh) | 2022-03-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20240160584A1 (en) | System and method for facilitating dynamic command management in a network interface controller (nic) | |
US10341260B2 (en) | Early queueing network device | |
US7876677B2 (en) | Transmission control protocol queue sorting | |
US8929363B1 (en) | Apparatus and method for allocating buffers of a memory including tracking a number of buffers used to store a received frame | |
US7058070B2 (en) | Back pressure control system for network switch port | |
EP3562110B1 (en) | Traffic management for high-bandwidth switching | |
US8248945B1 (en) | System and method for Ethernet per priority pause packet flow control buffering | |
US8009689B1 (en) | Apparatus and method for dynamically limiting output queue size in a quality of service network switch | |
US6067408A (en) | Full duplex buffer management and apparatus | |
US7620693B1 (en) | System and method for tracking infiniband RDMA read responses | |
US8144719B2 (en) | Methods and system to manage data traffic | |
US7609636B1 (en) | System and method for infiniband receive flow control with combined buffering of virtual lanes and queue pairs | |
US20030133465A1 (en) | System for reordering sequenced based packets in a switching network | |
US6922749B1 (en) | Apparatus and methodology for an input port of a switch that supports cut-through operation within the switch | |
US7327749B1 (en) | Combined buffering of infiniband virtual lanes and queue pairs | |
WO2022016889A1 (zh) | 一种拥塞控制方法和装置 | |
US20020184381A1 (en) | Method and apparatus for dynamically controlling data flow on a bi-directional data bus | |
WO2003034249A1 (en) | Tagging and arbitration mechanism in an input/output node of a computer system | |
US7672303B1 (en) | Arbitration method and system | |
CN112400297B (zh) | 用于减少时延和缓存大小的传输缓存系统和传输缓存器操作方法 | |
US7729259B1 (en) | Reducing latency jitter in a store-and-forward buffer for mixed-priority traffic | |
WO2022174444A1 (zh) | 一种数据流传输方法、装置及网络设备 | |
CN115955441A (zh) | 一种基于tsn队列的管理调度方法、装置 | |
JP4406011B2 (ja) | 通信ネットワークを介して接続されたプロセッシングユニットを備えた電子回路 | |
WO2023226603A1 (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 |