Apa Itu Direct Memory Access (DMA) dan Bagaimana Cara Kerjanya? [MiniTool Wiki]
What Is Direct Memory Access
Navigasi Cepat:
Anda bisa mengadopsi RDMA teknologi yang memungkinkan komputer dalam jaringan untuk bertukar data di memori utama tanpa melibatkan prosesor, cache, atau sistem operasi salah satu komputer. Tetapi Anda juga dapat menggunakan fitur DMA untuk langsung mengirim data dari perangkat yang terpasang ke memori di motherboard komputer. Posting ini dari MiniTool terutama berbicara tentang DMA.
Definisi Akses Memori Langsung
Pertama-tama, apa itu Direct Memory Access? Direct Memory Access dapat disingkat menjadi DMA, yang merupakan fitur sistem komputer. Ini memungkinkan perangkat input / output (I / O) mengakses memori sistem utama ( memori akses acak ), tidak tergantung pada unit pemrosesan pusat (CPU), yang mempercepat operasi memori.
Tip: Anda mungkin tertarik dengan posting ini - 8 Solusi Berguna untuk Memperbaiki CPU Anda 100% di Windows 10 .
Tanpa Akses Memori Langsung, saat CPU menggunakan input / output yang diprogram, biasanya CPU tersebut terisi penuh selama seluruh operasi baca atau tulis, sehingga tidak dapat melakukan tugas lain. Dengan DMA, CPU pertama-tama memulai transfer, kemudian melakukan operasi lain saat transfer sedang berlangsung, dan akhirnya menerima interupsi dari pengontrol DMA (DMAC) saat operasi selesai.
Direct Memory Access berguna setiap kali CPU tidak dapat mengikuti kecepatan transfer data, atau saat CPU perlu melakukan pekerjaan sambil menunggu transfer data I / O yang relatif lambat.
Beberapa sistem perangkat keras mengadopsi Akses Memori Langsung, seperti pengontrol disk drive, kartu grafis, kartu jaringan, dan kartu suara. DMA juga digunakan untuk transfer data on-chip dalam prosesor multi-core. Dibandingkan dengan komputer tanpa saluran Akses Memori Langsung, komputer dengan saluran DMA dapat mentransfer data antar perangkat dengan overhead CPU yang jauh lebih sedikit.
Direct Memory Access juga dapat digunakan untuk 'memory to memory' untuk menyalin atau memindahkan data ke dalam memori. Itu dapat mentransfer operasi memori yang mahal (seperti salinan besar atau operasi pengumpulan-pencar) dari CPU ke mesin DMA khusus. DMA penting dalam arsitektur komputasi network-on-chip dan memori.
Bagaimana Cara Kerja Akses Memori Langsung?
Lalu bagaimana cara kerja Direct Memory Access? Standard Direct Memory Access (juga disebut DMA pihak ketiga) mengadopsi pengontrol DMA. Pengontrol DMA dapat menghasilkan alamat memori dan meluncurkan siklus baca atau tulis memori. Ini mencakup beberapa register perangkat keras yang dapat dibaca dan ditulis oleh CPU.
Register ini terdiri dari register alamat memori, register hitungan byte, dan satu atau lebih register kontrol. Bergantung pada fitur yang disediakan oleh pengontrol Akses Memori Langsung, register kontrol ini dapat menunjuk beberapa kombinasi sumber, tujuan, arah transfer (membaca dari atau menulis ke perangkat I / O), ukuran unit transfer, dan / atau jumlah byte untuk ditransfer dalam satu burst.
Untuk melakukan operasi masukan, keluaran, atau memori-ke-memori, prosesor host menginisialisasi pengontrol DMA dengan jumlah kata yang akan ditransfer dan alamat memori yang akan digunakan. Kemudian CPU memerintahkan perangkat periferal untuk memulai transfer data.
Kemudian pengontrol Direct Memory Access menawarkan alamat dan membaca / menulis garis kontrol ke memori sistem. Setiap kali satu byte data disiapkan untuk ditransfer antara perangkat periferal dan memori, pengontrol DMA menaikkan register alamat internalnya hingga blok data lengkap ditransfer.
Mode Operasi
Direct Memory Access bekerja secara berbeda dalam mode operasi yang berbeda.
Mode rentetan
Dalam mode burst, blok data lengkap ditransmisikan secara berurutan. Setelah CPU mengizinkan pengontrol DMA untuk mengakses bus sistem, pengontrol DMA akan mentransfer semua byte data di blok data sebelum melepaskan kontrol bus sistem kembali ke CPU, tetapi hal itu akan menyebabkan CPU menjadi tidak aktif untuk a waktu yang cukup lama. Mode ini juga disebut 'Block Transfer Mode'.
Mode Mencuri Siklus
Mode mencuri siklus digunakan dalam sistem di mana CPU tidak dapat dinonaktifkan selama jangka waktu yang diperlukan untuk mode transfer burst. Dalam mode mencuri siklus, pengontrol DMA memperoleh akses ke bus sistem dengan menggunakan sinyal BR (Bus Request) dan BG (Bus Grant), yang sama dengan mode burst. Kedua sinyal ini mengontrol antarmuka antara CPU dan pengontrol DMA.
Di satu sisi, pada mode cycle stealing, kecepatan transmisi blok data tidak secepat pada mode burst, tetapi di sisi lain, waktu idle CPU tidak sepanjang mode burst.
Mode Transparan
Mode transparan memerlukan waktu paling lama untuk mentransfer blok data, tetapi juga merupakan mode paling efisien dalam hal performa sistem secara keseluruhan. Dalam mode transparan, pengontrol Direct Memory Access mentransfer data hanya ketika CPU melakukan operasi yang tidak menggunakan bus sistem.
Keuntungan utama dari mode transparan adalah bahwa CPU tidak pernah berhenti menjalankan programnya, dan transfer Akses Memori Langsung gratis dalam hal waktu, sedangkan kerugiannya adalah perangkat keras perlu menentukan kapan CPU tidak menggunakan bus sistem, yang dapat menjadi rumit. Ini juga disebut 'mode transfer data DMA tersembunyi'.