欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一致性消息的傳輸方法、系統(tǒng)、總線接口控制器和芯片與流程

文檔序號:11133874閱讀:836來源:國知局
一致性消息的傳輸方法、系統(tǒng)、總線接口控制器和芯片與制造工藝

本發(fā)明涉及計算機技術(shù)領(lǐng)域,尤其涉及一種一致性消息的傳輸方法、系統(tǒng)、總線接口控制器和芯片。



背景技術(shù):

在當前計算機技術(shù)領(lǐng)域中,計算機系統(tǒng)中的芯片包括多個單核或多核的處理器,由于各個處理器核共享存儲資源,則為了保證計算機系統(tǒng)的正常運行,因此保證緩存中的數(shù)據(jù)一致性尤為重要,即需要維護緩存一致性,例如處理器core1經(jīng)過運算更改了數(shù)據(jù)m的賦值,則此時需要維護緩存一致性,以使用于向其他處理器核提供數(shù)據(jù)m的緩存同步更新該數(shù)據(jù)m的賦值,以保證各個處理器核使用的數(shù)據(jù)m為一致的;具體的,在計算機系統(tǒng)中,處理器分布在不同的緩存一致性子域(cache coherence sub-domain,簡稱CCSD)中,不同的CCSD通過橋片互連;常見的,各個核之間、處理器之間可通過傳輸一致性消息進行緩存一致性的維護,其中一致性消息由基于高級擴展接口(Advanced extensible Interface,簡稱AXI)協(xié)議下的五種通道進行傳輸,具體的,一致性消息包括讀請求通道(AR通道)傳輸?shù)囊患壘彺孀x失效(ar_request_read)、一級緩存寫失效(ar_request_write);寫請求通道(包括AW通道和W通道)傳輸?shù)囊患壘彺嫣鎿Q請求(aw_replace)、處理器核發(fā)往最后一級緩存(Last Level Cache,簡稱LLC)的響應消息(該響應消息包括:aw_writeback_invalid,aw_writeback,aw_invalid);讀響應通道(R通道)傳輸?shù)淖x請求通道響應消息(r_response)、最后一級緩存無效命令(r_invalid)、最后一級緩存寫回命令(r_writeback)、最后一級緩存寫回并無效命令(r_writeback_invalid);寫響應通道(B通道)傳輸?shù)膶懻埱笸ǖ理憫?b_respense)。

在維護緩存一致性時,同一個緩存一致性子域中各個處理器核及最后 一級緩存之間可以通過快速傳輸(HyperTransport,簡稱HT)接口中的上述五種信道傳輸一致性消息;當一個緩存一致性子域中的某個處理器需要將一致性消息發(fā)送至另一個緩存一致性子域中最后一級緩存時,或者一個緩存一致性子域中的最后一級緩存要將一致性消息發(fā)送至另一個緩存一致性子域中的一個處理器時,通常是依照快速通道互聯(lián)(QuickPath Interconnect,簡稱QPI)協(xié)議,采用第三代總線接口(PCI-Express,簡稱PCI-E,是在PCIe1.0標準下于2004年引入的總線和接口標準)電路傳送QPI消息,以維護跨子域間的緩存一致性;但現(xiàn)有技術(shù)中在維護跨子域間的緩存一致性時,需要針對多個子域設置PCI-E接口電路,還需要對PCI-E的協(xié)議棧做較大改動,不便于維護跨子域間的緩存一致性。



技術(shù)實現(xiàn)要素:

本發(fā)明提供一種一致性消息的傳輸方法、系統(tǒng)、總線接口控制器和芯片,用于解決現(xiàn)有技術(shù)中進行子域之間的一致性消息的傳輸時,需要對子域間的接口電路和協(xié)議棧做出大規(guī)模部署及調(diào)整的問題。

本發(fā)明的第一方面提供一種一致性消息的傳輸方法,包括:

第一總線接口控制器接收第一緩存一致性子域中的第一一致性消息;所述第一總線接口控制器歸屬于所述第一緩存一致性子域;所述第一一致性消息攜帶消息類型和目的地址;

所述第一總線接口控制器根據(jù)所述第一一致性消息的消息類型和預設的打包相關(guān)信息確定打包格式,并按照所述打包格式對所述第一一致性消息進行打包以獲得第一打包消息,所述打包相關(guān)信息包括一致性消息的消息類型和打包格式的對應關(guān)系;

所述第一總線接口控制器根據(jù)所述第一一致性消息的目的地址,將所述第一打包消息通過歸屬于所述第一緩存一致性子域的總線接口發(fā)送至歸屬于第二緩存一致性子域的第二總線接口控制器;

其中,所述第一緩存一致性子域中包括處理器核與最后一級緩存,所述第一緩存一致性子域中的所述第一一致性消息是由所述第一緩存一致性子域中的處理器核或最后一級緩存發(fā)送的。

結(jié)合第一方面,在第一方面的第一種可選的實施方式中,所述第一總線 接口控制器和所述第二總線接口控制器為第三代總線接口PCI-E控制器,所述總線接口為PCI-E接口。

結(jié)合第一方面的第一種可選的實施方式,在第一方面的第二種可選的實施方式中,所述第一總線接口控制器根據(jù)所述第一一致性消息的消息類型和預設的打包相關(guān)信息確定打包格式包括:

所述第一PCI-E控制器根據(jù)所述第一一致性消息的消息類型和預設的打包相關(guān)信息,確定對應的事務層數(shù)據(jù)包TLP包的打包格式。

結(jié)合第一方面的第一種至第二種任一種可選的實施方式,在第一方面的第三種可選的實施方式中,所述第一打包消息至少包括所述第一一致性消息和定義符號;

所述定義符號用于表示所述第一打包消息所采用的打包格式,所述預設的打包相關(guān)信息還包括一致性消息的消息類型和定義符號的對應關(guān)系。

結(jié)合第一方面的第三種可選的實施方式,在第一方面的第四種可選的實施方式中,所述將所述第一打包消息通過歸屬于所述第一緩存一致性子域的總線接口,發(fā)送至歸屬于第二緩存一致性子域的第二總線接口控制器,包括:

所述第一PCI-E控制器通過歸屬于所述第一緩存一致性子域的PCI-E接口內(nèi)所述第一打包消息的定義符號對應的虛通道中的至少兩個子虛通道中的一個空閑的子虛通道,將所述第一打包消息發(fā)送至所述第二PCI-E控制器;所述PCI-E接口包括4個虛通道;所述第一打包消息中的定義符號對應所述4個虛通道中的一個虛通道;所述4個虛通道中的每個虛通道包括至少兩個子虛通道。

結(jié)合第一方面的第二種至第四種任一種可選的實施方式,在第一方面的第五種可選的實施方式中,所述傳輸方法還包括:

所述第一PCI-E控制器接收第二打包消息;

