A. Unit Masukan dan Keluaran
Modul I/O merupakan peralatan antarmuka (interface)
bagi sistem bus atau switch sentral dan mengontrol satu atau lebih perangkat
peripheral. Modul I/O tidak hanya sekedar modul penghubung, tetapi sebuah
piranti yang berisi logika dalam melakukan fungsi komunikasi antara peripheral
dan bus komputer.
Ada beberapa alasan kenapa piranti – piranti
tidak langsung dihubungkan dengan bus sistem komputer, yaitu :
- Bervariasinya metode operasi piranti peripheral, sehingga tidak praktis apabila sistem komputer herus menangani berbagai macam sisem operasi piranti peripheral tersebut.
- Kecepatan transfer data piranti peripheral umumnya lebih lambat dari pada laju transfer data pada CPU maupun memori.
- Format data dan panjang data pada piranti peripheral seringkali berbeda dengan CPU, sehingga perlu modul untuk menselaraskannya.
- Sebagai piranti antarmuka ke CPU dan memori melalui bus sistem.
- Sebagai piranti antarmuka dengan peralatan peripheral lainnya dengan menggunakan link data tertentu.
1. Sistem Masukan & Keluaran Komputer
Bagaimana modul I/O dapat menjalankan tugasnya, yaitu menjembatani CPU dan memori dengan dunia luar merupakan hal yang terpenting untuk kita ketahui. Inti mempelajari sistem I/O suatu komputer adalah mengetahui fungsi dan struktur modul I/O. Perhatikan gambar 1 yang menyajikan model generik modul I/O.
1.1. 1.1 Fungsi
Modul I/O
Modul I/O adalah suatu komponen dalam sistem
komputer yang bertanggung jawab atas pengontrolan sebuah perangkat luar atau
lebih dan bertanggung jawab pula dalam pertukaran data antara perangkat luar
tersebut dengan memori utama ataupun dengan register – register CPU. Dalam
mewujudkan hal ini, diperlukan antarmuka internal dengan komputer (CPU dan
memori utama) dan antarmuka dengan perangkat eksternalnya untuk menjalankan
fungsi – fungsi pengontrolan.
Fungsi dalam menjalankan tugas bagi modul I/O
dapat dibagi menjadi beberapa katagori, yaitu:
·
Kontrol
dan pewaktuan.
·
Komunikasi
CPU.
·
Komunikasi
perangkat eksternal.
·
Pem-buffer-an
data.
·
Deteksi
kesalahan.
Contoh kontrol pemindahan data dari peripheral ke CPU melalui sebuah modul I/O dapat meliputi langkah – langkah berikut ini :
- Permintaan dan pemeriksaan status perangkat dari CPU ke modul I/O.
- Modul I/O memberi jawaban atas permintaan CPU.
- Apabila perangkat eksternal telah siap untuk transfer data, maka CPU akan mengirimkan perintah ke modul I/O.
- Modul I/O akan menerima paket data dengan panjang tertentu dari peripheral.
- Selanjutnya data dikirim ke CPU setelah diadakan sinkronisasi panjang data dan kecepatan transfer oleh modul I/O sehingga paket – paket data dapat diterima CPU dengan baik.
Adapun fungsi komunikasi antara CPU dan modul
I/O meliputi proses – proses berikut :
· Command
Decoding, yaitu modul
I/O menerima perintah – perintah dari CPU yang dikirimkan sebagai sinyal bagi
bus kontrol. Misalnya, sebuah modul I/O untuk disk dapat menerima perintah:
Read sector, Scan record ID, Format disk.
·
Data, pertukaran data antara CPU dan modul I/O
melalui bus data.
·
Status
Reporting, yaitu pelaporan
kondisi status modul I/O maupun perangkat
peripheral, umumnya berupa status kondisi Busy atau Ready. Juga status bermacam – macam kondisi kesalahan (error).
peripheral, umumnya berupa status kondisi Busy atau Ready. Juga status bermacam – macam kondisi kesalahan (error).
· Address
Recognition, bahwa peralatan
atau komponen penyusun komputer dapat dihubungi atau dipanggil maka harus
memiliki alamat yang unik, begitu pula pada perangkat peripheral, sehingga
setiap modul I/O harus mengetahui alamat peripheral yang dikontrolnya.
Pada sisi modul I/O ke perangkat peripheral
juga terdapat komunikasi yang meliputi komunikasi data, kontrol maupun status.
Perhatikan gambar 2 berikut.
1.2 Struktur
Modul I/O
Terdapat berbagai macam modul I/O seiring
perkembangan komputer itu sendiri,
contoh yang sederhana dan fleksibel adalah Intel 8255A yang sering disebut PPI
(Programmable Peripheral Interface). Bagaimanapun kompleksitas suatu modul I/O,
terdapat kemiripan struktur, seperti terlihat pada gambar 3.
contoh yang sederhana dan fleksibel adalah Intel 8255A yang sering disebut PPI
(Programmable Peripheral Interface). Bagaimanapun kompleksitas suatu modul I/O,
terdapat kemiripan struktur, seperti terlihat pada gambar 3.
2. Teknik Masukan/Keluaran
Terdapat tiga buah teknik dalam operasi I/O, yaitu: I/O terprogram, interrupt – driven I/O, dan DMA (Direct Memory Access). Ketiganya memiliki keunggulan maupun kelemahan, yang penggunaannya disesuaikan sesuai unjuk kerja masing – masing teknik.
2.1. I/O Terprogram
Pada I/O terprogram, data saling dipertukarkan antara CPU dan modul I/O. CPU mengeksekusi program yang memberikan operasi I/O kepada CPU secara langsung, seperti pemindahan data, pengiriman perintah baca maupun tulis, dan monitoring perangkat.
Kelemahan teknik ini adalah CPU akan menunggu sampai operasi I/O selesai dilakukan modul I/O sehingga akan membuang waktu, apalagi CPU lebih cepat proses operasinya. Dalam teknik ini, modul I/O tidak dapat melakukan interupsi kepada CPU terhadap proses – proses yang diinteruksikan padanya. Seluruh proses merupakan tanggung jawab CPU sampai operasi lengkap dilaksanakan.
Untuk melaksanakan perintah – perintah I/O, CPU akan mengeluarkan
sebuah alamat bagi modul I/O dan perangkat peripheralnya sehingga terspesifikasi
secara khusus dan sebuah perintah I/O yang akan dilakukan. Terdapat empat
klasifikasi perintah I/O, yaitu:
1. Perintah control.
Perintah ini
digunkan untuk mengaktivasi perangkat peripheral dan memberitahukan tugas yang diperintahkan
padanya.
2. Perintah test.
Perintah ini
digunakan CPU untuk menguji berbagai kondisi status modul I/O dan peripheralnya.
CPU perlu mengetahui perangkat peripheralnya dalam keadaan aktif dan siap digunakan,
juga untuk mengetahui operasi – operasi I/O yang dijalankan serta mendeteksi kesalahannya.
3. Perintah read.
Perintah pada
modul I/O untuk mengambil suatu paket data kemudian menaruh dalam buffer internal.
Proses selanjutnya paket data dikirim melalui bus data setelah terjadi
sinkronisasi data maupun kecepatan transfernya.
4. Perintah write.
Perintah ini kebalikan dari read.
CPU memerintahkan modul I/O untuk mengambil data dari bus data untuk diberikan
pada perangkat peripheral tujuan data tersebut.
2.2.
Interrupt – Driven I/O
Teknik interrupt – driven I/O memungkinkan
proses tidak membuang – buang waktu.Prosesnya adalah CPU mengeluarkan perintah
I/O pada modul I/O, bersamaan perintah I/O dijalankan modul I/O maka CPU akan
melakukan eksekusi perintah – perintah lainnya. Apabila modul I/O telah selesai
menjalankan instruksi yang diberikan padanya akan melakukan interupsi pada CPU
bahwa tugasnya telah selesai.
Pengolahan interupsi saat perangkat I/O telah
menyelesaikan sebuah operasi I/O adalah sebagai berikut :
1.
Perangkat
I/O akan mengirimkan sinyal interupsi ke CPU.
2. CPU
menyelesaikan operasi yang sedang dijalankannya kemudian merespon interupsi.
3. CPU
memeriksa interupsi tersebut, kalau valid maka CPU akan mengirimkan sinyal acknowledgment
ke perangkat I/O untuk menghentikan interupsinya.
4. CPU
mempersiapkan pengontrolan transfer ke routine interupsi. Hal yang dilakukan
adalah menyimpan informasi yang diperlukan untuk melanjutkan operasi yang tadi
dijalankan sebelum adanya interupsi. Informasi yang diperlukan berupa:
a.
Status
prosesor, berisi register yang dipanggil PSW (program status word).
b.
Lokasi
intruksi berikutnya yang akan dieksekusi.
c.
Informasi
tersebut kemudian disimpan dalam stack pengontrol sistem.
5. Kemudian
CPU akan menyimpan PC (program counter) eksekusi sebelum interupsi ke
stack pengontrol bersama informasi PSW. Selanjutnya mempersiapkan PC untuk
penanganan interupsi.
6.
Selanjutnya
CPU memproses interupsi sempai selesai.
7. Apabila
pengolahan interupsi selasai,CPU akan memanggil kembali informasi yang telah disimpan
pada stack pengontrol untuk meneruskan operasi sebelum interupsi.
Terdapat
bermacam teknik yang digunakan CPU dalam menangani program interupsi ini,diantaranya
:
·
Multiple
Interrupt Lines.
·
Software
poll.
·
Daisy
Chain.
·
Arbitrasi
bus.
Teknik yang paling sederhana adalah
menggunakan saluran interupsi berjumlah banyak (Multiple Interrupt Lines)
antara CPU dan modul – modul I/O. Namun tidak praktis untuk menggunakan sejumlah
saluran bus atau pin CPU ke seluruh saluran interupsi modul – modul I/O.
Pengontrol Interrupt Intel
8259A
Intel mengeluarkan chips 8259A yang
dikonfigurasikan sebagai interrupt arbiter pada mikroprosesor Intel
8086. Intel 8259A melakukan manajemen interupsi modul - modul I/O yang tersambung
padanya. Chips ini dapat diprogram untuk menentukan prioritas modul I/O yang lebih
dulu ditangani CPU apabila ada permintaan interupsi yang bersamaan. Gambar 4 menggambarkan
pemakaian pengontrol interupsi 8259A.
Berikut mode – mode interupsi yang mungkin terjadi :
·
Fully
Nested: permintaan
interupsi dengan prioritas mulai 0 (IR0) hingga 7(IR7).
·
Rotating: bila sebuah modul telah dilayani interupsinya
akan menempati prioritas terendah.
·
Special
Mask: prioritas
diprogram untuk modul I/O tertentu secara spesial.
Programmable Peripheral Interface Intel 8255A
Contoh modul I/O yang menggunakan I/O
terprogram dan interrupt driven I/O adalah Intel 8255A Programmable Peripheral
Interface (PPI). Intel 8255A dirancang untuk keperluan mikroprosesor 8086.
Gambar 5 menunjukkan blok diagram Intel 8255A dan pin layout-nya.
PPI Intel 8255A dapat diprogram untuk mengontrol berbagai peripheral sederhana. Gambar 6 memperlihatkan contoh penggunaan 8255A untuk modul I/O Keyboard dan display.
2.3.
Direct Memory Access (DMA)
Teknik yang dijelaskan sebelumnya yaitu I/O
terprogram dan Interrupt-Driven I/Omemiliki kelemahan, yaitu proses yang
terjadi pada modul I/O masih melibatkan CPU secara langsung. Hal ini berimplikasi pada :
·
Kelajuan
transfer I/O yang tergantung pada kecepatan operasi CPU.
·
Kerja CPU
terganggu karena adanya interupsi secara langsung.
Bertolak dari kelemahan di atas, apalagi
untuk menangani transfer data bervolume besar dikembangkan teknik yang lebih
baik, dikenal dengan Direct Memory Access.
Prinsip kerja DMA adalah CPU akan
mendelegasikan kerja I/O kepada DMA, CPU hanya akan terlibat pada awal proses
untuk memberikan instruksi lengkap pada DMA dan akhir proses saja. Dengan
demikian CPU dapat menjalankan proses lainnya tanpa banyak terganggu dengan
interupsi. Blok diagram modul DMA terlihat pada gambar 7 berikut :
Dalam melaksanakan transfer data secara
mandiri, DMA memerlukan pengambilalihan kontrol bus dari CPU. Untuk itu DMA
akan menggunakan bus bila CPU tidak menggunakannya atau DMA memaksa CPU untuk
menghentikan sementara penggunaan bus. Teknik terakhir lebih umum digunakan,
sering disebut cycle-stealing, karena modul DMA mengambil alih siklus
bus. Penghentian sementara penggunaan bus bukanlah bentuk interupsi, melainkan
hanyalah penghentian proses sesaat yang berimplikasi hanya pada kelambatan
eksekusi CPU saja. Terdapat tiga buah konfigurasi modul DMA seperti yang
terlihat pada gambar 8.
1.
3. Perangkat
Eksternal
Mesin komputer akan memiliki nilai apabila
bisa berinteraksi dengan dunia luar. Lebih dari itu, komputer tidak akan
berfungsi apabila tidak dapat berinteraksi dengan dunia luar. Ambil contoh
saja, bagaimana kita bisa menginstruksikan CPU untuk melakukan suatu operasi
apabila tidak ada keyboard. Bagaimana kita melihat hasil kerja sistem komputer
bila tidak ada monitor. Keyboard dan monitor tergolang dalam perangkat
eksternal komputer.
Perangkat eksternal atau lebih umum disebut peripheral
tersambung dalam sistem CPU melalui perangat pengendalinya, yaitu modul I/O
seperti telah dijelaskan sebelumnya. Lihat kembali gambar 2. Secara umum
perangkat eksternal diklasifikasikan menjadi 3 katagori:
- Human Readable, yaitu perangkat yang berhubungan dengan manusia sebagai pengguna komputer. Contohnya: monitor, keyboard, mouse, printer, joystick, disk drive.
- Machine readable, yaitu perangkat yang berhubungan dengan peralatan. Biasanya berupa modul sensor dan tranduser untuk monitoring dan kontrol suatu peralatan atau sistem.
- Communication, yatu perangkat yang berhubungan dengan komunikasi jarak jauh. Misalnya: NIC dan modem.
Pengklasifikasian juga bisa berdasarkan arah
datanya, yaitu perangkat output, perangkat input dan kombinasi output-input.
Contoh perangkat output: monitor, proyektor dan printer. Perangkat input
misalnya: keyboard, mouse, joystick, scanner, mark reader, bar code reader.
B. HAMMING CODE
Hamming code merupakan sistem yang dikembangkan dari error correction code yang mengunakan parity bit, selain Hamming Code banyak juga sistem lain yang lebih efisien dalam error correction code pada data yang terdiri dari banyak bit. Karena pengecekan secara parity ini juga maka kita dapat mengecek kode¬kode yang ada. Linear error¬correction code memiliki berbagai keterbatasan kesalahan. Pada Hamming Code, kesalahan yang dapat diketahui hanya 1 ( satu ) buah sedangkan yang dapat dideteksi adalah 2 ( dua ) buah.
Check bit kemudian disisipkan pada data pada posisi yang dihitung menggunakan rumus perhitungan posisi check bit.
Rumus
perhitungan posisi Check Bit Ci = 2i1
Sehingga
dengan rumus posisi tersebut, didapat posisi check bit yang akan diletakkan
pada data diperlihatkan pada gambar.
Untuk bisa mengerti tentang penanganan error, kita perlu
melihat dari dekat tentang apa yang disebut error itu. Biasanya, sebuah frame
terdiri dari m bit data (yaitu pesan) dan r redundan, atau check bits. Ambil panjang
total sebesar n (yaitu, n=m+r). Sebuah satuan nbit yang berisi data dan
checkbit sering kali dikaitkan sebagai codeword nb
Ditentukan dua buah codeword: 10001001 dan 10110001.
Disini kita dapat menentukan berapa banyak bit yang berkaitan berbeda. Dalam
hal ini, terdapat 3 bit yang berlainan. Untuk menentukannya cukup melakukan
operasi EXCLUSIVE OR pada kedua codeword, dan menghitung jumlah bit 1 pada
hasil operasi. Jumlah posisi bit dimana dua codeword berbeda disebut jarak
Hamming (Hamming, 1950).
Hal yang perlu diperhatikan adalah bahwa bila dua
codeword terpisah dengan jarak Hamming d, maka akan diperlukan error bit
tunggal d untuk mengkonversi dari yang satu menjadi yang lainnya. Pada sebagian
besar aplikasi transmisi data, seluruh 2m pesan data merupakan data yang legal.
Tetapi sehubungan dengan cara penghitungan check bit, tidak semua 2n digunakan.
Bila ditentukan algoritma untuk menghitung check bit,
maka akan dimungkinkan untuk membuat daftar lengkap codeword yang legal. Dari daftar
ini dapat dicari dua codeword yang jarak Hammingnya minimum. Jarak ini
merupakan jarak Hamming bagi kode yang lengkap. Sifat-sifat pendeteksian error dan perbaikan error
suatu kode tergantung pada jarak Hammingnya.
Untuk mendeteksi d error, anda membutuhkan kode dengan jarak
d+1 karena dengan kode seperti itu tidak mungkin bahwa error bit tunggal d
dapat mengubah sebuah codeword yang valid menjadi codeword valid lainnya.
Ketika penerima melihat codeword yang tidak valid, maka penerima dapat berkata
bahwa telah terjadi error pada transmisi.
Demikian juga, untuk memperbaiki error d, anda memerlukan
kode yang berjarak
2d+1 karena hal itu menyatakan codeword legal dapat terpisah bahkan dengan perubahan d, codeword orisinil akan lebih dekat dibanding codeword lainnya, maka perbaikan error dapat ditentukan secara unik.
2d+1 karena hal itu menyatakan codeword legal dapat terpisah bahkan dengan perubahan d, codeword orisinil akan lebih dekat dibanding codeword lainnya, maka perbaikan error dapat ditentukan secara unik.
Sebagai sebuah contoh sederhana bagi kode pendeteksian
error, ambil sebuah kode dimana parity bit tunggal ditambahkan ke data. Parity
bit dipilih supaya jumlah bitbit 1 dalam codeword menjadi genap (atau ganjil).
Misalnya, bila 10110101 dikirimkan dalam parity genap dengan menambahkan sebuah
bit pada bagian ujungnya, maka data itu menjadi 101101011, sedangkan dengan
parity genap 10110001 menjadi
101100010. Sebuah kode dengan parity bit tunggal mempunyai jarak 2, karena sembarang error bit tunggal menghasilkan sebuah codeword dengan parity yang salah.
101100010. Sebuah kode dengan parity bit tunggal mempunyai jarak 2, karena sembarang error bit tunggal menghasilkan sebuah codeword dengan parity yang salah.
Cara ini dapat digunakan untuk mendeteksi erroerror
tunggal. Sebagai contoh sederhana dari kode perbaikan error, ambil sebuah kode
yang hanya memiliki empat buah codeword valid :
0000000000,0000011111,1111100000 dan 1111111111
Kode ini mempunyai jarak 5, yang berarti bahwa code
tersebut dapat memperbaiki error ganda. Bila codeword 0000011111 tiba, maka
penerima akan tahun bahwa data orisinil seharusnya adalah 0000011111. Akan
tetapi bila error tripel mengubah 0000000000 menjadi 0000000111, maka error
tidak akan dapat
diperbaiki.
diperbaiki.
Bayangkan bahwa kita akan merancang kode dengan m bit
pesan dan r bit check yang akan memungkinkan semua error tunggal bisa diperbaiki.
Masingmasing dari 2m pesan yang legal membutuhkan pola bit n+1. Karena jumlah
total pola bit adalah 2n, kita harus memiliki (n+1)2m £ 2n.
Dengan memakai n = m + r, persyaratan ini menjadi (m + r + 1)£2r. Bila m
ditentukan, maka ini akan meletakkan batas bawah pada jumlah bit check yang
diperlukan untuk mengkoreksi error tunggal. Dalam kenyataannya, batas bawah
teoritis ini dapat diperoleh dengan menggunakan metoda Hamming (1950). Bitbit
codeword dinomori secara berurutan, diawali dengan bit 1 pada sisi paling kiri.
Bit bit yang
merupakan pangkat 2 (1,2,4,8,16 dan seterusnya) adalah bit check. Sisanya (3,5,6,7,9 dan seterusnya) disisipi dengan m bit data. Setiap bit check memaksa parity sebagian
merupakan pangkat 2 (1,2,4,8,16 dan seterusnya) adalah bit check. Sisanya (3,5,6,7,9 dan seterusnya) disisipi dengan m bit data. Setiap bit check memaksa parity sebagian
kumpulan bit, termasuk dirinya sendiri, menjadi genap (atau
ganjil). Sebuah bit dapat dimasukkan dalam beberapa komputasi parity. Untuk mengetahui
bit check dimana bit data pada posisi k berkontribusi, tulis ulang k sebagai
jumlahan pangkat 2.
Misalnya, 11=1+2+8 dan 29=1+4+8+16. Sebuah bit dicek oleh bit check yang terjadi pada ekspansinya (misalnya, bit 11 dicek oleh bit 1,2 dan 8).
Misalnya, 11=1+2+8 dan 29=1+4+8+16. Sebuah bit dicek oleh bit check yang terjadi pada ekspansinya (misalnya, bit 11 dicek oleh bit 1,2 dan 8).
Ketika sebuah codeword tiba, penerima menginisialisasi
counter ke nol. Kemudian codeword memeriksa setiap bit check, k
(k=1,2,4,8,....) untuk melihat apakah bit check tersebut mempunyai parity yang
benar. Bila tidak, codeword akan menambahkan k ke counter. Bila counter sama
dengan nol setelah semua bit check
diuji (yaitu, bila semua bit checknya benar), codeword akan diterima sebagai valid. Bila counter tidak sama dengan nol, maka pesan mengandung sejumlah bit yang tidak benar.
diuji (yaitu, bila semua bit checknya benar), codeword akan diterima sebagai valid. Bila counter tidak sama dengan nol, maka pesan mengandung sejumlah bit yang tidak benar.
Misalnya bila bit check 1,2, dan 8 mengalami kesalahan
(error), maka bit inversinya adalah 11, karena itu hanya satusatunya yang
diperiksa oleh bit 1,2, dan 8. Gambar 3.10 menggambarkan beberapa karakter
ASCII 7bit yang diencode sebagai
codeword 11 bit dengan menggunakan kode Hamming. Perlu diingat bahwa data terdapat pada posisi bit 3,5,6,7,9,10,11.
codeword 11 bit dengan menggunakan kode Hamming. Perlu diingat bahwa data terdapat pada posisi bit 3,5,6,7,9,10,11.
Kode Hamming hanya bisa memperbaiki error tunggal. Akan
tetapi, ada trick yang dapat digunakan untuk memungkinkan kode Hamming dapat
memperbaiki error yang meletup. Sejumlah k buah codeword yang berurutan disusun
sebagai sebuah matriks, satu codeword per baris. Biasanya, data akan
ditransmisikan satu
baris codeword sekali, dari kiri ke kanan.
baris codeword sekali, dari kiri ke kanan.
Untuk mengkoreksi error yang meletup, data harus
ditransmisikan
satu kolom sekali, diawali dengan kolom yang paling kiri. Ketika seluruh k bit telah dikirimkan, kolom kedua mulai dikirimkan, dan seterusnya. Pada saat frame tiba pada penerima, matriks direkonstruksi, satu kolom per satuan waktu. Bila suatu error yang meletup terjadi, paling banyak 1 bit pada setiap k codeword akan terpengaruh.
satu kolom sekali, diawali dengan kolom yang paling kiri. Ketika seluruh k bit telah dikirimkan, kolom kedua mulai dikirimkan, dan seterusnya. Pada saat frame tiba pada penerima, matriks direkonstruksi, satu kolom per satuan waktu. Bila suatu error yang meletup terjadi, paling banyak 1 bit pada setiap k codeword akan terpengaruh.
Akan tetapi kode Hamming dapat memperbaiki satu error per
codeword, sehingga seluruh blok dapat diperbaiki. Metode ini memakai kr bit check
untuk membuat km bit data dapat immune terhadap error tunggal yang meletup
dengan panjang k atau kurang.
KOREKSI
ERROR
Mekanisme pendeteksian kesalahan dengan
menambahkan data word (D) dengan suatu kode, biasanya bit cek paritas (C).
Sehingga data yang disimpan memiliki panjang D + C. Kesalahan akan diketahui
dengan menganalisa data dan bit paritas tersebut. Mekanisme perbaikan kesalahan
yang paling sederhana adalah kode Hamming.
Perhatikan gambar diatas, disajikan tiga
lingkaran Venn (A, B, C) saling berpotongan sehingga terdapat 7 ruang. Metode
diatas adalah koreksi kesalahan untuk word data 4 bit (D =4). Gambar (a) adalah
data aslinya. Kemudian setiap lingkaran harus diset bit logika 1 berjumlah
genap sehingga harus ditambah bit – bit paritas pada ruang yang kosong seperti
gambar (b). Apabila ada kesalahan penulisan bit pada data seperti gambar
(c) akan dapat diketahui karena lingkaran A dan B memiliki logika 1
berjumlah ganjil.
Lalu bagaimana dengan word lebih dari 4 bit ?
Ada cara yang mudah yang akan diterangkan berikut. Sebelumnya perlu diketahui
jumlah bit paritas yang harus ditambahkan untuk sejumlah bit word. Contoh
sebelumnya adalah koreksi kesalahan untuk kesalahan tunggal yang sering disebut
single error correcting (SEC). Jumlah bit paritas yang harus ditambahkan
lain pada double error correcting (DEC). Tabel dibawah ini menyajikan
jumlah bit paritas yang harus ditambahkan dalam sistem kode Hamming.
CONTOH
KOREKSI KODE HAMMING 8 BIT DATA
Dari tabel yang disajikan diatas untuk 8 bit data diperlukan 4 bit
tambahan sehingga panjang seluruhnya adalah 12 bit. Layout bit disajikan
seperti dibawah ini :
Bit cek paritas ditempatkan dengan perumusan 2N dimana N
= 0,1,2, ……, sedangkan bit data adalah sisanya. Kemudian dengan
exclusive-OR dijumlahkan ebagai berikut :
Setiap cek bit (C) beroperasi pada setiap posisi bit data yang nomor posisinya berisi bilangan 1 pada kolomnya. Sekarang ambil contoh suatu data, misalnya masukkan data : 00111001 kemudian ganti bit data ke 3 dari 0 menjadi 1 sebagai error-nya. Bagaimanakah cara mendapatkan bit data ke 3 sebagai bit yang terdapat error?
Jawaban :
Masukkan data pada perumusan cek bit paritas :
Sekarang bit 3 mengalami kesalahan sehingga data menjadi: 00111101
Apabila bit –
bit cek dibandingkan antara yang lama dan baru maka terbentuk syndrom word
:
Sekarang kita lihat posisi bit ke-6 adalah
data ke-3. Mekanisme koreksi kesalahan akan meningkatkan realibitas bagi memori
tetapi resikonya adalah menambah kompleksitas pengolahan data. Disamping itu
mekanisme koreksi kesalahan akan menambah kapasitas memori karena adanya
penambahan bit – bit cek paritas. Jadi ukuran memori akan lebih besar beberapa
persen atau dengan kata lain kapasitas penyimpanan akan berkurang karena
beberapa lokasi digunakan untuk mekanisme koreksi kesalahan.
0 komentar:
Post a Comment
Informasi:
Form komentar ini menggunakan moderasi, setiap komentar yang masuk akan melalui proses pemeriksaan sebelum ditampilkan dalam kolom komentar.
Memasang link dan konten yang mengandung pornografi di komentar tidak akan di tampilkan. Hanya komentar yang membangun dan sesuai topik artikel saja yang akan kami tampilkan.
Mohon maaf atas ketidaknyamanannya.