OVPsim

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

الترخيص

تم تطوير برنامج OVPsim وصيانته بواسطة شركة Imperas . [ 3 ] يُعدّ برنامج المحاكاة الأساسي برنامجًا احتكاريًا ، وهو متاح مجانًا للاستخدام غير التجاري. أما الاستخدام التجاري فيتطلب ترخيصًا منخفض التكلفة من Imperas لتغطية تكاليف الصيانة. تتوفر نماذج مختلفة للمعالجات والأجهزة الطرفية والمنصات كبرامج مجانية بموجب ترخيص Apache الإصدار 2.0 .

تفاصيل

يتكون OVP من ثلاثة مكونات رئيسية: نماذج مفتوحة المصدر ، ومحاكي OVPsim سريع، وواجهات برمجة تطبيقات للنمذجة . صُممت هذه المكونات لتسهيل تجميع منصات متعددة النوى، متجانسة أو غير متجانسة، ذات تسلسلات هرمية معقدة للذاكرة، وأنظمة تخزين مؤقت، وطبقات من البرامج المدمجة، والتي يمكن تشغيلها بسرعة مئات الملايين من التعليمات البرمجية في الثانية (MIPS) على أجهزة الكمبيوتر المكتبية القياسية. يُعتبر OVPsim دقيقًا على مستوى التعليمات ، ولكنه ليس دقيقًا على مستوى دورات المعالجة. تتوفر العديد من الأمثلة على المكونات، ومنصات افتراضية كاملة قادرة على تشغيل نواة لينكس في أقل من 5 ثوانٍ على الصفحة الرئيسية لـ OVP.

نماذج مفتوحة المصدر

