शिफ्ट रजिस्टर: Difference between revisions

From Vigyanwiki
No edit summary
 
(12 intermediate revisions by 4 users not shown)
Line 2: Line 2:
'''शिफ्ट रजिस्टर''' [[फ्लिप-फ्लॉप (इलेक्ट्रॉनिक्स)|द्विमानित्र (इलेक्ट्रॉनिक्स)]] के कैस्केड का उपयोग करके एक प्रकार का [[डिजिटल सर्किट]] है जहां द्विमानित्र का आउटपुट अगले के इनपुट से जुड़ा होता है। वे एकल कादल संकेत साझा करते हैं, जिसके कारण सिस्टम में संग्रहीत डेटा एक स्थान से दूसरे स्थान पर स्थानांतरित हो जाता है। अंतिम द्विमानित्र को वापस पहले से जोड़कर, डेटा शिफ्टर्स के भीतर विस्तारित अवधि के लिए चक्रित हो सकता है, और इस विन्यास में उन्हें [[ स्मृति |मेमोरी]] के रूप में उपयोग किया जाता था, जो 1960 के दशक के अंत और 1970 के दशक के प्रारम्भ में [[विलंब-रेखा स्मृति|डीले-लाइन मेमोरी]] सिस्टम को विस्थापित करता था।
'''शिफ्ट रजिस्टर''' [[फ्लिप-फ्लॉप (इलेक्ट्रॉनिक्स)|द्विमानित्र (इलेक्ट्रॉनिक्स)]] के कैस्केड का उपयोग करके एक प्रकार का [[डिजिटल सर्किट]] है जहां द्विमानित्र का आउटपुट अगले के इनपुट से जुड़ा होता है। वे एकल कादल संकेत साझा करते हैं, जिसके कारण सिस्टम में संग्रहीत डेटा एक स्थान से दूसरे स्थान पर स्थानांतरित हो जाता है। अंतिम द्विमानित्र को वापस पहले से जोड़कर, डेटा शिफ्टर्स के भीतर विस्तारित अवधि के लिए चक्रित हो सकता है, और इस विन्यास में उन्हें [[ स्मृति |मेमोरी]] के रूप में उपयोग किया जाता था, जो 1960 के दशक के अंत और 1970 के दशक के प्रारम्भ में [[विलंब-रेखा स्मृति|डीले-लाइन मेमोरी]] सिस्टम को विस्थापित करता था।


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


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


== सीरियल-इन सीरियल-आउट (एसआईएसओ) ==
== सीरियल-इन सीरियल-आउट (एसआईएसओ) ==
Line 10: Line 10:
=== डिस्ट्रक्टिव रीडआउट ===
=== डिस्ट्रक्टिव रीडआउट ===
{| class="wikitable floatright" style="text-align:center"
{| class="wikitable floatright" style="text-align:center"
|+ Sample usage of a 4-bit shift register. Data input is 10110000.
|+ 4-बिट शिफ्ट रजिस्टर का प्रतिदर्श उपयोग। डेटा इनपुट 10110000 हैं।
! {{vert header|Time}}
! {{vert header|Time}}
! {{vert header|Output 1}}
! {{vert header|Output 1}}
Line 44: Line 44:
| 0 || 0 || 0 || 0
| 0 || 0 || 0 || 0
|}
|}
ये सबसे सरल प्रकार के शिफ्ट रजिस्टर हैं। डेटा स्ट्रिंग को डेटा में प्रस्तुत किया जाता है और प्रत्येक बार डेटा एडवांस को [[तर्क स्तर|उच्च स्तर]] पर लाए जाने पर एक चरण में स्थानांतरित कर दिया जाता है। प्रत्येक एडवांस पर, सबसे बाईं ओर का बिट (अर्थात डेटा में) पहले द्विमानित्र (इलेक्ट्रॉनिक्स) के आउटपुट में स्थानांतरित हो जाता है। सबसे दाईं ओर का बिट (अर्थात डेटा आउट ) बाहर स्थानांतरित हो जाता हैं और समाप्त हो जाता हैं।
ये सबसे सरल प्रकार के शिफ्ट रजिस्टर हैं। डेटा स्ट्रिंग को डेटा में प्रस्तुत किया जाता है और प्रत्येक बार डेटा एडवांस को [[तर्क स्तर|उच्च स्तर]] पर लाए जाने पर एक चरण में स्थानांतरित कर दिया जाता है। प्रत्येक एडवांस पर, सबसे बाईं ओर का बिट (अर्थात डेटा में) पहले द्विमानित्र (इलेक्ट्रॉनिक्स) के आउटपुट में स्थानांतरित हो जाता है। सबसे दाईं ओर का बिट (अर्थात डेटा आउट) बाहर स्थानांतरित हो जाता हैं और समाप्त हो जाता हैं।


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


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


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


