用于无线传输的调度表和数据缓存的制作方法

文档序号:7921695阅读:205来源:国知局
专利名称:用于无线传输的调度表和数据缓存的制作方法
技术领域
本发明的一些实施例总体上涉及数据操作。具体而言, 一些实施例涉 及用于无线传输的调度表和数据缓存。
背景技术
计算系统和其它电子系统一般在众多部件之间的有线总线上传输数 据。使用多种不同的协议来进行这样的数据传输,这些协议包括通用串行
总线(USB)的变形(USB 1, USB2.0和任何后续标准)和其它总线标准。 许多不同的设备可以依照这样的操作来连接,这需要大量的有线连接。
系统正在向数量日益增加的无线操作过渡,所述无线操作包括无线 USB (USB-IF-USB实施者论坛的认证无线USB)。使用无线操作(例如, 无线USB)允许连接多个设备,且不需要很多有线连接。作为替代,以无 线方式对从系统中的多个设备传输的数据单元进行处理。
然而,使用无线USB或者类似系统要求调度数据以便于多个相连设备 进行传输,并且要求将这样的调度提供给无线控制器。从主机系统驱动器 到先线控制器的这种顺序的传输会引起大量的事务,这些事务实时分布在 连接无线控制器和包含主机控制器驱动器的主机系统的总线上。这很少允 许主机平台进入低功率状态。


