Apa itu Akses Memori Langsung (DMA) dan Bagaimana Ia Berfungsi? [MiniTool Wiki]
What Is Direct Memory Access
Navigasi Pantas:
Anda boleh menggunakan RDMA teknologi untuk membolehkan komputer dalam rangkaian menukar data dalam memori utama tanpa melibatkan pemproses, cache atau sistem operasi kedua-dua komputer. Tetapi anda juga dapat menggunakan fitur DMA untuk langsung mengirim data dari perangkat terpasang ke memori di motherboard komputer. Catatan ini dari MiniTool terutamanya bercakap mengenai DMA.
Definisi Akses Memori Langsung
Pertama sekali, apa itu Akses Memori Langsung? Akses Memori Langsung dapat disingkat menjadi DMA, yang merupakan ciri sistem komputer. Ia membolehkan peranti input / output (I / O) mengakses memori sistem utama ( memori capaian rawak , bebas dari unit pemprosesan pusat (CPU), yang mempercepat operasi memori.
Petua: Anda mungkin berminat dengan siaran ini - 8 Penyelesaian Berguna untuk Memperbaiki CPU Anda 100% di Windows 10 .
Tanpa Akses Memori Langsung, ketika CPU menggunakan input / output yang diprogramkan, biasanya digunakan sepenuhnya selama operasi membaca atau menulis, sehingga tidak dapat melakukan tugas lain. Dengan DMA, CPU pertama kali melakukan pemindahan, kemudian melakukan operasi lain semasa pemindahan sedang berlangsung, dan akhirnya menerima gangguan dari pengawal DMA (DMAC) ketika operasi selesai.
Akses Memori Langsung berguna setiap kali CPU tidak dapat mengikuti laju transfer data, atau ketika CPU perlu melakukan kerja sambil menunggu pemindahan data I / O yang agak lambat.
Banyak sistem perkakasan menggunakan Akses Memori Langsung, seperti pengawal pemacu cakera, kad grafik, kad rangkaian, dan kad suara. DMA juga digunakan untuk pemindahan data on-chip dalam pemproses multi-teras. Dibandingkan dengan komputer tanpa saluran Akses Memori Langsung, komputer dengan saluran DMA dapat memindahkan data antara peranti dengan overhead CPU yang jauh lebih sedikit.
Akses Memori Langsung juga dapat digunakan untuk 'memori ke memori' untuk menyalin atau memindahkan data ke dalam memori. Ia dapat memindahkan operasi memori yang mahal (seperti salinan besar atau operasi penyebaran) dari CPU ke mesin DMA khusus. DMA penting dalam seni bina rangkaian-on-chip dan pengkomputeran memori.
Bagaimana Akses Memori Langsung Berfungsi?
Lalu bagaimana Cara Akses Memori Langsung berfungsi? Akses Memori Langsung Piawai (juga disebut DMA pihak ketiga) menggunakan pengawal DMA. Pengawal DMA dapat menghasilkan alamat memori dan melancarkan kitaran membaca atau menulis memori. Ia merangkumi beberapa daftar perkakasan yang dapat dibaca dan ditulis oleh CPU.
Daftar ini terdiri daripada daftar alamat memori, daftar kiraan bait, dan satu atau lebih daftar kawalan. Bergantung pada ciri yang disediakan oleh pengawal Akses Memori Langsung, daftar kawalan ini dapat menetapkan beberapa kombinasi sumber, tujuan, arah pemindahan (baca dari atau tulis ke perangkat I / O), ukuran unit pemindahan, dan / atau jumlah bait untuk dipindahkan dalam satu ledakan.
Untuk melakukan operasi input, output, atau memori ke memori, pemproses host memulakan pengawal DMA dengan jumlah kata yang akan dipindahkan dan alamat memori yang akan digunakan. Kemudian CPU memerintahkan peranti periferal untuk memulakan pemindahan data.
Kemudian pengawal Akses Memori Langsung menawarkan alamat dan garis kawalan membaca / menulis ke memori sistem. Setiap kali bait data disiapkan untuk dipindahkan antara peranti periferal dan memori, pengawal DMA menambah daftar alamat dalamannya sehingga blok data lengkap dipindahkan.
Kaedah Operasi
Akses Memori Langsung berfungsi berbeza dalam mod operasi yang berbeza.
Mod Burst
Dalam mod burst, blok data penuh dihantar dalam urutan berterusan. Setelah CPU membenarkan pengawal DMA mengakses bus sistem, pengawal DMA akan memindahkan semua bait data di blok data sebelum melepaskan kawalan bus sistem kembali ke CPU, tetapi akan menyebabkan CPU tidak aktif untuk masa yang lama. Mod ini juga disebut 'Block Transfer Mode'.
Mod Mencuri Kitaran
Mod pencurian kitaran digunakan dalam sistem di mana CPU tidak dapat dinonaktifkan untuk jangka waktu yang diperlukan untuk mod perpindahan burst. Dalam mod pencurian kitaran, pengawal DMA memperoleh akses ke bus sistem dengan menggunakan isyarat BR (Permintaan Bas) dan BG (Bus Grant), yang sama dengan mod burst. Kedua-dua isyarat ini mengawal antara muka antara CPU dan pengawal DMA.
Di satu pihak, dalam mod pencurian kitaran, kecepatan penghantaran blok data tidak secepat dalam mode burst, tetapi di sisi lain, waktu siaga CPU tidak selagi dalam mod burst.
Mod Telus
Mod telus memerlukan masa yang paling lama untuk memindahkan blok data, tetapi ia juga merupakan mod yang paling efisien dari segi keseluruhan prestasi sistem. Dalam mod telus, pengawal Akses Memori Langsung memindahkan data hanya ketika CPU melakukan operasi yang tidak menggunakan bus sistem.
Kelebihan utama mod telus adalah bahawa CPU tidak pernah berhenti menjalankan programnya, dan pemindahan Akses Memori Langsung adalah percuma dari segi waktu, sementara kelemahannya ialah perkakasan perlu menentukan kapan CPU tidak menggunakan bus sistem, yang dapat menjadi rumit. Ini juga disebut 'mod pemindahan data DMA tersembunyi'.