用于在无线设备处管理资源的方法和装置与流程

文档序号:12271069阅读:168来源:国知局
用于在无线设备处管理资源的方法和装置与流程

相关申请的交叉参考

本申请要求享有2006年9月29日递交的名称为“GRACEFULLY REDUCE APPLICATION(S)PERFORMANCE WHEN MIPS DEMAND EXCEEDS ARCHITECTURAL CAPABILITY OF CHIPSET”的美国临时申请No.60/827,678的优先权,该临时申请已转让给本申请受让人并通过引用将其并入本文。

技术领域

本公开一般涉及电子领域,更具体地涉及用于在无线设备处管理资源的技术。



背景技术:

无线通信网络广泛地用以提供各种通信服务,比如语音、视频、分组数据、消息、广播等。这些无线网络可以是能够通过共享可用网络资源来支持多个用户的多址网络。这种多址网络的实例包括码分多址(CDMA)网络、时分多址(TDMA)网络、频分多址(FDMA)网络、正交FDMA(OFDMA)网络、单载波FDMA(SC-FDMA)网络等。

无线设备(例如,蜂窝电话)可以活动地与用于诸如语音和/或分组数据的一个或多个服务的无线网络进行通信。无线设备可以消耗处理资源来处理用于与无线网络通信的数据。无线设备也可以具有运行在该无线设备上的其它应用程序。每个应用程序可以在任意时间开始和结束并且可以在激活时消耗一定量处理资源。无线设备处的处理需求可以随时间有较大变化并且可以取决于与无线网络交换的数据量以及在该无线设备上运行的具体应用程序。如果处理需求超出了无线设备的处理能力,则会造成某些负面影响,这会随后造成较差的用户体验。例如,由于在无线设备处处理资源不足而可能丢弃分组和/或应用程序产生错误。

因此,在本领域中存在对用于减轻由于处理需求超过无线设备处的处理能力而造成的负面影响的技术的需求。



技术实现要素:

这里描述了用于在无线设备处管理资源的技术。在一方面,无线设备基于资源需求和可用资源来控制应用。这些应用可以由具有最大处理能力的处理单元来执行。可以监视这些应用的处理需求。可以基于处理需求和处理单元的最大处理能力来控制至少一个应用。例如,可以通过(i)当检测到高处理需求时减少与基站交换的数据量,或者(ii)当检测到低处理需求时增加与基站交换的数据量,来对数据应用进行控制。例如,通过调整窗口大小可以改变与基站交换的数据量,其中该窗口大小用于控制由该数据应用交换的未经确认确认的分组的数量。

在另一方面,无线设备管理在无线设备处的不同资源以达到优良性能。无线设备可以分别监视应用对可分配的处理资源、总线资源、存储器资源、高速缓存资源和/或其它资源的处理需求、总线需求、存储器需求、高速缓存(cache)需求和/或其它资源需求。无线设备可以基于应用的需求来控制至少一个应用。无线设备可以基于应用的优先级、关于每个应用是可控还是不可控的指示等来选择至少一个应用。

在另一方面,无线设备改变资源能力以匹配资源需求。可以由具有可配置处理能力的处理单元来执行应用。可以监视应用的处理需求。可以基于处理需求来调整处理单元的处理能力。例如,当处理需求超过高阈值时可以为处理单元选择更高的时钟频率,而当处理需求低于低阈值时可以选择更低的时钟频率。

下面更具体地描述了本公开的各个方面和特征。

附图说明

图1示出了无线设备和基站的方框图。

图2示出了资源管理系统的示图。

图3示出了基于CPU使用情况对CPU时钟频率的调整。

图4示出了资源管理系统中模块之间的交互。

图5示出了具有两个阈值的CPU负载的报告。

图6示出了基于CPU负载对窗口大小的调整。

图7示出了用于基于资源需求来控制应用的处理。

图8示出了由基站执行的处理。

图9示出了在无线设备处用于管理不同资源的处理。

图10示出了用于改变资源能力以匹配需求的处理。

具体实施方式

图1示出了在无线通信网络中无线设备100和基站150的设计的方框图。基站150也可以称为节点B、演进节点B、接入点、收发基站(BTS)等。在图1示出的设计中,基站150包括支持与无线设备进行无线电通信的发射机/接收机(TMTR/RCVR)152、执行用于与无线设备通信的各种功能的控制器/处理器160、存储用于基站150的程序代码和数据的存储器162、以及支持与其它网络实体通信的通信单元164。通常,基站可以包括任意数量的控制器、处理器、存储器、发射机、接收机等。无线设备100也可以称为用户设备(UE)、移动站、终端、接入终端、移动设备、用户单元、站等。无线设备100可以是蜂窝电话、个人数字助理(PDA)、无线调制解调器、手持设备、膝上型计算机等。

在接收路径上,天线112接收由基站150、其它基站、卫星等发送的信号,并且将所接收的信号提供到接收机(RCVR)114。接收机114处理(例如,滤波、放大、下变频和数字化)所接收的信号并将采样提供到数字部分120以用于进一步处理。在发送路径上,数字部分120对将要发送的数据进行处理并将数据码片提供到发射机(TMTR)116。发射机116处理(例如,数模变换、滤波、放大和上变频)数据码片并生成已调制信号,该已调制信号经由天线112来发送。

数字部分120可以包括各种处理单元、存储单元和接口单元,其支持与一个或多个无线通信网络以及其它应用进行通信。在图1示出的设计中,数字部分120包括中央处理单元(CPU)130、控制器/处理器132、存储器134、高速缓存136和外部接口138,将所有这些单元耦合到总线140、CPU130可以包括任意数量的数字信号处理器(DSP)、精简指令集计算机(RISC)处理器、通用处理器等。CPU 130可以执行数据发送处理(例如,编码和调制)、数据接收处理(例如,解调和解码)以及用于与无线网络交换数据的高层处理。CPU 130也可以执行用于其它应用的处理。控制器/处理器132可以指导在无线设备100处的操作和/或执行其它功能。存储器134可以存储用于数字部分120内的各个单元的数据和/或指令。高速缓存136可以提供数据和/或指令的快速存储。接口单元138可以与诸如主存储器142、输入/输出(I/O)设备等的其它单元进行接口。数字部分120可以利用一个或多个专用集成电路(ASIC)和/或一些其它类型的集成电路(IC)来实现。

通常,无线设备100可以包括相比图1中所述的更少的、更多的和/或不同的处理单元、存储单元和接口单元。在数字部分120中包括的处理单元的数目和处理单元的类型可以取决于诸如无线设备100支持的通信网络和应用、成本和功率考虑因素等的各种因素。

无线设备100可以支持与无线广域网(WWAN)、无线局域网(WLAN)、无线个域网(WPAN)、广播网络等进行通信。术语“网络”和“系统”经常互换使用。WWAN可以是CDMA、TDMA、FDMA、OFDMA、SC-FDMA和/或其它无线网络。CDMA网络可以实现诸如通用陆地无线接入(UTRA)、cdma2000等的无线电技术。UTRA包括宽带-CDMA(W-CDMA)和时分-同步CDMA(TD-SCDMA)。cdma2000涵盖IS-2000、IS-95和IS-856标准。TDMA网络可以实现诸如全球移动通信(GSM)的无线电技术。OFDMA网络可以实现诸如演进UTRA(E-UTRA)、IEEE 802.16、IEEE 802.20、等的无线电技术。UTRA和E-UTRA是通用移动电信系统(UMTS)的一部分。在来自名为“第三代合作伙伴项目”(3GPP)的组织的文档中描述了UTRA、E-UTRA、UMTS和GSM。在来自名为“第三代合作伙伴项目2”(3GPP2)的组织的文档中描述了cdma2000。WLAN可以实现诸如IEEE 802.11、Hiperlan等的无线电技术。WPAN可以实现诸如蓝牙等的无线电技术。广播网络可以实现诸如手持设备数字视频广播(DVB-H)、陆地电视广播的集成服务数字广播(ISDB-T)、MediaFIO等的无线电技术。这些各种网络、无线电技术和标准是本领域公知的。

为清楚起见,以下描述假设无线设备100支持UMTS。3GPP版本5及后续版本支持高速下行链路分组接入(HSDPA)。3GPP版本6及后续版本支持高速上行链路分组接入(HSUPA)。HSDPA和HSUPA是信道集和过程集,其分别支持在下行链路和上行链路上的高速分组数据传输。

无线设备100也可以支持各种应用。应用可以是执行特定功能的软件和/或固件模块。针对不同无线电技术、某种指定无线电技术的不同特征等,可以使用不同应用。例如,无线设备100可以支持用于HSDPA、HSUPA、WLAN、蓝牙、MediaFIO、语音、视频、视频电话、网页浏览器、email、文本编辑器、诸如视频游戏的图形应用、辅助全球定位系统(A-GPS)等的应用。

无线设备100可以具有各种类型资源,其可以用于支持运行在该无线设备上的所有应用。在无线设备100处的资源可以分类如下:

处理资源-用于为应用执行处理的资源,例如CPU 130,

存储器资源-用于为应用存储数据的资源,例如存储器134,

高速缓存资源-用于为应用进行快速数据存储的资源,例如高速缓存136,以及

总线资源-用于为应用传输数据的资源,例如总线140。

在无线设备100处的资源可以是可配置的。例如,通过调整CPU 130的时钟频率可以改变无线设备100的处理能力,并且通过调整总线140的时钟频率可以改变总线能力。更高的CPU和总线时钟频率可以提供更多的处理和总线资源,但是也会导致更高的功率消耗,这会缩短无线设备100的电池寿命。通常,希望以最低的CPU和总线时钟频率进行操作以便使功率消耗最小化,其中所述最低的CPU和总线时钟频率能够提供足够的处理和总线资源以满足所有活动应用的需求。对于存储器和高速缓存资源,可用资源量可以由设计决定的固定量,但是这些资源可以用不同方式分配给活动应用。例如,相比于非访存密集型应用,可以为访存密集型应用分配更多的高速缓存和/或存储器资源。

通常,在任意指定时刻,任意数目的应用和任意类型的应用可以在无线设备100上是活动的。每个活动应用可以具有某种资源需求或要求。例如,通过调整CPU和总线时钟频率,可以对无线设备100处的可用资源进行配置,以匹配所有活动应用的资源需求。在某些例子中,即使无线设备100所支持的最高CPU和总线时钟频率也不能提供足够的资源来满足所有活动应用的需求。在这些例子中,可以对一个或多个活动应用进行控制,以便减少资源需求从而符合可用资源。

图2示出了无线设备100的资源管理系统200的设计的示图。在该设计中,系统200包括资源控制器210、资源监视器212和硬件管理器214。模块210、212和214可以分别利用运行在无线设备100上的软件和/或固件、利用无线设备100内实现的硬件或这两者的组合来实现。

资源监视器212可以确定活动应用的资源使用情况。对于处理资源,资源监视器212可以对测量间隔内CPU 130的活动时钟周期的数目进行计数。资源监视器212可以基于在测量间隔期间的活动时钟周期数目和/或空闲时钟周期数目来确定活动应用使用的处理资源量。资源监视器212可以确定CPU负载,其是在测量间隔期间使用CPU 130的时间百分比。CPU负载可以基于在测量间隔内活动时钟周期数目与总的时钟周期数目的比值来计算。可以选择测量间隔,以提供充分的平均以及减少获得资源使用报告的延迟。测量间隔可以是100毫米(ms)、200ms等。资源监视器212也可以确定诸如总线资源、存储器资源、高速缓存资源等的其它资源的使用。资源监视器212可以确定每个活动应用、可以被控制的每个活动应用、可以被一起控制的每个活动应用集、所有活动应用等的资源使用情况。

硬件管理器214可以控制无线设备100处的各种类型资源的配置。硬件管理器214可以基于处理资源需求来改变CPU 130的时钟频率和/或基于总线资源需求来改变总线140的时钟频率。硬件管理器214也可以基于存储器存资源需求和高速缓存资源需求来分别分配/重分配存储器134和高速缓存136。硬件管理器214可以从资源控制器210接收命令、指示、请求和/或其它信息,并且可以相应的配置各种类型的资源。

资源控制器210可以试图将活动应用的资源需求与无线设备100处的可用资源进行匹配。例如,当应用激活时,资源控制器210可以获得每个活动应用的相关信息。每个活动应用的信息可以包括以下内容:

关于是否可以对应用进行控制以减少资源使用的指示,

应用的峰值资源需求和/或最低资源需求,以及

可用于资源管理的关于应用的优先级和/或其它特性。

当资源需求超出可用资源时,可以对或者可以不对指定应用进行控制以减少资源使用。是否可以对应用进行控制可以取决于诸如应用的优先级、应用的期望资源使用等各种因素。如果可以对应用进行控制,则可以对应用的操作进行调整和/或可以改变分配给应用的资源量,使得可用资源满足资源需求。

可以通过诸如CPU/总线时钟频率、每单位时间CPU/总线周期数目等各种参数来给出指定应用的资源需求。为清楚起见,在以下描述中通过CPU/总线时钟频率来量化处理资源和总线资源。对于具有不需要维持延长时间段的突发资源需求的应用(例如文件下载),可以使用峰值资源需求。对于具有可能必须维持延长时间段的某种资源需求的应用(例如语音呼叫),可以使用最小资源需求。

可以使用应用的优先级和/或其它特性来确定何时和如何控制应用以减少资源需求。当资源需求超过可用资源时,可以首先控制低优先级应用,并最后控制高优先级应用。如下所述可以用不同方式对不同应用进行控制。

资源控制器210可以接收资源使用报告,资源使用报告可以携带活动应用的实时资源使用情况。资源控制器210可以基于资源使用情况来确定是否改变硬件配置。例如,资源控制器210可以指导硬件管理器214在可用资源大部分未得到利用时使用更低的CPU/总线时钟频率。资源控制器210可以指导硬件管理器214在可用资源不足以满足资源需求时使用更高的CPU/总线时钟频率。如果即使利用最高CPU/总线时钟频率时可用资源也不足以满足资源需求,则资源控制器210也可以控制一个或多个应用以减少资源需求。因此,资源控制器210可以控制可用资源以及资源需求,以便使资源需求与资源供应相匹配。

N个应用220a到220n可以是活动的,其中N通常可以是大于或等于0的任意整数值。在图2示出的实例中,应用220a可以是诊断应用,应用220b可以用于HSDPA,应用220c可以用于HSUPA,应用220d可以用于视频电话等,以及应用220n可以用于后台下载。每个应用220可以当激活时向资源控制器210进行注册,并且可以提供例如如上所述的相关信息。可以被控制的每个活动应用可以在适当的时候从资源控制器210接收命令以调整其操作,减少资源使用。通常,可以针对任意类型的资源对应用220进行控制。为清楚起见,以下描述的大部分是针对处理资源的控制,其中处理资源也称为CPU资源。

CPU 130可以执行支持与基站150进行通信的应用以及运行在无线设备100上的其它应用。资源控制器210可以控制CPU 130的操作、其它资源和/或活动应用以达到优良性能。

