Как инструкции отправляются на устройства в компьютере?

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

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

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

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

Верна ли эта визуализация? Видео делается по-другому из-за количества задействованных данных?


person Matt    schedule 22.01.2010    source источник
comment
Нет, это вопрос системного программирования, а не системного администратора.   -  person Andrew McGregor    schedule 22.01.2010


Ответы (3)


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

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

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

person Andrew McGregor    schedule 22.01.2010

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

person stacker    schedule 22.01.2010

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

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

person Kosi2801    schedule 22.01.2010