用于通过扩展介质来扩展USB3.0兼容通信的方法和设备与流程

文档序号:17358018发布日期:2019-04-09 21:51阅读:167来源:国知局
用于通过扩展介质来扩展USB 3.0兼容通信的方法和设备与流程

usb是用于附接诸如个人计算机、数字电话线、监视器、调制解调器、鼠标、打印机、扫描仪、游戏控制器、键盘、存储设备等各种各样的计算设备的外围接口。定义usb的规范(例如,英特尔等,通用串行总线规范,修订版1.0,1996年1月;于1998年9月更新为修订版1.1;于2000年4月进一步更新为修订版2.0;于2008年11月进一步更新为修订版3.0;于2013年7月发布为通用串行总线3.1规范修订版1.0;于2017年9月22日发布为通用串行总线3.2规范修订版1.0,以及后续更新和修改——在下文中统称为“usb规范”,该术语可以包括未来的修改和修订)是非专有的并且由被称为usb论坛的开放行业组织来管理。usb规范建立了为符合usb标准而必须满足的基本准则。本领域的普通技术人员将通过usb规范认识本文中的很多术语。除非另有说明,否则这些术语在本文中以与其在usb规范中的使用类似的方式使用。

根据usb规范的修订版3.1,提供了使用5gbps(gen1)或10gbps(gen2)信令速率的超高速连接。虽然规范没有要求任何具体的最大线缆长度,但实际上,时序要求和信令技术要求用于主机与设备之间的超高速连接的常规铜线缆最多3米长,以适当地支持超高速连接。因此,需要一种新的方法和装置来可选地允许超高速usb设备从其耦合至的主机扩展到更远的距离,以使得超高速usb分组可以在主机与usb设备之间传播。



技术实现要素:

提供本发明内容是为了以简化的形式介绍将在下文具体实施方式中进一步描述的一系列概念。本发明内容并非旨在标识出所要求保护的主题的关键特征,也并非旨在用于帮助确定所要求保护的主题的范围。

在一些实施例中,提供了一种面向上行端口设备(ufp设备)。所述ufp设备包括usb面向上行端口以及被配置成耦合至非usb扩展介质的扩展接口。所述ufp设备被配置用于允许经由usb兼容连接耦合至所述usb面向上行端口的主机设备经由所述扩展介质而与耦合至面向下行端口设备(dfp设备)的usb设备进行通信。所述ufp设备被配置用于执行包括以下各项的动作:经由所述usb面向上行端口从所述主机设备接收请求分组,其中,所述请求分组包括序列号和缓冲器计数,并且其中,所述序列号和所述缓冲器计数标识第一组所请求数据分组;生成合成请求分组,其中,所述合成请求分组包括所述请求分组的所述序列号以及合成缓冲器计数,并且其中,所述序列号和所述合成缓冲器计数标识包括所述第一组所请求数据分组和附加数据分组的第二组所请求数据分组;经由所述扩展介质向所述dfp设备传输所述合成请求分组;向所述主机设备传输合成响应分组以使所述主机设备等待所述第一组所请求数据分组;从所述dfp设备接收数据分组;以及存储所接收的数据分组直到被所述主机设备所请求。

在一些实施例中,提供了一种经由非usb扩展介质来实现主机设备与usb设备之间的通信的方法。ufp设备经由所述ufp设备的usb面向上行端口从所述主机设备接收请求分组,其中,所述请求分组包括序列号和缓冲器计数,并且其中,所述序列号和所述缓冲器计数标识第一组所请求数据分组。所述ufp设备生成合成请求分组,其中,所述合成请求分组包括所述请求分组的所述序列号以及合成缓冲器计数,并且其中,所述序列号和所述合成缓冲器计数标识包括所述第一组所请求数据分组和附加数据分组的第二组所请求数据分组。所述ufp设备经由所述扩展介质向面向下行端口设备(dfp设备)传输所述合成请求分组。所述ufp设备向所述主机设备传输合成响应分组以使所述主机设备等待所述第一组所请求数据分组。所述ufp设备从所述dfp设备接收数据分组,并且所述ufp设备存储所接收的数据分组直到被所述主机设备所请求。

在一些实施例中,提供了一种面向下行端口设备(dfp设备)。所述dfp设备包括usb面向下行端口以及被配置成耦合至非usb扩展介质的扩展接口。所述dfp设备被配置用于通过执行包括以下各项的动作来允许经由usb兼容连接耦合至所述usb面向下行端口的usb设备经由所述扩展介质而与耦合至ufp设备的主机设备进行通信:以第一时序生成服务间隔边界,所述第一时序与由所述主机设备生成的服务间隔边界的第二时序存在偏移;在第一服务间隔期间从所述ufp设备接收由所述主机设备生成的一组数据分组;以及在与所述第一服务间隔相对应的第二服务间隔期间向所述usb设备传输所述一组数据分组。

在一些实施例中,提供了一种经由非usb扩展介质来实现主机设备与usb设备之间的通信的方法。经由usb兼容连接耦合至所述usb设备的dfp设备以第一时序生成服务间隔边界,所述第一时序与由所述主机设备生成的服务间隔边界的第二时序存在偏移。所述dfp设备在第一服务间隔期间经由所述扩展介质从ufp设备接收由所述主机设备生成的一组数据分组。所述dfp设备在与所述第一服务间隔相对应的第二服务间隔期间向所述usb设备传输所述一组数据分组。

在一些实施例中,提供了一种dfp设备。所述dfp设备包括usb面向下行端口以及被配置成耦合至非usb扩展介质的扩展接口。所述dfp设备被配置用于通过执行包括以下各项的动作来允许经由usb兼容连接耦合至所述usb面向下行端口的usb设备经由所述扩展介质而与耦合至ufp设备的主机设备进行通信:生成服务间隔边界,所述服务间隔边界与由所述主机设备生成的服务间隔边界同步;在第一服务间隔期间从所述ufp设备接收由所述主机设备生成的一组数据分组;存储所述一组数据分组;以及在发生于所述第一服务间隔之后的第二服务间隔中向所述usb设备传输所述一组数据分组。

在一些实施例中,提供了一种经由非usb扩展介质来实现主机设备与usb设备之间的通信的方法。经由usb兼容连接耦合至所述usb设备的dfp设备生成服务间隔边界,这些服务间隔边界与由所述主机设备生成的服务间隔边界同步。所述dfp设备在第一服务间隔期间经由所述扩展介质从ufp设备接收由所述主机设备生成的一组数据分组。所述dfp设备存储所述一组数据分组,并且在发生于所述第一服务间隔之后的第二服务间隔中向所述usb设备传输所述一组数据分组。

在一些实施例中,提供了一种dfp设备。所述dfp设备包括usb面向下行端口以及被配置成耦合至非usb扩展介质的扩展接口。所述dfp设备被配置用于通过执行包括以下各项的动作来允许经由usb兼容连接耦合至所述usb面向下行端口的usb设备经由所述扩展介质而与耦合至ufp设备的主机设备进行通信:从所述ufp设备接收由所述主机设备生成的数据分组;向所述usb设备传输所述数据分组;从所述usb设备接收确认分组,其中,所述确认分组包括指示所述usb设备上的可用缓冲器空间的第一缓冲器大小;以及向所述ufp设备传输合成确认分组,其中,所述合成确认分组包括指示所述dfp设备上的可用缓冲器空间的第二缓冲器大小,所述第二缓冲器大小与所述第一缓冲器大小不同。

在一些实施例中,提供了一种经由非usb扩展介质来实现主机设备与usb设备之间的通信的方法。经由usb兼容连接耦合至所述usb设备的dfp设备经由所述扩展介质从ufp设备接收由所述主机设备生成的数据分组。所述dfp设备向所述usb设备传输所述数据分组。所述dfp设备从所述usb设备接收确认分组,其中,所述确认分组包括指示所述usb设备上的可用缓冲器空间的第一缓冲器大小。所述dfp设备向所述ufp设备传输合成确认分组,其中,所述合成确认分组包括指示所述dfp设备上的可用缓冲器空间的第二缓冲器大小,所述第二缓冲器大小与所述第一缓冲器大小不同。

附图说明

通过结合附图参考以下详细描述,将更易于认识到并更好地理解上述方面以及本发明的许多附带优点,在附图中:

图1是框图,展示了根据本公开的各个实施例的用于扩展usb通信的系统100的一个实施例;

图2是框图,展示了图1中所展示的上行usb扩展设备和下行usb扩展设备的进一步细节;

图3是框图,展示了根据本公开的各个方面的端口设备的示例性实施例;

图4a是时序图,展示了根据本公开的各个方面在低等待时间模式下主机设备与usb设备之间的通信;

图4b是时序图,展示在高等待时间情况下使用朴素桥接技术进行同步in(输入)事务时的问题;

图5a是时序图,展示了根据本公开的各个方面用于补偿在同步in事务中由扩展介质增加的等待时间的第一技术的示例;

图5b是时序图,展示了根据本公开的各个方面用于补偿在同步in事务中由扩展介质增加的等待时间的第二技术的示例;

图6a是时序图,展示了根据本公开的各个方面在低等待时间模式下主机设备与usb设备之间的通信;

图6b是时序图,展示了在高等待时间情况下使用朴素桥接技术进行同步out(输出)事务时的问题;

图7a是时序图,展示了根据本公开的各个方面用于补偿在同步out事务中由扩展介质增加的等待时间的第一技术的示例;

图7b是时序图,展示了根据本公开的各个方面用于补偿在同步out事务中由扩展介质增加的等待时间的第二技术的示例;

图8a是时序图,展示了根据本公开的各个方面的经改进批量out事务的示例实施例;并且

图8b是时序图,展示了根据本公开的各个方面的经改进批量in事务的示例实施例。

具体实施方式

图1是框图,展示了根据本公开的各个实施例的用于扩展usb通信的系统100的一个实施例。系统100包括主机设备102和usb设备108。传统上,主机设备102和usb设备108将经由usb线缆直接连接,并且将经由符合诸如usb1.0、usb1.1、usb2.0、usb3.0、或usb3.1等usb规范的协议彼此直接通信。如以上所讨论的,由于usb规范的时序要求,这种连接将限于主机设备102与usb设备108之间的短距离。