在一方面,可以基于活动应用的资源需求对无线设备100处的可用资源进行调整。例如,可以实时监视CPU负载,并且可以基于CPU负载对CPU时钟频率进行调整。在一种设计中,可以将CPU负载与高阈值和低阈值进行比较。当CPU负载超过高阈值时可以选择更高的CPU时钟频率(如果可用更高的CPU时钟频率的话)。当CPU负载低于低阈值时可以选择更低的CPU时钟频率(如果可用更低的CPU时钟频率的话)。

在另一方面,如果需要,可以对活动应用进行控制,使得无线设备100处的可用资源能够满足资源需求。可以通过实时监视来确定资源需求。例如,通过基于资源需求来选择不同时钟频率,可以增加或减少可用资源。然而,当可用资源达到最大能力时,可以对活动应用进行控制以减少资源需求从而使其低于可用资源。

例如,如果CPU 130以高于最高阈值的CPU负载进行操作,则资源控制器210可以采取操作以改正该情况。资源控制器210可以基于CPU负载来调整/限制来自基站150的下行链路传输和/或来自无线设备100的上行链路传输。可替换地或此外,资源控制器210可以指示降低运行在无线设备100上的一个或多个其它活动应用的性能。例如,资源控制器210可以指示后台应用(例如,下载程序)以更低速度操作以便减少CPU需求,这样可以释放CPU资源以用于更高优先级的应用(例如,语音呼叫)。可替换地,资源控制器210可以临时停止或终止后台应用。在任意情况中,控制后台应用不会损害更高优先级应用的服务质量(QoS)。

图3示出了基于活动应用的CPU需求来调整CPU时钟频率的实例。在该实例中,支持三个时钟频率f1、f2和f3,其中f1<f2<f3。利用最高时钟频率f3来达到最大CPU能力。

CPU 130最初在A处以最低时钟频率f1进行操作。由于活动应用的更高需求而使CPU负载增加并在B处达到高阈值。CPU时钟频率在C处从f1切换到f2,并且由于使用更高时钟频率f2具有更多CPU能力而使CPU负载下降到D处。由于更高的需求而使CPU负载再次增加并在E处达到高阈值。CPU时钟频率在F处从f2切换到f3,并且由于使用更高时钟频率f3具有更多CPU能力而使CPU负载下降到G处。由于更高的需求而使CPU负载再次增加并在H处达到高阈值。

由于已经选择了最高CPU时钟频率f3,所以资源控制器210开始对活动应用进行控制以便减少资源需求。响应于对活动应用的控制,CPU负载下降。当CPU负载在I处达到可接受等级时,资源控制器210停止对应用进行控制。此后,由于更高的需求CPU负载再次增加并在J处达到高阈值。资源控制器210开始对活动应用进行控制,并且作为对控制的响应,资源负载减小。当CPU负载在K处达到可接受等级时,资源控制器210停止对应用进行控制。

此后,由于活动应用的更低需求而使CPU负载减小并在L处达到低阈值。在需求处于或低于低阈值达预定时间段之后,CPU时钟频率在M处从f3切换下降到f2。由于使用更低时钟频率f2具有更少CPU能力而使CPU负载增加到N处。由于更低的需求而使CPU负载再次减小并在O处达到低阈值。在预定时间段之后,CPU时钟频率在P处从f2切换下降到f1,并且由于使用更低时钟频率f1具有更少CPU能力而使CPU负载增加到Q处。

在图3示出的设计中,使用两个阈值来调整CPU时钟频率并控制活动应用。如图3所示,对于所有CPU时钟频率可以使用相同的高阈值和低阈值。可替换地,对于每个CPU时钟频率可以使用不同的一组高阈值和低阈值并且可以基于该时钟频率的CPU能力来选择该组高阈值和低阈值。在另一设计中,使用两个以上阈值来调整CPU时钟频率和/或控制活动应用。对于所有活动应用可以使用相同的阈值。可替换地,不同的活动应用可以具有不同的阈值组。可以基于与用于每个活动应用的一组阈值相关的CPU负载来对该活动应用进行控制。

图3示出了基于CPU需求调整CPU时钟频率以改变CPU能力。可以用同样的方式对诸如总线资源的其它资源进行控制。

图4示出了图2中的资源控制器210、资源监视器212、硬件管理器214和应用220a到220n之间的交互。资源控制器210可以从资源监视器212接收资源使用报告。每个资源使用报告可以指示无线设备100处的CPU负载和/或其它资源的使用情况。资源控制器210可以确定可用资源是否足以满足活动应用的资源需求。资源控制器210可以将硬件命令(例如,更低或更高的时钟频率)发送到硬件管理器214,硬件管理器214随后可以设置硬件配置以改变资源能力。资源控制器210也可以根据需要将控制命令发送到每个独立的活动应用220,以控制该应用的资源需求。

资源控制器210可以用各种方式选择要控制的活动应用。在一个设计中,资源控制器210基于应用的优先级以及关于是否能够对这些应用进行控制的指示来选择要控制的活动应用。资源控制器210可以首先选择并控制具有最低优先级的应用,然后接下来选择并控制具有第二低优先级的应用,以此类推,并且最后选择并控制具有最高优先级的应用。例如,资源控制器210可以按照以下顺序选择应用:

