أنظمة الحوسبة متعددة المعالجات. SMP – الوصول الموحد للذاكرة (الذاكرة المشتركة)

18.04.2019

بالنسبة لأنظمة MIMD، يتم حاليًا التصنيف بشكل عام، استنادًا إلى الأساليب المستخدمة لتنظيم ذاكرة الوصول العشوائي (RAM) في هذه الأنظمة. وفقا لهذا التصنيف، أولا وقبل كل شيء، يتم التمييز أنظمة الحوسبة متعددة المعالجات(أو المعالجات المتعددة) أو أنظمة حوسبة الذاكرة المشتركة (المعالجات المتعددة، أنظمة الذاكرة المشتركة، أنظمة الذاكرة المشتركة) و أنظمة الحوسبة المتعددة(أجهزة كمبيوتر متعددة) أو أنظمة حوسبة ذات ذاكرة موزعة (أجهزة كمبيوتر متعددة، أنظمة ذاكرة موزعة). يظهر الشكل هيكل الأنظمة متعددة المعالجات والحواسيب المتعددة. 1، أين المعالج، هي وحدة الذاكرة.

أرز. 1. أ) - هيكل متعدد المعالجات؛ ب) – هيكل كمبيوتر متعدد.

معالجات متعددة.

في المعالجات المتعددة، تكون مساحة العنوان لجميع المعالجات هي نفسها. وهذا يعني أنه في حالة مواجهة نفس المتغير في برامج عدة معالجات متعددة المعالجات، للحصول على قيمة هذا المتغير أو تغييرها، ستصل هذه المعالجات إلى خلية فعلية واحدة من الذاكرة المشتركة. هذا الظرف له عواقب إيجابية وسلبية.

فمن ناحية، ليست هناك حاجة لنقل البيانات فعليًا بين برامج التبديل، مما يقلل الوقت المستغرق في التبادل بين المعالجات.

من ناحية أخرى، نظرًا لأن الوصول المتزامن للعديد من المعالجات إلى البيانات المشتركة يمكن أن يؤدي إلى نتائج غير صحيحة، فإن هناك حاجة إلى أنظمة لمزامنة العمليات المتوازية وضمان تماسك الذاكرة. نظرًا لأن المعالجات تحتاج إلى الوصول إلى الذاكرة المشتركة بشكل متكرر، فإن متطلبات النطاق الترددي لبيئة الاتصال مرتفعة للغاية.

الظرف الأخير يحد من عدد المعالجات في المعالجات المتعددة إلى عدة عشرات. يمكن التخفيف جزئيًا من خطورة مشكلة الوصول إلى الذاكرة المشتركة عن طريق تقسيم الذاكرة إلى كتل، مما يجعل من الممكن موازنة الوصول إلى الذاكرة من معالجات مختلفة.

دعونا نلاحظ ميزة أخرى للمعالجات المتعددة - يعمل النظام متعدد المعالجات تحت سيطرة نسخة واحدة من نظام التشغيل (عادةً ما يشبه UNIX) ولا يتطلب تكوينًا فرديًا لكل عقدة معالج.

عادةً ما تسمى المعالجات المتعددة المتجانسة ذات الوصول المتساوي (المتماثل) إلى ذاكرة الوصول العشوائي المشتركة بأنظمة SMP (أنظمة ذات بنية متعددة المعالجات متماثلة). ظهرت أنظمة SMP كبديل للأنظمة متعددة المعالجات باهظة الثمن القائمة على معالجات خطوط الأنابيب المتجهة والمعالجات المتوازية النواقل (انظر الشكل 2).


أجهزة كمبيوتر متعددة.

نظرًا لبساطة بنيتها، أصبحت أجهزة الكمبيوتر المتعددة هي الأكثر انتشارًا حاليًا. أجهزة الكمبيوتر المتعددة لا تشارك الذاكرة. ولذلك، يتم عادةً إجراء التبادل بين المعالجات في مثل هذه الأنظمة من خلال شبكة اتصالات باستخدام تمرير الرسائل.

يحتوي كل معالج في كمبيوتر متعدد على مساحة عنوان مستقلة. ولذلك فإن وجود متغير يحمل نفس الاسم في برامج المعالجات المختلفة يؤدي إلى الوصول إلى خلايا مختلفة فيزيائياً من الذاكرة الخاصة بهذه المعالجات. يتطلب هذا الظرف النقل الفعلي للبيانات بين برامج التبديل في معالجات مختلفة. في أغلب الأحيان، يتم إجراء الجزء الأكبر من المكالمات بواسطة كل معالج إلى ذاكرته الخاصة. ولذلك، تم تخفيف متطلبات بيئة التبديل. ونتيجة لذلك، يمكن أن يصل عدد المعالجات في أنظمة الكمبيوتر المتعددة إلى عدة آلاف، وعشرات الآلاف، وحتى مئات الآلاف.

أعلى أداء لأكبر أنظمة الذاكرة المشتركة أقل من أعلى أداء لأكبر أنظمة الذاكرة الموزعة؛ تكلفة الأنظمة ذات الذاكرة المشتركة أعلى من تكلفة الأنظمة ذات الذاكرة الموزعة ذات الأداء المماثل.

تسمى أجهزة الكمبيوتر المتعددة المتجانسة ذات الذاكرة الموزعة أنظمة الحوسبة ذات البنية المتوازية على نطاق واسع(أنظمة MPP) - انظر الشكل 2.

في مكان ما بين أنظمة SMP وأنظمة MPP توجد أنظمة NUMA.


الأنظمة العنقودية (مجموعات الحوسبة).

أنظمة الكتلة(مجموعات الحوسبة) هي خيار أرخص لأنظمة MPP. تتكون مجموعة الحوسبة من مجموعة من أجهزة الكمبيوتر الشخصية أو محطات العمل) متحدة بواسطة شبكة محلية كوسيلة اتصال. ستتم مناقشة مجموعات الحوسبة بالتفصيل لاحقًا.

أرز. 2. تصنيف المعالجات المتعددة وأجهزة الكمبيوتر المتعددة.

أنظمة SMP

تتمتع جميع معالجات نظام SMP بوصول متماثل إلى الذاكرة، أي. ذاكرة نظام SMP هي ذاكرة UMA. نعني بالتناظر ما يلي: الحقوق المتساوية لجميع المعالجات في الوصول إلى الذاكرة؛ نفس العنوان لجميع عناصر الذاكرة؛ وقت وصول متساوٍ لجميع معالجات النظام إلى الذاكرة (دون مراعاة الأقفال المتبادلة).

يظهر الهيكل العام لنظام SMP في الشكل. 3. تم بناء بيئة الاتصال لنظام SMP على أساس بعض ناقل النظام عالي السرعة أو المحول عالي السرعة. بالإضافة إلى المعالجات المتماثلة والذاكرة المشتركة M، فإن أجهزة الإدخال/الإخراج متصلة بنفس الناقل أو المحول.

إن البساطة الواضحة لأنظمة SMP تخفي مشاكل كبيرة، تتعلق بشكل أساسي بذاكرة الوصول العشوائي. الحقيقة هي أن سرعة ذاكرة الوصول العشوائي (RAM) حاليًا متخلفة بشكل كبير عن سرعة المعالج. ولسد هذه الفجوة، تم تجهيز المعالجات الحديثة بذاكرة عازلة عالية السرعة (ذاكرة التخزين المؤقت). سرعة الوصول إلى هذه الذاكرة أعلى بعشرات المرات من سرعة الوصول إلى الذاكرة الرئيسية للمعالج. ومع ذلك، فإن وجود ذاكرة التخزين المؤقت ينتهك مبدأ الوصول المتساوي إلى أي نقطة في الذاكرة، حيث أن البيانات الموجودة في ذاكرة التخزين المؤقت لأحد المعالجات لا يمكن الوصول إليها من قبل المعالجات الأخرى. لذلك، بعد كل تعديل لنسخة المتغير الموجود في ذاكرة التخزين المؤقت للمعالج، من الضروري إجراء تعديل متزامن لهذا المتغير نفسه الموجود في الذاكرة الرئيسية. في أنظمة SMP الحديثة، يتم الحفاظ على تماسك ذاكرة التخزين المؤقت بواسطة الأجهزة أو نظام التشغيل.

أرز. 3. الهيكل العام لنظام SMP

أنظمة SMP الأكثر شهرة هي خوادم ومحطات عمل SMP من IBM، HP، Compaq، Dell، Fujitsu، إلخ. يعمل نظام SMP تحت نظام تشغيل واحد (في أغلب الأحيان UNIX وما شابه ذلك).

نظرًا لعرض النطاق الترددي المحدود لبيئة الاتصالات، فإن أنظمة SMP لا تتوسع بشكل جيد. حاليًا، لا تستخدم الأنظمة الحقيقية أكثر من بضع عشرات من المعالجات.

من الخصائص غير السارة المعروفة لأنظمة SMP أن تكلفتها تزيد بشكل أسرع من الأداء مع زيادة عدد المعالجات في النظام.

أنظمة MPP.

يتم إنشاء أنظمة MPP من عقد المعالج التي تحتوي على معالج، ووحدة ذاكرة وصول عشوائي (RAM) محلية، ومعالج اتصالات أو محول شبكة، وفي بعض الأحيان محركات الأقراص الثابتة و/أو أجهزة الإدخال/الإخراج الأخرى. في الواقع، هذه الوحدات هي أجهزة كمبيوتر كاملة المواصفات (انظر الشكل 4). فقط معالج نفس الوحدة لديه حق الوصول إلى كتلة ذاكرة الوصول العشوائي (RAM) الخاصة بوحدة معينة. تتفاعل الوحدات مع بعضها البعض من خلال بعض وسائل الاتصال. هناك خياران لتشغيل نظام التشغيل على أنظمة MPP. في أحد الإصدارات، يعمل نظام التشغيل الكامل فقط على كمبيوتر التحكم، وتقوم كل وحدة فردية بتشغيل نسخة مخفضة بشكل كبير من نظام التشغيل، وتدعم فقط الوظائف الأساسية لنواة نظام التشغيل. في الخيار الثاني، تعمل كل وحدة على نظام تشغيل متكامل يشبه UNIX. لاحظ أن حاجة كل معالج إلى نظام تشغيل MPP (بشكل أو بآخر) تسمح باستخدام كمية محدودة فقط من الذاكرة لكل معالج.

بالمقارنة مع أنظمة SMP، فإن بنية نظام MPP تقضي على مشكلة تعارض الوصول إلى الذاكرة ومشكلة تماسك ذاكرة التخزين المؤقت.

الميزة الرئيسية لأنظمة MPP هي قابلية التوسع الجيدة. وبالتالي، فإن أجهزة الكمبيوتر العملاقة من سلسلة CRAY T3E قادرة على توسيع نطاق ما يصل إلى 2048 معالجًا. يتم تعيين جميع سجلات الأداء تقريبًا اليوم على أنظمة MPP التي تتكون من عدة آلاف من المعالجات.

أرز. 4. الهيكل العام لنظام MPP.

ومن ناحية أخرى، فإن نقص الذاكرة المشتركة يقلل بشكل كبير من سرعة الاتصال بين المعالجات في أنظمة MPP. هذا الظرف بالنسبة لأنظمة MPP يبرز مشكلة فعالية بيئة الاتصال.

بالإضافة إلى ذلك، تتطلب أنظمة MPP تقنيات برمجة خاصة لتنفيذ تبادل البيانات بين المعالجات. وهذا ما يفسر ارتفاع أسعار البرامج لأنظمة MPP. وهذا يفسر أيضًا سبب كون كتابة برامج متوازية فعالة لأنظمة MPP مهمة أكثر تعقيدًا من كتابة نفس البرامج لأنظمة SMP. بالنسبة لمجموعة واسعة من المشكلات التي تُعرف بها خوارزميات تسلسلية مثبتة جيدًا، ليس من الممكن إنشاء خوارزميات متوازية فعالة لأنظمة MPP.

أنظمة نوما.

يمكن ضمان الوصول المشترك للبيانات بشكل منطقي حتى مع الذاكرة الموزعة فعليًا. في هذه الحالة، تكون المسافة بين المعالجات المختلفة وعناصر الذاكرة المختلفة، بشكل عام، مختلفة وتختلف مدة وصول المعالجات المختلفة إلى عناصر الذاكرة المختلفة. أولئك. ذاكرة هذه الأنظمة هي ذاكرة NUMA.

عادة ما يتم بناء نظام NUMA على أساس عقد معالج متجانسة، تتكون من عدد صغير من المعالجات ووحدة الذاكرة. يتم توصيل الوحدات باستخدام بعض وسائط الاتصال عالية السرعة (انظر الشكل 5). يتم دعم مساحة عنوان واحدة، ويتم دعم الوصول إلى الذاكرة البعيدة في الأجهزة، أي. إلى ذاكرة الوحدات الأخرى. في هذه الحالة، يكون الوصول إلى الذاكرة المحلية أسرع بعدة مرات من الوصول إلى الذاكرة البعيدة. في الأساس، نظام NUMA هو نظام MPP يستخدم عقد SMP كعناصر حوسبة منفصلة.

من بين أنظمة NUMA، يتم تمييز الأنواع التالية من الأنظمة:

  • أنظمة COMA، حيث يتم استخدام ذاكرة التخزين المؤقت المحلية فقط للمعالجات كذاكرة الوصول العشوائي (هندسة ذاكرة التخزين المؤقت فقط - COMA)؛
  • أنظمة CC-NUMA، حيث تضمن الأجهزة تماسك ذاكرة التخزين المؤقت المحلية للمعالجات المختلفة (NUMA متماسكة ذاكرة التخزين المؤقت - CC-NUMA)؛
  • أنظمة NCC-NUMA التي لا يدعم فيها الجهاز تماسك ذاكرة التخزين المؤقت المحلية لمعالجات مختلفة (NUMA غير متماسكة في ذاكرة التخزين المؤقت - NCC-NUMA). يتضمن هذا النوع، على سبيل المثال، نظام Cray T3E.

أرز. 5. الهيكل العام لنظام NUMA.

يتيح لك التوفر المنطقي للذاكرة في أنظمة NUMA، من ناحية، العمل بمساحة عنوان واحدة، ومن ناحية أخرى، يجعل من السهل جدًا ضمان قابلية التوسع العالية للنظام. تسمح هذه التقنية حاليًا بإنشاء أنظمة تحتوي على ما يصل إلى عدة مئات من المعالجات.

يتم إنتاج أنظمة NUMA بكميات كبيرة بواسطة العديد من شركات الكمبيوتر كخوادم متعددة المعالجات وتحتل الريادة في فئة أجهزة الكمبيوتر العملاقة الصغيرة.

بنية SMP هي بنية متماثلة متعددة المعالجات. السمة الرئيسية للأنظمة ذات بنية SMP هي وجود ذاكرة فعلية مشتركة مشتركة بين جميع المعالجات.

تم بناء نظام SMP على أساس ناقل نظام عالي السرعة، حيث يتم توصيل ثلاثة أنواع من الكتل الوظيفية بالفتحات:

●المعالجات (وحدة المعالجة المركزية)،

● ذاكرة الوصول العشوائي (RAM)،

● النظام الفرعي للإدخال/الإخراج (I/O).

الذاكرة هي وسيلة لنقل الرسائل بين المعالجات. عند الوصول إلى OP، تتمتع جميع أجهزة الكمبيوتر بحقوق متساوية ونفس العنوان لجميع خلايا الذاكرة. يتيح لك الظرف الأخير تبادل البيانات بشكل فعال مع أجهزة الكمبيوتر الأخرى. يعمل نظام SMP تحت نظام تشغيل واحد (إما يشبه UNIX أو Windows). يقوم نظام التشغيل تلقائيًا بتوزيع العمليات عبر المعالجات؛ ومن الممكن أيضًا الربط الصريح. تُستخدم بنية SMP في الخوادم ومحطات العمل المعتمدة على معالجات من Intel وAMD وSun وIBM وHP وغيرها.

مبادئ التنظيم:

يتكون نظام SMP من عدة معالجات متجانسة ومجموعة ذاكرة مشتركة. يتم تفسير كل عملية وصول إلى الذاكرة على أنها معاملة على ناقل ذاكرة المعالج. تعني كلمة "نظير" أن كل معالج يمكنه القيام بكل ما يمكن لأي معالج آخر القيام به. يتمتع كل معالج بإمكانية الوصول إلى الذاكرة بأكملها، ويمكنه تنفيذ أي عملية إدخال/إخراج، ومقاطعة المعالجات الأخرى، وما إلى ذلك. في SMP، يحتوي كل معالج على ذاكرة تخزين مؤقت واحدة على الأقل خاصة به.

يتم دعم تماسك ذاكرة التخزين المؤقت بواسطة الأجهزة.

مزايا:

· البساطة والتنوع في البرمجة. لا تفرض بنية SMP قيودًا على نموذج البرمجة المستخدم لإنشاء التطبيق: عادةً ما يتم استخدام نموذج فرع متوازي، عندما تعمل جميع المعالجات بشكل مستقل تمامًا عن بعضها البعض - ومع ذلك، يمكن أيضًا تنفيذ النماذج التي تستخدم الاتصال بين المعالجات. يؤدي استخدام الذاكرة المشتركة إلى زيادة سرعة هذا التبادل؛ كما يتمتع المستخدم بإمكانية الوصول إلى كامل مساحة الذاكرة في وقت واحد.

· سهولة التشغيل. عادة، تستخدم أنظمة SMP نظام تبريد مكيف، مما يجعلها أسهل في الصيانة.

· سعر منخفض نسبيا.

· يعد النقل الضمني للبيانات بين ذاكرات التخزين المؤقت بواسطة أجهزة SMP أسرع وأرخص وسيلة اتصال في أي بنية متوازية للأغراض العامة.

· الاستعداد. في المعالجات المتعددة المتماثلة، لا يؤدي فشل أحد المكونات إلى فشل النظام، حيث أن أيًا من المعالجات قادر على أداء نفس الوظائف مثل المعالجات الأخرى.

عيوب:

أنظمة SMP لا تتوسع بشكل جيد:

1. يحتوي ناقل النظام على نطاق ترددي محدود وعدد محدود من الفتحات.

2. في أي وقت، يكون الناقل قادرًا على معالجة معاملة واحدة فقط، ونتيجة لذلك تنشأ مشاكل في حل التعارض عندما تصل عدة معالجات في نفس الوقت إلى نفس المناطق من الذاكرة الفعلية المشتركة.

في الأنظمة الحقيقية، لا يمكن استخدام أكثر من 8-16-32 معالجًا بشكل فعال.

طلب:

غالبًا ما يتم استخدام SMP في العلوم والصناعة والأعمال، حيث يتم تطوير البرامج خصيصًا للتنفيذ متعدد الخيوط. وفي الوقت نفسه، تتم كتابة معظم المنتجات الاستهلاكية، مثل معالجات النصوص وألعاب الكمبيوتر، بطريقة لا يمكنها الاستفادة كثيرًا من أنظمة SMP. في حالة الألعاب، غالبًا ما يرجع ذلك إلى حقيقة أن تحسين البرنامج لأنظمة SMP سيؤدي إلى فقدان الأداء عند التشغيل على أنظمة ذات معالج واحد، والتي تشغل غالبية السوق.

أمثلة على أجهزة الكمبيوتر ذات بنية SMP:

HP 9000 (ما يصل إلى 32 معالجًا)، Sun HPC 100000 (ما يصل إلى 64 بالمائة)، Compaq AlphaServer (ما يصل إلى 32 بالمائة)، Sun SPARC Enterprise T5220
2.8.بنية MPP. تاريخ التطور. المبادئ الأساسية. مفهوم وبنية وخصائص الكمبيوتر العملاق Intel Paragon.

البنية المتوازية الضخمة (المعالجة المتوازية الضخمة) هي فئة من معماريات أنظمة الحوسبة المتوازية. خصوصية البنية هي أن الذاكرة مقسمة جسديًا. يتم بناء النظام من العقد الفردية التي تحتوي على معالج، أو بنك ذاكرة محلي، أو معالجات اتصالات أو محولات الشبكة، وأحيانًا محركات الأقراص الثابتة و/أو أجهزة الإدخال/الإخراج الأخرى.

فقط المعالجات من نفس العقدة لديها حق الوصول إلى بنك OP الخاص بعقدة معينة. ترتبط العقد بقنوات اتصال خاصة. يمكن للمستخدم تحديد الرقم المنطقي للمعالج الذي يتصل به وتنظيم تبادل الرسائل مع المعالجات الأخرى. تستخدم أجهزة MPP خيارين لنظام التشغيل:

● في أحدهما، يعمل نظام التشغيل الكامل فقط على جهاز التحكم، وتقوم كل عقدة بتشغيل نسخة مخفضة بشكل كبير من نظام التشغيل، مما يضمن تشغيل فرع التطبيق الموازي الموجود فيه.

● في الخيار الثاني، تقوم كل وحدة بتشغيل نظام تشغيل كامل، غالبًا ما يشبه نظام التشغيل UNIX، ويتم تثبيته بشكل منفصل.


أطلق العنان لقوة Linux على أنظمة SMP

يمكنك زيادة أداء نظام Linux بعدة طرق، ومن أشهرها زيادة أداء المعالج. الحل الواضح هو استخدام معالج بسرعة ساعة أعلى، ولكن مع أي تقنية هناك حد مادي حيث لا يمكن لمولد الساعة أن يعمل بشكل أسرع. بمجرد الوصول إلى هذا الحد، يمكنك اتباع نهج أفضل بكثير واستخدام معالجات متعددة. لسوء الحظ، يعتمد الأداء بشكل غير خطي على مجموعة معلمات المعالجات الفردية.

قبل مناقشة استخدام المعالجة المتعددة في Linux، دعونا نلقي نظرة على تاريخها.

تاريخ المعالجة المتعددة

بدأت المعالجة المتعددة في منتصف الخمسينيات في عدد من الشركات، بعضها تعرفه وبعضها ربما نسيته (IBM، وDigital Equipment Corporation، وControl Data Corporation). في أوائل الستينيات، قدمت شركة بوروز معالجًا متعددًا متماثلًا من نوع MIMD رباعي وحدة المعالجة المركزية مع ما يصل إلى ستة عشر وحدة ذاكرة متصلة بواسطة شريط متقاطع (أول بنية SMP). تم تقديم CDC 6600 المعروف والناجح على نطاق واسع في عام 1964 وزود وحدة المعالجة المركزية بعشرة معالجات فرعية (معالجات طرفية). في أواخر الستينيات، أصدرت شركة هانيويل نظامًا آخر متعدد المعالجات متماثلًا يشتمل على ثمانية وحدات معالجة مركزية متعددة.

بينما تطورت الأنظمة متعددة المعالجات، تطورت التكنولوجيا أيضًا، مما جعل المعالجات أصغر حجمًا وزادت قدرتها على العمل بسرعات ساعة أعلى بكثير. في الثمانينيات، قدمت شركات مثل Cray Research أنظمة متعددة المعالجات وأنظمة تشغيل تشبه UNIX® يمكنها استخدامها (CX-OS).

شهدت أواخر الثمانينيات تراجعًا في الأنظمة متعددة المعالجات مع شعبية أجهزة الكمبيوتر الشخصية ذات المعالج الواحد مثل كمبيوتر IBM الشخصي. ولكن الآن، وبعد مرور عشرين عامًا، عادت المعالجة المتعددة إلى نفس أجهزة الكمبيوتر الشخصية في شكل معالجة متعددة متماثلة.

قانون أمدال

قام جين أمدال، وهو مهندس كمبيوتر وموظف في شركة آي بي إم، بتطوير معماريات الكمبيوتر في شركة آي بي إم، وأنشأ الشركة التي تحمل الاسم نفسه، شركة أمدال، وما إلى ذلك. ولكن ما جلب له الشهرة هو قانونه، الذي يحسب أقصى قدر ممكن من التحسين للنظام عند تحسينه. جزء. يستخدم القانون في المقام الأول لحساب الحد الأقصى من التحسن النظري في أداء النظام عند استخدام معالجات متعددة (انظر الشكل 1).

الشكل 1. قانون أمدال لتوازي العمليات

باستخدام المعادلة الموضحة في الشكل 1، يمكنك حساب الحد الأقصى لتحسين الأداء للنظام الذي يستخدمه نالمعالجات والعامل F، مما يشير إلى أي جزء من النظام لا يمكن موازنته (جزء النظام ذو الطبيعة التسلسلية). وتظهر النتيجة في الشكل 2.

الشكل 2. قانون أمدال لنظام يحتوي على ما يصل إلى عشر وحدات معالجة مركزية

يوضح السطر العلوي في الشكل 2 عدد المعالجات. ومن الناحية المثالية، هذا هو ما تريد رؤيته بعد إضافة المزيد من المعالجات لحل المشكلة. لسوء الحظ، نظرًا لحقيقة أنه لا يمكن موازنة كل شيء في المشكلة وأن هناك نفقات إضافية في إدارة المعالجات، فإن السرعة أقل قليلاً. يوجد أدناه (الخط الأرجواني) حالة مشكلة متسلسلة بنسبة 90%. أفضل حالة في هذا الرسم البياني تتوافق مع الخط البني، الذي يصور مهمة متسلسلة بنسبة 10%، وبالتالي قابلة للتوازي بنسبة 90%. ومع ذلك، فإن عشرة معالجات لا تعمل بشكل أفضل بكثير من خمسة.

المعالجة المتعددة والكمبيوتر

