गणितीय एवं तार्किक इकाई



संगणना में, अंकगणितीय तर्क इकाई (ALU) एक संयोजी डिजिटल परिपथ है जो पूर्णांक द्विआधारी संख्याओं पर अंकगणितीय और बिटवाइज़ संक्रिया करता है।  यह अस्थायी-दशमलव संख्याओं पर कार्यरत अस्थायी-दशमलव इकाई (FPU) के विपरीत है। यह संगणक की केंद्रीय प्रसंस्करण इकाई (CPU), FPUs, और ग्राफिक्स प्रसंस्करण इकाई (GPUs) सहित कई प्रकार के संगणना परिपथों का एक मूल निर्माण खंड है।

ALU के लिए इनपुट वह डेटा होता है जिस पर संक्रिया की जाती है, संकार्य कहलाते है, और एक कोड जो निष्पादित संक्रिया का संकेत देता है, ALU का आउटपुट निष्पादित संक्रिया का परिणाम होता है। कई डिज़ाइनों में, ALU में स्थिति इनपुट या आउटपुट, या दोनों होते हैं, जो ALU और बाहरी स्थिति रजिस्टरों के बीच क्रमशः पूर्व संक्रिया या वर्तमान संक्रिया के बारे में जानकारी देते हैं।

सिग्नल
ALU में विभिन्न प्रकार के इनपुट और आउटपुट नेट होते हैं, जो कि ALU और बाहरी परिपथिकी के बीच डिजिटल सिग्नल को संप्रेषित करने के लिए उपयोग किए जाने वाले विद्युत चालक होते हैं। जब ALU कार्यरत होता है, तो बाहरी परिपथ ALU इनपुट पर सिग्नल लागू करते हैं और प्रतिक्रिया में, ALU अपने आउटपुट के माध्यम से बाहरी परिपथिकी को सिग्नल देता है और सूचित करता है।

डेटा
एक बेसिक ALU में तीन समानांतर डेटा बसें होती हैं जिनमें दो इनपुट संकार्य (A और B) और परिणाम आउटपुट (Y) होता है। प्रत्येक डेटा बस सिग्नल का एक समूह होता है जो एक द्विआधारी पूर्णांक संख्या व्यक्त करता है। सामान्यतः A, B और Y बस आयाम (प्रत्येक बस में सिग्नल की संख्या) समान होता है और बाहरी परिपथिकी (उदाहरण के लिए, संपुटीकृत (इनकैप्सुलेटिंग) CPU या अन्य प्रोसेसर) के मूल शब्द आकार में समान होते है।

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

आउटपुट
स्थिति आउटपुट विभिन्न व्यक्तिगत संकेत हैं जो वर्तमान ALU संक्रिया के परिणाम के बारे में पूरक जानकारी देते हैं। सामान्य प्रयोजन के ALU में आमतौर पर स्थिति संकेत होते हैं जैसे:
 * कैरी-आउट, जो एक अतिरिक्त संक्रिया के परिणामस्वरूप ले जाने का संदेश देता है, एक घटाव संक्रिया से उत्पन्न उधार, या द्विआधारी शिफ्ट संक्रिया के परिणामस्वरूप अतिप्रवाह बिट।
 * शून्य, जो इंगित करता है कि Y के सभी बिट लॉजिक शून्य हैं।
 * ऋणात्मक, जो एक अंकगणितीय संक्रिया के परिणाम को इंगित करता है ऋणात्मक है।
 * अतिप्रवाह, जो इंगित करता है कि एक अंकगणितीय संक्रिया का परिणाम Y की संख्यात्मक सीमा से अधिक हो गया है।
 * समता, जो इंगित करती है कि वाई में बिट्स की एक सम या विषम संख्या तर्क एक है।

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

इनपुट
स्थिति इनपुट एक संक्रिया करते समय ALU को अतिरिक्त जानकारी उपलब्ध कराने की अनुमति देते हैं। आमतौर पर, यह एक एकल "कैरी-इन" बिट है जो पिछले ALU संक्रिया से संग्रहीत कैरी-आउट है।

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