主机设备102可以是包含usb主机控制器的任何类型的计算设备。合适的主机设备102的一些示例可以包括但不限于:台式计算机、膝上型计算机、平板计算设备、服务器计算机、机顶盒、汽车音频主机、嵌入式主机等。同样,usb设备108可以是能够经由usb协议与usb主机控制器进行通信的任何类型的设备。在图1中展示的示例是网络摄像头,但合适的usb设备108的一些其他示例可以包括但不限于:诸如键盘或鼠标等人机接口设备、诸如闪存驱动器或外部硬盘驱动器等大容量存储设备、支持usb的医疗设备、打印机、usb集线器、无线控制器等。

在本系统100中,主机设备102经由usb协议连接至上行usb扩展设备104,并且usb设备108经由usb协议连接至下行usb扩展设备106。上行usb扩展设备104和下行usb扩展设备106经由诸如网络的扩展介质90通信地耦合,所述扩展介质可以将主机设备102与usb设备108之间的距离增加到超出由usb规范所支持的距离。扩展介质90及其上的通信可以包括诸如以太网、蓝牙、wifi、wimax、互联网、光纤点对点传输等任何合适的联网技术,以及诸如经由物理线缆、经由光纤线缆、经由无线频谱等任何合适的通信介质。

在一些实施例中,上行usb扩展设备104和下行usb扩展设备106可以恰巧比短usb要求距离更靠近彼此,和/或可以通过线缆直接连接而不是经由网络,但保留了克服主机设备102与usb设备108之间增加的等待时间的能力,所述增加的等待时间是由使用不符合usb规范的扩展介质引入的。

由usb扩展设备104、106提供的一个特征是它们向主机设备102和usb设备108隐藏了扩展介质的存在。换言之,usb扩展设备104、106通过扩展介质处理通信并且补偿由此引入的任何附加等待时间,但是主机设备102和usb设备108表现为好像其是经由usb规范兼容连接而直接连接的。因此,主机设备102和usb设备108可以经由usb扩展设备104、106进行通信,而无需对主机设备102或usb设备108进行任何非标准软件或硬件重配置。

图2是框图,展示了图1中所展示的上行usb扩展设备104和下行usb扩展设备106的进一步细节。上行usb扩展设备104包括面向上行端口202,并且下行usb扩展设备106包括面向下行端口204。如本文所使用的,术语“面向上行端口(upstreamfacingport)”和相应的缩写“ufp”可以互换使用,如术语“面向下行端口(downstreamfacingport)”和相应的缩写“dfp”也可以互换使用那样。同样地,因为上行usb扩展设备104包括面向上行端口202,所以上行usb扩展设备104也可以被称为“ufp设备”,并且因为下行usb扩展设备106包括面向下行端口204,所以下行usb扩展设备106也可以被称为“dfp设备”。

ufp设备104至少被配置用于使用ufp202经由usb标准兼容协议与主机设备102进行通信,并且经由扩展介质与dfp设备106交换消息和usb总线通信量。dfp设备106至少被配置用于使用dfp204经由usb标准兼容协议与usb设备108进行通信,并且经由扩展介质与ufp设备104交换消息和usb总线通信量。上行usb扩展设备104和下行usb扩展设备106可以包含进一步部件,诸如电源、状态led、扬声器、用于在ufp功能与dfp功能之间进行切换的输入设备等。由于这些部件及其功能为本领域的普通技术人员所熟知,因此本文不再对其进行进一步讨论。

如在图2所展示的,上行usb扩展设备104的面向上行端口202连接至主机设备102的面向下行端口,并且下行usb扩展设备106的面向下行端口204连接至usb设备108的面向下行端口。在其他实施例中,上行usb扩展设备104的面向上行端口202可以连接至与由主机设备102提供的面向下行端口不同的面向下行端口,诸如集线器的面向下行端口等。同样地,在其他实施例中,下行usb扩展设备106的面向下行端口204可以连接至与由usb设备108提供的面向上行端口不同的面向上行端口,诸如集线器的面向上行端口等。以下讨论主要是关于图2所展示的简单拓扑结构,但是本领域的普通技术人员将认识到是,在一些实施例中,在不背离本公开的范围的情况下类似的技术可以用在其他拓扑结构中。

图3是框图,展示了根据本公开的各个方面的端口设备300的示例性实施例。在一些实施例中,端口设备300可以被构造用于提供面向上行端口202的服务,并且在一些实施例中,端口设备300可以被构造用于提供面向下行端口204的服务。在一些实施例中,端口设备300可以包括用于提供面向上行端口202和面向下行端口204两者的服务的指令,其中,所提供的具体端口服务由诸如跳线开关、固件设置等用户配置来确定。

如所展示的,端口设备300包括协议引擎302、usb物理层接口304和远程接口306。在一些实施例中,协议引擎302可以被配置用于提供和/或执行以下关于ufp设备104和/或dfp设备106所讨论的逻辑。协议引擎302可以指示usb物理层接口304将适当的电信号施加到usb物理层,以便与usb设备108或主机设备102进行通信。同样地,协议引擎302可以指示远程接口306与远程usb扩展设备交换信息。

