في عام 1980، قدمت إنتل شريحة 8087، مما جعل عمليات النقطة العائمة أسرع بكثير في شركة آي بي إم PC وأنظمة أخرى. على الرغم من أن شريحة 8087 تدعم عمليات متقدمة مثل الظوينات، والجذور التربيعية، واللوغاريتمات، إلا أن هذا المقال يركز على العمليات الحسابية الأساسية: الجمع والطرح. وقدمت شريحة 8087 تحسينًا spectacular في السرعة مقارنة بمعالج 8086، حيث سرعت عملية الجمع بعامل يقارب 100، والعمليات الأكثر تعقيدًا بشكل أكبر.
لاستكشاف دائرة 8087، قمت بازالة الغطاء عن الشريحة باستخدام مشرط واستخدمت المجهر لإنشاء الصورة عالية الدقة أدناه. تحتوي ROM الميكروكود على المنطقة المستطيلة الكبيرة في وسط الرقاقة، وتحمل 1648 ميكرو-تعليمات تتحكم في الشريحة. النصف السفلي من الرقاقة (الصندوق الأحمر) هو datapath، الدوائر التي تقوم بحسابات النقطة العائمة على قيم 80 بت.
يوضح close-up من datapath الخاص بـ 8087 الوظائف الأساسية المستخدمة للجمع والطرح. المكون الرئيسي هو المضاف الصحيح، ويقع في المنتصف. يتلقى аргумент من registre B وعنصر مثل التسجيلات المؤقتة أو تسجيلات السطack. يخرج المضاف ويتم تخزينه في registre المجموع. يمكن للمتحول نقل البיטים في قيمة إلى اليسار أو اليمين. يشغل المحول مساحة كبيرة على الرقاقة لأن دوائره تسمح بنقل قيمة بسرعة بعدد arbitrاري من البיטים. العمليات الحسابية للنقطة العائمة تعتمد heavily على المحول لتوافق القيم؛ يقوم Circuit الأصفار الرائدة بحساب عدد البיטים أو البايتات الصفرية على يسار قيمة لتتمكن من نقلها. معالج الأسس يعالج الأسس، ويكشف عنOverflow وUnderflow. هذه الدوائر المتخصصة ساعدت 8087 على تحقيق أداء عالي.
تعتمد معظم الحواسيب على الأعداد الصحيحة كنموذج أساسي للأرقام. لكن العديد من التطبيقات تحتاج إلى أرقام لها جزء كسري، مثل 1.23. بالإضافة إلى ذلك، للأعداد الصحيحة نطاق محدود جداً: يمكن للعدد الصحيح 32 بت التعبير عن الأرقام من حوالي -2 مليار إلى 2 مليار. لحل هذه المشكلات، تقوم الحواسيب عادة بتطبيق الأعداد ذات النقطة العائمة، التي توفر كسورًا على نطاق هائل. في معظم الحالات، يُمثل رقم النقطة العائمة بواسطة sign × significand × 2^exponent. significand هو رقم ثنائي الشكل 1.bbb…: Leading 1، seguito من punto binario (ال مكافئ الثنائي للنقطة العشرية) وباقي البיטים.
في رقم ثنائي، تمثل كل بت قوة من 2. بالنسبة للجزء الكسري، الجزء بعد البिंदين الثنائي، قوى 2 سالبة: 2^-1، 2^-2، وهكذا. لذا، الرقم الثنائي 1.1 هو 1 + 1/2، أو 1.5 في العشرية. وبالمثل، الرقم الثنائي 1.0011 هو 1 + 1/8 + 1/16 أو 1.1875. يسمح الأسس للأرقام بالهروب من النطاق المحدود للم significand. على سبيل المثال، 1.1 (الثنائي) × 2^8 يساوي 384. مع الأسس الأكبر، يمكن للأرقام ذات النقطة العائمة تغطية نطاق هائل؛ حتى رقم النقطة العائمة قصير 32 بت يغطي نطاقًا يتجاوز 10^-36 إلى 10^38.
عملية الجمع والطرح في النقطة العائمة أكثر تعقيدًا من عمليات الأعداد الصحيحة. قبل أن تتم إضافة الأرقام (أو طرحها)، يجب تطابق نقاطها الثنائية، تمامًا كما يتم تطابق نقاط العشر للأرقام العشرية. بعد العملية، يجب تعديل أس resultant exponent، normalized significand بحيث يبدأ ببت 1. خطوات الجمع البسيط في النقطة العائمة. يوضح الرسم التوضيحي أعلاه عملية الجمع البسيط في النقطة العائمة: 13.5 + 3.5. السطران الأوليان يظهران الرقمين المعربين بمؤشر ومعامل. كلا الرقمين طبيعيين، لذا البت الأكثر يسارًا هو 1. قبل الإضافة، يجب تطابق الرقم الثاني—ma...
المصدر: Hacker News · لخّصه HeadlinesBriefing