Abstrak - Zainuddin

advertisement
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
Download