18.11.10

Arkom (Direct Memory Access)


Direct Memory Access
Kekurangan I/O Terprogram dan Interrupt-Driven I/O
Walaupun lebih efisien dibandingkan dengan I/O Terprogram yang sederhanan, interrupt-driven I/O masih memerlukan campur tangan CPU secara aktif untuk melakukan transfer data antara memori dengan modul I/O dan transfer data harus melalui lintasan via CPU. Jadi kedua bentuk I/O mengalami dua hal yang mengganggu :
  1. Kelajuan transfer I/O dibatasi oleh kecepatan yang pada kecepatan itu CPU dapat menguji dan melayani perangkat.
  2. CPU ditentukan oleh pengaturan transfer I/O; sejumlah instruksi harus dieksekusi bagi setiap transfer I/O nya.
Terdapat semacam trade-off antara kedua masalah ini. Misalkan suatu transfer blok data. Dengan menggunakan I/O terprogram sederhana, CPU didedikasikan untuk tugas I/O dan dapat memindahkan data dengan kelajuan yang agak lebih tinggi, dengan resiko tidak dapat mengerjakan tugas lainnya. I/O interrupt membebaskan CPU dengan mengobarkan kelajuan transfer I/O. walaupun begitu, kedua metode tersebut memiliki dampak yang buruk terhadap aktivitas CPU dan laju transfer I/O.
Ketika data yang bervolume besar akan dipindahkan, diperlukan teknik yang lebih efisien: direct memori access (DMA)



Fungsi DMA

DMA meliputi modul-modul tambahan pada bus system. Modul DMA mampu menirukan CPU, bahkan mengambil alih control system dari CPU. Teknik ini bekerja sebagai berikut. Pada saat CPU ingin membaca atau menulis blok data, CPU mengeluarkan perintah ke modul DMA, dengan mengirimkan ke modul DMA informasi berikut ini :
-          Read atau write yang diminta.
-          Alamat perangkat I/O yang dilibatkan.
-          Lokasi awal dalam memori untuk membaca atau menulis.
-          Jumlah word yang akan dibaca atau ditulis.
Kemudian CPU melanjutkan pekerjaan lainnya. CPU telah mendelegasikan operasi I/O ini kepada modul DMA, dan modul itu akan menjalankan tugasnya. Modul DMA memindahkan seluruh blok data, word per word, secara langsung ke memori atau dari memori, tanpa harus melalui CPU. Ketika pemindahan ini telah selesai, modul DMA akan mengirimkan signal interrupt ke CPU. Sehingga CPU hanya akan dilibatkan pada awal dan akhir pemindahan saja.
Jumlah siklus yang dibutuhkan dapat banyak dikurangi dengan mengintegrasikan antara modul DMA dengan fungsi-fungsi I/O. Terdapat sebuah lintasan antara modul DMA dan sebuah atau lebih modul I/O yang tidak melibatkan bus system. Sebenarnya logic DMA dapat merupakan bagian dari modul I/O atau merupakan bagian yang terpisah yang dapat mengontrol sebuah atau lebih modul I/O. Konsep ini dapat dilanjutkan dengan menghubungkan modul-modul I/O ke modul DMA dengan menggunakan sebuah bus I/O. Hal ini akan mengurangi jumlah interface I/O didalam modul DMA menjadi satu buaah dan akan memberikan kemudahan untuk pengembangan konfigurasi. Dalam keseluruhan kasus ini, bus system yang digunakan bersama oleh modul DMA dengan CPU dan memori dapat digunakan oleh modul DMA dengan CPU dan memori dapat digunakan oleh modul DMA hanya untuk pertukaran data dengan memori. Pertukaran data antara modul DMA dengan modul I/O akan terjadi di luar system bus.

Tidak ada komentar: