СПОСОБ И УСТРОЙСТВО ДЛЯ УПРАВЛЕНИЯ РЕСУРСАМИ В БЕСПРОВОДНОМ УСТРОЙСТВЕ
METHOD AND APPARATUS FOR MANAGING RESOURCES IN WIRELESS COMMUNICATION DEVICE

Настоящая заявка притязает на приоритет Предварительной заявки США с порядковым номером 60/827678, озаглавленной "GRACEFULLY REDUCE APPLICATION(S) PERFORMANCE WHEN MIPS DEMAND EXCEEDS ARCHITECTURAL CAPABILITY OF CHIPSET", зарегистрированной 29 сентября 2006 г., переуступленной правопреемнику этой заявки и включенной в этот документ путем ссылки.
Область техники
Настоящее раскрытие изобретения относится в целом к электронике, а точнее - к методикам для управления ресурсами в беспроводном устройстве.
Уровень техники
Сети беспроводной связи широко разворачиваются, чтобы предоставить различные услуги связи, например, речь, видео, пакетные данные, обмен сообщениями, радиовещание и т.д. Эти беспроводные сети могут быть сетями коллективного доступа, допускающими поддержку множества пользователей путем совместного использования доступных ресурсов сети. Примеры таких сетей коллективного доступа включают в себя сети коллективного доступа с кодовым разделением каналов (CDMA), сети коллективного доступа с временным разделением каналов (TDMA), сети коллективного доступа с разделением каналов по частоте (FDMA), сети с ортогональным FDMA (OFDMA) и сети FDMA с одной несущей (SC-FDMA) и т.д.
Беспроводное устройство (например, сотовый телефон) может активно взаимодействовать с беспроводной сетью для одной или более услуг, например речи и/или пакетных данных. Беспроводное устройство может расходовать ресурсы обработки на обработку данных для взаимодействия с беспроводной сетью. Беспроводное устройство также может иметь другие приложения, работающие в беспроводном устройстве. Каждое приложение может запускаться и завершаться в любое время и может потреблять некоторое количество ресурсов обработки, когда оно активно. Потребности в обработке в беспроводном устройстве могут в значительной степени меняться со временем и могут зависеть от объема данных, которыми обмениваются с беспроводной сетью, а также конкретных приложений, работающих в беспроводном устройстве. Если потребности в обработке превышают производительность обработки у беспроводного устройства, то могут произойти некоторые отрицательные последствия, которые могут затем стать причиной плохого восприятия пользователя. Например, могут отбрасываться пакеты, и/или приложение может работать неисправно вследствие недостаточных ресурсов обработки в беспроводном устройстве.
Поэтому в данной области техники существует потребность в методиках для смягчения отрицательных последствий вследствие потребностей в обработке, превышающих производительность обработки в беспроводном устройстве.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
В этом документе описываются методики для управления ресурсами в беспроводном устройстве. В одном аспекте беспроводное устройство управляет приложениями на основе потребностей в ресурсах и доступных ресурсов. Приложения могут выполняться с помощью модуля обработки, имеющего максимальную производительность обработки. Потребности в обработке у приложений могут отслеживаться. По меньшей мере одним из приложений можно управлять на основе потребностей в обработке и максимальной производительности обработки у модуля обработки. Например, приложение по работе с данными может управляться путем (i) уменьшения объема данных, которыми обмениваются с базовой станцией, когда обнаруживаются высокие потребности в обработке, или (ii) увеличения объема данных, которыми обмениваются с базовой станцией, когда обнаруживаются низкие потребности в обработке. Объем данных, которыми обмениваются с базовой станцией, может меняться, например, путем регулировки размера окна, который регламентирует количество неподтвержденных пакетов, которыми обмениваются с помощью приложения по работе с данными.
В другом аспекте беспроводное устройство управляет разными ресурсами в беспроводном устройстве для достижения хорошей производительности. Беспроводное устройство может отслеживать потребности в обработке, потребности в шине, потребности в памяти, потребности в кэше и/или другие потребности в ресурсах у приложений на предмет выделяемых ресурсов обработки, ресурсов шины, ресурсов памяти, ресурсов кэша и/или других ресурсов соответственно. Беспроводное устройство может управлять по меньшей мере одним приложением на основе потребностей от приложений. Беспроводное устройство может выбирать по меньшей мере одно приложение на основе приоритетов приложений, указания того, является ли каждое приложение управляемым или неуправляемым, и т.д.
В еще одном аспекте беспроводное устройство меняет объем ресурсов для соответствия потребностям в ресурсах. Приложения могут выполняться с помощью модуля обработки, имеющего конфигурируемую производительность обработки. Потребности в обработке у приложений могут отслеживаться. Производительность обработки у модуля обработки может регулироваться на основе потребностей в обработке. Например, для модуля обработки может выбираться более высокая тактовая частота, когда потребности в обработке превышают верхнюю пороговую величину, и более низкая тактовая частота может выбираться, когда потребности в обработке опускаются ниже нижней пороговой величины.
Таким образом, методики, описанные в данном документе, направлены на смягчение отрицательных последствий в пакетах данных, передаваемых беспроводным устройством, возникающих вследствие того, что потребности в обработке превышают производительность обработки, что может проводить, например, к отбрасыванию пакетов.
Далее более подробно описываются различные аспекты и признаки раскрытия изобретения.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
Фиг.1 показывает блок-схему беспроводного устройства и базовой станции.
Фиг.2 показывает схему системы управления ресурсами.
Фиг.3 показывает регулировку тактовой частоты CPU на основе коэффициента загрузки CPU.
Фиг.4 показывает взаимодействие между модулями в системе управления ресурсами.
Фиг.5 показывает отчет о загрузке CPU с двумя пороговыми величинами.
Фиг.6 показывает регулировку размера окна на основе загрузки CPU.
Фиг.7 показывает процесс для управления приложениями на основе потребностей в ресурсах.
Фиг.8 показывает процесс, выполняемый базовой станцией.
Фиг.9 показывает процесс для управления разными ресурсами в беспроводном устройстве.
Фиг.10 показывает процесс для изменения объема ресурсов для соответствия потребностям.
ПОДРОБНОЕ ОПИСАНИЕ
Фиг.1
показывает блок-схему исполнения беспроводного устройства 100 и базовой станции 150 в сети беспроводной связи. Базовая станция 150 также может называться Узлом Б, усовершенствованным Узлом Б, точкой доступа, базовой приемопередающей станцией (BTS) и т.д. В показанном на фиг.1 исполнении базовая станция 150 включает в себя передатчик/приемник 152 (TMTR/RCVR), который поддерживает радиосвязь с беспроводными устройствами, контроллер/процессор 160, который выполняет различные функции для взаимодействия с беспроводными устройствами, запоминающее устройство 162, которое хранит программные коды и данные для базовой станции 150, и модуль 164 связи (Comm), который поддерживает взаимодействие с другими объектами сети. Вообще, базовая станция может включать в себя любое количество контроллеров, процессоров, запоминающих устройств, передатчиков, приемников и т.д.
Беспроводное устройство 100 также может называться пользовательским оборудованием (UE), мобильной станцией, терминалом, терминалом доступа, мобильным оборудованием, абонентским модулем, станцией и т.д. Беспроводное устройство 100 может быть сотовым телефоном, персональным цифровым помощником (PDA), беспроводным модемом, карманным устройством, переносным компьютером и т.д.
В тракте приема антенна 112 принимает сигналы, переданные базовой станцией 150, другими базовыми станциями, спутниками и т.д., и предоставляет принятый сигнал приемнику 114 (RCVR). Приемник 114 обрабатывает (например фильтрует, усиливает, преобразует с понижением частоты и оцифровывает) принятый сигнал и предоставляет выборки цифровой части 120 для дополнительной обработки. В тракте передачи цифровая часть 120 обрабатывает данные, которые необходимо передать, и предоставляет элементарные сигналы данных передатчику 116 (TMTR). Передатчик 116 обрабатывает (например преобразует в аналоговую форму, фильтрует, усиливает и преобразует с повышением частоты) элементарные сигналы данных и формирует модулированный сигнал, который передается через антенну 112.
Цифровая часть 120 может включать в себя различные обрабатывающие, запоминающие и интерфейсные модули, которые поддерживают связь с одной или более сетями беспроводной связи, а также с другими приложениями. В показанном на фиг.1 исполнении цифровая часть 120 включает в себя центральный процессор 130 (CPU), контроллер/процессор 132, запоминающее устройство 134, кэш 136 и внешний интерфейс 138, которые соединены с шиной 140. CPU 130 может содержать любое количество цифровых процессоров сигналов (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 может реализовывать технологию радиосвязи, такую как наземный доступ системы UMTS (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, Flash-OFDM и т.д. UTRA и E-UTRA являются частью универсальной системы мобильных телекоммуникаций (UMTS). UTRA, E-UTRA, UMTS и GSM описываются в документах от организации, именуемой "Проект Партнерства Третьего Поколения" (3GPP). CDMA2000 описывается в документах от организации, именуемой "Второй Проект Партнерства Третьего Поколения" (3GPP2). WLAN может реализовывать технологию радиосвязи, такую как IEEE 802.11, Hiperlan и т.д. WPAN может реализовывать технологию радиосвязи, такую как Bluetooth. Широковещательная сеть может реализовывать технологию радиосвязи, такую как Цифровое видеовещание для карманных устройств (DVB-H), Широковещание с интегрированными цифровыми услугами для Наземного телевизионного вещания (ISDB-T), MediaFLO и т.д. Эти различные сети, технологии радиосвязи и стандарты известны в данной области техники.
Для ясности нижеследующее описание допускает, что беспроводное устройство 100 поддерживает UMTS. Версия 5 3GPP и более поздние поддерживает Высокоскоростной пакетный доступ нисходящей линии связи (HSDPA). Версия 6 3GPP и более поздние поддерживает Высокоскоростной пакетный доступ восходящей линии связи (HSUPA). HSDPA и HSUPA являются наборами каналов и процедур, которые дают возможность высокоскоростной пакетной передачи данных по нисходящей линии связи и восходящей линии связи соответственно.
Беспроводное устройство 100 также может поддерживать различные приложения. Приложение может быть программным и/или микропрограммным модулем, который выполняет конкретную функцию. Разные приложения могут использоваться для разных технологий радиосвязи, разных особенностей данной технологии радиосвязи и т.д. Например, беспроводное устройство 100 может поддерживать приложения для HSDPA, HSUPA, WLAN, Bluetooth, MediaFLO, речи, видео, видеотелефонии, веб-обозревателя, электронной почты, текстового редактора, графических приложений, таких как видеоигры, Глобальной системы позиционирования с поддержкой (A-GPS) и т.д.
Беспроводное устройство 100 может иметь различные типы ресурсов, которые могут использоваться для поддержки всех приложений, работающих в беспроводном устройстве. Ресурсы в беспроводном устройстве 100 могут распределяться по категориям следующим образом:
- ресурсы обработки - ресурсы для выполнения обработки для приложений, например, CPU 130,
- ресурсы памяти - ресурсы для хранения данных для приложений, например, запоминающее устройство 134,
- ресурсы кэша - ресурсы для быстрого хранения данных для приложений, например, кэш 136, и
- ресурсы шины - ресурсы для передачи данных для приложений, например, шина 140.
Ресурсы в беспроводном устройстве 100 могут быть конфигурируемыми. Например, производительность обработки у беспроводного устройства 100 может меняться путем регулировки тактовой частоты у CPU 130, и пропускная способность шины может меняться путем регулировки тактовой частоты у шины 140. Более высокие тактовые частоты CPU и шины могут предоставить больше ресурсов обработки и шины, но также могут привести к более высокой потребляемой мощности, которая может сократить время работы от батарей у беспроводного устройства 100. Вообще, может быть желательно работать на самых низких тактовых частотах CPU и шины, что может предоставить достаточные ресурсы обработки и шины, чтобы удовлетворять потребности всех активных приложений, чтобы потребляемая мощность могла быть минимизирована. Для ресурсов памяти и кэша величина доступных ресурсов может быть постоянной по исполнению, но эти ресурсы могут выделяться активным приложениям разными способами. Например, приложению, которое интенсивно использует память, может быть выделено больше ресурсов кэша и/или памяти, чем приложению, которое не является интенсивно использующим память.
Вообще, любое количество приложений и любой тип приложения могут быть активными в беспроводном устройстве 100 в любой заданный момент. Каждое активное приложение может иметь определенные потребности или требования к ресурсам. Доступные ресурсы в беспроводном устройстве 100 могут конфигурироваться для соответствия потребностям в ресурсах у всех активных приложений, например, путем регулировки тактовых частот CPU и шины. В некоторых случаях даже самые высокие тактовые частоты CPU и шины, поддерживаемые беспроводным устройством 100, могут не обеспечивать достаточных ресурсов для удовлетворения потребностей всех активных приложений. В этих случаях одно или более активных приложений может управляться, чтобы снизить потребности в ресурсах для приспособления к доступным ресурсам.
Фиг.2
показывает схему исполнения системы 200 управления ресурсами для беспроводного устройства 100. В этом исполнении система 200 включает в себя контроллер 210 ресурсов, монитор 212 ресурсов и диспетчер 214 аппаратных средств. Каждый из модулей 210, 212 и 214 может быть реализован с помощью программного обеспечения и/или микропрограммного обеспечения, работающего в беспроводном устройстве 100, с помощью аппаратных средств, реализованных в беспроводном устройстве 100, или с помощью сочетания того и другого.
Монитор 212 ресурсов может определять коэффициент использования ресурса активными приложениями. Для ресурсов обработки монитор 212 ресурсов может подсчитывать количество активных тактов для CPU 130 в интервале измерения. Монитор 212 ресурсов может выявить величину ресурсов обработки, используемых активными приложениями, на основе количества активных тактов и/или количества свободных тактов в течение интервала измерения. Монитор 212 ресурсов может определить загрузку CPU, которая равна процентному отношению времени, которое CPU 130 использует в течение интервала измерения. Загрузка CPU может вычисляться на основе отношения количества активных тактов к общему количеству тактов в интервале измерения. Интервал измерения может выбираться, чтобы обеспечить достаточное усреднение, а также для сокращения задержки в получении отчетов о коэффициенте использования ресурса. Интервал измерения может быть 100 миллисекунд (мс), 200 мс и т.д. Монитор 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/шины, когда доступных ресурсов недостаточно для удовлетворения потребностей в ресурсах. Контроллер 210 ресурсов также может управлять одним или более приложениями для снижения потребностей в ресурсах, если доступных ресурсов, даже с наивысшими тактовыми частотами CPU/шины, недостаточно для удовлетворения потребностей в ресурсах. Контроллер 210 ресурсов может, соответственно, управлять доступными ресурсами, а также потребностями в ресурсах, чтобы соответствовать потребностям в ресурсах с помощью обеспечения ресурсами.
N приложений 220a-220n могут быть активными, где N вообще может быть любым целым значением, большим либо равным нулю. В показанном на фиг.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 опускается ниже нижней пороговой величины.
В другом аспекте активные приложения могут управляться по необходимости, чтобы потребности в ресурсах могли удовлетворяться доступными ресурсами в беспроводном устройстве 100. Потребности в ресурсах могут быть выявлены посредством наблюдения в реальном масштабе времени. Доступные ресурсы могут увеличиваться или уменьшаться, например, путем выбора разных тактовых частот, на основе потребностей в ресурсах. Однако, когда доступные ресурсы достигают максимального объема, активные приложения могут управляться для снижения потребностей в ресурсах, чтобы они были ниже доступных ресурсов.
Например, если CPU 130 работает с загрузкой CPU выше верхней пороговой величины, то контроллер 210 ресурсов может принять меры для исправления этого состояния. Контроллер 210 ресурсов может регулировать/уменьшить передачу нисходящей линии связи от базовой станции 150 и/или передачу восходящей линии связи от беспроводного устройства 100 на основе загрузки CPU. В качестве альтернативы или дополнительно, контроллер 210 ресурсов может управлять снижением производительности одного или более других активных приложений, работающих в беспроводном устройстве 100. Например, контроллер 210 ресурсов может указать фоновому приложению (например, программе загрузки) работать на меньшей скорости для снижения потребностей CPU, что может затем освободить ресурсы CPU для приложения с более высоким приоритетом (например, речевого вызова). В качестве альтернативы, контроллер 210 ресурсов может временно остановить или прекратить фоновое приложение. В любом случае, управление фоновым приложением может не подвергать опасности качество обслуживания (QoS) у приложений с более высоким приоритетом.
Фиг.3
f
f
f
f
f
f
f
1
2
3
1
2
3
3
показывает пример регулировки тактовой частоты CPU на основе потребностей в CPU от активных приложений. В этом примере поддерживаются три тактовые частоты ,  и  CPU, причем <<. Максимальная производительность CPU достигается с наивысшей тактовой частотой .
f
f
f
f
f
f
f
1
1
2
2
2
3
3
CPU 130 исходно работает с самой низкой тактовой частотой  на этапе A. Загрузка CPU увеличивается вследствие более высоких потребностей от активных приложений и достигает верхней пороговой величины на этапе B. Тактовая частота CPU переключается с  на  на этапе C, и загрузка CPU падает на этапе D из-за большей производительности CPU с более высокой тактовой частотой . Загрузка CPU увеличивается снова из-за более высоких потребностей и достигает верхней пороговой величины на этапе E. Тактовая частота CPU переключается с  на  на этапе F, и загрузка CPU падает на этапе G из-за большей производительности CPU с более высокой тактовой частотой . Загрузка CPU увеличивается снова из-за более высоких потребностей и достигает верхней пороговой величины на этапе H.
f
3
Поскольку наивысшая тактовая частота  CPU уже выбрана, контроллер 210 ресурсов начинает управление активными приложениями, чтобы снизить потребности в ресурсах. Загрузка CPU уменьшается в ответ на управление активными приложениями. Контроллер 210 ресурсов прекращает управление приложениями, когда загрузка CPU достигает приемлемого уровня на этапе I. Загрузка CPU после этого увеличивается снова из-за более высоких потребностей и достигает верхней пороговой величины на этапе J. Контроллер 210 ресурсов начинает управление активными приложениями, и в ответ загрузка CPU уменьшается. Контроллер 210 ресурсов прекращает управление приложениями, когда загрузка CPU достигает приемлемого уровня на этапе K.
f
f
f
f
f
f
3
2
2
2
1
1
Загрузка CPU после этого уменьшается из-за меньших потребностей от активных приложений и достигает нижней пороговой величины на этапе L. После заранее установленного периода времени, в котором потребности находятся на или ниже нижней пороговой величины, тактовая частота CPU переключается с  вниз до  на этапе M. Загрузка CPU увеличивается на этапе N из-за меньшей производительности CPU с более низкой тактовой частотой . Загрузка CPU уменьшается снова из-за меньших потребностей и достигает нижней пороговой величины на этапе O. После заранее установленного периода времени тактовая частота CPU переключается с  вниз до  на этапе P, и загрузка CPU увеличивается на этапе Q из-за меньшей производительности CPU с самой низкой тактовой частотой .
В показанном на фиг.3 исполнении используются две пороговые величины для регулировки тактовой частоты CPU и управления активными приложениями. Те же верхние и нижние пороговые величины могут использоваться для всех тактовых частот CPU, как показано на фиг.3. В качестве альтернативы, разный набор верхних и нижних пороговых величин может использоваться для каждой тактовой частоты CPU и может выбираться на основе производительности CPU для той тактовой частоты. В другом исполнении используются больше двух пороговых величин для регулировки тактовой частоты CPU и/или управления активными приложениями. Одинаковые пороговые величины могут использоваться для всех активных приложений. В качестве альтернативы, разные активные приложения могут иметь разные наборы пороговых величин. Каждое активное приложение может управляться на основе загрузки CPU относительно набора пороговых величин, применяемых для этого приложения.
Фиг.3 показывает регулировку тактовой частоты CPU для изменения производительности CPU на основе потребностей в CPU. Другие ресурсы, например, ресурсы шины, могут управляться аналогичным образом.
Фиг.4
показывает взаимодействие между контроллером 210 ресурсов, монитором 212 ресурсов, диспетчером 214 аппаратных средств и приложениями 220a-220n на фиг.2. Контроллер 210 ресурсов может принимать отчеты о коэффициенте использования ресурса от монитора 212 ресурсов. Каждый коэффициент использования ресурса может указывать загрузку CPU и/или коэффициент загрузки других ресурсов в беспроводном устройстве 100. Контроллер 210 ресурсов может определить, достаточно ли доступных ресурсов для удовлетворения потребностей в ресурсах у активных приложений. Контроллер 210 ресурсов может отправить аппаратные команды (например, для более низких или более высоких тактовых частот) диспетчеру 214 аппаратных средств, который может затем задать конфигурацию аппаратных средств, чтобы изменить объем ресурсов. Контроллер 210 ресурсов также может, при необходимости, отправить управляющие команды каждому отдельному активному приложению 220, чтобы управлять потребностями в ресурсах от приложения.
Контроллер 210 ресурсов может выбрать активные приложения для управления различными способами. В одном исполнении контроллер 210 ресурсов выбирает активные приложения для управления на основе их приоритетов, а также указаний того, могут ли управляться эти приложения. Контроллер 210 ресурсов может выбрать и управлять приложением сначала с наименьшим приоритетом, затем следующим приложением со вторым наименьшим приоритетом, и так далее, и затем последним приложением с наивысшим приоритетом. Например, контроллер 210 ресурсов может выбрать приложения в следующем порядке:
- диагностические и другие приложения, которые не имеют отношения к каким бы то ни было принимаемым услугам,
- фоновые и допускающие задержку приложения, например, загрузка данных, и
- интерактивные и чувствительные к задержке приложения, например, видеотелефония.
В некоторых случаях управление только диагностическим приложением может снизить потребности в ресурсах на достаточную величину. Если управление диагностическим приложением не является достаточным, то затем могут управляться фоновые приложения, и в качестве последнего средства могут управляться интерактивные приложения. Этот порядок может снизить влияние на восприятие пользователя.
В другом исполнении контроллер 210 ресурсов выбирает активные приложения для управления на основе их требований 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 ресурсов может менять скорость передачи данных в нисходящей линии связи для HSDPA аналогично скорости передачи данных в восходящей линии связи для HSUPA.
В одном исполнении монитор 212 ресурсов определяет загрузку CPU (например, периодически в каждом интервале измерения), сравнивает загрузку CPU с набором пороговых величин и отправляет отчет контроллеру 210 ресурсов всякий раз, когда загрузка CPU переходит пороговую величину. Это исполнение может сократить количество отчетов, отправляемых монитором 212 ресурсов контроллеру 210 ресурсов.
Фиг.5
показывает исполнение для отчета о загрузке CPU с двумя пороговыми величинами - верхней пороговой величиной и нижней пороговой величиной. Загрузка CPU может находиться в одном из трех возможных диапазонов:
- диапазон выключения - охватывает загрузку от 0% до нижней пороговой величины,
- средний диапазон - охватывает диапазон от нижней пороговой величины до верхней пороговой величины, и
- верхний диапазон - охватывает загрузку от верхней пороговой величины до 100%.
Три диапазона также могут называться состояниями CPU. Монитор 212 ресурсов может отправлять отчет о низкой загрузке CPU всякий раз, когда загрузка CPU перемещается в нижний диапазон, отправлять отчет о средней загрузке CPU всякий раз, когда загрузка CPU перемещается в средний диапазон, и отправлять отчет о высокой загрузке CPU всякий раз, когда загрузка CPU перемещается в верхний диапазон.
В одном исполнении одни и те же верхние и нижние пороговые величины используются для всех активных приложений. В этом исполнении контроллер 210 ресурсов может принимать отчеты о низкой, средней и высокой загрузке CPU от монитора 212 ресурсов и может управлять активными приложениями по необходимости. В другом исполнении разный набор верхних и нижних пороговых величин может использоваться для каждого активного приложения. В этом исполнении монитор 212 ресурсов может сформировать отчеты о низкой, средней и высокой загрузке CPU для каждого приложения на основе набора пороговых величин для этого приложения. Контроллер 210 ресурсов может управлять каждым приложением на основе отчетов о низкой, средней и высокой загрузке CPU, принятых для этого приложения. Верхняя пороговая величина может задаваться значением между 90% и 100%. Нижняя пороговая величина может задаваться значением между 80% и 90%. Верхняя и нижняя пороговые величины также могут задаваться другими значениями.
Каждое приложение может управляться способом, подходящим для этого приложения. Приложение по работе с данными, например, HSDPA и HSUPA, могут управляться различными способами, которые описываются ниже.
Для HSDPA базовая станция 150 может отправить данные одному или более пользователям по высокоскоростному совместно используемому каналу нисходящей линии связи (HS-DSCH) в каждом интервале времени передачи (TTI) длиной 2 мс. HS-DSCH совместно используется всеми пользователями посредством мультиплексирования с временным и кодовым разделением. Каждый пользователь периодически передает индикатор качества канала (CQI), который сообщает качество канала нисходящей линии связи, наблюдаемое этим пользователем. Базовая станция 150 принимает CQI от всех пользователей и использует информацию CQI для (i) выбора одного или более пользователей для передачи нисходящей линии связи в следующем TTI и (ii) выбора скорости передачи данных для каждого запланированного пользователя. Вообще, пользователям, наблюдающим высокое качество канала нисходящей линии связи, может быть отправлено больше данных.
Для HSDPA базовая станция 150 отправляет данные в протокольных блоках данных (PDU), используя протокол работы радиолинии (RLC) на канальном уровне. PDU RLC также называется PDU или пакетом в описании ниже. Каждый PDU может составлять 40 байт, 80 байт и т.д. Для RLC передатчик отправляет PDU приемнику, причем каждый PDU идентифицируется порядковым номером, который увеличивается всякий раз, когда отправляется новый PDU. Приемник декодирует каждый принятый PDU и отправляет подтверждение приема (ACK), если PDU декодируется правильно. Для повышения пропускной способности передатчик может отправить новые PDU без ожидания ACK для ранее отправленных PDU. Окно RLC определяет максимальное количество ожидающих выполнения PDU без ACK, как видно от передатчика. Если N обозначает наивысший пронумерованный неподтвержденный PDU, который является началом окна RLC, а W указывает размер окна RLC, то наивысший порядковый номер, который может быть отправлен, равен N+W. Передатчик не может отправить новый PDU, пока не приняты ACK для всех PDU, отправленных до начала окна RLC. Окно RLC может меняться в размере и может охватывать от 1 до 2047 PDU. Размер окна RLC для HSDPA может управляться беспроводным устройством 100 путем отправки команды Window на базовую станцию 150. Беспроводное устройство 100 может управлять объемом данных, отправленных базовой станцией 150 беспроводному устройству 100, путем выбора подходящего размера окна RLC и отправки базовой станции этого размера окна. С помощью уменьшения окна RLC объем данных может быть уменьшен соответственно, поскольку меньшее окно RLC заставило бы базовую станцию 150 ожидать ACK для предшествующих PDU перед отправкой новых PDU. Для передачи восходящей линии связи в HSUPA базовая станция 150 может отправить команду беспроводному устройству 100 для управления объемом данных, отправляемых беспроводным устройством.
В одном исполнении приложение по работе с данными управляется путем регулировки размера окна для этого приложения по работе с данными. Размер окна может быть уменьшен для уменьшения объема данных, отправляемых/принимаемых приложением, что может потом снизить потребности в ресурсах от приложения. Наоборот, размер окна может быть увеличен для расширения объема данных, отправляемых/принимаемых приложением, что может потом увеличить использование ресурсов приложением. Регулировка размера окна может использоваться для передачи нисходящей линии связи (например, путем HSDPA), а также передачи восходящей линии связи (например, путем HSUPA). Для нисходящей линии связи выбранный размер окна может отправляться базовой станции 150. Для восходящей линии связи передатчик располагается в беспроводном устройстве 100, и размер окна может управляться непосредственно без необходимости отправлять какие-либо команды базовой станции 150.
Размер окна для приложения по работе с данными может управляться на основе потребностей в CPU различными способами. В одном исполнении размер окна может меняться между минимальным значением и максимальным значением, которые могут выбираться на основе различных факторов. Размер окна может быть резко уменьшен до минимального значения, когда принимается отчет о высокой загрузке CPU. Это резкое уменьшение размера окна может освободить ресурсы настолько быстро, насколько возможно, поскольку приложения с высоким приоритетом могут не быть допускающими задержку, и их следует обслужить настолько быстро, насколько возможно. Это резкое уменьшение также может позволить агрессивно задать верхнюю пороговую величину около 100%, что может позволить большее использование ресурсов CPU. Когда потребности в CPU снижаются, размер окна может быть постепенно увеличен ступенчато. Это постепенное увеличение может устранить эффект "пинг-понга" (например, размер окна переключается между минимальным и максимальным значениями) из-за переменных отчетов о высокой и низкой загрузке CPU. Пока окно меньше максимального значения, размер окна может быть увеличен или уменьшен ступенчато на основе отчетов о загрузке CPU. Когда окно достигает максимального значения, размер окна может быть резко уменьшен до минимального значения в следующий раз, когда принимается отчет о высокой загрузке CPU.
Для указания, управляется ли в настоящее время приложение по работе с данными, может использоваться признак. Признак может изначально устанавливаться в Выключено, затем переключаться с Выключено на Включено, когда принимается отчет о высокой загрузке CPU и признак находится в Выключено, и переключаться с Включено обратно на Выключено, когда размер окна устанавливается на максимальное значение при признаке, равном Включено. Размер окна для приложения по работе с данными может быть уменьшен до минимального значения, когда принимается отчет о высокой загрузке CPU и признак установлен в Выключено. Если признак установлен во Включено, когда принимается отчет о высокой загрузке CPU, то размер окна может уменьшаться на шаг уменьшения периодически в каждом интервале обновления, пока не достигнуто минимальное значение. Когда принимается отчет о низкой загрузке CPU, размер окна может увеличиваться на шаг увеличения периодически, пока не достигнуто максимальное значение. Когда принимается отчет о средней загрузке CPU, размер окна может быть сохранен в текущем значении.
Фиг.6
0
1
2
3
4
показывает пример регулировки размера окна для приложения по работе с данными. Этот пример предназначен для исполнения, показанного на фиг.5, с верхней и нижней пороговыми величинами для загрузки CPU и отчетами о низкой, средней и высокой загрузке CPU. В момент T признак находится в Выключено, и размер окна устанавливается в максимальное значение. В момент T принимается отчет о высокой загрузке CPU, начинается управление приложением по работе с данными, признак устанавливается во Включено, и размер окна уменьшается до минимального значения. Отчет о низкой загрузке CPU принимается в момент T, и размер окна увеличивается на шаг увеличения. Размер окна увеличивается на шаг увеличения после каждого интервала обновления в моменты T и T.
5
6
7
8
9
10
11
11
Отчет о средней загрузке CPU принимается в момент T, и размер окна сохраняется. Отчет о высокой загрузке CPU принимается в момент T, и размер окна уменьшается на шаг уменьшения, поскольку признак находится во Включено. Размер окна уменьшается на шаг уменьшения после интервала обновления в момент T. Отчет о средней загрузке CPU принимается в момент T, и размер окна сохраняется. Отчет о низкой загрузке CPU принимается в момент T, и размер окна увеличивается на шаг увеличения. Размер окна увеличивается на шаг увеличения после каждого интервала обновления в моменты T и T. Размер окна достигает максимального значения в момент T, признак устанавливается в Выключено, и управление приложением прекращается.
Может использоваться таймер для увеличения или уменьшения размера окна, когда признак находится во Включено. Таймер может запускаться после выполнения регулировки размера окна и может производить обратный отсчет интервала обновления. Когда таймер истекает, может выполняться другая регулировка размера окна, и таймер может запускаться снова. Таймер может быть временно остановлен, когда принимается отчет о средней загрузке CPU, и может быть возобновлен с остановленного значения или запущен заново, когда принимается отчет о низкой или высокой загрузке CPU.
Параметры, такие как минимальный и максимальный размеры окна, размеры шага увеличения и уменьшения и интервал обновления, могут устанавливаться в подходящие значения для достижения нужной производительности. Минимальный размер окна может выбираться для достижения минимальной производительности для приложения по работе с данными, а также для ухода от отрицательных последствий для других протоколов. Например, Протокол управления передачей (TCP) может блокироваться по превышению времени, если никакие пакеты TCP не отправляются и подтверждаются в течение интервала для повторной передачи (RTO). Всякий раз, когда возникает тайм-аут, TCP выполняет отслеживание перегрузок и уменьшает поток данных, что может требовать длительного времени для восстановления и, следовательно, ухудшает производительность. Минимальный размер окна может быть установлен в достаточно большое значение, чтобы гарантировать, что по меньшей мере один пакет TCP может быть отправлен и подтвержден до того, как возникнет тайм-аут TCP. В одном исполнении минимальный размер окна может быть установлен в 80 PDU, что может избежать тайм-аута TCP. Максимальный размер окна может быть установлен в менее 2047 или в значение, полученное во время установления вызова или реконфигурации. Размеры шага увеличения и уменьшения могут быть установлены в четверть от максимального значения, чтобы размер окна мог увеличиваться до максимального значения в четырех интервалах обновления, как показано на фиг.6. Также могут использоваться другие размеры шага увеличения и уменьшения. Интервал обновления может быть задан 200 мс или какой-нибудь другой длительностью.
Для приложения по работе с данными нисходящей линии связи (например, HSDPA) команда Window с новым размером окна может отправляться базовой станции 150 всякий раз, когда изменяется размер окна. Команда Window может отправляться множество раз для повышения надежности, если базовая станция 150 не отправляет ACK для команды Window. Для приложения по работе с данными восходящей линии связи (например, HSUPA) новый размер окна может применяться в беспроводном устройстве 100.
Приложение по работе с данными может иметь один или более потоков данных, и каждый поток данных может соответствовать разному RAB. Для всех потоков данных может поддерживаться единое окно. В качестве альтернативы, отдельное окно для каждого потока данных может поддерживаться и может регулироваться на основе множества параметров для этого потока данных.
Фиг.6 показывает особое исполнение для управления приложением по работе с данными. Приложение по работе с данными также может управляться другими способами. В другом исполнении размер окна резко уменьшается до минимального значения всякий раз, когда принимается высокая загрузка CPU, независимо от того, находится ли признак во Включено или Выключено. В еще одном исполнении могут использоваться более двух пороговых величин для отчета о загрузке CPU, и более трех разных отчетов о загрузке CPU могут использоваться для управления приложением по работе с данными. В этом исполнении размер шага может зависеть от отчета о загрузке CPU.
В еще одном исполнении приложение по работе с данными управляется путем регулирования объема данных, формируемых источником данных. Например, если данные для приложения по работе с данными восходящей линии связи поступают от переносного компьютера, подключенного к беспроводному устройству 100 через универсальную последовательную шину (USB), то переносной компьютер и/или USB могут управляться для ограничения объема данных, принимаемых беспроводным устройством 100. В качестве другого примера, если данные для передачи восходящей линии связи поступают от объекта TCP в стеке протоколов в беспроводном устройстве 100, то объект TCP может управляться для ограничения объема данных, передаваемых на нижние уровни.
В еще одном исполнении приложение по работе с данными управляется на основе обратной связи CQI. Беспроводное устройство 100 может периодически измерять качество канала нисходящей линии связи и отправлять CQI, указывающий измеренное качество канала. Базовая станция 150 может использовать сообщенный CQI для выбора скорости передачи данных для передачи в нисходящей линии связи к беспроводному устройству 100. Когда загрузка CPU не высокая или приложение по работе с данными нисходящей линии связи не управляется, беспроводное устройство 100 может отправить измеренный CQI. Когда загрузка CPU высокая, беспроводное устройство 100 может отправить CQI, который меньше измеренного CQI, что может привести к тому, что базовая станция 150 выберет более низкую скорость передачи данных и отправит меньше данных беспроводному устройству 100. Беспроводное устройство 100 может соответственно отправлять подходящие CQI для управления объемом данных, отправляемых базовой станцией 150.
В еще одном исполнении приложение по работе с данными управляется на основе обратной связи CQI и частоты блоков с ошибками (BLER). Базовая станция 150 может отправить PDU беспроводному устройству 100. Беспроводное устройство 100 может попытаться декодировать каждый принятый PDU и может вернуть ACK, если PDU декодируется правильно, или отрицательное подтверждение приема (NAK), если PDU декодируется с ошибкой. Базовая станция 150 может определить BLER у передачи в нисходящей линии связи, которая является отношением количества PDU, декодированных с ошибкой, к общему количеству переданных PDU. Базовая станция 150 может выбрать скорость передачи данных для передачи в нисходящей линии связи на основе как CQI, сообщенного беспроводным устройством 100, так и BLER, поддерживаемой базовой станцией 150. Если BLER низкая, например, ниже целевой BLER, то базовая станция 150 может добавить смещение к сообщенному CQI и выбрать скорость передачи данных на основе скорректированного CQI. Базовая станция 150 может регулировать смещение CQI вверх или вниз для достижения целевой BLER. Смещение CQI, добавленное базовой станцией 150, может сбалансировать уменьшение CQI беспроводным устройством 100. Для противодействия смещению CQI, добавленному базовой станцией 150, беспроводное устройство 100 может отправлять NAK периодически, чтобы измеренная BLER на базовой станции 150 была близка к целевой BLER, и смещение CQI, добавленное базовой станцией 150, было малым или нулем.
Приложение по работе с данными также может управляться другими способами, используя другие механизмы. Сочетание исполнений, описанных выше, также может использоваться для приложения по работе с данными. Например, управление на основе обратной связи CQI может быть реализовано первым и в течение заранее установленной длительности времени, а управление на основе регулировки размера окна может быть запущено после заранее установленной длительности времени. В качестве другого примера, управление на основе как обратной связи CQI, так и регулировки размера окна может выполняться одновременно.
Фиг.7
показывает исполнение процесса 700, выполняемого беспроводным устройством для управления приложениями на основе потребностей в ресурсах. Приложения, работающие в беспроводном устройстве, могут выполняться модулем обработки, имеющим максимальную производительность обработки (этап 712). Модуль обработки может содержать один или более CPU, DSP, универсальных процессоров и т.д., или любое их сочетание. Потребности в обработке у приложений могут отслеживаться контроллером, который может быть программным обеспечением и/или аппаратными средствами в беспроводном устройстве (этап 714). По меньшей мере одно из приложений может управляться на основе потребностей в обработке и максимальной производительности обработки у модуля обработки (этап 716).
По меньшей мере одно приложение может выбираться для управления среди приложений, работающих в беспроводном устройстве, на основе приоритетов этих приложений. Приложение с низким приоритетом может управляться первым, а приложение с высоким приоритетом может управляться после того, как управление приложением с низким приоритетом выполнено полностью.
По меньшей мере одно приложение, которым необходимо управлять, может включать в себя приложение по работе с данными. Это приложение по работе с данными может управляться путем (i) уменьшения объема данных, которыми обмениваются (например, отправляют и/или принимают) с базовой станцией, когда обнаруживаются высокие потребности в обработке, или (ii) увеличения объема данных, которыми обмениваются с базовой станцией, когда обнаруживаются низкие потребности в обработке. Высокие потребности в обработке могут соответствовать потребностям в обработке, превышающим верхнюю пороговую величину, а низкие потребности в обработке могут соответствовать потребностям в обработке, опускающимся ниже нижней пороговой величины.
Приложение по работе с данными может управляться путем регулировки размера окна на основе потребностей в обработке и максимальной производительности обработки. Размер окна может регламентировать количество неподтвержденных пакетов, которыми обмениваются с помощью приложения по работе с данными. Размер окна может регулироваться между максимальным значением и минимальным значением, где минимальное значение может выбираться, чтобы избежать тайм-аута TCP и/или другого протокола. Когда обнаруживаются высокие потребности в обработке, размер окна может быть уменьшен (i) резко до минимального значения, если приложение по работе с данными еще не управляется, или (ii) ступенчато, если приложение по работе с данными управляется. Когда обнаруживаются низкие потребности в обработке, размер окна может быть увеличен ступенчато, например, на один шаг увеличения в каждом интервале обновления, вплоть до максимального значения. Размер окна может сохраняться, когда обнаруживаются средние потребности в обработке. Для нисходящей линии связи размер окна может отправляться базовой станции либо один раз, либо множество раз для повышения надежности. Размер окна может использоваться RLC в HSDPA.
Приложение по работе с данными также может управляться на основе обратной связи CQI. CQI может быть получен на основе качества канала нисходящей линии связи, измеренного в беспроводном устройстве для базовой станции. Когда обнаруживаются высокие потребности в обработке, CQI может быть уменьшен, и уменьшенный CQI может быть отправлен базовой станции. NAK также могут отправляться для заранее установленного процентного отношения пакетов, принятых от базовой станции, даже если пакеты декодируются правильно, когда обнаруживаются высокие потребности в обработке. Приложение по работе с данными также может управляться путем изменения размера транспортного блока, модификации отчетов о состоянии буфера, отправленных сети, и т.д. Отчеты о состоянии буфера могут модифицироваться, чтобы ресурсы сети (информация о планировании и измерения объема трафика) не растрачивались.
Фиг.8
показывает исполнение процесса 800, выполняемого базовой станцией. Информация, определенная на основе потребностей в обработке и максимальной производительности обработки в беспроводном устройстве, принимается базовой станцией (этап 812). Объем данных для обмена с беспроводным устройством может управляться на основе принятой информации (этап 814). Данными можно обмениваться с беспроводным устройством на основе управления, сформированного для обмена данными (этап 816). Информация может содержать размер окна, регламентирующий количество неподтвержденных пакетов, например, размер окна, используемый RLC для HSDPA. Пакеты могут затем отправляться беспроводному устройству в соответствии с размером окна. Информация может содержать 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), процессорах, контроллерах, микроконтроллерах, микропроцессорах, электронных устройствах, других электронных модулях, спроектированных для выполнения описанных здесь функций, компьютере или их сочетании.
Для микропрограммной и/или программной реализации методики могут реализовываться с помощью модулей (например, процедур, функций и т.д.), которые выполняют описанные в этом документе функции. Микропрограммные и/или программные команды могут храниться в запоминающем устройстве (например, запоминающем устройстве 134 или 162 на фиг.1) и выполняться процессором (например, процессором 132 или 160). Запоминающее устройство может реализовываться внутри процессора или вне процессора. Микропрограммные и/или программные команды также могут храниться на другом считываемом процессором носителе, таком как оперативное запоминающее устройство (RAM), постоянное запоминающее устройство (ROM), энергонезависимое оперативное запоминающее устройство (NVRAM), программируемое постоянное запоминающее устройство (PROM), электрически стираемое PROM (EEPROM), флэш-память, компакт-диск (CD), магнитное или оптическое устройство хранения данных и т.д.
Устройство, реализующее описанные в этом документе методики, может быть автономным модулем или может быть частью устройства. Устройство может быть (i) автономной интегральной схемой (IC), (ii) набором из одной или нескольких IC, который может включать в себя IC памяти для хранения данных и/или команд, (iii) ASIC, например, модемом мобильной станции (MSM), (iv) модулем, который может быть встроен в другие устройства, (v) сотовым телефоном, беспроводным устройством, телефонной трубкой или мобильным модулем, (vi) и т.д.
Предшествующее описание раскрытия изобретения предоставляется, чтобы дать возможность любому специалисту в данной области техники создать или использовать раскрытие изобретения. Различные модификации к этому раскрытию изобретения будут полностью очевидны специалистам в данной области техники, а общие принципы, определенные в этом документе, могут быть применены к другим вариациям без отклонения от сущности или объема раскрытия изобретения. Таким образом, данное раскрытие изобретения не предназначено, чтобы ограничиваться описанными в этом документе примерами и исполнениями, а должно соответствовать самому широкому объему, согласующемуся с принципами и новыми признаками, раскрытыми в этом документе.