第八章輸入輸出系統(tǒng)_第1頁
第八章輸入輸出系統(tǒng)_第2頁
第八章輸入輸出系統(tǒng)_第3頁
第八章輸入輸出系統(tǒng)_第4頁
第八章輸入輸出系統(tǒng)_第5頁
已閱讀5頁,還剩40頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

第八章輸入輸出(I/O)系統(tǒng)

計(jì)算機(jī)的I/O系統(tǒng)提供主機(jī)與外部世界通信的手段。從計(jì)算機(jī)科學(xué)觀點(diǎn)看:I/O系統(tǒng)典型地反映著硬件與軟件的相互結(jié)合。從用戶的角度看:現(xiàn)代計(jì)算機(jī)的I/O系統(tǒng)的復(fù)雜性大都隱藏在操作系統(tǒng)中,用戶只需通過一些簡(jiǎn)單的命令或程序請(qǐng)求便可調(diào)用各種I/O過程。8.1概術(shù)

I/O系統(tǒng)的特點(diǎn)復(fù)雜性、異步性、時(shí)實(shí)性、設(shè)備關(guān)聯(lián)性(標(biāo)準(zhǔn)接口、驅(qū)動(dòng)程序)。I/O系統(tǒng)要解決的問題(1)控制方式CPU如何控制輸入/輸出?(輸入/輸出方式)(2)傳輸方式使用傳輸通道、方式、速率等(總線、接口)(3)數(shù)據(jù)識(shí)別和轉(zhuǎn)換數(shù)/模轉(zhuǎn)換、語音識(shí)別等,轉(zhuǎn)換為字符、數(shù)據(jù)等計(jì)算機(jī)能識(shí)別的格式(設(shè)備)I/O系統(tǒng)的功能

(1)選擇I/O設(shè)備和反映I/O設(shè)備的工作狀態(tài)。(2)實(shí)現(xiàn)主機(jī)與外設(shè)的聯(lián)絡(luò)控制。(3)在選定的I/O設(shè)備和主機(jī)之間交換信息。(4)完成有關(guān)的數(shù)據(jù)格式變換(串—并),數(shù)據(jù)拆卸與裝配等輔助操作。I/O系統(tǒng)的組成

由I/O設(shè)備、設(shè)備控制器、以及同I/O操作有關(guān)的硬件和軟件組成?,F(xiàn)代計(jì)算機(jī)對(duì)I/O系統(tǒng)的要求是:在執(zhí)行每一項(xiàng)由具體I/O設(shè)備實(shí)現(xiàn)I/O操作的過程中,應(yīng)保證有效地利用主存和CPU。I/O設(shè)備與主機(jī)的連接方式

每當(dāng)I/O操作取得某項(xiàng)進(jìn)展,都要反映到系統(tǒng)級(jí)的連接上面來。如何連接外圍設(shè)備,如何形成外圍設(shè)備到主機(jī)的通路,如何支持I/O操作與其它CPU操作的并行執(zhí)行,這是設(shè)計(jì)一個(gè)I/O系統(tǒng)的關(guān)鍵問題。不同的I/O系統(tǒng)有不同的連接方式,主要差別在于:

(a)從外設(shè)到主機(jī)通路上控制功能分布的不同。(b)通路數(shù)目的不同。(c)各種外設(shè)接到各個(gè)通路的靈活性的不同。(d)外設(shè)與外設(shè)之間,外設(shè)與主機(jī)之間的并行工作程度不同等等。(1)外設(shè)與主機(jī)之間通過I/O接口連接I/O接口:實(shí)現(xiàn)主機(jī)與外設(shè)的聯(lián)絡(luò)和數(shù)據(jù)緩沖。設(shè)備控制器:對(duì)設(shè)備進(jìn)行啟??刂疲o助操作控制,指示設(shè)備的工作狀態(tài)等。程序直接控制I/O方式和程序中斷控制I/O方式采用此結(jié)構(gòu)。I/O接口外設(shè)主機(jī)設(shè)備控制器(2)外設(shè)和主機(jī)之間通過通道連接CU:設(shè)備控制器。D:I/O設(shè)備。通道:一種專用的I/O處理器,負(fù)責(zé)管理外設(shè)的I/O操作。主機(jī)通道通道CUDCUDCUDCUDD輸入輸出控制方式(信息交換方式)

