Hafıza yenileme - Memory refresh

Bellek yenileme , bilgiyi korumak amacıyla, bilgisayar belleğinin bir alanından periyodik olarak bilgi okuma ve okunan bilgiyi aynı alana değiştirmeden hemen yeniden yazma işlemidir . Bellek yenileme, en yaygın kullanılan bilgisayar belleği türü olan yarı iletken dinamik rastgele erişimli belleğin (DRAM) çalışması sırasında gerekli olan bir arka plan bakım işlemidir ve aslında bu bellek sınıfının tanımlayıcı özelliğidir.

Bir DRAM çipinde, bellek verisinin her biti , çip üzerindeki küçük bir kapasitör üzerindeki elektrik yükünün varlığı veya yokluğu olarak depolanır . Zaman geçtikçe, bellek hücrelerindeki yükler sızar, bu nedenle depolanan veriler yenilenmeden sonunda kaybolur. Bunu önlemek için, harici devre periyodik olarak her hücreyi okur ve yeniden yazar, kapasitör üzerindeki yükü orijinal seviyesine geri yükler. Her bellek yenileme döngüsü , birbirini takip eden bellek hücreleri alanını yeniler, böylece ardışık bir döngüde tüm hücreleri tekrar tekrar yeniler. Bu işlem, bellek devresi tarafından arka planda otomatik olarak gerçekleştirilir ve kullanıcı için şeffaftır. Bir yenileme döngüsü gerçekleşirken, bellek normal okuma ve yazma işlemleri için kullanılamaz, ancak modern bellekte bu "ek yük" süresi, bellek işlemini önemli ölçüde yavaşlatacak kadar büyük değildir.

Statik rastgele erişimli bellek (SRAM) olarak adlandırılan, yenileme gerektirmeyen elektronik bellek mevcuttur . SRAM devreleri, bir çip üzerinde daha fazla alan gerektirir, çünkü bir SRAM bellek hücresi, tek bir transistöre ve DRAM için bir kapasitöre kıyasla dört ila altı transistör gerektirir . Sonuç olarak, SRAM yongalarında veri yoğunluğu DRAM'den çok daha düşüktür ve SRAM'ın bit başına fiyatı daha yüksektir. Bu nedenle bilgisayarlarda, video oyun konsollarında, grafik kartlarında ve büyük kapasite ve düşük maliyet gerektiren uygulamalarda ana bellek olarak DRAM kullanılmaktadır. Bellek yenileme ihtiyacı, DRAM zamanlamasını ve devrelerini SRAM devrelerinden önemli ölçüde daha karmaşık hale getirir, ancak DRAM'in yoğunluğu ve maliyet avantajları bu karmaşıklığı haklı çıkarır.

DRAM yenileme nasıl çalışır?

Bellek çalışırken, her bir bellek hücresi, üretici tarafından belirtilen, genellikle milisaniye bölgesinde olan yenilemeler arasındaki maksimum aralık içinde, tekrar tekrar yenilenmelidir. Yenileme, verilere erişmek için kullanılan normal bellek işlemlerini (okuma ve yazma döngüleri) değil , bellek devresinde ayrı sayaç devreleri tarafından oluşturulan ve normal bellek erişimleri arasına serpiştirilmiş yenileme döngüleri adı verilen özel döngüleri kullanır .