所述第一PCI-E控制器根據(jù)所述第二打包消息的定義符號和預設的打包相關(guān)信息,確定所述第二打包消息的打包格式,并根據(jù)所述第二打包消息的打包格式,進行解包操作以獲得所述第二打包消息所包括的第二一致性消息,所述打包相關(guān)信息包括定義符號與打包格式的對應關(guān)系;

所述第一PCI-E控制器根據(jù)所述第二一致性消息的目的地址,將所述第二一致性消息發(fā)送給第一緩存一致性子域中的處理器或最后一級緩存。

本發(fā)明的第二方面提供一種總線接口控制器,包括:

第一接收模塊,用于接收第一緩存一致性子域中的第一一致性消息;所述總線接口控制器歸屬于所述第一緩存一致性子域;所述第一一致性消息攜帶消息類型和目的地址;

處理模塊,用于根據(jù)所述第一一致性消息的消息類型和預設的打包相關(guān)信息確定打包格式,并按照所述打包格式對所述第一一致性消息進行打包以獲得第一打包消息,所述打包相關(guān)信息包括一致性消息的消息類型和打包格式的對應關(guān)系;

第一發(fā)送模塊,用于根據(jù)所述第一一致性消息的目的地址,將所述第一打包消息通過所述總線接口控制器的總線接口發(fā)送至歸屬于第二緩存一致性子域的總線接口控制器;

其中,所述第一緩存一致性子域中包括處理器核與最后一級緩存,所述第一緩存一致性子域中的所述第一一致性消息是由所述第一緩存一致性子域中的處理器核或最后一級緩存發(fā)送的。

結(jié)合第二方面,在第二方面的第一種可能的實現(xiàn)方式中,所述總線接口控制器為第三代總線接口PCI-E控制器,所述總線接口為PCI-E接口。

結(jié)合第二方面的第一種可能的實現(xiàn)方式,在第二方面的第二種可能的實現(xiàn)方式中,所述處理模塊,具體用于根據(jù)所述第一一致性消息的消息類型和預設的打包相關(guān)信息,確定對應的事務層數(shù)據(jù)包TLP包的打包格式。

結(jié)合第二方面的第二種可能的實現(xiàn)方式,在第二方面的第三種可能的實現(xiàn)方式中,所述第一發(fā)送模塊,具體用于通過所述PCI-E控制器的PCI-E接口內(nèi)所述第一打包消息的定義符號對應的虛通道中的至少兩個子虛通道中的一個空閑的子虛通道,將所述第一打包消息發(fā)送至所述歸屬于第二緩存一致性子域的總線接口控制器;所述PCI-E接口包括4個虛通道;所述第一打包消息中的定義符號對應所述4個虛通道中的一個虛通道;所述4個虛通道中的每個虛通道包括至少兩個子虛通道,所述打包相關(guān)信息還包括定義符號與虛通道的對應關(guān)系。

結(jié)合第二方面的第二種至第三種任一種可能的實現(xiàn)方式,在第二方面的第四種可能的實現(xiàn)方式中,還包括第二接收模塊和第二發(fā)送模塊:

所述第二接收模塊,用于接收第二打包消息;

所述處理模塊,還用于根據(jù)所述第二打包消息的定義符號和預設的打包相關(guān)信息,確定所述第二打包消息的打包格式,并根據(jù)所述第二打包消息的打包格式,進行解包操作以獲得所述第二打包消息所包括的第二一致性消息,所述打包相關(guān)信息包括定義符號與打包格式的對應關(guān)系;

所述第二發(fā)送模塊,用于根據(jù)所述第二一致性消息的目的地址,將所述第二一致性消息發(fā)送給第一緩存一致性子域中的處理器或最后一級緩存。

本發(fā)明的第三方面提供一種芯片,包括:快速傳輸HT控制器、至少一個HT接口、至少一個總線接口和如第二方面任一種所述的總線接口控制器。

本發(fā)明的第四方面提供一種一致性消息的傳輸系統(tǒng),包括:第一總線接口控制器和第二總線接口控制器;其中,

所述第一總線接口控制器,用于接收所述第一緩存一致性子域中的處理器核或者最后一級緩存發(fā)送的第一一致性消息,所述第一一致性消息攜帶消息類型和目的地址并根據(jù)所述第一一致性消息的消息類型和預設的打包相關(guān)信息確定打包格式,并按照所述打包格式對所述第一一致性消息進行打包以獲得第一打包消息,所述打包相關(guān)信息包括一致性消息的消息類型和打包格式的對應關(guān)系;以及根據(jù)所述第一一致性消息的目的地址,將所述第一打包消息通過歸屬于所述第一緩存一致性子域的總線接口發(fā)送至歸屬于第二緩存一致性子域的第二總線接口控制器;

所述第二總線接口控制器接收所述第一打包消息;根據(jù)所述第一打包消息的定義符號和預設的打包相關(guān)信息,確定所述第二打包消息的打包格式;并根據(jù)所述第一打包消息的打包格式,進行解包操作以獲得所述第一打包消息所包括的所述第一一致性消息,所述打包相關(guān)信息包括定義符號和打包格式的對應關(guān)系;再根據(jù)所述第一一致性消息的目的地址,將所述第一一致性消息發(fā)送給第二緩存一致性子域中的處理器或最后一級緩存。

本發(fā)明實提供的一致性消息的傳輸方法通過總線接口控制器將第一緩存一致性子域中的第一一致性消息進行打包,使得子域間的一致性消息的傳輸可通過總線接口發(fā)送至第二緩存一致性子域,相比于現(xiàn)有技術(shù),本申請中在進行子域之間的一致性消息的傳輸時,不需要對子域間的接口電路做出大規(guī)模部署及調(diào)整,優(yōu)化了一致性消息的傳輸過程。

附圖說明

圖1為本發(fā)明一致性消息的傳輸方法實施例一的流程圖;

圖2為本發(fā)明實施例一緩存一致性子域示意圖;

圖3為本發(fā)明一致性消息的傳輸方法實施例二的流程圖;

圖4為本發(fā)明一致性消息的傳輸方法實施例三的信令圖;

圖5為本發(fā)明提供的一種總線接口控制器實施例一的結(jié)構(gòu)示意圖;

圖6為本發(fā)明提供的一種總線接口控制器實施例二的結(jié)構(gòu)示意圖;

圖7為本發(fā)明提供的一種芯片的結(jié)構(gòu)示意圖。

具體實施方式

圖1為本發(fā)明一致性消息的傳輸方法實施例一的流程圖。圖2為本發(fā)明實施例一緩存一致性子域示意圖。

