داستان طراحی اولین پردازنده‌ی اختصاصی AMD

amd k5 story cover image

در سال۱۹۹۶ (۱۳۷۵ شمسی)، شرکت AMD نسل پنجم پردازنده‌های خود به‌نام K5 را معرفی کرد. با وجود برخی نقص‌ها، این پردازنده در مقایسه با پردازنده‌ی پنتیوم شرکت اینتل، از نظر فنی پیشرفته‌تر بود. یکی از ویژگی‌های جالب K5، رفتار دوگانه‌ی این پردازنده بود که از درون مبتنی بر اساس منطق RISC (مجموعه دستورالعمل‌های کاهش‌یافته) طراحی شده و در عین حال از بیرون با مجموعه دستورالعمل‌های x86 کاملا منطبق بود که به صورت CISC (مجموعه دستورالعمل‌های پیچیده) شناخته می‌شود.

کلید این رفتار دوگانه، وجود لایه‌ی مترجم پنهانی بود که ابتدا دستورالعمل‌های x86 را به دستورالعمل‌های ریز تبدیل و سپس آن‌ها را اجرا می‌کرد. این پردازنده در رسیدن به سرعت‌های کلاک بالا دچار مشکل بود و واحد پردازش شناور (FPU) آن کمی ضعیف‌تر از انتظارات ظاهر شد. بااین‌حال، در استفاده‌های معمولی، K5 عملکرد بهتری نسبت به پنتیوم داشت و ادعای AMD درباره‌ی قدرت پردازشی آن تنها یک شعار تبلیغاتی نبود.

آگهی‌های تبلیغاتی AMD ادعا داشتند که یک پردازنده‌ی K5 با سرعت کلاک ۱۰۰ مگاهرتز به‌عنوان یک تراشه‌ی PR133 به فروش می‌رسید، عملکردی معادل یک پنتیوم ۱۳۳ مگاهرتزی ارائه می‌دهد. ویژگی‌های خاص معماری این پردازنده، داستان آن را از سایر محصولات همرده‌ی خود جدا کرد؛ ویژگی‌هایی که به نوعی، اعلامیه استقلال AMD به‌شمار می‌رفت.

پردازنده‌ای با اسم رمزی K5؛ دشمن سوپرمن

در ابتدا نام این پروژه‌ی «کریپتونایت» بود، ماده‌ای افسانه‌ای که می‌تواند سوپرمن را نابود کند. اما برای جلوگیری از مشکلات حقوقی با شرکت D.C. Comics، شرکت AMD نام پردازنده‌ی نسل پنجمی خود را به «کریپتون-5» یا «K5» تغییر داد. این نام نمادین، تلاش‌های طولانی مدت AMD برای به چالش کشیدن برتری اینتل در زمینه‌ی ریزپردازنده‌ها را برجسته می‌کرد؛ تلاشی که در هر مرحله با موانع قانونی و مشکلات فنی مواجه شد.

از سال ۱۹۹۰ (۱۳۶۹ شمسی)، وکلای AMD و اینتل در دادگاه‌های فدرال بر سر قراردادها و میکروکدها (کدهایی که عملکرد پردازنده را از درون کنترل می‌کنند)، نبردهای خسته‌کننده‌ای را دنبال کرده‌ بودند. تا سال ۱۹۹۴، به نظر می‌رسید که AMD درحال به دست آوردن برتری بود. اما شکایات قانونی، تنها بخشی از مشکلات AMD بودند. برای سال‌ها، AMD حداقل به‌اندازه‌ی یک نسل کامل از اینتل در توسعه‌ی پردازنده‌های x86 عقب مانده بود و به‌شدت به تکنولوژی‌های دارای مجوز در تراشه‌های اینتل متکی بود تا سهم کوچکی از بازار را به دست آورد. معرفی پردازنده‌ی پنتیوم توسط اینتل در سال ۱۹۹۳ که اولین پردازنده‌ی Superscalar x86 بود، تهدیدی برای افزایش فاصله و حذف کامل AMD از این رقابت به شمار می‌رفت.

