首页> 中国专利> 用于多核处理器的具有内部和外部访问的后备处理器单元

用于多核处理器的具有内部和外部访问的后备处理器单元

摘要

本发明的各实施例涉及用于多核处理器的具有内部和外部访问的后备处理器单元。公开了一种用于在后备处理器单元的信息查找请求处理的方法和体现该方法的系统,该方法包括:在第一缓冲器中存储接收的查找事务请求;将查找事务请求重建成请求分组;传输请求分组;接收分组;确定接收的分组是否包括响应分组或者异常分组;以及根据确定来处理接收的分组。另外,公开了一种用于在后备处理器单元的异常分组处理的方法和体现该方法的系统,该方法包括:在第一缓冲器中存储至少一个接收的查找事务请求;接收分组;确定接收的分组包括异常分组;以及根据第一缓冲器的标识符关联异常分组与至少一个存储的查找事务请求中的一个存储的查找事务请求。

著录项

  • 公开/公告号CN104750580A

    专利类型发明专利

  • 公开/公告日2015-07-01

    原文格式PDF

  • 申请/专利权人 凯为公司;

    申请/专利号CN201410756800.6

  • 申请日2014-12-10

  • 分类号G06F11/16(20060101);

  • 代理机构11256 北京市金杜律师事务所;

  • 代理人王茂华;辛鸣

  • 地址 美国加利福尼亚州

  • 入库时间 2023-12-18 09:33:32

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2020-05-15

    专利权的转移 IPC(主分类):G06F11/16 登记生效日:20200426 变更前: 变更后: 申请日:20141210

    专利申请权、专利权的转移

  • 2018-12-18

    专利权人的姓名或者名称、地址的变更 IPC(主分类):G06F11/16 变更前: 变更后: 申请日:20141210

    专利权人的姓名或者名称、地址的变更

  • 2018-11-23

    授权

    授权

  • 2017-01-25

    实质审查的生效 IPC(主分类):G06F11/16 申请日:20141210

    实质审查的生效

  • 2015-07-01

    公开

    公开

说明书

技术领域

本公开内容涉及计算机网络中的通信。更特别地,本发明涉及一种用于多核处理器的具有内部和外部访问的后备处理器单元。

背景技术

网络处理器是经常以集成电路的形式被实施的专门化的处理器,该处理器具有被具体地设计用于处理通过网络接收或者传送的分组数据的特征集。这样的处理经常涉及到信息查找从而用信息查找表中的更简单编索引操作替换密集运行时计算。借助示例,与路由有关的处理(即,分组转发)需要查找路由信息,该路由信息包括不同值的元组,这些值的元组组成传输控制协议/网际协议(TCP/IP)连接,例如,5元组包括源IP地址、目的地IP地址、源端口号、目的地端口号和使用的协议。

由于查找通常由外部三态内容可寻址存储器(TCAM)执行,所以可能经由Interlaken Lookaside(ILA)连接到网络处理器。然而,基于存储器的查找遭受查找请求的延时。另外,跟踪已经提交的查找的查找资源被预分配给或者专用于处理器核。因此,包括多核的网络处理器、资源专用由于不同处理核的潜在地不等同使用专用资源而妨碍效率。

因而,在本领域中需要一种提供对以上认识到的问题的解决方案以及附加优点的后备处理器单元。

发明内容

在公开内容的一个方面中,公开了一种根据所附独立权利要求的在后备处理器单元处用于信息查找请求处理和用于异常分组处理的装置和方法。在从属权利要求中公开了附加方面。

附图说明

这里描述的前述方面将通过参照在与附图结合进行时的以下描述而变得更容易地清楚,在附图中:

图1a描绘了根据本公开内容的一个方面的流程图的第一部分,该流程图支持在后备处理器单元处的信息查找请求处理和异常分组处理的过程;

图1b描绘了根据本公开内容的一个方面的流程图的第二部分,该流程图支持在后备处理器单元处的信息查找请求处理和异常分组处理的过程;以及

图2描绘了根据本公开内容的一个方面的后备处理器单元、处理器和内容可寻址存储器的概念结构。

任何未引用的箭头或者双箭头线指示在描绘的实体之间的可能的信息流程。

具体实施方式

除非另有定义,这里使用的所有术语(包括技术和科学术语)具有与由本发明所属领域普通技术人员普遍地理解相同的含义。还将理解,应当将术语(比如在常用字典中定义的术语)解释为具有与它们在相关领域和本公开内容的上下文中的含义一致的含义。

如这里所用,单数形式“一个/一种”和“该”旨在于也包括复数形式,除非上下文清楚地另有指示。还将理解,术语“包括”在本说明书中被使用时指定存在陈述的特征、整体、步骤、操作、单元和/或部件,但是未排除存在或者添加一个或者多个其它特征、整体、步骤、操作、单元、部件和/或其组合。术语“和/或”包括关联的列举的项目中的一个或者多个项目中的任何和所有组合。

可以参照一个或者多个示例性配置举例说明各种公开的方面。如这里所用,术语“示例性”意味着“用作示例、实例或者举例说明”而不应必然地被解释为比这里公开的其它配置优选或者有利。

这里将参照附图描述本发明的各种方面,除非明确地指出,这些附图是本发明的概念配置的示意图示。提供本公开内容的各种方面以使本领域普通技术人员能够实践本发明。对贯穿本公开内容呈现的各种方面的修改将容易为本领域普通技术人员所清楚,并且这里公开的概念可以被延伸到其它应用。

图2描绘了后备处理器单元(204)、查找事务请求实体(206)和结构(208)、(210)的概念结构。查找事务请求实体可以包括处理器(206)、以太网分组输入分类引擎或者本领域普通技术人员已知的任何其它实体。为了说明清楚,贯穿本公开内容引用处理器(206)作为这样的查找事务请求实体的示例而未限制公开内容。处理器(206)可以包括一个或者多个处理核(206_1-206_3)。虽然仅描绘了三个处理核,但是本领域普通技术人员将理解设想了包括单个核的其它数目的核。处理器核(206_1-206_3)操作需要查找在结构(208)、(210)中存储的信息。为了高效地分配信息查找所需要的资源以及最小化任何处理器核的与信息查找有关的开销,后备处理器单元(204)被插入于处理器(206)与结构(208)、(210)之间。不同块可以被实施为后备处理器单元(204)的结构内的硬件或者软件实体。

图1描绘了流程图,该流程图支持在后备处理器单元处用于信息查找请求处理和用于异常分组处理的过程。为了进一步阐明在图2的概念结构的如由图1和关联的文字引用的某些单元之间的关系,对图2的结构单元的引用是在括号中。

该过程在步骤102中开始,其中处理器(206)的多个处理器核中的至少一个处理器核(例如,处理器核(206_1))生成将向目标传输的查找事务请求。目标可以包括内部内容可寻址存储器、内部查找引擎、两个内部实体被统称为(208)和/或外部内容可寻址存储器(210)或者其它外部部件(比如现场可编程门阵列)和本领域普通技术人员已知的其它部件。在一个方面中,外部内容可寻址存储器(210)包括经由Interlaken Lookaside接口(212)而对接到后备处理器单元(204)的外部三态内容可寻址存储器(TCAM)。术语外部标识在设备(202)以外的部件。虽然如描绘的那样,设备(202)包括处理器(206)、后备处理器单元(204)、Interlaken Lookaside接口(212)和内部实体(208),但是设想了其它布置。借助示例,处理器(206)可以在设备(202)外部。在一个方面中,设备(202)被实施为集成电路。该过程在步骤104中继续。

在步骤104中,处理器核(206_1)向后备处理器单元(204)传输查找事务请求。该过程在步骤106中继续。

在步骤106中,控制逻辑(214)接收查找事务请求。在启用可选异常分组处理时,控制逻辑(214)确定是否将执行对查找事务请求的普通处理,在该情况下,该过程在步骤110中继续,或者是否将保持查找事务请求以用于异常分组处理,在该情况下,该过程在步骤108中继续。根据由生成查找事务请求的处理器核(206_1)提供的信息做出决定。可以提供该信息例如作为查找事务请求中的指示符、作为带外(out-of-bound)信令或者本领域普通技术人员已知的任何其它方法。否则,在禁用可选异常分组处理时,控制逻辑(214)接收查找事务,并且该过程在步骤108中继续。

