Разбираюсь в строении шины PCI и не понимаю один из ключевых моментов.
При конфигурации каждому устройству выделяются области памяти и ввода-вывода. При работе по этим адресам происходят транзакции.
1) Зачем вообще нужно отображать память? Почему нельзя напрямую писать в нужные устройства по адресам их портов?
2) Где фактически расположена эта память? На самом устройстве или в основной?
3) Есть транзакции, при которых происходит чтение-запись основной памяти. Что будет, если в такой транзакции обратиться к адресам, на которые отображены устройства?