Sabtu, 16 Mei 2009

DESAIN APLIKASI ANTARMUKA I/O

Suatu antar muka I/O terdiri dari sirkuit yang diperlukan untuk menghubungkan perangkat I/O ke bus komputer. Pada satu sisi antar muka kita memiliki sinyal bus untuk alamat, data, dan kontrol. Pada sisi yang lain kita memiliki jalur data dengan kontrol yang sesuai untuk mentransfer data antara antar muka dan perangkat I/O. Sisi ini disebut port, dan dapat diklasifikasikan sebagai port paralel dan serial. Port paralel mentransfer data dalam bentuk sejumlah bit, biasanya 8 atau 16, secara simultan ke atau dari perangkat tersebut. Port serial mentransmisikan dan menerima data satu bit tiap satu waktu. Komunikasi dengan bus sama untuk kedua format tersebut; konversi dari format paralel ke serial, dan sebaliknya, terjadi dalam sirkuit antar muka.

Dalam hal port paralel, koneksi antar perangkat dan komputer menggunakan konektor multiple pin dan kabel dengan banyak kawat, biasanya diatur dalam konfigurasi datar. Sirkuit pada kedua ujung relatif sederhana, karena tidak ada kebutuhan untuk mengkonversi antara format serial dan paralel. Pengaturan ini cocok untuk perangkat yang secara fisik dekat dengan komputer. Untuk jarak yang jauh, persoalan timing skew yang disebutkan sebelumnya membatasi kecepatan penggunaan data. Format serial lebih mudah dan cost effective dengan memerlukan kabel yang lebih panjang.

Sebelum membahas contoh sirkuit antar muka tertentu, marilah kita mengingat fungsi antar muka I/O. Suatu antar muka I/O melakukan hal berikut:

1. Menyediakan buffer penyimpanan untuk setidaknya satu word data (atau satu byte, dalam hal perangkat yang byteoriented)

2. Berisi flag status yang dapat diakses oleh prosesor untuk menentukan apakah buffer penuh (untuk input) atau kosong (untuk output)

3. Berisi sirkuit addressdecoding untuk menentukan kapan antar muka tersebut dialamati oleh prosesor

4. Menghasilkan sinyal timing yang sesuai yang diperlukan oleh skema kontrol bus

5. Melakukan konversi format yang mungkin diperlukan untuk mentransfer data antar bus dan perangkat I/O, seperti konversi paralelserial dalam port serial.

Uutuk memulai I/O, CPU me-load yang sesuai dengan device controller, memeriksa isi register untuk menentukan operasi yang akan dilakukan. Ada dua jenis operasi I/O yaitu : synchronous I/O dan asynchronous I/O. synchronous I/O adalah keadaan dimana kendali dikembalikan ke proses pengguna setelah proses I/O selesai dikerjakan. Sedangkan asynchronous I/O adalah keadaan dimana kendali dikembalikan ke proses pengguna tanpa menunggu proses I/O selesai dikerjakan sehingga proses I/O dan proses pengguna dapat dijalankan secara bersamaan.

DMA (Direct Memory Access) merupakan suatu metode penanganan I/O dimana device controller langsung berhubungan dengan memori tanpa campur tangan CPU. Setelah men-set buffer, pointers, dan counters untuk perangkat I/O, device controller mentransfer blok data langsung ke penyimpanan tanpa campur tangan CPU. DMA digunakan untuk perangkat I/O dengan kecepatan tinggi dan hanya memiliki satu interupsi tiap blok, berbeda dengan perangkat yang mempunyai kecepatan rendah dimana interupsi terjadi untuk tiap byte (word).

Semua interuksi I/O adalah intruksi privileged, yaitu interuksi yang hanya dapat dilakukan melalui OS (Operating System) dan OS dapat mencegah “request” ke I/O dengan melihat mode saat ini. OS menjaga supaya program user tidak dapat menjadi mode “monitor mode” untuk mencegar user menangani interrupt dengan mengubah alamat interrupt vektor dan mengubah status serta data pada “device table”.

Sekarang kita akan membahas aspek utama dalam desain antar muka dengan contoh praktis. Pertama-tama, kita mendeskripsikan sirkuit untuk port input 8bit dan port output 8bit. Kemudian kita menggabungkan dua sirkuit tersebut untuk menunjukkan bagaimana desain antar muka general purpose 8bit parallel port. Kita mengasumsikan bahwa sirkuit antar muka dihubungkan dengan prosesor 32bit yang menggunakan memory mapped I/O dan protokol bus asynchronous.

Gambar diatas menunjukkan komponen hardware yang diperlukan untuk menghubungkan keyboard ke prosesor. Keyboard biasa terdiri dari switch mekanik yang biasanya terbuka. Pada saat suatu tombol ditekan, switch tersebut menutup dan membentuk jalur untuk sinyal listrik. Sinyal ini dideteksi oleh sirkuit encoder yang menghasilkan kode ASCII untuk karakter yang sesuai. Suatu kesulitan dengan penggunaan pushbutton switch semacam itu adalah hubungan kontak pada saat suatu tombol ditekan. Sekalipun bouncing tersebut hanya terjadi selama satu atau dua milidetik, namun cukup lama bagi pengamatan komputer untuk menggangap penekanan tunggal suatu tombol sebagai beberapa event listrik yang berbeda; penekanan tunggal ini dapat diinterpretasikan secara salah seakan merupakan tombol yang ditekan dan dilepas secara cepat berulangkali. Efek bouncing tersebut harus dihilangkan. Kita dapat melakukannya dengan dua cara: Menyertakan sirkuit debouncing sederhana, atau menggunakan pendekatan software. Pada saat debouncing diterapkan pada software, routine I/O yang membaca karakter dari keyboard menunggu cukup lama untuk memastikan bahwa bouncing telah dikurangi. Gambar diatas mengilustrasikan pendekatan hardware; sirkuit debouncing disertakan sebagai bagian dari blok encoder.

Output encoder berisi bit yang menyatakan karakter yang terencode dan satu sinyal kontrol yang disebut Valid, yang mengindikasikan bahwa suatu tombol sedang ditekan. Informasi ini dikirim ke sirkuit antar muka, yang berisi register data, DATAIN, dan flag status, SIN. Pada saat suatu tombol ditekan, sinyal Valid berubah dari 0 ke 1, yang menyebabakan kode ASCII diload

kedalam DATAIN dan SIN diset ke 1. Flag status SIN dikosongkan ke 0 pada saat prosesor membaca isi register DATAIN. Sirkuit antar muka dihubungkan ke bus asynchronous dimana transfer dikontrol menggunakan sinyal handshake Masterready dan Slaveready. Jalur kontrol ketiga, R/ W membedakan transfer baca dan tulis.

Daftar Pustaka

Belajarkomputersekarang.wordpress.com

www.unhas.ac.id

www.geocities.com

Bertaburmimpi.blogspot.com

Tanggal 13 September 2008 Jam 21:49 WIB

Tidak ada komentar:

Posting Komentar