التنفيذ في الموقع

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

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

لكي ينجح هذا الأمر، يجب استيفاء عدة معايير:

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

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

أثناء بدء التشغيل

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

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

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

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

في أنظمة x86، عادةً ما يتم تعيين ذاكرة BIOS / UEFI ROM إلى مساحة ذاكرة ثابتة عند التشغيل، [ 3 ] وتستخدم هذه الأنظمة بروتوكول XIP لتهيئة الذاكرة الرئيسية . أما في أنظمة ARM وRISC-V المدمجة، فعادةً ما يتم تعيين ذاكرة التمهيد ROM المدمجة في النظام على شريحة (SoC) إلى مساحة ذاكرة ثابتة عند التشغيل، ويمكن لذاكرة التمهيد ROM العثور على برنامج تمهيد مدمج مثل Das U-Boot وتحميله من ذاكرة NAND flash ، ولا تستخدم عملية التمهيد هذه شريحة EEPROM مخصصة .

XIP كنظام ملفات

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

كل هذه التعقيدات، بالإضافة إلى المفاضلة المتعلقة بالسرعة، تعني أن بروتوكول XIP يُستخدم عادةً فقط في برامج الإقلاع الأولية أو عندما تكون ذاكرة الوصول العشوائي (RAM) شحيحة للغاية. على وجه الخصوص، تربط أجهزة ألعاب الفيديو من الجيل الثاني إلى الرابع ناقل العناوين والبيانات الخاص بخرطوشة ROM بناقل الجهاز نفسه، [ 4 ] مما يسمح (على سبيل المثال) لجهاز أتاري 2600 بالعمل باستخدام 128 بايت فقط من ذاكرة الوصول العشوائي الموجودة في شريحة واجهة عصا التحكم .

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

يجري أيضاً تطوير تطبيق لنظام NetBSD . [ 5 ]

انظر أيضاً

مراجع

  1. يحتوي معالج سامسونج S3C2416X على ذاكرة SRAM مدمجة بسعة 64 كيلوبايت متاحة على ناقل النظام
  2. يستخدم معالج Broadcom BCM2835 ذاكرة التخزين المؤقت من المستوى الثاني كذاكرة وصول عشوائي (RAM) لبرنامج الإقلاع قبل تهيئة ذاكرة الوصول العشوائي الديناميكية (SDRAM).
  3. "يا رجل، أين ذاكرة الوصول العشوائي (RAM) الخاصة بي التي تبلغ 4 جيجابايت؟" . رعب البرمجة . 2007-03-08 . تم الاسترجاع في 2024-08-31 .
  4. ↑ براءة اختراع أمريكية رقم 4485457 ، ريتشارد ك. بالاسكا، روبرت ل. هنتر، وسكوت س. روبنسون، "نظام ذاكرة يتضمن ذاكرة الوصول العشوائي وذاكرة القراءة فقط القابلة للتبديل بين الصفحات"، صدرت في 27-11-1984، وتم تخصيصها لشركة سي بي إس. 
  5. أويباياشي، ماساو (2010-04-05). "دعم التنفيذ المباشر (XIP) لنظام NetBSD" (ملف PDF) . BSDCan .