設有相互連接的平臺控制交換器PCH103和基板管理控制器BMC104 ;所述PCIE板卡 2包括設置所述板卡上的至少一個PCIE槽或PCIE設備201、兩組排針203和與所述PCIE 槽或PCIE設備201和其中一組排針203連接的IIC總線接口 10拓展芯片202 ;其中一組 所述排針203通過與所述平臺控制交換器連接實現BIOS自動智能地識別和自適應不同的 PCIE板卡2 ;另一組所述排針203通過與所述基板管理控制器連接實現BMC自動智能地識 別不同的PCIE板卡2。所述另一組排針通過IIC總線接口 10拓展芯片202和連接器4與 所述主板1的基板管理控制器連接。
[0040] PCIE Lane的分配和識別
[0041] PCIE總線有非常靈活的劃分方式,具體能夠支持的劃分類型取決于相應的芯片。 本實施例采用Intel Haswell-EP CPU101來闡述本發明的技術方案,但不只限于此CPU。 Haswell-EP CPU 共計有 401ane PCIE3. O 信號,擁有 3 個 PCIE 接口。根據 Haswell-EP CPU 的規范,每個PORT 口可以劃分成如表1中的組合。PORTl和P0RT2可以有4種組合,P0RT3 可以有2種組合,所以共有32(4*4*2)種組合,也即可以有32種的PCIE Lane組合方式。
[0042] 為了充分利用PCIE總線劃分的靈活性,本發明的主板1是通過連接器4把 Haswell-EP CPUlOl所有的PCIE lane信號都引入到PCIE板卡2上,這樣可以在同一塊主 板1上實現多達32種PCIE Lane組合方式,能夠滿足不同應用場合的需求。如圖1所示, Haswell-EP CPUlOl通過PCIEx40信號連接到多個PCIE槽或PCIE設備201上。如果用于 GPU應用,那么PCIE總線可以設計成2個PCIE xl6和1個PCIE x8。如果一些場合不要求 PCIE帶寬指標只要求插入更多的PCIE設備,那么PCIE總線可以設計成10個PCIE x4。
[0043] 表1PCIE x40bus的分配方式
[0045] 以上主板1和PCIE板卡2的連接結構保證了系統可以擁有多變多用途的PCIE板 卡2設計,但還需要解決不同PCIE Lane組合方式能夠被BIOS順利識別和初始化的問題。
[0046] 給每種PCIE組合方式編一個唯一的二進制代碼,稱為PCIE組合方式代碼WD,固 化在每個PCIE板卡2上,在BIOS初始化PCIE bus之前,首先通過PCH103讀取WD,然后根 據讀取的WD對CPUlOl的PCIE Lane進行合理的劃分和初始化,實現BIOS能夠自動智能地 識別和自適應不同的PCIE板卡2。WD代碼有幾位就采用幾個排針203, WD每個二進制位對 應一個排針203。這些排針設計在PCIE板卡2上,每個排針都引出一根信號線通過連接器 4連接到主板PCH103的GPIO腳上。而且排針203能夠把其所引出的信號線設置為高電平 或者低電平。根據WD每位的值,設置相應排針203為高電平或低電平,就實現了 WD固化在 PCIE板卡2上。所以PCH103能夠通過讀取在PCIE板卡2上排針的高低電平就能識別出 WD0
[0047] 在PCIE板卡2上設計多個3針的排針203,排針的第1個針腳通過一個阻值為4. 7 千歐姆的上拉電阻204上拉到輔助電源3. 3V_AUX205,第2針腳的信號設置為PCIE帶寬信 號(PCIE_LINK_WIDTH_ID1,...,PCIE_LINK_WIDTH_IDn)連接到 Intel PCH103 的 GPIO 針腳 上,第3個針腳下拉到地206,即下拉到零電平。當跳帽安裝在第1個針腳和第2個針腳時, 會把PCIE帶寬信號拉高,當跳帽安裝在第2個針腳和第3個針腳時,會把PCIE帶寬信號拉 低。假設PCIE總線的組合方式有ml種,則需要nl個排針,且ml和nl需要滿足2 (η1 υ〈= ml〈 = 2η1。對于Haswell-EPCPUlOl來說,至少有32種PCIE組合方式,所以至少需要用5個 排針203來區分。利用這5個排針203對每個PCIE帶寬信號進行拉高或者拉低,實現對每 一種PCIE Lane組合方式進行唯一的二進制編碼,此編碼稱為PCIE組合方式代碼WD。BIOS 據此WD可以唯一區分和確定每一個PCIE板卡2的PCIE分配方式,如表2所示。當然在實 際的系統設計中,這些組合方式不可能全部都會用到,所以可以減少排針203的使用數量。 主板1開機后,PCH103通過信號線PCIE_LINK_WIDTH_IDx(x = 1~nl)檢查排針203的電 平,從而使BIOS得知PCIE板卡2所需的PCIE總線分配方式,然后對PCIE總線進行相應 的劃分和初始化。
[0048] 表2PCIE板卡的帶寬信號代碼(WD)
[0050] PCIE板卡ID的設計和識別
[0051] 為了對PCIE板卡2進行更好的監控,需要給每個PCIE板卡2賦予一個唯一的二 進制識別號,稱之為PCIE板卡ID。PCIE板卡ID固化在每個PCIE板卡2上,BMC104借助 于SMB Bus (System Management Bus)讀取每個PCIE板卡ID,然后根據讀取的ID在BMC104 程序數據庫中調取對應板卡的相關信息,實現BMC104能夠自動智能地識別不同的PCIE板 卡2。ID代碼有幾位就采用幾個排針203, ID每個二進制位對應一個排針203。這些排針 203設計在PCIE板卡2上,每個排針203都引出一根信號線連接IIC總線接口 IO拓展芯片 202。而且排針203能夠把其所引出的信號線設置為高電平或者低電平。根據ID每位的值, 設置相應排針203為高電平或低電平,就實現了 ID固化在PCIE板卡2上。IO拓展芯片利 用SMB總線通過連接器4與BMC104相連。所以BMC104能夠通過所述IO拓展芯片讀取在 PCIE板卡2上排針203的高低電平就能識別出ID。
[0052] 為此在PCIE板卡2內,設計多個3針的排針203,所述排針203的第1個針腳通 過一個阻值為4. 7千歐姆的上拉電阻204上拉到輔助電源3. 3V_AUX205,第2個針腳的信 號設置為PCffi板卡ID信號(PCIE_CARD_ID1,…,PCIE_CARD_IDn)連接到一個IIC總線接 口 IO拓展芯片202的IO針腳上,第3個針腳下拉到地206,即下拉到零電平。當跳帽安裝 在第1個針腳和第2個針腳時,會把PCIE板卡ID信號拉高,當跳帽安裝在第2個針腳和第 3個針腳時,會把PCIE板卡ID信號拉低。假設PCIE板卡有m2個,則需要n2個排針,且m2 和2n需要滿足2 (η2 υ〈 = m2〈 = 2n2。利用這些排針203對每個PCIE板卡ID信號進行拉高 或者拉低,為每個PCIE板卡2進行統一編號,標識一個唯一的二進制ID號,于是BMC104可 以根據ID號唯一區分和確定每一個PCIE板卡2。需要注意的是,每種PCIE總線的分配方 式有可能對應多種PCIE板卡2,也即PCIE板卡2的ID號能夠唯一確定每塊PCIE板卡2, 而不是根據每種PCIE總線分配方式來確定。
[0053] 把PCIE板卡2上的每個PCIE槽或PCIE設備201的present信號PCIE_SL0Tx_ PRSNT_N(x= 1~η)引入到IIC總線接口 IO拓展芯片202的IO針腳上,用于檢測每個設備 的在位狀態。當PCIE設備存在時,PCIE_SLOTx_PRSNT_N信號電平會變低,IO拓展芯片會檢 測到低電平,于是判斷PCIE槽上已經插入PCIE卡,或者存在PCIE設備,否則PCIE_SL0Tx_ PRSNT_N信號應該為高電平。
[0054] IIC總線接口 IO拓展芯片202通過SMB總線與BMC104相連。所述BMC104通過 SMB總線讀取IO拓展芯片檢測到的PCIE板卡ID信息和PCIE設備的信息,從而為整個PCIE 板卡2的監控提供基礎數據。
[0055] 主板監控系統的設計
[0056] Intel Haswell-EP CPUlOl 通過 DMI2 (Direct Media Interface Gen2)總線與 PCH103 連接,PCH103 通過 LPC (Low Pin Count Bus)總線與 BMC104 連接。所述 CPUlOl 收集 的BIOS信息通過DMI2和LPC鏈路傳遞給BMC104。
[0057] 所述BMC104通過自己的以太網絡接口與終端電腦3相連,可以把BMC芯片監控的 信息時時傳輸到終端電腦3上,并以友好的界面向用戶展現,實現智能監控PCIE板卡2的 功能。
[0058] 所述BMC芯片采用輔助電源工作,即在主板1未開機但有輔助電源時,BMC104可 以正常工作。
[0059] PCIE板卡信息的監控
[0060] PCIE板卡信息的監控方法如下:
[0061] 1)在BMC104的程序數據庫中給每種PCIE板卡2建立板卡ID數據庫,至少包括每 種PCIE板卡的ID號、PCIE Lane分配形式、PCIE槽或PCIE設備數量201等信息。
[0062] 2)在BIOS的程序數據庫中給每種PCIE分配組合建立PCIE組合方式代碼W)數據 庫,至少包括每種PCIE分配組合的WD號、PCIE Lane分配形式。
[0063]