通过网络隧道传输数据的方法和装置

申请号 CN201280021418.X 申请日 2012-05-02 公开(公告)号 CN103891223A 公开(公告)日 2014-06-25
申请人 苹果公司; 发明人 N·D·瓦仁; G·W·小琼斯; R·B·蒙太尼; M·X·莫拉; B·D·乔治; M·W·墨菲; W·P·康尼勒斯;
摘要 本 申请 涉及用于通过网络隧道有效传输数据的方法和装置。在一种 实施例 中,开隧道的设备向网络的对等设备通告某些能 力 ,并且发现网络的对等设备的能力。在另一种实施例中,开隧道的网络设备中的每个设备都从中转协议参数导出在数据联网中使用的网络参数。
权利要求

1.一种优先化网络中的数据业务的方法,包括:
发现与网络中的一个或多个优先化的类关联的一个或多个设备;
为所述一个或多个优先化的类分配一个或多个中转资源;以及
在对应分配的一个或多个中转资源上只路由与所述一个或多个优先化的类关联的数据。
2.如权利要求1所述的方法,其中所述一个或多个优先化的类基于一种或多种多媒体数据类型。
3.如权利要求2所述的方法,其中所述一种或多种多媒体数据类型包括音频数据。
4.如权利要求1所述的方法,其中所述一个或多个优先化的类基于设备类型。
5.如权利要求4所述的方法,其中一种或多种所述设备类型包括音频设备和非音频设备。
6.如权利要求1所述的方法,其中所述一个或多个传送资源包括直接存储器访问(DMA)物理资源。
7.如权利要求6所述的方法,其中所述DMA物理资源经本机主机接口(NHI)耦合到主机接口。
8.如权利要求6所述的方法,其中所述DMA物理资源经用户传输接口(UTI)耦合到外围设备接口。
9.如权利要求1所述的方法,其中所发现的所述一个或多个设备中的每一个都共享公共时间参考。
10.一种配置成优先化网络中的数据业务的装置,包括:
一个或多个网络接口;
处理器;
非临时性计算机可读介质,包括存储在其上的至少一个计算机程序,所述至少一个计算机程序配置成,当在处理器上执行时:
发现与网络中一个或多个优先化的类关联的一个或多个设备;
为所述一个或多个优先化的类分配一个或多个中转资源;以及
在对应分配的一个或多个中转资源上只路由与所述一个或多个优先化的类关联的数据。
11.如权利要求10所述的装置,其中所述一个或多个网络接口包括与Thunderbolt兼容的网络接口。
12.如权利要求10所述的装置,其中所述一个或多个网络接口包括与高速外设部件互连(PCIe)兼容的网络接口。
13.如权利要求10所述的装置,其中所述一个或多个网络接口包括与DisplayPort兼容的网络接口。
14.如权利要求10所述的装置,其中所述一个或多个传送资源包括直接存储器访问(DMA)物理资源。
15.如权利要求10所述的装置,其中所述一个或多个传送资源包括专用存储缓冲器
16.一种用于实现网络中优先化的设备类的系统,包括:
为网络的一个或多个设备确定同步主设备;
基于由所述同步主设备提供的同步信息导出时间参考;以及
为所述一个或多个设备支持的数据类型分配一个或多个中转资源,其中所述一个或多个中转资源被同步到所导出的时间参考。
17.如权利要求16所述的系统,其中所述网络包括多个同步主设备,其中每个同步主设备都与一个网络片段关联。
18.如权利要求17所述的系统,其中所述多个同步主设备经一个或多个边界设备中继同步信息。
19.如权利要求16所述的系统,其中所述网络包括一个或多个与Thunderbolt兼容的设备。
20.如权利要求16所述的系统,其中所述一个或多个传送资源包括直接存储器访问(DMA)物理资源。

说明书全文

通过网络隧道传输数据的方法和装置

[0001] 优先权
[0002] 本申请要求与本申请同期于2012年5月2日提交的相同标题的美国专利申请序列号13/462,603的优先权,该申请13/462,603又要求于2011年5月2日提交且标题为“METHODS AND APPARATUS FOR TRANSPORTING DATA THROUGH NETWORK TUNNELS”的共同未决美国临时专利申请号61/481,641的优先权,以上每个申请都在此引入其全部作为参考。

技术领域

[0003] 本发明总体上涉及计算机化设备、网络和总线的技术领域。更具体地说,在一个示例性方面,本发明针对通过网络隧道有效地传输数据。

背景技术

[0004] 在数据联网的背景下,“隧道”是联网元件之间的网络通信通道,这种联网元件在(中转或承载网络固有的)中转协议中嵌入了(联网元件共享的)网络协议。开隧道通常用于逻辑上连接不能物理组合的子网络。例如,专用网络可以通过公共网络建立安全隧道,以便创建共享的虚拟专用网络。开隧道还可以用于在公共传输之上嵌入若干个网络协TM议。例如,初期的Thunderbolt 高速数据总线可以在单个、成本有效的接口上同时支持TM TM
PCI-Express (高速外设部件互连)和DisplayPort 数据。
[0005] 当前的Thunderbolt接口实现在单个串行数据接口中提供了PCI Express(PCIe)隧道、DisplayPort(DP)隧道及通用的本机主机接口(NHI)/用户传输接口(UTI)隧道。在操作过程中,PCIe流与DP流被打包到Thunderbolt分组中以进行传输。分组交织到一起,用于在共享的Thunderbolt连接上发送,然后在接收器被解交织到它们各自的组成流中。由于PCIe和DP数据流在中转过程中都不能修改,因此结果产生的流自然与现有的PCI Express和DisplayPort硬件软件兼容。
[0006] 但是,广泛地认识到,总线协议的能与功能性广泛变化。例如,PCIe不提供为给定数据流预留带宽的方式。作为代替,PCIe规范定义了可以用于优先化典型PCIe系统中的事务的业务类和虚拟通道。不幸的是,这些能力没有包括在当前的Thunderbolt解决方案中;现有的Thunderbolt收发器不支持在PCIe协议中使用的虚拟通道或业务类。作为代替,Thunderbolt收发器只能优先化在融合的输入/输出(CIO)层(如本文所使用的,融合的输入/输出(CIO)协议是用于Thunderbolt收发器的中转协议)的业务。例如,Thunderbolt收发器可以只让DP业务比PCIe业务优先。
[0007] 而且,Thunderbolt可热插拔的传输将理想地提供一般化、普遍存在的硬件与软件TM接口,类似于USB(通用串行总线)和FireWire 设备。为此,当前的研究针对最小化用于Thunderbolt设备的特种设备驱动器的使用,从而为消费者和开发者提供类似的“透明”操作。
[0008] 相应地,需要供Thunderbolt传输技术使用的、在开隧道的PCIe流中让某些类型的业务优先的解决方案。理想地,这种解决方案不应当需要专的软件或硬件结构,而且对用户实际上是透明的。更一般地说,需要在开隧道的数据网络中启用某些特定于协议的能力的解决方案。

发明内容

[0009] 本发明通过尤其提供了通过网络隧道有效传输数据的方法和装置满足了以上需求。
[0010] 在本发明的一方面,公开了一种用于实现网络中优先化的设备类的方法。在一种实施例中,所述方法包括:发现网络中的一个或多个设备类;为所述一个或多个设备类分配一个或多个资源;并且根据所分配的一个或多个中转资源来路由来自所发现的一个或多个设备类的数据业务。
[0011] 在本发明的第二方面,公开了一种用于从中转协议参数导出网络协议参数的方法。在一种实施例中,所述方法包括:提取中转参数;至少部分地基于所提取出的中转参数确定网络参数;并且至少部分地基于所确定的网络协议参数进行操作。
[0012] 在本发明的第三方面,公开了一种计算机可读存储装置。在一种实施例中,所述装置包括具有存储在其上的至少一个计算机程序的存储介质。所述至少一个程序配置成,当被执行时,(i)发现一个或多个设备类,(ii)为所发现的一个或多个设备类中的至少一个分配一个或多个中转资源,和/或(iii)根据所分配的一个或多个中转资源来路由数据。
[0013] 在另一种实施例中,所述至少一个程序配置成,当被执行时,(i)提取中转参数,(ii)从所提取出的中转参数确定网络参数,和/或(iii)根据所确定的网络参数进行操作。
[0014] 在本发明的第四方面,公开了一种配置成利用一个或多个隧道流以优先化一种或多种类型的业务的计算机化装置。在一种实施例中,所述装置包括计算机,而且隧道流跨Thunderbolt接口开隧道。
[0015] 在本发明的第五方面,公开了一种利用一个或多个隧道流传输一种或多种类型的业务的系统。在一种实施例中,所述系统包括发送设备、接收设备及至少一个置于其间的承载介质。
[0016] 在本发明的第六方面,公开了一种用于优先化网络中的数据业务的方法。在一种实施例中,所述方法包括:发现与网络中的一个或多个优先化的类关联的一个或多个设备;为所述一个或多个优先化的类分配一个或多个中转资源;以及在对应分配的一个或多个中转资源上只路由与所述一个或多个优先化的类关联的数据。
[0017] 在一种变体中,所述一个或多个优先化的类基于一种或多种多媒体数据类型。例如,所述一种或多种多媒体数据类型可以包括音频数据。在另一种此类变体中,所述一个或多个优先化的类基于设备类型。例如,所述一种或多种设备类型可以包括音频设备和非音频设备。在还有其它变体中,所述一个或多个传送资源包括直接存储器访问(DMA)物理资源。例如,所述DMA物理资源经本机主机接口(NHI)耦合到主机接口,或者作为代替,所述DMA物理资源经用户传输接口(UTI)耦合到外围设备接口。
[0018] 在还有其它变体中,所发现的所述一个或多个设备中的每一个都共享公共时间参考。
[0019] 在本发明的第七方面,公开了一种配置成优先化网络中的数据业务的装置。在一种实施例中,所述装置包括:一个或多个网络接口;处理器;非临时性计算机可读介质,包括存储在其上的至少一个计算机程序,所述至少一个计算机程序配置成,当在处理器上执行时:发现与网络中一个或多个优先化的类关联的一个或多个设备;为所述一个或多个优先化的类分配一个或多个中转资源;以及在对应分配的一个或多个中转资源上只路由与所述一个或多个优先化的类关联的数据。
[0020] 在一种变体中,所述一个或多个网络接口包括与Thunderbolt兼容的网络接口。作为替代,所述一个或多个网络接口包括与高速外设部件互连(PCIe)兼容的网络接口。在还有其它变体中,所述一个或多个网络接口包括与DisplayPort兼容的网络接口。
[0021] 在一种变体中,所述一个或多个传送资源包括直接存储器访问(DMA)物理资源。在其它变体中,所述一个或多个传送资源包括专用存储缓冲器
[0022] 在本发明的第八方面,公开了一种用于实现网络中优先化的设备类的系统。在一种实施例中,所述方法包括:为网络的一个或多个设备确定同步主设备;基于由该同步主设备提供的同步信息导出时间参考;以及为所述一个或多个设备支持的数据类型分配一个或多个中转资源,其中所述一个或多个中转资源被同步到所导出的时间参考。
[0023] 在一种变体中,所述网络包括多个同步主设备,其中每个同步主设备都与一个网络片段关联。在一个此类的系统中,所述多个同步主设备经一个或多个边界设备中继同步信息。
[0024] 在一种变体中,所述网络包括一个或多个与Thunderbolt兼容的设备。
[0025] 在还有其它变体中,所述一个或多个传送资源包括直接存储器访问(DMA)物理资源。
[0026] 参考附图和以下给出的示例性实施例的具体描述,本领域的普通技术人员将立刻认识到本发明的其它特征和优点。

