CN104871504A - 确认转发 - Google Patents

确认转发 Download PDF

Info

Publication number
CN104871504A
CN104871504A CN201380068532.2A CN201380068532A CN104871504A CN 104871504 A CN104871504 A CN 104871504A CN 201380068532 A CN201380068532 A CN 201380068532A CN 104871504 A CN104871504 A CN 104871504A
Authority
CN
China
Prior art keywords
logical block
write request
unique identification
resource
descriptor
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
CN201380068532.2A
Other languages
English (en)
Other versions
CN104871504B (zh
Inventor
M.冯
E.侯
E.G.陈
R.哈萨维
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.)
Telefonaktiebolaget LM Ericsson AB
Original Assignee
Telefonaktiebolaget LM Ericsson AB
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 Telefonaktiebolaget LM Ericsson AB filed Critical Telefonaktiebolaget LM Ericsson AB
Publication of CN104871504A publication Critical patent/CN104871504A/zh
Application granted granted Critical
Publication of CN104871504B publication Critical patent/CN104871504B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/15Interconnection of switching modules
    • H04L49/1515Non-blocking multistage, e.g. Clos
    • H04L49/1546Non-blocking multistage, e.g. Clos using pipelined operation

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

一种用于在管线中处理数据分组并且由网络处理器执行的方法。管线包括多个逻辑块,每个逻辑块配置成处理管线的一个级。每个数据分组包括描述符和数据。网络处理器耦合到用于存储数据的资源。方法降低等待时间,并且通过将写入请求的独特标识从第一逻辑块转发到管线中的随后的第二逻辑块来允许数据分组的无阻塞处理,写入请求修改资源中的数据。方法包括在第一逻辑块接收描述符以便进行处理,生成写入请求和用于写入请求的独特标识,将写入请求传送到资源,以及在由资源返回确认前向第二逻辑块传送独特标识。

Description