(1)程序查詢方式

由CPU通過程序不斷查詢I/O設(shè)備是否已準(zhǔn)備好,從而控制I/O設(shè)備與主機(jī)交換信息。優(yōu)點(diǎn):簡(jiǎn)單、易控制。缺點(diǎn):主機(jī)與外設(shè)串行工作,CPU效率低。I/O控制方式主要由軟件(程序)實(shí)現(xiàn)主要由附加硬件實(shí)現(xiàn)程序查詢方式程序中斷方式DMA方式通道方式PPU方式(2)程序中斷方式

I/O中斷:指CPU啟動(dòng)外設(shè)后繼續(xù)執(zhí)行自身的程序,外設(shè)準(zhǔn)備好后向CPU發(fā)中斷請(qǐng)求,CPU響應(yīng)中斷,暫停正在執(zhí)行的現(xiàn)行程序,轉(zhuǎn)去執(zhí)行中斷服務(wù)程序(實(shí)現(xiàn)外設(shè)與主機(jī)的信息交換),服務(wù)完后再返回到原斷點(diǎn)處繼續(xù)執(zhí)行原來的CPU程序。中斷控制I/O方式就是將中斷環(huán)節(jié)引用于I/O的過程,使CPU與外設(shè)在一定程度上并行工作,從而提高CPU的利用率。中斷的另一個(gè)重要作用,就是使計(jì)算機(jī)及時(shí)處理隨機(jī)事件,保證機(jī)器可靠地工作。(3)DMA(直接存儲(chǔ)器存取)方式

在外設(shè)與主機(jī)之間設(shè)置一條專用的數(shù)據(jù)交換通路,在DMA控制器的控制下,實(shí)現(xiàn)外設(shè)與主機(jī)成批交換數(shù)據(jù)。(4)通道控制I/O方式

通道是從屬于CPU的專用I/O處理機(jī),某些應(yīng)用中稱為輸入輸出處理器(IOP),能獨(dú)立地執(zhí)行用通道命令編寫的I/O控制程序,完成復(fù)雜的輸入輸出過程,即通道是采用軟、硬結(jié)合的方式來實(shí)現(xiàn)I/O操作的。(5)外圍處理機(jī)(PPU)方式

外圍處理機(jī)是一種功能更強(qiáng)的I/O處理機(jī),基本上獨(dú)立于主機(jī)工作,完成I/O操作。在一些系統(tǒng)中,設(shè)置了多臺(tái)PPU,分別承擔(dān)I/O控制、通信、維護(hù)診斷等任務(wù)。從某種意義上說,這種系統(tǒng)已變成分布式的多機(jī)系統(tǒng)。

目前,單片機(jī)和微型機(jī)中多采用程序查詢方式、程序中斷方式和DMA方式。通道方式和PPU方式大都用在中、大型計(jì)算機(jī)中。設(shè)計(jì)輸入/輸出系統(tǒng)考慮的問題(1)性能考慮吞吐量和延遲適應(yīng)各種不同類別的設(shè)備的性能的差異從操作系統(tǒng)、驅(qū)動(dòng)程序等各方面綜合考慮考慮到設(shè)備性能的提高(2)可擴(kuò)展性允許更多的設(shè)備接入到輸入/輸出系統(tǒng)(3)可適應(yīng)性設(shè)備有無設(shè)備故障8.2程序查詢方式在這種方式控下,I/O設(shè)備與主機(jī)之間的信息交換,一般需經(jīng)過CPU中的寄存器,而且通常一次只傳送否一個(gè)字(節(jié))。是

未完

