Saturday, 14 July 2012

Organisasi I/O - Orkom

BAB3. Organisasi I/O 

  Tiga komponen penting dalam Sistem Komputer, yaitu:
¡  CPU
¡  Memori (primer dan sekunder), dan
¡  Peralatan masukan/keluaran (I/O devices) seperti printer,  monitor, keyboard, mouse, dan modem.

  Fungsi : Memindahkan informasi antara CPU atau memori utama dengan dunia luar
   
    I/O terdiri :
  - Piranti I/O (peripheral)
  - Pengendali I/O (device controller)
  - Perangkat lunak

Perangkat Eksternal
Salah satu fitur dasar komputer adalah kemampuannya untuk mempertukarkan data dengan perangkat lain. Kemampuan komunikasi ini memungkinkan operator manusia, misalnya, untuk menggunakan keyboard dan layer display untuk mengolah teks dan grafik.
Mesin komputer akan memiliki nilai apabila bisa berinteraksi dengan dunia luar. Lebih dari itu, komputer tidak akan berfungsi apabila tidak dapat berinteraksi dengan dunia luar.
Ambil contoh saja, bagaimana kita bisa menginstruksikan CPU untuk melakukan suatu operasi apabila tidak ada keyboard.
Bagaimana kita melihat hasil kerja sistem komputer bila tidak ada monitor. Keyboard dan monitor tergolong dalam perangkat eksternal komputer. Perangkat eksternal atau lebih umum disebut peripheral tersambung dalam sistem CPU melalui perangat pengendalinya, yaitu modul I/O.



Perangkat eksternal diklasifikasikan menjadi 3 kategori:
Human Readable, yaitu perangkat yang berhubungan dengan manusia sebagai pengguna komputer.
Contohnya: monitor, keyboard, mouse, printer, joystick, disk drive.
Machine readable, yaitu perangkat yang berhubungan dengan peralatan. Biasanya berupa modul sensor dan tranduser untuk monitoring dan kontrol suatu peralatan atau sistem.
Communication, yatu perangkat yang berhubungan dengan komunikasi jarak jauh. Misalnya: NIC dan modem.



Modul I/O merupakan peralatan antarmuka (interface) bagi sistem bus atau switch sentral dan mengontrol satu atau lebih perangkat peripheral.
Modul I/O tidak hanya sekedar modul penghubung, tetapi sebuah piranti yang berisi logika dalam melakukan fungsi komunikasi antara peripheral dan bus komputer.

Sistem Masukan & Keluaran Komputer


  Bagaimana modul I/O dapat menjalankan tugasnya, yaitu menjembatani CPU dan memori dengan dunia luar merupakan hal yang terpenting untuk kita ketahui.
   Inti mempelajari sistem I/O suatu komputer adalah mengetahui fungsi dan struktur modul I/O.


 
Modul I/O adalah suatu komponen dalam sistem komputer yang bertanggung jawab atas pengontrolan sebuah perangkat luar atau lebih dan bertanggung jawab pula dalam pertukaran data antara perangkat luar tersebut dengan memori utama ataupun dengan register – register CPU.
Dalam mewujudkan hal ini, diperlukan antar muka internal dengan komputer (CPU dan memori utama) dan antarmuka dengan perangkat eksternalnya untuk menjalankan fungsi – fungsi pengontrolan.
Fungsi dalam menjalankan tugas bagi modul I/O dapat dibagi menjadi beberapa katagori, yaitu:
    1. Kontrol dan pewaktuan.
    2. Komunikasi CPU.
    3. Komunikasi perangkat eksternal.
    4. Pem-buffer-an data.
    5. Deteksi kesalahan.

