لقد شاركنا مؤخرًا في استعادة جهاز التحكم على متن الطائرة Apollo - الكمبيوتر الذي كان مسؤولًا عن التحكم والتنقل والمراقبة على متن مهام Apollo المتجهة إلى القمر. كان هذا الكمبيوتر التاريخي واحدًا من أول من استخدم الدوائر المتكاملة (ICs) ، وتم بناء المعالج الخاص به تمامًا على صمامات NOR (النوع الثاني من ICs ، وهو مكبر صوت للقراءة ، تم استخدامه في ذاكرة الكمبيوتر). في هذه المقالة ، سوف أصف بنية وتصميم وحدة المعالجة المركزية.
أبولو التحكم في هندسة الكمبيوتر
صواني منفصلة للكمبيوتر التحكم أبولو. الدرج الأيسر يحتوي على منطق يعتمد على بوابات NOR. في اليمين - الذاكرة والمكونات المساعدة.تم تطوير كمبيوتر Apollo Guidance في الستينيات للسماح لبعثات Apollo بالتوجه إلى القمر. في الوقت الذي شغلت فيه معظم أجهزة الكمبيوتر مساحة من ثلاجة كاملة الحجم إلى غرفة بأكملها ، كان AGC شيئًا فريدًا من نوعه - كان صغيرًا بما يكفي لوضعه على متن مركبة Apollo الفضائية ، وزنه 32 كجم ولم يستغرق أكثر من 0.03 متر
3 (30 لتر).
الكمبيوتر AGC هو 15 بت. من الغريب مقابلة حجم كلمة لا يمثل قوة لاثنين ، ولكن في الستينيات ، حتى قبل أن تصبح البايتات شائعة ، استخدمت أجهزة الكمبيوتر مجموعة متنوعة من أحجام الكلمات. توفر 15 بت دقة كافية للهبوط على القمر (وتستخدم البيانات بدقة مضاعفة وثلاثية إذا لزم الأمر) ، لذلك ستزيد 16 بت ببساطة من حجم ووزن الكمبيوتر دون داع.
كانت تعليمات AGC موجودة في كلمة مكونة من 15 بت ، وتتكون من 3 بتات ، تشير إلى رمز العملية ، و 12 بت ، تشير إلى العنوان في الذاكرة. لسوء الحظ ، كانت هذه المجلدات لا تزال غير كافية ، لذلك استخدم الكمبيوتر العديد من الحيل والحلول ، واتضح أن البنية كانت غريبة بعض الشيء. يمكن لعنوان ذاكرة 12 بت الوصول إلى كلمات 4K فقط. في الوقت نفسه ، كان لدى AGC كلمات 2K في ذاكرة الوصول العشوائي الرئيسية والكلمات 36K في الذاكرة الأساسية. للوصول إلى جميع الذاكرة ، استخدم AGC نظام تبديل بنك ذاكرة متطور وسجلات متعددة. بمعنى آخر ، لا يمكن الوصول إلى الذاكرة إلا من خلال 256 كلمة وذاكرة القراءة فقط (ROM) - في أجزاء بحجم أكبر قليلاً.
3 بتات لرمز العملية لم تكن كافية للإشارة مباشرة إلى 34 تعليمات محتملة ، لذلك ، استخدمت AGC الحيل مع تمديد قيمة التعليمات ومع حقيقة أن بعض التعليمات من المنطقي تنفيذها فقط مع خلايا ذاكرة معينة. بالإضافة إلى ذلك ، تم استخدام الحيل مثل العناوين "السحرية" في الذاكرة - على سبيل المثال ، أدت الكتابة إلى خلية "shift right right" إلى إجراء تغيير في اتجاه العمل ، مما يلغي الحاجة إلى تعليمة "shift الأيمن" منفصلة. كانت هناك أيضًا تعليمات تجمع بين العديد من الإجراءات في وقت واحد.
كانت بنية AGC بسيطة جدًا ، حتى بمعايير الستينيات. على الرغم من أنه تم إنشاؤه في عصر من الهياكل المركزية المعقدة والقوية ، إلا أن قدرات AGC كانت محدودة للغاية ؛ من حيث القوة والهندسة المعمارية ، فهي مماثلة للمعالجات الدقيقة في وقت مبكر. كانت قوتها هي حجمها الصغير وقدراتها العظيمة لتوفير المدخلات والمخرجات في الوقت الحقيقي.
يوضح المخطط المعماري أدناه المكونات الرئيسية لـ AGC. سلطت الضوء على الأجزاء التي أتناولها بمزيد من التفصيل. كان لدى AGC مجموعة صغيرة من السجلات ، ووحدة حسابية بسيطة تتعامل فقط مع الإضافة. كان لديه فقط 36K الكلمات ROM و 2 K الكلمات RAM. كانت "حافلة الكتابة" هي الطريقة الرئيسية لنقل البيانات بين المكونات. تعليمات فك التشفير ومولد تسلسل ولدت نبضات التحكم ل AGC.
مخطط كتلة AGCما يقرب من نصف الرسم البياني مشغول بالذاكرة ، مما يعكس حقيقة أنه في كثير من الجوانب تم تطوير بنية AGC حول ذاكرتها. مثل معظم أجهزة الكمبيوتر في الستينيات ، استخدم AGC الذاكرة الأساسية ، حيث يقوم بتخزين كل قطعة في حلقة صغيرة من الفريت (الأساسية) معلقة على شبكة سلكية. نظرًا لأن كل قطعة تتطلب نواة مادية منفصلة ، فإن مقدار هذه الذاكرة كان أقل جذريًا من كمية أشباه الموصلات الحديثة. كانت إحدى السمات المميزة للذاكرة على النوى هي أن قراءة كلمة من الذاكرة حذفها ، لذلك بعد كل وصول يجب إعادة كتابة هذه القيمة. كان لدى AGC أيضًا ذاكرة ROM ثابتة ، وهي
النوى المُخيطة الشهيرة - حيث كانت تُستخدم لتخزين البرامج ، وقد تم تركيبها فعليًا بالأسلاك (انظر أدناه).
عن قرب الذاكرة على النوى مخيطصمامات NOR
كان AGC أحد أوائل أجهزة الكمبيوتر التي تستخدم IP. كانت إمكانيات عناوين IP الأولى محدودة للغاية ؛ على رقائق AGC (أدناه) لم يكن هناك سوى ستة الترانزستورات وثمانية مقاومات ، وقاموا معًا بتنفيذ بوابة NOR بثلاثة مدخلات.
صمام ثنائي NOR مع ثلاثة مدخلات من AGC. يتم توصيل عشرة أسلاك خارج البلورة بالجهات الخارجية لـ IC.يظهر أدناه التصميم التخطيطي لصمام NOR. هذه هي أبسط بوابة منطقية: إذا كانت جميع المدخلات تساوي الصفر ، فإن المخرجات تساوي واحدًا. قد تفاجأ ، ولكن بوابة NOR واحدة تكفي لإنشاء جهاز كمبيوتر. NOR هو صمام عالمي: يمكن صنع أي صمام منطقي آخر على أساسه. على سبيل المثال ، عند الجمع بين جميع المدخلات NOR ، نحصل على العاكس. بعد وضع العاكس عند إخراج NOR ، نحصل على صمام OR. من خلال وضع العاكسون عند مدخل بوابة NOR ، نحصل على بوابة AND. ومن هذه البوابات ، يمكنك بناء منطق أكثر تعقيدًا: المشغلات والإضافات والعدادات.
صمام NAND لديه نفس التنوع. في الدوائر الحديثة ، لأسباب تقنية ، يتم استخدام NANDs أكثر من NORs. في الدورة التدريبية الشائعة "
من NAND إلى Tetris " توضح كيفية إنشاء جهاز كمبيوتر من NAND-valves ، حتى تنفيذ لعبة "Tetris". أولاً ، يتم إنشاء مجموعة من البوابات المنطقية من NAND (NOT و AND و OR و XOR و multiplexer و demultiplexer). ثم ، يتم إنشاء كتل بناء أكبر منها (المشغل ، الأفعى ، العداد ، ALU ، التسجيل) ، ومنهم - كمبيوتر.
تعطي بوابة NOR 1 ، إذا كانت تحتوي على 0 على جميع المدخلات ، وإذا كان أحد المدخلات على الأقل يحتوي على 1 ، فإن NOR تعطي 0.في كثير من الأحيان في AGC يأتي عبر مكون مثل RS-trigger (set-reset ، set / reset). تتكون هذه الدائرة من اثنين من بوابات NOR وتخزين بت بيانات واحد. يتم تخزين البت 1 عند إدخال مجموعة ، ويتم تخزين البت 0 عند إدخال إعادة الضبط ، أي أن النبض 1 ، يطبق على ضبط الإدخال ، ويطفئ الصمام العلوي وينطفئ على الجانب السفلي ، لذلك ينطفئ الإخراج 1. النبض 1 ، يطبق على إعادة ضبط الإدخال ، يقوم بالعكس . إذا تم تطبيق 0 على كلا الإدخالين ، فإن المشغل يتذكر حالته السابقة ، ويلعب دور محرك الأقراص. في القسم التالي ، سنعرض كيفية عمل السجلات من المشغل.
RS الزناد من اثنين من البوابات NOR. ينطفئ الصمام الآخر عند تشغيله. يشير الخط الموجود فوق أحد المخرجات إلى أنه يكمل الآخر.سجلات
لدى AGC مجموعة صغيرة من السجلات للتخزين المؤقت للقيم خارج الذاكرة الرئيسية. السجل الرئيسي هو محرك الأقراص (أ) المستخدم في العديد من العمليات الحسابية. يحتوي أيضًا على سجل مضاد Z ، وسجلات الكتلة الحسابية X و Y ، والمخزن المؤقت B ، وعنوان المرسل Q ، وبعضها الآخر (في أجهزة الكمبيوتر الحديثة ، يتم استخدام المكدس لاستدعاء الروتين والعودة منه ، ولكن في تلك الحقبة ، كان المبرمجون بحاجة إلى كتابة المكدس بأنفسهم للتكرار ). للوصول إلى الذاكرة ، يوجد سجل لعنوان الذاكرة S ، وللبيانات ، سجل مؤقت للذاكرة G. أيضًا ، لدى AGC سجلات في الذاكرة الرئيسية - على سبيل المثال ، عدادات الإدخال / الإخراج.
يوضح الرسم البياني أدناه مخطط تسجيل AGC ، الذي تم تبسيطه للحالة باستخدام سجل واحد وبتين. كل بت سجل لديه المشغل باستخدام المخطط الموصوف سابقا (الأزرق والأرجواني). يتم نقل البيانات من وإلى السجلات عبر ناقل الكتابة (أحمر). للكتابة إلى السجل ، تتم إعادة تعيين المشغل بإشارة واضحة (CQG أو CZG ، خضراء). ثم إشارة "الكتابة" (WQG أو WZG ، البرتقالي) تسمح للبيانات التي تطول حافلة الكتابة بتعيين مشغل التسجيل المقابل. لقراءة السجل ، تقوم إشارة القراءة (RQG أو RZG ، سماوي) بتمرير خرج المشغل من خلال مضخم التسجيل إلى ناقل التسجيل ، ويتم استخدامه في أجزاء أخرى من AGC. نظام التسجيل الكامل أكثر تعقيدًا ، حيث يحتوي على عدة سجلات ذات 16 بت ، لكن المخطط الأساسي هو كما يلي.
عملية تسجيل AGC المبسطةيوضح مخطط السجل ثلاث نقاط أساسية. أولاً ، تم بناء دائرة التسجيل من بوابات NOR. ثانياً ، تم بناء حركة البيانات حول ناقل الكتابة. أخيرًا ، تعتمد إجراءات السجلات على بعض إشارات التحكم التي تصل في الوقت المناسب.
وحدة حسابية
تحتوي معظم أجهزة الكمبيوتر على
جهاز منطقي للحساب يقوم بإجراء العمليات
الحسابية والمنطقية . مقارنةً بالحواسب الحديثة ، فإن الوحدة الحسابية في AGC محدودة للغاية: فهي تؤدي فقط إضافة كميات 16 بت ، لذلك يطلق عليها الوحدة الحسابية وليست الوحدة الحسابية المنطقية (يتم تنفيذ بقية العمليات من خلال الحيل المختلفة ؛ على سبيل المثال ، يتم إجراء الطرح من خلال الجمع ، على سبيل المثال لإحدى الحجج ، يتم عكس البتات ، إلخ.).
يوضح الرسم البياني أدناه جزءًا واحدًا من الوحدة الحسابية AGC.
الأفعى الكامل (الأحمر) بحساب مجموع اثنين من البتات وتحمل. يتم نقل النقل إلى التاجر التالي - وبهذه الطريقة يمكن دمجها لإضافة كلمات أطول (لتسريع نقل التحويلات في حالات مثل 111111111111111 + 1 ، يستخدم AGC إعلانًا مع
تخطي نقل ).

