Anda di halaman 1dari 26

MAKALAH

INTERUPT DAN DMA SISTEM

Di susun oleh :

Nama : Andreas (151.041.008)


: Iwan Styo Budi (151.041.008)
Jurusan : Teknik Elektro (S1)
Tugas : Interface Elektronika

FAKULTAS TEKNOLOGI INDUSTRI

INSTITUT SAINS DAN TEKNOLOGI AKPRIND

YOGYAKARTA
2018
KATA PENGANTAR

Puji syukur saya panjatkan kehadirat Tuhan yang telah memberikan rahmat
dan hidayahnya sehingga saya dapat menyelesaikan karya tulis yang berbentuk
makalah ini dengan judul “INTERUPT DAN DMA SISTEM”, penyusunan
makalah ini merupakan salah satu tugas pada mata kuliah Interface Elektronika di
program studi teknik Elektro Institut Sains dan Teknologi AKPRIND Yogyakarta.
Penulis mengucapkan terima kasih yang sebesar-besarnya kepada Bapak
Ir.Gatot Santoso, MT. selaku dosen mata kuliah Interface Elektronika dan kepada
segenap pihak yang telah memberikan bimbingan serta arahan selama penulisan
makalah ini.
Akhirnya penulis menyadari bahwa banyak terdapat kekurangan-kekurangan
dalam penulisan makalah ini, maka dari itu penulis mengharapkan kritik dan saran
yang konstruktif dari para pembaca demi kesempurnaan makalah ini dan semoga
makalah ini bermanfaat untuk perkembangan ilmu pengetahuan khususnya bagi
penulis dan umumnya bagi kita semua. Atas segala bantuan, dorongan dan motivasi
yang diberikan semua pihak, semoga mendapat balasan dari Tuhan. Amin.

Yogyakarta, 28 Maret 2018


Penulis,

Andreas
151.041.008

ii
DAFTAR ISI

Halaman Judul ........................................................................................ i


Kata Pengantar .................................................................................... ii
Daftar Isi ................................................................................................. iii
BAB I Pendahuluan ............................................................................... 1
1.1. Latar Belakang ............................................................................. 1
1.2. Rumusan Masalah ............................................................................... 2
1.3. Tujuan ............................................................................................... 2
1.4. Metode Penulisan ........................................................................ 2
BAB II Pembahasan .......................................................................... 3
2.1. Pengertian Interupsi .......................................................................... 3
2.2. Metode Interrupt-Driven I/O ............................................................ 6
2.3. Contoh pengontrolan Interrupt pada Chip Intel 8259A ...................... 8
2.4. Kelemahan I/O terprogram dan Interrupt-Driven I/O ...................... 11
2.5. Elemen-elemen pada sistem Interrupt-Driven I/O ............................. 11
2.6. Pengertian DMA (Direct Memory Access) ....................................... 12
2.7. Jenis-jenis DMA (Direct Memory Access) ....................................... 14
2.8 Struktur DMA (Direct Memory Access) .............................................. 14
2.9. Fungsi DMA (Direct Memory Access) ........................................... 14
2.10. Metode kerja DMA (Direct Memory Access) ............................... 16
2.11. Transfer DMA (Direct Memory Access) ......................................... 17
2.12. Implementasi DMA (Direct Memory Access) ............................... 18
2.13, Konfigurasi DMA (Direct Memory Access) .................................. 19
2.14. Proses handshaking pada DMA (Direct Memory Access) ............... 20
BAB III Penutup ...................................................................................... 18
3.1. Kesimpulan ........................................................................................ 22
Daftar Pustaka ........................................................................................ 23
Lampiran Contoh Soal ............................................................................ 24

iii
BAB I

PENDAHULUAN

1.1. Latar Belakang

Di zaman modern ini telah berkembang berbagai macam bentuk computer


dan perangkat pendukung guna meningkatkan kinerja computer baik dari segi
internal maupun eksternal system. Sistem komputer tidak akan berguna tanpa
adanya peralatan input dan output. Operasi I/O diperoleh melalui sejumlah
perangkat eksternal yang menyediakan alat untuk pertukaran data di antara
lingkungan luar dengan komputer. Perangkat eksternal dihubungkan dengan
komputer oleh suatu link dengan modul I/O.

