Struktur DMA ( Direct Memory Access )
Direct Memory Access adalah suatu metode pengguna i/o dimana device controler
langsung berhubungan dengan memory utama tanpa intervensi CPU. setelah Men-set
bugger, printer & counter untuk perangkat i/o devices controler mentransfer
blog data langsung ke penyimpanan, DMA digunakan sebagai perangkat i/o
berkecepatan tinggi yang mampu mengirim informasi yang mendekati kecpatan
memory. hanya terdapat satu intruksi yang di hasilkan per blog yang berbeda
dengan perangkat yang mempunyai kecepatan tendah di mana intrupsi terjadi per
byte.
Keuntungan menggunakan mode DMA dapat dilihat pada operasi multitsting seperty
UNIX ,karena transfer data yang mode DMA akan menghematsumber daya CPU shg cpu
dapat menggunakan sumber daya tersebut untuk yang lain. Sedangkan pada DOS kita
harus menunggu operasi selesay terlebih dahulu baru bisa menggunakan yang
lainnya.
Ada dua jenis DMA :
1. Thrid-party DMA yang menggunakan
DMA controler yang terdapat pada Motherboard untuk mengerjakan proses.
2. Frish-party DMA
Busmastering DMA dimana proses di kerjakan oleh bagian logic di interface card.
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 alamat- alamat pada bus tersebut untuk melakukan transfer tanpa bantuan CPU.
Tiga langkah dalam transfer DMA:
1. 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.
2. Pengendali DMA memulai operasi (menyiapkan bus, menyediakan alamat, menulis dan membaca data), sampai seluruh blok sudah di transfer.
3. Pengendali DMA meng-interupsi prosesor, dimana selanjutnya akan ditentukan tindakan berikutnya.
Pada dasarnya, DMA mempunyai dua metode yang berbeda dalam mentransfer data. Metode yang pertama adalah 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 di-set idle, tidak melakukan instruksi operasi untuk menjaga internal register. Tipe operasi DMA seperti ini ada pada kebanyakan komputer.
Metode yang kedua, mengikut-sertakan 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.
Handshaking
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-acknowledge diterima, 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.
Cara-cara 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.
Keterbatasan Standard DMA
Sedangkan
penggunaan DMA memberikan perbaikan yang signifikan atas transfer data prosesor
dikontrol, juga akhirnya mencapai titik di mana kinerjanya menjadi faktor
pembatas. DMA pada bus ISA telah terjebak pada tingkat kinerja yang sama selama
lebih dari 10 tahun. Untuk berusia 10 MB XT hard disk, DMA adalah pemain top. Untuk
8 GB hard disk modern, mentransfer beberapa megabyte per detik, DMA tidak
cukup.
Pada
mesin yang lebih baru, disk dikendalikan baik menggunakan diprogram I / O (PIO)
atau pihak pertama DMA (bus mastering) pada bus PCI, dan tidak menggunakan ISA
DMA standar yang digunakan untuk perangkat seperti kartu suara. Modus transfer
hard disk dibahas secara rinci di sini. Jenis DMA tidak bergantung pada lambat
pengendali ISA DMA, dan memungkinkan perangkat ini kinerja tinggi bandwidth
yang mereka butuhkan. Bahkan, banyak perangkat yang digunakan untuk menggunakan
DMA pada ISA menggunakan bus bus mastering atas bus PCI untuk kinerja yang
lebih cepat. Ini termasuk kartu SCSI high-end baru, dan bahkan jaringan dan
kartu video.
Direct Memory Access (DMA) Channels
Akses
memori langsung (DMA) saluran jalur sistem yang digunakan oleh banyak perangkat
untuk mentransfer informasi langsung ke dan dari memori. Saluran DMA tidak
hampir sama "terkenal" sebagai IRQs sebagai sumber daya sistem pergi.
Hal ini sebagian besar untuk alasan yang baik: ada sedikit dari mereka dan
mereka digunakan oleh banyak perangkat yang lebih sedikit, dan karenanya mereka
biasanya menyebabkan lebih sedikit masalah dengan pengaturan sistem. Namun,
konflik pada saluran DMA dapat menyebabkan masalah sistem yang sangat aneh dan
bisa sangat sulit untuk mendiagnosa. DMA digunakan paling sering hari ini oleh
disk drive floppy, tape drive dan kartu suara.
DMA Saluran Fungsi dan Operasi
Bagian
ini mengambil melihat saluran DMA dan bagaimana mereka bekerja. Ini termasuk
penjelasan tentang berbagai jenis saluran DMA, DMA controller, dan ringkasan
saluran DMA yang berbeda yang digunakan dalam PC.
Mengapa Saluran DMA Apakah Diciptakan untuk
Transfer Data
Seperti
yang Anda tahu, prosesor adalah "otak" dari mesin, dan dalam banyak
hal juga dapat disamakan dengan konduktor dari sebuah orkestra. Pada mesin awal
prosesor benar-benar melakukan hampir segalanya. Selain menjalankan program itu
juga bertanggung jawab untuk mentransfer data ke dan dari peripheral. Sayangnya,
memiliki prosesor melakukan transfer ini sangat tidak efisien, karena kemudian
tidak dapat melakukan hal lain.
Penemuan
DMA memungkinkan perangkat untuk memotong "orang tengah", yang
memungkinkan prosesor untuk melakukan pekerjaan lain dan peripheral untuk
mentransfer data diri, yang menyebabkan peningkatan kinerja. Saluran khusus
diciptakan, bersama dengan sirkuit untuk mengendalikan mereka, yang
memungkinkan transfer informasi tanpa prosesor mengontrol setiap aspek dari
transfer. Sirkuit ini biasanya bagian dari chipset sistem pada motherboard.
Perhatikan
bahwa saluran DMA hanya pada bus ISA (EISA dan dan VLB, karena mereka adalah
turunan dari itu). Perangkat PCI tidak menggunakan saluran DMA standar sama
sekali.
DMA Controller
DMA
controller, yang dibangun ke dalam chipset sistem pada PC modern, mengelola
standar transfer DMA. PC asli dan XT memiliki salah satu kontroler ini dan
didukung 4 channel DMA, 0-3.
Dimulai
dengan IBM AT, sebuah DMA controller kedua ditambahkan. Banyak cara yang
mengganggu kontroler kedua mengalir dengan pertama, DMA controller pertama mengalir
untuk kedua. Perbedaannya adalah bahwa dengan IRQs, controller kedua mengalir
untuk yang pertama, tetapi dengan DMA yang pertama mengalir untuk kedua. Akibatnya,
ada 8 DMA, 0-7, namun DMA 4 tidak bisa digunakan. Tidak ada rerouting seperti
IRQ2 dan IRQ9 sini, karena semua DMA asli (0-3) masih dapat digunakan secara
langsung.
Pihak Ketiga dan First-Party DMA (Menguasai
Bus)
Standar
DMA kadang-kadang disebut "pihak ketiga" DMA. Hal ini mengacu pada
fakta bahwa kontroler sistem DMA sebenarnya melakukan transfer (pertama dua
pihak pengirim dan penerima transfer). Ada juga jenis DMA yang disebut
"pihak pertama" DMA. Dalam situasi ini, perangkat melakukan transfer
benar-benar mengambil kontrol dari sistem bus untuk melakukan transfer. Hal ini
juga disebut bus mastering.
Mastering
bus memberikan kinerja yang jauh lebih baik daripada DMA biasa karena perangkat
modern memiliki jauh lebih cerdas dan lebih cepat sirkuit DMA dibangun ke
mereka daripada ada di standar ISA DMA controller tua. Mode DMA baru sekarang
tersedia, seperti Ultra DMA (mode 3 atau DMA-33) yang menyediakan kecepatan
transfer yang sangat tinggi.
DMA Saluran dan Sistem Bus
Semua
saluran DMA kecuali channel 4 dapat diakses ke perangkat pada sistem bus ISA. Channel
4 digunakan untuk kaskade dua DMA controller bersama-sama. Perangkat PCI tidak
menggunakan saluran sistem DMA standar.
Seperti
halnya dengan IRQs, kedua DMA controller ditambahkan ketika bus ISA diperluas
untuk 16 bit dengan penciptaan AT. Garis untuk mengakses saluran DMA ekstra
tersebut ditempatkan pada bagian kedua dari slot AT yang digunakan oleh kartu
16-bit. Ini berarti bahwa hanya kartu 16-bit dapat mengakses saluran DMA 5, 6
atau 7. Sayangnya, banyak perangkat bahkan saat ini masih hanya kartu 8-bit. Anda
dapat memberitahu dengan melihat mereka dan melihat bahwa mereka hanya
menggunakan bagian pertama dari dua bagian konektor bus ISA pada motherboard.
Ringkasan Saluran DMA dan Penggunaan Khas
mereka
Tabel
di bawah ini memberikan ringkasan informasi tentang 8 channel nomor DMA di PC
biasa. Anda mungkin menemukan tabel ini berguna ketika mempertimbangkan
bagaimana mengkonfigurasi sistem anda, atau untuk menyelesaikan konflik DMA. Untuk
melihat DMA penggunaan saluran yang diselenggarakan oleh perangkat bukan nomor
DMA.
DMA
|
Jalur Bus?
|
Standar
khas Gunakan
|
Penggunaan
umum lainnya
|
0
|
Tidak
|
Memori
Segarkan
|
Tak
satupun
|
font = "Arial, Arial,
Helvetica">
1
|
8/16-bit
|
Kartu
suara (DMA rendah)
|
Adapter
SCSI tuan rumah, ECP port paralel, kartu rekaman akselerator, kartu jaringan,
modem suara
|
2
|
8/16-bit
|
Pengontrol
floppy disk
|
Kartu Tape
akselerator
|
3
|
8/16-bit
|
Tak
satupun
|
ECP port
paralel, tuan adapter SCSI, kartu rekaman akselerator, kartu suara (DMA
rendah), kartu jaringan, modem suara, controller hard disk pada PC tua / XT
|
4
|
tidak
|
None; kaskade
untuk DMA 0-3
|
Tak
satupun
|
5
|
16-bit
hanya
|
Kartu
suara (DMA tinggi)
|
Tuan rumah
adapter SCSI, kartu jaringan
|
6
|
16-bit
hanya
|
Tak
satupun
|
Kartu
suara (DMA tinggi), kartu jaringan
|
7
|
16-bit
hanya
|
Tak
satupun
|
Kartu
suara (DMA tinggi), kartu jaringan
|
Referensi blog