CN114443534A - 用于usb扩展环境中的等时in流量的调度技术 - Google Patents

用于usb扩展环境中的等时in流量的调度技术 Download PDF

Info

Publication number
CN114443534A
CN114443534A CN202111268115.5A CN202111268115A CN114443534A CN 114443534 A CN114443534 A CN 114443534A CN 202111268115 A CN202111268115 A CN 202111268115A CN 114443534 A CN114443534 A CN 114443534A
Authority
CN
China
Prior art keywords
usb
endpoint
packet
ack
dfp
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202111268115.5A
Other languages
English (en)
Inventor
M·那哈维
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Icron Tecnologies Corp
Original Assignee
Icron Tecnologies Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Icron Tecnologies Corp filed Critical Icron Tecnologies Corp
Publication of CN114443534A publication Critical patent/CN114443534A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/387Information transfer, e.g. on bus using universal interface adapter for adaptation of different data processing systems to different peripheral devices, e.g. protocol converters for incompatible systems, open system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/382Information transfer, e.g. on bus using universal interface adapter
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/385Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0042Universal serial bus [USB]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Information Transfer Systems (AREA)

Abstract

在一些实施例中,提供了一种用于经由非USB扩展介质传送USB信息的系统。该系统包括面向上游的端口设备(UFP设备)和面向下游的端口设备(DFP设备)。该DFP设备被配置成经由该扩展介质从该UFP设备接收寻址到第一端点的第一ACK IN分组,并在接收到该第一ACK IN分组之后接收寻址到第二端点的第二ACK IN分组。响应于检测到USB兼容连接可用,该DFP设备将该第一端点的bInterval值与该第二端点的bInterval值进行比较;并且响应于确定该第二端点的bInterval值小于该第一端点的bInterval值,该DFP设备基于该第二ACK IN分组向该第二端点传输合成ACK IN分组。

Description