Terdapat tiga buat teknik yang dapat digunakan dalam operasi I/O. Pada I/O
terprogram, data saling dipertukarkan antara CPU dengan modul I/O. CPU
mengeksekusi program yang memberikan operasi I/O kepada CPU secara
langsung, termasuk status perangkat pengindra, pengiriman perintah pembacaan
atau penulisan, dan pemindahan data. Ketika CPU mengeluarkan perintah ke modul
I/O, maka CPU harus menunggu sampai operasi I/O selesai. Apabila CPU lebih
cepat dibandingkan modul I / O, maka hal ini akan membuang-buang waktu CPU.

Teknik yang kedua dengan menggunakan interupt driven I/O, CPU


mengeluarkan perintah I/O, dilanjutkan dengan mengeksekusi intstruksi-instruksi
lainnya, dan diinterupsi oleh modul I/O apabila instruksi-instruksi tersebut telah
selesai dilaksanakan.

Dengan menggunakan I/O terprogram dan I/O interupt, maka CPU


bertanggung jawab atas pengeluaran data dan memori utama untuk keperluan
output dan penyimpanan data di dalam memori utama untuk keperluan input.
Alternatifnya dikenal sebagai Direct Memory Access ( DMA ). Dalam mode ini,
modul I/O dan main memory saling bertukar data secara langsung, tanpa melibatkan
CPU.

1
2

1.2 Rumusan Masalah


1. Apakah pengertian Interupt dan DMA (Direct Memory Access) ?
2. Apakah fungsi dari Interupt dan DMA (Direct Memory Access) ?
3. Bagaimana metode kerja dari Interupt dan DMA (Direct Memory Access) ?

1.3 Tujuan
1. Dapat menjelaskan Interupt dan DMA (Direct Memory Access)
2. Dapat mengerti fungsi dari Interupt dan DMA (Direct Memory Access)
3. Dapat mengerti dan memahami metode kerja dari Interupt dan DMA (Direct
Memory Access)

1.4 Metodologi Penulisan

a. Merumuskan Masalah
Sebelum melakukan penulisan langkah awal yang kami lakukan adalah
merumuskan masalah yang menjadi objek dalam penulisan artikel ini.

b. Mengumpulkan DataData
Data adalah informasi atau keterangan yang menunjukkan fakta, 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 atau tidaknya sebuah
penelitian.
BAB II

PEMBAHASAN

2.1 Pengertian Interupsi


Interupsi adalah mekanisme penghentian atau pengalihan pengolahan
instruksi dalam CPU kepada routine interupsi. Hampir semua modul memori
dan (I/O) memiliki mekanisme yang dapat menginterupsi kerja CPU.

Tujuan interupsi secara umum untuk menejemen pengeksekusian


routine instruksi agar efektif dan efisien antar CPU dan modul - modul I/O
maupun memori. Setiap komponen komputer dapat menjalankan tugasnya
secara bersamaan, tetapi kendali terletak pada CPU disamping itu kecepatan
eksekusi masing - masing modul berbeda sehingga dengan adanya fungsi
interupsi ini dapat sebagai sinkronisasi kerja antar modul.

 Macam – macam kelas sinyal interupsi :


a) Program, yaitu interupsi yang dibangkitkan dengan beberapa kondisi
yang terjadi pada hasil eksekusi program. Contohnya: arimatika
overflow, pembagian nol, oparasi ilegal.
b) Timer, adalah interupsi yang dibangkitkan pewaktuan dalam prosesor.
Sinyal ini memungkinkan sistem operasi menjalankan fungsi tertentu
secara reguler.
c) I/O, sinyal interupsi yang dibangkitkan oleh modul I/O sehubungan
pemberitahuan kondisi error dan penyelesaian suatu operasi.
d) Hardware failure, adalah interupsi yang dibangkitkan oleh
kegagalan daya atau kesalahan paritas memori.

Adanya mekanisme interupsi, prosesor dapat digunakan untuk


mengeksekusi instruksi – instruksi lain. Saat suatu modul telah selesai
menjalankan tugasnya dan siap menerima tugas berikutnya maka modul ini akan
mengirimkan permintaan interupsi ke prosesor. Kemudian prosesor akan
menghentikan eksekusi yang dijalankannya untuk menghandel routine interupsi.

