फ़्लोटिंग-पॉइंट यूनिट

एक फ़्लोटिंग-पॉइंट इकाई (एफपीयू, बोलचाल की भाषा में एक गणित सहसंसाधक) एक अभिकलित्र प्रणाली का एक हिस्सा है जिसे विशेष रूप से फ़्लोटिंग-पॉइंट अंकगणित फ़्लोटिंग-पॉइंट संख्याओं पर संचालन करने के लिए अभिकल्पित किया गया है। विशिष्ट संक्रियाएँ जोड़, घटाव, गुणा, भाग (गणित), और वर्गमूल हैं। कुछ एफपीयू घातीय या त्रिकोणमितीय गणना जैसे विभिन्न पारलौकिक कार्य भी कर सकते हैं, लेकिन सटीकता बहुत कम हो सकती है,, इसलिए कुछ सिस्टम सॉफ्टवेयर में इन कार्यों की गणना करना पसंद करते हैं।

सामान्य प्रयोजन के अभिकलित्र संरचना में, एक या अधिक एफपीयू को केंद्रीय प्रसंस्करण इकाई के भीतर निष्पादन इकाइयों के रूप में एकीकृत किया जा सकता है; चूंकि, कई अंतःस्थापित संसाधित्र में फ़्लोटिंग-पॉइंट संक्रिया के लिए हार्डवेयर समर्थन नहीं होता है (जबकि वे तेजी से उन्हें मानक के रूप में रखते हैं, कम से कम 32-बिट वाले)।

जब एक सीपीयू एक क्रमादेश निष्पादित कर रहा है जो फ़्लोटिंग-पॉइंट संक्रिया के लिए कहता है, तो इसे पूरा करने के तीन तरीके हैं:
 * एक फ़्लोटिंग-पॉइंट इकाई एमुलेटर है (एक फ़्लोटिंग-पॉइंट लाइब्रेरी)
 * ऐड-ऑन एफपीयू
 * एकीकृत एफपीयू

इतिहास
1954 में, आईबीएम 704 में एक मानक सुविधा के रूप में फ़्लोटिंग-पॉइंट अंकगणित था, जो इसके पूर्ववर्ती आईबीएम 701 की तुलना में इसके प्रमुख सुधारों में से एक था। इसे इसके परवर्ती 709, 7090 और 7094 में आगे बढ़ाया गया था।

1963 में, डिजिटल ने पीडीपी-6 की घोषणा की, जिसमें एक मानक सुविधा के रूप में फ़्लोटिंग-पॉइंट था। 1963 में, GE-200 श्रृंखला GE-235 में फ़्लोटिंग-पॉइंट और द्विगुण परिशुद्धता गणनाओं के लिए एक सहायक अंकगणितीय इकाई सम्मलित थी। ऐतिहासिक रूप से, कुछ प्रणालियों ने फ़्लोटिंग-पॉइंट अंकगणित को एक एकीकृत इकाई के अतिरिक्त एक सह संसाधित्र के साथ लागू किया (लेकिन अब सीपीयू के अतिरिक्त, उदाहरण के लिए  आरेखीय प्रसंस्करण इकाई ) –  जो सहसंसाधक होते हैं जो हमेशा सीपीयू में निर्मित नहीं होते हैं –  एक नियम के रूप में एफपीयू है, जबकि जीपीयू की पहली पीढ़ी नहीं थी)। यह एक एकल एकीकृत परिपथ, एक संपूर्ण मुद्रित परिपथ पट्ट या एक कैबिनेट हो सकता है। जहां फ़्लोटिंग-पॉइंट गणना हार्डवेयर प्रदान नहीं किया गया है, फ़्लोटिंग-पॉइंट गणना सॉफ़्टवेयर में की जाती है, जिसमें अधिक संसाधित्र समय लगता है, लेकिन अतिरिक्त हार्डवेयर की लागत से बचा जाता है। किसी विशेष अभिकलित्र संरचना के लिए, फ़्लोटिंग-पॉइंट इकाई निर्देश सॉफ़्टवेयर फलन की लाइब्रेरी द्वारा एमुलेटर हो सकते हैं; यह समान  वस्तु कूट को फ़्लोटिंग-पॉइंट हार्डवेयर के साथ या उसके बिना प्रणाली पर चलने की अनुमति दे सकता है। अनुकरण को कई स्तरों पर लागू किया जा सकता है: सीपीयू में सूक्ष्म कूट के रूप में (सामान्य अभ्यास नहीं), एक संचालन प्रणाली फलन के रूप में, या उपयोगकर्ता-स्पेस कूट में जब केवल पूर्णांक कार्यक्षमता उपलब्ध होती है, तो कॉरडिक (CORDIC) फ़्लोटिंग-पॉइंट emulation विधियों का सबसे अधिक उपयोग किया जाता है।

