وحدة الفاصلة العائمة

مجموعة معالجات الرياضيات المساعدة من عائلة x87 من إنتل

وحدة الفاصلة العائمة ( FPU )، أو وحدة المعالجة العددية ( NPU[ 1 ] أو ما يُعرف بالعامية بمعالج الرياضيات المساعد ، هي جزء من نظام حاسوبي مُصمم خصيصًا لإجراء عمليات حسابية على الأعداد العشرية . [ 2 ] تشمل العمليات الشائعة الجمع والطرح والضرب والقسمة والجذر التربيعي . تتضمن التصاميم الحديثة عادةً تعليمة الجمع والضرب المدمجة ، والتي وُجد أنها شائعة جدًا في البرامج الحاسوبية. يمكن لبعض وحدات الفاصلة العائمة أيضًا أداء وظائف حسابية متقدمة مثل العمليات الأسية أو المثلثية ، ولكن قد تكون دقتها منخفضة، [ 3 ] [ 4 ] لذا تُفضل بعض الأنظمة حساب هذه الوظائف برمجيًا.

في البداية، كانت عمليات الفاصلة العائمة تُعالج برمجياً في الحواسيب القديمة. ومع مرور الوقت، بدأ المصنّعون بتوفير مكتبات قياسية للفاصلة العائمة ضمن مجموعات برامجهم. بعض الأجهزة، وخاصةً تلك المخصصة للمعالجة العلمية، كانت تتضمن مكونات مادية متخصصة لأداء بعض هذه المهام بسرعة أكبر بكثير. سمح إدخال الشفرة الدقيقة في ستينيات القرن الماضي بإدراج هذه التعليمات في بنية مجموعة تعليمات النظام (ISA). عادةً ما تُفكّ شفرة هذه التعليمات بواسطة الشفرة الدقيقة إلى سلسلة من التعليمات المشابهة للمكتبات، ولكن في الأجهزة المزودة بوحدة معالجة الفاصلة العائمة (FPU)، تُوجّه هذه التعليمات إلى تلك الوحدة، مما يُسرّع تنفيذها بشكل ملحوظ. هذا ما جعل تعليمات الفاصلة العائمة عالمية، بينما بقيت مكونات الفاصلة العائمة المادية اختيارية؛ فعلى سبيل المثال، في جهاز PDP-11 ، كان بالإمكان إضافة وحدة معالجة الفاصلة العائمة في أي وقت باستخدام بطاقات التوسعة القابلة للتوصيل .

أدى ظهور المعالج الدقيق في سبعينيات القرن الماضي إلى تطور مماثل لما شهدته الحواسيب المركزية والحواسيب الصغيرة سابقًا. كانت أنظمة الحواسيب الصغيرة المبكرة تُنفذ عمليات الفاصلة العائمة برمجيًا، عادةً في مكتبة خاصة بالشركة المصنعة مُضمنة في ذاكرة القراءة فقط (ROM) . بدأت وحدات معالجة الفاصلة العائمة (FPUs) أحادية الشريحة بالظهور في أواخر ذلك العقد، لكنها ظلت نادرة في الأنظمة العملية حتى منتصف ثمانينيات القرن الماضي، وكان استخدامها يتطلب إعادة كتابة البرامج لاستدعائها. مع ازدياد شيوعها، عُدّلت مكتبات البرامج لتعمل مثل الشفرة الدقيقة للأجهزة السابقة، حيث تُنفذ التعليمات على وحدة المعالجة المركزية الرئيسية عند الحاجة، وتُسندها إلى وحدة معالجة الفاصلة العائمة (FPU) إن وُجدت. بحلول أواخر ثمانينيات القرن الماضي، تحسّن تصنيع أشباه الموصلات إلى درجة سمحت بتضمين وحدة معالجة الفاصلة العائمة (FPU) مع وحدة المعالجة المركزية الرئيسية، مما أدى إلى تصميمات مثل i486 و 68040 . كانت هذه التصاميم تُعرف باسم "وحدات معالجة الفاصلة العائمة المتكاملة"، ومنذ منتصف التسعينيات، أصبحت وحدات معالجة الفاصلة العائمة ميزة قياسية في معظم تصميمات وحدة المعالجة المركزية باستثناء تلك المصممة لتكون منخفضة التكلفة مثل المعالجات المدمجة .

في التصاميم الحديثة، تتضمن وحدة المعالجة المركزية الواحدة عادةً عدة وحدات حسابية ومنطقية (ALUs) وعدة وحدات معالجة الفاصلة العائمة (FPUs)، حيث تقرأ العديد من التعليمات في الوقت نفسه وتوجهها إلى الوحدات المختلفة للتنفيذ المتوازي. وبحلول العقد الأول من القرن الحادي والعشرين، أصبحت المعالجات المدمجة تتضمن عمومًا وحدة معالجة الفاصلة العائمة أيضًا.

تاريخ

في عام 1954، كان جهاز IBM 704 مزودًا بحسابات الفاصلة العائمة كميزة قياسية، وهو أحد التحسينات الرئيسية التي طرأت عليه مقارنة بسابقه IBM 701. وقد تم نقل هذه الميزة إلى الأجهزة اللاحقة 709 و7090 و7094.

في عام 1963، أعلنت شركة ديجيتال عن جهاز PDP-6 ، الذي كان يحتوي على نظام الفاصلة العائمة كميزة قياسية. [ 5 ]

في عام 1963، احتوى جهاز GE-235 على "وحدة حسابية مساعدة" لإجراء حسابات الفاصلة العائمة والحسابات ذات الدقة المزدوجة. [ 6 ]

تاريخيًا، كانت بعض الأنظمة تُنفذ عمليات الفاصلة العائمة باستخدام معالج مساعد بدلًا من وحدة متكاملة (لكن الآن، بالإضافة إلى وحدة المعالجة المركزية، مثل وحدات معالجة الرسومات - وهي معالجات مساعدة ليست دائمًا مدمجة في وحدة المعالجة المركزية - تحتوي عادةً على وحدات معالجة الفاصلة العائمة، بينما لم تكن الأجيال الأولى من وحدات معالجة الرسومات تحتوي عليها). قد تكون هذه الوحدة عبارة عن دائرة متكاملة واحدة، أو لوحة دوائر كاملة ، أو هيكل حاسوبي. في حال عدم توفير أجهزة حساب الفاصلة العائمة، تُجرى هذه العمليات برمجيًا، مما يستغرق وقتًا أطول من المعالج، ولكنه يوفر تكلفة الأجهزة الإضافية. بالنسبة لبنية حاسوب معينة، يمكن محاكاة تعليمات وحدة الفاصلة العائمة بواسطة مكتبة من الدوال البرمجية؛ وهذا قد يسمح بتشغيل نفس الكود البرمجي على أنظمة مزودة بأجهزة حساب الفاصلة العائمة أو بدونها. يمكن تنفيذ المحاكاة على عدة مستويات: في وحدة المعالجة المركزية كشفرة دقيقة ، أو كدالة لنظام التشغيل ، أو في كود مساحة المستخدم . عندما تكون وظائف الأعداد الصحيحة فقط متاحة، تُستخدم طرق CORDIC بشكل شائع لتقييم الدوال المتسامية .  

في معظم بنى الحواسيب الحديثة، يوجد نوع من الفصل بين عمليات الفاصلة العائمة وعمليات الأعداد الصحيحة . ويختلف هذا الفصل اختلافًا كبيرًا باختلاف البنية؛ فبعضها يحتوي على سجلات مخصصة للفاصلة العائمة، بينما يصل بعضها الآخر، مثل Intel x86 ، إلى حد استخدام أنظمة توقيت مستقلة . [ 7 ]

تم تنفيذ إجراءات CORDIC في معالجات Intel x87 المساعدة ( 8087 ، [ 8 ] [ 9 ] [ 10 ] [ 11 ] [ 12 ] 80287، [ 12 ] [ 13 ] 80387 [ 12 ] [ 13 ] ) حتى سلسلة المعالجات الدقيقة 80486 [ 8 ] ، وكذلك في Motorola 68881 [ 8 ] [ 9 ] و68882 لبعض أنواع تعليمات الفاصلة العائمة، وذلك بشكل أساسي كوسيلة لتقليل عدد البوابات (والتعقيد) لنظام FPU الفرعي.

غالباً ما يتم تنفيذ عمليات الفاصلة العائمة باستخدام تقنية التوازي . في البنى الفائقة السابقة التي لم تكن تدعم التنفيذ خارج الترتيب بشكل عام ، كانت عمليات الفاصلة العائمة تُنفذ أحياناً بشكل منفصل عن عمليات الأعداد الصحيحة.

تعتمد البنية المعيارية لبنية Bulldozer الدقيقة على وحدة معالجة الفاصلة العائمة (FPU) خاصة تُسمى FlexFPU، والتي تستخدم تقنية تعدد الخيوط المتزامنة . كل نواة معالجة عددية فعلية، اثنتان لكل وحدة، تعمل بخيط واحد، على عكس تقنية Hyperthreading من إنتل ، حيث يتشارك خيطان افتراضيان متزامنان موارد نواة فعلية واحدة. [ 14 ] [ 15 ]

مكتبة الفاصلة العائمة

تدعم بعض وحدات معالجة الأعداد العشرية العمليات الحسابية البسيطة فقط: الجمع والطرح والضرب. ولكن حتى أكثر وحدات معالجة الأعداد العشرية تعقيدًا لها عدد محدود من العمليات التي يمكنها دعمها - على سبيل المثال، لا تدعم أي وحدة معالجة أعداد عشرية العمليات الحسابية ذات الدقة العشوائية بشكل مباشر . 

عندما يُنفّذ المعالج المركزي برنامجًا يتطلب عملية حسابية بفاصلة عائمة غير مدعومة مباشرةً من قِبل المكونات المادية، فإنه يستخدم سلسلة من العمليات الحسابية الأبسط بفاصلة عائمة. أما في الأنظمة التي لا تحتوي على مكونات مادية للفاصلة العائمة، فيُحاكي المعالج المركزي هذه العمليات باستخدام سلسلة من العمليات الحسابية الأبسط بفاصلة ثابتة، والتي تُنفّذ على وحدة المنطق الحسابي للأعداد الصحيحة .

غالبًا ما يتم تضمين البرنامج الذي يسرد سلسلة العمليات اللازمة لمحاكاة عمليات الفاصلة العائمة في مكتبة الفاصلة العائمة .

وحدات معالجة الفاصلة العائمة المتكاملة

في بعض الحالات، قد تكون وحدات معالجة الفاصلة العائمة متخصصة، ومقسمة بين عمليات الفاصلة العائمة الأبسط (الجمع والضرب بشكل أساسي) والعمليات الأكثر تعقيدًا، مثل القسمة. وفي بعض الحالات، قد تُنفذ العمليات البسيطة فقط في الأجهزة أو التعليمات البرمجية الدقيقة ، بينما تُنفذ العمليات الأكثر تعقيدًا كبرمجيات.

في بعض البنى الحالية، يتم دمج وظائف وحدة الفاصلة العائمة مع وحدات SIMD لإجراء حسابات SIMD؛ ومن الأمثلة على ذلك إضافة مجموعة تعليمات x87 إلى مجموعة تعليمات SSE في بنية x86-64 المستخدمة في معالجات Intel و AMD الأحدث.

وحدات معالجة الفاصلة العائمة الإضافية

دعمت عدة طرازات من PDP-11 ، مثل PDP-11/45 [ 16 ] ، وPDP-11/34a [ 17 ] : 184-185، وPDP-11/44 [ 17 ] : 195، 211، وPDP-11/70 [ 17 ] : 277، 286-287 ، وحدة معالجة إضافية للفاصلة العائمة لتنفيذ تعليمات الفاصلة العائمة. بينما استطاعت طرازات PDP-11/60 [ 17 ] : 261، و MicroPDP-11/23 [ 18 ] ، والعديد من طرازات VAX [ 19 ] [ 20 ] تنفيذ تعليمات الفاصلة العائمة دون الحاجة إلى وحدة معالجة إضافية (بينما تطلب MicroPDP-11/23 خيارًا إضافيًا للبرمجيات الدقيقة) [ 18 ] ، كما وفرت هذه الطرازات وحدات تسريع إضافية لزيادة سرعة تنفيذ هذه التعليمات.

في ثمانينيات القرن الماضي، كان من الشائع في أجهزة الكمبيوتر الشخصية المتوافقة مع IBM أن تكون وحدة معالجة الفاصلة العائمة (FPU) منفصلة تمامًا عن وحدة المعالجة المركزية (CPU) ، وعادةً ما تُباع كإضافة اختيارية. ولم تكن تُشترى إلا عند الحاجة لتسريع أو تمكين البرامج التي تتطلب عمليات حسابية مكثفة.

كانت أجهزة IBM PC و XT ومعظم الأجهزة المتوافقة معها، والمبنية على معالجي 8088 أو 8086، مزودة بمقبس للمعالج المساعد 8087 الاختياري. أما أنظمة AT و 80286، فكانت مزودة عمومًا بمقبس للمعالج 80287 ، بينما كانت الأجهزة المبنية على معالجي 80386/80386SX مزودة بمقبس للمعالجين 80387 و 80387SX على التوالي، مع العلم أن الإصدارات الأولى كانت مزودة بمقبس للمعالج 80287، نظرًا لعدم وجود المعالج 80387 آنذاك. وقد قامت شركات أخرى بتصنيع معالجات مساعدة لسلسلة Intel x86، ومنها Cyrix و Weitek . واختارت شركة Acorn Computers المعالج WE32206 لتوفير دقة أحادية ومزدوجة وممتدة [ 21 ] لسلسلة Archimedes التي تعمل بمعالجات ARM ، حيث أدخلت مصفوفة بوابات لربط معالج ARM2 بالمعالج WE32206 لدعم تعليمات الفاصلة العائمة الإضافية لمعالجات ARM. [ 22 ] قدمت شركة Acorn لاحقًا المعالج المساعد FPA10، الذي طورته شركة ARM، لأجهزة مختلفة مزودة بمعالج ARM3. [ 23 ] 

كانت المعالجات المساعدة متوفرة لعائلة موتورولا 68000 ، وتحديدًا طرازي 68881 و68882 . وكانت هذه المعالجات شائعة في محطات العمل التي تعتمد على معالجات موتورولا 68020/68030 ، مثل سلسلة Sun-3 . كما كانت تُضاف عادةً إلى الطرازات المتطورة من أجهزة Apple Macintosh وCommodore Amiga ، ولكن على عكس الأنظمة المتوافقة مع أجهزة IBM PC، لم تكن منافذ إضافة المعالج المساعد شائعة في الأنظمة منخفضة المواصفات.

تتوفر أيضًا وحدات معالجة مساعدة إضافية من نوع FPU لوحدات التحكم الدقيقة (MCUs/μCs)/ الحواسيب أحادية اللوحة (SBCs)، والتي توفر إمكانية إجراء العمليات الحسابية ذات الفاصلة العائمة . هذه الوحدات الإضافية مستقلة عن المعالج المضيف، ولها متطلبات برمجة خاصة بها ( العمليات ، ومجموعات التعليمات ، وما إلى ذلك)، وغالبًا ما تُزود ببيئات تطوير متكاملة (IDEs) خاصة بها.

انظر أيضاً

مراجع

  1. "وحدة المعالجة الرقمية Intel 80287XL" . موقع computinghistory.org.uk . تاريخ الاسترجاع: 2024-11-02 .
  2. أندرسون، ستانلي ف.؛ إيرل، جون ج.؛ غولدشميت، روبرت إليوت؛ باورز، دون م. (يناير 1967). "نظام IBM System/360 موديل 91: وحدة تنفيذ الفاصلة العائمة". مجلة IBM للبحوث والتطوير . 11 (1): 34-53 . doi : 10.1147/rd.111.0034 . ISSN 0018-8646 . 
  3. داوسون، بروس (9 أكتوبر 2014). "إنتل تقلل من تقدير حدود الخطأ بمقدار 1.3 كوينتيليون" . randomascii.wordpress.com . تاريخ الاسترجاع: 16 يناير 2020 .
  4. "تحسينات توثيق FSIN في "دليل مطوري البرامج لهياكل Intel® 64 و IA-32"" . intel.com . 2014-10-09. مؤرشف من الأصل في 2020-01-16 . تم الاسترجاع في 2020-01-16 .
  5. "دليل PDP-6" (ملف PDF) . www.bitsavers.org . مؤرشف (ملف PDF) من النسخة الأصلية بتاريخ 2022-10-09.
  6. "وثائق GE-2xx" . www.bitsavers.org . CPB-267_GE-235-SystemManual_1963.pdf ، صفحة IV-4.
  7. "عائلة معالجات إنتل 80287" . www.cpu-world.com . تاريخ الاسترجاع: 15 يناير 2019 .
  8. 1 2 3 مولر، جان ميشيل (2006). الدوال الأولية: الخوارزميات والتنفيذ ( الطبعة الثانية). بوسطن، ماساتشوستس: بيركهاوزر . ص 134. ISBN   978-0-8176-4372-0LCCN 2005048094. تم الاطلاع عليه بتاريخ 2015-12-01 . 
  9. 1 2 نافي، رافي (مارس 1983). "تنفيذ الدوال المتسامية على معالج رقمي". المعالجة الدقيقة والبرمجة الدقيقة . 11 ( 3-4 ): 221-225 . doi : 10.1016/0165-6074(83)90151-5 .
  10. بالمر، جون ف.؛ مورس، ستيفن بول (1984). دليل 8087 ( الطبعة الأولى). جون وايلي وأولاده أستراليا المحدودة . ISBN  04718756949780471875697. تم الاطلاع عليه بتاريخ 2016-01-02 .
  11. جلاس، إل. برنت (يناير 1990). "معالجات الرياضيات المساعدة: نظرة على ما تفعله وكيف تفعله". بايت . 15 (1): 337-348 . ISSN 0360-5280 . 
  12. 1 2 3 جارفيس، بيتس (1990-10-01). "تطبيق خوارزميات CORDIC - روتين واحد مضغوط لحساب الدوال المتسامية" . مجلة دكتور دوبز : 152-156 . تاريخ الاسترجاع : 2016-01-02 .
  13. 1 2 يوين، أ.ك. (1988). "معالجات النقطة العائمة من إنتل". سجل مؤتمر إلكترو/88 : 48/5/1–7.
  14. "AMD Steamroller vs Bulldozer" . WCCFtech . مؤرشف من الأصل في 9 مايو 2015. تم الاطلاع عليه في 14 مارس 2022 .
  15. هالفكري، غاريث (28 أكتوبر 2010). "شركة AMD تكشف النقاب عن Flex FP" . bit-tech.net . مؤرشف من الأصل في 22 مارس 2017. تم الاطلاع عليه في 29 مارس 2018 .
  16. دليل معالج PDP-11/45 (ملف PDF) . شركة ديجيتال إكويبمنت . 1973. الفصل 7 "معالج الفاصلة العائمة" . تم الاطلاع عليه بتاريخ 30-10-2025 .
  17. 1 2 3 4 دليل معالج PDP-11 (ملف PDF) . شركة ديجيتال إكويبمنت . 1979. تاريخ الاسترجاع: 30-10-2025 .
  18. 1 2 دليل MICRO/PDP-11 (ملف PDF) . شركة المعدات الرقمية . 1983. ص 33. 
  19. VAX – دليل الأجهزة، المجلد الأول – 1986 (ملف PDF) . شركة المعدات الرقمية . 1985.
  20. VAX – دليل الأجهزة، المجلد الثاني – 1986 (ملف PDF) . شركة المعدات الرقمية . 1986.
  21. "معالج ويسترن إلكتريك المساعد 32206" . www.cpu-world.com . تاريخ الاسترجاع: 2021-11-06 .
  22. فيلوز، بول (مارس 1990). "برمجة معالج ARM: المعالج المساعد للنقطة العائمة". مجلة A&B للحوسبة . الصفحات 43-44 . 
  23. "أكورن تُطلق مُسرِّعًا للحسابات النقطية العائمة" (بيان صحفي). شركة أكورن للكمبيوتر المحدودة. 5 يوليو 1993. تم الاطلاع عليه بتاريخ 7 أبريل 2021 .

للمزيد من القراءة