डिरेक्ट मेमोरी एक्सेस

डायरेक्ट मेमोरी एक्सेस (डीएमए) कंप्यूटर सिस्टम की एक विशेषता है और कुछ हार्डवेयर सबसिस्टम को सेंट्रल प्रोसेसिंग यूनिट (सीपीयू) से स्वतंत्र रूप से मुख्य सिस्टम मेमोरी तक पहुंचने की अनुमति देता है।

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

डीएमए का उपयोग "मेमोरी टू मेमोरी" कॉपी करने या मेमोरी के भीतर डेटा को ले जाने के लिए भी किया जा सकता है। डीएमए महंगे मेमोरी ऑपरेशंस को लोड कर सकता है, जैसे कि बड़ी कॉपी या स्कैटर-गैदर ऑपरेशंस, सीपीयू से एक समर्पित डीएमए इंजन के लिए। आई/ओ एक्सेलेरेशन टेक्नोलॉजी एक कार्यान्वयन उदाहरण है। डीएमए नेटवर्क-ऑन-चिप और इन-मेमोरी कंप्यूटिंग आर्किटेक्चर में प्रवृत्ति रखता है।

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

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

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

बर्स्ट मोड
बर्स्ट मोड में, डेटा का एक पूरा ब्लॉक सन्निहित अनुक्रम में स्थानांतरित किया जाता है। एक बार डीएमए नियंत्रक को सीपीयू द्वारा सिस्टम बस तक पहुंच प्रदान करने के बाद, यह सीपीयू को सिस्टम बसों के नियंत्रण को वापस जारी करने से पहले डेटा ब्लॉक में डेटा के सभी बाइट्स को स्थानांतरित करता है, सीपीयू को अपेक्षाकृत लंबे समय तक निष्क्रिय छोड़ देता है। इस मोड को "ब्लॉक ट्रांसफर मोड" भी कहा जाता है।

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

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

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

इसी तरह, यदि किसी डिवाइस द्वारा मेमोरी में एक नया मान लिखने पर X की कैश्ड कॉपी अमान्य नहीं होती है, तो CPU X के पुराने मान पर काम करेगा।

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

हाइब्रिड भी मौजूद हैं, जहां द्वितीयक L2 कैश सुसंगत है जबकि L1 कैश (आमतौर पर ऑन-सीपीयू) सॉफ्टवेयर द्वारा प्रबंधित किया जाता है।

आईएसए
मूल IBM पर्सनल कंप्यूटर (और अनुवर्ती IBM पर्सनल कंप्यूटर XT|PC/XT) में, केवल एक Intel 8237  DMA नियंत्रक था जो चार DMA चैनल प्रदान करने में सक्षम था (0–3 क्रमांकित)। इन डीएमए चैनलों ने 8-बिट ट्रांसफर किए (क्योंकि 8237 एक 8-बिट डिवाइस था, आदर्श रूप से पीसी के  इंटेल 8088  सीपीयू/बस आर्किटेक्चर से मेल खाता था), केवल पहले ( इंटेल 8086 /8088-मानक)  मेगाबाइट  रैम को संबोधित कर सकता था, और उस स्थान के भीतर एकल 64  किलोबाइट  सेगमेंट को संबोधित करने तक सीमित थे (हालांकि स्रोत और गंतव्य चैनल अलग-अलग सेगमेंट को संबोधित कर सकते थे)। इसके अतिरिक्त, नियंत्रक का उपयोग केवल विस्तार बस I/O उपकरणों के लिए, से या उनके बीच स्थानांतरण के लिए किया जा सकता है, क्योंकि 8237 केवल चैनल 0 और 1 का उपयोग करके मेमोरी-टू-मेमोरी ट्रांसफर कर सकता है, जिनमें से पीसी में चैनल 0 (और XT) )  गतिशील स्मृति   मेमोरी रिफ्रेश  के लिए समर्पित था। इसने इसे एक सामान्य-उद्देश्य  चमक  के रूप में उपयोग करने से रोक दिया, और इसके परिणामस्वरूप पीसी में मेमोरी चालें ब्लॉक हो गईं, सीपीयू की सामान्य पीआईओ गति द्वारा सीमित, बहुत धीमी थी।

