Eski donanımın nasıl çalıştığını açıklayarak, bunların arkasındaki "vudu" yu temizlemeye çalışacağım. Modern GPU'lar bu şekilde çalışmaz, ancak CPU-grafik kart arayüzünü taklit ederler.
tl; Dr.
80'li ve 90'lı yılların başındaki grafik yongaları / kartlar çıktıları çok hızlı bir şekilde üretmek zorunda kaldı (saat hızına göre), bu yüzden talimatları yerine getirmediler, daha ziyade sabit devreleri vardı. Gittikleri gibi verileri RAM'den emdiler, bu yüzden CPU'nun RAM'e doğru yere veri atması gerekiyordu ve grafik çipi onu toplayıp ekrana fırlattı. CPU, grafik çipinde çeşitli yapılandırma değişkenleri de ayarlayabilir.
Detaylar:
80'lerde, ev bilgisayarlarında birkaç "sabit davranışlı" aptal "grafik yongası vardı. Boru hattından geriye doğru gidersem en mantıklı olur.
CRT Monitörler
Bu monitörler analog girişlere ihtiyaç duyuyordu. Başka bir deyişle, daha yüksek voltaj = daha parlak çıkış. Renkli monitörlerde 3 kanal vardı (Kırmızı, Yeşil ve Mavi (veya örn. YUV veya YIQ ) ). Bu voltajlar bir elektron ışınının gücünü ayarladı. Basit şeyler.
CRT, elektron ışınını soldan sağa saptırmak için kelimenin tam anlamıyla kullanılan elektromıknatısları izler, daha sonra tekrar biraz daha aşağıdan başlar ve sola sağa vb. Yukarıdan aşağıya doğru gider. Ardından başa dönün ve tekrarlayın.
DAC
Grafik yongalarında "dijital-analog" dönüştürücü vardı (çok yaygın bir elektrik bileşeni ). Bu, dijital değerleri (örneğin 2, 4 veya 8 bit), monitöre sağlanabilecek gerilimlere dönüştürdü.
Tarama
Grafik yongaları, elektron ışını ile "yetişmek" zorunda kaldı, doğru değeri DAC'ye gönderiyordu ve böylece ilgili voltajı doğru zamanda verebiliyordu. (Bunun içine girmeyeceğim saatler kullanıldı.) Buradaki talimatları uygulamak için zaman yoktu. Her şey kabloluymış ve az sayıda, sabit bir saat döngüsü aldı.
Video modları
Erken cipsler çok hızlı değildi ve sınırlı RAM'leri vardı. Bu nedenle, arka plan rengi, yazı tipi seçimi, imleç konumu ve boyutu, palet seçimi ve sprite gibi çeşitli modların ve diğer yapılandırma parametrelerinin seçimine izin vermeye meyilliydiler. Çoğu yüksek çözünürlüklü "sadece karakter" modu ve daha düşük çözünürlüklü piksel piksel modları sundu.
Dikkate değer üç VGA modu:
- 16 (ish) renkli 80x25 metin modu (bu aslında bir BIOS yükleme ekranının nasıl göründüğüdür)
- 16 renkli 640x480 yüksek çözünürlüklü modu
- 256 renkli 320x200 yüksek renk modu
Boyama pikselleri
Çok kabaca, grafik sistemine bağlı olarak, boru hattı şöyle bir şeye benziyor:
Geçerli piksel konumu ⇒ İşlem karakteri / yazı tipi / sprite / piksel / yapılandırma verileri ⇒ Piksel değerleri ⇒ Palet ⇒ DAC
Birkaç RAM konumundan okuma ihtiyacı duyan bu 2. adım. Örneğin, Metin Modunda 1 baytlık bir karakter aranacaktı. Bu yazı tipi tablosuna bir dizin oluşturur. Bu tablodan biraz piksel aranacak ve bu pikselin ön plan mı yoksa arka plan rengi mi olacağı belirtilecektir. Bu ön / arka plan rengini elde etmek için üçüncü bir bayt alınacaktır. Sonuçta, 3 byte RAM'den okunur.
Fakat bu "akış" hemen hemen tarif edilen akışa tam olarak benzeyen, basit bir sabit devreler kümesidir.
Hafıza veriyolu arayüzü
Intel işlemcileri IO veri yolu olarak adlandırılan sinir bozucu eski bir şeye sahipler ama önemli değil bu yüzden orada yokmuş gibi yapacağım.
CPU'lar, RAM veri yolunda bir READ veya WRITE talebi ve bir adres yayınlayarak RAM'e erişir. Geçerli adreslerin çoğu RAM'den yanıt almasına rağmen, belirli aralıklar bunun yerine aygıtlar tarafından gerçekleştirilir . Örneğin, belirli bir adresten READing size klavye tuşlarına ilişkin bilgi verebilir.
"Grafik aralığının" doğru kısımlarına yazarak hem ekran içeriğini yazabilir hem de grafik kartı yapılandırma parametrelerini ayarlayabilirsiniz. "Aptal" grafik yongası herhangi bir talimatı yerine getirmiyor. Sadece devrelenmeye devam ediyor, devreleri boyunca birkaç bayt akıyor ve gerilimleri veriyor.
VGA ile, aslında RAM var üzerinde size grafik kartını yapılandırabilirsiniz çünkü grafik RAM yazılır alır önce bazı durumlarda performansı artırmak için, veri ön işlemeye, grafik kartı.
VESA
VGA'dan sonra ekran kartları daha yüksek çözünürlükler ve iyi renk derinliği sunarken aynı prensiplerle çalıştı. Birçok modern grafik kartı, önyükleme sırasında daha yüksek çözünürlük elde etmek için hala bununla uyumluluk sağlıyor. Ancak VGA, pratik olarak her kartın taklit edeceği "kusursuz" bir kart.