सामान्य तौर पर, बाहरी परिपथिकी एक ALU को उसके इनपुट पर सिग्नल लगाकर नियंत्रित करती है। आमतौर पर, बाहरी परिपथिकी ALU संक्रिया को नियंत्रित करने के लिए अनुक्रमिक तर्क को नियोजित करती है, जो कि ALU आउटपुट को सबसे खराब स्थिति में व्यवस्थित करने के लिए पर्याप्त समय सुनिश्चित करने के लिए पर्याप्त रूप से कम आवृत्ति के घड़ी संकेत द्वारा संचालित होती है।

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

कार्य
कई मूल अंकगणित और बिटवाइज़ लॉजिक फ़ंक्शंस आमतौर पर ALU द्वारा समर्थित होते हैं। मूल, सामान्य उद्देश्य वाले ALU में आमतौर पर इन परिचालनों को उनके प्रदर्शनों की सूची में शामिल किया जाता है:

अंकगणितीय संक्रिया

 * जोड़ें: A और B को जोड़ दिया गया है और योग Y और कैरी-आउट पर दिखाई देता है।
 * कैरी के साथ जोड़ें: A, B और कैरी-इन का योग है और योग Y और कैरी-आउट पर दिखाई देता है।
 * घटाना: B को A (या इसके विपरीत) से घटाया जाता है और अंतर Y और कैरी-आउट में दिखाई देता है। इस फ़ंक्शन के लिए, कैरी-आउट प्रभावी रूप से "उधार" सूचक है। इस संक्रिया का उपयोग A और B के परिमाणों की तुलना करने के लिए भी किया जा सकता है; ऐसे मामलों में प्रोसेसर द्वारा Y आउटपुट को अनदेखा किया जा सकता है, जो केवल संक्रिया के परिणामस्वरूप स्थिति बिट्स (विशेष रूप से शून्य और नकारात्मक) में रुचि रखता है।
 * उधार के साथ घटाना: B को उधार (कैरी-इन) के साथ A (या इसके विपरीत) से घटाया जाता है और अंतर Y और कैरी-आउट (उधार लेना) पर दिखाई देता है।
 * दो का पूरक (नकारात्मक): A (या B) को शून्य से घटाया जाता है और अंतर Y पर प्रकट होता है।
 * वेतन वृद्धि: A (या B) में एक की वृद्धि की जाती है और परिणामी मान Y पर दिखाई देता है।
 * कमी: A (या B) को एक से घटा दिया जाता है और परिणामी मान Y पर प्रदर्शित होता है।
 * पास से गुजरना: ए (या बी) के सभी बिट्स वाई पर असंशोधित दिखाई देते हैं। यह संक्रिया आमतौर पर संकार्य की समानता निर्धारित करने के लिए या शून्य या नकारात्मक है, या प्रोसेसर रजिस्टर में संकार्य लोड करने के लिए उपयोग किया जाता है।

बिटवाइज़ लॉजिकल ऑपरेशंस

 * AND: A और B का बिटवाइज़ AND Y पर दिखाई देता है।
 * OR: बिटवाइज़ OR A और B का Y पर प्रकट होता है।
 * Exclusive-OR: A और B का बिटवाइज़ XOR Y पर दिखाई देता है।
 * लोगों का पूरक: A (या B) के सभी बिट उल्टे हैं और Y पर दिखाई देते हैं।

बिट शिफ्ट संक्रिया
ALU शिफ्ट ऑपरेशंस संकार्य A (या B) को बाएं या दाएं (ऑपकोड के आधार पर) स्थानांतरित करने का कारण बनता है और स्थानांतरित संकार्य वाई पर दिखाई देता है। सरल ALU आमतौर पर संकार्य को केवल एक बिट स्थिति से स्थानांतरित कर सकते हैं, जबकि अधिक जटिल ALU बैरल शिफ्टर्स को नियोजित करते हैं जो उन्हें एक संक्रिया में बिट्स की मनमानी संख्या द्वारा संकार्य को स्थानांतरित करने की अनुमति देते हैं। सभी सिंगल-बिट शिफ्ट संक्रियाओं में, संकार्य से बाहर शिफ्ट किया गया बिट कैरी-आउट पर दिखाई देता है; संकार्य में शिफ्ट किए गए बिट का मान शिफ्ट के प्रकार पर निर्भर करता है।
 * अंकगणितीय बदलाव: संकार्य को दो के पूरक पूर्णांक के रूप में माना जाता है, जिसका अर्थ है कि सबसे महत्वपूर्ण बिट एक "चिह्न" बिट है और संरक्षित है।
 * लॉजिकल शिफ्ट: लॉजिक जीरो को संकार्य में शिफ्ट किया जाता है। यह अहस्ताक्षरित पूर्णांकों को स्थानांतरित करने के लिए प्रयोग किया जाता है।
 * घुमाएं: संकार्य को बिट्स के एक गोलाकार बफर के रूप में माना जाता है, इसलिए इसके कम से कम और सबसे महत्वपूर्ण बिट्स प्रभावी रूप से निकट होते हैं।
 * कैरी के माध्यम से घुमाएँ: कैरी बिट और संकार्य को सामूहिक रूप से बिट्स के एक गोलाकार बफर के रूप में माना जाता है।

बहु-सटीक अंकगणित
पूर्णांक अंकगणितीय संगणनाओं में, बहु-सटीक अंकगणित एक एल्गोरिथ्म है जो पूर्णांक पर संचालित होता है जो ALU शब्द आकार से बड़ा होता है। ऐसा करने के लिए, एल्गोरिथ्म प्रत्येक संकार्य को ALU-आकार के टुकड़ों के एक क्रमबद्ध संग्रह के रूप में मानता है, जो कि सबसे महत्वपूर्ण (एमएस) से कम से कम महत्वपूर्ण (एलएस) या इसके विपरीत व्यवस्थित होता है। उदाहरण के लिए, 8-बिट ALU के मामले में, 24-बिट पूर्णांक को तीन 8-बिट अंशों के संग्रह के रूप में माना जाएगा:   (एमएस), , तथा   (एलएस)। चूंकि एक टुकड़े का आकार ALU शब्द आकार से बिल्कुल मेल खाता है, इसलिए ALU सीधे संकार्य के इस "टुकड़े" पर काम कर सकता है।

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

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

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

बिटवाइज़ लॉजिकल ऑपरेशंस (जैसे, लॉजिकल एंड, लॉजिकल OR) में, संकार्य अंशों को किसी भी मनमाने क्रम में संसाधित किया जा सकता है क्योंकि प्रत्येक आंशिक केवल संबंधित संकार्य अंशों पर निर्भर करता है (पिछले ALU संक्रिया से संग्रहीत कैरी बिट को नजरअंदाज कर दिया जाता है)।

जटिल संक्रिया
हालांकि एक ALU को जटिल कार्यों को करने के लिए डिज़ाइन किया जा सकता है, जिसके परिणामस्वरूप उच्च परिपथ जटिलता, लागत, बिजली की खपत और बड़े आकार में कई मामलों में यह अव्यवहारिक होता है। नतीजतन, ALU अक्सर सरल कार्यों तक सीमित होते हैं जिन्हें बहुत उच्च गति (यानी, बहुत कम प्रसार विलंब) पर निष्पादित किया जा सकता है, और बाहरी प्रोसेसर परिपथिकी सरल ALU संक्रिया के अनुक्रम को व्यवस्थित करके जटिल कार्यों को करने के लिए जिम्मेदार है।

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

उपरोक्त कार्यान्वयन सबसे तेज़ और सबसे महंगे से सबसे धीमे और कम से कम खर्चीले में परिवर्तित होते हैं। वर्गमूल की गणना सभी मामलों में की जाती है, लेकिन साधारण ALU वाले प्रोसेसर को गणना करने में अधिक समय लगेगा क्योंकि कई ALU संक्रिया अवश्य किए जाने चाहिए।

कार्यान्वयन
एक ALU को आमतौर पर या तो एक स्टैंड-अलोन एकीकृत परिपथ (IC) के रूप में लागू किया जाता है, जैसे कि 74181, या अधिक जटिल IC के भाग के रूप में। बाद के मामले में, एक ALU को आमतौर पर VHDL, वेरिलोग या कुछ अन्य हार्डवेयर विवरण भाषा में लिखे गए विवरण से संश्लेषित करके इसे तत्काल किया जाता है। उदाहरण के लिए, निम्न VHDL कोड एक बहुत ही सरल 8 बिट ALU का वर्णन करता है:

A CODE BOX WILL BE ADDED HERE

इतिहास
गणितज्ञ जॉन वॉन न्यूमैन ने EDVAC नामक एक नए संगणक की नींव पर एक रिपोर्ट में 1945 में ALU अवधारणा का प्रस्ताव रखा था।

इलेक्ट्रॉनिक परिपथिकी की लागत, आकार और बिजली की खपत सूचना युग के बचपन के दौरान अपेक्षाकृत अधिक थी। नतीजतन, सभी सीरियल संगणक और कई शुरुआती संगणक, जैसे कि पीडीपी-8 में एक साधारण ALU था जो एक समय में एक डेटा बिट पर संचालित होता था, हालांकि वे अक्सर प्रोग्रामर को एक व्यापक शब्द आकार प्रस्तुत करते थे। एक से अधिक असतत एकल-बिट ALU परिपथ वाले सबसे शुरुआती संगणकों में से एक 1948 का बवंडर I था, जिसने सोलह ऐसी "गणित इकाइयों" को नियोजित किया था ताकि इसे 16-बिट शब्दों पर संचालित किया जा सके।

1967 में, फेयरचाइल्ड ने एक एकीकृत परिपथ के रूप में लागू किया गया पहला ALU, फेयरचाइल्ड 3800 पेश किया, जिसमें संचायक के साथ आठ-बिट ALU शामिल था। अन्य एकीकृत-परिपथ ALU जल्द ही उभरे, जिनमें चार-बिट ALU जैसे एएम2901 और 74181 शामिल थे। ये उपकरण आम तौर पर "बिट स्लाइस" सक्षम थे, जिसका अर्थ है कि उनके पास "आगे देखो" सिग्नल थे जो एक व्यापक शब्द आकार के साथ एक ALU बनाने के लिए एकाधिक इंटरकनेक्टेड ALU चिप्स के उपयोग की सुविधा प्रदान करते थे। ये उपकरण शीघ्र ही लोकप्रिय हो गए और बिट-स्लाइस मिनी संगणकों में व्यापक रूप से उपयोग किए गए।

माइक्रोप्रोसेसर 1970 के दशक की शुरुआत में दिखाई देने लगे थे। भले ही ट्रांजिस्टर छोटे हो गए थे, लेकिन पूर्ण-शब्द-चौड़ाई वाले ALU के लिए अक्सर अपर्याप्त डाई स्पेस था और इसके परिणामस्वरूप, कुछ शुरुआती माइक्रोप्रोसेसरों ने एक संकीर्ण ALU को नियोजित किया जिसके लिए प्रति मशीन भाषा निर्देश के लिए कई चक्रों की आवश्यकता होती थी। इसके उदाहरणों में लोकप्रिय Zilog Z80 शामिल है, जिसने चार-बिट ALU के साथ आठ-बिट परिवर्धन किया। समय के साथ, मूर के नियम का पालन करते हुए ट्रांजिस्टर ज्यामिति और सिकुड़ गई, और माइक्रोप्रोसेसरों पर व्यापक ALU बनाना संभव हो गया।

आधुनिक एकीकृत परिपथ (IC) ट्रांजिस्टर प्रारंभिक माइक्रोप्रोसेसरों की तुलना में छोटे परिमाण के क्रम हैं, जिससे IC पर अत्यधिक जटिल ALU को फिट करना संभव हो जाता है। आज, कई आधुनिक ALU में व्यापक शब्द चौड़ाई है, और वास्तुशिल्प संवर्द्धन जैसे बैरल शिफ्टर्स और द्विआधारी गुणक जो उन्हें एक घड़ी चक्र में प्रदर्शन करने की अनुमति देते हैं, जिनके लिए पहले ALU पर एकाधिक संक्रिया की आवश्यकता होती है।

ALU को यांत्रिक, इलेक्ट्रो-मैकेनिकल या विद्युत परिपथ  के रूप में महसूस किया जा सकता है और हाल के वर्षों में, जैविक ALU में अनुसंधान किया गया है  (जैसे, एक्टिन-आधारित)।

यह भी देखें

 * योजक (इलेक्ट्रॉनिक्स)
 * पता पीढ़ी इकाई (AGU)
 * लोड-स्टोर यूनिट
 * द्विआधारी गुणक
 * निष्पादन इकाई

इस पृष्ठ में अनुपलब्ध आंतरिक कड़ियों की सूची

 * बिटवाइज़ संक्रिया
 * ग्राफ़िक्स प्रोसेसिंग युनिट
 * विद्युत चालक
 * शब्द का आकार
 * ले जाना (अंकगणित)
 * प्रचार देरी
 * घड़ी संकेत
 * जानकारिक उम्र
 * बिट स्लाइसिंग