कंप्यूटर आर्किटेक्चर में डायरेक्ट मेमोरी एक्सेस (डीएमए)

समस्याओं को खत्म करने के लिए हमारे साधन का प्रयास करें





कंप्यूटर प्रोग्राम के निष्पादन के लिए, कंप्यूटर के एक से अधिक घटकों के समकालिक कार्य की आवश्यकता होती है। उदाहरण के लिए, प्रोसेसर - आवश्यक नियंत्रण जानकारी, पते… आदि प्रदान करना, बसों - सूचना और डेटा को स्मृति से / I / O उपकरणों तक पहुँचाना… आदि। सिस्टम का दिलचस्प कारक वह तरीका होगा जो प्रोसेसर, मेमोरी और आई / ओ उपकरणों के बीच सूचना के हस्तांतरण को संभालता है। आमतौर पर, प्रोसेसर डेटा को स्थानांतरित करने की सभी प्रक्रिया को नियंत्रित करते हैं, गंतव्य पर डेटा के भंडारण के लिए स्थानांतरण शुरू करने से सही। यह प्रोसेसर पर लोड जोड़ता है और ज्यादातर समय यह आदर्श स्थिति में रहता है, इस प्रकार सिस्टम की दक्षता कम हो जाती है। I / O उपकरणों और मेमोरी के बीच डेटा के हस्तांतरण को गति देने के लिए, DMA कंट्रोलर स्टेशन मास्टर के रूप में कार्य करता है। डीएमए नियंत्रक प्रोसेसर के न्यूनतम हस्तक्षेप के साथ डेटा स्थानांतरित करता है।

डीएमए नियंत्रक क्या है?

डीएमए शब्द प्रत्यक्ष मेमोरी एक्सेस के लिए है। डायरेक्ट मेमोरी एक्सेस के लिए उपयोग किए जाने वाले हार्डवेयर डिवाइस को डीएमए कंट्रोलर कहा जाता है। डीएमए नियंत्रक एक नियंत्रण इकाई है , I / O डिवाइस का हिस्सा इंटरफ़ेस सर्किट , जो प्रोसेसर से न्यूनतम हस्तक्षेप के साथ I / O उपकरणों और मुख्य मेमोरी के बीच डेटा के ब्लॉक को स्थानांतरित कर सकता है।




कंप्यूटर वास्तुकला में डीएमए नियंत्रक आरेख

डीएमए नियंत्रक बस और इनपुट-आउटपुट डिवाइस के बीच एक इंटरफ़ेस प्रदान करता है। यद्यपि यह प्रोसेसर के हस्तक्षेप के बिना डेटा स्थानांतरित करता है, यह प्रोसेसर द्वारा नियंत्रित किया जाता है। प्रोसेसर DMA कंट्रोलर को आरंभिक पता, डेटा ब्लॉक में शब्दों की संख्या और डेटा .i.e के हस्तांतरण की दिशा में भेजकर आरंभ करता है। I / O डिवाइस से मेमोरी या मुख्य मेमोरी से I / O डिवाइस से। एक से अधिक बाहरी डिवाइस को डीएमए कंट्रोलर से जोड़ा जा सकता है।

कंप्यूटर आर्किटेक्चर में डीएमए

कंप्यूटर आर्किटेक्चर में डीएमए



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

डीएमए नियंत्रक का विशिष्ट ब्लॉक आरेख

डीएमए नियंत्रक का विशिष्ट ब्लॉक आरेख

डीएमए नियंत्रक का कार्य करना

डेटा ट्रांसफर करने के लिए DMA कंट्रोलर को प्रोसेसर के साथ बस को साझा करना होगा। एक निश्चित समय पर बस रखने वाले उपकरण को बस मास्टर कहा जाता है। जब I / O डिवाइस से मैमोरी या वाइस वर्जन में ट्रांसफर करना पड़ता है, तो प्रोसेसर करंट प्रोग्राम के एक्जीक्यूशन को रोक देता है, इंक्रीमेंट करता है कार्यक्रम काउंटर, स्टैक पर डेटा ले जाता है फिर पता बस पर डीएमए नियंत्रक को एक डीएमए चयन सिग्नल भेजता है।

