x86 چیست؟ | معماریای که دنیا را به هم وصل کرد
x86 چیست؟ x86 یه نوع معماری رایانهست که توی خیلی از کامپیوترها، لپتاپها و سرورها استفاده میشه. این معماری اولین بار توسط شرکت اینتل برای پردازنده ۸۰۸۶ طراحی شده بود. اسم x86 از آخر اسم این پردازنده و چند تا دیگه از پردازندههای اینتل که بعدش اومدن، مثل ۸۰۲۸۶ و ۸۰۳۸۶، گرفته شده.
x86 چطوری کار میکنه؟
x86 یه سری دستورالعمل داره که به پردازنده میگه چطوری کارها رو انجام بده. این دستورالعملها خیلی پیچیدهتر از دستورالعملهای معماریهای دیگه مثل ARM هستن که توی گوشیهای هوشمند و تبلتها استفاده میشن. به همین خاطر، پردازنده های x86 قویترن و میتونن کارهای سنگینتری رو انجام بدن.
x86 کجا استفاده میشه؟
x86 توی یه عالمه دستگاه مختلف استفاده میشه، از جمله:
- کامپیوتر های شخصی
- لپتاپها
- سرورها
- ایستگاه های کاری
- ابررایانهها
چرا x86 انقدر پرکاربرد شده؟
x86 یه معماری خیلی قدیمی هست، ولی هنوز هم خیلی پرکاربرد شده. دلیلش اینه که:
- خیلی قوی و پرسرعته
- سابقهی خیلی طولانی داره و خیلی از نرمافزارها و سیستمعاملها برایش نوشته شدن
- شرکت های زیادی پردازندههای x86 تولید میکنن، به همین خاطر قیمتش نسبتاً پایینه
رقبای x86 چیا هستن؟
معماریهای دیگه ای هم هستن که توی کامپیوترها استفاده میشن، مثل ARM و RISC-V. این معماریها جدیدتر و کممصرفتر از x86 هستن، ولی هنوز به اندازه x86 قوی و پرکاربرد نیستن.
نکات مهم:
- x86 یه معماری رایانه ست که توی خیلی از کامپیوترها، لپتاپها و سرورها استفاده میشه.
- x86 یه معماری قوی و پرسرعته که سابقه ی خیلی طولانی داره.
- معماری های دیگه ای هم هستن که توی کامپیوترها استفاده میشن، مثل ARM و RISC-V، ولی هنوز به اندازه x86 قوی و پرکاربرد نیستن.
داستان پردازنده های Am386 و رقابت نفسگیر در دنیای x86
همه چیز از کجا شروع شد؟
سال ۱۹۹۱ بود که شرکت AMD با معرفی پردازنده Am386، دنیای کامپیوترها رو به لرزه درآورد. این پردازنده یه نقطه عطفی بود و کلی توی کامپیوترهای شخصی اون زمان استفاده میشد.
اما Am386 فقط یه شروع بود، یه شروع پر از هیجان و رقابت!
رقابت داغ در دنیای x86
اون زمان شرکتهای مختلفی توی این بازی بودن و هر کدوم میخواستن بهترین پردازنده x86 رو بسازن. اسمهایی مثل IBM، VIA، NEC، TI، Fujitsu، OKI، زیمنس، Cyrix، Intersil، C&T، NexGen، UMC و DM&P توی این رقابت نفسگیر حضور داشتن.
نسل های جدید، رقابت های جدید
اولش پردازندههای x86 فقط ۱۶ بیتی بودن، اما کمکم مدلهای ۳۲ بیتی هم به بازار اومدن. برای کامپیوترهای شخصی، پردازندههای i386 و i486 توی اواخر دهه ۱۹۸۰ و اوایل دهه ۱۹۹۰ حسابی محبوب شدن. این پردازندهها در واقع نسخههای سازگار با طرحهای اصلی اینتل بودن.
اما اینتل تنها بازیکن این زمین نبود. سال ۱۹۹۳، اینتل با معرفی نام تجاری Pentium برای نسل جدید پردازندههاش، خودش رو به عنوان پادشاه x86 معرفی کرد.
ظهور رقبای جدید
با این حال، رقبای اینتل تسلیم نشدن. شرکتهایی مثل AMD، Cyrix و NexGen با ارائه پردازندههای جدید خود به رقابت با اینتل پرداختن. پردازندههای K5 و ۶×۸۶ AMD و Nx586 NexGen از جمله پردازندههای قابل توجه این دوره بودن.
مشکلات و چالشها
اما یه سری از این پردازندهها مشکلاتی مثل گرم شدن زیاد و سازگاری جزئی داشتن.
Nx586 واحد ممیز شناور نداشت و K5 هم موقعی که اومد به بازار، عملکردش ناامیدکننده بود. این مشکلات باعث شد که این پردازندهها به پای سری پنتیوم اینتل نرسن.
ظهور غول های جدید
اما AMD ناامید نشد. این شرکت با ارائه پردازنده های K6، Athlon و Opteron به عرصه رقابت بازگشت و سهم قابل توجهی از بازار رو به خودش اختصاص داد.
توی این میان، شرکت های دیگری مثل VIA Technologies و Centaur Technology هم توی این رقابت حضور داشتن.
امروز چه خبر؟
امروزه، دو غول اصلی دنیای پردازندههای x86، اینتل و AMD هستن. این دو شرکت به طور فعال طرحهای ۶۴ بیتی رو تولید میکنن و در حال رقابت تنگاتنگ با یکدیگر هستن.
و آینده چه خواهد شد؟
سال ۲۰۱۴، شرکت چینی Zhaoxin شروع به طراحی پردازندههای x86 مبتنی بر VIA برای دسکتاپ و لپ تاپ کرد. این شرکت امیدوار هست که بتونه سهمی از بازار پردازندههای x86 رو به خودش اختصاص بده.
سفر معماری X86 از ۳۲ به ۶۴ بیت و فراتر از آن: یه داستان جذاب!
دهه ۸۰ میلادی
دنیای کامپیوتر یهو دگرگون شد! اینتل یه غول ۳۲ بیتی به اسم ۸۰۳۸۶ (یا همون i386) رو معرفی کرد که جایگزین تراشههای ۱۶ بیتی قدیمی شد و سلطنت رو توی کامپیوترهای شخصی به دست گرفت. این معماری جدید که اول اسمش i386 بود، بعدها به IA-32 تغییر کرد.
پرش به ۶۴ بیت:
اواخر دهه ۹۰، شرکت AMD یه قدم جسورانه برداشت و معماری ۳۲ بیتی رو به ۶۴ بیتی ارتقا داد. اسم این معماری جدید رو x86-64 یا AMD64 گذاشتن. اینتل هم بعداً از این معماری با اسمهای مختلفی مثل IA-32e، EM64T و نهایتا Intel 64 استفاده کرد. مایکروسافت و Sun Microsystems از اصطلاح “x64” و خیلی از توزیعهای لینوکس و BSD هم از “amd64” استفاده میکنن.
x86-S: یه سادهسازی برای آینده
سال ۲۰۲۳، اینتل یه معماری جدید به اسم x86-S (با S از Simple به معنای ساده) معرفی کرد. هدف این معماری این بود که از شر حالتها و دستورالعملهای قدیمی خلاص بشه و فقط روی سیستمعاملهای ۶۴ بیتی تمرکز کنه. تو این معماری، کدهای ۳۲ بیتی فقط برای برنامههای کاربردی خاص و در محیطهای مخصوص قابل اجرا هستن.
پردازنده های امروزی x86 برای اینکه سریعتر باشن، چند تا ترفند به کار میبرن
تقسیم دستورالعملها به قطعات کوچیکتر
دستورالعمل های x86 به تیکههای ریزتر به اسم “عملیات میکرو” تقسیم میشن و بعد به واحدهای مختلف پردازنده فرستاده میشن تا همزمان روشون کار بشه.
مثل یه کارگاه که یه کار رو به چند تا متخصص کوچیکتر میسپره تا سریعتر تموم بشه.
اجرای دستورات به ترتیب دلخواه
پردازنده باهوشه و میتونه ترتیب اجرای دستورالعملها رو تغییر بده تا کارها رو بهینهتر انجام بده.
مثلا اگه یه دستورالعمل منتظر یه اطلاعاتی از حافظه باشه، پردازنده میتونه بره یه کار دیگه رو انجام بده و بعد که اطلاعات آماده شد برگرده سراغ اون دستورالعمل.
ذخیره ی دستورالعمل های آماده
پردازنده یه حافظه ی پنهان داره که دستورالعملهای آماده رو ذخیره میکنه تا دیگه لازم نباشه هر بار از اول رمزگشایی بشن.
مثل کتاب آشپزی که دستور غذاها رو یه جا نوشته و لازم نیست هر بار برای پخت یه غذا کل کتاب رو ورق بزنی.
ترکیب دستورات
بعضی وقتا پردازنده میتونه دو تا دستورالعمل x86 رو به یه دستورالعمل قویتر تبدیل کنه تا سریعتر اجرا بشه.
مثلا یه دستورالعمل مقایسه و یه دستورالعمل پرش شرطی رو میتونه به یه دستورالعمل واحد تبدیل کنه.
آدرسدهی نسبی
تو کد های ۶۴ بیتی، آدرس دستورالعملها به یه نقطه ی ثابت نسبت داده میشه،
این باعث میشه بشه از کدها توی جاهای مختلف برنامه بدون دردسر استفاده کرد.
پشته
یه حافظه ی داخلی هست که برای ذخیره ی اطلاعات موقت استفاده میشه.
مثلا وقتی یه تابع رو صدا میزنی، آدرس برگشت به پشته ذخیره میشه تا بعد از تموم شدن تابع، بتونی به همون جایی که بودی برگردی.
دنیای پردازندهها به زبان ساده: ۱۶، ۳۲، ۶۴ و ۱۲۸ بیتی چیکار میکنند؟
تصور کنید مغز کامپیوترتان یه عالمه جیب داره که هر کدوم یه چیزایی رو نگه میدارن. این جیبها توی پردازندهها هستن و بهشون رجیستر میگن. هر چی تعداد بیتهای یه رجیستر بیشتر باشه، میتونه اطلاعات بیشتری رو ذخیره کنه. حالا فرض کنید یه پردازنده ۱۶ بیتی داره، یعنی هر جیب توی مغزش ۱۶ تا خونه داره. یه پردازنده ۳۲ بیتی ۳۲ تا خونه داره و به همین ترتیب.
۱۶ بیتی
مثل مغزی که جیبهای کوچیکی داره، یه پردازنده ۱۶ بیتی هم میتونه با اعداد و آدرسهای کوچیک کار کنه.
این پردازندهها قدیمیتر هستن و قدرت زیادی ندارن.
مثلاً میتونستن بازیهای ساده رو اجرا کنن، ولی برای کارهای امروزی مثل وبگردی یا برنامههای سنگین مناسب نبودن.
۳۲ بیتی
این پردازندهها یه جهش بزرگ بودن! مغزشون دو برابر شده بود و میتونستن با اطلاعات بیشتری کار کنن.
ویندوز ۹۵ و XP روی این پردازندهها کار میکردن.
میتونستن برنامههای بیشتری رو اجرا کنن و سرعتشون هم بالاتر بود.
۶۴ بیتی
یه غول واقعی! این پردازندهها ۴ برابر جیبهای ۳۲ بیتی دارن و میتونن با اطلاعات خیلی خیلی زیادی کار کنن.
ویندوز ۷ و ۱۰ و برنامههای امروزی روی این پردازندهها اجرا میشن.
سرعتشون خیلی بالاست و میتونن کارهای سنگین مثل بازیهای جدید و برنامههای گرافیکی رو به راحتی انجام بدن.
۱۲۸ بیتی
این پردازندهها یه نوع خاص هستن که بیشتر برای محاسبات علمی و سنگین استفاده میشن.
مغزشون خیلی بزرگه و میتونه با حجم عظیمی از اطلاعات به طور همزمان کار کنه.
تو گوشی و کامپیوترهای معمولی زیاد ازشون استفاده نمیشه.
۲۵۶ و ۵۱۲ بیتی
غولهای غولپیکر! این پردازندهها برای کارهای خیلی خیلی خاص و سنگین مثل هوش مصنوعی و شبیهسازیهای پیچیده استفاده میشن.
مغزشون به قدری بزرگه که میتونه با یه عالمه اطلاعات به طور همزمان کار کنه.
تو گوشی و کامپیوترهای معمولی اصلاً ازشون استفاده نمیشه.
مقایسه
اندازه رجیستر | سال معرفی | مزایا | معایب |
---|---|---|---|
۱۶ بیتی | ۱۹۷۸ | ساده، کارآمد | محدودیت در پردازش اطلاعات پیچیده |
۳۲ بیتی | ۱۹۸۵ | فضای ذخیرهسازی بیشتر، پردازش سریعتر | عدم پشتیبانی از حجم عظیم دادهها |
۶۴ بیتی | ۲۰۰۳ | قدرت پردازش بالا، پشتیبانی از حجم عظیم دادهها | افزایش پیچیدگی و مصرف برق |
۱۲۸ بیتی | ۲۰۱۱ | پردازش موازی سریع، ایدهآل برای تصاویر و ویدئوها | نیاز به سختافزار و نرمافزار تخصصی |
۵۱۲ بیتی | ۲۰۱۶ | قدرت پردازش بینظیر برای پردازشهای سنگین | پیچیدگی و مصرف برق بسیار بالا |
نکته: به جز رجیستر های معمولی، پردازندهها رجیسترهای خاص دیگهای هم دارن که برای کارهای خاص سیستم و مدیریت حافظه استفاده میشن.
کامپیوترت فقط با عدد صحیح کار میکنه؟
تصور کن کامپیوترت فقط میتونه با عددهای صحیح مثل ۱، ۲ و ۳ کار کنه. جمع و تفریق اعداد با اعشار براش خیلی سخته و کلی زمان میبره.
خوشبختانه FPU اومده که کمکت کنه!
FPU مثل یه ماشین حساب جداگانه داخل کامپیوتره که فقط برای محاسبات ممیز شناور (مثل ۱.۵ و ۳.۱۴) طراحی شده.
اولش FPU ها رو به صورت چیپ های جداگانه به کامپیوترها اضافه میکردن، ولی بعداً تو خود پردازندهها تعبیه شدن.
با FPU، سرعت محاسبات ممیز شناور خیلی زیاد میشه. مثلاً جمع کردن دو عدد با اعشار با FPU فقط چند ثانیه طول میکشه، در حالی که بدون FPU ممکنه چند دقیقه طول بکشه!
FPU چی کارای دیگه ای هم بلده؟
علاوه بر محاسبات ممیز شناور، FPU ها میتونن با اعداد صحیح بزرگ هم کار کنن.
MMX: یه دوست جدید برای FPU!
اواخر دهه ۱۹۹۰، اینتل دنبال راهی بود که سرعت کارهای گرافیکی و ویدیویی رو تو کامپیوترها زیاد کنه.
MMX (مجموعه دستورالعملهای چندرسانهای) راهحلی بود که اینتل ارائه کرد. MMX 8 ثبات جدید به اسم MM0 تا MM7 به کامپیوترها اضافه کرد.
این ثباتها میتونستن اعداد صحیح یا ممیز شناور رو به صورت بستهبندی شده ذخیره کنن.
مثلاً یه ثبات MMX میتونست به جای یه عدد ۶۴ بیتی، دو عدد ۳۲ بیتی یا چهار عدد ۱۶ بیتی رو ذخیره کنه.
این کار باعث میشد که کامپیوترها بتونن دادههای گرافیکی و ویدیویی رو خیلی سریعتر پردازش کنن.
۳DNow!: رقیب MMX
AMD، رقیب اینتل، تو سال ۱۹۹۷ ۳DNow! رو معرفی کرد. ۳DNow! شبیه MMX بود، ولی برای محاسبات ممیز شناور بهینهسازی شده بود.
۳DNow! از همون ثباتهای MMX استفاده میکرد، ولی هر ثبات میتونست دو عدد ممیز شناور تک دقیق رو ذخیره کنه.
این کار باعث میشد که ۳DNow! برای بازیهای سهبعدی و برنامههای گرافیکی که از محاسبات ممیز شناور زیادی استفاده میکردن، خیلی سریعتر از MMX باشه.
حالا فهمیدی که FPU، MMX و ۳DNow! چیکار میکنن و چطور به کامپیوترت کمک میکنن؟
SSE و AVX چی هستن؟
SSE و AVX مجموعه دستورالعملهایی هستن که به پردازندهها اجازه میدن تا محاسبات رو به صورت “برداری” انجام بدن. به عبارت سادهتر، به جای اینکه پردازنده هر بار روی یه عدد یا یه داده کار کنه، میتونه روی چندتا عدد یا داده به طور همزمان کار کنه. این کار باعث میشه سرعت پردازش اطلاعات به طور قابل توجهی افزایش پیدا کنه.
SSE چیکار میکنه؟
SSE در سال ۱۹۹۹ توسط اینتل معرفی شد و اولین مجموعه دستورالعمل SIMD برای پردازنده های x86 بود. این مجموعه دستورالعمل به پردازندهها اجازه میداد تا عملیات ممیز شناور رو به صورت برداری انجام بدن. SSE2 که در سال ۲۰۰۰ منتشر شد، امکانات بیشتری رو به SSE اضافه کرد، از جمله پشتیبانی از اعداد با دقت دو برابر. SSE3 که در سال ۲۰۰۴ منتشر شد، دستورالعمل های جدیدی رو برای بهبود عملکرد HyperThreading اینتل اضافه کرد.
AVX چیکار میکنه؟
AVX در سال ۲۰۰۸ توسط اینتل معرفی شد و نسل بعدی SSE بود. AVX اندازه ثباتها رو به ۲۵۶ بیت افزایش داد، که به این معنیه که پردازنده میتونه روی دادههای بیشتری به طور همزمان کار کنه. AVX2 که در سال ۲۰۱۳ منتشر شد، دستورالعملهای جدیدی رو برای بهبود عملکرد ماسکسازی، جمعآوری و به هم زدن دادهها اضافه کرد. AVX-512 که در سال ۲۰۱۶ منتشر شد، بزرگترین مجموعه دستورالعمل SIMD تا به امروزه و از ثباتهای ۵۱۲ بیتی استفاده میکنه.
مزایای استفاده از SSE و AVX
- استفاده از SSE و AVX میتونه سرعت پردازش اطلاعات رو به طور قابل توجهی در بسیاری از برنامهها، از جمله برنامههای گرافیکی، ویرایش ویدئو، رمزگذاری و رمزگشایی، و محاسبات علمی افزایش بده.
معایب استفاده از SSE و AVX
- استفاده از SSE و AVX میتونه باعث افزایش مصرف برق پردازنده بشه.
مثال هایی از برنامه هایی که از SSE و AVX استفاده میکنن:
- برنامه های گرافیکی مانند Photoshop و Blender
- برنامه های ویرایش ویدئو مانند Adobe Premiere Pro و Final Cut Pro
- برنامه های رمزگذاری و رمزگشایی مانند WinRAR و ۷-Zip
- برنامه های محاسبات علمی مانند MATLAB و Mathematica
محدودیت های حافظه ۳۲ بیتی x86، چالشهایی را برای کامپیوتر های قدرتمند به وجود آورد.
- اواخر دهه ۹۰، پردازنده های ۳۲ بیتی x86 به دلیل محدودیت حافظه، برای کامپیوترهای قدرتمند و خوشههای محاسباتی مناسب نبودند.
- معماری های RISC 64 بیتی به دلیل مدیریت حافظه بیشتر، رقیب x86 شده بودند.
- اینتل تلاش ناموفقی برای جایگزینی x86 با معماری ۶۴ بیتی جدید خود (IA-64) داشت.
- اینتل در سال ۲۰۰۱ پردازنده Itanium با معماری IA-64 را معرفی کرد.
- IA-64 با x86 سازگار نبود و برنامهها برای آن باید بازنویسی میشدند.
- بازار، Itanium را به دلیل عدم سازگاری و عملکرد ضعیف برنامههای x86، رد کرد.
- AMD با معرفی AMD64، راه حلی برای آدرسدهی ۶۴ بیتی ارائه کرد.
- AMD در سال ۲۰۰۳ پردازنده Opteron با معماری AMD64 (x86-64) را معرفی کرد.
- AMD64 با x86 32 بیتی و ۱۶ بیتی سازگار بود و نیازی به بازنویسی برنامهها نداشت.
- مایکروسافت از AMD64 پشتیبانی کرد که به محبوبیت آن کمک کرد.
- اینتل مجبور به ارائه پردازنده x86-64 خود شد.
- اینتل در سال ۲۰۰۴ پردازنده Prescott Pentium 4 با معماری x86-64 را معرفی کرد.
- شکست Itanium، x86-64 را به معماری غالب در کامپیوترها تبدیل کرد.
x86-64 مزایای دیگری نیز داشت:
بیت NX برای محافظت در برابر بافر سرریز اضافه شد.
x86-64 در ابررایانهها و سایر کامپیوترهای قدرتمند استفاده میشود.
خلاقیت AMD در ارائه AMD64 و سازگاری آن، معماری x86 را نجات داد.
x86-64 با انعطافپذیری و سازگاری خود، به پلتفرمی غالب در کامپیوترها تبدیل شده است.
APX چیه؟
فرض کنید یه سری آپشن جدید به گوشیتون اضافه شده که باعث میشه سرعتش دو برابر بشه و کارای بیشتری بتونه انجام بده. APX توی دنیای کامپیوترها دقیقا همین کارو میکنه. این آپشنها ۱۶ تا رجیستر جدید به CPU اضافه میکنن و یه عالمه دستورالعمل جدید هم براش میذارن که همه چی رو سریعتر و بهتر میکنه.
این آپشن های جدید چیکار میکنن؟
- ۱۶ تا رجیستر جدید: مثل اینه که ۱۶ تا جیب جدید به جیبهاتون اضافه بشه. اینجوری میتونید چیزای بیشتری رو توی دستتون نگه دارید و سریعتر بهشون دسترسی داشته باشید.
- فرمت های دستورالعمل جدید: این فرمتها مثل یه زبان جدید برای صحبت کردن با CPU هستن. این زبان جدید باعث میشه که CPU بتونه دستورالعملها رو سریعتر بفهمه و اجرا کنه.
- دستورالعمل های مشروط جدید: این دستورالعملها به CPU کمک میکنن تا فقط زمانی که لازم باشه کار خاصی رو انجام بده، اونو انجام بده. اینجوری کلی توی مصرف برق و زمان صرفهجویی میشه.
حرف آخر
معماری X86 تو طول چند دهه کلی تغییر کرده و از ۱۶ بیت به ۶۴ بیت و حتی فراتر از اون رفته. این معماری قدرتمند و انعطافپذیر، پایه و اساس کامپیوتر های شخصی، سرورها و خیلی از دستگاههای دیگه تو دنیاست. X86-S، که آخرین نسخه این معماریه، نویدبخش عملکرد و کارایی بیشتر تو آیندهست.
__ تکنودات مرجع اخبار تکنولوژی __