●与正在接收的任何服务无关的诊断应用和其它应用,

●后台应用和容许延迟应用,例如数据下载,以及

●交互应用和延迟敏感应用,例如视频电话。

在某些例子中,仅控制诊断应用可以大量减少资源需求。如果控制诊断应用还不够,则接下来可以控制后台应用,并且可以控制交互应用作为最后的办法。该顺序可以降低对用户感受的影响。

在另一设计中,资源控制器210基于应用的QoS需求(如果存在QoS需求的话)来选择要控制的活动应用。资源控制器210可以首先选择不具有QoS需求的应用,然后选择具有较不严格的QoS需求的应用,以此类推,并且最后选择具有最严格QoS需求的应用。资源控制器210可以向每个活动应用分配足够的资源以满足其QoS需求。当资源需求超过可用资源时,资源控制器210可以向不具有QoS需求的活动应用分配最少的资源或者不分配资源。

在UMTS中,一个呼叫可以具有用于传输业务数据的一个或多个无线接入承载(RAB)和用于传输信令的一个或多个信令无线承载(SRB)。可以将每个RAB视为具有某种特性的独立数据流。每个RAB可以携带诸如会话、流、交互或后台的特定类别的业务数据。在一种设计中,不对SRB进行控制。可以首先对携带交互和后台类别的RAB进行控制,例如对这些RAB进行同等的控制。接下来,可以对携带会话和流类别的RAB进行控制,例如对这些RAB进行同等的控制。该设计可以确保按照基于通过数据流的业务类别所确定的优先级顺序对数据流进行控制。通常,首先对低优先级数据流进行控制,并且例如在对低优先级数据流进行全部控制之后接下来对更高优先级数据流进行控制。

资源控制器210可以按照不同方式控制不同的应用。对于诊断应用,资源控制器210可以控制该应用要报告的消息和/或事件的类型,或者可以终止该应用。对于后台应用,资源控制器210可以减少分配给这些应用的资源量(例如,CPU速度)、减小下行链路和/或上行链路上的数据速率、临时停止该应用等。对于交互应用,资源控制器210可以减小数据速率、帧速率等。

资源控制器210还可以使用条件规则来选择要控制的活动应用和/或控制所选择的应用。条件规则是在发生一个或多个预定条件时才使用的规则。例如,资源控制器210可以按照与用于HSUPA的上行链路数据速率相同的方式来改变用于HSDPA的下行链路数据速率。

在一种设计中,资源监视器212确定CPU负载(例如,在每个测量间隔中定期地确定)、将CPU负载与一组阈值进行比较,以及当CPU负载超出阈值时向资源控制器210发送报告。该设计可以减少由资源监视器212发送到资源控制器210的报告的数目。

图5示出了用于根据两个阈值(高阈值和低阈值)来报告CPU负载的设计。CPU负载可以在三种可能范围之一中:

●低范围-覆盖0%负载到低阈值,

●中间范围-覆盖低阈值到高阈值,以及

●高范围-覆盖高阈值到100%负载。

这三个范围也可以称为CPU状态。资源监视器212可以在CPU负载跃迁到低范围时发送低CPU负载报告、在CPU负载跃迁到中间范围时发送中间CPU负载报告,以及在CPU负载跃迁到高范围时发送高CPU负载报告。

在一种设计中,对所有活动应用使用相同的高阈值和低阈值。在该设计中,资源控制器210可以从资源监视器212接收低、中间和高CPU负载报告,并且可以按照需要对活动应用进行控制。在另一设计中,可以对每个活动应用使用不同的一组高阈值和低阈值。在该设计中,资源监视器212可以基于用于每个应用的一组阈值为该应用生成低、中间和高CPU负载报告。资源控制器210可以基于为每个应用接收的低、中间和高CPU负载报告来对该应用进行控制。可以将高阈值设置为90%至100%之间的数值。可以将低阈值设置为80%至90%之间的数值。也可以将高阈值和低阈值设置为其它数值。

对于每个应用,可以用适用于该应用的方式对该应用进行控制。可以用如下所述的各种方式对诸如HSDPA和HSUPA的数据应用进行控制。

对于HSDPA,基站150可以在每2ms传输时间间隔(TTI)中在高速下行链路共享信道(HS-DSCH)上向一个或多个用户发送数据。所有用户经由时间分复用和码分复用来共享该HS-DSCH。每个用户定期地发送信道质量指示符(CQI),该CQI携带由该用户观测到的下行链路信道质量。基站150从所有用户接收CQI并且使用该CQI信息来(i)选择一个或多个用户用于下一个TTI中的下行链路传输以及(ii)为每个被调度用户选择数据速率。通常,可以向观测到高下行链路信道质量的用户发送更多数据。

