CN1639701A - 通用串行总线主机控制器 - Google Patents
通用串行总线主机控制器 Download PDFInfo
- Publication number
- CN1639701A CN1639701A CNA038050242A CN03805024A CN1639701A CN 1639701 A CN1639701 A CN 1639701A CN A038050242 A CNA038050242 A CN A038050242A CN 03805024 A CN03805024 A CN 03805024A CN 1639701 A CN1639701 A CN 1639701A
- Authority
- CN
- China
- Prior art keywords
- data
- descriptor
- issued transaction
- unit
- usb
- 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.)
- Granted
Links
- 238000003860 storage Methods 0.000 claims abstract description 47
- 238000012545 processing Methods 0.000 claims abstract description 26
- 230000005540 biological transmission Effects 0.000 claims description 29
- 238000000034 method Methods 0.000 claims description 27
- 230000001419 dependent effect Effects 0.000 abstract 1
- 230000002093 peripheral effect Effects 0.000 description 14
- 239000000872 buffer Substances 0.000 description 13
- 238000010276 construction Methods 0.000 description 10
- 238000005516 engineering process Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 7
- 230000004044 response Effects 0.000 description 6
- 230000008569 process Effects 0.000 description 5
- 230000006872 improvement Effects 0.000 description 4
- 238000007689 inspection Methods 0.000 description 4
- 238000000354 decomposition reaction Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 230000008676 import Effects 0.000 description 2
- 241001269238 Data Species 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 239000006185 dispersion Substances 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 230000007306 turnover Effects 0.000 description 1
- 238000011144 upstream manufacturing Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
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/382—Information transfer, e.g. on bus using universal interface adapter
- G06F13/387—Information 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Systems (AREA)
- Bus Control (AREA)
- Small-Scale Networks (AREA)
Abstract
本发明提供一种USB主机控制器,用来处理至少一个USB设备和计算机***的***内存之间的数据业务。该USB主机控制器包括数据取出单元(530),用来从***内存中取出数据元素;储存单元(535),用来储存取出的数据元素;以及事务处理处理单元(570),用来根据储存在储存单元中的取出的数据元素,而处理送到USB设备或从USB设备接收的事务处理。数据取出单元和事务处理处理单元配置成用于异步操作。主机控制器可以是USB 2.0兼容设备,并且可实现于南桥芯片中。
Description
技术领域
本发明主要涉及通用串行总线(Universal Serial Bus,简称USB)主机控制器,特别涉及处理各USB设备和计算机***的***内存之间的数据业务(traffic)。
背景技术
通用串行总线最早开发于1995年,是用来界定一种便于将额外的***设备连接到计算机***的外部扩展总线。USB技术由个人计算机主机控制器硬件和软件及由外设友好的主-从式协议所实现,并达成坚固的连接和电缆组件。各USB***可通过多端口集线器而扩展。
在USB***中,***软件的角色是通过隐藏硬件实现细节而为所有的应用软件提供输入/输出架构的一致观点。具体地说,***软件管理***设备的动态的连接和脱离,并与该***设备通信以确认该设备的身份。在运行期间,主机启动事务处理(transaction)至特定的***设备,而各***设备接受其事务处理并做出相应响应。
集线器加入该***以提供对于USB***设备的额外的连接,并将管理电源提供给连接的设备。这些***设备为从属单元(slave),必须响应从主机送来的请求事务处理。该请求事务处理包括请求关于设备和其架构的详细信息。
虽然这些功能和协议已经在USB 1.1规范中实现,但是为了提供更高性能的接口,此技术仍作了改进。图1显示USB 2.0***的例子,该USB 2.0***包括主机控制器100,多个USB设备115、120、125和130,及两个集线器105和110。在图1的***中,集线器105和110用来增加连接性,但是在其它的USB 2.O***中,能够将USB设备直接连接到主机控制器100。
如上所述,USB 2.0提供更高性能的接口,而速度提高倍数可高达40。而且,从图1中可很明显地看出,USB 2.0可向下兼容USB 1.1,因为USB 2.0允许连接由相同主机控制器100所驱动的USB 1.1设备120、125和130。其中甚至可使用USB 1.1集线器110。
从图1中可以看出,USB 1.1设备120能够直接连接到USB 2.0集线器105。此外,设备120也能直接连接到主机控制器100。这可通过USB 2.0主机控制器和集线器协商以设备为基础的较高的和较低的传输速度能力而达成。
现在参照图2,显示了USB 2.0***的***软件和硬件。如图所示,可通过定义几个层来分层组织各***组件。
在最上层,客户端驱动器软件200在主机PC上执行,并对应于特定的USB设备230。客户端软件一般为操作***的一部分,或与该设备同时提供。
USB驱动205为***软件总线驱动,该***软件总线驱动提取用于特定操作***的特定主机控制器驱动210和215的细节。主机控制器驱动210和220提供特定的硬件215、225和230与USB驱动器205之间的软件层,以提供驱动-硬件接口。
虽然目前讨论的各层由软件实现,但是最上层的硬件组件层包括主机控制器215和225。这些控制器连接到实现终端用户功能的USB设备230。
从图中可以很明显的看出,有一个主机控制器225,该主机控制器225为用于高速USB 2.0的增强型主机控制器(EHC)。该主机控制器兼容用于USB 2.0的增强型主机控制器接口(Enhanced Host ControllerInterface,简称EHCI)规范操作。在软件方面,主机控制器225具有关联的特定主机控制器驱动(EHCD)220。
再者,具有用于全速和低速操作的主机控制器215。通用主机控制器接口(Universal Host Controller Interface,简称UHCI)或开放式主机控制器接口(Open Host Controller Interface,简称OHCI)是两种应用于通用或开放式主机控制器(UHC/OHC)215的工业标准,以提供USB 1.1主机控制器接口。主机控制器215具有在最低软件层的指定的通用/开放式主机控制器设备(UHCD/OHCD)210。
因此,USB 2.0兼容主机控制器***包括驱动软件和必须兼容于EHCI规范的主机控制器硬件。虽然此规范定义寄存器级接口和关联的内存常驻数据结构,但是它并不定义也不说明建立兼容主机控制器所需的硬件架构。
现在参照图3,描绘了普通主板布局的硬件组件。在主板上可见的基本组件可包括中央处理单元(CPU)300、北桥305、南桥310和***内存315。北桥305通常是在核心逻辑芯片组的单一芯片,其将处理器300连接到***内存315和加速图形端口(Accelerated Graphic Port,简称AGP)和***组件接口(Peripheral Component Interface,简称PCI)总线。PCI总线通常在个人计算机中用来提供处理器与诸如显卡、声卡、网络适配卡和调制解调器的***设备之间的数据通路。AGP总线是直接连接显示适配器和***内存315的高速图形扩展总线。AGP与PCI总线独立操作。值得注意的是,其它的主板布局存在着其中没有北桥,或者是有北桥而没有AGP或PCI。
南桥310通常为在***核心逻辑芯片组中的芯片,该芯片组控制集成驱动电子(Integrated Drive Electronics,简称IDE)或增强的IDE(EIDE)总线,提供即插即用支持的USB总线,控制***组件接口-工业标准结构(PCI-ISA)桥接器,管理键盘/鼠标控制器,提供电源管理特征,和控制其它的***设备。
发明内容
本发明提供了一种改良的USB主机控制器、计算机***和操作方法,其定义了一种适用于实现EHCI兼容的主机控制器的架构,用来集成至例如在南桥中的输入/输出集线器芯片。
在本发明的一个方面,提供了一种用来处理在至少一个USB设备和计算机***的***内存之间的数据业务的USB主机控制器。该USB主机控制器包括数据取出(fetch)单元,用来从***内存中取出数据元素(data element)。USB主机控制器进一步包括用来储存取出的数据元素的储存单元;以及连接至该储存单元的事务处理处理单元,用来基于储存在储存单元中取出的数据元素,而处理送到至少一个USB设备或从至少一个USB设备所接收的事务处理。该数据取出单元和事务处理处理单元配置用于异步操作。
在另一实施例中,该USB主机控制器进一步包括一用于处理***内存的内存控制器所进出的数据传输的接口单元。
在另一实施例中,该接口单元提供一到HT I/O(超传输技术输入/输出)总线的接口。
在另一实施例中,USB主机控制器进一步包括一用以储存取出的数据元素的高速缓存,以供该数据取出单元再存取(re-access),该高速缓存能够将数据元素写回到该接口单元,其中该接口单元作为该数据取出单元与该高速缓存之间的仲裁。
在另一实施例中,该USB主机控制器进一步包括至少一直接内存访问(DMA)引擎,其能够将数据传输到该接口单元,及/或接收从该接口单元来的数据,其中,该接口单元用于在该数据取出单元与该至少一直接内存访问引擎之间进行仲裁。
在另一实施例中,该USB主机控制器进一步包括一高速缓存(545),其用于储存取出的数据元素以供该数据取出单元再存取。
在另一实施例中,该USB主机控制器进一步包括一连接到该高速缓存和该数据取出单元的事务处理完成单元,用于当完成事务处理时更新在该高速缓存中的数据元素。
在另一实施例中,该数据取出单元和该事务处理完成单元异步地操作。
在另一实施例中,该高速缓存被连接以将数据元素写回到该***内存。
在另一实施例中,该USB主机控制器进一步包括一连接到该高速缓存的事务处理完成单元,该事务处理完成单元用以控制该高速缓存将数据元素写回到该***内存。
在另一实施例中,该高速缓存为完全写入(write-through)高速缓存。
在另一实施例中,该高速缓存为关联式高速缓存。
在另一实施例中,该数据取出单元和该高速缓存异步地操作。
在另一实施例中,该USB主机控制器进一步包括一作为直接内存访问读取总线主控单元(master)的发送直接内存访问引擎,以从该***内存中取出数据。
在另一实施例中,该发送直接内存访问引擎连接至该储存单元用以检查储存的数据元素,并根据该检查的数据元素决定哪个数据将从该***内存中取出。
在另一实施例中,该发送直接内存访问引擎包括先进先出(FIFO)数据缓冲器,用以储存该取出的数据。
在另一实施例中,该USB主机控制器进一步包括一作为直接内存访问写入总线主控单元的接收直接内存访问引擎,以将数据写入该***内存中。
在另一实施例中,该接收直接内存访问引擎包括先进先出数据缓冲器,用以储存写入该***内存的数据。
在另一实施例中,该数据取出单元用来根据定时信息和寄存器设定,决定要取出的数据元素。
在另一实施例中,该USB主机控制器为通用串行总线第2次修订版(USB-2)主机控制器,该第2次修订版主机控制器兼容增强型主机控制器接口(EHCI)规范。
在另一实施例中,该USB主机控制器进一步包括一接口单元,用于处理数据传输进出该***内存的内存控制器;以及一连接至该接口单元的寄存器单元,该寄存器单元包含多个增强型主机控制器接口寄存器,用来储存总线配置数据、主机控制器能力数据、操作模式数据和主机控制器状态信息。
在另一实施例中,该USB主机控制器具有一第一和一第二时钟域,其中,数据取出单元和储存单元位于该第一时钟域,事务处理处理单元位于该第二时钟域,以及该第二时钟域的频率低于该第一时钟域的频率。
在另一实施例中,该USB主机控制器进一步包括一定时(timing)单元,其相位与传输至至少一通用串行总线设备的数据的时钟定时一致;以及一转换单元,其用以从该储存单元检索出数据元素,并将该接收的数据元素转换至用来处理各个事务处理所需的事务处理项目,其中,该定时单元连接至该储存单元和该转换单元的控制单元。
在另一实施例中,该事务处理处理单元包括数据包处理器单元,该数据包处理器单元用来构建通用串行总线的总线操作以向至少一通用串行总线设备发送数据和握手(handshake),并分解所接收的通用串行总线数据包,该数据包处理器单元被连接到该定时单元。
在另一实施例中,该USB主机控制器具有第一和第二时钟域,其中数据取出单元、储存单元和转换单元位于该第一时钟域,且事务处理处理单元和定时单元位于该第二时钟域。
在另一实施例中,该事务处理处理单元包括一数据包建构单元,其用于构建通用串行总线的操作以向至少一通用串行总线设备发送数据和握手;以及一数据包译码单元,其用于分解所接收的通用串行总线数据包。
在另一实施例中,该USB主机控制器进一步包括一转换单元,其用于接收来自该储存单元的数据元素,并将该接收的数据元素转换至事务处理项目,其中数据包建构单元连接到该转换单元以接收该事务处理项目。
在另一实施例中,该USB主机控制器进一步包括一连接到该数据取出单元的事务处理完成单元,该事务处理完成单元还能够启动数据元素写回到***内存的操作,其中该数据包译码单元连接到该事务处理完成单元,用于提供该事务处理完成单元所需的数据以决定是否启动写回操作。
在另一实施例中,该事务处理处理单元进一步包括连接到该数据包建构单元和该数据包译码单元的循环冗余码校验(CRC)单元,以检测在发送出和接收到的数据中的错误。
在另一实施例中,提供一具有***内存并能连接到一USB设备的计算机***,该计算机***包括一具有前述实施例所示的USB主机控制器的集成芯片。
根据本发明的另一方面,提供一种在连结到一USB设备的计算机***中操作一USB主机控制器的方法。该方法包括从计算机***的***内存中取出描述符,储存该取出的描述符,以及基于使用储存的描述符所产生的事务处理项目来处理进及/或出该USB设备的事务处理。该取出及处理步骤以异步方式实现。
在另一实施例中,该方法进一步包括处理传入或传出该***内存的内存控制器的数据的步骤。
在另一实施例中,该处理数据传输的步骤通过HT I/O总线的接口实现。
在另一实施例中,该方法进一步包括操作至少一直接内存访问引擎,用以将数据发送到该接口,及/或接收来自该接口的数据。
在另一实施例中,该方法进一步包括将该取出的描述符储存在高速缓存(545)中用以再存取。
在另一实施例中,该方法进一步包括在完成事务处理后,更新在该高速缓存中的描述符。
在另一实施例中,该取出和该更新异步地实现。
在另一实施例中,该方法进一步包括将该描述符写回到该***内存。
在另一实施例中,取出在该高速缓存中的描述符和将该取出的描述符储存在该高速缓存中的步骤异步地实现。
在另一实施例中,该方法进一步包括操作作为直接内存访问读取总线主控单元的发送直接内存访问引擎,用于从该***内存中取出数据。
在另一实施例中,该方法进一步包括操作该发送直接内存访问引擎用以检查该储存的取出的描述符,并根据该检查的描述符决定要从该***内存中取出的数据。
在另一实施例中,该方法进一步包括将该取出的数据储存在先进先出数据缓冲器中。
在另一实施例中,该方法进一步包括操作作为直接内存访问写入总线主控单元的接收直接内存访问引擎,用于将数据写入该***内存中。
在另一实施例中,该方法进一步包括将要写入该***内存的数据储存在先进先出数据缓冲器中。
在另一实施例中,该方法进一步包括处理传入及传出该***内存的内存控制器的数据;以及将总线配置数据、主机控制器能力数据、操作模式数据和主机控制器状态信息储存在包含多个增强型主机控制器接口寄存器的寄存器单元中。
在另一实施例中,该USB主机控制器具有第一和第二时钟域,该取出和储存步骤由该第一时钟驱动,该处理步骤由该第二时钟驱动,以及该第二时钟域的频率要低于该第一时钟域的频率。
在另一实施例中,该方法进一步包括提供与传输至该通用串行总线设备的数据的时钟定时相位一致的时钟信号;取出储存的取出的描述符;以及将所接收的描述符转换至各个事务处理所需的事务处理项目,其中该储存步骤和该转换步骤由该时钟信号控制。
在另一实施例中,该处理事务处理步骤包括构建通用串行总线操作以向该通用串行总线设备发送数据和握手;以及分解接收的通用串行总线数据包,其中该构建和分解步骤在该时钟信号的控制下实现。
在另一实施例中,该USB主机控制器具有第一和第二时钟域,以及该取出、储存和转换步骤由该第一时钟驱动,且该处理步骤由该第二时钟驱动。
在另一实施例中,该处理事务处理的步骤包括构建通用串行总线操作以向该通用串行总线设备发送数据和握手;以及分解接收的通用串行总线数据包。
在另一实施例中,该方法进一步包括存取所储存的取出的描述符;以及将所存取的描述符转换为事务处理项目,其中该构建通用串行总线操作的步骤包括存取该事务处理项目。
在另一实施例中,该方法进一步包括启动描述符的写回操作到该***内存,其中,该分解的步骤包括提供决定是否启动写回操作所需的数据。
在另一实施例中,该构建及分解的步骤包括实现循环冗余码校验(CRC)的检测,以侦测在发送出及接收到的数据中的错误。
附图说明
为了解释本发明的原理,而将随后附图并入说明书中成为说明书的一部分。这些附图并非用来限制本发明,而是仅例示说明要如何制造和使用本发明。由下列结合附图所作的详细说明,将可清楚地了解本发明的进一步特征和优点。
图1显示了USB 2.0兼容***的例子;
图2显示了图1的***中的硬件和软件组件层;
图3显示了普通主板布局;
图4显示了根据一实施例的USB 2.0兼容主机控制器的主要组件;
图5为图4的配置的组件的增强型主机控制器的组件的方块图;
图6显示了图5的增强型主机控制器的描述符储存单元;
图7为根据一实施例的传输处理的流程图;以及
图8为根据一实施例的接收处理的流程图。
具体实施方式
以下将参照附图而说明本发明的优选实施例,其中相同的组件和结构用相同的参考号码标示。
现在参照附图特别是图4,图4显示了根据一实施例的USB 2.0兼容主机控制器400的主要组件。一般来说,主机控制器由三个主要组件:增强型主机控制器225、一个或多个伴随主机控制器215和端口路由器415所组成。
增强型主机控制器225处理USB 2.0高速数据业务。此外,也控制着端口路由器415。
在本发明实施例的伴随主机控制器(companion host controller)单元215中,有两个OHCI兼容主机控制器,即OHC0 405和OHC1 410。这些控制器处理所有的USB 1.1兼容数据业务,并可以包含对于非USB识别环境的传统键盘仿真(emulation)。
端口路由器415指定物理端口连接各自的所有者。这种所有权由EHC寄存器所控制,而将每一个预设的所有端口路由到伴随主机控制器单元,以允许仅有USB 1.1识别驱动的***来工作。若USB 2.0识别驱动存在于***中,其将各端口指定给用于低速和全速设备和集线器(USB 1.1数据业务)的伴随主机控制器单元405和410,或指定给用于高速设备和集线器的EHC 225。
也就是说,在图4中所示的USB 2.0主机控制器兼容EHCI规范,并允许使用现有的具有所需最小改变的OHCI USB 1.1主机控制器与端口路由器接口,替代USB 1.1物理设备。
即插即用配置可由各主机控制器405、410和225分别处理。其可有EHCI附加的限制,即OHCI控制器215必须具有低于EHCI控制器225的功能数。
图4的USB 2.0兼容主机控制器可以定义为硬件架构,以实现集成到南桥310中的EHCI兼容主机控制器。然后主机控制器置于USB-2模拟输入/输出引脚和用来向上游***内存连接(例如若***中存在一个北桥的话则连接到北桥)的链路接口模块之间。此接口可以是内部“超传输(HyperTransportTM)”接口。超传输技术为高速的高性能点对点链路,用于主板上集成电路的互连。超传输技术要比相等数目引脚的PCI总线快很多。超传输技术设计成比现有技术提供了多相当多的频宽,使用低延时响应,提供低的引脚数,能与传统PC总线兼容,可扩展至新的***网络架构总线,对于操作***透明,并对***设备驱动提供较小的影响。
因此,在图4的实施例中,提供了基于超传输的USB主机控制器,其中增强型主机控制器225负责处理所有的高速USB数据业务以及控制用于其本身和通过端口路由器415的伴随控制器215的端口所有权。在EHC 225的开机复位或软件控制复位后,可以预设成所有端口被伴随主机控制器215所拥有及控制的状态,所有的操作寄存器处于各自的默认值,且EHC 225被暂停,亦即其既不从***内存315中取出描述符,也不发出任何USB活动。在正常操作中,EHC 225可处理来自周期性列表的同步的和中断的传送,以及处理来自异步列表的大批转移(bulk)和控制。其中任何一表可以是空表或者用软件使其处理被禁用。
现在参照图5,更详细地描绘了增强型主机控制器EHC 225的组件。从图中可以看出,增强型主机控制器EHC 225能分成100MHz核心时钟域和60MHz时钟域。当60MHz时钟域包括路由事务处理至物理设备的电路,该100MHz时钟域执行实际的描述符处理。值得注意的是在其它实施例中,各域可以有与上述100MHz和60MHz值不同的时钟速率。在这些实施例中,描述符处理时钟域仍有比其它的时钟域高的频率。
在100MHz时钟域中,由基台(stub)500处理出入***内存的数据业务。基台500将内部源和汇(sink)指定给各个超传输数据流(即公布的请求、非公布的请求、响应)。基台500仲裁所有内部总线主控单元之间的内部超传输接口,这些内部总线主控单元即接收直接内存访问引擎510、描述符高速缓存545、描述符处理单元525和发送DMA引擎550。因此,基台500在取出描述符、写回描述符和接收与发送数据之间做仲裁。
基台500连接到寄存器堆505,该寄存器堆505包含EHCI寄存器。在本实施例中,EHCI寄存器用以储存关于PCI架构、主机控制器能力和主机控制器操作模式的数据。
描述符处理单元525连接到基台500,并由三个子单元组成:描述符取出单元(DescrFetch)530、描述符储存单元(DescrStore)535和事务处理完成机(TACM)540。描述符取出单元530根据定时信息和寄存器设定来决定取出哪一个描述符将或接着预先取出哪一个描述符,并把请求送到基台500和/或送到描述符高速缓存545。当描述符取出单元530接收描述符则将该描述符送到描述符储存单元535。
描述符储存单元535保持预先取出的描述符。通过实现储存管理,描述符储存单元535的主要功能是为描述符取出提供储存能力以平均内存存取延时。
事务处理完成机540连接到描述符取出单元530以管理状态写回至描述符。为此目的,事务处理完成机540连接到描述符高速缓存545。
此高速缓存包含已由描述符取出单元530预先取出的用来快速再存取的描述符。这些保持在描述符高速缓存545中的描述符通过事务处理完成机540而更新,并最终通过基台500写回到***内存。此描述符高速缓存545可结合完全写入特征。其可更进而控制各微帧(microframe)的内容的替代。
从图5中可明显看出,在100MHz时钟域进一步设有发送DMA引擎550和接收DMA引擎510。发送DMA引擎550由数据取出单元(DataFetch)555和数据发送缓冲器(TxBuf)560所组成。数据取出单元555为DMA读取总线主控单元并检查在描述符处理单元525的描述符储存单元535中的登录(entry)。数据取出单元555预先取出对应的数据,并将此数据传送到数据发送缓冲器560。
数据发送缓冲器560可以是先进先出缓冲器,而其功能对应于描述符储存单元535的功能,因为描述符储存单元535允许预先取出用于发出事务处理的足够的数据,以覆盖内存***延时。数据发送缓冲器560可进一步作为用来处理各域不同时钟的时钟域转换器。
接收DMA引擎510包含数据写入单元(DataWrite)515,该数据写入单元515作为DMA写入总线主控单元,用来将储存在数据接收缓冲器(RxBuf)520中的接收的数据移到***内存中各自的地方。数据接收缓冲器520可以是简单的FIFO缓冲器,也可以作为时钟域转换器。
在60MHz时钟域中,设有帧定时单元(FrameTiming)565,该帧定时单元565为主控USB时间基准。帧定时单元的一个时钟信号对应于整数(例如,8个或16个)倍的USB高速位时间。帧定时单元565连接到描述符储存单元535,并连接到数据包处理器方框570。
数据包处理器方框570包含数据包建构单元(PktBuild)585和数据包译码器(PktDecode)575,数据包建构单元585构建所需的USB总线操作以发送数据和握手,而数据包译码器575分解接收的USB数据包。此外,还提供用于监督数据包建构单元585和数据包译码器575的事务处理控制器(TaCtrl)580。此外,数据包处理器570可包括循环冗余码校验单元590,用来产生和校验用于发送和接收数据的CRC数据。
数据包处理器570的数据包建构单元585和数据包译码器575连接到根集线器(root hub)595,根集线器595包含端口特定控制寄存器、连接侦测逻辑和用于数据包处理器570和端口路由器之间的数据包的分散/收集功能。
如上所述,基台500是负责将USB控制器连接到内部超传输接口的单元。因为有几个请求者510、545、525和550使用该超传输接口,因此该基台500将包括仲裁逻辑以公平而有效地允许不同的单元存取该接口。虽然有四个可以发出超传输源请求的总线主控单元,但是仅有一个总线从属单元将成为超传输目标请求——寄存器堆单元505的被访地址。
因为内部超传输接口本身已经在设备目标和设备来源接口之间作了区别,因此可以不需在目标接口方作仲裁,因为能直接映射到寄存器堆单元505。然而,超传输源接口可能需要仲裁。由于在本实施例中指定给增强型主控制器225的超传输缓冲器的数目,可能在任何时间已经提出多达6个读取请求,也就是说该内部超传输接口在响应第一个读取请求之前,将要消耗6个读取请求。在其它实施例中,未处理的请求的数目可以不同于6个。假想内部超传输接口消耗写入请求的速度与写入请求产生的速度相同。基台500将通过观察超传输响应源标记而指定响应各自的目的地。各单元可以使用一定范围的源标记,使得每个单元具有独有的最有效二个位。
现在参照图6,在此更详细描述了描述符储存单元535。该描述符储存单元535包括控制单元600,该控制单元600接收从帧定时单元565来的定时信号,并控制从描述符取出单元530来和送至该描述符取出单元530的数据业务。再者,控制单元600连接到发送DMA引擎550,更具体地说是连接到数据取出单元555,为内存存取提供储存的描述符。
描述符储存单元535进一步包括储存单元605,该储存单元605实际上提供用于描述符的内存。储存单元605再连接到发送DMA引擎550,以及连接到描述符储存单元535的转换单元610。由控制单元600控制转换单元610,以从储存单元605中检索描述符,并将接收的描述符转换至处理各个事务处理所需的事务处理项目。为此目的,转换单元610连接到数据包处理器570。
再次参照图5,由主机控制器的结构和上述的讨论可明显看出,描述符取出单元530、实际处理事务处理的数据包处理器570以及发送和接收DMA引擎550和510异步地工作。
现在参照图7的流程图而说明根据一实施例的传输处理。在步骤700,描述符取出单元530决定将要取出哪一个描述符。然后在步骤705由描述符取出单元530请求决定的描述符,然后在步骤710接收请求的描述符。一旦描述符取出单元530接收了请求的描述符后,则在步骤715将描述符传送到描述符高速缓存545,以及在步骤720将描述符传送到描述符储存单元535。
当将要取出数据时,在步骤725发送DMA引擎550的数据取出单元555检查描述符储存单元535的登录,并在步骤730取出对应的数据。然后在步骤735将取出的数据缓冲储存到数据发送缓冲器560中。
在步骤740,描述符储存单元535的转换单元610转换各个储存的描述符以产生事务处理项目,以及数据包建构器585在步骤745根据产生的事务处理项目和取出的储存在数据发送缓冲器560中的数据而建构数据包。然后在步骤750由根集线器595发送建构的数据包。
图8说明接收处理,该接收处理开始于步骤800接收在数据包处理器570的数据包译码器575中的数据包。在步骤805,数据包译码器575分解接收的数据包,并将数据发送到数据接收缓冲器520,在步骤810将该数据储存到数据接收缓冲器520。在数据写入单元515的控制下,在步骤815将缓冲的数据写入到内存。再者,可以在步骤820通过数据包译码器575通知事务处理完成机540来启动描述符写回操作。然后,在步骤825更新高速缓存的描述符。
虽然本发明已依照此处所示的构造相关的实际实施例而作了说明,但很显然的对于本领域技术人员而言,可依照上述的说明和所附权力要求在不偏离本发明的精神和范畴的情况下可作各种的修饰、变化和改进。此外,对于本领域技术人员公知的一些内容,为了避免不必要的模糊了本发明的焦点,而未作详细的说明。因此,应了解到本发明并不受特定范例实施例的限制,而仅受所附权力要求的限制。
Claims (10)
1.一种通用串行总线主机控制器,用于处理至少一个通用串行总线设备(330)和计算机***的***内存(115)之间的数据业务,该通用串行总线主机控制器包括:
一数据取出单元(530),其用以从该***内存中取出数据元素;
一储存单元(535,605),其用以储存该取出的数据元素;以及
一事务处理处理单元(570),其连接至该储存单元,用于根据储存在该储存单元中取出的数据元素,而处理送到该至少一个通用串行总线设备或从该至少一通用串行总线设备接收的事务处理;
其中该数据取出单元和该事务处理处理单元配置用于异步操作。
2.如权利要求1所述的通用串行总线主机控制器,其中该取出的数据元素为描述符,而该通用串行总线主机控制器进一步包括:
一转换单元(610),其用于接收从该储存单元来的描述符,并将该接收的描述符转换成事务处理项目;
其中该事务处理处理单元配置成用来接收来自该转换单元的该事务处理项目,并根据该接收的事务处理项目处理该事务处理。
3.如权利要求1所述的通用串行总线主机控制器,其中该数据取出单元配置成用来输出用于请求数据元素的请求,并接收该请求的数据元素。
4.如权利要求3所述的通用串行总线机控制器,进一步包括一接口单元(500),其用于处理将数据传输到该***内存的内存控制器,和接收从该内存控制器来的数据,其中该数据取出单元配置成用来输出该请求至该接口单元。
5.如权利要求3所述的通用串行总线主机控制器,进一步包括一高速缓存(545),其用于储存取出的数据元素以供该数据取出单元再存取,其中该数据取出单元配置成用来输出该请求至该高速缓存。
6.一种计算机***,具有***内存(115),并能连接到一通用串行总线设备(330),该计算机***包括一通用串行总线主机控制器集成芯片,该芯片包括:
一数据取出电路(530),其用于从该***内存中取出数据元素;
一储存电路(535,605),其用于储存取出的数据元素;以及
一事务处理处理电路(570),其连接至该储存电路,用于根据储存在该储存电路中的取出的数据元素,处理送到该至少一个通用串行总线设备或从该至少一通用串行总线设备接收的事务处理,其中该数据取出电路和该事务处理处理电路配置用于异步操作。
7.一种在一连接到通用串行总线设备(330)的计算机***中操作通用串行总线主机控制器的方法,该方法包括:
从该计算机***的***内存中取出描述符(700-710);
储存该取出的描述符(720);以及
根据使用该储存的描述符所产生的事务处理项目处理(745)进入和/或出于该通用串行总线设备的事务处理,其中该取出和处理步骤以异步方式实现。
8.如权利要求7所述的方法,其中该取出描述符的步骤包括:
输出用来请求描述符的请求(705);以及
接收该所请求的描述符(710)。
9.如权利要求8所述的方法,进一步包括:
将该所取出的描述符储存(715)在高速缓存(545)中用于再存取,其中输出该请求的步骤通过输出该请求至该高速缓存的方式实现。
10.如权利要求7所述的方法,进一步包括:
根据定时信息及寄存器设定决定要取出的哪一个描述符(700)。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE10211054A DE10211054A1 (de) | 2002-03-13 | 2002-03-13 | USB-Hostcontroller |
DE10211054.9 | 2002-03-13 | ||
US10/283,554 US20030177297A1 (en) | 2002-03-13 | 2002-10-30 | USB host controller |
US10/283,554 | 2002-10-30 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1639701A true CN1639701A (zh) | 2005-07-13 |
CN1310163C CN1310163C (zh) | 2007-04-11 |
Family
ID=28042830
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB038050242A Expired - Fee Related CN1310163C (zh) | 2002-03-13 | 2003-02-28 | 通用串行总线主机控制器 |
Country Status (6)
Country | Link |
---|---|
EP (1) | EP1483674B1 (zh) |
JP (1) | JP2005520248A (zh) |
CN (1) | CN1310163C (zh) |
AU (1) | AU2003213650A1 (zh) |
TW (1) | TWI266992B (zh) |
WO (1) | WO2003079200A2 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2012140668A2 (en) * | 2011-04-11 | 2012-10-18 | Ineda Systems Pvt. Ltd | Usb virtualization |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7315912B2 (en) * | 2004-04-01 | 2008-01-01 | Nvidia Corporation | Deadlock avoidance in a bus fabric |
GB2423165B (en) * | 2005-02-14 | 2007-01-10 | Elan Digital Systems Ltd | Host controller device and method |
US20080248835A1 (en) * | 2007-04-04 | 2008-10-09 | Sony Ericsson Mobile Communications Ab | Accessory communication method and system for mobile services |
JP2008299747A (ja) | 2007-06-01 | 2008-12-11 | Panasonic Corp | Usbホストシステム及び転送データの転送方法 |
US8683126B2 (en) * | 2007-07-30 | 2014-03-25 | Nvidia Corporation | Optimal use of buffer space by a storage controller which writes retrieved data directly to a memory |
TWI423037B (zh) * | 2009-05-15 | 2014-01-11 | Etron Technology Inc | 一種提升於通用串列匯流排協定中傳輸同時型傳輸類型的封包之效率之方法與裝置 |
JP5206717B2 (ja) * | 2010-03-24 | 2013-06-12 | ブラザー工業株式会社 | Usbホスト装置 |
CN105095126B (zh) | 2014-04-30 | 2018-02-13 | 华为技术有限公司 | 控制方法和控制设备 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5974486A (en) * | 1997-08-12 | 1999-10-26 | Atmel Corporation | Universal serial bus device controller comprising a FIFO associated with a plurality of endpoints and a memory for storing an identifier of a current endpoint |
EP1102173A3 (en) * | 1999-11-22 | 2005-01-19 | Texas Instruments Incorporated | Universal serial bus architecture |
-
2003
- 2003-02-28 EP EP03711337A patent/EP1483674B1/en not_active Expired - Lifetime
- 2003-02-28 JP JP2003577132A patent/JP2005520248A/ja active Pending
- 2003-02-28 AU AU2003213650A patent/AU2003213650A1/en not_active Abandoned
- 2003-02-28 CN CNB038050242A patent/CN1310163C/zh not_active Expired - Fee Related
- 2003-02-28 WO PCT/US2003/006288 patent/WO2003079200A2/en active IP Right Grant
- 2003-03-06 TW TW092104759A patent/TWI266992B/zh not_active IP Right Cessation
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2012140668A2 (en) * | 2011-04-11 | 2012-10-18 | Ineda Systems Pvt. Ltd | Usb virtualization |
WO2012140668A3 (en) * | 2011-04-11 | 2013-01-03 | Ineda Systems Pvt. Ltd | Usb virtualization |
US8972624B2 (en) | 2011-04-11 | 2015-03-03 | Ineda Systems Pvt. Ltd. | USB virtualization |
Also Published As
Publication number | Publication date |
---|---|
EP1483674B1 (en) | 2006-04-05 |
AU2003213650A1 (en) | 2003-09-29 |
JP2005520248A (ja) | 2005-07-07 |
EP1483674A2 (en) | 2004-12-08 |
WO2003079200A3 (en) | 2004-03-25 |
AU2003213650A8 (en) | 2003-09-29 |
WO2003079200A2 (en) | 2003-09-25 |
TWI266992B (en) | 2006-11-21 |
TW200304071A (en) | 2003-09-16 |
CN1310163C (zh) | 2007-04-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7620747B1 (en) | Software based native command queuing | |
US20040024920A1 (en) | Serial bus host controller diagnosis | |
CN1818856A (zh) | 具有加速器的数字信号***及其操作方法 | |
CN101078985A (zh) | 用于识别在计算机***上运行的操作***的方法和设备 | |
US7016984B2 (en) | System controller using plural CPU's | |
CN1037982A (zh) | 在有仲裁的80386/82385微机***运行中80386对***总线的抢用 | |
US20030177297A1 (en) | USB host controller | |
CN1864145A (zh) | 用于处理输入/输出命令的方法、***和程序 | |
CN1310163C (zh) | 通用串行总线主机控制器 | |
CN1241098C (zh) | 存储***中检验数据的方法及设备 | |
US20040078716A1 (en) | Extended host controller test mode support | |
CN1892630A (zh) | Dma数据传送装置、半导体集成电路装置及数据传送方法 | |
EP1516261B1 (en) | Bus system, station for use in a bus system, and bus interface | |
US6990550B2 (en) | Transaction duration management in a USB host controller | |
US11995351B2 (en) | DMA engines configured to perform first portion data transfer commands with a first DMA engine and second portion data transfer commands with second DMA engine | |
US8074232B2 (en) | Method for improving the communication of the human interface device | |
CN1040104A (zh) | 用于双母线微机***的延迟高速存贮器写操作启动电路 | |
CN1031287A (zh) | 数字数据处理***用的总线适配器装置 | |
US7162565B1 (en) | Universal serial bus interface to mass storage device | |
CN1848103A (zh) | 实现中央控制单元对单板集中控制的方法和*** | |
CN1456990A (zh) | 应用程序并行处理***和应用程序并行处理方法 | |
CN1967515A (zh) | 主机访问接口及其实现方法 | |
US7694004B2 (en) | Bit-granular writes of control registers | |
CN1278204C (zh) | 电源管理状态控制方法 | |
CN1194311C (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 | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20070411 Termination date: 20100228 |