在步骤108中,将查找事务请求放置到包括多个缓冲器(231)的异常队列结构(230)中,例如,放置到缓冲器(231_1)中。队列是将数据组织成如下结构,在该结构中保持条目,即,包括分组的数据。该过程在步骤106中继续。

在步骤110中,控制逻辑(214)向多个结构(216)提供查找事务请求。一般而言但是并非必须,一个结构(216)支持一个通道,即,途径,通过该途径向目标(208)、(210)传输和从该目标接收信息。在一个方面中,在使用Interlaken Lookaside接口时,使用两个结构,一个用于由Interlaken接口支持的两个传输和两个接收通道中的一个通道。为了说明该概念而不被实施细节分心,仅描绘单个结构。然而,本领域普通技术人员将理解,可以使用其它数目的结构(216)。多个结构(216)中的每个结构包括多个后备缓冲器(218)。多个后备缓冲器(218)中的每个后备缓冲器可以在三个状态之一中:自由,即,后备缓冲器未被多个结构(216)中的任何结构使用;处理中,即,后备缓冲器的内容正在由目标(208)、(210)处理;以及已接收,即,后备缓冲器的内容已经被传输到目标(208)、(210)、由目标(208)、(210)处理并且处理的结果被返回到后备缓冲器(218),但是结果尚未被提供到处理器核(206)。多个结构(216)中的每个结构与包括多个缓冲器(221)的多个结构(220)中的一个结构关联,该一个结构保持多个后备缓冲器(218)中的每个后备缓冲器的状态。因此,如描绘的那样,缓冲器(221_1)保持后备缓冲器(218_1)的状态。

在接收查找事务请求时,控制逻辑(214)在多个结构(216)之中查询在自由状态中的后备缓冲器(218)、在这样的后备缓冲器(例如,后备缓冲器(218_1))中存储查找事务请求并且请求结构(222)将在后备缓冲器(218_1)中保持的查找事务请求重建成请求分组。该重建包括添加或者更改查找事务请求中的字段以支持向希望的目标(208)、(210)传输请求分组。特别地,更改生成的分组包括添加事务标识符。事务标识符包括存储请求分组的后备缓冲器(218_1)的任何标识符,例如,指针、地址或者本领域普通技术人员已知的任何其它标识符。需要事务标识符是因为后备处理器单元(204)允许如下文公开的那样从目标(208)、(210)对信息的无序查找返回。

除了包括请求分组之外,后备缓冲器(218_1)中的每个后备缓冲器也包括错误状态。错误可以在控制逻辑(214)将查找事务请求重建成请求分组并且查询未发现在自由状态中的后备缓冲器(218)时出现。丢弃请求分组并且生成和向生成查找事务请求的处理器核(206_1)提供错误中断。在一个方面中,向请求处理器核(206_1)发送指示错误的响应。另一类型的错误可能在处理器核(206)生成比目标(208)、(210)可以接收的数据更多的将放入请求分组中的数据、从而引起后备缓冲器(218)溢出的情况下出现。目标(208)、(210)可以接收的数据量在目标(208)、(210)被初始化时被设置为配置参数。丢弃过量数据并且生成和向请求处理器核(206_1)提供错误指示符。

该过程在步骤112中继续。

在步骤112中,目标(208)、(210)指示准备好接收和处理另一请求。作为响应,控制逻辑(214)向传输器(224)提供请求分组,例如,在后备缓冲器(218_1)中存储的分组并且将结构(220)的对应缓冲器(221_1)的状态改变成处理中。传输器向目标(208)、(210)传输从后备处理器单元(204)离开的请求分组。该过程在步骤114中继续。

在步骤114中,目标(208)、(210)从请求分组提取事务标识符并且执行请求的查找。目标(208)、(210)创建包括查找信息和事务标识符的响应分组并且向后备处理器单元(204)发送响应分组。目标(208)、(210)无需按照接收请求分组的相同顺序发送响应分组。因此,借助示例,如果响应于请求分组的信息查找花费比响应于以后接收的请求分组的信息查找更多的时间,则目标(208)、(210)可以在对更早接收的分组的响应分组之前发送对以后接收的请求分组的响应分组。

