المعالجة المتعددة المتناظرة

مخطط نظام معالجة متعددة متناظر

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

يعتبر البروفيسور جون د. كوبياتوفيتش أن أنظمة المعالجة المتعددة المتناظرة (SMP) التقليدية تحتوي على معالجات بدون ذاكرة تخزين مؤقتة. [ 2 ] ويذكر كولر وبال-سينغ في كتابهما الصادر عام 1998 بعنوان "معمارية الحواسيب المتوازية: منهج الأجهزة/البرمجيات": "يُستخدم مصطلح SMP على نطاق واسع، ولكنه يُسبب بعض الالتباس. [...] الوصف الأكثر دقة لما يُقصد بـ SMP هو معالج متعدد الذاكرة المشتركة، حيث تكون تكلفة الوصول إلى موقع الذاكرة متساوية لجميع المعالجات؛ أي أن تكاليف الوصول موحدة عندما يكون الوصول فعليًا إلى الذاكرة. إذا كان الموقع مُخزنًا مؤقتًا، فسيكون الوصول أسرع، ولكن أوقات الوصول إلى ذاكرة التخزين المؤقت وأوقات الوصول إلى الذاكرة تكون متساوية على جميع المعالجات." [ 3 ]

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

تصميم

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

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

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

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

تاريخ

كان نظام Burroughs B5000 أول نظام إنتاجي مزود بمعالجات متعددة متطابقة ، وقد بدأ تشغيله حوالي عام 1961. إلا أنه كان غير متماثل أثناء التشغيل ، حيث اقتصر عمل أحد المعالجات على برامج التطبيقات، بينما تولى المعالج الآخر بشكل أساسي نظام التشغيل ومقاطعات الأجهزة. وقد طبق نظام Burroughs D825 تقنية المعالجة المتعددة المتناظرة (SMP) لأول مرة عام 1962. [ 5 ] [ 6 ]

قدمت شركة IBM أنظمة حاسوب ثنائية المعالجات مبنية على نظامها System/360 طراز 65 ، والطرازين 67 [ 7 ] و67-2 [ 8 ] المرتبطين به ارتباطًا وثيقًا . وكانت أنظمة التشغيل التي تعمل على هذه الأجهزة هي OS/360 M65MP [ 9 ] و TSS/360 . واستخدمت برامج أخرى طُوّرت في الجامعات، ولا سيما نظام Michigan Terminal System (MTS)، كلا المعالجين. وكان بإمكان كلا المعالجين الوصول إلى قنوات البيانات وبدء عمليات الإدخال/الإخراج. وفي نظام OS/360 M65MP، كان من الممكن عمومًا توصيل الأجهزة الطرفية بأي من المعالجين نظرًا لأن نواة نظام التشغيل كانت تعمل على كليهما (مع وجود "قفل كبير" حول معالج الإدخال/الإخراج) [ 10 ] . ويتمتع مشرف نظام MTS (UMMPS) بالقدرة على العمل على كلا المعالجين في نظام IBM System/360 طراز 67-2. وكانت أقفال المشرف صغيرة الحجم، وتُستخدم لحماية هياكل البيانات المشتركة الفردية التي قد يتم الوصول إليها في وقت واحد من أي من المعالجين [ 11 ] .

من بين الحواسيب المركزية الأخرى التي دعمت المعالجة المتعددة المتناظرة (SMP) جهاز UNIVAC 1108 II ، الذي صدر عام 1965، والذي كان يدعم ما يصل إلى ثلاثة معالجات مركزية، وجهازَي GE-635 وGE-645 ، [ 12 ] [ 13 ] على الرغم من أن نظام GECOS على أنظمة GE-635 متعددة المعالجات كان يعمل بطريقة غير متناظرة بين المعالج الرئيسي والتابع، على عكس نظام Multics على أنظمة GE-645 متعددة المعالجات، والذي كان يعمل بطريقة متناظرة. [ 14 ]