設(shè)置計(jì)數(shù)器設(shè)置內(nèi)存緩沖區(qū)首址啟動(dòng)外設(shè)準(zhǔn)備好?傳送一個(gè)數(shù)據(jù)修改內(nèi)存地址修改計(jì)數(shù)值傳送完?結(jié)束I/O傳送設(shè)備編址:(1)統(tǒng)一編址(2)獨(dú)立編址②設(shè)備選擇電路DBRQQ&數(shù)據(jù)線準(zhǔn)備就緒啟動(dòng)命令地址線SEL輸入數(shù)據(jù)啟動(dòng)設(shè)備設(shè)備工作結(jié)束①③④⑤⑥D(zhuǎn)B程序查詢方式的接口電路①②③⑤⑥1010④以輸入為例8.3程序中斷方式在計(jì)算機(jī)系統(tǒng)中引入中斷的概念,并使其具有中斷處理功能,這是計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)發(fā)展的一大進(jìn)步。中斷系統(tǒng)是計(jì)算機(jī)實(shí)現(xiàn)中斷功能的軟硬件總稱。一般在CPU中設(shè)置中斷機(jī)構(gòu),在外設(shè)接口中設(shè)置中斷控制器,在軟件上設(shè)置相應(yīng)的中斷服務(wù)程序。

中斷的基本概念中斷(Interrupt)是指CPU暫時(shí)中止現(xiàn)行程序,轉(zhuǎn)去處理隨機(jī)發(fā)生的緊急事件,處理完后自動(dòng)返回原程序的功能和技術(shù)。

中斷處理過程示例

主程序只是在設(shè)備A,B,C數(shù)據(jù)準(zhǔn)備就緒時(shí),才去處理A,B,C,進(jìn)行數(shù)據(jù)交換。在速度較慢的外圍設(shè)備準(zhǔn)備自己的數(shù)據(jù)時(shí),CPU照常執(zhí)行自己的主程序。在這個(gè)意義上說,CPU和外圍設(shè)備的一些操作是并行地進(jìn)行的,因而同串行進(jìn)行的程序查詢方式相比,計(jì)算機(jī)系統(tǒng)的效率是大大提高了。

(1)中斷系統(tǒng)需解決的問題

設(shè)計(jì)一個(gè)中斷系統(tǒng)應(yīng)考慮以下問題:(a)中斷源和中斷請(qǐng)求問題。(b)中斷判優(yōu)問題。(c)CPU在什么條件、什么時(shí)候、以什么方式來響應(yīng)中斷問題。(d)中斷現(xiàn)場(chǎng)保護(hù)問題。(e)中斷服務(wù)程序的進(jìn)入及其本身的設(shè)計(jì)問題。(f)多重中斷問題。(g)中斷現(xiàn)場(chǎng)恢復(fù)問題。要解決上述七個(gè)問題,必須在中斷系統(tǒng)中有相應(yīng)的軟、硬件支持。(2)中斷的作用(a)主機(jī)與外設(shè)(在一定程度上)并行工作。(b)故障處理:硬件故障、軟件故障。(c)人機(jī)聯(lián)系。(d)時(shí)實(shí)控制(處理)。(e)多道程序切換和多用戶分時(shí)共享計(jì)算機(jī)資源。(f)目態(tài)程序和管態(tài)程序的聯(lián)系。(g)多機(jī)系統(tǒng)中各機(jī)之間的聯(lián)系。(3)中斷的分類(a)按中斷處理方式分程序中斷:通過執(zhí)行中斷服務(wù)程序來處理有關(guān)事件的中斷。簡(jiǎn)單中斷:采用DMA處理外設(shè)中斷(不保護(hù)現(xiàn)場(chǎng))。(b)按中斷產(chǎn)生方式分自愿中斷:事先在程序某處設(shè)置斷點(diǎn),引出服務(wù)程序進(jìn)行中斷處理。強(qiáng)迫中斷:隨機(jī)產(chǎn)生的中斷(硬故障、I/O設(shè)備請(qǐng)求等)。(c)按中斷源來自處理機(jī)內(nèi)部或外部分:內(nèi)中斷、外中斷。(d)按是否產(chǎn)生向量地址分向量中斷:中斷服程序入口由中斷源產(chǎn)生向量地址提供。非向量中斷:中斷服務(wù)程序入口由CPU查詢得到。I/O中斷處理過程(1)中斷請(qǐng)求:中斷源向CPU發(fā)出的申請(qǐng)中斷的要求。中斷源:通常將能引起中斷的各個(gè)因素稱作中斷源。引起中斷的因素很多,大致可分為以下幾類:

(a)人為設(shè)置中斷:又稱自愿中斷。(b)程序性事故:如溢出、操作碼不能識(shí)別、除法錯(cuò)等。(c)硬件故障:如插件接觸不良、磁表面損壞、電源掉電等。(d)I/O設(shè)備:I/O設(shè)備請(qǐng)求CPU服務(wù)等。(e)外部事件:操作員干預(yù)等。中斷請(qǐng)求標(biāo)記:為了記錄中斷事件的發(fā)生,一般給每個(gè)中斷源設(shè)置一個(gè)中斷請(qǐng)求(標(biāo)記)觸發(fā)器,保留中斷請(qǐng)求信號(hào)。當(dāng)其狀態(tài)為“1”時(shí),表示中斷源有請(qǐng)求,并向CPU發(fā)出請(qǐng)求信號(hào)。這種觸發(fā)器可分散到各個(gè)中斷源的接口電路中,也可以集中設(shè)在CPU內(nèi),組成一個(gè)中斷請(qǐng)求標(biāo)記寄存器。1576011CPCDQCPUINTR(中斷請(qǐng)求信號(hào))中斷觸發(fā)器控制與狀態(tài)寄存器(PR)OC門外設(shè)向CPU發(fā)中斷請(qǐng)求的條件:①PR6=1,CPU允許外設(shè)請(qǐng)求(無屏蔽)。②PR7=1,外設(shè)已準(zhǔn)備好。外設(shè)向CPU發(fā)中斷請(qǐng)求的條件:

(a)外設(shè)已就緒;

(b)CPU允許外設(shè)中斷且未屏蔽。(2)中斷響應(yīng):指終止CPU現(xiàn)行程序到轉(zhuǎn)入中斷服務(wù)程序過程。(a)保護(hù)斷點(diǎn)和狀態(tài)(硬措施),保護(hù)其它現(xiàn)場(chǎng)(軟措施)。

中斷隱指令是CPU在中斷周期內(nèi)由硬件自動(dòng)完成的一條指令。該指令通常完成保護(hù)程序斷點(diǎn)、尋找中斷服務(wù)程序的入口地址、關(guān)中斷等一系列操作。采用中斷隱指令,是為了提高中斷處理速度。通常在中斷服務(wù)程序的起始部分安排若干條存數(shù)指令,將寄存器的內(nèi)容送至存儲(chǔ)器中保存;或用進(jìn)棧指令將寄存器的內(nèi)容壓入堆棧保存,以免中斷服務(wù)程序用到相應(yīng)的寄存器而破壞其原內(nèi)容。響應(yīng)中斷的條件:

①允許中斷觸發(fā)器=1

(由開中斷指令置1,關(guān)中斷指令置0)

②中斷請(qǐng)求標(biāo)記觸發(fā)器=1(有中斷請(qǐng)求)響應(yīng)中斷的時(shí)間:

CPU通常在指令執(zhí)行周期結(jié)束后,響應(yīng)任何中斷請(qǐng)求。若有中斷,CPU則進(jìn)入中斷周期。(b)識(shí)別中斷源(中斷判優(yōu)):軟件查詢法、硬件查詢法。任何一個(gè)中斷系統(tǒng),在任一時(shí)刻,只能響應(yīng)一個(gè)中斷源的請(qǐng)求。但許多中斷源提出請(qǐng)求都是隨機(jī)的,當(dāng)某一時(shí)刻有多個(gè)中斷源提出中斷請(qǐng)求時(shí),中斷系統(tǒng)必須按其優(yōu)先順序予以響應(yīng),即中斷判優(yōu)。

設(shè)備優(yōu)先級(jí)的確定,由許多因素決定:

①中斷條件的緊迫性:故障中斷→實(shí)時(shí)中斷→I/O中斷→用戶程序中斷

②設(shè)備的工作速度:高速設(shè)備→低速設(shè)備

③數(shù)據(jù)恢復(fù)的難易程度:不易恢復(fù)數(shù)據(jù)的設(shè)備→易恢復(fù)數(shù)據(jù)的設(shè)備