在一些实施例中,协议引擎302可以在诸如pld、asic、fpga等逻辑设备内实施。在其他实施例中,协议引擎302可以在以下各项中实施:具有至少一个处理器和存储器的计算设备,所述存储器包含计算机可执行指令,所述计算机可执行指令当由所述至少一个处理器执行时使协议引擎302执行以下所讨论的动作;专用数字硬件设备,被实施为例如被配置用于执行所述动作的状态机;在专用处理器内;和/或在任何其他合适的计算设备内。在一些实施例中,协议引擎302(或端口设备300的其他部件)可以包括可用于高速缓存数据分组的计算机可读存储器,如以下进一步讨论的。

在一些实施例中,属于usb扩展设备的动作逻辑可以由协议引擎302执行,所述协议引擎然后指示usb物理层接口304和/或远程接口306执行与所述逻辑相关联的适当通信步骤。贯穿以下讨论,这些动作可以被简单地描述为由ufp设备104或dfp设备106执行,就好像其为单个设备,以便于讨论。在本领域的普通技术人员将认识到的是,直接属于ufp设备104或dfp设备106的动作实际上可以由协议引擎302、usb物理层接口304、远程接口306、和/或usb扩展设备的一些其他部件执行。

在一些实施例中,ufp设备104和dfp设备106可以被配置用于根据其之间的链路等待时间而在多种模式中的一种模式下操作。在低等待时间模式下,ufp设备104和dfp设备106可以通过足够速度的通信信道来链接,以便仅通过跨通信信道桥接usb分组来支持超高速连接。在高等待时间模式下,ufp设备104和dfp设备106可以采用技术来补偿分组传输中的延时,如以下进一步讨论的。在一些实施例中,所述模式可以由用户在配置ufp设备104和dfp设备106时进行选择。在一些实施例中,ufp设备104和dfp设备106可以自动地确定设备之间的等待时间的程度,并且可以基于此确定自动地选择模式。

图4a是时序图,展示了根据本公开的各个方面在低等待时间模式下主机设备102与usb设备108之间的通信。所展示的通信是同步in通信,其中,主机设备102指示其准备就绪接收数据,并且usb设备108向主机设备102传输数据。图4a展示了在ufp设备104与dfp设备106之间的等待时间足够低到ufp设备104和dfp设备106可以简单地将usb物理层信令转换并桥接到扩展介质上而不会引入时序误差的情况下ufp设备104和dfp设备106的使用。在这种情况下,扩展介质具有能够支持超高速连接的吞吐量,诸如5.0gbps或10.0gbps。在这种低等待时间情况下,ufp设备104、dfp设备106与扩展介质之间的等待时间不会影响主机设备102与usb设备108之间的时序参数。

在超高速通信中,主机设备102为同步事务调度例如125μs的服务间隔。如在usb3.1规范的8.12.5节中所描述的,要求主机设备102调度同步事务,以使得其不跨越这些服务间隔边界。在图4a中所展示的低等待时间场景中,这可能不是问题。示出了第一服务间隔边界402和第二服务间隔边界404。在点1处,主机设备102生成诸如ack分组等请求分组,并且向ufp设备104传输所述请求分组。ack分组指示序列号(“0”)以及主机设备102准备就绪接受的分组数(“3”)。主机设备102可以将其准备就绪接受的分组数基于对是否在下一服务间隔边界404发生之前将接收到所有分组的判定。

ufp设备104接收ack分组,并且经由扩展介质将其传输至dfp设备106。dfp设备106然后将ack分组传输至usb设备108。在点2处,usb设备108开始以所请求序列号开始传输data(数据)分组。data分组由dfp设备106接收,所述dfp设备将data分组转发至ufp设备104。在点3处,ufp设备104开始向主机设备102传输data分组,所述主机设备接收这些data分组。

在点4处,因为主机设备102被要求调度in事务以使得其不跨越服务间隔边界,所以主机设备102确定在第二服务间隔边界404发生之前可以接收的数据分组数。如所示出的,主机设备102基于usb规范中规定的时序已经确定了在达到服务间隔边界404之前可以请求并接收三个数据分组。因此,主机设备102传输诸如ack分组等另一请求分组,所述另一请求分组指示下一序列号(“3”)以及已经确定的在服务间隔边界404之前可以接收到的分组数(“3”)。如之前那样,ack分组由ufp设备104接收,通过扩展介质被传输至dfp设备106,并且然后由usb设备108接收。在点5处,usb设备108将向dfp设备106传输所请求数据分组。dfp设备106将所请求数据分组传输至ufp设备104,所述ufp设备进而将所请求数据分组传输至主机设备102。在第二服务间隔边界404之后,同样的过程再次发生:在点6处,主机设备102经由ufp设备104和dfp设备106向usb设备108传输请求分组,并且在点7处,usb设备108开始传输响应性数据分组。

