2

Я пытаюсь найти связь между барами памяти (регистры базовых адресов) и физической памятью в транзакциях PCI Express. В своем последнем вопросе я начал понимать, что происходит, когда процессор читает / пишет по определенному адресу памяти, теперь мне нужно углубиться в транзакцию PCI Express.

Мне нужно понять, задействовано ли физическое ОЗУ в каждой транзакции чтения / записи памяти PCI Express.

1) Находится ли физическая память, адресуемая BAR памяти устройства, в самом устройстве? Или он находится в оперативной памяти?

2) Когда я запускаю транзакцию чтения / записи памяти на устройство PCI Express без встроенной физической памяти, указывая адрес памяти, как устройство может получить к нему доступ, если оно не сопоставлено с внутренней физической памятью? Когда мое устройство возвращает пакет транзакции с данными, передает ли корневой комплекс данные процессору и вставляет их в физическую память?

1 ответ1

5

Основная системная RAM не имеет ничего общего с BAR. BAR просто настраивает устройство для декодирования доступа к этим адресам. Обычно устройство содержит несколько регистров конфигурации. BAR позволяет процессору получать доступ к этим регистрам, как если бы они были блоком оперативной памяти, но на самом деле там нет оперативной памяти. Корневой комплекс PCIe сконфигурирован для маршрутизации большей части доступа к памяти в ОЗУ и доступа к блоку адресов, обычно в области 3-4 ГБ, к шине PCIe. BAR в данном устройстве настраивает его для ответа на определенный блок этих адресов.

С другой стороны, некоторые устройства, особенно видеокарты, на самом деле имеют свой собственный оперативный модуль, доступ к которому осуществляется через BAR.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .