Bilgisayar Bilimleri -10- RAM Bellek

RAM yani rastgele erişimli bellek bilgisayar teknolojilerinde önemli bir yer tutar. Bilgisayar sistemlerinin birincil ve ikincil bellek olmak üzere iki ayrı bellek çeşidini kullandığını biliyoruz. İkincil belleğin teknolojisi kullanılan sisteme göre değişiklik gösterebilse de RAM bellekler farklı çeşitlerde olmasına rağmen hepsi transistör tabanlı ve geçici hafıza birimi olarak kendini göstermektedir. Birincil hafıza harvard ve von neumann mimarilerine göre birbirinden ayrık veya tek hafıza üzerinde olabilir. Mikrodenetleyicilerde gördüğümüz gibi Harvard mimarisinde program hafızası ile veri hafızası birbirinden ayrıdır. Bunların ikisi de birincil hafıza olsa da program hafızası kalıcı bellek iken veri hafızası geçici bellek olan RAM bellek tipindedir. Von neumann mimarisi ise tarihten günümüze genel maksatlı bilgisayarlarda kullanılmakta olup program hafızasının da veri hafızasının da RAM bellek olduğu bilgisayar tipleridir. Von neumann mimarisinde makine öncelikle ikincil bellekten program verisini okuyup birincil hafızaya yazar ve birincil hafızadan hem program kodunu okur hem de veri hafızasından değişkenler üzerinde işlem yapar. Harvard mimarisinin gömülü sistemlerde von Neumann mimarisinin de genel maksatlı bilgisayarlarda kullanılma şartı yoktur. Bazen von Neumann mimarisinde mikrodenetleyici de görebiliriz. Şimdiki konumuz RAM bellekler olduğu için sadece RAM bellekleri anlatarak yazıya devam edelim.

RAM Bellekler

RAM bellekler üç temel yapı taşından oluşmaktadır. Daha önce zikrettiğimiz gibi teknolojiye göre değişen ama genelde flip-floplardan oluşan veri ünitesi bulunmaktadır. Her veri ünitesinin yapı taşı birer bitlik hafıza elemanlarıdır. Bu hafıza elemanları sırayla birbirine bağlanarak veri hücresi meydana getirilir. Bu veri hücreleri ise biz dizi halinde birbirine bağlanarak belleğin kendini meydana gelir. İkinci yapı elemanı ise adres çözümleyicisidir. Her veri hücresinin dizi üzerinde belli bir adresi bulunduğundan mikroişlemcinin adres yoluna yazdığı veriye göre uygun veri hücresini seçmek adres çözümleyicisinin işidir. Üçüncü yapı elemanı ise kontrol mantığıdır. Kontrol mantığı devresi çipin seçilip seçilmediğini, yazma işlemi mi okuma işlemi mi yapılacağını ve yazma işleminin başlatılıp başlatılmayacağını kontrol eden sinyallerin ve devrelerin bulunduğu yapıdır. Bu mikroişlemcinin kontrol yolu vasıtasıyla denetlenmektedir. Adres, veri ve kontrol yolları hakkında daha ayrıntılı bilgiyi mikroişlemci mimarisi yazılarımda bulabilirsiniz.

Kullanılan hafıza hücresine göre RAM bellekler dinamik RAM (DRAM) ve statik RAM (SRAM) olarak iki ana kategoriye ayrılmaktadır.

Statik RAM (SRAM)

Statik RAM belleğin temel birimi mandal (latch) adı verilen hafıza birimidir. Hafıza ünitesi seçim (select) hattı etkin olunca seçilmiş hale gelir. Yazılacak veri veri girişi olan (data in) hattına yazılır ve okunacak veri ise veri çıkışı olan (data out) hattından okunur. Statik RAM bellekler eş zamanlı ve ayrık zamanlı olarak iki ana sınıfa ayrılır. Ayrık zamanlı RAM bellekler sistem saatinden beslenmez ve mikroişlemci saatinden bağımsız olarak çalışır. Veri girişi ve veri çıkışı adres yolu vasıtasıyla kontrol edilir. Eş zamanlı SRAM belleklerde ise saat sinyalinin kenarı ile zamanlama kontrol edilir. Adres, veri girişi ve veri çıkışı dahil bütün sinyaller saat sinyali ile eş zamanlı haldedir. Senkron RAM bellekler genelde çoklu adres özelliğine sahiptir. Bu özellik tek bir adres kullanarak birden çok adres üzerinde okuma ve yazma işlemini yapmayı sağlar. Aşağıda basit bir SRAM hafıza ünitesini görebilirsiniz.

Ayrık Zamanlı SRAM (Asynchronous SRAM)

Ayrık zamanlı SRAM belleklerin ana mimarisinde adres çözümleyicisi, giriş ve çıkış tamponu, hafıza hücreleri ve kontrol mantığı yer almaktadır. Şimdi bu belleğe ait mimarinin blok diyagramını verelim ve bu diyagram üzerinden size açıklayalım.

