Адресные пространства PCI

У меня вопрос по поводу PCI. PCI имеет три адресных пространства; PCI I/O, память PCI и пространство конфигурации PCI. Где они физически расположены? В PCI-контроллере? Или в устройствах? Является ли какой-либо из них частью системной оперативной памяти?


person Isaac D. Cohen    schedule 10.12.2014    source источник


Ответы (2)


Для физических съемных карт PCI он всегда находится на устройстве. Устройство должно объявить, что это такое (пространство конфигурации), и сохраняет его локальное состояние, независимое от хост-машины (ввод-вывод и объем памяти).

PCI, тем не менее, часто злоупотребляют просто как механизмом конфигурации, и есть много устройств, которые на самом деле не взаимодействуют через интерфейс PCI, а только имитируют его — экспресс-карты PCI всегда отображаются как устройство PCI, но волшебная 33-мегагерцовая шина, которая могла бы положенное между ними, волшебным образом исчезло.

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

Насколько ОС увидит, устройство всегда поставляется с собственной памятью.

person Combuster    schedule 12.12.2014

Я хотел бы добавить некоторые комментарии по этому поводу.

Все устройства PCI имеют пространство конфигурации PCI как BAR0. Вы можете найти информацию об устройствах PCI в пространстве. Он находится на устройстве.

Что касается PCI I/O, PCI Memory, вы можете разместить память в них обоих. Это зависит от вашей схемы S/W. Если ваше PCI-устройство хочет получить доступ к своим данным памяти хоста, вы можете разместить память в своем контроллере PCI. (например, буфер пакетов tx в сетевом драйвере).

person Wonkoo Jung    schedule 08.02.2019