دوران مدارهای مجتمع | از پردازنده‌ی تک چیپی Intel 8086 تا پردازنده‌ی چند هسته‌ای Core

Intel 8086
81 بازدید
۱۴۰۵-۰۴-۰۸
17 دقیقه
  • نویسنده: AFA
  • درباره نویسنده: ---

در بخش اول و دوم از این مقاله کامپیوترهای غول‌پیکر لامپی تا کامپیوترهای ترانزیستوری معرفی شدند. سپس پردازنده‌های‌ چند چیپی و تک‌چیپی مثل Intel 8085 و دستگاه‌هایی که در ساخت آن‌ها از این پردازنده‌ها استفاده شده بود، مثل کامپیوترهای Apple و کنسول بازی SEGA بررسی شدند. در دوره‌ی بعدی که در این بخش بررسی می‌شود، شرکت‌های سازنده‌ی پردازنده بر سر معماری برتر رقابت می کنند و با معرفی هر پردازنده‌ی جدید معماری پردازنده‌ها متحول می شود! پس با ما همراه باشید.

Intel 8086

8086 یکی از مهم‌ترین پردازنده‌های تاریخ بود که دنیای کامپیوترهای شخصی را شکل داد. 8086 فقط یک CPU نبود؛ آغاز معماری x86 بود که هنوز بعد از گذشت ۴۵ سال زنده است. 8086 محصول یک «تغییر فکر بزرگ» در اینتل بود: پردازنده 8080 که در سال ۱۹۷۴ معرفی شده بود، موفقیت زیادی داشت؛ اما Zilog Z80 که در سال ۱۹۷۶ عرضه شد، به‌دلیل سازگاری با 8080 و قابلیت‌های بیشتر، به رقیبی جدی تبدیل شد و سهم قابل‌توجهی از بازار را به دست آورد. اینتل فهمید اگر یک پردازنده‌ی‎ قوی‌تر و ۱۶‌بیتی ارائه ندهد، از بازار عقب می‌افتد. به همین دلیل پروژه‌ی 8086 در 1976 آغاز شد و سرانجام در سال 1978 به بازار عرضه شد. 8086 اولین پردازنده‌ی 16 بیتی بود که آدرس‌دهی 20 بیتی داشت. یعنی می‌توانست تا یک مگابایت حافظه را پشتیبانی کند.

کلاک آن در نسخه‌ی اولیه 5 مگاهرتز بود و در نسخه‌های بعدی تا 10 مگاهرتز افزایش یافت. 8086 نسبت به Motorola 68000 که بعد از آن معرفی شد، حدود 20 تا 40 درصد کندتر بود اما به دلیل سازگاری با 8080 و استفاده‌ی IBM از این پردازنده در کامپیوترش باعث برتری آن بر 68000 شد. شرکت IBM در سال 1981 از 8086 برای ساخت کامپیوتر IBM PC استفاده کرد که علت آن، سازگاری برنامه‌های نوشته شده برای 8080 با 8086 و هم چنین ارزان بودن این پردازنده بود. IBM PC برای کامپیوترش از سیستم عامل DOS که شرکت مایکروسافت طراحی کرده بود، استفاده کرد. همین باعث مشهور شدن DOS شد و بعدها شرکت‌های سازنده‌ی کامپیوترهای خانگی نیز از همین سیستم‌عامل برای کامپیوترهایشان استفاده کردند و DOS باعث شکوفایی شرکت مایکروسافت شد.

نکته‌ی جالب این پردازنده این بود که بر خلاف اینکه رجیسترها 16 بیتی بودند، باس آدرس 20 بیتی بود. اینتل برای حل این مشکل نحوه‌ی آدرس‌دهی حافظه را عوض کرد و با توجه به اینکه یک رجیستر 16 بیتی تنها 64 کیلوبایت خانه را می‌تواند آدرس‌دهی کند، حافظه را به سگمنت های 64 کیلوبایتی تقسیم کرد. در این حالت هر خانه‌ی حافظه با استفاده از فرمول زیر آدرس‌دهی می‌شد:

addresing formula

سگمنت‌ها 4 نوع داشتند و برای هر نوع یک رجیستر که شماره سگمنت مربوط به آن را نشان می‌داد در نظر گرفته شده بود:

  • CS (Code Segment): اشاره به جایی که کدهای برنامه (دستورالعمل‌ها) قرار دارند و با رجیستر IP (Instruction Pointer)  جفت می‌شود.
  • DS (Data Segment): اشاره به جایی که متغیرها و داده‌های عمومی برنامه قرار دارند.
  • SS (Stack Segment): اشاره به بخش پشته (Stack) برای مدیریت فراخوانی توابع و متغیرهای محلی و با رجیستر SP (Stack Pointer) جفت می‌شود.
  • ES (Extra Segment): یک سگمنت اضافی برای داده‌ها (مثلاً برای کپی کردن رشته‌های طولانی از یک جا به جای دیگر).

در عمل، این روش هم امکان ایجاد فضای آدرس‌دهی ۲۰ بیتی با استفاده از رجیسترهای ۱۶ بیتی را فراهم می‌کرد و هم مهاجرت نرم‌افزارهای نوشته‌شده برای 8080 را ساده‌تر می‌ساخت؛ هرچند برنامه‌های 8080 به‌صورت مستقیم روی 8086 اجرا نمی‌شدند. اولین 8086 علی‌رغم اینکه بازار فروش موفقی داشت،ولی معماری بسیار بدی داشت. سگمنت‌بندی حافظه باعث پیچیدگی آدرس‌دهی و در نتیجه پیچیده شدن برنامه‌نویسی و ایجاد دستورات اضافی برای آدرس‌دهی نزدیک و دور شده بود، مجموعه دستورالعمل (ISA) بسیار نامنظم بود، بعضی از دستورها فقط روی بعضی از رجیسترها کار می‌کردند و طول دستورها یکسان بود و بین 1 بایت تا 15 بایت متغیر بود؛ در نتیجه دیکد کردن و Pipeline کردن دستورات، سخت و گاهی غیرممکن می‌شد. این در حالی بود که در معماری های جدیدتر مثل RISC طول دستورات یکسان است.

هم چنین در 8086 تعداد رجیسترها خیلی کم بود (8 رجیستر) و همین باعث می‌شد تعداد دفعات خواندن داده از حافظه‌ی خارجی بیشتر شود و آزادی عمل و بهینه‌سازی برای کامپایلر سخت‌تر شود. دلیل این طراحی بد این بود که اینتل می‌خواست در رقابت با موتورولا هر چه سریع‌تر 8086 را آماده کند. از آنجایی که نسل‌های بعدی پردازنده‌های اینتل هم می‌بایست با 8086 سازگار باشند، مجبور شدند بسیاری از این عیوب را حفظ کنند. به همین دلیل CPU های مدرن x86 امروزی در داخلشان کد x86 را دیکد می‌کنند.

آن را به میکرو دستورهایی شبیه به معماری RISC تبدیل می‌کنند و بعد اجرا می کنند. یعنی بیرون x86 است و داخل تقریبا RISC. اگر بخواهیم به طور مختصر در مورد معماری x86 توضیح دهیم، بعد از پردازنده‌ی 8086 اینتل پردازنده‌های دیگری که نسخه‌ی بهبود یافته‌ی 8086 بودند، ارائه داد که به ترتیب 80816، 80826، 80836 و 80846 نام گرفتند و معماری همگی مبتنی بر همان 8086 بود. در نتیجه اسم این پردازنده‌ها به طور کلی 80×86 و به طور مختصر x86 نام گرفت. در بخش های بعدی این پردازنده ها به طور مختصر بررسی می‌شوند.

 

intel 8086

intel 8086

Intel 80186

این پردازنده‌ی 16 بیتی در سال 1982 معرفی شد و معماری یکسانی با 8086 داشت و تنها تفاوت آن، افزایش سرعت و اضافه شدن تعدادی دستور به مجموعه‌ی دستورات بود. در این پردازنده بعضی از قطعات جانبی که در پردازنده های قبلی در کنار CPU اضافه می‌شد، مثل DMA، timer و Interrupt Controller به داخل CPU آمدند. اتفاقا همین ویژگی باعث شد که IBM PC از این پردازنده استفاده نکند چون مادربورد طبق نسخه‌های قبلی ساخته شده بود و با این ورژن ناسازگار بود. بنابراین این پردازنده بیشتر در سیستم‌های امبدد و صنعتی استفاده شد.

Intel 80286

این پردازنده‌ی 16 بیتی در سال 1982 معرفی شد و باس آدرس 24 بیتی داشت. یعنی می توانست تا 16 مگابایت حافظه را آدرس‌دهی کند. ویژگی مهم این پردازنده قابلیت Protected Mode بود. این ویژگی سطوح دسترسی به حافظه را در 4 سطح تعریف می‌کرد. سطح 1 بیشترین دسترسی را به حافظه داشت و سطح 4 تنها به بخش مشخصی از حافظه دسترسی داشت. این ویژگی باعث شد سیستم عامل بتواند چند برنامه را به طور همزمان اجرا کند به طوری‌که برنامه ها به حافظه‌ی یکدیگر دسترسی نداشته باشند و باعث خرابکاری نشوند.

Intel 80386

این پردازنده اولین پردازنده‌ی Intel با معماری 32 بیتی بود که می‌توانست تا 4 گیگابایت حافظه را آدرس‌دهی کند. ویژگی مهم این پردازنده معرفی قابلیت حافظه‌ی مجازی بود. در این حالت به جای اینکه هر برنامه در فضای مربوط به خودش آدرس دهی کند می‌تواند به صورت نسبی آدرس بدهد. مثلا اگر به یک برنامه از خانه 0X01A03200 تا 0X01A03500 حافظه‌ی رم اختصاص داده شده باشد، برای دسترسی به خانه‌ی سوم حافظه‌ی اختصاص داده شده به برنامه، آدرس 0X00000010 را تولید می کند و واحد MMU در پردازنده این آدرس را نسبی را به آدرس واقعی یعنی 0X01A03202 تبدیل می‌کند. سیستم‌عامل‌هایی که از این پردازنده استفاده می‌کردند Windows 3 و Linux اولیه بودند.

شاید برای شما مفید باشد:
تبدیل mil به mm در آلتیوم به همراه نکات کاربردی طراحی PCB

Intel 80486

این پردازنده‌ی 32 بیتی دارای Pipeline و کش داخلی L1 و FPU داخلی برای محاسبات اعشاری بود. این در حالی بود که در پردازنده های قبلی واحد FPU به صورت یک آی سی جداگانه در کنار CPU قرار می‌گرفت.

Motorolla 68000

68000 یکی از تمیزترین و محبوب‌ترین معماری‌های تاریخ بود، در حدی که بسیاری می گویند: “68000 همان چیزی بود که 8086 باید می‌بود” این پردازنده در سال 1979 با معماری داخلی 32 بیتی (رجیسترهای 32 بیتی)، باس آدرس 24 بیتی (قابلیت آدرس‌دهی تا 16 مگابایت حافظه) و باس داده‌ی 16 بیتی معرفی شد. اگر چه به خاطر باس داده‌ی 16 بیتی، این پردازنده جزو دسته 16 بیتی‌ها قرار می‌گرفت ولی به خاص ساختار داخلی 32 بیتی بسیار پرسرعت تر از پردازنده‌های 16 بیتی عمل می‌کرد.

مهم‌ترین ویژگی 68000 در مقابل 8086 این بود که از صفر و کاملا منطقی طراحی شده بود. بر خلاف 8086 هر دستور می‌توانست از تمام رجیسترها استفاده کند، آدرس دهی خطی و بدون سگمنت بندی عجیب و غریب بود و دستورات آدرس‌دهی بسیار متنوع و پیشرفته بودند (برای مثال دستورات A++ و ++A برای اولین بار در این معماری استفاده شدند). با همه‌ی این ویژگی‌های مثبت، 68000 نتوانست بازار PC را تصرف کند و استاندارد جهان شود. این اتفاق دو دلیل تجاری داشت. اول اینکه IBM یعنی غول PC آن زمان 8086 را انتخاب کرد (به دلایلی که قبلا گفته شد) و دوم اینکه اکوسیستم نرم‌افزاری DOS و Windows برای x86 ساخته شده بود و مهاجرت از آن سخت بود. موتورولا برای تکامل هر چه سریع‎‌تر 86000 خانواده‌ی 86K را در سال‌های بعد ارائه کرد که شامل 68000، 68020، 68030، 68040 و 68060 می‌شد و هر کدام نسبت به قبلی ویژگی‌های بهتری داشتند. اما دیگر دیر شده بود و x86 یکه تاز بازار PC شده بود!

Motorola 68000

Motorola 68000

با اینکه IBM PC از 68000 استفاده نکرد اما دستگاه‌های مشهور دیگری بودند که 68000 را بر 8086 ترجیح دادند. در ادامه تعدادی از این دستگاه‌ها معرفی می‌شوند.

Apple Macintosh

اپل در اوایل دهه‌ی 80 برای ساخت کامپیوتر شخصی‌اش چند انتخاب داشت، ولی 68000 تقریبا ایده‌آل بود، چون حافظه‌ی خطی (حافظه‌ی بدون سگمنت‌بندی) برای سیستم عامل گرافیکی حیاتی بود. رجیسترهای 32 بیتی برای پردازش گرافیکی و فونت بسیار کارآمد بود. آدرس‌دهی پیشرفته برای کار با ساختارهای پیچیده مناسب بود و در نهایت 68000 نسبت به قیمت، کارایی بالایی داشت. در نهایت اپل اولین کامپیوتر Macintosh را با سیستم عامل Mac OS، پردازنده‌ی 68000، رم 128 کیلوبایتی و رام 64 کیلوبایتی، نمایشگر تک رنگ با رزولوشن 512*342 را در سال 1984 ارائه داد.

کامپیوتر Apple Macintosh

کامپیوتر Apple Macintosh

Sega Mega Drive

قبلا گفته شد که در کنسول بازی Sega Mega Drive برای تولید و کنترل صدا از Zilog Z80 استفاده شد؛ اما بخش اصلی کنسول یعنی پردازنده مرکزی آن را 68000 تشکیل داد. این پردازنده نقش‌های مختلفی از جمله اجرای منطق اصلی بازی، گرافیک، منوی بازی، منطق برخورد، کنترل ورودی و غیره را برعهده داشت. پردازنده‌ی Motorola 68000 در کنسول Sega Mega Drive یکی از مهم‌ترین نقش‌ها را در تاریخ بازی‌ها داشته است، چون ترکیب قدرت، انعطاف و طراحی تمیز آن، باعث شد مگادرایو بازی‌هایی با گرافیک، فیزیک و موسیقی خیلی پیشرفته‌تر از نسل خودش ارائه بدهد.

Sega Mega Drive

MIPS

اوایل دهه‌ی هشتاد در دو دانشگاه برکلی و استنفورد چند مشاهده کلیدی انجام شد؛ برنامه‌نویسان کدهای C و Pascal با بررسی کد اسمبلی معادل کدهای نوشته شده متوجه چند نکته شدند:

  1. بیش از 80 درصد کدها ساده هستند.
  2. بیشتر عملیات روی متغیرهای محلی انجام میشود.
  3. دستورهای پیچیده CISC تقریبا استفاده نمی‌شدند.
  4. کامپایلرها از دستورهای پیچیده به خوبی استفاده نمی‌کردند.

نتیجه‌ی این مشاهدات در این جمله خلاصه شد: “اگر سخت افزار را برای کامپایلر طراحی کنیم نه برای انسان اسمبلی نویس، سخت افزار سریع‌تر می‌شود” و این جمله روح RISC را به وجود آورد.

در نتیجه همزمان در هر دو دانشگاه، دو پروژه‌ی تقریبا مشابه برای طراحی معماری RISC کلید خورد. پروژه‌ی معماری RISC طراحی شده در دانشگاه استنفورد با نام MIPS ویژگی های زیر را داشت:

1- معماری Load/Store خالص

در این حالت تنها دو دستور Load و Store اجازه‌ی دسترسی به حافظه را دارند و بقیه‌ی دستورات ابتدا داده های لازم را از طریق دستور Load وارد رجیسترها می کنند و عملیات را روی رجیسترها انجام می دهند و حاصل را با استفاده از دستور Store در حافظه ذخیره می کنند.

2- طول ثابت دستورالعمل‌ها

همه‌ی دستورها دقیقا 32 بیتی هستند، در نتیجه رمزگشایی و اجرای Pipeline ساده‌تر می‌شود.

3- حذف Interlock در Pipeline

