PROSES TRANSFER DATA MELALUI DMA
PROSES TRANSFER DATA MELALUI DMA
﷽
السَّلاَمُ عَلَيْكُمْ وَرَحْمَةُ اللهِ وَبَرَكَاتُهُ
Kali ini saya akan menjelaskan tentang prosess transfer data melalui DMA,
Berikut penjelasannya,,, semoga bermanfaat.
Pengertian DMA (Direct Memory Access)
Sebelum kita membahas "Proses Trasfer Data Melalui DMA" ada baiknya kita memahami apa itu DMA.
DMA atau Direct Memory Access adalah suatu alat pengendali khusus
disediakan untuk memungkinkan transfer 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 tranfer data. Karena harus mentranfer sejumlah blok
data, maka kontroler DMA harus menaikkan alamat memori untuk wordyang berurutan
dan mencatatjumlah 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 (spesial 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 menunjukkan kesumbet transfer, ke
memori. CPU kemudian menuliskan alamat command block inike pengendali DMA,
sehingga pengendalian DMA dapat kemudian mengoperasikan bus memori secara
langsung dengan menempatkan alamat-alamat 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).
TRANSFER DMA (Direct Memory Access)
Ada 3 langkah dalam transfer DMA:
- Prosesor
menyiapkan DMA prosesor Transfer dengan menyediakan data-data dari perangkat,
operasi yang akan ditampilkan, alamat memori yang akan
menjadi sumber, tujuan data, dan banyaknya byte yang akan ditransfer.
- Pengendali
DMA memulai operasi dengan menyiapkan bus,menyediakan alamat, menulis, dan
membaca data sampai seluruh blok sudah ditransfer.
- Pengendali
DMA menginterupsi prosesor, dimana selanjutnya akan ditentukan tindakan
berikutnya.
DATA TRANSFER MELALUI DMA
Penjelasan:
Selama transfer byte masukan blok, urutan berikut terjadi
saat byte data dikirim dari antarmuka ke memori:
- Antarmuka
mengirimkan DMA controller permintaan untuk layanan DMA.
- Permintaan
bus dibuat ke pin HOLD (aktif Tinggi) pada mikroprosesor tebhe 8086 dan
pengendali mendapatkan kontrol bus.
- Isi
bus dikembalikan ke kontroler DMA dari pin HOLD Acknowledge (HLDA) (aktve
High) pada mikroprosesor 8086.
- Pengontrol
DMA menempatkan isi register alamat ke alamat bus.
- Pengontrol
mengirimkan antarmuka pengakuan DMA, yang memberi tahu antarmuka untuk
menempatkan bus data (untuk keluarannya memberi sinyal antarmuka untuk
mengunci data berikutnya yang ditempatkan di bus).
- Data
dalam bentuk byte ditransfer ke lokasi memori yang ditunjukkan oleh
alamat bus.
- Interface
mengaitkan data / memasang datanya.
- Permintaan
bus dijatuhkan, pin HOLD menjadi rendah, dan pengendali melepaskan bus.
- Isi
bus dari mikroprosesor 8086 menurun dan pin HLDA menjadi turun..Register
alamat bertambah 1(satu).Hitungan byte dikurangi 1.Jika jumlah byte tidak
nol, kembali ke langkah 1, jika tidak hentikan.
Jenis-jenis DMA (Direct Memory Access)
Ada 2 jenis DMA, yaitu:
- Third−party
DMA, untuk melakukan operasi transfer data menggunakan DMA controller yang
ada pada motherboard.
- First−party DMA (busmastering DMA). Untuk melakukan operasi transfer data dikerjakan oleh bagian logic di interface card.
Struktur DMA (Direct Memory Access)
- Transfer
data dari buffer ke memori atau sebaliknya dilakukan perkarakter
- Dimana
setiap kali transfer selalu ada interrup dari CPU sebelum dan sesudah
transfer.
- Jika
waktu untuk mentranfer satu karakter sebesar 2 us dan sekali interrupt
butuh 1ms , maka untuk mentransfer data dari memori ke buffer butuh 4 us
per karakter.
- Dengan
menggunakan DMA transfer data dapat dilakukan secara langsung oleh device
controller per-blok tanpa ada campur tangan dari CPU.
- CPU
hanya memberikan interrupt sebelum dan sesudah transfer setiap blok.
Fungsi DMA (Direct Memory Access)
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.
Metode Kerja DMA (Direct Memory Access)
Ada beberapa metode DMA dalam mentransfer data:
- 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
proses, sistem mikro prosessor diset idle. Tidak melakukan instruksi
operasi untuk menjaga internal register. Tipe operasi DMA seperti ini ada
pada kebanyakan komputer.
- Metode kedua mengikutsertakan pengendali DMA untuk memegang kontrol dari sistem bus untuk jangka waktu yang lebih pendek pada periode dimana mikro prosessor 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.
Pada dasarnya cara kerja DMA terkait erat dengan: DMA controller, Processor, Memory, I/O device. Adapun juga cara kerjanya sebagai berikut:
- I/O
device terhubung dengan DMA controller memberikan instruksi yang harus
diproses.
- DMA
controller mengirimkan pemberitahuan ke processor akan ada proses yang
dihandle oleh DMA controller.
- Processor
menginformasikan ke memory bahwa DMA akan mengakses memori untuk
pemrosesan suatu instruksi.
- DMA
controller terhubung dengan memori dan akses alamat, data yang diperlukan.
- DMA
controller mengirimkan hasil proses kembali ke I/O device.
- Jika
proses selesai, DMA controller kembali melapor ke processor bahwa proses
telah beres dilakukan.
Sumber referensi:

Comments
Post a Comment