आईबीएम हेक्साडेसिमल फ़्लोटिंग-पॉइंट
Floating-point formats |
---|
IEEE 754 |
|
Other |
हेक्साडेसिमल फ़्लोटिंग-पॉइंट अंकगणित (जिसे अब आईबीएम द्वारा एचएफपी कहा जाता है) फ़्लोटिंग-पॉइंट संख्याओं को एन्कोड करने का प्रारूप है जिसे पहली बार आईबीएम आईबीएम सिस्टम/360|सिस्टम/360 कंप्यूटरों पर पेश किया गया था, और उस आर्किटेक्चर के आधार पर बाद की मशीनों पर समर्थित है,[1][2][3] साथ ही ऐसी मशीनें जिनका उद्देश्य सिस्टम/360 के साथ एप्लिकेशन-संगत होना था।[4][5] आईईईई 754 फ़्लोटिंग पॉइंट की तुलना में, एचएफपी प्रारूप का महत्व लंबा है, और एक्सपोनेंटिएशन छोटा है। सभी एचएफपी प्रारूपों में 64 के घातांक पूर्वाग्रह के साथ घातांक के 7 बिट हैं। प्रतिनिधित्व योग्य संख्याओं की सामान्यीकृत सीमा 16 से है−65से 1663 (लगभग 5.39761 × 10−79से 7.237005 × 1075).
संख्या को निम्नलिखित सूत्र के रूप में दर्शाया गया है: (−1)चिन्ह× 0.significand × 16प्रतिपादक−64.
एकल-परिशुद्धता 32-बिट
एक एकल परिशुद्धता|एकल-परिशुद्धता एचएफपी संख्या (जिसे आईबीएम द्वारा संक्षिप्त कहा जाता है) को 32-बिट शब्द में संग्रहीत किया जाता है:
1 7 24 (width in bits) S Exp Fraction 31 30 ... 24 23 ... 0 (bit index)* * IBM documentation numbers the bits from left to right, so that the most significant bit is designated as bit number 0.
इस प्रारूप में प्रारंभिक बिट को दबाया नहीं जाता है, और मूलांक (हेक्साडेसिमल) बिंदु महत्व के बाईं ओर सेट है (आईबीएम दस्तावेज़ और आंकड़ों में अंश)।
चूँकि आधार 16 है, इस रूप में घातांक आईईईई 754 के समतुल्य से लगभग दोगुना बड़ा है, बाइनरी में समान घातांक सीमा रखने के लिए, 9 घातांक बिट्स की आवश्यकता होगी।
उदाहरण
मान -118.625 को एचएफपी एकल-परिशुद्धता फ़्लोटिंग-पॉइंट मान के रूप में एन्कोड करने पर विचार करें।
मान ऋणात्मक है, इसलिए साइन बिट 1 है।
मान 118.62510 बाइनरी में 1110110.101 है2. यह मान मूलांक बिंदु को समय में चार बिट्स (एक हेक्साडेसिमल अंक) के बाईं ओर ले जाकर सामान्यीकृत किया जाता है जब तक कि सबसे बायां अंक शून्य न हो जाए, जिससे 0.01110110101 प्राप्त होता है2. शेष सबसे दाहिने अंक शून्य से भरे हुए हैं, जिससे .0111 0110 1010 0000 0000 0000 का 24-बिट अंश प्राप्त होता है2.
सामान्यीकृत मान ने मूलांक बिंदु को दो हेक्साडेसिमल अंकों को बाईं ओर ले जाया, जिससे 16 का गुणक और घातांक प्राप्त हुआ+2. घातांक (+2) में +64 का पूर्वाग्रह जोड़ा जाता है, जिससे +66 प्राप्त होता है, जो 100 0010 है2.
चिह्न, घातांक प्लस पूर्वाग्रह और सामान्यीकृत अंश का संयोजन इस एन्कोडिंग का उत्पादन करता है:
S Exp Fraction 1 100 0010 0111 0110 1010 0000 0000 0000
दूसरे शब्दों में, प्रदर्शित संख्या −0.76A000 है16 × 1666 − 64 = −0.4633789… × 16+2 = −118.625
सबसे बड़ी प्रतिनिधित्व योग्य संख्या
S Exp Fraction 0 111 1111 1111 1111 1111 1111 1111 1111
प्रदर्शित संख्या +0.FFFFFF है16 × 16127 − 64 = (1 − 16−6) × 1663 ≈ +7.2370051 × 1075
सबसे छोटी सकारात्मक सामान्यीकृत संख्या
S Exp Fraction 0 000 0000 0001 0000 0000 0000 0000 0000
दर्शाई गई संख्या +0.1 है16 × 16 − 64 = 16−1×16−64 ≈ +5.397605 × 10−79.
शून्य
S Exp Fraction 0 000 0000 0000 0000 0000 0000 0000 0000
शून्य (0.0) को सभी शून्य बिट्स के रूप में सामान्यीकृत रूप में दर्शाया जाता है, जो अंकगणितीय रूप से मान +0.0 है16 × 16 − 64 = +0 × 16−64 ≈ +0.000000 × 10−79 = 0. ऑल-बिट्स शून्य के अंश को देखते हुए, सकारात्मक या नकारात्मक साइन बिट और गैर-शून्य पक्षपाती घातांक का कोई भी संयोजन अंकगणितीय रूप से शून्य के बराबर मान प्राप्त करेगा। हालाँकि, सीपीयू हार्डवेयर द्वारा शून्य के लिए उत्पन्न सामान्यीकृत रूप सभी-बिट्स शून्य है। यह तीनों फ़्लोटिंग-पॉइंट सटीक प्रारूपों के लिए सत्य है। अन्य घातांक मानों के साथ जोड़ या घटाव परिणाम में सटीकता खो सकता है।
परिशुद्धता मुद्दे
चूँकि आधार 16 है, बाइनरी महत्व में अधिकतम तीन अग्रणी शून्य बिट हो सकते हैं। इसका मतलब है कि जब संख्या को बाइनरी में परिवर्तित किया जाता है, तो सटीकता के कम से कम 21 बिट हो सकते हैं। डगमगाते परिशुद्धता प्रभाव के कारण, इसके कारण कुछ गणनाएँ बहुत ग़लत हो सकती हैं। इसकी काफी आलोचना हुई.[6]
अशुद्धि का अच्छा उदाहरण दशमलव मान 0.1 का प्रतिनिधित्व है। इसका कोई सटीक बाइनरी या हेक्साडेसिमल प्रतिनिधित्व नहीं है। हेक्साडेसिमल प्रारूप में, इसे 0.19999999 के रूप में दर्शाया गया है...16 या 0.0001 1001 1001 1001 1001 1001 1001...2, वह है:
S Exp Fraction 0 100 0000 0001 1001 1001 1001 1001 1010
इसमें केवल 21 बिट्स हैं, जबकि बाइनरी संस्करण में 24 बिट्स परिशुद्धता है।
परिशुद्धता के छह हेक्साडेसिमल अंक लगभग छह दशमलव अंकों के बराबर हैं (यानी (6 - 1) लॉग10(16) ≈ 6.02). एकल परिशुद्धता हेक्साडेसिमल फ्लोट को दशमलव स्ट्रिंग में बदलने के लिए कम से कम 9 महत्वपूर्ण अंकों (यानी 6 लॉग) की आवश्यकता होगी10(16) + 1 ≈ 8.22) वापस उसी हेक्साडेसिमल फ्लोट मान में परिवर्तित करने के लिए।
डबल-सटीक 64-बिट
दोहरी सुनिश्चितता |डबल-प्रिसिजन एचएफपी प्रारूप (आईबीएम द्वारा लॉन्ग कहा जाता है) लघु प्रारूप के समान है, सिवाय इसके कि अंश क्षेत्र व्यापक है और डबल-प्रिसिजन संख्या डबल शब्द (8 बाइट्स) में संग्रहीत है:
1 7 56 (width in bits) S Exp Fraction 63 62 ... 56 55 ... 0 (bit index)* * IBM documentation numbers the bits from left to right, so that the most significant bit is designated as bit number 0.
इस प्रारूप का प्रतिपादक संबंधित आईईईई बाइनरी प्रारूप के रूप में केवल चौथाई रेंज को कवर करता है।
परिशुद्धता के 14 हेक्साडेसिमल अंक लगभग 17 दशमलव अंकों के बराबर हैं। डबल प्रिसिजन हेक्साडेसिमल फ्लोट को दशमलव स्ट्रिंग में बदलने के लिए वापस उसी हेक्साडेसिमल फ्लोट मान में बदलने के लिए कम से कम 18 महत्वपूर्ण अंकों की आवश्यकता होगी।
विस्तारित-परिशुद्धता 128-बिट
आईबीएम द्वारा विस्तारित-परिशुद्धता कहा जाता है, चौगुनी परिशुद्धता फ़्लोटिंग-पॉइंट प्रारूप | चौगुनी-परिशुद्धता एचएफपी प्रारूप को सिस्टम/370 श्रृंखला में जोड़ा गया था और कुछ एस/360 मॉडल (एस/360-85, -195, और अन्य विशेष अनुरोध पर या ओएस सॉफ्टवेयर द्वारा सिम्युलेटेड) पर उपलब्ध था। विस्तारित-सटीक अंश फ़ील्ड व्यापक है, और विस्तारित-सटीक संख्या को दो दोहरे शब्दों (16 बाइट्स) के रूप में संग्रहीत किया जाता है:
High-order part 1 7 56 (width in bits) S Exp Fraction (high-order 14 digits) 127 126 ... 120 119 ... 64 (bit index)* Low-order part 8 56 (width in bits) Unused Fraction (low-order 14 digits) 63 ... 56 55 ... 0 (bit index)* * IBM documentation numbers the bits from left to right, so that the most significant bit is designated as bit number 0.
परिशुद्धता के 28 हेक्साडेसिमल अंक लगभग 32 दशमलव अंकों के बराबर हैं। विस्तारित परिशुद्धता एचएफपी को दशमलव स्ट्रिंग में बदलने के लिए उसी एचएफपी मान में वापस बदलने के लिए कम से कम 35 महत्वपूर्ण अंकों की आवश्यकता होगी। निम्न-क्रम वाले भाग में संग्रहीत घातांक उच्च-क्रम वाले भाग से 14 कम है, जब तक कि यह शून्य से कम न हो।
अंकगणितीय परिचालन
उपलब्ध अंकगणितीय परिचालन जोड़ और घटाव, सामान्यीकृत और असामान्यीकृत दोनों हैं, और तुलना करते हैं। घातांक अंतर के आधार पर पूर्वसामान्यीकरण किया जाता है। पूर्व-सामान्यीकृत असामान्य मानों को गुणा और विभाजित करें, और परिणाम को गार्ड अंक के बाद छोटा करें। दो से भाग को सरल बनाने के लिए आधा ऑपरेशन है। ईएसए/390 से शुरू होकर, वर्गमूल ऑपरेशन होता है। सटीक हानि से बचने के लिए सभी ऑपरेशनों में हेक्साडेसिमल गार्ड अंक होता है। अधिकांश अंकगणितीय ऑपरेशन साधारण पॉकेट कैलकुलेटर की तरह छोटे-छोटे होते हैं। इसलिए, 1 − 16−8 = 1. इस मामले में, परिणाम शून्य से पूर्णांकित है।[7]
आईबीएम मेनफ्रेम पर आईईईई 754
1998 में S/390 G5 से शुरुआत,[8] आईबीएम मेनफ्रेम में आईईईई बाइनरी फ़्लोटिंग-पॉइंट इकाइयां भी शामिल हैं जो फ़्लोटिंग-पॉइंट अंकगणित के लिए आईईईई 754|आईईईई 754 मानक के अनुरूप हैं। IEEE दशमलव फ़्लोटिंग-पॉइंट को IBM सिस्टम z9 GA2 में जोड़ा गया था[9] 2007 में millicode का उपयोग करके[10] और 2008 में हार्डवेयर में IBM System z10 तक।[11] आधुनिक आईबीएम मेनफ्रेम 3 हेक्साडेसिमल (एचएफपी) प्रारूप, 3 बाइनरी (बीएफपी) प्रारूप और 3 दशमलव (डीएफपी) प्रारूप के साथ तीन फ्लोटिंग-पॉइंट रेडिस का समर्थन करते हैं। प्रति कोर दो फ़्लोटिंग-पॉइंट इकाइयाँ हैं; एचएफपी और बीएफपी का समर्थन करता है, और डीएफपी का समर्थन करता है; रजिस्टर फ़ाइल है, एफपीआर, जिसमें सभी 3 प्रारूप हैं। 2015 में IBM_z13_(माइक्रोप्रोसेसर) से शुरुआत करते हुए, प्रोसेसर ने वेक्टर सुविधा जोड़ी है जिसमें 32 वेक्टर रजिस्टर शामिल हैं, प्रत्येक 128 बिट चौड़ा है; वेक्टर रजिस्टर में दो 64-बिट या चार 32-बिट फ़्लोटिंग-पॉइंट नंबर हो सकते हैं।[12] पारंपरिक 16 फ़्लोटिंग-पॉइंट रजिस्टरों को नए वेक्टर रजिस्टरों पर मढ़ा जाता है, इसलिए कुछ डेटा को पारंपरिक फ़्लोटिंग-पॉइंट निर्देशों या नए वेक्टर निर्देशों के साथ हेरफेर किया जा सकता है।
विशेष उपयोग
IBM HFP प्रारूप का उपयोग इसमें किया जाता है:
- नई औषधि अनुप्रयोग (एनडीए) अध्ययन प्रस्तुतियाँ के लिए खाद्य एवं औषधि प्रशासन (एफडीए) द्वारा आवश्यक एसएएस 5 परिवहन फ़ाइलें (.एक्सपीटी),[13]
- मौसम भविष्यवाणी मॉडल के आउटपुट का आदान-प्रदान करने के लिए जीआरआईबी (जीआरआईडेड बाइनरी) डेटा फ़ाइलें (वर्तमान संस्करण में आईईईई एकल-सटीक फ़्लोटिंग-पॉइंट प्रारूप),
- GDSII (ग्राफ़िक डेटाबेस सिस्टम II) प्रारूप फ़ाइलें (ओपन आर्टवर्क सिस्टम इंटरचेंज स्टैंडर्ड प्रतिस्थापन है), और
- SEG Y (सोसायटी ऑफ एक्सप्लोरेशन जियोफिजिसिस्ट Y) प्रारूप फ़ाइलें (IEEE एकल-परिशुद्धता फ़्लोटिंग-पॉइंट प्रारूप 2002 में प्रारूप में जोड़ा गया था)।[14]
चूंकि आईबीएम एचएफपी प्रारूप का उपयोग करने वाला हार्डवेयर का एकमात्र शेष प्रदाता है, और उस प्रारूप का समर्थन करने वाली एकमात्र आईबीएम मशीनें उनके मेनफ्रेम हैं, कुछ फ़ाइल प्रारूपों को इसकी आवश्यकता होती है। अपवाद एसएएस 5 ट्रांसपोर्ट फ़ाइल प्रारूप है, जिसकी एफडीए को आवश्यकता होती है; उस प्रारूप में, फ़ाइल में सभी फ़्लोटिंग-पॉइंट नंबर आईबीएम मेनफ़्रेम प्रतिनिधित्व का उपयोग करके संग्रहीत किए जाते हैं। [...] अधिकांश प्लेटफ़ॉर्म फ़्लोटिंग-पॉइंट नंबरों के लिए IEEE प्रतिनिधित्व का उपयोग करते हैं। [...] ट्रांसपोर्ट फ़ाइलों को पढ़ने और/या लिखने में आपकी सहायता के लिए, हम आईईईई प्रतिनिधित्व (या तो बड़े एंडियन या छोटे एंडियन) से ट्रांसपोर्ट प्रतिनिधित्व और फिर से वापस परिवर्तित करने के लिए रूटीन प्रदान कर रहे हैं।[13]आईबीएम के प्रारूप के लिए कोड जीएनयू लेसर जनरल पब्लिक लाइसेंस|एलजीपीएलवी2.1 के तहत भी उपलब्ध है।[15]
सिस्टम जो आईबीएम फ़्लोटिंग-पॉइंट प्रारूप का उपयोग करते हैं
- आईबीएम सिस्टम/360 और उत्तराधिकारी
- आरसीए स्पेक्ट्रा 70
- इंग्लिश इलेक्ट्रिक सिस्टम 4
- GEC 4000 श्रृंखला के मिनी कंप्यूटर
- इंटरडेटा 16-बिट और 32-बिट कंप्यूटर
- एसडीएस सिग्मा श्रृंखला
- डेटा जनरल मिनी कंप्यूटर
- आईसीएल 2900 सीरीज के कंप्यूटर
- सीमेंस 7.700 और 7.500 श्रृंखला मेनफ्रेम और उत्तराधिकारी
यह भी देखें
- आईईईई 754|फ़्लोटिंग-पॉइंट अंकगणित के लिए आईईईई 754 मानक
- माइक्रोसॉफ्ट बाइनरी फॉर्मेट
संदर्भ
- ↑ IBM System/360 Principles of Operation, IBM Publication A22-6821-6, Seventh Edition (January 13, 1967), pp.41-50
- ↑ IBM System/370 Principles of Operation, IBM Publication GA22-7000-4, Fifth Edition (September 1, 1975), pp.157-170
- ↑ z/Architecture Principles of Operation, IBM Publication SA22-7832-01, Second Edition (October, 2001), chapter 9 ff.
- ↑ Xerox Data Systems (Oct 1973). Xerox SIGMA 7 Computer Reference Manyal. p. 48. Retrieved Nov 13, 2020.
- ↑ RCA (Mar 1966). Spectra 70 processors: 35 45 55 (PDF). p. 184. Retrieved Nov 13, 2020.
- ↑ Warren Jr., Henry S. (2013) [2002]. "The Distribution of Leading Digits". हैकर की प्रसन्नता (2 ed.). Addison Wesley - Pearson Education, Inc. pp. 385–387. ISBN 978-0-321-84268-8. 0-321-84268-5.
- ↑ ESA/390 Enhanced Floating Point Support: An Overview
- ↑ Schwarz, E. M.; Krygowski, C. A. (September 1999). "The S/390 G5 floating-point unit". IBM Journal of Research and Development. 43 (5.6): 707–721. doi:10.1147/rd.435.0707.
- ↑ Duale, A. Y.; Decker, M. H.; Zipperer, H.-G.; Aharoni, M.; Bohizic, T. J. (January 2007). "Decimal floating-point in z9: An implementation and testing perspective". IBM Journal of Research and Development. 51 (1.2): 217–227. CiteSeerX 10.1.1.123.9055. doi:10.1147/rd.511.0217.
- ↑ Heller, L. C.; Farrell, M. S. (May 2004). "IBM zSeries प्रोसेसर में मिलिकोड". IBM Journal of Research and Development. 48 (3.4): 425–434. CiteSeerX 10.1.1.641.1164. doi:10.1147/rd.483.0425.
- ↑ Schwarz, E. M.; Kapernick, J. S.; Cowlishaw, M. F. (January 2009). "IBM System z10 प्रोसेसर पर दशमलव फ़्लोटिंग-पॉइंट समर्थन". IBM Journal of Research and Development. 53 (1): 4:1–4:10. doi:10.1147/JRD.2009.5388585.
- ↑ z/Architecture Principles of Operation
- ↑ 13.0 13.1 "एसएएस ट्रांसपोर्ट (एक्सपोर्ट) प्रारूप में डेटा सेट का रिकॉर्ड लेआउट" (PDF). Retrieved September 18, 2014.
- ↑ "एसईजी वाई रेव 1 डेटा एक्सचेंज प्रारूप, रिलीज़ 1.0" (PDF). May 2002.
- ↑ "पैकेज 'एसएएसएक्सपोर्ट'" (PDF). March 10, 2020.
अग्रिम पठन
- Sweeney, D. W. (1965). "An analysis of floating-point addition". IBM Systems Journal. 4 (1): 31–42. doi:10.1147/sj.41.0031.
- Tomayko, J. (Summer 1995). "System 360 Floating-Point Problems". IEEE Annals of the History of Computing. 17 (2): 62–63. doi:10.1109/MAHC.1995.10006. ISSN 1058-6180.
- Harding, L. J. (1966), "Idiosyncrasies of System/360 Floating-Point", Proceedings of SHARE 27, August 8–12, 1966, Presented at SHARE XXVII, Toronto, Canada
- Harding, L. J. (1966), "Modifications of System/360 Floating Point", SHARE Secretary Distribution, pp. 11–27, SSD 157, C4470
- Anderson, Stanley F.; Earle, John G.; Goldschmidt, Robert Elliott; Powers, Don M. (January 1967). "The IBM System/360 Model 91: Floating-Point Execution Unit". IBM Journal of Research and Development. 11 (1): 34–53. doi:10.1147/rd.111.0034.
- Padegs, A. (1968). "Structural aspects of the System/360 Model 85, III: Extensions to floating-point architecture". IBM Systems Journal. 7 (1): 22–29. doi:10.1147/sj.71.0022.
- Schwarz, E. M.; Sigal, L.; McPherson, T. J. (July 1997). "CMOS floating-point unit for the S/390 Parallel Enterprise Server G4". IBM Journal of Research and Development. 41 (4.5): 475–488. doi:10.1147/rd.414.0475.