本實施例的執(zhí)行主體可以為總線接口控制器,例如可以是PCI-E控制器或者是基于目前的PCI-E控制器開發(fā)或擴展的其他支持PCI-E接口的傳輸協(xié)議的總線接口控制器,如可能出現(xiàn)的第四代總線接口控制器等。本發(fā)明不以此為限,下面以PCI-E控制器為例進行具體說明,該PCI-E控制器位于緩存一致性子域中,具體的,如圖2所示,緩存一致性子域(以下簡稱子域)中至少包括至少一個中央處理器(Central Processing Unit,簡稱CPU)、最后一級緩存與橋片,每個處理器中至少包括一個處理器核(core)和一個最后一級緩存,各個處理器之間、每個處理器核與該緩存一致性子域上除該處理器核所在的處理器之外的另一處理器中的最后一級緩存之間、各個處理器與橋片之間可通過HT接口進行信息的傳輸,在各個處理器核或最后一級緩存需要跨子域傳輸消息時,例如一個緩存一致性子域中的最后一級緩存向另一個緩存一致性子域中的處理器核發(fā)送一致性消息時,則最后一級緩存需通過歸屬于該最后一級緩存所在的緩存一致性子域中的PCI-E控制器進行傳輸,又如,一個緩存一致性子域中的處理器核向另一個緩存一致性子域中的最后一級緩存發(fā)送一致性消息時,則處理器核需通過歸屬于該處理器核所在的緩存一致性子域中的PCI-E控制器進行傳輸;在每一個緩存一致性子域中,PCI-E控制器可位于緩存一致性子域內(nèi)的橋片中。

如圖1所示,本實施例的傳輸方法可以包括:

S101、第一PCI-E控制器接收第一緩存一致性子域中的第一一致性消息。

第一PCI-E控制器歸屬于所述第一緩存一致性子域;所述第一一致性消息攜帶消息類型和目的地址。

需要說明的是,上述第一緩存一致性子域與下述第二緩存一致性子域的架構(gòu)類似,即本實施例中的緩存一致性子域中均至少包括處理器核與最后一級緩存,每一個緩存一致性子域中的一致性消息是由該緩存一致性子域中的處理器核或最后一級緩存發(fā)送的;為了便于說明一致性消息的傳輸過程,做出第一與第二的區(qū)分,舉例來說,緩存一致性子域A與緩存一致性子域B之間的信息傳輸過程中,以緩存一致性子域A的角度來看,該緩存一致性子域A即為第一緩存一致性子域,從而緩存一致性子域A中處理器核或最后一級緩存發(fā)起的一致性消息即為第一一致性消息,則歸屬于緩存一致性子域A的PCI-E控制器即為上述第一PCI-E控制器,相應的,緩存一致性子域B即為第二緩存一致性子域,從而緩存一致性子域B中處理器或最后一級緩存發(fā)起的一致性消息即為第二一致性消息,則歸屬于緩存一致性子域B的PCI-E控制器即為下述第二PCI-E控制器;可以理解的,若以緩存一致性子域B的角度來看,則緩存一致性子域B為第一緩存一致性子域,此時緩存一致性子域A為第二緩存一致性子域。

S102、第一PCI-E控制器根據(jù)所述第一一致性消息的消息類型和預設的打包相關(guān)信息,確定打包格式,并按照所述打包格式,對所述第一一致性消息進行打包以獲得第一打包消息。

可選的,在對第一一致性消息進行打包時,可利用PCI-E協(xié)議中的事務層數(shù)據(jù)包(Transport Layer Packet,簡稱TLP)的格式,從而使得第一打包消息可通過下述S104中所述的PCI-E接口發(fā)送??蛇x的,可以將所述第一一致性消息的內(nèi)容填充在TLP的data payload字段部分。

可選的,可以將所述第一一致性消息打包為使用posted request轉(zhuǎn)發(fā)總線事務的Memory_write類型的TLP。具體地,可以將第一打包消息的TLP包頭中的fmt字段填寫為11,將type字段填寫為0,以表示當前的TLP包為Memory_write類型的TLP包且TLP包的包頭長度為4dw,這種TLP在消息傳輸過程中,發(fā)起消息的主設備不需要目標設備(接收該消息的設備)的回應報文,適合于進行基于PCI-E傳輸協(xié)議的點對點消息的傳輸,如本發(fā)明各 個實施例提供的一致性消息的傳輸。

S103、第一PCI-E控制器根據(jù)第一一致性消息的目的地址,將所述第一打包消息通過歸屬于所述第一緩存一致性子域的PCI-E接口發(fā)送至歸屬于第二緩存一致性子域的第二PCI-E控制器。

當S101中第一一致性消息是第一緩存一致性子域中的最后一級緩存發(fā)送的,則上述目的地址則可以具體為第二緩存一致性子域中處理器核的標號,例如第二緩存一致性子域(以CCSD2表示)中處理器核core2在S101之前通過向第一緩存一致性子域(以CCSD1表示)中的最后一級緩存(LLC1)發(fā)送第二一致性消息以獲取LLC1中的數(shù)據(jù),該請求中攜帶該core2的標識,則LLC1需通過第一一致性消息向core2做出響應,則此時上述目的地址為core2的標識;

當S101中第一一致性消息是CCSD1中的處理器核(core1)發(fā)送的,則core1發(fā)送的一致性消息是用于請求CCSD2中LLC2中的數(shù)據(jù);可以理解的,計算機系統(tǒng)中的緩存(包括一級緩存、最后一級緩存等)在緩存數(shù)據(jù)時,是將數(shù)據(jù)的地址信息進行存儲的,例如計算機上的程序或處理器向硬盤中寫入了數(shù)據(jù),該數(shù)據(jù)是被寫入地址1指向的存儲位置中,隨后計算機處理器核調(diào)用了該數(shù)據(jù),則一級緩存或最后一級緩存在該數(shù)據(jù)時,是將該數(shù)據(jù)的地址信息“地址1”進行存儲,其中地址信息是采用多個比特位(通常為48位)表示的,舉例來說,計算機系統(tǒng)中通過使用48位比特,將計算機的存儲空間劃分為248個地址指向的多個位置,每個位置用于存儲數(shù)據(jù);當計算機上的程序、處理器等使用數(shù)據(jù)時,是根據(jù)數(shù)據(jù)所在位置的地址進行尋址的;由此可知,地址的范圍較大,而上述一級緩存中可緩存的地址的范圍不限,但最后一級緩存可緩存的地址范圍存在限制,具體來說,假設計算機系統(tǒng)中存在248個用于存儲數(shù)據(jù)的位置,則相應的存在248個地址,根據(jù)數(shù)據(jù)的調(diào)用情況,該248個地址中的任意地址均可緩存至一級緩存中,但248個地址中的地址范圍0~k僅可緩存至CCSD1中的最后一級緩存LLC1中,地址范圍k+1~2k僅可緩存至CCSD2中的LLC2中,以此類推,不同的最后一級緩存可緩存的地址范圍是不同的,因此當core1通過第一一致性消息請求數(shù)據(jù)m時,上述目的地址即為該數(shù)據(jù)m的地址1,因此當歸屬于CCSD1的第一PCI-E控制器判斷地址1位于地址范圍k+1~2k中,則歸屬于CCSD1的第一PCI-E控制器將上述第一 緩存一致性消息處理為第一打包消息后,便將該第一打包消息發(fā)送至歸屬于CCSD2的第二PCI-E控制器。

第一PCI-E控制器將第一打包消息通過PCI-E接口,發(fā)送至第二緩存一致性子域,完成了跨子域間一致性消息的傳輸,維護了跨子域間的緩存一致性。

本實施例中,PCI-E控制器將第一緩存一致性子域中的第一一致性消息進行打包,使得子域間的一致性消息的傳輸可通過PCI-E接口發(fā)送至第二緩存一致性子域,相比于現(xiàn)有技術(shù),本申請中在進行子域之間的一致性消息的傳輸時,不需要對子域間的接口電路做出大規(guī)模部署及調(diào)整,優(yōu)化了一致性消息的傳輸過程。

圖3為本發(fā)明一致性消息的傳輸方法實施例二的流程圖。

如圖3所示,本實施例是在圖1所示的實施例的基礎上做出進一步的描述,本實施例的具體過程如下:

S301、第一PCI-E控制器接收第一緩存一致性子域中的第一一致性消息。

具體的,通過與當前橋片相連的第一接口的第一通道,接收第一緩存一致性子域中的第一一致性消息。

如圖3所示,第一接口以HT接口為例,緩存一致性子域中的各個處理器之間及處理器與最后一級緩存之間可以通過該第一接口進行通信,且處理器與最后一級緩存還通過該第一接口與緩存一致性子域內(nèi)的橋片進行通信,且該第一接口按照AXI協(xié)議設置了五條AXI通道。

上述第一通道是當前傳輸一致性消息的通道,即第一接口按照AXI協(xié)議設置的五條通道中的任意一條通道在當前傳輸消息時,則可看作第一通道。具體的,緩存一致性子域內(nèi)的處理器核或最后一級緩存在發(fā)送一致性消息時,會根據(jù)一致性消息的消息類型的不同,在第一接口中選擇對應的通道發(fā)送。例如當?shù)谝灰恢滦韵⒕唧w為一級緩存讀失效,按照AXI協(xié)議,該一級緩存讀失效消息需要在AXI協(xié)議的讀請求通道(AR通道)上發(fā)送,則處理器根據(jù)該第一一致性消息的消息類型,使用當前作為第一通道的讀請求通道(AR通道),將第一一致性消息發(fā)送給第一PCI-E控制器。

S302、第一PCI-E控制器根據(jù)第一一致性消息的消息類型和預設的打包相關(guān)信息確定打包格式,并根據(jù)所述打包格式,對第一一致性消息進行打包 以獲得第一打包消息。

第一一致性消息攜帶消息類型,則第一PCI-E控制器可確定第一一致性消息的消息類型對應的打包格式。

一致性消息有多種類型,因此對于當前接收到的第一一致性消息,需按照其類型對應的打包格式進行打包,得到第一打包消息,其中,打包消息至少包括第一一致性消息、定義符號。打包消息的定義符號用于表示該打包消息所采用的打包格式,所述定義符號對應的打包格式是PCI-E控制器根據(jù)打包消息中的一致性消息的消息類型確定的。

例如可以使用cmd信號作為定義符號,下述表1為打包相關(guān)信息,其中包括本實施例中AXI協(xié)議中的一致性消息的消息類型與定義符號和打包格式的對應關(guān)系。表1為打包相關(guān)信息的一種實現(xiàn)形式,所示的與一致性消息打包時相關(guān)的項目和對應關(guān)系以及以下各表所示的具體打包格式可預先存儲于本發(fā)明實施例提供的各個總線接口控制器中。

表1

以HT接口轉(zhuǎn)發(fā)給第一PCI-E控制器的第一一致性消息的消息類型為一級緩存讀失效為例,第一PCI-E控制器根據(jù)第一一致性消息攜帶的消息類型為一級緩存讀失效,可以確定打包格式為打包格式1,以及該第一一致性消息的消息類型對應的TLP包的cmd信號為1100,在將第一一致性消息處理為第一打包消息時按照打包格式1進行處理,并將該第一打包消息中的data payload部分的cmd信號填寫為“1100”。

可選的,當?shù)谝灰恢滦韵⒌南㈩愋蜑橐患壘彺孀x失效、一級緩存寫失效時,第一PCI-E控制器根據(jù)消息類型確定該第一一致性消息使用的打包格式為打包格式1,則采用表2所示的打包格式1進行處理:

表2

表2中“dw”表示雙字,表2與下述各表中的“S[m:n]”表示該位置為S字段的m號比特位至n號比特位,例如cmd[3:0]位于1dw的0號字節(jié)的前半部分,即cmd信號的3號比特位至0號比特位占用了1dw的0號字節(jié)的7~4號比特位,而1dw的0號字節(jié)的3~0號比特位為id字段的3~0號比特位,該id字段的11~4號比特位占用1dw的1號字節(jié)中的7~0號比特位,id字段的15~12號比特位占用3w的2號字節(jié)中的6~3號比特位。如,id字段可用于指示當前的第一一致性消息在當前處理器核或者最后一級緩存中對應的未處理完的一致性消息的編號,則1dw的第0字節(jié)的[3:0]比特位、1dw的第1字節(jié)的的[7:0]比特位和3dw的第2字節(jié)的[15:12]比特位共同表示該一致性消息的編號。

需要說明的是,表2所示的打包格式1以及下述各表所示的其他打包格式中所示的各個字段均為AXI協(xié)議或者擴展AXI協(xié)議中對應的一致性消息所包括的字段,例如,cmd、id、addr、data、prot、cache字段為AXI協(xié)議的字段,state、cpuno、dirqid、scseti字段為擴展AXI協(xié)議的字段,字段定義有不同之處的,在下述的各種打包格式的描述中另行說明。

還需要說明的是,由于基于AXI協(xié)議傳輸?shù)囊恢滦韵⒌南拇笮?length字段)均是相同的,因此,在將基于AXI協(xié)議的一致性消息打包為TLP包時可不將length字段打包在TLP包中,相應地,在接收該一致性消息對應的TLP包的PCI-E控制器側(cè),可以采用在還原后的基于AXI協(xié)議的一致性消息中填入length字段的默認值的方式還原該一致性消息。

舉例來說,當歸屬于CCSD1的第一PCI-E控制器接收到CCSD1中core1的發(fā)送的第一一致性消息時,若第一PCI-E控制器根據(jù)core1請求的數(shù)據(jù)m的地址1,確定該第一一致性消息需發(fā)送至CCSD2中的LLC2,則 依照表2打包該一致性消息,其中id字段和cpuno字段中均寫入core1的標號,且當該第一一致性消息是core1發(fā)起的多個未收到響應的消息中的一個時,id字段中還可寫入該第一一致性消息的編號。

又如,當CCSD1中的LLC1在另一個CCSD的core3的請求下,向CCSD2中的core2發(fā)送第一一致性消息時,則第一PCI-E控制器按照表2所示的打包格式將LLC1發(fā)送的第一一致性消息進行打包后,將core2的標號寫入id字段,但同時在cpuno字段中寫入core3的標號,用于告知core2該消息是在core3的請求下發(fā)出的。

另外,prot信號用于表示該第一一致性消息是用于請求讀取/寫入指令信息或是具體的數(shù)據(jù)信息,cache字段用于告知最后一級緩存該第一一致性消息是發(fā)往最后一級緩存還是繞過最后一級緩存發(fā)往內(nèi)存的,例如,數(shù)據(jù)m的地址1緩存在CCSD2中的LLC2中,同時地址1還緩存在計算機系統(tǒng)的內(nèi)存中,此時CCSD1的core1請求獲得內(nèi)存中的數(shù)據(jù)m,但第一PCI-E控制器根據(jù)地址1,是需要將第一一致性消息路由至CCSD2,但core1通過cache字段,可告知接收到該第一一致性消息的LLC2,是否將該第一一致性消息發(fā)送至內(nèi)存。

上述表2中1dw的2號字節(jié)中的7號比特位暫時不使用,故標記為空;而低addr字段和高addr字段用于寫入前述的地址1。

可選的,若第一一致性消息的消息類型為一級緩存寫回并無效命令響應操作、一級緩存寫回命令響應操作、一級緩存無效命令響應操作和二級緩存命令響應操作時,則第一PCI-E控制器確定該第一一致性消息使用的打包格式為打包格式2或打包格式3。打包格式3為打包格式2的一種擴展。采用打包格式2或打包格式3打包的第一打包信息在發(fā)送到第二PCI-E控制器進行解包時,可以進一步根據(jù)state字段確定該第一打包信息對應的打包格式。

具體的,當?shù)谝灰恢滦韵⒄埱髮懭氲臄?shù)據(jù)塊處于干凈狀態(tài)(即第一一致性消息請求寫入的數(shù)據(jù)塊沒有被發(fā)送該第一一致性消息的處理器核修改過)時,該第一一致性消息使用打包格式2如表3所示。

表3

在表3所示的打包格式2中,state字段的值指示該第一一致性消息請求寫入的數(shù)據(jù)塊處于干凈狀態(tài),例如,state字段的值為0。

當請求寫入的數(shù)據(jù)塊處于臟狀態(tài)(即第一一致性消息請求寫入的數(shù)據(jù)塊被發(fā)送該第一一致性消息的處理器核修改過)時,在表3所示的打包格式2的3dw后添加16個dw用來傳遞數(shù)據(jù)信息,例如可在下述表4中高date字段和低date字段寫入數(shù)據(jù)m的具體的賦值等,具體的,打包格式3如表4所示。

表4

在表4所示的打包格式3中,state字段的值用于表示該第一一致性消息請求寫入的數(shù)據(jù)塊處于臟狀態(tài),例如,state字段的值為1。

scseti字段用于指示第一一致性請求的數(shù)據(jù)的地址在LLC的組號??梢岳斫獾模我庖粋€最后一級緩存的內(nèi)部地址進行了分組,各組可存儲的數(shù)據(jù)的地址范圍不同,則處理器核在通過發(fā)送第一一致性消息以寫回數(shù)據(jù)m的賦值時,第一PCI-E控制器根據(jù)數(shù)據(jù)m的地址1,在scseti字段中寫入最后一級緩存的組號,以便接收到該第一一致性消息的最后一級緩存可根據(jù)該組號,快速的在該組號對應的組內(nèi)找到數(shù)據(jù)m的地址1,并更新數(shù)據(jù)m的賦值,不需在接收到該第一一致性消息的最后一級緩存中全地址范圍的查找地址1。

另外,dirqid字段用于指示LLC接收一致性消息的隊列號??梢岳斫獾?,在多個一致性消息并行處理場景,如一個CSSD的LLC需要和2個CSSD的core進行一致性消息的傳輸時,該LLC可以將與這兩個core交互的一致性消息分別安排在不同的隊列進行傳輸。例如,當CSSD2的LLC1接收到CSSD1的core1發(fā)送的一致性消息,如讀請求通道響應操作,用以請求數(shù)據(jù)m,此時CSSD2的LLC1發(fā)現(xiàn)需要根據(jù)CSSD3的core3確定該數(shù)據(jù)的當前值,則CSSD2的LLC1向CSSD3的core3發(fā)送消息類型為二級緩存寫回命令的一致性消息,其中,dirqid字段的值用于指示CSSD3的core3向CSSD2的LLC1返回一致性消息時,按照dirqid字段指示的隊列號返回一致性消息。

需要說明的是,消息類型為一級緩存寫回并無效命令響應操作、一級緩存寫回命令響應操作、一級緩存無效命令響應操作和二級緩存命令響應操作的一致性消息在AXI協(xié)議中未使用cmd信號,因此,在第二PCI-E控制器對包含這幾種一致性消息的第一打包消息進行解包時,將cmd字段清空,例如,將還原后的一致性消息中的cmd字段設置為全0。

可選的,若第一一致性消息的消息類型為二級緩存命令響應操作時,確定該第一一致性消息使用的打包格式為打包格式4,打包格式4如表5所示。

表5

需要說明的是,消息類型為二級緩存命令響應操作的一致性消息在AXI協(xié)議中未使用cmd信號,即基于AXI協(xié)議的二級緩存命令響應操作的一致性消息中的cmd字段為空,因此,在第二PCI-E控制器對包含這種一致性消息的第一打包消息進行解包時,需要將cmd字段清空。

可選的,若第一一致性消息的消息類型為二級緩存寫回并無效命令、二級緩存寫回命令和二級緩存無效命令時,確定該第一一致性消息使用的 打包格式為打包格式5,打包格式5如表6所示。

表6

打包格式為打包格式4的二級緩存命令響應操作的一致性消息用于響應打包格式為打包格式5的二級緩存寫回并無效命令、二級緩存寫回命令和二級緩存無效命令的一致性消息,與打包格式5相比,打包格式4的2dw至17dw字段可用于在響應打包格式為打包格式5的一致性消息時攜帶請求的數(shù)據(jù)的數(shù)值。

可選的,若第一一致性消息的消息類型為寫請求通道響應操作時,確定該第一一致性消息使用的打包格式是打包格式6,打包格式6如表7所示。

表7

需要說明的是,消息類型為寫請求通道響應操作的一致性消息在AXI協(xié)議中未使用cmd信號,因此,在第二PCI-E控制器對包含這種一致性消息的第一打包消息進行解包時,需要將cmd字段清空。

需要補充說明的是,上述打包消息的所有的字段均定義在TLP包的data payload部分。

