18.11.10

Arkom (I/O Terprogram)


I/O Terprogram

Terdapat tiga buah teknik yang dapat digunakan dalam operasi I/O. Pada I/O terprogram, data saling dipertukarkan antara CPU dengan modul I/O. CPU mengeksekusi program yang memberikan operasi I/O kepada CPU secara langsung, termasuk status perangkat pengindera, pengiriman perintah pembacaan atau penulisan dan pemindahan data. Ketika CPU mengeluarkan perintah ke modul I/O, maka CPU harus menunggu sampai operasi I/O selesai. Apabila CPU lebih cepat dibandingkan modul I/O maka hal ini akan membuang-buang waktu CPU. Dengan menggunakan interrupt driven I/O, CPU mengeluarkan perintah CPU dilanjutkan dengan mengeksekusi instruksi-instruksi lainnya dan diinterupsi oleh modul I/O apabila instruksi-instruksi tersebut telah selesai dilaksanakan. Dengan menggunakan I/O terprogram dan I/O interrupt maka CPU bertanggungjawab atas pengeluaran data dari memori utama untuk keperluan output dan penyimpanan data di dalam memori utama untuk keperluan input. Alternatifnya dikenal sebagai direct memory access (DMA). Dalam mode ini, modul I/O dan main memori saling bertukar data secara langsung tanpa melibatkan CPU.

Perintah-perintah I/O

Untuk mengeksekusi instruksi yang berkaitan dengan I/O, CPU menerbitkan sebuah alamat yang menspesifikasikan modul I/O dan perangkat eksternal tertentu, dan sebuah perintah I/O. terdapat empat jenis perintah I/O yang akan diterima modul I/O ketika modul tersebut dialamati oleh CPU. Perintah-perintah tersebut dapat diklasifikasikan sebagai control, test, read dan write.
  1. Perintah control digunakan untuk mengaktivasi peripheral dan memberitahunya tentang tugas yang harus dilaksanakannya.
  2. Perintah test digunakan untuk menguji bermacam-macam kondisi status yang berkaitan dengan modul I/O dan perangkat peripheralnya.CPU perlu mengetahui bahwa peripheral yang dimaksud berada dalam keadaan aktif dan dapat digunakan. CPU juga perlu mengetahui apakah operasi I/O yang terkini telah selesai dan terjadinya error.
  3. Perintah read mengakibatkan modul I/O akan mendapatkan sebuah butir data dari peripheral dan menaruhnya didalam buffer internal (register). Kemudian CPU akan memperoleh butir data dengan memintanya yang ditaruh modul I/O pada bus data.
  4. Perintah write menyebabkan modul I/O mengambil data (byte atau word) dari bus data dan kemudian mentransmisikan butir data itu ke peripheral.

Instruksi-instruksi I/O

Dengan menggunakan I/O terprogram, terdapat hubungan yang erat antara instruksi I/O yang diambil CPU dari memori dengan perintah I/O yang dikeluarkan CPU ke modul I/O untuk mengeksekusi instruksi. Bentuk instruksi bergantung pada cara pengalamatan perangkat eksternal.
Umumnya, akan banyak terdapat perangkat I/O yang terhubung melalui modul I/O ke system. Setiap perangkat diberi pengenal (identifier) atau alamat yang unik. Pada saat CPU mengeluarkan perintah I/O, perintah akan berisi alamat perangkat yang diinginkan. Jadi setiap modul I/O harus menginterpretasikan saluran alamat untuk menentukan apakah perintah itu ditujukan untuk dirinya atau bukan.
Ketika CPU, memori utama dan I/O menggunakan bus umum secara bersama-sama maka akan dimungkinkan penggunaan dua mode pengalamatan :
  1. memori yang dipetakan (memori-mapped I/O)
  2. memori yang terisolasi (isolated memori)
Dengan menggunakan memori-mapped I/O, terdapat ruang alamat tunggal  untuk lokasi memori dan perangkat I/O. Dengan menggunakan memori-mapped I/O, diperlukan saluran baca tunggal dan saluran tulis tunggal pada bus. Alternatifnya, bus dapat dilengkapi dengan saluran pembacaan dan penulisan memori ditambah saluran perintah output. Karena ruang alamat bagi I/O diisolasi dari ruang alamat bagi memori maka teknik ini dikenal sebagai I/O terisolasi.
Bagi sebagian besar jenis CPU, terdapat sejumlah perintah yang berbeda untuk keperluan pembuatan referensi memori. Bila I/O terisolasi digunakan maka hanya akan terdapat sedikit instruksi I/O. Jadi, keuntungan memori-mapped I/O adalah bahwa suatu koleksi besar instruksi ini dapat digunakan, yang mana memungkinkan lebih efisiennya pemrograman. Kerugiannya adalah ruang memori alamat yang berharga akan habis terpakai. Baik memori-mapped I/O maupun I/O terisolasi digunakan secara luas.

Tidak ada komentar: