tugas ke 3
Penjelasan Direct Memory Acces (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 (CPU).
fungsi modul DMA:
Kegunaan DMA
1. I/O interface mengirimkan DMA controller
sebuah request untuk DMA service.
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 (CPU).
fungsi modul DMA:
- Dapat menirukan sebagian fungsi processor
- Dapat mengambil alih fungsi prosesor yang berhubungan dengan transfer data
- Saat prosesor sedang tidak menggunakan bus
- saat prosesor dipaksa berhenti sesaat (suspend) , siklus "dicuri oleh DMA" adalaah cycle stealing
Kegunaan DMA
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.
Transfer Data Menggunakan
DMA Controller
2. Bus Request dibuat untuk HOLD pin (active
high) pada 8086 mikroprocessor kemudian controller mendapatkan control terhadap
Bus.
3. Isi dari Bus kemudian di kembalikan kepada
DMA controller dari hold acknowledge (HLDA) pin (active high) di 8086
mikroprosesor.
4. Controller meletakkan konten atau isi dari
alamat register kedalam Bus .
5. Controller mengirimkan sebuah balasan dari
DMA kepada interface untuk meletakkan data ke dalam Bus.
6. Data dalam bentuk byte ditransfer ke lokasi
yang terindikasi oleh alamat Bus.
7. Interface memasang data.
8. Bus request kemudian turun, pin HOLD
menurun dan Controller melepaskan Bus.
9. Isi Bus dan mikroprosesor 8086 menurun dan
pink HLDA juga menurun, alamat register naik 1 jumlah dari byte menurun 1. Jika jumlah
byte nol, maka kembali ke tahap 1 jika sebaliknya maka akan berhenti.
Referensi
http://rezaakhmadg.blogspot.com/2012/05/direct-memory-acces-dma.html
https://taryainunhannif.blogspot.com/2014/02/normal-0-false-false-false-in-x-none-x_42.html
https://www.slideshare.net/ashwiniawatare/dma-and-dma-controller-8237
Komentar
Posting Komentar