微型計算機技術第五章_第1頁
微型計算機技術第五章_第2頁
微型計算機技術第五章_第3頁
微型計算機技術第五章_第4頁
微型計算機技術第五章_第5頁
已閱讀5頁,還剩67頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、微型計算機技術及應用戴梅萼戴梅萼 史嘉權史嘉權 編著編著第第 5 5 章章第五章第五章微型機和外設的微型機和外設的數據傳輸數據傳輸第5章 微型計算機和外設的數據傳輸教學重點 I/O接口電路的典型結構 無條件傳送方式 查詢傳送方式 中斷工作過程存儲器都是用來保存信息的,功能單一,傳送方式單一(一次必定是傳送1個字節或者1個字),品種很有限(只有只讀類型和可讀/可寫類型),存取速度基本上和CPU的工作速度匹配。微機的外部設備多種多樣工作原理、驅動方式、信息格式、以及工作速度方面彼此差別很大它們不能與CPU直接相連必須經過中間電路再與系統相連這部分電路被稱為I/O接口電路,通過接口電路對輸入/輸出過

2、程起一個緩沖和聯絡的作用。注:接口電路完成相應的信號轉換、速度匹配、數據緩沖等功能多種外設多種外設5.1 5.1 為什么要用接口電路為什么要用接口電路5.2 5.2 接口電路的概述接口電路的概述什么是接口技術? 連接計算機系統中的各種功能部件,構成一個完整的、實用的計算機系統,這是接口技術的廣義定義。依次定義,實現處理器到系統總線連接的總線驅動器、數據收發器、時鐘電路等稱為處理器借口。此外,還有RAM接口、ROM接口、外部設備接口等等。更為流行的觀點認為接口技術是把由處理器、RAM、ROM等組成的基本系統與外部設備連接起來,從而實現計算機與外部世界通訊的一門 技術,即僅指I/O設備接口技術。什

3、么是I/O接口(電路)? I/O接口是位于系統與外設間、用來協助完成數據傳送和控制任務的邏輯電路 PC機系統板的可編程接口芯片、I/O總線槽的電路板(適配器)都是接口電路5.2 5.2 接口電路的概述(續)接口電路的概述(續)什么是微機接口技術? 處理微機系統與外設間聯系的技術 注意其軟硬結合的特點 根據應用系統的需要,使用和構造相應的接口電路,編制配套的接口程序,支持和連接有關的設備5.2 5.2 接口電路的概述(續)接口電路的概述(續)5.2 5.2 接口功能接口功能 尋址能力:對送來的片選信號進行識別。 輸入/輸出功能:根據讀/寫信號決定當前進行的是輸入操作還是輸出操作。 數據轉換功能:

4、并行數據向串行數據的轉換或串行數據向并行數據的轉換。 聯絡功能:就緒信號,忙信號等。 中斷管理:發出中斯請求信號、接收中斷響應信號、發送中斷類型碼的功能。并具有優先級管理功能。 復位:接收復位信號,從而使接口本身以及所連的外設進行重新啟動。 可編程:用軟件來決定其工作方式,用軟件來設置有關的控制信號。 錯誤檢測:一類是傳輸錯誤。另一類是覆蓋錯誤。注:一些接口還可根據具體情況設置其它的檢測信息。5.3 I/O5.3 I/O接口與系統的連接接口與系統的連接 (1) 數據信息數據信息 CPUCPU和外設交換的基本信息,和外設交換的基本信息,包括三種形式:數字量、模擬量 、開關量。(2) 狀態信息狀態

5、信息 是外設通過接口往是外設通過接口往CPUCPU傳送的傳送的, ,反映反映了當前外設的工作狀態。了當前外設的工作狀態。 如:“準備好”(READY)信號、“忙”(BUSY)信號(3) 控制信息控制信息 是是CPUCPU通過接口傳送給外設的相關通過接口傳送給外設的相關控制信息。控制信息。 如:外設的啟動信號、停止信號就是常見的控制信息。1 1CPUCPU與與I/OI/O設備之間的信號(三類)設備之間的信號(三類)5.3 I/O5.3 I/O接口與系統的連接(續)接口與系統的連接(續) 數據端口、控制端口、狀態端口CPU和外設進行數據傳輸時,各類信息在接口中進各類信息在接口中進入不同的寄存器入不

6、同的寄存器,一般稱這些寄存器為I/O端口,每個端口有一個端口地址端口地址。用于對來自CPU和內存的數據或者送往CPU和內存的數據起緩沖作用的,這些端口叫數據端口數據端口。用來存放外部設備或者接口部件本身的狀態,稱為狀態端口狀態端口。用來存放CPU發出的命令,以便控制接口和設備的動作,這類端口叫控制端口控制端口。如下圖2 2接口部件的接口部件的I/OI/O端口端口注:輸入還是輸出,所用到的地址總是對端口對端口而言的,不是對接口部件而言的。為了節省地址空間,將數據輸入端口和數據輸出端口對應同一個端口地址同一個端口地址。同樣,狀態端口和控制端口也常用同一個端口地址同一個端口地址。CPU對外設的輸入/

7、輸出操作就歸結為對接口芯片各端口的讀端口的讀/寫操作寫操作。 2 2接口部件的接口部件的I/OI/O端口端口( (續)續)第第5章:章: I/O接口的典型結構接口的典型結構控制總線控制總線CB地址總線地址總線ABI/O接口電路接口電路數據數據控制控制狀態狀態數據總線數據總線DBCPU外設外設控制寄存器控制寄存器狀態寄存器狀態寄存器數據寄存器數據寄存器1. 接口電路的內部結構接口電路的內部結構2. 接口電路的外部特性接口電路的外部特性3. 接口電路芯片的分類接口電路芯片的分類4. 接口電路的可編程性接口電路的可編程性 CPU與外設主要有數據、狀態和控制信息需要相互交換,于是從應用角度看內部: 數

8、據寄存器 輸入數據寄存器:保存外設給CPU的數據 輸出數據寄存器:保存CPU給外設的數據 狀態寄存器 保存外設或接口電路的狀態 控制寄存器 保存CPU給外設或接口電路的命令2 2接口部件的接口部件的I/OI/O端口端口( (續)續)3 3接口與系統的連接接口與系統的連接接口電路位于接口電路位于CPU與外設之間,從結構上看與外設之間,從結構上看,可以把一個接口分為兩個部分。,可以把一個接口分為兩個部分。用來和用來和I/OI/O設備相連;設備相連;用來和系統總線相連,這部分接口電路結用來和系統總線相連,這部分接口電路結構類似,連在同一總線上。構類似,連在同一總線上。下圖是一個典型的下圖是一個典型的

9、I/O接口和外部電路的連接接口和外部電路的連接圖:圖:3 3接口與系統的連接(續)接口與系統的連接(續)聯絡信號聯絡信號:讀讀/ /寫信寫信號,以便決定數據傳號,以便決定數據傳輸方向。輸方向。地址譯碼器,片選信地址譯碼器,片選信號號:地址譯碼器除了地址譯碼器除了接收地址信號外,還接收地址信號外,還用來區分用來區分I/0I/0地址空地址空間和內存地址空間的間和內存地址空間的信號信號(M/ I0)(M/ I0)用于譯用于譯碼過程。碼過程。 注:一個接口通常有若干個寄存器若干個寄存器可讀/寫,一般用1-21-2位低位地址位低位地址結合讀/寫信號來實現對接口內部寄存器的尋址。 4 4輸入輸出的尋址方式

10、輸入輸出的尋址方式接口電路占用的接口電路占用的I/O端口有兩類編排形式端口有兩類編排形式 I/O端口單獨編址端口單獨編址 I/O地址空間獨立于存儲地址空間地址空間獨立于存儲地址空間 如如8086/8088 I/O端口與存儲器統一編址端口與存儲器統一編址 它們共享一個地址空間它們共享一個地址空間如如M6800I/OI/O端口與存儲器統一編址端口與存儲器統一編址 優點: 不需要專門的I/O指令 I/O數據存取與存儲器數據存取一樣靈活 缺點: I/O端口要占去部分存儲器地址空間 程序不易閱讀(不易分清訪存和訪問外設)內存內存部分部分I/O部分部分存儲器空間存儲器空間00000FFFFF 優點: I/

