Walaupun
lebih efisien dibanding dengan I/O terprogram yang sederhana, interrupt driven
I/O masih memerlukan campur tangan CPU secara aktif untuk melakuakn transfer
data antara memori dengan modul I/O, dan transfer data harus melalui lintasan
via CPU. Jadi, kedua bentuk I/O mengalami dua hal yang mengganggu:
- Kelajuan transfer I/O dibatasi oleh kecepatan yang pada kecepatan itu CPU dapat menguji dan melayani perngkat.
- CPU di tentukan oleh pengaturan transfer I/O; sejumlah instruksi harus dieksekusi bagi setiap transfer I/O-nya.
Fungsi DMA
Modul
DMA mampu meniru CPU, bahkan mengambil alih kontrol sistem dari CPU. Pada aat
Cpu ingin membaca atau menulis blok data, CPU mengeluarkan perintah kemodul
DMA, dengan mengirimkan ke modul DMA informasi berikut ini:
- Read atau write yang diminta.
- Alamat perangkat I/O yng dilibatkan.
- Lokasi awal dalam memori untuk membaca atau menulis.
- Jumlah word yang akan dibaca atau ditulis.
Modul
DMA memindahkan seluruh blok data, word per word, secara langsung kememori atau
dari memori, tanpa harus melalaui CPU. Modul DMA perlu mengambil kontrol bus
agar dapat memindahkan data kememori dan dari memori. Untuk itu, modul DMA
harus hanya menggunakan bus bila CPU tidak memerlukannya. CPU berhenti sementara
selama satu siklus bus. Akibat keseluruhannya adalah menyebabkan CPU
mengeksekusi lebih lambat. Akan tetapi bagi pemindahan I/O yang wordnya
berjumlah banyak, DMA akan jauh lebih efisien dibanding dengan innterrupt
driven I/O. Jumlah siklus yang dibutuhkan dapat dapat banyak dkurangi dengan
mengintegrasikan antara modul DMA dengan fungsu-fungsi I/O.
No comments:
Post a Comment