यदि डीएमए नियंत्रक मुक्त है, तो यह बस अनुरोध सिग्नल को बढ़ाकर प्रोसेसर से बस के नियंत्रण का अनुरोध करता है। प्रोसेसर बस अनुदान संकेत को बढ़ाकर बस को नियंत्रक को देता है, अब डीएमए नियंत्रक बस मास्टर है। प्रोसेसर डीएमए कंट्रोलर को मैमोरी एड्रेस, डेटा के ब्लॉक्स की संख्या और डेटा ट्रांसफर की दिशा में भेजकर शुरू करता है। DMA कंट्रोलर को डेटा ट्रांसफर टास्क असाइन करने के बाद, डेटा ट्रांसफर पूरा होने तक आदर्श रूप से प्रतीक्षा करने के बजाय, प्रोसेसर स्टैक से निर्देश प्राप्त करने के बाद प्रोग्राम के निष्पादन को फिर से शुरू करता है।


डीएमए द्वारा कंप्यूटर में डीएमए द्वारा डेटा का स्थानांतरण

डीएमए नियंत्रक द्वारा कंप्यूटर में डेटा का स्थानांतरण

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

जब I / O डिवाइस ट्रांसफर शुरू करना चाहता है तो यह DMA कंट्रोलर को DMA रिक्वेस्ट सिग्नल भेजता है, जिसके लिए कंट्रोलर फ्री होने पर उसे स्वीकार करता है। फिर नियंत्रक बस के लिए प्रोसेसर का अनुरोध करता है, बस अनुरोध सिग्नल को बढ़ाता है। बस अनुदान संकेत प्राप्त करने के बाद यह डिवाइस से डेटा स्थानांतरित करता है। एन चैनल डीएमए कंट्रोलर के लिए बाहरी उपकरणों की संख्या को जोड़ा जा सकता है।

डीएमए डेटा को तीन मोड में स्थानांतरित करता है जिसमें निम्नलिखित शामिल हैं।

सेवा मेरे) बर्स्ट मोड : इस मोड में डीएमए पूरे डेटा ट्रांसफर के बाद ही बसों को सीपीयू को सौंपता है। इस बीच, यदि सीपीयू को बस की आवश्यकता होती है तो उसे आदर्श रहना होगा और डेटा ट्रांसफर की प्रतीक्षा करनी होगी।

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

सी) पारदर्शी मोड: यहां, डीएमए केवल डेटा स्थानांतरित करता है जब सीपीयू उस निर्देश को निष्पादित कर रहा है जिसमें बसों के उपयोग की आवश्यकता नहीं है।

8237 डीएमए नियंत्रक

  • 8237 में चैनलों की संख्या बढ़ाने के लचीलेपन के साथ 4 I / O चैनल हैं।
  • प्रत्येक चैनल को व्यक्तिगत रूप से प्रोग्राम किया जा सकता है और इसमें 64k पता और डेटा क्षमता होती है।
  • टाइम कंट्रोल ब्लॉक, प्रोग्राम कमांड कंट्रोल ब्लॉक, प्रायोरिटी एनकोडर ब्लॉक 8237A के तीन मुख्य ब्लॉक हैं।
  • आंतरिक समय और बाहरी नियंत्रण संकेत समय नियंत्रण ब्लॉक द्वारा संचालित होते हैं।
  • माइक्रोप्रोसेसर द्वारा डीएमए को दिए गए विभिन्न कमांड प्रोग्राम कमांड कंट्रोल ब्लॉक द्वारा डिकोड किए जाते हैं।
  • किस चैनल को सर्वोच्च प्राथमिकता दी जानी है यह प्राथमिकता से तय किया जाता है एनकोडर ब्लॉक
    8237A में 27 आंतरिक रजिस्टर हैं।

8237A दो चक्रों में संचालित होता है- आदर्श चक्र और सक्रिय चक्र, जहां प्रत्येक चक्र में 7 अलग-अलग अवस्थाएं होती हैं, जिनमें से प्रत्येक में एक घड़ी की अवधि होती है।

S0- पहला राज्य, जहां नियंत्रक ने बस के लिए अनुरोध किया है और प्रोसेसर से पावती की प्रतीक्षा कर रहा है।

S1, S2, S3, S4 को 8237A के कार्यशील राज्य कहा जाता है जहां डेटा का वास्तविक हस्तांतरण होता है। अगर ट्रांसफर वेट स्टेट्स के लिए और समय की जरूरत है तो SW इन राज्यों के बीच जोड़े जाते हैं।