11、O端口的地址空間獨立 控制和地址譯碼電路相對簡單 專門的I/O指令使程序清晰易讀 缺點: I/O指令沒有存儲器指令豐富內存內存空間空間I/O空間空間FFFFF0FFFF80 x86采用采用I/O端口獨立編址端口獨立編址I/OI/O端口單獨編址端口單獨編址8088/80868088/8086的輸入輸出指令的輸入輸出指令 輸入指令(IN:將外設數據傳送給CPU內的AL/AX)IN AL,i8;字節輸入IN AL,DX;字節輸入IN AX,i8;字輸入IN AX,DX;字輸入 輸出指令(OUT:將CPU內的AL/AX數據傳送給外設)OUT i8,AL;字節輸出OUT DX,AL;字節輸出OUT i8

12、,AX;字輸出OUT DX,AX;字輸出演示演示演示演示8088/80868088/8086的的I/OI/O端口端口 8088只能通過輸入輸出指令與外設進行數據交換;呈現給程序員的外設是端口(Port),即I/O地址 8086用于尋址外設端口的地址線為16條,端口最多為21665536(64K)個,端口號為0000H FFFFH 每個端口用于傳送一個字節的外設數據I/OI/O尋址方式尋址方式 8088/8086的端口有64K個,無需分段,設計有兩種尋址方式v直接尋址:只用于尋址00H FFH前256個端口,操作數i8表示端口號v間接尋址:可用于尋址全部64K個端口,DX寄存器的值就是端口號 對

13、大于FFH的端口只能采用間接尋址方式數據交換方式數據交換方式 如果輸入輸出一個字節,利用AL寄存器 如果輸入輸出一個字,利用AX寄存器 輸入一個字,實際上是從連續兩個端口輸入兩個字節,分別送AL(對應低地址端口)和AH(對應高地址端口) 輸出一個字,實際上是將AL(對應低地址端口)和AH(對應高地址端口)兩個字節的內容輸出給連續兩個端口IN指令實例(指令實例(從從20H端口輸入一個字)端口輸入一個字);方法1:直接尋址,字量輸入in ax,20h;方法2:間接尋址,字量輸入mov dx,20hin ax,dx;方法;方法3:直接尋址,字節量輸入直接尋址,字節量輸入in al,21hin al,

14、21hmov ah,almov ah,alin al,20hin al,20h;方法;方法4:間:間接尋址,字節量輸入接尋址,字節量輸入mov dx,21hmov dx,21hin al,dxin al,dxmov ah,almov ah,aldec dxdec dxin al,dxin al,dx第第5章:章:OUT指令實例(向指令實例(向300H端口輸出一個字節)端口輸出一個字節);唯一的方法:間接尋址,字節量輸出mov al,bvar;bvar是字節變量mov dx,300hout dx,al5.4 CPU5.4 CPU和外設之間的數據傳送方式和外設之間的數據傳送方式 程序控制下的數據傳

15、送通過CPU執行程序中的I/O指令來完成傳送,又分為:無條件傳送、查詢傳送、中斷傳送 直接存儲器存取(DMA)傳送請求由外設向DMA控制器(DMAC)提出,后者向CPU申請總線,最后DMAC利用系統總線來完成外設和存儲器間的數據傳送 I/O處理機CPU委托專門的I/O處理機來管理外設,完成傳送和相應的數據處理1. 無條件傳送方式及其接口無條件傳送方式及其接口 在CPU與慢速變化的設備交換數據時,可以認為它們總是處于“就緒”狀態,隨時可以進行數據傳送,這就是無條件傳送,或稱立即傳送、同步傳送 適合于簡單設備,如LED數碼管、按鍵或按紐等 無條件傳送的接口和操作均十分簡單 這種傳送有前提:外設必須

16、隨時就緒流程流程無條件傳送:輸入示例無條件傳送:輸入示例IOR三態緩沖器OEI/O裝置地址譯碼器CSD7D0A15A1A00160HMOV DX, 160HIN AL, DX無條件傳送:輸入實例無條件傳送:輸入實例MOV DX, 160HIN AL, DX74LS244+5V10K x 8G1 G2數據總線數據總線CSRD無條件傳送:輸出示例無條件傳送:輸出示例地址譯碼器數據鎖存器A15A1IOWA0CS0160H輸出設備D7D0MOV DX, 160HMOV AL, BXOUT DX, AL無條件傳送:輸出實例無條件傳送:輸出實例MOV DX, 160HMOV AL, BXOUT DX, A

17、L+5V74LS373300 x 8LE OE數據總線數據總線CSWR無條件傳送:輸入輸出接口無條件傳送:輸入輸出接口K7K1K0+5VD0D7A0A15CLKLS06反相反相驅動器驅動器LS2738D鎖存器鎖存器LS244三態三態緩沖器緩沖器8000H譯碼譯碼+5VLED0LED7GIOWIORnext:mov dx,8000h;DX指向數據端口in al,dx;從輸入端口讀開關狀態not al;反相out dx,al;送輸出端口顯示call delay;調子程序延時jmp next;重復又稱查詢方式,即又稱查詢方式,即通過程序查詢相應設備的狀態通過程序查詢相應設備的狀態,若狀態不符合,則,

18、若狀態不符合,則CPUCPU不能進行輸入不能進行輸入/ /輸出操作輸出操作,需要等待;只有當狀態信號符合要求時,需要等待;只有當狀態信號符合要求時,CPUCPU才才能進行相應的輸入能進行相應的輸入/ /輸出操作輸出操作。2. 條件傳送方式條件傳送方式一般外設均可以提供一些反映其狀態的信號,如對輸一般外設均可以提供一些反映其狀態的信號,如對輸入設備來說,它能夠提供入設備來說,它能夠提供“準備好準備好”(“READY”)信號,信號,“READY” 1 表示輸入數據已準備好。輸出表示輸入數據已準備好。輸出設備則提供設備則提供“忙忙”(“BUSY”)信號,信號,“BUSY”1表示表示當前時刻不能接收當

19、前時刻不能接收CPU來的數據,只有當來的數據,只有當“BUSY”0時,才表明它可以接受來自于時,才表明它可以接受來自于CPU的輸出數據。的輸出數據。 2. 條件傳送方式(續)條件傳送方式(續) CPU需要先了解(查詢)外設的工作狀態,然后在外設可以交換信息的情況下(就緒)實現數據輸入或輸出 對多個外設的情況,則CPU按一定順序依次查詢(輪詢)。先查詢的外設將優先進行數據交換 查詢傳送的特點是:工作可靠,適用面寬,但傳送效率低就緒就緒?條件傳送的兩個環節條件傳送的兩個環節 查詢環節 尋址狀態口 讀取狀態寄存器的標志位 若不就緒就繼續查詢,直至就緒 傳送環節 尋址數據口 是輸入,通過輸入指令從數據

20、端口讀入數據 是輸出,通過輸出指令向數據端口輸出數據輸入狀態輸入狀態就緒?就緒?數據交換數據交換YN流程流程查詢輸入接口查詢輸入接口IOR+5V8D鎖存器鎖存器8位位三態三態緩沖器緩沖器譯碼譯碼1位位三態三態緩沖器緩沖器RQ A0A158000H8001HD0D7D0D輸入輸入設備設備IORSTBmov dx,8000h;DX指向狀態端口status:in al,dx;讀狀態端口test al,01h;測試標志位D0jz status;D00,未就緒,繼續查詢inc dx;D01,就緒,DX指向數據端口in al,dx;從數據端口輸入數據查詢輸出接口查詢輸出接口8D鎖存器鎖存器譯碼譯碼1位位三

21、態三態緩沖器緩沖器RQ A0A158000H8001HD0D7D7D+5V輸出輸出設備設備ACKIOWIORmov dx,8000h;DX指向狀態端口status:in al,dx;讀取狀態端口的狀態數據test al,80h;測試標志位D7jnz status;D71,未就緒,繼續查詢inc dx;D70,就緒,DX指向數據端口mov al,buf;變量buf送ALout dx,al;將數據輸出給數據端口條件傳送舉例條件傳送舉例例例1. 1. 假定接口的數據輸入端口地址為假定接口的數據輸入端口地址為0052H0052H,數據,數據輸出端口地址為輸出端口地址為0054H0054H,狀態端口地址

22、為,狀態端口地址為0056H0056H,并,并且設定如果狀態寄存器中第且設定如果狀態寄存器中第1 1位為位為1 1,則表示輸入緩,則表示輸入緩沖器中已經有沖器中已經有1 1個字節準備好,可以進行輸入。此外個字節準備好,可以進行輸入。此外,還設定如果狀態寄存器的第,還設定如果狀態寄存器的第0 0位為位為1 1,則表示輸出,則表示輸出緩沖器已經騰空,因而緩沖器已經騰空,因而CPUCPU可以往終端輸出數據。可以往終端輸出數據。程序:DATA_SEG SEGMENTMESSAGE DB BUFFER OVERFLOW,0DH,0AH DATA_SEG ENDSCOM_SEG SEGMENTBUFFER

23、 DB 82 DUP(?)COUNT DB ?COM_SEG ENDS CODE SEGMENTASSEME DS:DATA_SEG, ES:COM_SEG, CS:CODESTAT: MOV AX,DATA_SEG MOV DS,AX MOV AX, COM_SEG程序(續): MOV ES,AX MOV DI, OFFEST BUFFER MOV COUNT, DI MOV CX, 81 CLDNEXT_IN: IN AL, 56H TEST AL, 02H JZ NEXT_IN IN AL, 52H OR AL, 0 JPE NO_ERROR JMP ERRORNO_ERROR: AND

24、 AL, 7FH STOSB程序(續): CMP AL, 0DH LOOPNE NEXT_IN JNE OVERFLOW MOV AL, 0AH STOSB SUB DI, COUNT MOV COUNT, DI :OVERFLOW: MOV SI, OFFEST MESSAGE MOV CX, 17NEXT_OUT: IN AL, 56H TEST AL, 01H JZ NEXT_OUT LODSB OUT 54H, AL LOOP NEXT_OUT :例例2 假設從某輸入設備上輸入一組數據送緩沖區,假設從某輸入設備上輸入一組數據送緩沖區,接口電路如圖接口電路如圖5-3,若緩沖區已滿則輸出一

25、組信息,若緩沖區已滿則輸出一組信息“BOFFER OVERFLOW”,然后結束。設該設備的,然后結束。設該設備的啟動地址為啟動地址為0FCH,數據端口為,數據端口為0F8H,狀態端口為,狀態端口為FAH。程序如下:程序如下:DATA SEGMENTMESS1 DB “BUFFER OVERFLOW”,“$”BUFF DB 60 DUP(?)DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART: MOV AX,DATA MOV DS,AX MOV BX,OFFSET BUFF;送緩沖區指針;送緩沖區指針 MOV CX,60;送計數初值;送計數初值 OU

26、T 0FCH,AL;啟動設備;啟動設備 WAIT: IN AL,OFAH;查詢狀態,若為;查詢狀態,若為0,則等待,則等待 TEST AL,01H JZ WAIT IN AL,0F8H;輸入數據;輸入數據 MOV BX,AL INC BX LOOP WAIT ;檢測緩沖區是否滿,不滿再輸入;檢測緩沖區是否滿,不滿再輸入 MOV DX,OFFSET MESS1;緩沖區滿,輸出標志字符串;緩沖區滿,輸出標志字符串 MOV AH,09H INT 21H MOV AH,4CH INT21H CODE ENDSEND START 中斷傳送方式中斷傳送方式1.為什么要采用中斷傳送方式 從查詢式的傳輸過程可

