2. Direct Memory Access
(DMA)
Direct memory access (DMA) merupakan suatu alat pengendali khusus disediakan untuk
memungkinkan transfes blok data langsung antar perangkat eksternal dan memori utama, tanpa
intervensi terus menerus dari prosesor. Transfer DMA dilakukan oleh sirkuit kontrol yang
merupakan bagian dari antar muka perangkat I/O. Istilah ini yang sering banyak kita ketahui adalah
sebagai kontroler DMA. Kontroler DMA melakukan fungsi yang biasanya dilakukan oleh prosesor
pada saat mengakses memori utama (yang sering disebut :RAM).
Sekalipun kontroler DMA dapat mentransfer data tanpa intervensi dari prosesor,
operasinya tetap berada dibawah kontrol program yang dieksekusi oleh prosesor. Pada saat transfer
DMA terjadi, program yang meminta transfer tersebut berhenti bekerja dan prosesor dapat
digunakan untuk mengeksekusi program lain. Setelah transfer DMA selesai, prosesor dapat kembali
ke program yang meminta transfer tersebut. Sebagai responnya, OS menetapkan program yang
ditunda ke keadaan runnable sehingga dapat dipilih oleh scheduler untuk melanjutkan eksekusi.
3. Jenis dan Struktur DMA
Ada 2 jenis DMA yaitu :
a. Third party DMA, untuk melakukan operasi trasnfer data
menggunakan DMA controller yang ada pada metherboard.
b. First party DMA (busmastering DMA), untuk melakukan operasi
trasnfer data dikerjakan oleh bagian logic di interface card.
Struktur DMA (Direct Memory Access)
- Trasnfer data dari buffer ke momori atau sebaliknya dilakukan per-
karakter.
- Dimana setiap kali trasnfer selalu ada interupt dari CPU sebelum dan
sesudah trasnfer.
- Dengan menggunakan DMA trasnfer data dapat dilakukan secara
langsung oleh device controller per-blok tanpa ada campur tangan dari
CPU.
- CPU hanya memberikan interupt sebelum dan sesudah trasnfer setiap
blok
4. Fungsi DMA (Direct Memory Access)
Fungsi dari DMA itu sendiri adalah agar CPU dapat melakukan
pekerjaan atau instruksi yang berbeda ketika melakukan operasi baca tulis dari
perangkat peripheral. Tanpa adanya DMA, CPU akan terus sibuk melakukan
operasi baca tulis (transfer data) dan tidak dapat melakukan atau
menyelesaikan instruksi yang lain.
Dengan adanya DMA, CPU cukup mempersiapkan DMA chip dengan
cara memberikan beberapa informasi seperti jumlah data bit yang ditransfer,
alamat dari device dan memory yang diperlukan dan arah dari aliran data
tersebut, setelah itu DMA chip sendiri yang akan menyelesaikannya. DMA
chip akan melakukan interupt, ketika pekerjaannya sudah selesai. Selama
DMA chip melakukan tugasnya hingga munculnya interupt, CPU dapat
menyelesaikan instruksi yang lainnya.
5. Metode kerja DMA (Direct Memory Acces)
Pada dasarnya cara kerja DMA terkait erat dengan : DMA controller, Processor, Memory, I/Odevice.
Adapun juga cara kerjanya sebagai berikut:
1. I/O Device terhubung dengan DMA controller memberikan instruksi yang harus di proses
2. DMA controller mengirimkan pemberitahuan ke processor akan ada proses yang dihandle oleh
DMA controller
3. Processor menginformasikan ke memory bahwa DMA akan mengakses memory untuk
pemrosesan suatu instruksi
4. DMA Controller terhubung dengan memory dan akses alamat, data yang diperlukan
5. DMA controller mengirimkan hasil proses kembali ke I/O device
6. Jika proses selesai, DMA controller kembali melaporkan ke processor bahwa proses telah beres
dilakukan.
Menurut reverensi lain cara kerja DMA sebagai berikut:
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 mengirm interrupt ke CPU jika selesai
6. Keuntungan menggunakan DMA (Direct Memory Access)
Ada 3 keuntungan yang di dapat dalam menggunakan DMA (Direct Memory
Access).
- Dapat dilihat pada operasi multiasking seperti UNIX
- Trasnfer data dengan mode DMA akan mengehamt sumberdata CPU sehingga
CPU dapat melakukan pekerjaan yang lain.
- Sedangkan pada DOS (yang merupakan operasi single-tasking) harus
menunggu sampai proses selesai terlebih dahulu baru kemudian bisa
menjalankan proses berikutnya.
7. Konfigurasi 1 (Single Bus)
Hanya menggunakan single bus
DMA dan modul I/O terpisah
Setiap transfer harus mengakses bus 2 kali : modul I/O ke
DMA kemudian DMA ke memori
Lebih lambat CPU (tertunda 2 kali)
Konfigurasi modul DMA
8. Konfigurasi 2 (Single Bus, Integrated DMA-I/O)
Hanya menggunakan single bus
Modul I/O terintegrasi
Satu DMA controller dapat menangani >1 modul I/O
Setiap transfer hanya perlu mengakses bus satu kali saja DMA ke
memori
CPU hanya tertunda satu kali (lebih baik dari konfigurasi 1)
Konfigurasi Modul DMA
9. Konfigurasi 3 (IO Bus)
Digunakan bus I/O secara terpisah
Lebih hemat hardwareSemua modul I/O cukup dilayani dengan sebuah
DMA
Setiap transfer hanya perlu mengakses bus satu kali saja DMA ke
memori
CPU hanya tertunda (lebih baik dari konfigurasi 2)
Konfigurasi Modul DMA
10. Kesimpulan
Komputer tersusun atas beberapa komponen penting, seperti CPU,
memory, perangkat I/O. Sistem bus adalah penghubung bagi keseluruhan
komponen dalam menjalankan tugasnya. Kumpulan lintasan atau saluran berbagai
modul disebut interkoneksi. 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.
Tanpa adanya DMA, maka proses input/output akan selalu membuat
CPU fokus penuh untuk mengerjakan proses transfer data dan menyebabkan
proses menjadi lambat. Dengan adanya DMA, CPU cukup memulai prosesnya
dan bisa melakukan kerja lain selama proses transfer itu berlangsung dan tinggal
menunggu informasi dari DMA controller jika proses transfer sudah selesai
sehingga alur pemrosesan menjadi jauh lebih efisien.