Способ и устройство для управления ресурсами в беспроводном устройстве

Иллюстрации

Показать все

Изобретение относится в целом к электронике, а точнее - к методикам для управления ресурсами в беспроводном устройстве. Технический результат - смягчение отрицательных последствий в пакетах данных, передаваемых беспроводным устройством, возникающих вследствие того, что потребности в обработке превышают производительность обработки, что может приводить, например, к отбрасыванию пакетов. Устройство, выполненное с возможностью осуществления беспроводной связи с базовой станцией, содержит: модуль обработки, имеющий максимальную производительность обработки и функционирующий для выполнения приложений, работающих в устройстве, и контроллер, функционирующий для отслеживания потребностей в обработке у приложений и для управления, по меньшей мере, одним из приложений на основе потребностей в обработке и максимальной производительности обработки. Для модуля обработки может быть выбрана более высокая тактовая частота, когда потребности в обработке превышают верхнюю пороговую величину, и более низкая тактовая частота может быть выбрана, когда потребности в обработке опускаются ниже нижней пороговой величины. 8 н. и 36 з.п. ф-лы, 10 ил.

Реферат

Настоящая заявка притязает на приоритет Предварительной заявки США с порядковым номером 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 показывает пример регулировки тактовой частоты CPU на основе потребностей в CPU от активных приложений. В этом примере поддерживаются три тактовые частоты f 1, f 2 и f 3 CPU, причем f 1<f 2<f 3. Максимальная производительность CPU достигается с наивысшей тактовой частотой f 3.

CPU 130 исходно работает с самой низкой тактовой частотой f 1 на этапе A. Загрузка CPU увеличивается вследствие более высоких потребностей от активных приложений и достигает верхней пороговой величины на этапе B. Тактовая частота CPU переключается с f 1 на f 2 на этапе C, и загрузка CPU падает на этапе D из-за большей производительности CPU с более высокой тактовой частотой f 2. Загрузка CPU увеличивается снова из-за более высоких потребностей и достигает верхней пороговой величины на этапе E. Тактовая частота CPU переключается с f 2 на f 3 на этапе F, и загрузка CPU падает на этапе G из-за большей производительности CPU с более высокой тактовой частотой f 3. Загрузка CPU увеличивается снова из-за более высоких потребностей и достигает верхней пороговой величины на этапе H.

Поскольку наивысшая тактовая частота f 3 CPU уже выбрана, контроллер 210 ресурсов начинает управление активными приложениями, чтобы снизить потребности в ресурсах. Загрузка CPU уменьшается в ответ на управление активными приложениями. Контроллер 210 ресурсов прекращает управление приложениями, когда загрузка CPU достигает приемлемого уровня на этапе I. Загрузка CPU после этого увеличивается снова из-за более высоких потребностей и достигает верхней пороговой величины на этапе J. Контроллер 210 ресурсов начинает управление активными приложениями, и в ответ загрузка CPU уменьшается. Контроллер 210 ресурсов прекращает управление приложениями, когда загрузка CPU достигает приемлемого уровня на этапе K.

Загрузка CPU после этого уменьшается из-за меньших потребностей от активных приложений и достигает нижней пороговой величины на этапе L. После заранее установленного периода времени, в котором потребности находятся на или ниже нижней пороговой величины, тактовая частота CPU переключается с f 3 вниз до f 2 на этапе M. Загрузка CPU увеличивается на этапе N из-за меньшей производительности CPU с более низкой тактовой частотой f 2. Загрузка CPU уменьшается снова из-за меньших потребностей и достигает нижней пороговой величины на этапе O. После заранее установленного периода времени тактовая частота CPU переключается с f 2 вниз до f 1 на этапе P, и загрузка CPU увеличивается на этапе Q из-за меньшей производительности CPU с самой низкой тактовой частотой f 1.

В показанном на фиг.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 для каждого приложения на основе набора пороговых величин для эт