Halaman

Senin, 05 November 2018

“DATA TRANSFER WITH DMA CONTROLLER”

“DATA TRANSFER WITH DMA CONTROLLER”

A.   Pengertian Dma (Direct Memory Access)
Direct memory access (DMA) adalah suatu alat pengendali khusus disediakan untuk memungkinkan transfes blok data langsung antar perangkat eksternal dan memori utama, tanpa intervensi terus menerus dari prosesor. Transfer DMA dilakukan oleh sirkuit kontrol yang merupakan bagian dari antar muka perangkat I/O. Istilah ini yang sering banyak kita ketahui adalah sebagai kontroler DMA. Kontroler DMA melakukan fungsi yang biasanya dilakukan oleh prosesor pada saat mengakses memori utama (yang sering disebut :RAM). Untuk setiap word yang ditransfer, kontroler ini menyediakan alamat memori dan semua sinyal bus yang mengontrol transfer data. Karena harus mentransfer sejumlah blok data, maka kontroler DMA harus menaikkan alamat memori untuk word yang berurutan dan mencatat jumlah transfer.

Sekalipun kontroler DMA dapat mentransfer data tanpa intervensi dari prosesor, operasinya tetap berada dibawah kontrol program yang dieksekusi oleh prosesor. Untuk menginisiasi transfer suatu blok word, prosesor mengirim alamat awal, jumlah word dalam blok, dan arah transfer. Pada saat seluruh blok telah ditransfer, kontroler tersebut memberitahu prosesor dengan memunculkan sinyal interupt. Pada saat transfer DMA terjadi, program yang meminta transfer tersebut berhenti bekerja dan prosesor dapat digunakan untuk mengeksekusi program lain. Setelah transfer DMA selesai, prosesor dapat kembali ke program yang meminta transfer tersebut.

Operasi I/O selalu dilakukan oleh OS sebagai respon terhadap request dari program aplikasi. OS juga bertanggung jawab untuk menunda eksekusi satu program dan memulai eksekusi program lain. Sehingga, untuk operasi I/O yang melibatkan DMA, OS menetapkan program yang meminta transfer tsb pada keadaan blocked, menginisiasi operasi DMA, dan memulai eksekusi program lain. Pada saat transfer selesai, kontroler DMA memberitahu prosesor dengan mengirim interupt request. Sebagai responnya, OS menetapkan program yang ditunda ke keadaan runnable sehingga dapat dipilih oleh scheduler untuk melanjutkan eksekusi.


     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.


DMA (Direct Memory Access) adalah suatu hardware spesial (chip) yang dapat mengontrol aliran bit data antara memory (RAM) dan beberapa controller dari I/O devices tanpa memerlukan interferensi dari CPU secara terus menerus. (Mengakses dan mengontrol memori sistem tanpa interferensi CPU secara terus menerus).

B.  Cara Kerja 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
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.




Tidak ada komentar:

Posting Komentar