用于USB扩展环境中的等时IN流量的调度技术
相关申请的交叉引用
本申请要求于2020年10月30日提交的临时申请号63/107914的权益,该临时申请的全部披露内容出于所有目的通过引用并入本文。
背景技术
USB是外围接口,其用于附接各种计算设备,如个人计算机、数字电话线、监测器、调制解调器、鼠标、打印机、扫描仪、游戏控制器、键盘、存储设备等。定义USB的规范(例如,1996年1月,Intel等人,Universal Serial Bus Specification[通用串行总线规范],修订版1.0,于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 Forum)的开放行业组织管理。USB规范建立了为符合USB标准而必须满足的基本标准。本领域的普通技术人员将从USB规范中认识到本文中的许多术语。除非另有说明,否则这些术语在本文中的使用方式与其在USB规范中的使用方式类似。
在USB规范的修订版3.1下,提供了使用5Gbps(第1代)或10Gbps(第2代)信号传输速率的超高速(SuperSpeed)连接。虽然该规范没有规定任何特定的最大电缆长度,但实际上,时序规定和信号传输技术要求用于主机与设备之间的超高速连接的常规铜电缆至多为3米长,以适当地支持超高速连接。因此,需要新的方法和装置来任选地允许将超高速USB设备扩展到与其所耦合的主机相距更远的距离,使得可以在主机与USB设备之间传播超高速USB分组。
发明内容
提供本概述以便以简化形式介绍将在下文具体实施方式中进一步描述的一系列概念。本概述并非旨在指明所要求保护的主题的关键特征,也并非旨在用于帮助确定所要求保护的主题的范围。
在一些实施例中,提供了一种用于经由扩展介质传送USB信息的系统。该系统包括面向上游的端口设备(UFP设备)和面向下游的端口设备(DFP设备)。该UFP设备经由USB兼容连接通信地耦合到主机设备。该DFP设备经由USB兼容连接通信地耦合到至少一个USB设备,并经由非USB扩展介质通信地耦合到该UFP设备。该DFP设备被配置成:经由该扩展介质从该UFP设备接收寻址到第一端点的第一ACK IN分组;在接收到该第一ACK IN分组之后经由该扩展介质从该UFP设备接收寻址到第二端点的第二ACK IN分组;以及响应于检测到该USB兼容连接可用:将该第一端点的bInterval值与该第二端点的bInterval值进行比较;以及响应于确定该第二端点的bInterval值小于该第一端点的bInterval值,基于该第二ACK IN分组向该第二端点传输合成ACK IN分组。
在一些实施例中,提供了一种经由非USB扩展介质实现主机设备与至少一个USB设备之间的通信的方法。面向下游的端口设备(DFP设备)经由该非USB扩展介质从面向上游的端口设备(UFP设备)接收寻址到第一端点的第一ACK IN分组。该DFP设备在接收到该第一ACK IN分组之后经由该非USB扩展介质从该UFP设备接收寻址到第二端点的第二ACK IN分组。响应于检测到该DFP设备与至少一个USB设备之间的USB兼容连接可用,该DFP设备将该第一端点的bInterval值与该第二端点的bInterval值进行比较;并且响应于确定该第二端点的bInterval值小于该第一端点的bInterval值,该DFP设备基于该第二ACK IN分组向该第二端点传输合成ACK IN分组。
在一些实施例中,提供了一种面向下游的端口设备(DFP设备)。该DFP设备包括配置成通信地耦合到一个或多个USB设备的面向下游的USB端口,以及被配置成经由非USB扩展介质通信地耦合到面向上游的端口设备(UFP设备)的扩展接口。该DFP设备被配置成:经由该扩展介质从该UFP设备接收寻址到第一端点的第一ACK IN分组;在接收到该第一ACKIN分组之后经由该扩展介质从该UFP设备接收寻址到第二端点的第二ACK IN分组;以及响应于检测到该USB兼容连接可用:将该第一端点的bInterval值与该第二端点的bInterval值进行比较;以及响应于确定该第二端点的bInterval值小于该第一端点的bInterval值,基于该第二ACK IN分组向该第二端点传输合成ACK IN分组。
在一些实施例中,提供了一种用于经由扩展介质传送USB信息的系统。该系统包括面向上游的端口设备(UFP设备)和面向下游的端口设备(DFP设备)。该UFP设备经由USB兼容连接通信地耦合到主机设备。该DFP设备经由USB兼容连接通信地耦合到至少一个USB设备,并经由非USB扩展介质通信地耦合到该UFP设备。该DFP设备被配置成:经由该扩展介质从该UFP设备接收寻址到第一端点的ACK IN分组,同时从第二端点接收DATA分组;检测从该第二端点的DATA分组传输结束;确定在当前总线间隔的剩余时间量期间可以从该第一端点接收的分组数量;以及基于该分组数量向该第一端点传输至少一个合成ACK IN分组。
在一些实施例中,提供了一种经由非USB扩展介质实现主机设备与至少一个USB设备之间的通信的方法。面向下游的端口设备(DFP设备)经由该非USB扩展介质从面向上游的端口设备(UFP设备)接收寻址到第一端点的ACK IN分组,同时从第二端点接收DATA分组。该DFP设备检测从该第二端点的DATA分组传输结束。该DFP设备确定在当前总线间隔的剩余时间量期间可以从该第一端点接收的分组数量。该DFP设备基于该分组数量向该第一端点传输至少一个合成ACKIN分组。
在一些实施例中,提供了一种面向下游的端口设备(DFP设备)。该DFP设备包括配置成通信地耦合到一个或多个USB设备的面向下游的USB端口,以及被配置成经由非USB扩展介质通信地耦合到面向上游的端口设备(UFP设备)的扩展接口。该DFP设备被配置成:经由该扩展介质从该UFP设备接收寻址到第一端点的ACK IN分组,同时从第二端点接收DATA分组;检测从该第二端点的DATA分组传输结束;确定在当前总线间隔的剩余时间量期间可以从该第一端点接收的分组数量;以及基于该分组数量向该第一端点传输至少一个合成ACK IN分组。
附图说明
通过结合附图参考以下详细描述,将更易于认识到并更好地理解上述方面以及本发明的许多附带特征,在附图中:
图1是展示了根据本披露内容的各个实施例的用于扩展USB通信的系统的一个实施例的框图。
图2是展示了图1所展示的上游USB扩展设备和下游USB扩展设备的进一步细节的框图。
图3是展示了根据本披露内容的各个方面的端口设备的示例性实施例的框图。
图4A是展示了根据本披露内容的各个方面在低等待时间模式下主机设备与USB设备之间的通信的序列图。
图4B是展示了在高等待时间情况下将朴素桥接技术用于等时IN事务的问题的序列图。
图5是展示了根据本披露内容的各个方面的用于补偿在等时IN事务中由扩展介质添加的等待时间的技术的示例的序列图。
图6是展示了使用图5的技术来克服具有多个并发活动USB端点的扩展环境中的等待时间问题中的问题的序列图。
图7A和图7B是展示了根据本披露内容的各个方面的用于补偿在等时IN事务中由扩展介质添加的等待时间的技术的示例的序列图。
图8是展示了根据本披露内容的各个方面的扩展环境内的示例USB通信拓扑的示意图。
图9是展示了根据本披露内容的各个方面的用于补偿在传输合成请求分组时的不同等待时间量的技术的非限制性示例实施例的序列图。
具体实施方式
图1是展示了根据本披露内容的各个实施例的用于扩展USB通信的系统100的一个实施例的框图。系统100包括主机设备102和USB设备108。传统上,主机设备102和USB设备108将会通过USB电缆直接连接,并且将会通过符合USB规范(如USB 1.0、USB 1.1、USB 2.0、USB 3.0或USB 3.1)的协议彼此直接通信。如上文所讨论的,由于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通过扩展介质110(如网络)通信地耦合,该扩展介质可以将主机设备102与USB设备108之间的距离增加到超过USB规范所支持的距离。扩展介质110和其上的通信可以包括任何合适的联网技术(如以太网、蓝牙、WiFi、WiMax、互联网、光纤点对点传送等)和任何合适的通信介质(如通过物理电缆、通过光纤电缆、通过无线频谱等)。
在一些实施例中,上游USB扩展设备104和下游USB扩展设备106彼此的距离可能恰好比短USB要求距离更近,和/或可以通过电缆而不是通过网络直接连接,但是保留克服主机设备102与USB设备108之间增加的等待时间的能力,该增加的等待时间是由于使用不符合USB规范的扩展介质110而引入的。
由上游USB扩展设备104和下游USB扩展设备106提供的一个特征是该上游USB扩展设备和该下游USB扩展设备对主机设备102和USB设备108隐藏了扩展介质110的存在。换言之,上游USB扩展设备104和下游USB扩展设备106处理通过扩展介质110进行的通信并且补偿由此引入的任何附加等待时间,但是主机设备102和USB设备108表现得好像它们通过符合USB规范的连接来直接连接一样。因此,主机设备102和USB设备108可以通过上游USB扩展设备104和下游USB扩展设备106进行通信,而无需在主机设备102或USB设备108上重新配置任何非标准软件或硬件。
图2是展示了图1所展示的上游USB扩展设备104和下游USB扩展设备106的另外细节的框图。上游USB扩展设备104包括面向上游的端口202,并且下游USB扩展设备106包括面向下游的端口204。如本文所用,术语“面向上游的端口”和对应的首字母缩略词“UFP”可以可互换地使用,术语“面向下游的端口”和对应的首字母缩写词“DFP”也可以可互换地使用。同样,因为上游USB扩展设备104包括面向上游的端口202,所以上游USB扩展设备104也可以被称为“UFP设备”,并且因为下游USB扩展设备106包括面向下游的端口204,所以下游USB扩展设备106也可以被称为“DFP设备”。
UFP设备104至少被配置成使用面向上游的端口202通过符合USB标准的协议与主机设备102通信,并且通过扩展介质110与DFP设备106交换消息和USB总线通信量。DFP设备106至少被配置成使用面向下游的端口204通过符合USB标准的协议与USB设备108通信,并且通过扩展介质110与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包括协议引擎304、USB物理层接口306和远程接口302。在一些实施例中,协议引擎304可以被配置成提供和/或执行下文关于UFP设备104和/或DFP设备106所讨论的逻辑。协议引擎304可以指示USB物理层接口306将适当的电信号施加到USB物理层以便与USB设备108或主机设备102通信。同样,协议引擎304可以指示远程接口302与远程USB扩展设备交换信息。
在一些实施例中,协议引擎304可以在如PLD、ASIC、FPGA等逻辑设备内实施。在其他实施例中,协议引擎304可以在以下各项内实施:具有至少一个处理器和包含计算机可执行指令的存储器的计算设备,这些计算机可执行指令如果由该至少一个处理器执行则使协议引擎304进行下文所讨论的动作;该例如实施为状态机实施的专用数字硬件设备,该状态机被配置成进行所描述的动作;专用处理器;和/或任何其他合适的计算设备。在一些实施例中,协议引擎304(或端口设备300的其他部件)可以包括可用于高速缓存数据分组的计算机可读存储器,如下文进一步讨论的。
在一些实施例中,归因于USB扩展设备的动作逻辑由协议引擎304执行,该协议引擎然后指示USB物理层接口306和/或远程接口302进行与逻辑相关联的适当通信步骤。贯穿下文的讨论,这样的动作可以简单地描述为由UFP设备104或DFP设备106进行,就好像该UFP设备或该DFP设备是单个设备一样,以便于讨论。本领域的普通技术人员将认识到,直接归因于UFP设备104或DFP设备106的动作实际上可以由协议引擎304、USB物理层接口306、远程接口302和/或USB扩展设备的其他一些部件进行。
图4A是展示了根据本披露内容的各个方面在低等待时间模式下主机设备102与USB设备108之间的通信的序列图。
在图4A所展示的序列图中(以及在此包括的其他序列图中),时间从图的顶部推进到图的底部。实线箭头指示由主机设备102或USB设备108根据USB规范(和/或其封装版本或翻译版本)生成的分组的传输。虚线箭头指示由UFP设备104或DFP设备106基于由主机设备102或USB设备108生成的分组、或响应于由主机设备102或USB设备108生成的分组而生成的合成分组的传输。合成分组的内容可以与由主机设备102或USB设备108生成的分组相同,但在时间上有所移位,或者可以具有从由主机设备102或USB设备108生成的分组的内容更改而来的内容。单独元素之间的水平箭头指示符合USB规范的时序要求的传输,而成角度的箭头指示通过扩展介质110进行的可能受增加的等待时间影响的传输。带圆圈的数字是指数据处理序列中的点,以供讨论。
在图4A中,所展示的通信是等时IN通信,其中主机设备102指示它准备好接收数据,并且USB设备108向主机设备102传输数据。图4A展示了在以下情况下对UFP设备104和DFP设备106的使用:UFP设备104与DFP设备106之间的等待时间足够低,使得UFP设备104和DFP设备106可以简单地将USB物理层信令转换和桥接到扩展介质上,而不会引入时序错误。在这种情况下,扩展介质具有能够支持超高速连接的吞吐量,如5.0Gbps或10.0Gbps。在这种低等待时间情况下,UFP设备104、DFP设备106和扩展介质之间的等待时间不会影响主机设备102与USB设备108之间的时序参数。
在超高速通信中,主机设备102为等时事务安排例如125μs的服务间隔。如USB 3.1规范的第8.12.5节中所述,主机设备102需要调度事务(包括等时事务),使得事务不会跨越这些服务间隔边界。在4A图所展示的低等待时间场景中,这可能不是问题。示出了第一服务间隔边界402和第二服务间隔边界404。在点1处,主机设备102生成请求分组(如ACK分组),并将其传输到UFP设备104。ACK分组指示序列号(“0”)和缓冲区计数(“3”),该缓冲区计数指示主机设备102准备好接受的分组数量。主机设备102可以将其准备好接受的分组数量建立在确定是否将在下一个服务间隔边界404出现之前接收到所有分组的基础上。
UFP设备104接收ACK分组,并经由扩展介质将其传输到DFP设备106。然后,DFP设备106将ACK分组传输到USB设备108。在点2处,USB设备108开始传输DATA分组,从请求的序列号开始。DATA分组由DFP设备106接收,该设备将DATA分组转发到UFP设备104。在点3处,UFP设备104开始向主机设备102传输DATA分组,该主机设备接收这些分组。
在点4处,因为主机设备102需要安排IN事务以使其不会跨越服务间隔边界,所以主机设备102确定在第二服务间隔边界404出现之前可以接收到的数据分组数量。如图所示,主机设备102已经基于USB规范中指定的时序确定在到达服务间隔边界404之前可以请求和接收到三个数据分组。因此,主机设备102传输另一个请求分组(如ACK分组),该分组指示下一个序列号(“3”)和分组数量(“3”),该分组数量是主机设备已经确定的在第二服务间隔边界404之前可以接收到的分组数量。如前所述,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开始传输响应性数据分组。
将注意到,两组三个分组的传输仅是示例,并且在一些实施例中,可以请求不同数量的分组。例如,USB 3.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之间的连接被丢弃。在某些情况下,该连接可能不会被丢弃,但这些错误可能会以其他方式表现出来,如相机提供的视频图像包括闪烁或其他不想要的伪影。
图5是展示了根据本披露内容的各个方面的用于补偿在等时IN事务中由扩展介质添加的等待时间的技术的示例的序列图。与图4A和图4B中一样,展示了第一服务间隔边界502和第二服务间隔边界504。在点1处,主机设备102向UFP设备104发送包括序列号(“0”)和分组数量(“3”)的请求分组,并且UFP设备104向DFP设备106传输该请求分组。在点2处,UFP设备104将合成分组传输回主机设备102,以将主机设备102置于临时等待状态。所展示的合成分组是空(NULL)分组,其可以是具有零长度有效载荷的数据分组,但是可以使用可以将主机设备102置于等待状态的任何其他类型的分组。响应于接收到NULL分组,主机设备102进入等待状态,在该状态下,该主机设备直到第二服务间隔边界504之后才重新传输请求分组。
在点3处,DFP设备106向USB设备108发送合成请求分组。由DFP设备106创建的合成请求分组包括来自主机设备102在点1处传输的请求分组的序列号。然而,DFP设备106已经更改了分组数量,使得该分组数量与由主机设备102在点1处传输的请求分组中的分组数量不匹配。
在一些实施例中,DFP设备106可以请求比主机设备102所请求的更多数量的分组。请求更多数量的分组允许DFP设备106接收附加的数据,这些附加的数据可以发送到UFP设备104以响应来自主机设备102的后续请求,而不必等待UFP设备104与DFP设备106之间的往返通信。在一些实施例中,DFP设备106可以确定与主机设备102在主机设备102进行的初始枚举期间针对USB拓扑或针对特定USB设备108已经配置的最大突发大小值相关联的分组数量。DFP设备106可以请求对应于最大突发大小的分组数量,而不管主机设备102在其第一请求中是否请求了更少的分组。这可以确保UFP设备104将具有主机设备102在单个服务间隔期间将请求的所有数据。在服务间隔期间主机设备102可以处理的最大分组数量对于5Gbps通信可以最高达48个或对于10Gbps通信可以最高达96个。USB设备108的最大突发大小值通常被配置成低于这些限制。典型的最大突发大小可能在6或7左右,尽管值可能低至3,以及对于包括但不限于某些高清相机在内的设备,值可能高达12,或者对于其他设备该值甚至更高。
在其他实施例中,DFP设备106可以请求在由主机设备102请求的分组数量与最大突发大小之间的任意分组数量。如图所示,DFP设备106已经生成合成分组以请求六个分组,而不是主机设备102最初请求的三个分组。这可能是因为最大突发大小已经被配置成六,或出于其他原因,包括但不限于DFP设备106上的配置、基于来自原始请求分组的分组数量做出的确定、或基于UFP设备104与DFP设备106之间的等待时间量做出的确定。
在点4处,USB设备108将请求的数据分组传输到DFP设备106。然后,DFP设备106将请求的数据分组传输到UFP设备104。在点5处,主机设备102确定第二服务间隔边界504已经出现,并且因此主机设备102传输可能类似于在点1处传输的请求分组的新请求分组。在点6处,UFP设备104用已经高速缓存在UFP设备104上的三个数据分组进行响应。这些数据分组用虚线展示并且可以被认为是合成数据分组,因为它们由于被UFP设备104高速缓存而在时间上有所移位。
将认识到,主机设备102然后可以传输另一个请求分组以请求接下来的三个数据分组,并且UFP设备104可以用也已经高速缓存在UFP设备104上的接下来的这三个数据分组进行响应。将注意到,通过预先取出比主机设备102所请求的更多的数据,UFP设备104能够复制在图4A的点1-5之间描述的功能,其中在单个服务间隔期间可以传输最大量的数据,即使图5中的情况包括UFP设备104与DFP设备106之间的高量等待时间。
图5还展示了DFP设备106可以在给定服务间隔期间从USB设备108检索尽可能多的数据分组。在点4处从USB设备108传输到DFP设备106的数据分组包括所请求的所有数据分组,但不包括设置了最后分组标志(LFP)的数据分组。根据USB规范,这向DFP设备106指示USB设备108具有附加数据分组要传输。因此,在点7处,DFP设备106传输附加合成分组以从USB设备108请求后续一组分组,然后USB设备108响应于该请求以数据分组进行响应。在点8处,USB设备108传输设置了LPF的数据分组。因此,DFP设备106理解USB设备108已经传输了其所有数据,并因此在从UFP设备104接收到新请求分组之前不会传输附加合成分组来请求其他数据分组。
将注意到,图5所展示技术的一些方面类似于2020年2月4日发布的美国专利号10,552,355(以下简称“‘355专利”)中披露的技术。然而,图5所展示的技术还是有区别的。例如,本披露内容描述了由DFP设备106生成合成分组,而不是如’355专利中披露的那样由UFP设备104生成合成分组。已经发现,通过允许DFP设备106而不是UFP设备104来控制从USB设备108请求的数据分组数量可实现改进的通信,至少是因为DFP设备106由于其符合USB标准的连接而能够从USB设备108获得更及时的状态信息。
虽然图5中披露的技术在具有单个活动USB端点的通信拓扑中是有用的,但是本申请的发明人已经发现,如果多于一个USB端点同时处于活动状态,则可能出现另外的问题。图6是展示了使用图5的技术来克服具有多个并发活动USB ISO IN端点的扩展环境中的等待时间问题中的问题的序列图。
在图6中,主机设备102、UFP设备104和DFP设备106被展示为类似于以上展示和讨论的那些。图6所展示的USB设备108可以表示具有并发活动端点的多个USB设备108,或者可以表示具有多个并发活动端点的单个USB设备108。
服务间隔开始于第一服务间隔边界602,并且在点1处,主机设备102生成请求分组(如ACK分组),并将其传输到UFP设备104。UFP设备104进而将请求分组传输到DFP设备106。ACK分组指示目标端点(“A1”)、序列号(“0”)以及主机设备102准备好接受的分组数量(“3”)。如上文所讨论的,在点2处,UFP设备104用合成NULL分组来对主机设备102进行响应。在点3处,DFP设备106生成合成请求分组以从USB设备108请求更多数量的分组,并且在点4处,USB设备108开始向DFP设备106传输请求的分组。
在点5处,开始引入问题。在图5所展示的单端点场景中,主机设备102将等到第二服务间隔边界604之后才向单个端点提交另一个请求分组。然而,对于多于一个并发活动端点,一旦主机设备102接收到响应于第一请求分组的NULL分组,主机设备102就可以确定它是否可以向不同的端点发出可以在第二服务间隔边界604之前完成的另一个请求。因此,在点5处,主机设备102生成第二请求分组(如所展示的指向端点“A2”的ACK分组),并将其传输到UFP设备104。端点A2可以是由提供端点A1的USB设备108提供的不同端点,或者可以是由不同的USB设备108提供的端点。将认识到,特定端点标识符“A1”和“A2”仅用作非限制性示例,并且在一些实施例中,可以使用不同的或附加的端点标识符。
在点6处,DFP设备106从UFP设备104接收第二请求分组。然而,在点6处,DFP设备106正忙于从A1端点接收响应分组,并且对第二请求分组的接收与对这些分组的服务发生冲突。期望的是解决这些冲突的技术,以允许多个并发端点在扩展环境中运行。
进一步地,以先到先得的方式对并发端点的请求进行朴素处理可能会产生次优结果。例如,每个端点可以配置有bInterval值,该值指示预期主机设备102向端点传输数据分组请求的频率。预期配置有较小bInterval值的端点比配置有较大bInterval值的端点响应得更快。然而,如果配置有较小bInterval值的端点需要等待配置有较大bInterval值的端点完成事务,则可能无法达到期望的响应水平。期望的是这样的技术:允许针对具有不同bInterval值的端点的事务交错,以提供改进的响应性。
图7A是展示了根据本披露内容的各个方面的用于补偿在等时IN事务中由扩展介质添加的等待时间的技术的示例的序列图。在图7A中,主机设备102、UFP设备104和DFP设备106被展示为类似于以上展示和讨论的那些。图7A所展示的USB设备108可以表示具有并发活动端点的多个USB设备108,或者可以表示具有多个并发活动端点的单个USB设备108。
服务间隔开始于第一服务间隔边界702,并结束于第二服务间隔边界704。在点1处,主机设备102生成请求分组(如ACK IN分组),并将其传输到UFP设备104。UFP设备104进而将请求分组传输到DFP设备106。ACK分组指示目标端点(“A1”)、序列号(“0”)以及主机设备102准备好接受的分组数量(“3”)。如上文所讨论的,在点2处,UFP设备104用合成NULL分组来对主机设备102进行响应。在点3处,DFP设备106生成合成请求分组以从USB设备108请求更多数量的分组,并且在点4处,USB设备108开始向DFP设备106传输请求的分组。在一些实施例中,合成请求分组可以请求比由主机设备102传输的请求分组更少数量的分组、或相同数量的分组。
在点5处,主机设备102生成第二请求分组(如所展示的指向端点“A2”的ACK分组),并将其传输到UFP设备104。端点A2可以是由提供端点A1的USB设备108提供的不同端点,或者可以是由不同的USB设备108提供的端点。将认识到,特定端点标识符“A1”和“A2”仅用作非限制性示例,并且在一些实施例中,可以使用不同的或附加的端点标识符。
在点6处,DFP设备106从UFP设备104接收第二请求分组。在接收到第二请求分组时,DFP设备106基于第二请求分组来确定USB总线是否可用于传输合成请求分组。由于端点A1正在USB总线上传输数据,因此USB总线在点6处不可用。因此,DFP设备106存储第二请求分组,直到其检测到USB总线可用为止。
最终,DFP设备106检测到USB总线可用。在所展示的实施例中,当DFP设备106检测到已经接收到所请求数量的数据分组时,DFP设备106检测到USB总线可用。在其他实施例(比如图7B所展示的实施例)中,当接收到设置了LPF值的数据分组时,DFP设备106可以检测到USB总线可用。
一旦确定USB总线可用,DFP设备106就有两个端点可以向其发送合成请求分组:可以将后续合成请求分组发送到端点A1(如图5中的点7处所展示的),或者基于在当前图7A中的点6处接收到的请求分组,可以将新合成请求分组发送到端点A2。在一些实施例中,为了确定应该被服务的端点,DFP设备106将第一端点(端点A1)的bInterval值与第二端点(端点A2)的bInterval值进行比较。通过选择具有较小bInterval值的端点,DFP设备106可以为所选择的端点提供更好的响应性,并从而提供更稳定且有效的扩展环境。
在所展示的实施例中,bInterval值的比较确定端点A2的bInterval值小于端点A1的bInterval值。因此,在点7处,DFP设备106向第二端点(端点A2)传输合成请求分组。将认识到,如果端点A2的bInterval值不小于端点A1的bInterval值,则相反地,DFP设备106可能已经向端点A1传输了后续合成请求分组(如在图5中的点7处所展示的),保存在点6处接收到的针对端点A2的请求分组,直到从端点A1的传送处理完成。在点8处,端点A2响应于在点7处传输的合成请求分组而开始传输数据分组。尽管未展示,但DFP设备106将数据分组传输到UFP设备104,使得UFP设备104可以缓存数据分组以便稍后传输到主机设备102。
在一些实施例中,端点A2可以继续传输数据分组直到端点A2没有任何其他数据分组要传输,如图5中针对单个端点所展示的。同样,如果第一批不包括端点A2必须传输的所有数据分组,则DFP设备106可以将后续合成请求分组传输到端点A2。然而,在所展示的实施例中,端点A2只有三个数据分组要传输。因此,在点9处,端点A2传输设置了LPF值的数据分组。
在接收到设置了LPF值的数据分组时,DFP设备106确定USB总线空闲,可用于与不同端点的通信。由于到端点A1的后续请求分组已经暂停以便为端点A2提供服务,因此在点10处,DFP设备106返回到暂停的分组并将后续合成请求分组传输到端点A1,并在点11处开始接收来自端点A1的响应性数据包。然后,DFP设备106继续处理与端点A1的事务,为简洁起见这里不再展示。
尽管仅描述了与两个端点(端点A1和端点A2)的通信,但将认识到,在一些实施例中,当USB总线繁忙时,也可以在DFP设备106处暂停指向附加端点的请求分组,并且可以比较所有暂停的请求分组的bInterval值以确定首先服务哪一个。
图7B是展示了用于补偿图7B中展示的等待时间的技术的附加方面的另一序列图。在图7B中,主机设备102、UFP设备104和DFP设备106被展示为类似于以上展示和讨论的那些。图7B所展示的USB设备108可以表示具有并发活动端点的多个USB设备108,或者可以表示具有多个并发活动端点的单个USB设备108。
服务间隔开始于第一服务间隔边界706,并结束于第二服务间隔边界708。从点1到点6,图7B中所展示的序列的操作与图7A中所展示的序列的操作相同,因此这里不再进行讨论。然而,不同之处在于,图7B展示的不是两个活动的端点,而是三个同时活动的端点(端点A1、A2和A3)。因此,在从UFP设备104接收到第二合成空分组时,在点5'处,主机设备102传输寻址到第三端点(端点A3)的第三请求分组,该第三请求分组在点6'处由DFP设备106接收。
在接收到第三请求分组时,DFP设备106基于第二请求分组或第三请求分组再次确定USB总线是否可用于传输合成请求分组。由于端点A1正在USB总线上传输数据,因此USB总线在点6'处也不可用。因此,DFP设备106存储第三请求分组,直到其检测到USB总线可用为止。
最终,DFP设备106检测到USB总线可用。在所展示的实施例中,当接收到设置了LPF值的数据分组时,DFP设备106检测到USB总线可用。
一旦确定USB总线可用,DFP设备106就有两个端点可以向其发送合成请求分组:基于在点6处接收到的请求分组,可以将合成请求分组发送到端点A2,或者基于在点6'处接收到的请求分组,可以将合成请求分组发送到端点A3。在一些实施例中,为了确定应该被服务的端点,DFP设备106将第二端点(端点A2)的bInterval值与第三端点(端点A3)的bInterval值进行比较。通过选择具有较小bInterval值的端点,DFP设备106可以为所选择的端点提供更好的响应性,并从而提供更稳定且有效的扩展环境。
在所展示的实施例中,bInterval值的比较确定端点A2的bInterval值小于端点A3的bInterval值。因此,在点7处,DFP设备106向第二端点(端点A2)传输合成请求分组。将认识到,如果端点A2的bInterval值不小于端点A3的bInterval值,则相反地,DFP设备106可能已经向端点A3传输了合成请求分组。在点8处,端点A2响应于在点7处传输的合成请求分组而开始传输数据分组,并且其余的处理以类似于图7A所展示的方式继续进行。
图7A至图7B中的图示和相关讨论假设DFP设备106与端点之间的所有展示和描述的通信是在单个总线间隔内进行的,因为USB规范要求请求分组和响应数据分组在单个总线间隔内交换。为此,DFP设备106可以调整合成请求分组中请求的分组的数量以确保可以在相同的总线间隔期间接收到响应分组。然而,鉴于对符合USB规范的通信有严格的时序要求,USB通信拓扑的差异可能会取决于端点而改变该分组数量。
图8是展示了根据本披露内容的各个方面的扩展环境内的示例USB通信拓扑的示意图。如所示的,主机设备102、UFP设备104和DFP设备106如图1所展示的那样连接,并且第一USB设备810耦合到DFP设备106的面向下游的USB端口(如以上所展示的USB设备108)。拓扑800比图1的拓扑更复杂,因为DFP设备106的面向下游的USB端口也耦合到第一USB集线器设备802的面向上游的端口,并且第二USB设备808耦合到第一USB集线器设备802的面向下游的端口。进一步地,第二USB集线器设备804的面向上游的端口耦合到第一USB集线器设备802的面向下游的端口,并且第三USB设备806耦合到第二USB集线器设备804的面向下游的端口。来自DFP设备106的(多个)面向下游的端口的所有通信符合USB规范,并且对于主机设备102看起来就像是第一USB设备810、第一USB集线器设备802、第二USB设备808、第二USB集线器设备804和第三USB设备806直接耦合到主机设备102一样。
在拓扑800中,由DFP设备106生成的总线间隔边界控制与第一USB设备810、第二USB设备808和第三USB设备806通信的时序。如此,即使对于第三USB设备806(其通过第一USB集线器设备802和第二USB集线器设备804与DFP设备106分隔开),响应分组也必须在与对应请求分组相同的总线间隔期间接收。由于第一USB设备810、第二USB设备808和第三USB设备806与DFP设备106分隔开的距离不同,因此在给定总线间隔结束之前可以请求的分组数量可能由于通信中的等待时间量的不同而不同。
图9是展示了根据本披露内容的各个方面的用于补偿在传输合成请求分组时的不同等待时间量的技术的非限制性示例实施例的序列图。
在图9中,主机设备102、UFP设备104和DFP设备106被展示为类似于以上展示和讨论的那些。图9中所展示的USB设备108可以表示具有并发活动端点的多个USB设备108。进一步地,多个USB设备108可以通过不同深度的中间USB集线器与DFP设备106分隔开,如图8中所展示的。图9还展示了由主机设备102产生的第一主机总线间隔边界902与第二主机总线间隔边界904之间的主机总线间隔,以及由DFP设备106产生的第一扩展总线间隔边界906与第二扩展总线间隔边界908之间的扩展总线间隔。根据USB规范,主机设备102与UFP设备104之间的事务在主机总线间隔内完成,并且DFP设备106与USB设备108之间的事务在扩展总线间隔内完成。尽管为了方便起见将第一主机总线间隔边界902和第一扩展总线间隔边界906展示为同时产生,并且为了方便起见将第二主机总线间隔边界904和第二扩展总线间隔边界908展示为同时产生,但是在一些实施例中,在DFP设备106与USB设备108之间产生的总线间隔边界可以延迟一定量,以补偿UFP设备104与DFP设备106之间通信的等待时间。
在点1处,主机设备102生成请求分组(如ACK IN分组),并将其传输到UFP设备104。UFP设备104进而将请求分组传输到DFP设备106。在点2处,UFP设备104用合成NULL分组来对主机设备102进行响应。在点3处,DFP设备106生成指向端点A1的合成请求分组,并且在点4处,与端点A1相关联的USB设备108开始向DFP设备106传输所请求的分组。在点5处,主机设备102生成第二请求分组(比如指向端点“A2”的所展示的ACK分组),并将其传输到UFP设备104,并且在点6处,DFP设备106从UFP设备104接收第二请求分组。从点1到点6的动作类似于以上在图7A中讨论的那些动作,并且因此为简洁起见这里不再详细讨论。
在点7处,端点A1传输设置了LPF值的数据分组,表明端点A1不再有任何数据要发送,并且DFP设备106可以使用USB总线向不同的端点传输请求分组。因此,在点8处,DFP设备106向端点A2传输合成请求分组。这类似于在图7A中的点7处传输的合成请求分组,但是因为没有其他请求正在等待处理,所以DFP设备106可以在不比较bInterval值的情况下向端点A2传输分组。
在一些实施例中,在点8处创建合成请求分组之前,DFP设备106先确定DFP设备106与目标端点之间的通信中的预测等待时间量。因为DFP设备106下游的通信符合USB规范,所以可以通过对DFP设备106与同目标端点相关联的USB设备108之间的集线器深度或USB集线器的数量进行计数来确定预测的等待时间量。
例如,在图8中,如果目标端点与第一USB设备810相关联,则集线器深度将为零,因为第一USB设备810直接耦合到DFP设备106,并且将不会考虑附加等待时间。如果目标端点与第二USB设备808相关联,则集线器深度将为一,因为第二USB设备808经由第一USB集线器设备802耦合到DFP设备106,并且将使用对应的预测等待时间量。同样,如果目标端点与第三USB设备806相关联,则集线器深度将为二,因为第三USB设备806经由第一USB集线器设备802和第二USB集线器设备804耦合到DFP设备106,并且将使用对应增加的预测等待时间量。在一些实施例中,可以预测每个集线器深度级别的预定等待时间量。例如,在0.65μs到0.75μs范围内的预定等待时间量(比如0.7μs)可以用作每个集线器深度级别的预测等待时间量。在一些实施例中,DFP设备106可以测量每个集线器深度级别的等待时间量,并且可以在其预测中使用测量的等待时间量。
如图9中所展示的,与端点A2的通信中的预测等待时间指示在第二扩展总线间隔边界908出现之前只有时间来传送两个数据分组。因此,在点8处传输的合成请求分组仅请求两个分组,这两个分组然后由与端点A2相关联的USB设备108在点9处返回。然后,扩展总线间隔结束于第二扩展总线间隔边界908。
尽管已经展示并描述了说明性实施例,但将认识到的是,在不脱离本披露内容的精神和范围的情况下,可以在其中进行各种改变。

