Выборочная приостановка шинных устройств

Иллюстрации

Показать все

Изобретение относится к устройствам обеспечения управления мощностью. Техническим результатом является обеспечение управления мощностью в отношении одного или более аппаратных устройств, соединенных шиной. Согласно способу и машиночитаемому носителю посылают запрос на бездействие от первого устройства ко второму устройству, когда первое устройство готово приостановиться; ожидают приема от второго устройства вызова функции обратного вызова, связанной с первым устройством, принимают первым устройством указанной функции обратного вызова и приостанавливают первое устройство. В другом варианте машиночитаемый носитель содержит структуру данных, состоящую из первого поля, хранящего атрибут процедуры, представляющей функцию обратного вызова, и второго поля, хранящего атрибут контекста, представляющего контекст функции обратного вызова. 3 н. и 15 з.п. ф-лы, 9 ил.

Реферат

Область техники, к которой относится изобретение

Настоящее изобретение относится в целом к области управления мощностью устройств. В частности, данное изобретение относится к системе и способу обеспечения управления мощностью в отношении одного или более аппаратных устройств, соединенных шиной, для выборочной приостановки этих устройств.

Предшествующий уровень техники

Периферийные аппаратные устройства соединены с персональными компьютерами через различные шинные архитектуры. К примеру, универсальная последовательная шина (УПШ, USB) соединяет такие устройства, как концентраторы, устройства взаимодействия с человеком (HID), громкоговорители и устройства пользовательского ввода. В некоторых известных системах операционные системы главной машины поддерживают подключенные устройства при полном энергопотреблении, пока система работает, даже если такие устройства не используются в данный момент. Помимо этого любые концентраторы или контроллеры остаются бесполезными на полном энергопотреблении, когда к ним не подключены устройства, не являющиеся концентраторами. Эти ограничения подразумевают для настольных компьютеров чрезмерное потребление мощности и выделение тепла и в особенности имеют значение в контексте энергосбережения батарей питания для переносных компьютеров.

Помимо этого в некоторых известных системах шинный контроллер для шины обращается к основной памяти в главной системе непрерывно, когда этот шинный контроллер не находится в состоянии приостановки. Это не дает главной системе переводить кэш системного процессора или основной кэш для основной памяти и процессора в состояние бездействия (например, С3). Далее некоторые известные системы переводят шинный контроллер в состояние бездействия, только если ничего не подключено к портам корневого концентратора этой шины.

Описанное ниже изобретение обращено на один или более из этих и иных недостатков.

Сущность изобретения

Изобретение в общем относится к обеспечению управления мощностью в отношении одного или более аппаратных устройств, соединенных через шину. В частности, изобретение включает в себя сигнализацию и ожидание с целью приостановки первого устройства, соединенного со вторым устройством. Первое устройство посылает ко второму устройству запрос на бездействие, когда первое устройство готово приостановиться. Затем первое устройство ожидает приема от второго устройства вызова функции обратного вызова, связанной с первым устройством, чтобы приостановить первое устройство.

Способ, воплощающий аспекты изобретения, приостанавливает дерево устройств, где одно или более устройств иерархически организованы в виде дерева как родительские устройства и дочерние устройства. Контроллер в корне этого дерева принимает запрос на бездействие от одного или более дочерних устройств и приостанавливает все устройства в дереве после приема запроса на бездействие от каждого из дочерних устройств.

Изобретение также позволяет шине, главному контроллеру и любым устройствам на этой шине, связанным с вычислительной системой, такой как переносной компьютер, входить в режим низкого энергопотребления, даже пока вычислительная система поддерживает полное рабочее энергопотребление. Режим низкого энергопотребления обеспечивает экономию энергии батарей питания в переносных компьютерах, особенно когда нет устройств УПШ, подключенных к системе, и дает выигрыш по сравнению с другими компьютерными системами в отношении инициатив по экономии энергии. Изобретение переводит главный контроллер в состояние бездействия, даже несмотря на то, что к портам корневого концентратора подключены дополнительные устройства, при условии, что драйверы класса или драйверы других устройств используют преимущества этого изобретения. Далее изобретение может приостановить шину, когда к этой шине подключено комбинированное устройство, независимо от того, является ли это комбинированное устройство единственным устройством или одним устройством в дереве устройств.

