أنظمة بوروز الكبيرة

أنتجت مجموعة بوروز للأنظمة الكبيرة عائلة من الحواسيب المركزية الضخمة ذات 48 بت، باستخدام مجموعات تعليمات آلة المكدس ذات المقاطع الصوتية الكثيفة . [ ملاحظة 1 ] كان أول جهاز في هذه العائلة هو B5000 في عام 1961، والذي تم تحسينه لتجميع برامج ALGOL 60 بكفاءة عالية، باستخدام مُجمِّعات أحادية المرور. تطور B5000 إلى B5500 (قرص بدلاً من أسطوانة) وB5700 (حتى أربعة أنظمة تعمل كمجموعة). تشمل عمليات إعادة التصميم الرئيسية اللاحقة سلسلة B6500/B6700 وخلفائها، بالإضافة إلى سلسلة B8500 المنفصلة.

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

خلفية

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

صُمم أول جهاز من تطوير بوروز داخليًا، وهو B5000، عام 1961، وسعى بوروز إلى معالجة تأخره في دخول السوق باستراتيجية تصميم مختلفة تمامًا تعتمد على أحدث أفكار الحوسبة المتاحة آنذاك. ورغم توقف إنتاج بنية B5000، إلا أنها ألهمت تصميم B6500 (وما تلاه من B6700 وB7700). كانت أجهزة الكمبيوتر التي تستخدم هذه البنية لا تزال قيد الإنتاج كخوادم Unisys ClearPath Libra، والتي تعمل بنسخة مطورة ومتوافقة من نظام التشغيل MCP الذي طُرح لأول مرة مع B6700. أما السلسلة الثالثة والأكبر، B8500، [ 1 ] [ 2 ] فلم تحقق أي نجاح تجاري. بالإضافة إلى تصميم معالج CMOS خاص ، تستخدم Unisys أيضًا معالجات Intel Xeon وتُشغل أنظمة تشغيل MCP و Microsoft Windows و Linux على خوادم Libra الخاصة بها؛ وقد تم التخلص تدريجيًا من استخدام الرقائق المخصصة، وبحلول عام 2018، كانت خوادم Libra تعتمد كليًا على معالجات Intel التجارية لعدة سنوات.

B5000 وB5500 وB5700

صُمم أول جهاز من السلسلة الأولى، وهو B5000، [ 3 ] بدءًا من عام 1961 على يد فريق بقيادة روبرت (بوب) بارتون . تميز بتصميم معماري فريد، وقد ذكره عالم الحاسوب جون ماشيه كواحد من أكثر التصاميم المعمارية التي يُعجب بها. يقول: "لطالما اعتبرته أحد أكثر الأمثلة ابتكارًا لتصميم الأجهزة والبرامج المدمجة التي رأيتها، وكان سابقًا لعصره بكثير." [ 4 ] خلف B5000 جهاز B5500، [ 5 ] الذي استخدم الأقراص بدلًا من التخزين الأسطواني، وجهاز B5700 الذي سمح بتجميع وحدات معالجة مركزية متعددة حول قرص مشترك. وبينما لم يُصدر جهاز B5700 كخليفة له، فقد أثرت سلسلة B5000 بشكل كبير على تصميم B6500، وقامت شركة بوروز بنقل برنامج التحكم الرئيسي ( MCP ) إلى هذا الجهاز.

سمات

  • تم تصميم الأجهزة لدعم متطلبات البرامج
  • أجهزة مصممة لدعم لغات البرمجة عالية المستوى حصريًا
  • مجموعة تعليمات مبسطة
  • لا توجد لغة تجميع أو مُجمِّع؛ جميع برامج النظام مكتوبة بلغة مُوسَّعة من لغة ALGOL 60 تُسمى ESPOL . ومع ذلك، احتوت ESPOL على تعليمات لكل مقطع لفظي في بنية النظام.
  • تصميم يعتمد جزئياً على البيانات، مصنف وموصوف
  • عدد قليل من السجلات التي يمكن للمبرمج الوصول إليها
  • آلة المكدس التي تستخدم المكدس في جميع العمليات بدلاً من المعاملات الصريحة. وقد تراجعت شعبية هذا النهج الآن.
  • تستخدم جميع المقاطعات واستدعاءات الإجراءات مكدس البيانات.
  • دعم لغات أخرى مثل كوبول
  • معالجة قوية للأوتار
  • جميع التعليمات البرمجية قابلة لإعادة الدخول تلقائيًا : لا يتعين على المبرمجين القيام بأي شيء إضافي لتوزيع أي تعليمات برمجية بأي لغة عبر المعالجات سوى استخدام العنصرين الأساسيين البسيطين الموضحين.
  • دعم نظام التشغيل (MCP، برنامج التحكم الرئيسي )
  • دعم المعالجة المتعددة غير المتماثلة (رئيسي/تابع)
  • محاولة لإنشاء بنية آمنة تمنع الوصول غير المصرح به إلى البيانات أو تعطيل العمليات [ ملاحظة 2 ]
  • الكشف المبكر عن الأخطاء لدعم تطوير واختبار البرمجيات
  • تطبيق تجاري للذاكرة الافتراضية، لم يسبقه سوى فيرانتي أطلس .
  • نموذج الذاكرة المجزأ الأول

تصميم النظام

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

يحتوي كل من B5000 وB5500 وB5700 في وضع الكلمة على نمطين مختلفين للعنونة، وذلك بحسب ما إذا كان يُنفذ برنامجًا رئيسيًا (SALF مُعطل) أو روتينًا فرعيًا (SALF مُفعل). بالنسبة للبرنامج الرئيسي، يكون حقل T في مقطع استدعاء المعامل أو استدعاء الوصف نسبيًا إلى جدول مرجع البرنامج (PRT). أما بالنسبة للروتينات الفرعية، فيعتمد نوع العنونة على البتات الثلاثة العليا من T وعلى قلاب علامة المكدس ( MSFF)، كما هو موضح في قسم العنونة النسبية لـ B5x00 .

B5x00 العنونة النسبية [ 6 ]
سالف [ أ ]T0 A38T1 A39T2 A40MSFF [ ب ]قاعدةمحتوياتعلامة الفهرسبتات الفهرسة [ ج ]مؤشر ماكس
عنRعنوان PRT+T 0-9 A 38-471023
علىعنRعنوان PRT+T 1-9 A 39-47511
علىعلىعنعنFعنوان آخر RCW [ d ] أو MSCW [ e ] على المكدس+T 2-9 A 40-47255
علىعلىعنعلى(R+7) [ f ]سجل F من MSCW [ e ] في PRT+7+T 2-9 A 40-47255
علىعلىعلىعنج [ ز ]عنوان كلمة التعليمات الحالية+T 3-9 A 41-47127
علىعلىعلىعلىعنFعنوان آخر RCW [ d ] أو MSCW [ e ] على المكدسT 3-9 A 41-47127
علىعلىعلىعلىعلى(R+7) [ f ]سجل F من MSCW [ e ] في PRT+7T 3-9 A 41-47127
ملحوظات:
  1. SALF مستوى الروتين الفرعي Flipflop
  2. قلاب مارك ستاك MSFF
  3. بالنسبة لمقاطع استدعاء المعامل (OPDC) واستدعاء الواصف (DESC)، يكون العنوان النسبي هو البتات من 0 إلى 9 (سجل T) من المقطع. أما بالنسبة لمعاملات التخزين (CID، CND، ISD، ISN، STD، STN)، فيحتوي السجل A (أعلى المكدس) على عنوان مطلق إذا كانت بتة العلم مضبوطة، وعنوان نسبي إذا كانت بتة العلم غير مضبوطة.
  4. 1 2 RCW كلمة التحكم في الإرجاع 
  5. 1 2 3 4 MSCW Mark Stack Control Word
  6. سجل 1 2 F من MSCW في PRT+7
  7. C ( كلمة التعليمات الحالية) - نسبةً إلى R (PRT) - نسبةً إلى عوامل التخزين والبرمجة وتحرير الإدخال/الإخراج

الدعم اللغوي

صُمم جهاز B5000 لدعم لغات البرمجة عالية المستوى حصريًا. كان ذلك في وقت بدأت فيه هذه اللغات بالبروز مع لغتي فورتران ثم كوبول . اعتبر البعض لغتي فورتران وكوبول أضعف من حيث تقنيات البرمجيات الحديثة، لذا تم اعتماد لغة أحدث، لم تكن قد جُرّبت بشكل كافٍ، وهي ALGOL-60 . كانت لهجة ALGOL المختارة لجهاز B5000 هي Elliott ALGOL ، التي صممها ونفذها كار هوار لأول مرة على جهاز Elliott 503. كانت هذه امتدادًا عمليًا للغة ALGOL مع تعليمات الإدخال/الإخراج (التي تجاهلتها ALGOL) وتعليمات معالجة سلاسل نصية قوية. وقد ألقى هوار محاضرته الشهيرة عند استلام جائزة تورينج حول هذا الموضوع.

وهكذا، استند جهاز B5000 إلى لغة برمجة بالغة القوة. كان دونالد كنوث قد قام بتطبيق لغة ALGOL 58 على جهاز Burroughs سابق خلال عطلته الصيفية التي استمرت ثلاثة أشهر، وشارك بشكل غير مباشر في تصميم B5000 كمستشار. استبعد الكثيرون لغة ALGOL، معتقدين خطأً أن لغات البرمجة عالية المستوى لا يمكن أن تتمتع بنفس قوة لغة التجميع، وبالتالي لم يدركوا إمكانات ALGOL كلغة برمجة أنظمة .

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

كان مُترجم بوروز القوي للغة كوبول مُترجمًا أحادي المرور وسريعًا بنفس القدر. كان برنامج كوبول ذو 4000 بطاقة يُترجم بنفس سرعة قارئات البطاقات التي تبلغ سرعتها 1000 بطاقة في الدقيقة. وكان البرنامج جاهزًا للاستخدام فور مرور البطاقات عبر القارئ.

الشكل 4.5 من دراسة ACM في المراجع. إليوت أورجانيك 1973.

B6500 وB6700/B7700 والطرازات اللاحقة