3
4

Setelah program interupsi selesai maka prosesor akan melanjutkan


eksekusi programnya kembali. Saat sinyal interupsi diterima prosesor
ada dua kemungkinan tindakan, yaitu interupsi diterima/ ditangguhkan dan
interupsi ditolak. Apabila interupsi diterima/ ditangguhkan, prosesor akan
melakukan hal – hal dibawah ini :

a) Prosesor menangguhkan eksekusi program yang dijalankan dan


menyimpan konteksnya. Tindakan ini adalah menyimpan alamat
instruksi berikutnya yang akan dieksekusi dan data lain yang relevan.
b) Prosesor menyetel program counter (PC) ke alamat awal routine
interrupt handler.

Gambar 2.1 berikut menjelaskan siklus eksekusi oleh prosesor dengan


adanya fungsi interupsi.

Gambar 2.1 Siklus eksekusi instruksi dengan Interrupt

Untuk sistem operasi yang kompleks sangat dimungkinkan adanya


interupsi ganda (multiple interrupt). Misalnya suatu komputer akan menerima
permintaan interupsi saat proses pencetakan dengan printer selesai,
disamping itu dimungkinkan dari saluran komunikasi akan mengirimkan
permintaan interupsi setiap kali data tiba. Dalam hal ini prosesor harus
menangani interupsi ganda.
5

Dapat diambil dua buah pendekatan untuk menangani interupsi ganda


ini. Pertama adalah menolak atau tidak mengizinkan interupsi lain saat suatu
interupsi ditangani prosesor. Kemudian setelah prosesor selesai menangani
suatu interupsi maka interupsi lain baru ditangani. Pendekatan ini disebut
pengolahan interupsi berurutan/sekuensial. Pendekatan ini cukup baik dan
sederhana karena interupsi ditangani dalam ututan yang cukup ketat. Kelemahan
pendekatan ini adalah metode ini tidak memperhitungkan prioritas interupsi.

Pendekatan ini diperlihatkan pada gambar 2.2a.

Gambar 2.2a. Pengolahan Interupsi Sekuensial

Pendekatan kedua adalah dengan mendefinisikan prioritas bagi


interupsi dan interrupt handler mengizinkan interupsi berprioritas lebih tinggi
ditangani terlebih dahulu. Pedekatan ini disebut pengolahan interupsi bersarang.
Metode ini digambarkan pada gambar 2.2b.

Gambar 2.2b.. Pengolahan Interupsi Bersarang


6

Sebagai contoh untuk mendekatan bersarang, misalnya suatu sistem


memiliki tiga perangkat I/O: printer, disk, dan saluran komunikasi, masing
– masing prioritasnya 2, 4 dan 5. Pada awal sistem melakukan pencetakan
dengan printer, saat itu terdapat pengiriman data pada saluran komunikasi
sehingga modul komunikasi meminta interupsi. Proses selanjutnya adalah
pengalihan eksekusi interupsi mudul komunikasi, sedangkan interupsi printer
ditangguhkan. Saat pengeksekusian modul komunikasi terjadi interupsi disk,
namun karena prioritasnya lebih rendah maka interupsi disk ditangguhkan.
Setelah interupsi modul komunikasi selesai akan dilanjutkan interupsi yang
memiliki prioritas lebih tinggi, yaitu disk. Bila interupsi disk selesai
dilanjutkan eksekusi interupsi printer. Selanjutnya dilanjutkan eksekusi
program utama.

2.2. Metode Interrupt – Driven I/O

Memungkinkan proses tidak membuang–buang waktu.Prosesnya


adalah CPU mengeluarkan perintah I/O pada modul I/O, bersamaan perintah
I/O dijalankan modul I/O maka CPU akan melakukan eksekusi perintah–
perintah lainnya. Apabila modul I/O telah selesai menjalankan instruksi yang
diberikan padanya akan melakukan interupsi pada CPU bahwa tugasnya telah
selesai. Dalam teknik ini kendali perintah masih menjadi tanggung jawab CPU,
baik pengambilan perintah dari memori maupun pelaksanaan isi perintah
tersebut. Terdapat selangkah kemajuan dari teknik sebelumnya, yaitu CPU
melakukan multitasking beberapa perintah sekaligus sehingga tidak ada waktu
tunggu bagi CPU.