1. Kontrol dan pewaktuan:
Fungsi kontrol dan pewaktuan (control & timing) merupakan hal yang penting untuk mensinkronkan kerja masing – masing komponen penyusun komputer. Dalam sekali waktu CPU berkomunikasi dengan satu atau lebih perangkat dengan pola tidak menentu dan kecepatan transfer komunikasi data yang beragam, baik dengan perangkat internal seperti register – register, memori utama, memori sekunder, perangkat peripheral. Proses tersebut bisa berjalan apabila ada fungsi kontrol dan pewaktuan yang mengatur sistem secara keseluruhan.
Contoh control pemindahan data dari peripheral ke CPU melalui sebuah modul I/O dapat meliputi langkah – langkah berikut ini :
  Permintaan dan pemeriksaan status perangkat dari CPU ke modul I/O.
  Modul I/O memberi jawaban atas permintaan CPU.
  Apabila perangkat eksternal telah siap untuk transfer data, maka CPU akan mengirimkan perintah ke modul I/O.
  Modul I/O akan menerima paket data dengan panjang tertentu dari peripheral.
  Selanjutnya data dikirim ke CPU setelah diadakan sinkronisasi panjang data dan kecepatan transfer oleh modul I/O sehingga paket – paket data dapat diterima CPU dengan baik.
  Transfer data tidak akan lepas dari penggunaan sistem bus, maka interaksi CPU dan modul I/O akan melibatkan kontrol dan pewaktuan sebuah arbitrasi bus atau lebih.

2. Komunikasi CPU
Adapun fungsi komunikasi antara CPU dan modul I/O meliputi proses – proses berikut :
Command Decoding, yaitu modul I/O menerima perintah – perintah dari CPU yang dikirimkan sebagai sinyal bagi bus kontrol.
            Misalnya, sebuah modul I/O untuk disk dapat menerima perintah: Read sector, Scan record ID, Format disk.
Data, pertukaran data antara CPU dan modul I/O melalui bus data.
Status Reporting, yaitu pelaporan kondisi status modul I/O maupun perangkat peripheral, umumnya berupa status kondisi Busy atau Ready. Juga status bermacam – macam kondisi kesalahan (error).

Address Recognition, bahwa peralatan atau komponen penyusun komputer dapat dihubungi atau dipanggil maka harus memiliki alamat yang unik, begitu pula pada perangkat peripheral, sehingga setiap modul I/O harus mengetahui alamat peripheral yang dikontrolnya.
 Pada sisi modul I/O ke perangkat  peripheral juga terdapat komunikasi yang meliputi komunikasi data, kontrol maupun status.

3. Komunikasi Perangkat Peripheral
Proses transfer informasi antara CPU dengan sebuah
peripheral :
  - Memilih I/O dan mengujinya.
  - Menginisialisasi transfer dan mengkoordinasikan pengaturan waktu operasi I/O.
  - Mentransfer informasi.
  - Menghentikan proses transfer.

4. Buffering & Deteksi Kesalahan
Tujuan utama buffering adalah mendapatkan penyesuaian data sehubungan perbedaan laju transfer data dari perangkat peripheral dengan kecepatan pengolahan pada CPU.
Umumnya laju transfer data dari perangkat peripheral lebih lambat dari kecepatan CPU maupun media penyimpan.
 Fungsi terakhir adalah deteksi kesalahan. Apabila pada perangkat peripheral terdapat masalah sehingga proses tidak dapat dijalankan, maka modul I/O akan melaporkan kesalahan tersebut. Misal informasi kesalahan pada peripheral printer seperti: kertas tergulung, pinta habis, kertas habis, dan lain – lain. Teknik yang umum untuk deteksi kesalahan adalah penggunaan bit paritas.

Struktur Modul I/O:

Antarmuka modul I/O ke CPU melalui bus sistem komputer terdapat tiga saluran, yaitu :
       saluran data,
       saluran alamat dan saluran kontrol.
       Bagian terpenting adalah blok logika I/O yang berhubungan dengan semua peralatan antarmuka peripheral, terdapat fungsi pengaturan dan switching pada blok ini.

Teknik Masukan/Keluaran:

