Pages

INPUT / OUTPUT

Sabtu, 09 Januari 2010
INPUT / OUTPUT


Di samping CPU dan sejumlah modul memori, elemen penting ketiga sistem komputer adalah sejumlah modul I/O. Modul tersebut merupakan interface bagi bus sistem atau switch sentral dan mengontrol satu atau lebih perangkat peripheral. Modul I/O bukan hanya merupakan konektor mekanis sederhana yang menghubungkan suatu perangkat dengan bus sistem. Akan tetapi modul I/O berisi sesuatu yang “cerdas”, yaitu berisi logik untuk melakukan fungsi komunikasi antara peripheral dengan bus.
Beberapa alasan tidak dihubungkannya peripheral dengan bus sistem secara langsung adalah :
• Terdapat beraneka ragam peripheral yang memiliki bermacam-macam metode operasi. Maka akan tidak sangat praktis untuk menggabungkan logik tertentu ke dalam CPU dengan maksud untuk mengontrol sejumlah perangkat
• Laju transfer data peripheral sering kali jauh lebih lambat dibandingkan dengan laju transfer data memori atau CPU. Jadi, tidaklah praktis menggunakan bus sistem berkecepatan tinggi untuk melakukan komunikasi langsung dengan peripheral
• Peripheral sering kali menggunakan format data dan panjang word yang berlainan dibandingkan dengan komputer yang disambungkan dengannya

Jadi, diperluakan modul I/O. Modul ini memiliki dua buah fungsi utama :
• Sebagai interface ke CPU dan memori via bus sistem atau switch sentral
• Sebagai interface ke sebuah perangkat peripheral atau lebih dengan menggunakan link data tertentu


A. PERANGKAT EKSTERNAL

Sistem komputer tidak akan berguna tanpa adanya peralatan input dan output. Operasi-operasi I/O diperoleh melalui sejumlah perangkat eksternal yang menyediakan alat untuk pertukaran data di antara lingkungan luar dengan komputer. Perangkat eksternal dihubungkan dengan komputer oleh suatu link dengan modul I/O ( Gambar 6.1 ).


Link digunakan untuk pertukaran kontrol, status, dan data antara modul I/O sering kali disebut sebagai perangkat peripheral, atau untuk mudahnya disebut peripheral.
Secara luas perangkat eksternal dibagi menjadi tiga tingkatan :
 Human-Readable : Digunakan untuk berkomunikasi dengan pengguna komputer
 Machine-Readable : Digunakan untuk berkomunikasi dengan peralatan / machine
 Communication : Digunakan untuk berkomunikasi dengan perangkat jarak jauh

Contoh perngkat human-readable adalah video display terminal (VDT) dan printer. Contoh perangkat machine-readable adalah sistem disk dan pita magnetik, sensor , dan aktuatur seperti yang dipakai pada aplikasi robotik.
Perangkat-perangkat komunikasi memungkinkan komputer untuk saling bertukar data dengan perangkat jarak jauh, yang mungkin berupa perangkat human-readable, serperti terminal, perangkat mesin readable, atau bahkan komputer lainnya.
Secara umum, perangkat ekseternal dijelaskan pada Gb. 6.2.




Interface ke modul I/O adalah dalam bentuk signal-signal kontrol, status, dan data. Data berbentuk sekumpulan bit untuk dikirimkan ke modul I/O atau diterima dari modukl I/O. Control Signal menentukan fungsi-fungsi yang akan dilakukan perangkat, seperti mengirimkan data ke modul I/O ( INPUT atau READ ), menerima data dari modul I/O ( OUTPUT / WRITE ), report status, atau membentuk fungsi kontrol tertentu ke perangkat ( misalnya, posisi head disk ). Signal status menandai status perangkat. Misalnya READY / NOT READY untuk menunjukkan kesiapan perangkat untuk mengirimkan data.
Control logic berkaitan dengan perangkat yang mengontrol operasi perangkat dalam memberikan respons yang berasal dari modul I/O. Transducer mengubah data dari energi listrik menjadi energi lain selama berlangsungnya output dan dari bentuk energi tertentu menjadi energi listrik selamat berlangsungnya input. Umumnya, suatu buffer dikaitkan dengan transducer untuk menampung sementara data yang ditransfer di antara modul I/O dan dunia luar. Ukuran bufer yang umum adalah 8 hingga 16 bit.

A. 1. KEYBOARD / MONITOR

Alat interaksi komputer / pengguna yang umum digunakan adalah keyboard / monitor. Pengguna memberikan input melalui keyboard. Kemudian input akan dikirimkan ke komputer dan dapat juga ditampilkan pada monitor. Selain itu, monitor dapat menampilkan data yang diberikan oleh komputer.
Unit dasar pertukaran datanya adalah karakter. Setiap karakter berkaitan dengan suatu kode, yang umumnya mempunyai panjang 7 atau 8 bit. Kode yang paling umum digunakan adalah kode tujuh bit yang dikenal sebagai ASCII ( American Standard Code For Information Interchange ) di Amerika Serikat dan CCITT alphabet number 5 secara internasional. Setiap karakter dalam kode ini diwakili oleh kode biner tujuh bit yang unik ; sehingga, akan terdapat 128 karakter yang berbeda.1 Table 6.1 memberikan nilai daftar kode tersebut. Pada tabel tersebut, bit-bit karakter diberi label dari b7, yang merupakan bit yangapaling berarti, hingga b1, yaitu bit yang paling kurang berarti. Karakter-karakter tersebut terdiri dari dua macam :
Karakter yang dapat dicetak dan karakter kontrol. Karakter yang dapat dicetak merupakan karakter-karakter aplhabetis, numeric, dan karakter khusus yang dapat dicetak pada kertas atau ditampilkan di layar. Misalnya, representasi bit karakter “K” adalah 1001011. Beberapa karakter kontrol berkaitan dengan pengontrolan, pencetakan, atau penampilan karakter-karakter ; sebagai contoh misalnya carried return. Sedangkan karakter-karakter kontrol lainnya berkaitan dengan prosedur komunikasi.
Bagi input keyboard, ketika sebuah tombol ditekan oleh pengguna, maka hal ini akan menghasilkan signal listrik yang di interpretasikan oleh transducer pada keyboard dan diterjemahkan ke dalam pola bit kode ASCII tertentu. Pola bit ini kemudian di transmisikan ke modul I / O pada komputer. Di dalam komputer, teks akan disimpan dalam kode ASCII yang sama. Pada output, karakter-karakter kode ASCII akan ditransmisikan dari modul I / O ke perangkat eksternal. Transducer pada perangkat akan menginterpretasikan kode ini dan mengirimkan signal elektronik yang diperlukan ke perangkat output untuk menampilkan karakter tersebut atau untuk membentuk fungsi kontrol yang diinginkan.


DISK DRIVE

Sebuah disk drive terdiri dari perangkat elektronik untuk pertukaran signal-signal data, kontrol, dan status dengan modul I / O dan perangkat elektronik untuk mengontrol mekanism
pembacaan / penulisan disk. Pada fixed head disk, transducer mampu melakukan konversi dari pola-pola magnetik pada permukaan disk yang bergerak menjadi bit-bit pada buffer perangkat
( Gambar 6.2 ). Disk yang headnya bergerak juga harus dapat memindahkan lengan disk secara radial menjauhi dan mendekati permukaan disk.


MODUL – MODUL I / O

Fungsi Modul

Modul I / O merupakan suatu entiti di dalam komputer yang bertanggung jawab atas pengontrol sebuah perangkat eksternal atau lebih dan untuk pertukaran data antara perangkat-perangkat tersebut dengan memori utama dan atau register-register CPU. Jadi, modul I / O harus memiliki interface internal dengan komputer ( CPU dan main memori ) dan interface eksternal dengan komputer ( perangkat eksternal ).
Fungsi atau persyaratan utama bagi modul I / O dapat dibagi menjadi beberapa kategori seperti di bawah ini :

 Kontrol dan timing
 Komunikasi CPU
 Komunikasi perangkat
 Data buffering
 Deteksi Error

