Я абсолютный новичок, начинающий понимать протокол PCI Express, и мне нужны некоторые пояснения о его механике.
Я понял, что конечное устройство PCI Express может иметь некоторый бар памяти, отображенный в системной памяти (всегда ли это оперативная память, о которой мы говорим?). Мне нужно понять, что происходит, когда я отправляю из CPU на устройство (A) запрос чтения памяти, обращаясь к определенному адресу памяти (первая строка памяти, смещение 0).
Давайте предположим, что мое устройство не имеет встроенной памяти.
Корневой комплекс от имени CPU создает TLP и пересылает его на устройство (A), поскольку адрес памяти назначения назначен (A).
A получает TLP, распаковывает его и создает TLP завершения, содержащий данные, поступающие из его внутренней логики приложения.
Теперь TLP перемещается назад к корневому комплексу, который распаковывает его, собирает интересные данные и возвращает их в ЦП.
Какова роль системной памяти во время этого общения? Никто?
Связывается ли корневой комплекс (в данном случае) с физической памятью системы, кроме отправки и получения пакетов в / из конечной точки?
Для некоторых людей это может показаться глупым вопросом, но для меня очень важно понять связь между физической памятью и адресными полосами памяти, назначенными каждому устройству PCI Express.