I/O 系統基本概念程序員
I/O 系統中的幾個基本概念以下:編程
通常來講,I/O 系統由 I/O 軟件和 I/O 硬件兩部分構成:緩存
在輸入/輸出系統中,常常須要進行大量的數據傳輸,而傳輸過程當中有各類不一樣的 I/O 控制方式,基本的控制方式有如下 4 種:安全
其中,方式 1 和方式 2 主要用於數據傳輸率較低的外部設備,方式 3 和方式 4 主要用於數據傳輸率較高的設備。性能
I/O 設備不可能直接與主板總線相連,它老是經過設備控制器來相連的。spa
I/O 指令是指令系統的一部分,時及其指令的一類,但其爲了反映與 I/O 設備交互的特色,格式和其餘通用指令相比有所不一樣。blog
通道程序存放在主存而非通道中,由通道從主存中取出並執行。通道程序由通道執行,且只能在具備通道的 I/O 系統中執行。接口
顯示器的主要參數:進程
分辨率:所能表示的像素個數,屏幕上的每一個光點就是一個像素,以寬和高的像素數的乘積表示,如 800 * 600、1280 * 1024等。事件
灰度級:灰度級是指黑白顯示器中所顯示的像素點的亮暗差異,在彩色顯示器中則表現爲顏色的不一樣,灰度級越多,圖像層次越清楚,典型的有 8 位(256級)、16 位等。
刷新:光點只能保持極短的時間便會消失,爲此必須在廣電消失以前再從新掃描顯示一遍,這個過程稱爲刷新。
刷新頻率:指單位時間內掃描整個屏幕內容的次數。按照人的視覺生理,刷新頻率大於 30 Hz 時纔不會感到閃爍,一般顯示器的刷新頻率爲 60~120 Hz。
顯示存儲器(VRAM):也稱刷新存儲器,爲了避免斷提升刷新圖像的信號,必須把一幀圖像信息存儲在刷新存儲器中。其存儲容量由圖像分辨率和灰度級決定,分辨率越高,灰度級越多。刷新存儲器容量越大。VRAM 容量 = 分辨率 * 灰度級位數,VRAM 帶寬 = 分辨率 * 灰度級位數 * 幀頻。
RAID(廉價冗餘磁盤陣列)是指將多個獨立的物理磁盤組成一個獨立的邏輯盤,數據在多個物理盤上分割交叉存儲、並行訪問,具備更好的存儲性能、可靠性和安全性。RAID 經過同時使用多個磁盤,提升了傳輸率;經過在多個磁盤上並行存取來大幅提升存儲系統的數據吞吐量;經過鏡像功能,提升安全可靠性;經過數據校驗,提供容錯能力。
在字符顯示器的 VRAM 中存放 ASCII 碼以顯示字符。
刷新存儲器中存儲單元的字長取決於顯示的顏色數,顏色數爲 m,字長爲 n,兩者的關係爲 2n = m。
I/O 接口
I/O 接口(I/O 控制器)是主機和外設之間的交接界面,經過接口能夠實現主機和外設之間的信息交換。主機和外設具備各自的工做特色,它們在信息形式和工做速度上具備很大的差別,接口正是爲了解決這些差別而設置的。
I/O 接口的主要功能以下:
CPU 與外設之間的信息傳送,實質上是對接口中的某些寄存器(即端口)進行讀或寫,如傳送數據是對數據端口 DBR 進行讀寫操做。
內部接口:內部接口與系統總線相連,實質上是與內存、CPU 相連。數據的傳輸方式只能是並行傳輸。
外部接口:外部接口經過接口電纜與外設相連,外部接口的數據傳輸多是串行方式,所以 I/O 接口需具備串/並轉換功能。
接口和端口是兩個不一樣的概念。端口是指接口電路中能夠進行讀/寫的寄存器,若干端口加上相應的控制邏輯才能夠組成接口。
從不一樣的角度看,I/O 接口能夠分爲不一樣的類型。
I/O 端口是指接口電路中可被 CPU 直接訪問的寄存器,主要有數據端口、狀態端口和控制端口,若干端口加上相應的控制邏輯電路組成接口。一般,CPU 能對數據端口執行讀寫操做,但對狀態端口只能執行讀操做,對控制端口只能執行寫操做。
I/O 端口要想可以被 CPU 訪問,必需要有端口地址,每一個端口對應一個端口地址。而對 I/O 端口的編址方式有與存儲器統一編址和獨立編址兩種。
在統一編址的方式下,區分存儲單元和 I/O 設備是靠不一樣的地址線。
I/O 的編址方式採用統一編址方式時,進行輸入/輸出的操做的指令是訪存指令。統一編址時,直接使用指令系統中的訪存指令來完成輸入/輸出操做;獨立編址時,則須要使用專門的輸入/輸出指令來完成輸入/輸出操做。
程序員進行系統調用訪問設備使用的是邏輯地址。
I/O 方式
經常使用的 I/O 方式有程序查詢、程序中斷、DMA 和通道等,其中前兩種方式更依賴於 CPU 中程序指令的執行。
外中斷是指來自處理器和內存之外的部件引發的中斷,包括 I/O 設備發出的 I/O 中斷、外部信號中斷(如用戶按 Esc 鍵),以及各類定時器引發的時鐘中斷等。外中斷在狹義上通常稱爲中斷。
內中斷主要是指在處理器和內存內部產生的中斷,包括程序運算引發的各類錯誤,如地址非法、校驗錯、頁面失效、存取訪問控制錯、算術溢出操做、數據格式非法、除數爲 0、非法指令、用戶程序執行特權指令、分時系統中的時間片中斷及用戶態到核心態的切換等。
硬件中斷:經過外部的硬件產生的中斷。硬件中斷屬於外中斷。
軟件中斷:經過某條指令產生的中斷,這種中斷是能夠編程實現的。軟件中斷是內中斷。
非屏蔽中斷:非屏蔽中斷是一種硬件中斷,此種中斷經過不可屏蔽中斷請求 NMI 控制,不受中斷標誌位 IF 的影響,即便在關中斷(IF = 0)的狀況下也會被響應。
可屏蔽中斷:可屏蔽中斷也是一種硬件中斷,此種中斷經過中斷請求標記觸發器 INTR 控制,且受中斷標誌位影響,在關中斷狀況下不接受中斷請求。
中斷判優既能夠用硬件實現,又可用軟件實現。硬件實現是經過硬件排隊器實現的,它既能夠設置在 CPU 中,又能夠分散在各個中斷源中,軟件實現是經過查詢程序實現的。通常來講,硬件故障中斷屬於最高級,其次是軟件中斷,非屏蔽中斷優於可屏蔽中斷,DMA 請求優於 I/O 設備傳送的中斷請求,高速設備優於低速設備,輸入設備優於輸出設備,實時設備優於普通設備等。
CPU 響應中斷後,通過某些操做,轉去執行中斷服務程序。這些操做是由硬件直接實現的,咱們將它稱爲中斷隱指令。中斷隱指令並非系統中的一體真正的指令,它沒有操做碼,因此中斷隱指令是一種不容許也不可能爲用戶使用的特殊指令。它所完成的操做以下:
不一樣的設備有不一樣的中斷服務程序,每一箇中斷服務程序都有一個入口地址,CPU 必須找到這個入口地址,即中斷向量。
中斷處理過程:(1)關中斷(2)保存斷點(3)引出中斷服務程序(以上三步由硬件完成)(4)保存現場和屏蔽字(5)開中斷(6)執行中斷服務程序(7)關中斷(8)恢復現場和屏蔽字(9)開中斷、中斷返回(以上六步由中斷程序完成)
在 DMA 方式中,中斷的做用僅限於故障和正常傳送結束時的處理。
主存和 DMA 接口之間有一條直接數據通路。因爲 DMA 方式傳送數據不須要通過 CPU,所以沒必要中斷現行程序,I/O 與主機並行工做,程序和傳送並行工做。
DMA 方式具備如下特色:
當 I/O 設備須要進行數據傳輸時,經過 DMA 控制器向 CPU 提出 DMA 傳送請求,CPU 響應後將讓出系統總線,由 DMA 控制器接管總線進行數據傳送。其主要給功能以下:
主存和 DMA 控制器之間有一條數據通路,所以主存和 I/O 設備之間交換信息時,不經過 CPU。但當 I/O 設備和 CPU 同時訪問主存時,可能發生衝突,爲了有效地使用主存,DMA 控制器與 CPU一般採用如下 3 種方式使用主存:
DMA 方式和中斷方式的區別:
中斷向量的地址是中斷服務程序入口地址的地址。(俄羅斯套娃再現)
只有具備 DMA J接口的設備才能產生 DMA 請求。
一條指令執行完畢不可能發生中斷請求,而可能響應中斷請求。
容許中斷觸發器置 0 表示關中斷,由中斷隱指令完成,即由硬件自動完成。
多重中斷系統在保護被中斷進程現場時關中斷,執行中斷處理程序時開中斷,即中斷處理期間 CPU 不必定處於關中斷狀態。
程序中斷方式和 DMA 方式都有中斷請求,但目的不一樣。
CPU 響應中斷方式的特色是 CPU 和外設並行工做,傳送與主程序串行工做;DMA 方式的特色是 CPU 與外設並行工做,傳送與主程序並行工做。
CPU 響應 DMA 請求的條件是當前機器週期執行完。DMA 在與主存交換數據時經過週期竊取方式,竊取的是存儲週期。
DMA 方式傳送數據時,挪用週期不會改變 CPU 現場,所以無須佔用 CPU 的程序計數器和寄存器。
中斷響應優先級是由硬件排隊線路或中斷查詢程序的查詢順序決定的,不可動態改變;而中斷處理優先級能夠由中斷屏蔽字來改變,反映的是正在處理的中斷是否比新發生的中斷的處理優先級低(屏蔽位爲「0」,對新中斷開放),如果,則停止正在處理的中斷,轉到新中斷去處理,處理完後再回到剛纔被停止的中斷繼續處理。
以上均來自王道書籍及課程等