Ringkasan dokumen tersebut adalah:
1. DMA merupakan alat khusus yang memungkinkan transfer data langsung antara perangkat I/O dan memori utama tanpa campur tangan terus-menerus dari CPU.
2. Fungsi DMA adalah agar CPU dapat melakukan tugas lain selama transfer data sedang berlangsung.
3. Cara kerja DMA yaitu CPU mengkonfigurasi DMA controller, kemudian DMA controller melakukan transfer data secara langsung
Makalah Organisasi Komputer - Direct Memory Access (DMA)
1. 1
BAB I
PENDAHULUAN
1.1 Latar Belakang
Komputer tersusun atas beberapa komponen penting seperti CPU, memori, perangkat
I/O. 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
2. 2
menetapkan program yang ditunda ke keadaan runnable sehingga dapat dipilih oleh
scheduler untuk melanjutkan eksekusi.
1.2 Rumusan Masalah
1. Apakah pengertian DMA (Direct Memory Access) ?
2. Apakah fungsi dari DMA (Direct Memory Access) ?
3. Bagaimana metode kerja dari DMA (Direct Memory Access) ?
1.3 Tujuan
1. Dapat menjelaskan DMA (Direct Memory Access)
2. Dapat mengerti fungsi dari DMA (Direct Memory Access)
3. Dapat mengerti dan memahami metode kerja dari DMA (Direct Memory Access)
1.4 Metodology
a. Merumuskan Masalah
Sebelum melakukan penulisan langkah awal yang kami lakukan adalah
merumuskan masalah yang menjadi objek dalampenulisan artikel ini.
b. Mengumpulkan DataData
Data adalah informasi atau keterangan yang menunjukkanfakta, data dapat
diperoleh melalui pengamatan danpengamatan dapat diperoleh dari buku-buku
pusaka dan membuka website mengenai objek dan data dapat jugadiperkuat
dengan menampilkan tabel dan gambar.
c. Mengelolah Data
Seluruh data dan gambar yang diperoleh dari bukumaupun website harus disusun
dan ditampilkan sesuai denganbagian-bagiannya dengan tujuan agar kita dapat
lebih mudahmem bacanya dan dapat diartikan (dimengerti).
d. Membuat simpulan
Sebuah simpulan dibuat untuk menentukan berhasil atautidaknya sebuah penelitian.
3. 3
BAB II
PEMBAHASAN
2.1 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.
4. 4
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).
2.2 Jenis-Jenis DMA (Direct Memory Access)
Ada 2 jenis DMA, yaitu:
a) Third−party DMA, untuk melakukan operasi transfer data menggunakan DMA
controller yang ada pada motherboard.
b) First−party DMA (busmastering DMA). Untuk melakukan operasi transfer data
dikerjakan oleh bagian logic di interface card.
5. 5
2.3 Struktur DMA (Direct Memory Access)
Transfer data dari buffer ke memori atau sebaliknya dilakukan per-karakter.
dimana setiap kali transfer selalu ada interruptdari CPU sebelum dan sesudah
transfer.
Jika waktu untuk mentransfer satu karakter sebesar 2 μs dan sekali interrupt butuh
1ms, maka untuk mentransfer data dari memori kebuffer butuh 4 μs per karakter.
Dengan menggunakan DMA transfer data dapatdilakukan secara langsung oleh
device controller per-blok tanpa ada campur tangan dari CPU.
CPU hanya memberikan interrupt sebelum dansesudah transfer setiap blok.
2.4 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.
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
6. 6
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.
Berikut ini gambar untuk mempermudah penjelasan:
2.5 Metode Kerja DMA (Direct Memory Access)
Ada Beberapa Metode DMA dalam mentrasfer data :
a) 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.
b) Metode 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
Pada dasarnya cara kerja DMA terkait erat dengan : DMA controller, Processor,
Memory, I/Odevice. Adapun juga cara kerjanya sebagai berikut:
7. 7
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”
(Gambar : Blog Diagram DMA)
8. 8
2.6 Transfer DMA (Direct Memory Access)
Ada 3 langkah dalam transfer DMA :
a) 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.
b) Pengendali DMA memulai operasi (menyiapkan bus, menyediakan alamat,
menulis dan membaca data), sampai seluruh blok sudah di transfer.
c) Pengendali DMA meng-interupsi prosesor dimana selanjutnya akan ditentukan
tindakan berikutnya.
2.7 Implementasi DMA
Dalam pelaksanaannya, beberapa komputer menggunakan memori fisik untuk proses
DMA , sedangkan jenis komputer lain menggunakan alamat virtual dengan melalui tahap
“penerjemahan” dari alamat memori virtual menjadi alamat memori fisik, hal ini
disebutDirect Virtual-Memory Address atau DVMA. Keuntungan dari DVMA adalah
dapat mendukung transfer antara dua memori mapped device tanpa intervensi CPU.
2.8 Konfigurasi modul DMA
a) Konfigurasi 1 (Single Bus)
Hanya menggunakan single bus
DMA dan modul I/O terpisah
Setiap transfer harus mengakses bus 2 kali:
modul I/O ke DMA kemudian DMA ke memori
Lebih lambat CPU (tertunda 2 kali)
9. 9
b) Konfigurasi 2 (Single Bus, Integrated DMA-I/O)
Hanya menggunakan single bus
Modul I/O terintegrasi
Satu DMA controller dapat menangani >1 modul I/O
Setiap transfer hanya perlu mengakses bus satu kali saja DMA ke memori
CPU hanya tertunda satu kali (lebih baik dari konfigurasi 1)
c) Konfigurasi 3 (IO Bus)
Digunakan bus I/O secara terpisah
Lebih hemat hardwareSemua modul I/O cukup dilayani dengan sebuah DMA
Setiap transfer hanya perlu mengakses bus satu kali saja DMA ke memori
CPU hanya tertunda (lebih baik dari konfigurasi 2)
10. 10
2.9 Proses Handshaking pada DMA
Proses handshaking antara pengendali DMA dan pengendali perangkat dilakukan melalui
sepasang kabel yang disebut DMA-request dan DMA-acknowledge. Pengendali
perangkat mengirimkan sinyal melalui DMA-request ketika akan mentransfer data
sebanyak satu word. Hal ini kemudian akan mengakibatkan pengendali DMA
memasukkan alamat-alamat yang dinginkan ke kabel alamat memori, dan mengirimkan
sinyal melalui kabel DMA-acknowledge. Setelah sinyal melalui kabel DMA-acknowledgediterima,
pengendali perangkat mengirimkan data yang dimaksud dan
mematikan sinyal pada DMA-request.
Hal ini berlangsung berulang-ulang sehingga disebut handshaking. Pada saat pengendali
DMA mengambil alih memori, CPU sementara tidak dapat mengakses memori
(dihalangi), walau pun masih dapat mengaksees data pada cache primer dan sekunder.
Hal ini disebut cycle stealing, yang walau pun memperlambat komputasi CPU, tidak
menurunkan kinerja karena memindahkan pekerjaan data transfer ke pengendali DMA
meningkatkan performa sistem secara keseluruhan.
2.10 Keuntungan menggunakan DMA:
Dapat dilihat pada operasi multiasking seperti UNIX.
Transfer data dengan mode DMA akan menghemat sumberdaya CPU sehingga
CPU dapat melakukan pekerjaan yang lain.
Sedangkan pada DOS (yang merupakan operasi single-tasking) harus menunggu
sampai proses selesai terlebih dahulu baru kemudian bisa menjalankan proses
berikutnya
11. 11
BAB III
PENUTUP
3.1 Kesimpulan
Komputer tersusun atas beberapa komponen penting, seperti CPU, memory, perangkat
I/O. Sistem bus adalah penghubung bagi keseluruhan komponen dalam menjalankan
tugasnya. Kumpulan lintasan atau saluran berbagai modul disebut interkoneksi. 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.
Tanpa adanya DMA, maka proses input/output akan selalu membuat CPU fokus penuh
untuk mengerjakan proses transfer data dan menyebabkan proses menjadi lambat.
Dengan adanya 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 sehingga alur pemrosesan menjadi jauh lebih
efisien.