المعالج المساعد

معالج حسابي مساعد AM9511-1

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

الوظائف

تختلف المعالجات المساعدة في درجة استقلاليتها. بعضها (مثل وحدات الفاصلة العائمة ) يعتمد على التحكم المباشر عبر تعليمات المعالج المساعد المضمنة في تدفق تعليمات وحدة المعالجة المركزية . بينما تُعدّ معالجات أخرى مستقلة بحد ذاتها، قادرة على العمل بشكل غير متزامن؛ إلا أنها لا تزال غير مُحسّنة للبرامج العامة ، أو أنها غير قادرة على ذلك بسبب مجموعة تعليمات محدودة تركز على تسريع مهام محددة . من الشائع أن يتم تشغيل هذه المعالجات عن طريق الوصول المباشر إلى الذاكرة (DMA)، حيث يقوم المعالج المضيف (وحدة المعالجة المركزية) بإنشاء قائمة أوامر . احتوى محرك Emotion Engine الخاص بجهاز PlayStation 2 على وحدة SIMD متجهة غير عادية تشبه معالج الإشارات الرقمية (DSP) ، قادرة على كلا نمطي التشغيل.

تاريخ

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

ظهرت المعالجات المساعدة للحسابات ذات الفاصلة العائمة لأول مرة في أجهزة الكمبيوتر المكتبية في سبعينيات القرن العشرين، وانتشرت على نطاق واسع خلال ثمانينيات القرن نفسه وحتى أوائل تسعينياته. استخدمت المعالجات المبكرة ذات 8 بت و16 بت برامجَ لإجراء عمليات الحساب ذات الفاصلة العائمة . وعند دعم المعالج المساعد، أمكن إجراء حسابات الفاصلة العائمة بسرعة أكبر بكثير. لاقت المعالجات المساعدة الرياضية رواجًا كبيرًا بين مستخدمي برامج التصميم بمساعدة الحاسوب (CAD) والحسابات العلمية والهندسية. بعض وحدات الفاصلة العائمة، مثل AMD 9511 و Intel 8231/8232 و Weitek FPUs، كانت تُعامل كأجهزة طرفية، بينما كانت وحدات أخرى، مثل Intel 8087 و Motorola 68881 و National 32081، أكثر اندماجًا مع وحدة المعالجة المركزية (CPU).

كان أحد أشكال المعالجات المساعدة معالج عرض الفيديو، كما هو مستخدم في حواسيب أتاري ذات 8 بت ، و TI-99/4A ، وحواسيب MSX المنزلية، والتي كانت تُسمى " وحدات تحكم عرض الفيديو ". تتضمن مجموعة شرائح أميغا المخصصة وحدة من هذا النوع تُعرف باسم Copper ، بالإضافة إلى مُسرِّع لمعالجة الصور النقطية في الذاكرة.

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

إنتل

البنية الدقيقة لـ i8087 و i80287
بنية i80387 الدقيقة

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

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

معالج Intel 80386DX مع معالج مساعد رياضي 80387DX

كان المعالج المساعد 8089 للإدخال/الإخراج معالجًا مساعدًا آخر للمعالج المركزي 8086/8088 . استخدم هذا المعالج نفس أسلوب البرمجة المستخدم في المعالج 8087 لعمليات الإدخال/الإخراج، مثل نقل البيانات من الذاكرة إلى جهاز طرفي، مما قلل الحمل على وحدة المعالجة المركزية. إلا أن شركة IBM لم تستخدمه في تصميم أجهزة IBM PC، وتوقفت شركة Intel عن تطوير هذا النوع من المعالجات المساعدة.

استخدم معالج Intel 80386 معالجًا مساعدًا اختياريًا للحسابات ( 80387 ) لإجراء عمليات الفاصلة العائمة مباشرةً في مكوناته المادية . بينما احتوى معالج Intel 80486DX على مكونات الفاصلة العائمة مدمجة في الشريحة. أصدرت Intel معالجًا مخفض التكلفة، هو 80486SX، والذي لم يكن يحتوي على مكونات الفاصلة العائمة، كما باعت معالجًا مساعدًا 80487SX الذي كان يُعطّل المعالج الرئيسي عند تركيبه، نظرًا لأن 80487SX كان معالج 80486DX كاملًا مع مجموعة مختلفة من توصيلات الدبابيس. [ 1 ]

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

خلال عصر الحواسيب المكتبية ذات 8 و16 بت، كانت شركة Weitek مصدرًا شائعًا آخر للمعالجات المساعدة ذات الفاصلة العائمة . تميزت هذه المعالجات المساعدة بمجموعة تعليمات مختلفة عن معالجات Intel المساعدة، واستخدمت مقبسًا مختلفًا لم تدعمه جميع اللوحات الأم. لم توفر معالجات Weitek وظائف الرياضيات المتسامية (مثل الدوال المثلثية) كما في عائلة Intel x87، وتطلبت مكتبات برمجية خاصة لدعم وظائفها. [ 2 ]

موتورولا

