Selasa, 17 Mei 2016

TUGAS ORKOM : MODUL I/O DAN KODE HAMMING

Makalah
Organisasi dan Arsitektur Komputer
Modul I/O & Kode hamming

Untuk Memenuhi Salah Satu Tugas
Mata Kuliah Organisasi dan Arsitektur Komputer
Dosen Pembimbing: Ahmad Wildan Yulianto, M.T


Disusun oleh:
1. Taufik Hidayat Faesal                           (Nomor Induk Mahasiswa : 1510530024)
2. Ahmad Fahrurrozi                                  (Nomor Induk Mahasiswa : 1510530032)
3. Faizin Ahmad                                          (Nomor Induk Mahasiswa : 1510520035)





PROGRAM STUDI S1 TEKNIK INFORMATIKA SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER BUMIGORA MATARAM 2016 




KATA PENGANTAR
Rasa syukur yang dalam kami sampaikan ke hadirat Tuhan Yang Maha Pemurah, karena berkat kemurahan-Nya makalah ini dapat kami selesaikan sesuai yang diharapkan.Dalam makalah ini kami membahas “Memory Internal dan Memory Eksternal”, yakni komponen dalam Organisasi dan Arsitektur. Makalah ini dibuat dalam rangka memperdalam  pemahaman dan pengetahuan tentang bagaimana Peranan dari Memory Internal dan Memory Eksternal yang ada di dalam struktur Organisasi dan Arsitektur Komputer dan sekaligus melakukan apa yang menjadi tugas mahasiswa yang mengikuti mata kuliah “Organisasi dan Arsitektur Komputer” dalam proses pendalaman materi ini, tentunya kami mendapatkan bimbingan, arahan, koreksi dan saran, untuk itu rasa terima kasih yang dalamdalamnya kami sampaikan :
·         Ahmad Wildan Yulianto, M.T, selaku dosen mata kuliah “Organisasi dan Arsitektur Komputer”
·         Rekan - rekan mahasiswa yang telah banyak memberikan masukan untuk makalah ini. Demikian makalah ini saya buat semoga bermanfaat,


Mataram,  4 Mei 2016            



Tim Penyusun  



Device Eksternal
            Operasi I/O dilakukan melalui berbagai macam perangkat eksternal yang menyediakan sarana bertukar data antara perngkat eksternal dan komputer. Perangkat eksternal menempel ke komputer dengan link ke modul I/O. link tersebut digunakan untuk bertukar kontrol, status, dan data antara modul I/O dan perangkat eksternal. Perangkat eksternal yang terhubung ke modul I/O sering disebut sebagai perangkat periferal atau, sederhana, perifer. secara luas perangkat eksternal dapat dikasifikasi  ke dalam tiga kategori:
·         Human Readable : cocok untuk berkomunikasi dengan pengguna computer
·         Machine Readable : cocok untuk berkomunikasi dengan perangkat /peralatan
·         Comunication : cocok untuk berkomunikasi dengan perangkat remote
Keyboard / Monitor
            Cara yang paling umum untuk berinteraksi antara komputer dengan pengguna adalah dengan keyboard dan monitor. pengguna memberikan masukan melalui keyboard. Masukan ini kemudian ditransmisikan ke komputer dan dapat juga ditampilkan pada monitor. Selain itu, data monitor yang ditampilkan disediakan oleh komputer. Unit dasar pertukaran karakter. Terkait dengan masing-masing karakter adalah kode, biasanya 7 atau 8 bit panjangnya. Kode teks yang paling umum digunakan adalah International Reference Alphabet (IRA).


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.

A.   FUNGSI MODUL I/O :
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.

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 :
1.    Permintaan dan pemeriksaan status perangkat dari CPU ke modul I/O.
2.    Modul I/O memberi jawaban atas permintaan CPU.
3.    Apabila perangkat eksternal telah siap untuk transfer data, maka CPU akan mengirimkan perintah ke modul I/O.
4.    Modul I/O akan menerima paket data dengan panjang tertentu dari peripheral.
5.    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. 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. Perhatikan gambar 6.2 berikut.

Fungsi selanjutnya adalah 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.
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.
B.   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 6.3.

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.

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.

Dalam teknik I/O terprogram, terdapat dua macam inplementasi perintah I/O yang tertuang dalam instruksi I/O, yaitu: memory-mapped I/O dan isolated I/O.
Dalam memory-mapped I/O, terdapat ruang tunggal untuk lokasi memori dan perangkat I/O. CPU memperlakukan register status dan register data modul I/O sebagai lokasi memori dan menggunakan instruksi mesin yang sama untuk mengakses baik memori maupun perangkat I/O. Konskuensinya adalah diperlukan saluran tunggal untuk pembacaan dan saluran tunggal untuk penulisan. Keuntungan memory-mapped I/O adalah efisien dalam pemrograman, namun memakan banyak ruang memori alamat.
Dalam teknik isolated I/O, dilakukan pemisahan ruang pengalamatan bagi memori dan ruang pengalamatan bagi I/O. Dengan teknik ini diperlukan bus yang dilengkapi dengan saluran pembacaan dan penulisan memori ditambah saluran perintah output. Keuntungan isolated I/O adalah sedikitnya instruksi I/O.


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