आईबीएम पीसी/एटी के साथ, उन्नत एटी बस  ( उद्योग मानक वास्तुकला, या उद्योग मानक वास्तुकला के रूप में अधिक परिचित रूप से पुन: नामित) ने तीन अतिरिक्त प्रदान करने के लिए एक दूसरा 8237 डीएमए नियंत्रक जोड़ा, और जैसा कि एक्सटी के अतिरिक्त विस्तार के साथ संसाधन संघर्ष द्वारा हाइलाइट किया गया है। मूल पीसी, बहुत जरूरी चैनल (5-7; चैनल 4 का उपयोग पहले 8237 के कैस्केड के रूप में किया जाता है)।  80286  सीपीयू के पूर्ण 16 एमबी मेमोरी एड्रेस स्पेस को संबोधित करने के लिए पेज रजिस्टर को भी फिर से जोड़ा गया था। यह दूसरा नियंत्रक भी 16-बिट स्थानांतरण करने में सक्षम तरीके से एकीकृत किया गया था जब I/O डिवाइस को डेटा स्रोत और/या गंतव्य के रूप में उपयोग किया जाता है (क्योंकि यह वास्तव में केवल मेमोरी-टू-मेमोरी ट्रांसफर के लिए डेटा को संसाधित करता है, अन्यथा बस 16-बिट सिस्टम के अन्य भागों के बीच डेटा प्रवाह को नियंत्रित करना, अपनी डेटा बस की चौड़ाई को अपेक्षाकृत महत्वहीन बनाना), ऊपरी तीन चैनलों का उपयोग किए जाने पर डेटा थ्रूपुट को दोगुना करना। अनुकूलता के लिए, निचले चार डीएमए चैनल अभी भी केवल 8-बिट ट्रांसफर तक ही सीमित थे, और मेमोरी-टू-मेमोरी ट्रांसफर अब तकनीकी रूप से संभव थे क्योंकि चैनल 0 को डीआरएएम रीफ्रेश को संभालने से मुक्त होने के कारण व्यावहारिक दृष्टिकोण से वे सीपीयू अब जो हासिल कर सकता था, उसकी तुलना में नियंत्रक के परिणामी कम थ्रुपुट के कारण सीमित मूल्य के थे (यानी, एक 16-बिट, अधिक अनुकूलित 80286 न्यूनतम 6 मेगाहर्ट्ज पर चल रहा है, बनाम 4.77 मेगाहर्ट्ज पर लॉक किया गया 8-बिट नियंत्रक)। दोनों ही मामलों में, 64 kB  x86 मेमोरी सेगमेंटेशन  समस्या बनी रही, जिसमें अलग-अलग ट्रांसफ़र 16-बिट मोड में भी सेगमेंट को पार करने में असमर्थ थे (बजाय उसी सेगमेंट की शुरुआत में लपेटे गए थे), हालांकि यह व्यवहारिक रूप से प्रोग्रामिंग जटिलता की समस्या थी प्रदर्शन की तुलना में लगभग हर 15 माइक्रोसेकंड|μs में बस पर एकाधिकार करने के लिए DRAM रिफ्रेश (हालांकि संभाला) की निरंतर आवश्यकता ने बड़े (और तेज, लेकिन निर्बाध) ब्लॉक ट्रांसफर के उपयोग को रोका।

