《微型計(jì)算機(jī)原理與接口技術(shù)(第二版)第9章DMA技術(shù)及DMA控制器》由會(huì)員分享,可在線閱讀,更多相關(guān)《微型計(jì)算機(jī)原理與接口技術(shù)(第二版)第9章DMA技術(shù)及DMA控制器(35頁珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、,微型計(jì)算機(jī)原理與接口技術(shù),中國(guó)水利水電出版社,ISBN 978-7-5170-3719-4,單擊此處編輯母版標(biāo)題樣式,單擊此處編輯母版文本樣式,第二級(jí),第三級(jí),第四級(jí),第五級(jí),微型計(jì)算機(jī)原理與接口技術(shù)第二版,第,9,章,DMA,技術(shù)及,DMA,控制器,9.1 直接存儲(chǔ)器存取DMA技術(shù)概述,9.2 可編程DMA控制器8237A,9.3 DMA技術(shù)在微型計(jì)算機(jī)系統(tǒng)中的應(yīng)用,習(xí)題與思考,學(xué)習(xí)目標(biāo),9.1 直接存儲(chǔ)器存取DMA技術(shù)概述,9.1.1 DMA控制器的根本功能,9.1.2 DMA控制器的一般結(jié)構(gòu),9.1.3 DMA控制器的工作方式,9.1.4 DMA操作過程,9.1.1 DMA控制器的根本
2、功能,能,接受,CPU,的編程,以便進(jìn)行功能設(shè),定,。,能,接收,I/O,接口的,DMA,請(qǐng)求,并向,CPU,發(fā)出總線請(qǐng)求信號(hào),請(qǐng)求總線控制,權(quán)。,CPU,響應(yīng)總線請(qǐng)求之后,,DMAC,能接管總線的控制,進(jìn)入,DMA,傳送過,程。,能,實(shí)現(xiàn)有效的尋址,即能輸出地址信息并在數(shù)據(jù)傳送過程中自動(dòng)修改地址指,針。,能,向內(nèi)存儲(chǔ)器和,I/O,接口發(fā)出相應(yīng)的讀,/,寫控制信,號(hào)。,能,控制傳送數(shù)據(jù)的字節(jié)數(shù),判定,DMA,傳送是否結(jié),束。,DMA,結(jié)束,時(shí)能釋,放總線,恢復(fù),CPU,對(duì)總線的控,制。,存儲(chǔ)器,DMA,通道,I/O,接口,高速,I/O,設(shè)備,DMAC,9.1.2 DMA,控制器的一般結(jié)構(gòu),存儲(chǔ)
3、器,CPU,I/O,接口,I/O,外設(shè),總線請(qǐng)求,總線響應(yīng),DMA,結(jié)束信號(hào),總線,接口,總線,控制,邏輯,控制寄存器,狀態(tài)寄存器,地址寄存器,字節(jié)計(jì)數(shù)器,DMA,請(qǐng)求,DMA,響應(yīng),9.1.3 DMA,控制器的工作方式,每,次,DMA,操作只傳送一個(gè)字,節(jié)。,每,次,DMA,操作連續(xù)傳送一組數(shù),據(jù)。,類,似于塊傳送方式,只是當(dāng)外設(shè)發(fā)來的,DREQ,無效時(shí)暫停,DMA,操作,有效時(shí)繼,續(xù)。,這,種方式可以擴(kuò)展系統(tǒng)中的,DMA,通道數(shù),量。,1單字節(jié)傳送方式,2塊傳送方式組傳送方式,3請(qǐng)求傳送方式,4級(jí)聯(lián)傳送方式,9.1.3 DMA,控制器的工作方式,每,次,DMA,操作只傳送一個(gè)字,節(jié)。,每,
4、次,DMA,操作連續(xù)傳送一組數(shù),據(jù)。,類,似于塊傳送方式,只是當(dāng)外設(shè)發(fā)來的,DREQ,無效時(shí)暫停,DMA,操作,有效時(shí)繼,續(xù)。,這,種方式可以擴(kuò)展系統(tǒng)中的,DMA,通道數(shù),量。,(,1,),單字節(jié)傳送,方,式,(,2,),塊傳送,方式,(組傳送方式),(,3,),請(qǐng)求傳送,方,式,(,4,),級(jí)聯(lián)傳送,方,式,HLDA,HOLD,CPU,HRQ,HLDA,DREQ,DACK,DREQ,DACK,一級(jí),DMAC,HRQ,HLDA,DREQ,DACK,DREQ,DACK,二級(jí),DMAC,HRQ,HLDA,DREQ,DACK,DREQ,DACK,二級(jí),DMAC,I/O,接口,I/O,接口,I/O,接
5、口,I/O,接口,9.1.4 DMA,操作過程,CPU,對(duì),DMAC,初始化,,,送入存儲(chǔ),器起,始地,址,、,數(shù)據(jù),塊,長(zhǎng)度。,從,I/O,接口向,DMAC,發(fā)出,DMA,請(qǐng)求信號(hào),DREQ,。,DMAC,向,CPU,發(fā)出總線請(qǐng)求,HRQ,。,CP,U,結(jié)束,現(xiàn)行總,線周期,后向,DMAC,回送總線響應(yīng)信號(hào),HLDA,。,CPU,讓,出,控,制總線、地址總線、數(shù)據(jù)總,線,,由,DMAC,控制。,DMAC,向外部設(shè)備發(fā)出,DMA,響應(yīng)信號(hào),DACK,。,進(jìn),行,DMA,傳,送,:,DMAC,向,I/O,接口發(fā)出,讀,信號(hào),,數(shù),據(jù)讀,到,DB,上,,通,過,AB,發(fā),送存儲(chǔ)器地址,通,過,CB
6、,向,存,儲(chǔ),器,發(fā)出,寫,信號(hào),,,DB,上,的數(shù)據(jù)寫入指定的存儲(chǔ)器單元。,DMAC,修改內(nèi)部地址寄存,器,+1,或,-1,,,字節(jié)計(jì)數(shù),器,-1。,重,復(fù),第,7,、,8,步,,直至設(shè)定的字節(jié)數(shù)傳送完畢。,DMAC,撤,消,HRQ,信號(hào),,,釋放總線,,CPU,重新控制總線。,以數(shù)據(jù)由外部設(shè)備向存儲(chǔ)器輸入為例,9.2,可編程,DMA,控制器,8237A,9.2.1 8237A,的主要,特性,9.2.2 8237A,的內(nèi)部,結(jié)構(gòu),9.2.3 8237A,的引腳,功能,9.2.4 8237A,的操作,方式,9.2.5 8237A,的編程,9.2.1 8237A,的主要特性,9.2.2 8237
7、A,的內(nèi)部結(jié)構(gòu),9.2.2 8237A,的內(nèi)部結(jié)構(gòu),1時(shí)序與控制邏輯,2優(yōu)先級(jí)編碼及控制邏輯,3命令控制邏輯,4數(shù)據(jù)和地址緩沖器組,5內(nèi)部存放器組,8237A,從,態(tài),時(shí)受,CPU,的控制,時(shí)序與控制邏輯電路接受系統(tǒng)送來的時(shí)鐘、復(fù)位、片選和讀,/,寫控制等信號(hào),完成相應(yīng)的內(nèi)部控制操,作,。,8237A,主態(tài)時(shí),向,存儲(chǔ)器或,I/O,接口發(fā)出讀,/,寫等各種控制信,號(hào),。,根據(jù)CPU對(duì)8237A初始化時(shí)的設(shè)置要求,對(duì)同時(shí)提出DMA請(qǐng)求的多個(gè)通道進(jìn)行優(yōu)先級(jí)次序裁決,以確定優(yōu)先級(jí)最高的通道。,優(yōu)先級(jí)高的設(shè)備在效勞時(shí),其他低級(jí)別的通道請(qǐng)求均被禁止,直至高優(yōu)先級(jí)通道的效勞結(jié)束。,8237A從態(tài)時(shí),DB7
8、DB0用于傳輸CPU要對(duì)其讀/寫的數(shù)據(jù)信息,主態(tài)時(shí)用于向存儲(chǔ)器送出高位地址。,引腳A7A4、A3A0為地址線,在主態(tài)時(shí)用于向存儲(chǔ)器送出低位地址,從態(tài)時(shí)CPU通過A3A0引腳對(duì)8237A進(jìn)行內(nèi)部存放器選擇。,8237A內(nèi)部有4個(gè)DMA通道,每個(gè)通道各有一個(gè)16位的基地址存放器、基字節(jié)計(jì)數(shù)器、當(dāng)前地址存放器、當(dāng)前字節(jié)計(jì)數(shù)器,及一個(gè)6位的工作方式存放器。,片內(nèi)還有可編程的命令存放器、屏蔽存放器、請(qǐng)求存放器、狀態(tài)存放器和暫存存放器各1個(gè),不可編程的計(jì)數(shù)暫存器和地址暫存器各1個(gè)。,名稱,位數(shù),數(shù)量,CPU,訪問方式,名稱,位數(shù),數(shù)量,CPU,訪問方式,基地址寄存器,16,4,寫,命令寄存器,8,1,寫,
9、基字節(jié)計(jì)數(shù)器,16,4,寫,工作方式寄存器,6,4,寫,當(dāng)前地址寄存器,16,4,讀,/,寫,屏蔽寄存器,4,1,寫,當(dāng)前字節(jié)計(jì)數(shù)器,16,4,讀,/,寫,請(qǐng)求寄存器,4,1,寫,地址暫存器,16,1,不能訪問,狀態(tài)寄存器,8,1,讀,計(jì)數(shù)暫存器,16,1,不能訪問,暫存寄存器,8,1,讀,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,IOR,IOW,MEMR,MEMW,NC,READY,HLDA,ADSTB,AEN,HRQ,CS,CLK,RESET,DACK2,DACK3,DREQ3,DREQ2,DREQ1,DREQ0,GND,40,3
10、9,38,37,36,35,34,33,32,31,30,29,28,27,26,25,24,23,22,21,A7,A6,A5,A4,EOP,A3,A2,A1,A0,Vcc,DB0,DB1,DB2,DB3,DB4,DACK0,DACK1,DB5,DB6,DB7,8,2,3,7,A,9.2.3 8237A,的引腳功能,DREQ,(來自,I/O,接口),HLDA,(來自,CPU,),SI,S0,S1,S2,S3,S4,Sw,SI,單字節(jié)傳送,組傳送,S0,空閑,周,期,有效周期,9.2.4 8237A,的操作方式,1,8237A,的操作周期,從時(shí)序上看,8237A可以有2個(gè)操作周期:,空閑周期從
11、態(tài),有效周期主態(tài),有效周期又稱DMA周期,SI,SI,單字節(jié)傳送,組傳送,S0,S0,DREQ,(來自,I/O,接口),HLDA,(來自,CPU,),S1,S2,S3,S4,Sw,空閑狀態(tài),請(qǐng)求,應(yīng)答狀態(tài),數(shù)據(jù)傳送狀態(tài),9.2.4 8237A,的操作方式,2,8237,工作方式,3,8237,傳送類型,單,字節(jié)傳送方,式,請(qǐng),求傳送方,式,數(shù),據(jù)塊傳送方,式,級(jí),聯(lián)傳送方,式,DMA,讀,:,將數(shù)據(jù)由存儲(chǔ)器傳送到外設(shè)。,DMA,寫,:,將數(shù)據(jù)由外設(shè)傳送到存儲(chǔ)器。,DMA,校驗(yàn),:,一種空操作,,,產(chǎn)生時(shí)序、產(chǎn)生地址信號(hào),但不進(jìn)行傳送,而外設(shè)可以利用這樣的時(shí)序進(jìn)行,DMA,校驗(yàn)。,9.2.5 8
12、237A,的編程,18237A內(nèi)部存放器的主要功能及格式,8237A,內(nèi)部寄存器尋址,4,個(gè)通道的屏蔽寄存器,清除,4,個(gè)通道的屏蔽位,主清除命令,暫存寄存器,清除先,/,后觸發(fā)器,工作方式寄存器,單通道屏蔽寄存器,請(qǐng)求寄存器,命令寄存器,狀態(tài)寄存器,通道,3,基(當(dāng)前)字,節(jié)計(jì)數(shù)器,通道,3,當(dāng),前字節(jié)計(jì)數(shù)器,通道,3,基(當(dāng)前)地,址寄存器,通道,3,當(dāng),前地址寄存器,通道,2,基(當(dāng)前)字,節(jié)計(jì)數(shù)器,通道,2,當(dāng),前字節(jié)計(jì)數(shù)器,通,道,2,基(當(dāng)前)地,址寄存器,通道,2,當(dāng),前地址寄存器,通道,1,基,(,當(dāng)前)字,節(jié)計(jì)數(shù)器,通道,1,當(dāng),前字節(jié)計(jì)數(shù)器,通道,1,基(當(dāng)前)地,址寄存器
13、,通道,1,當(dāng),前地址寄存器,通道,0,基(當(dāng)前)字,節(jié)計(jì)數(shù)器,通道,0,當(dāng),前字節(jié)計(jì)數(shù)器,通道,0,基(當(dāng)前)地,址寄存器,通道,0,當(dāng),前地址寄存器,DMA+1111,DMA+1110,DMA+1101,DMA+1100,DMA+1011,DMA+1010,DMA+1001,DMA+1000,DMA+0111,DMA+0110,DMA+0101,DMA+0100,DMA+0011,DMA+0010,DMA+0001,DMA+0000,A3A2A1A0,1基地址存放器,9.2.5 8237A,的編程,每個(gè)通道各有一個(gè)16位的基地址存放器,用于存放本通道DMA傳送時(shí)的存儲(chǔ)器起始單元地址,在82
14、37A初始化時(shí)由CPU寫入。,2當(dāng)前地址存放器,在初始化編程時(shí),CPU向基地址存放器寫入的內(nèi)容,同時(shí)也被寫入當(dāng)前地址存放器。,每次DMA傳送后,當(dāng)前地址存放器內(nèi)容自動(dòng)增1或減1,以指向相鄰的下一個(gè)存儲(chǔ)單元。該存放器內(nèi)容可被CPU隨時(shí)讀出。,3基字節(jié)計(jì)數(shù)器,9.2.5 8237A,的編程,每個(gè)通道各有一個(gè),16,位的,基,字節(jié)計(jì)數(shù)器,,用于存放本通道要傳送的數(shù)據(jù),量,,,在,初始,化時(shí),由,CPU,寫,入,。,編,程寫入的字節(jié)數(shù)比實(shí)際要傳送的字節(jié)數(shù)少,1,。,4當(dāng)前字節(jié)計(jì)數(shù)器,用于存放本通道DMA傳送時(shí)待傳送的剩余字節(jié)數(shù)。初始化編程時(shí),CPU向基字節(jié)計(jì)數(shù)器和當(dāng)前字節(jié)計(jì)數(shù)器同時(shí)寫入相同的初始值。,
15、每次DMA方式傳送一個(gè)字節(jié)后,當(dāng)前字節(jié)計(jì)數(shù)器自動(dòng)減1,當(dāng)其內(nèi)容最后一次從0減到0FFFFH時(shí),將產(chǎn)生終止計(jì)數(shù)的脈沖輸出。該存放器可被CPU隨時(shí)讀出。,5暫存存放器,9.2.5 8237A,的編程,暫存存放器為8位,僅在存儲(chǔ)器至存儲(chǔ)器之間DMA傳送時(shí)使用,傳送操作時(shí)用來暫時(shí)存放從源地址單元讀出的數(shù)據(jù)。,6地址暫存器和計(jì)數(shù)暫存器,地址暫存器用于暫時(shí)存放當(dāng)前存儲(chǔ)器單元地,址,。,計(jì),數(shù)暫存器用于暫時(shí)存放當(dāng)前計(jì)數(shù)值,。,CPU,不與二者,發(fā),生關(guān),系,,不對(duì)二者讀,/,寫,。,7狀態(tài)存放器,9.2.5 8237A,的編程,D7,D6,D5,D4,D3,D2,D1,D0,1,通道,0,計(jì)數(shù)結(jié)束,1,通道
16、,1,計(jì)數(shù)結(jié)束,1,通道,2,計(jì)數(shù)結(jié)束,1,通道,3,計(jì)數(shù)結(jié)束,1,通道,0,有請(qǐng)求,1,通道,1,有請(qǐng)求,1,通道,2,有,請(qǐng)求,1,通道,3,有,請(qǐng)求,8命令存放器,9.2.5 8237A,的編程,0 DACK,低電平有效,1 DACK,高,電,平有效,0,DREQ,高電平有效,1 DREQ,低,電,平有效,0,正常寫,1,擴(kuò)展寫,0,固,定優(yōu)先級(jí),1,循環(huán),優(yōu),先級(jí),0,禁止,內(nèi),存到,內(nèi),存?zhèn)?送,0,不,保持通道,0,源地址不變,1,允許內(nèi),存到,內(nèi),存?zhèn)?送,1,保,持通道,0,源地址不變,0,允,許,8237A,工作,1,禁止,8237A,工作,0,普,通,時(shí)序,1,壓縮時(shí)序,D7,D6,D5,D4,D3,D2,D1,D0,9工作方式存放器,9.2.5 8237A,的編程,工作方式,D7,D6,D5,D4,D3,D2,D1,D0,地址,修改,通道選擇,傳送類型,00,請(qǐng)求傳送方式,01,單字節(jié)傳送方式,10,塊傳送方式,11,級(jí)聯(lián)方式,00,通道,0,01,通,道,1,10,通,道,2,11,通,道,3,自動(dòng),預(yù)置,00 DMA,校驗(yàn),01 DMA,寫,10 DMA,讀,