Sistem komputer
memiliki tiga komponen utama, yaitu : CPU, memori
(primer dan
sekunder), dan
peralatan masukan/keluaran (I/O
devices) seperti printer, monitor, keyboard,
mouse, dan modem.
Beberapa bab sebelumnya telah membahas CPU dan memori, sekarang akan kita
jelaskan tentang peralatan atau modul I/O pada bab ini.
Modul
I/O merupakan peralatan antarmuka (interface) bagi sistem bus atau
switch sentral dan mengontrol satu atau lebih perangkat peripheral. Modul I/O
tidak hanya sekedar
modul penghubung, tetapi
sebuah piranti yang berisi logika dalam melakukan fungsi komunikasi antara peripheral
dan bus komputer.
• Bervariasinya
metode operasi piranti
peripheral, sehingga tidak
praktis apabila sistem
komputer herus
menangani berbagai macam sisem operasi piranti peripheral tersebut.
• Kecepatan transfer
data piranti peripheral umumnya lebih lambat dari pada laju transfer data
pada CPU maupun memori.
•
Format data dan panjang data pada piranti peripheral seringkali berbeda dengan CPU,
sehingga
perlu modul untuk menselaraskannya.
Dari
beberapa alasan diatas, modul I/O memiliki dua buah fungsi utama, yaitu :
1. Sebagai piranti
antarmuka ke CPU dan memori melalui bus sistem.
2.
Sebagai piranti antarmuka
dengan peralatan peripheral lainnya dengan menggunakan
link
data tertentu.
6.1
Sistem Masukan & Keluaran Komputer
Bagaimana modul
I/O dapat menjalankan tugasnya, yaitu menjembatani CPU
dan
memori dengan dunia
luar merupakan hal yang
terpenting untuk kita
ketahui. Inti mempelajari
sistem I/O suatu
komputer adalah mengetahui fungsi dan struktur modul I/O. Perhatikan gambar 6.1 yang menyajikan model generik modul I/O.
6.1.1
Fungsi 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.
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 lebihlambat
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.
6.1.2
Struktur Modul I/O
Terdapat
berbagai macam modul I/O seiring perkembangan komputer itu sendiri,
contoh yang sederhana
dan fleksibel adalah Intel 8255A
yang sering disebut
PPI
(Programmable Peripheral
Interface). Bagaimanapun kompleksitas suatu modul
I/O,
terdapat
kemiripan struktur, 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.
6.2.1
I/O Terprogram
Pada I/O
terprogram, data saling dipertukarkan antara CPU
dan modul I/O. CPU
mengeksekusi program
yang memberikan operasi I/O
kepada CPU secara
langsung, seperti pemindahan
data, pengiriman perintah baca maupun tulis, dan monitoring perangkat.
Kelemahan
teknik ini adalah CPU akan menunggu sampai operasi I/O selesai dilakukan
modul I/O sehingga
akan membuang waktu, apalagi CPU lebih cepat proses operasinya. Dalam
teknik ini, modul I/O
tidak dapat melakukan interupsi kepada CPU terhadap proses – proses yang diinteruksikan
padanya. Seluruh proses merupakan tanggung jawab CPU sampai operasi lengkap dilaksanakan.
Untuk melaksanakan perintah – perintah I/O,
CPU akan mengeluarkan sebuah alamat
bagi modul
I/O dan perangkat peripheralnya
sehingga terspesifikasi secara
khusus dan sebuah perintah
I/O yang akan dilakukan. 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. 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.
6.2.2
Interrupt – Driven I/O
Teknik interrupt
– driven I/O memungkinkan
proses tidak membuang
– buang waktu. Prosesnya adalah CPU
mengeluarkan perintah I/O
pada modul I/O, bersamaan perintah I/O dijalankan modul I/O
maka CPU akan melakukan eksekusi perintah – perintah lainnya. Apabila modul I/O telah
selesai menjalankan instruksi yang diberikan padanya akan melakukan interupsi pada
CPU bahwa tugasnya telah selesai.
Dalam
teknik ini kendali perintah masih menjadi tanggung jawab CPU, baik pengambilan perintah
dari memori maupun pelaksanaan isi perintah tersebut. Terdapat selangkah kemajuan dari teknik
sebelumnya, yaitu CPU melakukan multitasking beberapa perintah
sekaligus sehingga tidak
ada waktu tunggu bagi CPU.
Cara kerja teknik
interupsi di sisi modul I/O adalah modul I/O menerima perintah, misal
read.
Kemudian modul I/O melaksanakan perintah pembacaan dari peripheral
dan meletakkan paket data ke
register data modul I/O, selanjutnya modul mengeluarkan sinyal interupsi ke CPU melalui saluran kontrol. Kemudian modul menunggu datanya diminta
CPU. Saat permintaanterjadi,
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 adalahmenyimpan
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.
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 Interrupt
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. Dengandemikian 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.
6.2.3
Direct Memory Access (DMA)
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 6.7 berikut :
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 6.8.
6.3
Perangkat Eksternal
Mesin
komputer akan memiliki nilai
apabila bisa berinteraksi dengan dunia luar. Lebih
dari itu, komputer
tidak akan berfungsi apabila tidak dapat berinteraksi dengan dunia luar. Ambil contoh saja,
bagaimana kita bisa menginstruksikan CPU untuk melakukan suatu operasi apabila tidak
ada keyboard. Bagaimana kita melihat hasil kerja sistem komputer bila tidak ada
monitor. Keyboard dan monitor
tergolang dalam perangkat eksternal komputer.
Perangkat eksternal
atau lebih umum disebut peripheral tersambung dalam sistem CPU
melalui perangat
pengendalinya, yaitu modul
I/O seperti telah dijelaskan sebelumnya. Lihat
kembali gambar 6.2.
Secara umum perangkat eksternal diklasifikasikan menjadi 3 katagori:
• Human Readable,
yaitu perangkat yang berhubungan dengan manusia sebagai
pengguna komputer. Contohnya: monitor, keyboard, mouse, printer, joystick,
disk
drive.
• Machine readable, yaitu perangkat yang
berhubungan dengan peralatan. Biasanya
berupa
modul sensor dan tranduser untuk monitoring dan kontrol suatu peralatan atau
sistem.
• Communication, yatu perangkat yang
berhubungan dengan komunikasi
jarak jauh.
Misalnya:
NIC dan modem.
Pengklasifikasian
juga bisa berdasarkan arah datanya, yaitu perangkat output, perangkat
input dan kombinasi
output-input. Contoh perangkat
output: monitor, proyektor dan printer.
Perangkat input
misalnya: keyboard, mouse, joystick, scanner, mark reader, bar code
reader.
Tidak ada komentar:
Posting Komentar