正在學習接口技術和計算機組成原理,中間有一些重疊的部分就放在一塊兒了,至於DMA,中斷之類的會放在後面講解緩存
6.1 接口綜述異步
硬件接口一般稱爲I/O接口,把外圍設備同微型計算機鏈接起來的電路稱爲外設接口電路,簡稱外設接口。I/O接口是CPU同外界進行信息交換的中轉站學習
使用接口的緣由設計
CPU與外設之間所傳送的數據類型3d
在8086/8088中,這三種信息的輸入輸出基本一致,能夠分發不一樣的端口地址,在端口地址相同的狀況下,能夠規定操做的順序,或者在輸入輸出的數據中設置特徵位指針
接口的功能(背)blog
端口及編址方式接口
端口是指接口電路中能被微處理器直接訪問的寄存器的地址內存
微處理器經過這些地址(端口)向接口電路中的寄存器發送命令、讀取狀態、和傳送數據。同步
計算機給接口電路中的每個寄存器都分配一個端口,CPU在訪問的時候,只須要指明他們的端口地址,不須要知道是訪問什麼寄存器。這樣,在輸入輸出程序中訪問端口就是訪問接口電路的寄存器,一般所說的IO操做就是對IO端口的操做,即CPU所訪問的是與IO設備相關的端口,而不是IO設備自己
輸入輸出的方式
輸入/輸出接口分類:
一、按數據傳送方式分:串行、並行
二、按CPU訪問外設的控制方式:
程序查詢、中斷、DMA、通道控制、I/O處理機
三、按是否須要統一的控制時鐘:同步、異步
四、按通用性:通用、專用
IO端口的編址方式
寄存器映像編址和獨立編址
寄存器編址就是把IO端口地址置於存儲器空間,和存儲單元統一編制
優勢:存儲器的各類尋址方式均可以用來尋址端口(能夠用一個指令系統),缺點:佔用存儲器地址,並且端口地址必須和存儲器長度同樣,運行速度慢
獨立編址:把接口的端口地址單獨編址,在計算機中造成兩個獨立的編址空間。優勢:不佔用存儲器空間,有專門的IO指令,IO指令,運行的快,並且IO操做和存儲器操做分開,程序可讀性好,缺點就是要從新設計一個新的指令系統
IO端口地址譯碼
三種譯碼電路——固定端口地址譯碼,固定多端口譯碼電路和可選式地址譯碼電路
固定式單端口地址譯碼電路是指該譯碼電路只能產生一個不可更改的端口地址
見課本240頁及筆記
固定式多端口地址譯碼電路能同時譯出多個地址,但每一個地址是固定不變的
如74LS138(38譯碼器),74LS154(4-16譯碼器),74LS139(2-4譯碼器)
74138的符號圖以下
A0-A2是輸入端,Y0-Y7是輸出端,E2a和E2b低電平有效,E1高電平有效,這三個是使能端,E2A和E2B都是低電平有效,E1是高電平有效
若是用戶要求接口電路的端口地址能適應不一樣的地址分配場合,或者系統之後擴展留下空間
介紹一種由比較器組成的可選式譯碼電路
首先要知道這個如何工做,就得先知道比較器和三八譯碼器如何工做
三八譯碼器的工做原理在上面,不贅述了
下面來說講74LS85比較器
這玩意有八個端子,A0-A3,B0-B3,咱們觀察到,A=B是連在了VCC上,因此這個玩意的功能是要求A和B要想等
那這個東西的比較法則如何呢
真值表以下
首先比較高位,高位不相等直接輸出
而後逐位開始比較,到最後都相等的時候,輸出A=B端口爲1
若是A=B,則輸出和輸入是相等的
若是A<B, 則輸出中A<B is high with A=B and A>B is low
反之亦然
因此該比較器可選譯碼電路就是以下原理
A8-A11鏈接了74LS85芯片的A0-A3,如今當S0-S3的開關都打開,則B0-B3爲1111,則A0-A3爲1111,則A8-A11爲1111
A6,A7爲38譯碼器的使能端,爲00
A3-A5爲選擇端口,若是選擇Y2,則A5-A3爲010
A0-A2爲任意
IO指令
指令格式 IN AL,32H ;32H爲8爲端口地址
間接端口尋址由DX寄存器指出端口地址
指令格式爲 IN AL,DX
記住,間接端口尋址的範圍是0-65535,必需要經過DX來間接尋址
2 IO操做指令
格式: IN 累加器,端口
例如:IN AL ,21H ;把端口21H的8位數據放入AL中
MOV DX,210H
IN AX ,DX;把端口210H和202H放入AX中
格式 OUT 端口,累加器
OUT 22H,AL;把AL的內容放入22H中
MOV DX,511H
OUT DX,AX
CPU與外設數據的傳輸控制方式
有三種形式:程序查詢,中斷,DMA,(大型機巨型機的通道)
程序控制方式是指輸入輸出指令實現信息傳輸的方式,是一種軟件控制方式,根據程序控制的方法不一樣,能夠分爲無條件傳輸方式和有條件傳輸方式
無條件傳輸
這個無條件選擇就是當RD爲低電平(非門轉化爲1),IO/M(上劃線)爲高電平的時候,與門爲1,通過兩個非門後爲1,到三態緩衝器,三態緩衝器打開,數據經數據總線送到CPU中
輸出相似
在這種方式下,CPU不須要知道外設的工做狀態,只需每隔一段時間,CPU與外設進行數據交換,進行數據的發送和接受
有條件程序查詢式
條件傳送方式又稱查詢方式,即經過程序查詢相應設備的狀態,若是該設備未處於「準備好的狀態」則CPU不能進行輸入輸出操做
邏輯圖以下:
具體電路圖以下:
當輸入設備準備好數據以後,發出選通訊號。它一方面把輸入數據鎖存到數據鎖存器中,另外一方面使狀態標誌觸發器置1。狀態標誌是一位信號,經過緩衝器後,接到CPU數據總線的某一位上,假設接至D7位。CPU先讀狀態口,查詢D7是否爲1。若D7=1,表示輸入數據已經準備好,再讀數據口,取走輸入數據,同時使狀態標誌觸發器復位。
數據傳送過程的3個步驟:
①CPU先讀取狀態字
②檢查狀態字是否代表數據準備就緒
③若是準備就緒,則執行輸入指令讀取數據,且使狀態位清零。這樣便開始下一個數據傳輸過程。
/*****自我總結
輸入的工做原理以下:
當外設準備好的時候,會發送選通訊號,一方面數據進入鎖存器,另外一方面觸發器D,使READY信號發送。當CPU來讀的時候,IO/M選通,RD爲0,地址譯碼,與門輸出爲1,通過兩個非門爲1,三態緩存器選通,READY信號經過數據總線送到CPU,而後開始開始讀鎖存器內的數據,同時狀態位清零
******/
輸出的電路圖以下
輸出過程:
當前輸出設備空閒時,狀態標誌觸發器清0。
CPU在輸出數據以前,先讀取狀態信息。假設忙閒標誌接至數據線D0位,當D0=0時,表示輸出設備空閒,CPU再對數據口執行輸出指令。
數據口選中信號一方面把輸出數據寫入鎖存器,一方面使狀態標誌觸發器置1,通知輸出設備。當輸出設備取走當前數據後,向接口發出確認信號ACK,使狀態標誌觸發器清0, 表示輸出設備空閒。
/******自我總結
工做原理:CPU經過地址總線,通過地址譯碼器,輸出數據端口,IO/M爲0,WD爲1,發送選通訊號,數據進入接口鎖存器和觸發器D爲1,這個D有兩個做用,一個告訴外設能夠讀取數據了,另外一個讓狀態寄存器爲BUSY,防止CPU繼續寫數據。
當外設把數據都讀完後,回送一個ACK,讓觸發器復位,D爲0,清空狀態寄存器。
*******/
總結:得多看看,每次傳送數據的時候都會有一個狀態信息,而後讀完數據都會復位
優勢:軟件比較簡單
缺點:CPU效率低,數據傳送的實時性差,速度較慢
中斷
中斷控制的輸入和輸出方式,也稱中斷傳送方式,即當外設的輸入數據準備好或接收數據的鎖存器爲空時,主動向CPU發出中斷請求,使CPU中斷原來執行的程序(主程序),轉去執行爲外設服務的輸入或輸出操做,服務完畢,CPU再繼續執行原來的程序。
中斷傳送方式中, CPU和外設(甚至多個外設)可同時工做, 從而大大提升了CPU的效率和控制程序執行的實時性。必須通過 (1)暫停主程序,實現程序的轉移,即中斷響應。(2)保護和恢復有關寄存器內容。(3)執行I/O操做,並實現內存到累加器再到端口之間的傳送。(4)實現中斷返回。
輸入設備將數據送到鎖存器中,同時發送選通訊號,選通訊號一方面讓數據進入三態緩衝期,另外一方面令D爲1,通過與門讓INTR爲1,發送中斷請求。當CPU收到中斷請求以後,會經過地址譯碼器和讀寫信號,通過與非門。與非門發送的信號一方面打開三態緩衝期,讓數據進入數據總線,另外一方面復位觸發器,D爲0.中斷完成。
DMA
數據在I/O接口與存儲器之間的傳送,不經CPU的干預,而是在專用硬件電路的控制下直接傳送。這種方法稱爲DMA 。在這種方式下,傳送的速度就只取決於存儲器和外設的工做速度。這大大提升了數據傳送速度。
DMA傳送主要應用於高速度大批量數據傳送的系統中,如磁盤存取、圖像處理、高速數據採集系統等,以提升數據的吞吐量。
DMA傳送通常有三種形式
①存儲器與I/O設備之間的數據傳送;
②存儲器與存儲器之間的數據傳送;
③I/O設備與I/O設備之間的傳送。
DMA控制器必須有如下功能:
①能接收外設發出的DMA 請求信號,而後向CPU 發出總線接管請求信號。
②當CPU發出總線請求容許信號並放棄對總線的控制後,DMAC能接替對總線的控制,進入DMA方式。
③DMAC獲得總線控制權後,要往地址總線發送地址信號,能修改地址指針,並能發出讀/寫控制信號。
④能決定本次DMA傳送的字節數,判斷DMA傳送是否結束。
⑤DMA過程結束時,能發出DMA 結束信號,將總線控制權交還給CPU
計原中一些概念
輸入輸出系統:主要做用是連通計算機的各個功能部件和設備,在它們之間進行數據交換。
輸入輸出系統的基本功能:是管理主機和外設以及外設與外設之間的信息交換,由硬件和軟件共同完成此項任務,基本原則是:不丟失數據,快速傳輸數據,成本低廉,主機和外設、外設和外設之間儘量並行工做已充分發揮各自的潛力
輸入輸出設備的重要任務
計算機總線:計算機各部件之間的公共通道(包括數據總線,控制總線和地址總線)
主機與外設的接口信息
數據傳送的方式:異步和同步
CPU訪問的方式:程序查詢式,中斷式,DMA式,通道式