-
I/O通道
鎖定
I/O通道(I/O Channel)設備的引入實際上,I/O通道是一種特殊的處理機。它具有執行I/O指令的能力,並通過執行通道(I/O)程序來控制I/O操作。但I/O通道又與一般的處理機不同,主要表現在以下兩個方面:一是其指令類型單一,這是由於通道硬件比較簡單,其所能執行的命令,主要侷限於與I/O操作有關的指令;再就是通道沒有自己的內存,通道所執行的通道程序是放在主機的內存中的,換言之,是通道與CPU共享內存。
- 中文名
- I/O通道
- 外文名
- I/O Channels
- 所屬範圍
- 計算機技術
目錄
I/O通道I/O通道(Channel)
一條大型機通道(channel)某種程度上類似於PCI 總線(bus),它能將一個或多個控制器連接起來,而這些控制器又控制着一個或更多的設備(磁盤驅動器、終端、LAN端口,等等。)大型機通道和PCI總線之間的一個主要區別是大型機通道通過幾對大的bus and tag 電纜(並行通道方式),或者通過常使用ESCON(Enterprise System Connection)光導纖維電纜(串行通道方式)以及光纖通道來連接控制器。這些通道在早期是一些外置的盒子(每個約6’X30’’X5’H大小),都已經整合到了系統框架內。
這些通道的超強I/O處理能力是大型機系統功能如此強大的原因之一。
2. CPU尋址I/O設備的方式
◆ I/O設備單獨編址
無論選擇哪一種編址方法,每個I/O設備
3. 設備的連接和工作方式
直接傳送、程序查詢、中斷、DMA、I/O處理機
4. 程序控制、中斷和DMA方式管理外圍設備會引
起兩個問題:
◆ 所有外圍設備的I/O工作全部都要由CPU來
承擔,CPU的I/O負擔很重,不能專心於用
户程序的計算。
多,但是一般並不同時工作。
解決上述問題的方法:採用通道處理機
6.5.3 通道
通道處理機能夠負擔外圍設備的大部分I/O工作。
通道處理機:能夠執行有限I/O指令,並且能夠被多
1. 通道的功能
(1) 接受CPU發來的I/O指令,根據指令要求選
擇一台指定的外圍設備與通道相連接。
(2) 執行CPU為通道組織的通道程序,從主存中
取出通道指令,對通道指令進行譯碼,並根
據需要向被選中的設備控制器發出各種操作
命令。
(3) 給出外圍設備的有關地址,即進行讀/寫操
作的數據所在的位置。
(4) 給出主存緩衝區的首地址,這個緩衝區用來暫時
存放從外圍設備上輸入的數據,或者暫時存放將
要輸出到外圍設備中去的數據。
(5) 控制外圍設備與主存緩衝區之間數據交換的個數,
對交換的數據個數進行計數,並判斷數據傳送工
作是否結束。
(6) 指定傳送工作結束時要進行的操作。
(7) 檢查外圍設備的工作狀態,是正常或故障。根據
需要將設備的狀態信息送往主存指定單元保存。
(8) 在數據傳輸過程中完成必要的格式變換。
例如 把字拆卸為字節,或者把字節裝配成字
2. 通道的主要硬件
(1) 寄存器部分
主存地址計數器
傳輸字節數計數器
通道命令字寄存器
通道狀態字寄存器
(2) 控制部分
分時控制
地址分配
數據裝配
拆卸
3. 通道對外圍設備的控制通過I/O接口和設備控制
器進行
通道與設備控制器之間一般採用標準的I/O
接口來連接。
I/O通道通道的類型
(1)選擇通道:這種通道可以連接多台快速I/O設備,但每次只能從中選擇一台設備執行通道程序,進行主存與該設備之間的數據傳送。當數據傳送完後,才能選擇另一台設備。在這種工作方式中,數據傳送以成組方式進行,傳送速率很高,多用於連接快速I/O設備。但因連接在選擇通道上的多台設備,只能依次使用通道與主存傳送數據,故設備之間不能並行工作,且整個通道的利用率不高。
[1]
(2)字節多路通道:這種通道可以連接多台慢速I/O設備,以交叉方式傳送數據,即各設備輪流使用通道與主存進行數據傳送,且每次只傳送一個字節。因為每次數據傳送僅佔用了不同的設備各自分得的很短的時間片,所以大大提高了通道的利用率。
[1]
(3)數組多路通道:數組多路通道綜合了選擇通道和字節多路通道的優點,它有多個子通道。即可以像字節多路通道那樣,執行多路通道程序,使所有子通道分時共享總通道;又可以像選擇通道那樣進行成組數據的傳送。
[1]
子通道是指實現每個通道程序所對應的硬設備。選擇通道在物理上可以連接多台設備,但在一段時間內只能執行一台設備的通道程序,即在邏輯上只能連接一台設備,所以它只包含一個子通道。字節多路通道和數組多路通道在物理上可以連接多台設備,而且在一段時間內可輪流執行多台設備的通道程序,即在邏輯上也可以連接多台設備,所以它們包含若干子通道。需要注意的是,一個子通道可以連接多台設備,但子通道數並不等於物理上可連接的設備數,而是該通道中能夠同時工作的設備數。
I/O通道I/O指令和通道指令
(1)I/O指令:I/O指令是計算機系統的一部分,由CPU執行。在採用通道的計算機系統中,I/O指令不直接控制I/O數據的傳送,它只負責啓動、停止I/O的過程、查詢通道和I/O設備的狀態、控制通道進行某些操作。
[1]
命令:命令用於説明通道和設備執行什麼操作。命令一般又分為基本操作位和補充位兩部分。通道運行時只識別基本操作位,而不識別補充位。
數據地址:它給出本次I/O操作時的主存緩衝區首地址,在數據傳送過程中,每傳送一個字或一個字節,它就加1或減1。
傳送字節數:它表示數據傳送字節數,每傳送一個字節就修改其值,當為0時,表明傳送結束。
特徵位:
數據鏈特徵位(SD) 若SD=1,表示下一條通道指令也是數據傳送指令。
命令鏈特徵位(CD) 若CD=1,表示該通道指令執行完畢,下一條要執行的通道指令與該通道指令的操作不同。
封鎖錯誤長度特徵(SLL) 錯誤長度是指通道指令中所給定的傳送字節數與I/O設備請求傳送的字節數不相等,則該通道指令執行完畢產生錯誤長度標誌,並向CPU發出中斷請求。若SLL=1,即使產生長度錯標誌,出不向CPU發出中斷請求,繼續向下執行通道指令。
封鎖寫入主存特徵位(SKIP) SKIP=1時,禁止將I/O設備讀出的數據寫入主存。
程序控制中斷特徵位(PCI) PCI=1時,表示執行本通道指令時,允許產生一箇中斷條件。
説明:SD=0,CD=0本通道指令是通道程序的最後一條指令,可向CPU發出中斷請求。
SD=1,CD=0下一條通道指令和本條通道的操作命令相同。
SD=0,CD=1下一條通道指令和本條通道的操作命令不同。
I/O通道通道的組成
(1)通道地址字寄存器CAWR:它存放從主存某固定單元中讀出的通道地址字CAW,再從CAW中取出通道程序首地址。通道中的CAWR類似於CPU中的程序計數器PC。
(2)通道指令寄存器CCWR:它存放從主存中讀出的通道指令,根據該通道指令向設備控制器發出控制命令。
(3)數據緩衝寄存器:當發生訪存衝突時,它用於暫時保存數據,等待一段時間後再傳送。另外,通道與設備之間按字節傳送,而通道與主存之間按字傳送,故它具有組裝與拆分功能。
(4)設備地址寄存器:它接受啓動I/O指令(SIO)中所包含的設備號,並依次向I/O總線送出設備地址,經譯碼產生選中設備信號。
(5)通道狀態字寄存器CSWR:它存放通道與設備的狀態信息。
(6)通道控制器:它產生控制通道操作的各種信號,類似於CPU中的微程序信號發生器。
I/O通道通道的工作過程
(1)初始化:
編制通道程序;
根據需要在主存中開闢I/O緩衝區;
將緩衝區首址及傳送字節數送到通道程序中,並將通道程序首地址寫入某固定單元;
(2)通道和設備的啓動:
指定的通道接到啓動信號後,從某固定單元中讀出通道地址字CAW;
CAW送入通道地址寄存器CAWR;
通道將SIO指令送來的設備號送入設備地址寄存器,然後向I/O總線送出所要啓動的設備號;
若回送的設備地址與通道送出的設備地址一致,則啓動成功;
通道根據VAWR中的內容從主存取出第一條通道指令CCW1,並存於通道指令寄存器CCWR中,然後根據CCW1中的命令碼去啓動設備;
設備在接到第一條通道發出的命令後,向通道送出狀態碼,若狀態碼全為0,則通道向CPU送出條件碼,並告之啓動成功。反之,則表示不能正常執行通道命令,並説明失敗的原因。
數據傳送:執行完第一條通道指令後,CAWR增值,以便讀出第二條通道指令。若執行的是數據傳送指令,當其傳送字節數減到0時,表明該通道指令執行完畢,本次數據傳送結束。依次類推,直到執行的某條通道指令中SD和CD均為0,則該通道指令是本通道程序中的最後一條。
設備接到結束命令後立即進行某些必要的動作,例如磁帶繼續運行一段,使磁頭停止在兩個數據之間的空白處。在設備必要的動作結束後,反饋給通道一個信號,以斷開與通道的連接。
CPU接到中斷請求信號後,響應中斷,執行I/O中斷管理程序,對通道作結束處理。
I/O通道信息的傳送方式
在計算機中,信息傳送方式有四種:串行傳送、並行傳送、並串行傳送和分時傳送。
(1)串行傳送:串行傳送就是一根數據線從低到高的順序逐位傳送數據。一般外總線採用串行傳送方式。
(2)並行傳送:並行傳送是用多根數據線同時傳送一個字或一個字節的所有位,將同時傳送的數據位數稱為該總線的數據通路寬度。系統總線通常採用並行傳送方式,以提高速度和效率。
(3)並串行傳送:它是並行和串行傳送的結合。例如要傳送的數據有多個字節組成,那麼傳送一個字節時採用並行傳送,而字節之間採用串行傳送。
- 參考資料
-
- 1. I/O系統:I/O通道 .希賽網[引用日期2015-01-22]
- 2. I/O通道 .博客專欄[引用日期2015-01-22]
- 3. I/O系統的組成 .設備管理[引用日期2015-01-22]