بنية SMP هي بنية يتم فيها توصيل معالجين متطابقين أو أكثر ببعضهما البعض عبر الذاكرة المشتركة. لديهم جميعًا نفس الوصول إلى الذاكرة المشتركة (نفس زمن الوصول للوصول إلى مساحة الذاكرة). وعكسها هو بنية الوصول إلى الذاكرة غير الموحدة (NUMA). على سبيل المثال، كل معالج لديه ذاكرته الخاصة ويصل إلى الذاكرة المشتركة بزمن وصول مختلف.

معالجة متعددة مقترنة بشكل فضفاض

كانت أنظمة Linux SMP المبكرة عبارة عن أنظمة متعددة المعالجات مقترنة بشكل غير محكم، أي أنها مبنية من عدة أنظمة منفصلة متصلة بواسطة اتصال عالي السرعة (مثل 10G Ethernet أو Fibre Channel أو Infiniband). اسم آخر لهذا النوع من الهندسة المعمارية هو الكتلة (انظر الشكل 3)، والتي يظل مشروع Linux Beowulf حلاً شائعًا لها. يمكن إنشاء مجموعات Linux Beowulf من أجهزة متاحة بسهولة واتصال شبكة مشترك مثل Ethernet.

الشكل 3. بنية المعالجات المتعددة المقترنة بشكل فضفاض

من السهل إنشاء أنظمة ذات بنية متعددة المعالجات مقترنة بشكل غير محكم (بفضل مشاريع مثل Beowulf)، ولكن لها حدودها. قد يتطلب إنشاء شبكة كبيرة متعددة المعالجات قدرًا كبيرًا من الطاقة والمساحة. العائق الأكثر خطورة هو مادة قناة الاتصال. حتى مع وجود شبكة عالية السرعة مثل 10G Ethernet، هناك حد لقابلية التوسع للنظام.

معالجة متعددة مقترنة بإحكام

تشير المعالجة المتعددة المقترنة بإحكام إلى المعالجة المتعددة على مستوى الشريحة (CMP). تخيل بنية مترابطة بشكل غير محكم تم تقليصها حتى الموت. هذه هي فكرة المعالجة المتعددة المقترنة بإحكام (وتسمى أيضًا الحوسبة متعددة النواة). في دائرة متكاملة واحدة، تشكل القوالب المتعددة والذاكرة المشتركة والتوصيل البيني نواة متكاملة جيدًا للمعالجة المتعددة (انظر الشكل 4).

الشكل 4. بنية المعالجة المتعددة المقترنة بإحكام

في CMP، يتم توصيل العديد من وحدات المعالجة المركزية بواسطة ناقل مشترك مع ذاكرة مشتركة (ذاكرة تخزين مؤقت من المستوى الثاني). يحتوي كل معالج أيضًا على ذاكرة عالية السرعة خاصة به (ذاكرة التخزين المؤقت L1). تسمح طبيعة CMP المقترنة بإحكام بمسافات مادية قصيرة جدًا بين المعالجات والذاكرة، ونتيجة لذلك، الحد الأدنى من زمن الوصول إلى الذاكرة والأداء الأعلى. يعمل هذا النوع من البنية بشكل جيد في التطبيقات متعددة الخيوط، حيث يمكن توزيع الخيوط عبر المعالجات وتنفيذها بالتوازي. وهذا ما يسمى التوازي على مستوى الخيط (TPL).

نظرًا لشعبية هذه البنية متعددة المعالجات، يقوم العديد من الشركات المصنعة بإصدار أجهزة CMP. يسرد الجدول 1 بعض الخيارات الشائعة التي تدعم Linux.

الجدول 1. أجهزة CMP المحددة
الصانعجهازوصف
آي بي إمالطاقة4SMP، واثنين من وحدات المعالجة المركزية
آي بي إمالطاقة5SMP، وحدتي معالجة مركزية، وأربعة خيوط متوازية
أيه إم ديايه ام دي اكس 2SMP، واثنين من وحدات المعالجة المركزية
إنتل®زيونSMP، اثنان أو أربعة وحدات المعالجة المركزية
شركة انتلكور 2 ديوSMP، واثنين من وحدات المعالجة المركزية
ذراعMPCoreSMP، ما يصل إلى أربع وحدات المعالجة المركزية
آي بي إمزينونSMP، ثلاث وحدات معالجة مركزية قوية للكمبيوتر الشخصي
آي بي إممعالج الخليةالمعالجة المتعددة غير المتماثلة (ASMP - المعالجة المتعددة غير المتماثلة)، تسع وحدات المعالجة المركزية (CPU).

تكوين النواة

من أجل استخدام SMP مع Linux على الأجهزة المتوافقة مع SMP، يجب تكوين النواة بشكل صحيح. يجب تمكين خيار CONFIG_SMP أثناء تكوين kernel حتى تكون kernel على علم بـ SMP. إذا كانت هذه النواة تعمل على مضيف متعدد المعالجات، فيمكنك تحديد عدد المعالجات ونوعها باستخدام نظام الملفات proc.

أولاً تحصل على عدد المعالجات من ملف cpuinfo في /proc باستخدام grep . كما ترون في القائمة 1، يمكنك استخدام خيار --count (-c) على الأسطر التي تبدأ بالمعالج. يتم أيضًا عرض محتويات ملف cpuinfo. كمثال، نأخذ اللوحة الأم Xeon على شريحتين.

القائمة 1. استخدام نظام الملفات proc للحصول على معلومات وحدة المعالجة المركزية
mtj@camus:~$ grep -c ^processor /proc/cpuinfo 8 mtj@camus:~$ cat /proc/cpuinfo المعالج: 0 معرف_المورد: عائلة وحدة المعالجة المركزية الأصلية من Intel: 15 الطراز: 6 اسم الطراز: Intel(R) Xeon(TM) ) وحدة المعالجة المركزية بسرعة 3.73 جيجا هرتز: 4 وحدة المعالجة المركزية ميجا هرتز: 3724.219 حجم ذاكرة التخزين المؤقت: 2048 كيلو بايت المعرف الفعلي: 0 أشقاء: 4 معرف أساسي: 0 نواة وحدة المعالجة المركزية: 2 fdiv_bug: لا hlt_bug: لا f00f_bug: لا coma_bug: لا fpu: نعم fpu_exception: نعم cpuid المستوى: 6 wp: نعم الأعلام: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx lm pni مراقب ds_cpl est cid xtpr bogomips: 7389.18 ... المعالج: 7 معرف_المورد: عائلة وحدة المعالجة المركزية Intel الأصلية: 15 الطراز: 6 اسم الطراز: وحدة المعالجة المركزية Intel(R) Xeon(TM) بسرعة 3.73 جيجا هرتز: 4 وحدة المعالجة المركزية ميجا هرتز: 3724.219 حجم ذاكرة التخزين المؤقت: 2048 كيلو بايت المعرف الفعلي: 1 أشقاء: 4 معرف أساسي: 3 نوى وحدة المعالجة المركزية: 2 fdiv_bug: لا hlt_bug: لا f00f_bug: لا coma_bug: لا fpu: نعم fpu_exception: نعم مستوى cpuid: 6 wp: نعم الأعلام: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts Acpi mmx fxsr sse sse2 ss ht tm pbe nx lm pni مراقب ds_cpl est cid xtpr bogomips: 7438.33 mtj@camus:~$

SMP ونواة لينكس

عندما ظهر Linux 2.0 لأول مرة، كان دعم SMP يتكون من نظام قفل أساسي يتحكم في الوصول إلى النظام. في وقت لاحق كان هناك تقدم طفيف في دعم SMP، ولكن لم تظهر القوة الكاملة لـ SMP إلا بعد نواة 2.6.

قدم Kernel 2.6 برنامج جدولة 0(1) جديد يتضمن دعمًا أفضل لأنظمة SMP. كان المفتاح هو القدرة على موازنة الحمل عبر جميع وحدات المعالجة المركزية المتاحة، وتجنب تبديل العملية بين المعالجات قدر الإمكان لتحقيق استخدام أكثر كفاءة لذاكرة التخزين المؤقت. فيما يتعلق بأداء ذاكرة التخزين المؤقت، تذكر من الشكل 4 أنه عندما تتفاعل مهمة مع وحدة معالجة مركزية واحدة، فإن نقلها إلى وحدة أخرى يتطلب مشاركة ذاكرة التخزين المؤقت. يؤدي هذا إلى زيادة زمن الوصول إلى ذاكرة المهمة أثناء وجود بياناتها في ذاكرة التخزين المؤقت لوحدة المعالجة المركزية الجديدة.

