Senin, 16 Mei 2016

MODUL I/O & HAMMING CODE


MAKALAH  
 MODUL I/O & KODE HAMMING 
{Organisasi & Arsitektur Komputer}




Disusun Oleh :

Lalu Ahmad Wisudawan (1510530018)
I nyoman tri sumandiasa(1510530030)
Ego Baskoro(1510530026)
Rony Arzian(1510520020)













KELAS A
JURUSAN TEKNIK INFORMATIKA
SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER
2016


KATA PENGANTAR







Puji syukur kehadirat Tuhan Yang Maha Esa karena berkat Nya kami dapat menyelesaikan makalah ini tepat pada waktunya.

Makalah ini kami buat untuk menyelesaikan tugas yang telah diberikan dosen kami   untuk membuat makalah tentang MODUL I/O & KODE HAMMING.

Semoga makalah   yang  kami  buat ini  dapat  menambah  pengetahuan  kami tentang mata kuliah Arsitektur Data.

Kami  mohon  maaf  apabila  dalam  Makalah  kami  terdapat  banyak  kesalahan dan  kami mohon masukan dari dosen maupun mahasiswa lain  yang turut membaca makalah kami

ini.


DAFTA ISI



COVER                                                                                                          1
KATA PENGANTAR                                                                                      2
DAFTAR ISI                                                                                                   3
BAB I PENDAHULUAN                                                                                4
LATAR BELAKANG                                                                                           4
RUMUSAN MASALAH                                                                              4
TUJUAN PEMBAHASAN                                                                             5
BAB II PEMBAHASAN                                                                                 6
1.     MODUL I/O                                                                                          6
SISTEM MASUKAN & KELUARAN(MODUL I/O)                           6
        FUNGSI I/O                                                                              6
        STRUKTUR MODUL I/O                                                         8
TEKNIK MASUKAN/KELUARAN                                                    8
         I/O TERPROGRAM                                                                                         8
 INTERRUPT – DRIVEN I/O                                                                            9
 DMA (DIRECT MEMORY ACCESS)                                                             10
2.     KODE HAMMING                                                                                11
BIT PARITY                                                                                                               11
MEKANISME & CARA KERJA                                                                               12
CONTOH KASUS HAMMING CODE                                                                    15
BAB III PENUTUP                                                                                        18
KESIMPULAN                                                                                             18
DAFTAR PUSTAKA                                                                                    19




BAB I
PENDAHULUAN



1.1   Latar Belakang

Di zaman modern ini telah berkembang berbagai macam bentuk computer dan perangkat pendukung guna meningkatkan kinerja computer baik dari segi internal maupun eksternal system. Agar computer dapat berhubungan dengan lingkungan luar maka dari itu diperlukan perangkat tambahan dan system yang mengatur komunikasi perangkat dengan processor atau CPU yang berada di lingkungan dalam computer. Tanpa dapat berkomunikasi dengan dunia luar computer bukan lah apa-apa. Sebagai contoh pada saat kita ingin melakukan peroses pengolahn data atau sebagainya namun disana tidak terdapat layar monitor computer lalu bagaimanakah kita tahu bahwa kita telah berhasil melakukan proses tersebut?. Maka dari itu agar mempermudah kerja kita computer membutuhkan prangkat tambahan yang disebut peripheral. Kita akan membahas lebih jelas tentang modul I/O pada halaman selanjutnya.Selain itu didalam makalah ini juga akan dibahas mengenai proses koreksi error(humming code)


1.2   Rumusan Masalah

Dalam rumusan masalah ini ada beberapa hal yang akan diungkapkan,yaitu :
·         Apakah yang dimaksud dengan modul I/O ?
·         Apakah fungsi dari modul I/O ?
·         Bagaimana setruktur modul I/O?
·         Apa itu metode hamming code ?
·         Cara kerja / implementasi hamming code?
·         Apa yang dimaksud dengan bit parity ?









1.3   Tujuan

Adapun yang menjadi tujuan pokok penulisan Paper ini adalah :
·         Mengetahui pengertian modul I/O
·         Mengetahui fungsi modul I/O
·         Mengetahui setruktur modul I/O
·         Mengetahui dan memahami pentingnya hamming code
·         Menngetahui apa itu parity
·         Mengetahui bagaimana cara kerja hamming code
















