PENJELASAN
DMA (Direct Memory Access)
A. Pengertian
Direct Memory Access (DMA)
Direct
memory access (DMA) adalah metode yang memungkinkan perangkat input / output (I
/ O) untuk mengirim atau menerima data secara langsung ke atau dari memori
utama, melewati CPU untuk mempercepat operasi memori. Proses ini dikelola oleh
chip yang dikenal sebagai pengontrolDirectMemory Access Control (DMAC).
Selama
transfer blok byte masukan, urutan berikut terjadi sebagai byte data dikirim
dari I/O Interface ke memori:
- I/O Interface mengirimkan pengontrol DMA permintaan DMA layanan.
- Permintaan Bus dibuat untuk pin terus (Tinggi aktif) pada mikroprosesor 8086 dan controller kontrol keuntungan dari bus.
- Dana bantuan Bus dikembalikan ke DMA controller dari Hold mengakui (HLDA) pin (aktif tinggi) pada mikroprosesor 8086.
- Para DMA controller tempat isi alamat register ke bus alamat.
- Controller mengirimkan I/O Interface pengakuan DMA, yang memberi tau I/O Interface untuk menempatkan data pada bus data. (Untuk output itu sinyal
- Antarmuka untuk memalangi data berikutnya yang ditempatkan di bus)
- Byte data ditransfer ke lokasi memori yang ditunjukkan oleh bus alamat.
- I/O Interface Mengkaitkan data.
- Permintaan Bus terjatuh, pin HOLD pergi rendah, dan controller melepaskan bus.
- Bantuan Bus dari mikroprosesor 8086 dijatuhkan dan pin HLDA pergi Rendah.
DMA
memiliki kegunaan sebagai berikut :
- 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.
- 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.
C. Cara Kerja DMA
- CPU mengirimkan CPU data-data berikut ini ke DMA controller:
- CPU klien mengeksekusi program lain.
- DMA controller mengirimkan seluruh blok data (per satu word) langsung ke memori tanpa melibatkan CPU)
- DMA controler mengirimkan interupt ke CPU jika telah selesai.
- DMA controler mengambil alih sistem bus sebanyak 1 siklus.
- DMA men-transfer satu word data
- Pengambil alihan bus oleh DMA bukan interrupt CPU tidak perlumenyimpan context
- CPU hanya tertunda sessaat satu siklus sebelum mengakses bus yaitu sebelum operan atau data diambil atau data ditulis diagram modul DMA
D. 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
Ada 3 langkah dalam transfer DMA
- 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.
- Pengendali DMA memulai operasi dengan menyiapkan bus,menyediakan alamat, menulis, dan membaca data sampai seluruh blok sudah ditransfer.
- Pengendali DMA menginterupsi prosesor, dimana selanjutnya akan ditentukan tindakan berikutnya.
Pada
dasarnya, DMA mempunyai 2 metode untuk transfer data.
- HALT atau Burst Mode DMA ialah DMA yang memegang kontroldari sistem bus dan menstransfer semua blok data dari memori ke single burst atau sebaliknya,
- 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.
F. 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.
G. 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.
H. 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.
Referensi:

Tidak ada komentar:
Posting Komentar