Моя теория заключается в том, что драйвер устройства - это тот, который управляет контроллером устройства, который, в свою очередь, управляет аппаратным устройством. Это рассуждение правильно? Пожалуйста, извините за недостаток знаний. Просто читал и наткнулся на эту мысль?
1 ответ
Что контролирует контроллер устройства?
Главный компьютер (к которому подключен контроллер устройства) с помощью команд устройства.
Моя теория заключается в том, что драйвер устройства - это тот, который управляет контроллером устройства, который, в свою очередь, управляет аппаратным устройством.
Драйвер устройства - это программное обеспечение ОС, которое выполняется на центральном процессоре хоста. Драйвер должен преобразовывать запросы и данные ввода-вывода ОС в операции, которые может выполнять периферийное устройство.
Контроллер устройства является частью подсистемы периферийного устройства. Контроллер считается аппаратным, но типичный (современный) контроллер имеет процессор (обычно микроконтроллер или микропроцессор), он запрограммирован (т.е. встроенное программное обеспечение установлено в энергонезависимой памяти, такой как NAND Flash) и представляет собой встроенный компьютер, целью которого является: обеспечить интерфейс между хост-компьютером и устройством. Контроллер устройства может быть изготовлен как одна микросхема (особенно когда производится в больших объемах и / или из-за требований к упаковке) или полностью интегрирован с процессором в SoC, или может представлять собой несколько микросхем на плате.
Аппаратный интерфейс контроллера устройства с главным компьютером будет представлять собой набор "регистров устройства". Некоторые контроллеры могут иметь сложный набор регистров (также называемых портами), особенно когда они интегрированы в кремниевый чип с процессором (также известный как SoC, System on Chip). Другие контроллеры, которые подключаются к главному компьютеру через кабель, обычно имеют интерфейс HW, напоминающий канал связи (например, SATA, USB).
Интерфейс программного обеспечения контроллера устройства различен.
Обычно существует набор команд, которые можно записать в регистр команд. Или может существовать регистр данных для записи пакетов команды и / или данных (например, SATA). Эти команды (например, выполняют операцию чтения или записи или сброса) являются тем, что "управляет" контроллером устройства и фактическим устройством посредством операций низкого уровня.