يقوم النواة 2.6 بتخزين زوج قائمة انتظار التشغيل لكل معالج (قائمة انتظار التشغيل منتهية الصلاحية والنشطة). تدعم كل قائمة تشغيل 140 أولوية، منها 100 تُستخدم للمهام في الوقت الفعلي والـ 40 المتبقية لمهام المستخدم. يتم منح المهام أجزاء من الوقت للتشغيل، وعندما تستنفد وقتها، يتم نقلها من قائمة الانتظار النشطة إلى القائمة منتهية الصلاحية. وهذا يضمن الوصول المتساوي إلى وحدة المعالجة المركزية لجميع المهام (حظر وحدات المعالجة المركزية الفردية فقط).

من خلال قائمة انتظار المهام على كل وحدة معالجة مركزية، يمكن موازنة العمل، مما يوفر حملاً مرجحًا لجميع وحدات المعالجة المركزية في النظام. كل 200 مللي ثانية، يقوم المجدول بإجراء موازنة التحميل لإعادة توزيع المهام والحفاظ على التوازن عبر مجمع المعالج. يمكنك العثور على مزيد من المعلومات حول برنامج جدولة Linux 2.6 في القسم.

سلاسل مساحة المستخدم: البناء على قوة SMP

لقد تم إنجاز الكثير من العمل في نواة Linux لتطوير SMP، لكن نظام التشغيل نفسه ليس كافيًا. تذكر أن قوة SMP تكمن في TLP. لا يمكن للبرامج الفردية المتجانسة (ذات الترابط الواحد) استخدام SMP، ولكن يمكن استخدام SMP في البرامج التي تتكون من العديد من الخيوط التي يمكن توزيعها بين النوى. بينما ينتظر أحد الخيوط اكتمال عملية الإدخال/الإخراج، يمكن لخيط آخر القيام بعمل مفيد. وبالتالي، تعمل الخيوط من خلال تداخل وقت انتظار بعضها البعض.

تعد سلاسل واجهة نظام التشغيل المحمولة (POSIX) طريقة ممتازة لإنشاء تطبيقات مترابطة يمكنها استخدام SMP. توفر سلاسل POSIX آلية الترابط بالإضافة إلى الذاكرة المشتركة. عندما يتم استدعاء برنامج ما، يتم إنشاء عدد من سلاسل العمليات، كل منها يحتفظ بمكدسه الخاص (المتغيرات المحلية والحالة) ولكنه يتشارك في مساحة بيانات الأصل. تشترك جميع سلاسل الرسائل التي تم إنشاؤها في نفس مساحة البيانات، ولكن هنا تكمن المشكلة.

لدعم الوصول متعدد الخيوط إلى الذاكرة المشتركة، هناك حاجة إلى آليات التنسيق. يوفر POSIX وظيفة الاستبعاد المتبادل للإنشاء الأقسام الحرجة، والتي تنشئ وصولاً حصريًا إلى كائن (منطقة الذاكرة) لمؤشر ترابط واحد فقط. إذا لم يتم ذلك، فقد تتلف الذاكرة بسبب عمليات المعالجة غير المتزامنة التي تقوم بها عدة سلاسل عمليات. توضح القائمة 2 إنشاء قسم مهم باستخدام الاستبعاد المتبادل POSIX.

القائمة 2. استخدام pthread_mutex_lock وفتح لإنشاء أقسام مهمة
pthread_mutex_t Crit_section_mutex = PTHREAD_MUTEX_INITIALIZER; ... pthread_mutex_lock(&crit_section_mutex); /* داخل القسم الحرج. الوصول إلى الذاكرة هنا آمن * للذاكرة المحمية بواسطة Crit_section_mutex. */ pthread_mutex_unlock(&crit_section_mutex);

إذا حاولت عدة سلاسل رسائل قفل الإشارة بعد الاستدعاء الأولي في الأعلى، فسيتم حظرها ويتم وضع طلباتها في قائمة الانتظار حتى يتم إجراء استدعاء pthread_mutex_unlock.

حماية متغيرة لـ Kernel لـ SMP

عندما تعمل عدة مراكز في المعالج بالتوازي مع نواة نظام التشغيل، فمن المستحسن تجنب مشاركة البيانات الخاصة بنواة المعالج. لهذا السبب، قدمت النواة 2.6 مفهوم المتغيرات لكل مركز المرتبطة بوحدات المعالجة المركزية الفردية. يتيح لك هذا الإعلان عن المتغيرات الخاصة بوحدة المعالجة المركزية (CPU) والتي يتم استخدامها بشكل متكرر بواسطة وحدة المعالجة المركزية (CPU) المحددة هذه، مما يقلل من متطلبات القفل ويحسن التنفيذ.

يتم تعريف متغيرات kernel الفردية باستخدام الماكرو DEFINE_PER_CPU، الذي تقوم بتمرير نوع واسم المتغير إليه. نظرًا لأن الماكرو يأتي كقيمة l، فهذا هو المكان الذي يمكنك تهيئته فيه. يحدد المثال التالي (من /arch/i386/kernel/smpboot.c) متغيرًا يمثل الحالة لكل وحدة معالجة مركزية في النظام.

/* حالة كل وحدة معالجة مركزية. */ DEFINE_PER_CPU(int, cpu_state) = ( 0 );

يقوم الماكرو بإنشاء صفيف من المتغيرات، واحد لكل مثيل وحدة المعالجة المركزية (CPU). للحصول على متغير لوحدة المعالجة المركزية الفردية، استخدم الماكرو per_cpu مع الدالة smp_processor_id، التي تقوم بإرجاع المعرف الحالي لوحدة المعالجة المركزية التي يعمل عليها البرنامج حاليًا.

per_cpu(cpu_state, smp_processor_id()) = CPU_ONLINE;

توفر النواة وظائف أخرى لحظر كل وحدة معالجة مركزية وتخصيص المتغيرات ديناميكيًا. يمكن العثور على هذه الوظائف في ./include/linux/percpu.h.

خاتمة

عندما يصل تردد المعالج إلى الحد الأقصى، فمن الشائع ببساطة إضافة المزيد من المعالجات لزيادة الأداء. في السابق، كان هذا يعني إضافة المزيد من المعالجات إلى اللوحة الأم أو تجميع عدة أجهزة كمبيوتر مستقلة معًا. اليوم، توفر المعالجة المتعددة على مستوى الشريحة المزيد من المعالجات على شريحة واحدة، مما يوفر أداءً أكبر من خلال تقليل زمن وصول الذاكرة.

ستجد أنظمة SMP ليس فقط على الخوادم، ولكن أيضًا على أجهزة الكمبيوتر المكتبية، خاصة مع إدخال المحاكاة الافتراضية. مثل العديد من التقنيات المتقدمة، يوفر Linux الدعم لـ SMP. تقوم النواة بدورها في تحسين الحمل على وحدات المعالجة المركزية (CPUs) المتاحة (من سلاسل العمليات إلى أنظمة التشغيل الافتراضية). كل ما تبقى هو التأكد من إمكانية ربط التطبيق بشكل كافٍ للاستفادة من قوة SMP.

15/02/1995 ف. بياتنوك

بنية المعالج الفردي بنية المعالج الفردي المعدلة بنية SMP بنية جهاز التوجيه SMP المقترحة من قبل Wellfleet نظرة عامة على بنية Wellfleet تفاصيل معالجة الحزم ملخص الأدب لقد تطورت أجهزة التوجيه باستخدام ثلاث بنيات مختلفة: معالج واحد، ومعالج فردي معدل، ومعالج متعدد متماثل. تم تصميم الثلاثة جميعًا لدعم التطبيقات بالغة الأهمية.

استخدمت أجهزة التوجيه في تطويرها ثلاث بنيات مختلفة: معالج أحادي، ومعالج أحادي معدل، ومعالج متعدد متماثل. تم تصميم الثلاثة جميعًا لدعم التطبيقات بالغة الأهمية. ومع ذلك، فإن المتطلبات الرئيسية لهذه المتطلبات، وهي الأداء العالي والقابل للتطوير، بالإضافة إلى مستوى عالٍ من التوفر، بما في ذلك التسامح الكامل مع الأخطاء واستعادة المكونات غير العاملة ("الاستعداد السريع")، لا يمكن تلبيتها بنفس القدر . تتناول المقالة مزايا البنية المتماثلة متعددة المعالجات.

بنية المعالج الواحد

