Penjelasan DMA (Direct Memory Acces)
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).
Diperlukan DMA untuk programmed I/O dan interrupt driver I/O, DMA menjadi solusi
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).
Diperlukan DMA untuk programmed I/O dan interrupt driver I/O, DMA menjadi solusi
·
Masih memerlukan keterlibatan CPU, CPU menjadi sibuk
·
Transfer rate data terbatas
Digunakan modul khusus(hardware)
yang terhubung ke sistem bus
Fungsi modul DMA:
Fungsi modul DMA:
·
Dapat menirukan sebagian fungsi processor
·
Dapat mengambil alih fungsi prosesor yang berhubungan
dengan transfer data
Kapan DMA
bekerja?
·
Saat prosesor sedang tidak menggunakan bus
·
Saat prosesor dipaksa berhenti sesaat (suspend) ,
siklus "dicuri oleh DMA" adalaah cycle stealing
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
Konfigurasi
pada 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
Kelebihan
DMA :
- Dapat menirukan sebagian fungsi processor
- Dapat mengambil alih fungsi prosesor yang berhubungan dengan transfer data
- CPU dapat melakukan manajemen operasi baca tulis (transfer data) dengan baik dan juga dapat menyelsaikan instruksi yang lain.
- Mendapat informasi tentang jumlah data bit yang ditransfer, alamat dari device dan memory yang diperlukan dan arah dari aliran data.
Kekurangan
DMA :
- Transfer rate data terbatas
- Masih memerlukan keterlibatan CPU, Sehingga CPU menjadi lebih sibuk
PENJELASAN
GAMBAR DIATAS :
1.
Antarmuka mengirim DMA controller permintaan
untuk layanan DMA
2.
Permintaan Bus dibuat ke pin HOLD (Aktif Tinggi)
pada mikroprosesor 8086 dan kontrol kontrol pengendali bus
3.
Isi Bus
dikembalikan ke pengontrol DMA dari pin Hold Acknowledge (HILDA) (aktif High)
pada mikroprosesor 8086
4.
Pengontrol DMA menempatkan isi register alamat
ke bus alamat
5.
Pengontrol mengirim antarmuka pengakuan DMA,
yang memberitahu antarmuka untuk meletakkan data pada bus data. (Untuk output,
ini menandakan antarmuka untuk mengunci data berikutnya yang ditempatkan di bus)
6.
Data byte ditransfer ke lokasi memori yang
ditunjukkan oleh bus alamat
7. Antarmuka mengaitkan data
8.
Permintaan bus dijatuhkan, pin HOLD pergi
Rendah, dan pengendali melepaskan bus
9.
Isi bus
dari mikroprosesor 8086 dijatuhkan dan pin HLDA menjadi rendah. Register alamat
bertambah 1. Jumlah byte
dikurangi dengan 1. Jika jumlah byte tidak nol, kembali ke
langkah 1, jika tidak hentikan.
REFERENSI
Translate by : Google Translate.




Komentar
Posting Komentar