కంప్యూటర్ ప్రోగ్రామ్ అమలు కోసం, దీనికి కంప్యూటర్ యొక్క ఒకటి కంటే ఎక్కువ భాగాల సమకాలీకరణ పని అవసరం. ఉదాహరణకి, ప్రాసెసర్లు - అవసరమైన నియంత్రణ సమాచారం, చిరునామాలు… మొదలైనవి, బస్సులు - సమాచారం మరియు డేటాను మెమరీ నుండి మరియు I / O పరికరాలకు బదిలీ చేయడానికి… మొదలైనవి. ప్రాసెసర్, మెమరీ మరియు I / O పరికరాల మధ్య సమాచార బదిలీని నిర్వహించే విధానం సిస్టమ్ యొక్క ఆసక్తికరమైన అంశం. సాధారణంగా, ప్రాసెసర్లు డేటాను బదిలీ చేసే అన్ని ప్రక్రియలను నియంత్రిస్తాయి, బదిలీని ప్రారంభించడం నుండి గమ్యం వద్ద డేటా నిల్వ వరకు. ఇది ప్రాసెసర్పై లోడ్ను జోడిస్తుంది మరియు ఎక్కువ సమయం ఆదర్శ స్థితిలో ఉంటుంది, తద్వారా సిస్టమ్ యొక్క సామర్థ్యం తగ్గుతుంది. I / O పరికరాలు మరియు మెమరీ మధ్య డేటా బదిలీని వేగవంతం చేయడానికి, DMA కంట్రోలర్ స్టేషన్ మాస్టర్గా పనిచేస్తుంది. DMA కంట్రోలర్ ప్రాసెసర్ యొక్క కనీస జోక్యంతో డేటాను బదిలీ చేస్తుంది.
DMA కంట్రోలర్ అంటే ఏమిటి?
DMA అనే పదం ప్రత్యక్ష మెమరీ ప్రాప్యతను సూచిస్తుంది. డైరెక్ట్ మెమరీ యాక్సెస్ కోసం ఉపయోగించే హార్డ్వేర్ పరికరాన్ని DMA కంట్రోలర్ అంటారు. DMA నియంత్రిక ఒక నియంత్రణ యూనిట్ , I / O పరికరంలో భాగం ఇంటర్ఫేస్ సర్క్యూట్ , ఇది ప్రాసెసర్ నుండి కనీస జోక్యంతో I / O పరికరాలు మరియు ప్రధాన మెమరీ మధ్య డేటా బ్లాకులను బదిలీ చేయగలదు.
కంప్యూటర్ ఆర్కిటెక్చర్లో DMA కంట్రోలర్ రేఖాచిత్రం
DMA కంట్రోలర్ బస్సు మరియు ఇన్పుట్-అవుట్పుట్ పరికరాల మధ్య ఇంటర్ఫేస్ను అందిస్తుంది. ఇది ప్రాసెసర్ జోక్యం లేకుండా డేటాను బదిలీ చేసినప్పటికీ, ఇది ప్రాసెసర్ ద్వారా నియంత్రించబడుతుంది. ప్రాసెసర్ ప్రారంభ చిరునామా, డేటా బ్లాక్లోని పదాల సంఖ్య మరియు డేటా బదిలీ దిశను పంపడం ద్వారా DMA కంట్రోలర్ను ప్రారంభిస్తుంది .i.e. I / O పరికరాల నుండి మెమరీకి లేదా ప్రధాన మెమరీ నుండి I / O పరికరాలకు. ఒకటి కంటే ఎక్కువ బాహ్య పరికరాలను DMA కంట్రోలర్కు కనెక్ట్ చేయవచ్చు.
కంప్యూటర్ ఆర్కిటెక్చర్లో DMA
DMA కంట్రోలర్ చిరునామాలను ఉత్పత్తి చేయడానికి మరియు బదిలీ కోసం I / O పరికరాన్ని ఎంచుకోవడానికి చిరునామా యూనిట్ను కలిగి ఉంటుంది. బదిలీ చేయబడిన బ్లాకుల సంఖ్యను ఉంచడానికి మరియు డేటా బదిలీ దిశను సూచించడానికి నియంత్రణ యూనిట్ మరియు డేటా గణన కూడా ఇందులో ఉంది. బదిలీ పూర్తయినప్పుడు, DMA ఒక అంతరాయాన్ని పెంచడం ద్వారా ప్రాసెసర్కు తెలియజేస్తుంది. DMA కంట్రోలర్ యొక్క సాధారణ బ్లాక్ రేఖాచిత్రం క్రింది చిత్రంలో చూపబడింది.
DMA కంట్రోలర్ యొక్క సాధారణ బ్లాక్ రేఖాచిత్రం
DMA కంట్రోలర్ యొక్క పని
డేటా బదిలీ చేయడానికి DMA కంట్రోలర్ బస్సును ప్రాసెసర్తో పంచుకోవాలి. ఒక నిర్దిష్ట సమయంలో బస్సును కలిగి ఉన్న పరికరాన్ని బస్ మాస్టర్ అంటారు. I / O పరికరం నుండి మెమరీ లేదా వైస్ పద్యానికి బదిలీ చేయవలసి వచ్చినప్పుడు, ప్రాసెసర్ ప్రస్తుత ప్రోగ్రామ్, ఇంక్రిమెంట్ అమలును ఆపివేస్తుంది కార్యక్రమం కౌంటర్, డేటాను స్టాక్ ద్వారా కదిలిస్తుంది, ఆపై చిరునామా బస్సుపై DMA కంట్రోలర్కు DMA ఎంపిక సిగ్నల్ను పంపుతుంది.
DMA కంట్రోలర్ ఉచితం అయితే, బస్సు అభ్యర్థన సిగ్నల్ పెంచడం ద్వారా ప్రాసెసర్ నుండి బస్సు నియంత్రణను ఇది అభ్యర్థిస్తుంది. ప్రాసెసర్ బస్ గ్రాంట్ సిగ్నల్ పెంచడం ద్వారా బస్సును కంట్రోలర్కు మంజూరు చేస్తుంది, ఇప్పుడు DMA కంట్రోలర్ బస్ మాస్టర్. మెమరీ చిరునామాలు, బదిలీ చేయవలసిన డేటా బ్లాకుల సంఖ్య మరియు డేటా బదిలీ దిశను పంపడం ద్వారా ప్రాసెసర్ DMA కంట్రోలర్ను ప్రారంభిస్తుంది. డేటా బదిలీ పనిని DMA కంట్రోలర్కు కేటాయించిన తరువాత, డేటా బదిలీ పూర్తయ్యే వరకు ఆదర్శంగా వేచి ఉండటానికి బదులుగా, ప్రాసెసర్ స్టాక్ నుండి సూచనలను తిరిగి పొందిన తర్వాత ప్రోగ్రామ్ యొక్క అమలును తిరిగి ప్రారంభిస్తుంది.
DMA కంట్రోలర్ ద్వారా కంప్యూటర్లో డేటా బదిలీ
DMA కంట్రోలర్ ఇప్పుడు బస్సుల యొక్క పూర్తి నియంత్రణను కలిగి ఉంది మరియు CPU నుండి స్వతంత్రంగా మెమరీ మరియు I / O పరికరాలతో సంకర్షణ చెందుతుంది. ఇది ప్రాసెసర్ అందుకున్న నియంత్రణ సూచనల ప్రకారం డేటా బదిలీని చేస్తుంది. డేటా బదిలీ పూర్తయిన తరువాత, ఇది బస్సు అభ్యర్థన సిగ్నల్ను నిలిపివేస్తుంది మరియు CPU బస్ గ్రాంట్ సిగ్నల్ను నిలిపివేస్తుంది, తద్వారా బస్సుల నియంత్రణను CPU కి తరలించవచ్చు.
ఒక I / O పరికరం బదిలీని ప్రారంభించాలనుకున్నప్పుడు, అది DMA కంట్రోలర్కు DMA అభ్యర్థన సిగ్నల్ను పంపుతుంది, దీని కోసం కంట్రోలర్ ఉచితం అని అంగీకరిస్తుంది. అప్పుడు కంట్రోలర్ బస్సు కోసం ప్రాసెసర్ను అభ్యర్థిస్తుంది, బస్సు అభ్యర్థన సిగ్నల్ను పెంచుతుంది. బస్ గ్రాంట్ సిగ్నల్ అందుకున్న తరువాత అది పరికరం నుండి డేటాను బదిలీ చేస్తుంది. N ఛానెల్ చేసిన DMA కంట్రోలర్ కోసం n బాహ్య పరికరాల సంఖ్యను కనెక్ట్ చేయవచ్చు.
DMA ఈ క్రింది వాటిని కలిగి ఉన్న మూడు మోడ్లలో డేటాను బదిలీ చేస్తుంది.
కు) పేలుడు మోడ్ : ఈ మోడ్లో DMA మొత్తం డేటా బదిలీ పూర్తయిన తర్వాతే బస్సులను CPU కి అప్పగిస్తుంది. ఇంతలో, CPU కి బస్సు అవసరమైతే అది ఆదర్శంగా ఉండి డేటా బదిలీ కోసం వేచి ఉండాలి.
బి) సైకిల్ స్టీలింగ్ మోడ్ : ఈ మోడ్లో, ప్రతి బైట్ను బదిలీ చేసిన తర్వాత DMA బస్సుల నియంత్రణను CPU కి ఇస్తుంది. ఇది నిరంతరం బస్సు నియంత్రణ కోసం ఒక అభ్యర్థనను జారీ చేస్తుంది, ఒక బైట్ను బదిలీ చేస్తుంది మరియు బస్సును తిరిగి ఇస్తుంది. ఈ CPU ద్వారా అధిక ప్రాధాన్యత కలిగిన పని కోసం బస్సు అవసరమైతే ఎక్కువసేపు వేచి ఉండాల్సిన అవసరం లేదు.
సి) పారదర్శక మోడ్: ఇక్కడ, బస్సుల ఉపయోగం అవసరం లేని సూచనలను CPU అమలు చేస్తున్నప్పుడు మాత్రమే DMA డేటాను బదిలీ చేస్తుంది.
8237 డిఎంఎ కంట్రోలర్
- 8237 లో 4 I / O ఛానెల్స్ ఉన్నాయి, ఛానెళ్ల సంఖ్యను పెంచే సౌలభ్యంతో పాటు.
- ప్రతి ఛానెల్ను ఒక్కొక్కటిగా ప్రోగ్రామ్ చేయవచ్చు మరియు 64 కే చిరునామా మరియు డేటా సామర్థ్యాన్ని కలిగి ఉంటుంది.
- టైమింగ్ కంట్రోల్ బ్లాక్, ప్రోగ్రామ్ కమాండ్ కంట్రోల్ బ్లాక్, ప్రియారిటీ ఎన్కోడర్ బ్లాక్ 8237A యొక్క మూడు ప్రధాన బ్లాక్స్.
- అంతర్గత టైమింగ్ మరియు బాహ్య నియంత్రణ సంకేతాలు టైమింగ్ కంట్రోల్ బ్లాక్ చేత నడపబడతాయి.
- DMA కి మైక్రోప్రాసెసర్ ఇచ్చిన వివిధ ఆదేశాలు ప్రోగ్రామ్ కమాండ్ కంట్రోల్ బ్లాక్ ద్వారా డీకోడ్ చేయబడతాయి.
- ఏ ఛానెల్కు అత్యధిక ప్రాధాన్యత ఇవ్వాలి అనేది ప్రాధాన్యత ద్వారా నిర్ణయించబడుతుంది ఎన్కోడర్ బ్లాక్ .
8237A లో 27 అంతర్గత రిజిస్టర్లు ఉన్నాయి.
8237A రెండు చక్రాలలో పనిచేస్తుంది- ఆదర్శ చక్రం మరియు క్రియాశీల చక్రం, ఇక్కడ ప్రతి చక్రంలో 7 వేర్వేరు రాష్ట్రాలు ఉంటాయి, వీటిలో ఒక్కొక్క గడియార కాలం ఉంటుంది.
S0- మొదటి రాష్ట్రం, కంట్రోలర్ బస్సు కోసం అభ్యర్థించిన మరియు ప్రాసెసర్ నుండి రసీదు కోసం వేచి ఉంది.
S1, S2, S3, S4 ను 8237A యొక్క వర్కింగ్ స్టేట్స్ అని పిలుస్తారు, ఇక్కడ డేటా యొక్క వాస్తవ బదిలీ జరుగుతుంది. బదిలీ నిరీక్షణ రాష్ట్రాలకు ఎక్కువ సమయం అవసరమైతే ఈ రాష్ట్రాల మధ్య SW జోడించబడుతుంది.
మెమరీ-టు-మెమరీ బదిలీ కోసం మెమరీని చదవడం మరియు జ్ఞాపకశక్తిని వ్రాయడం అవసరం. ఒకే బదిలీకి ఎనిమిది రాష్ట్రాలు అవసరం. S11, S12, S13, S14 సబ్స్క్రిప్ట్లతో మొదటి నాలుగు రాష్ట్రాలు రీడ్-ఫ్రమ్ మెమరీ బదిలీని చేస్తాయి మరియు తరువాతి నాలుగు S21, S22, S23, S24 వ్రాసే-నుండి-మెమరీ బదిలీ కోసం.
ఏ ఛానెల్ సేవను అభ్యర్థించనప్పుడు మరియు SI స్థితిని ప్రదర్శించనప్పుడు DMA ఆదర్శ స్థితికి వెళుతుంది. SI అనేది ఒక నిష్క్రియాత్మక స్థితి, ఇక్కడ DMA ఒక అభ్యర్థనను స్వీకరించే వరకు క్రియారహితంగా ఉంటుంది. ఈ స్థితిలో, DMA ప్రోగ్రామ్ స్థితిలో ఉంది, ఇక్కడ ప్రాసెసర్ DMA ని ప్రోగ్రామ్ చేయవచ్చు.
DMA ఆదర్శ స్థితిలో ఉన్నప్పుడు మరియు తదుపరి ఛానెల్ అభ్యర్థనలు లేనప్పుడు, ఇది ప్రాసెసర్కు ఒక HRQ సిగ్నల్ను అందిస్తుంది మరియు యాక్టివ్ స్టేట్లోకి ప్రవేశిస్తుంది, ఇక్కడ అది పేలుడు మోడ్, సైకిల్ స్టీలింగ్ మోడ్ లేదా పారదర్శక మోడ్ ద్వారా డేటా బదిలీని ప్రారంభించవచ్చు.
8237 పిన్ రేఖాచిత్రం
8257 డిఎంఎ కంట్రోలర్
సింగిల్ ఇంటెల్ 8212 I / O పోర్ట్ పరికరంతో జత చేసినప్పుడు, 8257 DMA కంట్రోలర్ పూర్తి 4 ఛానెల్ను రూపొందిస్తుంది DMA కంట్రోలర్ . బదిలీ అభ్యర్థనను స్వీకరించిన తరువాత 8257 నియంత్రిక-
- ప్రాసెసర్ నుండి సిస్టమ్ బస్పై నియంత్రణను పొందుతుంది.
- అత్యధిక ప్రాధాన్యత గల ఛానెల్కు అనుసంధానించబడిన పరిధీయతను గుర్తించారు.
- మెమరీ చిరునామా యొక్క అతి ముఖ్యమైన బిట్స్ సిస్టమ్ బస్సు యొక్క చిరునామా పంక్తులు A0-A7 పైకి తరలించబడతాయి.
- అత్యంత ముఖ్యమైనది 8 బిట్ మెమరీ చిరునామా డేటా లైన్ల ద్వారా 8212 I / O పోర్ట్కు నడపబడుతుంది.
- పెరిఫెరల్స్ మరియు అడ్రస్డ్ మెమరీ స్థానాల మధ్య డేటాను బదిలీ చేయడానికి తగిన నియంత్రణ సంకేతాలను ఉత్పత్తి చేస్తుంది.
- పేర్కొన్న బైట్ల సంఖ్య బదిలీ అయినప్పుడు, టెర్మినల్ కౌంట్ (టిసి) అవుట్పుట్ను సక్రియం చేయడం ద్వారా కంట్రోలర్ సిపియు బదిలీ ముగింపును తెలియజేస్తుంది.
ప్రతి ఛానెల్కు 8257 రెండు కలిగి ఉంటుంది 16-బిట్ రిజిస్టర్లు - 1) DMA చిరునామా రిజిస్టర్ మరియు 2) టెర్మినల్ కౌంట్ రిజిస్టర్, ఛానెల్ ప్రారంభించబడటానికి ముందు ప్రారంభించబడాలి. యాక్సెస్ చేయవలసిన మొదటి మెమరీ స్థానం యొక్క చిరునామా DMA చిరునామా రిజిస్టర్లో లోడ్ అవుతుంది. టెర్మినల్ కౌంట్ రిజిస్టర్లో లోడ్ చేయబడిన విలువ యొక్క దిగువ ఆర్డర్ 14 బిట్స్ టెర్మినల్ కౌంట్ అవుట్పుట్ యొక్క క్రియాశీలతకు ముందు DMA చక్రాల సంఖ్యను మైనస్ ఒకటిగా సూచిస్తుంది. ఛానెల్ కోసం ఆపరేషన్ రకం టెర్మినల్ కౌంట్ రిజిస్టర్ యొక్క ముఖ్యమైన రెండు బిట్స్ ద్వారా సూచించబడుతుంది.
8257 పిన్ రేఖాచిత్రం
DMA కంట్రోలర్ యొక్క ప్రయోజనాలు మరియు అప్రయోజనాలు
DMA కంట్రోలర్ యొక్క ప్రయోజనాలు మరియు అప్రయోజనాలు ఈ క్రింది వాటిని కలిగి ఉంటాయి.
ప్రయోజనాలు
- CPU యొక్క ప్రమేయాన్ని దాటవేయడం ద్వారా DMA మెమరీ కార్యకలాపాలను వేగవంతం చేస్తుంది.
- CPU లో పని ఓవర్లోడ్ తగ్గుతుంది.
- ప్రతి బదిలీ కోసం, కొన్ని గడియార చక్రాలు మాత్రమే అవసరం
ప్రతికూలతలు
- డేటా బదిలీ కోసం DMA ఉపయోగించినప్పుడు కాష్ పొందిక సమస్య చూడవచ్చు.
- వ్యవస్థ ధరను పెంచుతుంది.
DMA ( డైరెక్ట్ మెమరీ యాక్సెస్ ) గ్రాఫిక్స్ కార్డులు, నెట్వర్క్ కార్డులు, సౌండ్ కార్డులు మొదలైన వాటిలో కంట్రోలర్ ఉపయోగించబడుతోంది… మల్టీ-కోర్ ప్రాసెసర్లలో ఇంట్రా-చిప్ బదిలీకి కూడా DMA ఉపయోగించబడుతుంది. దాని మూడు మోడ్లలో ఒకదానిలో పనిచేస్తున్న DMA ప్రాసెసర్ యొక్క భారాన్ని గణనీయంగా తగ్గిస్తుంది. మీరు DMA యొక్క ఏ మోడ్లలో పనిచేశారు? మీరు ఏ మోడ్ను మరింత ప్రభావవంతంగా భావిస్తారు?