确认转发
技术领域
本发明的实施例涉及在电信网络中数据分组的路由期间数据分组处理的领域。具体而言,实施例涉及在管线实现中处理数据分组的路由。
背景技术
电信网络是通过通信信道相互连接的终端的集合。终端是能够通过信道与其它终端进行通信的任何装置。终端的示例包括电话、传真机、蜂窝电话、计算机、网络启用的打印机以及甚至是能够跨网络与其它装置进行通信的家用电子设备和电器。终端通过经信道向彼此发送一般为分组形式的数据而与其它终端进行通信。在大型网络中,在信道中管理数据分组以确保分组适当输送到其预期目的地终端,并且通过降低或消除到非预期终端的不必要传输而保存信道的带宽。
用于管理信道中数据分组的一种方法是通过利用放置于多个信道连接或相交的点的路由装置。在路由装置接收由源终端传输的数据分组后,路由装置负责处理数据分组。路由装置执行的处理包括确定数据分组的预期目的地,并且通过适当信道向目的地终端传送数据分组。与终端直接连接的路由装置通常在本领域中称为交换器。与此相比,将多个网络连接在一起以形成更大网络的路由装置在本领域中通常称为路由器。由于路由器必须处理的连网的附加层,交换器执行的处理与路由器执行的处理不同。然而,关于本发明的实施例,两个过程具有足够的共同性,使得术语“路由器”将在下文中用于表示任何路由装置,包括如领域中已知的交换器和路由器。
用于在路由器中的数据分组的处理的一个实现是在管线中处理分组。由于数据分组一般具有相同数据结构,因此,由路由器执行的处理对于每个数据分组相同或类似。因此,管线允许同时处理多个数据分组,在管线的每一级处理一个分组。这允许在任何给定时间量中处理更多数据分组,由此增大路由器的吞吐量。如果在处理期间,需要访问单独的计算资源(例如,向或从存储数据的存储器资源写入或读取),当前管线处理方法要求在进一步处理前往返确认返回到访问请求的发出方以便确保数据完整性。
发明内容
在一个实施例中,用于实现处理数据分组的管线的方法由网络处理器执行。管线包括多个逻辑块,多个逻辑块的每个逻辑块配置成处理管线的一个级。数据分组包括描述符和数据。网络处理器耦合到用于存储数据的资源。方法降低等待时间,并且通过将写入请求的独特标识从多个逻辑块中的第一逻辑块转发到多个逻辑块中在第一逻辑块之后的第二逻辑块来允许数据分组的无阻塞处理。写入请求修改资源中的数据。方法包括在网络处理器执行的管线中的第一逻辑块接收数据分组的描述符以便进行处理。在第一逻辑块生成写入请求和写入请求的独特标识。写入请求从第一逻辑块传送到资源。在由资源返回写入请求的确认前,从第一逻辑块向第二逻辑块传送独特标识。
在另一示例实施例中,网络处理器实现用于处理数据分组的管线。管线包括多个逻辑块,多个逻辑块的每个逻辑块配置成处理管线的一个级。数据分组包括描述符和数据。网络处理器耦合到用于存储数据的资源。网络处理器降低等待时间,并且通过将写入请求的独特标识从多个逻辑块中的第一逻辑块转发到多个逻辑块中在第一逻辑块之后的第二逻辑块来允许数据分组的无阻塞处理。写入请求修改资源中的数据。网络处理器包括在第一逻辑块中的接收模块、在第一逻辑块中的处理模块和在第一逻辑块中的传送模块。第一逻辑块中的接收模块配置成接收数据分组的描述符以便进行处理。第一逻辑块中的处理模块配置成生成写入请求和写入请求的独特标识。第一逻辑块中的传送模块耦合到第一逻辑块中的处理模块,并且配置成将写入请求从第一逻辑块传送到资源,并且还配置成在由资源返回写入请求的确认前,从第一逻辑块向第二逻辑块传送独特标识。
附图说明
本发明通过示例方式而不是限制的方式在附图的图形中示出,图中相似的标号表示类似的元素。应注意的是,在本公开内容中对“一”或“一个”实施例的不同引用不一定是指相同的实施例,并且此类引用是指至少一个。此外,在结合实施例描述特定特征、结构或特性时,认为结合无论是否明确描述的其它实施例来实现此类特征、结构或特性是在本领域技术人员的认知之内。
图1是用于在管线的第一逻辑块中处理数据分组的方法的一个实施例的流程图。
图2是用于在管线的第一逻辑块之后的第二逻辑块中处理数据分组的方法的一个实施例的流程图。
图3是实现用于处理数据分组的管线的网络处理器的一个实施例的系统图。
图4A是示出在实现用于处理数据分组的管线的网络处理器的一个实施例中的信号流的组件图。
图4B是示出在实现用于处理数据分组的管线的网络处理器的另一实施例中的信号流的组件图。
图5是在用于处理数据分组的管线中实现的方法的一个示范实施例的流程图。
图6是用于路由数据分组的系统的一个示范实施例的附图,系统包括实现用于数据分组的处理的管线的网络处理器。
具体实施方式
在下面的描述中,陈述了许多特定细节。然而,要理解的是,实践本发明的实施例可无需这些特定细节。在其它实例中,公知的电路、结构和技术未详细示出以免混淆对此描述的理解。在其它实例中,控制结构、门级电路和全软件指令序列未详细示出以免混淆本发明。通过包括的描述,本领域技术人员将能够在不进行不当实验的情况下实现适当的功能性。
在下面的描述和权利要求中,可使用术语“耦合”和“连接”及其衍生词。应理解,这些术语无意作为彼此的同义词。“耦合”用于指示可以或可以不相互直接物理或电接触的两个或更多个元素相互协作或交互。“连接”用于指示在相互耦合的两个或更多个元素之间通信的建立。
为便于理解实施例,虚线在图中用于表示某些项目的可选性质(例如,本发明的给定实施例不支持的特征;给定实施例支持但在一些情况下使用并且在其它情况下不使用的特征)。
图中所示技术能使用在一个或更多个电子装置上存储和执行的代码和数据实现。此类电子装置使用非暂时性有形计算机可读存储媒体(例如,磁盘、光盘、只读存储器、闪存存储器装置、相变存储器)和暂时性计算机可读通信媒体(例如,电、光、声或其它形式传播信号——如载波、红外信号、数字信号等)存储和传递(在内部和/或通过网络与其它电子装置)代码和数据。另外,此类电子装置一般情况下包括与诸如存储装置、一个或更多个输入/输出装置(例如,键盘、触摸屏和/或显示器)和网络连接的一个或更多个其它组件耦合的一个或更多个处理器的集合。处理器的集合与其它组件的耦合一般情况下是通过一个或更多个总线或桥接器(也称为总线控制器)。存储装置和携带网络业务的信号分别表示一个或更多个非暂时性有形计算机可读存储媒体和暂时性计算机可读通信媒体。因此,给定电子装置的存储装置一般情况下存储代码和/或数据以便在该电子装置的一个或更多个处理器的集合上执行。当然,本发明的实施例的一个或更多个部分可使用软件、固件和/或硬件的不同组合来实现。
跨电信网络的数据传输取决于网络中的多种不同元素,包括进行传输所通过的媒体和便于传输的装置。用于便于此类传输的一个特定装置是路由器。路由器放置于网络中通信信道相遇或相交的点。这些信道能够是相同网络的信道或不同网络的信道,在此情况下,路由器将不同网络连接在一起以形成更大的网络。路由器负责将数据路由到适当信道以便传送到预期目的地。通过不经不必要的信道传送数据,这降低了网络上的业务量。
本发明的实施例提供用于通过在管线中处理数据分组来在电信网络中路由数据分组的方法和系统。管线包括处理的多个级,并且能够同时在每级处理不同数据分组。“逻辑块”将在下文用于表示在管线中执行处理的单个级的处理元素。逻辑块能够使用软件、固件和/或硬件的任何组合实现。在一些实施例中,每个逻辑块是不同的硬件处理器或硬件处理器的不同物理部分。在其它实施例中,多个逻辑块通过能够同时处理指令的多个线程的单个硬件处理器上的固件或软件实现。
在数据分组的处理期间,网络处理器可访问单独的计算资源以帮助处理。资源一般与处理器耦合以允许在资源与处理器之间的数据传输。例如,如果处理的级包括从或向能够存储数据的存储器资源读取或写入,则执行处理的逻辑块将请求传送到存储器资源以执行相应操作。在一些实施例中,资源也能够是用于在数据上执行功能或操作的另一处理器,而不是存储器资源。在本文中使用时,资源是在数据的计算期间使用的任何硬件元素,包括处理器和存储器。存储器可指能够在任何时间量内存储数据的任何存储器装置,包括易失性和非易失性存储器。此外,存储器能够在处理器内(即,在相同芯片上)实现,或者单独实现为一件不同的硬件。
现有技术的缺点包括用于路由数据分组的当前处理管线要求在将数据分组继续传递到下一逻辑块以便进行进一步处理前,用于每个资源访问请求的往返确认返回到发出逻辑块。每个确认将由于此往返要求而引起相应等待时间。因此,总确认等待时间将是处理的数据分组的数量的倍数。
本发明的实施例通过实现确认转发过程来克服现有技术的缺点。这允许发出逻辑块生成对资源的请求,并且允许资源生成被发送到与发出逻辑块不同的逻辑块的完成确认以便进行进一步处理。本文中所述实施例的优点是(1)处理作业的传送等待时间能够在发出请求时被隐藏,(2)发出逻辑块能够到请求完成时不被阻塞,(3)处理作业的总等待时间能够被降低,以及(4)逻辑块处理的速率能够受在目的地逻辑块识别的独特写入确认的数量限制,而不是受确认的响应等待时间限制。
图1是用于在管线的第一逻辑块中处理数据分组的方法的一个实施例的流程图。在本文中使用时,第一逻辑块不一定是执行管线中的处理的第一级的逻辑块。相反,“第一”名称只用作区分管线的一个逻辑块与其它逻辑块的标识符。因此,不应从名称暗示其它含意。这同样适用于对下文“第二”或“第三”逻辑块的引用。
在一个实施例中,过程在管线的第一逻辑块接收数据分组的描述符以便进行处理时在框102开始。数据分组一般包括描述符部分(也称为报头)和用户数据部分(也称为有效负载)。描述符包含用于分组的控制信息,如预期目的地终端。相反,用户数据是分组的实质部分,并且包含正由终端传递的实际数据。下文中,用户数据或有效负载将简称为“数据”。
描述符一般从路由器的入口端口传送到管线处理器。入口端口与网络的通信信道(例如,网络电缆)耦合,并且接收用于路由器的进入数据分组。相反,出口端口将数据分组从路由器传送出到网络中。在一些实施例中,入口端口和出口端口能实现为能够执行数据分组的接收和传送的单个端口。此类双功能端口由于其传送和接收数据分组的能力而一般在本领域中称为收发器模块端口。
由于描述符由路由器接收为整个数据分组的一部分,因此,在执行进一步处理前,一般从数据分组提取描述符。在一些实施例中,提取以及在描述符上的处理能够在由管线的第一逻辑块接收描述符前执行。此提取过程能够在管线的更早级执行,或者它能够在描述符到达管线前由单独的网络处理器执行。
在其它实施例中,在任何提取已进行前,包括描述符和数据的整个数据分组由第一逻辑块接收。作为由第一逻辑块执行的处理的一部分,第一逻辑块能够从数据分组提取描述符。备选地,能够在处理的后一级从数据分组提取描述符。
由第一逻辑块执行的处理包括访问单独的资源。访问能够是有关在数据分组上执行任何操作的资源的请求,包括读取操作、存储操作、修改操作或在数据分组上某个其它形式的处理。在大多数情况下,在分组的数据部分上执行操作。在一个实施例中,访问是用于写入操作,这能够包括存储数据或修改以前存储的数据。为清晰起见,附图和下文所述示例全部叙述写入操作。然而,这不应理解为有关实施例的限制,这是因为本文中所述方法适用于任何资源访问,而不只是写入操作。
在框104,第一逻辑块生成用于写入操作的写入请求,包括用于写入请求的独特标识。独特标识允许跟踪请求,并且允许将从资源收到的确认匹配到请求。独特标识是写入请求的一部分,并且因此即使未明确说明,下文对写入请求的任何引用也应理解为包括用于该写入请求的独特标识。
在框106,将包括独特标识的写入请求从第一逻辑块传送到资源。资源与第一逻辑块或执行第一逻辑块的处理器耦合。资源能够是直接执行写入请求的存储器装置,或者资源能够是通过将请求进一步传送到存储器装置而执行请求的另一网络处理器。
此外,资源可与处理器驻留在相同芯片或管芯上,它能够是单独芯片但与处理器驻留在相同电路板上,或者它能够驻留在单独电路板上。路由器一般包括称为线路卡的多个电路板(有关更多细节,参见图3和6及下面的有关讨论),并且每个线路卡又包括一个或更多个处理器和一个或更多个存储器装置。因此,写入请求能够预期用于路由器中的处理器或存储器装置中的任一个,或甚至用于位于物理路由器外的处理器或存储器装置。
在框108,在由资源返回对于写入请求的确认前,从第一逻辑块向第二逻辑块传送写入请求的独特标识。取决于逻辑块的实现(即,软件、固件和/或硬件),能够使用不同技术传送独特标识。例如,通过简单地传递指向存储独特标识的存储器中位置的指针,能够传送独特标识。备选地,能够向第二逻辑块传送独特标识本身。
在一个实施例中,也向第二逻辑块传送描述符及独特标识。在另一实施例中,能够在传送前将独特标识写入描述符,使得通过简单地传送描述符来完成独特标识的传送。此外,如同独特标识一样,能够通过指针或者通过实际传送描述符来传送描述符。一般情况下,除非在第一逻辑块完成所有处理,否则,将不从第一逻辑块传送描述符。
图2是用于在管线中第一逻辑块之后的第二逻辑块中处理数据分组的方法的一个实施例的流程图。虽然在管线中处理的顺序中第二逻辑块可能紧跟在第一逻辑块后,但第二逻辑块一般将和第一逻辑块通过在其之间的其它逻辑块分隔。
在一个实施例中,响应于在第二逻辑块接收写入请求的独特标识而开始过程(框202)。在另一实施例中,能够一起接收描述符和独特标识。此外,如上所述,能够通过指向存储信息的存储器中位置的指针来接收独特标识或描述符。
在收到独特标识后,第二逻辑块监视来自资源的对于写入请求的确认(框204)。在一个实施例中,在其它过程由第二逻辑块执行时进行监视。换而言之,在收到确认前能够在独特标识或描述符上执行一些处理。
确认的监视和接收能够使用几个不同技术实现。在收到确认时,能够将它存储在寄存器或其它类型的存储器中预确定的位置。在一个实施例中,中断信号能够用作已收到确认的到第二逻辑块的指示。在另一实施例中,第二逻辑块定期检查存储器中的位置以确定是否已收到确认。
在收到确认后,第二逻辑块将一般在描述符上执行一些另外的处理(框206)。此处理能够包括将描述符传送到另一逻辑块或甚至不同网络处理器以便进行另外的处理。在一个实施例中,如果无需对数据分组进行另外的处理,则能够将包括已处理的描述符和数据的数据分组传送到路由器的出口端口。
可选地,第二逻辑块能够配置成如果在预确定的时间量已经过后未收到确认,则处理独特标识和/或描述符。在一个实施例中,基于生成独特标识/写入请求的时间来计算经过的时间量。然而,能够使用任何适合方式测量经过的时间(例如,从第二逻辑块接收独特标识或者开始处理独特标识的时间)。在该时间量经过后执行的处理一般将包括在管线中向上游传送描述符以便在第一逻辑块进行重新处理(框208)。处理也能够包括废弃或丢弃写入请求的独特标识。
图3是在路由器的线路卡300上实现管线的网络处理器302的一个实施例的系统图。路由器一般包括多个线路卡300(有关典型路由器的元素的更多细节,参见图6和下面的有关讨论)。线路卡300通过底板330与路由器中的其它线路卡300进行通信,底板330本质上是用于将所有线路卡300与路由器耦合的总线。每个线路卡300能够包括一个或更多个收发器模块端口328。如更早提及的,收发器模块端口328是入口端口和出口端口的组合,并且因此能够执行数据分组的传送和接收。每个线路卡300也能够包括与第二资源326耦合以便进行另外的处理的第二处理器324。
网络处理器302与第一资源322耦合。第一资源322能够提供任何功能性到网络处理器302,但一般将是用于存储、读取或写入数据的存储器资源。网络处理器302也实现两个逻辑块,第一逻辑块304和第二逻辑块312。另外的逻辑块也能够通过网络处理器302实现。
第一逻辑块304包括接收模块306、处理模块308和传送模块310。在一个实施例中,接收模块306接收来自收发器模块端口328的数据分组的描述符以便进行处理。处理模块308处理描述符,包括生成写入请求和用于写入请求的独特标识。在处理模块308完成处理描述符后,传送模块310将写入请求传送到第一资源322,并且向第二逻辑块312传送用于写入请求的独特标识。在其它实施例中,写入请求能够针对与第一资源322不同的资源,包括第二资源326或在路由器中不同线路卡上的资源。在这些实施例中,将由传送模块310向预期资源传送写入请求。
第二逻辑块312包括接收模块314、监视模块316、处理模块318和传送模块320。在接收模块314接收写入请求的独特标识后,监视模块316开始监视对于写入请求的确认。如更早所述,在监视模块316执行监视时,处理模块318能够执行处理。在预确定的时间量后收到或者未收到确认后,传送模块320传送描述符。能够将描述符在管线中向上游、在管线中向下游传送到第二处理器324,到路由器中的不同线路卡,或者到收发器模块端口328。描述符的特定目的地一般将取决于是否在预确定的时间量内收到对于写入请求的确认。
图4A是示出在实现管线的网络处理器的一个实施例中的信号流的组件图。过程在第一逻辑块402接收描述符400以便进行处理时开始。第一逻辑块402生成包括独特标识的写入请求404。将写入请求404传送到资源406,并且向第二逻辑块408传送描述符400及独特标识代码。在第二逻辑块408接收描述符和独特标识符代码后,第二逻辑块408开始监视来自资源406的写入确认410。在写入确认410由第二逻辑块408收到,并且处理已经在第二逻辑块408完成后,从第二逻辑块408传送描述符400以便进行进一步处理,或者将描述符400传送到出口端口以便传送到网络中。
图4B是示出在实现管线的网络处理器的另一实施例中的信号流的组件图。此实施例示出在管线中的处理期间能够生成不止一个资源请求。此外,能够在管线的不同级生成请求。虽然只示出用于实现此类配置的一个示例实施例,但使用本文中所述技术的其它实施例也是可能的,下面详细描述了其中的一些实施例。
此外,分配给此图中逻辑块的编号是为了一致性,而不是根据如上所述处理的顺序。
过程在第一逻辑块452接收描述符450以便进行处理时开始。第一逻辑块452生成第一写入请求454,包括用于第一写入请求454的独特标识,并且将第一写入请求454传送到资源456。在处理已经在第一逻辑块452完成后,第一逻辑块452也向第三逻辑块458传送描述符450及用于第一写入请求454的独特标识。
在接收描述符450后,第三逻辑块458开始处理描述符450。作为处理的一部分,第三逻辑块458生成第二写入请求460(包括用于第二写入请求460的独特标识),并且将第二写入请求460传送到资源456。应注意的是,仅为简化附图目的,在此实施例中,第一请求454和第二请求460预期用于相同资源456。因此,在其它实施例中,第一请求454能够被传送到与第二请求460不同的资源。在第三逻辑块458完成处理后,向第二逻辑块462传送描述符450及用于写入请求454和460的独特标识。
在接收描述符450后,第二逻辑块462开始监视用于写入请求454和460的写入确认464。再次,应注意的是,仅为简化附图目的,在相同逻辑块监视两个确认。在其它实施例中,能够在不同逻辑块监视两个确认。在两个写入确认464均被收到,并且处理已经在第二逻辑块462完成后,向前传送描述符450以便进行另外的处理,或者在出口端口传送到网络中。
图5是在用于处理数据分组的管线中实现的方法的一个示范实施例的流程图。在框502,管线的第一逻辑块接收数据分组的描述符以便进行处理。处理包括访问资源以执行操作,操作在此实施例中正好是写入操作。在框504,第一逻辑块生成对写入操作的写入请求,包括用于写入请求的独特标识。在框506,将包括独特标识的写入请求从第一逻辑块传送到资源。在框508,在由资源返回对于写入请求的确认前,从第一逻辑块向第二逻辑块传送描述符和写入请求的独特标识。
响应于接收描述符和写入请求的独特标识,第二逻辑块监视来自资源的对于写入请求的确认(框510)。在收到确认后,第二逻辑块处理描述符(框512)。可选地,如果在预确定的时间量已经过后未收到确认,则在管线中向上游传送描述符以便在第一逻辑块进行重新处理(框514)。
图6是用于路由数据分组的系统的一个示范实施例的附图,系统包括实现管线的网络处理器。在此实施例中,系统在路由器600中实现。路由器600包括多个线路卡602-612。虽然在此图中示出6个线路卡,但路由器能够具有任何数量的线路卡。交换结构616形成在线路卡602-616之间的连接,并且每个线路卡通过底板614耦合到交换结构616。线路卡602-612也具有用于通过网络传送和接收数据分组的网络连接618。
虽然图中未示出,但每个线路卡602-612包括实现用于处理数据分组的管线的网络处理器(有关更多细节,参见图3和上面的有关讨论)。在通过网络连接618接收数据分组后,接收线路卡根据本文中所述任何一个实施例处理数据分组。在处理期间,做出有关哪个线路卡将是目的地线路卡的确定以便将数据分组传送回到网络中。此确定一般基于在数据分组的描述符部分中包含的信息。然而,其它信息也可以是做出确定中的因素,包括来自分组的数据部分的信息。
当处理在接收线路卡完成后,通过底板614和交换结构616向确定的目的地线路卡传送数据分组。在一些情况下,目的地线路卡能够与接收线路卡相同,在此情况下无需传送。在通过网络连接618将数据分组传送回到网络中前,在目的地线路卡能够执行另外的处理。以此方式,路由器600在收到的每个数据分组上执行处理,并且由此将数据分组路由到适当的通信信道以便输送到其预期目的地终端。
要理解的是,上述描述旨在是说明性而不是限制性的。在阅读和理解上述描述后,本领域的技术人员将明白许多其它实施例。因此,本发明的范围应参照所附权利要求以及这样的权利要求被授权的等同物的完全范围来确定。