Bir bellek yongasındaki depolama hücreleri, dikdörtgen bir dizi satır ve sütun halinde düzenlenir. DRAM'deki okuma işlemi yıkıcıdır ve tüm satırdaki bellek hücreleri üzerindeki yükü kaldırır, bu nedenle çip üzerinde , verileri geçici olarak tutmak için bellek hücrelerinin her sütunu için bir tane olmak üzere, duyu yükselticileri adı verilen bir dizi özel mandal vardır . Normal bir okuma işlemi sırasında, algılama yükselticileri verileri okuduktan ve kilitledikten sonra, biti tek bir sütundan çıkışa göndermeden önce erişilen satırdaki verileri yeniden yazar. Bu, çip üzerindeki normal okuma elektroniğinin, tüm bir bellek satırını paralel olarak yenileyebileceği ve yenileme sürecini önemli ölçüde hızlandırabileceği anlamına gelir. Normal bir okuma veya yazma döngüsü, bir bellek satırını yeniler, ancak normal bellek erişimlerinin, gerekli süre içinde tüm satırlara ulaşacağına güvenilemez, bu da ayrı bir yenileme işlemi gerektirir. Yenileme işleminde normal okuma döngüsünü kullanmak yerine, zaman kazanmak için yenileme döngüsü adı verilen kısaltılmış bir döngü kullanılır. Yenileme döngüsü, okuma döngüsüne benzer, ancak iki nedenden dolayı daha hızlı yürütülür:

  • Yenileme için yalnızca satır adresi gereklidir, bu nedenle çip adres devrelerine bir sütun adresinin uygulanması gerekmez.
  • Hücrelerden okunan verilerin CPU'ya göndermek için çıkış arabelleklerine veya veri yoluna beslenmesi gerekmez .

Yenileme devresi, her hücrenin yenilendiğinden emin olmak için, yenileme zaman aralığı içinde çip üzerindeki satırların her birinde bir yenileme döngüsü gerçekleştirmelidir.

Yenileme devresi türleri

Bazı erken sistemlerde, yenilemeyi gerçekleştiren bir alt yordamı çalıştıran periyodik bir kesmeyi tetikleyen bir zamanlayıcıyla, mikroişlemci yenilemeyi kontrol etse de , bu, mikroişlemcinin duraklatılamayacağı, tek adım atılamayacağı veya yenileme durdurulmadan enerji tasarrufu sağlayan hazırda bekletme moduna alınamayacağı anlamına geliyordu. bellekteki verileri işlemek ve kaybetmek. Bu nedenle modern sistemlerde yenileme, bellek denetleyicisindeki devreler tarafından veya giderek daha fazla çipin kendisinde gerçekleştirilir. Sözde statik RAM (PSRAM) gibi bazı DRAM yongaları, yonga üzerinde tüm yenileme devrelerine sahiptir ve bilgisayarın geri kalanı söz konusu olduğunda statik RAM gibi işlev görür.

Genellikle yenileme devresi , çipin satır adres satırlarına uygulanan yenilenecek satırın adresini içeren bir yenileme sayacından ve satırlar arasında ilerlemek için sayacı artıran bir zamanlayıcıdan oluşur. Bu sayaç, bellek denetleyici devresinin bir parçası veya bellek yongasının kendisinde olabilir. İki zamanlama stratejisi kullanılmıştır:

  • Seri yenileme - tüm satırlar yenilenene kadar birbiri ardına bir dizi yenileme döngüsü gerçekleştirilir, ardından bir sonraki yenileme gerekli olana kadar normal bellek erişimleri gerçekleşir
  • Dağıtılmış yenileme - yenileme döngüleri, bellek erişimleriyle serpiştirilmiş düzenli aralıklarla gerçekleştirilir.

Seri yenileme, belleğin kullanılamadığı durumlarda uzun sürelerle sonuçlanır, bu nedenle çoğu modern sistemde, özellikle gerçek zamanlı sistemlerde dağıtılmış yenileme kullanılmıştır . Dağıtılmış yenilemede, yenileme döngüleri arasındaki aralık

Örneğin, DDR SDRAM , 64 ms ve 8.192 satır yenileme süresine sahiptir, bu nedenle yenileme döngü aralığı 7,8 μs'dir.

Son nesil DRAM yongaları, entegre bir yenileme sayacı içerir ve bellek kontrol devresi, bu sayacı kullanabilir veya harici bir sayaçtan bir satır adresi sağlayabilir. Bu çiplerin, "sütun seçimi" (CAS) ve "satır seçimi" (RAS) satırlarında farklı sinyal modelleri tarafından seçilen, yenileme sağlamak için üç standart yolu vardır:

  • " RAS yalnızca yenileme " - Bu modda, yenilenecek satırın adresi adres veri yolu hatları tarafından sağlanır, bu nedenle bellek denetleyicisindeki harici sayaçlarla kullanılır.
  • " RAS yenilemeden önce CAS " (CBR) - Bu modda çip üzerindeki sayaç yenilenecek satırın kaydını tutar ve harici devre sadece yenileme döngülerini başlatır. Bu mod daha az güç kullanır çünkü bellek adres yolu arabelleklerinin açılması gerekmez. Modern bilgisayarların çoğunda kullanılır.
  • " Gizli yenileme " - Bu, önceki bir okuma veya yazma döngüsüyle birleştirilebilen CBR yenileme döngüsünün alternatif bir versiyonudur. Yenileme, veri aktarımı sırasında paralel olarak yapılır ve zamandan tasarruf edilir.