وقتی دو دستور با استفاده از Pipeline به صورت موازی در حال اجرا هستند، ممکن است ورودی دستور دوم به خروجی دستور اول وابسته باشد. در پردازنده یک مدار Interlock وجود دارد که وظیفه‌اش تشخیص وابستگی بین دستورات است. وقتی وابستگی تشخیص داده شد، اجرای پایپ چند کلاک به تاخیر می‌افتد تا خروجی دستور اول مشخص شود و سپس دستور دوم اجرا شود. (به این حالت ایجاد تاخیر اصطلاحا Stall گفته می‌شود). در معماری جدید این مدار حذف شد تا سخت افزار پردازنده ساده تر شود و در عوض تشخیص وابستگی به کامپایلر داده شد.

4- تعداد زیاد رجیستر

32 رجیستر همه‌منظوره در نظر گرفته می‌شود که بسیار بیشتر از معماری‌هایی همچون x86 است. در این حالت کامپایلر آزادی عمل بیشتری برای بهینه‌سازی کد دارد.

بعد از طراحی معماری جدید، شرکت MIPS توسط طراحان معماری تاسیس شد و اولین پردازنده‌ی MIPS در با نام R2000 سال 1985 ساخته شد. این پردازنده‌ی 32 بیتی دارای پایپ‌لاین 5 مرحله‌ای و حافظه‌ی کش خارجی بود. سیستم‌عامل‌های رایج این پردازنده Unix و Linux بودند. این پردازنده در اولین کنسول بازی پلی‌استیشن شرکت Sony نیز استفاده شد.

MIPS R2000

MIPS R2000

استفاده از پردازنده‌ی مبتنی بر MIPS R2000 در کنسول بازی Playstation

استفاده از پردازنده‌ی مبتنی بر MIPS R2000 در کنسول بازی Playstation

SPARC

همانطور که گفته شد همزمان با دانشگاه استنفورد، پروژه‌ای در دانشگاه برکلی برای طراحی معماری جدید RISC آغاز شد. معماری RISC طراحی شده در این پروژه ویژگی‌هایی مانند پروژه‌ی MIPS را دارا می‌باشد، با این تفاوت که به جای 32 رجیستر دارای 138 رجیستر می‌باشد. حالا شاید این سوال پیش بیاید که چرا تعداد رجیسترها اینقدر زیاد است!

ایده‌ی انقلابی Register Windows

یکی از مهم‌ترین نوآوری‌های Berkeley RISC ویژگی Register Window بود. در معماری CISC هر تابع برای اجرا باید مقادیر قبلی رجیسترها را ابتدا روی حافظه‌ی استک push و پس از اجرای کامل تابع، مقادیر ذخیره شده در استک دوباره pop شود و این کار باعث کند شدن اجرای برنامه می‌شد. راه حل کلی این بود که رجیسترها به تعدادی دسته (پنجره) تقسیم شوند و هر تابع رجیسترهای محلی خودش را دارد. در نتیجه وقتی یک تابع صدا زده می‌شود، فقط پنجره‌ی رجیستر عوض می‌شود و هیچ مقداری push و pop نمی‌شود.

یکی از نخستین معماری‌های تجاری موفق مبتنی بر رویکرد RISC، معماری SPARC بود. شرکت Sun Microsystems در اواسط دهه ۱۹۸۰، سیستم‌های مبتنی بر یونیکس تولید می‌کرد. این سیستم‌ها در ابتدا از پردازنده‌های شرکت‌های دیگر، مانند Motorola 68000 و Intel 80386، استفاده می‌کردند.

Sun بعدها تصمیم گرفت برای سیستم‌های یونیکسی خود، پردازنده‌ای اختصاصی طراحی کند. طراحی این پردازنده تا حد زیادی از پروژه پژوهشی Berkeley RISC در دانشگاه کالیفرنیا، برکلی، الهام گرفته بود. نخستین پردازنده مبتنی بر معماری SPARC در سال ۱۹۸۷ معرفی شد. پردازنده‌های SPARC بعدها در طیف گسترده‌ای از سامانه‌های حرفه‌ای، از جمله سرورهای مخابراتی و مالی، تجهیزات صنعتی و برخی کاربردهای فضایی و ماهواره‌ای به کار گرفته شدند.

شاید برای شما مفید باشد:
اسیلاتور (نوسان‌ساز)

 

پردازنده‌ی SPARC

پردازنده‌ی SPARC

پردازنده های مبتنی بر معماری ARM

در سال 1983 شرکت Acron قصد داشت نسل جدید کامپیوترهایش را بسازد. اول چند گزینه پیش رو داشت، از جمله Motorola 68000 و Intel 80286. اما مشکل این پردازنده ها این بود که گران بودند، مصرف انرژی زیادی داشتند و سرعت واقعی‌شان نسبت به پیچیدگی ساختارشان پایین بود. اینجا بود که مهندسان Acron یک تصمیم انقلابی گرفتند: خودشان یک پردازنده طراحی کنند. در همان زمان، مقالات دانشگاهی درباره‌ی RISC (از Berkeley و Stanford) منتشر شده بود. مهندسان Acorn متوجه شدند بسیاری از دستورهای پیچیده‌ی پردازنده‌ها تقریباً استفاده نمی‌شوند.

پس ایده‌ی اصلی دستورهای ساده، اجرای سریع و طراحی بسیار کوچک بود. در سال 1985 اولین نمونه ساخته شد و ARM نامگذاری شد. این پردازنده حدود 25000 ترانزیستور داشت، در حالیکه پردازنده‌ای مثل 80386 حدود 275000 ترانزیستور داشت، یعنی ARM تقریبا ده برابر ساده‌تر بود. در سال 1990 اتفاق مهمی افتاد. سه شرکت Acron، Apple و VLSI Technology با همکاری هم شرکت ARM Ltd را تاسیس کردند و در این شرکت به جای ساخت CPU، معماری آن را طراحی می‌کردند و به شرکت‌های درخواست‌کننده لایسنس طراحی را می‌فروختند.

امروزه شرکت‌های Apple، Qualcomm، Samsung، NVIDIA، Media Tek و Broadcom از این معماری در ساخت پردازنده‌های خود استفاده می‌کنند. موفقیت آرم سه دلیل داشت، اولین و مهم‌ترین دلیل، مصرف انرژی بسیار پایین آن بود که باعث می‌شد که در دستگاه‌های باتری‌دار پرطرفدار باشد. دوم طراحی ساده بود که به دلیل استفاده از معماری RISC بود و سوم لایسنس آزادتر بود، چون هر شرکت می‌توانست CPU خودش را طراحی کند و یا هسته ARM را استفاده کند.

Intel Pentium

با بررسی روند نامگذاری پردازنده‌های اینتل شاید این سوال پیش بیاید که چرا اینتل اسم پردازنده‌ی جدید را 80586 نگذاشت. اتفاقا اینتل می‌خواست همین اسم را بگذارد ولی در آن زمان قانون جدید نام‌گذاری تجاری اجازه‌ی استفاده از نام‌هایی را که فقط عدد باشند، نمی داد. بنابراین اینتل تصمیم گرفت از نام یونانی Penta به معنی پنج و ترکیب با ium برای اینکه علمی‌تر شود (!) استفاده کند. پردازنده‌هایPentium  نقطه‌ی عطف بسیار مهمی در تاریخ معماری x86 هستند — هم از نظر فنی (pipeline ،superscalar ،cacheدو سطحی )هم از نظر بازاری( اولین برند مصرفی بزرگ اینتل). نسل این پردازنده P5 بود؛ نسلی که ویژگی‌های مهم و منحصر به فردی داشت. این ویژگی‌ها در ادامه معرفی می‌شود.

اولین ویژگی مهم این پردازنده، Superscalar بود، یعنی پردازنده می‌توانست در هر کلاک بیش از یک دستور را اجرا کند. در واقع پردازنده دو خط pipeline موازی با نام‌های U-Pipe و V-Pipe داشت. در نتیجه در شرایط خوب، سرعت پنتیوم 5/1 تا 2 برابر 80486 در فرکانس یکسان می‌شد.

دومین ویژگی، پایپ‌لاین 5 مرحله‌ای بود. البته 80486 هم همینطور بود اما در اینجا سیستم کنترل دقیق‌تر شده بود تا به بهترین وجه ممکن از امکان Superscalar استفاده شود.

سومین ویژگی، Branch Prediction بود. این امکان اضافه شد تا خط pipeline تا حد امکان خالی نماند. در این حالت، وقتی پردازنده به یک شرط در کد می‌رسید، آن را پیش بینی می‌کرد و اگر احتمال می‌داد درست باشد، محتویات درون بلوک شرطی را اجرا می‌کرد و در نتیجه خط pipeline پر می‌شد، سپس در کلاک‌های بعدی با بررسی شرط، اگر پیش بینی درست بود که چه بهتر و اگر درست نبود نتیجه‌ی محاسبات بلوک شرط را دور می‌ریخت.

چهارمین ویژگی، اضافه شدن کش دوم یعنی L2 به پردازنده بود. این ویژگی سرعت پردازش را به شدت افزایش می‌داد.

بعدها اینتل نسل‌های مختلفی از این پردازنده شامل Pentium MMX، Penitum II، Pentium III، Pentium 4، Pentium D و Pentium Dual-Core را معرفی کرد. Pentium D اولین پردازنده‌ی چندهسته‌ای بود که از دو هسته‌ی Pentium 4 تشکیل می‌شد.

پردازنده‌ی Intel Pentium

پردازنده‌ی Intel Pentium

PowerPC

اوایل دهه‌ی 90 معماری x86 در PC ها غالب بود و RISC ها (MIPS, SPARC, Alpha) در سرورها و کامپیوترهای مرکزی (Workstations) می‌درخشیدند و Apple هم از Motorola 68000 استفاده می‌کرد. سپس سه شرکت Apple و IBM و Motorola با هم متحد شدند و اتحاد AIM شکل گرفت. هدف این اتحاد ساخت یک معماری RISC قدرتمند، مقیاس‌پذیر و قابل استفاده از دسکتاپ تا سرور و شکستن سلطه‌ی x86 بود. نتیجه‌ی این اتحاد، ساخت پردازنده‌ی PowerPC در سال 1993 بود.

این پردازنده از لحاظ معماری فوق العاده تمیز طراحی شده بود. RISC واقعی بود، معماری Load/Stor داشت، مدل حافظه، غیر خطی و ساده بود و طراحی آن مناسب کامپایلر بود. در واقع برای برنامه‌نویس PowerPC خیلی خوش دست تر از x86 در دهه‌ی 90 بود. با طراحی این پردازنده، اپل استفاده از Motorola 68000 در کامپیوترهایش را متوقف کرد و تصمیم به استفاده از این پردازنده گرفت و کامپیوترهای جدیدش را در این سری، Power Macintosh نامگذاری کرد. اپل با PowerPC توانست از محدودیت‌های 68000 عبور کند و سیستم‌های گرافیکی قوی‌تری بسازد. علاوه بر لپ‌تاپ‌های اپل، PowerPC در دستگاه‌های مهم دیگری از جمله Xbox 360 و PlayStation 3 استفاده شد. با وجود همه‌ی این موفقیت‌ها در نهایت PowerPC نتوانست جای x86 را بگیرد و به چند دلیل شکست خورد.

دلیل اول این بود که x86 بازار نرم‌افزارها و بازی ها را فراگرفته بود و شرکت ها حاضر به تبدیل برنامه هایشان نبودند. دلیل دوم این بود که Motorola عقب افتاده بود، IBM روی سرورهایش تمرکز داشت و اپل به پردازنده‌های سریع‌تر نیاز داشت. دلیل سوم این بود که PowerPC نتوانست به غول های 3GHz برسد و بتواند مصرف توان و گرما را کنترل کند. در نتیجه در سال 2005 اپل اعلام کرد که به Intel x86 مهاجرت می‌کند.

پردازنده‌ی PowerPC

پردازنده‌ی PowerPC

AMD Kx

شرکت AMD با اولین پردازنده‌ی خود یعنی AMD K5 وارد رقابت با پردازنده‌های پنتیوم اینتل شد و بعد از آن پردازنده‌های K6 و K6-2 و K6-III را ساخت. K6-2 اولین پردازنده‌ای بود که وارد رقابت جدی با پنتیوم شد. رقیب اصلی آن Pentium II بود. فرکانس کاری آن 550 مگاهرتز بود و دارای دو کش L1 و L2 بود. K6-2 بسیار ارزان‌تر از Penitum II بود و در کارهای معمولی مثل کار با برنامه های Office و کامپایل کردن، عملکردی عالی داشت؛ تنها مشکل آن FPU (واحد پردازش اعشاری) ضعیف بود که باعث عملکرد پایین در اجرای بازی‌ها و کارهای گرافیکی می‌شد.

این پردازنده توانست بخش قابل توجهی از بازار پردازنده‌های اینتل را به دست بیاورد. پردازنده‌‌‌ی K6-III رقیب اصلی Pentium III بود و بر خلاف K6-2 که کش L2 روی مادربورد نصب می‌شود، در این نسخه به داخل خود پردازنده منتقل شده شده بود؛ در نتیجه تاخیر حافظه در آن بسیار کم بود و در بسیاری از برنامه‌ها از Pentium III سریع تر بود. ساخت این پردازنده، پیچیده و گران بود و برای همین نتوانست خیلی با اینتل رقابت کند؛ اما زمینه ساز ساخت پردازنده‌ی بعدی شد. پردازنده‌ی بعدی که توسط AMD طراحی شد Athlon یا K7 بود. ساخت این پردازنده باعث اولین شکست واقعی اینتل شد.

شاید برای شما مفید باشد:
ولتاژ چیست؟ | بررسی ولتاژ به زبان ساده

این پردازنده یک نسخه‌ی تکامل یافته نبود، یک طراحی کاملا جدید بود. فرکانس کاری آن برای اولین بار در تاریخ پردازنده‌های x86 به یک گیگاهرتز رسید. کش L1 دارای ظرفیت 128 کیلوبایت یعنی دو برابر اینتل بود و FPU آن بسیار قوی‌تر از نسخه‌های قبلی بود. معماری این پردازنده RISC داخلی بود که از بیرون دستورات معماری x86 را می‌گرفت و به RISC ترجمه می‌کرد. در مقایسه با پنتیوم‌ها، دارای Pipline و Branch Prediction پیشرفته‌تری بود و کش سریع‌تر و پهنای باند بالاتری داشت.

Intel Core

تا اوایل دهه‌ی ۲۰۰۰، اینتل با پردازنده‌های Pentium 4 که داشت، با چالش‌های بزرگی روبرو بود. انگیزه‌ی اصلی طراحی سری Core این بود:

  • غلبه بر مشکل مصرف انرژی و گرمای بیش از حد: Pentium 4 با فرکانس‌های بالا، گرمای زیادی تولید می‌کرد و مصرف انرژی‌اش بسیار بالا بود. این موضوع برای لپ‌تاپ‌ها یک مشکل جدی بود و حتی در دسکتاپ‌ها هم نیازمند سیستم‌های خنک‌کننده قوی بود.
  • بهبود عملکرد به ازای هر چرخه کلاک (IPC – Instructions Per Clock): NetBurst تمرکزش را روی افزایش فرکانس گذاشته بود، اما IPC آن نسبت به معماری‌های رقیب (مثل AMD Athlon 64) خیلی بالا نبود.
  • نیاز به معماری منعطف‌تر: اینتل به دنبال معماری‌ای بود که بتواند هم در پردازنده‌های دسکتاپ، هم لپ‌تاپ و هم سرورهای کوچک به‌خوبی عمل کند.

این مشکلات باعث شد اینتل تصمیم بگیرد تا از نو شروع کند و معماری‌ای طراحی کند که کارایی (Performance) و بهره‌وری انرژی (Power Efficiency) را هم‌زمان در اولویت قرار دهد. نتیجه‌ی این تلاش، معماری Core بود که در سال ۲۰۰۶ با پردازنده‌های Core Duo  (برای لپ‌تاپ‌ها) و Core 2 Duo/Quad (برای دسکتاپ‌ها) معرفی شد.

