專利名稱:由主機(jī)總線適配器提供狀態(tài)信息的方法、裝置和程序存儲設(shè)備的制作方法
技術(shù)領(lǐng)域:
本發(fā)明一般地涉及輸入/輸出系統(tǒng),特別是涉及由主機(jī)總線適配器提供狀態(tài)信息的方法、裝置和程序存儲設(shè)備。
背景技術(shù):
在數(shù)據(jù)處理系統(tǒng)中提供通信適配器和輸入/輸出(I/O)控制器以在主機(jī)系統(tǒng)和網(wǎng)絡(luò)或外圍設(shè)備之間傳送數(shù)據(jù)。主機(jī)系統(tǒng)的存儲器和處理器由系統(tǒng)或I/O總線或由網(wǎng)絡(luò)耦接于該適配器或控制器。
隨著主機(jī)系統(tǒng)中的中央處理單元變得更快,已增大了涉及局部寄存器或高速緩存存儲器的處理器操作的速度與主機(jī)系統(tǒng)和主存儲器或外圍設(shè)備之間的訪問速度二者的差異。結(jié)果,為了使數(shù)據(jù)處理系統(tǒng)更好地利用更快的處理器,需要提供更有效的方法在主機(jī)系統(tǒng)和網(wǎng)絡(luò)或外圍設(shè)備之間傳送數(shù)據(jù)。
通常在主計(jì)算機(jī)系統(tǒng)和諸如盤驅(qū)動器、帶驅(qū)動器或打印機(jī)等外圍設(shè)備之間通過數(shù)據(jù)通信總線往返傳送數(shù)據(jù)。數(shù)據(jù)通信總線將主機(jī)和外圍設(shè)備耦接在一起,使能在系統(tǒng)和外圍設(shè)備之間交換數(shù)據(jù)。一類數(shù)據(jù)通信總線是小型計(jì)算機(jī)系統(tǒng)互連(SCSI)數(shù)據(jù)總線。SCSI數(shù)據(jù)總線能以不同方式配置并有若干操作方式。
SCSI協(xié)議指定發(fā)起方和目標(biāo)方之間的通信,發(fā)起方是發(fā)出SCSI命令的設(shè)備,而目標(biāo)方是執(zhí)行SCSI命令的設(shè)備。SCSI數(shù)據(jù)總線經(jīng)由主機(jī)適配器與發(fā)起方相連,經(jīng)由設(shè)備控制器與目的方設(shè)備相連。每個設(shè)備控制器與連接到SCSI總線的設(shè)備的具體類型相匹配。
當(dāng)在發(fā)起方和多個目標(biāo)設(shè)備中的任何一個之間往返傳送信息時,一個握手協(xié)議用于控制在連接二者之間的數(shù)據(jù)總線上數(shù)據(jù)的傳送。
有許多較高層協(xié)議(ULP)將SCSI映射到某個物理接口。FCP是將SCSI映射到光纖通道的協(xié)議,iSCSI將SCSI映射到以太網(wǎng)。發(fā)起方是一個代理,它發(fā)起一個交換并向目標(biāo)方發(fā)出一個SCSI命令。
由操作系統(tǒng)發(fā)起的向一個外圍存儲器寫數(shù)據(jù)塊的SCSI I/O可以例如使用稱作信息單元(IU)的命令幀在主機(jī)和目標(biāo)之間發(fā)起一個FCP交換。然而,如上文表明的那樣,F(xiàn)CP只是一個舉例。在交換期間內(nèi),含有一個或多個序列的幀組會用于從主機(jī)向目標(biāo)傳送數(shù)據(jù)。該目標(biāo)會回答它已準(zhǔn)備好。發(fā)起方以發(fā)出一個數(shù)據(jù)描述符信息單元作為響應(yīng)。然后,發(fā)起方發(fā)送一個或多個被請求的數(shù)據(jù)信息單元。目標(biāo)方以發(fā)送一個命令狀態(tài)信息單元表明發(fā)送請求完成作為響應(yīng)。
發(fā)起具有目標(biāo)應(yīng)答的FCP交換、發(fā)起方以數(shù)據(jù)描述符信息作出響應(yīng)和目標(biāo)方發(fā)出命令狀態(tài)信息,這些可以以不同方式加以組合以使協(xié)議更有效。然后目標(biāo)方必須接受該數(shù)據(jù)并發(fā)出某種響應(yīng)。如果未收到差錯或異常,則該響應(yīng)指出正常狀態(tài)。
典型的目標(biāo)方是某種存儲系統(tǒng)。一個目標(biāo)方往往包含一個主機(jī)總線適配器(HBA),它處理與主機(jī)(如PC)或一個專門硬件進(jìn)行通信的協(xié)議。HBA將通知SCSI命令的主機(jī)并從主機(jī)得知從哪里得到數(shù)據(jù)或向哪里放置數(shù)據(jù)。
對于一個寫命令,HBA必須通知主機(jī),發(fā)送方想要進(jìn)行寫操作。如果該主機(jī)是一個復(fù)雜的存儲系統(tǒng),它將需要確定被寫的扇區(qū)是否已在寫高速緩存中以及要寫該數(shù)據(jù)的確切位置。該主機(jī)還可能需要對數(shù)據(jù)做某種格式化。主機(jī)將與HBA通信,告知往哪里放置數(shù)據(jù),然后HBA將存儲數(shù)據(jù)。
在當(dāng)今的環(huán)境中,主機(jī)將需要通知HBA,該操作是成功的,如果HBA未檢測到差錯,則發(fā)回一個好狀態(tài)作為響應(yīng)。在主機(jī)和HBA之間的這一額外交互作用對于主機(jī)和HBA二者都需顯著的處理和握手工作量。
可以看到,需要一種方法、裝置和程序存儲設(shè)備,用于由主機(jī)總線自動提供狀態(tài)信息(status),直至檢測到一個差錯。
發(fā)明內(nèi)容
為了克服上述現(xiàn)有技術(shù)中的限制并克服閱讀和理解本說明后變得顯然的其他限制,本發(fā)明公開一種方法、裝置和程序存儲設(shè)備,用于由主機(jī)總線適配器呈現(xiàn)狀態(tài)信息直至檢測到差錯。
通過允許HBA自動回應(yīng)發(fā)起方而無需等待主機(jī)告知HBA這樣做,本發(fā)明解決了上述問題。在一個實(shí)施例中,這是通過專用硬件完成的,它檢驗(yàn)數(shù)據(jù)和控制邏輯,并快速確定在數(shù)據(jù)從HBA到主機(jī)的傳送過程中是否發(fā)生了差錯。如果檢測到差錯,則向HBA發(fā)出一個處理那個特定端口信號。HBA立即停止自動向發(fā)起方發(fā)回狀態(tài)信息,并且現(xiàn)在要求主機(jī)對每個操作單獨(dú)通信,告知主機(jī)總線適配器向發(fā)起方呈現(xiàn)什么狀態(tài)信息。
根據(jù)本發(fā)明原理的程序存儲設(shè)備包括進(jìn)行下列操作的方法經(jīng)由主機(jī)總線適配器向主機(jī)傳送數(shù)據(jù)、在主機(jī)處進(jìn)行數(shù)據(jù)傳輸驗(yàn)證、在主機(jī)處確定數(shù)據(jù)傳輸是否成功以及當(dāng)數(shù)據(jù)傳輸成功時由主機(jī)總線適配器自動發(fā)送狀態(tài)信息,否則使主機(jī)總線適配器等待來自主機(jī)的關(guān)于數(shù)據(jù)傳輸?shù)臓顟B(tài)類型標(biāo)識。
在本發(fā)明的另一實(shí)施例中,提供了另一個程序存儲設(shè)備。這一程序存儲設(shè)備包括進(jìn)行下列操作的方法在主機(jī)處從主機(jī)總線適配器接收數(shù)據(jù)、在主機(jī)處進(jìn)行數(shù)據(jù)傳輸驗(yàn)證、在主機(jī)處確定數(shù)據(jù)傳輸是否成功以及當(dāng)確定數(shù)據(jù)傳輸不成功時使主機(jī)總線適配器等待來自主機(jī)的關(guān)于數(shù)據(jù)傳輸?shù)臓顟B(tài)類型標(biāo)識。
在本發(fā)明的另一實(shí)施例中,提供了另一個程序存儲設(shè)備。這一程序存儲設(shè)備包括進(jìn)行下列操作的方法經(jīng)由主機(jī)總線適配器向主機(jī)傳送數(shù)據(jù)和從主機(jī)適配器自動發(fā)出狀態(tài)信息,直至在主機(jī)總線適配器處接收一個來自主機(jī)的信息,該信號用于禁止主機(jī)總線適配器自動傳送狀態(tài)信息。
在本發(fā)明的另一實(shí)施例中,提供了一個輸入/輸出系統(tǒng)。該輸入/輸出系統(tǒng)包括用于傳送數(shù)據(jù)的主機(jī)總線適配器和與主機(jī)總線適配器耦接的主機(jī),該主機(jī)用于進(jìn)行數(shù)據(jù)傳輸驗(yàn)證并確定數(shù)據(jù)傳輸是否成功,其中主機(jī)總線適配器自動發(fā)送狀態(tài)信息,直至主機(jī)確定數(shù)據(jù)傳輸不成功并向主機(jī)總線適配器發(fā)送一個信號以禁止主機(jī)總線適配器自動傳送狀態(tài)信息。
在本發(fā)明的另一實(shí)施例中,提供了一個主機(jī)。該主機(jī)包括主機(jī)總線適配器接口,用于從主機(jī)總線適配器接收數(shù)據(jù),與主機(jī)總線適配器接口耦接的處理器,用于進(jìn)行數(shù)據(jù)傳輸驗(yàn)證,以及與處理器耦接的端口,用于當(dāng)確定數(shù)據(jù)傳輸不成功時傳送一個信號,使主機(jī)適配器等待關(guān)于數(shù)據(jù)傳輸?shù)臓顟B(tài)類型標(biāo)識。
在本發(fā)明的另一實(shí)施例中,提供了一個主機(jī)總線適配器。該主機(jī)總線適配器包括協(xié)議處理接口,用于向主機(jī)傳輸數(shù)據(jù),以及與協(xié)議處理接口耦接的處理器,用于自動發(fā)送狀態(tài)信息直至接收一個禁止自動傳送狀態(tài)信息的信號。
在本發(fā)明的另一實(shí)施例中,提供了一種方法,用于自動呈現(xiàn)來自主機(jī)總線適配器的狀態(tài)信息直至檢測到一個差錯。該方法包括經(jīng)由主機(jī)總線適配器向主機(jī)傳送數(shù)據(jù)、在主機(jī)處進(jìn)行數(shù)據(jù)傳輸驗(yàn)證、在主機(jī)處確定數(shù)據(jù)傳輸是否成功以及當(dāng)數(shù)據(jù)傳輸成功時由主機(jī)總線適配器自動發(fā)送狀態(tài)信息,否則使主機(jī)總線適配器等待來自主機(jī)的關(guān)于數(shù)據(jù)傳輸?shù)臓顟B(tài)類型標(biāo)識。
在本發(fā)明的另一實(shí)施例中,提供了一個輸入/輸出系統(tǒng)。該輸入/輸出系統(tǒng)包括傳輸數(shù)據(jù)裝置和與傳輸裝置耦接的用于進(jìn)行數(shù)據(jù)傳輸驗(yàn)證及確定數(shù)據(jù)傳輸是否成功的裝置,其中當(dāng)進(jìn)行數(shù)據(jù)傳輸驗(yàn)證的裝置確定數(shù)據(jù)傳輸成功時,傳輸數(shù)據(jù)裝置發(fā)送狀態(tài)信息,否則傳輸數(shù)據(jù)裝置等待來自主機(jī)的關(guān)于數(shù)據(jù)傳輸?shù)臓顟B(tài)類型標(biāo)識。
在本發(fā)明的另一實(shí)施例中,提供了一個主機(jī)。該主機(jī)包括從主機(jī)總線適配器接收數(shù)據(jù)的裝置、與主機(jī)總線適配器耦接的用于在主機(jī)處進(jìn)行數(shù)據(jù)傳輸驗(yàn)證的裝置以及與進(jìn)行數(shù)據(jù)傳輸驗(yàn)證的裝置耦接的當(dāng)確定數(shù)據(jù)傳輸不成功時傳送一個信號的裝置,該信號使主機(jī)總線適配器等待關(guān)于數(shù)據(jù)傳輸?shù)臓顟B(tài)類型標(biāo)識。
在本發(fā)明的另一實(shí)施例中,提供了一個主機(jī)總線適配器。該主機(jī)總線適配器包括向主機(jī)傳送數(shù)據(jù)的裝置和與傳送數(shù)據(jù)裝置耦接的自動發(fā)送狀態(tài)信息直至收到禁止自動傳送狀態(tài)信息的信號的裝置。
在這里所附的并作為本申請一部分的權(quán)利要求中特別指出了這些和其他各種優(yōu)點(diǎn)以及表征本發(fā)明的新特征。
現(xiàn)在將參考附圖中顯示的優(yōu)選實(shí)施例,只以舉例方式描述本發(fā)明,在這些附圖中,相似參考數(shù)字代表各圖中的相對應(yīng)部件,這些附圖中圖1顯示根據(jù)本發(fā)明優(yōu)選實(shí)施例的輸入/輸出(I/O)系統(tǒng);圖2顯示的系統(tǒng)用于自動呈現(xiàn)來自主機(jī)總線適配器的狀態(tài)信息直至檢測到差錯;圖3顯示系統(tǒng)差錯/條件驗(yàn)證系統(tǒng);圖4顯示方法流程圖,該方法用于自動呈現(xiàn)來自主機(jī)總線適配器的狀態(tài)信息直至檢測到差錯;圖5顯示一個系統(tǒng),其中可在一個程序存儲設(shè)備中具體體現(xiàn)參考圖1-4所示過程。
具體實(shí)施例方式
本發(fā)明提供由主機(jī)總線適配器自動呈現(xiàn)狀態(tài)信息直至檢測到差錯的方法、裝置和程序存儲設(shè)備。這一發(fā)明允許主機(jī)總線適配器(HBA)自動回應(yīng)發(fā)起方而無需等待主機(jī)告知HBA這樣做。主機(jī)檢驗(yàn)數(shù)據(jù)和控制邏輯并快速確定在由HBA向主機(jī)傳輸數(shù)據(jù)過程中是否發(fā)生了差錯。如果檢測到差錯,則向HBA發(fā)出一個處理那個特定端口的信號。HBA立即停止自動向發(fā)起方發(fā)回狀態(tài)信息,并且現(xiàn)在要求主機(jī)對每個操作單獨(dú)通信,告知HBA向發(fā)起方呈現(xiàn)什么狀態(tài)信息。
圖1顯示根據(jù)本發(fā)明優(yōu)選實(shí)施例的輸入/輸出(I/O)系統(tǒng)100。在圖1中,處理器110與高速緩存存儲器120耦接。高速緩存存儲器120是為改進(jìn)處理器性能而提供的高速存儲器。高速緩存120位于處理器110和主系統(tǒng)存儲器150之間。I/O設(shè)備130用于提供各種服務(wù),如存儲、圖形處理、網(wǎng)絡(luò)連接、打印等。系統(tǒng)總線140通常稱作局部(local)總線,提供I/O設(shè)備130、處理器110及存儲器150之間的連接。特別是,局部總線140將處理器110連接于主存儲器150及高速緩存120。I/O設(shè)備130通過主機(jī)總線適配器(HBA)160及I/O總線162與局部總線140耦接。I/O總線162通過HBA 160將各種外圍設(shè)備連接于處理器110。
操作系統(tǒng)170在處理器110上運(yùn)行并用于提供對圖1中I/O系統(tǒng)100內(nèi)各種部件的協(xié)調(diào)和控制。操作系統(tǒng)170可以是市場上可得到的操作系統(tǒng),如可以International Business Machines Corporation得到的OS/2?!癘S/2”是International Business Machines Corporation的一個商標(biāo)。操作系統(tǒng)170和應(yīng)用或程序180所用指令可位于介質(zhì)設(shè)備182、184上,并可被加載到主存儲器150中供處理器執(zhí)行。
在設(shè)備130和處理器110之間的通信使用總線協(xié)議和中斷142兩種方式??偩€協(xié)議用于定義總線事務(wù)(transaction)的語義和仲裁總線的使用。一個總線事務(wù)至少包括發(fā)送一個地址和接收或發(fā)送數(shù)據(jù)。例如,讀事務(wù)將數(shù)據(jù)從存儲器150傳送給處理器110或I/O設(shè)備130,而寫事務(wù)將數(shù)據(jù)從處理器110或I/O設(shè)備130傳送給存儲器150。
主機(jī)總線適配器(HBA)160用于將輸入/輸出外圍設(shè)備,如介質(zhì)設(shè)備182、184,連接到處理器110。I/O設(shè)備130可包括例如遵從SCSI、光纖通道、以太網(wǎng)或InfinibandTMTrade Association(www.infinibandta,com)標(biāo)準(zhǔn)的I/O設(shè)備。HBA 160可用于例如實(shí)現(xiàn)一個由美國國家標(biāo)準(zhǔn)協(xié)會(ANSI)X3T9.2委員會定義的小型計(jì)算機(jī)系統(tǒng)接口(SCSI)高速并行接口。一個接口可將處理器110連接于介質(zhì)設(shè)備184、184,如硬盤驅(qū)動器、打印機(jī)以及其他設(shè)備。多個介質(zhì)設(shè)備182、184可以由一個I/O總線162耦接。I/O總線162是一個并行總線,它攜帶數(shù)據(jù)和控制信號從主機(jī)總線適配器160到介質(zhì)設(shè)備182、184。例如,介質(zhì)設(shè)備182、184可以是SCSI設(shè)備,它是使用SCSI標(biāo)準(zhǔn)與處理器110交換數(shù)據(jù)和控制信號的外圍設(shè)備。
一個用于存儲數(shù)據(jù)的外圍設(shè)備系統(tǒng)稱作獨(dú)立磁盤冗余陣列(RAID)。RAID是一種數(shù)據(jù)存儲方法,其中數(shù)據(jù)以及用于糾錯的信息,如奇偶校驗(yàn)位或Hamming(漢明)碼,分布于兩個或更多個硬盤驅(qū)動器184當(dāng)中,以改善性能和/或數(shù)據(jù)完整性。硬盤驅(qū)動器184可由陣列管理軟件和主機(jī)總線適配器160控制,后者處理糾錯。
本領(lǐng)域普通技術(shù)人員將會理解,圖1中的硬件可根據(jù)具體實(shí)現(xiàn)而改變。通過直接部件互連或通過附加板,可對局部總線140補(bǔ)充其他連接。通過直接部件連接,網(wǎng)絡(luò)適配器186、主機(jī)總線適配器160以及擴(kuò)展總線接口188可與局部總線140連接。與此相反,例如圖形適配器190可通過插入擴(kuò)展槽的附加板連接于局部總線140。在所描述的例子中,主機(jī)總線適配器160為介質(zhì)設(shè)備182、184,如硬盤驅(qū)動器、帶驅(qū)動器、CD-ROM驅(qū)動器和數(shù)字視頻盤只讀存儲器驅(qū)動器(DVD-ROM),提供連接。典型地局部總線140實(shí)現(xiàn)將支持例如三個或四個PCI擴(kuò)展槽或附加連接器192。然而,本領(lǐng)域技術(shù)人員將會理解,所描繪的例子不意味著針對本發(fā)明的體系結(jié)構(gòu)限制。例如,本發(fā)明的處理器可應(yīng)用于多處理器數(shù)據(jù)處理系統(tǒng)。
圖2顯示根據(jù)本發(fā)明的優(yōu)選實(shí)施例自動呈現(xiàn)來自主機(jī)總線適配器的狀態(tài)信息直至檢測到差錯的系統(tǒng)200。圖2顯示一個HBA 210,它經(jīng)由標(biāo)準(zhǔn)總線230,如PCI、PCIX等,連接于主機(jī)220。HBA 210包括處理器212、存儲器214和用于處理主機(jī)220與HBA 210之間數(shù)據(jù)傳輸?shù)膮f(xié)議處理接口216。提供了一個鏈路218,如用于光纖的鏈路。主機(jī)220包括處理器222和用于提供直接存儲器訪問和格式化的HBA接口224。HBA接口224還提供對主機(jī)220其他部分的訪問226。主機(jī)220進(jìn)一步包括端口228,用于將自動狀態(tài)禁止信號240傳送給HBA210。
每個主機(jī)220與一個接口卡耦接,如主機(jī)總線適配器210。如前所述,主機(jī)總線適配器210有處理器212和存儲器214,如ROM或EEPROM。在一個實(shí)施例中,至少一部分存儲器214用于保持從主機(jī)220下載的適配器代碼。在一個實(shí)施例中,每個主機(jī)總線適配器210位于一個單獨(dú)的電路板上。在另一個實(shí)施例中,不只一個主機(jī)總線適配器210位于一個電路板上。通常每個主機(jī)總線適配器210連接于一個局部總線230,如PCI總線。
在圖2中,HBA 210直接解釋一個協(xié)議并提供一個應(yīng)用接口,以存儲和取回要經(jīng)由鏈路218發(fā)送的數(shù)據(jù)。某種主機(jī)230將與這一HBA210通信。這一主機(jī)220可以是PC或服務(wù)器,或者是具有微處理器、存儲器以及邏輯的一套電子裝置,該邏輯能與一個或多個HBA 210接口,并能與主機(jī)220內(nèi)的內(nèi)部結(jié)構(gòu)接口。例如,PIC卡能被設(shè)計(jì)成向HBA 210提供微處理器212和其他專用集成電路,這些電路能進(jìn)一步格式化HBA數(shù)據(jù)和與PCI總線230通信。然后,這樣的PCI卡能插入具有其他部件(包括類似的卡)的服務(wù)器并能作為存儲器、帶或打印服務(wù)器。
在這樣的環(huán)境中,性能是很重要的,消除任何可能的開銷將增加PCI卡每秒鐘能完成的操作次數(shù)。主機(jī)220和HBA 210二者通常都含有微處理器222、212,它們協(xié)助處理接口協(xié)議以及兩個部件之間的協(xié)議。當(dāng)提高性能,重要的是找出并行活動的途徑和使跨越所示標(biāo)準(zhǔn)總線230的事務(wù)數(shù)量達(dá)到最小。
根據(jù)本發(fā)明的優(yōu)選實(shí)施例,HBA 210可在處理一個命令(如SCSI命令)之后經(jīng)由鏈路218自動發(fā)送狀態(tài)信息。否則,主機(jī)必須處理已無差錯地發(fā)生信息傳輸這一事實(shí),然后必須向HBA 210發(fā)送一個命令,以通知HBA 210它應(yīng)向發(fā)起方(例如主機(jī)210)給出正常結(jié)束狀態(tài)信息。
圖3顯示根據(jù)本發(fā)明優(yōu)選實(shí)施例的系統(tǒng)差錯/條件驗(yàn)證系統(tǒng)。本發(fā)明優(yōu)選實(shí)施例消除了否則的話兩個處理器必須進(jìn)行的握手和處理。該系統(tǒng)要求在主機(jī)上存在所有好的差錯檢驗(yàn)?zāi)芰ΑK?,?dāng)數(shù)據(jù)從HBA向主機(jī)傳送時,數(shù)據(jù)被徹底檢驗(yàn)(310)。該主機(jī)還進(jìn)行檢驗(yàn)以保證不發(fā)生橫斷(traverse)在到數(shù)據(jù)存儲器路上的狀態(tài)機(jī)和中間緩存器(320)。由一個或(OR)門,結(jié)合來自處理器的異常條件(condition)以及災(zāi)難性差錯條件,如時鐘檢驗(yàn)、總線掛起等,對所有這些檢驗(yàn)進(jìn)行處理(330)。因此,這些檢驗(yàn)310-330中任何一個被認(rèn)定(assert),都將使主機(jī)認(rèn)定一個發(fā)給HBA的信號(340),從而禁止HBA發(fā)送自動狀態(tài)信息。然后,如上文解釋的那樣,主機(jī)將負(fù)責(zé)進(jìn)行差錯恢復(fù),負(fù)責(zé)處理每個命令和確定關(guān)于那個命令所要發(fā)送的狀態(tài)信息。某些命令可能不受檢測到的差錯的影響,某些命令可能有壞狀態(tài)的信息返回并讓發(fā)起重試。
圖4顯示根據(jù)本發(fā)明優(yōu)選實(shí)施例自動呈現(xiàn)(present)來自主機(jī)總線適配器的狀態(tài)信息直至檢測到差錯的方法400。首先,在處理一個命令之后,主機(jī)進(jìn)行數(shù)據(jù)傳輸認(rèn)證(validation)(410)。這種認(rèn)證包括檢驗(yàn)數(shù)據(jù)以查找差錯、和其后檢驗(yàn)操作狀態(tài)和條件指示符以查找差錯條件。在步驟420,確定是否檢測到差錯或一個條件或狀態(tài)是否被違反。如果不是(422),則HBA被配置成自動向發(fā)起方發(fā)送狀態(tài)信息(430)。如果是(424),則處理該傳輸?shù)腍BA發(fā)送一個信號以禁止自動狀態(tài)傳送(440)。HBA停止自動向發(fā)起方發(fā)送狀態(tài)信息(450)。然后,主機(jī)被要求通告(communicate)為每個操作向發(fā)起方呈現(xiàn)什么狀態(tài)(460)。
圖5顯示根據(jù)本發(fā)明優(yōu)選實(shí)施例的系統(tǒng)500,其中,參考圖1-4顯示的過程可具體體現(xiàn)在一個計(jì)算機(jī)可讀介質(zhì)或載體中,如圖5中所示一個或多個固定的和/或可卸的數(shù)據(jù)存儲設(shè)備568,或其他數(shù)據(jù)存儲或數(shù)據(jù)通信設(shè)備。表現(xiàn)計(jì)算機(jī)可讀存儲設(shè)備568上體現(xiàn)的過程的計(jì)算機(jī)程序590可被加載到存儲器592中或系統(tǒng)500中,例如處理器596中,以配置圖5中的系統(tǒng)500供執(zhí)行。計(jì)算機(jī)程序590包含一組指令,當(dāng)由圖5的系統(tǒng)500讀取和執(zhí)行時,使系統(tǒng)500進(jìn)行必要的步驟,以執(zhí)行本發(fā)明優(yōu)選實(shí)施例的步驟或元素。
權(quán)利要求
1.一種由計(jì)算機(jī)可讀的程序存儲設(shè)備,該介質(zhì)有形地體現(xiàn)可由計(jì)算機(jī)執(zhí)行的一個或多個指令程序,以實(shí)現(xiàn)一種控制方法,對由主機(jī)總線適配器進(jìn)行的狀態(tài)消息傳送加以控制,該方法包含在主機(jī)處接收來自主機(jī)總線適配器的數(shù)據(jù);在主機(jī)處進(jìn)行數(shù)據(jù)傳輸認(rèn)證;在主機(jī)處確定數(shù)據(jù)傳輸是否成功;以及當(dāng)確定數(shù)據(jù)傳輸不成功時,使主機(jī)總線適配器等待來自主機(jī)的關(guān)于數(shù)據(jù)傳輸?shù)臓顟B(tài)類型標(biāo)識。
2.權(quán)利要求1的程序存儲設(shè)備,其中,在主機(jī)處進(jìn)行數(shù)據(jù)傳輸認(rèn)證進(jìn)一步包含確定數(shù)據(jù)是否是被無差錯傳輸。
3.權(quán)利要求1的程序存儲設(shè)備,其中,在主機(jī)處進(jìn)行數(shù)據(jù)傳輸認(rèn)證進(jìn)一步包含檢驗(yàn)操作狀態(tài)和條件指示符。
4.權(quán)利要求3的程序存儲設(shè)備,其中,檢驗(yàn)條件指示符進(jìn)一步包含檢驗(yàn)處理器異常條件和災(zāi)難性差錯條件。
5.權(quán)利要求3的程序存儲設(shè)備,其中,檢驗(yàn)操作狀態(tài)進(jìn)一步包含檢驗(yàn)數(shù)據(jù)傳輸其間橫斷在傳輸路徑上的狀態(tài)機(jī)和中間緩存器以查找差錯。
6.權(quán)利要求1的程序存儲設(shè)備,其中在主機(jī)處確定數(shù)據(jù)傳輸是否成功進(jìn)一步包含對指示數(shù)據(jù)傳輸是否無差錯的信號、至少一個操作狀態(tài)指示符以及至少一個條件指示符進(jìn)行邏輯“或”操作,以產(chǎn)生禁止主機(jī)總線適配器的自動狀態(tài)傳送的信號。
7.權(quán)利要求1的程序存儲設(shè)備,其中,使主機(jī)總線適配器等待來自主機(jī)的關(guān)于數(shù)據(jù)傳輸?shù)臓顟B(tài)類型標(biāo)識包含從主機(jī)向處理該數(shù)據(jù)傳輸?shù)闹鳈C(jī)總線適配器發(fā)送一個信號,以禁止主機(jī)總線適配器的自動狀態(tài)傳送。
8.權(quán)利要求7的程序存儲設(shè)備,其中,使主機(jī)總線適配器等待來自主機(jī)的關(guān)于數(shù)據(jù)傳輸?shù)臓顟B(tài)類型標(biāo)識進(jìn)一步包含由主機(jī)向處理該數(shù)據(jù)傳輸?shù)闹鳈C(jī)總線適配器發(fā)送狀態(tài)類型標(biāo)識,以通告主機(jī)總線適配器為數(shù)據(jù)傳輸要呈現(xiàn)的狀態(tài)類型。
9.一種由計(jì)算機(jī)可讀的程序存儲設(shè)備,該介質(zhì)有形地體現(xiàn)可由計(jì)算機(jī)執(zhí)行的一個或多個指令程序,以實(shí)現(xiàn)一種方法,用于自動呈現(xiàn)來自主機(jī)總線適配器的狀態(tài)信息直至檢測到一個差錯,該方法包含經(jīng)由主機(jī)總線適配器向主機(jī)傳送數(shù)據(jù);以及由主機(jī)總線適配器自動發(fā)送狀態(tài)信息,直至在主機(jī)總線適配器處收到一個來自主機(jī)的信號,該信號用于禁止主機(jī)總線適配器的自動狀態(tài)傳送。
10.權(quán)利要求9的程序存儲設(shè)備,其中,當(dāng)數(shù)據(jù)傳輸有差錯時,發(fā)生接收用于禁止自動狀態(tài)傳送的信號。
11.權(quán)利要求9的程序存儲設(shè)備,其中,當(dāng)操作狀態(tài)和條件指示符向主機(jī)指出一個差錯條件時,發(fā)生接收用于禁止自動狀態(tài)傳送的信號。
12.權(quán)利要求9的程序存儲設(shè)備,進(jìn)一步包含當(dāng)收到禁止自動狀態(tài)傳送的信號時,從主機(jī)接收狀態(tài)類型標(biāo)識,以通告主機(jī)總線適配器要向主機(jī)呈現(xiàn)的關(guān)于數(shù)據(jù)傳輸?shù)臓顟B(tài)類型。
13.一種由計(jì)算機(jī)可讀的程序存儲設(shè)備,該介質(zhì)有形地體現(xiàn)可由計(jì)算機(jī)執(zhí)行的一個或多個指令程序,以實(shí)現(xiàn)一種方法,用于自動呈現(xiàn)來自主機(jī)總線適配器的狀態(tài)信息直至檢測到一個差錯,該方法包含經(jīng)由主機(jī)總線適配器向主機(jī)傳送數(shù)據(jù);在主機(jī)處進(jìn)行數(shù)據(jù)傳輸認(rèn)證;在主機(jī)處確定數(shù)據(jù)傳輸是否成功;以及當(dāng)數(shù)據(jù)傳輸成功時,由主機(jī)總線適配器自動發(fā)送狀態(tài)信息,否則,使主機(jī)總線適配器等待來自主機(jī)的關(guān)于數(shù)據(jù)傳輸?shù)臓顟B(tài)類型標(biāo)識。
14.一種控制由主機(jī)總線適配器發(fā)送狀態(tài)消息的主機(jī),包含從主機(jī)總線適配器接收數(shù)據(jù)的裝置;與所述接收數(shù)據(jù)的裝置耦接的進(jìn)行數(shù)據(jù)傳輸認(rèn)證的裝置;以及與進(jìn)行數(shù)據(jù)傳輸認(rèn)證的裝置耦接的裝置,當(dāng)確定數(shù)據(jù)傳輸不成功時,該裝置傳送一個信號,以使主機(jī)總線適配器等待關(guān)于數(shù)據(jù)傳輸?shù)臓顟B(tài)類型標(biāo)識。
15.權(quán)利要求14的主機(jī),其中,進(jìn)行數(shù)據(jù)傳輸認(rèn)證的裝置在主機(jī)處通過確定數(shù)據(jù)是否無差錯傳輸來進(jìn)行數(shù)據(jù)傳輸認(rèn)證。
16.權(quán)利要求14的主機(jī),其中,進(jìn)行數(shù)據(jù)傳輸認(rèn)證的裝置在主機(jī)處通過檢驗(yàn)操作狀態(tài)和條件指示符來進(jìn)行數(shù)據(jù)傳輸認(rèn)證。
17.權(quán)利要求16的主機(jī),其中,進(jìn)行數(shù)據(jù)傳輸認(rèn)證的裝置通過檢驗(yàn)處理器異常條件和災(zāi)難性差錯條件來檢驗(yàn)條件指示符。
18.權(quán)利要求16的主機(jī),其中,進(jìn)行數(shù)據(jù)傳輸認(rèn)證的裝置通過檢驗(yàn)數(shù)據(jù)傳輸期間橫斷在傳輸路徑上的狀態(tài)機(jī)和中間緩存器以查找差錯來檢驗(yàn)操作狀態(tài)。
19.權(quán)利要求14的主機(jī),進(jìn)一步包含一個邏輯或門,用于對指示數(shù)據(jù)傳輸是否無差錯的信號、至少一個操作狀態(tài)指示符以及至少一個條件指示符進(jìn)行邏輯或,以產(chǎn)生禁止主機(jī)總線適配器的自動狀態(tài)傳送的信號。
20.權(quán)利要求14的主機(jī),其中的用于傳送的裝置在發(fā)送禁止自動狀態(tài)傳送的信號之后提供關(guān)于數(shù)據(jù)傳輸?shù)臓顟B(tài)類型標(biāo)識。
21.一個主機(jī)總線適配器,包含向主機(jī)傳送數(shù)據(jù)的裝置;以及與所述傳送數(shù)據(jù)的裝置耦接的裝置,用于自動發(fā)送狀態(tài)信息直至收到禁止自動狀態(tài)傳送的信號。
22.權(quán)利要求21的主機(jī)總線適配器,其中禁止自動狀態(tài)傳送的信號指出何時數(shù)據(jù)傳輸出錯。
23.權(quán)利要求21的主機(jī)總線適配器,其中禁止自動狀態(tài)傳送的信號指出操作狀態(tài)或條件指示符代表到主機(jī)的錯誤條件。
24.權(quán)利要求21的主機(jī)總線適配器,其中,自動發(fā)送狀態(tài)信息的裝置接收來自主機(jī)的狀態(tài)類型標(biāo)識,以通告要向主機(jī)呈現(xiàn)的關(guān)于數(shù)據(jù)傳輸?shù)臓顟B(tài)類型。
25.一個輸入/輸出系統(tǒng),包含用于傳輸數(shù)據(jù)的主機(jī)總線適配器;以及與主機(jī)總線適配器耦接的主機(jī),用于進(jìn)行數(shù)據(jù)傳輸認(rèn)證和確定數(shù)據(jù)傳輸是否成功;其中主機(jī)總線適配器自動發(fā)送狀態(tài)信息,直至主機(jī)確定數(shù)據(jù)傳輸不成功并向主機(jī)總線適配器發(fā)送一個禁止主機(jī)總線適配器的自動狀態(tài)傳送的信號。
26.一種由主機(jī)總線適配器自動呈現(xiàn)狀態(tài)信號直至檢測到差錯的方法,包含經(jīng)由主機(jī)總線適配器向主機(jī)傳送數(shù)據(jù);在主機(jī)處進(jìn)行數(shù)據(jù)傳輸認(rèn)證;在主機(jī)處確定數(shù)據(jù)傳輸是否成功;以及當(dāng)數(shù)據(jù)傳輸成功時,由主機(jī)總線適配器自動發(fā)送狀態(tài)信息,否則,使主機(jī)總線適配器等待來自主機(jī)的關(guān)于數(shù)據(jù)傳輸?shù)臓顟B(tài)類型標(biāo)識。
全文摘要
提供一種方法、裝置和程序存儲設(shè)備,用于自動呈現(xiàn)來自主機(jī)總線適配器的狀態(tài)信息,直至檢測到差錯。主機(jī)總線適配器向主機(jī)傳送數(shù)據(jù)。主機(jī)進(jìn)行數(shù)據(jù)傳輸認(rèn)證和確定數(shù)據(jù)傳輸是否成功。當(dāng)數(shù)據(jù)傳送成功時,主機(jī)總線適配器自動發(fā)送狀態(tài)信息,否則,主機(jī)總線適配器等待來自主機(jī)的關(guān)于數(shù)據(jù)傳輸?shù)臓顟B(tài)類型標(biāo)識。
文檔編號G06F13/38GK1751298SQ200480004718
公開日2006年3月22日 申請日期2004年5月4日 優(yōu)先權(quán)日2003年5月14日
發(fā)明者程建群, 郭立中, 卡羅爾·斯潘內(nèi)爾, 安德魯·戴爾·沃爾斯 申請人:國際商業(yè)機(jī)器公司