④要求CPU提供的服務(wù)量:需CPU干預(yù)少的設(shè)備→需CPU干預(yù)多的設(shè)備軟件排隊(duì)是通過編寫查詢程序?qū)崿F(xiàn)的。程序按中斷源的優(yōu)先等級(jí),從高到低逐級(jí)查詢各個(gè)中斷源是否有中斷請(qǐng)求,這樣就可保證CPU首先響應(yīng)級(jí)別高的中斷源的請(qǐng)求。(c)引出中斷服務(wù)程序:向量法、非向量法。硬件向量法:硬件向量法就是利用硬件產(chǎn)生向量地址,再由向量地址找到中斷服務(wù)程序的入口地址。向量地址由中斷向量地址形成部件產(chǎn)生,這個(gè)電路可分散設(shè)置在各個(gè)接口電路中,也可設(shè)置在CPU內(nèi)。由向量地址尋找中斷服務(wù)程序的入口地址通常采用兩種方法:

①在向量地址內(nèi)存放一條無條件轉(zhuǎn)移指令,CPU響應(yīng)中斷時(shí),只要將向量地址送至PC,執(zhí)行這條指令,便可無條件轉(zhuǎn)向服務(wù)程序的入口地址。

②在內(nèi)存中設(shè)置一個(gè)中斷向量表,存儲(chǔ)單元的地址為向量地址,存儲(chǔ)單元的內(nèi)容為服程序的入口地址,只要訪問向量地址所指示的存儲(chǔ)單元,便可獲得入口地址。向量地址形成部件中斷向量地址來自中斷源排隊(duì)器輸出121314向量地址入口地址200軟件查詢法:用軟件尋找中斷服務(wù)程序入口地址的方法叫軟件查詢法。查詢程序按中斷源的優(yōu)先等級(jí),從高至低逐級(jí)查詢,當(dāng)查到某一中斷源由中斷請(qǐng)求時(shí),接著安排一條轉(zhuǎn)移指令,直接指向此中斷源的中斷服務(wù)程序入口地址,機(jī)器便能自動(dòng)進(jìn)入中斷處理。入口地址300入口地址400主存(3)中斷服務(wù):執(zhí)行中斷服務(wù)程序,進(jìn)行中斷處理。

CPU響應(yīng)中斷后,正要去執(zhí)行中斷服務(wù)程序時(shí),可能有另一個(gè)新的中斷源向它發(fā)出中斷請(qǐng)求。為了不致造成混亂,在CPU的中斷管理部件中必須有一個(gè)中斷屏蔽觸發(fā)器,它可以在程序的控制下置“1”(設(shè)置屏蔽),或置“0”(取掉屏蔽)。只有在中斷屏蔽標(biāo)志為“0”時(shí),CPU才可以受理中斷。當(dāng)一條指令執(zhí)行完畢CPU接受中斷請(qǐng)求并作出響應(yīng)時(shí),它一方面發(fā)出中斷響應(yīng)信號(hào)INTA,另一方面把中斷屏蔽標(biāo)志置“1”,即關(guān)閉中斷。這樣,CPU不能再受理另外的新的中斷源發(fā)來的中斷請(qǐng)求。如果只有在CPU把中斷服務(wù)程序執(zhí)行完畢以后,它才重新使中斷屏蔽標(biāo)志置“0”,即開放中斷,并返回主程序。這種中斷稱為單重中斷。如果在中斷服務(wù)過程中就開中斷,允許優(yōu)先級(jí)更高的中斷源請(qǐng)求中斷并響應(yīng),這就是所謂的多重中斷。(4)中斷返回:恢復(fù)現(xiàn)場(chǎng),轉(zhuǎn)至原斷點(diǎn)處繼續(xù)執(zhí)行原CPU程序?;謴?fù)現(xiàn)場(chǎng)是指在中斷返回前,必須將寄存器的內(nèi)容恢復(fù)到中斷處理前的狀態(tài),這部分工作也由中斷服務(wù)程序完成。單重中斷和多重中斷的服務(wù)程序流程中斷否?保護(hù)現(xiàn)場(chǎng)設(shè)備服務(wù)恢復(fù)現(xiàn)場(chǎng)開中斷中斷返回取指令執(zhí)行指令中斷服務(wù)程序