Claims (20)

1. 一种由实现用于处理数据分组的管线的网络处理器执行的方法,其中所述管线包括多个逻辑块,其中所述多个逻辑块的每个逻辑块配置成处理所述管线的一级,其中所述数据分组包括描述符和数据,以及其中所述网络处理器耦合到用于存储所述数据的资源,所述方法降低等待时间,并且通过将写入请求的独特标识从所述多个逻辑块中的第一逻辑块转发到所述多个逻辑块中在所述第一逻辑块之后的第二逻辑块来允许所述数据分组的无阻塞处理,所述写入请求修改所述资源中的所述数据,所述方法包括以下步骤:
在所述网络处理器执行的所述管线中的所述第一逻辑块接收(102)所述数据分组的所述描述符以便进行处理;
在所述第一逻辑块生成(104)所述写入请求和所述写入请求的所述独特标识;
将所述写入请求从所述第一逻辑块传送(106)到所述资源;以及
在由所述资源返回所述写入请求的确认前,从所述第一逻辑块向所述第二逻辑块传送(108)所述独特标识。
2. 如权利要求1所述的方法,其中向所述第二逻辑块传送所述独特标识还包括以下步骤:
将所述独特标识从所述第一逻辑块传送到在所述管线中所述第一逻辑块与所述第二逻辑块之间的第三逻辑块。
3. 如权利要求2所述的方法,还包括以下步骤:
在所述第三逻辑块生成第二写入请求和所述第二写入请求的第二独特标识;
将所述第二写入请求从所述第三逻辑块传送到所述资源;以及
在由所述资源返回所述第二写入请求的第二确认前,从所述第三逻辑块向所述第二逻辑块传送所述第二独特标识。
4. 如权利要求1所述的方法,还包括以下步骤:
在所述第二逻辑块接收(202)所述独特标识;
在所述第二逻辑块监视(204)来自所述资源的所述写入请求的所述确认;以及
响应于接收所述写入请求的所述确认而处理(206)所述描述符。
5. 如权利要求4所述的方法,还包括以下步骤:
响应于在某个时间量已经过后未收到所述确认,在所述管线中向上游传送(208)所述描述符以便在所述第一逻辑块进行重新处理。
6. 如权利要求4所述的方法,还包括以下步骤:
在所述第二逻辑块接收第二写入请求的第二独特标识;
在所述第二逻辑块监视来自所述资源的所述第二写入请求的第二确认;以及
响应于接收所述第二写入请求的所述第二确认,处理所述描述符。
7. 如权利要求1所述的方法,还包括以下步骤:
由所述第一逻辑块将所述独特标识写入所述描述符。
8. 如权利要求1所述的方法,还包括以下步骤:
由所述第一逻辑块向所述第二逻辑块传送所述描述符及所述独特标识。
9. 如权利要求1所述的方法,还包括以下步骤:
在所述第一逻辑块接收所述数据分组及所述描述符。
10. 如权利要求1所述的方法,还包括以下步骤:
将所述数据及所述写入请求一起传送到所述资源。
11. 一种实现用于处理数据分组的管线的网络处理器,其中所述管线包括多个逻辑块,其中所述多个逻辑块的每个逻辑块配置成处理所述管线的一级,其中所述数据分组包括描述符和数据,以及其中所述网络处理器耦合到用于存储所述数据的资源,所述网络处理器降低等待时间,并且通过将写入请求的独特标识从所述多个逻辑块中的第一逻辑块转发到所述多个逻辑块中在所述第一逻辑块之后的第二逻辑块来允许所述数据分组的无阻塞处理,所述写入请求修改所述资源中的所述数据,所述网络处理器包括:
所述第一逻辑块中的接收模块(306),配置成在所述网络处理器执行的所述管线中的所述第一逻辑块接收所述数据分组的所述描述符以便进行处理;
所述第一逻辑块中的处理模块(308),配置成生成所述写入请求和所述写入请求的所述独特标识;以及
所述第一逻辑块中的传送模块(310),耦合到所述第一逻辑块中的所述处理模块,并且配置成将所述写入请求从所述第一逻辑块传送到所述资源,并且还配置成在由所述资源返回所述写入请求的确认前,从所述第一逻辑块向所述第二逻辑块传送所述独特标识。
12. 如权利要求11所述的网络处理器,其中所述第一逻辑块中的所述传送模块通过将所述独特标识从所述第一逻辑块传送到在所述管线中所述第一逻辑块与所述第二逻辑块之间的第三逻辑块,向所述第二逻辑块传送所述独特标识。
13. 如权利要求12所述的网络处理器,还包括:
所述第三逻辑块中的处理模块(318),配置成生成第二写入请求和所述第二写入请求的独特标识;以及
所述第三逻辑块中的传送模块(320),耦合到所述第三逻辑块中的所述处理模块,并且配置成将所述第二写入请求从所述第三逻辑块传送到所述资源,并且还配置成在由所述资源返回所述第二写入请求的第二确认前,从所述第三逻辑块向所述第二逻辑块传送所述第二独特标识。
14. 如权利要求11所述的网络处理器,还包括:
所述第二逻辑块中的接收模块(314),配置成接收所述独特标识;
所述第二逻辑块中的监视模块(316),配置成监视来自所述资源的所述写入请求的所述确认;以及
所述第二逻辑块中的处理模块(318),耦合到所述第二逻辑块中的所述监视模块,并且配置成响应于接收所述写入请求的所述确认而处理所述描述符。
15. 如权利要求14所述的网络处理器,还包括:
所述第二逻辑块中的传送模块(320),配置成响应于在某个时间量已经过后未收到所述确认,在所述管线中向上游传送所述描述符以便在所述第一逻辑块进行重新处理。
16. 如权利要求14所述的网络处理器,其中所述第二逻辑块中的所述接收模块还配置成接收第二写入请求的第二独特标识,其中所述第二逻辑块中所的所述监视模块还配置成监视来自所述资源的所述第二写入请求的第二确认,以及其中所述第二逻辑块中的所述处理模块还配置成响应于接收所述第二写入请求的所述第二确认而处理所述描述符。
17. 如权利要求11所述的网络处理器,其中所述第一逻辑块中的所述处理模块还配置成将所述独特标识写入所述描述符。
18. 如权利要求11所述的网络处理器,其中所述第一逻辑块中的所述传送模块还配置成向所述第二逻辑块传送所述描述符及所述独特标识。
19. 如权利要求11所述的网络处理器,其中所述第一逻辑块中的所述接收模块还配置成在所述第一逻辑块接收所述数据分组及所述描述符。
20. 如权利要求11所述的网络处理器,其中所述第一逻辑块中的所述传送模块还配置成将所述数据及所述写入请求一起传送到所述资源。
CN201380068532.2A 2012-12-28 2013-12-17 确认转发 Expired - Fee Related CN104871504B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/730616 2012-12-28
US13/730,616 US9317289B2 (en) 2012-12-28 2012-12-28 Acknowledgement forwarding
PCT/IB2013/061049 WO2014102664A1 (en) 2012-12-28 2013-12-17 Acknowledgement forwarding