मेमोरी के लिए- मेमोरी ट्रांसफर रीड-से-मेमोरी और राइट-टू-मेमोरी ट्रांसफर करना पड़ता है। एकल हस्तांतरण के लिए आठ राज्यों की आवश्यकता होती है। S11, S12, S13, S14 की सदस्यता वाले पहले चार राज्य रीड-से-मेमोरी ट्रांसफर करते हैं और अगले चार S21, S22, S23, S24 राइट-टू-मैमोरी ट्रांसफर के लिए हैं।

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

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

8237 पिनडिग्राम

8237 पिन आरेख

8257 डीएमए नियंत्रक

जब एकल इंटेल 8212 I / O पोर्ट डिवाइस के साथ जोड़ा जाता है, तो 8257 डीएमए नियंत्रक एक पूर्ण 4 चैनल बनाता है डीएमए नियंत्रक । स्थानांतरण अनुरोध प्राप्त होने पर 8257 नियंत्रक-

  • प्रोसेसर से सिस्टम बस पर नियंत्रण प्राप्त करता है।
  • उच्चतम प्राथमिकता चैनल से जुड़ा परिधीय स्वीकार किया जाता है।
  • मेमोरी एड्रेस के कम से कम महत्वपूर्ण बिट्स सिस्टम बस के एड्रेस लाइन्स A0-A7 पर ले जाया जाता है।
  • सबसे शानदार 8 बिट्स स्मृति पता डेटा लाइनों के माध्यम से 8212 I / O पोर्ट पर संचालित होता है।
  • बाह्य उपकरणों और संबोधित स्मृति स्थानों के बीच डेटा के हस्तांतरण के लिए उपयुक्त नियंत्रण संकेत उत्पन्न करता है।
  • जब बाइट्स की निर्दिष्ट संख्या को स्थानांतरित किया जाता है, तो नियंत्रक टर्मिनल गणना (टीसी) आउटपुट को सक्रिय करके स्थानांतरण के सीपीयू अंत की सूचना देता है।

प्रत्येक चैनल के लिए 8257 में दो होते हैं 16-बिट रजिस्टर (1) डीएमए एड्रेस रजिस्टर और 2) टर्मिनल काउंट रजिस्टर, जिसे चैनल सक्षम होने से पहले आरंभीकृत किया जाना चाहिए। एक्सेस किए जाने वाले पहले मेमोरी लोकेशन का पता डीएमए एड्रेस रजिस्टर में लोड किया जाता है। टर्मिनल काउंट रजिस्टर में लोड किए गए मूल्य का निचला क्रम 14 बिट्स टर्मिनल गणना आउटपुट की सक्रियता से पहले डीएमए चक्र माइनस एक की संख्या को इंगित करता है। एक चैनल के लिए ऑपरेशन का प्रकार टर्मिनल काउंट रजिस्टर के सबसे महत्वपूर्ण दो बिट्स द्वारा इंगित किया गया है।

8257 पिन आरेख

8257 पिन आरेख

डीएमए नियंत्रक के लाभ और नुकसान

डीएमए नियंत्रक के फायदे और नुकसान में निम्नलिखित शामिल हैं।

लाभ

  • सीपीए की भागीदारी को दरकिनार करके डीएमए मेमोरी संचालन को गति देता है।
  • सीपीयू पर काम का बोझ कम हो जाता है।
  • प्रत्येक हस्तांतरण के लिए, केवल कुछ संख्या में घड़ी चक्र की आवश्यकता होती है

नुकसान

  • जब डेटा ट्रांसफर के लिए डीएमए का उपयोग किया जाता है तो कैश कोहेरेंस समस्या देखी जा सकती है।
  • सिस्टम की कीमत बढ़ाता है।

DMA ( प्रत्यक्ष मेमोरी एक्सेस ) नियंत्रक का उपयोग ग्राफिक्स कार्ड, नेटवर्क कार्ड, साउंड कार्ड आदि में किया जा रहा है ... डीएमए का उपयोग मल्टी-कोर प्रोसेसर में इंट्रा-चिप हस्तांतरण के लिए भी किया जाता है। इसके तीन मोड में से एक में काम करने पर, डीएमए प्रोसेसर के भार को काफी कम कर सकता है। आपने डीएमए के किस मोड में काम किया है? आप किस मोड को अधिक प्रभावी मानते हैं?