Ekran sürücüm bu kadar çok veriyi nasıl işlemektedir?


61

Sadece hızlı hesaplamalar yaptım:

Benim MacBook ben çözünürlüğe sahip 2560x1440 ile çarpılır 24 Bit elde ederiz renkler için 11.05MB tek resim veya için 663MB saniyede 60 fps .

Sanırım biraz sıkıştırma var, ancak dokunmatik yüzeyim üzerinde üç parmağımla hareket ettiğimde oldukça rastlantısal oluyor, ekranda bir sonraki ne oluyor ve hemen hemen her piksel değişiyor. Hemen hemen her etkileşimde olduğu gibi.

Lütfen hesaplamalarımın yanlış olup olmadığını ve bu verilerin grafik kartımdan ekranıma nasıl aktarıldığını açıklayın. Grafik kartım ve ekranım arasındaki otobüsler ne kadar geniş? Belki bir özet olarak bir ekranın pikselleri nasıl sakladığını açıklayınız. Vardiya kayıtları? Önbellek?


7
“Belki de ekranın pikselleri nasıl sakladığını kısaca anlatalım?” Ekran aslında piksel verilerini kaydetmiyor, hepsi grafik kartındaki RAM (ya da tümleşik grafikler için sistem RAM'i). RAM kolayca birkaç GB / s bant genişliğine sahiptir. Çerçeveler bir protokolün ardından ekrana gönderilir, böylece veriler görüntüleme için gerekli olduğu şekilde kullanılabilir.
ks0ze,

3
Neden sıkıştırma olduğunu düşünüyorsun? Veriler sıkıştırılamaz olduğunda ne olacağını düşünüyorsunuz? Ekranın geride kaldığını mı düşünüyorsun?
Mehrdad

3
@Aloloom: Ah, anlıyorum. Kayıplı sıkıştırma, tek yönlü olabilir, evet. :) Kayıpsız olduğunu düşündüğünü sanıyordum!
Mehrdad

2
@ ks0ze bazı yeni paneller gönderildikleri son ekranı saklar. Önbelleğe almak, GPU'dan saniyede 60 kez statik bir görüntü pompalamaktan daha az güç harcar. anandtech.com/show/7208/understanding-panel-self-refresh
Dan Neely

2
Modern dizüstü bilgisayar ekranlarında hala LVDS kullanılıyor mu? Yarım düzine yıl önce GPU şirketleri, VGA ile (şu anki nesil GPU'ların yerel üretiminden çıkan) gömülü vitrin lehine çıkarmayı planlıyorlardı.
Dan Neely

Yanıtlar:


70

Hesaplamaların özü doğru. 1440p60Hz sinyal için, boşluk süresi için de izin verdiğinizde (görüntü çıktısında görünmeyen piksel sınırı) 5.8Gbps veri hızına sahip olursunuz.

HDMI / DVI için, bir 10 / 8b kodlama kullanılır, yani etkin bir şekilde piksel başına 24 bit renk verisi söylemenize rağmen, veri kodlanırken ve protokol kontrol kelimeleri eklendiğinde aslında 30 bit gönderilir. Hiçbir sıkıştırma yapılmaz, ham veri gönderilir, bu nedenle, 7.25Gbps veri bant genişliğine ihtiyaç duyduğunuz anlamına gelir .

Yine HDMI / DVI’ye bakıyor. Veri aktarımı için "TDMS" sinyal standardını kullanır. HDMI V1.2 standardı , Tek Bağlantı için maksimum 4,9 Gb / sn (3 seri veri hattı + 1 saat satırı) veya Çift Bağlantı DVI olması durumunda en fazla 9,8 Gbps (6 seri veri hattı) anlamına gelir. ). Bu yüzden Dual-Link DVI ile 1440p60 yapmak için yeterli bir bant genişliği var, ancak bir HDMI V1.2 ile değil.

