Архитектура ввода-вывода и шины
Архитектура ввода-вывода определяет, как процессор и память взаимодействуют с периферийными устройствами через шины, контроллеры, прерывания и схемы адресации, регулируя поток команд и данных во внешний мир и из него.
Definition
Архитектура ввода-вывода и шины — это организация и соединения, посредством которых процессор и память компьютера обмениваются управляющими сигналами и данными с периферийными устройствами, включая адресацию регистров устройств и механизмы, с помощью которых устройства запрашивают обслуживание.
Scope
Эта тема охватывает структуру ввода-вывода: шины и двухточечные соединения, контроллеры устройств и регистры, ввод-вывод с отображением в память по сравнению с вводом-выводом с отображением в порты, опрос и ввод-вывод, управляемый прерываниями, а также протоколы шин и арбитраж. В ней рассматривается, как устройства подключаются и управляются. Она исключает механизм прямого доступа к памяти (DMA) для массовой передачи данных и виртуализацию (виртуализация ввода-вывода и DMA), а также сами носители информации (устройства вторичного хранения).
Core questions
- Как периферийные устройства адресуются и управляются процессором?
- В чем разница между вводом-выводом с отображением в память и вводом-выводом с отображением в порты?
- Как соотносятся по эффективности опрос и ввод-вывод, управляемый прерываниями?
- Как шины и двухточечные соединения арбитрируют и передают данные?
Key concepts
- контроллеры устройств и регистры
- ввод-вывод с отображением в память
- ввод-вывод с отображением в порты
- опрос
- прерывания и обработчики прерываний
- шины и соединения
- арбитраж шины
- адресация ввода-вывода
Key theories
- Ввод-вывод, управляемый прерываниями
- Вместо непрерывного опроса устройства процессор продолжает выполнять другую работу и получает уведомление посредством прерывания, когда устройству требуется внимание, что значительно повышает эффективность для медленных или периодически работающих устройств.
Mechanisms
Каждое устройство управляется контроллером, предоставляющим регистры, которые процессор считывает и записывает либо через адреса, отображаемые в память, либо через специальные порты ввода-вывода. Процессор может опрашивать эти регистры или, что более эффективно, включать прерывания, чтобы устройство сигнализировало о готовности. Шины соединяют компоненты и арбитрируют доступ между несколькими ведущими устройствами, в то время как современные системы все чаще используют высокоскоростные двухточечные последовательные соединения вместо общих параллельных шин.
Clinical relevance
Архитектура ввода-вывода определяет, насколько эффективно система взаимодействует с хранилищем, сетью и другими устройствами. Ввод-вывод, управляемый прерываниями, освобождает процессор для полезной работы, а эволюция от общих шин к быстрым последовательным соединениям, таким как PCI Express, лежит в основе пропускной способности, необходимой для современного оборудования хранения данных, сетевого оборудования и ускорителей.
History
Ранние системы использовали программный ввод-вывод и общие параллельные шины с централизованным арбитражем. Механизмы прерываний и стандартизированные шины, такие как ISA и PCI, улучшили гибкость и производительность. Переход к высокоскоростным двухточечным последовательным соединениям, примером которых является PCI Express, решил проблемы пропускной способности и ограничений сигнализации общих параллельных шин.
Key figures
- John L. Hennessy
- David A. Patterson
- Abraham Silberschatz
Related topics
Seminal works
- hennessy2019
- silberschatz2018
Frequently asked questions
- В чем разница между вводом-выводом с отображением в память и вводом-выводом с отображением в порты?
- Ввод-вывод с отображением в память назначает регистрам устройств адреса в обычном адресном пространстве памяти, поэтому обычные инструкции загрузки и сохранения обращаются к ним. Ввод-вывод с отображением в порты использует отдельное адресное пространство и специальные инструкции для доступа к устройствам. Ввод-вывод с отображением в память более распространен в современных архитектурах.
- Почему прерывания лучше опроса для большинства устройств?
- Опрос тратит циклы процессора на многократную проверку готовности устройства. Прерывания позволяют процессору выполнять другую работу и получать уведомления только тогда, когда устройству действительно требуется обслуживание, что гораздо эффективнее для медленных или непредсказуемо отвечающих устройств.