ابتداءً من الإصدار 7.0 (1972)، طبّق نظام التشغيل TOPS-10 من شركة Digital Equipment Corporation ميزة المعالجة المتعددة المتناظرة (SMP). وكان أول نظام يعمل بهذه الميزة هو نظام DECSystem 1077 ثنائي المعالجات KI10. [ 15 ] لاحقًا، أصبح بإمكان نظام KL10 تجميع ما يصل إلى 8 وحدات معالجة مركزية (CPU) بطريقة SMP. في المقابل، كان أول نظام VAX متعدد المعالجات من شركة DEC ، وهو VAX-11/782، غير متناظر، [ 16 ] لكن أنظمة VAX متعددة المعالجات اللاحقة كانت تعمل بتقنية SMP. [ 17 ]

تضمنت التطبيقات التجارية المبكرة لنظام يونكس SMP جهازي Sequent Computer Systems Balance 8000 (صدر عام 1984) وBalance 21000 (صدر عام 1986). [ 18 ] اعتمد كلا الطرازين على معالجات National Semiconductor NS32032  بتردد 10 ميجاهرتز ، كل منها مزود بذاكرة تخزين مؤقت صغيرة متصلة بذاكرة مشتركة لتشكيل نظام ذاكرة مشتركة . ومن التطبيقات التجارية المبكرة الأخرى لنظام يونكس SMP جهاز Honeywell Information Systems Italy XPS-100 الذي صممه دان جيلان من شركة VAST عام 1985، والذي يعتمد على NUMA. دعم تصميمه ما يصل إلى 14 معالجًا، ولكن نظرًا للقيود الكهربائية، كان أكبر إصدار تم تسويقه نظامًا ثنائي المعالجات. تم اشتقاق نظام التشغيل ونقله بواسطة شركة VAST من كود AT&T 3B20 Unix SysVr3 المستخدم داخليًا في AT&T.

كانت هناك منافذ يونكس متعددة المعالجة غير التجارية في وقت سابق، بما في ذلك منفذ يسمى MUNIX تم إنشاؤه في مدرسة الدراسات العليا البحرية بحلول عام 1975. [ 19 ]

الاستخدامات

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

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

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

المزايا/العيوب

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

ومع ذلك، هناك بعض القيود على قابلية التوسع في SMP بسبب تماسك ذاكرة التخزين المؤقت والأشياء المشتركة.

برمجة

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

يجب على مبرمجي الأنظمة بناء دعم SMP في نظام التشغيل ، وإلا فإن المعالجات الإضافية ستظل خاملة وسيعمل النظام كنظام أحادي المعالج.

قد تؤدي أنظمة المعالجة المتعددة المتناظرة (SMP) أيضًا إلى مزيد من التعقيد فيما يتعلق بمجموعات التعليمات. يتطلب نظام المعالج المتجانس عادةً سجلات إضافية "للتعليمات الخاصة" مثل SIMD (MMX، SSE، إلخ)، بينما يمكن للنظام غير المتجانس تنفيذ أنواع مختلفة من الأجهزة لتعليمات/استخدامات مختلفة.

أداء

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

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

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

البدائل

مخطط لنظام SMP نموذجي. يتم توصيل ثلاثة معالجات بوحدة الذاكرة نفسها من خلال ناقل النظام أو مفتاح التبديل المتقاطع .

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

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

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

SMP متغير

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

