DMA (Direct Memory Acces)
1.
Pengertian DMA(Direct Memory Acces)
Direct memory
access (DMA) adalah fitur sistem komputer yang memungkinkan subsistem perangkat
keras tertentu untuk mengakses memori sistem utama (memori akses acak), yang
terpisah dari central processing unit (CPU).
Tanpa DMA,
ketika CPU menggunakan input / output terprogram, ini biasanya terisi penuh
untuk seluruh durasi operasi baca atau tulis, dan karena itu tidak tersedia
untuk melakukan pekerjaan lain. Dengan DMA, CPU pertama memulai transfer,
kemudian melakukan operasi lain ketika transfer sedang berlangsung, dan
akhirnya menerima interupsi dari pengontrol DMA ketika operasi selesai. Fitur
ini berguna setiap saat ketika CPU tidak dapat mengikuti laju transfer data,
atau ketika CPU perlu melakukan pekerjaan sambil menunggu transfer data I / O
yang relatif lambat. Banyak sistem perangkat keras menggunakan DMA, termasuk
pengontrol disk drive, kartu grafis, kartu jaringan, dan kartu suara. DMA juga
digunakan untuk transfer data intra-chip dalam prosesor multi-core. Komputer
yang memiliki saluran DMA dapat mentransfer data ke dan dari perangkat dengan
overhead CPU jauh lebih sedikit daripada komputer tanpa saluran DMA. Demikian
pula, elemen pemrosesan di dalam prosesor multi-core dapat mentransfer data ke
dan dari memori lokal tanpa menempati waktu prosesornya, memungkinkan komputasi
dan transfer data untuk berjalan secara paralel.
DMA juga
dapat digunakan untuk "memori ke memori" menyalin atau memindahkan
data dalam memori. DMA dapat membebani operasi memori yang mahal, seperti
salinan besar atau operasi penghamburan, dari CPU ke mesin DMA khusus. Contoh
implementasi adalah Teknologi Akselerasi I / O. DMA sangat menarik dalam
arsitektur komputasi
jaringan-on-chip
dan in-memory.
2.
Fungsi DMA(Direct Memory Acces)
Fungsi DMA adalah
untuk membantu CPU fokus penuh untuk mengerjakan proses transfer data. Dengan
DMA, CPU cukup memulai prosesnya dan
bisa melakukan kerja lain selama proses transfer itu berlangsung dan tinggal menunggu informasi dari
DMA controller jika proses transfer sudah
selesai.
3.
Kelebihan & Kekurangan DMA(Direct Memory Acces)
1)
Kelebihan
Dapat
menirukan sebagian fungsi processor
Dapat
mengambil alih fungsi prosesor yang berhubungan dengan transfer data
CPU
dapat melakukan manajemen operasi baca tulis (transfer data) dengan baik dan
juga dapat menyelsaikan instruksi yang lain.
Mendapat
informasi tentang jumlah data bit yang ditransfer, alamat dari device dan
memory yang diperlukan dan arah dari aliran data.
2)
Kekurangan DMA :
Transfer
rate data terbatas
Masih
memerlukan keterlibatan CPU, Sehingga CPU menjadi lebih sibuk
4.
Cara Kerja DMA (Direct Memory Acces)
Cara kerja
DMA :
1)
Antarmuka
mengirimkan pengontrol DMA permintaan DMA layanan.
2)
Permintaan
Bus dibuat untuk pin terus (Tinggi aktif) pada mikroprosesor 8086 dan
controller kontrol keuntungan dari bus.
3)
Dana bantuan
Bus dikembalikan ke DMA controller dari Hold Acknowledge (HLDA) pin (aktif
tinggi) pada mikroprosesor 8086.
4)
Para DMA
controller tempat isi alamat register ke bus alamat.
5)
Controller
mengirimkan antarmuka pengakuan DMA, yang mengisahkan antarmuka untuk
menempatkan data pada bus data. (Untuk output itu sinyal antarmuka untuk latch
data berikutnya ditempatkan di bus.
6)
Byte data
ditransfer ke lokasi memori yang ditunjukkan oleh bus alamat.
7)
Antarmuka
kait data.
8)
Permintaan
Bus terjatuh, pin HOLD pergi rendah, dan controller relinquishes bus.
9)
Hibah Bus
dari mikroprosesor 8086 dijatuhkan dan pin HLDA pergi Rendah.
10)
Register
alamat bertambah oleh 1.
11)
Jumlah byte
decremented oleh 1.
12)
Jika jumlah
byte adalah bukan nol, kembali ke langkah 1, jika tidak berhenti.
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.
Kerja DMA
terkait dengan : DMA controller, Processor,
Memory, I/ODevice
Adapun juga
cara kerjanya sebagai berikut:
1.
I/O Device terhubung dengan DMA controller memberikan instruksi
yang harus di proses
2.
DMA controller mengirimkan pemberitahuan ke processor akan ada
proses yang dihandle oleh DMA controller
3.
Processor menginformasikan ke memory bahwa DMA akan mengakses
memory untuk pemrosesan suatu instruksi
4.
DMA Controller terhubung dengan memory dan akses alamat, data yang
diperlukan
5.
DMA controller mengirimkan hasil proses kembali ke I/O device
6.
Jika proses selesai, DMA controller kembali melaporkan ke
processor bahwa proses telah beres dilakukan.
Menurut
reverensi lain cara kerja DMA sebagai berikut:
·
CPU mengirimkan data data berikut ini ke DMA controller:
ü
Perintah read/write
ü
Alamat device yang akan diakses
ü
Alamat awal blok memori yang akan dibaca/ditulis
ü
Jumlah blok data yang akan ditransfer
CPU mengeksekusi program lain
·
DMA controller mengirimkan seluruh blok data (per satu word)
langsung ke memori(tanpa melibatkan CPU)
·
DMA controller mengirim interrupt ke CPU jika telah selesai.
Dapat
disimpulkan Prinsip sederhanya : DMA
controller mengambil alih kerja processor dalam memproses instruksi yang masuk
melalui I/O device. Processor cukup mendapatkan laporan saja bahwa akan ada
tugas yang dihandle oleh DMA controller, dan setelah beres, tinggal nunggu
laporan ” tugas beres”.
DAFTAR
PUSTAKA