一、輪詢方式 對(duì)I/O設(shè)備的程序輪詢的方式,是早期的計(jì)算機(jī)系統(tǒng)對(duì)I/O設(shè)備的一種管理方式。它定時(shí)對(duì)各種設(shè)備輪流詢問(wèn)一遍有無(wú)處理要求。輪流詢問(wèn)之后,有要求的,則加以處理。在處理I/O設(shè)備的要求之后,處理機(jī)返回繼續(xù)工作。 盡管輪詢需要時(shí)間,但輪詢不比I/O設(shè)備的速度要快得多,所以一般不會(huì)發(fā)生不能及時(shí)處理的問(wèn)題。 當(dāng)然,再快的處理機(jī),能處理的輸入輸出設(shè)備的數(shù)量也是有一定限度的。而且,程序輪詢畢竟占據(jù)了CPU相當(dāng)一部分處理時(shí)間,因此程序輪詢是一種效率較低的方式,在現(xiàn)代計(jì)算機(jī)系統(tǒng)中已很少應(yīng)用。 二、中斷方式 處理器的高速和輸入輸出設(shè)備的低速是一對(duì)矛盾,是設(shè)備管理要解決的一個(gè)重要問(wèn)題。為了提高整體效率,減少在程序直接控制方式中CPU之間的數(shù)據(jù)傳送,是很必要的。 在I/O設(shè)備中斷方式下,中央處理器與I/O設(shè)備之間數(shù)據(jù)的傳輸步驟如下: ?、旁谀硞€(gè)進(jìn)程需要數(shù)據(jù)時(shí),發(fā)出指令啟動(dòng)輸入輸出設(shè)備準(zhǔn)備數(shù)據(jù) ?、圃谶M(jìn)程發(fā)出指令啟動(dòng)設(shè)備之后,該進(jìn)程放棄處理器,等待相關(guān)I/O操作完成。此時(shí),進(jìn)程調(diào)度程序會(huì)調(diào)度其他就緒進(jìn)程使用處理器。 ?、钱?dāng)I/O操作完成時(shí),輸入輸出設(shè)備控制器通過(guò)中斷請(qǐng)求線向處理器發(fā)出中斷信號(hào),處理器收到中斷信號(hào)之后,轉(zhuǎn)向預(yù)先設(shè)計(jì)好的中斷處理程序,對(duì)數(shù)據(jù)傳送工作進(jìn)行相應(yīng)的處理。 ⑷得到了數(shù)據(jù)的進(jìn)程,轉(zhuǎn)入就緒狀態(tài)。在隨后的某個(gè)時(shí)刻,進(jìn)程調(diào)度程序會(huì)選中該進(jìn)程繼續(xù)工作。 中斷方式的優(yōu)缺點(diǎn) I/O設(shè)備中斷方式使處理器的利用率提高,且能支持多道程序和I/O設(shè)備的并行操作。 不過(guò),中斷方式仍然存在一些問(wèn)題。首先,現(xiàn)代計(jì)算機(jī)系統(tǒng)通常配置有各種各樣的輸入輸出設(shè)備。如果這些I/O設(shè)備都同過(guò)中斷處理方式進(jìn)行并行操作,那么中斷次數(shù)的急劇增加會(huì)造成CPU無(wú)法響應(yīng)中斷和出現(xiàn)數(shù)據(jù)丟失現(xiàn)象。 其次,如果I/O控制器的數(shù)據(jù)緩沖區(qū)比較小,在緩沖區(qū)裝滿數(shù)據(jù)之后將會(huì)發(fā)生中斷。那么,在數(shù)據(jù)傳送過(guò)程中,發(fā)生中斷的機(jī)會(huì)較多,這將耗去大量的CPU處理時(shí)間。 三、直接內(nèi)存存?。―MA)方式 直接內(nèi)存存取技術(shù)是指,數(shù)據(jù)在內(nèi)存與I/O設(shè)備間直接進(jìn)行成塊傳輸。 DMA技術(shù)特征 DMA有兩個(gè)技術(shù)特征,首先是直接傳送,其次是塊傳送。 所謂直接傳送,即在內(nèi)存與IO設(shè)備間傳送一個(gè)數(shù)據(jù)塊的過(guò)程中,不需要CPU的任何中間干涉,只需要CPU在過(guò)程開(kāi)始時(shí)向設(shè)備發(fā)出“傳送塊數(shù)據(jù)”的命令,然后通過(guò)中斷來(lái)得知過(guò)程是否結(jié)束和下次操作是否準(zhǔn)備就緒。 DMA工作過(guò)程 ?、女?dāng)進(jìn)程要求設(shè)備輸入數(shù)據(jù)時(shí),CPU把準(zhǔn)備存放輸入數(shù)據(jù)的內(nèi)存起始地址以及要傳送的字節(jié)數(shù)分別送入DMA控制器中的內(nèi)存地址寄存器和傳送字節(jié)計(jì)數(shù)器。 ?、瓢l(fā)出數(shù)據(jù)傳輸要求的進(jìn)行進(jìn)入等待狀態(tài)。此時(shí)正在執(zhí)行的CPU指令被暫時(shí)掛起。進(jìn)程調(diào)度程序調(diào)度其他進(jìn)程占據(jù)CPU。 ⑶輸入設(shè)備不斷地竊取CPU工作周期,將數(shù)據(jù)緩沖寄存器中的數(shù)據(jù)源源不斷地寫(xiě)入內(nèi)存,直到所要求的字節(jié)全部傳送完畢。 ?、菵MA控制器在傳送完所有字節(jié)時(shí),通過(guò)中斷請(qǐng)求線發(fā)出中斷信號(hào)。CPU在接收到中斷信號(hào)后,轉(zhuǎn)入中斷處理程序進(jìn)行后續(xù)處理。 ?、芍袛嗵幚斫Y(jié)束后,CPU返回到被中斷的進(jìn)程中,或切換到新的進(jìn)程上下文環(huán)境中,繼續(xù)執(zhí)行。 DMA與中斷的區(qū)別 ?、胖袛喾绞绞窃跀?shù)據(jù)緩沖寄存器滿之后發(fā)出中斷,要求CPU進(jìn)行中斷處理,而DMA方式則是在所要求傳送的數(shù)據(jù)塊全部傳送結(jié)束時(shí)要求CPU 進(jìn)行中斷處理。這就大大減少了CPU進(jìn)行中斷處理的次數(shù)。 ?、浦袛喾绞降臄?shù)據(jù)傳送是在中斷處理時(shí)由CPU控制完成的,而DMA方式則是在DMA控制器的控制下,不經(jīng)過(guò)CPU控制完成的。這就排除了CPU因并行設(shè)備過(guò)多而來(lái)不及處理以及因速度不匹配而造成數(shù)據(jù)丟失等現(xiàn)象。 DMA方式的優(yōu)缺點(diǎn) 在DMA方式中,由于I/O設(shè)備直接同內(nèi)存發(fā)生成塊的數(shù)據(jù)交換,因此I/O效率比較高。由于DMA技術(shù)可以提高I/O效率,因此在現(xiàn)代計(jì)算機(jī)系統(tǒng)中,得到了廣泛的應(yīng)用。許多輸入輸出設(shè)備的控制器,特別是塊設(shè)備的控制器,都支持DMA方式。 通過(guò)上述分析可以看出,DMA控制器功能的強(qiáng)弱,是決定DMA效率的關(guān)鍵因素。DMA控制器需要為每次數(shù)據(jù)傳送做大量的工作,數(shù)據(jù)傳送單位的增大意味著傳送次數(shù)的減少。另外,DMA方式竊取了始終周期,CPU處理效率降低了,要想盡量少地竊取始終周期,就要設(shè)法提高DMA控制器的性能,這樣可以較少地影響CPU出理效率。 四、通道方式 輸入/輸出通道是一個(gè)獨(dú)立于CPU的,專門(mén)管理I/O的處理機(jī),它控制設(shè)備與內(nèi)存直接進(jìn)行數(shù)據(jù)交換。它有自己的通道指令,這些通道指令由CPU啟動(dòng),并在操作結(jié)束時(shí)向CPU發(fā)出中斷信號(hào),見(jiàn)圖6-3。 輸入/輸出通道控制是一種以內(nèi)存為中心,實(shí)現(xiàn)設(shè)備和內(nèi)參內(nèi)直接交換數(shù)據(jù)的控制方式。在通道方式中,數(shù)據(jù)的傳送方向、存放數(shù)據(jù)的內(nèi)存起始地址以及傳送的數(shù)據(jù)塊長(zhǎng)度等都由通道來(lái)進(jìn)行控制。 另外,通道控制方式可以做到一個(gè)通道控制多臺(tái)設(shè)備與內(nèi)存進(jìn)行數(shù)據(jù)交換。因而,通道方式進(jìn)一步減輕了CPU的工作負(fù)擔(dān),增加了計(jì)算機(jī)系統(tǒng)的并行工作程度。 輸入/輸出通道分類 按照信息交換方式和所連接的設(shè)備種類不同,通道可以分為以下三種類型: ⑴字節(jié)多路通道 它適用于連接打印機(jī)、終端等低速或中速的I/O設(shè)備。這種通道以字節(jié)為單位交叉工作:當(dāng)為一臺(tái)設(shè)備傳送一個(gè)字節(jié)后,立即轉(zhuǎn)去為另一它設(shè)備傳送一個(gè)字節(jié)。 ?、七x擇通道 它適用于連接磁盤(pán)、磁帶等高速設(shè)備。這種通道以“組方式”工作,每次傳送一批數(shù)據(jù),傳送速率很高,但在一段時(shí)間只能為一臺(tái)設(shè)備服務(wù)。每當(dāng)一個(gè)I/O請(qǐng)求處理完之后,就選擇另一臺(tái)設(shè)備并為其服務(wù)。 ?、浅山M多路通道 這種通道綜合了字節(jié)多路通道分時(shí)工作和選擇通道傳輸速率高的特點(diǎn),其實(shí)質(zhì)是:對(duì)通道程序采用多道程序設(shè)計(jì)技術(shù),使得與通道連接的設(shè)備可以并行工作。 通道工作原理 在通道控制方式中,I/O設(shè)備控制器(常簡(jiǎn)稱為I/O控制器)中沒(méi)有傳送字節(jié)計(jì)數(shù)器和內(nèi)存地址寄存器,但多了通道設(shè)備控制器和指令執(zhí)行部件。CPU只需發(fā)出啟動(dòng)指令,指出通道相應(yīng)的操作和I/O設(shè)備,該指令就可啟動(dòng)通道并使該通道從內(nèi)存中調(diào)出相應(yīng)的通道指令執(zhí)行。 一旦CPU發(fā)出啟動(dòng)通道的指令,通道就開(kāi)始工作。I/O通道控制I/O控制器工作,I/O控制器又控制I/O設(shè)備。這樣,一個(gè)通道可以連接多個(gè)I/O控制器,而一個(gè)I/O控制器又可以連接若干臺(tái)同類型的外部設(shè)備。 通道的連接 由于通道和控制器的數(shù)量一般比設(shè)備數(shù)量要少,因此,如果連接不當(dāng),往往會(huì)導(dǎo)致出現(xiàn)“瓶頸”。故一般設(shè)備的連接采用交叉連接,這樣做的好處是: ① 提高系統(tǒng)的可靠性:當(dāng)某條通路因控制器或通道故障而斷開(kāi)時(shí),可使用其他通路。 ?、? 提高設(shè)備的并行性:對(duì)于同一個(gè)設(shè)備,當(dāng)與它相連的某一條通路中的控制器或通道被占用時(shí),可以選擇另一條空閑通路,減少了設(shè)備因等待通路所需要花費(fèi)的時(shí)間。 通道處理機(jī) 通道相當(dāng)于一個(gè)功能單純的處理機(jī),它具有自己的指令系統(tǒng),包括讀、寫(xiě)、控制、轉(zhuǎn)移、結(jié)束以及空操作等指令,并可以執(zhí)行由這些指令編寫(xiě)的通道程序。 通道的運(yùn)算控制部件包括: ① 通道地址字(CAW):記錄下一條通道指令存放的地址,其功能類似于中央處理機(jī)的指令寄存器。 ?、?通道命令字(CCW):記錄正在執(zhí)行的通道指令,其作用相當(dāng)于中央處理機(jī)的指令寄存器。 ?、? 通道狀態(tài)字(CSW):記錄通道、控制器、設(shè)備的狀態(tài),包括I/O傳輸完成信息、出錯(cuò)信息、重復(fù)執(zhí)行次數(shù)等。 通道對(duì)主機(jī)的訪問(wèn) 通道一般需要與主機(jī)共享同一個(gè)內(nèi)存,以保存通道程序和交換數(shù)據(jù)。通道訪問(wèn)內(nèi)存采用“周期竊用”方式。 采用通道方式后,輸入/輸出的執(zhí)行過(guò)程如下: CPU在執(zhí)行用戶程序時(shí)遇到I/O請(qǐng)求,根據(jù)用戶的I/O請(qǐng)求生成通道程序(也可以是事先編好的)。放到內(nèi)存中,并把該通道程序首地址放入CAW中。 然后,CPU執(zhí)行“啟動(dòng)I/O”指令,啟動(dòng)通道工作。通道接收“啟動(dòng)I/O”指令信號(hào),從CAW中取出通道程序首地址,并根據(jù)此地址取出通道程序的第一條指令,放入CCW中;同時(shí)向CU發(fā)回答信號(hào),通知“啟動(dòng)I/O”指令完成完畢,CPU可繼續(xù)執(zhí)行。 通道開(kāi)始執(zhí)行通道程序,進(jìn)行物理I/O操作。當(dāng)執(zhí)行完一條指令后,如果還有下一條指令則繼續(xù)執(zhí)行;否則表示傳輸完成,同時(shí)自行停止,通知CPU轉(zhuǎn)去處理通道結(jié)束事件,并從CCW中得到有關(guān)通道狀態(tài)。 總之,在通道中,I/O運(yùn)用專用的輔助處理器處理I/O操作,從而剪徑了主處理器處理I/O的負(fù)擔(dān)。主處理器只要發(fā)出一個(gè)I/O操作命令,剩下的工作完全由通道負(fù)責(zé)。I/O操作結(jié)束后,I/O通道會(huì)發(fā)出一個(gè)中斷請(qǐng)求,表示相應(yīng)操作已完成。 通道的發(fā)展 通道的思想是從早期的大型計(jì)算機(jī)系統(tǒng)中發(fā)展起來(lái)的。在早期的大型計(jì)算機(jī)系統(tǒng)中,一般配有大量的I/O設(shè)備。為了把對(duì)I/O設(shè)備的管理從計(jì)算機(jī)主機(jī)中分離出來(lái),形成了I/O通道的概念,并專門(mén)設(shè)計(jì)出I/O通道處理機(jī)。 I/O通道在計(jì)算機(jī)系統(tǒng)中是一個(gè)非常重要的部件,它對(duì)系統(tǒng)整體性能的提高起了相當(dāng)重要的作用。不過(guò),隨著技術(shù)不斷的發(fā)展,處理機(jī)和I/O設(shè)備性能的不斷提高,專用的、獨(dú)立I/O通道處理機(jī)已不容易見(jiàn)到。但是通道的思想又融入了許多新的技術(shù),所以仍在廣泛地應(yīng)用著。由于光纖通道技術(shù)具有數(shù)據(jù)傳輸速率高、數(shù)據(jù)傳輸距離遠(yuǎn)以及可簡(jiǎn)化大型存儲(chǔ)系統(tǒng)設(shè)計(jì)的優(yōu)點(diǎn),新的通用光纖通道技術(shù)正在快速發(fā)展。這種通用光纖通道可以在一個(gè)通道上容納多達(dá)127個(gè)的大容量硬盤(pán)驅(qū)動(dòng)器。顯然,在大容量高速存儲(chǔ)應(yīng)用領(lǐng)域,通用光纖通道有著廣泛的應(yīng)用前景。 |
|
來(lái)自: rookie > 《技術(shù)帖》