将注意的是,两组三个分组的传输是仅是示例,并且在一些实施例中,可以请求不同的分组数。例如,usb3.1规范的8.12.6.2节指示主机可以将传输拆分成2个、4个或8个数据分组的突发,但随后请求无论剩余多少分组的突发。因此,在一些实施例中,为了在服务间隔期间请求六个数据分组,主机102可以在点1处请求四个数据分组,并且然后在点4处请求两个数据分组。实际上,已经发现主机设备102展现出各种行为。

虽然在图4a中示出的技术在简单的低等待时间情况下起作用,但本公开的发明人已经发现问题出现在高等待时间场景下。图4b是时序图,展示在高等待时间情况下使用朴素桥接技术进行同步in(输入)事务时的问题。再次示出了第一服务间隔边界402和第二服务间隔边界404。如在图4a中,在点1处,主机设备102传输请求三个数据分组的请求分组,所述请求分组经由ufp设备104和dfp设备106传输至usb设备108。在点2处,usb设备108开始经由dfp设备106和ufp设备104将所请求数据分组传输回至主机设备102,并且在点3处,主机设备102开始接收数据分组。

在点4处,问题开始变得清晰。如以上所述,扩展介质的存在是向主机设备102隐藏的,并且因此主机设备102不具有补偿所增加等待时间所需的信息。当主机设备102确定其在第二服务间隔边界404发生之前可以请求并接收多少数据分组时,其使用在usb规范中指示的时序来实现这一点。因此,在点4处,主机设备102确定基于规范兼容时序其可以在第二服务间隔边界404之前接收三个数据分组。因此,主机设备102传输请求三个数据分组的请求分组。请求分组经由ufp设备104和dfp设备106被传输至usb设备108,并且在点5处,usb设备108开始经由dfp设备106和ufp设备104将所请求数据分组传输至主机设备102。由于扩展介质引入了增加的等待时间,主机设备102直到点6才开始接收数据分组,所述点处于已经发生的第二服务间隔边界404之后。这将导致主机设备102与usb设备108之间的通信错误。在一些情况下,这些错误可以表现为主机设备102与usb设备108之间的连接被丢弃。在一些情况下,连接可能未被丢弃,但是错误可以以其他方式表现出来,诸如由相机提供的包括闪光或其他不期望伪像的视频图像。

图5a是时序图,展示了根据本公开的各个方面用于补偿在同步in事务中由扩展介质增加的等待时间的第一技术的示例。与在图4a和图4b中一样,展示了第一服务间隔边界502和第二服务间隔边界504。在点1处,主机设备102向ufp设备104发送包括序列号(“0”)和分组数(“3”)的请求分组。在点2处,ufp设备104将合成分组传输回至主机设备102,以使主机设备102置于临时等待状态下。所展示的合成分组为未准备就绪(nrdy)分组,如在usb规范中所描述的,但是可以使用可以使主机设备102置于等待状态下的任何其他类型的分组。响应于接收到nrdy分组,主机设备102进入等待状态,在所述等待状态下,其直到接收到用于将其从等待状态移除的分组之后才传输进一步请求分组,如以下所讨论的。

在点3处,ufp设备104向dfp设备106发送合成请求分组。由ufp设备104创建的合成请求分组包括来自在点1处由主机设备102传输的请求分组的序列号。然而,ufp设备104已经更改了分组数,使得其与在点1处由主机设备102传输的请求分组中的分组数不匹配。

在一些实施例中,ufp设备104可以请求比主机设备102所请求的更大数量的分组。请求更大数量的分组允许ufp设备104接收并高速缓存数据以响应来自主机设备102的随后请求。在一些实施例中,ufp设备104可以确定与已经在由主机设备102引导的初始枚举期间由主机设备102针对usb拓扑结构配置的最大突发尺寸相关联的分组数。一些典型的最大突发尺寸对于5gbps通信可以高达48个,或者对于10gbps通信可以高达96个。在这种实施例中,ufp设备104然后可以请求分组数对应于最大突发尺寸,不管主机设备102在其第一请求中是否请求更少的分组。这可以确保ufp设备104将具有主机设备102将在单个服务间隔期间所请求的所有数据。在其他实施例中,ufp设备104可以请求处于由主机设备102所请求的分组数与最大突发尺寸之间的任何分组数。如所展示的,ufp设备104已经生成请求六个分组的合成分组,而不是由主机设备102初始请求的三个。这可能是因为最大突发尺寸已经被配置成六个,或者因为其他原因,包括但不限于:对ufp设备104的配置、基于来自原始请求分组的分组数的确定、或基于ufp设备104与dfp设备106之间的等待时间量的确定。dfp设备106接收合成请求分组,并且在点4处将所请求数据分组传输至dfp设备106。dfp设备106然后将所请求数据分组传输至ufp设备104。

在点5处,ufp设备104传输用于从等待状态移除主机设备102的另一合成分组。如所展示的,传输合成准备就绪(erdy)分组,但是可以使用用于从等待状态移除主机设备102的任何其他合适的分组。在所展示的实施例中,一旦ufp设备104已经接收到原始所请求的数据分组数(在所展示的实施例中为三个),则其传输erdy分组。在一些实施例中,ufp设备104可以直到其已经接收到其在点3处请求的所有数据分组才传输erdy分组。在一些实施例中,ufp设备104可以直到第二服务间隔边界504之后、或者直到已经通过一个或多个随后服务间隔边界之后才传输erdy分组。

