Как компьютер сообщает видеокарте, что отображать?

Как компьютер передает значения пикселей на экран?

Существует ли в архитектуре набора команд процессора определенная команда, которая заставит процессор обмениваться данными непосредственно с монитором, или же программное обеспечение хранит графическую информацию в определенном месте в памяти, где она автоматически выбирается процессором для отправки в монитор? Как это работает и где графическая карта вступает в игру в этом процессе?

2 ответа

Решение

Давайте возьмем DVI. Согласно статье, красный, зеленый и синий каждый передается по собственной паре проводов, 8 бит на цвет на пиксель, в несжатом растровом виде. То есть верхняя строка отправляется слева направо, пиксель за пикселем, затем следующая строка и т. Д., Причем значения RGB выстраиваются в линию, потому что сжатия нет. Каждый канал данных кодируется в соответствии с TMDS, который предназначен для учета различных физических реалий высокочастотных электрических сигналов. Вы также можете посмотреть VGA и HDMI для получения аналогичной информации.

Однако ОС далека от отправки данных на монитор. Это обрабатывается специальным оборудованием на видеокарте. Грубо говоря, драйвер видеокарты выдает видеокарте команды для рисования изображения. (Во многих двухмерных случаях видеокарта будет передаваться поочередно, а в трехмерных случаях видеокарта будет выполнять большую часть работы.) В любом случае, я достаточно уверена, что видеокарта в конечном итоге помещает данные пикселей для каждого кадра в буфер, из которого крошечный фрагмент выделенной схемы отправляет сигнал на монитор.

В целом считается, что выделенное аппаратное обеспечение хорошо справляется с работой ввода-вывода под управлением ОС. Большая часть работы ввода-вывода ОС просто говорит выделенному оборудованию, что делать, и тогда это оборудование знает протокол низкого уровня для внешней связи. Наряду с разгрузкой работы с ЦП выделенное оборудование означает, что задержка со стороны ОС не обязательно нарушит связь с периферийным устройством. Для другого примера, возьмите Ethernet. ОС сообщает NIC, куда помещать входящие пакеты, и NIC сигнализирует ОС, когда она помещает туда пакет, но если ОС ничего не делает с первым пакетом сразу, NIC все еще может получать больше пакетов, пока не будет запущен недостаточно места для него для входящих пакетов.

Как работает компьютерный монитор со стороны ОС? на форумах XKCD.

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

Смотрите Memory Mapped I/O в Википедии, например.

Другие вопросы по тегам