Cara kerja teknik interupsi di sisi modul I/O adalah modul I/O menerima
perintah, missal read. Kemudian modul I/O melaksanakan perintah pembacaan
dari peripheral dan meletakkan paket data ke register data modul I/O, selanjutnya
modul mengeluarkan sinyal interupsi ke CPU melalui saluran kontrol.
Kemudian modul menunggu datanya diminta CPU. Saat permintaan terjadi,
modul meletakkan data pada bus data dan modul siap menerima perintah
7

selanjutnya. Pengolahan interupsi saat perangkat I/O telah menyelesaikan


sebuah operasi I/O adalah sebagai berikut :

a) Perangkat I/O akan mengirimkan sinyal interupsi ke CPU.


b) CPU menyelesaikan operasi yang sedang dijalankannya kemudian
merespon interupsi.
c) CPU memeriksa interupsi tersebut, kalau valid maka CPU akan
mengirimkan sinyal acknowledgment ke perangkat I/O untuk
menghentikan interupsinya.
d) CPU mempersiapkan pengontrolan transfer ke routine interupsi.
Hal yang dilakukan adalah menyimpan informasi yang diperlukan
untuk melanjutkan operasi yang tadi dijalankan sebelum adanya
interupsi. Informasi yang diperlukan berupa:
 Status prosesor, berisi register yang dipanggil PSW (program
status word).
 Lokasi intruksi berikutnya yang akan dieksekusi. Informasi
tersebut kemudian disimpan dalam stack pengontrol sistem.
e) Kemudian CPU akan menyimpan PC (program counter) eksekusi sebelum
interupsi ke stack pengontrol bersama informasi PSW. Selanjutnya
mempersiapkan PC untuk penanganan interupsi.
f) Selanjutnya CPU memproses interupsi sempai selesai.
g) Apabila pengolahan interupsi selasai, CPU akan memanggil kembali
informasi yang telah disimpan pada stack pengontrol untuk meneruskan
operasi sebelum interupsi.

Terdapat bermacam teknik yang digunakan CPU dalam menangani


program interupsi ini, diantaranya :

• Multiple Interrupt Lines.

• Software poll.

• Daisy Chain.

• Arbitrasi bus.
8

Teknik yang paling sederhana adalah menggunakan saluran interupsi


berjumlah banyak (Multiple Interrupt Lines) antara CPU dan modul– modul
I/O. Namun tidak praktis untuk menggunakan sejumlah saluran bus atau
pin CPU ke seluruh saluran interupsi modulmodul I/O.

Alternatif lainnya adalah menggunakan software poll. Prosesnya,


apabila CPU mengetahui adanya sebuah interupsi, maka CPU akan menuju ke
routine layanan interupsi yang tugasnya melakukan poll seluruh modul I/O
untuk menentukan modul yang melakukan interupsi. Kerugian software poll
adalah memerlukan waktu yang lama karena harus mengidentifikasi seluruh
modul untuk mengetahui modul I/O yang melakukan interupsi.

Teknik yang lebih efisien adalah daisy chain, yang menggunakan


hardware poll. Seluruh modul I/O tersambung dalam saluran interupsi CPU
secara melingkar (chain). Apabila ada permintaan interupsi, maka CPU akan
menjalankan sinyal acknowledge yang berjalan pada saluran interupsi sampai
menjumpai modul I/O yang mengirimkan interupsi.

Teknik berikutnya adalah arbitrasi bus. Dalam metode ini, pertama


– tama modul I/O memperoleh kontrol bus sebelum modul ini menggunakan
saluran permintaan interupsi.

Dengan demikian hanya akan terdapat sebuah modul I/O yang dapat melakukan
interupsi.

2.3. Contoh Pengontrol Interrupt pada Chip Intel 8259A

Intel mengeluarkan chips 8259A yang dikonfigurasikan sebagai