在接收erdy分组之后,主机设备102确定何时重新传输其请求分组。在一些实施例中,主机设备102可以判定在下一服务间隔边界504之前是否剩余足够的时间来接收所请求的分组。在这种实施例中,主机设备102可以在确定剩余足够时间之后立即传输随后请求分组。在一些实施例中,主机设备102可以在传输随后请求分组之前等到下一服务间隔边界504之后,不管服务间隔剩余多少时间。

如所展示的,主机设备102已经确定其应等到第二服务间隔边界504之后,并且然后,在点6处,主机设备102传输与在点1处传输的请求分组类似的新请求分组。在点7处,ufp设备104以已经高速缓存在ufp设备104上的三个数据分组作出响应。在点8处,主机设备102传输用于请求接下来三个数据分组的另一请求分组,并且在点9处,ufp设备104以也已经高速缓存在ufp设备104上的接下来三个数据分组作出响应。将注意的是,通过预取比主机设备102所请求的更多数据,ufp设备104能够复制图4a的点1至点5之间所描述的功能,其中,可以在单个服务间隔期间转移最大数量的数据,即使图5a中的情况包括ufp设备104与dfp设备106之间高量的等待时间。

图5b是时序图,展示了根据本公开的各个方面用于补偿在同步in事务中由扩展介质增加的等待时间的第二技术的示例。图5b中展示的实施例与图5a中展示的实施例高度类似。例如,存在第一服务间隔边界502和第二服务间隔边界504,并且在点1处,主机设备102向ufp设备104传输请求分组。不是如在图5a中所发生的利用使主机设备102置于等待状态下的合成分组在点2处回复主机设备102,而是在图5b中ufp设备104利用具有零长度的有效载荷的合成数据分组在点2处回复主机设备102。这使主机设备102认为usb设备108不具有响应于请求分组而要传输的任何数据。同时,在点3处,ufp设备104传输如以上关于图5a所描述的合成请求分组,并且在点4处,usb设备108响应于也如以上所描述的合成请求分组而传输数据分组。

响应于零长度数据分组,主机设备102直到第二服务间隔边界504之后才传输另一请求分组。然后,在点5处,主机设备102传输随后请求分组,并且在点6处,ufp设备104使用高速缓存的数据分组来回复,从而以类似的方式行进到点6、点7、以及图5a的随后点。在一些实施例中,如果例如ufp设备104还没有接收到足以完全响应于请求分组的数据,或如果ufp设备104还没有从节点3接收到其在其合成请求分组中请求的所有数据,则ufp设备104可以向在点5处传输的请求分组传输另一零长度分组。在这种情况下,主机设备102可以在传输另一请求分组之前再次等到随后服务间隔。

图6a是时序图,展示了根据本公开的各个方面在低等待时间模式下主机设备102与usb设备108之间的通信。所展示的通信是同步out通信,在所述通信中,主机设备102向usb设备108传输数据。如在图4a中,图6a展示了在ufp设备104与dfp设备106之间的等待时间足够低到ufp设备104和dfp设备106可以简单地将usb物理层信令转换并桥接到扩展介质上而不会引入时序误差的情况下ufp设备104和dfp设备106的使用。

如所展示的,主机设备102建立第一服务间隔边界602、第二服务间隔边界604和第三服务间隔边界606。服务间隔边界通常在usb拓扑结构内是同步的,并且因此,在接收到来自ufp设备104桥接的适当信号之后,dfp设备106创建其自己的第一桥接服务间隔边界603、第二桥接服务间隔边界605和第三桥接服务间隔边界607,这些桥接服务间隔边界与由主机设备102生成的服务间隔边界基本上同时发生。

如以上所提及的,要求主机设备102调度同步事务,以使得这些事务不跨越服务间隔边界。在图6a中展示的低等待时间的情况下,这不是问题。在点1处,主机设备102开始传输数据分组,所述数据分组由ufp设备104接收,通过扩展介质桥接到dfp设备106,并且然后传输到usb设备108,所述usb设备在点2处开始接收数据分组。主机设备102继续发送用于事务的数据分组,直到并且包括点3处的最后一个数据分组。在第二桥接服务间隔边界605之前,在事务中具有设置为1而不是0的lpf字段的最后一个数据分组经由ufp设备104和dfp设备106传输至usb设备108,并且由usb设备108在点4处接收。

在下一服务间隔,主机设备102可以重复类似的动作。在点5处,在第二服务间隔边界604之后,主机设备102再次开始传输数据分组,针对每个新的服务间隔以序号0重新开始。在点6处,usb设备108接收第一数据分组。在点7处,主机设备102在服务间隔内传输最后一个数据分组,并且在点8处,由usb设备108接收最后一个数据分组。因为ufp设备104与dfp设备106之间的等待时间较低,所以最后一个数据分组在相同的服务间隔内既被传输又被接收。