उनके धीमे प्रदर्शन के कारण (1.6 मेगाबाइट/सेकेंड अधिकतम 8-बिट स्थानांतरण क्षमता 5 मेगाहर्ट्ज पर, लेकिन ISA बस ओवरहेड्स और मेमोरी रीफ्रेश बाधाओं जैसे अन्य हस्तक्षेप के कारण PC/XT में 0.9 MB/s और AT में 16-बिट स्थानांतरण के लिए 1.6 MB/s से अधिक नहीं ) और किसी भी गति ग्रेड की अनुपलब्धता जो मूल पीसी के मानक 4.77 मेगाहर्ट्ज घड़ी से अधिक गति पर चलने वाले प्रत्यक्ष प्रतिस्थापन की स्थापना की अनुमति देगा, ये उपकरण 1980 के दशक के उत्तरार्ध से प्रभावी रूप से अप्रचलित हो गए हैं। विशेष रूप से, 1985 में 80386  प्रोसेसर का आगमन और 32-बिट ट्रांसफर के लिए इसकी क्षमता (हालांकि  80186  के बाद इंटेल सीपीयू में एड्रेस कैलकुलेशन और ब्लॉक मेमोरी चाल की दक्षता में काफी सुधार का मतलब था कि पीआईओ 16-बिट-बस द्वारा भी ट्रांसफर करता है। 80286 और  80386SX  अभी भी आसानी से 8237 से आगे निकल सकते हैं), साथ ही ( विस्तारित उद्योग मानक वास्तुकला ) के विकास के विकास या ( माइक्रो चैनल आर्किटेक्चर,  वीईएसए स्थानीय बस  और  पेरिफ़ेरल कंपोनेंट इंटरकनेक्ट ) के लिए प्रतिस्थापन आईएसए बस अपने स्वयं के बहुत अधिक के साथ -प्रदर्शन डीएमए सबसिस्टम (ईआईएसए के लिए अधिकतम 33 एमबी/एस तक, 40 एमबी/एस एमसीए, आमतौर पर 133 एमबी/एस वीएलबी/पीसीआई) ने मूल डीएमए नियंत्रकों को बूस्टर की तुलना में प्रदर्शन मिलस्टोन की तरह अधिक बना दिया। उन्हें बाद की मशीनों पर अंतर्निहित लीगेसी पीसी हार्डवेयर का समर्थन करने के लिए आवश्यक सीमा तक समर्थित किया गया था। 32-बिट विस्तार बसों के बाद ISA DMA का उपयोग जारी रखने वाले पुराने हार्डवेयर के टुकड़े  ध्वनि विस्फ़ोटक मानक  थे जिन्हें  ध्वनि फाड़ने वाला  मानक के साथ पूर्ण हार्डवेयर संगतता बनाए रखने की आवश्यकता थी; और मदरबोर्ड पर सुपर I/O डिवाइस जो अक्सर एक अंतर्निहित  फ्लॉपी डिस्क  नियंत्रक, एक  इन्फ्रारेड डेटा एसोसिएशन  इन्फ्रारेड नियंत्रक जब एफआईआर (फास्ट इन्फ्रारेड) मोड का चयन किया जाता है, और एक  IEEE 1284  समानांतर पोर्ट नियंत्रक जब ECP मोड का चयन किया जाता है। ऐसे मामलों में जहां एक मूल 8237s या प्रत्यक्ष संगत अभी भी उपयोग किए गए थे, सिस्टम के वास्तविक पता स्थान या स्थापित मेमोरी की मात्रा की परवाह किए बिना इन डिवाइसों में या से स्थानांतरण अभी भी पहले 16 MB मुख्य  यादृच्छिक अभिगम स्मृति  तक सीमित हो सकता है।

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

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

DRQ डेटा अनुरोध के लिए खड़ा है; डेटा स्वीकार करने के लिए DACK। डीएमए कार्यक्षमता वाले कंप्यूटर सिस्टम के हार्डवेयर ढांच के रूप में ्स पर देखे गए ये प्रतीक, सीपीयू और डीएमए नियंत्रक के बीच इलेक्ट्रॉनिक सिग्नलिंग लाइनों का प्रतिनिधित्व करते हैं। प्रत्येक डीएमए चैनल में एक अनुरोध और एक पावती पंक्ति होती है। डीएमए का उपयोग करने वाले डिवाइस को असाइन किए गए डीएमए चैनल की दोनों पंक्तियों का उपयोग करने के लिए कॉन्फ़िगर किया जाना चाहिए।

16-बिट आईएसए ने बस मास्टरिंग की अनुमति दी। मानक आईएसए डीएमए कार्य:

1. DRAM Refresh (obsolete)

2. User hardware, usually sound card 8-bit DMA

3. Floppy disk controller