Dalam periode waktu tertentu, CPU dapat berkomunikasi dengan satu buah atau
lebihperangkat dengan pola yang tidak menentu, tergantung pada kebutuhan program I / O. Sumber daya internal, seperti memori utama, dan sistem bus, harus dipakai bersama-sama oleh sejumlah aktifitas termasuk di antaranya I / O data. Dengan demikian, untuk mengkoordinasikan arus lalu lintas antara sumber daya internal dan perangkat eksternal, fungsi I / O meliputi persyaratan kontrol dan timing. Misalnya, kontrol pemindahan data dari sebuah perangkat eksternal ke CPU dapat meliputi langkah-langkah berikut ini :
1. CPU meminta modul I / O untuk memeriksa status perangkat yang terhubung.
2. Modul I / O memberikan jawabannya tentang status perangkat
3. Bila perangkat sedang beroperasi dan berada dalam keadaan siap untuk mengirimkan, maka CPU meminta pemindahan data, dengan menggunakan perintah tertentu ke modul I / O.
4. Modul I / O akan memperoleh unit data ( misalnya, 8 atau 16 bit ) dari perangkat eksternal.
5. Data akan dipindahkan dari modul I / O ke CPU.

Apabila sistem menggunakan bus, maka setiap interaksi antara CPU dengan modul I / O akan melibatkan sebuah atau lebih arbitrasi bus. Skenario yang telah disederhanakan seperti tersebut di atas menjelaskan juga, bahwa modul I / O harus memiliki kemampuan untuk melaksanakan komunikasi dengan CPU dan perangkat eksternal. Komunikasi CPU meliputi :
 Command Decoding : Modul I / O menerima perintah-perintah dari CPU. Umumnya perintah-perintah ini dikirimkan sebagai sinyal bagi bus kontrol. Misalnya, sebuah moduil I / O untuk disk dapat menerima perintah-perintah berikut : read sector, write sector, seek nomor track ,dan scan record id. Kedua perintah terakhir meliputi parameter yang dikirimkan pada bus data.
 Data : data di pertukarkan antara CPU dengan modul I / O melalui bus data
 Status reporting : karena peripheral sangat lambat, maka status modul I / O perlu diketahui. Misalnya, bila sebuah modul I / O diminta untuk mengirimkan data ke CPU ( read ), maka mungkin modul tersebut berada dalam keadaan belum siap karena sedang melaksanakan perintah I / O lain. Kenyataan seperti ini perlu dilaporkan dengan menggunakan signal status. Signal status yang umum adalah busy dan ready terdapat pula signal-signal status untuk melaporkan bermacam-macam kondiris error.
 Address recognition : seperti halnya word memori memiliki alamat, demikian pula dengan perangkat I / O. Dengan demikian, modul I / O harus mengetahui address unik seluruh peripheral yang dikontrolnya.
Di sisi lain, modul I / O harus mampu membentuk komunikasi perangkat ( device communication ). Komunikasi ini meliputi perintah, informasi status, dan data ( Gambar 6.2. )
Tugas utama modul I / O adalah data buffering. Kebutuhan akan fungsi ini dapat dilihat pada table 6.2. Sementara kelajuan transfer data ke main memori dan dari main memori atau CPU cukup tinggi, kelajuan untuk perangkat peripheral lambat. Data yang berasal dari main memori dikirimkan ke modul I / O dengan burst sangat cepat. Data di bufferkan dan kemudian dikirimkan ke perangkat peripheral dengan kelajuan datanya. Pada Arah kebalikannya, pembufferan data tidak secepat seperti sebelumnya. Dengan demikian, modul I / O harus mampu beroperasi dengan kecepatan perangkat dan memori.
Terakhir, modul I / O seringkali harus bertanggung jawab atas error detection dan pelaporan tentang terjadinya error terhadap CPU. Sebuah kelas error meliputi kesalah mekanis dan elektris yang dilaporkan oleh perangkat ( misalnya, kertas menggulung, track disk yang buruk ). Kelas error lainnya terdiri dari perubahan pola bit yang tiba-tiba pada saat dikirimkan dari perangkat ke modul I / O. Beberapa kode error detecting sering digunakan untuk mendeteksi error transmisi. Contohnya yang umum adalah penggunaan parity bit karakter data. Misalnya, kode karakter ASCII memakai tujuh bit dari suatu byte. Bit ke delapan disetel sehingga jumlah total “bilangan 1”nya dalam byte selalu genap ( even parity ) atau ganjil ( odd parity ). Ketika bit diterima, maka modul I / O memeriksa parity untuk menentukan apakah suatu error telah terjadi atau tidak.

