معالج ريكورسيف: محاولة رائدة في هندسة الحواسيب الموجهة للكائنات
معالج ريكورسيف: محاولة رائدة في هندسة الحواسيب الموجهة للكائنات
ريكورسيف (Rekursiv) هو معالج حاسوبي صممه ديفيد م. هارلاند في منتصف الثمانينيات لصالح قسم متخصص في شركة لين برودكتس (Linn Products) المصنعة لأجهزة الصوت عالية الدقة. يمثل هذا المعالج واحدة من المحاولات القليلة في تاريخ هندسة الحاسوب التي هدفت إلى تطبيق مفاهيم البرمجة كائنية التوجه (Object-Oriented Programming) مباشرة على مستوى العتاد الصلب، وهو ما يُعرف بـ هندسة حواسيب اللغات عالية المستوى.
على عكس المعالجات التقليدية التي تتعامل مع البيانات كبتات (Bits) أو بايتات (Bytes)، كان ريكورسيف يعمل مباشرة على "الكائنات" (Objects). كما تميز بدعم مدمج لعملية العودية (Recursion) في مجموعة تعليمات المعالج، ومن هنا استمد اسمه، واستخدم الذاكرة الافتراضية كمخزن دائم للكائنات.
تاريخ التطوير والسياق
بدأ مشروع ريكورسيف كمحاولة لتحسين أنظمة التحكم في خطوط التجميع بمصانع شركة لين في غلاسكو باسكتلندا. كانت المصانع تعتمد على أنظمة VAX-11، لكنها كانت بطيئة وتفتقر إلى المرونة التي طلبها مؤسس الشركة، إيفور تيفينبرون.
في عام 1981، وظف تيفينبرون مبرمجين لتطوير نسخة من لغة Smalltalk لأنظمة VAX، مع استعارة بعض القواعد النحوية من لغة ALGOL، وأُطلق على هذا النظام اسم لينغو (LINGO). ورغم أن نظام لينغو عمل، إلا أن أداءه كان بطيئاً جداً على منصة VAX. استنتج تيفينبرون أن الحل لا يكمن في تحسين اللغة برمجياً، بل في ابتكار وحدة معالجة مركزية (CPU) مخصصة بالكامل لتشغيل البرامج كائنية التوجه.
في عام 1984، أسس تيفينبرون شركة تابعة مملوكة بالكامل تسمى لين سمارت كومبيوتينج (Linn Smart Computing) تحت إدارة البروفيسور ديفيد هارلاند من جامعة ستراثكلايد، وبدأ مشروع ريكورسيف. ظهرت النسخة الأولى من النظام في عام 1988، وتم إنتاج عدد محدود من لوحات VMEbus التجريبية التي سُميت هاديس (Hades)، والتي كانت تتكون من أربعة رقائق وذاكرة وصول عشوائي بسعة 80 ميجابايت، وكان من المفترض تركيبها في أنظمة مضيفة مثل محطة عمل Sun-3.
التصميم والمفاهيم الأساسية
مخزن الكائنات الدائم
كان المفهوم الجوهري لمنصة ريكورسيف هو توفير مخزن كائنات دائم مدعوم بالعتاد، حيث يقوم النظام بكتابة حالة الذاكرة إلى القرص الصلب بشكل مستمر وغير مرئي، دون تدخل من نظام التشغيل أو البرنامج المستخدم. وصفه أحد المراجعين بأنه "محرك قاعدة بيانات كائنات لإنشاء وإدارة الكائنات الدائمة".
بنية مجموعة التعليمات (ISA)
لتحقيق أداء مقبول عند تشغيل برامج معقدة، صُمم ريكورسيف ليسمح للمبرمج بكتابة بنية مجموعة تعليمات (ISA) خاصة به ومخصصة للغة البرمجة المستخدمة. كانت هذه التعليمات تُخزن في ذاكرة وصول عشوائي ثابتة (SRAM)، ولم يكن هناك مجموعة تعليمات افتراضية، رغم أن شركة لين وفرت واحدة لتشغيل لغة البرمجة C.
إدارة الذاكرة والكائنات
لم يوفر النظام عناوين ذاكرة تقليدية للبرامج، بل تم منح كل كائن معرفاً (Identifier) بطول 40 بت. كانت رقاقة تسمى Objekt تقوم بمعالجة هذا المعرف باستخدام دالة تجزئة (Hash) لاستخدامه كمؤشر للذاكرة الفيزيائية، كما تولت هذه الرقاقة عملية نقل الكائنات إلى القرص الصلب للتخزين الدائم.
لإدارة جمع القمامة (Garbage Collection)، قامت رقاقة Objekt بتقسيم ذاكرة الوصول العشوائي إلى نصفين؛ حيث يُستخدم أحدهما لإنشاء الكائنات الجديدة، بينما يظل الآخر غير مستخدم. وعندما تمتلئ المساحة المتاحة، يقوم النظام بإيقاف التشغيل مؤقتاً ونسخ الكائنات ذات المؤشرات الصالحة إلى النصف الفارغ، ثم تبديل الأدوار بين النصفين.
هيكلية المؤشرات
استخدم ريكورسيف مؤشرات بطول 40 بت، حيث يتم تحديد نوع القيمة بناءً على البتات الأكثر أهمية (MSB):
- إذا كان البت الأول مساوياً لـ 1، فإن القيمة هي معرف كائن.
- إذا كان البت الأول مساوياً لـ 0، فإن القيمة هي قيمة ثنائية غير محددة النوع (تُستخدم للبيانات الكبيرة مثل الصور الرقمية).
- إذا كان البت الثاني مساوياً لـ 0 أيضاً، فإن النظام يستخدم "الكائنات المدمجة" (Compact Objects)، حيث تُخزن القيمة الصغيرة (مثل عدد صحيح) مباشرة في الـ 32 بت المتبقية من المؤشر، مما يقلل الحاجة للوصول إلى الذاكرة ويزيد السرعة.
نهاية المشروع
بحلول الوقت الذي تم فيه تسليم أول تنفيذ للمشروع، كانت معالجات جديدة مثل Sun SPARC وIntel 486 قد تفوقت عليه من حيث الأداء. وأشارت تقارير من جامعة ستراثكلايد إلى أن نسخة جديدة من لغة لينغو التي كُتبت لنظام Sun SPARC كانت تعمل بضعف سرعة عتاد ريكورسيف، مما جعل الجهد المبذول في تطوير عتاد مخصص أمراً غير مجدٍ. توقف التطوير في عام 1988 وأُغلقت الشركة التابعة لاحقاً.
أسئلة شائعة
ما الذي يميز معالج ريكورسيف عن المعالجات التقليدية؟
يتميز بأنه يعمل مباشرة على الكائنات (Objects) بدلاً من البتات والبايتات، ويدعم مفاهيم البرمجة كائنية التوجه والعودية (Recursion) على مستوى العتاد الصلب.
لماذا سُمي المعالج باسم 'ريكورسيف'؟
سُمي بهذا الاسم لأن مجموعة تعليمات المعالج كانت تدعم عملية العودية (Recursion) بشكل مباشر ومدمج.
لماذا فشل مشروع ريكورسيف تجارياً؟
بسبب التطور السريع في المعالجات العامة مثل Intel 486 وSun SPARC، والتي قدمت أداءً تفوق على العتاد المخصص لريكورسيف حتى قبل اكتمال تطويره.