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.
Operasi
I/O selalu dilakukan oleh OS sebagai respon terhadap request dari
program aplikasi. OS juga bertanggung jawab untuk menunda eksekusi satu
program dan memulai eksekusi program lain. Sehingga, untuk operasi I/O
yang melibatkan DMA, OS menetapkan program yang meminta transfer tsb
pada keadaan blocked, menginisiasi operasi DMA, dan memulai eksekusi
program lain. Pada saat transfer selesai, kontroler DMA memberitahu
prosesor dengan mengirim interupt request. Sebagai responnya, OS
menetapkan program yang ditunda ke keadaan runnable sehingga dapat
dipilih oleh scheduler untuk melanjutkan eksekusi.
Sumber : http://margono.staff.uns.ac.id/2009/04/08/direct-memory-access-dma/
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). Untuk setiap word
yang ditransfer, kontroler ini menyediakan alamat memori dan semua
sinyal bus yang mengontrol transfer data. Karena harus mentransfer
sejumlah blok data, maka kontroler DMA harus menaikkan alamat memori
untuk word yang berurutan dan mencatat jumlah transfer.
Sekalipun kontroler DMA dapat mentransfer data
tanpa intervensi dari prosesor, operasinya tetap berada dibawah kontrol
program yang dieksekusi oleh prosesor. Untuk menginisiasi transfer suatu
blok word, prosesor mengirim alamat awal, jumlah word dalam blok, dan
arah transfer. Pada saat seluruh blok telah ditransfer, kontroler
tersebut memberitahu prosesor dengan memunculkan sinyal interupt. 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.
Sumber : http://margono.staff.uns.ac.id/2009/04/08/direct-memory-access-dma/
0 comments:
Post a Comment