تستخدم بنية المعالج الفردي العديد من وحدات واجهة الشبكة - وهذا يسمح بمرونة إضافية في تكوين العقد. ترتبط وحدات واجهة الشبكة بمعالج مركزي واحد عبر ناقل نظام مشترك. يعتني هذا المعالج الفردي بجميع مهام المعالجة. وهذه المهام، نظرًا للمستوى الحالي لتطور شبكات الشركات، معقدة ومتنوعة: تصفية الحزم وإعادة توجيهها، والتعديل الضروري لرؤوس الحزم، وتحديث جداول التوجيه وعناوين الشبكة، وتفسير حزم التحكم في الخدمة، والاستجابة لطلبات SNMP، وإنشاء حزم التحكم ، وتوفير خدمات محددة أخرى مثل الانتحال، أي تعيين مرشحات خاصة لتحقيق خصائص أمنية محسنة وأداء الشبكة.

هذا الحل المعماري التقليدي هو الأسهل في التنفيذ. ومع ذلك، ليس من الصعب تصور القيود التي سيخضع لها أداء وتوافر مثل هذا النظام.

في الواقع، يجب معالجة جميع الحزم من جميع واجهات الشبكة بواسطة معالج مركزي واحد. ومع إضافة واجهات شبكة إضافية، يتدهور الأداء بشكل ملحوظ. بالإضافة إلى ذلك، يجب أن تنتقل كل حزمة عبر الناقل مرتين - من وحدة "المصدر" إلى المعالج، ثم من المعالج إلى وحدة "المستقبل". تقوم الحزمة بهذه الرحلة حتى لو كانت موجهة لنفس واجهة الشبكة التي جاءت منها. ويؤدي هذا أيضًا إلى انخفاض كبير في الأداء مع زيادة عدد وحدات واجهة الشبكة. وبالتالي، هناك عنق الزجاجة الكلاسيكي.

الموثوقية منخفضة أيضًا. إذا فشل المعالج المركزي، فسيتم تعطيل وظيفة جهاز التوجيه ككل. بالإضافة إلى ذلك، بالنسبة لمثل هذه البنية، من المستحيل تنفيذ "الاسترداد السريع" من احتياطي عناصر النظام التالفة.

تستخدم التطبيقات الحديثة لبنية جهاز التوجيه هذه عادةً معالج RISC قويًا إلى حد ما وناقل أمامي عالي السرعة للتغلب على قيود الأداء. هذه محاولة قوية بحتة لحل المشكلة - زيادة الإنتاجية مقابل استثمار أولي كبير. ومع ذلك، فإن مثل هذه التطبيقات لا توفر قياسًا للأداء، ويتم تحديد مستوى موثوقيتها مسبقًا من خلال موثوقية المعالج.

تعديل بنية المعالج الواحد

من أجل التغلب على بعض أوجه القصور المذكورة أعلاه في بنية المعالج الأحادي، تم اختراع تعديله. يتم الحفاظ على البنية الأساسية: يتم توصيل وحدات الواجهة بمعالج واحد عبر ناقل نظام مشترك. ومع ذلك، تشتمل كل وحدة من وحدات واجهة الشبكة على معالج طرفي خاص من أجل تخفيف المعالج المركزي جزئيًا على الأقل.