interrupt arbiter pada mikroprosesor Intel 8086. Intel 8259A melakukan
manajemen interupsi modul - modul I/O yang tersambung padanya. Chips ini
dapat diprogram untuk menentukan prioritas modul I/O yang lebih dulu
ditangani CPU apabila ada permintaan interupsi yang bersamaan. Gambar
2.3. menggambarkan pemakaian pengontrol interupsi 8259A. Berikut mode
– mode interupsi yang mungkin terjadi:
9

• Fully Nested: permintaan interupsi dengan prioritas mulai 0 (IR0) hingga


7(IR7).

• Rotating: bila sebuah modul telah dilayani interupsinya akan menempati


prioritas terendah.

• Special Mask: prioritas diprogram untuk modul I/O tertentu secara


spesial.

Gambar 2.3. Pemakaian pengontrol interupsi 8559A pada 8086

Contoh modul I/O yang menggunakan I/O terprogram dan


interrupt driven I/O adalah Intel 8255A Programmable Peripheral Interface
10

(PPI). Intel 8255A dirancang untuk keperluan mikroprosesor 8086. Gambar


2.4. menunjukkan blok diagram Intel 8255A dan pin layout-nya.

Gambar 2.4. Modul I/O 8255A

Bagian kanan dari blok diagram Intel 8255A adalah 24 saluran


antarmuka luar, terdiri atas 8 bit port A, 8 bit port B, 4 bit port CA dan 4 bit
port CB. Saluran tersebut dapat diprogram dari mikroprosesor 8086 dengan
menggunakan register kontrol untuk menentukan bermacam–macam mode
operasi dan konfigurasinya. Bagian kiri blok diagram merupakan interface
internal dengan mikroprosesor 8086. Saluran ini terdiri atas 8 bus data dua arah
(D0 – D7), bus alamat, dan bus kontrol yang terdiri atas saluran CHIP SELECT,
READ, WRITE, dan RESET.

Pengaturan mode operasi pada register kontrol dilakukan oleh


mikroprosesor., Pada Mode 0, ketiga port berfungsi sebagai tiga port I/O 8 bit.
Pada mode lain dapat port A dan port B sebagai port I/O 8 bit, sedangkan port C
sebagai pengontrol saluran port A dan B. PPI Intel 8255A dapat diprogram
untuk mengontrol berbagai peripheral sederhana. Gambar 2.5.
memperlihatkan contoh penggunaan 8255A untuk modul I/O Keyboard dan
display.
11

Gambar 2.5. Interface kayboard dan display dengan Intel 8255A

2.4. Kelemahan I/O terprogram dan Interrupt - Driven I/O

Proses yang terjadi pada modul I/O masih melibatkan CPU secara
langsung, berimplikasi pada :

 Kelajuan transfer I/O yang tergantung kecepatan operasi CPU.


 Kerja CPU terganggu karena adanya interupsi secara langsung

2.5. Elemen – elemen pada sistem Interrupt – Driven I/O


a) SIM : Untuk menghalangi hardware interrupt
b) Bit MSE : Untuk mengaktifkan pemasangan mask
c) RIM : Untuk membaca status dari interrupt masking
d) PC : Untuk menghitung indeks dari stack yang sedang diproses
e) RS : Untuk menyimpan byte atau opcode instruksi
f) Informasi yang berkenaan dengan program yang diinterupsi
12

2.6. 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
13

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).

Gambar 2.6. skema alur kerja dari DMA


14

2.7. 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.

2.8. Struktur DMA (Direct Memory Access)


a) Transfer data dari buffer ke memori atau sebaliknya dilakukan per-
karakter.
b) Dimana setiap kali transfer selalu ada interruptdari CPU sebelum dan
sesudah transfer.
c) 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.
d) Dengan menggunakan DMA transfer data dapatdilakukan secara
langsung oleh device controller per-blok tanpa ada campur tangan dari
CPU.
e) CPU hanya memberikan interrupt sebelum dansesudah transfer setiap
blok.

2.9.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.
15

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 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.
16