توفر سجلات X و Y (الأرجواني والأخضر) بتين الإدخال إلى الأفعى. يتم تنفيذها باستخدام المشغلات الموصوفة بالفعل على الصمامات NOR. تكتب الحلقة الزرقاء القيم إلى سجلات X و Y وفقًا لإشارات التحكم. المخطط معقد للغاية ، لأنه يسمح لك بتخزين الثوابت والقيم مع تحول في السجلات ، لكنني لن أخوض في هذا الموضوع. انتبه إلى إشارة التحكم A2X ، التي تنقل قيمة السجل A للتسجيل X ؛ سوف نعود اليه لاحقا.
الصورة أدناه توضح التنفيذ الفعلي لدائرة AGC. تطبق هذه الوحدة أربعة أجزاء للتسجيل ووحدة حسابية. المستطيلات السوداء هي عناوين IP مسطحة ؛ تحتوي كل وحدة على لوحين مع 60 رقاقة لكل منهما ، وما مجموعه 240 بوابة NOR. يتم تجميع الوحدة الحسابية والسجلات من أربع وحدات متطابقة ، كل منها يعالج أربعة بتات ؛ هذا مشابه
لقسم المعالجات الدقيقة .
يتم تجميع الوحدة الحسابية والسجلات من أربع وحدات متطابقة. يتم تثبيت الوحدات النمطية في فتحات من A8 إلى A11.تنفيذ التعليمات
يصف هذا القسم تسلسل العمليات التي ينفذها AGC لتنفيذ التعليمات. على وجه الخصوص ، سأعرض كيفية عمل تعليمات ADS (إضافة إلى التخزين). يقرأ هذا الإرشادات القيمة من الذاكرة ، ويضيفها إلى محرك الأقراص (التسجيل A) ، ويحفظ المبلغ في كل من الأفعى والذاكرة. هذه هي إرشادات واحدة ، ولكن لتنفيذها ، تتخذ AGC عدة خطوات ويتم نقل العديد من القيم هنا وهناك.
يتم تنفيذ مؤقت التعليمات بسبب نظام الذاكرة الفرعي على النوى المغناطيسية. على وجه الخصوص ، تؤدي قراءة قيمة من الذاكرة إلى مسح القيمة المخزنة ، لذا يجب إعادة كتابة القيمة بعد كل قراءة. أيضًا ، عند الوصول إلى الذاكرة ، هناك تأخير بين تعيين العنوان واستلام البيانات. ونتيجة لذلك ، تنفق كل دورة على مدار الساعة 12 خطوة للقراءة والتسجيل اللاحق. يدوم كل فاصل زمني (من T1 إلى T12) أقل بقليل من الثانية ، وتستغرق الدورة بأكملها 11.7 ثانية ، وتسمى وقت دورة الذاكرة (MCT).
وحدة الذاكرة الأساسية المغناطيسية القابلة للمسح من AGC. يخزن 2 كيلوغرامات ، يتم تخزين كل بت باستخدام حلقة الفريت صغيرة منفصلة.MCT هي الوحدة الأساسية للذاكرة لتنفيذ التعليمات. يتطلب التعليم النموذجي دورتين على مدار الساعة: الأولى لاستخراج التعليمات من الذاكرة ، والثانية لإجراء العملية. لذلك ، تأخذ التعليمات النموذجية اثنين من MCTs (23.4 )s) ، مما يعطينا 43000 تعليمة في الثانية (مقارنة بالمعالجات الحديثة ومليارات التعليمات الخاصة بها في الثانية ، وهذا بطيء للغاية).
تقوم AGC بمعالجة التعليمات ، وتقسيمها إلى أوامر فرعية ، يأخذ كل منها دورة ساعة واحدة من الذاكرة. على سبيل المثال ، يتكون تعليمة ADS من اثنين من الأوامر الفرعية: ADS0 (الجمع) و STD2 (استدعاء التعليمات التالية). يوضح الرسم البياني أدناه حركة البيانات داخل AGC لتنفيذ تعليمات ADS0. 12 تدابير تذهب من اليسار إلى اليمين.

أهم الخطوات هي كما يلي:
T1: يتم نسخ عنوان المعامل من سجل الإرشادات B إلى عنوان الذاكرة تسجيل S لبدء القراءة من الذاكرة.
T4: يتم قراءة المعامل من الذاكرة إلى سجل بيانات الذاكرة G.
T5: يتم نسخ المعامل من G إلى adder Y. يتم نسخ قيمة محرك الأقراص A إلى adder X.
T6: يقوم الأفعى بحساب المبلغ U ونسخه إلى سجل بيانات الذاكرة G.
T8: يتم نسخ عداد البرنامج Z إلى سجل عنوان الذاكرة S استعدادًا لتلقي التعليمات التالية من الذاكرة.
T10: تتم إعادة المبلغ من سجل بيانات الذاكرة G مرة أخرى إلى الذاكرة.
T11: يتم نسخ المبلغ U إلى محرك الأقراص A.
على الرغم من أن هذا يمثل تعليمة بسيطة للتلخيص ، إلا أن الكثير من البيانات يتم نقلها مرارًا وتكرارًا عبر 12 فترة زمنية. ومع كل من هذه الإجراءات ، ترتبط إشارة تحكم محددة ؛ على سبيل المثال ، تقوم الإشارة A2X في الفاصل الزمني T5 بنسخ القيمة من محرك الأقراص A للتسجيل X. لنسخ السجل G للتسجيل Y ، يلزم وجود نبضات تحكم: RG (قراءة G) و WY (كتابة Y). في القسم التالي ، سأشرح كيف تقوم وحدة التحكم AGC بإنشاء إشارات التحكم اللازمة لكل تعليمة.
وحدة التحكم
مثل معظم أجهزة الكمبيوتر ، تقوم وحدة التحكم AGC بفك تشفير كل تعليمة وتوليد إشارات تحكم تخبر باقي المعالج بما يحتاج إليه. يستخدم AGC وحدة تحكم مبرمجة مسبقًا تتكون من صمامات NOR لتوليد إشارات. AGC لا يستخدم الرمز الصغير. ليس لديه أي تعليمات دقيقة وذاكرة تحكم ، لأن هذا سيستغرق الكثير من المساحة المادية.
يسمى قلب وحدة التحكم AGC مولد crosspoint. يستغرق الأمر subandand وواحدًا من الفترات الزمنية وينشئ إشارات تحكم لهذه المجموعة. يمكن تخيلها على أنها شبكة ، حيث يتم توجيه الأوامر الفرعية في اتجاه واحد ، وقطاعات الوقت في الآخر ، ويتم تعيين إشارة التحكم الخاصة بكل نقطة تحكم.
يتطلب مولد التقاطع العديد من المكونات وينقسم إلى ثلاث وحدات ؛ هذه هي الوحدة A6. انتبه إلى الأسلاك المضافة التي تغير الدائرة. هذا هو نسخة مبكرة من وحدة نمطية للاختبار على أرض الواقع ؛ وحدات الطيران لديها بالفعل أي أسلاك.لتحقيق الكفاءة ، تم تحسين وحدة التحكم النهائية بشكل كبير. يتم دمج الإرشادات ذات السلوك المماثل ومعالجتها معًا بواسطة مولد التقاطع ، مما يقلل من حجم الدائرة المطلوبة. على سبيل المثال ، لدى AGC تعليمة "إضافة إلى محرك بدقة مضاعفة" (DAS). نظرًا لأنه مكافئ تقريبًا لإضافتين من الكلمات المفردة ، يكون للأمر الفرعي DAS1 و ADS0 في منشئ التقاطع منطق شائع. يوضح الرسم البياني أدناه دائرة مولد التقاطع للفترة الزمنية T5 ، ويتم تسليط الضوء على منطق الأمر الفرعي ADS0 (باستخدام إشارة DAS1). على سبيل المثال ، يتم إنشاء إشارة 5K من مزيج من DAS1 و T5.