除了对请求分组的响应分组之外,目标(208)、(210)可以生成可能未与具体请求分组关联的异常分组。这样的异常分组可以例如包括由于目标(208)、(210)的内部错误而生成的中断分组、对于报告状况的服务的请求,例如,达到统计阈值或者本领域普通技术人员已知的目标(208)、(210)有与响应无关的信息要与处理核通信这样的任何其它指示。这样的未与任何事务标识符对应的异常分组可以由目标(208)、(210)生成并且由目标(208)、(210)通过设置响应分组中的具体比特来指示。设置具体比特可以包括设置单个比特。

该过程在步骤116中继续。

在步骤116中,由目标(208)、(210)生成的分组由接收器(226)接收,该接收器向块(228)提供接收的分组。该过程在步骤118中继续。

在步骤118中,块(228)检查接收的分组以确定接收的分组是否包括响应分组或者异常分组。

块(228)通过比较在接收的分组中的指定的比特与预定异常掩码来检查接收的分组。在一个方面中,可以有用于对异常分组(例如,中断分组、服务请求分组和上文提到的其它类型的异常分组)进行分类的多个不同预定掩码。每个预定异常掩码比特的值是三进制,即,比特值可以包括“1”、“0”或者代表“不在意”的“X”。“不在意”意味着该值可以代表“1”或者“0”。在一个方面中,预定掩码被实施为两个寄存器。第一寄存器中的比特的第一个值(例如,值“0”)被解释为用于比较的三进制值“X”而无论第二寄存器的值如何。第一寄存器中的比特的第二个值(例如,值“1”AND)和第二寄存器中的比特的第一个值(例如,值“0”)被解释为用于比较的三进制“0”。第一寄存器中的比特的第二个值(例如,值“1”AND)和第二寄存器中的比特的第二个值(例如,值“1”)被解释为用于比较的三进制“1”。然而,本领域技术人员将理解,其它组合是可能的。

在接收的分组中的具体比特与预定掩码相符时(即,比较是肯定的,这指示异常分组),块(228)向异常队列(230)中的缓冲器(例如,缓冲器(231_1))提供异常分组,并且该过程在步骤120中继续。否则,在接收的分组中的具体比特与预定掩码不相符时(即,比较是否定的,这指示响应分组),该过程在步骤122中继续。

在步骤120中,在启用可选异常分组处理时,异常分组经由缓冲器(231_1)的标识符来与将被保持用于异常分组处理的查找事务关联。在一个方面中,该关联经由用于组织和操纵数据缓冲器的先入先出方法,即,使用将被保持用于异常分组处理的最旧查找事务。否则,在禁用可选异常分组处理时,以与如上文公开的普通响应分组相同的方式处理异常分组。该过程在步骤122中继续。

在步骤122中,根据关联来生成响应并且向多个处理器核之一提供在异常队列(230)(例如,缓冲器(231_1))中保持的异常分组,即,生成查找事务请求的处理器核提供异常分组以用于异常分组处理。处理器核根据目标(208)、(210)生成异常分组的原因(例如,如上文公开的中断、请求服务)做出响应。

在步骤124中,在块(232)中接收返回分组。块(232)从返回分组提取事务标识符。该过程在步骤126中继续。

在步骤126中,比较提取的事务标识符与在结构(220)中保持的具有对应事务标识符的请求分组的状态。在状态被设置成处理中时,该过程在步骤128中继续;否则,向异常队列(230)提供响应分组,并且该过程在步骤124中继续。

在步骤128中,向块(234)提供返回分组。块(234)将在结构(220)中(即,在对应缓冲器(221_1)中)的后备缓冲器(218_1)的状态设置成已接收、向结构(216)之一中与返回分组一起存储请求分组并且在返回分组以内插入返回分组的大小的指示符。在一个方面中,块(234)用后备缓冲器(例如,后备缓冲器(228_1))中的返回分组替换请求分组。该过程在步骤130中继续。

在步骤130中,向多个处理器核(206_1-206_3)之一提供响应分组。在一个方面中,在处理器核(206_1)向后备处理器单元(204)提供查找事务请求时,处理器核(206_1)同时提供返回器块(234)将向其写入响应分组的存储器的地址。地址可以被存储在由后备处理器单元(204)指明的存储器中。在一个方面中,地址被存储在结构(220)中。返回器块(234)例如使用直接存储器存取来向提供的地址写入响应分组,并且将在结构(220)中(即,在对应缓冲器(221_1)中)的后备缓冲器(218_1)的状态设置成自由。