图6b是时序图,展示了在高等待时间情况下使用朴素桥接技术进行同步out(输出)事务时的问题。如与图6a一样,由主机设备102建立的第一服务间隔边界602与第一桥接服务间隔边界603同步,并且由主机设备102建立的第二服务间隔边界604与第二桥接服务间隔边界605同步。如以上,主机设备102在点1处开始传输数据分组,所述数据分组由usb设备108在点2处开始接收。因为主机设备102未意识到ufp设备104与dfp设备106之间的非标准等待时间,所以主机设备102继续传输数据分组直到点3,因为主机设备102假设最后一个数据分组将在相同服务间隔期间被接收。然而,由于增加的等待时间,usb设备108直到点4才接收最后一个数据分组。点4是在第二桥接服务间隔边界605之后,因此导致违反usb规范的要求并且发生错误。

图7a是时序图,展示了根据本公开的各个方面用于补偿在同步out事务中由扩展介质增加的等待时间的第一技术的示例。如以上,主机设备102建立第一服务间隔边界702、第二服务间隔边界704和第三服务间隔边界706。然而,与图6a不同,服务间隔边界在主机设备102与dfp设备106之间在时间上不同步。相反地,dfp设备106已经建立其自己的第一合成服务间隔边界703、第二合成服务间隔边界705和第三合成服务间隔边界707。在一些实施例中,dfp设备106可以基于ufp设备104与dfp设备106之间的所测量等待时间量来延迟合成服务间隔边界。

通过创建合成服务间隔边界,dfp设备106可以补偿扩展介质的等待时间,并且由此确保由主机设备102在单个服务间隔期间传输的信息可以在单个服务间隔内由usb设备108接收。如所示的,主机设备102在点1处开始传输数据分组,并且usb设备108开始在点2处接收已经经由扩展介质从ufp设备104传输至dfp设备106之后的数据分组。主机设备102在点3处传输事务的最后一个数据分组。usb设备108在点4处从dfp设备106接收最后一个数据分组。虽然点4发生在第二服务间隔边界704之后,但是其发生于由dfp设备106生成的第二合成服务间隔边界705之前,并且因此不会导致错误发生。

可以以下列类似的方式处理随后服务间隔:在点5处,主机设备102开始传输数据分组,在点6处usb设备108开始接收所述数据分组。最后一个数据分组由主机设备102在点7处传输,并且由usb设备108在点8处接收(在第三服务间隔边界706之后、但在第三合成服务间隔边界707之前)。

图7b是时序图,展示了根据本公开的各个方面用于补偿在同步out事务中由扩展介质增加的等待时间的第二技术的示例。再次,主机设备102建立第一服务间隔边界752、第二服务间隔边界754和第三服务间隔边界756。与图7a不同,第一同步服务间隔边界753、第二同步服务间隔边界755和第三同步服务间隔边界757是由dfp设备106创建的、与由主机设备102创建的服务间隔边界在时间上是同步的。在点1处,主机设备102开始传输数据分组。在点2处,dfp设备106开始接收由主机设备102经由ufp设备104和扩展介质传输的数据分组。因为dfp设备106不知道主机设备102是否将传输比可以在第二同步服务间隔边界755之前发送到usb设备108的更多数据,所述dfp设备106开始高速缓存从ufp设备104接收到的数据分组。在点3处,主机设备102传输事务的最后一个数据分组,并且在点4处,由dfp设备106接收并高速缓存最后一个数据分组。在一些实施例中,一旦最后一个数据分组由dfp设备106接收,dfp设备106就可以判定在当前服务间隔内是否所有高速缓存的数据分组可以被传输至usb设备108。如果dfp设备106确定在当前服务间隔期间高速缓存的数据分组都可以被传输(诸如图7b中点4处所展示的),则dfp设备106开始将高速缓存的数据分组传输至usb设备108,从而在点5处以最后一个高速缓存的数据分组结束。如所示的,因为dfp设备106等到第二同步服务间隔边界755之后才开始传输高速缓存的数据分组,所以可以在第三同步服务间隔边界757之前传输所有高速缓存的数据分组。在一些实施例中,dfp设备106可以在第二同步服务间隔边界755发生之后开始传输高速缓存的数据分组,不管dfp设备106是否已经接收到事务的所有数据分组。这种实施例可能在保证等待时间小于服务间隔时间的情况下是有用的,因为通过单个服务间隔来延迟高速缓存数据的传输将足以补偿等待时间。

在点6处,主机设备102开始传输随后事务的数据分组。在点7处,dfp设备106甚至在将来自先前事务的数据分组传输至usb设备108的同时开始高速缓存随后事务的数据分组。此后,主机设备102、ufp设备104、dfp设备106和usb设备108继续以相同的方式行进直到主机设备102完成对数据分组的传输。

