os3h

 

Direct Memory Access - ذاكرة الوصول المباشر

Page history last edited by Anonymous 1 yr ago
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
ذاكرة الوصول المباشر  (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.