Pengertian Direct Memory Access
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.
Fungsi dari DMA sendiri adalah agar CPU dapat melakukan
pekerjaan atau instruksi yang berbeda ketika melakukan operasi baca tulis dari
perangkat peripheral. Tanpa adanya DMA
CPU akan terus sibuk melakukan operasi baca tulis (transfer data) dan tidak
dapat melakukan atau menyelesaikan instruksi yang lain. Dengan adanya DMA, CPU
cukup mempersiapkan DMA chip dengan cara memberikan beberapa informasi seperti
jumlah data bit yang ditransfer, alamat dari device dan memory yang diperlukan
dan arah dari aliran data tersebut, setelah itu DMA chip sendiri yang akan
menyelesaikannya. DMA chip akan melakukan interupt, ketika pekerjaannya sudah
selesai. Selama DMA chip melakukan tugasnya hingga munculnya interupt, CPU
dapat menyelesaikan instruksi yang lainnya.
DMA chip atau DMA controller sangat beragam tergantung dari
teknologi yang ditanamkan padanya, untuk menjelaskan cara kerjanya akan
digunakan jenis yang paling sederhana, yaitu DMA chip yang menangani sebuah
transfer setiap waktunya. Berikut ini cara kerjanya:
Pertama CPU akan memprogram atau mengeset DMA chip dengan
mengatur registerinya, agar DMA chip mengetahui apa saja yang perlu ditransfer
dan kemana informasi tersebut perlu ditransfer. Selain itu CPU juga akan
memberikan command atau perintah pada disk controller untuk membaca data dari
disk dan menuliskannya pada internal buffer, serta melakukan checksum untuk
memastikan tidak adanya error yang terjadi ketika membaca dan menuliskan data
dari disk menuju internal buffer. Bila tidak ada terjadi error maka DMA chip
dapat memulai untuk melakukan transfer.
DMA chip akan melakukan request kepada disk controller untuk melakukan transfer
data menuju main memory (RAM). Selama melakukan transfer menuju memory akan
terjadi bus cycle, dan setiap kali selesai menuliskan data pada memory, disk
controller akan mengirim suatu sinyal (acknowledgement signal) pada DMA chip.
Kemudian DMA chip akan menaikkan alamat memory untuk digunakan dan melakukan
pengurangan pada counter bit data. Proses dari DMA chip melakukan request
sampai disk controller mengirimkan sinyal kembali pada DMA chip akan terus
berlangsung hingga counter mencapai 0. Ketika counter mencapai 0, maka DMA chip
akan melakukan interupt dan memberitahukan pada CPU bahwa proses transfer sudah
selesai. Semua transfer data dan sinyal ini dikirimkan melalui suatu bus yang
menghubungkan CPU, DMA chip (controller), Disk controller dan main memory.
Tiga langkah dalam transfer DMA :
- Prosesor menyiapkan DMA transfer dengan menyedia kan data-data dari perangkat, operasi yang akan ditampilkan, alamat memori yang menjadi sumber dan tujuan data, dan banyaknya byte yang ditransfer.
- Pengendali DMA memulai operasi (menyiapkan bus, menyediakan alamat, menulis dan membaca data), sampai seluruh blok sudah di transfer
- Pengendali DMA meng-interupsi prosesor, dimana selanjutnya akan ditentukan tindakan berikutnya.
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.
No comments:
Post a Comment