ذاكرة الوصول المباشر (DMA)
تقدم CPU الكثير من الأعمال , فهي تشغل Bios ونظام التشغيل والتطبيقات . كما تعالج المقاطعات وعناوين I/O .أيضاً تعالج CPU كل البيانات بشكل دائم .
إذ تقوم بنقلها من RAM إلى مكان آخر . كما ترسل الطرفيات , مثل الطابعة والماسح الضوئي ,البيانات إلى RAM عبر CPU , وترسل CPU البيانات
من RAM إلى الطرفيات .
ومن الواضح أهمية نقل هذه البيانات , لكنها عملية بسيطة في النهاية , ولدى CPUأعمال أكثر أهمية لتقوم بها .
علاوة على ذلك , ومع كل هذه الذاكرة المخبئيةCache memory في CPU الحديثة يهدر النظام معظم وقته في انتظار معالجة
بعض الحسابات الداخلية في CPU .
ولذلك يطرح السؤال التالي : لماذا لايوجد جهاز يقوم بالوصول المباشر إلى الذاكرة دون تدخل CPU?
تدعى عملية الوصول المباشر إلى الذاكرة بدون تدخل CPU : Direct Memory Access
وهي سمة من سمات أجهزة الكمبيوتر الحديثه التي تسمح لبعض الأنظمة الفرعية داخل أجهزة الكمبيوتر للوصول الى نظام لذاكره القراءة و / أو الكتابة بصورة مستقله من وحدة المعالجة المركزية ((CPU))..
تتيح DMA تشغيل التطبيقات في الخلفية , بدون تدخل CPU . وهذا طبعاً ممتاز لتشغيل الصوت في الخلفية , ونقل البيانات من القرص المرن أو القرص الصلب إلى RAM.
العديد من أنظمة hardware تستخدم DMA والتي تشمل متحكمي تشغيل القرص ((disk drive controllers)) وبطاقات الرسوم وبطاقات الشبكه وبطاقات الصوت ..
أجهزة الكمبيوتر التي لديها DMA channels تستطيع نقل البيانات من والى الاجهزة بتكلفة أقل بكثير من وحدة المعالجة المركزية ((CPU)) ..
بدون DMA , باستخدام مبرمجة الإدخال / الإخراج ((PIO)) , وحدة المعالجة ((CPU)) تشتغل تماما الفترة المدخلة من عملية القراءة أو الكتابة والذي يؤدي الى
عدم الإمكانية في تطور الأعمال الأخرى ..
مع DMA , وحدة المعالجة المركزية ((CPU)) ستبدأ بالنقل , وإجراء العمليات الأخرى بينما النقل مستمر , وكذلك استقبال القاطع ((interrupt)) من متحكم الـ DMA عندما تكتمل العملية ,
هذا جدا مفيد وخصوصا في التطبيقات الحسابية للوقت الحقيقي ((real-time )) وبذلك لا يكون هناك تعطيل للعمليات المتزامنة ..
المشكلة هنا هي : ما العمل إذا طلب أكثر من جهاز استخدام DMA ؟ كيف نمنع تزاحم الأجهزة على ممر البيانات الخارجي ؟ ماذا لو احتاجت CPU إلى ممر
البيانات فجأة ؟ كيف يمكن إيقاف جهاز يستخدم DMA بحيث تستطيع CPU( ذات الأولوية) الوصول إلى الممر ؟
ولمعالجة ذلك قامت IBM بإنشاء رقاقة تدعى رقاقة8237 للتحكم بعمليات DMA.تستطيع هذه الرقاقة معالجة كل عمليات نقل البيانات من الطرفيات إلى RAM , أو
بالعكس . وهذا ما يوفر من وقت وجهد الـــ CPU .
كتبه: مي الغيث
تعديل : هند المطيري
المصدر :
A+ Certification
Comments (0)
You don't have permission to comment on this page.