《計(jì)算機(jī)原理:第五章數(shù)字量輸入輸出7of7》由會(huì)員分享,可在線閱讀,更多相關(guān)《計(jì)算機(jī)原理:第五章數(shù)字量輸入輸出7of7(31頁珍藏版)》請?jiān)谘b配圖網(wǎng)上搜索。
1、 1uDMADMA方式可以實(shí)現(xiàn)外部設(shè)備與存儲(chǔ)器之間的數(shù)據(jù)方式可以實(shí)現(xiàn)外部設(shè)備與存儲(chǔ)器之間的數(shù)據(jù)高速傳輸高速傳輸uDMADMA傳送主要用于需要高速大批量數(shù)據(jù)傳送的系傳送主要用于需要高速大批量數(shù)據(jù)傳送的系統(tǒng)中,以提高數(shù)據(jù)的吞吐量統(tǒng)中,以提高數(shù)據(jù)的吞吐量 uDMADMA傳送方式的優(yōu)點(diǎn)是以增加系統(tǒng)硬件的復(fù)雜性傳送方式的優(yōu)點(diǎn)是以增加系統(tǒng)硬件的復(fù)雜性和成本為代價(jià)的和成本為代價(jià)的 uDMADMA傳送雖然脫離傳送雖然脫離CPUCPU的控制,但并不是說的控制,但并不是說DMADMA傳傳送不需要進(jìn)行控制和管理送不需要進(jìn)行控制和管理 2能接收外設(shè)的請求,并向CPU發(fā)出DMA請求信號。當(dāng)CPU發(fā)出DMA響應(yīng)信號后,能
2、接管對總線的控制,進(jìn)入DMA操作方式。能尋址存儲(chǔ)器,即能輸出地址信息和修改地址。能向存儲(chǔ)器和外設(shè)發(fā)出相應(yīng)的讀/寫控制信號。能控制傳送的字節(jié)數(shù),判斷DMA傳送是否結(jié)束。在DMA傳送結(jié)束后,能發(fā)出DMA結(jié)束信號,釋放總線,使CPU恢復(fù)正常工作。3Intel 8237Intel 8237 四通道可編程四通道可編程DMADMA控制器控制器兩重性兩重性:主器件:可接管系統(tǒng)總線,主器件:可接管系統(tǒng)總線,DMACDMAC 從器件:接受從器件:接受CPUCPU讀讀/寫寫(編程編程)四通道四通道分時(shí)分時(shí)工作,工作,0 0通道的優(yōu)先級最高通道的優(yōu)先級最高 4通道通道1通道通道3通道通道2模式寄存器當(dāng)前地址寄存器屏
3、蔽觸發(fā)器請求觸發(fā)器控制寄存器當(dāng)前字節(jié)計(jì)數(shù)器基本字節(jié)計(jì)數(shù)器基地址寄存器暫存器狀態(tài)寄存器DREQ1DACK1DREQ2DACK2DREQ3DACK3DREQ0DACK0HRQHLDACLKAENHOLDHLDAA3A0A7A4通道通道0IORIOWMEMRMEMWEOPREADYRESETADSTBDB7DB0CS 8237A的內(nèi)部結(jié)構(gòu)與主要引腳的內(nèi)部結(jié)構(gòu)與主要引腳 5 62.2.引腳信號引腳信號P302 P302 圖圖5.645.64 7AENAEN:輸出,:輸出,DMADMA地址有效地址有效,封鎖封鎖CPUCPU地址地址ADSTBADSTB:輸出,:輸出,DMADMA地址地址A A1515AA
4、8 8選通。選通。A A1515AA8 8與與DBDB7 7DBDB0 0 分時(shí)復(fù)用。分時(shí)復(fù)用。MEMRMEMR、MEMWMEMW:輸出:輸出,8237,8237控制總線時(shí)控制總線時(shí)IOWIOW、IORIOR:雙向:雙向,CPU,CPU控制控制/8237/8237控制控制 EOPEOP:雙向:雙向,DMA,DMA結(jié)束信號結(jié)束信號DREQDREQi i:DMA:DMA請求,請求,DACKDACKi i:DMA:DMA響應(yīng)響應(yīng)這是這是82378237和外設(shè)之間的聯(lián)絡(luò)和外設(shè)之間的聯(lián)絡(luò) 8HRQ:總線請求,HLDA:總線響應(yīng)這是8237和CPU之間的聯(lián)絡(luò)從聯(lián)絡(luò)過程來看,DMA和中斷相似。但進(jìn)入一個(gè)DM
5、A過程后,8237不再采樣DREQ信號,因此不能產(chǎn)DMA嵌套。CPUI/O接接口口HRQHLDADREQi8237DACKi 9DBDB7 7DBDB0 0:CPU管理總線時(shí)是雙向,DMA管理總線時(shí)先當(dāng)?shù)刂肪€A1515AA8 8,后常處三態(tài)A A7 7AA4 4 :三態(tài)輸出地址線,輸出DMA地址A A3 3AA0 0:雙向地址信號CPU管理總線時(shí)是輸入:8237被讀/寫,8237接管總線時(shí)輸出DMA地址所謂DMA地址即DMA傳送的存儲(chǔ)器地址,共16位DMA傳送數(shù)據(jù)的方式和中斷完全不同 10內(nèi)存內(nèi)存CPUI/O接接口口HRQHLDADREQi8237DACKiABDBIOWMEMR圖示DMA存儲(chǔ)
6、器讀的情況。若是DMA存儲(chǔ)器寫,則是IOR和MEMW同時(shí)有效。11就緒未就緒有效周期空閑周期向外提出HRQ單字節(jié)傳送數(shù)據(jù)塊傳送接收到有效的DREQ接收到有效的HLDA就緒SiS3S2S1S0S0S1S4SWSW8237A的內(nèi)部狀態(tài)轉(zhuǎn)換流程的內(nèi)部狀態(tài)轉(zhuǎn)換流程 12 131.通常處于空閑狀態(tài)通常處于空閑狀態(tài)SI I ,在,在SI I時(shí)時(shí)8237是是從器件從器件,與與DMA有關(guān)的只是采樣有關(guān)的只是采樣DREQ2.有有DREQ無無HLDA處于處于S0 0,S0 0時(shí)仍是時(shí)仍是CPU控制總線控制總線3.HLDA有效后進(jìn)入有效后進(jìn)入DMA,產(chǎn)生,產(chǎn)生AEN(及及ALE),重復(fù),重復(fù)S1 1S4 4 DMA
7、期間期間CPU只采樣只采樣HRQ信號,一信號,一旦旦HRQ信號無效馬上收回總線。信號無效馬上收回總線。14讀存儲(chǔ)器,同時(shí)寫I/O端口,地址總線上是存儲(chǔ)器地址P241圖5.7 DMA存儲(chǔ)器讀 15指令執(zhí)行過程中各總線信號的變化時(shí)序 P238 圖5.3 存儲(chǔ)器讀形成形成20位有效地址位有效地址 16指令執(zhí)行過程中各總線信號的變化時(shí)序。P240 圖5.6 I/O 寫真正的讀/寫在讀/寫信號的后沿附近完成 17(1 1)工作模式)工作模式 單字節(jié)傳送模式 數(shù)據(jù)塊傳送模式 請求傳送模式 級聯(lián)模式(2 2)操作類型)操作類型 DMA讀,用于把數(shù)據(jù)從存儲(chǔ)器中讀出,寫入外設(shè)。DMA寫,用于將數(shù)據(jù)從外設(shè)中讀出,
8、寫入存儲(chǔ)器中。DMA校驗(yàn),是一種空操作,并不是真正的DMA傳送,只產(chǎn)生時(shí)序。地址信號、外設(shè)可以利用這樣的時(shí)序進(jìn)行校驗(yàn)。181.1.工作模式工作模式單字節(jié)單字節(jié)傳輸模式:每次響應(yīng)僅傳送一傳輸模式:每次響應(yīng)僅傳送一字節(jié)即退出、重新對申請排隊(duì),字節(jié)即退出、重新對申請排隊(duì),PCPC上上用戶只能用單字節(jié)模式用戶只能用單字節(jié)模式塊傳輸塊傳輸模式:每次響應(yīng)連續(xù)傳送、由模式:每次響應(yīng)連續(xù)傳送、由EOPEOP結(jié)束結(jié)束請求請求傳輸模式:每傳一字節(jié)后再查傳輸模式:每傳一字節(jié)后再查DREQDREQ信號信號級連級連模式:主模式:主82378237擴(kuò)展接從擴(kuò)展接從82378237 19CPU主主片片從從片片DREQ0DA
9、CK0DREQ1DREQ2DREQ3DACK1DACK2DACK3HRQHLDAHRQHLDAHLDAHRQ8237A8237A8237A 203.3.寄存器尋址寄存器尋址P307 P307 表表5.135.13A A3 3A A2 2A A1 1A A0 0 通道號通道號 讀操作讀操作 寫操作寫操作 0000 0 0000 0 讀當(dāng)前地址寄存器讀當(dāng)前地址寄存器 寫基寫基(當(dāng)前當(dāng)前)地址寄存器地址寄存器 0001 0 0001 0 讀當(dāng)前字節(jié)數(shù)寄存器讀當(dāng)前字節(jié)數(shù)寄存器 寫基寫基(當(dāng)前當(dāng)前)字節(jié)數(shù)寄存器字節(jié)數(shù)寄存器 1000 1000 公共公共 讀狀態(tài)寄存器讀狀態(tài)寄存器 寫命令寄存器寫命令寄存器
10、 1100 1100 公共公共 -清除高清除高/低觸發(fā)器低觸發(fā)器DMA讀讀:讀內(nèi)存寫外設(shè):讀內(nèi)存寫外設(shè)DMA寫寫:讀外設(shè)寫內(nèi)存:讀外設(shè)寫內(nèi)存DMA校驗(yàn)校驗(yàn):不發(fā)生實(shí)際讀寫:不發(fā)生實(shí)際讀寫 21命令字寄存器是四通道共用,命令字寄存器是四通道共用,四通道用共同的命令字四通道用共同的命令字其它寄存器為各通道單獨(dú)編程其它寄存器為各通道單獨(dú)編程4 4數(shù)值編程數(shù)值編程起始地址起始地址:同時(shí)寫同時(shí)寫 基基 和和 當(dāng)前當(dāng)前字節(jié)計(jì)數(shù)字節(jié)計(jì)數(shù):字節(jié)數(shù)初值減字節(jié)數(shù)初值減1 1后再寫后再寫均為均為16位數(shù)據(jù),分高位數(shù)據(jù),分高/低寫,由高低寫,由高/低觸發(fā)器指定低觸發(fā)器指定原因:原因:從從0減到減到0FFFFH時(shí)才時(shí)才
11、發(fā)出發(fā)出EOP信號結(jié)束信號結(jié)束DMA過程過程 22 23 24 25 26 27通道通道0 0:DRAMDRAM刷新,刷新,8253 OUT18253 OUT1定時(shí)定時(shí)15s15s產(chǎn)生產(chǎn)生通道通道1 1:給用戶用,:給用戶用,頁面寄存器地址為頁面寄存器地址為83H83H通道通道2 2:軟驅(qū)用,頁面寄存器地址為:軟驅(qū)用,頁面寄存器地址為81H81H通道通道3 3:硬盤用,頁面寄存器地址為:硬盤用,頁面寄存器地址為82H82H8237只有16位地址線,產(chǎn)生A1515A0 0,20位地址的高4位實(shí)現(xiàn)寫在頁面寄存器中 28 頁面寄存器頁面寄存器:存儲(chǔ):存儲(chǔ)DMADMA地址地址A A1919AA1616
12、,用,用 OUTOUT指令寫,接收數(shù)據(jù)總指令寫,接收數(shù)據(jù)總 線上線上D D3 3DD0 0的數(shù)據(jù)的數(shù)據(jù)例如:MOV AL ,08 OUT 83H,AL設(shè)置通道通道1 1頁面地址頁面地址為為80000H80000H。29 OUT 0CH,AL ;清除 高/低觸發(fā)器 MOV AL,0 OUT 02,AL ;低位地址 00H OUT 02,AL ;高位地址 MOV AL,8 ;頁面地址 OUT 83H,AL ;通道1頁面寄存器 ;得內(nèi)存起始地址 80000H8237 應(yīng)用舉例應(yīng)用舉例 P310-311 30 MOV AX,300H;傳輸字節(jié)數(shù)DEC AX OUT 03,AL;寫通道1字節(jié)數(shù)低位MOV
13、 AL,AHOUT 03,AL ;寫通道1字節(jié)數(shù)高位 MOV AL,49H ;通道1模式字:單字節(jié)讀,地址加1 OUT 0BH,AL ;寫模式寄存器MOV AL,49H ;命令字:DACK、DREQ低有效 ;正常時(shí)序,固定優(yōu)先權(quán)OUT 08H,AL ;寫命令字 31 MOV AL,1 ;清除通道1的屏蔽 OUT 0AH,AL ;寫屏蔽寄存器WAITF:IN AL,08 ;讀狀態(tài)寄存器 AND AL,2 ;00000010B 通道1傳輸完成否 JZ WAITF ;沒完成則等待 MOV AL,5 ;00000101B 恢復(fù)通道1的屏蔽 OUT 0AH,AL ;寫屏蔽寄存器 將內(nèi)存起始地址為將內(nèi)存起始地址為80000H的的300H字節(jié)的內(nèi)字節(jié)的內(nèi)容經(jīng)通道容經(jīng)通道1直接輸出給外部設(shè)備直接輸出給外部設(shè)備