HP Nanoprocessor Part II: عكس الدوائر القائمة على القناع الضوئي

الجزء



الأول في عام 1974 ، طورت Hewlett-Packard معالجًا دقيقًا للتحكم في الوظائف المختلفة في منتجاتها ، من محركات الأقراص المرنة إلى الفولتميتر. لم يكن هذا المعالج البسيط متوافقًا مع المعالجات الدقيقة القياسية - لم يدعم حتى الجمع أو الطرح - لذلك أطلق عليه اسم "المعالج النانوي". كانت السمات الرئيسية للمعالج النانوي هي التكلفة المنخفضة وسرعة العمل العالية: مقارنةً بالموتورولا الحديث 6800 بتكلفة 360 دولارًا ، تكلف المعالج النانوي 15 دولارًا ، وكانت عمليات التحكم أسرع بكثير.



على الرغم من عدم وجود عملية إضافة ، إلا أن المعالج النانوي يمكنه (ببطء) إضافة الأرقام عن طريق الزيادة أو التناقص بشكل متكرر (العمليات التي يدعمها). في حالات أخرى ، على سبيل المثال ، باستخدام مقياس الفولتميتر من Hewlett-Packard ، تمت إضافة رقائق ALU (74LS181) إلى المنتج ، والتي كانت تعمل في الإضافة السريعة - تم الوصول إليها كأجهزة إدخال / إخراج. وبطبيعة الحال ، بعد اكتمال Turing ، يمكن للمعالج النانوي نظريًا القيام بكل شيء بدءًا من حساب وظائف الفاصلة العائمة وحتى إطلاق لعبة Crysis ؛ سيكون الأمر بطيئًا جدًا.



يمكن تنزيل قناع المعالج الضوئي من الرابط (122 ميجا بايت PSD).







HP Nanoprocessor, 1820-1691. , -2,5 , – . , .



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



داخل معالج النانو



مثل معظم المعالجات في تلك الحقبة ، فإن المعالج النانوي هو 8 بت. ومع ذلك ، فإنه لا يدعم ذاكرة الوصول العشوائي ، ويتم تنفيذ الكود من ذاكرة القراءة فقط 2 كيلو بايت خارجية. يحتوي على 16 تسجيلًا 8 بت - أكثر من معظم المعالجات ويكفي لتعويض نقص الذاكرة للعديد من التطبيقات. كان للمعالج النانوي 48 تعليمات - أقل بكثير من 72 تعليمات لموتورولا 6800. ومع ذلك ، كان للمعالج النانوي مجموعة سهلة من العمليات المحددة والواضحة والتحقق التي تفتقر إليها المعالجات الأخرى في ذلك الوقت. يحتوي أيضًا على العديد من أوامر الإدخال / الإخراج التي تدعم كلاً من منافذ الإدخال / الإخراج ودبابيس الإدخال / الإخراج للأغراض العامة ، مما يجعل من السهل التحكم في الأجهزة الأخرى بها.



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













إذا أخذنا في الاعتبار أن وحدة فك ترميز التعليمات تتكون من أزواج من الترانزستورات الصغيرة ، والتي يتم إجراؤها لتسهيل ترتيب المكونات ، وحساب هذه الأزواج كواحد ، فإننا نحصل على 3829 ترانزستور. من بين هؤلاء ، 1061 عبارة عن عمليات سحب ، و 2668 نشطة. بالمقارنة ، كان 6502 يحتوي على 4237 ترانزستورًا ، 3218 منها نشطة. كان 8008 يحتوي على 3500 ترانزستور ، بينما كان لدى موتورولا 6800 4100.



