METODE TRANSFER DATA
Dma Controller Diagram |
A. MASUKAN/KELUARAN TERPROGRAM (PROGRAMMED I/O)
Merupakan perangkat I/O komputer yang dikontrol oleh program. Contohnya adalah instruksi dalam bahasa mesin in, out, move. Ketika perangkat I/O menangani permintaan, maka register mengatur status perangkat.
Perangkat tidak dapat memberi tahu ke pemroses saat tugas telah selesai dilakukan. Pemroses harus selalu memeriksa register untuk status perangkat.
Software pengendali perangkat (driver) harus mentransfer data ke atau dari pengendali. Driver saling berkomuniksi dengan Driver Adapter untuk mengeksekusi perintah sampai operasi yang dilakukan selesai.
Berikut 3 kategori instruksi yang wajib ada di dalam Driver :
1. Pengendalian
- Instruksi untuk mengendalikan operasi perangkat keras (main board)
- Instruksi untuk mengaktifkan perangkat eksternal
- Instruksi untuk memberitahu tindakan apa yang perlu dilakukan perangkat keras dan external (Reasoning).
Contoh: Unit DVD Drive di instruksikan untuk kembali ke posisi awal, menuju ke record berikutnya, atau tindakan lain.
2. Pengujian
Instruksi-instruksi untuk memeriksa status perangkat keras dan berkaitan dengan perangkat I/O.
3. Pembacaan / Penulisan
- Instruksi-instruksi untuk membaca/menulis dari/ke perangkat keras
- Instruksi untuk transfer data antar register atau perangkat eksternal.
Kelemahan: Cara ini sangat tidak efisien dikarenakan banyak sekali waktu yang terbuang hanya untuk menunggu status perangakt keras atau selesainya operasi perangkat I/O.
B. PERANGKAT BERKENDALIKAN INTERUPSI (INTERRUPT I/O)
Interupsi merupakan mekanisme kompleks untuk mengkoordinir pengalihan I/O. Konsep interupsi banyak digunakan dalam Sistem Operasi maupun Aplikasi Kontrol, dimana subroutine tertentu harus diatur dengan seksama, relatif terhadap peristiwa-peristiwa eksternal (tak terduga).
Berikut ini adalah mekanisme Interrupt I/O :
- Pemroses memberi instruksi ke perangkat I/O, lalu melanjutkan tugas lain.
- Perangkat I/O akan memberi instruksi untuk meminta layanan berikutnya, setelah status Ready untuk melakukan pertukaran data.
- Saat menerima interupsi perangkat keras, maka pemroses segera mendahulukan eksekusi untuk perangkat keras (transfer data).
Gambaran Proses :
Interupsi bisa terjadi apabila perangkat keras (hardware) atau perangkat lunak (software) minta “dilayani” olehprosesor. Apabila terjadi interupsi, maka prosesor menghentikan proses yang sedang dikerjakannya, kemudian beralih mengerjakan service routine interupsi tersebut. Setelah selesai, maka prosesor kembali melanjutkan proses yang tertunda.
Untuk memulai operasi I/O, CPU me-load register yang sesuai untuk device controller. Sebaliknya device controller memeriksa isi register untuk kemudian menentukan operasi apa yang harus dilakukan. Pada saat operasi I/O dijalankan, maka akan ada dua kemungkinan, yaitu synchronous I/O dan asynchronous I/O.
Pada synchronous I/O, kendali dikembalikan ke proses pengguna setelah proses I/O selesai dikerjakan.
Sedangkan pada asynchronous I/O, kendali dikembalikan ke proses pengguna tanpa menunggu proses I/O selesai. Sehingga proses I/O dan proses pengguna dapat dijalankan secara bersamaan.
Keunggulan: Pemroses tidak disibukan dengan menunggu/menjaga seluruh operasi maupun status perangkat I/O. Teknik ini lebih baik dibandingkan dengan Teknik I/O terprogram.
C. DMA (DIRECT MEMORY ACCESS)
Adalah suatu metode penanganan I/O dimana device controller langsung berhubungan dengan memori tanpa campur tangan CPU. Setelah menyetel buffers, 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. Hanya terdapat satu interupsi setiap blok, berbeda dengan perangkat yang mempunyai kecepatan rendah dimana interupsi terjadi untuk setiap byte (word).
Transfer DMA
Untuk memulai sebuah transfer DMA, host akan menuliskan sebuah DMA command block yang berisi pointer yang menunjuk ke sumber transfer, tujuan/destinasi transfer, dan jumlah byte yang akan ditransfer, ke memori.
CPU kemudian menuliskan alamat command block ini ke DMA controller, sehingga dapat segera mengoperasikan bus memori secara langsung dengan menempatkan alamat-alamat pada bus tersebut untuk melakukan transfer tanpa bantuan CPU.
Ada 3 langkah dalam transfer DMA :
- Prosesor menyiapkan DMA transfer, dengan cara menyediakan data-data dari device, operasi yang akan ditampilkan, alamat memori yang menjadi sumber dan tujuan data, dan banyaknya byte yang di transfer.
- DMA controller memulai operasi (menyiapkan bus, menyediakan alamat, menulis dan membaca data), sampai seluruh blok sudah di transfer.
- DMA controller meng-interupsi prosesor, selanjutnya akan ditentukan tindakan apa berikutnya.
Pada dasarnya, DMA mempunyai dua metode yang berbeda dalam mentransfer data;
- Metode pertama adalah HALT, disebut juga Burst Mode DMA, karena DMA controller memegang kontrol dari sistem bus dan mentransfer semua blok data ke atau dari memori pada single burst. Saat transfer masih dalam progress, sistem mikroprosessor di-set idle, tidak melakukan instruksi operasi untuk menjaga internal register. Tipe operasi DMA seperti ini ada pada kebanyakan komputer.
- Metode kedua, mengikut-sertakan DMA controller untuk memegang kontrol dari sistem bus untuk jangka waktu yang lebih pendek pada saat mikroprosessor sibuk dengan operasi internal dan tidak membutuhkan akses ke sistem bus. Metode DMA ini disebut Cycle Stealing Mode. Cycle Stealing DMA lebih kompleks untuk diimplementasikan dibandingkan HALT DMA, karena DMA controller harus mempunyai kecerdasan untuk memprediksi waktu terbukanya sistem Bus.
Handshaking
Proses handshaking antara DMA controller dengan device controller dilakukan melalui sepasang kabel yang disebut DMA-request dan DMA-acknowledge. Device controller mengirimkan sinyal melalui DMA-request, ketika akan mentransfer data sebanyak satu word. Kemudian hal ini akan mengakibatkan DMA controller memasukkan alamat-alamat yang dinginkan ke kabel alamat memori, dan mengirimkan sinyal melalui kabel DMA-acknowledge. Setelah diterima, device controller mengirimkan data yang dimaksud dan mematikan sinyal pada DMA-request. Hal ini berlangsung berulang-ulang sehingga disebut handshaking.
sumber:https://www.gatewan.com/2016/02/metode-transfer-data.html