Режимы пониженного энергопотребления на шине PCI Express.
В шине PCI Express активно поддерживаются режимы пониженного энергопотребления — в полном соответствии с «четырехуровневыми» стандартами ACPI. Линия PCI Express может «отключаться», если она не используется в данный момент для передачи данных: отключаются линии передачи тактового сигнала, линии приема и передачи данных (и вместе с ними могут отключаться и приемник и передатчик в PCI Express контроллере), с устройства может быть снято питание — целиком (устройство «логически выключено») или частично (остается маломощное дежурное напряжение питания. Функционирует «линия пробуждения» WAKE#, по которой передается сигнал на перевод устройства в нормальный рабочий режим). Если шина состоит из нескольких линий, то при небольшой загрузке шины можно отключать ненужные в данный момент линии (например, использовать PCI Express x4 как x1, а три линии выключить). Переключение в «энергосберегающий» режим при этом может потребовать как само устройство PCI Express, так и «система» в целом — скажем, при переходе в «спящий режим» (hibernate). В «десктопных» вариантах шины PCI Express энергосберегающие режимы являются необязательными (то есть могут быть реализованы, а могут и не быть), но в мобильных описанные возможности являются обязательными.
Управление питанием PCI Express. Механизм PCI Express-PM. Рассмотрим функции и протоколы управления питанием PCI Express механизма PCI Express-PM. PCI Express-PM предоставляет следующие сервисы:
- механизм для идентификации функциональных возможностей управления питанием данной функции;
- способность переводить функцию в определенное состояние энергопотребления;
- сообщение текущего состояния энергопотребления функции;
- возможность пробуждения системы по определенному событию.
PCI Express-PM совместим со спецификациями "PCI Bus Power Management Interface" версии 1.1 (PCI-PM) и "Advanced Configuration and Power Interface" версии 2.0 (ACPI). В данном разделе также определены функциональные возможности собственного механизма управления питанием PCI Express. Он предоставляет дополнительные возможности управления питанием по сравнению со спецификацией "PCI Power Management Interface". PCI Express-PM определяет состояния, в которые может переходить физический канал PCI Express в ответ на программно-управляемые переходы в D-состояния или при активизации механизма Active State Link PM. Состояния каналов PCI Express "не видны" напрямую для существующего ПО драйвера шины, но информация может быть получена из состояния управления питанием компонентов, размещенных на этих каналах. Определены состояния канала L0, L0s, L1, L2 и L3. Уменьшение потребления питания направлено при переходе от состояния L0 к L3.
Компоненты PCI Express могут пробуждать систему из любого поддерживаемого состояния энергопотребления через запрос события управления питанием (РМЕ - Power Management Event). Системы PCI Express могут обеспечивать дополнительный источник питания (Vaux), необходимый для операций РМЕ из состояния системы "откл.". В этом отношении механизм PCI Express-PM расширен по сравнению с его прототипом PCI-PM, это выражается в поддержке PCI Express "сообщений" РМЕ, включающие географическое размещение (Requestor ID) внутри иерархии запрашивающего агента. Данные сообщения РМЕ являются внутриполосными пакетами TLP, направленными из запрашивающего устройства в корневой комплекс. Другое отличие механизма PCI Express-PM от РМЕ состоит в его разделении двух следующих событий, связанных с РМЕ:
- пробуждение иерархии ввода-вывода (т. е. запуск синхронизирующих и основных шин питания, соединенных с компонентами PCI Express);
- посылка сообщения РМЕ (вектора) корневому комплексу.
Самоуправляющийся аппаратный механизм активного состояния (Active State Link PM) допускает потребление питания, даже когда присоединенные компоненты находятся в состоянии D0. По истечении некоторого периода ожидания (простоя) канала механизм "Active State Link PM" приводит в действие протокол физического уровня, который переводит свободный канал в состояние с низким потреблением питания. Переход из состояния низкого потребления в полнофункциональное состояние L0 запускается появлением трафика на обеих сторонах канала. Конечные точки инициируют вход в состояние низкого потребления питания канала. Данная функция может быть отключена программным обеспечением.
В терминологии PCI Express термин Upstream-компонент или Upstream-устройство обозначает компонент PCI Express, находящийся на конце канала PCI Express и являющийся закрывающим устройством по отношению к корню иерархического дерева PCI Express. Термин Downstream-компонент или Downstream-устройство обозначает компонент PCI Express, находящийся на конце канала, который иерархически отдален от корня иерархического дерева PCI Express.
Все компоненты PCI Express, за исключением корневого комплекса, должны выполнять минимум требований, определенных программным обеспечением PCI-PM, совместимым с функциями PCI Express-PM. Корневые комплексы должны участвовать в управлении питанием канала протоколов DLLP, инициированных downstream-устройством, когда все функции downstream-компонента входят в состояние с низким потреблением, совместимое с программным обеспечением PCI-PM. Функциональности Active State Link PM являются обязательными (вход в состояние L0s как минимум) для всех компонентов, включая корневые комплексы, и конфигурируются раздельно через собственные конфигурационные механизмы PCI Express.
Стандарт PCI Express определяет состояния энергопотребления канала вместо состояний энергопотребления шины, которое было определено в спецификации PCI-PM. Информация о состоянии канала не доступна для существующего ПО, совместимого с PCI-PM, и может быть получена либо через D-состояния соответствующего компонента, соединенного с каналом либо через протоколы управления питанием "Active State". Физический уровень PCI Express может определить дополнительные промежуточные состояния.
PCI Express-PM устанавливает следующие состояния энергопотребления канала:
1) L0 - активное состояние. Разрешены все транзакции PCI Express и другие операции. Поддержка состояния L0 требуется для управления питанием Active State Link и для PCI-PM-совместимой модели.
2) L0s - состояние с малой задержкой возобновления работы, экономичное потребление типа "Standby". Поддержка состояния L0s обязательна для модели Active State Link и не применима к модели совместимой с PCI-PM. Все основные источники питания, генераторы тактовых импульсов компонентов и внутри компонентные ФАПЧ должны находиться в активном состоянии при нахождении системы в состоянии L0s. Передача информации пакетами TLP и DLLP через канал, который находится в состоянии L0s, запрещена. Состояние L0s используется исключительно для активного состояния. Физический уровень PCI Express обеспечивает механизм для быстрых переходов из этого состояния в состояние L0. Когда общие (распределенные) генераторы синхроимпульсов используются на обеих сторонах данного канала, время перехода из состояния L0s в L0 обычно меньше, чем 100 нс.
3) L1 - состояние с большой задержкой, низким потреблением питания типа "Standby". Поддержка состояния L1 обязательна для модели совместимой с PCI-PM и необязательна для модели Active State Link. Все содержащиеся на платформе основные источники питания и компонентные генераторы синхроимпульсов должны оставаться в активном состоянии все время нахождения системы в состоянии L1. Внутренние ФАПЧ downstream-компонента могут быть отключены при нахождении в состоянии L1, обеспечивая большую экономию энергии за счет увеличения выходного времени задержки (например, отключение внутреннего ФАПЧ может быть желательно при нахождении в состоянии D3hot, но не желательно для состояний D1 или D2). Переход в состояние L1 осуществляется, когда все функции downstream-компонента данного канала PCI Express запрограммированы в D-состояние, отличное от состояния DO, либо, если downstream-компонент запросил переход в состояние LI (Active State Link PM) и получил положительный ответ. Выход из состояния L1 происходит при инициировании транзакции со стороны upstream-устройства, направленной в downstream-компонент, или если downstream-компонент хочет инициировать транзакцию по направлению к upstream-устройству. Переход из состояния L1 в L0 занимает несколько микросекунд. Передача информации пакетами TLP и DLLP через канал при нахождении его в состоянии L1 запрещена.
4) L2/L3 Ready - состояние не предназначено специально для переходов D-состояний PCI-PM или для управления питанием Active State Link. Канал переходит в состояние L2/L3 Ready, когда платформа готова перейти в состояние покоя (Sleep). После выполнения протокола перехода в состояние L2/L3 Ready канал готов к переходу в состояние L2 или L3, но не перейдет ни в одно из них до тех пор, пока не будет снято основное питание. В зависимости от реализации, для конкретной платформы после выключения основного питания канал может переходить в состояние L2 (в случае, если присутствует источник Vaux) или в состояние отключения "off (L3). Процесс перехода в состояние L2/L3 Ready должен начаться после получения уведомления - сообщения "PM_TURN_OFF" (т.е. TLP-пакета "РМ_ТО_Аск"). Downstream-компонент инициирует переход в состояние L2/L3 Ready путем выдачи DLLP-пакета "PM_Enter_L23" в передающий порт. Передачи пакетов TLP и DLLP через канал при нахождении в состоянии L2/L3 Ready запрещены. Выход из состояния L2/L3 Ready обратно в состояние L0 может быть инициирован только транзакцией, инициированной со стороны upstream и направленной к downstream-компоненту. Механизм такой же, как и при "отпирании" компонента upstream-транзакцией из состояния L1 в L0. Выход из состояния L2/L3 Ready, инициированный со стороны upstream, приведет к тому, что при переходе канала в состояние L2/L3 Ready до выключения основного питания менеджер питания платформы примет решение не входить в состояние Sleep. Переход канала в состояние L2/L3 Ready является одной из заключительных стадий, относящихся к протоколу PCI Express при подготовке к переходу платформы в состояние Sleep, когда снимается основное питание (например, состояние ACPI S3 или S4).
5) L2 - состояние экономичного потребления питания с дополнительного источника. Поддержка состояния L2 является необязательной, и зависит от поддержки платформой источника Vaux. При нахождении в состоянии, L2 вход источника питания компонента и вход генератора синхроимпульсов отключены. При нахождении в состоянии L2 вся детектирующая логика РМЕ, логика возобновления канала типа "Beacon", контекст РМЕ и любая другая "оживляющая" логика запитываются от источника Vaux. Передачи пакетов TLP и DLLP через канал, который находится в состоянии L2, запрещены. Выход из состояния L2 завершается путем восстановления основного питания и генератора синхроимпульсов для всех компонентов внутри области менеджера питания, это происходит после полной регулировки и инициализации канала. Как только данный канал выполнит регулировку и инициализацию, то он находится в состоянии L0 и может посылать и принимать пакеты TLP и DLLP.
6) L3 - состояние отключения канала, напряжение питания равно нулю.
На рис. 1 показан «граф» разрешенных переходов между L-состояниями, которые могут происходить во время функционирования канала. Дуга, обозначенная отдельно на рис. 4, показывает случай, когда на платформе не реализован дополнительный источник Vaux. В этом случае, протокол перехода из состояния L2/L3 Ready приводит к готовности снятия основного питания, и как только оно снимается, канал переходит в состояние L3. Переходы канала РМ из любого L-состояния в любое другое L-состояние должны проходить через состояние L0 во время процесса перехода, исключая переходы из состояния L2/L3 Ready в состояние L2 или L3. В этом случае, переходы канала из состояния L2/L3 Ready направлены в состояние L2 или L3, когда снято основное питание компонента (это следует одновременно с соответствующим переходом компонента из состояния D3h hot в D3cold т. е. из состояния пассивного потребления в состояние практически полного отключения.)
Рис. 1. Граф допустимых переходов между состояниями канала
Рассмотрим последовательность, подготавливающую систему к переходу в состояние Sleep (многошаговый процесс перехода канала из состояния в состояние):
В табл. 1 обобщены все L-состояния, условия их использования и поведение платформы PCI Express и компонентов PCI Express для каждого из них. Значение поля "Yes" указывает, что поддержка обязательна (кроме специально указанных ниже). Значения "On" и "Off указывают на наличие и отсутствие синхронизации и питания соответственно. «On/Off» указывает на любую реализацию данной опции.
Примечания.
Что касается устройств, для которых потребуется быстродействие PCI Express 3.0, то это коммутаторы PLX, контроллеры Ethernet 40 Гбит/с, InfiniBand, твёрдотельные устройства, которые становятся всё популярнее, и, конечно, видеокарты. Все возможные инновации разработчики PCI Express еще не исчерпали, и они появляются не статически, а непрерывным потоком, который открывает путь для дальнейших улучшений в будущих версиях интерфейса PCI Express.