Terdapat
tiga buah teknik dalam operasi I/O, yaitu: I/O terprogram, interrupt – driven I/O, dan DMA (Direct Memory Access). Ketiganya memiliki keunggulan
maupun kelemahan, yang penggunaannya disesuaikan sesuai unjuk kerja masing –
masing teknik.
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:
a.
Perintah control.
Perintah ini digunkan untuk
mengaktivasi perangkat peripheral dan memberitahukan tugas yang diperintahkan
padanya.
b.
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.
c.
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.
d.
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.
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, missal 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:
a.
Perangkat I/O akan mengirimkan sinyal
interupsi ke CPU.
b.
CPU menyelesaikan operasi yang sedang
dijalankannya kemudian merespon interupsi.
c.
CPU memeriksa interupsi tersebut, kalau valid
maka CPU akan mengirimkan sinyal acknowledgment ke
perangkat I/O untuk menghentikan interupsinya.
d.
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:
ü Status
prosesor, berisi register yang dipanggil PSW (program status word).
ü Lokasi
intruksi berikutnya yang akan dieksekusi. Informasi tersebut kemudian disimpan
dalam stack pengontrol sistem.
e.
Kemudian CPU akan menyimpan PC (program counter) eksekusi sebelum interupsi ke stack
pengontrol bersama informasi PSW. Selanjutnya mempersiapkan PC untuk penanganan
interupsi.
f.
Selanjutnya CPU memproses interupsi sempai
selesai.
g.
Apabila pengolahan interupsi selasai, CPU
akan memanggil kembali informasi yang telah disimpan pada stack pengontrol
untuk meneruskan operasi sebelum interupsi. Terdapat bermacam teknik yang
digunakan CPU dalam menangani program interupsi ini, diantaranya:
ü Multiple
Interrupt Lines
ü Software
poll.
ü Daisy
Chain.
ü Arbitrasi
bus.
Ada 2 jenis interupsi:
ü lnterupsi
maskable : Interupsi yang dapat didisable (dimatikan) untuk sementara dengan
sebuah instruksi disable interupsi
khusus.
ü Interupsi
nonmaskable : Interupsi yang tidak dapat didisable dengan instruksi perangkat
lunak.
Dalam sistem komputer terdapat
lebih dari satu piranti yang memerlukan pelayanan interupsi, metode untuk
pelayanannya :
ü Polling/polled
interrupt
Berdasarkan urutan prioritas yang
telah ditentukan sebelum piranti memerlukan interupsi. Misal : piranti A dan B
mempunyai urutan prioritas A lebih Iebih dulu dari B, maka jika A dan B secara
bersamaan memerlukan pelayanan interupsi, maka piranti A akan didahulukan.
ü Vector
Interupt
Peralatan yang berinterupsi
diidentifikasikan secara Iangsung dan dihubungkan routine pelayanan vector
interrupt.
INTR = Sinyal yang dikeluarkan oleh peralatan.
INTA = Sinyal kendali yang digunakan CPU untuk
menyiapkan pelayanan interupt
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.
Gambar1. 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 2. 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 deprogram 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 3. memperlihatkan contoh penggunaan 8255A untuk modul I/O Keyboard dan
display.
Teknik yang dijelaskan sebelumnya yaitu I/O
terprogram dan Interrupt-Driven I/O memiliki kelemahan, yaitu proses yang
terjadi pada modul I/O masih melibatkan CPU secara langsung. Hal ini
berimplikasi pada:
ü Kelajuan
transfer I/O yang tergantung pada kecepatan operasi CPU.
ü Kerja
CPU terganggu karena adanya interupsi secara langsung.
Bertolak
dari kelemahan di atas, apalagi untuk menangani transfer data bervolume besar
dikembangkan teknik yang lebih baik, dikenal dengan Direct Memory Access (DMA).
Prinsip
kerja DMA adalah CPU akan mendelegasikan kerja I/O kepada DMA, CPU hanya akan
terlibat pada awal proses untuk memberikan instruksi lengkap pada DMA dan akhir
proses saja. Dengan demikian CPU dapat menjalankan proses lainnya tanpa banyak
terganggu dengan interupsi. Blok diagram modul DMA terlihat pada gambar 4. berikut :
Gambar5. Konfigurasi modul DMA |
Dalam
melaksanakan transfer data secara mandiri, DMA memerlukan pengambilalihan
kontrol bus dari CPU. Untuk itu DMA akan menggunakan bus bila CPU tidak
menggunakannya atau DMA memaksa CPU untuk menghentikan sementara penggunaan
bus. Teknik terakhir lebih umum digunakan, sering disebut cycle-stealing, karena modul DMA mengambil alih siklus
bus.
Penghentian
sementara penggunaan bus bukanlah bentuk interupsi, melainkan hanyalah
penghentian proses sesaat yang berimplikasi hanya pada kelambatan eksekusi CPU
saja. Terdapat tiga buah konfigurasi modul DMA seperti yang terlihat pada
gambar 5.
0 komentar:
Posting Komentar