डीएमए और मेमोरी-मैप किए गए आईओ के बीच क्या अंतर है? वे दोनों मेरे समान दिखते हैं।डीएमए और मेमोरी-मैप किए गए आईओ के बीच क्या अंतर है?
उत्तर
मेमोरी मैप किए गए I/O CPU को विशिष्ट मेमोरी पतों को पढ़ने और लिखकर हार्डवेयर को नियंत्रित करने की अनुमति देता है। आमतौर पर इसका उपयोग निम्न बैंडविड्थ संचालन जैसे नियंत्रण नियंत्रण बिट्स के लिए किया जाएगा।
डीएमए हार्डवेयर को सीधे पढ़ने और लिखने की अनुमति देता है बिना सीपीयू को शामिल करता है। आमतौर पर इसका उपयोग उच्च बैंडविड्थ संचालन जैसे डिस्क I/O या कैमरा वीडियो इनपुट के लिए किया जाएगा।
तो वे मूल रूप से एक ही चीज़ हैं लेकिन विपरीत दिशाओं में? – f126ck
बिल्कुल नहीं। डीएमए तब होता है जब दो डिवाइस जो सीपीयू नहीं हैं, संवाद करने के लिए मेमोरी बस का उपयोग करते हैं (एक डिवाइस के साथ आमतौर पर मुख्य मेमोरी होती है, और सीपीयू द्वारा प्रक्रिया को संसाधित किया जाता है)। मेमोरी मैप किए गए आईओ सीपीयू मेमोरी बस पर डिवाइस से बात कर रहा है जो मुख्य स्मृति नहीं है। – jdizzle
डीएमए डिवाइस को डिवाइस में होने पर भी डीएमए बफर को मैप करने की आवश्यकता क्यों है? – ransh
मेमोरी-मैप किए गए आईओ का अर्थ है कि डिवाइस रजिस्ट्रार मशीन की मेमोरी स्पेस में मैप किए जाते हैं - जब उन मेमोरी क्षेत्रों को सीपीयू द्वारा पढ़ा या लिखा जाता है, तो यह वास्तविक स्मृति की बजाय डिवाइस से पढ़ रहा है या लिख रहा है। डिवाइस से डेटा को वास्तविक मेमोरी बफर में स्थानांतरित करने के लिए, सीपीयू को मेमोरी-मैप किए गए डिवाइस रजिस्टरों से डेटा पढ़ना होगा और इसे बफर (और डिवाइस पर डेटा स्थानांतरित करने के लिए बातचीत) को लिखना होगा।
डीएमए स्थानांतरण के साथ, डिवाइस सीधे वास्तविक मेमोरी बफर से डेटा को स्थानांतरित करने में सक्षम है। सीपीयू डिवाइस को बफर का स्थान बताता है, और फिर डिवाइस सीधे मेमोरी तक पहुंचने पर अन्य काम कर सकता है।
चूंकि अन्य ने पहले से ही प्रश्न का उत्तर दिया है, इसलिए मैं थोड़ा सा इतिहास जोड़ूंगा।
पुराने दिनों में, x86 (पीसी) हार्डवेयर पर, केवल आई/ओ स्पेस और मेमोरी स्पेस था। ये दो अलग-अलग पता रिक्त स्थान थे, विभिन्न बस प्रोटोकॉल और विभिन्न सीपीयू निर्देशों के साथ पहुंचे, लेकिन एक ही प्लग-इन कार्ड स्लॉट पर बात करने में सक्षम थे।
अधिकांश डिवाइस नियंत्रण इंटरफ़ेस और थोक डेटा-स्थानांतरण इंटरफ़ेस दोनों के लिए I/O स्थान का उपयोग करते थे। डेटा तक पहुंचने का सरल तरीका था I/O पते से एक समय में डेटा को एक मेमोरी एड्रेस (जिसे कभी-कभी "बिट-बैंगिंग" के नाम से जाना जाता है) में स्थानांतरित करने के लिए कई सीपीयू निर्देशों को निष्पादित करना था।
स्थानांतरित करने के लिए उपकरणों से डेटा स्वायत्त रूप से होस्ट करने के लिए, स्थानांतरण के लिए उपकरणों के लिए आईएसए बस प्रोटोकॉल में कोई समर्थन नहीं था। एक समझौता समाधान का आविष्कार किया गया था: डीएमए नियंत्रक। यह हार्डवेयर का एक टुकड़ा था जो सीपीयू द्वारा बैठा था और डिवाइस के आई/ओ पते से डेटा को मेमोरी में ले जाने के लिए स्थानान्तरण शुरू किया था, या इसके विपरीत। चूंकि I/O पता समान है, इसलिए डीएमए नियंत्रक एक सीपीयू के समान सटीक संचालन कर रहा है, लेकिन थोड़ा अधिक कुशलतापूर्वक और कुछ स्वतंत्रता पृष्ठभूमि में चलने की इजाजत देता है (हालांकि संभवतः लंबे समय तक नहीं स्मृति से बात करें)।
पीसीआई के दिनों के लिए फास्ट-फॉरवर्ड, और बस प्रोटोकॉल बहुत अधिक स्मार्ट हो गए: कोई भी डिवाइस स्थानांतरण शुरू कर सकता है। तो किसी भी समय इसे पसंद करने वाले किसी भी डेटा को होस्ट करने के लिए किसी भी डेटा को स्थानांतरित करने के लिए, RAID नियंत्रक कार्ड के लिए यह संभव है। इसे "बस मास्टर" मोड कहा जाता है, लेकिन किसी विशेष कारण के लिए लोग इस मोड को "डीएमए" के रूप में संदर्भित नहीं करते हैं, भले ही पुराने डीएमए नियंत्रक लंबे समय तक चले गए हों। पुराने डीएमए स्थानान्तरण के विपरीत, अक्सर कोई संबंधित I/O पता नहीं होता है, और बस मास्टर मोड अक्सर डिवाइस पर मौजूद एकमात्र इंटरफ़ेस होता है, जिसमें कोई CPU "बिट-बैंगिंग" मोड नहीं होता है।
लिनक्स कर्नेल 'डीएमए' में 5000 से अधिक फाइलों में उल्लेख किया गया है, यह एक कारण हो सकता है कि हर कोई अभी भी डीएमए के बारे में बात क्यों करता है। – JohnnyFromBF
डायरेक्ट मेमोरी एक्सेस (डीएमए) सीपीयू के हस्तक्षेप के बिना डेटा को आई/ओ से स्मृति में और स्मृति से I/O में स्थानांतरित करने की तकनीक है। इस उद्देश्य के लिए, डीएमए नियंत्रक नामक एक विशेष चिप का उपयोग सभी गतिविधियों और डेटा के सिंक्रनाइज़ेशन को नियंत्रित करने के लिए किया जाता है। नतीजतन, अन्य डेटा स्थानांतरण तकनीकों की तुलना में, डीएमए बहुत तेज है।
दूसरी ओर, वर्चुअल मेमोरी मुख्य मेमोरी और माध्यमिक मेमोरी के बीच कैश के रूप में कार्य करती है।डेटा को माध्यमिक मेमोरी (हार्ड डिस्क) से मुख्य मेमोरी में अग्रिम में लाया जाता है ताकि आवश्यक होने पर डेटा मुख्य स्मृति में पहले से ही उपलब्ध हो। यह हमें सिस्टम पर अधिक अनुप्रयोग चलाने की इजाजत देता है क्योंकि हमारे पास समर्थन करने के लिए पर्याप्त भौतिक स्मृति है।
- 1. स्टीरियोटाइप गुणों और टैग किए गए मान के बीच अंतर
- 2. क्या जावा के "सिंक्रनाइज़ किए गए" और सी # के "लॉक" के बीच कोई अंतर है?
- 3. एसिंक्रोनस कॉल और एसिंक्रोनस आईओ कॉल के बीच अंतर .net
- 4. हाइलाइट किए गए UITableViewCell और एक चयनित UITableViewCell के बीच क्या अंतर है?
- 5. अक्का में टाइप किए गए और अनियंत्रित अभिनेताओं के बीच क्या अंतर है? कब उपयोग करें?
- 6. फ़ाइल और मैप किए गए मेमोरी को लिखने के बीच क्या अंतर है?
- 7. वसंत सुरक्षा: लॉक किए गए खाते के बीच क्या अंतर है और सक्षम नहीं
- 8. के बीच क्या अंतर है:। और: आर !?
- 9. नेटवर्क किए गए डिवाइसों के बीच समय अंतर मापना
- 10. उपयोगकर्ता द्वारा टैप किए गए कीबोर्ड ईवेंट और जेनरेट किए गए एक के बीच अंतर कैसे बताना है?
- 11. # {} $ {} और% {} के बीच क्या अंतर है?
- 12. [अपरिभाषित] और [,] के बीच क्या अंतर है?
- 13. $ और $$ के बीच क्या अंतर है?
- 14. भिन्नता और '-' के बीच क्या अंतर है?
- 15. "$^एन" और "$ +" के बीच क्या अंतर है?
- 16. xtype और उपनाम के बीच क्या अंतर है?
- 17. "jquery.min.css" और "jquery.css" के बीच क्या अंतर है?
- 18. आईओ-एपीआईसी-फास्टेई और आईओ-एपीआईसी-एज
- 19. php, strtolower और mb_strtolower के बीच क्या अंतर है?
- 20. रद्द करें बबल और स्टॉपप्रॉपैगेशन के बीच क्या अंतर है?
- 21. GLKView और EAGLView के बीच क्या अंतर है?
- 22. रूबी में एसटीडीआईएन और $ स्टडीन के बीच क्या अंतर है?
- 23. ओपनएक्सएमएल: एसडीटीब्लॉक और एसडीटीसेल के बीच क्या अंतर है?
- 24. "स्रोत" और "जेनरेटेड स्रोत" के बीच क्या अंतर है?
- 25. एचजी रिवर्ट और एचजी बैकआउट के बीच क्या अंतर है?
- 26. ऑफ़सेटएक्स, ऑफ़सेट और पेजएक्स, पेजवाई के बीच क्या अंतर है?
- 27. के बीच क्या अंतर है?
- 28. सादे टेक्स्ट और बाइनरी डेटा के बीच क्या अंतर है?
- 29. "nonce" और "GUID" के बीच क्या अंतर है?
- 30. अंतर और कहां के बीच क्या अंतर है?
यह भी संबंधित है: [लिनक्स डिवाइस ड्राइवर्स, दूसरा संस्करण: अध्याय 13: एमएमएपी और डीएमए] (http://www.xml.com/ldd/chapter/book/ch13.html); पहले यहां जवाब पढ़ने में मुझे बहुत मदद मिली, हालांकि। – sdaau