專利名稱:信息處理設(shè)備及其控制方法
技術(shù)領(lǐng)域:
本發(fā)明的各種實施方式涉及信息處理系統(tǒng),該信息處理系統(tǒng)具有信息處理設(shè)備、與所述信息處理設(shè)備相連接的輸入輸出(IO)裝置以及在 所述信息處理設(shè)備與所述10裝置之間傳送數(shù)據(jù)的通道裝置。
背景技術(shù):
通常,公司的基本運營是由計算機中的主機進行處理的。常常將主 機稱為通用計算機、通用機或者通用大型計算機。典型的是,主機連接到各種IO裝置。傳統(tǒng)上,主機具有特別設(shè)計的電路或者專用硬件。例如,包括在主機100中的10處理器101具有特別設(shè)計的中斷控制電路102,如圖9所 示。10處理器101通過通道裝置110控制一個或者多個IO裝置之間的數(shù) 據(jù)發(fā)送和接收。通道裝置110控制主機100與IO裝置之間的數(shù)據(jù)傳送。 IO裝置為例如包括在廉價磁盤冗余陣列或者獨立磁盤冗余陣列(RAID) 結(jié)構(gòu)中的存儲裝置。中斷控制電路102具有硬件電路,并且接收一個或 者多個通道裝置110請求的中斷,并且將必要命令發(fā)布給通道裝置110。近年來,存在使用具有通用處理器的通用平臺來實施大規(guī)模系統(tǒng)的 趨勢。已經(jīng)引入使用諸如UNIX (注冊商標)、Linux或者Windows (注 冊商標)的操作系統(tǒng)的服務(wù)器系統(tǒng)作為通用平臺。通過使用這種服務(wù)器 系統(tǒng),降低了研發(fā)成本和時間,并且提高了維護的便利性。在轉(zhuǎn)用通用平臺時,大多數(shù)用戶要求像以前一樣保持他們的系統(tǒng)。 例如為了在平臺200中模擬主機100,像以前一樣控制對主機100的中斷, 如圖9所示。因此,在通用平臺200中安裝了通道驅(qū)動器201,以便接收 通道裝置110所請求的中斷。日本特開平04-363748號公報公開了以下內(nèi)容中央處理單元(CPU)使用設(shè)置在主存儲器之間的總線并且根據(jù)通道裝置所請求的中斷來釋放所述總線。直接存儲器存取(DMA)控制器或者中斷控制器控制來自多 個通道裝置的請求,并且選擇CPU允許中斷的通道裝置。通過用于控制 來自多個通道裝置的中斷請求的優(yōu)先級的方法,將請求被接受的通道裝 置的優(yōu)先級更新為最低優(yōu)先級,并且將優(yōu)先級僅次于上述通道裝置的通 道裝置設(shè)置為具有最高優(yōu)先級。曰本特開昭54-14133號公報公開了一種10通道控制方法,在這種 方法中,具有多個IO通道裝置的CPU利用分時方法執(zhí)行輸入和輸出操 作。CPU依據(jù)IO控制裝置并且根據(jù)IO控制裝置的處理速度,通過機器 指令來確定多個10通道裝置和這些10通道裝置的子通道所執(zhí)行的輸入 和輸出操作的優(yōu)先級。因此,根據(jù)IO系統(tǒng)的結(jié)構(gòu)以所需效率按最佳優(yōu)先 級順序執(zhí)行所述輸入和輸出操作。曰本特開昭61-233837號公報公開了一種中斷處理方法,在這種方 法中,CPU、主存儲單元以及多個通道裝置通過存儲器總線相連接。通 過使用分配給主存儲單元的唯一地址來確定多個通道裝置的中斷優(yōu)先 級,并且根據(jù)中斷優(yōu)先級通過提供給每個通道裝置的中斷信令線向CPU 發(fā)送中斷信號。發(fā)明內(nèi)容本發(fā)明的各種實施方式提供了一種連接有IO裝置的信息處理設(shè)備, 該信息處理設(shè)備具有處理單元;通道裝置,該通道裝置具有用于啟動 所述通道裝置的啟動控制器,并且用于在所述信息處理設(shè)備與IO裝置之 間傳送數(shù)據(jù);存儲裝置,其具有存儲所述通道裝置執(zhí)行的操作的結(jié)果的 預(yù)定區(qū)域;中斷控制器,其對所述通道裝置向所述處理單元請求的中斷 進行控制;通道裝置控制器,其控制所述通道裝置;以及驅(qū)動器,其通 過所述通道裝置將對第一中斷的請求寫入所述存儲裝置的所述預(yù)定區(qū)域 內(nèi),并且使用所述中斷控制器來向所述處理單元請求所述第一中斷,其中, 所述處理單元執(zhí)行用于讀取所述預(yù)定區(qū)域中存儲的信息,并且在所述處理 單元檢測到對所述第一中斷的請求時請求所述第一中斷的驅(qū)動器命令。本發(fā)明的各種實施方式提供一種包括信息處理設(shè)備的信息處理系 統(tǒng),該信息處理設(shè)備具有處理單元;IO裝置,其連接到所述信息處理 設(shè)備;通道裝置,其在所述信息處理設(shè)備與所述IO裝置之間傳遞數(shù)據(jù), 所述通道裝置具有用于啟動所述通道裝置的啟動控制器;存儲裝置,其 具有存儲由所述通道裝置執(zhí)行的操作的結(jié)果的預(yù)定區(qū)域;中斷控制器, 其對所述通道裝置向所述處理單元請求的中斷進行控制;通道裝置控制 器,其對所述通道裝置進行控制;以及驅(qū)動器,其通過所述通道裝置將 對所述第一中斷的請求寫入所述存儲裝置的所述預(yù)定區(qū)域內(nèi),并且使用 中斷控制器來向所述處理單元請求所述第一中斷,其中,所述處理單元 執(zhí)行用于讀取所述預(yù)定區(qū)域中存儲的信息,并且在所述處理單元檢測到 對所述第一中斷的請求時請求所述第一中斷的驅(qū)動器命令。本發(fā)明的各種實施方式提供了一種連接有IO裝置的信息處理設(shè)備 的控制方法,該信息處理設(shè)備具有處理單元、存儲裝置、包括中斷控制 器的通道裝置,該通道裝置在所述信息處理設(shè)備與所述IO裝置之間傳送 數(shù)據(jù),所述控制方法包括以下步驟所述通道裝置將對第一中斷的請求 寫入所述存儲裝置的預(yù)定區(qū)域內(nèi);使用所述中斷控制器來向所述處理單 元請求第一中斷;在所述處理單元檢測到對所述第一中斷的請求時,所 述處理單元從所述預(yù)定區(qū)域中讀取對所述第一中斷的請求;以及當(dāng)所述 通道裝置所請求的所述第一中斷因不存在被所述處理單元設(shè)定得優(yōu)先于 對所述第一中斷的請求的其它處理而被接受時,使用所述中斷控制器來 執(zhí)行所述第一中斷,而對所述第一中斷的請求當(dāng)因存在被設(shè)定得優(yōu)先于 對所述第一中斷的請求的其它處理而未被接受時,在所述處理單元執(zhí)行 了所述其它處理之后,使用所述中斷控制器來執(zhí)行所述第一中斷。
圖1例示了根據(jù)本發(fā)明的一個實施方式的信息處理系統(tǒng)的結(jié)構(gòu); 圖2例示了根據(jù)本發(fā)明的一個實施方式的信息處理系統(tǒng)的示意圖; 圖3例示了與中斷控制有關(guān)的組件;圖4是啟動通道裝置的流程圖,該流程圖從驅(qū)動器執(zhí)行的處理開始;圖5是例示了在通道裝置請求中斷優(yōu)先級時執(zhí)行的處理的流程圖;圖6是例示了中斷優(yōu)先級未被接受時的處理的流程圖;圖7是例示了在使用世代字節(jié)(generation byte)來啟動通道裝置時的處理的流程圖8是例示了在使用世代字節(jié)來請求中斷優(yōu)先級時的處理的流程圖;以及
圖9是例示了其中10處理器/驅(qū)動器發(fā)布命令給通道裝置,而通道裝置對IO處理器/驅(qū)動器進行中斷的現(xiàn)有技術(shù)的示例圖。
具體實施例方式
圖1例示了根據(jù)本發(fā)明的一個實施方式的信息處理系統(tǒng)的結(jié)構(gòu)。信息處理系統(tǒng)1具有系統(tǒng)板2 (#0-#7)、 10單元3 (#0-#7)、系統(tǒng)互連4以及10裝置5 (#5a-#5n)。不應(yīng)當(dāng)認為系統(tǒng)板2和10單元3的數(shù)量限于上述數(shù)量。系統(tǒng)板2和IO單元3的數(shù)量可以相同也可以不同。
每個系統(tǒng)板2具有CPU21和存儲器22。圖1所示的系統(tǒng)板2 (#0)具有四個CPU21。存儲器22可以由多個CPU21共享。另選的是,可以為每個CPU 21設(shè)置存儲器22。
每個CPU 21具有用于控制與10單元3的連接的驅(qū)動器23。各驅(qū)動器23通過例如執(zhí)行存儲器22中存儲的驅(qū)動程序來實施。
每個10單元3用作信息M系統(tǒng)1的IO裝置。每個IO單元3具有與系統(tǒng)互連4相i雜的PCI總線。例如,PCI總線J^tW石體驅(qū)動器31、 I^a32、 LAN端口、諸如CD-ROM驅(qū)動器赫DVD驅(qū)動器的IO單元。
圖1所示的IO單元3 (#0)具有四個硬盤驅(qū)動器31和四個通道裝置32。通道裝置32為例如卡接口裝置,并且與IO裝置5相連接。IO單元3 (#0-#7)的結(jié)構(gòu)彼此之間可以相同或者不同。10單元3 (#1-#7)也可以不具有硬盤驅(qū)動器31、通道裝置32或者LAN端口。
系統(tǒng)互連4具有例如芯片組,并且利用IO單元3 (#0-#7)與系統(tǒng)板2 (:#0-#7)互相連接。系統(tǒng)互連4具有冗余結(jié)構(gòu)。例如,系統(tǒng)互連4具有雙重結(jié)構(gòu)。IQ裝置5a-5n為例如具有RAID結(jié)構(gòu)的存儲裝置,并且與通道裝置32相連接。
圖2為圖1所示的信息處理系統(tǒng)1的示意圖。圖1所示的系統(tǒng)板2(#0-#7)中的一個系統(tǒng)板具有圖2所示的CPU21和存儲器22。系統(tǒng)控制器40包括圖l所示的系統(tǒng)互連4,并且與CPU21、存儲器22以及通道裝置32a-32c互相連接。如圖2所示,CPU 21通過系統(tǒng)控制器40訪問存儲器22。然而,CPU21也可以直接訪問存儲器22。
通道裝置32a-32c對CPU 21、存儲器22以及IO裝置5a-5c之間的數(shù)據(jù)傳送進行控制。通道裝置32a-32c將數(shù)據(jù)傳送到各IO裝置5a-5c。通道裝置32a-32c可以設(shè)置在單個IO單元3的內(nèi)部,也可以不必如此。通道裝置32a-32c中的每一個可以與IO裝置5a-5c中的每一個相連接,也可以不必如此。例如,單個通道裝置32可以與多個IO裝置5相連接,或者多個通道裝置32可以與單個IO裝置5相連接。
對于具有上述結(jié)構(gòu)的信息處理系統(tǒng)1而言,驅(qū)動器23啟動通道裝置32a-32c。例如,驅(qū)動器23啟動通道裝置32a,以便執(zhí)行將數(shù)據(jù)傳送到10裝置5a的命令。
CPU21通過使用驅(qū)動器23來控制通道裝置。通道裝置32a-32c中的每一個請求中斷優(yōu)先級,以啟動對應(yīng)于每個通道裝置32的相應(yīng)10裝置5a-5c。如果只有一個通道裝置例如通道裝置32a請求中斷優(yōu)先級,則可以將中斷優(yōu)先級賦予通道裝置32a。因此,通道裝置32a開始用于從與通道裝置32a相對應(yīng)的10裝置5a傳送數(shù)據(jù)的操作。如果多個通道裝置例如通道裝置32a和32b請求中斷優(yōu)先級,則驅(qū)動器23根據(jù)特定算法控制通道裝置,并且確定通道裝置的中斷優(yōu)先級。如果在驅(qū)動器23的控制下將中斷優(yōu)先級賦予了通道裝置32a,則通道裝置32b不啟動用于從與通道裝置32b相對應(yīng)的IO裝置5b傳送數(shù)據(jù)的操作。簡而言之,通道裝置32b等待驅(qū)動器23發(fā)布命令。在通道裝置32a傳送數(shù)據(jù)之后,驅(qū)動器23將中斷優(yōu)先級賦予通道裝置32b。驅(qū)動器23可以控制通道裝置,或者更高級別的應(yīng)用程序可以與驅(qū)動器23結(jié)合起來控制所述通道裝置。
對于根據(jù)本發(fā)明的一個實施方式的信息處理系統(tǒng)1,通道裝置32根據(jù)驅(qū)動器23發(fā)布的命令開始控制10裝置,或者如上所述,在從驅(qū)動器23獲得中斷優(yōu)先級之后開始控制10裝置。換句話說,通道裝置32在沒有從驅(qū)動器23獲得中斷優(yōu)先級的情況下不會開始對10裝置的控制。
圖3例示了與根據(jù)本發(fā)明的一個實施方式的信息處理系統(tǒng)1執(zhí)行的中斷控制有關(guān)的組件。圖3所示的通道裝置32等同于圖1或者圖2所示的多個通道裝置中的一個。
如上所述,CPU21具有驅(qū)動器23。驅(qū)動器23具有中斷控制器24。中斷控制器24接收通道裝置32所請求的中斷,并且根據(jù)所述中斷來執(zhí)行處理。
存儲器22為例如半導(dǎo)體存儲器,并且用作CPU21的主存儲器。存儲器22具有通道操作緩沖(COB)區(qū)域51和通道中斷緩沖(CIB)區(qū)域52。驅(qū)動器23將COB區(qū)域51和CIB區(qū)域52分配給每個通道裝置32。如果新的通道裝置32連接到信息處理系統(tǒng)1,則驅(qū)動器23將存儲器22中的COB區(qū)域51和CIB區(qū)域52分配給新連接的通道裝置32。
COB區(qū)域51用于存儲由驅(qū)動器23發(fā)布的用于操作通道裝置32的命令。在本實施方式中,COB區(qū)域,51存儲用于啟動通道裝置32的命令和啟動通道裝置32所必需的啟動信息。CIB區(qū)域52用于通過通道裝置32將控制信息通知給驅(qū)動器23。在本實施方式中,CIB區(qū)域52存儲與通道裝置32執(zhí)行的操作的結(jié)果有關(guān)的信息和與通道裝置32向CPU 21進行的請求有關(guān)的信息等。
通道裝置32具有啟動控制器61、通道裝置控制器63、 PCI總線控制器64以及IO控制器65??梢酝ㄟ^硬件或者包括固件和軟件在內(nèi)的硬件的組合來實現(xiàn)這些組件61-65。
啟動控制器61根據(jù)驅(qū)動器23發(fā)布的命令來啟動通道裝置32。在本實施方式中,啟動控制器61具有寄存器。當(dāng)通過通道裝置32將特定值寫入寄存器中時,啟動控制器61讀取存儲在存儲器22的COB區(qū)域51中的信息,并且將該信息傳送到通道裝置控制器63。由此啟動通道裝置32。
中斷控制器62控制通道裝置32向CPU 21請求的中斷。在本實施方式中,當(dāng)通道裝置32執(zhí)行的操作例如數(shù)據(jù)傳送完成時,中斷控制器62將中斷信號發(fā)送給CPU21。此外,當(dāng)請求中斷優(yōu)先級時,中斷控制器62將中斷信號發(fā)送給CPU21。包括在CPU21中的中斷控制器24接收來自通道裝置32的中斷請求,隨后讀取與中斷的所述通道裝置相對應(yīng)的CIB區(qū)域52中存儲的信息。由此執(zhí)行了對應(yīng)于所述中斷請求的操作。
通道裝置控制器63控制通道裝置32的操作,以便將數(shù)據(jù)傳送到對應(yīng)的10裝置5。 PCI總線控制器64控制PCI總線,以便在通道裝置控制器63的控制下,在通道裝置控制器63、 CPU21以及存儲器22之間傳送數(shù)據(jù)。IO控制器65在通道裝置控制器63的控制下,對相應(yīng)10裝置5之間的數(shù)據(jù)傳送進行控制。
圖4是啟動通道裝置32的流程圖,該流程圖從驅(qū)動器23所執(zhí)行的處理開始。圖4所示的流程圖從驅(qū)動器23所執(zhí)行的處理開始。驅(qū)動器23例如基于由應(yīng)用程序發(fā)布的命令開始圖4的流程圖中所示的處理。
在步驟Sl中,驅(qū)動器23將啟動信息寫入與待啟動的通道裝置相對應(yīng)的COB區(qū)域51中。啟動信息是操作通道裝置32所必需的。例如,該啟動信息包括用于將數(shù)據(jù)傳送到通道裝置32的指針、首地址、數(shù)據(jù)大小以及末字節(jié)計數(shù)。指針指定了將由通道裝置32執(zhí)行的命令。首地址為存儲器22中的存儲待傳送數(shù)據(jù)的區(qū)域的首地址。數(shù)據(jù)大小指示了待傳送的數(shù)據(jù)的大小。末字節(jié)計數(shù)表示待傳送的末鏈數(shù)據(jù)的字節(jié)計。另選的是,可以將指令代碼寫入COB區(qū)域51中來取代所述指針。
在步驟S2中,驅(qū)動器23命令待被啟動的通道裝置中包括的啟動控制器61啟動通道裝置32。在本實施方式中,通過將指示"通道裝置啟動"的特定值寫入啟動控制器61所包括的寄存器中來執(zhí)行用于啟動所述通道裝置的命令。
在步驟S3中,包括在對其發(fā)布了啟動命令的通道裝置32中的啟動控制器61讀取在與所述通道裝置相對應(yīng)的COB區(qū)域51中存儲的信息。在步驟1中將所述啟動信息寫入了 COB區(qū)域51中。換句話說,啟動控制器61獲得驅(qū)動器23寫入COB區(qū)域51中的所述啟動信息。隨后,啟動控制器61將所獲得的啟動信息傳送到通道裝置控制器63。
在步驟S4中,通道裝置32根據(jù)從COB區(qū)域51中讀取的所述啟動待傳送的數(shù)據(jù)的首地址以及數(shù)據(jù)大小。當(dāng)從啟動控制器61接收到所述啟動信息時,通道裝置32執(zhí)行由從啟動控制器61傳送來的所述啟動信息中包括的所述指針所指定的命令。換句話說,通道裝置32從存儲器22中的根據(jù)首地址的地址處獲得了其大小與所述數(shù)據(jù)大小相符的數(shù)據(jù),隨后根據(jù)所述用于傳送數(shù)據(jù)的命令將該數(shù)據(jù)傳送到IO裝置5。
在步驟S5中,通道裝置32將在步驟S4中執(zhí)行的處理的結(jié)果寫入與所述通道裝置相對應(yīng)的CIB區(qū)域52中。當(dāng)在步驟S4中成功地傳送了數(shù)據(jù)時,將指示"正常結(jié)束"的結(jié)束代碼作為處理結(jié)果寫入CIB區(qū)域52中。如果所述數(shù)據(jù)沒有成功傳送,則將指示錯誤原因的錯誤代碼寫入CIB區(qū)域52中。如果中途取消數(shù)據(jù)傳輸,則可以將恰在取消前傳送的數(shù)據(jù)的數(shù)據(jù)大小寫入CIB區(qū)域52中。
在步驟S6中,包括在通道裝置32中的中斷控制器62中斷了 CPU 21 。中斷方法并不受到限制。如果CPU 21具有針對每個通道裝置的中斷端子,則通過改變相應(yīng)中斷端子的邏輯值來處理所述中斷。另選的是,可通過將標識了要中斷的通道裝置的信息發(fā)送給CPU21來處理所述中斷。
當(dāng)CPU 21中包括的驅(qū)動器23檢測到所述通道裝置的中斷時,在步驟S7中驅(qū)動器23讀取與所述通道裝置相對應(yīng)的CIB區(qū)域52。所述通道裝置執(zhí)行的處理結(jié)果已經(jīng)在步驟S5中被寫入CIB區(qū)域52中。由此驅(qū)動器23可從CIB區(qū)域52中讀取由通道裝置32執(zhí)行的處理結(jié)果。換句話說,CPU 21根據(jù)在步驟S1中寫入的所述啟動信息來讀取所述處理結(jié)果。
當(dāng)成功地傳送了數(shù)據(jù)時,在步驟S8中驅(qū)動器23通知請求中斷的通道裝置中斷已完成。通過例如將指示"完成"的特定值寫入中斷控制器62中包括的寄存器中來實現(xiàn)所述通知。
對于信息處理系統(tǒng)1,通過包括在CPU 21中的驅(qū)動器23來啟動通道裝置32。通過借助COB區(qū)域51和CIB區(qū)域52在驅(qū)動器23與通道裝置32之間交換信息來實現(xiàn)通道裝置32中所包括的啟動控制器。向CPU 21請求的中斷觸發(fā)了 CPU21讀取CIB區(qū)域52。
驅(qū)動器23命令CPU 21執(zhí)行步驟Sl-S2和步驟S7-S8中的處理。此外,驅(qū)動器23命令通道裝置32執(zhí)行步驟S3-S6中的處理。圖5是例示了通道裝置32請求中斷優(yōu)先級時的處理的流程圖。在本 實施方式中,中斷請求等效于例如保留計算機資源以執(zhí)行通道裝置32所 需的處理的請求。
在步驟Sll中,通道裝置32將與中斷優(yōu)先級請求有關(guān)的信息寫入與 所述通道裝置相對應(yīng)的CIB區(qū)域52中。換句話說,通道裝置32向CPU 21 請求中斷優(yōu)先級,以在將從IO裝置5讀取的數(shù)據(jù)傳送到另一個裝置時或 者在將數(shù)據(jù)寫入IO裝置5時保留必要的計算機資源。
在步驟S12中,通道裝置32通過中斷控制器62中斷CPU21。該中 斷與圖4所示的步驟S6中的中斷操作基本相同。
在步驟S13中,當(dāng)包含在CPU21中的驅(qū)動器23檢測到通道裝置23 請求的中斷時,與步驟S7中相同,在步驟S13中驅(qū)動器23讀取與所述 通道裝置相對應(yīng)的Cffi區(qū)域52。與中斷優(yōu)先級請求有關(guān)的信息已在步驟 Sll中由通道裝置32寫入CIB區(qū)域52中。因此,驅(qū)動器23從CIB區(qū)域 52中讀取通道裝置32請求中斷優(yōu)先級的信息。
在步驟S14中,驅(qū)動器23判斷是否接受在步驟S13中讀取的中斷優(yōu) 先級請求。在一些情況中,CPU21可以將應(yīng)用程序所請求的處理設(shè)定得 優(yōu)先于中斷優(yōu)先級請求。在這種情況中,驅(qū)動器23不接受來自通道裝置 32的請求,直到完成來自應(yīng)用程序的請求為止。在其它情況下,CPU21 接收來自多個通道裝置32的中斷優(yōu)先級請求。在這種情況下,如果驅(qū)動 器23在接收到來自一通道裝置例如通道裝置32a的中斷優(yōu)先級請求時, 接受了來自另一通道裝置例如通道裝置32b的中斷優(yōu)先級請求,則驅(qū)動 器23不會接受來自通道裝置32a的請求,直到完成來自通道裝置32b的 請求為止。如上所述,驅(qū)動器23根據(jù)信息處理系統(tǒng)1的運行狀態(tài)來判斷 是否接受中斷優(yōu)先級請求。如果接受來自通道裝置32的請求,則處理繼 續(xù)進行到步驟S15。
在步驟S15中,驅(qū)動器23命令在步驟Sll中請求中斷優(yōu)先級的通道 裝置32中所包括的中斷控制器62開始處理所述中斷。通過將指示"開 始"例如設(shè)定"接受位"的特定值寫入所述中斷控制器62中包括的寄存 器中來執(zhí)行用于開始所述中斷的命令。當(dāng)中斷控制器62檢測到驅(qū)動器23發(fā)布的命令時,通道裝置32判斷 是否接受中斷優(yōu)先級請求,并且在步驟S16中執(zhí)行所請求的處理。在這 種情況下,基于用于隨機中斷的命令從對應(yīng)10裝置5傳送數(shù)據(jù)。
步驟S17-步驟S20基本上與圖4所示的步驟S5-步驟S8中的處理相 同。在步驟S17中,通道裝置32將通道裝置32執(zhí)行的處理結(jié)果寫入CIB 區(qū)域52中。在步驟S18中,中斷控制器62中斷CPU 21。當(dāng)驅(qū)動器23 檢測到通道裝置32請求的中斷時,驅(qū)動器23讀取與所述通道裝置相對 應(yīng)的CIB區(qū)域。換句話說,CPU21根據(jù)在步驟Sll中寫入的中斷優(yōu)先級 請求來讀取所述處理結(jié)果。在步驟S20中,驅(qū)動器23通知請求了中斷的 通道裝置中斷處理已完成。
如果沒有接受在步驟Sll中寫入的中斷優(yōu)先級請求(步驟S14,否), 則處理繼續(xù)進行到步驟S21。在步驟S21中,驅(qū)動器23執(zhí)行優(yōu)先級比在 步驟Sll中寫入的請求高的其它處理。在步驟S21中執(zhí)行了較高優(yōu)先級 請求后,驅(qū)動器23可返回步驟S15,并且處理較低優(yōu)先級請求,即中斷 優(yōu)先級請求。換句話說,如果驅(qū)動器23沒有接受來自通道裝置的請求, 則驅(qū)動器23可在CPU 21執(zhí)行了其他通道裝置所請求的較高優(yōu)先級請求 之后對所述通道裝置所請求的中斷優(yōu)先級請求進行處理。
對于根據(jù)本發(fā)明的本實施方式的信息處理系統(tǒng)1,通道裝置32在獲 得CPU 21中包括的驅(qū)動器23的接受之后執(zhí)行所請求的處理。換句話說, 通道裝置32不能在驅(qū)動器23尚未接受的情況下獨立執(zhí)行處理。通過借 助存儲器22中的Cffi區(qū)域52在驅(qū)動器23與通道裝置32之間傳送信息 來實現(xiàn)所述優(yōu)先級控制。如圖4所示的處理,針對CPU21的中斷觸發(fā)了 CPU21讀取CIB區(qū)域52。
驅(qū)動器23命令CPU 21執(zhí)行步驟S13-步驟S15和步驟S19-步驟S21 。 此外,驅(qū)動器23命令通道裝置32執(zhí)行步驟Sll-步驟S12和步驟S16-步 驟S18。
圖6為例示了在未接受中斷優(yōu)先級時的處理的流程圖。流程圖中所 示的處理是由通道裝置32執(zhí)行的。
步驟S31和步驟S32等效于圖5所示的步驟Sll和步驟S12。換句話說,通道裝置32通過利用CIB區(qū)域52來向驅(qū)動器23請求中斷優(yōu)先級, 并且中斷CPU21。
在步驟S33中,中斷控制器62啟動定時器。換句話說,中斷控制器 62監(jiān)視從中斷控制器62請求中斷優(yōu)先級時起經(jīng)過的時間或者從中斷控制 器62中斷了CPU21時起經(jīng)過的時間。在步驟S34-步驟S35中,中斷控 制器62等待來自驅(qū)動器23的響應(yīng)。當(dāng)中斷控制器62在圖5所示的步驟 S15中的指定時段內(nèi)檢測到來自驅(qū)動器23的響應(yīng),也就是圖5所示的步 驟S15中用于開始中斷的命令時(步驟S34,是),通道裝置32執(zhí)行圖5 所示的步驟S16-步驟S18。
如果在指定時段內(nèi)未檢測到來自驅(qū)動器23的響應(yīng)(步驟S35,是), 則在步驟S36中,中斷控制器62通知通道裝置控制器63:發(fā)生了超時錯 誤。然后通道裝置32取消了在步驟S31到步驟S32中進行的請求。在步 驟S37中,通道裝置32向例如IO裝置5報告通道裝置32未能獲得中 斷優(yōu)先級。必要時則將該錯誤報告給CPU21。
在圖5和圖6所示的處理中,當(dāng)沒有將中斷優(yōu)先級賦予通道裝置時, 驅(qū)動器23不向該通道裝置32通知任何情況。然而,驅(qū)動器23可以通知 未將中斷優(yōu)先級賦予所述通道裝置。例如,當(dāng)在步驟S12中檢測到中斷 時,驅(qū)動器23啟動定時器。如果在指定時段內(nèi)未將中斷優(yōu)先級賦予所述 通道裝置,則驅(qū)動器23向請求所述中斷的通道裝置或者所述通道裝置中 包括的通道裝置控制器63報告所述錯誤。在接收到所述錯誤報告時,通 道裝置32取消中斷優(yōu)先級請求。換句話說,錯誤報告等效于用于取消來 自通道裝置32的請求的命令。
當(dāng)在用于請求所述中斷優(yōu)先級的指定時段內(nèi)從驅(qū)動器23接收到用 于啟動的命令時,通道裝置32將啟動命令設(shè)置為優(yōu)先。在從通道裝置32 請求中斷優(yōu)先級的時點開始到驅(qū)動器23接收到啟動的命令的時點的指定 時段內(nèi),即步驟S11到步驟S15,如果從驅(qū)動器23接收到圖4中描述的 所述啟動命令,則啟動控制器61向通道裝置控制器63報告未能獲得 中斷優(yōu)先級。隨后通道裝置32取消中斷優(yōu)先級請求,因為驅(qū)動器23發(fā) 布的啟動命令優(yōu)先于中斷優(yōu)先級請求。因此,根據(jù)本發(fā)明的一個實施方式的信息處理系統(tǒng)在模擬環(huán)境中實 現(xiàn)了驅(qū)動器與通道裝置之間的中斷控制。因此,在通用平臺中保持了在 傳統(tǒng)主機中實現(xiàn)的功能。例如存在一種結(jié)構(gòu),該結(jié)構(gòu)通過將多通道裝置
用作主機的實施方式而提供了一種將主機中包括的信息處理單元與IO裝
置多通路連接的功能。多通路連接是這樣一種方法在使用第一通道裝 置在信息處理單元與10裝置之間傳送鏈數(shù)據(jù)的過程中,如果所述第一通 道裝置失敗,則所述方法可通過第二通道裝置繼續(xù)進行數(shù)據(jù)傳送。根據(jù) 本發(fā)明的一個實施方式的信息處理系統(tǒng)可提供上述多通路功能。
接下來,將公開使用世代字節(jié)的控制方法。世代字節(jié)用于通過利用
每當(dāng)通道裝置32在CIB中寫入數(shù)據(jù)時就使世代字節(jié)遞增的特性來檢査所 述通道裝置32在CIB區(qū)域中寫入數(shù)據(jù)的處理是否失敗。更具體來說,通 道裝置32通過使用上述Cffi區(qū)域52將控制信息傳送給CPU 21 。通道裝 置32將世代字節(jié)與待傳送的控制信息一起寫入CIB區(qū)域52。世代字節(jié) 是一種序列號,用于識別寫入OB區(qū)域52中的所述控制信息,并且當(dāng)寫 入新的控制信息時增加遞增量1。驅(qū)動器23參照世代字節(jié)從CIB區(qū)域52 讀取控制信息。因此可以避免執(zhí)行對應(yīng)于舊控制信息的處理。如果當(dāng)試 圖第五次寫入CIB區(qū)域52時的世代字節(jié)為"4",則世代字節(jié)指示了向 CIB區(qū)域52的寫入已經(jīng)失敗了一次。如果在試圖第五次寫入時的世代字 節(jié)為"5",則可以避免重復(fù)第五次寫入。如上所述,通過利用世代字節(jié), 可以檢測到通道裝置在Cffi區(qū)域52中的寫入失敗以及在CIB區(qū)域52中 的重復(fù)寫入。
通過使用世代字節(jié),可以在不中斷CPU21的情況下,通過通道裝置 32來實現(xiàn)與圖4所示的啟動處理和圖5所示的用于獲得中斷優(yōu)先級的處 理等效的處理。
圖7是例示了利用世代字節(jié)來啟動通道裝置32的處理的流程圖。當(dāng) 使用世代字節(jié)的時候,執(zhí)行步驟S41來代替圖5所示的步驟S15。在步驟 S41中,通道裝置32將處理結(jié)果和對應(yīng)于該處理結(jié)果的新世代字節(jié)寫入 CIB區(qū)域52。因此,世代字節(jié)增加了增量1 。此后通道裝置5不中斷CPU 21 。
在步驟S42中,驅(qū)動器23通過輪詢來周期性地讀取在Cffi區(qū)域52中配置的世代字節(jié)。驅(qū)動器23在最后一次輪詢中存儲寫入CIB中的世代 字節(jié),并且將在先的世代字節(jié)與在最后一次輪詢中配置的新世代字節(jié)進 行比較。如果在CIB區(qū)域中配置的新世代字節(jié)遞增,則讀取寫入CIB區(qū) 域中的控制信息,也就是通道裝置32執(zhí)行的處理結(jié)果。然后驅(qū)動器23 通知通道裝置32:中斷完成。
圖8是例示了在將世代字節(jié)用于請求中斷優(yōu)先級時的處理的流程 圖。當(dāng)使用世代字節(jié)時,通道裝置32將中斷優(yōu)先級請求與新世代字節(jié)相 關(guān)聯(lián),并且在取代步驟Sll的步驟S51中將該中斷優(yōu)先級請求和該世代 字節(jié)一起寫入CIB區(qū)域52中。
在步驟S52中,驅(qū)動器23通過輪詢來周期性地讀取在CIB區(qū)域52 中配置的世代字節(jié)。當(dāng)驅(qū)動器23檢測到在CIB區(qū)域52中配置的世代字 節(jié)遞增時,驅(qū)動器23在步驟S53中從CIB區(qū)域52讀取通道裝置32請求 的中斷優(yōu)先級請求。然后驅(qū)動器23執(zhí)行步驟S14中的處理以及后續(xù)步驟。
取代執(zhí)行步驟S17,通道裝置32在步驟S54中將處理結(jié)果和新世代 字節(jié)寫入CIB區(qū)域52。在這種情況中,通道裝置32不中斷CPU21。
驅(qū)動器23通過在步驟S55中輪詢來周期性地讀取世代字節(jié)。當(dāng)驅(qū)動 器23檢測到世代字節(jié)遞增時,驅(qū)動器23在步驟S56中從CIB區(qū)域讀取 通道裝置32執(zhí)行的處理結(jié)果。
可通過諸如個人計算機或者工作站的計算機執(zhí)行預(yù)備程序來實現(xiàn)在 此描述的方法和處理。通過將該程序記錄在諸如硬盤、軟盤、CD-ROM、 MO或者DVD的計算機可讀記錄介質(zhì)上,并且由計算機從所述記錄介質(zhì) 上讀取所述程序,來執(zhí)行所述程序。所述程序可以是能夠通過諸如互聯(lián) 網(wǎng)的網(wǎng)絡(luò)來分布的傳送媒介。
已經(jīng)參考一個或者更多個特定實施方式描述了本發(fā)明。然而,應(yīng)當(dāng) 理解發(fā)明并不限于這些特定實施方式,并且可在所附權(quán)利要求所限定 的本發(fā)明的范圍內(nèi)對這些實施方式進行大量修改。
本申請基于并且要求在2008年2月27日提交的在先日本專利申請 第2008-45888號的優(yōu)先權(quán),在此通過引用并入該申請的全部內(nèi)容。
權(quán)利要求
1、一種與IO裝置相連接的信息處理設(shè)備,所述信息處理設(shè)備包括處理單元;通道裝置,所述通道裝置在所述信息處理設(shè)備與所述IO裝置之間傳送數(shù)據(jù),所述通道裝置具有用于啟動該通道裝置的啟動控制器;存儲裝置,所述存儲裝置具有存儲所述通道裝置執(zhí)行的操作的結(jié)果的預(yù)定區(qū)域;中斷控制器,所述中斷控制器對所述通道裝置向所述處理單元所請求的中斷進行控制;通道裝置控制器,所述通道裝置控制器對所述通道裝置進行控制;以及驅(qū)動器,所述驅(qū)動器通過所述通道裝置將對第一中斷的請求寫入所述存儲裝置的所述預(yù)定區(qū)域內(nèi),并且通過使用所述中斷控制器來向所述處理單元請求所述第一中斷,其中,在所述處理單元檢測到對所述第一中斷的請求時,所述處理單元執(zhí)行用于讀取所述預(yù)定區(qū)域中存儲的信息并且請求所述第一中斷的驅(qū)動器命令。
2、 根據(jù)權(quán)利要求1所述的信息處理設(shè)備,其中,所述通道裝置執(zhí)行 如下驅(qū)動器命令請求所述第一中斷,將所述第一中斷的結(jié)果寫入所述 預(yù)定區(qū)域中,并且通過使用所述中斷控制器來向所述處理單元請求第二 中斷;并且其中,當(dāng)所述處理單元檢測到對所述第二中斷的請求時,所述處理 單元從所述預(yù)定區(qū)域中讀取所述第一中斷的結(jié)果,并且所述處理單元向 所述中斷控制器通知所述第二中斷的完成。
3、 根據(jù)權(quán)利要求1所述的信息處理設(shè)備,其中,所述處理單元在由 所述通道裝置做出的對所述第一中斷的請求未被接受時執(zhí)行用于取消所 述第一中斷的驅(qū)動器命令。
4、 根據(jù)權(quán)利要求3所述的信息處理設(shè)備,其中,當(dāng)所述通道裝置請求的所述第一中斷未被接受時,所述驅(qū)動器將錯誤報告給所述通道裝置 控制器。
5、 一種信息處理系統(tǒng),所述信息處理系統(tǒng)包括-信息處理設(shè)備,所述信息處理設(shè)備具有 處理單元;IO裝置,所述IO裝置與所述信息處理設(shè)備相連接;通道裝置,所述通道裝置在所述信息處理設(shè)備與所述10裝置之間傳 送數(shù)據(jù),所述通道裝置具有啟動該通道裝置的啟動控制器;存儲裝置,所述存儲裝置具有存儲所述通道裝置執(zhí)行的操作的結(jié)果 的預(yù)定區(qū)域;中斷控制器,所述中斷控制器對所述通道裝置向所述處理單元請求 的中斷進行控制;通道裝置控制器,所述通道裝置控制器對所述通道裝置進行控制;以及驅(qū)動器,所述驅(qū)動器通過所述通道裝置將對第一中斷的請求寫入所 述存儲裝置的所述預(yù)定區(qū)域內(nèi),并且通過使用所述中斷控制器來向所述 處理單元請求所述第一中斷,其中,在所述處理單元檢測到對所述第一中斷的請求時,所述處理 單元執(zhí)行用于讀取所述預(yù)定區(qū)域中存儲的信息并且請求所述第一中斷的 驅(qū)動器命令。
6、 根據(jù)權(quán)利要求5所述的信息處理系統(tǒng),其中,所述通道裝置執(zhí)行如下驅(qū)動器命令請求所述第一中斷,將 所述第一中斷的結(jié)果寫入所述預(yù)定區(qū)域中,并且通過使用所述中斷控制 器來向所述處理單元請求第二中斷;并且其中,當(dāng)所述處理單元檢測到對所述第二中斷的請求時,所述處理 單元從所述預(yù)定區(qū)域中讀取所述第一中斷的結(jié)果,并且所述處理單元向 所述中斷控制器通知所述第二中斷的完成。
7、 根據(jù)權(quán)利要求5所述的信息處理系統(tǒng),其中,所述處理單元在所 述通道裝置做出的對所述第一中斷的請求未被接受時執(zhí)行用于取消所述第一中斷的驅(qū)動器命令。
8、 根據(jù)權(quán)利要求7所述的信息處理系統(tǒng),其中,當(dāng)所述通道裝置所 請求的所述第一中斷未被接受時,所述驅(qū)動器將錯誤報告給所述通道裝 置控制器。
9、 一種與10裝置相連接的信息處理設(shè)備的控制方法,所述信息處 理設(shè)備具有處理單元、存儲裝置、包括中斷控制器的通道裝置,所述通 道裝置在所述信息處理設(shè)備與所述IO裝置之間傳送數(shù)據(jù),所述方法包括 以下步驟所述通道裝置將對第一中斷的請求寫入所述存儲裝置的預(yù)定區(qū)域內(nèi);使用所述中斷控制器向所述處理單元請求所述第一 中斷; 在所述處理單元檢測到對所述第一中斷的請求時,所述處理單元從 所述預(yù)定區(qū)域中讀取對所述第一中斷的請求;以及當(dāng)所述通道裝置請求的所述第一中斷因不存在被所述處理單元設(shè)定 得優(yōu)先于對所述第一中斷的請求的其它處理而被接受時,使用所述中斷 控制器來執(zhí)行所述第一中斷,而當(dāng)對所述第一中斷的請求因存在被設(shè)定 得優(yōu)先于對所述第一中斷的請求的其它處理而未被接受時,在所述處理 單元執(zhí)行所述其它處理后,使用所述中斷控制器來執(zhí)行所述第一中斷。
10、 根據(jù)權(quán)利要求9所述的控制方法,該控制方法進一步包括以下步驟所述通道裝置執(zhí)行對所述第一 中斷的請求;所述通道裝置將所述第一中斷的結(jié)果寫入所述預(yù)定區(qū)域中; 所述通道裝置使用所述中斷控制器來向所述處理單元請求第二中斷;當(dāng)所述處理單元檢測到所述第二中斷時,從所述預(yù)定區(qū)域中讀取所 述第一中斷的結(jié)果;以及所述處理單元向所述中斷控制器通知所述第二中斷的完成。
11、 根據(jù)權(quán)利要求10所述的控制方法,該控制方法進一步包括以下 步驟當(dāng)所述處理單元未接受所述通道裝置請求的所述第一中斷時,取消 所述第一中斷。
12、根據(jù)權(quán)利要求ll所述的控制方法,該控制方法進一步包括以下步驟當(dāng)所述處理單元未接受所述通道驅(qū)動器請求的所述第一 中斷時,將 錯誤報告給所述通道裝置控制器。
全文摘要
本發(fā)明涉及信息處理設(shè)備及其控制方法。信息處理設(shè)備與IO裝置相連接,其包括處理單元;通道裝置,該通道裝置具有啟動該通道裝置的啟動控制器,并且在信息處理設(shè)備與IO裝置之間傳送數(shù)據(jù);存儲裝置,其具有存儲通道裝置所執(zhí)行的操作的結(jié)果的預(yù)定區(qū)域;中斷控制器,其對通道裝置向處理單元請求的中斷進行控制;通道裝置控制器,其對通道裝置進行控制;以及驅(qū)動器,其通過通道裝置將對第一中斷的請求寫入存儲裝置的所述預(yù)定區(qū)域內(nèi),并且使用中斷控制器來向處理單元請求第一中斷,其中,在處理單元檢測到對第一中斷的請求時,該處理單元執(zhí)行用于讀取所述預(yù)定區(qū)域中存儲的信息并且請求第一中斷的驅(qū)動器命令。
文檔編號G06F13/12GK101520758SQ200910118090
公開日2009年9月2日 申請日期2009年2月27日 優(yōu)先權(quán)日2008年2月27日
發(fā)明者西野秀治 申請人:富士通株式會社