Alternatif lainnya adalah menggunakan software poll. Prosesnya, apabila CPU mengetahui adanya sebuah interupsi, maka CPU akan menuju ke routine layanan interupsi yang tugasnya melakukan poll seluruh modul I/O untuk menentukan modul yang melakukan interupsi. Kerugian software poll adalah memerlukan waktu yang lama karena harus mengidentifikasi seluruh modul untuk mengetahui modul I/O yang melakukan interupsi.
Teknik yang lebih efisien adalah daisy chain, yang menggunakan hardware poll. Seluruh modul I/O tersambung dalam saluran interupsi CPU secara melingkar (chain). Apabila ada permintaan interupsi, maka CPU akan menjalankan sinyal acknowledge yang berjalan pada saluran interupsi sampai menjumpai modul I/O yang mengirimkan interupsi.
Teknik berikutnya adalah arbitrasi bus. Dalam metode ini, pertama – tama modul I/O memperoleh kontrol bus sebelum modul ini menggunakan saluran permintaan interupsi. Dengan demikian hanya akan terdapat sebuah modul I/O yang dapat melakukan interupsi. 

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 6.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 6.5 menunjukkan blok diagram Intel 8255A dan pin layout-nya.
          
  

Bagian kanan dari blok diagram Intel 8255A adalah 24 saluran antarmuka luar, terdiri atas 8 bit port A, 8 bit port B, 4 bit port CA dan 4 bit port CB. Saluran tersebut dapat diprogram dari mikroprosesor 8086 dengan menggunakan register kontrol untuk menentukan bermacam – macam mode operasi dan konfigurasinya. Bagian kiri blok diagram merupakan interface internal dengan mikroprosesor 8086. Saluran ini terdiri atas 8 bus data dua arah (D0 – D7), bus alamat, dan bus kontrol yang terdiri atas saluran CHIP SELECT, READ, WRITE, dan RESET.
Pengaturan mode operasi pada register kontrol dilakukan oleh mikroprosesor., Pada Mode 0, ketiga port berfungsi sebagai tiga port I/O 8 bit. Pada mode lain dapat port A dan port B sebagai port I/O 8 bit, sedangkan port C sebagai pengontrol saluran port A dan B.
PPI Intel 8255A dapat diprogram untuk mengontrol berbagai peripheral sederhana. Gambar 6.6 memperlihatkan contoh penggunaan 8255A untuk modul I/O Keyboard dan display.









DMA (Direct Memory Access)
DMA (Direct Memory Access) adalah suatu hardware spesial (chip) yang dapat mengontrol aliran bit data antara memory (RAM) dan beberapa controller dari I/O devices tanpa memerlukan interferensi dari CPU secara terus menerus. (Mengakses dan mengontrol memori sistem tanpa interferensi CPU secara terus menerus).

Fungsi DMA

            Fungsi dari DMA sendiri adalah agar CPU dapat melakukan pekerjaan atau instruksi yang berbeda ketika melakukan operasi baca tulis dari perangkat peripheral. Tanpa adanya  DMA CPU akan terus sibuk melakukan operasi baca tulis (transfer data) dan tidak dapat melakukan atau menyelesaikan instruksi yang lain. Dengan adanya DMA, CPU cukup mempersiapkan DMA chip dengan cara memberikan beberapa informasi seperti jumlah data bit yang ditransfer, alamat dari device dan memory yang diperlukan dan arah dari aliran data tersebut, setelah itu DMA chip sendiri yang akan menyelesaikannya. DMA chip akan melakukan interupt, ketika pekerjaannya sudah selesai. Selama DMA chip melakukan tugasnya hingga munculnya interupt, CPU dapat menyelesaikan instruksi yang lainnya.

Fungsi Lain modul DMA:
  • Dapat menirukan sebagian fungsi processor
  • Dapat mengambil alih fungsi prosesor yang berhubungan dengan transfer data
Kapan DMA bekerja?
  • Saat prosesor sedang tidak menggunakan bus
  • saat prosesor dipaksa berhenti sesaat (suspend) , siklus "dicuri oleh DMA" adalaah cycle stealing

Diagram Modul DMA
Cara Kerja DMA :
  • CPU mengirimkan data data berikut ini ke DMA controller:
    • Perintah read/write
    • Alamat device yang akan diakses
    • Alamat awal blok memori yang akan dibaca/ditulis
    • Jumlah blok data yang akan ditransfer
  • CPU mengeksekusi program lain
  • DMA controller mengirimkan seluruh blok data (per satu word) langsung ke memori(tanpa melibatkan CPU)
  • DMA controller mengirim interrupt ke CPU jika telah selesai.

Kelemahan DMA
Tanpa DMA, diprogram menggunakan input / Output (PIO) mode untuk berkomunikasi dengan perangkat pinggiran, atau menggunakan / menyimpan instruksi dalam kasus multicore chips,CPU biasanya penuh diduduki untuk seluruh durasi dari operasi membaca atau menulis, dan dengandemikian tidak tersedia untuk melakukan pekerjaan lain. Dengan DMA, CPU akan melakukan transfer, lakukan operasi lainnya sementara transfer yang sedang berlangsung, dan menerima mengganggu dari DMA controller setelah operasi telah selesai. Hal ini sangat berguna dalam real-time komputasi di mana aplikasi tidak stalling belakang yg berbarengan operasi adalah penting. Dan aplikasi lain yang berhubungan dengan berbagai daerah adalah bentuk streaming pemrosesan dimana perlu ada pengolahan data dan transfer paralel, untuk mencapai throughput memadai.

