在被管理网络上的LAYER-2处的包汇聚和分割转让专利

申请号 : CN200980138932.X

文献号 : CN102171580B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 吴宗良

申请人 : 熵敏通讯股份有限公司

摘要 :

一种从根据第一协议的第一网络内的节点处接收包的方法和设备。通过存储该接收包的直接存储器访问(DMA)控制器读出与每一个接收包相关的描述符。选择可控参数的值以在按第二协议操作的第二网络上有效地传达该接收包的内容。在该接收包中的信息随后被组织进最新形成的包中,其大小使得它们有效地在使用第二协议的网络上传送。该最新形成的包被存入发送行缓冲区中并与协议描述符相关。为了有效地使用该第二协议,该协议描述符将信息提供给发送控制器以允许该发送控制器去选择并汇聚来自该发送行缓冲区的包。

权利要求 :

1.一种通信控制系统,该系统包括:

a)存储器;

b)耦合到该存储器的物理层控制器,该物理层控制器被配置来:i)生成至少一个接收描述符;

ii)接收来自第一网络的业务包,其中该业务包是根据第一协议被组织的;

iii)基于该接收描述符的内容将该业务包存入该存储器中;

iv)将该业务包组织成一个或多个将被根据第二协议在第二网络上发送的分组数据单元,所有该分组数据单元具有同一长度;

v)生成协议描述符并将每一个这样的协议描述符与所述一个或多个分组数据单元相关;和vi)将每一个协议描述符存入该存储器内的一个入口中;和c)网络中央处理单元(CPU),该网络中央处理单元被配置来:i)读出该协议描述符;和

ii)如果在该存储器中存储了超过最小数量的协议描述符,则在第二网络上生成保留请求。

2.如权利要求1所述的通信控制系统,其中该物理层控制器包括直接存储器访问(DMA)控制器,以及该直接存储器访问控制器基于该接收描述符的内容将该业务包存入该存储器中。

3.如权利要求1所述的通信控制系统,其中该第一网络是以太网网络以及该第二网络是MoCA网络。

4.如权利要求3所述的通信控制系统,其中该业务包是以太网包。

5.如权利要求1所述的通信控制系统,其中该接收到的业务包的大小不同于该分组数据单元的大小。

6.如权利要求5所述的通信控制系统,其中每一个具有来自同一业务包内容的分组数据单元将与同一协议描述符相关。

7.如权利要求1所述的通信控制系统,其中该接收到的业务包在大小上等于该分组数据单元。

8.如权利要求1所述的通信控制系统,其中该物理层控制器是十亿字节以太网物理层控制器(GEPHY)。

9.如权利要求1所述的通信控制系统,其中该存储器被划分为接收缓冲区,接收行缓冲区,发送缓冲区和发送行缓冲区。

10.如权利要求9所述的通信控制系统,其中该接收缓冲区被划分为接收缓冲队列和接收描述符队列。

11.如权利要求10所述的通信控制系统,其中该接收缓冲队列接收来自该物理层控制器的该业务包。

12.如权利要求11所述的通信控制系统,其中该接收缓冲队列由该接收描述符队列定义和控制。

13.如权利要求9所述的通信控制系统,其中该接收行缓冲区被划分为接收行缓冲区描述符和接收行缓冲区入口队列。

14.如权利要求13所述的通信控制系统,进一步包括端口控制转换控制器(TC)和总线,其中在该总线上将该端口控制转换控制器耦合到该网络中央处理单元和该存储器。

15.如权利要求9所述的通信控制系统,其中该发送缓冲区被划分为发送描述符队列和发送缓冲区队列。

16.如权利要求15所述的通信控制系统,其中该物理层控制器为每一个接收到的业务包将描述该业务包的信息载入到该发送描述符队列。

17.如权利要求9所述的通信控制系统,其中该发送行缓冲区被划分为发送行缓冲区入口队列和发送行缓冲区描述符。

18.如权利要求5所述的通信控制系统,其中该分组数据单元的大小是由通过选择可控参数的值来确定的。

19.如权利要求18所述的通信控制系统,其中该可控参数的值是自动选择的。

20.如权利要求18所述的通信控制系统,其中该可控参数的值是手动选择的。

说明书 :

在被管理网络上的LAYER-2处的包汇聚和分割

[0001] 相关申请的交叉引用
[0002] 本申请要求于2008年12月24日提交的名为“在被管理网络上的LAYER-2处的包汇聚和分割”的第12/343,941号美国非临时专利申请的优先权,它们的全部内容通过引用并入本文。

技术领域

[0003] 本发明公开的方法和设备涉及网络通信,更具体地,一些实施例涉及在家庭娱乐网络中的包的有效通信。

背景技术

[0004] 对于家庭娱乐组件来说,越来越需要在家庭娱乐网络上与另一个其它组件进行通信。这样的通信允许娱乐类容,例如电影,音乐,因特网内容,等,如电话业务一样,被通过装置组成的网络进行处理而不是被独立于一个特定家庭娱乐装置。
[0005] 一个已经被采用以在家庭内建立家庭娱乐网络的特定标准是通过MoCA(同轴电缆多媒体联盟)建立的工业标准。该MoCA标准允许组件(有时被称为“节点”)与另外一个进行通信并当该介质连接到该节点时在使用同轴电缆的高速网络上共享内容。通过选择一个执行“网络控制器”(NC)功能的节点来建立一个上述网络。该NC功能包括在一个链接该网络所有节点的单个同轴电缆上组织和仲裁该通信。由于该介质(即,该同轴电缆)被共享,该MoCA标准建立了一个仲裁方案,通过该方案,该NC确定哪一个节点将及时在任意特定时间控制该介质。
[0006] 根据该方案,该NC将在该介质上调度所有通信。该调度被发给该网络中的每一个节点,其被称为介质访问计划(MAP)。该NC基于定期调度来发送MAP。每一个MAP被放在一个MAP周期的始端。该MAP指出哪一个节点将在下面的MAP周期内在每一个时间间隔处被传送。
[0007] 图1是示出在MAP 201,202和MAP周期203,205之间计时关系的计时图。一个MAP周期205被定义为在先前发送MAP 201控制下的信道上的通信活动。相应地,每一个MAP 201为下一个MAP周期205(只有一个这样的“下一个MAP周期”205在图1中示出)调度了所有的通信活动。应当注意,在先前MAP 201的调度控制下,下一个MAP 202在下一个MAP周期205期间被发送。相应地,该MAP 201确定了在下一个MAP周期205中将被发送的每一个包的下列信息:i)包开始时间;ii)包长度;iii)源节点;以及iv)目标节点。
[0008] 该MAP 201,202负责用来调度的包的一个特定类型是保留请求(RR)207,209,211。6个这样的RR在图1的第一MAP周期203中示出,开始于第一个RR 207以及结束于最后一个RR 209。一个RR 211在第二MAP周期205中示出。通过成员节点发送的RR 207,
209,211指出该成员节点具有其希望发送的包,以及因此请求该NC在该成员节点能发送这些包时在后续MAP周期中调度某一时间。相应地,当一个成员节点有信息要发送时,该成员节点首先必须等待该NC分配一个该成员节点能发送RR 207,209,211的时间。一旦该NC已经分配了一个期间该成员节点能发送RR207,209,211的时间,该成员节点将该RR 207,
209,211在该分配时间处发送给该NC(例如,在该包开始时间以及用作该RR 211的MAP
201所指出的包长度)。
[0009] 该RR 207,209允许该成员节点通知该NC该成员节点具有其需要发送的数据包。进一步地,该RR 207,209指出这些数据包的相关目标节点,包长度,包优先权等。具有高优先权的包将先于具有低优先权的包被调度。该NC使用该信息以在该成员节点能发送其需要发送的数据包期间调度时间。该NC随后通过产生和发送下一个MAP周期205的MAP 201来传达上述调度。
[0010] 一旦来自成员节点的RR已被允许,该成员节点将在该NC分配的时间期间发送被传达的数据包。该数据包具有一个特定格式,指出该数据包最大长度,和该数据包的包头的内容以及任意其它负载信息,例如前向纠错码。该数据包越长,将被使用介质的效率越高。即,被载入一个数据包的数据越多,负载数据的比率越大。该负载数据的比率越大,在给定时间长度的介质上能传达的数据越多(即,介质效率越高),假设测量效率所在的时间长度相对长于该包长度。
[0011] 但是,一个特定成员节点必须发送的数据可能来自不同源文件,具有不同包大小,具有不同目标和具有不同指定的优先权。相应地,对来自不同源文件的不同包的整理可能是复杂的并一般会给该网络带来低效。因此,需要一种有效率的相对简单方式以将来自不同源文件的信息分配给即将在网络上发送的包,例如MoCA网络,其具有一个已定义的包负载和最大包大小。

发明内容

[0012] 本文公开了一种在第一网络内从一个节点处接收包的方法和设备,其中该接收包根据第一协议进行组织。与每一个接收包相关的描述符包括通过存储该接收包的直接存储器访问(DMA)控制器读出的关于该接收包的信息。
[0013] 一个可控参数的值被选择。该可控参数确定了将被有效地在一个根据第二协议操作的第二网络上传达的包大小。可使用自动或手动处理的应用程序来选择该参数。在另一情况中,基于该接收包大小和该接收包中被传达的信息类型来优先选择该参数。在该接收包中的信息随后被组织成新格式的包,其大小使得它们在该第二协议中有效地在该网络上传达。基于该可控参数的值,该新格式的包的大小可等于该接收包的大小或大于该接收包。
[0014] 该新格式的包被存储在一个发送行缓冲区以及所有最初在同一业务包中的新格式包与一个协议描述符相关。该协议描述符提供信息给一个发送控制器来允许该发送控制器去从该发送行缓冲区处选择并汇聚包以有效使用该第二协议。

附图说明

[0015] 本发明公开的方法和设备,根据一个或多个各种实施例,参照下列附图进行描述。
[0016] 图1是示出在MAP和MAP周期之间计时关系的计时图。
[0017] 图2是包括本发明公开的方法和设备的系统的方框图。
[0018] 图3是用于本发明公开的方法和设备中的共享存储器的8个区域的示图。
[0019] 图4是在GEPHY接收缓冲队列和GEPHY接收描述符队列之间关系的示图。
[0020] 图5是根据本发明公开的方法和设备的一实施例的接收描述符的格式和内容的示图。
[0021] 上述附图仅仅被提供用于说明以及只是描述了本发明公开的方法和设备的一些实施例的示例。它们不应被认为限制了本请求权利的发明的宽度,范围,或适用性。应当注意,为了清楚和容易地进行理解,这些图没必要按比例制作。

具体实施方式

