آشنایی با واحد DMA در میکروکنترلر ARM

5 دقیقه زمان مطالعه

ARM چیست؟

واحد DMA به معنای واحد دسترسی مستقیم به حافظه است که واحدی است برای انتقال داده از حافظه RAM به اجزاء کامپیوتر بدون پردازش آن توسط CPU میباشد که یکی از ویژگی های کامپیوتر های مدرن محسوب می شود. پردازنده ARM یکی از اعضای خانواده CPU مبتنی بر معماری RISC است. میکروکنترلر ARM مخفف عبارت Advanced RISC Machine است.

این شرکت پردازنده های چند هسته ای 32 بیتی و 64 بیتی را ساخته است. پردازنده‌های RISC به گونه‌ای طراحی شده‌اند که تعداد کمتری از انواع دستورالعمل‌های کامپیوتری را انجام ‌دهند تا بتوانند با سرعت بیشتری کار کنند و میلیون‌ها دستورالعمل را در هر ثانیه انجام دهند.

 پردازنده‌های RISC با کنار گذاشتن دستورالعمل‌های غیر ضروری و بهینه سازی مسیرها، عملکرد بهتری را ارائه می‌دهند. از این پردازنده‌ها به طور گسترده‌ای در دستگاه های الکترونیکی مصرفی مانند تلفن‌های هوشمند، تبلت‌ها، پخش کننده‌های چندرسانه‌ای و سایر دستگاه‌های تلفن همراه مانند دستگاه‌های پوشیدنی مورد استفاده قرار می‌گیرند.

به دلیل مجموعه دستورالعمل کاهش یافته‌، آنها به ترانزیستورهای کمتری احتیاج دارند‌ که اندازه قالب کوچکتر را برای مدارهای مجتمع (IC) امکان پذیر می‌کند. اندازه کوچکتر پردازنده ARM، کاهش پیچیدگی و کاهش مصرف انرژی باعث می‌شود آنها برای دستگاه‌های کوچک به طور فزاینده‌ای مناسب باشند که با تمامی این باحث به طور کامل تری در دوره آموزش طراحی میکروکنترلرهای ARM بیشتر آشنا می شوید. حال می خواهیم در این مقاله به بررسی واحد DMA بپردازیم.

DMA
DMA

واحد DMA چیست؟

DMA به دستگاه‌های جانبی موجود روی گذرگاه‌های جانبی اجازه می‌دهد تا داده‌ها را مستقیما به حافظه انتقال دهند. هر بیت توسط CPU کنترل می‌شود. بنابراین DMA باعث استفاده کارآمدتر و بدون وقفه از دستگاه می‌شود، سرعت انتقال داده را افزایش و هزینه‌های سخت افزاری را کاهش می‌دهد.

DMA تکنیکی شناخته شده برای این است که دستگاه‌های I / O بدون نیاز به ریز پردازنده به حافظه دسترسی مستقیم داشته باشند.

DMA مخفف چیست؟

DMA مخفف کلمه DIRECT MEMORY ACCESS می باشد و یکی از سریعترین راه‌های ورود داده به بافر است. بافر حافظه‌ای است که هم به صورت سخت افزاری و هم به صورت نرم افزاری موجود بوده و برای ذخیره داده و اطلاعات به صورت موقت طراحی شده است. وقتی اطلاعات و داده‌ها پشت سر هم و به سرعت به واحد DMA می‌رسد این دستگاه آن اطلاعات و داده‌ها را به بافر منتقل می‌کند تا به صورت موقت نگهداری شود.

کانال واحد DMA

یک کانال DMA یک راه برای انتقال داده به دستگاه‌های I / O (ورودی/خروجی) است. از کانال‌های DMA برای تبادل داده بین دستگاه و حافظه سیستم استفاده می‌شود. هر چهار منبع سیستم یعنی IRQها، آدرس‌های ورودی/خروجی، آدرس‌های حافظه و کانال‌های DMA به گذرگاه (bus) نیاز دارند. گذرگاه وظیفه ارتباط بین این منابع سیستمی و کنترل عملکرد آنها را دارد.

 برخی از خطوط گذرگاه (bus) برای IRQ‌ها، برخی برای آدرس‌ها (آدرس‌های I / O و حافظه) و بعضی دیگر برای کانال‌های DMA استفاده می‌شود. کانال DMA به یک دستگاه امکان انتقال داده‌ها بدون ایجاد  فشار اضافه به CPU می‌دهد. بدون وجود کانال‌های DMA، CPU، هر قسمتی از داده‌ها را با استفاده از یک گذرگاه (bus) به درگاه‌های ورودی و خروجی دستگاه کپی می‌کند.

استفاده از یک گذرگاه (bus) محیط CPU را در طی فرایند خواندن یا نوشتن اشغال می‌کند و اجازه نمی‌دهد تا کار دیگری را پس از اتمام کار جاری انجام دهد. با استفاده از واحد DMA ، پردازنده می‌تواند وظایف دیگر را در حین انتقال داده انجام دهد. انتقال داده‌ها ابتدا توسط CPU آغاز می‌شود. در حین انتقال داده‌ها بین کانال DMA و آدرس‌های ورودی و خروجی دستگاه، CPU وظایف دیگری را انجام می‌دهد. وقتی انتقال داده کامل شد، CPU یک درخواست قطع از کنترلر DMA دریافت می‌کند.

میکروکنترلر ARM
میکروکنترلر ARM

DMA در کامپیوترهای قدیمی

در کامپیوترهای قدیمی، چهار کانال DMA به شماره‌های 0 ، 1 ، 2 و 3 وجود داشتند. وقتی گذرگاه (bus)  ISA وارد بازار شد،کانال‌های 5 ، 6 و 7 اضافه شدند. ISA یک استاندارد گذرگاه (bus) برای کامپیوترهای سازگار با IBM بود که در سال 1982 به صورت 16 بیتی با سرعت 8 مگاهرتز ساخته شد و به کامپیوتر اجازه می‌داد تا کار خود را با سرعت بیشتری شروع کند.

 امروزه اسلات‌ کارت گرافیک (AGP) و اسلات‌های پی سی آی (PCI) جایگزین گذرگاه‌ ISA شده است که بسیار سریعتر هستند. با هر DMA تقریباً 2 مگابایت داده در هر ثانیه منتقل می‌شود. اما در کامپیوترهای مدرن برای بهبود کار اجزا و قسمت‌های مختلف سیستم و بهبود عملکرد CPU از DMA به صورت پیشرفته تری استفاده شده است. چرا که DMA به سخت افزارهای کامپیوتر اجازه دسترسی مستقیم به حافظه را می‌‌دهد.

CPU که به طور کامل مشغول فرایند خواندن و نوشتن است بدون وجود DMA امکان انجام کارهای دیگر را ندارد و فشار زیادی بر روی آن وارد می‌شود. با وجود آن CPU با سرعت بیشتری کارهای خود را انجام می‌دهد.

منبع : techopedia

منبع : semanticscholar

منبع : techtarget

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *