通用串行总线主机控制器及其排程方法

文档序号:6503334阅读:181来源:国知局
通用串行总线主机控制器及其排程方法
【专利摘要】一种通用串行总线主机控制器。上述通用串行总线主机控制器包括端点管理单元、传输管理单元与排程管理单元。上述端点管理单元管理通用串行总线装置的端点配置,其中上述通用串行总线装置包括多个端点以及上述端点配置包括上述通用串行总线装置的上述多个端点的多个状态。上述传输管理单元传输关于上述通用串行总线装置的上述端点在系统内存以及上述通用串行总线主机控制器之间的传输信息的数据。上述排程管理单元同时地管理上述通用串行总线装置的至少上述两个端点的封包传输。本申请提出的通用串行总线主机控制器及其排程方法使得流程之间的延迟减少。
【专利说明】通用串行总线主机控制器及其排程方法
[0001]交叉引用
[0002]依据2012年5月29日提出的申请号为61/652,555的美国专利申请,本申请享有优先权。
【技术领域】
[0003]本发明是有关于一种通用串行总线(Universal Serial Bus,USB)主机控制器,特别是有关于一种通用串行总线主机控制器的排程(scheduling)方法。
【背景技术】
[0004]通用串行总线(Universal Serial Bus,USB)为连接外部设备的一种串行总线标准,其可支持热插入(Hot plug)和即插即用(Plug and Play)等功能。
[0005]现今,USB2.0规格可提供低速、全速以及高速传输,其可分别支持最大1.5Mbps、12Mbps及480Mbps的资料量。然而,随着复杂功能的增加,电子产品需要更高速的USB传输速率,以便能更快速地从外部设备存取数据并执行相关的操作流程。
[0006]因此,USB实施论坛(USB Implementers Forum)制订了 USB3.0的规格,其可同时提供超高速(SuperSpeed)以及非超高速(即USB2.0)的信息交换,其中超高速传输可支持最大5G bps的数据量。

【发明内容】

[0007]为了提升通用串行总线装置与通用串行总线主机控制器之间的排程效率,本申请提出一种通用串行总线主机控制器及其排程方法。
[0008]本发明提供一种通用串行总线(USB)主机控制器,包括:端点管理单元,用来管理通用串行总线装置的端点配置,其中上述通用串行总线装置包括多个端点以及上述端点配置包括上述通用串行总线装置的上述多个端点的多个状态;传输管理单元,用来传输关于上述通用串行总线装置的上述端点在系统内存以及上述通用串行总线主机控制器之间的传输信息的数据;以及排程管理单元,用来同时地管理上述通用串行总线装置的至少上述两个端点的封包传输。
[0009]再者,本发明提供一种排程方法,适用于通用串行总线主机控制器。上述通用串行总线主机控制器是耦接于包括多个端点的通用串行总线装置。通过排程管理单元,管理上述通用串行总线装置的上述多个端点的封包传输。管理上述通用串行总线装置的每一上述端点的封包传输的步骤包括六阶段:得到上述通用串行总线装置的上述多个端点之一者的状态;得到上述通用串行总线装置的上述多个端点的该者的传输信息;传送封包至上述通用串行总线装置的上述多个端点的该者;得到来自于上述通用串行总线装置的上述多个端点的该者的回应;更新上述通用串行总线装置的上述多个端点的该者的传输信息;以及更新上述通用串行总线装置的上述多个端点的该者的状态。六个阶段中的至少两阶段会同时被上述通用串行总线装置的不同端点所执行。[0010]再者,本发明提供一种排程方法,适用于通用串行总线主机控制器。上述通用串行总线主机控制器是耦接于包括多个端点的通用串行总线装置。通过排程管理单元,管理上述通用串行总线装置的上述多个端点的封包传输。管理上述通用串行总线装置的每一上述端点的封包传输的步骤包括六阶段:得到上述通用串行总线装置的所对应的上述端点的状态;得到上述通用串行总线装置的所对应的上述端点的传输信息;传送封包至上述通用串行总线装置的所对应的上述端点;得到来自上述通用串行总线装置的所对应的上述端点的回应;更新上述通用串行总线装置的所对应的上述端点的传输信息;以及更新上述通用串行总线装置的所对应的上述端点的状态。六个阶段中的至少两阶段会同时被上述通用串行总线装置的所对应的上述端点的不同封包所执行。
[0011]本申请提出的通用串行总线主机控制器及其排程方法使得流程之间的延迟减少,而通用串行总线装置以及通用串行总线主机控制器之间的通用串行总线带宽可以更有效地使用。
【专利附图】

