动态可重配置的处理器及其系统和方法 |
|||||||
申请号 | CN03820203.4 | 申请日 | 2003-05-22 | 公开(公告)号 | CN1692666B | 公开(公告)日 | 2011-01-26 |
申请人 | 英特尔公司; | 发明人 | 马克·福伊尔斯特雷特; | ||||
摘要 | 本 发明 涉及一种动态可重配置处理器,该处理器包括具有可执行内容的 存储器 元件;以及与所述存储器元件相耦合的控制元件,用以有选择地实施所述可执行内容,以便响应于在通信信道上接收的数据分组而在多种通信协议中的一种协议下重配置所述装置,所述一种协议对应于与所述通信信道相关联的通信协议,以至少部分地基于所述一种协议来处理所述数据分组。 | ||||||
权利要求 | 1.一种用于数据网络的装置,包括: |
||||||
说明书全文 | 动态可重配置的处理器及其系统和方法技术领域[0001] 本发明的实施方案一般涉及数据连网领域,具体地说,涉及动态可调适的通信处理器以及相关联的方法。 [0002] 背景技术 [0003] 数据连网是俗称适用于以下任何体系结构的术语,其中电子设备(例如,计算机系统、通信设备)通过网络体系结构相互通信地耦合在一起。所述网络体系结构典型地是由多个网络设备组成的,例如路由器、交换机和集线器(hub),这些设备用于在电子设备之间路由数据包(有时俗称为数据报(datagrams))。 [0004] 本领域的技术人员将会理解,存在很多不同类型的网络以及相关联的多种通信协议,所述设备通过这些协议进行通信。典型地,网络设备被设计为运行在多种连网环境之一中,并且在这方面将包括根据一种单一通信协议专用于处理数据包的通信处理器。随着多种网络类型和相关协议的接受和普及,非常希望实现这样一种网络设备,它利用多种网络协议运行在多种网络体系结构中。 [0005] 实现这种多网络连网设备的常规方法一般需要赋予网络设备多个通信处理器,即每一个通信处理器对应于该网络设备所支持的一种通信协议。然而,在这样的网络设备中使用多个通信处理器可能会大大增加网络设备的成本。此外,这样一种主要基于硬件的解决方案是不可扩展的,无法接纳未来的网络体系结构和/或通信协议。 [0006] 实现多网络连网设备的另一种更新的途径是制造一种带有支持预定数量的通信协议所必需的电路的通信处理器。同样,这样一种途径也是相当昂贵的,因为所制造的设备并没有真的减少支持预定数量的通信协议所必需的电路数量,而只是将其集成在一个封装中而已。此外,和前述一样,由于这种解决方案主要是基于硬件,所以它无法扩展以接纳新开发的连网体系结构或通信协议。 [0008] 在附图中以示例而非限制的方式图示了本发明的实施方案,其中用相同的标号表示相似的元件,并且其中: [0011] 图3是根据本发明实施方案的教导的配置存储器的一种示例性实施方案的图例; [0012] 图4是根据本发明实施方案的教导的上下文存储器的一种示例性实施方案的图例; [0013] 图5是根据本发明实施方案的教导的运算输出存储器的一种示例性实施方案的图例; [0014] 图6和图7是根据本发明实施方案的教导图示了以下方法的一种示例性实施方案的流程图,其中所述通信处理器动态地调适于多种不同通信协议之任何一种; [0015] 图8是根据本发明的一种可替换实施方案图示了以下存储介质的一种示例性实施方案的框图,所述存储介质包括多条可执行指令,这些指令在被执行时使得正在访问的机器实现本发明创新性的动态可调适通信处理器的一个或多个方面。 具体实施方式[0016] 将描述一种动态可调适通信处理器(DACP)以及相关联的方法。在以下描述中,出于解释的目的阐述了很多具体的细节。然而,对本领域的技术人员来说很清楚的是,没有这些具体的细节也可以实现本发明的各种实施方案。此外,以框图的形式示出了各种结构和设备,以免模糊了对这种描述的理解。 [0017] 在以上说明书中提及“一种实施方案”或“实施方案”是指与该实施方案相关描述的具体特性、结构或特征被包括在本发明的至少一种实施方案中。短语“在一种实施方案中”在说明书不同地方的出现不一定都是指同一种实施方案。 [0018] 根据本发明的一个方面,DACP动态地自我重配置,以根据多种通信协议之任何一种来处理数据包。在这方面,与DACP集成在一起的主机设备可以很好地用在多种各异的网络体系结构之任何一个中。此外,DACP是可扩展的,以支持尚未开发的通信协议和网络体系结构。 [0019] 示例性运行环境和网络设备 [0020] 图1是图示了在其中可以实现这里所描述的本发明实施方案的示例性数据网络的框图。更具体地说,根据第一实施方案100,网络类型1元件110、网络类型2元件120到网络类型N元件130(其中N代表任意数量的网络体系结构)与网络设备102耦合在一起。关于网络体系结构的数量或者可以和网络设备102相耦合的网络元件的数量,没有任何要求或限制。如图所示,图1描绘的网络设备102包括增强型网络接口(ENI)104,其中结合了根据本发明示例性实施方案的动态可调适通信处理器(DACP)。如同下面更详细地描述的那样,DACP自我重配置,以根据与从多条信道中选出的一条信道相关联的通信协议来处理数据包,所述的多条信道对应于任意数量的网络体系结构类型1、类型2到类型N。 [0021] 如在这里使用的那样,网络类型1元件110、网络类型2元件120到网络类型N元 件130中的每一个都可以代表本领域中所公知的多种不同的网络元件,例如桌面计算平台、笔记本计算平台、手持设备(例如个人数字助手)、移动通信设备等等。另外,网络类型 1元件110、网络类型2元件120到网络类型N元件130可以代表本领域中公知的多种不同网络设备,例如集线器、路由器、交换机等等,它们可以包括或者不包括本发明实施方案的教导。网络类型1元件110、网络类型2元件120到网络类型N元件130想要代表本领域当前所公知的这些常见设备。因此,不必进一步描述网络类型1元件110、网络类型2元件 120到网络类型N元件130的体系结构细节。 [0022] 如在这里使用的那样,除了集成ENI104(其中结合了下面更加充分描述的DACP)之外,网络设备102还想要代表多种网络管理设备(集线器、交换机、路由器等)中的任何一种设备。因此,除了ENI104之外,无需进一步描述网络设备102的体系结构细节。 [0023] 具有动态可调适通信处理器的示例性网络接口 [0024] 图2是根据本发明实施方案的教导图示了动态可调适通信处理器体系结构的一个示例性实施方案的框图。图2提供了包含本发明的动态可调适通信处理器(DACP)的网络接口的简化框图。根据图2的示例性实施方案,ENI200(例如ENI104)一般包括I/O接口202、I/O缓冲器204以及在与多种网络类型的任何一种相关联的元件之间动态地传送信息的一个或多个DACP206。 [0025] I/O接口202想要代表用于连接网络设备和通信信道的多种不同硬件和软件。I/O缓冲器204想要代表本领域中所公知的多种不同存储器系统中的任何一种。根据一个实施方式,I/O缓冲器204包括接收数据结构或队列、以及发送数据结构。根据一个示例性的实施方式,网络设备102经由I/O接口202从网络类型1元件110、网络类型2元件120到网络类型N元件130接收数据包,并且这些数据包被存储在I/O缓冲器204的接收队列中。DACP206从接收队列接收数据包,处理数据包,并且将处理后的数据包发送到发送队列,以传输到另一个网络类型1元件110、网络类型2元件120到网络类型N元件130。本领域的技术人员将会理解,I/O缓冲器204可以由多种不同类型的物理存储器/存储设备中的任何一种组成。 [0026] DACP206被描绘为包括控制逻辑210、存储器系统220和基于算法的处理引擎230。本领域的技术人员将会理解,存储器系统220可以位于DACP206的外部,并且存储器系统 220可以与ENI200或网络设备102相耦合。虽然被描绘为多个各异的功能体,但是本领域的技术人员将会理解,这些元件中的一个或多个完全可以组合到单个功能实体中。可替换地,某些元件可以被划分为多个功能元件。 [0027] 控制逻辑210控制DACP206的动态可调适性。在这方面,控制逻辑210确定与在耦合到ENI200的多条信道中提供数据包的一条选定信道相关联的通信协议。根据本发明的一个方面,下面将会更充分地展开,控制逻辑210已经识别出通信协议后,检索出(retrieve) 对应于该通信协议的配置信息,并且配置DACP206来根据所识别的信道处理所接收的数据包。 [0028] 与处理数据包相关的是,控制逻辑210调用基于算法的处理引擎230的实例。根据本发明的一个方面,下面将会更充分地展开,基于算法的处理引擎230对数据包的内容执行运算,并且根据这些运算来选择输出,从而根据DACP206的配置生成处理参数。 [0029] 控制逻辑210想要代表本领域中所公知的多种不同控制逻辑中的任何一种,例如微处理器、微控制器、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、状态机等等。可替换地,控制逻辑210也完全可以是在被计算设备执行时实现这里所描述的控制特性的内容(例如可执行指令)。 [0030] 存储器系统220被描绘为包括配置存储器222、上下文存储器224和运算输出存储器226。如在这里使用的那样,存储器系统220想要代表本领域中公知的多种不同存储器系统中的任何一种。本领域的技术人员将会理解,存储器系统220完全可以由多种不同类型的物理存储器/存储器件中的任何器件组成。 [0031] 配置存储器222包括用于多种完全不同的通信协议的配置信息,这些协议包括异步传输模式(ATM)、同步光网络包(POS)和通用成帧规程(GFP)。虽然理解本发明各实施方案的教导无需这些通信协议的细节,但是为了更全面地理解这些通信协议,读者可以参阅例如国际电信联盟电信标准化部门(ITU-T),建议L432.5,“BISDN User-NetworkInterface-Physical Layer Specification:25600Kbit/s Operation”,1997年7月;因特网工程任务组,网络工作组征求意见稿2615,“基于SONET和SDH的PPP”, 1999年7月;ITU-T,建议G.7041/Y.1303,“Generic Framing Procedure(GFP)”,2001年11月。出于所有目的,通过引用将这些参考文献全都包括在这里。 [0032] 根据示例性的实施方式,配置存储器的每个条目与特定的通信协议相关联。正如下面将会更充分地讨论的那样,控制逻辑210在已经确定了与提供数据包的信道相关联的通信协议后,访问配置存储器222,检索出对应于所述通信协议的配置信息,并且配置DACP206来处理数据包。 [0033] 上下文存储器224包括与数据包中先前处理过的部分相对应的数据。根据一个示例性的实施方式,上下文存储器224的每个条目都与先前处理过的、接收自某条信道的数据包的一部分相关联。正如下面将会更充分地讨论的那样,在处理数据包(该数据包的一部分先前已经处理过了)时,控制逻辑210从上下文存储器224中读取上下文数据。另外,正如下面将会更充分地讨论的那样,当控制逻辑210在从不同的信道接收新的数据包时重配置DACP206时,控制逻辑210将数据包经过处理的部分存储在上下文存储器224中。 [0034] 运算输出存储器226包括对数据包的内容(例如位、字节、字等)执行运算而得到 的输出。根据一个示例性的实施方式,运算输出存储器226的每个条目都包括运算(例如XOR运算)的输出。正如下面将会更充分地讨论的那样,基于算法的处理引擎230根据DACP206的配置,从运算输出存储器226中检索出与用于生成处理参数的算法相关联的输出。 [0035] 示例性的数据结构 [0036] 图3是根据本发明一种实施方案的教导的配置存储器222的一个示例性实施方案的图例。根据图3中示出的实施例,配置存储器222被描绘为包括多个条目300,其中每个条目都与一类通信协议相关联,例如通信类型1、通信类型2、通信类型3到通信类型N(这里N表示DACP206所支持的通信协议的数目,其中这些通信协议对应于多种类型的体系结构)。 [0037] 根据一个示例性的实施方式,条目300之一代表POS,另一个代表ATM,还有一个代表GFP。根据本发明一种实施方案的教导,当从信道接收到数据包时,控制逻辑210从条目300中检索出与和提供数据包的信道相关联的通信协议相对应的配置信息。正如下面将会更充分地讨论的那样,控制逻辑210使用该配置信息将DACP206重配置为与所述通信协议相关联类型的通信处理器。 [0038] 图4是根据本发明一种实施方案的教导的上下文存储器224的一种示例性实施方案的图例。根据图4示出的实施例,上下文存储器224被描绘为包括多个条目400,其中每个条目都与使用特定通信协议来传输数据包的信道相关联。根据一个示例性的实施方式,条目400中的每一个都包括从信道接收的数据包中先前处理过的部分。 [0039] 正如下面将会更充分地展开的那样,当DACP206经由I/O接口202和I/O缓冲器204从某条信道接收到数据包时,控制逻辑210读取包括所述数据包中先前处理过的部分的条目400。当DACP206从某条不同的信道接收到新的数据包时,控制逻辑210将所述数据包中处理过的部分存储在一个条目400中,并且检索出有关该新数据包的上下文数据。上下文数据确定控制逻辑210先前停止处理所述数据包的那一点,在分配给提供所述数据包的所述部分的一条或多条信道的处理时间(例如,带宽量)内,原来只处理了所述数据包中的一部分。 [0040] 图5是根据本发明一种实施方案的教导的运算输出存储器226的一种示例性实施方案的图例。根据图5中示出的示例性实施方案,运算输出存储器226被描绘为包括多个条目500,其中每个条目都与对正在处理的数据包的内容执行运算而得到的输出相关联。根据一个示例性的实施方式,条目500中的每一个都包括对数据包的内容所执行的XOR运算的输出。正如下面将会更充分地展开的那样,在处理数据包时,基于算法的处理引擎230对包的内容执行运算,将输出存储在运算输出存储器226中,并且根据用来根据DACP206的配置生成处理参数的算法来选择输出。 [0041] 示例性的操作和实施方式 [0042] 上面已经介绍了本发明的运行环境和体系结构元件,下面将注意力集中到图6和图7,其中更详细地给出了DACP的示例性实施方案。为了图示方便,而不是为了限制,在适当的地方继续引用图1-5来论述图6和图7中的方法。尽管如此,可以理解的是,图6和图7的教导完全可以实现在替换性的网络体系结构/配置中,而不会背离本发明的精神和范围。 [0043] 图6和图7是根据本发明一种实施方案的教导图示了可动态地调适于多种不同通信协议中的任何一种的通信处理器的方法的一个示例性实施方案的流程图。 [0044] 根据图6和图7中示出的示例性实施方式,在方法600的框602处,网络设备102经由I/O接口202和I/O缓冲器204从一条信道接收到数据包。在框604,控制逻辑210确定与该信道相关联的通信协议。 [0045] 在框606,控制逻辑210检索出对应于和所述信道相关联的通信协议的配置信息。根据一个示例性的实施方式,控制逻辑210从配置存储器222中检索出配置信息。在框608,控制逻辑210利用所述配置信息来配置DACP206,使其根据与从中接收到所述数据包的信道相关联的通信协议来处理数据包。 [0046] 在框610,控制逻辑210读取对应于所述数据包中先前处理过的部分的上下文数据。根据一个示例性的实施方式,控制逻辑210从上下文存储器224中读取上下文数据。本领域的技术人员将会理解,如果数据包中没有任何部分先前已被处理,则控制逻辑210不在处理所述数据包时读取上下文数据。 [0047] 在框612,控制逻辑210根据DACP206的配置来处理所述数据包。根据一个示例性的实施方式,控制逻辑210通过添加发送网络元件和目的地网络元件的网络地址,并且通过在数据包中插入空闲成分,来处理所述数据包。本领域的技术人员将会理解,处理数据包可以涉及不同的、更少的或附加的处理操作。在一种示例性的实施方案中,控制逻辑210在与分配给提供所述数据包的信道的带宽量相对应的时间段上处理所述数据包。 [0048] 根据一种示例性的实施方案,控制逻辑210在处理所述数据包时调用基于算法的处理引擎230的实例。基于算法的处理引擎230基于与针对其配置DACP206来处理数据包的通信协议相关联的算法,生成处理参数。在一个示例性的实施方式中,基于算法的处理引擎230生成包括循环冗余校验(CRC)的处理参数。正如本领域中所公知的那样,CRC确定数据包是否包含差错。在另一个示例性的实施方式中,基于算法的处理引擎230生成包括扰码(scrambling)参数的处理参数。正如本领域中所公知的那样,扰码参数提供了数据包的传输密度。本领域的技术人员将会理解,处理参数可以包括在处理包时生成的多 个参数中的任何参数。 [0049] 根据一种示例性实施方案的一个方面,基于算法的处理引擎230对数据包的内容执行运算,例如XOR运算。本领域的普通技术人员很容易理解的是,基于算法的处理引擎230可以串行或并行地对内容进行运算,而不会背离本发明各实施方案的精神和范围。根据所述示例性实施方案的另一个方面,基于算法的处理引擎230将每次运算得到的输出存储在运算输出存储器226中。 [0050] 根据所述示例性实施方案的另一个方面,基于算法的处理引擎230根据与正在生成的处理参数以及通信协议相关联的算法,从运算输出存储器226中检索出所选择的输出,其中针对所述通信协议配置DACP206来处理数据包。例如,如果在DACP206被配置来处理从POS信道接收的数据包时,基于算法的处理引擎230正在生成CRC,则用于生成CRC的43 算法是x +1。通过将数据包的内容传递通过触发门而执行了XOR运算,并且已存储了输出后,基于算法的处理引擎230从运算输出存储器226中检索出第43个触发门的输出,从而生成CRC。类似地,例如,如果在DACP206被配置来处理从GFP信道接收的数据包时,基于算 16 12 5 法的处理引擎230正在生成CRC,则算法是x +x +x+1。由此,为了生成CRC,基于算法的处理引擎230从运算输出存储器226中检索出第16个、第12个和第5个触发门的输出。 [0051] 接着方法600,在框614,控制逻辑210将处理过的数据包发送到I/O缓冲器204的发送缓冲器。在框616,DACP206从不同的信道接收新的数据包。在框618,控制逻辑210确定与提供新数据包的信道相关联的通信协议。在框620,控制逻辑210确定与提供新数据包的信道相关联的通信协议是否和与提供了最近处理过的数据包的信道相关联的通信协议相同。 [0052] 如果控制逻辑210确定与提供新数据包的信道相关联的通信协议和与提供了最近处理过的数据包的信道相关联的通信协议相同,则根据框610到620,方法600继续。 [0053] 相反,如果控制逻辑210确定与提供新数据包的信道相关联的通信协议是不同的,则在框622,控制逻辑210在配置存储器222中存储与提供了最近处理过的数据包的信道相关联的配置信息。在框624,控制逻辑210在上下文存储器224中存储对应于最近处理过的数据包中的已处理部分的上下文数据。在框626,控制逻辑210检索出对应于与提供新数据包的信道相关联的通信协议的配置信息。在框628,方法600在必要的时候重复框608到620。 [0054] 替换实施方案 [0055] 图8是包括多条可执行指令的存储介质的一种示例性实施方案的框图,所述指令在被执行时使得正在访问的机器实现本发明创新性的动态可调适通信处理器机制的一个或 多个方面。在这个方面,存储介质800包括根据本发明的替换实施方案让通信处理器实现本发明实施方案的动态可调适特性的内容。 [0056] 在以上描述中,处于解释的目的,阐述了很多具体的细节,以提供对本发明实施方案的完整理解。然而,本领域的技术人员将会清楚的是,没有这些具体的细节也可以实现本发明的各个实施方案。此外,以框图的形式示出了公知的结构和设备。 [0057] 图6、图7和图8描述了本发明有关多种方法的实施方案。本发明的实施方案的方法可以通过硬件元件来执行,例如图1-5中所示的那些元件,或者可以用机器可执行指令来实施,这些指令可被用来让用所述指令编程的通用或专用处理器或逻辑电路执行各个步骤。可替换地,可以通过硬件和软件的组合来实现这些方法。此外,虽然在网络接口设备的上下文中描述了本发明,但是本领域的技术人员将会理解,完全可以在多种替换实施方案的任何一种中实施这样的功能,例如集成在计算设备内,并且这种功能很容易被调适于无线或有线实施方式。 |