Çerçeve arabelleği - Framebuffer

Sun TGX Çerçeve Tamponu

Bir çerçeve arabelleği ( çerçeve arabelleği veya bazen çerçeve deposu ), bir video görüntüsünü çalıştıran bir bit eşlem içeren rastgele erişimli belleğin (RAM) bir parçasıdır . Tam bir video karesindeki tüm pikselleri temsil eden verileri içeren bir bellek arabelleğidir . Modern video kartları , çekirdeklerinde çerçeve arabelleği devresi içerir. Bu devre, bir bellek içi bit eşlemi bilgisayar monitöründe görüntülenebilen bir video sinyaline dönüştürür .

Bilgi işlemde , ekran arabelleği , bilgisayar ekranında gösterilecek içeriğin temsili için bir bilgisayar uygulaması tarafından kullanılan bilgisayar belleğinin bir parçasıdır . Ekran tampon olarak da adlandırılır edilebilir bir video tampon , rejenerasyon tamponu ya da rejenerasyon tamponu yerde yapılmaktadır. Ekran arabellekleri video belleğinden ayırt edilmelidir . Bu amaçla, ekran dışı arabellek terimi de kullanılır.

Tampondaki bilgiler tipik olarak ekranda gösterilecek her piksel için renk değerlerinden oluşur . Renk değerleri genellikle 1-bit ikili (monokrom), 4-bit paletli , 8-bit paletli, 16-bit yüksek renkli ve 24-bit gerçek renk formatlarında saklanır . Ek bir alfa kanalı bazen piksel saydamlığı hakkındaki bilgileri tutmak için kullanılır. Çerçeve arabelleği için gereken toplam bellek miktarı , çıkış sinyalinin çözünürlüğüne ve renk derinliğine veya palet boyutuna bağlıdır.

Tarih

1951'de SWAC Williams tüplü CRT'deki bellek kalıbı

Bilgisayar araştırmacıları uzun zamandır bir çerçeve arabelleğinin teorik avantajlarını tartışmışlardı, ancak ekonomik olarak uygulanabilir bir maliyetle yeterli belleğe sahip bir makine üretemediler . 1947'de Manchester Baby bilgisayarı , bir katot ışın tüpü (CRT) belleğinde 1024 bit depolamak ve ikinci bir CRT'de görüntülemek için bir Williams tüpü , daha sonra Williams-Kilburn tüpü kullandı . Diğer araştırma laboratuvarları, 1950'de MIT Lincoln Laboratuvarı'nın 4096'lık bir ekrana ulaşmasıyla bu teknikleri araştırıyorlardı .

1960'ların sonlarında, bir davul hafızası ve bir televizyon monitörü kullanan Brookhaven RAster Ekranı (BRAD) adı verilen renkli taramalı bir ekran uygulandı . 1969'da Bell Laboratuarlarından A. Michael Noll, manyetik çekirdekli bellek kullanarak bir çerçeve arabelleğine sahip taranmış bir ekran uyguladı . Daha sonra, Bell Labs sistemi, standart bir renkli TV monitöründe üç bitlik bir renk derinliğine sahip bir görüntüyü gösterecek şekilde genişletildi.

1970'lerin başında, MOS bellek ( metal-oksit-yarı iletken bellek) tümleşik devre yongalarının, özellikle en az 1 kb belleğe sahip yüksek yoğunluklu DRAM (dinamik rastgele erişimli bellek ) yongalarının geliştirilmesi , ilk kez, standart bir video görüntüsünü tutabilen çerçeve arabelleklerine sahip bir dijital bellek sistemi. Bu gelişmesine yol açtı SuperPaint sisteme Richard Shoup de Xerox PARC 1972 Shoup erken dijital video yakalama sistemi oluşturmak için SuperPaint kareyazmaç kullanmayı başardı içinde. Shoup, çıkış sinyalini giriş sinyaliyle senkronize ederek, kaydırılırken her veri pikselinin üzerine yazabildi. Shoup, renk tablolarını kullanarak çıkış sinyalini değiştirmeyi de denedi. Bu renk tabloları, SuperPaint sisteminin içerdiği sınırlı 8 bitlik veri aralığının dışında çok çeşitli renkler üretmesine izin verdi. Bu şema daha sonra bilgisayar çerçeve arabelleklerinde yaygın hale gelecektir.  

