直通转发模块及在直通转发模式下接收和发射数据帧的方法

文档序号:7994749阅读:397来源:国知局
直通转发模块及在直通转发模式下接收和发射数据帧的方法
【专利摘要】本发明涉及直通转发模块(200)、集成电路、半导体设备和在直通转发模式下接收和发射数据帧的方法。所述直通转发模块200在数据块中处理接收的数据帧(210、216)。所述模块(200)包括用于存储接收数据帧(210)的第一数据块BL1的预加载单元(204)。在接收器单元(206)接收后续数据帧之前,所存储的第一数据块BL1可以被所述预加载单元(204)预加载到发射器单元(208)内。所述处理单元(202)控制第一数据块到所述预加载单元(204)的所述传送,以及控制使用预加载数据块的作为将要被发射的数据帧的第一数据块。
【专利说明】直通转发模块及在直通转发模式下接收和发射数据帧的方法

【技术领域】
[0001]本发明涉及用于执行数据分组的直通转发的直通转发模块。本发明还涉及在直通转发模式下接收和发射数据帧的方法。

【背景技术】
[0002]在计算机网络领域中,直通转发,也被称为直通交换,是用于分组交换系统的交换方法,其中网络交换机在整个帧被网络交换机接收之前开始转发帧(或分组)。一旦目的地地址被处理,这种转发操作通常立刻被执行。以这种方式,直通转发能够显著降低通过交换机的等待时间。使用直通转发是分组导向的确定性自动化系统的重要特征。此外,这种系统的实现在工业市场中不断拓展,以及该项技术也日益渗透到家庭、医疗和汽车应用的解决方案。
[0003]直通转发系统通常要求严格控制交换机的等待时间(该等待时间是在数据被交换机接收与该数据随后被交换机发射(转发)之间的延迟)和抖动(该抖动是在相同帧的接收和发射之间的时间段的方差),以确保确定性的行为和可伸缩性。通常,这种等待时间/抖动要求在不同的直通“模式”之间(例如在不同的数据分组交换协议之间)是不同的。例如,这种直通模式可能包括,例如Ethernet协议(诸如EtherCAT (控制自动化技术的Ethernet))、ProfiNET、Ethernet/IP、DLR(设备级环网技术)或IP业务的直通交换。控制等待时间和抖动对于涉及EtherNet巾贞等等的直通转发模式特别重要,在其中巾贞被不可预知地被间隔开并且可以是以秒间隔或紧接,这与IP语音(VoIP)不同,在IP语音(VoIP)中具有可预知的帧间隔。为了使直通交换机在市场上更有竞争力,它必须能够在多个直通交换模式之间支持这种确定性的行为和可伸缩性。
[0004]传统上,严格控制等待时间和抖动是由专用硬件块提供的,其被布置成满足特定等待时间和抖动要求。在单一的设备上使用这种专用硬件块导致了相对昂贵和不灵活的解决方案。特别是,为了使给定交换机能够满足一个以上的直通模式的要求,每个直通模式需要分离的专用硬件块,从而导致交换机成本、功耗以及占地需求的显著增加。


【发明内容】

[0005]正如附属权利要求所描述的,本发明提供直通转发模块、集成电路和半导体设备。本发明还提供了一种在直通转发模式下接收和发射数据帧的方法。
[0006]本发明的具体实施例在从属权利要求中被陈述。
[0007]根据下文中描述的实施例,本发明的这些或其它方面将会很明显以及被阐述。

【专利附图】

【附图说明】
[0008]根据附图,仅仅通过举例的方式,本发明的进一步细节、方面和实施例将被描述。在附图中,类似的符号被用于表示相同的或功能相似的元素。为了简便以及清晰,附图中的元素不一定按比例绘制。
[0009]图1示意性地显示了包括根据直通转发原理操作的节点的数据分组交换系统的简化方框图;
[0010]图2示意性地显示了直通转发模式的例子;
[0011]图3示意性地显示了直通转发模式的另一个例子;
[0012]图4示意性地显示了直通转发模式的又一个例子;
[0013]图5示意性地显示了在直通转发模式下接收和发射数据的方法的例子。

