Я пытаюсь понять архитектуру системы PCI. Как я знаю, есть несколько команд PCI, таких как ввод / вывод для чтения, записи в память, чтения и записи конфигурации и т.д. Если ЦП связывает периферийные устройства с их регистрами портов (статус, управление, данные), для чего нужна команда чтения и записи в память? ?

Речь идет о считывании данных из встроенной памяти устройства PCI?

1 ответ1

0

Основной ответ

Многие устройства имеют некоторую память, используемую для связи с другими устройствами или процессором.

Оперативная память - это не только память на вашем компьютере. Это просто "память общего назначения".

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

Аналогично с видеокартами, звуковыми картами, сетевыми картами. У них должна быть память, чтобы работать.

Допустим, мы создаем очень простую "графическую карту" для PCI, которая поддерживает 1-пиксельный "экран", и этот пиксель является просто светодиодом с 8-битной регулировкой яркости (0-255). Мы подключаем этот диод к некоторому микроконтроллеру и добавляем 1-байтовую память снаружи. Мы подключаем эту память к PCI и микроконтроллеру.

Наш микроконтроллер считывает память каждый кадр и управляет нашим светодиодом в соответствии с данными, считанными из памяти. Со стороны компьютера - мы просто используем команду записи в память PCI и записываем 0-255 чисел в эту память.

Вот как работают простые устройства PCI. Вся информация выше очень упрощена для лучшего понимания.


Более сложный ответ (если вы уже что-то знаете об оборудовании ПК)

В PCI мало адресных мест.

Адреса памяти имеют ширину 32 бита (есть также 64-битный PCI-X / не PCI Express!), Поддерживают кэширование и могут быть пакетными транзакциями.

Существуют также адреса ввода-вывода, и они являются адресным пространством портов ввода-вывода архитектуры Intel x86.

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