一種報(bào)文生成裝置、服務(wù)器以及方法
【專利摘要】本發(fā)明適用于備份領(lǐng)域,提供了一種報(bào)文生成裝置、服務(wù)器以及方法,所述報(bào)文生成裝置包括:接收單元,用于接收報(bào)文;分配單元,用于將所述報(bào)文進(jìn)行鏡像以發(fā)送至至少兩個(gè)第二節(jié)點(diǎn)控制器NC;報(bào)文反饋單元,用于接收所述第二NC反饋的反饋報(bào)文,所述反饋報(bào)文由所述第二NC對所述報(bào)文進(jìn)行協(xié)議處理后生成;輸出單元,用于輸出所述反饋報(bào)文。從而,所述報(bào)文生成裝置采用鏡像技術(shù)將報(bào)文分配給多個(gè)用于協(xié)議處理的第二NC以完成協(xié)議處理,有效地實(shí)現(xiàn)了用于協(xié)議處理的NC之間的相互備用。
【專利說明】一種報(bào)文生成裝置、服務(wù)器以及方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明屬于備份領(lǐng)域,尤其涉及一種報(bào)文生成裝置、服務(wù)器以及方法。
【背景技術(shù)】
[0002]至強(qiáng)(Xeon)作為一種高性能的處理器,受到了服務(wù)器領(lǐng)域的青睞。對于一些對可靠性、可用性、服務(wù)性(Reliability, Availability, Serviceability, RAS)要求較高的服務(wù)器,例如電信、金融等行業(yè),業(yè)務(wù)基礎(chǔ)架構(gòu)(服務(wù)器)一旦出現(xiàn)問題,哪怕只是幾分鐘的服務(wù)中斷,所帶來的損失也是非常巨大,甚至是不可接受的;因此,對至強(qiáng)的RAS要求越來越高,以搭建一種高效、節(jié)能、可靠的業(yè)務(wù)基礎(chǔ)架構(gòu)。
[0003]與此同時(shí),針對包括多個(gè)節(jié)點(diǎn)控制器(Node Controller,NC)和多個(gè)處理器(Central Processing Unit,CPU)組成的服務(wù)器,對處理器的RAS要求僅是其中一部分,還要求互聯(lián)的NC滿足RAS ;若服務(wù)器中的用于協(xié)議處理的NC出錯(cuò),同樣導(dǎo)致巨大的損失。圖1和圖2分別為兩種傳統(tǒng)的服務(wù)器的系統(tǒng)架構(gòu);從圖1看出,該服務(wù)器采用單NC互聯(lián)(因此CPU僅能通過前端總線向一個(gè)用于協(xié)議處理的NC輸出報(bào)文),若該用于協(xié)議處理的NC出錯(cuò),將導(dǎo)致整個(gè)服務(wù)器掛死;從圖2示出的服務(wù)器看出,該服務(wù)器的每個(gè)CPU均外接兩個(gè)前端總線分別與兩個(gè)NC互聯(lián),但是,CPU不支持前端總線的鏡像以同時(shí)向兩個(gè)用于協(xié)議處理的NC輸出報(bào)文(即在同一時(shí)間,僅能從一條前端總線輸出報(bào)文,而另一條則不能同時(shí)輸出報(bào)文),因此,無法雙用于協(xié)議處理的NC的相互備用。
[0004]因此,當(dāng)服務(wù)器中的一個(gè)處理器需要從其它的某個(gè)處理器獲取數(shù)據(jù)時(shí),若經(jīng)過的某個(gè)用于協(xié)議處理的NC出錯(cuò),則無法實(shí)現(xiàn)上述兩個(gè)處理器之間的數(shù)據(jù)通信。
【發(fā)明內(nèi)容】
[0005]本發(fā)明實(shí)施例的目的在于提供一種報(bào)文生成裝置、服務(wù)器以及方法,以解決處理器無法通過前端總線向多個(gè)用于協(xié)議處理的NC發(fā)送報(bào)文以實(shí)現(xiàn)多個(gè)用于協(xié)議處理的NC之間互備的問題。
[0006]第一方面,一種報(bào)文生成裝置,所述報(bào)文生成裝置包括:
[0007]接收單元,用于接收報(bào)文;
[0008]分配單元,用于將所述報(bào)文進(jìn)行鏡像以發(fā)送至至少兩個(gè)第二節(jié)點(diǎn)控制器NC ;
[0009]報(bào)文反饋單元,用于接收所述第二 NC反饋的反饋報(bào)文,所述反饋報(bào)文由所述第二NC對所述報(bào)文進(jìn)行協(xié)議處理后生成;
[0010]輸出單元,用于輸出所述反饋報(bào)文。
[0011]結(jié)合第一方面,在第一方面的第一種可能的實(shí)現(xiàn)方式中,所述報(bào)文生成裝置還包括:
[0012]地址列表單元,用于保存所述報(bào)文的操作地址,所述操作地址為對所述報(bào)文進(jìn)行協(xié)議處理所需訪問的地址;
[0013]判斷單元,用于若所述地址列表單元未存儲(chǔ)有所述接收單元接收到的所述報(bào)文的操作地址,則由所述分配單元將所述報(bào)文進(jìn)行鏡像以發(fā)送至至少兩個(gè)第二 NC,并在所述地址列表單元中保存所述接收到的所述報(bào)文的操作地址。
[0014]結(jié)合第一方面或者第一方面的第一種可能的實(shí)現(xiàn)方式,在第一方面的第二種可能的實(shí)現(xiàn)方式中,所述報(bào)文生成裝置還包括:
[0015]等待單元,用于在等待隊(duì)列中添加所述接收單元接收到的所述報(bào)文;
[0016]所述判斷單元,還用于:
[0017]若所述地址列表單元已存儲(chǔ)有所述接收單元接收到的所述報(bào)文的操作地址,則由所述等待單元在等待隊(duì)列中添加所述接收單元接收到的所述報(bào)文。
[0018]結(jié)合第一方面或者第一方面的第一種可能的實(shí)現(xiàn)方式或者第一方面的第二種可能的實(shí)現(xiàn)方式,在第一方面的第三種可能的實(shí)現(xiàn)方式中,所述分配單元,還用于:
[0019]指定每個(gè)所述第二 NC用于執(zhí)行協(xié)議處理的資源,記錄所述資源對應(yīng)的資源號。
[0020]結(jié)合第一方面的第三種可能的實(shí)現(xiàn)方式,在第一方面的第四種可能的實(shí)現(xiàn)方式中,所述報(bào)文生成裝置還包括:
[0021]過濾單元,用于若所述報(bào)文反饋單元第一次接收到所述反饋報(bào)文,則由所述輸出單元輸出所述反饋報(bào)文,并記錄所述反饋報(bào)文的報(bào)文特征值,刪除所述資源號,若所述報(bào)文反饋單元最后一次接收到所述反饋報(bào)文,則刪除所述反饋報(bào)文的報(bào)文特征值,從所述地址列表單元中刪除在執(zhí)行協(xié)議處理并生成所述反饋報(bào)文前的報(bào)文的操作地址。
[0022]結(jié)合第一方面或者第一方面的第一種可能的實(shí)現(xiàn)方式或者第一方面的第二種可能的實(shí)現(xiàn)方式或者第一方面的第三種可能的實(shí)現(xiàn)方式或者第一方面的第四種可能的實(shí)現(xiàn)方式,在第一方面的第五種可能的實(shí)現(xiàn)方式中,所述接收單元包括:
[0023]快速通道互聯(lián)QPI接口,用于接收來自所述處理器的報(bào)文;
[0024]一個(gè)或多個(gè)節(jié)點(diǎn)互聯(lián)NI接口,每個(gè)所述NI接口接收來自對應(yīng)的一個(gè)所述第一 NC的報(bào)文;
[0025]結(jié)合第一方面或者第一方面的第五種可能的實(shí)現(xiàn)方式,在第一方面的第六種可能的實(shí)現(xiàn)方式中,所述輸出單元,具體用于:
[0026]根據(jù)所述反饋報(bào)文包括的反饋地址和報(bào)文類型,從所述NI接口輸出所述反饋報(bào)文或從所述QPI接口輸出所述反饋報(bào)文。
[0027]第二方面,一種服務(wù)器,所述服務(wù)器包括第一方面或者第一方面的第一種可能的實(shí)現(xiàn)方式或者第一方面的第二種可能的實(shí)現(xiàn)方式或者第一方面的第三種可能的實(shí)現(xiàn)方式或者第一方面的第四種可能的實(shí)現(xiàn)方式或者第一方面的第五種可能的實(shí)現(xiàn)方式或者第一方面的第六種可能的實(shí)現(xiàn)方式提供的報(bào)文生成裝置。
[0028]第三方面,一種報(bào)文生成方法,所述報(bào)文生成方法包括:
[0029]接收報(bào)文;
[0030]將所述報(bào)文進(jìn)行鏡像以發(fā)送至至少兩個(gè)第二 NC ;
[0031]接收所述第二 NC反饋的反饋報(bào)文,所述反饋報(bào)文由所述第二 NC對所述報(bào)文進(jìn)行協(xié)議處理后生成;
[0032]輸出所述反饋報(bào)文。
[0033]結(jié)合第三方面,在第三方面的第一種可能的實(shí)現(xiàn)方式中,所述報(bào)文生成方法還包括:[0034]判斷地址列表中是否存儲(chǔ)有接收到的所述報(bào)文的操作地址,若否,則將所述報(bào)文進(jìn)行鏡像以發(fā)送至至少兩個(gè)所述第二 NC,并在所述地址列表中保存所述報(bào)文的操作地址。
[0035]結(jié)合第三方面或者第三方面的第一種可能的實(shí)現(xiàn)方式,在第三方面的第二種可能的實(shí)現(xiàn)方式中,所述報(bào)文生成方法還包括:
[0036]若所述地址列表已存儲(chǔ)有接收到的所述報(bào)文的操作地址,則在等待隊(duì)列中添加所述報(bào)文。
[0037]結(jié)合第三方面或者第三方面的第一種可能的實(shí)現(xiàn)方式或者第三方面的第二種可能的實(shí)現(xiàn)方式,在第三方面的第三種可能的實(shí)現(xiàn)方式中,所述將所述報(bào)文進(jìn)行鏡像以發(fā)送至至少兩個(gè)第二 NC的步驟,還包括:
[0038]指定每個(gè)所述第二 NC用于執(zhí)行協(xié)議處理的資源,記錄所述資源對應(yīng)的資源號。
[0039]結(jié)合第三方面的第三種可能的實(shí)現(xiàn)方式,在第三方面的第四種可能的實(shí)現(xiàn)方式中,所述報(bào)文生成方法還包括:
[0040]若第一次接收到所述反饋報(bào)文,則輸出所述反饋報(bào)文,并記錄所述反饋報(bào)文的報(bào)文特征值,刪除所述資源號;
[0041]若最后一次接收到所述反饋報(bào)文,則刪除所述反饋報(bào)文的報(bào)文特征值,從所述地址列表中刪除在執(zhí)行協(xié)議處理并生成所述反饋報(bào)文前的報(bào)文的操作地址。
[0042]結(jié)合第三方面或者第三方面的第一種可能的實(shí)現(xiàn)方式或者第三方面的第二種可能的實(shí)現(xiàn)方式或者第三方面的第三種可能的實(shí)現(xiàn)方式或者第三方面的第四種可能的實(shí)現(xiàn)方式,在第三方面的第五種可能的實(shí)現(xiàn)方式中,所述接收報(bào)文的步驟包括:
[0043]從QPI接口接收來自處理器的報(bào)文;
[0044]從一個(gè)或多個(gè)NI接口接收來自一個(gè)或多個(gè)對應(yīng)的第一 NC的報(bào)文;
[0045]結(jié)合第三方面或者第三方面的第五種可能的實(shí)現(xiàn)方式,在第三方面的第六種可能的實(shí)現(xiàn)方式中,所述輸出所述反饋報(bào)文的步驟,具體為:
[0046]根據(jù)所述反饋報(bào)文包括的反饋地址和報(bào)文類型,從所述NI接口輸出所述反饋報(bào)文或從所述QPI接口輸出所述反饋報(bào)文。
[0047]在本發(fā)明中,報(bào)文生成裝置采用鏡像技術(shù)將報(bào)文分配給多個(gè)用于協(xié)議處理的第二NC以完成協(xié)議處理,有效地實(shí)現(xiàn)了用于協(xié)議處理的NC之間的相互備用。
【專利附圖】
【附圖說明】
[0048]為了更清楚地說明本發(fā)明實(shí)施例中的技術(shù)方案,下面將對實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0049]圖1是【背景技術(shù)】提供的服務(wù)器的網(wǎng)絡(luò)架構(gòu)圖;
[0050]圖2是【背景技術(shù)】提供的另一服務(wù)器的網(wǎng)絡(luò)架構(gòu)圖;
[0051]圖3是本發(fā)明實(shí)施例一提供的一種報(bào)文生成裝置的組成結(jié)構(gòu)圖;
[0052]圖4是本發(fā)明實(shí)施例二提供的另一種報(bào)文生成裝置的組成結(jié)構(gòu)圖;
[0053]圖5是本發(fā)明實(shí)施例二提供的基于報(bào)文生成裝置的服務(wù)器的組成結(jié)構(gòu)圖;
[0054]圖6是本發(fā)明實(shí)施例二提供的基于實(shí)施例一提供的報(bào)文生成裝置可能引發(fā)的一種兩個(gè)第二 NC對同一報(bào)文進(jìn)行協(xié)議處理時(shí)的報(bào)文處理流程圖;
[0055]圖7是發(fā)明實(shí)施例三提供的一種報(bào)文生成裝置的具體結(jié)構(gòu)圖;
[0056]圖8是發(fā)明實(shí)施例四提供的一種報(bào)文生成方法的流程圖。
【具體實(shí)施方式】
[0057]為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及實(shí)施例,對本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
[0058]為了說明本發(fā)明所述的技術(shù)方案,下面通過具體實(shí)施例來進(jìn)行說明。
[0059]需要說明的是,本發(fā)明實(shí)施例提供一種報(bào)文生成裝置,適用于服務(wù)器,其中,服務(wù)器包括多個(gè)處理器和多個(gè)NC,其中,每個(gè)處理器均通過一個(gè)報(bào)文生成裝置與多個(gè)NC通信。其中,NC包括至少兩個(gè)用于協(xié)議處理的第二 NC,并且該報(bào)文生成裝置連接在每個(gè)第二 NC與處理器之間。與此同時(shí),所述NC包括與所述報(bào)文生成裝置連接的一個(gè)或多個(gè)第一NC ;其中,所述第一 NC可以為所述第二 NC,也可以不為所述第二 NC。
[0060]值得說明的是,對于所述報(bào)文生成裝置接收到的報(bào)文,所述報(bào)文生成裝置會(huì)確定至少兩個(gè)用于協(xié)議處理的第二 NC;并且,針對接收到的不同報(bào)文,可能是同一所述第二 NC進(jìn)行協(xié)議處理。
[0061]從而,當(dāng)所述報(bào)文生成裝置接收到來自處理器的報(bào)文或來自第一 NC的報(bào)文時(shí),所述報(bào)文生成裝置能夠?qū)崿F(xiàn)對報(bào)文的鏡像并分發(fā)至至少兩個(gè)用于協(xié)議處理的NC以對該報(bào)文進(jìn)行協(xié)議處理,根據(jù)所述反饋報(bào)文包括的反饋地址和報(bào)文類型以向第一 NC或處理器反饋。從而,在包括多個(gè)處理器和多個(gè)NC的服務(wù)器中,有效地提高了處理器與其它的處理器之間的數(shù)據(jù)通信的RAS。
[0062]實(shí)施例一:
[0063]圖3示出了本實(shí)施例提供的報(bào)文生成裝置的組成結(jié)構(gòu),為了便于描述,僅示出了與本發(fā)明實(shí)施例相關(guān)的部分,詳述如下:
[0064]一種報(bào)文生成裝置,所述報(bào)文生成裝置包括:
[0065]接收單元31,用于接收報(bào)文;
[0066]分配單元32,用于將所述報(bào)文進(jìn)行鏡像以發(fā)送至至少兩個(gè)第二 NC ;
[0067]報(bào)文反饋單元33,用于接收所述第二 NC反饋的反饋報(bào)文,所述反饋報(bào)文由所述第二 NC對所述報(bào)文進(jìn)行協(xié)議處理后生成;
[0068]輸出單元34,用于輸出所述反饋報(bào)文。
[0069]在本實(shí)施例中,接收單元31接收所述報(bào)文;由于用于協(xié)議處理的第二 NC為多個(gè),則將所述報(bào)文進(jìn)行鏡像以同時(shí)向多個(gè)第二 NC發(fā)送;所述第二 NC完成協(xié)議處理后會(huì)生成所述反饋報(bào)文并實(shí)時(shí)向報(bào)文生成裝置反饋;待輸出單元34接收到反饋的報(bào)文后,實(shí)時(shí)向指定的處理器或所述第一 NC反饋。
[0070]作為本發(fā)明另一實(shí)施例,接收單元31接收所述報(bào)文;當(dāng)用于協(xié)議處理的第二NC為一個(gè)時(shí),向該個(gè)第二 NC發(fā)送所述報(bào)文;待輸出單元34接收到該個(gè)第二 NC反饋的報(bào)文后,實(shí)時(shí)向指定的處理器或第二 NC反饋。
[0071]作為本發(fā)明一實(shí)施例,所述報(bào)文包括:來自與所述報(bào)文生成裝置連接的所述處理器的報(bào)文,或來自與所述報(bào)文生成裝置連接的一個(gè)或多個(gè)第一 NC的報(bào)文。
[0072]需要說明的是,所述來自第一 NC的報(bào)文包括所述反饋報(bào)文。
[0073]圖5示出了本實(shí)施例提供的基于報(bào)文生成裝置的服務(wù)器的組成結(jié)構(gòu),為了便于描述,僅不出了與本發(fā)明實(shí)施例相關(guān)的部分,
[0074]優(yōu)選的是,針對上述兩種報(bào)文,分別從不同的接口接收,因此所述接收單元31包括:
[0075]快速通道互聯(lián)(QuickPath Interconnect, QPI)接口,用于接收來自處理器的報(bào)文;
[0076]一個(gè)或多個(gè)節(jié)點(diǎn)互聯(lián)(Node Interconnect, NI)接口,每個(gè)所述NI接口接收來自對應(yīng)的一個(gè)所述第一 NC的報(bào)文。
[0077]需要說明的是,一個(gè)所述NI接口與一個(gè)所述第一 NC連接,因此,一個(gè)所述NI接口接收來自對應(yīng)的該第一 NC的報(bào)文。
[0078]這樣,由于來自處理器的報(bào)文的報(bào)文類型與來自所述第一 NC的報(bào)文的報(bào)文類型存在不同,和/或由于來自處理器的報(bào)文的數(shù)據(jù)通信格式與來自所述第一 NC的報(bào)文的數(shù)據(jù)通信格式可能存在不同,因此,報(bào)文生成裝置采用QPI接口對來自處理器的報(bào)文進(jìn)行報(bào)文的匹配接收,采用NI接口對來自對應(yīng)的所述第一 NC的報(bào)文進(jìn)行匹配接收。
[0079]優(yōu)選的是,所述輸出單元34,具體用于:
[0080]根據(jù)所述反饋報(bào)文包括的反饋地址和報(bào)文類型,從所述NI接口輸出所述反饋報(bào)文或從所述QPI接口輸出所述反饋報(bào)文。
[0081]需要說明的是,所述反饋地址為:處理器用于接收所述反饋報(bào)文的地址或所述第
一NC用于接收所述反饋報(bào)文的地址;待獲取到所述反饋報(bào)文的所述反饋地址,通過所述QPI接口發(fā)送所述反饋報(bào)文至所述處理器,或通過某個(gè)NI接口發(fā)送所述反饋報(bào)文至對應(yīng)的所述第一 NC。
[0082]需要說明的是,所述QPI接口接收/發(fā)送報(bào)文的報(bào)文類型與所述NI接口接收/發(fā)送報(bào)文的報(bào)文類型不同。這樣,需要根據(jù)所述反饋報(bào)文包括的反饋地址和報(bào)文類型,確定是通過所述QPI接口向處理器發(fā)送所述反饋報(bào)文,或確定通過哪個(gè)所述NI接口向?qū)?yīng)的所述第一 NC發(fā)送所述反饋報(bào)文。
[0083]實(shí)施例二:
[0084]在本實(shí)施例中,基于實(shí)施例一提供的報(bào)文生成裝置,對于接收單元31接收到的一份所述報(bào)文,報(bào)文生成裝置包含的輸出單元34僅輸出一份所述反饋報(bào)文。
[0085]正常情況下,同一所述報(bào)文經(jīng)過多個(gè)所述第二 NC進(jìn)行協(xié)議處理后生成的所述反饋報(bào)文應(yīng)該是一樣的,因此本實(shí)施的輸出單元34可以僅輸出一份所述報(bào)文對應(yīng)的所述反饋報(bào)文。
[0086]需要說明的是,一個(gè)所述第二 NC對多個(gè)所述報(bào)文進(jìn)行協(xié)議處理時(shí),采用輪詢方式?jīng)Q定多個(gè)所述報(bào)文之間的處理順序。當(dāng)接收單元31接收到的多份報(bào)文是使用不同的操作地址的數(shù)據(jù)以完成協(xié)議處理時(shí),多份所述報(bào)文在每個(gè)所述第二 NC中僅對對應(yīng)的操作地址進(jìn)行讀/寫操作,從而待報(bào)文反饋單元33接收到所述反饋報(bào)文后,輸出單元34輸出的所述反饋報(bào)文會(huì)是一樣的。
[0087]但是,當(dāng)接收單元31接收到的多份報(bào)文中存在對同一操作地址進(jìn)行讀/寫操作的至少兩份報(bào)文時(shí),由于對同一操作地址進(jìn)行讀/寫操作的報(bào)文的處理順序不同,可能會(huì)產(chǎn)生異常(同一所述報(bào)文經(jīng)過協(xié)議處理后生成不同的所述反饋報(bào)文);以圖6所示的報(bào)文處理流程為例,詳述如下:
[0088]其中,CPU0、CPU1為不同的處理器;HA為存儲(chǔ)器;NC0為所述第一 NC,NCl和NC2為不同的所述第二 NC。報(bào)文生成裝置的NI接口和QPI接口分別外接NCO和CPU0,RdInv0wn、SnpInvOwn、WbMtoI> WblData、SnpInvOwn、Cmp、Rsp1、RSPFwdI_DataM、DataC_M、RspFwd1、Cmp, WBIData、WBCmp, DataC_E_Cmp均為報(bào)文;CPU1為了從CPUO的某個(gè)地址讀取數(shù)據(jù)(CPUI從CPUO的某個(gè)地址讀取數(shù)據(jù)的操作的報(bào)文流向如圖6中的虛線所示),向存儲(chǔ)器發(fā)送RdInvOwn,然后存儲(chǔ)器向NCO發(fā)送SnpInvOwn,然后報(bào)文生成裝置的接收單元31從NI接口接收NCO發(fā)送的SnpInvOwn。CPUO為了向HA寫數(shù)據(jù)(CPU0向HA寫數(shù)據(jù)的操作的報(bào)文流向如圖6中的實(shí)線所示),向報(bào)文生成裝置發(fā)送WbIData、WbMtoI ;報(bào)文生成裝置的接收單元31從 QPI 接 口接收 CPUO 發(fā)送的 WblData、WbMtoI ;
[0089]若分配單元32同時(shí)將SnpInvOwn、WbIData和WbMtoI都分別分配給NCl和NC2后,無論是在NCl或NC2中,來自CPUO的WbIData和來自NCO的SnpInvOwn都是需要使用同一操作地址完成協(xié)議處理;與此同時(shí),NCl或NC2都是采用輪詢方式?jīng)Q定WbIData和SnpInvOwn的處理順序。由于NCl先處理來自NCO的SnpInvOwn后處理來自CPUO的WblData,則NCl向報(bào)文生成裝置反饋SnpInvOwn,輸出單元34根據(jù)SnpInvOwn的報(bào)文類型和反饋地址(CPUO)通過QPI接口向CPUO輸出SnpInvOwn以從該某個(gè)地址讀取數(shù)據(jù),待NCl處理完WbIData后,直接通過QPI接口向CPUO輸出Cmp (即結(jié)束CPUO向HA寫數(shù)據(jù)的操作,但未實(shí)現(xiàn)該操作)以;然后,CPUO通過QPI接口向報(bào)文生成裝置發(fā)送RspI,報(bào)文生成裝置將NCl完成協(xié)議處理后生成的RSPFwdI_DataM通過NI接口反饋至NC0,然后,NCO向CPUl反饋DataC_M(即結(jié)束CPUl向CPUO的某個(gè)地址讀取數(shù)據(jù)的操作,并實(shí)現(xiàn)了該操作)。由于NC2先處理來自CPUO的WbIData后處理來自NCO的SnpInvOwn,則NC2向報(bào)文生成裝置反饋WBIData ;輸出單元34根據(jù)WBIData的報(bào)文類型和反饋地址(NC0),通過NI接口向NCO發(fā)送WBIData,然后,NCO向HA發(fā)送WbMtoI和WbIData以實(shí)現(xiàn)向HA中的指定地址寫數(shù)據(jù),然后HA向NCO反饋Cmp,然后報(bào)文生成裝置的NI接口接收到NCO發(fā)送的WBCmp,報(bào)文生成裝置將NC2完成協(xié)議處理后生成的Cmp反饋CPU0,然后報(bào)文生成裝置將NC2完成協(xié)議處理來自NCO的SnpInvOwn后生成的RspI通過NI接口反饋NC0,然后NCO向HA反饋RspI,然后HA向CPUl反饋DataC_E_Cmp (即結(jié)束CPUl向CPUO的某個(gè)地址讀取數(shù)據(jù)的操作,但未實(shí)現(xiàn)該操作)。
[0090]由于NCl先處理來自NCO的SnpInvOwn后處理來自CPUO的WbIData,對SnpInvOwn完成協(xié)議處理后生成的報(bào)文為SnpInvOwn,對WbIData完成協(xié)議處理后生成的報(bào)文為Cmp ;由于NC2先處理來自CPUO的WbIData后處理來自NCO的SnpInvOwn,對SnpInvOwn完成協(xié)議處理后生成的報(bào)文為RspIJt WbIData完成協(xié)議處理后生成的報(bào)文為WBIData。從而導(dǎo)致CPUl向CPUO的某個(gè)地址讀取數(shù)據(jù)的操作失敗或CPUO向HA寫數(shù)據(jù)的操作失敗。
[0091]從而,當(dāng)接收單元31接收到的多份報(bào)文中存在對同一操作地址進(jìn)行讀/寫操作的至少兩份報(bào)文時(shí),輸出單元34可能會(huì)輸出不同的所述反饋報(bào)文,導(dǎo)致服務(wù)器無法識別,也無法實(shí)現(xiàn)同一服務(wù)器中的多個(gè)用于協(xié)議處理的第二 NC之間實(shí)現(xiàn)相互備份。
[0092]為此,為了保證輸出單元34僅輸出一份所述反饋報(bào)文,并且為了避免需要訪問同一操作地址以完成協(xié)議處理的多個(gè)報(bào)文同時(shí)被分配單元32分配到第二 NC,圖4示出了本實(shí)施例提供的另一報(bào)文生成裝置的組成結(jié)構(gòu),為了便于描述,僅示出了與本發(fā)明實(shí)施例相關(guān)的部分。
[0093]作為本發(fā)明一實(shí)施例,所述報(bào)文生成裝置還包括:
[0094]地址列表單元41,用于保存所述報(bào)文的操作地址,所述操作地址為對所述報(bào)文進(jìn)行協(xié)議處理所需訪問的地址;
[0095]判斷單元42,用于若所述地址列表單元41未存儲(chǔ)有所述接收單元31接收到的所述報(bào)文的操作地址,則由所述分配單元32將所述報(bào)文進(jìn)行鏡像以發(fā)送至至少兩個(gè)第二 NC,并在所述地址列表單元41中保存所述接收到的所述報(bào)文的操作地址。
[0096]優(yōu)選的是,所述操作地址,具體為:所述報(bào)文中記載的、進(jìn)行協(xié)議處理時(shí)需要訪問的內(nèi)存地址。
[0097]需要說明的是,針對分配單元32分配給至少兩個(gè)所述第二 NC以進(jìn)行協(xié)議處理的所有所述報(bào)文,直到每個(gè)所述第二 NC均反饋所述反饋報(bào)文之前,所述地址列表單元41 一直存儲(chǔ)有所述報(bào)文對應(yīng)的操作地址;即,當(dāng)所有的所述第二 NC都反饋了所述反饋報(bào)文以后,才會(huì)在地址列表單元41中刪除所述反饋報(bào)文對應(yīng)的未進(jìn)行協(xié)議處理前的所述報(bào)文的操作地址。
[0098]這樣,對于接收單元31剛接收到的所述報(bào)文,從所述報(bào)文中提取出所述報(bào)文的操作地址;若判斷單元42在地址列表單元41中遍歷查找后,未查找到與接收到的所述報(bào)文的操作地址相同的操作地址,則在地址列表單元41中添加接收到的所述報(bào)文的操作地址;與此同時(shí),執(zhí)行分配單元32以讓多個(gè)所述第二 NC同時(shí)對所述報(bào)文進(jìn)行協(xié)議處理。
[0099]優(yōu)選的是,與此同時(shí),所述報(bào)文生成裝置還包括:
[0100]所述等待單元43,用于在等待隊(duì)列中添加所述接收單元31接收到的所述報(bào)文;
[0101]所述判斷單元42,還用于:
[0102]若所述地址列表單元41已存儲(chǔ)有所述接收單元31接收到的所述報(bào)文的操作地址,則由所述等待單元43在等待隊(duì)列中添加所述接收單元接收到的所述報(bào)文。
[0103]需要說明的是,待所述等待隊(duì)列中的所述報(bào)文的操作地址在所述地址列表單元41中刪除時(shí),則執(zhí)行分配單元32以使得所述第二 NC對所述報(bào)文進(jìn)行協(xié)議處理。
[0104]這樣,針對剛接收到的所述報(bào)文對應(yīng)的操作地址已在所述地址列表單元41中有相同記錄的情況,判斷單元42跳轉(zhuǎn)到等待單元43執(zhí)行,同時(shí)將接收到的所述報(bào)文添加入等待隊(duì)列中。
[0105]優(yōu)選的是,在分配單元32將所述報(bào)文分配給多個(gè)第二 NC進(jìn)行協(xié)議處理時(shí),為了保證每個(gè)所述第二 NC反饋的所述反饋報(bào)文均是一樣的,所述分配單元32,還用于:
[0106]指定每個(gè)所述第二 NC用于執(zhí)行協(xié)議處理的資源,記錄所述資源對應(yīng)的資源號。
[0107]需要說明的是,所述用于執(zhí)行協(xié)議處理的資源包括需要訪問的操作地址、存儲(chǔ)資源、緩存資源等用于執(zhí)行協(xié)議處理過程中所需的軟硬件資源。分配單元32中記錄的所述資源號,用于標(biāo)識所述第二 NC執(zhí)行協(xié)議處理時(shí)所需的資源。
[0108]這樣,待所述分配單元32完成所述資源的指定后,每個(gè)所述第二 NC用于執(zhí)行協(xié)議處理的資源(尤其是執(zhí)行協(xié)議處理過程中需要訪問的操作地址)是一樣的,從而生成的所述反饋報(bào)文也是一樣的。
[0109]優(yōu)選的是,由于每個(gè)所述第二 NC產(chǎn)生的所述反饋報(bào)文是一樣的,所述報(bào)文生成裝置還包括:
[0110]過濾單元44,用于若所述報(bào)文反饋單元33第一次接收到所述反饋報(bào)文,則由所述輸出單元34輸出所述反饋報(bào)文,并記錄所述反饋報(bào)文的報(bào)文特征值,刪除所述資源號。
[0111]需要說明的是,同一所述報(bào)文經(jīng)過所述第二 NC進(jìn)行協(xié)議處理后生成的所述反饋報(bào)文具有同樣的報(bào)文特征值;并且,所述報(bào)文特征值記載在所述反饋報(bào)文中。
[0112]這樣,對于對同一所述報(bào)文,雖然上述的所有的所述第二 NC反饋所述反饋報(bào)文至報(bào)文反饋單元33的到達(dá)時(shí)間不一樣,但是,輸出單元34僅發(fā)送所述報(bào)文反饋單元33最先一次(第一次)接收到的所述反饋報(bào)文;于此同時(shí),過濾單元44記錄最先一次到達(dá)的所述反饋報(bào)文的報(bào)文特征值,以便于濾除掉后面接收到的、同一所述報(bào)文經(jīng)過協(xié)議處理生成的所述反饋報(bào)文。
[0113]優(yōu)選的是,所述過濾單元44,還用于:
[0114]若所述報(bào)文反饋單元33最后一次接收到所述反饋報(bào)文,則刪除所述反饋報(bào)文的報(bào)文特征值,從所述地址列表單元41中刪除在執(zhí)行協(xié)議處理并生成所述反饋報(bào)文前的報(bào)文的操作地址。
[0115]這樣,對于對同一所述報(bào)文進(jìn)行協(xié)議處理的所有所述第二 NC,報(bào)文反饋單元33都收到了每個(gè)所述第二 NC反饋的反饋報(bào)文,從而刪除所述反饋報(bào)文的報(bào)文特征值;與此同時(shí),在所述地址列表單元41中刪除所述反饋報(bào)文對應(yīng)的在執(zhí)行協(xié)議處理前的報(bào)文的操作地址。
[0116]與此同時(shí),當(dāng)?shù)却?duì)列中存在與所述報(bào)文需要同一操作地址以完成協(xié)議轉(zhuǎn)換的報(bào)文時(shí),分配單元32將該等待隊(duì)列中的、使用同一操作地址的報(bào)文進(jìn)行鏡像后發(fā)送多個(gè)第二NC以執(zhí)行協(xié)議處理;從而,有效地避免了第二 NC對使用同一地址的多個(gè)報(bào)文同時(shí)進(jìn)行協(xié)議處理,保證了同一報(bào)文進(jìn)行協(xié)議處理后生成的反饋報(bào)文是一樣的。
[0117]作為本發(fā)明一實(shí)施例,經(jīng)過預(yù)設(shè)時(shí)間,刪除所述反饋報(bào)文的報(bào)文特征值,從所述地址列表單元41中刪除在執(zhí)行協(xié)議處理并生成所述反饋報(bào)文前的報(bào)文的操作地址。
[0118]為了避免某個(gè)用于協(xié)議處理的第二 NC出錯(cuò)而未及時(shí)向報(bào)文反饋單元33反饋所述反饋報(bào)文,預(yù)先設(shè)定所述預(yù)設(shè)時(shí)間。預(yù)先設(shè)定所述預(yù)設(shè)時(shí)間的另一目的在于:經(jīng)過所述預(yù)設(shè)時(shí)間后,則表示本次的報(bào)文的協(xié)議處理已結(jié)束,為了避免影響等待隊(duì)列中使用與所述報(bào)文需要同一操作地址的報(bào)文,分配單元32及時(shí)將該等待隊(duì)列中的、使用同一操作地址的報(bào)文進(jìn)行鏡像后發(fā)送多個(gè)第二 NC以執(zhí)行協(xié)議處理。
[0119]實(shí)施例三:
[0120]本實(shí)施例提供的報(bào)文生成裝置作為實(shí)施例二提供的報(bào)文生成裝置的一種具體實(shí)施例,如圖7所示,為了便于描述,僅示出了與本發(fā)明實(shí)施例相關(guān)的部分。其中,需要說明的是,為了示意報(bào)文生成裝置和多個(gè)第二 NC之間的報(bào)文處理流程,僅以兩個(gè)第二 NC為例。
[0121]其中,本實(shí)施例提供的報(bào)文生成裝置包括:
[0122]QPI PHY Rx為:通過QPI接口接收來自處理器的報(bào)文的物理層接收端;
[0123]QPI Link Rx為:通過QPI接口接收來自處理器的報(bào)文的數(shù)據(jù)鏈路層接收端;
[0124]QPI PHY Tx為:通過QPI接口發(fā)送反饋報(bào)文至處理器的物理層發(fā)送端;
[0125]QPI Link Tx為:通過QPI接口發(fā)送反饋報(bào)文至處理器的數(shù)據(jù)鏈路層發(fā)送端;
[0126]NI PHY Rx為:通過NI接口接收來自第一 NC的報(bào)文的物理層接收端;[0127]NI Link Rx為:通過NI接口接收來自第一 NC的報(bào)文的數(shù)據(jù)鏈路層接收端;
[0128]NI PHY Tx為:通過NI接口發(fā)送反饋報(bào)文至第一 NC的物理層發(fā)送端;
[0129]NI Link Tx為:通過NI接口發(fā)送反饋報(bào)文至第一 NC的數(shù)據(jù)鏈路層發(fā)送端;
[0130]H PHY Rx為:接收第二 NC反饋的反饋報(bào)文的物理層接收端;
[0131]H Link Rx為:接收第二 NC反饋的反饋報(bào)文的數(shù)據(jù)鏈路層接收端;
[0132]H PHY Tx為:向第二 NC發(fā)送報(bào)文的物理層發(fā)送端;
[0133]H Link Tx為:向第二 NC發(fā)送報(bào)文的數(shù)據(jù)鏈路層發(fā)送端;
[0134]地址列表管理模塊(Addr Table Management,ATM),用于保存第二 NC正在進(jìn)行協(xié)議處理的報(bào)文需要訪問的操作地址,以及保存等待隊(duì)列中的報(bào)文的地址。
[0135]ID管理模塊(ID Management,IDM),用于保存資源號,所述資源號與所述第二 NC用于執(zhí)行協(xié)議處理的資源具有映射關(guān)系。
[0136]報(bào)文過濾模塊(Packet Filter, PF),用于對多份反饋報(bào)文進(jìn)行篩選和排序,并且同樣的反饋報(bào)文僅向QPI Link Tx或NI Link Tx發(fā)送一份;
[0137]報(bào)文路由(H R0UT),用于對報(bào)文進(jìn)行鏡像以發(fā)送至多個(gè)第二 NC。
[0138]需要說明的是,實(shí)施例二提供的接收單元31與本實(shí)施例提供的QPI PHY Rx、QPILink Rx、QPI接口、NI PHY Rx、NI Link Rx以及NI接口的組合具有相同功能;實(shí)施例二提供的發(fā)送單元與本實(shí)施例提供的QPI PHY Tx, QPI LinkTx、QPI接口、NI PHY Tx, NI LinkTx以及NI接口的組合具有相同功能;實(shí)施例二提供的分配單元32與本實(shí)施例提供的IDM、H ROUT、H PHY Tx以及H Link Tx的組合具有相同功能;實(shí)施例二提供的報(bào)文反饋單元33與本實(shí)施例提供的H PHY Rx和H Link Rx的組合具有相同功能;實(shí)施例二提供的過濾單元44與本實(shí)施例提供的PF具有相同功能;實(shí)施例二提供的第二 NC與本實(shí)施例提供的第二 NC具有相同功能;實(shí)施例二提供的地址列表單元41、判斷單元42、以及等待單元43與本實(shí)施例提供的ATM具有相同功能。
[0139]在本實(shí)施例中,QPI接口接收到來自處理器的報(bào)文,該報(bào)文經(jīng)過QPI PHY Rx和QPILink Rx到達(dá)H ROUT ;NI接口接收來自所述第一 NC的報(bào)文,該報(bào)文經(jīng)過NI PHY Rx和NILink Rx 到達(dá) H ROUT。
[0140]若ATM中已記載對H ROUT接收到的報(bào)文進(jìn)行協(xié)議處理所需的操作地址,則ATM將所述報(bào)文的地址添加到等待隊(duì)列中。
[0141 ] 若ATM中未記載對H ROUT接收到的報(bào)文進(jìn)行協(xié)議處理所需的操作地址,則ATM記錄所述報(bào)文的操作地址;然后,IDM為每個(gè)第二 NC指定資源,并記錄對應(yīng)的資源號;然后,IDM將資源號發(fā)送至H ROUT,H ROUT將資源號和鏡像生成的報(bào)文一起發(fā)送至多個(gè)第二 NC(其中,報(bào)文和資源號由H ROUT分發(fā)后,分別經(jīng)過H Link Tx, H PHY Tx后發(fā)送至對應(yīng)的第
二NC)。
[0142] 每個(gè)第二 NC反饋的反饋報(bào)文經(jīng)過對應(yīng)的H PHY Rx和H Link Rx發(fā)送至PF。若PF是第一次接收到所述反饋報(bào)文,則記錄所述反饋報(bào)文的報(bào)文特征值,同時(shí),與PF保持通信的IDM刪除協(xié)議處理生成所述反饋報(bào)文對應(yīng)的資源號;同時(shí),根據(jù)所述反饋報(bào)文的反饋地址和報(bào)文類型,確定是經(jīng)過QPI PHY Tx, QPI LinkTx, QPI接口向處理器發(fā)送所述反饋報(bào)文,還是經(jīng)過NI PHY Tx,NI Link Tx、NI接口向所述第一NC發(fā)送所述反饋報(bào)文。PF繼續(xù)接收另外的、第二 NC反饋的反饋報(bào)文,直到最后一次接收到所述反饋報(bào)文(由于在H ROUT分發(fā)所述報(bào)文時(shí),已經(jīng)確定了第二 NC的個(gè)數(shù),一個(gè)第二 NC會(huì)生成一份所述反饋報(bào)文,因此,根據(jù)第二 NC的個(gè)數(shù)可以確定是否為最后接收的一份反饋報(bào)文),刪除所述反饋報(bào)文的報(bào)文特征值,與PF保持通信的ATM刪除執(zhí)行協(xié)議處理并生成所述反饋報(bào)文前的報(bào)文的操作地址。由于PF僅對第一次接收到的所述反饋報(bào)文通過QPI接口或NI接口反饋,對后面接收到的相同的反饋報(bào)文進(jìn)行濾除而并不通過QPI接口或NI接口反饋。從而實(shí)現(xiàn)了多個(gè)第二 NC之間的互備的,保證了對于一份報(bào)文僅反饋一份反饋報(bào)文以最終保證同一服務(wù)器中的處理器之間的通信不存在多余的報(bào)文。
[0143]實(shí)施例四:
[0144]本實(shí)施例提供的報(bào)文生成方法與實(shí)施例一提供的報(bào)文生成裝置相互適用;圖8示出了本實(shí)施例提供的報(bào)文生成方法的實(shí)現(xiàn)流程,為了便于描述,僅示出了與本發(fā)明實(shí)施例相關(guān)的部分,其實(shí)現(xiàn)流程詳述如下:
[0145]步驟S11、接收報(bào)文;
[0146]步驟S12、將所述報(bào)文進(jìn)行鏡像以發(fā)送至至少兩個(gè)第二 NC ;
[0147]步驟S13、接收所述第二 NC反饋的反饋報(bào)文,所述反饋報(bào)文由所述第二 NC對所述報(bào)文進(jìn)行協(xié)議處理后生成;
[0148]步驟S14、輸出所述反饋報(bào)文。
[0149]這樣,步驟S12對所述報(bào)文進(jìn)行鏡像后可以發(fā)送給多個(gè)第二 NC同時(shí)進(jìn)行協(xié)議處理,從而實(shí)現(xiàn)多個(gè)用于協(xié)議處理的第二 NC之間的互備。
[0150]報(bào)文生成裝置接收所述報(bào)文后,依次執(zhí)行步驟S11、步驟S12、步驟S13、步驟S14,報(bào)文生成裝置將輸出所述反饋報(bào)文。
[0151]作為本發(fā)明一實(shí)施例,所述報(bào)文包括:來自與報(bào)文生成裝置連接的處理器的報(bào)文,或來自與所述報(bào)文生成裝置連接的一個(gè)或多個(gè)第一 NC的報(bào)文。
[0152]需要說明的是,所述來自所述第一 NC的報(bào)文包括所述反饋報(bào)文。具體地,服務(wù)器包括多個(gè)NC、多個(gè)處理器和對應(yīng)個(gè)數(shù)的報(bào)文生成裝置,其中一處理器與另一處理器之間的通信可能需要經(jīng)過其中的多個(gè)NC進(jìn)行報(bào)文傳輸,因此,可能存在以下情況:一處理器向一報(bào)文生成裝置發(fā)送的報(bào)文,該報(bào)文生成裝置分配給多個(gè)第二 NC進(jìn)行協(xié)議處理生成的所述反饋報(bào)文,在進(jìn)入另一處理器之前,需要將所述反饋報(bào)文作為所述報(bào)文從NI接口發(fā)送至與所述另一處理器連接的另一報(bào)文生成裝置,該另一報(bào)文生成裝置對所述反饋報(bào)文進(jìn)行再一次協(xié)議處理后發(fā)送至所述另一處理器。
[0153]與此同時(shí),所述步驟Sll包括:
[0154]從QPI接口接收來自處理器的報(bào)文;
[0155]從一個(gè)或多個(gè)NI接口接收來自一個(gè)或多個(gè)對應(yīng)的第一 NC的報(bào)文。
[0156]需要說明的是,一個(gè)所述NI接口與一個(gè)所述第一 NC連接,因此,一個(gè)所述NI接口接收來自對應(yīng)的該第一 NC的報(bào)文。
[0157]優(yōu)選的是,所述步驟S14,具體為:
[0158]根據(jù)所述反饋報(bào)文包括的反饋地址和報(bào)文類型,從所述NI接口輸出所述反饋報(bào)文或從所述QPI接口輸出所述反饋報(bào)文。
[0159]實(shí)施例五:
[0160]基于實(shí)施例四提供的報(bào)文生成方法,本實(shí)施例做了進(jìn)一步優(yōu)化:對于步驟Sll接收到的一份所述報(bào)文,執(zhí)行步驟S14時(shí)僅輸出一份對應(yīng)的所述反饋報(bào)文。
[0161]需要說明的是,本實(shí)施例提供的報(bào)文生成方法與實(shí)施例二提供的報(bào)文生成裝置相互適用;
[0162]作為本發(fā)明一實(shí)施例,為了保證僅輸出一份所述反饋報(bào)文,并且為了避免需要訪問同一操作地址以完成協(xié)議處理的多個(gè)報(bào)文同時(shí)被分配到第二 NC,所述報(bào)文生成方法還包括:
[0163]判斷地址列表中是否存儲(chǔ)有接收到的所述報(bào)文的操作地址,若否,則將所述報(bào)文進(jìn)行鏡像以發(fā)送至至少兩個(gè)所述第二 NC (即執(zhí)行步驟S12),并在所述地址列表中保存所述報(bào)文的操作地址。
[0164]優(yōu)選的是,所述報(bào)文生成方法還包括:
[0165]若所述地址列表已存儲(chǔ)有接收到的所述報(bào)文的操作地址,則在等待隊(duì)列中添加所述報(bào)文。
[0166]作為本發(fā)明一實(shí)施例,在步驟S12將所述報(bào)文分配給多個(gè)第二 NC進(jìn)行協(xié)議處理之前,為了保證每個(gè)所述第二 NC反饋的所述反饋報(bào)文均是一樣的,所述步驟S12,還包括:
[0167]指定每個(gè)所述第二 NC用于執(zhí)行協(xié)議處理的資源,記錄所述資源對應(yīng)的資源號。
[0168]作為本發(fā)明一實(shí)施例,由于每個(gè)所述第二 NC產(chǎn)生的所述反饋報(bào)文是一樣的,而本實(shí)施例希望僅執(zhí)行一次步驟S14以輸出一份所述反饋報(bào)文,因此,所述報(bào)文生成方法還包括:
[0169]若第一次接收到所述反饋報(bào)文,則輸出所述反饋報(bào)文(即執(zhí)行步驟S14),并記錄所述反饋報(bào)文的報(bào)文特征值,刪除所述資源號。
[0170]優(yōu)選的是,所述報(bào)文生成方法還包括:
[0171]若最后一次接收到所述反饋報(bào)文,則刪除所述反饋報(bào)文的報(bào)文特征值,從所述地址列表中刪除在執(zhí)行協(xié)議處理并生成所述反饋報(bào)文前的報(bào)文的操作地址。
[0172]在發(fā)明本實(shí)施例中,服務(wù)器包括多個(gè)處理器和多個(gè)NC,其中,每個(gè)處理器均通過一個(gè)報(bào)文生成裝置與多個(gè)NC (所述NC包括至少兩個(gè)第二 NC)通信;因此,服務(wù)器中的一處理器與另一處理器進(jìn)行數(shù)據(jù)通信時(shí),與處理器連接的報(bào)文生成裝置,通過接收單元從QPI接口接收來自處理器的報(bào)文;分配單元將所述報(bào)文進(jìn)行鏡像以發(fā)送至至少兩個(gè)第二 NC ;報(bào)文反饋單元接收所述第二 NC反饋的反饋報(bào)文;輸出單元輸出所述反饋報(bào)文;與此同時(shí),對于輸入單元接收的一份報(bào)文,通過地址列表單元、判斷單元、等待單元以及過濾單元的協(xié)助處理,保證每個(gè)用于協(xié)議處理的第二 NC輸出的反饋報(bào)文都一樣,然后輸出單兀僅輸出一份反饋報(bào)文;根據(jù)反饋報(bào)文的反饋地址和報(bào)文類型,從QPI接口向處理器輸出反饋報(bào)文,或從NI接口向第一 NC輸出反饋報(bào)文。從而實(shí)現(xiàn)一處理器的報(bào)文經(jīng)過報(bào)文生成裝置向第一 NC發(fā)送報(bào)文(反饋報(bào)文),該報(bào)文經(jīng)過一個(gè)或多個(gè)第一NC之間的轉(zhuǎn)發(fā)到達(dá)與另一處理器相鄰的第一NC,該相鄰的第一 NC將該轉(zhuǎn)發(fā)的報(bào)文經(jīng)過報(bào)文生成裝置生成的報(bào)文(反饋報(bào)文)向該另一處理器發(fā)送以完成一次數(shù)據(jù)通信;如若該另一處理器需要向該一處理器反饋,則可以通過上述數(shù)據(jù)通信方式進(jìn)行反向通信。
[0173]在本發(fā)明實(shí)施例中,報(bào)文生成裝置采用鏡像技術(shù)將報(bào)文分配給多個(gè)第二 NC以完成協(xié)議處理,有效地實(shí)現(xiàn)了用于協(xié)議處理的第二 NC之間的相互備用。
[0174]本領(lǐng)域技術(shù)人員可以理解:實(shí)施例一和實(shí)施例二提供的報(bào)文生成裝置,可以是運(yùn)行于服務(wù)器的軟件單元、硬件單元或者軟硬件相結(jié)合的單元,也可以作為獨(dú)立的掛件集成到或者運(yùn)行于服務(wù)器中。
[0175]本領(lǐng)域技術(shù)人員可以理解為上述實(shí)施例一和實(shí)施例二包括的各個(gè)單元只是按照功能邏輯進(jìn)行劃分的,但并不局限于上述的劃分,只要能夠?qū)崿F(xiàn)相應(yīng)的功能即可;另外,各功能單元的具體名稱也只是為了便于相互區(qū)分,并不用于限制本發(fā)明的保護(hù)范圍。
[0176]本發(fā)明實(shí)施例還提供一種服務(wù)器,所述服務(wù)器包括實(shí)施例一、實(shí)施例二或?qū)嵤├峁┑膱?bào)文生成裝置。
[0177]本領(lǐng)域普通技術(shù)人員還可以理解,實(shí)現(xiàn)上述實(shí)施例方法中的全部或部分步驟是可以通過程序來指令相關(guān)的硬件來完成,所述的程序可以在存儲(chǔ)于一可讀取存儲(chǔ)介質(zhì)中,所述的存儲(chǔ)介質(zhì),包括R0M/RAM、磁盤、光盤等。
[0178]以上內(nèi)容是結(jié)合具體的優(yōu)選實(shí)施方式對本發(fā)明所作的進(jìn)一步詳細(xì)說明,不能認(rèn)定本發(fā)明的具體實(shí)施只局限于這些說明。對于本發(fā)明所屬【技術(shù)領(lǐng)域】的普通技術(shù)人員來說,在不脫離本發(fā)明構(gòu)思的前提下做出若干等同替代或明顯變型,而且性能或用途相同,都應(yīng)當(dāng)視為屬于本發(fā)明由所提交的權(quán)利要求書確定的專利保護(hù)范圍。
【權(quán)利要求】
1.一種報(bào)文生成裝置,其特征在于,所述報(bào)文生成裝置包括: 接收單元,用于接收報(bào)文; 分配單元,用于將所述報(bào)文進(jìn)行鏡像以發(fā)送至至少兩個(gè)第二節(jié)點(diǎn)控制器Ne; 報(bào)文反饋單元,用于接收所述第二 NC反饋的反饋報(bào)文,所述反饋報(bào)文由所述第二 NC對所述報(bào)文進(jìn)行協(xié)議處理后生成; 輸出單元,用于輸出所述反饋報(bào)文。
2.如權(quán)利要求1所述的報(bào)文生成裝置,其特征在于,所述報(bào)文生成裝置還包括: 地址列表單元,用于保存所述報(bào)文的操作地址,所述操作地址為對所述報(bào)文進(jìn)行協(xié)議處理所需訪問的地址; 判斷單元,用于若所述地址列表單元未存儲(chǔ)有所述接收單元接收到的所述報(bào)文的操作地址,則由所述分配單元將所述報(bào)文進(jìn)行鏡像以發(fā)送至至少兩個(gè)第二 NC,并在所述地址列表單元中保存所述接收到的所述報(bào)文的操作地址。
3.如權(quán)利要求2所述的報(bào)文生成裝置,其特征在于,所述報(bào)文生成裝置還包括: 等待單元,用于在等待隊(duì)列中添加所述接收單元接收到的所述報(bào)文; 所述判斷單元,還用于: 若所述地址列表單元已存儲(chǔ)有所述接收單元接收到的所述報(bào)文的操作地址,則由所述等待單元在等待隊(duì)列中添加所述接`收單元接收到的所述報(bào)文。
4.如權(quán)利要求3所述的報(bào)文生成裝置,其特征在于,所述分配單元,還用于: 指定每個(gè)所述第二 NC用于執(zhí)行協(xié)議處理的資源,記錄所述資源對應(yīng)的資源號。
5.如權(quán)利要求4所述的報(bào)文生成裝置,其特征在于,所述報(bào)文生成裝置還包括: 過濾單元,用于若所述報(bào)文反饋單元第一次接收到所述反饋報(bào)文,則由所述輸出單元輸出所述反饋報(bào)文,并記錄所述反饋報(bào)文的報(bào)文特征值,刪除所述資源號,若所述報(bào)文反饋單元最后一次接收到所述反饋報(bào)文,則刪除所述反饋報(bào)文的報(bào)文特征值,從所述地址列表單元中刪除在執(zhí)行協(xié)議處理并生成所述反饋報(bào)文前的報(bào)文的操作地址。
6.如權(quán)利要求1所述的報(bào)文生成裝置,其特征在于, 所述接收單元包括: 快速通道互聯(lián)QPI接口,用于接收來自所述處理器的報(bào)文; 一個(gè)或多個(gè)節(jié)點(diǎn)互聯(lián)NI接口,每個(gè)所述NI接口接收來自對應(yīng)的一個(gè)所述第一 NC的報(bào)文; 所述輸出單元,具體用于: 根據(jù)所述反饋報(bào)文包括的反饋地址和報(bào)文類型,從所述NI接口輸出所述反饋報(bào)文或從所述QPI接口輸出所述反饋報(bào)文。
7.一種服務(wù)器,其特征在于,所述服務(wù)器包括權(quán)利要求1至6任一項(xiàng)所述的報(bào)文生成裝置。
8.一種報(bào)文生成方法,其特征在于,所述報(bào)文生成方法包括: 接收報(bào)文; 將所述報(bào)文進(jìn)行鏡像以發(fā)送至至少兩個(gè)第二 NC ; 接收所述第二 NC反饋的反饋報(bào)文,所述反饋報(bào)文由所述第二 NC對所述報(bào)文進(jìn)行協(xié)議處理后生成;輸出所述反饋報(bào)文。
9.如權(quán)利要求8所述的報(bào)文生成方法,其特征在于,所述報(bào)文生成方法還包括: 判斷地址列表中是否存儲(chǔ)有接收到的所述報(bào)文的操作地址,若否,則將所述報(bào)文進(jìn)行鏡像以發(fā)送至至少兩個(gè)所述第二 NC,并在所述地址列表中保存所述報(bào)文的操作地址。
10.如權(quán)利要求9所述的報(bào)文生成方法,其特征在于,所述報(bào)文生成方法還包括: 若所述地址列表已存儲(chǔ)有接收到的所述報(bào)文的操作地址,則在等待隊(duì)列中添加所述報(bào)文。
11.如權(quán)利要求10所述的報(bào)文生成方法,其特征在于,所述將所述報(bào)文進(jìn)行鏡像以發(fā)送至至少兩個(gè)第二 NC的步驟,還包括: 指定每個(gè)所述第二 NC用于執(zhí)行協(xié)議處理的資源,記錄所述資源對應(yīng)的資源號。
12.如權(quán)利要求11所述的報(bào)文生成方法,其特征在于,所述報(bào)文生成方法還包括: 若第一次接收到所述反饋報(bào)文,則輸出所述反饋報(bào)文,并記錄所述反饋報(bào)文的報(bào)文特征值,刪除所述資源號; 若最后一次接收到所述反饋報(bào)文,則刪除所述反饋報(bào)文的報(bào)文特征值,從所述地址列表中刪除在執(zhí)行協(xié)議處理并生成所述反饋報(bào)文前的報(bào)文的操作地址。
13.如權(quán)利要求8所述的報(bào)文生成方法,其特征在于,所述接收報(bào)文的步驟包括:` 從QPI接口接收來自處理器的報(bào)文; 從一個(gè)或多個(gè)NI接口接收來自一個(gè)或多個(gè)對應(yīng)的第一 NC的報(bào)文; 所述輸出所述反饋報(bào)文的步驟,具體為: 根據(jù)所述反饋報(bào)文包括的反饋地址和報(bào)文類型,從所述NI接口輸出所述反饋報(bào)文或從所述QPI接口輸出所述反饋報(bào)文。
【文檔編號】H04L29/06GK103491079SQ201310416648
【公開日】2014年1月1日 申請日期:2013年9月12日 優(yōu)先權(quán)日:2013年9月12日
【發(fā)明者】王工藝, 常勝, 黃江樂 申請人:杭州華為數(shù)字技術(shù)有限公司