يضم برنامج OVP عدة فئات نماذج مختلفة. تُقدم هذه النماذج على شكل شفرة كائنية مُجمّعة مسبقًا، وفي بعض الحالات، كملفات مصدرية. لم يعد برنامج OVPsim يُوفر شفرة مصدرية لنماذج معالجات ARM وMIPS. يوجد حاليًا نماذج معالجات من ARM (معالجات تستخدم مجموعات تعليمات ARMv4 و ARMv5 و ARMv6 و ARMv7 و ARMv8) وصولاً إلى ARM Cortex-A72MPx4 (بما في ذلك نماذج ARMv8 متعددة المجموعات مع GICv3)، ومعالجات Imagination MIPS (معالجات تستخدم مجموعات تعليمات MIPS32 و MIPS64 و microMIPS و nanoMIPS و MIPS R6) وصولاً إلى نوى microAptiv و interAptiv و proAptiv و Warrior، وسلسلة Synopsys Virage ARC600/ARC700 و ARC EM، و Renesas v850 و RH850 و RL78 و m16c، و PowerPC ، و Altera Nios II ، و Xilinx MicroBlaze ، و RISC-V (نماذج تستخدم 32 بت RV32I و RV32M و RV32IM و RV32A و RV32IMA، RV32IMAC، RV32F، RV32D، RV32E، RV32EC، RV32C، RV32G، RV32GC، RV32GCN، RV32IMAFD ومجموعات فرعية من ISA 64 بت (RV64I، RV64M، RV64IMAC، RV64F، RV64D، RV64C، RV64G، RV64GC، RV64GCN، RV64IMAFD)، وAndes Technology N25/NX25، N25F/NX25F، A25/AX25، A25F/AX25F، و Microsemi CoreRISCV/MiV-RV32IMA، و SiFive E31، E51، U54، U54-MC، وFreedom U540، و Codasip Series 1، 3، 5، 7 RISC-V تتضمن هذه المعالجات معالجات Intel NiosV RISC-V، ومعالج الإشارات الرقمية Texas Instruments TMS320 DSP، وعائلات OpenRisc . تستخدم مجموعة OpenHW برنامج OVPsim كمرجع أساسي لمعالجاتها مفتوحة المصدر RISC-V CV32E40 وCV32E20. كما تتوفر نماذج لأنواع مختلفة من مكونات النظام، بما في ذلك ذاكرة الوصول العشوائي (RAM)، وذاكرة القراءة فقط (ROM)، وذاكرة التخزين المؤقت (Cache)، والجسر. وتشمل أيضًا نماذج للأجهزة الطرفية مثل Ethernet MAC وUSB وDMA وUART وFIFO. تتوفر العديد من المنصات الجاهزة، بما في ذلك أنظمة التشغيل الأكثر شيوعًا [ 4 ] مثل ucLinux و Linux و Android و FreeRTOS و Nucleus وMicrium.

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

محاكي OVPsim

يتوفر برنامج المحاكاة OVPsim كمرجع لبرنامج OVP وهو مجاني للاستخدام غير التجاري. يستخدم البرنامج تقنية الترجمة الثنائية الديناميكية لتحقيق سرعات محاكاة عالية جدًا، حيث يُمكنه محاكاة أكثر من مليار تعليمة في الثانية، حتى على أجهزة الكمبيوتر المكتبية العادية. يتوفر OVPsim لأنظمة التشغيل Windows و Linux x86 .

يأتي برنامج OVPsim مزودًا بواجهة GDB RSP (بروتوكول الاتصال التسلسلي عن بُعد) لتمكين تصحيح أخطاء التطبيقات التي تعمل على معالجات محاكاة باستخدام أي مصحح أخطاء قياسي يدعم هذه الواجهة. كما يتضمن OVPsim مصحح الأخطاء الرسومي Imperas iGui، بالإضافة إلى بيئة تطوير متكاملة Eclipse وواجهة CDT.

يمكن تضمين برنامج OVPsim واستدعاؤه من داخل بيئات محاكاة أخرى [ 5 ] ، ويأتي مزودًا بشكل قياسي بملفات واجهة للغات C و C++ و SystemC [ 6 ] . يتضمن OVPsim ملفات واجهة SystemC TLM 2.0 الأصلية. كما يُمكن تضمين نماذج المعالجات القديمة ونماذج السلوك بحيث يُمكن استخدامها بواسطة OVPsim.

واجهات برمجة تطبيقات النمذجة

يتم إنشاء نماذج OVP باستخدام واجهات برمجة تطبيقات C / C++ . هناك ثلاث واجهات برمجة تطبيقات رئيسية: OP و VMI و BHM/PPM.

صاحب المنشور

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

حلت واجهة برمجة تطبيقات OP محل واجهة برمجة تطبيقات ICM خلال عام 2016. ولا تزال واجهة برمجة تطبيقات ICM قابلة للاستخدام مع الأنظمة الأساسية القديمة.

إدارة المخزون من قبل البائع

تُوفّر واجهة برمجة تطبيقات VMI إمكانية نمذجة المعالج. تُتيح وظائف هذه الواجهة وصف سلوك المعالج بسهولة. يقوم نموذج المعالج المكتوب بلغة C باستخدام VMI بفك تشفير التعليمات المستهدفة المراد محاكاتها، ثم يُترجمها إلى تعليمات x86 أصلية تُنفّذ بعد ذلك على جهاز الكمبيوتر. يُمكن استخدام VMI لنمذجة بنى 8 و16 و32 و64 بت. كما توجد آلية اعتراض تُتيح محاكاة استدعاءات الدوال في مكتبات وقت تشغيل التطبيق (مثل write وfstat وغيرها) دون الحاجة إلى تعديل نموذج المعالج أو التطبيق المُحاكى.

PPM و BHM

تُصمَّم المكونات السلوكية والأجهزة الطرفية والبيئة العامة باستخدام لغة C واستدعاءات واجهتي برمجة التطبيقات هاتين. وتعتمد هاتان الواجهتان على آلية جدولة قائمة على الأحداث لتمكين نمذجة الوقت والأحداث والتزامن. توفر نماذج الأجهزة الطرفية وظائف رد نداء تُستدعى عندما يصل برنامج التطبيق الذي يعمل على المعالجات المُمَثَّلة في النظام الأساسي إلى مواقع الذاكرة التي تم فيها تفعيل الجهاز الطرفي.

المستخدمون

يُستخدم برنامج OVPsim في العديد من المؤسسات التعليمية لتوفير بنية تحتية للمحاكاة لأغراض البحث في منصات الحوسبة المتوازية ، [ 7 ] [ 8 ] والتصميم المشترك للأجهزة والبرمجيات، [ 9 ] وتحليل أداء الأنظمة المدمجة، [ 10 ] وكأساس لتطوير أدوات مدمجة أخرى. كما يُستفاد منه في المقررات التعليمية لتمكين الطلاب من تطوير وتصحيح برامج التطبيقات وإنشاء منصات افتراضية ونماذج جديدة.

تستخدم العديد من المؤسسات التجارية الرائدة برنامج OVPsim كأساس لعروض منتجاتها. وقد حصلت شركة MIPS Technologies على ترخيص هذه التقنية [ 11 ] لتوفير دعم النمذجة لمجموعة معالجاتها المدمجة ذات بنية MIPS ، وذلك في إطار شراكة مع شركة ARM الرائدة في مجال المعالجات [ 12 ] [ 13 كما أنها جزء من مجموعة منتجات Europractice [ 14 ] المتاحة للجامعات الأوروبية. ويستخدم فريق عمل الامتثال التابع لمؤسسة RISC-V [ 15 ] نسخة من OVPsim كمحاكي مرجعي. وقد استخدمت شركات رائدة في مجال أشباه الموصلات، مثل Renesas، هذا المحاكي في أعمال تطوير المعالجات، كما ورد في منشورات رائدة في صناعة الإلكترونيات [ 16 ] . واختاره مشروع NEPHRON+ البحثي التابع للاتحاد الأوروبي لبيئة تطوير البرمجيات والاختبارات الخاصة به [ 17 ] . واستخدمت شركة VinChip Systems Inc. في تشيناي ، الهند، برنامجي OpenOCD وOVPsim لتطوير ما يُحتمل أن يكون أول معالج 32 بت تم تطويره في الهند. [ 18 ] تشكل نماذج OVP والمنصات الافتراضية الأساس للأنشطة الأخرى التي تقوم بها شركة إمبيراس.

مراجع

  1. "مكتبة مكونات المنصات الافتراضية المفتوحة" . Ovpworld.org. 21 نوفمبر 2012. تم الاطلاع عليه بتاريخ 8 مايو 2013 .
  2. "المنصات الافتراضية المفتوحة" . Ovpworld.org. 21 نوفمبر 2012. تم الاطلاع عليه بتاريخ 8 مايو 2013 .
  3. ^ "إمباراس" . إمبيرا. 2 يوليو 2008 . تم الاسترجاع 10 سبتمبر 2013 .
  4. "MIPS Linux" . Linux MIPS. 24 نوفمبر 2008. تم الاطلاع عليه بتاريخ 10 سبتمبر 2013 .
  5. "Cadence Zynq" . Cadence. 2 أبريل 2010. تم الاطلاع عليه بتاريخ 10 سبتمبر 2013 .
  6. "قد تكون هناك قيمة في نماذج إمبراس" . SystemC.org. 17 فبراير 2010. تم الاطلاع عليه في 19 سبتمبر 2013 .
  7. "إطار محاكاة هجين للنمذجة الافتراضية باستخدام OVP وSystemC وSCMLEducation" (ملف PDF) . vdtt.iitd.ac.in. 11 يناير 2009. مؤرشف من الأصل (ملف PDF) في 2 أغسطس 2014. تم الاطلاع عليه في 9 مايو 2013 .
  8. بينتو، سي.؛ راغاف، إس.؛ مارونجيو، أ.؛ روجيرو، إم.؛ أتينيسا، دي.؛ بينيني، إل. (2011). "محاكاة متوازية وسريعة لمنصات ذات ألف نواة باستخدام تسريع GPGPU". المؤتمر الدولي الحادي عشر لعام 2011 لـ IEEE/ACM حول الحوسبة العنقودية والسحابية والشبكية (PDF) . الصفحات 53-62 . doi : 10.1109/CCGrid.2011.64 . ISBN  978-1-4577-0129-0.
  9. نيتا، إي.؛ لازاريسكو، في.؛ كونستانتينسكو، ر. (2009). "طريقة جديدة للتصميم المشترك للأجهزة والبرامج لتطبيقات أنظمة المعالجات المتعددة على رقاقة واحدة". الندوة الدولية للإشارات والدوائر والأنظمة لعام 2009. الصفحات 1-4 . doi : 10.1109/ISSCS.2009.5206089 . ISBN  978-1-4244-3785-6.
  10. "استخدام برنامج OVPsim لتقدير استهلاك الطاقة لمنصات RISC المعقدة" . www.embedded.com. 16 ديسمبر 2012. تاريخ الاطلاع: 8 مايو 2013 .
  11. «شركة MIPS Technologies توقع ترخيصًا لتوزيع نسخة OEM من برنامج محاكاة Imperas OVP» . Bloomberg.com. 24 فبراير 2011. تم الاطلاع عليه بتاريخ 26 يونيو 2013 .
  12. "OVPsim من شركة Imperas Software Ltd" . مجتمع ARM المتصل. 1 يناير 2012. تم الاطلاع عليه بتاريخ 26 يونيو 2013 .
  13. "شركة إمبراس تُعدّ نماذج سريعة لمعالج ARM Cortex-A15" . مجلة EETimes. 8 مارس 2012. تم الاطلاع عليه بتاريخ 19 سبتمبر 2013 .
  14. "ورقة بيانات برنامج Europractice OVPsim" (ملف PDF) . EuroPractice. 10 نوفمبر 2012. مؤرشفة من النسخة الأصلية (ملف PDF) في 3 مارس 2016. تم الاطلاع عليها في 10 سبتمبر 2013 .
  15. "مجموعة عمل الامتثال لمعيار RISC-V" . riscv.org. 6 يونيو 2018. تم الاطلاع عليه بتاريخ 6 يونيو 2018 .
  16. "نماذج المعالجات تساعد في اختبار برمجيات السيارات" . EETimes. 14 أكتوبر 2011. تم الاطلاع عليه في 10 سبتمبر 2013 .
  17. ماكسفيلد، كلايف (15 مايو 2012). "اختيار منصات افتراضية مفتوحة من قبل مشروع بحثي تابع للاتحاد الأوروبي". إي إي تايمز .
  18. ""أول معالج 32 بت مطور في الهند يُطرح لأول مرة". إي إي تايمز - الهند . 24 يونيو 2009. ... أصدرت شركة فينشيب سيستمز ...، والتي تدّعي أنها أول معالج 32 بت يتم تطويره في الهند. ... تم توفير دعم النماذج الأولية الافتراضية بواسطة ... محاكي OVPsim ...