中斷響應(yīng)程序斷點(diǎn)進(jìn)棧關(guān)中斷向量地址PC中斷周期是中斷返回保護(hù)現(xiàn)場(chǎng)設(shè)備服務(wù)恢復(fù)現(xiàn)場(chǎng)開中斷開中斷開中斷中斷隱指令中斷隱指令否取指令執(zhí)行指令中斷否?否

中斷響應(yīng)程序斷點(diǎn)進(jìn)棧關(guān)中斷向量地址PC中斷周期是中斷服務(wù)程序單重多重設(shè)備選擇電路DBRDQ&數(shù)據(jù)線啟動(dòng)命令地址線SEL輸入數(shù)據(jù)啟動(dòng)設(shè)備設(shè)備工作結(jié)束&1QQDINTRBQQMASK設(shè)備編碼器排隊(duì)器中斷查詢來自高一級(jí)的排隊(duì)器至低一級(jí)的排隊(duì)器向量地址中斷響應(yīng)

INTA中斷請(qǐng)求命令譯碼①②③④⑤⑥⑦⑧程序中斷方式的基本I/O接口

①10&DBR④⑤⑦⑧設(shè)備選擇電路01以輸入為例②③⑥多重中斷的概念和屏蔽技術(shù)

當(dāng)CPU正在執(zhí)行某個(gè)中斷服務(wù)程序時(shí),又發(fā)生了優(yōu)先級(jí)別更高的中斷源的中斷請(qǐng)求,于是CPU暫停服務(wù),保護(hù)好現(xiàn)場(chǎng),轉(zhuǎn)去響應(yīng)更高級(jí)別的中斷請(qǐng)求,進(jìn)行新的中斷服務(wù),即多重中斷,又稱中斷嵌套。中斷屏蔽技術(shù)主要用于多重中斷。每個(gè)中斷源對(duì)應(yīng)一個(gè)屏蔽觸發(fā)器MASK(若MASK=1則屏蔽,MASK=0則未屏蔽),將所有屏蔽觸發(fā)器組合在一起,便構(gòu)成一個(gè)屏蔽寄存器,其內(nèi)容稱作屏蔽字。屏蔽字與中斷源的優(yōu)先級(jí)別是一一對(duì)應(yīng)的,所以在中斷服務(wù)程序中設(shè)置適當(dāng)?shù)钠帘巫?,能起到?duì)優(yōu)先級(jí)別不同的中斷源的屏蔽作用,同時(shí)利用屏蔽字也可以任意改變中斷源的優(yōu)先級(jí)。例1:某計(jì)算機(jī)系統(tǒng)有4臺(tái)外設(shè)D1、D2

、D3

、D4

,4臺(tái)外設(shè)的響應(yīng)優(yōu)先級(jí)次序?yàn)椋篋1>D2>D3>

D4,且允許多重中斷。設(shè)屏蔽位Bi=1為屏蔽,Bi=0為開放。(a)要求中斷服務(wù)次序

D1>D2>D3>

D4

則屏蔽字設(shè)置為:

CPU的運(yùn)行軌跡如下:中斷服務(wù)程序級(jí)別

D1D2D3D4屏蔽字B1B2B3B4111011100110001中斷服務(wù)程序D4D3D2D1主程序D3D2D4D2D1若將中斷服務(wù)次序改為:

D1>D4>D3>

D2

則相應(yīng)的屏蔽字設(shè)置為:

CPU的運(yùn)行軌跡為:中斷服務(wù)程序級(jí)別屏蔽字B1B2B3B4

D1D2D3D4

1111010001100111中斷服務(wù)程序D4D3D2D1主程序D3D2D4D2D18.4DMA方式

DMA方式用于高速外設(shè)與主存在DMA控制器的控制下成批交換數(shù)據(jù)。DMA的基本概念

