的存儲(chǔ)器(包括所有的永 久性?xún)?chǔ)存器和易失性存儲(chǔ)器)的整個(gè)地址范圍。前述地址范圍不包括直接附連到PCIe架 構(gòu)中的處理器(112A、112B)的存儲(chǔ)器(114A、114B)。前述地址范圍可以是連續(xù)的地址范圍, 或者可以由一系列不連續(xù)的地址范圍組成。
[0045] 在本發(fā)明的一個(gè)實(shí)施例中,至少一個(gè)DS端口(DS端口 5(128))經(jīng)由交叉鏈路 (118B)連接到不同分片中的ITS(例如,圖3中的10層交換機(jī)A),并且與地址范圍相關(guān)聯(lián), 該地址范圍僅包括與該分片(例如,圖3中的分片A)相關(guān)聯(lián)的存儲(chǔ)器(包括相應(yīng)PSM中的 永久性?xún)?chǔ)存器)、以及連接到該分片(例如,圖3中的分片A)中的ITS的所有客戶(hù)端的存儲(chǔ) 器(包括所有的永久性?xún)?chǔ)存器和易失性存儲(chǔ)器)。前述地址范圍可以是連續(xù)的地址范圍,或 者可以由一系列不連續(xù)的地址范圍組成。更一般地,PCIe架構(gòu)中經(jīng)由交叉鏈路連接到第二 分片的第一分片中的HTS中的DS端口與僅包括它連接的第二分片的存儲(chǔ)器的地址范圍相 關(guān)聯(lián)。根據(jù)PCIe架構(gòu)的實(shí)現(xiàn),每個(gè)HTS均可以具有多個(gè)DS端口,其中,一個(gè)或多個(gè)這樣的 DS端口經(jīng)由交叉鏈路連接到不同分片中的ITS。
[0046]HTS還包括連接到PSM(110C、110D)的DS端口。在本發(fā)明的一個(gè)實(shí)施例中,連接到 PSM(例如,PSMC、PSMD)的DS端口(132、134)均僅與用于它連接的PSM的地址范圍相關(guān) 聯(lián)。另外,HTS(108B)包括連接到與HTS相同分片中的ITS的DS端口(DS端口 4(130))。
[0047]HTS(106B)還可以實(shí)現(xiàn)一個(gè)或多個(gè)多播組。根據(jù)PCIe架構(gòu)的實(shí)現(xiàn),每個(gè)多播組均 包括作為用戶(hù)的與一個(gè)或多個(gè)PSM相關(guān)聯(lián)的DS端口以及連接到處理器的US端口。例如, 一個(gè)多播組可以包括下列用戶(hù):DS端口 6、DS端口 7和US端口 2。在另一個(gè)例子中,多播組 可以包括下列用戶(hù):DS端口 6和DS端口 7。本發(fā)明不限于前述例子。每個(gè)多播組均與唯一 的多播地址范圍相關(guān)聯(lián),該多播地址范圍可以不同于(或者是其子集)與US端口(US端口 2(136))相關(guān)聯(lián)的地址范圍、與下游端口中的任何一個(gè)相關(guān)聯(lián)的地址范圍、以及任何其他多 播地址范圍。
[0048] 圖4-7示出了根據(jù)本發(fā)明的一個(gè)或多個(gè)實(shí)施例的流程圖。雖然流程圖中的各個(gè)步 驟是按順序呈現(xiàn)和描述的,但是本領(lǐng)域的普通技術(shù)人員將意識(shí)到,這些步驟中的一些或全 部可以按不同次序執(zhí)行,可以組合或省略,并且這些中的一些或全部可以并行執(zhí)行。在本發(fā) 明的一個(gè)實(shí)施例中,圖4-7中所示的每個(gè)步驟均可以與圖4-7中所示的其他任一步驟并行 執(zhí)行。
[0049] 圖4示出了用于配置根據(jù)本發(fā)明的一個(gè)或多個(gè)實(shí)施例的PCIe架構(gòu)的方法。在步 驟400中,將與PCIe架構(gòu)中的所有ITS和HTS中的每一個(gè)上游端口相關(guān)聯(lián)的地址范圍設(shè)置 為相同的地址范圍,即,包括PCIe架構(gòu)中的所有分片中的所有存儲(chǔ)器(包括PCIe架構(gòu)中的 PSM中的所有的永久性?xún)?chǔ)存器和易失性存儲(chǔ)器)以及連接到PCIe架構(gòu)的所有客戶(hù)端的存儲(chǔ) 器(包括所有的永久性?xún)?chǔ)存器和易失性存儲(chǔ)器)的整個(gè)地址范圍的地址范圍。前述地址范 圍可以是連續(xù)的地址范圍,或者可以由一系列不連續(xù)的地址范圍組成。前述地址范圍不包 括直接附連到處理器的存儲(chǔ)器。在本發(fā)明的一個(gè)實(shí)施例中,前述"地址范圍"可以實(shí)現(xiàn)為一 組地址范圍。在本發(fā)明的一個(gè)實(shí)施例中,該組地址范圍可以包括一個(gè)(多個(gè))32位地址范 圍和/或一個(gè)(多個(gè))64位地址范圍。
[0050] 在步驟402中,對(duì)于PCIe架構(gòu)產(chǎn)生一個(gè)或多個(gè)多播組。多播組的產(chǎn)生包括:(i)指 定用于每個(gè)多播組的多播地址范圍,以及(ii)指定每個(gè)多播地址組的用戶(hù)。如以上所討論 的,每個(gè)ITS均可以與至少一個(gè)多播地址組相關(guān)聯(lián),其中,多播地址組僅具有一個(gè)用戶(hù)一一 ITS中的US端口。此外,如以上所討論的,HTS可以實(shí)現(xiàn)多個(gè)多播地址組,其中,每個(gè)多播組 的用戶(hù)均包括DS端口(這些DS端口可以連接到鏈路和/或交叉鏈路)和/或US端口的 不同組合。
[0051] 在步驟404中,對(duì)于連接到交叉鏈路的每一個(gè)DS端口設(shè)置地址范圍,其中,這樣的 DS端口與如以上所討論的、它們連接的分片相應(yīng)的地址范圍相關(guān)聯(lián)。在步驟406中,對(duì)于連 接到PSM的每一個(gè)出站DS端口設(shè)置與特定PSM相應(yīng)的地址范圍。在步驟408中,對(duì)于連接 到客戶(hù)端的每一個(gè)出站DS端口設(shè)置與特定客戶(hù)端相應(yīng)的地址范圍。
[0052] 在步驟410中,對(duì)于連接到ITS的HTS上的每一個(gè)出站DS端口設(shè)置包括用于連接 到ITS的所有客戶(hù)端的所有客戶(hù)端存儲(chǔ)器的地址范圍。例如,參照?qǐng)D2和圖3,用于出站DS 端口 4(130) (S卩,當(dāng)TLP從HTS發(fā)送到ITS時(shí))的地址范圍是包括連接到ITS(108B)的所 有客戶(hù)端(l〇2C、102D)的存儲(chǔ)器的地址范圍。在本發(fā)明的一個(gè)實(shí)施例中,步驟410可以通 過(guò)將用于給定HTSDS端口的地址范圍設(shè)置為等于編程到ITS的US端口中的地址范圍來(lái)實(shí) 現(xiàn)。
[0053] 圖5示出了根據(jù)本發(fā)明的一個(gè)或多個(gè)實(shí)施例的10層交換機(jī)對(duì)事務(wù)層數(shù)據(jù)包(TLP) 進(jìn)行處理的方法。在步驟500中,在ITS中的入站DS端口從客戶(hù)端接收TLP,其中,TLP與 地址和有效載荷相關(guān)聯(lián),其中,地址用于在PCIe架構(gòu)中路由TLP,并且有效載荷包括將要存 儲(chǔ)在PSM和/或存儲(chǔ)器中的數(shù)據(jù),或者TLP與用于路由TLP并且還識(shí)別從PSM或存儲(chǔ)器讀 取的數(shù)據(jù)的什么起始位置的地址相關(guān)聯(lián)。在不背離本發(fā)明的情況下,TLP可以包括其他信 息。在本發(fā)明的一個(gè)實(shí)施例中,客戶(hù)端包括被配置為產(chǎn)生TLP并且將該TLP發(fā)放到PCIe架 構(gòu)的直接存儲(chǔ)器地址(DMA)引擎。
[0054] 在步驟502中,入站DS端口通過(guò)確定TLP中的地址是否與多播地址范圍相關(guān)聯(lián)來(lái) 確定TLP中的地址是否與多播組(MCG)相關(guān)聯(lián)。如果TLP中的地址與多播組相關(guān)聯(lián),則所 述處理進(jìn)入步驟508 ;否則,所述處理進(jìn)入步驟504。
[0055] 在步驟504中,當(dāng)TLP中的地址與多播組沒(méi)有關(guān)聯(lián)時(shí),確定TLP中的地址是否在與 連接到交叉鏈路的DS端口相關(guān)聯(lián)的地址范圍(也被稱(chēng)為交叉鏈路地址范圍)內(nèi)。如果TLP 中的地址與交叉鏈路地址范圍相關(guān)聯(lián),則所述處理進(jìn)入步驟506 ;否則,所述處理進(jìn)入步驟 512。在步驟506中,經(jīng)由適當(dāng)?shù)腄S端口和交叉鏈路將TLP發(fā)送到不同分片中的HTS。
[0056] 在步驟508中,當(dāng)TLP中的地址與多播組相關(guān)聯(lián)時(shí),將TLP的副本提供給多播組播 送組的每個(gè)用戶(hù)。在本發(fā)明的一個(gè)實(shí)施例中,ITS中的US端口是唯一的用戶(hù)。每個(gè)用戶(hù)在 接收到TLP的副本時(shí)包括產(chǎn)生包括新地址的重寫(xiě)的TLP的功能,其中,TLP的副本中的地址 被轉(zhuǎn)換以獲得新地址。在步驟510中,將TLP中的地址轉(zhuǎn)換為可以或者可以不在多播地址 范圍(即,在步驟502中使用的多播地址范圍)內(nèi)的新地址。轉(zhuǎn)換的結(jié)果是包括新地址、但 是數(shù)據(jù)有效載荷與原始TLP相同的重寫(xiě)的TLP。在本發(fā)明的一個(gè)實(shí)施例中,重寫(xiě)的TLP中 的新地址與原始TLP中的地址相同。在步驟512中,經(jīng)由ITS中的US端口將(i)來(lái)自步驟 510的重寫(xiě)的TLP或者(ii)來(lái)自步驟504的原始TLP發(fā)送到HTS,其中,HTS在與ITS相同 的分片中。在本發(fā)明的一個(gè)實(shí)施例中,當(dāng)原始TLP中的地址與ITS中的任一端口沒(méi)有關(guān)聯(lián)并 且不在多播地址范圍內(nèi)時(shí),經(jīng)由ITS中的US端口將原始TLP(S卩,在步驟500中接收的TLP) 發(fā)送到HTS。
[0057] 圖6示出了根據(jù)發(fā)明的一個(gè)或多個(gè)實(shí)施例的集線(xiàn)器層交換機(jī)對(duì)TLP進(jìn)行處理的方 法。
[0058] 在步驟600中,在HTS中的入站DS端口從客戶(hù)端接收TLP,其中,TLP與地址和有 效載荷相關(guān)聯(lián),其中,地址用于在PCIe架構(gòu)中路由TLP,并且有效載荷包括(i)將要存儲(chǔ)在 PSM和/或存儲(chǔ)器中的數(shù)據(jù),或者TLP與用于路由TLP并且還識(shí)別從PSM或存儲(chǔ)器讀取的數(shù) 據(jù)的什么起始位置的地址相關(guān)聯(lián)。在不背離本發(fā)明的情況下,TLP可以包括其他信息。TLP 可以由與HTS相同分片中的ITS接收,或者從與HTS不同的分片中的ITS(經(jīng)由交叉鏈路) 接收。
[0059] 在步驟602中,入站DS端口通過(guò)確定TLP中的地址是否與多播地址范圍相關(guān)聯(lián)來(lái) 確定TLP中的地址是否與多播組(MCG)相關(guān)聯(lián)。如果TLP中的地址與多播組相關(guān)聯(lián),則所 述處理進(jìn)入步驟610 ;否則,所述處理進(jìn)入步驟604。在步驟604中,確定TLP中的地址是 否在DS端口地址范圍中。如果TLP中的地址在DS地址端口范圍中,則所述處理進(jìn)入步驟 606 ;否則,所述處理進(jìn)入步驟608。在步驟606中,從與TLP中的地址相關(guān)聯(lián)的DS出站端 口發(fā)送出TLP。在步驟608中,經(jīng)由HTS中的US端口將TLP(不轉(zhuǎn)換TLP中的地址)發(fā)送到 處理器(即,連接到HTS所在分片的處理器)。
[0060] 在步驟610中,當(dāng)TLP與多播組相關(guān)聯(lián)時(shí),將在步驟600中接收的TLP的副本提供 給HTS中的作為多播組的用戶(hù)的每一個(gè)DS端口。每個(gè)用戶(hù)在接收到TLP的副本時(shí)包括產(chǎn) 生包括新地址的重寫(xiě)的TLP的功能,其中,TLP的副本中的地址被轉(zhuǎn)換為與PSM相關(guān)聯(lián)并且 不在任一多播地址范圍內(nèi)的新地址。前述轉(zhuǎn)換的結(jié)果是一組重寫(xiě)的TLP。在步驟612中,經(jīng) 由HTS中的相應(yīng)的DS端口將重寫(xiě)的TLP發(fā)送到適當(dāng)?shù)腜SM。
[0061] 在步驟614中,當(dāng)TLP與多播組相關(guān)聯(lián)并且HTS中的US端口是用戶(hù)時(shí),將TLP中 的地址轉(zhuǎn)換為不在任一多播地址范圍內(nèi)的新地址。前述轉(zhuǎn)換的結(jié)果是重寫(xiě)的TLP。在步驟 616中,經(jīng)由US端口將重寫(xiě)的TLP發(fā)送到處理器。
[0062] 在本發(fā)明的一個(gè)實(shí)施例中,PSM在從HTS接收到TLP(經(jīng)由步驟606)或重寫(xiě)的 TLP(經(jīng)由步驟610)時(shí),(i)將TLP的有效載荷中的數(shù)據(jù)存儲(chǔ)在PSM內(nèi)的永久性?xún)?chǔ)存器中, 或者(ii)從TLP中所指定的PSM中的位置讀取數(shù)據(jù)。此外,在本發(fā)明的一個(gè)實(shí)施例中,當(dāng) 處理器從HTS接收到重寫(xiě)的TLP時(shí),處理器將TLP的有效載荷中的數(shù)據(jù)存儲(chǔ)在直接連接到 該處理器的存儲(chǔ)器中。
[0063] 圖7示出了對(duì)連接到根據(jù)本發(fā)明的一個(gè)或多個(gè)實(shí)施例的PCIe架構(gòu)的PSM發(fā)出的 TLP進(jìn)行處理的方法。
[0064] 在步驟700中,HTS從連接到HTS上的DS端口的PSM接收TLP。在本發(fā)明的一個(gè) 實(shí)施例中,TLP與地址和有效載荷相關(guān)聯(lián),其中,地址用于在PCIe架構(gòu)中路由TLP,并且有效 載荷包括將存儲(chǔ)在客戶(hù)