对于HSDPA,基站150使用链路层的无线链路协议(RLC)在协议数据单元(PDU)中发送数据。在以下描述中,RLC PDU也称为PDU或分组。每个PDU可以是40字节、80字节等。对于RLC,发射机向接收机发送PDU,其中每个PDU由序列号来标识,其中当发送新PDU时递增所述序列号。接收机对每个所接收PDU进行解码并且如果PDU正确解码则发送确认(ACK)。为了改善吞吐量,发射机可以在不等待先前发送的PDU的ACK的情况下发送新的PDU。一个RLC窗用于确定从发射机侧看来没有收到ACK的未经确认PDU的最大数目。如果N表示最高标号的未经确认的PDU,它是RLC窗的起始点,并且W表示RLC窗大小,则可以发送的最高序列号等于N+W。除非已经对在RLC窗的起始点之前发送的所有PDU都接收到ACK,否则发射机不能发送新的PDU。RLC窗可以变化大小并且可以包括1到2047个PDU。通过向基站150发送窗命令,无线设备100可以控制用于HSDPA的RLC窗大小。通过选择适当的RLC窗大小并且将该窗大小发送到基站,无线设备100可以控制由基站150发送到无线设备100的数据量。通过减小RLC窗,可以相应的减少数据量,这是因为较小的RLC窗会导致基站150在发送新PDU之前等待对先前PDU的ACK。对于HSUPA中的上行链路传输,基站150可以向无线设备100发送命令以控制由无线设备发送的数据量。

在一种设计中,通过调整数据应用的窗大小来对该数据应用进行控制。可以减小窗大小以便减少由该应用发送/接收的数据量,这样则可以减少该应用的资源需求。相反地,可以增加窗大小以便扩大由该应用发送/接收的数据量,这样则可以增加该应用的资源利用。窗大小调整可以用于下行链路传输(例如,HSDPA)以及上行链路传输(例如,HSUPA)。对于下行链路,可以将所选择的窗大小发送到基站150。对于上行链路,发射机位于无线设备100处,并且可以直接对窗大小进行控制而不必向基站150发送任何命令。

可以用各种方式基于CPU需求对数据应用的窗大小进行控制。在一种设计中,窗大小可以在最小值和最大值之间变化,其中该最小值和最大值可以基于各种因素来选择。当接收到高CPU负载报告时,可以将窗大小骤然减小到最小值。窗大小的骤然减小可以尽可能快地释放资源,这是因为高优先级应用可能不容许延迟并且应当尽可能快的被服务。该骤然减小还可以允许将高阈值设置为尽量接近100%,这样可以允许CPU资源的更高利用。当CPU需求下降时,窗大小可以逐步增加。这种逐渐增加可以避免由于交替的高和低CPU负载报告而导致的乒乓效应(例如,窗大小在最小值和最大值之间反复变换)。当窗小于最大值时,窗大小可以基于CPU负载报告逐步增加或减小。当窗达到最大值时,可以在下一次接收到高CPU负载报告时将窗大小骤然减小到最小值。

可以使用一个标记来指示是否当前正在控制数据应用。最初可以将标记设置为关(Off),然后当接收到高CPU负载报告并且标记是关时将标记从关切换到开(On),并且当窗大小设置为最大值且标记为开时将标记从开切换到关。当接收到高CPU负载报告并且标记设置为关时可以将数据应用的窗大小减小到最小值。如果当接收到高CPU负载报告时标记设置为开,则可以在每个更新间隔中将窗大小定期向下减小一步直到达到最小值。当接收到低CPU负载报告时,可以定期将窗大小向上增加一步直到达到最大值。当接收到中间CPU负载报告时,可以将窗大小维持在当前值。

图6示出了用于数据应用的窗大小调整的实例。该实例用于图5所示的具有CPU负载的高阈值和低阈值以及低、中间和高CPU负载报告的设计。在时间T0处,标记是关并且窗大小设置为最大值。在时间T1处,接收到高CPU负载报告,开始对该数据应用的控制,将标记设置为开,并且将窗大小减小到最小值。在时间T2处接收到低CPU负载报告,并且将窗大小向上增加一步。在时间T3和T4处,在每个更新间隔之后将窗大小向上增加一步。

在时间T5处接收到中间CPU负载报告,并且维持窗大小。在时间T6处接收到高CPU负载报告,并且由于标记是开而将窗大小向下减小一步。在时间T7处,在更新间隔之后将窗大小向下减小一步。在时间T8处接收到中间CPU负载报告,并且维持窗大小。在时间T9处接收到低CPU报告,并且将窗大小向上增加一步。在时间T10和T11处,在每个更新间隔之后将窗大小向上增加一步。在时间T11处窗大小达到最大值,将标记设置为关,并且终止对该应用的控制。

当标记是开时可以使用定时器来增加或减小窗大小。定时器可以在进行窗大小调整之后启动,并且可以对更新间隔进行递减计数。当定时器超时时,可以进行另一次窗大小调整并且定时器可以再次启动。当接收到中间CPU负载报告时可以暂停定时器,并且当接收到低或高CPU负载报告时定时器可以从暂停值继续或者可以重新启动。

诸如最小和最大窗大小、向上或向下步长以及更新间隔的参数可以设置为适当值以达到所需性能。可以选择最小窗大小以实现数据应用的最低性能以及避免对其它协议的负面影响。例如,如果在重传超时时间(RTO)内不发送且不确认TCP分组,则传输控制协议(TCP)可以超时。当超时发生时,TCP执行拥塞控制并且减少数据流,这会占用较长时间来恢复并从而降低性能。可以将最小窗大小设置为足够大的值,以确保在TCP超时发生之前可以发送并确认至少一个TCP分组。在一种设计中,最小窗大小可以设置为80个PDU,这样可以避免TCP超时。最大窗大小可以设置为低于2047或在呼叫建立或重配置期间获得的数值。如图6所示,向上和向下步长可以设置为最大值的四分之一,使得窗大小可以在四个更新间隔中增加到最大值。也可以使用其它向上和向下步长。更新间隔可以设置为200ms或一些其它时间长度。

对于下行链路数据应用(例如,HSDPA),当窗大小变化时可以向基站150发送具有新的窗大小的窗命令。如果基站150不针对窗命令发送ACK,则可以多次发送窗命令以改善可靠性。对于上行链路数据应用(例如,HSUPA),可以在无线设备100处使用新的窗大小。

数据应用可以具有一个或多个数据流,并且每个数据流可以对应于不同RAB。可以为所有数据流维护单个窗。可替换地,可以为每个数据流维护一个独立窗,并且可以基于该数据流的一组参数来调整该独立窗。

图6示出了用于控制数据应用的具体设计。也可以用其它方式控制数据应用。在另一设计中,当接收到高CPU负载时,无论标记是开还是关都将窗大小骤然减小到最小值。在另一设计中,可以使用两个以上阈值用于报告CPU负载,并且可以使用三个以上不同CPU负载报告来控制数据应用。在该设计中,步长可以取决于CPU负载报告。

在另一设计中,通过调节由数据源生成的数据量来控制数据应用。例如,如果上行链路数据应用的数据来自经由通用串行总线(USB)连接到无线设备100的膝上型计算机,则可以对该膝上型计算机和/或USB进行控制以限制由无线设备100接收的数据量。作为另一实例,如果上行链路传输数据来自无线设备100处的协议栈中的TCP实体,则可以对该TCP实体进行控制以限制向下传送到更低层的数据量。

在另一设计中,基于CQI反馈对数据应用进行控制。无线设备100可以定期测量下行链路信道质量并发送指示所测量信道质量的CQI。基站150可以使用所报告的CQI来选择到无线设备100的下行链路传输的数据速率。当CPU负载不高或者不对下行链路数据应用进行控制时,无线设备100可以发送所测量的CQI。当CPU负载较高时,无线设备100可以发送比所测量CQI更低的CQI,这会导致基站150选择更低的数据速率并且向无线设备100发送更少的数据。因此,无线设备100可以发送适当的CQI以控制由基站150发送的数据量。

在另一设计中,基于CQI反馈和块误差率(BLER)对数据应用进行控制。基站150可以向无线设备100发送PDU。无线设备100可以试图对每个所接收PDU进行解码,并且如果正确解码PDU则可以返回ACK或者如果错误解码PDU则可以返回否定确认(NAK)。基站150可以确定下行链路传输的BLER,该BLER是解码错误的PDU数目与所发送PDU总数的比值。基站150可以基于无线设备100报告的CQI和基站150保存的BLER来选择下行链路传输的数据速率。如果BLER较低,例如低于目标BLER,则基站150可以对所报告CQI增加偏移量并且基于所调整的CQI来选择数据速率。基站150可以向上或向下调整CQI偏移量以达到目标BLER。由基站150增加的CQI偏移量可以抵消由无线设备100减小的CQI减小量。为了防止基站150增加的CQI偏移量,无线设备100可以定期发送NAK,使得在基站150处的所测量BLER接近目标BLER,并且由基站150增加的CQI偏移量较小或为零。

也可以使用其它机制用其它方式对数据应用进行控制。也可以对数据应用使用上述设计的组合。例如,可以首先在预定时间长度中实现基于CQI反馈的控制,并且在该预定时间长度之后可以触发基于窗大小调整的控制。作为另一例子,可以同时执行基于CQI反馈和窗大小调整的控制。

图7示出了由无线设备执行的用于基于资源需求来控制应用的过程700的设计。可以由具有最大处理能力的处理单元来执行运行在无线设备上的应用(方框712)。该处理单元可以包括一个或多个CPU、DSP、通用处理器等、或其组合。可以由控制器监视应用的处理需求,其中控制器可以是无线设备上的软件和/或硬件(方框714)。可以基于处理需求和处理单元的最大处理能力来对至少一个应用进行控制(方框716)。

可以基于运行在无线设备上的应用的优先级来从这些应用中选择至少一个应用进行控制。可以首先控制低优先级应用,并且在已经完全控制该低优先级应用之后对高优先级应用进行控制。

被控制的至少一个应用可以包括数据应用。可以通过(i)当检测到高处理需求时减小与基站交换(例如,发送和/或接收)的数据量,或者(ii)当检测到低处理需求时增加与基站交换的数据量,来对该数据应用进行控制。高处理需求可以对应于处理需求超过高阈值,并且低处理需求可以对应于处理需求低于低阈值。

