فروشگاه دی نت
0 محصولات نمایش سبد خرید

هیچ محصولی در سبد خرید نیست.

راز سرعت بالای اپل سیلیکون در اجرای برنامه های x64 فاش شد

پردازنده 8080


سال 2020 میلادی اپل پردازنده‌های x86 اینتل را کنار گذاشت و در مک های جدید خود از تراشه اختصاصی استفاده کرد. با این حال هنوز اپل به روشی برای شبیه سازی برنامه‌های x64 بر روی تراشه اختصاصی خود نیاز شد. عجیب اینکه اپل از یک روش بسیار قدیمی استفاده کرده است.

Apple M1 اولین پردازنده اختصاصی اپل برای کامپیوترهای مک بود که توانست نشان دهد با یک تراشه کوچک هم می‌توان به قدرت زیادی دست پیدا کرد. از آنجایی که M1 از معماری ARM استفاده می‌کند، اپل باید راهی پیدا می‌کرد تا بتوان برنامه‌های طراحی شده برای پردازنده‌های اینتل را هم اجرا کرد.

برای این کار اپل یک راه ساده اما به شدت کارآمد را انتخاب کرد و آن شبیه سازی معماری x64 داخل پردازنده Apple M1 بود. این روش شبیه سازی Rosetta 2 نام گرفته است.

پردازنده 8080

جالب اینکه عملکرد بسیار کارآمد برنامه Rosetta 2 در شبیه سازی معماری x64 موجب حیرت محققان شده بود که حالا به نظر می‌رسد دلیل آن را می دانیم.

ظاهراً یک اکستنشن یا افزونه برای Rosetta 2 داخل پردازنده طراحی شده دارد که کار نگه داری ثبات پرچم‌ها برای هر برنامه را بسیار آسان می‌کند. این پرچم یا Flag ها مربوط به سال 1974 میلادی و پردازنده Intel 8080 است. 8080 دومین پردازنده تاریخ کمپانی اینتل است.

پردازنده قدیمی 8 بیتی 8080 اینتل این ثبات‌ها را به روش بسیار کارآمدی مدیریت می‌کرد که حالا همان روش در پردازنده‌های روز اینتل یافت می‌شود.

هنگامی که در ARM بخواهیم x86 را شبیه سازی کنیم، می‌توانیم برای نگه داری ثبات پرچم‌ها از ثبات چهار بیتی NZVC استفاده کنیم. مشکل اینجاست که دو بیت برای نگه داری فلگ های PF (parity flag) و AF (adjust flag) کم می‌آوریم.

ARM

حالا مشخص شده اپل سیلیکون یک افزونه اعلام نشده دارد که با فعال شدن آن، فلگ های PF و AF را داخل بیت‌های 26 و 27 ثبات ARM NZCV نگه داری می‌کند تا به این ترتیب شبیه سازی کامل و دقیق و بدون محدودیت صورت بگیرد.

اپل بیت‌های 26 و 27 ثبات پرچم‌ها در ARM را به همین کار اختصاص داده است و این بیت‌ها در زمان فعال بودن شبیه ساز به Rosetta 2 اختصاص می‌یابد. هنگامی که یک برنامه طراحی شده برای مک های مبتنی بر پردازنده‌های اینتل شناسایی شود، Rosetta 2 وارد عمل می‌شود و شبیه سازی x64 آغاز می‌شود. به بیانی ساده‌تر، مقدار دهی دو بیت یاد شده باعث می‌شود اپل سیلیکون همانند یک پردازنده x64 ظاهر شود.



Source link

0