Direct Memory Access


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:
  1. Kelajuan transfer I/O dibatasi oleh kecepatan yang pada kecepatan itu CPU dapat menguji dan melayani perngkat.
  2. 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:
  1. Read atau write yang diminta.
  2. Alamat perangkat I/O yng dilibatkan.
  3. Lokasi awal dalam memori untuk membaca atau menulis.
  4. 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