amd vs intel courts 1990s
تصویری ساختگی از رقابت اینتل و AMD در دادگاه؛ ساخته شده با GPT 5.4

در بحبوحه‌ی رقابت، آزمایشگاه‌های AMD در آستین تگزاس، صحنه‌ی فعالیت مهندسان بر روی خانواده‌ای جدید از ریزپردازنده‌های سازگار با x86 بودند. هدف مهندسان این بود که سری جدیدی از تراشه‌ها را ابداع کنند که از پردازنده‌های پنتیوم اینتل پیشی بگیرد و به وضعیت دنباله‌روی از اینتل پایان دهد.

پردازنده K5 اولین خانواده از پردازنده‌های سازگار با x86 شرکت AMD است که تمام بقایای مالکیت معنوی اینتل را کنار می‌گذارد… مانند اکثر جنگ‌های استقلال، مبارزه AMD با اینتل به راحتی و با هزینه کم پیروز نخواهد شد.
تام آر. هاف‌هیل (Tom R. Halfhill)، نویسنده و سردبیر ارشد تکنولوژی

برای رسیدن به هدف استقلال از اینتل، مهندسان مجبور بودند حتی قبل از این‌که جزئیات مهمی درباره‌ی پنتیوم بدانند، طراحی K5 را آغاز کنند. این اقدام سبب شد که طراحی K5 وابسته به دیدگاه پردازشی اینتل نباشد، اما در عین‌ حال فشار زیادی بر آنها وارد کرد تا ریزمعماری برتری را طراحی کنند که با نرم‌افزارهای موجود سازگار باشد.

همچنین، موضوع حیثیت نیز در میان بود، زیرا مدیر عامل اینتل، اندی گروو، شرکت AMD را به‌عنوان «مینی وانیلی صنعت نیمه‌رساناها» تقبیح کرده بود، اشاره‌ای به گروه موسیقی پاپی که به دلیل لب‌خوانی در اجرای آهنگ‌هایشان، جایزه‌ی گرمی از آن‌ها پس گرفته شد.

گروو، AMD را در حد یک شرکت کپی‌کننده تحقیر کرد و به وضوح گفت که آخرین ایده‌ی اصلی آن‌ها کپی کردن از اینتل بود.

مدیر عامل AMD، جری سندرز، در سفری که در اواخر سال ۱۹۹۳ به آستین برای یک جلسه‌ی استراتژی فصلی داشت، اعلام کرد که طراحی مستقل نسل پنجم تراشه‌های x86، اولویت اصلی AMD است. کار روی این پروژه در ژوئیه‌ی ۱۹۹۲ آغاز شد، اما تیم اولیه به طرز شگفت‌انگیزی، تنها از دو مهندس تشکیل شده بود: مایک جانسون، مدیر مهندسی پردازنده‌های پیشرفته که همچنین پدر تراشه‌ی RISC 29000 از AMD بود، و دِیو کریستی.

در نخستین گام، دِیو با استفاده از یک شبیه‌ساز نرم‌افزاری که جانسون نوشته بود، طراحی بخش‌های مختلف پردازنده را آغاز کرد. چندی بعد، دِیو ویت به عنوان مدیر طراحی به تیم دو نفره پیوست. چندین ماه زمان نیاز بود تا تعداد مهندسان پروژه‌ی K5 در آزمایشگاه، بیشتر از تعداد وکلا در دادگاه‌ها علیه اینتل شود.

پس از دو سال تلاش، نتیجه‌ی کار یک طراحی واقعاً خلاقانه بود که وعده‌ی AMD را برای رقابت با اینتل، حداقل باورپذیر کرد؛ هرچند برتری آن هنوز قطعی نبود. AMD ادعا می‌کرد که K5 اولین خانواده‌ی پردازنده‌های سازگار با x86 است که تمامی عناصر مالکیت فکری اینتل (از جمله میکروکد) را کنار گذاشته بود و در عین حال عملکرد بهتری نسبت به اینتل ارائه می‌داد.