المعالجات الطرفية هي، كقاعدة عامة، معالجات دقيقة ذات شريحة بت أو معالجات دقيقة عالمية تقوم بتصفية وتوجيه الحزم الموجهة إلى واجهة الشبكة الخاصة بنفس الوحدة التي دخلت منها جهاز التوجيه. (لسوء الحظ، لا يمكن للعديد من التطبيقات المتوفرة حاليًا تحقيق ذلك إلا لأنواع معينة من الحزم، مثل إطارات Ethernet، ولكن ليس IEEE 802.3.

لا يزال المعالج المركزي مسؤولاً عن تلك المهام التي لا يمكن تفويضها إلى المعالج الطرفي (بما في ذلك التوجيه بين الوحدات والعمليات على مستوى النظام والإدارة والتنظيم). ولذلك، فإن تحسين الأداء الذي تم تحقيقه بهذه الطريقة محدود للغاية (لكي نكون منصفين، في بعض الحالات، مع تصميم مناسب للشبكة، يمكن تحقيق نتائج جيدة). وفي الوقت نفسه، على الرغم من الانخفاض الطفيف في عدد الحزم المنقولة عبر ناقل النظام، إلا أنه لا يزال يمثل عنق الزجاجة للغاية.

لا يؤدي تضمين المعالجات الطرفية في البنية إلى تحسين توفر جهاز التوجيه ككل.

بنية SMP

لا تحتوي البنية المتماثلة متعددة المعالجات على عيوب متأصلة في البنى المذكورة أعلاه. في هذه الحالة، يتم توزيع قوة الحوسبة بالكامل بين جميع وحدات واجهة الشبكة.

تحتوي كل وحدة واجهة شبكة على وحدة معالج مخصصة خاصة بها، والتي تؤدي جميع المهام المتعلقة بالتوجيه. في هذه الحالة، يتم نسخ كافة جداول التوجيه والمعلومات الضرورية الأخرى، بالإضافة إلى البرنامج الذي ينفذ البروتوكولات (أي نسخها) إلى كل وحدة معالج. عندما تتلقى وحدة المعالج معلومات التوجيه، فإنها تقوم بتحديث الجدول الخاص بها ثم تنشر التحديثات إلى كافة وحدات المعالج الأخرى.

توفر هذه البنية، بالطبع، قابلية التوسع الخطية تقريبًا (إذا أهملنا تكاليف النسخ المتماثل وعرض النطاق الترددي لقناة الاتصال بين الوحدات). وهذا بدوره يعني احتمال توسيع الشبكة بشكل كبير دون انخفاض ملحوظ في الأداء. إذا لزم الأمر، تحتاج فقط إلى إضافة وحدة إضافية لواجهة الشبكة - لأنه ببساطة لا يوجد معالج مركزي في هذه البنية.

تتم معالجة كافة الحزم بواسطة المعالجات المحلية. يتم إرسال الحزم الخارجية (أي المخصصة للوحدات النمطية الأخرى) عبر قناة الاتصال بين المعالجات مرة واحدة فقط. وهذا يؤدي إلى انخفاض كبير في حركة المرور داخل جهاز التوجيه.

من حيث التوفر، لن يفشل النظام في حالة فشل وحدة معالج واحدة. سيؤثر هذا الفشل فقط على قطاعات الشبكة المتصلة بوحدة المعالج التالفة. بالإضافة إلى ذلك، يمكن استبدال الوحدة التالفة بوحدة عاملة دون إيقاف تشغيل جهاز التوجيه ودون أي تأثير على جميع الوحدات الأخرى.

يتم التعرف على مزايا بنية SMP من قبل الشركات المصنعة لأجهزة الكمبيوتر. وقد ظهرت العديد من المنصات المماثلة على مدى السنوات القليلة الماضية، ولم يعرقل انتشارها سوى عدد محدود من أنظمة التشغيل القياسية القادرة على تحقيق فوائد الأجهزة بشكل كامل. تستخدم الشركات المصنعة الأخرى، بما في ذلك الشركات المصنعة لأجهزة الشبكة النشطة، أيضًا بنية SMP عند إنشاء أجهزة حوسبة متخصصة.

في الجزء المتبقي من هذا القسم، سنلقي نظرة فاحصة على التفاصيل الفنية لبنية جهاز التوجيه SMP الخاص بـ Wellfleet.

بنية جهاز التوجيه SMP المقترحة من قبل Wellfleet

من المؤكد أن شركة Wellfleet، إحدى الشركات الرائدة في تصنيع أجهزة التوجيه والجسور، لم تدخر أي نفقات في تقييم واختبار بنيات أجهزة التوجيه المختلفة التي تدعم بروتوكولات WAN وLAN المختلفة عبر وسائط فعلية مختلفة، وهي مصممة لظروف حركة المرور المختلفة. تمت صياغة نتائج هذه الدراسات في شكل قائمة من المتطلبات التي تم أخذها في الاعتبار عند تصميم أجهزة التوجيه المخصصة لبناء بيئات شبكات المؤسسات للتطبيقات شديدة الأهمية. دعونا نقدم بعضًا من هذه المتطلبات - تلك التي، في رأينا، تبرر استخدام بنية متعددة المعالجات.

1. إن الحاجة إلى أداء قابل للتطوير ومستوى عالٍ من التوفر ومرونة التكوين تملي استخدام بنية SMP.

2. لا يمكن تلبية مستوى متطلبات طاقة الحوسبة للتوجيه متعدد البروتوكولات (خاصة عند استخدام بروتوكولات التوجيه الحديثة مثل TCP/IP OSPF) إلا من خلال معالجات دقيقة حديثة وقوية 32 بت. ومع ذلك، نظرًا لأن التوجيه يتضمن خدمة أعداد كبيرة من الطلبات المماثلة بالتوازي، فإنه يتطلب التبديل السريع بين العمليات المختلفة، الأمر الذي يتطلب زمن انتقال منخفض بشكل استثنائي لتبديل السياق، بالإضافة إلى ذاكرة تخزين مؤقت مدمجة.

3. لتخزين برامج دعم البروتوكول والتحكم، وجداول التوجيه والعناوين، والمعلومات الإحصائية وغيرها، يلزم وجود سعة ذاكرة كبيرة بما فيه الكفاية.

4. لضمان الحد الأقصى لسرعات النقل بين الشبكات ووحدات معالجة جهاز التوجيه، يلزم وجود وحدات تحكم في واجهة الشبكة عالية السرعة ووحدات تحكم في الاتصالات بين المعالجات مع إمكانات الوصول المباشر للذاكرة (DMA) المدمجة.

5. يتطلب تقليل زمن الوصول قنوات وعناوين بيانات 32 بت ذات نطاق ترددي عالٍ لجميع الموارد.

6. تتضمن متطلبات التوفر طاقة الحوسبة الموزعة، وأنظمة الطاقة الفرعية الزائدة عن الحاجة، وكميزة إضافية ولكنها مهمة جدًا، قنوات الاتصال الزائدة عن الحاجة بين المعالجات.

7. إن الحاجة إلى تغطية نطاق واسع من بيئات الشبكات - بدءًا من عقدة بعيدة واحدة أو شبكة مجموعة عمل إلى شبكة أساسية عالية الأداء ومتاحة للغاية - تتطلب استخدام بنية متعددة المعالجات قابلة للتطوير.

نظرة عامة على الهندسة المعمارية

يوضح الشكل 2 رسمًا تخطيطيًا للبنية المتماثلة متعددة المعالجات المستخدمة في جميع أجهزة توجيه Wellfleet المعيارية. هناك ثلاثة عناصر معمارية رئيسية: وحدات الاتصال، ووحدات المعالج، والاتصالات بين العمليات.

توفر وحدات الاتصال واجهات الشبكة المادية التي تسمح بالاتصال بالشبكات المحلية والواسعة من أي نوع تقريبًا. ترتبط كل وحدة اتصال مباشرة بوحدة المعالج المخصصة لها عبر واجهة الارتباط الذكي (ILI). يتم إرسال الحزم التي تتلقاها وحدة الاتصال إلى وحدة المعالج المتصلة بها من خلال اتصالها المباشر. يحدد المعالج واجهة الشبكة التي سيتم توجيه هذه الحزم إليها ويقوم إما بإعادة توجيهها إلى واجهة شبكة أخرى لنفس وحدة الاتصال، أو عبر اتصال بين المعالجات عالي السرعة، إلى وحدة معالج أخرى، والتي ستقوم بإعادة توجيه الحزمة إلى وحدة الاتصال المتصلة .

دعونا نتناول المزيد من التفاصيل حول هيكل كل مكون.

تتضمن وحدة المعالج ما يلي:

وحدة المعالجة المركزية الفعلية؛

الذاكرة المحلية، التي تخزن البروتوكولات وجداول التوجيه وجداول العناوين والمعلومات الأخرى التي تستخدمها وحدة المعالجة المركزية محليًا؛

الذاكرة العالمية، التي تلعب دور المخزن المؤقت لحزم البيانات "العبور" القادمة من وحدة الاتصال إلى وحدة المعالج المرفقة بها أو من وحدات المعالج الأخرى (وتسمى عمومية لأنها مرئية ويمكن الوصول إليها من قبل جميع وحدات المعالج)؛

معالج OMA، الذي يوفر القدرة على الوصول مباشرة إلى الذاكرة عند نقل الحزم بين مخازن الذاكرة العالمية الموجودة في وحدات المعالج المختلفة؛

واجهة الاتصال التي توفر الاتصال بوحدة الاتصال المقابلة؛

قنوات بيانات داخلية بعرض 32 بت تربط جميع الموارد المذكورة أعلاه ومصممة لتوفير أعلى إنتاجية ممكنة وأقل زمن وصول؛ يتم توفير قنوات متعددة، مما يسمح لأجهزة حوسبة متعددة (مثل وحدة المعالجة المركزية ومعالج DMA) بتنفيذ العمليات في وقت واحد وضمان عدم وجود اختناقات تؤدي إلى إبطاء إعادة توجيه الحزم ومعالجتها.

تستخدم نماذج أجهزة توجيه Wellfleet المختلفة وحدات معالج ACE (محرك الاتصالات المتقدمة) المستندة إلى معالجات Motorola 68020 أو 68030، أو وحدات محرك التوجيه السريع (FRE) المستندة إلى MC68040.

تتضمن وحدة الاتصال ما يلي:

الموصلات التي توفر واجهة مع شبكات معينة (على سبيل المثال، المتزامنة، وEthernet، وToken Ring FDDI)؛

وحدات تحكم الاتصالات التي تنقل الحزم بين واجهة الشبكة الفعلية والذاكرة العامة باستخدام قناة DMA؛ تم تصميم وحدات التحكم في الاتصالات أيضًا لنوع معين من واجهة الشبكة وتكون قادرة على إرسال الحزم بسرعة تطابق سرعة السلك؛

عوامل التصفية (اختيارية لوحدات اتصالات FDDI وEthernet) التي تقوم بتصفية الحزم الواردة مسبقًا، مما يوفر الموارد الحسابية لمعالجة الملفات بشكل مفيد.

غالبًا ما يُستخدم ناقل VMEbus القياسي كقناة اتصال بين المعالجات، مما يوفر إنتاجية إجمالية تبلغ 320 ميجابت/ثانية.

تستخدم النماذج الأقدم واجهة Parallel Packet Express (PPX) التي طورتها شركة Wellfleet نفسها بنطاق ترددي يبلغ 1 جيجابت/ثانية، باستخدام أربع قنوات بيانات مستقلة ومتكررة بسرعة 256 ميجابت/ثانية مع توزيع حمل ديناميكي. وهذا يضمن الأداء العام العالي ويضمن عدم وجود نقطة فشل واحدة في البنية. ترتبط كل وحدة معالج بجميع القنوات الأربع ولديها القدرة على اختيار أي منها. يتم اختيار قناة معينة بشكل عشوائي لكل حزمة، مما يضمن التوزيع المتساوي لحركة المرور بين جميع القنوات المتاحة. إذا أصبحت إحدى قنوات بيانات PPX غير متاحة، فسيتم توزيع التنزيل تلقائيًا على القنوات المتبقية.

تفاصيل معالجة الحزمة

اعتمادًا على الشبكة، يتم استلام الحزم الواردة بواسطة وحدة تحكم اتصال أو أخرى. إذا تم تضمين عامل تصفية إضافي في تكوين وحدة الاتصال، فسيتم تجاهل بعض الحزم ويتم قبول البعض الآخر. يتم وضع الحزم المستلمة بواسطة وحدة تحكم الاتصال في المخزن المؤقت للذاكرة العامة لوحدة المعالج المرتبطة بها مباشرة. من أجل النقل السريع للحزم، تشتمل كل وحدة تحكم في الاتصالات على قناة وصول مباشرة إلى الذاكرة.

بمجرد وصولها إلى الذاكرة العامة، يتم استرداد الحزم بواسطة وحدة المعالجة المركزية لتوجيهها. تكتشف وحدة المعالجة المركزية واجهة شبكة الإخراج، وتقوم بتعديل الحزمة بشكل مناسب، وإعادتها إلى الذاكرة العامة. ومن ثم يتم تنفيذ أحد الإجراءين:

1. تتم إعادة توجيه الحزمة إلى واجهة الشبكة الخاصة بالوحدة المرفقة بها مباشرة. تتلقى وحدة التحكم في الاتصال الخاصة بواجهة شبكة الخروج تعليمات من وحدة المعالجة المركزية لتحديد الحزم من الذاكرة العامة وإرسالها إلى الشبكة.

2. يتم إعادة توجيه الحزمة إلى واجهة الشبكة الخاصة بوحدة اتصال أخرى. يتلقى معالج DMA تعليمات من وحدة المعالجة المركزية لإرسال حزم إلى وحدة معالج أخرى ويقوم بتحميلها عبر اتصال المعالجات البينية في الذاكرة العامة لوحدة المعالج المتصلة بواجهة شبكة الإخراج. تقوم وحدة التحكم في الاتصال الخاصة بواجهة شبكة الخروج بتحديد الحزم من الذاكرة العالمية وإرسالها إلى الشبكة.

يتم اتخاذ قرارات التوجيه بواسطة وحدة المعالجة المركزية بشكل مستقل عن وحدات المعالج الأخرى. تحتفظ كل وحدة معالج بقاعدة بيانات توجيه وعناوين مستقلة في ذاكرتها المحلية، والتي يتم تحديثها عندما تتلقى الوحدة معلومات حول التغييرات في جداول التوجيه أو العناوين (في هذه الحالة، يتم إرسال التغييرات إلى جميع وحدات المعالج الأخرى).

يتيح التشغيل المتزامن لوحدة التحكم في الاتصالات ووحدة المعالجة المركزية (CPU) ومعالج DMA أداءً عاليًا بشكل عام. (نؤكد أن كل هذا يحدث في جهاز تتم فيه المعالجة بالتوازي عبر عدة وحدات متعددة المعالجات). على سبيل المثال، يمكنك تخيل موقف تقوم فيه وحدة التحكم في الاتصال بوضع الحزم في الذاكرة العامة، بينما تقوم وحدة المعالجة المركزية بتحديث جدول التوجيه في الذاكرة المحلية، ويقوم معالج DMA بوضع الحزمة في اتصال المعالجات البينية.

ملخص

إن مجرد حقيقة اختراق تقنيات الكمبيوتر التي تم تطويرها لمجال تطبيقي واحد إلى مجالات أخرى ذات صلة ليست جديدة. ومع ذلك، فإن كل مثال محدد يجذب انتباه المتخصصين. في بنية جهاز التوجيه التي تمت مناقشتها في هذه المقالة، بالإضافة إلى فكرة المعالجة المتعددة المتماثلة، المصممة لتوفير أداء قابل للتطوير ومستوى عالٍ من التوفر، يتم أيضًا استخدام آلية قنوات البيانات المكررة بين المعالجات (لنفس الأغراض)، بالإضافة إلى فكرة تكرار البيانات (أو النسخ المتماثل)، والتي يعد استخدامها أكثر شيوعًا في صناعة نظم إدارة قواعد البيانات الموزعة.

الأدب

بنية متعددة المعالجات متناظرة. اتصالات ويلفليت، 10/1993.

جي جي. بارون، ج.م. ليديجينسكي. "تقنية نسخ البيانات في الأنظمة الموزعة"، "الأنظمة المفتوحة"، ربيع 1994.

*) اندمجت شركة Wellfleet في الخريف الماضي مع شركة أخرى رائدة في مجال تكنولوجيا الشبكات، وهي شركة SunOptics Communications. أدى الاندماج إلى إنشاء عملاق شبكات جديد - Bay Networks (ملاحظة المحرر)




