Как CPU взаимодействует с монитором?

Итак, вопрос: как компьютер переходит от двоичного кода, представляющего букву "g", к правильной комбинации подсветки пикселей?

вот что мне удалось выяснить до сих пор. Я понимаю, как процессор принимает ввод, генерируемый клавиатурой, и сохраняет его в ОЗУ, а затем извлекает его для выполнения операций с использованием набора инструкций. Я также понимаю, как он делает эти операции более подробно. Затем CPU передает вывод операции, которая для этот пример представляет собой набор инструкций, который извлекает " g " из адреса памяти и отправляет его на выход монитора.

теперь мой вопрос в том, преобразует ли CPU букву " g " в растровое изображение напрямую или использует GPU, который является встроенным или отдельным, или сам монитор обрабатывает преобразование?

кроме того, можно ли написать свой собственный код, который интерпретирует двоичный файл и форматирует его для отображения?

2 ответов


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

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

существуют различные типы драйверов; проще всего объяснить драйвер текстового режима. В текстовом режиме экран состоит из нескольких ячеек, каждая из которых может содержать ровно один из предопределенных символов. Драйвер включает предопределенный шрифт битовой карты, который описывает, как выглядит символ, указывая, какие пиксели включены, а какие выключены . Когда программа запрашивает символ на экране, драйвер ищет его в шрифте и говорит карте изменить электрический сигнал, который она посылает на монитор, чтобы пиксели на экране отражали то, что в шрифте.

текстовый режим имеет ограниченное применение. Вы получаете только один выбор шрифта, ограниченный выбор цветов, и вы не можете рисовать графику, как линии или круги: вы ограничены символами. Для высококачественного графического вывода используется другой драйвер. Графические карты обычно включают буфер памяти, содержащий содержимое экран в определенном формате, как "n бит на пиксель, M пикселей в строке .."Чтобы нарисовать что-то на экране, вам просто нужно написать в этот буфер памяти. Для этого драйвер отображает буфер в память компьютера, чтобы операционная система и программы могли использовать буфер, как если бы он был частью ОЗУ. Затем программы могут напрямую поместить пиксели, которые они хотят показать, и поместить букву g на экран, чтобы программист приложения выводил пиксели таким образом, чтобы похоже на это письмо. Конечно, есть много библиотек, которые помогут программистам сделать это, иначе текущее состояние графического пользовательского интерфейса будет еще более печальным, чем оно есть.

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


смотрите здесь http://en.m.wikipedia.org/wiki/Code_page_437 Он описывает механизм на основе символов, используемый для отображения символов на мониторе VGA в символьном режиме.