可以通过基于处理需求和最大处理能力调整窗大小来对数据应用进行控制。窗大小可以限制该数据应用所交换的未得到确认的数据分组的数目。可以在最大值和最小值之间调整窗大小,其中可以选择最小值来避免TCP和/或其它协议出现超时。当检测到高处理需求时,(i)如果还未对数据应用进行控制则可以将窗大小骤然减小到最小值,或者(ii)如果正在对数据应用进行控制则可以逐步减小窗大小。当检测到低处理需求时,可以逐步增加窗大小,例如在每个更新间隔中向上增加一步,直到最大值。当检测到中间处理需求时,维持窗大小。对于下行链路,可以将窗大小发送到基站一次或多次以改善可靠性。在HSDPA中窗大小可以由RLC使用。

也可以基于CQI反馈来控制数据应用。可以基于在无线设备处针对基站测量的下行链路信道质量来获得CQI。当检测到高处理需求时,可以减小CQI,并且将减小的CQI发送到基站。当检测到高处理需求时,即使正确解码了分组,也可以针对从基站接收的预定比例的分组来发送NAK。也可以通过改变传输块大小、通过修改发送到网络的缓冲器状态报告等,来对数据应用进行控制。可以对缓冲器状态报告进行修改使得不浪费网络资源(调度信息和业务量测量)。

图8示出了由基站执行的过程800的设计。基站接收基于在无线设备处的处理需求和最大处理能力所确定的信息(方框812)。可以基于所接收信息来控制与无线设备交换的数据量(方框814)。可以基于为数据交换而生成的控制来与无线设备交换数据(方框816)。该信息可以包括窗大小,窗大小用于限制未得到确认的分组的数目,例如对于HSDPA由RLC使用的窗大小。然后,可以根据窗大小将分组发送到无线设备。该信息可以包括CQI,并且可以基于该CQI来选择用于向无线设备进行传输的数据速率。该信息也可以包括CQI和NAK,并且可以基于该CQI和NAK来选择用于向无线设备进行传输的数据速率。在任何情况中,可以根据所选择的数据速率将分组发送到无线设备。

图9示出了由无线设备执行的用于管理不同资源的过程900的设计。可以监视在无线设备处应用对于可分配处理资源的处理需求(方框912)。可以基于处理需求来对至少一个应用进行控制(方框914)。可以监视应用对于可分配总线资源的总线需求(方框916)。可以基于总线需求来对至少一个应用进行控制(方框918)。可以监视应用对于可分配存储器资源的存储器需求(方框920)。可以基于存储器需求来对至少一个应用进行控制(方框922)。可以监视应用对于可分配高速缓存资源的高速缓存需求(方框924)。可以基于高速缓存需求来对至少一个应用进行控制(方框926)。例如,可以从应用接收关于运行在无线设备上的应用的优先级、每个应用是可控还是不可控的信息和/或其它信息。可以基于所接收的信息选择至少一个应用进行控制。

图10示出了由无线设备执行的用于改变资源能力以匹配资源需求的过程1000的设计。可以由具有可配置处理能力的处理单元来执行运行在无线设备上的应用(方框1012)。可以监视应用的处理需求(方框1014)。可以基于处理需求来调整处理单元的处理能力(方框1016)。例如,可以改变处理单元的时钟频率以调整处理能力。当处理需求超过高阈值时,可以为处理单元选择更高的时钟频率。当处理需求低于低阈值时,可以为处理单元选择更低的时钟频率。可以监视应用的总线需求(方框1018)。可以基于总线需求来调整总线能力(方框1020)。例如,可以改变总线的时钟频率以调整总线能力。

这里描述的技术可以通过各种方式来实现。例如,这些技术可以在硬件、固件、软件或其组合中实现。对于硬件实现,用于执行在一个实体(例如,无线设备或基站)处的技术的处理单元可以在一个或多个以下单元内实现:专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、处理器、控制器、微控制器、微处理器、电子设备、设计用于执行这里所述功能的其它电子单元、计算机或其组合。

对于固件和/或软件实现,这些技术可以利用执行这里所述功能的模块(例如,程序、函数等)来实现。固件和/或软件指令可以存储在存储器(例如,图1中的存储器134或162)中并且由处理器(例如,处理器132或160)来执行。存储器可以在处理器内或处理器外实现。固件和/或软件指令也可以存储在其它处理器可读介质中,例如随机访问存储器(RAM)、只读存储器(ROM)、非易失性随机访问存储器(NVRAM)、可编程只读存储器(PROM)、电可擦除PROM(EEPROM)、闪存存储器、压缩盘(CD)、磁性或光学数据存储设备等。

实现这里所述技术的装置可以是独立单元或者可以是设备的一部分。该设备可以是(i)独立集成电路(IC),(ii)一个或多个IC构成的集合,其可以包括用于存储数据和/或指令的存储器IC,(iii)ASIC,比如移动站调制解调器(MSM),(iv)可以嵌入在其它设备内的模块,(v)蜂窝电话、无线设备、手持设备或移动单元,(vi)其它设备等。

为使本领域普通技术人员能够实现或者使用本发明,上面围绕所公开内容进行了描述。对于本领域普通技术人员来说,对这些方面的各种修改是显而易见的,并且,本申请定义的总体原理也可以在不脱离本发明保护范围的基础上适用于其它方面。因此,本发明并不限于本申请所给出的这些方面,而是与本申请公开的原理和新颖性特征的最广范围相一致。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1