Intel 8237A DMA Controller
Intel 8237A DMA controller
Intel 8237A DMA controller interface untuk keluarga 80 x 86 prosesor dan
ke memori DRAM untuk memberikan kemampuan DMA. Gambar 7.14 menunjukkan lokasi modul DMA. Ketika modul DMA perlu menggunakan sistem bus (data, alamat, dan kontrol) untuk mentransfer data, ia akan mengirimkan sinyal yang disebut TAHAN ke proces-sor. Prosesor merespon dengan HLDA (tahan mengakui) sinyal, yang menunjukkan
bahwa modul DMA dapat menggunakan bus. Sebagai contoh, jika modul DMA adalah untukmentransfer blok data dari memori ke disk, ia akan melakukan hal berikut:
1.Perangkat perifer (seperti disk controller) akan meminta pelayanan DMA dengan menarik DREQ (permintaan DMA) yang tinggi.
2.DMA akan menempatkan tinggi pada HRQ nya (permintaan ditahan), sinyal CPU
melalui pin TAHAN bahwa pihaknya perlu menggunakan bus.

3.CPU akan menyelesaikan siklus bus ini (belum tentu instruksi inition) dan menanggapi permintaan DMA dengan menempatkan tinggi pada HDLA nya (tahan mengakui), sehingga memberitahu 8237 DMA yang dapat pergi ke depan dan menggunakan bus untuk melakukan tugas. TAHAN harus tetap aktif tinggi selama DMA adalah melakukan tugasnya.
4.DMA akan mengaktifkan DACK (DMA mengakui), yang menceritakan perifer
perangkat yang akan mulai untuk mentransfer data.
5.DMA mulai mentransfer data dari memori ke perifer dengan menempatkan
alamat byte pertama dari blok pada bus alamat dan mengaktifkan ESDM, sehingga membaca byte dari memori ke bus data; kemudian mengaktifkan IOW untuk menulis ke perifer. Kemudian DMA decrements counter dan incre-
KASIH pointer alamat dan mengulangi proses ini sampai hitungan mencapai nol
dan tugas selesai.
6.Setelah DMA selesai tugasnya akan menonaktifkan HRQ, menandakan CPU
bahwa hal itu dapat mendapatkan kembali kontrol atas bus nya. Sementara DMA menggunakan bus untuk mentransfer data, prosesor idle.Demikian pula, ketika prosesor menggunakan bus, DMA idle. The 8237 DMAdikenal sebagai fly-by DMA controller. Ini berarti bahwa data yang dipindahkan dari satu lokasi ke lokasi lain tidak melewati chip DMA dan tidak disimpan dalam chip DMA. Oleh karena itu, DMA hanya dapat mentransfer data antara I / O port dan alamat memori, tetapi tidak antara dua I / O port atau dua lokasi memori.Namun, seperti yang dijelaskan kemudian, chip DMA dapat melakukan memori-to transfer memori melalui register.
8237 berisi empat saluran DMA yang dapat diprogram independently, dan salah satu dari saluran dapat aktif setiap saat. Saluran ini bernomor 0, 1, 2, dan 3. 8237 memiliki satu set lima register control / perintah untuk program dan kontrol DMA operasi di salah satu saluran (Tabel 7.2):
 •
Perintah:
Beban prosesor ini mendaftar untuk mengontrol pengoperasian
DMA. D0 memungkinkan memori-ke-memori mentransfer, di mana saluran 0 digunakan
untuk mentransfer byte menjadi 8237 daftar sementara dan channel 1 digunakan untuk
mentransfer byte dari register ke memori. Ketika memori-ke-memori
yang aktif, D1 dapat digunakan untuk menonaktifkan kenaikan / penurunan pada saluran 0 sehingga nilai tetap dapat ditulis ke dalam blok memori. D2 memungkinkan atau menonaktifkan DMA.
 •
Status:
Prosesor membaca register ini untuk menentukan status DMA. Bit
D0-D3 digunakan untuk menunjukkan jika saluran 0-3 telah mencapai TC mereka (terminal menghitung). Bit D4-D7 digunakan oleh prosesor untuk menentukan apakah saluran apapun memiliki permintaan DMA tertunda.
 •
Mode:
prosesor set register ini untuk menentukan modus operasi dari DMA. Bit D0 dan D1 digunakan untuk memilih saluran. Bit lainnya
pilih berbagai modus operasi untuk saluran yang dipilih. Bit D2 dan D3 menentukan apakah transfer dari perangkat I / O ke memori (write) atau dari memori ke I / O (baca), atau memverifikasi operasi. Jika D4 diatur, maka alamat memori mendaftar dan jumlah register ulang dengan aslinya
nilai-nilai pada akhir dari transfer data DMA. Bit D6 dan D7 menentukan
cara di mana 8237 digunakan. Dalam mode single, satu byte data adalah trans-
ferred. mode blok dan permintaan digunakan untuk transfer blok, dengan
modus permintaan memungkinkan untuk mengakhiri dini transfer. Riam
Mode memungkinkan beberapa 8237s untuk mengalir untuk memperluas jumlah-saluran
diizinkan untuk lebih dari 4.
 •
Masker tunggal:
prosesor set register ini. Bit D0 dan D1 pilih-saluran yang
nel. Bit D2 membersihkan atau menetapkan bit masker untuk saluran itu. Ini adalah melalui reg- iniister bahwa masukan DREQ dari saluran tertentu dapat bertopeng (cacat) atau kedoknya (diaktifkan). Sementara perintah mendaftar dapat digunakan untuk menonaktifkan
seluruh chip DMA, single mask daftar memungkinkan programmer untuk menonaktifkan
atau mengaktifkan saluran tertentu.
 •
Semua Mask:
register ini mirip dengan single mask daftar kecuali bahwa keempat
saluran dapat bertopeng atau membuka tabir dengan satu operasi menulis.Selain itu, 8237A memiliki delapan register Data: satu alamat memori mendaftar dan satu hitungan mendaftar untuk setiap saluran. prosesor set register ini untuk secara tidak cate lokasi ukuran memori utama akan terpengaruh oleh transfer




Saluran I/O Dan Processor

Fungsi I/O
  1. CPU mengontrol peripheral secara langsung.
  2. Ditambahkannya sebuah pengontrol atau modul I/O CPU menggunakan I/O terprogram tanpa menggunakan interrupt.
  3. CPU menggunakan interrupt
  4. Menggunakan DMA
  5. Modul I/O ditingkatkan kemampuannya menjadi sebuah prosessor yang memiliki tugasnya sendiri, yang menggunakan instruksi tertentu untuk I/O tertentu.
  6. Modul I/O memiliki memori lokalnya sendiri dan merupakan sebuah computer yang memiliki tugasnya sendiri.
Saluran I/O
Pada kebanyakan sistem komputer, CPU tidak dibebani menangani tugas yang berhubungan dengan I/O. Tetapi tanggung jawab untuk kontrol peralatan diserahkan pada prosesor I/O, yang dikenal sebagai saluran I/O (I/O channel). SALURAN INPUT / OUTPUT Input / output (I / O) saluran menyediakan sarana komunikasi antara CPU dan perangkat periferal. Hal ini dicapai dengan kabel listrik yang membawa kedua data dan kontrol informasi antara komputer dan perangkat periferal. Sinyal ditransmisikan dan diterima melalui kabel yang menghubungkan CPU ke perangkat on-line. Kabel ini menyediakan jalur (channel) untuk sinyal untuk melakukan perjalanan. Sinyal untuk kedua monitoring dan data yang ditransmisikan dengan cara I / O channel. I / O Saluran ini dapat digunakan khusus untuk input data, data output, atau data input dan output. Pada komputer desktop, saluran I / O disebut sebagai port komunikasi
Saluran I/O itu sendiri merupakan prosesor yang sudah diprogram. Program-program yang di-execute ini disebut channel program. Channel program ini menentukan operasi, yang diperlukan untuk akses peralatan dan mengontrol jalur data (data pathway).
Macam-Macam Saluran
1.  Selector Channel;
Dapat mengatur aliran data antara memori utama dengan sebuah peralatan pada saat tersebut. Karena saluran merupakan processor-processor yang cepat maka saluran selektor biasanya hanya menggunakan peralatan I/O dengan kecepatan tinggi, seperti disk. Penggunaan peralatan dengan kecepatan rendah, misal card reader.
2.  Multiplexor Channel;
Dapat mengatur aliran data antara memori utama dengan beberapa peralatan. Saluran Multiplexor lebih efektif bila menggunakan peralatan dengan kecepatan rendah, dibandingkan dengan selector channel. Dengan saluran multiplexor, beberapa peralatan dapat diaktifkan secara serentak, tetapi saluran harus melengkapi saluran program untuk satu peralatan sebelum memulai dengan saluran program lain.

3. Block Multiplexor Channel;
Mengatur aliran data ke berbagai peralatan. Block Multiplexor Channel dapat mengeksekusi satu instruksi dari saluran program untuk satu peralatan, kemudian dapat mengalihkan instruksi-instruksi dari saluran program itu ke peralatan yang lain.

