DMA (Direct Memory Access)

Gambar terkait


1.PENGERTIAN DMA 
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).

2.Fungsi dari DMA sendiri adalah agar CPU dapat melakukan pekerjaan atau instruksi yang berbeda ketika melakukan operasi baca tulis dari perangkat peripheral. Tanpa adanya  DMA CPU akan terus sibuk melakukan operasi baca tulis (transfer data) dan tidak dapat melakukan atau menyelesaikan instruksi yang lain. Dengan adanya DMA, CPU cukup mempersiapkan DMA chip dengan cara memberikan beberapa informasi seperti jumlah data bit yang ditransfer, alamat dari device dan memory yang diperlukan dan arah dari aliran data tersebut, setelah itu DMA chip sendiri yang akan menyelesaikannya. DMA chip akan melakukan interupt, ketika pekerjaannya sudah selesai. Selama DMA chip melakukan tugasnya hingga munculnya interupt, CPU dapat menyelesaikan instruksi yang lainnya.

Gambar terkait

DMA chip atau DMA controller sangat beragam tergantung dari teknologi yang ditanamkan padanya, untuk menjelaskan cara kerjanya akan digunakan jenis yang paling sederhana, yaitu DMA chip yang menangani sebuah transfer setiap waktunya. Berikut ini cara kerjanya:

Pertama CPU akan memprogram atau mengeset DMA chip dengan mengatur registerinya, agar DMA chip mengetahui apa saja yang perlu ditransfer dan kemana informasi tersebut perlu ditransfer. Selain itu CPU juga akan memberikan command atau perintah pada disk controller untuk membaca data dari disk dan menuliskannya pada internal buffer, serta melakukan checksum untuk memastikan tidak adanya error yang terjadi ketika membaca dan menuliskan data dari disk menuju internal buffer. Bila tidak ada terjadi error maka DMA chip dapat  memulai untuk melakukan transfer. DMA chip akan melakukan request kepada disk controller untuk melakukan transfer data menuju main memory (RAM). Selama melakukan transfer menuju memory akan terjadi bus cycle, dan setiap kali selesai menuliskan data pada memory, disk controller akan mengirim suatu sinyal (acknowledgement signal) pada DMA chip. Kemudian DMA chip akan menaikkan alamat memory untuk digunakan dan melakukan pengurangan pada counter bit data. Proses dari DMA chip melakukan request sampai disk controller mengirimkan sinyal kembali pada DMA chip akan terus berlangsung hingga counter mencapai 0. Ketika counter mencapai 0, maka DMA chip akan melakukan interupt dan memberitahukan pada CPU bahwa proses transfer sudah selesai. Semua transfer data dan sinyal ini dikirimkan melalui suatu bus yang menghubungkan CPU, DMA chip (controller), Disk controller dan main memory.


Hasil gambar untuk CARA KERJA DMA


 3.KELEBIHAN 
Adapun beberapa kelebihan dari Direct Memory Access (DMA) adalah sebagai berikut :
Dapat menirukan sebagian fungsi processor.
Dapat mengambil alih fungsi processor yang berhubungan dengan transfer data.
CPU dapat melakukan manajemen operasi baca tulis (transfer data) dengan baik dan juga dapat menyelesaikan instruksi lain.
Mendapat informasi tentang jumlah data bit yang ditransfer , alamat dari device dan memory yang diperlukan dan arah dari aliran data.

 4.KEKURANGAN 
Jika ada kelebihan kemungkinan ada juga kekurangan. Adapun beberapa kekurangan dari Direct Memory Access (DMA) adalah sebagai berikut :
Transfer rate data terbatas
Masih memerlukan keterlibatan CPU, sehingga CPU menjadi lebih sibuk.



5.Cara Kerja DMA


Hasil gambar untuk CARA KERJA DMA


               6.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 ditransfer
CPU mengeksekusi program lain
DMA controllermengirimkan 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

Cycle Stealing di DMA
Cycle Stealing di DMA

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
CPUhanya 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







Komentar

Postingan populer dari blog ini

PENJELASAN GAMBAR WITH A DMA CONTROLLER