4. Hard disk (obsoleted by PIO modes, and replaced by UDMA modes), Parallel Port (ECP capable port), certain SoundBlaster Clones like the OPTi 928

5. Cascade to PC/XT DMA controller

6. Hard Disk (PS/2 only), user hardware for all others, usually sound card 16-bit DMA

7. User hardware

8. User hardware

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

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

एक आधुनिक x86 सीपीयू 4 जीबी से अधिक मेमोरी का उपयोग कर सकता है, या तो x86-64  सीपीयू के मूल 64-बिट मोड का उपयोग कर सकता है, या भौतिक पता एक्सटेंशन (पीएई), 36-बिट एड्रेसिंग मोड का उपयोग कर सकता है। ऐसी स्थिति में, 32-बिट एड्रेस बस के साथ डीएमए का उपयोग करने वाला उपकरण 4 जीबी लाइन के ऊपर मेमोरी को एड्रेस करने में असमर्थ होता है। नया  दोहरा पता चक्र  (DAC) तंत्र, यदि PCI बस और डिवाइस दोनों पर ही लागू किया जाता है, 64-बिट डीएमए एड्रेसिंग सक्षम करता है। अन्यथा, ऑपरेटिंग सिस्टम को या तो महंगा  डबल बफरिंग (डीएमए) DMA) (DOS/Windows नामकरण) जिसे  उछाल बफर  ( FreeBSD /Linux) के रूप में भी जाना जाता है, का उपयोग करके समस्या के समाधान की आवश्यकता होगी, या यह एड्रेस ट्रांसलेशन सेवाएं प्रदान करने के लिए  IOMMU  का उपयोग कर सकता है। अगर कोई मौजूद है।

आई/ओएटी
एक सामान्य प्रयोजन सीपीयू में शामिल डीएमए इंजन के एक उदाहरण के रूप में, कुछ इंटेल झियोन चिपसेट में आई/ओ एक्सेलेरेशन टेक्नोलॉजी (आई/ओएटी) नामक एक डीएमए इंजन शामिल है, जो मुख्य सीपीयू से मेमोरी कॉपी को ऑफलोड कर सकता है, इसे अन्य काम करने के लिए मुक्त कर सकता है।. 2006 में, इंटेल के लिनक्स कर्नेल  डेवलपर एंड्रयू ग्रोवर ने नेटवर्क ट्रैफ़िक प्रतियों को ऑफ़लोड करने के लिए I/OAT का उपयोग करके बेंचमार्क का प्रदर्शन किया और वर्कलोड प्राप्त करने के साथ CPU उपयोग में 10% से अधिक सुधार नहीं पाया।

डीडीआईओ
DMA तंत्र में आगे प्रदर्शन-उन्मुख संवर्द्धन उनके डेटा डायरेक्ट I/O (DDIO) विशेषता के साथ Intel Xeon E5 प्रोसेसर में पेश किए गए हैं, जिससे DMA विंडो सिस्टम RAM के बजाय CPU कैश के भीतर रहती हैं। परिणामस्वरूप, CPU कैश का उपयोग I/O के लिए प्राथमिक स्रोत और गंतव्य के रूप में किया जाता है, जिससे नेटवर्क इंटरफ़ेस कंट्रोलर (NIC) स्थानीय CPU के अंतिम स्तर कैश (L3 कैश) में सीधे DMA को अनुमति देता है और I/O की महंगी लाने से बचता है। सिस्टम रैम से डेटा। परिणामस्वरूप, DDIO समग्र I/O प्रसंस्करण विलंबता को कम करता है, I/O के प्रसंस्करण को पूरी तरह से कैश में निष्पादित करने की अनुमति देता है, उपलब्ध RAM बैंडविड्थ/विलंबता को एक प्रदर्शन बाधा बनने से रोकता है, और अनुमति देकर बिजली की खपत को कम कर सकता है RAM कम-संचालित स्थिति में अधिक समय तक रहने के लिए।

