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.
Ada beberapa alasan kenapa
piranti – piranti tidak langsung dihubungkan dengan bus sistem komputer, yaitu
:
•
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.
Gambar 6.1 Model generik dari suatu 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.
Gambar 6.2 Skema suatu perangkat peripheral
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.
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.
Gambar 6.3 Blok diagram struktur modul I/O
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.
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.
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.
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 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.
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. Dengan demikian
hanya akan terdapat sebuah modul I/O yang dapat melakukan interupsi.
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.
Gambar 6.4 Pemakaian pengontrol interupsi 8559A pada 8086
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.
Gambar 6.5 Modul I/O 8255A
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.
Gambar 6.6 Interface kayboard dan display dengan Intel 8255A
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.
Mantapppp
BalasHapus