amd k5 logic diagram
معماری منطقی پردازنده‌ی K5

بر اساس شبیه‌سازی‌های AMD، اولین تراشه‌ی سری K5 در اجرای نرم‌افزارهای واقعی (مثل Microsoft Word، Excel و CorelDraw) حدود ۳۰ درصد سریع‌تر از یک پردازنده‌ی پنتیوم با همان سرعت ساعت بود. AMD به این مورد نیز افتخار می‌کرد که حتی بدون نیاز به بهینه‌سازی‌های مخصوص کامپایلر، این پروازنده می‌توانست در آزمون‌های معیارسنجی مانند SPEC و Dhrystone نیز عملکرد بهتری داشته باشد.

پردازنده‌ی K5 از فناوری ترکیبی CISC/RISC بهره می‌برد که مشابه آن در تراشه‌ی Nx586 از شرکت NexGen نیز دیده می‌شد

جانسون، طراح اصلی این پردازنده، عملکرد خیره‌کننده‌ی K5 را به حافظه‌ی کش بزرگ‌تر و طراحی سوپراسکالر پیشرفته‌تر آن نسبت می‌داد. برخلاف پردازنده‌ی پنتیوم که دو مسیر پردازش اعداد صحیح و محدودیت‌های زیادی برای اجرای موازی داشت، K5 از معماری سوپراسکالر با پنج واحد و چهار مسیر استفاده می‌کرد که هسته‌ای بر پایه‌ی RISC را با یک رمزگشای دستورالعمل (Instruction Decoder) x86 منحصربه‌فرد ترکیب می‌کرد.

رمزگشای دستورالعمل که به مراتب پیچیده‌ترین و جذاب‌ترین بخش این تراشه بود، طوری طراحی شده بود تا محدودیت‌های مجموعه دستورالعمل‌های x86 را به حداقل برساند؛ آن‌هم با استفاده از تکنیکی که دستورالعمل‌های پیچیده‌ی CISC را به دستورالعمل‌های کوچکتر شبیه به RISC (که به آن‌ها R- ops  گفته می‌شود)، تقسیم کند. این R-ops‌ها سپس چهار به چهار به هسته‌ای ارسال می‌شدند که بر پایه‌ی RISC طراحی شده بود.

در این پردازنده، تکنیک‌های پیشرفته‌ای مانند تغییر پویای نام ثبات‌ها (Dynamic Register Renaming)، پیش‌بینی شاخه‌ها (Branch Prediction)، اجرای پیش‌بینی‌کننده (Speculative Execution) و اجرای خارج از ترتیب (Out-of-order Execution) نیز قرار داده شده بود. AMD ادعا می‌کرد که ریزمعماری K5 از نظر عملکرد به اندازه‌ی کافی قوی بود که با تمامی ریزپردازنده‌های آن روزها رقابت کند. البته روی این ادعا پافشاری می‌کرد که هر سال نسخه‌های سریع‌تری از آن را عرضه خواهد کرد.

طراحی K5 بسیار آینده‌نگرانه بود، زیرا AMD معتقد بود که رقبا برای به زمین زدن این محصول، بیکار نمی‌نشستند. مهندسان می‌دانستند که تیم حقوقی اینتل تمام تلاش خود را به کار می‌بندد تا دلیلی پیدا کند تا AMD را به دلیل نقض حق مالکیت به دادگاه بکشاند. AMD خوب می‌دانست که مانند اکثر جنگ‌های استقلال، مبارزه‌اش با اینتل به راحتی و ارزانی به پیروزی نمی‌رسید.

ادغام CISC/RISC