27、以看出,它的優點是硬件開銷小,使用起來比較簡單。但在此方式下,CPU要不斷地查詢外設的狀態,當外設未準備好時,CPU就只能循環等待,不能執行其它程序,這樣就浪費了CPU的大量時間,降低了主機的利用率。 1.1.為什么要采用中斷傳送方式為什么要采用中斷傳送方式(續)續) 為了解決這個矛盾,我們提出了中斷傳送方式:即當CPU進行主程序操作時,外設的數據已存入輸入端口的數據寄存器;或端口的數據輸出寄存器已空,由外設通過接口電路向CPU發出中斷請求信號,CPU在滿足一定的條件下,暫停執行當前正在執行的主程序,轉入執行相應能夠進行輸入/輸出操作的子程序,待輸入/輸出操作執行完畢之后CPU即返回繼續執行原

28、來被中斷的主程序。這樣CPU就避免了把大量時間耗費在等待、查詢狀態信號的操作上,使其工作效率得以大大地提高。第第5章:章:5.4.2 中斷傳送方式中斷傳送方式斷點斷點主程序主程序中斷服務程序中斷服務程序中斷請求中斷請求對外設對外設進行處理進行處理繼續執行繼續執行返回斷點返回斷點 CPU在執行程序中,被內部或外部的事件所打斷,轉去執行一段預先安排好的中斷服務程序;服務結束后,又返回原來的斷點,繼續執行原來的程序流程流程中斷傳送與接口中斷傳送與接口 中斷傳送是一種效率更高的程序傳送方式 進行傳送的中斷服務程序是預先設計好的 中斷請求是外設隨機向CPU提出的 CPU對請求的檢測是有規律的:一般是在每

29、條指令的最后一個時鐘周期采樣中斷請求輸入引腳 本書主要論述中斷在輸入和輸出方面的應用 中斷還有著非常廣泛的應用中斷輸入接口電路中斷輸入接口電路數據輸入的過程數據輸入的過程:當外設發STB數據入鎖存器,中斷請求觸發器置1若沒有屏蔽則產生INTRCPU滿足條件(允許中斷;指令執行完)發INTA(進入中斷服務子程序)讀數據,發RD,和地址清中斷請求觸發器,數據送D0D7。(輸出過程請自己思考)4. 中斷優先級中斷優先級問題的提出:問題的提出: 當系統中有多個設備提出中斷請求時,就有一個該響應誰的問題,也就是一個優先級的問題,解決優先級的問題一般可有三種方法:軟件查詢法、簡單硬件方法及專用硬件方法。下

30、面分別介紹: 軟件查詢法軟件查詢法只需有簡單的硬件電路,如將只需有簡單的硬件電路,如將A A、B B、C C三臺設備的中斷請求三臺設備的中斷請求信號信號“或或”后作為系統后作為系統INTRINTR,這時,這時,A A、B B、C C三臺設備中只三臺設備中只要至少有一臺設備提出中斷請要至少有一臺設備提出中斷請求,都可以向求,都可以向CPUCPU發中斷請求發中斷請求。進入中斷服務子程序后,再。進入中斷服務子程序后,再用軟件查詢的方式分別對不同用軟件查詢的方式分別對不同的設備的服務,查詢程序的設的設備的服務,查詢程序的設計思想同查詢式,查詢的前后計思想同查詢式,查詢的前后順序就給出了設備的優先級,順

31、序就給出了設備的優先級,框圖如圖所示。框圖如圖所示。 以鏈式中斷優先權排隊電路為以鏈式中斷優先權排隊電路為例,例,基本設計思想基本設計思想:將所有的設備:將所有的設備連成一條鏈,靠近連成一條鏈,靠近CPUCPU的設備優的設備優先級最高,越遠的設備優先級別先級最高,越遠的設備優先級別越低,則發出中斷響應信號,若越低,則發出中斷響應信號,若級別高的設備發出了中斷請求,級別高的設備發出了中斷請求,在它接到中斷響應信號的同時,在它接到中斷響應信號的同時,封鎖其后的較低級設備使得它們封鎖其后的較低級設備使得它們的中斷請求不能響應,只有等它的中斷請求不能響應,只有等它的中斷服務結束以后才開放,允的中斷服務

