專利名稱:一種非透明傳輸?shù)膶?shí)現(xiàn)方法、非透明橋和通信系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及通信技術(shù)領(lǐng)域,具體涉及一種非透明傳輸?shù)膶?shí)現(xiàn)方法、非透明 橋和通信系統(tǒng)。
背景技術(shù):
PCIE (PCI-Express)是外設(shè)部件外連標(biāo)準(zhǔn)(PCI, Peripheral Component Interconnect)的更高發(fā)展,是最新的總線和接口標(biāo)準(zhǔn)。
PCIE的基本結(jié)構(gòu)包括根聯(lián)合體(Root Complex )、交換器(Switch)和各 種終端設(shè)備(Endpoint)。其中,根聯(lián)合體可以集成在北橋芯片(也稱為主橋 Host Bridge)中,用于處理器與內(nèi)存、輸入輸出(I/O, Input/Output)設(shè)備等 之間的連接;交換器用來為I/O總線提供輸出端,支持在不同終端設(shè)備間進(jìn)行 對(duì)等通信,交換器包括兩個(gè)或更多的邏輯PCIE到PCIE的連接橋(PCIE-PCIE Bridge,簡(jiǎn)稱P2P),以保持與現(xiàn)有PCI兼容;終端設(shè)備是PCIE事務(wù)的請(qǐng)求者或 完成者,可以是外圍設(shè)備,如以太網(wǎng)、USB或圖形設(shè)備等等。
系統(tǒng)在開機(jī)上電或復(fù)位時(shí),處理器需要執(zhí)行枚舉和配置軟件以獲悉存在的 設(shè)備,為了支持枚舉和配置軟件,PCI定義了這些設(shè)備的配置空間寄存器(CSR, Configuration Space Register),其中,類型0CRS頭(簡(jiǎn)稱類型O頭)用于連接 根聯(lián)合體和終端設(shè)備,類型l CRS頭(即P2P的CSR頭,簡(jiǎn)稱類型l頭)用于PCIE 之間的連接,使用類型1頭的橋稱為透明橋(即透明P2P橋,簡(jiǎn)稱TB, Transparent Bridge),使用透明橋時(shí),處理器可以定義橋另一側(cè)設(shè)備的CSR地址,即透明 橋一側(cè)的處理器可以對(duì)其另 一側(cè)的設(shè)備進(jìn)行配置和控制。
若系統(tǒng)中存在多個(gè)處理器,則主處理器和備處理器在開機(jī)加電或復(fù)位時(shí)都 會(huì)嘗試枚舉整個(gè)系統(tǒng),這必然會(huì)引起系統(tǒng)竟?fàn)?,并最終導(dǎo)致系統(tǒng)無法正常工作,
為了避開該問題的發(fā)生,非透明橋應(yīng)運(yùn)而生。
現(xiàn)有的非透明橋(即非透明P2P橋,簡(jiǎn)稱NTB, Non Transparent Bridge ) 的兩側(cè)都呈現(xiàn)類型0頭,由于它呈現(xiàn)類型0頭,因此對(duì)于枚舉和配置軟件,橋以 端點(diǎn)形式出現(xiàn),也就說,非透明橋用于隔離不同的處理器域,每一個(gè)處理器只 能訪問到非透明橋一側(cè)的終端設(shè)備為止,從而消除了可能的多處理器枚舉和配置軟件竟?fàn)幍膯栴}??蓞⒁妶Dl,以主從雙控的對(duì)稱系統(tǒng)為例,在主從雙控的 對(duì)稱系統(tǒng)中,主控側(cè)和從側(cè)的結(jié)構(gòu)對(duì)稱,即兩邊的處理器(主處理器或從屬處 理器)分別與各自對(duì)應(yīng)的根聯(lián)合體連接,根聯(lián)合體再通過透明橋與終端設(shè)備連 接,然后再利用非透明橋?qū)蓚?cè)連接起來,其中,非透明橋之間的連接采用的
是終端設(shè)備對(duì)終端設(shè)備(Endpoint-Endpoint)的連4妄方式,該連接方式不為現(xiàn) 有PCIE協(xié)議所支持,在鏈路建立與配置過程中,兩側(cè)需要通過協(xié)商來決定主 從,主控側(cè)先對(duì)自身進(jìn)行相應(yīng)的配置,然后由主控側(cè)通過PCIEl連^各向乂人側(cè)發(fā) 起請(qǐng)求,在從側(cè)響應(yīng)請(qǐng)求后,在兩側(cè)之間建立鏈路。
在對(duì)現(xiàn)有技術(shù)的研究和實(shí)踐過程中,本發(fā)明的發(fā)明人發(fā)現(xiàn),由于兩側(cè)需要 通過協(xié)商來決定主從并分別對(duì)自身進(jìn)行配置,因此在鏈路的建立與配置過程中 的資源占用和邏輯開銷都較大。
發(fā)明內(nèi)容
本發(fā)明實(shí)施例提供一種非透明傳輸?shù)膶?shí)現(xiàn)方法、非透明橋和通信系統(tǒng),可 以減少在鏈路的建立與配置過程中的資源占用和邏輯開銷。 一種非透明傳輸?shù)膶?shí)現(xiàn)方法,包括
第一非透明橋在自身的根模塊(root)與第二非透明橋的終端設(shè)備接口之 間建立第一鏈路;其中,終端設(shè)備接口用于連接終端設(shè)備; 第一非透明橋?qū)Φ谝绘溌愤M(jìn)行配置;
第一非透明橋通過配置后的第一鏈路與第二非透明橋進(jìn)行數(shù)據(jù)傳輸。 一種非透明橋,包括
第一建立單元,用于在自身的根模塊與第二非透明橋的終端設(shè)備接口之間 建立第一鏈路;其中,終端設(shè)備接口用于連接終端設(shè)備;
第 一配置單元,用于對(duì)第 一建立單元建立的第 一鏈路進(jìn)行配置;
第 一傳輸單元,用于通過第 一配置單元配置后的第 一鏈路與第二非透明橋
進(jìn)行數(shù)據(jù)傳輸。
一種通信系統(tǒng),包括第一非透明橋和第二非透明橋;
第一非透明橋,用于在自身的根模塊與第二非透明橋的終端設(shè)備接口之間 建立第一鏈路,對(duì)第一鏈路進(jìn)行配置,通過配置后的第一鏈路與第二非透明橋 進(jìn)行數(shù)據(jù)傳輸;其中,終端設(shè)備接口用于連接終端設(shè)備;第二非透明橋,用于通過第 一鏈路與第 一非透明橋進(jìn)行數(shù)據(jù)傳輸。 本發(fā)明實(shí)施例采用在非透明橋之間建立以"根模塊-終端設(shè)備"
(Root-Endpoint)的連接方式進(jìn)行連接的鏈路,然后利用該鏈路實(shí)現(xiàn)非透明橋 之間的數(shù)據(jù)傳輸,由于非透明橋之間采用的是"根模塊-終端設(shè)備"的連接方 式,因此在鏈路建立與配置過程中,兩側(cè)不需要通過協(xié)商來決定主從以及分別 對(duì)自身進(jìn)行配置,可以減少在鏈路的建立與配置過程中的資源占用和邏輯開 銷;而且,該連接方式可以得到現(xiàn)有的PCIE協(xié)議的支持,易于用戶的理解和 實(shí)現(xiàn)。
為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施 例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見地,下面描述 中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來講,在不付 出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖l是現(xiàn)有技術(shù)中主從雙控的對(duì)稱系統(tǒng)的示意圖2是本發(fā)明實(shí)施例一所提供的非透明傳輸?shù)膶?shí)現(xiàn)方法的方法流程圖3是本發(fā)明實(shí)施例二所提供的主從雙控的系統(tǒng)(單鏈路)的示意圖4是本發(fā)明實(shí)施例三所提供的主從雙控的系統(tǒng)(雙鏈路)的示意圖5是本發(fā)明實(shí)施例所提供的非透明橋的結(jié)構(gòu)示意圖6是本發(fā)明實(shí)施例所提供的通信系統(tǒng)的結(jié)構(gòu)示意圖。
具體實(shí)施例方式
下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清 楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是 全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造 性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
本發(fā)明實(shí)施例提供一種非透明傳輸?shù)膶?shí)現(xiàn)方法、非透明橋和通信系統(tǒng)。以 下分別進(jìn)4亍詳細(xì)i兌明。
實(shí)施例一、
一種非透明傳輸?shù)膶?shí)現(xiàn)方法,首先,在非透明橋之間建立以"根模塊-終端設(shè)備"的連接方式進(jìn)行連接的鏈路,然后利用該鏈路實(shí)現(xiàn)非透明橋之間的數(shù)
據(jù)傳輸,如圖2所示,具體流程可以如下
101、 第一非透明橋在自身的根模塊與第二非透明橋的終端設(shè)備接口之間 建立第一鏈路;其中,終端設(shè)備接口用于連接終端設(shè)備;
由于第一非透明橋和第二非透明橋之間是采用"4M^塊-終端設(shè)備"的連 接方式,因此它們之間的鏈^備可以根據(jù)現(xiàn)有的PCIE協(xié)議進(jìn)行建立,在對(duì)鏈路 進(jìn)行初始化時(shí),第一非透明橋所在的一側(cè)和第二非透明橋所在的一側(cè)不需要通 過協(xié)商來決定主從,即無需通過協(xié)商來決定是第一非透明橋所在的一側(cè)作為主 控側(cè),第二非透明橋所在的一側(cè)作為從側(cè),還是第一非透明橋所在的一側(cè)作為 從側(cè),第二非透明橋所在的一側(cè)作為主控側(cè),而且,兩側(cè)也不需要分別對(duì)自身 進(jìn)行配置后,才向?qū)Ψ桨l(fā)送關(guān)于建立鏈路的請(qǐng)求,而是由根模塊所在的非透明 橋直接發(fā)送關(guān)于建立鏈路的請(qǐng)求給另一條非透明橋的終端設(shè)備接口;例如,可
第一非透明橋通過自身的根模塊發(fā)送請(qǐng)求給第二非透明橋的終端設(shè)備接 口,第二非透明橋接收到該請(qǐng)求后,根據(jù)所述請(qǐng)求生成成功響應(yīng),并通過自身 的終端設(shè)備接口返回該響應(yīng)給第一非透明橋的根模塊,第一非透明橋接收到該 成功響應(yīng)后,即可在兩側(cè)之間建立第一鏈路。
102、 第一非透明橋?qū)Φ谝绘溌愤M(jìn)行配置,例如,可以依據(jù)現(xiàn)有的PCIE協(xié) 議對(duì)第 一鏈路進(jìn)行配置;
103、 第一非透明橋通過配置后的第一鏈路與第二非透明橋進(jìn)行數(shù)據(jù)傳輸。 除了以上所描述的在非透明橋之間建立單條鏈路,即建立第一鏈路之外,
也可以在非透明橋之間建立多條鏈路,例如雙鏈路,這樣,當(dāng)其中的一條鏈路 因某些原因無法建立或在數(shù)據(jù)傳輸期間斷開時(shí),另外一條鏈路還可以繼續(xù)完成 各種相關(guān)的操作。假設(shè)該"另外一條鏈路',命名為第二鏈路,那么,可以如下 第 一非透明橋在自身的終端設(shè)備接口和第二非透明橋的根模塊之間建立 第二鏈路,其中,該第二鏈路的建立可以由第二非透明橋發(fā)起,并由第二非透
明橋進(jìn)行配置;在第二鏈路建立完成并由第二非透明橋進(jìn)行配置后,第一非透 明橋就可以通過該第二鏈路進(jìn)行數(shù)據(jù)傳輸。也就是說,此時(shí)第一非透明橋和第 二非透明橋之間具有兩條鏈路,即第一鏈路和第二鏈路,系統(tǒng)可以通過這兩條鏈路進(jìn)行非透明數(shù)據(jù)的傳輸,若在數(shù)據(jù)傳輸過程中,其中一條鏈路發(fā)生故障, 則另外一條鏈路還可以繼續(xù)完成各種相關(guān)的操作,以保證系統(tǒng)的正常運(yùn)行。
當(dāng)然,與建立第一鏈路時(shí)類似,可以根據(jù)現(xiàn)有的PCIE協(xié)議在第一非透明
橋在自身的終端設(shè)備接口和第二非透明橋的根模塊之間建立第二鏈路,在進(jìn)行 鏈路的初始化操作時(shí),第一非透明橋所在的一側(cè)和第二非透明橋所在的一側(cè)不 需要通過協(xié)商來決定主從,也不需要分別對(duì)自身進(jìn)行配置后,才向?qū)Ψ桨l(fā)送關(guān) 于建立鏈路的請(qǐng)求,而是由根模塊所在的非透明橋直接發(fā)送關(guān)于建立鏈路的請(qǐng)
求給另一條非透明橋的終端設(shè)備接口;例如,可以如下
第二非透明橋通過自身的根模塊發(fā)送請(qǐng)求給第 一非透明橋的終端設(shè)備接 口,第一非透明橋通過自身的終端設(shè)備接口接收到該請(qǐng)求后,根據(jù)所述請(qǐng)求生 成成功響應(yīng),并通過自身的終端設(shè)備接口返回該成功響應(yīng)給第二非透明橋的根 模塊,隨后即可在兩側(cè)之間建立第二鏈路。
需說明的是,本發(fā)明實(shí)施例所說的鏈路均指的是PC正鏈路,根據(jù)本發(fā)明 實(shí)施例所提供的方案所建立起來的非透明橋間的鏈路與現(xiàn)有的非透明橋之間 的鏈路是一致的,因此在鏈路建立以后,非透明橋之間的數(shù)據(jù)傳輸仍然可以依 照現(xiàn)有的PCIE協(xié)議來進(jìn)行;另外,除了上面所描述的在第一非透明橋和第二 非透明橋之間建立單鏈路(即第一鏈路)或雙鏈路(即第一鏈路和第二鏈路) 之外,還可以建立多于兩條的鏈路,其實(shí)現(xiàn)方法與前面的描述類似,在此不再贅述。
由上可知,本發(fā)明實(shí)施例采用在非透明橋之間建立以"根模塊-終端設(shè)備,' 的連接方式進(jìn)行連接的鏈路,然后利用該鏈路實(shí)現(xiàn)非透明橋之間的數(shù)據(jù)傳輸, 由于非透明橋之間采用的是"根模塊-終端設(shè)備"的連接方式,因此在鏈路建 立與配置過程中,兩側(cè)不需要通過協(xié)商來決定主從以及分別對(duì)自身進(jìn)行配置, 可以減少在鏈路的建立與配置過程中的資源占用和邏輯開銷;而且,與現(xiàn)有技 術(shù)相比,該連接方式可以得到現(xiàn)有的PCIE協(xié)議的支持,易于用戶的理解和實(shí) 現(xiàn)。
實(shí)施例二、
根據(jù)實(shí)施例所描述的方法,下面將舉例作進(jìn)一步詳細(xì)說明。為了描述方便, 在本發(fā)明實(shí)施例中,將以主從雙控系統(tǒng)為例進(jìn)行說明,并且,假設(shè)主控側(cè)的非透明橋?yàn)榈谝环峭该鳂?,從?cè)的非透明橋?yàn)榈诙峭该鳂颉?br>
根據(jù)PCIE協(xié)議,鏈路的配置只能由根模塊或北橋發(fā)起,不支持從下行到
上行的請(qǐng)求,而且,終端設(shè)備只響應(yīng)請(qǐng)求地址在地址空間定義中的CRS頭類型 為類型0頭的模塊所發(fā)送的請(qǐng)求,所以,根模塊如果發(fā)現(xiàn)其下游設(shè)備為終端設(shè) 備,則以類型O頭向下游發(fā)送請(qǐng)求。
根據(jù)上面所說的PCIE協(xié)議的這些規(guī)則,為了使得第一非透明橋和第二非 透明橋之間的連接方式可以得到現(xiàn)有的PCIE協(xié)議的支持,需要對(duì)現(xiàn)有的主從 雙控系統(tǒng)進(jìn)行改造,當(dāng)然,也可以對(duì)整個(gè)系統(tǒng)重新進(jìn)行定義。
如圖3所示,在本發(fā)明實(shí)施例中,主從雙控系統(tǒng)兩側(cè)的處理器,即主處理 器和從屬處理器分別與各自對(duì)應(yīng)的根聯(lián)合體連接,然后兩側(cè)各自的根聯(lián)合體均 連接在非透明橋(即第一非透明橋和第二非透明橋)的終端設(shè)備接口側(cè),由于 兩側(cè)的非透明橋均表現(xiàn)為以終端設(shè)備接口通過一條鏈路連接根聯(lián)合體,因此在 系統(tǒng)枚舉與設(shè)備配置時(shí),兩側(cè)的非透明橋均會(huì)被各自的根聯(lián)合體認(rèn)為是終端設(shè) 備(或者稱為端點(diǎn)設(shè)備),致使接收到的關(guān)于枚舉的消息與請(qǐng)求不會(huì)被透?jìng)鳎?從而可以實(shí)現(xiàn)不同處理器域間的隔離;而在不同處理器域之間,即第一非透明 橋和第二非透明橋之間則采用"根模塊-終端設(shè)備"的連接方式,即第一非透 明橋的根模塊與第二非透明橋的終端設(shè)備接口側(cè)連接,同時(shí),第二非透明橋的 根模塊與第一非透明橋的終端設(shè)備接口側(cè)連接;其中,第一非透明橋的根模塊 和第二非透明橋的終端設(shè)備之間,以及第二非透明橋的4M莫塊和第一非透明橋 的終端設(shè)備之間的鏈路建立、鏈路配置與數(shù)據(jù)的傳輸均可直接的按照現(xiàn)有的 PCIE協(xié)議的規(guī)定來實(shí)現(xiàn)。另外,在該方案中,非透明橋(即第一非透明橋和 第二非透明橋)中還具有邏輯模塊,該邏輯模塊主要與非透明橋中的終端設(shè)備 接口連接,或者與非透明橋中的終端設(shè)備接口和根模塊連接,主要用來實(shí)現(xiàn)地 址翻譯、ID路由、Interrupt等操作,以及實(shí)現(xiàn)主從雙控系統(tǒng)中的數(shù)據(jù)傳輸。
需說明的是,非透明橋允許兩個(gè)根聯(lián)合體或PCIE樹通過一個(gè)或多個(gè)共享 地址窗口進(jìn)行互聯(lián),為了便于處理器域之間的相互通信,非透明橋通常也可以 包括用來從橋的一側(cè)向另 一側(cè)發(fā)送中斷的門鈴寄存器(Doorbell Register),以 及兩側(cè)都能訪問的暫存寄存器(ScratchpadRegister)。可參見圖3,第一非透明 橋中和第二非透明橋之中均可以包括有門鈴寄存器和暫存寄存器。下面將根據(jù)圖3所提供的主從雙控系統(tǒng)的示意圖對(duì)本發(fā)明實(shí)施例作簡(jiǎn)略說明。
首先,通過第一非透明橋內(nèi)部對(duì)根模塊的設(shè)置,可使根模塊發(fā)現(xiàn)第二非透 明橋的終端設(shè)備接口,即發(fā)現(xiàn)對(duì)側(cè)(或者說下游)設(shè)備為終端設(shè)備,于是第一 非透明橋的根模塊直接以類型O頭向第二非透明橋的終端設(shè)備接口發(fā)送關(guān)于建 立鏈路的請(qǐng)求,第二非透明橋接收到該請(qǐng)求后,根據(jù)該請(qǐng)求生成成功響應(yīng),并 通過自身的終端設(shè)備接口返回該成功響應(yīng)給第一非透明橋的根模塊,第一非透
明橋接收到該成功響應(yīng)后,即可依PCIE的協(xié)議的相關(guān)規(guī)則在兩側(cè)之間建立鏈 路,即第一非透明橋的根模塊與第二非透明橋的終端設(shè)備接口之間建立第一鏈 路。
在第一鏈路建立以后,第一非透明橋需要對(duì)第一鏈路進(jìn)行配置,比如,可 以依據(jù)現(xiàn)有的PCIE協(xié)議對(duì)第 一鏈^各進(jìn)行配置,然后就可以通過該第 一鏈路實(shí) 現(xiàn)第一非透明橋與第二非透明橋之間的數(shù)據(jù)的雙向傳輸,即非透明傳輸。具體 的傳輸信令與現(xiàn)有的PCIE協(xié)議的相關(guān)規(guī)則相同,在此不再贅述。
需說明的是,在本實(shí)施例中,主要是從第一非透明橋包括根模塊的角度進(jìn) 行描述的,應(yīng)當(dāng)理解的是,也可以讓第二非透明橋包括根模塊,然后建立該根 模塊與第一非透明橋的終端設(shè)備接口側(cè)之間的鏈路,實(shí)現(xiàn)方式與前面類似,在
此不再贅述;另外,還需說明的是,本發(fā)明實(shí)施例所提供的方案除了適合主從 雙控系統(tǒng)之外,也同樣適用于具有多個(gè)(兩個(gè)以上)處理器的系統(tǒng),其具體實(shí) 施可根據(jù)處理器的數(shù)量進(jìn)行適當(dāng)?shù)卣{(diào)整,由于其實(shí)施方式與主從雙控系統(tǒng)類 似,在此不再贅述。
由上可知,本發(fā)明實(shí)施例采用在非透明橋之間建立以"根模塊-終端設(shè)備" 的連接方式進(jìn)行連接的單鏈路,然后利用該鏈路實(shí)現(xiàn)非透明橋之間的數(shù)據(jù)傳 輸,由于非透明橋之間采用的是"根模塊-終端設(shè)備"的連接方式,因此在鏈 路建立與配置過程中,兩側(cè)不需要通過協(xié)商來決定主從以及分別對(duì)自身進(jìn)行配
置,可以減少在鏈路的建立與配置過程中的資源占用和邏輯開銷;而且,與現(xiàn) 有技術(shù)相比,該連接方式可以得到現(xiàn)有的PCIE協(xié)議的支持,易于用戶的理解 和實(shí)現(xiàn)。
實(shí)施例三、與實(shí)施例二不同的是,在實(shí)施例二中,在兩側(cè)的非透明橋之間建立的是一 條單鏈路的"根模塊-終端設(shè)備,,連接,而本實(shí)施例則將以在兩側(cè)的非透明橋, 即第一非透明橋和第二非透明橋之間建立兩條以"根模塊-終端設(shè)備"連接方
式進(jìn)行連接的鏈路為例作進(jìn)一步詳細(xì)說明。
如圖4所示,與實(shí)施例二類同,在本發(fā)明實(shí)施例中,主從雙控系統(tǒng)兩側(cè)的 處理器,即主處理器和從屬處理器分別與各自對(duì)應(yīng)的根聯(lián)合體連接,然后兩側(cè) 各自的根聯(lián)合體均連接在非透明橋(即第一非透明橋和第二非透明橋)的終端 設(shè)備接口側(cè),由于兩側(cè)的非透明橋均表現(xiàn)為以終端設(shè)備接口通過一條鏈路連接 根聯(lián)合體,因此在系統(tǒng)枚舉與設(shè)備配置時(shí),兩側(cè)的非透明橋均會(huì)被各自的根聯(lián) 合體認(rèn)為是終端設(shè)備(或者稱為端點(diǎn)設(shè)備),致使接收到的關(guān)于枚舉的消息與 請(qǐng)求不會(huì)被透?jìng)?,從而可以?shí)現(xiàn)不同處理器域間的隔離;而在不同處理器域之
間,即第一非透明橋和第二非透明橋之間則采用"根模塊-終端設(shè)備"的連接 方式,即第一非透明橋的根模塊與第二非透明橋的終端設(shè)備接口側(cè)連接,其中, 第一非透明橋的根模塊和第二非透明橋的終端設(shè)備之間的鏈路建立、鏈路配置 與數(shù)據(jù)的傳輸均可直接的按照現(xiàn)有的PCIE協(xié)議的規(guī)定來實(shí)現(xiàn)。另外,在該方 案中,非透明橋(即第一非透明橋和第二非透明橋)中還具有邏輯模塊,該邏 輯模塊主要與非透明橋中的終端設(shè)備接口連接,或者與非透明橋中的終端設(shè)備 接口和根模塊連接,主要用來實(shí)現(xiàn)地址翻譯、ID路由、Interrupt等操作,以及 實(shí)現(xiàn)主從雙控系統(tǒng)中的數(shù)據(jù)傳輸。
需說明的是,非透明橋允許兩個(gè)根聯(lián)合體或PCIE樹通過一個(gè)或多個(gè)共享 地址窗口進(jìn)行互聯(lián),為了便于處理器域之間的相互通信,非透明橋通常也可以 包括用來從橋的一側(cè)向另 一側(cè)發(fā)送中斷的門鈴寄存器(Doorbell Register),以 及兩側(cè)都能訪問的暫存寄存器(ScratchpadRegister)??蓞⒁妶D3,第一非透明 橋中和第二非透明橋之中均可以包括有門鈴寄存器和暫存寄存器。
下面將根據(jù)圖4所提供的主從雙控系統(tǒng)的示意圖對(duì)本發(fā)明實(shí)施例作簡(jiǎn)略說明。
首先,兩側(cè)的非透明橋,即第一非透明橋和第二非透明橋分別對(duì)各自內(nèi)部 的根模塊進(jìn)行設(shè)置,通過第一非透明橋?qū)ψ陨韮?nèi)部根模塊的設(shè)置,可使第一非 透明橋的根模塊發(fā)現(xiàn)第二非透明橋的的終端設(shè)備接口,同理,通過第二非透明橋?qū)ψ陨韮?nèi)部根模塊的設(shè)置,可使第二非透明橋的根模塊發(fā)現(xiàn)第一非透明橋的 的終端設(shè)備接口,也就是說,可以讓兩側(cè)的透明橋分別發(fā)現(xiàn)各自對(duì)側(cè)(或者說 下游)的設(shè)備為終端設(shè)備,于是第一非透明橋的根模塊直接以類型O頭向第二 非透明橋的終端設(shè)備接口發(fā)送關(guān)于建立鏈路的請(qǐng)求,第二非透明橋接收到該請(qǐng) 求后,根據(jù)該請(qǐng)求生成成功響應(yīng),并通過自身的終端設(shè)備接口返回該成功響應(yīng) 給第一非透明橋的根模塊,第一非透明橋接收到該成功響應(yīng)后,即可依PCIE 的協(xié)議的相關(guān)規(guī)則在兩側(cè)之間建立鏈路,即第一非透明橋的根^f莫塊與第二非透 明橋的終端設(shè)備接口之間建立第一鏈路,同理,第二非透明橋的根模塊也可以 直接以類型O頭向第一非透明橋的終端設(shè)備接口發(fā)送關(guān)于建立鏈路的請(qǐng)求,第 一非透明橋接收到該請(qǐng)求后,根據(jù)該請(qǐng)求生成成功響應(yīng),并通過自身的終端設(shè) 備接口返回該成功響應(yīng)給第二非透明橋的根模塊,第二非透明橋接收到該成功
響應(yīng)后,即可依PCIE的協(xié)議的相關(guān)規(guī)則在兩側(cè)之間建立鏈路,即第一非透明 橋的根模塊與第二非透明橋的終端設(shè)備接口之間建立第二鏈路。
在第一鏈路和第二鏈路建立以后,需要對(duì)這兩條鏈路進(jìn)行配置,具體可以 由第一非透明橋?qū)Φ谝绘溌愤M(jìn)行配置,由第二非透明橋?qū)Φ诙溌愤M(jìn)行配置, 具體配置時(shí)可以依據(jù)現(xiàn)有的PC正協(xié)議進(jìn)行配置。
鏈路配置完畢后,就可以通過這兩條鏈路(即第一鏈路和第二鏈路)實(shí)現(xiàn) 第一非透明橋與第二非透明橋之間的數(shù)據(jù)的雙向傳輸,即非透明傳輸。具體實(shí) 施時(shí),可以采用邏輯同步的設(shè)計(jì)方法使兩條鏈路實(shí)現(xiàn)同步數(shù)據(jù)傳輸。當(dāng)其中的 一條鏈路因某些原因無法建立或在數(shù)據(jù)傳輸期間斷開,剩余的一條鏈路還可以 繼續(xù)完成各種相關(guān)的操作,當(dāng)然,此時(shí)帶寬與實(shí)施例二中單鏈路模式相同。
具體的傳輸信令與現(xiàn)有的PCIE協(xié)議的相關(guān)規(guī)則相同,在此不再贅述。
需說明的是,本發(fā)明實(shí)施例所提供的方案除了適合主從雙控系統(tǒng)之外,也 同樣適用于具有多個(gè)(兩個(gè)以上)處理器的系統(tǒng),其具體實(shí)施可根據(jù)處理器的 數(shù)量進(jìn)行適當(dāng)?shù)卣{(diào)整,由于其實(shí)施方式與主從雙控系統(tǒng)類似,在此不再贅述。
由上可知,本發(fā)明實(shí)施例采用在非透明橋之間建立以"根模塊-終端設(shè)備" 的連接方式進(jìn)行連接的單鏈路,然后利用該鏈路實(shí)現(xiàn)非透明橋之間的數(shù)據(jù)傳 輸,由于非透明橋之間采用的是"根模塊-終端設(shè)備"的連接方式,因此在鏈 路建立與配置過程中,兩側(cè)不需要通過協(xié)商來決定主從以及分別對(duì)自身進(jìn)行配置,可以減少在鏈路的建立與配置過程中的資源占用和邏輯開銷;而且,與現(xiàn) 有技術(shù)相比,該連接方式可以得到現(xiàn)有的PCIE協(xié)議的支持,易于用戶的理解和 實(shí)現(xiàn)。進(jìn)一步的,與實(shí)施例二不同,本實(shí)施例采用的連接方式是一種對(duì)稱的系 統(tǒng)結(jié)構(gòu),兩側(cè)在結(jié)構(gòu)上完全相同,因而具有更好的互換性。
實(shí)施例四、
為了更好地實(shí)施以上方法,本發(fā)明還相應(yīng)地提供一種非透明橋,如圖5所 示,該非透明橋400包括第一建立單元401、第一配置單元402和第一傳輸單元 403;為了更好地說明各單位之間的關(guān)系,圖5中還給出了另一非透明橋,即第 二非透明橋600;
第一建立單元401,用于在自身的根模塊與第二非透明橋600的終端設(shè)備接 口之間建立第一鏈路;
第一配置單元402,用于對(duì)第一建立單元401建立的第一鏈路進(jìn)行配置;
第 一傳輸單元403,用于通過第 一配置單元402配置后的第一鏈路與第二非 透明橋600進(jìn)行數(shù)據(jù)傳輸。
其中,第一建立單元401可以包括請(qǐng)求子單元和第一接收子單元;
請(qǐng)求子單元,用于通過自身的根模塊發(fā)送關(guān)于建立第一鏈路的請(qǐng)求給第二 非透明橋600的終端設(shè)備4妻口 ;
第一接收子單元,用于通過自身的根模塊接收第二非透明橋600的終端設(shè) 備接口根據(jù)所述請(qǐng)求子單元發(fā)送的請(qǐng)求返回的成功響應(yīng)。
除了在非透明橋之間建立"根模塊-終端設(shè)備,,連接方式的單鏈路之外, 還可以建立多條"根模塊-終端設(shè)備,,連接方式的鏈路,比如建立"根模塊-終 端設(shè)備"連接方式的雙鏈路,這樣,若在數(shù)據(jù)傳輸過程中,其中一條鏈路發(fā)生 故障,則另外一條鏈路還可以繼續(xù)完成各種相關(guān)的操作,從而可以保證系統(tǒng)的 正常運(yùn)行。因此,如圖5所示,該非透明橋400還可以包括第二建立單元404和 第二傳輸單元405;
第二建立單元404,用于在自身的終端設(shè)備接口和第二非透明橋600的根模 塊之間建立第二鏈路,所述第二鏈路由第二非透明橋600進(jìn)行配置;
第二傳輸單元405,用于通過配置后的由第二建立單元404建立的第二鏈路 進(jìn)行數(shù)據(jù)傳輸。其中,第二建立單元404可以包括第二接收子單元和響應(yīng)子單元; 第二接收子單元,用于通過自身的終端設(shè)備接口接收第二非透明橋600的
根模塊發(fā)送的關(guān)于建立笫二鏈路的請(qǐng)求;
響應(yīng)子單元,用于在所述第二接收子單元接收到請(qǐng)求后,通過自身的終端 設(shè)備接口根據(jù)所述請(qǐng)求返回成功響應(yīng)給第二非透明橋600的根模塊。
具體實(shí)施時(shí),非透明橋400的實(shí)體結(jié)構(gòu)可參見圖3或圖4,即非透明橋400 具體可以包括終端設(shè)備接口、邏輯模塊和根模塊,還可以包括另一個(gè)終端設(shè)備 接口,以便實(shí)現(xiàn)與另一條非透明橋之間建立雙鏈路的目的,當(dāng)然,還可以包括 門鈴寄存器和暫存寄存器,以上這些模塊的具體連接方式和具體實(shí)施可參見實(shí) 施例二和三,再次不再贅述。
需說明的是,本發(fā)明實(shí)施例所提供的方案除了適合主從雙控系統(tǒng)之外,也 同樣適用于具有多個(gè)(兩個(gè)以上)處理器的系統(tǒng),其具體實(shí)施可根據(jù)處理器的 數(shù)量進(jìn)行適當(dāng)?shù)卣{(diào)整,主要是對(duì)根聯(lián)合體的調(diào)整,由于其實(shí)施方式與主從雙控 系統(tǒng)類似,在此不再贅述。
由上可知,本發(fā)明實(shí)施例的非透明橋400的第 一建立單元401和/或第二建 立單元404可以在非透明橋之間建立以"根模塊-終端設(shè)備,,的連接方式進(jìn)行 連接的單鏈路或雙鏈路,然后利用該鏈路實(shí)現(xiàn)非透明橋之間的數(shù)據(jù)傳輸,由于 非透明橋之間采用的是"M莫塊-終端設(shè)備"的連接方式,因此在鏈路建立與 配置過程中,兩側(cè)不需要通過協(xié)商來決定主從以及分別對(duì)自身進(jìn)行配置,可以 減少在鏈路的建立與配置過程中的資源占用和邏輯開銷;而且,與現(xiàn)有^l支術(shù)相 比,該連接方式可以得到現(xiàn)有的PC1E協(xié)議的支持,易于用戶的理解和實(shí)現(xiàn)。
實(shí)施例五、
相應(yīng)的,本發(fā)明實(shí)施例還^是供一種通信系統(tǒng),如圖6所示,該通信系統(tǒng)包 括第一非透明橋501和第二非透明橋502;
第一非透明橋501,用于在自身的根模塊與第二非透明橋502的終端設(shè)備接 口之間建立第一鏈路,對(duì)第一鏈路進(jìn)行配置,通過配置后的第一鏈路與第二非 透明橋502進(jìn)行數(shù)據(jù)傳輸;
第二非透明橋502,用于通過第一鏈路與第一非透明橋501進(jìn)行數(shù)據(jù)傳輸。
由于第一非透明橋501和第二非透明橋502之間是采用"根模塊_終端設(shè)備"的連接方式,因此它們之間的鏈路可以根據(jù)現(xiàn)有的PCIE協(xié)議進(jìn)行建立,
在對(duì)鏈路進(jìn)行初始化時(shí),第 一非透明橋501所在的 一側(cè)和第二非透明橋502所在 的一側(cè)不需要通過協(xié)商來決定主從,即無需通過協(xié)商來決定是第一非透明橋 501所在的一側(cè)作為主控側(cè),第二非透明橋502所在的一側(cè)作為從側(cè),還是第一 非透明橋501所在的 一側(cè)作為從側(cè),第二非透明橋502所在的 一側(cè)作為主控側(cè), 而且,兩側(cè)也不需要分別對(duì)自身進(jìn)行配置后,才向?qū)Ψ桨l(fā)送關(guān)于建立鏈路的請(qǐng) 求,而是由根模塊所在的非透明橋直接發(fā)送關(guān)于建立鏈路的請(qǐng)求給另一條非透 明橋的終端設(shè)備接口;因此,如下
所述第一非透明橋501,還用于通過自身的根模塊發(fā)送關(guān)于建立第一鏈路 的請(qǐng)求給第二非透明橋502的終端設(shè)備接口 ,通過自身的根模塊接收第二非透 明橋502的終端設(shè)備接口返回的成功響應(yīng),以便建立第 一非透明橋501與第二非 透明橋502之間的第 一鏈路;
所述第二非透明橋502,還用于通過自身的終端設(shè)備接口接收第一非透明 橋501的根模塊發(fā)送的請(qǐng)求,通過自身的終端設(shè)備接口根據(jù)所述請(qǐng)求返回成功 響應(yīng)給第一非透明橋501的根^f莫塊。
除了以上所描述的在非透明橋之間建立單條鏈路,即建立第一鏈路之外, 也可以在非透明橋之間建立多條鏈路,例如雙鏈路,這樣,當(dāng)其中的一條鏈路 因某些原因無法建立或在數(shù)據(jù)傳輸期間斷開時(shí),另外一條鏈路還可以繼續(xù)完成 各種相關(guān)的操作。因此,如下
所述第一非透明橋501,還用于在自身的終端設(shè)備接口和第二非透明橋502 的根模塊之間建立第二鏈路,在第二非透明橋502對(duì)第二鏈路進(jìn)行配置后,通 過配置后的第二鏈路進(jìn)行數(shù)據(jù)傳輸;
所述第二非透明橋502,還用于對(duì)第二鏈路進(jìn)行配置。
與建立第 一鏈路時(shí)類似,可以根據(jù)現(xiàn)有的PCIE協(xié)議在第 一非透明橋501在 自身的終端設(shè)備接口和第二非透明橋502的根模塊之間建立第二鏈路,在進(jìn)行 鏈路的初始化操作時(shí),第一非透明橋501所在的一側(cè)和第二非透明橋502所在的 一側(cè)不需要通過協(xié)商來決定主從,也不需要分別對(duì)自身進(jìn)行配置后,才向?qū)Ψ?發(fā)送關(guān)于建立鏈路的請(qǐng)求,而是由根模塊所在的非透明橋直接發(fā)送關(guān)于建立鏈 路的請(qǐng)求給另一條非透明橋的終端設(shè)備接口 ;也就是說所述第一非透明橋501,還用于通過自身的終端設(shè)備接口接收第二非透明
橋502的根模塊發(fā)送的請(qǐng)求,通過自身的終端設(shè)備接口根據(jù)所述請(qǐng)求返回響應(yīng) 給第二非透明橋502的根模塊,以便建立第 一非透明橋501與第二非透明橋502 之間的第二鏈路;
所述第二非透明橋502,還用于通過自身的根模塊發(fā)送請(qǐng)求給第一非透明 橋501的終端設(shè)備接口 ,通過自身的根模塊接收第一非透明橋501的終端設(shè)備接 口返回的成功響應(yīng)。
以上通信系統(tǒng)的具體實(shí)施例可參見前面的實(shí)施例,在此不再贅述,另夕卜, 需說明的是,本發(fā)明實(shí)施例所提供的方案除了適合主從雙控系統(tǒng)之外,也同樣 適用于具有多個(gè)(兩個(gè)以上)處理器的系統(tǒng),其具體實(shí)施可根據(jù)處理器的數(shù)量 進(jìn)行適當(dāng)?shù)卣{(diào)整,主要是對(duì)根聯(lián)合體的調(diào)整,由于其實(shí)施方式與主從雙控系統(tǒng) 類似,在此不再贅述。
由上可知,本發(fā)明實(shí)施例的通信系統(tǒng)可以在非透明橋之間建立以"根模塊 -終端設(shè)備"的連接方式進(jìn)行連接的單鏈路或雙鏈路,然后利用該鏈路實(shí)現(xiàn)非 透明橋之間的數(shù)據(jù)傳輸,由于非透明橋之間采用的是"根模塊-終端設(shè)備"的 連接方式,因此在鏈路建立與配置過程中,兩側(cè)不需要通過協(xié)商來決定主從以 及分別對(duì)自身進(jìn)行配置,可以減少在鏈路的建立與配置過程中的資源占用和邏
輯開銷;而且,與現(xiàn)有技術(shù)相比,該連接方式可以得到現(xiàn)有的PCIE協(xié)議的支
持,易于用戶的理解和實(shí)現(xiàn)。進(jìn)一步的,還可以通過在非透明橋之間建立多條 鏈路來提高數(shù)據(jù)傳輸?shù)陌踩?,使得在?shù)據(jù)傳輸過程中,當(dāng)其中一條鏈路發(fā)生 故障時(shí),另外一條鏈路還可以繼續(xù)完成各種相關(guān)的操作,保證系統(tǒng)的正常運(yùn)行。 需說明的是,雖然本發(fā)明實(shí)施例對(duì)現(xiàn)有的非透明橋作了改造,但這僅僅只 會(huì)對(duì)非透明橋之間的鏈路的建立和配置產(chǎn)生影響,在鏈路建立以后,對(duì)非透明 橋之間的數(shù)據(jù)傳輸和處理,以及對(duì)主從雙控系統(tǒng)兩側(cè)內(nèi)部的數(shù)據(jù)傳輸與處理并
沒有影響,非透明橋之間,以及主從雙控系統(tǒng)兩側(cè)內(nèi)部仍可以依照現(xiàn)有的PCIE 協(xié)議進(jìn)行數(shù)據(jù)的傳輸與處理。
本領(lǐng)域普通技術(shù)人員可以理解上述實(shí)施例的各種方法中的全部或部分步 驟是可以通過程序來指令相關(guān)的硬件來完成,該程序可以存儲(chǔ)于一計(jì)算機(jī)可讀 存儲(chǔ)介質(zhì)中,存儲(chǔ)介質(zhì)可以包括只讀存儲(chǔ)器(ROM, Read Only Memory )、隨機(jī)存耳又記憶體(RAM, Random Access Memory)、磁盤或光盤等。
以上對(duì)本發(fā)明實(shí)施例所提供的 一種非透明傳輸?shù)膶?shí)現(xiàn)方法、非透明橋和通
行了闡述,以上實(shí)施例的說明只是用于幫助理解本發(fā)明的方法及其核心思想; 同時(shí),對(duì)于本領(lǐng)域的一般技術(shù)人員,依據(jù)本發(fā)明的思想,在具體實(shí)施方式
及應(yīng) 用范圍上均會(huì)有改變之處,綜上所述,本說明書內(nèi)容不應(yīng)理解為對(duì)本發(fā)明的限制。
權(quán)利要求
1、一種非透明傳輸?shù)膶?shí)現(xiàn)方法,其特征在于,包括第一非透明橋在自身的根模塊與第二非透明橋的終端設(shè)備接口之間建立第一鏈路;第一非透明橋?qū)Φ谝绘溌愤M(jìn)行配置;第一非透明橋通過配置后的第一鏈路與第二非透明橋進(jìn)行數(shù)據(jù)傳輸。
2、 根據(jù)權(quán)利要求l所述的方法,其特征在于,所述第一非透明橋在自身的 根模塊與第二非透明橋的終端設(shè)備接口之間建立第 一鏈路包括第一非透明橋通過自身的根模塊發(fā)送建立第一鏈路的請(qǐng)求給第二非透明 橋的終端設(shè)備接口;第一非透明橋通過自身的根模塊接收第二非透明橋的終端設(shè)備接口根據(jù) 所述請(qǐng)求返回的成功響應(yīng)。
3、 根據(jù)權(quán)利要求1或2所述的方法,其特征在于,還包括第 一非透明橋在自身的終端設(shè)備接口和第二非透明橋的根模塊之間建立 第二鏈路,所述第二鏈路由第二非透明橋進(jìn)行配置;第 一非透明橋通過配置后的第二鏈路進(jìn)行數(shù)據(jù)傳輸。
4、 根據(jù)權(quán)利要求3所述的方法,其特征在于,所述第一非透明橋在自身的 終端設(shè)備接口和第二非透明橋的根模塊之間建立第二鏈路包括第一非透明橋通過自身的終端設(shè)備接口接收第二非透明橋的根模塊發(fā)送 的關(guān)于建立第二鏈路的請(qǐng)求;第一非透明橋通過自身的終端設(shè)備接口根據(jù)所述請(qǐng)求返回成功響應(yīng)給第 二非透明橋的根模塊。
5、 一種非透明橋,其特征在于,包括第一建立單元,用于在自身的根模塊與第二非透明橋的終端設(shè)備接口之間 建立第一鏈路;第一配置單元,用于對(duì)第一建立單元建立的第一鏈路進(jìn)行配置; 第一傳輸單元,用于通過第一配置單元配置后的第一鏈路與第二非透明橋進(jìn)行數(shù)據(jù)傳輸。
6、 根據(jù)權(quán)利要求5所述的非透明橋,其特征在于,所述第一建立單元包括 請(qǐng)求子單元,用于通過自身的根^t塊發(fā)送關(guān)于建立第一鏈路的請(qǐng)求給第二非透明橋的終端設(shè)備接口 ;第一接收子單元,用于通過自身的根模塊接收第二非透明橋的終端設(shè)備接 口才艮據(jù)所述請(qǐng)求子單元發(fā)送的^"求返回的成功響應(yīng)。
7、 根據(jù)權(quán)利要求5或6所述的非透明橋,其特征在于,還包括 第二建立單元,用于在自身的終端設(shè)備接口和第二非透明橋的根模塊之間建立第二鏈路,所述第二鏈路由第二非透明橋進(jìn)行配置;第二傳輸單元,用于通過配置后的由第二建立單元建立的第二鏈路進(jìn)行數(shù) 據(jù)傳輸。
8、 根據(jù)權(quán)利要求7所述的非透明橋,其特征在于,所述第二建立單元包括 第二接收子單元,用于通過自身的終端設(shè)備接口接收第二非透明橋的根模塊發(fā)送的關(guān)于建立第二鏈路的請(qǐng)求;響應(yīng)子單元,用于在所述第二接收子單元接收到請(qǐng)求后,通過自身的終端 設(shè)備接口根據(jù)所述請(qǐng)求返回成功響應(yīng)給第二非透明橋的根模塊。
9、 一種通信系統(tǒng),其特征在于,包括第一非透明橋和第二非透明橋; 第一非透明橋,用于在自身的根模塊與第二非透明橋的終端設(shè)備接口之間建立第一鏈路,對(duì)第一鏈路進(jìn)行配置,通過配置后的第一鏈路與第二非透明橋 進(jìn)行數(shù)據(jù)傳輸;第二非透明橋,用于通過第一鏈路與第一非透明橋進(jìn)行數(shù)據(jù)傳輸。
10、 根據(jù)權(quán)利要求9所述的通信系統(tǒng),其特征在于,包括 所述第一非透明橋,用于通過自身的根模塊發(fā)送關(guān)于建立第一鏈路的配置給第二非透明橋的終端設(shè)備接口 ,通過自身的根模塊接收第二非透明橋的終端設(shè)備接口返回的成功響應(yīng),以便建立第一非透明橋與第二非透明橋之間的第一 鏈路;所述第二非透明橋,還用于通過自身的終端設(shè)備接口接收第一非透明橋的 根模塊發(fā)送的請(qǐng)求,通過自身的終端設(shè)備接口根據(jù)所述請(qǐng)求返回成功響應(yīng)給第 一非透明橋的根模塊。
全文摘要
本發(fā)明實(shí)施例公開了一種非透明傳輸?shù)膶?shí)現(xiàn)方法、非透明橋和通信系統(tǒng)。本發(fā)明實(shí)施例采用在非透明橋之間建立以“根模塊-終端設(shè)備”的連接方式進(jìn)行連接的鏈路,然后利用該鏈路實(shí)現(xiàn)非透明橋之間的數(shù)據(jù)傳輸,由于非透明橋之間采用的是“根模塊-終端設(shè)備”的連接方式,因此在鏈路建立與配置過程中,兩側(cè)不需要通過協(xié)商來決定主從以及分別對(duì)自身進(jìn)行配置,可以減少在鏈路的建立與配置過程中的資源占用和邏輯開銷;而且,該連接方式可以得到現(xiàn)有的PCIE協(xié)議的支持,易于用戶的理解和實(shí)現(xiàn)。
文檔編號(hào)H04L29/06GK101588285SQ200910150718
公開日2009年11月25日 申請(qǐng)日期2009年6月24日 優(yōu)先權(quán)日2009年6月24日
發(fā)明者張恩東 申請(qǐng)人:成都市華為賽門鐵克科技有限公司