1974'te Evans & Sutherland , ilk ticari çerçeve arabelleği olan Picture System'ı piyasaya sürdü ve yaklaşık 15.000 dolara mal oldu. 8-bit gri tonlamada 512 x 512 piksele kadar çözünürlük üretme kapasitesine sahipti ve kendi çerçeve arabelleğini oluşturacak kaynaklara sahip olmayan grafik araştırmacıları için bir nimet oldu. New York Teknoloji Enstitüsü sonradan Evans & Sutherland framebuffers üçünü kullanarak ilk 24 bit renk sistemini oluşturacak. Her çerçeve arabelleği, üç cihazı tek olarak kontrol eden Digital Equipment Corporation PDP 11/04 mini bilgisayarı ile bir RGB renk çıkışına (biri kırmızı, biri yeşil ve biri mavi için) bağlandı .

1975 yılında, İngiliz şirketi Quantel ilk ticari tam renkli yayın karetamponu, Quantel DFS 3000. İlk TV kapsama kullanılmıştır üretti 1976 Montreal Olimpiyatları'nda bir oluşturmak için resim içinde resim Olimpiyat yanan meşale ait girinti ederken resmin geri kalanı koşucunun stadyuma girişini gösteriyordu.

Tümleşik devre teknolojisinin hızlı gelişimi, 1970'lerin sonundaki ev bilgisayarlarının çoğunun düşük renk derinliğine sahip çerçeve arabellekleri içermesini mümkün kıldı. Bugün, grafik yetenekleri olan hemen hemen tüm bilgisayarlar, video sinyalini oluşturmak için bir çerçeve arabelleği kullanır. 1980'lerde yaratılan Amiga bilgisayarları, grafik performansına özel tasarım dikkatine sahipti ve 4096 renk görüntüleyebilen benzersiz bir Tut ve Değiştir çerçeve arabelleği içeriyordu .

Çerçeve arabellekler ayrıca 1980'ler boyunca üst düzey iş istasyonlarında ve arcade sistem kartlarında popüler oldu . SGI , Sun Microsystems , HP , DEC ve IBM , bu dönemde iş istasyonu bilgisayarları için çerçeve arabellekleri yayınladı. Bu çerçeve arabellekleri genellikle çoğu ev bilgisayarında bulunandan çok daha yüksek kalitedeydi ve düzenli olarak televizyon, baskı, bilgisayar modelleme ve 3D grafiklerde kullanılıyordu. Framebuffer'lar ayrıca Sega tarafından ev bilgisayarlarından daha yüksek kalitede olan üst düzey arcade panoları için de kullanıldı .

Ekran modları

Bir Sun cgsix çerçeve arabelleği

Kişisel ve ev bilgisayarlarında kullanılan çerçeve arabellekleri, genellikle çerçeve arabelleğinin çalışabileceği tanımlanmış mod setlerine sahipti . Bu modlar, donanımı farklı çözünürlükler, renk derinlikleri, bellek düzenleri ve yenileme hızı zamanlamaları verecek şekilde yeniden yapılandırır .

Unix makineleri ve işletim sistemleri dünyasında , bu tür kolaylıklar genellikle donanım ayarlarının doğrudan manipüle edilmesi lehine kaçınıldı. Bu manipülasyon, herhangi bir çözünürlük, renk derinliği ve yenileme hızının elde edilebildiği için çok daha esnekti - yalnızca çerçeve arabelleği için kullanılabilir bellekle sınırlıydı.

Bu yöntemin talihsiz bir yan etkisi, görüntüleme cihazının yeteneklerinin ötesine geçebilmesiydi. Bazı durumlarda bu, ekranda donanım hasarına neden oldu. Daha yaygın olarak, basitçe bozuk ve kullanılamaz çıktı üretti. Modern CRT monitörleri, koruma devrelerinin tanıtılmasıyla bu sorunu giderir. Görüntü modu değiştirildiğinde, monitör yeni yenileme frekansında bir sinyal kilidi elde etmeye çalışır. Monitör bir sinyal kilidi alamazsa veya sinyal tasarım sınırlamalarının dışındaysa, monitör çerçeve arabelleği sinyalini yok sayar ve muhtemelen kullanıcıya bir hata mesajı verir.

LCD monitörler, benzer koruma devrelerini içerme eğilimindedir, ancak farklı nedenlerle. LCD'nin ekran sinyalini dijital olarak örneklemesi gerektiğinden (böylece bir elektron ışınını taklit eder), aralık dışında olan herhangi bir sinyal monitörde fiziksel olarak görüntülenemez.

Renk paleti

