Direct memory access (DMA) adalah suatu alat pengendali khusus disediakan untuk memungkinkan transfes blok data langsung antar perangkat eksternal dan memori utama, tanpa intervensi terus menerus dari prosesor (CPU).
Diperlukan DMA untuk programmed I/O dan interrupt driver I/O, DMA menjadi solusi
- Masih memerlukan keterlibatan CPU, CPU menjadi sibuk
- Transfer rate data terbatas
Digunakan modul khusus(hardware) yang terhubung ke sistem bus
fungsi modul DMA:
- Dapat menirukan sebagian fungsi processor
- Dapat mengambil alih fungsi prosesor yang berhubungan dengan transfer data
Kapan DMA bekerja?
- Saat prosesor sedang tidak menggunakan bus
- saat prosesor dipaksa berhenti sesaat (suspend) , siklus "dicuri oleh DMA" adalaah cycle stealing
Cara Kerja DMA
- CPU mengirimkan data data berikut ini ke DMA controller:
- Perintah read/write
- Alamat device yang akan diakses
- Alamat awal blok memori yang akan dibaca/ditulis
- Jumlah blok data yang akan ditransfer
- CPU mengeksekusi program lain
- DMA controller mengirimkan seluruh blok data (per satu word) langsung ke memori(tanpa melibatkan CPU)
- DMA controller mengirim interrupt ke CPU jika telah selesai.
Cycle Stealing pada DMA transfer
- DMA controller mengambil alih bus sebanyak satu siklus
- DMA mentransfer satu word data
- Pengambil alihan bus oleh DMA bukan interrupt --> CPU tidak perlu menyimpan context
- CPU hanya tertunda (suspend) sesaat sebelum mengakses bis, yaitu sebelum operand atau data diambil atau data ditulis
- Pengaruh terhadap CPU yaitu memperlambat CPU , tetapi masih lebih baik dari pada CPU terlibat langsung pada transfer data
Cycle Stealing di DMA |
Konfigurasi pada DMA
- Konfigurasi I
- Hanya menggunakan single bus
- DMA dan modul I/O terpisah
- Setiap transfer harus mengakses bus 2 kali
- Konfigurasi II
- Hanya menggunakan single bus
- DMA controller dan modul I/O terintegrasi
- satu DMA controller dapat mengangani lebih dari 1 modu I/O
- Setiap transfer hanya perlu mengakses bus satu kali saja
- Konfigurasi III
- digunakan bus I/O secara terpisah
- semua modul I/O cukup dilayani dengan sebuah DMA
- Setiap transfer hanya perlu mengakses bus satu kali saja
0 Comments for "Pengertian dan Fungsi DMA (Direct Memory Access)"