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

به عنوان مثال ، یک کارت صوتی ممکن است نیاز به دسترسی به داده های ذخیره شده در RAM رایانه داشته باشد ، اما از آنجا که می تواند داده ها را پردازش کند ، ممکن است از DMA برای دور زدن CPU استفاده کند. کارتهای ویدیویی که از DMA پشتیبانی می کنند نیز می توانند بدون نیاز به CPU به حافظه سیستم و گرافیک پردازش دسترسی پیدا کنند. دیسک های سخت DMA Ultra DMA از DMA برای انتقال سریعتر داده ها از هارد دیسک های قبلی استفاده می کنند که نیاز به اجرای داده ها ابتدا از طریق CPU دارند.
یک جایگزین برای DMA رابط ورودی/خروجی برنامه ریزی شده (PIO) است که در آن تمام داده های منتقل شده بین دستگاه ها از طریق پردازنده می روند. پروتکل جدیدتر برای رابط Ataiide Ultra DMA است که میزان انتقال داده های پشت سر هم تا 33 مگابیت در ثانیه را فراهم می کند. هارد دیسک هایی که با Ultra DMAL33 همراه هستند نیز از حالت های PIO 1 ، 3 و 4 و حالت DMA MultiWord 2 در 16. 6 Mbps پشتیبانی می کنند.
انواع انتقال DMA
حافظه به انتقال حافظه
در این حالت بلوک داده ها از یک آدرس حافظه به آدرس حافظه دیگر منتقل می شود. در این حالت ، آدرس فعلی کانال 0 برای اشاره به آدرس منبع استفاده می شود و از ثبت آدرس فعلی کانال برای اشاره به آدرس مقصد در چرخه انتقال اول استفاده می شود ، بایت داده ها از آدرس منبع بارگذاری می شود در ثبت موقت ازکنترلر DMA و در چرخه انتقال بعدی داده های ثبت موقت در حافظه ای که توسط آدرس مقصد نشان داده می شود ذخیره می شود. پس از هر انتقال داده ، ثبت نام های فعلی با توجه به تنظیمات فعلی کاهش یا افزایش می یابد. رجیستری تعداد کنونی کنونی کانال 1 پس از هر انتقال داده نیز توسط 1 کاهش می یابد. هنگامی که تعداد کلمه کانال 1 به FFFFH می رود ، یک TC تولید می شود که خروجی EOP را برای خاتمه سرویس DMA فعال می کند.
اولیه سازی خودکار
در این حالت ، در حین اولیه سازی ، آدرس پایه و ثبت تعداد کلمات به طور همزمان با آدرس فعلی و ثبت تعداد کلمات توسط ریزپردازنده بارگیری می شوند. آدرس و تعداد در ثبت های پایه در کل سرویس DMA بدون تغییر باقی مانده است.
پس از انتقال بلوک اول یعنی پس از فعال شدن سیگنال EOP ، مقادیر اصلی آدرس فعلی و ثبت نام تعداد کلمات فعلی به طور خودکار از آدرس پایه و ثبت تعداد کلمات پایه آن کانال بازیابی می شوند. پس از اولیه سازی خودکار ، کانال آماده انجام سرویس DMA دیگر ، بدون مداخله CPU است.
کنترل کننده DMA
شرکت NTROLLER در صفحه پردازنده ادغام شده و تمام انتقال داده های DMA را مدیریت می کند. انتقال داده ها بین حافظه سیستم و یک دستگاه 110 به دو مرحله نیاز دارد. داده ها از دستگاه ارسال به کنترلر DMA و سپس به دستگاه دریافت کننده می رود. ریزپردازنده به کنترلر DMA مکان ، مقصد و میزان داده هایی که قرار است منتقل شود ، می دهد. سپس کنترلر DMA داده ها را منتقل می کند و به ریزپردازنده اجازه می دهد تا سایر کارهای پردازش را ادامه دهد. هنگامی که یک دستگاه برای ارسال یا دریافت داده نیاز به استفاده از اتوبوس Micro Chael دارد ، با تمام دستگاه های دیگری که سعی در کنترل اتوبوس دارند ، رقابت می کند. این فرایند به عنوان داوری شناخته می شود. به جای آن ، کنترل کننده DMA برای کنترل اتوبوس داوری نمی کند. دستگاه I/O که در حال ارسال یا دریافت داده (برده DMA) است در داوری شرکت می کند. با این حال ، این کنترلر DMA است که هنگامی که نقطه کنترل داوری مرکزی درخواست برده DMA را اعطا می کند ، کنترل اتوبوس را به دست می گیرد.
شما همچنین دوست دارید:
- نحوه عیب یابی حافظه (حافظه دسترسی تصادفی)
- حافظه دسترسی متوالی (SAM) - تعریف
- رم (حافظه دسترسی تصادفی) چیست؟تعریف
- DRAM (حافظه دسترسی تصادفی پویا) چیست؟- تعریف
- حافظه دسترسی تصادفی غیر فرار (NVRAM) چیست؟- تعریف
راهنمای تجارت فارکس...
ما را در سایت راهنمای تجارت فارکس دنبال می کنید
برچسب :
نویسنده : نسیم خاکسار
بازدید : <-PostHit->
تاريخ : يکشنبه
22 مرداد
1402 ساعت: 17:59