تسجيلات المعالج Intel 8086: من الشريحة إلى الترانزستورات

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





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



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



تم تأطير خمسة عشر سجلاً من نوع 16 بت 8086 وستة بايت من قائمة انتظار الطلبات المسبقة للأوامر ( الجلب المسبق للرمز ). تشغل السجلات جزءًا كبيرًا من البلورة ، على الرغم من أنه سيتم كتابتها في المجموع في 36 بايت فقط. بسبب قيود المساحة ، كان لدى المعالجات الدقيقة المبكرة عدد صغير نسبيًا من السجلات. بالمقارنة ، تحتوي رقائق المعالجات الحديثة على كيلوبايت من السجلات وميغابايت من ذاكرة التخزين المؤقت.



كان 8086 واحدًا من أوائل المعالجات الدقيقة التي نفذت الجلب المسبق للرمز ، لكن موتورولا 68000 (1979) كان يحتوي على مخزن مؤقت 4 بايت قبل ذلك بقليل. في الحواسيب المركزية ، كان الجلب المسبق متاحًا لـ IBM Stretch (1961) و CDC 6600 (1964) و IBM System / 360 Model 91 (1966).



من الصعب حساب عدد السجلات في معالج حديث. الرقم الدقيق الوحيد الذي وجدته كان في كتاب تشريح معالج دقيق عالي السرعة"(1997) ، الذي يصف بالتفصيل معالج AMD K6. بسبب إعادة تسمية السجلات ، تحتوي المعالجات الحديثة على عدد أكبر بكثير من السجلات المادية (تلك التي تكون مرئية للمبرمج) ، ولا يتم الإشارة إلى عدد السجلات المادية في الوثائق. K6 ، باستثناء ثمانية سجلات x86 للأغراض العامة ، كان هناك 16 سجلًا



معماريًا صغيرًا لإعادة تسميتها. تحتوي المعالجات التي تدعم AVX-512 على 32 سجلًا سعة 512 بت ، أي 2 كيلوبايت من السجلات محجوزة لهذه الوظيفة. في مثل هذه الحالات ، يكون حساب حجم السجلات أكثر صعوبة. أما بالنسبة لحجم ذاكرة التخزين المؤقت ، ثم في المعالجات المتقدمة يصل حجمه إلى 77 ميغا بايت .



كيف يتم تنفيذ السجلات في السيليكون



سأبدأ بوصف كيفية بناء 8086 من ترانزستورات N-MOS. ثم سأشرح كيف يتم صنع العاكس ، وكيف يتم تخزين البتات المفردة مع المحولات ، وكيف يتم إنشاء السجل.



كان 8086 ، مثل رقائق العصر الأخرى ، يعتمد على ترانزستورات N-MOS. وتتكون هذه الرقائق من ركيزة من السيليكون تنتشر فيها شوائب الزرنيخ أو البورون لتكوين ترانزستورات. فوق السيليكون ، شكلت موصلات البولي سيليكون بوابات الترانزستورات وربطت جميع المكونات ببعضها البعض. الطبقة المعدنية الموجودة أعلى تحتوي على موصلات إضافية. بالمقارنة ، تستخدم المعالجات الحديثة تقنية CMOS ، التي تجمع بين ترانزستورات N-MOS و P-MOS ، وتحتوي على العديد من الطبقات المعدنية.



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



في الواقع ، مقاوم السحب في صمام N-MOS هو نوع خاص من الترانزستور. A المنضب سلوك الترانزستور مثل المقاوم في حين يجري أكثر إحكاما وكفاءة.





يوضح الرسم البياني كيف يتكون العاكس من ترانزستور ومقاوم. تظهر الصورة التنفيذ على الشريحة. تمت إزالة الطبقة المعدنية لفضح السليكون والبولي سيليكون.



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



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





يحتوي جهاز 8086 على اثنين من العاكسات المقترنة التي تخزن بت واحد في السجل. الدائرة ثابتة في الحالة 0 أو 1.



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