ولكن ما هي إشارات 5K و 5 L؟ هذا هو آخر التحسين. غالبًا ما يتم تغذية العديد من نبضات التحكم معًا ، فبدلاً من توليدها مباشرة ، يولد مولد التقاطع إشارات وسيطة للتقاطعات. على سبيل المثال ، يولد 5K نبضات تحكم A2X و RG ، و 5 L يولد نبض التحكم WY. يوضح الرسم البياني أدناه كيفية إنشاء إشارة A2X: أي من 8 إشارات مختلفة (بما في ذلك 5K) يولد A2X. دوائر مماثلة تولد إشارات التحكم الأخرى. مكّنت هذه التحسينات من تقليل حجم مولد التقاطع ، لكنها ظلت كبيرة ، وتطورت إلى ثلاث وحدات.

خلاصة القول ، يمكننا القول أن وحدة التحكم مسؤولة عن إخبار وحدة المعالجة المركزية بما يجب القيام به لتنفيذ التعليمات. أولاً ، يتم تقسيم التعليمات إلى أوامر فرعية. يولد مولد التقاطع نبضات التحكم اللازمة لكل فاصل زمني وتكرار ثانوي ، لإخبار السجلات والوحدة الحسابية والذاكرة بما يحتاجون إليه.
عادة ، كانت التعليمات تتكون من اثنين من الأوامر الفرعية ، ولكن كانت هناك استثناءات. تتطلب بعض التعليمات ، مثل الضرب أو القسمة ، استخدام العديد من الأوامر الفرعية ، لأنها تتكون من العديد من الخطوات. على العكس ، استخدم تعليمة الانتقال السريع في TC أمر فرعي واحد ، حيث إنه يحتاج فقط إلى استدعاء التعليمة التالية.
تستخدم معالجات أخرى أساليب مختلفة لتوليد إشارات التحكم. 6502 والعديد من المعالجات المبكرة الأخرى فك تشفير التعليمات باستخدام صفيف منطق قابلة للبرمجة (PLA) التي تنفذ و / أو المنطق من خلال ذاكرة للقراءة فقط.
معالج دقيق 6502.استنتاج
لقد كانت جولة مثيرة لجهاز التحكم على متن Apollo. من أجل عدم تمديده كثيرًا ، ركزت على تعليمات إضافة ADS وبعض نبضات التحكم (A2X و RG و WY). أتمنى أن تكون لديك فكرة عن كيفية تجميع جهاز كمبيوتر من العناصر البدائية مثل صمامات NOR.
الجزء الأكثر وضوحا من الهندسة المعمارية هو مسار البيانات: وحدة حسابية ، سجلات وحافلة البيانات. تستند سجلات AGC إلى مشغلات بسيطة من بوابات NOR. على الرغم من أن الوحدة الحسابية AGC لا يمكنها القيام بالإضافة إلا ، يمكن للكمبيوتر التعامل مع مجموعة كاملة من العمليات ، بما في ذلك عمليات الضرب والقسمة والعمليات المنطقية.
ومع ذلك ، فإن مسار البيانات هو جزء فقط من الكمبيوتر.
من بين المكونات الأساسية الأخرى ، هناك وحدة تحكم تخبر المكونات بما يجب عليهم فعله. تعتمد الطريقة المستخدمة في AGC على مولد تقاطع يستخدم منطقًا مُحسَّنًا للغاية ومشفّرًا لتوليد نبضات التحكم الصحيحة لأوامر فرعية فرعية وفواصل زمنية محددة.باستخدام هذه القدرات ، قدمت AGC التوجيه والملاحة والتحكم على متن مهام Apollo ، وجعلت من الممكن الهبوط على سطح القمر. كما حفز صناعة الدوائر المتكاملة المبكرة باستخدام 60 ٪ من الشهادات المرحلية الأمريكية الصنع في عام 1963. لذلك ، فإن أجهزة الكمبيوتر الحديثة تدين بالكثير لشركة AGC ومكوناتها البسيطة من NOR.
يعمل AGC في مختبر متصل بمنظار الذبذبات Tektronix القديم