[0022] 此处公开了一种在一个网络内控制通信的方法和设备。下列描述首先涉及一个基于该MoCA标准的家庭娱乐网络。但是,本领域技术人员应当理解,本发明公开的方法和设备可被很好地用于任意需要高效使用该介质的通信网络中。
[0023] 图2是包括本发明公开的方法和设备的系统的方框图。MoCA网络的第一节点102和第二节点104通过同轴电缆106(该“介质”)进行连接。每一个节点102,104基本上相同。相应,这里将仅仅对一个节点102进行描述。根据本发明公开的方法和设备的一实施例,该节点102包括一个物理层控制器,例如一个十亿字节以太网物理层控制器(GEPHY)108,其执行来自存储器的指令。在一实施例中,该GEPHY包括支持1十亿字节每秒(Gb/s),100兆字节每秒(Mb/s),10Mb/s,以及其它速度。该节点102也包括一个以太网主机接口110。该节点102进一步包括:网络中央处理单元指令/数据存储器,例如MoCA中央处理单元指令/数据存储器112(MoCA CPU I/D存储器);网络CPU,例如MoCA CPU 114;网络端口,例如MoCA端口116,以及共享存储器118。上述组件的每一个通过系统总线120耦合在一起。
[0024] 如图2所示,该共享存储器被划分成4个缓冲区:(1)GEPHY接收缓冲区134,(2)GEPHY发送缓冲区135,(3)发送行缓冲区150,和(4)接收行缓冲区151。每一个缓冲区134,135,150,151被进一步地划分为2部分:(1)描述符队列和(2)数据缓冲队列。图3是该共享存储器118的所有8个区域的示图(即,该4个缓冲区每一个中的每一个该描述符和队列)。应当注意,与同一缓冲区相关的描述符队列和数据缓冲队列在该共享存储器118中未被示为相邻的。实际上,该8个区域中每一个在图3中是以块的形式显示,在本发明公开的方法和设备的一实施例中,每一个描述符队列和数据缓冲队列的入口未被相邻地存储。相反,这些入口被遍布该共享存储器118散开并被链接到另外一个。该共享存储器118的8个区域包括:
[0025] (1)GEPHY接收描述符队列301;
[0026] (2)GEPHY发送描述符队列303;
[0027] (3)发送行缓冲区描述符305;
[0028] (4)接收行缓冲区描述符307;
[0029] (5)GEPHY接收缓冲队列309;
[0030] (6)GEPHY发送缓冲队列311;
[0031] (7)接收行缓冲区入口队列313;
[0032] (8)发送行缓冲区入口队列315。
[0033] 本领域技术人员应当理解,可以许多不同方式对该共享存储器进行组织以实现本发明公开的方法和设备的目的。根据本发明公开的方法和设备的一实施例,存储在该共享存储器中的每一个数据缓冲队列和描述符队列内的信息能被放在该共享存储器的任意位置,以及可使用指针来寻址该信息。不过,这里对特定配置进行的展示是为了有助于表述对本发明公开的方法和设备的描述的理解。
[0034] 对该节点102操作的简单概括将提供对该节点102的每一个组件的具体功能的进一步解释的基础。如上所述,该节点102在该介质106上被耦合到另一节点104。另外,该节点102被耦合到一外部网络,例如,以太网网络,通过外部网络接口,例如GMII/MII接口122。在该节点102内业务包被通过一个外部网络处理器124传达到该GEPHY控制器108。
在该外部网络是以太网网络的情况中,该业务包是以太网包以及该外部网络处理器124是具有GMII/MII接口的网络处理器。在数据路径126上通过控制信息传达该业务包,通过管理接口128传达该控制信息。
[0035] 当通过该网络控制器124从该源文件接收到该业务包时,它们最初被存储在该共享存储器118内的GEPHY接收缓冲队列309中。该业务包随后被移到该发送行缓冲区入口队列(TLBEQ)315。该TLBEQ由该发送行缓冲区描述符305定义。在一实施例中,该TLBEQ315也在该共享存储器118内。通过将该业务包移到该TLBEQ 315,该业务包可被划分为被称为分组数据单元(PDU)的具有预定大小的包。在一实施例中,PDU都具有相同大小。该PDU的大小可被选择性地确定。“可被选择性地确定”这种描述的目的是表示可为特定文件选择该PDU的大小,其中该节点被使用并为该文件保留固定大小。可选择具有相同大小的PDU用来适应使用该节点的文件以优化该共享存储器的效率并使得在该网络上该节点
102,104之间的包传送更有效率,从下面提供的具体内容处这一点将变得更为清楚。
[0036] 当该业务包的大小相同于(或小于)该PDU大小时,整个业务包将被作为PDU存储在该TLBEQ 315的入口319中。或者,当该业务包的大小大于一个PDU时,该业务包被划分为多个PDU,每一个PDU被存储在该TLBEQ 315中的一个入口319内。该划分该业务包以在超过一个PDU内存储的处理被称为分割。
[0037] 每一个业务包与一个协议描述符(PD)相关。相应地,如果该业务包已被划分为多个PDU,从该一个业务包划分而来的所有PDU具有一个PD。具体关于该业务包如何被划分和存储在该TLBEQ 315中将在下面给出。
[0038] 具有同样特性,例如该PDU的优先权和将被发送的PDU的目标节点,的PDU,随后被汇聚入一个发送包并在该MoCA网络上被发送。正确的为每一个使用该节点的文件选择该PDU大小将会允许PDU被有效地汇聚。汇聚该PDU增加了在该网络的节点之间发送的每一个包中的负载大小。较大负载意味着在该节点102,104之间网络的介质访问控制(MAC)的效率增加。因为该包头(该信息不是负载)的大小将无论该MAC包的负载大小多大而基本固定,所以该MAC效率通常提高。相应地,通过使用相对大的发送包大小来最大化该MAC层效率是有利的。在本发明公开的方法和设备的实施例中,其中MoCA网络被用来在该发送节点102和该接收节点104之间通信,该发送包是一个MoCA包。在一实施例中,其中该节点102,104在一个MoCA网络上通信,每一个能够接收汇聚包的节点必须将该能力传达给该MoCA网络协调器。该网络协调器将该每一个节点的能力传达给每一个其它节点。一个发送节点仅仅将汇聚包发送给已经报告了它们具有接收这样汇聚包的能力的节点。
[0039] 在本发明公开的方法和设备的一实施例中,当一个文件使用固定业务包大小时,该业务包的大小被选作为该PDU的大小。或者,可为该业务包大小选择其它值。能够为不同文件重新定义该PDU大小是有利的(即,当需要处理不同大小的业务包时)。一旦创建,该PDU能随后以汇聚方式被重新组织在一起以形成具有一个长度的发送包,该长度对在该节点102,104之间的网络上进行传送非常有效,例如MoCA网络。现在将展示该数据流的细节。
[0040] 基本数据流
[0041] 下面是图2所示从该发送节点102到该接收节点104的基本数据流的说明。该数据流为其中该发送节点102接收来自一个外部源或其应用层的业务包的情况进行描述。注意到该节点102被称作为该“发送”节点102,其必须首先接收来自一个外部源或其应用层的业务包。在现在将要描述的实施例中,该发送节点102接收的业务包是以太网包。另外,在本发明公开的方法和设备的一实施例中,用来从该发送节点102通信到该接收节点104的网络是MoCA网络。不过,本领域普通技术人员应当理解,可由该发送节点接收任意类型业务包。同样,任意网络协议可被用于在该发送节点102和该接收节点104之间的信息通信。
[0042] 发送路径
[0043] 图2中所示的该外部网络控制器124包括十亿字节以太网介质访问控制层(GEMAC)装置130。该GEMAC 130发送业务包(例如,以太网包)给该GEPHY控制器108,通过该GMII/MII接口122。该接收到的业务包被临时存储在该共享存储器118的该GEPHY接收缓冲队列309中。通过该GEPHY接收描述符队列301定义和控制该GEPHY接收缓冲队列309。
[0044] 通过直接存储器访问(DMA)控制器132将该业务包放入该GEPHY接收缓冲队列309中。在一实施例中,该GEPHY控制器108包括数据接口控制(DIC)转换控制器(TC)140。
先于接收任意业务包,该DIC TC 140通过将至少一个接收描述符136(见图4)载入该GEPHY接收描述符队列301中来初始化该GEPHY接收描述符队列301。该直接存储器访问(DMA)控制器132读出该DIC TC 140载入的该接收描述符。该DMA控制器132使用在该接收描述符136中的信息用来控制将业务包存储入该GEPHY接收缓冲队列309的处理。
[0045] 图2示出了在该GEPHY控制器108中的该DMA控制器132和该DIC TC 140。不过,本领域技术人员应当理解,在可替换实施例中,该DMA控制器132,该DIC TC 140,或二者独立于该GEPHY控制器108。如图3所示,该GEPHY接收描述符队列301和该GEPHY接收缓冲队列309不需要被定位在该共享存储器118内的相邻位置。
[0046] 图4是在该GEPHY接收缓冲队列309和该GEPHY接收描述符队列301之间关系的示图。每一个业务包138被存储在该GEPHY接收缓冲队列309的一个入口138中。该描述符队列301包括被该DIC TC 140载入的接收描述符136的集合。每一个接收描述符136与该GEPHY接收缓冲队列309内入口138中的唯一入口相关。
[0047] 图5是根据本发明公开的方法和设备的一实施例的接收描述符136的格式和内容的示图。该DIC TC 140定义和配置该接收描述符136以控制从该GEPHY控制器108内部缓冲区到该GEPHY接收器缓冲区134的包转换(反之也可)。该DIC TC 140首先将设置第一状态的OWN位503写进该接收描述符。每一个接收描述符136包括4个字,每个字具有32位。该第一个字的前面31位是“第一保留”字段501,其留作以后使用。
[0048] 在该接收描述符136的第一个字的第32位是“OWN”位503。如果该OWN位503是在第一状态,其指示该接收描述符136可被该DMA控制器132使用。该DMA控制器随后可使用该接收描述符136去指示在那里来转换一个最新的接收业务包。一旦该DMA控制器132读出该接收描述符136并在该GEPHY接收缓冲队列309的相关入口138中存入一个业务包,该DMA控制器132将该接收描述符136的OWN位503设置为第二状态,其将该接收描述符136返回给该DIC TC 140以重新使用。相应地,当该OWN位503处于第二状态时,该OWN位503指示该DMA控制器132已经完成了对该接收描述符136的使用。该DIC TC 140随后可重新使用该接收描述符136。该DIC TC 140将根据一些预定义的分类标准将136中的包进行分类并将该业务包136从该GEPHY接收缓冲队列309移到一个在该TLBEQ 315中的虚拟队列。
[0049] 在本发明公开的方法和设备的一实施例中,当没有任何接收描述符136的OWN位503处于第一状态时,溢出情况发生。在本发明公开的方法和设备的一实施例中,该GEPHY控制器108包括具有高阈值接收缓冲区(未示出)。该高阈值是在流量控制帧(例如,PAUSE帧)触发之前在该控制器的接收缓冲区中能存入的接收帧的最大数量。设置该PAUSE帧以确保直到在该控制器的接收缓冲区内存在一个必要空间之前没有更多的业务包被发出。同样地,存在低阈值(在该PAUSE帧被释放的点)。在一实施例中,该高阈值是可基于该节点
102,104正执行的特定功能通过软件来设置的值(即,溢出情况不会发生是有多危急以及发生溢出情况和将导致产生不必要PAUSE帧的低效率之间的平衡)。
[0050] 该接收描述符136的第二个字的前面11位包括该“缓冲区大小”字段505(见图5)。该缓冲区大小字段505指示由“缓冲区地址”字段511(即,与上述接收描述符136相关的该GEPHY接收缓冲队列309中的入口)指示的地址处的该GEPHY接收缓冲队列309的入口138中可被获得用来存入该接收业务包的空间数量。该第二个字的下一个11位是“第二保留”字段507。该接收描述符136的第二字的最后10位是“第三保留”字段509。
[0051] 该整个第三个字是该缓冲区地址字段511。该缓冲区地址字段511指示与该接收描述符136相关的GEPHY接收缓冲队列309的入口138的地址。该缓冲区地址字段511将在该GEPHY接收缓冲队列309中一个特定入口138与该接收描述符136相关。
[0052] 最后,该整个第四和最后字是“下一个描述符地址”字段513。该下一个描述符地址字段513指示该下一个接收描述符136开始的地址。该下一个描述符地址513的使用允许该接收描述符136在该GEPHY接收描述符队列301中脱离序列并被存储在非相邻位置。在本发明公开的方法和设备的一实施例中,该GEPHY接收缓冲队列309是一个循环队列。相应地,在最后接收描述符中的下一个描述符地址字段513指回到该第一接收描述符。在一实施例中,在该GEPHY接收缓冲队列309内存在4个入口。由于在该GEPHY接收缓冲队列
309中的入口138和在该GEPHY接收描述符队列301中的接收描述符136之间存在一对一的关系,在该GEPHY接收描述符队列301中也存在4个接收描述符136(见图4)。
[0053] 该缓冲区大小字段505具有11位。因此,该业务包在长度上可达到2048字节(即,2的11次方)。注意在本文中,每一个业务包仅需要在该GEPHY接收缓冲队列309内的一个入口138。相应地,只存在一个与每一个业务包138相关的接收描述符136。当该GEPHY控制器108接收到一个业务包并存入该GEPHY接收缓冲队列309内时,在该相应接收描述符136内的该OWN位503被设置为第二状态。
[0054] 如上所述,通过该接收描述符136来控制该DMA控制器132。即,该DMA控制器132从该接收描述符136处读出该OWN位503和该缓冲区地址字段511。该DMA控制器132确定在何处基于该OWN位503和该缓冲区地址字段511存储即将到来业务包的每一个。如果该OWN位503处于第一状态,则通过该DMA控制器132可获得该接收描述符136进行使用。如果该OWN位503处于第二状态,该DMA控制器132无法获得该接收描述符136。该DMA控制器132必须等待一个接收描述符再次变为可获得(即,该OWN位503将处于第一状态)。
该业务包138被存储在上述接收描述符136的缓冲区地址字段511所指示的位置上。注意一旦该DMA控制器使用了一个接收描述符136,该DMA控制器将为下一个包使用下一个接收描述符136(该GEPHY接收器描述符队列以循环方式工作)。
[0055] 在该DMA控制器132读出该OWN位503之外,该DIC TC 140从每一个接收描述符136处读出该OWN位503以寻找那些OWN位503处于第二状态的接收描述符。当该DIC TC
140发现一个OWN位503被设置为第二状态的接收描述符136时,该DIC TC 140在该TLBEQ
315中寻找一个其中存储该业务包的第一PDU的开放入口。在一个PDU与该业务包相同大小的情况中,该第一PDU将是整个业务包。相应地,该整个业务包将被存入该TLBEQ 315中的一个入口319内。不过,如果该PDU小于该业务包,则该DIC TC 140将分割该业务包。该业务包的具有等于该PDU大小的第一部分将形成该业务包的第一个PDU。该业务包的第一个PDU将被存入在该TLBEQ 315中的下一个可获得的入口319。
[0056] 该DIC TC 140确定在该TLBEQ 315的哪一个入口319中,将通过读出在该共享存储器118内的发送行缓冲区描述符305中存入的一个“状态信息”字段来存储该第一个PDU。一个这样的状态信息字段被保持在该TLBEQ 315中的每一个入口319(即,每一个被存储的PDU)的发送行缓冲区描述符305内。该发送行缓冲区描述符305具有以下格式:
[0057] 表1
[0058] 发送行缓冲区描述符格式
[0059]
[0060]
[0061] 该发送行缓冲区描述符305包括0x24+(N-1)*4个字,其中N是在该TLBEQ 315中的入口319的数量。在该发送行缓冲区描述符305中的每一个字是8位宽。在该发送行缓冲区描述符305中的状态信息字段被存储在从偏移0x24处开始的4个这样的字中。相应地,在该TLBEQ 315中的每一个入口319的状态信息字段通过被存储在偏移地址0x24+(N-1)*4处的4个字来保持,其中N是该TLBEQ 315中入口319的数量。对于该TLBEQ 315中的第4个入口,该状态信息字段的偏移(在该发送行缓冲区描述符305内从起始地址开始)是
0x24+12。在该状态信息字段中的第一个字的第一位指示该相关入口319的状态信息字段(即,该入口是否被该写处理或读处理占用)。该状态信息字段的第一个字的其它7位预留为以后使用。
[0062] 该状态信息字段中的第二和第三个字(即,从8位到23位)是一个NextPDU指针327(见图3)。该NextPDU指针327提供了为同一业务包一部分的下一个PDU的位置,当该PDU与该状态信息字段相关时。即,每一个是同一业务包一部分的PDU通过在该发送行缓冲区描述符305的状态信息字段中的NextPDU指针327进行链接。
[0063] 表1示出了在该发送行缓冲区描述符305中字段之一指示了该TLBEQ 315的开始地址。另一个字段指示了一个PDU的大小(注意在本发明公开的方法和设备的一实施例中,所有PDU大小相同)。根据本发明公开的方法和设备的一实施例,在该Tx行缓冲区描述符305中的每一个入口被连续存储。
[0064] 该DIC TC 140读出与每一个入口319相关的状态信息字段直到其发现一个入口的上述状态指示该相关入口319被该写处理占用(即,该DIC TC 140占用该入口319)。该DIC TC 140随后将该业务包的第一PDU写入上述入口319中。该DIC TC 140随后将该入口319提供给一个MoCA端口控制TC 133。对于被复制到该TLBEQ 315中的每一个业务包,该DIC TC 140产生了一个相关PD 321(见图3)。该PD 321具有以下格式:
[0065] 表2
[0066] 协议描述符格式:
[0067]
[0068] 该PD 321包括一个指向与上述PD 321相关业务包的第一个PDU的索引(该“PDU0指针”328如图3所示)。在该发送行缓冲区描述符305中的每一个入口319的状态信息字段内通过一个“NextPDU”指针327将该同一业务包的其它PDU链接在一起(参见表1,在偏移0x24处的8-23位)。该NextPDU指针327指向保持该同一业务包的下一个PDU的入口。以这种方式,来自同一业务包的所有PDU被串在一起。在该字符串中保持最后PDU的入口319的状态信息字段具有被设置为FFF的NextPDU。
[0069] 该协议描述符321被存储在位于该MoCA CPU I/D存储器112中的一个协议描述符队列323中。根据本发明公开的方法和设备的一实施例,该协议描述符队列323能保持32个PD。该MoCA CPU 114周期性地读出该协议描述符队列323。该MoCA CPU 114采用该协议描述符321以生成在该节点102,104之间的在该MoCA网络上的保留请求。当该保留请求被批准时,该MoCA CPU 114生成一个将被发送的每一个MoCA包的MoCA描述符。在该调度发送时间,该MoCA端口控制器TC 133从该TLBEQ 315处在某一时间读出一个PDU。一旦该PDU被从该TLBEQ 315中读出,该MoCA端口控制TC 133通过重置该PD中SW_OWNERSHIP位(见表2)来提供TLBEQ入口319的占用关系,在该TLBEQ入口319处该PDU被读回到该DIC TC 140。
[0070] 该MoCA CPU 114检查该协议描述符队列323以观测有多少PD指示了当前存在可获取包以在该MoCA网络上被发送到该接收节点104(即,有多少PD具有被设置为“1”的SW_OWNERSHIP位)。该MoCACPU 114尽可能多地将共享同一包汇聚特性(即,目标节点和优先权)的当前可获取PD聚集到一个单独的MoCA包中,该MoCA包的大小尽可能地接近于最大MoCA包大小(8k字节)。该MoCA CPU 114为每一个MoCA包制作一个MoCA保留请求。一旦该保留请求被批准,可发出几个MoCA包(每一个与一个这样的保留请求相关)。当该保留请求被批准时,为该发送节点102提供了一个将一个MoCA包通过该MoCA网络上传达给该接收节点104的机会。
[0071] 根据其中该节点102,104使用MoCA通信的实施例,存在两种被使用的MoCA包格式。基于来自超过一个业务包的PDU是否将被汇聚入该MoCA包中来选择上述两种中的一个。在本发明公开的方法和设备的一实施例中,为了将来自超过一个业务包的PDU汇聚,该接收和发送节点102,104都必须能够处理汇聚后的包。不过,即使在该接收和发送节点102,104都必须能够处理汇聚的情况中,可存在其它原因导致来自超过一个业务包的PDU未被汇聚入该MoCA包中,该MoCA包被从该发送节点102处发送到该接收节点104。
[0072] 在来自超过一个业务包的PDU将未被汇聚的情况中,使用第一种MoCA包格式。此时,唯一的业务包的PDU被连起来而不需要一个汇聚包头。
[0073] 相应地,该格式是:
[0074] 表3
[0075]
[0076] 在图3所示的情况中,该最初业务包具有一个需要该业务包被划分为两个PDU的长度,但是两个PDU在同一个MoCA包中在该MoCA网络上被发送。应当注意这种情况,将接收到的业务包划分为PDU的唯一理由是为了在来自不同业务包的数据可能被汇聚的情况下的稳定性。即,该业务包被划分为PDU,因为在该业务包被处理时不知道该业务包的内容是否与来自另一个业务包的PDU一起被汇聚。
[0077] 根据第二种MoCA包格式,一个汇聚包头描述了被包括在该MoCA包中的业务包。一个MoCA包可包括来自超过一个业务包的PDU。
[0078] 表4
[0079]
[0080] 如表4所示,该第二MoCA包格式包括一个MoCA包头。表5指出了该MoCA包头的格式。
[0081] 表5
[0082] MoCA包头格式
[0083]
[0084]
[0085] 该MoCA包头具有10个子字段。在表5中所示的该MoCA包头中该第一个子字段是一个32位的提供了系统时间的发送时钟字段。该包头中第二个子字段指示该包的类型(即,是第一种类型还是第二种类型)。该包头中第三个子字段预留给以后使用。该第四个子字段指示正使用的MoCA MAC层的版本。该第五个子字段指示在该MoCA包中的业务包从哪里发出的源节点。应当注意,在一实施例中,可能存在来自超过一个源节点的业务包。该第六个子字段是在该MoCA包中的每一个业务包正被发到哪里的目标节点。应当注意,在该MoCA包中的所有业务包具有同一目标节点。不过,也应当注意,如果在该MoCA包中的所有业务包将被播出,该目标可以是该网络中的其它所有节点。
[0086] 如表5所示,该第七个子字段指示该MoCA包的长度,包括该包头和所有其它内容和开销。该第八个子字段包括24个预留位。该第九个子字段被称为该汇聚-分裂控制子字段并包括4个位。该汇聚-分裂控制子字段的第一位指示在该MoCA包中是否存在一个汇聚包头。该第二位指示是否包括一个序列数。该序列数用来指示出序列的几个包中的一个包,该特定MoCA包与该序列中的其它包相关。该汇聚-分裂控制子字段的第三位指示是否在使用一个汇聚包头校验和。该汇聚-分裂控制子字段的第四和最后位指示在该MoCA包中是否在使用一个帧校验序列。在该MoCA包头的第十和最后位是用于前错纠正的一个包头校验序列。
[0087] 该MoCA包的第二字段是该汇聚包头。一般地,该汇聚包头指示在该MoCA包中跟随的是哪一个业务包。表6指示了该汇聚包头的格式。
[0088] 表6
[0089] 汇聚包头格式
[0090]
[0091] 该汇聚包头具有一个可变长度。该长度基于将被汇聚的业务包的数量。在本发明公开的方法和设备的一实施例中,每一个子字段具有一个16位的长度。该汇聚包头以位表达的长度是被汇聚在该MoCA包中的业务包数量加上3后的16倍。相应地,如果存在8个被汇聚在该MoCA包中的业务包,则该汇聚包头将具有一个16*(3+8)=176位的长度。
[0092] 该汇聚包头的第一个子字段是一个序列数。该序列数用来指示在一个将被发送的MoCA包序列中该MoCA将占用的相对位置。该汇聚包头的第二个子字段是业务包数,其表述了将被汇聚到该MoCA包中的业务包的数量。后面的N个子字段中的每一个是一个业务包大小,其指示了将被汇聚的业务包中的各个包的大小(字节形式)。最后一个子字段是该整个汇聚包头的校验和。
[0093] 根据本发明公开的方法和设备的一实施例,在该节点允许期间,以及为了链接层报文发送,仅仅使用类型I的格式。
[0094] 该MoCA CPU 114通过从该协议描述符队列323处读出该PD来选择一个业务包(即,一个PDU)以汇聚到每一个MoCA包内。在该协议描述符队列323中的每一个PD与一个汇聚ID 325相关。在本发明公开的方法和设备的一实施例中,通过将用来指示该目标节点(即,与该PD相关的业务包将被送到哪一个的节点)的值和用来指示该业务包优先权的值连接起来以形成该汇聚ID 325。优先权在使用业务优先化和/或参数化质量(PQoS)的MoCA网络中是一个公知的概念。在与该业务包没有相应优先权的实施例中,该目标将独自确定该汇聚ID。本领域技术人员应当理解,其它文件可以其它方式构建该汇聚ID。即,与该PD相关的业务包的其它特性可被用来确定哪一个业务包或每一个业务包的PDU将在一个MoCA内被汇聚在一起。
[0095] 该MoCA CPU 114将检查在该MoCA网络上有多少PD准备被输出,与上述PD相关的PDU是否将全部放入一个MoCA包内,以及是否该PD中的每一个具有同一汇聚ID。所有准备好的、将被放入一个MoCA包内以及具有同一汇聚ID的PD被汇聚入一个MoCA包中。其目的是尽可能扩大该MoCA包的长度以提高该MoCA网络的效率。不过,本领域技术人员应当理解,在仅仅提高该MoCA网络效率之外,本发明的方法和设备可完全存在其它优点。
[0096] 根据一实施例,当在一个MoCA周期内为该节点102提供了一个保留请求的机会时,为具有同一汇聚ID的包的组合作出一个保留请求,但仅仅在存在足够的PDU时使得该汇聚包长度大于预定字节数(例如,4k字节)。否则当前保留请求被忽略且没有任何MoCA包将被发送直到下一个保留请求机会来临。根据一实施例,一个计时器将在一个预定时间后超时以及该发送器将在该超时后为可被获得用来发送的PDU作出一个保留请求。
[0097] 具有同一汇聚ID的业务包到达的顺序是通过与该业务包相关的PD被写入该协议描述符队列323的顺序来定义的。具有同一汇聚ID的PD通过一个链接PD表被链接在一起。可通过至少两种不同方式来创建该链接。
[0098] 第一种生成链接PD表的方法是为该DIC TC 140创建一个每一个唯一汇聚ID的链接PD表,当其为每一个最新接收到的业务包创建该PD时。图3的协议描述符队列323示出了一个如何处理链接PD表的示例。根据该实施例,该DIC TC 140最先通过在该协议描述符队列323中存储该汇聚ID 325和一个NextPD指针327来创建该链接PD表。首先,该NextPD指针327保留为缺省值,指出没有收到任何具有该同一汇聚ID的后续业务包。根据本发明公开的方法和设备的该实施例,该DIC TC 140为每一个链接PD表保留一个“Read”指针和一个“PreviousPD”指针。
[0099] 该Read指针指向该链接PD表的表头。相应地,每一个链接PD表具有一个与该表相关的Read指针。该Read指针允许该DIC TC 140寻找该表的表头,在对于该MoCA CPU114是时间形成该MoCA包时。以这种方式,通过将该Read指针传送给该MoCA CPU 114,该MoCA CPU 114可读出所有的按照它们相关时间顺序的具有同一汇聚ID的PD以作出保留请求。该NextPD指针将该链接PD表中的每一个入口与下一个入口相连。
[0100] 相应地,当接收到该第一业务包时,除了将该汇聚ID值载入该汇聚ID 325中外,该DIC TC 140将在该Read指针和PreviousPD指针内都保存该第一PD的位置。当接收到一个具有同一汇聚ID的新业务包时,该业务包的PD将包括该汇聚ID 325。该NextPD指针327将首先具有缺省值,该缺省值指示其与最近接收到的业务包相关。不过,该DIC TC 140将使用该PreviousPD指针来鉴别该链接PD表的最后PD的位置(此时,该第一PD在该链接PD表中)。该DIC TC 140将随后更新该PD的NextPD指针327,其被通过与该最近接收到的业务包相关的PD值的PreviousPD指针指出。另外,该DIC TC 140将使用该新PD值来更新由该DIC TC 140保持的该PreviousPD指针,使得在该下一个业务包到达时,该DIC TC 140将能够发现该链接PD表的尾部。
[0101] 以这种方式,每当接收到一个新业务包以及为该业务包生成一个PD时,该链接PD表将被更新以包括该新PD。使用这种方法,该DIC TC 140可以将该新PD写在该协议描述符队列323的任意空余位置,在该业务包的前后顺序已被接收到以及通过该链接PD表来保持每一个相关PD的位置之后。
[0102] 第二种生成链接PD表的方法是为该DIC TC 140增加一个新PD到连续地从第一入口(入口号0)到最后入口(入口M-1)的协议描述符队列323中。在本实施例中,该协议描述符队列323是循环的。即该协议描述符队列323中的最后入口(入口M-1)指回到第一入口(入口0)。相应地,与每一个PD相关的每一个业务包被接收到的前后顺序被保存在该协议描述符队列323中。该MoCA CPU 114将在一个MoCA MAP循环内不时地从该协议描述符队列323处读出这些PD。该MoCA CPU 114将它们分类到合适的链接PD表中并将它们存入到将被用来生成保留请求的该MoCA CPU I/D存储器112中。一旦通过该MoCA CPU114读出一个PD,在该协议描述符队列323中的该入口将会释放回该DIC TC 140使得能够存储下一个PD。
[0103] 应当注意,在所有PDU能获得该整个发送行缓冲区入口阵列315的情况中,一个问题出现了。如果业务包的较大块,每一个具有最低优先权,通过该GEPHY控制器108接收到,该问题将出现。每一个接收到的业务包按需要被分割以及从该业务包处形成的PDU被如上所述存入该发送行缓冲区入口阵列315。这些低优先权的PDU能占据该整个发送行缓冲区入口阵列315。相应地,较高优先权的业务包将无法从该GEPHY接收缓冲队列309处接收到直到该低优先权的PDU的一些被清出该发送行缓冲区入口阵列315。不希望允许这样的低优先权业务包阻止较高优先权业务包被接收。进一步地,大批的这些低优先权业务包能在该发送行缓冲区入口阵列315中“阻塞”非常长的时间,如果一个较高优先权业务包的稳定流以一个与该MoCA包可在该MoCA网络上被发送的速率相同的速率进入该MoCA节点(即,在其它节点上的较高优先权包在使用该网络的大部分带宽,以及所考虑的该节点中的较高优先权包正被该同一节点中较低优先权包阻塞)。该发送行缓冲区入口阵列315开始清除该较低优先权业务包的唯一时间是当即将到来的新较高优先权业务包的速率低于随后该MoCA包被从该发送行缓冲区入口阵列315处生成出来并在该MoCA网络上发送出去的速率时。
[0104] 为了避免上述情况,使用了虚拟队列的概念。每一个汇聚ID 325与一个虚拟队列329相关(见图3)。每一个虚拟队列329具有一个可设置的最大大小。每一个虚拟队列
329也具有一个可设置的特性,其定义了当该虚拟队列329满时去做什么。该特性可被设置用来触发一个MII/GMII流量控制(PAUSE帧)使得没有包将到来,或用来允许该包到来但丢弃它们或让它们覆盖在已有包上只要该虚拟队列329是满的。
[0105] 由于每一个业务包必须经历该虚拟队列329中的一个,该虚拟队列329的大小将确定该虚拟队列329的最大可获得的发送吞吐量(即,那些具有一个与该虚拟队列329相关的汇聚ID的业务包吞吐量)。因此,为了优化该吞吐量,需要使得每一个虚拟队列尽可能地大。另一方面,与低优先权汇聚ID相关的低优先权包可在该虚拟队列329中长时间保留。这减少了该虚拟队列329被存入的共享存储器的效率。相应地,不希望为该低优先权的虚拟队列过度分配存储器。一个最大化该发送行缓冲区入口队列315效率并在存在相对少的较高优先级包时获得低优先权包最高可能吞吐量的方法,没有拖延该即将到来的高优先级包,是选择每一个虚拟队列329的最大大小的最佳值。该最佳值是一个该节点本身和该网络二者流量剖析的函数。在本发明公开的方法和设备的一实施例中,当该流量剖析改变时,该虚拟队列329会被动态地重定大小。
[0106] 根据本发明公开的方法和设备的一实施例,该虚拟队列的动态重定大小是通过在一般操作中的应用软件联机执行(基本上实时)。在这样的实施例中,该应用软件是在该外部网络处理器124(见图2)中。在另一实施例中,该应用软件是在该MoCA CPU 114中。动态重定大小会被需要用来重新平衡不同虚拟队列329的相对最大吞吐量界限以增加或移动流量(即,业务包的流)。在一个这样的实施例中,该应用驱动器直接修改每一个虚拟队列329的大小。该每一个虚拟队列329的大小被存入一个位于该共享存储器118中的存储器位置。或者,该每一个虚拟队列329的大小被存入该MoCA CPU I/D存储器112中。不管在哪种情况,该大小可被该外部网络处理器124,该DIC TC 140,和该MoCA CPU 114访问。当一个虚拟队列329大小减少时,当前在该虚拟队列329中的PDU的数量会大于该虚拟队列329将容纳的新大小。不过,根据本发明公开的方法和设备的一实施例,将不丢弃任何PDU。根据一实施例,一个虚拟队列329的新大小仅仅对最新到达的包有效。在该虚拟队列
329大小变化后到达的新包将被该GMII/MII(Xoff状态)阻塞或丢弃,基于该虚拟队列329的已配设置。
[0107] 每一个汇聚ID识别出可被汇聚到一个MoCA包中的包。在本发明公开的方法和设备的一实施例中,该汇聚ID与将被送往具有相同优先权等级的同一目标的所有包的组合相关。为了支持N个目标节点和P个优先权等级,需要N倍的P个虚拟队列329。例如,如果N=5且P=4,需要60个虚拟队列329。在有限的共享存储器的情况中,每一个行缓冲区将非常小。相对小的虚拟队列将限制该包汇聚可进行的范围。这是因为将被汇聚到一个单独MoCA包中的包需要留在同一虚拟队列中。为了实现良好的包汇聚,每一个虚拟队列需要足够大以容纳充足的PDU数。在本发明公开的方法和设备的一实施例中,对正处理的特定文件的了解会用来帮助定义每一个虚拟队列和每一个汇聚ID的定义。在一示例中,只考虑一个优先级等级(将所有指向同一目标的包汇聚在一个MoCA包中,不考虑它们的优先级)。在另一示例中,该目标节点的数量被限制。本领域普通技术人员将能够识别出几个其它这样的用来有效使用该虚拟队列329的方法。
[0108] 根据本发明公开的方法和设备的一实施例,所有虚拟队列329的大小总和等于该发送行缓冲区入口队列315的全部大小。在本发明公开的方法和设备的另一实施例中,所有虚拟队列329的大小总和大于该发送行缓冲区入口队列315的全部大小。其包括了该流量的动态本质(即,该流量的速率和每一个优先权的业务包的数量都不固定的事实)。根据本发明公开的方法和设备的一实施例中,任意一个该虚拟队列329能够被编程以在其满时触发该流量控制。根据本发明公开的方法和设备的另一实施例中,能够编程该虚拟队列329的任意子集以在它们中的一些,或全部满时,触发该流量控制。或者,在该发送行缓冲区入口队列315满时触发MII/GMII流量控制。
[0109] 根据本发明公开的方法和设备的一可替换实施例,该外部以太网驱动器对业务包缓冲,在它们被通过该以太网发送到该节点102时。该业务包被直接分成包组合,该包组合能按时间顺序被汇聚和放置。该节点102随后以能被直接汇聚入一个MoCA包中的簇的形式接收上述包。每一个簇可包括同一目标和同一优先权的包。或者使用其它汇聚标准将上述包簇化。一个簇可只包括一个包(未汇聚)或几个包。根据本发明公开的方法和设备的该实施例,所有将被发送的MoCA包只存在一个发送队列。该循环发送行缓冲区入口队列315以连续方式操作。该MoCA CPU 114为在该发送行缓冲区入口队列315中可获得的包的一个或几个簇作出保留请求。该汇聚机制的效率是在该外部主机中流量定形的函数。
[0110] 接收路径
[0111] 现在返回到用来接收来自另一节点104的已汇聚包的方法和设备,该处理以在该MoCA网络上通过该节点102正在接收的一个MoCA包开始。如在上述发送路径的情况一样,用来实现该节点102,104之间网络的协议可以是任意将允许包在该节点102,104之间传送的协议。不过,为了描述一特定实施例的缘故,这里描述了一种MoCA网络和协议。
[0112] 由该节点102从节点104处接收到的MoCA包是由该MoCA端口控制TC 133首先接收到的。该MoCA端口控制TC 133对一个DMA编程以将该包传送到位于该共享存储器118中的接收行缓冲区入口队列313的一个或多个入口内(见图2和3)。在本发明公开的方法和设备的一实施例中,该接收行缓冲区入口队列313的每一个入口具有充足的包数据空间用来容纳至少一个最大MoCA包以及该队列313包括一个可设置的入口数量。
[0113] 该MoCA端口控制TC 133通过将信息载入该接收行缓冲区描述符307中来对该DMA编程。该接收行缓冲区描述符307包括一个所有者标志,其指出在该接收行缓冲区入口队列313中的一个相关入口是否可获得以接收一个最新的接收MoCA包。通过改变该所有者标志的状态,这些入口随后被递交给在该GEPHY控制器108内的DIC TC 140。
[0114] 该DIC TC 140首先在该MoCA包头和该汇聚包头处进行查询。该DIC TC 140也在该GEPHY发送描述符队列303中的GEPHY发送描述符内的OWN位进行查询。该OWN位指出是否可获得该GEPHY发送缓冲队列311内的下一个GEPHY发送缓冲区入口以接受该业务包。该DIC TC 140为每一个接收业务包的一个可获得的GEPHY发送描述符(在该MoCA包中)载入描述该业务包的信息。该DIC TC 140通过读该MoCA包内接收到的汇聚包头来确定已接收到多少业务包。根据本发明公开的方法和设备的一实施例,该GEPHY发送描述符队列303具有充足空间来容纳两个GEPHY发送描述符。相应地,该GEPHY发送缓冲区队列311具有充足空间来容纳两个发出的业务包。根据本发明公开的方法和设备的另一实施例,该GEPHY发送描述符队列303容纳了一个可设置的GEPHY发送描述符数量。
[0115] 虽然该接收行缓冲区入口队列313以PDU单元的形式被组织,每一个GEPHY发送描述符描述了一个完整的业务包。该GEPHY发送描述符队列以循环方式操作,并由该DIC TC 140建立。随后通过将该发送描述符的OWN位切换到该GEPHY DMA 132来将该GEPHY发送描述符发送给该GEPHY控制器的DMA 132。该DMA 132将传送一个业务包(一个以太网包)给该GEPHY控制器108,其随后将尽可能地通过该GMII/MII发送出去一个以太网包。在发送该以太网包后,通过重设该OWN位,该GEPHY发送描述符被交回给DIC TC 140,以及该DIC TC 140将处理该发送描述符状态并重新使用该描述符。该DIC TC 140可以独立或团体的形式定义和处理该发送描述符。在从该Rx接收缓冲区入口队列到该GEPHY发送缓冲区队列传送MoCA包的处理中,该DIC TC 140能使用基于文件的预定标准在这些包上执行过滤(包括丢失该业务包的一些)。
[0116] 在本发明公开的方法和设备的一实施例中,使用了两个GEPHY发送描述符,每一个描述了在该接收行缓冲区入口阵列313中的一个业务包以及其中的每一个将在该以太网上被传送。该GEPHY发送描述符具有与该接收描述符相同的格式。
[0117] 在本发明公开的方法和设备的一实施例中,该接收行缓冲区入口队列能够容纳超过一个MoCA包。该最小大小是该DIC TC 140的反应和处理速度的函数,当一个MoCA包被接收并交给该DIC TC 140时。
[0118] 在本发明公开的方法和设备的一实施例中,该GMII/MII速度可被正好设置为该MoCA网络的速度之上以获得在该MoCA网络上的最佳吞吐量。在该GMII/MII速度接近于或低于该MoCA网络速度的情况,需要把该接收行缓冲区入口队列319设置为足够大以吸收即将到达该MoCA网络上节点102处的流量突发。在一实施例中,该接收行缓冲区入口队列319的确切大小是该接收节点102所用的最多负荷位数的函数。在一实施例中,该接收节点可限制将被接收到的包的负荷位数使得该发送节点将不会发出比所需更快的数据给该接收节点。在一实施例中,该负荷位数的限制接近于从该外部网络处理器124处在该外部网络上接收包的速度。
[0119] 当本发明公开的方法和设备的各个实施例已如上所述时,应当理解,它们仅仅已通过示例的方式进行展示,而没有限制该请求权利的发明。同样地,上述各个图可以描述一个示例结构或本发明公开的方法和设备的其它配置。其用来帮助理解可被包括在本发明公开的方法和设备中的特征和功能。该请求权利的发明并不限于上述示例的结构或配置,但是可使用多个可替换的结构和配置来实施上述所需特征。实际上,一个本领域技术人员应当清楚,能如何实现可替换功能的,逻辑的或物理的划分和配置以实施本发明公开的方法和设备的上述所需特征。同样,大量非此处所述的不同组成模块名称可被用于该各个划分。另外,关于流程图,此处所展现的操作描述和方法权利要求,上述步骤所在的顺序,不应当强制该各个实施例被实施以相同顺序执行该列举的功能,除非上下文另行指出。
[0120] 尽管根据各个示范性实施例和实施方式如上对本发明公开的方法和设备进行了描述,应当理解,在一个或多个单独实施例中所述的各个特征,方面和功能没有将它们的使用范围局限于描述它们的特定实施例中。因此,本请求权利的发明的宽度和范围应不限于上述示范性实施例的任意一个。
[0121] 本文中所使用的术语和词组,以及其变体,除非另行明确描述,应被理解为开放式的而不是限制性的。作为以上的示例:术语“包括”应被理解为“包括,不限制”意义或类似;术语“举例”被用来提供所讨论项目的示范性例子,不是穷举的或其限制列表;术语“a”或“an”应被理解为“至少一个”,“一个或多个”意义或类似;以及形容词例如“常规的”,“通常的”,“一般的”,“标准的”,“已知的”和相似意思的术语不应被理解为将所述项目限制于给定时间周期或限制于给定时间时可获得的项目,而是作为替代,应被理解为包括可获得到的常规的,通常的,一般的,或标准的技术,或在现在或在以后的任意时间已知的技术。同样地,在本文中涉及对一个本领域普通技术人员是明显的或已知的技术的位置,这样的技术包括那些对于在现在或在以后的任意时间的技术人员是明显的或已知的技术。
[0122] 使用连词“和”进行连接的一组项目不应被理解为需要被展现在该组中的这些项目的每一个,而是应被理解为“和/或”除非另行明确表述。相同地,使用连词“或”进行连接的一组项目不应被理解为需要上述组中的相互排他性,而是也应被理解为“和/或”除非另行明确表述。进一步地,虽然本发明公开的方法和设备的项目,元件或组件以单数形式进行描述和请求权利,其复数形式被考虑到其保护范围内除非明确表述对单数的限定。
[0123] 拓宽词语和词组例如“一个或多个”,“至少”,“但不限于”或其它类似短语在一些例子中的出现,不应被理解为表示在这样拓宽短语可能出现的例子中趋于或需要该较窄的情况。该术语“模块”的使用未暗含着作为该模块的一部分的所述或要求权利的组件或功能都是以同样包装进行配置。实际上,一个模块的任意或所有各种组件,无论控制逻辑或其它组件,可被包含在单个包中或分别进行维护,以及可进一步被分布在多个分组或包中,或分布在多个位置。
[0124] 另外,这里提出的各个实施例是根据示例方框图,流程图和其它说明来进行描述。对于一个本领域普通技术人员在阅读本文后将逐渐清楚,可实施所述实施例和它们的各种替代物而不限于所述示例。例如,不应将方框图和它们的附属描述理解为强制一种特定结构或配置。