DMA ( Direct Memory Access )


Direct Memory Access (DMA)  

Direct Memory Access (DMA) 
    Sebuah fitur yang memungkinkan sebuah hardware tambahan pada system bus untuk membantu I/O device/process mengakses main memory secara langsung tanpa harus menunggu perintah CPU, sehingga CPU dapat digunakan untuk process lain. Hardware tambahan ini umumnya disebut DMA module.

PENGERTIAN I/O INTERFACE
     I/O interface adalah peralatan yang dimana informasi dapat masuk  dan keluar dari perangkat seperti computer. Dalam komputasi input output adalah komunikasi antara system pengolahan informasi dan dunia luar. Input adalah sinyal atau data yang diterima oleh system dan output adalah sinyal atau data yang dikirim dari itu. Contoh alat input yaitu keyboard , mouse , scanner, joystick , camera digital, bar code reader, webcam . dan contoh dari alat output adalah monitor, printer,  proyektor, dan speaker.

HOLD

    Ini menunjukkan jika ada perangkat lain yang meminta penggunaan alamat dan bus data. Pertimbangkan dua perangkat periferal. Salah satunya adalah LCD dan konverter Analog ke Digital lainnya. Misalkan jika konverter analog ke digital menggunakan alamat dan bus data dan jika LCD meminta penggunaan alamat dan bus data dengan memberikan sinyal HOLD, maka mikroprosesor mentransfer kontrol ke LCD segera setelah siklus saat ini berakhir. Setelah proses LCD selesai, kontrol ditransfer kembali ke konverter analog dan digital.

HLDA
    HLDA adalah sinyal pengakuan untuk HOLD. Ini menunjukkan apakah sinyal HOLD diterima atau tidak. Setelah pelaksanaan permintaan HOLD, HLDA menjadi rendah.

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.

Contoh Foto DMA Controller


Penjelasan :

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

1.         Antarmuka mengirimkan DMA controller permintaan untuk layanan DMA.
2.     Permintaan bus dibuat ke pin HOLD (aktif Tinggi) pada mikroprosesor tebhe 8086 dan pengendali mendapatkan kontrol bus.
3.      Isi bus dikembalikan ke kontroler DMA dari pin HOLD Acknowledge (HLDA) (aktve High)  pada mikroprosesor 8086.
4.        Pengontrol DMA menempatkan isi register alamat ke alamat bus.
5.   Pengontrol mengirimkan antarmuka pengakuan DMA, yang memberi tahu antarmuka untuk   menempatkan bus data (untuk keluarannya memberi sinyal antarmuka untuk mengunci data   berikutnya yang ditempatkan di bus)
6.         Data dalam bentuk byte ditransfer ke lokasi memori yang ditunjukkan oleh  alamat bus.
7.         Interface mengaitkan data / memasang datanya. 
8.         Permintaan bus dijatuhkan, pin HOLD menjadi rendah, dan pengendali melepaskan bus.
9.      Isi bus dari mikroprosesor 8086 menurun dan pin HLDA menjadi turun..Register alamat   bertambah 1,Hitungan byte dikurangi 1.Jika jumlah byte tidak nol, kembali ke langkah 1,jika  tidak hentikan.


JENIS-JENIS DMA (Direct Memory Access)

Ada 2 jenis DMA, yaitu:

1.         Third−party DMA, untuk melakukan operasi transfer data menggunakan DMA controller yang ada    pada motherboard.
2.         First−party DMA (busmastering DMA). Untuk melakukan operasi transfer data dikerjakan oleh         bagian logic di interface card.

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

Kelebihan menggunakan mode DMA sangat terasa pada sistem operasi multitasking seperti Windows, Linux, UNIX, dan sebagainya. Karena transfer data akan  menghemat resource processor sehingga processor dapat mengerjakan pekerjaan lain. Keuntungan lainnya adalah kecepatan transfer data dengan menggunakan mode DMA jauh lebih cepat bila dibandingkan dengan menggunakan mode PIO.


    Sumber :


Previous
Next Post »