亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

對包含在通信信息包中的標識符進行轉換的方法和裝置的制作方法

文檔序號:6615892閱讀:157來源:國知局
專利名稱:對包含在通信信息包中的標識符進行轉換的方法和裝置的制作方法
技術領域
本發(fā)明通常涉及一種數據處理系統(tǒng),更特別地尤其涉及在包括多個主機 計算機系統(tǒng)和一個或多個適配器的數據處理系統(tǒng)中進行通信,其中這些主機計算機系統(tǒng)共享一個或多個適配器,并通過PCI交換組織總線(PCI switched-fabric bus)與該一個或多個適配器進行通信。而且更特別地,本 發(fā)明涉及一種計算機實現的方法、裝置和計算機程序產品,用于通過一種PCI 交換組織來轉換(translate)總線/設備/功能的編號,并且路由包括那些編號 的通信信息包,其中該組織能夠利用PCI交換器使多個主^L系統(tǒng)共享一個或 多個適配器。
背景技術
傳統(tǒng)的PCI總線是一種本地并行總線,其允許擴展卡安裝入單計算機系 統(tǒng),例如服務器或個人計算機。PCI兼容的適配器卡然后能夠耦接到PCI總 線上,從而向計算機系統(tǒng)中增加輸入/輸出(1/0)設備,例如磁盤驅動器、 網絡適配器或其它設備。需要PCI橋/控制器,以便將PCI總線連接到計算機 系統(tǒng)的系統(tǒng)總線上。PCI總線上的適配器能夠通過PCI橋/控制器與裝有該PCI 總線的計算機系統(tǒng)的CPU進行通信。幾個PCI橋可以存在于單個計算機系統(tǒng) 中。然而,這些PCI橋用作將多個PCI總線耦接到裝有PCI總線的計算機系 統(tǒng)的CPU上。如果單個計算機系統(tǒng)包括多個CPU, PCI總線就能夠由該單個計 算機系統(tǒng)的多個CPU來使用。PCI Express (PCIe)總線是標準PCI計算機總線的最近版本。PCIe是 基于較高速度的串行通信的。PCIe是以樹型構造的I/O互連拓樸特別構建的, 其中具有指示I/O層次的根聯(lián)合體(Root Complex, RC ),它將主機計算機系 統(tǒng)與1/0連接。PCIe提供與PCI軟件環(huán)境兼容的遷移路徑。除了提供優(yōu)良的帶寬、性能 和在總線寬度和總線頻率上的可擴展性之外,PCI Express還具有其它的改 進特征。這些特征包括QoS (服務質量)、主動電源管理、本地熱插拔、每個針腳效率的帶寬、錯誤報告、恢復和才交正和創(chuàng)新形式因素(innovative form factor)、對等(peer-to-peer)傳輸和動態(tài)重配置。PCI Express還能通過低 針腳數和導線來進行產品的低成本設計。16通道(16 - lane )的PCI Express 互連能夠提供每秒8G字節(jié)的數據傳輸率。主機計算機系統(tǒng)典型地具有一種個PCI到主機的橋接功能,公知地作為 根聯(lián)合體。該根聯(lián)合體在CPU總線和PCI總線之間進行橋接,該CPU總線例 如是HyperTransportT"或CPU前端側總線(Front Side Bus, FSB )。包含一 個或多個根功能的多個主機計算機系統(tǒng)被稱為多根系統(tǒng)。過去尚沒有很好地 解決共享1/0組織的多根配置。今天,PCIe總線不允許在多個獨立的計算機系統(tǒng)之間共享PCI適配器。 />知的遵循PCIe標準或次級網絡標準例如光纖通道、InfiniBand或以太網 的1/0適配器典型地集成到刀片(blade)和服務器計算機系統(tǒng)中,并且專用于 集成有該I/O適配器的刀片或系統(tǒng)。專用的適配器增加了每個系統(tǒng)的成本, 這是因為適配器很昂貴。除了成本問題,還涉及到刀片中的物理空間。在刀 片中為一個適配器所提供的可利用空間較小,通常不存在加入多于一個適配 器的簡單方法。能夠在多個主機計算機之間共享適配器將降低每個主機的連通成本,這 是因為每個適配器服務于多個主機的而不僅是一個主機的1/0需要。能夠在 多個主機之間共享適配器也能夠提供額外的1/0擴展和靈活性選擇。每個主 機能夠通過集體可用的任意數量的適配器來訪問I/O。不是受到主機系統(tǒng)中 的1/0插槽的限制,這種1/0連通性選擇包括使用安裝在通過共享總線連接 的任意主機系統(tǒng)中的適配器。在公知的系統(tǒng)中,PCIe總線提供一種單個主機和一個或多個適配器之間 的通信路徑。對I/O適配器的讀寫訪問在根聯(lián)合體中轉換為信息包,該信息 包被從主機系統(tǒng)或者包含在那個主機系統(tǒng)中的系統(tǒng)映像經過PCIe組織傳輸 到指定給那個主機或系統(tǒng)映像的預期適配器。該PCIe標準定義了總線/設備/ 功能(bus/device/f露tion, BDF)編號(B=PCI總線段編號,0=那條總線 上的PCI設備編號,F-在那個特定設備上的功能編號),這些編號能夠用于標 識例如I/O適配器的設備中的特定功能。主機計算機系統(tǒng)的根聯(lián)合體用于將 BDF編號指定給該主機以及與該主機相關聯(lián)的每個I/O適配器中的每個功能。該BDF編號包括用于遍歷PCI組織的三個部分1/0適配器所處于的PCI總線的編號,該總線上的I/O適配器的設備編號,以及在該I/0適配器中正 在使用的特定功能的功能編號。主機可包括多個不同的系統(tǒng)映像或操作系統(tǒng)映像。系統(tǒng)映像是例如WINDOWS⑧或LINUX⑧這樣的通用操作系統(tǒng)或者例如網絡文件系統(tǒng)設備所使用的 嵌入式操作系統(tǒng)的專用目的操作系統(tǒng)的一個實例。當主機包括多于一個的系 統(tǒng)映像時,每個系統(tǒng)映像被視為該單一設備也就是主機中的不同功能。每個通信信息包包括源地址字段和目的(destination)地址字段。這些是 分配給特定終點(end point)的地址范圍內的存儲器地址。這些地址范圍關聯(lián) 于特定源BDF和目的BDF值。主機所傳輸的每個信息包包括與預期適配器的映射地址范圍相應的目的 地址。該目的地址由主機的根聯(lián)合體使用來標識用于該特定信息包的正確輸 出端口 。該根聯(lián)合體然后將這個信息包傳輸到所識別的端口之外。使用組織(fabric)把該主機耦接到I/O適配器。在該組織中包含一個或 多個交換器。這些交換器通過該組織將信息包路由到它們所預期的目的地。 該組織中的交換器檢查主機所指定的適配器BDF,用于確定信息包是否必須 通過該交換器進行路由,如果是,就通過它輸出交換器端口。根據PCIe標準,主機中的根聯(lián)合體指定用于主機和用于適配器的BDF 編號?,F有技術假設只有一個主機耦接到該組織上。當只有一個主機耦接到 該組織上時,因為單個根聯(lián)合體負責指定所有BDF編號,所以可以不存在根 聯(lián)合體指定的BDF編號的重疊。如果沒有重疊,交換器就能正確地將信息包 路由到它們預期的目的地。根聯(lián)合體遵循用于指定BDF編號的定義處理。該根聯(lián)合體將BDF編號 0. 0. 1指定給第一系統(tǒng)映像,將BDF編號0. 0. 2指定給第二系統(tǒng)映像,等等。物理I/O適配器典型地被虛擬化(virtual ize),以^更物理I/O適配器表 現為多個單獨的虛擬1/0適配器。這些虛擬的適配器中的每一個是單獨的功 能。每個虛擬1/0適配器與系統(tǒng)映像相關聯(lián)。 一個物理1/0適配器能夠被虛 擬化為每一個與不同的系統(tǒng)映像相關聯(lián)的虛擬1/0適配器。例如,如果主機 包括3個系統(tǒng)映像,則物理1/0適配器能夠被虛擬化為3個虛擬1/0適配器, 其中每個虛擬1/0適配器與不同的系統(tǒng)映像相關聯(lián)。而且,系統(tǒng)可以包括幾 個物理I/0適配器,每個物理1/0適配器包括一個或多個虛擬適配器。虛擬I/O適配器將然后與單一主機的不同系統(tǒng)映像相關聯(lián)。例如,第一物理I/O適配器可能包括與該主機的第一系統(tǒng)映像相關聯(lián)的第一虛擬I/O適配器以及 與該主機的第二系統(tǒng)映像相關聯(lián)的第二虛擬I/O適配器。第二物理I/O適配 器可能只包括與該主機的第三系統(tǒng)映像相關聯(lián)的單個虛擬1/0適配器。第三物理適配器可能包括兩個虛擬適配器,第一個與該第二系統(tǒng)映像相關聯(lián),而 第二個與該第三系統(tǒng)映像相關聯(lián)。如果多個主機同時耦接到該組織,就會出現這些主機的根聯(lián)合體所選擇的BDF編號的重疊。重疊的出現是因為每個主機都將為自己指定BDF編號 0.0.1。這樣,應當僅標識在一個主機中所包括的僅一個功能的BDF將不會唯 一地在僅一個主機中標識僅一個功能。根聯(lián)合體將BDF編號1. 1. 1指定給該根聯(lián)合體在第一總線上所見的第一 適配器中的第一功能。這個過程將持續(xù)下去,直到所有的BDF編號都被指定。按照設備運行所需為每個設備指定唯一的存儲器地址范圍。這些地址范 圍對應于所指定的BDF編號,但僅有根聯(lián)合體維持其使用來路由信息包的對 應值的表。如果多個主機被耦接到該組織上,每個主機的根聯(lián)合體將把BDF編號 1.1.1指定給該根聯(lián)合體在第一總線上所見的第一適配器中的第一功能。這 將導致BDF編號1.1. l被指定給多個不同的功能。因此,就會出現將由多個 主積W吏用的BDF編號的重疊。以一種相似的方式,在每個主才幾上為它的i殳備 所指定的存儲器地址范圍將會與其它的主機上為它們的設備所指定的存儲器 地址范圍相重疊。當BDF編號和存儲器地址范圍重疊時,交換器就不能正確 地路由信息包。因此,需要一種方法、裝置和計算機程序產品,用于通過包括一個或多 個主機系統(tǒng)的組織進行地址轉換和通信信息包的路由,每個主機系統(tǒng)具有一 個或多個系統(tǒng)映像,通過互連的多根交換器的組織與一個或多個物理適配器 通信,其中每個物理適配器提供一個或多個虛擬適配器。發(fā)明概述本發(fā)明的優(yōu)選實施例是一種計算機實現的方法、裝置和計算機程序產品, 用于通過使用多個PCI根交換器的PCI交換器組織來轉換地址并改善通信信 息包的^各由。公開了一種計算機實現的方法、裝置和計算機程序產品,其用于通過該組織轉換BDF地址和路由通信信息包。數據處理環(huán)境包括使用PCI總線或與 PCI交換器互連到單個PCI組織中的多個PCI總線段而耦接到適配器上的主 機計算機系統(tǒng)。該組織包括從主機計算機系統(tǒng)之一接收通信信息包的機制, 該信息預期在被傳輸到由適配器之一所提供的特定功能。轉換是在直接連接到主機上的交換器上進行的,然后再次在直接連接到 所預期的適配器的交換器中進行轉換。該組織中的所有接收該信息包的其它 交換器將轉發(fā)該信息包,而不用轉換任何地址編號。當交換器通過源端口接收信息包時,交換器將對包括在該交換器中的轉 換機制標識這個源端口 。交換器將該信息包移到該機制中。該機制從該信息 包中獲取源地址和目的地址,其中每個都包括源BDF編號和目的BDF編號的 編碼版本。該機制使用源端口 、源BDF和目的BDF在它的BDF表中標識特定 的行。該機制然后分析所標識的行中的狀態(tài)字段。如果狀態(tài)字段表示該信息包 應當僅進行路由(不用執(zhí)行轉換),交換器就將該信息包移出機制,然后將該 信息包傳輸到由該所標識的行指示的目的端口之外。使用該目的BDF路由這 個信息包。如果狀態(tài)字段表示該信息包中的BDF編號應當被轉換,該機制就用存儲 在所識別的行中的已轉換源BDF字段中的BDF編號,來替換當前存儲在該信 息包的源BDF字段中的源BDF編號。該機制還用存儲在所識別的行中的已轉 換目的BDF字段中的BDF編號,來替換當前存儲在該信息包的目的BDF字段 中的目的BDF編號。交換器將該信息包移出該機制,然后將該信息包傳輸到 由該所識別的行表示的目的端口之外。這個信息包使用該目的BDF進行路由, 在這種情況下該目的BDF是經轉換的目的BDF。附圖的簡要說明在所附權利要求書中將闡述能夠表達本發(fā)明特點的新特征。然而,本發(fā) 明本身,以及使用的優(yōu)選模式,進一步包括其目的和有益效果,將在結合了 附圖來閱讀如下對示意性實施例的詳細描述的時候得到最佳的理解。

圖1是根據示意性實施例的分布式計算機系統(tǒng)的框圖; 圖2是根據示意性實施例的邏輯劃分的平臺的方框圖;圖3是根據示意性實施例的數據處理系統(tǒng)的方框圖,該系統(tǒng)包括PCI交換組織總線(組織),其包括在一個或多個主機系統(tǒng)所直接連接到的多個多根PCI交換器中實現的BDF轉換機制;圖4示出了根據示意性實施例的組成通信信息包的字段的方框圖;圖5是根據示意性實施例的第一 BDF轉換表的方框圖;圖6是根據示意性實施例的第二 BDF轉換表的方框圖;圖7是才艮據示意性實施例的第三BDF轉換表的方框圖;以及圖8示出了根據示意性實施例的高層流程圖,它描繪了用于在源設備和目的設備之間路由信息包的轉換標識符。優(yōu)選實施例的詳細描述示意性的實施例能夠以任意通用或專用目的的計算系統(tǒng)來實現,其中該 計算系統(tǒng)中,多個主機計算機系統(tǒng)通過公共I/O組織共享I/O適配器(I/O adapter, IOA)池。在該示意性實施例中,該組織是符合PCI Express標準 的設備的集合。在示意性實施例中,I/O組織被附接到多于一個的主機計算機系統(tǒng)中, 以便多個不同的主機計算機系統(tǒng)能夠與其它主機計算機系統(tǒng)一起共享也附接 到該組織上的I/O適配器。這些適配器可以是提供單一功能的物理適配器, 或者是已被劃分為多個功能的物理適配器,這些功能中的每一個表現為虛擬 適配器。優(yōu)選地,每個物理適配器、功能或虛擬適配器,都已被分配給一個 且僅一個特定主機計算機系統(tǒng)。主機計算機系統(tǒng)訪問每一個被授權以使用主機分配的BDF編號進行訪問 的組織設備和/或適配器。主機分配的BDF編號是由主機所分配的,在該特定 主機的范圍內是唯一的。這樣,任意的主機分配的BDF編號在特定主機中都 不存在重復。但是,由于每個主機都分配它自己的BDF編號,其它的主機也 可以向授權使用的適配器分配相同的BDF編號。盡管主機分配的BDF編號在 特定主機中是唯一的,但在所有主機上或整個組織上可能是不唯一的。當主機將信息包傳輸給它所指定的適配器之一時,該主機就將預期適配 器上的其主機分配的適配器BDF編號插入到包含在該信息包的目的地址字段 中。該主機把該主機自身的主機分配的主機BDF編號放入包含在該信息包的 源地址字段中。根據示意性實施例,在系統(tǒng)的組織中的每個交換器中都包括轉換機制(BDF表)。該BDF表優(yōu)選地是硬件設備。該BDF表用于使能或禁止從每個主 機到每個設備上的訪問,簡化主機和設備之間通信的路由,并且保護一個主 機免受另 一個主機的地址空間影響。BDF表包括用于確定包含在信息包中的源和目的BDF編號是否需要被轉 換的信息。并且,BDF表包括在需要轉換的情況下使用的經轉換的源和目的 BDF編號。每個信息包包括源BDF字段和目的BDF字段。源BDF被包含在源BDF字 段中,而目的BDF被包含在目的BDF字段中。當PCI交換器通過它的源端口之一接收信息包時,該PCI交換器將該信 息包移到BDF表中。BDF表中的機制使用源端口的標識、源BDF和目的BDF, 標識BDF表的一行。然后該機制分析所標識的行中的轉換字段,以確定源和 目的BDF是否需要進行轉換。該轉換字段指明"轉換"或者"路由"。當字段指明"路由"時,交換器就將信息包移出該機制,并將該信息包 通過由所識別的行所指明的該信息包的目的端口進行傳輸。當該字段指明"轉換"時,該機制就用由所識別的行所指明的經轉換的 源BDF替代原始的源BDF,以及用由所識別的行所指明的經轉換的目的BDF 替代原始的目的BDF的方式,來修改該信息包?,F在參考附圖,特別是參考圖1,根據示意性實施例描述了分布式計算 系統(tǒng)環(huán)境100的框圖。圖1所描繪的分布式計算系統(tǒng)采用了兩個或多個根聯(lián) 合體(RC) 108, 118, 128, 138和139的形式,這些聯(lián)合體(complex)通過 1/0鏈路110, 120, 130, 142和143附接到1/0組織144上,這些聯(lián)合體還 附接到根節(jié)點(root node, RN ) 160-163的存儲控制器104, 114, 124和134 上。根聯(lián)合體包含在根節(jié)點的主機中。主機計算機系統(tǒng)典型地具有PC I到主 機的橋接功能,該功能公知為根聯(lián)合體。根聯(lián)合體在CPU的前側總線(FSB), 或者另一CPU總線,例如Hypertransport,與PCI總線之間橋接。多根系統(tǒng) 是一種包括兩個或多個主機的系統(tǒng),從而包含兩個或多個根聯(lián)合體。根節(jié)點 是完整的計算機系統(tǒng),例如服務器計算機系統(tǒng)。在這里,根節(jié)點還被稱為主 才幾節(jié)點。在其它的實施例中,根節(jié)點可具有更復雜的、通過多個橋到該組織的附接,或者到該組織中的多點的連接?;蛘撸?jié)點可具有用于協(xié)調與其它根 節(jié)點共享適配器的使用的外部手段。但是,在所有的實例中,本發(fā)明所描述的BDF表是位于主機系統(tǒng)和適配器之間的,從而能夠介入到主機和適配器之 間所有的通信中。BDF表將利用根交換器中的僅一個入口和僅一個出口,把 每個主機功能對(host-function pair)看作單一的連接。1/0組織通過鏈路151-158附接到IOA 145-150上。IOA可以是如145-146 和149中的單一功能IOA,或者是如147-148和150中的多功能IOA。而且, IOA可以通過例如145-148的單一鏈i 各,或者通過例如149-150的用于冗余 度的多條鏈路,連接到I/0組織上。根聯(lián)合體(RC) 108, 118, 128, 138和139是根節(jié)點(RN ) 160-163的 一部分。每個根節(jié)點可以有多于一個的根聯(lián)合體,例如在RN163中。除了根 聯(lián)合體之外,每個根節(jié)點都包括一個或多個中央處理單元或其它處理部件 101-102, 111-112, 121-122, 131-132,存儲器103, 113, 123和133,存 儲控制器104, 114, 124和134,這些存儲控制器連接著CPU、存儲器并通過 根聯(lián)合體連接著I/O,執(zhí)行著例如為存儲器處理連貫性業(yè)務(coherency traffic)的功能。根節(jié)點在它們的存儲控制器上例如通過連接159連接起來,以形成用作 單一只十稱、多處J里(Symmetric Multi-Processing, SMP )系纟充的連貫寸生i或,或 者可以是具有單獨連貫性域的獨立的節(jié)點,例如在RN 162_163中。在這里配置管理器164也被稱為PCI管理器??蛇x擇地,PCI管理器164 可以是連接到1/0組織144的獨立的實體,或者可以是RN 160-163其中一個 的一部分。分布式計算系統(tǒng)100可以用各種商業(yè)上可用的計算機系統(tǒng)來實現。例如, 分布式計算系統(tǒng)100可以用國際商業(yè)機器7>司所生產的IBMeServer iSeries Model 840系統(tǒng)來實現。這種系統(tǒng)可以支持使用OS/400操作系統(tǒng)的邏輯分區(qū), 該操作系統(tǒng)也可從國際商業(yè)機器公司得到。本領域的普通技術人員將會理解,圖1所描繪的硬件是可以改變的。例 如,其它外設,諸如光盤驅動器等等,也可以額外使用或代替所描繪的硬件。 所描繪的實例并不意味著對本發(fā)明的體系結構進行限制。圖2是根據示意性實施例的邏輯劃分的平臺的方框圖。邏輯劃分的平臺 200中的硬件可以實現為例如圖1所示的分布式計算系統(tǒng)100。邏輯劃分的平臺200包括經劃分的硬件230,操作系統(tǒng)202, 204, 206, 208和分區(qū)固件 (partition firmware)210。操作系統(tǒng)202, 204, 206和208可以是單個操作系統(tǒng)的多個副本,也可 以是同時在邏輯分區(qū)的平臺200上運行的多個異質的(heterogeneous)*操作 系統(tǒng)。這些操作系統(tǒng)可以使用OS/400來實現,其被設計為與分區(qū)管理固件, 例如系統(tǒng)管理程序(Hypervisor )相接口。 OS/400只是作為一個實例在這些 示意性實施例中使用。其它類型的操作系統(tǒng),例如AIX和Linux,也可以依靠特定的實現方式來使用。操作系統(tǒng)202, 204, 206和208位于分區(qū)203, 205, 207和209中。系 統(tǒng)管理軟件是用于實現分區(qū)管理固件210的軟件示例,且可以從國際商業(yè)機 器公司得到。固件是存儲在存儲器芯片中的"軟件",它能夠保存它的內容而 不需要電源,例如,只讀存儲器(ROM),可編程ROM (PROM),可擦除可編程 R0M(EPR0M),電可擦除可編程ROM (EEPROM),以及非易失性隨機訪問存儲 器(非易失性RAM)。另外,這些分區(qū)還包括分區(qū)固件211, 213, 215和217。分區(qū)固件211, 213, 215和217可以用初始的引導區(qū)代碼,IEEE-1275標準開》文固件以及運 行時間4是取軟件(runtime abstraction software, RTAS)來實現,其可從 國際商業(yè)機器公司獲得。當對分區(qū)203, 205, 207和209實例化時,引導區(qū)代碼的副本通過平臺 固件21(M皮加載到分區(qū)203, 205, 207和209。此后,控制^C轉移到該引導 區(qū)代碼,引導區(qū)代碼然后就加載該開放固件和RTAS。相關的或分配給該分區(qū) 的處理器然后被分派給該分區(qū)的存儲器,以便執(zhí)行分區(qū)固件。經劃分的硬件230包括多個處理器232-238,多個系統(tǒng)存儲單元240-246, 多個IOA 248-262, NVRAM存儲器298以及儲存單元270。處理器232-238、 系統(tǒng)存儲單元240-246、 NVRAM存儲器298和IOA 248-262中的每一個,或其 中一部分,可以通過被分配給分區(qū)之一而劃分到邏輯劃分的平臺200的多個 分區(qū)中的一個,每個經劃分的資源然后與操作系統(tǒng)202, 204, 206和208中 的一個相3十應。分區(qū)管理固件210為分區(qū)203, 205, 207和209執(zhí)行大量功能和服務, 從而建立并實施邏輯劃分的平臺200的劃分。分區(qū)管理固件210是固件實現 的虛擬機,它與基礎(underlying)硬件是相同的。這樣,分區(qū)管理固件210通過虛擬化邏輯劃分的平臺200的硬件資源,而允許同時執(zhí)行獨立的OS映像 202, 204, 206和208。服務處理器290可用于提供各種服務,例如分區(qū)中平臺錯誤的處理。這 些服務也可以作為服務代理,從而將錯誤報告回傳給廠家,例如國際商業(yè)機 器公司。不同分區(qū)的操作可以通過硬件管理控制臺(console)來控制,例如硬 件管理控制臺280。硬件管理控制臺280是單獨的分布式計算系統(tǒng),從其系在邏輯分區(qū)(LPAR)環(huán)境中,不允許一個分區(qū)中的資源或程序影響另一 個分區(qū)的操作。而且,為了便于使用,資源的分配需要粒度細化 (fine-grained)。圖3示出了根據示意性實施例的包括PCI交換組織總線的數據處理系統(tǒng), 其包括BDF編號轉換和路由。圖3描繪了通過單個根PCI交換器支持多個根 節(jié)點的PCI組織。數據處理系統(tǒng)300包括多個主機計算機系統(tǒng)301-303,每個主機計算機 系統(tǒng)包括單個或多個系統(tǒng)映像(System Image, SI) 304-308。這些系統(tǒng)然后 通過它們的根聯(lián)合體310-312與1/0組織309相接口。這些根聯(lián)合體中的每 一個都可以具有連接到該PCI根交換器的一個端口 。根聯(lián)合體310通過端口 382連接到根PCI交換器327的端口 330。根聯(lián)合體311通過端口 383連接到 根PCI交換器322的端口 332。根聯(lián)合體312通過端口 384連接到根PCI交 換器331的端口 333。從根聯(lián)合體端口到PCI根交換器端口的連接可以用一 個或多個物理鏈路來實現,這些鏈路可被看作單個的端口到端口的連接。主 機計算機系統(tǒng)連同相應的根聯(lián)合體被稱為根節(jié)點。PCI交換器327使用下游端口 360從而通過PCI總線5將物理I/O適配 器(IOA) 1 342附接到PCI組織。物理適配器1 342具有兩個虛擬IO適配 器或虛擬I/0資源,343和344。虛擬適配器343是物理適配器342的功能0 (F0),而虛擬適配器344是物理適配器342的功能1 ( Fl )。相似的,PCI交換器327使用下游端口 361從而通過PCI總線6將物理 I/O適配器2 345附接到PCI組織。物理適配器2 345具有三個虛擬I/O適 配器或虛擬IO資源,346, 347和348。虛擬適配器346是物理適配器345的 功能0(F0),虛擬適配器347是物理適配器345的功能1 (Fl),而虛擬適配 器348是物理適配器345的功能2 ( F2 )。PCI交換器331使用下游端口 362從而通過PCI總線7將物理I/O適配 器3 349附接到PCI組織。物理適配器3 349具有兩個虛擬1/0適配器,作 為物理適配器349的功能0的虛擬適配器350和作為功能1的虛擬適配器351。PCI交換器331使用下游端口 363來通過PCI總線8附接單個功能物理 IOA 4 352。在這個實例中,物理適配器352被示出為虛擬化意識上(aware) 物理適配器,其向PCI組織提供單個功能即功能O(FO)作為虛擬適配器353。 另一方面,非虛擬化的已知單一功能適配器將會以相同方式來接入。交換器322使用上游端口 332從而通過PCI總線1附接根311的端口 383。 交換器327 -使用上游端口 33(U人而通過pci總線0附接才艮310的端口 382。 交換器331使用上游端口 333從而通過PCI總線2附接根312的端口 384。PCI交換器327使用上游/下游端口 358從而通過交換器322的PCI總線 3附接上游/下游端口 358。交換器322使用端口 359從而通過PCI總線4附 接到交換器331的端口 359。IOA 342作為虛擬化的IOA來示出,其中其功能O(FO) 343被分配給系 統(tǒng)映像l (SI 1 ) 304并可由其訪問,以及其功能l (Fl) 344 -波分配給系統(tǒng) 映像2 (SI 2 ) 305并可由其訪問。這樣,虛擬適配器343被劃分給系統(tǒng)映像 304并只能由系統(tǒng)映像304來訪問。虛擬適配器344被劃分給系統(tǒng)映像305 并只能由系統(tǒng)映像305來訪問。以一種相似的方式,IOA 345作為虛擬化的IOA來示出,其中其功能0 (FO ) 346被分配給系統(tǒng)映像3 ( SI 3 ) 306并可由其訪問,以及其功能1 ( Fl) 347被分配給系統(tǒng)映像4 (SI 4 ) 307并可由其訪問,以及其功能2 ( F2 ) 348 被分配給系統(tǒng)映像5 (SI 5 ) 308。這樣,虛擬適配器346被劃分給系統(tǒng)映像 306并只能由系統(tǒng)映像306來訪問;虛擬適配器347被劃分給系統(tǒng)映像307 并只能由系統(tǒng)映像307來訪問;虛擬適配器348被劃分給系統(tǒng)映像308并只 能由系統(tǒng)映像308來訪問。IOA 349作為虛擬化的IOA來示出,其中其F0 350 ^皮分配給SI 2 305 并可由其訪問,以及其F1 351被分配給SI 4 307并可由其訪問。這樣,虛 擬適配器350被劃分給系統(tǒng)映像305并只能由系統(tǒng)映像305來訪問;虛擬適 配器351被劃分給系統(tǒng)映像307并只能由系統(tǒng)映像307來訪問。物理IOA 352作為單個功能虛擬IOA 353示出,該虛擬IOA 353被劃分 給系統(tǒng)映像308并只能由系統(tǒng)映像308來訪問。圖4是描繪根據示意性實施例的通信信息包的方框圖。通信信息包400 優(yōu)選地符合PCI Express (PCI-E)標準。信息包400由主才幾和I/O適配器使 用來互相通信。信息包400包括用于存儲信息包的發(fā)送方的源BDF編號的源 BDF字段402,用于存儲信息包的發(fā)送方的地址的源地址字段404,用于存儲 信息包的預期接收方的目的BDF的目的BDF字段406,用于存儲信息包的預 期接收方的目的地址的目的地址字段408,用于存儲控制信息的控制/協(xié)議字 段410,用于存儲數據的數據字段412,以及用于存儲糾錯位的字段414。糾 錯位可以是CRC或任一種其它的糾錯碼。信息包使用存儲在其目的BDF字段中的BDF編號進行路由。當設備對該 信息包作出響應時,使用存儲在信息包的源BDF字段中的BDF編號。圖5是根據示意性實施例的第一BDF轉換及保護表,表357。在這里僅 是用表500來幫助描述該示意性實施例。表500不是該示意性實施例的一部 分。表357包含在交換器322中。當交換器322接收并發(fā)送信息包時使用表 357。表357包括源端口字段502,源BDF字段504,目的BDF字段506,轉 換狀態(tài)字段508,目的端口字段510,經轉換的源BDF字段512以及經轉換的 目的字段514。當交換器322接收信息包時,交換器322將信息包移到BDF表357的一 種機制中。該機制然后使用源端口標識、在該信息包的源BDF字段中找到的 源BDF以及在該信息包的目的BDF字段中找到的目的BDF,從而定位BDF表 357中的行之一。 一旦定位了該行,該機制就使用狀態(tài)字段來確定當前包含 在該信息包中的源和目的BDF編號是否需要進行轉換。如果不需要轉換,該 信息包就簡單地從BDF表357中移出,并使用由該定位的行所指示的目的端 口進行發(fā)送。如果該行的狀態(tài)字段指示源和目的BDF編號需要進行轉換,該機制就將 經轉換的源BDF字段中的BDF編號存儲在信息包的源BDF字段中。該機制還 將經轉換的目的BDF字段中的BDF編號存儲在信息包的目的BDF字段中。圖6是根據示意性實施例的第二 BDF轉換及保護表,表390的方框圖。 在這里僅是用表600來幫助描述該示意性實施例。表600不是該示意性實施 例的一部分。表390包含在交換器327中。當交換器327接收并發(fā)送信息包時使用表390。表390包括源端口字段602,源BDF字,殳604,目的BDF字段606,轉 換狀態(tài)字段608,目的端口字段610,經轉換的源BDF字段612以及經轉換的 目的字段614。圖7是根據示意性實施例的第一BDF轉換及保護表,表392。在這里僅 是用表700來幫助描述該示意性實施例。表700不是該示意性實施例的一部 分。表392包含在交換器331中。當交換器331接收并發(fā)送信息包時就使用 表392。表392包括源端口字段702,源BDF字段704,目的BDF字段706, 轉換狀態(tài)字段708,目的端口字段710,經轉換的源BDF字^炎712以及經轉換 的目的字段714。作為一個實例,假設主機303中的系統(tǒng)映像5 308將信息包發(fā)送給物理 1/0適配器中2 345的其功能2 348。該主機將把目的BDF 0, 1. 1插入到信息 包的目的字段中,并把源BDFO. 0. 2插入到信息包的源字段中。當功能2 348 答復該信息包時,該源BDF將被用作目的BDF。該系統(tǒng)映像已被主機303分 配給了源BDF 0.0.2。該信息包將從端口 384發(fā)送出并進入到包含在交換器 331中的端口 333中。交換器331然后接收該信息包并將其移到BDF表392中(見圖7 )。 BDF 表392中的機制然后將使用源端口,即333,從該信息包的源BDF字段中讀 出的源BDF,即0.0.2,以及A/v該信息包的目的字^a中讀出的目的BDF,即 0. 1. 1,來定位行716。該機制然后讀取行716的狀態(tài)字段708。該字段指示必須要完成BDF編 號的轉換。該機制然后從行716的經轉換的源BDF字段712中讀取BDF。該 經轉換的源BDF是2. 1. 2。該機制然后將這個經轉換的源BDF存儲在信息包 的源BDF字段中。該機制然后從行716的經轉換的目的BDF字段714中讀取BDF。該經轉 換的目的BDF是6. 1. 3。該機制然后將這個經轉換的目的BDF存儲在信息包 的目的BDF字段中。現在具有了經轉換的源BDF和經轉換的目的BDF的該信息包,被從由行 716的目的端口字段710所標識的目的端口發(fā)送出來。目的字段710指示該 信息包應當從端口 359發(fā)送出。端口 359連接到端口 335。因此,信息包被從359發(fā)送出并由交換器322的端口 335接收。交換器322將該信息包移到其BDF表357中(見圖5)。 BDF 表357中的機制然后使用將源端口,即335,從該信息包的源BDF字段讀出 的源BDF,即2, 1, 2,以及從該信息包的目的字段中讀出的目的BDF,即6, 1. 3, 來定位行516。該機構然后將讀取行516的狀態(tài)字段508。該字段指示信息包應當進行 路由,而不需要執(zhí)行BDF編號的轉換。仍舊具有其原始的源BDF2. 1. 2和原始 的目的BDF6. 1. 3的信息包,然后被從行516的目的端口字^殳510所標識的目 的端口發(fā)送出去。目的字段510指示該信息包應當從端口 334發(fā)送出。端口 334連接到端口 358。因此,信息包被發(fā)送出端口 334并由交換器 327中的端口 358接收。交換器327接收該信息包并將其移到它的BDF表390 中(見圖6)。 BDF表390中的機制然后將使用源端口,即358,從信息包的 源BDF字段中讀出的源BDF,即2. 1.2,以及從信息包的目的字段中讀出的目 的BDF,即6. 1. 3,來定位行616。該機制然后將讀取行616的狀態(tài)字段608。該字段指示必須要完成BDF 編碼的轉換。該機制然后從行616的經轉換的源BDF字段612讀出BDF。這 個經轉換的源BDF是2. 1. 2。該機制然后將這個經轉換的源BDF存儲到信息 包的源BDF字段中。該機制然后從行616的經轉換的目的BDF字段614中讀出BDF。這個經 轉換的目的BDF是0. 1. 3。該機制然后將這個經轉換的目的BDF存儲在信息 包的目的BDF字段中?,F在具有經轉換的源BDF和經轉換的目的BDF的信息包,被從由行616 的目的端口字段610所標識的目的端口發(fā)送出。目的字段610指示信息包應 當被發(fā)送出端口 361。端口 361連接到物理適配器2 345上。當物理適配器2 345接收該信息 包時,其將把該信息包路由到其第三個功能上,這是因為在BDF編號中的功 能字段中包括一個"3"。物理適配器2 345的第三個功能是虛擬1/0適配器 348。虛擬I/O適配器348是該信息包的最終所預期的接收方。當虛擬適配器348對該信息包作出響應時,其將產生新的信息包,并在 該新的信息包中包括由虛擬適配器348所接收的原始信息包所提供的源BDF, 作為該新的信息包的目的BDF。包括在原始信息包中的該源BDF是BDF 2, 1. 2。 新的信息包將具有目的BDF 2. 1. 2。虛擬適配器348將包括它自己的BDF作為該信息包的源BDF。虛擬適配 器348自己的BDF是0. 1. 3。因此,該信息包將具有源BDF 0. 1. 3。信息包然后將從虛擬I/O適配器348發(fā)送到交換器327的端口 361。然 后當該新的信息包被發(fā)送到其最終目的地即系統(tǒng)映像5 308時,上面所描述 的處理過程反向地發(fā)生。圖8是根據示意性實施例的一種高級流程圖,它描繪轉換用來在源設備 和目的設備之間路由信息包的標識符。該處理過程開始于方塊800,然后前 進到方塊802,它描述了 PCI交換器通過交換器的輸入端口中的一個從源設 備接收信息包。接著,方塊804描述了 PCI交換器將該信息包移動到包含在 該PCI交換器中的BDF表中的路由機制中。處理過程然后前進到方塊806,它描述了 BDF表中的路由機制獲取存儲 在該信息包的源BDF字段中的值以及存儲在該信息包的目的BDF字段中的值。 隨后,方塊808描述由交換器邏輯提供源端口編號作為BDF表中的機制的輸 入,其中通過該源端口信息包進入到交換器。接下來,方塊810描繪了 BDF 表中的機制在該BDF表中定位包括該源BDF、目的BDF和源端口編號的行。此后,方塊812圖示了確定該行是否描述了轉換是必要的。這種確定是 通過讀取在所定位的行的轉換狀態(tài)字段中所存儲的標識符來做出的。如果確 定出該行描述了轉換不是必要的,處理過程就前進到方塊814,這里描繪了 PCI交換器將未修改的信息包從BDF表移出到所定位的行中所標識的目的端 口。接著,方塊816描述了 PCI交換器將信息包通過該行所標識的目的端口 進行發(fā)送。處理過程然后在方塊818結束。再次參考方塊812,如果確定出該行指示了轉換是必要的,處理前進到 方塊820,這里描繪了 BDF表中的機制從所定位的行中獲取經轉換的源BDF 和經轉換的目的BDF。接著,方塊822描述了 BDF表中的機制使用從所定位 的行中獲取的經轉換的源BDF,替代從信息包的源BDF字段中獲取的源BDF。此后,方塊824描繪了 BDF表中的機制使用從所定位的行中獲取的經轉 換的目的BDF,來替代信息包的目的BDF字段中的目的BDF。然后,方塊826 描述了 PCI交換器將經修改的信息包從BDF表中移出到所定位的行中所標識 的目的端口。處理過程然后返回到方塊816。本發(fā)明可以采用全部硬件實施例的形式、全部軟件實施例的形式或既包 括硬件又包括軟件的實施例的形式來實現。在一個優(yōu)選的實施例中,本發(fā)明是采用軟件實現的,它包括但不僅限制于固件、駐留軟件、微代碼等等。而且,本發(fā)明能夠采用可從計算機可用或可讀的介質讀取的計算機程序 產品來實現,其中在該介質上提供可由計算機或任意指令執(zhí)行系統(tǒng)使用或與 其結合使用的程序代碼。為了描述的目的,計算^L可用或計算機可讀介質可 以是任意有形的裝置,該裝置能夠包括、存儲、通信、傳播或傳輸該程序, 其中該程序可由指令執(zhí)行系統(tǒng)、裝置或設備來使用或進行結合使用。該介質可以是電、磁、光學、電磁、紅外或半導體系統(tǒng)(或裝置或設備) 或者傳播介質。計算機可讀介質的實例包括半導體或固態(tài)存儲器、磁帶、可移動計算機盤、隨機訪問存儲器(RAM)、只讀存儲器(R0M)、硬磁盤和光盤。 光盤的當前的實例包括致密盤只讀存儲器(CD-R0M)、致密盤讀/寫存儲器 (CD-R/W)和歸。適于存儲和/或執(zhí)行程序代碼的數據處理系統(tǒng)將包括通過系統(tǒng)總線直接 或間接耦接到存儲部件上的至少一個處理器。存儲部件可以包括在實際執(zhí)行 程序代碼期間所使用的本地存儲器,海量存儲器和高速緩存存儲器,它們?yōu)?至少某些程序代碼提供臨時存儲,以便降低必須在執(zhí)行代碼期間從海量存儲 器中進行檢索的次數。輸入/輸出或I/0設備(包括但不限于鍵盤、顯示器、定點設備等等)可 以直接地或者通過居間I/O控制器耦接到系統(tǒng)。網絡適配器也可以耦接到系統(tǒng)上,從而使數據處理系統(tǒng)可以通過居間私 有或公共網絡耦接到其它數據處理系統(tǒng)或遠程打印機或存儲設備上。調制解 調器、線纜調制解調器和以太網卡是目前可用的網絡適配器中的僅幾種。盡管為了描述和說明的目的在這里對本發(fā)明進行了介紹,但不是要以所 公開的形式窮舉或限制本發(fā)明。各種改變和修改對于本領域那些普通技術人 員都是可以理解的。為了最佳地解釋本發(fā)明的原理、實踐應用以及為了使本 領域的其它技術人員理解本發(fā)明,對實施例進行選擇和描述,進行了各種修 改的各種實施例同樣適于所預期的特定應用。
權利要求
1、一種在數據處理環(huán)境中對包含在通信信息包中的標識符進行轉換的方法,其中采用主機和I/O適配器所耦接的PCI組織在所述主機和所述I/O適配器之間路由該通信信息包,所述方法包括在把邊緣交換器所接收的所述通信信息包中的第一通信信息包路由出所述邊緣交換器之前,對所述通信信息包中的所述第一通信信息包所包含的目的標識符進行轉換,所述邊緣交換器直接連接到所述主機上或直接連接到所述I/O適配器上;以及對內部交換器所接收的所述通信信息包中的第二通信信息包進行路由,而不需要對包含在所述通信信息包中的第二通信信息包中的目的標識符進行轉換,所述內部交換器不直接連接到所述主機上或直接連接到所述I/O適配器上。
2、 如權利要求l的方法,還包括在把所述通信信息包中的所述第一通信信息包路由出所述邊緣交換器之 前,對包含在所述通信信息包中的所述第 一通信信息包中的源標識符進行轉 換。
3、 如權利要求l的方法,還包括在所述邊緣交換器和所述內部交換器中包含路由表;以及 利用所述路由表確定是否對包含在所述通信信息包中的所述標識符進行 轉換。
4、 如權利要求l的方法,還包括通過特定交換器中的源端口接收所述通信信息包中的特定一個;讀取包含在所述通信信息包中的所述特定一個中的特定源標識符和特定目的標識符;以及利用所述源端口 、所述特定源標識符和所述特定目的標識符來確定是否轉換所述特定目的標識符。
5、 如權利要求4的方法,還包括 在所述邊緣交換器和所述內部交換器中包含路由表;利用所述源端口 、所述特定源標識符和所述特定目的標識符標識所述路 由表中的4??;讀取所述行中包含的轉換字段中所存儲的值;以及 利用所述值確定是否轉換所述特定目的標識符。
6、 如權利要求l的方法,還包括轉換作為主機分配的標識符的、包含在所述通信信息包中的所述標識符。
7、 如權利要求l的方法,還包括通過以虛擬標識符來替代主機分配的標識符,來轉換所述通信信息包中 的所述第一通信信息包中包含的所述目的標識符。
8、 如權利要求l的方法,還包括包含在所述通信信息包中的所述標識符的每一個是總線/設備/功能 (BDF)編號。
9 、 一種在數據處理環(huán)境中對包含在通信信息包中的標識符進行轉換的裝 置,其中采用主機和I/O適配器所耦接的PCI組織在所述主機和所述I/O適 配器之間路由該通信信息包,所述裝置包括包含在邊緣交換器中的第 一機制,用于在把所述邊緣交換器所接收的所 述通信信息包中的第 一通信信息包路由出所述邊緣交換器之前,對所述通信 信息包中的所述第一通信信息包所包含的目的標識符進行轉換,所述邊緣交 換器直接連接到所述主機或直接連接到所述I/O適配器上,;以及包含在內部交換器中的第二機制,用于對所述內部交換器所接收的所述 通信信息包中的第二通信信息包進行路由,而不需要對包含在所述通信信息 包中的第二通信信息包的目的標識符進行轉換,所述內部交換器不直接連接 到所述主機上或直接連接到所述I/O適配器上。
10、 如權利要求9的裝置,還包括所述第 一機制用于在把所述通信信息包中的所述第 一通信信息包路由出 所述邊緣交換器之前,對包含在所述通信信息包中的所述第一通信信息包中 的源標識符進行轉換。
11、 如權利要求9的裝置,還包括 所述邊緣交換器和所述內部交換器中的路由表;以及 所述路由表用于確定是否對包含在所述通信信息包中的所述標識符進行轉換。
12、 如權利要求9的裝置,還包括通過特定交換器中的源端口接收的所述通信信息包中的特定一個;所述通信信息包中的所述特定一個包括特定源標識符和特定目的標識符;以及所述源端口 、所述特定源標識符和所述特定目的標識符;陂用來確定是否 轉換所述特定目的標識符。
13、 如權利要求12的裝置,還包括 所述邊緣交換器和所述內部交換器中的路由表;所述源端口 、所述特定源標識符和所述特定目的標識符被用來標識所述 路由表中的行;所述行中包含的轉換字段中所存儲的值;以及 所述值被用來確定是否轉換所述特定目的標識符。
14、 如權利要求9的裝置,還包括轉換作為主機分配的標識符的、包含在所述通信信息包中的所述標識符。
15、 如權利要求9的裝置,還包括通過以虛擬標識符來替代主機分配的標識符,來轉換所述通信信息包中 包含的所述目的標識符。
16、 如權利要求9的裝置,還包括包含在所述通信信息包中的所述標識符的每 一 個是總線/設備/功能 (BDF)編號。
全文摘要
一種計算機實現的方法、裝置和計算機程序產品,用于通過使用PCI交換器的組織來進行總線/設備/功能(BDF)轉換和通信信息包路由。標識符被包含在通信信息包中,其中使用耦接有主機和I/O適配器的PCI組織在該主機和I/O適配器之間對這些通信信息包進行路由。在邊緣交換器對所接收的第一通信信息包向外路由之前,對該通信信息包中所包含的目的標識符進行轉換,其中這些邊緣交換器直接連接到所述主機或直接連接到所述I/O適配器上。對內部交換器所接收的第二通信信息包進行路由,而不需要對包含在該第二通信信息包中的目的標識符進行轉換,其中這些內部交換器不直接連接到該主機或I/O適配器上。
文檔編號G06F13/12GK101226509SQ200710306189
公開日2008年7月23日 申請日期2007年11月16日 優(yōu)先權日2006年12月6日
發(fā)明者威廉·G·霍蘭, 威廉·T·博伊德, 斯蒂文·M·瑟伯, 斯蒂文·W·亨特, 道格拉斯·M·弗賴穆思, 里納托·J·里喬, 馬德琳·維加 申請人:國際商業(yè)機器公司
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1