30 Temmuz 2010 Cuma


ECC Özellikli Bellekler Üzerine

Yazar: Alper Coşkun
Tarih: Nisan 2001

Nedir bu ECC dedikleri, nasıl çalışır? Bu kısa çalışmada, kullanıcıların genelde merak ettiği ECC özellikli belleklerin ne olduğu ve nasıl çalıştığı konusunu oldukça  basitleştirerek anlatmayı amaçladık.

Error Correction (=Hata Düzeltme) Nedir?

Dijital elektronik sistemlerde çoğunuzun bildiği gibi veriler 0 ve 1'lerle ifade edilir. 0 ve 1'lerin, bir yerden baska bir yere aktarılması sırasında zarar görmesi (yani 0'in 1 olarak veya 1'in 0 olarak algılanması) mümkündür. Error Correction ise bu hataları bulup düzelten donanım veya yazılım çözümlerine verilen isimdir.

Error Correction nasıl çalışır?

0 ve 1'ler bilgisayar ortamında gruplar halinde işlem görürler. En küçük anlamlı bit grubuna "word" denir. Bir "word", sistemden sisteme değişik sayıda bit'ten oluşur. Genellikle 16, 32 veya 64 bittir. Hata düzeltme sistemlerinde, her "word" 'a bir kaç bit daha eklenerek, ve sonra bu eklenen bitlerden yararlanılarak, oluşan hatalar düzeltilmeye çalışılır. Her "word" 'a eklenen bu "Error Correction", yani "Hata Düzeltme" bitleri, algoritmalara hatayı düzeltirken yardımcı olur.

Başka bir deyişle, Türkçe’deki harfleri birer bit gibi düşünelim. Bu harfler yanyana gelerek anlamlı kelimeler oluştururlar. Eğer harflerden biri değişirse, anlamlı kelime büyük bir ihtimalle bozulacaktır. Error Correction sisteminde de bu kelimelerin anlamlı olup olmadığı kontrol edilir. Eğer anlamlı degilse, bozuk kelime kendisine en yakın olan kelimeyle değiştirilerek düzeltilir.

Ya ECC (Error Correction Code/Hata Düzeltme Kodu) nedir?

Belleklerde kullanılan bir hata düzeltme yöntemi olan ECC, bellekteki hataları saptayıp düzeltebilen bir sistemdir. Tek bitlik hataları düzeltebilir. Eğer   hata birden fazla bitte oluşursa bu hataları algılayabilir, ama düzeltemez. Uygulamada, birden fazla bitin hatalı olma ihtimali zaten çok azdır. Buna rağmen, çok özel sistemler için, birden fazla bitte oluşan hataları da düzeltebilen ECC sistemleri geliştirilmiştir.

ECC sisteminde bir "word" 'a eklenen bit sayısı şu şekilde bulunur:

Bit sayısı (r) ve "word" uzunluğu (m) ise,

(m+r+1) <= 2^r

Bu yüzden (m=32) bitlik bir "word" için, r <= 6 olacaktir. Böylece bir bellek boşluğu 32 bit değil, en az 38 bit tutmak zorundadır.

Daha fazla bit tutulmak zorunda oldugu için ECC bellekler, normal belleklere göre %2 kadar daha yavas çalışırlar. Hata düzeltme skorları çok yüksek olmakla birlikle asla %100 değildir.

ECC sistemi, bellek konusuna aşina olanlara eskiden çok duyduğumuz Parity yani Eşlik konusunu hatırlatacaktır. Parity sisteminde de her 8 bit için bir eksta bir eklenir. Yalnız parity sistemi sadece hatayı saptayabilir, hata düzeltme şansı yoktur.

Günümüzde üretilen bellek yongalarının giderek artan kalitesi, oluşabilecek bellek hatalarını önemsiz düzeye indirmiştir. Bu yüzden sıradan bir ev kullanıcısı için bu hata düzeltme sistemlerine sahip bellek modüllerini kullanmanın fazla bir anlamı yoktur. Ama çalışmasının bir an bile aksamaması ve kesinlikle en ufak bir hatanın oluşmaması istenen özel sunucu sistemlerde, veri güvenliğini sağlamak için mutlaka ECC özellikli bellek modülleri kullanılır. Yongaların taşıdığı fazladan bitler yüzünden, ECC bellek modülleri her zaman sıradan bellek modüllerinden daha pahalıdır. Kullanılan ECC özellikli bellek modüllerinin, bu özelliğinin işlemesi için anakartın yonga setinin de ECC bellek destekli olması gerektiğini de hatırlatmak gerek.

Ana Sayfaya Dönüş

Güncel Haberler

DarkHardware Test Sistemlerinde

kullanılmaktadır.