إدخال/إخراج القناة
في مجال الحوسبة ، تُعدّ قنوات الإدخال /الإخراج بنية إدخال/إخراج عالية الأداء ، تُنفّذ بأشكال متنوعة على عدد من بنى الحواسيب، وخاصةً الحواسيب المركزية . في الماضي، كانت القنوات تُنفّذ عمومًا باستخدام أجهزة مخصصة، تُسمى بأسماء مختلفة مثل القناة ، أو معالج الإدخال / الإخراج ، أو وحدة تحكم الإدخال/الإخراج ، أو مُزامِن الإدخال/الإخراج ، أو وحدة تحكم الوصول المباشر إلى الذاكرة .
ملخص
قد تكون العديد من مهام الإدخال/الإخراج معقدة وتتطلب تطبيق منطق على البيانات لتحويل التنسيقات وغيرها من المهام المماثلة. في هذه الحالات، يكون الحل الأبسط هو تكليف وحدة المعالجة المركزية (CPU) بمعالجة هذا المنطق، ولكن نظرًا لبطء أجهزة الإدخال/الإخراج نسبيًا، قد تُهدر وحدة المعالجة المركزية وقتًا في انتظار البيانات من الجهاز. تُسمى هذه الحالة "مُقيدة بالإدخال/الإخراج".
تتجنب بنية القنوات هذه المشكلة بمعالجة بعض أو كل مهام الإدخال/الإخراج دون مساعدة وحدة المعالجة المركزية، وذلك بتفريغ العمل إلى منطق مخصص. القنوات مكتفية ذاتيًا منطقيًا ، إذ تحتوي على منطق كافٍ ومساحة تخزين عاملة للتعامل مع مهام الإدخال/الإخراج. بعضها قوي أو مرن بما يكفي لاستخدامه كحاسوب مستقل، ويمكن اعتباره نوعًا من المعالج المساعد ، مثل قناة البيانات 7909 في IBM 7090 أو IBM 7094 ؛ إلا أن معظمها ليس كذلك. في بعض الأنظمة، تستخدم القنوات الذاكرة أو السجلات التي يمكن للمعالج المركزي الوصول إليها كمساحة تخزين عاملة، بينما في أنظمة أخرى ، تكون هذه المساحة موجودة في مكونات القناة المادية. عادةً، توجد واجهات قياسية بين القنوات والأجهزة الطرفية الخارجية، ويمكن تشغيل قنوات متعددة في وقت واحد.
تقوم وحدة المعالجة المركزية عادةً بتحديد كتلة تخزين كـ، أو إرسال، برنامج قناة صغير نسبيًا إلى القناة من أجل التعامل مع مهام الإدخال/الإخراج، والتي يمكن للقناة ووحدة التحكم، في كثير من الحالات، إكمالها دون مزيد من التدخل من وحدة المعالجة المركزية (باستثناء: برامج القناة التي تستخدم "المقاطعات التي يتم التحكم فيها بواسطة البرنامج"، PCIs، لتسهيل تحميل البرنامج، والصفحات حسب الطلب ، ومهام النظام الأساسية الأخرى).
عند اكتمال عملية نقل البيانات (الإدخال/الإخراج) أو عند اكتشاف خطأ، يتواصل المتحكم عادةً مع وحدة المعالجة المركزية (CPU) عبر القناة باستخدام مقاطعة . ولأن القناة عادةً ما تتمتع بوصول مباشر إلى الذاكرة الرئيسية، يُشار إليها أيضاً باسم متحكم الوصول المباشر إلى الذاكرة (DMA).
في أحدث التطبيقات، يُشغَّل برنامج القناة، ويتولى معالج القناة تنفيذ جميع العمليات المطلوبة حتى الوصول إلى شرط إنهاء أو حدوث مقاطعة مُتحكَّم بها برمجيًا (PCI). يُلغي هذا جزءًا كبيرًا من التفاعل بين وحدة المعالجة المركزية والقناة، ويُحسِّن أداء النظام بشكل عام. قد تُبلغ القناة عن أنواع مختلفة من شروط الإنهاء، والتي قد تكون طبيعية بشكل قاطع، أو قد تُشير بوضوح إلى وجود خطأ، أو قد يعتمد معناها على السياق ونتائج عملية استشعار لاحقة. في بعض الأنظمة، يُمكن لوحدة تحكم الإدخال/الإخراج طلب إعادة محاولة بعض العمليات تلقائيًا دون تدخل وحدة المعالجة المركزية. في التطبيقات السابقة، كان أي خطأ، مهما كان صغيرًا، يتطلب تدخل وحدة المعالجة المركزية، وبالتالي كانت التكلفة الإضافية أعلى بكثير. لا تزال بعض العمليات القديمة تستخدم المقاطعة المُتحكَّم بها برمجيًا (PCI)، ولكن الاتجاه السائد هو التخلي عن هذه المقاطعات، إلا في الحالات التي لا مفر منها.
تاريخ
استُخدمت تقنية إدخال/إخراج القنوات لأول مرة مع الحاسوب المركزي IBM 709 [ 2 ] ذي الصمامات المفرغة عام 1957، والذي كان مُزامِن البيانات طراز 766 الخاص به أول وحدة تحكم في القنوات. أما خليفته الذي يعمل بالترانزستورات، وهو IBM 7090 [ 3 ]، فكان يحتوي على قناتين إلى ثماني قنوات من 6 بت (طراز 7607) ومُضاعِف قنوات (طراز 7606) قادر على التحكم بما يصل إلى ثماني قنوات. كما كان بإمكان طرازي 7090 و7094، بالإضافة إلى طراز 7909، أن يحتويا على ما يصل إلى ثماني قنوات من 8 بت.
بينما استخدمت شركة IBM أوامر قنوات البيانات في بعض حواسيبها، وسمحت بتسلسل الأوامر في أجهزة مثل 7090، استخدمت معظم الشركات المصنعة الأخرى قنوات تتعامل مع سجلات مفردة. مع ذلك، تميزت بعض الأنظمة، مثل سلسلة GE-600 ، ببنى إدخال/إخراج أكثر تطوراً.
لاحقًا، وفرت عائلتا حواسيب IBM System/360 و System/370 منافذ إدخال/إخراج للقنوات في جميع الطرازات. بالنسبة لطرازات System/360 الأقل سعرًا (50 وما دون) وطراز System/370 الأقل سعرًا (158 وما دون)، تُنفذ القنوات باستخدام التعليمات البرمجية الدقيقة على وحدة المعالجة المركزية، وتعمل وحدة المعالجة المركزية نفسها في أحد وضعين: "وضع وحدة المعالجة المركزية" أو "وضع القنوات"، حيث يستهلك وضع القنوات دورات المعالجة من وضع وحدة المعالجة المركزية. أما بالنسبة لحواسيب IBM System/360 و System/370 الأكبر حجمًا ، فكانت القنوات لا تزال مكونات منفصلة ضخمة ومكلفة، مثل قناة IBM 2860 Selector (من قناة إلى ثلاث قنوات تحديد في وحدة واحدة)، وقناة IBM 2870 Byte multiplexor (قناة مُضاعِف واحدة، واختياريًا من قناة إلى أربع قنوات فرعية لتحديد في وحدة واحدة)، وقناة IBM 2880 Block multiplexor (قناة أو قناتان من قنوات مُضاعِف الكتل في وحدة واحدة). في مجمعات المعالجات 303x ، يتم تنفيذ القنوات في موجهات قنوات مستقلة في نفس الخزانة التي يوجد بها وحدة المعالجة المركزية، حيث يقوم كل موجه قنوات بتنفيذ مجموعة من القنوات. [ 4 ]
في وقت لاحق، تم تنفيذ القنوات كمعالج مدمج موجود في نفس صندوق وحدة المعالجة المركزية، ويشار إليه عمومًا باسم "معالج القناة"، والذي كان عادةً معالج RISC ، ولكن يمكن أن يكون معالجًا دقيقًا من نوع System/390 مع رمز دقيق خاص كما هو الحال في أجهزة الكمبيوتر الرئيسية CMOS من IBM .
تحسينات أمدال
كان تطبيق شركة أمدال للأجهزة لقنوات النظام المتوافقة مع System/370 مختلفًا تمامًا. إذ دعمت وحدة داخلية واحدة، تُسمى "وحدة C"، ما يصل إلى ست عشرة قناة باستخدام نفس المكونات المادية لجميع القنوات المدعومة. وكان من الممكن استخدام وحدتي "C" داخليتين، لدعم ما يصل إلى 32 قناة إجمالًا. نفّذت كل وحدة "C" بشكل مستقل عملية تُعرف عمومًا باسم "معالج حالة القناة المتغيرة" (وهو نوع من معالجات البرميل )، والتي نفّذت آلة حالة محدودة متخصصة . في كل دورة معالجة مركزية، كل 32 نانوثانية في 470V/6 و/5 وكل 26 نانوثانية في 470V/7 و/8، قرأت وحدة "C" الحالة الكاملة للقناة التالية في تسلسل الأولوية وعلامات الإدخال/الإخراج الخاصة بها . تم تنفيذ الإجراءات اللازمة المحددة بناءً على الحالة الأخيرة للقناة وعلامات الإدخال الخاصة بها : قراءة البيانات من الذاكرة الرئيسية أو كتابتها إليها، ومقاطعة برنامج نظام التشغيل إذا تم تحديد هذه المقاطعة بواسطة علامة مقاطعة التحكم في البرنامج الخاصة بالقناة، ثم قامت وحدة التحكم (C-Unit) بتخزين الحالة التالية للقناة وتعيين علامات الإخراج الخاصة بها ، ثم انتقلت إلى القناة التالية ذات الأولوية الأقل. وكان من الممكن إجراء مقاطعة في بعض الحالات.
تم توفير مساحة تخزين كافية بتقنية FIFO داخل وحدة التحكم (C-Unit) لجميع القنوات التي تمت محاكاتها بواسطة هذه الآلة ذات الحالة المحدودة (FSM). ويمكن إعادة تهيئة القنوات بسهولة وفقًا لاختيار العميل لقناة الاختيار، أو قناة مُضاعِف البايت، أو قناة مُضاعِف الكتل، دون أي قيود تُذكر، وذلك باستخدام أوامر وحدة التحكم الخاصة بالصيانة. كما تم دعم "واجهة ثنائية البايت" و"بيانات الإدخال/بيانات الإخراج" وخيارات قنوات IBM الأخرى عالية الأداء.
كما تم توفير محولات مدمجة بين القنوات ، تُعرف باسم CCAs في مصطلحات Amdahl، بينما تُعرف باسم CTCs أو CTCAs في مصطلحات IBM. وقد شكّل هذا نقلة نوعية حقيقية، ما دفع IBM إلى إعادة تصميم حواسيبها المركزية لتوفير إمكانيات ومرونة مماثلة في مجال القنوات. وكان رد IBM الأولي هو تضمين وحدات Model 158 المُبسّطة، التي تعمل في "وضع القناة" فقط، كوحدات قنوات Model 303x. في وحدة Amdahl "C"، يمكن أن تكون أي قناة من أي نوع، أو مُحدِّد، أو مُضاعِف بايت، أو مُضاعِف كتلة، دون الحاجة إلى حجز القناتين 0 و4 لمُضاعِفات البايت، كما هو الحال في بعض طرازات IBM.
تطبيقات أخرى
كانت بعض أقدم أنظمة القنوات التجارية غير التابعة لشركة IBM موجودة على أجهزة UNIVAC 490 و CDC 1604 و Burroughs B5000 و UNIVAC 1107 و GE 635. ومنذ ذلك الحين، أصبحت وحدات التحكم في القنوات جزءًا أساسيًا من معظم تصميمات الحواسيب المركزية، ولا تزال تشكل ميزة رئيسية للحواسيب المركزية عند مقارنتها بالحواسيب الشخصية الأصغر حجمًا والحوسبة الشبكية.
استخدم الحاسوب العملاق CDC 6600، الذي طُوّر عام 1965، عشرة حواسيب مستقلة منطقيًا تُسمى المعالجات الطرفية (PPs)، واثنتي عشرة قناة إدخال/إخراج بسيطة لهذا الغرض. كانت المعالجات الطرفية نسخة مُعدّلة من أول حاسوبين شخصيين من إنتاج شركة CDC، وهما CDC 160 و160A ذوا 12 بت. كان نظام التشغيل يُثبّت ويُنفّذ في المعالج الطرفي PP0. لم تكن لهذه القنوات إمكانية الوصول المباشر إلى الذاكرة، ولم يكن بإمكانها التسبب في مقاطعات؛ إذ استخدم البرنامج الموجود على المعالج الطرفي تعليمات متزامنة [ c ] لنقل البيانات بين القناة ومسجل A أو ذاكرة المعالج الطرفي.
تم تقديم SCSI في عام 1981 كقناة منخفضة التكلفة تعادل قناة IBM Block Multiplexer Channel، [ 5 ] وأصبحت فيما بعد منتشرة على نطاق واسع في شكل بروتوكول قناة الألياف و Serial Attached SCSI .
قد تحتوي الحواسيب الحديثة على قنوات على شكل أجهزة طرفية تتحكم في ناقل البيانات ، مثل أجهزة الوصول المباشر إلى الذاكرة (DMA) عبر منفذ PCI . ويكمن الأساس المنطقي لهذه الأجهزة في نفس الأساس المنطقي لوحدات التحكم الأصلية في القنوات، ألا وهو تخفيف عبء مهام النقل والمقاطعات وتبديل السياق عن وحدة المعالجة المركزية الرئيسية.
تم تصنيع وحدات التحكم في القنوات بأحجام صغيرة تصل إلى تصميمات رقاقة واحدة مع قنوات متعددة عليها، وتستخدم في أجهزة الكمبيوتر NeXT على سبيل المثال.
وصف
في أنظمة الحواسيب المركزية الضخمة، تُعدّ وحدة المعالجة المركزية (CPU) أحد مكونات الأجهزة العديدة التي تعمل بالتوازي. أما القنوات، فهي مكونات أجهزة مستقلة تُنسّق جميع عمليات الإدخال والإخراج من وإلى مجموعة من وحدات تحكم الإدخال/الإخراج الخاصة (والتي تختلف أسماؤها الدقيقة من مُصنِّع لآخر) أو الأجهزة. وقد يوجد العديد من وحدات المعالجة المركزية والقنوات. يُحسِّن التصميم العام أداء الإدخال/الإخراج دون التأثير سلبًا على أداء وحدة المعالجة المركزية. ونظرًا لأن معظم تطبيقات أنظمة الحواسيب المركزية في الواقع العملي هي تطبيقات أعمال كثيفة الإدخال/الإخراج، فإن هذا التصميم يُساعد في توفير مستويات الإنتاجية العالية جدًا التي تُميّز الحواسيب المركزية عن أنواع الحواسيب الأخرى.
تُستخدم تعليمات وحدة المعالجة المركزية (CPU) الخاصة بالإدخال والإخراج في نظام يستخدم قنوات الإدخال/الإخراج لتمرير أوامر الإدخال/الإخراج إلى أجهزة الإدخال/الإخراج المتخصصة على شكل برامج قنوات . يستمر الإدخال/الإخراج بعد ذلك دون تدخل من وحدة المعالجة المركزية حتى يحدث حدث يتطلب إخطار نظام التشغيل، وعندها تُرسل أجهزة الإدخال/الإخراج إشارة مقاطعة إلى وحدة المعالجة المركزية.
في بعض الأنظمة منخفضة التكلفة، مثل نظام System/360 منخفض التكلفة وبعض أجهزة System/370 الرئيسية منخفضة التكلفة، تم تنفيذ عمليات إدخال/إخراج القناة باستخدام مسارات بيانات وحدة المعالجة المركزية والتعليمات البرمجية الدقيقة؛ وهذا سمح بتشغيل البرامج على الأجهزة ذات القنوات المستقلة وعلى الأجهزة ذات القنوات القائمة على وحدة المعالجة المركزية دون تغيير.
القناة ليست مجرد وسيلة اتصال، على الرغم من اسمها؛ إنها جهاز قابل للبرمجة يتعامل مع جميع تفاصيل الإدخال/الإخراج بعد إعطائه قائمة بعمليات الإدخال/الإخراج لتنفيذها (برنامج القناة).
قد تدعم كل قناة وحدة تحكم واحدة أو أكثر، أو جهازًا واحدًا أو أكثر، ولكن لا يمكن توجيه برنامج القناة إلا إلى جهاز واحد من تلك الأجهزة المتصلة. يحتوي برنامج القناة على قوائم أوامر موجهة إلى القناة نفسها، وإلى وحدة التحكم والجهاز الموجه إليهما. بمجرد أن يُجهز نظام التشغيل قائمة كاملة بأوامر القناة، فإنه يُنفذ تعليمة إدخال/إخراج واحدة لبدء برنامج القناة؛ وبعد ذلك، تتولى القناة التحكم في عمليات الإدخال/الإخراج حتى اكتمالها.
من الممكن تطوير برامج قنوات بالغة التعقيد، بما في ذلك اختبار البيانات والتفرع الشرطي داخل البرنامج. هذه المرونة تُحرر وحدة المعالجة المركزية من عبء بدء عمليات الإدخال/الإخراج الفردية ومراقبتها وإدارتها. في المقابل، تُخصص مكونات القنوات المتخصصة لعمليات الإدخال/الإخراج، ويمكنها تنفيذها بكفاءة أعلى من وحدة المعالجة المركزية (وبشكل متوازٍ تمامًا معها). يُشبه إدخال/إخراج القنوات الوصول المباشر إلى الذاكرة (DMA) في الحواسيب الصغيرة، ولكنه أكثر تعقيدًا وتطورًا.
إن أفضل تطبيق معروف لقنوات الإدخال/الإخراج هو تطبيق عائلة IBM System/360 من الحواسيب المركزية وخلفائها، ولكن تم اعتماد تطبيقات مماثلة من قبل IBM في خطوط أجهزة الكمبيوتر السابقة، على سبيل المثال 1410 و7010 و 7030 ، ومن قبل بائعي الحواسيب المركزية الآخرين، مثل Control Data و Bull ( General Electric / Honeywell ) و Unisys .
في مصطلحات IBM ESA/390 ، تُعرَّف القناة بأنها وصلة بيانات متوازية داخل نظام الإدخال/الإخراج الفرعي ذي البنية الشجرية أو الهرمية. في وحدات الإدخال/الإخراج System/390، تتصل القنوات إما مباشرةً بالأجهزة المثبتة داخل الوحدة (مثل محولات الاتصال ESCON و FICON ومحولات الأنظمة المفتوحة ) ، أو تمتد خارج الوحدة، أسفل الأرضية المرتفعة ، على شكل كابلات رفيعة للغاية، وتتصل مباشرةً بواجهات القنوات في الأجهزة الأكبر حجمًا، مثل أنظمة الأشرطة الفرعية، وأجهزة التخزين ذات الوصول المباشر (DASDs)، ومجمعات البيانات الطرفية، وأنظمة ESA/390 الأخرى.
أنواع القنوات
تختلف القنوات في عدد ونوع عمليات الإدخال/الإخراج المتزامنة التي تدعمها. في مصطلحات IBM، تدعم قناة المُضاعِف عددًا من العمليات المتزامنة المتداخلة بطيئة السرعة، حيث تنقل كل عملية بايتًا واحدًا من الجهاز في كل مرة. بينما تدعم قناة المُحدِّد عملية واحدة عالية السرعة، تنقل كتلة من البيانات في كل مرة. أما مُضاعِف الكتل فيدعم عددًا من برامج القنوات المتزامنة منطقيًا، ولكنه لا يدعم سوى عملية نقل بيانات واحدة عالية السرعة في كل مرة.
قد تختلف القنوات أيضًا في كيفية ربطها للأجهزة الطرفية بمخازن التخزين المؤقتة. في مصطلحات UNIVAC، قد تكون القناة إما ذات فهرس محدد داخليًا (ISI)، حيث يكون هناك مخزن مؤقت واحد وجهاز واحد نشط في كل مرة، أو ذات فهرس محدد خارجيًا (ESI)، حيث يختار الجهاز المخزن المؤقت الذي سيستخدمه.
برنامج القناة
في نظام IBM System/360 والأنظمة اللاحقة، يُعرَّف برنامج القناة بأنه سلسلة من أوامر القناة (CCWs) التي يُنفذها النظام الفرعي لقناة الإدخال/الإخراج. يتكون برنامج القناة من أمر واحد أو أكثر. يُرسل نظام التشغيل إشارة إلى النظام الفرعي لقناة الإدخال/الإخراج لبدء تنفيذ برنامج القناة باستخدام تعليمة SIO (بدء الإدخال/الإخراج) أو SSCH (بدء القناة الفرعية). بعد ذلك، يُمكن للمعالج المركزي متابعة تنفيذ التعليمات غير المتعلقة بالإدخال/الإخراج حتى تتم مقاطعته. عند اكتمال عمليات القناة، تُقاطع القناة المعالج المركزي بمقاطعة إدخال/إخراج. في الطرازات السابقة من سلسلة حواسيب IBM المركزية ، كانت وحدة القناة مكونًا منفصلاً، واحد لكل قناة. أما في الحواسيب المركزية الحديثة، فتُنفذ القنوات باستخدام معالج RISC مستقل، وهو معالج القناة، واحد لجميع القنوات. استبدلت بنية IBM System/370 الموسعة [ 6 ] وخلفاؤها تعليمات الآلة SIO ( بدء الإدخال/الإخراج ) وSIOF ( بدء تحرير الإدخال/الإخراج السريع ) السابقة (System/360 وSystem/370 المبكرة) بتعليمات SSCH ( بدء القناة الفرعية ) (ESA/370 وخلفاؤها).
توفر قنوات الإدخال/الإخراج وفورات كبيرة في عمليات الإدخال والإخراج. على سبيل المثال، في نظام لينكس على جهاز IBM Z من IBM ، لا تتطلب تهيئة مسار كامل على وحدة تخزين DASD سوى برنامج قناة واحد (وبالتالي تعليمة إدخال/إخراج واحدة فقط)، ولكن باستخدام عدة أوامر قناة (أمر واحد لكل كتلة). يُنفذ البرنامج بواسطة معالج الإدخال/الإخراج المخصص ، بينما يكون معالج التطبيقات (وحدة المعالجة المركزية) متفرغًا للقيام بمهام أخرى.
كلمات أوامر القناة
كلمة أمر القناة ( CCW ) هي تعليمات تُوجَّه إلى معالج قنوات الإدخال/الإخراج المتخصص، وهو في الواقع آلة حالة محدودة (FSM). تُستخدم هذه الكلمة لبدء عملية إدخال/إخراج، مثل "القراءة" أو "الكتابة" أو "الاستشعار"، على جهاز متصل بالقناة. في بنى الأنظمة التي تُطبِّق الإدخال/الإخراج عبر القنوات، عادةً ما تكون جميع الأجهزة متصلة عبر قنوات، وبالتالي تتطلب جميع عمليات الإدخال/الإخراج استخدام كلمات أمر القناة.
تُنظَّم وحدات التحكم في القناة (CCWs) ضمن برامج القنوات بواسطة نظام التشغيل، وروتين الإدخال/الإخراج الفرعي، أو برنامج مساعد، أو بواسطة برامج مستقلة (مثل برامج الاختبار والتشخيص). وتتوفر إمكانية "تفرع" محدودة، وبالتالي إمكانية قابلة للبرمجة ديناميكيًا، ضمن برامج القنوات هذه، باستخدام علامة قناة "مُعدِّل الحالة" ووحدة التحكم في القناة "نقل البيانات داخل القناة".
التسلسل
تُربط أوامر IBM CCW لتشكيل برنامج القناة. تشير البتات في أمر CCW إلى أن الموقع التالي في وحدة التخزين يحتوي على أمر CCW يُعد جزءًا من نفس برنامج القناة. يُنفذ برنامج القناة عادةً أوامر CCW بالتسلسل حتى يحدث استثناء، أو يُنفذ أمر CCW لنقل البيانات داخل القناة (TIC)، أو يُنفذ أمر CCW دون الإشارة إلى الربط. يُخبر ربط الأوامر القناة أن أمر CCW التالي يحتوي على أمر جديد. يُشير ربط البيانات إلى أن أمر CCW التالي يحتوي على عنوان بيانات إضافية لنفس الأمر، مما يسمح، على سبيل المثال، بكتابة أجزاء من سجل واحد من أو قراءة أجزاء منه إلى مناطق بيانات متعددة في وحدة التخزين (كتابة التجميع وقراءة التوزيع). [ 7 ]
برامج القنوات ذاتية التعديل
يمكن لبرامج القنوات تعديل عملياتها أثناء التنفيذ بناءً على البيانات المقروءة. على سبيل المثال، يُستخدم التعديل الذاتي على نطاق واسع في نظام التشغيل OS/360 ISAM . [ 8 ]
مثال على برنامج قناة
يقرأ المثال التالي [ 9 ] سجلاً على القرص مُحدداً بمفتاح مُسجل . المسار الذي يحتوي على السجل والقيمة المطلوبة للمفتاح معروفان. ستبحث وحدة التحكم بالجهاز في المسار للعثور على السجل المطلوب. في هذا المثال، تشير <> إلى أن برنامج القناة يحتوي على عنوان تخزين الحقل المُحدد.
ابحث عن <رقم الأسطوانة/الرأس> ابحث عن المفتاح يساوي <قيمة المفتاح> TIC *-8 العودة إلى البحث إذا لم يكن متطابقًا اقرأ البيانات <buffer>
سيؤدي نقل البيانات في القناة (TIC) إلى انتقال برنامج القناة إلى أمر البحث (SEARCH) حتى يتم العثور على سجل بمفتاح مطابق (أو نهاية المسار). عند العثور على سجل بمفتاح مطابق، سيضيف متحكم DASD مُعدِّل الحالة (Status Modifier) إلى حالة القناة، مما يؤدي إلى تخطي القناة لعملية نقل البيانات في القناة (TIC CCW)؛ وبالتالي لن ينتقل برنامج القناة وستنفذ القناة أمر القراءة (READ).
المثال أعلاه صحيح بالنسبة للسجلات غير المحجوبة (سجل واحد لكل كتلة). أما بالنسبة للسجلات المحجوبة (أكثر من سجل واحد لكل كتلة)، فيجب أن يكون المفتاح المسجل هو نفسه أعلى مفتاح داخل تلك الكتلة (ويجب أن تكون السجلات مرتبة حسب تسلسل المفاتيح)، وسيتم استخدام برنامج القناة التالي:
ابحث عن <رقم الأسطوانة/الرأس> ابحث عن المفتاح الأعلى أو المساوِ لـ <قيمة المفتاح> TIC *-8 العودة إلى البحث إذا لم يكن عاليًا أو مساويًا اقرأ البيانات <buffer>
إذا تم تخصيص مجموعة البيانات في مسارات، ووصلنا إلى نهاية المسار دون العثور على السجل المطلوب، يتوقف برنامج القناة ويعيد إشارة "لم يتم العثور على سجل". وبالمثل، إذا تم تخصيص مجموعة البيانات في أسطوانات، ووصلنا إلى نهاية الأسطوانة دون العثور على السجل المطلوب، يتوقف برنامج القناة ويعيد إشارة "لم يتم العثور على سجل". في بعض الحالات، يمتلك برنامج النظام خيار تحديث رقم المسار أو الأسطوانة وإعادة تشغيل عملية الإدخال/الإخراج دون مقاطعة برنامج التطبيق.
برامج القنوات في أنظمة التخزين الافتراضية
في معظم الأنظمة، تعمل القنوات باستخدام عناوين حقيقية (أو فيزيائية) ، بينما تُبنى برامج القنوات باستخدام عناوين افتراضية . [ 10 ] يتولى نظام التشغيل مسؤولية ترجمة هذه البرامج قبل تنفيذها، ولهذا الغرض تحديدًا، يحتوي مُشرف الإدخال/الإخراج (IOS) على وظيفة إصلاح سريعة خاصة ، صُممت خصيصًا لعمليات الإصلاح قصيرة المدة (أي أقصر بكثير من وقت التشغيل الفعلي). تُقفل الصفحات التي تحتوي على البيانات المستخدمة في عملية الإدخال/الإخراج في الذاكرة الحقيقية، أو تُثبّت الصفحات . يُنسخ برنامج القناة، وتُستبدل جميع العناوين الافتراضية بعناوين حقيقية قبل بدء عملية الإدخال/الإخراج. بعد اكتمال العملية، تُحرر الصفحات.
بما أن تثبيت الصفحات وتحريرها عملية تستهلك موارد المعالج بشكل كبير، يُستخدم أحيانًا تثبيت الصفحات طويل الأمد لتقليل هذه التكلفة. في هذه الحالة، تُثبَّت صفحات الذاكرة الافتراضية طوال فترة تشغيل التطبيق، بدلاً من تثبيتها وتحريرها مع كل عملية إدخال/إخراج. ومن الأمثلة على البرامج التي تستخدم تثبيت الصفحات طويل الأمد برنامج Db2 .
يُعدّ نقل التطبيق بأكمله، بما في ذلك جميع مخازن البيانات المؤقتة، إلى منطقة مُفضّلة في وحدة التخزين الرئيسية، بديلاً عن تثبيت الصفحات على المدى الطويل. ويتم ذلك عبر حدث نظام خاص (SYSEVENT) في أنظمة التشغيل من MVS/370 إلى z/OS ، حيث يتم أولاً نقل التطبيق من أي مكان موجود فيه، على الأرجح من منطقة غير مُفضّلة ، إلى وحدة تخزين خارجية للتبديل والصفحات، ثم يتم إدخاله ثانياً إلى منطقة مُفضّلة (SYSEVENT TRANSWAP). بعد ذلك، يمكن وضع علامة "غير قابل للتبديل" على التطبيق بواسطة حدث نظام خاص آخر (SYSEVENT DONTSWAP). عند انتهاء أي تطبيق، سواءً كان ذلك بشكل طبيعي أو غير طبيعي، يُصدر نظام التشغيل ضمنياً حدث نظام خاص آخر نيابةً عن التطبيق إذا لم يكن قد فعل ذلك بالفعل (SYSEVENT OKSWAP).
بدء التشغيل باستخدام قناة الإدخال/الإخراج
حتى عملية تهيئة النظام، أو تحميل البرنامج الأولي (IPL) كما تسميها شركة IBM، تتم عبر القنوات. في نظامي IBM System/360 و System/370 ، تتم محاكاة هذه العملية جزئيًا بواسطة وحدة المعالجة المركزية من خلال تعليمة بدء الإدخال/الإخراج (SIO) الضمنية، وكلمة عنوان القناة (CAW) الضمنية في الموقع 0، وكلمة أمر القناة (CCW) الضمنية برمز عملية Read IPL، أيضًا في الموقع 0. يُفترض تسلسل الأوامر، لذا فإن كلمة أمر القناة الضمنية في الموقع 0 تنتقل إلى استكمال برنامج القناة في الموقعين 8 و16، وربما إلى مواقع أخرى إذا كانت إحدى كلمات أمر القناة هذه عبارة عن نقل داخل القناة (TIC). [ 11 ]
لتحميل النظام، تقرأ وحدة القراءة الضمنية IPL CCW الكتلة الأولى من جهاز IPL المحدد إلى منطقة البيانات ذات 24 بايت في الموقع 0. وتستمر القناة مع الكلمتين المزدوجتين الثانية والثالثة، وهما CCW، ويقوم برنامج هذه القناة بتحميل الجزء الأول من برنامج تحميل النظام في مكان آخر في الذاكرة الرئيسية. تحتوي الكلمة المزدوجة الأولى على PSW، والتي عند جلبها في نهاية IPL، تتسبب في قيام وحدة المعالجة المركزية بتنفيذ نص IPL (محمل التمهيد) الذي تمت قراءته بواسطة CCW في الموقع 8. ثم يقوم نص IPL بتحديد موقع نواة نظام التشغيل وتحميله ونقل التحكم إليها. تقوم النواة بتنفيذ أو بدء أي تهيئة ضرورية، ثم تبدأ عمليات نظام التشغيل العادية.
مفهوم IPL هذا مستقل عن الجهاز. فهو قادر على بدء التشغيل من قارئ البطاقات، أو الشريط المغناطيسي، أو جهاز تخزين ذي وصول مباشر (DASD)، مثل القرص أو الأسطوانة. أمر قراءة IPL (X'02')، الذي يحاكيه المعالج، هو أمر قراءة EBCDIC Select Stacker 1 على قارئ البطاقات، وأمر قراءة على وسائط الشريط (التي تتميز بطبيعتها بالوصول التسلسلي )، ولكنه أمر قراءة IPL خاص على جهاز DASD.
تقبل وحدات تحكم DASD الأمر X'02'، وتنتقل إلى الأسطوانة X'0000'، ثم إلى رأس الأسطوانة X'0000'، وتتخطى إلى نقطة الفهرس (أي بعد سجل وصف المسار (R0) مباشرةً)، ثم تتعامل مع أمر قراءة IPL كما لو كان أمر قراءة بيانات (X'06'). بدون هذا السلوك الخاص لوحدة تحكم DASD، لن يكون من الممكن تنفيذ IPL مستقل عن الجهاز. في وحدة DASD، يُخزَّن نص IPL في الأسطوانة X'0000'، والمسار X'0000'، والسجل X'01' (24 بايت)، وفي الأسطوانة X'0000'، والمسار X'0000'، والسجل X'02' (حجم كبير نسبيًا، بالتأكيد أكثر من 3000 بايت). أما تسمية وحدة التخزين فتُخزَّن دائمًا في الأسطوانة X'0000'، والمسار X'0000'، والكتلة X'03' (80 بايت). يشير مُعرّف وحدة التخزين دائمًا إلى جدول محتويات الفيديو (VTOC)، بمؤشر على شكل HHHH (أي أن جدول محتويات الفيديو يجب أن يكون ضمن أول 65,536 مسارًا). يُحدد تنسيق DSCB 4 الخاص بجدول محتويات الفيديو نطاقه (حجمه)، لذا لا يحتاج مُعرّف وحدة التخزين إلا إلى مؤشر إلى المسار الأول ضمن نطاق جدول محتويات الفيديو. وبما أن تنسيق DSCB 4، الذي يصف جدول محتويات الفيديو، هو دائمًا أول DSCB فيه، فإن HHHH يشير أيضًا إلى تنسيق DSCB 4.
إذا تمت محاولة بدء التشغيل (IPL) من جهاز لم تتم تهيئته باستخدام نص IPL، فإن النظام يدخل ببساطة في حالة انتظار . يقوم برنامج تهيئة وحدة التخزين ذات الوصول المباشر (DASD)، IBCDASDI، أو تطبيق تهيئة وحدة التخزين ذات الوصول المباشر (DASD)، ICKDSF، بوضع حالة انتظار PSW وسلسلة CCW وهمية في الـ 24 بايت، إذا كان الجهاز مخصصًا للبيانات فقط، وليس لبدء التشغيل (IPL)، وبعد ذلك يقوم هذان البرنامجان بتهيئة VTOC وتنفيذ وظائف تهيئة القرص الصلب الأخرى.
تتشابه عمليات التمهيد من البائعين الآخرين، على الرغم من اختلاف تفاصيل مثل مشاركة المشغل.
انظر أيضاً
مراجع
- ↑ "وحدة تحكم الاتصالات IBM 3705" (ملف PDF) . تقارير داتابرو حول اتصالات البيانات . ماكجرو هيل. أبريل 1990 [مايو 1987] . تم الاطلاع عليه في 3 أبريل 2022. سرقة الدورة هي شكل من أشكال المقاطعة حيث يستحوذ
المكون الذي يحتاج إلى الوصول إلى الذاكرة أو المعالج على التحكم لدورة كاملة من دورة الجهاز.
- ↑ "أرشيفات IBM: نظام معالجة البيانات 709" . 03.ibm.com. 23 يناير 2003. مؤرشف من الأصل في 14 يناير 2005. تم الاطلاع عليه بتاريخ 22 يناير 2014 .
- ↑ "أرشيفات IBM: نظام معالجة البيانات 7090 (تابع)" . 03.ibm.com. 30 ديسمبر 1958. مؤرشف من الأصل في 13 مارس 2005. تم الاطلاع عليه في 22 يناير 2014 .
- ↑ دليل إلى مُجمّع المعالج IBM 3033، ومُجمّع المعالج المُلحق، ومُجمّع المعالجات المتعددة لنظام System/370 (ملف PDF) (الطبعة الخامسة ). IBM . أبريل 1979. ص 3. GC20-1859-4.
- ↑ منتدى SCSI . منتديات التكنولوجيا. أكتوبر 1986. ص 202.
* أوجه التشابه مع الحواسيب المركزية، * نظام 360 قناة متعددة الإرسال، * الاتجاه نحو الحواسيب الصغيرة
- ↑ مبادئ تشغيل بنية IBM System/370 الموسعة (ملف PDF) . IBM. SA22-7085-0.
- ↑ شركة آي بي إم (1968). كتاب الطالب: مقدمة إلى بنية نظام آي بي إم سيستم/360 (ملف PDF) . شركة آي بي إم. ص 22.
- ↑ أتاناسيو، سي آر؛ ماركشتاين، بي دبليو؛ فيليبس، آر جيه (1976). "اختراق نظام التشغيل: دراسة حول سلامة VM/370". مجلة أنظمة IBM . 15 (1): 102-116 . doi : 10.1147/sj.151.0102 .
- ↑ شركة آي بي إم (1969). وصف مكونات نظام IBM System/360: وحدة تخزين الوصول المباشر 2314 ووحدة التحكم في التخزين المساعد 2844 (ملف PDF) . شركة آي بي إم. صفحة 50.2. مؤرشف من النسخة الأصلية (ملف PDF) بتاريخ 22 مارس 2011.
- ↑ شركة آي بي إم (1978). نظرة عامة على نظام التشغيل OS/VS2 MVS (ملف PDF) . الصفحات 8-12 . مؤرشف من النسخة الأصلية (ملف PDF) بتاريخ 16-03-2011.
- ↑ انظر مبادئ تشغيل النظام/370، GA22–7000–4، الصفحات 54-55، تحميل البرنامج الأولي؛ بنية النظام/370 الموسعة (XA)، وبنية أنظمة المؤسسة (ESA) وبنية z/ متشابهة تمامًا، على الرغم من أنها تستخدم قناة فرعية بدء ضمنية (SSCH) بتنسيق 0 عكس اتجاه عقارب الساعة بدلاً من بدء الإدخال/الإخراج الضمني.
ملحوظات
- 1 2 بعض القنوات المشفرة ميكروية تعمل عن طريق سرقة الدورة [ 1 ] بدلاً من الأجهزة المستقلة تمامًا.
- ↑ عادةً ما تتضمن مواصفات الواجهة كلاً من الإشارات والكابلات الخارجية.
- ↑ باستخدام اختبارات صريحة لحالة القناة والتعليمات
- 70 إيان
- إدخال إلى A من القناة d
- 71 IAM
- أدخل (أ) كلمات إلى m من القناة د
- 72 OAN
- مخرج من A إلى القناة d
- 73 OAM
- إخراج (أ) الكلمات من القناة m إلى القناة d
- 74 ACN
- تفعيل القناة د
- 75 DCN
- افصل القناة د
- 76 مروحة
- الوظيفة (أ) على القناة د
- 77 FNC
- الوظيفة m على القناة d
روابط خارجية
- الحواسيب المركزية
- خط إنتاج الحواسيب المركزية IBM System/360
