Tanım
PC'lerimizdeki bellekler, sistemde yer alan işlemci ve grafik kartları gibi veri yaratan ve işleyen birimlerin ortaya çıkardığı verilerin uzun ya da kısa süreli olarak saklandığı işlevsel birimlerdir. Sabit disk sürücüler, sistem RAM'leri, işlemcilerin içindeki cache diye tabir edilen bellekler, BIOS'un saklandığı EPROM'lar, grafik kartlarının üzerindeki RAM'ler, CD'ler, disketler v.s. hepsi PC'lerde yer alan bellek türleridir.
Bellek kavramı bu derece geniş bir konu olmasına rağmen bu yazıda konumuz olan bir çoğumuzun oldukça aşina olduğu, hep daha fazla olmasını hayal ettiğimiz ve hatta yeri geldiğinde overclock denemelerimize bile dahil ettiğimiz sistem RAM'i denilen bellekler. Peki RAM ne demek? RAM, İngilizcesi Random Access Memory, Türkçesiyle Rastgele Erişilebilir Bellek kelimelerinin başharflerinden oluşan bir kısaltma. Bu noktada, belleklerin RAM'ler ve Sadece Okunabilir Bellekler yani ROM'lar (Read Only Memory) şeklinde sınıflandırıldığını hatırlatmak isteriz. RAM'ler veriyi saklamak için beslemeye yani elektrik enerjisine ihtiyaç duyduğu halde ROM'lar besleme olmasa bile veriyi saklayabilirler. Ayrıca, ROM'lar genellikle, kısaltmanın açılımından da anlaşıldığı gibi sadece okuma amacıyla kullanılırlar. Üzerlerinde saklı verinin kullanıcı tarafından kolayca değiştirilmemesi hedeflenir.
RAM'lerin en başta gelen özelliklerinden birisi � ki RAM ismini almalarından sorumlu olan da budur - sakladıkları verilere manyetik teyplerdeki ya da CD-ROM�lardaki sıralı erişimin aksine, sırasız ve hızlı bir şekilde rastgele erişime imkan vermeleridir. Erişimde sağladıkları hız, RAM'lerin sistemde bu denli önemli ve performansı belirleyici olmalarında en önde gelen etkendir. Veri barındırma kapasiteleri ve hız konusunda, merkezi işlemci üzerindeki düşük kapasiteli ancak çok hızlı bir RAM olan cache belleklerle, kapasiteleri günümüzde inanılmaz boyutlara ulaşmış olan sabit disk sürücüler arasında yer alırlar ve bir çeşit tampon görevi görürler. İşletim sistemi, sabit sürücünün yavaşlığını gizlemek amacıyla, yakın gelecekte ihtiyaç duyulabilecek veriyi henüz ihtiyaç durumu ortaya çıkmadan sabit diskten sistem RAM'leri üzerine yükler ve gerektiğinde hızlı bir şekilde işlemcideki cache belleğe iletilmesini sağlar.
RAM'lerin sistem içindeki yerlerini tanımladıktan sonra simdi de teknolojinin ve erişim protokollerinin ortaya çıkardığı RAM türlerini inceleyelim.
RAM Çeşitleri
RAM'lerin, fiziksel yapıları ve çalışma prensipleri itibariyle mikroişlemcilerden hiç bir farkı yok. Tıpkı mikroişlemciler gibi, silikon üzerine işlenmiş çok sayıda transistörün, bu defa ağırlıklı olarak veri erişiminin kontrolü ve verinin saklanmasıyla ilgili belli işlevleri yerine getirmek amacıyla birbirine bağlanmasıyla ortaya çıkmış ve nispeten daha az karmaşık olan elektronik yapılar. Bu yüzden mikroişlemci teknolojileriyle RAM teknolojilerini ilgilendiren konular tamamıyla ortak. RAM teknoljilerini süren hedef, mikroişlemcilerde olduğu gibi, daha küçük transistörler üretmek, bu sayede aynı büyüklükte bir silikon parçasına daha fazla transistör yani daha fazla işlev sığdırmak ve silikonun daha hızlı çalışmasını sağlamaktır. Bu amaca ulaşma yolunda karşılaşılan engellerin çoğu üretim teknolojilerindeki gelişmelerle aşılmakta olup geri kalan kısım ise geliştirilen daha akıllı algoritmalar ve protokollerle çözülüyor. İşte RAM türlerini bu protokoller belirliyor.
Dizüstü PC�lerde kullanılan SO-DIMM
Masaüstü PC�lerdi kullanılan DIMM
Çoğumuz, SDR-RAM, DDR-RAM, DDR II RAM, RDRAM ve hatta artık mazi de kalmış olsa da EDO RAM gibi kısaltmaları duymuşuzdur. Bu kısaltmalar, RAM'e erişmek, yani RAM'den veri okumak ya da RAM'e veri yazmak için kullanılan protokol hakkında bize bilgi verir. Örnek olarak, günümüzde en popüler RAM türü olan DDR bellekleri verebiliriz. Buradaki DDR (Double Data Rate) kısaltması, çift veri hızlı bellekler anlamında kullanılıyor. Bir önceki nesil bellek türlerine isim veren SDR (Single Data Rate) kısaltması ise tek veri hızlı RAM'leri simgeliyor. Bu kısaltmaları daha detaylı açıklayabilmek için sonraki bölümlerde değineceğimiz bazı kavramları anlamak gerekiyor. Bu noktada, ön bilgi olarak söyleyebileceğimiz, DDR ve SDR kavramlarının senkron olarak çalışan, yani veri akışının bir saat işaretiyle düzende tutulduğu tip RAM'lerde, bir saat periyodu içinde gerçekleşen veri akış hızını belirttikleri olacaktır. RD-RAM ise RAMBUS firması tarafından geliştirilen RAMBUS veriyolu üzerinde çalışan, bazı yönlerden DDR'a benzeyen, İngilizce'deki 'RAMBUS Direct' kelimelerinin baş harflerinden ismini alan bir RAM türüdür.
Çalışma Prensipleri
Anakartlarımızdaki bellek soketlerine yerleştirdiğimiz baskı devreleri, anakarta bağlandıkları veri yolunun genişliğine göre DIMM (Dual Inline Memory Module) ve SIMM (Single Inline Memory Module) gibi kısaltmalarla adlandırıyoruz; sanırız bunun da haklı bir sebebi var (!). Bugünlerde en popüler olanı, üzerinde genellikle bant genişliği yüksek ve dolayısıyla daha geniş veriyoluna ihtiyaç duyan DDR bellek yongalarını barındıran DIMM'ler. Dizüstü bilgisayarlarda kullanılan DIMM'ler fazla yer kaplamamaları için küçük olduklarından SO-DIMM (Small Outline Dual Inline Memory Module) yani küçük izdüşümlü RAM adını alıyorlar. DIMM�lere baktığımızda, genellikle 4,8 ya da 16 gibi belli sayılarda bellek yongaları, dirençler ve kondansatörlerin yanısıra SPD (Serial Presence Detect) denilen bir ROM yongası bulunduğunu görebiliriz.
DIMM üzerindeki bellek yongaları (büyük olanlar) ve SPD yongası (sol alt köşe)
SPD yongası üzerinde, yazımızın ilerleyen bölümlerinde daha detaylı değineceğimiz, baskı devre üzerindeki bellek yongalarıyla ilgili çeşitli parametreler saklanır. Bu parametrelerin zamanlamayla ilgili olanları (örn. CAS gecikmesi), üretimden sonra yapılan perfromans testleri sonucunda modülün kararlı olarak çalışabileceği en üst performansı gerçekleyecek şekilde belirlenir ve SPD üzerine işlenir. Bellek modülü anakarta yerleştirildikten sonra, SPD üzerindeki bu parametreler boot esnasında BIOS tarafından okunur ve sistemin bellek kontrolüyle ilgili kısımları (yonga seti) gerektiği şekilde haberdar edilir, böylece bellekle olan iletişim sağlanmış olur. Bellek modülünün üreticisi olan firmanın kodu, modülün üretim tarihi, seri numaralrı, bellek yongalarının kapasiteleri ve erişimleriyle ilgili bilgiler SPD yongasında saklanan diğer bilgiler arasında yer alır.
Bizi ilgilendiren asıl kısım ise bellek yongaları. Bunlar, tıpkı mikroişlemciler gibi, kılıflanmış tümleşik devreler. Üretim teknolojisi yani transistörlerin minyatürleştirilmesi bakımından bazı durumlarda işlemcilerden bir nesil önde gidenlerine rastlamak bile mümkün. Yonga üzerinde yer alan ve milyonlarcasının bir araya gelerek bellek dizisini oluşturduğu temel yapı, verinin en temel hali olan bir bitlik veriyi yani ikilik düzendeki 0 veya 1 bilgisini saklamakla sorumlu RAM hücresidir. Bir yongada bu hücreden milyonlarcası kullanıldığından, tasarım ve üretimde çalışan mühendisleri meşgul tutan ve para kazanmalarını sağlayan konuların başında bu bellek hücresini en az yer kaplayacak, en az fireyle en verimli şekilde üretilebilecek şekilde tasarlamak yer alır.
Bellek yongasının nasıl çalıştığını anlamak için önce bu tümdevrenin yapısını inceleyelim. Elimizde bir bellek dizini var. Bu dizini belli sayıda satır ve sütünlardan oluşan iki boyutlu bir tablo olarak düşünebiliriz. Tablomuzun yapıtaşları ise bahsettiğimiz RAM hücreleri. Bu tablo üzerindeki herhangi bir hücreye erişmek (yazmak ya da okumak) için o hücrenin tablodaki konumunu, yani, hangi satır ve sütünun kesişim noktasında bulunduğunu vermemiz gerekir. Bu konum bilgisine adres diyoruz. Erişimi kolaylaştırmak için genelde bellek tablomuz yonga üzerinde daha küçük alt tablolara bölünmüştür. Bu alt tablolara banka (bank) deniyor. Günümüzde bellek yongaları genelde 4 bankalı olarak tasarlanıyor. Kısaca, adresimiz satır ve sütün numaralarının yanısıra bir banka numarasını da içeriyor. Bu sayede bellek yongası hangi bankanın kaçıncı satırındaki kaçıncı sütunundaki hücreye erişim yapılmak istendiğini biliyor. İşlemcilerin belleğe erişirken kullandığı en küçük veri birimi tek bir bit yerine 8 bitten oluşan bayt (byte)'tır. Bu yüzden bellek yongalarında erişilebilen en küçük veri birimi de byte olarak düzenlenmiştir. Böylece bellek tablomuz satır, sütun ve banka adres bilgileriyle erişilen byte'lardan oluşuyor. Diğer bir deyişle bir byte'ı oluşturan ve tablomuzda yanyana konumlanmış olan 8 RAM hücresi aynı anda okunuyor ya da yazılıyor. Bu aslında gerçekte olanın basitleştirilmiş hali. Kullandığımız bellek modüllerinde anakarta bağlantıyı sağlayan veri yolunun genişliği göze önüne alındığında - ki bu DIMMlerde 128 bittir - aynı anda çok sayıda byte okumak mümkün (128bit/8bit=16 byte).
Sanıyorum ki bu noktada bir bankanın yapısını ve nasıl işlediğini incelemek yerinde olacaktır. Bu kısımda günümüzde en popüler olan SDR-RAM ve DDR-RAM bellek tiplerinin temel çalışma prensibi olan dinamik RAM nasıl çalışır hep birlikte göreceğiz. Bahsettiğimiz gibi, banka, esas olarak belli sayıda satır ve sütunlardan oluşan bir byte tablosu. Bu tablodan byte'larımızı okumak için satır ve sütun numarasını yani adresini vermemiz yeterli. Simdi byte�larımızı oluşturan bitlerimize yani RAM hücrelerimize döndüğümüzde nasıl oluyor da bu hücrelerde saklanan veri ile dışarı dünya arasında iletişim sağlanıyor biraz daha yakından bakalım.