Menjelaskan Gambar DMA (Direct Memory Access)
A. Pengertian DMA
DMA adalah singkatan dari Direct Memory Access adalah kemampuan pada komputer modern yang memungkinkan perangkat periferal untuk mengirim data ke memori motherboard tanpa intervensi dari CPU.
Pengontrol DMA adalah perangkat keras khusus – sekarang tertanam ke dalam chip dalam prosesor terintegrasi modern – yang mengelola transfer data dan menengahi akses ke bus sistem. Kontroler diprogram dengan pointer sumber dan tujuan (tempat membaca / menulis data), penghitung untuk melacak jumlah byte yang ditransfer, dan pengaturan, yang mencakup I / O dan tipe memori, interupsi dan status untuk siklus CPU.
Transfer dimulai ketika pengontrol DMA diberitahu tentang kebutuhan untuk memindahkan data ke memori oleh beberapa peristiwa (tekan keyboard atau klik mouse, misalnya). Pengontrol menegaskan sinyal permintaan DMA ke CPU untuk menggunakan bus sistem. CPU menyelesaikan operasi saat ini dan memberikan kontrol bus ke pengontrol DMA melalui sinyal yang dikenali DMA. Pengontrol kemudian membaca dan menulis data dan mengontrol sinyal seolah-olah itu adalah CPU, yang pada saat itu adalah dinyatakan (idle). Setelah menyelesaikan transfer, pengontrol DMA menegaskan sinyal permintaan DMA dan CPU pada gilirannya menghapus sinyal pengenalan DMA dan melanjutkan kontrol bus.
DMA diimplementasikan dalam arsitektur bus komputer untuk mempercepat operasi komputer dan memungkinkan multitasking. Biasanya, CPU akan terisi penuh dalam operasi baca / tulis apa pun; Mengaktifkan DMA memungkinkan membaca / menulis data dalam memori internal, memori eksternal dan periferal tanpa keterlibatan CPU, sehingga membuat prosesor tersedia untuk tugas-tugas lain. Ini memastikan operasi yang efisien, karena perpindahan data ke / dari memori adalah salah satu operasi komputer yang paling umum dan membebaskan CPU dari overhead ini dapat menyebabkan peningkatan kinerja yang signifikan.
B. Fungsi DMA
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 juga digunakan intra-chip untuk transfer data dalam multi-core, terutama dalam sistem multiprocessor-on-chip, di mana elemen-nya adalah proses yang dilengkapi dengan memori lokal (sering disebut alas memori) dan DMA digunakan untuk mentransfer data antara lokal memori dan memori utama. Komputer yang ada DMA channel dapat mentransfer data dari dan ke perangkat dengan CPU overhead jauh lebih sedikit daripada komputer tanpa saluran DMA . Demikian pula di dalam sebuah elemen pemrosesan multi-core processor dapat mentransfer data dari memori tanpa menempati prosesor waktu, mesin dan membuat data tumpang tindih.
C. Cara Kerja DMA
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.
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.
D. Jalur-Jalur Transfer DMA
Terdapat tiga jalur independen untuk transfer DMA. Setiap saluran yang memicu untuk menerima transfer melalui besar multiplexer yang memilih antara banyak sinyal, transfer terjadi saat sinyal diaktifkan. DMA controller menerima sinyal pemicu tetapi akan mengabaikan itu dalam kondisi tertentu. Hal ini diperlukan untuk cadangan memori bus untuk memprogram ulang dan me non-maskable interrupts. Pengendali juga menangani konflik untuk memicu bersamaan. Ketika beberapa pemicuan terjadi secara bersamaan, mereka muncul di urutan modul prioritas. DMA yang kemudian memicu ke modul yang memicu diaktifkan. DMA saluran yang akan menyalin data dari blok atau lokasi memori ke lokasi memori tujuan atau blok
E. Kelebihan DMA
1. Dapat menirukan sebagian fungsi processor.
2. Dapat mengambil alih fungsi processor yang berhubungan dengan transfer data.
3. CPU dapat melakukan menejemen operasi baca tulis (transfer data) dengan baik dan juga dapat menyelesaikan instruksi yang lain.
4. Mendapat informasi tentang jumlah data bit yang ditransfer, alamat dari device dan memory yang diperlukan dan arah dari aliran data.
F. Kelemahan DMA
1. Transfer rate data terbatas.
2. Masih memerlukan keterlibatan CPU, sehingga CPU menjadi lebih sibuk.
Tanpa DMA, diprogram menggunakan Input/ Output (I/O) mode untuk berkomunikasi dengan perangkat pinggiran, atau menggunakan/ menyimpan instruksi dalam kasus multicore chips, CPU biasanya penuh diduduki untuk seluruh durasi dari operasi membaca atau menulis, dan dengandemikian tidak tersedia untuk melakukan pekerjaan lain. Dengan DMA, CPU akan melakukan transfer, lakukan operasi lainnya sementara transfer yang sedang berlangsung, dan menerima mengganggu dari DMA controller setelah operasi telah selesai. Hal ini sangat berguna dalam real-time komputasi di mana aplikasi tidak stalling belakang yang berbarengan operasi adalah penting. Dan aplikasi lain yang berhubungan dengan berbagai daerah adalah bentuk streaming pemrosesan dimana perlu ada pengolahan data dan transfer paralel, untuk mencapai throughput memadai
- DMA controller mengambil alih bus sebanyak satu siklus
- DMA mentransfer satu word data
- Pengambil alihan bus oleh DMA bukan interrupt --> CPU tidak perlu menyimpan context
- CPU hanya tertunda (suspend) sesaat sebelum mengakses bis, yaitu sebelum operand atau data diambil atau data ditulis
- Pengaruh terhadap CPU yaitu memperlambat CPU , tetapi masih lebih baik dari pada CPU terlibat langsung pada transfer data.
- Konfigurasi I
- Hanya menggunakan single bus
- DMA dan modul I/O terpisah
- Setiap transfer harus mengakses bus 2 kali
- Konfigurasi II
- Hanya menggunakan single bus
- DMA controller dan modul I/O terintegrasi
- satu DMA controller dapat mengangani lebih dari 1 modu I/O
- Setiap transfer hanya perlu mengakses bus satu kali saja
- Konfigurasi III
- digunakan bus I/O secara terpisah
- semua modul I/O cukup dilayani dengan sebuah DMA
- Setiap transfer hanya perlu mengakses bus satu kali saja
- Antarmuka mengirimkan pengontrol DMA permintaan DMA layanan.
- Permintaan Bus dibuat untuk pin terus (Tinggi aktif) pada mikroprosesor 8086 dan controller kontrol keuntungan dari bus.
- Dana bantuan Bus dikembalikan ke DMA controller dari Hold Acknowledge (HLDA) pin (aktif tinggi) pada mikroprosesor 8086.
- Para DMA controller tempat isi alamat register ke bus alamat.
- 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.)
- Byte data ditransfer ke lokasi memori yang ditunjukkan oleh bus alamat.
- Antarmuka kait data.
- Permintaan Bus terjatuh, pin HOLD pergi rendah, dan controller relinquishes bus.
- Hibah Bus dari mikroprosesor 8086 dijatuhkan dan pin HLDA pergi Rendah.
- Register alamat bertambah oleh 1.
- Jumlah byte decremented oleh 1.
- Jika jumlah byte adalah bukan nol, kembali ke langkah 1, jika tidak berhenti.
Referensi:
https://www.sridianti.com/pengertian-dma-direct-memory-access.html
https://wildanpamungkas.blogspot.com/2017/04/dma-direct-memmory-access.html
http://www.belajartekhnik.com/2015/03/pengertian-dma-direct-access-memory.html
http://www.batikanime.com/2017/05/pengertian-dan-fungsi-dma-direct-memory.html
http://hestymayangsari99.blogspot.com/2018/11/dma-direct-access-memory.html


Tidak ada komentar:
Posting Komentar