WELCOME to IQBAL's BLOG
selamat datang di blog punya iqbal...!!!

Powered By Blogger

Jumat, 26 November 2010

Input / Output 

Modul – modul I/O

Fungsi I/O meliputi persyaratan control timing, untuk mengkoordinasikan arus lalu lintas antara sumber daya internal dan perangkat eksternal. Skenario yang sudah disederhanakan terlebih dahulu mengilustrasikan bahwa modul I/O juga berkomunikasi dengan prosesor dan perangkat eksternal. Komunikasi tersebut meliputi :

·         Command Decoding. Modul I/O menerima perintah-perintah dari prosesor, umumnya perintah ini dikirim sebagai sinyal bagi bus control.

·         Data. Data dipertukarkan antara prosesor dengan modul I/O melalui bus data.

·         Status Reporting. Karena peripheral sangat lambat, maka penting untuk mengetahui status modul I/O. Sebagai contoh, jika sebuah modul I/O diminta untuk mengirimkan data ke prosesor (baca), maka mungkin modul tersebut belum siap. Karena sedang melakukan perintah I/O sebelumnya.

·         Address Recognition. Modul I/O harus mempunyai alamat unik untuk setiap peripheral yang dokontrolnya.

Tugas utama modul I/O adalah buffering. Kelajuan transfer data ke memori utama dan dari memori utama atau prosesor cukup tinggi, kelajuan peripheral lambat dan meliputi cakupan yang luas. Data yang berasal dari memori utama dikirim ke modul I/O dengan burst yang sangat cepat. Data di-buffer-kan dalam modul I/O dan kemudian dikirimkan ke perangakat peripheral dengan kelajuan datanya. Pada arah sebaliknya, pem-buffer-an data tidak secepat sebelumnya.

 

I/O Terprogram

Ketika prosesor, memori utama, dan I/O menggunakan bus umum, maka akan dimungkinkan penggunaan dua mode pengalamatan. Yaitu memori yang dipetakan dan memori yang terisolasi.

Dengan menggunakan memori pemetaan I/O, terdapat ruang alamat tunggal untuk penempatan memori dan perangkat I/O. Prosesor memperlakukan register status dan register data modul I/O sebagia lokasi memori dan menggunakan instruksi mesin yang sama untuk mengakses baik memori maupun perangkat I/O. Karena itu, sebagai contoh, dengan 10 jalur alamat, akan diperoleh kombinasi 2 = 1024 lokasi memori dan alamat I/O yang dapat didukung, dengan memakai sembarang komunikasi.

Dengan menggunakan memori yang terpetakan I/O, diperlukan jalur baca tunggal dan jalur tulis tunggal pada bus. Alternatifnya, bus dapat dilengkapi dengan jalur pembacaandan penulisan memori ditambah jalur perintah input dan output. Sekarang, jalur perintah akan menspesifikasikan apakah alamat berkaitan dengan lokasi memori atau perangkat I/O. cakupan alamat dalam jumlah besar dapat digunakan keduanya. Selain itu, dengan menggunakan 10 jalur alamat, sekarang system dapat mendukung baik 1024 lokasi maupun 1024 alamat I/O. karena ruang alamat I/O terisolasidari ruang alamat untuk memori, maka teknik ini dikenal dengan I/O terisolasi.

Namun dalam I/O terprogram mempunyai kekurangan. Masalah yang dijumpai pada I/O terprogram adalah bahwa prosesor harus menunggu modul I/O yang diinginkan agar siap dipakai baik untuk menerima maupun untuk mengirimkan data dalam waktu yang relative lama. Prosesor pada saat menunggu, harus berulang kali menanyakan status modul I/O. sebagai hasilnya, tingkat kinerja system secara keseluruhan mengalami penurunan. Masalah ini sedikit di atasi oleh modul I/O interrupt-driven.

 

I/O interrupt-driven

Sebagai gambaran cara kerja I/O interrupt-driven dari sudut pandang modul I/O tersebut. Pada input, modul I/O menerima perintah BACA dari prosesor. Modul I/O kemudian memproses pembacaan data dari peripheral tertentu. Sekali data telah berada pada register data modul, modul mengeluarkan sinyal interupsi ke prosesor melalui jalur control. Modul kemudian menunggu sampai datanya diminta oleh prosesor. Ketika permintaan dibuat, modul menempatkan datanya pada bus data dan modula akan siap melakukan oprasi I/O yang lain.

Dari sudut pandang prosesor, tindakan input adalah sebagai berikut. Prosesor mengeluarkan perintah BACA. Kemudian prosesor berhenti melakukan perintah dan melanjutkan pekerjaan lainnya. Pada akhir proses siklus instruksi, prosesor memeriksa hasil interupsi. Ketika interupsi dari modul I/O terjadi, prosesor menyimpan konteks program yang sedang berlangsung. Dan memproses interrupt. Dalam hal ini, prosesor membaca data word dari I/O dan menyimpannya di dalam memori. Kemudian prosesor menyimpan konteks program yang sedang dijalankannya dan melanjutkan eksekusi.

Ketika perangkat I/O telah menyelesaikan sebuah operasi I/O, maka urutan peristiwa perangkat keras ini akan terjadi :

1.       Perangkat akan mengeluarkan sinyal interupsi ke prosesor.

2.       Prosesor menyelesaikan eksekusi instruksi yang sedang dilakukan sebelum memberikan responnya terhadap interupsi.

3.       Prosesor memeriksa interupsi, menentukan bahwa memang ada, dan mengirimkan sinyal acknowledgement ke perangkat yang mengeluarkan interupsi.