एएचबी
सिस्टम-ऑन-अ-चिप | सिस्टम-ऑन-ए-चिप और  अंतः स्थापित प्रणाली  में, विशिष्ट सिस्टम बस इंफ्रास्ट्रक्चर एक जटिल ऑन-चिप बस है जैसे उन्नत माइक्रोकंट्रोलर  एआरएम वास्तुकला  # उच्च-प्रदर्शन बस | एएमबीए उच्च-प्रदर्शन बस। AMBA दो प्रकार के AHB घटकों को परिभाषित करता है: मास्टर और स्लेव। स्लेव इंटरफ़ेस क्रमादेशित I/O के समान है जिसके माध्यम से सॉफ़्टवेयर (एम्बेडेड CPU पर चल रहा है, जैसे ARM आर्किटेक्चर) डिवाइस के अंदर I/O रजिस्टरों या (कम सामान्यतः) स्थानीय मेमोरी ब्लॉक को लिख/पढ़ सकता है। सीपीयू को भारी लोड किए बिना सिस्टम मेमोरी से/से डीएमए लेनदेन करने के लिए डिवाइस द्वारा एक मास्टर इंटरफ़ेस का उपयोग किया जा सकता है।

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

आंतरिक रूप से, एक मल्टीचैनल डीएमए इंजन आमतौर पर सॉफ्टवेयर द्वारा प्रोग्राम किए गए कई समवर्ती वेक्टर I/O | स्कैटर-इकट्ठा संचालन करने के लिए डिवाइस में मौजूद होता है।

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

सेल में डीएमए पूरी तरह #कैश सुसंगतता है (ध्यान दें कि डीएमए द्वारा संचालित एसपीई के स्थानीय स्टोर सीपीयू कैश में विश्व स्तर पर सुसंगत कैश के रूप में कार्य नहीं करते हैं)। पढ़ने (प्राप्त करने) और लिखने (पुट) दोनों में, एक डीएमए कमांड 16 केबी तक के आकार के एक ब्लॉक क्षेत्र या 2 से 2048 ऐसे ब्लॉकों की सूची को स्थानांतरित कर सकता है। डीएमए कमांड एक स्थानीय पते और एक दूरस्थ पते की एक जोड़ी निर्दिष्ट करके जारी किया जाता है: उदाहरण के लिए जब एक एसपीई प्रोग्राम एक पुट डीएमए कमांड जारी करता है, तो यह स्रोत के रूप में अपनी स्थानीय मेमोरी का एक पता निर्दिष्ट करता है और वर्चुअल मेमोरी एड्रेस (इंगित करता है) या तो मुख्य स्मृति या किसी अन्य एसपीई की स्थानीय स्मृति) लक्ष्य के रूप में, एक ब्लॉक आकार के साथ। एक प्रयोग के अनुसार, सेल में डीएमए का प्रभावी शिखर प्रदर्शन (एकसमान ट्रैफ़िक के तहत 3 गीगाहर्ट्ज़) प्रति सेकंड 200 जीबी तक पहुँच जाता है।

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

संदर्भ

 * DMA Fundamentals on Various PC Platforms, from A. F. Harvey and Data Acquisition Division Staff NATIONAL INSTRUMENTS
 * mmap and DMA, from Linux Device Drivers, 2nd Edition, Alessandro Rubini & Jonathan Corbet
 * Memory Mapping and DMA, from Linux Device Drivers, 3rd Edition, Jonathan Corbet, Alessandro Rubini, Greg Kroah-Hartman
 * DMA and Interrupt Handling
 * DMA Modes & Bus Mastering

इस पेज में लापता आंतरिक लिंक की सूची

 * रुकावट डालना
 * प्रसंस्करण तत्व
 * एकीकृत परिपथ
 * शब्द (कंप्यूटर वास्तुकला)
 * आईबीएम पर्सनल कंप्यूटर
 * पेरिफ़ेरल कंपोनेंट इंटरकनेक्ट
 * डिवाइस बैंडविड्थ की सूची
 * भौतिक पता विस्तार
 * जिऑन
 * सीपीयू कैश

बाहरी संबंध

 * Mastering the DMA and IOMMU APIs, Embedded Linux Conference 2014, San Jose, by Laurent Pinchart