Правила сброса для PCI Express.
В версии PCI Express 3.0 максимальная полоса пропускания канала увеличена до 8 ГТ/с с незначительными изменениями протокола обмена, форм-фактора и методов обеспечения целостности данных. Данная статья определяет особенности поведения канала 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 должен оставаться неактивным, после того как любой поддерживаемый генератор перейдет в стабильное состояние. Также при необходимости могут быть определены дополнительные параметры.