History of the Computer – Memory Error Correction Codes Bagian 2 dari 2

32 bit atau 64 bit kata umum, tetapi untuk tujuan ilustrasi, kita akan menggunakan kata 7 bit dari contoh di atas, tanpa bit paritas. Kita perlu menghitung bit paritas tambahan untuk menulis ke dalam memori bersama dengan bit data, pada posisi bit yang sesuai.

101 1010 menjadi

1-0-1 C4-1-0-1 C3-0-c2-c1

Bit cek baru digunakan untuk menghasilkan paritas untuk bit yang sesuai. C1 memeriksa setiap bit alternatif, C2 memeriksa setiap alternatif 2 bit, C3 memeriksa setiap alternatif 4 bit, C4 memeriksa setiap alternatif 8 bit.

101 C101 C0CC

1 = 1 = 1 = 1 = 0 = C – C1 adalah 1 untuk membuat paritas ganjil

10 = = 10 = = C = – C2 adalah 1 untuk membuat paritas ganjil

=== = 101 C === – C3 adalah 1 untuk membuat paritas ganjil

101 C === ==== – C4 adalah 1 untuk membuat paritas ganjil

Jadi ECC (Error Correction Code) adalah 1111, dan kata itu menjadi

101 1101 1011

Hanya untuk keamanan, kita dapat menambahkan sedikit paritas untuk kata baru ini (tidak boleh terlalu berhati-hati!)

1101 1101 1011 Bit paritas keseluruhan tidak dipertimbangkan dalam pengkodean.

Kata ini, yang telah berkembang dari 7 bit menjadi 12 bit sekarang dapat ditulis ke memori. Ketika kita perlu membaca data dari memori, kita dapat memeriksa pola bit untuk melihat apakah kita memiliki masalah. Misalnya misalkan bit 7 dalam kata kami telah turun, dan sekarang 0. Sekali lagi kami menghasilkan ECC untuk membandingkan dengan yang kami simpan. Kata yang kita baca sekarang

1101 0001 0011 – bit paritas tidak benar, menunjukkan bahkan paritas. ECC yang kita baca adalah 1111 (sama seperti yang kami tulis). Hasilkan ECC baru.

101 C001 C0CC

1 = 1 = 0 = 1 = 0 = C – C1 adalah 0 untuk membuat paritas ganjil

10 = = 00 = = 0C = – C2 adalah 0 untuk membuat paritas ganjil

=== = 001 C === – C3 adalah 0 untuk membuat paritas ganjil

101 C === ==== – C4 adalah 1 untuk membuat paritas ganjil

ECC baru kami adalah 1000, sedangkan yang kami baca adalah 1111. Kami sekarang melakukan XOR (EXclusive OR) dari dua ECC ini. Ini berarti, di mana kita memiliki 1 bit dalam satu posisi bit, tetapi tidak keduanya, hasilnya adalah 1.

1111 – baca

1000 – dihasilkan

—- – XOR

0111 – hasil – C4 = 0, C1-3 = 1

Hasilnya disebut Error Syndrome, dan digunakan untuk memperbaiki bit yang gagal. Dalam hal ini kita memiliki bit C1, C2, dan C3 = 1. Ini memberi kita desimal 1 + 2 + 4 =7. Ketujuh bit dibalik dari 0 ke 1, mengembalikan data asli. Bit ECC dilucuti dan bit data diteruskan.

Seperti semua sistem pendeteksi kesalahan, semakin banyak logika yang Anda tambahkan, semakin banyak potensi yang ada untuk sesuatu yang salah! Kadang-kadang masalah dalam logika deteksi kesalahan, dan bukan data. Sistem ini mendeteksi kesalahan dalam bit pemeriksaan, serta bit data! Ini akan memperbaiki kesalahan bit tunggal, dan mendeteksi tetapi tidak memperbaiki beberapa kesalahan.