附图说明

[0027] 图1是说明示例性现有技术ThunderboltTM收发器设备的功能性框图
[0028] 图2是说明一种涉及图1现有技术ThunderboltTM收发器设备的几个连接能力的示例性使用场景的功能性框图。
[0029] 图3是根据本发明用于在网络中实现优先化的设备类的方法的一种示例性实施例的逻辑流程图
[0030] 图4是根据本发明用于从中转协议参数导出网络协议参数的方法的一种示例性实施例的逻辑流程图。
[0031] 图5是对实现本发明的各种方法和方面有用的计算机化装置的一种示例性实施例。
[0032] 图6是说明根据本发明的一种特定于实现的ThunderboltTM收发器设备实施例的框图。
[0033] 图7是说明对从由图6的Thunderbolt设备提供的参考时间生成同步音频样本时钟有用的装置的一种示例性实施例的框图。具体实施例
[0034] 现在参考附图,其中贯穿全文,相同的标号指相同的部分。
[0035] 概述
[0036] 本发明特别提供了通过网络隧道有效传输数据的方法和装置。本发明的一种示例性实施例适于让第一种类型的业务(例如,音频业务)比其它类型(非音频业务)优先在具有Thunderbolt能力的网络上输送。如本文中更具体地描述的,Thunderbolt设备将向网络的对等设备通告音频能力,并且还发现对等设备的音频能力。
[0037] 在本发明的第二种实施例中,与Thunderbolt网络关联的每个音频设备都利用Thunderbolt时间管理单元(TMU)来提供网络同步,这种网络同步改进音频重构和通过网络的音频数据传播。Thunderbolt TMU可以提供跨所有Thunderbolt音频设备都共用的高度准确和精确的时间参考。
[0038] 示例性实施例的具体描述
[0039] 现在更具体地描述本发明的示例性实施例。尽管这些实施例主要是就现有的TM TM TMThunderbolt 高速数据总线和PCI-Express (高速外设部件互连)及DisplayPort 协议来讨论的,但是本领域普通技术人员将认识到,本发明不是要以任何方式限定到以上技术或协议。事实上,本发明的各方面可以适用于能够通过一种或多种传输技术在一种或多种网络协议中开隧道的任何网络中。
[0040] 类似地,尽管以下讨论是关于音频数据和音频数据网络给出的,但是本领域普通技术人员将认识到,本发明不是要以任何方式限定到音频数据。事实上,本发明的各方面可以适用于可以比其它数据优先的任何数据类型中。常见的例子包括多媒体数据(例如,音频数据、视频数据等)、特定于应用的数据及实时数据。
[0041] 如本文所使用的,术语“网络”不加限制地指配置成把数据作为被称为分组的合适大小的编组来传输的任何网络或装置。分组网络可以把(由分组序列组成的)数据流输送到设备群。在传输过程中,分组被缓冲并排队,而且,依赖于网络中的业务负载,可能经历变化的延迟与吞吐量。基于分组的网络的常见例子包括互联网(即,互连的计算机网络的全球系统),及私有化的互联网和内联网。
[0042] 如本文所使用的,术语“源”不加限制地指配制成打包信息以便经基于分组的网络传输的设备或接口。术语“目的地”、“目标”和/或“接收器”不加限制地指配置成从分组提取信息的设备或接口。
[0043] 而且,术语“端点”通常而且不加限制地指作为设备之间通信流中信息的“源”和/或“目的地”的设备的一部分。类似地,如本文所使用的,“节点”不加限制地指接收分组并且把分组转发到另一个设备的设备。
[0044] 这些定义不应当以任何方式认为是限制;例如,客户端设备或其它实体可以包括或者可以不包括网络中的逻辑或物理“端点”和/或“节点”。
[0045] 应当进一步认识到,设备可以(而且通常将)同时实现源、目的地和节点的功能性;以上所进行的区分仅仅是为了澄清本发明的各方面。
[0046] 此外,尽管在有线数据总线或连接的背景下示出了某些实施例,但是本发明同等地适用于无线替代方案或接口,例如但不限于,像IEEE标准802.11无线网络的WLAN、像TMIEEE标准802.16无线网络的WMAN、个人区域网络(PAN)、Bluetooth 、红外线及光通信链路。
[0047] 示例性现有技术ThunderboltTM收发器
[0048] 图1说明了结合本发明各方面有用的一种示例性现有技术Thunderbolt收发器100。如所示出的,该Thunderbolt收发器包括:(i)一个或多个高速PCI(PCIe)接口,(ii)一个或多个DisplayPort(DP)接口,(iii)一个或多个Thunderbolt接口,(iv)一个或多个用户传输接口(UTI),(v)PCIe交换机,(vi)本机主机接口(NHI),及(vii)Thunderbolt交换机。Thunderbolt收发器的各当前实现把DP接口限定到仅DP数据;所有其它业务都作为PCIe数据来处理。
[0049] 在操作过程中,NHI通过单个外部PCIe连接与本地主机处理器通信。本地主机处理器可以配置NHI中的直接存储器访问(DMA)引擎来读和/或写可以经PCIe总线访问的系统存储器。现有的Thunderbolt收发器具有一个外部PCIe连接,用于所有Thunderbolt命令事务、控制事务及所有的非显示端口数据流(包括NHI)。外围设备一般使用UTI接口,该接口连接到Thunderbolt交换机并且提供对UTI Thunderbolt分组的原始访问。如所示出的,图1的设备既有NHI又有UTI,这使得主机与外围设备操作都可以进行(例如,只作主机的设备将不具有UTI,而只作外围设备的设备将不具有NHI)。
[0050] 主机处理器可以经它自己的NHI接口访问外围设备PCIe寄存器。事务经Thunderbolt交换机开隧道至外围设备;其中访问是通过UTI指引的,以便访问PCIe寄存器。类似地,外围设备可以经它们的UTI到主机的NHI(通过Thunderbolt网络)执行对该主机的访问。类似地,主机到主机的事务(对于多主机系统)可以NHI到NHI地执行,而外围设备到外围设备的事务(对于多外围设备系统)可以UTI到UTI地执行。
[0051] 图2绘出了第一、第二和第三现有技术Thunderbolt收发器(100A、100B、100C)的一种示例性使用场景200,说明了各种连接能力。如所示出的,第一设备接收第一PCIe数据流(由音频数据与文件传输组成)和第一DP数据流。第一设备100A打包第一PCIe数据流和第一DP数据流,用于在第一Thunderbolt高速串行总线上发送,并且发送第一Thunderbolt数据流。
[0052] 第二设备100B接收第一Thunderbolt数据流,并且把该数据解包成第二PCIe流和第二DP数据流。第二DP数据流驱动输出DP接口。第二PCIe流进一步分成其组成音频数据和文件传输流。音频数据驱动USB音频输出。剩余的文件传输重新打包成第二Thunderbolt数据流,用于在第二Thunderbolt高速串行总线上发送。
[0053] 第三设备100C接收第二Thunderbolt数据流,并且把该数据解包成第三PCIe流。第三PCIe流驱动文件传输。
[0054] 音频联网
[0055] 如前面所描述的,DP接口只携带DP数据;即,所有非DP数据一般都通过单个PCIe链路开隧道。不幸的是,音频数据会被延迟足够多,造成音频流中断,尤其是在PCIe链路被其它非音频业务严重阻塞的时候。而且,不像例如FireWire和USB(通用串行总线)的其它总线协议,PCIe不提供明确地预留带宽的机制。此外,如前所述,现有技术的Thunderbolt收发器只能优先化在融合的输入/输出(CIO)层的业务(即,开隧道的PCIe与DP分组的交织)。
[0056] 相应地,本发明的各种实施例适于解决现有技术收发器中上面提到的缺陷。在一种实施例中,Thunderbolt设备向网络的对等设备通告音频能力,并且发现该网络的对等设备的音频能力,由此使得设备能够让音频业务比非音频业务优先。在另一种实施例中,Thunderbolt网络的每个音频设备都利用Thunderbolt时间管理功能性来提供网络同步,这有利地既改进了音频重构,又改进了音频数据通过网络的传播。
[0057] 例如,在一种示例性实现中,MacOS XTM Thunderbolt驱动器(由本受让人自己开发并经销)配置成发现所有连接的Thunderbolt设备,并且确定关联的设备类(或者如果没有另外指示的话就是缺省的类)。与Thunderbolt音频类设备的事务被归类为比其它PCIe事务具有更高的优先等级。在某些变体中,可能存在附加类型的设备类,每个都相对于其它设备类具有优先级(例如,类或类型的层次结构)。
[0058] 具体而言,连同用于Thunderbolt网络的相关参数一起,MacOS X Thunderbolt音频类驱动器确定Thunderbolt音频类设备列表;其中的参数例如:(i)可用于音频的带宽,(ii)总带宽,和/或(iii)消耗的带宽。每个Thunderbolt设备都利用描述符模型向MacOS X Thunderbolt音频类驱动器通告其能力。例如,在一种此类的实施例中,描述符是音频设备的PCIe可访问存储器中的数据结构。音频设备操作的各方面可以由MacOS X Thunderbolt音频类驱动器经PCIe可访问的寄存器来控制。
[0059] 此外,在本发明的辅助示例性实施例中,Thunderbolt收发器的Thunderbolt时间管理单元(TMU)用于设备级的时间同步,而且也作为音频样本时钟重构的基础。虽然应当认识到,其它时间基础或参考源也可以与本发明一致地使用,但是Thunderbolt TMU提供了跨所有Thunderbolt音频设备共用的高度准确与精确的时间参考。例如,Thunderbolt TMU的现有实现可以跨Thunderbolt网络把设备同步维持在十纳秒(10ns)内。
[0060] 在操作过程中,MacOS X Thunderbolt音频类驱动器可以配置音频源设备在指定的最后期限之前把其样本写到另一个目的地设备的缓冲器中。类似地,只有在该最后期限过去之后,目的地设备才消费该样本。以对迟滞的最小考虑,(由TMU在每个设备生成的)共享的时间参考的精度确保源和目的地设备都可以利用相同的时间参考。此外,Thunderbolt网络的每个设备监视一个或多个样本缓冲器(例如,设备自己的缓冲器,和/或对等设备的缓冲器),以防止和/或解决缓冲器欠载运行和缓冲器超载运行。
[0061] 最后,在本发明的某些变体中,Thunderbolt TMU用于重构音频样本时钟,由此在网络的每个设备提供同步的、重构的高质量音频时钟信号
[0062] 现在更具体地描述本发明的两个示例性实施例,以便进一步说明前面的原理。
[0063] 本机主机接口(NHI),用户传输接口(UTI)
[0064] 在本发明的第一种示例性实施例中,给音频类设备分配专用的融合输入/输出(CIO)隧道。每个Thunderbolt音频类设备都连接到专用的音频类CIO隧道,而且只有音频样本通过该专用的CIO隧道发送。由于音频类CIO隧道是优先的隧道,因此音频样本可以及时到达它们的目的地,而不管其它PCIe业务。在一种此类的实施例中,专用的音频类CIO隧道是经到本机主机接口(NHI)/用户传输接口(UTI)的Thunderbolt传输实现的。主机写到其NHI,该NHI通过Thunderbolt网络开隧道到第一外围设备的UTI,第一外围设备的UTI通过Thunderbolt网络开隧道到另一个设备(例如,到第二外围设备的UTI,或者返回到主机的NHI)。以这种方式,可以产生任意长的设备“环”。本地主机处理器把NHI DMA引擎配置成从本地主机处理器的系统存储器读/向其写音频数据样本,然后本地主机处理器的系统存储器又通过环形网络开隧道。
[0065] Thunderbolt收发器的现有实现在每个UTI接口的每个方向只提供单个CIO隧道。相应地,现有的NHI/UTI实现有几个显著的限制。具体而言,单个NHI/UTI接口只能在所谓的“环形”拓扑结构中为多个设备提供服务;即,每个Thunderbolt音频类设备从一个对等设备读,并且写到一个对等设备,以便传输音频样本(即使它们基于PCIe的控制连接在逻辑上被布置成总线)。(在每个方向以每秒2.5千兆传输(GT/s)操作的)UTI信号对可以建立大约一千个48千赫兹(kHz)、32位的音频通道的每环限制,这对于简单布置足够了,但是在更复杂的配置中会很快被淹没。
[0066] 在某些使用场景中,环形拓扑结构是期望的。例如,环形拓扑结构相对来说是资源有效的,因为环形拓扑结构对于每个设备只消耗一个入站和一个出站路径。另一个优点是,由于简单的输送结构(即,不需要地址解析、总线争用等),Thunderbolt音频类设备可以极低的等待时间(小于其发送整个分组所花费的时间量)传递分组。
[0067] 但是,在其它使用场景中,环形拓扑结构可能是不期望的;例如,尽管可以使通过Thunderbolt音频类设备的等待时间非常小(一毫秒的一小部分),但是通过其它类型设备TM(例如,像由本申请受让人制造的Macbook 类型设备)的等待时间会受内部处理时间的支配,而且可能会显著更长(几毫秒)。由于环形拓扑结构是单向的,因此任何两个设备之间的音频等待时间将非常显著地依赖于音频样本数据是否流经这种更长等待时间的设备。此外,等待时间将随着加入环中的设备的数量增加,而且在有设备添加到/或者从环中去除的时候,环业务必须中断(每次拓扑结构改变时,必须形成新的环)。
[0068] NHI/UTI方法还有的其它限制可能涉及网络的设备类型。例如,Macbook类型的设备将使用Thunderbolt NHI DMA引擎来发送和接收CIO分组。DMA操作需要使用(系统存储器中的)中间缓冲器,这在某些应用中是不期望的。
[0069] 而且,DMA系统存储器是利用事务“昂贵”的所谓“非发布”PCIe读事务访问的。作为一个简单的介绍,PCI Express支持所谓的“发布”和“非发布”事务。在PCIe中,典型的事务(即,非发布的读或写)是利用完成事务层分组(TLP)确认的。TLP完成分组向发送方确认接收方(或者“完成方”)已经接收到请求。对于读请求,该完成包括,如果成功的话就是返回的读数据,或者如果不成功的话就是错误状态。对于写请求,该完成包括,如果成功的话就是接收到确认,或者如果写没有成功完成的话就是错误状态。相反,发布事务不提供任何确认(即使在事务不成功的时候)。PCIe不支持发布读。
[0070] 但是,以上提到的NHI/UTI方法的限制在某些实现场景中可能不太显著(例如,当预期少量的连接设备时,当主要使用Thunderbolt音频类设备时,等等)。作为替代,对设备技术的未来改进可能完全避免这样的限制(例如,当未来的实现提供附加的UTI接口、改善设备的等待时间,等等)。
[0071] PCI Express(PCIe)
[0072] 在本发明的第二种示例性实施例中,每个音频类设备都为要从网络接收的所有音频通道分配存储器。在操作过程中,音频数据被“推送”通过PCIe隧道;即,音频流是由源设备直接写到目的地设备上的存储缓冲器中的。在一种实现中,写事务是“发布的”;即,不需要目的地与源设备之间的确认传输。在某些实施例中,写事务进一步利用编程的I/O来处理(直接存储器访问)。
[0073] 这种Thunderbolt PCIe统一寻址模型自然可以支持对等的音频路由。这种能力使Thunderbolt PCIe设备能够访问Thunderbolt网络上的任何其它Thunderbolt音频类设备。更一般地说,不像前面描述过的环形拓扑结构,Thunderbolt网络可以物理地布置成所谓的“树”,这可以利用逻辑总线寻址支持每个PCIe设备(启用更直接的路由)。
[0074] 而且,不像上面提到的NHI/UTI方案,这种方法不需要专用的CIO资源,而且可以通过现有的PCIe分配来开隧道。CIO资源在当前的设备解决方案中是受限的;但是,如果期望更高的性能(而且CIO资源可用),则可以给Thunderbolt音频类设备分配Thunderbolt PCIe树中它们自己的高优先级分支(即,Thunderbolt音频类设备附连到专用的逻辑总线)。这种实现将增加音频分组及时到达它们的目的地的机会,尤其是在对等事务的情况下。
[0075] 此外,PCIe方法可以完全利用发布写事务执行。具体而言,以上提到的NHI/UTI环形拓扑结构需要每个设备必须仍然执行对中间缓冲器的PCIe读事务,及从该中间缓冲器的PCIe写事务。这种PCIe读事务是非发布的;即,需要确认。相反,PCIe方法(不使用NHI/UTI)可以完全利用PCIe“发布”写事务,这最大化了吞吐量并最小化了等待时间,因为不需要来自目的地设备的响应。例如,示例性Macbook处理器可以把样本直接写到PCIe设备,而不需要结合直接存储器访问(DMA)引擎使用中间缓冲器。
[0076] 方法
[0077] 现在更具体地描述本发明的一般化方法。
[0078] 在本发明的一方面,设备可以向网络的对等设备通告各种优先化的类,并且发现开隧道的网络的优先化的对等设备类。隧道资源(或者“中转”资源)分配给网络隧道支持的各种优先化的类。
[0079] 在第二方面,开隧道的网络的每个设备都从中转协议提取一个或多个参数,其中每个设备可以从该中转协议参数导出网络协议参数。
[0080] 现在参考图3,描述了用于实现网络中优先化的设备类的方法300的一种示例性实施例。在一种实施例中,优先化的类基于媒体类型。作为替代,优先化的类可以基于设备应用、设备能力、设备类型等。例如,设备可以归类为音频设备和非音频设备。在另一个此类的例子中,设备可以根据以下(但不限于此)来归类:(i)吞吐量,(ii)等待时间,(iii)异步性,(iv)等时性,和/或(v)可靠性。在还有其它例子中,设备可以根据设备类型(例如,主设备、从设备、边界设备、集线器设备等)归类。
[0081] 在方法300的步骤302,每个设备为开隧道的网络执行类发现。例如,在一种示例性实施例中,每个设备都执行配置成发现对等设备类(或者如果没有另外指示的话就指定一个或多个缺省类)的软件。设备可以向开隧道的网络的其它设备通告它们适当的设备类。作为替代,设备向对等设备询问它们的设备类。在还有其它实现中,设备向中央网络实体(例如网络主机、注册服务等)注册它们的设备类,并且从该中央网络实体检索注册的对等设备类。
[0082] 在一种示例性场景中,每个Thunderbolt设备都利用描述符模型向其它Thunderbolt设备通告它的能力。例如,描述符可以包括可以经网络协议访问的数据结构。网络协议可以是例如PCI Express(PCIe)。例如,设备可以把它自己识别为PCIe存储器中可以经Thunderbolt协议访问的音频设备。在还有其它场景中,一个或多个设备可以是网络管理实体,例如,MacOS X Thunderbolt驱动器可以充当中央网络管理实体,为网络执行设备发现与设备管理。
[0083] 一旦网络的所有设备都已经归类,设备及其关联的类的结果列表就可以编译到网络列表中,并且提供给每个设备(或者其子集)。在某些实施例中,网络列表可以附加地利用其它相关的参数,例如可用的总带宽、消耗掉的带宽、带宽限制等,来增强。
[0084] 在方法300的步骤304,为网络中一个或多个优先化的类分配一个或多个中转资源。在一种实施例中,为网络的一个或多个类分配专用的中转资源。中转资源可以是在网络开隧道过程中使用的物理或虚拟资源。例如,在一种此类的变体中,中转资源可以包括逻辑路径、逻辑通道等。在其它情况下,中转资源可以包括物理处理资源(例如,直接存储器访问(DMA)等)、物理路径、物理通道等。
[0085] 数据业务也可以分配给例如专用输入、存储缓冲器和专用输出的物理资源。例如,如前面所描述过的(参见本机主机接口(NHI),用户传输接口(UTI)),音频数据业务可以分配给NHI/UTI DMA物理资源。在另一个例子中,如前面所描述过的(参见PCI Express(PCIe)),每个设备都为音频数据业务分配内部系统存储器中PCIe可访问的存储缓冲器。
[0086] 在方法300的步骤306,优先化的业务根据所分配的一个或多个中转资源而被路由。
[0087] 现在参考图4,描述用于从中转协议参数导出网络协议参数的方法400的一种示例性实施例。在一种实现中,时间同步是从贯穿整个网络分布的中转时间戳参数来确定的。例如,Thunderbolt时间管理单元(TMU)可以为音频样本时钟重构生成设备级的时间同步。
[0088] 在方法400的步骤402,每个设备都提取中转协议参数。中转协议参数的常见例子包括但不限于:时间、带宽、错误检查能力等。在一种示例性实施例中,每个设备都从中转协议提取时间戳。在另一种此类的实施例中,每个设备都确定中转网络支持的总网络带宽。
[0089] 要特别指出的是,中转协议被所有连接的设备共享,而不管它们执行的应用或者开隧道的网络协议等。例如,Thunderbolt网络的所有设备都将共享公共Thunderbolt时间参考,而不管Thunderbolt设备的内部时间参考、应用软件等。相应地,底层的中转协议可以有利地用于同步Thunderbolt连接的设备的活动。
[0090] 在步骤404,每个设备都至少部分地基于中转协议参数确定网络协议参数。
[0091] 作为简单的介绍,Thunderbolt收发器包含高级时间管理单元(TMU),TMU把Thunderbolt网络时间准确且精确地传送到Thunderbolt网络上的每个设备。在典型的操作期间,为Thunderbolt网络选同步主机。该同步主机把同步信息发送到驻留在其网络片段上的设备。每个设备都基于同步信息本地计算时钟参考。边界设备可以把准确的时间中继到其它片段,从而启动同步主机之间的同步。以这种方式,整个网络可以被同步到非常精细的容差。例如,在Thunderbolt设备网络中,任何两个设备都将在不多于十纳秒(10ns)的时间内变化。Thunderbolt收发器使用称为串行时间链路协议(STLP)的简单、单线协议把当前的Thunderbolt时间传送到印刷电路板上的其它芯片。这种跨分布式网络的时间同步的另一个例子包括(但不限于)IEEE1588精密时间协议(PTP)。
[0092] 在本发明的一种示例性实施例中,中转参数用于确定网络协议参数。例如,在Thunderbolt收发器中,Thunderbolt网络时间用于为PCI Express(PCIe)网络协议确定网络时间。在备选实施例中,Thunderbolt网络时间可以用于同步DisplayPort(DP)网络协议。而且,设备可以基于可用的中转带宽确定一个或多个网络参数(例如,服务质量(QoS)、合适的编码方案等)。
[0093] 在步骤406,每个设备都基于所确定的网络协议参数进行操作,其中为每个设备确定的网络协议参数基本上是相似的。例如,在Thunderbolt操作期间,嵌入的PCIe网络协议可以使用导出的网络时间来调度数据的发送和/或接收。
[0094] 而且,在本发明的某些变体中,导出的网络时间还用于帮助数据处理和/或消耗。例如,导出的网络时间可以用作用于音频处理的准确且精确的时间参考。在一种此类的实现中,导出的时间参考确保音频数据在适当的时间读写到系统存储器(读缓冲器太早或者写缓冲器太晚会引起不期望的数据冲突)。
[0095] 导出的时间参考的其它常见使用包括但不限于:测量音频样本时钟以确保所有音频时钟都一致地操作、调度音频样本从一个设备到另一个设备的传输并且监视音频样本传输的PCIe性能。
[0096] 示例性装置
[0097] 图5说明了对实现本发明的各种方法和方面有用的装置500的一种示例性实施例。图5的装置包括处理器子系统502,例如数字信号处理器、微处理器现场可编程门阵列(FPGA)或者安装在一个或多个基板上的多个处理组件。该处理子系统还可以包括内部高速缓存存储器。该处理子系统与包括存储器的存储器子系统504通信,其中存储器可以例如包括SRAM、闪存和SDRAM组件。存储器子系统可以实现一个或多个DMA类型硬件,从而方便数据访问,如本领域中众所周知的。存储器子系统包含可以由处理器子系统执行的计算机可执行指令。
[0098] 此外,该装置包括隧道通信控制器506,它管理端点之间的数据隧道。隧道通信控制器与一个或多个网络接口510操作通信。网络接口进一步配置成发送和/或接收打包的业务。在一种实施例中,隧道通信控制器配置成开隧道来自所述一个或多个网络接口的打包的业务,在中转网络上输送。隧道通信控制器交织分组,用于在中转网络上发送。接收到的数据解交织成适当的分组,并且路由到适当的网络接口。
[0099] 通信控制器506进一步配置成跟踪主时基508。该主时基可以从例如内部振荡器电路(例如,电压控制的温控晶体振荡器(VCTCXO))等的内部时钟导出,或者可以从外部设备或实体,例如提供串行时间链路协议(STLP)的对等设备、全球定位系统(GPS)、IEEE标准1588(精密时间协议)等,报告或接收。
[0100] 在装置500的一种示例性实施例中,所述一个或多个网络接口510至少包括PCI Express(PCIe)接口和DisplayPort接口。对本发明有用的其它网络接口的常见例子包括但不限于:通用串行总线(USB)、FireWire(IEEE标准1394)、以太网、高清晰多媒体接口(HDMI)、数字视频接口(DVI)及DisplayPort。在某些变体中,所述一个或多个网络接口进一步配置成与DMA类型的存储器和关联的DMA引擎一起用来执行大存储器传输。
[0101] 如前面所描述的,为了在中转网络上进行传输,打包网络协议业务。打包的数据是已经格式化成离散的数据单元或分组的数据。每个分组都至少包括路由信息和有效载荷。路由信息提供例如源和目的地地址、错误检测代码及序列信息。此外,某些类型的数据分组可以包含呈现信息,例如,媒体分组(诸如音频数据和视频数据)可以具有关联的重放时间,以确保媒体以规律的和平滑的速率重放。
[0102] 在本发明的某些实施例中,打包的业务可以提供或者可以不提供对可靠性的各种保证。例如,“非发布的”事务可以提供明确的确认(ACK)或者非确认(NAK),而“发布的”事务可能不提供关于发送成功或失败的任何反馈。
[0103] 回过头来参考图5,用户接口子系统510耦合到处理子系统502,而且可以包括任意数目的众所周知的I/O,包括但不限于:键区、触摸屏(例如,多触摸接口)、音频/可视(AV)系统、背光、扬声器和/或麦克。但是,要认识到,在某些应用中,这些组件中的一个或多个可以避免。
[0104] 图6说明了实现本发明各种方法和方面的外围设备装置600的一种具体实现(基于Thunderbolt)。图6的装置包括耦合到Thunderbolt路由器芯片604的现场可编程门阵列(FPGA)602。FPGA还耦合到时间生成逻辑606和音频控制器608。在示例性操作中,现场可编程门阵列(FPGA)602使用STLP协议把本地计数器同步到Thunderbolt网络时间;由此,为FPGA中的其它逻辑提供定时服务。前往这种Thunderbolt外围设备的音频样本将经PCIe在预定的时间最后期限之前写到附连到FPGA的RAM(随机存取存储器)。一旦最后期限已过,Thunderbolt音频控制器608就从RAM读取该样本并且把它们馈送到I2S输出,
2 TM
从而驱动数模转换器。用于操作IS(Integrated Interchip Sound 集成音频接口芯片)接口与相关联转换器的音频时钟是由PLL(相环路)生成的。该PLL基于经PCIe接收到的Thunderbolt时间与时间戳生成时钟。
[0105] 类似地,连接到ADC的I2S接口将以音频PLL确定的速率运行并且产生由Thunderbolt音频控制器写到RAM的样本。在规定的时间,控制器将在PCIe连接上把样本写到配置好的目的地地址。
[0106] 图7说明了用于从Thunderbolt参考时间生成同步的音频样本时钟的一种具体解决方案。如所示出的,时间戳在TMU702被接收,并且分发到PCIe物理层(PHY)704和时钟生成电路706。PCIe PHY依赖该参考时间来确保数据在适当的时间读入/读出存储器。时钟生成电路使用该系统时间生成高精度的时钟,该时钟用于从音频数据FIFO读,并且合成音频信号
[0107] 将认识到,尽管关于一种方法的具体步骤顺序描述了本发明的某些方面,但是这些描述仅仅是说明本发明更广泛的方法,而且根据需要可以被特定的应用修改。在某些条件下,可以使某些步骤成为不必要的或者可选的。此外,某些步骤或功能性可以添加到所公开的实施例,或者两个或更多个步骤的执行次序可以改变。所有这些变体都被认为要涵盖在本文所公开和要求权利的发明当中。
[0108] 尽管以上具体描述已经示出、描述和指出了本发明适用于各种实施例的新颖特征,但是应当理解,在不背离本发明的情况下,可以由本领域技术人员关于所说明设备或过程的形式与细节做出各种忽略、替换和改变。以上所述是目前预期执行本发明的最佳模式。这种描述不以任何方式意味着限制,而是应当理解为说明本发明的通用原理。本发明的范围应当参考权利要求来确定。
QQ群二维码
意见反馈