Teknoloji meraklıları zaman zaman ECC (Error Correction Code) kavramıyla karşılaşmıştır. Baştan belirtmek gerekirse, bu teknoloji genellikle sunucu ve iş istasyonlarında, yani kurumsal alanda kullanılmakta. Hata düzeltme kodlu bellekler, RAM yongalarında meydana gelebilecek hataları otomatik olarak algılayıp düzeltmek üzere geliştiriliyor.
Elektronik/manyetik parazitler veya kozmik ışınlar bellekteki verilerin bozulmasına sebep olabilir. ECC’nin amacı ise bozulan veriyi düzeltmek, düzeltemediği durumda da sisteme raporlamaktır. DDR5 teknolojisiyle birlikte gündeme gelen on-die ECC (ODECC) teknolojisi tüketiciler arasında birçok tartışmaya ve kafa karışıklığına neden oldu. Öncelikle bu teknolojinin standart ECC teknolojisinden çok farklı olduğunu belirtelim. Şimdi ECC’ye kısaca değineceğiz, ardından ODECC’nin (yonga kalıbı üzerinde ECC) farklarından bahsedeceğiz.
Hata düzeltme kodu (Error correction code), bellekte depolanan verilerin doğru olmasını sağlayan matematiksel bir işlemdir. ECC, bir hata durumunda sistemin doğru verileri gerçek zamanlı olarak yeniden oluşturmasına da izin verir.
ECC, RAM’deki sekiz bit gibi büyük veri gruplarındaki hataları tespit etmek için tek bir bit (eşlik biti/parity bit) kullanma yöntemi olan daha gelişmiş bir eşlik biçimi kullanmakta. Ne yazık ki bir eşlik biti sistemin bir hatayı algılamasına izin verirken, veri hatasını düzeltmek için yeterli bilgi sağlamaz.
Çoğu sistem, verileri 64 bitlik daha büyük parçalar halinde taşır. ECC, her sekiz bitlik veri için bir ekstra eşlik biti üretmek yerine, 64 bit veri başına yedi ekstra bit üretir. Sistem, diğer 64 bitin doğru olduğundan emin olmak için ekstra yedi bitlik veri üzerinde karmaşık bir matematiksel algoritma uygular. Tek bir bitin yanlış olması durumunda (tek bitlik bir hata), ECC algoritması verileri yeniden oluşturabilir, ancak daha büyük hatalar (iki veya daha fazla bit) olduğunda bunu sadece sisteme bildirebilir.
Standart ECC’den farklı olan ODECC, öncelikle gelişmiş üretim teknolojilerinde verimliliği artırmayı amaçlıyor ve böylelikle daha ucuz DRAM yongalar üretilebiliyor. On-die ECC, yalnızca yenilemeler sırasında bir hücrede veya satırda meydana gelen hataları algılamakta. Veriler hücreden önbelleğe veya CPU’ya taşındığında, bir bit kayması veya veri bozulması varsa bu durum on-die ECC tarafından düzeltilmiyor. Standart ECC ise hücre içindeki ve başka bir cihaza taşınırken yaşanacak veri bozulmalarını düzeltme yeteneğine sahip.
DDR5, verimliliği artırmak ve bellek kontrolcüsü için veri erişimi gecikmelerini azaltmak için bellek modülünü iki bağımsız 32 bit adreslenebilir alt kanala böler. DDR5 modülünün veri genişliği 64 bit, yani aynı. Ancak bu veri yolu 32 bitlik iki adreslenebilir kanala bölündüğünde genel performans artıyor. Sunucu sınıfı bellekler (RDIMM’ler), ECC desteği için her alt kanala 8 bit eklenerek alt kanal başına toplam 40 bit veya sıra başına 80 bit veri yolu sağlar. Çift sıralı modüller dört adet 32 bit alt kanala sahiptir.
On-die ECC, DRAM çipindeki bit hatalarını düzeltmek için tasarlanmış yeni bir özellik. CPU ve GPU’larda olduğu gibi, RAM’lerin üretiminde kullanılan üretim teknolojileri de gelişiyor. Yeni litografi teknikleriyle DRAM yongaların yoğunluğu arttıkça veri sızıntılarının potansiyeli de artıyor. DDR5 yongalarına entegre olan ECC ise çip içindeki hataları düzeltiyor, güvenilirliği artırıyor ve kusur oranlarını en aza indirirken riski azaltıyor.
Bu teknoloji, çip dışındaki hataları veya modül ile CPU içinde yer alan bellek kontrolcüsü arasındaki veri yolunda meydana gelen hataları düzeltme kabiliyetine sahip değil. Sunucular ve iş istasyonlarında kullanılan ECC özellikli işlemciler, tek veya çok bitli hataları anında düzeltebilen kodlama özelliğine sahip.
Devam edecek olursak, DDR5’in on-die ECC özelliği DDR kanal hatalarını düzeltmez. Yani işletmeler DDR5 ODECC desteğinin yanı sıra standartlaşan yan bant ECC teknolojisini kullanmaya devam edecektir. Uzun lafın kısası, kalıp üzerinde ECC (on-die ECC) teknolojisinin kapsamı çok daha dar.
Intel, yıllar önce ECC’nin profesyonel segmente özel olduğunu düşünerek yalnızca Xeon işlemcilerinde kullanmayı tercih etti. AMD bunu değiştirdi ve Ryzen işlemcilerine ECC desteği eklemeye başladı. Böylelikle ECC teknolojisinin maliyetleri arttı ve uygun ECC desteği RAM bulmak ayrı sorunlar ortaya çıktı. Ancak DDR5 standardı ile her şey değişiyor. ECC artık DDR5’in normal bir parçası haline geldi.
Yeni nesil işlemciler, veri tutarlılığı konusunda önbelleği ve diğer bileşenleri kontrol etmek için dahili olarak ECC (veya başka bir tür) kullanıyor. Ancak ECC destekli RAM olmadan işletim sisteminin CPU ile RAM arasındaki veya RAM içindeki dahili verileri kontrol etmesi mümkün değil.
İşletim sistemi bellek tutarlılığını bir dereceye kadar kontrol eder. Bu süreç yavaştır ve tam olarak güvenilir değildir. Sonuç olarak, işletim sistemi RAM’de depolanan verilerle ilgili tüm sorunları tespit edemez. Yani işlemlerin doğru veriler üzerinde yapılıp yapılmaması, verilerin doğru dosyada saklanıp saklanamaması gibi kontroller %100 olarak kontrol edilemez.
Günlük kullanımda bu pek de önemli değil. Örneğin Word belgesinde geçersiz bir karakterin olması büyük sorunlara yol açmaz. Ancak banka işlemlerinde her adım çok kritik.
Windows, veri tutarsızlığını algıladığında genellikle mavi ekran hatası gösterir. Söylediğimiz gibi, işletim sisteminin kontrolleri tam olarak güvenilir değil.