Macam-macam Device
1.  Dedicated Device;
Digunakan untuk pengaksesan oleh satu orang pada setiap saat. Contoh : Terminal.
2.  Shared Device;
Digunakan untuk pengaksesan oleh banyak pemakai secara bersamaan.Contoh: Disk. Aktifitas I/O untuk shared device adalah sangat kompleks dibanding aktifitas I/O pada dedicated device. Dua fungsi yang sangat penting dari shared device adalah alokasi tempat dan pemberian akses yang tepat.
Aktifitas Saluran
Tujuan dari saluran I/O adalah sebagai perantara antara CPU-main memory dengan unit pengontrol penyimpan. CPU berkomunikasi dengan saluran melalui beberapa perintah yang sederhana.
Beberapa saluran akan memberi perintah :
-  Test I/O, untuk menentukan apakah jalur (pathway) yang menuju peralatan sedang sibuk.
-  Start I/O, pada peralatan tertentu.
- Halt I/O, pada peralatan tertentu.
Saluran biasanya berkomunikasi dengan CPU melalui cara interupsi. Interupsi akan terjadi, jika keadaan error terdeteksi, misalnya instruksi CPU yang salah atau jika aktifitas I/O telah diakhiri.
Jika interupsi terjadi, kontrol akan bercabang melalui rutin pengendali interupsi (interrupt-handler routine), dimana kontrol akan menentukan penyebab dari interupsi, melakukan kegiatan yang tepat, kemudian mengembalikan kontrol pada pemanggil 
Penemuan saluran I / O pada pertengahan 1950-an adalah salah satu perkembangan penting yang membuat Kinerja tinggi sistem operasi yang cepat. Sebelum waktu itu, I / O dieksekusi sebagai instruksi dalam CPU. Gagasan negara menunggu setara dengan gagasan sistem idle. Komputer pertama untuk menerapkan saluran adalah IBM 709. Dengan saluran I / O (dan kemudian dengan beberapa saluran), yang lama saluran terpanjang I / O instruksi diubah menjadi operasi kontrol sederhana untuk mengelola channel. Sementara I / O perintah diproses dalam saluran, CPU tidak harus menunggu untuk I / O operasi tapi bisa mengeksekusi instruksi lain yang tidak tergantung pada I / O proses. Saluran adalah prosesor independen, sering sekuat CPU. Ia telah membaca / menulis akses ke sama (Pusat) penyimpanan CPU. Saluran menanggapi satu set kecil instruksi yang mengontrol operasi.
Saluran komponen hardware independen yang mengkoordinasikan semua I / O untuk satu set pengendali atau perangkat. Hal ini tidak hanya media komunikasi, meskipun nama; itu adalah perangkat programmable yang menangani semua rincian I / O setelah diberi daftar operasi I / O untuk melaksanakan (program channel). Setiap saluran dapat mendukung satu atau lebih controller dan / atau perangkat, tetapi masing-masing program saluran hanya dapat diarahkan pada salah satu perangkat yang terhubung. Sebuah program channel berisi daftar perintah ke saluran itu sendiri dan ke controller dan perangkat yang diarahkan. Setelah sistem operasi telah menyiapkan daftar lengkap perintah channel, itu mengeksekusi instruksi I / O mesin tunggal untuk memulai program saluran; saluran sesudahnya mengasumsikan kendali operasi I / O sampai mereka selesai.






THE EXTERNAL INTERFACE: THUNDERBOLT AND INFINIBAND

Jenis Interfaces
Antarmuka ke perangkat dari modul I / O harus disesuaikan dengan sifat
dan operasi perifer. Salah satu ciri utama dari antarmuka adalah apakah itu adalah serial atau paralel (Gambar 7.16). Di sebuahmantarmuka paralel, Ada beberapa baris menghubungkan modul I / O dan perifer, dan beberapa bit yang ditransfer secara bersamaan, seperti semua bit dari sebuah kata yang ditransfer secara bersamaan lebih dari data bus. Di sebuah serial interface, Hanya ada satu baris yang digunakan untuk mengirimkan data, dan bit harus dikirimkan satu per satu. Sebuah antarmuka paralel secara tradisional

digunakan untuk periferal kecepatan tinggi, seperti tape dan disk, sedangkan interface serial secara tradisional telah digunakan untuk printer dan terminal. Dengan generasi baru Kecepatan tinggi serial interface, antarmuka paralel menjadi jauh kurang umum. Dalam kedua kasus, modul I / O harus terlibat dalam dialog dengan perifer. Secara umum, dialog untuk operasi menulis adalah sebagai berikut:
 1.Modul I / O mengirimkan sinyal kontrol meminta izin untuk mengirim data.
 2.perifer mengakui permintaan.
 3.Data transfer modul I / O (satu kata atau blok tergantung padaperifer).
 4.perifer yang mengakui telah menerima Sebuah operasi baca hasil
yang sama.
Kunci operasi modul I / O adalah buffer internal yang dapat menyimpan data
yang melewati antara perifer dan sisanya dari sistem. penyangga ini memungkinkan modul I/O untuk mengkompensasi perbedaan kecepatan antara sistem bus dan garis eksternal. Point-to-Point dan Multipoint Konfigurasi Hubungan antara modul I / O dalam sistem komputer dan perangkat eksternal dapat berupa point-to-point atau multipoint. Sebuah antarmuka point-to-point menyediakandedicated line antara modul I / O dan perangkat eksternal. Pada sistem kecil (PC, workstation), khas link point-to-point termasuk yang untuk keyboard,printer, dan modem eksternal. Sebuah contoh khas seperti interface adalah EIA-232 Spesifikasi (lihat [STAL11] untuk deskripsi). Peningkatan penting adalah antarmuka eksternal multipoint, digunakan untuk mendukung perangkat pelabuhan penyimpanan massal eksternal (disk dan tape drive) dan perangkat multimedia (CD-ROM, video, audio). interface multipoint ini berlaku bus eksternal, dan mereka menunjukkan jenis yang sama logika seperti bus dibahas dalam Bab 3. Dalam hal ini Bagian, kita melihat dua contoh kunci: Thunderbolt dan InfiniBand.
Petir
Yang paling baru, dan tercepat, teknologi koneksi perifer menjadi tersedia untuk
tujuan umum digunakan adalah Thunderbolt, yang dikembangkan oleh Intel dengan
kolaborasi dari Apple.Satu Thunderbolt kabel dapat mengelola pekerjaan sebelumnya diperlukan beberapa kabel.Teknologi ini menggabungkan data, video, audio, dan daya ke kecepatan tinggi con- tunggal nection untuk periferal seperti hard drive, RAID (Redundant Array of Independent Disk) array, kotak video capture, dan antarmuka jaringan. Hal ini menyediakan hingga 10 Gbps throughput dalam setiap arah dan hingga 10 Watts kekuasaan untuk peripheral terhubung. Meskipun teknologi dan spesifikasi yang terkait telah stabil, yang pengenalan perangkat Thunderbolt dilengkapi ke pasar memiliki, pada Penulisan ini, hanya perlahan-lahan mulai berkembang. Hal ini karena periph Thunderbolt-kompatibel antarmuka eral jauh lebih kompleks daripada perangkat USB yang sederhana. Itu Generasi pertama produk Thunderbolt terutama ditujukan pada prosumer (professional-konsumen) pasar seperti editor audiovisual yang ingin dapat bergerak volume besar data dengan cepat antara perangkat penyimpanan dan laptop. Sebagai teknologi menjadi lebih murah, Thunderbolt akan menemukan penggunaan konsumen massal, seperti memungkinkan sangat Kecepatan tinggi backup data dan editing foto high-definition. Thunderbolt sudah merupakan fitur standar dari MacBook Pro laptop dan iMac komputer desktop Apple.
ThunderBolt Configuration
 Gambar 7.17 menunjukkan komputer biasa
