ماهیت باگ و کشف آن

این عیب سخت‌افزاری مستقیماً واحد محاسبه ممیز شناور (FPU) در پردازنده‌های اولیه پنتیوم را هدف قرار می‌داد. به دلیل نقص در طراحی، پردازنده در تقسیم زوجه‌های خاصی از اعداد با دقت بالا، نتایج باینری نادرستی را تولید می‌کرد. نام این باگ از دستور FDIV در زبان برنامه‌نویسی x86 گرفته شده است که به عنوان رایج‌ترین فرمان مقسم در آن معماری عمل می‌کرد. ریشه مشکل در خالی بودن پنج سلول از یک جدول جستجوی به‌کار رفته در الگوریتم تقسیم بود. اگرچه این خلاءها باعث ایجاد انحراف‌های کوچک در محاسبات می‌شدند، اما در شرایط خاصی می‌توانستند خطاهای قابل‌توجهی را پدید آورند.

مکانیک فنی و شکست الگوریتم سرت

مهندسان اینتل برای افزایش سرعت تقسیم در پنتیوم نسبت به نسل قبل (486DX)، الگوریتم قدیمی شیفت و تفریق را با الگوریتم پیشرفته‌تر Sweeney، Robertson و Tocher (سرت) جایگزین کردند. مزیت این تغییر این بود که هر دور ساعت می‌توانست 2 بیت از نتیجه تقسیم را تولید کند در حالی که الگوریتم 486 تنها قادر به استخراج 1 بیت بود. راز سرعتی این الگوریتم، استفاده از ارقام خارج‌قسمت منفی بود که توسط یک جدول جستجو درون تراشه مدیریت می‌شد. این جدول شامل 2048 سلول بود که 1066 سلول آن باید به وسیله ترانزیستورهای فیزیکی در شبکه‌بندی 112 ردیفی فعال می‌شدند. متأسفانه در فرآیند تولید ماسک و لیتوگرافی، پنج مقدار مثبت 2 از آن جدول حذف شدند. در نتیجه، پنج سلول در تراشه‌های نهایی به جای داشتن مقادیر مورد نیاز، صفر را ثبت کردند. طبیعت بازگشتی الگوریتم سرت باعث می‌شد این خطاهای اولیه در محاسبات خاص، تجمیع شوند و به رقم 9 یا 10 دقت اثر بگذارند.

جدول جستجوی آرایه منطقی و نحوه تأثیر ترانزیستورهای گمشده بر محاسبات

واکنش جنجالی و هزینه بازخوانی

کشف این نقص به دست توماس آر. نایسلی، استاد ریاضیات کالج لینچبرگ، انجام شد. نایسلی در ژوئن 1994 به ناهمسانگی‌هایی در کدهای محاسبه‌ی اعداد اول خود پی برد. پس از ماه‌ها تحقیق، در اکتبر 1994 علت را به تراشه‌های پنتیوم گره زد و موضوع را در تالارهای گفتگوی اینترنتی آن دوران منتشر کرد. واکنش اولیه اینتل نه فقط آرام‌بخش نبود، بلکه جرقه‌ای برای فاجعه‌ی ارتباطی شد. شرکت اعلام کرد که این خطا تا حد یک در 9000000000 محاسبه تصادفی رخ می‌دهد و احتمالاً روی هیچ‌یک از سیستم‌های کاربران تأثیر نمی‌گذارد. این توجیه آماری با خشم گسترده‌ی جامعه کاربران مواجه شد و حتی بیل گیتس، بنیان‌گذار مایکروسافت، تماسی تلفنی با مدیران اینتل گرفت تا عمیقاً نگران اعتبار این شرکت شود. سرانجام، اینتل سیاست خود را به طور کامل واژگون کرد و تعهد داد به هر کاربری که درخواست تعویض پردازنده را داشته باشد، بدون محدودیت تراشه جدید بفرستد. این بازگشت کامل بیش از 1000000 تراشه، بار مالی سنگین 475 میلیون دلاری پیش از مالیات را در پی داشت و به عنوان یکی از گران‌قیمت‌ترین درس‌های مدیریت بحران در تاریخ فناوری ثبت شد.

محیط آزمایشگاهی بررسی کدهای ریاضی و پردازنده‌های نسل اول پنتیوم

توارث یک درس گران‌قیمت

کیفر باگ FDIV تنها یک آمار مالی نبود؛ مرز بین صبر کاربران و تحمل خطاهای سخت‌افزاری را برای همیشه جابجا کرد. امروزه با گذشت بیش از سه دهه، این رخداد همچنان به عنوان الگوی کلاسیک در مهندسی تراشه، تست‌های کیفی و مدیریت ارتباطات رسانه‌ای آموزش داده می‌شود. هر قطعه الکترونیکی که امروز به دست کاربران می‌رسد، لایه‌ای از اعتبار و بی‌اعتمادی‌های این دوران را در پشتوانه‌ی پروتکل‌های تست خود حفظ می‌کند.