В другом варианте выполнения данное изобретение позволяет всей шине приостанавливаться сразу, потому что все устройства на этой шине могут регистрировать себя как находящиеся в состоянии бездействия и готовые приостановиться. Изобретение приостанавливает одноранговые устройства, у которых отсутствует независимое управление мощностью. Изобретение абстрагирует различия между разными контроллерами от драйвера класса. Далее с помощью этого изобретения производители оригинального оборудования могут добавлять встроенные устройства в свою вычислительную систему, позволяя главному контроллеру находиться в состоянии бездействия и позволяя процессорам и кэшам, связанным со встроенными устройствами, входить в режим приостановки.

Альтернативно изобретение может содержать разные иные способы и устройства.

Другие признаки будут частично понятны и частично показаны в последующем описании.

Перечень фигур чертежей

Фиг.1 - блок-схема одного варианта выполнения изобретения, иллюстрирующая аппаратную модель устройств, соединенных по универсальной последовательной шине.

Фиг.2 - блок-схема одного варианта выполнения изобретения, иллюстрирующая среду иллюстративной вычислительной системы, в которой может быть воплощено изобретение.

Фиг.3 - блок-схема одного варианта выполнения изобретения, иллюстрирующая программную модель устройств, соединенных по универсальной последовательной шине.

Фиг.4 - блок-схема алгоритма одного варианта выполнения изобретения, иллюстрирующая работу программного обеспечения драйвера для управления дочерним устройством УПШ.

Фиг.5 - блок-схема алгоритма одного варианта выполнения изобретения, иллюстрирующая работу программного обеспечения драйвера для управления родительским устройством УПШ.

Фиг.6 - блок-схема алгоритма одного варианта выполнения изобретения, иллюстрирующая работу программного обеспечения контроллера для приостановки дерева устройств.

Фиг.7 - блок-схема одного варианта выполнения изобретения, иллюстрирующая компонент сигнализации и компонент драйвера, связанные с программным обеспечением драйвера, для управления дочерним устройством УПШ в древовидной структуре.

Фиг.8 - блок-схема одного варианта выполнения изобретения, иллюстрирующая компонент интерфейса и компонент контроллера для обеспечения управления мощностью в отношении аппаратных устройств.

Фиг.9 - блок-схема одного варианта выполнения изобретения, иллюстрирующая запрос УВВ на бездействие.

Соответствующие ссылочные позиции указывают соответствующие части по всем чертежам.

Подробное описание изобретения

На чертежах настоящее изобретение обеспечивает управление мощностью в отношении одного или более аппаратных устройств, соединенных через шину, такую как универсальная последовательная шина (УПШ).

Фиг.1 иллюстрирует аппаратную модель устройств, соединенных через УПШ, в виде блок-схемы. В варианте выполнения по фиг.1 компьютер 82 включает в себя внутреннюю шину 84 PCI (локальную шину межсоединения периферийных устройств). Периферийные компоненты, включая, но не в ограничительном смысле те, которые описываются в связи с фиг.2, соединены с внутренней шиной 84 PCI. К примеру, периферийный компонент может быть комбинированным устройством (например, устройством со множеством интерфейсов), корневым концентратором, таким как корневой концентратор 88 УПШ, или контроллером, таким как главный контроллер 86 УПШ. На фиг.1 главный контроллер 86 УПШ в компьютере 82 подключен к шине 84 PCI. Главный контроллер 86 УПШ включает в себя корневой концентратор 88 УПШ, к которому могут быть подсоединены периферийные устройства через УПШ, обобщенно показанную позицией 89. В других вариантах выполнения корневой концентратор 88 УПШ является внешним по отношению к контроллеру 86 УПШ. На фиг.1 принтер 90 и джойстик 92 соединены с корневым концентратором 88 УПШ. В этом варианте выполнения принтер 90 включает в себя концентратор, т.к. он имеет подключенные к нему мышь 94 и громкоговорители 96.

