Bellek denetleyicisi - Memory controller

Bellek denetleyicisi ve bilgisayarın giden veri akışını yöneten bir dijital devre ana bellek . Bir bellek denetleyicisi ayrı bir yonga olabilir veya aynı kalıba veya bir mikroişlemcinin ayrılmaz bir parçası olarak yerleştirildiği gibi başka bir yongaya entegre edilebilir ; ikinci durumda, genellikle entegre bellek denetleyicisi ( IMC ) olarak adlandırılır. Bir bellek denetleyicisine bazen bir bellek yongası denetleyicisi ( MCC ) veya bir bellek denetleyici birimi ( MCU ) denir .

Yaygın bir bellek denetleyicisi biçimi, Unix gibi birçok işletim sisteminde sanal adresleme uygulayan bellek yönetim birimidir (MMU) .

Tarih

Modern masaüstü veya iş istasyonu mikroişlemcilerinin çoğu , Intel , AMD ve ARM mimarisi etrafında oluşturulmuş mikroişlemciler dahil olmak üzere tümleşik bir bellek denetleyicisi (IMC) kullanır .

K8'den önce (2003 dolaylarında), AMD mikroişlemcileri, anakartlarının kuzey köprüsünde uygulanan bir bellek denetleyicisine sahipti . K8 ve sonrasında AMD, entegre bir bellek denetleyicisi kullandı. Benzer şekilde, Nehalem'e kadar (2008 dolaylarında), Intel mikroişlemciler anakartın kuzey köprüsünde uygulanan bellek denetleyicilerini kullanıyordu. Nehalem ve daha sonra entegre bir bellek denetleyicisine geçti.

Diğer örnekleri, mikroişlemci kullanım olup entegre bellek kontrol dahil , IBM sitesindeki POWER5 ve Sun Microsystems 'in UltraSPARC® T1 .

Tümleşik bir bellek denetleyicisi, örneğin bellek gecikmesini azaltarak sistemin performansını artırma potansiyeline sahip olsa da , mikroişlemciyi belirli bir bellek türüne (veya türlerine) kilitler ve daha yeni bellek teknolojilerini desteklemek için yeniden tasarım yapmaya zorlar. Ne zaman DDR2 SDRAM tanıtıldı, AMD Athlon 64 işlemcileri piyasaya sürdü. DDR2 denetleyicili bu yeni modeller, yalnızca yeni RAM türü için tasarlanmış anakartlara sığacak şekilde farklı bir fiziksel soket ( Soket AM2 olarak bilinir ) kullanır. Bellek denetleyicisi hazır durumda olmadığında, aynı CPU güncellenmiş bir kuzey köprüsüyle yeni bir ana karta takılabilir .

1990'larda DEC Alpha 21066 ve HP PA-7300LC gibi bazı mikroişlemciler tümleşik bellek denetleyicilerine sahipti; ancak bu, performans kazanımlarından ziyade, harici bir bellek denetleyicisi ihtiyacını ortadan kaldırarak sistemlerin maliyetini azaltmak için uygulandı.

Bazı CPU'lar, bellek denetleyicilerine yonga setinin parçası olmayan özel harici bileşenler olarak sahip olacak şekilde tasarlanmıştır. Bir örnek, DIMM modüllerine monte edilen ve bellek arabellekleri, L4 önbellek yongaları ve gerçek bellek denetleyicileri olarak işlev gören harici Centaur yongalarını kullanan IBM POWER8'dir . Centaur çipinin ilk sürümü DDR3 bellek kullanıyordu, ancak daha sonra DDR4'ü kullanabilen güncellenmiş bir sürüm yayınlandı.

Amaç

Hafıza kontrolörleri okumak için gerekli mantık ve yazma içerirler DRAM , ve "yenileme" DRAM . Olarak sabit yeniler olmadan, DRAM kendisine yazılı verileri kaybedersiniz kapasitörler kendi sızıntı şarjını saniyenin (göre en fazla 64 milisaniyelik bir kısmını içinde JEDEC standartları).

DRAM'e okuma ve yazma, DRAM'in satır ve sütun veri adreslerinin çoklayıcı devresinin girişleri olarak seçilmesiyle gerçekleştirilir ; burada DRAM üzerindeki çoğullama çözücü , doğru bellek konumunu seçmek ve verileri döndürmek için dönüştürülmüş girişleri kullanır. operasyon için gerekli veri yolu genişliğini azaltmak amacıyla verileri birleştirmek için bir çoklayıcıdan geri geçirilir.

Veri yolu genişliği, bellek hücresiyle iletişim kurmak için mevcut paralel hatların sayısıdır. Bellek denetleyicilerinin veri yolu genişlikleri , önceki sistemlerde 8 bitten daha karmaşık sistemlerde ve video kartlarında 512 bit'e kadar değişir (genellikle paralel çalışan dört 64 bit eşzamanlı bellek denetleyicisi olarak uygulanır , ancak bazıları "çete modunda çalışmak üzere tasarlanmıştır" 128 bit bellek aygıtına erişmek için iki 64 bit bellek denetleyicisi kullanılabilir ).

PowerQUICC II işlemcilere entegre olanlar gibi bazı bellek denetleyicileri, hata algılama ve düzeltme donanımı içerir.

Güvenlik

Birkaç deneysel bellek denetleyicisi (çoğunlukla veri korumasının yasal olarak gerekli olduğu sunucu pazarına yöneliktir), CPU'nun bellek yönetim birimi tarafından gerçekleştirilen birinci düzey adres çevirisine ek olarak ikinci bir adres çevirisi düzeyi içerir .

Belirli Intel Core işlemcilere entegre edilen bellek denetleyicileri , ana belleğe yazılan kullanıcı verilerini sözde rasgele desenlere dönüştüren bir özellik olarak bellek karıştırmayı da sağlar .

Bellek Karıştırma (Kriptografik Teoride), çeşitli soğuk önyükleme saldırılarını etkin bir şekilde etkisiz hale getirerek DRAM veri kalıcılığına dayalı adli ve tersine mühendislik analizini önlemesi beklenir . Mevcut uygulamada bu sağlanamamıştır.

Ancak Memory Scrambling, yalnızca DRAM ile ilgili elektrik sorunlarını çözmek için tasarlanmıştır. 2010'ların sonlarındaki Bellek Karıştırma Standartları, güvenlik sorunlarını veya sorunlarını düzeltmez veya engellemez. 2010'ların Memory Scrambling standartları, kriptografik olarak güvenli değildir veya mutlaka açık kaynaklı veya genel revizyona veya analize açık değildir.

ASUS ve Intel'in kendi bellek karıştırma standartları vardır. Şu anda ASUS anakartları, kullanıcının [ASUS veya Intel] hangi bellek karıştırma standartlarını kullanacağını veya özelliği tamamen kapatıp kapatmayacağını seçmesine izin veriyor.

Varyantlar

Çift veri hızı belleği

Çift veri hızı (DDR) bellek denetleyicileri, verilerin sistemin bellek saatinin hem yükselen hem de düşen kenarlarında aktarıldığı DDR SDRAM'i sürmek için kullanılır . DDR bellek denetleyicileri, tek veri hızı denetleyicilerine kıyasla önemli ölçüde daha karmaşıktır, ancak bellek hücresinin saat hızını veya veri yolu genişliğini artırmadan verilerin iki katına aktarılmasına izin verirler.

çok kanallı bellek

Çok kanallı bellek bellek denetleyicileri, bellek denetleyici(ler)inin bunlara paralel olarak erişmesine izin vermek için DRAM aygıtlarının birden çok farklı veri yoluna ayrıldığı bellek denetleyicileridir. Bu, veri yolunun teorik bant genişliği miktarını kanal sayısının bir faktörü kadar artırır. Her DRAM hücresi için bir kanal ideal çözüm olsa da, kablo sayısı, hat kapasitansı ve paralel erişim hatlarının aynı uzunluklara sahip olması ihtiyacı nedeniyle daha fazla kanal eklemek çok zordur .

Tam arabelleğe alınmış bellek

Tam arabelleğe alınmış bellek sistemleri, her bellek modülüne ( Tam Tamponlu RAM kullanıldığında FB-DIMM olarak adlandırılır) bir bellek arabellek aygıtı yerleştirir ; bu aygıt, geleneksel bellek denetleyici aygıtlarından farklı olarak, kullanılan paralel bağlantı yerine bellek denetleyicisine bir seri veri bağlantısı kullanır. önceki RAM tasarımları. Bu, bellek aygıtlarını bir anakart üzerine yerleştirmek için gereken kablo sayısını azaltır (daha az sayıda katmanın kullanılmasına izin verir, bu da tek bir karta daha fazla bellek aygıtının yerleştirilebileceği anlamına gelir), artan gecikme (zaman) pahasına. bir hafıza konumuna erişmek için gerekli). Bu artış, DRAM hücresinden okunan paralel bilgiyi FB-DIMM denetleyicisi tarafından kullanılan seri biçime ve ana karttaki bellek denetleyicisinde paralel bir forma dönüştürmek için gereken süreden kaynaklanmaktadır.

Teoride, FB-DIMM'in bellek arabellek aygıtı, herhangi bir DRAM hücresine erişmek için oluşturulabilir, bu da bellek hücresi agnostik bellek denetleyici tasarımına izin verir, ancak bu, teknoloji emekleme döneminde olduğu için gösterilmemiştir.

Flash bellek denetleyicisi

USB bellek çubukları gibi birçok flash bellek aygıtı, çip üzerinde bir flash bellek denetleyicisi içerir . Flash belleğe erişmek, RAM'e göre doğası gereği daha yavaştır ve genellikle birkaç milyon yazma döngüsünden sonra kullanılamaz hale gelir ve bu da genellikle RAM uygulamaları için uygun değildir.

Ayrıca bakınız

Referanslar

Dış bağlantılar