tugas 3
Nama : sarwan
Nim : 8040170273
Kelas : 06PSP

DMA (Direct Memory Access)
DMA
(Direct Memory Access) adalah suatu hardware spesial (chip) yang dapat
mengontrol aliran bit data antara memory (RAM) dan beberapa controller
dari I/O devices tanpa memerlukan interferensi dari CPU secara terus
menerus. (Mengakses dan mengontrol memori sistem tanpa interferensi CPU
secara terus menerus).
Fungsi dari DMA sendiri adalah agar 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.
DMA chip atau DMA controller sangat beragam tergantung dari teknologi yang ditanamkan padanya, untuk menjelaskan cara kerjanya akan digunakan jenis yang paling sederhana, yaitu DMA chip yang menangani sebuah transfer setiap waktunya. Berikut ini cara kerjanya:
Pertama CPU akan memprogram atau mengeset DMA chip dengan mengatur registerinya, agar DMA chip mengetahui apa saja yang perlu ditransfer dan kemana informasi tersebut perlu ditransfer. Selain itu CPU juga akan memberikan command atau perintah pada disk controller untuk membaca data dari disk dan menuliskannya pada internal buffer, serta melakukan checksum untuk memastikan tidak adanya error yang terjadi ketika membaca dan menuliskan data dari disk menuju internal buffer. Bila tidak ada terjadi error maka DMA chip dapat memulai untuk melakukan transfer. DMA chip akan melakukan request kepada disk controller untuk melakukan transfer data menuju main memory (RAM). Selama melakukan transfer menuju memory akan terjadi bus cycle, dan setiap kali selesai menuliskan data pada memory, disk controller akan mengirim suatu sinyal (acknowledgement signal) pada DMA chip. Kemudian DMA chip akan menaikkan alamat memory untuk digunakan dan melakukan pengurangan pada counter bit data. Proses dari DMA chip melakukan request sampai disk controller mengirimkan sinyal kembali pada DMA chip akan terus berlangsung hingga counter mencapai 0. Ketika counter mencapai 0, maka DMA chip akan melakukan interupt dan memberitahukan pada CPU bahwa proses transfer sudah selesai. Semua transfer data dan sinyal ini dikirimkan melalui suatu bus yang menghubungkan CPU, DMA chip (controller), Disk controller dan main memory. Berikut ini gambar untuk mempermudah penjelasan:
Kegunaan
DMA
2.https://taryainunhannif.blogspot.com/.../normal-0-false-false-false-in-x-none- x_42.ht..
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.
Cara
Kerja DMA
1. CPU
mengirimkan CPU data-data berikut ini ke DMA
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)
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
4
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
5 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.
a. HALT
atau Burst Mode DMA ialah DMA yang memegang kontroldari sistem bus dan
menstransfer semua blok data dari memori ke single burst atau sebaliknya,
b. 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.
6
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.
7
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.
Referensi:
1. ryuuran123.blogspot.com/2011/03/dma-direct-memory-access.html

Komentar
Posting Komentar