پاسخ به اشتباه برخی کاربران در زمینه معماری ARM و x86
1 min read

پاسخ به اشتباه برخی کاربران در زمینه معماری ARM و x86

دوستان و همراهان گرامی، پس از انتشار خبر ((استفاده از پردازنده Apple A12X در مک بوک ها))، متوجه شدیم که برخی از دوستان و خوانندگان، با قابلیت 64 بیتی (x86) در این پردازنده ها بیگانه بوده و اطلاعات محدود آنها در این زمینه موجب گمراهی و برداشت اشتباه این عزیزان شده است. در نتیجه تصمیم گرفتیم تا در یک مطلب کوتاه و ساده، این بخش را برای این عزیزان باز نمائیم.

معماری x86 که امروزه توسط 2 کمپانی Intel و AMD مورد استفاده قرار می گیرند، دارای ریشه بسیار قدیمی هستند که عمر آن به دهه 70 میلادی باز می گردد. RISC که مخفف Reduced instruction Set Computing به واقع معماری ساختاری پردازنده های شرکت آرم هولدینگ (ARM) است. شرکت ARM از سال 1980 میلادی در حال توسعه است و بر خلاف تصور بسیاری، این شرکت فاقد خطوط ریخته گری است و معماری های خود را به شرکت های بسیاری فروخته و کمپانی ها با استفاده از معماری های ARM به تولید تراشه های SOC می پردازند.

همانطور که گفته شد، معماری پردازنده های ARM بر اساس RISC بوده و از این رو با معماری x86 که بر پایه Complex Instruction Set Computing یا CISC هستند، متفاوت است. شیوه ورودی اطلاعات به منظور پردازش، بزرگترین تفاوت این دو معماری است. گذرگاه های 32 و 64 بیتی، نخستین بخش هایی هستند که در دروس دانشگاه های مرتبط با رشته های کامپیوتر تدریس می شود. پس از طراحی این 2 معماری، تولید برنامه های نرم افزاری نیز بر اساس آنها توسعه یافته و تا به امروز نیز ادامه دارد. اما با گذشت زمان و پیشرفت تکنولوژی، شرکت ARM و شرکای تجاری آن تصمیم به توسعه پردازنده های مجتمع نوع SOC گرفتند.

علت این تغییر چه بود عزیزان؟ برنامه های 64 بیتی به طور فزاینده ای در حال توسعه بوده و CPUهای ARM شاید از پس برنامه هایی نظیر گوشی های هوشمند، اندروید، اینترنت اشیاء و… به خوبی بر می آمدند، اما برای کاربردهای دیگر دچار مشکل بودند. البته این مسئله را یادآور می شویم که معماری 32 بیتی ARM هم دارای مزایایی مانند توان حرارتی (TDP) پایین و رندر بسیار مناسب بود. عدم پیچیدگی در فرآیند پردازش به دلیل دسته بندی اعداد صحیح و اعشاری، از جمله مواردی است که معماری ARM را قدرتمند جلوه می داد. اما آرم هولدینگ با معرفی پردازنده ARMv8، قابلیت های 64 بیتی را به درون قلب پردازنده های خود آورده و رویه سنتی 32 بیتی را پایان داد.

پس تا به اینجای کار، متوجه شدیم که ARM پشتیبانی از برنامه های 64 بیتی را به درون پردازنده و معماری های خود آورد. همانطور که می دانید، چند سالی است که Microsoft تصمیم گرفته است تا با همکاری "کوالکام" و استفاده از معماری ARM، ویندوز 10 را بر روی لپ تاپ ها پیاده سازی نماید. برای این کار مایکروسافت راه نسبتا دشواری را پیش رو داشت چرا که برنامه های ویندوز بر اساس معماری CISC و معماری x86 نوشته و توسعه داده می شوند و این در حالی بود که پردازنده های ARM با وجود پشتیبانی از گیت های 64 بیتی، نیازمند استفاده از تکنیک های CISC و x86 بودند که عملا کار را دچار مشکل می کرد.

از این رو ARM که متوجه این مسئله شده بود، از سال 2012 کار بر روی این ویژگی را آغاز کرده و در نهایت موفق به تزریق قابلیت های x86 به معماری خود شد. برای این منظور یک کامپایلر سخت افزاری برای پردازشگرهای ARM طراحی شد که می توانست دستورات x86 را برای پردازش در معماری ARM آماده سازد. این کامپایلر با نام Compiled Hybrid Portable Execution DLL یا به اختصار CHPE، امکان پشتیبانی از دستورات x86 را به صورت کاملا بومی برای پردازنده های ARM فراهم می کند. شاید در برخی از بنچمارکها دیده باشید که در جلوی CPUهای ARM واژه x86 درج شده است که این مسئله به دلیل پشتیبانی بنچمارک از صرفا معماری x86 است. پردازنده های معماری ARM با توجه به این 2 قابلیت امروزه از پلتفرم های مکینتاش و ویندوز پشتیبانی می کنند.

پس معماری های ARM امروزه نه تنها 64 بیتی هستند، بلکه از ورودی های x86 نیز پشتیبانی می کنند. امیدواریم این مطلب که به صورت ساده و شفاف نوشته شده است، پاسخ اشتباه این دسته از عزیزان را داده باشد.