در اوایل دهه‌ی ۹۰ میلادی، به‌رغم تعهد اینتل به معماری CISC، به طور کلی این اصل پذیرفته شده بود که بهبود در عملکرد x86، فقط از راه بهینه‌سازی و کاهش محدودیت‌های مجموعه دستورالعمل‌های x86 به‌دست خواهد آمد. زمانی‌که اینتل در دهه‌ی ۱۹۷۰، 8086 را به عنوان جد بزرگ این خانواده با ۲۹,۰۰۰ ترانزیستور طراحی کرد، CISC یک ایده‌ی خوب به‌نظر می‌آمد. اما پردازنده‌ای مانند K5 که ۴/۱ میلیون ترانزیستور را در خود جای می‌داد، اولویت‌های متفاوتی را مطرح کرد. عملکرد آن به سرعت بازیابی، رمزگشایی و اجرای دستورالعمل‌ها بستگی داشت؛ نه به غنای محاسباتی مجموعه دستورالعمل‌های آن.

amd k5 chip die
نمای بیرون و تراشه درونی (Die) پردازنده‌ی K5

دیدگاه معماری RISC این بود که دستورالعمل‌های x86 را به کلی کنار بگذارد و آن‌ها را با دستورالعمل‌های مختصر ولی بهینه‌تر جایگزین کند. اما بزرگترین نقطه‌ی ضعف x86 درعین‌حال بزرگترین نقطه‌ی قوت آن نیز بود: مجموعه دستورالعملی که بیشترین نرم‌افزارها را در دنیا پشتیبانی می‌کند. تا آن زمان کامپایلرهای زیادی روی این مجموعه دستورالعمل توسعه پیدا کرده بود. می‌توان گفت برای تغییر الفبای زبان ماشین، دیگر دیر شده بود.

بزرگترین نقطه‌ی ضعف خانواده‌ی x86، به نوعی بزرگترین نقطه‌ی قوت آن نیز است: مجموعه دستورالعملی با بیشترین پشتیبانی نرم‌افزاری

در مقابل، درویکردی که تمامی مهندسان x86 آن را در ذهن داشتند، ادغام فناوری‌های CISC و RISC بدون از دست دادن سازگاری با نرم‌افزارها بود. بنابراین، توجه طراحان AMD به دستورالعمل‌های x86 معطوف شد که به دلیل پیچیدگی و طول متغیر، اغلب مشکل‌ساز می‌شدند. پس از ارزیابی چندین راه‌حل مختلف، مهندسان AMD سرانجام به یک رمزگشای پیچیده روی آوردند که دستورالعمل‌های پیچیده‌ی x86 را به R-opsهای نسبتاً ساده و سریع‌الاجرا تبدیل کند.

R-ops شباهت زیادی به دستورالعمل‌های میکروکد دارند که به طور ذاتی در تمامی پردازنده‌های x86 وجود دارند. هر تراشه‌ی x86 دستورالعمل‌های پیچیده‌تر خود را به صورت یک توالی از ریزدستورات از یک حافظه‌ی رام داخلی میکروکد اجرا می‌کند؛ هرچند که تراشه‌های اخیر x86، استفاده از میکروکد را با سیم‌کشی (hard-wiring) دستورالعمل‌های ساده‌تر به حداقل رسانده‌اند. اما R-ops در K5 تفاوت‌های ظریفی با معماری امروزی دارد: بیشتر R-opsها نه از طریق میکروکد، بلکه به صورت بلادرنگ توسط رمزگشا تولید می‌شدند.

ویژگیAMD K5Intel Pentium
معماری ریزپردازندهترکیبی CISC/RISC (تکنولوژی R-ops)CISC خالص (معماری P5)
تکنولوژی ساخت۰/۳۵ میکرون۰/۶ میکرون
حافظه کش سطح ۱ (L1)۲۴ کیلوبایت (۱۶ دستور + ۸ داده)۱۶ کیلوبایت (۸ دستور + ۸ داده)
واحدهای پردازشی موازی۵ واحد عملکردی (۴ مسیر)۲ خط لوله
نحوه اجرای دستوراتغیرترتیبی (Out-of-order)ترتیبی (In-order)
فرکانس مگاهرتز۱۰۰ مگاهرتز (معادل عملکرد PR133)۱۰۰ مگاهرتز
واحد ممیز شناور (FPU)ضعیف‌تر (بهینه شده برای کاربرد معمولی)قوی‌تر (دارای دستورات اختصاصی)