BAB II
PEMBAHASAN

1.   MODUL I/O

1.1SISTEM MASUKAN & KELUARAN(MODUL I/O)
Modul I/O Adalah interface atau central switch untuk mengendalikan satu atau lebih peripheral atau perangkat input output. Konektor mekanis berisi fungsi logik untuk komunikasi antara bus dan peripheral. Tidak hanya sekedar modul penghubung, tetapi sebuah piranti yang berisi logika dalam melakukan fungsi komunikasi antara peripheral dan bus computer.
1.1.1 Fungsi 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.
·         Pem-buffer-an data.
·         Deteksi kesalahan.


 1.1.1.1 Kontrol dan pewaktuan.
Fungsi kontrol dan pewaktuan (control & timing) merupakan hal yang penting untuk mensinkronkan kerja masing – masing komponen penyusun komputer. Dalam sekali waktu CPU berkomunikasi dengan satu atau
lebih perangkat dengan pola tidak menentu dan kecepatan transfer komunikasi data yang beragam, baik dengan perangkat internal seperti register – register, memori utama, memori sekunder, perangkat peripheral. Proses tersebut bisa berjalan apabila ada fungsi kontrol dan pewaktuan yang mengatur sistem secara keseluruhan. 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. Transfer data tidak akan lepas dari penggunaan sistem bus, maka interaksi CPU dan modul I/O akan melibatkan kontrol dan pewaktuan sebuah arbitrasi bus atau lebih.

1.1.1.2 Komunikasi CPU
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).
·         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.
1.1.1.3 Buffering.
Tujuan utama buffering adalah mendapatkan penyesuaian data sehubungan perbedaan laju transfer data dari perangkat peripheral dengan kecepatan pengolahan pada CPU. Umumnya laju transfer data dari perangkat peripheral lebih lambat dari kecepatan CPU maupun media penyimpan.
1.1.1.4 deteksi kesalahan
Fungsi terakhir adalah deteksi kesalahan. Apabila pada perangkat peripheral terdapat masalah sehingga proses tidak dapat dijalankan, maka modul I/O akan melaporkan kesalahan tersebut. Misal informasi kesalahan pada peripheral printer seperti: kertas tergulung, pinta habis, kertas habis, dan lain – lain. Teknik yang umum untuk deteksi kesalahan adalah penggunaan bit paritas.


1.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,
Antarmuka modul I/O ke CPU melalui bus sistem komputer terdapat tiga saluran, yaitu saluran data, saluran alamat dan saluran kontrol. Bagian terpenting adalah blok logika I/O yang berhubungan dengan semua peralatan antarmuka peripheral, terdapat fungsi pengaturan dan switching pada blok ini. Antarmuka modul I/O ke CPU melalui bus sistem komputer terdapat tiga saluran, yaitu saluran data, saluran alamat dan saluran kontrol. Bagian terpenting adalah blok logika I/O yang berhubungan dengan semua peralatan antarmuka peripheral, terdapat fungsi pengaturan dan switching pada blok ini.

1.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.
1.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.

v  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.

