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 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
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
- CPU mengontrol peripheral secara langsung.
- Ditambahkannya sebuah pengontrol atau modul I/O
CPU menggunakan I/O terprogram tanpa menggunakan interrupt.
- CPU menggunakan interrupt
- Menggunakan DMA
- Modul I/O ditingkatkan kemampuannya menjadi
sebuah prosessor yang memiliki tugasnya sendiri, yang menggunakan
instruksi tertentu untuk I/O tertentu.
- 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-tem 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 control 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.