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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

यह भी देखें

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