在另一方面中,处理器核(206_1)轮询后备缓冲器(218_)的状态直至状态指示已接收。在一个方面中,按照周期性时间表执行轮询;在另一方面中,处理器核(206_1)在未执行更高优先级任务时轮询状态。处理器核(206_1)然后从后备缓冲器(218_1)取回响应分组。块(234)检测到对响应分组的取回并且将在结构(220)中(即,在对应缓冲器(221_1))中的后备缓冲器(218_1)的状态设置成自由。

在另一方面中,处理器核(206_1)可以在向后备处理器单元(204)提供查找事务请求之后的某个时间请求返回器块(234)例如使用直接存储器存取来向提供的地址写入响应分组。为了使处理器核(206_1)能够够请求正确响应分组,后备处理器单元(204)中的实体(例如,控制逻辑(214))向处理器核(206_1)提供不透明标识符。在一个方面中,标识符可以包括后备缓冲器(218_1)的地址。一旦返回器块(234)向提供的地址写入响应分组,返回器块(234)就将在结构(220)中(即,在对应缓冲器(221_1)中)的后备缓冲器(218_1)的状态设置成自由。

在一个方面中,向生成查找事务请求的处理器核提供响应分组。在另一方面中,从生成查找事务请求的处理器核向不同处理器核提供响应分组。处理器核的改变可以例如通过提出请求的核向用于接收响应分组的处理器核提供用于从其读取数据的地址的标识符或者待轮询的后备缓冲器的标识符而被实现。

可以组合以上公开的向处理器核提供返回到分组的方面。借助示例,处理器核可以根据第一方面(即,处理器核提供响应分组将被写入到的存储器的地址)或者第三方面(即,处理器核在提供查找事务请求的某个时间请求响应分组)请求返回分组。然而,该请求可以超时,即,未在预定时间量内获得返回分组。后备处理器单元(204)中的实体生成响应从而设置指示超时的比特。在接收超时响应时,处理器可以使用上文公开的方面中的任何方面以再次请求返回分组。优点是减少资源消耗,因为处理器核无需花费时间等待响应并且代之以在未留意具有更高优先级的任务时执行这样的更高优先级任务并且取回响应。

提供本公开内容的各种方面以使本领域普通技术人员能够实践本发明。对这些方面的各种修改将容易为本领域普通技术人员所清楚,并且其中公开的概念可以应用于其它方面而未脱离本发明的精神实质或者范围。因此,本发明未旨在于限于这里所示的方面,而是将被赋予与这里公开的原理和信元特征一致的最广范围。

因此,借助示例,本领域普通技术人员将理解流程图并非穷举,因为某些步骤根据特定实现方式可以被添加或者不必要和/或可以被并行执行。借助示例,在禁用可选异常分组处理时,控制逻辑(214)接收查找事务并且向多个结构(216)直接提供它而无需步骤106和108。附加地,可以并行或者依次执行步骤。另外,可以重排步骤的序列,只要该重排未造成功能差异。

与贯穿本公开内容描述的各种方面结合描述的各种例示性逻辑块、模块、电路和算法步骤等效的、本领域普通技术人员已知或者以后已知的所有结构和功能等效物明确地通过引用而结合于此并且旨在于被权利要求涵盖。这样的例示性逻辑块、模块、电路和算法步骤可以被实施为电子硬件、计算机软件或者二者的组合。

本领域技术人员将理解,可以使用多种不同技术和技艺中的任何技术和技艺来代表信息和信号。例如,可以贯穿以上描述而引用的数据、指令、命令、信息、信号、比特、符号和码片可以由电压、电流、电磁波、磁场或者粒子、光场或者粒子或者其任何组合代表。

另外,这里公开的内容未旨在于专用于公众,无论这样的公开内容是否被明确地记载在权利要求中。权利要求要素也不会按照35U.S.C.§112第六段的规定来解释,除非该要素使用短语“用于……的装置”来明确地记载或者在方法权利要求的情况下该要素使用短语“用于……的步骤”来记载。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号