دسترسی مستقیم به حافظه
دستیابی مستقیم به حافظه یا دسترسی مستقیم به حافظه (به انگلیسی: Direct memory access) (اختصاری DMA) یک ویژگی سیستم های کامپیوتری است که به بعضی از زیر واحدهای سختافزاری کامپیوتر اجازه دسترسی به حافظه اصلی سیستم(به انگلیسی: RAM) را به صورت مستقل از واحد پردازش مرکزی میدهد.
بدون DMA، زمانی که پردازشگر از ورودی/خروجی برنامهریزی شده (Programmed I/O) استفاده میکند، در تمام مدتی که فرایند خواندن یا نوشتن در حال انجام است، پردازشگر بهطور کامل مشغول است، و در نتیجه، نمیتواند روی وظایف دیگری کار کند. با استفاده از DMA، پردازشگر ابتدا فرایند انتقال را آغاز کرده، و هنگامی که انتقال در جریان است مشغول کارهای دیگر میشود. در انتها، زمانی که کل فرایند به اتمام برسد، وقفهای از کنترل گر DMA دریافت می کند. این قابلیت در دو حالت بسیار مفید است. یکی، زمانی که سرعت انتقال از سرعت کار پردازشگر بالاتر است، و دیگری زمانی که پردازشگر به جای انتظار برای یک انتقال کُند، میتواند کارهای دیگری در سیستم انجام دهد. بسیاری از سیستمهای سخت افزاری، شامل کنترل گرهای دیسک گردان ها، کارتهای گرافیکی، کارتهای شبکه و کارتهای صدا از قابلیت DMA استفاده میکنند. همچنین، این قابلیت برای انتقال داده در داخل تراشه در پردازندههای چند هسته ای نیز استفاده میشود.
رایانههایی که از کانال DMA بهره می برند، توانایی انتقال داده بین دستگاهها را با سربار بسیار کمتری برای پردازشگر دارند. بهطور مشابه، یک عنصر پردازش درون یک پردازنده ی چند هستهای نیز میتواند بدون اشغال کردن زمان پردازشگر خود، داده را به حافظه ی محلی خود انتقال دهد یا از آن دریافت کند. در نتیجه، عمل محاسبه و انتقال داده میتواند بهطور موازی پیش برود.