Transfer Data With DMA CONTROLLER
Selama
transfer byte masukan blok, urutan berikut terjadi sebagai byte data yang
dikirim dari antarmuka
ke memori:
1.
I/O Interface
mengirimkan DMA controller permintaan untuk layanan DMA.
2.
Permintaan
Bus dibuat ke pin HOLD (aktif Tinggi) pada CPU dan
pengendali mendapatkan Control dari bus.
3.
Permintaan
Bus dikembalikan ke DMA Controller
dari pin Hold Acknowledge (HLDA)
(Aktif Tinggi) pada CPU.
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.
4.
DMA
Controller menempatkan
isi Address Register ke Addres
Bus
5.
Controller mengirimkan I/O Interface kepada DMA , yang memberitahu I/O Interface untuk ditempatkan data pada Data Bus. (Untuk output, ini menandakan I/O
Interface untuk mengunci
data berikutnya yang ditempatkan pada Bus.)
6.
Byte data ditransfer ke lokasi memori yang
ditunjukkan oleh Address Bus.
7.
I/O Interface
mengaitkan data.
8.
Permintaan Bus diterima, pin HOLD menuju kebawah, dan Controller
melepaskan bus.
9. Diterimanya Bus
dari CPU dan
pin HLDA menjadi menurun. Jika proses selesai, DMA Controller kembali melaporkan ke
processor bahwa proses telah beres dilakukan.
Dapat disimpulkan Prinsip sederhanya : DMA controller mengambil alih kerja processor dalam memproses instruksi yang masuk melalui I/O device. Processor cukup mendapatkan laporan saja bahwa akan ada tugas yang dihandle oleh DMA controller, dan setelah beres, tinggal nunggu laporan ” tugas beres”.

Komentar
Posting Komentar