TW201732620A - 扁平化入口橋接器 - Google Patents
扁平化入口橋接器 Download PDFInfo
- Publication number
- TW201732620A TW201732620A TW106101848A TW106101848A TW201732620A TW 201732620 A TW201732620 A TW 201732620A TW 106101848 A TW106101848 A TW 106101848A TW 106101848 A TW106101848 A TW 106101848A TW 201732620 A TW201732620 A TW 201732620A
- Authority
- TW
- Taiwan
- Prior art keywords
- fpb
- bus
- devices
- address
- addressing scheme
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4022—Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4027—Coupling between buses using bus bridges
- G06F13/404—Coupling between buses using bus bridges with address mapping
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4063—Device-to-bus coupling
- G06F13/4068—Electrical coupling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4204—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
- G06F13/4221—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0024—Peripheral component interconnect [PCI]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0026—PCI express
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Mathematical Physics (AREA)
- Information Transfer Systems (AREA)
- Bus Control (AREA)
Abstract
提供一種扁平化入口橋接器(FPB)以支援根據第一定址方案及第二替代定址方案而進行定址。該FPB包含主要側及次要側,該主要側與根據第一定址方案而被定址的第一組裝置連接,並且該次要側與根據第二定址方案而被定址的第二組裝置連接。該第一定址方案針對在該第一組裝置中的各裝置使用匯流排/裝置/功能(BDF)位址空間內的一獨特匯流排號碼,並且該第二匯流排定址方案針對在該第二組裝置中的各裝置使用一獨特匯流排裝置號碼。
Description
發明領域 本揭示案涉及計算系統,並且尤其(但是並非唯一地)涉及位址空間映射。
發明背景 周邊組件互連(PCI)組態空間由使用PCI、PCI-X及高速PCI(PCIe)之系統利用以便執行基於PCI之裝置的組態任務。基於PCI之裝置具有被稱為組態空間的用於裝置組態暫存器之位址空間並且高速PCI為裝置提供擴展的組態空間。組態空間暫存器通常藉由主處理器來映射至記憶體映射輸入/輸出位置。裝置驅動程式、作業系統及診斷軟體存取組態空間並且可在組態空間暫存器上讀取並寫入資訊。
PCI區域匯流排所具有的超過其他I/O架構的改良之一係其組態機制。除了正常記憶體映射及I/O埠空間以外,匯流排上之每個裝置功能具有256個位元組長度之組態空間,該組態空間可藉由知道裝置之八位元PCI匯流排、五位元裝置及三位元功能號碼(通常被稱為BDF或B/D/F,如從匯流排/裝置/功能縮寫得來)來定址。此允許多達256個匯流排,每個匯流排具有多達32個裝置,每個裝置支援八個功能。單一PCI擴展卡可作為裝置來作出反應並且可實行至少功能號碼零。組態空間之前64個位元組經標準化;其餘部分係可利用之規範定義擴展及/或用於供應商定義用途。
為了允許將組態空間之更大部分加以標準化而不與現有用途相衝突,可存在在周邊組件介面組態空間之上部192個位元組內定義之能力之列表。每個能力具有一個位元組描述其為哪一個能力,以及一個位元組指向下一個能力。額外位元組之數目取決於能力ID。若正在使用多個能力,則在狀態暫存器中設定一個位元,並且提供指向所鏈接的能力列表中第一者之指標。已經提供具有類似特徵的PCIe之多個版本,該等特徵包括擴展組態空間,其擴增至4096個位元組之組態空間之總大小,以及諸如PCIe擴展能力結構。
依據本揭示的一個實施例,係特地提出一種包含至少一個機器可存取儲存媒體的集合,該儲存媒體具有指令儲存在上之,該等指令在一機器上執行時,導致該機器進行下列動作:識別一系統中的複數個裝置,其中,該等複數個裝置中之各裝置係藉由複數個邏輯匯流排中之至少一個邏輯匯流排分別在該系統中連接;將一位址分別指派給該等複數個裝置中之各者,其中,將一位址指派至一裝置的動作包含:判定要根據一第一定址方案或一第二匯流排定址方案來指派該位址,其中,該第一定址方案將在一匯流排/裝置/功能(BDF)位址空間內的一獨特匯流排號碼指派給會在該第一定址方案中定址的各個裝置,並且該第二匯流排定址方案指派在該BDF位址空間內的一獨特匯流排裝置號碼。
較佳實施例之詳細說明 在以下描述中,闡述眾多特定細節,諸如特定類型之處理器及系統組態、特定硬體結構、特定架構及微架構細節、特定暫存器組態、特定指令類型、特定系統組件、特定量測/高度、特定處理器管線階段及操作等之實例,以便提供對當前技術的詳盡理解。然而,熟習此項技術者顯而易知此等具體細節不一定用於實踐本發明。在其它情況下,熟知組件或方法,如具體及替代處理器架構、所描述演算法之具體邏輯電路/代碼、具體韌體代碼、具體互連操作、具體邏輯組配、具體製造技術及材料、具體編譯器實行方案、演算法以代碼來具體表示、具體減低功率消耗及門控技術/邏輯及電腦系統之其他具體操作細節未詳細描述以便避免不必要地使本發明模糊。
儘管可參考特定積體電路,諸如計算平台或微處理器中之能量節省及能量效率來描述以下實施例,但其他實施例適用於其他類型的積體電路及邏輯裝置。本文所述之實施例的類似技術及教示可應用於亦可受益於更好之能量效率及能量節省的其他類型之電路或半導體裝置。舉例而言,所揭示實施例不限於桌上型電腦系統或Ultrabooks™。且亦可用於其他裝置中,諸如手持型裝置、平板電腦、其他薄型筆記型電腦、系統單晶片(SOC)裝置及嵌入式應用。手持裝置之一些實例包括行動電話、網際網路協定裝置、數位攝影機、個人數位助理(PDA)及手持PC。嵌入應用通常包括微控制器、數位信號處理器(DSP)、系統單晶片、網路電腦(NetPC)、機上盒、網路集線器、廣域網路(WAN)交換機或可執行以下教示之功能及操作的任何其他系統。此外,本文所述之設備、方法及系統不限於實體計算裝置,而亦可與針對能量節省及效率之軟體最佳化相關。
隨著計算系統進步,其中之組件正變得更複雜。結果,在組件之間耦接及通訊之互連架構亦在複雜性方面增加,以確保頻寬要求針對最佳組件操作得以滿足。此外,不同的市場區隔需要互連架構之不同態樣來適合市場需求。舉例而言,伺服器需要較高效能,而行動生態系統有時能夠犧牲總效能以供功率節約。然而,大多數組構之單一目的為藉由最大功率節約提供最高可能的效能。下文中,數個互連體得以論述,此情況將可能受益於本文所述之技術的態樣。
一種互連組構架構包括高速周邊組件互連(PCI)(PCIe)架構。PCIe之主要目標係使得來自不同供應商之組件及裝置能夠在開放架構中交互運作,該開放架構橫跨多個市場區隔;客戶端(桌上型電腦及行動客戶端)、伺服器(標準及企業)及嵌入及通訊裝置。高速PCI係經定義用於多種未來計算及通訊平台的高效能、通用I/O互連。一些PCI屬性,諸如PCI之使用模型、負荷-儲存架構及軟體介面經由對其進行修訂來維護,而先前並列匯流排實行方案已被替換為高度可擴充、完全串列介面。最新版本之高速PCI利用點對點互連、基於交換器之技術及分封化協定之進步來提供新的效能水準及特徵。功率管理、服務品質(QoS)、熱插入/熱調換支援、資料完整性及錯誤處置係由高速PCI支援的一些進階特徵。
參看圖1,例示一種組構之實施例,該組構由將一組組件加以互連的點對點鏈接組成。系統100包括處理器105及耦接至控制器集線器115之系統記憶體110。處理器105包括任何處理元件,諸如微處理器、主處理器、嵌入處理器、共處理器或其他處理器。處理器105經由前側匯流排(FSB)106耦接至控制器集線器115。在一實施例中,FSB 106係如下所述之串列點對點互連。在另一實施例中,鏈接106包括符合不同互連標準的串列、差動互連架構。
系統記憶體110包括任何記憶體裝置,諸如隨機存取記憶體(RAM)、非依電性(NV)記憶體或可由系統100中之裝置存取的其他記憶體。系統記憶體110經由記憶體介面116耦接至控制器集線器115。記憶體介面之實例包括雙倍資料速率(DDR)記憶體介面、雙通道DDR記憶體介面及動態RAM(DRAM)記憶體介面。
在一實施例中,控制器集線器115係高速周邊組件互連(PCIe或PCIE)互連階層中之根集線器、根複合體或根控制器。控制器集線器115之實例包括晶片組、記憶體控制器集線器(MCH)、北橋、互連控制器集線器(ICH)南橋及根控制器/集線器。通常,晶片組一詞指代兩個實體上分離之控制器集線器,亦即,耦接至互連控制器集線器(ICH)之記憶體控制器集線器(MCH)。注意當前系統經常包括與處理器105整合之MCH,同時控制器115以如下所述之類似方式與I/O裝置通訊。在一些實施例中,選擇性地經由根複合體115來支援對等選路。
此處,控制器集線器115經由串列鏈接119耦接至交換器/橋接器120。亦可被稱為介面/埠117及121的輸入/輸出模組117及121包括/實行分層協定堆疊以在控制器集線器115與交換器120之間提供通訊。在一實施例中,多個裝置能夠耦接至交換器120。
交換器/橋接器120將來自裝置125之封包/訊息向上游,亦即,向上沿著階層朝向根複合體依路由傳遞至控制器集線器115並且向下游,亦即,向下沿著階層遠離根控制器,從處理器105或系統記憶體110依路由傳遞至裝置125。在一個實施例中,交換器120被稱為多個虛擬PCI至PCI橋接器裝置之邏輯組合件。裝置125包括耦接至電子系統之任何內部或外部裝置或組件,諸如I/O裝置、網路介面控制器(NIC)、附加卡、音訊處理器、網路處理器、硬碟機、儲存裝置、CD/DVD ROM、監視器、列印機、滑鼠、鍵盤、路由器、可攜儲存裝置、火線裝置、通用串列匯流排(USB)裝置、掃描儀及其他輸入/輸出裝置。通常在PCIe行話中,該等裝置被稱為端點。雖然未具體示出,裝置125可包括PCIe至PCI/PCI-X橋接器以支援舊式或其他版本PCI裝置。PCIe中之端點裝置經常分類為舊式、PCIe或根複合體整合端點。
圖形加速器130亦經由串列鏈接132耦接至控制器集線器115。在一實施例中,圖形加速器130耦接至MCH,該MCH耦接至ICH。然後,交換器120及相應地I/O裝置125耦接至ICH。I/O模組131及118亦實行分層協定堆疊以便在圖形加速器130與控制器集線器115之間通訊。與以上論述之MCH類似,圖形控制器或圖形加速器130本身可整合在處理器105中。
轉向圖2,例示分層協定堆疊之實施例。分層協定堆疊200包括任何形式之分層通訊堆疊,諸如快速通道互連(QPI)堆疊、PCIe堆疊、下一代高效能計算互連堆疊或其他分層堆疊。雖然直接在以下參照圖1-4之論述與PCIe堆疊有關,但是相同概念可應用於其他互連堆疊。在一實施例中,協定堆疊200係PCIe協定堆疊,包括交易層205、鏈接層210及實體層220。介面,諸如圖1中之介面117、118、121、122、126及131,可表示為通訊協定堆疊200。表示為通訊協定堆疊亦可被稱為實行/包括協定堆疊之模組或介面。
高速PCI使用封包在組件之間傳達資訊。封包在交易層205及資料鏈接層210中形成以便將資訊從傳輸組件攜載至接收組件。當所傳輸的封包流經其他層時,該等封包用在彼等層中處置封包所需要的額外資訊來擴展。在接收側處,發生反向過程並且封包從其實體層220表示轉換成資料鏈接層210表示並且最終(對於交易層封包而言)轉換成可由接收裝置之交易層205處理的形式。交易層
在一實施例中,交易層205在裝置之處理核心與互連架構之間提供介面,該互連架構諸如資料鏈接層210及實體層220。在此方面,交易層205之基本責任係組裝並拆開封包(即,交易層封包或TLP)。轉譯層205通常管理TLP的基於信用之流量控制。PCIe實行分裂交易,亦即,交易的請求與反應隔開一定時間,從而允許在目標裝置收集用於反應之資料的同時鏈接可執行其他訊務。
另外,PCIe利用基於信用之流量控制。在此方案中,裝置針對交易層205中之接收緩衝器中之每一者公佈初始信用量。在鏈接之相反末端處之外部裝置,諸如圖1中之控制器集線器115,計數由每個TLP消耗的信用之數量。若交易不超過信用額度,則可傳輸交易。在收到反應後,恢復信用量。信用方案之優點係信用返回之潛時不影響效能,限制條件為不觸及信用額度。
在一實施例中,四種交易位址空間包括組態位址空間、記憶體位址空間、輸入/輸出位址空間及訊息位址空間。記憶體空間交易包括將資料傳遞至記憶體映射位置/傳遞來自記憶體映射位置之資料的讀取請求及寫入請求中之一或多者。在一實施例中,記憶體空間交易能夠使用兩個不同位址格式,例如,短位址格式,諸如32-位元位址,或長位址格式,諸如64-位元位址。組態空間交易用於存取PCIe裝置之組態空間。組態空間之交易包括讀取請求及寫入請求。訊息交易被定義為支援PCIe代理者之間之帶內通訊。
因此,在一個實施例中,交易層205組裝封包標頭/酬載156。當前封包標頭/酬載之格式可見於PCIe規範網站之PCIe規範。
迅速參看圖3,例示PCIe交易描述符之實施例。在一實施例中,交易描述符300係攜載交易資訊之機制。在此方面,交易描述符300支援系統中之交易之識別。其他可能用途包括追蹤預設交易排序之變化及交易與通道之關聯。
交易描述符300包括總體識別符欄位302、屬性欄位304及通道識別符欄位306。在例示實例中,總體識別符欄位302被描繪為包含局部交易識別符欄位308及來源識別符欄位310。在一實施例中,總體交易識別符302對於所有未處理請求而言係獨特。
根據一個實行方案,局部交易識別符欄位308係由請求代理者所產生的欄位,並且其對於需要針對該請求代理者來加以完成的所有未處理請求而言係獨特。此外,在此實例中,來源識別符310唯一地識別PCIe階層內之請求代理者。因此,與來源ID 310一起,局部交易識別符308欄位提供階層域內之交易的總體識別。
屬性欄位304指定交易之特性及關係。在此方面,屬性欄位304可能用於提供允許修改交易之預設處置的額外資訊。在一實施例中,屬性欄位304包括優先級欄位312、保留欄位314、排序欄位316及無監聽欄位318。此處,優先級子欄位312可由啟動程式修改以便向交易指派優先級。保留屬性欄位314保留用於未來或供應商定義用途。使用優先級或安全屬性之可能使用模型可使用保留屬性欄位來實行。
在此實例中,排序屬性欄位316用於提供告知排序類型的任擇資訊,該排序類型可修改預設排序規則。根據一個示例性實行方案,排序屬性「0」表示應用預設排序規則,其中排序屬性「1」表示不嚴格的排序,其中寫入可使寫入在相同方向上傳送,並且讀取完成可使寫入在相同方向上傳送。監聽屬性欄位318用於判定是否交易被監聽。如示出,通道ID欄位306識別交易所關聯的通道。鏈接層
亦被稱為資料鏈接層210的鏈接層210充當交易層205與實體層220之間的中間階段。在一實施例中,資料鏈接層210之責任係提供在鏈接之兩個組件之間交換交易層封包(TLP)的可靠機制。資料鏈接層210之一側接收由交易層205組裝之TLP,應用封包序列識別符211,即,識別號碼或封包號碼,計算並應用錯誤偵測碼,即,CRC 212,並且將經修改之TLP提交至實體層220越過實體傳輸至外部裝置。實體層
在一實施例中,實體層220包括邏輯子區塊221及電氣子區塊222用於將封包在實體上傳輸至外部裝置。此處,邏輯子區塊221負責實體層221之「數位」功能。在此方面,邏輯子區塊包括用於準備傳出資訊以便藉由實體子區塊222傳輸的傳輸區段,以及用於在將所接收的資訊傳送至鏈接層210之前對該資訊進行識別並加以準備的接收器區段。
實體區塊222包括發射器及接收器。藉由邏輯子區塊221向發射器供應符號,發射器將該等符號串聯化並傳輸至外部裝置。向接收器供應來自外部裝置之串聯化符號並且將所接收的信號轉換成位元流。將位元流去串聯化並且供應至邏輯子區塊221。在一實施例中,使用8b/10b傳輸代碼,其中十位元符號得以傳輸/接收。此處,特殊符號用於以訊框223將封包裝框。另外,在一個實例中,接收器亦提供從傳入串列流恢復的符號時脈。
如上所述,雖然交易層205、鏈接層210及實體層220參照PCIe協定堆疊之特定實施例來論述,但是分層協定堆疊不限於此。事實上,可包括/實行任何分層協定。舉例而言,表示為分層協定之埠/介面包括:(1)用於組裝封包之第一層,即,交易層;用於將封包排序之第二層,即,鏈接層;及用於傳輸封包之第三層,即,實體層。作為特定實例,利用常用標準介面(CSI)分層協定。
接下來參看圖4,例示PCIe串列點對點組構之實施例。雖然例示PCIe串列點對點鏈接之實施例,但是串列點對點鏈接不限於此,因為其包括用於傳輸串列資料之任何傳輸路徑。在示出之實施例中,基本PCIe鏈接包括兩個低電壓差異驅動信號對:傳輸對406/411及接收對412/407。因此,裝置405包括將資料傳輸至裝置410之傳輸邏輯406及接收來自裝置410之資料的接收邏輯407。換言之,兩個傳輸路徑,即,路徑416及417,及兩個接收路徑,即,路徑418及419,包括在PCIe鏈接中。
傳輸路徑指代用於傳輸資料之任何路徑,諸如輸電線、銅線、光學線、無線通訊通道、紅外通訊鏈接或其他通訊路徑。兩個裝置諸如裝置405與裝置410之間之連接被稱為鏈接,諸如鏈接415。鏈接可支援一個訊道–每個訊道表示一組差動信號對(一個對用於傳輸,一個對用於接收)。為了調整頻寬,鏈接可聚集由xN指示的多個訊道,其中N為任何支援鏈接寬度,諸如1、2、4、8、12、16、32、64或更寬。
差動對指代傳輸差動信號的兩個傳輸路徑,諸如線路416及417。舉例而言,當線路416從低電壓位準切換至高電壓位準,即,處於上升邊緣時,線路417從高邏輯位準驅動至低邏輯位準,即,處於下降邊緣。差動信號可能展現更好的電氣特性,諸如更好的信號完整性,即,交互耦合、電壓上沖/下沖、振鈴等。此允許更好的計時窗口,從而能夠實現更快的傳輸頻率。
新的及不斷增長的使用模型,諸如基於PCIe之儲存陣列及Thunderbolt,正在推動PCIe階層深度及寬度之顯著增加。高速PCI(PCIe)架構基於PCI,該PCI定義「組態空間」,系統韌體及/或軟體在該組態空間中發現功能並且對該等功能進行啟用/停用/控制。此空間內之定址基於16位元位址(通常被稱為「BDF」,或匯流排裝置功能號碼),該位址由8位元匯流排號碼、5位元裝置號碼及3位元功能號碼組成。在PCIe中,匯流排號碼可指代邏輯,而非實體匯流排。除了用於定址組態空間中之PCI功能,以及出於諸如錯誤報告及IO虛擬化之目的來識別特定功能以外,空間本身可被視為一種類型的資源,該資源與其他資源類似地會受到分配及管理問題的影響。
PCI允許系統提供多個獨立BDF空間,該等空間被稱為「區隔」。每個區隔可具有某些資源需求,諸如用於產生PCI/PCIe組態請求之機制,包括在PCIe規範中定義之增強組態存取機制(ECAM)。另外,輸入/輸出(I/O)記憶體管理單元(IOMMU)(諸如Intel VT-d)可將BDF空間作為索引來使用,但是可未被組配來直接理解區隔。因此,在一些情況下,對於在系統中定義之每個區隔,將單獨ECAM及IOMMU加以複製。圖5例示包括多個區隔(例如,505a-c)之系統之實例。例如,在此實例中,對於連接至根複合體525之三個交換器510、515、520中之每一者,定義區隔。在此實例中,可在根複合體525處實行單獨IOMMU及ECAM(例如,530a-c)以便促進區隔(例如,505a-c)中之每一者。此外,在此實例中,各種端點(EP)連接至每個區隔中之不同匯流排。在一些情況下,區隔之組態空間可針對可能熱插入事件來保留多個匯流排位址,從而限制在每個區隔內可利用之匯流排位址之總數。更進一步,在區隔中之一或多者中分配匯流排號碼可根據以下演算法,該演算法本身很少涉及緊密地填充位址並且緊湊地使用可利用的匯流排位址空間。此可導致在一些情況下浪費組態位址(即,BDF)空間。
傳統PCIe系統被組配來以一定方式來指派位址空間,該方式在應用於現代及新興使用案例時,傾向於低效率地使用BDF空間,尤其是匯流排號碼。雖然相對很少實行方案可實際上涉及耗盡所有64K唯一BDF值(例如,在PCIe下定義)的單一系統,但是深階層例如像在PCIe交換器之深階層中出現的深階層,可很快地用完可利用的匯流排號碼。另外,在支援熱插入之應用中,大部分BDF空間可通常予以保留以便用於未來可能用途(即,在未來裝置熱插入至系統時),從系統立即可使用之池中拿走額外份額的匯流排號碼。雖然可採用區隔機制來解決此問題,但是區隔本身具有不佳定標,因為如以上提及,額外硬體資源(例如,IOMMU)建置於CPU、平台控制器集線器(PCH)、系統單晶片(SoC)、根複合體等中以便支援每個區隔。因此,使用區隔來解決深階層導致為了滿足最壞情況系統需求而將系統定標,該最壞情況系統需求通常比大多數系統所需要的系統需求大得多,導致平台資源之顯著浪費。此外,區隔可難以(並且在一些情況下,基本上不可能)在系統之根複合體外部建置。
在一些實行方案中,可提供系統來實現BDF空間之更有效使用並且解決至少一些上述示例性問題。此可允許將PCIe、Thunderbolt、系統單晶片組構(例如,Intel晶片上系統組構(IOSF)及其他組構)及其他互連擴展至非常大的拓撲結構,但是不需要根複合體中之專用資源,而唯一地依賴於區隔或其他替代物的解決方案則需要根複合體中之專用資源。圖6例示根據示例性PCIe BDF指派來將匯流排號碼指派至系統內之匯流排的示例性指派。在此實例中,具有直接連接至根複合體615之兩個裝置605、610及兩個基於交換器之階層(對應於交換器620、625)的系統以大約可能最密集的匯流排號碼分配來進行列舉,該等匯流排號碼分配使用習知BDF指派(如藉由圓形標記(例如,650a-d等)來指明)。在深階層中,單一BDF空間中之可利用匯流排號碼可迅速地耗盡。此外,真實世界系統通常很不有效地分配匯流排號碼,導致BDF空間中之稀疏(或「浪費」)分配。
支援熱添加/移除之使用案例諸如Thunderbolt及在一些情況下基於PCIe之儲存器的另一個問題係將BDF空間中之匯流排號碼分配加以「再平衡」以便解決在運行系統中發生的硬體拓撲變化。然而,對於系統軟體而言,再平衡可能很難進行,因為在典型情況下,與再平衡有關的所有PCI功能然後被強制進入靜止狀態以便允許由系統來重新列舉BDF空間,隨後重新啟用PCI功能。然而,此過程可相當緩慢,並且通常導致系統凍結持續可能非常長的時間(例如,長得足以破壞運行中的應用程式,並且最終用戶可看見)。亦可提供經改良之系統以縮短為了應用經修正之BDF空間所耗費的時間以使得再平衡過程可在百分之幾毫秒或更快的時間內執行並且不明顯地將PCI功能置於靜止狀態中。最後,非常大系統或具有用於支援多個根複合體之(專屬)機制的系統可被定義為需要使用區隔。
如以上介紹,扁平化入口橋接器(FPB)可為任擇機制,該機制可用於解決至少一些上述示例性問題,包括改良匯流排/裝置/功能(BDF)及記憶體-映射IO(MMIO)空間之可擴縮性及執行時間再分配。「BDF空間」之概念與組態位址空間有關,但是經過普遍化而使人們認識到BDF係請求者及完成者ID、完成過程之選路的基礎,並且可在除了組態請求之選路以外的多種機制中充當要素。對於與上游埠相關聯之功能,BDF空間位址之功能號碼部分(例如,3-位元功能號碼)可藉由上游埠硬體之結構來判定,而匯流排及裝置號碼部分可藉由高於上游埠之下游埠來判定。示例性FPB可保持現有架構,其中上游埠判定在BDF之3位元功能號碼部分內之功能之映射,並且僅在13位元匯流排/裝置號碼部分內操作。在此等情況下,「BD空間」可指代BDF之13位元匯流排/裝置號碼部分。此處,MMIO可具體指代經由根埠、交換器埠或邏輯橋接器來傳送之記憶體讀取及寫入請求,其中FPB能力提供用於判定此等請求之位址解碼的額外機制。實行FPB能力之橋接器本身亦可被稱為FPB。
圖7A係例示在系統內之一或多個交換器之每個埠處提供FPB邏輯的簡化方塊圖。一些交換器可不包括FPB邏輯並且僅支援根據習知BDF或MMIO空間分配之匯流排列舉。此外,根複合體705之埠亦可包括FPB邏輯,諸如被設計來可能支援動態案例熱插入或靈活地支援各種架構(例如,此等情形未在設計根複合體時予以預定義)的埠,以及其他實例。此外,根複合體705之一些埠可省略FPB邏輯,諸如被設計來支援靜態案例之埠,諸如在圖7A之實例中的連接至端點710、715之埠,以及其他實例。
在擁有FPB邏輯之每個埠處,可啟用或停用FPB邏輯。FPB邏輯可在硬體、韌體及/或軟體中實行以支援使用「扁平」方法來指派BDF或MMIO空間。舉例而言,可向將交換器、端點及根複合體互連之每個匯流排指派獨特匯流排號碼(例如結合圖6論述),並且數個裝置能夠藉由在每個匯流排號碼下之32個可能裝置號碼中之一相應者來定址,並且數個可能功能號碼能夠藉由在每個裝置號碼下之8個可能功能號碼中之一相應者來定址。經由FPB之扁平化可允許至少一些匯流排藉由匯流排裝置(BD)號碼組合(而非獨特匯流排號碼)來唯一地定址,將獨特可能匯流排位址之最大數目從256個(在傳統PCIe匯流排號碼列舉下)擴展至8192個(在BD匯流排列舉下)。因此,在FPB下,匯流排號碼可重新用於多個不同匯流排,儘管其中每個匯流排號碼具有獨特BD號碼(即,BD之匯流排號碼部分係相同的,但是在匯流排號碼下之裝置號碼係不同的)。系統之一些分支可利用習知匯流排定址(例如,藉由BDF匯流排號碼),而其他分支利用基於FPB之定址。事實上,可使用混合匯流排列舉方案,結果仍然是在系統內使用獨特匯流排位址。
轉向圖7B係簡化方塊圖,該方塊圖例示FPB邏輯區塊之示例性實行方案之高階架構(諸如在圖7A之實例中示出之埠處例示)。可經由每個FPB模組來提供1型橋接器功能。橋接器功能可支援舊式封包解碼/選路機制(例如,習知PCIeBDF解碼及選路)以及FPB封包解碼/選路機制。
FPB改變交換器消耗BDF資源之方式以便減少浪費,此改變係藉由使在交換器內部以及藉由下游埠使用匯流排號碼的方式「扁平化」來實現的。FPB定義系統軟體分配非連續範圍中之BDF及MMIO資源的機制,使得系統軟體能夠指派BDF/MMIO之池,FPB可將來自該池之「區間」分配至FPB下方之功能。此允許系統軟體在無需再平衡其他已經指派之資源範圍的情況下對裝置熱添加所需要的BDF/MMIO進行指派,並且將例如藉由熱移除事件而釋放之資源送回至池。FPB定義允許舊式及新機制同時操作,以使得例如系統韌體/軟體可實行一種策略,其中舊式機制繼續在系統的可不需要FPB機制的部分中得以使用。在圖7B之實例中,當給定TLP被解碼為與橋接器之次要側相關聯時,解碼邏輯可被假定為提供『1』輸出。可如以前一樣來應用舊式解碼機制,因此例如僅BDF位址之匯流排號碼部分(位元15:8)可藉由舊式BDF解碼邏輯來測試,以及其他實例。
如在圖8之實例中例示,FPB邏輯之實例可包括舊式封包解碼/選路機制及FPB封包解碼/選路機制。對於舊式封包解碼/選路機制。TLP可在配置FPB之埠處得以識別並且舊式封包解碼/選路機制可基於習知BDF選路來判定是否將TLP依路由傳遞至埠之次要側或將TLP選路保持在主要側。同樣地,FPB封包解碼/選路機制可基於扁平BDF選路來判定是否將TLP依路由傳遞至埠之次要側或將TLP選路保持在主要側。若舊式封包解碼/選路機制或FPB封包解碼/選路機制輸出封包應繼續進行至次要側之指示,封包之選路穿越橋接器到達次要側以便依路由傳遞至其目的地。對於BDF解碼,舊式封包解碼/選路機制可包括次要/附屬匯流排號碼暫存器並且對於記憶體(例如,MMIO)解碼,可包括記憶體基址/極限暫存器、可預取基址/極限暫存器、VGA啟用位元、增強分配,以及可由FPB邏輯使用之其他機制。對於BD空間解碼而言,FPB封包解碼/選路機制可包括BD次要開始、向量開始、粒度及結合BD向量使用之相關暫存器。記憶體解碼亦可利用FPB中之向量,諸如結合MEM Low向量開始、粒度及相關MEM Low暫存器使用之MEM Low向量及結合MEM High向量開始、粒度及相關MEM High暫存器使用之MEM High向量,以及其他示例性暫存器、機制、功能及特徵。
在一些情況下,雖然FPB可添加特定橋接器解碼給定TLP之額外方式,但是FPB可不改變與橋接器在交換器及根複合體架構結構內運作之基本方式有關的任何方面。在一個實例中,FPB使用相同架構概念來提供針對三種不同資源類型之管理機制:BDF之匯流排/裝置空間,位元15:3(「BD」);少於4GB之記憶體(「MEM Low」);及多於4GB之記憶體(「MEM High」)。允許FPB之硬體實行方案支援此等三種機制之任何組合。對於每一種機制,針對選定資源類型之特定子集範圍,FPB使用位元向量來指示是否此範圍內之資源與FPB之主要或次要側相關聯。可允許硬體實行方案針對此等向量來實行較小範圍之大小,並且使得系統韌體/軟體能夠最有效地使用可利用向量,上述效果係藉由選擇以遞增BD/位址順序來應用向量的初始偏移,以及向量內之個別位元之粒度來實現的,該粒度指示給定向量中之位元適用的BD/位址資源集之大小。
對於BD/MEM Low/MEM High機制中之每一者,尤其對於根複合體,可能需要提供機制,例如組態暫存器,藉由該機制,硬體或系統特異性韌體/軟體可限制容許BD/MMIO範圍,允許系統軟體將該容許BD/MMIO範圍指派至根埠橋接器之次要側。此舉可簡化多組件根複合體之結構,此簡化過程係例如藉由以下操作來實現的:確保系統軟體不試圖將FPB機制應用至在多組件根複合體之不同組件上實行之根埠之間的重疊BD/MMIO空間範圍,例如以使得允許一個組件上之根埠在BD/MMIO資源之給定範圍內運作,並且允許另一個組件上之根埠在與BD/MMIO資源之第一範圍不同、不重疊的範圍內運作,以及其他實例。
在靜態使用案例(或簡稱為「靜態案例」)中,存在對於階層之大小及端點之數量之限制,此情況係由於藉由交換器之PCI/PCIe架構定義所造成的匯流排及裝置號碼「浪費」,以及下游埠將整個匯流排號碼與該等埠之鏈接相關聯的傳統需求所導致的。在一些實行方案中,此類問題可藉由「扁平化」BDF空間之使用以使得交換器及下游埠能夠更有效地使用可利用空間來解決。對於動態使用案例(或簡稱為「動態案例」),藉由在相關端點上方之橋接器中保留較大範圍之匯流排號碼及記憶體映射I/O(MMIO)以試圖滿足預分配範圍內之任何需求來避免再平衡。然而,此方法導致額外浪費,從而放大傳統BDF分配之缺點。此外,此方法可難以在一般案例中實行,甚至對於相對簡單案例亦如此,其中例如可使實行單一端點之固體狀態驅動機(SSD)置換為具有交換器之單元,從而在單元內建置內部階層,以致於雖然僅一個匯流排之最初分配已經係足夠的,但是在使用新單元的情況下,最初分配立即變得無效。此外,對於MMIO而言,當熱插入之端點可需要分配少於4GB之MMIO空間(按照其性質,此空間係有限的資源)時,預分配方法可為成問題的,此空間藉由預分配甚至相對較小量而迅速用完,並且此空間之預分配係無吸引力的,因為多個系統元件對於少於4GB之系統位址空間分配提出要求。取決於多種因素包括給定系統之實體記憶體定址能力,在一些情況下,在多於4GB之MMIO空間中亦可存在資源限制。適用於少於4GB之MMIO空間之限制條件可不同於適用於多於4GB之限制條件(相應地針對每一種空間,單獨機制可得以最佳化)。
在一些實行方案中,在靜態及動態使用案例中之至少一些問題可藉由定義針對BDF及MMIO來實現不連續資源範圍(重新/)分配的機制而解決。系統軟體可具有在不破壞進行中的其他操作的情況下保持資源「池」之能力,該等資源「池」可在運行時間分配(並且釋放回去),而在進行再平衡的時候,則需要破壞進行中的其他操作。因此,扁平化入口橋接器(FPB)可提供為任擇能力,該能力可藉由根及交換器埠中之1型(橋接器)功能來實行以支援更有效及密集BDF分配,在不需要系統別處指派之資源再平衡的情況下實現BDF資源之再分配,並且實現不連續的MMIO區域並且避免再平衡MMIO資源之需求。在一些實行方案中,IO空間分配可保持原樣並且不被FPB修改。在藉由示例性FPB所提供的可能示例性優勢之中,BDF空間分配可更有效及密集,從而能夠實現較大階層,對於熱添加/移除案例而言,可在不需要總體再平衡資源的情況下實現資源之執行時間再分配,BDF及MMIO在連續範圍中分配的要求可得以取消,可支援混合系統,該等混合系統包括支援FPB之組件與不支援FPB之組件,在實現所有上述優勢的同時不允許改變現有離散端點。例如,舊式根複合體、交換器、橋接器及端點可與實行FPB之RC及交換器一起用於混合系統環境中。
在一些實行方案中,FPB可包括提供支援FPB之新硬體及軟體。然而,此額外硬體及/或軟體可選擇性地啟用,因為除非啟用該硬體及/或軟體,否則該硬體及/或軟體沒有作用,並且該硬體及/或軟體預設為停用。在一些情況下,實行FPB之硬體變化可包括涉及1型功能之硬體,同時允許端點及支援0型功能之硬體保持不受影響。啟用FPB之硬體可通過現有順應性及交互運作性測試並且可開發新的測試來明確評價額外FPB功能。意欲與實行FPB功能之裝置一起運作之軟體可被組配來理解新擴展能力。舊式軟體繼續與FPB硬體一起起作用,但是不能夠利用FPB特徵。
FPB可繼續允許針對BDF及MMIO使用舊式資源分配機制。在一些情況下,可需要具有系統韌體繼續僅使用舊式機制來執行最初系統資源分配,並且僅在作業系統啟動之後使用FPB。FPB可支援此舉並且特別地允許系統繼續使用由舊式機制分配之資源。尤其意欲FPB允許系統軟體在執行時間期間修改系統內之資源分配,該修改過程僅要求與所修改之資源相關聯之硬體及過程變得靜止,並且允許所有其他硬體及過程繼續正常操作。
為了支援系統軟體在執行時間期間使用FPB,FPB硬體實行方案應避免向執行中之交易引入停頓或其他類型之中斷,包括在系統軟體修改FPB硬體之狀態期間。然而,預期硬體不會試圖識別以下情況,在該等情況中系統軟體以影響執行中之交易的方式錯誤地修改FPB組態。正與舊式機制一樣,系統軟體之責任係確保系統操作不會由於重新組態操作而毀壞。未明確要求系統韌體/軟體以特定順序來執行FPB機制之啟用及/或停用,然而可定義以一定階層來實行資源分配操作的規則以使得系統之硬體及軟體元件不被毀壞或導致失效。
在一些實行方案中,若系統軟體違反關於FPB之任何規則,則硬體行為可為未定義的。FPB可在任何PCI橋接器(1型)功能中實行,並且實行FPB之每一個功能實行FPB擴展能力。若交換器實行FPB,則交換器之上游埠及所有下游埠實行FPB。可允許根複合體實行一些根埠上之FPB但是不實行其他根埠上之FPB。可允許根複合體實行根複合體之內部邏輯匯流排上之FPB。允許1型功能實行FPB機制,該等FPB機制應用於此等基本機制(BD、MEM Low、MEM High)中之任一者、兩者或三者。可允許系統軟體實現由特定FPB支援之基本機制之任何組合(包括全部組合或沒有任何一種組合)。除了錯誤處置及報告機制在此部分中明確加以修改以外,錯誤處置及報告機制可不受FPB影響。若發生FPB功能之重設,FPB硬體清除所有實行向量中之所有位元。一旦啟用(例如,經由FPB BD向量啟用、FPB MEM Low向量啟用及/或FPB MEM High向量啟用位元),若系統軟體隨後停用FPB機制,相關聯向量中之項目之值係未定義的,並且若系統軟體隨後重新啟用此FPB機制,FPB硬體清除相關聯向量中之所有位元。
在一些實行方案中,當啟用對應FPB機制時,明確允許系統軟體修改FPB向量。若FPB以No_Soft_Reset位元清除來實行時,當該FPB循環經過D0àD3hotàD0時,則與其他功能組態情境一樣,所有FPB機制得以停用,並且FPB清除所有實行向量中之所有位元。若FPB以No_Soft_Reset位元設定來實行,當該FPB循環經過D0àD3hotàD0時,則與其他功能組態情境一樣,所有FPB組態狀態不改變並且FPB向量中之項目由硬體保持。可實行硬體以使得不存在對於FPB計算來執行任何類型之界限檢查的要求,並且系統軟體可確保FPB參數得以正確地規劃。例如,可允許系統軟體規劃向量開始值,該等值導致對應向量之較高階位元超越與給定FPB相關聯之資源範圍,並且系統軟體確保向量之彼等較高階位元係清除。系統軟體必須避免的錯誤之實例包括資源分配之複製、可產生「環繞」或界限錯誤的開始偏移與設定向量位元之組合,以及其他實例。
在FPB BD機制之一些實行方案中,若特定BDF落在與BD向量中之對應項目中規劃之值呈邏輯或關係的次要及附屬匯流排號碼暫存器中規劃之值所指示的匯流排號碼範圍內時,則FPB硬體考慮該BDF與FPB之次要側相關聯。當僅使用FPB BD機制用於BDF解碼時,可利用系統軟體來確保次要及附屬匯流排號碼暫存器係0。系統軟體可進一步確保FPB選路機制被組配成使得靶向FPB之功能次要側的組態請求藉由FPB從FPB之主要側依路由傳遞至次要側。FPB BD機制可以不同粒度來應用,該等粒度可藉由系統軟體經由FPB BD向量控制1暫存器中之FPB BD向量粒度暫存器來規劃。例如,圖9例示BDF空間中之示例性位址及支援粒度。圖9中之表示例示BDF空間中之位址之佈局與支援粒度之間之關係。
在一些實行方案中,系統軟體按照彼等欄位之說明中所描述之限制條件來規劃FPB BD向量控制1暫存器中之FPB BD向量粒度及FPB BD向量開始欄位。可限制FPB(除了與交換器之上游埠相關聯之FPB以外)以使得當不支援PCIe替代選路ID解譯(ARI)進送時,或當裝置控制2暫存器中之ARI進送啟用位元係清除時,當1型組態請求之BD位址(BDF之位元15:3)匹配FPB BD向量控制2暫存器中之BD次要開始欄位中之值時,FPB硬體將在FPB之主要側上接收之1型組態請求轉換成FPB之次要側上之0型組態請求,並且系統軟體必須相應地組配FPB。當裝置控制2暫存器中之ARI進送啟用位元係設定時,當1型組態請求之匯流排號碼位址(BDF之位元15:8)匹配FPB BD向量控制2暫存器中之次要開始欄位中之匯流排號碼位址(僅位元15:8)時,FPB硬體將在FPB之主要側上接收之1型組態請求轉換成FPB之次要側上之0型組態請求,並且系統軟體必須相應地組配FPB。
在一些實行方案中,對於僅與交換器之上游埠相關聯之FPB,FPB硬體可使用FPB能力暫存器之FPB Num Sec Dev欄位來指示與上游埠橋接器之次要側相關聯之裝置號碼之數量,除了FPB BD向量控制2暫存器中之BD次要開始欄位以外,該等裝置號碼可由FPB用於判定何時在FPB之主要側上接收之組態請求靶向交換器之下游埠中之一者,從而有效地判定何時此請求從1型組態請求轉換至0型組態請求,並且系統軟體適當地組配FPB。若在下游埠處啟用ACS來源驗證,則FPB檢查由該埠接收的每個上游請求之請求者ID以判定是否其映射至FPB之次要側,並且若請求者ID不映射至FPB之次要側,則此可構成與接收埠相關聯之報告錯誤(例如,ACS違反)。FPB可進一步實行INTx虛擬引線之橋接器映射。
在一個實例中,為了判定FPB BD向量中之哪一個項目適用於給定BDF位址,配置FPB之硬體及軟體可應用諸如以下之演算法:// 「 BDF 」 is the BDF address to be tested
IF (BDF <= FPB_BD_Vector_Start) THEN EXIT;// In this case the BDF is out of range // Otherwise, apply Starting offset
OffsetIndex := BDF – FPB_BD_Vector_Start;// Next adjust for the granularity of the vector // (this operation is a divide, done here // as a right shift with zero fill)
OI_Gran_Adjusted := ShiftRightZeroFill(FPB_BD_Vector_Granularity, OffsetIndex); IF (OI_Gran_Adjusted >= LENGTHOF(FPB_BD_Vector)) THEN EXIT;// In this case the BDF is out of range // Otherwise, locate the bit in the (bit addressed) vector
SelectorBit := FPB_BD_Vector[OI_Gran_Adjusted];// If SelectorBit is Set, then the BDF is considered to be // on the Secondary Side, if Clear, the BDF is // considered to be on the Primary Side.
換言之,為了判定FPB BD向量中之哪一個項目適用於給定BDF位址,邏輯可判定是否BD位址低於FPB BD向量開始之值。若BD位址低於FPB BD向量開始之值,則BD在範圍外並且不與橋接器之次要側相關聯。否則,邏輯可計算向量內之偏移,首先藉由減去FPB BD向量開始之值,然後根據FPB BD向量粒度之值對此執行除法以判定向量內之位元索引。若位元索引值大於所支援之FPB BD向量大小指示之長度,則BD在範圍外(超過)並且不與橋接器之次要側相關聯。然而,若所計算位元索引位置處的該向量內之位元值係1b,則BD位址與橋接器之次要側相關聯,否則BD位址與橋接器之主要側相關聯。
FPB MEM Low機制可以不同粒度來應用,該等粒度可藉由系統軟體經由FPB MEM Low向量控制1暫存器中之FPB MEM Low向量粒度暫存器來規劃。圖10例示FPB MEM Low機制適用的少於4GB之記憶體位址空間中之位址之佈局及粒度對於此等位址之作用。圖10亦涉及扁平化入口橋接器(FPB)擴展能力之定義。系統軟體可按照彼等欄位之說明中所描述之限制條件來規劃FPB MEM Low向量控制暫存器中之FPB MEM Low向量粒度及FPB MEM Low向量開始欄位。
在FPB MEM Low機制之實例中,若特定記憶體位址落在與MEM Low向量中之對應項目中規劃之值呈邏輯或關係的其他橋接器記憶體解碼暫存器(以下列舉)中規劃之值所指示的任何範圍內時,則FPB硬體可考慮該記憶體位址與FPB之次要側相關聯。其他橋接器記憶體解碼暫存器可包括:1型(橋接器)標頭中之記憶體基址/極限暫存器;1型(橋接器)標頭中之可預取基址/極限暫存器;1型(橋接器)標頭之橋接器控制暫存器中之VGA啟用位元;增強分配(EA)能力;FPB MEM High機制(若支援並啟用)。在一個實例中,為了判定FPB MEM Low向量中之哪一個項目適用於給定記憶體位址,硬體及軟體可應用諸如以下之演算法:// 「 Address 」 is the memory address to be tested // expressed in MB units (i.e. bits [31:20])
IF (Address <= FPB_MEM_Low_Vector_Start) THEN EXIT;// In this case the address is out of range // Otherwise, apply Starting offset
OffsetIndex := Address – FPB_MEM_Low_Vector_Start;// Next adjust for the granularity of the vector // (this operation is a divide, done here // as a right shift with zero fill)
OI_Gran_Adjusted := ShiftRightZeroFill(FPB_MEM_Low_Vector_Granularity, OffsetIndex); IF (OI_Gran_Adjusted >= LENGTHOF(FPB_MEM_Low_Vector)) THEN EXIT;// In this case the address is out of range // Otherwise, locate the bit in the (bit addressed) vector
SelectorBit := FPB_MEM_Low_Vector[OI_Gran_Adjusted];// If SelectorBit is Set, then the address is // considered to be on the Secondary Side, // if Clear, the address is considered to be on // the Primary Side.
換言之,為了判定FPB MEM Low向量中之哪一個項目適用於給定記憶體位址,硬體及軟體可判定是否記憶體位址低於FPB MEM Low向量開始之值。若如此,記憶體位址可在範圍外(低於)並且不與橋接器之次要側相關聯。邏輯可計算向量內之偏移,首先藉由減去FPB MEM Low向量開始之值,然後根據FPB MEM Low向量粒度之值對此執行除法以判定向量內之位元索引。 若位元索引值大於所支援之FPB MEM Low向量大小指示之長度,則記憶體位址在範圍外(超過)並且不與橋接器之次要側相關聯。另一方面,若所計算位元索引位置處的該向量內之位元值係1b,則記憶體位址可與橋接器之次要側相關聯,否則記憶體位址與橋接器之主要側相關聯。
系統軟體可按照彼等欄位之說明中所描述之限制條件來規劃FPB MEM High向量控制1暫存器中之FPB MEM High向量粒度及FPB MEM High向量開始欄位。在FPB MEM High機制之實例中,若特定記憶體位址落在與MEM Low向量中之對應項目中規劃之值呈邏輯或關係的其他橋接器記憶體解碼暫存器(以下列舉)中規劃之值所指示的任何範圍內時,則FPB硬體可考慮該記憶體位址與FPB之次要側相關聯。其他橋接器記憶體解碼暫存器可包括:1型(橋接器)標頭中之記憶體基址/極限暫存器;1型(橋接器)標頭中之可預取基址/極限暫存器;1型(橋接器)標頭之橋接器控制暫存器中之VGA啟用位元;增強分配(EA)能力;及FPB MEM Low機制(若支援並啟用)。在一個實例中,為了判定FPB MEM High向量中之哪一個項目適用於給定記憶體位址,硬體及軟體可應用諸如以下之演算法:// 「 Address 」 is the memory address to be tested // expressed in 16MB units (i.e. bits [63:24]) // 「 FPB_MEM_High_Vector_Start 」 is the concatenation // of FPB MEM High Vector Start Upper and // FPB MEM High Vector Start Lower
IF (Address <= FPB_MEM_High_Vector_Start) THEN EXIT;// In this case the address is out of range // Otherwise, apply Starting offset
OffsetIndex := Address – FPB_MEM_High_Vector_Start;// Next adjust for the granularity of the vector // (this operation is a divide, shown here // as a right shift with zero fill) // We have to apply an additional shift of 4 bits // to account for the granularity units
OI_Gran_Adjusted := ShiftRightZeroFill( ShiftRightZeroFill(FPB_MEM_High_Vector_Granularity, OffsetIndex), 4); IF (OI_Gran_Adjusted >= LENGTHOF(FPB_MEM_High_Vector)) THEN EXIT;// In this case the address is out of range // Otherwise, locate the bit in the (bit addressed) vector
SelectorBit := FPB_MEM_High_Vector[OI_Gran_Adjusted];// If SelectorBit is Set, then the address is // considered to be on the Secondary Side, // if Clear, the address is considered to be on // the Primary Side.
換言之,為了判定FPB MEM High向量中之哪一個項目適用於給定記憶體位址,硬體及軟體可判定是否記憶體位址低於FPB MEM High向量開始之值。若如此,記憶體位址可被判定為在範圍外(低於)並且不與橋接器之次要側相關聯。否則,可藉助於此機制來計算向量內之偏移,首先藉由減去FPB MEM High向量開始之值,然後根據FPB MEM High向量粒度之值對此執行除法以判定向量內之位元索引。若位元索引值大於所支援之FPB MEM MEM High向量大小指示之長度,則記憶體位址在範圍外(超過)並且因此不與橋接器之次要側相關聯。否則,若所計算位元索引位置處的該向量內之位元值係1b,則記憶體位址與橋接器之次要側相關聯,或記憶體位址與橋接器之主要側相關聯。
在一些實行方案中,FPB可使用位元向量機制來描述位址空間(BD空間、MEM Lo及Mem Hi)。當位址空間支援使用FPB時,對於每個位址空間,支援FPB之橋接器可含有以下各者:位元向量;開始位址暫存器;及粒度暫存器。此等值可由橋接器用於判定是否給定位址係由FPB解碼之範圍之一部分,以及與橋接器之次要側相關聯。使用舊式解碼機制及FPB解碼機制中之一者或兩者判定不與橋接器之次要側相關聯的位址(預設)與橋接器之主要側相關聯。此處,術語「相關聯」可意味著例如橋接器對於TLP採用以下處置: 與主要側相關聯並且在主要側處接收之TLP可作為非支援請求(UR)來處置; 與主要相關聯並且在次要側處接收之TLP可作為向上游進送來處置; 與次要側相關聯並且在主要側處接收之TLP可作為向下游進送來處置; 與次要側相關聯並且在次要側處接收之TLP可作為非支援請求(UR)來處置等。
在FPB中,向量中之每一個位元可表示位址範圍,其中此範圍之大小藉由選定粒度來判定。若向量中之位元為設定,其指示定址至對應範圍內之位址的封包與橋接器之次要側相關聯。每個位元表示之位址之特定範圍取決於此位元之索引,以及開始位址及粒度暫存器中之值。開始位址暫存器指示藉由位元向量描述之最低位址。粒度暫存器指示藉由每個位元表示之區域的大小。向量中之每個連續位元應用於後續範圍,該後續範圍根據粒度隨著每個位元而增加。
在一些情況下,不啟用ARI進送的下游埠僅將裝置0與附接至邏輯匯流排之裝置相關聯,該邏輯匯流排表示來自該埠之鏈接。將靶向與指定裝置號碼0之鏈接相關聯之匯流排號碼的組態請求傳輸至附接至該鏈接之裝置。因此,指定所有其他裝置號碼(1-31)之組態請求可藉由交換器下游埠或根埠以非支援請求結束狀態(相當於PCI中之主設備故障)來終止。在一些情況下,非ARI裝置可不假定裝置號碼0與其上游埠相關聯,而是替代地獲取其指派裝置號碼並且對於所有0型組態讀取請求作出反應,不論在請求中指定之裝置號碼為何。在一些實施例中,當靶向ARI裝置並且啟用直接在其上方的下游埠用於ARI進送時,裝置號碼默示為0,並且傳統裝置號碼欄位替代地作為8-位元功能號碼欄位之一部分來使用。若組態請求類型係1,FPB邏輯可判定是否匯流排號碼及裝置號碼欄位(在高速PCI-PCI橋接器的情況下)等於指派至次要PCI匯流排之匯流排號碼或在交換器或根複合體的情況下,等於指派至根(根複合體)或下游埠(交換器)中之一者的匯流排號碼及解碼裝置號碼。若如此,可將請求進送至下游埠(或在高速PCI-PCI橋接器的情況下,進送至PCI匯流排)。若不等於下游埠或次要PCI匯流排中之任一者之匯流排號碼,但是在指派至下游埠或次要PCI匯流排之匯流排號碼之範圍中,請求可在不修改的情況下進送至此下游埠介面。
扁平化入口橋接器(FPB)擴展能力可為任擇擴展能力,其針對實行FPB之任何橋接器功能或埠來提供。若交換器實行FPB,則交換器之上游埠及所有下游埠實行FPB擴展能力結構。允許根複合體在一些根埠上但是不在其他根埠上實行FPB擴展能力結構。在一些實行方案中,可允許根複合體針對內部邏輯匯流排來實行FPB能力。在以下描述中,FPB暫存器藉助於PCIe擴展能力來存取,但是在其他示例性實行方案中,FPB暫存器可經由其他手段來存取,該等手段包括但不限於PCI能力結構或供應商定義之擴展能力。在一些實行方案中,暫存器可在對應交換器、橋接器、根複合體或系統內之其他裝置之記憶體元件中代管。
表1例示FPB擴展能力標頭之一個示例性實行方案。在一個實例中,FPB擴展能力標頭可具有00h之偏移。 表1:FPB擴展能力標頭
表2例示FPB能力標頭之一個示例性實行方案。在一個實例中,FPB能力標頭可具有04h之偏移。 表2:FPB能力暫存器
表3例示FPB BD向量控制1暫存器之一個示例性實行方案。在一個實例中,FPB BD向量控制1暫存器可具有08h之偏移。 表3:FPB BD向量控制1暫存器
表4例示FPB BD向量控制2暫存器之一個示例性實行方案。在一個實例中,FPB BD向量控制2暫存器可具有0Ch之偏移。 表4:FPB BD向量控制2暫存器
表5例示FPB BD向量存取控制暫存器之一個示例性實行方案。在一個實例中,FPB BD向量存取控制暫存器可具有10h之偏移。 表5:FPB BD向量存取控制暫存器
表6例示FPB BD向量存取資料暫存器之一個示例性實行方案。在一個實例中,FPB BD向量存取資料暫存器可具有14h之偏移。 表6:FPB BD向量存取資料暫存器
表7例示FPB MEM Low向量控制暫存器之一個示例性實行方案。在一個實例中,FPB MEM Low向量控制暫存器可具有18h之偏移。 表7:FPB MEM Low向量控制暫存器
表8例示FPB MEM Low向量存取控制暫存器之一個示例性實行方案。在一個實例中,FPB MEM Low向量存取控制暫存器可具有1Ch之偏移。 表8:FPB MEM Low向量存取控制暫存器
表9例示FPB MEM Low向量存取資料暫存器之一個示例性實行方案。在一個實例中,FPB MEM Low向量存取資料暫存器可具有20h之偏移。 表9:FPB MEM Low向量存取資料暫存器
表10例示FPB MEM High向量控制1暫存器之一個示例性實行方案。在一個實例中,FPB MEM High向量控制1暫存器可具有24h之偏移。 表10:FPB MEM High向量控制1暫存器
表11例示FPB MEM High向量控制2暫存器之一個示例性實行方案。在一個實例中,FPB MEM High向量控制2暫存器可具有28h之偏移。 表11:FPB MEM High向量控制2暫存器
表12例示FPB MEM High向量存取控制暫存器之一個示例性實行方案。在一個實例中,FPB MEM High向量存取控制暫存器可具有2Ch之偏移。 表12:FPB MEM High向量存取控制暫存器
表13例示FPB MEM High向量存取資料暫存器之一個示例性實行方案。在一個實例中,FPB MEM High向量存取資料暫存器可具有30h之偏移。 表13:FPB MEM High向量存取資料暫存器
在替代實行方案中,並非為每個向量提供單獨向量存取偏移及向量資料暫存器,可在添加指示存取哪一個向量之欄位的情況下使用單一向量存取偏移暫存器,並且單一向量資料暫存器可用於執行所指示向量之讀取或寫入操作。在此實行方案中,指示符欄位可實行為兩位元欄位,該欄位經編碼以使得00(二進位)之值可指示存取BD向量,01(二進位)之值可指示存取MEM Low向量,10(二進位)之值可指示存取MEM High向量,並且11(二進位)之值可指示保留值。
注意如上所述之設備、方法及系統可在如前述之任何電子裝置或系統中實行。作為具體說明,下圖提供利用如本文描述之本發明的示範性系統。在如下更詳細地描述系統時,來自以上論述之數個不同互連得以揭示、描述及再訪。並且容易顯而易知地,如上所述之進步可應用於彼等互連、組構或架構中之任一者。
參看圖11,描繪包括多核心處理器之計算系統之方塊圖之實施例。處理器1100包括任何處理器或處理裝置,諸如微處理器、嵌入式處理器、數位信號處理器(DSP)、網路處理器、手持式處理器、應用處理器、共處理器、系統單晶片(SOC)或用來執行程式碼之其他裝置。在一個實施例中,處理器1100包括至少兩個核心:核心1101及1102,該等核心可包括非對稱核心或對稱核心(所例示之實施例)。然而,處理器1100可包括任何數目的處理元件,該等處理元件可為對稱或非對稱的。
在一個實施例中,處理元件指代用來支援軟體執行緒之硬體或邏輯。硬體處理元件之實例包括:執行緒單元、執行緒槽、執行緒、處理單元、情境、情境單元、邏輯處理器、硬體執行緒、核心及/或能夠保持處理器之狀態(諸如執行狀態或架構狀態)的任何其他元件。換言之,在一個實施例中,處理元件指代能夠獨立地與程式碼(諸如軟體執行緒、作業系統、應用程式或其他程式碼)相關聯的任何硬體。實體處理器(處理器插座)通常指代積體電路,其可能包括任何數目的其他處理元件,諸如核心或硬體執行緒。
核心通常指代位於積體電路上之能夠維持獨立架構狀態的邏輯,其中每一獨立地維持之架構狀態與至少一些專用執行資源相關聯。與核心形成對比,硬體執行緒通常指代位於積體電路上之能夠維持獨立架構狀態的任何邏輯,其中獨立地維持之架構狀態共用對執行資源之取用權。如可見,當某些資源為共用的且其他資源專用於架構狀態時,硬體執行緒之術語與核心之術語之間的行重疊。但通常,作業系統將核心及硬體執行緒視為個別的邏輯處理器,其中作業系統能夠在每一邏輯處理器上單獨排程操作。
如圖11中所例示,實體處理器1100包括兩個核心:核心1101及1102。此處,核心1101及1102被視為對稱核心,亦即,具有相同的組態、功能單元及/或邏輯之核心。在另一實施例中,核心1101包括亂序處理器核心,而核心1102有序處理器核心。然而,核心1101及1102可單獨選自任何類型之核心,諸如原生核心、軟體管理式核心、適於執行原生指令集架構(ISA)之核心、適於執行經轉譯的原生指令集架構(ISA)之核心、共同設計的核心或其他已知的核心。在異質核心環境(即,不對稱核心)中,某種形式之轉譯,諸如二進位轉譯,可用於在一個或兩個核心上排程或執行程式碼。更進一步論述,以下更詳細地描述核心1101中所例示之功能單元,因為在所描繪之實施例中,核心1102中之單元以類似的方式操作。
如所示,核心1101包括兩個硬體執行緒1101a及1101b,其亦可稱為硬體執行緒槽1101a及1101b。因此,諸如作業系統之軟體實體在一個實施例中可能將處理器1100視為四個單獨的處理器,亦即,能夠同時執行四個軟體執行緒之四個邏輯處理器或處理元件。如上文所提及,第一執行緒與架構狀態暫存器1101a相關聯,第二執行緒與架構狀態暫存器1101b相關聯,第三執行緒可與架構狀態暫存器1102a相關聯,且第四執行緒可與架構狀態暫存器1102b相關聯。此處,架構狀態暫存器(1001a、1101b、1102a及1102b)中之每一者可被稱為如上文所描述之處理元件、執行緒槽或執行緒單元。如所例示,架構狀態暫存器1101b中重複架構狀態暫存器1101a,因此個別架構狀態/情境能夠針對邏輯處理器1101a及邏輯處理器1101b加以儲存。在核心1101中,亦可針對執行緒1101a及1101b重複其他更小的資源,諸如分配器及重新命名器區塊1130中之指令指標及重新命名邏輯。可經由分割來共用一些資源,諸如重新排序/退休單元1135中之重新排序緩衝器、ILTB 1120、負荷/儲存緩衝器及佇列。可能全面共用其他資源,諸如通用內部暫存器、頁表基礎暫存器、低階資料快取記憶體及資料TLB 1115、執行單元1140及亂序單元1135之部分。
處理器1100通常包括其他資源,該等資源可全面共用、經由分割來共用,或由處理元件專用/專用於處理元件。在圖11中,例示具有處理器之例示性邏輯單元/資源之純示範性處理器的實施例。請注意,處理器可包括或省略此等功能單元中之任一者,並且包括未描繪之任何其他已知的功能單元、邏輯或韌體。如所例示,核心1101包括簡化的代表性亂序(OOO)處理器核心。但不同實施例中可利用有序處理器。OOO核心包括用來預測將要執行/採用之分支的分支目標緩衝器1120及用來儲存用於指令之位址轉譯項目的指令轉譯緩衝器(I-TLB) 1120。
核心1101進一步包括耦接至提取單元1120之解碼模組1125,其用來解碼所提取元件。在一個實施例中,提取邏輯包括分別與執行緒槽1101a、1101b相關聯的個別定序器。通常,核心1101與第一ISA相關聯,第一ISA定義/規定可在處理器1100上執行之指令。通常,作為第一ISA之部分的機器碼指令包括參考/規定將要進行之指令或操作的指令(稱為操作碼)之一部分。解碼邏輯1125包括自此等指令之操作碼辨識此等指令且在管線上傳遞經解碼之指令以便如第一ISA所定義來處理之電路。舉例而言,如以下更詳細論述,解碼器1125在一實施例中包括被設計成或適於辨識特定指令諸如交易指令的邏輯。由於解碼器1125進行的辨識,架構或核心1101採取特定的預定義動作來進行與適當指令相關聯的任務。重要的是請注意,本文中描述之任務、區塊、操作及方法中之任一者可回應於單個或多個指令來進行,該等指令中之一些可為新的或舊的指令。注意在一個實施例中,解碼器1126辨識相同ISA(或其子集)。或者,在異質核心環境中,解碼器1126辨識第二ISA(第一ISA之子集或相異ISA)。
在一個實例中,分配器及重新命名器區塊1130包括用來保留資源(諸如用來儲存指令處理結果的暫存器檔案)之分配器。然而,執行緒1101a及1101b可能能夠亂序執行,其中分配器及重新命名器區塊1130亦保留其他資源,諸如用來追蹤指令結果的重新排序緩衝器。單元1130亦可包括用來向處理器1100內部的其他暫存器重新命名程式/指令參考暫存器之暫存器重新命名器。重新排序/退休單元1135包括用來支援亂序執行及被亂序執行之指令的稍後有序退休之組件,諸如上文所提及之重新排序緩衝器、負荷緩衝器及儲存緩衝器。
在一個實施例中,排程器及執行單元區塊1140包括用來在執行單元上排程指令/操作之排程器單元。例如,在具有可利用的浮點執行單元之執行單元之埠上排程浮點指令。亦可包括與執行單元相關聯的暫存器檔案來儲存資訊指令處理結果。示範性執行單元包括浮點執行單元、整數執行單元、跳躍執行單元、負荷執行單元、儲存執行單元及其他已知的執行單元。
較低階資料快取記憶體及資料轉譯緩衝器(D-TLB) 1150耦接至執行單元1140。資料快取記憶體用來儲存最近使用的/被操作的元件,諸如資料運算元,其可能保持於記憶體同調狀態。D-TLB用來儲存最近的虛擬/線性至實體位址轉譯。作為特定實例,處理器可包括用來將實體記憶體分為多個虛擬頁的頁表結構。
此處,核心1101及1102共用較高階或較遠的快取記憶體,諸如與晶片上介面1110相關聯之二階快取記憶體的取用權。請注意,較高階或較遠的指代增加的或離執行單元更遠的快取記憶體階。在一個實施例中,較高階快取記憶體為末階資料快取記憶體,即,處理器1100上的記憶體階層中之最後快取記憶體,諸如二階或三階資料快取記憶體。然而,較高階快取記憶體不限於此,因為其可與指令快取記憶體相關聯或包括指令快取記憶體。取而代之,可在解碼器1125之後耦接追蹤快取記憶體(一種指令快取記憶體類型)來儲存最近解碼之追蹤。此處,指令可能指代巨集指令(即,由解碼器辨識之基本指令),該巨集指令可解碼成數個微指令(微操作)。
在所描繪組態中,處理器1100亦包括晶片上介面模組1110。在歷史上,在以下更詳細描述之記憶體控制器一直包括在處理器1100外部之計算系統中。在此情況下,晶片上介面1110用來與處理器1100外部的裝置通訊,該等裝置諸如系統記憶體1175、晶片組(通常包括用來連接至記憶體1175之記憶體控制器集線器及用來連接周邊裝置之I/O控制器集線器)、記憶體控制器集線器、北橋或其他積體電路。且在此情況下,匯流排1105可包括任何已知的互連線,諸如多點匯流排、點對點互連線、串列互連線、並列匯流排、同調(例如快取記憶體同調)匯流排、分層協定架構、差動匯流排及GTL匯流排。
記憶體1175可專用於處理器1100或由系統中之其他裝置共用。記憶體1175之常見類型實例包括DRAM、SRAM、非依電性記憶體(NV記憶體)及其他已知的儲存裝置。請注意,裝置1180可包括圖形加速器、耦接至記憶體控制器集線器之處理器或卡、耦接至I/O控制器集線器之資料儲存器、無線收發器、快閃裝置、音訊控制器、網路控制器或其他已知的裝置。
最近,因為更多的邏輯及裝置整合於諸如SOC之單個晶粒上,所以此等裝置中之每一者可併入處理器1100上。例如,在一個實施例中,記憶體控制器集線器位於具有處理器1100之相同封裝及/或晶粒上。此處,核心之一部分(核心上部分)1110包括一或多個控制器,該等控制器用於與諸如記憶體1175或圖形裝置1180之其他裝置介接。包括用於與此類裝置介接之互連線及控制器的組態通常稱為核心上(或非核心組態)。舉例而言,晶片上介面1110包括用於晶片上通訊之環形互連及用於晶片外通訊之高速串列點對點鏈接1105。另外,在SOC環境中,甚至更多的裝置(諸如網路介面、共處理器、記憶體1175、圖形處理器1180及任何其他已知的電腦裝置/介面)可整合於單個晶粒或積體電路上,來提供具有高功能性及低功率消耗之小外觀尺寸。
在一實施例中,處理器1100能夠執行編譯器、最佳化及/或轉譯器碼1177來編譯、轉譯及/或最佳化應用程式碼1176以便支援本文描述的設備及方法或與其介接。編譯器經常包括程式或一組程式以便將原始文字/程式碼轉譯成目標文字/程式碼。通常,用編譯器來編譯程式/應用程式碼在多個階段及道次中進行以便將高階程式設計語言碼轉換成低階機器或組合語言碼。但是,單一道次編譯器可仍然用於簡單編譯。編譯器可利用任何已知編譯技術並且執行任何已知編譯器操作,諸如詞法分析、預處理、剖析、語義分析、代碼生成、代碼轉換及代碼最佳化。
較大編譯器經常包括多個階段,但是通常此等階段包括兩個總體階段:(1)前端,即,其中總體上可發生語法處理、語義處理及一些轉換/最佳化,及(2)後端,即,其中總體上發生分析、轉換、最佳化及代碼生成。一些編譯器涉及中間編譯器,該中間編譯器示出編譯器之前端與後端之間之劃界的模糊性。因此,所提到的編譯器之插入、關聯、生成或其他操作可在前述階段或道次中之任一者處,以及在編譯器之任何其他已知階段或道次處發生。作為例示性實例,編譯器可能在一或多個編譯階段中插入操作、調用、功能等,諸如在編譯之前端階段插入調用/操作,然後在轉換階段期間,將調用/操作轉換成較低階代碼。注意在動態編譯期間,編譯器代碼或動態最佳化代碼可插入此等操作/調用,以及將代碼最佳化以便在執行時間期間執行。作為特定例示性實例,二進位代碼(已經編譯之代碼)可在執行時間期間動態地最佳化。此處,程式碼可包括動態最佳化代碼、二進位代碼或其組合。
與編譯器類似,轉譯器諸如二進位轉譯器,靜態或動態地轉譯代碼以便最佳化且/或轉譯代碼。因此,所提到的執行代碼、應用程式碼、程式碼或其他軟體環境可係指:(1)動態或靜態地執行編譯程式、最佳化代碼最佳化器或轉譯器,以便編譯程式碼、保持軟體結構、執行其他操作、最佳化代碼或轉譯代碼;(2)執行包括操作/調用之主程式碼,諸如已經最佳化/編譯之應用程式碼;(3)執行與主程式碼相關聯之其他程式碼,諸如文庫,以保持軟體結構、執行其他軟體相關操作或最佳化代碼;或(4)其組合。
現參考圖12,所展示為根據本發明之一實施例之第二系統1200的方塊圖。如圖12所示,多處理器系統1200係點對點互連系統,並且包括經由點對點互連體1250耦接起來的第一處理器1270及第二處理器1280。處理器1270及1280中之每一者可為處理器之某一版本。在一實施例中,1252及1254係串列、點對點同調互連組構,諸如Intel快速通道互連(QPI)架構之一部分。因此,本發明可在QPI架構內實行。
雖然展示了僅兩個處理器1270、1280,但應理解,本發明之範疇不限於此。在其他實施例中,給定處理器中可存在一或多個額外處理器。
所展示處理器1270及1280分別包括整合型記憶體控制器單元1272及1282。處理器1270亦包括點對點(P-P)介面1276及1278,作為該處理器之匯流排控制器單元的部分;類似地,第二處理器1280包括P-P介面1286及1288。處理器1270、1280可使用P-P介面電路1278、1288經由點對點(P-P)介面1250交換資訊。如圖12中所示,IMC 1272及1282將處理器耦接至個別記憶體,亦即,記憶體1232及記憶體1234,該等記憶體可為局部地附接至個別處理器之主記憶體的部分。
處理器1270、1280各自可使用點對點介面電路1276、1294、1286、1298經由個別P-P介面1252、1254與晶片組1290交換資訊。晶片組1290亦沿著高效能圖形互連1239經由介面電路1292與高效能圖形電路1238交換資訊。
在任一處理器中或兩個處理器外部,可包括共享快取記憶體(圖中未示),而該共享快取記憶體經由P-P互連與該等處理器連接,以使得當處理器被置於低功率模式中時,可將任一處理器或兩個處理器之局域快取記憶體資訊儲存在該共享快取記憶體中。
晶片組1290可經由介面1296耦接至第一匯流排1216。在一實施例中,第一匯流排1216可為周邊組件互連(PCI)匯流排,或者諸如高速PCI匯流排或另一第三代I/O互連匯流排之匯流排,但本發明之範疇不限於此。
如圖12中所示,各種I/O裝置1214以及匯流排橋接器1218可耦接至第一匯流排1216,該匯流排橋接器將第一匯流排1216耦接至第二匯流排1220。在一實施例中,第二匯流排1220可為低針腳數(LPC)匯流排。各種裝置可耦接至第二匯流排1220,其中包括,例如,鍵盤及/或滑鼠1222、通訊裝置1227,以及儲存單元1228(諸如磁碟機或其他大容量儲存裝置),在一實施例中,儲存單元1228可包括指令/程式碼及資料1230。此外,音訊I/O 1224展示為耦接至第二匯流排1220。請注意,其他架構係可能的,其中所包括的組件及互連架構有所不同。例如,代替圖12之點對點架構,系統可實行多分支匯流排或其他此種架構。
雖然已就有限數目之實施例描述本發明,但是熟習此項技術者將瞭解基於該等實施例之許多修改及變化。隨附申請專利範圍意欲涵蓋如屬於本發明之真實精神及範疇內之所有此等修改及變化。 實施例之態樣可包括以下實例中之一者或組合:
實例1係一種系統、方法、設備或儲存媒體,該儲存媒體具有在其上儲存之指令,可執行該等指令以導致機器識別系統中之多個裝置並且將相應位址指派至該等多個裝置中之每一者。該等多個裝置中之每個裝置藉由多個匯流排中之至少一個相應匯流排在該系統中連接,並且將該位址指派至裝置包括判定是否根據第一定址方案或第二匯流排定址方案來指派該位址,其中該第一定址方案將匯流排/裝置/功能(BDF)位址空間內之獨特匯流排號碼指派至在該第一定址方案中定址的每個裝置並且該第二匯流排定址方案指派該BDF位址空間內之獨特匯流排裝置號碼。
實例2可包括實例1之標的,其中在該第二定址方案中,重複使用特定匯流排號碼來定址兩個或兩個以上裝置。
實例3可包括實例1-2中之任一者之標的,其中指派該等位址包括根據該第二定址方案,指定該BDF位址空間中之匯流排號碼範圍以用於定址裝置。
實例4可包括實例3之標的,其中該匯流排號碼範圍與特定交換器相關聯並且該匯流排號碼範圍中之該等匯流排號碼在指派至連接至該交換器之每個裝置的該等匯流排裝置號碼中使用。
實例5可包括實例4之標的,其中連接至該交換器之該等裝置包括區隔。
實例6可包括實例1-5中之任一者之標的,其中該等位址包括組態位址。
實例7可包括實例1-6中之任一者之標的,其中該BDF位址空間包括基於周邊組件互連(PCI)之位址空間。
實例8可包括實例7之標的,其中每個匯流排裝置號碼包括八位元匯流排號碼及五位元裝置號碼。
實例9係包括用於接收特定封包之埠的設備,其中該埠包括扁平化入口橋接器(FPB),該FPB包括主要側及次要側,該主要側連接至根據第一定址方案來定址的第一組裝置,並且該次要側連接至根據第二定址方案來定址的第二組裝置。該FPB進一步基於該特定封包中之位址資訊來判定是否在該主要側或該次要側上依路由傳遞該特定封包,該第一定址方案將匯流排/裝置/功能(BDF)位址空間內之獨特匯流排號碼用於該第一組裝置中之每個裝置,並且該第二匯流排定址方案將獨特匯流排裝置號碼用於該第二組裝置中之每個裝置。
實例10可包括實例9之標的,其中指派至該第二組裝置中之多個裝置的該等相應匯流排裝置號碼各自包括特定匯流排號碼及不同裝置號碼。
實例11可包括實例9-10中之任一者之標的,其中該主要定址方案包括舊式定址方案。
實例12可包括實例9-11中之任一者之標的,其中該BDF尋址空間包括高速周邊組件互連(PCIe)組態空間。
實例13可包括實例9-12中之任一者之標的,其進一步包括多個埠,其中該埠包括該等多個埠中之一個特定埠,並且該等多個埠中之至少一個其他埠包括FPB。
實例14可包括實例13之標的,其中該等多個埠包括至少一個沒有FPB的埠。
實例15可包括實例13之標的,其進一步包括交換器,其中該交換器包括該等多個埠。
實例16可包括實例13之標的,其進一步包括根複合體,其中該根複合體包括該等多個埠。
實例17可包括實例9-16中之任一者之標的,其進一步包括BD控制1暫存器。
實例18可包括實例9-17中之任一者之標的,其進一步包括BD向量控制2暫存器。
實例19可包括實例9-18中之任一者之標的,其進一步包括BD向量存取控制暫存器。
實例20可包括實例9-19中之任一者之標的,其進一步包括BD向量存取資料暫存器。
實例21可包括實例9-20中之任一者之標的,其進一步包括MEM Low向量控制暫存器。
實例22可包括實例9-21中之任一者之標的,其進一步包括MEM Low向量存取控制暫存器。
實例23可包括實例9-22中之任一者之標的,其進一步包括MEM Low向量存取資料暫存器。
實例24可包括實例9-23中之任一者之標的,其進一步包括MEM High向量控制1暫存器。
實例25可包括實例9-24中之任一者之標的,其進一步包括MEM High向量控制2暫存器。
實例26可包括實例9-25中之任一者之標的,其進一步包括MEM High向量存取控制暫存器。
實例27可包括實例9-26中之任一者之標的,其進一步包括MEM High向量存取資料暫存器。
實例28係儲存媒體,該儲存媒體具有在其上儲存之指令,該等指令在機器上執行時,導致該機器組配裝置之暫存器,以便在列舉系統之多個不同匯流排的過程中支援匯流排/裝置/功能(BDF)空間中之主要匯流排定址方案及替代匯流排定址方案,該替代匯流排定址方案使用記憶體映射輸入/輸出(I/O)(MMIO)空間內之相同匯流排號碼。
實例29可包括實例28之標的,其中該等指令可進一步執行以限制指派至根埠橋接器之次要側的容許BD範圍。
實例30係一種系統,該系統包括交換器裝置、連接至該交換器裝置之裝置階層、連接至該交換器裝置之一組一或多個其他裝置,其中該組一或多個其他裝置根據第一定址方案來定址,該裝置階層根據第二定址方案來定址,該第一定址方案將匯流排/裝置/功能(BDF)位址空間內之獨特匯流排號碼用於該第一組裝置中之每個裝置,並且該第二定址方案將獨特匯流排裝置號碼用於該第二組裝置中之每個裝置。
實例31可包括實例30之標的,其中該交換器裝置包括連接至該裝置階層之第一埠,並且該第一埠包括橋接器邏輯,該橋接器邏輯判定是否利用該第一定址方案在該橋接器之主要側上依路由傳遞特定封包或利用該第二定址方案在該橋接器之次要側上依路由傳遞特定封包。
實例32可包括實例30-31中之任一者之標的,其進一步包括能力暫存器,該能力暫存器經編碼以在該交換器之特定埠上選擇性地實現對於該次要定址方案之支援。 實例33可包括實例30-32中之任一者之標的,其中該交換器裝置包括根複合體。
設計可經歷自產生至模擬至製造之各種階段。表示設計之資料可以數種方式來表示設計。首先,如在模擬中為有用的,硬體可使用硬體描述語言或另一功能描述語言來表示。另外,具有邏輯及/或電晶體閘之電路層級模型可在設計處理程序之一些階段產生。此外,大多數設計在一些階段達到表示各種裝置在硬體模型中之實體佈局之資料的層級。在使用習知半導體製造技術之狀況下,表示硬體模型之資料可為指定各種特徵在用於遮罩之不同遮罩層上是否存在的資料,該等遮罩用以產生積體電路。在設計之任何表示中,資料可儲存於任何形式之機器可讀媒體中。記憶體或者磁性或光學儲存器(諸如,碟片)可為儲存經由光波或電波所傳輸之資訊的機器可讀媒體,該光波或電波經調變或以其他方式產生以傳輸此資訊。當指示或攜載程式碼或設計之電載波經傳輸,達到執行電信號之複製、緩衝或重新傳輸的程度時,新的複本得以製作。因此,通訊提供者或網路提供者可在有形的機器可讀媒體上至少暫時儲存體現本發明之實施例之技術的物件,諸如編碼至載波中的資訊。
如本文所使用之模組指代硬體、軟體,及/或韌體之任何組合。作為實例,模組包括與非暫時性媒體相關聯之硬體,諸如微控制器,該媒體儲存經調適來藉由微控制器執行之程式碼。因此,在一實施例中,對模組之引用指代硬體,其經特定組配來辨識及/或執行將要在非暫時性媒體上保留之程式碼。此外,在另一實施例中,模組之使用指代包括程式碼之非暫時性媒體,該程式碼經特定調適來藉由微控制器執行以執行預定操作。且如可推斷,在又一實施例中,模組一詞(在此實例中)可指代微控制器與非暫時性媒體之組合。常常,例示為單獨的模組邊界通常變化且可能重疊。舉例而言,第一模組及第二模組可共用硬體、軟體、韌體或其組合,同時可能保留一些獨立的硬體、軟體或韌體。在一實施例中,邏輯一詞之使用包括硬體,諸如電晶體、暫存器,或諸如可規劃邏輯裝置之其他硬體。
在一實施例中,短語「以」或「經組配來」之使用指代配置、放在一起、製造、要約出售、進口及/或設計執行所指明或所判定任務之設備、硬體、邏輯或元件。在此實例中,並未操作之設備或其元件仍「經組配來」在其經設計、耦接及/或互連以執行所指明任務的情況下執行該所指明任務。作為純例示性實例,邏輯閘可在操作期間提供0或1。但「經組配來」將啟用信號提供至時脈之邏輯閘不包括可提供1或0之每一可能邏輯閘。實情為,邏輯閘為以某方式耦接之邏輯閘,該方式為在操作期間,1或0輸出將啟用時脈。再次注意,「經組配來」一詞之使用不需要操作,而是聚焦於設備、硬體及/或元件之潛在狀態,其中設備、硬體及/或元件之潛在狀態經設計來在該設備、硬體及/或元件正操作時執行特定任務。
此外,在一實施例中,短語「能夠」及或「可操作以」之使用指代某設備、邏輯、硬體及/或元件以允許以指定方式使用該設備、邏輯、硬體及/或元件之方式來設計。注意如上文,在一實施例中,以、能夠或可操作以之使用指代設備、邏輯、硬體及/或元件之潛在狀態,其中設備、邏輯、硬體及/或元件不操作但以允許以指定方式使用設備的方式來設計。
如本文所使用,值包括數目、狀態、邏輯狀態或二進位邏輯狀態之任何已知表示。常常,邏輯位準、邏輯值或多個邏輯值之使用亦被稱為1及0,此簡單地表示二進位邏輯狀態。舉例而言,1指代高邏輯位準且0指代低邏輯位準。在一實施例中,諸如電晶體或快閃胞之儲存胞可能能夠保留單一邏輯值或多個邏輯值。然而,電腦系統中之值的其他表示已得以使用。舉例而言,十進位數10亦可表示為二進位值1010及十六進位字母A。因此,值包括能夠保留於電腦系統中之資訊的任何表示。
此外,狀態可藉由值或值之多個部分表示。作為實例,諸如邏輯1之第一值可表示預設或初始狀態,而諸如邏輯0之第二值可表示非預設狀態。另外,在一實施例中,重設及設定等詞分別指代預設及更新值或狀態。舉例而言,預設值可能包括高邏輯值,亦即,重設,而更新值可能包括低邏輯值,亦即,設定。注意,值之任何組合可用以表示任何數目個狀態。
上文所闡述之方法、硬體、軟體、韌體或程式碼之實施例可經由儲存於機器可存取、機器可讀、電腦可存取或電腦可讀媒體上之指令或程式碼來實施,該等指令或程式碼可藉由處理元件執行。非暫時性機器可存取/可讀媒體包括以可藉由機器讀取之形式提供(亦即,儲存及/或傳輸)資訊的任何機制,該機器諸如電腦或電子系統。舉例而言,非暫時性機器可存取媒體包括隨機存取記憶體(RAM),諸如靜態RAM(SRAM)或動態RAM(DRAM);ROM;磁性或光學儲存媒體;快閃記憶體裝置;電儲存裝置;光學儲存裝置;聲學儲存裝置;用於保留自暫時性(所傳播)信號(例如,載波、紅外信號、數位信號)所接收之資訊的其他形式之儲存裝置;等,其將與可自其接收資訊的非暫時性媒體區分。
用來規劃邏輯以執行本揭示案之實施例的指令可儲存於系統中的記憶體中,諸如DRAM、快取記憶體、快閃記憶體或其他儲存體。此外,指令可經由網路或藉由其他電腦可讀媒體來散佈。因此,機器可讀媒體可包括用於以可藉由機器(例如,電腦)讀取之形式儲存或傳輸資訊的任何機制,但不限於軟碟片、光碟、光碟片唯讀記憶體(CD-ROM),及磁光碟、唯讀記憶體(ROM)、隨機存取記憶體(RAM)、可抹除可規劃唯讀記憶體(EPROM)、電可抹除可規劃唯讀記憶體(EEPROM)、磁性或光學卡、快閃記憶體,或在資訊經網際網路經由電、光學、聲學或其他形式之所傳播信號(例如,載波、紅外信號、數位信號等)之傳輸中所使用的有形的機器可讀儲存器。因此,電腦可讀媒體包括適於以可藉由機器(例如,電腦)讀取之形式儲存或傳輸電子指令或資訊的任何類型之有形機器可讀媒體。
遍及本說明書對「一實施例」或「實施例」之引用意味,結合實施例所述之特定特徵、結構或特性包括於本發明的至少一實施例中。因此,短語「在一實施例中」或「在實施例中」在遍及本說明書之各處的出現未必均指代同一實施例。此外,特定特徵、結構或特性可在一或多個實施例中以任何合適之方式組合。
在前述說明書中,已參考特定例示性實施例提供了詳細描述。然而,將顯而易見的是,可在不脫離如所附申請專利範圍中所闡述之本發明之較廣泛精神及範疇的情況下在說明書中進行各種修改及變化。因此,應以例示性意義而非限制性意義來看待說明書及圖式。此外,實施例及其他例示性語言之前述使用未必指代同一實施例或同一實例,而可指代不同且相異的實施例,以及可能同一實施例。
100‧‧‧系統
105、1100‧‧‧處理器
106‧‧‧前側匯流排
110、1175‧‧‧系統記憶體
115‧‧‧控制器集線器
116‧‧‧記憶體介面
117、121‧‧‧介面/埠/輸入/輸出模組
118、131‧‧‧I/O模組
119、132‧‧‧串列鏈接
120‧‧‧交換器/橋接器
122、126、1296‧‧‧介面
125、405、410、605、610‧‧‧裝置
130‧‧‧圖形加速器
156‧‧‧封包標頭/酬載
200‧‧‧分層協定堆疊
205‧‧‧交易層
210‧‧‧鏈接層
211‧‧‧封包序列識別符
212‧‧‧CRC
220‧‧‧實體層
221‧‧‧邏輯子區塊
222‧‧‧電氣子區塊
223‧‧‧訊框
300‧‧‧交易描述符
302‧‧‧總體識別符欄位
304‧‧‧屬性欄位
306‧‧‧通道識別符欄位
308‧‧‧局部交易識別符欄位
310‧‧‧來源識別符欄位
312‧‧‧優先級欄位
314‧‧‧保留欄位
316‧‧‧排序欄位
318‧‧‧無監聽欄位
406、411‧‧‧傳輸對
407、412‧‧‧接收對
415‧‧‧鏈接
416~419‧‧‧路徑
505a-c‧‧‧區隔
510、515、520、620、625‧‧‧交換器
525、615、705‧‧‧根複合體
530a-c‧‧‧IOMMU及ECAM
650a-d‧‧‧圓形標記
710、715‧‧‧端點
1101、1102‧‧‧核心
1101a、1101b‧‧‧硬體執行緒/硬體執行緒槽/架構狀態暫存器
1102a、1102b‧‧‧架構狀態暫存器
1105‧‧‧匯流排/高速串列點對點鏈接
1110‧‧‧晶片上介面
1115‧‧‧低階資料快取記憶體及資料TLB
1120‧‧‧指令轉譯緩衝器/分支目標緩衝器/提取單元
1125‧‧‧解碼模組
1126‧‧‧解碼器
1130‧‧‧分配器及重新命名器區塊
1135‧‧‧重新排序/退休單元/亂序單元
1140‧‧‧執行單元/排程器及執行單元區塊
1150‧‧‧較低階資料快取記憶體及資料轉譯緩衝器
1176‧‧‧轉譯及/或最佳化應用程式碼
1177‧‧‧最佳化及/或轉譯器碼
1180‧‧‧裝置/圖形裝置
1200‧‧‧第二系統/多處理器系統
1214‧‧‧I/O裝置
1216‧‧‧第一匯流排
1218‧‧‧匯流排橋接器
1220‧‧‧第二匯流排
1224‧‧‧音訊I/O
1227‧‧‧通訊裝置
1228‧‧‧儲存單元
1230‧‧‧指令/程式碼及資料
1232、1234‧‧‧記憶體
1238‧‧‧高效能圖形電路
1239‧‧‧高效能圖形互連
1250‧‧‧點對點互連體
1252、1254、1286、1288‧‧‧P-P介面
1270‧‧‧第一處理器
1272、1282‧‧‧整合型記憶體控制器單元
1276、1278‧‧‧點對點(P-P)介面
1280‧‧‧第二處理器
1290‧‧‧晶片組
1292‧‧‧介面電路
1294‧‧‧點對點介面電路
105、1100‧‧‧處理器
106‧‧‧前側匯流排
110、1175‧‧‧系統記憶體
115‧‧‧控制器集線器
116‧‧‧記憶體介面
117、121‧‧‧介面/埠/輸入/輸出模組
118、131‧‧‧I/O模組
119、132‧‧‧串列鏈接
120‧‧‧交換器/橋接器
122、126、1296‧‧‧介面
125、405、410、605、610‧‧‧裝置
130‧‧‧圖形加速器
156‧‧‧封包標頭/酬載
200‧‧‧分層協定堆疊
205‧‧‧交易層
210‧‧‧鏈接層
211‧‧‧封包序列識別符
212‧‧‧CRC
220‧‧‧實體層
221‧‧‧邏輯子區塊
222‧‧‧電氣子區塊
223‧‧‧訊框
300‧‧‧交易描述符
302‧‧‧總體識別符欄位
304‧‧‧屬性欄位
306‧‧‧通道識別符欄位
308‧‧‧局部交易識別符欄位
310‧‧‧來源識別符欄位
312‧‧‧優先級欄位
314‧‧‧保留欄位
316‧‧‧排序欄位
318‧‧‧無監聽欄位
406、411‧‧‧傳輸對
407、412‧‧‧接收對
415‧‧‧鏈接
416~419‧‧‧路徑
505a-c‧‧‧區隔
510、515、520、620、625‧‧‧交換器
525、615、705‧‧‧根複合體
530a-c‧‧‧IOMMU及ECAM
650a-d‧‧‧圓形標記
710、715‧‧‧端點
1101、1102‧‧‧核心
1101a、1101b‧‧‧硬體執行緒/硬體執行緒槽/架構狀態暫存器
1102a、1102b‧‧‧架構狀態暫存器
1105‧‧‧匯流排/高速串列點對點鏈接
1110‧‧‧晶片上介面
1115‧‧‧低階資料快取記憶體及資料TLB
1120‧‧‧指令轉譯緩衝器/分支目標緩衝器/提取單元
1125‧‧‧解碼模組
1126‧‧‧解碼器
1130‧‧‧分配器及重新命名器區塊
1135‧‧‧重新排序/退休單元/亂序單元
1140‧‧‧執行單元/排程器及執行單元區塊
1150‧‧‧較低階資料快取記憶體及資料轉譯緩衝器
1176‧‧‧轉譯及/或最佳化應用程式碼
1177‧‧‧最佳化及/或轉譯器碼
1180‧‧‧裝置/圖形裝置
1200‧‧‧第二系統/多處理器系統
1214‧‧‧I/O裝置
1216‧‧‧第一匯流排
1218‧‧‧匯流排橋接器
1220‧‧‧第二匯流排
1224‧‧‧音訊I/O
1227‧‧‧通訊裝置
1228‧‧‧儲存單元
1230‧‧‧指令/程式碼及資料
1232、1234‧‧‧記憶體
1238‧‧‧高效能圖形電路
1239‧‧‧高效能圖形互連
1250‧‧‧點對點互連體
1252、1254、1286、1288‧‧‧P-P介面
1270‧‧‧第一處理器
1272、1282‧‧‧整合型記憶體控制器單元
1276、1278‧‧‧點對點(P-P)介面
1280‧‧‧第二處理器
1290‧‧‧晶片組
1292‧‧‧介面電路
1294‧‧‧點對點介面電路
圖1例示包括互連架構之計算系統之實施例。
圖2例示包括分層堆疊之互連架構之實施例。
圖3例示有待在互連架構內產生或接收之請求或封包之實施例。
圖4例示互連架構之發射器及接收器對之實施例。
圖5例示系統匯流排之表示。
圖6例示系統中之匯流排識別符之列舉表示。
圖7A例示使用扁平化入口橋接器(FPB)之實例之系統之表示。
圖7B例示FPB之示例性實行方案。
圖8例示示例性FPB之詳細表示。
圖9例示BDF空間中之示例性位址及所支援之粒度。
圖10例示FPB MEM Low機制適用的少於4GB之記憶體位址空間中之位址之佈局及粒度對於此等位址之作用。
圖11例示包括多核心處理器之計算系統之方塊圖之實施例。
圖12例示計算系統之方塊圖之另一個實施例。
705‧‧‧根複合體
710、715‧‧‧端點
Claims (20)
- 一種包含至少一個機器可存取儲存媒體的集合,該儲存媒體具有指令儲存在上之,該等指令在一機器上執行時,導致該機器進行下列動作: 識別一系統中的複數個裝置,其中,該等複數個裝置中之各裝置係藉由複數個邏輯匯流排中之至少一個邏輯匯流排分別在該系統中連接; 將一位址分別指派給該等複數個裝置中之各者,其中,將一位址指派至一裝置的動作包含: 判定要根據一第一定址方案或一第二匯流排定址方案來指派該位址,其中,該第一定址方案將在一匯流排/裝置/功能(BDF)位址空間內的一獨特匯流排號碼指派給會在該第一定址方案中定址的各個裝置,並且該第二匯流排定址方案指派在該BDF位址空間內的一獨特匯流排裝置號碼。
- 如請求項1之儲存媒體集合,其中,在該第二定址方案中,重複使用一特定匯流排號碼來將兩個或兩個以上裝置定址。
- 如請求項1之儲存媒體集合,其中,指派該等位址的動作包含:根據該第二定址方案,指定在該BDF位址空間中會被使用於將裝置定址的一匯流排號碼範圍。
- 如請求項3之儲存媒體集合,其中,該匯流排號碼範圍係與一特定交換器相關聯,並且在該匯流排號碼範圍中的該等匯流排號碼係在會被指派給與該交換器連接的各個裝置的該等匯流排裝置號碼中使用。
- 如請求項4之儲存媒體集合,其中,連接至該交換器的該等裝置包含一區隔。
- 如請求項1之儲存媒體集合,其中,該等位址包含組態位址。
- 如請求項1之儲存媒體集合,其中,該BDF位址空間包含周邊組件互連(PCI)式的一位址空間。
- 如請求項7之儲存媒體集合,其中,各匯流排裝置號碼包含八位元匯流排號碼及五位元裝置號碼。
- 一種設備,其包含: 可接收一特定封包的一埠,其中,該埠包含一扁平化入口橋接器(FPB),該FPB包含一主要側及一次要側,該主要側與根據一第一定址方案來定址的一第一組裝置連接,且該次要側與根據一第二定址方案來定址的一第二組裝置連接; 其中,該FPB進一步基於在該特定封包中之位址資訊來判定要在該主要側或在該次要側上為該特定封包規劃路徑,該第一定址方案針對在該第一組裝置中的各裝置使用一匯流排/裝置/功能(BDF)位址空間內的一獨特匯流排號碼,並且該第二匯流排定址方案針對該第二組裝置中的各裝置使用該BDF空間中的一獨特匯流排裝置號碼。
- 如請求項9的設備,其中,指派至該第二組裝置中之複數個裝置的該等匯流排裝置號碼各分別包含一特定匯流排號碼及一不同裝置號碼。
- 如請求項9的設備,其中,該主要定址方案包含一舊式定址方案。
- 如請求項9的設備,其中,該BDF位址空間包含一高速周邊組件互連(PCIe)組態空間。
- 如請求項9的設備,其進一步包含複數個埠,其中,該埠包含該等複數個埠中之一個特定埠,並且該等複數個埠中的至少一個其他埠包含一FPB。
- 如請求項13的設備,其中,該等複數個埠包含至少一個沒有FPB的埠。
- 如請求項13的設備,其進一步包含一交換器,其中該交換器包含該等複數個埠。
- 如請求項13的設備,其進一步包含一根複合體,其中,該根複合體包含該等複數個埠。
- 一種系統,其包含: 一交換器裝置; 與該交換器裝置連接的一階層式架構的數個裝置; 與該交換器裝置連接的一組一或多個其他裝置; 其中,該組一或多個其他裝置係根據一第一定址方案而被定址,該階層式架構的數個裝置係根據第二定址方案而被定址,該第一定址方案針對在該第一組裝置中的各裝置使用一匯流排/裝置/功能(BDF)位址空間內的一獨特匯流排號碼,並且該第二定址方案針對在該第二組裝置中的各裝置使用該BDF位址空間中的一獨特匯流排裝置號碼。
- 如請求項17的系統,其中,該交換器裝置包含與該階層式架構的數個裝置連接的一第一埠,並且該第一埠包含橋接器邏輯,該橋接器邏輯可判定要利用該第一定址方案在該橋接器之一主要側上為一特定封包規劃路徑或利用該第二定址方案在該橋接器之一次要側上為該特定封包規劃路徑。
- 如請求項17的系統,其進一步包括一能力暫存器,該能力暫存器會被編碼為可在該交換器的一特定埠上選擇性地實現對於該次要定址方案的支援。
- 如請求項17的系統,其中,該交換器裝置包含一根複合體。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201662303487P | 2016-03-04 | 2016-03-04 | |
US62/303,487 | 2016-03-04 | ||
US15/281,318 | 2016-09-30 | ||
US15/281,318 US10877915B2 (en) | 2016-03-04 | 2016-09-30 | Flattening portal bridge |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201732620A true TW201732620A (zh) | 2017-09-16 |
TWI743078B TWI743078B (zh) | 2021-10-21 |
Family
ID=59723633
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW106101848A TWI743078B (zh) | 2016-03-04 | 2017-01-19 | 扁平化入口橋接器 |
Country Status (5)
Country | Link |
---|---|
US (3) | US10877915B2 (zh) |
CN (2) | CN108604209B (zh) |
DE (1) | DE112017001148T5 (zh) |
TW (1) | TWI743078B (zh) |
WO (1) | WO2017151267A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10877915B2 (en) | 2016-03-04 | 2020-12-29 | Intel Corporation | Flattening portal bridge |
US11132321B2 (en) | 2020-02-26 | 2021-09-28 | Quanta Computer Inc. | Method and system for automatic bifurcation of PCIe in BIOS |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10545773B2 (en) * | 2018-05-23 | 2020-01-28 | Intel Corporation | System, method, and apparatus for DVSEC for efficient peripheral management |
JP7115128B2 (ja) * | 2018-08-07 | 2022-08-09 | 富士通株式会社 | 情報処理装置、ブート方法及びブートプログラム |
US10846250B2 (en) | 2018-11-12 | 2020-11-24 | Arm Limited | Apparatus and method for handling address decoding in a system-on-chip |
US11412075B2 (en) | 2020-08-31 | 2022-08-09 | Micron Technology, Inc. | Multiple protocol header processing |
US11539623B2 (en) * | 2020-08-31 | 2022-12-27 | Micron Technology, Inc. | Single field for encoding multiple elements |
US11418455B2 (en) | 2020-08-31 | 2022-08-16 | Micron Technology, Inc. | Transparent packet splitting and recombining |
US11360920B2 (en) | 2020-08-31 | 2022-06-14 | Micron Technology, Inc. | Mapping high-speed, point-to-point interface channels to packet virtual channels |
US11296995B2 (en) | 2020-08-31 | 2022-04-05 | Micron Technology, Inc. | Reduced sized encoding of packet length field |
CN112115092A (zh) * | 2020-09-18 | 2020-12-22 | 苏州浪潮智能科技有限公司 | 一种pcie总线号的分配方法、装置、设备及存储介质 |
US11971839B2 (en) * | 2022-07-20 | 2024-04-30 | Vmware, Inc. | Exposing PCIE configuration spaces as ECAM compatible |
Family Cites Families (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5638527A (en) * | 1993-07-19 | 1997-06-10 | Dell Usa, L.P. | System and method for memory mapping |
US5838935A (en) | 1995-06-15 | 1998-11-17 | Intel Corporation | Method and apparatus providing programmable decode modes for secondary PCI bus interfaces |
DE19733906C2 (de) * | 1997-08-05 | 1999-09-30 | Siemens Ag | Verfahren zur automatischen Adreßvergabe, Bussystem zur automatischen Adreßvergabe und Kommunikationsteilnehmer, die im Bussystem bzw. im Rahmen des Verfahrens einsetzbar sind |
JP3277874B2 (ja) * | 1998-01-29 | 2002-04-22 | 日本電気株式会社 | Ieee1394ブリッジ |
EP1286502A1 (en) * | 2001-08-22 | 2003-02-26 | Thomson Licensing S.A. | Method for managing network comprising a bridge between HAVi clusters |
US20030115513A1 (en) * | 2001-08-24 | 2003-06-19 | David Harriman | Error forwarding in an enhanced general input/output architecture and related methods |
US7428523B2 (en) | 2002-07-11 | 2008-09-23 | Oracle International Corporation | Portal bridge |
DE10261174B3 (de) * | 2002-12-20 | 2004-06-17 | Daimlerchrysler Ag | Automatische Adressierung auf Bussystemen |
US7251703B1 (en) * | 2004-02-27 | 2007-07-31 | Entropic Communications, Inc. | Method of time stamping to enable device bridging over dissimilar buses |
US7620741B2 (en) * | 2005-04-22 | 2009-11-17 | Sun Microsystems, Inc. | Proxy-based device sharing |
TWI273423B (en) * | 2005-07-15 | 2007-02-11 | Via Tech Inc | Computer system with multi-port bridge and an operating method of the same |
US7502908B2 (en) * | 2006-05-04 | 2009-03-10 | International Business Machines Corporation | Method for providing an address format compatible with different addressing formats used for addressing different sized address spaces |
US7756014B1 (en) * | 2007-02-22 | 2010-07-13 | Integrated Device Technology, Inc. | Device and method for handling catastrophic routing |
US20080263248A1 (en) * | 2007-04-20 | 2008-10-23 | Harriman David J | Multi-drop extension for a communication protocol |
US7626418B1 (en) * | 2007-05-14 | 2009-12-01 | Xilinx, Inc. | Configurable interface |
US7752346B2 (en) * | 2007-12-21 | 2010-07-06 | Aprius, Inc. | Universal routing in PCI-Express fabrics |
NZ590744A (en) * | 2008-08-28 | 2013-08-30 | Ericsson Telefon Ab L M | Method and apparatuses for maintaining service continuity to a centralization and continuity application server |
US9195623B2 (en) | 2010-06-23 | 2015-11-24 | International Business Machines Corporation | Multiple address spaces per adapter with address translation |
WO2012023149A2 (en) * | 2010-08-19 | 2012-02-23 | Ineda Systems Pvt. Ltd | Multi-root input output virtualization aware switch |
US9355031B2 (en) * | 2011-04-21 | 2016-05-31 | International Business Machines Corporation | Techniques for mapping device addresses to physical memory addresses |
US8782321B2 (en) * | 2012-02-08 | 2014-07-15 | Intel Corporation | PCI express tunneling over a multi-protocol I/O interconnect |
CN103117929B (zh) * | 2013-01-31 | 2015-12-23 | 中国科学院计算技术研究所 | 一种基于PCIe数据交换的通信方法及系统 |
CN103731317B (zh) * | 2013-12-10 | 2017-02-08 | 福建星网锐捷网络有限公司 | 一种pcie地址映射检测的方法及装置 |
ES2761927T3 (es) * | 2013-12-31 | 2020-05-21 | Huawei Tech Co Ltd | Método y aparato para extender el dominio PCIE |
US9886391B2 (en) | 2014-03-20 | 2018-02-06 | International Business Machines Corporation | Selective purging of PCI I/O address translation buffer |
US10877915B2 (en) | 2016-03-04 | 2020-12-29 | Intel Corporation | Flattening portal bridge |
-
2016
- 2016-09-30 US US15/281,318 patent/US10877915B2/en active Active
-
2017
- 2017-01-19 TW TW106101848A patent/TWI743078B/zh active
- 2017-02-02 WO PCT/US2017/016302 patent/WO2017151267A1/en active Application Filing
- 2017-02-02 CN CN201780009811.XA patent/CN108604209B/zh active Active
- 2017-02-02 DE DE112017001148.5T patent/DE112017001148T5/de active Pending
- 2017-02-02 CN CN202111150075.4A patent/CN113868173A/zh active Pending
-
2020
- 2020-12-29 US US17/136,347 patent/US11321264B2/en active Active
-
2022
- 2022-05-02 US US17/734,733 patent/US11768791B2/en active Active
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10877915B2 (en) | 2016-03-04 | 2020-12-29 | Intel Corporation | Flattening portal bridge |
US11321264B2 (en) | 2016-03-04 | 2022-05-03 | Intel Corporation | Flattening portal bridge |
US11768791B2 (en) | 2016-03-04 | 2023-09-26 | Intel Corporation | Flattening portal bridge |
US11132321B2 (en) | 2020-02-26 | 2021-09-28 | Quanta Computer Inc. | Method and system for automatic bifurcation of PCIe in BIOS |
TWI774089B (zh) * | 2020-02-26 | 2022-08-11 | 廣達電腦股份有限公司 | PCIe之自動分支的方法及系統 |
Also Published As
Publication number | Publication date |
---|---|
CN108604209A (zh) | 2018-09-28 |
DE112017001148T5 (de) | 2018-11-22 |
CN113868173A (zh) | 2021-12-31 |
TWI743078B (zh) | 2021-10-21 |
US10877915B2 (en) | 2020-12-29 |
CN108604209B (zh) | 2023-08-04 |
WO2017151267A1 (en) | 2017-09-08 |
US20220334994A1 (en) | 2022-10-20 |
US20170255582A1 (en) | 2017-09-07 |
US20210232522A1 (en) | 2021-07-29 |
US11768791B2 (en) | 2023-09-26 |
US11321264B2 (en) | 2022-05-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109154924B (zh) | 多个上行链路端口设备 | |
TW201732620A (zh) | 扁平化入口橋接器 | |
TWI570565B (zh) | 池式記憶體位址轉譯之技術 | |
TWI610174B (zh) | 計算裝置及計算系統 | |
CN108337910B (zh) | 用于软件定义的互连交换机的架构 | |
CN105793829B (zh) | 用于集成组件互连的装置、方法和系统 | |
CN107077521B (zh) | 片上系统配置元数据 | |
JP6311174B2 (ja) | 共有メモリ、およびノード間のi/oサービス | |
JP6147840B2 (ja) | ルートポート及びRPIE(RootPortIntegratedEndpoint)のレジューム時間を向上させるための方法、装置及びシステム | |
US20190005176A1 (en) | Systems and methods for accessing storage-as-memory | |
CN108292267B (zh) | 用于配置装置的方法、系统和设备 | |
JP2017504089A5 (zh) | ||
RU2653306C1 (ru) | Способ, устройство и система для управления потреблением энергии неиспользуемым аппаратным средством канального интерфейса | |
JP2016521936A (ja) | クレジットに基づく調停のためのサービスレート再分配 | |
CN107003838B (zh) | 解码信息库 | |
CN107003944B (zh) | 跨分布式存储器的指针追踪 | |
WO2024073864A1 (en) | Distributed address translation services |