還需要說明的是,表2至表7所示的各種打包方式可預先存儲于本發(fā)明實施例提供的各個總線接口控制器中。

S303、第一PCI-E控制器通過所述PCI-E接口內(nèi)所述第一打包消息的定義符號對應的虛通道中的至少兩個子虛通道中的一個空閑通道,將第一打包消息發(fā)送至所述第二PCI-E控制器。

其中,所述PCI-E接口可以包括4個虛通道,所述第一打包消息中的定 義符號對應所述4個虛通道中的一個虛通道,所述4個虛通道中的每個虛通道包括至少兩個子虛通道。所述兩個子虛通道上發(fā)送相同類型的一致性消息。定義符號cmd與需PCI-E接口的虛通道的對應關(guān)系可以如表1所示。

本實施例中將PCI-E接口虛擬為多個虛通道,避免了當?shù)谝籔CI-E控制器需要與至少兩個PCI-E控制進行一致性消息的通信時出現(xiàn)占用PCI-E接口導致的死鎖情形,即一個一致性消息占用一個虛通道時,其他的空閑虛通道可用于傳輸其他空閑通道。

進一步的,通過S301~S303,第一緩存一致性子域中的處理器通過第一PCI-E控制器將第一一致性消息發(fā)送至歸屬于第二緩存一致性子域的第二PCI-E控制器,并由該第二PCI-E控制器將第一一致性消息發(fā)送至第二緩存一致性子域中的最后一級緩存,則第二緩存一致性子域中的最后一級緩存會向第一緩存一致性子域中的處理器返回第二一致性消息,則繼續(xù)執(zhí)行下述S304~S307;或者通過S301~S303,第一緩存一致性子域中的最后一級緩存通過第一PCI-E控制器將第一一致性消息發(fā)送至歸屬于第二緩存一致性子域的第二PCI-E控制器,并由該第二PCI-E控制器將第一一致性消息發(fā)送至第二緩存一致性子域中的處理器,則第二緩存一致性子域中的處理器會向第一緩存一致性子域中的最后一級緩存返回第二一致性消息,則繼續(xù)執(zhí)行S304~S307,具體如下:

S304、第一PCI-E控制器接收第二打包消息。

此時上述第一PCI-E控制器會接收到由第二PCI-E控制器發(fā)來的第二打包消息,該第二打包消息是由第二PCI-E控制器將第二緩存一致性子域中的第二一致性消息進行打包處理后得到的。

S305、第一PCI-E控制器根據(jù)所述第二打包消息的定義符號和預設的打包相關(guān)信息,確定所述第二打包消息的打包格式。

其中,所述預設的打包相關(guān)信息可以如表1所示,所述打包相關(guān)信息包括定義符號與打包格式的對應關(guān)系。

S306、第一PCI-E控制器根據(jù)所述第二打包消息的打包格式,進行解包操作以獲得所述第二打包消息所包括的第二一致性消息。

例如第二打包消息的cmd信號為“1100”,則第一PCI-E控制器確定該第二打包消息的打包格式為如表2所示的打包格式1,則根據(jù)表2所示的打 包格式1進行解包,得到第二打包消息中的第二一致性消息。

S307、第一PCI-E控制器根據(jù)第二一致性消息的目的地址,將第二一致性消息發(fā)送給第一緩存一致性子域中的處理器核或最后一級緩存。

若第二一致性消息的目的地址指向第一緩存一致性子域中的處理器,則將第二一致性消息發(fā)送給該處理器;若第二一致性消息的目的地址指向第一緩存一致性子域中的最后一級緩存,則將第二一致性消息發(fā)送給該最后一級緩存。

上述S304~S307還可發(fā)生在S301之前,例如當?shù)诙彺嬉恢滦宰佑蛑械奶幚砥魍ㄟ^第二PCI-E控制器將第二一致性消息發(fā)送至歸屬于第一緩存一致性子域的第一PCI-E控制器,并由該第一PCI-E控制器將第二一致性消息發(fā)送至第一緩存一致性子域中的最后一級緩存,即此時第一PCI-E控制器執(zhí)行S305~S308;隨后第一緩存一致性子域中的最后一級緩存會向第二緩存一致性子域中的處理器返回第一一致性消息,即執(zhí)行S301~S304;或者在執(zhí)行S301之前,當?shù)诙彺嬉恢滦宰佑蛑械淖詈笠患壘彺嫱ㄟ^第二PCI-E控制器將第二一致性消息發(fā)送至歸屬于第一緩存一致性子域的第一PCI-E控制器,并由該第一PCI-E控制器將第二一致性消息發(fā)送至第一緩存一致性子域中的處理器,則第一PCI-E控制器執(zhí)行S304~S307;隨后第一緩存一致性子域中的處理器會向第二緩存一致性子域中的最后一級緩存返回第一一致性消息,此時上述第一PCI-E控制器執(zhí)行S301~S303;圖2中以先執(zhí)行S301~S303,隨后執(zhí)行S304~S307,但在實際中,可以先執(zhí)行S304~S307,隨后執(zhí)行S301~S303,或者,一些收到的一致性消息不需要再次應答時,根據(jù)實際情況,可以僅執(zhí)行S301~S303,或僅執(zhí)行S304~S307。

可選的,若第一PCI-E控制器收到的第二打包消息中的第二一致性消息請求訪問的地址不屬于本子域的管轄的緩存地址范圍,而是屬于另一PCI-E控制器所屬的緩存一致性子域管轄的緩存地址范圍,即第一PCI-E控制器相當于是中轉(zhuǎn)PCI-E控制器,則第一PCI-E控制器也可以將該第二打包消息通過PCI-E接口發(fā)送給所述第二一致性消息請求訪問的地址所屬的緩存一致性子域的PCI-E控制器。

圖4為本發(fā)明一致性消息的傳輸方法實施例三的信令圖。如圖4所示:

S401、core1向控制器1發(fā)送ar_request_read請求。

上述控制器1即為歸屬于core1所在的CCSD1的PCI-E控制器,為敘述方便,稱為控制器1,基于相同理由,下述控制器2為歸屬于LLC2所在的CCSD2的PCI-E控制器,控制器3即為歸屬于CCSD3的PCI-E控制器;當core1需要數(shù)據(jù)m,但core1的一級緩存中無數(shù)據(jù)m時,則需要向其他CCSD中的最后一級緩存中請求讀取數(shù)據(jù)m。

S402、控制器1獲取打包消息1。

以控制器1的角度來看,控制器1即為第一PCI-E控制器,則ar_request_read請求即為第一一致性消息,從而打包消息1即為第一打包消息;具體的,core1在該ar_request_read請求中通過使用ar通道的cmd字段,在該ar通道的cmd字段中寫入0xc,以告知控制器1該ar_request_read請求的類型為一級緩存讀失效,并在ar通道的cpuno字段中寫入core1的標號,還在請求中寫入了數(shù)據(jù)m的地址1,則控制器1按照表2,將ar_request_read請求處理為打包消息1,并在打包消息1中將cmd字段寫為1100。

