Технологии PCI Express 3.0
В версии PCI Express 3.0 максимальная полоса пропускания канала была увеличена до 8 ГТ/с с незначительными изменениями протокола обмена, форм-фактора и методов обеспечения целостности данных.
Реальная скорость передачи данных по PCI Express 3.0 вдвое выше, чем у PCI Express 2.0. Материнские платы с поддержкой PCI Express 3.0 смогут работать с видеокартами, потребляющими до 300 Вт. Дополнительная мощность будет потребляться через разъёмы питания, подключаемые к видеокарте. Увеличение скорости передачи данных осуществляется и за счет развития новых технологий.
Именно для обеспечения высокой пропускной способности при ограниченной частоте было принято решение перейти на использование более агрессивной схемы кодирования 128b130b, которая предусматривает передачу всего 1,6% избыточной информации, по сравнению с 20% в текущей схеме кодирования 8b10b. Выбор такого принципа устранения избыточности вместо перехода на 10 ГТ/с был обусловлен тем, что 8 ГТ/с является наиболее оптимальным компромиссом между затратами, возможностями производства, энергопотреблением и совместимостью. Отказаться от повышения частоты до 10 ГГц пришлось, прежде всего, из соображений сохранения уровня энергопотребления в разумных границах, поскольку рост частоты сопровождается экспоненциальным увеличением потребляемой мощности. Вместе с тем, планируется сохранение механической совместимости PCIe 3.0 с разъемами, используемыми в более ранних версиях стандарта.
Рост частоты до 8 ГГц повлечет за собой значительное усложнение структуры чипов, для реализации которых, скорее всего, понадобится применять, по меньшей мере, 65-нм техпроцесс. Среди остальных новшеств нового стандарта отметим усовершенствования каналов, улучшенную систему передачи сигналов, уравнивание приема и передачи, улучшения системы фазовой автоподстройки частоты.
В составе готовых систем новые интерфейсы начали появляться еще в 2011 г., с основным прицелом на «жадные» к пропускной способности графические чипы в настольных системах высокого уровня и серверы, использующие мультипортовые карты 10 Гбит Ethernet и 8 Гбит Fibre Channel. Что касается устройств, для которых потребуется быстродействие PCI Express 3.0, то это коммутаторы PLX, контроллеры Ethernet 40 Гбит/с, InfiniBand, твёрдотельные устройства, которые становятся всё популярнее, и, конечно, видеокарты. Все возможные инновации разработчики PCI Express еще не исчерпали, и они появляются не статически, а непрерывным потоком, который открывает путь для дальнейших улучшений в будущих версиях интерфейса PCI Express. Первые материнские платы и графические адаптеры с поддержкой PCI Express 3.0 вышли уже в 2011 году.
Поддержка виртуальных каналов. Механизм виртуальных каналов, иначе VC (Virtual Channel), является "фундаментом" для поддержки различных сервисов внутри структуры PCI Express. Он разрешает развертывание физически независимых ресурсов, которые в совокупности с маркировкой трафика необходимы для оптимизированной обработки разнородного трафика. Маркировка трафика поддерживается через использование маркеров (меток) класса транзакций или, иначе, ТС (Transaction Class) TLP-уровня. Точная политика для разнородного трафика регулируется путем отображения TC/VC и путем арбитража на уровне VC. Отображение TC/VC зависит от требований применения платформы. Эти требования управляют выбором алгоритма арбитража VC и конфигурируемостью/программируемостью арбитров, что обеспечивает точную настройку политики обслуживания трафика. Механизмы виртуальных каналов (VC) с прицелом на будущее адресуют следующие уровни детализации:
- поддерживаемые конфигурации TC/VC;
- правила и алгоритмы арбитража, основанного на VC;
- рассмотрение упорядочивания трафика;
- изохронную поддержку, как определенную пользовательскую модель.
Поддерживаемые конфигурации TC/VC. Виртуальный канал (VC) устанавливается, когда один или несколько классов транзакций (ТС) связываются с физическим ресурсом VC, назначенным идентификатором ID VC. Каждый поддерживаемый класс трафика "Traffic Class" должен быть отображен в один из виртуальных каналов. Основная (базовая) конфигурация PCI Express должна поддерживать пару по умолчанию TC0/VC0, которая является постоянной, т. е. не конфигурируемой. Любая поддержка выше данного уровня является необязательной. Процесс конфигурирования TC/VC управляется системным ПО, использующим программную модель. Для упрощения взаимодействия при конфигурировании множества виртуальных каналов через канал PCI Express, в стандарте определены ограничения для множества разрешенных (правильных) конфигураций VC. В общем, отображение трафика в виртуальный канал, отличный от TC0/VC0, является задачей системного ПО. Основными конфигурациями TC/VC являются следующие:
- симметричное отображение трафика в виртуальный канал;
- реотображение трафика в виртуальный канал.
Многопортовые компоненты (коммутаторы и корневые комплексы) должны поддерживать независимое отображение TC/VC для каждого порта PCI Express.
Механизм "Device Synchronization Stop". Изменение нумерации шин системным ПО во время функционирования системы может привести к изменению ID запросчика данного устройства (основанного на номерах шин); это может привести к тому, что любые запросы или выполнения для этого устройства еще в процессе их передачи могут быть изменены неверно в соответствии с изменением в ID запросчика. Также желательно гарантировать, чтобы во время извлечения устройства Hot-Plug не происходило никаких выходящих транзакций. Механизм "Device Synchronization Stop" позволяет системному ПО гарантировать, что в процессе передачи по отношению к конкретному оконечному устройству не будет находиться никаких транзакций до выполнения операции ренумерации шин, которая может привести к изменению номера данного устройства (и ID запросчика). Синхронная остановка для оконечных устройств реализована через механизм "Stop" и связана с битом Stop регистра Device Command и битом Transactions Pending регистра Device Status. Системное ПО сообщает устройству требование остановиться путем установки бита Stop в регистре Device Command устройства. ПО считает операцию остановки выполненной, если устройство сообщает, что больше нет незавершенных транзакций путем сбрасывания бита статуса Transactions Pending в регистре Device Status; при этом устройству не запрещено издавать любой новый запрос после того, как установлен бит Stop. Прежде чем сбросить бит Transaction Pending, оконечное устройство должно гарантировать, что:
- выполнения небуферизуемых запросов для всех используемых классов трафика были приняты соответствующими запросчиками;
- все запросы, инициированные данным устройством, имеют возвращенные выполнения;
- все буферизованные запросы всех классов трафика были "очищены/сброшены" (т. е. были приняты предназначенными целями) во всех направлениях между оконечным устройством и системой и между одноранговыми оконечными устройствами.
Механизмы очищения/сброса. В самом простом случае, когда оконечное устройство соединяется только с главной памятью, очистка может быть реализована путем направленного чтения памяти. Чтение памяти должно быть выполнено на всех классах трафика, которые использует устройство. Если устройство имеет незавершенные транзакции (включая незавершенные выполнения), тогда оно должно использовать небуферизуемые транзакции типа направленного чтения памяти, адресованное в определенное равноправное местоположение для очистки. Описанный механизм является специфическим для реализации, но должен выполняться аппаратными средствами без участия ПО.
Блокированные транзакции. Поддержка задержанных транзакций необходима для предотвращения блокировки в системе при использовании унаследованного ПО, которое инициирует доступы к устройствам ввода-вывода. Некоторые процессоры могут генерировать блокированные доступы как результат выполнения инструкций, которые неявно блокируют счетчик. Некоторое старое ПО неправильно применяет эти транзакции и генерирует блокированные последовательности, даже когда монопольный доступ не требуется. Поскольку блокированные доступы к устройствам ввода-вывода приводят к потенциальным блокировкам помимо упомянутых выше, что может привести к серьезному снижению производительности, то для оконечных устройств PCI Express запрещена поддержка монопольных доступов. Новое ПО также не должно использовать инструкции, которые будут инициировать монопольные доступы к устройствам ввода-вывода. Поддержка оконечными устройствами монопольных доступов введена только из-за вопросов совместимости с существующим ПО. Инициирование блокированных запросов PCI Express разрешено только корневому комплексу. Блокированные запросы, инициированные оконечными устройствами и мостами, не поддерживаются. Данная непротиворечивость с ограничениями для блокированных транзакций использует принципы спецификации "PCILocal Bus Specification" версии 2.3. Данный раздел определяет правила, связанные с поддержкой монопольных доступов от главного процессора к устройствам Legacy Endpoint, включая распространение таких транзакций через коммутаторы и мосты PCI Express/PCI.
Правила инициирования и распространения блокированных транзакций. Блокированные последовательности генерируются главным процессором(ми) как одна или больше операций чтения, следующих за равным количеством записей в ту же область(ти). Когда установлен монопольный доступ, весь остальной трафик блокируется от использования пути между корневым комплексом и заблокированным устройством Legacy Endpoint или мостом.
- блокировка инициируется на PCI Express, используя тип "lock" – Read Request/Completion (MRdLk/CplDLk) и завершается с сообщением "Unlock" (семантика MRdLk, CplDLk и Unlock разрешена только для класса
трафика, определенного по умолчанию (ТСО)).
- сообщение "Unlock" является широковещательным из корневого комплекса для всех оконечных устройств и мостов (любое устройство, которое вовлечено в блокированную последовательность, должно игнорировать это сообщение.
Введение и распространение блокированной транзакции через PCI Express выполняется следующим образом:
- последовательности блокированных транзакций начинаются с запроса MRdLk (любые последовательные чтения для блокированных транзакций также используют запросы MRdLk; выполнения для любого запроса MRdLk используют тип выполнения CplDLk).
Оконечные устройства Legacy Endpoint. Устройствам Legacy Endpoint запрещено поддерживать монопольные доступы, хотя и допускается их использование. Если монопольный доступ поддержан, устройство должно обрабатывать его в соответствии со следующими правилами:
- устройство становится блокированным, когда оно передает первое выполнение для первою запроса чтения монопольного доступа. (один раз заблокированное устройство должно оставаться в этом состоянии, пока оно не примет сообщения "Unlock");
- при нахождении в заблокированном состоянии устройство не должно генерировать никакого запроса, использующего классы трафика, которые отображаются в виртуальный канал по умолчанию (VC0) (данное требование применяется ко всем возможным источникам запросов внутри оконечного устройства, в случае, когда внутри него присутствуют больше чем один возможный источник; запросы могут быть сгенерированы путем использования класса трафика, отображаемого в виртуальный канал, отличный от виртуального канала «по умолчанию»).
Оконечные устройства PCI Express. Оконечные устройства PCI Express не поддерживают монопольный доступ. Данные устройства должны интерпретировать запросы MRdLk как неподдерживаемые запросы.
Правила сброса для PCI Express. Данный раздел определяет поведение канала PCI Express при сбросе. Сброс может быть сгенерирован платформой или на компоненте, но любые отношения между сбросом канала PCI Express и сбросом компонента или платформы являются специфическими для компонента или платформы соответственно. Должен присутствовать аппаратный механизм для установления или возвращения всех состояний порта в начальные условия, определенные стандартом - этот механизм называется Power Good Reset.
Сброс Power Good Reset, происходящий после подачи питания к компоненту, называется холодным сбросом или, иначе, Cold Reset. В некоторых случаях возможен запуск механизма "Power Good Reset" аппаратным обеспечением без снятия и подачи питания компонента. Такой сброс называется теплым сбросом или, иначе, Warm Reset.
Также существует внеполосный механизм для распространения сброса за пределами канала, он называется горячим сбросом или, иначе, Hot Reset. Переход в состояние "DL_Inactive" в некоторых случаях идентичен сбросу Hot Reset.
При выходе из любого типа сброса (Cold, Warm или Hot), все регистры порта и конечные автоматы должны быть установлены в их начальные состояния, определенные стандартом PCI Express.
При выходе из состояния Power Good Reset физический уровень будет пытаться запустить ("поднять") канал. Как только оба компонента вошли в состояние начальной проверки канала, то далее их состояние будет изменяться через инициализацию канала для физического уровня и затем через инициализацию для виртуального канала VC0, подготавливая таким образом уровень транзакций и канальный уровень к использованию канала. После инициализации VC0 пакеты TLP и DLLP могут быть переданы через канал.
После сброса некоторые устройства потребуют дополнительного времени, перед тем как они будут способны ответить на принятые запросы. Для конфигурационных запросов особенно необходимо, чтобы компоненты и устройства вели себя детерминистическим путем, который следует правилам адресации.
Правила требований адресации для компонентов и устройств разделяются на два подмножества:
- требования к компонентам;
- требования к системе.
Требования правил адресации к компонентам. Компонент должен входить в начальное активное состояние проверки канала в пределах 80 мс после завершения сброса Power Good Reset. В некоторых системах возможно, что два компонента на канале могут выйти из состояния Power Good Reset в разное время. Каждый компонент должен соблюдать требования для входа в начальное активное состояние проверки канала в пределах 80 мс после окончания Power Good Reset с их точки зрения, т. е. после того, как они определили, что произошел выход из сброса. При выполнении проверки канала (вхождении в состояние "DL_Active") компонент должен быть способен принять и обработать пакеты TLP и DLLP.
Требования правил адресации к системе. В целях корректного выполнения компонентом внутренней инициализации системное ПО должно ожидать минимум 100 мс после окончания сброса (Cold/Warm/Hot), перед тем как разрешать генерирование конфигурационных запросов к устройствам PCI Express. Система должна гарантировать, что все компоненты, предназначенные для взаимодействия с ПО во время загрузки, готовы принять конфигурационные запросы в пределах 100 мс после окончания состояния Power Good Reset (реализация не определена стандартом и возлагается на разработчика).
Корневой комплекс и/или системное ПО после сброса (Hot/Warm/Cold) должны ожидать от устройства возвращения статуса "Successful Completion" для правильного конфигурационного запроса 1.0 с. По истечении этого времени устройство считается неисправным. Если корневой комплекс повторяет конфигурационные запросы, завершенные со статусом "Configuration Request Retry", тогда они должны быть повторены до 1 с после истечения времени Tоrc (время задержки корневого комплекса), в этой точке корневой комплекс может завершить запрос как неподдерживаемый. Данная задержка аналогична параметру Trhfa, определенному для PCI/PCI-X, и предназначена для выделения адекватного количества времени устройству, которому необходимо провести собственную инициализацию. При попытке конфигурационного доступа к устройствам в PCl или PCI-X сегменте позади PCI xpress/PCI(PCI -X) моста временной параметр Trhfa должен соответствовать данным стандартам.
Правила при нормальном функционировании канала. Если для каких-то целей понижается нормальное функционирование канала, то канальный уровень и уровень транзакций войдут в состояние "DLJnactive". Для любого виртуального или реального PCI-моста любое из следующих событий вызывает сброс вторичной стороны моста, используя механизм физического уровня для сообщения сброса канала:
- установка бита Secondary Bus Reset в регистре Bridge Control;
- переход в состояние "DL_Inactive" на основной стороне моста;
- сброс канала с использованием механизма физического уровня для сообщения "Link Reset".
Определенные аспекты сброса Power Good Reset, описанные в стандарте PCI Express, являются специфическими для реализации платформы и форм-фактора. Определенные платформы, форм-факторы или приложения могут требовать дополнительной спецификации временных и/или отношений порядка между компонентами системы для Power Good Reset. Например, они могут требовать, чтобы все компоненты PCI Express внутри шасси соблюдали переход в состояние Power Good Reset и выход из него в одно и то же время (в пределах некоторых допусков). В многошассийном окружении для выхода из состояния Power Good Reset может потребоваться, чтобы корпус, содержащий корневой комплекс, был последним.
Во всех случаях, когда подано питание, должны быть определены следующие временные параметры:
- Tpvpgl - минимальное время, в течение которого сигнал PowerGood должен оставаться неактивным после подачи питания;
- Tpwrgd - минимальное время, в течение которого сигнал Power_Good должен находиться в неактивном состоянии после снятия;
- Тfail - после подачи питания сигнал Power_Good должен быть снят внутри этого временного интервала.
Кроме того, могут быть определены и дополнительные параметры.
Во всех случаях, когда поддержан генератор синхроимпульсов, должен быть определен параметр Tpwrgd-clk - минимальное время, в течение которого сигнал Power_Good должен оставаться неактивным, после того как любой поддерживаемый генератор перейдет в стабильное состояние. Также при необходимости могут быть определены дополнительные параметры.
Поддержка механизма Hot-Plug. Возможность "горячего" подключения устройств является ключевым условием обеспечения высокого уровня готовности систем. Современные технологии "горячего" подключения достаточно дороги и создают множество проблем, вытекающих из сложного и уязвимого комплекса взаимоотношений, которые существуют между аппаратными средствами и программным обеспечением. Это ведет к повышению денежных и временных затрат компаний. Технология PCI Express позволяет повысить производительность системы и увеличить время ее непрерывной работы, а также способствует значительному повышению уровня удобства ее обслуживания и снижению расходов – за счет стандартизации модели использования и исключения зависимости от поставщиков программных кодов и аппаратных компонентов, обеспечивающих надежную работу устройств, подключаемых горячим методом.
Технология PCI Express подходит к решению проблем, характерных для обычной технологии "горячего" подключения устройств, следующим путем:
- технология PCI Express изначально разрабатывалась с учетом возможности горячего подключения устройств, поэтому регистры управления "горячим" подключением являются частью стандарта PCI Express (в отличие от стандарта SHPC1.0);
- орперационной системе предоставляется простой интерфейс доступа к аппаратным регистрам управления "горячим" подключением, обеспечивающий поддержку технологии "горячего" подключения (в отличие от прежних методов, базировавшихся на BIOS);
- обеспечена стандартная возможность "горячего" подключения аппаратными средствами, определенная на базовом архитектурном уровне;
- в основе технологии лежит стандартная базовая архитектура контроллеров "горячего" подключения (Standard Hot-Plug Controller, SHPC).
- усовершенствование конструктивных характеристик повышает надежность платформы при относительно низких затратах на производство OEM-продукции.
Технология PCI Express поддерживает стандартную возможность горячего подключения, определяя и требуя выделение соответствующих регистров для управления функциями, связанными с тремя важнейшими уровнями платформы, а именно:
- с корпусом
- с разъемом шины
- с оконечным устройством (адаптером)
Это обеспечивает функциональную совместимость продукции различных поставщиков. В свою очередь, IT-специалисты и менеджеры информационных центров тратят меньше времени на техническое обучение и обслуживание систем ввиду значительного снижения различий между платформами поставщиков. Кроме того, повышается окупаемость инвестиций в силу устранения необходимости приобретать все системные компоненты у одного производителя во избежание проблем с совместимостью.
Базовая архитектура технологии PCI Express основана на стандартной архитектуре контроллеров "горячего" подключения (Standard Hot-Plug Controller, SHPC), как определено в спецификации PCI Standard Hot-Plug Controller and Subsystem Specification, Revision 1.0. Эта спецификация опубликована группой PCI Special Interest Group (PCI SIG) и доступна на Web-сайте группы PCI-SIG. Технология PCI Express использует всю совокупность компонентов стандартной архитектуры SHPC, которые сведены в таблицу, представленную ниже. В столбцах "Области компонентов" представлены составляющие платформы, реализующие модель SHPC.
Хотя спецификация "горячего" подключения PCI определяет аппаратные требования, она не описывает полную модель управления операциями подключения/отключения устройства – спецификация SHPC 1.0 определяет необходимую модель программного обеспечения. Технология PCI Express, представленная в 2002 году, полностью поддерживает предшествующую технологию "горячего" подключения PCI, а также модель SHPC, а использование простого интерфейса к регистрам устраняет зависимость реализации технологии от BIOS и переносит ее на операционную систему. По существу, технология PCI Express избавляет от необходимости опираться на ACPI BIOS и определяемый платформой драйвер контроллера "горячего" подключения, обеспечивая стандартное соединение с этим контроллером, которое может использоваться на любой платформе любого поставщика.
Технология PCI Express использует достоинства имеющейся архитектуры ввода/вывода и в то же время отвечает насущным и будущим потребностям благодаря возможности включения и отключения поддержки элементов расширения собственными средствами операционной системы. Этот метод управления, названный «горячим подключением под управлением операционной системы» (Operating System Hot-Plug, OSHP), должен обеспечиваться резидентной программой платформенной BIOS с поддержкой механизма ACPI. Если поддержка расширения Native отключена, то управление горячим подключением передается интерфейсу ACPI BIOS. Если поддержка расширения собственными средствами операционной системы включена, то ACPI BIOS не задействуется, позволяя операционной системе самостоятельно управлять "горячим" подключением устройств.
В то время как технологии PCI Express и SHPC обеспечивают одинаковую функциональность, набор регистров, используемых для реализации технологии PCI Express, немного отличается от набора регистров для стандарта SHPC; тем не менее сама операционная система может обслуживать и SHPC, и PCI Express с некоторыми небольшими изменениями в интерфейсе, связанном с регистрами.
Технология PCI Express поддерживает возможность "горячего" подключения устройств как для модульных, так и для интегрированных решений. Значительным усовершенствованием, которое внесла технология PCI Express в существующие принципы, является разъем типа "mate-last/break-first" (сначала питание, затем подключение), который защищает аппаратные средства от сбоев. Одно из ключевых преимуществ технологии "горячего" подключения PCI Express по сравнению с предыдущими моделями заключается в уникальности модулей PCI Express – их подключение осуществляется через заднюю или переднюю панель и не требует вскрытия корпуса.
И модульные, и интегрированные решения базируются на одной модели ПО. Стоимость реализации различных вариантов модульных платформенных решений значительно ниже, чем стоимость предлагавшихся ранее альтернативных решений. Модульные решения даже менее дороги, поскольку контроллер питания перемещен на модуль (нет управления питанием на базовой стороне разъема), и соответствующая стоимость входит в общую стоимость модуля. Дополнительное преимущество модульного решения состоит в том, что его стоимость растет с расширением его масштабов, обеспечивая возможность постепенного инвестирования в решение по мере его роста.
Для того чтобы воспользоваться преимуществами более высокой надежности при меньших затратах, которые может обеспечить технология PCI Express, необходимо выполнить следующие условия:
- разработчики аппаратных средств должны включать в свои новые проекты поддержку технологии
PCI Express;
- разработчики программного обеспечения должны включать поддержку OSHP в новые версии BIOS и внедрить модель использования на базе архитектуры SHPC;
- OEM-производители должны распространять интегрированную серверную продукцию на базе компонентов, поддерживающих технологию PCI Express;
- IT-специалисты и менеджеры информационных центров должны перейти к использованию платформ на базе технологии PCI Express, чтобы получить максимум преимуществ от использования технологии "горячего" подключения.
Архитектура PCI Express разработана с собственной поддержкой горячего подключения и горячей замены устройств (стандартная пользовательская модель) для всех форм факторов PCI Express, поддерживающих "горячую" замену и "горячее" подключение устройств. Эта модель предоставляет основу для поведения индикаторов и кнопок, если они реализованы в системе. Определение индикаторов и кнопок применяется ко всем моделям PCI Express Hot-Plug .
Пользовательская модель PCI Express Hot-Plug. Стандартная пользовательская модель, как следует из названия, в первую очередь нацелена на пользователей, которые эксплуатируют системы со слотами Hot-Plug. Такое назначение объясняется тем, что обычно в пользовательских системах присутствует аппаратное и программное обеспечение от различных производителей. Модель позволяет пользователям использовать слоты Hot-Plug их систем без дополнительного переобучения. Стандартная пользовательская модель PCI Express Hot-Plug выведена из стандартной пользовательской модели, определенной в спецификации "PCI Standard Hot-Plug Controller and Subsystem Specification" версии 1.0. Данные модели идентичны с точки зрения пользователя. Были произведены лишь незначительные изменения в определениях регистров и соответствия со стандартной пользовательской моделью, требуемые всеми форм-факторами PCI Express, которые реализуют Hot-Plug и используют индикаторы и кнопки.
Девиация форм-факторов PCI. Отклонение от стандартной пользовательской модели приводит к несовместимым с PCI-Express решениям и будет проявляться в нежелательных результатах, таких как:
- сложность эксплуатации для пользователя;
- более дорогое тестирование аппаратного обеспечения;
- функциональная несовместимость с системным ПО;
- ошибки системного ПО из-за непроверенного поведения системы.
Индикаторы. Стандартная пользовательская модель определяет два индикатора: индикатор питания и индикатор внимания. Платформа может обеспечить два индикатора в каждый слот или панель модуля, индикаторы могут быть реализованы на корпусе или модуле, детали реализации зависят от требований форм-фактора "горячего" подключения. Каждый индикатор находится в одном из трех состояний:
- включено,
- выключено,
- мерцание.
Системное ПО Hot-Plug обладает исключительным контролем над состоянием индикаторов за счет возможности записи в командный регистр, связанный с индикатором. Порт совместимый с Hot-Plug управляет частотой мерцания индикаторов, рабочим циклом и фазой.
Мерцающие индикаторы функционируют на частоте от 1 до 2 Гц с коэффициентом заполнения 50% (± 5%). Мерцающие индикаторы не должны быть синхронизированы и синфазны между портами.
Индикаторы должны находиться в непосредственной близости от связанного с ними слота Hot-Plug, если индикаторы реализованы на корпусе, чтобы соединение между индикаторами и слотом Hot-Plug было как можно более свободным.
Оба индикатора полностью контролируются системным ПО. Устройство коммутатора или корневого порта никогда не изменяет состояние индикатора при отклике на событие, типа сбоя питания или внезапного открытия защелки MRL, если только системное ПО специально не пошлет такую команду. Исключение предоставляется платформам, которые совместимы с механизмом определения контактной неисправности (типа "залипания") питания. В этом специфическом случае сбоя платформе разрешено "подавить" устройство коммутатора или корневого порта и силой включить индикатор питания (как указание, что плата расширения не может быть извлечена). Во всех случаях внутреннее состояние порта для индикатора питания должно соответствовать состоянию, выбранному программным обеспечением. Обработка системным ПО константных неисправностей является необязательной функциональностью и отдельно не описывается. Поэтому производитель платформы должен гарантировать, что эта дополнительная функциональность стандартной пользовательской модели выполняется дополнительным ПО, описывается в документации платформы или каким-либо другим способом.
Индикатор внимания. Индикатор внимания "Attention" желтого или янтарного цвета используется для указания на проблемы функционирования или указывает, что слот Hot-Plug находится в процессе идентификации, что позволяет локализовать его состояние.
Индикатор внимания выключен. Когда индикатор внимания "Attention" выключен, это означает, что плата расширения (если таковая представлена) и слот Hot-Plug функционируют нормально и не требуют внимания.
Индикатор внимания включен. Если индикатор внимания "Attention" включен, это означает, что существуют проблемы функционирования платы или слота. Под проблемами функционирования понимаются условия, которые предотвращают продолжение функционирования платы расширения. Операционная система или другое системное ПО определяет это состояние платы расширения через состояние соответствующего индикатора внимания.. Примерами проблем функционирования могут служить неполадки внешнего кабеля, платы расширения, программных драйверов и сбои питания. В общем случае включенное состояние индикатора внимания означает, что была предпринята попытка функционирования, и она была неудачной, или что произошло непредвиденное событие.
Индикатор внимания не используется для сообщения о проблемах, обнаруженных при проверке достоверности запроса для операции Hot-Plug. Термин "проверка достоверности" применяется к любой проверке, которую выполняет системное ПО для гарантии, что запрошенная операция не вызовет проблем. Примерами сбоя проверки достоверности может быть отказ в выполнении операции Hot-Plug, неудовлетворительное распределение питания, и другие состояния, которые могут быть обнаружены перед началом операции.
Мерцание индикатора внимания. Мерцание индикатора внимания "Attention" означает, что системное ПО идентифицирует данный слот при запросе оператора. Данное поведение управляется пользователем (например, через программный интерфейс пользователя или средства управления).
Индикатор питания. Индикатор питания имеет приятный зеленый цвет и используется для указания состояния питания слота (табл. 9).
Индикатор питания отключен. Когда индикатор питания выключен, это означает, что разрешена установка или извлечение платы расширения. Основное питание слота снято, если это необходимо для форм-фактора, примером снятия основного питания является форм-фактор платы PCI Express. Если платформа обеспечивает напряжение Vaux в слоты Hot-Plug и защелка MRL закрыта, то любые сигналы, коммутируемые защелкой MRL, сообщаются в слот независимо от состояния индикатора. При открытии защелки MRL коммутируемые ей сигналы снимаются. Системное ПО должно отключать индикатор питания, когда слот не запитан и/или разрешено вставлять или извлекать платы расширения. Данное правило диктуется соответствующей электромеханической спецификацией на форм-фактор.
Индикатор питания включен. Когда индикатор питания включен, это означает, что основное питание подано в слот и что установка или извлечение платы расширения запрещено.
Мерцание индикатора питания. Мерцание индикатора питания означает, что в слот подается питание или снимается из него и что установка или извлечение плат расширения запрещено. Мерцание индикатора питания также обеспечивает оператора зрительной обратной связью при нажатии кнопки "Attention Button".
Ручная защелка MRL. Защелка MRL (Manually-operated Retention Latch) - это управляемый вручную механизм удержания, который удерживает плату расширения в слоте и предотвращает извлечение платы пользователем. Эта защелка жестко держит плату в слоте, так что кабели могут быть присоединены без риска создания прерывистого контакта. В платформах, которые не реализуют сенсоры MRL, разрешены защелки MRL, которые держат две или больше плат расширения одновременно.
Сенсор MRL. Сенсором MRL может быть коммутируемое, оптическое или другое сенсорное устройство, которое сообщает порту позицию защелки MRL. Сенсор MRL сообщает "закрыто", когда защелка MRL полностью закрыта, и "открыто" во всех других случаях (т. е. полностью открыта и все промежуточные положения). Если питание Vaux подведено к слотам Hot-Plug, то коммутируемые защелкой MRL сигналы должны быть автоматически сняты со слота, если сенсор MRL указывает, что защелка MRL открыта, и сигналы должны быть поданы в слот, если сенсор MRL указывает, что защелка MRL была снова закрыта. Сенсор MRL позволяет порту отслеживать позицию защелки MRL и, следовательно, позволяет определить внезапное открытие защелки MRL. Когда внезапное открытие защелки MRL связано с уже идентифицированным слотом, то порт изменяет состояние этого слота на выключенное и уведомляет системное ПО. Порт не изменяет состояние индикаторов питания и внимания.
Электромеханическая блокировка. Электромеханическая блокировка - это механизм для физического блокирования платы расширения или защелки MRL до тех пор, пока системное ПО и порт не освободят ее. Реализация блокировки необязательна, а в программном интерфейсе отсутствует механизм для точного управления электромеханической блокировкой. Стандартная пользовательская модель предполагает, что если электромеханические блокировки реализованы, то они управляют одним выходным сигналом порта, который подает основное питание в слот. Системы могут дополнительно расширять управление блокировками для обеспечения физической защиты плат расширения.
Кнопка внимания. Кнопка внимания (Attention Button) является кнопкой мгновенного срабатывания, размещенной рядом с каждым слотом Hot-Plug или на модуле, и управляется пользователем для начала операции "горячего" извлечения или замены в данном слоте. Индикатор питания обеспечивает визуальную обратную связь с оператором (если системное ПО принимает запрос, инициированный кнопкой внимания) путем мерцания. Как только индикатор питания замерцал, то пользователю дается пятисекундный интервал времени на отмену, во время которого повторное нажатие кнопки отменяет операцию.
Если операция, инициированная кнопкой, срывается по любым причинам, то рекомендуется, чтобы системное ПО представило сообщение, объясняющее сбой, через программный пользовательский интерфейс или добавило его в системный журнал.
Программный интерфейс пользователя. Системное ПО должно обеспечивать программный пользовательский интерфейс - Software User Interface, который позволяет запустить операции горячего извлечения и замены и который позволяет отследить состояние захваченного порта. Детальное рассмотрение пользовательского интерфейса горячего подключения является спецификой ОС и поэтому не определено в стандарте PCI Express.
В системах с несколькими слотами Hot-Plug системное ПО должно позволять пользователю инициировать операции в каждом слоте независимо от состояния остальных слотов. Таким образом, пользователю разрешено инициировать операции Hot-Plug в слоте, используя либо программный пользовательский интерфейс, либо кнопку внимания (Attention Button), пока на другом слоте происходит операция Hot-Plug, независимо от того, какой интерфейс был использован для начала первой операции.
Функция распределения питания. С добавлением возможности горячей замены для плат расширения возникает необходимость в способности системы правильно выделить питание для любого нового устройства, добавленного в систему. Данная функциональная возможность отделена от управления питанием; базовый уровень поддержки должен гарантировать правильное функционирование системы. Концепция распределения питания допускает блочное (узловое) построение узлов, что позволяет устройствам взаимодействовать с системой для достижения перечисленных ранее целей. Существует множество путей, которыми возможно реализовать в системе функциональности управления питанием, и как они выходят за пределы стандарта.
Устройства, которые будут представлены на платах расширения Hot-Plug, должны реализовывать функции распределения питания. Устройства, предназначенные для использования на платах расширения или материнских платах, имеют опцию поддержки функции распределения питания. Устройства, которые разработаны и для плат расширения, и для модулей, должны также реализовывать распределение питания. Стандарт PCI Express требует, чтобы устройства и/или платы расширения превышали допустимый предел "конфигурационного" питания, определенный в соответствующей электромеханической спецификации, до окончания процесса конфигурирования и их включения системой. Системы должны правильно распределять питание до включения плат расширения.
Рекомендации процесса системного распределения питания. Рекомендуется, чтобы системное встроенное ПО предоставляло агенту управления распределением питания следующую информацию:
- полное питание системы (информация об источнике питания);
- полное питание, выделенное системным встроенным ПО (устройствами материнской платы);
- полное количество слотов и типов слотов.
Системное встроенное ПО отвечает за выделение питания для всех устройств на материнской плате, которые не имеют функций распределения питания. Встроенное ПО может как охватывать стандартные устройства PCI Express, которые соединены со стандартными шинами питания, так и не выделять питание для них. При выделении встроенным ПО питания для устройства, ПО должно установить бит SYSTEM_ALLOC регистра Power Budget Capability (регистр устройства) в состояние логической " 1", для указания успешности операции. Менеджер распределения питания отвечает за выделение питания всем устройствам PCI Express, в том числе устройствам материнской платы, имеющим функции распределения питания, но которые были помечены для выделения. Менеджер распределения питания также отвечает за определение возможности подключения устройств Hot-Plug в системе.
Указанные методы могут обеспечить одинаковую функциональность, и не требуется, чтобы процесс распределения питания был реализован именно в этой манере.
Управление ограничением питания слота. PCI Express предоставляет механизм для программно-управляемого ограничения максимальной мощности в каждый слот, которую может потреблять плата/модуль PCI Express (связанные с этим слотом). Ключевыми элементами этого механизма являются:
- поля Slot Power Limit Value и Scale регистра Slot Capability, реализованного в Downstream-портах корневого комплекса и коммутатора;
- поля Slot Power Limit Value и Scale регистра Device Capability, реализованного в Upstream-портах оконечного устройства, коммутатора и моста PCI Express-to-PCI;
- сообщение "Set_Slot_Power_Limit". Это сообщение передает содержимое полей Slot Power Limit Value и Scale регистра Slot Capability порта Downstream (корневого комплекса или коммутатора) в соответствующие поля Slot Power Limit Value и Scale регистра Device Capability порта Upstream компонента, присоединенного к тому же каналу.
Пределы потребляемой мощности на платформе обычно контролируются ПО (например, встроенным ПО платформы), которое учитывает специфику платформы, такую как:
- разделение платформы, включая слоты для расширения ввода-вывода, использующие платы/модули расширения;
- возможности по обеспечению питанием;
- температурные возможности.
Данное ПО отвечает за корректное программирование полей Slot Power Limit Value и Scale регистров Slot Capability портов Downstream, соединенных со слотами расширения. После того как значение было записано в регистр внутри Downstream-порта, оно передается к другому компоненту, соединенному с этим портом путем сообщения "Set_SlotJPower_Limit". Получатель должен использовать содержащееся в сообщении значение для ограничения использования питания всей платы/модуля. Исключение составляют платы/модули, которые ни при каких условиях не выходят за предел минимального значения, определенного в соответствующей электромеханической спецификации. Предполагается, что программное обеспечение драйвера устройства платы/модуля будет в состоянии (путем чтения значения полей Slot Power Limit Value и Scale регистра Device Capability) отконфигурировать аппаратное обеспечение платы/модуля таким образом, что плата/модуль не превысят продиктованный предел. В случае, когда платформа определяет предел, который ниже минимума, необходимого для нормального функционирования, драйвер устройства должен быть в состоянии сообщить данное несоответствие верхнему уровню конфигурационного ПО.
Системой должны соблюдаться следующие правила относящиеся к механизму управления "Slot Power Limit" для плат/модулей:
- до тех пор, пока не будет принято сообщение "Set_Slot_Power_Limit", указывающее значение предела, большее чем минимальное значение, определенное в электромеханической спецификации для форм-фактора платы или модуля, плата/модуль не должны потреблять питания больше, чем определено этим минимальным значением;
- максимально допустимая потребляемая мощность для платы/модуля определяется самым большим значением из всех принятых сообщений " Set_Slot_Power_Lim it".
- оконечным устройствам, коммутатору и мосту PCI Express-to-PC 1, которые предназначены для объединения на плате/модуле, где полное потребление мощности ниже минимального предела для данного форм-фактора, запрещено игнорировать сообщения "Set_Slot_Powcr_Limit" и возвращать значение "0" в нолях Slot Power Limit Value и Scale регистра Device Capability.
Перечисленные ранее компоненты должны корректно принять сообщение "Set_Slot_Power_Limit", но вместо обработки просто отменить его.
Правила относящиеся к механизму управления "Slot Power Limit" для корневых комплексов и коммутаторов, содержащих слоты:
- downstream-порт не должен передавать сообщение "Set_Slot_Power_Limit", предел которого будет меньше, чем минимальное значение, определенное в электромеханической спецификации для форм-фактора этих слотов.
Управляющие регистры Slot Power Limit. Обычно регистры Slot Power Limit внутри Downstream-портов корневого комплекса или коммутатора программируются специфическим программным обеспечением платформы. Некоторые реализации могут использовать аппаратный метод для инициализации значения этих регистров и таким образом не требуют программной поддержки.
Оконечные устройства, коммутатор и мост "РСТ Express-to-PCI", предназначенные для объединения на плате/модуле, где полная потребляемая мощность ниже минимального предела, определенного для данного форм-фактора, могут игнорировать сообщения "Set_Slot_Power_Limit". Компоненты PCI Express, реализованные подобным образом, могут быть не совместимы с потенциальными будущими форм-факторами. Такие форм-факторы возможно будут сообщать более низкий предел потребляемой мощности, чем минимально необходимый для новой платы/модуля, разработанной на существующих компонентах.