3

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

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

2 ответа2

3

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

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

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

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

0

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

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

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