具有时间认知介质访问控制器的网络设备的制作方法

文档序号:7791636阅读:122来源:国知局
具有时间认知介质访问控制器的网络设备的制作方法
【专利摘要】一种网络设备包括存储器、MAC模块、主机控制模块和选择器模块。存储器存储帧和与帧对应的时间戳。MAC模块接收帧和时间戳并且向物理层设备转发帧。MAC模块包括存储从存储器接收的帧的队列和从队列接收帧并且随时间扩展帧中的数据以生成块化信号的成形模块。主机控制模块向MAC模块转移帧的所有权。主机控制模块或者MAC模块屏蔽第一帧的所有权的转移、包括基于时间戳门控第一帧以延迟第一帧在队列中的接收。选择器模块选择块化信号之一并且向物理层设备转发选择的块化信号。
【专利说明】具有时间认知介质访问控制器的网络设备
[0001]相关申请的交叉引用
[0002]本申请要求对提交于2013年2月21日的第13/772,908号美国专利申请的优先权和提交于2012年2月22日的第61/601,848号美国临时申请的权益。以上引用的申请的全部公开内容通过引用而结合于此。

【技术领域】
[0003]本公开内容涉及网络,并且更特别地涉及网络中的数据源的延时和接收器的数据上溢。

【背景技术】
[0004]这里提供的【背景技术】描述是为了总体上呈现公开内容的上下文的目的。当前具名的发明人的工作在这一【背景技术】部分中描述该工作的程度上以及该描述的可能在提交时未以其它方式被限定为现有技术的方面既未被明示地也未被暗示地承认为相对于本公开内容的现有技术。
[0005]数据通信网络可以包括多个通话器(或者数据源)和多个接收器。可以在通话器与接收器中的每个之间连接任何数目的网桥(或者交换机)。数据通信网络可以是任意网络(被称为非工程设计网络)或者非任意网络(被称为工程设计网络)。任意网络可以例如是可以具有在网络中的各点和在随机时间任意连接和断开的不同网络设备(例如,计算机、蜂窝电话、电视、打印机和电子平板计算机)的住宅局域网(LAN)。网络设备无论在任意网络中正被传输的数据的优先级级别如何都可以在任何时间连接和断开。
[0006]非任意网络可以例如是在车辆或者制造流水线网络内的汽车网络。一般而言,在非任意网络中的网络设备被固定而未正被从非任意网络连接和/或断开。虽然网络设备可以连接到非任意网络和/或从非任意网络断开,但是与正在连接到非任意网络或者从非任意网络断开的网络设备的通信在高优先级数据的传输周期期间被给予更低优先级。在这些传输周期期间,在非任意网络中的网络设备之间传输高优先级数据。
[0007]例如,根据电气和电子工程师协会(IEEE)802.1Qav操作的非任意以太网网络可以包括通话器(或者源)、多个网桥和收听器(或者接收器)。通话器可以在周期性传输时间间隔的分配的传输周期期间通过网桥向收听器传输高优先级数据。高优先级数据可以例如是指具有低延时要求的A类或者B类数据。术语延时是指用于将经过非任意网络的一个或者多个跳跃被传输的高优先级帧的时间。单个跳跃的延时是从在由用于该跳跃的网络设备接收高优先级帧的最后比特时的时间到在从网络设备传输最后比特时的时间测量的。简单而言,单个跳跃的延时是从最后比特进入网络设备到最后比特离开网络设备测量的。单个跳跃可以是指非任意网络的通话器(被称为终端站)或者网桥。
[0008]在非任意以太网网络中,传输的数据可以例如具有三个到八个优先级级别之一。A类数据可以包括具有最高优先级级别的音频视频桥接(AVB)数据。最高优先级用来保证最低延时。虽然AVB数据可以包括音频数据和/或视频数据,但是AVB数据也可以包括控制数据、用户数据、参考数据或者其它类型的数据。最高优先级级别数据可以具有预定数量的带宽和预定最大延时。这保证在分配的时间段期间传输A类数据并且与通过预定数目的跳跃和/或在终端站之间传输A类数据关联的延时小于预定最大延时。B类数据可以是具有下一最高优先级级别的AVB数据。所有非AVB数据使用其余的更低优先级级别。一般而言,在更低优先级数据之前传输更高优先级数据。如果设备支持少于最多八个优先级级别,则IEEE 802.1Qav标准定义八个外部优先级将如何被映射到由设备支持的优先级数目。在所有情况下,A类为最闻。
[0009]IEEE AVB标准定义标准的集合,这些标准在被一起使用时支持用于通过各种联网介质(比如满足IEEE 802.3以太网标准的联网介质)的保留的AVB流的保障的带宽和延时。IEEE 802.1Qav标准要求网桥对穿过网桥的AVB流重新成形(即,展开)。这在网桥中是在每类基础上完成的。由于AVB支持两类数据(即A类和B类),所以在网桥中每出口端口需要两个Qav成形器。
[0010]图1示出了传统网桥10的示例。虽然网桥10被示出为具有某个数目的入口端口和出口端口,但是网桥10可以具有附加入口和/或出口端口。网桥10包括入口端口 Pu-Py、入口模块12和出口模块14。入口模块12从端口 Pu-Py接收数据并且可以在存储器16中存储数据。出口模块14可以例如包括每出口端口的A类队列18、B类队列20和非AVB队列22。队列18、20、22从入口模块12接收数据并且存储相应的A类、B类、非AVB类的数据。
[0011]出口模块14还包括类成形器(被标识为类成形器fQ)、选择器模块24、复用器26和输出端口 28。为包括A类数据和B类数据的AVB数据提供类成形器fQ。类成形器4分别对从A类队列和B类队列中的对应队列接收的A类数据和B类数据进行成形(或者展开)。作为结果,在每类基础上对数据进行成形。在类成形器fQ的相应速率随时间独立展开A类数据和B类数据。选择器模块24信号通知复用器26从类成形器fQ或者非AVB队列22之一选择用于向输出端口 18提供的数据。


【发明内容】

[0012]提供了一种网络设备并且该网络设备包括存储器、介质访问控制(MAC)模块、主机控制模块和选择器模块。存储器被配置为存储(i)从源接收的帧,以及(ii)与帧对应的时间戳。MAC模块被配置为(i)从存储器接收帧和时间戳,以及(ii)向物理层设备转发帧。MAC模块包括队列和成形模块。队列被配置为存储从存储器接收的帧。成形模块被配置为
(i)从队列接收帧,以及(ii)随时间扩展帧中的数据以生成块化信号。主机控制模块被配置为向MAC模块转移来自主机控制模块的帧的所有权。主机控制模块或者MAC模块被配置为屏蔽帧中的第一帧的所有权的转移、包括基于时间戳门控第一帧以延迟第一帧在队列中的接收。选择器模块被配置为(i)选择块化信号之一,以及(ii)向物理层设备转发选择的块化信号。
[0013]本公开内容的更多适用领域将从【具体实施方式】、权利要求书和附图变得清楚。【具体实施方式】和具体示例旨在于仅举例说明而并非旨在于限制公开内容的范围。

【专利附图】

【附图说明】
[0014]图1是现有技术网桥的功能框图。
[0015]图2是包括流动(flow)成形器和类成形器的通话器的功能框图。
[0016]图3是包括组合的流动成形器和类成形器的通话器的功能框图。
[0017]图4是根据本公开内容的非任意网络的功能框图,该非任意网络并入了具有时间认知介质访问控制模块(MAC)的通话器。
[0018]图5是图4的非任意网络的一部分的功能框图。
[0019]图6是根据本公开内容的包括通话器的记录网络的功能框图。
[0020]图7是根据本公开内容的并入了时间认知门模块和成形模块的通话器的功能框图。
[0021]图8是根据本公开内容的具有非时间认知MAC的通话器的功能框图。
[0022]图9是另一通话器的功能框图,该通话器并入了在时间认知MAC的队列下游的时间认知门和成形模块。
[0023]图10是另一通话器的功能框图,该通话器并入了时间认知门模块和用于每类AVB数据的单个每类成形器;
[0024]图11图示了具有在MAC中执行的队列前时间认知门控的帧成形方法。
[0025]图12图示了具有经由主机控制模块的时间认知门控的帧成形方法。
[0026]图13图示了具有在MAC中执行的队列后时间认知门控的帧成形方法。
[0027]在附图中,可以重用标号以标识相似和/或相同要素。