HDMI V1.3 standardında (çoğu cihaz aslında 1.3 ile aynı bant genişliğine sahip olan V1.4a'ya atlandı), bant genişliği 1440p60'ı destekleyen 10 Gb / sn'ye iki katına çıkarıldı ve ayrıca 30Hz'de (2160p30) UHD için yeterli bant genişliği elde edildi.

Başka bir örnek olarak DisplayPort, her biri akış başına 2.16Gbps ( V1.1'de ) kapasitesine sahip (seri kodlama için) 4 seri veri akışına sahiptir , böylece V1.1 bağlantısıyla 1440p60'ı tüm 4 akışta kolayca yapabilirsiniz. Ayrıca UHD @ 60Hz için izin veren 4.32Gbps / akışa iki katına çıkan daha yeni bir standart olan V1.2'yi piyasaya sürdüler . Hala 6.4Gbps / stream'a daha da itdikleri yeni bir sürüm var .


Başlangıçta bu rakamlar kulağa çok hoş geliyor ama USB 3.0'ı düşündüğünüzde aslında pek bir şey yok. Bu, sadece tek bir kablo üzerinden 5Gbps veri hızıyla piyasaya sürüldü (aslında iki, biri TX, biri RX, ancak kullanıyorum). Bugünlerde grafik kartınızın dahili olarak kullandığı PCIe, tek bir diferansiyel çifti üzerinden 8 Gbps hızında çalışıyor, bu nedenle harici veri arayüzlerinin yakalaması şaşırtıcı değil.


Fakat soru devam ediyor, nasıl yapılır? VGA'yı düşündüğünüzde, analog formatta gönderilen R, G ve B verileri için tek tellerden oluşur. Kitlesel (yapabilecekleriniz söyledikten onlarla ile itmek ne sınırlar, böylece biz gürültüye son derece yatkın olduğunu bildiğimiz Analog ve DAC / ADC den verim de, sınırlı zorlukla eğer şanslıysanız VGA üzerinden 1440p60Hz do).

Ancak modern standartlarda, gürültüye karşı daha fazla bağışık olan dijital standartlar kullanıyoruz (aralarındaki her değerden ziyade sadece yüksek veya düşük ayırmanız gerekir) ve ayrıca analog ve dijital arasında dönüşüm ihtiyacını ortadan kaldırıyorsunuz.

Ayrıca, tek bir uçtan farklı standartlar kullanmanın ortaya çıkması önemli ölçüde yardımcı olur çünkü artık tek bir teli bazı eşik ile karşılaştırmak yerine iki kablo arasındaki değeri (+ ve fark = 1, -ve fark = 0) karşılaştırıyorsunuz. Bu, zayıflama sorununun daha az olduğu anlamına gelir çünkü hem kabloları eşit olarak etkiler, hem de orta nokta voltajını azaltır - "göz" (voltaj farkı) daha da küçülür; sadece 100mV veya daha düşük ise. Sinyal bir kez zayıfladığında, tek uçlu sinyaller eşik değerinizin altına düşebilir ve hala 1V veya daha büyük bir genliğe sahip olsa bile ayırt edilemez hale gelebilir.

Paralel bağlantı üzerinden bir seri bağlantı kullanarak, daha hızlı veri oranlarına gidebiliriz çünkü çarpıklık bir sorun olmaktan çıkar. 32bit genişliğindeki paralel veriyolunda, 32 faz uzunluğunun ve yayılma özelliklerinin mükemmel bir şekilde eşleşmesi gerekir, bu sinyallerin birbirlerinden ayrılmaması (eğriltme) için. Seri bir bağlantıda yalnızca tek bir kablonuz vardır, bu nedenle eğriltme olamaz.


TL; DR Veriler, hesapladığınız tam bit hızında (birkaç Gbps), sıkıştırma olmadan gönderilir. Serileştirilmiş dijital bağlantıların diferansiyel çiftler üzerindeki modern sinyal teknikleri bunu mümkün kılar.


Ayrıca, bazı HDMI ekranların, görüntüyü elde etmek için 2 HDMI 1.2v bağlantısı kullandığını ve etkin bir şekilde ekranı 2'ye bölediğini düşünüyorum.
Ismael Miguel

5
Yanıt 5GHz, aynı anda çok sayıda transistörün aynı anda geçiş yapması ve büyük miktarda ısı üretmesi nedeniyle tüm CPU'ların erimeye başladığı noktadır . 5GHz'in her şey için en yüksek saat olduğu anlamına gelmez , ısınmaya başlar (ve hangi malzemeyi kullanırsınız - silikon her zaman en iyisi değildir). Aklıma gelen en iyi örnek, dört ön uçtan her birinin 80GHz'de kenetlenen bir İndium Phosphide örnekleyicisine sahip olduğu Keysight Infinnium DSAX96204Q! Ama bu örnekleyicide sadece birkaç düzine transistör var ve birkaç watt yakıyor (modern CPU'ların milyarlarca var )
Sam

4
340MHz, saat hızı olacaktır, veri hızı (örneğin TDMS'de), her saat döngüsünde bir kabloya 10 bit gönderilecek şekilde seri hale getirilmiştir - böylece bir 340MHz saat 3.4Gbps üretecektir. Sadece bu seri veri hızlarında çalışan video IC'lerin çevresinde bulunan kablolar ve (de) seri hale getirme (SERDES) donanımıdır. SERDES donanımından sonra, dahili olarak daha düşük saat hızında geri koşan paralel bir veri yolu var. SERDES blokları çok hızlı çalışabilir - PCIe şerit başına 8 Gbps'dir, bu nedenle SERDES blokları 4 GHz'de çalışır (bitler için her iki saat kenarını kullanarak - DDR).
Tom Carpenter,

1
Bunu tespit etmek kolay olduğu için 8b / 10b hata reddini geliştirir geçişler daha devletlerde hızlı sinyallerde. Bu kodlama, ardışık olanlar veya sıfırlar süresinin çok uzun olmayacağını garanti eder.
pjc50

1
@curiousdannii Bu ilginç bir döngü değil mi. İlk önce seri olarak (örneğin, UART) çok yavaş olan (en fazla 115kbps diyelim) başladık. Daha sonra yaklaşık 66MHz'de 16bit, yani 1Gbps veya üzeri olan IDE gibi paralel otobüslere gittik. Sonra seri haline döndük, çünkü diferansiyel otobüslerle çok hızlı gidebileceğiz. Fakat şimdi seri yeniden yeterince hızlı değil, bu yüzden bir tür paralel seri ile devam ediyoruz - temel olarak tamamen ayrı ayrı ele alınabilen ayrı seri veri yollarının çoklu şeritleri ve daha sonra şerit eğrileri için herhangi bir şerit FIFO'larla düzeltildi.
Tom Carpenter,

19

Modern bilgisayarlar şaşırtıcı derecede hızlı. İnsanlar, saniyede milyarlarca aritmetik işlem yapıldığının farkında olmadan HD 30fps videolarını mutlu bir şekilde yükleyecekler. Oyuncular bunun biraz daha farkında olma eğilimindedir; Bir GTX 1060 size 4.4 TFLOPS verecek ( saniyede trilyon kayan nokta işlemleri).

Lütfen hesaplamalarımın yanlış olup olmadığını ve bu verilerin grafik kartımdan ekranıma nasıl aktarıldığını açıklayın.

Grafik kartım ve ekranım arasındaki otobüsler ne kadar geniş?

Başka bir cevap, HDMI, DisplayLink vb. Çoklu gigabit niteliğini ele aldı.

Belki bir özet olarak bir ekranın pikselleri nasıl sakladığını açıklayınız. Vardiya kayıtları? Önbellek?

Ekranın kendisi teoride görüntü verisi içermiyor.

(Bazı ekranlar, özellikle televizyonlar, görüntü işlemeyi uygulamak için bir veya iki çerçeve kaydeder. Bu, gecikmeyi arttırır ve oyuncularla popüler değildir.)

Bir bilgisayarın grafik alt sistemi, pikselleri sıradan DRAM'de saklar. Genelde her şeyi işlemciden her karede yeniden çizmez, ancak işlevsellikten bazılarını özel alt sistemlere ve bir besteciye verir . Bir besteci, örneğin masaüstündeki her pencerenin ayrı bir piksel seti olarak saklanmasına izin verecek ve daha sonra özel donanım tarafından hareket ettirilebilecek, kaydırılabilecek veya yakınlaştırılabilecek. Bu, mobil cihazlarda gezinme ile oldukça belirginleşir; önceden hesaplanmış piksellerden "ekran dışı" olana kadar kısa bir süre geçebilirsiniz ve yazılım, bestecinin arabelleğine biraz daha durmak ve bunları yapmak zorunda kalır.

Oyun olan her çerçeve çizilir ve literatürde bol bir sahne inşa şekline var. Bu, bir sonraki çerçeve farklı bir tampon içine çekilirken grafik kartı üzerinde bir çerçeve içine yerleştirilir.

Video kod çözme genellikle adanmış donanıma da verilir, özellikle H.264.


11

Ekran kartı ve LCD panel arasındaki bağlantı , genellikle "şerit" olarak adlandırılan TMDS sinyalini kullanarak birkaç yüksek hızlı diferansiyel çift üzerinde taşınır . Tipik olarak dört şerit kullanılır; bu nedenle, otobüsün 4 bit genişliğinde olduğu söylenebilir. Daha fazla ayrıntı için bir yığın değiştirme cevabı var .

Her LCD panel modeli genellikle birkaç arabirim enkarnasyonuyla üretilir, bu nedenle kırık bir paneli değiştirmeye çalışırken dikkatli olmak ve soneklere bakmak gerekir. Çoğu modern dijital bağlantı (HDMI 1.4), şerit başına 10.2 Gb / s veya yalnızca 2,5 Gb / s'dir. Hesaplamalarınızda (663 MBps), şerit başına 1,2 Gbps'ye (4 şerit varsayarak) kadar gelir (ki bu çok fazla değildir (örneğin SATA3'ün 6Gbps'i vardır)).

LCD panellerde EKLEME. Aktif matris LCD, çerçeve görüntüsünü (piksel verisi) “Twisted Nematic Cells” (film polarizasyonunu kontrol eden) ile ilişkili kapasitörlerde depolamaya çalışır. Sorun, analog saklama kapaklarının boyutunun, depolama süresi ve piksel değiştirme hızı arasında bir denge olması gerektiğidir. Bu yüzden büyük yapılamaz, depolanmış potansiyeli hızla kaybeder ve bu nedenle periyodik yenileme gerektirir . Her piksel hücresi bir transistör ("aktif" element) ile veri ve adres hatlarına bağlanır, bu Tomshardware makalesine bakın . LCD sürücü denetleyicisi verileri ve adres çizgilerini satır satır sıralı olarak mulipleksler ve böylece görüntülenen görüntüyü korur. Görüntünün kendisi, grafik denetleyicisinin içindeki bir çerçeve arabelleğinde (RAM) saklanır.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.