1.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.
Dalam teknik ini kendali perintah masih menjadi tanggung jawab CPU, baik pengambilan perintah dari memori maupun pelaksanaan isi perintah tersebut. Terdapat selangkah kemajuan dari teknik sebelumnya, yaitu CPU melakukan multitasking beberapa perintah sekaligus sehingga tidak ada waktu tunggu bagi CPU.
Cara kerja teknik interupsi di sisi modul I/O adalah modul I/O menerima perintah, misal read. Kemudian modul I/O melaksanakan perintah pembacaan dari peripheral dan meletakkan paket data ke register data modul I/O, selanjutnya modul mengeluarkan sinyal interupsi ke CPU melalui saluran kontrol. Kemudian modul menunggu datanya diminta CPU. Saat permintaan terjadi, modul meletakkan data pada bus data dan modul siap menerima perintah selanjutnya.


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.
1.2.3 Direct Memory Access (DMA)
Direct Memory Access (DMA) berarti hibah CPU I/O otoritas modul untuk membaca dari atau menulis ke memori tanpa keterlibatan. Modul DMA mengontrol pertukaran data antara memori utama dan I/O device. Karena perangkat DMA dapat mentransfer data secara langsung ke dan dari memori, daripada menggunakan CPU sebagai perantara, dan dengan demikian dapat mengurangi kemacetan di bus. CPU hanya terlibat di awal dan akhir transfer dan terputus setelah seluruh blok ditransfer.
Direct Memory Access membutuhkan hardware khusus yang disebut DMA controller (DMAC) yang mengelola transfer data dan mengadili akses ke sistem bus. Kontroler diprogram dengan sumber dan tujuan pointer (di mana untuk membaca / menulis data), counter untuk melacak jumlah byte yang ditransfer, dan pengaturan, termasuk I/O dan memori jenis, interupsi dan menyatakan untuk siklus CPU.
Saat pemroses ingin membaca atau menulis data, pemroses memerintahkan DMA Controller dengan mengirim informasi berikut:
  • Perintah penulisan/pembacaan
  • Alamat perangakat masukkan/keluaran
  • Awal lokasi memori yang ditulis/dibaca
  • Jumlah word(byte) yang ditulis/dibaca
DMA meningkatkan sistem ketepatan dengan memungkinkan CPU untuk melakukan tugas-tugas sementara transfer sistem DMA data melalui sistem dan memori bus. Desain hardware rumit karena DMA controller harus diintegrasikan ke dalam sistem, dan sistem harus memungkinkan DMA controller untuk menjadi master bus. Siklus mencuri juga mungkin diperlukan untuk memungkinkan CPU dan DMA controller untuk berbagi penggunaan bus memory.DMA ini memiliki keunggulan:
  1. Penghematan waktu pemroses
  2. Peningkatan kinerja masukkan/keluaran


2. HAMMING CODE
Metode hamming code merupakan salah satu metode pendeteksi error dan pengoreksi error ( error detection and error correction ) yang paling sederhana. Metode ini menggunakan operasi pendeteksian error maupun pengkoreksian error. Input dan output dari metode ini merupakan bilangan binner. Hamming code meruapakan salah satu jenis linier error correcting code yang sederhana dan banyak digunakan pada peralatan elektronik.
Metode hamming code bekerja dengan menyisipkan beberapa buah check bit ke data. Jumlah check bit yang di sisipkan tergantung pada panjang data. Hamming code juga memiliki rumus tersendiri untuk mendeteksi kesalahan ( error ).

v Bit Parity
Bit Parity 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.




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.
Dan perlu diingat sifat gerbang XOR berikut ini:
          0 + 0 = 0                 Genap
0 + 1 = 1                 Ganjil
1 + 0 = 1                 Ganjil
1 + 1 = 0                 Genap

v Mekanisme dan Cara Kerja
Ada  beberapa  metode  yang  digunakan  untuk  mendeteksi error  dan  mengkoreksi  error  yang  terjadi.  Salah  satunya adalah dengan menggunakan metode Hamming Code. Metode  hamming  code  merupakan  salah  satu  metode yang  paling  sederhana.  Metode  ini menggunakan  operasi  logika  XOR  (Exclusive-OR)   dalam proses pendeteksian error  maupun pengkoreksian error. Input dan  output  dari metode  ini  berupa  bilangan  biner.  Hamming code  merupakan  salah  satu  jenis  linier  error  correcting  code yang  sederhana  dan  banyak  dipergunakan  pada  peralatan elektronik .
Metode  hamming  code  bekerja  dengan  menyisipkan beberapa  buah  check  bit  ke  data. Jumlah  check  bit  yang disisipkan  tergantung  pada  panjang  data.  Rumus  untuk menghitung jumlah  check bit  yang akan disisipkan ke dalam data. Data 2^n bit,  c = (n+1) bit, dimana c adalah jumlah check  bit yang disisipkan.