konfigurasi yang menggunakan Thunderbolt. Dari sudut pandang I / O, yang Elemen sentral dalam konfigurasi ini adalah kontroler Thunderbolt, yang mana Kinerja tinggi, cross-bar switch. Tidak seperti berbasis bus I / O arsitektur, masing-masing Thunderbolt port pada komputer mampu memberikan kecepatan transfer data penuh dari link di kedua arah tanpa berbagi kapasitas transmisi data antara port atau antara arah hulu dan hilir.Untuk komunikasi internal ke komputer, Thunderbolt pengendali mencakup satu atau lebih DisplayPort
port protokol adaptor.
DisplayPort adalah dis digital bermain standar antarmuka sekarang banyak digunakan untuk monitor komputer, layar laptop, dan grafis dan interface video lainnya. controller juga mencakup PCI Express beralih dengan sampai empat PCI Express port protokol adaptor untuk komunikasi internal.
Thunderbolt controller menyediakan akses ke perangkat eksternal melalui satu atau
lebih
konektor Thunderbolt. Setiap konektor dapat memberikan satu atau dua full-duplex saluran, dengan masing-masing saluran menyediakan hingga 10 Gbps di setiap arah. Sama konektor dapat digunakan untuk kabel listrik atau optik. Kabel listrik dapat memperpanjang hingga 3 meter, sedangkan kabel optik dapat memperpanjang ke dalam puluhan meter.Pengguna dapat menghubungkan perangkat kinerja tinggi untuk PC mereka atas kabel,daisy chaining satu demi satu, hingga total 7 perangkat, 1 atau 2 yang dapat tinggi menampilkan resolusi DisplayPort (tergantung pada kontroler konfigurasi di PC host). Karena teknologi Thunderbolt memberikan dua full-bandwith-saluran Nels, pengguna dapat mewujudkan bandwidth tinggi tidak hanya pada perangkat pertama yang melekat tetapi pada perangkat hilir juga.

Gambar 7.20 menunjukkan struktur logis yang digunakan untuk mendukung pertukaran lebih InfiniBand. Untuk memperhitungkan fakta bahwa beberapa perangkat dapat mengirim data lebih cepat dari perangkat tujuan lain dapat menerimanya, sepasang antrian di kedua ujung setiap link sementara buffer kelebihan outbound dan data yang masuk. Antrian dapat ditemukan di adaptor saluran atau di memori perangkat terpasang ini. Sepasang terpisah dari antrian digunakan untuk setiap jalur virtual. Tuan rumah menggunakan antrian ini dalam cara berikut. Tuan rumah tempat transaksi, disebut entri antrian kerja (wqe) menjadi baik mengirim atau menerima antrian dari pasangan antrian. Dua WQEs paling penting KIRIM dan MENERIMA. Untuk operasi SEND, yang wqe menentukan blok data di ruang memori perangkat untuk hardware untuk mengirim ke tujuan. A MENERIMA Wqe menentukan mana hardware adalah untuk menempatkan data yang diterima dari perangkat lain
saat itu konsumen mengeksekusi operasi KIRIM. Proses channel adapter
masing-masing diposting wqe dalam urutan prioritas yang tepat dan menghasilkan antrian selesai
entri (CQE) untuk menunjukkan status penyelesaian.
Gambar 7.20 juga menunjukkan bahwa arsitektur protokol berlapis digunakan, konsisten dan
ing dari empat lapisan:
 
Physical:
Spesifikasi fisik-lapisan mendefinisikan tiga kecepatan tautan (1X,
4X, dan 12X) memberikan tingkat transmisi 2,5, 10, dan 30 Gbps, masing-masing
(Tabel 7.3). Lapisan fisik juga mendefinisikan media fisik, termasuk COP-
per dan serat optik.
 •
