信息處理系統(tǒng)和設(shè)備及其控制方法以及數(shù)據(jù)傳輸設(shè)備的制作方法
【專(zhuān)利摘要】本發(fā)明涉及處理裝置和數(shù)據(jù)傳送方法。一種裝置包括第一設(shè)備、交換設(shè)備和第二設(shè)備。第一設(shè)備包括:第一傳送器,被配置成傳送多個(gè)分組;以及控制器,被配置成將第一時(shí)間信息添加到多個(gè)分組中包括的第一分組,第一時(shí)間信息指示開(kāi)始傳送多個(gè)分組的第一時(shí)間。交換設(shè)備包括:第一接收器,被配置成接收從第一傳送器傳送的多個(gè)分組;仲裁器,被配置成獲取指示發(fā)生鏈路接通的第二時(shí)間的第二時(shí)間信息,將第二時(shí)間信息與第一時(shí)間信息進(jìn)行比較,并且在第二時(shí)間晚于第一時(shí)間的情況下刪除從第一傳送器最終傳送的第二分組;以及第二傳送器,被配置成傳送除了第二分組以外的多個(gè)分組。第二設(shè)備包括:第二接收器,被配置成接收從第二傳送器傳送的多個(gè)分組。
【專(zhuān)利說(shuō)明】信息處理系統(tǒng)和設(shè)備及其控制方法以及數(shù)據(jù)傳輸設(shè)備
【技術(shù)領(lǐng)域】
[0001] 這里討論的實(shí)施例涉及信息處理系統(tǒng)、信息處理設(shè)備、數(shù)據(jù)傳輸設(shè)備和控制信息 處理系統(tǒng)的方法。
【背景技術(shù)】
[0002] 總體上,在具有通過(guò)網(wǎng)絡(luò)傳輸數(shù)據(jù)的多個(gè)信息處理設(shè)備的信息處理系統(tǒng)中,當(dāng)從 諸如在每個(gè)信息處理設(shè)備上執(zhí)行的應(yīng)用軟件的較高層級(jí)軟件請(qǐng)求數(shù)據(jù)傳輸時(shí),所請(qǐng)求的數(shù) 據(jù)被分成多個(gè)分組并且被傳輸。
[0003] 隨后,在分成多個(gè)分組的數(shù)據(jù)傳輸中,如果最終分組到達(dá)目標(biāo)節(jié)點(diǎn),則目標(biāo)節(jié)點(diǎn)將 根據(jù)最終分組中包括的附加信息認(rèn)識(shí)到數(shù)據(jù)傳輸已完成。隨后,目標(biāo)節(jié)點(diǎn)向較高層級(jí)軟件 通知一次數(shù)據(jù)傳輸?shù)耐瓿伞?br>
[0004] 此外,在大規(guī)模信息處理系統(tǒng)中,特別是在諸如超級(jí)計(jì)算機(jī)的并行計(jì)算機(jī)中,在許 多情況中采用遠(yuǎn)程直接存儲(chǔ)器存取(RDM)。RDMA指的是通過(guò)使用兩個(gè)網(wǎng)絡(luò)控制器將一個(gè) 計(jì)算機(jī)節(jié)點(diǎn)處的存儲(chǔ)器數(shù)據(jù)直接傳輸?shù)搅硪挥?jì)算機(jī)節(jié)點(diǎn)處的存儲(chǔ)器的功能。使用RDMA使 得可以實(shí)現(xiàn)具有高通過(guò)量和低延時(shí)的通信。特別地,利用作為用于傳送控制協(xié)議/互聯(lián)網(wǎng) 協(xié)議(TCP/IP)的網(wǎng)絡(luò)的以太網(wǎng)(注冊(cè)商標(biāo))的RDMA協(xié)議通信近年來(lái)正在變得可以使用。出 于該原因,越來(lái)越多的系統(tǒng)已采用RDMA。
[0005] 當(dāng)采用RDMA時(shí),在網(wǎng)絡(luò)的鏈路層處重新發(fā)送分組的方案常被用作保證分組遞送 的方案。在該情況下,由于在網(wǎng)絡(luò)區(qū)域中保證分組遞送,因此不存在用于檢測(cè)和重新發(fā)送因 例如用于發(fā)送和接收分組的節(jié)點(diǎn)之間的位錯(cuò)誤等而已被放棄的分組的措施。
[0006] 網(wǎng)絡(luò)的鏈路層處的保證遞送的一個(gè)例外是因硬件故障而發(fā)生鏈路斷開(kāi) (link-down)。通常,對(duì)于因硬件故障而發(fā)生的鏈路斷開(kāi),不能保證恢復(fù)正常操作之前所耗 用的時(shí)間段。出于該原因,當(dāng)發(fā)生鏈路斷開(kāi)時(shí),信息處理系統(tǒng)放棄正要通過(guò)已發(fā)生鏈路斷開(kāi) 的點(diǎn)的分組,以便阻止該分組留在網(wǎng)絡(luò)中。置于信息處理系統(tǒng)外部的設(shè)備監(jiān)視系統(tǒng)將該鏈 路斷開(kāi)錯(cuò)誤檢測(cè)為網(wǎng)絡(luò)的硬件錯(cuò)誤。
[0007] 順便提及,存在一些如下情況:因暫時(shí)的硬件故障而發(fā)生鏈路斷開(kāi),并且緊隨其后 鏈路接通被建立,從而使得能夠恢復(fù)數(shù)據(jù)傳輸。當(dāng)該事件在傳輸一系列分組的數(shù)據(jù)傳輸?shù)?前一半或者中間發(fā)生時(shí),包括該系列分組的最終分組的后一半中的分組有可能被遞送到目 標(biāo)節(jié)點(diǎn),盡管數(shù)據(jù)傳輸?shù)那耙话牖蛘咧虚g的分組被放棄。在該情況下,在接收到最終分組 時(shí),目標(biāo)節(jié)點(diǎn)將向較高層級(jí)的軟件通知數(shù)據(jù)傳輸完成。這實(shí)際上引起數(shù)據(jù)傳輸中的數(shù)據(jù)損 壞。隨后,如果后繼處理繼續(xù),則例如將引起文件系統(tǒng)內(nèi)容的改變。結(jié)果,不存在反轉(zhuǎn),并且 將有可能引起對(duì)隨后的處理有影響的操作錯(cuò)誤。
[0008] 為了阻止數(shù)據(jù)傳輸中的這種分組丟失,迄今為止執(zhí)行如下文提及的序列。在該序 列中,首先,一旦發(fā)生鏈路斷開(kāi),則使鏈路斷開(kāi)維持。隨后,當(dāng)外部設(shè)備監(jiān)視系統(tǒng)檢測(cè)到鏈路 斷開(kāi)錯(cuò)誤時(shí),信息處理系統(tǒng)向操作管理軟件通知鏈路斷開(kāi)錯(cuò)誤的發(fā)生,使得可能使用發(fā)生 鏈路斷開(kāi)的點(diǎn)的所有應(yīng)用因該錯(cuò)誤而終止。隨后,信息處理系統(tǒng)通過(guò)設(shè)備監(jiān)視系統(tǒng)針對(duì)鏈 路斷開(kāi)點(diǎn)使得鏈路接通再次發(fā)生。隨后,信息處理系統(tǒng)再次執(zhí)行使用發(fā)生鏈路斷開(kāi)的點(diǎn)的 應(yīng)用。
[0009] 此外,作為使用分組的通信技術(shù),存在將序列號(hào)分配給分組并且通過(guò)找到序列 號(hào)的遺漏來(lái)檢測(cè)分組丟失的傳統(tǒng)技術(shù)。相關(guān)技術(shù)的文獻(xiàn)示例包括日本公開(kāi)專(zhuān)利公布 No.2007-208635。
【發(fā)明內(nèi)容】
[0010] 技術(shù)問(wèn)題
[0011] 然而,在停止所有應(yīng)用之后使得鏈路接通發(fā)生的傳統(tǒng)技術(shù)中,最初彼此獨(dú)立操作 的設(shè)備監(jiān)視系統(tǒng)和操作管理軟件開(kāi)始彼此緊密協(xié)作。信息處理系統(tǒng)的配置因此變得復(fù)雜。
[0012] 此外,在使用序列號(hào)的傳統(tǒng)技術(shù)中,對(duì)于超級(jí)計(jì)算機(jī)、云系統(tǒng)等中的節(jié)點(diǎn)間數(shù)據(jù)傳 輸,使用非常多的節(jié)點(diǎn),并且因此要使用的序列號(hào)的數(shù)目變得極多,并且上下文管理變得困 難。因此難于實(shí)現(xiàn)該技術(shù)。
[0013] 有鑒于此實(shí)現(xiàn)了本公開(kāi)的技術(shù),并且本公開(kāi)的技術(shù)涉及提供信息處理系統(tǒng)、信息 處理設(shè)備、數(shù)據(jù)傳輸設(shè)備和用于控制信息處理系統(tǒng)的方法,它們通過(guò)簡(jiǎn)單的配置避免了生 成由于鏈路斷開(kāi)引起的分組丟失導(dǎo)致的故障。
[0014] 根據(jù)本發(fā)明的一個(gè)方面,一種裝置包括第一設(shè)備、交換設(shè)備和第二設(shè)備。第一設(shè)備 包括:第一傳送器,被配置成傳送多個(gè)分組;以及控制器,被配置成將第一時(shí)間信息添加到 多個(gè)分組中包括的第一分組,第一時(shí)間信息指示開(kāi)始傳送多個(gè)分組的第一時(shí)間。交換設(shè)備 包括:第一接收器,被配置成接收從第一傳送器傳送的多個(gè)分組;仲裁器,被配置成獲取指 示發(fā)生鏈路接通的第二時(shí)間的第二時(shí)間信息,將第二時(shí)間信息與第一時(shí)間信息進(jìn)行比較, 并且在第二時(shí)間晚于第一時(shí)間的情況下刪除從第一傳送器最終傳送的第二分組;以及第二 傳送器,被配置成傳送除了第二分組以外的多個(gè)分組。第二設(shè)備包括:第二接收器,被配置 成接收從第二傳送器傳送的多個(gè)分組。
[0015] 本發(fā)明的有利效果
[0016] 根據(jù)實(shí)施例的一個(gè)方面,信息處理系統(tǒng)可以通過(guò)簡(jiǎn)單的配置避免生成由于鏈路斷 開(kāi)引起的分組丟失導(dǎo)致的故障。
【專(zhuān)利附圖】
【附圖說(shuō)明】
[0017] 圖1是圖示信息處理系統(tǒng)的示例的系統(tǒng)配置圖;
[0018] 圖2是根據(jù)第一實(shí)施例的信息處理系統(tǒng)的框圖;
[0019] 圖3圖示了最終分組的示例;
[0020] 圖4A是用于說(shuō)明發(fā)送起始分組時(shí)的服務(wù)器的操作的框圖;
[0021] 圖4B是用于說(shuō)明發(fā)送中間分組時(shí)的服務(wù)器的操作的框圖;
[0022] 圖4C是用于說(shuō)明發(fā)送最終分組時(shí)的服務(wù)器的操作的框圖;
[0023] 圖5A是用于說(shuō)明發(fā)生鏈路接通時(shí)的交換機(jī)的操作的圖示;
[0024] 圖5B是用于說(shuō)明傳輸最終分組時(shí)的交換機(jī)的操作的圖示;
[0025] 圖6是用于說(shuō)明在交換機(jī)執(zhí)行分組傳輸期間發(fā)生鏈路接通的情況下的分組輸出 的示圖;
[0026] 圖7是用于說(shuō)明在交換機(jī)執(zhí)行分組傳輸之前發(fā)生鏈路接通的情況下的分組輸出 的示圖;
[0027] 圖8是用于說(shuō)明在交換機(jī)執(zhí)行分組傳輸期間發(fā)生鏈路接通并且在分組傳輸期間 未發(fā)生鏈路接通的情況下的分組輸出的示圖;
[0028] 圖9是服務(wù)器執(zhí)行的發(fā)送分組的處理的流程圖;
[0029] 圖10是交換機(jī)執(zhí)行的傳輸分組的處理的流程圖;
[0030] 圖11是服務(wù)器執(zhí)行的接收分組的處理的流程圖;
[0031] 圖12是根據(jù)第二實(shí)施例的信息處理系統(tǒng)的框圖;
[0032] 圖13是根據(jù)第三實(shí)施例的信息處理系統(tǒng)的框圖;
[0033] 圖14是服務(wù)器的硬件配置圖;以及
[0034] 圖15是交換機(jī)的硬件配置圖。
【具體實(shí)施方式】
[0035] 下文將參照附圖詳細(xì)說(shuō)明本公開(kāi)的信息處理系統(tǒng)、信息處理設(shè)備、數(shù)據(jù)傳輸設(shè)備 和用于控制信息處理系統(tǒng)的方法的實(shí)施例。應(yīng)注意,下文說(shuō)明的實(shí)施例并非旨在限制本公 開(kāi)的信息處理系統(tǒng)、信息處理設(shè)備、數(shù)據(jù)傳輸設(shè)備和用于控制信息處理系統(tǒng)的方法。
[0036] [第一實(shí)施例]
[0037] 圖1是圖示信息處理系統(tǒng)的示例的系統(tǒng)配置圖。如圖1中所示,根據(jù)該實(shí)施例的 信息處理系統(tǒng)包括服務(wù)器101和102以及交換機(jī)201至203。
[0038] 服務(wù)器101和服務(wù)器102通過(guò)交換機(jī)201至203彼此耦接。連接服務(wù)器101、交 換機(jī)201至203以及服務(wù)器102的網(wǎng)絡(luò)符合籍其執(zhí)行RDMA通信的協(xié)議。例如,如果服務(wù)器 101和102以及交換機(jī)201至203的網(wǎng)絡(luò)接口卡采用適于用在TCP/IP通信中的網(wǎng)絡(luò)的RDMA 技術(shù),則以太網(wǎng)(注冊(cè)商標(biāo))可以用作連接設(shè)備的網(wǎng)絡(luò)。
[0039] 這里,在圖1中,為了方便起見(jiàn)圖示了兩個(gè)服務(wù)器101和102以及三個(gè)交換機(jī)201 至203。在根據(jù)該實(shí)施例的信息處理系統(tǒng)中,可以設(shè)置其他服務(wù)器和交換機(jī)。此外,其他服 務(wù)器可以耦接到交換機(jī)201至203。此外,耦接服務(wù)器101和102的交換機(jī)的數(shù)目不必是三 個(gè),只要其是一個(gè)或更多個(gè)即可。
[0040] 圖2是根據(jù)第一實(shí)施例的信息處理系統(tǒng)的框圖。這里,給出了使用RDMA執(zhí)行從服 務(wù)器101到服務(wù)器102的數(shù)據(jù)傳輸?shù)那闆r的示例。因此,在圖2中,在服務(wù)器101中僅圖示 了用于發(fā)送數(shù)據(jù)的功能塊,并且在服務(wù)器102中僅圖示了用于接收數(shù)據(jù)的功能塊。然而,事 實(shí)上,服務(wù)器101和服務(wù)器102兩者均能夠發(fā)送和接收數(shù)據(jù)。因此,服務(wù)器101還具有用于 接收數(shù)據(jù)的功能,并且服務(wù)器102還具有用于發(fā)送數(shù)據(jù)的功能。所有交換機(jī)201至203具 有相同的配置,并且因此在以下給出的說(shuō)明中將交換機(jī)201取作示例。因此,在圖2中僅圖 示了交換機(jī)201的功能塊。然而,交換機(jī)202和203具有與交換機(jī)201相同的配置。
[0041] 服務(wù)器101包括時(shí)鐘111、時(shí)間嵌入單元112、主存儲(chǔ)單元114和RDMA發(fā)送單元 115。
[0042] 時(shí)鐘111是報(bào)告當(dāng)前時(shí)間的時(shí)鐘。
[0043] 主存儲(chǔ)單元114是存儲(chǔ)器等。服務(wù)器101執(zhí)行應(yīng)用,并且主存儲(chǔ)單元114存儲(chǔ)諸 如通過(guò)執(zhí)行應(yīng)用而獲得的處理結(jié)果的數(shù)據(jù)。
[0044] RDMA發(fā)送單元115計(jì)算用于劃分主存儲(chǔ)單元114中存儲(chǔ)的數(shù)據(jù)的劃分位置。隨 后,RDMA發(fā)送單元115在計(jì)算的劃分位置對(duì)主存儲(chǔ)單元114中存儲(chǔ)的數(shù)據(jù)進(jìn)行劃分,并且 生成分組。
[0045] RDMA發(fā)送單元115開(kāi)始向服務(wù)器102的主存儲(chǔ)單元121發(fā)送所生成的分組。在下 文中,RDMA發(fā)送單元115發(fā)送的第一分組被稱(chēng)為"起始分組"。此外,RDMA發(fā)送單元115發(fā) 送的最后的分組被稱(chēng)為"最終分組"。此外,RDMA發(fā)送單元115發(fā)送的起始分組和最終分組 之間的分組被稱(chēng)為"中間分組"。
[0046] RDMA發(fā)送單元115向交換機(jī)201發(fā)送起始分組。此時(shí),RDMA發(fā)送單元115向時(shí)間 嵌入單元112通知起始分組的發(fā)送。在起始分組的發(fā)送之后,RDMA發(fā)送單元115依次發(fā)送 中間分組。隨后,RDMA發(fā)送單元115最后發(fā)送最終分組。在最終分組中,下文所述的時(shí)間 嵌入單元112嵌入發(fā)送起始分組的時(shí)間。
[0047] 時(shí)間嵌入單元112具有發(fā)送起始時(shí)間寄存器113。
[0048] 時(shí)間嵌入單元112接收從RDMA發(fā)送單元115發(fā)送起始分組的通知。時(shí)間嵌入單 元112從時(shí)鐘111獲取接收到發(fā)送起始分組的通知的時(shí)間。在下文中,時(shí)間嵌入單元112 獲取的時(shí)間被稱(chēng)為"發(fā)送起始時(shí)間"。時(shí)間嵌入單元112將發(fā)送起始時(shí)間存儲(chǔ)在發(fā)送起始時(shí) 間寄存器113中。
[0049] 隨后,時(shí)間嵌入單元112檢查RDMA發(fā)送單元115生成的分組的報(bào)頭,并且確定 RDMA發(fā)送單元115正在發(fā)送的分組是否是最終分組。如果RDMA發(fā)送單元115正在發(fā)送的 分組是最終分組,則時(shí)間嵌入單元112從RDMA發(fā)送單元115獲取最終分組并且在最終分組 的報(bào)頭中嵌入發(fā)送起始時(shí)間寄存器113中已存儲(chǔ)的發(fā)送起始時(shí)間。隨后,時(shí)間嵌入單元112 向RDMA發(fā)送單元115發(fā)送具有被嵌入發(fā)送起始時(shí)間的報(bào)頭的最終分組。
[0050] 圖3圖示了最終分組的示例。如圖3中所示,最終分組300具有報(bào)頭301和載荷 310。在報(bào)頭301中,存儲(chǔ)了數(shù)據(jù)的發(fā)送目標(biāo)的識(shí)別信息以及載荷310的大小。特別地,在 最終分組300的報(bào)頭301中,存儲(chǔ)了 RDMA寫(xiě)入起始地址和RDMA寫(xiě)入整體地址。與此相反, RDMA寫(xiě)入起始地址和RDMA寫(xiě)入整體地址均未被存儲(chǔ)在起始分組和中間分組的報(bào)頭中。此 夕卜,發(fā)送起始時(shí)間302存儲(chǔ)在最終分組300的報(bào)頭301中。載荷310是通過(guò)劃分存儲(chǔ)器中 存儲(chǔ)的數(shù)據(jù)而獲得的數(shù)據(jù)。
[0051] 此外,將參照?qǐng)D4A至圖4C共同說(shuō)明當(dāng)服務(wù)器101發(fā)送分組時(shí)的服務(wù)器101的單 元的操作。圖4A是用于說(shuō)明發(fā)送起始分組時(shí)的服務(wù)器的操作的框圖。圖4B是用于說(shuō)明發(fā) 送中間分組時(shí)的服務(wù)器的操作的框圖。圖4C是用于說(shuō)明發(fā)送最終分組時(shí)的服務(wù)器的操作 的框圖。
[0052] 在發(fā)送起始分組時(shí),如圖4A中所示,RDMA發(fā)送單元115生成起始分組501。隨后, RDMA發(fā)送單元115向交換機(jī)201發(fā)送所生成的起始分組501。此時(shí),RDMA發(fā)送單元115向 時(shí)間嵌入單元112通知起始分組501的發(fā)送。
[0053] 時(shí)間嵌入單元112從RDMA發(fā)送單元115接收發(fā)送起始分組501的通知。隨后,時(shí) 間嵌入單元112從時(shí)鐘111獲取接收到發(fā)送起始分組501的通知的時(shí)間,即發(fā)送起始時(shí)間。 時(shí)間嵌入單元112接下來(lái)將所獲取的發(fā)送起始時(shí)間存儲(chǔ)在發(fā)送起始時(shí)間寄存器113中。
[0054] 在發(fā)送中間分組時(shí),如圖4B中所示,RDMA發(fā)送單元115生成中間分組502。RDMA 發(fā)送單元115隨后向交換機(jī)201發(fā)送所生成的中間分組502。當(dāng)RDMA發(fā)送單元115已發(fā)送 中間分組502時(shí),時(shí)間嵌入單元112檢查RDM發(fā)送單元115生成的分組的報(bào)頭以便獲知發(fā) 送的分組是中間分組502。同時(shí),時(shí)間嵌入單元112繼續(xù)將發(fā)送起始時(shí)間保存在發(fā)送起始時(shí) 間寄存器113中。圖4B中的從發(fā)送起始時(shí)間寄存器113離開(kāi)并返回其的虛線箭頭指示發(fā) 送起始時(shí)間寄存器113保存發(fā)送起始時(shí)間。
[0055] 在發(fā)送最終分組時(shí),如圖4C中所示,RDMA發(fā)送單元115生成最終分組503。此時(shí), 時(shí)間嵌入單元112檢查RDMA發(fā)送單元115創(chuàng)建的分組的報(bào)頭,并且將該分組識(shí)別為最終分 組503。時(shí)間嵌入單元112隨后將發(fā)送起始時(shí)間寄存器113中存儲(chǔ)的發(fā)送起始時(shí)間嵌入在 最終分組503中。隨后,RDMA發(fā)送單元115將最終分組503發(fā)送到交換機(jī)201。
[0056] 在圖2中,交換機(jī)201包括時(shí)鐘211、鏈路接通時(shí)間獲取單元212、接收單元213、傳 輸單元214和發(fā)送完成阻止單元215。
[0057] 接收單元213從RDMA發(fā)送單元115依次接收起始分組、中間分組和最終分組。接 收單元213將接收到的起始分組、中間分組和最終分組依次發(fā)送到傳輸單元214。此外,接 收單元213將接收到的起始分組、中間分組和最終分組的報(bào)頭依次發(fā)送到發(fā)送完成阻止單 元 215。
[0058] 時(shí)鐘211是報(bào)告當(dāng)前時(shí)間的時(shí)鐘。時(shí)鐘211與時(shí)鐘111同步,使得時(shí)鐘211的時(shí) 間與時(shí)鐘111的時(shí)間匹配。例如,為了使時(shí)鐘211與時(shí)鐘111同步,存在使用網(wǎng)絡(luò)時(shí)間協(xié)議 (NTP)由軟件執(zhí)行同步的方法、使用專(zhuān)用同步協(xié)議由硬件執(zhí)行同步的方法等等。
[0059] 鏈路接通時(shí)間獲取單元212通過(guò)監(jiān)視傳輸單元214的分組輸出來(lái)監(jiān)視交換機(jī)201 和交換機(jī)202之間的耦接狀態(tài)。例如,如果傳輸單元214的分組輸出已停止預(yù)定的時(shí)間段, 則鏈路接通時(shí)間獲取單元212確定已發(fā)生鏈路斷開(kāi)。隨后,在確定已發(fā)生鏈路斷開(kāi)之后,如 果傳輸單元214的分組輸出已開(kāi)始,則傳輸單元214確定已發(fā)生鏈路接通。
[0060] 如果鏈路接通時(shí)間獲取單元212確定已發(fā)生鏈路接通,則鏈路接通時(shí)間獲取單元 212從時(shí)鐘211獲取時(shí)間。在下文中,鏈路接通時(shí)間獲取單元212獲取的時(shí)間被稱(chēng)為"鏈路 接通時(shí)間"。隨后,鏈路接通時(shí)間獲取單元212將所獲取的鏈路接通時(shí)間輸出到發(fā)送完成阻 止單元215。
[0061] 發(fā)送完成阻止單元215具有作為存儲(chǔ)設(shè)備的鏈路接通時(shí)間寄存器216。發(fā)送完成 阻止單元215從鏈路接通時(shí)間獲取單元212接收鏈路接通時(shí)間。隨后,發(fā)送完成阻止單元 215將接收到的鏈路接通時(shí)間存儲(chǔ)在鏈路接通時(shí)間寄存器216中。如果鏈路接通時(shí)間已存 儲(chǔ)在鏈路接通時(shí)間寄存器216中,則發(fā)送完成阻止單元215通過(guò)將鏈路接通時(shí)間寄存器216 中存儲(chǔ)的鏈路接通時(shí)間替換為新獲取的鏈路接通時(shí)間來(lái)對(duì)其進(jìn)行更新。就是說(shuō),發(fā)送完成 阻止單元215總是在鏈路接通時(shí)間寄存器216中保存最新的鏈路接通時(shí)間。
[0062] 此外,發(fā)送完成阻止單元215從接收單元213依次獲取起始分組、中間分組和最終 分組的報(bào)頭。隨后,通過(guò)參考報(bào)頭,發(fā)送完成阻止單元215確定接收單元213接收的并且發(fā) 送到傳輸單元214的分組是否是最終分組。例如,根據(jù)RDMA寫(xiě)入起始地址和RDMA寫(xiě)入整 體地址是否存儲(chǔ)在報(bào)頭中,發(fā)送完成阻止單元215確定具有該報(bào)頭的分組是最終分組。
[0063] 如果該分組是最終分組,則發(fā)送完成阻止單元215將要存儲(chǔ)在鏈路接通時(shí)間寄存 器216中的鏈路接通時(shí)間與最終分組中存儲(chǔ)的發(fā)送起始時(shí)間進(jìn)行比較。如果鏈路接通時(shí)間 晚于發(fā)送起始時(shí)間,則發(fā)送完成阻止單元215確定已發(fā)生由鏈路斷開(kāi)引起的分組丟失。隨 后,發(fā)送完成阻止單元215指令傳輸單元214放棄最終分組。
[0064] 傳輸單元214從接收單元213依次接收起始分組、中間分組和最終分組。隨后,傳 輸單元214將接收到的起始分組和中間分組依次輸出到交換機(jī)202。此外,當(dāng)傳輸單元214 從接收單元213接收到最終分組時(shí),傳輸單元214檢查是否存在來(lái)自發(fā)送完成阻止單元215 的請(qǐng)求放棄最終分組的指令。如果存在請(qǐng)求放棄最終分組的指令,則傳輸單元214放棄最 終分組并且不會(huì)將最終分組輸出到交換機(jī)202。與此相反,如果不存在請(qǐng)求放棄最終分組的 指令,則傳輸單元214將最終分組輸出到交換機(jī)202。
[0065] 這里,將參照?qǐng)D5A和5B共同說(shuō)明在發(fā)生鏈路接通時(shí)的交換機(jī)201的操作以及傳 輸最終分組時(shí)的操作。圖5A是用于說(shuō)明發(fā)生鏈路接通時(shí)的交換機(jī)的操作的圖示。圖5A是 用于說(shuō)明傳輸最終分組時(shí)的交換機(jī)的操作的圖示。例如,如圖5A和圖5B中所示,根據(jù)該實(shí) 施例的交換機(jī)201具有八個(gè)端口。在圖5A和圖5B中,交換機(jī)201的端口呈現(xiàn)為端口 220A 至220H。端口 220A至220H具有接收和發(fā)送分組的功能,并且具有圖2中的接收單元213 和傳輸單元214兩者的功能。此外,端口 220A至220H具有的鏈路接通時(shí)間寄存器被分別 呈現(xiàn)為鏈路接通時(shí)間寄存器216A至216H。此外,在圖5A和5B中省略了圖1中所示的沒(méi)有 必要說(shuō)明的單元。
[0066] 參照?qǐng)D5A和圖5B,給出了如下情況的說(shuō)明:在端口 220C處的耦接中,已發(fā)生鏈路 斷開(kāi)并且隨后發(fā)生鏈路接通,而在其他端口 220A、220B和220D至220H處未發(fā)生鏈路斷開(kāi)。 在端口 220C處的耦接中發(fā)生鏈路接通時(shí),鏈路接通時(shí)間獲取單元212獲取的時(shí)間被存儲(chǔ) 在鏈路接通時(shí)間寄存器216C中。由于在端口 220A、220B和220D至220H處未發(fā)生鏈路斷 開(kāi),因此也未發(fā)生與鏈路斷開(kāi)相關(guān)的鏈路接通。因此,鏈路接通時(shí)間保存在鏈路接通時(shí)間寄 存器216A、216B和216D至216H中。圖5A中的鏈路接通時(shí)間寄存器216A、216B和216D至 216H處的虛線箭頭指示保存鏈路接通時(shí)間。
[0067] 隨后,如圖5B的虛線箭頭231指示的,最終分組504在端口 220F處輸入并且被傳 輸?shù)蕉丝?220C以便在端口 220C處輸出。此時(shí),端口 220C將嵌入在最終分組504中的發(fā)送 起始時(shí)間與鏈路接通時(shí)間寄存器216C中存儲(chǔ)的鏈路接通時(shí)間進(jìn)行比較。如果鏈路接通時(shí) 間晚于發(fā)送起始時(shí)間,則如虛線箭頭232指示的,端口 220C放棄最終分組504。與此相反, 如果鏈路接通時(shí)間等于或早于發(fā)送起始時(shí)間,則如虛線箭頭233所指示的,端口 220C輸出 最終分組。
[0068] 交換機(jī)202依次從交換機(jī)201的傳輸單元214接收起始分組和中間分組。隨后, 交換機(jī)202將接收到的起始分組和中間分組輸出到交換機(jī)203。此外,如果最終分組沒(méi)有被 交換機(jī)201放棄,則交換機(jī)202從交換機(jī)201接收最終分組。隨后,如交換機(jī)201的情況中 的那樣,交換機(jī)202將最終分組中存儲(chǔ)的發(fā)送起始時(shí)間與鏈路接通時(shí)間進(jìn)行比較,并且在 鏈路接通時(shí)間晚于發(fā)送起始時(shí)間的情況下放棄最終分組。如果鏈路接通時(shí)間不晚于發(fā)送起 始時(shí)間,則交換機(jī)202將最終分組輸出到交換機(jī)203。
[0069] 交換機(jī)203依次從交換機(jī)202接收起始分組和中間分組。隨后,交換機(jī)203將接 收到的起始分組和中間分組輸出到服務(wù)器102。此外,如果最終分組沒(méi)有被交換機(jī)201和 202放棄,則交換機(jī)203從交換機(jī)202接收最終分組。隨后,如交換機(jī)202的情況中的那樣, 交換機(jī)203將最終分組中存儲(chǔ)的發(fā)送起始時(shí)間與鏈路接通時(shí)間進(jìn)行比較,并且在鏈路接通 時(shí)間晚于發(fā)送起始時(shí)間的情況下放棄最終分組。如果鏈路接通時(shí)間不晚于發(fā)送起始時(shí)間, 則交換機(jī)203將最終分組輸出到服務(wù)器102。
[0070] 服務(wù)器102包括主存儲(chǔ)單元121和RDMA接收單元122。
[0071] 主存儲(chǔ)單元121是存儲(chǔ)器等。主存儲(chǔ)單元121中存儲(chǔ)的數(shù)據(jù)用于服務(wù)器102執(zhí)行 的應(yīng)用等。
[0072] RDMA接收單元122依次接收從交換機(jī)203輸出的分組。隨后,RDMA接收單元122 檢查接收到的分組的報(bào)頭。如果接收到最終分組,則RDMA接收單元122確定通信已完成。
[0073] 在確定通信已完成時(shí),RDMA接收單元122組合接收到的分組并且重新構(gòu)造數(shù)據(jù)。 隨后,RDMA接收單元122將重新構(gòu)造的數(shù)據(jù)存儲(chǔ)在主存儲(chǔ)單元121中。
[0074] 另一方面,如果RDMA接收單元122不能接收最終分組,則RDMA接收單元122確定 通信未完成并且發(fā)送數(shù)據(jù)導(dǎo)致故障。
[0075] 通過(guò)這種方式,當(dāng)最終分組未到達(dá)RDMA接收單元122時(shí),RDMA接收單元122不會(huì) 將數(shù)據(jù)存儲(chǔ)在主存儲(chǔ)單元121中。出于該原因,如果最終分組沒(méi)有到達(dá),則服務(wù)器102不通 過(guò)RDMA功能使用主存儲(chǔ)單元121中存儲(chǔ)的數(shù)據(jù)執(zhí)行處理。因此可以避免使用損壞的數(shù)據(jù) 執(zhí)行處理。
[0076] 另一方面,如果最終分組到達(dá),則RDMA接收單元122將確定通信已完成,即使起始 分組和中間分組均未到達(dá),并且將數(shù)據(jù)存儲(chǔ)在主存儲(chǔ)單元121中。在該情況下,其中起始分 組、中間分組等丟失的破壞的數(shù)據(jù)被存儲(chǔ)在主存儲(chǔ)單元121中。出于該原因,服務(wù)器102將 使用主存儲(chǔ)單元121中存儲(chǔ)的破壞的數(shù)據(jù)執(zhí)行處理,并且將執(zhí)行錯(cuò)誤處理。在這一點(diǎn)上,在 根據(jù)該實(shí)施例的信息處理系統(tǒng)中,如果由于鏈路斷開(kāi)而放棄起始分組、中間分組等,則最終 分組不會(huì)到達(dá)服務(wù)器102。因此,在根據(jù)該實(shí)施例的信息處理系統(tǒng)中,可以避免在發(fā)生鏈路 斷開(kāi)的情況下將破壞的數(shù)據(jù)存儲(chǔ)在服務(wù)器102的主存儲(chǔ)單元121中。
[0077] 這里,通過(guò)參照?qǐng)D6至圖8,給出了每當(dāng)發(fā)生鏈路斷開(kāi)時(shí)交換機(jī)201執(zhí)行的分組輸 出的說(shuō)明。圖6是用于說(shuō)明在交換機(jī)執(zhí)行分組傳輸期間發(fā)生鏈路接通的情況下的分組輸出 的示圖。圖7是用于說(shuō)明在交換機(jī)執(zhí)行分組傳輸之前發(fā)生鏈路接通的情況下的分組輸出的 示圖。圖8是用于說(shuō)明在交換機(jī)執(zhí)行分組傳輸期間發(fā)生鏈路接通并且在分組傳輸期間未發(fā) 生鏈路接通的情況下的分組輸出的示圖。在圖6至圖8中的每一個(gè)中,水平軸表示時(shí)間的 消逝。就是說(shuō),隨著水平軸上的位置向右前進(jìn),該位置指示的事件發(fā)生的時(shí)間變得較晚。在 下文中,術(shù)語(yǔ)"鏈路接通"和術(shù)語(yǔ)"鏈路斷開(kāi)"指的是交換機(jī)201和交換機(jī)202之間的鏈路接 通和鏈路斷開(kāi)。此外,在通過(guò)劃分?jǐn)?shù)據(jù)生成的一系列分組中,起始分組由"〇"表示,并且后 續(xù)分組按傳輸分組的順序由連續(xù)的數(shù)字表示。此外,將給出如下情況的說(shuō)明:在交換機(jī)201 和交換機(jī)202之間的耦接以外的耦接中未發(fā)生鏈路斷開(kāi)。
[0078] 在圖6中,在開(kāi)始發(fā)送分組之前已發(fā)生鏈路斷開(kāi),并且隨后在交換機(jī)201正在傳輸 分組時(shí)發(fā)生鏈路接通。具體地,在時(shí)間tl發(fā)生鏈路斷開(kāi)。隨后,服務(wù)器101在時(shí)間t2發(fā)送 起始分組。就是說(shuō),時(shí)間t2將是要嵌入在最終分組中的發(fā)送起始時(shí)間。隨后,交換機(jī)201在 時(shí)間t3和t4嘗試傳輸分組0和分組1。然而,在鏈路斷開(kāi)期間的時(shí)間T1的時(shí)段中不可能 傳輸分組。因此,交換機(jī)201放棄分組0和分組1。隨后,在時(shí)間t5發(fā)生鏈路接通。隨后, 在時(shí)間t5及其之后,交換機(jī)201可以向交換機(jī)202傳輸分組。例如,在時(shí)間t6,交換機(jī)201 向交換機(jī)202輸出分組2。隨后,交換機(jī)201將作為最終分組中存儲(chǔ)的發(fā)送起始時(shí)間的時(shí)間 t2與作為鏈路接通時(shí)間的時(shí)間t5進(jìn)行比較。隨后,由于時(shí)間t5晚于時(shí)間t2,因此交換機(jī) 201在時(shí)間t7放棄最終分組。在該情況下,由于分組0、分組1和最終分組被放棄并且不會(huì) 被發(fā)送到交換機(jī)202,因此這些分組最終不會(huì)被發(fā)送到服務(wù)器102。因此,在根據(jù)該實(shí)施例 的信息處理系統(tǒng)中,如圖6中所示,如果最終分組以外的一些分組因鏈路斷開(kāi)而被放棄,則 服務(wù)器102可以確定通信沒(méi)有完成并且發(fā)送數(shù)據(jù)失敗。出于該原因,服務(wù)器102可以避免 使用錯(cuò)誤數(shù)據(jù)執(zhí)行處理。
[0079] 另一方面,如傳統(tǒng)方式那樣,當(dāng)在所有接收到的分組可以被傳輸?shù)那闆r下傳輸這 些分組時(shí),在沒(méi)有對(duì)發(fā)送起始時(shí)間和鏈路接通時(shí)間進(jìn)行比較的情況下,分組〇和分組1未 被發(fā)送到交換機(jī)202,但是最終分組將被發(fā)送到交換機(jī)202。隨后,最終分組將到達(dá)服務(wù)器 102。因此,即使最終分組以外的一些分組因鏈路斷開(kāi)而被放棄,服務(wù)器102仍將確定通信 已完成。出于該原因,服務(wù)器102將使用錯(cuò)誤數(shù)據(jù)執(zhí)行處理。
[0080] 這里,參照?qǐng)D6說(shuō)明了放棄包括起始分組的一些分組的情況。在放棄一些中間分 組的情況下,利用根據(jù)該實(shí)施例的信息處理設(shè)備,最終分組也被放棄并且不會(huì)到達(dá)服務(wù)器 102。因此,在該情況下,利用根據(jù)該實(shí)施例的信息處理設(shè)備,可以避免使用錯(cuò)誤數(shù)據(jù)執(zhí)行處 理。另一方面,在放棄一些中間分組的情況下,在所有接收到的分組可以被傳輸?shù)那闆r下傳 輸這些分組的傳統(tǒng)方法中,在沒(méi)有對(duì)發(fā)送起始時(shí)間和鏈路接通時(shí)間進(jìn)行比較的情況下,最 終分組將到達(dá)服務(wù)器102。出于該原因,服務(wù)器102將使用錯(cuò)誤數(shù)據(jù)執(zhí)行處理。
[0081] 在圖7中,在開(kāi)始發(fā)送分組之前發(fā)生鏈路斷開(kāi),并且隨后在交換機(jī)201傳輸分組之 前發(fā)生鏈路接通。具體地,在時(shí)間til發(fā)生鏈路斷開(kāi)。隨后,在時(shí)間tl2發(fā)生鏈路接通。在 這些時(shí)間之間的時(shí)間段T2期間,交換機(jī)201不能向交換機(jī)202傳輸分組。然而,由于交換 機(jī)201同時(shí)沒(méi)有發(fā)送分組,因此沒(méi)有分組被放棄。隨后,服務(wù)器101在時(shí)間tl3發(fā)送起始分 組。就是說(shuō),時(shí)間tl3將是要嵌入在最終分組中的發(fā)送起始時(shí)間。隨后,在時(shí)間tl2及其之 后,交換機(jī)201可以向交換機(jī)202傳輸分組。在晚于時(shí)間tl2的時(shí)間tl4至tl6,交換機(jī)201 向交換機(jī)202輸出分組0至2。隨后,交換機(jī)201將作為最終分組中存儲(chǔ)的發(fā)送起始時(shí)間的 時(shí)間tl3與作為鏈路接通時(shí)間的時(shí)間tl2進(jìn)行比較。隨后,由于時(shí)間tl2早于時(shí)間tl3,因 此交換機(jī)201在時(shí)間tl7向交換機(jī)201傳輸最終分組。在該情況下,所有分組被傳輸?shù)浇?換機(jī)202。因此,在根據(jù)該實(shí)施例的信息處理系統(tǒng)中,如圖7中所示,如果在開(kāi)始發(fā)送分組 之前發(fā)生鏈路接通,則服務(wù)器102確定通信已完成。隨后,服務(wù)器102使用正常數(shù)據(jù)執(zhí)行處 理。
[0082] 在如圖7中所示的該情況下,即使如傳統(tǒng)方式那樣,當(dāng)在所有接收到的分組可以 被傳輸?shù)那闆r下傳輸這些分組時(shí),在沒(méi)有對(duì)發(fā)送起始時(shí)間和鏈路接通時(shí)間進(jìn)行比較的情 況下,如該實(shí)施例中的那樣,所有分組被發(fā)送到交換機(jī)202并且最終所有分組到達(dá)服務(wù)器 102。因此,即使在傳統(tǒng)方法中,服務(wù)器102仍確定通信已完成。隨后,服務(wù)器102使用正常 數(shù)據(jù)執(zhí)行處理。
[0083] 在圖8中,在發(fā)送分組期間發(fā)生鏈路斷開(kāi),并且隨后在交換機(jī)201傳輸最終分組的 時(shí)間點(diǎn)之后發(fā)生鏈路接通。具體地,服務(wù)器101在時(shí)間t21發(fā)送起始分組。就是說(shuō),時(shí)間 t21將是要嵌入在最終分組中的發(fā)送起始時(shí)間。隨后,在時(shí)間t21及其之后直至?xí)r間t24為 止,交換機(jī)201可以向交換機(jī)202傳輸分組。由于時(shí)間t22和時(shí)間t23位于時(shí)間t21和時(shí) 間t24之間,因此交換機(jī)201向交換機(jī)202輸出分組0和分組1。隨后,在時(shí)間t24發(fā)生鏈 路斷開(kāi)。隨后,在時(shí)間t27發(fā)生鏈路接通。在這些時(shí)間之間的時(shí)間段T3期間,交換機(jī)201 不能向交換機(jī)202傳輸分組。出于該原因,交換機(jī)201放棄從分組2到最終分組的、旨在在 時(shí)間段T3中從時(shí)間t25到時(shí)間t26傳輸?shù)姆纸M。因此,開(kāi)關(guān)201沒(méi)有將從分組2到最終分 組的分組傳輸?shù)浇粨Q機(jī)202。出于該原因,最終分組沒(méi)有到達(dá)服務(wù)器102。因此,在根據(jù)該 實(shí)施例的信息處理系統(tǒng)中,如圖8中所示,如果在交換機(jī)201中,在發(fā)送分組期間發(fā)生鏈路 斷開(kāi)并且在傳輸最終分組的時(shí)間點(diǎn)之后發(fā)生鏈路接通,則服務(wù)器102確定通信沒(méi)有完成并 且數(shù)據(jù)發(fā)送失敗。因此,服務(wù)器102可以避免使用錯(cuò)誤數(shù)據(jù)執(zhí)行處理。
[0084] 在如圖8所示的該情況下,即使如傳統(tǒng)方式那樣,當(dāng)在所有接收到的分組可以被 傳輸?shù)那闆r下傳輸這些分組時(shí),在沒(méi)有對(duì)發(fā)送起始時(shí)間和鏈路接通時(shí)間進(jìn)行比較的情況 下,如該實(shí)施例中的那樣,最終分組被放棄并且最終沒(méi)有到達(dá)服務(wù)器102。隨后,服務(wù)器102 確定通信沒(méi)有完成并且數(shù)據(jù)發(fā)送失敗。因此,服務(wù)器102可以避免使用錯(cuò)誤數(shù)據(jù)執(zhí)行處理。
[0085] 因此,在圖7和圖8的情況下,使用根據(jù)該實(shí)施例的信息處理系統(tǒng)以及使用在所有 接收到的分組可以被傳輸?shù)那闆r下傳輸這些分組的方法,在沒(méi)有執(zhí)行發(fā)送起始時(shí)間和鏈路 接通時(shí)間之間的比較的情況下,服務(wù)器102可以避免使用錯(cuò)誤數(shù)據(jù)執(zhí)行處理。
[0086] 與此相反,如圖6中所示,如果最終分組以外的一些分組因鏈路斷開(kāi)而被放棄,則 在根據(jù)該實(shí)施例的信息處理系統(tǒng)中服務(wù)器102可以避免使用錯(cuò)誤數(shù)據(jù)執(zhí)行處理。另一方 面,使用在所有接收到的分組可以被傳輸?shù)那闆r下傳輸這些分組的方法,在沒(méi)有執(zhí)行發(fā)送 起始時(shí)間和鏈路接通時(shí)間之間的比較的情況下,服務(wù)器102將使用錯(cuò)誤數(shù)據(jù)執(zhí)行處理。 [0087] 參照?qǐng)D9,接下來(lái)將說(shuō)明服務(wù)器101執(zhí)行的發(fā)送分組的處理。圖9是服務(wù)器執(zhí)行的 發(fā)送分組的處理的流程圖。
[0088] RDMA發(fā)送單元115接收傳輸操作者輸入的分組的指令(步驟S101)。
[0089] 隨后,根據(jù)接收到的傳輸指令,RDMA發(fā)送單元115確認(rèn)主存儲(chǔ)單元114中存儲(chǔ)的 數(shù)據(jù)將被劃分成分組并且直接存儲(chǔ)器存取(DMA)將被執(zhí)行(步驟S102)。
[0090] RDMA發(fā)送單元115將主存儲(chǔ)單元114中存儲(chǔ)的數(shù)據(jù)劃分成分組并且獲取DMA數(shù)據(jù) (步驟 S103)。
[0091] RDMA發(fā)送單元115生成要發(fā)送的DMA數(shù)據(jù)的分組報(bào)頭(步驟S104)。
[0092] RDMA發(fā)送單元115確定將要發(fā)送的DMA數(shù)據(jù)是否是最終分組(步驟S105)。如果 該數(shù)據(jù)不是最終分組(步驟S105處的否),則RDMA發(fā)送單元115將所生成的分組報(bào)頭添加 到所獲取的DMA數(shù)據(jù)并且隨后將分組發(fā)送到交換機(jī)201 (步驟S106)。
[0093] 隨后,RDMA發(fā)送單元115確定所發(fā)送的分組是否是起始分組(步驟S107)。如果所 發(fā)送的分組是起始分組(步驟S107處的是),則RDMA發(fā)送單元115向時(shí)間嵌入單元112通 知起始分組的發(fā)送。時(shí)間嵌入單元112從時(shí)鐘111獲取發(fā)送起始時(shí)間,并且將所獲取的發(fā) 送起始時(shí)間存儲(chǔ)在發(fā)送起始時(shí)間寄存器113中(步驟S108)。隨后,RDMA發(fā)送單元115返回 步驟S102處的操作。
[0094] 相反,如果發(fā)送分組不是起始分組(步驟S107處的否),則RDMA發(fā)送單元115返回 步驟S102處的操作。
[0095] 另一方面,如果所獲取的DMA數(shù)據(jù)是最終分組(步驟S105處的是),則時(shí)間嵌入單 元112將發(fā)送起始時(shí)間嵌入在DMA發(fā)送單元115生成的分組報(bào)頭中(步驟S109)。
[0096] 隨后,RDMA發(fā)送單元115將被嵌入發(fā)送起始時(shí)間的分組報(bào)頭添加到DMA數(shù)據(jù),并 且隨后發(fā)送分組(步驟S110)。
[0097] 參照?qǐng)D10,接下來(lái)將說(shuō)明交換機(jī)201執(zhí)行的傳輸分組的處理。圖10是交換機(jī)執(zhí)行 的傳輸分組的處理的流程圖。參照?qǐng)D10的流程圖,將說(shuō)明鏈路接通時(shí)間已存儲(chǔ)在鏈路接通 時(shí)間寄存器216中的情況。圖10的流程圖圖示了一個(gè)分組的處理流程,并且事實(shí)上,圖10 的流程圖中所示的處理應(yīng)用于通過(guò)RDMA發(fā)送的所有分組。
[0098] 接收單元213從服務(wù)器101接收分組(步驟S201)。
[0099] 接收單元213從接收到的分組獲取報(bào)頭信息(步驟S202)。此外,接收單元213向 發(fā)送完成阻止單元215發(fā)送所獲取的報(bào)頭信息。
[0100] 接收單元213向報(bào)頭信息中存儲(chǔ)的發(fā)送目標(biāo)所耦接的傳輸目標(biāo)的端口發(fā)送分組 (步驟S203)。傳輸單元214從接收單元213接收要傳輸?shù)姆纸M。
[0101] 發(fā)送完成阻止單元215根據(jù)接收到的分組的報(bào)頭信息確定要傳輸?shù)姆纸M是否是 最終分組(步驟S204)。如果分組不是最終分組(步驟S204處的否),則傳輸單元214傳輸該 分組(步驟S205)。
[0102] 相反,如果要傳輸?shù)姆纸M是最終分組(步驟S204處的是),則發(fā)送完成阻止單元 215獲取最終分組中嵌入的發(fā)送起始時(shí)間。此外,發(fā)送完成阻止單元215從鏈路接通時(shí)間寄 存器216獲取鏈路接通時(shí)間。隨后,發(fā)送完成阻止單元215確定鏈路接通時(shí)間是否晚于發(fā) 送起始時(shí)間(步驟S206)。如果鏈路接通時(shí)間等于或早于發(fā)送起始時(shí)間(步驟S206處的否), 則傳輸單元214前往步驟S205處的操作,其中傳輸單元214傳輸分組。
[0103] 相反,如果鏈路接通時(shí)間晚于發(fā)送起始時(shí)間(步驟S206處的是),則發(fā)送完成阻止 單元215指令傳輸單元214放棄分組。隨后,傳輸單元214放棄要被傳輸并且作為最終分 組的分組(步驟S207)。
[0104] 參照?qǐng)D11,接下來(lái)將說(shuō)明服務(wù)器102執(zhí)行的接收分組的處理。圖11是服務(wù)器執(zhí)行 的接收分組的處理的流程圖。
[0105] RDMA接收單元122從交換機(jī)203接收分組(步驟S301)。
[0106] 隨后,RDMA接收單元122確定分組是否是最終分組(步驟S302)。如果分組不是最 終分組(步驟S302處的否),則RDMA接收單元122返回步驟S301處的操作。
[0107] 相反,如果分組是最終分組(步驟S302處的是),則RDMA接收單元122發(fā)出通信完 成的通知(步驟S303)并且將數(shù)據(jù)寫(xiě)入在主存儲(chǔ)單元121中。
[0108] 如上文說(shuō)明的,當(dāng)執(zhí)行RDMA時(shí),如果由于鏈路斷開(kāi),即分組丟失而發(fā)生分組的放 棄,使得最終分組不會(huì)到達(dá)接收側(cè)的服務(wù)器,則根據(jù)該實(shí)施例的信息處理系統(tǒng)放棄最終分 組。結(jié)果,當(dāng)發(fā)生分組丟失時(shí),接收側(cè)的服務(wù)器不能確認(rèn)通信完成,并且因此接收側(cè)的服務(wù) 器將確定RDMA數(shù)據(jù)傳輸失敗。因此,可以獲得如下效果:接收側(cè)的服務(wù)器可以避免使用破 壞的數(shù)據(jù)執(zhí)行處理,并且可以避免由于鏈路斷開(kāi)引起的分組丟失導(dǎo)致的故障的生成。
[0109] 此外,在根據(jù)該實(shí)施例的信息處理系統(tǒng)中,發(fā)送起始時(shí)間被嵌入在最終分組中,并 且基于發(fā)送起始時(shí)間和鏈路接通時(shí)間之間的比較,可以確定是否已發(fā)生分組丟失。因此,可 以利用簡(jiǎn)單的配置實(shí)現(xiàn)上文提及的功能。
[0110] (第一修改)
[0111] 接下來(lái)將說(shuō)明第一實(shí)施例的第一修改。盡管在上述第一實(shí)施例中在發(fā)生分組丟 失的情況下交換機(jī)放棄最終分組,但是在該修改中,交換機(jī)向接收側(cè)的服務(wù)器(以下縮寫(xiě)為 "接收側(cè)服務(wù)器")通知錯(cuò)誤。因此,下文將主要說(shuō)明交換機(jī)執(zhí)行的錯(cuò)誤通知以及接收到錯(cuò)誤 通知的服務(wù)器的操作。
[0112] 發(fā)送完成阻止單元215根據(jù)從接收單元213接收到的分組的報(bào)頭信息識(shí)別最終分 組。隨后,發(fā)送完成阻止單元215從最終分組獲取發(fā)送起始時(shí)間,并且將所獲取的發(fā)送起始 時(shí)間與鏈路接通時(shí)間寄存器216中存儲(chǔ)的鏈路接通時(shí)間進(jìn)行比較。
[0113] 如果鏈路接通時(shí)間晚于發(fā)送起始時(shí)間,則發(fā)送完成阻止單元215將錯(cuò)誤標(biāo)志嵌入 在最終分組的報(bào)頭中。例如,發(fā)送完成阻止單元215通過(guò)將最終分組的報(bào)頭中的預(yù)定位置 的位設(shè)定為表示錯(cuò)誤的值(例如" 1")來(lái)嵌入錯(cuò)誤標(biāo)志。
[0114] 傳輸單兀214向交換機(jī)202傳輸具有被嵌入錯(cuò)誤標(biāo)志的報(bào)頭的最終分組。
[0115] 服務(wù)器102的RDMA接收單元122接收具有被嵌入錯(cuò)誤標(biāo)志的報(bào)頭的最終分組。隨 后,RDMA接收單元122檢查最終分組的報(bào)頭的錯(cuò)誤標(biāo)志,并且驗(yàn)證錯(cuò)誤的發(fā)生,即分組丟失 的發(fā)生。隨后,RDMA接收單元122不執(zhí)行通信完成的通知并且向使用通過(guò)RDMA傳輸?shù)臄?shù) 據(jù)的較高層級(jí)軟件通知錯(cuò)誤的發(fā)生。從而,被通知錯(cuò)誤發(fā)生的較高層級(jí)軟件避免執(zhí)行使用 通過(guò)RDMA傳輸?shù)臄?shù)據(jù)的處理。
[0116] 如上文說(shuō)明的,在根據(jù)該修改的信息處理系統(tǒng)中,如果發(fā)生由于鏈路斷開(kāi)引起的 分組丟失,則接收側(cè)服務(wù)器接收被嵌入錯(cuò)誤標(biāo)志的最終分組。從而,接收側(cè)服務(wù)器可以獲知 分組丟失的發(fā)生,并且可以避免由于鏈路斷開(kāi)引起的分組丟失導(dǎo)致的故障的生成。
[0117] (第二修改)
[0118] 此外,將說(shuō)明作為第一實(shí)施例的另一修改的第二修改。在上述第一實(shí)施例中,如果 鏈路接通時(shí)間晚于發(fā)送起始時(shí)間,則交換機(jī)放棄最終分組。與此相反,該修改的交換機(jī)在包 括時(shí)鐘誤差的條件下確定是否發(fā)生分組丟失。因此,下文將主要說(shuō)明交換機(jī)執(zhí)行的確定分 組丟失的處理。
[0119] 在發(fā)送完成阻止單元215中,在服務(wù)器101和每個(gè)交換機(jī)201至203中分別包括 的時(shí)鐘111和時(shí)鐘211之間出現(xiàn)的誤差的最大時(shí)間段被預(yù)先存儲(chǔ)。例如,在使用NTP等的 情況下一秒被存儲(chǔ)為誤差的最大時(shí)間段,并且其被存儲(chǔ)在發(fā)送完成阻止單元215中。
[0120] 發(fā)送完成阻止單元215根據(jù)從接收單元213接收到的分組的報(bào)頭信息識(shí)別最終分 組。隨后,發(fā)送完成阻止單元215獲取鏈路接通時(shí)間寄存器216中存儲(chǔ)的鏈路接通時(shí)間,并 且隨后將誤差的最大時(shí)間段加到鏈路接通時(shí)間。
[0121] 隨后,發(fā)送完成阻止單元215從最終分組獲取發(fā)送起始時(shí)間,并且將發(fā)送起始時(shí) 間與通過(guò)將誤差的最大時(shí)間段加到鏈路接通時(shí)間而獲得的時(shí)間進(jìn)行比較。
[0122] 如果通過(guò)將誤差的最大時(shí)間段加到鏈路接通時(shí)間而獲得的時(shí)間晚于發(fā)送起始時(shí) 間,則發(fā)送完成阻止單元215向傳輸單元214通知放棄最終分組。
[0123] 通過(guò)這種方式,通過(guò)包括誤差的最大時(shí)間段用于確定發(fā)生分組丟失,可以更可靠 地檢測(cè)分組丟失的發(fā)生,并且可以避免由于鏈路斷開(kāi)引起的分組丟失導(dǎo)致的故障的生成。
[0124] [第二實(shí)施例]
[0125] 圖12是根據(jù)第二實(shí)施例的信息處理系統(tǒng)的框圖。根據(jù)該實(shí)施例的信息處理系統(tǒng) 與第一實(shí)施例的不同之處在于,在交換機(jī)的接收側(cè)還檢測(cè)鏈路斷開(kāi)之后的鏈路接通的發(fā) 生,并且將鏈路接通時(shí)間與發(fā)送起始時(shí)間進(jìn)行比較。在圖12中,除非特別說(shuō)明,否則具有與 圖2中的單元相同的附圖標(biāo)記的單元具有相同的功能。
[0126] 如第一實(shí)施例中的那樣,鏈路接通時(shí)間獲取單元212通過(guò)監(jiān)視傳輸單元214的輸 出等來(lái)監(jiān)視交換機(jī)201和交換機(jī)202之間的耦接狀態(tài),并且檢測(cè)鏈路接通的發(fā)生。
[0127] 此外,在該實(shí)施例中,鏈路接通時(shí)間獲取單元212通過(guò)監(jiān)視接收單元213中的接收 分組的狀態(tài)等來(lái)監(jiān)視服務(wù)器101和交換機(jī)201之間的耦接狀態(tài)。例如,如果接收單元213 中的分組接收停止預(yù)定的時(shí)間段,則鏈路接通時(shí)間獲取單元212確定發(fā)生鏈路斷開(kāi)。隨后, 如果在確定發(fā)生鏈路斷開(kāi)之后繼續(xù)接收單元213中的分組接收,則鏈路接通時(shí)間獲取單元 212確定發(fā)生鏈路接通。在下文中,服務(wù)器101和交換機(jī)201之間的耦接的鏈路接通和鏈路 斷開(kāi)被稱(chēng)為"接收側(cè)鏈路接通"和"接收側(cè)鏈路斷開(kāi)"。此外,交換機(jī)201和交換機(jī)202之間 的耦接的鏈路接通和鏈路斷開(kāi)被稱(chēng)為"傳輸側(cè)鏈路接通"和"傳輸側(cè)鏈路斷開(kāi)"。
[0128] 在確定發(fā)生傳輸側(cè)鏈路接通時(shí),鏈路接通時(shí)間獲取單元212從時(shí)鐘211獲取時(shí)間。 在下文中,發(fā)生傳輸側(cè)鏈路接通并且由鏈路接通時(shí)間獲取單元212獲取的時(shí)間被稱(chēng)為"傳 輸側(cè)鏈路接通時(shí)間"。鏈路接通時(shí)間獲取單元212將所獲取的傳輸側(cè)鏈路接通時(shí)間輸出到 發(fā)送完成阻止單元215。
[0129] 在確定發(fā)生接收側(cè)鏈路接通時(shí),鏈路接通時(shí)間獲取單元212從時(shí)鐘211獲取時(shí)間。 在下文中,發(fā)生接收側(cè)鏈路接通并且由鏈路接通時(shí)間獲取單元212獲取的時(shí)間被稱(chēng)為"接 收側(cè)鏈路接通時(shí)間"。鏈路接通時(shí)間獲取單元212將所獲取的接收側(cè)鏈路接通時(shí)間輸出到 發(fā)送完成阻止單元215。
[0130] 發(fā)送完成阻止單元215具有作為存儲(chǔ)設(shè)備的鏈路接通時(shí)間寄存器216。當(dāng)發(fā)生傳 輸側(cè)鏈路接通時(shí),發(fā)送完成阻止單元215從鏈路接通時(shí)間獲取單元212接收傳輸側(cè)鏈路接 通時(shí)間。隨后,發(fā)送完成阻止單元215將接收到的傳輸側(cè)鏈路接通時(shí)間存儲(chǔ)在鏈路接通時(shí) 間寄存器216中。如果傳輸側(cè)鏈路接通時(shí)間已被存儲(chǔ)在鏈路接通時(shí)間寄存器216中,則發(fā) 送完成阻止單元215通過(guò)將鏈路接通時(shí)間寄存器216中存儲(chǔ)的傳輸側(cè)鏈路接通時(shí)間替換為 新獲取的傳輸側(cè)鏈路接通時(shí)間來(lái)對(duì)其進(jìn)行更新。
[0131] 當(dāng)發(fā)生接收側(cè)鏈路接通時(shí),發(fā)送完成阻止單元215從鏈路接通時(shí)間獲取單元212 接收接收側(cè)鏈路接通時(shí)間。隨后,發(fā)送完成阻止單元215將接收到的接收側(cè)鏈路接通時(shí)間 存儲(chǔ)在鏈路接通時(shí)間寄存器216中。如果接收側(cè)鏈路接通時(shí)間已被存儲(chǔ)在鏈路接通時(shí)間寄 存器216中,則發(fā)送完成阻止單元215通過(guò)將鏈路接通時(shí)間寄存器216中存儲(chǔ)的接收側(cè)鏈 路接通時(shí)間替換為新獲取的接收側(cè)鏈路接通時(shí)間來(lái)對(duì)其進(jìn)行更新。
[0132] 就是說(shuō),發(fā)送完成阻止單元215總是在鏈路接通時(shí)間寄存器216中保存最新的傳 輸側(cè)鏈路接通時(shí)間和接收側(cè)鏈路接通時(shí)間。
[0133] 此外,通過(guò)參考從接收單元213獲取的分組的報(bào)頭信息,發(fā)送完成阻止單元215確 定接收單元213接收的并且發(fā)送到傳輸單元214的分組是否是最終分組。
[0134] 如果該分組是最終分組,則發(fā)送完成阻止單元215將鏈路接通時(shí)間寄存器216中 存儲(chǔ)的傳輸側(cè)鏈路接通時(shí)間和接收側(cè)鏈路接通時(shí)間與最終分組中存儲(chǔ)的發(fā)送起始時(shí)間進(jìn) 行比較。如果傳輸側(cè)鏈路接通時(shí)間或接收側(cè)鏈路接通時(shí)間晚于發(fā)送起始時(shí)間,則發(fā)送完成 阻止單元215指令傳輸單元214放棄最終分組。
[0135] 如果傳輸單元214從接收單元213接收到最終分組,則傳輸單元214檢查是否存 在來(lái)自發(fā)送完成阻止單元215的請(qǐng)求放棄最終分組的指令。如果存在請(qǐng)求放棄最終分組的 指令,則傳輸單元214放棄最終分組并且不會(huì)將最終分組輸出到交換機(jī)202。
[0136] 盡管上文已給出了關(guān)于交換機(jī)201的說(shuō)明,但是根據(jù)該實(shí)施例,諸如交換機(jī)202和 交換機(jī)203的其他交換機(jī)具有與交換機(jī)201相同的功能。
[0137] 這里,盡管通過(guò)使用第一實(shí)施例的方法沒(méi)有獲知服務(wù)器101和交換機(jī)201之間的 耦接的鏈路斷開(kāi)的發(fā)生,但是在該實(shí)施例的信息處理系統(tǒng)中可以檢測(cè)服務(wù)器101和服務(wù)器 102之間的所有耦接的鏈路斷開(kāi)。
[0138] 如上文說(shuō)明的,根據(jù)該實(shí)施例的交換機(jī)監(jiān)視接收側(cè)的耦接和傳輸側(cè)的耦接兩者的 耦接狀態(tài),并且檢測(cè)這兩側(cè)中的每一側(cè)的耦接中的鏈路接通的發(fā)生。隨后,如果任一耦接中 發(fā)生鏈路接通的時(shí)間晚于發(fā)送起始時(shí)間,則根據(jù)該實(shí)施例的交換機(jī)確定發(fā)生分組丟失,并 且放棄最終分組。從而,在交換機(jī)的接收側(cè)和發(fā)送側(cè)中的任一側(cè),可以檢測(cè)發(fā)生因鏈路斷開(kāi) 引起的分組丟失。因此,接收側(cè)的服務(wù)器可以更可靠地避免使用因分組丟失而變得錯(cuò)誤的 數(shù)據(jù)來(lái)執(zhí)行處理。
[0139] [第三實(shí)施例]
[0140] 圖13是根據(jù)第三實(shí)施例的信息處理系統(tǒng)的框圖。根據(jù)該實(shí)施例的信息處理系統(tǒng) 與第一實(shí)施例的不同之處在于,在服務(wù)器的發(fā)送側(cè)還檢測(cè)鏈路斷開(kāi)之后的鏈路接通的發(fā) 生,并且將鏈路接通時(shí)間與發(fā)送起始時(shí)間進(jìn)行比較。在圖13中,除非特別說(shuō)明,否則具有與 圖2中的單元相同的附圖標(biāo)記的單元具有相同的功能。
[0141] 在該實(shí)施例中,除了第一實(shí)施例的配置之外,服務(wù)器101具有發(fā)送完成阻止單元 117和鏈路接通時(shí)間獲取單元116。
[0142] 鏈路接通時(shí)間獲取單元116通過(guò)監(jiān)視傳輸單元214中的分組發(fā)送狀態(tài)來(lái)監(jiān)視服務(wù) 器101和交換機(jī)201之間的耦接狀態(tài)。例如,如果從RDMA發(fā)送單元115發(fā)送分組停止預(yù)定 的時(shí)間段,則鏈路接通時(shí)間獲取單元116確定發(fā)生鏈路斷開(kāi)。隨后,在確定發(fā)生鏈路斷開(kāi)之 后,如果從RDMA發(fā)送單元115發(fā)送分組繼續(xù),則傳輸單元214確定發(fā)生鏈路接通。在下文 中,服務(wù)器101和交換機(jī)201之間的耦接的鏈路接通和鏈路斷開(kāi)被簡(jiǎn)單地稱(chēng)為"鏈路接通" 和"鏈路斷開(kāi)"。
[0143] 在確定發(fā)生鏈路接通時(shí),鏈路接通時(shí)間獲取單元116從時(shí)鐘111獲取時(shí)間。在下 文中,鏈路接通時(shí)間獲取單元116獲取的時(shí)間被稱(chēng)為"鏈路接通時(shí)間"。鏈路接通時(shí)間獲取 單元116將所獲取的鏈路接通時(shí)間輸出到發(fā)送完成阻止單元117。
[0144] 發(fā)送完成阻止單元117具有作為存儲(chǔ)設(shè)備的鏈路接通時(shí)間寄存器118。當(dāng)發(fā)生鏈 路接通時(shí),發(fā)送完成阻止單元117從鏈路接通時(shí)間獲取單元116接收鏈路接通時(shí)間。隨后, 發(fā)送完成阻止單元117將接收到的鏈路接通時(shí)間存儲(chǔ)在鏈路接通時(shí)間寄存器118中。如果 鏈路接通時(shí)間已被存儲(chǔ)在鏈路接通時(shí)間寄存器118中,則發(fā)送完成阻止單元117通過(guò)將鏈 路接通時(shí)間寄存器118中存儲(chǔ)的鏈路接通時(shí)間替換為新獲取的鏈路接通時(shí)間來(lái)對(duì)其進(jìn)行 更新。就是說(shuō),發(fā)送完成阻止單元117總是在鏈路接通時(shí)間寄存器118中保存最新的鏈路 接通時(shí)間。
[0145] 此外,通過(guò)參考RDMA發(fā)送單元115要發(fā)送的分組的報(bào)頭信息,發(fā)送完成阻止單元 117確定RDMA發(fā)送單元115要發(fā)送的分組是否是最終分組。
[0146] 如果該分組是最終分組,則發(fā)送完成阻止單元117將鏈路接通時(shí)間寄存器118中 存儲(chǔ)的鏈路接通時(shí)間與最終分組中存儲(chǔ)的發(fā)送起始時(shí)間進(jìn)行比較。如果鏈路接通時(shí)間晚于 發(fā)送起始時(shí)間,則發(fā)送完成阻止單元117指令RDMA發(fā)送單元115放棄最終分組。
[0147] 這里,盡管在該實(shí)施例中發(fā)送完成阻止單元117執(zhí)行與交換機(jī)201的發(fā)送完成阻 止單元215相同的操作,但是其他方法可以用作對(duì)發(fā)送起始時(shí)間和鏈路接通時(shí)間進(jìn)行比較 的方法。例如,發(fā)送完成阻止單元117可以在獲取鏈路接通時(shí)間的時(shí)間點(diǎn)檢查發(fā)送起始時(shí) 間寄存器113中存儲(chǔ)的發(fā)送起始時(shí)間,并且可以將發(fā)送起始時(shí)間與鏈路接通時(shí)間進(jìn)行比 較。同樣地,在該情況下,如果鏈路接通時(shí)間晚于發(fā)送起始時(shí)間,則發(fā)送完成阻止單元117 可以指令RDMA發(fā)送單元115放棄最終分組。
[0148] 當(dāng)發(fā)送最終分組時(shí),RDMA發(fā)送單元115檢查是否存在來(lái)自發(fā)送完成阻止單元117 的請(qǐng)求放棄最終分組的指令。如果存在請(qǐng)求放棄最終分組的指令,則RDMA發(fā)送單元115放 棄最終分組并且不會(huì)將最終分組輸出到交換機(jī)201。
[0149] 這里,盡管通過(guò)使用第一實(shí)施例的方法沒(méi)有獲知服務(wù)器101和交換機(jī)201之間的 耦接的鏈路斷開(kāi)的發(fā)生,但是在該實(shí)施例的信息處理系統(tǒng)中可以檢測(cè)服務(wù)器101和服務(wù)器 102之間的所有耦接的鏈路斷開(kāi)。
[0150] 如上文說(shuō)明的,根據(jù)該實(shí)施例的信息處理設(shè)備還檢測(cè)發(fā)送側(cè)的服務(wù)器中的鏈路接 通的發(fā)生。隨后,如果任何耦接中發(fā)生鏈路接通的時(shí)間晚于發(fā)送起始時(shí)間,則根據(jù)該實(shí)施 例,發(fā)送側(cè)的服務(wù)器確定已發(fā)生分組丟失,并且放棄最終分組。從而,可以在發(fā)送側(cè)的服務(wù) 器中檢測(cè)發(fā)生因鏈路斷開(kāi)引起的分組丟失。因此,接收側(cè)的服務(wù)器可以更可靠地避免使用 因分組丟失而變得錯(cuò)誤的數(shù)據(jù)來(lái)執(zhí)行處理。
[0151] 此外,盡管僅在發(fā)送側(cè)的服務(wù)器中提供了檢測(cè)鏈路接通的發(fā)生以及放棄最終分組 的功能,但是在接收側(cè)的服務(wù)器中也可以提供與該實(shí)施例相同的功能。例如,在接收側(cè)的服 務(wù)器中,可以檢測(cè)分組接收側(cè)的耦接的鏈路接通,并且通過(guò)將接收到的最終分組中存儲(chǔ)的 發(fā)送起始時(shí)間與鏈路接通時(shí)間進(jìn)行比較,可以檢測(cè)分組丟失。例如,在交換機(jī)的接收側(cè)和接 收側(cè)的服務(wù)器中提供檢測(cè)鏈路接通的發(fā)生以及放棄最終分組的功能,使得可以檢測(cè)發(fā)送側(cè) 的服務(wù)器和接收側(cè)的服務(wù)器之間的所有耦接的鏈路斷開(kāi)。
[0152] [第四實(shí)施例]
[0153] 接下來(lái)將說(shuō)明根據(jù)第四實(shí)施例的信息處理系統(tǒng)。根據(jù)該實(shí)施例的信息處理系統(tǒng)與 第一實(shí)施例的不同之處在于,發(fā)送起始時(shí)間也嵌入在中間分組中,并且不僅使用最終分組, 而且還使用中間分組,來(lái)檢測(cè)分組丟失的發(fā)生。根據(jù)該實(shí)施例的信息處理系統(tǒng)也在圖2的 框圖中示出。
[0154] 將說(shuō)明服務(wù)器101側(cè)的操作。時(shí)間嵌入單元112從RDMA發(fā)送單元115接收發(fā)送 起始分組的通知。時(shí)間嵌入單元112從時(shí)鐘111獲取接收到發(fā)送起始分組的通知的時(shí)間。 在下文中,時(shí)間嵌入單元112獲取的時(shí)間被稱(chēng)為"發(fā)送起始時(shí)間"。時(shí)間嵌入單元112將發(fā) 送起始時(shí)間存儲(chǔ)在發(fā)送起始時(shí)間寄存器113中。
[0155] 隨后,時(shí)間嵌入單元112獲取RDMA發(fā)送單元115想要從RDMA發(fā)送單元115發(fā)送 的分組,并且將發(fā)送起始時(shí)間寄存器113中已存儲(chǔ)的發(fā)送起始時(shí)間嵌入在獲取的分組的報(bào) 頭中。這里,由于在發(fā)送起始分組的時(shí)間點(diǎn)獲取發(fā)送起始時(shí)間,因此發(fā)送起始時(shí)間將嵌入在 中間分組和最終分組中。隨后,時(shí)間嵌入單元112將具有被嵌入發(fā)送起始時(shí)間的報(bào)頭的分 組發(fā)送到RDMA發(fā)送單元115。
[0156] RDMA發(fā)送單元115將起始分組按其原始狀態(tài)發(fā)送到交換機(jī)201。隨后,對(duì)于中間 分組和最終分組,RDMA發(fā)送單元115從時(shí)間嵌入單元112接收被嵌入發(fā)送起始時(shí)間的分組。 隨后,RDMA發(fā)送單元115依次將被嵌入發(fā)送起始時(shí)間的中間分組和最終分組發(fā)送到交換機(jī) 201。
[0157] 接下來(lái)將說(shuō)明交換機(jī)201的操作。發(fā)送完成阻止單元215從鏈路接通時(shí)間獲取單 元212接收鏈路接通時(shí)間。隨后,發(fā)送完成阻止單元215將接收到的鏈路接通時(shí)間存儲(chǔ)在 鏈路接通時(shí)間寄存器216中。如果鏈路接通時(shí)間已存儲(chǔ)在鏈路接通時(shí)間寄存器216中,則 發(fā)送完成阻止單元215通過(guò)將鏈路接通時(shí)間寄存器216中存儲(chǔ)的鏈路接通時(shí)間替換為新獲 取的鏈路接通時(shí)間來(lái)對(duì)其進(jìn)行更新。就是說(shuō),發(fā)送完成阻止單元215總是在鏈路接通時(shí)間 寄存器216中保存最新的鏈路接通時(shí)間。
[0158] 此外,發(fā)送完成阻止單元215從接收單元213依次獲取起始分組、中間分組和最終 分組的報(bào)頭。隨后,通過(guò)參考報(bào)頭,發(fā)送完成阻止單元215確定接收單元213接收的并且發(fā) 送到傳輸單元214的分組是否是中間分組和最終分組中的任一者。
[0159] 如果該分組是中間分組和最終分組中的任一者,則發(fā)送完成阻止單元215將存儲(chǔ) 在鏈路接通時(shí)間寄存器216中的鏈路接通時(shí)間與傳輸單元214將要傳輸?shù)姆纸M中存儲(chǔ)的發(fā) 送起始時(shí)間進(jìn)行比較。如果鏈路接通時(shí)間晚于發(fā)送起始時(shí)間,則發(fā)送完成阻止單元215將 錯(cuò)誤標(biāo)志嵌入在傳輸單兀214將要傳輸?shù)姆纸M中。
[0160] 傳輸單元214從接收單元213依次接收起始分組、中間分組和最終分組。隨后,傳 輸單元214將接收到的起始分組和中間分組依次輸出到交換機(jī)202。隨后,如果發(fā)送完成阻 止單元215已嵌入錯(cuò)誤標(biāo)志,則傳輸單元214將具有嵌入的錯(cuò)誤標(biāo)志的分組輸出到交換機(jī) 202。此外,如果發(fā)送完成阻止單元215沒(méi)有嵌入錯(cuò)誤標(biāo)志,則傳輸單元214將未嵌入錯(cuò)誤 標(biāo)志的分組輸出到交換機(jī)202。
[0161] 如上文所述,在根據(jù)該實(shí)施例的信息處理設(shè)備中,發(fā)送側(cè)的服務(wù)器將發(fā)送起始時(shí) 間嵌入在中間分組和最終分組中,并且如果鏈路接通時(shí)間晚于所嵌入的發(fā)送起始時(shí)間,則 交換機(jī)向接收側(cè)服務(wù)器通知錯(cuò)誤。從而,在鏈路斷開(kāi)引起的分組丟失的發(fā)生之后,可以立即 向接收側(cè)服務(wù)器通知分組丟失。因此,可以快速地檢測(cè)錯(cuò)誤的發(fā)生。
[0162] 這樣,例如,當(dāng)接收側(cè)的服務(wù)器接收到錯(cuò)誤的發(fā)生時(shí),接收側(cè)的服務(wù)器向發(fā)送側(cè)的 服務(wù)器和每個(gè)交換機(jī)通知取消傳輸,使得可以省去不必要的數(shù)據(jù)傳輸,并且可以減輕信息 處理系統(tǒng)的處理負(fù)擔(dān)和網(wǎng)絡(luò)的負(fù)擔(dān)。
[0163] 參照?qǐng)D14和圖15,接下來(lái)將說(shuō)明根據(jù)每個(gè)實(shí)施例的服務(wù)器101和交換機(jī)201的硬 件配置。圖14是服務(wù)器的硬件配置圖。圖15是交換機(jī)的硬件配置圖。圖14和圖15中的 虛線指示控制信號(hào)的路徑,并且實(shí)線指示諸如分組的數(shù)據(jù)的路徑。
[0164] 如圖14中所示,服務(wù)器101包括中央處理單元(CPU)801、存儲(chǔ)器802、網(wǎng)絡(luò)接口卡 (NIC) 803和芯片組804。
[0165] CPU801是算術(shù)處理單元。存儲(chǔ)器實(shí)現(xiàn)主存儲(chǔ)單元114。CPU801、存儲(chǔ)器802、NIC803 和芯片組804通過(guò)總線耦接。
[0166] NIC803包括作為發(fā)送直接存儲(chǔ)器存取控制器(DMAC)的DMAC TX831、作為發(fā)送 控制設(shè)備的CNTL TX832、作為分組發(fā)送設(shè)備的PKT XMIT833、以及分組緩沖器834。此外, NIC803包括作為接收DMAC的DMAC RX836、作為接收控制設(shè)備的CNTL RX837、作為分組接收 設(shè)備的PKT RECV838、以及分組緩沖器839。此外,NIC803具有時(shí)鐘835。
[0167] DMAC TX831控制通過(guò)直接存儲(chǔ)器存取進(jìn)行的數(shù)據(jù)傳送。CNTL TX832執(zhí)行對(duì)數(shù)據(jù) 傳送的集中控制。例如,CNTL TX832向DMAC TX831提供通過(guò)DMAC進(jìn)行數(shù)據(jù)傳輸?shù)闹噶畹取?此外,CNTL TX832向PKT XMIT833提供發(fā)送分組、獲取并嵌入發(fā)送起始時(shí)間等的指令。PKT XMIT833將從DMAC TX831接收到的分組積累在分組緩沖器834中,并且發(fā)送積累的分組。 此外,PKT XMIT833將從時(shí)鐘835獲取的發(fā)送起始時(shí)間嵌入在分組中。
[0168] 時(shí)鐘835實(shí)現(xiàn)例如時(shí)鐘111的功能。DMAC TX831和PKT XMIT833實(shí)現(xiàn)例如RDMA 發(fā)送單元115和時(shí)間嵌入單元112的功能。
[0169] DMAC RX836執(zhí)行對(duì)通過(guò)直接存儲(chǔ)器存取進(jìn)行的數(shù)據(jù)接收的控制。CNTL RX837執(zhí) 行對(duì)數(shù)據(jù)接收的集中控制。例如,CNTL RX837向DMAC RX836提供通過(guò)DMAC進(jìn)行數(shù)據(jù)接收 的指令。此外,CNTL RX837向PKT RECV838提供發(fā)送分組、獲取并嵌入發(fā)送起始時(shí)間等的 指令。PKT RECV838將接收到的分組積累在分組緩沖器839中,并且將積累的分組輸出到 DMAC RX836。
[0170] 服務(wù)器102也具有與圖14的服務(wù)器101相同的配置,并且DMAC RX836、CNTL RX837、PKT RECV838和分組緩沖器839實(shí)現(xiàn)例如RDMA接收單元122的功能。在該情況下, 存儲(chǔ)器802實(shí)現(xiàn)例如主存儲(chǔ)單元121的功能。
[0171] 隨后,如圖15中所示,例如,交換機(jī)201具有從端口 904-1至端口 904-N的N個(gè)端 口。此外,交換機(jī)201包括時(shí)鐘901、仲裁器902和分組交叉開(kāi)關(guān)903。
[0172] 端口 904-1具有作為分組接收設(shè)備的PKT RECV905和作為分組發(fā)送設(shè)備的PKT XMIT906OPKT RECV905具有分組緩沖器95(LPKT XMIT906具有分組緩沖器960。端口 904-N 具有 PKT RECV907 和 PKT XMIT908。PKT RECV907 具有分組緩沖器 970。PKT XMIT908 具有 分組緩沖器980。這里,其他端口具有與上文提及相同的配置。
[0173] 時(shí)鐘901實(shí)現(xiàn)例如時(shí)鐘211的功能。
[0174] 仲裁器902執(zhí)行對(duì)分組傳輸?shù)募锌刂?。例如,仲裁?02執(zhí)行輸出仲裁,諸如計(jì) 算分組的輸入和輸出配置。此外,仲裁器902檢查PKT RECV905接收到的分組的報(bào)頭信息 等,并且指令分組交叉開(kāi)關(guān)903、PKT XMIT908等執(zhí)行傳輸。
[0175] 分組交叉開(kāi)關(guān)903執(zhí)行端口 904-1至端口 904-N之間的耦接轉(zhuǎn)換。例如,分組交 叉開(kāi)關(guān)903耦接被輸入分組的端口 904-1和分組要被傳送到的端口 904-N,從而使輸入到端 口 904-1的分組將被傳輸?shù)蕉丝?904-N。
[0176] PKT RECV905接收輸入的分組并且將接收到的分組積累在分組緩沖器950中,并 且將分組緩沖器950中積累的分組傳輸?shù)揭淹ㄟ^(guò)分組交叉開(kāi)關(guān)903耦接到端口 904-1并且 要被傳輸分組的端口。PKT RECV907等按照與PKT RECV905相同的方式操作。
[0177] PKT XMIT906將從其他端口傳輸?shù)姆纸M積累在分組緩沖器960中,并且將積累的 分組輸出到已通過(guò)分組交叉開(kāi)關(guān)903耦接到該端口的諸如交換機(jī)202的設(shè)備。此外,PKT XMIT906從時(shí)鐘901獲取鏈路接通時(shí)間,將發(fā)送起始時(shí)間與鏈路接通時(shí)間進(jìn)行比較,并且放 棄分組。PKT XMIT908等按照與PKT XMIT906相同的方式操作。
[0178] 仲裁器902、分組交叉開(kāi)關(guān)903和端口 904-1至端口 904-N實(shí)現(xiàn)了例如鏈路接通時(shí) 間獲取單元212、接收單元213、傳輸單元214和發(fā)送完成阻止單元215的功能。
[0179] 這里記載的所有示例和條件語(yǔ)言旨在用于教導(dǎo)目的,以協(xié)助讀者理解本發(fā)明以及 發(fā)明人為發(fā)展本領(lǐng)域而貢獻(xiàn)的概念,并且應(yīng)被解釋為沒(méi)有對(duì)這些具體記載的示例和條件構(gòu) 成限制,說(shuō)明書(shū)中的這些示例的組織并非涉及展示本發(fā)明的優(yōu)越或低下。盡管詳細(xì)描述了 本發(fā)明的實(shí)施例,但是應(yīng)當(dāng)理解,在不偏離本發(fā)明的精神和范圍的情況下可以對(duì)其進(jìn)行各 種改變、替換和變更。
【權(quán)利要求】
1. 一種處理裝置,包括: 第一設(shè)備,包括 第一傳送器,被配置成傳送多個(gè)分組,以及 控制器,被配置成將第一時(shí)間信息添加到所述多個(gè)分組中包括的第一分組,所述第一 時(shí)間信息指示開(kāi)始傳送所述多個(gè)分組的第一時(shí)間; 交換設(shè)備,包括 第一接收器,被配置成接收從所述第一傳送器傳送的所述多個(gè)分組, 仲裁器,被配置成獲取指示發(fā)生鏈路接通的第二時(shí)間的第二時(shí)間信息,將所述第二時(shí) 間信息與所述第一時(shí)間信息進(jìn)行比較,并且在所述第二時(shí)間晚于所述第一時(shí)間的情況下刪 除從所述第一傳送器最終傳送的第二分組,以及 第二傳送器,被配置成傳送除了所述第二分組以外的所述多個(gè)分組;以及 第二設(shè)備,包括 第二接收器,被配置成接收從所述第二傳送器傳送的所述多個(gè)分組。
2. 根據(jù)權(quán)利要求1所述的處理裝置,其中 所述仲裁器通過(guò)監(jiān)視所述第一接收器的狀態(tài)或所述第二傳送器的狀態(tài)來(lái)檢測(cè)鏈路接 通的發(fā)生。
3. 根據(jù)權(quán)利要求1所述的處理裝置,其中 當(dāng)所述仲裁器檢測(cè)到多次鏈路接通時(shí),所述仲裁器保存后繼發(fā)生的鏈路接通的時(shí)間, 作為所述第二時(shí)間信息。
4. 根據(jù)權(quán)利要求1所述的處理裝置,其中 所述仲裁器保存指示第一時(shí)間段的第一時(shí)段信息,并且在所述第一時(shí)間和所述第二時(shí) 間之間的差短于所述第一時(shí)間段的情況下,即便所述第二時(shí)間早于所述第一時(shí)間,仍刪除 所述第二分組。
5. 根據(jù)權(quán)利要求1所述的處理裝置,其中 所述第一分組與所述第二分組相同。
6. -種處理裝置,包括: 第一設(shè)備,包括 第一傳送器,被配置成傳送多個(gè)分組,以及 控制器,被配置成將第一時(shí)間信息添加到所述多個(gè)分組中包括的第一分組,所述第一 時(shí)間信息指示開(kāi)始傳送所述多個(gè)分組的第一時(shí)間; 交換設(shè)備,包括 第一接收器,被配置成接收從所述第一傳送器傳送的所述多個(gè)分組, 仲裁器,被配置成獲取指示發(fā)生鏈路接通的第二時(shí)間的第二時(shí)間信息,將所述第二時(shí) 間信息與所述第一時(shí)間信息進(jìn)行比較,并且在所述第二時(shí)間晚于所述第一時(shí)間的情況下將 錯(cuò)誤標(biāo)志添加到從所述第一傳送器最終傳送的第二分組,以及 第二傳送器,被配置成傳送所述多個(gè)分組;以及 第二設(shè)備,包括 第二接收器,被配置成接收從所述第二傳送器傳送的所述多個(gè)分組。
7. 根據(jù)權(quán)利要求6所述的處理裝置,其中 所述仲裁器通過(guò)監(jiān)視所述第一接收器的狀態(tài)或所述第二傳送器的狀態(tài)來(lái)檢測(cè)鏈路接 通的發(fā)生。
8. 根據(jù)權(quán)利要求6所述的處理裝置,其中 當(dāng)所述仲裁器檢測(cè)到多次鏈路接通時(shí),所述仲裁器保存后繼發(fā)生的鏈路接通的時(shí)間, 作為所述第二時(shí)間信息。
9. 根據(jù)權(quán)利要求6所述的處理裝置,其中 所述仲裁器保存指示第一時(shí)間段的第一時(shí)段信息,并且在所述第一時(shí)間和所述第二時(shí) 間之間的差短于所述第一時(shí)間段的情況下,即便所述第二時(shí)間早于所述第一時(shí)間,仍將錯(cuò) 誤標(biāo)志添加到所述第二分組。
10. 根據(jù)權(quán)利要求6所述的處理裝置,其中 所述第一分組與所述第二分組相同。
11. 一種數(shù)據(jù)傳送方法,包括: 從第一設(shè)備傳送多個(gè)分組; 將第一時(shí)間信息添加到所述多個(gè)分組中包括的第一分組,所述第一時(shí)間信息指示開(kāi)始 傳送所述多個(gè)分組的第一時(shí)間; 獲取指示發(fā)生鏈路接通的第二時(shí)間的第二時(shí)間信息; 將所述第二時(shí)間信息與所述第一信息進(jìn)行比較; 在所述第二時(shí)間晚于所述第一時(shí)間的情況下放棄從所述第一設(shè)備最終傳送的第二分 組;以及 由第二設(shè)備接收除了所述第二分組以外的所述多個(gè)分組。
12. 根據(jù)權(quán)利要求11所述的數(shù)據(jù)傳送方法,其中 所述第一分組與所述第二分組相同。
13. -種數(shù)據(jù)傳送方法,包括: 從第一設(shè)備傳送多個(gè)分組; 將第一時(shí)間信息添加到所述多個(gè)分組中包括的第一分組,所述第一時(shí)間信息指示開(kāi)始 傳送所述多個(gè)分組的第一時(shí)間; 獲取指示發(fā)生鏈路接通的第二時(shí)間的第二時(shí)間信息; 將所述第二時(shí)間信息與所述第一信息進(jìn)行比較; 在所述第二時(shí)間晚于所述第一時(shí)間的情況下將錯(cuò)誤標(biāo)志添加到從所述第一設(shè)備最終 傳送的第二分組;以及 由第二設(shè)備接收所述多個(gè)分組。
14. 根據(jù)權(quán)利要求13所述的數(shù)據(jù)傳送方法,其中 所述第一分組與所述第二分組相同。
【文檔編號(hào)】H04L12/937GK104065569SQ201410057908
【公開(kāi)日】2014年9月24日 申請(qǐng)日期:2014年2月20日 優(yōu)先權(quán)日:2013年3月18日
【發(fā)明者】長(zhǎng)塚雅明 申請(qǐng)人:富士通株式會(huì)社