یکی از معایب رمزگشای جدید این بود که دستورالعمل‌های بلند x86 را حتی طولانی‌تر می‌کرد. برای جبران این مشکل، حافظه‌ی نهان اولیه در K5، دو برابر بزرگ‌تر از حافظه‌ی نهان پنتیوم در نظر گرفته شد: ۱۶ کیلوبایت در مقابل ۸ کیلوبایت. حافظه‌ی نهان دستورات (I-cache) و حافظه‌ی نهان ۸ کیلوبایتی داده‌ها، هر دو به‌صورت خطی آدرس‌دهی و چهار‌مسیره تنظیم‌ شدند. در مقابل، پروازنده پنتیوم از آدرس‌دهی دومسیره برای حافظه‌ی نهان استفاده می‌کرد. در جدول فوق، مقایسه‌ای کوتاه بین ویژگی‌های این دو پردازنده انجام شده است.

دردسرهای جدایی AMD از طراحی‌های اینتل

سرنوشت استقلال AMD به‌شدت به پردازنده‌ی K5 وابسته بود، زیرا اولین محصول x86 این شرکت بود که از طراحی‌های اینتل جدا شد. این جدایی اما بدون مشکلات نبود. در ابتدا، AMD برنامه‌ریزی کرده بود تا در اولین سال بعد از رونمایی، K5 را در حجم بالا و با سرعت کلاک بین ۱۰۰ تا ۱۲۰ مگاهرتز عرضه کند. اما تنها چند هزار تراشه در سال اول در کارخانه‌های AMD تولید شده بود و همه آنها با سرعت کلاک محافظه‌کارانه ۷۵ مگاهرتز کار می‌کردند.

پردازنده‌ی K5 به نوعی، نسل سوخته بود؛ رونمایی در دوران ظهور پنتیوم و تاخیرهای پیاپی در عرضه، سبب شد به فروش مورد انتظار نرسد

به نظر می‌رسد که AMD نسبت به کیفیت اولیه سیلیکون K5 بسیار خوش‌بینانه فکر می‌کرد و مدت زمان لازم را برای تایید سالم بودن تراشه‌های K5 به‌درستی پیش‌بینی نکرده بود. حتی بعد از جنجال عمومی در مورد اشکال پنتیوم، AMD نتوانست از این فرصت بادآورده، بهره‌ی لازم را ببرد. نتیجه این شد که مهلت‌ها از دست رفت و سرعت‌های کلاک نیز کندتر شد.

با اینکه AMD تلاش ویژه‌ای داشت که تأخیرهای عرضه را جبران کند، اما در سال اول بعد از معرفی، هیچ یک از تراشه‌های K5 تولید شده با فرایند ۰/۵ میکرونی در سیستم‌های تجاری معرفی نشد. در سه‌ماهه اول سال ۱۹۹۶، AMD پردازنده‌ی K5 را در یک همکاری با HP به تکنولوژی جدید ۰/۳۵ میکرونی خود که در توسعه داد. این کار باعث کوچک‌تر شدن مساحت تراشه به حدود ۱۶۷ میلی‌متر مربع شده تا بازدهی بیشتری را فراهم آورد.

همچنین AMD طبق وعده‌ی قبلی، سرعت‌های کلاک را طیسه‌ماهه اول بعد از عرضه، به ۹۰ و سپس ۱۰۰ مگاهرتز ارتقا داد. با رفع مشکلات تولید، AMD توانست با تاخیری کوتاه نسبت به برنامه‌ی اولیه، بیش از ۵ میلیون تراشه‌ی K5 را تا پایان سال ارسال کند. تمام تلاش‌های اما تا حدودی بی‌فایده از آب در آمد. اینتل با پنتیوم خود، توجه همه رسانه‌ها را به خود معطوف کرده بود. تاخیرهای پشت سر هم AMD برایش گران تمام شد تا فروش مورد انتظارش را تجربه نکند.

تحلیل معماری

یکی دیگر از تفاوت‌های بزرگ پردازنده‌های K5 و پنتیوم، در تعداد واحدهای خط لوله‌ بود. پردازند‌ی K5 پنج واحد عملکردی موازی ارائه می‌داد، درحالی‌که پنتیوم، تنها دو خط لوله‌ی موازی برای عملیات‌های عددی داشت. به‌رغم تعداد خط لوله‌ی بیشتر، K5 درست مانند مانند پنتیوم فقط می‌توانست دو عملیات عددی را به طور همزمان اجرا کند؛ اما در این مورد تفاوت داشت که می‌توانست یک دستور ممیز شناور، بارگذاری/ذخیره‌سازی، یا یک انشعاب را نیز همزمان اجرا کند.

تفاوت کلیدی دیگر این بود که K5 اجازه‌ی اجرای غیرترتیبی دستورات را می‌داد، در حالی که پنتیوم این امکان را نداشت. به طور کلی، K5 رویکرد گسترده‌تری به موضوع سوپر اسکالر نسبت به تراشه‌ی نسل پنجم اینتل داشت. با در نظر گرفتن حافظه‌ی نهان بزرگ‌تر و واحد بارگذاری/ذخیره‌سازی‌ای که قادر بود دو عملیات در هر چرخه انجام دهد، این پردازنده با رجوع کمتری به حافظه، عملکردی سریع‌تری را ارائه می‌داد.

با اتکا به اینکه برنامه‌های معمول نیاز کمتری به پردازش ممیز شناور دارند، AMD بر این ادعا پافشاری می‌کرد که K5 برای ارائه‌ی ظرفیت عملکردی بیشتر از پنتیوم طراحی شده بود

یکی از نقاطی که AMD در آن عملکرد ضعیف‌تری داشت، واحد پردازش ممیز شناور بود. اگرچه روی کاغذ، واحد پردازش ممیز شناور K5 با استانداردهای x86 رقابت نزدیکی می‌کرد، در عمل از پنتیوم عقب می‌ماند. زیرا که پنتیوم دارای دستورات اختصاصی بیشتری برای رقابت با تراشه‌ی از درون RISC بود. بااین‌حال حتی اینتل نیز قبول داشت که عملیات ممیز شناور برای نرم‌افزارهای روزمره‌ی کامپیوترهای شخصی، چندان مهم نبودند.

میراث ماندگار

K5 ثابت کرد که AMD می‌تواند یک CPU سازگار با x86 طراحی کند که صرفاً کپی اینتل نباشد. از طراحی خاص R-op گرفته تا خط لوله‌ی چهارگانه، پردازنده‌ی K5 ریزمعماری منحصر به فردی ارائه داد که فقط آنچه را که برای حفظ سازگاری لازم داشت به ارث برده بود.

اما درنهایت، این پروژه به یک فرصت از دست رفته تبدیل شد. مشکلاتی در طراحی و تاخیر در تولید باعث شدند که پردازنده نتواند به‌موقع به اهداف عملکرد و فرکانس تعیین شده برسد. در نتیجه، با فروش ضعیفی همراه شد. با وجود شکست در بازار، پردازنده‌ی K5 توانست خود را به‌عنوان اعلامیه‌ی استقلال AMD در یادها ماندگار کند و به این شرکت جرئت ورود به عرصه‌ی طراحی پردازنده‌ها را بدهد.

ارسال دیدگاه

نشانی ایمیل شما منتشر نمی‌شود. بخش‌های ضروری با * مشخص شده‌اند.