Çerçeve arabellekleri geleneksel olarak çok çeşitli renk modlarını desteklemiştir. Bellek harcaması nedeniyle, çoğu eski çerçeve arabelleği 1 bit (piksel başına 2 renk), 2 bit (4 renk), 4 bit (16 renk) veya 8 bit (256 renk) renk derinlikleri kullandı. . Bu kadar küçük renk derinlikleriyle ilgili sorun, tam bir renk yelpazesinin üretilememesidir. Bu sorunun çözümü , çerçeve arabelleğine bir arama tablosu ekleyen indekslenmiş renkti. Çerçeve ara belleğinde saklanan her renk, bir renk indeksi görevi görür. Arama tablosu, sınırlı sayıda farklı renge sahip bir palet görevi görürken, geri kalanı bir dizin tablosu olarak kullanılır.

İşte tipik bir dizine alınmış 256 renkli görüntü ve kendi paleti (renk örneklerinin bir dikdörtgeni olarak gösterilmiştir):

Uyarlanabilir 8 bit palet örneği image.png   Uyarlanabilir 8 bit palet.png

Bazı tasarımlarda, çalışma sırasında LUT'ye veri yazmak (veya mevcut paletler arasında geçiş yapmak), resmi kendi paletleriyle yatay çubuklara bölmek ve böylece çok daha geniş bir palete sahip bir görüntü oluşturmak da mümkündü. Örneğin, dış mekanda çekilmiş bir fotoğrafı görüntülerken, resim dört çubuğa bölünebilir, üstteki çubuk gökyüzü tonlarına, sonraki yeşillik tonlarına, sonraki ten ve giysi tonlarına ve alttaki zemin renklerine vurgu yapar. Bu, her paletin üst üste binen renklere sahip olmasını gerektirdi, ancak dikkatli bir şekilde yapıldığında büyük esneklik sağlandı.

Bellek erişimi

Çerçeve arabelleklerine genellikle doğrudan CPU bellek alanına bir bellek eşleme yoluyla erişilirken, erişilebilecekleri tek yöntem bu değildir. Çerçeve arabellekleri, belleğe erişmek için kullanılan yöntemlerde çok çeşitlidir. En yaygın olanlardan bazıları şunlardır:

  • Tüm çerçeve arabelleğini belirli bir bellek aralığına eşleme.
  • Her pikseli, piksel aralığını veya palet girişini ayarlamak için bağlantı noktası komutları.
  • Çerçeve arabelleği belleğinden daha küçük bir bellek aralığını eşleme, ardından gerektiğinde sıra değiştirme .

Çerçeve arabelleği organizasyonu paketlenmiş piksel veya düzlemsel olabilir . Çerçeve arabelleği, adreslenebilir tüm noktalar olabilir veya nasıl güncellenebileceğine ilişkin kısıtlamalara sahip olabilir.

ekran kartındaki RAM

Video kartlarında her zaman belirli bir miktarda RAM bulunur. Bu RAM, görüntü verilerinin bit eşleminin görüntülenmek üzere "arabelleğe alındığı" yerdir. Çerçeve arabelleği terimi , bu RAM'e atıfta bulunulurken sıklıkla birbirinin yerine kullanılır.

CPU, görüntü güncellemelerini video kartına gönderir. Karttaki video işlemcisi, ekran görüntüsünün bir resmini oluşturur ve RAM'de büyük bir bitmap olarak çerçeve arabelleğinde saklar. RAM'deki bitmap, ekran görüntüsünü sürekli yenilemek için kart tarafından kullanılır.

Sanal çerçeve arabellekleri

Çoğu sistem, genellikle uyumluluk nedenleriyle, bir çerçeve arabelleği aygıtının işlevini taklit etmeye çalışır. En yaygın iki sanal çerçeve arabelleği, Linux çerçeve arabelleği aygıtı (fbdev) ve X Sanal Çerçeve Tamponudur ( Xvfb ). Xvfb, X'i bir grafik çerçeve arabelleği olmadan çalıştırmak için bir yöntem sağlamak üzere X Pencere Sistemi dağıtımına eklendi . Linux çerçeve arabelleği aygıtı, temel çerçeve arabelleğine erişmek için fiziksel yöntemi, programların erişmesi kolay, garantili bir bellek haritasına soyutlamak için geliştirildi. Programların ayrık bellek haritaları olan veya sıra değiştirme gerektiren sistemlerle uğraşması gerekmediğinden, bu taşınabilirliği artırır .

Sayfa çevirme

Bir çerçeve arabelleği, iki çerçeve değerinde video verisini depolamak için yeterli belleğe sahip olarak tasarlanabilir. Genellikle çift ​​arabelleğe alma veya daha özel olarak sayfa çevirme olarak bilinen bir teknikte , çerçeve arabelleği geçerli çerçeveyi görüntülemek için belleğinin yarısını kullanır. Bu bellek görüntülenirken, belleğin diğer yarısı bir sonraki kare için verilerle doldurulur. İkincil arabellek doldurulduğunda, çerçeve arabelleğine bunun yerine ikincil arabelleği görüntülemesi talimatı verilir. Birincil arabellek ikincil arabellek olur ve ikincil arabellek birincil olur. Bu geçiş, eski çerçevenin yarısı ile yeni çerçevenin yarısının birlikte gösterildiği yerde ekranın yırtılmasını önlemek için genellikle dikey boşluk aralığından sonra yapılır .

Sayfa çevirme, PC oyun programcıları tarafından kullanılan standart bir teknik haline geldi .

Grafik hızlandırıcılar

Daha iyi grafiklere olan talep arttıkça, donanım üreticileri çerçeve arabelleğini doldurmak için gereken CPU süresini azaltmanın bir yolunu buldular. Buna genellikle grafik hızlandırma denir . Ortak grafik çizim komutları (çoğu geometrik), grafik hızlandırıcıya ham formlarında gönderilir. Hızlandırıcı daha sonra komutun sonuçlarını çerçeve arabelleğine rasterleştirir . Bu yöntem, CPU'yu başka işler yapmak için serbest bırakır.

İlk hızlandırıcılar, 2B GUI sistemlerinin performansını iyileştirmeye odaklandı . Bu 2B yetenekleri korurken, çoğu modern hızlandırıcı, gerçek zamanlı olarak 3B görüntüler üretmeye odaklanır. Yaygın bir tasarım, alınan komutları hızlandırıcının grafik işleme birimi (GPU) talimatlarına çevirmek için grafik sürücüsüyle arabirim oluşturan OpenGL veya Direct3D gibi bir grafik kitaplığı kullanır . GPU, rasterleştirilmiş sonuçları hesaplamak için bu talimatları kullanır ve sonuçlar çerçeve arabelleğine biraz kırpılır . Çerçeve arabelleğinin sinyali daha sonra yerleşik video bindirme cihazları (genellikle çerçeve arabelleğinin verilerini değiştirmeden fare imlecini oluşturmak için kullanılır) ve çıkış sinyalini değiştirerek üretilen herhangi bir son özel efektle birlikte üretilir. Bu tür son özel efektlere bir örnek , 3dfx Voodoo kartları tarafından kullanılan uzamsal kenar yumuşatma tekniğiydi . Bu kartlar, çıktı sinyaline, rasterleştirilmiş grafiklerin örtüşmesini çok daha az belirgin hale getiren hafif bir bulanıklık ekler.

Bir zamanlar aşağıdakiler dahil birçok grafik hızlandırıcı üreticisi vardı: 3dfx Interactive ; ATI ; Herkül ; trident ; Nvidia ; yarıçap ; S3 Grafikleri ; SiS ve Silicon Graphics . 2015 itibariyle, x86 tabanlı sistemler için grafik hızlandırıcı pazarına Nvidia (2002'de 3dfx satın alındı), AMD (2006'da ATI'yi aldı) ve Intel (şu anda ayrı video kartları yerine yalnızca tümleşik GPU'lar üretiyor ) hakimdir .

karşılaştırmalar

Bir çerçeve arabelleğiyle, elektron ışını (görüntüleme teknolojisi bir tane kullanıyorsa), bir televizyonun yayın sinyali oluşturma şekli olan bir tarama taraması yapması için komut verilir . Ekranda bu şekilde görüntülenen her nokta için renk bilgisi, tarama sırasında doğrudan çerçeve arabelleğinden çekilir ve bir dizi ayrık resim öğesi, yani pikseller oluşturulur.

Çerçeve arabellekleri, raster grafiklerin ortaya çıkmasından önce yaygın olan vektör görüntülerinden (ve dolayısıyla çerçeve arabelleği kavramından) önemli ölçüde farklıdır . Bir vektör gösterimi ile, yalnızca grafik ilkellerinin tepe noktaları saklanır. Elektron ışın çıkışı ekranın daha sonra bu noktalar arasında alan boyunca bir çizgi takip, tepe tepe noktasından taşımak için kumanda edilir.

Benzer şekilde, çerçeve arabellekleri, bir arabelleğin tek tek pikseller için değil, karakterler için kodları tuttuğu erken metin modu ekranlarında kullanılan teknolojiden farklıdır . Video görüntüleme cihazı, çerçeve arabelleğiyle aynı tarama taramasını gerçekleştirir, ancak ışını yönlendirirken arabellekteki her karakterin piksellerini üretir.

Ayrıca bakınız

Referanslar

Dış bağlantılar