Claims (10)

1.一种经由非USB扩展介质实现主机设备与至少一个USB设备之间的通信的方法,该方法包括:
由面向下游的端口设备(DFP设备)经由非USB扩展介质接收寻址到第一端点的第一ACKIN分组;
由该DFP设备在接收到该第一ACK IN分组之后经由该非USB扩展介质接收寻址到第二端点的第二ACK IN分组;以及
响应于检测到USB兼容连接可用:
由该DFP设备将该第一端点的bInterval值与该第二端点的bInterval值进行比较;以及
响应于确定该第二端点的bInterval值小于该第一端点的bInterval值,由该DFP设备基于该第二ACK IN分组向该第二端点传输合成ACK IN分组。
2.如权利要求1所述的方法,其中,检测到该USB兼容连接可用包括以下中的至少一项:
接收到由该DFP设备传输的前一合成ACK IN分组所请求的总数量的分组;以及
接收到设置了最后分组标志(LPF)的DATA分组。
3.如权利要求1所述的方法,进一步包括:
由该DFP设备在接收该第二ACK IN分组之前向该第一端点传输至少一个合成ACK IN分组。
4.如权利要求3所述的方法,其中,在接收到该第一ACK IN分组之后接收寻址到该第二端点的第二ACK IN分组包括在从该第一端点接收DATA分组的同时接收该第二ACK IN分组。
5.如权利要求4所述的方法,进一步包括:
响应于确定该第二ACK IN分组的处理完成,由该DFP设备基于该第一ACK IN分组向该第一端点传输至少一个合成ACK IN分组。
6.如权利要求5所述的方法,其中,确定该第二ACK IN分组的处理完成包括从该第二端点接收到设置了最后分组标志(LPF)的DATA分组。
7.如权利要求1所述的方法,其中,基于该第二ACK IN分组向该第二端点传输该合成ACK IN分组包括:
确定在当前总线间隔的剩余时间量期间可以从该第二端点接收的分组数量;以及
使用该分组数量来确定该合成ACK IN分组的缓冲区计数。
8.如权利要求7所述的方法,其中,确定在该当前总线间隔的剩余时间量期间可以从该第二端点接收的分组数量包括基于集线器深度来估计该DFP设备与同该第二端点相关联的USB设备之间的等待时间量。
9.一种面向下游的端口设备(DFP设备),
被配置成执行如权利要求1至权利要求8中任一项所述的方法。
10.一种用于经由扩展介质传送USB信息的系统,该系统包括:
面向下游的端口设备(DFP设备),该DFP设备被配置成执行如权利要求1至权利要求8中任一项所述的方法。
CN202111268115.5A 2020-10-30 2021-10-28 用于usb扩展环境中的等时in流量的调度技术 Pending CN114443534A (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US202063107914P 2020-10-30 2020-10-30
US63/107,914 2020-10-30
US17/512,305 US11803498B2 (en) 2020-10-30 2021-10-27 Scheduling techniques for isochronous in traffic in a USB extension environment
US17/512,305 2021-10-27

Publications (1)

Publication Number Publication Date
CN114443534A true CN114443534A (zh) 2022-05-06

Family

ID=81184399

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111268115.5A Pending CN114443534A (zh) 2020-10-30 2021-10-28 用于usb扩展环境中的等时in流量的调度技术

Country Status (3)

Country Link
US (2) US11803498B2 (zh)
CN (1) CN114443534A (zh)
DE (1) DE102021128347A1 (zh)

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6708247B1 (en) * 1999-07-21 2004-03-16 Clearcube Technology, Inc. Extending universal serial bus to allow communication with USB devices at a remote location
US6735658B1 (en) * 2000-10-06 2004-05-11 Clearcube Technology, Inc. System and method for combining computer video and remote universal serial bus in an extended cable
US6961798B2 (en) * 2002-03-28 2005-11-01 Hewlett-Packard Development Company, L.P. KVM extension configuration including a USB-to-non-USB adapter to support transmission of USB signals from a host to KVM devices located outside of USB operating ranges
US6993620B2 (en) * 2003-06-13 2006-01-31 Hewlett-Packard Development Company, L.P. User resource sharing through the USB interface
US8549204B2 (en) * 2010-02-25 2013-10-01 Fresco Logic, Inc. Method and apparatus for scheduling transactions in a multi-speed bus environment
US8645584B2 (en) * 2010-06-27 2014-02-04 Valens Semiconductor Ltd. Method and system for partial USB enumeration and edge initiation
US9047418B2 (en) * 2011-11-22 2015-06-02 Icron Technologies Corporation Methods and devices for extending USB 3.0-compliant communication
US9785595B2 (en) * 2013-09-09 2017-10-10 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Multi-channel universal serial bus (USB) to subrate channel systems
US9799302B2 (en) * 2014-10-29 2017-10-24 Icron Technologies Corporation Systems and methods for transmitting video, network, and USB signals over extension media
US20170373881A1 (en) * 2016-06-27 2017-12-28 Qualcomm Incorporated Systems and methods for controlling isochronous data streams
US11263165B2 (en) * 2016-12-31 2022-03-01 Intel Corporation Apparatuses for periodic universal serial bus (USB) transaction scheduling at fractional bus intervals
US10890939B2 (en) * 2017-04-24 2021-01-12 Cirrus Logic, Inc. Recovery of reference clock on a device
US20190025872A1 (en) * 2017-07-18 2019-01-24 Qualcomm Incorporated Usb device with clock domain correlation
US10552355B2 (en) * 2017-10-03 2020-02-04 Icron Technologies Corporation Methods and devices for extending USB 3.0-compliant communication over an extension medium
US20200034107A1 (en) * 2018-07-25 2020-01-30 Qualcomm Incorporated Polling rates for universal serial bus (usb) endpoints
US10827271B1 (en) * 2019-10-07 2020-11-03 Synaptics Incorporated Backward compatibility for audio systems and methods
US11709791B2 (en) * 2020-09-21 2023-07-25 Icron Technologies Corporation Techniques for deconflicting USB traffic in an extension environment
US11809358B2 (en) * 2020-10-30 2023-11-07 Icron Technologies Corporation USB device removal and ping intervention in an extension environment
US11768796B2 (en) * 2021-03-29 2023-09-26 Icron Technologies Corporation Techniques for bus interval timing management in a USB extension system

Also Published As

Publication number Publication date
US11803498B2 (en) 2023-10-31
US20220138134A1 (en) 2022-05-05
US20240028542A1 (en) 2024-01-25
DE102021128347A1 (de) 2022-05-05

Similar Documents

Publication Publication Date Title
US11403246B2 (en) Methods and devices for extending USB 3.0-compliant communication over an extension medium
US9875206B2 (en) Methods and devices for extending USB 3.0-compliant communication
CA2880979C (en) Usb 3.0 link layer timer adjustment to extend distance
EP1750401B1 (en) USB 1.1 over a high speed link
GB2488223A (en) Serial peripheral interface with handshake signals
US8788734B2 (en) Methods and devices for universal serial bus port event extension
US20230315675A1 (en) Techniques for deconflicting usb traffic in an extension environment
US11809358B2 (en) USB device removal and ping intervention in an extension environment
US20220327088A1 (en) Predicting free buffer space in a usb extension environment
US11803498B2 (en) Scheduling techniques for isochronous in traffic in a USB extension environment
CN115129627A (zh) 用于usb扩展系统中iso in端点的缓冲区管理
US20100205334A1 (en) Device wire adapter and communication control method to perform data transfer between wireless USB host and wired USB device
US11995026B2 (en) Techniques for configuring endpoints within a USB extension environment
US20050273541A1 (en) Circuit and method for adaptively recognizing a data packet in a universal serial bus network device
US20230153259A1 (en) Data transmission method and data transmission system

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination