LOADING CLOSE

نگاهی به پردازنده 8086

نگاهی به پردازنده

نگاهی به پردازنده 8086

نگاهی به پردازنده 8086

ریزپردازنده اینتل 8086 42 سال پیش در این ماه معرفی شد. 8086 یکی از تاثیرگذارترین تراشه هایی است که تا کنون ساخته شده است. معماری x86 را آغاز کرد که امروزه همچنان بر محاسبات دسکتاپ و سرور حاکم است. با نگاهی به سیلیکون تراشه می توان به ویژگی های داخلی این تراشه پی برد. عکس زیر قالب 8086 را نشان می دهد. در این عکس، لایه فلزی تراشه قابل مشاهده است که بیشتر سیلیکون زیر آن را پوشانده است. در اطراف لبه های قالب، سیم های باند نازک اتصالات بین پدهای روی تراشه و پین های خارجی را ایجاد می کنند. (پدهای برق و زمین هر کدام دو سیم باند برای پشتیبانی از جریان بالاتر دارند.) این تراشه در زمان خود پیچیده بود و حاوی 29000 ترانزیستور بود.

نگاهی به پردازنده 8086

نگاه کردن به داخل تراشه

برای بررسی دای از مدار مجتمع 8086 زیر شروع کردم. بیشتر مدارهای مجتمع در بسته بندی اپوکسی هستند، بنابراین اسیدهای خطرناک برای حل کردن بسته ضروری هستند. برای جلوگیری از آن، من 8086 را در یک بسته سرامیکی تهیه کردم. باز کردن یک بسته سرامیکی کار ساده ای است که روی درز آن با اسکنه ضربه بزنید و رویه سرامیکی را جدا کنید.

 

 

با برداشتن قسمت بالایی، قالب سیلیکونی در مرکز قابل مشاهده است. قالب از طریق سیم های باند ریز به پین ​​های فلزی تراشه متصل می شود. این یک بسته DIP 40 پین است، بسته بندی استاندارد برای ریزپردازنده ها در آن زمان. توجه داشته باشید که قالب سیلیکونی خود بخش کوچکی از اندازه تراشه را اشغال می کند.

 

با استفاده از یک میکروسکوپ متالورژیکی، ده ها عکس از قالب گرفتم و با استفاده از برنامه ای به نام Hugin (جزئیات) آنها را در یک تصویر با وضوح بالا دوختم. عکس در ابتدای پست وبلاگ لایه فلزی تراشه را نشان می دهد، اما این لایه سیلیکون را در زیر پنهان می کند.

 

 

 

برای عکس قالب زیر، لایه‌های فلزی و پلی سیلیکون برداشته شدند و سیلیکون زیرین را با 29000 ترانزیستور نشان می‌دهد. 2 برچسب‌ها بلوک‌های عملکردی اصلی را بر اساس مهندسی معکوس من نشان می‌دهند. سمت چپ تراشه شامل مسیر داده 16 بیتی است: رجیسترهای تراشه و مدارهای حسابی. جمع کننده و رجیسترهای بالایی واحد رابط اتوبوس را تشکیل می دهند که با حافظه خارجی ارتباط برقرار می کند، در حالی که ثبات های پایین تر و ALU واحد اجرایی را تشکیل می دهند که داده ها را پردازش می کند. سمت راست تراشه دارای مدار کنترل و رمزگشایی دستورالعمل، به همراه رام میکروکد است که هر دستورالعمل را کنترل می کند.

یکی از ویژگی های 8086 واکشی اولیه دستورالعمل بود که با واکشی دستورالعمل ها از حافظه قبل از نیاز، عملکرد را بهبود بخشید. این توسط واحد رابط اتوبوس در سمت چپ بالا اجرا شد که به حافظه خارجی دسترسی داشت. رجیسترهای بالایی شامل رجیسترهای سگمنت بدنام 8086 هستند که دسترسی به فضای آدرس بزرگتری از 64 کیلوبایت مجاز توسط یک آدرس 16 بیتی را فراهم می کردند. برای هر دسترسی به حافظه، یک ثبات بخش و یک افست حافظه اضافه شد تا آدرس حافظه نهایی را تشکیل دهد. برای عملکرد، 8086 به جای استفاده از ALU، یک جمع کننده جداگانه برای این محاسبات آدرس حافظه داشت. رجیسترهای بالایی نیز شامل شش بایت بافر پیش واکشی دستورالعمل و شمارنده برنامه هستند. گوشه پایین سمت چپ تراشه دارای واحد اجرایی است که عملیات داده را انجام می دهد. ثبات های پایین تر شامل ثبات های همه منظوره و ثبات های شاخص مانند اشاره گر پشته است. ALU 16 بیتی عملیات حسابی (جمع و تفریق)، عملیات منطقی بولی و شیفت را انجام می دهد. ALU ضرب یا تقسیم را پیاده سازی نمی کند. این عملیات از طریق دنباله ای از جابجایی ها و جمع/ تفریق انجام می شود، بنابراین نسبتاً کند هستند.

 

میکروکد

یکی از سخت‌ترین بخش‌های طراحی کامپیوتر، ایجاد منطق کنترلی است که به هر بخش از پردازنده می‌گوید برای اجرای هر دستورالعمل چه کاری انجام دهد. در سال 1951، موریس ویلکس ایده میکروکد را مطرح کرد: به جای ساخت منطق کنترل از مدارهای پیچیده منطقی، منطق کنترل را می توان با کد خاصی به نام میکروکد جایگزین کرد. برای اجرای یک دستورالعمل، کامپیوتر به صورت داخلی چندین دستور میکرو ساده‌تر را اجرا می‌کند که توسط میکروکد مشخص شده‌اند. با میکروکد، ساخت منطق کنترل پردازنده به جای یک کار طراحی منطقی به یک کار برنامه نویسی تبدیل می شود. میکروکد در رایانه‌های اصلی دهه 1960 رایج بود، اما ریزپردازنده‌های اولیه مانند 6502 و Z-80 از میکروکد استفاده نمی‌کردند، زیرا تراشه‌های اولیه جایی برای ذخیره میکروکد نداشتند. با این حال، تراشه های بعدی مانند 8086 و 68000، از میکروکد استفاده کردند و از افزایش تراکم تراشه استفاده کردند. این به 8086 اجازه داد تا دستورالعمل‌های پیچیده (مانند ضرب و کپی رشته) را بدون پیچیده‌تر کردن مدار پیاده‌سازی کند. نکته منفی این بود که میکروکد بخش بزرگی از دای 8086 را گرفت. میکروکد در گوشه سمت راست پایین عکس های قالب قابل مشاهده است

عکس بالا بخشی از رام میکروکد را نشان می دهد. در زیر میکروسکوپ، محتویات ROM میکروکد قابل مشاهده است و بیت ها بر اساس وجود یا عدم وجود ترانزیستور در هر موقعیت قابل خواندن هستند. ROM شامل 512 میکرو دستورالعمل است که هر کدام 21 بیت عرض دارند. هر ریز دستورالعمل حرکت داده ها را بین منبع و مقصد مشخص می کند. همچنین یک ریز عملیات را مشخص می کند که می تواند پرش، عملیات ALU، عملیات حافظه، فراخوانی زیرروال میکروکد یا حسابداری میکروکد باشد. میکروکد نسبتا کارآمد است. یک دستورالعمل ساده مانند افزایش یا کاهش از دو دستورالعمل کوچک تشکیل شده است، در حالی که یک دستورالعمل کپی رشته پیچیده تر در هشت دستورالعمل کوچک اجرا می شود.

 

تاریخچه 8086

مسیر رسیدن به 8086 آنطور که انتظار داشتید مستقیم و برنامه ریزی شده نبود. اولین اجداد آن Datapoint 2200 بود، یک کامپیوتر رومیزی/ترمینال از سال 1970. Datapoint 2200 قبل از ایجاد ریزپردازنده بود، بنابراین از یک پردازنده 8 بیتی ساخته شده از یک برد پر از مدارهای مجتمع TTL استفاده می کرد. دیتاپوینت از اینتل و تگزاس اینسترومنت پرسید که آیا می‌توان آن برد تراشه‌ها را با یک تراشه جایگزین کرد. تگزاس اینسترومنتز با کپی کردن معماری Datapoint 2200 پردازنده TMX 1795 (1971) و اینتل پردازنده 8008 (1972) را ایجاد کرد. با این حال، دیتاپوینت این پردازنده ها را رد کرد، تصمیمی سرنوشت ساز. اگرچه Texas Instruments نتوانست مشتری برای پردازنده TMX 1795 پیدا کند و آن را رها کرد، اینتل تصمیم گرفت 8008 را به عنوان یک محصول بفروشد و بازار ریزپردازنده ها را ایجاد کند. اینتل از 8008 با پردازنده های 8080 (1974) و 8085 (1976) بهبود یافته پیروی کرد. (من در اینجا بیشتر در مورد ریزپردازنده های اولیه نوشته ام.)

 

در سال 1975، برنامه بزرگ بعدی اینتل، پردازنده 8800 بود که به عنوان معماری اصلی اینتل برای دهه 1980 طراحی شد. این پردازنده به دلیل عملکرد بالای برنامه ریزی شده آن، «میکرومین فریم» نامیده شد. این یک مجموعه دستورالعمل کاملاً جدید داشت که برای زبان های سطح بالا مانند Ada طراحی شده بود و از برنامه نویسی شی گرا و جمع آوری زباله در سطح سخت افزار پشتیبانی می کرد. متأسفانه، این تراشه برای آن زمان بسیار جاه طلبانه بود و به شدت از برنامه عقب افتاد. در نهایت در سال 1981 (به عنوان iAPX 432) با عملکرد ناامید کننده عرضه شد و یک شکست تجاری بود. از آنجایی که iAPX 432 از برنامه عقب مانده بود، اینتل در سال 1976 تصمیم گرفت که برای فروش تا زمانی که iAPX 432 آماده شود، به یک پردازنده ساده و بدون شکاف نیاز دارد. اینتل به سرعت 8086 را به عنوان یک پردازنده 16 بیتی طراحی کرد که تا حدودی با 8080,4 8 بیتی منتشر شده در سال 1978 سازگار بود. رایانه شخصی پرفروش ترین رایانه بود و به استاندارد رایانه های شخصی تبدیل شد. پردازنده IBM PC 8088 بود که نوعی از 8086 با گذرگاه 8 بیتی بود. موفقیت رایانه شخصی آی‌بی‌ام، معماری 8086 را به استانداردی تبدیل کرد که 42 سال بعد همچنان پابرجاست.چرا رایانه شخصی IBM پردازنده اینتل 8088 را انتخاب کرد؟7 به گفته دکتر دیوید بردلی، یکی از مهندسان اصلی رایانه های شخصی IBM، یک عامل کلیدی آشنایی تیم با سیستم ها و پردازنده های توسعه اینتل بود. (آنها از Intel 8085 در رایانه رومیزی قبلی IBM Datamaster استفاده کرده بودند.) مهندس دیگری به نام Lewis Eggebrecht گفت که موتورولا 68000 رقیب شایسته ای است 6 اما گذرگاه داده 16 بیتی آن به طور قابل توجهی هزینه را افزایش می دهد (مانند 8086). او همچنین تراشه های پشتیبانی بهتر و ابزارهای توسعه اینتل را اعتبار می داند در هر صورت، تصمیم به استفاده از پردازنده 8088 موفقیت خانواده x86 را تثبیت کرد. IBM PC AT (1984) به پردازنده سازگار اما قدرتمندتر 80286 ارتقا یافت. در سال 1985، خط x86 با 80386 به 32 بیت و سپس در سال 2003 با معماری Opteron AMD به 64 بیت منتقل شد. معماری x86 هنوز با ویژگی هایی مانند عملیات برداری AVX-512 (2016) در حال گسترش است. اما با وجود همه این تغییرات، معماری x86 سازگاری با 8086 اصلی را حفظ می کند.

 

ترانزیستورها

تراشه 8086 با نوعی ترانزیستور به نام NMOS ساخته شده است. ترانزیستور را می توان یک سوئیچ در نظر گرفت که جریان را بین دو ناحیه به نام منبع و تخلیه کنترل می کند. این ترانزیستورها با دوپینگ نواحی زیرلایه سیلیکونی با ناخالصی‌ها ساخته می‌شوند تا نواحی انتشاری ایجاد کنند که خواص الکتریکی متفاوتی دارند. ترانزیستور توسط گیت فعال می شود که از نوع خاصی از سیلیکون به نام پلی سیلیکون ساخته شده است که در بالای سیلیکون زیرلایه قرار گرفته است. ترانزیستورها توسط یک لایه فلزی در بالا به هم متصل می شوند و مدار مجتمع کامل را می سازند. در حالی که پردازنده های مدرن ممکن است بیش از دوازده لایه فلزی داشته باشند، 8086 دارای یک لایه فلزی واحد بود.

 

عکس نزدیک سیلیکون زیر برخی از ترانزیستورهای واحد حسابی-منطقی (ALU) را نشان می دهد. سیلیکون دوپ شده و رسانا دارای رنگ بنفش تیره است. نوارهای سفید جایی هستند که یک سیم پلی سیلیکونی از سیلیکون عبور کرده و دروازه ترانزیستور را تشکیل می دهد. (من 23 ترانزیستور را می شمارم که 7 گیت را تشکیل می دهند.) ترانزیستورها اشکال پیچیده ای دارند تا چیدمان را تا حد امکان کارآمد کنند. علاوه بر این، ترانزیستورها دارای اندازه های متفاوتی هستند تا در صورت نیاز توان بالاتری را ارائه دهند. توجه داشته باشید که ترانزیستورهای همسایه می توانند منبع یا تخلیه را به اشتراک بگذارند و باعث اتصال آنها به یکدیگر شود. دایره ها اتصالاتی (به نام vias) بین لایه سیلیکونی و سیم کشی فلزی هستند، در حالی که مربع های کوچک اتصال بین لایه سیلیکون و پلی سیلیکون هستند.

 

نتیجه گیری

8086 تا زمانی که اینتل تراشه پرچمدار iAPX 432 خود را عرضه کرد، به عنوان یک پردازنده موقت توقف در نظر گرفته شد و نسل پردازنده ای بود که از بردی پر از تراشه های TTL ساخته شده بود. اما از این آغاز فروتن، معماری 8086 (x86) به طور غیرمنتظره‌ای بر محاسبات دسکتاپ و سرور تا به امروز مسلط شد. اگرچه 8086 یک تراشه پیچیده است، اما می توان آن را زیر میکروسکوپ تا ترانزیستورهای جداگانه بررسی کرد . من یک فید RSS هم دارم. در اینجا یک عکس با وضوح بالا از 8086 با حذف فلز و پلی سیلیکون وجود دارد.

دیدگاهتان را بنویسید