مهندس مايكروسوفت يصنع ذاكرة PDP-11 بنفسه باستخدام الذكاء الاصطناعي
قرر مهندس سابق في مايكروسوفت بناء ذاكرة حاسوبية قديمة من الصفر لتجنب التكاليف الباهظة، مستخدماً شرائح FPGA والذكاء الاصطناعي.

التحدي: أسعار الذاكرة القديمة
واجه ديف بلامر، وهو مهندس سابق في مايكروسوفت ومشهور بتطوير مدير المهام (Task Manager) وألعاب ويندوز القديمة، مشكلة شائعة بين هواة الحواسيب العتيقة: التكلفة المبالغ فيها لقطع الغيار. بعد أن لاحظ عدد الأصفار في سعر ميجابايت واحد من الذاكرة المخصصة لنظام PDP-11، قرر بلامر عدم الاعتماد على السوق المفتوح. بدلاً من ذلك، اختار تصميم وصناعة لوحة ذاكرة جديدة من الصفر لتلبية احتياجات حاسوبه الشخصي الذي يعود لعام 1970، والذي يمكنه نظرياً استيعاب ما يصل إلى 4 ميجابايت من الذاكرة. ويمكن الرجوع إلى Tom's Hardware للاطلاع على التفاصيل الأصلية للمصدر.
التصميم بمساعدة الذكاء الاصطناعي
على الرغم من عدم خبرة بلامر السابقة في تنفيذ مشاريع إلكترونية معقدة من هذا النوع، اعتمد بشكل كبير على أدوات الذكاء الاصطناعي الحديثة. استخدم ChatGPT للمساعدة في التخطيط والتصميم، واستعان بمحاكي الدوائر الإلكترونية عبر الإنترنت EasyEDA لرسم المخططات. نظرًا لأن العديد من نماذج PDP-11 كانت تستخدم لوحات Q-Bus للمكونات الرئيسية، صمم بلامر الذاكرة كبطاقة مستقلة. تم اختبار هذه البطاقة لاحقاً على قاعدة خلفية (backplane) بجانب لوحة تحتوي على معالج النظام M8190.
المكونات التقنية للوحة
تعتمد اللوحة الجديدة على شريحة FPGA من نوع Lattice MachXO2 (نموذج 2000HC) تعمل كمسيطر على الذاكرة. تم توصيل هذه الشريحة بأربع شرائح ذاكرة من شركة ISSI، كل منها بسعة 1 ميجابايت، مما يوفر سعة إجمالية تبلغ 4 ميجابايت. بالإضافة إلى ذلك، شملت اللوحة شريحة إدخال/إخراج من نوع U2S، ومجموعة من مفاتيح DIP، ومنافذ اتصال، وعدد من المكثفات. يشار إلى أن تصميم لوحة المعالج M8190 يستخدم ناقل بيانات بعرض 22 بت، ويخصص 256 كيلوبايت من أعلى نطاقات الذاكرة لعمليات الإدخال/الإخراج وذاكرة القراءة فقط (ROM).

أخطاء البرمجة الأولية
لم يكن المشروع ناجحاً من المحاولة الأولى. واجه بلامر صعوبات في البداية لأنه لم يسبق له برمجية شرائح FPGA عبر الوميض (flash-programming). بعد التغلب على هذه العقبة، وقع في فخ تقني كلاسيكي خاص بنظام PDP-11. يتعلق الأمر بتصميم ناقل الذاكرة الذي لا يمكنه الوصول إلى بايت واحد في كل مرة، بل يقرأ أو يكتب كلمة كاملة (بايتان) دفعة واحدة. يعتمد النظام على البت الأدنى في عنوان الذاكرة كمنتقي لاختيار البايت المنخفض أو العالي داخل الكلمة.
فخ معالج PDP-11
عند القراءة، يقوم المعالج باختيار البايت الصحيح بنفسه، لكن مسيطر الذاكرة الذي صممه بلامر كان يحتاج إلى إرجاع الكلمة كاملة. أما عند الكتابة، فكان يجب قراءة مؤشر الاختيار ثم اختيار البايت المناسب لتحديثه فقط، لأن خطوط الناقل تحمل الكلمة كاملة مما قد يؤدي إلى كتابة بيانات غير صالحة. أدرك بلامر لاحقاً أن ذاكرته كانت تعيد كل كلمة ثانية فقط، مما يعني أن السعة الفعلية المتاحة كانت 2 ميجابايت بدلاً من 4. على الرغم من عدم وجود تحديث رسمي، يُفترض أنه قام بإصلاح هذا الخطأ في كود FPGA بعد تنبيه المتابعين.
بدائل برمجية
اقترح أحد المتابعين تجاوز المشكلة بالكامل من خلال تنفيذ الذاكرة برمجياً باستخدام جهاز Raspberry Pi متصل مباشرةً بناقل PDP. رد بلامر بأنه قام بالفعل بشيء مشابه في الأسبوع السابق باستخدام لوحة واجهة حديثة من نوع QBone DEC، والتي تحتوي بدورها على جهاز Beaglebone Black، وهو جهاز مشابه لـ Raspberry Pi. هذا يؤكد مرونة الحلول الحديثة في التعامل مع أنظمة الحوسبة القديمة.
المصادر
- Tom's HardwareVeteran Microsoft engineer makes his own RAM from scratch using AI — custom FPGA board dodges extreme 1970s PDP-11 memory prices
تابع التسلسل الزمني