Link:
 Lapisan ini mendefinisikan struktur paket dasar yang digunakan untuk pertukaran data,
termasuk skema pengalamatan yang memberikan alamat link unik untuk setiap
perangkat dalam subnet. Tingkat ini termasuk logika untuk menyiapkan jalur virtual dan
untuk beralih data melalui switch dari sumber ke tujuan dalam sebuah subnet.
Struktur paket termasuk kode kesalahan-deteksi untuk menyediakan keandalan.

  Network:
  Lapisan jaringan rute paket antara berbeda InfiniBand
subnet.
  •
Transport:
  Lapisan transport menyediakan mekanisme keandalan untuk end-to-end
  transfer paket di satu atau lebih subnet.









IBM ZENTERPRISE 196 I/O STRUCTURE

ZEnterprise 196 adalah terbaru IBM menawarkan komputer mainframe (pada saat tulisan ini), diperkenalkan pada tahun 2010. Sistem ini didasarkan pada penggunaan chip z196, yang merupakan multicore chip yang 5.2-GHz dengan empat core. Arsitektur z196 dapat memiliki maksimum 24 chip prosesor untuk total 96 core. Pada bagian ini, kita melihat I O / struktur dari zEnterprise 196. Struktur saluran ZEnterprise 196 memiliki dedicated I / O subsistem yang mengelola semua I / O operasi, benar-benar off-loading pengolahan dan memori ini beban dari proces- utama
sors. Gambar 7.21 menunjukkan struktur logis dari I / O subsistem. Dari pro 96 inti
cessors, hingga 4 ini dapat didedikasikan untuk I / O digunakan, menciptakan 4
subsistem saluran (CSS). Setiap CSS terdiri dari unsur-unsur berikut:

 
Sistem membantu prosesor (SAP):
            SAP adalah inti prosesor dikonfigurasi untuk I / O
operasi. Perannya adalah untuk offload I / O operasi dan mengelola saluran dan
I / O operasi antrian. Ini mengurangi prosesor lain dari semua / O tugas saya, allow-
ing mereka untuk menjadi didedikasikan untuk logika aplikasi.
 •
Daerah sistem perangkat keras (HSA):
            HSA adalah bagian reserved sistem gota
ory yang berisi konfigurasi I / O. Hal ini digunakan oleh SAP. Sebuah jumlah yang tetap
16 GB dicadangkan, yang bukan bagian dari memori pelanggan dibeli. Ini
memberikan fleksibilitas konfigurasi yang lebih besar dan ketersediaan tinggi dengan melenyapkan
NATing direncanakan dan direncanakan sebelumnya padam.
 •
Partisi Logical:
            Partisi logis adalah suatu bentuk mesin virtual, yang di Intinya, prosesor logis didefinisikan pada tingkat sistem operasi.5 setiap CSS mendukung hingga 16 partisi logical.


• Subchannels:
Sebuah subbuluh muncul untuk program sebagai perangkat logis dan contain informasi yang diperlukan untuk melakukan I / O operasi. satu subchannel
ada untuk setiap I / O perangkat dialamatkan oleh CSS. Sebuah subbuluh digunakan oleh kode channel subsistem berjalan pada sebuah partisi untuk lulus permintaan I / O ke channel subsistem. Sebuah subbuluh ditugaskan untuk setiap perangkat didefinisikan dengan
partisi logis. Hingga 196k sub-kanal yang didukung per CSS.
• Channel path:
Sebuah jalur saluran antarmuka tunggal antara saluran subsys-t
em dan satu atau unit kontrol yang lebih, melalui saluran. Perintah dan data dikirim di jalan saluran untuk melakukan permintaan I / O. Setiap CSS dapat memiliki hingga 256 channel jalan.
• Channel:
Saluran adalah prosesor kecil yang berkomunikasi dengan I / O con
trol unit trol (CU). Mereka mengelola transfer data antara memori danperangkat eksternal. Struktur rumit ini memungkinkan mainframe untuk mengelola sejumlah besar I / O perangkat dan link komunikasi. Semua proses I / O diturunkan dari aplikasi dan prosesor server meningkatkan kinerja. Saluran subsys-prosesor tem agak umum dalam konfigurasi, memungkinkan mereka untuk mengelola berbagai tugas I / O dan untuk menjaga dengan persyaratan yang berkembang. -saluran yang prosesor nel secara khusus diprogram untuk unit I / O control yang mereka antarmuka.
I/O System Organization
            Untuk menjelaskan organisasi sistem I / O, kita harus terlebih dahulu secara singkat menjelaskan fisik Tata letak zEnterprise 196. Gambar 7.22 adalah pandangan depan air-cooled ver-sion mesin (ada versi berpendingin udara). Sistem ini memiliki berikut karakteristik:
 • Berat: 2185 kg (4817 lbs)
 • Lebar: 1,534 m (5 ft)
 • Kedalaman: 1,375 m (4,5 ft)
 • Tinggi: 2,012 m (6,6 ft)
