کنترل کننده DMA

ساخت وبلاگ

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

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

ما می دانیم که برای انجام یک عملیات ، ریزپردازنده ابتدا دستورالعمل را واکشی می کند و سپس آن را رمزگشایی می کند ، سپس آن را بیشتر اجرا می کند. اما به صورت جداگانه اگر پردازنده تمام کار را در داخل سیستم انجام دهد ، آن را به طور غیر ضروری پردازنده را همیشه مشغول نگه می دارد.

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

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

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

و در زمان عملکرد انتقال داده ، پردازنده نمی تواند هرگونه عملیات دیگری را انجام دهد.

از این رو وقتی سیستم دارای یک کنترلر DMA است ، CPU را از عملکرد انتقال داده آزاد می کند و در آن زمان خاص CPU می تواند سایر عملیات را انجام دهد.

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

عملکرد کنترلر DMA در ریزپردازنده

اساساً هر زمان که دستگاه I/O نیاز به انتقال داده ها به حافظه داشته باشد ، در ابتدا درخواست را به کنترلر DMA ارسال می کند. در صورت درخواست انتقال داده ، کنترل کننده درخواست نگه داشتن را به CPU ارسال می کند و منتظر HLDA است که چیزی جز تأیید CPU نیست.

بنابراین ، در هنگام درخواست نگه داشتن توسط کنترلر ، CPU کنترل تمام اتوبوس ها (یعنی داده ها ، کنترل و اتوبوس آدرس) را رها می کند و HLDA را به کنترلر می فرستد.

از این رو اکنون پردازنده از هرگونه عملیات انتقال داده عاری می شود تا زمانی که قطع توسط کنترلر DMA در مورد تکمیل انتقال ایجاد شود.

شکل زیر نشان دهنده سیستمی است که دارای کنترلر DMA است:

operation of DMA controller in a microprocessor system

بگذارید با در نظر گرفتن وضعیت بیکار و فعال کنترلر ، عملکرد کنترلر DMA را در داخل سیستم درک کنیم.

در چرخه بیکار سیستم ، در ابتدا وقتی سیستم روشن می شود ، پردازنده کنترل اتوبوس های سیستم را دارد ، زیرا سوئیچ با موقعیت X وصل می شود.

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

اما یک بار ، نیاز به خواندن داده ها از دیسک وجود دارد. سپس ریزپردازنده در مورد عملکرد خواندن آن داده های خاص ، دستورالعمل را به کنترل کننده دیسک ارسال می کند.

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

بنابراین ، در هنگام دریافت سیگنال DRQ ، درخواست نگه دارید ، یعنی سیگنال HRQ توسط کنترلر DMA به ریز پردازنده ارسال می شود.

سیگنال HRQ علاقه کنترل کننده DMA را برای دسترسی به اتوبوس های سیستم نشان می دهد. بنابراین ، در هنگام دریافت درخواست هولدی ، CPU اتوبوس های خود را به منظور اعطای کنترل به کنترلر DMA تثبیت می کند.

هنگامی که پردازنده اتوبوس ها را آزاد کرد ، سیگنال HLDA را به کنترلر DMA ارسال می کند. و در هنگام دریافت سیگنال HLDA ، کنترل اتوبوس ها به کنترلر DMA داده می شود زیرا موقعیت سوئیچ اکنون از X به Y تغییر می کند.

بنابراین ، با به دست آوردن کنترل بر اتوبوس ها ، چرخه فعال DMA فعال می شود. بنابراین اکنون این سیگنال را به کنترل کننده دیسک می فرستد که نشان می دهد اکنون برای انتقال داده ها آماده است.

اکنون ، پس از تأیید کنترل کننده دیسک ، علاوه بر این ، کنترلر DMA با توجه به عملیاتی که قرار است انجام شود ، سیگنال کنترل را بر روی اتوبوس بارگذاری می کند.

فرض کنید در صورت انجام عملیات نوشتن ، سیگنال های IOR و MEMW بارگیری می شوند. بنابراین ، هنگامی که سیگنال IOR توسط کنترل کننده دیسک دریافت می شود ، داده های مورد نیاز را در اتوبوس داده بارگیری می کند. همچنین ، سیگنال MEMW وجود آدرس را در اتوبوس آدرس که در آن داده ها منتقل می شوند ، نشان می دهد.

بنابراین کنترل کننده دیسک می تواند مستقیماً داده ها را به محل حافظه مورد نظر بدون استفاده از CPU منتقل کند.

پس از انجام انتقال داده ، کنترلر DMA با تغییر موقعیت سوئیچ از y به x دوباره قطع می شود. این نشان دهنده ریزپردازنده در مورد تکمیل عملکرد انتقال داده است.

بنابراین ، با این کار ، کنترل اتوبوس ها دوباره به پردازنده منتقل می شود و شروع به اجرای عملیات بیشتر می کند. این عملکرد اصلی کنترلر DMA در داخل سیستم است.

بگذارید نگاهی به نمایندگی معماری کنترلر 8257 DMA بیندازیم.

Architecture of 8257 DMA Controllerarchitecture of 8257 DMA controller

ویژگی های 8257a

  1. از 4 کانال تشکیل شده است که می تواند بیش از 4 دستگاه ورودی/خروجی استفاده شود.
  2. همه 4 کانال را می توان به طور جداگانه برنامه ریزی کرد.
  3. تمام 4 کانال آدرس 16 بیتی و پیشخوان های 14 بیتی را به صورت جداگانه نگه می دارند.
  4. انتقال داده مجاز حداکثر 64 کیلوبایت است.
  5. فرکانس عملیاتی بین 250 هرتز تا 3 مگاهرتز متغیر است.
  6. سه عمل انجام شده عبارتند از: انتقال ، انتقال را بنویسید و انتقال را تأیید کنید.
  7. دو حالت عملیاتی 8257 حالت اصلی و حالت برده هستند.

pin diagram of 8257 DMA controller

شکل زیر نمودار پین کنترلر 8257 DMA را نشان می دهد:

DRQ0به DRQ3- پین شماره 16 تا 19 - این پین ها هر زمان که دستگاه ورودی درخواست کنترل DMA را برای انتقال مستقیم داده به یا از حافظه اصلی امکان پذیر می کند ، فعال می شوند. در میان همه 4 ، DRQ0بالاترین اولویت را در حالت اولویت ثابت دارد.

خندیدن0به جنجال3- پین شماره 14 ، 15 ، 24 و 25 - اینها سیگنال های کم فعال هستند که چیزی جز سیگنال تصدیق تولید شده توسط کنترل کننده برای نشان دادن پذیرش DMQ توسط دستگاه های محیطی نیستند.

IOR - پین شماره 1 - در حالت کارشناسی ارشد ، سیگنال کم در این پین نشان دهنده عملکرد خواندن در دستگاه محیطی توسط کنترلر DMA است. در حالی که ، در حالت برده ، نشان می دهد که عملیات خواندن توسط پردازنده از طریق ثبت داخلی انجام می شود.

IOW - پین شماره 2 - همچنین یک پین کم فعال است. یک سیگنال کم در این پین در حالت اصلی نشان می دهد که عملکرد نوشتن از طریق دستگاه محیطی انجام می شود. با این حال ، در حالت برده ، اتوبوس داده محتوای خود را در ثبت نام بار می کند.

D0به D7- پین شماره 26 تا 30 و 21 تا 23 - اینها خطوط داده ای هستند که دستورات و کلمات وضعیت را در حالت برده نگه می دارند. در حالی که در حالت کارشناسی ارشد ، آدرس های بایت بالاتر را به قفل منتقل می کند.

A0به3- پین شماره 32 تا 35 - این 4 خط آدرس حداقل مهم هستند که به ترتیب به عنوان ورودی و خروجی در حالت عملیاتی برده و کارشناسی ارشد سیستم عمل می کنند.

A4به7- پین شماره 37 تا 40 - این خطوط آدرس آدرس مرتبه پایین تر تولید شده توسط کنترلر در حالت اصلی است.

CLK - پین شماره 12 - از این پین برای تهیه سیگنال فرکانس ساعت داخلی به 8257 استفاده می شود.

CS - پین شماره 11 - CS نشانگر انتخاب تراشه است و یک پین کم فعال است.

HRQ-PIN Number 10-فعال کردن این پین درخواست دسترسی مستقیم به حافظه توسط دستگاه محیطی را برای عملکرد خواندن-نشان می دهد.

HLDA - PIN Number 7 - فعال کردن این پین نشان دهنده تأیید پردازنده در پاسخ به نگه داشتن سیگنال کنترلر DMA است.

MEMR - PIN Number 3 - یک سیگنال کم در این پین خاص نشان می دهد که عملیات خواندن توسط دستگاه محیطی در حال انجام بر روی حافظه است.

MEMW - پین شماره 4 - همچنین یک پین کم فعال است. در زمان عملکرد نوشتن حافظه توسط دستگاه محیطی فعال می شود.

ADSTB - پین شماره 8 - مخفف آدرس استروب است. فعال کردن این پین با استفاده از قفل آدرس و اتوبوس داده را از بین می برد.

VCC- پین شماره 31 - سیگنال عملیات در این پین اعمال می شود.

این همه چیز در مورد عملکرد کنترلر DMA به همراه توضیحات PIN 8257 است.

آموزش فارکس برای مبتدی ها...
ما را در سایت آموزش فارکس برای مبتدی ها دنبال می کنید

برچسب : نویسنده : Mihayloo بازدید : <-PostHit-> تاريخ : سه شنبه 9 اسفند 1401 ساعت: 12:19