32、結束以后才開放,允許為低級的設備服務。許為低級的設備服務。如圖所示。如圖所示。 簡單硬件方法簡單硬件方法 有了中斷控制器以后,有了中斷控制器以后,CPUCPU的的INTRINTR和引腳不再與接口直接相連和引腳不再與接口直接相連,而是與中斷控制器相連,外設的中斷請求信號通過,而是與中斷控制器相連,外設的中斷請求信號通過IR0IR0IR7IR7進進入中斷控制器,經優先級管理邏輯確認為級別最高的那個請求的入中斷控制器,經優先級管理邏輯確認為級別最高的那個請求的類型號會經過中斷類型寄存器在當前中斷服務寄存器的某位上置類型號會經過中斷類型寄存器在當前中斷服務寄存器的某位上置1 1,并向,并向CPUCPU

33、發發INTRINTR請求,請求,CPUCPU發出發出INTAINTA信號后,中斷控制器將中信號后,中斷控制器將中斷類型碼送出。在整個過程中,優先級較低的中斷請求都受到阻斷類型碼送出。在整個過程中,優先級較低的中斷請求都受到阻塞,直到較高級的中斷服務完畢之后,當前服務寄存器的對應位塞,直到較高級的中斷服務完畢之后,當前服務寄存器的對應位清清0 0,較低級的中斷請求才有可能被響應。如圖所示。,較低級的中斷請求才有可能被響應。如圖所示。 專用硬件方式專用硬件方式采用可編程的中斷控制器采用可編程的中斷控制器芯片,如芯片,如Intel8259AIntel8259A。DMA傳送方式傳送方式 希望克服程序控

34、制傳送的不足:外設CPU存儲器外設CPU存儲器 直接存儲器存取DMA:外設存儲器外設存儲器 CPU釋放總線,由DMA控制器管理1. DMA傳送方式的提出傳送方式的提出 利用中斷進行信息傳送,可以大大提高CPU的利用率,但是其傳送過程必須由CPU進行監控。每次中斷,CPU都必須進行斷點及現場信息的保護和恢復操作,這些都是一些額外的操作,會占用一定的CPU時間。如果需要在內存的不同區域之間,或者在內存與外設端口之間進行大量信息快速傳送的話,用查詢或中斷方式均不能滿足速度上的要求,這時應采用直接數據通道傳送,即DMA數據傳送方式。DMA(Direct Memory Access)意為直接數據傳送,它

35、是在內存的不同區域之間,或者在內存與外設端口之間直接進行數據傳送,而不經過CPU中轉的一種數據傳送方式,可以大大提高信息的傳送速度。DMA傳送方式的提出(續)傳送方式的提出(續)DMA傳送的工作過程傳送的工作過程外設準備就緒時,向DMA控制器發DMA請求,DMA控制器接到此信號后,向CPU發DMA請求;CPU接到HOLD請求后,如果條件允許(一個總線操作結束),則發出HLDA信號作為響應,同時,放棄對總線的控制;DMA控制器取得總線控制權后,往地址總線發送地址信號,每傳送1個字節,就會自動修改地址寄存器的內容,以指向下一個要傳送的字節;每傳送一個字節,字節計數器的值減1,當減到0時,DMA過程

36、結束;DMA控制器向CPU發結束信號,將總線控制權交回CPU。 DMADMA傳送控制方式,解決了在內存的不同傳送控制方式,解決了在內存的不同區域之間,或者內存與外設之間大量數區域之間,或者內存與外設之間大量數據的快速傳送問題,代價是需要增加專據的快速傳送問題,代價是需要增加專門的硬件控制電路,稱為門的硬件控制電路,稱為DMADMA控制器,其控制器,其復雜程度與復雜程度與CPUCPU相當。相當。 DMA傳送過程(續)傳送過程(續)DMA傳送流程傳送流程HLDA發存儲器地址發存儲器地址傳送數據傳送數據傳送結束?傳送結束?DMA結束結束修改地址指針修改地址指針流程流程傳送方式的比較傳送方式的比較 無條

溫馨提示

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

評論

0/150

提交評論