CN101176085B - 在存在长传输延迟的情况下改善usb海量存储设备的性能的方法和装置 - Google Patents
在存在长传输延迟的情况下改善usb海量存储设备的性能的方法和装置 Download PDFInfo
- Publication number
- CN101176085B CN101176085B CN2006800162902A CN200680016290A CN101176085B CN 101176085 B CN101176085 B CN 101176085B CN 2006800162902 A CN2006800162902 A CN 2006800162902A CN 200680016290 A CN200680016290 A CN 200680016290A CN 101176085 B CN101176085 B CN 101176085B
- Authority
- CN
- China
- Prior art keywords
- extender
- data
- usb
- principal computer
- transferred
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4027—Coupling between buses using bus bridges
- G06F13/4045—Coupling between buses using bus bridges where the bus bridge performs an extender function
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Systems (AREA)
Abstract
提供了一种改善通用串行总线海量存储设备的性能的方法和装置,其中邻近主计算机设置的本地扩展器和邻近外围设备设置的远程扩展器结合使用。本地扩展器和远程扩展器单元共同实施即使所述单元之间的传输延迟超过1微秒时仍然能够在所述单元之间有效地传递批量数据的协议。取得性能的改善并不需要改变所述主计算机或所述USB海量存储设备。提供了将USB海量存储设备连接到主机控制器的改进的方法。
Description
技术领域
本发明涉及用于在计算机和使用通用串行总线(USB)端口的设备之间传输信号的方法和装置,尤其涉及用于在所述的计算机和海量存储设备(mass storage device)之间的传输通路显示出显著的时间延迟时使用这些端口操作USB海量存储设备的方法。
背景技术
通用串行总线(USB)是一种被设计成允许一般的使用者将一系列的外围设备连接到个人计算机的技术。该技术支持所有的普通的外围设备,例如键盘、鼠标、扬声器、操纵杆、摄像机、快闪驱动(flashdrive)、硬盘驱动(hard drive)、DVD驱动以及许多其它设备,目前其在计算机方面的使用很普遍。
USB由计算机和通信市场中最大的七家公司的联盟共同创建。这些公司是Intel(英特尔),Compaq(康柏),Microsoft(微软),NorTel,NEC,Digital和IBM。限定USB的规范(例如,Intel等,通用串行总线规范,修订版1.0,1996年1月;更新的修订版1.1,1998年9月23日;再次更新的修订版2.0,2000年4月;以及后来的更新、补充和修改——以下统称为“USB规范”,该术语可以包括将来的修改和修订)不属于私有的,并且由称为USB Forum的开放的工业组织进行管理。USB规范设立多种遵守USB标准必须符合的准则。USB规范也定义了一些术语,它们的定义是为了这个规范而采用的。
然而,与本发明最相关的,是目前所有已知的USB规范都把设备可以与它的主机PC分开的最大距离限制到5米。使用一连串的USB集线器(Hub)——这些设备的目的是支持对象数目的增加而不是距离的增加——理论上,这个距离限制可以增加到30米。然而这种多Hub的解决方案既是昂贵的又是笨拙的。
在美国专利No.6381666中,其内容在此被并入作为参考,提供了一种用于扩展在主机PC和外围设备之间的距离的方法和装置,它能将可用距离增加到100米或更多。虽然这个方法是有益的,但仍然希望提供可替换的和/或改良的方法和装置来实现上述的效果。
限制USB的范围能扩展的程度的主要因素是传输延迟。USB规范允许的从主计算机到设备并返回到主计算机的单次通信的往返延迟的最大周期是约1.5微秒。1.5微秒的往返延迟预算由大约相等的两个部分构成,即在主计算机和设备之间的两个方向上的传输延迟,以及其次是,设备产生期望的响应所需要的换向时间。美国专利No.6381666中描述的该方法除去了对往返延迟的上限的限制。
虽然美国专利No.6381666中描述的该方法能够在扩展的距离上来操作USB海量存储设备,但是,由于用于批量数据传输的协议,所遇到的时间延迟可能过度地长。为了避免或改进这些过度长的传输延迟,希望进一步改善在往返延迟超过原始规定值时USB海量存储设备的性能。
发明内容
因此,虽然US 6381666中描述的扩展USB技术的范围已经被证明是有用的,但仍然希望通过提供用于利用USB规范使海量存储设备在存在长的传输延迟时能够被使用的改进的方法和装置来改进这个技术。
因此,本发明的目的是,提供在存在大于目前在USB规范下所允许的传输延迟的传输延迟的情况下,使符合所述USB规范的海量存储设备能够通信的改进的方法和装置。
本发明的另一个目的是,使传输延迟对所述USB海量存储设备的如通过有效数据传递率测量的性能的影响最小化。
本发明的另一个目的是,不需要对现有的主计算机、集线器和由该系统支持并在USB协议下操作的设备进行硬件或软件改变。因此,本发明可以并入由常规延迟和扩展的延迟设备构成的网络。
本发明的另一个目的是,该装置非常节省成本,与USB工业所针对的最广泛流行的设备一致。
本发明的另一个目的是,为高速(HS)和全速(FS)海量存储设备提供支持。
本发明的另一个目的是,系统自动检测所述USB海量存储设备的存在并选择用于处理所述设备的方法而不用手动干涉或配置。
本发明的这些以及其它目的将在这里变得明显,并且通过本发明来实现,本发明提供了一种方法和相关的装置,其中将主计算机连接到本地扩展器设备,其又连接到与常规USB外围设备相连的远程扩展器设备,其中在主计算机和USB外围设备之间的信号在本地扩展器和/或远程扩展器中被处理,以便允许主计算机和USB外围设备在存在大于USB规范中通常所允许的传输延迟的传输延迟的情况下工作。尤其是,在主计算机和USB外围设备间的往返传输延迟超过1微秒时,本发明是最有用的。
因此,在第一方面中,本发明提供了一种通过本地扩展器和远程扩展器优选经由其中往返延迟超过1微秒的传输系统从外围设备向主计算机传输入站数据流的方法,其中所述主计算机和所述外围设备符合USB规范的要求并且其中所述外围设备优选是海量存储设备,该方法包括:
a)通过将入站数据传递命令发送给所述本地扩展器,使所述本地扩展器将所述命令转送给所述远程扩展器,然后使所述远程扩展器将所述命令转送给所述USB外围设备,将所述命令从所述主计算机转送给所述USB外围设备;
b)通过将所述命令的应答发送给所述远程扩展器,使所述远程扩展器将所述应答转送给所述本地扩展器,然后使所述本地扩展器将所述应答作为转送的应答信号转送给所述主计算机,将所述应答从所述USB外围设备转送给所述主计算机;
c)使所述本地扩展器产生对所述主计算机的否定应答响应直到所述本地扩展器接收到所述转送的应答信号为止;
d)使所述本地扩展器吸收由所述主计算机产生的所述命令的重复直到所述本地扩展器接收到所述转送的应答信号为止;
e)通过将对入站数据分组的请求发送给所述本地扩展器,使所述本地扩展器将所述请求转送给所述远程扩展器,然后使所述远程扩展器将所述请求转送给所述USB外围设备,将所述请求从所述主计算机转送给所述USB外围设备;
f)通过将入站数据分组发送给所述远程扩展器,使所述远程扩展器将所述入站数据分组转送给所述本地扩展器,然后使所述本地扩展器将所述入站数据分组转送给所述主计算机,将所述入站数据分组从所述USB外围设备转送给所述主计算机;
g)在所述远程扩展器接收到每个入站数据分组后,使所述远程扩展器产生对所述USB外围设备的应答响应;
h)使所述本地扩展器产生对所述主计算机的否定应答响应直到所述本地扩展器接收到所述入站数据分组为止;
i)使所述本地扩展器吸收对入站数据分组的所述请求的重复;
j)使所述本地扩展器吸收从所述主计算机接收的应答分组;
k)使所述远程扩展器产生另外的对入站数据分组的请求给所述USB外围设备直到所述入站数据传递命令的要求得到满足为止;
l)通过将对入站数据传递状态的请求发送给所述本地扩展器,使所述本地扩展器将所述请求转送给所述远程扩展器,然后使所述远程扩展器将所述请求转送给所述USB外围设备,将所述请求从所述主计算机转送给所述USB外围设备;
m)通过将所述入站数据传递状态发送给所述远程扩展器,使所述远程扩展器将所述状态转送给所述本地扩展器,然后使所述本地扩展器将所述状态转送给所述主计算机,将所述状态从所述USB外围设备转送给所述主计算机;
n)使所述远程扩展器产生对所述USB外围设备的应答响应;
o)使所述本地扩展器产生对所述主计算机的否定应答响应直到所述本地扩展器接收到所述状态为止;以及
p)使所述本地扩展器吸收对入站数据传递状态的所述请求的重复直到所述本地扩展器接收到所述状态为止。
在另一方面中,本发明提供了一种通过本地扩展器和远程扩展器优选经由其中往返延迟超过1微秒的传输系统从主计算机向外围设备传输出站数据流的方法,其中所述主计算机和所述外围设备符合USB规范的要求并且其中所述外围设备优选是海量存储设备,该方法包括:
a)通过将出站数据传递命令发送给所述本地扩展器,使所述本地扩展器将所述命令转送给所述远程扩展器,然后使所述远程扩展器将所述命令转送给所述USB外围设备,将所述命令从所述主计算机转送给所述USB外围设备;
b)通过将所述命令的应答发送给所述远程扩展器,使所述远程扩展器将所述应答转送给所述本地扩展器,然后使所述本地扩展器将所述应答作为转送的应答信号转送给所述主计算机,将所述应答从所述USB外围设备转送给所述主计算机;
c)使所述本地扩展器产生对所述主计算机的否定应答响应直到所述本地扩展器接收到所述转送的应答信号为止;
d)使所述本地扩展器吸收所述命令的重复直到所述本地扩展器接收到所述转送的应答信号为止;
e)通过将出站数据分组发送给所述本地扩展器,使所述本地扩展器将所述出站数据分组转送给所述远程扩展器,然后使所述远程扩展器将所述出站数据分组转送给所述USB外围设备,将所述出站数据分组从所述主计算机转送给所述USB外围设备;
f)在所述本地扩展器接收到每个出站数据分组后,使所述本地扩展器产生对所述主计算机的应答响应;
g)使所述远程扩展器吸收由所述USB外围设备产生的每个应答响应;
h)通过将对出站数据命令状态的请求发送给所述本地扩展器,使所述本地扩展器将所述请求转送给所述远程扩展器,然后使所述远程扩展器将所述请求转送给所述USB外围设备,将所述请求从所述主计算机转送给所述USB外围设备;
i)通过将所述出站数据命令状态发送给所述远程扩展器,使所述远程扩展器将所述状态转送给所述本地扩展器,然后使所述本地扩展器将所述状态转送给所述主计算机,将所述状态从所述USB外围设备转送给所述主计算机;
j)使所述远程扩展器产生对所述USB外围设备的应答响应;
k)使所述本地扩展器产生对所述主计算机的否定应答响应直到所述本地扩展器接收到所述状态为止;以及
l)使所述本地扩展器吸收对出站数据命令状态的所述请求的重复直到所述本地扩展器接收到所述状态为止。
在另一方面中,本发明还提供了一种用于在存在大于USB规范中通常所允许的传输延迟的传输延迟的情况下在数据传递对话中在主计算机和USB外围设备且优选为海量存储设备之间传输数据的装置,其中所述对话包括:i)命令阶段;ii)数据阶段;和iii)状态阶段;所述装置包括:
a)用于启动所述数据传递对话的主计算机;
b)本地扩展器单元,用于将命令和出站数据分组从所述主计算机转送给所述远程扩展器,以及用于将入站数据、状态和应答分组从所述远程扩展器转送给所述主计算机;
c)数据传输系统,其显示出在所述主计算机和所述USB外围设备之间的大于USB规范中通常允许的传输延迟的传输延迟;
d)远程扩展器单元,用于从所述本地扩展器向所述USB外围设备转送命令和出站数据分组,以及用于从所述USB外围设备向所述本地扩展器转送入站数据、状态和应答分组;
e)能够响应数据传递命令的USB外围设备;
f)在所述本地扩展器单元中的用于产生数据传递应答分组并将所述分组发送给所述主计算机的装置;
g)在所述本地扩展器单元中的用于存储入站数据分组或入站应答分组直到所述主计算机请求这种分组为止的装置;
h)在所述本地扩展器单元中的用于吸收重复的命令、出站数据和状态请求分组的装置;
i)在所述本地扩展器单元中的用于识别数据传递对话何时启动以及所述对话何时结束的装置;
j)在所述远程扩展器单元中的用于产生数据传递应答分组并将所述分组发送给所述USB外围设备的装置;
k)在所述远程扩展器单元中的用于产生对入站数据传递的请求并将所述请求发送给所述USB外围设备的装置;
l)在所述远程扩展器单元中的用于吸收数据传递应答分组的装置;以及
m)在所述远程扩展器单元中的用于识别数据传递对话何时启动以及所述对话何时结束的装置。
在另一方面中,本发明还提供了一种用于确定在主计算机和USB外围设备之间的数据传递对话的边界和性质,尤其是确定数据传递对话是否符合由USB规范定义的仅大量传输协议(Bulk-only TransportProtocol)的方法,该方法包括:
a)通过扩展器单元从USB主机控制器向USB外围设备转送所有的出站分组;
b)通过将每个出站数据分组的结构与USB规范定义的命令块包(CBW)的结构进行比较,来检测数据传递对话的开始;
c)通过将所述出站数据分组的头四个字节与CBW的唯一签名进行比较来校验CBW的检测;
d)通过从由CBW结构定义的CBW标签域读取数据,从所述出站数据分组提取唯一的标签;
e)通过从由CBW结构定义的CBW数据传递长度域读取数据来确定在所述数据传递对话期间要传送的数据的量;
f)通过从由CBW结构定义的CBW标志域读取数据来确定所述数据传递对话的方向。
在另一方面中,本发明还提供了一种用于截取、分析并生成USB分组的装置,其优选用于实施本发明的方法中;所述装置包括:
a)上游收发器,用于接收沿出站方向行进的数据分组并用于传送沿入站方向行进的数据分组;
b)下游收发器,用于接收沿入站方向行进的分组并用于传送沿出站方向行进的数据分组;
c)分组处理器,用于在上游收发器和下游收发器之间转送USB分组,并用于分析在所述USB分组中包含的信息;
d)在所述分组处理器中的用于吸收从所述上游和下游收发器接收的USB分组的装置;
e)在所述分组处理器中的用于存储从所述上游和下游收发器接收的USB分组的装置;
f)在所述分组处理器中的用于分析从所述上游和下游收发器接收的包含在USB分组中的信息的装置;
g)在所述分组处理器中的用于产生USB分组并将所述USB分组转送给所述上游和下游收发器的装置。
优选实施例的描述
在优选实施例中,主计算机可以是任何支持USB规范的标准单元。优选的是,对所述计算机的硬件或软件不需要任何修改。
本地扩展器优选是自给式(self-contained)单元,它通过标准的USB电缆连接到主计算机。
远程扩展器优选是自给式单元,它通过标准的USB电缆连接到USB外围设备。
数据传输系统不局限于任何特定的介质或协议,而是根据本发明在工作时,通常产生在主计算机和USB外围设备之间的超过1微秒的往返传输延迟。
本发明的方法和装置最优选用在这样的系统中,即在该系统中所述主机控制器是PC,所述外围设备是海量存储单元,例如快闪驱动、硬盘驱动、CD/DVD驱动或任何其它的能作为海量存储单元工作的USB设备。这包括任何使用USB批量数据传输协议从主机控制器传递或接收数据的设备。
在扩展器单元的优选实施例中,分组处理器以现场可编程门阵列(FPGA)来实施。
在本地扩展器单元的优选实施例中,上游收发器是标准的USB收发器,下游收发器是无线收发器。
在远程扩展器单元的优选实施例中,上游收发器是无线收发器,下游收发器是标准的USB收发器。
附图说明
下面参考附图对本发明及其各个方面进行详细的说明:
图1是根据USB的系统的框图;
图2是用于在存在长的传输延迟的情况下与USB设备通信的系统的框图;
图3是示出根据现有技术的USB协议的使用图1所示的设置的入站数据传递对话的时序图;
图4是示出根据本发明的入站数据传递对话的时序图;
图5是示出根据现有技术的USB协议的出站数据传递对话的时序图;
图6是示出根据本发明的出站数据传递对话的时序图;
图7是示出根据现有技术的USB协议的USB命令块包的结构的表;
图8是示出根据现有技术的USB协议的USB命令状态包的结构的表;
图9是根据本发明的扩展器单元的框图;
图10是示出根据本发明的扩展器单元的操作的数据流图。
具体实施方式
图1是根据USB规范设计的现有技术系统的框图。根据USB规范,可以通过给中央处理单元(10)配备被称为USB主机控制器(11)的输入/输出单元来装配启用USB的计算机(1)。USB主机控制器(11)根据USB协议执行输入/输出操作,并通过USB电缆(2)与外部的USB外围设备(7)通信。USB电缆的长度不允许超过5米。
图2是根据本发明的在存在有长的传输延迟的情况下在USB设备之间进行通信的系统的框图。在该配置中,主计算机(1)的输入/输出操作由通过标准的USB电缆(2)与所述主计算机连接的本地扩展器(3)截取。优选的是,本地扩展器(3)产生“修改”形式的USB协议,该协议通过传输系统(4)传递给可以与本地扩展器(3)相距延伸的距离设置的远程扩展器(5)。
因而,在本发明的这个实施例中,主计算机(1)和本地扩展器(3)作为独立的单元来装配。对本领域的技术人员来说显然的是,可以使用这些部件的不同组合,并且替换的封装配置是可以的。
远程扩展器(5)从物理介质接收信号,然后,如果需要的话,优选将接收的信号变换为与USB协议兼容的电信号,并通过USB电缆(6)将这些电信号传递给USB外围设备(7)。USB外围设备是快闪存储设备,但可以是如上文描述的任何USB海量存储设备。
当从USB外围设备(7)向主计算机(1)传递信号时,发生相反的过程。
因而,在本发明的这个实施例中,远程扩展器(5)和USB外围设备(7)作为独立的单元来装配。对本领域的技术人员来说显然的是,可以使用这些部件的不同组合,并且替换的封装配置是可以的。
在本发明的一个实施例中,外部传输系统(4)是采用单模光纤电缆的点到点连接,并且在主计算机(1)和USB外围设备(7)之间的往返延迟可以高达例如1毫秒或更多。然而,在其它的实施例中,可以改变外部介质。例如,在本发明的另一个实施例中,外部传输系统(4)可以是无线连接,并且在主计算机(1)和USB外围设备(7)之间的往返延迟可以高达例如100毫秒或更多。在本发明的另一个实施例中,外部传输系统(4)可以是网际连接,并且在主计算机(1)和USB外围设备(7)之间的往返延迟可以高达例如1秒或更多。
因此,对本领域的技术人员来说显然的是,可以使用不同的传输系统,并且相应的往返延迟可以相应地改变。
图3是示出根据USB协议的入站数据传递对话的时序图。该图中所使用的显示格式可归功于Jacobson等人(Ivar Jacobson,Magnus Christerson,Patrick Jonsson和Gunnar Overgaard,Object-Oriented software Engineering(面向对象软件工程):AUse Case Driven Approach(用例驱动方法),Addison-Wesley,1992。)根据协议,入站数据传递对话由三个独立的阶段构成,即命令阶段、数据阶段和状态阶段。
在命令阶段期间,主计算机(1)中的控制逻辑(20)产生入站数据传递的通知,并将所述通知作为OUT分组传送给USB外围设备(7),OUT分组后面是DATA0/1(CBW)分组。所述USB外围设备中的控制逻辑(23)接收所述通知,并通过向所述主计算机返回作为ACK分组的肯定应答发出接受命令的信号。
在所述对话的数据阶段中,主计算机(1)中的控制逻辑(24)产生对入站数据的请求,并将所述请求作为IN分组传送给USB外围设备(7)。所述USB外围设备中的控制逻辑(27)汇集所述请求的入站数据,并将所述数据作为DATA0/1分组传送给所述主计算机。主计算机校验接收的数据的正确性,并使用作为ACK分组的肯定应答向所述USB外围设备作出响应。
所述主计算机中的控制逻辑(24)产生对入站数据的重复请求,直到所需的数据块已经被传递为止。一旦数据阶段结束,系统就移动到状态阶段。
在所述对话的状态阶段中,主计算机(1)中的控制逻辑(28)产生对入站数据传递状态的请求,并将所述请求作为IN分组传送给USB外围设备(7)。所述USB外围设备中的控制逻辑(31)汇集所述请求的入站数据传递状态,并将所述状态作为DATA0/1(CSW)分组传送给所述主计算机。主计算机校验接收的数据的正确性,并使用作为ACK分组的肯定应答向所述USB外围设备作出响应。
图4是示出根据本发明的入站数据传递对话的时序图。入站数据传递对话由三个独立的阶段构成,即命令阶段、数据阶段和状态阶段。
在命令阶段期间,主计算机(1)中的控制逻辑(20)产生入站数据传递的最初通知,并将所述通知作为OUT分组传送给本地扩展器(3),OUT分组后面是DATA0/1(CBW)分组。本地扩展器(3)中的控制逻辑(21)接收所述通知,并将所述通知转送给远程扩展器(5)。控制逻辑(21)还使用作为NAK分组的否定应答向所述主计算机作出响应。远程扩展器(5)中的控制逻辑(22)接收所述通知,并将所述通知转送给USB外围设备(7)。USB外围设备(7)中的控制逻辑(23)接收所述通知,并通过向所述远程扩展器返回作为ACK分组的肯定应答发出接受所述入站数据传递命令的信号。控制逻辑(22)将所述ACK分组转送给所述本地扩展器,在此它通过控制逻辑(21)被存储在存储器中。
在延迟之后,主计算机中的控制逻辑(20)重试入站数据传递的所述最初通知。一接收到入站数据传递的所述重试的通知,本地扩展器中的控制逻辑(21)就从存储器中检索所述存储的ACK分组,并将所述ACK分组返回所述主计算机。这样完成了命令阶段。
在所述对话的数据阶段中,主计算机(1)中的控制逻辑(24)产生对入站数据的最初请求,并将所述请求作为IN分组传送给本地扩展器(3)。本地扩展器(3)中的控制逻辑(25)接收对入站数据的所述请求,并将所述请求转送给远程扩展器(5)。控制逻辑(25)还使用作为NAK分组的否定应答向所述主计算机作出响应。远程扩展器(5)中的控制逻辑(26)接收对入站数据的所述请求,并将所述请求转送给USB外围设备(7)。
USB外围设备(7)中的控制逻辑(27)汇集所述请求的入站数据,并将所述数据作为DATA0/1分组传送给远程扩展器(5)。所述远程扩展器中的控制逻辑(26)校验接收的数据的正确性,并使用作为ACK分组的肯定应答向所述USB外围设备作出响应。控制逻辑(26)将所述DATA0/1分组转送给所述本地扩展器,在此它通过控制逻辑(25)被存储在存储器中。
在延迟之后,主计算机(1)中的控制逻辑(24)重试对入站数据传递的所述最初请求。一接收到对入站数据传递的所述重试的请求,本地扩展器(3)中的控制逻辑(25)就从存储器中检索所述存储的DATA0/1分组,并将所述DATA0/1分组转送给所述主计算机。主计算机校验接收的数据的正确性,并使用作为ACK分组的肯定应答向所述本地扩展器作出响应。
通过远程扩展器(5)中的控制逻辑(26)一接收到第一DATA0/1分组,所述控制逻辑就确定是否需要另外的入站数据分组来完成入站数据传递的所述最初通知。如果确定了需要另外的数据,那么控制逻辑(26)就产生对另外的入站数据的本地请求,并将所述请求作为IN分组转送给USB外围设备(7)。
USB外围设备(7)中的控制逻辑(27)汇集所述另外的入站数据,并将所述数据作为DATA0/1分组传送给远程扩展器(5)。所述远程扩展器中的控制逻辑(26)校验接收的数据的正确性,并使用作为ACK分组的肯定应答向所述USB外围设备作出响应。控制逻辑(26)将所述另外的DATA0/1分组转送给本地扩展器(3),在此它通过控制逻辑(25)被存储在存储器中。
在延迟之后,主计算机(1)中的控制逻辑(24)重试对入站数据传递的所述最初请求。一接收到对入站数据传递的所述重试的请求,本地扩展器(3)中的控制逻辑(25)就从存储器中检索所述存储的另外的DATA0/1分组,并将所述存储的另外的DATA0/1分组转送给所述主计算机。主计算机校验接收的数据的正确性,并使用作为ACK分组的肯定应答向所述本地扩展器作出响应。这个过程重复直到完成入站数据传递的所述最初通知的要求并且数据阶段结束为止。一旦数据阶段结束,系统就移动到状态阶段。
在所述对话的状态阶段中,主计算机(1)中的控制逻辑(28)产生对入站数据传递状态的请求,并将所述请求作为IN分组传送给本地扩展器(3)。所述本地扩展器中的控制逻辑(29)将所述请求转送给远程扩展器(5)并使用作为NAK分组的否定应答向所述主计算机作出响应。
远程扩展器(5)中的控制逻辑(30)将对入站数据传递状态的所述请求转送给USB外围设备(7)。所述USB外围设备中的控制逻辑(31)汇集所述请求的入站数据传递状态,并将所述状态作为DATA0/1(CSW)分组传送给所述远程扩展器。远程扩展器校验接收的数据的正确性,并使用作为ACK分组的肯定应答向所述USB外围设备作出响应。控制逻辑(30)将所述状态作为DATA0/1(CSW)分组转送给本地扩展器(3),在此它通过控制逻辑(29)被存储在存储器中。
在延迟之后,主计算机(1)中的控制逻辑(28)产生对入站数据传递状态的第二请求。一接收到对入站数据传递状态的所述第二请求,本地扩展器(3)中的控制逻辑(29)就从存储器中检索所述存储的DATA0/1(CSW)分组,并将所述存储的DATA0/1(CSW)分组返回给所述主计算机。主计算机校验接收的数据的正确性,并使用作为ACK分组的肯定应答向所述本地扩展器作出响应。本地扩展器吸收所述肯定应答分组。
图5是示出根据USB协议的出站数据传递对话的时序图。所述出站数据传递对话由三个独立的阶段构成:命令阶段、数据阶段和状态阶段。
在命令阶段期间,主计算机(1)中的控制逻辑(20)产生出站数据传递的通知,并将所述通知作为OUT分组传送给USB外围设备(7),OUT分组后面是DATA0/1(CBW)分组。所述USB外围设备中的控制逻辑(23)接收所述通知,并通过向所述主计算机返回作为ACK分组的肯定应答发出命令接受的信号。
在所述对话的数据阶段中,主计算机(1)中的控制逻辑(24)产生出站数据事务,并将所述事务作为OUT/DATA0/1分组传送给USB外围设备(7)。所述USB外围设备中的控制逻辑(27)接受所述出站数据事务,校验接收的数据的正确性,并使用作为ACK分组的肯定应答向所述主计算机作出响应。
主计算机(1)中的控制逻辑(24)产生重复的出站数据事务直到所需的数据块已经被传递为止。一旦数据阶段结束,系统就移动到状态阶段。
在所述对话的状态阶段中,主计算机(1)中的控制逻辑(28)产生对出站数据传递状态的请求,并将所述请求作为IN分组传送给USB外围设备(7)。所述USB外围设备中的控制逻辑(31)汇集所述请求的出站数据传递状态,并将所述状态作为DATA0/1(CSW)分组传送给所述主计算机。主计算机校验接收的数据的正确性,并使用作为ACK分组的肯定应答向所述USB外围设备作出响应。
图6是示出根据本发明的出站数据传递对话的时序图。所述出站数据传递对话由三个独立的阶段构成:命令阶段、数据阶段和状态阶段。
在命令阶段期间,主计算机(1)中的控制逻辑(20)产生出站数据传递的最初通知,并将所述通知作为OUT分组传送给本地扩展器(3),OUT分组后面是DATA0/1(CBW)分组。本地扩展器(3)中的控制逻辑(21)接收所述通知,并将所述通知转送给远程扩展器(5)。控制逻辑(21)还使用作为NAK分组的否定应答向所述主计算机作出响应。远程扩展器(5)中的控制逻辑(22)接收所述通知,并将所述通知转送给USB外围设备(7)。所述USB外围设备中的控制逻辑(23)接收所述通知,并通过向所述远程扩展器返回作为ACK分组的肯定应答发出接受所述入站数据传递命令的信号。控制逻辑(22)将所述ACK分组转送给所述本地扩展器,在此它通过控制逻辑(21)被存储在存储器中。
在延迟之后,主计算机(1)中的控制逻辑(20)重试出站数据传递的所述最初通知。一接收到出站数据传递的所述重试的通知,本地扩展器(3)中的控制逻辑(21)就从存储器中检索所述存储的ACK分组,并将所述ACK分组返回给所述主计算机。这样结束命令阶段。
在所述对话的数据阶段中,主计算机(1)中的控制逻辑(24)产生第一出站数据事务,并将所述事务作为OUT/DATA0/1分组传送给本地扩展器(3)。本地扩展器(3)中的控制逻辑(25)接收所述第一出站数据事务,并将所述事务转送给远程扩展器(5)。控制逻辑(25)还使用作为ACK分组的肯定应答向所述主计算机作出响应。远程扩展器(5)中的控制逻辑(26)接收所述第一出站数据事务,并将所述事务转送给USB外围设备(7)。
USB外围设备(7)中的控制逻辑(27)校验接收的数据的正确性,并使用作为第一ACK分组的肯定应答作出响应。远程扩展器(5)中的控制逻辑(26)吸收所述第一ACK分组。
通过主计算机(1)中的控制逻辑(24)一接收到所述第一ACK分组,所述控制逻辑就确定是否需要另外的出站数据事务来完成出站数据传递的所述最初通知。如果确定了需要另外的数据事务,那么控制逻辑(24)就产生所述另外的出站数据事务,并且该过程重复直到要求得到满足为止。
一旦数据阶段结束,系统就移动到状态阶段。
在所述对话的状态阶段中,主计算机(1)中的控制逻辑(28)产生对出站数据传递状态的请求,并将所述请求转送给本地扩展器(3)。所述本地扩展器中的控制逻辑(29)将所述请求转送给远程扩展器(5),并使用作为NAK分组的否定应答向所述主计算机作出响应。
远程扩展器(5)中的控制逻辑(30)将对出站数据传递状态的所述请求转送给USB外围设备(7)。所述USB外围设备中的控制逻辑(31)汇集所述请求的出站数据传递状态,并将所述状态作为DATA0/1(CSW)分组传送给所述远程扩展器。远程扩展器校验接收的数据的正确性,并使用作为ACK分组的肯定应答向所述USB外围设备作出响应。控制逻辑(30)将所述状态作为DATA0/1(CSW)分组转送给本地扩展器(3),在此它通过控制逻辑(29)被存储在存储器中。
在延迟之后,主计算机(1)中的控制逻辑(28)产生对出站数据传递状态的第二请求。一接收到对出站数据传递状态的所述第二请求,本地扩展器(3)中的控制逻辑(29)就从存储器中检索所述存储的DATA0/1分组,并将所述存储的DATA0/1分组返回给所述主计算机。主计算机校验接收的数据的正确性,并使用作为ACK分组的肯定应答向所述本地扩展器作出响应。本地扩展器吸收所述肯定应答分组。
图7是示出根据现有技术的USB规范的USB命令块包的结构的表。第一列标识USB数据分组的令牌域(token field)后面的数据字节的相对位置。第二列标识相应的数据字节的逻辑内容。由此可以看到,CBW_签名参数占据USB数据分组的令牌域后面的头四个字节(位置0,1,2和3)。
根据现有技术的USB规范,对于属于海量存储类型并实施仅大量传输协议的设备,CBW_签名的值必须是十六进制记数法的43425355。这提供了可以由本发明中提供的扩展器单元检测的唯一值,并且可以用来确定根据USB批量数据传输协议工作的海量存储设备。所述唯一值的检测向所述扩展器单元表明数据传递对话将要开始。
根据现有技术的USB规范,CDW_标签的值由所述USB主机控制器分配以唯一地标识每一单个数据传递对话。所述唯一值的检测使所述扩展器单元能够在同时进行的多个数据传递对话之间进行区分。
根据现有技术的USB规范,CDW_数据传递长度的值规定在当前对话期间要传递的字节的数目。所述数据传递长度的检测使所述扩展器单元能够确定当前对话需要多少数据分组并能检测所述对话何时结束。
根据现有技术的USB规范,CDW_标志域的比特7表明数据传递的方向。所述方向的检测使所述扩展器单元能够选择用于入站或出站数据传递对话的适当算法。
图8是示出根据现有技术的USB规范的USB命令状态包的结构的表。第一列标识USB数据分组的令牌域后面的数据字节的相对位置。第二列标识相应的数据字节的逻辑内容。
再次,根据现有技术的USB规范,对于属于海量存储类型并实施仅大量传输协议的设备,CBW_签名的值必须是十六进制记数法的43425355。这提供了可以由本发明中提供的扩展器单元检测的唯一值。所述唯一值的检测向所述扩展器单元表明数据传递对话结束了。
根据现有技术的USB规范,CDW_标签的值由所述USB主机控制器分配来唯一地标识每一单个数据传递对话。所述唯一值的检测使所述扩展器单元能够在同时进行的多个数据传递对话之间进行区分。
图9是表示根据本发明的扩展器单元(本地或远程)的框图。在该配置中,在上游收发器(61)和下游收发器(63)之间传递的USB业务量通过分组处理器(62)进行路由。通过这种方法,分组处理器(62)能够按照需要转送分组或块分组。所述分组处理器也可以产生分组,并在上游或下游的方向上转送所述产生的分组。所述分组处理器还可以通过该系统检查传输中的分组的内容,并提取数据来控制随后的数据流的操作。
因此,在本发明的这个实施例中,上游收发器(61)、分组处理器(62)和下游收发器(63)被装配为独立的单元。对本领域的技术人员来说显然的是,可以使用这些部件的不同组合,并且替换的封装配置是可以的。
在本发明的一个特定的实施例中,上游收发器(61)是USB收发器,分组处理器(62)是FPGA(现场可编程门阵列),下游收发器(63)是无线收发器。这种配置也可以用来构造无线网络中使用的本地扩展器。
在本发明的又一个实施例中,上游收发器(61)是无线收发器,分组处理器(62)是FPGA,下游收发器(63)是USB收发器。这种配置可以用来构造无线网络中使用的远程扩展器。
图10是示出根据本发明的扩展器单元(本地或远程)的操作的数据流图。通过分别考虑本发明所需要的每个主数据流通路对所述扩展器单元的操作进行描述。然而,在操作中,所述分离的主数据流通路可以同时和/或以任何组合来激活。有四种分离的数据流通路属于本发明的操作。当单个的USB数据分组沿下游方向通过本地扩展器和远程扩展器从主计算机向USB外围设备行进时,第一和第二通路大体上相关。当单个的USB数据分组沿上游方向通过远程扩展器和本地扩展器从USB外围设备向主计算机行进时,第三和第四通路大体上相关。
在第一数据流中,USB数据分组从上游收发器(61)转送给下游收发器(63)。为了执行该操作,各个数据字节通过上游收发器(61)被报告,并通过下游事务处理过程(71)被转送给下游FIFO(72)。而下游转送过程(73)将所述各个数据字节转送给下游收发器(63)。在每个字节通过所述下游事务处理过程(71)转送时,所述过程检查每个字节的内容以提取用于修改控制寄存器(74)的内容的信息。
尤其是,根据现有技术的USB规范,每个分组的第一个字节是表明分组类型的分组标识符(PID)。PID包括IN、OUT、ACK、NAK、DATA0/1和SETUP值。在所述控制寄存器(74)中存储的PID的值可以用来控制整个数据分组的后续处理。更尤其是,如果PID对应于DATA0/1值,那么就会检查后面的字节以检测CBW_签名、CBW_标签、CBW_数据传递长度和CBW_标志信息。
在所述第一数据流的特定情形下,下游事务处理过程(71)检查所述USB数据分组的PID和地址域。所述过程(71)也检查控制寄存器(74)的状态。如果所述过程(71)确定应该吸收数据分组,那么包含所述USB数据分组的数据字节不发送给下游FIFO(72)。
在所述第一数据流的另一情形下,下游事务处理过程(71)检查所述USB数据分组的PID和地址域。所述过程(71)也检查控制寄存器(74)的状态。如果所述过程(71)确定对所述数据分组的回答是必需的,那么过程(71)就会请求上游响应处理过程(81)产生所述回答。
在第二数据流中,将从上游收发器(61)接收的USB数据分组转送给微处理器(76)。为了执行该操作,由上游收发器(61)报告的各个数据字节通过下游事务处理过程(71)被拷贝给请求FIFO(75)。而所述的数据字节由微处理器(76)从请求FIFO(75)中读取。
尤其是,当下游事务处理过程(71)检测到存在SETUP PID时,整个的SETUP分组和后面的DATA0/1分组都拷贝到所述请求FIFO。这个动作改变微处理器(76)以为含有要在上游通路上接收的USB描述符信息的相应的DATA0/1分组做好准备。
在第三数据流中,将USB数据分组从下游收发器(63)转送给上游收发器(61)。为了执行该操作,各个数据字节通过下游收发器(63)被报告并通过上游事务处理过程(77)被转送给上游FIFO(78)。而上游高速缓存(Caching)过程(79)从上游FIFO(78)除去数据字节,并在上游高速缓存(80)中存储所述数据字节。在稍后的时间并且响应于由下游事务处理(71)产生的激励,所述数据字节由上游响应处理过程(81)从上游高速缓存(80)除去,并转送给上游收发器(61)。
在所述第二数据流的特定情形下,上游事务处理过程(77)检查所述USB数据分组的PID域。所述过程(77)还检查控制寄存器(74)的状态。如果所述过程(77)确定应该吸收数据分组,那么包含所述USB数据分组的数据字节不发送给上游FIFO(78)。
在所述第一数据流的另一情形下,上游事务处理过程(77)检查所述USB数据分组的PID域。所述过程(77)还检查控制寄存器(74)的状态。如果所述过程(77)确定对所述数据分组的回答是必需的,那么过程(77)就会请求下游响应处理过程(73)产生所述回答。
在第四数据流中,将从下游收发器(63)接收的USB数据分组转送给微处理器(76)。为了执行该操作,将由下游收发器(63)报告的各个数据字节通过上游事务处理过程(77)拷贝给状态FIFO(82)。而所述的数据字节由微处理器(76)从状态FIFO(82)中读取。
尤其是,当通过下游收发器(63)传输SETUP(获得描述符)命令并且USB外围设备(7)使用嵌在DATA0/1分组中的请求的描述符信息做出响应时,所述请求的描述符信息由微处理器(76)捕获。根据现有技术的USB规范,所述请求的描述符中含有的参数标识所述USB外围设备(7)的接口种类和接口协议。使用微处理器(76)中的算法来隔离所述接口种类和接口协议参数。如果确定了所述USB外围设备(7)的接口种类参数是海量存储种类(08十六进制)以及接口协议是仅大量传输(50十六进制),那么微处理器(76)将控制寄存器(74)设置为启动本发明描述的数据传递对话处理的应用程序。
使用这种方法和装置,能够自动检测USB海量存储设备的存在,从而选择处理主计算机和外围设备之间的数据传递的方法而不用手动干涉或配置。
因此,显然,根据本发明,提供了完全或至少部分地满足上文提出的手段、目的、和对现有技术有优点的USB设备。因此,已经描述了本发明的具体实施例,应当理解本领域的技术人员可以进行替换、修改和改变,并且本说明书旨在包括所有这些落在所附权利要求的范围之内的替换、修改和改变。
此外,为了清楚,除非另作说明,术语“包括”以及类似的术语例如“包含”等等,在本发明的说明书和权利要求中,都没有排除其它的添加物、部件、整数或步骤。
Claims (12)
1.一种经由其中往返延迟超过1微秒的传输系统从外围设备向主计算机传输入站数据流的方法,其中所述主计算机包括USB主机控制器,并且所述外围设备符合USB规范的要求,以及所述外围设备是海量存储装置,以及所述主计算机和所述外围设备通过本地扩展器和远程扩展器,依照USB仅大量传输协议工作,该方法包括:
A)命令阶段包括:
a)通过将入站数据传递命令发送给所述本地扩展器,使所述本地扩展器将所述命令转送给所述远程扩展器,然后使所述远程扩展器将所述命令转送给所述USB外围设备,将所述命令从所述主计算机转送给所述USB外围设备;
b)通过将所述命令的应答发送给所述远程扩展器,使所述远程扩展器将所述应答转送给所述本地扩展器,然后使所述本地扩展器将所述应答作为转送的应答信号转送给所述主计算机,将所述应答从所述USB外围设备转送给所述主计算机;
c)使所述本地扩展器产生对所述主计算机的否定应答响应直到所述本地扩展器接收到所述转送的应答信号为止;
d)使所述本地扩展器吸收由所述主计算机产生的所述命令的重复直到所述本地扩展器接收到所述转送的应答信号为止;
B)数据阶段还包括:
e)通过将对入站数据分组的请求发送给所述本地扩展器,使所述本地扩展器将所述请求转送给所述远程扩展器,然后使所述远程扩展器将所述请求转送给所述USB外围设备,将所述请求从所述主计算机转送给所述USB外围设备;
f)通过将入站数据分组发送给所述远程扩展器,使所述远程扩展器将所述入站数据分组转送给所述本地扩展器,然后使所述本地扩展器将所述入站数据分组转送给所述主计算机,将所述入站数据分组从所述USB外围设备转送给所述主计算机;
g)在所述远程扩展器接收到每个入站数据分组后,使所述远程扩展器产生对所述USB外围设备的应答响应;
h)使所述本地扩展器产生对所述主计算机的否定应答响应直到所述本地扩展器接收到所述入站数据分组为止;
i)使所述本地扩展器吸收对入站数据分组的所述请求的重复;
j)使所述本地扩展器吸收从所述主计算机接收的应答分组;
k)使所述远程扩展器产生另外的对入站数据分组的请求给所述USB外围设备;以及
C)状态阶段包括:
1)通过将对入站数据传递状态的请求发送给所述本地扩展器,使所述本地扩展器将所述请求转送给所述远程扩展器,然后使所述远程扩展器将所述请求转送给所述USB外围设备,将所述请求从所述主计算机转送给所述USB外围设备;
m)通过将所述入站数据传递状态发送给所述远程扩展器,使所述远程扩展器将所述状态转送给所述本地扩展器,然后使所述本地扩展器将所述状态转送给所述主计算机,将所述状态从所述USB外围设备转送给所述主计算机;
n)使所述远程扩展器产生对所述USB外围设备的应答响应;
o)使所述本地扩展器产生对所述主计算机的否定应答响应直到所述本地扩展器接收到所述状态为止;以及
p)使所述本地扩展器吸收对入站数据传递状态的所述请求的重复直到所述本地扩展器接收到所述状态为止,以及
其中在所述数据阶段的步骤k)期间,所述远程扩展器产生所述另外请求直到所述入站数据传递命令的要求得到满足为止。
2.如权利要求1所述的方法,其中通过以下步骤来确定入站数据传递命令的要求已经被满足:
i)使所述本地或远程扩展器通过对每个出站数据分组的结构与USB规范定义的命令块包的结构进行比较来检测数据传递对话的开始;
ii)使所述本地或远程扩展器通过对所述出站数据分组的头四个字节与命令块包的唯一签名进行比较来校验命令块包的检测;
iii)当出站数据分组是命令块包时,使所述本地或远程扩展器通过从由命令块包结构定义的命令块包标签域读取数据,从所述出站数据分组检测唯一的标签;
iv)使所述本地或远程扩展器通过从由命令块包结构定义的命令块包数据传递长度域读取数据来确定在所述数据传递对话期间要传送的数据的数量以从所述出站数据分组检测数据;
v)使所述本地或远程扩展器通过从由命令块包结构定义的命令块包标志域读取数据来确定所述数据传递对话的方向以从所述出站数据分组检测数据。
3.如权利要求1所述的方法,其中所述方法用来自动检测USB海量存储设备的存在,以及用来选择处理所述设备的方法。
4.如权利要求1所述的方法,其中所述海量存储设备是快闪驱动、硬盘驱动或CD/DVD驱动。
5.如权利要求1所述的方法,其中所述海量存储设备是高速(HS)或全速(FS)设备。
6.一种经由其中往返延迟超过1微秒的传输系统从主计算机向外围设备传输出站数据流的方法,其中所述主计算机包括USB主机控制器,并且所述外围设备符合USB规范的要求,以及所述外围设备是海量存储装置,并且所述主计算机和所述外围设备通过本地扩展器和远程扩展器,依照USB仅大量传输协议工作,该方法包括:
A)命令阶段包括:
a)通过将出站数据传递命令发送给所述本地扩展器,使所述本地扩展器将所述命令转送给所述远程扩展器,然后使所述远程扩展器将所述命令转送给所述USB外围设备,将所述命令从所述主计算机转送给所述USB外围设备;
b)通过将所述命令的应答发送给所述远程扩展器,使所述远程扩展器将所述应答转送给所述本地扩展器,然后使所述本地扩展器将所述应答作为转送的应答信号转送给所述主计算机,将所述应答从所述USB外围设备转送给所述主计算机;
c)使所述本地扩展器产生对所述主计算机的否定应答响应直到所述本地扩展器接收到所述转送的应答信号为止;
d)使所述本地扩展器吸收所述命令的重复直到所述本地扩展器接收到所述转送的应答信号为止;
B)数据阶段还包括:e)通过将出站数据分组发送给所述本地扩展器,使所述本地扩展器将所述出站数据分组转送给所述远程扩展器,然后使所述远程扩展器将所述出站数据分组转送给所述USB外围设备,将所述出站数据分组从所述主计算机转送给所述USB外围设备;
f)在所述本地扩展器接收到每个出站数据分组后,使所述本地扩展器产生对所述主计算机的肯定的应答响应;
g)使所述远程扩展器吸收由所述USB外围设备产生的每个应答响应;
C)状态阶段包括:
h)通过将对出站数据命令状态的请求发送给所述本地扩展器,使所述本地扩展器将所述请求转送给所述远程扩展器,然后使所述远程扩展器将所述请求转送给所述USB外围设备,将所述请求从所述主计算机转送给所述USB外围设备;
i)通过将所述出站数据命令状态发送给所述远程扩展器,使所述远程扩展器将所述状态转送给所述本地扩展器,然后使所述本地扩展器将所述状态转送给所述主计算机,将所述状态从所述USB外围设备转送给所述主计算机;
j)使所述远程扩展器产生对所述USB外围设备的应答响应;
k)使所述本地扩展器产生对所述主计算机的否定应答响应直到所述本地扩展器接收到所述状态为止;以及
1)使所述本地扩展器吸收对出站数据命令状态的所述请求的重复直到所述本地扩展器接收到所述状态为止,以及
其中在所述数据阶段的步骤f)和g)期间,所述本地扩展器产生所述肯定应答响应,以及所述远程扩展器吸收所述应答响应,直到所述出站数据传递命令的要求得到满足。
7.如权利要求6所述的方法,其中所述本地或远程扩展器通过以下步骤确定所述入站数据流的边界和性质以确定所述出站数据流的要求:
i)使所述本地或远程扩展器通过将每个出站数据分组的结构与USB规范定义的命令块包的结构进行比较来检测数据传递对话的开始;
ii)使所述本地或远程扩展器通过将所述出站数据分组的头四个字节与命令块包的唯一签名进行比较来校验命令块包的检测;
iii)当出站数据分组是命令块包时,使所述本地或远程扩展器通过从由命令块包结构定义的命令块包标签域读取数据,从所述出站数据分组检测唯一的标签;
iv)使所述本地或远程扩展器通过从由命令块包结构定义的命令块包数据传递长度域读取数据来确定在所述数据传递对话期间要传送的数据的量以从所述出站数据分组检测数据;
v)使所述本地或远程扩展器通过从由命令块包结构定义的命令块包标志域读取数据来确定所述数据传递对话的方向以从所述出站数据分组检测数据。
8.如权利要求7所述的方法,其中所述方法用来自动检测USB海量存储设备的存在,以及用来选择处理所述设备的方法。
9.如权利要求6所述的方法,其中所述海量存储设备是快闪驱动、硬盘驱动或CD/DVD驱动。
10.如权利要求6所述的方法,其中所述海量存储设备是高速(HS)或全速(FS)设备。
11.一种用于在存在大于USB规范中通常所允许的传输延迟的传输延迟的情况下在具有USB主机控制器的主计算机和USB外围设备之间传输数据的装置,其中所述外围设备符合USB规范的要求,以及所述外围设备是海量存储设备,并且所述主计算机和所述外围设备依照USB仅大量传输协议工作;所述装置包括:
a)用于启动入站或出站的数据传递对话的主计算机,所述对话包括:i)命令阶段;ii)数据阶段;和iii)状态阶段;
b)本地扩展器单元,用于将命令和出站数据分组从所述主计算机转送给所述远程扩展器,以及用于将入站数据、状态和应答分组从所述远程扩展器转送给所述主计算机;
c)数据传输系统,其显示出大于1微秒的传输延迟;
d)远程扩展器单元,用于从所述本地扩展器向所述USB外围设备转送命令和出站数据分组,以及用于从所述USB外围设备向所述本地扩展器转送入站数据、状态和应答分组;
e)能够响应数据传递命令的USB外围设备;
f)在所述本地扩展器单元中的用于产生数据传递应答分组并将所述分组发送给所述主计算机的设备;
g)在所述本地扩展器单元中的用于存储入站数据分组或入站应答分组直到所述主计算机请求这种分组的设备;
h)在所述本地扩展器单元中的用于吸收重复的命令、出站数据和状态请求分组的设备;
i)在所述远程扩展器单元中的用于产生数据传递应答分组以及将所述分组发送到所述USB外围设备的设备;
j)在所述远程扩展器单元中的用于产生入站数据传递请求并将所述请求发送给所述USB外围设备的设备;
k)在所述远程扩展器单元中的用于吸收数据传递的应答分组的设备。
12.如权利要求11所述的装置,其中所述海量存储设备是快闪驱动、硬盘驱动或CD/DVD驱动。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/076,993 US7640378B2 (en) | 2005-03-11 | 2005-03-11 | Method and apparatus for improving the performance of USB mass storage devices in the presence of long transmission delays |
US11/076,993 | 2005-03-11 | ||
PCT/CA2006/000447 WO2006094412A1 (en) | 2005-03-11 | 2006-03-10 | Method and apparatus for improving the performance of usb mass storage devices in the presence of long transmission delays |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101176085A CN101176085A (zh) | 2008-05-07 |
CN101176085B true CN101176085B (zh) | 2011-08-10 |
Family
ID=36952927
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2006800162902A Active CN101176085B (zh) | 2005-03-11 | 2006-03-10 | 在存在长传输延迟的情况下改善usb海量存储设备的性能的方法和装置 |
Country Status (8)
Country | Link |
---|---|
US (1) | US7640378B2 (zh) |
EP (1) | EP1866778B1 (zh) |
JP (1) | JP5103371B2 (zh) |
CN (1) | CN101176085B (zh) |
AT (1) | ATE532140T1 (zh) |
AU (1) | AU2006222461B2 (zh) |
CA (1) | CA2600419C (zh) |
WO (1) | WO2006094412A1 (zh) |
Families Citing this family (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8161220B2 (en) * | 2005-11-18 | 2012-04-17 | Vetra Systems Corporation | Method and apparatus for enhancing universal serial bus applications |
US7418524B2 (en) * | 2005-12-06 | 2008-08-26 | Avocent Corporation | Universal serial bus (USB) extension |
US7587536B2 (en) * | 2006-07-28 | 2009-09-08 | Icron Technologies Corporation | Method and apparatus for distributing USB hub functions across a network |
US20080052429A1 (en) * | 2006-08-28 | 2008-02-28 | Tableau, Llc | Off-board computational resources |
US20080052490A1 (en) * | 2006-08-28 | 2008-02-28 | Tableau, Llc | Computational resource array |
US20080052525A1 (en) * | 2006-08-28 | 2008-02-28 | Tableau, Llc | Password recovery |
US20080126472A1 (en) * | 2006-08-28 | 2008-05-29 | Tableau, Llc | Computer communication |
TW200844841A (en) * | 2007-05-10 | 2008-11-16 | Realtek Semiconductor Corp | Method for expediting data access of universal serial bus stoarage device |
US8364863B2 (en) * | 2008-07-11 | 2013-01-29 | Intel Corporation | Method and apparatus for universal serial bus (USB) command queuing |
US7818486B2 (en) * | 2008-08-15 | 2010-10-19 | Icron Technologies Corporation | Method and apparatus for connecting USB devices to a remote computer |
US8560754B2 (en) | 2010-09-17 | 2013-10-15 | Lsi Corporation | Fully integrated, low area universal serial bus device transceiver |
CN101963947B (zh) * | 2010-09-30 | 2013-10-02 | 威盛电子股份有限公司 | 通用序列总线传输转译器及大量传输方法 |
US8566934B2 (en) | 2011-01-21 | 2013-10-22 | Gigavation, Inc. | Apparatus and method for enhancing security of data on a host computing device and a peripheral device |
GB2506803B (en) | 2011-08-10 | 2020-07-01 | Srivastava Gita | Apparatus and method for enhancing security of data on a host computing device and a peripheral device |
US9087163B2 (en) * | 2012-07-11 | 2015-07-21 | Silicon Image, Inc. | Transmission of multiple protocol data elements via an interface utilizing a data tunnel |
US20140149611A1 (en) * | 2012-11-26 | 2014-05-29 | Qualcomm Incorporated | CHANNEL CONDITION AWARE USB DATA DELIVERY OVER Wi-Fi WITH DIFFERENTIAL TREATMENT ON DISTINCT USB ENDPOINTS |
US9081722B2 (en) * | 2012-12-11 | 2015-07-14 | Vmware, Inc. | Systems and methods for improving performance of remote USB storage |
US9524260B2 (en) * | 2014-06-18 | 2016-12-20 | Qualcomm Incorporated | Universal serial bus (USB) communication systems and methods |
US9311504B2 (en) | 2014-06-23 | 2016-04-12 | Ivo Welch | Anti-identity-theft method and hardware database device |
CN104123258A (zh) * | 2014-07-23 | 2014-10-29 | 龙迅半导体科技(合肥)有限公司 | 一种usb数据传输接口及系统 |
WO2016208038A1 (ja) * | 2015-06-25 | 2016-12-29 | ザインエレクトロニクス株式会社 | ホスト側送受信装置および送受信システム |
US10037297B2 (en) * | 2015-12-30 | 2018-07-31 | Aten International Co., Ltd. | Method of extending range of USB transmission for isochronous transfer |
MX2022012563A (es) * | 2020-04-07 | 2022-11-07 | Huawei Tech Co Ltd | Metodo de transmision de datos de acuerdo con protocolo de circuito inter-integrado y aparato de transmision. |
US11520728B2 (en) | 2020-07-22 | 2022-12-06 | Icron Technologies Corporation | Techniques for configuring endpoints within a USB extension environment |
Family Cites Families (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5588140A (en) | 1993-03-15 | 1996-12-24 | Computer Network Technology Corporation | Transparent extension of peripheral from host |
US5797028A (en) | 1995-09-11 | 1998-08-18 | Advanced Micro Devices, Inc. | Computer system having an improved digital and analog configuration |
US5781747A (en) | 1995-11-14 | 1998-07-14 | Mesa Ridge Technologies, Inc. | Method and apparatus for extending the signal path of a peripheral component interconnect bus to a remote location |
US5799041A (en) | 1996-02-05 | 1998-08-25 | Xinex Networks Inc. | Network for multimedia asynchronous transfer mode digital signal transmission and components thereof |
US5878221A (en) | 1996-02-05 | 1999-03-02 | Xinex Networks Inc. | Network for multimedia asynchronous transfer mode digital signal transmission and components thereof |
US5784581A (en) | 1996-05-03 | 1998-07-21 | Intel Corporation | Apparatus and method for operating a peripheral device as either a master device or a slave device |
US5890015A (en) | 1996-12-20 | 1999-03-30 | Intel Corporation | Method and apparatus for implementing a wireless universal serial bus host controller by interfacing a universal serial bus hub as a universal serial bus device |
US5983073A (en) | 1997-04-04 | 1999-11-09 | Ditzik; Richard J. | Modular notebook and PDA computer systems for personal computing and wireless communications |
US6185641B1 (en) | 1997-05-01 | 2001-02-06 | Standard Microsystems Corp. | Dynamically allocating space in RAM shared between multiple USB endpoints and USB host |
JP3045985B2 (ja) * | 1997-08-07 | 2000-05-29 | インターナショナル・ビジネス・マシーンズ・コーポレイション | 接続確立方法、通信方法、状態変化伝達方法、状態変化実行方法、無線装置、無線デバイス、及びコンピュータ |
US6308215B1 (en) * | 1997-12-22 | 2001-10-23 | Robert J. Kolbet | Extender apparatus for USB connection of computer units |
US6311294B1 (en) * | 1998-10-20 | 2001-10-30 | Cypress Semiconductor Corp. | Device and method for efficient bulk data retrieval using a universal serial bus |
US6389029B1 (en) | 1998-11-10 | 2002-05-14 | Nortel Networks Limited | Local area network incorporating universal serial bus protocol |
JP2000183920A (ja) | 1998-12-21 | 2000-06-30 | Matsushita Electric Ind Co Ltd | Usb情報伝送装置 |
WO2000049507A1 (en) | 1999-02-19 | 2000-08-24 | Icron Systems Inc. | Method and apparatus for extending the range of the universal serial bus protocol |
WO2000067103A1 (en) | 1999-04-30 | 2000-11-09 | Daniel Kelvin Jackson | Method and apparatus for extending communications over usb |
US6965614B1 (en) | 1999-11-12 | 2005-11-15 | Nortel Networks Limited | Method and system for communications between different types of devices |
US6718412B2 (en) * | 2000-12-14 | 2004-04-06 | Agilent Technologies, Inc. | Apparatus and method for universal serial bus communications |
US6886062B2 (en) * | 2001-03-30 | 2005-04-26 | Intel Corporation | Method and apparatus for improving time constraints and extending limited length cables in a multiple-speed bus |
CA2345596C (en) | 2001-04-27 | 2007-12-04 | Icron Systems Inc. | Method and apparatus for extending the range of the universal serial bus protocol |
JP3680762B2 (ja) * | 2001-05-14 | 2005-08-10 | セイコーエプソン株式会社 | データ転送制御装置及び電子機器 |
JP3870717B2 (ja) * | 2001-05-14 | 2007-01-24 | セイコーエプソン株式会社 | データ転送制御装置及び電子機器 |
JP3775318B2 (ja) * | 2002-03-20 | 2006-05-17 | セイコーエプソン株式会社 | データ転送制御装置及び電子機器 |
US7080189B1 (en) * | 2002-05-31 | 2006-07-18 | Cypress Semiconductor Corp. | USB device communication |
US7159065B1 (en) * | 2002-06-20 | 2007-01-02 | Cypress Semiconductor Corporation | Method for issuing vendor specific requests for accessing ASIC configuration and descriptor memory while still using a mass storage class driver |
US6993620B2 (en) * | 2003-06-13 | 2006-01-31 | Hewlett-Packard Development Company, L.P. | User resource sharing through the USB interface |
JP4282401B2 (ja) * | 2003-07-29 | 2009-06-24 | Tdk株式会社 | フラッシュメモリの制御回路、並びに、この制御回路を備えるメモリコントローラ及びフラッシュメモリシステム |
-
2005
- 2005-03-11 US US11/076,993 patent/US7640378B2/en active Active
-
2006
- 2006-03-10 WO PCT/CA2006/000447 patent/WO2006094412A1/en active Application Filing
- 2006-03-10 CA CA2600419A patent/CA2600419C/en not_active Expired - Fee Related
- 2006-03-10 EP EP06721712A patent/EP1866778B1/en active Active
- 2006-03-10 AT AT06721712T patent/ATE532140T1/de active
- 2006-03-10 JP JP2008500023A patent/JP5103371B2/ja active Active
- 2006-03-10 AU AU2006222461A patent/AU2006222461B2/en not_active Ceased
- 2006-03-10 CN CN2006800162902A patent/CN101176085B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
US7640378B2 (en) | 2009-12-29 |
JP2008533572A (ja) | 2008-08-21 |
AU2006222461A1 (en) | 2006-09-14 |
CA2600419A1 (en) | 2006-09-14 |
AU2006222461B2 (en) | 2012-03-15 |
ATE532140T1 (de) | 2011-11-15 |
EP1866778A1 (en) | 2007-12-19 |
EP1866778B1 (en) | 2011-11-02 |
CA2600419C (en) | 2014-07-08 |
WO2006094412A1 (en) | 2006-09-14 |
US20060206636A1 (en) | 2006-09-14 |
CN101176085A (zh) | 2008-05-07 |
EP1866778A4 (en) | 2008-05-07 |
JP5103371B2 (ja) | 2012-12-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101176085B (zh) | 在存在长传输延迟的情况下改善usb海量存储设备的性能的方法和装置 | |
CN1595381B (zh) | 桥控制器、桥和操作该桥的方法 | |
CN100481043C (zh) | 用于处理输入/输出命令的方法、系统和程序 | |
KR101035832B1 (ko) | 집적 종단점 장치와, 집적 pci 익스프레스 종단점 장치및 pci 익스프레스 통신 시스템 | |
CN100385426C (zh) | 基于通用串行总线的pc闪存盘的体系结构 | |
CN103530269B (zh) | 通用串行总线传输转译器及微帧同步方法 | |
US5255376A (en) | Method and apparatus for supporting a dual bit length protocol for data transfers | |
CN101963947B (zh) | 通用序列总线传输转译器及大量传输方法 | |
US7698493B2 (en) | Methods and apparatus for translating write request messages in a computing system | |
US6801970B2 (en) | Priority transaction support on the PCI-X bus | |
CN111092830A (zh) | 一种pcie交换芯片端口配置系统和方法 | |
US8074232B2 (en) | Method for improving the communication of the human interface device | |
US7096290B2 (en) | On-chip high speed data interface | |
Kwon et al. | Gen-z memory pool system architecture | |
CN100361108C (zh) | 配置总线上的组件进行输入/输出操作的方法、系统和设备 | |
TWI225988B (en) | Apparatus provided with USB host/hub and method for controlling the same | |
CN111400230A (zh) | 数据传输方法、系统、控制设备及存储介质 | |
CN1705929B (zh) | 用于将数据返回给通过总线接收的读请求的方法和系统 | |
CN101261611A (zh) | 一种外围设备间的数据传输装置和传输方法 | |
CN104346310A (zh) | 一种高性能i2c从机数据交换电路及方法 | |
CN108829622A (zh) | 基于FPGA实现的上位机与InterBus模块的通讯结构及通讯方法 | |
CN101976230A (zh) | 通用序列总线传输转译器及输入请求同步传输方法 | |
CN100507883C (zh) | 不兼容处理平台间控制通用串行总线装置的方法 | |
CN104636081B (zh) | 数据存储系统以及其管理方法 | |
CN105022705B (zh) | 一种设备间的数据共享的方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |