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. 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.
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.
DMA ialah
sebuah prosesor khusus (special purpose processor) yang berguna untuk
menghindari pembebanan CPU utama oleh program I/O (PIO). Untuk memulai
sebuah transfer DMA, host akan menuliskan sebuah DMA command block yang
berisi pointer yang menunjuk ke sumber transfer, pointer yang menunjuk
ke tujuan transfer, dan jumlah byte yang ditransfer, ke memori. CPU
kemudian menuliskan alamat command block ini ke pengendali DMA, sehingga
pengendali DMA dapat kemudian mengoperasikan bus memori secara langsung
dengan menempatkan alamatalamat pada bus tersebut untuk melakukan
transfer tanpa bantuan CPU.
DMA (Direct Memory Access) adalah suatu hardware spesial (chip) yang dapat mengontrol aliran bit data antara memory (RAM) dan beberapa controller dari I/O devices tanpa memerlukan interferensi dari CPU secara terus menerus. (Mengakses dan mengontrol memori sistem tanpa interferensi CPU secara terus menerus).
B. Cara Kerja DMA Controller
Selama
transfer byte masukan blok, urutan berikut terjadi sebagai byte data yang
dikirim dari antarmuka
ke memori:- Antarmuka mengirimkan DMA controller permintaan untuk layanan DMA.
- Permintaan bus dibuat ke pin HOLD (aktif Tinggi) pada mikroprosesor tebhe 8086 dan pengendali mendapatkan kontrol bus.
- Isi bus dikembalikan ke kontroler DMA dari pin HOLD Acknowledge (HLDA) (aktve High) pada mikroprosesor 8086.
- Pengontrol DMA menempatkan isi register alamat ke alamat bus.
- Pengontrol mengirimkan antarmuka pengakuan DMA, yang memberi tahu antarmuka untuk menempatkan bus data (untuk keluarannya memberi sinyal antarmuka untuk mengunci data berikutnya yang ditempatkan di bus)
- Data dalam bentuk byte ditransfer ke lokasi memori yang ditunjukkan oleh alamat bus.
- Interface mengaitkan data / memasang datanya.
- Permintaan bus dijatuhkan, pin HOLD menjadi rendah, dan pengendali melepaskan bus.
- Isi bus dari mikroprosesor 8086 menurun dan pin HLDA menjadi turun..Register alamat bertambah 1,Hitungan byte dikurangi 1.Jika jumlah byte tidak nol, kembali ke langkah 1, jika tidak hentikan.
SUMBER ARTIKEL:
https://wahidanggara.blogspot.com/2018/11/data-transfer-with-dma-controller.html?m=1
https://www.sridianti.com/pengertian-dma-direct-memory-access.html
https://www.slideshare.net/ahmadfajarjabrik/isi-makalah-42162820
http://izrahernanda.blogspot.com/2010/06/bus-data-dan-dma.html
https://taryainunhannif.blogspot.com/2014/02/normal-0-false-false-false-in-x-none-x_42.html
Tidak ada komentar:
Posting Komentar