الوصول المباشر للذاكرة (DMA) في هندسة الكمبيوتر

جرب أداة القضاء على المشاكل





لتنفيذ برنامج كمبيوتر ، فإنه يتطلب العمل المتزامن لأكثر من مكون واحد للكمبيوتر. على سبيل المثال، معالجات - توفير معلومات التحكم الضرورية والعناوين ... إلخ ، الحافلات - لنقل المعلومات والبيانات من وإلى الذاكرة إلى أجهزة الإدخال / الإخراج ... إلخ. سيكون العامل المثير للنظام هو الطريقة التي يتعامل بها مع نقل المعلومات بين المعالج والذاكرة وأجهزة الإدخال / الإخراج. عادة ، تتحكم المعالجات في جميع عمليات نقل البيانات ، بدءًا من بدء النقل وحتى تخزين البيانات في الوجهة. هذا يضيف حملًا على المعالج ويظل في معظم الوقت في الحالة المثالية ، وبالتالي يقلل من كفاءة النظام. لتسريع نقل البيانات بين أجهزة الإدخال / الإخراج والذاكرة ، تعمل وحدة تحكم DMA كقائد المحطة. ينقل جهاز التحكم DMA البيانات بأقل تدخل من المعالج.

ما هي وحدة تحكم DMA؟

يشير مصطلح DMA إلى الوصول المباشر للذاكرة. يُطلق على الجهاز المستخدم للوصول المباشر للذاكرة وحدة تحكم DMA. DMA وحدة التحكم هي وحدة تحكم ، جزء من أجهزة الإدخال / الإخراج دارة الواجهة ، والتي يمكنها نقل كتل البيانات بين أجهزة الإدخال / الإخراج والذاكرة الرئيسية بأقل تدخل من المعالج.




مخطط تحكم DMA في هندسة الكمبيوتر

توفر وحدة تحكم DMA واجهة بين الناقل وأجهزة الإدخال والإخراج. على الرغم من أنه ينقل البيانات دون تدخل المعالج ، إلا أنه يتحكم فيه المعالج. يبدأ المعالج وحدة تحكم DMA عن طريق إرسال عنوان البداية وعدد الكلمات في كتلة البيانات واتجاه نقل البيانات. من أجهزة الإدخال / الإخراج إلى الذاكرة أو من الذاكرة الرئيسية إلى أجهزة الإدخال / الإخراج. يمكن توصيل أكثر من جهاز خارجي بوحدة تحكم DMA.

DMA في هندسة الحاسوب

DMA في هندسة الحاسوب



تحتوي وحدة تحكم DMA على وحدة عنوان ، لتوليد العناوين واختيار جهاز الإدخال / الإخراج للنقل. يحتوي أيضًا على وحدة التحكم وعدد البيانات للاحتفاظ بأعداد الكتل المنقولة والإشارة إلى اتجاه نقل البيانات. عند اكتمال النقل ، يُعلم DMA المعالج عن طريق رفع المقاطعة. يظهر الرسم التخطيطي النموذجي لوحدة تحكم DMA في الشكل أدناه.

مخطط كتلة نموذجي لوحدة تحكم DMA

مخطط كتلة نموذجي لوحدة تحكم DMA

عمل وحدة تحكم DMA

يجب على وحدة تحكم DMA مشاركة الناقل مع المعالج لإجراء نقل البيانات. يسمى الجهاز الذي يحمل الحافلة في وقت معين Bus master. عندما يتعين إجراء النقل من جهاز الإدخال / الإخراج إلى الذاكرة أو العكس ، يتوقف المعالج عن تنفيذ البرنامج الحالي ، بالزيادات البرنامج عداد ، ينقل البيانات عبر المكدس ثم يرسل إشارة تحديد DMA إلى وحدة تحكم DMA عبر ناقل العنوان.

إذا كانت وحدة التحكم DMA مجانية ، فإنها تطلب التحكم في الناقل من المعالج عن طريق رفع إشارة طلب الناقل. يمنح المعالج الناقل إلى وحدة التحكم عن طريق رفع إشارة منح الناقل ، والآن أصبح جهاز التحكم DMA هو مدير الناقل. يبدأ المعالج وحدة تحكم DMA عن طريق إرسال عناوين الذاكرة وعدد كتل البيانات المراد نقلها واتجاه نقل البيانات. بعد تعيين مهمة نقل البيانات إلى وحدة تحكم DMA ، بدلاً من الانتظار بشكل مثالي حتى اكتمال نقل البيانات ، يستأنف المعالج تنفيذ البرنامج بعد استرجاع التعليمات من المكدس.


نقل البيانات عن طريق DMA في الكمبيوتر عن طريق DMA

نقل البيانات في الكمبيوتر عن طريق وحدة تحكم DMA

تتمتع وحدة التحكم DMA الآن بالتحكم الكامل في الحافلات ويمكنها التفاعل مباشرة مع الذاكرة وأجهزة الإدخال / الإخراج المستقلة عن وحدة المعالجة المركزية. يقوم بنقل البيانات وفقًا لتعليمات التحكم التي يتلقاها المعالج. بعد الانتهاء من نقل البيانات ، يقوم بتعطيل إشارة طلب الناقل وتعطل وحدة المعالجة المركزية إشارة منح الناقل وبالتالي نقل التحكم في الحافلات إلى وحدة المعالجة المركزية.

عندما يريد جهاز الإدخال / الإخراج بدء النقل ، فإنه يرسل إشارة طلب DMA إلى وحدة تحكم DMA ، والتي تقر وحدة التحكم إذا كانت مجانية. ثم تطلب وحدة التحكم معالج الحافلة ، مما يرفع إشارة طلب الحافلة. بعد تلقي إشارة منحة الحافلة ، تقوم بنقل البيانات من الجهاز. بالنسبة لوحدة تحكم DMA ذات القناة n ، يمكن توصيل عدد من الأجهزة الخارجية.

ينقل DMA البيانات في ثلاثة أوضاع تتضمن ما يلي.

إلى) وضع الاندفاع : في هذا الوضع DMA ، قم بتسليم الحافلات إلى وحدة المعالجة المركزية فقط بعد الانتهاء من نقل البيانات بالكامل. وفي الوقت نفسه ، إذا تطلبت وحدة المعالجة المركزية الحافلة ، فيجب أن تظل مثالية وتنتظر نقل البيانات.

ب) وضع سرقة الدورة : في هذا الوضع ، يمنح DMA التحكم في الحافلات إلى وحدة المعالجة المركزية بعد نقل كل بايت. يصدر باستمرار طلبًا للتحكم في الناقل ، ويقوم بنقل بايت واحد ويعيد الحافلة. من خلال وحدة المعالجة المركزية هذه ، لا يتعين عليك الانتظار لفترة طويلة إذا كانت بحاجة إلى ناقل لمهمة ذات أولوية أعلى.

ج) الوضع الشفاف: هنا ، ينقل DMA البيانات فقط عندما تنفذ وحدة المعالجة المركزية التعليمات التي لا تتطلب استخدام الحافلات.

8237 DMA تحكم

  • يحتوي 8237 على 4 قنوات إدخال / إخراج جنبًا إلى جنب مع المرونة في زيادة عدد القنوات.
  • يمكن برمجة كل قناة على حدة ولها عنوان 64 كيلو بايت وإمكانية البيانات.
  • كتلة التحكم في التوقيت ، كتلة التحكم في أوامر البرنامج ، كتلة التشفير ذات الأولوية هي الكتل الرئيسية الثلاثة لـ 8237A.
  • التوقيت الداخلي وإشارات التحكم الخارجية تحركها كتلة التحكم في التوقيت.
  • يتم فك تشفير الأوامر المختلفة التي يعطيها المعالج الدقيق إلى DMA بواسطة كتلة التحكم في أوامر البرنامج.
  • يتم تحديد القناة التي يجب أن تعطى الأولوية القصوى حسب الأولوية كتلة التشفير .
    8237A لديها 27 سجلا داخليا.

يعمل 8237A في دورتين - دورة مثالية ودورة نشطة ، حيث تحتوي كل دورة على 7 حالات منفصلة تتكون من فترة ساعة واحدة لكل منها.

S0- الحالة الأولى ، حيث طلبت وحدة التحكم للناقل وتنتظر الإقرار من المعالج.

تسمى S1 و S2 و S3 و S4 حالات العمل لـ 8237A حيث يحدث النقل الفعلي للبيانات. إذا كانت هناك حاجة إلى مزيد من الوقت لنقل حالات الانتظار ، تتم إضافة SW بين هذه الحالات.

لنقل من الذاكرة إلى الذاكرة ، يجب إجراء عمليات نقل القراءة من الذاكرة والكتابة إلى الذاكرة. ثماني دول مطلوبة للنقل الفردي. الحالات الأربع الأولى التي تحتوي على رموز S11 و S12 و S13 و S14 تقوم بنقل القراءة من الذاكرة والأربع حالات التالية S21 و S22 و S23 و S24 مخصصة لنقل الكتابة إلى الذاكرة.

ينتقل DMA إلى الحالة المثالية عندما لا تطلب أي قناة خدمة وتؤدي حالة SI. SI هي حالة غير نشطة حيث يكون DMA غير نشط حتى يتلقى طلبًا. في هذه الحالة ، يكون DMA في حالة البرنامج حيث يمكن للمعالج برمجة DMA.

عندما يكون DMA في الحالة المثالية ولا يتلقى أي طلبات قناة أخرى ، فإنه يخرج إشارة HRQ إلى المعالج ويدخل في الحالة النشطة حيث يمكنه بدء نقل البيانات إما عن طريق وضع الاندفاع أو وضع سرقة الدورة أو الوضع الشفاف.

8237 رقم التعريف الشخصي

8237 مخطط دبوس

8257 وحدة تحكم DMA

عند إقرانها بجهاز منفذ إدخال / إخراج Intel 8212 واحد ، فإن وحدة التحكم 8257 DMA تشكل 4 قنوات كاملة تحكم DMA . عند استلام طلب التحويل ، فإن وحدة التحكم 8257-

  • يكتسب التحكم في ناقل النظام من المعالج.
  • يتم التعرف على الطرف المتصل بالقناة ذات الأولوية القصوى.
  • يتم نقل وحدات البت الأقل أهمية من عنوان الذاكرة عبر خطوط العنوان A0-A7 لناقل النظام.
  • الاكثر اهمية 8 بت من عنوان الذاكرة يتم توجيهها إلى 8212 منفذ الإدخال / الإخراج عبر خطوط البيانات.
  • يولد إشارات التحكم المناسبة لنقل البيانات بين الأجهزة الطرفية ومواقع الذاكرة الموجهة.
  • عندما يتم نقل العدد المحدد من البايتات ، تقوم وحدة التحكم بإبلاغ نهاية نقل وحدة المعالجة المركزية عن طريق تنشيط إخراج العد الطرفي (TC).

لكل قناة 8257 تحتوي على اثنين تسجيلات 16 بت - 1) سجل عنوان DMA و 2) سجل العد الطرفي ، والذي يجب تهيئته قبل تمكين القناة. يتم تحميل عنوان موقع الذاكرة الأول الذي سيتم الوصول إليه في سجل عناوين DMA. يشير الترتيب الأدنى 14 بت من القيمة التي تم تحميلها في سجل العد النهائي إلى عدد دورات DMA مطروحًا منها واحدة قبل تنشيط خرج العد الطرفي. يُشار إلى نوع العملية للقناة بواسطة البتتين الأكثر أهمية في سجل العد الطرفي.

8257 مخطط دبوس

8257 مخطط دبوس

مزايا وعيوب وحدة تحكم DMA

تشمل مزايا وعيوب جهاز التحكم DMA ما يلي.

مزايا

  • يعمل DMA على تسريع عمليات الذاكرة من خلال تجاوز مشاركة وحدة المعالجة المركزية.
  • ينقص الحمل الزائد على وحدة المعالجة المركزية.
  • لكل عملية نقل ، لا يلزم سوى عدد قليل من دورات الساعة

سلبيات

  • يمكن رؤية مشكلة تماسك ذاكرة التخزين المؤقت عند استخدام التحليل الميكانيكي الديناميكي (DMA) لنقل البيانات.
  • يزيد سعر النظام.

DMA ( الوصول المباشر للذاكرة ) يتم استخدام وحدة التحكم في بطاقات الرسومات وبطاقات الشبكة وبطاقات الصوت وما إلى ذلك ... يستخدم DMA أيضًا للنقل داخل الشرائح في المعالجات متعددة النواة. يعمل DMA في أحد أوضاعه الثلاثة ، ويمكنه تقليل حمل المعالج بشكل كبير. في أي من أوضاع DMA عملت معها؟ أي من الوضع يعتبر أكثر فعالية؟