Как инструкции отправляются на устройства в компьютере? - PullRequest
2 голосов
/ 22 января 2010

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

В основном, когда компьютер включен, BIOS загружает все устройства на шине PCI и делает их доступными по определенным заранее заданным адресам. То же самое происходит с шиной PCI-express.

То есть каждое устройство может получать команды, потому что драйверы знают, где их искать по адресу шины?

Правильно ли я также допущу, что если вы хотите отправить инструкции на звуковую карту, то драйвер скажет процессору (-ам) передать инструкции по соответствующей шине, и правильное устройство по указанному адресу получит инструкции и делать свое дело?

Правильна ли эта визуализация? Видео выполняется по-разному из-за объема данных?

Ответы [ 3 ]

2 голосов
/ 22 января 2010

Большинство новых шинных систем имеют механизм проверки, где система может запрашивать у всех устройств идентификацию себя и своего положения на шине, а затем ОС может сопоставить эти идентификаторы с драйверами устройств, которые затем могут указать другие ресурсы. им нужно. USB, PCI, PCI-Express, AGP, Firewire, SATA, Infiniband и Lightport делают это. Однако он не обязательно работает точно по «адресам», он может быть через другой режим контроллера шины или даже через совершенно отдельную шину. Например, микросхемы ОЗУ имеют интерфейс SPI для их настройки, в то время как фактические данные перемещаются по другому соединению. У меня была встроенная система на работе, которая использовала SPI для настройки доступа к шине флэш-диска, который содержал операционную систему ... это было действительно раздражающее устройство для загрузки.

В то время как BIOS на ПК фактически настраивает все устройства PCI, большинство новых операционных систем немедленно переделают процесс с нуля. Таким образом, прошивка EFI для компьютеров Mac на базе процессоров Intel (и многих серверов) устанавливает только то, что ей действительно нужно для загрузки ядра ОС, а остальное - для ОС. Вот почему Windows нужен BootCamp или диск HAL для загрузки на Mac или высокопроизводительном сервере. Windows выполняет тестирование PCI довольно поздно на обычных ПК и некоторое время нуждается в настройке BIOS, но на Mac и некоторых серверных системах ей требуется другой загруженный HAL для немедленного сканирования оборудования.

Если вы действительно хотите понять это, то чтение ядра Linux чрезвычайно поучительно, особенно в отношении различий между ПК и другими системами.

1 голос
/ 22 января 2010

Графические карты подключены к шине AGP, которая соединена северным мостом, устройства PCI, а также устройства ATA подключены к южному мосту. Хорошее введение - здесь

0 голосов
/ 22 января 2010

Да, вы можете использовать это упрощение, чтобы представить в общих чертах, как оно работает. И то же самое работает с видео.

Конечно, если вы углубитесь в детали, вы обнаружите, что это немного сложнее, потому что задействовано несколько методов, и теоретически каждое устройство может работать немного по-своему. Будьте готовы встретиться с IRQ, DMA, различными отображениями памяти и т.д ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...