Struktus Modul I / O

Modul I / O sangat berbeda dalam hal kompleksitas dan jumlah perangkat eksternal yang dikontrolnya. Disini kita hanya akan membahas masalah umumnya saja. Gambar 6.3 adalah diagram blok secara umum sebuah modul I / O. Modul dihubungkan dengan bagian-bagian komputer lainnya melalui saluran signal ( misalnya, saluran bus sistem ). Data yang dipindahkan ke modul dan dari modul dibufferkan dalam sebuah register data atau lebih. Mungkin juga terdapat sebuah register status atau lebih yang memberikan informasi status saat itu. Register status dapat juga berfungsi sebagai register kontrol untuk menerima informasi kontrol secara detail dari CPU. Logic pada modul berinteraksi dengan CPU melalui sejumlah saluran kontrol. Saluran-saluran ini digunakan oleh CPU untuk memberika perintah ke modul I / O. Beberapa saluran kontrol dapat digunakan oleh modul I / O ( misalnya untuk signal arbitrasi atau signal status ). Modul juga dapat mengetahui dan menghasilkan alamat-alamat yang berkaitan dengan perangkat yang dikontrolnya. Setiap modul I / O memiliki alamat yang unik, atau apabila modul I / O mengontrol lebih dari sebuah perangkat eksternal, maka terdapar sekumpulan alamat yang unik. Terakhir, modul I / O terdiri dari logic yang bersifat khusus bagi interface dengan setiap perangkat yang di kontrolnya.
Modul I / O berfungsi untuk memungkinkan CPU dapat mengetahui perangkat yang jumlahnya banyak dengan cara yang sederhana. Terdapat spektrum kemampuan yang dapat terjadi. Modul I / O dapat menyembunyikan detail pewaktuan, format, dan elektro mekanis perangkat eksternal sehingga CPU dapat memberikan perintah pembacaan dan penulisan dengan mudah, dan juga memungkinkan perintah-perintah membuka dan menutup file. Pada bentuk yang paling sederhananya, modul I / O masih dapat memberikan tugas pengontrolan perangkat dalam jumlah besar ( misalnya, menggulung pita ) yang dapat diketahui oleh CPU.
Modul I / O yang seringkali mendapatkan beban pengolahan yang detail, yang memberikan interface tingkat tingi kepada CPU, dikenal sebagai I / O channel atau I / O processr. Modul I / O yang agak primitif dan membutuhkan kontrol detail seringkali disebut sebagai I / O kontroler dan device kontroler. Secara umum I / O kontroler, dapat dilihat pada mikro komputer,
sedangkan I / O channel digunakan pada mainframem, sedangkan mini komputer menggunakan campuran keduanya.
Sejauh ini, kita akan menggunakan istilah generik modul I / O bila tidak terdapat hasil yang rancu dan akan menggunakan istilah yang lebih spesifik bila memang diperlukan.

I / O TERPROGRAM

Terdapat tiga buat 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 pengindra, 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 interupt driven I / O, CPU mengeluarkan perintah I / O, dilanjutkan dengan mengeksekusi intstruksi-instruksi lainnya, dan diinterupsi oleh modul I / O apabila instruksi-instruksi tersebut telah selesai dilaksanakan. Dengan menggunakan I / O terprogram dan I / O interupt, maka CPU bertanggung jawab atas pengeluaran data dan 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 memory saling bertukar data secara langsung, tanpa melibatkan CPU.
Tabel 6.3 menjelaskan hubungan teknik di atas. Dalam bagian ini kita akan membahas I/O Terprogram.





PERINTAH-PERINTAH I/O

