داتا جنرال نوفا

نظام Nova 3 (بيج وأصفر، في المنتصف السفلي) ونظام قرص صلب خرطوشة (مفتوح، أسفل Nova) في حامل رف شبه فارغ
قام جهاز Nova 820، الموجود في منتصف اليمين، بمعالجة الصور التي تم إنشاؤها بواسطة جهاز EMI-Scanner، وهو أول جهاز تصوير مقطعي محوسب متاح تجاريًا في العالم .

نوفا هي سلسلة من الحواسيب الصغيرة ذات 16 بت ، أصدرتها شركة داتا جنرال الأمريكية . لاقت عائلة نوفا رواجاً كبيراً في سبعينيات القرن الماضي، وبيعت منها في نهاية المطاف عشرات الآلاف من الوحدات .

صدر النموذج الأول، المعروف ببساطة باسم "نوفا"، عام 1969. [ 1 ] كان جهاز نوفا مُعبأً في علبة واحدة بحجم 3U تُركّب في رف، وكان يتمتع بقدرة حاسوبية كافية للتعامل مع معظم المهام البسيطة. حظي جهاز نوفا بشعبية واسعة في المختبرات العلمية حول العالم. تبعه في العام التالي جهاز سوبر نوفا ، الذي كان أسرع منه بأربعة أضعاف تقريبًا، مما جعله أسرع جهاز حاسوب صغير لعدة سنوات.

طُرحت هذه السلسلة خلال فترة من التطور السريع في تصميم الدوائر المتكاملة (أو "الرقائق الدقيقة")، وخضعت لعدة تحسينات على مدى السنوات الخمس التالية، حيث تم طرح طرازات 800 و1200، ثم Nova 2 وNova 3، وأخيراً Nova 4. كما طُرحت نسخة أحادية الشريحة باسم microNOVA في عام 1977، لكنها لم تنتشر على نطاق واسع مع تحول السوق نحو تصاميم المعالجات الدقيقة الجديدة. وفي عام 1977 أيضاً، طرحت شركة Fairchild Semiconductor نسخة من Nova مزودة بمعالج دقيق، وهي Fairchild 9440 ، إلا أنها لم تلقَ رواجاً كبيراً في السوق أيضاً.

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

تاريخ

إدسون دي كاسترو وجهاز PDP-X

كان إدسون دي كاسترو مدير منتج جهاز PDP-8 الرائد من شركة ديجيتال إكويبمنت (DEC) ، وهو حاسوب ذو 12 بت يُشار إليه على نطاق واسع بأنه أول حاسوب مصغر حقيقي. [ 2 ] كما قاد تصميم جهاز PDP-8/I المُطوّر، الذي استخدم دوائر متكاملة مبكرة بدلاً من الترانزستورات الفردية. [ 3 ]

خلال عملية تطوير جهاز PDP-8/I، كان دي كاسترو يزور مصنعي لوحات الدوائر الإلكترونية الذين حققوا تقدماً سريعاً في تعقيد اللوحات التي يمكنهم تجميعها. وخلص دي كاسترو إلى أنه يمكن إنتاج جهاز 8/I باستخدام التجميع الآلي الكامل على لوحات كبيرة، وهو ما كان مستحيلاً قبل عام واحد فقط. وكان آخرون داخل شركة دي إي سي قد اعتادوا على اللوحات الأصغر حجماً المستخدمة في الأجهزة السابقة، وكانوا قلقين بشأن تتبع المشكلات عند وجود العديد من المكونات على لوحة واحدة. [ أ ] بالنسبة لجهاز 8/I، تم اتخاذ قرار بالاستمرار في استخدام اللوحات الصغيرة، مع استخدام تقنية التغليف الجديدة " flip-chip " لتحسين الكثافة بشكل طفيف. [ 3 ]

خلال فترة تطوير جهاز PDP-8، أدى إدخال ترميز ASCII وتحديثه الرئيسي عام 1967 إلى ظهور جيل جديد من التصاميم ذات أطوال كلمات من مضاعفات 8 بت، بدلاً من مضاعفات 6 بت كما في معظم التصاميم السابقة. ونتيجةً لذلك، عملت التصاميم متوسطة المدى بأطوال كلمات 16 بت بدلاً من تشكيلات DEC الحالية ذات 12 و18 بت. كان دي كاسترو مقتنعًا بإمكانية تحسين جهاز PDP-8 من خلال بناء وحدة معالجة مركزية (CPU) لحاسوب مصغر 16 بت على لوحة مربعة واحدة بحجم 15 بوصة. [ 4 ] [ 5 ]

في عام 1967، بدأ دي كاسترو مشروع تصميم جديد يُعرف باسم "PDP-X"، والذي تضمن العديد من الميزات المتقدمة. من بينها تصميم أساسي واحد يُمكن استخدامه لبناء منصات 8 و16 و32 بت. [ 6 ] وقد تطور هذا المشروع إلى حد إنتاج العديد من وثائق البنية التفصيلية. لم يُؤيد كين أولسن هذا المشروع، إذ رأى أنه لا يُقدم مزايا كافية مقارنةً بـ PDP-8 ذي 12 بت و PDP-9 ذي 18 بت . وفي النهاية، أُلغي المشروع في ربيع عام 1968. [ 4 ]

تصميم

دفع إلغاء مشروع PDP-X دي كاسترو إلى التفكير في ترك شركة DEC لبناء نظام خاص به. لم يكن وحيدًا في ذلك؛ ففي أواخر عام 1967، شكّل عدد من المهندسين ذوي التفكير المماثل فريقًا لدراسة إمكانية تطوير جهاز كهذا. ضمّ الفريق بات غرين، مدير قسم؛ وريتشارد سوغ، مهندس أجهزة آخر؛ وهنري بوركهارت الثالث، مهندس برمجيات. [ 7 ] وعلى عكس PDP-X، ركّز الجهد الجديد على جهاز واحد يمكن طرحه في السوق بسرعة، إذ رأى دي كاسترو أن فكرة PDP-X طموحة للغاية بالنسبة لشركة ناشئة صغيرة . [ 8 ]

بعد مناقشة الفكرة مع الآخرين في شركة DEC، أدت الفكرة الأولية إلى تصميم جهاز ذي 8 بتات، مما قلل من تكلفة تنفيذه. [ 9 ] بدأ الفريق بالتواصل مع هربرت ريتشمان، مندوب مبيعات في شركة فيرتشايلد لأشباه الموصلات، والذي كان يعرف الآخرين من خلال علاقاته في شركة DEC. في ذلك الوقت، كانت فيرتشايلد تتنافس مع شركتي تكساس إنسترومنتس وسيجنيتكس في سوق TTL سريع النمو ، وكانت تُطلق مصانع جديدة تسمح بتصميمات أكثر تعقيدًا. سمحت سلسلة 9300 الأحدث من فيرتشايلد بما يصل إلى 96 بوابة لكل شريحة، وقد استخدموا هذه التقنية لتنفيذ عدد من الشرائح ذات 4 بتات، مثل العدادات الثنائية ومسجلات الإزاحة . [ 10 ]

أدى استخدام هذه الدوائر المتكاملة إلى تقليل العدد الإجمالي للدوائر المتكاملة اللازمة لتنفيذ وحدة حسابية منطقية (ALU) كاملة، وهي المكون الرياضي الأساسي لوحدة المعالجة المركزية (CPU)، مما سمح بالتوسع من تصميم 8 بت إلى 16 بت. تطلب هذا توسيع وحدة المعالجة المركزية من لوحة دوائر مطبوعة واحدة بحجم 38 سم × 38 سم إلى لوحتين، ولكن هذا التصميم سيظل أرخص بكثير في الإنتاج من PDP-8/I مع كونه أكثر قوة ويعتمد على ترميز ASCII. احتوت لوحة ثالثة على دوائر الإدخال/الإخراج ، وتضمن النظام الكامل عادةً لوحة أخرى مزودة بذاكرة وصول عشوائي (RAM) سعتها 4 كيلوبايت . يمكن تركيب نظام كامل مكون من أربع لوحات في هيكل واحد يُثبّت في رف. [ 5 ]    

صُممت اللوحات بحيث يمكن توصيلها معًا باستخدام لوحة خلفية مطبوعة ، مع الحد الأدنى من التوصيلات اليدوية، مما يسمح ببناء جميع اللوحات بطريقة آلية. وقد أدى ذلك إلى خفض التكاليف بشكل كبير مقارنةً بجهاز PDP-8/I، الذي كان يتألف من العديد من اللوحات الأصغر حجمًا التي كان يجب توصيلها معًا في اللوحة الخلفية، والتي كانت بدورها موصولة باستخدام لفائف الأسلاك . كما جعل تصميم اللوحة الأكبر حجمًا جهاز Nova أكثر موثوقية، مما جعله جذابًا بشكل خاص للبيئات الصناعية أو المختبرية. [ 5 ]

استخدم التصميم الجديد بنية تحميل وتخزين بسيطة [ 4 ] والتي ستظهر مجددًا في تصميمات RISC في ثمانينيات القرن العشرين. ولأن تعقيد القلاب كان يتناقص بسرعة مع تنفيذه في الرقائق، فقد عوض التصميم نقص أنماط العنونة في تصميم التحميل والتخزين بإضافة أربعة مُراكم للأغراض العامة ، بدلًا من المسجل الواحد الموجود في منتجات مماثلة منخفضة التكلفة مثل سلسلة PDP. [ 4 ]

مقدمة

في أواخر عام ١٩٦٧، عرّف ريتشمان المجموعة على المحامي فريد أدلر المقيم في نيويورك، والذي بدأ بدوره في البحث عن مصادر تمويل مختلفة للحصول على رأس مال تأسيسي. وبحلول عام ١٩٦٨، كان أدلر قد أبرم صفقة تمويل كبيرة مع مجموعة من صناديق رأس المال الاستثماري من منطقة بوسطن، والتي وافقت على تقديم استثمار أولي بقيمة ٤٠٠ ألف دولار أمريكي، مع توفير مبلغ ثانٍ مماثل لزيادة الإنتاج. استقال دي كاسترو وبوركهارت وسوغ من شركة DEC وأسسوا شركة Data General (DG) في ١٥ أبريل ١٩٦٨. لم ينضم إليهم غرين، معتبرًا المشروع محفوفًا بالمخاطر، ولم ينضم ريتشمان إلا بعد أن أصبح المنتج جاهزًا للعمل في وقت لاحق من العام نفسه. [ ٥ ]

استغرق العمل على النظام الأول حوالي تسعة أشهر، وبدأت جهود المبيعات الأولى في نوفمبر من ذلك العام. حالفهم بعض الحظ لأن مؤتمر الحاسوب المشترك الخريفي تأجل إلى ديسمبر من ذلك العام، ما مكّنهم من إحضار وحدة عاملة إلى سان فرانسيسكو حيث قاموا بتشغيل نسخة من لعبة Spacewar! [ 11 ] . أصدرت شركة DG رسميًا جهاز Nova في عام 1969 بسعر أساسي قدره 3995 دولارًا أمريكيًا (ما يعادل 35074 دولارًا أمريكيًا في عام 2025) ، معلنةً عنه بأنه "أفضل حاسوب صغير في العالم". [ 12 ] لم يكن النموذج الأساسي مفيدًا جدًا فور إخراجه من العلبة، وإضافة8 كيلوواط  (كانت ذاكرة الوصول العشوائي (RAM) بسعة 16 كيلوبايت  ، والموجودة على شكل ذاكرة أساسية، ترفع السعر عادةً إلى 7995 دولارًا أمريكيًا . [ 13 ] في المقابل، كان جهاز PDP-8/I مزودًا بـ4 كيلوواط  ( تم تسعير (6 كيلوبايت ) بسعر 12800 دولار أمريكي . [ 14 ]

كانت أول عملية بيع لجامعة في تكساس، حيث قام الفريق بتجميع نموذج يدوياً وشُحن في فبراير. إلا أن ذلك تزامن مع إضراب في قطاع الطيران، ولم يصل الجهاز. فأرسلوا نموذجاً ثانياً، وصل سريعاً بعد انتهاء الإضراب، وفي مايو تم تسليم النموذج الأصلي أيضاً. [ 15 ]

حقق النظام نجاحًا منذ البداية، حيث بيعت الوحدة رقم 100 بعد ستة أشهر، [ 16 ] والوحدة رقم 500 بعد 15 شهرًا. [ 13 ] وتسارعت المبيعات مع طرح إصدارات أحدث، وبحلول عام 1975 بلغت مبيعات الشركة السنوية 100 مليون دولار أمريكي . [ 17 ]

سوبرنوفا

توقع كين أولسن علنًا فشل شركة دويتشه غروف، ولكن مع إصدار جهاز نوفا، بات من الواضح أن ذلك لن يحدث. في ذلك الوقت، كانت العديد من الشركات الأخرى تتحدث عن طرح تصاميم 16 بت أيضًا. قرر أولسن أن هذه التصاميم تُشكل تهديدًا لخط إنتاجه من أجهزة 18 بت، بالإضافة إلى أجهزة 12 بت، فبدأ جهودًا جديدة لتصميم جهاز 16 بت. [ 18 ] ظهر هذا التصميم في عام 1970 باسم PDP-11 ، وهو تصميم أكثر تعقيدًا بكثير، وكان مختلفًا عن PDP-X تمامًا كما كان جهاز نوفا. تنافس التصميمان بشدة في السوق. [ 4 ]

وصلت شائعات النظام الجديد من شركة DEC إلى شركة DG بعد فترة وجيزة من بدء شحن جهاز Nova. في ربيع عام 1970، استعانت الشركة بمصمم جديد، لاري سيليغمان، لتجاوز أي جهاز آخر قيد التطوير. وقد طرأ تغييران رئيسيان منذ تصميم جهاز Nova؛ أولهما أن شركة Signetics قدّمت شريحة 8260، وهي شريحة متكاملة رباعية البتات تجمع بين جامع، وXNOR، وAND، مما يعني انخفاض عدد الشرائح اللازمة لتنفيذ المنطق الأساسي بمقدار الثلث تقريبًا. أما التغيير الثاني، فكان ترويج شركة Intel المكثف لذاكرة أشباه الموصلات، حيث وعدت بتوفير 1024 بت على شريحة واحدة، وبسرعات أعلى بكثير من ذاكرة النواة. [ 18 ]

استفاد تصميم سيليغمان الجديد من هذين التحسينين. ففي البداية، سمحت الدوائر المتكاملة الجديدة بتوسيع وحدة الحساب والمنطق (ALU) إلى عرض 16 بت كامل على نفس البطاقتين، مما مكّنها من إجراء العمليات الحسابية والمنطقية في دورة واحدة، وبالتالي جعل التصميم الجديد أسرع بأربع مرات من التصميم الأصلي. إضافةً إلى ذلك، استُخدمت ذاكرة أساسية أصغر حجمًا، مما حسّن زمن الدورة من 1200 نانوثانية في التصميم الأصلي إلى  800  نانوثانية، موفرًا بذلك تحسنًا إضافيًا بمقدار الثلث . ويمكن تحسين الأداء بشكل أكبر باستبدال الذاكرة الأساسية بذاكرة للقراءة فقط ؛ فبدون دورة القراءة والكتابة للذاكرة الأساسية، يمكن الوصول إلى هذه الذاكرة في 300 نانوثانية ،  مما يُحقق قفزة نوعية في الأداء. [ 16 ]

أُصدر الجهاز الناتج، المعروف باسم SuperNOVA ، عام 1970. ورغم أن النماذج الأولية كانت لا تزال تستخدم المعالجات الأساسية، إلا أن التصميم بأكمله استند إلى فرضية توفر ذاكرة أشباه موصلات أسرع، وإمكانية استفادة المنصة منها بشكل كامل. وقد طُرح هذا الجهاز لاحقًا في العام نفسه باسم SuperNOVA SC ، الذي يتميز بذاكرة أشباه موصلات (SC). سمحت الذاكرة ذات الأداء العالي جدًا لوحدة المعالجة المركزية، المتزامنة مع الذاكرة، بزيادة سرعتها لتعمل بدورة  زمنية قدرها 300 نانوثانية (3.3  ميجاهرتز). هذا ما جعله أسرع حاسوب صغير متاح لسنوات عديدة. [ 19 ] في البداية، كانت الذاكرة الجديدة باهظة الثمن للغاية، كما أنها كانت ترتفع درجة حرارتها، لذا لم تُستخدم على نطاق واسع. [ 20 ]

1200 و 800

لوحة الدوائر المطبوعة لوحدة المعالجة المركزية Nova 1200. وحدة الحساب والمنطق 74181 هي الدائرة المتكاملة الكبيرة الموجودة في المنتصف الأيمن.

كإثبات لقوة تقنية مصفوفة البوابات الميكروماتريكس ، قامت شركة فيرتشايلد في عام 1968 بتصميم نموذج أولي لوحدة الحساب والمنطق 4711، وهي وحدة أحادية الشريحة ذات 4 بتات. [ 10 ] [ 21 ] لم يكن التصميم مُعدًا للإنتاج بكميات كبيرة، وكان إنتاجه مكلفًا للغاية. أجبر طرح وحدة Signetics 8260 في عام 1969 الشركة على تغيير نهجها؛ حيث طرحت كل من شركتي تكساس إنسترومنتس وفيرتشايلد وحدات حساب ومنطق خاصة بهما ذات 4 بتات في عام 1970، وهما 74181 و9341 على التوالي. وعلى عكس وحدة 8260، قدمت التصاميم الجديدة جميع وظائف المنطق الشائعة، وقللت عدد الشرائح بشكل أكبر. [ 10 ]

دفع هذا شركة DG إلى التفكير في تصميم وحدة معالجة مركزية جديدة باستخدام هذه الدوائر المتكاملة الأكثر تكاملاً. سيؤدي هذا، كحد أدنى، إلى تقليص حجم وحدة المعالجة المركزية إلى بطاقة واحدة لكل من جهاز Nova الأساسي وجهاز SuperNOVA. وظهر مفهوم جديد حيث يمكن لهيكل واحد استضافة أي من الجهازين ببساطة عن طريق استبدال لوحة دائرة وحدة المعالجة المركزية. سيتيح هذا للعملاء شراء النظام الأقل تكلفة ثم الترقية في أي وقت. [ 22 ]

أثناء عمل سيليغمان على جهاز SuperNOVA، تلقت الشركة رسالة من رون غرونر جاء فيها: "لقد قرأت عن منتجكم، وقرأت إعلاناتكم، وسأعمل لديكم. وسأكون في مكاتبكم خلال أسبوع لمناقشة الأمر معكم." [ 22 ] وتم توظيفه على الفور. وتولى غرونر مسؤولية الجهاز منخفض التكلفة، بينما صمم سيليغمان نسخة عالية الأداء مماثلة. [ 22 ]

أُطلق طراز غرونر منخفض التكلفة عام 1970 باسم نوفا 1200 ، حيث يشير الرقم 1200 إلى استخدام  ذاكرة النواة الأصلية من طراز نوفا بسرعة 1200 نانوثانية. وقد احتوى على وحدة حسابية ومنطقية (ALU) رباعية البتات تعتمد على شريحة 74181 واحدة، وبالتالي كان في الأساس نسخة مُعاد تغليفها من نوفا. أُصدر طراز سيليغمان المُعاد تغليفه، سوبر نوفا، بأربع وحدات حسابية ومنطقية، عام 1971 باسم نوفا 800 ، مما أدى إلى تسمية مُربكة نوعًا ما، حيث يتمتع الطراز ذو الرقم الأقل بأداء أعلى. [ 22 ] وُفر كلا الطرازين في مجموعة متنوعة من العلب، حيث احتوى طراز 1200 على سبعة فتحات، وطراز 1210 على أربعة، وطراز 1220 على أربعة عشر.

الطرازات الأحدث

في ذلك الوقت، بدأ شحن جهاز PDP-11 رسميًا. وقدّم بنية تعليمات أكثر ثراءً بكثير من تلك البسيطة عمدًا في جهاز Nova. ومع استمرار تحسين تصميمات الدوائر المتكاملة، وخاصة نسبة السعر إلى الأداء ، بدأت قيمة التعليمات المبسطة الأصلية بالتراجع. وكُلِّف سيليغمان بتصميم جهاز جديد متوافق مع Nova، مع توفير بيئة أكثر ثراءً لمن يرغب بذلك. وقد طُرح هذا المفهوم في سلسلة Data General Eclipse ، التي أتاحت إمكانية إضافة دوائر إضافية لتخصيص مجموعة التعليمات لأحمال العمل العلمية أو معالجة البيانات . ونجح جهاز Eclipse في منافسة PDP-11 في الفئة العليا من السوق. [ 23 ]

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

وبينما كانت هذه الجهود جارية، استمر العمل على خط نوفا.

840

تضمنت وحدة المعالجة المركزية 840، التي طُرحت لأول مرة عام 1973، نظام ذاكرة جديد مُقسّم إلى صفحات يسمح بعناوين تصل إلى 17 بت. ويقوم فهرس بإزاحة العنوان الأساسي إلى ذاكرة أكبر بسعة 128  كيلو كلمة. ويتطلب تركيب هذه السعة الكبيرة من الذاكرة مساحة كبيرة؛ لذا تم شحن وحدة المعالجة المركزية 840 في علبة كبيرة ذات 14 فتحة.

نوفا 2

كان الإصدار التالي هو نوفا 2 ، حيث تم شحن النسخ الأولى منه عام 1973. كان نوفا 2 في الأساس نسخة مبسطة من الأجهزة السابقة، إذ سمحت زيادة كثافة الرقائق بتصغير حجم وحدة المعالجة المركزية. بينما استخدم سوبر نوفا ثلاث لوحات بحجم 15×15 بوصة لتنفيذ وحدة المعالجة المركزية وذاكرتها، ضمّ نوفا 2 كل ذلك على لوحة واحدة. استُخدمت ذاكرة القراءة فقط (ROM) لتخزين رمز الإقلاع، والذي كان يُنسخ إلى الذاكرة الرئيسية عند تشغيل مفتاح "تحميل البرنامج". توفرت إصدارات بأربعة فتحات (2/4)، وسبعة، وعشرة فتحات (2/10).

نوفا 3

بيانات عامة نوفا 3

أضاف جهاز نوفا 3، الذي طُرح عام 1975، سجلين إضافيين للتحكم في الوصول إلى مكدس مدمج. كما أُعيد تصميم المعالج باستخدام مكونات TTL ، مما زاد من أداء النظام. وقدّم جهاز نوفا 3 بنسختين: ذات أربع فتحات (نوفا 3/4) وذات اثنتي عشرة فتحة (نوفا 3/12).

نوفا 4

يبدو أن شركة داتا جنرال كانت تنوي في الأصل أن يكون جهاز نوفا 3 هو الأخير في سلسلة منتجاتها، حيث خططت لاستبداله بأجهزة إكليبس اللاحقة. إلا أن الطلب المتزايد أدى إلى طرح جهاز نوفا 4 في عام 1978، والذي اعتمد هذه المرة على أربع وحدات حسابية ومنطقية من نوع AMD Am2901 . صُمم هذا الجهاز منذ البداية ليكون بمثابة نوفا 4 وإكليبس S/140 في آن واحد، مع شفرة برمجية دقيقة مختلفة لكل منهما. كما توفر معالج مساعد للفاصلة العائمة، يشغل فتحة منفصلة. وسمح خيار إضافي بربط الذاكرة، مما أتاح للبرامج الوصول إلى ما يصل إلى 128 كيلو كلمة من الذاكرة باستخدام تبديل البنوك . على عكس الأجهزة السابقة، لم يتضمن نوفا 4 وحدة تحكم أمامية ، بل تضمن ذاكرة قراءة فقط (ROM) تحتوي على شفرة برمجية تسمح للطرفية بمحاكاة وحدة التحكم عند الحاجة. [ 25 ] : 87 

كان هناك ثلاثة إصدارات مختلفة من نوفا 4، وهي نوفا 4/C، ونوفا 4/S، ونوفا 4/X. كانت نوفا 4/C عبارة عن لوحة واحدة مدمجة تضم كامل الذاكرة (16 أو 32 كيلو كلمة). استخدمت نوفا 4/S و4/X لوحات ذاكرة منفصلة. تم تفعيل وحدة إدارة الذاكرة  (MMU) المدمجة في نوفا 4/X للسماح باستخدام ما يصل إلى 128 كيلو كلمة من الذاكرة. تم تثبيت وحدة إدارة الذاكرة أيضًا في نوفا 4/S، ولكن تم تعطيلها بواسطة البرامج الثابتة . تضمنت كل من 4/S و4/X "جلبًا مسبقًا" لزيادة الأداء عن طريق جلب ما يصل إلى 11 تعليمة من الذاكرة قبل الحاجة إليها. [ 25 ] : 5 

ميكرونوفا

معالج دقيق من نوع Data General mN601

أنتجت شركة داتا جنرال أيضًا سلسلة من معالجات نوفا أحادية الشريحة من طراز microNOVA . ولتمكينها من التوافق مع شريحة DIP ذات 40 طرفًا، تشارك ناقل العناوين وناقل البيانات مجموعة من 16 طرفًا. هذا يعني أن عمليات القراءة والكتابة في الذاكرة تتطلب دورتين، وأن الجهاز يعمل بنصف سرعة نوفا الأصلية تقريبًا نتيجة لذلك. [ 26 ]

كانت الشريحة الأولى في هذه السلسلة هي mN601 ، التي طُرحت عام 1977. وقد بيعت هذه الشريحة كوحدة معالجة مركزية للمستخدمين العاديين، وكمجموعة شرائح كاملة لمن يرغبون في بناء حاسوب، وكحاسوب كامل على لوحة واحدة بذاكرة وصول عشوائي  (RAM) سعتها 4 كيلوبايت، وكنموذج منخفض التكلفة من جهاز نوفا. [ 26 ] أما النسخة المطورة من التصميم، mN602 التي طُرحت عام 1979 ، فقد اختُزلت فيها مجموعة الشرائح بالكامل إلى شريحة VLSI واحدة . وقد عُرضت هذه الشريحة في جهازين، هما microNOVA MP/100 و microNOVA MP/200 الأكبر حجمًا .

أُعيد تغليف جهاز microNOVA لاحقًا بشاشة في علبة تشبه علبة الكمبيوتر الشخصي مع قرصين مرنين تحت اسم Enterprise . تم شحن Enterprise في عام 1981، وكان يعمل بنظام RDOS ، ولكن طرح جهاز IBM PC في نفس العام جعل معظم الأجهزة الأخرى تختفي عن الأنظار. [ 27 ]

إرث

أثّر معالج نوفا على تصميم كلٍّ من حاسوبي زيروكس ألتو (1973) [ 28 ] وأبل 1 (1976) [ 29 ] ، وشكّلت بنيته أساسًا لسلسلة معالجات رسومات كمبيوتر فيجن (Computervision CGP). ويُقال إن تصميمه الخارجي كان مصدر الإلهام المباشر للوحة الأمامية لحاسوب ميتس ألتاير (1975) الصغير .

واصلت شركة داتا جنرال نجاح جهاز نوفا الأصلي بإصدار سلسلة من التصاميم الأسرع. ثم طُرحت عائلة أنظمة إكليبس بمجموعة تعليمات موسعة متوافقة مع الإصدارات السابقة، وواصلت سلسلة MV تطوير إكليبس إلى بنية 32 بت لمنافسة جهاز DEC VAX . وُثّق تطوير سلسلة MV في كتاب تريسي كيدر الشهير الصادر عام 1981 بعنوان " روح آلة جديدة" . لاحقًا، تطورت داتا جنرال لتصبح موردًا للخوادم ووحدات التخزين القائمة على معالجات إنتل، قبل أن تستحوذ عليها شركة EMC .

توجد مجموعة متنوعة ولكنها متحمسة من الأشخاص حول العالم الذين يقومون بترميم وحفظ أنظمة Data General الأصلية ذات 16 بت. [ 30 ] [ 31 ]

الوصف الفني

تصميم المعالج

كان جهاز نوفا، على عكس جهاز PDP-8 ، يعتمد على بنية تحميل وتخزين البيانات . احتوى على أربعة سجلات تراكمية سعة كل منها 16 بت ، اثنان منها (2 و3) يمكن استخدامهما كسجلات فهرسة . كما احتوى على عداد برنامج سعة 15 بت وسجل حمل أحادي البت . وكما هو الحال في جهاز PDP-8، كان نظام عنونة الصفحات الحالي + الصفر أساسيًا. لم يكن هناك سجل مكدس ، ولكن تصاميم إكليبس اللاحقة استخدمت عنوان ذاكرة مخصصًا لهذه الوظيفة.

كانت نوفا الأصلية تعالج العمليات الحسابية بشكل تسلسلي في حزم من 4 بتات، باستخدام وحدة جمع واحدة من نوع Texas Instruments 7483 ودوائر إضافية لتنفيذ عمليات أخرى. [ 32 ] بعد عام من طرحها، تضمنت سوبر نوفا وحدة جمع متوازية كاملة من نوع 16 بت باستخدام أربع دوائر متكاملة من نوع Signetics 8260. كما عالجت نوفا 1200 العمليات الحسابية بشكل تسلسلي في حزم من 4 بتات، باستخدام وحدة حساب ومنطق واحدة من نوع 74181 ؛ أما نوفا 800 فكانت نسخة مُعاد تغليفها من سوبر نوفا.

أضافت الإصدارات اللاحقة من نوفا وحدة تكديس ووحدة ضرب/قسمة للأجهزة.

كان جهاز Nova 4 / Eclipse S/140 يعتمد على أربعة وحدات حسابية ومنطقية من نوع AMD 2901 ذات شرائح بتية، مع وجود التعليمات البرمجية الدقيقة في ذاكرة القراءة فقط ، وكان أول جهاز Nova مصمم لذاكرة DRAM الرئيسية فقط، دون أي إمكانية لاستخدام ذاكرة ذات نواة مغناطيسية .

الذاكرة والإدخال/الإخراج

أصغر وحدة ذاكرة قابلة للعنونة والكتابة هي الكلمة ذات 16 بت؛ ولا يدعم النظام عنونة البايت. كانت الطرازات الأولى متوفرة بذاكرة ذات نواة مغناطيسية بسعة 8 كيلوبايت كخيار إضافي ، وهو خيار كان على الجميع تقريبًا شراؤه، مما رفع تكلفة النظام إلى 7995 دولارًا.

تم تنظيم لوحة الذاكرة الأساسية هذه بطريقة مستوية على شكل أربع مجموعات من أربع بنوك، كل بنك يحمل مجموعتين من النواة في مصفوفة 64 × 64؛ وبالتالي كان هناك 64 × 64 = 4096 بت لكل مجموعة، × 2 مجموعات تعطي 8192 بت، × 4 بنوك تعطي 32768 بت، × 4 مجموعات تعطي إجمالي 131072 بت، وهذا مقسومًا على حجم كلمة الآلة البالغ 16 بت يعطي 8192 كلمة من الذاكرة.

كانت وحدة المعالجة المركزية في لوحة ذاكرة الكلمات هذه، بسعة 8 كيلوبايت، تشغل حيزًا مركزيًا ضمن تصميم "لوحة فوق لوحة"، بعرض 5.25 بوصة وارتفاع 6.125 بوصة، ومغطاة بلوحة واقية. وكانت محاطة بدوائر التشغيل اللازمة للقراءة والكتابة وإعادة الكتابة. تتسع جميع مكونات وحدة المعالجة المركزية والإلكترونيات الداعمة لها على لوحة قياسية واحدة بقياس 15 × 15 بوصة (380 مم) . ويمكن دعم ما يصل إلى 32 كيلوبايت من ذاكرة الوصول العشوائي (RAM) هذه في صندوق توسعة خارجي واحد. كانت ذاكرة القراءة فقط ( ROM ) لأشباه الموصلات متوفرة آنذاك، وأصبحت الأنظمة الخالية من ذاكرة الوصول العشوائي (أي التي تعتمد على ذاكرة القراءة فقط) شائعة في العديد من البيئات الصناعية. كانت أجهزة نوفا الأصلية تعمل بتردد 200 كيلوهرتز تقريبًا ، ولكن تم تصميم جهاز سوبر نوفا الخاص بها للعمل بتردد يصل إلى 3 ميجاهرتز عند استخدامه مع ذاكرة رئيسية خاصة لأشباه الموصلات.  

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

نموذج البرمجة

يمكن تصنيف صيغة التعليمات بشكل عام إلى ثلاث وظائف رئيسية: 1) معالجة السجلات، 2) الوصول إلى الذاكرة، و3) الإدخال/الإخراج. تُكتب كل تعليمة في كلمة واحدة. تتميز معالجة السجلات بكفاءة عالية في استخدام البتات، تُضاهي تقريبًا كفاءة معالجات RISC ؛ كما يمكن للتعليمة التي تُعالج بيانات السجلات إجراء اختبارات وإزاحات، بل وحتى تجاهل النتيجة. تشمل خيارات الأجهزة وحدة ضرب وقسمة الأعداد الصحيحة، ووحدة الفاصلة العائمة (بدقة مفردة ومزدوجة)، وإدارة الذاكرة .

برنامج Data General على شريط مثقوب

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

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

التعليمات البرمجية الموضحة أدناه هي مجموعة التعليمات المشتركة التي تستخدمها جميع معالجات سلسلة نوفا. غالبًا ما تتضمن بعض الطرازات تعليمات إضافية، كما توفر بعض الأجهزة الاختيارية بعض التعليمات.

تعليمات حسابية

جميع التعليمات الحسابية كانت تُنفذ بين المُراكم. بالنسبة للعمليات التي تتطلب مُعاملين، كان أحدهما يُؤخذ من مُراكم المصدر، والآخر من مُراكم الوجهة، وتُودع النتيجة في مُراكم الوجهة. أما بالنسبة للعمليات ذات المُعامل الواحد، فكان يُؤخذ المُعامل من سجل المصدر وتُستبدل النتيجة بسجل الوجهة. في جميع رموز العمليات ذات المُعامل الواحد، كان من المسموح أن يكون مُراكم المصدر ومُراكم الوجهة متطابقين، وكانت العملية تعمل كما هو مُتوقع.

تضمنت جميع تعليمات العمليات الحسابية بت "عدم التحميل"، الذي عند تفعيله، يمنع نقل النتيجة إلى سجل الوجهة؛ وقد استُخدم هذا البت مع خيارات الاختبار لإجراء اختبار دون فقدان محتويات سجل الوجهة. في لغة التجميع ، يؤدي إضافة الرمز "#" إلى رمز العملية إلى تفعيل بت عدم التحميل.

تحتوي وحدة المعالجة المركزية على سجل أحادي البت يُسمى بت الحمل، والذي يحتوي بعد إجراء عملية حسابية على ناتج الحمل للبت الأكثر أهمية. يمكن ضبط بت الحمل على القيمة المطلوبة قبل تنفيذ العملية باستخدام حقل ثنائي البت في التعليمات. يمكن ضبط البت أو مسحه أو عكسه قبل تنفيذ التعليمات. في لغة التجميع، تُحدد هذه الخيارات بإضافة حرف إلى رمز العملية: 'O' - ضبط بت الحمل؛ 'Z' - مسح بت الحمل؛ 'C' - عكس بت الحمل؛ لا شيء - ترك بت الحمل كما هو. إذا تم تحديد بت عدم التحميل أيضًا، فسيتم استخدام قيمة الحمل المحددة في الحساب، ولكن سجل الحمل الفعلي سيبقى دون تغيير.

تضمنت جميع تعليمات العمليات الحسابية حقلاً ثنائي البت يُستخدم لتحديد خيار الإزاحة، والذي يُطبق على النتيجة قبل تحميلها في سجل الوجهة. يمكن تحديد إزاحة أحادية البت إلى اليسار أو اليمين، أو تبديل بايتَي النتيجة. كانت الإزاحات دائرية بطول 17 بت، حيث يكون بت الحمل "إلى يسار" البت الأكثر أهمية. بعبارة أخرى، عند إجراء إزاحة إلى اليسار، يُزاح البت الأكثر أهمية من النتيجة إلى بت الحمل، وتُزاح محتويات بت الحمل السابقة إلى البت الأقل أهمية من النتيجة. لم يؤثر تبديل البايتات على بت الحمل. في لغة التجميع، تُحدد هذه الخيارات بإضافة حرف إلى رمز العملية: 'L' - إزاحة إلى اليسار؛ 'R' - إزاحة إلى اليمين؛ 'S' - تبديل البايتات؛ لا شيء - عدم إجراء إزاحة أو تبديل.

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

  • SZR — تخطي النتائج الصفرية
  • نسبة الإشارة إلى الضوضاء - تخطي النتائج غير الصفرية
  • SZC - تجنب حمل الأمتعة بدون حمل
  • SNC - تجنب حمل الأمتعة غير الصفرية
  • SBN — تخطي إذا كانت كل من قيمة الحمل والنتيجة غير صفرية
  • منطقة اقتصادية خاصة - تخطي إذا كانت قيمة الحمل أو النتيجة، أو كليهما، صفرًا
  • SKP — تخطَّ دائمًا
  • لا شيء - لا تتخطى أبداً

كانت تعليمات الحساب الفعلية كالتالي:

  • MOV — نقل محتويات المُجمِّع المصدر إلى المُجمِّع الوجهة
  • COM — انقل المتمم الثنائي للمُجمِّع المصدر إلى المُجمِّع الوجهة
  • إضافة — إضافة مُجمِّع المصدر إلى مُجمِّع الوجهة
  • محول الإشارة التناظرية إلى الرقمية (ADC) - يأخذ المتمم الثنائي لمجمع المصدر ويضيفه إلى مجمع الوجهة
  • السالب — انقل الطرف السالب من مُجمِّع المصدر إلى مُجمِّع الوجهة
  • SUB — اطرح مُجمِّع مصدر المحتويات من مُجمِّع الوجهة
  • INC — أضف 1 إلى محتويات المُجمِّع المصدر وانقلها إلى المُجمِّع الوجهة
  • AND — قم بإجراء عملية AND الثنائية بين المُجمِّعين وضع النتيجة في المُجمِّع الوجهة

مثال على تعليمات حسابية، مع استخدام جميع الخيارات، هو:

ADDZR# 0 , 2 , SNC

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

تعليمات مرجعية للذاكرة

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

  • الوضع 0 — العنونة المطلقة. يتم ملء محتويات حقل العنوان الخاص بالتعليمات بالأصفار على اليسار ويتم استخدامها كعنوان الهدف.
  • النمط 1 - العنونة النسبية. يتم تمديد محتوى حقل عنوان التعليمة إلى اليسار وإضافة قيمته إلى القيمة الحالية لعداد البرنامج (الذي يشير، عند تنفيذ التعليمة، إلى التعليمة التالية). وتُستخدم النتيجة كعنوان الهدف.
  • الوضع 2 - العنونة المفهرسة. يتم تمديد محتويات حقل العنوان الخاص بالتعليمات إلى اليسار وإضافة القيمة الحالية للمراكم 2. وتستخدم النتيجة كعنوان الهدف.
  • الوضع 3 - العنونة المفهرسة. يتم تمديد محتويات حقل العنوان الخاص بالتعليمات إلى اليسار وإضافة القيمة الحالية للمراكم 3. وتُستخدم النتيجة كعنوان الهدف.

من الواضح أن الوضع 0 كان قادرًا فقط على الوصول إلى أول 256 كلمة من الذاكرة، نظرًا لحقل العنوان ذي الثمانية بتات. يُشار إلى هذا الجزء من الذاكرة باسم "الصفحة صفر". كانت كلمات الصفحة صفر تُعتبر ثمينة لمبرمجي لغة التجميع في نوفا نظرًا لقلة عددها؛ إذ لا يمكن الوصول إلى أي موقع في الصفحة صفر من أي مكان في البرنامج إلا باستخدام العنونة المفهرسة، التي تتطلب استخدام المُراكم 2 أو 3 كمسجل فهرسة. في لغة التجميع، .ZRELكان التوجيه `public` يُجبر المُجمِّع على وضع التعليمات وكلمات البيانات التي تليه في الصفحة صفر؛ بينما كان .NRELالتوجيه `public` يضع التعليمات وكلمات البيانات التالية في الذاكرة "العادية". أضافت طرازات نوفا اللاحقة تعليمات ذات حقول عنونة موسعة، مما تغلب على هذه الصعوبة (مع انخفاض في الأداء).

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

كانت تعليمات التحميل والتخزين كالتالي:

  • LDA— تحميل محتويات موقع الذاكرة إلى المُجمِّع المُحدد.
  • STA— تخزين محتويات المُجمِّع المُحدد في موقع الذاكرة.

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

كانت تعليمات نقل السيطرة هي:

  • JMP— ينقل التحكم إلى موقع الذاكرة المحدد
  • JSR("الروتين الفرعي للقفز") - يقوم بنفس ما تقوم به JMPالتعليمات، ولكنه يقوم بالإضافة إلى ذلك بتحميل عنوان العودة (التعليمات التي تلي JSRالتعليمات في السطر) في المُراكم 3 قبل القفز.

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

كانت تعليمات اختبار الذاكرة كالتالي:

  • ISZ— قم بزيادة موقع الذاكرة، وتخطى التعليمات التالية إذا كانت النتيجة صفرًا.
  • DSZ— قم بإنقاص موقع الذاكرة، وتخطى التعليمات التالية إذا كانت النتيجة صفرًا.

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

بعض الأمثلة على تعليمات الوصول إلى الذاكرة:

LDA 1 ، العد

ينقل هذا الأمر محتويات موقع الذاكرة المسمى COUNTإلى المُراكم رقم 1. بافتراض أن هذا COUNTالموقع موجود في مساحة .NREL، فإن هذه التعليمة تُعادل ما يلي:

LDA 1 , 1 ,( COUNT - ( . + 1 ))

حيث يمثل الرمز '.' موقع تعليمات LDA.

JSR@ 0 , 17

انتقل بشكل غير مباشر إلى عنوان الذاكرة المحدد بواسطة محتويات الموقع 17، في مساحة الصفحة صفر، وقم بإيداع عنوان العودة في المُراكم 3. كانت هذه هي الطريقة القياسية لإجراء استدعاء نظام RDOS على طرازات Nova المبكرة؛ وقد تُرجمت عبارة لغة التجميع .SYSTMإلى هذا.

JMP 0 , 3

انتقل إلى موقع الذاكرة الذي يحتوي عنوانه على المُراكم 3. كانت هذه وسيلة شائعة للعودة من استدعاء دالة أو روتين فرعي، حيث تركت تعليمة JSR عنوان العودة في المُراكم 3.

STA 0 , 3 , - 1

قم بتخزين محتويات المُراكم 0 في الموقع الذي يقل بمقدار واحد عن العنوان الموجود في المُراكم 3.

عدد DSZ

قلّل القيمة في الموقع المُسمى COUNT، وتجاوز التعليمات التالية إذا كانت النتيجة صفرًا. كما في الحالة السابقة، إذا COUNTافترضنا أن موجود في مساحة .NREL، فإن هذا يُعادل ما يلي:

DSZ 1 ,( COUNT - ( . + 1 ))

تعليمات الإدخال/الإخراج

طبّقت معالجات نوفا نموذجًا مُقسّمًا إلى قنوات للتفاعل مع أجهزة الإدخال/الإخراج. في هذا النموذج، كان من المتوقع أن يُنفّذ كل جهاز إدخال/إخراج علامتين، تُعرفان باسم "مشغول" و"مكتمل"، وثلاثة سجلات للبيانات والتحكم، تُعرف باسم A وB وC. توفرت تعليمات الإدخال/الإخراج لقراءة وكتابة السجلات، ولإرسال إحدى ثلاث إشارات إلى الجهاز، تُعرف باسم "بدء" و"مسح" و"نبضة". بشكل عام، يُؤدي إرسال إشارة البدء إلى بدء عملية إدخال/إخراج تم إعدادها بتحميل قيم في السجلات A/B/C. تُوقف إشارة المسح عملية الإدخال/الإخراج وتُزيل أي مقاطعة ناتجة عنها. تُستخدم إشارة النبضة لبدء عمليات إضافية على الأنظمة الفرعية المعقدة، مثل عمليات البحث في محركات الأقراص. عادةً ما تنقل الأجهزة التي يتم استطلاعها البيانات مباشرةً بين الجهاز والسجل A. تستخدم أجهزة الوصول المباشر إلى الذاكرة (DMA) عادةً السجل A لتحديد عنوان الذاكرة، والسجل B لتحديد عدد الكلمات المراد نقلها، والسجل C لعلامات التحكم. كانت القناة 63 تشير إلى وحدة المعالجة المركزية نفسها وكانت تستخدم لوظائف خاصة متنوعة.

تحتوي كل تعليمة إدخال/إخراج على حقل رقم قناة مكون من ستة بتات، وحقل مكون من أربعة بتات لتحديد السجل المراد قراءته أو كتابته، وحقل مكون من بتين لتحديد الإشارة المراد إرسالها. في لغة التجميع، يتم تحديد الإشارة بإضافة حرف إلى رمز العملية: 'S' للبدء، و'C' للمسح، و'P' للنبض، ولا شيء لعدم وجود إشارة. رموز العمليات هي:

  • DIA— انقل محتويات سجل A الخاص بالجهاز إلى المُراكم المُحدد
  • DOA— إرسال محتويات المُراكم المُحدد إلى السجل A للجهاز على القناة المُحددة
  • DIB— انقل محتويات سجل B الخاص بالجهاز إلى المُراكم المُحدد
  • DOB— إرسال محتويات المُراكم المُحدد إلى السجل B للجهاز على القناة المُحددة
  • DIC— انقل محتويات سجل C الخاص بالجهاز إلى المُراكم المُحدد
  • DOC— إرسال محتويات المُراكم المُحدد إلى سجل C الخاص بالجهاز على القناة المُحددة
  • NIO— "لا إدخال/إخراج"، تسمية خاطئة. استُخدمت هذه التعليمات لإرسال إشارة إلى جهاز دون إجراء نقل بيانات بين السجلات.

بالإضافة إلى ذلك، كانت هناك أربع تعليمات متاحة لاختبار حالة الجهاز:

  • SKPBN— تخطَّ التعليمات التالية إذا كانت علامة انشغال الجهاز مُفعَّلة
  • SKPBZ— تخطَّ التعليمات التالية إذا كانت علامة انشغال الجهاز غير ظاهرة
  • SKPDN— تخطَّ التعليمات التالية إذا تم ضبط علامة الانتهاء الخاصة بالجهاز
  • SKPDZ— تخطَّ التعليمات التالية إذا كانت علامة اكتمال الجهاز غير ظاهرة

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

تعليمات خاصة

أدت هذه التعليمات وظائف متنوعة للتحكم في وحدة المعالجة المركزية وحالة النظام. وكانت جميعها في الواقع اختصارات لتعليمات الإدخال/الإخراج على القناة 63، وهي قناة الإدخال/الإخراج المرجعية الذاتية لوحدة المعالجة المركزية.

  • INTA— تأكيد المقاطعة. تم نقل رقم قناة الجهاز المُقاطع إلى المُراكم المُحدد.
  • INTDS— تم تعطيل جميع المقاطعات
  • INTEN— تم تفعيل جميع المقاطعات
  • IORST— إعادة ضبط الإدخال/الإخراج. تم إرسال إشارة إعادة ضبط على ناقل الإدخال/الإخراج، مما أدى إلى إيقاف جميع عمليات الإدخال/الإخراج، وتعطيل المقاطعات، ومسح جميع المقاطعات المعلقة.
  • MSKO— تم تعطيل القناع. استُخدمت محتويات المُراكم المُحدد لضبط قناع المقاطعة. وتختلف طريقة تفسير القناع باختلاف تصميم كل جهاز إدخال/إخراج. بعض الأجهزة لا يمكن تعطيلها.
  • READS— تم نقل محتويات مفاتيح البيانات الستة عشر الموجودة على اللوحة الأمامية إلى المُجمِّع المحدد.
  • HALT— أوقف المعالج. وبمجرد إيقافه، لا يمكن إعادة تشغيله إلا بالتدخل اليدوي من اللوحة الأمامية.

المقاطعات ومعالجة المقاطعات

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

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

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

بعد معالجة المقاطعة وإرسال روتين الخدمة إشارة مسح الإدخال/الإخراج إلى الجهاز، استأنف المعالجة العادية بتفعيل المقاطعات ثم العودة عبر قفزة غير مباشرة من خلال عنوان الذاكرة 0. JMP@ 0ولمنع مقاطعة معلقة من المقاطعة مباشرةً قبل قفزة العودة (مما قد يؤدي إلى الكتابة فوق عنوان العودة)، INTENكان للتعليمات تأخير دورة تعليمات واحدة. عند INTENتنفيذ هذه التعليمات، لن يتم تفعيل المقاطعات إلا بعد تنفيذ التعليمات التالية؛ وكان من المتوقع أن تكون تلك التعليمات هي JMP@ 0تعليمات .

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

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

تصميم اللوحة الأمامية

تشغيل جهاز Nova 840 (تم استبدال اللوحة الأمامية بلوحة من جهاز 1220).

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

يتحكم كل مفتاح من مفاتيح البيانات في قيمة بت واحد ضمن قيمة مكونة من 16 بت، ووفقًا لاتفاقية Data General، تم ترقيمها من 0 إلى 15 من اليسار إلى اليمين. توفر مفاتيح البيانات مدخلات لوحدة المعالجة المركزية (CPU) لوظائف متنوعة، ويمكن أيضًا قراءتها بواسطة برنامج قيد التشغيل باستخدام تعليمة READS في لغة التجميع. ولتقليل ازدحام اللوحة وتوفير التكاليف، تم تصميم مفاتيح الوظائف كمفاتيح لحظية ثنائية الاتجاه. عند رفع ذراع مفتاح الوظيفة، يتم تشغيل الوظيفة التي يظهر اسمها أعلى المفتاح على اللوحة؛ وعند الضغط على الذراع لأسفل، يتم تشغيل الوظيفة التي يظهر اسمها أسفل المفتاح. يعود ذراع المفتاح إلى وضعه المحايد عند تركه.

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

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

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

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

كانت آلية تحميل البرنامج (PROGRAM LOAD) هي الآلية المستخدمة عادةً لتشغيل جهاز نوفا. عند تفعيل هذا المفتاح، يتم تحميل أول 32 كلمة من ذاكرة القراءة فقط (ROM) الخاصة بالتشغيل (32 كلمة)، وتعيين عداد البرنامج إلى الصفر، ثم تشغيل وحدة المعالجة المركزية (CPU). تحتوي ذاكرة القراءة فقط (ROM) الخاصة بالتشغيل على تعليمات برمجية تقرأ 256 كلمة (512 بايت) من جهاز إدخال/إخراج محدد إلى الذاكرة، ثم تنقل التحكم إلى التعليمات البرمجية المقروءة. تُستخدم مفاتيح البيانات من 8 إلى 15 لإخبار ذاكرة القراءة فقط (ROM) الخاصة بالتشغيل بقناة الإدخال/الإخراج التي سيتم التشغيل منها. إذا كان المفتاح 0 مطفأً، تفترض ذاكرة القراءة فقط (ROM) الخاصة بالتشغيل أن الجهاز جهاز استطلاع (مثل قارئ الشريط الورقي) وتُشغّل حلقة إدخال استطلاع حتى يتم قراءة 512 بايت. أما إذا كان المفتاح 0 مُفعلاً، فتفترض ذاكرة القراءة فقط (ROM) الخاصة بالتشغيل أن الجهاز يدعم الوصول المباشر إلى الذاكرة (DMA) وتبدأ عملية نقل بيانات DMA. لم تكن ذاكرة القراءة فقط (ROM) الخاصة بالتشغيل ذكية بما يكفي لتحديد موضع الجهاز قبل بدء عملية النقل. وقد شكّل هذا مشكلة عند إعادة التشغيل بعد حدوث عطل. إذا كان جهاز الإقلاع قرصًا صلبًا، فمن المحتمل أن رؤوسه قد وُضعت على أسطوانة عشوائية. كان لا بد من إعادة وضعها على الأسطوانة رقم 0، حيث يكتب نظام التشغيل RDOS كتلة الإقلاع من المستوى الأول، لكي تعمل عملية الإقلاع. جرت العادة على القيام بذلك عن طريق تدوير القرص خلال تسلسل التحميل، ولكن المستخدمين الذين شعروا بالإحباط من وقت الانتظار (الذي يصل إلى 5 دقائق حسب طراز القرص) تعلموا كيفية إدخال رمز "إعادة معايرة" الإدخال/الإخراج من اللوحة الأمامية للقرص، وتنفيذه خطوة بخطوة بواسطة وحدة المعالجة المركزية، وهي عملية لا تستغرق من المستخدم الخبير سوى بضع ثوانٍ.

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

أداء

نفّذ معالج Nova 1200 تعليمات الوصول إلى الذاكرة الأساسية (LDA وSTA) في 2.55 ميكروثانية. ووفر استخدام ذاكرة القراءة فقط 0.4 ميكروثانية. استغرقت تعليمات المُراكم (ADD، SUB، COM، NEG، إلخ) 1.55 ميكروثانية، وMUL 2.55 ميكروثانية، وDIV 3.75 ميكروثانية، وISZ من 3.15 إلى 4.5 ميكروثانية. [ 33 ] أما في معالج Eclipse MV/6000 اللاحق، فقد استغرقت تعليمات LDA وSTA 0.44 ميكروثانية، بينما استغرقت تعليمات ADD، إلخ، 0.33 ميكروثانية، وMUL 2.2 ميكروثانية، وDIV 3.19 ميكروثانية، وISZ 1.32 ميكروثانية، وFAD 5.17 ميكروثانية، وFMMD 11.66 ميكروثانية. [ 34 ]

أمثلة على لغة التجميع

برنامج "مرحباً بالعالم"

هذا مثال برمجي بسيط بلغة التجميع نوفا. صُمم هذا المثال ليعمل تحت نظام التشغيل RDOS ويطبع العبارة " Hello, world. " على وحدة التحكم.

برنامج "مرحباً بالعالم" لنظام نوفا الذي يعمل بنظام RDOS ؛ يستخدم استدعاء النظام PCHAR . .titl hello .nrel .ent startstart: dochar: lda 0 , @ pmsg ; تحميل الحرف التالي إلى ac0، mov# 0 , 0 , snr ; اختبار ac0؛ تخطي إذا كانت النتيجة غير صفرية (لا تقم بتحميل النتيجة) jmp done .systm .pchar ; طباعة الأول jmp er ; تم التخطي إذا كان صحيحًا movs 0 , 0 ; تبديل البايتات .systm .pchar ; طباعة الثاني jmp er ; تم التخطي إذا كان صحيحًا isz pmsg ; الإشارة إلى الحرف التالي jmp dochar ; التكرارتم: .systm ؛ خروج عادي .rtn er: .systm ؛ خروج خطأ .ertn haltpmsg: . + 1 ; مؤشر إلى الحرف الأول من السلسلة ; ملاحظة: يتم ترتيب البايتات من اليمين إلى اليسار افتراضيًا ; <15><12> يشير إلى زوج CR LF. .txt / Hello , world. < 15 >< 12 >/ 0 ; علامة على كلمة لإنهاء السلسلة.end start

الضرب 16 بت

كانت النماذج الأساسية من نوفا تأتي بدون إمكانية الضرب والقسمة المدمجة في الجهاز، وذلك للحفاظ على أسعار تنافسية. يقوم الروتين التالي بضرب كلمتين من 16 بت لإنتاج كلمة واحدة من 16 بت (مع تجاهل أي تجاوز). يوضح هذا الروتين الاستخدام المدمج لـ ALU op و shift و test (skip). لاحظ أنه عند استدعاء هذا الروتين jsr، فإن AC3 يحمل عنوان الإرجاع . يُستخدم هذا العنوان بواسطة تعليمة الإرجاع jmp 0,3. إحدى الطرق الشائعة لمسح المُراكم هي sub 0,0. يمكن ترتيب تعليمات أخرى لتحميل مجموعة محددة من الثوابت المفيدة (مثل -2 أو -1 أو +1).

mpy: ; ضرب AC0 <- AC1 * AC2، بواسطة توبي ثينsub 0 , 0 ; مسح النتيجة mbit: movzr 1 , 1 , szc ; إزاحة المضاعف، اختبار البت الأقل أهمية add 2 , 0 ; 1: جمع المضاعف movzl 2 , 2 , szr ; إزاحة واختبار الصفر jmp mbit ; إذا لم يكن صفرًا، قم بتنفيذ بت آخر jmp 0 , 3 ; إرجاع

مُجمِّع الطباعة الثنائية

يطبع الروتين التالي قيمة AC1 كرقم ثنائي مكون من 16 خانة على وحدة تحكم RDOS. ويكشف هذا الروتين عن المزيد من خصائص مجموعة تعليمات Nova. على سبيل المثال، لا توجد تعليمة لتحميل قيمة "فورية" عشوائية في المُراكم (مع أن تعليمات الوصول إلى الذاكرة تُشفّر هذه القيمة لتكوين عنوان فعلي). يجب عمومًا تحميل المُراكم من مواقع ذاكرة مُهيأة (مثلًا) n16. تسمح أجهزة أخرى معاصرة مثل PDP-11 ، وجميع البنى الحديثة تقريبًا، بالتحميل الفوري، مع أن العديد منها، مثل ARM، يُقيّد نطاق القيم التي يُمكن تحميلها فورًا.

.systmنظرًا لأن ماكرو استدعاء RDOS يُنفذ عمليةً ما jsr، يتم استبدال AC3 بعنوان الإرجاع الخاص بالدالة .pchar. لذلك، يلزم موقع مؤقت لحفظ عنوان الإرجاع الخاص بالدالة المُستدعية. بالنسبة للروتينات التكرارية أو التي تتطلب إعادة الدخول، يجب استخدام مكدس، سواءً كان ذلك عبر العتاد أو البرمجيات. تصبح تعليمة الإرجاع jmp @ retrnهي التي تستغل نمط العنونة غير المباشر في نوفا لتحميل عداد البرنامج (PC) الخاص بالإرجاع.

تُظهر تعريفات الثوابت في النهاية ميزتين للمجمع: أساس المجمع هو ثماني افتراضيًا ( 20= ستة عشر)، ويمكن ترميز الثوابت الحرفية على سبيل المثال "0.

pbin: ; اطبع AC1 على وحدة التحكم كـ 16 رقمًا ثنائيًا، بواسطة توبي ثينsta 3 , retrn ; حفظ عنوان الإرجاع lda 2 , n16 ; إعداد عداد البتات loop: lda 0 , chr0 ; تحميل ASCII '0' movzl 1 , 1 , szc ; الحصول على البت التالي في الحمل inc 0 , 0 ; رفع القيمة إلى '1' .systm .pchar ; AC0-2 محفوظة jmp err ; في حالة وجود خطأ inc 2 , 2 , szr ; رفع العداد jmp loop ; التكرار مرة أخرى إذا لم يكن صفرًا lda 0 , spc ; إخراج مسافة .systm .pchar jmp err ; في حالة وجود خطأ jmp @ retrnspc: " ;هذا مسافة chr0: "0 n16: -20 retrn: 0

التطبيقات

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

انظر أيضاً

ملحوظات

  1. من المرجح أن يكون هذا رد فعل على مشاكل جهاز PDP-6 ، الذي استخدم لوحات كبيرة الحجم وشهد معدلات فشل عالية. أما جهاز PDP-10 ، وهو في الأساس نسخة مُعاد هندستها من جهاز PDP-6، فيستخدم بطاقات "رقاقة مقلوبة" أصغر حجماً.

مراجع

الاقتباسات

  1. "متحف تاريخ الكمبيوتر - شركة داتا جنرال (DG) - أفضل كمبيوتر صغير في العالم" .
  2. هاي، توني؛ هاي، أنتوني؛ باباي، جيوري (2014). عالم الحوسبة: رحلة عبر ثورة . مطبعة جامعة كامبريدج. ص 165. ISBN  9780521766456.
  3. 1 2 هندري 2002 ، ص. 40.
  4. 1 2 3 4 5 سوبنيك 2004 .
  5. 1 2 3 4 هندري 2002 ، ص 48.
  6. هندري 2002 ، ص 42.
  7. "عندما يصبح الحاسوب الصغير حاسوبًا دقيقًا: DGC microNOVA mN601 و602" . متحف CPU Shack . 21 نوفمبر 2014.
  8. هندري 2002 ، ص 43.
  9. هندري 2002 ، ص 43-44.
  10. 1 2 3 جيانلوكا ج. (2017). "تاريخ وحدة الحساب والمنطق 74181 في الحواسيب الصغيرة التجارية" . مؤرشف من الأصل بتاريخ 7 أكتوبر 2018. تم الاطلاع عليه بتاريخ 1 يناير 2023 .
  11. هندري 2002 ، ص 49.
  12. "أفضل حاسوب صغير في العالم" (ملف PDF) . نوفمبر 1968. مؤرشف (ملف PDF) من الأصل بتاريخ 11-12-2019.
  13. 1 2 "أُحبطت في شركة دي إي سي، وازدهرت في شركة داتا جنرال" . متحف تاريخ الحاسوب .
  14. جونز، دوغلاس. "شركة المعدات الرقمية PDP-8" . قسم علوم الحاسوب، جامعة أيوا .
  15. هندري 2002 ، ص 50.
  16. 1 2 "سوبرنوفا" (ملف PDF) . متحف تاريخ الحاسوب . 1970. مؤرشف (ملف PDF) من الأصل بتاريخ 11-12-2019.
  17. "الشركة التي نسيها الزمن: شركة داتا جنرال قد ولّت. ولكن هل هذا يجعل مؤسسها فاشلاً؟" money.cnn.com . 1 أبريل 2003. مؤرشف من الأصل في 26 يوليو 2014. تم الاطلاع عليه في 27 يوليو 2016 .
  18. 1 2 هندري 2002 ، ص 53.
  19. "البيانات: التاريخ العام / الخلفية" . جامعة كليمسون .
  20. هندري 2002 ، ص 54.
  21. هندري 2002 ، ص 44.
  22. 1 2 3 4 هندري 2002 ، ص 55.
  23. هندري 2002 ، ص 58.
  24. هندري 2002 ، ص 60.
  25. 1 2 نوفا 4/S و4/X (ملف PDF) . سلسلة مراجع مهندس الميدان. داتا جنرال . يونيو 1981.
  26. 1 2 microNOVA . Data General. 1977.
  27. "Enterprise - جهاز كمبيوتر للأعمال ذو 16 بت بسعر 2300 جنيه إسترليني فقط" . عالم الكمبيوتر الشخصي . أكتوبر 1983.
  28. تشارلز ب. ثاكر؛ إدوارد م. مكريت (ديسمبر 1974). "ألتو: نظام حاسوب شخصي" (ملف PDF) . صفحة 13. مؤرشف (ملف PDF) من الأصل بتاريخ 2011-06-06. 
  29. توم عواد (2005). إنشاء نسخة طبق الأصل من جهاز Apple I: العودة إلى المرآب . ص. 21. ISBN  1-931836-40-X.
  30. "استعادة البيانات العامة" . Data General Nova، Eclipse، MV و AV . تم الاطلاع عليه بتاريخ 2021-08-20 .
  31. "الحواسيب الصغيرة العامة للبيانات الضخمة والجميلة" . www.chookfest.net . تاريخ الاسترجاع: 20 أغسطس 2021 .
  32. "كيفية صيانة جهاز نوفا" (ملف PDF) . داتا جنرال. 1969.
  33. الدليل الفني لجهاز نوفا 1200 (ملف PDF) . المجلد الأول. البيانات العامة. 1971. الصفحات 1-4 . 015-000002.  
  34. مبادئ تشغيل Eclipse MV/6000 (ملف PDF) . داتا جنرال. 1980. الملحق F، أوقات تنفيذ التعليمات. 014-000648.

فهرس