احتوت عائلة معالجات موتورولا 68000 على المعالجين المساعدين 68881/68882 اللذين وفّرا تسريعًا مماثلًا في سرعة العمليات الحسابية ذات الفاصلة العائمة كما هو الحال في معالجات إنتل. ويمكن لأجهزة الكمبيوتر التي تستخدم عائلة 68000 ولكنها غير مزودة بمعالج الفاصلة العائمة المدمج، أن تلتقط تعليمات الفاصلة العائمة وتحاكيها برمجيًا، وهو ما يسمح، رغم بطئه، بتوزيع نسخة ثنائية واحدة من البرنامج لكلا الحالتين. وقد صُمم المعالج المساعد لإدارة الذاكرة 68451 للعمل مع معالج 68020. [ 3 ]

المعالجات المساعدة الحديثة

اعتبارًا من عام 2001أصبحت وحدات معالجة الرسومات المخصصة ( GPUs ) على شكل بطاقات رسومات شائعة الاستخدام. وقد زُوّدت بعض طرازات بطاقات الصوت بمعالجات مخصصة توفر مزجًا رقميًا متعدد القنوات وتأثيرات معالجة الإشارات الرقمية في الوقت الفعلي منذ عام 1990 إلى 1994 (وتُعدّ بطاقات Gravis Ultrasound و Sound Blaster AWE32 أمثلة نموذجية)، بينما تُعدّ بطاقات Sound Blaster Audigy و Sound Blaster X-Fi أمثلة أحدث.

في عام 2006، أعلنت شركة AGEIA عن بطاقة إضافية لأجهزة الكمبيوتر أطلقت عليها اسم PhysX PPU . صُممت PhysX لإجراء حسابات فيزيائية معقدة، ما يُغني وحدة المعالجة المركزية (CPU) ووحدة معالجة الرسومات (GPU) عن القيام بهذه الحسابات المُستهلكة للوقت. صُممت في الأصل لألعاب الفيديو، مع إمكانية تطوير استخدامات رياضية أخرى لها نظريًا. في عام 2008، استحوذت شركة Nvidia على الشركة وأوقفت إنتاج بطاقات PhysX؛ وأُضيفت هذه الوظيفة عبر برمجيات تُمكّن وحدات معالجة الرسومات (GPU) من عرض PhysX على أنوية تُستخدم عادةً لمعالجة الرسومات، وذلك باستخدام برنامج محرك Nvidia PhysX.

في عام 2006، كشفت شركة BigFoot Systems عن بطاقة PCI إضافية أطلقوا عليها اسم KillerNIC والتي كانت تشغل نواة Linux خاصة بها على معالج FreeScale PowerQUICC يعمل بسرعة 400  ميجاهرتز، وأطلقوا على شريحة FreeScale اسم وحدة معالجة الشبكة أو NPU.

بطاقة SpursEngine هي بطاقة إضافية موجهة للوسائط المتعددة مزودة بمعالج مساعد يعتمد على بنية Cell الدقيقة . وحدات المعالجة الفرعية (SPUs) هي نفسها معالجات مساعدة متجهة.

في عام 2008، أصدرت مجموعة Khronos لغة OpenCL بهدف دعم وحدات المعالجة المركزية للأغراض العامة، ووحدات معالجة الرسومات ATI/AMD وNvidia (وغيرها من المسرعات) بلغة مشتركة واحدة لنوى الحوسبة .

في العقد الثاني من الألفية الثانية، قامت بعض أجهزة الحوسبة المحمولة بتطبيق مركز الاستشعار كمعالج مساعد. ومن أمثلة المعالجات المساعدة المستخدمة في دمج المستشعرات في الأجهزة المحمولة: معالجات الحركة المساعدة Apple M7 وM8 ، ومعالج Qualcomm Snapdragon Sensor Core ومعالج Qualcomm Hexagon ، ووحدة المعالجة الهولوغرافية الخاصة بجهاز Microsoft HoloLens .

في عام 2012، أعلنت شركة إنتل عن المعالج المساعد Intel Xeon Phi . [ 4 ]

اعتبارًا من عام 2016تقوم شركات مختلفة بتطوير معالجات مساعدة تهدف إلى تسريع الشبكات العصبية الاصطناعية للرؤية والمهام المعرفية الأخرى (مثل وحدات معالجة الرؤية ، و TrueNorth ، و Zeroth )، واعتبارًا من عام 2018، توجد رقائق الذكاء الاصطناعي هذه في الهواتف الذكية مثل هواتف Apple، والعديد من موردي هواتف Android.

