1

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

Позвольте мне объяснить - ОС должна иметь драйверы (возможно, их даже не называют драйверами, потому что они настолько элементарны), чтобы выполнять самые простые вещи, такие как отображение чего-либо (но я считаю, что для этого используются процедуры BIOS) и доступ к клавиатуре, жесткому диску.

Но как эти устройства связаны? Давайте возьмем HDD для примера. Он интегрирован в систему Intel через южный мост. Но как ОС может получить к нему доступ? Потому что с процессором вы можете выполнять только операции ввода-вывода порта и ввода-вывода с отображением в памяти. Я полагаю, что благодаря этому он связывается с Северным мостом, который имеет свой внутренний путь для дальнейшего контакта с Южным мостом и другими периферийными устройствами.

И чтобы сделать это еще сложнее, несколько лет назад были даже отдельные контроллеры для клавиатуры, прерываний и т.д. Так как же тогда это работало? Были ли все эти контроллеры подключены к шине portIO ЦПУ и отвечали только по их адресу, или они были подключены к Северному мосту, который отфильтровывал запросы?

У меня есть еще один пример по этому вопросу. Допустим, я что-то набираю на клавиатуре. Теперь контроллер клавиатуры отправляет прерывания контроллеру прерываний, который отправляет прерывания в ЦПУ. Затем процессор должен прочитать, какое прерывание было запущено с контроллера прерываний с помощью PortIO. Если он читает, например, IRQ 5 и обнаруживает, что он связан с клавиатурой, то он должен связаться с контроллером клавиатуры для получения кода клавиши. Я прав?

Пожалуйста, помогите мне разобраться в этом немного. Благодарю.

2 ответа2

0

Я думаю, что вы говорите о DMA, прямой доступ к памяти. Это то, что сейчас используют все быстрые устройства. Не уверен, что вы спрашиваете, хотя. Если вы хотите узнать о теоретических принципах работы компьютера, вы можете начать с Википедии или Google?

0

Подумайте об этом: Когда Intel разработала процессоры для ПК после первоначальной версии 8088, они не удалили ни одной из существующих функций, а "добавили" дополнительные функции. Вот почему у вас есть мощные 8-ядерные 64-битные процессоры SSE4+ с мультигигагерцовой нагрузкой, которые по-прежнему загружаются в 16-битном режиме 640KB 8088 на тот случай, если вы все еще хотите запустить DOS.

Многие вещи похожи на аппаратные средства ПК; видеокарты являются ярким примером. VGA - это дополнительные функции, прикрепленные к EGA, CGA и MDA, и современные графические процессоры по-прежнему загружаются и выглядят как карты VGA, в комплекте с поддержкой текстового режима, пока драйвер не активирует расширенные функции.

В старые времена почти все, кроме видеокарты, использовали стандартизированные порты ввода / вывода. Оперативная память видеокарты была подключена к A000:0000 до AFFF:FFFF в зависимости от того, сколько памяти было в карте, и у нее были определенные порты ввода-вывода, на которые она также реагировала. Дисковод гибких дисков использовал DMA для передачи данных с диска в RAM.

Таким образом, когда ваш ПК на базе BIOS загружается, большая часть его оборудования воссоздает этот старый ПК IBM 5150, пока не будут затронуты некоторые другие порты (обычно при загрузке и инициализации драйвера), которые выводят устройства из строя и делают "родной" режим.

В идеале, для устройства назначается только один IRQ. Клавиатура имеет IRQ 1, поэтому процессор может предположить, что любое прерывание от IRQ 1 является клавиатурой, и затем может прочитать соответствующие порты ввода / вывода, чтобы получить код клавиши.

Google "Разборка BIOS IBM 5150" или "Исходный код BIOS IBM 5150". IBM включила исходный код оригинального BIOS в одно из своих технических руководств. Это увлекательное чтение, многому научит и ответит на многие ваши вопросы.

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