Взаимодействие устройств на шине PCI
Устройством PCI называется микросхема, или карта расширения, подключенная к одной из шин PCI и использующая для доступа к конфигурационным регистрам выделенную ей линию IDSEL, принадлежащую этой шине. Устройство может быть многофункциональным, то есть состоять из множества (от 1 до 8) так называемых функций. Каждое устройство PCI при установке в конкретную систему получает идентификатор, однозначно определяющий его положение на дереве шин PCI данного компьютера. Идентификатор имеет иерархическую структуру и состоит из номеров шины (bus), устройства (device) и функции (function). Идентификатор задает положение блока конфигурационных регистров заданной функции выбранного устройства в общем конфигурационном пространстве системы.
С программной точки зрения устройство PCI может иметь следующие компоненты: Ø конфигурационные регистры, используемые для идентификации и начального конфигурирования устройства при инициализации системы (для всех устройств предусмотрен обязательный набор конфигурационных регистров, остальные регистры могут применяться для текущего управления); Ø операционные регистры (необязательно) – это регистры, которые используются для текущего управления и взаимодействия с устройством; Ø источники запросов на прерывания; Ø мастер шины, обеспечивающий прямой доступ к системной памяти (DMA) и взаимодействие с другими устройствами. С устройством PCI, когда оно является целевым, можно взаимодействовать несколькими способами: · командами обращения к памяти и портам ввода-вывода; эти команды адресуются к областям, выделенным устройству при конфигурировании; · командами обращения к конфигурационным регистрам; эти команды адресуются по идентификатору — номеру шины, устройства и функции (компонентам многофункционального устройства PCI); · специальными широковещательными сообщениями, передаваемыми для всех устройств выбранной шины; · командами пересылки сообщений; команды адресуются по идентификатору устройства (эта возможность появилась в PCI-X 2.0).
|