أرز. 3.1.

تعمل الذاكرة بشكل خاص على نقل الرسائل بين المعالجات، في حين أن جميع أجهزة الحوسبة عند الوصول إليها لها حقوق متساوية ونفس العنونة لجميع خلايا الذاكرة. لهذا السبب تسمى بنية SMP متماثلة. يتيح لك الظرف الأخير تبادل البيانات بكفاءة عالية مع أجهزة الكمبيوتر الأخرى. تم بناء نظام SMP على أساس ناقل نظام عالي السرعة (SGI PowerPath، Sun Gigaplane، DEC TurboLaser)، يتم توصيل الكتل الوظيفية من الأنواع التالية بالفتحات: المعالجات (CPU)، النظام الفرعي للإدخال / الإخراج ( I/O)، وما إلى ذلك. للاتصال بوحدات الإدخال/الإخراج، استخدم الناقلات الأبطأ (PCI، VME64). أنظمة SMP الأكثر شهرة هي خوادم ومحطات عمل SMP المعتمدة على معالجات Intel (IBM، HP، Compaq، Dell، ALR، Unisys، DG، Fujitsu، إلخ.) يعمل النظام بأكمله تحت نظام تشغيل واحد (عادةً ما يشبه UNIX). ، ولكن نظام التشغيل Windows NT مدعوم لأنظمة Intel الأساسية). يقوم نظام التشغيل تلقائيًا (أثناء التشغيل) بتوزيع العمليات عبر المعالجات، ولكن في بعض الأحيان يكون الربط الصريح ممكنًا أيضًا.

المزايا الرئيسية لأنظمة SMP:

  • البساطة والتنوع في البرمجة. لا تفرض بنية SMP قيودًا على نموذج البرمجة المستخدم لإنشاء التطبيق: عادةً ما يتم استخدام نموذج فرع متوازي، حيث تعمل جميع المعالجات بشكل مستقل عن بعضها البعض. ومع ذلك، من الممكن أيضًا تنفيذ النماذج التي تستخدم الاتصال بين المعالجات. يؤدي استخدام الذاكرة المشتركة إلى زيادة سرعة هذا التبادل؛ كما يتمتع المستخدم بإمكانية الوصول إلى كامل مساحة الذاكرة في وقت واحد. بالنسبة لأنظمة SMP، هناك وسائل فعالة جدًا للموازاة التلقائية؛
  • سهولة التشغيل. عادة، تستخدم أنظمة SMP نظام تكييف الهواء المبرد بالهواء، مما يجعلها أسهل في الصيانة؛
  • سعر منخفض نسبيا.

عيوب:

  • أنظمة الذاكرة المشتركة لا تتوسع بشكل جيد.

هذا العيب الكبير في أنظمة SMP لا يسمح لنا باعتبارها واعدة حقًا. سبب سيء قابلية التوسعهو أنه في الوقت الحالي يكون الناقل قادرًا على معالجة معاملة واحدة فقط، ونتيجة لذلك تنشأ مشاكل في حل النزاعات عندما يصل العديد من المعالجات في نفس الوقت إلى نفس المناطق الذاكرة الجسدية المشتركة. تبدأ العناصر الحسابية بالتداخل مع بعضها البعض. يعتمد حدوث مثل هذا التعارض على سرعة الاتصال وعدد عناصر الحوسبة. حاليًا، يمكن أن تحدث تعارضات مع 8-24 معالجًا. بالإضافة إلى ذلك، يحتوي ناقل النظام على نطاق ترددي محدود (وإن كان مرتفعًا) وعدد محدود من الفتحات. من الواضح أن كل هذا يمنع زيادة الأداء مع زيادة عدد المعالجات وعدد المستخدمين المتصلين. في الأنظمة الحقيقية، لا يمكن استخدام أكثر من 32 معالجًا. لبناء أنظمة قابلة للتطوير تعتمد على SMP، يتم استخدام بنيات الكتلة أو NUMA. عند العمل مع أنظمة SMP، يستخدمون ما يسمى نموذج البرمجةمع الذاكرة المشتركة (نموذج الذاكرة المشتركة).

بنية MPP

MPP (معالجة متوازية ضخمة) – بنية متوازية على نطاق واسع. السمة الرئيسية لهذه البنية هي أن الذاكرة مقسمة فعليًا. في هذه الحالة، يتم بناء النظام من وحدات منفصلة تحتوي على معالج، وبنك محلي لذاكرة التشغيل (RAM)، معالجات الاتصالات(أجهزة التوجيه) أو محولات الشبكةوأحيانًا محركات الأقراص الثابتة و/أو أجهزة الإدخال/الإخراج الأخرى. في الواقع، هذه الوحدات هي أجهزة كمبيوتر كاملة المواصفات (انظر الشكل 3.2). فقط المعالجات (وحدات المعالجة المركزية) من نفس الوحدة لديها حق الوصول إلى بنك OP من وحدة معينة. ترتبط الوحدات عن طريق قنوات اتصال خاصة. يمكن للمستخدم تحديد الرقم المنطقي للمعالج الذي يتصل به وتنظيمه تبادل الرسائلمع المعالجات الأخرى. هناك خياران لتشغيل نظام التشغيل (OS) على الأجهزة ذات البنية MPP. في واحدة كاملة نظام التشغيل(نظام التشغيل) يعمل فقط على جهاز التحكم (الواجهة الأمامية)؛ حيث تقوم كل وحدة فردية بتشغيل نسخة مخفضة بشكل كبير من نظام التشغيل، مما يضمن تشغيل فرع التطبيق الموازي الموجود فيه فقط. في الخيار الثاني، تقوم كل وحدة بتشغيل نظام تشغيل كامل يشبه نظام التشغيل UNIX، ويتم تثبيته بشكل منفصل.


أرز. 3.2.

الميزة الرئيسية للأنظمة ذات الذاكرة المنفصلة جيدة قابلية التوسع: على عكس أنظمة SMP، في الأجهزة ذات الذاكرة المنفصلة، ​​يتمتع كل معالج بإمكانية الوصول إلى الذاكرة الخاصة به فقط الذاكرة المحلية، وبالتالي ليست هناك حاجة لمزامنة المعالجات على مدار الساعة. يتم تعيين جميع سجلات الأداء تقريبًا اليوم على أجهزة بنفس هذه البنية، والتي تتكون من عدة آلاف من المعالجات (