تستخدم المعالجات الأخرى مواقع تسجيل مختلفة قليلاً. يستخدم 6502 ترانزستورًا إضافيًا في حلقة التغذية المرتدة للعاكس لكسر الدائرة عند كتابة قيمة جديدة. يكتب Z80 إلى كلا المحولين في نفس الوقت ، مما "يجعل من السهل" التغيير ، لكنه يتطلب سلكين للكتابة. يحتوي جهاز 8086 على ترانزستور كسب في كل موقع تسجيل للقراءة ، بينما تقرأ المعالجات الأخرى الإخراج من كلا المحولين وتستخدم مضخم تفاضلي خارجي لتضخيم الإشارة. تتكون الخلية الأساسية للسجل 8086 من 7 ترانزستورات (7T) ، وهي أكثر من خلية RAM ثابتة نموذجية تستخدم 6 أو 4 ترانزستورات ، ولكنها تستخدم سطرًا واحدًا فقط ، وليس خطين مختلفين. الذاكرة الديناميكية (DRAM) أكثر كفاءة ، وتستخدم ترانزستور ومكثف واحد ،ومع ذلك ، سيتم فقدها بدون تحديث البيانات.





رسم تخطيطي لخلية تسجيل تخزن قليلاً. يتكون ملف السجل من مجموعة من هذه الخلايا.



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



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





8086 ( 16- ), . , .



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





تسجيل موقع التخزين. تُظهر الصورة الموجودة على اليسار الطبقة المعدنية ، وعلى اليمين - الطبقات المقابلة من البولي سيليكون والسيليكون.



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





سجل الخلية من 8086 مع الدائرة المقابلة



دعم تسجيل 8 بت



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



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



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





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



لماذا يوجد في بعض السجلات ناقلان للكتابة والبعض الآخر به واحد؟ والسبب هو أن 8086 يحتوي على سجلات 16 بت ، ولكن يمكن الوصول إلى أربعة منها كـ 8 بت كما هو موضح أدناه. على سبيل المثال ، يمكن الوصول إلى مجمع 16 بت A كسجلات AH 8 بت (الجزء العالي من المجمع) و 8 بت AL (الجزء المنخفض). يسمح تنفيذ السجلات مع ناقلتي تحكم في الكتابة بالكتابة لكل نصف السجل على حدة.



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





سجلات الأغراض العامة في 8086. يمكن تقسيم السجلات A و B و C و D إلى نصفين من 8 بتات.



سجلات متعددة المنافذ



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



يختلف مخطط الكتلة أدناه عن معظم مخططات الكتلة.لـ 8086 ، لأنه يظهر التنفيذ المادي الحقيقي للمعالج ، وليس ما يتخيله المبرمج. على وجه الخصوص ، يُظهر الرسم التخطيطي "سجلا اتصال داخليين" بين سجلات وحدة واجهة الناقل (على اليمين) ، جنبًا إلى جنب مع سجلات المقطع التي تطابق السجلات السبعة التي يمكن رؤيتها على الشريحة. تعد السجلات المؤقتة الموضحة أدناه جزءًا فعليًا من ALU ، لذلك لن أغطيها في هذه المقالة. يناقش







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



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





خلية تسجيل متعددة المنافذ في معالج 8086



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



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



كان المعالج 8088 المستخدم في أجهزة كمبيوتر IBM الأصلية مطابقًا تقريبًا لمعالج 8086 ، باستثناء أنه يحتوي على ناقل خارجي 8 بت بدلاً من معالج 16 بت ، لذلك كان النظام أقل تكلفة. كان المخزن المؤقت للجلب المسبق 8088 عبارة عن 4 بايت بدلاً من 6 - ربما لأن 4 بايت كانت كافية لحافلة الذاكرة الأبطأ 8088.



على عكس 8086 ، تدعم سجلات الجلب المسبق لـ 8088 الكتابة المستقلة لنصفين 8 بت (على غرار سجلات 8088 A و B و C و D ، تبدو هذه الخلايا فقط مختلفة). وذلك لأن 8088 طلب أوامر بايت واحد في كل مرة ، وليس كلمة واحدة في كل مرة ، بسبب ضيق الحافلة. لذلك ، يجب أن تدعم سجلات الجلب المسبق كتابة البايت ، بينما يدعم 8086 الجلب المسبق للكلمات.





يتكون ملف التسجيل العلوي من عشرة سجلات 16 بت. تُظهر الصورة السيليكون والبولي سيليكون. خطوط حمراء عمودية - بقايا الطبقة المعدنية المزالة. قابل للنقر.



خاتمة



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



تعتبر دراسة بلورة 8086 مثيرة جدًا للاهتمام لأنه يمكن رؤية ترانزستوراتها تحت المجهر. في وقت ما كان معالجًا معقدًا ، به 29000 ترانزستور ، ولكنه بسيط بما يكفي لتتبع جميع الدوائر وفهم كيفية عملها.



أنظر أيضا:






All Articles