كان جهازا B6500 [ 7 ] (الذي تم تسليمه عام 1969 [ 8 ] [ 9 ] ) وB7500 أول حاسوبين من سلسلة أنظمة بوروز الوحيدة التي استمرت حتى يومنا هذا. ورغم استلهامهما من جهاز B5000، إلا أنهما تميزا ببنية جديدة كليًا. ومن أبرز الاختلافات بينهما ما يلي:

ومن بين عملاء B6700 و B7700 الآخرين جميع الجامعات الخمس في نيوزيلندا في عام 1971. [ 11 ]

استخدم الحاسوب العملاق ILLIAC IV جهاز B6500 كـ "حاسوب تحكم الإدخال/الإخراج"، حيث قام بأداء وظائف الإشراف على ILLIAC IV وإعداد وبدء عمليات الإدخال/الإخراج من وإلى ذاكرة ILLIAC IV. [ 12 ]

B8500

يستمد خط B8500 [ 1 ] [ 2 ] من D825، [ 13 ] وهو جهاز كمبيوتر عسكري مستوحى من B5000.

صُمم جهاز B8500 في ستينيات القرن العشرين كمحاولة لدمج تصميمي B5500 وD825. استخدم النظام دوائر متكاملة أحادية مع ذاكرة رقيقة مغناطيسية . اعتمدت بنيته على كلمة 48 بت، ومكدس، ومُعرّفات مثل B5500، لكن لم يُعلن عنه على أنه قابل للتحديث. [ 1 ] لم يُفلح تشغيل B8500 بشكل موثوق، وأُلغي المشروع بعد عام 1970، دون أن يُقدّم نظامًا مكتملًا. [ 2 ]

تاريخ

ظهر المفهوم الأساسي للذاكرة الافتراضية في تصميمات حاسوب فيرانتي أطلس وحاسوب معهد رايس ، بينما ظهرت المفاهيم الأساسية للواصفات والبنية الموسومة في تصميم حاسوب معهد رايس [ 14 ] في أواخر خمسينيات القرن العشرين. ومع ذلك، حتى وإن كان لتلك التصميمات تأثير مباشر على بوروز، فإن بنى الحواسيب B5000 وB6500 وB8500 كانت مختلفة تمامًا عن بنى حاسوبي أطلس ورايس، بل إنها تختلف اختلافًا كبيرًا فيما بينها أيضًا.

كان أول نظام كبير من أنظمة بوروز هو B5000. صُمم عام 1961، وكان حاسوبًا من الجيل الثاني يستخدم منطق الترانزستور المنفصل وذاكرة النواة المغناطيسية ، وتلاه B5500 وB5700. أول الأجهزة التي حلت محل بنية B5000 كانت B6500 وB7500. اتبعت الأجهزة اللاحقة لـ B6500 وB7500 اتجاهات تطوير الأجهزة لإعادة تنفيذ البنى بمنطق جديد على مدى السنوات الخمس والعشرين التالية، مع B6500 وB7500 وB6700 وB7700 وB6800 وB7800 وB5900 وB7900، وأخيرًا سلسلة بوروز A. بعد اندماج استحوذت فيه بوروز على شركة سبيري وغيرت اسمها إلى يونيسيس ، واصلت الشركة تطوير أجهزة جديدة تعتمد على شريحة MCP CMOS ASIC . كانت هذه الأجهزة هي Libra 100 إلى Libra 500، مع الإعلان عن Libra 590 في عام 2005. وتضمنت أجهزة Libra اللاحقة، بما في ذلك 590، معالجات Intel Xeon، ويمكنها تشغيل بنية Burroughs للأنظمة الكبيرة في وضع المحاكاة، بالإضافة إلى تشغيلها على معالجات MCP CMOS. ولا يزال من غير الواضح ما إذا كانت Unisys ستواصل تطوير دوائر متكاملة خاصة بالتطبيقات (ASICs) جديدة بتقنية MCP CMOS.

بوروز (1961–1986)
B50001961النظام الأولي، حاسوب من الجيل الثاني (ترانزستور)
B55001964تحسين السرعة بمقدار 3 أضعاف [ 2 ] [ 15 ]
B65001969حاسوب من الجيل الثالث (دوائر متكاملة)، يصل إلى 4 معالجات
B57001971الاسم الجديد لـ B5500
B67001971اسم جديد/إصلاح خلل في B6500
B77001972معالج أسرع، وذاكرة تخزين مؤقتة للمكدس، وما يصل إلى 8 معالجات طلب (معالجات الإدخال/الإخراج أو المعالجات المركزية) في قسم واحد أو قسمين.
B68001977؟ذاكرة أشباه الموصلات، بنية NUMA
B78001977؟ذاكرة أشباه الموصلات، أسرع، تصل إلى 8 معالجات (معالجات الإدخال/الإخراج أو المعالجات المركزية) في قسم واحد أو قسمين.
B69001979؟ذاكرة أشباه الموصلات، بنية NUMA . الحد الأقصى لأربعة معالجات B6900 مرتبطة بذاكرة محلية وذاكرة عالمية مشتركة
B59001981ذاكرة أشباه الموصلات، بنية NUMA . الحد الأقصى لأربعة معالجات B5900 مرتبطة بذاكرة محلية وذاكرة عالمية مشتركة من النوع الثاني.
B79001982؟ذاكرة أشباه الموصلات، أسرع، ذاكرة تخزين مؤقتة للبرامج والبيانات، بنية NUMA ،

1-2 وحدة معالجة مركزية (إدخال/إخراج)، 1-2 نقطة وصول، 1-4 وحدة معالجة مركزية، سمح التنفيذ البرمجي لذاكرة NUMA لوحدات المعالجة المركزية بالتنقل من مساحة ذاكرة إلى أخرى.

A9/A101984فئة B6000، أول معالج ذو بنية خطية في الفئة المتوسطة، وحدة معالجة مركزية واحدة (ثنائية في A10)، أول معالج يدعم وضع eMode Beta (عنونة الذاكرة الموسعة).
A12/A151985فئة B7000، أعيد تنفيذها في مصفوفات البوابات المصممة خصيصًا من موتورولا ECL MCA1، ثم MCA2 ، وحدة معالجة مركزية واحدة ووحدة معالجة مركزية واحدة (A12) 1-4 وحدة معالجة مركزية، 1-2 وحدة معالجة مركزية (A15)
يونيسيس (1986–حتى الآن)
مايكرو أ1989حاسوب مكتبي "مركزي" بمعالج SCAMP أحادي الشريحة [ 16 ] [ 17 ] [ 18 ] .
Clearpath HMP NX 40001996؟؟ [ 19 ] [ 20 ]
Clearpath HMP NX 50001996؟؟ [ 19 ] [ 20 ]
Clearpath HMP LX 50001998ينفذ أنظمة بوروز الكبيرة في المحاكاة فقط ( معالجات Xeon ) [ 21 ]
الميزان ١٠٠2002؟??
الميزان 200200؟??
الميزان 300200؟??
الميزان 400200؟??
الميزان 5002005؟مثال: الميزان 595 [ 22 ]
الميزان 6002006؟??
الميزان 7002010مثال: برج الميزان 750 [ 23 ]

خطوط الأجهزة الرئيسية

تم تقسيم تصميم وتطوير وتصنيع الأجهزة والبرامج بين موقعين رئيسيين، أحدهما في مقاطعة أورانج بولاية كاليفورنيا ، والآخر في ضواحي فيلادلفيا . كان مصنع الأنظمة الكبيرة الأولي، الذي طور طرازي B5000 وB5500، يقع في باسادينا بولاية كاليفورنيا، ثم انتقل إلى مدينة إندستري بولاية كاليفورنيا ، حيث طور طراز B6500. أما موقع مقاطعة أورانج، الذي كان مقره في مصنع بمدينة ميشن فيجو بولاية كاليفورنيا، ولكنه ضم أحيانًا مرافق في مدينتي إرفاين وليك فورست المجاورتين ، فكان مسؤولاً عن خط إنتاج طراز B6x00 الأصغر حجمًا، بينما تولت عمليات الساحل الشرقي، ومقرها في تريديفيرين بولاية بنسلفانيا ، مسؤولية خط إنتاج طراز B7x00 الأكبر حجمًا. كانت جميع الأجهزة من كلا الخطين متوافقة تمامًا مع البرمجة الكائنية، مما يعني أنه يمكن تشغيل برنامج مُجمَّع على أحدهما على الآخر. احتوت الطرازات الأحدث والأكبر حجمًا على تعليمات غير مدعومة في الطرازات الأقدم والأبطأ، ولكن عند مواجهة تعليمات غير معروفة، كان الجهاز يستدعي وظيفة من نظام التشغيل لتفسيرها. تشمل الاختلافات الأخرى كيفية التعامل مع تبديل العمليات والإدخال/الإخراج، ووظائف الصيانة والتشغيل البارد. احتوت الأنظمة الأكبر حجمًا على جدولة عمليات الأجهزة ووحدات إدخال/إخراج أكثر كفاءة، ومعالجات صيانة ذات وظائف أعلى. عند استبدال طرازات Bxx00 بطرازات السلسلة A، احتُفظ بالاختلافات ولكن لم يعد من السهل تحديدها برقم الطراز.

ألغول

تُطبّق أنظمة بوروز الكبيرة بنى مكدسية مشتقة من لغة ALGOL . وكان نظام B5000 أول نظام قائم على المكدس.

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

لغة ALGOL المستخدمة في B5000 هي مجموعة فرعية موسعة من ALGOL. تتضمن تعليمات قوية لمعالجة السلاسل النصية، لكنها تستثني بعض بنيات ALGOL، ولا سيما المعاملات الرسمية غير المحددة. تؤدي آلية DEFINE وظيفة مشابهة لوظيفة #defines الموجودة في لغة C، ولكنها مُدمجة بالكامل في اللغة بدلاً من كونها مُعالجًا مُسبقًا. يُسهّل نوع بيانات EVENT التنسيق بين العمليات، وتُمكّن كتل ON FAULT من معالجة أخطاء البرنامج.

لا يتضمن مستوى المستخدم في لغة ALGOL العديد من البنى غير الآمنة التي يحتاجها نظام التشغيل وبرامج النظام الأخرى. يوفر مستويان من امتدادات اللغة هذه البنى الإضافية: ESPOL وNEWP لكتابة MCP والبرامج ذات الصلة، وDCALGOL وDMALGOL لتوفير امتدادات أكثر تحديدًا لأنواع معينة من برامج النظام.

إسبول ونيوب

في الأصل، كُتب نظام التشغيل B5000 MCP بلغة ESPOL ( لغة برمجة الأنظمة التنفيذية الموجهة ) وهي امتداد للغة ALGOL الموسعة. وقد وفرت هذه اللغة، وهي مجموعة فرعية من ALGOL 60 ، إمكانيات ما سيُعرف لاحقًا بلغة برمجة الأنظمة [ 24 ] أو لغة البرمجة عالية المستوى الموجهة للآلة (mohol)، مثل مقاطعة المعالج في نظام متعدد المعالجات ( كانت أنظمة Burroughs الكبيرة أنظمة متعددة المعالجات). استُخدمت ESPOL لكتابة برنامج التحكم الرئيسي (MCP) على أنظمة حاسوب Burroughs من B5000 إلى B6700. [ 25 ] [ 26 ] [ 27 ] وكان بإمكان مُترجم ESPOL أحادي المرور ترجمة أكثر من 250 سطرًا في الثانية.

استُبدلت هذه اللغة في منتصف إلى أواخر السبعينيات بلغة تُدعى NEWP. ورغم أن NEWP ربما كانت تعني ببساطة "لغة برمجة جديدة"، إلا أن هناك روايات عديدة تُحيط بالاسم. إحدى القصص الشائعة (وربما غير الموثقة) داخل شركة Burroughs في ذلك الوقت أشارت إلى أن الاسم مُشتق من عبارة " لا امتيازات لدخول دورات المياه التنفيذية ". وهناك رواية أخرى تقول إنه في عام 1976 تقريبًا، أطلق جون ماكلينتوك من شركة Burroughs (مهندس البرمجيات الذي كان يُطور NEWP) اسم "NEWP" على اللغة بعد أن سُئل، مرة أخرى، "هل لها اسم بعد؟" فأجاب "نيوووب"، واعتمد هذا الاسم. كانت NEWP أيضًا امتدادًا فرعيًا للغة ALGOL، لكنها كانت أكثر أمانًا من ESPOL، وتخلت عن بعض تعقيدات ALGOL قليلة الاستخدام. في الواقع، يرفض مُترجم NEWP جميع البنى غير الآمنة ما لم يتم تحديد كتلة برمجية مُعينة للسماح بتلك التعليمات. يوفر تحديد الكتل البرمجية آلية حماية متعددة المستويات.

تكون برامج NEWP التي تحتوي على بنيات غير آمنة غير قابلة للتنفيذ في البداية. يستطيع مسؤول أمن النظام "الموافقة" على هذه البرامج وجعلها قابلة للتنفيذ، لكن المستخدمين العاديين لا يستطيعون فعل ذلك. (حتى "المستخدمون المتميزون"، الذين يتمتعون عادةً بصلاحيات الجذر، قد لا يتمكنون من فعل ذلك اعتمادًا على الإعدادات التي يختارها الموقع). على الرغم من إمكانية استخدام NEWP لكتابة برامج عامة، واحتوائها على عدد من الميزات المصممة لمشاريع البرمجيات الكبيرة، إلا أنها لا تدعم كل ما تدعمه لغة ALGOL.

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

نظام التحكم في الرسائل (MCS) ونظام التحكم في الرسائل (DCALGOL)

في التطبيق الأصلي، استخدم النظام معالج اتصالات بيانات متخصصًا (DCP) مُلحقًا به لمعالجة إدخال وإخراج الرسائل من وإلى الأجهزة البعيدة. كان هذا المعالج عبارة عن حاسوب صغير 24 بت ذي بنية مسجلات تقليدية وقدرة إدخال/إخراج مادية للتعامل مع آلاف المحطات الطرفية البعيدة. كان معالج DCP وجهاز B6500 يتواصلان عبر رسائل في الذاكرة، تُعرف اليوم باسم الحزم، وكان نظام MCS يتولى معالجة هذه الرسائل على جانب جهاز B6500. في السنوات الأولى، كان معالج DCP مزودًا بمُجمِّع (Dacoma)، وبرنامج تطبيقي يُسمى DCPProgen مكتوب بلغة ALGOL الخاصة بجهاز B6500. لاحقًا، قام مُصرِّف NDL (لغة تعريف الشبكة) بإنشاء كود DCP وملف تعريف الشبكة (NDF). في النهاية، أدى تحديث لاحق إلى تطوير لغة ومُصرِّف NDLII اللذين استُخدما مع معالجي DCP من الطرازين 4 و5. كان هناك دالة ALGOL واحدة لكل نوع من تعليمات DCP، وعند استدعاء هذه الدالة، تُصدر بتات تعليمات DCP المقابلة إلى المخرج. كان برنامج DCP عبارة عن برنامج ALGOL يتألف من قائمة طويلة من استدعاءات هذه الدوال، واحدة لكل عبارة من عبارات لغة التجميع. وبشكل أساسي، كان ALGOL يعمل كمرحلة ماكرو في مُجمِّع الماكرو. المرحلة الأولى كانت مُترجم ALGOL؛ أما المرحلة الثانية فكانت تشغيل البرنامج الناتج (على B6500) والذي بدوره كان يُصدر الملف الثنائي لبرنامج DCP.

ابتداءً من أوائل ثمانينيات القرن العشرين، استُبدلت تقنية DCP بتقنية ICP (معالج الاتصالات المتكامل) التي وفرت اتصالاً عبر الشبكة المحلية (LAN) لنظام الحاسوب المركزي. وتم توصيل الأجهزة البعيدة، والخوادم/الحواسيب المركزية البعيدة، بالشبكة عبر أجهزة مستقلة تُسمى CP2000. صُممت أجهزة CP2000 لدعم عقد الشبكة في شبكة موزعة، حيث تم توصيل العقد باستخدام تقنية الشبكات BNAV2 (بنية شبكة بوروز، الإصدار الثاني). كانت BNAV2 مكافئًا وظيفيًا من بوروز لمنتج IBM SNA، ودعمت التشغيل البيني مع بيئات IBM في كلٍ من نمطي النقل PUT2 وPUT5. لم يتطلب تغيير أجهزة اتصالات البيانات الخارجية أي تغيير في برنامج MCS (نظام التحكم في الرسائل، المذكور أدناه).

عند الإدخال، تُمرر الرسائل من وحدة التحكم في البيانات (DCP) عبر ناقل داخلي إلى حزمة عمليات التحكم في الاتصالات (DCC) الخاصة بوحدة التحكم في البيانات (DCP). يتم بدء عملية DCC واحدة لكل وحدة DCP مُكوّنة على النظام. تضمن حزمة عمليات DCP وضع الرسالة الواردة في قائمة انتظار لتسليمها إلى وحدة التحكم في الاتصالات (MCS) المُخصصة لمعالجة حركة البيانات من جهاز المصدر، وإعادة أي استجابة إلى وحدة DCP لتسليمها إلى جهاز الوجهة. من ناحية المعالجة، لم تكن هناك حاجة إلى أي تغييرات في برنامج MCS للتعامل مع أنواع مختلفة من أجهزة البوابة، سواء كانت أيًا من أنماط DCP الخمسة أو وحدات التحكم في الاتصالات (ICP) أو تركيبات ICP/CP2000.

إلى جانب كونها خدمة توصيل رسائل، تُعدّ خدمة التحكم في الرسائل (MCS) مستوىً وسيطًا من الأمان بين كود نظام التشغيل (المكتوب بلغة NEWP) وبرامج المستخدم (المكتوبة بلغة ALGOL، أو لغات برمجة أخرى مثل COBOL وFORTRAN، وJAVA لاحقًا). يُمكن اعتبار خدمة التحكم في الرسائل برنامجًا وسيطًا ، وهي مكتوبة بلغة DCALGOL (لغة ALGOL للاتصالات). وكما ذُكر سابقًا، تستقبل خدمة التحكم في الرسائل الرسائل من قوائم الانتظار التي تُديرها حزمة التحكم في الاتصالات (DCC)، ثم تُعيد توجيه هذه الرسائل إلى التطبيق/الوظيفة المناسبة للمعالجة. من أوائل خدمات التحكم في الرسائل كانت CANDE (الأمر والتحرير)، والتي طُوّرت كبيئة لتطوير البرامج عبر الإنترنت. طوّرت جامعة أوتاغو في نيوزيلندا بيئة تطوير برامج مُصغّرة تُعادل CANDE، وأطلقت عليها اسم SCREAM/6700، وذلك في نفس الوقت الذي كانت فيه شركة IBM تُقدّم خدمة مشاركة الوقت/تطوير البرامج عن بُعد المعروفة باسم CALL/360، والتي كانت تعمل على أنظمة IBM من سلسلة 360. تم تقديم نظام تحكم في المعاملات (MCS) آخر يُدعى COMS حوالي عام 1984، وطُوّر كنظام تحكم عالي الأداء لمعالجة المعاملات . سبقته بيئات معالجة معاملات أخرى، منها GEMCOS (نظام التحكم في الرسائل المعمم)، ونظام تحكم في المعاملات (MCS) طورته شركة تابعة لشركة Burroughs الأسترالية يُدعى TPMCS (نظام التحكم في المعاملات). دعمت أنظمة التحكم في المعاملات هذه إيصال بيانات التطبيقات إلى بيئات الإنتاج المباشرة، وإعادة الردود إلى المستخدمين/الأجهزة/الأنظمة البعيدة.

تُعدّ أنظمة إدارة جلسات المستخدمين (MCSs) برامج جديرة بالاهتمام، فهي تتحكم في جلسات المستخدمين وتتيح تتبع حالتهم دون الحاجة إلى تشغيل عمليات لكل مستخدم على حدة، إذ يمكن مشاركة حزمة MCS واحدة بين العديد من المستخدمين. كما يُمكن تحقيق موازنة الأحمال على مستوى MCS. على سبيل المثال، إذا أردنا التعامل مع 30 مستخدمًا لكل حزمة، ففي هذه الحالة، إذا كان لدينا من 31 إلى 60 مستخدمًا، فسنحتاج إلى حزمتين، وإذا كان لدينا من 61 إلى 90 مستخدمًا، فسنحتاج إلى ثلاث حزم، وهكذا. يمنح هذا أجهزة B5000 ميزة أداء كبيرة في الخادم، إذ لا حاجة لبدء عملية مستخدم جديدة، وبالتالي إنشاء حزمة جديدة في كل مرة يتصل فيها مستخدم بالنظام. وبذلك، يُمكننا خدمة المستخدمين بكفاءة (سواء كانوا بحاجة إلى حالة أم لا) باستخدام أنظمة MCSs. كما تُشكّل أنظمة MCSs البنية التحتية لمعالجة المعاملات واسعة النطاق.

