الرقاقة 8237 حاكم الوصول المباشر للذاكرة:
تحتوى هذه الرقاقة على 40 طرف وهي قابلة للبرمجة ومتوافقة مع كل من المعالجين 8086/8088 وتشتمل الرقاقة على أربعة قنوات مستقلة independent Channels كما هو واضح في شكل 4-38.
وهذا معناه أن رقاقة الـ DMA الواحدة يمكن أن تقوم بعمليات نقل مباشر للبيانات DAM Transfers لعدة أجهزة خارجية، على سبيل جهاز تسجيل الشرائط، مشغل الاسطوانات المرنة ومشغل الاسطوانة الصلبة وكذلك بعض دوائر الـ Hardware الخارجية، وتبدأ عملية نقل البيانات عن طريق خطوط طلب الـ (DMA Request) DMA وتسمى هذه الخطوط DREQ0- DREQ3.
حيث يتمتع الخط DREQ0 بالأولوية القصوى بينما DREQ3 له الأولوية الأدنى. ويتم تأكيد الاتصال handshaking لكل طلب DMA عن طريق خطوط الاعتراف Acknowledge Lines وتسمى هذه الخطوط DACK0-DACK3 تستخدم الرقاقة 8237 الطرف HOLD للمعالج 8088 للحصول على ناقلات النظام. بعد تمهيد Initializing الرقاقة بواسطة المعالج فإنها تتولى التحكم في الناقلات لكي يمكن لها أداء عملية الـ DMA وفي عملية الـ DMA يتم نقل bits البيانات بين الأجهزة الطرفية أو الخارجية دون تدخل المعالج الدقيق. شكل 4-39 يبين تعريف أطراف الرقاقة 08237.
وتعمل هذه الرقاقة في دورتين cycles رئيسيتين، دورة خاملة Idle Cycle ودورة نشطه 0active cycle عندما لا يطلب أي جهاز خارجي طلب DMA Transfer فإن الرقاقة تكون في الدورة الخاملة، وفي هذه الأثناء تمسح الرقاقة كل نبضه ساعة خطوط طلب الـ DMA للأربع قنوات لكي تحدد إن كان أحد هذه القنوات يطلب الخدمة ولكن عندما يصبح أي من خطوط طلب الـ DMA فعالاً فإن الرقاقة تدخل دورتها النشطة وترسل الإشارة (hold request) HRQ للمعالج الدقيق بعد ذلك يستجيب المعالج للرقاقة بأن يرسل لها إشارة (Hold Acknowledge) HLDA، وهذا معناه بدء الدورة النشطة للرقاقة.
عندما يعمل المعالج 8088 بأسلوب الـ Max. Mode فإنه يستخدم خط الإشارة (Request/Grant) RQ/GT أي (طلب/منح) ليرتبط بالرقاقة 08237 وتأتيا هاتين الإشارتين من طرف واحد ثنائي الاتجاه يؤدي وظيفه مشابه لكل من HOLDA, HOLD في حالة التشغيل بأسلوب الـ Minimum Mode يحتوى 8088 على طرفين كل منهم Request/Grant ويسميان RQ0/GT0,RQ1/GT1 ويسمحان بربط رقاقتين DMA controller مع ثمانية أجهزة خارجية كحد أقصى تشبه الإشارة (request) RQ الإشارة HOLD وتشبه الإشارة (grant) GT الإشارة HLDA.
في البداية يطلب الـ DMA Controller من المعالج الإمساك HOLD ليستجيب لإشارة DREQ من جهاز خارجي بعد ذلك وبعد أن يتعرف المعالج على الطلب ويكون جاهزاً Ready فإنه يخرج إشارة Grant إلى h لـ DMA Controller على نفس خط الإشارة الذي جاء عليه طلب الإمساك في هذا الوقت يستطيع الـ DMA controller استخدام الناقلات لنقل البيانات بين الذاكرة وجهاز خارجي الآن ترسل الـ Controller DMA إشارة اعترف (DMA Acknowledge) DACK للجهاز الخارجي الطالب لعملية نقل الـ DMA، وهذا معناه بدء عملية DMA Transfer وبعد أن ينهي الـ DMA controller عملية نقل البيانات فإنه يخرج إشارة (End Of Process) EOP والتي تعلن إتمام عمليه الـ DMA Transfer عند ذلك تقوم رقاقة الـ DMA Controller بإرجاع الناقلات للمعالج الدقيق يؤدي حاكم الـ DMA عملية نقل البيانات بأحد أساليبه الأربعة Cascade Mode أو Demand Mode أو Block Mode أو Single Mode
1- أسلوب نقل مفرد Single Transfer mode: وفي هذا الأسلوب يتم برمجة 8237 لينقل بايت Byte واحد كل طلب Request.
2- أسلوب نقل بلوكات البيانات Block Transfer Mode: في هذا الأسلوب بمجرد أن ينشط أحد أطراف الـ DREQ فإن الرقاقة 8237 تستمر في نقل البيانات إلى أن يتم نقل بلوك البيانات كاملاً Block Of Data ويتم برمجة 8237 بعنوان بداية البيانات وعدد البايتات المطلوب نقلها وتستمر عملية النقل حتى تصل كلمة مسجل العد إلى العد النهائي أو أن يتم استقبال الإشارة EOP ودائماً سيكون عدد البايتات المنقولة يزيد عن العدد الذي تم تحميله بمسجل كلمة العد Word Count Register بمقدار واحد.
3- أسلوب نقل حسب الطلب Demand Transfer Mode: في هذا الأسلوب يتم برمجة 8237 بحيث يستمر في نقل البيانات إلى أن يستقبل إشارة EOP أو أن يصبح الطرف DREQ غير فعالاً بتأثير جهاز خارجي.
4- أسلوب النقل بالتتابع Cascade Transfer Mode: يستخدم هذا الأسلوب في حالة توصيل عدة رقاقات 8237 معاً بغرض توسيع النظام ويشتمل 8237 على مجموعة المسجلات الداخلية الآتية والتي يستخدمها خلال دورة عملية DMA:
1- مسجل العنوان الجاري Current Address Register: لكل قناة مسجل عنوان جاري بطول 16-bit ويخزن فيه عنوان البيانات المطلوب نقلها وهو مبرمج بحيث يزيد أو ينقص واحد بعد كل نقل.
2- مسجل الكلمة الجارية Current Word Register: كل قناة تحتوى على هذا المسجل وبطول 16-bit ويقوم هذا المسجل بتحديد عدد الناقلات المطلوبة وهو يزداد واحد بعد بنقل كل Byte.
3- مسجل عنوان القاعدة Base Address Register: وهو مسجل بطول 16-bit ويقوم بتخزين عنوان البداية.
4- مسجل كلمة القاعدة Base Word Register: وهو مسجل بطول 16-bit ويقوم بتخزين القيمة الأصلية (البداية) لمسجل الكلمة الجارية.
5- مسجل الأمر Command Register: وهو مسجل بطول 8-bit ويستخدم للبرمجة والتحكم في الرقاقة 8237 ويعمل على تمهيدها Initialize.
6- مسجل الأسلوب Mode Register: كل قناة لها هذا المسجل بطول 6-bit لتعريف أسلوب التشغيل (Block, Demand) (Cascade, Single)
7- مسجل الطلب Request Register: وهو مسجل بطول 4-bit ويستخدم لطلب النقل المباشر DMA transfer بواسطة البرامج Software.
8- مسجل القناع Mask Register: كل قناة لها واحد بيت bit من مسجل القناع يستخدم لعدم تمكين إشارة DREQ الداخلة.
9- مسجل مؤقت Temporary register: يستخدم هذا المسجل الذي طوله 8-bit لتخزين البيانات مؤقتاً أثناء النقل.
10- مسجل الحالة Status Register: وهو مسجل طوله 8-bit ويستخدم لتمكين المعالج الدقيق من قراءة الحالة الحاضرة للرقاقة 8237.
مرة أخرى نعود لمخطط مكونات اللوحة الأم PC-XT IBM شكل 4-4 سنجد بجوار الرقاقة السابقة 8237 وناحية اليمين يوجد رقاقة تقريباً بنفس الطول وتحمل الرقم الكودي 8255 وتسمى هذه الرقاقة منافذ الدخل/الخرج المتوازية القابلة للبرمجة أو (PIO) Programmable Parallel Input Output Ports وحيث أن كلمة منفذ تعني باب لعبور البيانات بين وحدات الإدخال أو الإخراج والمعالج الدقيق. لذا فإن أجهزة الإدخال والإخراج تتبادل مع المعالج البيانات من خلال المنافذ الموجودة بالرقاقة 8255. ويمكن برمجة هذه الرقاقة بمعني تحديد أي من المنافذ الموجودة مطلوب استخدامه وتحديد وظيفته أي سيعمل كمنفذ إدخال أو سيعمل كمنفذ إخراج.
تعليقات
إرسال تعليق