Rabu, 31 Oktober 2018

Direct Memory Access (DMA)







DMA ialah sebuah prosesor khusus (special purpose processor) yang berguna untuk menghindari pembebanan CPU utama oleh program I/O (PIO). Untuk memulai sebuah transfer DMA, host akan menuliskan sebuah DMA command block yang berisi pointer yang menunjuk ke sumber transfer, pointer yang menunjuk ke tujuan transfer, dan jumlah byte yang ditransfer, ke memori. CPU kemudian menuliskan alamat command block ini ke pengendali DMA, sehingga pengendali DMA dapat kemudian mengoperasikan bus memori secara langsung dengan menempatkan alamatalamat pada bus tersebut untuk melakukan transfer tanpa bantuan CPU.

Pada dasarnya, DMA mempunyai dua metode yang berbeda dalam mentransfer data. Metode yang pertama ialah metode yang sangat baku dan sederhana disebut HALT, atau Burst Mode DMA, karena pengendali DMA memegang kontrol dari sistem bus dan mentransfer semua blok data ke atau dari memori pada single burst. Selagi transfer masih
dalam prosres, sistem mikroprosessor diset idle, tidak melakukan instruksi operasi untuk menjaga internal register. Tipe operasi DMA seperti ini ada pada kebanyakan komputer.
Metode yang kedua, mengikutsertakan pengendali DMA untuk memegang kontrol dari sistem bus untuk jangka waktu yang lebih pendek pada periode dimana mikroprosessor sibuk dengan operasi internal dan tidak membutuhkan akses ke sistem bus. Metode DMA ini disebut cycle stealing mode. Cycle stealing DMA lebih kompleks untuk diimplementasikan
dibandingkan HALT DMA, karena pengendali DMA harus mempunyai kepintaran untuk merasakan waktu pada saat sistem bus terbuka. 





Berikut adalah urutan yang terjadi selama proses transfer byte data terkirim dari antar muka ke memory:
  1.  I/Ointerface mengirimkan DMA conteller sebuahrequest untuk DMA service yaitu dat dari I/O interface melalui modul I/O yang bertanggung jawab atas pengontrolan sebuah perangkat luar menuju direct memory access
  2. Request bus dibuat dengan hold pin(Active high) pada prosessor 8o86 microprosessor dan controller mendapat pengendalian terhadap bus. DMA mengendalikan trasnfer blok data langsung melalui control bus kepada hold yang akan menghentikan kegiatan dan melepas bus yang terhubung  dengan unit memory dan I/O, sehingga hal ini memberikan kesempatan bagi proses lain untuk mengambil ahli sistem. Kemudian data yang di ahlikan oleh hold akan di proses dan di olah kembali oleh sebuah otak dari komputer yaitu CPU.
  3. Kemudian CPU mengirimkam signalyang digunakan sebagai pengakuan dari µP bahwa signal hold telah diterima dan sistem dapat diambil ahli oleh prosessor lain. Data akan dikirim melalui control bus menuju memory address registrasi ntuk menyimpan informasi.
  4. Data yang telah di atur dan di jaga  oleh MAR akan dikirim melaiu address BUS menujudirect memory access control. Untuk setiap word yag di trasnfer, kontroller ini menyediakan alamat meory dan semua signal bus yang mengontrol tran fer data .
  5. Karena DMAC harus meneransfer sejumlah blok data, maka controller DMA harus menaikanalamat memory untuk word yang berurutan dan menncata jumlah transfer. Almat memory ini akan melakukan pertukaran data antar perangkat luat dilanjutkan kepada modul I/O.
  6.  Data dalam bentk byte di transfer ke lokasi memory yang terindikasi oleh alamat bus.
  7.  Interface memasang data.
  8. Bus request kemudian turun melalui control bus, pin hold turun dan controller melepaskan bus masuk pada sentral processing unit.
  9.  Isi bus dari microprosesor 8086mmenurun dan pin HLDA juga turun, alamat registrasi naik satu jumlah dari byte turun satu. Jika jumlah byte bukan 0, kembali terhadap 1 jika sebaliknya maka berhenti.



Kelemahan I/O terprogram dan Interrupt- Driven I/O
Proses yang terjadi pada modul I/O masih melibatkan CPU secara langsung, berimplikasi pada :
  •  Kelajuan transfer I/O yang tergantung kecepatan operasi CPU.
  •  Kerja CPU terganggu karena adanya interupsi secara langsung


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 :
  1. DMA memerlukan pengambilalihan kontrol bus dari CPU
  2. DMA akan menggunakan bus bila CPU tidak menggunakannya atau DMA memaksa CPU untuk menghentikan sementara penggunaan bus
  3. Teknik cyclestealing, modul DMA mengambil alih siklus bus


Klasifikasi perangkat eksternal
  •      Human Readable, yaitu perangkat yang berhubungan dengan manusia sebagai pengguna komputer. Contoh: monitor, keyboard, mouse, printer, joystick, disk drive.
  •         Machine readable, yaitu perangkat yang berhubungan dengan peralatan. Biasanya berupa modul sensor dan tranduser untuk monitoring dan kontrol suatu peralatan atau sistem
  •      Communication, yatu perangkat yang berhubungan dengan komunikasi jarak jauh. Contoh:NIC dan modem


Klasifikasi berdasar arah data
1.    Perangkat output
2.    Perangkat input
3.    Kombinasi output-input.
Contoh perangkat output: monitor, proyektor dan printer.
Contoh perangkat input : keyboard, mouse, joystick, scanner, mark reader, bar code reader





Referensi:


Tidak ada komentar:

Posting Komentar