اقرأ في هذا المقال
يعني التوازي في المعالجات الأحادية (Parallelism in a uniprocessor) نظامًا بمعالج واحد يؤدي مهمتين أو أكثر من مهمتين في وقت واحد، يمكن تحقيق التوازي من خلال وسيلتين من الأجهزة والبرامج (hardware and software)، يزيد التوازي من الكفاءة ويقلل من وقت المعالجة، في هذا المقال، سنناقش هيكل النظام أحادي المعالج، وكيف يمكن تعزيز التوازي في النظام أحادي المعالج.
ما هو المعالج الأحادي Uniprocessor
المعالج الأحادي هو نظام به معالج واحد يحتوي على ثلاثة مكونات رئيسية هي الذاكرة الرئيسية (main memory)، أي وحدة التخزين المركزية (central storage unit)، ووحدة المعالجة المركزية (CPU)، ووحدة الإدخال والإخراج مثل الشاشة ولوحة المفاتيح والماوس، وما إلى ذلك، لفهم هيكل نظام المعالج الأحادي، سوف ندرس الهيكلين المعماريين للأنظمة، الأول هو حاسوب صغير فائق (VAX-11/780) تمّ تصنيعه بواسطة شركة (Digital Equipment Company) والثاني هو الكمبيوتر الرئيسي (370 / موديل 168) بواسطة (IBM).
الكمبيوتر الصغير الفائق VAX-11/780
لتحليل هيكل نظام (VAX)، سنقوم أولاً بتحليل وحدة المعالجة المركزية لنظام (VAX) الذي يحتوي على ستة عشر سجلاً للأغراض العامة (32) بت من (R0) إلى (R15)، من بين هذه السجلات الـ (16)، يعمل أحد السجلات بمثابة عداد البرنامج الذي يحمل عنوان التعليمات التالية التي سيتم تنفيذها، وهناك سجل آخر يخدم الغرض من سجل الحالة الذي يحمل حالة البرنامج الحالي قيد التنفيذ.
تحتوي وحدة المعالجة المركزية لنظام (VAX) أيضًا على ذاكرة تخزين مؤقت محلية مع ذاكرة تشخيصية اختيارية (optional diagnostic memory) تُستخدم أثناء تشخيص أي أخطاء، يحتوي على وحدة منطقية حسابية جنبًا إلى جنب مع مسرع (floating-point accelerator) الذي ينفذ العملية الحسابية لل (floating-point)، يمكن للمشغل توسط عمليات وحدة المعالجة المركزية من خلال وحدة التحكم المتصلة أيضًا بالقرص المرن.
يتم الآن ربط الذاكرة الرئيسية ووحدة المعالجة المركزية وأجهزة الإدخال / الإخراج الأخرى بمساعدة ناقل مشترك وهو اتصال لوحة الكترونية معززة متزامن (SBI).
الكمبيوتر الرئيسي Mainframe IBM System 370
تحتوي وحدة المعالجة المركزية لهذا النظام على وحدة فك تشفير التعليمات وتنفيذها جنبًا إلى جنب مع ذاكرة التخزين المؤقت، الذاكرة الرئيسية هنا مقسمة إلى أربع وحدات منطقية من وحدات الحالة، تحتوي الذاكرة الرئيسية على وحدة تحكم في التخزين تربط وحدات الحالة المنطقية الأربع بوحدة المعالجة المركزية، يتم توصيل أجهزة الإدخال / الإخراج بوحدة المعالجة المركزية عبر قنوات الإدخال / الإخراج عالية السرعة.
ما هو التوازي في المعالج الأحادي Parallelism in Uniprocessor
يمكن تقديم التوازي في المعالجات الأحادية إمّا باستخدام الأجهزة أو البرامج (hardware or software)، سنبدأ أولاً بنوع الأجهزة ثمّ سنرى فيما بعد نوع البرنامج لتحقيق التوازي في المعالج الأحادي جنبًا إلى جنب مع الاستخدام الأفضل لموارد النظام:
طريقة الأجهزة للتوازي في المعالج الأحادي Hardware Approach
تعدد الوحدات الوظيفية Multiplicity of Functional Unit
في أجهزة الكمبيوتر السابقة التي تحدثنا عنها أعلاه، تتكون وحدة المعالجة المركزية من وحدة منطقية حسابية واحدة فقط والتي كانت تؤدي وظيفة واحدة فقط في كل مرة، يؤدي هذا إلى إبطاء تنفيذ التسلسل الطويل للتعليمات الحسابية، للتغلب على هذا، يمكن زيادة الوحدات الوظيفية لوحدة المعالجة المركزية لإجراء عمليات حسابية متوازية ومتزامنة.
التوازي وخط أنابيب التجزئة داخل وحدة المعالجة المركزية
يمكن تنفيذ الإضافات المتوازية باستخدام تقنيات مثل حمل (carry-lookahead) و”حمل-حفظ” (carry-save)، (parallel adder) المتوازي عبارة عن دائرة رقمية تضيف رقمين ثنائيين، حيث يكون طول البت الواحد أكبر مقارنة بطول بت آخر ويعمل ال (adder) على أزواج متكافئة من البتات المتوازية، يمكن إعادة تشفير المضاعف (multiplier) للتخلص من العمليات الحسابية الأكثر تعقيدًا، يتم تحديد مراحل تنفيذ التعليمات المختلفة للتغلب على حالة تنفيذ التعليمات المتداخلة، يتم استخدام تقنيات مثل الجلب المسبق للتعليمات والمخازن المؤقتة للبيانات.
تداخل وحدة المعالجة المركزية وعملية الإدخال / الإخراج
لتنفيذ عملية الإدخال / الإخراج بالتوازي مع عملية وحدة المعالجة المركزية، يمكننا استخدام وحدات تحكم الإدخال / الإخراج أو معالجات الإدخال / الإخراج، لنقل المعلومات المباشر بين جهاز الإدخال / الإخراج والذاكرة الرئيسية، يمكن استخدام الوصول المباشر للذاكرة (DMA).
استخدام نظام الذاكرة الهرمي
ندرك جميعًا حقيقة أنّ سرعة معالجة وحدة المعالجة المركزية أسرع (1000) مرة من سرعة الوصول إلى الذاكرة ممّا يؤدي إلى إبطاء سرعة المعالجة، للتغلب على فجوة السرعة، يمكن استخدام نظام الذاكرة الهرمي، يتم تسجيل بنية الذاكرة التي يمكن الوصول إليها بشكل أسرع في وحدة المعالجة المركزية، ثمّ ذاكرة التخزين المؤقت التي تخزن البيانات بين وحدة المعالجة المركزية والذاكرة الرئيسية، ثمّ تأتي الذاكرة الرئيسية التي تحتوي على البرنامج الجاري تنفيذه حاليًا.
موازنة عرض النطاق الترددي للنظام الفرعي
يختلف وقت المعالجة والوصول إلى وحدة المعالجة المركزية والذاكرة الرئيسية وأجهزة الإدخال / الإخراج، إذا تمّ ترتيب وقت معالجة هذه الوحدات بترتيب تنازلي، فسيكون الترتيب:
td> tm>tp
حيث: (td) هي وقت معالجة الجهاز، و(tm) هي وقت معالجة الذاكرة الرئيسية، و(tp) هي وقت معالجة وحدة المعالجة المركزية، وقت معالجة أجهزة الإدخال / الإخراج أكبر مقارنة بالذاكرة ووحدة المعالجة الرئيسية، وحدة المعالجة المركزية هي أسرع وحدة، لتحقيق التوازن بين سرعة وحدة المعالجة المركزية والذاكرة، يمكن استخدام ذاكرة تخزين مؤقت سريعة تعمل على تخزين المعلومات بين الذاكرة ووحدة المعالجة المركزية، لموازنة النطاق الترددي بين الذاكرة وأجهزة الإدخال / الإخراج، يمكن استخدام قنوات الإدخال والإخراج بسرعات مختلفة بين الذاكرة الرئيسية وأجهزة الإدخال / الإخراج.
طريقة البرمجيات للتوازي في المعالج الأحادي Software Approach
البرمجة المتعددة Multiprogramming
قد تكون هناك عمليات متعددة نشطة في أجهزة الكمبيوتر وقد يتنافس بعضها على الذاكرة، وبعضها لأجهزة الإدخال / الإخراج والبعض الآخر على وحدة المعالجة المركزية، لذلك، لتحقيق التوازن بين هذه العمليات، يجب ممارسة تنسيق بين البرامج، سيؤدي ذلك إلى تعزيز استخدام الموارد من خلال تداخل عمليات الإدخال / الإخراج ووحدة المعالجة المركزية.
يمكن فهم طريقة التنسيق بين البرامج على أنّه عندما يتم إشراك عملية (P1) في عملية الإدخال / الإخراج، يمكن للجدول الزمني للعملية تبديل وحدة المعالجة المركزية لتشغيل العملية (P2)، أدت هذه العملية (P1 وP2) إلى التنفيذ في وقت واحد، يُطلق على هذا التنسيق بين وحدة المعالجة المركزية وأجهزة الإدخال / الإخراج اسم “البرمجة المتعددة” (multiprogramming).
وقت المشاركة Time-Sharing
تعتمد البرمجة المتعددة على مفهوم مشاركة الوقت، يتم تقاسم وقت وحدة المعالجة المركزية بين برامج متعددة، في بعض الأحيان، يمكن لبرنامج ذي أولوية عالية إشراك وحدة المعالجة المركزية لفترة طويلة ممّا يؤدي إلى تعطيل العمليات الأخرى في الكمبيوتر، يعين مفهوم المشاركة الزمنية شريحة زمنية ثابتة أو متغيرة من وحدات المعالجة المركزية لعمليات متعددة في الكمبيوتر، هذا يوفر فرصة متساوية لجميع العمليات في الكمبيوتر.
لذلك، بهذه الطريقة، يمكننا إدخال التوازي بشكل فعّال في المعالج الأحادي، يزيد التوازي من كفاءة النظام ويجعل العملية الحسابية أسرع.