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

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

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

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

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

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

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

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

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

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

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

समानांतर-इन सीरियल-आउट (PISO)
इस कॉन्फ़िगरेशन में समानांतर प्रारूप में D1 से D4 तक डेटा इनपुट है, D1 सबसे महत्वपूर्ण बिट है। रजिस्टर में डेटा लिखने के लिए, राइट/शिफ्ट कंट्रोल लाइन को कम रखना चाहिए। डेटा को स्थानांतरित करने के लिए, W/S control line is brought HIGH and the registers are clocked. The arrangement now acts as a PISO shift register, with D1 as the Data Input. However, as long as the number of clock cycles is not more than the length of the data-string, the Data Output, Q, will be the parallel data read off in order. नीचे दिया गया एनीमेशन लेखन दिखाता है/shift sequence, including the internal state of the shift register.

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

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

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

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

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

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

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

यह भी देखें

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