Dinamik Rastgele Erişimli Bellek (Dynamic Random Access Memory), dinamik rastgele erişimli bellek bir tümleşik devre içinde her bir veri bitini ayrı bir kapasitör içinde saklayan Rastgele Erişimli Bellek türüdür. Kapasitörler yapıları gereği bir süre sonra boşalacağından yenileme/tazeleme (refresh) devresine ihtiyaçları vardır. Bu yenileme ihtiyacından dolayı DRAM, SRAM (Statik Rastgele Erişimli Bellek) ve diğer statik belleklerin zıddı durumundadır. DRAM'in SRAM üzerindeki avantajı onun yapısal basitliğidir: 1 bit için 1 transistör ve 1 kapasitör DRAM için yeterliyken SRAM için 6 transistör gerekir.[1] DRAM, yenileme devresinden dolayı çok yer kaplar. Güç kaynağı açık olduğu durumda DRAM ve SRAM sakladığı verileri korur bu nedenle her iki bellek aygıtı da volatiledir. (Güç kaynağı kesildiğinde veriler kaybolur)
Tarihçe
DRAM Dr. Robert Dennard tarafından 1966'da IBMThomas J. Watson Araştırma Merkezi'nde icat edilmiştir ve 1968 yılında patenti alınmıştır. Kapasitörler, Atanasoff-Berry Computer, Willams Tube ve Selectron Tube gibi ilk bellek projelerinde kullanılmıştır.
1969'da Honeywell Intel'e kendilerinin geliştirdiği 3-transistör hücre (cell) bulunan DRAM'i üretmesini önerdi. Bunun sonucunda 1970'lerin başlarında Intel 1102 (1024x1) ortaya çıktı. Intel'in ürettiği 1102'nin pek çok sorunu olması Intel'i kendilerinin geliştirdiği tasarımlara yönelmesine neden oldu (bu çalışmalar Honeywell ile anlaşmazlık çıkmaması için gizlice yürütüldü). Bu çalışmalar sonucunda Ekim 1970'te ticari olarak kullanılabilecek 1-transistör hücreli DRAM olan Intel 1103 (1024x1) ortaya çıktı (ilk baştalardaki az gelir sorunu 5. gözden geçirmeye kadar devam etti)
Çalışma prensibi
DRAM genellikle hücre başına 1 kapasitör ve 1 transistörün kare şeklinde dizilmesiyle oluşur. Modern DRAM binlerce hücrenin enine ve boyuna dizilişiyle oluşur. Bir okuma işlemi sırasıyla şu şekilde meydana gelir: Seçilen hücrenin sırası aktif hale getirilir, kapasitör açılır ve o dizinin kapasitörü ile anlamlı satıra bağlanır.[2] Anlamlı satır, saklanan sinyalin 1 mi 0 mı olduğunu ayırt eden anlamlı yükselteçe yönlendirir. Daha sonra uygun sütundaki kuvvetlendirilen değer seçilir ve çıkışa bağlanır. Okuma döngüsünün sonunda satır değerleri mutlaka okuma sırasında boşalan kapasitörde depolanmalıdır. Yazma işlemi satırın aktif hale getirilmesiyle ve değerlerin birbirine bağlanarak anlamlı sıraya yazılırken kapasitörleri istenilen değere yüklenmesini sağlayarak yapılır. Belirli bir hücredeki yazma işlemi sırasında bütün satır okutulur, 1 değer değiştirilir ve ondan sonra bütün satır tekrar yazılır.
Genellikle imalatçılar JEDEC standartlarına göre her satırın her 64 ms veya daha az sürede bir yenilenmesi gerektiğini belirtir. Yenileme mantığı genellikle DRAM'lerle periyodik yenilemeyi otomatikleştirmek için kullanılır. Bu devreyi daha karmaşık hale getirir fakat DRAM'in SRAM'e göre daha ucuz ve daha fazla kapasiteye sahip olması nedeniyle DRAM'i avantajlı kılar. Bazı sistemler her satırı 64 ms'de bir döngü ile yenileme yapar. Başka sistemler ise bir sıra belli bir zamanda –örneğin 213 = 8192 satıra sahip bir sistemin yenileme oranı her bir satır için 7.8 µs (64 ms / 8192 sıra) yapar. Gerçek zamanlı bazı sistemler dış sayaca dayanan bir zamanlama ile hafızanın belli bir kısmını tazeleyerek sistemin geri kalanını yönlendirir, video malzemelerinde her 10-20 ms de meydana gelen düşey boşluk aralığı gibi.[3] Bütün yöntemler belli bir çeşit sayaç içermektedir, bunun nedeni ise bir sonraki turda hangi sıranın yenileneceğini tespit etmektir. Bazı DRAM çipleri bu sayacı içerirken; diğer türler ise bu sayacı tutmak için dış yenileme mantığına ihtiyaç duyar(bazı koşullarda DRAM dakikalarca yenilenmese dahi DRAM'deki verilerin büyük bölümüne yeniden ulaşılabilir).
Hatalar ve Hata Düzeltme
Bilgisayar sistemi içindeki elektriksel veya manyetik parazitlenme bir DRAM bitinin kendiliğinden karşıt duruma dönmesine neden olur. Bazı araştırmalar DRAM yongalarındaki hataların çoğunun kozmik ışınlar yüzünden çıktığını göstermektedir. Bu bir veya daha fazla hafıza hücresinin içeriğini değiştirebilir ya da onları okuyup/yazan devrelere zarar verebilir. DRAM yoğunluğu arttıkça DRAM yongaları üzerindeki bileşenler küçülürken aynı zamanda çalışma voltajları düşeceği için, DRAM yongaları sıklıkla yüksek radyasyona uğrayacaktır. Bu, düşük enerjili parçacıkların hafıza hücresinin durumunu değiştirebileceğinden kaynaklanır. Diğer taraftan küçük hücreler daha küçük hedefler oluştururlar ve teknolojiyi SOI'nin yaptığı daha az duyarlı ve iyi tepki veren veya bunların tam tersi eğilimlere yöneltmiştir.[4]
Bu problem içinde ekstra hafıza biti olan ve bunları kendi için kullanan hafıza kontrolleri olan DRAM'ler kullanılarak hafifletilebilir. Bu ekstra bitler eşlik kaydetmeye veya ECC kullanmaya yarar. Eşlik tek-bitlik hataları bulmayı sağlar. En çok kullanılan hata düzeltme kodu, Hamming Kod, tek bitlik hataları düzeltmeyi ve iki-bitlik hataları bulmayı sağlar.
Bilgisayar sistemlerinde hata bulmak ve düzeltmek bazen moda, bazen demode gözükür. Seymuor Cray neden bunu CDC 6600'dan çıkarttığında “eşlik bizim çiftçimizdir” demiştir. Eşliği CDC 7600'e dâhil ettiğinde söylentiye göre “birçok çiftçinin bilgisayar aldığını öğrendim” demiştir. 486-dönemi PC'lerde genelde eşlik kullanılmıştır. Pentium-döneminden olanlarda ise çoğunlukla yoktu. Daha geniş bellek anayolu eşliği ve ECC'yi alınabilir kılmıştır. Şu anki mikroişlemci hafıza kontrolleri genelde ECC desteklidir ama sunucu-tabanlı olmayan sistemler bu özellikleri kullanmazlar. Kullansalar bile yazılım kısımlarının bunları kullandıkları kesin değildir.
Çoğu modern PC'lerdeki hafıza kontrolleri 64 bitte bir bitlik hatayı bulup düzeltebilir, 64 bitte iki bitlik hatayı da sadece bulabilir. Bazı sistemler hataları verinin doğru olanını hafızaya yeniden yazarak temizler. Bazı bilgisayarlardaki BIOS ve Linux gibi işletim sistemleri bulunan ve düzeltilen hataları bozulmaya başlayan hafıza modüllerini belirleyebilmek ve daha büyük felaketleri önlemek için sayarlar. Maalesef çoğu modern PC eşlik veya ECC' ye sahip olmayan hafıza modüllerine sahiptir.[5]
Hata bulma ve düzeltme oluşabilecek hataların beklentisine dayanır. Hafıza bitindeki her sözcüğün başarısızlığı birbirinden bağımsızdır ve sonuç olarak iki eşzamanlı hata beklenmez. Bu durum hafıza yongalarının “ bir olduğu zamanlarda geçerliydi. Şu anda aynı yongada birçok bit var. Bu zaaf bir durum dışında genelde ortaya çıkmaz, yonga bozulması. Bir başka mantıklı uygulama ise parmak hesabıdır; ayda gigabayt başına bir bitlik hata beklentisi. Gerçek hata oranları gene ölçüde değişebilir.
Video Ram
VRAM, DRAM’in grafik kartlarında kullanılan çift portlu versiyonudur. VRAM’in, hafıza dizisi için kullanılabilecek, iki yolu ya da portu vardır. İlk port olan DRAM portu, DRAM tarafından erişilebilir. İkinci port; video portu sadece okuma işini yapar ve hızlı akışa sahip veriyi görüntüye aktarır. Video portunu kullanmak için, kontrol birimi öncelikle hafıza dizisinin sırasına göre, görüntülemek için bir seçim yapar ve bu seçim için DRAM portunu kullanır. Daha sonra VRAM bu sırayı içerideki bir kaydırmalı kayıt ediciye kopyalar. Kontrol birimi daha sonra DRAM’i, ekran üzerinde nesneler çizmek için kullanır. Kontrol birimi kaydırma saati isimli bir birimi VRAM’in video portundan besler her kaydırma saati dalgası, VRAM’in kaydırmalı kayıt edicisinden, video portuna kadar, değişmeyen bir adres sırası ile verinin yeni parçalarını dağıtır.[6]
Fast Page Mode DRAM (FPM)- hızlı sayfa modu
Hızlı sayfa modu (FPM) DRAM, sayfa modu DRAM, Hızlı sayfa modu bellek veya sayfa modu bellek olarak da bilinir. Sayfa modunda DRAM’in bir sırası “açık” olarak tutulabilir, böylece sıra içindeki art arda okuma ve yazmada yüklenme öncesi ve sıraya geçişlerde gecikmelerden etkilenmez. Bu durum okuma ve yazma işlemleri sırasında sistemin performansını artırmaktadır.
Statik Sütün sayfa modundaki değişkenin sütün adresine ihtiyaç duyulmamaktadır.
Nibble modunda ise bir sıra içindeki ardışık 4 konuma birden ulaşılabilinmektedir.
Window RAM (WRAM)
Window Ram ya da WRAM, ekran kartlarındaki modası geçmiş VRAM'lerin yerine geçmek üzere tasarlanmış yarı iletken bilgisayar hafızalarıdır. Samsung tarafından üretilip, Micron Technology tarafından satılan bu ramler, SDRAM ve SGRAM'ler yerlerini almadan önce, çok kısa bir süre piyasada durmuşlardır.
WRAM, VRAM'e benzer, çift-portlu dinamik ram yapısına sahiptir. Bu yapıda, bir paralel port, bir seri port bulunur ve hızlı blok kopyalama ve blok doldurma(pencere işlemleri olarak adlandırılan) ekstra özelliklere sahip bir yapıdır. Genellikle 50 MHz ile saatlenmiştir. PCI ve VESA Local Bus sistemlerinde en uygun veri transferini yapabilmeleri için 32-bit genişliğinde, sağlayıcı portu bulunmaktadır. Normal WRAMler, VRAM'lere göre %50 daha hızlıdır fakat %20 daha ucuza gelirler. Bazen Microsoft Windows işletim sistemine isim benzerliği yüzünden Windows Ram olarak anılsalar da, bunlar kullanılarak windowing işlemlerinin performansları arttırılabilir.
Bunlar ayrıca Matrox tarafından hem MGA Millenium hem de Millenium II ekran kartlarında kullanılmışlardır.
Extended Data Out (EDO) DRAM
EDO DRAM ile Hızlı sayfa modu (FPM) DRAM benzer özelliklere sahiptir ek olarak EDO DRAM'de ulaşım döngüsü önceki döngüde aktif olan veri çıktısının saklandığı yerden başlayabilmektedir. Bu özellik komut işleme sırasında bir miktar daha geliştirilmiş hızlanma sağlamaktadır. 1993 yılında EDO DRAM, Hızlı Sayfa Modu DRAM'e göre %5 daha hızlandırılmıştır. Tek-Döngü EDO tam bellek işlemlerini 1 saat döngüsünde yapma özelliğine sahiptir. Yoksa bir sayfa seçildiğinde aynı sayfadaki art arda gelen RAM ulaşımları 2 saat döngüsü yerine 3 saat döngüsünde olurdu. EDO'ların hızları ve kapasiteleri, PC'lerdeki daha yavaş L2 önbellekleri yerine geçmesini sağlamıştır. Tek-döngü EDO DRAM 1990'ların sonlarına doğru video kartlarında çok popüler olmuştur. Düşük maliyeti olmasına rağmen, maliyeti yüksek olan VRAM'e yakın bir performans vermiştir.
Burst EDO (BEDO) DRAM
Burst EDO standart EDO'ya bellekten tek bir istekle gönderilen verinin seriler ya da burst olmasına izin veren bir yeniliktir.1 burst'te bellekteki 4 adresi işleyebilmektedir. Çipin içinde bulunan adres sayacıyla bir sonraki adres tutulur. Ayrıca BEDO bilgi iletimi ve ulaşımı sağlayacak döngüyü 2 bileşene ayırdı. Bellekten okuma işlemi sırasında, 1.bileşen bellekteki veriden çıktı bölümüne kadar veriye ulaşır. 2. bileşen ise veri yolunu bu mandaldan uygun mantık seviyesine getirir. Veri çıktı tamponunda olduğunda, genel EDO anlayışına göre daha hızlı erişim zamanı elde edilir.
BEDO DRAM, EDO'ya karşı eniyileme eklentileri yapmasına rağmen zamanla SDRAM'e önemli yatırımlar oldu fakat BEDO RAM teknik olarak SDRAM'e göre üstündür.
Multibank DRAM (MDRAM)
Multibank RAM, SRAM'e karşı daha hızlı ve ucuz alternatif oluşturmak için ana belleğin sırayla birleştirme tekniğini ikinci düzey önbelleklerde uygulamıştır. Çip belleğini 256 kB'lik küçük bloklara ayırmıştır ve işlemleri tek saat döngüsünde 2 farklı yığında yapmayı sağlamıştır. Bu bellek aslında Tseng Labs ET6x00 yonga seti (chipset) ile birlikte MoSys tarafından yapılan grafik kartlarında kullanılmıştır. Bu yonga seti tabanlı kartlarda 2.25 MB'lık alışılmadık RAM büyüklüğü ile düzenlenmiştir çünkü MDRAM'lerin değişik RAM büyüklükleriyle kolaylıkla istenileni yapabilmektedir. 2,25 MB'lik büyüklük, 24-bit 1024×768 çözünürlüğe izin vermektedir.
Senkronize Grafik Ram (SGRAM)
Grafik adaptörlerde kullanılan SGRAM, SDRAM'in özel bir versiyonudur. Fonksiyonları, bit gizlemesi(diğerlerine tesir etmeden açıkça belirtilen bit düzlemine yazma) ve yazmayı durdurma (blokları tek renk hafızayla doldurma) gibi yöntemlerle ekler SGRAM, verileri tek tek yerine bloklar halinde alıyor ve işliyor. Bu sayede okuma ve yazma performansı önemli ölçüde artıyor. VRAM ve WRAM'in aksine SGRAM tek-portlu hafıza birimine sahiptir. Fakat SGRAM bir kerede iki bellek sayfasını açabilir bu işlemde çift-portlu diğer video RAM teknolojileri simüle edilir. SGRAM ve SDRAM 1990'ların sonlarında DRAM'lerin en popüler türleri oldular. VE 2000'lerin ilk on yılında da böyle devam edecek.
Çift veri transferli bellekler – SDRAM'lerin geliştirilmesiyle 2000'lerin başında PC belleklerde kullanılmaya başlandı. DDR2-SDRAM'in ortaya çıkışı, DDR-SDRAM'in başlangıçtaki küçük gelişimi(tek-çekirdekli CPU temelli) sonrası saat hızları ve komut işlemenin yüksek hızlara çıkmasıyla olmuştur. 2006 yılında ortaya çıkan çok-çekirdekli CPU'ların çabuk kabullenilmesiyle standart DDR2'lerin endüstrisinde mevcut DDR-SDRAM fiziksel standartlarına göre değişmesi beklenilmektedir.[7] Ayrıca 2007'de geliştirilmesi öngörülen DDR3 ile birlikte DDR2 ve DDR‘ın yerine DDR3'ün geçmesi bekleniyor.
PSRAM veya PSDRAM dinamik RAM yenileme ve adres kontrol devresiyle durağan(statik) RAM(SRAM)'e benzer. DRAM'in yüksek yoğunluğu ve SRAM'in rahat kullanımını birleştirmiştir.
Bazı DRAM bileşenlerinin “öz- yenileme biçimi” (self refresh mode) vardır. Yalancı-durağan (pseudo-static) RAM işlemleri için olan işlemleri içerirken, bu biçim sıklıkla yedekteki biçime denktir. DRAM denetim birimi veriyi kaybetmeden güç tasarrufu için geçici bir süre işlemleri durdurur, PSRAM'lerde olduğu gibi ayrık bir DRAM denetim birimi olmadan işlemlere izin verilmez.