DIRECT MEMORY ACCESS (DMA)

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). DMA merupakan fitur yang modern dan komputer yang memungkinkan microprocessors hardware subsystems tertentu di dalam komputer untuk mengakses memori sistem untuk membaca dan / atau menulis secara independen dari pusat pengolahan unit. Singkatnya, DMA adalah sistem yang dapat mengontrol sistem memori tanpa menggunakan CPU. Banyak sistem menggunakan perangkat keras DMA termasuk kontroler disk drive, kartu grafis, kartu jaringan, kartu suara dan GPS.

  Cara Kerja DMA

  1. CPU mengirimkan CPU data-data berikut ini ke DMA controller:
  2. Perintah read/write
  3. Alamat device yang akan diakses
  4. Alamat awal blok memori yang akan dibaca atau ditulis.
  5. Jumlah blok yang akan ditransfer.
  6.  CPU klien mengeksekusi program lain.
  7. DMA controller mengirimkan seluruh blok data (per satu word) langsung ke memori tanpa melibatkan CPU)
  8.  DMA controler mengirimkan interupt ke CPU jika telah selesai.
  9.  DMA controler mengambSupaya 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 lainnyail alih sistem bus sebanyak 1 siklus.
  10.  DMA men-transfer satu word data
  11.  Pengambil alihan bus oleh DMA bukan interrupt CPU tidak perlu menyimpan context
  12. CPU hanya tertunda sessaat satu siklus sebelum mengakses bus yaitu sebelum operan atau data diambil atau data ditulis diagram modul DMA

Konfigurasi Modul DMA

Konfigurasi I

Hanya menggunakan single bus

DMA dan modul I/O terpisah

Setiap transfer harus mengakses bus 2 kali

Konfigurasi II

Hanya menggunakan single bus

DMA controller dan modul I/O terintegrasi

satu DMA controller dapat mengangani lebih dari 1 modu I/O

Setiap transfer hanya perlu mengakses bus satu kali saja

Konfigurasi III

digunakan bus I/O secara terpisah

semua modul I/O cukup dilayani dengan sebuah DMA

Setiap transfer hanya perlu mengakses bus satu kali saja

Jalur Transfer DMA

Ada 3 langkah dalam transfer DMA

  1. Prosesor menyiapkan DMA prosesor Transfer dengan menyediakan data-data dari perangkat, operasi yang akan ditampilkan, alamat memori yang akan menjadi sumber, tujuan data, dan banyaknya byte yang akan ditransfer.
  2. Pengendali DMA memulai operasi dengan menyiapkan bus,menyediakan alamat, menulis, dan membaca data sampai seluruh blok sudah ditransfer.
  3. Pengendali DMA menginterupsi prosesor, dimana selanjutnya akan ditentukan tindakan berikutnya.
  • Pada dasarnya, DMA mempunyai 2 metode untuk transfer data.

 

  1. HALT atau Burst Mode DMA ialah DMA yang memegang kontroldari sistem bus dan menstransfer semua blok data dari memori ke single burst atau sebaliknya,
  2. CYCLE STEALING DMA pada metode ini mengikutsertakan pengendali DMA untuk memegang kontrol dari sistem bus untuk jangka waktu yang lebih pendek pada periode dimana mikroprosesor sibuk dengan operasi internal dan tidak membutuhkan akses ke sistem bus.

Kelemahan DMA

Tanpa DMA, diprogram menggunakan input / Output (PIO) mode untuk berkomunikasi dengan perangkat pinggiran, atau menggunakan / menyimpan instruksi dalam kasus multicore chips,CPU biasanya penuh diduduki untuk seluruh durasi dari operasi membaca atau menulis, dan dengandemikian tidak tersedia untuk melakukan pekerjaan lain. Dengan DMA, CPU akan melakukan transfer, lakukan operasi lainnya sementara transfer yang sedang berlangsung, dan menerima mengganggu dari DMA controller setelah operasi telah selesai. Hal ini sangat berguna dalam real-time komputasi di mana aplikasi tidak stalling belakang yg berbarengan operasi adalah penting. Dan aplikasi lain yang berhubungan dengan berbagai daerah adalah bentuk streaming pemrosesan dimana perlu ada pengolahan data dan transfer paralel, untuk mencapai throughput memadai.

 Hubungan DMA dengan Input dan Output

