بهترین و مطمئن ترین کارگزاران در افغانستان

DMA چیست؟

vdma - iranfpga

بلاک DMA چیست و چه کاری در FPGA ها انجام می دهد؟

مروری بر ip block های VDMA
همون طور که در بخش axi توضیح دادیم هر DMA چیست؟ تراشه از بلاک هایی تشکیل شده که اطلاعات رو بین هم منتقل می کنن. یکی از این بلاک ها، بلاک DMA هست .

حالا ببینیم این بلاک چه کاری انجام می دهد؟

(DMA (Direct Memory Access

این بلاک برای دسترسی مستقیم به حافظه به کار می‌ره و این امکان رو میده که داده ها از یه بخش سیستم به بخش دیگه منتقل شن‌. ساده ترین DMA چیست؟ کاربردش این هست که داده ها رو از یه قسمت حافظه به قسمت دیگه منتقل می کنه. هم چنین می تونن داده ها رو از هر تولید کننده داده (مثلا ADC) برای هر مصرف کننده داده بفرسته.

(VDMA (Video Direct Memory Access

در این بلاک axi قادر هست اطلاعاتی که در قالب memory mapped هستن رو به stream تبدیل کنه.(این قابلیت در DMA هم وجود داره)

از این بلاک برای پردازش ویدیو در fpga استفاده میشه . در واقع axi این بلاک پهنای باند زیادی داره که می تونه پروتکل های ویدیو رو ساپورت کنه .

خیلی از اپلیکیشن های ویدیو به بافر هایی نیاز دارن که بتونه تغییرات نرخ ارسال فریم ها و همین طور تغییر ابعاد تصاویر رو هندل کنه. و از نکات مثبت این بلاک اینه که این قابلیت رو داره.

در واقع از نقاط قوت این بلاک این هست که میشه پیش پردازش های اولیه رو مثل تغییر رزولوشن , زوم کردن , cropping و .. انجام داد.

تفاوت های این دو چیست؟

در axi VDMA قابلیت های جدیدی مثل سنکرون کردن فریم های دریافتی با استفاده از بافر های چرخشی ، تغییر دادن رزولوشن DMA چیست؟ و .. وجود داره. ولی در axi DMA دسترسی به حافظه به صورت مرسوم و قدیمی انجام میشه و اطلاعاتی که به صورت stream دریافت میشن به همون ترتیب در DDR های حافظه ذخیره میشن و قابل تغییر نیستن.

vdma - iranfpga

vdma - iranfpga

DMA چیست؟ معرفی Direct Memory Access در حافظه

DMA DMA چیست؟ یا Direct Memory Access چیست؟ همانطور که میدانید CPU یا پردازنده سیستم در فرآیند فراخوانی اطلاعات از حافظه RAM دخیل میباشد و برای انجام پردازش روی داده ها بایستی اطلاعات را از حافظه RAM فرخوانی کند همین امر موجب میشود که زمان زیادی برای انتقال داده ها از حافظه RAM به سایر دستگاه ها در کامپیوتر شود. اینجاست که تکنولوژی DMA پا به میان میگذارد تا انجام این فرآیند با سرعت بیشتری صورت پذیرد.

DMA یا Direct Memory Access روشی برای انتقال داده ها از حافظه RAM به اجزاء دیگر کامپیوتر بدون پردازش آن توسط CPU میباشد. از آنجا که داده های ورودی و خروجی از کامپیوتر توسط CPU پردازش میشوند، اما برخی از داده ها نیاز به پردازش ندارند و یا میتوانند توسط دستگاه دیگری در کامپیوتر مورد پردازش قرار گیرند. یکی از مزیت های اصلی تکنولوژی DMA در همین است که از بار پردازشی CPU میکاهد و راهی بهینه برای انتقال داده ها از حافظه RAM به سایر دستگاه های موجود در کامپیوتر ایجاد میکند.

به عنوان مثال کارت صدا ممکن است نیاز به داده هایی داشته باشد که در حافظه RAM سیستم ذخیره شده است از آنجایی که کارت صدا به تنهایی میتواند داده های صوتی را پردازش کند از این رو میتواند از DMA استفاده کند و با bypass کردن CPU و درگیر نکردن آن برای پردازش داده ها خودش پردازش لازم روی داده ها را انجام بدهد.

کارت های گرافیک نیز از تکنولوژی DMA پشتیبانی میکنند که میتوانند بدون درگیر کردن GPU برای انجام پردازش روی داده ها داده ها را از حافظه RAM فراخوانی کنند و روی آنها پردازش لازم را انجام دهند. هارد دیسک های پشتیبانی کننده از تکنولوژی Ultra DMA از DMA برای انتقال داده ها استفاده میکنند که سرعت بسیار قابل ملاحظه ای را نسبت به هارد دیسک هایی که از قابلیت DMA پشتیبانی نمیکنند را دارند.

به این نکته توجه کنید که برای استفاده دستگاه ها از قابلیت DMA بایستی هر کدام از آن دستگاه ها به یک DMA Channel اختصاص داده شوند. هر نوع پورت در کامپیوترتان دارای یک سری از DMA Channel ها هستند که برای دستگاه های متصل شده به آن پورت ها اختصاص می یابند. به عنوان مثال یک PCI controller و یک Hard drive controller هر کدام دارای یک سری از DMA Channel های اختصاصی خودشان میباشند.

مقالات مرتبط

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

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

برو به دکمه بالا