Direct
Memory Access (DMA)
DMA (Direct Memory Acces) ialah sebuah
prosessor khusus (spesial purpose
processor) yang berguna untuk menghindari pembebanan CPU utama oleh program
I/O. DMA (Direct Memory Acces) ialah suatu alat pengendali khusus disediakan
untuk memungkinkan transfer blok data langsung antar perangkat eksternal dan
memori utama, tanpa intervensi terus menerus dari prosessor.
Penjelasan dari setiap
nomor pada gambar di atas adalah :
- 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.
- Data bantuan Bus dikembalikan ke DMA controller dari Hold mengakui (HLDA) pin (aktif tinggi) pada mikroprosesor 8086.
- 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 sinyalantarmuka 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 menjadi Rendah.
Transfer DMA dilakukan
oleh sirkuit kontrol yang merupakan bagian dari antar muka perangkat I/O.
Istilah ini yang sering banyak kita ketahui adalah sebagai kontroler DMA.
Kontroler DMA melakukan fungsi yang biasanya dilakukan oleh prosesor pada saat
mengakses memori utama (yang sering disebut :RAM). Untuk setiap word yang
ditransfer, kontroler ini menyediakan alamat memori dan semua sinyal bus yang
mengontrol transfer data. Karena harus mentransfer sejumlah blok data, maka
kontroler DMA harus menaikkan alamat memori untuk word yang berurutan dan
mencatat jumlah transfer.
Sekalipun kontroler DMA dapat mentransfer
data tanpa intervensi dari prosesor, operasinya tetap berada dibawah kontrol
program yang dieksekusi oleh prosesor. Untuk menginisiasi transfer suatu blok
word, prosesor mengirim alamat awal, jumlah word dalam blok, dan arah transfer.
Pada saat seluruh blok telah ditransfer, kontroler tersebut memberitahu
prosesor dengan memunculkan sinyal interupt. Pada saat transfer DMA terjadi,
program yang meminta transfer tersebut berhenti bekerja dan prosesor dapat
digunakan untuk mengeksekusi program lain. Setelah transfer DMA selesai,
prosesor dapat kembali ke program yang meminta transfer tersebut.
Operasi I/O selalu dilakukan oleh OS
sebagai respon terhadap request dari program aplikasi. OS juga bertanggung
jawab untuk menunda eksekusi satu program dan memulai eksekusi program lain.
Sehingga, untuk operasi I/O yang melibatkan DMA, OS menetapkan program yang
meminta transfer tsb pada keadaan blocked, menginisiasi operasi DMA, dan
memulai eksekusi program lain. Pada saat transfer selesai, kontroler DMA
memberitahu prosesor dengan mengirim interupt request. Sebagai responnya, OS
menetapkan program yang ditunda ke keadaan runnable sehingga dapat dipilih oleh
scheduler untuk melanjutkan eksekusi.
Prinsip kerja DMA :
- CPU akan mendelegasikan kerja I/O kepada DMA
- CPU hanya akan terlibat pada awal proses untuk memberikan instruksi lengkap pada DMA dan akhir proses saja
- CPU dapat menjalankan proses lainnya tanpa banyak terganggu dengan interupsi
- Melaksanakan transfer data secara mandiri :
- DMA memerlukan pengambil alihan kontrol bus dari CPU
- DMA akan menggunakan bus bila CPU tidak menggunakannya atau DMA memaksa CPU untuk menghentikan sementara penggunaan bus
- Teknik cyclestealing, modul DMA mengambil alih siklus bus.
REFERENSI

Tidak ada komentar:
Posting Komentar