CN115129627A - 用于usb扩展系统中iso in端点的缓冲区管理 - Google Patents

用于usb扩展系统中iso in端点的缓冲区管理 Download PDF

Info

Publication number
CN115129627A
CN115129627A CN202210330090.5A CN202210330090A CN115129627A CN 115129627 A CN115129627 A CN 115129627A CN 202210330090 A CN202210330090 A CN 202210330090A CN 115129627 A CN115129627 A CN 115129627A
Authority
CN
China
Prior art keywords
usb
endpoint
port device
port
message
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
CN202210330090.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 CN115129627A publication Critical patent/CN115129627A/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
    • 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/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1673Details of memory controller using buffers
    • 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
    • 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/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4027Coupling between buses using bus bridges
    • G06F13/405Coupling between buses using bus bridges where the bridge performs a synchronising function
    • G06F13/4059Coupling between buses using bus bridges where the bridge performs a synchronising function where the synchronisation uses buffers, e.g. for speed matching between buses
    • 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/40Bus structure
    • G06F13/4063Device-to-bus coupling
    • G06F13/4068Electrical coupling
    • 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/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus

Landscapes

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

Abstract

提供了一种用于在将主机设备耦合到一个或多个USB设备的USB扩展环境中使用的端口设备。该端口设备包括:USB物理层接口,该USB物理层接口被配置为耦合到USB设备、主机设备或USB集线器设备;远程接口,该远程接口被配置为耦合到扩展介质;以及端点表。该端口设备包括逻辑,该逻辑响应于由该端口设备执行而使该端口设备执行包括以下各项的动作:接收寻址到第一端点的第一USB消息;响应于确定该端点表指示该第一端点是活动的,提供该第一USB消息以发送到该第一端点;以及响应于确定该端点表指示该第一端点是不活动的,提供合成USB消息以发送到该主机设备。

Description

