Kamis, 08 November 2018

Direct Memory Access (DMA)


Pengertian Direct Memory Access (DMA)



Direct Memory Access (DMA). Akses memori secara langsung. Chip yang berfungsi untuk mengendalikan proses pengaksesan memori secara langsung. Alat Pengendali memori yang membantu mempercepat kerja CPU dalam proses pengolahan data.
Direct Memory Access (DMA) 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 tampa interferensi CPU secara terus menerus).

Fungsi dari Direct Memory Access adalah agar CPU dapat melakukan pekerjaan atau instruksi yang berbeda ketika melakukan operasi baca tulis dari perangkat peripheral.

Sumber : https://eligius-zebua.blogspot.com/2016/12/pengertian-direct-memory-access-dma.html


Fungsi DMA

  • Dapat menirukan sebagian fungsi processor
  • Dapat mengambil alih fungsi prosesor yang berhubungan dengan transfer data

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 ditransferCPU 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
Sumber : http://rezaakhmadg.blogspot.com/2012/05/direct-memory-acces-dma.html



Selama transfer blok byte masukan, urutan berikut terjadi sebagai byte data dikirim antarmuka ke memori:

  1. Antarmuka mengirimkan pengontrol DMA permintaan DMA layanan.
  2. Permintaan Bus dibuat untuk pin terus (Tinggi aktif) pada mikroprosesor 8086 dan Controlle kontrol keuntungan dari Bus.
  3. Dana bantuan Bus dikembalikan ke DMA Controller dari Hold Acknowledge (HLDA) pin (aktif tinggi) pada mikroprosesor 8086.
  4. Para DMA Controller tempat isi alamat register ke Bus alamat.
  5. Controller mengirimkan antarmuka pengakuan DMA, yang mengisahkan antarmuka untuk menempatkan data Bus pada data.(Untuk output itu sinyal antarmuka untuk lacth data berikutnya ditempatkan di Bus.)
  6. Byte pada data ditrnasfer ke lokasi memori yang ditunjukan oleh Bus alamat.
  7. Antarmuka kait data.
  8. Permintaan Bus terjatuh ,pin Hold pergi rendah ,dan Controller Relinquishes Bus.
  9. Hibah Bus dari mikroprosesor 8086 dijatuhkan dan pin HLDA pergi rendah.
  10. Register alamat bertambah oleh 1.
  11. Jumlah byte decremmented oleh 1.
  12. Jika jumlah byte adalah bukan nol (0), kembali ke langkah 1, jika tidak berhenti.