2012 nesil DRAM yongalarından bu yana, "yalnızca RAS" modu ortadan kaldırılmıştır ve yenileme oluşturmak için dahili sayaç kullanılır. Çip, bilgisayar hazırda bekletme modundayken kullanılmak üzere ek bir "uyku modu"na sahiptir; bu modda , harici saatin kapatılabilmesi için bir çip üstü osilatörün dahili yenileme döngüleri oluşturur.

Ek yükü yenile

Belleğin yenileme için harcadığı zamanın oranı, yenileme yükü, sistem zamanlamasından hesaplanabilir:

Örneğin, bir SDRAM yongası 2 13 = 8.192 satıra, 64 ms yenileme aralığına, bellek veriyolu 133 MHz'de çalışır ve yenileme döngüsü 4 saat döngüsüne sahiptir. Yenileme döngüsü zamanı

Böylece bellek yongasının zamanının %0,4'ünden daha azı yenileme döngüleri tarafından kullanılacaktır. SDRAM yongalarında, her bir yongadaki bellek, paralel olarak yenilenen ve daha fazla zaman kazandıran sıralara bölünür. Bu nedenle, ihtiyaç duyulan yenileme döngülerinin sayısı, 2012 neslinde 8.192'de donmuş olan spesifikasyonlarda verilen tek bir bankadaki satır sayısıdır.

Yenileme aralığı

Yenileme işlemleri arasındaki maksimum zaman aralığı , her DRAM teknolojisi için JEDEC tarafından standartlaştırılmıştır ve üreticinin çip spesifikasyonlarında belirtilmiştir. Genellikle DRAM için milisaniye ve eDRAM için mikrosaniye aralığındadır . DDR2 SDRAM yongaları için 64 ms'dir. Bellek hücresi kapasitörlerinde depolanan yükün kaçak akımlara oranına bağlıdır. Her yeni nesil bellek yongasıyla kapasitörlerin geometrisinin küçülmesine ve dolayısıyla sonraki nesil kapasitörlerin daha az şarj depolamasına rağmen, DRAM için yenileme süreleri iyileşiyor; 1M çipler için 8 ms'den, 16M çipler için 32 ms'den 256M çipler için 64 ms'ye kadar. Bu iyileştirme, esas olarak, önemli ölçüde daha az sızıntıya neden olan transistörlerin geliştirilmesiyle elde edilir. Daha uzun yenileme süresi, cihaz süresinin daha küçük bir bölümünün yenileme ile meşgul olduğu ve bellek erişimleri için daha fazla zaman kaldığı anlamına gelir. Yenileme ek yükü, önceki DRAM'lerde yonga süresinin %10'unu işgal etmesine rağmen, modern yongalarda bu oran %1'den azdır.

Yarıiletkenlerde kaçak akımlar sıcaklıkla arttığından, yüksek sıcaklıkta yenileme sürelerinin kısaltılması gerekir. DDR2 SDRAM yongaları, sıcaklık telafili bir yenileme yapısına sahiptir; çip kutusu sıcaklığı 85 °C'yi (185°F) aştığında yenileme döngüsü süresi yarıya indirilmelidir.

Okunabilir şarj değerlerinin ve dolayısıyla çoğu DRAM bellek hücresindeki verilerin fiili kalıcılığı, 1-10 saniyeye kadar yenileme süresinden çok daha uzundur. Bununla birlikte, transistör kaçak akımları, işlem varyasyonu nedeniyle aynı çip üzerindeki farklı bellek hücreleri arasında büyük farklılıklar gösterir. Tek bir bit kaybolmadan önce tüm bellek hücrelerinin yenilendiğinden emin olmak için üreticilerin yenileme sürelerini ihtiyatlı bir şekilde kısa tutmaları gerekir.