【附图说明】
[0012]图1是显示传统通用串行总线(USB)主机控制器;
[0013]图2是显示在图1中通用串行总线主机控制器与通用串行总线装置的端点EPl和EP2之间的数据传输的示意图;
[0014]图3是显示根据本发明一实施例所述的通用串行总线主机控制器;
[0015]图4是显示根据本发明另一实施例所述的通用串行总线主机控制器;
[0016]图5A与图5B是显示根据本发明一实施例所述的排程方法,适用于图3的通用串行总线主机控制器;
[0017]图6是显示在图4的通用串行总线主机控制器以及通用串行总线装置之间根据图5A与图5B所述的排程方法的数据传输的示意图;
[0018]图7是显示根据本发明另一实施例所述的排程方法,适用于图4的通用串行总线主机控制器300;以及
[0019]图8A与图SB是显示在图4的通用串行总线主机控制器以及通用串行总线装置之间根据图7所述的排程方法的数据传输的示意图。
【具体实施方式】
[0020]在说明书及权利要求书当中使用了某些词汇来指称特定的组件。本领域技术人员应可理解,硬件制造商可能会用不同的名词来称呼同样的组件。本说明书及权利要求书并不以名称的差异来作为区分组件的方式,而是以组件在功能上的差异来作为区分的准则。在通篇说明书及权利要求书当中所提及的“包含”为开放式的用语,故应解释成“包含但不限定于”。另外,“耦接”一词在此是包含任何直接及间接的电气连接手段。因此,若文中描述第一装置耦接于第二装置,则代表该第一装置可直接电气连接于该第二装置,或通过其他装置或连接手段间接地电气连接至该第二装置。
[0021]图1显示传统通用串行总线(Universal Serial Bus, USB)主机控制器100。通用串行总线主机控制器100包括端点管理单元110、传输管理单元120以及排程管理单元130。通用串行总线主机控制器100是经由扩展主控制器接口(Extensible HostController Interface, xHCI)总线40 f禹接于系统内存20。再者,通用串行总线主机控制器100是经由USB连接耦接于通用串行总线装置10,其中通用串行总线装置10包括多个端点EP1、EP2、EP3、EP4以及EP5。每一端点是通用串行总线装置10中唯一可寻址的部分,其可以是在通用串行总线主机控制器100与通用串行总线装置10之间通信流程的信息的来源或是目的地。在通用串行总线主机控制器100中,路径A是表示当通用串行总线装置10的一个端点被启动时,排程管理单元130会从端点管理单元110得到通用串行总线装置10的该端点的状态(例如16字节的端点内容)。接着,路径B是表示排程管理单元130会得到来自于传输管理单兀120且对应于该端点的传输信息(例如16字节队列描述符(queuedescriptor)以及1024字节数据内容)。当通用串行总线主机控制器100执行一个输出操作(OUT operation)来将数据存储至通用串行总线装置10时,路径C是表示排程管理单元130会提供对应于传输信息的封包(例如数据包头(Data Packet Header, DPH)以及数据封包负载(Data Packet Payload,DPP)以及对应于欲存储的数据的封包至通用串行总线装置
10。再者,当通用串行总线主机控制器100执行该输出操作时,路径D是表示排程管理单元130会得到来自通用串行总线装置10的响应,其中通用串行总线装置10是根据来自于通用串行总线主机控制器100的每一封包而提供回应。另一方面,当通用串行总线主机控制器100执行输入操作(IN operation)来读取存储在通用串行总线装置10内的数据时,路径C是表示排程管理单元130会提供对应于传输信息的封包(例如数据包头以及数据封包负载)至通用串行总线装置10。再者,当通用串行总线主机控制器100执行该输入操作时,路径D是表示排程管理单元130会得到来自于通用串行总线装置10的响应以及对应于所存储的数据的封包,其中通用串行总线装置10是根据来自于通用串行总线主机控制器100的封包而提供响应。接着,路径E是表示排程管理单元130会根据来自通用串行总线装置10的响应而将传输信息更新至传输管理单元120。接着,路径F是表示排程管理单元130会相应于已更新的传输信息,而将通用串行总线装置10的该端点的状态更新至端点管理单元110。
[0022]图2是显示在图1中通用串行总线主机控制器100与通用串行总线装置10的端点EPl和EP2之间的数据传输的示意图。同时参考图1与图2,在时间周期Tl,通用串行总线装置10的端点EPl的流程被启动,以及排程管理单元130会经由路径A而从端点管理单元110得到通用串行总线装置10的端点EPl的状态。然后,排程管理单元130会经由路径B而得到来自于传输管理单元120且对应于端点EPl的传输信息。接着,在时间周期T2,串行总线主机控制器100的排程管理单元130会经由路径C提供封包EP1_PKT至通用串行总线装置10的端点EPl。然后,通用串行总线装置10的端点EPl会经由路径D提供响应EP1_RESP至串行总线主机控制器100的排程管理单元130。接着,在时间周期T3,根据响应EP1_RESP,排程管理单元130会经由路径E来将对应于端点EPl的传输信息更新至传输管理单元120。然后,排程管理单元130会经由路径F而将通用串行总线装置10的端点EPl的状态更新至端点管理单元110。于是,完成了通用串行总线装置10的端点EPl的流程。接着,在时间周期T4,通用串行总线装置10的端点EP2的流程被启动,以及排程管理单元130会经由路径A而从端点管理单元110得到通用串行总线装置10的端点EP2的状态。然后,排程管理单元130会经由路径B而得到来自于传输管理单元120且对应于端点EP2的传输信息。接着,在时间周期T5,串行总线主机控制器100的排程管理单元130会经由路径C而提供封包EP2_PKT至通用串行总线装置10的端点EP2。然后,通用串行总线装置10的端点EP2会经由路径D来提供响应EP2_RESP至串行总线主机控制器100的排程管理单元130。接着,在时间周期T6,根据响应EP2_RESP,排程管理单元130会经由路径E而将对应于端点EP2的传输信息更新至传输管理单元120。然后,排程管理单元130会经由路径F而将通用串行总线装置10的端点EP2的状态更新至端点管理单元110。于是,完成了通用串行总线装置10的端点EP2的流程。在图2中,端点EPl的流程以及端点EP2的流程是依序被执行的。因此,在端点EPl与端点EP2的流程之间会有大的延迟(latency)存在。
[0023]图3是显示根据本发明实施例所述的通用串行总线主机控制器200。通用串行总线主机控制器200包括端点管理单元210、传输管理单元220以及排程管理单元230。端点管理单元210是用来管理通用串行总线装置10的端点配置,其中端点配置包括通用串行总线装置10的端点EP1-EP5的多个状态。传输管理单元220是用来传输关于通用串行总线装置10的端点EP1-EP5在系统内存20与通用串行总线主机控制器200之间的传输信息的数据。在通用串行总线装置10,每一端点EP1-EP5可执行个别的操作。举例来说,端点EPl是执行输出操作(OUT operation),而端点EP2是执行输入操作(IN operation)。排程管理单元230包括多个阶段处理单元240_l-240_n,用来并行地(parallel)处理通用串行总线装置10的端点EP1-EP5的流程,其中每一阶段处理单元240_l-240_n是用来管理通用串行总线装置10的端点EP1-EP5的路径A、B、C、D、E与F的至少一个路径。
[0024]图4是显示根据本发明另一实施例所述的通用串行总线主机控制器300。通用串行总线主机控制器300包括端点管理单元310、传输管理单元320以及排程管理单元330,其中排程管理单元330包括六个阶段处理单元340_1至340_6,用来分别管理路径A、B、C、D、E与F的操作。图5A与图5B是显示根据本发明实施例所述的排程方法,适用于图3的通用串行总线主机控制器300。根据该排程方法,排程管理单元330的排程流程可划分成不同子流程,且排程管理单元330的阶段处理单元340_1至340_6是以管线式(pipeline)方式来负责管理每一个子流程。参考图4以及图5A与图5B,首先,在步骤S502,端点EPl的流程被启动,而阶段处理单元340_1会从端点管理单元310得到通用串行总线装置10的端点EPl的状态(例如16字节端点内容)。接着,在步骤S504,相应于端点EPl的状态,阶段处理单元340_2会从传输管理单元320得到通用串行总线装置10的端点EPl的传输信息(例如16字节组队列描述符以及1024字节数据内容)。接着,在步骤S506,阶段处理单元340_3会根据端点EPl的传输信息来传送封包EP1_PKT至通用串行总线装置10的端点EPl。接着,在步骤S508,阶段处理单元340_4会得到来自于通用串行总线装置10的端点EPl的回应EP1_RESP,其中通用串行总线装置10的端点EPl是根据所接收到的封包EP1_PKT而来提供响应EP1_RESP至阶段处理单元340_4。接着,在步骤S510,根据来自于通用串行总线装置10的响应EP1_RESP,阶段处理单元340_5会将通用串行总线装置10的端点EPl的传输信息更新至传输管理单元320。接着,在步骤S512,相应于已更新的传输信息,阶段处理单元340_6会将通用串行总线装置10的端点EPl的状态更新至端点管理单元310。于是,完成了端点EPl的流程。再者,当端点EP2的流程被启动时,阶段处理单元340_1会从端点管理单元310得到通用串行总线装置10的端点EP2的状态(步骤S522)。在此实施例中,当封包EP1_PKT被传送至通用串行总线装置10的端点EPl (步骤S506)时,端点EP2的流程会被启动。值得注意的是,在步骤S506启动端点EP2的流程仅作为例子。因此,在启动了端点EPl的流程(例如步骤S502)之后,可以在任何时间点来启动端点EP2的流程,如虚线所显示。在排程管理单元330中,阶段处理单元340_1能在步骤S502之后对所得到的端点EP2的状态进行处理,因此可管线式地执行不同端点的流程。再者,在步骤S524,相应于端点EP2的状态,阶段处理单元340_2会从传输管理单元320得到通用串行总线装置10的端点EP2的传输信息。接着,在步骤S526,阶段处理单元340_3会根据端点EP2的传输信息而传送封包EP2_PKT至通用串行总线装置10的端点EP2。接着,在步骤S528,相应于封包EP2_PKT,阶段处理单元340_4会得到来自于通用串行总线装置10的端点EP2的回应EP2_RESP。接着,在步骤S530,根据来自于通用串行总线装置10的响应EP2_RESP,阶段处理单元340_5会将通用串行总线装置10的端点EP2的传输信息更新至传输管理单元320。接着,在步骤S532,相应于已更新的传输信息,阶段处理单元340_6会将通用串行总线装置10的端点EP2的状态更新至端点管理单元310。于是,完成了端点EP2的流程。相似地,当端点EP3的流程被启动时,阶段处理单元340_1会从端点管理单元310得到通用串行总线装置10的端点EP3的状态(步骤S542)。在此实施例中,当得到端点EP2的传输信息(步骤S524)时,端点EP3的流程会被启动。值得注意的是,在步骤S524中启动端点EP3的流程仅作为例子。因此,在启动了端点EP2的流程(例如步骤S522)之后,可以在任何时间点来启动端点EP3的流程,如虚线所显示。在排程管理单元330中,阶段处理单元340_1能在步骤S522之后对所得到的端点EP3的状态进行处理,因此可管线式地执行不同端点的流程。再者,在步骤S544,相应于端点EP3的状态,阶段处理单元340_2会从传输管理单元320得到通用串行总线装置10的端点EP3的传输信息。接着,在步骤S546,阶段处理单元340_3会根据端点EP3的传输信息而传送封包EP3_PKT至通用串行总线装置10的端点EP3,以及下一个端点的流程会被启动,以此类推。因此,通过使用阶段处理单元340_1至340_6,排程管理单元330可以同时地执行通用串行总线装置10的端点EP1-EP5的不同流程。值得注意的是,排程管理单元330包括六个阶段处理单元340_1-340_6仅作为例子,并非用来限定本发明。
[0025]图6是显示在图4的通用串行总线主机控制器300以及通用串行总线装置10之间根据图5A与图5B所述的排程方法的数据传输的示意图。在图6中,通用串行总线主机控制器300以及通用串行总线装置10建立了 USB3.0通信,其中通用串行总线主机控制器300 是经由传送器差动信号对(transmitter differential signals) SSTX+/SSTX-来传送封包至通用串行总线装置10,而通用串行总线主机控制器300是经由接收器差动信号对(receiver differential signals) SSRX+/SSRX-而接收到来自通用串行总线装置10的响应。同时参考图5A、图5B与图6,在时间周期Pl中,通用串行总线装置10的端点EPl的流程被启动,且步骤S502与步骤S504会被执行。在时间周期P2,执行步骤S506来提供来自通用串行总线主机控制器300的封包EP1_PKT至通用串行总线装置10。然后,通用串行总线装置10会提供响应EP1_RESP至通用串行总线主机控制器300 (步骤S508)。在传送封包EP1_PKT至通用串行总线装置10之后,可在时间周期P3内对通用串行总线装置10的端点EP2执行步骤S522以及步骤S524。在接收到响应EP1_RESP之后,可在时间周期P4内对端点EPl执行步骤S510以及步骤S512。在时间周期P5,执行步骤S526以提供来自通用串行总线主机控制器300的封包EP2_PKT至通用串行总线装置10。然后,通用串行总线装置10会提供响应EP2_RESP至通用串行总线主机控制器300(步骤S528)。在传送了封包EP2_PKT至通用串行总线装置10之后,可在时间周期P6内对通用串行总线装置10的端点EP3执行步骤S542以及步骤S544。在接收到响应EP2_RESP之后,可在时间周期P7内对通用串行总线装置10的端点EP2执行步骤S530以及步骤S532。在时间周期P8,执行步骤S546以提供来自通用串行总线主机控制器300的封包EP3_PKT至通用串行总线装置10。然后,通用串行总线装置10会提供响应EP3_RESP至通用串行总线主机控制器300。因此,排程管理单元330可同时处理端点EP1、EP2与EP3的不同流程。相较于图2的传统数据传输,图6中不同端点的流程之间的延迟会减少,而通用串行总线装置10以及通用串行总线主机控制器300之间的USB总线带宽可以更有效地使用。相似地,图5A与图5B的排程方法可使用在USB2.0通信中,其中通用串行总线主机控制器以及通用串行总线装置是经由一差动信号对(differential signals)D+/D-来传送封包以及回应。
[0026]图7是显示根据本发明另一实施例所述的排程方法,适用于图4的通用串行总线主机控制器300。参考图4与图7,首先,在步骤S702,端点EPl的流程被启动,而阶段处理单元340_1会从端点管理单元310得到通用串行总线装置10的端点EPl的状态(例如16字节端点内容)。接着,在步骤S704,相应于端点EPl的状态,阶段处理单元340_2会从传输管理单元320得到通用串行总线装置10的端点EPl的传输信息(例如16字节组队列描述符以及1024字节数据内容)。接着,在步骤S706,根据在步骤S704所得到的端点EPl的传输信息,阶段处理单元340_3可传送封包EP1_PKT1至通用串行总线装置10的端点EP1,而端点EPl的下一个流程会被启动。值得注意的是,在步骤S706中启动端点EPl的下一个流程仅是个例子。因此,在阶段处理单元340_2得到端点EPl的目前流程的传输信息(例如步骤S704)之后,可以在任何时间点来启动端点EPl的下一个流程,如虚线所显示。在排程管理单元330中,阶段处理单元340_2能在步骤S704之后对所得到的端点EPl的下一个流程的传输信息进行处理,因此可管线式地执行端点EPl的不同流程。接着,在步骤S708,阶段处理单元340_4得到来自于通用串行总线装置10的端点EPl的回应EP1_RESP1,其中通用串行总线装置10的端点EPl会根据所接收的封包EP1_PKT1来提供响应EP1_RESP1至阶段处理单元340_4。接着,在步骤S710,根据来自于通用串行总线装置10的响应EP1_RESP1,阶段处理单元340_5会将通用串行总线装置10的端点EPl的传输信息更新至传输管理单元320。于是,完成了端点EPl的目前流程。此外,当端点EPl的下一个流程被启动时,相应于端点EPl的状态,阶段处理单元340_2会从传输管理单元320得到通用串行总线装置10的端点EPl的传输信息(步骤S724)。接着,在步骤S726,根据在步骤S724所得到的端点EPl的传输信息,阶段处理单元340_3会传送封包EP1_PKT2至通用串行总线装置10的端点EPl,且端点EPl的最后流程会被启动。如先前所描述,可以在步骤S724之后的任何时间点来启动端点EPl的最后流程,因此可管线式地执行端点EPl的不同流程。接着,在步骤S728,相应于封包EP1_PKT2,阶段处理单元340_4会得到来自于通用串行总线装置10的端点EPl的回应EP1_RESP2。接着,在步骤S730,阶段处理单元340_5会根据来自于通用串行总线装置10的响应EP1_RESP2,而将通用串行总线装置10的端点EPl的传输信息更新至传输管理单元320。于是,完成了端点EPl的下一个流程。再者,当端点EPl的最后流程被启动时,阶段处理单元340_2会相应于端点EPl的状态而从传输管理单元320得到通用串行总线装置10的端点EPl的传输信息,且端点EP2的流程会被启动(步骤S744)。接着,在步骤S746,根据在步骤S744所得到的端点EPl的传输信息,阶段处理单元340_3会根据在步骤S744所得到的端点EPl的传输信息来传送封包EP1_PKT3至通用串行总线装置10的端点EPl。接着,在步骤S748,阶段处理单元340_4会得到来自于通用串行总线装置10的端点EPl的回应EP1_RESP3,其中通用串行总线装置10的端点EPl会根据所接收到的封包EP1_PKT3而来提供响应EP1_RESP3至阶段处理单元340_4。接着,在步骤S750,阶段处理单元340_5会根据来自通用串行总线装置10的响应EP1_RESP3,而将通用串行总线装置10的端点EPl的传输信息更新至传输管理单元320。接着,在步骤S752,相应于在步骤S750所更新的传输信息,阶段处理单元340_6会将通用串行总线装置10的端点EPl的状态更新至端点管理单元310。于是,完成了端点EPl的最后流程。再者,当端点EP2的流程被启动时,阶段处理单元340_1会从端点管理单元310得到通用串行总线装置10的端点EP2的状态(步骤S762)。接着,在步骤S764,相应于端点EP2的状态,阶段处理单元340_2会从传输管理单元320得到通用串行总线装置10的端点EP2的传输信息。接着,在步骤S766,阶段处理单元340_3会根据端点EP2的传输信息而传送封包EP2_PKT至通用串行总线装置10的端点EP2,且下一端点的流程会被启动。接着,在步骤S768,相应于封包EP2_PKT,阶段处理单元340_4会得到来自于通用串行总线装置10的端点EP2的回应EP2_RESP,以此类推。因此,通过使用阶段处理单元340_1至340_6,排程管理单元330可同时地执行通用串行总线装置10中不同端点的不同流程以及具有多封包的单一端点的不同流程。
[0027]图8A与图SB是显示在图4的通用串行总线主机控制器300以及通用串行总线装置10之间根据图7所述的排程方法的数据传输的示意图。在图8A与图SB中,通用串行总线主机控制器300以及通用串行总线装置10建立了 USB3.0通信,其中通用串行总线主机控制器300是经由传送器差动信号对SSTX+/SSTX-来传送封包至通用串行总线装置10,而通用串行总线主机控制器300是经由接收器差动信号对SSRX+/SSRX-而接收来自于通用串行总线装置10的响应。同时参考图8A与图7,在时间周期SI,通用串行总线装置10的端点EPl的流程被启动,以及步骤S702与步骤S704会被执行。在时间周期S2,执行步骤S706以提供来自于通用串行总线主机控制器300的封包EP1_PKT1至通用串行总线装置10。然后,通用串行总线装置10会提供响应EP1_RESP1至通用串行总线主机控制器300(步骤S708)。在接收到响应EP1_RESP1之后,可于时间周期S6内对通用串行总线装置10的端点EPl执行步骤S710。当封包EP1_PKT1被传送至通用串行总线装置10时,可于时间周期S3内对通用串行总线装置10的端点EPl执行步骤S724。在时间周期S4,执行步骤S726以提供来自于通用串行总线主机控制器300的封包EP1_PKT2至通用串行总线装置10。然后,通用串行总线装置10会提供响应EP1_RESP2至通用串行总线主机控制器300 (步骤S728)。在图8B中,在接收到响应EP1_RESP2之后,可于时间周期S9对端点EPl执行步骤S730。在时间周期S5,可执行步骤S744。在时间周期S7,执行步骤S746以提供来自于通用串行总线主机控制器300的封包EP1_PKT3至通用串行总线装置10。然后,通用串行总线装置10会提供响应EP1_RESP3至通用串行总线主机控制器300 (步骤S748)。在接收到响应EP1_RESP3之后,可于时间周期SlO对端点EPl来执行步骤S750以及步骤S752。在传送封包EP1_PKT3至通用串行总线装置10之后,可于时间周期S8对通用串行总线装置10的端点EP2执行步骤S762以及步骤S764。在时间周期S11,执行步骤S766以提供来自于通用串行总线主机控制器300的封包EP2_PKT至通用串行总线装置10。然后,通用串行总线装置10会提供响应EP2_RESP至通用串行总线主机控制器300 (步骤S768)。因此,排程管理单元330可同时处理端点EPl的不同封包以及端点EPl和EP2的不同流程。相似地,图8A与图SB的排程方法可使用在USB2.0通信中,其中通用串行总线主机控制器以及通用串行总线装置是经由差动信号对D+/D-来传送封包以及回应。
[0028]以上所述仅为本发明的较佳实施方式,凡依本发明权利要求所做的均等变化与修饰,都应属本发明的涵盖范围。
【权利要求】
1.一种通用串行总线主机控制器,包括: 端点管理单元,用来管理通用串行总线装置的端点配置,其中上述通用串行总线装置包括多个端点,以及上述端点配置包括上述通用串行总线装置的上述多个端点的多个状态; 传输管理单元,用来传输关于上述通用串行总线装置的上述端点在系统内存以及上述通用串行总线主机控制器之间的传输信息的数据;以及 排程管理单元,用来同时地管理上述通用串行总线装置的至少两个上述端点的封包传输。
2.根据权利要求1所述的通用串行总线主机控制器,其中上述排程管理单元包括: 第一阶段处理单元,用来得到来自于上述端点管理单元的上述通用串行总线装置的第一端点的状态; 第二阶段处理单元,用来根据上述通用串行总线装置的上述第一端点的状态,而得到来自于上述传输管理单元的上述通用串行总线装置的上述第一端点的传输讯息; 第三阶段处理单元,用来根据上述通用串行总线装置的上述第一端点的传输讯息,而传送第一封包至上述通用串行总线装置的上述第一端点;以及 第四阶段处理单元,用来相应于上述第一封包而得到来自于上述通用串行总线装置的上述第一端点的第一回应, 其中在上述第三阶段处理单元传送上述第一封包至上述通用串行总线装置的上述第一端点之后,上述第一阶 段处理单元从上述端点管理单元得到上述通用串行总线装置的第二端点的状态,以便上述第二阶段处理单元根据上述通用串行总线装置的上述第二端点的状态,而得到来自于上述传输管理单元的上述通用串行总线装置的上述第二端点的传输讯肩、O
3.根据权利要求2所述的通用串行总线主机控制器,其特征在于,上述排程管理单元更包括: 第五阶段处理单元,用来根据来自于上述通用串行总线装置的上述第一端点的上述第一回应,而将上述通用串行总线装置的上述第一端点的传输信息更新至上述传输管理单元;以及 第六阶段处理单元,用来根据上述通用串行总线装置的上述第一端点的已更新的传输信息,而将上述通用串行总线装置的上述第一端点的状态更新至上述端点管理单元。
4.根据权利要求3所述的通用串行总线主机控制器,其特征在于,当上述第五阶段处理单元对上述通用串行总线装置的上述第一端点的传输信息进行更新时,上述第三阶段处理单元根据上述通用串行总线装置的上述第二端点的传输信息而传送第二封包至上述通用串行总线装置的上述第二端点,以便上述第四阶段处理单元相应于上述第二封包而得到来自于上述通用串行总线装置的上述第二端点的第二回应。
5.根据权利要求4所述的通用串行总线主机,其特征在于,当上述第三阶段处理单元将上述第二封包传送至上述通用串行总线装置的上述第二端点时,上述第一阶段处理单元得到来自于上述端点管理单元的上述通用串行总线装置的第三端点的状态,以便上述第二阶段处理单元根据上述通用串行总线装置的上述第三端点的状态,而得到来自于上述传输管理单元的上述通用串行总线装置的上述第三端点的传输讯息。
6.根据权利要求1所述的通用串行总线主机控制器,其特征在于,上述排程管理单元包括: 第一阶段处理单元,用来得到来自于上述端点管理单元的上述通用串行总线装置的第一端点的状态; 第二阶段处理单元,用来根据上述通用串行总线装置的上述第一端点的状态,而得到来自于上述传输管理单元的上述通用串行总线装置的上述第一端点的第一传输讯息; 第三阶段处理单元,用来根据上述通用串行总线装置的上述第一端点的上述第一传输讯息,而传送第一封包至上述通用串行总线装置的上述第一端点;以及 第四阶段处理单元,用来相应于上述第一封包而得到来自于上述通用串行总线装置的上述第一端点的第一回应, 其中当上述第三阶段处理单元传送上述第一封包至上述通用串行总线装置的上述第一端点时,上述第二阶段处理单元根据上述通用串行总线装置的上述第一端点的状态,而得到来自于上述传输管理单元的上述通用串行总线装置的上述第一端点的第二传输讯息。
7.根据权利要 求6所述的通用串行总线主机控制器,其特征在于,当上述第四阶段处理单元得到来自于上述通用串行总线装置的上述第一端点的上述第一响应时,上述第三阶段处理单元根据上述通用串行总线装置的上述第一端点的上述第二传输信息,而传送第二封包至上述通用串行总线装置的上述第一端点。
8.根据权利要求7所述的通用串行总线主机控制器,其特征在于,当上述第三阶段处理单元传送上述第二封包至上述通用串行总线装置的上述第一端点时,上述第二阶段处理单元根据上述通用串行总线装置的上述第一端点的状态,而得到来自于上述传输管理单元的上述通用串行总线装置的上述第一端点的第三传输讯息,以及当上述第四阶段处理单元相应于上述第二封包而得到来自于上述通用串行总线装置的上述第一端点的第二响应时,上述第三阶段处理单元根据上述通用串行总线装置的上述第一端点的上述第三传输信息,而传送第三封包至上述通用串行总线装置的上述第一端点。
9.根据权利要求8所述的通用串行总线主机控制器,其特征在于,当上述第二阶段处理单元得到上述通用串行总线装置的上述第一端点的上述第三传输信息时,上述第一阶段处理单元得到来自于上述端点管理单元的上述通用串行总线装置的第二端点的状态,以便上述第二阶段处理单元根据上述通用串行总线装置的上述第二端点的状态,而得到来自上述传输管理单元的上述通用串行总线装置的上述第二端点的传输讯息。
10.根据权利要求9所述的通用串行总线主机控制器,其特征在于,在上述第四阶段处理单元相应于上述第三封包而得到来自于上述通用串行总线装置的上述第一端点的第三响应之后,上述第三阶段处理单元根据上述通用串行总线装置的上述第二端点的传输信息而将第四封包传送至上述通用串行总线装置的上述第二端点。
11.根据权利要求10所述的通用串行总线主机控制器,其特征在于,上述排程管理单元更包括: 第五阶段处理单元,用来分别根据来自于上述通用串行总线装置的上述第一端点的上述第一、第二与第三回应,而将上述通用串行总线装置的上述第一端点的上述第一、第二与第三传输信息更新至上述传输管理单元;以及 第六阶段处理单元,用来根据已更新的上述第三传输信息,而将上述通用串行总线装置的上述第一端点的状态更新至上述端点管理单元。
12.—种排程方法,适用于通用串行总线主机控制器,其特征在于,上述通用串行总线主机控制器是耦接于包括多个端点的通用串行总线装置,包括: 通过排程管理单元,管理上述通用串行总线装置的上述多个端点的封包传输,其中管理上述通用串行总线装置的每一上述端点的封包传输的步骤包括六阶段: 得到上述通用串行总线装置的上述多个端点其中之一个端点的状态; 得到上述通用串行总线装置的上述多个端点的该端点的传输信息; 传送封包至上述通用串行总线装置的上述多个端点的该端点; 得到来自于上述通用串行总线装置的上述多个端点的该端点的回应; 更新上述通用串行总线装置的上述多个端点的该端点的传输信息;以及 更新上述通用串行总线装置的上述多个端点的该端点的状态, 对于上述通用串行总线装置的不同的端点,其中上述六个阶段中的至少两阶段会同时被执行。
13.根据权利要求12所述的排程方法,其特征在于,当上述通用串行总线装置的上述多个端点的该端点被启动时,得到上述多个端点的该端点的状态,以及根据上述多个端点的该端点的状态,而得到上述通用串行总线装置的上述多个端点的该端点的传输信息。
14.根据权利要求12所 述的排程方法,其特征在于,根据上述多个端点的该端点的传输信息,传送上述封包至上述通用串行总线装置的上述多个端点的该端点,以及上述通用串行总线装置的上述多个端点的该端点是相应于上述封包而提供上述响应至上述通用串行总线主机控制器。
15.根据权利要求12所述的排程方法,其特征在于,根据来自上述通用串行总线装置的上述多个端点的该端点的上述回应,更新上述通用串行总线装置的上述多个端点的该端点的传输信息,以及根据上述通用串行总线装置的上述多个端点的该端点的已更新的传输信息,更新上述通用串行总线装置的上述多个端点的该端点的状态。
16.一种排程方法,适用于通用串行总线主机控制器,其中上述通用串行总线主机控制器是耦接于包括多个端点的通用串行总线装置,包括: 通过排程管理单元,管理上述通用串行总线装置的上述多个端点的封包传输,其中管理上述通用串行总线装置的每一上述端点的封包传输的步骤包括六阶段: 得到上述通用串行总线装置的所对应的上述端点的状态; 得到上述通用串行总线装置的所对应的上述端点的传输信息; 传送一包至上述通用串行总线装置的所对应的上述端点; 得到来自上述通用串行总线装置的所对应的上述端点的回应; 更新上述通用串行总线装置的所对应的上述端点的传输信息;以及 更新上述通用串行总线装置的所对应的上述端点的状态, 其中六个阶段中的至少两阶段会同时被上述通用串行总线装置的所对应的上述端点的不同封包所执行。
17.根据权利要求16所述的排程方法,其特征在于,当上述通用串行总线装置的所对应的上述端点被启动时,得到所对应的上述端点的状态,以及根据所对应的上述端点的状态,得到上述通用串行总线装置的所对应的上述端点的传输信息。
18.根据权利要求16所述的排程方法,其特征在于,根据所对应的上述端点的传输信息,传送上述封包至上述通用串行总线装置的所对应的上述端点,以及相应于上述封包,上述通用串行总线装置的所对应的上述端点提供上述响应至上述通用串行总线主机控制器。
19.根据权利要求16所述的排程方法,其特征在于,根据来自上述通用串行总线装置的所对应的上述端点的上述回应,更新上述通用串行总线装置的所对应的上述端点的传输信息,以及根据来自上述通用串行总线装置的所对应的上述端点的已更新的传输信息,更新上述通用串行总线装置的所对应的上述端点的状态。
20.根据权利要求16所述的排程方法,其特征在于,所对应的上述端点的六个阶段中对应于不同封包的至少两 阶段会同时被执行。
【文档编号】G06F13/38GK103455462SQ201310202705
【公开日】2013年12月18日 申请日期:2013年5月28日 优先权日:2012年5月29日
【发明者】陈昱勋 申请人:联发科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1