專利名稱:多處理器架構(gòu)與方法
技術(shù)領(lǐng)域:
本申請(qǐng)是關(guān)于計(jì)算器與其他數(shù)字系統(tǒng)中數(shù)據(jù)轉(zhuǎn)換的領(lǐng)域。
背景技術(shù):
本申請(qǐng)主張2008年10月3日申請(qǐng)的美國(guó)申請(qǐng)案12/M5,686為優(yōu)先權(quán)案。本申請(qǐng)也主張2008年12月19日申請(qǐng)的美國(guó)申請(qǐng)案12/340,510為優(yōu)先權(quán)案,這是美國(guó)申請(qǐng)案 12/245, 686的部分連續(xù)案。這兩件申請(qǐng)整體內(nèi)容皆并入本申請(qǐng)作為參考。隨著計(jì)算器與其他數(shù)字系統(tǒng)變得更復(fù)雜與更有能力,在系統(tǒng)成分或組件之間促進(jìn)數(shù)據(jù)轉(zhuǎn)換的方法與硬件持續(xù)演化。要被轉(zhuǎn)換的數(shù)據(jù)包含代表數(shù)據(jù)、指令或是其他信號(hào)的信號(hào)。在運(yùn)作非常大數(shù)據(jù)量應(yīng)用的系統(tǒng)中,例如制圖應(yīng)用的系統(tǒng)中,數(shù)據(jù)轉(zhuǎn)換的速度與效率特別關(guān)鍵。在典型系統(tǒng)中,制圖處理能力是中心處理單元(CPU)的一部分,或是分別的特殊目的處理器,,例如制圖處理單元(GPU)與CPU通訊且輔助處理用于例如視頻游戲應(yīng)用的制圖數(shù)據(jù)??稍谙到y(tǒng)中包含一或多個(gè)GPU。在習(xí)知多GPU系統(tǒng)中,橋接宿主接口(例如PCI快速 (PCIe )總線)接口必須在點(diǎn)對(duì)點(diǎn)(peer to per)交通與宿主交通之間分享帶寬。交通主要包括內(nèi)存數(shù)據(jù)轉(zhuǎn)換,但通??砂噶睢D1是習(xí)知系統(tǒng)100的方塊圖,包含根(root) 102。 典型根102試算機(jī)芯片組,包含中心處理器(CPU)、宿主橋104以及兩個(gè)終端EPO 106a與 106b。終端是總線終端,以及可以是多種周邊組件,例如特殊目的處理器,例如制圖處理單元GPU)。根102通過(guò)一或多個(gè)總線而耦合至橋104,以與周邊組件通訊。一些周邊組件終端(例如GPh)由于功能涉及大量數(shù)據(jù),所以需要總線上相對(duì)大量的帶寬。理想是提供較少組件數(shù)目的架構(gòu),以及在組件之間提供有效率的數(shù)據(jù)轉(zhuǎn)換。例如,橋集成電路(ICs)的成本相對(duì)高。除此之外,典型橋IC的尺寸可和制圖處理單元(GPU)相比,制圖處理單元需要額外的印刷電路板面積以即可加至層數(shù)。橋IC也需要額外的環(huán)繞組件,用于電力、帶子 (straps)、時(shí)鐘以及可能是只讀內(nèi)存(ROM)。
圖1是具有周邊組件的習(xí)知處理系統(tǒng)的方塊圖。圖2是根據(jù)實(shí)施例,說(shuō)明具有多任務(wù)周邊組件的多處理器系統(tǒng)的部分的方塊圖。圖3是根據(jù)實(shí)施例,說(shuō)明具有周邊組件的處理系統(tǒng)的部分的方塊圖。圖4是根據(jù)實(shí)施例,說(shuō)明具有周邊組件的處理系統(tǒng)的更詳細(xì)方塊圖。圖5是實(shí)施例的方塊圖,其中一總線終點(diǎn)包含內(nèi)部橋。圖7是根據(jù)實(shí)施例,從系統(tǒng)中不同組件的透視說(shuō)明內(nèi)存空間的方塊圖。
具體實(shí)施例方式本申請(qǐng)揭露多處理器架構(gòu)與方法的實(shí)施例。實(shí)施例提供替代使用外部橋集成電路 (IC)架構(gòu)。例如,實(shí)施例多任務(wù)(multiplex)周邊總線,因而多處理器可使用一個(gè)周邊接口槽,而不需要外部橋IC。其他實(shí)施例包含系統(tǒng),所述系統(tǒng)具有多個(gè)總線終點(diǎn)通過(guò)宿主總線橋而耦合至總線根,所述宿主總線橋是內(nèi)部連接到至少一個(gè)總線終點(diǎn)。除此之外,總線終點(diǎn)直接彼此耦合。實(shí)施例可使用已知的總線規(guī)則(bus protocol)。圖2是根據(jù)實(shí)施例的示意方塊圖,說(shuō)明具有多任務(wù)周邊組件總線的多處理器系統(tǒng) 700的部分。在這個(gè)范例系統(tǒng)中,有兩個(gè)GPU、主GPU 702A以及從GPU 702B。每一個(gè)GPU 702具有16個(gè)周邊組件互連快送(PCIe )傳送(TX)道以及16個(gè)PCIe 接收(RX)道。每一個(gè)GPU 702包含個(gè)別的數(shù)據(jù)鏈接層706以及個(gè)別的物理層(PHY) 704。GPU 702A的八個(gè) TX/RX道連接至X16 PCIe 連接器一半的TX/RX道或是槽708。GPU 702B的八個(gè)TX/RX道連接至X16 PCIe 連接器剩余的TX/RX道或是槽708。GPU 702A與GPU 702B各自的剩余 TX/RX道是彼此連接,在GPU 702之間提供直接高速連接。PCIe xl6槽708(正常連至一個(gè)GPU)分為兩個(gè)部分,槽的一半是連接至GPU 702A,以及另一半是連接至GPU 702B。每一個(gè)GPU 702基本上回響另一個(gè)GPU 702的另一半數(shù)據(jù)。亦即GPU接收的數(shù)據(jù)會(huì)傳送至另一個(gè)。每一個(gè)GPU 702見到PCIe 總線接收的所有數(shù)據(jù),每一個(gè)GPU 702內(nèi)部決定是否回答請(qǐng)求或意見。而后每一個(gè)GPU 702適當(dāng)響應(yīng)或是不做任何事??墒褂靡恍?shù)據(jù)或指令,例如“重新啟動(dòng)”用于所有的GPU 702。從系統(tǒng)階層觀點(diǎn),或是從周邊總線的觀點(diǎn),PCIe 總線上只有一個(gè)PCIe 負(fù)載(裝置)。GPU 702A或GPU 702B以地址為基礎(chǔ)被存取。例如,對(duì)于地址區(qū)存取(Address Domain Access),主GPU 702A可被分配一半的地址區(qū),以及從GPU 702B可分配到另一半。系統(tǒng)可在主/從模式中運(yùn)作,或是在單/多GPU模式中操作,以及可用帶子(straps)辨識(shí)模式。由參考數(shù)目辨識(shí)不同的數(shù)據(jù)路徑。711是指參考時(shí)序(REF CLK)路徑。709是指 8道RX-2路徑。713是指8道RX-I路徑。715是指8道TX-I路徑??刂菩盘?hào)710是非 PCIe 信號(hào),例如帶子(straps)。每一個(gè)GPU 702中的PHY 704回響數(shù)據(jù)至適當(dāng)?shù)牡阑蛲ǖ馈?梢砸佬蛲瓿傻肋B接,幫助優(yōu)化系設(shè)計(jì)與/或支持具有少于16道的PCIe 槽。兩個(gè) GPU顯示為系統(tǒng)的范例,但是架構(gòu)可擴(kuò)充至n-GPh。除此之外,GPU 702是周邊組件的一個(gè)范例,如前所述可被耦合。與周邊組件總線正常通訊的任何其他周邊組件可同樣被耦合。圖3根據(jù)實(shí)施例所示的方塊圖,說(shuō)明具有周邊組件的處理系統(tǒng)200的部分。系統(tǒng) 200包含總線根(bus root) 202,這與圖1的總線根102類似。實(shí)施例中的總線根202是包含CPU與系統(tǒng)內(nèi)存的芯片組。根202通過(guò)總線209耦和至包含內(nèi)部橋20 的終端EPO 206a。實(shí)施例中的總線209是PCI快送(PCIe )總線,但并不受限于此實(shí)施例。EPO 206a 耦合至另一終端EPl 206b。EPl 206b包含內(nèi)部橋205b。EPO 20 與EPl 205B通過(guò)總線 207穿過(guò)個(gè)別的橋。EPl 206b通過(guò)總線211穿過(guò)橋20 耦合至根202。終端EPO 206a與 EPl 206b各自包含個(gè)別的局部?jī)?nèi)存208a與208b。從個(gè)別的根202,209與211分別傳送與接收標(biāo)準(zhǔn)雙向點(diǎn)對(duì)點(diǎn)數(shù)據(jù)鏈接的道(lanes)。在實(shí)施例中,EPO 206a與EPl 206b是相同的。如以下進(jìn)一步說(shuō)明,在不同的實(shí)施例中,橋20 并不是必需的,但可被用于達(dá)到具有終端版本的目的,例如一種版本的GPU, 而不是制造兩種不同版本。注意可單獨(dú)使用ΕΡ0,通過(guò)總線207與211直接連接至根202。當(dāng)EPO與EPl存在時(shí),含有橋205會(huì)排除需求例如圖1橋104的外部橋。相較于圖1的“Y”或“T”形成,系統(tǒng)200在回路中移動(dòng)數(shù)據(jù)(在這例子中是順時(shí)鐘方向)。左終點(diǎn) EPO可直接傳送數(shù)據(jù)至右終點(diǎn)EPl。從EPl返回至EPO的路徑是經(jīng)過(guò)根202。因此,根能將來(lái)自epl的數(shù)據(jù)封包反射回至ΕΡ0。換句話說(shuō),當(dāng)架構(gòu)用于終點(diǎn)對(duì)根交易時(shí),提供在相同線對(duì)上點(diǎn)對(duì)點(diǎn)交易的外觀。EPO 206a與EPl 206b也可用于習(xí)知的架構(gòu)中。亦即EPO 206a與EPl 206b通過(guò)總線209與211各自直接與根202通訊,在此架構(gòu)中,各自為雙向通訊。圖4是根據(jù)實(shí)施例的更詳細(xì)方塊圖,說(shuō)明具有周邊組件的處理系統(tǒng)。系統(tǒng)300類似系統(tǒng)200,但顯示更多的細(xì)節(jié)。系統(tǒng)300包含總線根302耦合至系統(tǒng)內(nèi)存303??偩€根 302更通過(guò)總線309耦合至終點(diǎn)30^1。為了說(shuō)明特定實(shí)施例,終點(diǎn)30 與30 是GPUjS 實(shí)施例并不受限于GPU。GPUO 30 包含多客戶??蛻舭壿?,例如著色器單元(shader unit)與譯碼器單元,用于執(zhí)行任務(wù)??蛻敉ㄟ^(guò)總線接口(VF)邏輯耦合至內(nèi)部橋,控制GPU 進(jìn)行的所有讀取操作與存寫操作。GPUO 305a 通過(guò)總線 307 從 GPUO 305a 的內(nèi)部橋至 GPUl 305b 耦合至 GPUl 305b。 在實(shí)施例中,GPUl 30 與GPUO 30 相同,以及包含多客戶、內(nèi)部橋與I/F邏輯。每一個(gè) GPU典型連接至局部?jī)?nèi)存單元,通常是⑶DR DRAM。GPUl 305b通過(guò)總線311而耦合至總線根302。在實(shí)施例中,如箭頭所指,例如讀取請(qǐng)求與完成的數(shù)據(jù)與其他信息從總線根302至 GPUO 30 至GPUl 30 的順時(shí)鐘回路流動(dòng)。在其他實(shí)施例中,GPU 305其中之一不包含橋。在其他實(shí)施例中,數(shù)據(jù)反時(shí)鐘方向流動(dòng)而不是順時(shí)鐘方向流動(dòng)。在實(shí)施例中,決定數(shù)據(jù)路由的協(xié)議圖1的架構(gòu)具有相同的通訊架構(gòu)。特別地,305b 的橋必須呈現(xiàn)在連結(jié)307至橋30 作為上游埠,而30 中橋上對(duì)應(yīng)的附接點(diǎn)必須呈現(xiàn)在連結(jié)309至根302作為下游埠。再者,當(dāng)在進(jìn)入連結(jié)上接收所有請(qǐng)求的返回路徑時(shí),包埋的橋必須可以知道出發(fā)的連結(jié),即使兩個(gè)鏈接的實(shí)體路由不同。這可由對(duì)于每一個(gè)GPU設(shè)定鏈模式架構(gòu)帶而達(dá)到。如果帶設(shè)定為零,橋假設(shè)傳送與接收連結(jié)為上游埠,根多任務(wù)或是橋裝置。如果帶設(shè)定為一,橋假設(shè)菊鏈(daisy-chain)架構(gòu)。在另一實(shí)施例中,根的點(diǎn)對(duì)點(diǎn)橋功能是兩步驟工藝,GPl 30 據(jù)以存寫數(shù)據(jù)至系統(tǒng)內(nèi)存303或緩沖。而后當(dāng)分別操作時(shí),GPO 30 通過(guò)總線根302返回讀取數(shù)據(jù)。如果內(nèi)部橋是外部橋(如圖1所示),則總線根302正常響應(yīng)請(qǐng)求。在實(shí)施例中, GPO 30 橋是主動(dòng)的,而GPUl 30 的橋是作為線路以及簡(jiǎn)單傳送數(shù)據(jù)。這使得總線根302 知道總縣309與311是正常的周邊互連。當(dāng)總線根從GPUO 30 讀取總線根時(shí),如果數(shù)據(jù)直接來(lái)自于GPUO 305a,則此橋傳送數(shù)據(jù)通過(guò)GPUl 30 的橋,以及返回至總線根302。圖5是系統(tǒng)400的方塊圖,其中多個(gè)總線終端的其中之一包含內(nèi)部橋。系統(tǒng)400包含總線根402以及包含橋40 的EPO 406a。EPO 406a耦合至根402通過(guò)總線409穿過(guò)橋 405a,以及耦合至EPlb406b通過(guò)總線407穿過(guò)橋40fe。每一個(gè)終點(diǎn)EPO 406a與EPl 406b 包含個(gè)別的局部?jī)?nèi)存408a與408b。圖6是系統(tǒng)500的方塊圖,包含超過(guò)兩個(gè)總線終端,各自包含內(nèi)部橋。系統(tǒng)500包含總線根501,以及含有橋50 與局部?jī)?nèi)存508a的EPO 506a。系統(tǒng)500更包含具有橋50 與局部?jī)?nèi)存508b的EPl 506b,以及具有橋505c與內(nèi)部?jī)?nèi)存508c的橋505c。EPO 506a耦合是根502通過(guò)總線509穿過(guò)橋505a,以及也耦合至EPlb 506b通過(guò)總線507a穿過(guò)橋50 。EPO 50 耦合至EPlc 506c通過(guò)總線507b穿過(guò)橋506c。其他實(shí)施例包含加入環(huán)狀架構(gòu)的額外終點(diǎn)。在其他實(shí)施例中,系統(tǒng)包含超過(guò)兩個(gè)終點(diǎn)506,但是最右邊的終點(diǎn)不包含內(nèi)部橋。在其他實(shí)施例中,數(shù)據(jù)流是反時(shí)鐘方向,如圖所示。
6
請(qǐng)?jiān)俅螀㈤唸D4,根據(jù)實(shí)施例,內(nèi)部橋上有兩個(gè)邏輯端口。一埠是在GPUO 305a的橋中“開啟”,以及一埠是在GPUl 30 的橋中“關(guān)閉”??偩€根302可在總線309上傳送請(qǐng)求而進(jìn)行存寫操作。標(biāo)準(zhǔn)地址方案是指橋傳送請(qǐng)求至總線I/F。如果是對(duì)于GPUl 30 請(qǐng)求,橋把請(qǐng)求導(dǎo)引至總線307。因此,在實(shí)施例中,GPUO 30 與GPUl 30 的個(gè)別內(nèi)部橋編程不同。圖7的方塊圖說(shuō)明總線地址范圍的分配以及從不同組件的內(nèi)存空間概示。同時(shí)也參閱圖4,602是說(shuō)明總線根或是宿主處理器302的內(nèi)存。604是說(shuō)明GPUO 305a內(nèi)部橋的內(nèi)存。606是說(shuō)明GPUl 30 內(nèi)部橋的內(nèi)存??偩€地址范圍分割范圍給GPUO 305a、GPUl 305b與系統(tǒng)302內(nèi)存空間。設(shè)定GPUO 305a橋,因而進(jìn)入到GPUO 305a范圍的請(qǐng)求被導(dǎo)引到自身的局部?jī)?nèi)存。來(lái)自根或來(lái)自GPUO 30 進(jìn)入GPUl 30 或系統(tǒng)302的請(qǐng)求被導(dǎo)引到 GPUO 30 的輸出埠。GPU13(^b設(shè)定稍有不同,因此進(jìn)入GPUl 30 范圍的請(qǐng)求被導(dǎo)引到自身的局部?jī)?nèi)存。從GPUO 30 或是從GPUl 30 到根或是GPUO 30 范圍的請(qǐng)求被導(dǎo)引到GPUl 305b的輸出埠。宿主知道總線像圖1所示。GPUl 05b可通過(guò)橋而向宿主處理器302制造請(qǐng)求,以及請(qǐng)求會(huì)傳送到宿主處理器302。當(dāng)宿主處理器302返回請(qǐng)求時(shí),會(huì)通過(guò)GPUO 30 的橋, 具有邏輯用來(lái)決定請(qǐng)求與數(shù)據(jù)被導(dǎo)引到何處。可在兩種路徑中進(jìn)行從GPUl 305b至GPUO 30 的存寫操作。GPUl 305b傳送數(shù)據(jù)至系統(tǒng)內(nèi)存303中的內(nèi)存位置。而后,GPUO 30 在學(xué)習(xí)到數(shù)據(jù)在系統(tǒng)內(nèi)存303中之后, GPUO 30 讀取數(shù)據(jù)。讀取數(shù)據(jù)請(qǐng)求其他分割交易操作的完成信息必須沿著和請(qǐng)求相同方向的線路旅行。因此,除了上述地址基礎(chǔ)的請(qǐng)求路由之外,裝置基礎(chǔ)的路由必須用類似的方式設(shè)定。例如,GPUO 305a的內(nèi)部橋辨識(shí)請(qǐng)求與完成信息的路徑是通過(guò)總線307。實(shí)施例包含電力管理,改善高負(fù)載使用例子中的電力使用。例如,在具有一點(diǎn)制圖處理的使用例子中,GPUl 305b的邏輯電力關(guān)閉,以及GPUl 305b中的橋功能減少到從輸入端口至輸出端口的簡(jiǎn)單通過(guò)功能。再者,GPUO 30 的功能減少,不處理從輸入埠路由至輸出埠的轉(zhuǎn)換。在實(shí)施例中,有個(gè)別的電力供應(yīng)用于GPUl 30 的橋功能。軟件偵測(cè)電力降低的條件。實(shí)施例包含用于橋的個(gè)別電力調(diào)節(jié)器與/或個(gè)別內(nèi)部電源,分別從裝置的剩余邏輯調(diào)降電力。即使在不包含上述電力管理的實(shí)施例中,由于不需要外部橋(如圖1所示),所以保留系統(tǒng)板面積。保留了外部橋所需要的板面積與電力以及它的接腳。另一方面,不需要每一個(gè)GPU具有自己的內(nèi)部橋。在另一實(shí)施例中,GPUl 30 不具有內(nèi)部橋,如圖5所示。在包含用于加法電路板(add-in circuit board)多槽的系統(tǒng)中,實(shí)施系統(tǒng)300的架構(gòu)?;蛘?,系統(tǒng)300是焊接的系統(tǒng)(soldered system),例如在移動(dòng)裝置上。總線307、309與311可以是PCIe 總線或是任何其他的類似周邊互連總線。本申請(qǐng)描述的任何電路實(shí)施可通過(guò)控制制造工藝與屏蔽工作,而后用于制造相關(guān)電路。對(duì)熟知此技藝的人士熟知這些制造工藝控制與屏蔽工作產(chǎn)生,包含儲(chǔ)存計(jì)算器指令在計(jì)算器可讀取的媒體,包含例如Veril0g、VHDL或是其他硬件描述語(yǔ)言的指令。本申請(qǐng)的實(shí)施例包含系統(tǒng),所述系統(tǒng)包括周邊組件連接器耦合至周邊組件總線; 以及多個(gè)周邊組件通過(guò)多個(gè)個(gè)別傳送/接收(TX/RX)道而直接耦合至周邊組件連接器,因而多個(gè)周邊組件出現(xiàn)在周邊組件總線,成為一個(gè)周邊裝置耦合至周邊組件連接器。在實(shí)施例中,多個(gè)周邊組件通過(guò)個(gè)別的傳送/接收(TX/RX)道而進(jìn)一步直接彼此華禹合。在實(shí)施例中,多個(gè)周邊組件的至少一個(gè)是制圖處理單元(GPU)。在實(shí)施例中,周邊組件連接器是周邊組件互連快送(PCIe )槽,以及其中周邊組件總線是PCIe 總線。在實(shí)施例中,每一個(gè)周邊組件是用以接收通過(guò)周邊組件連接器傳送的所有數(shù)據(jù), 以及決定可使用的數(shù)據(jù)。在實(shí)施例中,每一個(gè)周邊組件將接收的所有數(shù)據(jù)轉(zhuǎn)送至剩余的周邊組件。在實(shí)施例中,以地址為基礎(chǔ),存取每一個(gè)周邊組件。本申請(qǐng)的實(shí)施利包含多處理器方法,所述方法包括通過(guò)總線的個(gè)別傳送/接收 (TX/RX)道組,耦合多個(gè)處理器至周邊總線;耦合所述多個(gè)處理器至未耦合到總線的所述多個(gè)處理器的彼此TX/RX道,從所述總線直接傳送數(shù)據(jù)至所述多個(gè)處理器,其中所述多個(gè)處理器的每一個(gè)處理器是可定地址的;以及在處理器之間直接傳送數(shù)據(jù)。在實(shí)施例中,所述多個(gè)處理器包括制圖處理單元(GPU)。在實(shí)施例中,所述多個(gè)處理器包括多個(gè)GPU,以及其中所述周邊總線包括周邊組件互連快送(PCIe )總線,所述GPU直接耦合至所述周邊組件互連快送(PCIe )總線。在實(shí)施例中,更包括通過(guò)個(gè)別的TX/RX道,耦合所述GPU直接比次通訊。在實(shí)施例中,更包括GPU從所述總線接收數(shù)據(jù),以及傳送所述數(shù)據(jù)至另一個(gè)GPU。本申請(qǐng)的實(shí)施利包含計(jì)算器可讀取媒體,儲(chǔ)存計(jì)算器可讀取指令,用以制造電路, 所述電路包括周邊組件連接器耦合至周邊組件總線;以及多個(gè)周邊組件通過(guò)多個(gè)個(gè)別的傳送/接收(TX/RX)道而直接耦合至所述周邊組件連接器,因而所述多個(gè)周邊組件出現(xiàn)在所述周邊組件總線,成為一周邊裝置耦合至所述周邊組件連接器,其中所述多個(gè)周邊組件更通過(guò)個(gè)別的傳輸/接收(TX/RX)道而直接彼此耦合。 在實(shí)施例中,所述指令包括硬件描述語(yǔ)言指令。本申請(qǐng)的實(shí)施利包含計(jì)算可讀取的媒體,具有指令儲(chǔ)存于其中,當(dāng)在多處理器系統(tǒng)中執(zhí)行時(shí),造成進(jìn)行一方法,所述方法包括耦合多個(gè)處理器至周邊總線,通過(guò)所述總線的各組傳送/接收(TX/RX)道;耦合所述多個(gè)處理器至未連接到所述總線的所述多個(gè)處理器的彼此TX/RX道;傳送數(shù)據(jù)至所述多個(gè)處理器,從所述總線直接至所述多個(gè)處理器,其中所述多個(gè)處理器的每一個(gè)處理器是可定地址的;以及在處理器之間直接傳送數(shù)據(jù)。在實(shí)施例中,所述多個(gè)處理器包括制圖處理單元(GPU)。在實(shí)施例中,所述多個(gè)處理器包括多個(gè)GPU,以及其中所述周邊總線包括周邊組件互連快送(PCIe )總線,所述GPU直接耦合至周邊組件互連快送(PCIe )總線。在實(shí)施例中,所述方法更包括耦合GPU通過(guò)個(gè)別TX/RX道而直接彼此通訊。在實(shí)施例中,所述方法更包括GPU從總線接收數(shù)據(jù)以及傳送所述數(shù)據(jù)至另一個(gè) GPU。本申請(qǐng)的實(shí)施利包含系統(tǒng),所述系統(tǒng)包括總線根,總線根包括中心處理單元用以通過(guò)組線而與周邊組件通訊;以及第一周邊組件直接耦合至組線根以及更直接耦合至第二周邊組件,所述第一周邊組件包括內(nèi)部橋,用以接收數(shù)據(jù)與傳送數(shù)據(jù),其中接收與傳送包括所述第一周邊組件與所述第二周邊組件之間的直接通訊。在實(shí)施例中,所述第一周邊組件與所述第二周邊組件各自用于與所述總線根直接通訊,以傳送與接收數(shù)據(jù)。在實(shí)施例中,接收與傳送更包括通過(guò)所述總線根,從所述第二周邊組件傳送請(qǐng)求與數(shù)據(jù)至所述第一周邊組件。在實(shí)施例中,接收與傳送更包括從所述第一周邊組件傳送請(qǐng)求或數(shù)據(jù)至所述第二周邊組件,通過(guò)所述第一周邊組件的內(nèi)部橋至第二周邊組件。在實(shí)施例中,總線根用以進(jìn)行存寫操作,其中存寫操作至所述第二周邊組件包括所述總線根傳送存寫請(qǐng)求至所述第一周邊組件的內(nèi)部橋,以及所述第一周邊組件的內(nèi)部橋直接傳送所述存寫請(qǐng)求至所述第二周邊組件。在實(shí)施例中,所述第二周邊組件的內(nèi)部總線接口接收所述存寫請(qǐng)求。在實(shí)施例中,總線根用以進(jìn)行存寫操作,其中存寫操作至所述第一周邊組件包括所述總線根傳送存寫請(qǐng)求至所述橋,以及所述橋傳送所述存寫請(qǐng)求至所述第一周邊組件的內(nèi)部總線接口。在實(shí)施例中,所述總線根用以進(jìn)行讀取操作,其中讀取操作至所述第一周邊組件包括所述總線根傳送讀取請(qǐng)求至所述橋,以及所述橋傳送所述讀取請(qǐng)求至所述第一周邊組件的內(nèi)部總線接口。在實(shí)施例中,總線根用以進(jìn)行讀取操作,其中讀取操作至所述第二周邊組件包括所述總線根傳送讀取請(qǐng)求至所述橋,以及所述橋直接傳送所述讀取請(qǐng)求至所述第二周邊組件。在實(shí)施例中,所述橋包括邏輯用以決定對(duì)于所接收存寫請(qǐng)求、所接收讀取請(qǐng)求與所接收數(shù)據(jù)的路由。在實(shí)施例中,所述第二周邊組件包括內(nèi)部橋,用以接收數(shù)據(jù)與傳送數(shù)據(jù),以及當(dāng)所述內(nèi)部橋不用接收數(shù)據(jù)與傳送數(shù)據(jù)時(shí),所述第二周邊組件更用已被下降電力。在實(shí)施例中,所述第二周邊組件更包括用于使用內(nèi)部橋的電源。在實(shí)施例中,所述第一周邊組件與所述第二周邊組件各包括制圖處理單元(GPU)。在實(shí)施例中,所述第一周邊組件與所述第二周邊組件各自更包括多個(gè)客戶耦合至個(gè)別總線接口,其中所述客戶包括視頻處理邏輯,所述視頻處理邏輯包括shader units與編碼器/譯碼器單元。本申請(qǐng)的實(shí)施例包含在多處理器系統(tǒng)中通訊的方法,所述方法包括總線根直接傳送請(qǐng)求至第一周邊組件,其中所述請(qǐng)求包括讀取請(qǐng)求與存寫請(qǐng)求,所述第一周邊組件通過(guò)所述第一周邊組件的內(nèi)部橋中的第一總線而接收所述請(qǐng)求;以及所述內(nèi)部橋決定所述請(qǐng)求的適當(dāng)路由,其中適當(dāng)路由包括針對(duì)第二周邊組件的路由請(qǐng)求,通過(guò)第二總線直接從所述橋至所述第二周邊組件的總線接口 ;以及針對(duì)第一周邊組件的路由請(qǐng)求至所述第一周邊組件的總線接口。在實(shí)施例中,更包括所述第二組件,通過(guò)第三總線直接傳送數(shù)據(jù)至所述總線根,響應(yīng)讀取請(qǐng)求。在實(shí)施例中,更包括第二周邊組件接收所述第二周邊組件的內(nèi)部橋中的請(qǐng)求。在實(shí)施例中,更包括所述第一周邊組件通過(guò)所述第二總線傳送讀取請(qǐng)求至所述第二周邊組件,所述第二周邊組件傳送數(shù)據(jù),通過(guò)所述第三總線,響應(yīng)所述讀取請(qǐng)求至所述總線根,以及所述總線根通過(guò)所述第一總線傳送所述數(shù)據(jù)至所述橋。本申請(qǐng)的實(shí)施利包含計(jì)算器可讀取的媒體,具有儲(chǔ)存的指令,當(dāng)在多處理系統(tǒng)中執(zhí)行時(shí),造成進(jìn)行通訊方法,所述方法包括總線根直接傳送請(qǐng)求至第一周邊組件,其中所述請(qǐng)求包括讀取請(qǐng)求與存寫請(qǐng)求,所述第一周邊組件通過(guò)所述第一周邊組件的內(nèi)部橋中第一總線而接收請(qǐng)求;以及所述內(nèi)部橋決定所述請(qǐng)求的適當(dāng)路由,其中適當(dāng)路由包括針對(duì)第二周邊組件的路由請(qǐng)求,通過(guò)第二總線從所述橋直接至所述第二周邊組件的總線接口 ;以及針對(duì)第一周邊組件的路由請(qǐng)求,至所述第一周邊組件的總線接口。在實(shí)施例中,所述方法更包括第二組件,通過(guò)第三總線,直接傳送數(shù)據(jù)至所述總線根,響應(yīng)讀取請(qǐng)求。在實(shí)施例中,所述方法更包括第二周邊組件接收所述第二周邊組件的內(nèi)部橋中的請(qǐng)求。在實(shí)施例中,所述方法更包括所述第一周邊組件通過(guò)所述第二總線而傳送讀取請(qǐng)求至所述第二周邊組件;所述第二周邊組件通過(guò)所述第三總線傳送數(shù)據(jù)至所述總線根, 響應(yīng)讀取請(qǐng)求;以及所述總線根通過(guò)所述第一總線傳送所述數(shù)據(jù)至所述橋。在實(shí)施例中,所述指令包括硬件描述語(yǔ)言指令,用來(lái)產(chǎn)生應(yīng)用特定集成電路 (ASIC),進(jìn)行所述方法。上述的實(shí)施例可被實(shí)施成為編程在任何一種電路的功能,包含但不限于可編程的邏輯設(shè)備(PLDs),例如場(chǎng)可編程的柵數(shù)組(FPGAs)、可編程的數(shù)組邏輯(PAL)裝置、電性可編程的邏輯與內(nèi)存裝置,以及標(biāo)準(zhǔn)的胞元基礎(chǔ)裝置,以及應(yīng)用特定集成電路(ASICs)與完全客制集成電路。實(shí)施實(shí)施例的一些其他可能性包含具有內(nèi)存(例如電性可消除的可編程的只讀內(nèi)存(EEPROM)、快閃內(nèi)存等)微控制器、包埋的微控制器、韌件、軟件等。再者,實(shí)施例可包埋在微處理器中,所述微處理器具有軟件為基礎(chǔ)的電路仿真、分離邏輯(序列的或組合的)、客戶裝置、模糊(神經(jīng))邏輯、量子裝置以及上述任何裝置型式的組合。當(dāng)然可提供以下裝置技術(shù)在不同的組件型式中,例如金屬氧化物半導(dǎo)體場(chǎng)效晶體管(MOSFET)技術(shù),例如互補(bǔ)金屬氧化物半導(dǎo)體(CMOS)、二極技術(shù),例如發(fā)射器耦合邏輯(ECL)、聚合物技術(shù)(例如硅接合的聚合物與金屬接合的聚合物-金屬結(jié)構(gòu))、混合的模擬與數(shù)字等。本申請(qǐng)說(shuō)明書與權(quán)利要求書中使用的“處理器”一詞包含處理器核心或是處理器的一部分。再者,雖然一或多個(gè)GPU以及一或多個(gè)CPU通常在本申請(qǐng)是分別指示,但是在實(shí)施例中,GPU與CPU皆可包含在單一集成電路封包或是單一單晶粒(monolithic die)。因此,單一裝置在實(shí)施例中進(jìn)行所主張的方法。除非內(nèi)容清楚要求,否則整個(gè)說(shuō)明書與權(quán)利要求書中,“包括”與類似用詞解讀為包含的意思,相對(duì)于排除或消耗的意思;也就是“包含但不限于”的意思。單數(shù)或復(fù)數(shù)的用詞也分別包含復(fù)數(shù)或單數(shù)。除此之外,本申請(qǐng)中“此處”、“以下”、“上方”、“下方”以及類似用詞是指本申請(qǐng)整體而不是本申請(qǐng)的任何特定部分。當(dāng)“或” 一字用于參考兩個(gè)或多個(gè)項(xiàng)目時(shí),這個(gè)字涵蓋這個(gè)字所有的下列解釋、表列項(xiàng)目的任一個(gè)、表列項(xiàng)目的全部以及表列項(xiàng)目的任何組合。所述方法與系統(tǒng)的上述實(shí)施例描述不用于排除或限制本發(fā)明成為特定形式。雖然本案描述的方法與系統(tǒng)的特定實(shí)施例與范例是為了說(shuō)明本發(fā)明,熟知此技藝的人士應(yīng)理解
10在本發(fā)明范圍內(nèi)不同的均等修飾是可能的。本申請(qǐng)揭露內(nèi)容的教導(dǎo)可用于其他系統(tǒng),不只適用于上述包含制圖處理或視頻處理的系統(tǒng)。可在許多不同架構(gòu)中,進(jìn)行上述不同操作,分不可不同于以上所述。除此之外,雖然本申請(qǐng)描述許多架構(gòu),但都不是用來(lái)限制本申請(qǐng)。在其他實(shí)施例中,本申請(qǐng)所描述的一些或全部硬件與軟件功能可存在打印機(jī)、相機(jī)、電視、數(shù)字多功能碟(DVD)播放器、DVR或PVR、手持裝置、移動(dòng)電話或其他裝置。可結(jié)合上述的組件與不同實(shí)施例的作用,用來(lái)提供其他實(shí)施例。根據(jù)上述詳細(xì)說(shuō)明,可對(duì)所述方法與系統(tǒng)制造這些與其他改變。一般而言,在權(quán)力要求書中,用語(yǔ)不應(yīng)解讀為對(duì)所述方法與系統(tǒng)限制于說(shuō)明書與權(quán)利要求書中揭露的特定實(shí)施例,而是應(yīng)解讀為包含在權(quán)利要求下操作的任何處理系統(tǒng)與方法。因此,所述方法與系統(tǒng)不受限于揭露內(nèi)容,所述方法與系統(tǒng)的范圍是由權(quán)利要求書決定。雖然所述方法與系統(tǒng)呈現(xiàn)為權(quán)利要求形式,發(fā)明人在權(quán)利要求形式中考慮不同面向的所述方法與系統(tǒng)。例如,雖然所述方法與系統(tǒng)僅有一方面是主張?jiān)谟?jì)算器可讀取媒體中實(shí)施,但是其他方面也可以在計(jì)算器可讀取媒體中實(shí)施。此計(jì)算器可讀取媒體可由計(jì)算裝置(例如個(gè)人計(jì)算器、個(gè)人數(shù)字助理、PVR、移動(dòng)裝置或類似物)執(zhí)行的儲(chǔ)存指令,或是可為執(zhí)行時(shí)設(shè)計(jì)用來(lái)產(chǎn)生裝置(GPU、ASIC或類似物)的指令,或是軟件應(yīng)用,操作時(shí)進(jìn)行上述內(nèi)容。本申請(qǐng)主張的發(fā)明可實(shí)施在計(jì)算器碼(例如HDL、Verilog等),它的產(chǎn)生、儲(chǔ)存、合成與使用是用來(lái)產(chǎn)生⑶SII數(shù)據(jù)(或是它的均等物)。而后可在此數(shù)據(jù)基礎(chǔ)上,制造ASIC。因此,發(fā)明人保留權(quán)利在申請(qǐng)本案之后可增加額外的權(quán)利要求,追求所述方法與系統(tǒng)其他的權(quán)利要求形式。
權(quán)利要求
1.一種系統(tǒng),包括周邊組件連接器,耦合至周邊組件總線;以及多個(gè)周邊組件,通過(guò)多個(gè)個(gè)別傳送/接收(TX/RX)道,直接耦合至所述周邊組件連接器,因而所述多個(gè)周邊組件呈現(xiàn)在所述周邊組件總線,作為一周邊裝置耦合至所述周邊組件連接器。
2.如權(quán)利要求1所述的系統(tǒng),其中所述多個(gè)周邊組件更通過(guò)個(gè)別傳送/接收(TX/RX) 道,直接彼此耦合。
3.如權(quán)利要求1所述的系統(tǒng),其中所述多個(gè)周邊組件的至少一個(gè)周邊組件是制圖處理單元(GPU)。
4.如權(quán)利要求1所述的系統(tǒng),其中所述周邊組件連接器市周邊組件互連快送(PCIe ) 槽,以及其中所述周邊組件總線是PCIe 總線。
5.如權(quán)利要求2所述的系統(tǒng),其中所述每一個(gè)周邊組件用以接收通過(guò)所述周邊組件連接器傳送的所有數(shù)據(jù),以及決定可應(yīng)用的數(shù)據(jù)。
6.如權(quán)利要求2所述的系統(tǒng),其中每一個(gè)所述周邊組件轉(zhuǎn)送所有的所述數(shù)據(jù)至剩余的周邊組件。
7.如權(quán)利要求1所述的系統(tǒng),其中以地址為基礎(chǔ),存取每一個(gè)所述周邊組件。
8.一種多處理器方法,包括耦合多個(gè)處理器至周邊總線,通過(guò)所述總線的各自的傳送/接收(TX/RX)道組; 耦合所述多個(gè)處理器至未耦合至所述總線的所述多個(gè)處理器的彼此TX/RX道; 從所述總線至所述多個(gè)處理器,直接傳送數(shù)據(jù)至所述多個(gè)處理器,其中所述多個(gè)處理器的每一個(gè)處理器是可定地址的;以及在處理器之間,直接傳送數(shù)據(jù)。
9.如權(quán)利要求8所述的方法,其中所述多個(gè)處理器包括制圖處理單元(GPU)。
10.如權(quán)利要求8所述的方法,其中所述多個(gè)處理器包括多個(gè)GPU,以及其中所述周邊總線包括所述GPU直接耦合的周邊組件互連快送(PCIe )總線。
11.如權(quán)利要求10所述的方法,更包括通過(guò)個(gè)別的TX/RX道,耦合直接彼此通訊的所述GPU。
12.如權(quán)利要求11所述的方法,更包括GPU從所述總線接收數(shù)據(jù)以及傳送所述數(shù)據(jù)至其他GPU。
13.一種計(jì)算器可讀取的媒體,儲(chǔ)存計(jì)算器可讀取的指令,用來(lái)制造電路,所述計(jì)算器可讀取的媒體包括周邊組件連接器,耦合至周邊組件總線;以及多個(gè)周邊組件,通過(guò)多個(gè)個(gè)別的傳送/接收(TX/RX)道,直接耦合至所述周邊組件連接器,因而所述多個(gè)周邊組件出現(xiàn)在所述周邊組件總線成為一周邊裝置,耦合至所述周邊組件連接器;其中所述多個(gè)周邊組件更通過(guò)個(gè)別的傳送/接收(TX/RX)道而直接彼此耦合。
14.如權(quán)利要求13所述的計(jì)算器可讀取的媒體,其中所述指令包括硬件描述語(yǔ)言指令。
15.一種計(jì)算器可讀取的媒體,具有指令儲(chǔ)存在所述計(jì)算器可讀取的媒體上,當(dāng)在多處理器系統(tǒng)中執(zhí)行時(shí),造成進(jìn)行一種方法,所述方法包括耦合多個(gè)處理器至周邊總線,通過(guò)所述總線的個(gè)別的傳送/接收(TX/RX)道組; 耦合所述多個(gè)處理至未耦合至所述總線的所述多個(gè)處理器的彼此TX/RX道; 傳送數(shù)據(jù)至所述多個(gè)處理器,直接從所述總線至所述多個(gè)處理器,其中所述多個(gè)處理器的每一個(gè)處理器是可定地址的;以及在處理器之間,直接傳送數(shù)據(jù)。
16.如權(quán)利要求15所述的計(jì)算器可讀取的媒體,其中所述多個(gè)處理器包括制圖處理單元(GPU)。
17.如權(quán)利要求15所述的計(jì)算器可讀取的媒體,其中所述多個(gè)處理器包括多個(gè)GPU,以及其中所述周邊總線包括所述GPU直接耦合的周邊組件互連快送(PCIe )總線。
18.如權(quán)利要求17所述的計(jì)算器可讀取的媒體,所述方法更包括通過(guò)個(gè)別的TX/RX道, 耦合直接彼此通訊的GPU。
19.如權(quán)利要求18所述的計(jì)算器可讀取的媒體,所述方法更包括GPU從所述總線接收數(shù)據(jù),以及傳送所述數(shù)據(jù)至其他GPU。
全文摘要
本申請(qǐng)揭露多處理器架構(gòu)與方法的實(shí)施例。實(shí)施例提供替換使用外部橋集成電路(IC)架構(gòu)。例如,一實(shí)施例多任務(wù)周邊總線,因而多個(gè)處理器可使用一個(gè)周邊接口槽而不需要外部橋IC。實(shí)施例可使用已知的總線協(xié)議。
文檔編號(hào)G06F13/42GK102227709SQ200980147694
公開日2011年10月26日 申請(qǐng)日期2009年10月5日 優(yōu)先權(quán)日2008年10月3日
發(fā)明者M·S·格羅斯曼, S·索爾基, S·莫雷因 申請(qǐng)人:Ati技術(shù)無(wú)限責(zé)任公司, 先進(jìn)微裝置公司