用于全連接網格拓撲結構的高速pci架構路由的制作方法
【專利說明】用于全連接網格拓撲結構的高速PCI架構路由
【背景技術】
[0001] 為了使兩個獨立的系統能夠進行通信,這些系統中的每一個均需要包括足以使得 這兩個系統能夠交互的硬件和/或軟件。
【發明內容】
[0002] 總的來講,在一個方面,本發明涉及一種PCIe架構,該PCIe架構包括輸入/輸出 (10)層和集線器層,所述10層包括第一 10層交換機和第二10層交換機,所述集線器層包 括多個集線器層交換機,其中,所述多個集線器層交換機包括第一集線器層交換機和第二 集線器層交換機,其中,第一 10層交換機使用第一鏈路連接到第一集線器層交換機,其中, 第一 10層交換機使用交叉鏈路連接到第二集線器層交換機。所述PCIe架構還包括多個目 標裝置,其中,所述多個目標裝置中的每一個連接到所述多個集線器層交換機中的一個,其 中,第一集線器層交換機使用第二鏈路連接到所述多個目標裝置中的第一目標裝置,并且 其中,第一集線器層交換機使用第三鏈路連接到所述多個目標裝置中的第二目標裝置。第 一 10層交換機被配置為:從客戶端接收事務層數據包(TLP);進行第一確認,確認TLP中 的地址與第一 10層交換機中的任何多播地址范圍沒有關聯;進行第二確認,確認TLP中的 地址與第一 10層交換機中的任何下游端口沒有關聯;基于第一確認和第二確認,經由第一 10層交換機上的第一上游端口,使用第一鏈路將TLP路由到第一集線器層交換機。第一集 線器層交換機被配置為:在第一下游端口從第一 10層交換機接收TLP;進行第三確認,確認 TLP與第一多播組相關聯;基于第三確認:產生第一重寫的TLP,并且經由第一集線器層交 換機上的第二下游端口,使用第二鏈路將第一重寫的TLP路由到第一目標裝置,其中,第二 下游端口是第一多播組的用戶。
[0003] 總的來講,在一個方面,本發明涉及一種PCIe架構,該PCIe架構包括:輸入/輸出 (10)層和集線器層,所述10層包括第一 10層交換機和第二10層交換機,所述集線器層包 括多個集線器層交換機,其中,所述多個集線器層交換機包括第一集線器層交換機和第二 集線器層交換機,其中,第一 10層交換機使用第一鏈路連接到第一集線器層交換機,其中, 第一 10層交換機使用交叉鏈路連接到第二集線器層交換機,其中,所述PCIe架構可操作地 連接到多個目標裝置,其中,所述多個目標裝置中的每一個連接到所述多個集線器層交換 機中的一個,其中,第一集線器層交換機使用第二鏈路連接到所述多個目標裝置中的第一 目標裝置,并且其中,第一集線器層交換機使用第三鏈路連接到所述多個目標裝置中的第 二目標裝置。第一 10層交換機被配置為:從客戶端接收事務層數據包(TLP);進行第一確 認,確認TLP中的地址與第一 10層交換機中的任何多播地址范圍沒有關聯;進行第二確認, 確認TLP中的地址與第一 10層交換機中的任何下游端口沒有關聯;基于第一確認和第二確 認,經由第一 10層交換機上的第一上游端口,使用第一鏈路將TLP路由到第一集線器層交 換機。第一集線器層交換機被配置為:在第一下游端口從第一 10層交換機接收TLP;進行 第三確認,確認TLP與第一多播組相關聯;基于第三確認:產生第一重寫的TLP,并且經由第 一集線器層交換機上的第二下游端口,使用第二鏈路將第一重寫的TLP路由到第一目標裝 置,其中,第二下游端口是第一多播組的用戶。
[0004] 本發明的其它方面將通過以下內容清楚描述。
【附圖說明】
[0005] 圖1示出根據本發明的一個或多個實施例的包括PCIe架構的系統。
[0006] 圖2示出根據本發明的一個或多個實施例的輸入/輸出(10)層交換機。
[0007] 圖3示出根據本發明的一個或多個實施例的集線器層交換機。
[0008] 圖4示出根據本發明的一個或多個實施例的用于配置PCIe架構的方法。
[0009] 圖5示出根據本發明的一個或多個實施例的10層交換機對事務層數據包(TLP) 進行處理的方法。
[0010] 圖6示出根據本發明的一個或多個實施例的通過集線器層交換機對TLP進行處理 的方法。
[0011] 圖7示出根據本發明的一個或多個實施例的用于對連接到PCIe架構的永久性存 儲模塊發出的TLP進行處理的方法。
【具體實施方式】
[0012] 現在將參照附圖來詳細描述本發明的特定實施例。在以下對本發明的詳細描述 中,為了提供本發明的更透徹的理解,闡述了許多特定細節。然而,本領域的普通技術人員 將明白,可以在沒有這些特定細節的情況下實施本發明。在其他情況下,不對公知的特征進 行詳細描述以避免不必要地復雜化描述。
[0013] 在以下對圖1-7的描述中,關于一個圖描述的任何組件在本發明的各個實施例中 可以等同于關于任何其他圖描述的一個或多個類似命名的組件。為了簡便起見,將不針對 每一個圖重復這些組件的描述。因此,每一個圖的組件的每一個實施例通過引用并入,并且 假定可選地存在于具有一個或多個類似命名的組件的每一個其他圖中。另外,根據本發明 的各個實施例,一個圖的組件的任何描述應被解釋為除了關于任何其他圖中的相應的類似 命名的組件所描述的實施例之外、與這些實施例相結合、或者代替這些實施例可以實現的 可選實施例。
[0014] 總的來講,本發明的實施例涉及一種PCIe架構,該PCIe架構包括至少兩層交換 機,這些層交換機連接以在所述至少兩層之間形成全連接網格拓撲結構。此外,本發明的實 施例涉及一種PCIe架構,該PCIe架構使得連接到該PCIe架構中的一個分片的客戶端能夠 對該PCIe架構的不同分片中的存儲器、網絡端點裝置和/或永久性儲存器執行操作(例 如,讀寫操作)。
[0015] 在典型的通信架構(諸如以太網或Infiniband)中,請求是通過下述方式跨過通 信架構中的交換機被路由的:將唯一端點地址與每個端點裝置相關聯,并且將該端點地址 指定為請求的一部分。在PCIe架構中,讀寫操作在架構交換機之間的路由是基于被訪問的 存儲器地址、而不是基于端點地址。因此,用于全連接網格的基于地址的路由的典型布置不 允許所有客戶端訪問所有端點裝置。本發明的一個或多個實施例提供可以克服該限制的機 制。具體地講,基于地址的路由可以實現層之間的所有客戶端訪問所有端點的全連接網格 (下面描述)。
[0016] 在本發明的一個或多個實施例中,PCIe架構中的組件傳達和/或實現高速外設組 件互連(PCIe)標準。本發明的實施例不限于PCIe標準的任何過去的、當前的或未來的版 本。此外,本發明的實施例可以用實現與用于實現本發明的各個實施例的PCIe標準的特征 類似的特征的其他標準來實現。
[0017] 圖1示出了根據本發明的一個或多個實施例的包括PCIe架構的系統。PCIe架構 (100)由兩個或更多個分片(104A、104B)構成,其中,每個分片均直接連接到處理器(112A、 112B)和一個或多個客戶端(102A-102D)。下面描述前述每一個組件。
[0018] 在本發明的一個實施例中,每個客戶端(102A-102D)均是包括處理器(或其它類 型的處理組件)、存儲器和使得它能夠連接到PCIe架構(100)的一個(或多個)物理接口 的物理裝置。此外,每個客戶端均包括實現實現本發明的一個或多個實施例所需的PCIe標 準(或者其部分)的功能。客戶端還包括發送和/或接收事務層數據包(TLP)的功能。TLP 對應于根據PCIe標準定義的數據包類型。在本發明的一個實施例中,TLP使得客戶端能夠 從PCIe架構讀取數據以及將數據寫入到PCIe架構。換句話說,TLP使得客戶端能夠將數 據傳送到PCIe架構中的位置以及從PCIe架構中的位置傳送數據。在本發明的一個實施例 中,客戶端中的一個或多個作為PCIe端點(即,發起事務的裝置和/或作為事務的目標的 裝置)進行操作。每個客戶端可以經由客戶端與PCIe架構之間的鏈路(S卩,物理連接)連 接到PCIe架構。
[0019] 繼續討論圖1,每個分片(104A、104B)均包括輸入/輸出(10)層交換機(ITS) (108A、108B)、集線器層交換機(HTS) (106A、106B)以及一個或多個永久性存儲模塊(PSM)。 下面描述這些組件中的每一個。
[0020] 關于ITS,每個ITS是連接到一個或多個客戶端(102A-102D)的物理PCIe交換機。 每個ITS還連接到該ITS所在的同一個分片中的HTS。另外,每個ITS可以連接到與該ITS 所在分片不同的分片中的一個或多個HTS。在本發明的一個實施例中,每個ITS連接到PCI 架構中的每一個HTS,得到PCIe架構中的層之間的全連接網格。在不背離本發明的情況下, 本發明的實施例可以實現為在層之間不具有全連接網。
[0021] 在本發明的一個實施例中,每個ITS被配置為:⑴從它連接的客戶端接收TLP,并 且使用地址路由將這些TLP路由到ITS上的適當的出站端口(上游端口,或者下游端口之 一),以及(ii)從ITS連接的一個或多個HTS接收TLP,并且使用地址路由將這些TLP路由 到ITS上的適當的出站端口(通常是下游端口)。例如,在圖1中,ITSB(108B)可以從客 戶端C(102A)、客戶端D(102D)、HTSA(106A)和HTSB(106B)接收TLP。下面關于圖2提供 關于ITS的另外的細節。
[0022] 關于HTS,每個HTS均是連接到一個或多個ITS(108A-108B)和一個或多個永久性 存儲模塊(PSM(llOA-llOD))的物理PCIe交換機。每個HTS連接到該HTS所在的同一個分 片中的ITS。另外,每個HTS可以連接到與該HTS所在分片不同的分片中的零個或多個ITS。 在本發明的一個實施例中,每個HTS連接到PCIe架構中的每一個其他ITS,得到PCIe架構 中的層之間的全連接網格。每個HTS還經由其根端口(未示出)連接到處理器。在不背離 本發明的情況下,本發明的實施例可以實現為在層之間不具有全連接網格。
[0023] 在本發明的一個實施例中,每個HTS被配置為:(i)從它連接的永久性存儲模塊 (PSM)接收TLP,并且使用地址路由將這些TLP路由到HTS上的適當的出站端口(通常是下 游端口),以及(ii)從該HTS連接的一個或多個ITS接收TLP