مقارنة بين مصفوفات البوابة القابلة للبرمجة الميدانية (FPGAs) والمتحكمات الدقيقة: ما الفرق بينهما؟

3 يونيو 2024

قراءة لمدة 6 دقائق

مصفوفات البوابات الإلكترونية القابلة للبرمجة في الموقع (FPGAs) وووحدات التحكم الدقيقة (MCUs) هما نوعان من الدوائر المتكاملة (ICs) التي تُستخدم عادةً في الأنظمة المدمجة والتصميم الرقمي. يمكن النظر إلى كل من مصفوفات البوابة القابلة للبرمجة الميدانية ووحدات التحكم الدقيقة على أنها "أجهزة كمبيوتر صغيرة" يمكن دمجها في الأجهزة والأنظمة الأكبر حجمًا.

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

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

ما هي مصفوفة البوابة القابلة للبرمجة الميدانية (FPGA)؟

أصدرت شركة Xilinx لأول مرة مصفوفات FPGAs في عام 1985، وهي ذات قيمة عالية لتنوع استخدامها وقدرة معالجتها. نتيجة لذلك، فهي خيار مفضل في العديد من تطبيقات الحوسبة عالية الأداء (HPC) ومعالجة الإشارات الرقمية (DSP) والنماذج الأولية.

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

مزايا FPGA

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

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

عناصر مصفوفات FPGA

لتحقيق إمكانية إعادة التكوين، تتكون FPGAs من مجموعة من كتل المنطق القابلة للبرمجة المترابطة بنسيج توجيه قابل للبرمجة. فيما يلي العناصر الرئيسية لمصفوفات البوابات الإلكترونية القابلة للبرمجة في الموقع (FPGAs) التقليدية:

  • الكتل المنطقية القابلة للتكوين (CLBs): توفر الكتل المنطقية القابلة للتكوين (CLBs) وظائف الحوسبة وقد تحتوي على عدد صغير من العناصر المنطقية البدائية، مثل البوابات المنطقية وجداول البحث (LUTs) الصغيرة ومضاعفات الإرسال والقلابات لتخزين البيانات. 
  • الوصلات البينية القابلة للبرمجة: تتكون هذه الوصلات من مجموعات أسلاك متصلة بمفاتيح قابلة للبرمجة كهربائيًا، وتوفر هذه الوصلات مسارات توجيه بين مختلف موارد FPGA، ما يسمح بتكوينات مختلفة وإنشاء دوائر رقمية مخصصة. 
  • وحدات الإدخال/الإخراج (IOBs): تُفعل الواجهة بين FPGA والأجهزة الخارجية الأخرى عن طريق وحدات الإدخال/الإخراج (I/O)، والتي تسمح لمصفوفات البوابات الإلكترونية القابلة للبرمجة في الموقع (FPGAs) باستقبال البيانات من الأجهزة الطرفية والتحكم فيها 

حالات استخدام FPGA

مصفوفات FPGAs متعددة الاستخدامات بطبيعتها، وهي شائعة في مجموعة واسعة من المجالات والتطبيقات منها ما يلي:

  • الطيران والدفاع: بفضل توفير معالجة متوازية فائقة السرعة مفيدة لجمع البيانات، تُعد مصفوفات FPGAs خيارًا مفضلاً لأنظمة الرادار ومعالجة الصور والاتصالات الآمنة. 
  • أنظمة التحكم الصناعية (ICS): تستخدم أنظمة التحكم الصناعية المستخدمة لمراقبة البنية التحتية - مثل شبكات الكهرباء ومصافي النفط ومحطات معالجة المياه - مصفوفات FPGAs التي يمكن تحسينها بسهولة لتلبية الاحتياجات الفريدة لمختلف الصناعات. في هذه الصناعات الحيوية، يمكن استخدام مصفوفات FPGA لتنفيذ العديد من عمليات الأتمتة وتقديم ميزات تشفير مدمجة لضمان كفاءة الأمن الإلكتروني.
  • تطوير ASIC: غالبًا ما تُستخدم FPGAs في النماذج الأولية لشرائح ASICs الجديدة. 
  • السيارات: معالجة الإشارات المتقدمة تجعل أيضًا FPGAs مناسبة تمامًا لتطبيقات السيارات، بما في ذلك الأنظمة المتقدمة لمساعدة السائق (ADAS) ودمج أجهزة الاستشعار ونظام تحديد المواقع العالمي.
  • مراكز البيانات: تضيف FPGAs قيمة إلى مراكز البيانات من خلال تحسين النطاق الترددي العالي والخوادم ذات زمن الانتقال القصير والبنية التحتية للشبكات والتخزين.

خصائص مصفوفات FPGA

  • نواة المعالجة: كتل منطقية قابلة للتكوين
  • الذاكرة: واجهة الذاكرة الخارجية 
  • الأجهزة الطرفية: وحدات الإدخال/الإخراج القابلة للتكوين
  • البرمجة: لغة وصف الأجهزة (VHDL، وVerilog) 
  • إمكانية إعادة التكوين: منطق قابل لإعادة التكوين وإعادة البرمجة بدرجة عالية

ما المقصود بالمتحكم الدقيق؟

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

يمكن تكوين وحدات التحكم الدقيقة الخاصة بالمستهلكين، مثل Aruino Starter Kit أو Microchip Technology PIC، باستخدام لغة التجميع أو لغات البرمجة الشائعة (C، وC++)، وهي مفضلة للهواة والمعلمين بسبب قلة تكلفة الحصول عليها. كما أن وحدات التحكم الدقيقة قادرة على التعامل مع المهام الأكثر تعقيدًا وحساسية وهي شائعة في التطبيقات الصناعية. ومع ذلك، يمكن أن يؤدي انخفاض قدرة المعالجة وموارد الذاكرة إلى الحد من مدى فعالية وحدة التحكم الدقيقة في التطبيقات التي يكثر عليها الطلب.

مزايا وحدات التحكم الدقيقة

على الرغم من قيودها، إلا إن وحدات التحكم الدقيقة تتمتع بالعديد من المزايا، منها ما يلي:

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

عناصر المتحكم الدقيق

عندما لا تكون إمكانية إعادة البرمجة أولوية، توفر وحدات التحكم الدقيقة المتكاملة بديلاً مدمجًا وذا إمكانات. فيما يلي العناصر الرئيسية لوحدات التحكم الدقيقة:

  • وحدة المعالجة المركزية (CPU): يُشار إليها عمومًا باسم "عقل" الكمبيوتر، وتعمل وحدة المعالجة المركزية كعنصر أساسي مسؤول عن تنفيذ التعليمات والتحكم في العمليات.
  • الذاكرة: تحتوي وحدات التحكم الدقيقة على كل من الذاكرة المتطايرة (RAM) التي تخزن البيانات المؤقتة التي قد تُفقد إذا انقطعت الطاقة عن النظام، وذاكرة غير متطايرة (ROM، FLASH) لتخزين تعليمات البرمجة الخاصة بوحدة التحكم الدقيقة
  • الأجهزة الطرفية: بناءً على التطبيق المقصود، قد يحتوي وحدة التحكم الدقيقة على عناصر طرفية متعددة، على سبيل المثال، واجهات الإدخال/الإخراج، مثل المؤقتات والعدادات والمحولات التناظرية الرقمية (ADC) وبروتوكولات الاتصالات (UART وSPI وI2C).

حالات استخدام وحدات التحكم الدقيقة

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

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

خصائص وحدات التحكم الدقيقة

  • نواة المعالجة: وحدة المعالجة المركزية الثابتة
  • الذاكرة: ذاكرة RAM وذاكرة ROM/Flash مدمجة 
  • الأجهزة الطرفية: واجهات الإدخال/الإخراج المدمجة
  • البرمجة: لغة البرمجة (C، ولغة التجميع) 
  • إمكانية إعادة التكوين: محدودة، مع تحديثات للبرامج الثابتة

أوجه الاختلاف الرئيسية بين مصفوفات FPGAs ووحدات التحكم الدقيقة

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

  • بنية الأجهزة
    • مصفوفات FPGA: كتل منطق قابلة للبرمجة وللتكوين بدرجة عالية ووصلات بينية، ما يتيح دوائر رقمية مخصصة وقابلة للبرمجة.
    • وحدات التحكم الدقيقة: ثابتة مزودة بعناصر محددة مسبقًا (وحدة المعالجة المركزية والذاكرة والأجهزة الطرفية) مدمجة في شريحة واحدة.
  • إمكانات المعالجة
    • مصفوفة FPGA: تتيح المعالجة المتوازية المتقدمة إجراء عمليات متعددة في وقت واحد.
    • وحدات التحكم الدقيقة: صُممت وحدات التحكم الدقيقة للمعالجة المتتابعة، حيث يمكنها تنفيذ التعليمات واحدًا تلو الآخر.
  • استهلاك الطاقة
    • مصفوفة FPGA: تستهلك عادةً طاقة أكبر من وحدات التحكم الدقيقة.
    • وحدات التحكم الدقيقة: مُحسّنة بحيث تستهلك طاقة أقل، ومناسبة للتطبيقات التي تعمل بالبطارية.
  • البرمجة
    • مصفوفة FPGA: تتطلب معرفة متخصصة بلغات وصف الأجهزة للتهيئة ومعالجة المشكلات.
    • وحدات التحكم الدقيقة: يمكن برمجتها باستخدام لغات تطوير البرمجيات بما في ذلك Javascript وPython وC وC++ ولغات التجميع.
  • التكلفة
    • مصفوفة FPGA: توفر أجهزة FPGA طاقة متزايدة، ولكنها تتطلب مهارات متقدمة، لذا غالبًا ما تكون أجهزة FPGA أكثر تكلفة بسبب التكلفة الإضافية لاستهلاك الطاقة المتزايد وموهبة المبرمج المتخصص.
    • وحدات التحكم الدقيقة: بشكل عام، هي حل أقل تكلفة إلى جانب توفره في الأسواق واستهلاكه طاقة أقل ودعمه لغات برمجة أكثر انتشارًا.
  • تعدد الاستخدامات
    • مصفوفة FPGA: تُعد FPGA أكثر مرونة بكثير من وحدات التحكم الدقيقة، ما يسمح بالتخصيص على مستوى الأجهزة.
    • وحدات التحكم الدقيقة: في حين أن وحدات التحكم الدقيقة مناسبة لمجموعة واسعة من التطبيقات، إلا إنها لا توفر سوى تخصيص ظاهري مقارنةً بمصفوفات البوابات الإلكترونية القابلة للبرمجة في الموقع (FPGAs).

استكشف حلول البنية التحتية المقدمة من IBM

سواء أكنت تبحث عن معالج FPGA متعدد الاستخدامات وفائق الإمكانات أم عن متحكم دقيق مدمج وميسور التكلفة، فكر في مدى مساعدة IBM لك على الارتقاء بأعمالك من خلال حلول البنية التحتية المتطورة. يوفر نظام FlashSystem 5300 الجديد من IBM أداءً محسنًا ومرونة إلكترونية. يبسط نظام Storage Assurance الجديد من IBM إجراءات ملكية التخزين ويساعدك على مواجهة تحديات دورة حياة تقنية المعلومات.

 

المؤسس

Josh Schneider

Senior Writer

IBM Blog