用于USB扩展系统中ISO IN端点的缓冲区管理
相关申请的交叉引用
本申请要求于2021年3月29日提交的临时申请号63/167532的权益,该临时申请的全部披露内容出于所有目的通过引用并入本文。
背景技术
USB是外围接口,其用于附接各种计算设备,如个人计算机、数字电话线、监视器、调制解调器、鼠标、打印机、扫描仪、游戏控制器、键盘、存储设备等。定义USB的规范(例如,2000年4月,Intel等人,Universal Serial Bus Specification[通用串行总线规范],修订版2.0;于2008年11月更新为修订版3.0;2013年7月以通用串行总线3.1规范修订版1.0发布;2017年9月22日以通用串行总线3.2规范修订版1.0发布,以及向后兼容的后续更新和修改(包括但不限于串行总线4.0规范)——以下统称为“USB规范”,该术语可以包括未来的修改和修订)是非专有的并且由被称为USB论坛(USB Forum)的开放行业组织管理。USB规范建立了为符合USB标准而必须满足的基本标准。本领域的普通技术人员将从USB规范中认识到本文中的许多术语。除非另有说明,否则这些术语在本文中的使用方式与其在USB规范中的使用方式类似。
在USB规范的修订版3.2下,提供了使用5Gbps(第1代)或10Gbps(第2代)信号传输速率的超高速(SuperSpeed)连接。虽然该规范没有规定任何特定的最大电缆长度,但实际上,时序规定和信号传输技术要求用于主机与设备之间的超高速连接的常规铜电缆至多为3米长,以正确支持超高速连接。因此,需要新的技术来任选地允许将超高速USB设备扩展到与其所耦合的主机相距更远的距离,使得可以在主机与USB设备之间传播超高速USB分组。
发明内容
提供本发明内容以便以简化形式介绍将在下文具体实施方式中进一步描述的一系列概念。本发明内容并非旨在指明所要求保护的主题的关键特征,也并非旨在用于帮助确定所要求保护的主题的范围。
在一些实施例中,提供了一种用于在将主机设备耦合到一个或多个USB设备的USB扩展环境中使用的端口设备。该端口设备包括USB物理层接口、远程接口和端点表。该USB物理层接口被配置为耦合到USB设备、主机设备或USB集线器设备。该远程接口被配置为耦合到扩展介质。该端口设备还包括逻辑,该逻辑响应于由该端口设备执行而使该端口设备进行包括以下各项的动作:接收寻址到第一端点的第一USB消息;响应于确定该端点表指示该第一端点是活动的,提供该第一USB消息以发送到该第一端点;以及响应于确定该端点表指示该第一端点是不活动的,提供合成USB消息以发送到该主机设备。
在一些实施例中,提供了一种在USB扩展环境中执行的方法。端口设备接收由主机设备生成并寻址到第一端点的第一USB消息。响应于确定由该端口设备维护的端点表指示该第一端点是活动的,该端口设备提供该第一USB消息以发送到该第一端点。响应于确定该端点表指示该第一端点是不活动的,该端口设备提供合成USB消息以发送到该主机设备。
在一些实施例中,提供了一种非暂态计算机可读介质,其上存储有计算机可执行指令。这些指令响应于由端口设备的一个或多个处理器执行而使该端口设备执行包括以下各项的动作:由该端口设备接收由主机设备生成并寻址到第一端点的第一USB消息;响应于确定由该端口设备维护的端点表指示该第一端点是活动的,由该端口设备提供该第一USB消息以发送到该第一端点;以及响应于确定该端点表指示该第一端点是不活动的,由该端口设备提供合成USB消息以发送到该主机设备。
附图说明
通过结合附图参考以下详细描述,将更易于认识到并更好地理解上述方面以及本发明的许多附带特征,在附图中:
图1是展示了根据本披露内容的各个实施例的用于扩展USB通信的系统的非限制性示例实施例的框图。
图2是展示了图1所展示的上游USB扩展设备和下游USB扩展设备的进一步细节的框图。
图3是展示了根据本披露内容的各个方面的端口设备的示例性实施例的框图。
图4A至图4B是展示了根据本披露内容的各个方面的在扩展环境中管理USB端点的方法的非限制性示例实施例的流程图。
具体实施方式
图1是展示了根据本披露内容的各个方面的用于扩展USB通信的系统100的非限制性示例实施例的框图。系统100包括主机设备102和USB设备108。传统上,主机设备102和USB设备108将会经由USB电缆直接连接,并且将会经由符合USB规范(如USB 1.0、USB 1.1、USB2.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(也称为面向上游的端口设备或UFP设备),并且USB设备108经由USB协议连接到下游USB扩展设备106(也称为面向下游的端口设备或DFP设备)。UFP设备104与DFP设备106经由扩展介质110(如网络)通信地耦合,该扩展介质可以将主机设备102与USB设备108之间的距离增加到超过USB规范所支持的距离。扩展介质110和其上的通信可以包括任何合适的联网技术(如以太网、蓝牙、WiFi、WiMax、互联网、光纤点对点发送等)和任何合适的通信介质(如经由物理电缆、经由光纤电缆、经由无线频谱等)。
在一些实施例中,UFP设备104和DFP设备106彼此的距离可能恰好比短USB要求距离更近,和/或可以通过电缆而不是经由网络直接连接,但是保留克服主机设备102与USB设备108之间增加的等待时间的能力,该增加的等待时间是由于使用不符合USB规范的扩展介质110而引入的。
由UFP设备104和DFP设备106提供的一个特征是该UFP设备和该DFP设备对主机设备102和USB设备108隐藏了扩展介质110的存在。换言之,UFP设备104和DFP设备106处置通过扩展介质110进行的通信并且补偿由此引入的任何附加等待时间,但是主机设备102和USB设备108表现得好像它们经由符合USB规范的连接来直接连接一样。相应地,主机设备102和USB设备108可以经由UFP设备104和DFP设备106进行通信,而无需在主机设备102或USB设备108上重新配置任何非标准软件或硬件。
图2是展示了图1所展示的UFP设备104和DFP设备106的进一步细节的框图。UFP设备104包括面向上游的端口202,并且DFP设备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总线通信量。UFP设备104和DFP设备106可以包含另外的部件,如电源、状态LED、扬声器、用于在UFP功能与DFP功能之间切换的输入设备等。由于这种部件及其功能是本领域普通技术人员所熟悉的,因此在本文中尚未进一步讨论这些部件及其功能。
如图2所展示的,UFP设备104的面向上游的端口202连接到主机设备102的面向下游的端口,并且DFP设备106的面向下游的端口204连接到USB设备108的面向上游的端口。在其他实施例中,UFP设备104的面向上游的端口202可以连接到除主机设备102所提供的面向下游的端口以外的面向下游的端口,如集线器的面向下游的端口等。同样,在其他实施例中,DFP设备106的面向下游的端口204可以连接到除USB设备108所提供的面向上游的端口以外的面向上游的端口,如集线器的面向上游的端口等。下文的讨论主要是关于图2中所展示的简单拓扑,但是本领域的普通技术人员将认识到,在一些实施例中,在不脱离本披露内容的范围的情况下可以在其他拓扑中使用类似技术。
图3是展示了根据本披露内容的各个方面的端口设备300的示例性实施例的框图。在一些实施例中,端口设备300可以被构造成提供面向上游的端口202的服务,并且在一些实施例中,端口设备300可以被构造成提供面向下游的端口204的服务。在一些实施例中,端口设备300可以包括用于提供面向上游的端口202和面向下游的端口204两者的服务的指令,其中,所提供的特定端口服务由如跳线开关、固件设置等用户配置确定。
如所展示的,端口设备300包括协议引擎304、USB物理层接口306、远程接口302、一组缓冲区310以及端点表314。在一些实施例中,协议引擎304可以被配置为提供和/或执行下面所讨论的逻辑、以及用于通过扩展介质110提供USB通信扩展的附加逻辑。协议引擎304可以指示USB物理层接口306将适当的电信号施加到USB物理层以便与USB设备108或主机设备102通信。同样,协议引擎304可以指示远程接口302与远程USB扩展设备交换信息。
在一些实施例中,该组缓冲区310用于支持与由一个或多个USB设备108提供的端点的通信。通常,UFP设备104与DFP设备106之间经由扩展介质110进行的通信经历大于USB规范所允许的等待时间量。为了支持主机设备102与USB设备108之间的无缝USB通信,端口设备300以各种方式使用该组缓冲区310来高速缓存数据,从而克服扩展介质110上增加的等待时间所引入的复杂性。在美国专利号10,552,355中描述了端口设备300如何可以使用缓冲区来克服由扩展介质上的等待时间引入的复杂性的一些非限制性示例,该专利的全部披露内容出于所有目的通过引用并入本文。
已经发现,为了最好地支持等时端点,每个等时端点都应该指配给它自己的缓冲区,而其他类型的端点可以共享一个公共缓冲区。相应地,该组缓冲区310包括共享缓冲区312和一组等时通信缓冲区(ISO缓冲区),该组等时通信缓冲区包括ISO缓冲区一308a、ISO缓冲区二308b和ISO缓冲区N 308c。所展示的该组的三个等时通信缓冲区仅是示例并且不应被视为限制性的。在其他实施例中,该组等时通信缓冲区可以包括多于或少于三个的等时通信缓冲区。
在一些实施例中,协议引擎304使用端点表314来跟踪由一个或多个USB设备108提供并由主机设备102管理的端点的配置。在一些实施例中,端点表314包括针对由主机设备102配置的每个端点的条目。端点表314中的每个条目包括USB标准信息,包括但不限于端点支持的传输类型(例如,控制、中断、批量或等时)、端点支持的传输方向(例如,输入或输出)以及端点的地址。通过跟踪端点表314中端点的配置,协议引擎304可以有效地为主机设备102生成的不同类型的消息提供不同类型的处理。
端点表314中的每个条目还包括该组缓冲区310中用于与端点通信的缓冲区(如果有的话)的指示,以及该端点在扩展环境内是活动的还是不活动的的指示。该指示与该端点在USB设备108上是活动的还是不活动的是分开的,而是指示端口设备300将如何处理与端点通信的尝试,如下文进一步描述的。
在一些实施例中,协议引擎304和/或缓冲区310和/或端点表314可以在如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扩展设备的其他某个部件执行。
在连接给定USB设备108时,主机设备102枚举由给定USB设备108提供的包括任何等时通信端点在内的所有端点,以便填充由主机设备102维护的端点表。UFP设备104和DFP设备106监在该端点枚举期间使用的主机设备102与USB设备108之间的CONTROL(控制)测消息,使得端点表314可以与主机设备102维护的端点表保持同步。
因为端口设备300提供有限数量的ISO缓冲区,所以与扩展环境之外的主机设备102支持的数量相比,UFP设备104和DFP设备106可以支持更少数量的并发等时通信端点(每个等时通信缓冲区支持一个等时通信端点)。相应地,在一些部署中,用户可以连接USB设备108,该USB设备提供比该组缓冲区310中的等时通信缓冲区的数量所能支持的更多的等时通信端点。这产生了技术问题,即UFP设备104和DFP设备106允许主机设备102枚举并向主机设备102的端点表添加比UFP设备104和DFP设备106所支持的更多的等时通信端点。
尽管一些简单的解决方案可以避免这个问题,如阻止主机设备102枚举不受支持数量的等时通信端点,但是这些简单的解决方案由于多种原因是次优的。例如,主机设备102仅在给定USB设备108第一次连接时枚举给定USB设备108上的端点。相应地,如果等时通信缓冲区在给定USB设备108第一次连接时不可用但稍后变得可用,则不会通知主机设备102它应该重新枚举给定USB设备108的端点,并且给定USB设备108将不起作用。同样,如果仅枚举给定USB设备108上的非等时端点,则主机设备102的用户可能会感到困惑。所需要的是允许枚举所有等时通信端点的技术,即使等时通信缓冲区不可用于服务所有等时通信端点。
图4A至图4B是展示了根据本披露内容的各个方面的在扩展环境中管理USB端点的方法的非限制性示例实施例的流程图。在方法400中,UFP设备104和DFP设备106允许主机设备102枚举USB设备108提供的所有端点,但是对于未指配给等时通信缓冲区的等时通信端点,UFP设备104和DFP设备106响应于数据请求而向主机设备102提供合成USB消息。这使得那些端点在主机设备102看来是不活动的或者没有任何数据要发送。与仅隐藏端点相比,这是优选的,因为这些端点将对主机设备102可见,并且因为在一些实施例中,这些端点可以稍后被指配给将来变得可用的等时通信缓冲区,从而允许主机设备102与端点正常通信。
在图4A和图4B中,动作主要被描述为由端口设备300执行。通常,端口设备300将是UFP设备104的端口设备300,因为UFP设备104经由符合USB规范的连接耦合到主机设备102,并且是扩展环境中从主机设备102接收端点枚举消息的第一设备。在这样的实施例中,USB消息将由端口设备300从USB物理层接口306接收。然而,在一些实施例中,端口设备300可以是DFP设备106的端口设备300。在那些实施例中,USB消息将由端口设备300从远程接口302接收。在一些实施例中,方法400(或其部分)可以由UFP设备104的端口设备300和DFP设备106的端口设备300两者来执行。
方法400从开始框前进到框402,在该框中,端口设备300接收与第一USB端点的配置相关联的一个或多个USB消息。为了配置第一USB端点,主机设备102发送寻址到第一USB端点的一个或多个CONTROL消息。相应地,端口设备300可以检测与配置第一USB端点相关联的CONTROL消息。在端口设备300是UFP设备104的一部分的实施例中,端口设备300经由USB物理层接口306接收USB消息。在端口设备300是DFP设备106的一部分的实施例中,端口设备300经由远程接口302接收USB消息。
在框404中,端口设备300的协议引擎304在端口设备300的端点表314中创建或更新与第一USB端点相关联的条目。协议引擎304基于从寻址到第一USB端点的一个或多个CONTROL消息中提取的信息来创建或更新条目。如上所述,提取的用于创建或更新条目的信息可以包括USB标准信息,该USB标准信息包括但不限于端点支持的传输类型、端点支持的传输方向、以及端点的地址。如果条目尚未与第一USB端点相关联,则协议引擎304创建条目以保存提取的信息。如果条目与第一USB端点相关联,则协议引擎304用提取的信息来更新现有条目。
在框406中,协议引擎304确定第一USB端点是否是ISO IN端点,即旨在将信息从第一USB端点传输到主机设备102的等时通信端点。该确定可以基于从USB消息中提取的信息是否指示第一USB端点是ISO in端点。
如果确定第一USB端点是ISO IN端点,则决策框408的结果为是(YES),并且方法400前进到框410。在框410处,协议引擎304确定ISO缓冲区308a至308c是否可用。协议引擎304可以使用任何合适的技术来确定ISO缓冲区308a至308c是否可用。例如,协议引擎304可以对端点表314中针对ISO IN端点的条目的数量进行计数,并且可以将该条目数量与ISO缓冲区308a至308c的数量进行比较,并且如果条目的数量少于ISO缓冲区308a至308c的数量,则可以确定ISO缓冲区308a至308c可用。作为另一个示例,协议引擎304可以维护已使用的ISO缓冲区308a至308c的单独计数器,并且如果已使用的ISO缓冲区308a至308c的计数器小于ISO缓冲区308a至308c的数量,则可以确定ISO缓冲区308a至308c可用。作为又另一示例,可以维护长度与ISO缓冲区308a至308c的数量相匹配的位向量,并且位向量中的每个位置可以用作独热(one-hot)标志,该独热标志使用最小逻辑来指示对应的ISO缓冲区是否正在使用中。
如果确定ISO缓冲区308a至308c可用,则决策框412的结果为是(YES),并且方法400前进到框414。在框414处,协议引擎304将端点表314中与第一USB端点相关联的条目更新为引用将由第一USB端点使用的空闲ISO缓冲区。例如,如果空闲ISO缓冲区是ISO缓冲区一308a,则协议引擎304将与第一USB端点相关联的条目更新为引用ISO缓冲区一308a。在框416处,协议引擎304将端点表314中与第一USB端点相关联的条目更新为活动的。该“活动”状态是扩展环境内部的,并且与第一USB端点根据USB规范是否处于活动状态是分开的。稍后将在方法400中使用扩展环境“活动”状态,如图4B所示。在框416之后,方法400前进到延续端子(“端子B”)。
返回到决策框412,如果确定ISO缓冲区308a至308c不可用,则决策框412的结果为否(NO),并且方法400前进到框418。在框418处,协议引擎304将端点表314中与第一USB端点相关联的条目更新为不活动的。再次,该“不活动”状态是扩展环境内部的,并且与第一USB端点根据USB规范是否处于活动状态是分开的。与“活动”状态一样,稍后将在方法400中使用扩展环境内的“不活动”状态,如图4B所示。在框418之后,方法400前进到延续端子(“端子B”)。
返回到决策框408,如果确定第一USB端点不是ISO IN端点,则决策框408的结果为否(NO),并且方法400前进到框420。在框420处,协议引擎304将端口设备300的端点表314中与第一USB端点相关联的条目更新为与共享缓冲区312相关联且是活动的。与框416和框418中的动作一样,在框420中建立的“活动”状态是扩展环境内部的,并且与第一USB端点根据USB规范是否处于活动状态是分开的。在一些实施例中,协议引擎304不将与第一端点相关联的条目更新为与共享缓冲区312相关联,而是协议引擎304假设端点表314中不是ISO IN端点的任何端点都使用共享缓冲区312。在框420之后,方法400前进到延续端子(“端子B”)。
方法400从端子B(图4B)前进到框422。在框422处,端口设备300提供一个或多个USB消息以供进一步处理。在端口设备300是UFP设备104的一部分的实施例中,进一步处理可以包括准备和发送该一个或多个USB消息以由远程接口302经由扩展介质110发送到DFP设备106。在端口设备300是DFP设备106的一部分的实施例中,进一步处理可以包括准备和发送该一个或多个USB消息以由USB物理层接口306使用符合USB规范的技术发送到第一USB端点。
方法400从框422通过延续端子(“端子C”)前进,然后到框424。在框424处,端口设备300接收寻址到给定端点的后续USB消息。给定端点可以是与第一USB端点相同的端点,或者可以是在端点表314中为其建立条目的不同USB端点。术语“第一”、“后续”和“给定”用于在流程图及其描述中消除歧义,而不应被视为限于任何特定类型的USB消息或USB端点。
在框426中,协议引擎304确定后续USB消息是否与给定端点的配置相关联,如第一USB消息一样,而不是与数据传输相关。如果后续USB消息与给定端点的配置相关联,则决策框428的结果为是(YES),并且方法400返回到端子A和框404,在该框中,后续USB消息将被如针对框402的一个或多个USB消息所描述的那样处理。
否则,如果确定后续USB消息不与给定端点的配置相关联,则决策框428的结果为否(NO),并且方法400前进到框430。在框430处,协议引擎304基于端点表314中给定端点的相关联条目协议来确定给定端点是否是活动的。也就是说,协议引擎304检查端点表314中给定端点的条目,以确定扩展环境内部的状态是被记录为“活动”(端点已被指配给该组缓冲区310中的缓冲区)还是说扩展环境内部的状态被记录为“不活动”(端点尚未指配给该组缓冲区310中的缓冲区)。
如果确定给定端点在扩展环境中是活动的,则决策框432的结果为是(YES),并且方法400前进到框434。在框434处,协议引擎304提供后续USB消息,以使用端点表314中的相关联条目中引用的缓冲区进行处理。例如,如果端口设备300是UFP设备104的一部分,则协议引擎304可以提供后续USB消息以进行处理,该处理将准备后续USB消息并将其经由远程接口302和扩展介质110发送到DFP设备106。作为另一个示例,如果端口设备300是DFP设备106的一部分,则协议引擎304可以提供后续USB消息以进行处理,该处理将准备后续USB消息并将其经由USB物理层接口306发送到给定端点。方法400然后进行到端子C以处理下一个USB消息。
返回到决策框432,如果确定给定端点在扩展环境中是不活动的,则决策框432的结果为否(NO),并且方法400前进到框436。在框436处,协议引擎304响应于后续USB消息而生成合成USB消息并将其提供给主机设备。术语“合成”指的是合成USB消息完全由协议引擎304生成的事实,而不是表示由给定端点生成的USB消息。在一些实施例中,合成USB消息是具有零长度数据的分组或空分组。协议引擎304响应于后续USB消息而经由USB物理层接口306(在端口设备300位于UFP设备104中的实施例中)或经由远程接口302(在端口设备300位于DFP设备106中的实施例中)发送合成USB消息。
在接收到合成USB消息时,主机设备102将合成USB消息处理为对后续USB消息的合法响应,并将该合成USB消息视为给定端点没有发送任何数据。虽然给定端点将不起作用,但主机设备102上的端点表以及UFP设备104和DFP设备106上的端点表314将保持同步,并且托管给定端点的USB设备108上的其他活动端点将按预期运行。相应地,整个系统100将保持比完全阻止枚举不活动端点的情况更稳定,并且将获得改善的体验。
在框436之后,方法400进行到端子C以处理下一个USB消息。方法400在系统100保持活动时无限期地运行,并且可以在系统100的一个或多个部件断电、停用或与系统100通信解耦时停止。
尽管已经展示并描述了说明性实施例,但将认识到的是,在不脱离本发明的精神和范围的情况下,可以在其中进行各种改变。例如,尽管上文没有展示或描述,但在一些实施例中,协议引擎304可以继续监测端点的配置并检测先前已指配给ISO缓冲区308a至308c的等时通信端点何时被停用(因为主机USB设备108的断开连接,或者因为由主机设备102应用的配置)。在检测到该停用时,协议引擎304可以将先前在端点表314中记录为不活动的等时通信端点重新指配给新空闲的ISO缓冲区308a至308c,并且可以在端点表314中将等时通信端点的状态从不活动的改变为活动的。
作为另一个示例,上述描述表明协议引擎304在端点表314中显式地记录每个端点的活动或不活动状态。在一些实施例中,协议引擎304不记录单独的一条数据来指示活动或不活动状态。而是,协议引擎304可以记录该组缓冲区310中指配给每个端点的缓冲区,并且如果没有可用的ISO缓冲区308a至308c,则协议引擎304可以在指配的缓冲区的记录中留下空值。以此方式,可以基于是否已为端点指配缓冲区来隐式地确定活动或不活动状态,并且可以节省少量存储空间。

Claims (10)

1.一种在USB扩展环境中执行的方法,该方法包括:
由端口设备接收由主机设备生成并寻址到第一端点的第一USB消息;
响应于确定由该端口设备维护的端点表指示该第一端点是活动的,由该端口设备提供该第一USB消息以发送到该第一端点;以及
响应于确定该端点表指示该第一端点是不活动的,由该端口设备提供合成USB消息以发送到该主机设备。
2.如权利要求1所述的方法,进一步包括:
由该端口设备接收与等时通信端点的配置相关联的第二USB消息;以及
由该端口设备在该端点表中创建与该等时通信端点相关联的条目。
3.如权利要求2所述的方法,进一步包括:
由该端口设备确定该端口设备的等时通信缓冲区是否能够指配给该等时通信端点;
响应于确定等时通信缓冲区可用,由该端口设备将该端点表中与该等时通信端点相关联的该条目更新为引用该等时通信缓冲区并指示该等时通信端点是活动的;以及
响应于确定等时通信缓冲区不可用,由该端口设备将该端点表中与该等时通信端点相关联的条目更新为指示该等时通信端点是不活动的。
4.如权利要求1所述的方法,进一步包括:
由该端口设备接收与第二端点的配置相关联的第三USB消息,其中,该第二端点的类型是除等时通信端点之外的类型;
由该端口设备在该端点表中创建与该第二端点相关联的条目,该条目引用该端口设备的共享缓冲区并指示该第二端点是活动的。
5.如权利要求1所述的方法,其中,提供该合成USB消息以发送到该主机设备包括提供具有零长度数据的分组以发送到该主机设备。
6.如权利要求1所述的方法,其中,接收该第一USB消息包括由该端口设备经由远程接口接收该第一USB消息;并且
其中,由该端口设备提供该合成USB消息以发送到该主机设备包括由该端口设备向该远程接口提供该合成USB消息。
7.如权利要求1所述的方法,其中,接收该第一USB消息包括由该端口设备经由USB物理层接口接收该第一USB消息;并且
其中,由该端口设备提供该合成USB消息以发送到该主机设备包括由该端口设备向该USB物理层接口提供该合成USB消息。
8.一种用于在将主机设备耦合到一个或多个USB设备的USB扩展环境中使用的端口设备,该端口设备包括:
USB物理层接口,该USB物理层接口被配置为耦合到USB设备、主机设备或USB集线器设备;
远程接口,该远程接口被配置为耦合到扩展介质;
一个或多个等时通信缓冲区;
共享缓冲区;
端点表;以及
逻辑,该逻辑响应于由该端口设备执行而使该端口设备执行如权利要求1至7中任一项所述的方法。
9.如权利要求8所述的端口设备,其中,该远程接口包括光纤接口、以太网接口和无线接口中的一种或多种。
10.如权利要求8所述的端口设备,其中,该端口设备是上游USB扩展设备或下游USB扩展设备的一部分。
CN202210330090.5A 2021-03-29 2022-03-28 用于usb扩展系统中iso in端点的缓冲区管理 Pending CN115129627A (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US202163167532P 2021-03-29 2021-03-29
US63/167,532 2021-03-29
US17/704,560 2022-03-25
US17/704,560 US11809354B2 (en) 2021-03-29 2022-03-25 Buffer management for ISO in endpoints in USB extension systems

Publications (1)

Publication Number Publication Date
CN115129627A true CN115129627A (zh) 2022-09-30

Family

ID=83363370

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210330090.5A Pending CN115129627A (zh) 2021-03-29 2022-03-28 用于usb扩展系统中iso in端点的缓冲区管理

Country Status (2)

Country Link
US (1) US11809354B2 (zh)
CN (1) CN115129627A (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20230119332A1 (en) * 2021-10-18 2023-04-20 Celerity Technologies Inc. Usb connector for fiber optic cable and related usb extender

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8504707B2 (en) * 2004-12-07 2013-08-06 Cisco Technology, Inc. Method and system for sending and receiving USB messages over a data network
EP2870540A1 (en) * 2012-07-05 2015-05-13 Omron Management Center of America, Inc. Method and apparatus for usb signaling via intermediate transports
US9910817B2 (en) * 2014-03-04 2018-03-06 Black Diamond Video, Inc. Apparatus, system, and method for allowing USB devices to communicate over a network
US10261569B2 (en) * 2015-05-01 2019-04-16 Qualcomm Incorporated Universal serial bus (USB) host and client devices for supporting scheduled low-power operations
US10037297B2 (en) * 2015-12-30 2018-07-31 Aten International Co., Ltd. Method of extending range of USB transmission for isochronous transfer
US20180329855A1 (en) 2017-05-12 2018-11-15 Intel Corporation Alternate protocol negotiation in a high performance interconnect
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

Also Published As

Publication number Publication date
US20220309016A1 (en) 2022-09-29
US11809354B2 (en) 2023-11-07

Similar Documents

Publication Publication Date Title
US11403246B2 (en) Methods and devices for extending USB 3.0-compliant communication over an extension medium
US7246189B2 (en) Method and apparatus for enhancing universal serial bus
US9129064B2 (en) USB 3.0 link layer timer adjustment to extend distance
US8161220B2 (en) Method and apparatus for enhancing universal serial bus applications
CN114077563A (zh) 多端口i/o混合系统中的系统功率管理
US20120054389A1 (en) USB To I2C And SPI Bridge
US8788734B2 (en) Methods and devices for universal serial bus port event extension
CN103490931A (zh) 一种不中断业务升级过程中协议不中断的方法和装置
CN115129627A (zh) 用于usb扩展系统中iso in端点的缓冲区管理
US20220327088A1 (en) Predicting free buffer space in a usb extension environment
US11809358B2 (en) USB device removal and ping intervention in an extension environment
US8954623B2 (en) Universal Serial Bus devices supporting super speed and non-super speed connections for communication with a host device and methods using the same
CN114253886A (zh) 用于化解扩展环境中的usb流量的冲突的技术
US11520728B2 (en) Techniques for configuring endpoints within a USB extension environment
US11995026B2 (en) Techniques for configuring endpoints within a USB extension environment
WO2023060928A1 (zh) 一种与PCIe设备通信的方法、装置及系统
US20210318975A1 (en) Providing I3C Communications Of Multiple Data Lines Via A Universal Serial Bus
US11803498B2 (en) Scheduling techniques for isochronous in traffic in a USB extension environment
CN115237827A (zh) 一种管理系统、处理芯片、装置、设备及方法

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