S403、控制器1向控制器2發(fā)送打包消息1。

如前所述,控制器1根據(jù)地址1,可獲知緩存了數(shù)據(jù)m的最后一級緩存具體為LLC2,即前述目的地址即為地址1,從而將打包消息1發(fā)送至歸屬于LLC2所在的CCSD2的控制器2,以控制器1的角度,控制器2則為歸屬于第二緩存一致性子域(即CCSD2)的第二PCI-E控制器。

S404、控制器2將打包消息1解包以獲得ar_request_read請求。

S405、控制器2將ar_request_read請求發(fā)送至LLC2。

由于打包消息1中有cmd字段,則控制器2可根據(jù)cmd字段選擇對應的解包方法,從而獲得正確的ar_request_read請求,此時以控制器2的角度來說,該控制器2為第一PCI-E控制器,而打包消息1則為第二打包消息,從而ar_request_read請求為第二一致性消息。

S406、LLC2向控制器2發(fā)送r_writeback請求。

LLC2查找到地址1,但其被位于CCSD3中的core3獨占,則LLC2需向core3發(fā)送r_writeback請求,以使core3寫回數(shù)據(jù)m,但LLC2需先向控制器2發(fā)送r_writeback請求,該請求中的目的地址即為core3的標號,且在請求中通過ar通道的cmd字段告知控制器2該請求的類型為二級緩存寫回命令。

S407、控制器2將r_writeback請求處理為打包消息2。

此時以控制器2的角度來看,r_writeback請求則為第一一致性消息,控制器2根據(jù)ar通道的cmd確定了請求的類型,從而在打包消息2中的cmd字段寫入0010。

S408、控制器2將打包消息2發(fā)送至控制器3。

控制器2根據(jù)r_writeback請求中的目的地址,將打包消息2發(fā)送給控制器3,以控制器2的角度,控制器3即為歸屬于第二緩存一致性子域(此時為CCSD3)的第二PCI-E控制器,即目的PCI-E控制器。

S409、控制器3將打包消息2解包以獲得r_writeback請求。

S410并將r_writeback請求發(fā)送至core3。

S411、core3向控制器3發(fā)送r_response消息。

與前述過程類似,core3通過ar通道的cmd字段向控制器3告知r_response消息的消息類型,同時由于core3修改了數(shù)據(jù)m的賦值,同時在r_response消息中注明數(shù)據(jù)m此時為處于臟狀態(tài)的臟數(shù)據(jù),數(shù)據(jù)m的地址1及數(shù)據(jù)m修改后的賦值。

S412、控制器3將r_response消息處理為打包消息3。

S413、控制器3將打包消息3發(fā)送至控制器2。

控制器3根據(jù)S408中core3寫入的ar通道的cmd字段,選擇表4的打包方式將r_response消息處理為打包消息3,且將數(shù)據(jù)m修改后的賦值寫在高data和低data字段中,并將cmd字段寫為0000,并根據(jù)地址1確定將打包消息3發(fā)送至控制器2。

S414、控制器2將打包消息3解包以獲得r_response消息。

S415、控制器2將r_response消息發(fā)送給LLC2。

S416、LLC2向控制器2發(fā)送b_response消息。

LLC2根據(jù)r_response消息中數(shù)據(jù)m修改后的賦值,更新LLC2中數(shù)據(jù)m的賦值,最后通過b_response消息響應core1的ar_request_read請求,該b_response消息中的ar通道的cmd字段用于告知控制器2該消息的類型,且在b_response消息中寫入的目的地址為core1的標號,還有數(shù)據(jù)m修改后的賦值。

S417、控制器2將b_response消息處理為打包消息4。

S418、控制器2將打包消息4發(fā)送至控制器1。

處理器2根據(jù)表7將b_response消息處理為打包消息4,由于b_response消息中目的地址為core1的標號,則將core1的標號寫入表7中的id字段,且控制器2將打包消息4發(fā)送至歸屬于CCSD1的控制器1。

S419、控制器1解包打包消息4以獲得b_response消息。

S420、控制器1向core1發(fā)送b_response消息。

此時core1通過接收b_response消息,可獲得數(shù)據(jù)m修改后的賦值,并將該修改后的賦值緩存至core1的一級緩存中。

上述S401~S420僅為一種維護緩存一致性的應用,由于一致性消息的類型較多,且維護緩存一致性的應用場景多變,則在實際應用中可作出相應的調(diào)整;通過上述S401~S420,計算機系統(tǒng)中各個處理器核及跨子域間的最后一級緩存的緩存一致性得以維護,例如前述core3中一級緩存中數(shù)據(jù)m的賦值、CCSD2中的LLC2中數(shù)據(jù)m的賦值和core1的一級緩存中數(shù)據(jù)m的賦值,通過前述S401~S420,得到了一致性的維護,即保持數(shù)據(jù)m的賦值一致,避免出現(xiàn)運算錯誤等影響計算機系統(tǒng)運行的情況。

圖5為本發(fā)明提供的一種總線接口控制器實施例一的結(jié)構(gòu)示意圖。

如圖5所示,本實施例提供的總線接口控制器100可以包括:

第一接收模塊11,可以用于接收第一緩存一致性子域中的第一一致性消息;所述總線接口控制器歸屬于所述第一緩存一致性子域;所述第一一致性消息攜帶消息類型和目的地址。

處理模塊12,可以用于根據(jù)所述第一一致性消息的消息類型的預設的打包相關(guān)信息確定所打包格式,并根據(jù)所述打包格式,對所述第一一致性消息進行打包以獲得第一打包消息,所述打包相關(guān)信息包括一致性消息的消息類型和打包格式的對應關(guān)系。

第一發(fā)送模塊13,可以用于根據(jù)所述第一一致性消息的目的地址,將所述第一打包消息通過所述總線接口控制器的總線接口發(fā)送至歸屬于第二緩存一致性子域的第二總線接口控制器。

其中,所述第一緩存一致性子域中包括處理器核與最后一級緩存,所述第一緩存一致性子域中的所述第一一致性消息是由該所述第一緩存一致性子域中的處理器核或最后一級緩存發(fā)送的。

可選的,總線接口控制器100和歸屬于第二緩存一致性子域的總線接口 控制器可以為PCI-E控制器,所述總線接口可以為PCI-E接口。

可選的,處理模塊12,可以具體用于根據(jù)所述第一一致性消息的消息類型,確定對應的事務層數(shù)據(jù)包TLP包的打包格式。

進一步地,第一發(fā)送模塊11,可以具體用于通過所述總線接口控制器100的PCI-E接口內(nèi)所述第一打包消息的定義符號對應的虛通道中的至少兩個子虛通道中的任意一個空閑的子虛通道,將所述第一打包消息發(fā)送至歸屬于地二緩存一致性子域的PCI-E控制器;所述PCI-E接口包括4個虛通道;所述第一打包消息中的定義符號對應所述4個虛通道中的一個虛通道;所述4個虛通道中的每個虛通道包括至少兩個子虛通道。

本實施例提供的總線接口控制器的技術(shù)方案細節(jié)及技術(shù)效果與圖1至圖4所示實施例相同,此處不再贅述。

圖6為本發(fā)明提供的一種總線接口控制器實施例二的結(jié)構(gòu)示意圖。

在圖5所示的總線接口控制器100的基礎上,如圖6所示,本實施例的總線接口控制器100還可以包括第二接收模塊14和第二發(fā)送模塊15。

第二接收模塊14,用于接收第二打包消息。

處理模塊12,還可以用于根據(jù)所述第二打包消息的定義符號和預設的打包相關(guān)信息,確定所述第二打包消息的打包格式,并根據(jù)所述第二打包消息的打包格式,進行解包操作以獲得所述第二打包消息所包括的第二一致性消息,所述打包相關(guān)信息包括定義符號與打包格式的對應關(guān)系。

第二發(fā)送模塊15,可以用于根據(jù)所述第二一致性消息的目的地址,將所述第二一致性消息發(fā)送給第一緩存一致性子域中的處理器或最后一級緩存。

本實施例提供的總線接口控制器的技術(shù)方案細節(jié)及技術(shù)效果與圖1至圖4所示實施例相同,此處不再贅述。

圖7為本發(fā)明提供的一種芯片的結(jié)構(gòu)示意圖。

如圖7所示,本實施例提供的芯片200可以包括:快速傳輸HT控制器120、如圖5至圖6所示的任一種總線接口控制器100、至少一個HT接口130和至少一個總線接口110。

舉例來說,該總線接口控制器100可以為PCI-E控制器,該總線接口110可以為PCI-E接口。

需要說明的是,本發(fā)明實施例的芯片可以為圖1所示的橋片,即互連芯 片。

可選的,當一個服務器與多個服務器進行刀片間互連時,芯片200可以具有多個PCI-E接口,例如4個,可參考圖1。

本實施例提供的芯片的技術(shù)方案細節(jié)及技術(shù)效果與圖1至圖4所示實施例相同,此處不再贅述。

本發(fā)明還提供一種一致性消息的傳輸系統(tǒng),該系統(tǒng)可以包括:歸屬于第一緩存一致性子域的第一總線接口控制器、至少一個處理器核、至少一個最后一級緩存、至少一個總線接口和歸屬于第二緩存一致性子域的第二總線接口控制器、至少一個處理器核、至少一個最后一級緩存,所述歸屬于第一緩存一致性子域的總線接口中的至少一個總線接口與所述歸屬于第二緩存一致性子域的總線接口中的至少一個總線接口相連。

例如,對于圖4所示的一致性消息的發(fā)送過程,圖4中的控制器1和core1可以歸屬于第一緩存一致性子域,圖4中的控制器2和core3可以歸屬于第二緩存一致性子域,控制器1可以為第一總線接口控制器,控制器2可以為第二總線接口控制器。

第一總線接口控制器可以用于接收所述第一緩存一致性子域中的處理器核或者最后一級緩存發(fā)送的第一一致性消息,第一一致性消息攜帶消息類型和目的地址并可以根據(jù)第一一致性消息的消息類型和預設的打包相關(guān)信息確定打包格式,并按照所述打包格式對第一一致性消息進行打包以獲得第一打包消息,所述打包相關(guān)信息包括一致性消息的消息類型和打包格式的對應關(guān)系;以及可以根據(jù)第一一致性消息的目的地址,將第一打包消息通過歸屬于第一緩存一致性子域的總線接口發(fā)送至歸屬于第二緩存一致性子域的第二總線接口控制器。

第二總線接口控制器可以用于接收第一打包消息;根據(jù)所述第一打包消息的定義符號和預設的打包相關(guān)信息,確定所述第二打包消息的打包格式,并根據(jù)所述第一打包消息的打包格式,進行解包操作以獲得所述第一打包消息所包括的所述第一一致性消息,所述打包相關(guān)信息包括定義符號與打包格式的對應關(guān)系;再可以用于根據(jù)第一一致性消息的目的地址,將第一一致性消息發(fā)送給第二緩存一致性子域中的處理器或最后一級緩存。

需要說明的是,本實施例的第一總線接口控制器和第二接口控制器均可 以采用圖5至圖6任一種所示的總線接口控制器的結(jié)構(gòu),且第一總線接接口控制器和第二總線接口控制器均可以位于如圖2所示的服務器的橋片上。

可選的,第一總線接口控制器接收的第一一致性消息由第一緩存一致性子域中的處理器核發(fā)送,第二總線接口控制器將第一打包消息所包括的第一一致性消息發(fā)送給第二緩存一致性子域的最后一級緩存。

或者,可選的,第一總線接口控制器接收的第一一致性消息由所述第一緩存一致性子域中的最后一級緩存發(fā)送,第二總線接口控制器將第一打包消息所包括的第一一致性消息發(fā)送給第二緩存一致性子域的處理器核。

本領(lǐng)域普通技術(shù)人員可以理解:實現(xiàn)上述方法實施例的全部或部分步驟可以通過程序指令相關(guān)的硬件來完成,前述的程序可以存儲于一計算機可讀取存儲介質(zhì)中,該程序在執(zhí)行時,執(zhí)行包括上述方法實施例的步驟;而前述的存儲介質(zhì)包括:ROM、RAM、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。

最后應說明的是:以上各實施例僅用以說明本發(fā)明的技術(shù)方案,而非對其限制;盡管參照前述各實施例對本發(fā)明進行了詳細的說明,本領(lǐng)域的普通技術(shù)人員應當理解:其依然可以對前述各實施例所記載的技術(shù)方案進行修改,或者對其中部分或者全部技術(shù)特征進行等同替換;而這些修改或者替換,并不使相應技術(shù)方案的本質(zhì)脫離本發(fā)明各實施例技術(shù)方案的范圍。

當前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
宁远县| 斗六市| 宝丰县| 安多县| 镇坪县| 思茅市| 陈巴尔虎旗| 虞城县| 常宁市| 临城县| 宁武县| 固镇县| 繁昌县| 永宁县| 互助| 镇原县| 都安| 吉木乃县| 漯河市| 克什克腾旗| 南川市| 夏河县| 永仁县| 淮北市| 沈阳市| 鹤峰县| 鹿泉市| 剑川县| 万全县| 崇明县| 丹江口市| 鄱阳县| 永宁县| 靖边县| 迁安市| 灵宝市| 横峰县| 嵊泗县| 宁阳县| 栖霞市| 汶上县|