DMA (Direct Memory Access)

Definisi

DMA adalah sebuah prosesor khusus (special purpose processor) yang berguna untuk menghindari pembebanan CPU utama oleh program I/O (PIO).
Transfer DMA
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 alamat- alamat pada bus tersebut untuk melakukan transfer tanpa bantuan CPU.

Tiga langkah dalam transfer DMA:

  1. Prosesor menyiapkan DMA transfer dengan menyedia kan data-data dari perangkat, operasi yang akan ditampilkan, alamat memori yang menjadi sumber dan tujuan data, dan banyaknya byte yang ditransfer.
  2. Pengendali DMA memulai operasi (menyiapkan bus, menyediakan alamat, menulis dan membaca data), sampai seluruh blok sudah di transfer.
  3. Pengendali DMA meng-interupsi prosesor, dimana selanjutnya akan ditentukan tindakan berikutnya.

Pada dasarnya, DMA mempunyai dua metode yang berbeda dalam mentransfer data. Metode yang pertama adalah metode yang sangat baku dan sederhana disebut HALT, atau Burst Mode DMA, karena pengendali DMA memegang kontrol dari sistem bus dan mentransfer semua blok data ke atau dari memori pada single burst. Selagi transfer masih dalam prosres, sistem mikroprosessor di-set idle, tidak melakukan instruksi operasi untuk menjaga internal register. Tipe operasi DMA seperti ini ada pada kebanyakan komputer.
Metode yang kedua, mengikut-sertakan pengendali DMA untuk memegang kontrol dari sistem bus untuk jangka waktu yang lebih pendek pada periode dimana mikroprosessor sibuk dengan operasi internal dan tidak membutuhkan akses ke sistem bus. Metode DMA ini disebut cycle stealing mode. Cycle stealing DMA lebih kompleks untuk diimplementasikan dibandingkan HALT DMA, karena pengendali DMA harus mempunyai kepintaran untuk merasakan waktu pada saat sistem bus terbuka.
Handshaking
Proses handshaking antara pengendali DMA dan pengendali perangkat dilakukan melalui sepasang kabel yang disebut DMA-request dan DMA-acknowledge. Pengendali perangkat mengirimkan sinyal melalui DMA-request ketika akan mentransfer data sebanyak satu word. Hal ini kemudian akan mengakibatkan pengendali DMA memasukkan alamat-alamat yang dinginkan ke kabel alamat memori, dan mengirimkan sinyal melalui kabel DMA-acknowledge. Setelah sinyal melalui kabel DMA-acknowledge diterima, pengendali perangkat mengirimkan data yang dimaksud dan mematikan sinyal pada DMA-request.
Hal ini berlangsung berulang-ulang sehingga disebut handshaking. Pada saat pengendali DMA mengambil alih memori, CPU sementara tidak dapat mengakses memori (dihalangi), walau pun masih dapat mengaksees data pada cache primer dan sekunder. Hal ini disebut cycle stealing, yang walau pun memperlambat komputasi CPU, tidak menurunkan kinerja karena memindahkan pekerjaan data transfer ke pengendali DMA meningkatkan performa sistem secara keseluruhan.
Cara-cara Implementasi DMA
Dalam pelaksanaannya, beberapa komputer menggunakan memori fisik untuk proses DMA , sedangkan jenis komputer lain menggunakan alamat virtual dengan melalui tahap “penerjemahan” dari alamat memori virtual menjadi alamat memori fisik, hal ini disebut Direct Virtual-Memory Address atau DVMA. Keuntungan dari DVMA adalah dapat mendukung transfer antara dua memori mapped device tanpa intervensi CPU.
Daftar Pustaka
[Silberschatz2002] Abraham Silberschatz, Peter Galvin, dan Greg Gagne, 2002, Applied Operating Systems: Sixth Edition, Edisi Keenam, John Wiley & Sons.
[Stallings2001] William Stallings, 2001, Operating Systems: Internal and Design Principles: Fourth Edition, Edisi Keempat, Prentice-Hall International.
[Tanenbaum1992] Andrew Tanenbaum, 1992, Modern Operating Systems: First Edition, Edisi Pertama, Prentice-Hall.

2 thoughts on “DMA (Direct Memory Access)

  1. <<>>

    hi sobat apa kabar? dah lama ne ane gak ada jalan ke sini.

    Berhubung domain co.cc dibanned oleh Google dan blog ane salah satunya yang terkena imbasnya, maka ane memberitahukan ke sobat untuk mengganti alamat link ane di blog sobat, dan jika blog ane belum terpasang di sini mohon dipasang kembali karena blog sobat sudah lama terpasang di blog ane (Silahkan ceck).

    Blog ane yang diganti linknya adalah :

    semula blog ane yang beralamat http://www.manrengat.co.cc/ (dengan Ancor Text : Man Rengat / Tutorial Blog Terbaru) mohon diganti alamatnya dengan http://mankita.blogspot.com/.

    Sekaligus ane pengen juga bertukar link sama sobat dengan blog baru ane yang lain, dan tentunya blog sobat juga sudah terpasang di blog ane tersebut.

    Blog ane yang baru yaitu :

    Blog Bahasa Indonesia :

    Investasi SAHAM

    Bisnis Forex

    Cara Sukses

    Blog Bahasa Inggris (Baru belajar Bahasa Ingris Sob, heheheh) :

    NeGeri Technology

    Lifestyle For you

    Game Community

    Mohon dipasang semua link blog ane, Code Link bisa sobat dapatkan dengan mengunjungi blog tersebut. Jika sobat keberatan untuk bertukar link dengan blog ane yang lain (Selain http://mankita.blogspot.com/), silahkan beritahu ane.

    Sebelumnya ane minta maaf kawan, link blog ane banyak banget (Maklum kawan, ane pengen bunya banyak blog/website seperti master2 blog yang bisa digunakan untuk ladang $$ , hehehehe)

    atas kerja samanya ane ucapkan terima kasih.

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s