TWI408558B - 用於動態地平衡pci-express頻寬的系統 - Google Patents

用於動態地平衡pci-express頻寬的系統 Download PDF

Info

Publication number
TWI408558B
TWI408558B TW097136651A TW97136651A TWI408558B TW I408558 B TWI408558 B TW I408558B TW 097136651 A TW097136651 A TW 097136651A TW 97136651 A TW97136651 A TW 97136651A TW I408558 B TWI408558 B TW I408558B
Authority
TW
Taiwan
Prior art keywords
data rate
endpoint
firmware
maximum
end bus
Prior art date
Application number
TW097136651A
Other languages
English (en)
Other versions
TW200923666A (en
Inventor
Chad J Larson
Ricado Mata Jr
Michael A Perez
Steven Vongvibool
Original Assignee
Ibm
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ibm filed Critical Ibm
Publication of TW200923666A publication Critical patent/TW200923666A/zh
Application granted granted Critical
Publication of TWI408558B publication Critical patent/TWI408558B/zh

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/12Avoiding congestion; Recovering from congestion
    • H04L47/125Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/13Flow control; Congestion control in a LAN segment, e.g. ring or bus
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/18End to end
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/20Traffic policing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/26Flow control; Congestion control using explicit feedback to the source, e.g. choke packets
    • H04L47/263Rate modification at the source after receiving feedback
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/32Flow control; Congestion control by discarding or delaying data units, e.g. packets or frames
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/50Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Transfer Systems (AREA)
  • Bus Control (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Description

用於動態地平衡PCI-EXPRESS頻寬的系統
本申請案大體而言係關於一種改良之資料處理系統及方法。更具體言之,本申請案係針對一種用於在複數個PCI-EXPRESS配接器上動態地平衡PCI-EXPRESS頻寬的系統。
大多數現代計算裝置使用利用最初由Intel在1990年代建立之周邊元件互連標準之某一版本或實施的輸入/輸出(I/O)配接器及匯流排。該周邊元件互連(Peripheral Component Interconnect,PCI)標準規定一用於將周邊裝置附接至一電腦母板之電腦匯流排。PCI-EXPRESS或PCIe係使用現有PCI程式化概念之PCI電腦匯流排的一實施,但使該電腦匯流排基於完全不同且快得多的串列實體層通信協定。實體層並非由一可在複數個裝置當中共用之雙向匯流排組成,而是由連接至恰好兩個裝置之單個單向鏈路組成。
圖1為說明根據PCIe規格之PCI-EXPRESS(PCIe)組構拓撲(fabric topology)的例示性圖。如圖1中所示,PCIe組構拓撲100包含耦接至一根複合體或多根複合體130(亦即,I/O北橋)之一主機處理器(CPU)複合體110及記憶體120,該根複合體或多根複合體130又耦接至以下中之一或多者:一PCIe端點140(術語"端點"在PCIe規格中用來指代具備PCIe功能之I/O配接器);一PCI-EXPRESS至PCI橋接器150;及一或多個互連交換器160。根複合體130指示將CPU/記憶體連接至I/O配接器之I/O階層的根。根複合體130包括一主機橋接器、零個或零個以上根複合體整合端點、零個或零個以上根複合體事件收集器及一或多個根埠。每一根埠支援一獨立I/O階層。該等I/O階層可包含一根複合體130、零個或零個以上互連交換器160及/或橋接器150(其包含交換器或PCIe組構),以及一或多個端點(諸如端點170及182至188)。端點140、170及182至188可為(例如)乙太網路、SCSI、SAS或光纖通道I/O配接器。對於關於PCI及PCIe之更多資訊,參考可自網址為www.pcisig.com之周邊元件互連特別興趣群(PCI-SiG)網站獲得之PCI及PCIe規格。
CPU複合體110包含一或多個處理器及記憶體(未圖示)並常駐於在根複合體130之上的中央電子複合體(CEC)190中。為將CEC 190連接至一或多個根複合體130,使用有時被稱作前端匯流排之匯流排192(例如,在國際商用機器公司(IBM)企業伺服器中),此等匯流排被稱作GX+匯流排。前端匯流排192具有為已知量之有限頻寬。舉例而言,一前端匯流排192可能夠維持四十億位元組/秒(Gbyte/sec)之頻寬。
在當前已知之組態中,有可能藉由端點140、170及182至188來串起若干抽屜,若該等端點140、170及182至188之PCIe路徑係在其最大等級上被使用,則其總頻寬可超過可在前端匯流排192上獲得之四十億位元組/秒。PCI標準中之"路徑"係一組差動信號對,一對用於傳輸且一對用於接收。PCI標準中之"xN"鏈路由N個路徑組成(例如,"x8"鏈路或槽支援至I/O配接器/來自I/O配接器之8個訊務路徑。若經由該等端點之PCIe路徑的訊務超過前端匯流排192之可用頻寬,則不能保證將達成每一I/O配接器之所要效能且等時I/O配接器(亦即,資料傳輸(例如,與諸如即時語音及視訊之時間相依性資料相關聯之資料傳輸)具有以資料封包傳輸之間的相等時差予以傳輸之資料封包的I/O配接器)可能會出現問題。
PCI-EXPRESS嘗試藉由建立訊務類別及虛擬路徑來解決此問題,其中可定義哪一訊務具有優先權及每一路徑可使用多少緩衝空間。此解決方案之問題在於,工業尚未嘗試利用此架構特徵。工業尚未嘗試利用多個訊務類別及虛擬路徑,因為將關於作業系統及韌體以儘可能透明之方式來執行自PCI-X至PCI-EXPRESS之轉變。為完全利用訊務類別及虛擬路徑,作業系統及韌體將必須知道此等特徵且將需要寫入新的碼以利用此等特徵。然而,基本整合作業系統(BIOS)及諸如Microsoft Windows及Linux之已知作業系統尚未作出必要修改來支援多個訊務類別及虛擬路徑,而非作出此等修改。
此外,自硬體觀點來看,添加對多個訊務類別及多個虛擬路徑之支援需要向晶片區域添加複雜性(諸如仲裁及流量控制)。此外,添加此支援需要額外晶片不動產,因為每一虛擬路徑將需要其自身之專用儲存器以用於發送及接收資料。結果,硬體製造商尚未實施對於多個虛擬路徑及多個訊務類別之支援。
現有PCI-EXPRESS配接器僅支援一個虛擬通道及一個訊務類別,而非利用多個訊務類別及虛擬路徑。此外,主要作業系統(亦即,Microsoft Windows及Linux)僅使用一個訊務通道及一個虛擬路徑。結果,當前已知之環境常常遇到問題,其中在經由I/O集線器或交換器而附接至CPU複合體之I/O抽屜內的一組PCI-EXPRESS配接器卡之總的可能頻寬可能會遠遠超過I/O集線器、交換器及/或前端匯流排的容量。
說明性實施例提供一用於在複數個PCI-EXPRESS(PCIe)配接器或"端點"上動態地平衡匯流排頻寬的系統。說明性實施例之機制包括韌體、硬體或軟體機制及資料結構,其自動地一致操作以設定PCIe配接器/端點之作業參數以便最大化對前端匯流排之可用頻寬的使用,同時最小化不能保證PCIe配接器/端點之效能的可能性且最小化等時PCIe配接器/端點的問題。
在一說明性實施例中,由韌體利用兩個表資料結構來基於PCIe配接器/端點(下文中稱作端點)之總的最大及/或最小資料速率與前端匯流排之最大資料速率(亦即,前端匯流排之頻寬)的比較來調節該等端點之作業參數。第一表資料結構包含用於控制資料處理系統之端點中之每一者的頻寬使用的作業參數設定之各種組合。第二表資料結構含有資料處理系統支援其相關聯之最小資料速率及優先權的端點之一列表。第二表資料結構進一步指出哪些端點具有等時要求。
在操作中,說明性實施例之機制設定可在一預定時間段內發生之錯誤的一臨限值。若超過該臨限值,則該機制查詢前端匯流排效能計數器以判定前端匯流排是否正在以其最大資料速率操作。若前端匯流排並非正在以最大資料速率運行,則該機制將超過該臨限值之端點的資料速率設定提高一階。若前端匯流排正在以其最大資料速率運行,則該機制查詢所有端點以判定哪些端點為作用中的。該機制接著判定是否存在優先權低於申訴端點之任何作用中端點。該機制將較低優先權之端點降低一階且將申訴端點提高一階。若前端匯流排正在以其最大資料速率運行且不存在作用中的較低優先權之端點,則該機制對該申訴端點不予理會。
在一說明性實施例中,一電腦程式產品包含一具有一電腦可讀程式之電腦可用媒體。該電腦可讀程式當在一計算裝置上執行時使該計算裝置:設定可在一預定時間段內發生之錯誤之數目的臨限值,判定一給定端點是否超過該臨限值,且回應於該給定端點超過該臨限值而判定前端匯流排是否正在以其最大資料速率運行。該電腦可讀程式當在一計算裝置上執行時進一步使該計算裝置在前端匯流排並非正在以其最大資料速率運行的情況下增大該給定端點之一或多個資料速率設定。
在一例示性實施例中,該電腦可讀程式當在該計算裝置上執行時進一步使該計算裝置在前端匯流排正在以其最大資料速率運行的情況下降低具有比該給定端點低之優先權的至少一作用中端點之一或多個資料速率設定。在一另外的例示性實施例中,該電腦可讀程式當在該計算裝置上執行時進一步使該計算裝置增大該給定端點之一或多個資料速率設定。
在另一例示性實施例中,該一或多個資料速率設定包含最大記憶體讀取大小,且其中增大該給定端點之一或多個資料速率設定包含即時(on the fly)增大最大記憶體讀取大小參數。
在又一例示性實施例中,該一或多個資料速率設定包含有效負載,且其中增大該給定端點之一或多個資料速率設定包含暫時停止給定端點上之訊務、增大有效負載參數及重新開始給定端點上之訊務。
在另一例示性實施例中,該一或多個資料速率設定包含路徑大小,且其中增大給定端點之一或多個資料速率設定包含暫時停止一與給定端點相關聯之應用程式、重新訓練用於給定端點之路徑、重新初始化一用於給定端點之裝置驅動程式,及重新開始該應用程式。
在一例示性實施例中,判定一給定端點是否超過該臨限值包含回應於在一根複合體中偵測到來自該給定端點之錯誤的數目超過該臨限值而將一中斷發送至資料處理系統中之韌體。
在一另外的例示性實施例中,回應於在一根複合體中偵測到來自該給定端點之錯誤的數目超過該臨限值,該根複合體設定該根複合體中之一暫存器中的一位元。判定一給定端點是否超過該臨限值包含輪詢該暫存器及判定是否設定了該暫存器中之該位元。
在另一例示性實施例中,該電腦可讀程式當在該計算裝置上執行時進一步使該計算裝置判定前端匯流排之最大資料速率。在一另外的例示性實施例中,判定前端匯流排之最大資料速率包含自資料處理系統之一暫存器擷取最大資料速率值,該暫存器儲存該最大資料速率值。在另一例示性實施例中,判定前端匯流排之最大資料速率包含接收作為虛擬產品資料之部分的對應於前端匯流排之最大資料速率的值。
在另一說明性實施例中,一資料處理系統包含韌體、一前端匯流排及耦接至該韌體及該前端匯流排之複數個端點。韌體經組態以:設定可在一預定時間段內發生之錯誤之數目的臨限值,判定一給定端點是否超過該臨限值,且回應於該給定端點超過該臨限值而判定前端匯流排是否正在以其最大資料速率運行。韌體進一步經組態以在前端匯流排並非正在以其最大資料速率運行的情況下增大該給定端點之一或多個資料速率設定。
在一例示性實施例中,韌體進一步經組態以在前端匯流排正在以其最大資料速率運行的情況下降低具有比該給定端點低之優先權的至少一作用中端點之一或多個資料速率設定。在一另外的例示性實施例中,韌體進一步經組態以增大該給定端點之一或多個資料速率設定。
在另一例示性實施例中,該一或多個資料速率設定包含最大記憶體讀取大小,且其中增大該給定端點之一或多個資料速率設定包含即時增大最大記憶體讀取大小參數。
在又一例示性實施例中,該一或多個資料速率設定包含有效負載,且其中增大該給定端點之一或多個資料速率設定包含暫時停止該給定端點上之訊務、增大有效負載參數,及重新開始該給定端點上之訊務。
在再一例示性實施例中,該一或多個資料速率設定包含路徑大小,且其中增大該給定端點之一或多個資料速率設定包含暫時停止一與給定端點相關聯之應用程式、重新訓練用於給定端點之路徑、重新初始化一用於給定端點之裝置驅動程式,及重新開始該應用程式。
在一例示性實施例中,判定一給定端點是否超過該臨限值包含回應於在一根複合體中偵測到來自該給定端點之錯誤的數目超過該臨限值而將一中斷發送至資料處理系統中之韌體。
在另一例示性實施例中,回應於在一根複合體中偵測到來自該給定端點之錯誤的數目超過該臨限值,該根複合體設定該根複合體中之一暫存器中的一位元。判定一給定端點是否超過該臨限值包含輪詢該暫存器及判定是否設定了該暫存器中之該位元。
在一另外的說明性實施例中,一資料處理系統包含韌體、一前端匯流排及耦接至該韌體及該前端匯流排之複數個端點。韌體經組態以:設定可在一預定時間段內發生之錯誤之數目的臨限值,判定一給定端點是否超過該臨限值,查詢前端匯流排中之效能計數器,判定前端匯流排之最大資料速率,且回應於給定端點超過該臨限值而判定前端匯流排是否正在以其最大資料速率運行。韌體進一步經組態以在前端匯流排並非正在以其最大資料速率運行的情況下增大該給定端點之一或多個資料速率設定。韌體進一步經組態以在前端匯流排正在以其最大資料速率運行的情況下降低具有比給定端點低之優先權的至少一作用中端點之一或多個資料速率設定且增大該給定端點之一或多個資料速率設定。
本發明之此等及其他特徵及優勢將在以下對本發明之例示性實施例之詳細描述中予以描述,或鑒於以下對本發明之例示性實施例之詳細描述而變得為一般熟習此項技術者所顯而易見。
藉由參考以下對說明性實施例之詳細描述(結合隨附圖式來閱讀),將最好地理解本發明以及較佳使用模式及其另外的目標及優勢。
說明性實施例提供一用於在複數個PCI-EXPRESS(PCIe)配接器或"端點"上平衡前端匯流排之頻寬以便即使在該等PCIe端點僅支援單個虛擬通道及訊務類別時仍達成資料處理系統之最佳效能的機制。說明性實施例之機制可實施於一資料處理系統中,該資料處理系統自身實施圖1之PCIe組構拓撲或類似之PCIe組構拓撲。提供圖2作為可於其中實施說明性實施例之例示性態樣的資料處理系統之一例示性方塊圖。應瞭解,圖2僅為例示性的且並不意欲主張或暗示對於可於其中實施本發明之態樣或實施例的資料處理環境的任何限制。在不脫離本發明之精神及範疇之情況下,可對所描繪之環境作出許多修改。
現參看圖2,展示可於其中實施說明性實施例之態樣的例示性資料處理系統之方塊圖。資料處理系統200為電腦之實例,實施用於本發明之說明性實施例之過程的電腦可用碼或指令可位於電腦中。電腦可用碼或指令可提供於韌體之軟體中。此外,在一些說明性實施例中,可提供說明性實施例之機制作為圖2之資料處理系統的硬體元件。
在所描繪之實例中,資料處理系統200利用一集線器架構,該集線器架構包括北橋與記憶體控制器集線器(NB/MCH)202及南橋與輸入/輸出(I/O)控制器集線器(SB/ICH)204。處理單元206、主記憶體208及圖形處理器210連接至NB/MCH 202。圖形處理器210可經由加速圖形埠(AGP)而連接至NB/MCH 202。
在所描繪之實例中,區域網路(LAN)配接器212連接至SB/ICH 204。音訊配接器216、鍵盤與滑鼠配接器220、數據機222、唯讀記憶體(ROM)224、硬碟機(HDD)226、唯讀光碟機(CD-ROM drive)230、通用串列匯流排(USB)埠及其他通信埠232以及PCI/PCIe裝置234經由匯流排238及匯流排240而連接至SB/ICH 204。PCI/PCIe裝置可包括(例如)乙太網路配接器、插卡及用於筆記型電腦之PC卡。PCI使用卡式匯流排控制器,而PCIe則不使用卡式匯流排控制器。ROM 224可為(例如)快閃二進位輸入/輸出系統(BIOS)。
HDD 226及唯讀光碟機230經由匯流排240而連接至SB/ICH 204。HDD 226及唯讀光碟機230可使用(例如)整合驅動電子(IDE)介面或串行進階技術附接(SATA)介面。超I/O(SIO)裝置236可連接至SB/ICH 204。
作業系統在處理單元206上運行。作業系統協調圖2中之資料處理系統200內之各種組件並提供對該等組件的控制。作為用戶端,作業系統可為諸如 XP(Microsoft及Windows為Microsoft公司在美國,在其他國家,或在美國與其他國家的商標)之市售作業系統。諸如JavaTM 程式化系統之物件導向式程式化系統可結合該作業系統而運行且提供自在資料處理系統200上執行之JavaTM 程式或應用程式至該作業系統的呼叫(Java為Sun Microsystems公司在美國,在其他國家,或在美國與其他國家的商標)。
作為伺服器,資料處理系統200可為(例如)eServerTM 電腦系統,其運行進階互動式執行作業系統或作業系統(eServer、pSeries及ALX為International Business Machines公司在美國,在其他國家,或在美國與其他國家的商標,而LINUX為Linus Torvalds在美國,在其他國家,或在美國與其他國家的商標)。資料處理系統200可為對稱多處理器(SMP)系統,其在處理單元206中包括複數個處理器。或者,可利用單處理器系統。
用於作業系統、物件導向式程式化系統的指令及應用程式或程式位於儲存裝置(諸如HDD 226)上,且可被載入至主記憶體208中以由處理單元206執行。用於本發明之說明性實施例的過程可由處理單元206使用電腦可用程式碼來執行,該電腦可用程式碼可位於諸如主記憶體208、ROM 224之記憶體中,或可位於(例如)一或多個周邊裝置226及230中。
匯流排系統(諸如,如圖2中所示之匯流排238或匯流排240)可包含一或多個匯流排。當然,可使用任何類型之通信組構或架構來實施匯流排系統,該通信組構或架構在附接至該組構或架構之不同組件或裝置之間提供資料傳送。通信單元(諸如,圖2之數據機222或網路配接器212)可包括一或多個用以發射及接收資料之裝置。記憶體可為(例如)主記憶體208、ROM 224或諸如在圖2中之NB/MCH 202中找到之快取記憶體。
一般熟習此項技術者將瞭解,圖2中之硬體可視實施而變化。除圖2中所描繪之硬體之外或代替圖2中所描繪之硬體,可使用其他內部硬體或周邊裝置(諸如快閃記憶體、等效非揮發性記憶體或光碟機及其類似者)。再者,在不脫離本發明之精神及範疇之情況下,說明性實施例之過程可應用於不同於先前所提及之SMP系統的多處理器資料處理系統。
此外,資料處理系統200可採用許多不同資料處理系統中之任一者的形式,該等資料處理系統包括用戶端計算裝置、伺服器計算裝置、平板電腦、膝上型電腦、電話或其他通信裝置、個人數位助理(PDA)或其類似者。在一些說明性實例中,舉例而言,資料處理系統200可為攜帶型計算裝置,其經組態有快閃記憶體以提供用於儲存作業系統檔案及/或使用者產生之資料的非揮發性記憶體。實質上,資料處理系統200可為任何已知或稍後開發出之無架構限制的資料處理系統。
對本文中陳述之說明性實施例特別重要,圖2之資料處理系統200包括韌體290及匯流排仲裁器295。匯流排仲裁器295用以仲裁由PCI/PCIe裝置234對匯流排238及(因此)北橋/記憶體控制器集線器(NB/MCH)202的存取,匯流排238及NB/MCH 202構成PCIe組構拓撲之前端匯流排。匯流排仲裁器295基於由韌體290作出之對各種PCI/PCIe裝置234之作業參數的設定而操作。韌體290根據如下文中陳述之說明性實施例而執行操作,以在PCI/PCIe裝置234上平衡匯流排238及NB/MCH 202之頻寬。儘管將關於在韌體290中執行之功能性來描述說明性實施例,但應瞭解,說明性實施例之功能性可以軟體或硬體來實施。亦即,可由一或多個處理器提供及執行用於執行該功能性之軟體指令。此外,在其他說明性實施例中,可提供一或多個積體電路裝置以用於在電路中執行此功能性。
作為一另外的實例,可在韌體290之一或多個層中提供說明性實施例之功能性。舉例而言,起始該系統之BIOS及在執行時期期間處置請求之即時抽象層可各自用以執行下文中描述之功能及操作的各者或組合。作為一實例,作業系統對將PCIe槽(熱插拔)通電/斷電的即時請求可由韌體之即時抽象服務(RTAS)部分來處置,其具有管理並監督由RTAS執行之功能及操作的韌體之超級管理器級。
說明性實施例提供一用於在複數個PCI快遞(PCIe)配接器或"端點"(例如,其可為PCI/PCIe裝置234)上平衡匯流排頻寬的系統及方法。說明性實施例之機制包括韌體、硬體或軟體機制及資料結構,其自動地一致操作以設定PCIe配接器/端點之作業參數以便最大化對前端匯流排(例如,匯流排238及NB/MCH 202)之可用頻寬的使用,同時最小化不能保證PCIe配接器/端點之效能的可能性且最小化等時PCIe配接器/端點的問題。
說明性實施例利用以下事實:基本上存在三種方式來調節PCIe之資料速率以便在PCIe端點上提供頻寬平衡。一種用於平衡頻寬之選項係調節PCIe端點之路徑的數目(例如,x1、x2、x4、x8或x16)。此等路徑類似於資料管道,其中較大大小之管道將提供比可在任何給定時間發送之資料流大的資料流。在當前技術中,PCIe端點之每一路徑可在每一方向上發送250百萬位元組/秒。因此,x8端點(亦即,具有8個路徑之端點)可在每一方向上發送二十億位元組/秒。
可為了頻寬平衡而調節頻寬的第二種方式係調節最大有效負載設定。PCIe經由載運有效負載之資料封包來發送資料。可調節此等有效負載之最大大小以便增大或減小在匯流排傳輸資料的速率。舉例而言,可視所要之頻寬使用而將PCIe資料封包之最大有效負載設定為128、256、512、1024、2048或4096個位元組。
可為了頻寬平衡而調節頻寬的第三種方式係調節最大記憶體讀取大小(MMRS)。MMRS係端點可在給定時間自主記憶體208請求之最大資料量且可為(例如)64、128、256、512、1024、2048或4096個位元組。藉由修改MMRS,可有效地改變PCIe端點可在給定時間自主記憶體讀取之資料量。此等作業參數、路徑數目、有效負載大小及MMRS連同使用者選定之頻寬平衡等級、端點優先權、端點之最小資料速率及端點之等時要求由本發明之機制用來調節各種PCIe端點之頻寬使用以便即使在PCIe端點之頻寬使用可能超過前端匯流排238及NB/MCH 202之可用頻寬時仍達成資料處理系統之最佳效能。
在一說明性實施例中,在與韌體290相關聯之記憶體(未圖示)中提供兩個表資料結構且由韌體290用來基於PCIe配接器/端點(下文中簡單地稱作端點)之總的最大及/或最小資料速率與前端匯流排之最大資料速率(例如,前端匯流排238及NB/MCH 202之頻寬)的比較而調節該等端點之作業參數。第一表資料結構包含展示對於最大記憶體讀取大小(MMRS)、有效負載及路徑設定之組合之資料速率的三維表。如下文所論述,此第一表資料結構進一步識別完成資料傳送要花費多長時間(諸如,以毫微秒為單位),此對於等時PCIe端點係重要的。
第二表資料結構含有資料處理系統支援其相關聯之最小資料速率及優先權的PCIe端點類型之一列表。第二表資料結構進一步指出哪些PCIe端點類型具有等時要求(例如,每隔x時間量需要存取以串流視訊資料之視訊PCIe端點類型)。此等表資料結構可由(例如)超級管理者(亦即,學識超過典型管理者之管理者,例如,具有PCIe背景之工程師或實驗室支援人員)提供並修改。
此外,識別並使用說明性實施例之機制將在特定資料處理系統中被實施至之所要等級之設定,以判定如何調節作業參數。可將該所要等級設定儲存(例如)於資料處理系統之可由韌體290存取的非揮發性記憶體中。可(例如)經由來自BIOS選單之作業系統或其類似者來設定此所要等級設定。在不脫離本發明之精神及範疇之情況下,可使用其他用於儲存並向韌體290提供所要等級設定的機制。
作為此所要等級設定之一實例,系統管理者可自一組預定等級(例如,高(H)、中(M)或低(L))選擇特定等級以供使用。H等級設定可用於規定韌體將把所有端點設定為其最大資料速率等級,藉此有效地停用用於平衡頻寬之說明性實施例之機制。L等級設定可用於規定韌體應調節端點之資料速率等級以使得其總資料速率匹配前端匯流排之最大資料速率。M等級設定可用於規定韌體應調節端點之資料速率等級以使得其總資料速率匹配一選定值,該選定值超過前端匯流排之最大資料速率但小於所有端點之總的最大資料速率。舉例而言,可將資料速率設定為前端匯流排之最大資料速率的兩倍、前端匯流排之最大資料速率的三倍,或前端匯流排之最大資料速率的任何其他多值或非多值。
使用此等表資料結構及使用者選定之平衡等級(例如,H、M或L)來調節匯流排之頻寬在PCIe端點上的平衡。舉例而言,回應於將PCIe端點添加至資料處理系統,回應於執行說明性實施例之頻寬平衡的系統管理者命令,回應於資料處理系統之所偵測條件(例如,所要之效能等級(諸如資料通量)不滿足所需等級),回應於特定事件之發生,回應於頻寬平衡操作之排程或其類似者,在初始化資料處理系統後,可執行韌體對頻寬之平衡。一旦判定要執行頻寬平衡操作,說明性實施例之機制便操作以如下文關於圖3所論述在PCIe端點上平衡前端匯流排之頻寬。
端點與根複合體直接通信。根複合體具有內建式追蹤設施及效能計數器。根複合體可追蹤特定端點在給定時間傳輸多少資料速率來發射與接收訊務。根複合體亦可追蹤流量控制資料。流量控制係由端點及根複合體用來通信之機制。使用流量控制資料,端點及根複合體經由其具有多少可用流量控制信用來告知彼此其具有多少緩衝空間可用於傳送。
根複合體可經程式化以追蹤其多久用完緩衝空間、以何速率消耗流量控制信用、其多久用完流量控制信用,及其類似者。專門之端點可經設計有類似特性。在此狀況下,當端點不能趕上其資料速率要求時,該端點可藉由訊息命令來通知根複合體。
在一大段時間內的持續之大的資料傳送期間,預期根複合體及端點可能偶爾達到此等緩衝條件及/或信用限制中之一者。可將此報告為錯誤。根據說明性實施例,若常常發生此等錯誤,則機制可動態地平衡頻寬。
因此,根據說明性實施例,管理者具有啟用或停用動態模式之選項。舉例而言,可結合上文所描述之高等級設定來啟用動態模式。在動態模式中,該機制設定可在一預定時間段內發生之錯誤的一臨限值。若端點超過該臨限值,則該機制接收對錯誤之通知。韌體可負責處置臨限條件。在一實施例中,根複合體可將中斷發送至韌體以通知該韌體超過了該臨限值。在一替代實施例中,根複合體可針對臨限條件而設定暫存器中之位元。韌體可接著以設定之時間間隔來輪詢此暫存器以判定是否設定了該位元。
若端點超過該臨限值,則該機制查詢前端匯流排效能計數器以判定該前端匯流排是否正在以其最大資料速率運行。若前端匯流排並非正在以其最大資料速率運行,則該機制將端點之資料速率設定提高一階。該機制可使用MMRS、有效負載或路徑大小來提高資料速率。若機制增大MMRS,則機制可即時執行資料速率增大。若機制增大有效負載,則機制可暫時停止端點上之訊務且在有效負載更新之後重新開始該端點。若機制增大路徑大小,則機制可停止該端點,重新訓練路徑,且接著重新初始化裝置驅動程式並重新開始應用程式。
若前端匯流排正在以其最大資料速率運行,則該機制查詢所有端點以判定哪些端點為作用中的。該機制判定任何作用中端點是否處於比申訴端點(超過該臨限值之端點)低之優先權。若存在處於較低優先權之作用中端點,則機制將較低優先權之端點的資料速率降低一階且將申訴端點之資料速率提高一階。若不存在較低優先權之作用中端點,則機制對申訴端點不予理會。此避免最終申訴所有端點或導致所有端點以最大等級而告終。
對於較低優先權之端點而言,此很有作用。若前端匯流排以最大等級運行且端點想要增大其速率,則端點不能增大其速率。然而,若前端匯流排並非以最大等級運行,則端點可增大其資料速率。此允許在一天期間的某些時間一訊務類型大於另一訊務類型(經由乙太網路之網路衝浪對經由光纖通道之磁帶備份)之狀況。
若系統在僅運行一種訊務類型時的時間段中且接著該系統移至運行所有訊務時時的時間段,則該機制將受到由各種端點提出之一系列調節且最終結果將為:較高優先權之端點將得到提高且較低優先權之端點可得到降低。接著,隨時間流逝,訊務全面放慢,當前端匯流排並非處於最大值時,較低優先權之端點亦可得到提高。可發生受控反饋環境以連續地且動態地平衡資料流從而匹配當前需要。
圖3為說明性實施例之主要作業組件的例示性圖。如圖3中所示,韌體310結合第一表資料結構儲存裝置320、第二表資料結構儲存裝置330、使用者頻寬平衡等級儲存裝置340及與PCIe端點360至364之韌體相關聯之組態資料結構儲存裝置350至354而操作,以修改PCIe端點360至364之作業參數(例如,有效負載、路徑、MMRS)從而在PCIe端點360至364上平衡前端匯流排370之頻寬。
在操作中,韌體310判定前端匯流排370之最大資料速率。可(例如)藉由讀取資料處理系統之一暫存器來判定前端匯流排370之最大資料速率,該暫存器儲存最大資料速率值且可由韌體310存取。在其他說明性實施例中,可經由系統重要產品資料(VPD)將前端匯流排370之最大資料速率傳遞至系統中。舉例而言,系統VPD識別前端匯流排370之匯流排速度。自此匯流排速度,韌體310可判定最大資料速率。或者,系統VPD可識別最大資料速率自身。在不脫離本發明之精神及範疇之情況下,可使用其他用於提供前端匯流排370之最大資料速率的機制。
在識別前端匯流排370之最大資料速率之後,韌體310接著查詢所有當前附接之PCIe端點360至364且自其組態資料結構儲存裝置350至354來判定每一PCIe端點之最大路徑數目、MMRS及有效負載。當PCIe槽被通電且經由硬體機制來協商匯流排寬度時,可判定路徑數目或路徑大小。舉例而言,韌體310可藉由讀取提供於系統中之標準熱插拔控制器(SHPC)暫存器來識別當前路徑數目或路徑大小。韌體310可藉由修改SHPC暫存器來修改路徑數目或路徑大小以設定PCIe槽可被組態至之最大路徑大小且接著韌體310可經由SHPC暫存器迫使進行槽重新組態以迫使進行協商,但此時對路徑數目或路徑大小有限制。MMRS及有效負載設定係由韌體310初始化之工業標準PCI暫存器。
韌體310接著使用第一表資料結構,其將資料速率映射至儲存於第一表資料結構儲存裝置320中之作業參數(諸如有效負載、路徑數目及MMRS)之組合以判定PCIe端點360至364中之每一者的最大資料速率。PCIe端點360至364中之每一者的最大資料速率係基於自PCIe端點360至364之組態資料結構儲存裝置350至354所擷取之最大路徑、MMRS及有效負載值來判定的。可接著對PCIe端點360至364中之每一者的最大資料速率求和以產生所有PCIe端點360至364之總的最大資料速率。
在判定所有PCIe端點360至364之總的最大資料速率之後,韌體310將所有PCIe端點360至364之最大資料速率與如韌體310所判定的前端匯流排370之最大資料速率相比較。若所有PCIe端點360至364之最大資料速率小於或等於前端匯流排370之最大資料速率,則將所有該等PCIe端點之作業參數設定為其對應於最大資料速率之值。亦即,使用第一表資料結構中對應於PCIe端點之最大資料速率的有效負載、路徑數目及MMRS之設定來將PCIe端點360至364之作業參數設定於其各別組態資料結構儲存裝置350至354中。應注意,經由此操作,每一PCIe端點360至364可基於其個別最大資料速率而具有不同的作業參數設定。
若所有PCIe端點360至364之最大資料速率超過前端匯流排之最大資料速率,則擷取並使用由使用者選定之等級(亦即,儲存於使用者頻寬平衡等級儲存裝置340中之使用者選定之頻寬平衡等級)以判定如何在PCIe端點360至364當中平衡前端匯流排370之頻寬。
若使用者(例如,系統管理者)選擇高(H)操作等級,則設定所有PCIe端點360至364使用其最大資料速率。若使用者並未選擇H操作等級,則諮詢第二表資料結構儲存裝置330中之第二表資料結構以判定每一PCIe端點360至364之最小資料速率。若一特定PCIe端點360至364並不存在於第二表資料結構中,則可使用與該PCIe端點360至364相關聯之類別碼(該類別碼可自PCIe端點360至364中之工業標準暫存器擷取)來使其與一在第二表資料結構中所表示之類似PCIe端點匹配。若基於該類別碼找不到一類似PCIe端點,則可假定最小資料速率為PCIe端點360至364之最大資料速率,但可將PCIe端點360至364之優先權降低至低優先權,因為PCIe端點360至364係資料處理系統並不支援之PCIe端點。
可對所有PCIe端點360至364之最小資料速率求和並使用其與基於前端匯流排370之最大資料速率及使用者對頻寬平衡機制之操作等級的選擇(例如,L或M)所判定的前端匯流排370之資料速率相比較。舉例而言,可由韌體310關於所有PCIe端點360至364之總的最小資料速率是否等於或小於前端匯流排370之最大資料速率(針對L之設定)或者等於或小於前端匯流排370之最大資料速率的兩倍(針對M之設定)作出判定。若所有PCIe端點360至364之總的最小資料速率等於或小於對應等級之前端匯流排370資料速率,則該等資料速率係可接受的且基於該等最小資料速率而使用第一表資料結構來識別將由PCIe端點360至364使用之有效負載、MMRS及路徑之設定。韌體310可接著使用此等作業參數來判定如何修改PCIe端點360至364中之每一者之組態資料結構儲存裝置350至354中的組態設定。對PCIe端點360至364之組態的修改首先係使用MMRS或有效負載參數來執行的,因為改變路徑要求重設並重新訓練端點。
若所有PCIe端點360至364之總的最小資料速率並不小於或等於前端匯流排370之設定等級之資料速率,則存在許多可用以達成PCIe端點360至364之可接受效能的選項。作為第一選項,不管所有PCIe端點360至364之總的最小資料速率是否小於前端匯流排370之設定等級之資料速率,均可由韌體310使用基於PCIe端點360至364之最小資料速率而自第一表資料結構所判定之作業參數來設定PCIe端點360至364之組態。可將一指示該問題之錯誤訊息發送至一管理者,使得該管理者可採取措施來確保達成資料處理系統之所要效能。
作為第二選項,可產生一優先權列表,該優先權列表按優先權排序之次序來列出PCIe端點360至364,其中未知或不支援之端點在列表中係以最低優先權列出。韌體310可接著操作以減少用於每一PCIe端點360至364之資源(亦即,頻寬),其中所降低之百分數係基於PCIe端點360至364在優先權列表中所處之位置。可執行此減少操作,直至達成所要目標(例如,PCIe端點360至364之總的資料速率等於或小於前端匯流排370之設定等級之資料速率)。在一些說明性實施例中,可相對於PCIe端點之最小資料速率而將其資源可被減少之量限制於特定量(例如,該PCIe端點之最小資料速率的一半)。在一些說明性實施例中,隨著前端匯流排370之設定等級之資料速率的增大(例如,前端匯流排370之設定等級之資料速率的兩倍(針對L之設定)或前端匯流排370之設定等級之資料速率的四倍(針對M之設定)),可以上文所描述之方式來減少PCIe端點360至364之資源。此允許在被限制為低於其最小資料速率但尚未低至L或M前端匯流排370限值的PCIe端點360至364之間的折衷。在此等說明性實施例中之任一者中,可將一指示該問題之錯誤訊息發送至一管理者,使得該管理者可採取措施來確保達成資料處理系統之所要效能。
關於等時PCIe端點360至364,PCIe端點360至364可能想要或可能不想要高資料速率,但反正都想要可預測時間來滿足特定資料速率要求。舉例而言,等時PCIe端點360至364可能要求PCIe端點360至364在特定時框內完成一直接記憶體存取(DMA)寫入或讀取操作。
一種允許PCIe端點360至364更快地獲得對前端匯流排370之存取的方式係藉由允許PCIe端點360至364具有超過其他非等時PCIe端點360至364之優先權。另一種方式係阻止其他非等時PCIe端點360至364使用前端匯流排370來進行長的資料傳送。資料傳送之長度視有效負載之大小而定。用以傳送特定有效負載之時間係可預測之時間。
因此,藉由該等說明性實施例之機制,一旦韌體310以先前所描述之方式確立了資料速率,韌體310便可針對等時問題作出調節。如上文所論述,第二表資料結構包括識別哪些PCIe端點類型(若存在)係等時類型之資訊。說明性實施例之韌體310可檢查第二表資料結構以判定當前安裝之PCIe端點360至364中之哪些PCIe端點(若存在,例如,PCIe端點360)具有等時問題。假定找到一具有等時問題之PCIe端點360,韌體310檢查第二表資料結構以判定該PCIe端點360之最小時間要求及該PCIe端點360之優先權。
若PCIe端點360對於所有當前安裝之PCIe端點360至364而言具有最高優先權,且若系統支援PCIe端點360至364之優先權設定,則設定一匯流排仲裁器390,使得此PCIe端點360總是獲得優先權。基於第一表資料結構中之資訊,已知在前端匯流排370上處理每一有效負載太小要花費多長時間。可基於自第一表資料結構所獲得之值來計算用以處理一有效負載之時間。或者,可基於自第一表資料結構所擷取之資訊而藉由對根據經驗獲得之處理時間值執行查找操作來判定用以處理一有效負載之時間。
在判定在前端匯流排370上處理每一有效負載大小所花費的時間之後,有可能判定理想之有效負載大小以允許其他PCIe端點360至364對於此PCIe端點360而言及時完成從而滿足其等時要求。舉例而言,假定第一PCIe端點或配接器(亦即,配接器A)必須等待PCIe端點或配接器B、C及D發送其封包,然後配接器A才可存取前端匯流排370。配接器A因此必須等待處理標頭、有效負載、循環冗餘檢查(CRC)值並執行對前端匯流排370之仲裁所需要的時間段。作為一實例,標頭可為12至16個位元組,CRC值可為4個位元組,且仲裁可為2個時脈週期。不算仲裁時間段,配接器A將必須等待發送12336個位元組(其中有效負載=4096)或432個位元組(其中有效負載=128)所花費的時間。發送如此多的有效負載資料所花費的時間亦視路徑數目或路徑大小而定。因此,理想之有效負載大小係可判定的且可被計算。在計算中包括仲裁添加了額外可能之設定組合來確保滿足等時要求,亦即,配接器A是否得到超過其他配接器之優先權,是否循環地執行仲裁,或其類似者。
在判定理想之有效負載大小之後,韌體310可接著判定其他PCIe端點362至364中之任一者是否使其有效負載大小被設定為比該理想之有效負載太小高的值。若如此,則諮詢第一表資料結構以查看彼等PCIe端點362至364之路徑數目是否可修改、MMRS設定是否可修改及/或有效負載設定是否可修改成一值,該值將仍滿足具有此較低有效負載之彼等PCIe端點362至364的最小資料速率。若如此,則因此調節PCIe端點362至364之設定。若使用太大之有效負載的PCIe端點362至364為比具有等時問題之PCIe端點360低之優先權,則將較低優先權之PCIe端點362至364的有效負載大小降低一第一增量。
若使用太大有效負載之PCIe端點362至364為比具有等時要求之PCIe端點360高之優先權,則並不修改其有效負載設定,因為其具有比等時PCIe端點360高之優先權。理想上,等時PCIe端點360將具有比非等時PCIe端點362至364高之優先權,且因此此情形將很少發生。
在一說明性實施例中,管理者可在使用者頻寬平衡等級儲存裝置340中設定一選項以啟用動態模式。如上文所陳述,舉例而言,可結合高等級設定來啟用動態模式。此外,管理者可設定從不允許對端點重新訓練的模式。在此狀況下,將允許韌體310調節該端點之有效負載及MMRS,但將不作出路徑大小改變。此選項防止應用程式受到破壞。舉例而言,儲存裝置340中之預設設定可達到高等級,其中動態模式被啟用且重新訓練被停用。若管理者不介意停止並開始應用程式,則管理者可啟用重新訓練。超級管理者亦可使用後門來修改第一表資料結構儲存器320、第二表資料結構儲存器330或在預定時間段中所允許之錯誤的臨限值。
動態模式之一另外的選項(可能僅可由超級管理者存取)可為一端點列表,其中可按一天內之不同時段來設定優先權。舉例而言,自4:00AM直至1:00AM可將乙太網路訊務設定為最高優先權,且接著自1:00AM直至4:00AM可將光纖通道設定為最高優先權。此特定實例可為自1:00AM開始對伺服器備份的狀況。在彼狀況下,管理者可能想要儘可能快地完成備份。在另一例示性實施例中,超級管理者可在彼時間段期間對於光纖通道端點將臨限值設定為低,使得光纖通道端點將立即跳脫臨限值等級並被快速提昇至最大資料速率。
圖4A至圖4E為根據一說明性實施例之第一三維表資料結構的例示性圖,該第一三維表資料結構用於識別用於在PCIe端點上平衡頻寬的作業參數之可能組合。因為可能難以使三維表資料結構可視,所以將圖4A至圖4E提供為一系列二維表,該等二維表可組合在一起以產生一用於PCIe端點之讀取操作的三維表資料結構。圖4A表示可如何以三維方式來組合圖4B至圖4E以產生該三維表資料結構。圖4B至圖4E中所示之二維表資料結構中的每一者係針對由PCIe端點所支援之不同路徑數目或路徑大小(例如,x1、x2、x4或x8)。
提供圖4F作為可用於PCIe端點之寫入操作的二表資料結構之一實例。對於寫入操作展示了單個二維表資料結構,因為對於寫入操作而言,僅存在兩個可被更改以達成不同資料速率之參數,亦即,有效負載大小及路徑數目,因為MMRS指代不能被改變以達成不同寫入操作資料速率之最大記憶體讀取大小。應瞭解,可組合此等表資料結構之設定值以提供一或多個曲線之三維圖表,該一或多個曲線表示用於達成所要資料速率的各種設定。
圖4A至圖4F中之表圖說明,可藉由使用多個選項來達成特定資料速率目標。舉例而言,若需要為1760百萬位元組/秒之資料速率,則可使用各種設定組合作為獲得彼資料速率之基礎。舉例而言,可利用包括8個路徑(圖4E中之x8)、為256個位元組之有效負載大小及為4096個位元組之MMRS的設定組合。類似地,亦可使用8個路徑、為512個位元組之有效負載大小及為512個位元組之MMRS的組合。可能偏愛為512個位元組之MMRS及為512個位元組之有效負載大小以便跨PCIe端點展佈頻寬。然而,由於等時原因,較小之有效負載大小可能較好,且因此,若對於特定組態存在等時問題,則可使用為4096個位元組之MMRS及為256個位元組之較小有效負載大小。
圖5為第二表資料結構之例示性圖,該第二表資料結構用於識別所支援之PCIe端點及該等PCIe端點是否具有等時要求。應瞭解,圖5僅為例示性的,且可以許多不同方式來執行對所支援之PCIe端點及等時要求的識別。因此,在不脫離本發明之精神及範疇之情況下,可對圖5中所示之圖作出許多修改。
圖5中之第二表資料結構500展示(除其他資訊之外)PCIe端點之優先權等級510、PCIe端點之類別520及子類別530、PCIe端點之理想資料速率540、PCIe端點之最小資料速率550,及PCIe端點是否具有等時要求560。在例示性第二表資料結構500之第2至4行中的資訊用以提供供應商/裝置識別符及子系統供應商/裝置識別符。每一PCIe端點具有唯一供應商/裝置識別符。一些PCIe端點具有子系統供應商/裝置識別符。當韌體走過資料處理系統之PCIe匯流排時,韌體讀取此等識別符以判定已發現哪一PCIe端點。
優先權等級510識別對應之PCIe端點之優先權。若多個PCIe端點具有相同優先權,則其在優先權等級行510中具有相同優先權值。舉例而言,如圖5中所示,乙太網路端點具有相同優先權且SCSI端點與IDE端點具有相同優先權。
類別520及子類別530允許韌體判定PCIe端點之類型。韌體使用類別520及子類別530來判定不在第二表資料結構中之端點的優先權及等時要求。舉例而言,若韌體找不到(經由類別碼)不在表資料結構500中之特定乙太網路端點,則韌體可使用在表資料結構500中之另一乙太網路端點的設定。
此外,若在表資料結構500中未找到特定端點,但在表資料結構500中存在來自相同供應商之端點,則韌體可選擇使用與對於來自相同供應商之端點所規定之設定相同的設定。舉例而言,假定表資料結構500包括用於Emulex光纖通道配接器卡之值。進一步假定韌體發現了來自Emulex之具有不同裝置識別符之另一配接器。該不同識別符可例如由於該另一配接器係表資料結構500中之配接器的較舊或較新版本而為不同的。在此狀況下,韌體可選擇將表資料結構500值用於該另一Emulex配接器。韌體可進一步執行第二檢查以查看類別/子類別520/530是否相似,且僅在其相似的情況下將表500中之值用於該另一Emulex配接器。以此方式,給表資料結構500之使用提供了一定量之靈活性,使得並不嚴格要求遇到每一新識別符便更新表資料結構500。
圖6A至圖6B、圖7及圖8為概述根據一說明性實施例之例示性操作之流程圖,該操作用於在PCIe端點上平衡頻寬。將理解,流程圖說明之每一步驟及流程圖說明中之步驟之組合可由電腦程式指令來實施。可將此等電腦程式指令提供給一處理器或其他可程式化資料處理設備以產生一機器,使得在該處理器或其他可程式化資料處理設備上執行之指令建立用於實施一或多個流程圖步驟中所規定之功能的構件。亦可將此等電腦程式指令儲存於一可指導一處理器或其他可程式化資料處理設備以特定方式起作用之電腦可讀記憶體或儲存媒體中,使得儲存於該電腦可讀記憶體或儲存媒體中之指令產生一製造物品,該製造物品包括實施一或多個流程圖步驟中所規定之功能的指令構件。
因此,流程圖說明之步驟支援用於執行所規定之功能的構件之組合、用於執行所規定之功能的步驟之組合及用於執行所規定之功能的程式指令構件。亦將理解,流程圖說明之每一步驟及流程圖說明中之步驟的組合可由執行所規定之功能或步驟之專用之以硬體為基礎的電腦系統或由專用硬體與電腦指令之組合來實施。
此外,提供流程圖以示範在說明性實施例內所執行之操作。該等流程圖並不意謂陳述或暗示關於所規定之操作的限制或更特定言之關於操作次序的限制。在不脫離本發明之精神及範疇之情況下,可修改流程圖之操作以適合特定實施。
圖6A至圖6B為概述根據一說明性實施例之例示性操作的流程圖,該操作用於判定PCIe端點之作業參數之設定以便平衡頻寬。如圖6A至圖6B中所示,該操作開始於韌體判定前端匯流排之最大資料速率(步驟610)。韌體針對當前安裝之PCIe端點的最大路徑數目、最大MMRS及最大有效負載組態參數而查詢該等PCIe端點(步驟615)。韌體基於每一PCIe端點之最大路徑數目、MMRS及有效負載而在第一表資料結構中執行查找操作以識別PCIe端點之最大資料速率(步驟620)。
韌體對PCIe端點中之每一者的最大資料速率求和(步驟625)且將PCIe端點之總的最大資料速率與前端匯流排之最大資料速率相比較(步驟630)。韌體判定PCIe端點之總的最大資料速率是否大於前端匯流排之最大資料速率(步驟635)。若PCIe端點之總的最大資料速率不大於前端匯流排之最大資料速率,則韌體將PCIe端點之作業參數設定為對應於其各別最大資料速率之值(步驟640)且該操作終止。
若PCIe端點之總的最大資料速率大於前端匯流排之最大資料速率,則韌體擷取使用者選定之頻寬平衡等級(步驟645)。韌體判定使用者選定之頻寬平衡等級是否處於最高等級(步驟650)。若如此,則該操作進行至步驟640,在步驟640中基於PCIe端點之最大資料速率來設定該等PCIe端點之作業參數。若頻寬平衡等級並非最高等級,則韌體基於使用者選定之頻寬平衡等級來計算前端匯流排之經等級調節之最大資料速率且基於第二資料結構來判定該等端點之最小資料速率,該第二資料結構儲存各種PCIe端點類型之最小資料速率、各種PCIe端點類型之優先權以及關於哪些PCIe端點類型具有等時要求之資訊(步驟655)。
韌體將PCIe端點之最小資料速率的總數與前端匯流排之經等級調節之最大資料速率相比較(步驟660)。韌體判定PCIe端點之最小資料速率是否小於或等於前端匯流排之經等級調節之最大資料速率(步驟665)。若如此,則韌體使用第一表資料結構來將PCIe端點之作業參數設定為對應於其各別最小資料速率之值,該第一表資料結構使作業參數(例如,MMRS、路徑數目及有效負載大小)與特定資料速率相互關聯(步驟670)。該操作接著終止。
若PCIe端點之總的最小資料速率並不小於或等於前端匯流排之經等級調節之最大資料速率,則可如先前在上文所描述而執行許多不同操作。出於圖6A至圖6B中所示之實例的目的,所執行之操作包含韌體基於第二資料結構中之優先權資訊而產生PCIe端點之一優先權列表(步驟680)。韌體接著基於該優先權列表而減少可由PCIe端點獲得之前端匯流排頻寬(步驟685)。視情況,亦可增大前端匯流排之經等級調節之最大資料速率。可繼續對前端匯流排之經等級調節之最大資料速率的此減少及視情況增大,直至達到所要效能目標,例如,使可由PCIe端點獲得的總頻寬等於或小於前端匯流排之經等級調節之最大資料速率(步驟690)。
一旦達到效能目標,韌體便基於PCIe端點之已判定之資料速率及在第一表資料結構中所規定之對應參數值來設定作業參數(步驟695)。首先基於各種選項之最大MMRS且接著基於最大有效負載大小且最後基於路徑數目來選擇資料值之特定組合,因為改變路徑數目要求系統的重新啟動。因為PCIe端點之總的最小資料速率並不小於或等於前端匯流排之經等級調節之最大資料速率,所以韌體可將錯誤訊息發送至管理者工作站或其類似者以通知管理者該等PCIe端點作業參數之設定的潛在問題(步驟698)。該操作接著終止。
圖7為概述根據一說明性實施例之例示性操作的流程圖,該操作用於調節具有等時要求之PCIe端點的作業參數以便平衡頻寬。如圖7中所示,該操作開始於韌體在第二表資料結構中執行查找操作以判定資料處理系統之任何當前安裝之PCIe端點是否具有等時要求(步驟710)。韌體判定是否找到了等時PCIe端點(步驟720)。若未找到等時PCIe端點,則該操作終止。
若找到了等時PCIe端點,則韌體選擇等時PCIe端點中之下一個等時PCIe端點(步驟730)且基於第二表資料結構中之資訊而判定該等時端點之最小資料速率及優先權(步驟740)。韌體判定該等時PCIe端點之優先權是否大於資料處理系統中之其他PCIe端點的優先權(步驟750)。若如此,則韌體設定匯流排仲裁器以將最高優先權給予該等時端點(步驟760)。韌體接著基於儲存於第一表資料結構中之資訊而修改其他PCIe端點之作業參數以便達成該等時PCIe端點之等時要求(步驟770)。
其後,或若該等時PCIe端點之優先權不大於其他PCIe端點(步驟750),則韌體判定此端點是否為資料處理系統中所找到之最後一個等時PCIe端點(步驟780)。若此端點並非資料處理系統中所找到之最後一個等時PCIe端點,則該操作返回至步驟730。若此端點係資料處理系統中所找到之最後一個等時PCIe端點,則該操作終止。
圖8為概述根據一說明性實施例之例示性操作的流程圖,該操作用於動態地平衡PCIe端點之頻寬。如圖8中所示,該操作開始,且韌體設定可在預定時間段內發生之錯誤之數目的臨限值(步驟802)。接著,韌體判定是否存在退出條件(步驟804)。舉例而言,當韌體退出動態模式且開始基於使用者選定之等級而平衡頻寬時,可存在退出條件。若存在退出條件,則操作結束。
若在步驟804中不存在退出條件,則韌體判定一端點是否超過一臨限值(步驟806)。可設置根複合體,使得當超過一臨限值時,將一中斷發送至韌體。在一替代實施例中,根複合體可對於該臨限條件設定一位元。韌體可接著以一設定之時間間隔來輪詢此暫存器以判定是否設定了該位元。若在步驟806中並未超過該臨限值,則操作返回至步驟804以判定是否存在退出條件。
若在步驟806中超過該臨限值,則韌體查詢前端匯流排效能計數器(步驟808)且判定前端匯流排是否正在以其最大資料速率運行(步驟810)。若前端匯流排並非正在以其最大資料速率運行,則韌體提高申訴端點之資料速率設定(步驟812)。其後,操作返回至步驟804以判定是否存在退出條件。
韌體可使用MMRS、有效負載或路徑大小來提高資料速率。若韌體增大MMRS,則韌體可即時執行資料速率增大。若韌體增大有效負載,則韌體可暫時停止端點上之訊務且接著在有效負載更新之後重新開始該端點。若韌體增大路徑大小,則韌體可停止該端點、重新訓練路徑且接著重新初始化裝置驅動程式並重新開始應用程式。
若在步驟810中前端匯流排正在以其最大資料速率運行,則韌體查詢所有端點以判定哪些端點為作用中的(步驟814)。對於作用中端點而言,韌體檢查以查看是否存在處於比申訴端點低之優先權的任何端點(步驟816)。接著,韌體判定是否存在任何較低優先權之作用中端點(步驟818)。若不存在具有比申訴端點低之優先權的作用中端點,則操作返回至步驟804以判定是否存在退出條件。
若在步驟818中存在具有較低優先權之作用中端點,則韌體降低較低優先權之端點的資料速率設定(步驟820)。韌體以類似於如上文所描述之增大資料速率之方式的方式對資料速率作出減縮。接下來,韌體提高申訴端點之資料速率設定(步驟812)。其後,操作返回至步驟804以判定是否存在退出條件。
因此,說明性實施例提供用於基於PCIe端點之最大及/或最小資料速率及前端匯流排之最大資料速率來自動調節PCIe端點之作業參數的機制。說明性實施例允許前端匯流排得以完全利用且其頻寬在資料處理系統之複數個PCIe端點上得以平衡,同時最小化等時要求問題及歸因於超過了前端匯流排頻寬而不能保證PCIe端點之效能的情形。
應注意,儘管從韌體(其係用於實施本發明之功能性之主要操作元件)的角度描述了上述說明性實施例,但本發明並不受限於此。實情為,如上文所指出,在不脫離本發明之精神及範疇之情況下,說明性實施例之機制可以硬體、軟體或硬體與軟體之任何組合來實施。
此外,儘管在說明性實施例之描述中使用PCIe端點之作業參數(例如,MMRS、路徑數目及有效負載大小)之特定實例,但本發明並不限於僅使用此等特定作業參數。可在表資料結構或其類似者中使用其他作業參數以達成說明性實施例及本發明之目的。此外,在不脫離本發明之精神及範疇之情況下,說明性實施例並不要求表資料結構,且可以不同於表之各種其他形式來提供歸屬於上述描述中之表資料結構的資訊。
另外,儘管在特定應用於PCIe端點或配接器之情況下描述了說明性實施例,但說明性實施例並不限於此。實情為,說明性實施例之機制可用以在端點或資料源/資料儲集器上平衡任何類型之匯流排或資料訊務機制之頻寬。舉例而言,在不脫離本發明之精神及範疇之情況下,除PCIe之外的利用其他協定之端點或配接器可為說明性實施例之機制的主題。
在動態模式中,說明性實施例之機制設定可在預定時間段內發生之錯誤的一臨限值。若超過該臨限值,則機制查詢前端匯流排效能計數器以判定前端匯流排是否正在以其最大資料速率操作。若前端匯流排並非正在以最大資料速率運行,則機制將超過該臨限值之端點的資料速率設定提高一階。若前端匯流排正在以其最大資料速率運行,則機制查詢所有端點以判定哪些端點為作用中的。機制接著判定是否存在優先權低於申訴端點之任何作用中端點。機制將較低優先權之端點降低一階且將申訴端點提高一階。若前端匯流排正在以其最大資料速率運行且不存在作用中的較低優先權之端點,則機制對申訴端點不予理會。
應瞭解,說明性實施例可採用完全硬體實施例之形式、完全軟體實施例之形式或含有硬體元件與軟體元件之實施例之形式。在一例示性實施例中,說明性實施例之機制係以軟體來實施,軟體包括(但不限於)韌體、常駐軟體、微碼等。
此外,說明性實施例可採用可自電腦可用或電腦可讀媒體存取之電腦程式產品的形式,該電腦可用或電腦可讀媒體提供由電腦或任何指令執行系統使用或結合電腦或任何指令執行系統所使用的程式碼。出於此描述之目的,電腦可用或電腦可讀媒體可為可含有、儲存、傳達、傳播或輸送由指令執行系統、設備或裝置使用或結合指令執行系統、設備或裝置使用之程式的任何設備。
媒體可為電子、磁性、光學、電磁、紅外或半導體系統(或設備或裝置)或傳播媒體。電腦可讀媒體之實例包括半導體或固態記憶體、磁帶、抽取式電腦磁片、隨機存取記憶體(RAM)、唯讀記憶體(ROM)、硬磁碟及光碟。光碟之當前實例包括唯讀光碟(CD-ROM)、讀/寫光碟(CD-R/W)及DVD。
適合用於儲存及/或執行程式碼之資料處理系統將包括至少一處理器,該至少一處理器直接耦接至或經由系統匯流排而間接耦接至記憶體元件。該等記憶體元件可包括在實際執行程式碼期間所利用之局部記憶體、太容量儲存器及快取記憶體,其提供至少某一程式碼之暫時儲存以便減少在執行期間必須自大容量儲存器擷取程式碼之次數。
輸入/輸出或I/O裝置(其包括但不限於鍵盤、顯示器、指向裝置等)可直接耦接至系統或經由介入之I/O控制器而耦接至系統。網路配接器亦可耦接至系統以使資料處理系統能夠變得經由介入之專用或公共網路而耦接至其他資料處理系統或遠端印表機或儲存裝置。數據機、電纜數據機及乙太網路卡僅為當前可用類型之網路配接器中的少數幾種。
為了說明及描述,已呈現本發明之描述,且該描述並不意欲為詳盡的或限於呈所揭示之形式的本發明。許多修改及變化將為一般熟習此項技術者所顯而易見。選擇並描述實施例以便最好地解釋本發明之原理、實際應用,且使一般熟習此項技術者能夠針對各種實施例且各種修改適合於所涵蓋之特殊用途的情況理解本發明。
100...周邊元件互連快遞(PCIe)組構拓撲
110...主機處理器(CPU)根複合體
120...記憶體
130...根複合體或多根複合體
140...PCIe端點
150...PCI-EXPRESS至PCI橋接器
160...互連交換器
170...端點
182...端點
184...端點
186...端點
188...端點
190...中央電子複合體(CEC)
192...匯流排
200...資料處理系統
202...北橋與記憶體控制器集線器(NB/MCH)
204...南橋與輸入/輸出(I/O)控制器集線器(SB/ICH)
206...處理單元
208...主記憶體
210...圖形處理器
212...區域網路(LAN)配接器
216...音訊配接器
220...鍵盤與滑鼠配接器
222...數據機
224...唯讀記憶體(ROM)
226...硬碟機(HDD)
230...唯讀光碟機
232...通用串列匯流排(USB)埠及其他通信埠
234...PCI/PCIe裝置
236...超I/O(SIO)裝置
238...匯流排
240...匯流排
290...韌體
295...匯流排仲裁器
310...韌體
320...第一表資料結構儲存裝置
330...第二表資料結構儲存裝置
340...使用者頻寬平衡等級儲存裝置
350...組態資料結構儲存裝置
352...組態資料結構儲存裝置
354...組態資料結構儲存裝置
360...PCIe端點
362...PCIe端點
364...PCIe端點
370...前端匯流排
390...匯流排仲裁器
510...PCIe端點之優先權等級
520...PCIe端點之類別
530...PCIe端點之子類別
540...PCIe端點之理想資料速率
550...PCIe端點之最小資料速率
560...等時要求
圖1為說明根據PCIe規格之PCI快遞(PCIe)組構拓撲的例示性圖;
圖2為可於其中實施說明性實施例之態樣的例示性資料處理系統之方塊圖;
圖3為說明性實施例之主要作業組件的例示性圖;
圖4A至圖4E為根據一說明性實施例之第一三維表資料結構的例示性圖,該第一三維表資料結構用於識別用於在PCIe端點上平衡頻寬的作業參數之可能組合;
圖4F為根據一說明性實施例之二維表資料結構之例示性圖,該二維表資料結構可用於PCIe端點之寫入操作;
圖5為第二表資料結構之例示性圖,該第二表資料結構用於識別所支援之PCIe端點及該等PCIe端點是否具有等時要求;
圖6A至圖6B為概述根據一說明性實施例之例示性操作的流程圖,該操作用於判定PCIe端點之作業參數之設定以便平衡頻寬;
圖7為概述根據一說明性實施例之例示性操作的流程圖,該操作用於調節具有等時要求之PCIe端點之作業參數以便平衡頻寬;及
圖8為概述根據一說明性實施例之例示性操作的流程圖,該操作用於動態地平衡PCIe端點之頻寬。
200...資料處理系統
202...北橋與記憶體控制器集線器(NB/MCH)
204...南橋與輸入/輸出(I/O)控制器集線器(SB/ICH)
206...處理單元
208...主記憶體
210...圖形處理器
212...區域網路(LAN)配接器
216...音訊配接器
220...鍵盤與滑鼠配接器
222...數據機
224...唯讀記憶體(ROM)
226...硬碟機(HDD)
230...唯讀光碟機
232...通用串列匯流排(USB)埠及其他通信埠
234...PCI/PCIe裝置
236...超I/O(SIO)裝置
238...匯流排
240...匯流排
290...韌體
295...匯流排仲裁器

Claims (25)

  1. 一種在一資料處理系統中用於在耦接至該資料處理系統之複數個端點上動態地平衡該資料處理系統之一前端匯流排之一頻寬的方法,其包含:設定可在一預定時間段內發生之錯誤之一數目的一臨限值;判定一給定端點是否超過該臨限值;回應於該給定端點超過該臨限值,判定該前端匯流排是否正在以其最大資料速率運行;及若該前端匯流排並非正在以其最大資料速率運行,則增大該給定端點之一或多個資料速率設定。
  2. 如請求項1之方法,其進一步包含:查詢所有端點以判定哪些端點為作用中的。
  3. 如請求項2之方法,其進一步包含:回應於至少一作用中端點為作用中的,判定任何作用中端點是否具有一比該給定端點低之優先權。
  4. 如請求項3之方法,其進一步包含:若該前端匯流排正在以其最大資料速率運行,則降低具有一比該給定端點低之優先權之至少一作用中端點的一或多個資料速率設定。
  5. 如請求項4之方法,其進一步包含:增大該給定端點之一或多個資料速率設定。
  6. 如請求項1之方法,其中該一或多個資料速率設定包含最大記憶體讀取大小,且其中增大該給定端點之該一或多個資料速率設定包含:即時增大該最大記憶體讀取大小參數。
  7. 如請求項1之方法,其中該一或多個資料速率設定包含有效負載,且其中增大該給定端點之該一或多個資料速率設定包含:暫時停止該給定端點上之訊務;增大該有效負載參數;及重新開始該給定端點上之訊務。
  8. 如請求項1之方法,其中該一或多個資料速率設定包含路徑大小,且其中增大該給定端點之該一或多個資料速率設定包含:暫時停止一與該給定端點相關聯之應用程式;重新訓練用於該給定端點之路徑;重新初始化一用於該給定端點之裝置驅動程式;及重新開始該應用程式。
  9. 如請求項1之方法,其進一步包含:判定該前端匯流排之該最大資料速率。
  10. 如請求項9之方法,其中判定該前端匯流排之該最大資料速率包含:自該資料處理系統之一暫存器擷取最大資料速率值,該暫存器儲存該最大資料速率值。
  11. 如請求項9之方法,其中判定該前端匯流排之該最大資料速率包含:而接收一作為重要產品資料之部分的對應於該前端匯流排之該最大資料速率的值。
  12. 如請求項1之方法,其中判定該前端匯流排是否正在以其最大資料速率運行:包含查詢該前端匯流排中之效能計數器。
  13. 如請求項1之方法,其中該方法係以該資料處理系統之韌體來實施。
  14. 如請求項13之方法,其中判定一給定端點是否超過該臨限值包含:回應於在一根複合體中偵測到來自該給定端點之錯誤的一數目超過該臨限值,將一中斷自該根複合體發送至該資料處理系統中之該韌體。
  15. 如請求項13之方法,其中判定一給定端點是否超過該臨限值包含:回應於在一根複合體中偵測到來自該給定端點之錯誤的一數目超過該臨限值,設定該根複合體中之一暫存器中之一位元;由該資料處理系統中之韌體輪詢該暫存器;及由該韌體判定是否設定了該暫存器中之該位元。
  16. 一種在一資料處理系統內之韌體中用於在耦接至該資料處理系統之複數個端點上動態地平衡該資料處理系統之一前端匯流排之一頻寬的方法,其包含:設定可在一預定時間段內發生之錯誤之一數目的一臨限值;判定一給定端點是否超過該臨限值;查詢該前端匯流排中之效能計數器;判定該前端匯流排之一最大資料速率;回應於該給定端點超過該臨限值,判定該前端匯流排是否正在以其最大資料速率運行;若該前端匯流排並非正在以其最大資料速率運行,則增大該給定端點之一或多個資料速率設定;及若該前端匯流排正在以其最大資料速率運行,則降低具有一比該給定端點低之優先權之至少一作用中端點的一或多個資料速率設定且增大該給定端點之一或多個資料速率設定。
  17. 一種電腦程式產品,其包含一具有一電腦可讀程式之電腦可用媒體,其中該電腦可讀程式當在一計算裝置上執行時使該計算裝置:設定可在一預定時間段內發生之錯誤之一數目的一臨限值;判定一給定端點是否超過該臨限值;回應於該給定端點超過該臨限值,判定該前端匯流排是否正在以其最大資料速率運行;及若該前端匯流排並非正在以其最大資料速率運行,則增大該給定端點之一或多個資料速率設定。
  18. 如請求項17之電腦程式產品,其中該電腦可讀程式當在該計算裝置上執行時進一步使該計算裝置:在該前端匯流排正在以其最大資料速率運行的情況下降低具有一比該給定端點低之優先權之至少一作用中端點的一或多個資料速率設定。
  19. 如請求項17之電腦程式產品,其中該一或多個資料速率設定包含最大記憶體讀取大小,且其中增大該給定端點之該一或多個資料速率設定包含:即時增大該最大記憶體讀取大小參數。
  20. 如請求項17之電腦程式產品,其中該電腦可讀程式當在該計算裝置上執行時進一步使該計算裝置:判定該前端匯流排之該最大資料速率。
  21. 一種資料處理系統,其包含:韌體;一前端匯流排;及耦接至該韌體及該前端匯流排之複數個端點,其中該韌體經組態以:設定可在一預定時間段內發生之錯誤之一數目的一臨限值;判定一給定端點是否超過該臨限值;回應於該給定端點超過該臨限值,判定該前端匯流排是否正在以其最大資料速率運行;且在該前端匯流排並非正在以其最大資料速率運行的情況下增大該給定端點之一或多個資料速率設定。
  22. 如請求項21之資料處理系統,其中該韌體進一步經組態以:在該前端匯流排正在以其最大資料速率運行的情況下降低具有一比該給定端點低之優先權之至少一作用中端點的一或多個資料速率設定。
  23. 如請求項21之資料處理系統,其中該一或多個資料速率設定包含最大記憶體讀取大小,且其中增大該給定端點之該一或多個資料速率設定包含:即時增大該最大記憶體讀取大小參數。
  24. 如請求項21之資料處理系統,其中回應於在一根複合體中偵測到來自該給定端點之錯誤的一數目超過該臨限值,該根複合體設定該根複合體中之一暫存器中之一位元,且其中判定一給定端點是否超過該臨限值包含:輪詢該暫存器;及判定是否設定了該暫存器中之該位元。
  25. 一種資料處理系統,其包含:韌體;一前端匯流排;及耦接至該韌體及該前端匯流排的複數個端點,其中該韌體經組態以:設定可在一預定時間段內發生之錯誤之一數目的一臨限值;判定一給定端點是否超過該臨限值;查詢該前端匯流排中之效能計數器;判定該前端匯流排之一最大資料速率;回應於該給定端點超過該臨限值,判定該前端匯流排是否正在以其最大資料速率運行;在該前端匯流排並非正在以其最大資料速率運行的情況下增大該給定端點之一或多個資料速率設定;且在該前端匯流排正在以其最大資料速率運行的情況下降低具有一比該給定端點低之優先權之至少一作用中端點的一或多個資料速率設定且增大該給定端點之一或多個資料速率設定。
TW097136651A 2007-10-03 2008-09-24 用於動態地平衡pci-express頻寬的系統 TWI408558B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US11/866,472 US7653773B2 (en) 2007-10-03 2007-10-03 Dynamically balancing bus bandwidth

Publications (2)

Publication Number Publication Date
TW200923666A TW200923666A (en) 2009-06-01
TWI408558B true TWI408558B (zh) 2013-09-11

Family

ID=40524284

Family Applications (1)

Application Number Title Priority Date Filing Date
TW097136651A TWI408558B (zh) 2007-10-03 2008-09-24 用於動態地平衡pci-express頻寬的系統

Country Status (4)

Country Link
US (1) US7653773B2 (zh)
JP (1) JP4988678B2 (zh)
CN (1) CN101404608B (zh)
TW (1) TWI408558B (zh)

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7929565B2 (en) * 2007-12-12 2011-04-19 Dell Products L.P. Ethernet switching of PCI express packets
US7725640B2 (en) * 2008-04-18 2010-05-25 Lsi Corporation Adapter card replay buffer for system fault analysis
US8402195B2 (en) * 2009-10-27 2013-03-19 Hitachi, Ltd. Storage system mounted with plurality of processors
US8688926B2 (en) * 2010-10-10 2014-04-01 Liqid Inc. Systems and methods for optimizing data storage among a plurality of solid state memory subsystems
US8838849B1 (en) * 2011-12-08 2014-09-16 Emc Corporation Link sharing for multiple replication modes
US9853744B2 (en) * 2012-01-17 2017-12-26 Hadal, Inc. Systems and methods for transmitting data from an underwater station
US8782321B2 (en) * 2012-02-08 2014-07-15 Intel Corporation PCI express tunneling over a multi-protocol I/O interconnect
US9325514B1 (en) * 2012-03-08 2016-04-26 Mesh Networks, Llc Apparatus for managing local devices
JP6135114B2 (ja) 2012-12-13 2017-05-31 富士通株式会社 ストレージ装置、エラー処理方法及びエラー処理プログラム
JP6011727B2 (ja) * 2013-07-17 2016-10-19 富士通株式会社 データ転送装置、データ転送方法及び情報処理装置
JP6213148B2 (ja) 2013-10-25 2017-10-18 富士通株式会社 ストレージ装置、ストレージ装置の制御方法およびストレージ装置制御プログラム
JP6264155B2 (ja) 2014-03-31 2018-01-24 富士通株式会社 情報処理装置、情報処理装置の制御方法及び情報処理装置の制御プログラム
KR102257737B1 (ko) * 2014-08-12 2021-05-28 삼성전자 주식회사 전자장치의 처리량 제어장치 및 방법
US10055218B2 (en) * 2015-08-11 2018-08-21 Quanta Computer Inc. System and method for adding and storing groups of firmware default settings
US20170091013A1 (en) * 2015-09-28 2017-03-30 Netapp, Inc. Pcie error reporting and throttling
US10054636B2 (en) * 2015-10-23 2018-08-21 Intel IP Corporation Device, system and method to support communication of test, debug or trace information with an external input/output interface
KR102611987B1 (ko) 2015-11-23 2023-12-08 삼성전자주식회사 패브릭 네트워크를 이용한 파워 관리 방법 및 이를 적용하는 패브릭 네트워크 시스템
US10114658B2 (en) * 2016-05-23 2018-10-30 Baida USA LLC Concurrent testing of PCI express devices on a server platform
TWI767997B (zh) 2017-03-23 2022-06-21 日商索尼半導體解決方案公司 通信裝置、通信方法、程式及通信系統
CN108363673A (zh) * 2018-02-28 2018-08-03 郑州云海信息技术有限公司 设置pcie热插拔设备传输负载的方法、装置及设备
WO2020145956A1 (en) * 2019-01-09 2020-07-16 Hewlett-Packard Development Company, L.P. Data link changes based on requests
US11194503B2 (en) 2020-03-11 2021-12-07 Samsung Electronics Co., Ltd. Storage device having a configurable command response trigger
CN111722966B (zh) * 2020-06-19 2024-01-23 广东浪潮大数据研究有限公司 PCIe Switch检测方法、系统、设备及介质
CN111930660B (zh) * 2020-07-30 2022-04-15 长沙景嘉微电子股份有限公司 Pcie通路配置方法、装置、终端和介质
US20240202140A1 (en) * 2022-12-14 2024-06-20 Qualcomm Incorporated Data rate increase for faulty lane recovery in multiple lane data links

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6195759B1 (en) * 1997-10-20 2001-02-27 Intel Corporation Method and apparatus for operating a synchronous strobe bus
TW552512B (en) * 1999-07-29 2003-09-11 Ibm Enhanced bus arbiter utilizing variable priority and fairness
TW200619972A (en) * 2004-04-15 2006-06-16 Raytheon Co High performance computing system and method
EP1192525B1 (en) * 1999-06-29 2006-10-18 Intel Corporation Method and apparatus for dynamically changing the sizes of pools that control the power consumption levels of memory devices

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6372219B1 (en) * 1996-03-14 2002-04-16 Univ Illinois Parasite-derived anti-inflammatory immunomodulatory protein
KR19980079690A (ko) * 1997-04-04 1998-11-25 포맨 제프리 엘 경험적 버스 성능 최적화 시스템 및 방법
US6438141B1 (en) * 1998-04-20 2002-08-20 Sun Microsystems, Inc. Method and management of communications over media of finite bandwidth
US6732219B1 (en) 2001-02-23 2004-05-04 Hewlett-Packard Development Company, L.P. Dynamic allocation of devices to host controllers
US7177971B2 (en) 2001-08-24 2007-02-13 Intel Corporation General input/output architecture, protocol and related methods to provide isochronous channels
US6918001B2 (en) 2002-01-02 2005-07-12 Intel Corporation Point-to-point busing and arrangement
EP1418506A3 (en) * 2002-11-08 2005-10-12 Matsushita Electric Industrial Co., Ltd. Data storing system and transmission control method
US7136953B1 (en) 2003-05-07 2006-11-14 Nvidia Corporation Apparatus, system, and method for bus link width optimization
CN1856778A (zh) * 2003-07-07 2006-11-01 皇家飞利浦电子股份有限公司 数据处理系统和数据处理方法
CN1322440C (zh) * 2003-08-01 2007-06-20 上海奇码数字信息有限公司 多设备系统中的通信子系统及其通信方法
US7782325B2 (en) 2003-10-22 2010-08-24 Alienware Labs Corporation Motherboard for supporting multiple graphics cards
US7099969B2 (en) * 2003-11-06 2006-08-29 Dell Products L.P. Dynamic reconfiguration of PCI Express links
US7404017B2 (en) * 2004-01-16 2008-07-22 International Business Machines Corporation Method for managing data flow through a processing system
US7133129B2 (en) * 2004-05-12 2006-11-07 General Electric Company Cargo inspection apparatus having a nanoparticle film and method of use thereof
US7197591B2 (en) * 2004-06-30 2007-03-27 Intel Corporation Dynamic lane, voltage and frequency adjustment for serial interconnect
US7590065B2 (en) 2004-08-04 2009-09-15 Microsoft Corporation Equal-opportunity bandwidth regulation
TWI286693B (en) 2004-11-12 2007-09-11 Via Tech Inc Method for dynamically adjusting the data transfer order of PCI Express root ports
US7149839B2 (en) * 2004-12-03 2006-12-12 Microsoft Corporation Wireless USB hardware scheduling
WO2006073323A1 (en) * 2004-12-29 2006-07-13 Intel Corporation Forward error correction and automatic repeat request joint operation for a data link layer
JP4541949B2 (ja) * 2005-03-31 2010-09-08 富士通株式会社 データ転送装置
JP2006313955A (ja) * 2005-05-06 2006-11-16 Nissan Motor Co Ltd バス通信システム及びデータ送信のための帯域割り当て方法
US7287114B2 (en) 2005-05-10 2007-10-23 Intel Corporation Simulating multiple virtual channels in switched fabric networks
JP2006324793A (ja) * 2005-05-17 2006-11-30 Sharp Corp 通信帯域割り当てシステム
US7539801B2 (en) 2005-05-27 2009-05-26 Ati Technologies Ulc Computing device with flexibly configurable expansion slots, and method of operation
JP4877482B2 (ja) * 2006-04-11 2012-02-15 日本電気株式会社 PCIExpressリンク、マルチホストコンピュータシステム、およびPCIExpressリンクの再構成方法
US7836352B2 (en) * 2006-06-30 2010-11-16 Intel Corporation Method and apparatus for improving high availability in a PCI express link through predictive failure analysis
US7536490B2 (en) 2006-07-20 2009-05-19 Via Technologies, Inc. Method for link bandwidth management
US20080256400A1 (en) * 2007-04-16 2008-10-16 Chih-Cheng Yang System and Method for Information Handling System Error Handling
US7660925B2 (en) * 2007-04-17 2010-02-09 International Business Machines Corporation Balancing PCI-express bandwidth

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6195759B1 (en) * 1997-10-20 2001-02-27 Intel Corporation Method and apparatus for operating a synchronous strobe bus
EP1192525B1 (en) * 1999-06-29 2006-10-18 Intel Corporation Method and apparatus for dynamically changing the sizes of pools that control the power consumption levels of memory devices
TW552512B (en) * 1999-07-29 2003-09-11 Ibm Enhanced bus arbiter utilizing variable priority and fairness
TW200619972A (en) * 2004-04-15 2006-06-16 Raytheon Co High performance computing system and method

Also Published As

Publication number Publication date
US7653773B2 (en) 2010-01-26
JP2009093636A (ja) 2009-04-30
CN101404608B (zh) 2012-12-26
TW200923666A (en) 2009-06-01
CN101404608A (zh) 2009-04-08
JP4988678B2 (ja) 2012-08-01
US20090094401A1 (en) 2009-04-09

Similar Documents

Publication Publication Date Title
TWI408558B (zh) 用於動態地平衡pci-express頻寬的系統
US7660925B2 (en) Balancing PCI-express bandwidth
EP3242218B1 (en) Dynamic pcie switch reconfiguration mechanism
US20210041929A1 (en) Dynamic network controller power management
US10210120B2 (en) Method, apparatus and system to implement secondary bus functionality via a reconfigurable virtual switch
CN109614256B (zh) 现场错误恢复
US8566494B2 (en) Traffic class based adaptive interrupt moderation
US9774503B2 (en) Method, apparatus and system for automatically discovering nodes and resources in a multi-node system
US11734204B2 (en) Adaptive processor resource utilization
US9954792B2 (en) Shared flow control credits
US20140195833A1 (en) Adaptive low-power link-state entry policy for active interconnect link power management
US8898416B2 (en) Storage allocation management in switches utilizing flow control
US10853289B2 (en) System, apparatus and method for hardware-based bi-directional communication via reliable high performance half-duplex link
JP2013510375A (ja) データ通信のためのシステム、方法、および装置
CN113297122A (zh) 基于串行总线聚合io连接管理来影响处理器调节
US20080082708A1 (en) Token hold off for chipset communication
US20110096659A1 (en) Zero Packet Loss Energy Efficient Ethernet Link Transition Via Driver Fast Failover
WO2017012459A1 (zh) 系统总线设备响应超时的处理方法、装置及存储介质
US11513575B1 (en) Dynamic USB-C mode configuration
US9111039B2 (en) Limiting bandwidth for write transactions across networks of components in computer systems
KR102668564B1 (ko) PCIe 인터페이스 장치 및 그 동작 방법
US11755518B2 (en) Control of Thunderbolt/DisplayPort multiplexor for discrete USB-C graphics processor
Brief Intel® Ethernet Server Adapter I350
Hanawa et al. Power-aware, dependable, and high-performance communication link using PCI Express: PEARL

Legal Events

Date Code Title Description
MM4A Annulment or lapse of patent due to non-payment of fees