13 计算机组成原理第七章 输入/输出系统 I/O方式 I/O接口
文章目錄
- 1 I/O接口
- 1.1 接口定義
- 1.2 I/O接口的功能(以單總線為例)
- 1.3 I/O接口的基本結構
- 1.4 接口與端口
- 1.5 I/O端口及其編址
- 1.6 I/O接口的類型
- 1.7 I/O接口小結
- 2 I/O方式
- 2.1 I/O方式1-程序查詢方式
- 2.1.1 程序查詢方式流程圖
- 2.1.2 程序查詢方式接口
- 2.1.3 程序查詢方式-例題
- 2.2 I/O方式2-程序中斷方式
- 2.2.1 程序中斷方式
- 2.2.2 程序中斷方式-例題
- 2.2.3 程序中斷方式小結
- 2.3 I/O方式3-DMA方式
- 2.3.1 DMA控制器
- 2.3.2 DMA控制器結構
- 2.3.3 DMA傳送過程
- 2.3.4 DMA傳送方式
- 2.3.5 DMA方式的特點
- 2.3.6 DMA方式與中斷方式比較
- 2.3.7 例題:CPU占用情況
- 2.3.8 DMA方式小結
1 I/O接口
1.1 接口定義
接口可以看作是兩個部件之間的交接部分。
1.2 I/O接口的功能(以單總線為例)
I/O接口(l/O控制器)是主機和外設之間的交接界面,通過接口可以實現主機和外設之間的信息交換。
接口的功能(要解決的問題)
接口的功能(具體操作)
1.3 I/O接口的基本結構
內部接口:內部接口與系統總線相連,實質上是與內存、CPU相連。數據的傳輸方式只能是并行傳輸。
外部接口:外部接口通過接口電纜與外設相連,外部接口的數據傳輸可能是串行方式,因此I/O接口需具有串/并轉換功能。
CPU同外設之間的信息傳送實質是對接口中的某些寄存器(即端口)進行讀或寫
1.4 接口與端口
I/O端口是指接口電路中可以被CPU直接訪問的寄存器。
如何訪問I/O端口?
I/O端口要想能夠被CPU訪問,必須要有端口地址,每一個端口都對應著一個端口地址。
1.5 I/O端口及其編址
把I/O端口當做存儲器的單元進行地址分配,用統一的訪存指令就可以訪問I/O端口,又稱存儲器映射方式。
CPU靠不同的地址碼區分內存和I/O設備,I/O地址要求相對固定在地址的某部分。
如系統總線中地址線共10根,則可以訪問的存儲單元個數為210=1024個,假設要給10個l/O端口編址:
(1)0–9表示I/O地址,10–1023為主存單元地址
(2)0–1013表示主存單元地址,1014–1023為I/O地址
(3)10–19表示I/O地址,0–9、20–1023為主存單元地址
I/O編址連續,不可間斷
優點:不需要專門的輸入/輸出指令,可使CPU訪問l/O的操作更靈活、更方便,還可使端口有較大的編址空間。
缺點:端口占用了存儲器地址,使內存容量變小,而且,利用存儲器編址的I/O設備進行數據輸入/輸出操作,執行速度較慢。
I/O端口地址與存儲器地址無關,獨立編址CPU需要設置專門的輸入/輸出指令訪問端口,又稱I/O映射方式。
CPU靠不同的指令區分內存和I/O設備。
優點:輸入/輸出指令與存儲器指令有明顯區別,程序編制清晰,便于理解。
缺點:輸入/輸出指令少,一般只能對端口進行傳送操作,尤其需要CPU提供存儲器讀/寫、I/O設備讀/寫兩組控制信號,增加了控制的復雜性。
1.6 I/O接口的類型
按數據傳送方式可分為
并行接口:一個字節或一個字所有位同時傳送。
串行接口:一位一位地傳送。
注:這里所說的數據傳送方式指的是外設和接口一側的傳送方式,而在主機和接口一側,數據總是并行傳送的。接口要完成數據格式轉換。
按主機訪問I/O設備的控制方式可分為
程序查詢接口
中斷接口
DMA接口
按功能選擇的靈活性可分為
可編程接口
不可編程接口
1.7 I/O接口小結
2 I/O方式
2.1 I/O方式1-程序查詢方式
2.1.1 程序查詢方式流程圖
優點:接口設計簡單、設備量少。
缺點:CPU在信息傳送過程中要花費很多時間用于查詢和等待,而且在一段時間內只能和一臺外設交換信息,效率大大降低。
2.1.2 程序查詢方式接口
程序查詢方式數據傳送是發生在CPU寄存器和I/O接口的數據緩沖寄存器之間,交換的單位是一個字
2.1.3 程序查詢方式-例題
在程序查詢方式的輸入/輸出系統中,假設不考慮處理時間,每一個查詢操作需要100個時鐘周期,CPU的時鐘頻率為50MHz。現有鼠標和硬盤兩個設備,而且CPU必須每秒對鼠標進行30次查詢,硬盤以32位字長為單位傳輸數據,即每32位被CPU查詢一次,傳輸率為2×220B/s。求CPU對這兩個設備查詢所花費的時間比率,由此可得出什么結論?
時間的角度:
一個時鐘周期為 1 / 50MHz = 20ns
一個查詢操作耗時 100×20ns = 2000ns
(1)鼠標
每秒查詢鼠標耗時 30×2000ns = 60000ns
查詢鼠標所花費的時間比率 = 60000ns / 1s = 0.006%
對鼠標的查詢基本不影響CPU的性能
(2)硬盤
每32位需要查詢一次,每秒傳送 2×220B
每秒需要查詢(2×220B)/ 32 = 219次
查詢硬盤耗時 219×2000ns = 512×1024×2000ns = 1.05×109ns(近似值)
查詢硬盤所花費的時間比率=(1.05×109ns)/ 1s = 105%
得出的結論:CPU將全部時間都用于對硬盤的查詢也不能滿足磁盤傳輸的要求
頻率的角度:
CPU的時鐘頻率為50MHz,即每秒50×105個時鐘周期
(1)鼠標
每秒查詢鼠標占用的時鐘周期數 30×100 = 3000
查詢鼠標所花費的時間比率= 3000 /(50×105)= 0.006%
對鼠標的查詢基本不影響CPU的性能
(2)硬盤
每秒需要查詢(2×220B)/ 32=219次
每秒查詢硬盤占用的時鐘周期數 219×100 = 5.24×107(近似值)
查詢硬盤所花費的時間比率=(5.24×107)/(50×106)=105%
得出的結論:CPU將全部時間都用于對硬盤的查詢也不能滿足磁盤傳輸的要求
2.2 I/O方式2-程序中斷方式
程序中斷的作用如下:
2.2.1 程序中斷方式
2.2.2 程序中斷方式-例題
假定CPU主頻為50MHz,CPI為4。設備D采用異步串行通信方式向主機傳送7位ASClI 字符,通信規程中有1位奇校驗位和1位停止位,從D接收啟動命令到字符送入l/0端口需要0.5ms。請回答下列問題,要求說明理由。
(1)每傳送一個字符,在異步串行通信線上共需傳輸多少位?在設備D持續工作過程中,每秒鐘最多可向l/O端口送入多少個字符?
至少包含1位起始位和1位停止位,停止位可能有多位。
每傳送一個字符需要傳送1位起始位、7位數據位、1位校驗位、1位停止位,共需傳送10位。
每0.5ms可送入1個字符
每秒可送入1s / 0.5ms = 2000個字符
(2)設備D采用中斷方式進行輸入/輸出,示意圖如下:
I/O端口每收到一個字符申請一次中斷,中斷響應需10個時鐘周期,中斷服務程序共有20條指令,其中第15條指令啟動D工作。若CPU需從D讀取1000個字符,則完成這一任務所需時間大約是多少個時鐘周期?CPU用于完成這一任務的時間大約是多少個時鐘周期?在中斷響應階段CPU進行了哪些操作?
- 主頻50MHz,時鐘周期為1 / 50MHz = 20ns
0.5ms對應時鐘周期數為0.5ms / 20ns = 25000(統一單位ms→時鐘周期)
傳送1個字符需要的時鐘周期數為 25000+10+15×4 = 25070(CPI=4,對應的含義是每條指令執行的時鐘周期是4,CPI即每條指令執行的時鐘周期數) - 傳送1000個字符需要的時鐘周期數為 25070×1000 = 25070000
CPU用于該任務的時間大約為 1000×(10+20×4)= 9×104個時鐘周期 - 中斷響應階段就是中斷隱指令:
2.2.3 程序中斷方式小結
2.3 I/O方式3-DMA方式
2.3.1 DMA控制器
每準備好一個數據都要中斷CPU,由CPU運行中斷服務程序來完成一次傳送
磁盤機、磁帶機等高速設備需要大批量的數據傳送→CPU大量時間用于中斷服務由硬件實現控制大批量的數據傳送→DMA控制器
在DMA方式中,當I/O設備需要進行數據傳送時,通過DMA控制器(DMA接口)向CPU提出DMA傳送請求,CPU響應之后將讓出系統總線,由DMA控制器接管總線進行數據傳送。其主要功能有:
1 2 是傳送前DMA控制器提供的功能;3 4 是傳送時DMA控制器提供的功能;5 是傳送后DMA控制器提供的功能
2.3.2 DMA控制器結構
注:在DMA傳送過程中,DMA控制器將接管CPU的地址總線、數據總線和控制總線,CPU的主存控制信號被禁止使用。而當DMA傳送結束后,將恢復CPU的一切權利并開始執行其操作。
2.3.3 DMA傳送過程
數據傳送過程:
上面兩個圖合并:
2.3.4 DMA傳送方式
主存和DMA控制器之間有一條數據通路,因此主存和I/O設備之間交換信息時,不通過CPU。但當l/O設備和CPU同時訪問主存時,可能發生沖突,為了有效地使用主存,DMA控制器與CPU通常采用以下3種方法使用主存。
控制簡單
CPU處于不工作狀態或保持狀態
未充分發揮CPU對主存的利用率
不需要總線使用權的申請、建立和歸還過程
硬件邏輯更為復雜
DMA訪問主存有三種可能:
CPU此時不訪存(不沖突)
CPU正在訪存(存取周期結束讓出總線)
CPU與DMA同時請求訪存(l/O訪存優先)
2.3.5 DMA方式的特點
主存和DMA接口之間有一條直接數據通路。
由于DMA方式傳送數據不需要經過CPU,因此不必中斷現行程序,l/O與主機并行工作,程序和傳送并行工作。
DMA方式具有下列特點:
2.3.6 DMA方式與中斷方式比較
2.3.7 例題:CPU占用情況
某計算機的CPU主頻為500MHz,CPI為5(即執行每條指令平均需5個時鐘周期)。假定某外設的數據傳輸率為0.5MB/s,采用中斷方式與主機進行數據傳送,以32位為傳輸單位,對應的中斷服務程序包含18條指令,中斷服務的其他開銷相當于2條指令的執行時間。請回答下列問題,要求給出計算過程。
(1)在中斷方式下,CPU用于該外設1/0的時間占整個CPU時間的百分比是多少?
中斷方式下占用CPU是中斷服務程序和中斷隱指令階段
每傳送一次數據,占用CPU的時間為(18+2)×5 = 100個時鐘周期
外設準備32位的數據需要的時間為 32bit ÷ 0.5MB/s = 8×10-6s
每秒可準備的數據個數為 1s ÷ 8×10-6 = 125000個
即每秒需中斷的次數為125000次
每秒傳送次數=外設數據傳輸率 / 傳輸單位
則1s內用于處理中斷的時鐘周期數(開銷)為 125000×100 = 12.5M個
故CPU用于外設I/O 的時間占整個CPU時間的百分比為 12.5M ÷ 500M = 2.5%
(2)當該外設的數據傳輸率達到5MB/s時,改用DMA方式傳送數據。假定每次DMA傳送塊大小為5000B,且DMA預處理和后處理的總開銷為500個時鐘周期,則CPU用于該外設l/0的時間占整個CPU時間的百分比是多少?
(假設DMA與CPU之間沒有訪存沖突)
當外設數據傳輸率提高到5MB/s時改用DMA方式傳送,每次DMA傳送一個數據塊,大小為5000B,則1s內需產生的DMA次數為 5MB÷5000B = 1000次
CPU用于DMA處理的總開銷為 1000×500 = 0.5M
一個時鐘周期CPU用于外設I/O的時間占整個CPU時間的百分比為 0.5M / 500M = 0.1%
采用中斷方式時,若外設速度達到5MB/s,則故CPU用于外設I/O的時間占整個CPU時間的百分比25%
2.3.8 DMA方式小結
總結
以上是生活随笔為你收集整理的13 计算机组成原理第七章 输入/输出系统 I/O方式 I/O接口的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: MongoDB:SpringBoot有关
- 下一篇: 人工智能技术在智能制造中的典型应用场景与