tugas ke 3

Penjelasan Direct Memory Acces (DMA)

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 (CPU).


fungsi modul DMA:

  • Dapat menirukan sebagian fungsi processor
  • Dapat mengambil alih fungsi prosesor yang berhubungan dengan transfer data
Kapan DMA bekerja?
  • Saat prosesor sedang tidak menggunakan bus
  • saat prosesor dipaksa berhenti sesaat (suspend) , siklus "dicuri oleh DMA" adalaah cycle stealing

  Kegunaan DMA
       DMA memiliki kegunaan sebagai berikut :
1.         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.
2.         membebaskan pemroses menunggui transfer data yang dilakukan perangkat I/O.
 Saat pemroses ingin membaca atau menulis data, pemroses memerintahkan DMA controller dengan mengirim informasi berikut :
           Perintah penulisan/pembacaan.
           Alamat perangkat I/O.
           Awal lokasi memori yang ditulis/dibaca.
           Jumlah word (byte) yang ditulis/dibaca.
 Setelah mengirim informasi-informasi itu ke DMA controller, pemroses
dapat melanjutkan kerja lain. Pemroses mendelegasikan operasi I/O ke DMA.
DMA mentransfer seluruh data yang diminta ke/dari memori secara langsung
 tanpa melewati pemroses. Ketika transfer data selesai, DMA mengirim
 sinyal interupsi ke pemroses. Sehingga pemroses hanya dilibatkan pada
 awal dan akhir transfer data. Operasi transfer antara perangkat dan
 memori utama dilakukan sepenuhnya oleh DMA lepas dari pemroses dan hanya
 melakukan interupsi bila operasi telah selesai.
3. Supaya 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.
4. Dma digunakan intra-chip untuk transfer data dalam multi-core, terutama dalam sistem multiprocessor-on-chip, di mana elemen-nya adalah proses yang dilengkapi dengan memori lokal (sering disebut alas memori) dalam sebuah elemen pemrosesan multi-core processor dapat mentransfer data ke dan dari memori tanpa menempati prosesor waktu, mesin dan membuat data tumpang tindih.
5.  DMA digunakan untuk mentransfer data antara lokal memori dan memori utama.
 Komputer yang ada DMA channel dapat mentransfer data dari dan ke perangkat dengan CPU overhead jauh lebih sedikit daripada komputer tanpa saluran DMA . Demikian pula di
Seperti yang telah disebutkan , 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 digunakan intra-chip untuk transfer data dalam multi-core, terutama dalam sistem multiprocessor-on-chip, di mana elemen-nya adalah proses yang dilengkapi dengan memori lokal (sering disebut alas memori) dan DMA digunakan untuk mentransfer data antara lokal memori dan memori utama. Komputer yang ada DMA channel dapat mentransfer data dari dan ke perangkat dengan CPU overhead jauh lebih sedikit daripada komputer tanpa saluran DMA . Demikian pula di dalam sebuah elemen pemrosesan multi-core processor dapat mentransfer data ke dan dari memori tanpa menempati prosesor waktu, mesin dan membuat data tumpang tindih.
Transfer Data Menggunakan DMA Controller

1.     I/O interface mengirimkan DMA controller sebuah request untuk DMA service. 
2.     Bus Request dibuat untuk HOLD pin (active high) pada 8086 mikroprocessor kemudian controller mendapatkan control terhadap Bus.
3.     Isi dari Bus kemudian di kembalikan kepada DMA controller dari hold acknowledge (HLDA) pin (active high) di 8086 mikroprosesor.
4.     Controller meletakkan konten atau isi dari alamat register kedalam Bus .
5.     Controller mengirimkan sebuah balasan dari DMA kepada interface untuk meletakkan data ke dalam Bus.
6.     Data dalam bentuk byte ditransfer ke lokasi yang terindikasi oleh alamat Bus.
7.     Interface memasang data.
8.     Bus request kemudian turun, pin HOLD menurun dan Controller melepaskan Bus.
9.     Isi Bus dan mikroprosesor 8086 menurun dan pink HLDA juga menurun, alamat register naik 1 jumlah dari byte menurun 1. Jika jumlah byte nol, maka kembali ke tahap 1 jika sebaliknya maka akan berhenti.
 
Referensi
http://rezaakhmadg.blogspot.com/2012/05/direct-memory-acces-dma.html
 
https://taryainunhannif.blogspot.com/2014/02/normal-0-false-false-false-in-x-none-x_42.html
 
https://www.slideshare.net/ashwiniawatare/dma-and-dma-controller-8237


Komentar

Postingan populer dari blog ini

Sejarah Sistem Operasi pada DOS, WINDOWS, MAC, LINUX DAN ANDROID

TUGAS KE 2