Kamis, 01 November 2018

Penjelasan DMA (Direct Memory Acces)

DMA (Direct Memory Acces)




1.       Pengertian DMA(Direct Memory Acces)

Direct memory access (DMA) adalah fitur sistem komputer yang memungkinkan subsistem perangkat keras tertentu untuk mengakses memori sistem utama (memori akses acak), yang terpisah dari central processing unit (CPU).

Tanpa DMA, ketika CPU menggunakan input / output terprogram, ini biasanya terisi penuh untuk seluruh durasi operasi baca atau tulis, dan karena itu tidak tersedia untuk melakukan pekerjaan lain. Dengan DMA, CPU pertama memulai transfer, kemudian melakukan operasi lain ketika transfer sedang berlangsung, dan akhirnya menerima interupsi dari pengontrol DMA ketika operasi selesai. Fitur ini berguna setiap saat ketika CPU tidak dapat mengikuti laju transfer data, atau ketika CPU perlu melakukan pekerjaan sambil menunggu transfer data I / O yang relatif lambat. Banyak sistem perangkat keras menggunakan DMA, termasuk pengontrol disk drive, kartu grafis, kartu jaringan, dan kartu suara. DMA juga digunakan untuk transfer data intra-chip dalam prosesor multi-core. Komputer yang memiliki saluran DMA dapat mentransfer data ke dan dari perangkat dengan overhead CPU jauh lebih sedikit daripada komputer tanpa saluran DMA. Demikian pula, elemen pemrosesan di dalam prosesor multi-core dapat mentransfer data ke dan dari memori lokal tanpa menempati waktu prosesornya, memungkinkan komputasi dan transfer data untuk berjalan secara paralel.

DMA juga dapat digunakan untuk "memori ke memori" menyalin atau memindahkan data dalam memori. DMA dapat membebani operasi memori yang mahal, seperti salinan besar atau operasi penghamburan, dari CPU ke mesin DMA khusus. Contoh implementasi adalah Teknologi Akselerasi I / O. DMA sangat menarik dalam arsitektur komputasi
jaringan-on-chip dan in-memory.


2.       Fungsi DMA(Direct Memory Acces)

Fungsi DMA adalah untuk membantu CPU fokus penuh untuk mengerjakan proses transfer data. Dengan 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.



3.       Kelebihan & Kekurangan DMA(Direct Memory Acces)

1)      Kelebihan

Dapat menirukan sebagian fungsi processor
Dapat mengambil alih fungsi prosesor yang berhubungan dengan transfer data
CPU dapat melakukan manajemen operasi baca tulis (transfer data) dengan baik dan juga dapat menyelsaikan instruksi yang lain.
Mendapat informasi tentang jumlah data bit yang ditransfer, alamat dari device dan memory yang diperlukan dan arah dari aliran data.

2)      Kekurangan DMA :

Transfer rate data terbatas
Masih memerlukan keterlibatan CPU, Sehingga CPU menjadi lebih sibuk



4.       Cara Kerja DMA (Direct Memory Acces)


Cara kerja DMA :


1)      Antarmuka mengirimkan pengontrol DMA permintaan DMA layanan.

2)      Permintaan Bus dibuat untuk pin terus (Tinggi aktif) pada mikroprosesor 8086 dan controller 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 pada bus data. (Untuk output itu sinyal antarmuka untuk latch data berikutnya ditempatkan di bus.

6)      Byte data ditransfer ke lokasi memori yang ditunjukkan 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 decremented oleh 1.

12)  Jika jumlah byte adalah bukan nol, kembali ke langkah 1, jika tidak berhenti.

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.

Kerja DMA terkait 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 mengirim interrupt ke CPU jika telah selesai.


Dapat disimpulkan Prinsip sederhanya  : DMA controller mengambil alih kerja processor dalam memproses instruksi yang masuk melalui I/O device. Processor cukup mendapatkan laporan saja bahwa akan ada tugas yang dihandle oleh DMA controller, dan setelah beres, tinggal nunggu laporan ” tugas beres”.





DAFTAR PUSTAKA