== सीरियल-इन समानांतर-आउट (एसआईपीओ) ==
== सीरियल-इन समानांतर-आउट (एसआईपीओ) ==
Line 60: Line 60:
ऐसी स्थिति में जहां सीरियल लोडिंग प्रक्रिया के समय समांतर आउटपुट नहीं बदलना चाहिए, लैच्ड या [[डेटा बफ़र]] आउटपुट का उपयोग करना उचित है। लैच्ड शिफ्ट रजिस्टर (जैसे कि [[7400 श्रृंखला एकीकृत परिपथों की सूची]]) में सीरियल डेटा को पहले आंतरिक बफर रजिस्टर में लोड किया जाता है, फिर लोड सिग्नल प्राप्त होने पर बफर रजिस्टर की स्थिति को आउटपुट रजिस्टरों के एक सेट में कॉपी किया जाता है। सामान्य तौर पर, सीरियल-इन / समांतर-आउट शिफ्ट रजिस्टर का व्यावहारिक अनुप्रयोग डेटा को सीरियल प्रारूप से तार पर समानांतर प्रारूप में कई तारों पर परिवर्तित करना है।
ऐसी स्थिति में जहां सीरियल लोडिंग प्रक्रिया के समय समांतर आउटपुट नहीं बदलना चाहिए, लैच्ड या [[डेटा बफ़र]] आउटपुट का उपयोग करना उचित है। लैच्ड शिफ्ट रजिस्टर (जैसे कि [[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.
इस विन्यास में समानांतर प्रारूप में डी1 से डी4 तक डेटा इनपुट है, डी1 सबसे महत्वपूर्ण बिट है। रजिस्टर में डेटा लिखने के लिए, राइट/शिफ्ट कंट्रोल लाइन को कम रखना चाहिए। डेटा को स्थानांतरित करने के लिए, डब्लू/एस नियंत्रण रेखा को ऊपर लाया जाता हैं और रजिस्टरों को क्लॉक किया जाता हैं। अरेंजमेंट अब डेटा इनपुट के रूप में डी1 के साथ पीआईएसओ शिफ्ट रजिस्टरों के रूप में कार्य करती हैं। यद्यपि कि, जब तक कादल चक्रो कि संख्या डेटा स्ट्रिंग कि लम्बाई से अत्यधिक नहीं होती हैं, तब तक डेटा आउटपुट,क्यू क्रम में समान्तर डेटा रीड ऑफ होता हैं। निचे दिया गया एनिमेशन रजिस्टर कि आतंरिक स्थिति के साथ राइट/शिफ्ट अनुक्रम प्रदर्शित करता हैं। 


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


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


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


शुरुआती कंप्यूटरों में, डेटा प्रोसेसिंग को संभालने के लिए शिफ्ट रजिस्टरों का उपयोग किया जाता था: जोड़े जाने वाले दो नंबरों को दो शिफ्ट रजिस्टरों में संग्रहीत किया जाता था और एक [[अंकगणितीय तर्क इकाई]] में जोड़ा जाता था। शिफ्ट रजिस्टरों (संचायक) में से एक, जो एक सा लंबा था, क्योंकि बाइनरी जोड़ का परिणाम केवल उसी उत्तर में हो सकता है जिसका आकार समान हो या एक बिट लंबा हो।
प्रारंभिक कंप्यूटरों में, डेटा प्रोसेसिंग को व्यवस्थित करने के लिए शिफ्ट रजिस्टरों का उपयोग किया जाता था: जोड़े जाने वाले दो नंबरों को दो शिफ्ट रजिस्टरों में संग्रहीत किया जाता था और [[अंकगणितीय तर्क इकाई|अर्थिमेटिक एंड लॉजिक यूनिट]] में जोड़ा जाता था। निष्कर्षतः शिफ्ट रजिस्टरों में से एक का इनपुट फेड बैक होता था (संचायक), जो कि एक बिट लम्बा होता था, क्योंकि बाइनरी योग का परिणाम केवल उसी उत्तर में हो सकता है जिसका आकार समान हो या एक बिट लंबा हो।
 
कई कंप्यूटर भाषाओं में एक रजिस्टर में डेटा को दाएं और बाएं स्थानांतरित करने के निर्देश शामिल हैं, प्रत्येक स्थानांतरित स्थान के लिए प्रभावी रूप से दो से विभाजित या दो से गुणा करना।
 
बहुत बड़े सीरियल-इन सीरियल-आउट शिफ्ट रजिस्टर (हजारों बिट्स आकार में) का उपयोग 1970 के दशक की शुरुआत में निर्मित कुछ उपकरणों में पहले की देरी-लाइन मेमोरी के समान तरीके से किया गया था। ऐसी स्मृतियों को कभी-कभी परिसंचारी स्मृति कहा जाता था। उदाहरण के लिए, डेटापॉइंट 3300 टर्मिनल ने प्रति पंक्ति वर्णों की 25 पंक्तियों का अपना प्रदर्शन संग्रहीत किया| 54 200-बिट शिफ्ट रजिस्टरों (9 पैक के 6 ट्रैक में व्यवस्थित) का उपयोग करके 6-बिट अपर-केस वर्णों के 72 कॉलम, 1800 वर्णों के लिए संग्रहण प्रदान करते हैं . शिफ्ट रजिस्टर डिज़ाइन का मतलब था कि टर्मिनल डिस्प्ले को स्क्रॉल करना वर्णों की एक पंक्ति को छोड़ने के लिए डिस्प्ले आउटपुट को रोककर पूरा किया जा सकता है।<ref>[http://bitsavers.org/pdf/datapoint/3300/70116_3300termMaint_Dec76.pdf bitsavers.org], ''DataPoint 3300 Maintenance Manual'', December 1976.</ref>


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


बहुत वृहद् सीरियल-इन सीरियल-आउट शिफ्ट रजिस्टर (हजारों बिट्स आकार में) का उपयोग 1970 के दशक की प्रारम्भ में निर्मित कुछ उपकरणों में पहले की डिले-लाइन मेमोरी के समान प्रकार से किया गया था। ऐसी मेमोरी को कभी-कभी कैल्कुलेटिंग मेमोरी कहा जाता था। उदाहरण के लिए, डेटापॉइंट 3300 टर्मिनल ने प्रति पंक्ति डिस्प्ले की 54 200-बिट शिफ्ट रजिस्टरों (9 पैक के 6 ट्रैक में व्यवस्थित) का उपयोग करके 6-बिट अपर-केस डिस्प्ले के 72 पंक्तियों तथा 25 पंक्तियों का अपना प्रदर्शन संग्रहीत किया, जो 1800 डिस्प्ले के लिए संग्रहण प्रदान करते हैं। शिफ्ट रजिस्टर डिज़ाइन का अर्थ था कि टर्मिनल डिस्प्ले को स्क्रॉल करना डिस्प्ले की पंक्ति को छोड़ने के लिए डिस्प्ले आउटपुट को रोककर पूरा किया जा सकता है।<ref>[http://bitsavers.org/pdf/datapoint/3300/70116_3300termMaint_Dec76.pdf bitsavers.org], ''DataPoint 3300 Maintenance Manual'', December 1976.</ref>
== इतिहास ==
== इतिहास ==
शिफ्ट रजिस्टर के पहले ज्ञात उदाहरणों में से एक मार्क 2 [[ बादशाह कंप्यूटर ]] में था, जो 1944 में निर्मित एक कोड-ब्रेकिंग मशीन थी। यह [[ वेक्यूम - ट्यूब ]] और [[थाइरेट्रॉन]] से निर्मित छह-चरण का उपकरण था।<ref>{{Citation | last = Flowers |first= Thomas H. |author-link=Tommy Flowers |url=http://www.ivorcatt.com/47c.htm | title =The Design of Colossus |journal=Annals of the History of Computing |volume=5 |issue=3 |year= 1983|page=246 |doi=10.1109/MAHC.1983.10079|s2cid= 39816473 }}</ref> 1940 के अंत में [[उन्नत अध्ययन संस्थान]] में [[जॉन वॉन न्यूमैन]] और अन्य द्वारा निर्मित IAS मशीन में एक शिफ्ट रजिस्टर का भी उपयोग किया गया था।
शिफ्ट रजिस्टर के पहले ज्ञात उदाहरणों में मार्क 2 [[ बादशाह कंप्यूटर |कोलोसस]] में था, जो 1944 में निर्मित एक कोड-ब्रेकिंग मशीन थी। यह[[ वेक्यूम - ट्यूब | वेक्यूम - ट्यूब]] और [[थाइरेट्रॉन]] से निर्मित छह-चरण का उपकरण था।<ref>{{Citation | last = Flowers |first= Thomas H. |author-link=Tommy Flowers |url=http://www.ivorcatt.com/47c.htm | title =The Design of Colossus |journal=Annals of the History of Computing |volume=5 |issue=3 |year= 1983|page=246 |doi=10.1109/MAHC.1983.10079|s2cid= 39816473 }}</ref> 1940 के अंत में [[जॉन वॉन न्यूमैन|इंस्टिट्यूट फॉर एडवांस स्टडी]] में [[जॉन वॉन न्यूमैन]] और अन्य द्वारा निर्मित आईएएस मशीन में शिफ्ट रजिस्टर का भी उपयोग किया गया था। शिफ्ट रजिस्टरों ने 1960 के दसक में एकीकृत परिपथों में अपना रास्ता बनाया, जैसा कि जनरल इंस्ट्रूमेंट में काम कर रहे फ्रैंक वानलास और केंट स्मिथ ने प्रारंभिक जनकों द्वारा साक्ष्य के रूप में किया गया था।  


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


Line 92: Line 90:
{{Reflist}}
{{Reflist}}


{{Cryptography stream}}
{{Authority control}}
[[Category: डिजिटल रजिस्टर]] [[Category: स्मृति]]
[[Category: Machine Translated Page]]
[[Category:Created On 24/05/2023]]
[[Category:Created On 24/05/2023]]
[[Category:Lua-based templates]]
[[Category:Machine Translated Page]]
[[Category:Pages with script errors]]
[[Category:Templates Vigyan Ready]]
[[Category:Templates that add a tracking category]]
[[Category:Templates that generate short descriptions]]
[[Category:Templates using TemplateData]]
[[Category:डिजिटल रजिस्टर]]
[[Category:स्मृति]]

Latest revision as of 14:15, 15 June 2023

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

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

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

सीरियल-इन सीरियल-आउट (एसआईएसओ)

डिस्ट्रक्टिव रीडआउट

4-बिट शिफ्ट रजिस्टर का प्रतिदर्श उपयोग। डेटा इनपुट 10110000 हैं।
Time
Output 1
Output 2
Output 3
Output 4
0 0 0 0 0
1 1 0 0 0
2 0 1 0 0
3 1 0 1 0
4 1 1 0 1
5 0 1 1 0
6 0 0 1 1
7 0 0 0 1
8 0 0 0 0

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

"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 डिस्प्ले के लिए संग्रहण प्रदान करते हैं। शिफ्ट रजिस्टर डिज़ाइन का अर्थ था कि टर्मिनल डिस्प्ले को स्क्रॉल करना डिस्प्ले की पंक्ति को छोड़ने के लिए डिस्प्ले आउटपुट को रोककर पूरा किया जा सकता है।[1]

इतिहास

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

यह भी देखें

संदर्भ

  1. bitsavers.org, DataPoint 3300 Maintenance Manual, December 1976.
  2. Flowers, Thomas H. (1983), "The Design of Colossus", Annals of the History of Computing, 5 (3): 246, doi:10.1109/MAHC.1983.10079, S2CID 39816473