KOREKSI DAN DETEKSI KESALAHAN PEMBACAAN PADA SISTEM MEMORI SEMIKONDUKTOR MEMORI UTAMA DENGAN KODE HAMMING Kuspriyanto Zainuddin Siata [email protected] [email protected] Departemen Teknik Elektro, Institut Teknologi Bandung Abstrak Persoalan kesalahan pembacaan Sistem Memori Semikonduktor sub Sistem Memori utama komputer adalah merupakan persoalan optimalisasi kehandalan memori, yang dapat disebabkan oleh kegagalan keras (hard failures) dan kesahan lunak (soft errors), dan merupakan salah satu persoalan yang sulit dipecahkan Dengan menggunakan kode koreksi Hamming kesalahan pembacaan oleh memori dapat di koreksi dan di Deteksi dengan mudah. Hal ini bertujuan untuk meningkatkan kehandalan memori, dan untuk memperoleh suatu cara penyeleseian yang optimal. Kata kunci : Memori semiconductor koreksi kesalahan, kegagalan keras (hard failures) dan kesalahan lunak (soft errors) kode Hamming. 1. PENDAHULUAN Memori (semikoduktor) sebagai sub system memori utama computer adalah memori Elemen dasarnya adalah sel memori, dan mempunyai sifat sebagai berikut : Sel memori memiliki dua keadaan yaitu stabil dan semi stabil, yang dapat digunakan untuk mempresentasikan bilangan biner 1 dan 0. Sel memori mempunyai kemampuan untuk di tulisi (sedikitnya satu kali), untuk menetapkan keadaan. Sel memori mempunyai kemampuan untuk di baca untuk merasakan keadaan. System memori semikunduktor dalam menjalankan tugasnya dapat mempunyai kesalahan yang di golongkan sebagai kegagalan keras(hard failures) dan kesalahan lunak(soft errors). Kegagalan keras merupakan kerusakan secara fisik yang permanen sehingga sel memori atau sel-sel yang masih aktif terpengaruh sehingga tidak dapat digunakan untuk menyimpan data, tetapi mencocokannya dengan 0 atau 1 atau perpindahan yang secara tidak teratur antara 0 dan 1. Penyebab kesalahan ini dapat saja terjadi karena faktor lingkungan, cacat pabrikasi, dan cara pemakaiannya. Sedangkan kesalahan lunak adalah suatu acak, peristiwa nondestructive yang mengubah isi satu atau lebih sel memori, tanpa merusak memori,.kesalahan ini dapat disebabkan oleh power supply atau partikel alfa. Partikel tersebut hasil dari pelapukan radioaktif dan secara umum menyusahkan karena nucleu radio aktif ditemukan pada jumlah kecil dalam hampir semua material memori. Baik kesalahan keras maupun lunak jelas tidak diinginkan, dan system memori utama yang moderen kebanyakan mengandung logika untuk mendeteksi dan mengoreksi kesalahan. Salah satu solusi yang digunakan untuk mengatasi masalah tersebut adalah dengan menggunakan sitem pengkoreksian kesalahan kode Hamming. Yang ditemukan oleh Prof. Wesley Richard Hamming di laboratorium bell dengan menggunakan diagram Venn 2. KODE KOREKSI KESALAHAN Gambar 1. Menjelaskan secara umum tentang proses yang terjadi. Ketika data dibaca ke dalam memori, kalkulasi yang di gambarkan sebagai fungsi f, di bentuk dergan data tersebut untuk menghasilkan kode. Baik data maupun kode itu disimpan. Jadi, apabila sebuah word M bit data akan di simpan, dan kode memiliki panjang K bit, maka ukuran actual yang di simpan adalah M + K bit. Ketika word yang sebelumnya tersimpan akan dibaca, maka kode digunakan untuk mendeteksi dan mengoreksi kesalahan.yang mungkin terjadi. Bit-bit Kode K yang baru di hasilkan dari m bit data dan di bandingkan dengan bit kode yang diambil. Perbandingan tersebut akan menghasilkan menghasilkan salah satu dari tiga kemungkinan : 1 Sinyal Kesalahan M Korektor Data masuk M f Gambar 1. kesalahan K Memori K K f Fungsi Kode Pembanding Data Keluar Koreksi (Gambar 2c), maka error itu akan dengan mudah ditemukan. Dengan memeriksa bit paritas, cacatcacat dapat ditemukan pada lingkaran A dan C namun tidak pada lingkaran B. hanya salah satu dari kompartemen berada pada A dan C namun tidak pada B. karena itu error dapat dikoreksi dengan mengubah bit tersebut. Untuk menjelaskan kosep tersebut, kita akan membuat kode yang dapat mendeteksi dan mengoreksi error bit tunggal di dalam word 8 bit Untuk memulainya, kita tentukan panjang kode seharusnya. Sehubungan dengan gambar 1, logika perbandingan menerimanya sebagai input dua nillai K-Bit. Perbandingan bit demi bit dilakukan dengan memperhatikan exclusive-or kedua input itu. Hasilnya disebut sebagai sindrom word. Jadi sindrom adalah 0 atau 1apabila terdapat atau tidak cocok data posisi bit kedua input tersebut. (a) Tidak ada kesalahan yang dideteksi. Bit bit data yang diambil dikirimkan Suatu kesalahan dideteksi, dan sangat mungkin untuk melakukan koreksi kesalaha. Bit bit data ditambah bit-bit koreksi kesalahan diberikan ke korektor, yang menghasilkan set Mbit yang dikoreksi untuk dikirimkan. Suatu kesalahan dideteksi, tetapi tidak mungkin untuk melakukan koreksi itu. Kondisi ini dilaporkan. Kode yang beroperasi dengan cara seperti ini disebut sebagai error-correting code. Sebuah kode dicirikan oleh sejumlah error bit data dalam word yang dapat dikoreksi dan di deteksinya. . 3. KODEHAMMING (HAMMINGCODES) Kode perbaikan error yang paling sederhana adalah kode Hamming yang diciptakana oleh Prof. Wesley Richard Hamming di laboratorium bell. (Gambar 2), menggunakan diagram Venn untuk menjelaskan penggunaan kode ini pada word 4-bit (M=4). Dengan tiga buah lingkaran, yang berpotongan, terdapat tujuh kompartemen. Kita akan memberikan 4 buah bit data ke kompartemen yang terletak di tengah (Gambar 2a). kompartemen sisanya diisi dengan apa yang kita sebut bit paritas. Setiap bit paritas dipilih sehingga bilangan 1 dalam lingkaran berjumlah genap (Gambar 2b). Jadi, karena lingkaran A terdiri dari tiga buah bilangan 1, maka bit paritas dalam lingkaran itu disetel menjadi 1. sekarang, apabila suatu error mengubah salah satu bit data A B (b) 1 1 0 1 1 1 1 1 0 0 0 0 C (c ) (d) 1 0 1 1 0 1 1 0 1 0 0 0 0 0 Gambar 2 Error-Correcting code dari Hamming Dengan demikian sindron word mempunyai lebar K dan memiliki range 2 k yang berada k diantara 0 dan 2 -1. Nilai 0 berarti bahwa tidak k terdeteksi error, yang menyisakan 2 – 1 buah nilai untuk mengindikasikan bit mana yang mengalami error, bila terdapat error. Sekarang, karena suatu error terjadi pada sembarang M bit data atau K bit check, maka kita harus memiliki. k 2 -1 > M + K Persamaan ini memberikan jumlah bit yang diperlukan untuk mengoreksi error bit tunggal didalam sebuah word yang berisi M buah bit data. Pada table 1 merupakan daftar bit-bit cek 2 yang diperlukan panjang word data. untuk bermacam-macam Bitbit Data 8 16 32 64 128 256 Bitbit cek 4 5 6 7 8 9 %Pening katan 50 31,25 18,75 10,94 6,25 3,52 Pengkoreksian Kesalahan tunggal Pendeteksian kesalahan ganda Bit%Pen bit ing Cek katan 5 62,5 6 37,5 7 21,875 8 12,5 9 7,03 10 3,91 panjang word C1 = M1 M2 M4 M5 M7 C2 = M1 M3 M4 M6 M7 C4 = M2 M3 M4 M8 C8 = M5 M6 M7 M8 Nomor Posisi Setiap bit cek beroperasi pada setiap bit data yang nomor posisinya berisi bilangan 1 pada kolomnya. Jadi, posisi-posisi bit data 3, 5, 7, 9 12 1100 M8 11 1011 M7 3, 6, 7, 10, dan 11 semuanya berisi suku 2 ; Posisi-posisi bit 5, 6, 7, dan 12 seluruhnya berisi 10 1010 M6 suku 2 ; dan posisi-posisi bit 9, 10, 11, dan 12 9 1001 M5 berisi suku 2 8 1000 7 0111 M4 6 0110 M3 5 0101 4 0100 3 0011 2 0010 C2 1 0001 C1 0 dan 11semuanya berisi suku 2 ; posisi-posisi bit 1 2 3 ; Ditinjau dari sisi lain, posisi bit n diperiksa oleh bit-bit C i sehingga C8 M2 C4 M1 Gambar 3. Layout Bit-bit data dan Bit-bit cek Dari table ini, kita akan ketahui bahwa suatu word 8 bit data memerlukan 4 bit chek. Untuk mudahnya kita akan menurunkan sindrom 4 bit dengan memakai karakteristik berikut ini : Untuk mencapai karakteristik ini, maka bit data dan bit cek diatur menjadi word 12- bit seperti yang dapat dilihat pada gambar 3. posisi-posisi bit diberi nomor dari 1 hingga 12. posisi-posisi bit yang memiliki bilangan posisinya pangkat 2 tersebut dikenal sebagai bit-bit check. Bit-bit check ini dihitung sebagai berikut, dengan symbol menandakan operasi exclusive-or : Posis bit Bit . Cek Tabel 1. Kenaikan dengan koreksi kesalahan Bit. Data Pengkoreksian, Kesalahan tunggal terjadi suatu error pada salah satu dari 4 buah bit check. Jika sindrom berisi lebih dari sebuah bit disetel ke 1, maka nilai numeric sindrom mengindikasikan posisi bit data yang mengalami error. Bit data ini diinversikan untuk keperluan koreksi. Jika sindrom semuanya berisi 0, maka tidak terdapat error. Jika sindrom berisi sebuah dan hanya sebuah bityang disetel ke 1, makatelah i = n. Misalnya, posisi bit 7 diperiksa oleh bit-bit yang berada pada posisi 4, 2, dan 1; dan 7 = 4 + 2 + 1. Sekarang kita periksa bahwa pola ini akan berfungsi dengan menggunakan sebuah contoh. contoh Anggap bahwa word input 8bit sama dengan 00111001. dengan bit data M1 berada pada posisi paling kanan. Maka perhitungannya adalah sebagai berikut : C1= 1 0 1 1 0= 1 C2= 1 0 1 1 0 =1 C4= 0 0 1 0 = 0 C8= 1 1 0 0 = 0 Misalkan sekarang bit data 3 mengalami error dan berubah dari 0 menjadi 1. ketika bit-bit check dikalkulasi ulang, kita akan memperoleh 3 C2= 1 1 1 1 1= 0 C4= 0 1 1 0 = 1 C8= 1 1 0 0 = 0 Ketika bit cek yang baru dibandingkan dengan bit cek yang lama, word sindrom dibentuk : C8 0 0 C4 1 0 C2 1 0 C1 1 1 0 1 1 0 Hasilnya adalah 0110, yang menandakan bahwa posisi bit 6 yang berisi bit data 3 berisi error. Contoh lain kita akan koreksi word input 8-bit sama dengan . 01101101 dengan bit data M1 berada pada posisi paling kanan. Maka perhitungannya adalah sebagai berikut : data bit ke 3 merupakan suatu kesalahan. Gambar 4. Menjelaskan kalkulasi diatas. Bit-bit data dan check ditempatkan dengan tepat pada word 12-bit. Membuatlah layout nomor posisi masing-masing bit di dalam kolom-kolom, bilangan 1 pada setiap baris mengindikasikan bit-bit data yang diperiksa oleh bit check bagi baris itu karena hasilnya hanya dipengaruhi oleh bilangan-bilangan 1, maka hanya kolom-kolom yang berisi bilangan 1 di cetak tebal dan digaris bawahi untuk maksud identifikasi. Kemudian Word diambil sebagai 0= 1 Word tersimpan sebagai 1 Bit. Data 1 12 M8 11000 01100 11 M7 10110 01011 10 M6 10101 11010 9 M5 10011 11001 Bit . Cek 0 Posis bit C1= 1 8 C8 7 M4 01111 10111 C1= 1 0 1 0 1= 1 6 M3 01000 10110 C2= 1 1 1 1 1= 1 5 M2 01010 00101 C4= 0 1 1 0 = 0 4 C8= 0 1 1 0 = 0 3 M1 00111 10011 Anggap bit 4 error. Maka dari 1 di set ke 0 sehingga C1= 1 0 0 0 1= 0 C2= 1 1 0 1 1= 0 C4= 0 1 0 0 = 1 C8= 0 1 1 0 = 0 C4 2 C2 1 C1 Gambar 4. Penurunan bit check Bit-bit check dapat dihitung pada sepanjang barisnya. Hasilnya ditunjukkan bagi bit-bit data orisinal dan bit-bit data yang mengandung error. Ketika bit cek yang baru dibandingkan dengan bit cek yang lama, word sindrom dibentuk : C8 C4 C2 C1 0 0 1 1 0 1 0 0 0 1 1 1 sindron word hasil adalah 0111 = 7 artinya posisi bit ke 7 yang berisi 4 (a) implementasi IBM 30xx menggunakan kode SEC-DEC 8-bit bagi ke -64 bit data di dalam memori utama-nya. Sehingga ukuran memori utama sebenarnya menjadi 12% lebih besar di banding dengan yang di ketahui oleh pengguna computer-komputer VAX menggunakan SECDEC 7 bit bagi ke 32 bit memorinya, sehingga terdapat overhead sebesar 22%. 1. yang ditunjukkan kode seperti itu memerlukan satu bit tambahan bandingkan dengan kode SEC. (b) 0 1 0 1 1 1 1 0 1 1 1 0 1 (c) 0 0 (d) 4. 1 0 1 1 0 1 1 0 0 1 0 1 0 0 0 0 1 (e) (f) 1 0 0 1 0 0 1 1 1 1 0 1 1 0 1 0 1 Gambar 5. Kode SEC-DEC Hamming Kode yang baru diterangkan diatas dikenal sebagai kode single-error-correcting (SEC) Umumnya, memeori semiconductor dilengakapi dengan kode single-error-correcting, double error-detecting (SEC-DEC). seperti ditunjukkan pada table 1. kode-kode tersebut menurunkan 1 bit tambahan dibandingkan dengan kode-kode SEC. Gambar 5. mengilustrasikan cara kerja kode tersebut, juga yang merupakan word data 4 bit. Dari gambar itu diketahui bahwa bila terjadi dua error (gambar 5. c) maka prosedur pemeriksaan akan tersesat (d), dan memperburuk masalah dengan terjadinya error ketiga (e).untuk mengatasi masalah ini, maka ditambahkan bit kedelapan kepada set ini sehingga jumlah kseluruhan bilangan 1 di dalam diagram menjadi genap. Bit paritas tambahan akan dapat menangkap error (f). Error–correcting code akan meningkatkan reliabilitas memori dengan resiko terjadinya penambahan kompleksitas. Dengan organisasi satu bit perkeping, umunya kode SEC-DEC dianggap memadai. Misalnya KESIMPULAN a. Dengan menyadari adanya kesalahan kesalahan pada system memori semi konduktor memori utama computer yang dapat berupa kegagalan keras maupun kesalahan lunak diharapkan koreksi kesalahan dengan menggunakan kode Hamming. dapat di koreksi dan di deteksi sehingga perancangan system koreksi kode Hamming dapat berkembang lebih pesat dengan pencapaian performansi lebih baik (optimal). b. Pada prinsipnya arsitektur memori semi konduktor memori utama computer generasi baru telah di rancang dan mengandung logika untuk mendeteksi dan mengoreksi kesalahan dan diharapkan akan menjadi salah satu jenis memori penting di masa mendatang c. Sistim Pendeteksian dan pengkoreksian data error dengan kode hamming cukup efektif digunakan dalam system memeori semikonduktor. d. Koreksian, dengan pengorganisasian kode pengkoreksian kesalahan tunggal dengan pendeteksian kesalahan ganda (SECDEC) secara umum cukup untuk dipertimbangkan pengembangan selanjutnya karena telah terbukti dapat memberikan performansi yang sesuai dengan proses yang bersifat penggunaan bit kode pengkoreksian kesalahan tunggal dengan pendeteksian kesalahan ganda (SECDEC) dan salah satu dari yang pailing umum digunakan adalah kode Hamming (Hamming codes) 5. DAFTAR PUSTAKA a. Willian Stalling.Computer Organization and Architecture : Design for performance.,Fifth Eddition Prentice-Hall International, Inc b. Sharma, Semiconductor Memories: Technology, testing, and realibility, A. New York: IEE press, 1997. c. Error Detecting and Correction. http burks. Bringhton. Ac. Uk/ burks/ foldoc/ 94 38.htm d. Hamming codes. http//burks. Bringhton.Ac. Uk/ burks/ foldoc/ 275/ 51.htm 5 TUGAS MATA KULIAH ARSITEKTUR KOMPUTER LANJUT (EC 6020) Oleh : ZAINUDDIN NIM: 23204094 PROGRAM MAGISTER TEKNIK ELEKTRO BIDANG KHUSUS TEKNOLOGI INFORMASI - DIKMENJUR INSTITUT TEKNOLOGI BANDUNG 2005 home 6 7