在本公开的一些实施例中,可以使用对分组计数的更改来增强批量事务以及以上所描述的同步事务。图8a是时序图,展示了根据本公开的各个方面的经改进批量out事务的示例实施例。在点1处,主机向ufp设备104传输第一数据分组,所述第一数据分组然后经由扩展介质传输至dfp设备106,并且然后到达usb设备108。为了确保主机设备102与ufp设备104之间的链路保持活动而不考虑在扩展介质上的等待时间,在点2处,ufp设备104生成用于确认由主机设备102传输的数据分组的合成ack分组。ack分组中的序列号隐式地指示所述分组是通过请求随后分组来接收的,并且分组计数指示可用缓冲器空间量。在点2处,ufp设备104不知道dfp设备106或usb设备108上有多少缓冲器空间是可用的,并且因此其以最小数(“1”)来回复以保持连接有效。

在点3处,usb设备108通过传输用于确认收到的ack分组、通过请求序列中的下一个分组、以及通过指示usb设备108上的可用缓冲器空间量(“6”)按照usb规范回复数据分组。dfp设备106从usb设备108接收确认分组。而不是仅仅传输所接收到的确认分组,dfp设备106确定在dfp设备106上可用的缓冲器空间量(而不是如在确认分组中所指示的),并且创建合成确认分组以传输至ufp设备104。这允许dfp设备106请求比可由usb设备108使用的更多数据,所述数据然后由dfp设备106预取并高速缓存。dfp设备106然后可以将高速缓存的数据提供给usb设备108,而不必进一步补偿扩展介质的等待时间。

在点4处,主机设备102向ufp设备104传输第二数据分组,所述第二数据分组被传输至dfp设备106,并且然后到达usb设备108。在点5处,ufp设备104以合成ack分组作出响应,但是这次不是使用默认最小缓冲器空间,ufp设备104指示由dfp设备106在其合成ack分组中上报的缓冲器空间量。在点6处,usb设备108以标准兼容确认分组作出响应,所述标准兼容确认分组然后由dfp设备106用作另一合成确认分组的基础。只要主机设备102继续传输数据分组,通信就可以以类似的方式继续。

图8b是时序图,展示了根据本公开的各个方面的经改进批量in事务的示例实施例。在点1处,主机设备102传输包括序列号(“0”)以及有待请求的分组数(“3”)的ackin分组。在点2处,ufp设备104以合成null(空)分组、具有零长度有效载荷的其他有效数据分组作出响应,以便向主机设备102指示还没有任何数据要提供。在点3处,主机设备102可以重试请求分组,但是除非ufp设备104已经接收到来自dfp设备106的数据分组,否则所述ufp设备在点4处以另一合成null分组作出响应。

在点5处,ufp设备104基于从主机设备102接收到的ackin分组以及ufp设备104上的可用量的缓冲器空间来生成合成ackin分组。通过这样做,ufp设备104可以请求比主机设备102所请求的更多数据,并且可以预取并高速缓存附加数据,以使得可以由ufp设备104更高效地处理来自主机设备102的随后请求。如所展示的,由ufp设备104生成的合成ackin分组已经请求了五个分组而不是由主机设备102请求的三个分组,但是在合成ackin分组中可以请求多于或少于五个的分组。

合成ackin分组由dpf设备106接收,并且被传输至usb设备108。在点6处,usb设备108利用第一所请求数据分组来回复,并且dfp设备106向ufp设备104传输第一所请求数据分组。在接收到第一所请求数据分组之后,ufp设备104高速缓存第一所请求数据分组以用于稍后递送到主机设备102。在点7处,dfp设备106利用请求第二数据分组的第二合成ackin分组来确认第一数据分组。在点8处,usb设备108使用第二所请求数据分组来回复,所述第二所请求数据分组再次由dfp设备106传输到ufp设备108以供高速缓存。针对第三所请求数据分组在点9和点10处重复此过程,针对第四所请求数据分组在点11和点12处重复此过程,并且针对第五所请求数据分组在点13和点14处重复此过程。

在点15处,主机设备102再次向ufp设备104传输请求分组。在点16处,ufp设备104已经接收到足够的数据分组来满足由主机设备102传输的请求,并且因此ufp设备104将来自其高速缓存的第一所请求数据分组传输至主机设备102。在点17处,主机设备102通过请求第二数据分组来确认第一所请求数据分组,并且在点18处,ufp设备104将来自其高速缓存的第二所请求数据分组传输至主机设备102。针对第三所请求数据分组,在点19和点20处重复此过程。

在点21处,主机设备102请求第四数据分组。如果ufp设备104尚未增加待由usb设备104请求的缓冲器大小,则ufp设备104可能还不具有第四数据分组并且将不得不以如在点2或点4处的null分组(或其他类型的分组)作出响应直到请求可以由dfp设备满足。然而,因为ufp设备104预先高速缓存了附加数据分组,所以ufp设备104可以在点22处以高速缓存的第四数据分组作出响应,而不必向dfp设备106传输请求。这在点23和点24处同样适用于第五数据分组。

在一些实施例中,ufp设备104可以继续预取并缓存数据分组,以预期主机设备102的未来请求。例如,尽管未展示,但ufp设备104可以在点21(或在点16之后的某个其他点)处向dfp设备106传输另一合成ackin分组,以便试图保持其高速缓存已满,而不考虑从主机设备102接收到的ackin分组。

虽然已经展示和描述了多个说明性实施例,但将认识到的是,在不脱离本发明的精神和范围的情况下,可作出各种变化。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1