Hubungan antara CPU dengan main memory ataupun dengan alat-alat input atau output dilakukan dengan suatu jalur yang di sebut dengan bus. Hubungan antara CPU dengan main memory melalui jalur bus yang dilekatkan pada memory data register, memory address register dan control unit di CPU. Sedangkan bus yang menghubungkan CPU dengan alat-alat input/output tidak dilekatkan langsung ke alat-alat input/output tersebut, tapi dapat melalui suatu alat port atau DMA controller atau channel.

  

Pengertian bus

Bus merupakan jalur penghubung antar alat pada computeryang berfungsi untuk memindahkan data antar bagian- bagian dalam sistem komputer. Data dipindah kan dari piranti masukan ke CPU, CPU ke memori, atau dari memori ke piranti keluaran. Bus meruppakan jalur komunikasi yang di bagi pemakai suatu set kabel tunggal yang digunakan untuk menghubungkan berbagai subsistem.Sistem bus adalah sebuah bus yang menghubungkan komponen-komponen utama komputer (CPU, Memori, I/O). Sistem bus adalah penghubung bagi keseluruhan komponen kompute rdalam menjalankan tugasnya

TRANSFER DATA MENGGUNAKAN DMA CONTROLLER

DMA.jpg

  1. I/O Interface mengirimkan DMA Controlersebuah request untuk DMA service yaitu data dari I/O Interface melalui modul I/O yang bertanggung jawab atas pengontrolan sebuah perangkat luarmmenuju Direct memory access.
  2. DMA mengendalikan transfer blok data langsungmelalui Control BUS kepada HOLD yang akan menghentikan kegiatan dan melepas bus yang berhubungan dengan unit memoridan I/O Sehingga hal ini memberikankesempatanbagi proses lain untuk mengambilalih system. Kemudian data yang di alihkanoleh HOLD akandiprosesdandiolaholehsebuahotakdari computer yaitu Central Processing Unit (CPU).
  3. Ketiga, Kemudian CPU mengirimkan Sinyal yang digunakan sebagai pengakuan dari µP bahwa sinyal HOLD telah diterima dan sistem dapat diambil alih oleh prosesor lain. Data akan dikirim melalui Control BUS menuju Memori address register untuk penyimpanan informasi yang harus diatur dan di jaga sebaik-baiknya.
  4.  Data yang telahdiaturdandijagaoleh MAR akandikirimkanmelalui Address BUS menuju Direct memory access control. Untuksetiap word yang ditransfer, kontroler ini menyediakan alamat memori dan semua sinyal bus yang mengontrol transfer data.
  5. Karena DMAC harus mentransfe rsejumlah blok data, maka kontr oler DMA harus menaik kan alamat memori untuk word yang beru rutan dan mencatat jumlah transfer. Alamat memori ini akan melakukan pertukaran data antara perangkat luar dilanjutkan kepada Modul I/O.
  6.  Data dalam bentuk byte ditransfer kelokasi memori yang terindikasi oleh alamat Bus.
  7.   Interface memasang datanya .
  8. Bus request kemudian turun melalui Control BUS, Pin HOLD turundan controller melepaskan Bus masukpada Central Processing Unit.
  9. Isi Bus darimicroprosesor 8086 menurundan Pin HLDA jugaturun, alamat register naik satu jumlah dari byte turun satu. jika jumlah byte bukan 0, kembali ketahap 1 jika sebaliknya maka berhenti.

Sumber : https://taryainunhannif.blogspot.com/2014/02/normal-0-false-false-false-in-x-none-x_42.html

DIRECT MEMORY ACCESS (DMA)

Tinggalkan komentar