الاتصال ووحدة المعالجة المركزية والعالم الخارجي
اتصال وحدة المعالجة المركزية والعالم الخارجي
معظم طرق الاتصال بين أجهزة الإدخال/الإخراج وحدة المعالجة المركزية تتم بطريقة مماثلة تمام لطرق اتصال الذاكرة بوحدة المعالجة المركزية. وبالفعل، فإن العديد من الأجهزة الإدخال الإخراج تبدو لوحدة المعالجة المركزية كما لو كانت أجهزة الذاكرة. لنقل البيانات إلى العالم الخارجي تقوم وحدة المعالجة المركزية ببساطة بتخزين البيانات في مواقع في الذاكرة وتظهر هذي البيانات على بعض الروابط الخارجية إلى جهاز الكمبيوتر. كذلك، لإدخال البيانات من الأجهزة الخارجية تقوم وحدة المعالجة المركزية بنقل البيانات من موقع في "ذاكرة" إلى وحدة المعالجة المركزية.هذا الموقع في الذاكرة تحمل قيمة تم جلبها من الأجهزة الخارجية.
منفذ الإخراج هو جهاز يشبه استدعاء الذاكرة إلى الكمبيوتر ولكن لديه القدرة على الاتصال بالأجهزة الخارجية. عادةً يستخدم منفذ الإدخال/إخراج latch بدلاً من النطاطات لتمثيل استدعاء الذاكرة. عندما تقوم وحدة المعالجة المركزية بعملية كتابه إلى عنوان معين مرتبط بالجهازlatch, يقوم الجهاز بالتقاط البيانات وجعلها متاحة على مجموعة من الأسلاك الخارجية لنقلها إلى وحدة المعالجه والذاكرة الرئيسية (انظر الشكل 7-1).
للمنافذ نوعان يمكن الكتابة عليه فقط أو للقراءة/الكتابة. على سبيل المثال، المنفذ في الشكل 7-1 منفذللكتابة فقط. 
عندما نقوم بعملية قراءة من latch's address يجب أن يكون خط التحكم نشط وعند الكتابة خط التحكم غير نشط.
الشكل 7-1 نموذج لمنفذ الإخراج
Figure 7.2 An Output Port that Supports Read/Write Access
الشكل 7-2 يوضح كيفية إنشاء منفذ إدخال/إخراج (للقراءة/كتابة.)
لاحظ أن المنفذ في الشكل 7-2 غير منفذ الإدخال. تنظيم المنفذ يتيح ببساطة CPU قراءة البيانات. البيانات تظهر في موصل خارجي عن طريق منفذ إخراج (فقط)واحد. يمكن إنشاء منفذ إدخال (للقراءة فقط) باستخدام النصف السفلي من الدائرة في الشكل 7-2. يبدو الإدخال إلى latch سيظهر على ناقل بيانات وحدة المعالجة المركزية وذلك عند قراءة وحدة المعالجة المركزية بيانات latch.
مثال لمنفذ إخراج مثل منفذ طابعة متوازية. عندم تقوم وحدة المعالجة المركزية بعملية كتابة عادة بحرف ASCII إلى نطاق البايت
منفذ الإخراج الذي يتصل بموصل قاعدة بيانات 25Fالموجود خلف الكمبيوتر. ونقل هذه البيانات إلى الطابعة حيث يتلقى منفذ إدخال (إلى الطابعة) البيانات. يقوم المعالج بالتحويل داخل الطابعة عادة هذا الحرف ASCII إلى سلسلة نقاط الطباعة على ورق.
وبوجه عام، سوف يستخدم جهاز طرفي معين أكثر من منفذ إدخال/إخراج واحد. على سبيل المثال، تستخدم واجهة طابعة متوازية ثلاثة منافذ: منفذ للقراءة/كتابة ومنفذ إدخال منفذ إخراج. المنفذ للقراءة/الكتابة هو منفذ البيانات (هو للقراءة/الكتابة للسماح وحدة المعالجة المركزية لقراءة آخر حرف ASCII كتب إلى منفذ الطابعة). منفذ الإدخال إرجاع إشارات التحكم من الطابعة; هذه الإشارات تشير إلى ما إذا كانت الطابعة جاهزة لقبول حرف آخر بشكل متصل مثل نفاد الورق وما إلى ذلك. ويحيل منفذ الإخراج
المعلومات التحكم بالطابعة مثل ما إذا كانت تتوفر بيانات الطباعة.
إن وحدة الإدخال/الإخراج في نظام الكمبيوتر النموذجي يختلف اختلافاً جذرياً عن الإدخال/الإخراج في لغة برمجة رفيعة المستوى. لإرسال البيانات من جهاز الإخراج إلى وحدة المعالجة المركزية ببساطة نقل البيانات إلى موقع ذاكرة خاصة. لقراءة البيانات من جهاز إدخال وحدة المعالجة المركزية ببساطة نقل البيانات من عنوان الجهاز إلى وحدة المعالجة المركزية.
يمكن تصنيف منافذ الإدخال/والإخراج إلى أربع فئات أساسية استنادا إلى قدرة وحدات المعالجة المركزية على قراءة وكتابة البيانات على عنوان منفذ الموفر, هذه الفئات الأربع هي منافذ للقراءة فقط منافذ للكتابة فقط منافذ للقراءة/الكتابة المزدوجة منافذ الإدخال/الإخراج.
منفذ للقراءة فقط () منفذ إدخال. إذا تمكنت وحدة المعالجة المركزية من قراءة البيانات الموجودة على المنفذ، سوف يظهر المنفذ البيانات على الخطوط الخارجية ومن ثم إلى وحدة المعالجة المركزية. يتجاهل النظام عادة أي محاولة كتابة بيانات إلى منفذ للقراءة فقط. مثال على منفذ للقراءة فقط منفذ الحالة على جهاز الكمبيوتر واجهة الطابعة المتوازية.حيث يسمح لك بقراءة البيانات من هذا المنفذ وذلك من اختبار الوضع الحالي للطابعة. ويتجاهل النظام أي عمليات كتابة إلى هذا المنفذ.
منفذ للكتابة فقط (منفذ إخراج). كتابة البيانات إلى أحد المنافذ التي تقدم البيانات للاستخدام عن طريق جهاز خارجي. لا يمكن الاعتماد على معنى أي قيمة قراءة من منفذ للكتابة فقط.
منفذ للقراءة/كتابة هو منفذ إخراج. تستطيع وحدة المعالجة المركزية ان تقوم بعملية قراءة وكذلك كتابة بيانات إلى هذا النوع من المنافذ. تقوم وحدة المعالجة المركزية بقراءة البيانات من منفذ للقراءة/كتابة ان عملية القراءة تتم على البيانات التي تمت كتابتها مسبقا على نفس المنفذ. قراءة المنفذ لا يؤثر على البيانات التي ترها الأجهزة الطرفية الخارجية.
منفذ الإدخال/إلإخراج المزدوج هو أيضاً منفذ للقراءة/كتابة: قراءة المنفذ بقراءة البيانات من بعض الأجهزة الخارجية وعملية كتابة البيانات إلى المنفذ بإرسال البيانات إلى الأجهزة خارجية المختلفة. يبين الشكل 7-3 كيف يمكن أن تقوم عمليات لمثل هذا الجهاز إلى النظام. لاحظ أن منافذ الإدخال والإخراج تتكون في الاصل من منفذ للقراءة فقط ومنفذ للكتابة فقط التي تشترك في نفس العنوان.
7.3 جهاز الإخراج والادخال يتشاركون العنوان (منفذ الإدخال/الإخراج مزدوج)
هذه الأمثلة قد تترك لك انطباع بأن وحدة المعالجة المركزية دائما تقوم بعملية قراءة وكتابة للبيانات ونقلها إلى الأجهزة الطرفية باستخدام ناقل البيانات. الشكل 7-4 مثالاً بسيط جداً. في هذه الدارة فك وحدة فك شيفرة العنوان إلى عنوانين منفصلين. تعيين أي الوصول إلى العنوان الأول (القراءة أو الكتابة) خط الإخراج عالي أي قراءة أو كتابة إلى العنوان الثاني مسح خط الإخراج. لاحظ أن هذه الدارة تتجاهل البيانات الموجودة على وحدات المعالجة المركزية. ومن المهم ليس ما إذا كانت وحدة المعالجة المركزية تقوم بعملية قراءة أو كتابة البيانات إلى هذه العناوين ولا بيانات مكتوبة من أي نتيجة. الشئ الوحيد الذي يهم أن وحدة المعالجة المركزية تستطيع الوصول إلى أحد هذه العناوين.
Outputting Data to a Port by Simply Accessing That Port
طريقة أخرى لاتصال منفذ إخراج بوحدة المعالجة المركزية هي استخدام النطاطات. 7.5 الشكل يبين كيف يمكن تصميم هذا الجهاز. في الرسم التخطيطي يبين ان عملية القراءة تتم إذا كانت قيمة منفذ الإخراج =الصفرو وعملية الكتابة تتم إذا كان منفذ الإخراج قيمته=1.
الرقم 7.5 إخراج البيانات باستخدام المتحكم في القراءة/الكتابة وهناك مجموعة متنوعة من الطرق يمكنك توصيل الأجهزة الخارجية إلى وحدة المعالجة المركزية. يوفر هذا المقطع فقط بضعة أمثلة بوصفها عينة من ما هو ممكن. يوجد في العالم الحقيقي، اعداد مذهلة من الطرق المختلفة لتوصيل الأجهزة الخارجية إلى وحدة المعالجة المركزية. لم يذكر خلاف، سنذكر في هذا الموضع إحدى الطرق لتواصل وحدة المعالجة المركزية بالأجهزة الخارجية باستخدام ناقل البيانات.
وهناك.ثلاثة أشكال أساسية للإدخال وللإخراج الذي سوف يستخدمه نظام الكمبيوتر النموذجي: 
I/O-mapped I/O- تعيين تعليمات خاصة لنقل البيانات بين النظام الكمبيوترو العالم الخارجي
memory-mapped I/O يستخدم مواقع الذاكرة الخاصة في مساحة العنوان العادية من وحدة المعالجة المركزية للاتصال مع الأجهزة الخارجية.
direct memory access () DMA هو شكل خاص من الذاكرة المعنونة.الأجهزة الخارجية تقوم بقراءة وكتابة البيانات في الذاكرة دون الانتقال عبر وحدة المعالجة المركزية.ان جميع آلية الإدخال/الإخراج لها مزايا وعيوب، سوف نناقشها في هذا القسم.
ذاكرة جهاز طرفي معين متصل بعنوان وحدات المعالجة المركزية وخطوط البيانات مثل الذاكرة، بحيث عندما تقوم وحدة المعالجة المركزية بقراءة أو كتابة على عنوان المرتبط بالجهاز الطرفي، فتقوم وحدة المعالجة المركزية بنقل البيانات إلى ومن الجهاز. وهذه الآلية لها عدة فوائد ومساوئ قليلة فقط.
ميزة مبدأ هذا النظام الفرعي هي إمكانية استخدام وحدة المعالجة المركزية أي التعليمات والمتوفرة في الذاكرة ونقل البيانات بين وحدة المعالجة المركزية وجهاز إدخال/إخراج الذاكرة المعنونة. بناء على تعليمات MOV وهي الأكثر استخداماً لإرسال البيانات وتلقيها من جهاز الإدخال/إخراج ذاكرة تم تعيينها ولكن أي تعليمة قراءة أو كتابة بيانات في الذاكرة قانونية. على سبيل المثال، إذا كان لديك منفذ الإدخال/إخراج هو للقراءة/الكتابة, يمكنك استخدام بناء على تعليمات ADD قراءة المنفذ ثم قم بإضافة البيانات إلى القيمة وقراءتها ثم كتابة البيانات مرة أخرى إلى المنفذ.
وبالطبع فإن هذه الميزة قابل للاستخدام فقط إذا كان المنفذ منفذ قراءة/كتابة (أو المنفذ قابلاً للقراءة التي حددتها عنوان المنفذ بوصفه معامل المصدر الخاصة بك التعليمة ADD). إذا كان المنفذ للقراءة فقط أو للكتابة فقط، تعليمة يقرأ الذاكرة، بتعديل القيمة ثم كتابة القيمة المعدلة والعودة إلى الذاكرة تكون قليلة. يجب عليك استخدام هذه الإرشادات للقراءة/تعديل/الكتابة فقط مع منافذ قراءة/كتابة (أو منافذ الإدخال/الإخراج المزدوج).
ومع ذلك، فإن حقيقة أنه يمكنك استخدام أي تعليمات الوصول إلى ذاكرة لمعالجة البيانات المنفذة غالباً ميزة كبيرة ويمكن العمل على البيانات مع تعليمة واحدة بدلا من أولاً نقل البيانات إلى وحدة المعالجة المركزية لمعالجة البيانات وثم كتابة البيانات إلى منفذ إدخال/إخراج.العيوب أنها تستهلك عناوين في مخطط الذاكرة.. مثل بطاقات الفيديو تستهلك مجموعة كبيرة من مساحة العنوان (مثل بعض بطاقات الفيديو يكون 32 ميغابايت من الذاكرة ظهر السفينة يتم تعيينها إلى مساحة عنوان الذاكرة).
يستخدم هذا النوع تعليمات خاصة للوصول إلى منافذ الإدخال/الإخراج. لا توفر وحدات المعالجة المركزية (CPU كثيرة) هذا النوع من الإدخال/الإخراج وإن كان يستخدمها في المعالجات من النوع 80 x 86. يستخدم عائلة Intel 80 x 86 الإرشادات و OUT لتوفير I/O Mapped Input/Output. 80 x 86 IN OUT تستخدم تعليمات MOV إلا أنها تحيل بياناتها من مساحة خاصة متميزة لعنوان الإدخال/إخراج من مساحة عنوان الذاكرة. استخدام الإرشادات الموجودة في OUT بناء على الجملة التالي:
in(port, al); //... or AX or EAX, port is a constant in the range 
out(al, port); // 0..255. 
in(dx, al); // Or AX or EAX. 
out(al, dx);
ميزة مساحة عنوان الإدخال/الإخراج أن الأجهزة الطرفية في هذا المجال لا تستهلك مساحة في مساحة عنوان الذاكرة. يسمح للمستخدم بتوسيع مساحة عنوان الذاكرة مع ذاكرة الوصول العشوائية (RAM). عيوبها من ناحية أخرى لا يمكن أن تستخدم ا للحصول على تعليمات ذاكرة الأجهزة الطرفية في مساحة عنوان الإدخال/الإخراج, يمكنك فقط استخدام الإرشادات التي تظهر في OUT. ثمة عيب آخر ان مساحة عنوان الإدخال / 80 x 86 صغيرة جداً وبالرغم من استخدام معظم الأجهزة الطرفية بضعة عناوين للادخال والإخراج (ومن استخدام معظم عناوين الإدخال/الإخراج أقل من 16)، مثل بطاقات عرض الفيديو أجهزة قليلة يمكن أن تحتل ملايين من مواقع الإدخال/الإخراج المختلفة (مثل ثلاثة بايت بالنسبة لكل بكسل على الشاشة).
هو اتصال الجهاز الطرفي إلى الذاكرة مباشرة من دون استخدام وحدة المعالجة المركزية بدور الوسيط. يسمح هذا في كثير من الأحيان بعملية الإدخال/الإخراج بالتوازي مع عمليات وحدة المعالجة المركزية (CPU) مما يزيد من سرعة النظام. ومع ذلك،، تحدث المعالجة المتزامنة فقط إذا كان لدى وحدة المعالجة المركزية ذاكرة التخزين مؤقت لتنفيذ التعليمات البرمجية والوصول إلى البيانات في ذاكرة التخزين المؤقت.
تتكون وحدة تحكم DMA النموذجية من زوج من العدادات والدوائر للاتصال بين الذاكرة والأجهزة الطرفية. أحد العدادات بمثابة سجل عناوين. يقوم هذا العداد لوازم عنوان على متن ناقل العنوان كل عملية نقل. في كل مرة يريد جهاز طرفي نقل البيانات من الذاكرة يرسل إشارة إلى وحدة تحكم DMA. يضع وحدة تحكم DMA قيمة عنوان العداد على ناقل العنوان. في الوقت نفسه الجهاز الطرفي يضع البيانات على متن ناقل البيانات (إذا كانت هذه عملية إدخال) أو بقراءة البيانات من ناقل البيانات (إذا كانت هذه عملية إخراج). بعد نقل البيانات بنجاح، وحدة تحكم DMA تقوم بزيادة مسجل العنوان وإنقاص قيمة عداد النقل ويكرر هذا الإجراء حتى ان يساوي عداد النقل الصفر.
قد تفشل بعض الأجهزة عند محاولة الكتابة إلى منافذ الإدخال ليست فكرة جيدة أن ان نقوم بعملية كتابة بيانات إلى منفذ للقراءة فقط.
ناقل عنوان الإدخال/الإخراج نفس ناقل عنوان الذاكرة ولكن خطوط السيطرة إضافية لتحديد ما إذا كان العنوان على الناقل هو الوصول إلى ذاكرة أو وجهاز إدخال/إخراج.
المصادر
http://webster.cs.ucr.edu/AoA/Windows/HTML/IO.html