KATA PENGANTAR
Segala puji bagi Allah SWT Tuhan seru sekalian alam atas segala berkat,
rahmat, taufik, serta hidayah-Nya sehingga kami dapat menyelesaikan
makalah dengan judul ”INPUT / OUTPUT & KODE HAMMING” untuk memenuhi tugas
dalam mata kuliah organisasi & Komputer .
Kami menyadari bahwa dalam penyusunan makalah sederhana ini masih
jauh dari sempurna. Oleh karena itu, kami mengharapkan saran dan
kritik yang membangun demi kesempurnaan penyusunan makalah sederhana
yang akan datang.. Akhir kata kami berharap kerangka acuan ,makalah ini dapat memberikan wawasan dan pengetahuan kepada para pembaca pada umumnya
dan pada penulis pada khusunya.Dalam penyusunan makalah ini, kami menemui kesulitan dalam pencarian dan penyaringan sumber data. Namun kami memperoleh
banyak bantuan dari berbagai pihak. Kami mengucapkan terima kasih kepada selaku Dosen organisasi & Komputer yang telah memberikan bimbingan dan
arahan sehingga kami dapat menyelesaikan makalah ini, serta rekan-rekan
kelas A STMIK BUMIGORA MATARAM , yang selalu berdoa dan memberikan motivasi kepada kami.
MATARAM, MEI 2016
Penyusun
INPUT OUTPUT
Ø pendahuluan
· Peralatan Input/Output memungkinkan system komputer berinteraksi dengan dunia luarnya (baik berkomunikasi dengan user maupun dengan komputer lainnya). I/O device dapat berupa input device (contohnya keyboard, mouse), dan output device (contohnya printer, monitor), atau berupa input device sekaligus output device (contohnya disk drive).
Komputer menggunakan perangkat-perangkat I/O(yang disebut juga dengan peripheral device) untuk dua tujuan utama, yaitu untuk berkomunikasi dengan dunia luarnya dan untuk menyimpan data. Beberapa I/O device seperti printer, keyboard dan modem digunakan untuk tujuan komunikasi dan beberapa device seperti disk drive dan CD writer digunakan untuk menyimpan data. Semua komunikasi dengan perangkat I/O tersebut melibatkan bus system (system bus). Akan tetapi, perangkat-perangkat I/O tidak terhubung ke bus system secara langsung. Biasanya terdapat suatu I/O controller yang berfungsi sebagai interface antara bus system dan perangkat-perangkat I/O.
· Fungsi utama dari modul I / O
o Interface untuk CPU dan memori melalui bus sistem atau switch sentral.
o Interface untuk satu atau lebih perangkat peripheral dengan link data yang disesuaikan.
Ø Perangkat eksternal
o perangkat eksternal, sering disebut perangkat periferal atau hanya peripheral, membuat sistem komputer berguna.
o Tiga kategori perangkat eksternal:
ü Manusia-Readable (ex. terminal, printer).
ü Mesin-Readable (ex. disk, sensor).
ü Komunikasi (ex. modem, NIC 's)
o Struktur dasar dari perangkat eksternal:
ü data - bit yang dikirim atau diterima dari modul I / O.
ü Sinyal Control -menentukan fungsi perangkat akan melakukan.
ü sinyal Status- menunjukkan keadaan perangkat (. esp READY / NOT-READY).
ü logika Control - menafsirkan perintah dari modul I / O untuk mengoperasikan perangkat.
ü Transducer - mengkonversi data dari sinyal listrik komputer yang cocok untuk bentuk energi yang digunakan oleh perangkat eksternal.
ü Buffer - sementara memegang data yang ditransfer antara modul I / O dan perangkat eksternal.
Ø I / O Modul
o Sebuah Modul I / O adalah entitas dalam komputer yang bertanggung jawab untuk:
ü kontrol satu atau lebih perangkat eksternal.
ü pertukaran data antara perangkat dan memori utama dan / atau register CPU.
o Ini harus memiliki dua antarmuka:
ü internal, untuk CPU dan memori utama.
ü eksternal, ke perangkat (s).
o Fungsi kategori /persyaratan utama
ü Control dan Timing.
Koordinat arus lalu lintas antara sumber daya internal dan eksternal
perangkat.
Kerjasama dengan bus arbitrase.
ü CPU Komunikasi.
Command Decoding.
data
Pelaporan Status
Alamat Pengakuan.
ü Perangkat Komunikasi (lihat diagram di bawah Perangkat Eksternal).
Perintah.
Status Informasi .
data
ü data Buffering
Tingkat transfer data ke / dari CPU adalah lipat lebih cepat daripada ke / dari perangkat eksternal.
I / omodul buffer data sehingga perangkat dapat mengirim / menerima pada laju, dan CPU dapat mengirim / menerima pada laju.
ü Deteksi Kesalahan.
Harus mendeteksi dan benar atau melaporkan kesalahan yang terjadi Jenis kesalahan.
Teknik / malfungsi listrik.
kesalahan data selama transmisi.
o I / O Struktur Modul
ü Struktur dasar
o Sebuah I / O fungsi modul untuk memungkinkan CPU untuk melihat berbagai macam perangkat dengan cara simpleminded.
o Sebuah spektrum kemampuan dapat diberikan.
ü I/ O channel atau I / O prosesor - mengambil sebagian besar pengolahan rinci beban, menyajikan antarmuka tingkat tinggi untuk CPU.
ü I / O controller atau perangkat kontroler - cukup primitif dan membutuhkan kontrol rinci.
ü I O modul / - generik, yang digunakan ketika ada hasil kebingungan.
Ø Diprogram I / O
o Dengan diprogram I / O, data dipertukarkan di bawah kendali penuh dari CPU.
ü CPU menemukan sebuah I / O instruksi.
ü CPU mengeluarkan perintah ke modul I / O yang sesuai.
ü I / O modul melakukan tindakan yang diminta dan menetapkan I / O register status bit.
ü CPU harus menunggu, dan memeriksa status modul I / O secara berkala sampai menemukan bahwa operasi selesai.
o Untuk menjalankan instruksi I / O, masalah CPU:
ü alamat, menetapkan I / O modul dan perangkat eksternal.
ü perintah, 4 jenis:
control ß mengaktifkan perifer dan memberitahu apa yang harus dilakukan.
tes - query keadaan modul atau salah satu perangkat eksternal.
baca - mendapatkan item data dari perangkat dan menempatkannya di internal penyangga (data mendaftar dari sebelumnya ilustrasi).
write - mengambil item data dari bus data dan mengirimkan ke perifer.
o Dengan diprogram I / O, ada korespondensi yang erat antara petunjuk I / O yang digunakan oleh CPU dan perintah I / O diberikan kepada modul I / O.
o Setiap modul I / O harus menafsirkan garis alamat untuk menentukan apakah perintah ini untuk dirinya sendiri.
o Dua mode pengalamatan yang mungkin:
ü Port I / O
ada ruang alamat tunggal untuk lokasi memori dan perangkat I / O.
memungkinkan garis read / write yang sama akan digunakan untuk memori dan I / O transaksi
ü Terisolasi I / O
ruang alamat lengkap dapat digunakan baik untuk lokasi memori atau I / O perangkat.
membutuhkan garis kontrol tambahan untuk membedakan transaksi memori dari I / O transaksi.
programmer kehilangan repertoar perintah akses memori, tetapi keuntungan ruang alamat memori.
Ø Interrupt-Driven I / O
o Masalah dengan diprogram I / O adalah CPU harus menunggu modul I / O siap untuk baik penerimaan atau transmisi data, mengambil waktu untuk query statusnya secara berkala.
o Interrupt-driven I / O adalah sebuah alternatif.
ü Hal ini memungkinkan CPU untuk kembali untuk melakukan pekerjaan yang berguna setelah mengeluarkan perintah I / O.
ü Ketika perintah selesai, modul I / O akan sinyal CPU yang siap
dengan interupsi.
o Interrupt Sederhana Diagram Pengolahan.
Ø Desain isu
o Bagaimana CPU menentukan perangkat dikeluarkan mengganggu?
ü Beberapa Baris Interrupt?
ü solusi yang paling mudah dan praktis untuk mendedikasikan banyak jalur.
beberapa I / O modul cenderung melekat pada setiap baris.
salah satu dari 3 teknik lain harus digunakan pada setiap baris
ü Software Poll
mengganggu layanan jajak pendapat rutin setiap perangkat untuk melihat yang menyebabkan mengganggu:
· menggunakan baris perintah terpisah pada bus (TESTI / O)? meningkatkan TESTI / O? Tempat I / O alamat modul pada baris alamat ? memeriksa respon afirmatif.
· setiap modul I / O berisi status dialamatkan mendaftar, yang CPU berbunyi.
memakan waktu.
ü Daisy Rantai (hardware jajak pendapat, vektor)
interrupt terjadi atas permintaan interupsi jalur yang dibagi oleh semua modul I / O.
indra CPU mengganggu.
CPU mengirimkan interupsi mengakui, yang merupakan daisy-dirantai melalui semua I / O modul.
Ketika sampai ke meminta modul, ia menempatkan vektor (baik I / O alamat, atau ID yang menggunakan CPU sebagai pointer ke yang tepat perangkat-service rutin) pada baris data.
ada interupsi-layanan umum rutin diperlukan (masih perlu yang spesifik).
ü Bus Arbitrase (vektor).
membutuhkan modul I / O untuk kontrol keuntungan pertama dari bus sebelum dapat mengganggu.
sehingga hanya satu modul dapat mengganggu pada suatu waktu.
ketika CPU mendeteksi interrupt, itu ACK 's.
meminta modul kemudian menempatkan vektor pada baris data.
jenis lain dari interrupt vektor.
HAMMING KODE
Ø Definisi 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 = 2i-1
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 n-bit yang berisi data dan checkbit sering kali dikaitkan sebagai codeword n-bit.
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 Hamming-nya minimum. Jarak ini merupakan jarak Hamming bagi kode yang lengkap.
Sifat-sifat pendeteksian error dan perbaikan error suatu kode tergantung pada jarak Hamming-nya. 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.
Sebagai sebuah contoh sederhana bagi kode pendeteksian error, ambil sebuah kode dimana parity bit tunggal ditambahkan ke data. Parity bit dipilih supaya jumlah bit-bit 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 10110001menjadi 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 erro-error 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.
Bayangkan bahwa kita akan merancang kode dengan m bit pesan dan r bit check yang akan memungkinkan semua error tunggal bisa diperbaiki. Masing-masing 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). Bit-bit 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 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).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. Misalnya bila bit check 1,2, dan 8 mengalami kesalahan (error), maka bit inversinya adalah 11, karena itu hanya satu-satunya yang diperiksa oleh bit 1,2, dan 8. Gambar 3.10 menggambarkan beberapa karakter ASCII 7-bit 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.
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. 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 persatuan 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.
Ø Proses Pendeteksian Error
a. Hitung panjang data masukan dari metode hamming code yang merupakan hasil penjumlahan dari panjang data masukan dengan panjang check bit. Panjang data keluaran dari metode hamming code sama dengan panjang data masukan dari metode hamming code.
b. Tandai posisi bit yang merupakan posisi dari check bit. Posisi selain posisi check bit merupakan posisi data bit.
c. Tentukan rumus perhitungan dari masing-masing check bit.untuk n = 1 hingga jumlah dari check bit, lakukan hal berikut:
ü Catat semua posisi dimana bit n dari member position bernilai 1, kecuali posisi bit itu sendiri. Member position merupakan bentuk biner dari posisi bit. Rumus dari check bit n sama dengan operasi XOR dari posisi-posisi yang dicatat.
Ø BIT PARITAS(GANJIL DAN GENAP)
o Pengertian Bit Paritas Bit Paritas atau disebut juga bit pemeriksa adalah salah satu metode yang digunakan pada modul I/O dalam mendeteksi kesalahan. Bit paritas bekerja untuk medeteksi kesalahan pada level bit. Bit partisi yaitu bit tambahan yang diberikan pada akhir sebuah byte atau baris terakhir untuk digunakan dalam proses pengecekan kebenaran data pada saat penyimpanan atau proses transmisi.
o Pembagian Jenis Bit Paritas Terdapat 2 macam cara penambahan Bit Pariti yaitu :
1. Pariti Ganjil (Odd Parity) Bit Paritas di set menjadi 1 apabila jumlah angka 1 dalam kesatuan bit tersebut (tidak termasuk bit paritas) adalah genap, sehingga menjadikan jumlah bit dalam kesatuan tersebut (termasuk bit paritas) menjadi ganjil.
2. Pariti Genap (Even Parity) Bit paritas di set menjadi 1 apabila jumlah angka 1 dalam kesatuan tersebut (tifak termasuk bit paritas) adalah ganjil, sehingga menjadikan jumlah bit dalam kesatuan tersebut (termasuk bit paritas) menjadi genap.
Ø Cara Kerja Bit Paritas
o Konsep Umum Pihak pengirim akan menambahkan 1 bit tambahan (Bit Paritas) pada data, untuk menggabarkan karakteristik dari data tersebut. Nilai dari bit paritas (1 atau 0) tidak diperbolehkan secara sembarang. Dalam proses pentransmisiannya data tadi dikirim bersamaan (data dan bit paritasnya). Pada terminal penerimaan data kita dibaca dan di dekodisasi dengan cara yang sama seperti saat menentukan nilai bit paritas disisi pengirim. Lalu hasi dekodisasi tadi dibandingkan dengan bit paritas yang dibawakan oleh pengirim. Apabila hasil pembacaan (dekodisasi) data terkirim sama dengan bit paritasnya maka data tersebut dapat dianggap benar. Dan apabila diperoleh perbedaan nilai antara hasil dekodisasi dengan bit paritasnya maka data dapat di klasifikasi sebagai data yang error. Terminal penerima akan mengirim request pada terminal pengirim untuk mengirim ulang data yang error.
Ø Menentukan Nilai Bit Paritas
Penentuan nilai bit paritas (1 atau 0) dilakukan dengan meng-XOR kan semua bit yang ada pada data sepasang-sepasang, hasil akhir dari peng-XOR an seluruh bit ini yang akan dijadikan acuan untuk menentukan nilai dari bit paritas yang akan ditambahkan. Jadi belum tentu hasil XOR langsung dijadikan sebagai nilai dari bit paritas .
Misal data yang berupa 1 karakter adalah huruf “M”, yang menurut ASCII sama dengan 1011001, maka proses XOR nya =
1 XOR 0 = 1
1 XOR 1 = 0
0 XOR 1 = 1
1 XOR 0 = 1
1 XOR 0 = 1
1 XOR 1 = 0
Jika bit 1 pada data berjumlah genap maka keluaran akhirnya “0”, dan jika ganjil maka “1”
Gambar 2 Skema XOR
Bit 0 adalah bit pertama begitu seterusnya. Setelah kita hasil dari XOR barulah kita akan menentukan nilai dari bit paritas data kita. Ada bit paritas ganjil dan paritas genap, paritas genap maka hasi XOR itu adalah nilai bit paritas, jika paritas ganjil maka nilai bit paritas merupakan nilai komplement (kebalikan) dari hasil XOR. Contoh cara kerja bit paritas:
Ada 2 orang sedang melakukan chatting, keduanya melakukan percakapan. Metode Pendeteksi Error menggunakan Bit Paritas.Orang pertama mengirim kata “Aku” ke orang kedua. Dalam kode ASCII berarti =
A = 1000001
k = 1101011
u = 1010111
Dalam terminal pengirim kata “Aku” dianalisa perkarakter “A” lalu “k” lalu “u” dari masing masing huruf diberikan bit paritasnya (menggunakan Even Parity bit/ Paritas Genap) .
Maka data akan berubah menjadi :
A = 10000010
k = 11010111
u = 10101111
Data lalu dikirim dengan format: 10101111_11010111_10000010 Karena terjadi suatu hal seperti distorsi atau noise-noise lainnya, bit-bit tadi ada yang berubah dalam perjalannya menjadi :
10101111_11010111_11000010
Pada si penerima data tersebut terbaca”Cku” bukan “Aku”, bila tanpa metode deteksi Error maka data tersebut dianggap valid dan penerima mendapat kesusahan dalam membacanya.
· Mekanisme Pembacaannya :
Deret bit 1100001 di dekondisasi sehingga menghasilkan bit “1”(tanpa bit paritas).
Penerima membandingkan hasil dekondisasi dengan bit paritasnya, “1” dan “0”, karena tidak sama maka terjadi error.
Penerima meminta data dikirim ulang.
Proses diulang sampai data dianggap bena
Ø Kesimpulan
Bit paritas adalah bit yang ditambahkan di bagian akhir karakter/Byte yang berguna untuk mendeteksi masalah atau Error. Nilai yang ditambahkan tidak sembarang namun ada perhitungan dengan XOR. Bit paritas terdapat dua jenis yaitu paritas ganjil dan genap. Nilai bit paritas genap adalah hasil dari XOR sedangkan nilai bit paritas ganjil hasil komplemen atau kebalikan dari asil XOR.
Ø Kelebihan menggunakan Bit Paritas :
- Lebih cepat karena berbasis 2 (biner)
- Mudah dalam pengecekan
- Sederhana dalam analisis dan penggunaan pada sistem
- Mudah direalisasikan dalam bentuk rangkaian atau hardware
Ø Kekurangan mengunakan Bit Paritas :
- Kurang handal dalam mengatasi deteksi dan perbaikan error
- Kemungkinan kesalan yang terjadi besar, yaitu 50%
- Belum dapat mengakomodir file dengan ukuran besar
- Tidak dapat mendeteksi kesalahan dalam jumlah genap
Referensi.:
William staillings computer organization and architectur..
daniheri.blogspot.co.id/2015/03/pengertian-hamming-kode.html.
https://wordpress.com/post/fitri740.wordpress.com/4