Hari Wibawanto
Arsitektur Komputer
Organisasi dan Arsitektur Komputer
PTIK FT Universitas Negeri Semarang
Review Modul Input/Output
Gambar di samping menunjukkan diagram
blok komponen-komponen yang
membentuk modul I/O. Modul I/O
bertanggungjawab untuk memindahkan
data antara memori utama dan
antarmuka perangkat tertentu.
Antarmuka atau interface itu dirancang
khusus untuk berkomunikasi dengan
perangkat tertentu, misalnya keyboard,
disk, atau printer. Interface akan
mengambil alih detil operasi dan
memastikan perangkat siap menerima
atau mengirim data dari dan ke sistem
prosesor..
• Bentuk dan arti yang tepat dari sinyal yang dipertukarkan antara
pengirim dan penerima (prosesor dan modul I/O, dan sebaliknya)
disebut protokol. Protokol mencakup sinyal perintah, misalnya
"Reset printer"; sinyal status, misalnya “Disk siap”; atau sinyal
penerusan data, misalnya pesan "Ini byte yang Anda minta“. Pada
sebagian besar protokol pertukaran data, penerima harus
mengetahui perintah dan data yang dikirim kepadanya atau
menunjukkan bahwa ia siap menerima data. Jenis pertukaran
protokol ini disebut sebagai “handshake” atau jabat tangan.
• Perangkat eksternal yang menangani blok data yang besar
(misalnya printer, disk drive atau SSD) sering kali dilengkapi
dengan memori buffer. Buffer memungkinkan sistem host
mengirimkan data dalam jumlah besar ke perangkat periferal
secepat mungkin, tanpa harus menunggu hingga perangkat
mekanis yang lambat benar-benar mengirimkan data. Memori
khusus pada disk drive biasanya memiliki jenis cache yang cepat,
sedangkan printer biasanya dilengkapi dengan RAM yang lebih
lambat.
I/O Control Methods
• Because of the great differences in control methods and transmission modes among various kinds of I/O
devices, it is infeasible to try to connect them directly to the system bus. Instead, dedicated I/O modules
serve as interfaces between the CPU and its peripherals.
• These modules perform many functions, including controlling device actions, buffering data, performing error
detection, and communicating with the CPU. In this section, we are most interested in the method by which
these I/O modules communicate with the CPU, thus controlling I/O.
• Computer systems employ any of five general I/O control methods:
programmed I/O,
interrupt-driven I/O,
memory-mapped I/O,
direct memory access, and
channel-attached I/O.
• Although one method isn’t necessarily better than another, the manner in which a computer controls its I/O
greatly influences overall system design and performance. The objective is to know when the I/O method
employed by a particular computer architecture is appropriate to how that system will be used
Programmed I/O
• Cara termudah bagi CPU untuk berkomunikasi dengan perangkat I/O adalah melalui I/O terprogram, terkadang
disebut I/O yang disurvei (atau port I/O). CPU terus-menerus memonitor (polling) register kontrol yang terkait
dengan setiap port I/O. Ketika sebuah byte tiba di port, bit di register kontrol juga di-set. CPU akhirnya
memeriksa port dan memperhatikan bahwa bit kontrol “data siap" telah di-set.
• CPU me-reset bit kontrol, mengambil byte, dan memprosesnya sesuai dengan program yang diberikan untuk
port tertentu itu. Saat pemrosesan selesai, CPU melanjutkan polling register kontrol seperti sebelumnya.
• Manfaat menggunakan pendekatan ini adalah prosesor memiliki kontrol terprogram atas perilaku setiap
perangkat. Dengan memodifikasi beberapa baris kode, prosesor dapat menyesuaikan jumlah dan jenis
perangkat di sistem, serta prioritas dan interval polling. Bagaimanapun, polling register yang konstan merupakan
masalah. CPU berada dalam loop “sibuk menunggu" terus-menerus sampai mulai melayani permintaan I/O
tanpa melakukan pekerjaan apapun sampai ada I/O untuk diproses.
• Masalah lainnya adalah dalam memutuskan seberapa sering (interval) melakukan polling; beberapa perangkat
mungkin perlu ditengok lebih sering daripada yang lain. Karena keterbatasan ini, I/O terprogram paling sesuai
untuk sistem dengan fungsi khusus seperti mesin anjungan tunai mandiri dan sistem tertanam (embedded)
yang mengontrol atau memantau kondisi lingkungan.
Interrupt-Driven I/O (1)