अधिकांश आधुनिक अभिकलित्र संरचना में, पूर्णांक संचालन से फ़्लोटिंग-पॉइंट संचालन का कुछ विभाजन होता है। यह विभाजन संरचना के अनुसार काफी भिन्न होता है; कुछ के पास समर्पित फ़्लोटिंग-पॉइंट रजिस्टर हैं, जबकि कुछ, x86 की तरह, इसे स्वतंत्र अभिकलित्र योजनाओं के रूप में लेते हैं। CORDIC रूटीन को x87 सहसंसाधित्र (इंटेल 8087) में लागू किया गया है    80287, 80387  इंटेल 80486 तक सूक्ष्म संसाधित्र श्रृंखला, साथ ही मोटोरोला 68881 में भी  और 68882 कुछ प्रकार के फ़्लोटिंग-पॉइंट निर्देशों के लिए, मुख्य रूप से एफपीयू उपप्रणाली के  तर्क द्वार  गणनांक (और जटिलता) को कम करने के तरीके के रूप में है।

फ़्लोटिंग-पॉइंट संक्रिया अधिकांशत: निर्देश संपंक्तीयन होते हैं। सामान्य अनुचित निष्पादन के बिना पहले के सुपरस्केलर संरचना में, फ़्लोटिंग-पॉइंट संक्रिया को कभी-कभी पूर्णांक संक्रिया से अलग से संपंक्तीयन किया जाता था।

बुलडोजर (सूक्ष्मसंरचना) का मॉड्यूलर संरचना फ्लेक्सएफपीयू नामक एक विशेष एफपीयू का उपयोग करता है, जो एक साथ बहु सूत्रण का उपयोग करता है। प्रत्येक भौतिक पूर्णांक कोर, प्रति मॉड्यूल दो, एकल-सूत्रित है, इंटेल के हाइपर थ्रेडिंग  के विपरीत, जहां दो आभासी एक साथ सूत्रित एक ही भौतिक कोर के संसाधनों को साझा करते हैं।

फ़्लोटिंग-पॉइंट लाइब्रेरी
कुछ फ़्लोटिंग-पॉइंट हार्डवेयर केवल सबसे सरल संक्रिया का समर्थन करते हैं: जोड़, घटाव और गुणा, लेकिन यहां तक ​​कि सबसे जटिल फ़्लोटिंग-पॉइंट हार्डवेयर में भी सीमित संख्या में संचालन होते हैं जो इसे समर्थन दे सकते हैं – उदाहरण के लिए, कोई भी एफपीयू सीधे तौर पर मनमाना-सटीक अंकगणित का समर्थन नहीं करता है।

जब एक सीपीयू एक क्रमादेश निष्पादित कर रहा है जो एक फ़्लोटिंग-पॉइंट संक्रिया की मांग करता है जो सीधे हार्डवेयर द्वारा समर्थित नहीं है, तो सीपीयू सरल फ़्लोटिंग-पॉइंट संक्रिया की एक श्रृंखला का उपयोग करता है। बिना किसी फ़्लोटिंग-पॉइंट हार्डवेयर वाले प्रणाली में, सीपीयू एमुलेटर सरल नियत बिंदु अंकगणितीय संचालन की एक श्रृंखला का उपयोग करता है जो पूर्णांक अंकगणितीय तर्क इकाई पर चलता है।

वह सॉफ़्टवेयर जो फ़्लोटिंग-पॉइंट संक्रिया का अनुकरण करने के लिए संचालन की आवश्यक श्रृंखला को सूचीबद्ध करता है, अधिकांशत: फ़्लोटिंग-पॉइंट लाइब्रेरी (अभिकलन) में कोष्ठित किया जाता है।

एकीकृत एफपीयू
कुछ स्थितियों में, एफपीयू को विशिष्ट किया जा सकता है, और सरल फ़्लोटिंग-पॉइंट संक्रिया (मुख्य रूप से जोड़ और गुणा) और विभाजन जैसे अधिक जटिल संक्रिया के बीच विभाजित किया जा सकता है। कुछ स्थितियों में, केवल सरल संक्रिया को हार्डवेयर या सूक्ष्म कूट में लागू किया जा सकता है, जबकि अधिक जटिल संक्रिया को सॉफ्टवेयर के रूप में लागू किया जाता है।

कुछ सम्मलिता संरचना में, एसआईएमडी गणना करने के लिए एफपीयू कार्यक्षमता को एकल निर्देश, एकाधिक आंकड़ा इकाइयों के साथ जोड़ा जाता है; इसका एक उदाहरण नए इंटेल और एएमडी संसाधित्र में उपयोग किए गए x86-64 संरचना में अभिस्रवण एसआईएमडी अनुवर्ती निर्देश समुच्चय के साथ x87 निर्देशों का संवर्द्धन है।

ऐड-ऑन एफपीयू
पीडीपी-11 के कई मॉडल, जैसे पीडीपी-11/45, पीडीपी-11/34a, पीडीपी-11/44,  और पीडीपी-11/70,  फ़्लोटिंग-पॉइंट निर्देशों का समर्थन करने के लिए एक ऐड-ऑन फ़्लोटिंग-पॉइंट इकाई का समर्थन करता है। पीडीपी-11/60,  सूक्ष्मपीडीपी-11/23 और कई VAX मॉडल  ऐड-ऑन एफपीयू के बिना फ़्लोटिंग-पॉइंट निर्देशों को निष्पादित कर सकता है (सूक्ष्मपीडीपी-11/23 को इसके लिए ऐड-ऑन सूक्ष्म कूट विकल्प की आवश्यकता होती है) ), और उन निर्देशों के निष्पादन में तेजी लाने के लिए ऐड-ऑन त्वरण की पेशकश की थी।

1980 के दशक में, आईबीएम पीसी/संगत सूक्ष्म अभिकलित्रों में एफपीयू का केंद्रीय प्रक्रिया इकाई से पूरी तरह अलग होना सामान्य बात थी, और सामान्यत: इसे वैकल्पिक ऐड-ऑन के रूप में बेचा जाता था। इसे केवल तभी खरीदा जाएगा जब गणित-गहन कार्यक्रमों को तेज़ करने या सक्षम करने के लिए आवश्यक हो।

आईबीएम पीसी, आईबीएम पर्सनल अभिकलित्र एक्सटी, और 8088 या 8086 पर आधारित अधिकांश सुसंगत में वैकल्पिक 8087 सहसंसाधित्र के लिए एक सॉकेट था। आईबीएम पर्सनल अभिकलित्र/एटी और इंटेल 80286-आधारित प्रणाली सामान्यत: x87#80287 और इंटेल 80386|80386/80386SX-आधारित मशीनों के लिए सॉकेट किए गए थे। – क्रमशः x87#80387 और इंटेल 80387SX के लिए, चूंकि प्रारंभी वाले 80287 के लिए सॉकेट किए गए थे, क्योंकि 80387 अभी तक अस्तित्व में नहीं था। अन्य कंपनियों ने इंटेल x86 श्रृंखला के लिए सह-संसाधित्र का निर्माण किया। इनमें साइरिक्स और दूर  सम्मलित थे।इनमें साइरिक्स और वीटेक सम्मलित थे। एकॉर्न कंप्यूटर्स ने अपने एआरएम संचालित आर्किमिडीज़ रेंज में सिंगल, डबल और विस्तारित परिशुद्धता प्रदान करने के लिए WE32206 को चुना था।

मोटोरोला 68000 श्रृंखला, मोटोरोला 68881 के लिए सहसंसाधक उपलब्ध थे। ये सन-3 श्रृंखला की तरह मोटोरोला 68020/मोटोरोला 68030-आधारित कार्य केंद्र  में सामान्य थे। उन्हें सामान्यत: ऐप्पल  मैकिनटोश  और कमोडोर अमिगा श्रृंखला के उच्च-अंत मॉडल में भी जोड़ा गया था, लेकिन आईबीएम पीसी-संगत प्रणाली के विपरीत, सहसंसाधित्र को जोड़ने के लिए सॉकेट निचले-अंत प्रणाली में उतने सामान्य नहीं थे।

सूक्ष्म नियंत्रक इकाइयों (एमसीयू/μCs)/ एकल बोर्ड अभिकलित्र (एसबीसी) के लिए ऐड-ऑन एफपीयू सहसंसाधित्र इकाइयां भी हैं, जो फ़्लोटिंग-पॉइंट अंकगणितीय क्षमता प्रदान करने का काम करती हैं। ये ऐड-ऑन एफपीयू होस्ट-संसाधित्र-स्वतंत्र हैं, उनकी अपनी क्रमदेशन आवश्यकताएं (गणितीय संचालन, निर्देश समुच्चय इत्यादि) होती हैं और अधिकांशत: अपने स्वयं के एकीकृत विकास वातावरण (आईडीई) के साथ प्रदान की जाती हैं।

यह भी देखें

 * अंकगणितीय तर्क इकाई (एएलयू)
 * पता निर्माण इकाई (एजीयू)
 * लोड-स्टोर इकाई
 * कॉर्डिक रूटीन का उपयोग कई एफपीयू में कार्यों को लागू करने के लिए किया जाता है लेकिन गेट गिनती में बहुत अधिक वृद्धि नहीं होती है
 * निष्पादन इकाई
 * आईईईई 754 फ़्लोटिंग-पॉइंट मानक
 * आईबीएम हेक्साडेसिमल फ़्लोटिंग पॉइंट
 * आरेखीय प्रसंस्करण इकाई
 * गुणा-संचय संचालन