Pengertian DMA (Direct Memory Access)

DMA adalah singkatan dari Direct Memory Access adalah kemampuan pada komputer modern yang memungkinkan perangkat periferal untuk mengirim data ke memori motherboard tanpa intervensi dari CPU.

Pengontrol DMA adalah perangkat keras khusus – sekarang tertanam ke dalam chip dalam prosesor terintegrasi modern – yang mengelola transfer data dan menengahi akses ke bus sistem. Kontroler diprogram dengan pointer sumber dan tujuan (tempat membaca / menulis data), penghitung untuk melacak jumlah byte yang ditransfer, dan pengaturan, yang mencakup I / O dan tipe memori, interupsi dan status untuk siklus CPU.

Transfer dimulai ketika pengontrol DMA diberitahu tentang kebutuhan untuk memindahkan data ke memori oleh beberapa peristiwa (tekan keyboard atau klik mouse, misalnya). Pengontrol menegaskan sinyal permintaan DMA ke CPU untuk menggunakan bus sistem. CPU menyelesaikan operasi saat ini dan memberikan kontrol bus ke pengontrol DMA melalui sinyal yang dikenali DMA. Pengontrol kemudian membaca dan menulis data dan mengontrol sinyal seolah-olah itu adalah CPU, yang pada saat itu adalah dinyatakan (idle). Setelah menyelesaikan transfer, pengontrol DMA menegaskan sinyal permintaan DMA dan CPU pada gilirannya menghapus sinyal pengenalan DMA dan melanjutkan kontrol bus.

DMA diimplementasikan dalam arsitektur bus komputer untuk mempercepat operasi komputer dan memungkinkan multitasking. Biasanya, CPU akan terisi penuh dalam operasi baca / tulis apa pun; Mengaktifkan DMA memungkinkan membaca / menulis data dalam memori internal, memori eksternal dan periferal tanpa keterlibatan CPU, sehingga membuat prosesor tersedia untuk tugas-tugas lain. Ini memastikan operasi yang efisien, karena perpindahan data ke / dari memori adalah salah satu operasi komputer yang paling umum dan membebaskan CPU dari overhead ini dapat menyebabkan peningkatan kinerja yang signifikan.

DMA berguna dalam aplikasi komputasi real time di mana operasi kritis harus dilakukan secara bersamaan. Pemrosesan aliran adalah aplikasi DMA lain, di mana transfer dan pemrosesan data dilakukan secara bersamaan. Banyak sistem perangkat keras menggunakan DMA termasuk pengontrol floppy dan disk drive, kartu grafis, kartu jaringan, kartu suara dan unit pemrosesan grafik.

Implementasi

DMA sinkron memindahkan byte atau kata pada suatu waktu antara memori sistem dan periferal. Setelah menyelesaikan setiap transfer, DMA meminta port I / O untuk memberi sinyal ketika yang terakhir siap untuk transaksi lain. Dalam pengaturan ini, DMA dan CPU berbagi siklus bus, dengan DMA memenangkan kontrol bus sistem.

Burst Mode DMA mengasumsikan bahwa tujuan dan sumber dapat mengambil transfer secepat yang dapat dilakukan pengontrol. CPU mengatur pengontrol, dan setelah sinyal dari port I / O, seluruh data disalin ke tujuan. Kontroler DMA memiliki akses tunggal ke bus sistem selama transfer yang sangat cepat dibandingkan dengan DMA sinkron.

Flyby DMA, yang tidak didukung oleh semua pengontrol, mengeluarkan sumber atau alamat tujuan, kemudian memulai siklus baca dan tulis secara simultan. Transfer Flyby sangat cepat karena siklus baca dan tulis dikompres menjadi satu siklus. Flyby dapat mendukung jenis transaksi burst dan sinkron.

Cara Mengaktifkan DMA

Bagi mereka dengan PC yang lebih baru dengan Windows yang diinstal, masalah ini pada dasarnya diselesaikan dari awal, karena Windows secara otomatis mengaktifkan DMA untuk sebagian besar perangkat keras yang kompatibel.

Ada beberapa keadaan tertentu di mana Windows XP sebagai gantinya mengaktifkan PIO, yang didokumentasikan dalam Mode DMA untuk Perangkat ATA / ATAPI di Windows XP.