Burada sol üstten itibaren incelediğimizde “Address Decoder” olarak adlandırılan adres çözümleyicisini görürüz. Adres çözümleyicisi giriş değeri olarak A0-A16 arasındaki ayaklara sahiptir. Hafıza biriminin kapasitesi arttıkça adres genişliği de artmaktadır. Bazı hafıza birimlerinde bu 8-bit bazılarında 16-bit bazılarında ise 16 bitten daha fazla olabilir. Mikroişlemcinin adres yoluna bağlanan bu ayaklar doğrudan adres çözümleyicisi vasıtasıyla sayısal değer ve fiziksel bağlantı hattı arasında çözümleme işlemini gerçekleştirir. Her bellek hücresinin kendine ait bir seçim hattı bulunmaktadır. Örneğin burada 17 bitlik bir adres yolu olduğundan 131870 adet 8 bitlik veri hücresi ve bu adet kadar da hücre seçme hattı bulunacaktır. Bu hücreleri tek tek seçemeyeceğimize göre adresler ve adres çözümleyicisi vasıtasıyla seçmiş oluruz.  Yukarıda sağda ise hafıza dizisi yani “Memory Array” yer almaktadır. Yukarıda bahsettiğimiz gibi bu hafıza dizisi transistörlerden meydana gelmekte ve oldukça basit bir yapıda bir dizi şeklinde sıralanmıştır. Adres çözümleyicisinin çıkışı bu hafıza birimine bağlıdır.

Adres işini hallettik diyelim. Ama ortada yazılacak veya okunacak bir verinin olması gerekir. O halde belleğin iki ana hattı vardır diyoruz. Bellek dizisine ulaşan hatlardan biri adres hattı olup hangi hücrenin okunacağını belirlerken I/O control adı verilen giriş ve çıkış denetimi ise 8 bitlik veri hattı olup ilgili hücreye bağlanarak o hücredeki veriyi okur veya o hücreye veri yazar. Burada belleğin dış dünyaya bağlandığı bir veri yolu adres yolundan ayrı olarak mevcuttur ve mikroişlemcinin veri yoluna bağlanmaktadır. Kontrol yolu ise “Control Logic” olarak belirtilmiştir ve WE, OE, CS olarak üç ayrı ayaktan ibarettir. Bu ayaklar bellek biriminin ne iş yapacağını belirlememize yarar. Sadece adres ve veri yoluna veri yazmakla belleği kullanmamız mümkün olmaz. Örneğin CS ayağına sinyal göndererek ilgili çipi seçmemiz gerekir veya WE ayağına sinyal göndererek yazma işlemini etkinleştirmemiz gerekir. Bu ayaklar da mikroişlemcinin kontrol yoluna bağlanmaktadır.

Daha büyük hafıza birimlerinde mimari değişmektedir. Örneğin burada adresler tek tek belirlenirken daha büyük hafızalarda satırlar ve sütunlar için ayrı adres değerleri adres yolunda mevcuttur. Mikrodenetleyici adres değeri olarak satır ve sütun değerlerini yazmaktadır.

Eş Zamanlı SRAM (Synchronous SRAM)

Eş zamanlı RAM bellek önceden bahsettiğimiz gibi sistem saati ile eş zamanlı hale gelmiştir. Yani bunun çalışma frekansı mikroişlemcinin çalışma frekansı ile aynıdır. Bunun olumlu yanı hızlarının mikroişlemci ile eşitlenmesi ve daha hızlı komutların okunup çalıştırılabilmesidir. Eş zamanlı RAM üzerinde saat ile beslenen yazmaçları bulundurmaktadır.

Dinamik RAM

Dinamik RAM bellekler statik RAM belleklere göre oldukça farklı bir yapıya sahiptir. Statik RAM belleklerde mantık kapılarından meydana gelen mandal (latch) ile elektrik mevcut olduğu sürece veri “sabit” bir halde kalıyordu. Dinamik bellekler ise bir adet MOSFET ve bir adet kondansatörden meydana gelen ve kondansatör şarj halindeyken “1” deşarj halindeyken de “0” verisini veren belleklerdir.

Kondansatörün şarj halinin sürekli kalıcı halde kalmadığını bu yüzden sabitliğin bu hafızalarda söz konusu olmadığını hemen anlamış olmalısınız. Bu belleklerde veri sabit bir halde değilken bir taraftan da bir bitlik bir veri bir adet MOSFET ve kondansatör ile ifade edilebilmektedir. SRAM belleklerde  bu teknolojiye göre 6 veya 4 adet transistör gerektirmektedir. Maliyetin düşmesinin yanı sıra boyutta da düşme yaşanacağı için çok daha büyük kapasitedeki hafızalar DRAM teknolojisi ile yapılabilir hale gelmiştir.

DRAM belleklerin veriyi sabit bir halde tutamamaları şarj olan kondansatörün bir müddet sonra deşarj durumuna geçmesinden dolayıdır. O yüzden belli bir periyotta bu kondansatörlerin elektriksel olarak yenilenmesi lazımdır. O yüzden genellikle 5-10 mili saniyede bir bu yenileme işlemi gerçekleşmektedir.

Resimde bir bitlik DRAM hücresi görülmektedir. Yukarıdaki devreye göre ne kadar basit olduğunu ve sadece iki adet eleman içerdiğine dikkat ediniz. DRAM bellekler de kendi içerisinde farklı çeşitlere ayrılmaktadır ve mimarileri statik RAM belleklerden farklıdır. Bu konu çok ayrıntıya kaçtığı için merak eden öğrencilere araştırma konusu olarak veriyoruz.

 

Bizi Facebook grubumuzda takip etmeyi unutmayın. Bilgili ve öğrenmeye hevesli bir topluluk oluşturmak istiyoruz.

https://www.facebook.com/groups/1233336523490761/

Gökhan Dökmetaş

"Arduino Eğitim Kitabı" ve "Arduino ve Raspberry PI ile Nesnelerin İnterneti" kitaplarının yazarı. Başkent Teknoloji ve Dedektör Merkezi'nde Ar-ge Sorumlusu. Araştırmacı-Yazar.

You may also like...

Bir cevap yazın

E-posta hesabınız yayımlanmayacak.