計算機系統和計算機系統中端點設備訪問的方法
【專利摘要】本發明實施例提供一種對計算機系統中端點設備進行訪問的方法和計算機系統,現有技術在對計算機設備中端點設備進行管理時,需要依賴操作系統,不利于維護的問題。本發明實施例通過上述計算機系統中端點設備進行訪問的方法和計算機系統,端點代理設備建立端點設備在所述計算子系統中的第一地址與在所述管理子系統的第二地址之間的對應關系,在接收到管理控制器對端點設備第一訪問請求時,根據所述對應關系生成攜帶所述端點設備在所述計算子系統中的第一地址的第二訪問請求,并發送給所述端點設備。實現了管理控制器對端點設備訪問請求的發送到所述端點設備,且不需要操作依賴于操作系統,提高了對端點設備進行管理時的可維護性。
【專利說明】
計算機系統和計算機系統中端點設備訪問的方法
技術領域
[0001] 本發明涉及信息技術領域,特別涉及對計算機系統中端點設備訪問的方法和計算 機系統。
【背景技術】
[0002] 數據中心通常用以太網技術構建局域網,用FC(Fibre Channel,光纖通道技術)技 術構建SAN(Storage Area Network and SAN Protocols,存儲區域網絡及其協議),計算機 設備以太網卡用以接入局域網,光纖通道主機總線適配器HBA(Host Bus Adapter,主機總 線適配器)用以接入SAN。多種類型的接口卡和網絡設備削弱了業務靈活性,增加了數據中 心網絡管理復雜性、增加了設備成本和電力等方面的開銷。FCoE(Fibre Channel over Ethernet,以太網光纖通道)實現了以太網幀承載FC幀,使得FC SAN和以太網局域網可共享 同一個單一的、集成的網絡基礎設施,解決了不同類型網絡共存所帶來的問題,實現了網絡 基礎設施整合、精簡的目標。
[0003] 計算機設備中,網卡、RAID(Redundant Arrays of Independent Disks,冗余磁盤 陣列)卡、SSD(Solid State Drives,固態硬盤)卡和GPU(Graphics Processing Unit,圖形 處理器)卡等PCIE(Peripheral Component Interconnect express,快捷外圍部件互連標 準)端點設備。
[0004] 現有技術中計算機設備的管理子系統通過與運行在操作系統上的多個管理軟件 模塊通信來實現對各PCIE端點設備的配置管理,各管理軟件模塊分別對應管理各個PCIE端 點設備。對多個不同種類的PCIE端點設備的配置管理,需部署多個管理軟件模塊,導致部署 復雜且不易于后續升級維護。
【發明內容】
[0005] 本發明實施例提供一種對計算機系統中端點設備進行訪問的方法和計算機系統, 以實現不依賴操作系統對端點設備的配置管理。
[0006] 本發明實施例的第一方面,提供了一種計算機系統,包括計算子系統和管理子系 統,所述計算子系統包括中央處理器,所述管理子系統包括管理控制器,所述中央處理器用 于連接端點設備;
[0007] 所述計算機系統還包括端點代理設備,所述端點代理設備的第一端口通過PCIE鏈 路連接所述計算子系統中的所述中央處理器,所述端點代理設備的第二端口與所述管理子 系統中的所述管理控制器連接;
[0008] 所述中央處理器,用于分配所述端點設備在所述計算子系統中的設備信息,并將 所述端點設備在所述計算子系統中的設備信息寫入所述端點代理設備,所述端點設備在所 述計算子系統中的設備信息至少包括所述端點設備在所述計算子系統中的第一地址信息;
[0009] 所述管理控制器,用于在確定所述端點代理設備中被寫入所述端點設備在所述計 算子系統中的設備信息后,根據所述端點設備在所述計算子系統中的第一地址分配所述端 點設備在所述管理子系統中的第二地址,并將所述端點設備在所述管理子系統中的第二地 址寫入所述端點代理設備;
[0010]所述端點代理設備,用于在被寫入所述第二地址之后,建立所述端點設備在所述 計算子系統中的第一地址與所述端點設備在所述管理子系統中的第二地址之間的對應關 系;
[0011]所述管理控制器還用于發送第一訪問請求,所述第一訪問請求攜帶所述端點設備 在所述管理子系統中的的第二地址;
[0012] 所述端點代理設備還用于通過所述第二端口與所述管理控制器的連接接收所述 管理控制器發送的所述第一訪問請求,根據所述對應關系生成攜帶所述端點設備在所述計 算子系統中的第一地址的第二訪問請求,并通過所述第一端口連接的所述PCIE鏈路將所述 第二訪問請求發送給所述端點設備。
[0013] 結合本發明實施例的第一方面,在本發明實施例的第一方面的第一種可能的實現 方式中,
[0014] 所述中央處理器具體用于在所述計算子系統初始化過程中,根據基本輸入輸出系 統BIOS的指令掃描到所述端點設備和所述端點代理設備,分別為所述端點設備和所述端點 代理設備分配在所述計算子系統中的設備信息,并將所述端點設備在所述計算子系統中的 設備信息寫入所述端點代理設備。
[0015] 結合本發明實施例的第一方面的第一種可能的實現方式,在本發明實施例的第一 方面的第二種可能的實現方式中,所述中央處理器具體用于根據分配的所述端點代理設備 的在所述計算子系統中的設備信息,通過所述第一端口連接的所述PCIE鏈路向所述端點代 理設備寫入所述端點設備在所述計算子系統中的設備信息。
[0016] 結合本發明實施例的第一方面的第一種可能的實現方式,在本發明實施例的第一 方面的第三種可能的實現方式中,所述管理控制器與所述中央處理器通過南橋芯片連接;
[0017] 所述中央處理器具體用于通過所述南橋芯片將所述端點設備在所述計算子系統 中的設備信息通知到所述管理控制器;
[0018] 所述管理控制器還用于將獲取到的所述端點設備在所述計算子系統中的設備信 息通過所述第二端口的連接寫入所述端點代理設備。
[0019] 結合本發明實施例的第一方面的第一種、第二中和第三種可能的實現方式,在本 發明實施例的第一方面的第四種可能的實現方式中,
[0020] 所述端點代理設備還用于在被寫入所述端點設備在所述計算子系統中的設備信 息后,向所述管理控制器發送通知消息;
[0021] 所述管理控制器具體用于接收所述端點代理設備發送的所述通知消息,根據所述 通知消息確定所述端點代理設備中被寫入所述端點設備在所述計算子系統中的設備信息。
[0022] 結合本發明實施例的第一方面的第一種、第二中和第三種可能的實現方式,在本 發明實施例的第一方面的第五種可能的實現方式中,
[0023]所述管理控制器具體用于周期性地向所述端點代理設備發送查詢消息,接收所述 端點代理設備發送的所述查詢消息的響應消息,根據所述查詢消息的響應消息確定所述端 點代理設備中被寫入所述端點設備在所述計算子系統中的設備信息。
[0024]結合本發明實施例的第一方面的第一種至第五種可能的實現方式,在本發明實施 例的第一方面的第六種可能的實現方式中,
[0025]所述端點代理設備的第二端口與所述管理子系統中的所述管理控制器通過內部 集成電路I2C連接;
[0026]所述管理控制器還用于為所述端點代理設備分配I2C號;
[0027]所述管理控制器具體用于根據所述端點代理設備的I2C號,將所述第一訪問請求 發送到所述端點代理設備。
[0028]結合本發明實施例的第一方面的第一種至第五種可能的實現方式,在本發明實施 例的第一方面的第七種可能的實現方式中,
[0029]所述端點代理設備的第二端口與所述管理子系統中的所述管理控制器通過PCIE 鏈路連接;
[0030] 所述管理控制器還用于分配所述端點代理設備在所述管理子系統中的第二地址, 所述端點代理設備在所述管理子系統中的第二地址的范圍包含所述端點設備在所述管理 子系統中的第二地址的范圍;
[0031] 所述管理控制器具體用于根據所述端點設備在所述管理子系統中的第二地址,將 所述第一訪問請求發送到所述端點代理設備。
[0032] 結合本發明實施例的第一方面的第一種至第七種可能的實現方式,在本發明實施 例的第一方面的第八種可能的實現方式中,
[0033] 所述計算子系統還包括PCIE交換設備,所述端點設備通過所述PCIE交換設備連接 到所述中央處理器;
[0034]所述端點代理設備的第一端口通過PCIE鏈路連接所述PCIE交換設備以連接到所 述中央處理器。
[0035]結合本發明實施例的第一方面的第一種至第八種可能的實現方式,在本發明實施 例的第一方面的第九種可能的實現方式中,
[0036]所述端點代理設備位于所述計算子系統中;或,
[0037]所述端點代理設備位于所述管理子系統的管理控制器中。
[0038] 結合本發明實施例的第一方面的第一種至第九種可能的實現方式,在本發明實施 例的第一方面的第十種可能的實現方式中,
[0039] 所述端點設備在所述計算子系統中的設備信息包括下述信息中的至少一項:
[0040] 所述端點設備的輸入輸出I/O地址信息,所述端點設備的內存Memory地址信息,所 述端點設備的總線/設備/功能B/D/F號,或所述端點設備的設備類型信息。
[0041] 本發明實施例的第二方面,提供了一種對計算機系統中端點設備進行訪問的方 法,包括計算子系統和管理子系統,所述計算子系統包括中央處理器,所述管理子系統包括 管理控制器,所述中央處理器用于連接端點設備;所述方法包括:
[0042]所述中央處理器為所述端點設備分配在所述計算子系統中的設備信息,并將所述 端點設備在所述計算子系統中的設備信息寫入所述計算子系統中的端點代理設備中,所述 端點設備在所述計算子系統中的設備信息至少包括所述端點設備在所述計算子系統中的 第一地址信息;
[0043]所述管理控制器在確定所述端點代理設備中被寫入所述端點設備在所述計算子 系統中的設備信息后,根據所述端點設備在所述計算子系統中的第一地址分配所述端點設 備在所述管理子系統中的第二地址,并將所述端點設備在所述管理子系統中的第二地址寫 入所述端點代理設備;
[0044] 所述端點代理設備在被寫入所述第二地址之后,建立所述端點設備在所述計算子 系統中的第一地址與所述端點設備在所述管理子系統中的第二地址之間的對應關系;所述 端點代理設備的第一端口通過PCIE鏈路連接所述計算子系統中的所述中央處理器,所述端 點代理設備的第二端口與所述管理子系統中的所述管理控制器連接;
[0045] 所述管理控制器發送第一訪問請求,所述第一訪問請求攜帶所述端點設備在所述 管理子系統中的的第二地址;
[0046]所述端點代理設備通過所述第二端口與所述管理控制器的連接接收所述管理控 制器發送的所述第一訪問請求,根據所述對應關系生成攜帶所述端點設備在所述計算子系 統中的第一地址的第二訪問請求,并通過所述第一端口連接的所述PCIE鏈路將所述第二訪 問請求發送給所述端點設備。
[0047]結合本發明實施例的第二方面,在本發明實施例的第二方面的第一種可能的實現 方式中,所述方法還包括:
[0048]所述中央處理器在所述計算子系統初始化過程中,根據基本輸入輸出系統BIOS的 指令掃描到所述端點設備和所述端點代理設備,分別為所述端點設備和所述端點代理設備 分配在所述計算子系統中的設備信息,并將所述端點設備在所述計算子系統中的設備信息 寫入所述端點代理設備。
[0049] 結合本發明實施例的第二方面的第一種可能的實現方式,在本發明實施例的第二 方面的第二種可能的實現方式中,
[0050] 所述中央處理器根據分配的所述端點代理設備的在所述計算子系統中的設備信 息,通過所述第一端口連接的所述PCIE鏈路向所述端點代理設備寫入所述端點設備在所述 計算子系統中的設備信息。
[0051] 結合本發明實施例的第二方面的第一種可能的實現方式,在本發明實施例的第二 方面的第三種可能的實現方式中,所述管理控制器與所述中央處理器通過南橋芯片連接, 所述方法還包括:
[0052]所述中央處理器通過所述南橋芯片將所述端點設備在所述計算子系統中的設備 信息通知到所述管理控制器;
[0053]所述管理控制器將獲取到的所述端點設備在所述計算子系統中的設備信息通過 所述第二端口的連接寫入所述端點代理設備。
[0054]結合本發明實施例的第二方面的第一種、第二中和第三種可能的實現方式,在本 發明實施例的第二方面的第四種可能的實現方式中,
[0055] 所述方法還包括:
[0056] 所述端點代理設備在被寫入所述端點設備在所述計算子系統中的設備信息后,向 所述管理控制器發送通知消息;
[0057]所述管理控制器接收所述端點代理設備發送的所述通知消息,根據所述通知消息 確定所述端點代理設備中被寫入所述端點設備在所述計算子系統中的設備信息。
[0058]結合本發明實施例的第二方面的第一種、第二中和第三種可能的實現方式,在本 發明實施例的第二方面的第五種可能的實現方式中,
[0059] 所述方法還包括:
[0060] 所述管理控制器周期性地向所述端點代理設備發送查詢消息,接收所述端點代理 設備發送的所述查詢消息的響應消息,根據所述查詢消息的響應消息確定所述端點代理設 備中被寫入所述端點設備在所述計算子系統中的設備信息。
[0061] 結合本發明實施例的第二方面的第一種至第五種可能的實現方式,在本發明實施 例的第二方面的第六種可能的實現方式中,
[0062]所述端點代理設備的第二端口與所述管理子系統中的所述管理控制器通過內部 集成電路12C連接,所述方法還包括:
[0063]所述管理控制器為所述端點代理設備分配I2C號;
[0064]所述管理控制器根據所述端點代理設備的I2C號,將所述第一訪問請求發送到所 述端點代理設備。
[0065]結合本發明實施例的第二方面的第一種至第五種可能的實現方式,在本發明實施 例的第二方面的第七種可能的實現方式中,
[0066]所述端點代理設備的第二端口與所述管理子系統中的所述管理控制器通過PCIE 鏈路連接,所述方法還包括:
[0067]所述管理控制器還用于分配所述端點代理設備在所述管理子系統中的第二地址, 所述端點代理設備在所述管理子系統中的第二地址的范圍包含所述端點設備在所述管理 子系統中的第二地址的范圍;
[0068]所述管理控制器具體用于根據所述端點設備在所述管理子系統中的第二地址,將 所述第一訪問請求發送到所述端點代理設備。
[0069] 結合本發明實施例的第二方面的第一種至第七種可能的實現方式,在本發明實施 例的第二方面的第八種可能的實現方式中,
[0070] 所述計算子系統還包括PCIE交換設備,所述端點設備通過所述PCIE交換設備連接 到所述中央處理器;
[0071] 所述端點代理設備的第一端口通過PCIE鏈路連接所述PCIE交換設備以連接到所 述中央處理器。
[0072] 結合本發明實施例的第二方面的第一種至第八種可能的實現方式,在本發明實施 例的第二方面的第九種可能的實現方式中,
[0073]所述端點代理設備位于所述計算子系統中;或,
[0074]所述端點代理設備位于所述管理子系統的管理控制器中。
[0075] 結合本發明實施例的第二方面的第一種至第九種可能的實現方式,在本發明實施 例的第二方面的第十種可能的實現方式中,
[0076] 所述端點設備在所述計算子系統中的設備信息包括下述信息中的至少一項:
[0077]所述端點設備的輸入輸出I/O地址信息,所述端點設備的內存Memory地址信息,所 述端點設備的總線/設備/功能B/D/F號,或所述端點設備的設備類型信息。
[0078]通過上述計算機系統中端點設備進行訪問的方法和計算機系統,端點代理設備建 立端點設備在所述計算子系統中的第一地址與在所述管理子系統的第二地址之間的對應 關系,在接收到管理控制器對端點設備第一訪問請求時,根據所述對應關系生成攜帶所述 端點設備在所述計算子系統中的第一地址的第二訪問請求,并發送給所述端點設備。實現 了管理控制器對端點設備訪問請求的發送到所述端點設備,且不需要操作依賴于操作系 統,不需要對不同的端點設備進行不同的管理配置,提高了對端點設備進行管理時的可維 護性。
【附圖說明】
[0079] 為了更清楚地說明本發明實施例或現有技術中的技術方案,下面將對實施例或現 有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本 發明的一些實施例,對于本領域普通技術人員來講,在不付出創造性勞動性的前提下,還可 以根據這些附圖獲得其他的附圖。
[0080] 圖1為現有技術中一種計算機設備的基本結構示意圖;
[0081] 圖2為本發明實施例提供的一種計算機設備200的結構示意圖;
[0082] 圖3為本發明實施例提供的另一種計算機設備200的結構示意圖;
[0083]圖4為本發明實施例中端點代理設備2014的結構示意圖;
[0084]圖5為本發明實施例中端點代理設備2014的另一種實現方式結構示意圖;
[0085]圖6為本發明實施例中端點代理設備2014的進一步實現方式結構示意圖;
[0086]圖7為本發明實施例一種計算機系統300的結構示意圖;
[0087] 圖8為本發明實施例一種計算機系統300的另一種實現方式結構示意圖;
[0088] 圖9為本發明實施例對計算機系統中端點設備進行訪問的方法的流程示意圖。
【具體實施方式】
[0089] 下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完 整地描述,顯然,所描述的實施例是本發明的一部分實施例,而不是全部實施例。基于本發 明中的實施例,本領域普通技術人員在沒有做出創造性勞動的前提下所獲得的所有其他實 施例,都應屬于本發明保護的范圍。
[0090] 參考圖1,圖1為現有技術中一種計算機設備的基本結構示意圖。如圖1所示,計算 機設備100包含管理子系統102和計算子系統101。計算子系統101包含一個或者多個計算 CPU1011,多個計算CPU通過CPU總線或者互聯芯片進行連接,每一個計算CPU都可以訪問系 統所有的設備。同時,計算子系統的CPU與為操作系統提供存儲空間的內存1012 (MEMORY)連 接。計算子系統的CPU1011直接或使用PCIE鏈路通過PCIE交換模塊1013連接一個或者多個 PCIE端點設備,以擴展計算子系統的功能。例如,網卡作為端點設備1015提供以太網絡接入 能力,RAID卡作為端點設備1016提供存儲冗余功能,GPU卡作為端點設備1017提供圖形化輸 出能力,不同的計算機設備也可以根據需要設計由用戶來選擇擴展終端設備種類。計算子 系統的CPU通過南橋芯片1018或者直接連接的磁盤1019 (圖1以通過南橋芯片1018連接磁盤 1019為例),所述磁盤1019-般作為系統存儲設備。計算子系統上電后,計算子系統的CPU, 例如主用CPU1011,會運行固定的BI0S(basic input/output system,基本輸入輸出系統) 程序,由BIOS完成計算子系統硬件的初始化、PCIE的端點設備發現和配置、加載操作系統 等。在操作系統啟動后,計算子系統由加載的操作系統進行控制。
[0091] 本發明實施例中,所述計算機設備100包括各種具有計算或存儲功能的計算機設 備,可以包括各種服務器,例如刀片服務器、機架服務器等等,也可以包括使用各種操作系 統的服務器,例如使用Windows或Linux操作系統的服務器等等。
[0092]管理控制器MCPU1021是管理子系統的執行部件,通過各種傳感器收集計算機設備 100各個部件的運行信息和故障信息,以及對計算機設備100中的端點設備進行配置管理, 例如配置或管理RAID卡的級別,配置或管理網卡的MAC地址,配置或管理PF(Physical Fuction,物理功能)等。MCPU1021連接計算子系統的南橋芯片1018或者直連計算CPU1011, 實現KVM功能,或者實現計算子系統101和管理子系統102之間的通信。
[0093]計算機設備100上電后,首先是管理子系統102先上電,在管理子系統102上電并完 成初始化后,管理子系統102控制計算子系統101上電,計算子系統101完成上電、硬件檢測 和啟動操作系統后,計算機設備100開始運行。
[0094] BIOS程序是儲存在計算機設備上的程序,在計算機設備的計算子系統上電后運 行,由計算機設備的CPU調取BIOS程序來運行。BIOS在運行后主要完成三部分的功能,分別 是:
[0095] -、在計算機設備的計算子系統上電后對硬件部分的檢測,也叫做P0ST(Power On Self Test,加電自檢),功能是檢查計算機設備是否良好,通常完整的POST自檢將包括對 CPU,基本內存,擴展內存,主板,CMOS存儲器,串并口,顯示卡,軟硬盤子系統及鍵盤等進行 測試,一旦在自檢中發現問題,系統將給出提示信息或鳴笛警告。自檢中如發現有錯誤,將 按兩種情況處理:對于嚴重故障(致命性故障)則停機,此時由于各種初始化操作還沒完成, 不能給出任何提示或信號;對于非嚴重故障則給出提示或聲音報警信號,等待用戶處理;
[0096]二、初始化,包括創建中斷向量、設置寄存器、對一些外部設備,例如PCIE的端點設 備,進行初始化和檢測等;在掃描和初始化PCIE端點設備的過程中,通常是采用深度優先算 法,發現計算機設備中所有PCIE端點設備,并為每個PCIE端點設備分配B/D/F(Bus/D eviCe/ Funct ion,總線/設備/功能)號、1/0地址空間和Memory地址空間;
[0097]三、引導程序,即引導和啟動操作系統。BIOS先從軟盤或硬盤的開始扇區讀取引導 記錄,如果沒有找到,則會在顯示器上顯示沒有引導設備,如果找到引導記錄會把電腦的控 制權轉給引導記錄,由引導記錄把操作系統載入計算機設備,在計算機設備啟動完成后, BIOS程序運行完成,計算子系統的控制權交由引導記錄載入的操作系統,運行操作系統的 程序。
[0098]現有技術中,在對PCIE端點設備配置管理時,計算機設備的管理子系統通過與運 行在操作系統上的多個管理軟件模塊通信來實現對各PCIE端點設備的配置管理,各管理軟 件模塊分別對應管理各個PCIE端點設備。對多個不同種類的PCIE端點設備的配置管理,需 部署多個管理軟件模塊,且各管理軟件模塊本身需由各PCIE設備廠商提供或由服務器廠商 針對各PCIE設備開發(以適配不同的操作系統類型),導致部署復雜且不易于后續升級維 護。
[0099]本發明實施例提供一種技術方案,對上述計算機設備100進行改進,解決現有技術 中對端點設備管理時需要依賴操作系統才能實現的問題,以提高計算機設備的管理子系統 在對PCIE端點設備進行管理時的可維護性。
[0100]如圖2所示,圖2為本發明實施例提供的一種計算機設備200的結構示意圖。計算機 設備200包括計算子系統201和管理子系統202,計算子系統201包括中央處理器2011、內存 2012、PCIE交換模塊2013、端點設備2015、端點設備2016、端點設備2017、南橋芯片2018等; 管理子系統202包括管理控制器2021和內存2022。
[0101]本發明實施例在計算機設備200中新增一個端點代理設備2014,例如一個PCIE端 點代理設備。該端點代理設備2014可以是一個芯片,也可以是處理器的一部分,或獨立的端 點設備(例如設備卡)等等。該端點代理設備2014分別與管理控制器2021和PCIE交換模塊 2013相連。
[0102] 其中,所述端點代理設備2014可以通過PCIE鏈路通過計算子系統201中的PCIE交 換模塊與CPU2011相連,也可以與CPU2011直接相連,或者直接與南橋芯片2018相連。例如, 端點代理設備2014的第一端口(PCIE端口)通過PCIE鏈路與CPU2011相連,或端點代理設備 2014的第一端口(PCIE端口)通過PCIE鏈路通過PCIE交換模塊與CPU2011相連。圖2以端點代 理設備2014通過PCIE交換模塊與CPU2011相連為例進行說明。
[0103] 所述端點代理設備2014通過標準總線或者私有總線(例如PCIE總線等)與管理子 系統102的管理控制器2021相連。例如,端點代理設備2014的第二端口(PCIE端口)通過PCIE 鏈路與與管理子系統102的管理控制器2021相連,或端點代理設備2014的第二端口(I2C端 口)通過I2C鏈路與管理子系統102的管理控制器2021相連。管理控制器2021通過端點代理 設備2014間接訪問計算子系統201中的端點設備,例如端點設備2015等,實現帶外配置(包 括但不限于配置RAID卡的級別,網卡的MAC地址,PF類型等)、監控系統所有端點設備的運行 狀態(包括但不限于監控RAID卡下的硬盤健康狀態,網卡鏈路狀態,統計計數器等),從而能 夠達到在計算子系統201的CPU上通過管理工具帶內管理端點設備的效果,但同時又不依賴 計算機設備的操作系統,減少了對外部的依賴性,不需要對不同的端點設備進行不同的管 理配置,且不需要各管理軟件模塊由各PCIE設備廠商提供或由服務器廠商針對各PCIE設備 開發,提升了計算機設備的可維護性。
[0104] 需要說明的是,上述第一端口和第二端口在圖中未示出,應理解,第一端口和第二 端口是端點代理設備的端口,其具體實現可以有多種的實現方式,包括但不限于通過具體 的硬件接口,或通過具備通信功能的軟件接口來實現,本發明實施例不限定接口的具體實 現方式。
[0105] 可選的,本發明實施例中的端點代理設備2014,和計算機設備中端點設備(例如端 點設備2015) -樣,遵循PCIE標準進行通信。
[0106] 以圖2所示的示例為例,中央處理器2011通過BIOS芯片中的BIOS程序在計算子系 統201啟動階段能發現端點代理設備2014,以及端點設備2015、端點設備2016和端點設備 2017,并根據每個端點設備的要求進行配置,以及對輸入/輸出資源、內存資源分配等。對于 端點設備2015、端點設備2016和端點設備2017,中央處理器2011通過BIOS程序進行初始化, 采用深度優先算法,發現端點設備2015、端點設備2016和端點設備2017,并為每個端點設備 分配B/D/F號、I/O地址空間或Memory地址空間等。其中,所述I/O地址空間可以為本發明實 施例中端點設備(例如端點設備2015)在所述計算子系統201中的第一地址信息;或者,所述 Memory地址空間也可以為本發明實施例中端點設備(例如端點設備2015)在所述計算子系 統201中的第一地址信息。
[0107] 中央處理器2011通過BIOS程序在對端點代理設備2014初始化,也是采用采用深度 優先算法,為端點代理設備2014分配B/D/F號、1/0和Memory空間等。同時,中央處理器2011 通過BIOS程序能夠識別出端點代理設備2014的類型,即識別出端點代理設備2014是代理設 備,使得CPU2011能夠將端點設備(例如端點設備2015、端點設備2016、端點設備2017)的設 備信息寫入端點識別出的端點代理設備。根據PCIE標準的定義,每個PCIE的端點設備必須 支持64個字節的配置空間,例如范圍為0x00-0x3f,
[0108] 其中,在08H的Class Code字段定義了EP設備的類型,假設Class Code代碼為 "1111"的為代理設備類型,Class Code代碼不是"1111"的端點設備(例如端點設備2015)。 中央處理器2011通過BIOS程序讀取該Class Code字段,就能夠識別每個PCIE端點設備的類 型,包括能夠識別出端點代理設備2014為代理設備的類型,。
[0109] 中央處理器2011通過BIOS程序完成計算機設備200中計算子系統201所有的端點 設備初始化后,將計算子系統201中除端點代理設備2014之外的端點設備(例如端點設備 2015、端點設備2016和端點設備2017等)的設備信息寫入所述端點代理設備2014中。具體 的,可以是所述中央處理器2011通過端點代理設備上的第一端口,以及所述第一端口連接 的PCIE鏈路將端點設備(例如端點設備2015、端點設備2016和端點設備2017等)的設備信息 寫入所述端點代理設備2014中。寫入端點代理設備2014中的其它端點設備的設備信息包括 但不限于:每個端點設備的B/D/F號、1/0地址空間、Memory地址空間或設備類型等。例如可 以是寫入端點設備2015的B/D/F號和1/0地址空間,也可以是寫入端點設備2016的B/D/F號 和memory地址空間,或者是可以是寫入端點設備2015的B/D/F號,1/0地址和memory地址空 間。
[0110] 端點代理設備2014保存中央處理器2011通過BIOS程序寫入的端點設備的設備信 息,并通過中斷的方式通知管理子系統202中的管理控制器2021,管理控制器2021根據端點 代理設備2014的通知,確定所述端點代理設備中被寫入所述端點設備在所述計算子系統中 的設備信息。
[0111] 具體的,可以是端點代理設備2014在被寫入端點設備(例如端點設備2015)在所述 計算子系統201中的設備信息后,向所述管理控制器2021發送通知消息,所述管理控制器 2021接收所述端點代理設備2014發送的所述通知消息,根據所述通知消息確定所述端點代 理設備中被寫入所述端點設備在所述計算子系統中的設備信息。
[0112] 管理子系統202中的管理控制器2021也可以通過查詢的方式獲取端點代理設備 2014中被寫入端點設備的設備信息。例如,所述管理控制器2021周期性地向所述端點代理 設備2014發送查詢消息,在所述端點代理設備2014被寫入端點設備的設備信息時,接收所 述端點代理設備2014發送的所述查詢消息的響應消息,所述響應消息包含所述端點代理設 備2014中寫入的端點設備的設備信息,所述管理控制器2021根據所述查詢消息的響應消息 確定所述端點代理設備2014中被寫入所述端點設備在所述計算子系統中的設備信息。
[0113] 在本發明實施例的一種實現方式中,所述端點代理設備2014通過第一端口與PCIE 交換模塊2013相連。具體的,所述端點代理設備2014的第一端口可以通過PCIE鏈路連接所 述PCIE交換模塊2013,并通過所述交換模塊2013與所述中央處理器2011相連。
[0114] 作為可選的實現方式,本發明實施例中,所述端點代理設備2014通過第二端口與 管理控制器2021相連。具體的,所述端點代理設備2014的第二端口(I2C端口)通過I2C (Inter - Integrated Circuit)鏈路與所述管理控制器2021相連;或所述端點代理設備 2014的第二端口(PCIE端口)通過PCIE鏈路,與所述管理控制器2021相連。當所述端點代理 設備2014的第二端口與所述管理控制器2021通過I2C鏈路連接時,所述管理控制器2021為 所述端點代理設備2014分配I2C號,并根據所述端點代理設備2014的I2C號,將對端點設備 (例如端點設備2015)的訪問請求發送到所述端點代理設備。當所述端點代理設備2014的第 二端口與所述管理控制器2021通過PCIE鏈路連接時,所述管理控制器2021分配所述端點代 理設備2014在所述管理子系統202中的第二地址,所述端點代理設備2014在所述管理子系 統202中的第二地址的范圍包含端點設備(包括端點設備2015、端點設備2016、端點設備 2016)在所述管理子系統中202中的地址范圍。所述管理控制器2021根據所述端點代理設備 2014在所述管理子系統中的第二地址,將對端點設備(例如端點設備2015)的訪問請求發送 到所述端點代理設備。
[0115] 作為一種可選的實現方式,中央處理器2011通過BIOS程序完成計算機設備200中 計算子系統201所有的端點設備設備后,可以將計算子系統201中除端點代理設備2014之外 的端點設備的設備信息,中央處理器2011通過南橋芯片2018寫入管理子系統202中的管理 控制器2021中,然后由管理控制器2021通過所述管理控制器2021的第二端口將所述端點設 備在計算子系統201中的設備信息寫入端點代理設備2014中。
[0116] 管理子系統202中的管理控制器2021獲取計算子系統201中除所述端點代理設備 2014之外的所有端點設備的設備信息后,為每個端點設備分配管理子系統的地址空間(包 括輸入/輸出I/O地址空間,或內存memory地址空間)。具體的,可以是管理控制器2021根據 所述端點設備(例如端點設備2015)在所述計算子系統201中的第一地址分配所述端點設備 (例如端點設備2015)在所述管理子系統202中的第二地址,該第二地址可以是I/O地址空間 或memory地址空間。管理控制器2021根據所述端點設備2014在所述計算子系統201中的第 一地址分配所述端點設備(例如端點設備2015)在所述管理子系統202中的第二地址后,將 所述端點設備(例如端點設備2015)在所述管理子系統202中的第二地址寫入所述端點代理 設備2014中。端點代理設備2014建立每個端點設備(例如端點設備2015)在管理子系統202 的地址空間,例如所述第二地址,與每個端點設備(例如端點設備2015)在計算子系統202的 地址空間,例如所述第一地址,之間的對應關系。這種對應關系可以如表1所示:
[0119]表 1
[0120] 表1中,管理控制器2021為端點設備2015分配的管理I/O地址空間All~A12與端點 設備2015的物理I/O地址空間C11~C12大小相同且對應,管理控制器2021為端點設備2015 分配的管理memory地址空間B11~B12與端點設備2015的物理memory地址空間D11~D12大 小相同且對應。管理控制器2021為其它端點設備分配的管理地址空間,與端點設備2015分 配的管理地址空間類同,不再贅述。
[0121] 管理控制器2021能夠根據分配的所述地址空間,通過所述端點代理設備2014訪問 端點設備,例如訪問端點設備2015、端點設備2016和端點設備2017等,實現對端點設備的配 置或管理。
[0122] 所述端點代理設備2014接收管理控制器2021發送的對端點設備(例如端點設備 2015)的第一訪問請求,該第一訪問請求攜帶為端點設備(例如端點設備2015)在所述管理 子系統202中分配的地址空間,例如所述第二地址。所述端點代理設備2014根據保存的地址 空間的對應關系(例如所述端點設備2015的第一地址與第二地址之間的對應關系),轉換為 端點設備在計算子系統的物理地址空間,例如所述第一地址,生成攜帶所述端點設備在所 述計算子系統中的第一地址的第二訪問請求,并通過PCIE交換模塊2013將所述第二訪問請 求轉發給端點設備(例如端點設備2015)。例如,管理控制器2021要訪問端點設備2015的 memory空間,則基于對端點設備2015分配的memory地址(D11~D12 ),發送訪問請求到端點 代理設備2014。端點代理設備2014接收到管理控制器2021發送的訪問請求,基于保存的 memory空間對應關系,轉換為端點設備2015的物理memory空間(B11~B12),并基于該端點 設備2015的物理memory空間,將管理控制器2021的訪問請求通過PCIE交換模塊2013發送給 端點設備2015。
[0123] 作為一種可選的實現方式,如圖3所示,所述端點代理設備2014也可以位于所述管 理控制器2021中,所述管理控制器2021與端點代理設備2014直接交互,實現設備信息和管 理命令的轉發。
[0124] 具體的,如圖4所示,所述端點代理設備2014包括地址管理單元20141和控制單元 20142。其中,地址管理單元20141用于存儲中央處理器2011通過BIOS程序寫入的端點設備 的信息,例如每個端點設備的B/D/F號、物理I/0地址空間和物理Memory地址空間,設備類型 等;并且還存儲管理控制器2021寫入的為每個端點設備分配的地址空間的信息,建立每個 端點設備的物理1/0地址空間與管理控制器2021分配的1/0地址空間的對應關系,以及每個 端點設備的物理memory地址空間與管理控制器2021分配的memory地址空間的對應關系。
[0125] 控制單元20142用于接收管理控制器2021的訪問請求,根據訪問請求中攜帶的1/0 地址信息或memory地址信息,從所述地址管理單元20141中獲取對應的端點設備的物理1/0 地址或對應的物理memory地址,基于獲取的具體的物理I /0地址或對應的物理memory地址, 將管理控制器2021的訪問請求發送給相應的端點設備。具體的,控制單元20142在獲取到具 體的物理1/0地址或對應的物理memory地址后,通過構造TLP報文,通過PCIE鏈路發送給 PCIE交換模塊2013,并通過PCIE交換模塊2013將構造的TLP報文發送給對應的端點設備。
[0126] 為進一步說明本發明實施例中端點代理設備的實現方式,如圖5所示,所述端點代 理設備2014還包括轉發單元20143(即PCIE Core),用于接收中央處理器2011通過BIOS程序 的初始化、基地址空間配置,資源分配請求等,并為所述轉換單元20142提供標準的PCIE傳 輸層服務。在實現端點代理設備2014在轉發管理控制器2021的訪問請求時,所述轉發單元 20143具體用于接收所述控制單元20142生成的TLP報文,并發送給PCIE交換單元2013。并 且,在端點設備返回TLP報文時,接收PCIE交換單元2013轉發的TLP報文,發送給所述控制單 元20142。
[0127] 參考圖6,圖6為端點代理設備2014中轉發單元20143具體實現結構示意圖。轉發單 元20143包括物理層(Physical Layer)、數據鏈路層(Data Link Layer)和傳輸層 (Transport Layer),以及配置單元(包括但不限于I/O或Memory的配置等)。轉發單元20143 通過物理層、數據鏈路層和傳輸層實現控制單元20142發送的報文的轉發,以及將PCIE交換 模塊2013轉發的TLP報文發送給所述控制單元20142。
[0128] 參考圖7,圖7為本發明實施例一種計算機系統300的結構示意圖。計算機系統300 包括計算子系統301和管理子系統302,所述計算子系統301包括中央處理器3011,所述管理 子系統302包括管理控制器3021,所述中央處理器3011連接端點設備(包括端點設備3015、 端點設備3016和/或端點設備3017)以及端點代理設備3014;
[0129] 所述計算機系統301還包括端點代理設備3014,所述端點代理設備3014的第一端 口(圖中未示出)通過PCIE鏈路連接所述計算子系統301中的所述中央處理器3011,所述端 點代理設備3014的第二端口(圖中未示出)與所述管理子系統302中的所述管理控制器3021 連接;
[0130]所述中央處理器3011,用于分配所述端點設備(例如端點設備3015)在所述計算子 系統301中的設備信息,并將所述端點設備(例如端點設備3015)在所述計算子系統301中的 設備信息寫入所述端點代理設備3014,所述端點設備(例如端點設備3015)在所述計算子系 統301中的設備信息至少包括所述端點設備(例如端點設備3015)在所述計算子系統301中 的第一地址信息;
[0131]所述管理控制器3021,用于在確定所述端點代理設備3014中被寫入所述端點設備 (例如端點設備3015)在所述計算子系統中的設備信息后,根據所述端點設備(例如端點設 備3015)在所述計算子系統301中的第一地址分配所述端點設備(例如端點設備3015)在所 述管理子系統302中的第二地址,并將所述端點設備(例如端點設備3015)在所述管理子系 統302中的第二地址寫入所述端點代理設備3014;
[0132] 所述端點代理設備3014,用于在被寫入所述第二地址之后,建立所述端點設備(例 如端點設備3015)在所述計算子系統301中的第一地址與所述端點設備(例如端點設備 3015)在所述管理子系統302中的第二地址之間的對應關系;
[0133] 所述管理控制器3021還用于發送第一訪問請求,所述第一訪問請求攜帶所述端點 設備(例如端點設備3015)在所述管理子系統302中的的第二地址;
[0134] 所述端點代理設備3014還用于通過所述第二端口與所述管理控制器3021的連接 接收所述管理控制器3021發送的所述第一訪問請求,根據所述對應關系生成攜帶所述端點 設備(例如端點設備3015)在所述計算子系統301中的第一地址的第二訪問請求,并通過所 述第一端口連接的所述PCIE鏈路將所述第二訪問請求發送給所述端點設備(例如端點設備 3015)。
[0135] 上述計算機系統中,端點代理設備3014建立端點設備(例如端點設備3015)在所述 計算子系統301中的第一地址與在所述管理子系統302中的第二地址之間的對應關系,在接 收到管理控制器3021對端點設備(例如端點設備3015)第一訪問請求時,根據所述對應關系 生成攜帶所述端點設備(例如端點設備3015)在所述計算子系統301中的第一地址的第二訪 問請求,并發送給所述端點設備(例如端點設備3015)。實現了管理控制器3021對端點設備 訪問請求的發送到所述端點設備,且不需要操作依賴于操作系統,不需要對不同的端點設 備進行不同的管理配置,提高了對端點設備進行管理時的可維護性。
[0136] 在具體實現中,作為一種較優的實現方式,所述中央處理器3011可以在所述計算 子系統301初始化過程中,根據基本輸入輸出系統BIOS的指令掃描到所述端點設備(例如端 點設備3015)和所述端點代理設備3014,分別為所述端點設備(例如端點設備3015)和所述 端點代理設備3014分配在所述計算子系統301中的設備信息,并將所述端點設備(例如端點 設備3015)在所述計算子系統301中的設備信息寫入所述端點代理設備3014。其中,所述端 點設備在所述計算子系統中的設備信息可以是下述信息中的至少一項:所述端點設備的輸 入輸出I/O地址信息,所述端點設備的內存Memory地址信息,所述端點設備的總線/設備/功 能B/D/F號,或所述端點設備的設備類型信息。相應的,所述第一地址可以是所述端點設備 的輸入輸出I/O地址信息,也可以是所述端點設備的內存Memory地址信息。
[0137] 可選的,所述中央處理器3011可以根據分配的所述端點代理設備3014的在所述計 算子系統301中的設備信息,通過所述第一端口連接的所述PCIE鏈路向所述端點代理設備 3014寫入所述端點設備(例如端點設備3015)在所述計算子系統301中的設備信息。
[0138] 在具體實現中,如圖8所示,所述管理控制器3021還可以通過南橋芯片3018與所述 中央處理器3011連接。相應的,所述中央處理器3011具體用于通過所述南橋芯片3018將所 述端點設備(例如端點設備3015)在所述計算子系統301中的設備信息通知到所述管理控制 器3021;所述管理控制器3021將獲取到的所述端點設備(例如端點設備3015)在所述計算子 系統301中的設備信息寫入所述端點代理設備3014。具體的,可以是通過所述端點代理設備 3014的第二端口的連接將所述端點設備(例如端點設備3015)在所述計算子系統301中的設 備信息寫入所述端點代理設備3014。
[0139] 當所述端點代理設備3014被寫入所述端點設備(例如端點設備3015)在所述計算 子系統301中的設備信息后,可以通過兩種方式通知管理控制器3021。
[0140] 一種是所述端點代理設備3014向所述管理控制器3021發送通知消息,管理控制器 3021接收所述端點代理設備3014發送的所述通知消息,根據所述通知消息確定所述端點代 理設備3014中被寫入所述端點設備(例如端點設備3015)在所述計算子系統301中的設備信 息。
[0141] 另一種是管理控制器3021周期性地向所述端點代理設備3014發送查詢消息,接收 所述端點代理設備3014發送的所述查詢消息的響應消息,根據所述查詢消息的響應消息確 定所述端點代理設備3014中被寫入所述端點設備(例如端點設備3015)在所述計算子系統 301中的設備信息。
[0142] 本發明實施例中,作為一種可選的實現方式,所述端點代理設備3014的第二端口 與所述管理子系統302中的所述管理控制器3021可以通過內部集成電路I2C連接。當所述端 點代理設備3014的第二端口與所述管理控制器3021通過I2C連接時,所述管理控制器3021 為所述端點代理設備3014分配I2C號并根據分配的I2C號,將所述第一訪問請求發送到所述 端點代理設備3014。
[0143] 所述端點代理設備3014的第二端口與所述管理子系統302中的所述管理控制器 3021也可以通過PCIE鏈路連接。當所述端點代理設備3014的第二端口與所述管理控制器 3021通過PCIE鏈路連接時,所述管理控制器3021分配所述端點代理設備3014在所述管理子 系統302中的第二地址,所述第二地址的范圍包含所述端點設備(例如端點設備3015)在所 述管理子系統302中的第二地址的范圍,所述管理控制器3021根據所述端點設備(例如端點 設備3015)在所述管理子系統302中的第二地址,將所述第一訪問請求發送到所述端點代理 設備3014。
[0144] 需要說明的是,上述第一地址還可以是所述端點設備(例如端點設備3015)在計算 子系統301中的地址空間,例如上述表2所述的物理I/O地址空間或物理Memory地址空間。所 述第二地址可以是與所述第一地址對應的地址空間,如表2中的管理地址空間類似。在管理 控制器3021訪問端點設備(例如端點設備3015)的地址時,通常是訪問端點設備的一段地址 空間,本發明實施例從簡化角度,表述為第一地址或第二地址,實際實現中,第一第一可以 是一段地址空間,第二地址也可以是一段地址空間。
[0145] 可選的,如圖8所示,所述計算子系統301還可以包括PCIE交換設備3013,所述端點 設備(例如端點設備3015)通過所述PCIE交換設備連接到所述中央處理器3011,相應的,所 述端點代理設備3014的第一端口通過PCIE鏈路連接所述PCIE交換設備以連接到所述中央 處理器3011。其中,所述PCIE交換設備3013可以是圖3中的PCIE交換模塊2013,即可以通過 硬件或軟件實現,本發明實施例不限定具體的實現方式。
[0146] 可選的,本發明實施例中,所述端點代理設備3014可以位于所述計算子系統301 中,也可以位于所述管理子系統302的管理控制器3021中。
[0147] 上述圖7或圖8所示的實施例的具體實現方式,還可以參照圖2至圖6所示的實施例 的實現方式實現,不再贅述。
[0148] 參考圖9,圖9為本發明實施例一種對計算機系統中端點設備進行訪問的方法流程 示意圖。其中,包括計算子系統和管理子系統,所述計算子系統包括中央處理器,所述管理 子系統包括管理控制器,所述中央處理器用于連接端點設備;所述方法包括:
[0149] 步驟900:所述中央處理器為所述端點設備分配在所述計算子系統中的設備信息, 并將所述端點設備在所述計算子系統中的設備信息寫入所述計算子系統中的端點代理設 備中,所述端點設備在所述計算子系統中的設備信息至少包括所述端點設備在所述計算子 系統中的第一地址信息;
[0150]步驟902:所述管理控制器在確定所述端點代理設備中被寫入所述端點設備在所 述計算子系統中的設備信息后,根據所述端點設備在所述計算子系統中的第一地址分配所 述端點設備在所述管理子系統中的第二地址,并將所述端點設備在所述管理子系統中的第 二地址寫入所述端點代理設備;
[0151]步驟904:所述端點代理設備在被寫入所述第二地址之后,建立所述端點設備在所 述計算子系統中的第一地址與所述端點設備在所述管理子系統中的第二地址之間的對應 關系;所述端點代理設備的第一端口通過PCIE鏈路連接所述計算子系統中的所述中央處理 器,所述端點代理設備的第二端口與所述管理子系統中的所述管理控制器連接;
[0152]步驟906:所述管理控制器發送第一訪問請求,所述第一訪問請求攜帶所述端點設 備在所述管理子系統中的的第二地址;
[0153]步驟908:所述端點代理設備通過所述第二端口與所述管理控制器的連接接收所 述管理控制器發送的所述第一訪問請求,根據所述對應關系生成攜帶所述端點設備在所述 計算子系統中的第一地址的第二訪問請求,并通過所述第一端口連接的所述PCIE鏈路將所 述第二訪問請求發送給所述端點設備。
[0154]上述方法實施例中,端點代理設備建立端點設備在所述計算子系統中的第一地址 與在所述管理子系統中的第二地址之間的對應關系,在接收到管理控制器對端點設備第一 訪問請求時,根據所述對應關系生成攜帶所述端點設備在所述計算子系統中的第一地址的 第二訪問請求,并發送給所述端點設備。實現了管理控制器對端點設備訪問請求的發送到 所述端點設備,且不需要操作依賴于操作系統,不需要對不同的端點設備進行不同的管理 配置,提高了對端點設備進行管理時的可維護性。
[0155]在具體實現時,所述方法還可以包括:
[0156]所述中央處理器在所述計算子系統初始化過程中,根據基本輸入輸出系統BIOS的 指令掃描到所述端點設備和所述端點代理設備,分別為所述端點設備和所述端點代理設備 分配在所述計算子系統中的設備信息,并將所述端點設備在所述計算子系統中的設備信息 寫入所述端點代理設備。其中,所述端點設備在所述計算子系統中的設備信息可以是下述 信息中的至少一項:所述端點設備的輸入輸出I/O地址信息,所述端點設備的內存Memory地 址信息,所述端點設備的總線/設備/功能B/D/F號,或所述端點設備的設備類型信息。相應 的,所述第一地址可以是所述端點設備的輸入輸出I/O地址信息,也可以是所述端點設備的 內存Memory地址信息。
[0157] 可選的,所述中央處理器根據分配的所述端點代理設備的在所述計算子系統中的 設備信息,通過所述第一端口連接的所述PCIE鏈路向所述端點代理設備寫入所述端點設備 在所述計算子系統中的設備信息。或者,所述管理控制器與所述中央處理器通過南橋芯片 連接,所述中央處理器通過所述南橋芯片將所述端點設備在所述計算子系統中的設備信息 通知到所述管理控制器,所述管理控制器將獲取到的所述端點設備在所述計算子系統中的 設備信息通過所述第二端口的連接寫入所述端點代理設備。
[0158] 當所述端點代理設備被寫入所述端點設備在所述計算子系統中的設備信息后,可 以通過兩種方式通知管理控制器。
[0159] -種是所述端點代理設備在被寫入所述端點設備在所述計算子系統中的設備信 息后,向所述管理控制器發送通知消息,所述管理控制器接收所述端點代理設備發送的所 述通知消息,根據所述通知消息確定所述端點代理設備中被寫入所述端點設備在所述計算 子系統中的設備信息。
[0160]另一種是所述管理控制器周期性地向所述端點代理設備發送查詢消息,接收所述 端點代理設備發送的所述查詢消息的響應消息,根據所述查詢消息的響應消息確定所述端 點代理設備中被寫入所述端點設備在所述計算子系統中的設備信息。
[0161]作為一種可選的實現方式,所述端點代理設備的第二端口與所述管理子系統中的 所述管理控制器通過內部集成電路12C連接,所述方法還包括:
[0162] 所述管理控制器為所述端點代理設備分配I2C號;
[0163] 所述管理控制器根據所述端點代理設備的I2C號,將所述第一訪問請求發送到所 述端點代理設備。
[0164] 或者,所述端點代理設備的第二端口與所述管理子系統中的所述管理控制器通過 PCIE鏈路連接,所述方法還包括:
[0165] 所述管理控制器還用于分配所述端點代理設備在所述管理子系統中的第二地址, 所述端點代理設備在所述管理子系統中的第二地址的范圍包含所述端點設備在所述管理 子系統中的第二地址的范圍,所述管理控制器具體用于根據所述端點設備在所述管理子系 統中的第二地址,將所述第一訪問請求發送到所述端點代理設備。
[0166] 需要說明的是,上述第一地址還可以是所述端點設備在計算子系統301中的地址 空間,例如上述表2所述的物理I/O地址空間或物理Memory地址空間。所述第二地址可以是 與所述第一地址對應的地址空間,如表2中的管理地址空間類似。在管理控制器訪問端點設 備的地址時,通常是訪問端點設備的一段地址空間,本發明實施例從簡化角度,表述為第一 地址或第二地址,實際實現中,第一第一可以是一段地址空間,第二地址也可以是一段地址 空間。
[0167] 可選的,所述計算子系統還包括PCIE交換設備,所述端點設備通過所述PCIE交換 設備連接到所述中央處理器,所述端點代理設備的第一端口通過PCIE鏈路連接所述PCIE交 換設備以連接到所述中央處理器。其中,所述PCIE交換設備3013可以是圖3中的PCIE交換模 塊2013,即可以通過硬件或軟件實現,本發明實施例不限定具體的實現方式。
[0168] 可選的,所述端點代理設備位于所述計算子系統中或位于所述管理子系統的管理 控制器中。
[0169] 上述方法實施例的具體實現方式,還可以參照圖2至圖6所示的實施例的實現方式 實現,不再贅述。
[0170] 本領域普通技術人員可以意識到,結合本文中所公開的實施例描述的各示例的單 元及算法步驟,能夠以電子硬件、計算機軟件或者二者的結合來實現,為了清楚地說明硬件 和軟件的可互換性,在上述說明中已經按照功能一般性地描述了各示例的組成及步驟。這 些功能究竟以硬件還是軟件方式來執行,取決于技術方案的特定應用和設計約束條件。專 業技術人員可以對每個特定的應用來使用不同方法來實現所描述的功能,但是這種實現不 應認為超出本發明的范圍。
[0171] 所屬領域的技術人員可以清楚地了解到,為了描述的方便和簡潔,上述描述的系 統、裝置和單元的具體工作過程,可以參考前述方法實施例中的對應過程,在此不再贅述。
[0172] 在本申請所提供的幾個實施例中,應該理解到,所揭露的系統、裝置和方法,可以 通過其它的方式實現。例如,以上所描述的裝置實施例僅僅是示意性的,例如,所述單元的 劃分,僅僅為一種邏輯功能劃分,實際實現時可以有另外的劃分方式,例如多個單元或組件 可以結合或者可以集成到另一個系統,或一些特征可以忽略,或不執行。另外,所顯示或討 論的相互之間的耦合或直接耦合或通信連接可以是通過一些接口、裝置或單元的間接耦合 或通信連接,也可以是電的,機械的或其它的形式連接。
[0173]所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯 示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個 網絡單元上。可以根據實際的需要選擇其中的部分或者全部單元來實現本發明實施例方案 的目的。
[0174] 另外,在本發明各個實施例中的各功能單元可以集成在一個處理單元中,也可以 是各個單元單獨物理存在,也可以是兩個或兩個以上單元集成在一個單元中。上述集成的 單元既可以采用硬件的形式實現,也可以采用軟件功能單元的形式實現。
[0175] 所述集成的單元如果以軟件功能單元的形式實現并作為獨立的產品銷售或使用 時,可以存儲在一個計算機可讀取存儲介質中。基于這樣的理解,本發明的技術方案本質上 或者說對現有技術做出貢獻的部分,或者該技術方案的全部或部分可以以軟件產品的形式 體現出來,該計算機軟件產品存儲在一個存儲介質中,包括若干指令用以使得一臺計算機 設備(可以是個人計算機,服務器,或者網絡設備等)執行本發明各個實施例所述方法的全 部或部分步驟。而前述的存儲介質包括:U盤、移動硬盤、只讀存儲器(ROM,Read-Only Memory)、隨機存取存儲器(RAM,Random Access Memory)、磁碟或者光盤等各種可以存儲程 序代碼的介質。
[0176]以上所述,僅為本發明的【具體實施方式】,但本發明的保護范圍并不局限于此,任何 熟悉本技術領域的技術人員在本發明揭露的技術范圍內,可輕易想到各種等效的修改或替 換,這些修改或替換都應涵蓋在本發明的保護范圍之內。因此,本發明的保護范圍應以權利 要求的保護范圍為準。
【主權項】
1. 一種計算機系統,其特征在于,包括計算子系統和管理子系統,所述計算子系統包括 中央處理器,所述管理子系統包括管理控制器,所述中央處理器用于連接端點設備; 所述計算機系統還包括端點代理設備,所述端點代理設備的第一端口通過PCIE鏈路連 接所述計算子系統中的所述中央處理器,所述端點代理設備的第二端口與所述管理子系統 中的所述管理控制器連接; 所述中央處理器,用于分配所述端點設備在所述計算子系統中的設備信息,并將所述 端點設備在所述計算子系統中的設備信息寫入所述端點代理設備,所述端點設備在所述計 算子系統中的設備信息至少包括所述端點設備在所述計算子系統中的第一地址信息; 所述管理控制器,用于在確定所述端點代理設備中被寫入所述端點設備在所述計算子 系統中的設備信息后,根據所述端點設備在所述計算子系統中的第一地址分配所述端點設 備在所述管理子系統中的第二地址,并將所述端點設備在所述管理子系統中的第二地址寫 入所述端點代理設備; 所述端點代理設備,用于在被寫入所述第二地址之后,建立所述端點設備在所述計算 子系統中的第一地址與所述端點設備在所述管理子系統中的第二地址之間的對應關系; 所述管理控制器還用于發送第一訪問請求,所述第一訪問請求攜帶所述端點設備在所 述管理子系統中的的第二地址; 所述端點代理設備還用于通過所述第二端口與所述管理控制器的連接接收所述管理 控制器發送的所述第一訪問請求,根據所述對應關系生成攜帶所述端點設備在所述計算子 系統中的第一地址的第二訪問請求,并通過所述第一端口連接的所述PCIE鏈路將所述第二 訪問請求發送給所述端點設備。2. 根據權利要求1所述的計算機系統,其特征在于, 所述中央處理器具體用于在所述計算子系統初始化過程中,根據基本輸入輸出系統 BIOS的指令掃描到所述端點設備和所述端點代理設備,分別為所述端點設備和所述端點代 理設備分配在所述計算子系統中的設備信息,并將所述端點設備在所述計算子系統中的設 備信息寫入所述端點代理設備。3. 根據權利要求2所述的計算機系統,其特征在于,所述中央處理器具體用于根據分配 的所述端點代理設備的在所述計算子系統中的設備信息,通過所述第一端口連接的所述 PCIE鏈路向所述端點代理設備寫入所述端點設備在所述計算子系統中的設備信息。4. 根據權利要求2所述的計算機系統,其特征在于,所述管理控制器與所述中央處理器 通過南橋芯片連接; 所述中央處理器具體用于通過所述南橋芯片將所述端點設備在所述計算子系統中的 設備信息通知到所述管理控制器; 所述管理控制器還用于將獲取到的所述端點設備在所述計算子系統中的設備信息通 過所述第二端口的連接寫入所述端點代理設備。5. 根據權利要求2-4任一項所述的計算機系統,其特征在于, 所述端點代理設備還用于在被寫入所述端點設備在所述計算子系統中的設備信息后, 向所述管理控制器發送通知消息; 所述管理控制器具體用于接收所述端點代理設備發送的所述通知消息,根據所述通知 消息確定所述端點代理設備中被寫入所述端點設備在所述計算子系統中的設備信息。6. 根據權利要求2-4任一項所述的計算機系統,其特征在于, 所述管理控制器具體用于周期性地向所述端點代理設備發送查詢消息,接收所述端點 代理設備發送的所述查詢消息的響應消息,根據所述查詢消息的響應消息確定所述端點代 理設備中被寫入所述端點設備在所述計算子系統中的設備信息。7. 根據權利要求1-6任一項所述的計算機系統,其特征在于,所述端點代理設備的第二 端口與所述管理子系統中的所述管理控制器通過內部集成電路I2C連接; 所述管理控制器還用于為所述端點代理設備分配I2C號; 所述管理控制器具體用于根據所述端點代理設備的I2C號,將所述第一訪問請求發送 到所述端點代理設備。8. 根據權利要求1-6任一項所述的計算機系統,其特征在于,所述端點代理設備的第二 端口與所述管理子系統中的所述管理控制器通過PCIE鏈路連接; 所述管理控制器還用于分配所述端點代理設備在所述管理子系統中的第二地址,所述 端點代理設備在所述管理子系統中的第二地址的范圍包含所述端點設備在所述管理子系 統中的第二地址的范圍; 所述管理控制器具體用于根據所述端點設備在所述管理子系統中的第二地址,將所述 第一訪問請求發送到所述端點代理設備。9. 根據權利要求1-8任一項所述的計算機系統,其特征在于,所述計算子系統還包括 PCIE交換設備,所述端點設備通過所述PCIE交換設備連接到所述中央處理器; 所述端點代理設備的第一端口通過PCIE鏈路連接所述PCIE交換設備以連接到所述中 央處理器。10. 根據權利要求1-9任一所述的計算機系統,其特征在于: 所述端點代理設備位于所述計算子系統中;或, 所述端點代理設備位于所述管理子系統的管理控制器中。11. 根據權利要求1-10任一所述的計算機系統,其特征在于: 所述端點設備在所述計算子系統中的設備信息包括下述信息中的至少一項: 所述端點設備的輸入輸出I/O地址信息,所述端點設備的內存Memory地址信息,所述端 點設備的總線/設備/功能B/D/F號,或所述端點設備的設備類型信息。12. -種對計算機系統中端點設備進行訪問的方法,其特征在于,包括計算子系統和管 理子系統,所述計算子系統包括中央處理器,所述管理子系統包括管理控制器,所述中央處 理器用于連接端點設備;所述方法包括: 所述中央處理器為所述端點設備分配在所述計算子系統中的設備信息,并將所述端點 設備在所述計算子系統中的設備信息寫入所述計算子系統中的端點代理設備中,所述端點 設備在所述計算子系統中的設備信息至少包括所述端點設備在所述計算子系統中的第一 地址信息; 所述管理控制器在確定所述端點代理設備中被寫入所述端點設備在所述計算子系統 中的設備信息后,根據所述端點設備在所述計算子系統中的第一地址分配所述端點設備在 所述管理子系統中的第二地址,并將所述端點設備在所述管理子系統中的第二地址寫入所 述端點代理設備; 所述端點代理設備在被寫入所述第二地址之后,建立所述端點設備在所述計算子系統 中的第一地址與所述端點設備在所述管理子系統中的第二地址之間的對應關系;所述端點 代理設備的第一端口通過PCIE鏈路連接所述計算子系統中的所述中央處理器,所述端點代 理設備的第二端口與所述管理子系統中的所述管理控制器連接; 所述管理控制器發送第一訪問請求,所述第一訪問請求攜帶所述端點設備在所述管理 子系統中的的第二地址; 所述端點代理設備通過所述第二端口與所述管理控制器的連接接收所述管理控制器 發送的所述第一訪問請求,根據所述對應關系生成攜帶所述端點設備在所述計算子系統中 的第一地址的第二訪問請求,并通過所述第一端口連接的所述PCIE鏈路將所述第二訪問請 求發送給所述端點設備。13. 根據權利要求12所述的方法,其特征在于,所述方法還包括: 所述中央處理器在所述計算子系統初始化過程中,根據基本輸入輸出系統BIOS的指令 掃描到所述端點設備和所述端點代理設備,分別為所述端點設備和所述端點代理設備分配 在所述計算子系統中的設備信息,并將所述端點設備在所述計算子系統中的設備信息寫入 所述端點代理設備。14. 根據權利要求13所述的方法,其特征在于,所述方法還包括: 所述中央處理器根據分配的所述端點代理設備的在所述計算子系統中的設備信息,通 過所述第一端口連接的所述PCIE鏈路向所述端點代理設備寫入所述端點設備在所述計算 子系統中的設備信息。15. 根據權利要求13所述的方法,其特征在于,所述管理控制器與所述中央處理器通過 南橋芯片連接,所述方法還包括: 所述中央處理器通過所述南橋芯片將所述端點設備在所述計算子系統中的設備信息 通知到所述管理控制器; 所述管理控制器將獲取到的所述端點設備在所述計算子系統中的設備信息通過所述 第二端口的連接寫入所述端點代理設備。16. 根據權利要求13-15任一項所述的方法,其特征在于,所述方法還包括: 所述端點代理設備在被寫入所述端點設備在所述計算子系統中的設備信息后,向所述 管理控制器發送通知消息; 所述管理控制器接收所述端點代理設備發送的所述通知消息,根據所述通知消息確定 所述端點代理設備中被寫入所述端點設備在所述計算子系統中的設備信息。17. 根據權利要求13-15任一項所述的方法,其特征在于,所述方法還包括: 所述管理控制器周期性地向所述端點代理設備發送查詢消息,接收所述端點代理設備 發送的所述查詢消息的響應消息,根據所述查詢消息的響應消息確定所述端點代理設備中 被寫入所述端點設備在所述計算子系統中的設備信息。18. 根據權利要求12-17任一項所述的方法,其特征在于,所述端點代理設備的第二端 口與所述管理子系統中的所述管理控制器通過內部集成電路I2C連接,所述方法還包括: 所述管理控制器為所述端點代理設備分配I2C號; 所述管理控制器根據所述端點代理設備的I2C號,將所述第一訪問請求發送到所述端 點代理設備。19. 根據權利要求12-17任一項所述的方法,其特征在于,所述端點代理設備的第二端 口與所述管理子系統中的所述管理控制器通過PCIE鏈路連接,所述方法還包括: 所述管理控制器還用于分配所述端點代理設備在所述管理子系統中的第二地址,所述 端點代理設備在所述管理子系統中的第二地址的范圍包含所述端點設備在所述管理子系 統中的第二地址的范圍; 所述管理控制器具體用于根據所述端點設備在所述管理子系統中的第二地址,將所述 第一訪問請求發送到所述端點代理設備。20. 根據權利要求12-19任一項所述的方法,其特征在于,所述計算子系統還包括PCIE 交換設備,所述端點設備通過所述PCIE交換設備連接到所述中央處理器; 所述端點代理設備的第一端口通過PCIE鏈路連接所述PCIE交換設備以連接到所述中 央處理器。21. 根據權利要求12-20任一所述的方法,其特征在于: 所述端點代理設備位于所述計算子系統中;或, 所述端點代理設備位于所述管理子系統的管理控制器中。22. 根據權利要求12-21任一所述的方法,其特征在于: 所述端點設備在所述計算子系統中的設備信息包括下述信息中的至少一項: 所述端點設備的輸入輸出I/O地址信息,所述端點設備的內存Memory地址信息,所述端 點設備的總線/設備/功能B/D/F號,或所述端點設備的設備類型信息。
【文檔編號】G06F13/12GK105874442SQ201580003596
【公開日】2016年8月17日
【申請日】2015年9月21日
【發明人】蘇德現
【申請人】華為技術有限公司