معماری Core بر پایه‌های چند اصل بنا شد که آن را از Pentium 4 متمایز می‌کرد:

  • تمرکز بر IPC بالا: به جای تمرکز صرف بر فرکانس، Core تلاش کرد تا در هر چرخه‌ی کلاک، دستورات بیشتری را اجرا کند. این کار با بهبودهایی در بخش‌های مختلف CPU مانند:
  • Pipeline عمیق‌تر و هوشمندتر: طراحی مجدد pipeline دستورات که منجر به اجرای موازی‌تر و کارآمدتر می‌شد.
  • حافظه کش (Cache) بزرگتر و سریع‌تر: بهبود ساختار L1 و L2 cache برای دسترسی سریع‌تر به داده‌ها.
  • قابلیت اجرای خارج از نوبت (Out-of-Order Execution): CPU می‌توانست دستورات را به ترتیب بهینه‌تری اجرا کند، حتی اگر ترتیبشان در کد اصلی متفاوت بود.
  • پردازنده‌های چند هسته‌ای (Multi-Core): Core Duo اولین پردازنده‌ی دو هسته‌ای بود که برای لپ‌تاپ عرضه شد (که از ترکیب دو هسته‌ی Pentium M بود). Core 2 Duo و Quad، اولین پردازنده‌های چند هسته‌ای بودند که از ابتدا با این هدف طراحی شدند. این یعنی پردازنده می‌توانست چندین وظیفه را واقعاً به صورت همزمان اجرا کند.
  • بهره‌وری انرژی: با استفاده از تکنیک‌های مختلف مانند:
  • Dynamic Power Scaling: تنظیم خودکار سرعت و ولتاژ پردازنده بر اساس بار کاری.
  • Deep Sleep States: خاموش کردن بخش‌هایی از پردازنده که در آن لحظه استفاده نمی‌شوند.
  • تکنولوژی ساخت کوچکتر: گذار از فرآیندهای ساخت بزرگتر به فرآیندهای کوچکتر (مثلاً از 65nm به 45nm) که مصرف انرژی را کاهش می‌داد.
  • کش یکپارچه (Shared Cache): در پردازنده‌های چند هسته‌ای Core، هسته‌ها اغلب از حافظه کش L2 به صورت مشترک استفاده می‌کردند که ارتباط بین هسته‌ها و دسترسی به داده‌ها را کارآمدتر می‌کرد.
  • فرمان‌های جدید (Instruction Set Extensions): اینتل دستورات جدیدی مانند SSE4 را اضافه کرد که به تسریع عملیات‌های خاص در کاربردهای مالتی‌مدیا، گرافیک و محاسبات علمی کمک می‌کرد.

پس از موفقیت چشمگیر معماری Core (با پردازنده‌های Core Duo و Core 2 Duo/Quad)، اینتل تصمیم گرفت تا این معماری را توسعه دهد و یک دسته‌بندی واضح برای نیازهای مختلف کاربران ایجاد کند. هدف اصلی این بود که:

  • ارائه‌ی گزینه‌های متنوع برای بودجه‌ها و نیازهای مختلف: کاربران بتوانند پردازنده‌ای را انتخاب کنند که دقیقاً متناسب با بودجه و سطح استفاده‌شان باشد (از کارهای روزمره تا حرفه‌ای‌ترین نیازها).
  • بهبود مداوم عملکرد و بهینگی انرژی: هر نسل جدید، بهبودهایی در IPC، تعداد هسته‌ها، فرکانس، مصرف انرژی و فناوری ساخت به همراه داشت.
  • ادغام فناوری‌های جدید: مانند Hyper-Threading، Turbo Boost، و پردازنده‌های گرافیکی مجتمع (Integrated Graphics).

اولین پردازنده‌های Core i7 (بر پایه‌ی معماری Nehalem) در اواخر سال ۲۰۰۸ معرفی شدند و به سرعت جایگزین Pentium ها و Core 2 های رده بالا شدند. Core i5 و i3 نیز به تدریج در سال ۲۰۰۹ و ۲۰۱۰ عرضه شدند تا شکاف‌های قیمتی و عملکردی را پر کنند.

معماری و دسته‌بندی انواع پردازنده‌های سری Core:

اینتل پردازنده‌های خود را بر اساس ترکیبی از تعداد هسته‌ها، فرکانس کاری، فناوری Hyper-Threading، حافظه‌ی کش، و فناوری Turbo Boost دسته‌بندی کرد:

Core i3:

  • هدف: پردازنده‌های ورودی (Entry-level) برای کارهای روزمره و مولتی‌تسکینگ سبک.
  • ویژگی‌های کلیدی: معمولاً ۲ هسته‌ی فیزیکی با فناوری Hyper-Threading (که هر هسته را قادر می‌سازد دو ترد (Thread) مجازی را مدیریت کند، در مجموع ۴ ترد). حافظه‌ی کش کمتر و فرکانس کاری معمولاً پایین‌تر. معمولاً فاقد فناوری Turbo Boost هستند.
  • کاربرد: وب‌گردی، کار با آفیس، تماشای فیلم، مولتی‌تسکینگ سبک.

Core i5:

  • هدف: پردازنده‌های میان‌رده (Mid-range) برای کاربران خانگی، دانشجویان و گیمرهای معمولی.
  • ویژگی‌های کلیدی: معمولاً ۴ هسته‌ی فیزیکی (در نسل‌های جدیدتر تا ۱۰ هسته یا بیشتر). فاقد Hyper-Threading (در بیشتر نسل‌های اولیه و میان‌رده)، اما با فناوری Turbo Boost که اجازه می‌دهد فرکانس هسته‌ها در صورت نیاز افزایش یابد. حافظه‌ی کش بیشتر از i3.
  • کاربرد: بازی، کارهای گرافیکی سبک، مولتی‌تسکینگ متوسط، تولید محتوای سبک.

Core i7:

  • هدف: پردازنده‌های رده بالا (High-end) برای کاربران حرفه‌ای، گیمرهای جدی، و تولیدکنندگان محتوا.
  • ویژگی‌های کلیدی: معمولاً ۴ تا ۸ هسته‌ی فیزیکی (در نسل‌های جدیدتر تا ۲۰ هسته یا بیشتر). همراه با Hyper-Threading (برای افزایش تعداد تردهای پردازشی). حافظه‌ی کش بزرگتر و فرکانس Turbo Boost بالاتر نسبت به i5.
  • کاربرد: بازی‌های سنگین، ویرایش ویدئو، رندرینگ سه‌بعدی، برنامه‌نویسی، مجازی‌سازی.

