通道結(jié)束條件類別操作正常結(jié)束
當(dāng)通道狀態(tài)字(channel state word CSW)中僅有通道結(jié)束、控制器結(jié)束和設(shè)備結(jié)束時,表示已經(jīng)完成了通道程序所規(guī)定的所有操作,通道就形成輸入和輸出操作正常結(jié)束和中斷事件1。
操作異常結(jié)束有兩種情況:設(shè)備故障,當(dāng)執(zhí)行輸入輸出操作時,如果發(fā)現(xiàn)硬件的故障,如接口錯、控制錯、通道程序錯以及數(shù)據(jù)錯等情況,表示通道和程序出現(xiàn)了不正常,操作系統(tǒng)將重新啟動通道;設(shè)備特殊,各種設(shè)備在工作時都可能發(fā)現(xiàn)一些特殊情況,如打印發(fā)現(xiàn)紙用完。
通道的組成不同的通道,其組成也不同,下面以選擇通道為例介紹通道的組成。
(1)通道地址字寄存器CAWR:它存放從主存某固定單元中讀出的通道地址字CAW,再從CAW中取出通道程序首地址。通道中的CAWR類似于CPU中的程序計數(shù)器PC。
(2)通道指令寄存器CCWR:它存放從主存中讀出的通道指令,根據(jù)該通道指令向設(shè)備控制器發(fā)出控制命令。
(3)數(shù)據(jù)緩沖寄存器:當(dāng)發(fā)生訪存沖突時,它用于暫時保存數(shù)據(jù),等待一段時間后再傳送。另外,通道與設(shè)備之間按字節(jié)傳送,而通道與主存之間按字傳送,故它具有組裝與拆分功能。
(4)設(shè)備地址寄存器:它接受啟動I/O指令(SIO)中所包含的設(shè)備號,并依次向I/O總線送出設(shè)備地址,經(jīng)譯碼產(chǎn)生選中設(shè)備信號。
(5)通道狀態(tài)字寄存器CSWR:它存放通道與設(shè)備的狀態(tài)信息。
(6)通道控制器:它產(chǎn)生控制通道操作的各種信號,類似于CPU中的微程序信號發(fā)生器。
通道程序通道是通過執(zhí)行通道程序, 并與設(shè)備控制器共同實現(xiàn)對 I/O 設(shè)備的控制的。 通道程序是由一系列通道指令(或稱為通道命令)所構(gòu)成的。通道指令與一般的機(jī)器指令不同,在它的每條指令中都包含下列諸信息:
(1) 操作碼。操作碼規(guī)定了指令所執(zhí)行的操作,如讀、寫、控制等操作。
(2) 內(nèi)存地址。內(nèi)存地址標(biāo)明字符送入內(nèi)存(讀操作)和從內(nèi)存取出(寫操作)時的內(nèi)存首址。
(3) 計數(shù)。該信息表示本條指令所要讀(或?qū)?數(shù)據(jù)的字節(jié)數(shù)。
(4) 通道程序結(jié)束位 P。該位用于表示通道程序是否結(jié)束。P=1 表示本條指令是通道程序的最后一條指令。
(5) 記錄結(jié)束標(biāo)志 R。R=0 表示本通道指令與下一條指令所處理的數(shù)據(jù)是同屬于一個記錄;R=1 表示這是處理某記錄的最后一條指令