GPU / CPU standart bir ekran çıkışı ile nasıl iletişim kurar? (HDMI / DVI / vb.) [Kapalı]


14

Ben işlendikten sonra cpu / gpu (yaptığı ekipman ne olursa olsun) video verilerini nasıl sunuyorum ilgileniyorum.

Videonun CPU / GPU tarafından işlendiği ve daha sonra seri sinyali uygun bir ekran çıkışına dönüştüren yüksek hızlı bir seri ile entegre bir devreye gönderildiği söylendi, ancak çevrimiçi arama yaparak bunu doğrulayamıyorum.

Ben sinyalleşme ile ilgileniyorum ve ben ne aradığımı bilmiyorum çünkü protokolleri / vb arayamaz. CPU / GPU doğrudan video çıkışları ile etkileşime giriyor mu (bu protokolleri kolayca bulabilirim) ya da söyleyecek bir "orta adam" var ve eğer öyleyse, çip / vb.


Video RAMDAC'lerini ayrı parçalar olarak satın alabilirsiniz: ti.com.cn/cn/lit/ds/symlink/tvp3703.pdf , grafik kartınızda ayrı olacağı anlamına gelmez.
pjc50

Yanıtlar:


18

Monitörde görüntülenen görüntü, çerçeve kartı adı verilen bir yapıda bilgisayarınızın grafik kartındaki video RAM'inde saklanır. Çerçeve arabelleğindeki veriler genellikle 24 bit RGB renktedir, bu nedenle muhtemelen bazı ekstra dolgu baytları ile ekrandaki her piksel için kırmızı için bir bayt, yeşil için bir bayt ve bir mavi için bir bayt olacaktır. Video RAM'deki veriler GPU veya CPU tarafından üretilebilir. Video RAM, video kartındaki özel bir DMA bileşeni tarafından sürekli olarak okunur ve monitöre gönderilir. Monitöre sinyal çıkışı, karttan ayrılmadan önce renk bileşenlerinin dijitalden analog dönüştürücülere gönderildiği analog bir sinyaldir (DVI), DVI, HDMI veya DisplayPort durumunda bir dijital sinyaldir. Bundan sorumlu donanım, yatay ve dikey senkronizasyon sinyallerinin yanı sıra tüm uygun gecikmeleri de oluşturur, böylece görüntü verileri monitöre yalnızca hazır olduğunda gönderilir. DVI ve HDMI'da piksel renk bilgisi akışı kodlanır ve serileştirilir ve TMDS (geçiş minimize edilmiş diferansiyel sinyalleme) yoluyla monitöre gönderilir. DisplayPort 8b / 10b kodlaması kullanır. Kodlama birden çok amaca hizmet eder. İlk olarak, TMDS EMI emisyonlarını azaltmak için sinyal geçişlerini en aza indirir. İkincisi, hem TMDS hem de 8b / 10b DC dengeli protokollerdir, böylece DC blokaj kapasitörleri toprak döngülerindeki sorunları ortadan kaldırmak için kullanılabilir. Üçüncü olarak, 8b / 10b, DisplayPort ayrı bir saati dağıtmadığından alıcıda saat geri kazanımını sağlamak için yeterince yüksek bir geçiş yoğunluğu sağlar. piksel renk bilgisi akışı kodlanır ve serileştirilir ve TMDS (geçiş minimize edilmiş diferansiyel sinyalleme) yoluyla monitöre gönderilir. DisplayPort 8b / 10b kodlaması kullanır. Kodlama birden çok amaca hizmet eder. İlk olarak, TMDS EMI emisyonlarını azaltmak için sinyal geçişlerini en aza indirir. İkincisi, hem TMDS hem de 8b / 10b DC dengeli protokollerdir, böylece DC blokaj kapasitörleri toprak döngülerindeki sorunları ortadan kaldırmak için kullanılabilir. Üçüncü olarak, 8b / 10b, DisplayPort ayrı bir saati dağıtmadığından alıcıda saat geri kazanımını sağlamak için yeterince yüksek bir geçiş yoğunluğu sağlar. piksel renk bilgisi akışı kodlanır ve serileştirilir ve TMDS (geçiş minimize edilmiş diferansiyel sinyalleme) yoluyla monitöre gönderilir. DisplayPort 8b / 10b kodlaması kullanır. Kodlama birden çok amaca hizmet eder. İlk olarak, TMDS EMI emisyonlarını azaltmak için sinyal geçişlerini en aza indirir. İkincisi, hem TMDS hem de 8b / 10b DC dengeli protokollerdir, böylece DC blokaj kapasitörleri toprak döngülerindeki sorunları ortadan kaldırmak için kullanılabilir. Üçüncü olarak, 8b / 10b, DisplayPort ayrı bir saati dağıtmadığından alıcıda saat geri kazanımını sağlamak için yeterince yüksek bir geçiş yoğunluğu sağlar.

Ayrıca, HDMI ve DisplayPort için, monitöre iletilmek üzere grafik kartına ses verileri de gönderilir. Bu veriler, video çerçeveleri arasındaki veri akışındaki duraklamalara eklenir. Bu durumda, video kartı işletim sistemine bir ses havuzu olarak sunulacaktır ve ses verileri, video verilerine dahil edilmek üzere DMA yoluyla karta aktarılacaktır.

Şimdi, muhtemelen piksel başına 4 baytlık bir 1920x1080 ekran için, görüntüyü saklamak için sadece 8 MB'ye ihtiyacınız olduğunu, ancak bilgisayarınızdaki video RAM'in muhtemelen bu boyutun birçok katı olduğunu fark ediyorsunuz. Bunun nedeni, video RAM'in sadece çerçeve arabelleğini depolamak için tasarlanmamış olmasıdır. Video RAM, verimli 3D oluşturma ve video kod çözme için tasarlanmış özel amaçlı bir işlemci olan GPU'ya doğrudan bağlanır. GPU, oluşturma işlemini hızlandırmak için video RAM'e doğrudan erişimini kullanır. Aslında, video kartını CPU'ya bağlayan PCI veri yolu ve ana bellek GPU ile video RAM arasındaki bağlantıdan önemli ölçüde daha yavaş olduğundan, ana bellekten video belleğine veri almak biraz darboğazdır.


7

Çeşitli modern ekran çıkışları esasen seri bit akımlarıdır. Bit hızı bir işlemci için çok yüksek (veya dayanabiliyorsa işlem süresinin çok fazlasını talep edecektir). Bir parça bellek görüntünün bitlerini içerecek şekilde ayrılmıştır. Özel bir donanım, bellek içeriğini okur ve aktarır. Bu parça bir DMA kontrolörüne benzer ve aslında oldukça basittir. Modern bir GPU'nun sadece küçük bir kısmıdır, bu da çoğunlukla üst düzey GPU komutlarından bellekte bu görüntüyü oluşturmakla ilgilenir.

Video görüntüsünü içeren bellek, ana belleğin (ucuz) bir parçası olabilir veya 'DMA' ile CPU ve / veya GPU tarafından aynı anda erişilebilen ayrılmış bir bellek olabilir. 'DMA', piksel genişliği ve yüksekliği, renk derinliği, bellekteki başlangıç ​​konumu vb. Gibi çeşitli parametrelerle yapılandırılmalıdır.

Modern bilgisayarlarda GPU, ana CPU'nun hızına rakip olan (ve kendi çiminde aşan) (çok özel) bir işlemcidir. Dokular ve ışık kaynakları olan bir grup 3D nesneden psuido-3D görüntü oluşturmak gibi şeyler yapar. Tüm bunlar video belleğinde, GPU tarafından yapılabilir. CPU yalnızca nesneleri, dokuları ve ışık kaynaklarını sunar.

Video verilerini bellekten okumak ve değiştirmek oldukça basit bir işlemdir, ancak her zaman oldukça hızlı bir şekilde yapılmalıdır. Bu nedenle, bu görev özel donanıma çok uygundur ve bir CPU için uygun değildir. AFAIK, video sinyalini üretmek için CPU'nun dahil olduğu son bilgisayarlar ZX80 / 81 ve Spectrum'du. Onlarda CPU kendi işini sadece (dikey?) Geri çekilme süresi boyunca yapabilirdi.


1
Bu harika bir bilgi. DMA denetleyicisi (veya benzeri bir donanım) video belleğine doğrudan erişiyor mu? Ve sistem RAM'i kullanan entegre grafiklere sahip bir sistemde, sistem RAM'ine doğrudan erişir mi? Sorularımın sadeliği için özür dilerim. Ben büyük bir DIY'erim, bu yüzden daha düşük seviyeli bilgiye sahip daha üst düzey şeylere geçme eğilimindeyim. :)
Craig Lafferty

Ve takip etmek için kontrolör, RAM'deki hangi adresin çerçeveyi "çalması" nı nasıl bilebilir? Çerçeveler / bitmapler gerçekten hızlı bir şekilde değiştiriliyor ve sanırım etrafında hareket ediyor.
Craig Lafferty

Son yorumunuz doğru: bir çerçeve tamponunda saklanıyor ve analog video için bir RAMDAC'a aktarılıyor . Çerçeve tampon adresi sabit veya bir kontrol yazmacında belirtilmiş olabilir. Çerçeveler arasında veya sırasında veya bazı sistemlerde (Amiga) kare modlarının bir çerçevenin yarısında değiştirilmesini içeren çeşitli hileler vardır.
pjc50

İşlemci neden yavaşlasın ki? Denetleyicinin kullanabilmesi için videoyu zaten işlemek zorunda değil mi? Burada başka bir tahmin yapacağım ve denetleyicinin RAM'i tekrar tekrar okuduğunu ve CPU / GPU'nun RAM'i sadece bir şey değiştiğinde yeni ekran bilgileriyle güncellediğini söyleyeceğim, örneğin GPU mevcut ekranımı RAM ve imlecimi hareket ettirdiğimde değişen pikselleri günceller. Bu arada kontrolör RAM'i saniyede 60 kez okur (sanırım standart FR).
Craig Lafferty

1
Video RAM sadece ekran görüntüsünü saklamak için değil, aynı zamanda GPU tarafından dahili olarak çerçeve arabelleğine oluşturulan sahne verilerini saklamak için de kullanılır. GPU, yüzeylerin tüm doku verileriyle birlikte nesnelerin ayrıntılı 3D kafeslerine erişmesi gerektiğinden bu çok fazla yer kaplayabilir.
alex.forencich
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.