డైరెక్ట్ మెమరీ యాక్సెస్ (DMA) అంటే ఏమిటి మరియు ఇది ఎలా పనిచేస్తుంది? [మినీటూల్ వికీ]
What Is Direct Memory Access
త్వరిత నావిగేషన్:
మీరు దత్తత తీసుకోవచ్చు RDMA కంప్యూటర్ యొక్క ప్రాసెసర్, కాష్ లేదా ఆపరేటింగ్ సిస్టమ్తో సంబంధం లేకుండా ప్రధాన మెమరీలో డేటాను మార్పిడి చేయడానికి నెట్వర్క్లోని కంప్యూటర్లను ప్రారంభించే సాంకేతికత. కంప్యూటర్ యొక్క మదర్బోర్డులోని అటాచ్ చేసిన పరికరం నుండి మెమరీకి నేరుగా డేటాను పంపడానికి మీరు DMA లక్షణాన్ని కూడా ఉపయోగించవచ్చు. నుండి ఈ పోస్ట్ మినీటూల్ ప్రధానంగా DMA గురించి మాట్లాడుతోంది.
డైరెక్ట్ మెమరీ యాక్సెస్ యొక్క నిర్వచనం
అన్నింటిలో మొదటిది, డైరెక్ట్ మెమరీ యాక్సెస్ అంటే ఏమిటి? డైరెక్ట్ మెమరీ యాక్సెస్ కంప్యూటర్ వ్యవస్థల లక్షణం అయిన DMA కి సంక్షిప్తీకరించబడుతుంది. ఇది ఇన్పుట్ / అవుట్పుట్ (I / O) పరికరాలను ప్రధాన సిస్టమ్ మెమరీని యాక్సెస్ చేయడానికి అనుమతిస్తుంది ( యాదృచ్ఛిక-యాక్సెస్ మెమరీ ), సెంట్రల్ ప్రాసెసింగ్ యూనిట్ (CPU) నుండి స్వతంత్రంగా ఉంటుంది, ఇది మెమరీ కార్యకలాపాలను వేగవంతం చేస్తుంది.
చిట్కా: మీకు ఈ పోస్ట్ పట్ల ఆసక్తి ఉండవచ్చు - విండోస్ 10 లో మీ CPU ని 100% పరిష్కరించడానికి ఉపయోగకరమైన పరిష్కారాలు .
డైరెక్ట్ మెమరీ యాక్సెస్ లేకుండా, CPU ప్రోగ్రామ్ చేసిన ఇన్పుట్లు / అవుట్పుట్లను ఉపయోగిస్తున్నప్పుడు, ఇది సాధారణంగా మొత్తం రీడ్ లేదా రైట్ ఆపరేషన్ సమయంలో పూర్తిగా ఆక్రమించబడుతుంది, కాబట్టి ఇది ఇతర పనులను చేయలేము. DMA తో, CPU మొదట బదిలీని ప్రారంభిస్తుంది, తరువాత బదిలీ పురోగతిలో ఉన్నప్పుడు ఇతర కార్యకలాపాలను నిర్వహిస్తుంది మరియు చివరకు ఆపరేషన్ పూర్తయినప్పుడు DMA కంట్రోలర్ (DMAC) నుండి అంతరాయాన్ని పొందుతుంది.
CPU డేటా బదిలీ రేటును కొనసాగించలేనప్పుడు లేదా సాపేక్షంగా నెమ్మదిగా I / O డేటా బదిలీల కోసం ఎదురుచూస్తున్నప్పుడు CPU పని చేయాల్సిన అవసరం వచ్చినప్పుడు డైరెక్ట్ మెమరీ యాక్సెస్ ఉపయోగపడుతుంది.
బహుళ హార్డ్వేర్ వ్యవస్థలు డిస్క్ డ్రైవ్ కంట్రోలర్లు, గ్రాఫిక్స్ కార్డులు, నెట్వర్క్ కార్డులు మరియు సౌండ్ కార్డులు వంటి డైరెక్ట్ మెమరీ యాక్సెస్ను అవలంబిస్తాయి. మల్టీ-కోర్ ప్రాసెసర్లలో ఆన్-చిప్ డేటా బదిలీకి కూడా DMA ఉపయోగించబడుతుంది. డైరెక్ట్ మెమరీ యాక్సెస్ ఛానెల్స్ లేని కంప్యూటర్లతో పోలిస్తే, DMA ఛానెల్స్ ఉన్న కంప్యూటర్లు చాలా తక్కువ CPU ఓవర్ హెడ్ ఉన్న పరికరాల మధ్య డేటాను బదిలీ చేయగలవు.
మెమరీలో డేటాను కాపీ చేయడానికి లేదా తరలించడానికి “మెమరీ టు మెమరీ” కోసం డైరెక్ట్ మెమరీ యాక్సెస్ కూడా ఉపయోగించవచ్చు. ఇది ఖరీదైన మెమరీ ఆపరేషన్లను (పెద్ద కాపీలు లేదా స్కాటర్-సేకరించే ఆపరేషన్లు వంటివి) CPU నుండి ప్రత్యేక DMA ఇంజిన్కు బదిలీ చేయగలదు. నెట్వర్క్-ఆన్-చిప్ మరియు మెమరీ కంప్యూటింగ్ నిర్మాణాలలో DMA ముఖ్యమైనది.
డైరెక్ట్ మెమరీ యాక్సెస్ ఎలా పనిచేస్తుంది?
డైరెక్ట్ మెమరీ యాక్సెస్ ఎలా పనిచేస్తుంది? ప్రామాణిక డైరెక్ట్ మెమరీ యాక్సెస్ (థర్డ్-పార్టీ DMA అని కూడా పిలుస్తారు) DMA కంట్రోలర్ను స్వీకరిస్తుంది. DMA కంట్రోలర్ మెమరీ చిరునామాలను ఉత్పత్తి చేయగలదు మరియు మెమరీ రీడ్ లేదా రైట్ సైకిళ్లను ప్రారంభించగలదు. ఇది CPU చే చదవగల మరియు వ్రాయగల బహుళ హార్డ్వేర్ రిజిస్టర్లను కవర్ చేస్తుంది.
ఈ రిజిస్టర్లలో మెమరీ అడ్రస్ రిజిస్టర్, బైట్ కౌంట్ రిజిస్టర్ మరియు ఒకటి లేదా అంతకంటే ఎక్కువ కంట్రోల్ రిజిస్టర్లు ఉంటాయి. డైరెక్ట్ మెమరీ యాక్సెస్ కంట్రోలర్ అందించిన లక్షణాలను బట్టి, ఈ కంట్రోల్ రిజిస్టర్లు మూలం, గమ్యం, బదిలీ దిశ (I / O పరికరం నుండి చదవడం లేదా వ్రాయడం), బదిలీ యూనిట్ పరిమాణం మరియు / లేదా సంఖ్యల కలయికను నియమించవచ్చు. ఒక పేలుడులో బదిలీ చేయడానికి బైట్లు.
ఇన్పుట్, అవుట్పుట్ లేదా మెమరీ-టు-మెమరీ ఆపరేషన్లను నిర్వహించడానికి, హోస్ట్ ప్రాసెసర్ DMA కంట్రోలర్ను బదిలీ చేయవలసిన పదాల సంఖ్యతో మరియు ఉపయోగించాల్సిన మెమరీ చిరునామాతో ప్రారంభిస్తుంది. అప్పుడు CPU డేటా బదిలీని ప్రారంభించడానికి పరిధీయ పరికరాన్ని ఆదేశిస్తుంది.
అప్పుడు డైరెక్ట్ మెమరీ యాక్సెస్ కంట్రోలర్ సిస్టమ్ మెమరీకి చిరునామాలను మరియు రీడ్ / రైట్ కంట్రోల్ లైన్లను అందిస్తుంది. పరిధీయ పరికరం మరియు మెమరీ మధ్య బదిలీ చేయడానికి ప్రతిసారీ డేటా బైట్ సిద్ధం చేసినప్పుడు, పూర్తి డేటా బ్లాక్ బదిలీ అయ్యే వరకు DMA కంట్రోలర్ దాని అంతర్గత చిరునామా రిజిస్టర్ను పెంచుతుంది.
ఆపరేషన్ మోడ్లు
డైరెక్ట్ మెమరీ యాక్సెస్ వివిధ ఆపరేషన్ రీతుల్లో భిన్నంగా పనిచేస్తుంది.
పేలుడు మోడ్
పేలుడు మోడ్లో, పూర్తి డేటా బ్లాక్ నిరంతర క్రమంలో ప్రసారం చేయబడుతుంది. సిస్టమ్ బస్సులోకి DMA కంట్రోలర్ను యాక్సెస్ చేయడానికి CPU అనుమతించిన తర్వాత, సిస్టమ్ బస్సుల నియంత్రణను తిరిగి CPU కి విడుదల చేయడానికి ముందు DMA కంట్రోలర్ డేటా బ్లాక్లోని అన్ని బైట్ల డేటాను బదిలీ చేస్తుంది, అయితే ఇది CPU క్రియారహితంగా ఉంటుంది గణనీయమైన కాలం. ఈ మోడ్ను “బ్లాక్ ట్రాన్స్ఫర్ మోడ్” అని కూడా పిలుస్తారు.
సైకిల్ స్టీలింగ్ మోడ్
పేలుడు బదిలీ మోడ్కు అవసరమైన సమయం కోసం CPU ని నిలిపివేయలేని వ్యవస్థలో సైకిల్ స్టీలింగ్ మోడ్ ఉపయోగించబడుతుంది. సైకిల్ స్టీలింగ్ మోడ్లో, DMA కంట్రోలర్ BR (బస్ రిక్వెస్ట్) మరియు BG (బస్ గ్రాంట్) సిగ్నల్లను ఉపయోగించడం ద్వారా సిస్టమ్ బస్కు ప్రాప్యతను పొందుతుంది, ఇవి పేలుడు మోడ్ మాదిరిగానే ఉంటాయి. ఈ రెండు సంకేతాలు CPU మరియు DMA కంట్రోలర్ మధ్య ఇంటర్ఫేస్ను నియంత్రిస్తాయి.
ఒక వైపు, సైకిల్ స్టీలింగ్ మోడ్లో, డేటా బ్లాక్ ట్రాన్స్మిషన్ వేగం పేలుడు మోడ్లో ఉన్నంత వేగంగా లేదు, కానీ మరోవైపు, CPU నిష్క్రియ సమయం పేలుడు మోడ్లో ఉన్నంత కాలం ఉండదు.
పారదర్శక మోడ్
డేటా బ్లాక్లను బదిలీ చేయడానికి పారదర్శక మోడ్ ఎక్కువ సమయం తీసుకుంటుంది, అయితే ఇది మొత్తం సిస్టమ్ పనితీరు పరంగా అత్యంత సమర్థవంతమైన మోడ్. పారదర్శక మోడ్లో, సిస్టమ్ బస్సులను ఉపయోగించని ఆపరేషన్లను CPU నిర్వహించినప్పుడు మాత్రమే డైరెక్ట్ మెమరీ యాక్సెస్ కంట్రోలర్ డేటాను బదిలీ చేస్తుంది.
పారదర్శక మోడ్ యొక్క ప్రధాన ప్రయోజనం ఏమిటంటే, CPU తన ప్రోగ్రామ్లను అమలు చేయడాన్ని ఎప్పుడూ ఆపదు, మరియు డైరెక్ట్ మెమరీ యాక్సెస్ బదిలీలు సమయ పరంగా ఉచితం, అయితే ప్రతికూలత ఏమిటంటే, CPU సిస్టమ్ బస్సులను ఉపయోగించనప్పుడు హార్డ్వేర్ గుర్తించాల్సిన అవసరం ఉంది. సంక్లిష్టంగా ఉండండి. దీనిని 'హిడెన్ డిఎంఎ డేటా ట్రాన్స్ఫర్ మోడ్' అని కూడా పిలుస్తారు.