直接內(nèi)存訪問(DMA)是一種通過硬件執(zhí)行I/O交換的工作方式。在這種方式中,DMA控制器從CPU完全接管對(duì)總線的控制,數(shù)據(jù)交換不經(jīng)過CPU,而直接在內(nèi)存和I/O設(shè)備之間進(jìn)行。DMA方式一般用于高速傳送成組數(shù)據(jù)。DMA控制器將向內(nèi)存發(fā)出地址和控制信號(hào),修改地址,對(duì)傳送的字的個(gè)數(shù)計(jì)數(shù),并且以中斷方式向CPU報(bào)告?zhèn)魉筒僮鞯慕Y(jié)束。

優(yōu)點(diǎn):速度快。有利于發(fā)揮CPU的效率。DMA傳送方式(1)停止CPU訪問內(nèi)存方式

由DMA控制器發(fā)停止信號(hào)給CPU,DMA控制器從CPU處獲得總線控制權(quán)后,進(jìn)行數(shù)據(jù)傳送。數(shù)據(jù)傳送后,DMA控制器通知CPU可以使用內(nèi)存,并把總線控制權(quán)交還給CPU。(2)周期挪用(竊?。┓绞?/p>

DMA控制器與主存儲(chǔ)器之間傳送一個(gè)數(shù)據(jù),占用(竊?。┮粋€(gè)內(nèi)存周期,即CPU暫停工作一個(gè)周期,然后繼續(xù)執(zhí)行程序。

(3)DMA與CPU交替訪問方式如果CPU的工作周期比內(nèi)存存取周期長(zhǎng)很多,此時(shí)采用交替訪內(nèi)的方法可以使DMA傳送和CPU同時(shí)發(fā)揮最高的效率。DMA接口的組成和功能(1)DMA控制器的基本組成一個(gè)最簡(jiǎn)單的DMA控制器由以下邏輯部件組成:

(a)內(nèi)存地址計(jì)數(shù)器用于存放內(nèi)存中要交換的數(shù)據(jù)的地址。在DMA傳送前,須通過程序?qū)?shù)據(jù)在內(nèi)存中的起始位置(首地址)送到內(nèi)存地址計(jì)數(shù)器。而當(dāng)DMA傳送時(shí),每交換一次數(shù)據(jù),將地址計(jì)數(shù)器加“1”,從而以增量方式給出內(nèi)存中要交換的一批數(shù)據(jù)的地址。(b)字計(jì)數(shù)器用于記錄傳送數(shù)據(jù)塊的長(zhǎng)度(多少字?jǐn)?shù))。其內(nèi)容也是在數(shù)據(jù)傳送之前由程序預(yù)置,交換的字?jǐn)?shù)通常以補(bǔ)碼形式表示。在DMA傳送時(shí),每傳送一個(gè)字,字計(jì)數(shù)器就加“1”,當(dāng)計(jì)數(shù)器溢出即最高位產(chǎn)生進(jìn)位時(shí),表示這批數(shù)據(jù)傳送完畢,于是引起DMA控制器向CPU發(fā)中斷信號(hào)。

(c)數(shù)據(jù)緩沖寄存器用于暫存每次傳送的數(shù)據(jù)(一個(gè)字)。當(dāng)輸入時(shí),由設(shè)備(如磁盤)送往數(shù)據(jù)緩沖寄存器,再由緩沖寄存器通過數(shù)據(jù)總線送到內(nèi)存。反之,輸出時(shí),由內(nèi)存通過數(shù)據(jù)總線送到數(shù)據(jù)緩沖寄存器,然后再送到設(shè)備。(d)“DMA請(qǐng)求”標(biāo)志每當(dāng)設(shè)備準(zhǔn)備好一個(gè)數(shù)據(jù)字后給出一個(gè)控制信號(hào),使“DMA請(qǐng)求”標(biāo)志置“1”。該標(biāo)志置位后向“控制/狀態(tài)”邏輯發(fā)出DMA請(qǐng)求,后者又向CPU發(fā)出總線使用權(quán)的請(qǐng)求(HOLD),CPU響應(yīng)此請(qǐng)求后發(fā)回響應(yīng)信號(hào)HLDA,“控制/狀態(tài)”邏輯接收此信號(hào)后發(fā)出DMA響應(yīng)信號(hào),使“DMA請(qǐng)求”標(biāo)志復(fù)位,為交換下一個(gè)字做好準(zhǔn)備。

(e)“控制/狀態(tài)”邏輯由控制和時(shí)序電路以及狀態(tài)標(biāo)志等組成,用于修改內(nèi)存地址計(jì)數(shù)器和字計(jì)數(shù)器,指定傳送類型(輸入或輸出),并對(duì)“DMA請(qǐng)求”信號(hào)和CPU響應(yīng)信號(hào)進(jìn)行協(xié)調(diào)和同步。(f)中斷機(jī)構(gòu)當(dāng)字計(jì)數(shù)器溢出時(shí)(全0),意味著一組數(shù)據(jù)交換完畢,由溢出信號(hào)觸發(fā)中斷機(jī)構(gòu),向CPU提出中斷報(bào)告。

(2)DMA控制器的功能(a)向CPU申請(qǐng)DMA傳送;(b)在CPU允許DMA工作時(shí)處理總線控制權(quán)的轉(zhuǎn)交;(c)在DMA期間管理系統(tǒng)總線,控制數(shù)據(jù)傳送;(d)確定數(shù)據(jù)傳送的起始地址和數(shù)據(jù)長(zhǎng)度,修正數(shù)據(jù)傳送過程中的數(shù)據(jù)地址和數(shù)據(jù)長(zhǎng)度;(e)在數(shù)據(jù)塊傳送結(jié)束時(shí),給出DMA操作完成的信號(hào)。DMA數(shù)據(jù)傳送過程(1)預(yù)處理階段:確定數(shù)據(jù)傳送方向,給相關(guān)寄存器置初始值。如向DMA控制器的設(shè)備地址寄存器中送入設(shè)備號(hào)并啟動(dòng)設(shè)備,向內(nèi)存地址計(jì)數(shù)器中送入起始地址,向字計(jì)數(shù)器中送入交換的數(shù)據(jù)字個(gè)數(shù)等。(2)數(shù)據(jù)傳送階段:DMA挪用主存周期,控制數(shù)據(jù)傳送。DMA的數(shù)據(jù)傳送是以數(shù)據(jù)塊為基本單位進(jìn)行的,因此,每次DMA控制器占用總線后,無論是數(shù)據(jù)輸入操作,還是輸出操作,都是通過循環(huán)來實(shí)現(xiàn)的。當(dāng)進(jìn)行輸入操作時(shí),外圍設(shè)備的數(shù)據(jù)(一次一個(gè)字或一個(gè)字節(jié))傳向內(nèi)存;當(dāng)進(jìn)行輸出操作時(shí),內(nèi)存的數(shù)據(jù)傳向外圍設(shè)備。(3)后處理階段:申請(qǐng)CPU中斷,結(jié)束DMA操作。一旦DMA的中斷請(qǐng)求得到響應(yīng),CPU停止主程序的執(zhí)行,轉(zhuǎn)去執(zhí)行中斷服務(wù)程序做一些DMA的結(jié)束處理工作。這些工作包括校驗(yàn)送入內(nèi)存的數(shù)據(jù)是否正確;決定繼續(xù)用DMA方式傳送下去,還是結(jié)束傳送;測(cè)試在傳送過程中是否發(fā)生了錯(cuò)誤等等。

預(yù)處理:主存起始地址設(shè)備地址傳送數(shù)據(jù)個(gè)數(shù)啟動(dòng)設(shè)備DMADMADMA數(shù)據(jù)傳送:繼續(xù)執(zhí)行主程序同時(shí)完成一批數(shù)據(jù)傳送后處理:中斷服務(wù)程序做DMA結(jié)束處理繼續(xù)執(zhí)行主程序CPU

DMA傳送過程示意允許傳送?主存地址送總線數(shù)據(jù)送I/O設(shè)備(或主存)主存地址加1傳送個(gè)數(shù)減1數(shù)據(jù)塊傳送結(jié)束?向CPU申請(qǐng)程序中斷DMA請(qǐng)求否否

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論