INPUT DAN OUTPUT
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.
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.
Ada
beberapa alasan kenapa piranti – piranti tidak langsung dihubungkan dengan bus sistem
komputer, yaitu :
- Bervariasinya metode operasi piranti peripheral, sehingga tidak praktis apabila system 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.
v 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 :
- Sebagai piranti antarmuka ke CPU dan memori melalui bus sistem.
- Sebagai piranti antarmuka dengan peralatan peripheral lainnya dengan menggunakan link data tertentu.
Sistem Input / Output (I/O)
Sistem I/0 merupakan bagian untuk menangani inputan dan outputan dari DCS. Inputan
dan outputan tersebut bisa analog atau digital. Inputan/outputan
digital seperti sinyal-sinyal ON/OFF atau Start/Stop. Kebanyakan dari
pengukuran proses dan outputan terkontrol merupakan jenis analog.
Pengertian Input
Input adalah semua data dan perintah yang dimasukkan ke dalam memori komputer untuk selanjutnya diproses lebih lanjut oleh prosesor. Sebuah perangkat input adalah komponen piranti keras yang memungkinkan user atau pengguna memasukkan data ke dalam komputer, atau bisa juga disebut sebagai unit luar yang digunakan untuk memasukkan data dari luar ke dalam mikroprosesor.
Input adalah semua data dan perintah yang dimasukkan ke dalam memori komputer untuk selanjutnya diproses lebih lanjut oleh prosesor. Sebuah perangkat input adalah komponen piranti keras yang memungkinkan user atau pengguna memasukkan data ke dalam komputer, atau bisa juga disebut sebagai unit luar yang digunakan untuk memasukkan data dari luar ke dalam mikroprosesor.
Pengertian Output
Output adalah data yang telah diproses menjadi bentuk yang dapat digunakan. Artinya komputer memproses data-data yang diinputkan menjadi sebuah informasi. Yang disebut sebagai perangkat output adalah semua komponen piranti keras yang menyampaikan informasi kepada orang-orang yang menggunakannya.
Output adalah data yang telah diproses menjadi bentuk yang dapat digunakan. Artinya komputer memproses data-data yang diinputkan menjadi sebuah informasi. Yang disebut sebagai perangkat output adalah semua komponen piranti keras yang menyampaikan informasi kepada orang-orang yang menggunakannya.
A. Sistem
Masukan dan Keluaran
Tugas Modul I/O, 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.
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 control
pemindahan data dari peripheral ke CPU melalui sebuah modul I/O dapat meliputi
langkah-langkah berikut ini :
- Permintaan dan pemeriksaan status perangkat dari CPU ke modul I/O.
- Modul I/O memberi jawaban atas permintaan CPU.
- Apabila perangkat eksternal telah siap untuk transfer data, maka CPU akan mengirimkan perintah ke modul I/O.
- Modul I/O akan menerima paket data dengan panjang tertentu dari peripheral.
- Selanjutnya data dikirim ke CPU setelah diadakan sinkronisasi panjang data dan kecepatan transfer oleh modul I/O sehingga paket-paket data dapat diterima CPU dengan baik.
Transfer
data tidak akan lepas dari penggunaan sistem bus, maka interaksi CPU dan modul
I/O akan melibatkan kontrol dan pewaktuan sebuah arbitrasi bus atau lebih.
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.
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.
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).
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.
Terdapat tiga buah teknik dalam operasi
I/O, yaitu: I/O terprogram, interrupt-driven I/O, dan DMA (Direct
Memory Access). Ketiganya memiliki keunggulan maupun kelemahan, yang
penggunaannya disesuaikan sesuai unjuk kerja masing-masing teknik.
1.
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 diinterupsikan 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.
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, 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 :
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:
~ Status prosesor,
berisi register yang dipanggil PSW (program status word).
~ 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 selesai, 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. Dengan demikian
hanya akan terdapat sebuah modul I/O yang dapat melakukan interupsi.
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 pengambil alihan
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.
0 komentar:
Posting Komentar