आईबीएम हेक्साडेसिमल फ़्लोटिंग-पॉइंट

From Vigyanwiki

हेक्साडेसिमल फ़्लोटिंग-पॉइंट अंकगणित जिसे आईबीएम द्वारा एचएफपी कहा जाता है, इन फ़्लोटिंग-पॉइंट संख्याओं को एन्कोड करने का प्रारूप है, जिसे पहली बार आईबीएम आईबीएम सिस्टम/360 या सिस्टम/360 कंप्यूटरों पर प्रस्तुत किया गया था, और इस संरचना के आधार पर इसके बाद वाली मशीनों पर इसे समर्थित किया जाता है,[1][2][3] इसके साथ ही ऐसी मशीनें जिनका उद्देश्य सिस्टम/360 के साथ एप्लिकेशन-संगत होना आवश्यक था।[4][5]

आईईईई 754 फ़्लोटिंग पॉइंट की तुलना में, एचएफपी प्रारूप का महत्व लंबा है, और एक्सपोनेंटिएशन छोटा है। इस प्रकार की सभी एचएफपी प्रारूपों में 64 के घातांक पूर्वाग्रह के साथ घातांक के 7 बिट हैं। इस प्रतिनिधित्व में योग्य संख्याओं की सामान्यीकृत सीमा 16−65से 1663 (लगभग 5.39761 × 10−79 से 7.237005 × 1075) तक है।

इन संख्या को निम्नलिखित सूत्र के रूप में दर्शाया गया है: (−1)sign × 0.significand × 16exponent−64

एकल-परिशुद्धता 32-बिट

एक एकल परिशुद्धता या एकल-परिशुद्धता एचएफपी संख्या, जिसे आईबीएम द्वारा संक्षिप्त कहा जाता है, इनको 32-बिट वाले शब्दों में संग्रहीत किया जाता है:

1 7 24 (width in bits)
S Exp Fraction  
31 30 ... 24 23 ... 0 (bit index)*
* आईबीएम डाॅक्यूमेंटेशन बिट्स को बाएं से दाएं तक क्रमांकित करता है, जिससे कि सबसे महत्वपूर्ण बिट को बिट संख्या 0 के रूप में निर्दिष्ट किया जा सके।

इस प्रारूप में प्रारंभिक बिट को दबाया नहीं जाता है, और मूलांक (हेक्साडेसिमल) बिंदु को आईबीएम डाॅक्यूमेंट और आंकड़ों में अंश के महत्व के बाईं ओर स्थिति किया गया है।

चूँकि आधार 16 है, इस रूप में घातांक आईईईई 754 के समतुल्य से लगभग दोगुना बड़ा है, इस प्रकार बाइनरी में समान घातांक सीमा रखने के लिए 9 घातांक बिट्स की आवश्यकता होगी।

उदाहरण

मान -118.625 को एचएफपी एकल-परिशुद्धता फ़्लोटिंग-पॉइंट मान के रूप में एन्कोड करने पर विचार करें।

यह मान ऋणात्मक है, इसलिए साइन बिट 1 है।

मान 118.62510 बाइनरी में (1110110.101)2 है, यह मान मूलांक बिंदु को समय में चार बिट्स (एक हेक्साडेसिमल अंक) के बाईं ओर ले जाकर सामान्यीकृत किया जाता है, जब तक कि सबसे बायां अंक शून्य न हो जाए, जिससे (0.01110110101)2 प्राप्त होता है, जिसे शेष सबसे दाहिने अंक शून्य से भरे हुए हैं, जिससे (.0111 0110 1010 0000 0000 0000)2 का 24-बिट अंश प्राप्त होता है।

सामान्यीकृत मान ने मूलांक बिंदु को दो हेक्साडेसिमल अंकों को बाईं ओर ले जाया, जिससे 16+2 का गुणक और घातांक प्राप्त होता हैं। जिसके लिए घातांक (+2) में +64 का पूर्वाग्रह जोड़ा जाता है, जिससे +66 प्राप्त होता है, जिसका मान (100 0010)2 है.