يوضح الرسم البياني أدناه الهيكل الداخلي للمعالج النانوي. يوجد في المنتصف 16 سجلا. يسمح لك المقارنة بمقارنة قيمتين لتوفير تفريع شرطي. تتعامل وحدة منطق التحكم مع عمليات الزيادة والتناقص والإزاحة والبتات للمجمع. لا يحتوي على العمليات الحسابية والمنطقية لوحدة ALU القياسية. يسترجع عداد البرنامج (على اليمين) تعليمات من سجل التعليمات (يسار) ؛ المقاطعات والمكالمات الروتينية لها مجموعات مكونة من عنصر واحد لتخزين عناوين الإرجاع.





مخطط انسيابي للعمل من تعليمات المعالج النانوي



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



يمكن أن يكون إنشاء نسخة FPGA من المعالج النانوي مشروعًا مثيرًا للتسلية - نظرًا لأن المعالج النانوي ربما يكون أبسط إصدار من المعالج التجاري الحقيقي. تصف التعليمات الخاصة به جميع الأوامر وتعطي أمثلة على التعليمات البرمجية التي يمكنك تشغيلها.



السجلات



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





يتم استخدام جزء كبير من المعالج النانوي من خلال 16 سجلًا.إن اللبنة الأساسية للسجل عبارة عن عاكسين



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





عاكسان في دائرة تخزين بت ثابتة



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





تخزين بت واحد في المعالج النانوي. يتم تنفيذ كل بت على 6 ترانزستورات (خلية 6T SRAM).



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



أوامر فك التشفير



تعمل دوائر فك التشفير في أخذ الكود الثنائي للتعليمات (على سبيل المثال ، 01101010) ، وتحديد ماهية التعليمات (في هذه الحالة ، "تراكم الأحمال من السجل 10"). بالمقارنة مع العديد من المعالجات ، فإن تعليمات المعالج النانوي بسيطة للغاية: فهي تحتوي على عدد قليل نسبيًا (48) ، ودائمًا ما يكون رمز التعليمات واحد بايت. يوضح الرسم البياني أدناه أن منطق فك تشفير التعليمات (باللون الأحمر) يشغل جزءًا كبيرًا من الشريحة. سجل التعليمات (الأخضر) عبارة عن مجموعة من ثمانية مزلاج تحتوي على التعليمات الحالية. يوجد سجل الأوامر بجوار دبابيس البيانات ، التي يأتي الأمر إليها من ذاكرة القراءة فقط. في هذا القسم ، سنقوم بتفكيك سلسلة فك التشفير الموضحة باللون الأصفر.







يتم فك التشفير بواسطة بوابات NOR. تتعرف كل بوابة NOR على أمر معين أو مجموعة أوامر. تقبل بوابة NOR بتات الأمر أو مكملتها كمدخلات. عندما تكون جميع البتات الواردة صفرًا ، تبلغ بوابة NOR عن تطابق. يتيح لك ذلك البحث عن المباريات في كل من الفريق ككل وفي جزء من الفريق. على سبيل المثال ، الأمر "تحميل تراكمي من السجل R" له تنسيق ثنائي 0110rrrr ، حيث تشير البتات الأربعة الأخيرة إلى السجل المطلوب. بوابة NOR (bit7 + bit6 '+ bit5' + bit4) 'ستطابق هذا الأمر.



يعتبر مفكك تشفير التعليمات المصمم بهذه الطريقة جيدًا لأنه يمكن تجميعه من دوائر مضغوطة ومتكررة. غالبًا ما يطلق عليه PLM (مصفوفة المنطق القابلة للبرمجة). الفكرة هي أن الإشارات الواردة إلى المصفوفة يتم تغذيتها أفقيًا ، ويتم تغذية الإشارات الصادرة عموديًا. في كل تقاطع يمكن أن يكون هناك ترانزستور ، وبعد ذلك تكون إشارة الإدخال جزءًا من البوابة ؛ إذا لم يكن هناك ترانزستور ، فسيتم تجاهل هذا الإدخال. والنتيجة هي صمامات NOR مرتبة بشكل مضغوط. في المعالجات الدقيقة المبكرة ، كان جهاز فك التشفير يصنع غالبًا من مصفوفة بوابات NOR - على سبيل المثال ، كان هذا هو الحال مع 6502.



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



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





إحدى دوائر فك المعالج النانوي. يتوافق الرسم البياني الموجود على اليسار مع وحدة فك التشفير الموجودة في أقصى اليسار من الثلاثة المعروضة على اليمين.



تولد هذه الدائرة إشارة زيادة / إنقاص يتم تغذيتها في دائرة المجمع. تكتشف الدرجة تطابقًا عندما يكون مستوى إشارة مولد الساعة ، والطلب ، وبت الأمر السادس ، وبت الأمر الثاني منخفضًا - تم العثور على تطابق مثل x0xxx0xx أثناء مرحلة التنفيذ. تتضمن هذه الأوامر "زيادة ثنائي" (00000000) ، "زيادة BCD" (00000010) ، "إنقاص ثنائي" (00000001) ، و "إنقاص BCD" (00000011).



تبحث السلسلة الموضحة في الرسم التخطيطي عن تطابقات بأوامر النموذج x0xxx0xx ، لذلك تم العثور على التطابق مع العديد من الأوامر أكثر من مجرد الزيادة والتناقص. لماذا لا تبحث عن تطابق كامل؟ والسبب هو أنه إذا لم يكن المجمع قيد الاستخدام ، فإن تنشيط إشارة الزيادة / الإنقاص لا يهم. من خلال توسيع قائمة خيارات المطابقة ، يمكن للمطورين التخلص من بعض الترانزستورات في الدائرة. من المهم أن تتجاوز السلسلة التعليمات الأخرى المتعلقة بالبطارية مثل "مسح المجمع" (00000100) أو "تراكم الحمولة من السجل" (0110rrrr).



المقارن



دائرة المعالجات النانوية المهمة هي المقارنة التي تقارن القيمة المخزنة في المجمع مع القيمة من سجل R0. يستخدم المقارنة دائرة مفردة ولكنها صعبة لمقارنتها. تقارن الخوارزمية أساسًا بين رقمين بدءًا من البتات الأكثر أهمية. إذا كانت البتات متساوية ، فتابع إلى الأجزاء السفلية. يحدد فرق البت الأول القيمة الأكبر (على سبيل المثال ، في حالة 10101010 و 10100111 ، يحدد هذا البتة الرابعة من اليمين).



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





إحدى مراحل المقارنة 8 بت



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





مرحلتان للمقارن - كما هو محدد في القناع الضوئي



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



يحتوي المعالج النانوي على مجموعة كبيرة من ظروف التفرع - كبيرة بشكل مدهش لمثل هذا المعالج البسيط. يمكنك التحقق من الشروط التالية: A> R0 ، A> = R0 ، A <R0 ، A <= R0 ، A == R0 ، أو A! = R0. بالإضافة إلى ذلك ، يمكن أن يعتمد التفريع الشرطي على ما إذا كانت القيمة في المجمع تساوي صفرًا أم لا ، وما إذا كان بت معين من القيمة المخزنة في المجمع يساوي صفرًا ، أو ما إذا تم تعيين علامة تجاوز السعة ، أو ما إذا كان قد تم تعيين بت معين من سجل الإدخال / الإخراج.



جهاز منطق التحكم والبطارية



المجمع عبارة عن سجل 8 بت خاص يخزن البايت الذي تتم معالجته في الوقت الحالي. يتم تنفيذ العمليات باستخدام البطارية بواسطة جهاز منطق التحكم (ULU) ، والذي يسمى "قلب المعالج النانوي" في تعليمات المعالج. ULU هو ما يعادل وحدة المنطق الحسابي (ALU) في معظم المعالجات ، إلا أنها لا تؤدي العمليات الحسابية أو المنطقية. في نفس الوقت ، ULU ليس عديم الفائدة كما يبدو للوهلة الأولى. يمكن أن تزيد أو تنقص القيمة في المركب ، إما في رمز عشري ثنائي أو ثنائي (BCD). يخزن BCD منزلتين عشريتين في بايت واحد. هذا وضع مفيد جدًا للإدخال / الإخراج أو شاشات العرض. يمكن لـ ULU أيضًا العثور على المكمل الثنائي للمجمع أو إعادة تعيينه ، بالإضافة إلى تعيين ومسح بت معين. أخيرا،يدعم عمليات التحول إلى اليسار واليمين.





الدوائر المتعلقة بالبطارية



يوضح الرسم البياني أعلاه البطارية ودارات ULD. في القسم الأول ، توجد شبكات مختلفة تحدد القيمة الصفرية وتدعم BCD وتوفر زلة حمل - توليد سريع للحمل من أقل 4 بتات مهمة. القسم الثاني يحتوي على البطارية الرئيسية ودوائر ULU. يوزع القسم الثالث إشارات التحكم من منطق فك التشفير أعلاه إلى الأجزاء الثمانية للمجمع. يحتوي القسم الأخير على منطق فك التشفير الذي يقوم بفك تشفير عمليات البتات وإرسال الإشارة إلى الجزء المطلوب من المجمع.



يتكون الجسم الرئيسي للمجمع / ULU من 8 أجزاء ، جزء لكل بت ، مع وجود بت أقل أهمية في الأعلى. سننظر في أربع دوائر من كل جزء: مولد حمل لعمليات الزيادة / الإنقاص ، ومولد بت لعمليات الزيادة / الإنقاص ، ومضاعف لاختيار قيمة تراكمية جديدة ، ومزلاج حيث يتم تخزين قيمة المجمع.



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





جزء واحد من سلسلة الزيادة / الإنقاص



تقوم الدرجة على اليمين بتحديث البت الحالي بزيادة أو إنقاص. يتم تبديل البت الحالي عند وجود إدخال حمل - بشكل أساسي تنفيذ XOR من خلال ثلاث بوابات NOR. تتمثل إحدى الصعوبات في التكيف مع BCD. بالنسبة لعملية الزيادة BCD ، يحدث الحمل عندما يزداد الرقم 9 ، وبالنسبة لعملية إنقاص BCD ، ينخفض ​​الرقم 0 إلى 9 بدلاً من الثنائي 1111.



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





دارة لمزلاج يخزن بت واحدًا من البطارية ومُضاعِفًا يختار مدخلات البطارية



المزلاج يحمل بت واحد للمجمع. عندما يتم تنشيط ترانزستور تثبيت البطارية ، تشكل بوابتا NOR حلقة تعليق. إذا تم تنشيط ترانزستور تحميل البطارية بدلاً من ذلك ، تقوم البطارية بتحميل القيمة المطلوبة من معدد الإرسال. تسمح الأسطر لمسح n بت وتعيين n بت للأوامر بتغيير البتات الفردية للمجمع ؛ يقوم مُضاعف الإرسال بعد ذلك بتحديث كافة أجزاء المُجمع مرة واحدة.



العداد والبرنامج عنونة



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



التحكم وتردد الساعة



الجزء الأخير من المعالج النانوي هو دائرة التحكم. بالمقارنة مع المعالجات الدقيقة الأخرى ، يبدو نظام التحكم في المعالج النانوي بسيطًا تقريبًا: ينتقل المعالج من ساعة الطلب إلى ساعة التنفيذ والعودة (مع المقاطعات الدورية). دائرة التحكم ليست سوى بضع بوابات و flip-flops ، لذلك لا يوجد الكثير ليقال عنها.



خاتمة



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



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







المكونات الوظيفية للمعالج النانوي على أساس الهندسة العكسية



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







المعالج النانوي (رقاقة بيضاء) كجزء من وحدة توقيت الدقة Hewlett-Packard. لاحظ الجهد المكتوب بخط اليد ؛ تتطلب كل شريحة جهد التحيز الخاص بها.



All Articles