通用序列总线传输转译器及大量传输方法

文档序号:6334083阅读:199来源:国知局
专利名称:通用序列总线传输转译器及大量传输方法
技术领域
本发明涉及一种通用序列总线(Universal Serial Bus,USB),特别是关于 一种USB 3.0传输转译器(U3TT)及相关的输入/输出请求(IN/OUT)大量传输(bulk transaction) 去。
背景技术
通用序列总线(USB)为一种周边装置(以下简称”装置”)的标准,用以提供装 置(device)和主机(host)之间的通讯。2008年公开了通用序列总线(USB)3.0,其缆线 如图IA所示。USB 3.0除了提供相容于USB 2. 0的一对数据路径D+/D-,还提供二对超速 (SuperSpeed)数据路径 SSTX+/SSTX-及 SSRX+/SSRX-。当USB 2.0装置连接至USB 3. 0主机时,将会以非超速的数据路径D+/D-来进行 通讯。为了让USB 2.0装置能够升级为类似USB 3.0装置,以提升其数据传送速度,本案申 请人曾于中国专利申请第201010129143. 4号申请案中揭示了一种通用序列总线(USB) 3. 0 的传输转译器(transactiontranslator)(简称"U3TT”) 10,如图IB所示,其连接于USB 3. 0 主机12与USB 2. 0装置14之间,用以提升USB 2. 0装置14的通讯效能。通用序列总线(USB)提供四种信息传送(transfer)型态控制传送(control transfer)、大量传送(bulk transfer)、中断 I专送(interrupttransfer)及同步传送 (isochronous transfer)。其中,大量传送主要适用于大量储存(mass storage)装置,例 如快闪存储器(flash),用以传送大量数据于主机与装置之间。此种传送型态是利用任何 可用的带宽(bandwidth),且于发生传送错误时会进行重传(retry of transfer) 0换句话 说,大量传送型态会保证数据的正确性,但不保证带宽(或传送速率)。图2A显示使用USB 3.0传输转译器(U3TT)以进行输入请求(IN)大量传输 的流程图。首先,于步骤201,USB 3.0主机发送输入请求(IN)确认分组(acknowledge packet)给传输转译器(U3TT)。传输转译器(U3TT)则于步骤202回应否定确认(negative acknowledge)分组NRDY(not ready)给USB 3. 0主机。接着,于步骤203,传输转译器 (U3TT)将USB 3. 0规范的输入请求(IN)确认分组转译为USB 2. 0规范的输入请求(IN)标 记分组(token packet)并发送给USB 2.0装置。USB 2. 0装置则于步骤204回应数据给传 输转译器(U3TT)。接下来,于步骤205,传输转译器(U3TT)发送端点(endpoint)确认分组 ERDY(endpoint ready)给USB 3. 0主机。USB 3. 0主机于步骤206再次发送输入请求(IN) 确认分组给传输转译器(U3TT),而传输转译器(U3TT)则于步骤207回应数据给USB 3. 0主 机。上述流程中,除了步骤203及204外,其余步骤都没有使用到USB 2.0的总线,因而造 成系统效能的低落。图2B显示使用USB 3. 0传输转译器(U3TT)以进行输出请求(OUT)大量传输的流 程图。首先,于步骤211,USB 3. 0主机发送数据给传输转译器(U3TT)。传输转译器(U3TT)则 于步骤 212 回应否定确认(negativeacknowledge)分组NRDY (not ready)给USB 3.0 主机。 接着,于步骤213,传输转译器(U3TT)将USB 3. 0规范的数据转译为USB 2.0规范的数据并
4发送给USB 2.0装置。USB 2.0装置则于步骤214发送确认分组ACK给传输转译器(U3TT)。 接下来,于步骤215,传输转译器(U3TT)发送端点(endpoint)确认分组ERDY(endp0int ready)给USB 3. 0主机。USB 3. 0主机于步骤216再次发送数据给传输转译器(U3TT),而 传输转译器(U3TT)则于步骤217发送确认分组给USB 3. 0主机。上述流程中,除了步骤 213及214外,其余步骤都没有使用到USB 2. 0的总线,因而造成系统效能的低落为了提升USB 2.0总线带宽的使用效能,因此亟需提出一种改良的传输转译器 (U3TT)及新颖的输入/输出请求(IN/OUT)大量传输方法,以提高USB 2. 0总线带宽的利用 率。

发明内容
鉴于上述,本发明实施例的目的之一在于提出一种USB 3.0传输转译器(U3TT)及 一种输入/输出请求(IN/OUT)大量传输方法,其可大量地增进USB 2.0总线带宽的利用率。根据本发明实施例,通用序列总线(USB)传输转译器包含装置接口、主机接口、至 少二缓冲存储器及控制器。装置接口藉由装置总线连接至一装置,而主机接口藉由主机总 线连接至一主机,其中,主机所规范的USB版本高于装置所规范的USB版本。缓冲存储器设 置于装置接口和主机接口之间,用以储存数据。控制器将数据交替储存于缓冲存储器。于 进行输入请求(IN)大量传输(bulk transaction)时,控制器于主机发送输入请求(IN)分 组之前即自装置预取(pre-fetch)数据而储存于缓冲存储器,直到所有缓冲存储器皆存满 或者已达请求数据长度为止;并于主机发送输入请求(IN)分组之后,控制器将预取数据回 应给主机。于进行输出请求(OUT)大量传输时,控制器于主机发送数据后,将其储存于缓冲 存储器,再将数据后写入(post-write)至装置。根据本发明另一实施例所揭露的通用序列总线(USB)的输入请求(IN)大量传输 (bulk transaction)方法,首先,主机发送一输入请求(IN)命令给传输转译器(U3TT),并 暂存该输入请求(IN)命令。传输转译器(U3TT)根据输入请求(IN)命令,发送一输入请求 (IN)标记分组(tokenpacket)给装置,其中,主机所规范的USB版本高于装置所规范的USB 版本。接着,装置回应数据给传输转译器,且交替储存得自装置的数据于至少二缓冲存储 器,直到所有缓冲存储器皆存满或者已达请求数据长度为止。当主机发送一输入请求(IN) 确认分组(acknowledge packet)给传输转译器时,传输转译器即将储存于缓冲存储器的数 据传送给主机。根据本发明又一实施例所揭示的通用序列总线(USB)的输出请求(OUT)大量传输 (bulk transaction)方法,首先,主机发送数据给传输转译器(U3TT),并将数据交替储存于 至少二缓冲存储器。接着,传输转译器(U3TT)将缓冲存储器的数据发送给装置。当所有缓 冲存储器都已存满时,则传输转译器(U3TT)发送一否定确认(negative acknowledge)分 组给主机,以停止主机继续发送数据;否则,传输转译器(U3TT)发送一端点(endpoint)确 认分组给主机,用以重新开始自主机接收数据。


图IA显示通用序列总线(USB) 3. 0的缆线。
图IB的方块图显示USB 3. 0传输转译器(U3TT)连接至USB 3. 0主机及USB 2. 0
直ο图2A显示使用USB 3. O传输转译器(U3TT)以进行输入请求(IN)大量传输的流 程图。图2B显示使用USB 3. O传输转译器(U3TT)以进行输出请求(OUT)大量传输的流 程图。图3的方块图显示本发明实施例的通用序列总线(USB) 3. O传输转译器(U3TT),用 以进行输入/输出请求(IN/OUT)的大量传输(bulktransaction)。图4显示本发明实施例的输入请求(IN)大量传输(bulk transaction)的流程图。图5显示本发明实施例的输出请求(OUT)大量传输(bulk transaction)的流程 图。附图符号说明
10USB 3.0传输转译器(U3TT)
12USB 3.0主机
14USB 2.0装置
201-207步骤
211-217步骤
30USB 3.0传输转译器(U3TT)
301USB 2.0接口
302USB 2.0总线
303USB 3.0接口
304USB 3.0总线
305A第一缓冲存储器
305B第二缓冲存储器
306寄存器
307控制器
32USB 3.0主机
34USB 2.0装置
401-410步骤
501-505步骤
具体实施例方式
图3的方块图显示本发明实施例的通用序列总线(USB) 3. O传输转译器(U3TT) 30, 用以进行USB 3. O主机32和USB 2. O装置34之间的转译,以及输入/输出请求(IN/0UT) 的大量传输(bulk transaction)。传输转译器(U3TT) 30各组成方块的连接关系并不限定 于图3所示。本实施例虽以USB 3.0传输转译器(U3TT) 30为例,然而本发明也可适用于将 来通用序列总线(USB)的更高版本。图3所示的传输转译器(U3TT)30仅显示与本发明相 关的组成方块,其余细节可参考前述本案申请人的另一申请案内容。关于USB 2.0及USB 3. O的细节可分别参考“通用序列总线规格书(Universal Serial Bus Specification)”及“通用序列总线 3.0 规格书(Universal Serial Bus 3.0 Specification),,。在本实施例中,传输转译器(U3TT)30包含USB 2.0接口( “装置接口”) 301,其藉 由USB 2. 0总线(“装置总线”)302而连接至装置34,作为传输转译器(U3TT) 30和装置34 之间的信号接口。此外,传输转译器(U3TT)30还包含USB 3.0接口(”主机接口”)303,其 藉由USB 3.0总线(”主机总线”)304而连接至主机32,作为传输转译器(U3TT)30和主机 32之间的信号接口。根据本发明实施例的特征之一,传输转译器(U3TT)30包含二缓冲存储器 (buffer)第一缓冲存储器305A和第二缓冲存储器305B,设置于USB 2. 0接口 301和USB 3.0接口 303之间,用以储存数据。控制器307会将数据储存于其中一个缓冲存储器(例 如第一缓冲存储器305A),当存满以后,再将数据储存于另一个缓冲存储器(例如第二缓冲 存储器305B);当二缓冲存储器305A/305B都存满后,则停止储存,以避免数据被覆盖。使 用此种交替(alternate)储存方式的缓冲存储器305A/305B也可称为乒乓(ping-pong)缓 冲存储器。本实施例虽以二缓冲存储器305A/305B作为例示,然而也可扩展至三个或以上 的缓冲存储器,依相同原则进行交替储存。再者,第一缓冲存储器305A和第二缓冲存储器 305B的大小不一定要相同,其可根据实际应用情形作不同的调整。当进行输入请求(IN)大量传输时,传输转译器(U3TT)30还包含寄存器 (register) 306,用以记录USB 3. 0主机32的输入请求(IN)的数据长度。再者,传输转译器 (U3TT)30的控制器307不但用以进行转译,还用来控制上述其他组成方块的操作与协调。图4显示本发明实施例的输入请求(IN)大量传输(bulk transaction)的流程图。 首先,于步骤401,USB 3. 0主机32发送输入请求(IN)命令给传输转译器(U3TT) 30。在本实 施例中,大量传输的进行是根据唯一大量传输(bulk-only transport,Β0Τ)规范,其细节可 参考“通用序列总线储存类-唯一大量传输(Universal Serial Bus Storage Class-Bulk OnlyTransport) ”规格书。根据此规范,USB 3. 0主机32发送命令区块分组(Command Block Wrapper, CBff)给传输转译器(U3TT)30。命令区块分组(CBW)的内容至少包含有输出入型 态(亦即,输入或输出请求)、数据长度及数据地址。于步骤402,传输转译器(U3TT)30会 将命令区块分组(CBW)暂存于寄存器306。接着,于步骤403,不论是否接收到主机32所发送的输入请求(IN)确认分组 (acknowledge packet),传输转译器(U3TT) 30都会根据装置34的数据长度而发送输入请 求(IN)标记分组(token packet)给装置34。于步骤404,装置34回应数据给传输转译器(U3TT)30。得自装置34的数据藉由 控制器307的控制而交替储存于第一缓冲存储器305A和第二缓冲存储器305B。当所有 缓冲存储器305A/305B都存满后,控制器307即不再发送输入请求(IN)标记分组(token packet)给装置34,以避免数据被覆盖。于步骤405,当主机32发送输入请求(IN)确认分组(acknowledg印acket)给传 输转译器(U3TT) 30时,如果缓冲存储器305A/305B内存在有效数据(步骤406),则传输转 译器(U3TT)30会将预取(pre-fetch)而储存于缓冲存储器305A/305B的数据直接传送给 主机32 (步骤407)。如果缓冲存储器305A/305B内不存在有效数据(步骤406),则传输转 译器(U3TT) 30 回应否定确认(negative acknowledge)分组 NRDY (not ready)给 USB 3.0 主机(步骤408)。直到获得有效数据后,传输转译器(U3TT)30发送端点(endpoint)确认
7分组ERDY(endp0int ready)给主机32 (步骤409),接着,主机32发送输入请求(IN)确认 分组给传输转译器(U3TT)30(步骤405),而传输转译器(U3TT) 30则将有效数据回应给主机 32 (步骤407)。最后,依据唯一大量传输(BOT)规范,装置34发送命令状态分组(Command Status Wrapper, CSff)给传输转译器(U3TT) 30 (步骤410),以确认传输成功。由于数据系 先储存于缓冲存储器305A/305B再传送给主机32,因此,本实施例的传送方法也可称为输 入请求(IN)的预取(pre-fetch)大量传输(bulk transaction)方法。上述缓冲存储器305A/305B于进行数据储存时,控制器307会依据寄存器306所 暂存的数据长度以监测缓冲存储器305A/305B。当达到数据长度时,则控制器307会停止发 送输入请求(IN)标记分组(token packet)给装置34,因而不再继续从装置34取得数据。根据上述实施例,由于USB 3.0总线304的带宽远大于USB 2.0总线302的带 宽,因此缓冲存储器305A/305B内的数据很快地就传送给主机32,空出来的缓冲存储器 305A/305B即可一直从装置34取得数据。因此,可以大量提升USB 2. 0总线302的带宽利 用率。上述缓冲存储器305A/305B的数据可以使用USB 2. 0规范格式来储存,并于读取 时才进行格式的转译(亦即,从USB 2.0转译为USB 3.0)。反之,上述数据于储存之前也可 以先进行转译,并于读取时直接进行传送。图5显示本发明实施例的输出请求(OUT)大量传输(bulk transaction)的流程 图。于进行输出请求(OUT)大量传输时,不需使用图3所示传输转译器(U3TT)30的寄存器 306。此外,输入请求(IN)与输出请求(OUT)可使用相同的缓冲存储器305A/305B,也可使 用各自的缓冲存储器,因而可以同时进行输入及输出的操作。首先,于步骤501,主机32发送数据给传输转译器(U3TT)30。控制器307将数据交 替储存于第一缓冲存储器305A和第二缓冲存储器305B。例如,当第一缓冲存储器305A存 满后,则将数据继续储存于第二缓冲存储器305B。同时,于步骤502,传输转译器(U3TT)30 的控制器307将缓冲存储器305A/305B的数据发送给装置34。由于USB 3. 0总线304的 带宽远大于USB 2. 0总线302的带宽,因此缓冲存储器305A/305B很快就存满了,此时在 控制器307的控制下,传输转译器(U3TT)30发送否定确认(negativeacknowledge)分组 NRDY (not ready)给主机32 (步骤503),以停止主机32继续发送数据,以避免覆盖缓冲存 储器305A/305B内的数据。由于数据系先储存于缓冲存储器305A/305B,之后再传送给装置 34,因此,本实施例的传送方法也可称为输出请求(OUT)之后写入(post-write)大量传输 (bulk transaction)卞法。当有一个缓冲存储器503A或503B空出来以后(步骤504),传输转译器(U3TT) 30 发送端点(endpoint)确认分组ERDY (endpoint ready)给主机32 (步骤505),因而重新开 始接收主机32所传送的数据(步骤501)。根据上述实施例,由于USB 3. 0总线304的带宽远大于USB 2. 0总线302的带宽, 因此当其中一个缓冲存储器305A或305B空了以后,即可藉由USB 3. 0总线304很快地加 以填满。藉此,大部分时间中,至少有一个缓冲存储器305A/305B具有效数据而得以传送给 装置34,因而大量提升USB 2. 0总线302的带宽利用率。类似于输入请求(IN)大量传输的情形,上述缓冲存储器305A/305B的数据可以使 用USB 3.0规范格式来储存,并于读取时才进行格式的转译(亦即,从USB 3.0转译为USB
82. 0)。反之,上述数据于储存之前也可以先进行转译,并于读取时直接进行传送。
以上所述仅为本发明的较佳实施例而已,并非用以限定本发明的申请专利范围; 凡其它未脱离发明所揭示的精神下所完成的等效改变或修饰,均应包含在本发明的权利要 求的范围内。
权利要求
一种通用序列总线传输转译器,包含一装置接口,其藉由一装置总线连接至一装置;一主机接口,其藉由一主机总线连接至一主机,该主机所规范的通用序列总线版本高于该装置所规范的通用序列总线版本;至少二缓冲存储器,设置于该装置接口和该主机接口之间,用以储存数据;及一控制器,用以将数据交替储存于该至少二缓冲存储器;于进行输入请求大量传输时,该控制器于该主机发送输入请求分组之前即自该装置预取数据而储存于该至少二缓冲存储器,直到所有该缓冲存储器皆存满或者已达请求数据长度为止,并于该主机发送该输入请求分组之后,该控制器将该预取数据回应给该主机;于进行输出请求大量传输时,该控制器于该主机发送数据后,将其储存于该至少二缓冲存储器,再将数据后写入至该装置。
2.如权利要求1所述的通用序列总线传输转译器,其中上述主机的通用序列总线版本 为USB 3.0,且该装置的通用序列总线版本为USB 2.0。
3.如权利要求1所述的通用序列总线传输转译器,其中上述的至少二缓冲存储器包含 一第一缓冲存储器及一第二缓冲存储器,其中该控制器将数据储存于该第一缓冲存储器, 当存满以后,再将数据储存于该第二缓冲存储器。
4.如权利要求1所述的通用序列总线传输转译器,还包含一寄存器,用以记录该主机 的输入请求的数据长度。
5.一种通用序列总线的输入请求大量传输方法,包含 一主机发送一输入请求命令给一传输转译器; 暂存该输入请求命令;该传输转译器根据该输入请求命令,发送一输入请求标记分组给一装置,该主机所规 范的通用序列总线版本高于该装置所规范的通用序列总线版本; 该装置回应数据给该传输转译器;交替储存得自该装置的数据于至少二缓冲存储器,直到所有该缓冲存储器皆存满或者 已达请求数据长度为止;及当该主机发送一输入请求确认分组给该传输转译器时,该传输转译器即将储存于该缓 冲存储器的数据传送给该主机。
6.如权利要求5所述通用序列总线的输入请求大量传输方法,其中上述的输入请求命 令包含一命令区块分组,其规范于唯一大量传输。
7.如权利要求6所述通用序列总线的输入请求大量传输方法,其中上述的命令区块分 组包含一输出入型态、该数据长度及一数据地址。
8.如权利要求5所述通用序列总线的输入请求大量传输方法,于该主机发送输入请求 确认分组后,还包含如果该缓冲存储器内不存在有效数据,则该传输转译器回应一否定确认分组给该主 机;及直到获得有效数据后,该传输转译器发送一端点确认分组给该主机。
9.如权利要求5所述通用序列总线的输入请求大量传输方法,于将储存于该缓冲存储 器的数据传送给该主机后,还包含该装置发送一命令状态分组给该传输转译器,以确认传输成功,其中该命令状态分组 规范于唯一大量传输。
10.如权利要求5所述通用序列总线的输入请求大量传输方法,于交替储存数据于该 至少二缓冲存储器之前,还包含使用该传输转译器对该数据进行转译。
11.如权利要求5所述通用序列总线的输入请求大量传输方法,于交替储存数据于该 至少二缓冲存储器之后,但于将数据传送给该主机之前,还包含使用该传输转译器对该数 据进行转译。
12.一种通用序列总线的输出请求大量传输方法,包含一主机发送数据给一传输转译器;将数据交替储存于至少二缓冲存储器;该传输转译器将该缓冲存储器的数据发送给该装置;及当所有该缓冲存储器都已存满时,则该传输转译器发送一否定确认分组给该主机,以 停止该主机继续发送数据;否则,该传输转译器发送一端点确认分组给该主机,用以重新开 始自该主机接收数据。
13.如权利要求12所述通用序列总线的输出请求大量传输方法,于交替储存数据于该 至少二缓冲存储器之前,还包含使用该传输转译器对该数据进行转译。
14.如权利要求12所述通用序列总线的输出请求大量传输方法,于交替储存数据于该 至少二缓冲存储器之后,但于将数据传送给该装置之前,还包含使用该传输转译器对该数 据进行转译。
全文摘要
一种通用序列总线传输转译器及相关的输入/输出请求大量传输方法。装置接口藉由装置总线连接至一装置,而主机接口藉由主机总线连接至一主机,其中,主机所规范的USB版本高于装置所规范的USB版本。至少二缓冲存储器设置于装置接口和主机接口的间,用以储存数据。控制器将数据交替储存于缓冲存储器。其中,于进行输入请求大量传输时,控制器于主机发送输入请求分组之前即自装置预取数据而储存于缓冲存储器,直到所有缓冲存储器皆存满或者已达请求数据长度为止,并于主机发送输入请求分组之后,将预取数据回应给主机。于进行输出请求大量传输时,控制器于主机发送数据后,将其储存于缓冲存储器,再将数据后写入至装置。
文档编号G06F13/38GK101963947SQ20101051201
公开日2011年2月2日 申请日期2010年9月30日 优先权日2010年9月30日
发明者徐步衡, 江辉, 汤金宽, 赖瑾 申请人:威盛电子股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1