في حوالي عام ١٩٨٨، طُوِّر تطبيقٌ لبروتوكول TCP/IP بشكلٍ أساسي لعميلٍ حكومي أمريكي، باستخدام معالج الاتصالات الموزع CP2000 كمضيفٍ للبروتوكول. بعد ذلك بعامين أو ثلاثة أعوام، أُعيدت كتابة تطبيق TCP/IP ليصبح قائمًا على نموذج المضيف/الخادم، مع تحسيناتٍ كبيرة في الأداء والوظائف. في نفس الفترة الزمنية تقريبًا، طُوِّر تطبيقٌ لحزم بروتوكولات نموذج OSI، بشكلٍ أساسي على معالج CP2000، ولكن جرى أيضًا إنشاء بنية تحتية داعمة واسعة النطاق على النظام الرئيسي. شملت التطبيقات المُحدَّدة وفقًا لمعيار OSI جميع التطبيقات، بما في ذلك استضافة البريد الإلكتروني X.400 وخدمات الدليل X.500.

DMALGOL وقواعد البيانات

يُعدّ DMALGOL (لغة إدارة البيانات ALGOL) أحد أنواع لغة ALGOL. وهو عبارة عن امتداد للغة ALGOL يُستخدم لتجميع برنامج قاعدة بيانات DMSII من ملفات وصف قواعد البيانات التي يُنشئها مُجمِّع DASDL (لغة تعريف الوصول إلى البيانات وبنيتها). يقوم مصممو قواعد البيانات ومديروها بتجميع أوصاف قواعد البيانات لإنشاء كود DMALGOL مُصمَّم خصيصًا للجداول والفهارس المُحدَّدة. لا يحتاج المديرون أبدًا إلى كتابة كود DMALGOL بأنفسهم. تحصل برامج المستخدم العادية على إمكانية الوصول إلى قاعدة البيانات باستخدام كود مكتوب بلغات التطبيقات، وخاصةً ALGOL وCOBOL، مع إضافة تعليمات قاعدة البيانات وتوجيهات معالجة المعاملات. أبرز ما يُميِّز DMALGOL هو آليات المعالجة المُسبقة التي تُتيح إنشاء كود للتعامل مع الجداول والفهارس.

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

تُستخدم لغة DMALGOL لتوفير إجراءات وصول مُخصصة لقواعد بيانات DMSII . بعد تعريف قاعدة البيانات باستخدام لغة تعريف الوصول إلى البيانات وبنيتها (DASDL)، يقوم المعالج المسبق بترجمة المخطط إلى إجراءات وصول مُخصصة بلغة DMALGOL، ثم يتم تجميعها. هذا يعني أنه، على عكس تطبيقات أنظمة إدارة قواعد البيانات الأخرى، لا حاجة غالبًا إلى كتابة تعليمات برمجية شرطية (if/then/else) خاصة بقاعدة البيانات أثناء التشغيل. في سبعينيات القرن الماضي، استُخدم هذا "التخصيص" على نطاق واسع لتقليل حجم التعليمات البرمجية ووقت التنفيذ. وقد قلّ استخدامه بشكل ملحوظ في السنوات اللاحقة، ويعود ذلك جزئيًا إلى أن الضبط الدقيق للذاكرة والسرعة على مستوى منخفض أصبح أقل أهمية، وجزئيًا إلى أن إلغاء المعالجة المسبقة سهّل عملية البرمجة، مما أتاح إجراء تحسينات أكثر أهمية.

يُطلق على نسخة التطبيقات من لغة ALGOL، المُصممة لدعم الوصول إلى قواعد البيانات من برامج التطبيقات، اسم BDMSALGOL، وتتضمن أفعالًا مثل "FIND" و"LOCK" و"STORE" و"GET" و"PUT" للوصول إلى قواعد البيانات ومعالجة السجلات. بالإضافة إلى ذلك، تم تطبيق الفعلين "BEGINTRANSACTION" و"ENDTRANSACTION" لحل مشكلة التعطل عند وصول عمليات متعددة إلى نفس الهياكل وتحديثها.

كان روي جوك من شركة بوروز أحد المطورين الرئيسيين للعبة DMSII .

في السنوات اللاحقة، ومع تراجع أهمية حجم كود المُصرّف، أُتيحت معظم بنى المعالجة المسبقة في مستوى المستخدم في لغة ALGOL. أما البنى غير الآمنة والمعالجة المباشرة لملف وصف قاعدة البيانات، فما زالت مقتصرة على لغة DMALGOL.

بنية المكدس

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

تتميز خطوط الإنتاج B5000 وB6500 بكفاءة عالية في تعدد المهام . توجد تعليمات محددة لتنفيذ عمليات التبديل بين العمليات.

B5000، B5500، B5700
بدء P1 (IP1) وبدء P2 (IP2) [ 5 ] : 6-30
B6500 وB7500 وما يليها
MVST (نقل المكدس). [ 7 ] : 8-19 [ 28 ]

يمثل كل مكدس وجدول مرجع البرنامج (PRT) المرتبط به [ ملاحظة 5 ] عملية (مهمة أو خيطًا)، وقد تُعلق المهام في انتظار طلبات الموارد (بما في ذلك انتظار تشغيل المعالج إذا تمت مقاطعة المهمة بسبب تعدد المهام الاستباقي). لا يمكن لبرامج المستخدم إصدار IP1 [ ملاحظة 5 ] أو IP2 [ ملاحظة 5 ] أو MVST [ ملاحظة 6 ] ، ويتم ذلك في مكان واحد فقط في نظام التشغيل.

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

سرعة وأداء المكدس

كان أداء المكدس يُعتبر بطيئًا مقارنةً بالبنى القائمة على المسجلات، فعلى سبيل المثال، تمّت دراسة هذه البنية ورفضها في نظام System/360 . [ 29 ] إحدى طرق زيادة سرعة النظام هي إبقاء البيانات قريبة قدر الإمكان من المعالج. في مكدس B5000، تمّ ذلك بتخصيص الموضعين العلويين للمكدس لمسجلين A وB. تُنفّذ معظم العمليات على هذين الموضعين العلويين للمكدس. في الأجهزة الأسرع من B5000، قد يتمّ الاحتفاظ بجزء أكبر من المكدس في المسجلات أو الذاكرة المؤقتة بالقرب من المعالج.

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

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

في الواقع، تضمنت سلسلة A من خلفاء B5000 أول حاسوب مركزي أحادي الشريحة، وهو Micro-A في أواخر الثمانينيات. كانت شريحة "الحاسوب المركزي" هذه (المسماة SCAMP اختصارًا لـ Single-Chip A-series Mainframe Processor) مثبتة على لوحة كمبيوتر شخصي قابلة للتوصيل تعتمد على معالج Intel.

كيفية ربط البرامج بالمكدس

فيما يلي مثال على كيفية ربط البرامج ببنية المكدس

يبدأ — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — هذا هو المستوى المعجمي 2 (المستوى صفر مخصص لنظام التشغيل والمستوى 1 لقطاعات التعليمات البرمجية). — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — — في المستوى الثاني، نضع المتغيرات العامة لبرنامجنا. عدد صحيح i ، j ، k ؛ عدد حقيقي f ، g ؛ مصفوفة a [0:9]؛ الإجراء p ( حقيقي p1 ، p2القيمة p1 ؛ — تم تمرير p1 بالقيمة، وتمرير p2 ضمنيًا بالمرجع. ابدأ — — — — — — — — — — — — — — — — — — — هذه الكتلة تقع في المستوى المعجمي 3 — — — — — — — — — — — — — — — — — — حقيقي r1 ، r2 ؛ r2 := p1 * 5 ؛ p2 := r2 ؛ — هذا يُعيّن قيمة g إلى قيمة r2. p1 := r2 ؛ — هذا يُعيّن قيمة p1 إلى r2 ، ولكن ليس f . — بما أن هذا يُستبدل القيمة الأصلية لـ f في p1، فقد يكون ... — خطأ برمجي. لذلك، يصرّ بعض خلفاء لغة ALGOL على أن — يجب أن تكون معلمات القيمة للقراءة فقط - ولكن معظمها لا يكون كذلك. إذا كانت r2 > 10 فابدأ — — — — — — — — — — — — — — — — — — — — — — — — — — — — — متغير مُعلن هنا يجعل هذا المستوى المعجمي 4 — — — — — — — — — — — — — — — — — — — — — — — — — — — — عدد صحيح n ؛ — يؤدي تعريف متغير إلى إنشاء كتلة برمجية، والتي ستستدعي بعض العمليات. — كود بناء المكدس. عادةً لن تقوم بتعريف المتغيرات هنا، حيث — في هذه الحالة، ستكون عبارة مركبة، وليست كتلة. ... <== يتم تنفيذ نموذج المكدس في مكان ما هنا. نهاية ؛ نهاية ؛ ..... p ( f , g ); end .

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

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

إجراءات

يمكن استدعاء الإجراءات بأربع طرق - العادية، والاستدعاء، والمعالجة، والتشغيل.

يستدعي الاستدعاء العادي إجراءً بالطريقة العادية التي تستدعي بها أي لغة روتينًا، وذلك عن طريق تعليق الروتين المستدعي حتى يعود الإجراء المستدعى .

تستدعي آلية الاستدعاء إجراءً ما كروتين فرعي. والروتينات الفرعية هي مهام مشتركة تُنشأ ككيانات متزامنة تعمل في مكدسها الخاص على نفس المستوى المعجمي للعملية المُنشئة. ويتم نقل التحكم بشكل صريح بين العملية المُنشئة والروتين الفرعي باستخدام تعليمة CONTINUE .

تستدعي آلية المعالجة إجراءً كعملية غير متزامنة، مع إنشاء مكدس منفصل يبدأ من المستوى المعجمي للعملية المُعالجة. وباعتبارها عملية غير متزامنة، لا يوجد تحكم دقيق في توقيت انتقال التحكم بين العمليات، على عكس العمليات الفرعية. مع ذلك، يظل بإمكان العملية المُعالجة الوصول إلى البيئة المحيطة، مما يجعل هذه الآلية وسيلة فعّالة للغاية للتواصل بين العمليات (IPC). ولأن عمليتين أو أكثر باتتا تستخدمان متغيرات مشتركة، يجب مزامنة هذه العمليات لتجنب حالات التزامن غير المتوقعة، وهو ما يتم التعامل معه بواسطة نوع بيانات EVENT، حيث يمكن للعمليات الانتظار (WAIT) على حدث واحد أو أكثر حتى يتسبب به عملية أخرى متعاونة. كما تتيح الأحداث (EVENTs) مزامنة الاستبعاد المتبادل من خلال الدالتين PROCURE وLIBERATE. إذا توقفت العملية الفرعية لأي سبب، يمكن للعملية المُستدعِية الاستمرار، ولكن إذا توقفت العملية الأصلية، فسيتم إنهاء جميع العمليات الفرعية تلقائيًا. على جهاز يحتوي على أكثر من معالج، قد تعمل العمليات في وقت واحد. تُعد آلية EVENT هذه عاملًا أساسيًا لتمكين المعالجة المتعددة بالإضافة إلى تعدد المهام.

نوع استدعاء التشغيل

نوع الاستدعاء الأخير هو " تشغيل" . يقوم هذا النوع بتشغيل إجراء كمهمة مستقلة يمكنها الاستمرار بعد انتهاء العملية الأصلية. ولهذا السبب، لا يمكن للعملية الفرعية الوصول إلى المتغيرات في بيئة العملية الأصلية، ويجب أن تكون جميع المعاملات المُمرَّرة إلى الإجراء المُستدعى من نوع "استدعاء بالقيمة".

وهكذا، امتلكت لغة Burroughs Extended ALGOL بعض ميزات المعالجة المتعددة والتزامن الموجودة في لغات لاحقة مثل Ada . وقد استفادت من دعم العمليات غير المتزامنة المدمج في الأجهزة.

الإجراءات المضمنة

ثمة احتمال أخير يتمثل في إمكانية تعريف إجراء في NEWP على أنه INLINE ، أي عندما يرى المترجم مرجعًا إليه، يتم توليد شيفرة الإجراء مباشرةً داخل الكود لتوفير تكلفة استدعاء الإجراء؛ ويُفضل استخدام هذه الطريقة مع أجزاء الشيفرة الصغيرة. تشبه الدوال المضمنة وحدات الماكرو المُعاملة مثل تعريفات C #، إلا أنها لا تُسبب مشاكل المعاملات التي قد تحدث مع وحدات الماكرو.

المكالمات غير المتزامنة

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

سجلات العرض

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

لنفترض أننا نستطيع الوصول إلى متغير عام من المستوى المعجمي الثاني (D[2]) من المستوى المعجمي الخامس (D[5]). لنفترض أن المتغير يبعد ست كلمات عن قاعدة المستوى المعجمي الثاني، وبالتالي يُمثَّل بزوج العنوان (2، 6). إذا لم تتوفر لدينا سجلات D، فعلينا البحث في كلمة التحكم عند قاعدة إطار D[5]، والتي تشير إلى الإطار الذي يحتوي على بيئة D[4]. ثم نبحث في كلمة التحكم عند قاعدة هذه البيئة للعثور على بيئة D[3]، ونستمر بهذه الطريقة حتى نتتبع جميع الروابط عائدين إلى المستوى المعجمي المطلوب. هذا المسار يختلف عن مسار العودة عبر الإجراءات التي تم استدعاؤها للوصول إلى هذه النقطة. (يحافظ التصميم على كل من مكدس البيانات ومكدس الاستدعاءات في نفس البنية، ولكنه يستخدم كلمات التحكم للتمييز بينهما).

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

بيانات علامة D — عنوان الزوجين، التعليقات يسجل
| 0 | n | (4, 1) العدد الصحيح n (يتم الإعلان عنه عند الدخول إلى كتلة، وليس إجراءً) |-----------------------| | D[4]==>3 | MSCW | (4, 0) كلمة التحكم في مكدس العلامات التي تحتوي على الرابط إلى D[3]. |=======================| | 0 | r2 | (3, 5) r2 الحقيقي |-----------------------| | 0 | r1 | (3, 4) r1 الحقيقي |-----------------------| | 1 | p2 | (3, 3) مرجع SIRW إلى g عند (2,6) |-----------------------| | 0 | p1 | (3, 2) المعامل p1 من قيمة f |-----------------------| | 3 | RCW | (3, 1) كلمة تحكم للإرجاع |-----------------------| | D[3]==>3 | MSCW | (3, 0) كلمة التحكم في مكدس العلامات التي تحتوي على الرابط إلى D[2]. |=======================| | 1 | a | (2, 7) المصفوفة a ======>[كتلة ذاكرة من عشر كلمات] |-----------------------| | 0 | g | (2, 6) قيمة g الحقيقية |-----------------------| | 0 | f | (2, 5) العدد الحقيقي f |-----------------------| | 0 | k | (2, 4) العدد الصحيح k |-----------------------| | 0 | j | (2, 3) العدد الصحيح j |-----------------------| | 0 | i | (2, 2) العدد الصحيح i |-----------------------| | 3 | RCW | (2, 1) كلمة تحكم الإرجاع |-----------------------| | D[2]==>3 | MSCW | (2, 0) كلمة التحكم في مكدس العلامات التي تحتوي على الرابط إلى إطار المكدس السابق. |=======================| — قاعدة المكدس

لو استدعينا الإجراء p كروتين فرعي، أو كتعليمات عملية، لأصبحت بيئة D[3] مكدسًا منفصلاً قائمًا على D[3]. هذا يعني أن العمليات غير المتزامنة لا تزال قادرة على الوصول إلى بيئة D[2] كما هو مُضمّن في كود برنامج ALGOL. وبالنظر إلى هذا الأمر بشكل أعمق، يمكن لبرنامج مختلف تمامًا استدعاء كود برنامج آخر، مما يُنشئ إطار مكدس D[3] يُشير إلى بيئة D[2] الخاصة بعملية أخرى فوق مكدس العملية الخاص به. في لحظة، يتغير نطاق العناوين بالكامل من بيئة تنفيذ الكود، مما يجعل بيئة D[2] في مكدس العملية غير قابلة للعنونة المباشرة، بينما تصبح بيئة D[2] في مكدس عملية أخرى قابلة للعنونة المباشرة. هكذا تُنفَّذ استدعاءات المكتبات. في مثل هذا الاستدعاء عبر المكدس، قد يكون الكود المُستدعي والكود المُستدعى من برامج مكتوبة بلغات مصدر مختلفة، ويتم تجميعها بواسطة مُجمِّعات مختلفة.

لا تظهر بيئتا D[1] و D[0] في مكدس العملية الحالية. بيئة D[1] هي قاموس مقاطع التعليمات البرمجية، وهو مشترك بين جميع العمليات التي تُشغّل نفس التعليمات البرمجية. أما بيئة D[0] فتمثل الكيانات التي يُصدّرها نظام التشغيل.

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

في أنظمة أخرى، قد يُنشئ المُصرّف جدول الرموز بطريقة مماثلة، ولكن في النهاية تُجمع متطلبات التخزين ويُكتب رمز الآلة لاستخدام عناوين ذاكرة مسطحة من 16 بت أو 32 بت أو حتى 64 بت. قد تحتوي هذه العناوين على أي شيء، لذا فإن الكتابة إلى عنوان خاطئ قد تُلحق الضرر بأي شيء. بدلاً من ذلك، تم تنفيذ نظام العناوين ثنائي الأجزاء بواسطة العتاد. في كل مستوى معجمي، وُضعت المتغيرات على مسافات أعلى من قاعدة مكدس المستوى، وتشغل عادةً كلمة واحدة - بينما تشغل المتغيرات ذات الدقة المزدوجة أو المُركبة كلمتين. لم تُخزن المصفوفات في هذه المنطقة، بل وُضع فقط مُعرّف من كلمة واحدة للمصفوفة. وبالتالي، في كل مستوى معجمي، لم يكن إجمالي متطلبات التخزين كبيرًا: عشرات أو مئات أو بضعة آلاف في الحالات القصوى، وبالتأكيد ليس عددًا يتطلب 32 بت أو أكثر. وبالفعل، انعكس هذا في شكل تعليمة VALC (استدعاء القيمة) التي تُحمّل مُعاملًا على المكدس. كان رمز العملية هذا بطول بتين، وتم دمج بقية بتات البايت مع البايت التالي لتكوين حقل عنونة من 14 بت. يتم تنفيذ الكود على مستوى معجمي معين، ولنقل المستوى السادس: هذا يعني أن المستويات المعجمية الصالحة هي من صفر إلى ستة فقط، وبالتالي يلزم ثلاثة بتات فقط لتحديد المستوى المعجمي المطلوب. لذا، يحجز جزء العنوان من عملية VALC ثلاثة بتات فقط لهذا الغرض، بينما تكون البتات المتبقية متاحة للإشارة إلى الكيانات في هذا المستوى والمستويات الأدنى. أما الإجراء المتداخل بعمق (أي على مستوى معجمي عالٍ) فيحتوي على عدد أقل من البتات المتاحة لتحديد الكيانات: فبالنسبة للمستوى السادس عشر فما فوق، يلزم خمسة بتات لتحديد اختيار المستويات من 0 إلى 31، مما يترك تسعة بتات لتحديد أول 512 كيانًا كحد أقصى من أي مستوى معجمي. يُعد هذا أكثر إيجازًا بكثير من عنونة الكيانات باستخدام عناوين ذاكرتها الحرفية في مساحة عنونة من 32 بت. علاوة على ذلك، فإن رمز العملية VALC فقط هو الذي قام بتحميل البيانات: لم تقم رموز العمليات الخاصة بـ ADD و MULT وما إلى ذلك بأي عنونة، حيث كانت تعمل بالكامل على العناصر العليا من المكدس.

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

تخزين المصفوفة

لم تُخزَّن المصفوفات بشكل متجاور في الذاكرة مع المتغيرات الأخرى، بل مُنحت كل مصفوفة مساحة عنوان خاصة بها، يتم تحديد موقعها عبر المُعرِّف. وتتمثل آلية الوصول في حساب متغير الفهرس على المكدس (والذي بالتالي يمتلك نطاق الأعداد الصحيحة الكامل، وليس فقط 14 بتًا) واستخدامه كإزاحة في مساحة عنوان المصفوفة، مع التحقق من الحدود الذي توفره وحدة المعالجة. افتراضيًا، إذا تجاوز طول المصفوفة 1024 كلمة، فسيتم تقسيمها، وسيتم تحويل الفهرس إلى فهرس مقطع وإزاحة في المقطع المفهرس. ومع ذلك، كان هناك خيار لمنع التقسيم عن طريق تحديد المصفوفة كـ LONG في التصريح. في حالة ALGOL، تستخدم المصفوفة متعددة الأبعاد مستويات متعددة من هذه العنونة. للإشارة إلى A[i,j]، يكون الفهرس الأول في مصفوفة من المُعرِّفات، مُعرِّف واحد لكل صف من صفوف A، ويتم فهرسة هذا الصف بالقيمة j كما هو الحال في المصفوفة أحادية البعد، وهكذا بالنسبة للأبعاد الأعلى. سيؤدي التحقق من الأجهزة مقابل الحدود المعروفة لجميع مؤشرات المصفوفة إلى منع الفهرسة الخاطئة.

مع ذلك، تعتبر لغة فورتران جميع المصفوفات متعددة الأبعاد مكافئة لمصفوفة أحادية البعد بنفس الحجم، وتستخدم عمليات حسابية بسيطة للأعداد الصحيحة لحساب الإزاحة التي يُحتمل وجود العنصر A[i,j,k] فيها ضمن التسلسل الواحد. ثم يتم الوصول إلى المصفوفة المكافئة أحادية البعد، والتي قد تكون مجزأة إذا كانت كبيرة بما يكفي، بنفس طريقة الوصول إلى المصفوفة أحادية البعد في لغة ألغول. وعلى الرغم من منع الوصول إلى عناصر خارج هذه المصفوفة، إلا أن قيمة خاطئة لأحد المؤشرات، مقترنة بقيمة خاطئة مماثلة لمؤشر آخر، قد لا تؤدي إلى تجاوز حدود مصفوفة التسلسل الواحد؛ أي أن المؤشرات لا تُفحص بشكل فردي.

نظرًا لأن مساحة تخزين المصفوفة لم تكن محدودة من كل جانب بمساحة تخزين العناصر الأخرى، كان من السهل على النظام "تغيير حجم" المصفوفة، مع أن تغيير عدد الأبعاد كان مستحيلاً لأن المترجمات تتطلب أن يكون لجميع المراجع نفس عدد الأبعاد. في حالة لغة ALGOL، مكّن هذا من تطوير المصفوفات "غير المنتظمة"، بدلاً من المصفوفات المستطيلة الثابتة المعتادة (أو ذات الأبعاد الأعلى). وبالتالي، في بُعدين، تحتوي المصفوفة غير المنتظمة على صفوف بأحجام مختلفة. على سبيل المثال، إذا كانت لدينا مصفوفة كبيرة A[100,100] ذات قيم صفرية في الغالب، فإن تمثيل المصفوفة المتفرقة المُعلن عنها كـ SA[100,0] يمكن تغيير حجم كل صف فيها ليحتوي على عدد كافٍ من العناصر لاستيعاب القيم غير الصفرية فقط من A على طول ذلك الصف.

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

يدعم النظام أيضًا تكافؤ المصفوفات. يتطلب تعريف المصفوفة تخصيص كلمات بيانات بطول 48 بت، والتي يمكن استخدامها لتخزين أي نمط بت، ولكن الممارسة التشغيلية العامة هي اعتبار كل كلمة مُخصصة مُعاملًا حقيقيًا (REAL). تعريف:

 المصفوفة أ [0:99]

طلب تخصيص 100 كلمة من نوع بيانات REAL في الذاكرة. ويمكن للمبرمج أيضًا تحديد أن الذاكرة قد تُشار إليها كبيانات حرفية باستخدام تعريف التكافؤ التالي:

 مصفوفة EBCDIC EA [0] = A [*];

أو كبيانات سداسية عشرية عبر إعلان التكافؤ:

 HEX ARRAY HA [0] = A [*];

أو كبيانات ASCII عبر إعلان التكافؤ:

 مصفوفة ASCII AA [0] = A[*];

كما يدعم النظام إمكانية طلب مصفوفات خاصة بنوع البيانات دون الحاجة إلى معادلتها، على سبيل المثال

 مصفوفة EBCDIC MY_EA [0:99]

طلب النظام تخصيص مصفوفة من 100 حرف. وبما أن بنية النظام تعتمد على الكلمات، فإن المساحة الفعلية المخصصة هي عدد الأحرف المطلوبة مقربةً إلى أقرب عدد صحيح من حدود الكلمة.

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

كما يتم دعم المصفوفات المنطقية ويمكن استخدامها كمتجه بت. ويمكن أيضًا طلب مصفوفات الأعداد الصحيحة.

تستخدم المناقشة السابقة مباشرة تطبيق بناء جملة ALGOL لوصف إعلانات ARRAY، ولكن يتم دعم نفس الوظائف في COBOL و FORTRAN.

مزايا بنية التراص

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

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

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

تم توفير مساحة التخزين اللازمة للعمليات المتعددة من ذاكرة النظام حسب الحاجة. لم تكن هناك حاجة لإجراء عمليات SYSGEN على أنظمة Burroughs كما هو الحال مع الأنظمة المنافسة لتهيئة أقسام الذاكرة مسبقًا لتشغيل المهام.

الهندسة المعمارية المصنفة

إن أبرز ما يميز جهاز B5000 هو كونه جهازًا يعتمد على بنية المكدس كما سبق ذكره. ومع ذلك، هناك سمتان مهمتان أخريان في هذه البنية، وهما اعتمادها على الوسوم والوصف.

في بروتوكول B5000 الأصلي، تم تخصيص بتة علامة في كل كلمة تحكم أو كلمة رقمية [ ملاحظة 7 ] لتحديد ما إذا كانت الكلمة كلمة تحكم أم كلمة رقمية. وكان هذا جزئيًا آلية أمان لمنع البرامج من إتلاف كلمات التحكم في المكدس.

لاحقًا، عند تصميم B6500، تبيّن أن التمييز بين كلمة التحكم والقيمة الرقمية (بت واحد) فكرةٌ فعّالة، فتم توسيعها لتشمل ثلاثة بتات خارج الكلمة المكونة من 48 بت، ضمن علامة. بتات البيانات هي البتات من 0 إلى 47، بينما تقع العلامة في البتات من 48 إلى 50. البت 48 هو بت القراءة فقط، لذا تشير العلامات الفردية إلى كلمات التحكم التي لا يمكن لبرنامج المستخدم كتابتها. أما كلمات الترميز، فكانت تحمل العلامة 3. فيما يلي قائمة بالعلامات ووظائفها:

الوسمنوع الكلمةوصف
0بياناتجميع أنواع بيانات المستخدم والنظام (بيانات نصية وأرقام أحادية الدقة)
2مزدوجبيانات الدقة المزدوجة
4SIWكلمة فهرس الخطوة (المستخدمة في الحلقات)
6بيانات غير مهيأة
SCWكلمة التحكم البرمجية (تستخدم لتقليل حجم المكدس)
1IRWكلمة مرجعية غير مباشرة
SIRWكلمة مرجعية غير مباشرة محشوة
3شفرةكلمة رمز البرنامج
ماجستير في الخدمة الاجتماعيةكلمة التحكم في مكدس العلامات
قانون ولاية واشنطنكلمة التحكم في الإرجاع
TOSCWكلمة التحكم في أعلى المكدس
SDواصف القطاع
5الواصفواصفات كتلة البيانات
7PCWكلمة التحكم في البرنامج

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

يتميز الإصدار الحالي من هذه الأجهزة، وهو جهاز Unisys ClearPath، بتوسيع نطاق الوسوم لتشمل أربعة بتات. ويُشار إلى مستوى الشفرة الدقيقة الذي يحدد الوسوم ذات الأربعة بتات باسم المستوى غاما.

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

تمثل الكلمات من النوع الأول عناوين البيانات الموجودة على المكدس. يخزن سجل IRW العادي ببساطة زوجًا من العناوين للبيانات الموجودة على المكدس الحالي. يشير سجل SIRW إلى البيانات الموجودة على أي مكدس عن طريق تضمين رقم المكدس في العنوان. من بين أمور أخرى، تُستخدم سجلات SIRW لتوفير العنونة بين مكدسات العمليات المنفصلة، ​​مثل تلك التي يتم إنشاؤها استجابةً لعبارتي CALL و PROCESS .

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

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

يمثل الوسم 3 كلمات الترميز نفسها، والتي لن تظهر في مكدس الذاكرة. ويُستخدم الوسم 3 أيضًا لكلمات التحكم في مكدس الذاكرة MSCW وRCW وTOSCW.

الشكل 9.2 من دراسة ACM في المراجع. إليوت أورجانيك 1973.

بنية قائمة على الواصفات

يوضح الشكل الموجود على اليسار كيف كانت بنية نظام بوروز الكبير في الأساس بنية أجهزة للبرمجة الموجهة للكائنات ، وهو أمر لا يزال غير موجود في البنى التقليدية.

مجموعات التعليمات

توجد ثلاث مجموعات تعليمات متميزة لأنظمة بوروز الكبيرة. وتعتمد جميعها على مقاطع لفظية قصيرة تتناسب بشكل متساوٍ مع الكلمات.

B5000 و B5500 و B5700

تتكون البرامج على معالجات B5000 وB5500 وB5700 من مقاطع صوتية طول كل منها 12 بت ، أربعة مقاطع لكل كلمة. يحتوي هذا المعالج على نمطين: نمط الكلمة ونمط الحرف، ولكل نمط مجموعة مقاطع صوتية خاصة به. يمكن أن يكون المعالج في حالة التحكم أو الحالة العادية، وتُسمح بعض المقاطع الصوتية فقط في حالة التحكم. لا يوفر هذا المعالج إمكانية عنونة السجلات أو التخزين مباشرةً؛ بل تتم جميع المراجع من خلال جدول مرجع البرنامج ذي 1024 كلمة، أو مقطع التعليمات البرمجية الحالي، أو المواقع المحددة داخل المكدس، أو إلى السجلين A وB اللذين يحتويان على الموقعين العلويين في المكدس. يقوم بوروز بترقيم البتات في المقطع الصوتي من 0 (البت الأعلى) إلى 11 (البت الأدنى).

B6500 وما يليها

تتكون البرامج من مقاطع لفظية طولها 8 بت ، وقد تكون هذه المقاطع استدعاءً للاسم، أو استدعاءً للقيمة، أو تشكل عاملًا، ويتراوح طول هذا العامل بين مقطع واحد واثني عشر مقطعًا. يوجد أقل من 200 عامل ، جميعها تندرج ضمن مقاطع لفظية طولها 8 بت. العديد من هذه العوامل متعددة الأشكال ، وذلك تبعًا لنوع البيانات التي يتم التعامل معها، كما هو محدد في الوسم. إذا استثنينا عوامل مسح السلاسل النصية، والنقل، والتحرير القوية، فإن المجموعة الأساسية لا تتجاوز 120 عاملًا. وإذا أزلنا العوامل المحجوزة لنظام التشغيل، مثل MVST وHALT، فإن مجموعة العوامل الشائعة الاستخدام في برامج مستوى المستخدم تقل عن 100 عامل. تحتوي مقاطع استدعاء الاسم واستدعاء القيمة على أزواج عناوين ؛ أما مقاطع العامل فلا تستخدم عناوين، أو تستخدم كلمات تحكم ومُعرّفات على المكدس.

معالجات متعددة

كانت سلسلة B5000 رائدةً في استخدام معالجين متصلين معًا عبر ناقل عالي السرعة، أحدهما رئيسي والآخر تابع. أما في سلاسل B6000 وB7000 وB8000، فكانت المعالجات متناظرة. ويمكن أن تحتوي سلسلة B7000 على ما يصل إلى ثمانية معالجات، بشرط أن يكون أحدها على الأقل وحدة إدخال/إخراج. تُعدّ RDLK (القراءة مع القفل) طريقةً منخفضة المستوى للمزامنة بين المعالجات، وتعمل في دورة واحدة. أما الآلية عالية المستوى التي تستخدمها برامج المستخدم عادةً فهي نوع بيانات EVENT ، والذي كان يُسبب بعض العبء على النظام. ولتجنب هذا العبء، يمكن استخدام تقنية قفل خاصة تُسمى أقفال Dahm (نسبةً إلى خبير البرمجيات Dave Dahm من شركة Burroughs). تستخدم أقفال Dahm عبارة READLOCK في لغة ALGOL، والتي تُولّد عامل RDLK على مستوى الكود .

ومن أبرز المشغلين:

HEYU — إرسال مقاطعة إلى معالج آخر. RDLK — مُعامل إشارة منخفض المستوى: تحميل السجل A بموقع الذاكرة المُحدد بواسطة السجل A، ووضع القيمة في السجل B في موقع الذاكرة نفسه في دورة واحدة غير قابلة للمقاطعة. أنتج مُترجم Algol رمزًا لاستدعاء هذا المُعامل عبر دالة خاصة تُتيح عملية "تبديل" على بيانات أحادية الكلمة دون قيمة مؤقتة صريحة. x:=RDLK(x,y);WHOI — مُعرّف المعالج. IDLE — وضع الخمول حتى يتم استقبال مقاطعة.

قد يقوم معالجان في بعض الأحيان بإرسال أمر "HEYU" لبعضهما البعض في وقت واحد مما يؤدي إلى حالة توقف تُعرف باسم " العناق المميت ".

تأثير B5000

يظهر التأثير المباشر لمعالج B5000 جليًا في سلسلة أجهزة الحاسوب المركزية الحالية من Unisys ClearPath، والتي تُعدّ امتدادًا مباشرًا لمعالج B6500، الذي تأثر بدوره بمعالج B5000، ولا يزال يعمل بنظام التشغيل MCP بعد أربعين عامًا من التطوير المتواصل. يُطلق على هذه البنية الآن اسم emode (اختصارًا لوضع المحاكاة)، نظرًا لتطبيق بنية B6500 على أجهزة مُصنّعة بمعالجات Intel Xeon التي تعمل بمجموعة تعليمات x86 كمجموعة تعليمات أصلية، مع تشغيل برامج تحاكي مجموعة تعليمات B5000 على هذه المعالجات. كان من المُقرر أيضًا أن تحتوي هذه الأجهزة على وضع nmode ( الوضع الأصلي )، ولكن تم التخلي عنه ، لذا قد تسمع غالبًا الإشارة إلى أجهزة B6500 اللاحقة باسم "أجهزة emode".

تمت برمجة أجهزة B5000 حصريًا بلغات عالية المستوى؛ لا يوجد برنامج تجميع.

استلهم تشاك مور ، مصمم لغة البرمجة فورث ، من بنية مكدس B5000، والذي تعرف على B5500 أثناء دراسته في معهد ماساتشوستس للتكنولوجيا. في كتابه "فورث - السنوات الأولى" ، وصف مور هذا التأثير، مشيرًا إلى أن أوامر DUP وDROP وSWAP في فورث مستوحاة من تعليمات B5500 المقابلة (DUPL وDLET وEXCH).

أثرت أجهزة B5000، ببنيتها القائمة على المكدس وذاكرتها الموسومة، بشكل كبير على سلسلة الحواسيب المركزية والحواسيب العملاقة السوفيتية من طراز Elbrus . تميز الجيلان الأولان من هذه السلسلة بذاكرة موسومة ووحدات معالجة مركزية قائمة على المكدس، تمت برمجتها بلغات برمجة عالية المستوى فقط. كانت هناك لغة تجميع خاصة بها تُسمى El-76، ولكنها كانت في جوهرها تعديلًا للغة ALGOL 68، وتدعم البرمجة الهيكلية والإجراءات من الدرجة الأولى. مع ذلك، تحولت الأجيال اللاحقة من هذه السلسلة من هذه البنية إلى وحدات المعالجة المركزية VLIW الشبيهة بمعالجات EPIC .

استخدم مصممو نظام الأعمال HP 3000 من شركة هيوليت-باكارد جهاز B5500، وأُعجبوا كثيراً بمكوناته المادية والبرمجية؛ فكان هدفهم بناء حاسوب صغير 16 بت ببرمجيات مماثلة. وقامت عدة أقسام أخرى في شركة HP بإنشاء حواسيب صغيرة أو أجهزة مماثلة تعتمد على معالجات دقيقة. كما وجدت أعمال بوب بارتون في تدوين اللغة البولندية العكسية (RPN) طريقها إلى آلات حاسبة HP بدءاً من طراز 9100A، ولا سيما طراز HP-35 والآلات الحاسبة اللاحقة.

كانت أنظمة NonStop التي صممتها شركة Tandem Computers في أواخر السبعينيات وأوائل الثمانينيات عبارة عن أجهزة مكدسية ذات 16 بت، متأثرة بشكل غير مباشر بجهاز B5000 من خلال ارتباطها بجهاز HP 3000، حيث كان العديد من مهندسي Tandem الأوائل يعملون سابقًا لدى HP. في حوالي عام 1990، انتقلت هذه الأنظمة إلى بنية MIPS RISC، لكنها استمرت في دعم تشغيل ملفات المكدس الثنائية عن طريق ترجمة كود الكائن أو المحاكاة المباشرة. بعد عام 2000، انتقلت هذه الأنظمة إلى بنية Itanium واستمرت في تشغيل ملفات المكدس الثنائية القديمة.

كان بوب بارتون مؤثراً للغاية على آلان كاي أيضاً . وقد أعجب كاي أيضاً بالبنية المعتمدة على البيانات والمصنفة لجهاز B5000، وقد أثر ذلك على تفكيره في تطويراته في البرمجة الكائنية التوجه ولغة سمول توك .

من بين الجوانب الأخرى لبنية B5000 أنها بنية آمنة تعمل مباشرةً على الأجهزة. وقد ظهرت هذه التقنية في الآلات الافتراضية الحالية في محاولاتها لتوفير بيئات آمنة. ومن أبرز هذه المنتجات آلة جافا الافتراضية (JVM) التي توفر بيئة معزولة آمنة لتشغيل التطبيقات.

ستُحفظ قيمة الربط بين بنية الأجهزة والبرمجيات، الذي كان موجودًا قبل وضع emode، بشكل كبير في الأجهزة القائمة على معالجات x86 ، نظرًا لأن برنامج MCP كان برنامج التحكم الوحيد، إلا أن الدعم الذي توفره هذه الأجهزة لا يزال أقل من الدعم المُقدم في الأجهزة التي تستخدم مجموعة تعليمات B6500 كمجموعة تعليمات أصلية. وكانت بنية معالج Intel iAPX 432 ، وهي بنية غير معروفة نسبيًا سبقت تطبيقات 32 بت لمجموعة تعليمات x86، ستوفر أساسًا ماديًا مكافئًا، لأنها كانت أيضًا بنية كائنية التوجه.

انظر أيضاً

ملحوظات

  1. مثال: مقاطع لفظية مكونة من 12 بت لـ B5000، ومقاطع لفظية مكونة من 8 بت لـ B6500
  2. كانت هناك مشاكل أمنية
  3. باستثناء ضوابط الأخطاء
  4. على الرغم من رقم الطراز، فإن B5900 كان لديه بنية B6500 بدلاً من بنية B5000.
  5. 1 2 3 خاص فقط بطرازات B5000 وB5500 وB5700
  6. خاص فقط بطرازات B6500 وB7500 والطرازات اللاحقة
  7. لم يكن هناك بت علم في الكلمات التي تحتوي على بيانات أحرف أو رمز

مراجع

  • كتاب تمهيدي موسع عن لغة ALGOL (ثلاثة مجلدات)، دونالد ج. غريغوري.
  • هندسة الحاسوب: منهج منظم، ر. دوران، دار النشر الأكاديمية (1979).
  • الحوسبة المكدسة: الموجة الجديدة، فيليب ج. كوبمان، متوفر على:
  • كتيبات B5500، B6500، B6700، B6800، B6900، B7700 متوفرة على الموقع الإلكتروني: bitsavers.org
  1. 1 2 3 جون تي . لينش (أغسطس 1965)، "بوروز B8500" (ملف PDF) ، داتاميشن : 49-50
  2. 1 2 3 4 جورج غراي (أكتوبر 1999)، "حواسيب بوروز من الجيل الثالث" ، نشرة يونيسيس التاريخية ، 3 (5)، مؤرشفة من الأصل في 26 سبتمبر 2017
  3. بوروز (1963)، الخصائص التشغيلية للمعالجات الخاصة بجهاز بوروز B5000 (ملف PDF) ، المراجعة أ، 5000-21005
  4. جون ماشي (15 أغسطس 2006). "تصاميم مُلهمة / تصاميم للدراسة" . مجموعة الأخبار : comp.arch . يوزنت: 1155671202.964792.162180@b28g2000cwb.googlegroups.com . تاريخ الاسترجاع: 15 ديسمبر 2007 .  
  5. 1 2 بوروز (مايو 1967)، دليل مرجعي لنظام معالجة المعلومات بوروز B5500 (ملف PDF) ، 1021326
  6. مقتبس من "الجدول 5-1: جدول العنونة النسبية". دليل مرجعي لأنظمة معالجة المعلومات Burroughs B5500 (ملف PDF) . وثائق الأنظمة. شركة Burroughs. مايو 1967. ص 5-4 . 1021326. 
  7. 1 2 دليل مرجعي لنظام معالجة المعلومات Burroughs B6500 (PDF) ، Burroughs، سبتمبر 1969، 1043676
  8. 1 2 "سرد تاريخي: ستينيات القرن العشرين؛ الولايات المتحدة ضد شركة آي بي إم، المعروض رقم 14971، الجزء 2" . ed-thelen.org . حكومة الولايات المتحدة. 22 يوليو 1980. ص 648 (409) . تم الاطلاع عليه في 21 فبراير 2019 . رابط بديل
  9. مؤرشف في Ghostarchiveوآلة Waybackشركة بوروز (1969)، تقرير حالة بوروز B6500 (فيلم)، نايجل ويليامز (نُشر في 8 أغسطس 2015)، الرمز الزمني: 1969 الحالة - 0:00-0:52، 6:04-7:01، 8:14؛ التاريخ - 3:40، 4:21 ، تم استرجاعه في 4 مارس 2019
  10. هايز، جون ب. (1978). هندسة الحاسوب وتنظيمه . الصفحات 148-149 . ISBN  0-07-027363-4.
  11. "معروضات تاريخ الحوسبة: الطابق الرابع" . جامعة أوكلاند . تم الاطلاع عليه بتاريخ 18 مايو 2020 .
  12. ملخص فني لـ ILLIAC IV (ملف PDF) . 22 أبريل 1968. B-176-B.
  13. أندرسون، جيمس ب.؛ هوفمان، صموئيل أ.؛ شيفمان، جوزيف؛ ويليامز، روبرت ج. (1962)، "D825 - نظام حاسوبي متعدد للقيادة والتحكم"، وقائع مؤتمر الحاسوب المشترك للخريف، 4-6 ديسمبر 1962، وقائع مؤتمر AFIPS، المجلد 24، الصفحات 86-96 ، doi : 10.1145/1461518.1461527 ، ISBN   9781450378796، S2CID 1186864 {{cite book}}عدم توافق رقم ISBN / التاريخ ( مساعدة )
  14. هنري إم. ليفي ، "الفصل الثاني: بنى الواصفات المبكرة" (ملف PDF) ، أنظمة الحاسوب القائمة على القدرات ، دار النشر الرقمية
  15. "إعلان B5500" (ملف PDF) . بوروز. 11 أغسطس 1964.
  16. "أجهزة الكمبيوتر القديمة لديف - أجهزة أخرى" . يونيسيس A7-311 . تم الاطلاع عليه بتاريخ 30-03-2023 .
  17. "صورة SCAMP في متجر dave's Old computers" . تم الاطلاع عليها بتاريخ 30-03-2023 .
  18. ريتمان، فاليري (18 يناير 1989)، "يونيسيس مستعدة لتقديم حاسوب مركزي مكتبي" ، صحيفة فيلادلفيا إنكوايرر ، مؤرشفة من الأصل في 26 أبريل 2012 ، تم استرجاعها في 16 أبريل 2011
  19. 1 2 "تاريخ الشركة" . 9 يوليو 2021. تم الاطلاع عليه بتاريخ 28 أغسطس 2021 .
  20. 1 2 "شركة يونيسيس تمهد الطريق أمام عملاء سلسلة A&OS 2200" . تم الاطلاع عليه بتاريخ 28 أغسطس 2021 .
  21. «يونيسيس تُسرّع من وتيرة إعادة إحياء الحواسيب المركزية بخوادم ClearPath Enterprise الجديدة، وبأسعار تنافسية جديدة. - بزنس واير - هاي بيم ريسيرش» (بيان صحفي). 8 يونيو 1998. مؤرشف من الأصل في 16 مايو 2011.
  22. "Libra 595" . Unisys.
  23. "ليبرا 750" . يونيسيس. 24 يونيو 2021. مؤرشف من الأصل في 11 مارس 2020. تم الاطلاع عليه في 16 مايو 2018 .
  24. بيرجيرون، آر دي؛ وآخرون . (15 ديسمبر 1972). "لغة لتطوير الأنظمة". في روبينوف، موريس (محرر). التطورات في الحوسبة . المجلد 12. نيويورك؛ لندن: أكاديميك برس . ص 282. ISBN    978-0080566443.
  25. فريق العمل (1966). دليل مرجعي لجهاز B5500 ESPOL (ملف PDF) . ديترويت ، ميشيغان: شركة بوروز عبر متحف تاريخ الحاسوب .
  26. فريق العمل (يناير 1970). دليل مرجعي لجهاز B6500 ESPOL (ملف PDF) . ديترويت ، ميشيغان: شركة بوروز عبر متحف تاريخ الحاسوب .
  27. فريق العمل (27 يونيو 1972). دليل معلومات لغة برمجة النظام التنفيذي B6700/B7700 (ESPOL) (ملف PDF) . ديترويت ، ميشيغان: شركة بوروز - عبر متحف تاريخ الحاسوب .
  28. أورغانيك، إليوت (1973). تنظيم نظام الحاسوب . ACM . ص 115-117 . ISBN  0-12-528250-8.
  29. جي إم أمدال؛ جي إيه بلاو؛ إف بي بروكس (أبريل 1964). "بنية نظام IBM System/360" . مجلة IBM للبحوث والتطوير . 8 (2): 87-101 . doi : 10.1147/rd.82.0087 . تم الاطلاع عليه بتاريخ 10 سبتمبر 2021 عبر ResearchGate.

للمزيد من القراءة

  • بارتون، روبرت س. (1961). "نهج جديد للتصميم الوظيفي للحاسوب الرقمي". وقائع المؤتمر المشترك للحاسوب الغربي . ACM. doi : 10.1145/1460690.1460736 .
  • وايشوف، ريتشارد؛ تيرنر، لويد؛ روزين، روبرت ف.؛ بيرسون، رالف و.؛ أوليفانت، ج. كلارك؛ ماكنزي، ف. براد؛ ماكدونالد، راي و.؛ ماكدونالد، دنكان ن.؛ لونيرجان، ويليام د.؛ كرويدر، نورمان ل.؛ كينج، بول د.؛ هوتمان، جوزيف ت.؛ هاوك، إروين أ.؛ هيل، جون إي.؛ جالر، برنارد أ.؛ فورد، جيمس؛ إيبيرت، راي ر.؛ دينت، بنجامين أ.؛ داهام، ديفيد م.؛ كريتش، بوبي أ.؛ كولينز، جورج أ.؛ بيرس، هنري؛ بارتون، روبرت س. (6 سبتمبر 1985). "مؤتمر بوروز B 5000" . معهد تشارلز باباج ، جامعة مينيسوتا .تمت مناقشة سلسلة أجهزة الكمبيوتر Burroughs 5000 من قبل الأفراد المسؤولين عن تطويرها وتسويقها من عام 1957 وحتى الستينيات في مؤتمر عام 1985 برعاية AFIPS وشركة Burroughs .
  • غراي، جورج (مارس 1999). "بعض حواسيب بوروز الترانزستورية" . نشرة يونيسيس التاريخية . 3 (1). مؤرشفة من الأصل في 1 أكتوبر 2016.
  • غراي، جورج (أكتوبر 1999). "حواسيب بوروز من الجيل الثالث" . نشرة يونيسيس التاريخية . 3 (5). مؤرشفة من الأصل في 26 سبتمبر 2017.
  • هاوك، إي. أ.؛ دينت، بن أ. (1968). آلية مكدس بوروز B6500/B7500 . المؤتمر المشترك للحاسوب الربيعي. الصفحات 245-251 . doi : 10.1145/1468075.1468111 . 
  • مكيمان، ويليام م. (1967). تصميم الحاسوب الموجه باللغة . المؤتمر المشترك للحاسوب في الخريف. الصفحات 413-417 . doi : 10.1145/1465611.1465665 . 
  • أورغانيك، إليوت آي. (1973). تنظيم نظام الحاسوب: سلسلة B5700/B6700 (ملف PDF) . دار النشر الأكاديمية.
  • وايشوف، ريتشارد (27 سبتمبر 1979). "قصص عن مجموعة B5000 والأشخاص الذين كانوا هناك" (ملف PDF) . مؤرشف من النسخة الأصلية (ملف PDF) في 4 مارس 2016.
  • Allweiss, Jack. "The Burroughs B5900 and E-Mode A bridge to 21st Century Computing Revised 2018" .
  • مارتن، إيان. ""سابقة لعصرها بكثير": بريطانيا، بوروز، والخدمات المصرفية في الوقت الحقيقي في الستينيات" ، الاجتماع السنوي لجمعية تاريخ التكنولوجيا، 20 سبتمبر - 3 أكتوبر 2010، تاكوما، الولايات المتحدة الأمريكية.