Senin, 28 Oktober 2019

Penjelasan Gambar DMA

A. Pengertian DMA (Direct Access Memory)

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:

  1. Antarmuka mengirimkan DMA controller permintaan untuk layanan DMA.
  2. Permintaan bus dibuat ke pin HOLD (aktif Tinggi) pada mikroprosesor tebhe 8086 dan pengendali mendapatkan kontrol bus.
  3. Isi bus dikembalikan ke kontroler DMA dari pin HOLD Acknowledge (HLDA) (aktve High) pada mikroprosesor 8086.
  4. Pengontrol DMA menempatkan isi register alamat ke alamat bus.
  5. 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)
  6. Data dalam bentuk byte ditransfer ke lokasi memori yang ditunjukkan oleh  alamat bus.
  7. Interface mengaitkan data / memasang datanya. 
  8. Permintaan bus dijatuhkan, pin HOLD menjadi rendah, dan pengendali melepaskan bus.
  9. 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

Teknik Informatika

Stikom DB Jambi

Fajri Rafif Ramadhan