Bu sık DRAM yenileme , bekleme modunda düşük güçlü elektronik cihazlar tarafından çekilen toplam gücün üçte birini tüketir . Araştırmacılar, sıcaklık telafili yenileme (TCR) ve DRAM'de (RAPID) alıkoymaya duyarlı yerleştirme dahil olmak üzere yenileme hızını azaltarak şarjlar arasında pil çalışma süresini uzatmak için çeşitli yaklaşımlar önerdiler. Deneyler, kullanıma hazır tipik bir DRAM yongasında, yalnızca birkaç zayıf hücrenin gerçekten en kötü durumda 64 ms yenileme aralığını gerektirdiğini ve o zaman bile yalnızca belirtilen sıcaklık aralığının en yüksek ucunda olduğunu gösteriyor. Oda sıcaklığında (örn. 24 °C (75 °F)), doğru çalışma için aynı zayıf hücrelerin her 500 ms'de bir yenilenmesi gerekir. Sistem sayfaların en zayıf %1'ini kullanmaktan kaçınabiliyorsa, sayfaların kalan %99'unun doğru çalışması için tipik bir DRAM'in 70 °C'de (158 °F) bile yalnızca saniyede bir yenilenmesi gerekir. Bazı deneyler, bu iki tamamlayıcı tekniği birleştirerek oda sıcaklığında 10 saniyelik yenileme aralıklarında doğru çalışmayı sağlar.

Hataya dayanıklı uygulamalar (örneğin grafik uygulamaları) için, DRAM veya eDRAM'de depolanan kritik olmayan verilerin, tutma sürelerinden daha düşük bir hızda yenilenmesi, yaklaşık hesaplamaya bir örnek olan küçük kalite kayıplarıyla enerji tasarrufu sağlar .

SRAM ve DRAM bellek teknolojileri

SRAM

Olarak statik rasgele erişimli bellek (SRAM), yarı iletken bellek başka tipi, veri bir kapasitör üzerindeki yük olarak depolanır, ancak bir çapraz-bağlanmış bir çift değildir inverter SRAM yenilenmesi gerekmez, böylece. İki temel bellek türünün avantajları ve dezavantajları vardır. Statik bellek, açıldığında kalıcı olarak kabul edilebilir, yani bir kez yazıldığında, bellek özel olarak değiştirilene kadar kalır ve bu nedenle kullanımı sistem tasarımı açısından basit olma eğilimindedir. Bununla birlikte, her SRAM hücresinin dahili yapısı, bir DRAM hücresi için gereken tek transistöre kıyasla altı transistör gerektirir, bu nedenle SRAM'ın yoğunluğu DRAM'den çok daha düşüktür ve bit başına fiyat çok daha yüksektir.

CPU tabanlı yenileme

Bazı eski mikroişlemciler (örneğin Zilog Z80 ), dinamik bellek hücrelerini yenilemek için Satır-Adres Strobe (RAS) sağlayabilen özel dahili kayıtlar sağladı, kayıt her yenileme döngüsünde artırıldı. Bu aynı zamanda diğer tarafından başarılı olabilir entegre devreler bu zaten oluşturulmuş bisiklet RAM genelinde erişirse, sistemde zaten kullanılıyor ( örn Motorola 6845 ). Z80 gibi CPU'larda, basitleştirici donanım tasarımı nedeniyle RAS yenilemesinin kullanılabilirliği büyük bir satış noktasıydı. Burada, RAS yenileme, operasyonel olarak yedekli saat döngüleri (T-Durumları) sırasında, yani veri yollarının gerekli olmayabileceği komut kod çözme/yürütme sırasında benzersiz bir adres ve kontrol telleri kombinasyonu ile bildirilir. Bu tür T durumları sırasında veri yolunun etkin olmaması yerine, yenileme kaydı, yenileme devresini belirtmek için bir kontrol telleri kombinasyonu ile birlikte adres veriyolunda sunulacaktır.