Terdapat tiga buah teknik dalam operasi I/O, yaitu: 1. I/O terprogram.
Data saling dipertukarkan antara CPU dan modul I/O. CPU
mengeksekusi program yang memberikan operasi I/O kepada CPU secara langsung, seperti
pemindahan data, pengiriman perintah baca maupun tulis, dan monitoring perangkat.
Kelemahan teknik ini adalah CPU akan menunggu sampai operasi I/O selesai dilakukan
modul I/O sehingga akan membuang waktu, apalagi CPU lebih cepat proses operasinya. Dalam
teknik ini, modul I/O tidak dapat melakukan interupsi kepada CPU terhadap proses – proses yang
diinteruksikan padanya. Seluruh proses merupakan tanggung jawab CPU sampai operasi lengkap dilaksanakan.
Untuk melaksanakan perintah – perintah I/O, CPU akan mengeluarkan sebuah alamat
bagi modul I/O dan perangkat peripheralnya sehingga terspesifikasi secara khusus dan sebuah
perintah I/O yang akan dilakukan.
 Terdapat empat klasifikasi perintah I/O, yaitu:
1. Perintah control.
Perintah ini digunkan untuk mengaktivasi perangkat peripheral dan memberitahukan tugas yang
diperintahkan padanya.
2. Perintah test.
Perintah ini digunakan CPU untuk menguji berbagai kondisi status modul I/O dan
peripheralnya. CPU perlu mengetahui perangkat peripheralnya dalam keadaan aktif dan siap digunakan, juga untuk mengetahui operasi – operasi I/O yang dijalankan serta mendeteksi kesalahannya.
3. Perintah read.
Perintah pada modul I/O untuk mengambil suatu paket data kemudian menaruh dalam buffer internal. Proses selanjutnya paket data dikirim melalui bus data setelah terjadi sinkronisasi data maupun kecepatan transfernya.
4. Perintah write.
Perintah ini kebalikan dari read. CPU memerintahkan modul I/O untuk mengambil data dari bus data untuk diberikan pada perangkat peripheral tujuan data  tersebut.

2. interrupt – driven I/O
Teknik interrupt – driven I/O memungkinkan proses tidak membuang – buang waktu.
Prosesnya adalah CPU mengeluarkan perintah I/O pada modul I/O, bersamaan perintah I/O dijalankan modul I/O maka CPU akan melakukan eksekusi perintah – perintah lainnya.
Apabila modul I/O telah selesai menjalankan instruksi yang diberikan padanya akan melakukan interupsi pada CPU bahwa tugasnya telah selesai.
 Dalam teknik ini kendali perintah masih menjadi tanggung jawab CPU, baik pengambilan perintah dari memori maupun pelaksanaan isi perintah tersebut.
Terdapat selangkah kemajuan dari teknik sebelumnya, yaitu CPU melakukan multitasking beberapa perintah sekaligus sehingga tidak ada waktu tunggu bagi  CPU.
Cara kerja  teknik  interupsi di sisi modul I/O adalah modul I/O menerima perintah, misal read.
Kemudian modul I/O melaksanakan perintah pembacaan dari peripheral dan meletakkan paket data ke register data modul I/O, selanjutnya modul mengeluarkan sinyal interupsi ke CPU melalui saluran kontrol. Kemudian modul menunggu datanya diminta CPU. Saat permintaan terjadi, modul meletakkan data pada bus data dan modul siap menerima perintah selanjutnya.
Pengolahan interupsi saat perangkat I/O telah menyelesaikan sebuah operasi I/O adalah sebagai berikut :
1.     Perangkat I/O akan mengirimkan sinyal interupsi ke CPU.
2.     CPU menyelesaikan operasi yang sedang dijalankannya kemudian merespon  
        interupsi.
3.     CPU memeriksa interupsi tersebut, kalau valid maka CPU akan mengirimkan sinyal
         acknowledgment ke perangkat I/O untuk menghentikan interupsinya.

3. DMA (Direct Memory Access).
Ketiganya memiliki keunggulan maupun kelemahan, yang penggunaannya disesuaikan sesuai unjuk kerja masing – masing teknik.

Operasi I/O terbagi menjadi 3 metode :

  I/O terprogram
  I/O interupsi
  Direct Memory Access (DMA)
