Thư viện tri thức trực tuyến
Kho tài liệu với 50,000+ tài liệu học thuật
© 2023 Siêu thị PDF - Kho tài liệu học thuật hàng đầu Việt Nam

Vi xử lý máy vi tính - Chương 8 pps
Nội dung xem thử
Mô tả chi tiết
CHÆÅNG 8 VAÌO /RA DÆÎ LIÃÛU BÀÒNG DMA
1. Nguyãn tàõc cuía viãûc trao âäøi dæî liãûu våïi thiãút bë ngoaûi vi bàòng caïch
thám nháûp træûc tiãúp vaìo bäü nhåï (DMA) .
Trong caïc caïch âiãöu khiãøn viãûc trao âäøi dæî liãûu giæîa thiãút bë ngoaûi vi
vaì hãû vi xæí lyï bàòng caïch thàm doì traûng thaïi sàôn saìng cuía thiãút bë
ngoaûi vi hay bàòng caïch ngàõt bäü vi xæí lyï âaî âæåc noïi âãún åí caïc chæång
træåïc , dæî liãûu thæåìng âæåüc chuyãøn tæì bäü nhåï qua bäü vi xæí lyï âãø räöi tæì
âoï ghi vaìo thiãút bë ngoaûi vi hoàûc ngæåüc laûi , tæì thiãút bë ngoaûi vi noï
âæåüc âoüc vaìo bäü vi xæí lyï âãø räöi tæì âoï âæåüc chuyãøn âãún bäü nhåï . vç thãú
täúc âäü trao âäøi dæî liãûu phuû thuäüc ráút nhiãöu vaìo täúc âäü thæûc hiãûn cuía
caïc lãûnh MOV .IN vaì OUT cuía bäü vi xæí lyï vaì do âoï viãûc trao âäøi dæî
liãûu khäng thãø tiãún haình nhanh âæåc .
Trong thæûc tãú coï nhæîng khi ta cáön trao âäøi dæî liãûu tháût nhanh våïi thiãút
bë ngoaûi vi : nhæ khi cáön âæa dæî liãûu hiãûn thë ra maìn hçnh hoàûc trao âäøi
dæî liãûu våïi bäü âiãöu khiãøn âéa .trong caïc træåìng håüp âoï ta cáön coï khaí
nàng ghi /âoüc dæî liãûu træûc tiãúp våïi bäü nhåï (diret memory acces
.DMA- thám nháûp vaìo bäü nhåï træûc tiãúp khäng thäng qua CPU) thç måïi
âaïp æïng âæåüc yãu cáöu vãö täúc âäü trao âäøi dæî liãûu .âãø laìm âæåüc âiãöu naìy
caïc hãû vi xæí lyï noïi chung âãöu phaíi duìng thãm maûch chuyãn duûng âãø
âiãöu khiãøn viãûc thám nháûp træûc tiãúp vaìo bäü nhåï ( dircet memory
access con troller.DMAC)
Coï thãø láúy mäüt vê duû cuû thãø âãø minh hoaû âiiãuì naìy .trong khi mäüt
maûch DMAC nhæ 8237A cuía inter coï thãø âiãöu khiãøn viãûc chuyãøn mäüt
byte trong mäüt maíng dæî liãûu tæì bäü nhåï ra thiãút bë ngoaûi vi chè hãút 4
chu kyì âäöng häö thç bäü vi xæí lyï 8088 phaíi laìm hãút cåî 4 chu kyì :
; säú chu kyì âäöng häö
LAP: MOV AL, (SI );10
OUT PORT ,AL ; 10
INC SI ; 2
LOOP LAP ; 17
; CÄÜNG:39 chu kyì
Âãø häù tråü cho viãûc trao âäøi dæî liãûu våïi thiãút bë ngoaûi vi bàòng
caïch thám nháûp træûc tiãúp vaìo bäü nhåï ,taûi mäùi vi maûch CPU thæåìng täön
taûi chán yãu cáöu treo HOLD âãø thiãút bë ngoaûi vi , mäùi khi coï yãu cáöu
duìng buï cho viãûc trao âäøi dæî liãûu våïi bäü nhåï thç thäng qua chán naìy
maì baïo cho CPU biãút . âãún læåüt CPU , khi nhán âæåüc yãu cáöu treo thç
noï tæû treo lãn (tæû taïch ra khoíi hãû thäúng bàòng caïch âæa caïc bit vaìo traûng
thaïi tråí khaïng cao )vaì âæa xung HLDA ra ngoaìi âãø thäng baïo CPU
cho pheïp sæí duûng buï .
Så âäö khäúi cuía mäüt hãû vi xæí lyï coï khaí nàng trao âäøi dæî liãûu theo kiãøu
DMA âæåüc thãø hiãûn trãn hçnh 8.1
Ta nháûn tháúy trong hãû thäúng naìy , khi CPU tæû taïch ra khoíi hãû thäúng
bàûng tæû treo (æïng våïi vë trê hiãûn thåìi cuía caïc cäng tàõc chuyãøn maûch )
âãø trao quyãön sæí duûng bus cho DMAC phaíi chëu traïch nhiãûm âiãöu
khiãøn toaìn bäü hoaût âäüng trao âäøi dæî liãûu cuía hãû thäúng . âãø laìm âæåüc
âiãöu âoï DMAC phaíi coï khaí nàng taûo ra âæåüc caïc tên hiãûu âiiãuì khiãøn
cáön thiãút giäúng nhæ caïc tên hiãûu cuía CPU vaì baín thán noï phaíi laì mäüt
thiãút bë láûp trçnh âæåüc (âãø CPU “dàn doì ” noï bàòng caïch âæa vaìo caïc tæì
âiãöu khiãøn træåïc khi noï coï thãø hoaût âäüng âäüc láûp ).
Qua trinh hoaût âäüng cuía hãû thäúng trãn coï thãø âæåüc toïm tàõt nhæ sau:
Khi thiãút bë ngoaûi vi coï yãu cáöu trao âäøi dæî liãûu kiãøu DMA våïi bäü
nhåï , noï âæa yãu cáöu DRQ=1 âãún DMAC, DMAC seî âæa yãu cáöu treo
HRQ=1 âãún chán HOLD cuía CPU . nhán âæåüc yãu cáöu treo , CPU seî
treo caïc bus cuía mçnh vaì traí låìi cháúp nháûn treo qua tên hiãûu HLDA=1
âãún chán HACK cuía DMAC ,DMAC seî thäng baïo cho thiãút bë ngoaûi
vi thäng qua tên hiãûu DACK=1 laì noï cho pheïp thiãút bë ngoaûi vi trao
âäøi dæî liãûu kiãøu DMA .khi quaï trçnh DMA kãút thuïc thç DMAC âæa ra
tên hiãûu HRQ=0.
Trong thæûc tãú täön taûi 3 kiãøu trao âäøi dæî liãûu bàòng caïch thám nháûp træûc
tiãúp vaìo bäü nhåï nhæ sau:
+ Treo CPU mäüt khoaíng thåìi gian âãø trao âäøi caí maíng dæî liãûu .
+treo CPU âãø trao âäøi tæìng byte.
+táûn duûng thåìi gian khäng duìng bus âãø trao âäøi dæî liãûu .
ta seî láön luåüt giåïi thiãûu qua caïc kiãøu trao âäøi dæî liãûu naìy .
• Trao âäøi caí mät maíng dæî liãûu
Trong chãú âäü naìy CPU bë treo trong suäút quaï trçnh trao âäøi maíng
dæî liãûu .Chãú âäü naìy âæåüc duìng khi ta coï nhu cáöu trao âäøi dæî liãûu våïi äø
âéa hoàûc âæa dæî liãûu ra hiãøn thë . caïc bæåïc thuí tuûc âãø chuyãøn mäüt
maíng dæî liãûu tæì bäü nhåï ra thiãút bë ngoaûi vi:
1.CPU phaíi ghi tæì âiãöu khiãøn vaì tæì chãú âäü laìm viãûc vaìo DMAC âãø
quy âënh caïch thæïc laìm viãûc , âëa chè âáöu cuía maíng nhåï , âäü daìi cuía
maíng nhåï ,...
2.khi thiãút bë ngoaûi vi co yãu cáöu trao âäøi dæî liãûu , noï âæa DRQ =1
âãún DMAC .
3.DMAC âæa ra tên hiãûu HRQ âãún chán HOLD cuía CPU âãø yãu cáöu
treo CPU .tên hiãûu HOLD phaíi åí mæïc cao cho âãún hãút quaï trçnh trao
âäøi dæî liãûu .