Периферийные устройства в примере по фиг.1 иерархически организованы как узлы в древовидной структуре, в которой мышь 94 и громкоговорители 96 являются дочерними узлами или дочерними устройствами принтера 90. Если принтер 90 представляет собой комбинированное устройство, то печатающий компонент является «братом» для других компонентов (узлом, имеющим общего «родителя» с узлами других компонентов) в том же самом устройстве принтера 90. В другом варианте выполнения общее родительское устройство используется как родитель для комбинированного устройства, которое само не имеет минимальных функциональных возможностей. Аналогично принтер 90 и джойстик 92 являются дочерними узлами компьютера 82. В этом случае контроллер 86, корневой концентратор 88 или компьютер именуются родительским узлом для принтера 90 или джойстика 92. В целом, концентратор, контроллер или общее родительское устройство могут быть родительским узлом для одного или более дочерних узлов. Для простоты ссылочная позиция 98 относится к устройствам вообще, таким как один или более из принтера 90, джойстика 92, мыши 94, громкоговорителей 96 и т.п.

Специалисты в данной области техники отметят, что организация узлов на фиг.1 является просто примером и что изобретение действует с любым узлом из множества узлов в древовидной структуре, соединенной со вторым узлом. Далее, хотя шина на фиг.1 является УПШ, специалисты в данной области техники отметят, что изобретение действует с любым типом шинной или сетевой архитектуры, которая обеспечивает связь между устройствами или между устройствами и контроллером.

В некоторых известных системах для дочерних устройств комбинированных устройств нельзя независимо осуществлять управление мощностью, потому что эти дочерние устройства являются компонентами одного и того же физического устройства и как таковые используют общий источник энергии совместно друг с другом. Изобретение же обеспечивает независимое управление мощностью устройства 98, которое не имеет независимого управления мощностью в отношении любых подключенных дочерних устройств (например, мыши 94 и громкоговорителей 96). Реализация изобретения представляет собой взаимодействие между программным обеспечением драйверов, таких как драйверы устройств УПШ (например, драйверы класса) и базовым стеком УПШ. Хотя изобретение, как оно описано здесь, включает в себя иллюстративные ссылки на драйверы класса, специалисты в данной области техники отметят, что изобретение в общем действует с любым типом программного обеспечения драйверов устройств (то есть не ограничено драйверами класса). Согласно изобретению драйверы класса УПШ уведомляют базовый стек УПШ, что устройство 98 бездействует и больше не используется. Когда конкретное устройство 98 бездействует, драйверы могут пожелать перевести свои соответствующие устройства 98 в режим низкого энергопотребления. Этот режим низкого энергопотребления сохраняет энергию и мощность батарей питания, если они применяются. В дополнение к этому изобретение включает в себя механизм, посредством которого базовый стек УПШ уведомляет драйвер класса, что устройство 98 может быть безопасным образом переведено в режим низкого энергопотребления. Взаимодействие между драйверами и базовым стеком позволяет драйверам класса УПШ снижать мощность их устройств 98, когда драйверы обнаруживают, что их устройства 98 бездействуют и больше не используются.

При работе в соответствии с изобретением два независимых устройства с независимыми управлением вводом/выводом и функцией, но без независимого управления мощностью, могут стать бездействующими и готовыми к приостановке независимо. Эти два независимых устройства посылают сообщение третьему устройству, с которым они оба соединены, и приостанавливаются одновременно. Далее главный контроллер 86 может быть бездействующим, даже когда одно или более устройств подсоединены к одному или более портам корневого концентратора 88. Аналогично изобретение включает в себя способ независимой приостановки одного или более портов корневого концентратора, подключенных к шине. Изобретение также обеспечивает приостановку шины, когда только комбинированное устройство соединено с этой шиной. Аналогично изобретение позволяет компьютеру приостанавливать шинный контроллер, когда к шине не подключены никакие устройства.

Новый запрос управления вводом/выводом (УВВ, IOCTL) позволяет драйверу класса УПШ уведомить базовый стек УПШ, что устройство, связанное с драйвером класса УПШ, готово к приостановке. Драйвер класса УПШ посылает запрос УВВ в базовый стек УПШ, когда этот драйвер класса обнаруживает, что устройство 98 УПШ, для которого он загружен, бездействует и больше не используется. В одном варианте выполнения УВВ посылается в базовый стек УПШ через механизм пакета запроса ввода/вывода (ПЗВВ, IRP). Одним из параметров, передаваемых в базовый стек УПШ в запросе УВВ, является указатель на функцию обратного вызова в драйвере класса УПШ, который представляет запрос. Эта функция обратного вызова является действительной функцией в драйвере класса УПШ, которая будет представлять запрос перевести устройство 98 УПШ в режим низкого энергопотребления, когда ее вызывают с этой целью.

