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 (CPU).
Sistem DMA
Hubungan pada system
DMA dilakukan oleh sirkuit kontrol yang merupakan bagian dari antar muka
perangkat I/O dengan modus transfer. 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.
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.
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.
Tiga langkah dalam transfer DMA:
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 sumbe 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
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 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.
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.
Prinsip kerja DMA :
• CPU akan mendelegasikan kerja I/O kepada DMA
• CPU hanya akan terlibat pada awal proses untuk memberikan instruksi lengkap pada DMA dan akhir proses saja
• CPU dapat menjalankan proses lainnya tanpa banyak terganggu dengan interupsi
• Melaksanakan transfer data secara mandiri :
• CPU hanya akan terlibat pada awal proses untuk memberikan instruksi lengkap pada DMA dan akhir proses saja
• CPU dapat menjalankan proses lainnya tanpa banyak terganggu dengan interupsi
• Melaksanakan transfer data secara mandiri :
1. DMA memerlukan pengambilalihan kontrol bus dari CPU
2. DMA akan menggunakan bus bila CPU tidak menggunakannya atau DMA memaksa CPU untuk menghentikan sementara penggunaan bus
3. Teknik cyclestealing, modul DMA mengambil alih siklus bus
Contoh cara kerja
External Harddisk Controller
Pada motherboard
yang sudah memiliki UDMA/66 atau ATA/66 umumnya memiliki chip set tersendiri .
Sebagai contoh disini adalah Controller dari Highpoint. Cara kerja controller
harddisk pada motherboard pengolahan data dari harddisk ke processor melalui
memory computer. Selanjutnya data dari memory diambil ke processor .
Processing Harddisk tanpa DMA
Pada penerapan
teknologi Highpoint chipset, mengunakan Direct Memory Access (DMA) langsung
tanpa memindahkan data ke processor. Sehingga proses pada utilitas
(pengerjaan) di processor computer menjadi lebih kecil. Dengan demikian
kecepatan pada harddisk dalam mentranfer data akan sangat cepat dan pengunaan
processor dapat akan semakin kecil (1-5% tergantung kecepatan processor dan
harddisk).
Processing Harddisk dengan DMA
Tidak ada komentar:
Posting Komentar