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.
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.
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 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.
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.
2 Teknik Masukan/Keluaran
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.
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.
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.
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
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.
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.
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.
Post a Comment