ما هو الوصول المباشر للذاكرة (DMA) وكيف يعمل؟ [MiniTool Wiki]
What Is Direct Memory Access
الإنتقال السريع :
يمكنك اعتماد RDMA تقنية لتمكين أجهزة الكمبيوتر في الشبكة من تبادل البيانات في الذاكرة الرئيسية دون إشراك المعالج أو ذاكرة التخزين المؤقت أو نظام التشغيل لأي جهاز كمبيوتر. ولكن يمكنك أيضًا استخدام ميزة DMA لإرسال البيانات مباشرة من جهاز متصل إلى الذاكرة الموجودة على اللوحة الأم للكمبيوتر. هذا المنصب من أداة MiniTool يتحدث بشكل أساسي عن التحليل الميكانيكي الديناميكي (DMA).
تعريف الوصول المباشر للذاكرة
بادئ ذي بدء ، ما هو الوصول المباشر للذاكرة؟ يمكن اختصار الوصول المباشر للذاكرة إلى DMA ، وهي إحدى ميزات أنظمة الكمبيوتر. يسمح لأجهزة الإدخال / الإخراج (I / O) بالوصول إلى ذاكرة النظام الرئيسية ( ذاكرة الوصول العشوائي ) ، بغض النظر عن وحدة المعالجة المركزية (CPU) ، مما يسرع عمليات الذاكرة.
تلميح: قد تكون مهتمًا بهذا المنشور - 8 حلول مفيدة لإصلاح وحدة المعالجة المركزية الخاصة بك بنسبة 100٪ في نظام التشغيل Windows 10 .
بدون الوصول المباشر إلى الذاكرة ، عندما تستخدم وحدة المعالجة المركزية مدخلات / مخرجات مبرمجة ، فإنها عادة ما تكون مشغولة بالكامل أثناء عملية القراءة أو الكتابة بأكملها ، لذلك لا يمكنها أداء مهام أخرى. باستخدام DMA ، تبدأ وحدة المعالجة المركزية النقل أولاً ، ثم تقوم بعمليات أخرى أثناء تقدم النقل ، وتتلقى أخيرًا مقاطعة من وحدة تحكم DMA (DMAC) عند اكتمال العملية.
يعد الوصول المباشر إلى الذاكرة مفيدًا عندما لا تستطيع وحدة المعالجة المركزية مواكبة معدل نقل البيانات ، أو عندما تحتاج وحدة المعالجة المركزية إلى أداء العمل أثناء انتظار عمليات نقل بيانات الإدخال / الإخراج البطيئة نسبيًا.
تعتمد أنظمة الأجهزة المتعددة الوصول المباشر للذاكرة ، مثل وحدات التحكم في محرك الأقراص وبطاقات الرسومات وبطاقات الشبكة وبطاقات الصوت. يستخدم DMA أيضًا لنقل البيانات على الرقاقة في المعالجات متعددة النواة. مقارنة بأجهزة الكمبيوتر التي لا تحتوي على قنوات الوصول المباشر للذاكرة ، يمكن لأجهزة الكمبيوتر المزودة بقنوات DMA نقل البيانات بين الأجهزة التي يقل فيها حمل وحدة المعالجة المركزية (CPU).
يمكن أيضًا استخدام الوصول المباشر للذاكرة لـ 'الذاكرة إلى الذاكرة' لنسخ البيانات أو نقلها في الذاكرة. يمكنه نقل عمليات الذاكرة باهظة الثمن (مثل النسخ الكبيرة أو عمليات التجميع المبعثر) من وحدة المعالجة المركزية إلى محرك DMA المخصص. DMA مهم في معماريات حوسبة الذاكرة والشبكة.
كيف يعمل الوصول المباشر للذاكرة؟
ثم كيف يعمل الوصول المباشر للذاكرة؟ يعتمد الوصول المباشر المباشر للذاكرة (ويسمى أيضًا DMA من جهة خارجية) وحدة تحكم DMA. يمكن لوحدة التحكم DMA إنتاج عناوين ذاكرة وتشغيل دورات قراءة أو كتابة للذاكرة. يغطي العديد من سجلات الأجهزة التي يمكن قراءتها وكتابتها بواسطة وحدة المعالجة المركزية.
تتكون هذه السجلات من سجل عناوين الذاكرة ، وسجل عدد البايت ، وسجل تحكم واحد أو أكثر. اعتمادًا على الميزات التي توفرها وحدة التحكم في الوصول المباشر إلى الذاكرة ، يمكن لسجلات التحكم هذه تعيين مجموعة من المصدر والوجهة واتجاه النقل (القراءة من أو الكتابة إلى جهاز الإدخال / الإخراج) ، وحجم وحدة النقل ، و / أو عدد بايت لنقل دفعة واحدة.
لإجراء عمليات الإدخال أو الإخراج أو من ذاكرة إلى ذاكرة ، يقوم المعالج المضيف بتهيئة وحدة تحكم DMA بعدد الكلمات المراد نقلها وعنوان الذاكرة المراد استخدامه. ثم تقوم وحدة المعالجة المركزية (CPU) بأمر الجهاز الطرفي لبدء نقل البيانات.
ثم تقدم وحدة التحكم في الوصول المباشر إلى الذاكرة عناوين وقراءة / كتابة خطوط التحكم في ذاكرة النظام. في كل مرة يتم إعداد بايت من البيانات ليتم نقله بين الجهاز المحيطي والذاكرة ، تقوم وحدة التحكم DMA بزيادة سجل العنوان الداخلي حتى يتم نقل كتلة بيانات كاملة.
أساليب عملها
يعمل الوصول المباشر للذاكرة بشكل مختلف في أوضاع التشغيل المختلفة.
وضع الاندفاع
في أسلوب الرشقات ، تُرسل فدرة البيانات الكاملة في تتابع مستمر. بمجرد أن تسمح وحدة المعالجة المركزية لوحدة التحكم DMA بالوصول إلى ناقل النظام ، فإن وحدة تحكم DMA ستنقل جميع وحدات بايت البيانات في كتلة البيانات قبل تحرير التحكم في حافلات النظام إلى وحدة المعالجة المركزية ، ولكنها ستتسبب في أن تكون وحدة المعالجة المركزية غير نشطة لمدة وقت طويل جدا. يسمى هذا الوضع أيضًا 'وضع النقل بلوك'.
وضع سرقة الدورة
يتم استخدام وضع سرقة الدورة في نظام لا يمكن فيه تعطيل وحدة المعالجة المركزية لطول الوقت المطلوب لوضع نقل الاندفاع. في وضع سرقة الدورة ، تحصل وحدة التحكم DMA على الوصول إلى ناقل النظام باستخدام إشارات BR (طلب الحافلة) و BG (Bus Grant) ، والتي تماثل وضع الاندفاع. تتحكم هاتان الإشارتان في الواجهة بين وحدة المعالجة المركزية ووحدة تحكم DMA.
من ناحية أخرى ، في وضع سرقة الدورة ، فإن سرعة نقل كتلة البيانات ليست بنفس سرعة وضع الاندفاع ، ولكن من ناحية أخرى ، فإن وقت خمول وحدة المعالجة المركزية ليس طويلاً كما هو الحال في وضع الاندفاع.
الوضع الشفاف
يستغرق الوضع الشفاف وقتًا أطول لنقل كتل البيانات ، ولكنه أيضًا الوضع الأكثر كفاءة من حيث أداء النظام الكلي. في الوضع الشفاف ، تقوم وحدة التحكم في الوصول المباشر للذاكرة بنقل البيانات فقط عندما تقوم وحدة المعالجة المركزية بإجراء عمليات لا تستخدم حواجز النظام.
الميزة الرئيسية للوضع الشفاف هي أن وحدة المعالجة المركزية لا تتوقف أبدًا عن تنفيذ برامجها ، كما أن عمليات نقل الوصول المباشر إلى الذاكرة تكون مجانية من حيث الوقت ، في حين أن العيب هو أن الجهاز يحتاج إلى تحديد متى لا تستخدم وحدة المعالجة المركزية نواقل النظام ، والتي يمكن كن معقدا. يسمى هذا أيضًا 'وضع نقل بيانات DMA المخفي'.