خلل في وحدة تقسيم التردد FDIV في معالج بنتيوم

خطأ قسمة الأعداد العشرية في معالج بنتيوم هو خلل في مكونات المعالج يؤثر على وحدة معالجة الأعداد العشرية (FPU) في معالجات إنتل بنتيوم القديمة . نتيجةً لهذا الخطأ، كان المعالج يُرجع نتائج ثنائية غير صحيحة عند قسمة أزواج معينة من الأعداد عالية الدقة . اكتُشف هذا الخطأ عام ١٩٩٤ على يد توماس ر. نايسلي، أستاذ الرياضيات في كلية لينشبورغ . [ ١ ] أدى وجود قيم مفقودة في جدول البحث الذي تستخدمه خوارزمية قسمة الأعداد العشرية في وحدة معالجة الأعداد العشرية إلى حدوث أخطاء طفيفة في العمليات الحسابية. في بعض الحالات، قد تتكرر هذه الأخطاء بشكل متكرر وتؤدي إلى انحرافات كبيرة. [ ٢ ]
لا تزال خطورة خلل FDIV محل نقاش. فعلى الرغم من ندرة مواجهته من قبل معظم المستخدمين ( حيث قدرت مجلة بايت أن عملية قسمة واحدة من بين 9 مليارات عملية قسمة للأعداد العشرية ذات المعاملات العشوائية ستنتج نتائج غير دقيقة)، [ 3 ] فقد تعرض كل من الخلل وطريقة تعامل إنتل الأولية مع الأمر لانتقادات شديدة من قبل مجتمع التقنية.
في ديسمبر 1994، استدعت شركة إنتل المعالجات المعيبة في أول عملية استدعاء شاملة لرقاقة حاسوب. [ 4 ] وفي تقريرها السنوي لعام 1994، ذكرت إنتل أنها تكبدت "تكلفة قبل الضريبة قدرها 475 مليون دولار ... لتغطية تكاليف استبدال وشطب هذه المعالجات الدقيقة". [ 5 ]
وصف
لتحسين سرعة حسابات القسمة ذات الفاصلة العائمة على شريحة بنتيوم مقارنةً بشريحة 486DX ، استبدلت إنتل خوارزمية القسمة بالإزاحة والطرح بخوارزمية سويني وروبرتسون وتوشر (SRT). تستطيع خوارزمية SRT توليد بتين من نتيجة القسمة في كل دورة ساعة ، بينما كانت خوارزمية 486 تولد بتين فقط. استُخدم في جدول البحث مصفوفة منطقية قابلة للبرمجة (PLA) مكونة من 2048 خلية، كان من المفترض أن تحتوي 1066 خلية منها على إحدى القيم الخمس التالية: -2، -1، 0، +1، +2 . [ 3 ] عند تجميع مصفوفة بنتيوم الأصلية في نمط القناع المستخدم في التصنيع، لم تستقبل معدات الطباعة الحجرية خمس قيم +2. ونتيجةً لذلك، احتوت خمس خلايا في مصفوفات PLA المحفورة للرقائق الفعلية، والتي كان من المفترض أن تحتوي على +2، على أصفار. [ 6 ] [ 3 ]
ونتيجةً لذلك، تُدخل العمليات الحسابية التي تعتمد على هذه الخلايا الخمس أخطاءً، والتي قد تتراكم بسبب الطبيعة التكرارية لخوارزمية SRT . في أسوأ الحالات، قد يصل الخطأ إلى الرقم المعنوي الخامس من النتيجة، على الرغم من أن هذا نادر الحدوث، وعادةً ما تظهر الأخطاء عند الرقم المعنوي التاسع أو العاشر. [ 3 ]
لا تظهر هذه المشكلة إلا عند استخدام تركيبات معينة من البسط والمقام، ومن الأمثلة الشائعة قسمة 4,195,835 على 3,145,727. ويمكن للمستخدمين، من خلال إجراء هذه العملية الحسابية في أي برنامج يستخدم المعالج المساعد للفاصلة العائمة، مثل آلة حاسبة ويندوز ، معرفة ما إذا كانت شريحة بنتيوم الخاصة بهم متأثرة بهذه المشكلة. [ 7 ]
القيمة الصحيحة للحساب هي:
عند تحويلها إلى القيمة السداسية العشرية التي يستخدمها المعالج، فإن 4,195,835 = 0x4005FB و 3,145,727 = 0x2FFFFF. يؤدي الرقم "5" في 0x4005FB إلى الوصول إلى خلايا المصفوفة "الفارغة". ونتيجة لذلك، تكون القيمة التي يُرجعها معالج بنتيوم معيب غير صحيحة عند أربعة أرقام أو أكثر: [ 8 ]
وهي في الواقع قيمة.
الاكتشاف والاستجابة
كتب توماس نايسلي، أستاذ الرياضيات في كلية لينشبرغ، برنامجًا لحساب الأعداد الأولية ، والأعداد الأولية المزدوجة ، والأعداد الأولية الثلاثية ، والأعداد الأولية الرباعية . لاحظ نايسلي بعض التناقضات في الحسابات في 13 يونيو 1994، بعد فترة وجيزة من إضافة جهاز بنتيوم إلى مجموعة حواسيبه، لكنه لم يتمكن من استبعاد عوامل أخرى (مثل أخطاء البرمجة، وشرائح اللوحة الأم ، وما إلى ذلك) حتى 19 أكتوبر 1994. [ 1 ] في 24 أكتوبر 1994، أبلغ نايسلي شركة إنتل بالمشكلة. [ 9 ] وبحسب ما ورد، فقد علمت إنتل بالمشكلة بشكل مستقل بحلول يونيو 1994، وبدأت في إصلاحها في ذلك الوقت، لكنها اختارت عدم الكشف علنًا عن أي تفاصيل أو استدعاء وحدات المعالجة المركزية المتأثرة. [ 10 ]
في 30 أكتوبر 1994، أرسل نايسلي بريدًا إلكترونيًا يصف فيه الخلل إلى جهات اتصال أكاديمية مختلفة، طالبًا تقارير عن اختبار هذا الخلل على معالجات 486-DX4 ومعالجات بنتيوم والمعالجات المقلدة لها . [ 9 ] وسرعان ما تم التحقق من الخلل من قبل آخرين، وانتشر خبره بسرعة على الإنترنت . وقد اكتسب الخلل اسم "خلل قسمة الأعداد العشرية في بنتيوم" نسبةً إلى اختصار لغة التجميع x86 لعملية قسمة الأعداد العشرية، وهي أكثر التعليمات استخدامًا التي تأثرت بهذا الخلل. [ 9 ]
نُشرت القصة لأول مرة في الصحافة بتاريخ 7 نوفمبر 1994، في مقالٍ بعنوان "إنتل تُصلح خللًا في وحدة المعالجة النقطية لمعالج بنتيوم" بقلم ألكسندر وولف، [ 11 ] ثمّ تناولتها شبكة CNN في تقريرٍ بُثّ في 22 نوفمبر 1994. كما نشرتها صحيفتا نيويورك تايمز وبوسطن غلوب ، وتصدرت الأخيرة صفحتها الأولى. [ 10 ] [ 12 ]
في هذه المرحلة، أقرت إنتل بوجود خلل في معالجة الفاصلة العائمة، لكنها زعمت أنه غير خطير ولن يؤثر على معظم المستخدمين. وعرضت إنتل استبدال المعالجات للمستخدمين الذين يثبتون تأثرهم. ومع ذلك، ورغم أن معظم التقديرات المستقلة أشارت إلى أن تأثير الخلل سيكون محدودًا للغاية على معظم المستخدمين، إلا أنه تسبب في دعاية سلبية كبيرة للشركة. خلال حديثٍ عام 2019، وأثناء استعراضه لتطوير لعبة Quake ، وصف جون روميرو مدى تكرار هذا الخلل واستمراره، والذي تمكن مايكل أبرش من إعادة إنتاجه . أمضى أبرش ساعاتٍ في تتبع الظروف الدقيقة اللازمة لإحداث الخلل، والذي كان يؤدي إلى ظهور أجزاء من مستوى اللعبة بشكلٍ غير متوقع عند مشاهدتها من زوايا كاميرا معينة. [ 13 ] أوقفت شركة IBM بيع أجهزة الكمبيوتر الشخصية التي تحتوي على معالجات إنتل، وانخفض سعر سهم إنتل بشكلٍ ملحوظ. [ 14 ] وقد شكك البعض في الصناعة في دوافع قرار IBM؛ إذ كانت IBM تُنتج معالجات PowerPC في ذلك الوقت، وكان من المحتمل أن تستفيد من أي ضرر يلحق بسمعة معالج Pentium أو شركة إنتل ككل. إلا أن هذا القرار أدى إلى مطالبة مشتري أجهزة الكمبيوتر من الشركات باستبدال معالجات بنتيوم الموجودة، وبعد ذلك بوقت قصير بدأت شركات تصنيع أجهزة الكمبيوتر الأخرى في تقديم استبدال "بدون طرح أي أسئلة" لرقائق بنتيوم المعيبة. [ 4 ]
أدى تزايد الاستياء من استجابة إنتل إلى عرض الشركة استبدال جميع معالجات بنتيوم المعيبة عند الطلب في 20 ديسمبر. [ 15 ] وفي 17 يناير 1995، أعلنت إنتل عن خصم 475 مليون دولار من أرباحها قبل الضريبة، وهو ما يمثل التكلفة الإجمالية لاستبدال المعالجات المعيبة. [ 9 ] ويعادل هذا المبلغ 891 مليون دولار في عام 2024. [ 16 ] وُجهت انتقادات لإنتل لمنعها الموزعين ومصنعي المعدات الأصلية من المشاركة في برنامج الاستدعاء، مما أجبر المستخدمين النهائيين على استبدال الرقائق بأنفسهم. وكان تبرير إنتل لهذا الإجراء، المنشور على صفحة الدعم الخاصة بها، هو أن "القرار النهائي هو تحديد ما إذا كان العيب يؤثر على دقة تطبيقاتهم". [ 14 ]
تصف مقالة نُشرت عام 1995 في مجلة ساينس قيمة مسائل نظرية الأعداد في اكتشاف أخطاء الحاسوب، وتقدم الخلفية الرياضية وتاريخ ثابت برون ، وهي المسألة التي كان نايسلي يعمل عليها عندما اكتشف الخطأ. [ 17 ]
يُعتبر ردّ شركة إنتل على ثغرة FDIV مثالًا على تأثير العلاقات العامة للمشكلة على تأثيرها العملي على العملاء. [ 18 ] فبينما كان من غير المرجح أن يواجه معظم المستخدمين هذه الثغرة في استخدامهم اليومي للحوسبة، أثار رد فعل الشركة الأولي بعدم استبدال الرقائق إلا إذا أثبت العملاء تأثرهم بها معارضةً من فئة قليلة من خبراء الصناعة. وقد زعزعت الدعاية اللاحقة ثقة المستهلكين في وحدات المعالجة المركزية، وأدت إلى مطالبة باتخاذ إجراءات حتى من قِبل الأشخاص الذين من غير المرجح أن يتأثروا بالمشكلة. ونُقل عن آندي غروف ، الرئيس التنفيذي لشركة إنتل آنذاك، في صحيفة وول ستريت جورنال قوله: "أعتقد أن جوهر المشكلة التي أغفلناها... هو أننا افترضنا أننا نستطيع إخبار شخص ما بما يجب أن يقلق بشأنه أو لا يقلق بشأنه، أو ما يجب عليه فعله أو عدم فعله". [ 4 ]
في أعقاب اكتشاف الخلل وسحب المنتج لاحقًا، لوحظ ازدياد ملحوظ في استخدام التحقق الرسمي من عمليات الفاصلة العائمة في الأجهزة في جميع أنحاء صناعة أشباه الموصلات. وبدافع من اكتشاف الخلل، طُوّرت تقنية قابلة للتطبيق على خوارزمية SRT تُسمى " التحقق من النموذج على مستوى الكلمة" في عام 1996. [ 19 ] وواصلت شركة إنتل استخدام التحقق الرسمي على نطاق واسع في تطوير معمارية وحدات المعالجة المركزية اللاحقة. ففي تطوير معالج بنتيوم 4 ، استُخدم تقييم المسار الرمزي وإثبات النظريات لاكتشاف عدد من الأخطاء التي كان من الممكن أن تؤدي إلى حادثة سحب مماثلة لو لم يتم اكتشافها. [ 20 ] وكانت معمارية نيهاليم ، التي طُوّرت في عام 2008، أول معمارية دقيقة من إنتل تستخدم التحقق الرسمي كطريقة أساسية للتحقق من الصحة. [ 21 ]
الطرازات المتأثرة
تؤثر ثغرة FDIV على معالجات Pentium P5 800 بتردد 60 و66 ميجاهرتز في الإصدارات السابقة للإصدار D1، وعلى معالجات Pentium P54C 600 بتردد 75 و90 و100 ميجاهرتز في الإصدارات السابقة للإصدار B5. أما معالجات P54C وP54CQS بتردد 120 ميجاهرتز فلا تتأثر بهذه الثغرة. [ 22 ] [ 23 ]
تحديثات البرامج
أصدرت الشركات المصنعة العديد من التحديثات البرمجية لمعالجة هذا الخلل. إحدى الخوارزميات المحددة، الموضحة في ورقة بحثية منشورة في مجلة IEEE Computational Science & Engineering ، هي ضرب كل من البسط والمقام في 15/16 إذا حاول أحد المقسومات الوصول إلى خلية PLA تحتوي على صفر عن طريق الخطأ. يُسبب هذا الإصلاح انخفاضًا ملحوظًا في السرعة؛ ففي أسوأ الحالات، بالنسبة لبرنامج يُجري عمليات القسمة الأولى فقط مع مقسومات خاطئة، يتضاعف وقت التشغيل لأن كل عملية قسمة ستستغرق حوالي 80 دورة ساعة بدلًا من 40 دورة. مع وجود المزيد من المقسومات العشوائية، بلغ متوسط وقت كل عملية قسمة حوالي 50 دورة ساعة، أي إضافة 10 دورات للتحقق من المقسوم: فقط 5 من أصل 1024 مقسومًا عشوائيًا ستؤدي إلى تفعيل إصلاح التناسب. وبما أن عملية القسمة الأولى نادرة في معظم البرامج، فإن التباطؤ الطبيعي بعد تثبيت الإصلاح كان عادةً 1% أو أقل. [ 8 ]
كان التحدي الرئيسي الذي واجهته شركات البرمجيات هو تطبيق الإصلاح في البرامج الموجودة مسبقًا، والتي يعتمد معظمها على مكتبات خارجة عن سيطرتها. اختارت بعض الشركات، مثل Wolfram Research ، تعديل الشفرة الآلية للملفات التنفيذية الموجودة مباشرةً لاستبدال رمز عملية FDIV بتعليمات غير صالحة. سيؤدي هذا إلى إطلاق استثناء يمكن لمعالج الاستثناءات (المُعدّل أيضًا) التقاطه. ومن هنا، يمكن تنفيذ أي شفرة برمجية للتحايل على الخلل. [ 2 ]
قدّمت مايكروسوفت حلولاً بديلة على مستوى نظام التشغيل في إصدارات ويندوز حتى ويندوز إكس بي. تضمنت هذه الحلول أدوات مساعدة للتحقق من وجود الخلل وتعطيل وحدة معالجة الفاصلة العائمة (FPU) في حال العثور عليه. [ 24 ] [ 25 ]
انظر أيضاً
مراجع
- 1 2 إيدلمان، آلان (1 يناير 1997). "رياضيات خطأ قسمة بنتيوم" (ملف PDF) . مجلة SIAM Review . 39 (1): 54-67 . Bibcode : 1997SIAMR..39...54E . doi : 10.1137/S0036144595293959 . مؤرشف (ملف PDF) من الأصل في 14 أغسطس 2024. تم الاطلاع عليه في 11 أبريل 2021 .
- 1 2 "«مناقشة وحل لمشكلة FDIV في معالجات بنتيوم» من أرشيف نوت بوك (2002) . notebookarchive.org . شركة وولفرام للأبحاث . تم الاطلاع عليه بتاريخ 11 أبريل 2021 .
- ١ ٢ ٣ ٤ توم ر. هالفيل (مارس ١٩٩٥). "خطأ في جدول بحث تسبب في الخلل الشهير في أحدث معالجات إنتل" . بايت . العدد مارس ١٩٩٥. مؤرشف من الأصل في ٩ فبراير ٢٠٠٦. تم الاطلاع عليه في ١٩ ديسمبر ٢٠٠٦ .
- 1 2 3 كارلتون، جيم؛ يودر، ستيفن ك. (21 ديسمبر 1994). "الحواسيب: اعتراف بالخطأ: إنتل ستستبدل رقائق بنتيوم". صحيفة وول ستريت جورنال (الطبعة الشرقية ). ص. ب1.
- ↑ "التقرير السنوي لعام 1994" . إنتل. 20 يونيو 2020. مؤرشف من الأصل في 26 فبراير 2017. تم الاطلاع عليه في 20 يونيو 2020 .
- ↑ شارانغباني، إتش بي؛ بارتون، إم إل (30 نوفمبر 1994). التحليل الإحصائي لخلل الفاصلة العائمة في معالج بنتيوم (1994) (ملف PDF) (تقرير). شركة إنتل. مؤرشف من الأصل (ملف PDF) في 19 مارس 2022. تم الاطلاع عليه في 11 أبريل 2021 .
- ↑ "خلل في نظام بنتيوم FDIV - صورة" . معهد جامعة كانساس للسياسات والبحوث الاجتماعية. 30 نوفمبر 1994. مؤرشف من الأصل في 3 نوفمبر 2021. تم الاطلاع عليه في 3 نوفمبر 2010 .
- 1 2 كو، ت.؛ ماثيسن، ت.؛ مولر، س.؛ برات، ف. (1995). "الجوانب الحسابية لقضية بنتيوم" (ملف PDF) . مجلة IEEE للعلوم والهندسة الحاسوبية . 2 (1): 18-30 . doi : 10.1109/99.372929 . مؤرشف (ملف PDF) من الأصل في 23 يونيو 2021. تم الاطلاع عليه في 13 أبريل 2021 .
- 1 2 3 4 نايسلي، توماس (19 أغسطس 2011). "أسئلة وأجوبة حول عيب FDIV في معالج بنتيوم" . trnicely.net . مؤرشف من الأصل في 18 يونيو 2019. تم الاطلاع عليه في 18 يونيو 2019 .
- 1 2 ماركوف، جون (24 نوفمبر 1994). "أخبار الشركة: عيب يُقوّض دقة رقائق بنتيوم" . صحيفة نيويورك تايمز . مؤرشف من الأصل في 14 أغسطس 2024. تم الاطلاع عليه في 11 أبريل 2021 .
- ↑ ألكسندر وولف (9 نوفمبر 1994). "إنتل تُصلح خللًا في وحدة معالجة الفاصلة العائمة في معالج بنتيوم" . مجلة الهندسة الإلكترونية تايمز . مؤرشف من الأصل في 18 ديسمبر 2010. تم الاطلاع عليه في 19 يناير 2011 .
- ↑ مولر، كليف (شتاء 1995). "قصة رقمين" (ملف PDF) . أخبار وملاحظات MATLAB . ماث ووركس. مؤرشف (ملف PDF) من الأصل في 14 أغسطس 2024. تم الاطلاع عليه في 21 أبريل 2021 .
- ↑ "BTD12: مبادئ برمجة Id Software" . شركة TNG Technology Consulting GmbH. 6 أغسطس 2019. مؤرشف من الأصل في 25 أغسطس 2023. تم الاطلاع عليه في 17 يوليو 2023 .
- 1 2 يراسورك، زيودي (30 مارس 2011). "الدروس المستفادة: عيوب بنتيوم تساعد إنتل في استدعاء شرائح ساندي بريدج" . CRN . مؤرشف من الأصل في 14 أغسطس 2024. تم الاطلاع عليه في 11 أبريل 2021 .
- ↑ «تتبنى إنتل سياسة استبدال عند الطلب لمعالجات بنتيوم التي تعاني من خلل في الفاصلة العائمة؛ وستُسجل تكلفة على أرباح الربع الرابع» . بزنس واير. 20 ديسمبر 1994. تم الاطلاع عليه في 24 ديسمبر 2006 .
{{cite web}}: CS1 maint: deprecated archiveal service ( link ) - ↑ جونستون، لويس؛ ويليامسون، صموئيل هـ. (2023). "ما هو الناتج المحلي الإجمالي للولايات المتحدة آنذاك؟" . قياس القيمة . تم الاسترجاع في 30 نوفمبر 2023 .تتبع أرقام معامل انكماش الناتج المحلي الإجمالي للولايات المتحدة سلسلة MeasuringWorth .
- ↑ سيبرا، باري آرثر (13 يناير 1995). "كيف تفوقت نظرية الأعداد على معالج بنتيوم". مجلة ساينس . 267 (5195): 175. Bibcode : 1995Sci...267..175C . doi : 10.1126 / science.267.5195.175 . PMID 17791336. S2CID 19898103 .
- ↑ برايس، د. (أبريل 1995). "عيب وحدة تقسيم التردد في معالج بنتيوم - دروس مستفادة". مجلة IEEE Micro . 15 (2): 86-88 . doi : 10.1109/40.372360 .
- ↑ كلارك، إي إم؛ خيرا، إم؛ تشاو، إكس. (1996). "التحقق من نموذج مستوى الكلمة - تجنب خطأ FDIV في معالج بنتيوم" . وقائع المؤتمر السنوي الثالث والثلاثين حول أتمتة التصميم - DAC '96 . الصفحات 645-648 . doi : 10.1145/240518.240640 . ISBN 0897917790S2CID 2500033. مؤرشف من الأصل بتاريخ 29 أبريل 2021. تم الاطلاع عليه بتاريخ 29 أبريل 2021 .
- ↑ أوليري، ج. (2004). "التحقق الرسمي في تصميم معالجات إنتل" . وقائع المؤتمر الدولي الثاني لجمعية آلات الحوسبة ومعهد مهندسي الكهرباء والإلكترونيات حول الأساليب والنماذج الرسمية للتصميم المشترك، 2004. MEMOCODE '04 . ص 152. doi : 10.1109/MEMCOD.2004.1459841 . ISBN 0-7803-8509-8أُرشف من المصدر الأصلي بتاريخ 29 أبريل 2021. تم الاطلاع عليه بتاريخ 29 أبريل 2021 .
- ↑ كايڤولا، روبي؛ غوغال، راجنيش؛ ناراسيمهان، نارين؛ تيلفر، آمبر؛ ويتيمور، جيسي؛ باندف، سوديندرا؛ سلوبودوفا، آنا؛ تايلور، كريستوفر؛ فرولوف، فلاديمير؛ ريبر، إريك؛ نايك، أرمغان (2009). "استبدال الاختبار بالتحقق الرسمي في التحقق من صحة محرك تنفيذ معالج Intel Core i7". التحقق بمساعدة الحاسوب . سلسلة محاضرات في علوم الحاسوب. المجلد 5643. الصفحات 414-429 . doi : 10.1007/978-3-642-02658-4_32 . ISBN 978-3-642-02657-7.
- ↑ "معالجات الجيل الخامس P5 (586) | أنواع ومواصفات المعالجات الدقيقة | InformIT" . informit.com . 8 يونيو 2001. مؤرشف من الأصل في 13 أبريل 2021. تم الاطلاع عليه في 13 أبريل 2021 .
- ↑ "برنامج استبدال FDIV: الأسئلة الشائعة" . إنتل . 20 مارس 2009. رقم الحل CS-012748. مؤرشف من الأصل في 11 مايو 2009. تم الاطلاع عليه في 10 نوفمبر 2009 .
- ↑ سلوب، آري. "استكشاف أخطاء ويندوز 95 وإصلاحها: كيفية التحقق من وجود خلل في المعالج المساعد للرياضيات" . helpwithwindows.com . مؤرشف من الأصل في 14 أغسطس 2024. تم الاطلاع عليه في 23 أبريل 2019 .
- ↑ "Pentnt" . مايكروسوفت تك نت . مايكروسوفت . 11 سبتمبر 2009. مؤرشف من الأصل في 3 فبراير 2018. تم الاطلاع عليه في 23 أبريل 2019 .
روابط خارجية
- الموقع الشخصي للدكتور نايسلي، الذي اكتشف الخلل
- صفحة تحتوي على معلومات دقيقة، بما في ذلك معلومات عن السبب
- ملف مضغوط يحتوي على مزيد من التفاصيل (انظر تنسيق ملف ZIP لمزيد من التفاصيل حول الملف)
- أرشيف صفحة المعلومات الرسمية لشركة إنتل حول الخلل
- علبة معالج Intel غير مفتوحة من برنامج استبدال FDIV
- 1994 في مجال الحوسبة
- أعطال الأجهزة
- عمليات سحب المنتجات
- معمارية X86