Z80'in ilk sürümlerinde, 16 kB RAM yongalarının her yerde bulunması ( yani 128 satıra sahip) ve öngörü eksikliği olan bir şey, R yazmacının yalnızca 7 bit genişliğinde (0–127, yani 128 satır) artmasıyla sonuçlandı. ; 8. bit kullanıcı tarafından ayarlanabilir, ancak dahili döngü tarafından değiştirilmeden bırakılır. 64 kbit+ DRAM yongalarının (8 bit RAS ile) hızlı gelişiyle birlikte, eksik 8. biti sentezlemek ve birkaç milisaniye sonra bellek bloklarının kaybolmasını önlemek için yenileme sinyali etrafında ekstra devre veya mantık inşa edilmesi gerekiyordu. Bazı bağlamlarda, 8. biti uygun zamanda çevirmek ve böylece R yazmacının tüm aralığını (256 satır) kapsamak için kesmeleri kullanmak mümkündü . Belki daha evrensel ama aynı zamanda donanım açısından daha karmaşık olan başka bir yöntem, çıktısı R kaydı yerine yenileme RAS adresini sağlayacak 8 bitlik bir sayaç yongası kullanmaktı: CPU'dan gelen yenileme sinyali saat olarak kullanıldı. bu sayaç için, yenilenecek bellek satırının her yenileme döngüsüyle artırılmasıyla sonuçlanır. Z80 çekirdeğinin sonraki sürümleri ve lisanslı "benzerleri", otomatik döngüye 8. bitin dahil edilmemesini düzeltti ve modern CPU'lar, DRAM yenilemesi için zengin hepsi bir arada çözümler sağlamak üzere bu tür temel provizyonu büyük ölçüde genişletti.

psödostatik DRAM

Sözde statik RAM (PSRAM veya PSDRAM), statik RAM'e (SRAM) benzer şekilde davranmasını sağlamak için yerleşik yenileme ve adres kontrol devresine sahip dinamik RAM'dir. Yüksek DRAM yoğunluğunu gerçek SRAM'ın kullanım kolaylığı ile birleştirir. PSRAM (Numonyx tarafından yapılmıştır) Apple iPhone'da ve diğer gömülü sistemlerde kullanılır.

Bazı DRAM bileşenlerinin, sözde statik işlem için gerekli olan mantığın çoğunu içeren bir "kendi kendini yenileme modu" vardır, ancak bu mod genellikle bekleme moduna eşdeğerdir. PSRAM'de olduğu gibi ayrı bir DRAM denetleyicisi olmadan çalışmaya izin vermemek yerine, öncelikle bir sistemin DRAM'de depolanan verileri kaybetmeden güç tasarrufu yapmak için DRAM denetleyicisinin çalışmasını askıya almasına izin vermek için sağlanmıştır. Bir gömülü PSRAM varyantı adı altında MoSys tarafından satılmaktadır 1T-SRAM . Teknik olarak DRAM'dir, ancak SRAM gibi davranır ve Nintendo Gamecube ve Wii konsollarında kullanılır.

Yenileme kullanan diğer bellek teknolojileri

Birkaç erken bilgisayar bellek teknolojisi, bellek yenilemeye benzer şekilde periyodik işlemler gerektirdi. Williams, boru DRAM olduğu gibi, bu yenilenir sürece her bir bit kademeli bozunurdu değerleri depolanmış olan bir kapasitif hafıza hemen hemen hiç, çünkü, en yakın benzerlik vardır.

İçinde manyetik çekirdek bellek , her bir bellek hücre enerji kapalı, ancak herhangi bir hafıza hücresi veri okuma içeriğini siler bile süresiz veri muhafaza edebilir. Sonuç olarak, bellek denetleyicisi , tahribatsız bir okuma işlemi yanılsaması yaratmak için tipik olarak her okuma döngüsünden sonra bir yenileme döngüsü ekledi .

Gecikme hattı belleği , veriler aslında bir iletim hattında bir sinyal olarak depolandığından, sürekli yenileme gerektirir . Bu durumda yenileme hızı, bellek erişim süresiyle karşılaştırılabilir .

Ayrıca bakınız

Referanslar