【具体实施方式】
[0014]现在将参照直通转发模块的一个例子描述本发明的例子,例如可以在分组交换系统中实现的直通转发模块。然而,本发明不限定于参照附图所描述的特定指令直通转发体系结构,并且可以等同地适用于替代体系结构。例如,对于所说明的例子,直通转发模块被说明为包括单一的统一的处理单元,用于处理数据块、控制数据块的传送、以及控制特定数据块的使用。然而,本发明所描述的处理单元的功能可以同样地在多个处理器和或CPU之间被提供,和/或这种处理单元的功能可以同样地分布于多个功能模块之间。此外,由于本发明说明的实施例可能大部分是通过使用本领域所属技术人员所熟知的电子元件和电路被实现,因此细节不会在比上述所说明的认为有必要的程度大的任何程度上进行解释。对本发明基本概念的理解以及认识是为了不混淆或偏离本发明所教之内容。
[0015]在图1中,具有直通转发节点120、130的分组交换网络100的简化方框图被呈现。节点I1是主节点,其在上游方向中发射数据帧到从属节点120、130的链。发射器单元Tx发射数据帧。数据帧开始于前导,所述前导被物理层使用,以将接收设备与发射同步。数据帧还包括前导之后的数据分组。该数据分组包括数据帧的实际数据。例如,在Ethernet数据分组中,前导之后跟随有最多1518字节。主节点110还包括接收器单元Rx,其从从属节点120、130的链接收下游数据帧的流。从属节点120、130耦合在一个链内,以及最后的从属节点130是用于终止从属节点120、130的链的节点。
[0016]从属节点120在其上游接收器单元122上接收来自链中的先前节点的上游数据帧。在数据帧中的数据分组被完全接收之前,它们已被转发到上游发射器单元124,上游发射器单元124甚至在整个数据分组被接收之前就启动包含数据分组的数据帧的发射。上游发射器单元124发射数据帧到在链中的后续节点。数据分组的上游由应用处理单元123监视,以及与特定从属节点相关的数据由应用处理单元123处理。如果应用处理单元123想要发射数据到其它节点,它可以插入数据到上游数据分组的特定未使用位置,该上游数据分组是由从属节点从上游接收器单元122向上游发射器单元124转发的。从属节点120本身不生成数据分组/帧,而是仅使用上游数据分组的数据分组的未使用部分来发射数据到其它单元。在图1的例子中,主单元110是分组交换网络100中生成新的数据分组/帧的唯一节点。从属节点120也具有下游接收器单元128,在其中它们从链中的后续节点接收数据帧。接收数据帧的数据分组在未经检查的情况下被转发给下游的发射器单元126,用于发射数据帧到节点链中的先前节点。在对应数据帧的完整数据分组已经由下游接收器单元128接收之前,下游发射器单元126也开始数据帧发射。终止该链的从属节点130仅具有用于从链中的先前节点接收数据帧的上游接收器单元132和用于发射帧到链中的先前节点的下游发射器单元136。在上游接收器单元132处的数据帧中接收的数据分组被转发给下游发射器单元136。在完整的数据分组已经由上游接收器单元132接收之前,下游发射器单元136已开始发射在数据帧中的数据分组。被转发的数据分组由应用处理单元133监视,使得从属节点130能够处理与由从属节点130执行的应用相关的数据,以及使得从属节点130能够发射在被转发数据分组的特定未使用位置中的应用数据。应注意,在其它实施例中,从属节点130可具有附加发射器和接收器单元。例如,从属节点130可与从属节点120具有相同的硬件结构,但是,因为没有额外的Ethernet (以太网)连接耦合于上游发射器单元和下游接收器单元,在上游接收器单元Rx接收的数据分组被传送到下游接收器单元Tx,而不是被传送到上游发射器单元。这为建立特定的网络结构提供了额外的灵活性。
[0017]分组交换网络100的拓扑结构是示例性的用于EtherCAT系统,其可以用于在控制自动化技术中传递信息,例如工厂生产线的控制。EtherCAT系统允许有效地利用以太网系统的带宽,以及由于直通转发等待时间被减小。为支持多个直通模式,通用以及灵活的直通模块以及确定性等待时间是必需的。
[0018]图2呈现了直通转发模块200。直通转发模块200可以被用于,例如,图1的分组交换网络100的从属节点120、130中的一个以及可以被用于上游或下游方向。特别是当数据分组必须被监视或处理的时候(例如在上游方向上),直通转发模块200提供了有利的灵活性。
[0019]直通转发模块200包括接收器单元RxQ,206、发射器单元TxQ,208、处理单元Proc,202和预加载单元PL,204。接收器单元RxQ,206接收来自网络的数据帧。该数据帧的前导由接收器单元RxQ,206使用,仅用于同步,并且不被认为是用于进一步处理和进一步发射的数据。接收器单元RxQ,206把数据分组分隔成数据块。该数据块被转发到处理单元Proc,202和/或到发射器单元TxQ,208。发射器单元TxQ,208被配置成基于由接收器单元RxQ,206接收的数据分组以及基于从预加载单元PL,204接收的和从处理单元Proc,202接收的数据块来发射数据帧。发射器单元TxQ,208将前导添加到它必须发射的数据分组。将要被发射的数据分组由发射器单元TxQ,208从接收单元RxQ,206、处理单元Proc,202和/或预加载单元PL,204接收的数据块确定。发射器单元TxQ,208包括发射器队列,在所述发射器队列中将要被发射的数据分组的数据块被临时存储。
[0020]预加载单元PL,204被配置成存储数据块,以及预加载单元PL,204能够将存储在预加载单元PL,204中的数据块预加载到发射器单元TxQ,208中。预加载意味着存储在预加载单元PL,204中的数据块被加载到发射器单元TxQ,208的队列用于发射,并且在加载数据块到发射器单元TxQ,208的特定时刻,还没有定义是否该数据块将要被发射。预加载也在下述时间间隔内被执行:在该时间间隔期间没有其它的数据可用于加载到发射器单元TxQ,208的发射队列中,尤其是当在接收器单元RxQ,206处没有数据分组被接收时(因此,在通常被称为帧间间隙的时间段期间)或者当稍后接收的数据帧的前导由接收器单元RxQ, 206接收时。
[0021]处理单元Proc,202被配置成处理数据块,这意味着它检测接收的数据分组或数据分组的特定数据块是否与下述设备相关:该设备包括直通转发模块200、和/或处理在运行应用中的相关数据、和/或转发相关数据到运行应用的分离的处理器。处理单元Proc,202还控制在接收器单元RxQ,206处接收的数据块到发射器单元TxQ,208的传输,使得根据模块的直通转发模式,包括所接收数据块的数据帧的发射可以在接收到完整的数据分组之前开始。将要传送的数据块不是必需经过处理单元Proc, 202。基于由处理单元Proc, 202提供的控制信号来从在接收器单元RxQ,206中的队列转发到发射器单元TxQ,208的队列的硬件也在本发明的范围之内。此外,处理单元Proc,202控制特定接收数据帧的第一数据块到预加载单元PL,204的传送。换句话说,如果正在接收新的数据帧并且所接收数据帧的数据分组的第一数据块被处理单元Proc,202分析,处理单元Proc,202被配置成判定新的数据帧的第一数据块是否需要被存储在预加载单元PL,204中。另外,存储在预加载单元PL,204中的数据块可能已在下述时间段内被传送到发射器单元TxQ,208的队列:在所述时间段期间在接收器单元RxQ,206处没有数据分组被接收。数据块没有被作为将要由发射器单元TxQ,208发射的数据帧的第一数据块而自动地发射。处理单元Proc,202被配置成判定是否已预加载的数据块将要被用作数据帧的第一数据块,其将要在特定数据帧的发射之后被发射,所述特定数据帧的发射是基于存储在所述预加载单元PL,204中的数据块所起源的接收数据帧。随后处理单元Proc,202能够控制将该预加载数据块作为在短的和确定性时间段内将要被发射的数据帧的第一数据块而发射。
[0022]在图2的底端,两个数据帧210、216被示意地画出。时间轴也被指示。第一数据帧210在第二数据帧216之前被接收。每个数据帧210、216开始于前导PA,其仅用于在物理层,以将接收器单元与发射相应数据帧210,216的发射器单元同步。前导不包含对于包括直通转发模块200的设备来说是重要的数据。每个数据帧还包括数据分组212,218,其被接收器单元RXQ,206细分为数据块BLl...BLn。数据分组包括与数据链路层和OSI通信层的更高层相关的数据。数据分组212,218包括,例如,64至1518字节的以太网数据分组。在一个实施例中,数据块BLl...BLn全部具有相等的比特数目-它们的规模是相等的。在实际的实施例中,单个数据块BLx的规模是8个字节。在另一个实施例中,规模是4字节。
[0023]例如,在EtherCAT系统中,数据分组始终是可变规模的以太网数据分组。以太网数据分组始终是以目的地址、源地址和类型字段开始。例如,在EtherCAT系统中,在节点链中被发射的数据分组通常具有相同的目的地址、源地址和类型字段。因此,多个随后接收的数据分组的起始等于第一接收数据分组的起始。因此,如图2的底端所示,数据分组218的第一数据块BLl等于数据分组212的第一数据块BL1。这为优化直通转发模块的直通转发操作提供了机会。
[0024]直通转发模块200借助于预加载单元PL,204和经由处理单元Proc,202的预加载单元PL,204的控制,提供了这种最优化。如果第一数据分组212正在被接收并且第一数据分组212的第一数据块BLl正在被处理单元Proc,202分析和/或处理,那么第一数据块BLl被传送到发射器单元TxQ,208以及到预加载单元PL,204。第一数据块BLl被传送到发射器单元TxQ,208,使得基于所接收的第一数据分组的数据帧的发射可以开始。第一数据块BLl也被传送到预加载单元PL,204,用于存储在此单元内,使得当没有新的数据由接收器单元RxQ,206接收时,第一数据块BLl的内容可以被预加载到发射器单元TxQ,208中。没有新数据被接收器单元TxQ,206接收的时段在图2中由时间段214指示,该时间段包括没有数据帧被接收器单元RxQ,206接收的时间帧,并且可选地包括后续数据帧216的前导PA被接收的时段。如果第一块BLl被预加载到发射器单元TxQ,208,当后续数据帧216在接收器单元RxQ,206被接收时,在不需要处理在处理单元Proc,202中的后续数据帧216的第一数据块BLl并且不需要将第一数据块216传送到发射器单元TxQ,208的情况下,发射器单元TxQ,208可以尽早开始发射后续数据帧。在实际的实施例中,在接收到后续数据分组218的第一数据块BLl后,被预加载到发射器单元TxQ,208中的第一数据块BLl的发射可能立即开始。紧接在第一数据块BLl接收之后的这个时刻是Proc,202可以控制使用预加载数据块的momentin时间,因为所接收的第一数据块的内容是由直通转发模块已知的。因此,等待时间由前导PA的规模以及第一数据块BLl的规模所确定。
[0025]在接收和处理第一数据帧210之后,被预加载在预加载单元PL,204中的第一数据块BLl可用于在基于所接收的第一数据帧210的数据帧发射之后被发射的数据帧的发射。根据数据的特定类型和直通转发模块正在被使用的分组交换网络的拓扑结构,并不是所有的数据分组在其第一数据块BLl中具有恰好完全相同的内容。应注意,处理单元Proc,202控制被预加载在发射器单元TxQ, 208的第一数据块BLl的使用,这意味着处理单元Proc,202提供信号给发射器单元TxQ,208,所述信号指示预加载的第一块BLl可以被使用与否,因此,可以被发射或者必须被丢弃。这也许是预加载的第一数据块BLl可以不被用于将要被发送的数据帧。然后预加载的第一数据块BLl被丢弃,以及所述处理器控制另一第一数据块BLl到发射器单元TxQ,208的传送。在具有特定网络拓扑结构的特定网络的另一个实施例中,虽然看上去稍后接收的数据分组218的第一数据块BLl的内容不同于第一接收数据分组212的第一数据块BLl的内容,但是预加载的第一数据块BLl还是可以用于随后发送的数据帧。例如,该情况是,当链中的所有节点执行直通转发以及主节点不依赖于以太网数据分组的目的地址和源地址的时候。
[0026]使用处理单元PrOC,202允许不同的直通转发模式的实现,以及没有额外的硬件必须被添加到该模块,以支持这种不同的模式,-仅其他程序代码必须被提供给实施不同直通转发模式的处理单元Proc, 202。
[0027]图3呈现了直通转发模块300的另一视图。
[0028]图3呈现了接收器单元RxQ,306的另一实施例。接收器单元RxQ,306类似于图2的接收器单元RxQ,206。接收器单元RxQ,306包括被配置成将接收数据分组分隔成数据块的分隔单元Part,320。在一个实施例中,分隔单元Part,320可以被配置成将接收到的数据分组分隔成相等规模的数据块,例如,每数据块8字节,或者,在另一实施例中,每数据块4字节。
[0029]接收器单元RxQ,306被配置成将接收数据分组的第一数据块提供给预加载单元304。另外,在处理单元Proc,202的控制下,接收器单元RxQ,306将所有或特定的接收数据分组的数据块传送到发射器单元TXQ,208。在另一实施例中,数据块由接收器单元RxQ仅传送到处理单元Proc,202,以及处理单元Proc,202负责数据块到预加载单元304和发射器单元208的发射。在又一实施例中,接收器单元RxQ传送数据块到预加载单元304,用于与预加载单元304的内容相比较(更多细节在下面的讨论中被讨论)以及数据块被传送到处理单元Proc,202,处理单元Proc,202必要时将数据块传送到发射器单元TxQ。
[0030]图3还显示了预加载单元PL,304的一个实施例。预加载单元PL,304包括用于存储第一数据块的数据块存储寄存器Dreg,314。数据块存储寄存器Dreg,314具有单一的数据块规模。然而,如果直通转发模块能够处置不同规模的数据块,那么数据块存储寄存器的规模至少足够大,以存储最大可能的数据块规模。数据块存储寄存器Dreg,314可以直接耦合于发射器单元TxQ,208,使得存储在数据块存储寄存器Dref,314中的内容可以被预加载到发射器单元TxQ,208。
[0031]预加载单元PL,304还包括比较单元Comp,316,它将接收数据帧的第一数据块的内容与存储在预加载单元PL,304中的数据块内容进行比较。因此,当接收器接收到新的数据分组,该数据分组的第一数据块被转发到比较单元Comp,316。基于比较结果,处理单元Proc, 202能够判定存储在预加载单元PL,304内的数据块是否必须作为将要被发射的数据帧(其是这样的数据帧:该数据帧是基于在该特定时刻正在被及时接收的数据帧)的第一数据块使用。比较单元Comp,316提供信号,该信号包括与处理单元Proc,202的比较结果。这样的信号可以是中断、或者在特定的实施例中是状态信息信号或存储在状态寄存器中的状态信息比特。在一个实施例中,该中断可以是被提供给包括直通转发模块200的设备的中央处理单元的可屏蔽中断,用于例如向应用通知所接收的第一数据块意外地与数据块存储寄存器Dref的内容不匹配。
[0032]在一个实施例中,比较单元Comp,316可以借助于XOR功能被实现,其将存储在预加载单元PL,304中的数据块的比特与稍后接收的数据帧的第一数据块的比特进行比较。如果XOR功能的结果是没有比特不同,则比较单元Comp,316可向处理单元Proc,202通知在那个特定时刻正被及时接收的数据帧的第一数据块等于存储在预加载单元PL,304中的数据块,这可能会触发处理器单元Proc,202,以控制已经存在于发射器单元TxQ,208的发射队列中的预加载第一数据块的使用。如果处理单元Proc,202被通知了该比较显示在特定时刻正在被及时接收的数据帧的第一数据块不同于存储在预加载单元PL,304中的数据块,处理单元Proc,202可以判定不使用已经在发射器单元TxQ,208的发射队列中存在的预加载的第一数据块,并同时控制最新接收的第一块向发射器单元TxQ,208的传送,和/或这个第一数据块向预加载单元PL,304的传送。应注意,由XOR功能进行的比较可以在硬件中被实现,以及也可以相对较快地进行比较。因此,接收数据帧的第一数据块内容与存储在预加载单元PL,304中的数据块内容的比较没有引入额外的等待时间。
[0033]预加载单元PL,304可以可选地包括发射属性寄存器TxAt,310,其包括属性,所述属性正在被发射器单元TxQ,208使用,以发射存储在预加载单元PL,304中的数据块的数据。如果这样的发射属性寄存器TxAt,310存在于预加载单元PL,304中,则预加载单元PL,304还被配置成在将所存储的数据块预加载到发射器单元TxQ,208的同时,将发射属性提供给发射器单元TxQ,208。因此,根据本实施例,发射器单元TxQ,208被配置成将发射属性与数据块一起接收,以及发射属性可以与所接收的数据块一起被存储在发射队列中。
[0034]预加载单元PL,304可以可选地包括在其中状态和控制属性被存储的状态和控制属性寄存器SReg,312。状态属性主要涉及预加载单元PL,304的状态。控制属性主要涉及由处理单元Proc,202对预加载单元PL,304的控制。状态和控制属性寄存器SReg,312被配置成由处理单元Proc,202读取,以及在该可选实施例中,处理单元Proc,202被配置成在状态和控制属性寄存器SRef,312中写入控制信息。可选地,预加载单元PL,304能够读取和写入状态和控制属性寄存器SReg,312。状态属性的例子是:“重置”,其可以由处理单元Proc, 202使用以刷新和解锁预加载单元PL,204的寄存器;“锁定”,其指示数据块存储寄存器Dreg,314是否被数据块填充以及可以不被重写;“失配预期”,其是指示预期接收数据帧的第一数据块不完全等于存储在数据存储寄存器Dreg,314中的数据块的属性-尽管在接收数据帧的第一数据块和存储在预加载单元PL,304中的数据块之间有失配,但是这个属性允许使用预加载数据块;“失配”,其是指示最后执行的比较是否显示接收的第一数据块与数据存储寄存器Dreg,314的内容不匹配的属性;“变化”,其可以由处理单元PrOC,202设置,以指示数据存储寄存器Dreg,314的内容必须被当前正在接收的数据帧的第一数据块重写;“规模”,其指示数据块的比特数或字节数-这可以是存储在预加载单元PL,204中的数据块的规模,或由直通转发模块200处理的所有数据块使用的规模。属性的内容可以被存储为别特、字节,或例如,对象的实例等。例如,属性的信息可以由O或1、逻辑真或假、或者表不彳目息的任何其他表达来表不。
[0035]在图3中,在处理单元Proc,202和接收器单元RxQ,306和发射器单元TxQ,208之间画了线。这并不一定意味着在所有实现方案中在处理单元Proc,202和接收器单元RxQ,306和发射器单元TxQ,208之间有直接的物理连接。处理单元Proc,202可以使用预加载单元304,PL的状态和控制属性寄存器Sreg,312,以控制在直通转发模块中的不同数据流。例如,处理单元Proc,202可在状态和控制属性寄存器Sreg,312中设置一个或多个比特,所述一个或多个比特被预加载单元PL,304、接收器单元RxQ,306和发射器单元TxQ,208使用,以判定是否特定的数据块必须从接收器单元RxQ,306传送到预加载单元PL,304和/或到发射器单元TxQ,208,以及是否存储在预加载单元PL,304中的数据块必须被预加载到发射器单元TxQ,208,以及是否预加载的数据块必须被发射器单元TxQ,208使用在随后发送的数据帧中。
[0036]图4呈现了直通转发模块400的另一个实施例。直通转发模块400包括第一接收器/发射器对430、第二接收器/发射器对440、处理单元402和预加载单元PL,204。预加载单元PL,204类似于之前讨论的预加载单元。第一接收器/发射器对430和第二接收器/发射器对440被布置为连接到不同的物理连接,这意味着,对430,440中的一个被连接到第一其它节点,以及对430,440中的另一个被连接到第二其它节点。同样地,图4的直通转发模块400可以在图1的从属节点120中被使用。每个接收器/发射器对430包括接收器单元RxQn,436,446和发射器单元TxQn,438,448,其可经由与耦合于单个物理连接的另一个节点的单个物理连接在相同时刻发送和接收。在一个实施例中,直通转发模块400可以被布置成使得在第二接收器/发射器对440的接收器单元RxQ2,446处接收的所有数据在没有被处理单元402和/或预加载单元PL,204处理和/或检查的情况下,被自动地转发给第一接收器/发射器对430的发射器单元TxQl,438。正如在先前实施例中所讨论的,由第一接收器/发射器对430的接收器单元RxQl,436接收的数据被处理单元402和预加载单元PL,204处理、分析和监视。因此,当在第一接收器/发射器对440的接收器单元RxQl,436处没有数据被接收时,预加载单元PL,204被用来存储在第一接收器/发射器对430的接收器单元RxQl,436接收的数据分组的第一数据块,以及将所存储的数据块预加载到第二接收器/发射器对440的发射器单元TxQ2,448的发射队列中,-进一步地,处理单元402被配置成控制被预加载到发射器单元TxQ2,448的队列中的数据块的使用。
[0037]在另一个实施例中,直通转发模块400包括两个预加载单元204。第一预加载单元PL, 204被使用在从第一接收器/发射器对430的接收器单元RxQl,436到第二接收器/发射器对440的发射器单元TxQ2,448的数据流中。第二预加载单元PL,404被使用在从第二接收器/发射器对430的接收器单元RxQ2,446到第一接收器/发射器对440的发射器单元TxQl,438的数据流中。
[0038]直通转发模块400的处理单元402包括RISC处理器426和处理队列PQ,420。处理队列被细分为接收处理队列RxQ,422和发射处理队列TXQ,424。接收处理队列RxQ,422接收来自接收器单元RxQn,436,446之一或两者的数据块。如果数据正在被处理,那么处理的数据块被放入发射处理队列TXQ,424,用于被传送到必须利用处理的数据块来发射数据帧的发射器单元TxQn438,448中的一个。处理队列PQ,420可以作为硬件队列被实现,但是可以也是软件解决方案,所述软件解决方案与存储介质(诸如,例如易失性存储器单元)的密切合作来操作。处理队列RxQ,TxQ可以作为先入先出(FIFO)队列被实现,但是可以也作为其它类型的队列被实现,例如,在其它类型的队列中,数据块按照与分配给该数据块的优先级值相对应的方式排队。应注意,在处理队列RxQ,TxQ,422,424中的入口是数据块。在直通转发模块400中,所有数据在数据块中被传送以及被处理,以获得确定性的等待时间。
[0039]处理单元402的RISC处理器426是能够执行计算机程序代码的处理器。程序码可涉及在包含直通转发模块的设备上运行的应用。程序代码也可涉及由处理单元402执行的功能,例如i )控制数据块到有关的发射器单元TxQn,438,448的传送,ii)控制特定接收数据帧的第一数据块到预加载单元204的传送,iii)控制使用预加载数据块作为将要由发射器单元TxQn,438,448之一发射的数据帧的第一数据块,iv )例如经由状态和控制寄存器(如在图3的上下文中所讨论的),控制和设置预加载单元PL,204,404,以及,例如,V)将直通转发模块的状态控制和信号通知到运行更高层功能的另一个处理器。RISC处理器426可以执行若干线程,诸如例如,与单一接收器单元RxQn,436,446相关的线程,用于处置由相应的接收器单元RxQn,436,446接收和分隔的数据块的接收,以及诸如例如,与单一发射器单元TxQn438,448相关的线程,用于控制经由相应的发射器单元TxQn438,448的数据块的发射。RISC处理器426可以还被提供有存储介质,诸如例如,易失性外部存储器或内部高速缓冲存储器。此外,RISC处理器426被配置成运行简化指令集,但要注意的是,本发明不限于仅使用RISC处理器-具有更复杂指令的其它处理器可以也被使用,以取代RISC处理器426。此外,RISC处理器426可具有按特定顺序执行所有线程的单一核心,以及RISC处理器426可具有多个核心,例如,使得特定的时间关键线程仅在单一核心上被执行。
[0040]使用包括运行程序的处理器的处理单元402具有的优势在于,可以由直通转发模块400支持若干直通转发方案。然而,该处理可以引入一些等待时间和一些抖动。因此,与预加载单元PL,204结合,可以在直通转发方案中获得等待时间和抖动的最佳的减小,因为将要被发射的第一数据块已被预加载到特定发射器单元TxQn,438,448的发射队列,并且没有抖动的额外等待时间由于下述原因而需要引入:由处理单元402处理相应数据块、以及将该数据块从接收器单元RxQn436,446传送到接收处理队列RxQ,422、以及从发射处理队列TxQ, 424传送到发射器单元TxQn, 438,448。
[0041]图2或4的直通转发模块200,400可以被集成在一个大规模集成电路上,以及可以在半导体设备上被制造。
[0042]在前面的图2和图3中,预加载单元204,304被绘制成分离的实体。应注意,本发明的预加载单元并不限于仅在分离的硬件块上是可用的,或者是在半导体设备上的分离可识别单元。此外,预加载单元不一定是在硬件中被实现。在特定实施例中,处理单元Proc,202运行程序代码,该程序代码与易失性存储器一起提供了预加载单元PL,204,304的功倉泛。
[0043]还应注意,本发明并不限于处理单元Proc,202、预加载单元PL,204,304、接收器单元RxQ,206,306和发射器单元TxQ,208之间的特定内部通信结构。例如,不同的单元可以经由直接通信连接、经由单一的总线通信结构、这些通信结构的组合和/或经由用于在直通转发模块中传送的数据、属性和信号的其它方式来彼此通信。正如本发明使用的,术语“总线”被用来指在一个时间时刻可以被用于传送一条信息的多个信号或导体。
[0044]图5显示了在直通转发模式下接收和发射数据帧的方法500。该方法包括以下阶段:i )由接收器单元接收Rxl,502第一数据帧;ii )将第一数据帧分隔Partl,504成数据块;iii)在处理单元的控制下,可选地控制Contrl,506数据块传送到发射器单元的传送;iv)由发射器单元可选地发射Txl,508第二数据帧,第二数据帧包括所传送的数据块;V )可选地比较Compl,510第一数据帧的第一数据块与存储在预加载单元中的数据块;vi )在处理单元的控制下,控制Contr2,512第一数据帧的第一数据块传送到预加载单元的传送,以及控制Contr2,512,在预加载单元中所传送的第一数据块的存储,vii)如果没有数据正在被接收器单元接收,则预加载PL,514存储在预加载单元中的数据块到发射器单元。接收器单元没有接收数据意味着没有任何信息由接收器单元接收或后续数据帧的前导正在被接收器单元接收。
[0045]该方法还包括以下可选的阶段:i )由接收器单元接收Rx2,516第三数据帧;ii )将第三数据帧分隔Part2,518成数据块;iii )比较Comp2,520第三数据帧的第一数据块与存储在预加载单元中的数据块;iv )在处理单元的控制下,控制使用Contr3,522被预加载到发射器的数据块作为基于所接收的第三数据帧而发射的第四数据帧的第一数据块;V )将第二数据块和第三数据帧的另外的数据块传送Tf,524到发射单元;vi)由发射器单元发射Tx2,526第四数据帧,其中第四数据帧包括预加载的第一数据块、以及第二数据块和另外的所传送的数据块。
[0046]应注意,方法500的步骤以特定的顺序在图5中被绘制。就此范围来说,各个阶段不是直接彼此依赖,执行阶段的顺序可以不同于所绘制的顺序。例如,控制Contrl,506数据块到发射器单元的传送以及由发射器单元的第二数据帧的发射Txl,508也可以在控制Contr2,512第一数据块到预加载单元的传送和存储之后被执行。
[0047]综上所述:
[0048]本发明涉及直通转发模块200、集成电路、半导体设备以及在直通转发模式下接收和发射数据帧的方法。直通转发模块200处理在数据块中的接收数据帧210,216。模块200包括预加载单元204,用于存储接收数据帧210的第一数据块BL1。在接收器单元206接收后续的数据帧之前,所存储的第一数据块BLl可以由预加载单元204预加载到发射器单元208中。处理单元202控制第一数据块到预加载单元204的传送,并控制使用预加载的数据块作为将要被发射的数据帧的第一数据块。
[0049]本发明可以在计算机程序中被实现,该程序用于在计算机系统上运行,至少包括代码部分,所述代码部分用于当在可编程的装置上(例如计算机系统或启用可编程的装置)运行以执行根据本发明的设备或系统的功能时,用于执行根据本发明的方法的步骤。计算机程序可能例如包括以下一个或多个:子程序、函数、过程、对象方法、对象实现、可执行的应用、小程序、小服务程序、源代码、对象代码、共享库/动态装载库和/或设计用于在计算机系统上的执行的其它指令序列。计算机程序可以被提供在数据载体上,例如CD-rom或软盘,与在计算机系统的存储器中可加载的数据一起存储,表示计算机程序的数据。数据载体可以还是数据连接,例如电话电缆或无线连接。
[0050]正如本发明中所使用的,术语“程序”被定义为在计算机系统上被设计用于执行的指令序列。程序或计算机程序,可以包括子程序、函数、程序、对象方法、对象实现、可执行的应用、小程序、小服务程序、源代码、对象代码、共享库/动态装载库和/或设计用于在计算机系统上的执行的其它指令序列。
[0051]在一个实施例中,直通转发模块200,300,400是计算机系统,例如个人计算机系统。其它实施例可以包括不同类型的计算机系统。计算机系统是信息处理可以被设计为向一个或多个用户提供独立的计算能力的系统。计算机系统可以有许多形式包括但不限于主机、微型计算机、服务器、工作站、个人电脑、笔记本、个人数字助理、电子游戏、汽车和其它嵌入式系统、手机和其它无线设备。典型的计算机系统包括至少一个处理单元,关联的存储器和许多输入/输出(I/O)设备。
[0052]计算机系统根据程序处理信息,并通过I/O设备产生结果输出信息。计算机程序是一系列指令例如特定应用和/或操作系统。计算机程序可以在计算机可读存储介质上被内部地存储或通过计算机可读传输介质发射到计算机系统。计算机处理通常地包括执行(运行)程序或程序的部分,现有的程序值和状态信息,以及通过操作系统用于管理处理的执行的资源。父进程可以产生其它子进程以帮助执行父进程的整体功能。因为父进程特定地产生的子进程以执行父进程的整体功能的一部分,由子进程(和孙进程等)执行的功能有时可以被描述为由父进程正在被执行。
[0053]在前面的说明书中,参照本发明实施例的特定例子已经对本发明进行了描述。然而,很明显各种修改和变化可以在不脱离附属权利要求中所陈述的本发明的宽范围精神及范围的情况下被做出。例如,连接可以是适合于将信号从或传输到相应的节点、单元或设备,例如通过穿孔中间设备。因此,除非暗示或说明,连接,例如,可能是直接连接或间接连接。
[0054]用于制造包括本发明中描述的直通转发模块的半导体设备的半导体衬底可以是任何半导体材料或材料组合,诸如砷化镓、娃锗、绝缘体上娃(SOI)、娃、单晶娃等以及上述的组合。
[0055]由于实施本发明的装置大部分是由本领域所属技术人员所熟知的电子元件以及电路组成,电路的细节不会在比上述所说明的认为有必要的程度大的任何程度上进行解释。对本发明基本概念的理解以及认识是为了不混淆或偏离本发明所教之内容。
[0056]如果适用,一些上述实施例可以使用各种不同的信息处理系统来实现。例如,尽管图2、图3和图4以及它们的讨论描述了示例性信息处理架构,该示例性架构被提出仅仅是为了提供讨论本发明的各个方面的有用的参考。当然,该架构的描述为了讨论的目的已被简化,以及它仅仅是根据本发明可以被使用的许多不同类型的适当架构之一。本领域所属技术人员将认识到逻辑块之间的界限仅仅是说明性的以及替代实施例可能合并逻辑块或电路元素或在各种逻辑块或电路元素上强加替代的分解功能。
[0057]因此,应了解这里所描述的电路只是示范的。从抽象的但仍有明确意义上来说,为达到相同功能的任何元件的排列是有效的“关联”,以便实现所需功能。因此,本发明中为实现特定功能的任意两个元件的结合可以被看作彼此“相关联”以便实现所需功能,不论架构或中间元件。同样地,任意两个元件这样的关联也可以被看作是“可运作性连接”或“可运作性耦合”于对方以实现所需功能。
[0058]又如,在一个实施例中,模块200、300、400的图示元素是位于单一集成电路或相同设备内的电路。替代地,模块200、300、400可包括任何数目的分离集成电路或彼此互连的分离设备。又如,模块200、300、400或其部分可以是物理电路的软表示或代码表示,或者是可以转换成物理电路的逻辑表示的软表示或代码表示。同样地,模块200、300、400可以在任何适当类型的硬件描述语言中体现。
[0059]然而,其它修改、变化和替代也是可能的。说明书和附图对应地被认为是从说明性的而不是严格意义上来讲的。
[0060]在权利要求中,放置在括号之间的任何参考符号不得被解释为限定权利要求。单词“包括”不排除其它元件或然后在权力要求中列出的那些步骤的存在。此外,本发明所用的“a”或“an”被定义为一个或多个。以及,在权利要求中所用词语如“至少一个”以及“一个或多个”不应该被解释以暗示通过不定冠词“a”或“an”引入的其它权利要求元件限定任何其它特定权利要求。所述特定权利要求包括这些所介绍的对发明的权利元件,所述权利元件不仅仅包括这样的元件。即使当同一权利要求中包括介绍性短语“一个或多个”或“至少一个”以及不定冠词,例如“a”或“an”。使用定冠词也是如此。除非另有说明,使用术语如“第一”以及“第二”是用于任意区分这些术语描述的元件的。因此,这些术语不一定表示时间或这些元件的其它优先处理。某些措施在相互不同的权利要求中被列举的事实并不表示这些措施的组合不能被用于获取优势。
【权利要求】
1.一种直通转发模块(200,300,400),包括: 接收器单元(RxQ,206,306,RxQl,436, RxQ2,446),所述接收器单元被配置成:接收数据帧(210,216),以及将所述数据帧(210,216)的数据分组(212,218)分隔成数据块(BLl..BLn), 发射器单元(TxQ,208,TxQl, 438, TxQ2,448),所述发射器单元被配置成:基于所接收的数据分组(212,218)来发射数据帧(210,216), 预加载单元(PL,204,304,404),所述预加载单元被配置成:在后续数据帧(216)被接收器单元(RxQ, 206, 306, RxQl, 436, RxQ2,446)接收之前,存储第一接收数据帧(210)的第一数据块(BLl),以及将所存储的第一数据块预加载到所述发射器单元(TxQ,208,TxQl,438,TxQ2,448)中, 处理单元(Proc,202,402),所述处理单元被配置成:控制所述第一接收数据帧(210)的所述第一数据块(BLl)到所述预加载单元(PL,204,304,404)的传送,以及控制使用被预加载的第一数据块作为将要由所述发射器单元(TxQ,208,TxQl,438, TxQ2,448)发射的后续数据帧的第一数据块,在第一发射数据帧的发射是基于所述第一接收数据帧(210)之后,所述后续数据帧被发射。
2.根据任何一个前述权利要求所述的直通转发模块(200,300,400),其中,所述处理单元(Pix)C,202,402)被配置成:当所述第一接收数据帧(210)的所述第一数据块的内容与存储在所述预加载单元(PL,204,304,404)中的所述第一数据块的内容不匹配时,控制所述第一接收数据帧(210)的所述第一数据块到所述预加载单元(PL,204,304,404)的所述传送。
3.根据任何一个前述权利要求所述的直通转发模块(200,300,400),其中,所述处理单元(Pix)C,202,402)被配置成:如果将要被发射的所述后续数据帧是基于随后接收的数据帧(216),则控制使用所述预加载数据块作为将要被发射的所述后续数据帧的第一数据块,其中,所述随后接收的数据帧(216)的所述第一数据块的内容与存储在所述预加载单元(PL,204,304,404)中的所述第一数据块的内容相匹配。
4.根据任何一个前述权利要求所述的直通转发模块(200,300,400),其中,所述处理单元(P1c,202,402)还被配置成:处理所述数据块,以及控制数据块(BL1..BLn)到所述发射器单元(TxQ,208,TxQl,438,TxQ2,448)的传送,以用于发射。
5.根据任何一个前述权利要求所述的直通转发模块(200,300,400),其中,所述预加载单元(PL,204,304,404)被配置成:当所述接收器单元(RxQ, 206, 306, RxQl,436,RxQ2,446)接收到后续数据帧(216)的前导(PA)时,将所存储的第一数据块传送到所述发射器单兀(TxQ,208, TxQl,438, TxQ2,448)。
6.根据任何一个前述权利要求所述的直通转发模块(200,300,400),其中,所述预加载单元(PL,204,304,404)包括数据块存储寄存器(Dreg,314),所述数据块存储寄存器用于存储所述第一数据块。
7.根据任何一个前述权利要求所述的直通转发模块(200,300,400),其中,所述预加载单元(PL,204,304,404)包括比较单元(Comp,316),所述比较单元用于将接收数据帧的第一数据块的内容与存储在所述预加载单元中的所述第一数据块的所述内容进行比较。
8.根据权利要求7所述的直通转发模块(200,300,400),其中,所述比较单元(Comp,316)被配置成:当所述接收数据帧的所述第一数据块的所述内容与存储在所述预加载单元(PL,204,304,404)中的所述第一数据块的所述内容不同时,给所述处理单元(Proc,202,402)提供中断。
9.根据权利要求6,7或8中任何一项所述的直通转发模块(200,300,400),其中,所述比较单元(Comp,316)被配置成:将XOR函数应用于所述接收数据帧的第一块的所述内容和存储在所述预加载单元中的所述第一数据块的所述内容。
10.根据任何一个前述权利要求所述的直通转发模块(200,300,400),其中,所述预加载单元(PL,204,304,404)包括发射属性寄存器(TxAt,310),所述发射属性寄存器包括发射属性,所述发射属性由所述发射器单元(TxQ,208,TxQl,438, TxQ2,448)使用,以发射被存储在所述预加载单元(PL,204,304,404)中的所述第一数据块的数据,所述预加载单元(PL,204,304,404)被配置成:在将所存储的第一数据块预加载到所述发射器单元(TxQ,208,TxQl,438, TxQ2,448)的同时,将所述发射属性提供给所述发射器单元(TxQ,208,TxQl,438,TxQ2,448)。
11.根据任何一个前述权利要求所述的直通转发模块(200,300,400),其中,所述预加载单元(PL,204,304,404)包括状态和控制属性寄存器(Sreg,312),所述状态和控制属性寄存器包括与所述预加载单元(PL,204,304,404)的状态相关的状态和控制属性,所述状态和控制属性寄存器(Sreg,312)被配置成被所述处理单元(Proc,202,402)读取,以及所述处理单元(PrOC,202,402)被配置成:在所述状态和控制属性寄存器(Sreg,312)内写入状态信息。
12.根据权利要求11所述的直通转发模块(200,300,400),其中,所述预加载单元(PL,204,304,404)的所述状态和控制属性寄存器(Sreg,312)包括以下属性中的至少一个: 重置属性,用于指示所述预加载单元(PL,204,304,404)的必需重置, 锁定属性,用于指示数据块是否被存储在所述预加载单元(PL,204,304,404)中以及所述数据块是否可以被重写, 失配预期属性,用于指示是否预期到接收数据分组的第一数据块可以与存储在所述预加载单元(PL,204,304,404)中的所述第一数据块不同, 失配属性,用于指示最后接收的数据帧的所述第一数据块与存储在所述预加载单元(PL,204,304,404)中的所述第一数据块是否不匹配, 变化属性,用于指示存储在所述预加载单元(PL,204,304,404)中的所述数据块是否必须被下一个接收数据帧的所述第一数据块或被当前正在接收的数据帧的所述第一数据块重写, 规模属性,用于指示所述数据块(BLL.BLn)的规模。
13.根据任何一个前述权利要求所述的直通转发模块(200,300,400),其中所述数据块(BL1..BLn)具有相等的长度。
14.一种集成电路,包括根据任何一个前述权利要求所述的包括至少一个直通转发模块(200,300,400)。
15.一种半导体设备,包括根据权利要求1到13中任何一项所述的至少一个直通转发模块(200,300,400)。
16.一种在直通转发模式下接收和发射数据帧的方法(500),所述方法(500)包括: 由接收器单元接收(502)第一数据帧, 将所述第一数据帧分隔(504)成数据块, 在处理单元的控制下,控制(512)所述第一数据帧的所述第一数据块到预加载单元的所述传送,以及控制所传送的第一数据块到所述预加载单元的存储,以及 如果没有数据被所述接收器单元接收,则将存储在所述预加载单元中的数据块预加载(514)到所述发射器单元中。
17.根据权利要求16所述的在直通转发模式下接收和发射数据帧的方法(500),所述方法(500)还包括: 在处理单元的控制下,控制(506)所述数据块到发射器单元的所述传送,以及 由所述发射器单元发射(508)第二数据帧,所述第二数据帧包括所传送的数据块。
18.根据权利要求16或17中任何一项所述的在直通转发模式下接收和发射数据帧的方法(500),所述方法(500)还包括: 由所述接收器单元接收(516)第三数据帧, 将所述第三数据帧分隔(518)成数据块, 控制(522)使用被预加载到所述发射器单元中的所述数据块作为将要发射的第四数据帧的第一数据块,所述第四数据帧是基于所接收的第三数据帧, 将第二数据块和所述第三数据帧的另外的数据块传送(524)给所述发射器单元, 由所述发射器单元发射(526)所述第四数据帧,所述第四数据帧包括被预加载的第一数据块以及所述第二数据块和另外的所传送的数据块。
19.根据权利要求16,17或18中任何一项所述的在直通转发模式下接收和发射数据帧的方法(500),所述方法(500)还包括: 将所述第一数据帧的第一数据块与存储在所述预加载单元中的所述数据块进行比较(510), 以及其中,当所比较的第一数据块不同于存储在所述预加载单元中的所述数据块时,控制(512)所述第一数据帧的所述第一数据块到所述预加载单元的所述传送的阶段导致了所述第一数据块到所述预加载单元的所述传送和存储。
20.根据权利要求18所述的在直通转发模式下接收和发射数据帧的方法,还包括: 将所述第三数据帧的第一数据块与存储在所述预加载单元中的所述数据块进行比较(520), 以及其中,当所比较的第一数据块等于存储在所述预加载单元中的所述数据块时,控制(522)使用被预加载到所述发射器的所述数据块导致了使用所述预加载数据块用于所述第四数据帧。
【文档编号】H04L12/701GK104255004SQ201280072652
【公开日】2014年12月31日 申请日期:2012年4月26日 优先权日:2012年4月26日
【发明者】格拉哈姆·埃德米斯顿 申请人:飞思卡尔半导体公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1