В одном варианте выполнения изобретения устройства 98 соединены через УПШ. Комбинированное устройство УПШ (например, принтер 90, громкоговорители 96) является типом устройства 98 УПШ, которое содержит более одного интерфейса, для которого необходимо загрузить более одного (или более одного экземпляра одного и того же) драйвера класса УПШ. К примеру, множество громкоговорящих устройств УПШ, таких как громкоговорители 96, являются на самом деле комбинированными устройствами УПШ, причем один интерфейс является действительным аудиокомпонентом УПШ, а другой интерфейс является набором средств управления устройств взаимодействия с человеком (HID), как правило, используемых для повышения/снижения уровня звука, выдаваемого громкоговорителями 96. Как правило, драйверу для устройства 98 УПШ не известно, загружается ли он для простого устройства УПШ или для интерфейса в комбинированном устройстве УПШ. В общем, комбинированное устройство УПШ предоставляет множество интерфейсов. Для устройств 98 УПШ программное обеспечение для управления HID или иным устройством УПШ также именуется драйвером класса УПШ. Аналогично для УПШ программное обеспечение для управления контроллером также именуется базовым стеком УПШ. Этот базовый стек УПШ включает в себя общий родительский драйвер, драйвер концентратора и драйвер контроллера. Например, базовый стек УПШ может включать в себя USBCCGP.SYS в качестве драйвера класса для комбинированных устройств УПШ и USBHUB.SYS в качестве драйвера класса для устройств концентратора УПШ и в качестве шинного драйвера для УПШ в целом. USBHUB.SYS создает объект физического устройства (ОФУ, PDO) для каждого устройства УПШ, подключенного к системе, как для простых, так и для комбинированных устройств. В случае комбинированного устройства USBCCGP.SYS загружается в качестве драйвера класса в ОФУ, созданный USBHUB.SYS.

В типичных реализациях УПШ имеются разные ограничения. В частности, в случае комбинированного устройства УПШ отдельный интерфейс не может входить в режим низкого энергопотребления без выполнения запроса в отношении всех остальных интерфейсов в том же самом комбинированном устройстве УПШ на переход в режим низкого энергопотребления. Далее интерфейс нельзя принудительно ввести в режим низкого энергопотребления без знания или разрешения от драйвера класса УПШ, связанного с этим интерфейсом.

Помимо этого некоторые типы драйверов класса УПШ, особенно те, что предназначены для устройств ввода УПШ (или HID), требуют извещения о пользовательском вводе или активности устройства, чтобы знать, когда ввести устройство УПШ обратно в режим полного энергопотребления. Для некоторых существующих главных контроллеров УПШ в контроллере имеется аппаратная ошибка, так что функциональная возможность извещения не функционирует, если только отдельный порт УПШ находится в режиме низкого энергопотребления, а сама аппаратура всего контроллера не находится в режиме низкого энергопотребления. К примеру, если бы мышь УПШ (например, мышь 94) была подсоединена к одному порту одного из подозрительных главных контроллеров УПШ (например, главного контроллера 86 УПШ) и другое устройство УПШ было подсоединено ко второму порту того же самого контроллера, тогда, если бы драйвер класса для мыши УПШ должен был ввести устройство в режим низкого энергопотребления, драйвер класса УПШ не был бы осведомлен о последующей активности устройства (т.е. что конечный пользователь переместил мышь или щелкнул кнопкой мыши). Таким образом, драйвер класса УПШ для мыши УПШ не установил бы это устройство в режим полного энергопотребления. Эффекты этой аппаратной ошибки для конечного пользователя проявились бы в том, что мышь УПШ стала бы неработающей. Из-за этих имеющих ошибки главных контроллеров УПШ другое ограничение при работе с УПШ состоит в том, что драйверам класса УПШ, загруженным для устройств УПШ, нельзя разрешить вводить устройство УПШ, для которого этот драйвер загружен, в режим низкого энергопотребления на основании одностороннего запроса от драйверов класса УПШ.

Работа программного обеспечения драйвера согласно изобретению иллюстрируется и описывается в связи с фиг.4 и 5. На фиг.4 программное обеспечение драйвера поддерживает устройство УПШ (например, HID), действующее как дочернее устройство в дереве иерархически организованных устройств. На фиг.5 программное обеспечение драйвера поддерживает комбинированное родительское устройство УПШ или устройство концентратора УПШ в дереве иерархически организованных устройств. Программное обеспечение драйвера согласно изобретению включает в себя оба аспекта программного обеспечения, проиллюстрированного на фиг.4 и 5.

На фиг.2 блок-схема иллюстрирует один пример пригодной среды 100 вычислительной системы, в которой может быть реализовано изобретение. Эта среда 100 вычислительной системы является лишь одним примером подходящей вычислительной или операционной среды и не предназначена налагать какое-либо ограничение на объем использования или функциональных возможностей изобретения. Среда 100 вычислительной системы не должна интерпретироваться как имеющая какую бы то ни было зависимость или требование, относящиеся к любому из компонентов, проиллюстрированных в иллюстративной среде 100 вычислительной системы, или к их комбинации.

Фиг.2 показывает один пример вычислительного устройства общего назначения в виде компьютера 130. В одном варианте выполнения изобретения компьютер, такой как компьютер 130, пригоден для использования на остальных чертежах, проиллюстрированных и описанных здесь. К примеру, компьютер, такой как компьютер 130, пригоден для использования в качестве компьютера 82.

Компьютер 130 имеет один или более процессоров или блоков 132 обработки и системную память 134. В проиллюстрированном варианте выполнения системная шина 136 связывает различные компоненты, в том числе системную память 134, с процессорами 132. Шина 136 представляет одну или более из любых нескольких типов шинных структур, в том числе шину памяти или контроллер памяти, периферийную шину, ускоренный графический порт и шину процессора или локальную шину, использующие любую из различных шинных архитектур. В качестве примера, а не ограничения, такие архитектуры включают в себя шину промышленной стандартной архитектуры (ISA), шину микроканальной архитектуры (МСА), усовершенствованную шину ISA (EISA), локальную шину Ассоциации по стандартам в области видеоэлектроники (VESA) и шину межсоединений периферийных компонентов (PCI), также известную как мезонинная шина.

Компьютер 130, как правило, имеет по меньшей мере некоторый вид машиночитаемого носителя данных. Машиночитаемый носитель данных, который включает в себя как энергозависимый, так и энергонезависимый носитель, как сменный, так и несменяемый носитель, может быть любым доступным носителем, к которому компьютер 130 может осуществить доступ. В качестве примера, а не ограничения, машиночитаемые носители данных содержат компьютерные носители данных и коммуникационные среды. Компьютерные носители данных включают в себя энергозависимые и энергонезависимые носители, сменные и несменяемые носители, реализованные любым способом или по любой технологии для хранения информации, такой как машиночитаемые команды, структуры данных, программные модули или другие данные. К примеру, компьютерные носители данных включают в себя ОЗУ (RAM), ПЗУ (ROM), электрически стираемое перепрограммируемое ПЗУ (EEPROM), флэш-память или память другой технологии, компакт-диски (CD-ROM), цифровые многофункциональные диски (DVD) или другие запоминающие устройства на оптических дисках, магнитные кассеты, магнитные ленты, запоминающее устройство в виде магнитного диска или другие магнитные запоминающие устройства либо любой иной носитель данных, который может быть использован для хранения необходимой информации и к которому компьютер 130 может осуществить доступ.

Коммуникационные среды обычно воплощают машиночитаемые команды, структуры данных, программные модули или другие данные в виде сигналов, модулированных данными, таких как несущее колебание или другой механизм передачи, и включают в себя любые среды доставки информации. Специалистам в данной области техники известен сигнал, модулированный данными, одна или более характеристик которого установлены или изменены таким образом, чтобы обеспечить кодирование информации в сигнале. Проводные среды, такие как проводная сеть или прямое кабельное соединение, и беспроводные среды, такие как акустические, радиочастотные, инфракрасные и другие беспроводные среды, являются примерами коммуникационных сред. Сочетания любых из перечисленных выше носителей также включены в объем машиночитаемых носителей данных.

Системная память 134 включает в себя компьютерные носители данных в виде сменной или несменяемой, энергозависимой и/или энергонезависимой памяти. В проиллюстрированном варианте выполнения системная память 134 включает в себя постоянное запоминающее устройство 138 (ПЗУ) и оперативное запоминающее устройство 140 (ОЗУ). В ПЗУ 138 обычно хранится базовая система ввода-вывода 142 (BIOS), содержащая основные процедуры, которые помогают передавать информацию между элементами в компьютере 130, например, во время загрузки. ОЗУ 140 обычно содержит данные и/или программные модули, которые оперативно доступны и/или обрабатываются в текущий момент блоком 132 обработки. В качестве примера, но не ограничения, фиг.2 иллюстрирует операционную систему 144, прикладные программы 146, другие программные модули 148 и данные 150 программ.

Компьютер 130 также может включать в себя другие сменные/несменяемые энергозависимые/энергонезависимые компьютерные носители данных. Например, фиг.2 иллюстрирует накопитель 154 на жестких магнитных дисках, который считывает с несменяемого энергонезависимого магнитного носителя или записывает на него. Фиг.2 показывает также дисковод 156 для магнитного диска, который считывает со сменного энергонезависимого магнитного диска 158 или записывает на него, и дисковод 160 для оптического диска, который считывает со сменного энергонезависимого оптического диска 162, такого как компакт-диск или другой оптический носитель, или записывает на него. Другие сменные/несменяемые энергозависимые/энергонезависимые компьютерные носители данных, которые могут быть использованы в иллюстративной операционной среде, включают в себя, но не в ограничительном смысле, кассеты с магнитной лентой, карты флэш-памяти, цифровые многофункциональные диски, цифровую видеоленту, твердотельные ОЗУ, твердотельные ПЗУ и т.п. Накопитель 144 на жестких магнитных дисках, дисковод 156 для магнитного диска и дисковод 160 для оптического диска обычно соединены с системной шиной 136 интерфейсом энергонезависимой памяти, таким как интерфейс 166.

Дисководы или другие устройства хранения данных и связанные с ними компьютерные носители данных, обсужденные выше и проиллюстрированные на фиг.2, обеспечивают хранение машиночитаемых команд, структур данных, программных модулей и других данных для компьютера 130. На фиг.2, например, накопитель 154 на жестких магнитных дисках показан как хранящий операционную систему 170, прикладные программы 172, другие модули 174 и данные 176 программ. Отметим, что эти компоненты могут либо быть такими же, как и операционная система 144, прикладные программы 146, другие программные модули 148 и данные 150 программ, либо отличаться от них. Операционной системе 170, прикладным программам 172, другим программным модулям 174 и данным 176 программ здесь присвоены отличающиеся ссылочные позиции, чтобы показать как минимум то, что они являются другими копиями.

Пользователь может вводить команды и информацию в компьютер 130 через устройства ввода, такие как клавиатура 180 и указательное устройство 182 (например, мышь, шаровой манипулятор, перо или сенсорная панель). Другие устройства ввода (не показаны) могут включать в себя микрофон, джойстик, игровую приставку, спутниковую тарелку, сканер и т.п. Эти и другие устройства ввода соединены с блоком 132 обработки через интерфейс 184 пользовательского ввода, который связан с системной шиной 136, но могут быть подключены и посредством других структур интерфейсов и шин, таких как параллельный порт, игровой порт или универсальная последовательная шина (УПШ). Монитор 188 или другой тип устройства отображения также подключен к системной шине 136 через интерфейс, такой как видеоинтерфейс 190. В дополнение к монитору 188 компьютеры часто включают в себя другие периферийные устройства вывода (не показаны), такие как принтер и громкоговорители, которые могут быть подключены через выходной периферийный интерфейс (не показан).

Компьютер 130 может работать в сетевой среде с использованием логических соединений с одним или более удаленными компьютерами, такими как удаленный компьютер 194. Удаленным компьютером 194 может быть персональный компьютер, сервер, маршрутизатор, сетевой ПК, одноранговое устройство или другой общий сетевой узел, и обычно такой компьютер включает в себя множество или все элементы, описанные выше в отношении компьютера 130. Логические соединения, показанные на фиг.2, включают в себя локальную сеть 196 (ЛС, LAN) и глобальную сеть 198 (ГС, WAN), но также могут включать в себя и другие сети. Такие сетевые среды характерны для офисов, компьютерных сетей масштаба предприятия, интрасетей и глобальных компьютерных сетей (например, Интернет).

Когда используется локальная сетевая среда, компьютер 130 подключен к ЛС 196 через сетевой интерфейс или адаптер 186. Когда используется глобальная сетевая среда, компьютер 130 обычно включает в себя модем 178 или другое средство для установления связи через ГС 198, такую как Интернет. Модем 178, который может быть внутренним или внешним, подключается к системной шине 136 через интерфейс 194 пользовательского ввода или другой подходящий механизм. В сетевой среде программные модули, показанные для компьютера 130 или его части, могут храниться в удаленном запоминающем устройстве (не показано). В качестве примера, но не ограничения, фиг.2 иллюстрирует удаленные прикладные программы 192 как находящиеся на удаленном компьютере. Следует понимать, что показанные сетевые соединения являются иллюстративными, и для установления линии связи между компьютерами могут быть использованы другие средства.

В общем случае, процессоры данных в компьютере 130 программируются посредством команд, сохраненных в различные моменты времени на разных машиночитаемых носителях данных компьютера. Программы и операционные системы обычно распространяются, например, на дискетах или компакт-дисках. С них они устанавливаются или загружаются во вторичную память компьютера. При исполнении они загружаются, по меньшей мере частично, в первичную электронную память компьютера. Изобретение, описанное здесь, включает в себя эти и другие различные типы машиночитаемых носителей данных, когда такие носители содержат команды или программы для воплощения этапов, описанных ниже, в сочетании с микропроцессором или иным процессором данных. Изобретение также включает в себя сам компьютер, когда он запрограммирован согласно способам и методикам, описанным ниже.

Для целей иллюстрации программы и иные исполняемые программные компоненты, такие как операционные системы, иллюстрируются здесь как дискретные блоки. Понятно, однако, что такие программы и компоненты находятся в разные моменты времени на разных компонентах хранения данных компьютера и исполняются процессором(процессорами) данных в компьютере.

Далее на фиг.3 блок-схема иллюстрирует программную модель устройств, соединенных через УПШ, таких как проиллюстрированные и описанные в связи с фиг.1. Программная модель по фиг.3 показывает программные компоненты, связанные с иллюстративной конфигурацией устройств. Эта конфигурация устройств на фиг.3 отличается от конфигурации устройств по фиг.1. На фиг.3 аппаратные устройства, показанные пунктиром, связаны с программными компонентами, показанными вблизи устройств.

В этом варианте выполнения контроллер 302 УПШ соединен с шиной 304 PCI, связанной с компьютером (таким как компьютер 130). Контроллер 302 УПШ включает в себя корневой концентратор 306. Этот корневой концентратор 306 включает в себя один или более портов 308, показанных как Порт № 1 - Порт № N. Концентратор 310 соединен с одним из портов 308. Программное обеспечение для концентратора 310 включает в себя шинный драйвер 312 и клиентский драйвер 314. Общий родитель (или иное комбинированное устройство) 316 и HID 318 соединены с концентратором 310 в качестве дочерних устройств или узлов концентратора 310. Программное обеспечение для HID 318 включает в себя клиентский драйвер. В примерном варианте выполнения по фиг.3 HID 318 связано с мышью. Общий родитель 316 имеет два дочерних устройства: аудиокомпонент 320 и HID 322. Программные клиентские драйверы порознь связаны с аудиокомпонентом 320 и HID 322. В этом примере аудиокомпонент 320 связан с громкоговорителем. Далее HID 322 связано с одной или более кнопками громкоговорителя.

Далее на фиг.4 блок-схема алгоритма иллюстрирует примерную работу программного обеспечения драйвера для управления дочерним устройством УПШ, таким как HID 322. Это программное обеспечение драйвера включает в себя способ сигнализации и ожидания с целью приостановки устройства УПШ (например, общего родительского устройства или устройства концентратора), как описано в связи с фиг.1 и 3. Программное обеспечение драйвера, связанное с устройством УПШ, непрерывно определяет на этапе 402, бездействует ли это устройство УПШ. Программное обеспечение драйвера представляет запрос на бездействие или другие сигналы родительскому устройству (например, родительскому устройству 316) устройства УПШ на этапе 404, если программное обеспечение драйвера определяет, что устройство УПШ бездействует или иным образом готово к приостановке. К примеру, программное обеспечение драйвера посылает запрос к своему объекту физического устройства в программном обеспечении. В одном варианте выполнения представление или посылка запроса на бездействие включает в себя передачу запроса УВВ от устройства УПШ к родительскому устройству устройства УПШ. В одном варианте выполнения передача запроса УВВ включает в себя передачу пакета запроса ввода/вывода (ПЗВВ), содержащего запрос УВВ от устройства УПШ к родительскому устройству устройства УПШ. Например, устройство УПШ может быть главным контроллером УПШ, а родительское устройство устройства УПШ может быть компьютером. В данном примере главный контроллер УПШ сигнализирует компьютеру, что главный контроллер УПШ готов к приостановке. Компьютер может вслед за этим приостановить главный контроллер УПШ, даже если никакие иные устройства не подключены к главному контроллеру УПШ. Т.е. клиентский драйвер для корневого концентратора, который желает перейти в состояние бездействия, посылает запрос на бездействие к объекту физического устройства (ОФУ) для корневого концентратора. Затем ОФУ предписывает клиентскому драйверу приостановить корневой концентратор.

