बैंक स्विचिंग: Difference between revisions
| Line 36: | Line 36: | ||
== माइक्रो कंप्यूटर का उपयोग == | == माइक्रो कंप्यूटर का उपयोग == | ||
[[File:Bank Select Switch on Cromemco Memory Board.jpg|thumb|[[ Cromemco ]] मेमोरी बोर्ड पर बैंक सेलेक्ट स्विच का उपयोग मेमोरी को 8 अलग-अलग 64 KB बैंकों में से एक या अधिक में मैप करने के लिए किया गया था।<ref name="Garland_1977"/>]] | [[File:Bank Select Switch on Cromemco Memory Board.jpg|thumb|[[ Cromemco ]] मेमोरी बोर्ड पर बैंक सेलेक्ट स्विच का उपयोग मेमोरी को 8 अलग-अलग 64 KB बैंकों में से एक या अधिक में मैप करने के लिए किया गया था।<ref name="Garland_1977"/>]] | ||
[[ 16-बिट | 16-बिट]] एड्रेसिंग ([[ 8080 |8080]],[[ Z80 | Z80]], [[ 6502 |6502]],[[ 6809 | 6809]], आदि)वाले प्रोसेसर आमतौर पर शुरुआती[[ विडियो गेम कंसोल | विडियो गेम कंसोल]] और[[ गृह कम्प्यूटर | गृह कम्प्यूटर]] में उपयोग किए जाते हैं, केवल 64 [[ किलोबाइट |किलोबाइट]] को संबोधित कर सकते हैं। अधिक मेमोरी वाले सिस्टम को पता स्थान को कई ब्लॉकों में विभाजित करना पड़ता था जिन्हें गतिशील रूप से बड़े पता स्थान के भागों में मैप किया जा सकता था। मेमोरी को 64 KB तक के अलग-अलग बैंकों में व्यवस्थित करके इस बड़े एड्रेस स्पेस को प्राप्त करने के लिए बैंक स्विचिंग का उपयोग किया गया था।<ref name="Garland_1979"/>विभिन्न आकारों के ब्लॉकों को बैंक के चुनिंदा रजिस्टरों या इसी तरह के तंत्र के माध्यम से अंदर और बाहर स्विच किया गया था। क्रोमेम्को बैंक स्विचिंग का उपयोग करने वाला पहला माइक्रो कंप्यूटर निर्माता था, जो अपने सिस्टम में 64 KB के 8 बैंकों का समर्थन करता था।<ref name="Hogan_1981"/> | [[ 16-बिट |16-बिट]] एड्रेसिंग ([[ 8080 |8080]],[[ Z80 | Z80]], [[ 6502 |6502]],[[ 6809 | 6809]], आदि)वाले प्रोसेसर आमतौर पर शुरुआती[[ विडियो गेम कंसोल | विडियो गेम कंसोल]] और[[ गृह कम्प्यूटर | गृह कम्प्यूटर]] में उपयोग किए जाते हैं, केवल 64 [[ किलोबाइट |किलोबाइट]] को संबोधित कर सकते हैं। अधिक मेमोरी वाले सिस्टम को पता स्थान को कई ब्लॉकों में विभाजित करना पड़ता था जिन्हें गतिशील रूप से बड़े पता स्थान के भागों में मैप किया जा सकता था। मेमोरी को 64 KB तक के अलग-अलग बैंकों में व्यवस्थित करके इस बड़े एड्रेस स्पेस को प्राप्त करने के लिए बैंक स्विचिंग का उपयोग किया गया था।<ref name="Garland_1979"/>विभिन्न आकारों के ब्लॉकों को बैंक के चुनिंदा रजिस्टरों या इसी तरह के तंत्र के माध्यम से अंदर और बाहर स्विच किया गया था। क्रोमेम्को बैंक स्विचिंग का उपयोग करने वाला पहला माइक्रो कंप्यूटर निर्माता था, जो अपने सिस्टम में 64 KB के 8 बैंकों का समर्थन करता था।<ref name="Hogan_1981"/> | ||
बैंक स्विचिंग का उपयोग करते समय कुछ सावधानी बरतने की आवश्यकता थी ताकि [[ सबरूटीन |सबरूटीन]] कॉल, इंटरप्ट, [[ कॉल स्टैक |कॉल स्टैक]]आदि के संचालन को दूषित न किया जा सके। जबकि सीपीयू से अस्थायी रूप से स्विच की गई मेमोरी की सामग्री प्रोसेसर के लिए दुर्गम थी, इसका उपयोग अन्य हार्डवेयर, जैसे वीडियो डिस्प्ले, डीएमए, आई / ओ डिवाइस, आदि द्वारा किया जा सकता है। सीपी / एम -80 3.0 1983 में जारी किया गया था और Z80-आधारित [[ TRS-80 |TRS-80 ]]sमॉडल 4 और मॉडल II समर्थित बैंक स्विचिंग, 64 KB से अधिक मेमोरी के उपयोग की अनुमति देने के लिए जिसे 8080 या Z80 प्रोसेसर संबोधित कर सकता था।<ref name="Freiberger_1982"/> | बैंक स्विचिंग का उपयोग करते समय कुछ सावधानी बरतने की आवश्यकता थी ताकि [[ सबरूटीन |सबरूटीन]] कॉल, इंटरप्ट, [[ कॉल स्टैक |कॉल स्टैक]]आदि के संचालन को दूषित न किया जा सके। जबकि सीपीयू से अस्थायी रूप से स्विच की गई मेमोरी की सामग्री प्रोसेसर के लिए दुर्गम थी, इसका उपयोग अन्य हार्डवेयर, जैसे वीडियो डिस्प्ले, डीएमए, आई / ओ डिवाइस, आदि द्वारा किया जा सकता है। सीपी / एम -80 3.0 1983 में जारी किया गया था और Z80-आधारित [[ TRS-80 |TRS-80 ]]sमॉडल 4 और मॉडल II समर्थित बैंक स्विचिंग, 64 KB से अधिक मेमोरी के उपयोग की अनुमति देने के लिए जिसे 8080 या Z80 प्रोसेसर संबोधित कर सकता था।<ref name="Freiberger_1982"/> | ||
| Line 52: | Line 52: | ||
== वीडियो गेम कंसोल == | == वीडियो गेम कंसोल == | ||
कुछ वीडियो गेम कंसोल में बैंक स्विचिंग का भी उपयोग किया गया था।<ref name="Carey_2002"/>उदाहरण के लिए, [[ अटारी 2600 |अटारी 2600]], केवल 4 KB ROM को संबोधित कर सकता था, इसलिए बाद में 2600[[ खेल कारतूस | गेम कार्ट्रिज]]में अधिक ROM के उपयोग की अनुमति देने के लिए अपने स्वयं के बैंक स्विचिंग हार्डवेयर शामिल थे और इस प्रकार अधिक परिष्कृत गेम (अधिक प्रोग्राम कोड के माध्यम से और समान रूप से) की अनुमति देते थे। महत्वपूर्ण, बड़ी मात्रा में गेम डेटा जैसे कि ग्राफ़िक्स और विभिन्न गेम चरण)।<ref name="Grand_2004"/>[[ निन्टेंडो एंटरटेनमेंट सिस्टम | निन्टेंडो एंटरटेनमेंट सिस्टम]] में एक संशोधित[[ एमओएस प्रौद्योगिकी 6502 | 6502]] था लेकिन इसके कारतूस में कभी-कभी एक [[ मेगाबिट्स |मेगाबिट्स]]या अधिक ROM होता था, जिसे बैंक स्विचिंग के माध्यम से संबोधित किया जाता था जिसे [[ मल्टी-मेमोरी कंट्रोलर |मल्टी-मेमोरी कंट्रोलर]] कहा जाता है।[[ खेल का लड़का | गेम ब्वॉय कार्ट्रिज]] ने एमबीसी (मेमोरी बैंक कंट्रोलर) नामक एक चिप का इस्तेमाल किया, जो न केवल रॉम बैंक स्विचिंग की पेशकश करता है, बल्कि कार्ट्रिज [[ स्टेटिक रैंडम-एक्सेस मेमोरी ]] बैंक स्विचिंग और यहां तक कि [[ अवरक्त ]] या रंबल मोटर्स जैसे बाह्य उपकरणों तक पहुंच प्रदान करता है। बैंक स्विचिंग अभी भी बाद के गेम सिस्टम पर इस्तेमाल किया जा रहा था। कई सेगा [[ मेगा ड्राइव ]] कार्ट्रिज, जैसे [[ सुपर स्ट्रीट फाइटर II ]] आकार में 4 एमबी से अधिक थे और इस तकनीक के उपयोग की आवश्यकता थी (4 एमबी अधिकतम पता आकार था)। | कुछ वीडियो गेम कंसोल में बैंक स्विचिंग का भी उपयोग किया गया था।<ref name="Carey_2002"/>उदाहरण के लिए, [[ अटारी 2600 |अटारी 2600]], केवल 4 KB ROM को संबोधित कर सकता था, इसलिए बाद में 2600[[ खेल कारतूस | गेम कार्ट्रिज]]में अधिक ROM के उपयोग की अनुमति देने के लिए अपने स्वयं के बैंक स्विचिंग हार्डवेयर शामिल थे और इस प्रकार अधिक परिष्कृत गेम (अधिक प्रोग्राम कोड के माध्यम से और समान रूप से) की अनुमति देते थे। महत्वपूर्ण, बड़ी मात्रा में गेम डेटा जैसे कि ग्राफ़िक्स और विभिन्न गेम चरण)।<ref name="Grand_2004"/>[[ निन्टेंडो एंटरटेनमेंट सिस्टम | निन्टेंडो एंटरटेनमेंट सिस्टम]] में एक संशोधित[[ एमओएस प्रौद्योगिकी 6502 | 6502]] था लेकिन इसके कारतूस में कभी-कभी एक [[ मेगाबिट्स |मेगाबिट्स]]या अधिक ROM होता था, जिसे बैंक स्विचिंग के माध्यम से संबोधित किया जाता था जिसे [[ मल्टी-मेमोरी कंट्रोलर |मल्टी-मेमोरी कंट्रोलर]] कहा जाता है।[[ खेल का लड़का | गेम ब्वॉय कार्ट्रिज]] ने एमबीसी (मेमोरी बैंक कंट्रोलर) नामक एक चिप का इस्तेमाल किया, जो न केवल रॉम बैंक स्विचिंग की पेशकश करता है, बल्कि कार्ट्रिज [[ स्टेटिक रैंडम-एक्सेस मेमोरी |स्टेटिक रैंडम-एक्सेस मेमोरी]] बैंक स्विचिंग और यहां तक कि [[ अवरक्त |अवरक्त]] या रंबल मोटर्स जैसे बाह्य उपकरणों तक पहुंच प्रदान करता है। बैंक स्विचिंग अभी भी बाद के गेम सिस्टम पर इस्तेमाल किया जा रहा था। कई सेगा[[ मेगा ड्राइव |मेगा ड्राइव]] कार्ट्रिज, जैसे [[ सुपर स्ट्रीट फाइटर II |सुपर स्ट्रीट फाइटर II]]आकार में 4 एमबी से अधिक थे और इस तकनीक के उपयोग की आवश्यकता थी (4 एमबी अधिकतम पता आकार था)। गेमपार्क होल्डिंग्स से [[ GP2X |GP2X]] हैंडहेल्ड दूसरे प्रोसेसर के लिए स्टार्ट एड्रेस (या मेमोरी ऑफ़सेट) को नियंत्रित करने के लिए बैंक स्विचिंग का उपयोग करता है। | ||
गेमपार्क होल्डिंग्स से [[ GP2X ]] हैंडहेल्ड दूसरे प्रोसेसर के लिए स्टार्ट एड्रेस (या मेमोरी ऑफ़सेट) को नियंत्रित करने के लिए बैंक स्विचिंग का उपयोग करता है। | |||
== वीडियो प्रोसेसिंग == | == वीडियो प्रोसेसिंग == | ||
कुछ प्रकार के कंप्यूटर वीडियो डिस्प्ले में, [[ वीडियो प्रदर्शन ]] को बेहतर बनाने के लिए [[ डबल बफरिंग (कंप्यूटर ग्राफिक्स) ]] की संबंधित तकनीक का उपयोग किया जा सकता है। इस मामले में, जबकि प्रोसेसर भौतिक स्मृति स्थानों के एक सेट की सामग्री को अद्यतन कर रहा है, वीडियो पीढ़ी हार्डवेयर दूसरे सेट की सामग्री तक पहुंच और प्रदर्शित कर रहा है। जब प्रोसेसर ने अपना अपडेट पूरा कर लिया है, तो यह [[ वीडियो प्रदर्शन प्रोसेसर ]] को | कुछ प्रकार के कंप्यूटर वीडियो डिस्प्ले में, [[ वीडियो प्रदर्शन |वीडियो प्रदर्शन]] को बेहतर बनाने के लिए [[ डबल बफरिंग (कंप्यूटर ग्राफिक्स) |डबल बफरिंग (कंप्यूटर ग्राफिक्स)]] की संबंधित तकनीक का उपयोग किया जा सकता है। इस मामले में, जबकि प्रोसेसर भौतिक स्मृति स्थानों के एक सेट की सामग्री को अद्यतन कर रहा है, वीडियो पीढ़ी हार्डवेयर दूसरे सेट की सामग्री तक पहुंच और प्रदर्शित कर रहा है। जब प्रोसेसर ने अपना अपडेट पूरा कर लिया है, तो यह सक्रिय बैंकों को स्वैप करने के लिए[[ वीडियो प्रदर्शन प्रोसेसर |वीडियो प्रदर्शन प्रोसेसर]] को संकेत दे सकता है, ताकि स्क्रीन पर दिखाई देने वाला संक्रमण कलाकृतियों या विरूपण से मुक्त हो। इस मामले में, प्रोसेसर के पास एक ही बार में सभी मेमोरी तक पहुंच हो सकती है, लेकिन वीडियो डिस्प्ले हार्डवेयर वीडियो मेमोरी के कुछ हिस्सों के बीच बैंक-स्विच होता है। यदि वीडियो मेमोरी के दो (या अधिक) बैंकों में थोड़ी अलग छवियां होती हैं, तो उनके बीच तेजी से साइकिल चलाना (पृष्ठ-फ़्लिपिंग) एनीमेशन या अन्य दृश्य प्रभाव पैदा कर सकता है जो प्रोसेसर अन्यथा सीधे निष्पादित करने के लिए बहुत धीमा हो सकता है। | ||
== वैकल्पिक और उत्तराधिकारी तकनीक == | == वैकल्पिक और उत्तराधिकारी तकनीक == | ||
बाद में कई | बैंक स्विचिंग को बाद में कई 16-बिट सिस्टम में विभाजन द्वारा प्रतिस्थापित किया गया, जिसने बदले में [[ मेमोरी खंड |मेमोरी प्रबंधन इकाइयों को पेजिंग]] करने का रास्ता दिया। हालांकि, एम्बेडेड सिस्टम में, बैंक स्विचिंग का उपयोग अक्सर इसकी सादगी, कम लागत और सामान्य प्रयोजन कंप्यूटिंग की तुलना में उन संदर्भों के लिए अक्सर बेहतर अनुकूलन के लिए किया जाता है। | ||
== यह भी देखें == | == यह भी देखें == | ||
Revision as of 12:27, 26 September 2022
बैंक स्विचिंग कंप्यूटर डिज़ाइन में उपयोग की जाने वाली एक तकनीक है जिसका उपयोग प्रयोग करने योग्य मेमोरी की मात्रा को प्रोसेसर (कंप्यूटिंग)द्वारा सीधे संबोधित करने योग्य राशि से अधिक करने के लिए किया जाता है[1]निर्देश। इसका उपयोग सिस्टम को अलग-अलग समय पर अलग-अलग तरीके से कॉन्फ़िगर करने के लिए किया जा सकता है; उदाहरण के लिए, डिस्केट से सिस्टम शुरू करने के लिए आवश्यक रीड ऑनली मैमोरी को जरूरत न होने पर स्विच आउट किया जा सकता है। वीडियो गेम सिस्टम में, बैंक स्विचिंग ने मौजूदा कंसोल पर खेलने के लिए बड़े गेम विकसित करने की अनुमति दी।।
बैंक स्विचिंग की शुरुआत मिनी कंप्यूटर सिस्टम में हुई।[2]कई आधुनिकमाइक्रो कंट्रोलर और माइक्रोप्रोसेसर छोटे अंतः स्थापित प्रणाली में यादृच्छिक अभिगम स्मृति, नॉन-वोलेटाइल मेमोरी, इनपुट-आउटपुट डिवाइस और सिस्टम मैनेजमेंट रजिस्टर को प्रबंधित करने के लिए बैंक स्विचिंग का उपयोग करते हैं। तकनीक 8 बिट माइक्रो कंप्यूटर सिस्टम में आम थी। बैंक-स्विचिंग का उपयोग एड्रेस बस की चौड़ाई में सीमाओं के आसपास काम करने के लिए भी किया जा सकता है, जहां कुछ हार्डवेयर बाधा अधिक पता लाइनों के सीधे जोड़ को रोकती है, और आईएसए में सीमाओं के आसपास काम करने के लिए, जहां उत्पन्न पते एड्रेस बस की चौड़ाई से संकरे होते हैं। कुछ नियंत्रण-उन्मुख माइक्रोप्रोसेसर आंतरिक I/O और नियंत्रण रजिस्टरों तक पहुंचने के लिए बैंक-स्विचिंग तकनीक का उपयोग करते हैं, जो प्रत्येक निर्देश में उपयोग किए जाने वाले रजिस्टर एड्रेस बिट्स की संख्या को सीमित करता है।
पेजिंग द्वारा मेमोरी प्रबंधन के विपरीत, डिस्क भंडारणजैसे मास स्टोरेज डिवाइस के साथ डेटा का आदान-प्रदान नहीं किया जाता है। डेटा एक स्मृति क्षेत्र में मौन भंडारण में रहता है जो वर्तमान में प्रोसेसर के लिए सुलभ नहीं है (हालांकि यह वीडियो डिस्प्ले, प्रत्यक्ष मेमोरी एक्सेस, या कंप्यूटर के अन्य सबसिस्टम के लिए सुलभ हो सकता है) विशेष उपसर्ग निर्देशों के उपयोग के बिना।
तकनीक
बैंक स्विचिंग को कुछ रजिस्टर के साथ प्रोसेसर निर्देशों के पता स्थान को बढ़ाने का एक तरीका माना जा सकता है। उदाहरण:
- 12 बिट एड्रेस वाले प्रोसेसर के लिए फॉलो-ऑन सिस्टम[3] में 15 बिट एड्रेस बस होती है, लेकिन एड्रेस बस में हाई थ्री बिट्स को सीधे निर्दिष्ट करने का कोई तरीका नहीं है। उन बिट्स को प्रदान करने के लिए आंतरिक बैंक रजिस्टरों का उपयोग किया जा सकता है।
- 15 बिट एड्रेस वाले प्रोसेसर के लिए फॉलो-ऑन सिस्टम[4] में 18 बिट एड्रेस बस होती है, लेकिन लीगेसी निर्देशों में केवल 15 एड्रेस बिट्स होते हैं; आंतरिक बैंक रजिस्टरों का उपयोग उन बिट्स को प्रदान करने के लिए किया जा सकता है। कुछ नए निर्देश स्पष्ट रूप से बैंक को निर्दिष्ट कर सकते हैं।
- 16-बिट बाहरी एड्रेस बस वाला एक प्रोसेसर केवल 216 =65536 मेमोरी स्थानों को संबोधित कर सकता है। यदि सिस्टम में एक बाहरी लैच जोड़ा जाता है, तो इसका उपयोग यह नियंत्रित करने के लिए किया जा सकता है कि मेमोरी डिवाइस के दो सेटों में से कौन से 65536 पते वाले प्रत्येक को एक्सेस किया जा सकता है। लैच बिट को सेट या साफ़ करके प्रोसेसर बदल सकता है कि कौन सा सेट वर्तमान उपयोग में है।
लैच को प्रोसेसर द्वारा कई तरीकों से सेट या साफ़ किया जा सकता है; एक विशेष मेमोरी एड्रेस को डिकोड किया जा सकता है और लैच को नियंत्रित करने के लिए उपयोग किया जा सकता है, या, अलग-अलग-डिकोडेड I/O एड्रेस वाले प्रोसेसर में, आउटपुट एड्रेस को डिकोड किया जा सकता है। कई बैंक-स्विचिंग कंट्रोल बिट्स को एक रजिस्टर में इकट्ठा किया जा सकता है, रजिस्टर में प्रत्येक अतिरिक्त बिट के साथ उपलब्ध मेमोरी स्पेस को लगभग दोगुना कर देता है।
चूंकि बाहरी बैंक-चयन लैच (या रजिस्टर) प्रोसेसर के कार्यक्रम गणकसे सीधे जुड़ा नहीं है, प्रोग्राम काउंटर ओवरफ्लो होने पर यह स्वचालित रूप से स्थिति नहीं बदलता है; इसका बाहरी लैच द्वारा पता नहीं लगाया जा सकता है क्योंकि प्रोग्राम काउंटर प्रोसेसर का एक आंतरिक रजिस्टर है। अतिरिक्त मेमोरी प्रोग्राम के लिए मूल रूप से उपलब्ध नहीं है। प्रोसेसर के आंतरिक रजिस्टर अपनी मूल लंबाई पर बने रहते हैं, इसलिए प्रोसेसर बैंक द्वारा स्विच की गई सभी मेमोरी को सीधे नहीं फैला सकता है, उदाहरण के लिए, एक आंतरिक रजिस्टर को बढ़ाकर।[5]इसके बजाय प्रोसेसर को बड़ी मेमोरी ऑब्जेक्ट्स तक पहुंचने के लिए स्पष्ट रूप से बैंक-स्विचिंग ऑपरेशन करना चाहिए। अन्य सीमाएँ हैं। आम तौर पर[citation needed] एक बैंक-स्विचिंग सिस्टम में प्रोग्राम मेमोरी का एक ब्लॉक होगा जो सभी बैंकों के लिए सामान्य है; कोई फर्क नहीं पड़ता कि वर्तमान में कौन सा बैंक सक्रिय है, पता स्थान के हिस्से के लिए स्मृति स्थानके केवल एक सेट का उपयोग किया जाएगा। इस क्षेत्र का उपयोग कोड रखने के लिए किया जाएगा जो बैंकों के बीच संक्रमण का प्रबंधन करता है, और इंटरप्ट को संसाधित करने के लिए भी।
अक्सर एक एकल डेटाबेस कई बैंकों तक फैला होता है, और बैंकों के बीच रिकॉर्ड स्थानांतरित करने की आवश्यकता उत्पन्न होती है (जैसा कि छँटाई के लिए)। यदि एक समय में केवल एक बैंक पहुंच योग्य है, तो प्रत्येक बाइट को दो बार स्थानांतरित करना आवश्यक होगा: पहले सामान्य स्मृति क्षेत्र में, गंतव्य बैंक में बैंक स्विच करें, और फिर वास्तव में बाइट को गंतव्य बैंक में ले जाएं। यदि कंप्यूटर आर्किटेक्चर में डीएमए इंजन या दूसरा सीपीयू है, और इसके बैंक एक्सेस प्रतिबंध भिन्न हैं, तो जो भी सबसिस्टम सीधे बैंकों के बीच डेटा ट्रांसफर कर सकता है, उसका उपयोग किया जाना चाहिए।
वर्चुअल मेमोरीस्कीम के विपरीत, बैंक-स्विचिंग को रनिंग प्रोग्राम या ऑपरेटिंग सिस्टम द्वारा स्पष्ट रूप से प्रबंधित किया जाना चाहिए; प्रोसेसर हार्डवेयर स्वचालित रूप से यह पता नहीं लगा सकता है कि वर्तमान में सक्रिय बैंक में मैप नहीं किए गए डेटा की आवश्यकता है। एप्लिकेशन प्रोग्राम को यह ट्रैक रखना चाहिए कि कौन सा मेमोरी बैंकआवश्यक डेटा रखता है, और फिर उस बैंक को सक्रिय करने के लिए बैंक-स्विचिंग रूटीन को कॉल करें।[6]हालाँकि, बैंक-स्विचिंग डेटा को बहुत तेज़ी से एक्सेस कर सकता है, उदाहरण के लिए, डिस्क स्टोरेज से डेटा पुनर्प्राप्त करना।
माइक्रो कंप्यूटर का उपयोग
16-बिट एड्रेसिंग (8080, Z80, 6502, 6809, आदि)वाले प्रोसेसर आमतौर पर शुरुआती विडियो गेम कंसोल और गृह कम्प्यूटर में उपयोग किए जाते हैं, केवल 64 किलोबाइट को संबोधित कर सकते हैं। अधिक मेमोरी वाले सिस्टम को पता स्थान को कई ब्लॉकों में विभाजित करना पड़ता था जिन्हें गतिशील रूप से बड़े पता स्थान के भागों में मैप किया जा सकता था। मेमोरी को 64 KB तक के अलग-अलग बैंकों में व्यवस्थित करके इस बड़े एड्रेस स्पेस को प्राप्त करने के लिए बैंक स्विचिंग का उपयोग किया गया था।[8]विभिन्न आकारों के ब्लॉकों को बैंक के चुनिंदा रजिस्टरों या इसी तरह के तंत्र के माध्यम से अंदर और बाहर स्विच किया गया था। क्रोमेम्को बैंक स्विचिंग का उपयोग करने वाला पहला माइक्रो कंप्यूटर निर्माता था, जो अपने सिस्टम में 64 KB के 8 बैंकों का समर्थन करता था।[9]
बैंक स्विचिंग का उपयोग करते समय कुछ सावधानी बरतने की आवश्यकता थी ताकि सबरूटीन कॉल, इंटरप्ट, कॉल स्टैकआदि के संचालन को दूषित न किया जा सके। जबकि सीपीयू से अस्थायी रूप से स्विच की गई मेमोरी की सामग्री प्रोसेसर के लिए दुर्गम थी, इसका उपयोग अन्य हार्डवेयर, जैसे वीडियो डिस्प्ले, डीएमए, आई / ओ डिवाइस, आदि द्वारा किया जा सकता है। सीपी / एम -80 3.0 1983 में जारी किया गया था और Z80-आधारित TRS-80 sमॉडल 4 और मॉडल II समर्थित बैंक स्विचिंग, 64 KB से अधिक मेमोरी के उपयोग की अनुमति देने के लिए जिसे 8080 या Z80 प्रोसेसर संबोधित कर सकता था।[10]
बैंक स्विचिंग ने अतिरिक्त मेमोरी और फ़ंक्शंस को कंप्यूटर डिज़ाइन में जोड़ने की अनुमति दी, बिना खर्च और एक व्यापक एड्रेस बस के साथ प्रोसेसर पर स्विच करने की असंगति के बिना। उदाहरण के लिए, C64ने पूर्ण 64 KB RAM की अनुमति देने के लिए बैंक स्विचिंग का उपयोग किया और अभी भी ROM और मेमोरी-मैप्ड I/O के लिए भी प्रदान करता है। अटारी 130XE अपने दो प्रोसेसर (6502 और ANTIC) को अलग-अलग RAM बैंकों तक पहुंचने की अनुमति दे सकता है, जिससे प्रोग्रामर को सीपीयू को दिखाई देने वाली मेमोरी का उपयोग किए बिना बड़े प्लेफील्ड और अन्य ग्राफिक ऑब्जेक्ट बनाने की अनुमति मिलती है।
सूक्ष्म नियंत्रक
माइक्रोकंट्रोलर (महत्वपूर्ण इनपुट/आउटपुट हार्डवेयर एकीकृत ऑन-चिप के साथ माइक्रोप्रोसेसर) बैंक स्विचिंग का उपयोग कर सकते हैं, उदाहरण के लिए, एकाधिक कॉन्फ़िगरेशन रजिस्टरों या ऑन-चिप रीड/राइट मेमोरी तक पहुंचने के लिए। एक उदाहरण PIC माइक्रोकंट्रोलरहै। यह अपेक्षाकृत कम उपयोग किए जाने वाले रजिस्टरों तक पहुंचने के लिए आवश्यक अतिरिक्त निर्देशों की कीमत पर, नियमित कार्यक्रम निष्पादन के दौरान अंतरिक्ष को बचाने के लिए संक्षिप्त निर्देश शब्दों की अनुमति देता है, जैसे कि स्टार्ट-अप पर सिस्टम कॉन्फ़िगरेशन के लिए उपयोग किया जाता है।
आईबीएम पीसी
1985 में, कंपनियों लोटस और इंटेल कंपनियों ने एमएस-डॉस चलाने वाले आईबीएम पीसी संगत कंप्यूटरों में उपयोग के लिए विस्तारित मेमोरी स्पेसिफिकेशन (ईएमएस) 3.0 की शुरुआत की। माइक्रोसॉफ्ट 1986 में संस्करण 3.2 और 1987 में 4.0 में शामिल हुआ और विनिर्देश लोटस-इंटेल-माइक्रोसॉफ्ट ईएमएस या एलआईएम ईएमएस के रूप में जाना जाने लगा।[6][11][12]यह बैंक स्विचिंग तकनीक का एक रूप है जो मूल आईबीएम पीसी आर्किटेक्चर द्वारा परिभाषित 640 केबी से अधिक रैम की अनुमति देता है, इसे ऊपरी मेमोरी क्षेत्र में स्थित 64 केबी "विंडो" में टुकड़े-टुकड़े करके प्रदर्शित करता है। 64 केबी को चार 16 केबी "पेजों" में विभाजित किया गया है, जिनमें से प्रत्येक को स्वतंत्र रूप से स्विच किया जा सकता है। कुछ कंप्यूटर गेम ने इसका उपयोग किया, और हालांकि ईएमएस अप्रचलित है, यह सुविधा आजकल माइक्रोसॉफ़्ट विंडोज़ ऑपरेटिंग सिस्टम द्वारा अनुकरण की जाती है ताकि उन प्रोग्रामों के साथ पश्चगामी संगतता प्रदान की जा सके।
बाद में विस्तारित विस्तारित मेमोरी विशिष्टता(XMS), जो अब अप्रचलित भी है, सिद्धांत रूप में, 1 एमबी (जिसे "एक्सटेंडेड मेमोरी" कहा जाता है) से ऊपर मेमोरी के लिए बैंक स्विचिंग का अनुकरण करने के लिए एक मानक है, जो कि x86 प्रोसेसर के वास्तविक मोड में सीधे पता करने योग्य नहीं है। जो MS-DOS चलता है। एक्सएमएस विस्तारित मेमोरी को पारंपरिक मेमोरी में कहीं भी कॉपी करने की अनुमति देता है, इसलिए "बैंकों" की सीमाएं तय नहीं हैं, लेकिन हर दूसरे तरीके से यह ईएमएस के बैंक स्विचिंग की तरह काम करता है, एक प्रोग्राम के परिप्रेक्ष्य से जो इसका उपयोग करता है। MS-DOS के बाद के संस्करणों (लगभग 5.0 संस्करण से शुरू) में EMM386 ड्राइवर शामिल था, जो XMS का उपयोग करके EMS मेमोरी का अनुकरण करता है, प्रोग्राम को विस्तारित मेमोरी का उपयोग करने की अनुमति देता है, भले ही वे EMS के लिए लिखे गए हों। Microsoft Windows उन प्रोग्रामों के लिए भी XMS का अनुकरण करता है, जिन्हें इसकी आवश्यकता होती है।
वीडियो गेम कंसोल
कुछ वीडियो गेम कंसोल में बैंक स्विचिंग का भी उपयोग किया गया था।[13]उदाहरण के लिए, अटारी 2600, केवल 4 KB ROM को संबोधित कर सकता था, इसलिए बाद में 2600 गेम कार्ट्रिजमें अधिक ROM के उपयोग की अनुमति देने के लिए अपने स्वयं के बैंक स्विचिंग हार्डवेयर शामिल थे और इस प्रकार अधिक परिष्कृत गेम (अधिक प्रोग्राम कोड के माध्यम से और समान रूप से) की अनुमति देते थे। महत्वपूर्ण, बड़ी मात्रा में गेम डेटा जैसे कि ग्राफ़िक्स और विभिन्न गेम चरण)।[14] निन्टेंडो एंटरटेनमेंट सिस्टम में एक संशोधित 6502 था लेकिन इसके कारतूस में कभी-कभी एक मेगाबिट्सया अधिक ROM होता था, जिसे बैंक स्विचिंग के माध्यम से संबोधित किया जाता था जिसे मल्टी-मेमोरी कंट्रोलर कहा जाता है। गेम ब्वॉय कार्ट्रिज ने एमबीसी (मेमोरी बैंक कंट्रोलर) नामक एक चिप का इस्तेमाल किया, जो न केवल रॉम बैंक स्विचिंग की पेशकश करता है, बल्कि कार्ट्रिज स्टेटिक रैंडम-एक्सेस मेमोरी बैंक स्विचिंग और यहां तक कि अवरक्त या रंबल मोटर्स जैसे बाह्य उपकरणों तक पहुंच प्रदान करता है। बैंक स्विचिंग अभी भी बाद के गेम सिस्टम पर इस्तेमाल किया जा रहा था। कई सेगामेगा ड्राइव कार्ट्रिज, जैसे सुपर स्ट्रीट फाइटर IIआकार में 4 एमबी से अधिक थे और इस तकनीक के उपयोग की आवश्यकता थी (4 एमबी अधिकतम पता आकार था)। गेमपार्क होल्डिंग्स से GP2X हैंडहेल्ड दूसरे प्रोसेसर के लिए स्टार्ट एड्रेस (या मेमोरी ऑफ़सेट) को नियंत्रित करने के लिए बैंक स्विचिंग का उपयोग करता है।
वीडियो प्रोसेसिंग
कुछ प्रकार के कंप्यूटर वीडियो डिस्प्ले में, वीडियो प्रदर्शन को बेहतर बनाने के लिए डबल बफरिंग (कंप्यूटर ग्राफिक्स) की संबंधित तकनीक का उपयोग किया जा सकता है। इस मामले में, जबकि प्रोसेसर भौतिक स्मृति स्थानों के एक सेट की सामग्री को अद्यतन कर रहा है, वीडियो पीढ़ी हार्डवेयर दूसरे सेट की सामग्री तक पहुंच और प्रदर्शित कर रहा है। जब प्रोसेसर ने अपना अपडेट पूरा कर लिया है, तो यह सक्रिय बैंकों को स्वैप करने के लिएवीडियो प्रदर्शन प्रोसेसर को संकेत दे सकता है, ताकि स्क्रीन पर दिखाई देने वाला संक्रमण कलाकृतियों या विरूपण से मुक्त हो। इस मामले में, प्रोसेसर के पास एक ही बार में सभी मेमोरी तक पहुंच हो सकती है, लेकिन वीडियो डिस्प्ले हार्डवेयर वीडियो मेमोरी के कुछ हिस्सों के बीच बैंक-स्विच होता है। यदि वीडियो मेमोरी के दो (या अधिक) बैंकों में थोड़ी अलग छवियां होती हैं, तो उनके बीच तेजी से साइकिल चलाना (पृष्ठ-फ़्लिपिंग) एनीमेशन या अन्य दृश्य प्रभाव पैदा कर सकता है जो प्रोसेसर अन्यथा सीधे निष्पादित करने के लिए बहुत धीमा हो सकता है।
वैकल्पिक और उत्तराधिकारी तकनीक
बैंक स्विचिंग को बाद में कई 16-बिट सिस्टम में विभाजन द्वारा प्रतिस्थापित किया गया, जिसने बदले में मेमोरी प्रबंधन इकाइयों को पेजिंग करने का रास्ता दिया। हालांकि, एम्बेडेड सिस्टम में, बैंक स्विचिंग का उपयोग अक्सर इसकी सादगी, कम लागत और सामान्य प्रयोजन कंप्यूटिंग की तुलना में उन संदर्भों के लिए अक्सर बेहतर अनुकूलन के लिए किया जाता है।
यह भी देखें
- बग़ल में पता स्थान , बीबीसी माइक्रो पर बैंक स्विचिंग का एक उदाहरण
- ओवरले (प्रोग्रामिंग)
संदर्भ
- ↑ Aspinall, D., ed. (1978). The Microprocessor and its application: an advanced course. CUP Archive. pp. 47–50. ISBN 0-521-22241-9.
- ↑ Bell, C. Gordon; Newell, Allen (1971). Computer structures: readings and examples. McGraw Hill. pp. 156.
- ↑ "Storage Control". Control Data 160-A Computer Programming Manual (PDF). CDC. March 1963. p. 2-09. 145e.
- ↑ Control Data 3600 Computer System Reference Manual (PDF). CDC. 60021300E.
- ↑ Heath, Steve (2003). Embedded systems design. Newnes. pp. 242. ISBN 0-7506-5546-1.
- ↑ 6.0 6.1 Mueller, Scott (1992). Upgrading and Repairing PCs (2 ed.). Que Books. pp. 699–700. ISBN 0-88022-856-3. Retrieved 2020-02-08.
{{cite book}}: CS1 maint: url-status (link) - ↑ Garland, Harry (March 1977). "Design Innovations in Personal Computers". Computer. IEEE Computer Society. 10 (3): 25. doi:10.1109/c-m.1977.217669. S2CID 32243439. Retrieved 2020-02-08.
An eight-position DIP switch on such cards is used to select one (or more) of eight banks of memory.
{{cite journal}}: CS1 maint: url-status (link) - ↑ Garland, Harry (1979). Introduction to Microprocessor System Design. McGraw-Hill Book Company. p. 93. ISBN 0-07-022871-X. Retrieved 2020-02-08.
With memory bank select, memory space is arranged in a number of separate banks of up to 64K each.
{{cite book}}: CS1 maint: url-status (link) - ↑ Hogan, Thom (1981-06-08). "Share and Share Alike: Multiuser Hardware Explained". InfoWorld. Vol. 3, no. 11. p. 18. Retrieved 2020-02-08.
Cromemco was the first microcomputer manufacturer to refine and exploit bank switching.
{{cite news}}: CS1 maint: url-status (link) - ↑ Freiberger, Paul (1982-10-25). "Digital Research offers CP/M upgrade". InfoWorld. p. 1.
- ↑ "New 1-2-3 Gets 4 Megabytes of Memory, Lotus, Intel Break PC DOS Memory Barrier". InfoWorld. 1985-04-29.
- ↑ "EMS Update Gives DOS Improved Multitasking". InfoWorld. 1987-08-17.
- ↑ Sinofsky, Brian (2002). Carey, Charles W. (ed.). American inventors, entrepreneurs & business visionaries. Infobase Publishing. pp. 322–324. ISBN 0-8160-4559-3. Retrieved 2020-02-08.
{{cite book}}: CS1 maint: url-status (link) - ↑ Grand, Joe; Russell, Ryan; Mitnick, Kevin D. (2004). Hardware hacking: have fun while voiding your warranty. Syngress. pp. 229. ISBN 1-932266-83-6. Retrieved 2020-02-08.
{{cite book}}: CS1 maint: url-status (link)
<ref> tag with name "Ross_1995" defined in <references> is not used in prior text.
इस पृष्ठ में अनुपलब्ध आंतरिक कड़ियों की सूची
- बूटिंग
- microcontroller
- निर्देश सेट वास्तुकला
- टीआरएस-80 मॉडल 4
- टीआरएस-80 मॉडल II
- प्राचीन
- अपर मेमोरी एरिया
- एम्यूलेटर
- विस्तारित स्मृति
- स्मृति प्रबंधन इकाई
बाहरी संबंध
- "Story about bank switching in the Apple II". Archived from the original on 26 March 2014.
{{cite web}}:|archive-date=/|archive-url=timestamp mismatch (help) - "What Is Bank Switching?".