Core i9:

  • هدف: پردازنده‌های فوق حرفه‌ای (Enthusiast/Prosumer) برای بیشترین عملکرد ممکن در پردازش‌های سنگین.
  • ویژگی‌های کلیدی: بیشترین تعداد هسته‌ی فیزیکی (از ۸ هسته در نسل‌های اولیه تا ۲۴ هسته یا بیشتر در نسل‌های جدید). همراه با Hyper-Threading. بیشترین حافظه‌ی کش و بالاترین فرکانس‌های Turbo Boost. اغلب با کنترلرهای حافظه‌ی قوی‌تر و پشتیبانی از RAM بیشتر.
  • کاربرد: رندرینگ حرفه‌ای، شبیه‌سازی‌های پیچیده، تدوین ویدئوهای 8K، توسعه بازی، ماشین‌های مجازی متعدد، اورکلاکینگ (در مدل‌های K).

 

در توضیحات بالا به چند اصطلاح فنی اشاره شد که در ادامه توضیح داده می‎شوند.

  • Hyper Threading: در این ویژگی که توسط اینتل معرفی شد، هر هسته‌ی CPU خود را به صورت دو هسته‌ی مستقل نشان می‌دهد تا از زمان‌های بیکاری هسته استفاده‌ی بیشتری کند و در نتیجه کارایی هسته را در کارهای چند وظیفه‌ای افزایش دهد. برای مثال وقتی یک Thread منتظر حافظه یا یک عملیات دیگه است، هسته بلا استفاده می ماند. در نتیجه این ویژگی اجازه می‌دهد Thread دوم از همین زمان‌های خالی استفاده کند.
  • Turbo Boost: این ویژگی، فناوری پردازنده‌های Intel است که اجازه می‌دهد هسته‌ها بیشتر از فرکانس پایه کار کنند، اما فقط در شرایطی که دما و مصرف برق اجازه بدهد.
  • Over Clocking: یعنی اینکه قطعاتی مثل CPU / GPU / RAM را طوری تنظیم کرد که با فرکانس بالاتر از مقدار کارخانه کار کنند تا کارایی بیشتر بدهند. بسته به نوع قطعه‌ای که اورکلاک می‌شود، ممکن است فرکانس، ولتاژ و محدودیت‌های توان و دما افزایش داده شود.
اطلاعات
81
0
1
اشتراک و حمایت
profile نویسنده: AFA متخصص الکترونیک

ویراستار: حسین زنجانی زاده
مقالات بیشتر

slide

پالت | بازار خرید و فروش قطعات الکترونیک

قطعات اضافه و بدون استفاده همیشه یکی از سرباره‌‌های شرکتها و طراحان حوزه برق و الکترونیک بوده و هست. پالت سامانه‌ای است که بصورت تخصصی اجازه خرید و فروش قطعات مازاد الکترونیک را فراهم می‌کند. فروش در پالت
family

آیسی | موتور جستجوی قطعات الکترونیک

سامانه آی سی سیسوگ (Isee) قابلیتی جدید و کاربردی از سیسوگ است. در این سامانه سعی شده است که جستجو، انتخاب و خرید مناسب تر قطعات برای کاربران تسهیل شود. جستجو در آیسی
family

سیسوگ‌شاپ | فروشگاه محصولات Quectel

فروشگاه سیسوگ مجموعه ای متمرکز بر تکنولوژی های مبتنی بر IOT و ماژول های M2M نظیر GSM، GPS، LTE، NB-IOT، WiFi، BT و ... جایی که با تعامل فنی و سازنده، بهترین راهکارها انتخاب می شوند. برو به فروشگاه سیسوگ
family

سیسوگ فروم | محلی برای پاسخ پرسش‌های شما

دغدغه همیشگی فعالان تخصصی هر حوزه وجود بستری برای گفتگو و پرسش و پاسخ است. سیسوگ فروم یک انجمن آنلاین است که بصورت تخصصی امکان بحث، گفتگو و پرسش و پاسخ در حوزه الکترونیک را فراهم می‌کند. پرسش در سیسوگ فرم
family

سیکار | اولین مرجع متن باز ECU در ایران

بررسی و ارائه اطلاعات مربوط به ECU (واحد کنترل الکترونیکی) و نرم‌افزارهای متن باز مرتبط با آن برو به سیکار
become a writer
نویسنده شو !

سیسوگ با افتخار فضایی برای اشتراک گذاری دانش شماست. برای ما مقاله بنویسید.

ارسال مقاله
become a writer
نویسنده شو !

سیسوگ با افتخار فضایی برای اشتراک گذاری دانش شماست. برای ما مقاله بنویسید.

ارسال مقاله

خانواده سیسوگ

سیسوگ‌شاپ

فروشگاه محصولات Quectel

پالت
سیسوگ فروم

محلی برای پاسخ پرسش‌های شما

سیسوگ جابز
سیسوگ
سیسوگ فروم
سی‌کار

اولین مرجع متن باز ECU در ایران

سیسوگ مگ
آی‌سی

موتور جستجوی قطعات الکترونیکی

سیسوگ آکادمی
پالت

بازار خرید و فروش قطعات الکترونیک

دیدگاه ها

become a writer
نویسنده شو !

سیسوگ با افتخار فضایی برای اشتراک گذاری دانش شماست. برای ما مقاله بنویسید.

ارسال مقاله
become a writer
نویسنده شو !

سیسوگ با افتخار فضایی برای اشتراک گذاری دانش شماست. برای ما مقاله بنویسید.

ارسال مقاله