📌 بخش اول: تغییرات ISA پردازندههای اینتل در معماری x86s
معماری x86 برای سالها در قلب سیستمهای کامپیوتری بوده است و این معماری با نسخههای بهبودیافته در پردازندههای اینتل مورد استفاده قرار گرفته است. در این مقاله، به بررسی معماری جدیدی که اینتل تحت عنوان x86S ارائه داده میپردازیم. X86S یک مجموعه دستورالعملهای معماری جدید و کاهشیافته است که از بخشهای قدیمی و بدون استفاده معماری سنتی x86 خلاص میشود و طراحی آن برای مدرنسازی و کارایی بیشتر معماری پردازندهها صورت گرفته است.
معماری ISA چیست و چرا نیاز به بهینهسازی دارد؟ معماری مجموعه دستورالعملها یا همان Instruction Set Architecture، مجموعهای از دستورالعملهاست که پردازندهها برای اجرای برنامهها و تعامل با سختافزار از آن استفاده میکنند. معماری x86 با گذشت زمان بخشهای مختلفی را برای سازگاری با سیستمهای قدیمیتر اضافه کرده که باعث پیچیدگی، افزایش مصرف انرژی و کاهش کارایی میشود. اینتل با ارائه x86S قصد دارد تا با حذف قابلیتهای غیرضروری و قدیمی، معماری x86 را بهبود بخشیده و بهینهسازی کند.
✅ ویژگیهای x86S: معماری x86S با کاهش بخشهای قدیمی و سازگاریهای اضافی، از سادهتر شدن کدهای اجرایی، کاهش پیچیدگیها و مصرف منابع بهره میبرد. این تغییرات شامل موارد زیر است:
➖ حالتهای اجرایی قدیمی: x86S از حالتهای اجرایی قدیمی که در معماریهای پیشین وجود داشتند، همچون حالت واقعی 16 بیتی و حالت محافظتشده 32 بیتی صرفنظر کرده و پردازنده را به طور دائم در حالت صفحهبندی شده قرار میدهد. در نتیجه، تنها حالت 64 بیتی و حالت سازگاری 32 بیتی باقی میماند.
➖ حذف حلقههای امنیتی پایینتر (Ring 1 و Ring 2): حلقههای امنیتی 1 و 2 در گذشته برای جدا کردن سطوح مختلف دسترسی در سیستمعاملها استفاده میشد، اما امروزه بسیاری از سیستمعاملها از این حلقهها استفاده نمیکنند. حذف این حلقهها باعث کاهش پیچیدگی و بهبود کارایی پردازنده میشود.
➖ حذف حالتهای 32 بیتی و vm86 در Ring 0: حالت vm86 برای پشتیبانی از برنامههای قدیمی DOS و 16 بیتی طراحی شده بود. با حذف این حالتها، پردازنده از پشتیبانی مستقیم برنامههای قدیمی بینیاز میشود و اجرای برنامههای مدرن بهینهتر خواهد شد.
➖ حذف MTRRهای ثابت: این حذف باعث میشود که پردازنده به مدیریت پویا و کارآمدتری از حافظه دسترسی پیدا کند و پردازنده تنها به ساختارهای مدیریت حافظه پویا متکی باشد.
➖ حذف I/O سطح کاربر و رشتههای I/O: با حذف این موارد، پردازنده نیازمند پشتیبانی از دستورات سطح پایین ورودی و خروجی که در برنامههای قدیمی استفاده میشدند، نیست. این کار باعث بهبود کارایی و امنیت پردازنده میشود.
➖ حذف و بهینهسازی کنترلها و بیتهای اضافی در CR0: برخی از کنترلهای اضافی در CR0، مانند Write-Through و بیتهای کنترل قدیمی FPU که برای پردازندههای اولیه طراحی شده بودند، حذف میشوند و این باعث کاهش سربار پردازنده و بهینهسازی کنترلها میشود.
➖ حذف و بهینهسازی مکانیزم وقفهها و کنترلها: معماری x86S تنها از x2APIC برای کنترلکننده وقفه استفاده میکند و از XAPIC و کنترلرهای وقفه قدیمی پشتیبانی نمیکند. این تغییرات باعث کاهش مصرف انرژی و بهبود کارایی پردازنده در سیستمهای چندپردازشی میشود.
➖ پشتیبانی محدود از معماری Segmentation: با وجود محدود شدن دسترسی به سگمنتهای تقسیمبندی در حالت 64 بیتی، همچنان دسترسی محدود به FS و GS برای کاربردهای خاص پشتیبانی میشود. همچنین، برخی از ویژگیهای تقسیمبندی مانند تغییر حلقهها در دستورهای فراخوانی دوربرد (far call) حذف شده است.
➖ دستورات محدود برای کنترل حالتهای اجرایی: در معماری x86S، پردازنده نمیتواند حالتهای NX یا SYSCALL یا حالت 64 بیتی را در MSR EFER غیرفعال کند که باعث افزایش امنیت پردازنده میشود.
@aioooir | #isa #intel #x86s