專利名稱:可配置的PCI Express開關的制作方法
技術領域:
本發(fā)明一邊涉及計算設備領域,尤其涉及用于PCI Express的可配置開關,以使多個上游端口能夠連接到多個下游端口。
背景技術:
在1990年代早期,引入了外圍部件互連(PCI)標準。PCI為連接的設備提供了對系統(tǒng)存儲器的直接訪問,但是使用橋來連接到前側(cè)總線并連接到CPU。PCI能夠連接多個組件。PCI橋接芯片獨立于CPU的速度調(diào)整了PCI總線的速度,以允許更高程度的可靠性,并確保PCI硬件制造商具有一致的設計約束。PCI支持即插即用,它使設備或卡能夠被插入到計算機中,并被自動識別和配置以對系統(tǒng)起作用。
當今的軟件應用程序更需要平臺硬件,尤其是I/O子系統(tǒng)。來自各個視頻和音頻源的數(shù)據(jù)流現(xiàn)在在臺式機和移動機器上是常見的。諸如視頻點播和音頻重分發(fā)等應用程序也在服務器上施加的實時約束。PCI體系結(jié)構(gòu)已經(jīng)不再能夠應付這些需求,并且提出了一種新標準,稱為PCI Express。
參考圖1,示出了一種可包括在計算設備中的PCI Express拓樸100。該拓樸除CPU 102和存儲器103之外,包含主機橋(Host Bridge)101以及若干端點104-109(即,I/O設備)。多個點對點連接由開關110來實現(xiàn)。開關110替換PCI使用的多點總線,并用于為I/O總線提供扇出(fan-out)。開關110可提供不同端點104-109之間的對等通信,且如果該話務不涉及與高速緩存相干的存儲器傳輸?shù)脑?,它不需要被轉(zhuǎn)發(fā)到主橋101。開關101被示出為單獨的邏輯元件,但是它可被集成到主橋101中。
盡管這是對于較舊的PCI體系結(jié)構(gòu)的改進,然而它不提供在不同的計算設備間連接并共享端點的方法。由此,需要一種共享端點的系統(tǒng)和方法。這樣的系統(tǒng)將很大程度上增強計算設備的靈活性,并提供降低功率消耗的方法。本發(fā)明提供了這樣一種解決方案。
發(fā)明內(nèi)容
本發(fā)明允許多個CPU通過一個開關連接到多個I/O設備。開關可被級聯(lián),以在樹中允許更多的CPU和/或更多的I/O設備。這一配置方法對于總線和端點設備的枚舉是透明的。諸如SMBus或硬件跨接(strapping)等簡單管理輸入是設置向CPU的設備分配所需要的一切。
依照本發(fā)明的一個方面,提供了一種可配置的PCI Express開關,它包括多個上游PCI對PCI端口、多個下游PCI對PCI端口、唯一地與一上游端口相關聯(lián)的內(nèi)部PCI總線、以及配置哪一上游端口與哪一下游端口通信的控制器。
依照本發(fā)明的另一方面,提供了一種控制可配置PCI Express開關的方法。該方法包括讀取PCI配置空間寄存器、發(fā)現(xiàn)多個下游PCI對PCI橋中的一個、發(fā)現(xiàn)與多個上游PCI對PCI橋之一相關聯(lián)的總線相關聯(lián)的控制接口、以及枚舉在該總線上發(fā)現(xiàn)的設備。
依照本發(fā)明的又一方面,提供了一種連接多個CPU復合體(complex)的可配置PCI Express開關。該開關包括多個上游PCI對PI橋,其每一個唯一地連接到CPU復合體中的一個;多個下游PCI對PCI橋;多個內(nèi)部PCI總線,其每一個連接到唯一的(或單個)上游端口;以及配置哪一上游端口與哪一下游端口通信的控制器。每一下游端口連接到每一內(nèi)部PCI總線,且每一下游端口僅響應于一個內(nèi)部PCI總線。并且,控制器通過與每一CPU復合體相關聯(lián)的接口接收發(fā)現(xiàn)請求。
當結(jié)合附圖閱讀以下說明性實施例的詳細描述時,可以清楚本發(fā)明的另外的特征和優(yōu)點。
當結(jié)合附圖閱讀時,可以更好地理解本發(fā)明的以上概述以及以下較佳實施例的詳細描述。為說明本發(fā)明的目的,附圖中示出了本發(fā)明的示例性構(gòu)造;然而,本發(fā)明不限于所揭示的具體方法和手段。附圖中圖1所示是一常規(guī)個人計算機的框圖;圖2所示是依照本發(fā)明使用可配置PCI Express開關共享組件的通用系統(tǒng)的框圖;圖3所示是可配置PCI Express開關的框圖;圖4所示是配置PCI Express開關的控制接口和命令邏輯的框圖;
圖5所示是依照本發(fā)明共享組件的示例性系統(tǒng)的框圖;以及圖6-8所示是使用可配置PCI Express開關的組件共享的若干實施例的框圖。
具體實施例方式
現(xiàn)在參考圖2,示出了用于共享組件的系統(tǒng)200的綜述。當PCIExpress替代了PCI,并且多個CPU變?yōu)橛嬎阍O備中的一種標準實現(xiàn)時,標準系統(tǒng)組件的靈活配置將成為一種十分期望的特征?;诳捎玫挠布蛻贸绦蛞髣討B(tài)地重新配置一組硬件資源是對于客戶機臺式PC的期望特征。本發(fā)明提供了如用戶和應用程序所需要地配置系統(tǒng)配置的簡單控制方法。然而,本發(fā)明不限于臺式機設計,因為它可應用于采用PCI Express和類似的體系結(jié)構(gòu)的服務器和其它計算設備。
圖2示出了支持兩個上游CPU拓樸的可配置開關設計,這兩個拓樸被指定為201和215。第一系統(tǒng)拓樸201被示出為典型的PC計算機,它可包括CPU 202、圖形卡203、系統(tǒng)總線、存儲器204、芯片組(北橋205和南橋206)、存儲設備207(例如,硬盤、閃存等)、通信設備210(例如,MODEM、NIC等)、以及連接到鼠標210、鍵盤211和軟盤驅(qū)動器213的超級I/O控制器208。PCI Express總線214(1)連接到可配置PCI開關227。類似地,第二系統(tǒng)拓樸215包括CPU 216、圖形卡217、系統(tǒng)總線、存儲器218、芯片組(北橋219和南橋220)、存儲設備222、通信設備221、以及連接到鼠標224、鍵盤225和軟盤驅(qū)動器226的超級I/O控制器223。PCI Express總線214(2)連接到PCI開關227。PCI Express開關連接到I/O設備228-230。
現(xiàn)在參考圖3和4,更詳細地示出了可配置PCI開關227。在圖中,“u”表示上游端口;“P”表示PCI對PCI(P2P);“d”表示下游端口;“B0”、“B1”、“B2”表示與上游端口相關聯(lián)的PCI Express內(nèi)部PCI總線;“0”、“1”、“2”和“n”表示信號路徑或端口。
如PCI Express規(guī)范中所定義的,PCI Express開關被模型化為一組PCI對PCI(P2P)橋設備。上游P2P橋(連接到主機控制器或另一PCI總線)連接到公用的PCI總線,在該公用PCI上,該(內(nèi)部)PCI總線上找到的唯一設備是(下游)PCI對PCI橋,它進而連接到輸出上的PCI設備。因此,典型的PCI Express開關包括僅一個連接到PCI/芯片組主機控制器的上游P2P橋、內(nèi)部PCI總線以及一組下游P2P橋。
本發(fā)明有利地實現(xiàn)了一組上游PCI對PCI橋,用于擴展PCI Express點對點體系結(jié)構(gòu)的扇出的目的。如圖3所示,如由uP0 231和uP1 233所表示的n個上游P2P橋的每一個具有其自己的獨立內(nèi)部PCI總線,如由B0和B1所表示的,以及由dP0232、dP1 235和dPn 234所表示的多個下游P2P橋。較佳的是,每一下游P2P橋連接到每一內(nèi)部PCI總線。與常規(guī)的PCI Express開關不同,每一下游P2P橋是可配置的,以響應任一內(nèi)部PCI總線B0或B1的枚舉實行。
控制方法包括內(nèi)部配置控制寄存器或外部硬件跨接或其它外部配置管理接口外部控制242。控制方法定義了下游P2P橋(232、234和235)響應哪一總線。來自其它PCI總線的通信被忽略。例如,在加電序列的末端,任意方法向總線B0或B1分配資源(I/O和dPx),用于初始化配置的目的。由此,下游端口(dPx)響應于來自任一內(nèi)部總線B0或B1的周期,但不是兩者。存在物理連接,但是響應僅對總線B0或總線B1上的周期發(fā)生。
圖4是橋控制邏輯236的詳細圖示,它具有用于PCI枚舉和發(fā)現(xiàn)的其相關聯(lián)的外部總線和配置接口237,用于總線0(238)的其內(nèi)部PCI總線配置接口以及用于總線1(239)的內(nèi)部PCI總線配置接口。在設備枚舉和配置過程中,運行在CPU0 202上的作系統(tǒng)通過讀取PCI配置空間寄存器內(nèi)容發(fā)現(xiàn)設備。CPU0 202將發(fā)現(xiàn)uP0 231中找到的PCI對PCI橋。作系統(tǒng)將枚舉在總線B0上找到的設備,并發(fā)現(xiàn)與開關內(nèi)部總線B0相關聯(lián)的控制接口Ifc_B0 238。該設備具有唯一的橋標識號,它將其標識為可配置的PCI Express開關。因此,接口Ifc_B0 238與開關的內(nèi)部總線B0相關聯(lián)。它可以是B0上的配置和I/O周期的主設備或目標。CPU0 202然后將枚舉總線B0上發(fā)現(xiàn)的所有設備。
當完成之后,CPU0 202將通過Ifc_B0 238接口向開關控制器啟動一發(fā)現(xiàn)請求。控制器然后可啟動配置請求,并讀取總線B1上每一設備的配置空間,或通過Ifc_B1239向CPU 216啟動一請求,請求在總線B1上枚舉的設備。在收集了CPU0 202請求的信息之后,開關控制器將通過Ifc_B0 238向CPU0 202啟動一響應,并返回所請求的信息。因此,該機制使CPU0 202和CPU1 216都能夠確定在請求時哪些設備可用。
由外部控制237提供的外部控制接口使得以管理容量執(zhí)行的總線管理器能夠向CPU0 202或CPU1 216分配下游資源(I/O)。外部控制237通過向橋控制器邏輯236詢問有哪些設備可從配置開關的內(nèi)部總線B0和B1得到來執(zhí)行這一功能。當基于CPU/作系統(tǒng)責任來分配資源,并且當向每一上游服務器實體分配任務時,這一特征在服務器體系結(jié)構(gòu)中是特別期望的。
當CPU0 202期望分配給CPU1 216的資源時,它將通過Ifc-B0 238啟動一對當前下游(dPx)端口或端點(I/O)的請求。橋控制器邏輯236然后將啟動一對CPU1 216的請求,以釋放下游端口。如果請求被準許,則CPU1 216將默許該端點,并通過Ifc_B1 239啟動對橋控制器邏輯236的準許,以釋放下游端口(dPx)。橋控制器邏輯236然后將指令下游端口(dPx)通過開關端口控制接口執(zhí)行從B1開始的PCI Express斷開序列。當斷開時,橋控制器邏輯236將指令下游端口(dPx)通過開關端口控制接口執(zhí)行到B0的連接序列。當連接時,CPU0 202將接收一熱插拔事件,如PCI體系結(jié)構(gòu)規(guī)范中所定義的。當被通知該事件時,CPU0 202將枚舉設備并加載與其相關聯(lián)的適當驅(qū)動程序,以完成轉(zhuǎn)移。
如果CPU1 216拒絕準許請求,則CPU1 216通過Ifc_B1 239向CPU2 202啟動一消息,通知被拒絕的請求的始發(fā)者。橋控制器邏輯236通過其接口Ifc_B0 238經(jīng)由B0向CPU0 202啟動一對CPU0 202的響應,由此完成拒絕序列。
現(xiàn)在參考圖5,示出了一個示例,其中,對接的膝上PC(系統(tǒng)201)和增強的對接站(系統(tǒng)215)都共享通過可配置開關關聯(lián)的資源。當應用程序被加載到膝上PC,并且用戶期望使用當前由增強對接站拓樸配置的掃描儀來獲取照片時,膝上PC將請求掃描儀的所有者。當用戶期望打印通過掃描儀獲取的所掃描且操縱的照片時,膝上PC拓樸將請求與增強對接站相關聯(lián)的照片質(zhì)量打印機的所有者。當膝上PC脫離對接時,通過可配置開關與膝上PC相關聯(lián)的所有資源被解除關聯(lián),并且該可配置開關然后將向增強對接站重新分配資源,以在該拓樸內(nèi)使用。
圖6示出了具有多個PCI Express總線的CPU復合體如何可通過多個可配置PCI Express開關來配置以使用I/O設備。在此示例中,CPU1 216與開關SW0 227(1)和SW1 227(2)接口。任何連接到SW0和SW1的I/O設備然后可被分配到CPU1 216。在此配置中,僅SW0內(nèi)的下游P2P橋可被分配給CPU0 202,并且僅SW1內(nèi)的下游P2P橋可被分配給CPU2 214。
圖7是圖6的修改。并非在多個開關之間共享帶寬,圖7相反示出了使用可從CPU1 216對兩個開關可獲得的全帶寬。
圖8是能夠訪問兩個開關SW0和SW1內(nèi)的所有資源的三個CPU復合體202、216和241的又一示例。盡管圖8是開關可伸縮性的另一示例,然而它在示出添加上游CPU復合體的相關聯(lián)的內(nèi)部開關復合體中也是有用的。此外,盡管看似這一多個上游P2P橋的實現(xiàn)消耗了下游橋,然而這并不是下游P2P橋比上游橋更容易添加到設計的情況。
盡管結(jié)合各附圖的較佳實施例描述了本發(fā)明,然而可以理解,在不脫離本發(fā)明的的情況下,可以使用其它相似的實施例,或可以向描述的實施例作出修改和添加,以執(zhí)行本發(fā)明的相同功能。例如,本領域的技術人員將認識到,本申請中描述的本發(fā)明可應用于任一計算設備或環(huán)境,不論是有線還是無線的,并且可應用于通過通信網(wǎng)絡連接并通過網(wǎng)絡交互的任意數(shù)量的這類計算設備。此外,應當強調(diào),考慮各種計算機平臺,包括手持式設備操作系統(tǒng)和其它應用專用操作系統(tǒng),尤其是當無線聯(lián)網(wǎng)設備的數(shù)量持續(xù)增長的時候。再者,本發(fā)明可以在多個處理芯片或設備內(nèi)或跨多個處理芯片或設備實現(xiàn),并且存儲可以類似地跨多個設備實現(xiàn)。因此,本發(fā)明不應當限于任何單個實施例,而是相反,應當依照所附權(quán)利要求書的寬度和范圍來解釋。
權(quán)利要求
1.一種可配置PCI Express開關,其特征在于,包括多個上游PCI對PCI端口;多個下游PCI對PCI端口;與每一上游端口相關聯(lián)的內(nèi)部PCI;以及配置哪一上游端口與哪一下游端口通信的控制器。
2.如權(quán)利要求1所述的開關,其特征在于,與所述上游端口的預定一個通信的CPU是可配置的,以與所述下游端口的任一個通信。
3.如權(quán)利要求2所述的開關,其特征在于,每一所述內(nèi)部PCI總線連接到每一下游端口。
4.如權(quán)利要求2所述的開關,其特征在于,所述CPU通過讀取PCI配置空間寄存器發(fā)現(xiàn)設備,并枚舉在與所述CPU相關聯(lián)的PCI總線上找到的設備,其中,所述設備連接到與所述上游端口的預定一個通信的下游端口。
5.如權(quán)利要求4所述的開關,其特征在于,如果第二CPU請求對向所述CPU枚舉的設備的訪問,則所述控制器啟動對所述CPU的請求,以釋放所述設備所連接的下游端口,以及其中,如果所述請求被準許,則所述CPU默許所述設備,并啟動對所述控制器的準許,以釋放下游端口。
6.如權(quán)利要求5所述的開關,其特征在于,所述控制器指令所述下游端口執(zhí)行從與所述CPU相關聯(lián)的所述總線的斷開序列,并且所述控制器指令下游端口執(zhí)行向與所述第二CPU相關聯(lián)的總線的連接序列。
7.如權(quán)利要求1所述的開關,其特征在于,一內(nèi)部配置控制寄存器用于定義所述下游端口的每一個響應于哪一內(nèi)部總線。
8.如權(quán)利要求1所述的開關,其特征在于,硬件跨接用于定義所述下游端口的每一響應于哪一內(nèi)部總線。
9.如權(quán)利要求1所述的開關,其特征在于,提供一外部配置管理接口,用于一外部配置管理實體的配置控制。
10.如權(quán)利要求1所述的開關,其特征在于,每一下游端口連接到每一內(nèi)部PCI總線,并且其中,每一下游端口僅響應于一個內(nèi)部PCI總線。
11.一種控制可配置PCI Express開關的方法,其特征在于,包括讀取PCI配置空間寄存器;發(fā)現(xiàn)多個下游PCI對PCI橋的一個;發(fā)現(xiàn)用于與所述多個上游PCI對PCI橋的所述一個相關聯(lián)的總線的控制接口;以及枚舉在所述總線上發(fā)現(xiàn)的設備。
12.如權(quán)利要求11所述的方法,其特征在于,還包括通過接口啟動對控制器的發(fā)現(xiàn)請求;讀取所述總線上每一設備的配置空間;以及通過所述接口響應,以返回所述發(fā)現(xiàn)請求所請求的信息。
13.如權(quán)利要求11所述的方法,其特征在于,還包括向多個CPU之一分配下游資源,每一所述CPU與所述多個上游PCI對PCI橋的所述一個相關聯(lián)。
14.如權(quán)利要求13所述的方法,其特征在于,還包括查詢一控制器,以確定哪些設備被分配給與所述多個上游PCI對PCI橋的所述一個相關聯(lián)的所述總線。
15.如權(quán)利要求11所述的方法,其特征在于,如果第一CPU請求對向第二CPU枚舉的設備的訪問,則一控制器啟動對所述第二CPU的請求,以釋放所述設備所連接的下游端口,以及其中,如果所述請求被準許,則所述第二CPU默許所述設備,并啟動對所述控制器的準許,以釋放下游端口。
16.如權(quán)利要求15所述的方法,其特征在于,所述控制器指令所述下游端口執(zhí)行從與所述CPU相關聯(lián)的所述總線的斷開序列,并且所述控制器指令下游端口執(zhí)行到與所述CPU相關聯(lián)的總線的連接序列。
17.一種連接多個CPU復合體的可配置PCI Express開關,其特征在于,包括多個上游PCI對PCI端口,每一上游端口連接到所述CPU復合體的一個;多個下游PCI對PCI端口;多個內(nèi)部PCI總線,每一內(nèi)部PCI總線連接到一相應的上游端口;以及配置哪一上游端口與哪一下游端口通信的控制器,其中,每一下游端口連接到每一內(nèi)部PCI總線,并且其中,每一下游端口僅響應于一個內(nèi)部PCI總線,以及其中,所述控制器通過一與每一CPU復合體相關聯(lián)的接口接收發(fā)現(xiàn)請求。
18.如權(quán)利要求17所述的開關,其特征在于,與所述上游端口的預定一個通信的CPU是可配置的,以與所述下游端口的任一個通信。
19.如權(quán)利要求17所述的開關,其特征在于,如果CPU請求對向第二CPU枚舉的設備的訪問,則所述控制器啟動對所述第二CPU的請求,以釋放所述設備所連接的下游端口,以及其中,如果所述請求被準許,則所述第二CPU默許所述設備,并啟動對所述控制器的準許,以釋放下游端口。
20.如權(quán)利要求19所述的開關,其特征在于,所述控制器指令所述下游組件執(zhí)行從與所述第二CPU相關聯(lián)的所述總線的斷開序列,并且所述控制器指令下游組件執(zhí)行到與所述CPU相關聯(lián)的總線的連接序列。
全文摘要
一種使多個CPU能夠通過單個開關連接到多個I/O設備的可配置開關。該開關可以被級聯(lián),以允許樹中更多的CPU和/或更多的I/O。配置對總線和端點設備的枚舉是透明的。諸如SMBus或硬件跨接等簡單管理輸入用于設置對CPU的設備分配。使用管理器和PCI Express熱插拔控制器寄存器在設備通過開關內(nèi)的PCI總線在CPU之間切換時允許設備樹的熱插拔重新配置。
文檔編號G06F13/42GK1694079SQ20051007005
公開日2005年11月9日 申請日期2005年4月28日 優(yōu)先權(quán)日2004年4月28日
發(fā)明者K·W·斯特夫爾比姆 申請人:微軟公司