معالجات مشتركة أخرى

  • تدعم بنية MIPS ما يصل إلى أربع وحدات معالجة مساعدة، تُستخدم لإدارة الذاكرة، والحسابات ذات الفاصلة العائمة، ووحدتي معالجة مساعدة غير محددتين لمهام أخرى مثل مسرعات الرسومات. [ 5 ]
  • باستخدام FPGA (مصفوفات البوابات القابلة للبرمجة الميدانية)، يمكن إنشاء معالجات مساعدة مخصصة لتسريع مهام معالجة معينة مثل معالجة الإشارات الرقمية (على سبيل المثال Zynq ، الذي يجمع بين نوى ARM وFPGA على شريحة واحدة).
  • مسرعات TLS/SSL ، المستخدمة على الخوادم ؛ كانت هذه المسرعات في السابق عبارة عن بطاقات، ولكن في العصر الحديث أصبحت تعليمات للتشفير في وحدات المعالجة المركزية السائدة.
  • يمكن برمجة بعض الرقاقات متعددة النوى بحيث يكون أحد معالجاتها هو المعالج الأساسي، والمعالجات الأخرى هي معالجات مساعدة داعمة.
  • معالج Matrix 2000 الصيني ذو 128 نواة PCI-e هو معالج تسريع خاص يتطلب وحدة معالجة مركزية لتشغيله، وقد تم استخدامه في ترقية حاسوب Tianhe-2 العملاق ذي 17792 عقدة (2 Intel Knights Bridge + 2 Matrix 2000 لكل عقدة)، والذي يُطلق عليه الآن اسم 2A، مما أدى إلى مضاعفة سرعته تقريبًا لتصل إلى 95 بيتافلوب، متجاوزًا بذلك أسرع حاسوب عملاق في العالم . [ 6 ]
  • توفرت مجموعة من المعالجات المساعدة لمختلف طرازات شركة Acorn Computers ، ولا سيما سلسلتي BBC Micro و BBC Master . لم تكن هذه المعالجات أجهزة رسومات أو حسابات متخصصة، بل كانت وحدات معالجة مركزية عامة (أبرزها 6502 وZilog Z80 وNational Semiconductor 32016 وARM 1) تُوصف بأنها معالجات ثانوية، وعادةً ما يتم ربطها بالنظام المضيف باستخدام بنية تمرير الرسائل المعروفة باسم Tube . وقد وفرت منتجات Acorn نفسها هذه المعالجات في وحدة توسعة BBC Micro مع ذاكرة ودوائر ربط مصاحبة. يمكن تشغيل البرامج بشكل مستقل على المعالج الثانوي، ويمكن كتابة تطبيقات لتخفيف العبء عن النظام المضيف، مما يتيح له أداء مهام الإدخال/الإخراج، وبالتالي تسريع الأداء. ونظرًا لتوافر مجموعة متنوعة من وحدات المعالجة المركزية في منتجات مختلفة، كان بإمكان جهاز BBC Micro المزود بمعالج مساعد كهذا تشغيل أنظمة تشغيل لبنى معالجات أخرى، مثل CP/M وDOS وUnix، بالإضافة إلى البرامج المصاحبة.

بمرور الوقت، تطورت وحدات المعالجة المركزية (CPU) لتستوعب وظائف المعالجات المساعدة الأكثر شيوعًا. تُعتبر وحدات معالجة الفاصلة العائمة (FPU) الآن جزءًا لا يتجزأ من مسار المعالجة الرئيسي للمعالج؛ وقد ساهمت وحدات SIMD في تسريع الوسائط المتعددة، لتحل محل بطاقات تسريع معالجة الإشارات الرقمية (DSP) المختلفة ؛ حتى أن وحدات معالجة الرسومات (GPU) أصبحت مدمجة في رقائق المعالجات المركزية. ومع ذلك، لا تزال الوحدات المتخصصة شائعة الاستخدام خارج أجهزة الكمبيوتر المكتبية، وذلك لتوفير طاقة إضافية، ولإتاحة التطوير المستمر بشكل مستقل عن خطوط إنتاج المعالجات الرئيسية.

انظر أيضاً

مراجع

  1. سكوت مولر، ترقية وإصلاح أجهزة الكمبيوتر الشخصية، الطبعة الخامسة عشرة، دار نشر كيو، 2003، رقم ISBN 0-7897-2974-1الصفحات 108-110
  2. سكوت مولر، ترقية وإصلاح أجهزة الكمبيوتر الشخصية، الطبعة الثانية ، دار نشر كيو، 1992، رقم ISBN 0-88022-856-3، الصفحات 412-413
  3. ويليام فورد، ويليام ر. توب، لغة التجميع وبرمجة الأنظمة لعائلة M68000، جونز وبارتليت ليرنينج، 1992، رقم ISBN 0-7637-0357-5الصفحة 892 وما يليها.
  4. "إنتل تُقدّم بنية جديدة للاكتشاف مع معالجات Intel® Xeon Phi™ المساعدة" . Newsroom.intel.com. ١٢ نوفمبر ٢٠١٢. مؤرشف من الأصل في ٣ يونيو ٢٠١٣. تم الاطلاع عليه في ١٦ يونيو ٢٠١٣ .
  5. إيرين فاركوهار، فيليب بونس، دليل مبرمج MIPS ، مورغان كوفمان، 1994، رقم ISBN 1-55860-297-6، الملحق أ3، الصفحة 330
  6. «سيستخدم حاسوب تيانخه-2A الصيني مُسرِّعًا خاصًا به، وسيبلغ ذروة أدائه 95 بيتافلوب» . hpcwire.com . 25 سبتمبر 2017. مؤرشف من الأصل في 1 ديسمبر 2020. تم الاطلاع عليه في 7 أبريل 2018 .