Как GPU / CPU взаимодействует со стандартным выходом дисплея? (HDMI / DVI / и т. Д.) [Закрыто]


14

Меня интересует, как процессор / GPU представляет (любому оборудованию, на котором он работает) видеоданные после их обработки.

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

Я заинтересован в передаче сигналов и не могу искать протоколы и т. Д., Потому что я не знаю, что именно я ищу. Так взаимодействует ли CPU / GPU с видеовыходами напрямую (я легко могу найти эти протоколы) или есть, так сказать, «посредник», и если да, то что это, тип чипа и т. Д.?


Вы можете купить видео RAMDAC как отдельные части: ti.com.cn/cn/lit/ds/symlink/tvp3703.pdf, хотя это не означает, что он будет отдельным на вашей видеокарте.
pjc50

Ответы:


18

Изображение, отображаемое на мониторе, сохраняется в видеопамяти вашего компьютера на графической карте в структуре, называемой кадровым буфером. Данные в буфере кадров обычно имеют 24-битный цвет RGB, поэтому для каждого пикселя на дисплее будет один байт для красного, один для зеленого и один для синего, возможно, с некоторыми дополнительными байтами заполнения. Данные в видео RAM могут быть сгенерированы графическим процессором или центральным процессором. Видеопамять непрерывно считывается специализированным компонентом DMA на видеокарте и отправляется на монитор. Сигнал, выводимый на монитор, представляет собой либо аналоговый сигнал (VGA), в котором цветовые компоненты передаются через цифро-аналоговые преобразователи перед выходом с карты, либо цифровой сигнал в случае DVI, HDMI или DisplayPort. Аппаратные средства, ответственные за это, также генерируют сигналы горизонтальной и вертикальной синхронизации, а также все соответствующие задержки, поэтому данные изображения отправляются на монитор только тогда, когда они к нему готовы. В DVI и HDMI поток цветовой информации о пикселях кодируется, сериализуется и отправляется через TMDS (дифференциальная сигнализация с минимизированным переходом) на монитор. DisplayPort использует кодирование 8b / 10b. Кодировка служит нескольким целям. Во-первых, TMDS минимизирует переходы сигналов, чтобы уменьшить выбросы электромагнитных помех. Во-вторых, и TMDS, и 8b / 10b являются сбалансированными протоколами постоянного тока, поэтому блокирующие конденсаторы постоянного тока можно использовать для устранения проблем с контурами заземления. В-третьих, 8b / 10b обеспечивает достаточно высокую плотность перехода, чтобы обеспечить восстановление тактового сигнала на приемнике, поскольку DisplayPort не распределяет отдельный тактовый генератор. поток информации о цвете пикселя кодируется и сериализуется и отправляется через TMDS (дифференциальная сигнализация с минимизацией переходов) на монитор. DisplayPort использует кодирование 8b / 10b. Кодировка служит нескольким целям. Во-первых, TMDS минимизирует переходы сигналов, чтобы уменьшить выбросы электромагнитных помех. Во-вторых, и TMDS, и 8b / 10b являются сбалансированными протоколами постоянного тока, поэтому блокирующие конденсаторы постоянного тока можно использовать для устранения проблем с контурами заземления. В-третьих, 8b / 10b обеспечивает достаточно высокую плотность перехода, чтобы обеспечить восстановление тактового сигнала на приемнике, поскольку DisplayPort не распределяет отдельный тактовый генератор. поток информации о цвете пикселя кодируется и сериализуется и отправляется через TMDS (дифференциальная сигнализация с минимизацией переходов) на монитор. DisplayPort использует кодирование 8b / 10b. Кодировка служит нескольким целям. Во-первых, TMDS минимизирует переходы сигналов, чтобы уменьшить выбросы электромагнитных помех. Во-вторых, и TMDS, и 8b / 10b являются сбалансированными протоколами постоянного тока, поэтому блокирующие конденсаторы постоянного тока можно использовать для устранения проблем с контурами заземления. В-третьих, 8b / 10b обеспечивает достаточно высокую плотность перехода, чтобы обеспечить восстановление тактового сигнала на приемнике, поскольку DisplayPort не распределяет отдельный тактовый генератор.