В одном варианте выполнения устройство УПШ имеет активное состояние и состояние бездействия. В этом примере устройство УПШ готово приостановиться, когда оно находится в состоянии бездействия. Изобретение предполагает другие варианты выполнения, в которых устройство УПШ может желать приостановиться, даже если это устройство УПШ не полностью бездействует. Например, устройство УПШ может выполнять операции, которые не требуют полного энергопотребления. Как таковое, это устройство УПШ может продолжать выполнение операций даже при вхождении в режим низкого энергопотребления или иное состояние приостановки. В варианте выполнения, в котором устройство УПШ имеет один или более дочерних узлов (см. фиг.5 ниже), это устройство УПШ готово приостановиться, когда устройство УПШ бездействует, и каждый из дочерних узлов этого устройства УПШ готов приостановиться. В этом примере каждый из дочерних узлов устройства УПШ должен был бы послать в устройство УПШ запрос на бездействие, служащий индикатором их готовности к приостановке.

После представления запроса на бездействие программное обеспечение драйвера ожидает на этапе 406 вызова его функции обратного вызова, предназначенной для снижения мощности, родительского устройства. После того, как из родительского устройства вызывается функция обратного вызова, предназначенная для снижения мощности, программное обеспечение драйвера для устройства УПШ исполняет эту функцию обратного вызова, предназначенную для снижения мощности, с целью приостановки устройства УПШ на этапе 408. После действий, не относящихся к состоянию бездействия, программное обеспечение драйвера «пробуждает», активирует, устройство УПШ на этапе 410. Устройство УПШ, любые один или более из множества дочерних узлов устройства УПШ, родительский узел устройства УПШ или программное обеспечение, связанное с контроллером (например, прикладные программы), могут выполнять действия, не относящиеся к состоянию бездействия, которые сигнализируют устройству УПШ о необходимости перейти в активное состояние. Например, если устройство УПШ является указывающим устройством, таким как мышь, то действием, не относящимся к состоянию бездействия, может быть перемещение этой мыши. Аналогично, если родительский узел является контроллером, а одно или более устройств являются громкоговорителями, то программное обеспечение, исполняемое на компьютере, связанном с этим контроллером, может выполнять действия, не относящиеся к состоянию бездействия, воспроизводя музыку через громкоговорители. Активация устройств включает в себя сброс запросов на бездействие, так что устройства имеют возможность представлять новые запросы на бездействие.

В варианте выполнения, где устройства соединены через УПШ, после приостановки устройства УПШ (и всего дерева устройств УПШ), имеются по меньшей мере два способа, посредством которых это устройство (а вслед за ним и все дерево устройств УПШ) может быть активировано и введено обратно в режим полного энергопотребления. Первый способ состоит в том, что любой драйвер класса УПШ может ввести свое дочернее устройство в режим полного энергопотребления путем представления соответствующего запроса на установку мощности для этого устройства. Второй способ осуществляют через действие удаленной активации на любом устройстве УПШ, которое поддерживает удаленную активацию и для которого поддержка удаленной активации была задействована до того, как устройство было введено в режим низкого энергопотребления. В каждом из этих случаев результатом предпринятого действия будет введение всего дерева устройств в режим полного энергопотребления, и драйверы класса УПШ для дочерних устройств после этого будут иметь возможность снова представлять новые запросы на бездействие, когда они обнаружат, что их дочернее устройство или интерфейс бездействуют и бо