|
DarkHardware Donanim Incelemeleri ve Haberleri Sitesi
| 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.
|