Кроме того, для HDMI и DisplayPort аудиоданные также отправляются на графическую карту для передачи на монитор. Эти данные вставляются в паузы в потоке данных между видеокадрами. В этом случае видеокарта будет представлять себя как приемник звука для операционной системы, и аудиоданные будут передаваться через DMA на карту для включения с видеоданными.

Теперь вы, вероятно, понимаете, что для дисплея 1920x1080 с 4 байтами на пиксель требуется всего лишь около 8 МБ для хранения изображения, но объем видеопамяти на вашем компьютере, вероятно, во много раз превышает этот размер. Это связано с тем, что видеопамять предназначена не только для хранения кадрового буфера. Видеопамять напрямую подключена к графическому процессору, специализированному процессору, предназначенному для эффективного 3D-рендеринга и декодирования видео. Графический процессор использует прямой доступ к видеопамяти для ускорения процесса рендеринга. Фактически, получение данных из основной памяти в видеопамять является узким местом, поскольку шина PCI, соединяющая видеокарту с процессором и основной памятью, значительно медленнее, чем соединение между графическим процессором и видеопамятью.


7

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

Память, которая содержит видеоизображение, может быть частью основной памяти (дешевой) или выделенной памяти, к которой одновременно может обращаться «DMA», а также процессор и / или графический процессор. «DMA» должен быть настроен с различными параметрами, например, шириной и высотой пикселя, глубиной цвета, начальным положением в памяти и т. Д.

На современных компьютерах графический процессор является (очень специализированным) процессором, который конкурирует со скоростью основного процессора (и превосходит ее по своей производительности). Он создает такие вещи, как создание псевдо-3D изображения из набора трехмерных объектов с текстурами и источниками света. Все это может быть сделано внутри видеопамяти с помощью графического процессора. Процессор просто доставляет объекты, текстуры и источники света.

Считывание видеоданных из памяти и их извлечение - довольно простой процесс, но он должен выполняться довольно быстро и постоянно. Следовательно, эта задача хорошо подходит для выделенного оборудования и плохо подходит для процессора. AFAIK последними компьютерами, в которых был задействован процессор для генерации видеосигнала, были ZX80 / 81 и Spectrum. На этих процессорах можно было выполнять свою работу только в течение (вертикального?) Времени восстановления.


1
Это отличная информация. Таким образом, контроллер DMA (или подобное оборудование) напрямую обращается к видеопамяти? А в системе с интегрированной графикой, которая использует системную память, она напрямую обращается к системной памяти? Извините за простоту моих вопросов. Я большой любитель DIY, поэтому я склонен переходить к вещам более высокого уровня со знаниями более низкого уровня. :)
Крейг Лафферти

И чтобы выяснить, откуда контроллер узнает, с какого адреса в ОЗУ «украсть» кадр? Я предполагаю, что кадры / растровые изображения очень быстро заменяются и перемещаются.
Крейг Лафферти

Ваш последний комментарий верен: он хранится в кадровом буфере , а для аналогового видео передается RAMDAC . Адрес кадрового буфера может быть фиксированным или заданным в регистре управления. Существуют различные приемы, связанные со сменой кадровых буферов между кадрами или во время них, или в некоторых системах (Amiga), изменяющих режим видео на половине кадра.
pjc50

Почему процессор замедляется? Разве ему уже не нужно обрабатывать видео, чтобы контроллер мог его использовать? Здесь я сделаю еще одно предположение и скажу, что контроллер снова и снова считывает ОЗУ, а ЦП / ГП обновляет ОЗУ только новой информацией, отображаемой на экране, когда что-то изменилось, поэтому, например, ГП поместит мой текущий экран в его оперативная память, и когда я перемещаю курсор, он обновляет пиксели, которые были изменены. Тем временем контроллер читает ОЗУ примерно 60 раз в секунду (вроде стандартного FR, я полагаю).
Крейг Лафферти

1
Видеопамять используется не только для хранения отображаемого изображения, но и для внутреннего использования графическим процессором для хранения данных сцены, которые отображаются в кадровом буфере. Это может занимать много места, потому что графическому процессору необходим доступ к разрозненным трехмерным сеткам объектов вместе со всеми данными текстуры для их поверхностей.
alex.forencich
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.