كان مشروع Kal-El ( Tegra 3[ 20 ] الحاصل على براءة اختراع من NVIDIA، أول نظام على شريحة (SoC) يُطبّق تقنية vSMP الجديدة. تُقلّل هذه التقنية من استهلاك الطاقة في الأجهزة المحمولة أثناء وضع الاستعداد النشط، كما تُحسّن أداء المعالج رباعي النواة أثناء الاستخدام النشط للتطبيقات المحمولة كثيفة الاستخدام. وبشكل عام، تُلبّي هذه التقنية الحاجة إلى زيادة عمر البطارية أثناء الاستخدام النشط ووضع الاستعداد من خلال تقليل استهلاك الطاقة في معالجات الأجهزة المحمولة.

انظر أيضاً

مراجع

  1. باترسون، ديفيد ؛ هينيسي، جون (2018). تنظيم وتصميم الحاسوب: واجهة الأجهزة/البرمجيات (طبعة RISC-V  ). كامبريدج، الولايات المتحدة: مورغان كوفمان. ص  509. ISBN 978-0-12-812275-4.
  2. جون كوبياتوفيتش. مقدمة في البنى المتوازية و Pthreads . دورة قصيرة في البرمجة المتوازية 2013.
  3. ديفيد كولر ؛ جاسويندر بال سينغ؛ أنوب غوبتا (1999). هندسة الحاسوب المتوازي: منهج الأجهزة/البرمجيات . مورغان كوفمان . ص 47. ISBN  978-1-55860-343-1.
  4. لينا ج. كرم؛ إسماعيل الكمال؛ آلان غاذرر؛ جين أ. فرانتز؛ ديفيد ف. أندرسون؛ برايان ل. إيفانز (2009). "اتجاهات منصات معالجة الإشارات الرقمية متعددة النوى" (ملف PDF) . مجلة معالجة الإشارات IEEE . 26 (6): 38-49 . Bibcode : 2009ISPM...26...38K . doi : 10.1109/MSP.2009.934113 . S2CID 9429714 . 
  5. غريغوري ف. ويلسون (أكتوبر 1994). "تاريخ تطور الحوسبة المتوازية" .
  6. مارتن هـ. ويك (يناير 1964). "دراسة رابعة لأنظمة الحوسبة الرقمية الإلكترونية المحلية" . مختبرات أبحاث المقذوفات ، ميدان اختبار أبردين . بوروز D825.
  7. الخصائص الوظيفية لنظام IBM System/360 موديل 65 (ملف PDF) . الطبعة الرابعة. IBM. سبتمبر 1968. A22-6884-3.
  8. الخصائص الوظيفية لنظام IBM System/360 موديل 67 (ملف PDF) . الطبعة الثالثة. IBM. فبراير 1972. GA27-2719-2.
  9. M65MP: تجربة في المعالجة المتعددة لنظام التشغيل OS/360
  10. دليل منطق البرنامج، منطق مشرف الإدخال/الإخراج لنظام التشغيل، الإصدار 21 (R21.7) (PDF) (الطبعة العاشرة ). شركة IBM. أبريل 1973. GY28-6616-9. 
  11. ↑ يحتوي كتاب "برامج الإشراف على المشاركة الزمنية" لمايك ألكسندر (مايو 1971) على معلومات حول MTS وTSS وCP/67 وMultics.
  12. دليل نظام GE-635 (ملف PDF) . جنرال إلكتريك . يوليو 1964.
  13. دليل نظام GE-645 (ملف PDF) . جنرال إلكتريك. يناير 1968.
  14. ريتشارد شيترون (5 مايو 1998). "الخوف من المعالجة المتعددة؟" . مجموعة الأخبار : alt.folklore.computers . يوزنت: 354e95a9.0@news.wizvax.net .  
  15. ديسمبر 1077 و SMP
  16. دليل مبيعات منتجات VAX، الصفحات 1-23 و1-24 : تم وصف جهاز VAX-11/782 بأنه نظام معالجة متعددة غير متماثل في عام 1982
  17. دليل مستخدم أجهزة نظام VAX 8820/8830/8840 : بحلول عام 1988، كان نظام تشغيل VAX هو SMP
  18. هوكني، آر دبليو؛ جيشوب، سي آر (1988). الحواسيب المتوازية 2: البنية والبرمجة والخوارزميات . تايلور وفرانسيس. ص 46. ISBN  0-85274-811-6.
  19. هاولي، جون ألفريد (يونيو 1975). "MUNIX، نسخة متعددة المعالجات من UNIX" (ملف PDF) . core.ac.uk. تاريخ الاسترجاع: 11 نوفمبر 2018 .
  20. تقنية SMP المتغيرة - بنية معالج متعددة النوى لاستهلاك منخفض للطاقة وأداء عالٍ. إنفيديا. 2011.