ایامدی بنا به دلایل مختلف در صنعت پردازنده دچار مشکلاتی است و به راهکارها و بازارهای جدید فکر میکند. در بخش اول به این مهم پرداختیم که تراشههای ترکیبی میتوانند ایامدی را به درآمد بیشتر و کسب سهم بیشتر از بازارهای رو به رشد، خصوصاً وسایل همراه برسانند. در این بخش به تلاشهای قبلی که در عرصهی ترکیب معماریهای مختلف صورت گرفته میپردازیم تا با دلایل شکست و پیروزی که ممکن است در مورد ایامدی هم صدق کنند، آشنا شویم.
تاریخچهی مختصر محصولاتی که از چند ISA پشتیبانی میکنند
اینکه چرا ایامدی به فکر ترکیب دو ISAدر یک تراشه افتاده و میخواهد تراشهی هیبریدی ARM-x86 تولید کند دلایل زیادی ممکن است داشته باشد. قطعاً ایامدی قبل از تصمیم جدید خود، تاریخ را مرور کرده و میداند که قبلاً هم در این جهت تلاش شده و تاکنون موفقیت چندانی حاصل نشده است.
در ادامه دو مورد از تلاشهای جدی در این زمینه را بررسی میکنیم. اولین مورد IBM است که در مورد PowerPC 615 کار مشابهی انجام داد. دومین مورد هم پردازندهی Crusoe محصول Transmeta است. البته اینتل و VIA هم تجاربی، هر چند کوچک، در این زمینه داشتهاند.
تجارب اینتل و VIA
Itanium اینتل به خاطر استفاده از دیکودر سختافزاری x86 تلاشی دیگر در جهت پشتیبانی از معماری مجموعه دستورات x86 است، حال آنکه معماری اصلی ایتانیوم IA-64 نام دارد.
شبیهسازی برای اجرای دستورات x86 توسط ایتانیوم، مشکلی بود که به عملکرد ضعیف و موفقیت کم Itanium انجامید
توضیح بیشتر اینکه اینتل اولین نسل تراشههای Itanium (تلفظ صحیح آیتِینییِم که به غلط ایتانیوم رایج شده است) را با معماری جدید خود در سال 2001 معرفی نمود و تا به امروز هم در بخش سرورهای بزرگ و تجاری به کار گرفته میشود. معماری ایتانیوم یک معماری جدید 64 بیتی بود که توسط HP استارت خورد و بعدها با همکاری اینتل تکمیل شد. موفقیت ایتانیوم به علت فقدان بستر لازم نرمافزاری ضعیف بود، چرا که برای اجرای نرمافزارهای موجود که برای x86 ساخته شده بودند، از شبیهسازی یا Emulation استفاده میکرد. در یکی از بنچمارکهای منتشر شده در سال 2001، عملکرد ایتانیوم در حد یک پردازندهی پنتیوم اینتل با فرکانس کاری 100 مگاهرتز به دست آمد، در حالی که در بازار آن روزها، پنتیومهای 1.1 گیگاهرتزی به فروش میرسیدند.
VIA هم در هستههای موسوم به Nehemiah خود از معماری مجموعه دستوراتی استفاده کرده که اجازهی دسترسی به هستههای RISC تراشه را میدادند. البته در محصول نهایی تغییراتی در این قابلیت لحاظ شد.
IBM و تراشهی ترکیبی PowerPC 615
پردازندهی PowerPC 615 حاصل تلاش آیبیام برای اجرای هر دو نوع کد x86 و PowerPC توسط یک تراشه است. برای سوییچ کردن بین این دو حالت، 5 سیکل کلاک زمان لازم است. بلوک دیکدر در این تراشه به حدی بزرگ و پرمصرف بوده که هنگام پردازش، داغ میشد و در نهایت آیبیام آن را جدا نمود و نام کمک-پردازنده را برای آن انتخاب کرد.
این پروژه تا جایی پیش رفت که برخی نسخههای سیستم عامل Minix و OS/2 را بوت میکرد، البته در شروع بوت، پردازندهی مطلوب سیستم عامل انتخاب میشد که یک ضعف مهم محسوب میگردید.
زمانی که مایکروسافت از انتشار نسخهی مخصوص PowerPC ویندوز NT سرباز زد، کار توسعهی چنین تراشههایی متوقف شد.
آیبیام ادعا میکند که تراشهی ساخته شده در اجرای هر دو نوع کد x86 و PowerPC در حد سریعترین تراشههای دو شاخهی مورد بحث بوده است. اما اگر بستر نرمافزاری برای استفاده از چنین تراشهای فراهم نشود، نمیتوان انتظار کاربرد گستردهی آن را داشت. باید توسعهدهندگان نرمافزار از قابلیتهای چنین تراشهای بهترین استفاده را میکردند ولیکن در عمل چنین اتفاقی نیافتاد.
کاربرد و موارد مفید واقع شدن PowerPC 615 کم بود و علیرغم اجرای هر دو نوع کدهای x86 و PowePC در نهایت متوقف شدند
Transmita و تراشههای Crusoe و Efficeon
کمپانی ترنسمیتا هم در تراشههای کروزو و افیشن سعی در اجرای دستورات x86 توسط معماری VLIW داشته است.
باز روش کار استفاده از شبیهسازی است اما این بار به صورت نرمافزاری؛ لایهی نرمافزاری سطح پایین چیزی است که در طرح ترنسمیتا از آن استفاده میشود. نرمافزار تبدیل کد یا CMS طی پروسهای طولانی به تبدیل کدهای x86 میپردازد.
در کروزو 4 دستور 32 بیتی در هر سیکل کلاک اجرا میشد و در افیشن که نسل بعدی کروزو به شمار میرود، 8 دستور 32 بیتی. بنابراین طول VLIW در افیشین 256 بیت است.
تفاوتی که با PowerPC 615 میبینیم، شبیهسازی نرمافزاری برای اجرای x86 است که در مورد PowerPC به صورت سختافزاری انجام میشد. لذا باز هم مشکل بازدهی وجود دارد. البته برای تبدیل کد از نرمافزاری در سطح بسیار پایین و همچنین پیادهسازی خاصی از VLIW یا همان سیستم اجرای دستورات بسیار طولانی است، استفاده شده ولیکن بازدهی همچنان مشکل جدی است.
ترنسمیتا در مورد تراشههای خود ادعا کرده بود که با توان مصرفی 1 وات، سرعتی معادل 700 مگاهرتز دارند در حالیکه در آن زمان AMD K7 با مصرف 34 وات به این سرعت میرسید.
نمودار زیر سرعت تراشههای آن زمان در انجام اموری مثل فشردهسازی فایل (سبزآبی)، فشردهسازی ویدیو با کدک ویدیویی ویندوز یا WMV (بنفش کمرنگ) و رندر کردن صفحات وب (یاسیرنگ) را نشان میدهد.
نمودار فوق نشان میدهد که تلاش ترنسمیتا بیهوده نبود و بازدهی در سطح بالایی قرار داشت. اما مشکل این بود که تراشههای افیشن تا سال 2004 روانهی بازار نشدند در حالیکه پنتیوم M اینتل به خوبی فراگیر شد. از طرفی پردازندهی C3 کمپانی VIA بود که با مصرف انرژی کم، عملکرد خوبی داشت.
آیا دلایل شکست IBM و Transmita در مورد AMD هم صدق میکند؟
روش آیبیام و ترنسمیتا به کلی متفاوت است. آیبیام سختافزار را مهیای اجرای هر دو نوع کد کرده بود و ترنسمیتا این کار را با تبدیل کد در سطح پایین که بازدهی بالاتری دارد انجام داد. اما هیچ کدام موفق نبودند.
مشکل آیبیامدر توسعهی اکوسیستم نرمافزاری برای استفادهی بهینه از تراشهها بود و از طرفی ترنسمیتا به خاطر ضعف در فروش محصولات خود و تأخیر زیادی که موجب فراگیر شدن رقبا شد، شکست خورد.
آیبیام تراشههای پیچیدهتری تولید کرده بود و استفاده از سطح تراشه برای حفظ بهترین کارایی، مشکل بود.
ایامدی متوجه شده که استفاده از دو روش مورد بحث مفید نیست. شاید پیادهسازی دو گروه هستههای x86 و ARM روی یک تراشه و در کنار هم ساده باشد، اما بهینه نیست.
اینکه در شروع بوت سیستم عامل، یکی از گروهها برای پردازش انتخاب شود، انتخاب درستی نیست.
شاید با لپتاپها یا به عبارت دیگر تبلتهای تبدیلشدنی که دو سیستم عامل ویندوز و اندروید را اجرا میکنند آشنایی داشته باشید. هنگام اجرای اندروید، پردازندهی قدرتمندی مثلز Core اینتل بیکار است و هنگام اجرای ویندوز قضیه برعکس میشود.
این شیوهی ترکیب بهینه نیست. ایامدی به راهکاری بینابین فکر میکند. راهکاری که استراتژی خاص و برتر ایامدی را به عموم کاربران و البته رقبای بزرگی مثل اینتل و شرکای آرم اثبات کند.
در بخش بعدی این مقاله به راهکار ایامدی میپردازیم. منتظر باشید تا ببینیم ایامدی چه فکری برای ترکیب آرم و x86 در یک تراشه و در عین حال استفادهی بهینه از هر دو کرده است.
ادامه مطلب http://www.zoomit.ir/articles/hardware/cpu/11527-amds-arm-x86-cores-working-side-same-chip