शिफ्ट रजिस्टर

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

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

शिफ्ट रजिस्टर में समानांतर संचार और क्रमिक संचार इनपुट और आउटपुट दोनों हो सकते हैं। इन्हें प्रायः सीरियल-इन, समानांतर-आउट (एसआईपीओ) या समानांतर-इन, सीरियल-आउट (पीआईएसओ) के रूप में चिन्हित किया जाता है। ऐसे भी प्रकार हैं जिनमें सीरियल और समांतर इनपुट और सीरियल और समांतर आउटपुट वाले दोनों प्रकार होते हैं। द्विदिश शिफ्ट रजिस्टर भी हैं, जो L → R या R → L दोनों दिशाओं में शिफ्टिंग की अनुमति देते हैं। शिफ्ट रजिस्टर के सीरियल इनपुट और अंतिम आउटपुट को चक्रीय शिफ्ट रजिस्टर बनाने के लिए भी जोड़ा जा सकता है। पीआईपीओ रजिस्टर (समानांतर इन, समानांतर आउट) बहुत तेज़ है - सिंगल क्लॉक पल्स एकल कादल पल्स के भीतर आउटपुट दिया जाता है।

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

"Q" आउटपुट पर प्रत्येक द्विमानित्र के बाद डेटा संग्रहीत किया जाता है, इसलिए इस व्यवस्था में चार संग्रहण स्थान उपलब्ध हैं, इसलिए यह 4-बिट रजिस्टर है। शिफ्टिंग आकार की अवधारणा व्यक्त करने के लिए, कल्पना करें कि रजिस्टर 0000 रखता है (इसलिए सभी संग्रहण स्थान खाली हैं) जैसा कि रजिस्टर में डेटा 1,0,1,1,0,0,0,0 प्रस्तुत करता है (उस क्रम में, डेटा पर एक पल्स के साथ प्रत्येक बार आगे बढ़ता है - इसे क्लॉकिंग या स्ट्रोबिंग कहा जाता है), यह परिणाम है। इसी तरह, दाहिने तरफ की पंक्ति सबसे दाहिने द्विमानित्र के आउटपुट पिन से मिलता है।

तो पूरे रजिस्टर का सीरियल आउटपुट 00010110 है। यह देखा जा सकता है कि यदि डेटा को इनपुट करना निरंतर चलता जाता है, तो यह ठीक वही मिलेगा जो (10110000) में डाला गया था, लेकिन चार डेटा एडवांस चक्रों द्वारा ऑफसेट किया गया। यह व्यवस्था पंक्ति (डेटा संरचना) के हार्डवेयर समतुल्य है। साथ ही, किसी भी समय रीसेट (आर) पिन को ऊपर लाकर पूरे रजिस्टर को शून्य पर सेट किया जा सकता है।

यह व्यवस्था डिस्ट्रक्टिव रीडआउट करती है – प्रत्येक डेटाम एक बार समाम्प्त हो जाता है जब इसे दाएँ-तरफ के बिट से बाहर स्थानांतरित कर दिया जाता है।

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

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

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

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

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

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

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

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

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

बहुत वृहद् सीरियल-इन सीरियल-आउट शिफ्ट रजिस्टर (हजारों बिट्स आकार में) का उपयोग 1970 के दशक की प्रारम्भ में निर्मित कुछ उपकरणों में पहले की डिले-लाइन मेमोरी के समान प्रकार से किया गया था। ऐसी मेमोरी को कभी-कभी कैल्कुलेटिंग मेमोरी कहा जाता था। उदाहरण के लिए, डेटापॉइंट 3300 टर्मिनल ने प्रति पंक्ति डिस्प्ले की 54 200-बिट शिफ्ट रजिस्टरों (9 पैक के 6 ट्रैक में व्यवस्थित) का उपयोग करके 6-बिट अपर-केस डिस्प्ले के 72 पंक्तियों तथा 25 पंक्तियों का अपना प्रदर्शन संग्रहीत किया, जो 1800 डिस्प्ले के लिए संग्रहण प्रदान करते हैं। शिफ्ट रजिस्टर डिज़ाइन का अर्थ था कि टर्मिनल डिस्प्ले को स्क्रॉल करना डिस्प्ले की पंक्ति को छोड़ने के लिए डिस्प्ले आउटपुट को रोककर पूरा किया जा सकता है।

इतिहास
शिफ्ट रजिस्टर के पहले ज्ञात उदाहरणों में मार्क 2 कोलोसस में था, जो 1944 में निर्मित एक कोड-ब्रेकिंग मशीन थी। यह वेक्यूम - ट्यूब और थाइरेट्रॉन से निर्मित छह-चरण का उपकरण था। 1940 के अंत में इंस्टिट्यूट फॉर एडवांस स्टडी में जॉन वॉन न्यूमैन और अन्य द्वारा निर्मित आईएएस मशीन में शिफ्ट रजिस्टर का भी उपयोग किया गया था। शिफ्ट रजिस्टरों ने 1960 के दसक में एकीकृत परिपथों में अपना रास्ता बनाया, जैसा कि जनरल इंस्ट्रूमेंट में काम कर रहे फ्रैंक वानलास और केंट स्मिथ ने प्रारंभिक जनकों द्वारा साक्ष्य के रूप में किया गया था।

यह भी देखें

 * डिले-लाइन मेमोरी
 * लीनियर-फीडबैक शिफ्ट रजिस्टर (एलएफएसआर)
 * रिंग काउंटर
 * SerDes (सीरियलाइज़र/डेसेरिएलाइज़र)
 * सीरियल पेरिफेरल इंटरफेस बस
 * शिफ्ट रजिस्टर लुकअप टेबल (एसआरएल)
 * गोलाकार बफर