【具体实施方式】
[0028]IEEE 802.1Qav要求通话器(数据流的网络源节点)执行每流动成形(或者定步)继而为每类成形。通话器可以从一个或者多个源(比如麦克风、存储设备、数字万用盘(DVD)播放器等)接收数据。通话器可以执行用于每个源的成形以保证适当地间隔开从源接收的每个数据流动,因为从源接收的数据流动可以(i)以在不同收听器(数据流的网络接收节点)被接收作为结束,以及(ii)当在收听器被接收之前遵循经过网络的不同路径。
[0029]作为示例,通话器可以在网络中发送出两个A类数据流动。数据流动中的第一数据流动可以在每秒5兆比特(兆比特/秒),并且数据流动中的第二数据流可以在20兆比特/秒。通话器可以经由流动成形器并且以流动成形器中的对应流动成形器的相应速率对数据流动独立成形。流动成形器可以被称为成形模块。流动成形器可以例如满足IEEE802.1Qav标准。由于两个数据流动为相同类并且初始地在通话器的出口端口的相同链路上进入网络,所以需要以组合速率对数据流动重新成形。对于提供的示例,组合速率是与数据流动的流动速率之和相等的25兆比特/秒。这是遵循由IEEE 802.1Qav标准要求的每流动成形并且可以与在网桥中执行的每类成形相同的每类成形。
[0030]满足IEEE 802.1Qav标准的成形器展开AVB数据流,从而使得没有(或者有最少的)突发或者成束(即,背靠背AVB帧)。在AVB队列(A类队列或者B类队列)“赶上”之时允许最少量突发。队列可以例如当在队列中的线头帧在原先被调度时由于拥塞而尚未被允许传输时赶上。这可能在对应出口端口忙于传输来自另一队列的帧时出现。在图2中示出了通话器的示例,该通话器具有跟随有每类成形的每流动成形。
[0031]图2示出了包括流动成形器(被标识为流动成形器fQ1)和类成形器(被标识为类成形器fQ2)的通话器50。图2被示出为描述如何在每类成形之前执行每流动成形。虽然可以如在图2中所示实施通话器,但是在图3中示出了更高效的实现方式。图3的通话器提供与通话器50相同的成形、但是包括单个队列级而不是多个队列级。每个附加队列级如以下进一步描述的那样增加数据传送延时、存储要求和逻辑。
[0032]图2的通话器50包括主机控制模块52、系统存储器54和接口模块56。主机控制模块52可以包括接口驱动器模块58,接口驱动器模块58执行驱动器软件以向接口模块56传送在系统存储器54中存储的数据。驱动器软件可以被称为网络接口卡(NIC)驱动器。接口模块56可以例如是NIC并且包括介质访问控制模块(MAC)60和物理层(PHY)设备62。MAC 60可以被称为介质访问控制器并且从主机控制模块52接收数据而且基于数据的类向在MAC 60中的相应的AVB队列64、66、68、70和非AVB队列72分发数据。
[0033]MAC 60包括流动成形电路80、类成形电路82、选择器模块84和输出端口 86。流动成形电路80包括:包括AVB队列64、66的第一队列级;第一流动成形器88、90 ;第一复用器92和第二复用器94。AVB队列64、66包括接收相应的A类数据和B类数据的A类队列和B类队列。第一流动成形器88、90可以满足IEEE 802.1Qav标准并且包括用于A类队列和B类队列中的每类队列的流动成形器并且作为结果提供用于AVB数据的每流动成形。
[0034]第一复用器92基于第一控制信号CTRLl选择来自连接到A类队列的流动成形器的数据。第二复用器94基于第二控制信号CTRL2选择来自连接到B类队列的流动成形器的数据。第一控制信号CTRLl和第二控制信号CTRL2可以由选择器模块84生成。选择器模块84可以是严格选择器并且基于数据和/或对应队列的优先级级别选择数据。
[0035]类成形电路82包括:包括队列68、70、72的第二队列级;第二类成形器100 ;以及第三复用器102。队列68是A类队列并且从第一复用器92接收A类数据。队列70是B类队列并且从第二复用器94接收B类数据。队列72为非AVB队列并且从系统存储器54接收非AVB数据。
[0036]第二类成形器100可以满足IEEE 802.1Qav标准并且包括用于队列68、70中的每个队列的类成形器。第三复用器102基于第三控制信号CTRL3选择来自第二类成形器100和非AVB队列72的数据并且向出口端口 86输出选择的数据。第三控制信号CTRL3可以由选择器模块84生成。
[0037]通话器可以未用第一队列级64、66、第一流动成形器88、90、复用器92、94被实施而又提供跟随有每类成形的每流动成形。并入第一队列级64、66、第一流动成形器88、90和复用器92、94增加数据管理复杂性、电路复杂性和数据传送的延时。存在与在队列之间传送数据关联的增加的延时。并入第一队列级64、66、第一流动成形器88、90和复用器92、94要求通话器包括通常由网桥(或者交换机)执行的控制任务。这些控制任务可以例如由主机控制模块52经由被主机控制模块52执行的软件被执行。
[0038]图3提供了没有图2的第一队列级64、66、第一流动成形器88、90和复用器92、924的示例实现方式。图3示出了包括组合的流动和类成形器(被标识为组合的成形器ff)的通话器110。通话器110包括主机控制模块112、系统存储器114和接口模块116。接口模块116可以例如是NIC并且包括MAC 118和PHY设备120。MAC 118从系统存储器114接收数据并且基于数据的类向MAC 118中的相应的AVB队列122和非AVB队列124分发数据。
[0039]MAC 118包括队列122、124、组合的成形器ff、复用器126和选择器模块128。AVB队列122可以从系统存储器114接收A类数据或者B类数据。出于这一原因,AVB队列122中的每个AVB队列是A类队列或者B类队列。非AVB队列124可以从系统存储器114接收非AVB数据。A类队列具有比B类队列更高的优先级级别(更低的队列编号)。组合的成形器ff执行每流动成形和每类成形二者。复用器126基于来自选择器模块128的控制信号选择来自组合的成形器ff和非AVB队列的数据并且向PHY设备120的出口端口 130输出数据。选择器模块128可以是严格选择器并且可以基于数据和/或对应队列的优先级级别选择来自队列124、126的数据。在多个队列具有准备好被传输的数据时,可以选择具有最高优先级级别的队列。
[0040]组合的成形器ff为非时间认知成形器,因为IEEE 802.1Qav成形器ff并未基于时钟信号和/或帧的时间戳操作并且因此并未与其它网络设备的时钟同步。组合的成形器仁中的每个成形器被配置用于进入对应队列的数据流动的速率以提供用于数据流动的适当成形。组合的成形器ff中的每个成形器确定选择器模块128何时“看见”数据的每个帧(在块化成形器中检测到帧)。这包括在选择器模块128 “看见”队列中的下一帧时延迟直至在队列中的第一或者“线头”帧完成被传输。选择器模块128在组合的成形器向选择器模块128提供对帧的访问时“看见”帧。这经由从块化成形器ff向选择器模块128传输的访问信号被完成。
[0041]组合的成形器ff比图2的流动成形器fQ1和类成形器fQ2 “更智能”。与流动成形器fQ1和类成形器fQ2对照,组合的成形器ff中的每个成形器接收访问和/或确定相同类的其它组合的成形器ff中的每个成形器的状态信息。状态信息可以对于某个类的组合的成形器ff队列中的每个成形器和队列包括如下信息,该信息指示:相同类的其它组合的成形器ff和/或队列;向相同类指派的其它组合的成形器ff和/或队列的当前流动速率;以及用于相同类的所有组合的成形器ff和/或队列的总流动速率。组合的成形器ff中的每个成形器也可以能够访问和/或确定对应数据类的最后帧被该类的队列之一传输的时间。例如,组合的成形器ff之一可以确定A类数据的最后帧何时被向A类数据指派的AVB队列传输。利用这一信息,组合的成形器ff中的每个成形器从AVB队列中的对应AVB队列向复用器126释放帧。这被完成以使得如同先前如由IEEE 802.1Qav标准要求的那样经过跟随有每类成形器的每流动成形器传递帧来向复用器传递帧。每流动成形器可以被称为流动成形模块。每类成形器可以被称为类成形模块。
[0042]虽然图3的实现方式包括比流动成形器fQ1和类成形器fQ2更复杂的组合的成形器ff,但是图3的实现方式消除了对于用于管理经过多个队列级的数据流动的复杂队列管理器或者交换机控制模块的需要。也避免了在流动队列与类队列之间传送数据的添加的延时。图3的实现方式允许在硬件中实施组合的成形器,这允许主机控制模块112向AVB队列122突发数据而无需主机控制模块112执行附加软件或者应用代码以管理经过MAC 118的数据流动。由主机控制模块112执行的软件可以没有关于在MAC 118中的组合的成形器和/或队列的信息。软件可以未认知给定的流动甚至正在使用经过网络的AVB流。这允许更旧的软件得到由AVB赋予的带宽和延时递送保障而未改变软件。
[0043]主机控制模块112可以包括具有如下信息的接口驱动器模块132,该信息指示将向队列122、124中的哪个队列传送帧。接口驱动器模块132可以通过确定与帧关联的目的地地址和/或通过检查例如帧的描述符来确定将向队列122、124中的哪个队列传送帧。描述符可以包括目的地地址。以下进一步描述描述符生成和可以在描述中包括的其它信息。
[0044]如陈述的组合的成形器ff并非时间认知的,并且作为结果,使用组合的成形器ff具有关联的缺点。组合的成形器ff的速率的准确性依赖于本地时钟的准确性,本地时钟的准确性可以基于本地晶体的准确性。IEEE 802.3标准要求本地晶体的准确性是每百万分之+/-100 (ppm)。作为结果,组合的成形器ff的准确性可以是+/-lOOppm。如果本地时钟为快速(+ppm),则组合的成形器仁比编程的速率更快地释放数据。如果本地时钟为慢速(-ppm),则组合的g成形器ff比编程的速率更慢地释放数据。以比编程的速率更慢的速率释放数据可以使数据被保持(hold up)。这可以造成在通话器中的缓冲器或者队列潜在地上溢和/或使数据晚到达收听器。收听器可以由于数据的增加的延时而下溢收听器中的缓冲器。
[0045]在实际传输或者播放出数据的速率(被称为介质时钟速率)与目标介质时钟速率之间的差值可以基于正被使用的本地晶体的准确性。如果本地晶体的准确性是+/-lOOppm,则在队列接收数据的速率(被称为实际数据速率)可以相对于组合的成形器ff的编程的速率偏尚多达+/_200ppm。
[0046]为了解决在实际数据速率与编程的速率之间的差值,IEEE802.1Qav标准规定在这一情况下的流动和类或者组合的成形器ff的编程的速率将比请求的数据速率更快。基于过估计的帧大小操作组合的成形器ff以保证组合的成形器ff在比请求的速率更快的速率操作。最大帧大小被估计为比实际最大帧大小大一个字节。这保证在这一情况下的流动和类或者组合的成形器ff比实际数据速率更快。
[0047]可以在通话器中使用组合的成形器ff的增加的速率,其中数据流动为自己成形(或者自己定步)的。自成形的数据流动是如下数据流动,其中生成并且在数据到达时传输帧。生成自成形的数据流动的设备的示例是麦克风。麦克风的模拟输出信号可以被采样、数字化并且然后向通话器传输。如果数据例如在48千赫兹(KHz)速率被采样和数字化,则数据的每6个采样可以被打包成以太网帧并且然后被传输。六个48KHz采样产生SKHz的以太网帧速率或者每125微秒(us)的新帧。生成的数据流动为自成形的,因为如果提供48ΚΗζ速率的介质时钟的晶体快+lOOppm,则数据流动的帧速率不能增加至比8KHz+100ppm更快的速率。
[0048]如果从麦克风接收的数字化的数据采样被存储于存储驱动(例如,硬驱动或者闪存驱动)上并且然后在以后供应给通话器,则从存储驱动向通话器的数据流动不是自成形的。与存储驱动可以输出数据一样快地从存储驱动向通话器输出数据。在通话器中的组合的成形器&(或者每流动成形器)可以是减缓数据从存储驱动的传送速率的仅有设备。由于组合的成形器匕不是时间认知的,所以组合的成形器ff可以减缓数据的传送速率以接近介质速率但是未与介质速率一样慢。如果从组合的成形器ff传送出数据的速率保持过量太久,则接收数据的收听器的缓冲器可以上溢。这是因为收听器正在比正被播放出数据的速率(即,介质时钟速率)更快地接收数据。
[0049]在收听器中的缓冲器的上溢可以对于时间认知的数据流动出现。时间认知的数据流动是具有巾贞的数据流动,其中巾贞包括介质时钟速率。如由巾贞指示的介质时钟速率向收听器指示将播放出帧的时间和/或速率。IEEE 1722标准通过在每个帧中定义呈现时间来支持这样的数据流动(或者数据流)。
[0050]作为示例,通话器110的主机控制模块112可以确定用于数据流的帧的呈现时间并且在向收听器传输帧之前在帧中并入呈现时间。呈现时间实质上是在将播放出帧中的具体采样时的时间。在数据流中的具有后续呈现时间的后续帧定义用于数据流的介质时钟速率。
[0051]主机控制模块112可以防止收听器的缓冲器的上溢。主机控制模块112可以执行软件以在向MAC呈现帧时延迟。主机控制模块112可以确定具有给定的呈现时间的帧已经提早了在预设门限之上的某个数量。示例门限是介质时钟速率的1/2或者针对以上示例对于48KHz数据流为62.5 μ S。在超过门限时,主机控制模块112延迟允许向对应队列中传送任何更多帧直至耗尽(清空)对应队列。一旦对应队列为空,则主机控制模块122然后可以再次开始向对应队列中加载新接收的帧。需要基于与主机模块112执行软件关联的延时调整门限。主机控制模块112是时间认知的,因为主机控制模块112正在向帧中并入呈现时间以补偿组合的成形器ff的非时间认知方面。
[0052]图4示出了非任意网络150,该非任意网络150并入了具有时间认知MAC (下文为MAC 154)的通话器152。非认知网络150包括数据源156、通话器152、切换网络158 (例如,由IEEE 802.3标准定义的以太网云或者由IEEE 802.1标准定义的AVB云)、收听器160和播放出设备162(例如,扬声器)。数据源156可以例如包括麦克风、存储驱动(例如,硬驱动和闪存驱动)、音频和/或视频回放设备(例如,数字万用盘播放器)等。通话器152从数据源156接收数据的帧并且包括MAC 154。MAC 154处理帧并且向切换网络158输出处理的帧。MAC 154是时间认知的,因为MAC 154如以下关于图5-图13的实现方式进一步描述的那样基于在帧中提供的呈现时间和/或传送时间处理帧。切换网络158包括向收听器160路由数据的网桥164 (或者交换机)。收听器160可以在播放出设备162上播放出数据。
[0053]网桥164可以复用和/或交织从通话器152中的多个通话器接收的数据并且以与通话器152的输出数据速率之和相等的数据速率输出组合的数据。网桥可以用相似方式复用和/或交织从多个网桥接收的数据。作为结果,在收听器接收的数据可以在比通话器原先传输的数据速率更快的数据速率。然而,收听器将以与由原有数据源接收数据的相同速率播放出数据。例如,麦克风可以在特定速率(例如,44.1KHz)对数据进行接收和采样。收听器然后可以在播放出设备上在相同特定速率播放出数据。为了实现这一点,数据的帧可以如以上描述的那样包括呈现时间。
[0054]图5示出了非任意网络170的一部分。非任意网络170包括一个或者多个通话器(示出了三个通话器163、164、166)、一个或者多个网桥(示出了两个网桥168、171)和收听器172。通话器163、164、166可以被称为源,因为通话器向收听器162传输数据。收听器172可以被称为接收器,因为收听器172从通话器163、164、166接收数据。网桥168、171可以满足提供精确定时协议(PTP)的IEEE802.1AS0网桥168、171提供在终端站(例如,通话器163、164、166和收听器162)之间的网络设备菊链。
[0055]通话器163、164、166可以各自包括相应的时间认知MAC 173、175、177。MAC 173、175,177中的每个MAC可以包括相应的块化成形器174、176、178和定时模块184、186、188。组合的成形器174、176、178不是时间认知的并且可以展开ACB数据(例如,A类数据或者B类数据)的传输。
[0056]在网络170中的网络设备之一(例如,第二通话器164)可以包括生成全局时钟信号的大师时钟(grand master clock) 200。大师时钟200可以位于网络170的网络设备中的任何网络设备中。可以与在网络170中的网络设备中的任何网络设备共享全局时钟信号。作为示例,大师时钟200被示出为在第二通话器164中,但是大师时钟200可以位于其它通话器163、166之一、网桥168、171之一、收听器172或者连接到网络170的其它网络设备中。定时模块184、186、188可以生成相应的本地时钟信号。
[0057]包括大师时钟200的网络设备或者在网络170中的其它网络设备之一可以包括时间管理模块202。具有大师时钟200和/或时间管理模块202的网络设备可以被称为主设备。不具有大师时钟200和/或时间管理模块202的网络设备可以被称为从设备。时间管理模块202可以包括大师时钟200和/或时间间隔模块204。时间间隔模块204可以设置周期性传输时间间隔(即,周期性传输时间间隔的持续时间)和周期性传输时间间隔中的每个周期性传输时间间隔的开始时间。可以使用管理信息库(MIB)模块和/或简单管理网络协议(SMNP)在网络设备之间共享全局时钟信号、周期性传输时间间隔和周期性传输时间间隔的开始时间。也可以通过使用802.1AS精确定时协议向在网络中的设备中的每个设备传达时间。
[0058]网桥168、171可以包括相应的入口模块210和出口模块212。入口模块210可以从上游设备(比如通话器或者其它网桥)接收数据并且向出口模块212转发数据。出口模块212可以执行数据成形(数据的展开)和/或向下游设备(比如另一网桥或者收听器)转发数据。
[0059]收听器172经由网桥168、171从通话器163、164、166接收数据。收听器172可以包括收听器控制模块214。收听器控制模块214可以基于从通话器163、164、166接收的数据操作和/或监视或者操作网络的一个或者多个传感器、监视器、致动器或者其它设备。收听器172可以在播放出设备(例如,图4的播放出设备162之一)上播放出数据。
[0060]通话器163、164、166、网桥168、171和/或收听器172可以经由有线或者无线连接和/或介质相互通信。无线连接和/或介质可以例如满足IEEE标准802.1U802.11a、802.lib,802.llg,802.llh、802.lln、802.16 和 802.20。
[0061]图6示出了包括通话器222的记录网络220。通话器222可以例如是图4的通话器163、164、166之一。通话器222包括主机控制模块224和接口模块226。主机控制模块224可以例如包括处理器并且从数据源228(在这一示例中被示出为麦克风)接收不同优先级级别的数据并且向接口模块226提供数据。数据可以包括A类数据、B类数据和非AVB数据。
[0062]数据源228生成可以被模数转换器230采样并且被向时分复用器(TDM) 232提供的输出信号。TDM 232复用采样的数据并且经由第一接口 236向系统存储器234提供复用的数据。主机控制模块224具有在被存储于系统存储器234中时的复用的数据的所有权。可以在将向接口模块226传送数据时向接口模块226转移数据的所有权。可以经由第二接口 237从系统存储器234向接口模块226传送数据。主机控制模块224可以在数据的所有权正被转移时信号通知接口模块226。接口模块226然后可以从系统存储器234访问数据。
[0063]主机控制模块224可以包括时间管理模块238 (例如,图5的时间管理模块202)。时间管理模块202可以对于从系统存储器234向接口模块226传送的数据的帧确定呈现时间和/或生成描述符。可以基于全局时钟信号生成呈现时间和/或描述符。可以根据IEEE1722生成呈现时间。IEEE 1722要求如果基于媒体采样(例如,音频数据采样)生成数据的帧则通话器向数据的帧中插入呈现时间。在收听器并且以通话器的介质时钟速率回放媒体采样。这允许收听器能够回放数据的帧而没有缓冲器下溢或者上溢问题。
[0064]可以基于默认传输时间确定用于A类数据流的呈现时间。可以基于用于经过在网络中的预定数目的跳跃传送数据的预定最大时间量设置默认呈现时间以补偿网络的最坏情况延时。作为示例,呈现时间和/或默认传输时间可以等于用于从通话器向收听器传送A类帧的延时(例如,2毫秒(ms))。呈现时间的持续时间在主机控制模块224向接口模块226转移数据的帧的所有权时开始。为每个帧提供的呈现时间减去默认传输时间匹配在从主机控制模块224向接口模块226转移该帧的所有权时的时间。
[0065]数据流可以具有任何数目的分组。每个分组可以包括预定数目的数据的帧。分组和描述符可以存储于系统存储器234中并且被提供给接口模块226。帧和/或分组可以经由描述符链接在一起。这些描述符帮助接口模块226快速突发出帧而无主机控制模块224的干预。
[0066]描述符中的每个描述符可以包括描述符时间戳(或者传送时间)和/或其它信息,比如对应分组和/或帧的大小、周期性传输时间间隔的开始时间、周期性传输时间间隔的长度和/或源和/或目的地地址。传送时间可以指示在以下各项时的时间:将从系统存储器234向接口模块226传送帧;将向在接口模块226中的队列传送帧;和/或将从主机控制模块224向接口模块226转移帧的所有权。传送时间可以是以与呈现时间不同的格式和/或可以基于呈现时间被生成。传送时间可以有效或者无效。描述符的传送时间或者传送时间字段可以例如(i)在提供传送时间时,(?)被标记为有效时,(iii)在传送时间是以正确格式时;和/或(iv)在传送时间与呈现时间对应从而使得传送并且然后播放出帧的速率匹配介质速率时有效。
[0067]接口模块226可以例如是NIC或者其它适当接口。NIC是指包括时间认知MAC 240和PHY设备242的卡或者电路。时间认知MAC240和PHY设备242可以是以太网设备。MAC240可以包括用于向和从主机控制模块224传输和接收帧的AVB队列244、非AVB队列246和关联的逻辑设备。
[0068]时间认知MAC 240可以包括时间认知门模块和/或门250、队列244、246、块化成形器252 (例如,图5的块化成形器174、176、178)和/或定时模块254 (例如,图5的定时模块184、186、188之一)。图7和图9提供了包括时间认知门模块和门、队列、块化成形器和/或定时模块的示例实现方式。图8提供包括队列和块化成形器而未包括时间认知门模块、时间认知门和定时模块的示例实现方式。
[0069]包括主机控制模块224和时间认知MAC 240的通话器222提供一种用于匹配数据流的传输速率与介质时钟速率的硬件方式。传统上,通话器的主机控制模块在完成生成并且在系统存储器中存储帧时向NIC转移该帧的所有权。如果MAC的对应输出空闲,则NIC然后开始处理帧并且传输帧。时间认知门模块和/或门250通过屏蔽帧的所有权来延迟帧的处理。时间认知门模块和/或门250屏蔽帧的所有权直至预定时间和/或如由帧的描述符指示的传送时间。
[0070]如果帧的描述符的传送时间指示帧有效和/或时间认知门模块确定传送时间有效,则可以不转移帧的所有权。直至由本地时钟生成的本地时间(例如,IEEE 802.1AS时间)等于或者大于描述符的传送时间才可以从主机控制模块224向时间认知MAC 240转移所有权。定时模块254可以生成指示本地时间的本地时钟信号。作为结果,对于帧的介质速率在适当预定时间在AVB队列244和块化成形器254接收帧。
[0071]AVB队列244基于帧的传送时间从系统存储器234接收帧并且然后向块化成形器252释放数据。组合的成形器252如以上描述的那样随时间扩展数据。组合的成形器252然后向PHY设备242转发数据的帧,该PHY设备242向切换网络256输出数据。
[0072]图7示出了并入了时间认知门模块262(也被标识为门模块fg)和组合的g成形器ff的通话器260。通话器260包括主机控制模块266、系统存储器234和接口模块268。接口模块268可以例如是NIC并且包括时间认知MAC 270和PHY设备242。MAC 270从系统存储器234接收数据并且基于数据的类向时间认知MAC 270的相应的AVB队列272和非AVB队列274分发数据。时间认知MAC 270可以从系统存储器234接收数据的帧,基于在帧中提供的头部解析帧和关联的描述符。
[0073]时间认知MAC 270包括时间认知门模块262、定时模块276、队列272、274、组合的成形器ff、复用器277和选择器模块278。为AVB数据而未为非AVB数据提供时间认知门模块262和块化成形器ff。在向AVB队列272传送数据的帧之前,时间认知门模块262通过基于帧的时间戳门控帧来屏蔽帧的所有权。屏蔽所有权直至预定时间和/或如由帧的描述符指示的传送时间。时间认知门模块262可以将呈现时间转换成传送时间和/或比较传送时间与如由来自定时模块276的本地时间信号指示的本地时间。可以基于本地时钟279生成本地时间信号。
[0074]组合的成形器ff可以是组合的流动成形器和类成形器,从而使得它们能够执行每流动成形和每类成形二者。在操作中,从系统存储器234向时间认知门模块262提供AVB数据。时间认知门模块262允许向AVB队列272传递AVB数据,AVB队列272然后向组合的成形器ff释放AVB数据。在向复用器277转发AVB数据之前,组合的成形器ff然后扩展数据。
[0075]复用器277基于来自选择器模块278的控制信号选择来自组合的成形器ff和非AVB队列274的数据并且向PHY设备242的出口端口 279输出数据。选择器模块278可以是严格选择器并且可以基于数据和/或对应队列的优先级级别选择来自组合的成形器ff和非AVB数据队列274的数据。在多个组合的成形器ff和非AVB队列274具有准备好被传输的数据时,可以选择具有最高优先级级别的组合的成形器或者队列。
[0076]如果具有AVB数据的帧的所有时间描述符被标记为有效,则通话器可以不包括组合的成形器ff。为了维持帧的恰当定时,主机控制模块266由于缺乏组合的成形器匕而计算用于帧中的每个帧的传送时间。作为结果,存在用于主机控制模块266的增加的开销。另夕卜,如果在相同时间并且以不同速率正在传输多于一个数据流,则与控制帧的定时关联的复杂性增加。这是因为主机控制模块266与每类成形器的功能相似在时间上对相同类的竞争数据流进行移位。此外,如果未包括组合的成形器ff,则也需要对非AVB数据进行时间调度从而使得可以调度AVB数据突发。尽管有可能通过在所有帧的描述符中并入传送时间来调度AVB数据和非AVB数据,但是确定传送时间是待实时解决的复杂问题。
[0077]包括使用时间认知门模块262和组合的成形器ff的图7的实现方式卸载了主机控制模块266。对于这一实现方式,主机控制模块266可以确定传送时间并且生成用于有效中贞或者具有有效传送时间的巾贞的描述符。主机控制模块266可以确定用于所有巾贞的传送时间。然而,第一类数据的传送时间可以未基于其它数据类的传送时间被确定。这是因为时间认知门模块262和/或组合的成形器ff中的每个时间认知门模块和/或组合的成形器可以(i)基于用于对应数据流和对应数据流的类的传送时间,以及(ii)不基于其它数据流和/或数据流的其它类的传送时间操作。这简化了传送时间的计算。相同数据类的多个数据流可以在相同时间段(例如,本地时间或者IEEE802.1AS时间)期间进入队列,并且组合的成形器ff然后可以保证数据流的根据IEEE标准的恰当展开和定时。
[0078]可以通过不计算用于数据流的每个帧的传送时间来进一步减少主机控制模块266的软件开销。由于包括了组合的成形器ff并且组合的成形器匕可以包括每流动成形器,所以组合的成形器匕可以用来在并非数据流中的每个帧具有描述符(该描述符具有有效传送时间)时展开数据的突发。这允许由时间认知门模块262基于有效传送时间周期性地延迟数据流的帧,这最小化主机控制模块266的开销并且防止收听器中的缓冲器上溢。可以基于预定周期周期性地计算有效传送时间。预定周期可以具有伪随机持续时间或者随机持续时间。可以固定或者可以调整预定周期。
[0079]如以上陈述的那样,组合的成形器仁不是时间认知的并且因此可以具有比介质时钟速率(或者播放出速率)更快设置(例如,快一个字节)的对应速率。由于这一点,可以在数据流的帧的描述符中周期性地提供有效传送时间。在时间认知门模块检测到有效传送时间时,拖延帧和对应数据流。作为结果,直至本地时间是与传送时间相同的时间或者比传送时间更晚的时间才允许帧进入时间认知MAC 270的对应AVB队列。这一周期性调整保证收听器的缓冲器未上溢。由于周期性地提供有效传送时间,所以减少了主机控制模块266的关联的处理时间,因为未为每个帧计算传送时间。
[0080]本地时钟和/或定时模块276可以包括计数器,比如以基于本地晶体振荡器的速率操作的32位计数器。计数器可以用来生成本地时间(或者IEEE 802.1AS时间)。本地时间可以被提供给主机控制模块266并且用来向在从系统存储器234向时间认知MAC 270传送的巾贞的描述符中的传送时间加时间戳。巾贞可以是IEEE 802.1AS中贞。
[0081]主机控制模块266可以使用IEEE 802.1AS协议以变成认知与在本地时间与全局(或者主)时间之间的差值关联的直流(DC)偏移和/或ppm偏移。这允许主机控制模块266将本地时间转化成全局时间和/或将全局时间转化成本地时间。可以在生成呈现时间和/或传送时间时和/或在确定介质速率时使用这些转化中的一个或者多个转化。例如,IEEE 1722帧的呈现时间可以被锁定到全局时间。主机控制模块266可以在使用呈现时间时;在确定介质速率时;和/或在生成传送时间时将呈现时间转换成本地时间。
[0082]如果在描述符中将传送时间标记为有效,则时间认知门模块262可以比较由计数器提供的时间与在描述符中的传送时间。通过使用相同硬件定时器(即,计数器)以用于帧的加时间戳和帧的时间认知门控,防止主机控制模块266执行时间转化。这是因为使用相同定时器来执行加时间戳和时间认知门控。另外,如果本地晶体的频率或者PPm值改变,则用来执行转化的校准的值和/或等式可以随时间改变。本地振动器的频率和/或ppm值可以例如由于温度改变而改变。可以随时间调整校准的值和/或等式以维持网络设备的同步以及巾贞的恰当传送和播放出速率。
[0083]在一个实现方式中,主机控制模块266可以在从呈现时间减去预定网络延时时间量之后使用硬件和/或软件将呈现时间转换成传送时间。呈现时间在原先被生成时可以已经包括了网络延时时间。在另一实现方式中,初始地确定传送时间并且然后基于传送时间确定呈现时间。网络延时时间可以在将传送时间转换成呈现时间之前或者之后与传送时间相加。
[0084]图8示出了通话器300,该通话器300具有提供时间认知门控的非时间认知MAC302而未包括时间认知门模块、时间认知门和/或定时模块。通话器300包括主机控制模块304、系统存储器234和接口模块306。主机控制模块304在系统存储器234中将帧的所有权从主机控制模块304改变成接口模块306。接口模块306包括时间认知MAC 302和PHY设备242。时间认知MAC 302包括AVB队列272、非AVB队列274、组合的成形器ff、复用器277和选择器模块278。队列272、274可以从系统存储器234直接接收帧。
[0085]图7的时间认知门模块262的功能可以由主机控制模块304使用硬件和/或软件被高效实施。主机控制模块304可以在帧的描述符具有有效传送时间时延迟向AVB队列272提供帧。在一个实现方式中,主机控制模块304可以周期性地延迟AVB帧的传送而未确定帧是否具有有效传送时间。这一延迟可以基于预定周期。预定周期可以具有伪随机持续时间或者随机持续时间。可以固定或者可以调整预定周期。在系统存储器234中存储的帧可以不包括传送时间。在系统存储器234中存储的帧可以包括在通话器300下游的收听器可以在播放出帧时使用的呈现时间。
[0086]图9示出了并入了时间认知门模块322和组合的成形器ff的另一通话器320。组合的成形器ff在时间认知MAC 324中并且在AVB队列272下游。通话器320包括主机控制模块326、系统存储器234和接口模块328。与图7的主机控制模块266相似,主机控制模块326从主机控制模块326向接口模块328和/或时间认知MAC 324转移帧的所有权。接口模块328包括时间认知MAC 324和PHY设备242。
[0087]时间认知MAC 324包括AVB队列272、非AVB队列274、时间认知门模块322、定时模块276、组合的成形器ff、复用器277和选择器模块278。队列272、274可以从系统存储器234直接接收帧。时间认知门模块322包括比较器330和时间认知门332。比较器330比较在AVB队列272中的线头帧的有效传送时间与由定时模块276的本地时钟279提供的本地时间。如果本地时间与帧的有效传送时间相同或者比该有效传送时间更晚,则接收有效传送时间的对应比较器的输出可以例如是高(HIGH)。这指示可以向组合的成形器仁中的对应成形器转发与有效传送时间对应的帧。与接收有效传送时间的比较器对应的时间认知门然后可以向组合的成形器ff中的对应成形器传送帧。
[0088]组合的成形器ff可以包括每流动成形器(被标识为fQ1)和每类成形器(被标识为fQ2)。每流动成形器fQ1展开接收的流中的数据。每流动成形器fQ1中的每个每流动成形器操作而无其它成形器的状态信息。每类成形器fQ2可以进一步展开或者在时间上移位从每流动成形器fQ1接收的数据。每类成形器fQ2可以具有相同类的其它每类成形器的状态信息。作为具有用于相同类的每个AVB队列的每类成形器的备选,单个每类成形器可以被使用并且接收相同类的AVB队列的所有输出。在图10中示出了这一点的示例。
[0089]复用器277基于来自选择器模块278的控制信号选择从每类成形器fQ2和非AVB队列274输出的数据。复用器277向PHY设备242输出选择的数据。
[0090]图10示出了并入了时间认知门模块322和用于每类AVB数据的单个每类成形器的通话器340。通话器340包括主机控制模块326、系统存储器234和接口模块342。与图7的主机控制模块266相似,主机控制模块326从主机控制模块326向接口模块342和/或时间认知MAC 344转移帧的所有权。接口模块344包括时间认知MAC 344和PHY设备342。
[0091]时间认知模块344包括AVB队列272、非AVB队列274、时间认知门模块322、定时模块276、组合的成形器346、348、复用器277和选择器模块278。队列272、274可以从系统存储器234直接接收帧。时间认知门模块322包括比较器330和时间认知门332。
[0092]组合的成形器346、348可以包括每流动成形器(被标识为fQ1)和每类成形器(被标识为fQ2)。每流动成形器fQ1展开接收的流中的数据。每流动成形器fQ1中的每个每流动成形器操作而无其它成形器的状态信息。每类成形器fQ2可以从相同类的一个或者多个每流动成形器fQ1接收数据并且可以进一步展开或者在时间上移位从每流动成形器fQ1接收的数据。每类成形器fQ2可以不具有其它每类成形器的状态信息。
[0093]组合的成形器346包括用于每个AVB队列的每流动成形器349和/或相同类的每个时间认知门模块322。组合的成形器346包括单个每类成形器350。每类成形器350接收组合的成形器346的每流动成形器349的帧并且仲裁在相同时间在每类成形器350接收的数据的比特之间的冲突。由于每流动成形器349不是时间认知的,所以每类成形器350可以在相同时间从每流动成形器349中的每个每流动成形器接收数据的比特。每类成形器350可以交织和展开从每流动成形器349接收的数据而仲裁可能在每流动成形器349的输出之间发生的定时冲突。如果在相同时间从每流动成形器349接收比特,则每类成形器350确定先传输这些比特中的哪个比特。这一确定可以例如基于⑴与帧和/或比特的描述符对应的呈现时间和/或传送时间,和/或(ii)在描述中的其它信息。
[0094]进入队列272的数据速率可以比离开组合的成形器346的数据速率更快。出于这一原因,每流动成形器349可以被时间认知MAC344解激活。在一个实现方式中,每流动成形器349未被包括或者被解激活,从而使得每流动成形器349是直通设备而未随时间执行数据的成形(或者扩展)。主机控制模块326和门模块322可以通过(i)调整主机控制模块326何时向时间认知MAC 314转移帧的所有权,以及(ii)基于与帧对应的时间戳门控帧来实质上提供每流动成形。时间戳可以包括呈现时间或者传送时间。在另一实现方式中,每流动成形器349 (i)对于不包括时间戳、呈现时间、传送时间和/或有效时间戳的帧而被激活,以及(ii)对于包括时间戳、呈现时间、传送时间和/或有效时间戳的帧被解激活。
[0095]在一个实现方式中,主机控制模块326为某些帧而未为其它帧提供呈现时间和/或传送时间。可以周期性地或者基于可以由主机控制模块326设置的预定周期提供呈现时间和/或传送时间。预定周期可以是伪随机的、随机的、被固定和/或被调整。
[0096]复用器277基于来自选择器模块278的控制信号选择从每类成形器fQ2和非AVB队列274输出的数据。复用器277向PHY设备242输出选择的数据。
[0097]可以使用许多方法来操作图4-图10的以上描述的通话器,在图11-图13中图示了示例方法。图11-图13的以下描述的任务是为了作为例示性示例;可以取决于应用而依次、同步、同时、连续、在重叠时间段期间或者按照不同顺序执行任务。也可以取决于实现方式和/或事件的序列而不执行或者略过任务中的任何任务。
[0098]图11图示了具有在MAC中执行的队列前时间认知门控的帧成形方法。虽然主要关于图7的实现方式描述了图11的方法的任务,但是可以容易地修改任务以适用于本公开内容的其它实现方式。虽然关于传送多个帧描述了以下任务,但是可以对于一个或者多个帧执行任务。任务可以被迭代地执行并且可以始于350。
[0099]在352,系统储存器34可以从数据源接收数据的帧。在354,主机控制模块266生成包括用于帧中的一个或者多个帧的呈现时间和/或传送时间的时间戳并且在系统存储器234中与巾贞一起存储时间戳。主机控制模块266可以如以上描述的那样生成描述符以包括时间戳。在356,可以修改帧以包括时间戳。例如,可以修改帧的头部以包括时间戳。可以修改帧以包括描述符。
[0100]在358,主机控制模块266确定是否从主机控制模块266向时间认知MAC 270转移中贞的所有权。主机控制模块266可以在已经转移了巾贞的所有权时信号通知时间认知MAC270。在359,门模块262访问系统存储器234并且从系统存储器234接收AVB帧。可以传送并且在非AVB队列274中存储非AVB帧。
[0101]在360,门模块262确定AVB帧是否包括有效时间戳。如果AVB帧包括有效时间戳(有效呈现时间和/或传送时间),则可以执行任务362,否则执行任务364。在362,门模块262通过基于有效时间戳和来自定时模块276的本地时间门控具有有效时间戳的AVB帧来屏蔽这些帧的所有权。可以在任务362之后执行任务366。
[0102]在364,门模块262允许具有有效时间戳的AVB帧向相应队列272的传送而未屏蔽这些帧的所有权的转译。在366,组合的成形器ff对具有或者不具有有效时间戳的AVB帧进行成形。这可以包括每流动成形和/或每类成形。
[0103]在370,复用器277基于来自选择器模块278的控制信号选择组合的成形器ff和非AVB队列274的输出。在372,复用器277向PHY设备242传送组合的成形器ff和非AVB队列274的选择的输出。在374,主机控制模块266可以确定是否有待传送的附加巾贞。如果有待传送的附加帧,则可以执行任务358,否则该方法可以在376结束。作为备选,可以在任务372之后执行任务352而未执行任务374、376。
[0104]图12图示了具有经由主机控制模块执行的时间认知门控的帧成形方法。虽然主要关于图8的实现方式描述了图12的方法的任务,但是可以容易地修改任务以适用于本公开内容的其它实现方式。虽然关于传送多个帧描述了以下任务,但是可以对于一个或者多个帧执行任务。任务可以被迭代地执行并且可以在400开始。
[0105]在402,系统存储器234可以从数据源接收数据的帧。在404,主机控制模块304可以生成包括用于帧中的一个或者多个帧的包括呈现时间的时间戳并且在系统存储器234中与帧一起存储时间戳。主机控制模块304可以如以上描述的那样生成描述符以包括时间戳。在406,可以修改帧和/或描述符以包括时间戳。
[0106]在408,主机控制模块304确定是否从主机控制模块304向时间认知MAC 270转移帧的所有权。这可以包括延迟AVB帧中的选择的AVB帧以高效地提供选择的AVB帧的门控。在410,主机控制模块304基于执行的门控转移AVB帧的所有权。主机控制模块304可以在已经转移了帧的所有权时信号通知时间认知MAC 302。在411,时间认知MAC 302可以基于门控从系统存储器234访问AVB帧并且在队列272中的相应的队列中存储AVB帧。可以传送并且在非AVB队列274中存储非AVB帧。
[0107]在412,组合的成形器ff对AVB帧进行成形。这可以包括每流动成形和/或每类成形。在416,复用器277基于来自选择器模块278的控制信号选择组合的成形器ff和非AVB队列274的输出。在418,复用器277向PHY设备242传送组合的成形器ff和非AVB队列274的选择的输出。在420,主机控制模块304可以确定是否存在待传送的附加帧。如果存在待传送的附加帧,则可以执行任务408,否则该方法可以在422结束。作为备选,可以在任务418之后执行任务404而不执行任务420、422。
[0108]图13图示了具有在MAC中执行的队列后时间认知门控的帧成形方法。虽然主要关于图9-图10的实现方式描述了图13的方法的任务,但是可以容易地修改任务以适用于本公开内容的其它实现方式。虽然关于传送多个帧描述了以下任务,但是可以对于一个或者多个帧执行任务。任务可以被迭代地执行并且可以在450开始。
[0109]在452,系统存储器234可以从数据源接收数据的帧。在454,主机控制模块326生成用于帧中的一个或者多个帧的包括呈现时间和/或传送时间的时间戳并且在系统存储器234中与巾贞一起存储时间戳。主机控制模块326可以如以上描述的那样生成描述符以包括时间戳。在456,可以修改巾贞和/或描述符以包括时间戳。
[0110]在458,主机控制模块326确定是否从主机控制模块326向时间认知MAC 324或者344转移帧的所有权。主机控制模块326可以在已经转移了帧的所有权时信号通知时间认知MAC 324或者344。在460,时间认知MAC 324或者344可以从系统存储器234访问帧并且在队列272、274中的相应的队列中存储帧。
[0111]在462,门模块322确定AVB帧是否包括有效时间戳。如果AVB帧包括有效时间戳(有效呈现时间和/或传送时间),则可以执行任务464,否则执行任务465。在464,门模块322通过基于有效时间戳和来自定时模块276的本地时间门控具有有效时间戳的AVB帧来屏蔽这些帧的所有权。可以在任务464之后执行任务466。
[0112]在465,门模块322允许不具有有效时间戳的AVB帧向相应的队列272的传送而未屏蔽这些帧的所有权的转移。在466,门模块322允许不具有有效时间戳的AVB帧向相应的队列272的传送而未屏蔽这些帧的所有权的转移。在466,每流动成形器fQ1和/或349可以在每流动基础上对具有或者不具有有效时间戮的AVB巾贞进行成形。在468,每类成形器fQ2和/或350可以在每类基础上对从每流动成形器fQ1和/或349接收的AVB帧进行成形。
[0113]在470,复用器277基于来自选择器模块278的控制信号选择组合的成形器ff和/或346和非AVB队列274的输出。在472,复用器277向PHY设备242传送组合的成形器ff和/或346和非AVB队列274的选择的输出。在474,主机控制模块326可以确定是否存在待传送的附加帧。如果存在待传送的附加帧,则可以执行任务458,否则该方法可以在476结束。作为备选,可以在任务472之后执行任务452而不执行任务474、476。
[0114]前文描述在性质上仅为例示性的并且绝非旨在于限制公开内容、它的应用或者使用。可以用多种形式实施公开内容的宽泛教导。因此,尽管本公开内容包括具体示例,但是不应这样限制公开内容的真实范围,因为其他修改将在研读附图、说明书和所附权利要求书时变得清楚。如这里所用,短语A、B和C中的至少一个应当被解释为意味着使用非排他逻辑OR的逻辑(A或者B或者C)。应当理解,可以按照不同顺序(或者并行)执行在方法内的步骤而不改本公开内容的原理。
[0115]在包括以下定义的本专利文献中,可以用术语电路替换术语模块。术语模块可以指代以下各项、是以下各项的部分或者包括以下各项:专用集成电路(ASIC);数字、模拟或者混合模拟/数字分立电路;数字、模拟或者混合模拟/数字集成电路;组合逻辑电路;现场可编程门阵列(FPGA);执行代码的处理器(共享、专用或者成组);存储由处理器执行的代码的存储器(共享、专用或者成组);提供描述的功能的其它适当硬件部件;或者以上各项中的一些或者所有项的比如在片上系统中的组合。
[0116]术语代码如以上所用可以包括软件、固件和/或微代码并且可以指代程序、例程、函数、类和/或对象。术语共享处理器涵盖可以执行来自多个模块的一些或者所有代码的单个处理器。术语成组处理器涵盖与附加处理器组合执行来自一个或者多个模块的一些或者所有代码的处理器。术语共享存储器涵盖存储来自多个模块的一些或者所有代码的单个存储器。术语成组存储器涵盖与附加存储器组合存储来自一个或者多个模块的一些或者所有代码的存储器。术语存储器可以是术语计算机可读介质的子集。术语计算机可读介质未涵盖经过介质传播的瞬态电和电磁信号并且因此可以被视为有形和非瞬态。非瞬态有形计算机可读介质的非限制示例包括非易失性存储器、易失性存储器、磁存储装置和光存储装置。
[0117]在本申请中描述的装置和方法可以部分或者完全由被一个或者多个处理器执行的一个或者多个计算程序实施。计算机程序包括在至少一个非瞬态有形计算机可读介质上存储的处理器可执行的指令。计算机程序也可以包括和/或依赖于存储的数据。
[0118]本公开内容的更多方面涉及以下条款中的一个或者多个条款。提供一种网络设备并且该网络设备包括存储器、MAC模块、主机控制模块和选择器模块。存储器被配置为存储
(i)从源接收的帧,以及(ii)与帧对应的时间戳。MAC模块被配置为(i)从存储器接收帧和时间戳,以及(ii)向物理层设备转发帧。MAC模块包括队列和成形模拟。队列被配置为存储从存储器接收的帧。成形模块被配置为(i)从队列接收帧,以及(ii)随时间扩展帧中的数据以生成块化信号。主机控制模块被配置为从主机控制模块向MAC模块转移帧的所有权。主机控制模块或者MAC模块被配置为屏蔽多个帧中的第一帧的所有权的转移、包括基于时间戳门控第一帧以延迟第一帧在队列中的接收。选择器模块被配置为(i)选择块化信号之一,以及(ii)向物理层设备转发选择的块化信号。
[0119]MAC模块包括门模块。门模块被配置为(i)从存储器接收帧,(ii)屏蔽帧中的第一帧的所有权的转移(包括门控第一帧以延迟第一帧在队列中的接收),以及(iii)向队列转发帧。门模块被配置为比较时间戳与本地时间并且基于比较来允许多个帧从存储器向队列的传送。门模块中的每个门模块被配置为响应于本地时间匹配或者晚于时间戳中的对应时间戳来允许巾贞之一的传送。
[0120]在帧中的数据包括音频数据、视频数据或者时间敏感控制数据。主机控制模块确定用于帧的呈现时间。呈现时间是在将在播放出设备播放出帧时的时间。时间戳可以包括呈现时间。
[0121]时间戳可以包括传送时间。传送时间是指在(i)将从存储器向MAC模块传送帧,
(ii)将向队列传送巾贞或者(iii)将从主机控制模块向MAC模块传送巾贞的所有权时的时间。
[0122]主机控制模块被配置为⑴确定用于帧的传送时间,以及(ii)生成具有传送时间的描述符。主机控制模块在存储器中与帧一起存储描述符。MAC模块包括门模块。门模块被配置为(i)与巾贞一起接收描述符,以及(ii)基于在描述符中的用于第一巾贞的传送时间门控第一中贞。
[0123]MAC模块被配置为响应于检测到帧的所有权从主机控制模块向MAC模块的转移来访问在存储器中的帧。帧包括第二帧。第一帧具有有效传送时间。第二帧具有无效传送时间。主机控制模块或者MAC模块被配置为(i)屏蔽第一帧的所有权,以及(ii)不屏蔽第二帧的所有权。成形模块包括用于队列中的每个队列的流动成形模块和类成形模块。流动成形模块被配置为在每流动基础上随时间扩展数据。类成形模块具有相同类的其它类成形模块的状态信息并且被配置为基于状态信息在每类基础上随时间扩展数据。
[0124]提供了一种网络设备并且该网络设备包括:存储器,被配置为存储(i)从源接收的中贞,以及(ii)与帧对应的时间戳。MAC模块被配置为⑴从存储器接收帧和时间戳,以及(ii)向物理层设备转发帧。MAC模块包括:队列,被配置为存储从存储器接收的帧,以及成形模块,被配置为(i)从队列接收帧,以及(ii)随时间扩展帧中的数据以生成块化信号。MAC模块包括:门模块,被配置为基于时间戳门控巾贞中的第一巾贞以延迟第一巾贞从队列向成形模块的传送。主机控制模块被配置为从主机控制模块向介质访问控制模块转移帧的所有权,
[0125]介质访问控制模块被配置为响应于第一帧的所有权的转移来访问在存储器中的帧中的第一帧。选择器模块被配置为(i)选择块化信号之一,以及(ii)向物理层设备转发选择的块化信号。
[0126]在帧中的数据包括音频数据、视频数据或者时间敏感控制数据。主机控制模块确定用于帧的呈现时间。呈现时间是在将在播放出设备播放出帧时的时间。时间戳包括呈现时间。
[0127]时间窗包括传送时间。传送时间是指在(i)将从存储器向MAC模块传送巾贞,(ii)将向队列传送巾贞或者(iii)将从主机控制模块向MAC模块转移巾贞的所有权时的时间。
[0128]主机控制模块被配置为⑴确定用于帧的传送时间,以及(ii)生成具有传送时间的描述符。主机控制模块在存储器中与帧一起存储描述符。门模块被配置为(i)与帧一起接收描述符,以及(ii)基于在描述符中的用于第一帧的传送时间门控第一帧。
[0129]帧包括第二帧。第一帧具有有效传送时间。第二帧具有无效传送时间。MAC模块被配置为(i)屏蔽第一帧的所有权,以及(ii)不屏蔽第二帧的所有权。门模块包括:比较器,被配置为比较时间戳与本地时间以生成比较信号。门被配置为基于比较信号允许帧从队列向成形模块的传送。门中的每个门被配置为响应于本地时间匹配或者晚于时间戳中的对应时间戳来允许帧之一的传送。
[0130]成形模块包括用于队列中的每个队列或者用于门模块中的每个门模块的流动成形模块和类成形模块。流动成形模块被配置为在每流动基础上随时间扩展数据。类成形模块具有相同类的其它类成形模块的状态信息,并且被配置为基于状态信息在每类基础上随时间扩展数据。
[0131]成形模块包括类成形模块。类成形模块被配置为并行接收数据流。数据流是相同类的。类成形模块组合和随时间扩展数据流而无其它成形模块的状态信息。
[0132]成形模块包括流动成形模块。流动成形模块相互并联并且被配置为接收数据流中的相应数据流。MAC模块被配置为基于时间戳解激活流动成形模块。
【权利要求】
1.一种网络设备,包括: 存储器,被配置为存储(i)从源接收的多个帧,以及(ii)与所述帧对应的时间戳;介质访问控制模块,被配置为(i)从所述存储器接收所述多个帧和所述时间戳,以及(ii)向物理层设备转发所述帧,其中所述介质访问控制模块包括: 队列,被配置为存储从所述存储器接收的所述多个帧,以及 成形模块,被配置为(i)从所述队列接收所述帧,以及(ii)随时间扩展所述多个帧中的数据以生成块化信号; 主机控制模块,被配置为从所述主机控制模块向所述介质访问控制模块转移所述多个帧的所有权, 其中所述主机控制模块或者所述介质访问控制模块被配置为屏蔽所述多个帧中的第一帧的所述所有权的所述转移、包括基于所述时间戳门控所述第一帧以延迟所述第一帧在所述队列中的接收;以及 选择器模块,被配置为(i)选择所述块化信号之一,以及(ii)向所述物理层设备转发选择的所述块化信号。
2.根据权利要求1所述的网络设备,其中: 所述介质访问控制模块包括门模块;并且 所述门模块被配置为(i)从所述存储器接收所述帧,(?)屏蔽所述多个帧中的所述第一帧的所述所有权的所述转移、包括门控所述第一帧以延迟所述第一帧在所述队列中的接收,以及(iii)向所述队列转发所述帧。
3.根据权利要求2所述的网络设备,其中所述门模块被配置为比较所述时间戳与本地时间,并且基于所述比较来允许所述多个帧从所述存储器向所述队列的传送。
4.根据权利要求3所述的网络设备,其中所述门模块中的每个门模块被配置为响应于所述本地时间匹配或者晚于所述时间戳中的对应时间戳来允许所述多个帧之一的传送。
5.根据权利要求1所述的网络设备,其中: 在所述多个帧中的所述数据包括音频数据、视频数据或者时间敏感控制数据; 所述主机控制模块确定用于所述帧的呈现时间; 所述呈现时间是在将在播放出设备播放出所述帧时的时间;并且 所述时间戳包括所述呈现时间。
6.根据权利要求1所述的网络设备,其中: 所述时间戳包括传送时间;并且 所述传送时间是指在(i)将从所述存储器向所述介质访问控制模块传送所述帧,(ii)将向所述队列传送所述帧或者(iii)将从所述主机控制模块向所述介质访问控制模块转移所述帧的所有权时的时间。
7.根据权利要求6所述的网络设备,其中: 所述主机控制模块被配置为(i)确定用于所述多个帧的所述传送时间,以及(ii)生成具有所述传送时间的描述符; 所述主机控制模块在所述存储器中与所述多个帧一起存储所述描述符; 所述介质访问控制模块包括门模块;并且 所述门模块被配置为(i)与所述多个帧一起接收所述描述符,以及(ii)基于在所述描述符中的用于所述第一帧的所述传送时间门控所述第一帧。
8.根据权利要求1所述的网络设备,其中所述介质访问控制模块被配置为响应于检测到所述多个帧的所述所有权从所述主机控制模块向所述介质访问控制模块的所述转移来访问在所述存储器中的所述多个帧。
9.根据权利要求1所述的网络设备,其中: 所述多个帧包括第二帧; 所述第一帧具有有效传送时间; 所述第二帧具有无效传送时间;并且 所述主机控制模块或者所述介质访问控制模块被配置为(i)屏蔽所述第一帧的所有权,以及(ii)不屏蔽所述第二帧的所有权。
10.根据权利要求1所述的网络设备,其中: 所述成形模块包括用于所述队列中的每个队列的流动成形模块和类成形模块; 所述流动成形模块被配置为在每流动基础上随时间扩展数据;并且所述类成形模块具有相同类的其它类成形模块的状态信息,并且被配置为基于所述状态信息在每类基础上随时间扩展数据。
11.一种网络设备,包括: 存储器,被配置为存储(i)从源接收的多个帧,以及(ii)与所述帧对应的时间戳; 介质访问控制模块,被配置为(i)从所述存储器接收所述多个帧和所述时间戳,以及(ii)向物理层设备转发所述帧,其中所述介质访问控制模块包括: 队列,被配置为存储从所述存储器接收的所述多个帧, 成形模块,被配置为(i)从所述队列接收所述多个帧,以及(ii)随时间扩展所述多个帧中的数据以生成块化信号,以及 门模块,被配置为基于所述时间戳门控所述多个帧中的第一帧以延迟所述第一帧从所述队列向所述成形模块的传送; 主机控制模块,被配置为从所述主机控制模块向所述介质访问控制模块转移所述多个帧的所有权, 其中所述介质访问控制模块被配置为响应于所述第一帧的所述所有权的所述转移来访问在所述存储器中的所述多个帧中的所述第一帧;以及 选择器模块,被配置为(i)选择所述块化信号之一,以及(ii)向所述物理层设备转发选择的所述块化信号。
12.根据权利要求11所述的网络设备,其中: 在所述多个帧中的所述数据包括音频数据、视频数据或者时间敏感控制数据; 所述主机控制模块确定用于所述帧的呈现时间; 所述呈现时间是在将在播放出设备播放出所述帧时的时间;并且 所述时间戳包括所述呈现时间。
13.根据权利要求11所述的网络设备,其中: 所述时间戳包括传送时间;并且 所述传送时间是指在(i)将从所述存储器向所述介质访问控制模块传送所述帧,(ii)将向所述队列传送所述帧或者(iii)将从所述主机控制模块向所述介质访问控制模块转移所述帧的所有权时的时间。
14.根据权利要求13所述的网络设备,其中: 所述主机控制模块被配置为(i)确定用于所述多个帧的所述传送时间,以及(ii)生成具有所述传送时间的描述符; 所述主机控制模块在所述存储器中与所述多个帧一起存储所述描述符;并且所述门模块被配置为(i)与所述多个帧一起接收所述描述符,以及(ii)基于在所述描述符中的用于所述第一帧的所述传送时间门控所述第一帧。
15.根据权利要求11所述的网络设备,其中: 所述多个帧包括第二帧; 所述第一帧具有有效传送时间; 所述第二帧具有无效传送时间;并且 所述介质访问控制模块被配置为(i)屏蔽所述第一帧的所有权,以及(ii)不屏蔽所述第二帧的所有权。
16.根据权利要求11所述的网络设备,其中所述门模块包括: 比较器,被配置为比较所述时间戳与本地时间以生成比较信号;以及 门,被配置为基于所述比较信号允许所述多个帧从所述队列向所述成形模块的传送。
17.根据权利要求16所述的网络设备,其中所述门中的每个门被配置为响应于所述本地时间匹配或者晚于所述时间戳中的对应时间戳来允许所述多个帧之一的传送。
18.根据权利要求11所述的网络设备,其中: 所述成形模块包括用于所述队列中的每个队列或者用于所述门模块中的每个门模块的流动成形模块和类成形模块; 所述流动成形模块被配置为在每流动基础上随时间扩展数据;并且所述类成形模块具有相同类的其它类成形模块的状态信息,并且被配置为基于所述状态信息在每类基础上随时间扩展数据。
19.根据权利要求11所述的网络设备,其中: 所述成形模块包括类成形模块; 所述类成形模块被配置为并行接收多个数据流; 所述多个数据流为相同类的;并且 所述类成形模块组合并且随时间扩展所述多个数据流而没有其它成形模块的状态信肩、O
20.根据权利要求11所述的网络设备,其中: 所述成形模块包括流动成形模块; 所述流动成形模块相互并联并且被配置为接收多个数据流中的相应数据流;并且 所述介质访问控制模块被配置为基于所述时间戳解激活所述流动成形模块。
【文档编号】H04L12/28GK104137488SQ201380010506
【公开日】2014年11月5日 申请日期:2013年2月22日 优先权日:2012年2月22日
【发明者】D·潘内尔 申请人:马维尔国际贸易有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1