DMA (Direct Access Memory)
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 adalah agar CPU dapat melakukan pekerjaan atau instruksi yang berbeda ketika melakukan operasi baca tulis dari perangkat peripheral.
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.
- Transfer rate data terbatas
- Masih memerlukan keterlibatan CPU, Sehingga CPU menjadi lebih sibuk
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:
- 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
Selama transfer blok byte masukan, urutan berikut terjadi sebagai byte data dikirim dari antarmuka ke memori:
- Antarmuka 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 Acknowledge (HLDA) pin (aktif tinggi) pada mikroprosesor 8086.
- Para DMA controller tempat isi alamat register ke bus alamat.
- Controller mengirimkan antarmuka pengakuan DMA, yang mengisahkan antarmuka untuk menempatkan data pada bus data. (Untuk output itu sinyal antarmuka untuk latch data berikutnya ditempatkan di bus.)
- Byte data ditransfer ke lokasi memori yang ditunjukkan oleh bus alamat.
- Antarmuka kait data.
- Permintaan Bus terjatuh, pin HOLD pergi rendah, dan controller relinquishes bus.
- Hibah Bus dari mikroprosesor 8086 dijatuhkan dan pin HLDA pergi Rendah.
- Register alamat bertambah oleh 1.
- Jumlah byte decremented oleh 1.
- Jika jumlah byte adalah bukan nol, kembali ke langkah 1, jika tidak berhenti.
Sumber :
Komentar
Posting Komentar