चिह्न, घातांक प्लस पूर्वाग्रह और सामान्यीकृत अंश का संयोजन इस एन्कोडिंग का उत्पादन करता है:

S Exp Fraction  
1 100 0010 0111 0110 1010 0000 0000 0000  

दूसरे शब्दों में, प्रदर्शित संख्या −0.76A00016 × 1666 − 64 = −0.4633789… × 16+2 = −118.625 है।

सबसे बड़ी प्रतिनिधित्व योग्य संख्या

S Exp Fraction  
0 111 1111 1111 1111 1111 1111 1111 1111  

प्रदर्शित संख्या +0.FFFFFF16 × 16127 − 64 = (1 − 16−6) × 1663 ≈ +7.2370051 × 1075 है।

सबसे छोटी धनात्मक सामान्यीकृत संख्या

S Exp Fraction  
0 000 0000 0001 0000 0000 0000 0000 0000  

दर्शाई गई संख्या +0.116 × 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.016 × 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) Log10(16) ≈ 6.02) के समान हैं। इस प्रकार की एकल परिशुद्धता हेक्साडेसिमल फ्लोट को दशमलव स्ट्रिंग में परिवर्तित करने के लिए कम से कम 9 महत्वपूर्ण अंकों के लिए अर्ताथ 6 Log10(16) + 1 ≈ 8.22) की आवश्यकता होगी वापस उसी हेक्साडेसिमल फ्लोट मान में परिवर्तित करने के लिए आवश्यक हैं।

डबल-सटीक 64-बिट

दोहरी सुनिश्चितता या डबल-प्रिसिजन एचएफपी प्रारूप के लिए आईबीएम द्वारा लॉन्ग कहा जाता है, इस प्रकार लघु प्रारूप के समान है, इसके अतिरिक्त इसके कि अंश क्षेत्र व्यापक है, और डबल-प्रिसिजन संख्या डबल शब्द (8 बाइट्स) में संग्रहीत है:

1 7 56 (width in bits)
S Exp Fraction  
63 62 ... 56 55 ... 0 (bit index)*
* आईबीएम डाॅक्यूमेंटेशन बिट्स को बाएं से दाएं तक क्रमांकित करता है, जिससे कि सबसे महत्वपूर्ण बिट को बिट संख्या 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)*
* आईबीएम डाॅक्यूमेंटेशन बिट्स को बाएं से दाएं तक क्रमांकित करता है, जिससे कि सबसे महत्वपूर्ण बिट को बिट संख्या 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 में मिलीकोड का उपयोग करके[10] और 2008 में हार्डवेयर में आईबीएम सिस्टम 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]

सिस्टम जो आईबीएम फ़्लोटिंग-पॉइंट प्रारूप का उपयोग करते हैं

यह भी देखें

संदर्भ

  1. IBM System/360 Principles of Operation, IBM Publication A22-6821-6, Seventh Edition (January 13, 1967), pp.41-50
  2. IBM System/370 Principles of Operation, IBM Publication GA22-7000-4, Fifth Edition (September 1, 1975), pp.157-170
  3. z/Architecture Principles of Operation, IBM Publication SA22-7832-01, Second Edition (October, 2001), chapter 9 ff.
  4. Xerox Data Systems (Oct 1973). Xerox SIGMA 7 Computer Reference Manyal. p. 48. Retrieved Nov 13, 2020.
  5. RCA (Mar 1966). Spectra 70 processors: 35 45 55 (PDF). p. 184. Retrieved Nov 13, 2020.
  6. 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.
  7. ESA/390 Enhanced Floating Point Support: An Overview
  8. 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.
  9. 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.
  10. 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.
  11. 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.
  12. z/Architecture Principles of Operation
  13. 13.0 13.1 "एसएएस ट्रांसपोर्ट (एक्सपोर्ट) प्रारूप में डेटा सेट का रिकॉर्ड लेआउट" (PDF). Retrieved September 18, 2014.
  14. "एसईजी वाई रेव 1 डेटा एक्सचेंज प्रारूप, रिलीज़ 1.0" (PDF). May 2002.
  15. "पैकेज 'एसएएसएक्सपोर्ट'" (PDF). March 10, 2020.

अग्रिम पठन