4.       Lalu prosesor perlu mempersiapkan pengontrolan transfer ke routine interupsi.

5.       Setelah itu sekarang prosesor dapat memuat penghitung program dengan lokasi masukan dari program penanganan interupsi  yang akan memberikan respons terhadap interupsi ini.

6.       Hingga disini, penghitung program dan PSW yang berkaitan dengan program yang diinterupsi telah disimpan pada stack system.

7.       Kemudian setalah itu penanganan interupsi dapat menjalankan proses interupsi.

8.       Apabila pengolahan interupsi telah selesai, nilai-nilai register yang tersimpan diambil kembali dari stack dan selanjutnya disimpan ke register.

9.       Terakhir adalah menyimpan kembali PSW dan nilai-nilai program counter dari stack.

Namun meskipun I/O interrupt-driven lebih efisien disbanding I/O terprogram yang sederhana, I/O interrupt-driven masih memerlukan intervensi secara aktif dari prosesor untuk melakukan transfer data antara memori dengan modul I/O, dan transfer data harus melalui lintasan melewati prosesor.

 

Dircect Memory Acces (DMA)

DMA meliputi modul tambahan pada bus system. Modul DMA mampu menirukan prosesor dan bahkan mengambil alih control system prosesor. Modul DMA diperlukan untuk mengerjakan ini, yaitu transfer data dari dank e memori pada bus system. Untuk tujuan ini, modul DMA harus menggunakan bus hanya ketika prosesor tidak memerlukannya, atau modul DMA harus memaksa prosesor untuk menghentikan oprasi untuk sementara.

Pada saat prosesor ingin membaca atau menulis blok data, prosesor mengeluarkan perintah ke modul DMA, dengan mengirimkan ke modul DMA informasi berikut ini :

·         Pembacaan atau penulisan apa yang diminta, menggunakan jalur control baca atau tulis antara prosesor dan modul DMA.

·         Alamat perangkat I/O yang dilibatkan, dikomunikasikan pada jalur data.

·         Penempatan awal memori untuk menulis ke atau membaca dari, yang dikomunikasikan pada jalur data dan disimpan oleh modul DMA dalam register alamatnya.

·         Jumlah word yang akan dibaca atau ditulis, berkomunikasi melalui jalur data dan menyimpannya dalam register penghitung data.

Prosesor kemudian melanjutkan pekerjaan lain. Modul DMA akan memindahkan blok ke seluruh data, secara langsubg ke memori atau dari memori, tanpa harus melelui prosesor. Ketika perpindahan ini telah selesai, modul DMA akan mengirimkan sinyal interupsi ke prosesor, sehingga prosesor hanya akan dilibatkan pada awal dan akhir transfer.

 

Jalur I/O dan Prosesor

Evolusi dari fungsi I/O dapat diringkas sebagai berikut :

1.       CPU mengontrol peripheral secara langsung.

2.       Sebuah pengontrol atau modul I/O ditambahkan.

3.       Konfigurasinya sama seperti nomor 2, namun interupsi digunakan disini.

4.       Modul I/O diberi akses langsung ke memori melalui DMA.

5.       Modul I/O ditingkatkan kemampuannya menjadi sebuah prosesor yang memiliki tugasnya sendiri, dengan menggunakan instruksi khusus yang di-set untuk I/O tertentu.

6.       Modul I/O mempunyai memori lokalnya sendiri dan merupakan sebuah computer yang memiliki tugasnya sendiri.

Dengan perkembangannya sepanjang langkah evolusioner, semakin banyak perangkat I/O yang terbentuk tanpa keterlibatan CPU. Pada dua langkah terakhir (5 dan 6) terjadi perubahan besar, dengan berhasil dibuatnya modul I/O yang mampu mengeksekusi program.

Jalur I/O meepresentasikan perluasan konsep DMA. Jalur I/O mempunyai kemampuan untuk mengeksekusi perintah I/O, yang memberikan control sepenuhnya atas operasi-operasi I/O.

Terdapat dua jenis jalur I/O yang umum dipakai, yaitu jalur selector yang mengontrol sejumlah perangkat berkecepatan tinggi dan selalu didedikasikan bagi transfer data dengan salah satu perangkat itu. Dan jalur multiplexor yang mampu menangani I/O dengan berbagai perangkat pada waktu yang sama.

Antar-muka eksternal : Firewire dan Infiniband

1.       Fire wire serial bus.

Keuntungan tipe antar muka ini adalah perangkat ini berkecepatan sangat tinggi, biaya rendah, dam mudah untuk diimplementasikan. Perangkat ini juga menggunakan transmisi serial (bit pada waktu sama) dibanding dengan parallel.

Tujuan fire wire adalah untuk memberikan antar muka I/O tunggal dengan konektor sederhana yang mampu menangani banyak perangkat melalui port tunggal, sehingga mouse, print laser, keyboard, disk drive eksternal, dsb dapat terlayani oleh konektor tunggal ini.

2.       Infiniband.

Infiniband dimaksudkan untuk menggantikan bus pada PCI pada server, menyediakan kapasitas lebih besar, kemampuan lebih luas ditingkatkan, dan fleksibilitas ditingkatkan pada rancangan layanan. Infiniband memungkinkan server, penyimpan jauh, dan perangkat jaringan lainnya untuk dipasang pada pabrik pusat switch dan link. Arsitektur switch-based dapat menghubungkan sampai 64.000 server, system penyimpanan dan perangkat networking.