2.10. 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:
a) I/O Device terhubung dengan DMA controller memberikan instruksi yang
harus di proses
b) DMA controller mengirimkan pemberitahuan ke processor akan ada
proses yang dihandle oleh DMA controller
c) Processor menginformasikan ke memory bahwa DMA akan mengakses
memory untuk pemrosesan suatu instruksi
d) DMA Controller terhubung dengan memory dan akses alamat, data yang
diperlukan
e) DMA controller mengirimkan hasil proses kembali ke I/O device
f) Jika proses selesai, DMA controller kembali melaporkan ke processor
bahwa proses telah beres dilakukan.
17

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 :

a) CPU mengeksekusi program lain


b) DMA controller mengirimkan seluruh blok data (per satu word)
langsung ke memori(tanpa melibatkan CPU)
c) 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 2.7 Blog Diagram DMA

2.11. 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.
18

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.

Gambar 2.8 Operasi dari DMA Transfer

2.12. 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 disebut Direct Virtual-Memory Address atau
DVMA. Keuntungan dari DVMA adalah dapat mendukung transfer antara dua
memori mapped device tanpa intervensi CPU.
19

2.13. Konfigurasi modul DMA


 Konfigurasi 1 (Single Bus)
a) Hanya menggunakan single bus DMA dan modul I/O terpisah
b) Setiap transfer harus mengakses bus 2 kali: modul I/O ke DMA
kemudian DMA ke memori
c) Lebih lambat CPU (tertunda 2 kali)

Gambar 2.9 Konfigurasi 1 (Single Bus)

 Konfigurasi 2 (Single Bus, Integrated DMA-I/O)


a) Hanya menggunakan single bus
b) Modul I/O terintegrasi
c) Satu DMA controller dapat menangani >1 modul I/O
d) Setiap transfer hanya perlu mengakses bus satu kali saja DMA ke
memori
e) CPU hanya tertunda satu kali (lebih baik dari konfigurasi 1)

Gambar 2.10 Konfigurasi 2 (Single Bus, Integrated DMA-I/O)


20

 Konfigurasi 3 (IO Bus)


a) Digunakan bus I/O secara terpisah
b) Lebih hemat hardware Semua modul I/O cukup dilayani dengan
sebuah DMA
c) Setiap transfer hanya perlu mengakses bus satu kali saja DMA ke
memori
d) CPU hanya tertunda (lebih baik dari konfigurasi 2)

Gambar 2.11 Konfigurasi 3 (IO Bus)

2.14. 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 DMAacknowledgediterima,
pengendali perangkat mengirimkan data yang dimaksud dan mematikan sinyal
pada DMA-request.
21

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.

 Keuntungan menggunakan DMA:


a) Dapat dilihat pada operasi multiasking seperti UNIX.
b) Transfer data dengan mode DMA akan menghemat sumberdaya CPU
sehingga CPU dapat melakukan pekerjaan yang lain.
c) Sedangkan pada DOS (yang merupakan operasi single-tasking) harus
menunggu sampai proses selesai terlebih dahulu baru kemudian bisa
menjalankan proses berikutnya
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.

22
DAFTAR PUSTAKA

http://izrahernanda.blogspot.com/2010/06/bus-data-dan-dma.html (Diakses pada


28 Maret 2018, 18:00 WIB)

http://archer.web.id/uncategorized/direct-memory-access-dma (Diakses pada 28


Maret 2018, 18:10 WIB)

http://littleradita.files.wordpress.com/2010/12/pertemuan-8-inputoutput.pdf
(Diakses pada 28 Maret 2018, 18:20 WIB)

https://www.scribd.com/document_downloads/direct/109469982?extension=docx
&ft=1414610025&lt=1414613635&user_id=269466365&uahk=h1nQIJbN
hD99 mhOEgoF2C7sE7a0 (Diakses pada 28 Maret 2018, 18:15 WIB)

https://www.scribd.com/document_downloads/direct/90131776?extension=docx

&ft=1414609916&lt=1414613526&user_id=269466365&uahk=w+29IhqvqHaD
E6LF0qze8g9rS7k (Diakses pada 28 Maret 2018, 18:25 WIB)

http://lecturer.eepis-its.edu/~setia/Modul/Orkom/P13.pdf (Diakses pada 28 Maret


2018, 18:30 WIB)

http://lecturer.ukdw.ac.id/mahas/dossier/arkom_02.pdf (Diakses pada 28 Maret


2018, 19:00 WIB)

23

Anda mungkin juga menyukai