dma

5
Hamdani Syahputra – 2IA18 1. Pengertian 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. 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). Untuk setiap word yang ditransfer, kontroler ini menyediakan alamat memori dan semua sinyal bus yang mengontrol transfer data. Karena harus mentransfer sejumlah blok data, maka kontroler DMA harus menaikkan alamat memori untuk word yang berurutan dan mencatat jumlah transfer. 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. 2. Jenis-Jenis DMA Ada 2 jenis DMA, yaitu: a) Third−party DMA, untuk melakukan operasi transfer data menggunakan DMA controller yang ada pada motherboard. b) First−party DMA (busmastering DMA). Untuk melakukan operasi transfer data dikerjakan oleh bagian logic di interface card. 3. Struktur DMA Transfer data dari buffer ke memori atau sebaliknya dilakukan per-karakter.

Upload: hamdani-syahputra

Post on 04-Dec-2015

1 views

Category:

Documents


0 download

DESCRIPTION

DMA

TRANSCRIPT

Page 1: DMA

Hamdani Syahputra – 2IA18

1. Pengertian 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. 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). Untuk setiap word yang ditransfer, kontroler ini menyediakan alamat memori dan semua sinyal bus yang mengontrol transfer data. Karena harus mentransfer sejumlah blok data, maka kontroler DMA harus menaikkan alamat memori untuk word yang berurutan dan mencatat jumlah transfer.

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.

2. Jenis-Jenis DMA

Ada 2 jenis DMA, yaitu:

a) Third−party DMA, untuk melakukan operasi transfer data menggunakan DMA controller yang ada pada motherboard.

b) First−party DMA (busmastering DMA). Untuk melakukan operasi transfer data dikerjakan oleh bagian logic di interface card.

3. Struktur DMA

Transfer data dari buffer ke memori atau sebaliknya dilakukan per-karakter.

Page 2: DMA

Hamdani Syahputra – 2IA18

Dimana setiap kali transfer selalu ada interruptdari CPU sebelum dan sesudah transfer. Jika waktu untuk mentransfer satu karakter sebesar 2 µs dan sekali interrupt butuh

1ms, maka untuk mentransfer data dari memori kebuffer butuh 4 µs per karakter. Dengan menggunakan DMA transfer data dapatdilakukan secara langsung oleh device

controller per-blok tanpa ada campur tangan dari CPU. CPU hanya memberikan interrupt sebelum dansesudah transfer setiap blok.

4. Cara Kerja DMA

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 controller mengirimkan 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

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

CPU hanya 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

Page 3: DMA

Hamdani Syahputra – 2IA18

5. Konfigurasi modul DMA

a. Konfigurasi 1 (Single Bus) Hanya menggunakan single bus DMA dan modul I/O terpisah Setiap transfer harus mengakses bus 2 kali: modul I/O ke DMA kemudian DMA ke

memori Lebih lambat CPU (tertunda 2 kali)

b. Konfigurasi 2 (Single Bus, Integrated DMA-I/O) Hanya menggunakan single bus Modul I/O terintegrasi Satu DMA controller dapat menangani >1 modul I/O Setiap transfer hanya perlu mengakses bus satu kali saja DMA ke memori CPU hanya tertunda satu kali (lebih baik dari konfigurasi 1)

Page 4: DMA

Hamdani Syahputra – 2IA18

c. Konfigurasi 3 (IO Bus) Digunakan bus I/O secara terpisah Lebih hemat hardware◊Semua modul I/O cukup dilayani dengan sebuah DMA Setiap transfer hanya perlu mengakses bus satu kali saja DMA ke memori CPU hanya tertunda (lebih baik dari konfigurasi 2)

6. Proses Handshaking pada DMA

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-acknowledgediterima, 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.

7. Keuntungan menggunakan DMA:

Dapat dilihat pada operasi multiasking seperti UNIX. Transfer data dengan mode DMA akan menghemat sumberdaya CPU sehingga CPU

dapat melakukan pekerjaan yang lain. Sedangkan pada DOS (yang merupakan operasi single-tasking) harus menunggu

sampai proses selesai terlebih dahulu baru kemudian bisa menjalankan proses berikutnya

Sumber:

Page 5: DMA

Hamdani Syahputra – 2IA18

http://fajarjabrik.blogspot.com/2014/11/makalah-organisasi-komputer-direct.html#ixzz3XqvAI2Bp

http://rezaakhmadg.blogspot.com/2012/05/direct-memory-acces-dma.html