I/O terprogram
  Metode di mana CPU mengendalikan operasi I/O secara keseluruhan dengan menjalankan serangkaian instruksi I/O dengan sebuah program.

Karakteristik I/O terprogram:

Program tersebut digunakan untuk memulai,
mengarahkan dan menghentikan operasi-operasi I/O.
Membutuhkan sejumlah perangkat keras (register) yaitu:
    • Register status, berisi status piranti I/O dan data yang akan dikirimkan.
    • Register buffer, menyimpan data sementara sampai CPU siap     menerimanya
    • Pointer buffer, menunjuk ke lokasi memori di mana sebuah karakter harus ditulis atau dan mana karakter tersebut harus dibaca.
    • Counter data, tempat penyimpanan jumlah karakter  dan akan berkurang nilainya jika karakter ditransfer.
- Membutuhan waktu proses yang lama dan tidak efesien dalarn pemanfaatan CPU.

I/O interupsi
  Metode di mana CPU akan bereaksi ketika suatu piranti mengeluarkan permintaan untuk pelayanan.

Karakteristik I/O Interupsi:

Lebih efisien dalam pemanfaatan CPU, karena tidak harus menguji status dari piranti.
Interupsi dapat berasal dari piranti I/O, interupsi perangkat keras misalnya : timer, memori, power supply, dan Interupsi perangkat lunak misalnya : overflow, opcode/data yang ilegal, pembagian dengan nol.

Direct Memory Access (DMA)

  Metode transfer data secara langsung antara memori dengan piranti tanpa pengawasan dan pengendalian CPU.
  • Skema transfer blok DMA dual port
       CPU dan DMA controller mengakses memori utama
        melalui MAR dan MBR dengan menggunakan
        sebuah memori utama dual port (2 port).
        Port I ----> melayani CPU
        Port II ----> melayani DMA controller
  • Skema transfer blok DMA cycle stealing (pencurian siklus)
       Hanya memerlukan sebuah memori port tunggal di mana CPU dan piranti I/O beradu cepat pada basis asinkron, prioritas utama akan diberikan pada piranti I/O.
  Interfacing
        Adalah peralatan yang digunakan untuk menghubungkan suatu piranti dengan CPU melalui bus
Mengakses Perangkat I/O
Pengaturan sederhana untuk menghubungkan perangkat I/O ke suatu komputer adalah dengan menggunakan pengaturan bus tunggal, sebagaimana yang ditampilkan pada gambar 12.1. Bus tersebut mengenable semua perangkat yang dihubungkan padanya untuk mempertukarkan informasi. Biasanya, pengaturan tersebut terdiri dari tiga set jalur yang digunakan untuk membawa alamat, data, dan sinyal kontrol.
Tiap perangkat I/O ditetapkan dengan suatu set alamat yang unik.
Pada saat prosessor meletakkan suatu alamat pada jalur alamat, perangkat yang mengenali alamat ini merespon perintah yang dinyatakan pada jalur kendali. Prosessor meminta operasi baca atau tulis, dan data yang direquest ditransfer melalui jalur data. Pada saat perangkat I/O dan memori berbagi ruang alamat yang sama, pengaturan tersebut disebut memory mapped I/O.
Dengan memory mapped I/O, tiap instruksi mesin yang dapat mengakses memori dapat digunakan untuk mentransfer data ke atau dari perangkat I/O.
 Misalnya, jika DATAIN adalah alamat input buffer yang terhubung dengan keyboard, maka Instruksi
Move DATAIN, R0
Membaca data dari DATAIN dan menyimpannya dalam register prosessor R0.
Serupa dengan instruksi
Move R0, DATAOUT
Mengirim isi register R0 ke lokasi DATAOUT, yang mungkin berupa buffer
data output dari unit display atau printer.

Sinyal khusus pada bus tersebut mengindikasikan bahwa transfer baca atau tulis yang diminta adalah operasi I/O. Pada saat sinyal ini dinyatakan, unit memori mengabaikan transfer yang Direquest. Perangkat I/O menganalisa bit loworder bus alamat untuk menentukan apakah sebaiknya memberi respon.


















1 comment: