Як GPU / CPU спілкується зі стандартним дисплеєм? (HDMI / DVI / тощо) [закрито]


14

Мене цікавить, як CPU / gpu представляє (на будь-яке обладнання, яке він робить) відеодані після їх обробки.

Мені сказали, що відео обробляється процесором / графічним процесором, а потім надсилається до інтегральної схеми високошвидкісним серіалом, який перетворює послідовний сигнал у відповідний вихідний дисплей, але я не можу підтвердити це шляхом пошуку в Інтернеті.

Мене цікавить сигналізація і не можу шукати протоколи / тощо, тому що я не знаю, що це таке, що я шукаю. Так CPU / GPU взаємодіє з відеовиходами безпосередньо (я можу легко знайти ці протоколи) або є "середній чоловік", так би мовити, і якщо так, що це таке, тип мікросхеми / тощо?


Ви можете придбати відео RAMDAC як окремі частини: ti.com.cn/cn/lit/ds/symlink/tvp3703.pdf, хоча це не означає, що він буде окремим на вашій графічній карті.
pjc50

Відповіді:


18

Зображення, що відображається на моніторі, зберігається у відео оперативній пам’яті комп'ютера на графічній карті в структурі, що називається фреймбуфер. Дані в кадрі буфера зазвичай мають 24-бітний RGB-колір, тому на дисплеї буде один байт для червоного, один для зеленого та один для синього для кожного пікселя на дисплеї, можливо, з додатковими байтами для підкладки. Дані в оперативній пам’яті відео можуть генеруватися GPU або процесором. Відео ОЗУ постійно зчитується спеціалізованим компонентом DMA на відеокарті та надсилається на монітор. Вихід сигналу на монітор - це або аналоговий сигнал (VGA), де кольорові компоненти надсилаються через цифрові аналогові перетворювачі перед виходом з карти, або цифровий сигнал у випадку DVI, HDMI або DisplayPort. Програмне забезпечення, відповідальне за це, також генерує горизонтальну та вертикальну сигнали синхронізації, а також усі відповідні затримки, тому дані зображення надсилаються на монітор лише тоді, коли вони готові до цього. У DVI та HDMI потік інформації про кольорову піксель кодується та серіалізується та передається через TMDS (мінімізований перехід диференціальної сигналізації) на монітор. DisplayPort використовує кодування 8b / 10b. Кодування служить для декількох цілей. По-перше, TMDS мінімізує переходи сигналів для зменшення викидів EMI. По-друге, і TMDS, і 8b / 10b є протоколами збалансованого постійного струму, тому конденсатори, що блокують постійний струм, можуть бути використані для усунення проблем із замиканням на землю. По-третє, 8b / 10b забезпечує достатньо високу щільність переходу, щоб забезпечити відновлення годинника на приймачі, оскільки DisplayPort не розподіляє окремий тактовий годинник. потік кольорової інформації пікселів кодується та серіалізується та надсилається через TMDS (мінімізований перехід диференціальної сигналізації) на монітор. DisplayPort використовує кодування 8b / 10b. Кодування служить для декількох цілей. По-перше, TMDS мінімізує переходи сигналів для зменшення викидів EMI. По-друге, і TMDS, і 8b / 10b є протоколами збалансованого постійного струму, тому конденсатори, що блокують постійний струм, можуть бути використані для усунення проблем із замиканням на землю. По-третє, 8b / 10b забезпечує достатньо високу щільність переходу, щоб забезпечити відновлення годинника на приймачі, оскільки DisplayPort не розподіляє окремий тактовий годинник. потік кольорової інформації пікселів кодується та серіалізується та надсилається через TMDS (мінімізований перехід диференціальної сигналізації) на монітор. DisplayPort використовує кодування 8b / 10b. Кодування служить для декількох цілей. По-перше, TMDS мінімізує переходи сигналів для зменшення викидів EMI. По-друге, і TMDS, і 8b / 10b є протоколами збалансованого постійного струму, тому конденсатори, що блокують постійний струм, можуть бути використані для усунення проблем із заземленнями. По-третє, 8b / 10b забезпечує достатньо високу щільність переходу, щоб забезпечити відновлення годинника на приймачі, оскільки DisplayPort не розподіляє окремий тактовий годинник.

Також для HDMI та DisplayPort аудіодані також надсилаються на відеокарту для передачі на монітор. Ці дані вставляються в паузи в потоці даних між відеокадрами. У цьому випадку відеокарта буде представляти собою операційну систему як аудіомобіль, а аудіодані будуть передані через DMA на карту для включення до відеоданих.

Тепер ви, мабуть, усвідомлюєте, що для дисплея 1920x1080 з 4 байтами на піксель вам потрібно лише близько 8 Мб для зберігання зображення, але оперативна пам'ять на вашому комп'ютері, ймовірно, у багато разів перевищує цей розмір. Це тому, що оперативна пам’ять відео призначена не тільки для зберігання фреймбуфера. Відео ОЗУ безпосередньо підключений до GPU, спеціального процесора, призначеного для ефективного 3D-рендерінгу та декодування відео. GPU використовує свій прямий доступ до відео оперативної пам’яті, щоб прискорити процес візуалізації. Насправді, отримання даних з основної пам'яті у відеопам'ять - це трохи вузьке місце, оскільки шина PCI, яка підключає відеокарту до процесора та основної пам'яті, значно повільніше, ніж з'єднання між графічним процесором та відео оперативною пам’яттю.


7

Різні сучасні виводи дисплея - це, по суті, послідовні бітові потоки. Бітрейт занадто високий для процесора (або, якщо він може продовжувати, він вимагає занадто багато свого часу на обробку). Частину пам'яті відкладено, щоб містити біти зображення. Виділений апаратний апарат зчитує вміст пам'яті та передає його. Ця деталь схожа на контролер DMA і насправді досить проста. Це лише невелика частина сучасного GPU, яка здебільшого стосується себе створення цього образу в пам'яті з команд GPU вищого рівня.

Пам'ять, що містить відеозображення, може бути частиною основної пам'яті (дешевою) або виділеною пам'яттю, до якої можна одночасно отримати доступ "DMA" та ЦП та / або GPU. 'DMA' повинен бути налаштований з різними параметрами, наприклад, шириною та висотою пікселів, глибиною кольору, початковим розташуванням у пам'яті тощо.

На сучасних комп’ютерах GPU - це (дуже спеціалізований) процесор, який конкурує за швидкістю основного процесора (і перевищує його на власному газоні). Це такі речі, як генерування псуїдо-3D-зображення з набору 3D-об'єктів з текстурами та джерелами світла. Це все може зробити всередині відеопам'яті GPU. Процесор просто доставляє об'єкти, текстури та джерела світла.

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


1
Це чудова інформація. Тож контролер DMA (або подібне обладнання) безпосередньо отримує доступ до відеопам'яті? А в системі з інтегрованою графікою, яка використовує системну оперативну пам’ять, вона отримує доступ до системної оперативної пам'яті безпосередньо? Вибачте за простоту моїх запитань. Я великий DIY'er, тому я схильний стрибати на речі вищого рівня з знаннями нижчого рівня. :)
Крейг Лафферті

А далі, як контролер знає, з якої адреси в оперативній пам’яті «вкрасти» кадр? Кадри / растрові карти замінюються дуже швидко і рухаються навколо, я припускаю.
Крейг Лафферті

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

Чому процесор буде сповільнений? Чи не потрібно вже обробляти відео, щоб контролер міг ним користуватися? Я зроблю ще одну здогадку і скажу, що контролер читає оперативну пам'ять знову і знову, а процесор / графічний процесор оновлює оперативну пам’ять новою інформацією про дисплей, коли щось змінилося, так, наприклад, GPU поставить мій поточний екран у його ОЗУ, і коли я переміщу курсор, він оновлює пікселі, які були змінені. Тим часом контролер зчитує оперативну пам'ять 60 або близько разів секунди (я думаю, такий тип стандартної FR).
Крейг Лафферті

1
Відео ОЗУ використовується не тільки для зберігання відображуваного зображення, він також використовується внутрішнім процесором для зберігання даних сцени, які передаються у кадрбуфер. Це може зайняти багато місця, оскільки GPU потребує доступу до детальних 3D-сіток об'єктів, а також усіх текстурних даних для їх поверхонь.
alex.forencich
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.