دسترسی مستقیم به حافظه

دسترسی مستقیم به حافظه



دسترسی مستقیم به حافظه: دستیابی مستقیم به حافظه یا دسترسی مستقیم به حافظه (به انگلیسی: Direct memory access) (با نماد اختصاری DMA) یک ویژگی کامپیوترهای مدرن است که به بعضی از زیرساخت‌های سخت‌افزاری کامپیوتر اجازه دسترسی به حافظه سیستم را بصورت مستقل از واحد پردازش مرکزی می‌دهد.

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

رایانه هایی که از کانال DMA بهره می برند، توانایی انتقال داده بین دستگاه ها را با سربار بسیار کمتری برای پردازشگر دارند. به طور مشابه، یک پردازه درون یک پردازنده ی چند هسته ای نیز میتواند بدون هدر کردن وقت پردازشگر خود، داده را به حافظه ی محلی خود انتقال دهد. در نتیجه، عمل محاسبه و انتقال داده میتواند به طور موازی پیش برود.