Untuk mengeksekusi perintah yang berkaitan dengan I/O. CPU menerbitkan sebuah alamat, yang memspesifikasi mosul I/O dan perangkat eksternal tertentu dan sebuah perintah I/O. Terdapat empat jenis perintah I/O yang akan di terima modul I/O ketika modul tersebut dialamati oleh CPU. Perintah-perintah tersebut dapat diklasifikasikan sebagai control,test, read dan write.
Perintah control digunakan untuk mengaktifasi pheripheral dan memberitahunya tugas yang harus dilaksanakan.
Perintah test digunakan untuk menguji bermacam-macam kondisi status yang berkaitan dengan moduk I/O dan perangkat peripheralnya.
Perintah read mengakibatkan modul I/O akan mendapat sebuah butir data dari peripheral dan menaruhnya ke dalam buffer internal.

INSTRUKSI-INSTRUKSI I/O

Dengan menggunakan I/O terprogram, terdapat hubungan yang erat antara instruksi I/O yang di ambil CPU dari memori dengan perintah I/O yang di keluarkan CPU ke mdul I/O untuk mengeksekusi instruksi. Dengan kata lain instruksi dengan mudah di petakan kedalam perintah-perintah I/O.
Umumnya, akan banyak terdapat perangkat I/O yang terhubung melalui modul I/O ke sistem. Setiap perangkat diberi pengenal atau alamat yang unik. Pada saat CPU mengelurakan perintah I/O, perintah akan berisi alamat perangkat yang diinginkan.

INTERRUPT-DRIVEN I/O

Masalah yang di jumpai pada I/O terprogram adalah bahwa CPU harus menunggu modul I/O yang diinginkan agar siap baik untuk menerima maupun mengirimkan data dalam waktu yang relatif lam. Pada saat menunggu,CPU harus berulang-ulang menanyakan status modul I/O. Akibatnya tingkat kerja keseluruhan sistem mengalami penurunan sistem.
Alternatifnya adalah CPU mengeluarkan perintah I/O ke modul dan kemudian megerjakan pekerjaan yang lain. Kemudian modil I/O akan menginterupsi CPU untuk meminta layanan ketika modul telah siap untuk salaing bertukar data dengan CPU.

PENGOLAHAN INTERUPT

Gambar 6.6

Pada perangkat I/O telah menyelesaikan sebuah operasi I/O, maka urutan kejadian hardware di bawah akan terjadi :

1. Perangkat angkat mngeluarkan signal interrupt ke CPU.
2. Prosesor menyelesaikan eksekui intruksi yang sedang dilakukan sebelum memberikan respon terhadap interrupt.
3. Prosesor memerikasa interrupt, menetapkan bahwa memang ada, dan mengirim signal acknowledgment ke parangkat yang mengeluarkan interrupt, acknowledgment memungkinakan meghapus dignal interrupt.
4. Sekarang prosesor perlu menyiapkan pengontrolan transfer routine interrupt, prosesor perlu menyimpan informasi yang diperlukan untuk melanjutkan program yang dikerjakan saat itu pada posisi interrupt. Informasi minimum yang diperlukan adalah a.status prosesor, yang berisi register yang dipanggil program status word (PSW), dan b. lokasi instruksi berikutnya yang akan dieksekusi.
5. Setelah prosesor dapat memuat menghitung program dengan lokasi entri dan program penanganan interrupt yang akan emberikan respon ke interrupt ini. Tergantung pada arsitektur computer dan rancangan sistem operasinya. Kemungkinan ada sebuah program , satu program untuk setiap interrupt, atau setiap untuk setiap perangkat dan setiap jenis interrupt.
6. Kemudian interrupt handle akan mendapat proses interrupt. Proses ini akan melibatkan pengujian informasi status yang berkaitan dengan operasi I/O atau kejadian-kejadian yang lain yang menyebabkan terjadinya interrupt.
7. Apabila pengolahan interuot telah selesai, nilai-nilai register yang tersimpan akan diambil ke stack dan selanjutnya disimpan ke register.
8. Kegiatan terakhir adalah menyimpan kembali PSW dan nilai penghitung program dari stack. Akibatnya, interupsi berikutnya yang akan dieksekusi akan berasal dari program sebelumnya yang telah diinterupsi.

Tidak ada komentar:

Posting Komentar