Publications (2)

Publication Number Publication Date
CN104871504A true CN104871504A (zh) 2015-08-26
CN104871504B CN104871504B (zh) 2018-03-02

Family

ID=50114419

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201380068532.2A Expired - Fee Related CN104871504B (zh) 2012-12-28 2013-12-17 确认转发

Country Status (4)

Country Link
US (1) US9317289B2 (zh)
EP (1) EP2939381B1 (zh)
CN (1) CN104871504B (zh)
WO (1) WO2014102664A1 (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050232303A1 (en) * 2002-04-26 2005-10-20 Koen Deforche Efficient packet processing pipeline device and method
CN1832455A (zh) * 2005-02-18 2006-09-13 美国博通公司 网络设备及处理数据的方法
US20110145450A1 (en) * 2009-12-14 2011-06-16 Sanjay Mansingh Transaction id filtering for buffered programmed input/output (pio) write acknowledgements

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8261277B2 (en) 2006-04-10 2012-09-04 General Electric Company System and method for dynamic allocation of resources in a computing grid
US8145874B2 (en) * 2008-02-26 2012-03-27 Qualcomm Incorporated System and method of data forwarding within an execution unit
US9014003B2 (en) * 2011-11-08 2015-04-21 Futurewei Technologies, Inc. Decoupled and concurrent packet processing and packet buffering for load-balancing router architecture

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050232303A1 (en) * 2002-04-26 2005-10-20 Koen Deforche Efficient packet processing pipeline device and method
CN1832455A (zh) * 2005-02-18 2006-09-13 美国博通公司 网络设备及处理数据的方法
US20110145450A1 (en) * 2009-12-14 2011-06-16 Sanjay Mansingh Transaction id filtering for buffered programmed input/output (pio) write acknowledgements

Also Published As

Publication number Publication date
EP2939381B1 (en) 2018-06-27
EP2939381A1 (en) 2015-11-04
WO2014102664A1 (en) 2014-07-03
US20140189327A1 (en) 2014-07-03
US9317289B2 (en) 2016-04-19
CN104871504B (zh) 2018-03-02

Similar Documents

Publication Publication Date Title
CN109698788B (zh) 流量转发方法、装置及计算机可读介质
US8782321B2 (en) PCI express tunneling over a multi-protocol I/O interconnect
CN101778113B (zh) 组播网中rp状态检测方法、装置、rp装置和组播系统
CN100593314C (zh) 用于实现简化媒体独立接口以太网复位的系统和方法
CN104025522A (zh) 扩展基于openflow的分离式体系结构网络的网络功能性
CN103490852A (zh) 为分组报头提供前缀
CN103595627A (zh) 基于多播维序路由算法的NoC路由器及其路由算法
CN109313623A (zh) 切换串口数据传输状态的方法及装置
CN104410527A (zh) 一种拓扑检测方法、交换机及热堆叠系统
CN105743816A (zh) 一种链路聚合方法及装置
US20100082875A1 (en) Transfer device
CN112422485A (zh) 一种传输控制协议的通信方法及装置
US7206889B2 (en) Systems and methods for enabling communications among devices in a multi-cache line size environment and disabling communications among devices of incompatible cache line sizes
US8347018B2 (en) Techniques for broadcasting messages on a point-to-point interconnect
CN113179215A (zh) 组网通信方法、系统、节点设备、存储介质和电子设备
CN111756588B (zh) 通信链路检测方法及相关装置
WO2017173601A1 (zh) 软件定义网络sdn中流量控制方法和设备
CN114827013B (zh) 配电网站域式快速保护系统数据冗余发送方法及相关装置
CN104871504A (zh) 确认转发
CN107733695A (zh) 一种issu过程中的vxlan隧道优化方法及装置
CN107643990B (zh) 可配置架构的通信设备
CN113110950A (zh) 处理器及通信方法、存储介质及计算设备
CN112433962A (zh) 数据传输电路及方法、核、芯片、电子设备及存储介质
CN117640511B (zh) 一种有线通信系统及其通信芯片、通信方法及介质
CN115529623B (zh) 一种基带单元测试装置、方法、终端设备以及存储介质

Legal Events

Date Code Title Description
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20180302

Termination date: 20211217

CF01 Termination of patent right due to non-payment of annual fee