在附图的各幅图中,以举例的方式而不是限制的方式示出了本发明的 实施例,在附图中,相同的附图标记指代相同的元件。
图1示出了用于缓存无线调度表和数据的系统的实施例; 图2示出了为无线传输缓存调度表和数据的系统的实施例; 图3示出了为无线传输缓存调度表和数据的过程; 图4示出了无线主机控制器缓存单元的一种格式的实施例;图5示出了可以实施本发明实施例的无线通用串行总线部件和模块;
以及
图6的流程图示出了无线控制器缓存数据的过程的实施例。
具体实施例方式
本发明的实施例涉及用于无线传输的调度表和数据缓存。
在一些实施例中,提供了一种过程来改善无线传输的效率。在一些实 施例中,无线控制器配备了异步调度表和控制/批量数据缓存。在实施例中, 无线控制器是USB无线主机控制器(WHC)实现方式。
在一些实施例中,可以将WHC模块实现在附加卡上或者实现在经由总 线与平台接口的类似部件上,或者可替换地将WHC模块嵌入在平台中。总 线可以包括PCI (外围部件互连)或者PCIe (PCI Express)标准总线。本 说明书将集中在WHC模块存在于附加卡上的实现方式,但是本发明的实施 例不限于这种实现方式。在一些实施例中,用于实现缓存的逻辑存在于 WHC模块上。在无线USB中,认证无线通用串行总线的无线主机控制器 接口规范(包括2006年6月16日发布的修订版本0.95和所有后续修订版 本)描述了系统软件与无线通用串行总线(无线USB)主机系统的UWB (超宽带)多接口控制器之间的接口。
在无线USB操作中,使用QSet (或队列集)来描述发往或者来自端点 的无线事务。WHC使用一个或者多个QSet来创建事务组。QSet包括QHead 和一个或多个qTD (队列单元传输描述符)结构。QHead包含多个已定义 的单元,包括指向下一个QHead的指针(WusbAsyncListAddr)。通常,WHC 使用QSet的处理模型是
(1) 读取一个或者多个QSet并基于所述QSet的传输描述符来创建事 务组。
(2) 执行事务组,按照需要将数据移入或移出系统。
(3) 将事务的结果写入各个QHead的覆盖区域(overlay area)。
(4) 重复(1) 一 (3),直到达到结束条件。
WHC采用两种类型的调度表,这些调度表是周期性调度表和异步调度 表。异步调度表是基于异步传输列表的。使用异步传输列表来管理所有控制,并且管理批量传输。异步传输列表是QHead的循环列表, WusbAsyncListAddr是指向下一个QHead的指针。异步传输列表为所有链 接到异步列表的QHead实现了轮转调度(round-robin)服务。
在一些实施例中,主机中的WHCI (无线主机接口)驱动器在主机存 储器中配备了异步调度表,然后启用该调度表。在一些实施例中,WHC维 护活动QSet的缓存。在一些实施例中,连同活动QSet—起,WHC还缓存 页列表条目的子集。此外,WHC保存了每个QSet的当前页索引和当前页 指针,如此一来当关联于QSet的端点再次在调度表中获得机会时,可以从 正确的点发起下一个后继数据传输。对于异步数据而言,控制器具有一个 发送队列和一个接收队列。
在一些实施例中,更新缓存来反映异步调度表中的变化。在一些实施 例中,无论何时WHCI驱动器更新调度表来增加或者去除QSet,或者无论 何时不活动QSet变成活动QSet或活动QSet变成不活动QSet,都通过命令 告知WHC。 一旦接收到更新,WHC将更新它的内部缓存以反映这些变化。
当多个QSet是活动时,为了向所有端点赋予轮转调度公平性,WHC 针对特定QSet将仅提取最大长度等于最大端点大小(endpointsize)乘以最 大突发大小(burstsize)的数据。然后它将移动到下一个QSet。基于RF链接 质量和设备响应,WHC能够针对任何端点动态地改变突发量, 一直到最大 突发量。
在无线主机控制器的操作中,合并了对主机存储器的数据访问。对于 发送操作而言,在计算出每个端点能够发送多少数据后,WHC将从主机存 储器中提取在数量上与能装入WHC TX (发送)数据缓冲器中的数据一样 多的数据。如果具有供来自不同QSet的数据使用的空间,那么他们都将被 提取。对于控制器而言,具有一个与每个数据队列相关的阈值。对于TX而 言,仅在已经以无线方式(over the air)传输了足够多的数据并且TX队列 中昀数据已经下降到阈值以下时,才再一次从主机存储器中提取数据。这 将使得主机平台在数据传输之间进入低功率状态。
对于接收操作而言,事务调度器将调度事务来对用于IN (IN描述数据 方向)事务的设备进行轮询。 一旦接收到数据,就将这种数据放置在RX(接 收)队列中。如果提供了足够的缓冲,那么作为理想情况WHC能够保持数据直到达到RX队列阈值或者达到超时,然后写入到主机存储器。当数据模 式短小且间断时,那么写入到主机存储器可以在从数据到达开始计时到发 生超时的时刻完成。这将允许主机平台在数据传输之间进入低功率状态。 在可能时,WHC应该针对发送和接收操作对访问主机平台进行同步。 在一些实施例中,将活动异步调度表和相关的页列表条目缓存在WHC 本地存储器中。为此,主机存储器通常仅被要求在有数据要发送或者接收 时才被访问。例如,对于以无线方式进行的批量IN事务而言, 一旦缓存了 调度表,就不访问主机存储器,除非在轮询无线设备时无线设备返回了数 据。.因为这个原因,平台进入低功率状态,从而通过使用数据缓存降低了 总体功耗。
甚至在活动数据传输时访问主机存储器期间,也能够通过合并访问来 降低平台功耗。需要在WHC中缓存的最少数据取决于从主机存储器提取数 据的等待时间。然而,通过增大WHC中的这一数据缓冲存储器,足够多的 数据可以在WHC中得到缓冲,这样不用频繁地访问主机平台存储器。
在一些实施例中,数据传输通过使用数据缓存而得到了改善。当由于 通过无线方式发送的机会而从主机存储器提取数据或者将数据写入到主机 存储器时,或者接收到数据时,通过将活动异步调度表和相关的页列表条 目一同缓存,WHC不必访问主机平台存储器来提取调度表或者页列表。这 允许优化使用空中时间(airtime),并因此改善了数据吞吐量。
在一些实施例中,算法仅缓存那些活动的QSet,从而减少了数据传输 和存储。WHCD主机驱动器不能迅速地从调度表中去除不活动QSet。通过 仅缓存活动QSet,减少了 WHC缓存存储器需求和使用计划(utilization cast)。为了通过在事务组内放置很多的事务来使得WHC以无线方式调度事 务最优化,有益的是使WHC知道尽可能多的调度表。通过将QSet的缓存 限制为活动QSet,该过程使WHC的可用有用信息最大化。
图1示出了用于缓存无线调度表和数据的系统的实施例。在这个示例 中,主机平台102包括无线控制器驱动器104。驱动器104生成无线事务的 调度表106和事务的表条目108。主机平台102可以经由总线110耦合到无 线控制器112,如无线USB控制器。无线控制器112根据无线事务的调度 表来进行操作。然而,为了提高操作效率,无线控制器112生成调度表的缓存114,缓存114仅包括活动事务单元116和页列表的条目子集118,其 包括用于描述活动事务的相关页列表条目。
图2示出了为无线传输缓存调度表和数据的系统的实施例。在这个示 例中,在主机平台202上包括WHCI驱动器204。驱动器204包括数据存 储器,其可以存储于主机平台202的存储单元中。存储器可以包括动态随 机存取存储器(DRAM)和静态随机存取存储器(SRAM), DRAM需要刷 新存储内容,而SRAM不需要刷新内容,但是增加了成本。DRAM存储器 可以包括同步动态随机存取存储器(SDRAM)和扩展数据输出动态随机存 取存储器(EDODRAM), SDRAM包括控制信号的时钟信号。数据存储器 206可以包括要被调度的QSet的页条目。驱动器204生成QSet的异步调度 表。在这个示例中,在事务组中调度8个QSet,即QS1到QS8。然而,在 操作中只有六个QSet是当前活动的,这些QSet中的QS2和QS6是不活动 的。主机平台202经由总线210与无线主机控制器212耦合,该无线主机 控制器212耦合到UWB无线电PHY (物理层设备),总线210可以包括但 不限于PCI或者PCIe标准总线。无线主机控制器212包括QSet的缓存214, 该缓存被限于活动QSet。将缓存的集合加入到事务组中,包括缓存头指针 216和缓存尾指针218,缓存头指针216用于指定组的开始,而缓存尾指针 218用于指定组的结束。如图所示,WusbAsyncListAddr 220包含每个QSet 指向下一个QSet的指针。无线主机控制器212还包括MMC (微调度管理 命令)生成器和WUSB事务调度器,它们的功能包括对缓存的QSet进行调 度。无线主机控制器还包括用于发送数据(TX)和接收数据(RX)的数据 队列224。
图3示出了为无线传输缓存调度表和数据的过程。在示例中,当缓存 大小是8时,图3示出了如何将调度表缓存在WHC中。在这个示例中,主 机中的异步调度表302包括12个单元,即QS1-QS12,其中有8个活动的 单充。然而,这个示例中的活动QSet等于缓存的大小,并且活动QSet可 以更大。缓存自由池(cache free pool) 306示出了缓存的建立,初始时包括 QS3、 QS4和QS5 (310)。然后在缓存中加入了 QS7,其中QS6是不活动 的,随后加入了QS8和QS9 (312)。然后,加入QS12和QS1,从而完成 缓存。 一旦已经缓存了所有活动的单元,那么这个环就被关闭了。从这个点向前看,如果已经完成了每个QSet的几个(将被调整的)活动传输描述 符(TD),那么更新主机存储器中的TD,并且提取新的TD。在一些实施 例中,如果加入或者删除调度表的QSet,或者不活动QSet变为活动,那么 将会有来自驱动器的单独通知。在这种情况下,清洗整个缓存,然后重建 缓存。
图4示出了 WCH缓存单元402的一种格式的实施例。指向主机存储器 中的QSet的指针404实现了对主机存储器中的QSet406的访问。整个QSet 被缓存。在图4提供的示例中,8个条目被缓存在页列表412中。当前页指 针408和当前页索引410指向对应于传输描述符的下一次传输的数据。如 果缓存要被清洗,那么将当前页指针408和当前页索引410存储在主机存 储器中的HC暂存存储器中。如图所示,页指针指向主机存储器中的数据缓 冲器414,在每个事务之后,每个条目都具有当前页指针和当前页索引。
通过将异步调度表和相关的页列表条目一同缓存,可以从主机存储器 中提取数据或者将数据写入到主机存储器中,而不必提取用于每个数据事 务的传输描述符和页列表条目。这改善了空中利用率(airutilization),并由 此改善了数据吞吐量。
在一些实施例中,平台功耗可以通过合并对主机存储器的访问来降低。 通过缓存调度表,仅当要提取或者写入数据时,或者当要更新调度表缓存 时,'才访问平台存储器。此外,通过增加WHC中的数据缓冲,即使由于这 个原因增加了成本,但是对从主机存储器读取和向主机存储器写入进行了 合并,由此使得平台在更长时间内处于低功率状态。
图5示出了可以实施本发明实施例的无线通用串行总线部件和模块。 这些单元包括系统软件520和硬件524,包括UWB多接口控制器522。如 图所示,无线USB总线部件和模块可以包括
客户端驱动器软件(client driver software) 502—客户端驱动器软件502在 对应于特定无线USB设备的主机PC上运行。客户端软件一般是操作系统 的一部分或者被提供给无线USB设备。
.USB驱动器(USBD) 504—USBD是系统软件部件,其概括了用于特
定操作系统的特定主机控制器驱动器的细节。
无线USB主机控制器驱动器(WHCD) 506~WHCD 506在特定的主机控制器硬件与USBD之间提供软件层。
UWB无线电控制器驱动器(URCD) 508—URCD 508是一种系统软件 部件,URCD 508提供了 UWB无线电的控制功能,并且URCD 508是UMC
的每种实现方式所必需的。
无线USB主机控制器(WHC) 510—WHC是无线USB主机控制器的
特定硬件实现方式。
UWB无线电控制器(URC) 512—URC 512是UMC的每种实现方式 中所必需的标准UWB无线电控制功能。
无线USB设备514—这是一个硬件设备,其执行有用的终端用户功能。 与无线USB设备的交互从应用程序经过软件和硬件层流到无线USB设备。
UWB设备516—这是另一个具有UWB无线电接口的外部硬件设备。 这个设备可以具有一个或者多个PAL (协议应用层)功能,例如WiNET (WiMedia网络协议)过程。
UWB无线电518—示出了用于无线操作的物理无线电设备。
图6的流程图示出了无线控制器缓存数据的过程的实施例。在这个示 例中,将无线控制器的队列集的调度表建立在主机系统中(602)。识别调 度表中的活动队列集(606)。仅将活动队列集缓存在无线控制器中(606), 页列表条目的子集也一同被缓存(608)。
无线控制器然后根据缓存于控制器中的活动队列集调度表来操作 (610),而不需要访问主机系统。在发送和接收数据传输之间的时间内,主 机系统可以转换至低功率状态(611),这是因为不需要为了队列集调度而 访问主机系统。如果有数据要发送或者接收(612),那么需要访问主机平 台(614)。 一旦接收到更新缓存的命令(616),无线控制器将采取动作进 行更新,这包括清洗当前缓存(618)并利用更新的数据重新建立缓存。
受益于本公开内容的本领域技术人员应该意识到,在本发明的范围内 可以对上述描述和附图进行许多其它的变形。实际上,本发明并不限于上 述具体实施方式
。相反,包括任意修改的下列权利要求限定了本发明的范围。
在上述说明中,出于解释的目的,阐述了很多具体的细节,以便提供 对本发明的透彻理解。然而,对本领域技术人员显而易见的是,可以在没有这些具体细节中的某些细节的情况下实施本发明。在其他示例中,以方 框图的形式示出了公知的结构和设备。
本发明可以包括各种过程。本发明的过程可以由硬件部件来执行,或 者本发明的过程可以由机器可执行指令来体现,可以使用所述指令来使通 用处理器或专用处理器或者逻辑电路(所述逻辑电路是利用指令编程的) 执行这些过程。可替换地,所述过程可以由硬件和软件的组合来执行。
可以将本发明的部分作为计算机程序产品来提供,它可以包括具有存 储于其上的指令的机器可读介质,可以使用所述指令来对计算机(或其他 电子设备)编程,使之执行根据本发明的过程。所述机器可读介质可以包
括但不限于软盘、光盘、CD-ROM (只读存储光盘)、磁光盘、ROM (只读 存储器)、RAM (随机存取存储器)、EPROM (可擦可编程只读存储器)、 EEPROM (电可擦可编程只读存储器)、磁卡或光卡、闪存或者其它类型的 适于存储电子指令的介质/机器可读介质。此外,还可以将本发明作为计算 机程序产品下载,其中,可以经由通信链路(例如,调制解调器或网络连 接)通过含在载波或其他传播媒介中的数据信号将所述程序从远程计算机 传输到请求计算机。
很多方法是以其最基本的形式描述的,但是在不背离本发明的基本范 围的情况下,可以向所述方法中的任何一种方法中添加过程,或者从其中 删除过程,并且可以向所描述的消息中的任何一个中添加信息,或者从其 中删减信息。对于本领域技术人员显而易见的是,可以做出多种进一步的 修改和调整。提供具体实施例的目的不是要限制本发明,而是为了举例说 明本发明。本发明的范围不是由上文提供的具体例子决定的,而仅由下面 的权利要求决定。
还应当认识到,本说明书全文中提到的"一个实施例"或"实施例"指的是 在本发明的实施中可以包括某个具体特征。类似地,应当认识到,在对本 发明示范性实施例的上述说明中,出于简化公开以及促进对各个创造性方 面中的一者或多者的理解的目的,有时可以在单个实施例、附图或其说明 中将本发明的各种特征组合到一起。然而,不应将这种公开方法解释成反 映了这样的意图,即所要求保护的本发明所需要的特征比每一权利要求中 明确记载的特征多。相反,如下述权利要求所反映的,创造性方面在于比所公开的前述单个实施例的所有特征少。因而,在此将权利要求书明确包 含到本说明书中,其中,每一权利要求本身代表本发明的单独实施例。
权利要求
1、一种方法,包括为无线控制器生成队列调度表,所述调度表在主机系统的驱动器上生成;将来自所述主机系统的调度表数据缓存在所述无线控制器上,其中所述缓存包括活动队列,以及所述活动队列的页列表条目;以及基于所缓存的队列来操作所述无线控制器。
2、 根据权利要求1所述的方法,其中所述无线控制器是无线USB控 制器。
3、 根据权利要求1所述的方法,其中每个队列包括事务的队列集 (QSet)。
4、 根据权利要求1所述的方法,进一步包括接收所述活动队列的变化, 并且基于所接收到的变化来重新建立所缓存的调度表。
5、 根据权利要求1所述的方法,其中所述活动队列的变化包括增加调 度的队列,删除调度的队列或者改变队列的活动状态。
6、 根据权利要求1所述的方法,进一步包括当所述无线控制器基于 所缓存的队列操作时,将所述主机系统转换至低功率状态。
7、 一种无线控制器,包括具有缓存的存储器,所述缓存用于保存活动队列和所述活动队列的页 列表条目,从主机平台接收所缓存的数据或者将所缓存的数据发送到所述 主机平台,所述无线控制器基于所述活动队列中的传输描述符来生成事务组;以及数据队列,用于根据所述活动队列来发送和接收数据; 其中所述无线控制器根据所述活动队列的所述传输描述符来生成无线 事务。
8、 根据权利要求7所述的无线控制器,其中所述无线控制器是无线 USB控制器。
9、 根据权利要求8所述的无线控制器,其中每个队列包括事务的队列 集(QSet)。
10、 根据权利要求7所述的无线控制器,其中所述无线控制器从所述 主机平台接收关于活动队列的更新。
11、 根据权利要求10所述的无线控制器,其中在从所述主机平台接收 到关于所述活动队列的变化的通知后,所述无线控制器重新建立所述缓存。
12、 根据权利要求7所述的无线控制器,其中所述无线控制器合并对 主机存储器的访问。
13、 根据权利要求12所述的无线控制器,其中对于发送操作而言,所 述无线主机控制器从所述主机平台提取在数量上与能装在所述无线控制器 的一个或多个发送数据缓冲器中的数据一样多的数据。
14、 根据权利要求12所述的无线控制器,其中对于接收操作而言,所 述无线主机控制器保存数据, 一直到到达接收队列阈值或者超时,然后将 所述数据写入到所述主机存储器。
15、 一种系统,包括 总线;耦合到所述总线的主机系统,所述主机系统包括用于保存无线控制器驱动器的SDRAM存储器,所述无线控制器驱动器用于生成队列的异步调 度表;以及USB (通用串行总线)无线控制器,所述USB无线控制器包括缓存, 所述缓存用于对队列的所述调度表中的活动队列和所述活动队列的页条目 进行保存,其中所述USB无线控制器基于所述活动队列中的所述传输描述 符来生成事务组。
16、 根据权利要求15所述的系统,其中所述主机系统向所述USB无 线控制器通知关于所述活动队列的变化。
17、 根据权利要求15所述的系统,其中所述USB无线控制器清洗所 述缓存并基于所接收的变化来重新建立所缓存的调度表。
18、根据权利要求15所述的系统,其中在所述USB无线控制器在发 送数据和接收数据传输之间的操作期间,所述主机系统转换至低功率状态。
全文摘要
一种用于无线传输的调度表和数据缓存的方法和装置。本方法的实施例可以包括为无线控制器生成队列调度表,该调度表在主机系统的驱动器上生成。在一些实施例中,将来自主机系统的调度表数据缓存在无线控制器上,其中缓存可以包括活动队列和所述活动队列的页列表条目。无线控制器可以使用缓存的队列来进行操作。
文档编号H04L12/56GK101420720SQ20081017787
公开日2009年4月29日 申请日期2008年9月28日 优先权日2007年9月29日
发明者I·海尔马思, J·L·杰亚西兰 申请人:英特尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1