Tidak persis
seperti  laptop. Sistem ini terdiri dari dua teluk besar, yang disebut frame, bahwa rumah berbagai komponen zEnterprise 196. Tangan kanan Bingkai termasuk dua besar kandang, ditambah ruang untuk pemasangan kabel dan komponen lainnya. Kandang atas adalah prosesor kandang, dengan empat slot ke rumah hingga empat buku prosesor yang sepenuhnya intercon-dihubungkan. Setiap buku berisi modul multichip (MCM), kartu memori, dan I / O koneksi kandang. Setiap MCM adalah papan yang menaungi enam chip multicore dan dua kontrol penyimpanan chip. Kandang yang lebih rendah dalam bingkai A adalah I / O kandang, yang berisi I / O hardware,termasuk multiplexors dan saluran. I / O kandang adalah unit tetap dipasang oleh IBM untuk
spesifikasi pelanggan di pabrik.

Kiri bingkai tangan Z berisi baterai internal dan pasokan listrik dan ruang untuk satu atau lebih elemen pendukung, yang digunakan oleh manajer sistem untuk platform manajemen. Z bingkai juga berisi slot untuk dua atau lebih I / O menggambar-ers. I / O laci berisi komponen yang mirip dengan kandang I / O. Perbedaan yang bahwa laci kecil dan mudah bertukar masuk dan keluar di lokasi pelanggan untuk memenuhi
perubahan kebutuhan.Dengan latar belakang ini, kami sekarang menunjukkan konfigurasi khas zEnterprise yang 196 I / O sistem struktur (Gambar 7.23). Buku prosesor z196 mendukung dua antar-nal (yaitu, internal ke A dan frame Z) I / O infrastruktur: InfiniBand untuk I / O
kandang dan I / O laci, dan PCI Express (PCIe) untuk I / O laci. channel ini pengendali yang disebut sebagai fanouts.

            Koneksi InfiniBand dari buku prosesor ke kandang I / O dan I / O laci adalah melalui Host Saluran Adapter (HCA) fanout, yang memiliki InfiniBand link untuk multiplexors Infiniband dalam I / O sangkar atau laci. The InfiniBand multiplexors
digunakan untuk menghubungkan server, peralatan infrastruktur komunikasi,
penyimpanan, dan embedded system. Selain menggunakan InfiniBand untuk interkoneksi sistem, yang semuanya menggunakan InfiniBand, yang InfiniBand multiplexer mendukung lainnya I / O-teknik nologies. ESCON (Enterprise Sistem Connection) mendukung konektivitas ke disk, kaset, dan perangkat printer menggunakan teknologi berbasis serat proprietary. Ethernet con-nections menyediakan koneksi 1-Gbps dan 10-Gbps untuk berbagai perangkat yang dukungan-pelabuhan teknologi jaringan area lokal yang populer ini. Salah satu penggunaan penting dari Ethernet adalah untuk membangun peternakan server besar, terutama untuk


interkoneksi server blade dengan masing-masing lain dan dengan mainframe lainnya.6 Koneksi PCIe dari buku prosesor ke I / O laci yang melalui PCIe fanout ke switch PCIe. Switch PCIe dapat terhubung ke sejumlah I / O pengendali perangkat. Contoh umum untuk zEnterprise 196 adalah 1-Gbps dan 10-Gbps Ethernet dan Fiber Channel. Setiap buku berisi kombinasi hingga 8 InfiniBand HCA dan PCIe fanouts. Setiap fanout mendukung hingga 32 koneksi, untuk maksimum total 256 koneksi per buku prosesor, setiap koneksi dikendalikan oleh prosesor saluran.



KODE HAMMING
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 10110001 menjadi 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 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.
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.



Contoh Kasus
Budi dan Anto sedang chatingan satu sama lain, jelas keduanya sedang bercakap cakap dengan metode berkirim teks. Diasumsikan Metode Pendeteksian Error = Parity Check & Terminalnya Character-Oriented Transmission
Budi Mengetik Kata : Aku 
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 itu Masing masing ditambahkan dengan parity bit nya ( Asumsikan kita menggunakan Even Parity Bit ) Maka Data Akan berubah menjadi:
(A = 1000001 Setelah Di XOR kan, Hasilnya “0″ Karena kita menggunakan metode Even Parity Bit maka Parity Bitnya Bernilai “0″, maka Kode biner huruf “A” ditambah menjadi A = 10000010)
A = 10000010 
k = 11010111
u = 10101111
Data lalu dikirim dengan format berikut: 
10101111_11010111_10000010
Karena suatu hal entah itu attenuasi atau distorsi dan noise noise lainnya Bit Bit tadi ada yang berubah dalam perjalanannya menjadi: 
10101111_11010111_11000010
Pada Sisi Penerima Data tersebut dibaca sebagai kata “Cku” bukan “Aku” ( Lihat Tabel ASCII ), bila tanpa Metode Pendeteksian Error maka data tersebut akan dianggap valid dan tentu saja Anto menjadi Kebingungan melihat Tulisan Budi tesebut.
Mekanisme Pembacaannya: 
1. Deret bit 1100001 Di dekodisasi sehingga menghasilkan bit “1″ ( Tanpa Melibatkan Parity Bit nya )
2. Penerima membandingkan Hasil dekodisasi tadi dengan Parity bitnya. “1″ dan “0″, Karena tidak sama Maka Karakter Terdeteksi Error
3. Penerima Meminta data dikirim ulang, berharap data tidak rusak lagi.
4. Proses Diulang sampai data dianggap benar.



Tidak ada komentar:

Posting Komentar