Direct Memory Access (DMA)
Direct Memory Access (DMA)
Sebuah fitur yang memungkinkan sebuah hardware tambahan
pada system bus untuk membantu I/O device/process mengakses main memory secara
langsung tanpa harus menunggu perintah CPU, sehingga CPU dapat digunakan untuk
process lain. Hardware tambahan ini umumnya disebut DMA module.
PENGERTIAN I/O INTERFACE
I/O interface adalah peralatan yang dimana informasi dapat masuk
dan keluar dari perangkat seperti computer. Dalam komputasi input output adalah
komunikasi antara system pengolahan informasi dan dunia luar. Input adalah
sinyal atau data yang diterima oleh system dan output adalah sinyal atau data
yang dikirim dari itu. Contoh alat input yaitu keyboard , mouse , scanner,
joystick , camera digital, bar code reader, webcam . dan contoh dari alat output
adalah monitor, printer, proyektor, dan speaker.
HOLD
Ini menunjukkan jika ada perangkat lain yang meminta
penggunaan alamat dan bus data. Pertimbangkan dua perangkat periferal. Salah
satunya adalah LCD dan konverter Analog ke Digital lainnya. Misalkan jika
konverter analog ke digital menggunakan alamat dan bus data dan jika LCD
meminta penggunaan alamat dan bus data dengan memberikan sinyal HOLD, maka
mikroprosesor mentransfer kontrol ke LCD segera setelah siklus saat ini
berakhir. Setelah proses LCD selesai, kontrol ditransfer kembali ke konverter
analog dan digital.
HLDA
HLDA adalah sinyal pengakuan untuk HOLD. Ini
menunjukkan apakah sinyal HOLD diterima atau tidak. Setelah pelaksanaan
permintaan HOLD, HLDA menjadi rendah.
Ada 3 langkah dalam transfer DMA
1. 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.
2. Pengendali DMA
memulai operasi dengan menyiapkan bus,menyediakan alamat, menulis, dan membaca
data sampai seluruh blok sudah ditransfer.
3. Pengendali DMA
menginterupsi prosesor, dimana selanjutnya akan ditentukan tindakan berikutnya.
Contoh Foto DMA Controller
Penjelasan :
Selama transfer byte masukan blok, urutan berikut
terjadi saat byte data dikirim dari antarmuka ke memori:
1.
Antarmuka
mengirimkan DMA controller permintaan untuk layanan DMA.
2. Permintaan bus
dibuat ke pin HOLD (aktif Tinggi) pada mikroprosesor tebhe 8086 dan pengendali
mendapatkan kontrol bus.
3. Isi bus dikembalikan
ke kontroler DMA dari pin HOLD Acknowledge (HLDA) (aktve High) pada
mikroprosesor 8086.
4. Pengontrol
DMA menempatkan isi register alamat ke alamat bus.
5. 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)
6. Data dalam
bentuk byte ditransfer ke lokasi memori yang ditunjukkan oleh alamat
bus.
7.
Interface
mengaitkan data / memasang datanya.
8.
Permintaan
bus dijatuhkan, pin HOLD menjadi rendah, dan pengendali melepaskan bus.
9. Isi bus dari
mikroprosesor 8086 menurun dan pin HLDA menjadi turun..Register alamat bertambah 1,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:
1.
Third−party
DMA, untuk melakukan operasi transfer data menggunakan DMA controller yang ada pada motherboard.
2.
First−party
DMA (busmastering DMA). Untuk melakukan operasi transfer data dikerjakan
oleh bagian logic di interface card.
Cara Kerja DMA
1. CPU mengirimkan CPU data-data berikut
ini ke DMA controller:
a. Perintah read/write.
b. Alamat device yang
akan diakses.
c. Alamat awal blok memori
yang akan dibaca atau ditulis.
d. Jumlah blok yang akan
ditransfer.
2. CPU klien mengeksekusi
program lain.
3. DMA controller
mengirimkan seluruh blok data (per satu word) langsung ke memori tanpa
melibatkan CPU).
4. DMA controler
mengirimkan interupt ke CPU jika telah selesai.
5. DMA controler
mengambil alih sistem bus sebanyak 1 siklus.
6. DMA men-transfer satu
word data.
7. Pengambil alihan bus
oleh DMA bukan interrupt CPU tidak perlu menyimpan context.
8. CPU hanya tertunda
sessaat satu siklus sebelum mengakses bus yaitu sebelum operan atau data diambil atau data ditulis diagram modul DMA.
Kelemahan DMA
Tanpa DMA, diprogram menggunakan input / Output (PIO) mode untuk
berkomunikasi dengan perangkat pinggiran, atau menggunakan / menyimpan
instruksi dalam kasus multicore chips,CPU biasanya penuh diduduki untuk seluruh
durasi dari operasi membaca atau menulis, dan dengandemikian tidak tersedia
untuk melakukan pekerjaan lain. Dengan DMA, CPU akan melakukan transfer,
lakukan operasi lainnya sementara transfer yang sedang berlangsung, dan
menerima mengganggu dari DMA controller setelah operasi telah selesai. Hal ini
sangat berguna dalam real-time komputasi di mana aplikasi tidak stalling
belakang yg berbarengan operasi adalah penting. Dan aplikasi lain yang
berhubungan dengan berbagai daerah adalah bentuk streaming pemrosesan dimana
perlu ada pengolahan data dan transfer paralel, untuk mencapai throughput
memadai.
Kelebihan DMA
Kelebihan menggunakan
mode DMA sangat terasa pada sistem operasi multitasking seperti Windows, Linux,
UNIX, dan sebagainya. Karena transfer data akan menghemat resource
processor sehingga processor dapat mengerjakan pekerjaan lain. Keuntungan lainnya
adalah kecepatan transfer data dengan menggunakan mode DMA jauh lebih cepat
bila dibandingkan dengan menggunakan mode PIO.
Sumber :