Tabel 1. Kenaikan data bit dan check bit
Data Bit
Check Bit
2
2
4
3
8
4
16
5
32
6
64
7
128
8
256
9
Check bit kemudian disisipkan pada data pada posisi yang dihitung menggunakan rumus perhitungan posisi check bit.
Rumus perhitungan posisi Check Bit C^i= 2^(i-1)
Sehingga dengan rumus posisi tersebut, didapat posisi check bit yang akan diletakkan pada data diperlihatkan pada tabel.




Tabel 2. Tabel posisi check bit
Check Bit
Posisi
C1
1
C2
2
C3
4
C4
8
C5
16
C6
32
C7
64
C8
128
C9
256
  • Proses Pendeteksian Error
  1. 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.
  2. Tandai posisi bit yang merupakan posisi dari check bit. Posisi selain posisi check bit merupakan posisi data bit.
  3. Tentukan  rumus  perhitungan  dari  masing-masing check bit.untuk n = 1 hingga jumlah dari check bit, lakukan hal berikut:
a.) 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.
b.)  Hitung berapa panjang bit yang diterima dan original.
c.)  Cek tabel posisi check bit dan ekstrak chek bit nya.
d.)  Hitung kembali chek bit nya dengan bit yang didapat.
e.)  Konversikan operasikan XOR ke bentuk decimal.
v Contoh Kasus Hamming Code
Suatu memori internal menyimpan word 8 bit, suatu data 0011 0010 disimpan pada suatu alamat. Hitunglah bit paritas untuk mendeteksi dan memperbaiki kesalahan. Andaikan bit ke lima mengalami kesalahan, tunjukkan bagaimana kode Hamming mendeteksi kesalahan tersebut dan memperbaikinya.
Jawab:
8 bit = 2^n = 2^3. n=3
bit paritas = n+1 = 3+1 = 4
8+4 = 12
DSC_0674.JPG
P1 (melangkahi 1) = 00101 = 0 (menggunakan operasi XOR, jika bit 1 berjumlah ganjil maka = 1,
P2 (melangkahi 2) = 01101 = 1 sedangkan jika bit 1 berjumlah genap maka = 0)
P4 (melangkahi 3) = 0110 = 0
P8 (melangkahi 4) = 0010 = 1
Andaikan bit 5 mengalami kesalahan, maka:
DSC_0674 - Copy.JPG
P1 = 01101 = 1 (salah)
P2 = 01101 = 1 (benar)
P4 = 1110 = 1 (salah)
P8 = 0010 = 1 (benar)
Karena kesalahan terjadi di P1 dan P4, maka 1+4 = 5. Maka kesalahan terjadi di bit ke-5
  • Kekurangan dan Kelebihan Hamming Code
Kelebihan yang didapatkan dengan menggunakan metode ini adalah cara kerjanya yang cukup  sederhana  dan  tidak  membutuhkan  alokasi memori yang banyak. Selain itu dengan digunakannya konsep error  correcting  code  pada  metode  ini  maka  jika  ditemukan error saat pendeteksian, data tidak perlu ditransmisikan ulang tetapi  langsung  dikoreksi  di  simpul  tujuan.
Sedangkan kekurangan dari metode Hamming Code adalah tidak dapat mendeteksi bila terjadi dua buah kesalahan sekaligus. Contohnya bila 1111111 terkirim sebagai 11011110 pada odd parity code yang seharusnya adalah 11111111.























BAB III
PENUTUP
KESIMPULAN
Dari penjelasan di atas, dapat kita simpulakan bahwa, Modul I/O Adalah central switch untuk mengendalikan satu atau lebih peripheral atau perangkat input output yang berperan sangat penting dalam mnjaga  komunikasi antar perangkat, tetap berjalan semestinya. Selain itu didalam koreksi error hamming kode merupakan algoritma pengecekan error yang paling sederhana yang memiliki kelebihan dan kekurangan,namun metode ini kurang tepat diaplikasikan jika terdapat lebih dari satu bit error.





















DAFTAR PUSTAKA
  1. http://www.louiewong.com/archives/137
  2. http://faculty.washington.edu/lcrum/Archives/TCSS372AF06/Slides11_01.ppt
  3.  

Tidak ada komentar:

Posting Komentar