欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

平衡快速外圍組件互連帶寬的系統(tǒng)和方法

文檔序號:6462282閱讀:237來源:國知局

專利名稱::平衡快速外圍組件互連帶寬的系統(tǒng)和方法平衡快速外圍組件互連帶寬的系統(tǒng)和方法
技術(shù)領(lǐng)域
本申請一般涉及改進的數(shù)據(jù)處理系統(tǒng)和方法。更具體地,本申請針對于平衡多個PCI-Express(快速PCI)適配器之間的PCI-Express帶寬的系統(tǒng)和方法。
背景技術(shù)
:多數(shù)的現(xiàn)代計算裝置使用輸入/輸出(I/O)適配器、以及利用由Intel在20世紀(jì)90年代首創(chuàng)的外圍組件互連標(biāo)準(zhǔn)的某些版本或?qū)崿F(xiàn)的總線。外圍組件互連(PCI)標(biāo)準(zhǔn)規(guī)定了用于將外圍設(shè)備附接到計算機主板上的計算機總線PCI-Express或者PCIe是PCI計算機總線的實現(xiàn),其使用現(xiàn)有的PCI編程概念,但使計算機總線基于完全不同、且快得多的串行物理層通信協(xié)議。物理層所包括的不是在多個設(shè)備之間共享的雙向總線,而是連接到確定的兩個設(shè)備上的單個的單向鏈路。圖1是根據(jù)PCIe規(guī)范描述PCI-Express(PCIe)組織拓樸的示例圖。如圖1所示,PCIe組織拓樸100包括主處理器(CPU)聯(lián)合體110;以及耦接到根聯(lián)合體(rootcomplex)或多根聯(lián)合體130的存儲器120,所述根聯(lián)合體130即I/O北橋,其按順序耦接到一個或多:個PCIe端點(endpoint)140(在PCIe規(guī)范中使用的術(shù)語"端點"是指允許PCIe的I/O適配器)、PCI-Express到PCI橋150、以及互連切換器160中的一個或多個。根聯(lián)合體130表示把CPU/存儲器連接到I/O適配器的I/O層級的根。根聯(lián)合體130包括主橋、拿個或者更多的根聯(lián)合體集成端點、零個或者更多個根聯(lián)合體事件收集器、以及一個或多個根端口。每個根端口支持分離的1/0層級。1/0層級可以包括械'聯(lián)合體130、零個或者更多個互連切換器160和/或橋150(其包括切換器或'PCIe結(jié)構(gòu))、以及諸如端點170和182-188的一個或多個端點。端點140、170以及182-188例如可以是以太網(wǎng)、SCSI、SAS、或者光纖通道I/O適配器。對于更多的關(guān)于PCI和PCIe的信息,可以參考從外圍總線連接特別興趣組的網(wǎng)站www.pcisig.com4f到的PCI和PCIe的^見范。CPU聯(lián)合體110包括一個或多個處理器和存儲器(未示出),并且,駐留連接到根聯(lián)合體130,使用有時被稱為前端(front-side)總線的總線192,例如,在國際商業(yè)機器公司(IBM)企業(yè)服務(wù)器中,稱這些總線為GX+總線。前端總線192具有有限的、已知數(shù)量的帶寬。例如,前端總線192可以支持4G字節(jié)/秒的帶寬。在當(dāng)前已知的配置中,如果端點140、170以及182-188的PCIe通道(lane)用到它們最大的級別,那么,把好幾個抽屜(drawer)與其總帶寬可以超過在前端總線192上可用的4G字節(jié)/秒的帶寬的端點140、170以及182-188串接起來是可能的。在PCI標(biāo)準(zhǔn)中的"通道"是不同的信號對的集合,一對用于傳輸、且一對用于接收。在PCI標(biāo)準(zhǔn)中的"by-N"鏈路包括N個通道,例如,"x8"鏈路或槽(slot)支持到達/來自1/0適配器的流量的8個通道。如果經(jīng)由端點的PCIe通道的流量超過了前端總線192的可用的帶寬,則不能保證將達到每個I/0適配器的期望性能,并且,可能隨著同步I/0適配器出現(xiàn)問題,所述同步I/0適配器即這樣的I/0適配器其數(shù)據(jù)傳輸(例如,與時間相關(guān)的諸如實時語音和視頻的數(shù)據(jù)的傳輸)具有在數(shù)據(jù)分組傳輸之間的相同的時間差上傳輸?shù)臄?shù)據(jù)分組。PCI-Express可通過創(chuàng)建流量類、以及可以定義哪一個流量具有優(yōu)先級以及每個通道可以使用多少緩沖空間的虛擬通道,而試圖解決這種問題。此解決方案的問題在于該行業(yè)還沒有試圖利用這種架構(gòu)特點。由于以盡可能針對操作系統(tǒng)和固件而透明的方式、執(zhí)行從PCI-X到PCI-Express的過渡,所以,該行業(yè)還沒有利用多流量類以及虛擬通道。為了完全地利用流量類和虛擬通道,操作系統(tǒng)和固件將不得不意識到這些特點,并且,為了利用這些特點,需要寫入新的代碼。然而,基本集成操作系統(tǒng)(BIOS)以及已知的操作系統(tǒng),如微軟Windows和Linux,并未作出這種修改,而是尚未為支持多流量類和虛擬信道進行必要的修改。進一步,從硬件的角度看,對多流量類和多虛擬通道增加支持需要芯片區(qū)域的增加的復(fù)雜度,例如,仲裁和流控制。此外,由于每個虛擬通道將需要它自己私有的存儲器用于發(fā)送和接收數(shù)據(jù),所以,增加這些支持需要附加的芯片成本開銷(realestate)。結(jié)果,硬件制造商沒有實現(xiàn)對多虛擬通道和多流量類的支持?,F(xiàn)有的PCI-Express適配器不是采用多流量類和虛擬通道,而是僅支持一個虛擬通道和一個流量類。此外,主要的操作系統(tǒng),如微軟windows和Linux,僅僅使用一個流量信道和一個虛擬通道。結(jié)果,當(dāng)前已知的環(huán)境經(jīng)常遭遇到這樣的問題在經(jīng)由I/O集線器或切換器連接到CPU聯(lián)合體上的I/O抽屜中的PCI-Express適配器卡集合的總共可能的帶寬可能遠遠超過了I/O集線器、切換器、和/或前端總線的能力。
發(fā)明內(nèi)容說明性實施例提供了在多個PCI-Express(PCIe)適配器或"端點,,之間平衡總線帶寬的系統(tǒng)和方法。說明性實施例的機制包括固件、硬件、或者軟件機制、以及數(shù)據(jù)結(jié)構(gòu),其自動協(xié)同操作,以設(shè)置PCIe適配器/端點的操作參數(shù),從而最大化前端總線的可用帶寬的使用率,同時最小化不能保證PCIe適配器/端點的性能的可能性,并且最小化伴隨著同步PCIe適配器/端點的問題。在一個說明性實施例中,固件利用兩個表數(shù)據(jù)結(jié)構(gòu),以基于將端點的總的最大和/或最小數(shù)據(jù)速率與前端總線的最大數(shù)據(jù)速率(即,前端總線的帶寬)的比較,來調(diào)整PCIe適配器/端點(此后稱作端點)的4乘作參數(shù)。第一表數(shù)據(jù)結(jié)構(gòu)包括用于控制數(shù)據(jù)處理系統(tǒng)的每個端點的帶寬使用的操作參數(shù)設(shè)置的各種組合。第二表數(shù)據(jù)結(jié)構(gòu)包含數(shù)據(jù)處理系統(tǒng)所支持的端點、以及它們的相關(guān)聯(lián)的最小數(shù)據(jù)速率和優(yōu)先級的列表。第二表數(shù)據(jù)結(jié)構(gòu)進一步指出哪些端點具有同步要求。此外,識別要在特定的數(shù)據(jù)處理系統(tǒng)中實現(xiàn)的說明性實施例的機制的期望級別的設(shè)置,并使用其確定如何調(diào)節(jié)操作參數(shù)。在操作中,示例性實施例的機制確定前端總線的最大數(shù)據(jù)速率,并且查詢所有的當(dāng)前附接的端點,以確定每個端點的最大通道、最大存儲器讀取大小(MMRS)、以及有效負載值是什么,從而為每個端點確定最大數(shù)據(jù)速率,以便達到所有端點的總的最大數(shù)據(jù)速率。在確定了所有端點的總的最大數(shù)據(jù)速率之后,固件比較所有端點的最大數(shù)據(jù)速率與前端總線的最大數(shù)據(jù)速率。為了實現(xiàn)數(shù)據(jù)處理系統(tǒng)的期望性能,基于比較的結(jié)果,或者不理睬、或者基于用戶選擇的帶寬平衡的級別調(diào)整特定的端點的操作參數(shù)??梢赃M一步基于端點的最小數(shù)據(jù)速率、以及端點是否具有由第二表數(shù)據(jù)結(jié)構(gòu)指定的同步要求,而確定操作參數(shù)的設(shè)置。在一個說明性實施例中,提供了在多個耦接到數(shù)據(jù)處理系統(tǒng)的端點之間平衡數(shù)據(jù)處理系統(tǒng)的前端總線的帶寬的方法。該方法可以包括確定前端總線的最大數(shù)據(jù)速率;確定多個端點的總的最大數(shù)據(jù)速率;以及比較多個端點的總的最大數(shù)據(jù)速率與前端總線的最大數(shù)據(jù)速率。該方法可以進一步包括響應(yīng)于多個端點的總的最大數(shù)據(jù)速率大于前端總線的最大數(shù)據(jù)速率,檢索多個端點的最小數(shù)據(jù)速率,并且,基于多個端點的最小數(shù)據(jù)速率設(shè)置多個端點的操作參數(shù)。確定前端總線的最大數(shù)據(jù)速率可以包括以下步驟中的至少一個從存儲最大數(shù)據(jù)速率值的數(shù)據(jù)處理系統(tǒng)的寄存器檢索最大數(shù)據(jù)速率值、或者接收對應(yīng)于前端總線的最大數(shù)據(jù)速率的值作為至關(guān)重要的產(chǎn)品數(shù)據(jù)的部分。確定多個端點的總的最大數(shù)據(jù)速率可以包括向多個端點中的每個端點查詢它們當(dāng)前的操作參數(shù)設(shè)置;基于它們當(dāng)前的操作參數(shù)設(shè)置,為多個端點的每個確定最大數(shù)據(jù)速率;以及作為多個端點的每個端點的最大數(shù)據(jù)速率的總和,計算總的最大數(shù)據(jù)速率。在多個端點中查詢每個端點可以包括從行業(yè)標(biāo)準(zhǔn)寄存器獲得端點的操作參數(shù)設(shè)置,其中,行業(yè)標(biāo)準(zhǔn)寄存器的值是響應(yīng)于與正在加電的端點相對應(yīng)的槽而#:填充的。基于它們當(dāng)前的操作參數(shù)設(shè)置確定多個端點的每個端點的最大數(shù)據(jù)速率可以包括使用識別在一個或多個操作參數(shù)與最大數(shù)據(jù)速率的設(shè)置之間的相關(guān)性的第一數(shù)據(jù)結(jié)構(gòu),對多個端點中的每個端點執(zhí)行查找操作。第一數(shù)據(jù)結(jié)構(gòu)可以是三維數(shù)據(jù)結(jié)構(gòu),該三維數(shù)據(jù)結(jié)構(gòu)將多個通道操作參數(shù)、有效負載大小操作參數(shù)、以及最大存儲器讀取大小操作參數(shù)與最大數(shù)據(jù)速率相關(guān)。所述方法可以進一步包括如果多個端點的總的最大數(shù)據(jù)速率小于或者等于前端總線的最大數(shù)據(jù)速率,則將多個端點的每個端點的操作參數(shù)設(shè)置為對應(yīng)于每個端點的最大數(shù)據(jù)速率的值。檢索多個端點的最小數(shù)據(jù)速率可以包括使用識別在端點類型、端點優(yōu)先級、最小數(shù)據(jù)速率、以及端點是否具有同步要求之間的相關(guān)性的第二數(shù)據(jù)結(jié)構(gòu),對多個端點中的每個端點執(zhí)行查找操作?;诙鄠€端點的最小數(shù)據(jù)速率設(shè)置多個端點的操作參數(shù)的步驟可以包括檢索用戶帶寬平衡級別值;以及基于前端總線的最大數(shù)據(jù)速率和用戶帶寬平衡級別值,為前端總線確定調(diào)整的數(shù)據(jù)速率。設(shè)置操作參數(shù)可以進一步包括比較多個端點的總的最小數(shù)據(jù)速率與前端總線的調(diào)整的數(shù)據(jù)速率;以及基于多個端點的總的最小數(shù)據(jù)速率與前端總線的調(diào)整的數(shù)據(jù)速率的比較結(jié)果,設(shè)置多個端點的操作參數(shù)。如果多個端點的總的最小數(shù)據(jù)速率小于或者等于前端總線的調(diào)整的數(shù)據(jù)速率,則基于多個端點的總的最小數(shù)據(jù)速率與前端總線的調(diào)整的數(shù)據(jù)速率的比較結(jié)果而設(shè)置多個端點的操作參數(shù)的步驟可以包括基于對應(yīng)于端點的最小數(shù)據(jù)速率,通過在第一數(shù)據(jù)結(jié)構(gòu)中執(zhí)行查找操作而為每個端點設(shè)置操作參數(shù),其中該第一數(shù)據(jù)結(jié)構(gòu)識別在一個或多個操作參數(shù)和數(shù)據(jù)速率的設(shè)置之間的相關(guān)性。如果多個端點的總的最小數(shù)據(jù)速率大于前端總線的調(diào)整的數(shù)據(jù)速率,則基于多個端點的總的最小數(shù)據(jù)速率與前端總線的調(diào)整的數(shù)據(jù)速率的比較結(jié)果而設(shè)置多個端點的操作參數(shù)的步驟可以包括使用對應(yīng)的最小數(shù)據(jù)速率,基于在第一數(shù)據(jù)結(jié)構(gòu)中的查找操作,為每個端點設(shè)置操作參數(shù);以及發(fā)送錯誤消息給管理員數(shù)據(jù)處理裝置,以指示在配置數(shù)據(jù)處理系統(tǒng)中的問題。如果多個端點的總的最小數(shù)據(jù)速率大于前端總線的調(diào)整的數(shù)據(jù)速率,則基于多個端點的總的最小數(shù)據(jù)速率與前端總線的調(diào)整的數(shù)據(jù)速率的比較結(jié)果而設(shè)置多個端點的操作參數(shù)的步驟可以包括基于從識別端點優(yōu)先級的第二數(shù)據(jù)結(jié)構(gòu)檢索的優(yōu)先級信息,產(chǎn)生多個端點中的端點的優(yōu)先級列表;以及基于優(yōu)先級列表而減少分配給端點的資源,直到多個端點的總的最小數(shù)據(jù)速率小于或等于前端總線的調(diào)整的數(shù)據(jù)速率為止。該方法可以在數(shù)據(jù)處理系統(tǒng)的固件中執(zhí)行。該方法可以進一步包括基于第二數(shù)據(jù)結(jié)構(gòu),識別具有同步要求的多個端點中的一個或多個端點;以及基于第二數(shù)據(jù)結(jié)構(gòu),確定所述一個或多個端點是否具有最高優(yōu)先級。可以設(shè)置總線仲裁器,以便對一個或多個端點賦予比多個端點中的其它端點高的對前端總線的優(yōu)先級。該方法可以進一步包括基于第一數(shù)據(jù)結(jié)構(gòu),確定處理與用于一個或多個端點的操作參數(shù)設(shè)置相對應(yīng)的有效負載大小的時間;以及為多個端點確定理想的有效負載大小,以補償一個或多個端點的同步要求。可調(diào)整有效負載大小設(shè)置大于理想有效負載大小的多個端點中的端點的操作參數(shù)。在其它的示例性實施例中,提供了包括具有計算機可讀程序的計算機可用介質(zhì)的計算機程序產(chǎn)品。所述計算機可讀程序,當(dāng)在計算裝置執(zhí)行時,引起計算裝置執(zhí)行上述說明性實施例的方法給出的操作的各種操作或者其組合。再在另外一個說明性實施例中,"R供了數(shù)據(jù)處理系統(tǒng)。所述系統(tǒng)可以包括固件、前端總線,以及耦接到固件和前端總線的多個端點。固件可以包括當(dāng)執(zhí)行時51起所述固件執(zhí)行上述說明性實施例的方法給出的操作的各種操作或者其組合的指令。本發(fā)明的這些以及其它的特點和優(yōu)點將在以下的本發(fā)明的說明性實施例的具體的描述中被描述,或者,考慮到以下的本發(fā)明的說明性實施例的具體的描述,對于本領(lǐng)域的技術(shù)人員將變得顯而易見。當(dāng)與附圖一起閱讀時,本發(fā)明、以及優(yōu)選的使用模式和進一步的目標(biāo)和由此而來的優(yōu)點將通過參考以下說明性實施例的詳細描述而得以更好的理解,附圖中圖1是圖解根據(jù)PCIe規(guī)范的PCI-Express(PCIe)結(jié)構(gòu)拓樸(fabrictopology)的示例圖2是其中可實現(xiàn)說明性實施例的方面的示例性數(shù)據(jù)處理系統(tǒng)的框圖;圖3是說明性實施例的主要的操作組件的示例圖4A-4E是根據(jù)一個說明性實施例的、用于識別平衡PCIe端點之間的帶寬的操作參數(shù)的可能的組合的第一三維表數(shù)據(jù)結(jié)構(gòu)的示例圖4F是根據(jù)一個說明性實施例的、可用于PCIe端點的寫操作的二維表數(shù)據(jù)結(jié)構(gòu)的示例圖5是用于識別支持的PCIe端點、以及PCIe端點是否具有同步要求的第二表數(shù)據(jù)結(jié)構(gòu)的示例圖6A-6B是概述根據(jù)一個說明性實施例的、為了平衡帶寬而確定PCIe端點的操作參數(shù)的設(shè)置的示例性操作的流程圖;以及圖7是概述根據(jù)一個說明性實施例的、為了平衡帶寬而調(diào)整具有同步要求的PCIe端點的操作參數(shù)的示例性操作的流程圖。具體實施例方式說明性實施例提供了平衡多個PCI-Express(PCIe)適配器、或者"端點"之間的前端總線的帶寬的機制,使得即使當(dāng)PCIe端點僅僅支持單個虛擬信道和流量類時,實現(xiàn)數(shù)據(jù)處理系統(tǒng)的優(yōu)化性能。說明性實施例的機制可以被實現(xiàn)于數(shù)據(jù)處理系統(tǒng)中,該數(shù)據(jù)處理系統(tǒng)自身實現(xiàn)圖1的PCIe結(jié)構(gòu)拓樸、或者相似的PCIe結(jié)構(gòu)拓樸。作為其中說明性實施例的示例性方面得以實現(xiàn)的數(shù)據(jù)處理系統(tǒng)的一個示例框圖而提供了圖2。應(yīng)理解,圖2僅僅是示例性的,且不意欲斷言或者暗示針對其中實現(xiàn)本發(fā)明的方面或?qū)嵤├臄?shù)據(jù)處理環(huán)境的任何限制。在不脫離本發(fā)明的精神和范圍的條件下,可以做出對所描述的環(huán)境的很多修改?,F(xiàn)在參考圖2,示出了在其中實現(xiàn)了說明性實施例的方面的示例數(shù)據(jù)處理系統(tǒng)的框圖。數(shù)據(jù)處理系統(tǒng)200是計算機的例子,其中,可安置實現(xiàn)本發(fā)明的說明性實施例的處理的計算機可用代碼或指令??梢栽诠碳能浖刑峁┯嬎銠C可用代碼或指令。此外,在一些說明性實施例中,說明性實施例的機制可以作為圖2的數(shù)據(jù)處理系統(tǒng)的硬件元件而提供。在該描述的例子中,數(shù)據(jù)處理系統(tǒng)200使用包括北橋和存儲器控制器集線器(NB/MCH)202、以及南橋和輸入/輸出(I/O)控制器集線器(SB/ICH)204的集線器架構(gòu)。處理單元206、主存儲器208、以及圖形處理器210連接到NB/MCH202。圖形處理器210可以通過加速圖形端口(AGP)連接到NB/MCH202。在描述的實例中,局域網(wǎng)(LAN)適配器212連接到SB/ICH204。音頻適配器216、鍵盤和鼠標(biāo)適配器220、調(diào)制解調(diào)器222、只讀存儲器(ROM)224、硬盤驅(qū)動器(HDD)226、CD-ROM驅(qū)動器230、通用串行總線(USB)端口及其它的通信端口232、以及PCI/PCIe設(shè)備234通過總線238和總線240而連接到SB/ICH204。PCI/PCIe設(shè)備可以包括例如,以太網(wǎng)適配器、加入(add-in)卡、以及用于筆記本電腦的PC卡。PCI使用卡總線控制器,而PCIe則不是這樣。ROM224可以是例如快閃二進制輸入/輸出系統(tǒng)(BIOS).HDD226以及CD-ROM驅(qū)動器230通過總線240連接到SB/ICH204。HDD226以及CD-ROM驅(qū)動器230可以使用例如集成驅(qū)動電子器件(IDE)、或者串行高級技術(shù)附連(SATA)接口。超級I/O(SIO)設(shè)備236可以連接到SB/ICH204。操作系統(tǒng)運行在處理單元206上。操作系統(tǒng)調(diào)整并提供在圖2中的數(shù)據(jù)處理系統(tǒng)200中的各種組件的控制。作為客戶端,操:作系統(tǒng)可以是商業(yè)上可用的操作系統(tǒng),例如,MicrosoftWindowsXP(Microsoft和Windows是美國的或者其它國家或兩者的微軟公司的商標(biāo))。例如JavaTM編程系統(tǒng)的面向?qū)ο缶幊滔到y(tǒng)可以與操作系統(tǒng)協(xié)同運行,并且,從在數(shù)據(jù)系統(tǒng)200上執(zhí)行的Java程序或應(yīng)用提供對操作系統(tǒng)的調(diào)用(Java是美國的或者其它國家或兩者的SunMicrosystems公司的商才示)。作為服務(wù)器,數(shù)據(jù)處理系統(tǒng)200可以是例如IBMeServerTMpSeries⑧計算機系統(tǒng),其運行在高級交互執(zhí)行(AIX)操作系統(tǒng)或者LINLD^操作系統(tǒng)上(eServer、pSeries以及AIX是美國或者其它國家或兩者的國際商業(yè)機器公司的商標(biāo),而LINUX是美國的或者其它國家的LinusTorvald的商標(biāo))。凝:據(jù)處理系統(tǒng)200可以是在處理單元206中包括多個處理器的對稱多處理器系統(tǒng)(SMP)??蛇x地,也可以-使用單個處理器系統(tǒng)。操作系統(tǒng)的指令、面向?qū)ο缶幊滔到y(tǒng)、以及應(yīng)用或者程序位于例如HDD系統(tǒng)226的存儲裝置上,并且,可以被載入主存儲器208中以便由處理單元206執(zhí)行。本發(fā)明的說明性實施例的處理可以由使用計算機可用粒序代碼的處理單元206執(zhí)行,其中,所述計算機可用程序代碼可以位于例如主存儲器208、ROM224的存儲器中,或者,例如,位于一個或多個外圍設(shè)備226和230中。諸如圖2中示出的總線238或者總線240的總線系統(tǒng)可以包括一個或多個總線。當(dāng)然,可以使用在附接于構(gòu)造或架構(gòu)的不同的組件或設(shè)備之間提供數(shù)據(jù)傳輸?shù)娜魏晤愋偷耐ㄐ艠?gòu)造或架構(gòu),而實現(xiàn)該總線系統(tǒng)。諸如圖2的調(diào)制解調(diào)器222或者網(wǎng)絡(luò)適配器212的通信單元可以包括一個或多個用于傳送和接收數(shù)據(jù)的設(shè)備。存儲器可以是例如在圖2的NB/MCH202中找到的主存儲器208、ROM224或者高速緩存。本領(lǐng)域中的那些普通技術(shù)人員將理解,圖2中的硬件可以根據(jù)實現(xiàn)而變化。除了或者取代于圖2中描述的硬件,諸如閃存、同等的非易失性存儲器、或者光盤驅(qū)動器等的其它的內(nèi)部硬件或者外圍設(shè)備都可以使用。再者,在不脫離本發(fā)明的精神和范圍的條件下,除了前述的SMP系統(tǒng)之外,說明性實施例的處理還可以被應(yīng)用于多處理器數(shù)據(jù)處理系統(tǒng)。此外,數(shù)據(jù)處理系統(tǒng)200可以采用包括客戶端計算設(shè)備、服務(wù)器計算裝置、平板(tablet)計算機、膝上形計算機、電話或者其它的通信設(shè)備、個人數(shù)字助理(PDA)等等的任意數(shù)量的不同的數(shù)據(jù)處理系統(tǒng)的形式。在一些說明性的實例中,數(shù)據(jù)處理系統(tǒng)200可以是便攜式計算裝置,其配置有閃存,以提供非易失性存儲器,用于存儲例如操作系統(tǒng)文件和/或用戶產(chǎn)生的數(shù)據(jù)。數(shù)據(jù)處理系統(tǒng)200本質(zhì)上可以是任何已知的或者以后開發(fā)的沒有架構(gòu)限制的數(shù)據(jù)處理系統(tǒng)。對于這里闡述的說明性實施例特別重要的是,圖2的數(shù)據(jù)處理系統(tǒng)200包括固件290和總線仲裁器(arbiter)295??偩€仲裁器295用于仲裁由構(gòu)成PCIe結(jié)構(gòu)拓樸的前端總線的PCI/PCIe設(shè)備234對總線238、以及由此的北橋/存儲器控制器集線器(NB/MCH)202的訪問??偩€仲裁器295基于由固件290進行的各種PCI/PCIe設(shè)備234的操作參數(shù)的設(shè)置而操作。固件290按照在下文中的說明性實施例而執(zhí)行操作,以在PCI/PCIe設(shè)備234之間平衡總線238和NB/MCH202的帶寬。當(dāng)針對在固件290中執(zhí)行的功能描述說明性實施例時,應(yīng)當(dāng)理解,說明性實施例的功能可以軟件或者硬件的方式實現(xiàn)。即,可以由一個或多個處理器提供并執(zhí)行實行該功能的軟件指令。此外,在其它說明性實施例中,可以提供一個或多個集成電路設(shè)備,以在電路中執(zhí)4亍該功能。作為進一步的實例,在固件290的一個或多個層中4是供說明性實施例的功能。例如,啟動系統(tǒng)的BIOS、以及在運行時期間處理請求的實時抽象層(real-timeabstractionlayer)各自可以用于^丸行此后描述的功能和4喿作中的一個或者組合。作為實例,由操作系統(tǒng)對PCIe槽(熱插拔)的電源開/關(guān)的實時請求可以通過固件的實時抽象層服務(wù)(RTAS)部分而被處理,其具有管理和監(jiān)視由RTAS執(zhí)行的功能和操作的固件的管理程序級別。說明性實施例提供在多個PCI-Express(PCIe)適配器或"端點"(例如,其可以是PCI/PCIe設(shè)備234)之間平衡總線帶寬的系統(tǒng)和方法。說明性實施例的機制包括固件、硬件或者軟件機制、以及數(shù)據(jù)結(jié)構(gòu),其自動協(xié)調(diào)操作,以設(shè)置PCIe適配器/端點的操作參數(shù),使得例如總線238和NB/MCH202的前端總線的可用帶寬的使用率最大化,同時最小化不能保證PCIe適配器/端點的性能的可能性,并且最小化伴隨同步PCIe適配器/端點的問題。說明性實施例利用了這樣的事實,即基本上存在調(diào)整PCIe的數(shù)據(jù)速率、使得在PCIe端點之間提供帶寬的平衡的三種方式。平衡帶寬的一個選擇是調(diào)整PCIe端點的通道的數(shù)目,例如,xl、x2、x4、x8、或x16。這些通道如同這樣的數(shù)據(jù)管道,其中,大尺寸的管道將提供比任何給定時間能發(fā)送的更大的數(shù)據(jù)流。在當(dāng)前的技術(shù)中,PCIe端點的每個通道可以在每個方向以250兆字節(jié)/秒發(fā)送。因此,x8端點(即,具有8個通道的端點)可以在每個方向上以2G字節(jié)/秒發(fā)送。第二種可以調(diào)整帶寬以便帶寬平衡的方式是調(diào)整最大有效負載(payload)設(shè)置。PCIe經(jīng)由承載有效負載的數(shù)據(jù)分組發(fā)送數(shù)據(jù)。可以調(diào)節(jié)這些有效負載的最大大小,以便增加或減少數(shù)據(jù)經(jīng)過總線傳輸?shù)乃俾省@?,PCIe數(shù)據(jù)分組的最大有效負載可以根據(jù)期望的帶寬使用率而被設(shè)置為128、256、512、1024、2048或者4096字節(jié)。第三種可以調(diào)整帶寬以便帶寬平衡的方式是調(diào)整最大存儲器讀大小(MMRS)。MMRS是端點可以在給定時刻從主存儲器208請求的最大的數(shù)據(jù)量,并且,可以是例如,64、128、256、1024、2048或者4096字節(jié)。通過修改MMRS,有效地改變PCIe端點可在給定時刻從主存儲器讀取的數(shù)據(jù)量。這些操作參數(shù)、通道數(shù)目、有效負載大小、以及MMRS由本發(fā)明的機制所使用,連同用戶選擇的帶寬平衡級別、端點優(yōu)先級、端點的最小數(shù)據(jù)速率、以及端點的同步要求,以調(diào)整各種PCIe端點的帶寬使用率,使得即使當(dāng)PCIe端點的帶寬使用率超過前端總線238和NB/MCH202的可用帶寬時,也可實現(xiàn)數(shù)據(jù)處理系統(tǒng)的優(yōu)化性能。在一個說明性實施例中,在與固件290相關(guān)聯(lián)的存儲器(未示出)中提供了兩個表數(shù)據(jù)結(jié)構(gòu),并且,其由固件290使用,以基于端點的總的最大和/或最小數(shù)據(jù)速率與前端總線的最大數(shù)據(jù)速率(例如,前端總線238和NB/MCH202的帶寬)的比較,而調(diào)整PCIe適配器/端點(此后筒稱作端點)的操作參數(shù)。第一表數(shù)據(jù)結(jié)構(gòu)包括示出針對最大存儲器讀大小(MMRS)、有效負載、以及通道設(shè)置的組合的數(shù)據(jù)速率的三維表。第一表數(shù)據(jù)結(jié)構(gòu)進一步識別其耗費多長時間(如以納秒為單位)來完成數(shù)據(jù)傳輸,這對于如下討論的同步PCIe端點是重要的。第二表數(shù)據(jù)結(jié)構(gòu)包含數(shù)據(jù)處理系統(tǒng)所支持的PCIe端點類型、以及它們的相關(guān)聯(lián)的最小數(shù)據(jù)速率和優(yōu)先級的列表。第二表數(shù)據(jù)結(jié)構(gòu)進一步指出哪些PCIe端點類型具有同步要求,例如每x時間量需要訪問流視頻數(shù)據(jù)的視頻PCIe端點類型。這些表數(shù)據(jù)結(jié)構(gòu)可由例如超級管理員(即,具有超過典型的管理員的知識的管理員,例如,具有在PCIe或者試驗支持人背景的工程師)提供或者修改。此外,識別并且使用在特定的數(shù)據(jù)處理系統(tǒng)中實現(xiàn)的說明性實施例的機制的期望級別的設(shè)置,以確定如何調(diào)整操作參數(shù)。期望級別設(shè)置可以被存儲于例如可由固件290訪問的數(shù)據(jù)處理系統(tǒng)的非易失性存儲器中。例如,這種期望級別設(shè)置可以經(jīng)由操作系統(tǒng),從BIOS菜單等設(shè)置。可以在不脫離本發(fā)明的精神和范圍的情況下,使用用于存儲和提供對固件290的期望級別設(shè)置的其它4幾制。作為這種期望級別設(shè)置的實例,系統(tǒng)管理員可以從預(yù)定級別集合(例如,高(H),中(M),或者低(L))中選擇特定級別以便使用。H級別設(shè)置可以用于指定固件將設(shè)置所有的端點到它們最大的數(shù)據(jù)速率級別,由此,有效地禁用用于平衡帶寬的說明性實施例的機制。L級別設(shè)置可以用于指定固件應(yīng)當(dāng)調(diào)整端點的數(shù)據(jù)速率級別,使得它們總的數(shù)據(jù)速率匹配前端總線的最大數(shù)據(jù)速率。M級別設(shè)置可以用于指定固件應(yīng)當(dāng)調(diào)整端點的數(shù)據(jù)速率級別,使得它們總的數(shù)據(jù)速率匹配超過前端總線的最大數(shù)據(jù)速率、但是d、于所有的端點的總最大數(shù)據(jù)速率的所選值。例如,數(shù)據(jù)速率可以被設(shè)置為前端總線的最大數(shù)據(jù)速率的兩倍、前端總線的最大數(shù)據(jù)速率的三倍、或者前端總線的最大數(shù)據(jù)速率的任何其它的倍數(shù)或者非整倍值。這些表數(shù)據(jù)結(jié)構(gòu)和用戶選擇的平衡級別(例如,H,M,或者L)用于調(diào)整PCIe端點之間的總線的帶寬的平衡。例如,響應(yīng)于PCIe端點被加入到數(shù)據(jù)處理系統(tǒng)、響應(yīng)于執(zhí)行說明性實施例的帶寬平衡的系統(tǒng)管理員命令、響應(yīng)于數(shù)據(jù)處理系統(tǒng)的檢測的條件(例如,期望的性能級別,如數(shù)據(jù)吞吐量)沒有滿足所需級別、響應(yīng)于特定事件的發(fā)生、響應(yīng)于帶寬平衡操作的時間表等等,一旦數(shù)據(jù)處理系統(tǒng)啟動,就可以執(zhí)行由固件進行的帶寬的平衡。一旦確定執(zhí)行了平衡操作,那么,如針對圖3討論的那樣,說明性實施例的機制操作,以平衡PCIe端點之間的前端總線的帶寬。圖3是說明性實施例的主要操作組件的示例圖。如圖3所示,固件310與第一表數(shù)據(jù)結(jié)構(gòu)存儲裝置320、第二表數(shù)據(jù)結(jié)構(gòu)存儲裝置330、用戶帶寬平衡級別存儲裝置340、以及與PCIe端點360-364的固件相關(guān)聯(lián)的配置數(shù)據(jù)結(jié)構(gòu)存儲裝置350-354結(jié)合操作,以修改操作參數(shù),例如,PCIe端點360-364的有效負載、通道、MMRS,以在PCIe端點360-364之間平衡前端總線370的帶寬。在操作中,固件310確定前端總線370的最大數(shù)據(jù)速率??梢酝ㄟ^讀取存儲最大數(shù)據(jù)速率值、且可以由固件310訪問的數(shù)據(jù)處理系統(tǒng)的寄存器,而確定前端總線370的最大數(shù)據(jù)速率。在其它說明性實施例中,前端總線370的最大數(shù)據(jù)速率可以經(jīng)由系統(tǒng)重要產(chǎn)品數(shù)據(jù)(vitalproductdata,VPD)而被傳遞到系統(tǒng)中。例如,系統(tǒng)VPD識別前端總線370的總線速度。根據(jù)此總線速度,固件310可以確定最大數(shù)據(jù)速率??蛇x地,系統(tǒng)VPD可以識別最大數(shù)據(jù)速率本身??梢栽诓幻撾x本發(fā)明的精神和范圍的條件下,使用為前端總線370提供最大數(shù)據(jù)速率的其它機制。在識別了前端總線370的最大數(shù)據(jù)速率之后,固件310隨后查詢所有當(dāng)前附接的PCIe端點360-364,并從它們的配置數(shù)據(jù)結(jié)構(gòu)存儲裝置350-354確定每個PCIe端點的最大通道數(shù)目、MMRS以及有效負載是什么。通道數(shù)目、或者通道大小可以在PCIe槽加電時被確定,并且,例如,經(jīng)由硬件機制而協(xié)商總線帶寬。通過讀取在系統(tǒng)中提供的標(biāo)準(zhǔn)熱插控制器(SHPC)寄存器,固件310可以識別當(dāng)前的通道數(shù)目、或者通道大小。固件310可以通過修改SHPC寄存器、以設(shè)置可以將PCIe槽配置到的最大通道大小,而修改通道數(shù)目或者通道大小,并且,然后,固件310可以經(jīng)由SHPC寄存器而強制槽重新配置,以強制重新協(xié)商,但是,此時具有通道數(shù)目或通道大小的限制。MMRS和有效負載設(shè)置是由固件310初始化的行業(yè)標(biāo)準(zhǔn)PCI寄存器。隨后,固件310使用第一表數(shù)據(jù)結(jié)構(gòu),其將數(shù)據(jù)速率映射到存儲于第一表數(shù)據(jù)結(jié)構(gòu)存儲裝置320中的諸如有效負載、通道數(shù)目以及MMRS的操作參數(shù)的組合,以確定每個PCIe端點360-364的最大數(shù)據(jù)速率。每個PCIe端點360-364的最大數(shù)據(jù)速率基于來自PCIe端點360-364的配置數(shù)據(jù)結(jié)構(gòu)存儲裝置350-354的最大通道、MMRS以及有效負載值而確定。然后,可以對每個PCIe端點360-364的最大數(shù)據(jù)速率進行總計或求和,以產(chǎn)生所有的PCIe端點360-364的總的最大數(shù)據(jù)速率。確定所有的PCIe端點360-364的總的最大數(shù)據(jù)速率之后,閨件310比較所有的PCIe端點360-364的總的最大數(shù)據(jù)速率與由固件310確定的前端總線370的最大數(shù)據(jù)速率。如果所有的PCIe端點360-364的總的最大數(shù)據(jù)速率小于或者等于前端總線的最大數(shù)據(jù)速率,則將所有的PCIe端點操作參lt設(shè)置為對應(yīng)于最大數(shù)據(jù)速率的它們的值。也就是說,使用在第一表數(shù)據(jù)結(jié)構(gòu)中的對應(yīng)于PCIe端點的最大數(shù)據(jù)速率的有效負載、通道數(shù)目以及MMRS的設(shè)置,以在它們各自的配置數(shù)據(jù)存儲設(shè)備350-354中設(shè)置PCIe端點360-364的操作參數(shù)。應(yīng)當(dāng)注意,通過該才喿作,每個PCIe端點360-364可以基于它們各自的最大數(shù)據(jù)速率而具有操作參數(shù)的不同的設(shè)置。如果所有PCIe端點360-364的最大數(shù)據(jù)速率超作前端總線的最大數(shù)據(jù)速率,則檢索用戶選擇的級別,即,存儲在用戶帶寬平衡級別存儲裝置340中的用戶選擇的帶寬平衡級別,并使用其來確定如何在PCIe端點360-364之間平衡前端總線370的帶寬。如果例如系統(tǒng)管理員的用戶已選擇了高(H)操作級別,則設(shè)置所有的PCIe端點360-364,以使用它們的最大數(shù)據(jù)速率。如果用戶尚未選擇H操作級別,則參考在第二表數(shù)據(jù)結(jié)構(gòu)存儲裝置330中的第二表數(shù)據(jù)結(jié)構(gòu),以確定每個PCIe端點360-364的最小數(shù)據(jù)速率是什么。如果在第二表數(shù)據(jù)結(jié)構(gòu)中不存在特定的PCIe端點360-364,則可以從PCIe端點360-364的行業(yè)標(biāo)準(zhǔn)寄存器中獲得的、與PCIe端點360-364相關(guān)聯(lián)的類碼(classcode)可被用來將其與在第二表數(shù)據(jù)結(jié)構(gòu)中表示的類似的PCIe端點匹配。如果不能基于該類碼發(fā)現(xiàn)類似的PCIe端點,則可以,支定最小數(shù)據(jù)速率為PCIe端點360-364的最大數(shù)據(jù)速率,但是,由于PCIe端點360-364是不被數(shù)據(jù)處理系統(tǒng)所支持的PCIe端點,所以,PCIe端點360-364的優(yōu)先級可減小為低優(yōu)先級。所有的PCIe端點360-364的最小數(shù)據(jù)速率可以被求和,并且,可被用來與基于前端總線370的最大數(shù)據(jù)速率、以及帶寬平衡機制的操作級別的用戶選擇(例如,L或M)而確定的前端總線370的數(shù)據(jù)速率相比較。例如,可以由固件310作出所有的PCIe端點360-364的總的最小數(shù)據(jù)速率是否等于或小于前端總線370的最大數(shù)據(jù)速率(對于設(shè)置L)、或者等于或小于前端總線370的最大數(shù)據(jù)速率(對于設(shè)置M)的兩倍的確定。如果所有的PCIe端點360-364的總的最小數(shù)據(jù)速率等于或小于前端總線370數(shù)據(jù)速率的對應(yīng)級別,則可以接受所述數(shù)據(jù)速率,并且,基于最小數(shù)據(jù)速率,使用第一表數(shù)據(jù)結(jié)構(gòu),以識別要由PCIe端點360-364使用的有效負載、MMRS以及通道的設(shè)置。然后,固件310可以使用這些操作參數(shù)來確定如何在每個PCIe端點360-364的配置數(shù)據(jù)結(jié)構(gòu)存儲裝置350-354中修改配置設(shè)置。由于改變通道需要端點的重置和重新訓(xùn)練,所以,對PCIe端點360-364的配置的修改主要使用MMRS或有效負載參數(shù)來執(zhí)行。如果所有的PCIe端點360-364的總的最小lt據(jù)速率不是小于或等于前端總線370的設(shè)置級別數(shù)據(jù)速率,則存在可以用于實現(xiàn)PCIe端點360-364的可接受的性能的多個選項。作為第一選項,可以基于PCIe端點360-364的最小數(shù)據(jù)速率,而不考慮所有的PCIe端點360-364的總的最小數(shù)據(jù)速率是否小于前端總線370的設(shè)置級別的數(shù)據(jù)速率,而由固件310使用從第一表數(shù)據(jù)結(jié)構(gòu)確定的操作參數(shù)而設(shè)置PCIe端點360-364的配置。可以發(fā)送錯誤消息給管理員以指示該問題,使得管理員可以采取步驟以確保實現(xiàn)數(shù)據(jù)處理系統(tǒng)的期望性能。作為第二選項,可以生成優(yōu)先級列表,其以優(yōu)先級排名順序列出PCIe端點360-364,同時把未知的或者不支持的端點列在列表中的最低級別。然后,固件310可以操作,以減低(cutbackon)每個PCIe端點360-364的資源(例如,帶寬),其中,百分比的下降是基于PCIe端點360-364在優(yōu)先級列表中的位置??梢詧?zhí)行減低操作,直到達到期望的目標(biāo)為止,例如,PCIe端點360-364的總的數(shù)據(jù)速率等于或者小于前端總線370的設(shè)置級別的數(shù)據(jù)速率。在一些說明性實施例中,PCIe端點的資源可以被減低的量受限于與其最小數(shù)據(jù)速率相關(guān)的特定量,例如,PCIe端點的最小數(shù)據(jù)速率的一半。在一些說明性實施例中,PCIe端點360-364的資源可以以伴隨前端總線370的i殳皇級別數(shù)據(jù)速率的增加的上述方式而減低,例如,前端總線370的設(shè)置級別的數(shù)據(jù)速率的兩倍(對于設(shè)置L)、或者前端總線370的設(shè)置級別的數(shù)據(jù)速率的四倍(對于設(shè)置M)。這允許在PCIe端點360-364被限制于它們的最小凌t據(jù)速率之下但是還沒有到L或M前端總線370限制之間的折中。在任何這些說明性實施例中,可以發(fā)送錯誤消息給管理員以指示問題,使得管理員可以采取步驟以確保實現(xiàn)數(shù)據(jù)處理系統(tǒng)的期望性能。對于同步PCIe端點360-364,PCIe端點360-364可能或者可能不想要高數(shù)據(jù)速率,但是,不管如何,想要達到特定的數(shù)據(jù)速率要求的可預(yù)測的時間。例如,同步PCIe端點360-364可以要求PCIe端點360-364在特定的時間幀內(nèi)完成直接存儲器訪問(DMA)寫或讀操作。一種允許PCIe端點360-364更早地獲得對前端總線370的訪問的方法是通過允許PCIe端點360-364具有高于其它非同步PCIe端點360-364的優(yōu)先級。另一個方法是防止其它非同步PCIe端點360-364使用前端總線370進行較長的數(shù)據(jù)傳輸。數(shù)據(jù)傳輸?shù)拈L度取決于有效負載的大小。傳輸有效負載的時間是可預(yù)測的時間。因此,對于說明性實施例的機制,一旦固件310以先前描述的方式建立了數(shù)據(jù)速率,那么,固件310可以針對同步問題做出調(diào)整。如上所討論的,第二表數(shù)據(jù)結(jié)構(gòu)包括識別哪些PCIe端點類型(如果有的話)是同步的信息。說明性實施例的固件310可以檢查第二表數(shù)據(jù)結(jié)構(gòu),以確定當(dāng)前安裝的PCIe端點360-364中的哪些(例如,如果有的話,PCIe端點360)具有同步問題。假設(shè)發(fā)現(xiàn)了具有同步問題的PCIe端點360,則固件3104全查第二表數(shù)據(jù)結(jié)構(gòu),以確定PCIe端點360的最小時間要求是什么、以及PCIe端點360的優(yōu)先級是什么。如果PCIe端點360具有所有的當(dāng)前安裝的PCIe端點360-364的最高的優(yōu)先級,并且,如果系統(tǒng)支持PCIe端點360-364的優(yōu)先級"i殳置,則設(shè)置總線仲裁器390,使得此PCIe端點360—直得到優(yōu)先級?;诘谝槐頂?shù)據(jù)結(jié)構(gòu)中的信息,而得知要在前端總線370之間處理的每個有效負載大小花費多長時間?;趶牡谝槐頂?shù)據(jù)結(jié)構(gòu)獲得的值,可以計算處理有效負載的時間??蛇x擇地,可以通過執(zhí)行基于從第一表數(shù)據(jù)結(jié)構(gòu)檢索的信息的經(jīng)驗性地獲得的處理時間值的查找操作,而確定處理有效負載的時間。在確定了每個有效負載大小要在前端370之間處理所花費的時間之后,有可能確定允許其它PCIe端點360-364針對該PCIe端點360及時完成、以滿足同步要求的理想有效負載大小是什么。例如,假設(shè)第一PCIe端點或者適配器(例如,適配器A)必須等待PCIe端點和適配器B、C和D,以在其可以訪問前端總線370之前發(fā)送它們的分組。由此,適配器A不得不等待處理頭、有效負載、循環(huán)冗余校驗(CRC)值所需的時間段、以及執(zhí)行前端總線370的仲裁所需的時間段。作為一個實例,頭可以是12-16字節(jié),CRC值可為4字節(jié),并且,仲裁可以是2個時鐘周期。不計仲裁時間周期,適配器A將不得不等待在有效負載=4096的情況下發(fā)送12336字節(jié)、或者在有效負載=128的情況下發(fā)送432字節(jié)的時間。發(fā)送這么多有效負載數(shù)據(jù)花費的時間取決于通道數(shù)目、或者通道大小。因此,理想有效負載大小是確定性的,并且可以被計算。在計算中包括仲裁增加了設(shè)置的附加的可能組合,以確保滿足同步要求,即,適配器A是否獲得高于其它適配器的優(yōu)先級、是否循環(huán)(round-robin)執(zhí)行仲裁,等等。在確定了理想的有效負載大小以后,固件310隨后可以確定任何其它的PCIe端點362-364是否將它們的有效負載大小設(shè)置為比理想的有效負載大小更高的值。如果是這樣,則參考第一表數(shù)據(jù)結(jié)構(gòu),以查看是否可以修改這些PCIe端點362-364的通道的數(shù)目、修改MMRS設(shè)置、以及/或者有效負載設(shè)置可以被》務(wù)改為在該4交低的有效負載的情況下依舊滿足這些PCIe端點362-364的最小數(shù)據(jù)速率的值。如果是這樣,于是則調(diào)整PCIe端點362-364的設(shè)置。如果正在使用過大的有效負載的PCIe端點的優(yōu)先級比具有同步問題的PCIe端點360低,則將較低優(yōu)先級的PCIe端點362-364降級第一增量。如果正在使用過大的有效負載的PCIe端點362-364是優(yōu)先級比具有同步問題的PCIe端點360高的PCIe端點,則由于它具有比同步PCIe端點360高的優(yōu)先級,所以,不修改它的優(yōu)先級設(shè)置。理想地,同步PCIe端點360將比非同步PCIe端點362-364具有更高的優(yōu)先級,并且因此,該情形比較少見。圖4A-4E是根據(jù)一個說明性實施例的、識別在PCIe端點之間平衡帶寬的操作參數(shù)的可能的組合的第一三維表數(shù)據(jù)結(jié)構(gòu)的示例圖。由于可視化三維表數(shù)據(jù)結(jié)構(gòu)是困難的,所以,作為一系列的二維表而提供圖4A-4E,所述二維表可以被組合在一起而為PCIe端點的讀操作產(chǎn)生三維表數(shù)據(jù)結(jié)構(gòu)。圖4A表示:如何以三維方式組合圖4B-4E,以產(chǎn)生三維表數(shù)據(jù)結(jié)構(gòu)。在圖4B-4E中示出的每個二維表數(shù)據(jù)結(jié)構(gòu)是PCIe端點所支持的不同的通道數(shù)目、或通道大小,例如,xl,x2,x4,或x8。提供圖4F作為可以用于PCIe端點的寫操作的二維表數(shù)據(jù)結(jié)構(gòu)的例子。因為對寫操作而言,由于MMRS引用不能被改變以實現(xiàn)不同的寫操作數(shù)據(jù)速率的最大存儲器讀大小,僅存在兩個可以變更的參數(shù)(即,有效負載大小和通道數(shù)目)以實現(xiàn)不同的數(shù)據(jù)速率,所以,示出了用于寫操作的單個二維表數(shù)據(jù)結(jié)構(gòu)。應(yīng)當(dāng)理解,可以組合這些表數(shù)據(jù)結(jié)構(gòu)的設(shè)置值,以提供代表實現(xiàn)期望數(shù)據(jù)速率的各種設(shè)置的一個或多個曲線的三維圖。在圖4A-4F中的表圖描繪了可以使用多種選項實現(xiàn)具體的數(shù)據(jù)速率目標(biāo)。例如,如果需要1760兆字節(jié)/秒的數(shù)據(jù)速率,則可以使用設(shè)置的各種組合,作為獲得該數(shù)據(jù)速率的基礎(chǔ)。例如,可以使用包括8通道(圖4E中的x8)、256字節(jié)的有效負載大小、以及4096字節(jié)MMRS的設(shè)置的組合。類似地,可以使用8通道、512字節(jié)的有效負載大小、以及512字節(jié)MMRS的組合。為了在PCIe端點上擴展帶寬,可能傾向于512字節(jié)的MMRS和512字節(jié)的有效負載大小。然而,由于同步的原因,較小的有效負載大小可能比較好,并且因此,如果對于特定的配置存在同步問題,則可以使用4096字節(jié)的MMRS以及256字節(jié)的較小的有效負載大小。圖5是用于識別所支持的PCIe端點、以及PCIe端點是否具有同步要求的第二表數(shù)據(jù)結(jié)構(gòu)的示例圖。應(yīng)當(dāng)理解,圖5只是示例,并且,可以多個不同的方式執(zhí)行所支持的PCIe端點、以及同步要求的識別。因此,可以在不脫離本發(fā)明的精神和范圍的條件下,做出對在圖5中示出的圖的很多修改。圖5中的第二表數(shù)據(jù)結(jié)構(gòu)尤其示出了PCIe端點的優(yōu)先級級別510、PCI端點的類520、以及子類530、PCIe端點的理想數(shù)據(jù)速率540、PCIe端點550的最小數(shù)據(jù)速率、以及PCIe端點是否具有同步要求560。示例性的第二表數(shù)據(jù)結(jié)構(gòu)500的列2-4中的信息用于提供提供商/設(shè)備標(biāo)識、以及子系統(tǒng)提供商/設(shè)備標(biāo)識。每個PCIe端點具有唯一的提供商/設(shè)備標(biāo)識。一些PCIe端點具有子系統(tǒng)提供商/設(shè)備標(biāo)識。當(dāng)固件行經(jīng)數(shù)據(jù)處理系統(tǒng)的PCIe總線時,固件讀取這些標(biāo)識,以確定已發(fā)現(xiàn)了哪一個PCIe端點。優(yōu)先級級別510識別對應(yīng)的PCIe端點的優(yōu)先級。如果多個PCIe端點具有相同的優(yōu)先級,則它們在優(yōu)先級級別列510中具有相同的優(yōu)先級值。例如,如圖5所示,以太網(wǎng)端點具有相同的優(yōu)先級,以及SCSI和IDE端點具有相同的優(yōu)先級。類520和子類530允許固件確定PCIe端點的類型。固件使用類520和子類530,來確定不在第二表數(shù)據(jù)結(jié)構(gòu)中的端點的優(yōu)先級和同步要求。例如,如果固件不能發(fā)現(xiàn)不在表數(shù)據(jù)結(jié)構(gòu)500中的具體的以太網(wǎng)端點(經(jīng)由類碼),則固件可以使用在表數(shù)據(jù)結(jié)構(gòu)500中的另一個以太網(wǎng)端點的設(shè)置。此外,如果在表數(shù)據(jù)結(jié)構(gòu)500中沒有發(fā)現(xiàn)具體的端點,但是在表數(shù)據(jù)結(jié)構(gòu)500中存在來自同一提供商的端點,則固件可以選擇使用為來自同一提供商指定的端點的同一設(shè)置。例如,假設(shè)表數(shù)據(jù)結(jié)構(gòu)500包括Emulex光纖信道適配卡的值。進一步假設(shè)固件發(fā)現(xiàn)具有不同設(shè)備標(biāo)識的來自Emulex的另一個適配器。不同的標(biāo)識可以不同,例如,這是由于,其它的適配器是在表數(shù)據(jù)結(jié)構(gòu)500中的適配器的較老的或者較新的版本。在這種情況中,固件可以選擇使用用于其它的Emulex適配器的表數(shù)據(jù)結(jié)構(gòu)500的值。固件可以進一步執(zhí)行第二次檢查,以查看類/子類520/530是否類似,并且,如果類似,則使用表500中的有關(guān)其它Emulex適配器的值。在這種方式中,對使用表數(shù)據(jù)結(jié)構(gòu)500提供了大量的靈活性,使得在遇到每個新的標(biāo)識時,不必嚴(yán)格地要求更新表數(shù)據(jù)結(jié)構(gòu)500。圖6A-6B以及7是概述根據(jù)一個說明性實施例的、在PCIe端點之間平衡帶寬的示例性操作的流程圖。將理解,流程示的每個框、以及流程圖圖示中的框的組合可以通過計算機程序指令實現(xiàn)??梢蕴峁┻@些計算機程序指令給處理器或者其它的程序數(shù)據(jù)處理裝置以產(chǎn)生機器,使得在處理器或者其它程序數(shù)據(jù)處理裝置上執(zhí)行的指令創(chuàng)建用于實現(xiàn)在流程圖框中指定的功能的裝置。這些計算機程序指令還可以被存儲在可以引導(dǎo)處理器或者其它可編程數(shù)據(jù)處理裝置以特定方式工作的計算機可讀存儲器或存儲介質(zhì)中,使得存儲于計算機可讀存儲器或存儲介質(zhì)的指令產(chǎn)生包括實現(xiàn)在流程圖框中指定的功能的指令裝置的制品。因此,流程示的框支持用于執(zhí)行指定的功能的裝置的組合、用于執(zhí)行指定功能的步驟的組合、以及用于執(zhí)行指定功能的程序指令裝置。將理解,流程示的每個框以及流程示出的框的組合可以通過執(zhí)行指定指令或步驟的特定目的的基于硬件的計算機系統(tǒng)、或者由特定目的的硬件以及計算機指令的組合實現(xiàn)。此外,提供了用來展示在說明性實施例內(nèi)執(zhí)行的操作的流程圖。流程圖不是為了闡述或者暗示對特定操作的限制,或者,更具體地,操作的順序。在不脫離本發(fā)明的精神和范圍的條件下,可以修改流程圖的操作以適合特定的實現(xiàn)。圖6A-6B是概述根據(jù)一個說明性實施例的、為了平衡帶寬而確定PCIe端點的操作參數(shù)的設(shè)置的示例性操作的流程圖。如圖6A-6B所示,操作以固件為前端總線確定最大數(shù)據(jù)速率開始(步驟610)。固件向當(dāng)前安裝的PCIe端點查詢它們的最大通道數(shù)目、最大MMRS、以及最大有效負載配置參數(shù)(步驟615)。固件基于每個PCIe端點的通道的最大數(shù)目、MMRS以及有效負載,在第一表數(shù)據(jù)結(jié)構(gòu)中執(zhí)行查找操作,以識別PCIe端點的最大數(shù)據(jù)速率(步驟620)。固件對每個PCIe端點的最大數(shù)據(jù)速率求和(步驟625),并且比較PCIe端點的總的最大數(shù)據(jù)速率與前端總線的最大數(shù)據(jù)速率(步驟630)。固件確定PCIe端點的總的最大數(shù)據(jù)速率是否大于前端總線的最大數(shù)據(jù)速率(步驟635)。如果不是這樣,則固件將PCIe端點的操作參數(shù)的值設(shè)置為與它們各自的最大數(shù)據(jù)速率相對應(yīng)的值(步驟640),并且操作終止。如果PCIe端點的總的最大數(shù)據(jù)速率大于前端總線的最大數(shù)據(jù)速率,則固件檢索用戶選擇的帶寬平衡級別(步驟645)。固件確定用戶選擇的帶寬平衡級別是否是最高級別(步驟650)。如果是,則操作轉(zhuǎn)向基于PCIe端點的最大數(shù)據(jù)速率設(shè)置PCIe端點的操作參數(shù)的步驟640。如果帶寬平衡級別不是最高級別,則固件基于用戶選擇的帶寬平衡級別,計算調(diào)整了級別的前端總線的最大數(shù)據(jù)速率,并且,基于存儲各種PCIe端點類型的最小數(shù)據(jù)速率、各種PCIe端點類型的優(yōu)先級、以及有關(guān)哪些PCIe端點類型具有同步要求的信息的第二數(shù)據(jù)結(jié)構(gòu),確定所述端點的最大數(shù)據(jù)速率(步驟655)。固件比較PCIe端點的總的最小數(shù)據(jù)速率與前端總線的調(diào)整了級別的最大數(shù)據(jù)速率(步驟660)。固件確定PCIe端點的總的最小數(shù)據(jù)速率是否小于或等于前端總線的調(diào)整了級別的最大數(shù)據(jù)速率(步驟665)。如果是這樣,則固件使用將諸如MMRS、通道數(shù)以及有效負載大小的操作參數(shù)與特定數(shù)據(jù)速率相關(guān)的第一表數(shù)據(jù)結(jié)構(gòu),來將PCIe端點的操作參數(shù)設(shè)置為與它們各自的最小數(shù)據(jù)速率相對應(yīng)的值(步驟670)。然后,梯:作終止。如果PCIe端點的總的最小數(shù)據(jù)速率并不小于或等于前端總線的調(diào)整了級別的最大數(shù)振速率,則可以如上所述那樣執(zhí)行多個不同的操作。為了在圖6A-6B中示出的示例的目的,基于第二數(shù)據(jù)結(jié)構(gòu)中的優(yōu)先級信息,執(zhí)行的操作涉及固件產(chǎn)生PCIe端點的優(yōu)先級列表(步驟680)。然后,固件基于優(yōu)先級列表減低可用于的PCIe端點的前端總線的帶寬(步驟685)??蛇x擇地,調(diào)整了級別的前端總線的最大數(shù)據(jù)速率也可以增加。這種減低和可選的前端總線的調(diào)整了級別的最大凄t據(jù)速率的增加可以繼續(xù),直到達到期望的性能目標(biāo)為止,例如,可用于PCIe端點的總的可用的帶寬等于或者小于前端總線的調(diào)整了級別的最大數(shù)據(jù)速率(步驟690)。一旦達到性能目標(biāo),固件便基于所確定的PCIe端點的數(shù)據(jù)速率和在第一表數(shù)據(jù)結(jié)構(gòu)中指定的對應(yīng)的參數(shù)值,而設(shè)置操作參數(shù)(步驟695)。由于改變通道數(shù)需要系統(tǒng)重啟,所以,主要基于各種選項的最大MMRS、以及隨后的最大有效負載大小、且最后是通道數(shù),來選擇數(shù)據(jù)值的具體組合。由于PCIe端點的總的最小數(shù)據(jù)速率并不小于或等于前端總線的調(diào)整了級別的最大數(shù)據(jù)速率,所以,固件可以發(fā)送錯誤消息給管理員工作站等等,以將PCIe端點操作參數(shù)的設(shè)置的潛在的問題通知給管理員(步驟698)。然后,操作終止。圖7是概述根據(jù)一個說明性實施例的、為了平衡帶寬而調(diào)整具有同步要求的PCIe端點的操作參數(shù)的示例性操作的流程圖。如圖7所示,操作開始于固件執(zhí)行在第二表數(shù)據(jù)結(jié)構(gòu)中的查找操作、以確定數(shù)據(jù)處理系統(tǒng)的任何當(dāng)前安裝的PCIe端點具有同步要求(步驟710)。固件確定是否發(fā)現(xiàn)同步PCIe端點(步驟720)。如果不是這樣,則操作終止。如果發(fā)現(xiàn)了同步PCIe端點,則固件選擇同步PCIe端點中的下一個,并且,基于第二表數(shù)據(jù)結(jié)構(gòu)中的信息確定最小數(shù)據(jù)速率和同步端點的優(yōu)先級(步驟740)。固件確定同步PCIe端點的優(yōu)先級是否大于數(shù)據(jù)處理系統(tǒng)中的其它PCIe端點的優(yōu)先級(步驟750)。如果是這樣,則固件設(shè)置總線仲裁器,以給予同步端點最高優(yōu)先級(步驟760)。固件隨后基于存儲在第一表數(shù)據(jù)結(jié)構(gòu)中的信息而修改其它PCIe端點的操作參數(shù),以便實現(xiàn)同步PCIe端點的同步要求(步驟770)。此后,或者如果同步PCIe端點的優(yōu)先級不大于其它PCIe端點(步驟750),則固件確定這是否是在數(shù)據(jù)處理系統(tǒng)中發(fā)現(xiàn)的最后的同步PCIe端點(步驟780)。如果不是,則4喿作返回到步驟730。如果這是在數(shù)據(jù)處理系統(tǒng)中發(fā)現(xiàn)的最后的同步PCIe端點,則才喿作終止。因此,說明性實施例提供了基于PCIe端點的最大和/或最小數(shù)據(jù)速率、以及前端總線的最大數(shù)據(jù)速率,自動調(diào)整PCIe端點的操作參數(shù)的機制。說明性實施例允許前端總線被完全地利用,并且在數(shù)據(jù)處理系統(tǒng)的多個PCIe端點上平衡其帶寬,同時最小化同步要求問題、以及由于超過了前端總線的帶寬而不能保證PCIe端點的性能的情形。應(yīng)當(dāng)注意,當(dāng)根據(jù)作為實現(xiàn)本發(fā)明的功能的主要操作元件的固件描述說明性實施例時,本發(fā)明并不限于此。相反,如上所述,在不脫離本發(fā)明的精神和范圍的條件下,說明性實施例的機制可以硬件、軟件或者硬件與軟件的任意組合的方式實現(xiàn)。此外,當(dāng)PCIe端點的操作參數(shù)的具體的實例(例如,MMRS、通道數(shù)目、有效負載大小)用于說明性實施例的描述時,本發(fā)明并不僅限于這些具體操作參數(shù)的使用。也可以使用表數(shù)據(jù)結(jié)構(gòu)中的其它的操作參數(shù)等等,以實現(xiàn)本發(fā)明的說明性實施例的目的。此外,在不脫離本發(fā)明的精神和范圍的條件下,說明性實施例不需要表數(shù)據(jù)結(jié)構(gòu),并且,以上描述的對應(yīng)于表數(shù)據(jù)結(jié)構(gòu)的信息可以除了表之外的各種其它形式提供。此外,當(dāng)通過對PCIe端點或者適配器的具體應(yīng)用來描述說明性實施例時,說明性實施例并不限于此。相反,說明性實施例的機制可以被應(yīng)用于平衡任何類型的總線或者在端點或者數(shù)據(jù)的源/接收器之間的數(shù)據(jù)流量機制的帶寬。在不脫離本發(fā)明的精神和范圍的條件下,例如,使用除了PCIe之外的其它協(xié)議的端點或者適配器可以是說明性實施例的機制的主題。應(yīng)當(dāng)理解,說明性實施例可以采用完全的硬件實施例、完全的軟件實施例或者包含硬件與軟件元素兩者的實施例的形式。在一個示例性的實施例中,說明性實施例的機制以軟件方式實現(xiàn),其包括但不限制于固件、駐留軟件、微碼等等。此外,說明性實施例可以采用可以從提供由計算機或者任何指令執(zhí)行系統(tǒng)使用、或者與計算機或者任何指令執(zhí)行系統(tǒng)結(jié)合的程序代碼的計算機可用或計算機可讀介質(zhì)訪問的計算機程序產(chǎn)品的形式。為了這種描述的目的,計算機可用或者計算機可讀介質(zhì)可以是任何包含、存儲、通信、傳播或者傳輸由計算機或者任何指令執(zhí)行系統(tǒng)使用、或者與計算機或者任何指令執(zhí)行系統(tǒng)結(jié)合的程序的設(shè)備。所述介質(zhì)可以是電子的、磁的、光的、電^茲的、紅外的或者半導(dǎo)體系統(tǒng)(或者設(shè)備或裝置)或者傳播介質(zhì)。計算機可讀介質(zhì)的實例包括半導(dǎo)體或者固態(tài)存儲器、磁帶、可拆卸計算機盤、隨機存取存儲器(RAM)、只讀存儲器(ROM)、固體盤和光盤。光盤的現(xiàn)有實例包括致密盤-只讀存儲器(ROM)、致密盤-讀/寫(CD-R/W)以及DVD。適合于存儲和/或執(zhí)行程序代碼的數(shù)據(jù)處理系統(tǒng)將包括至少一個直接或者間接的通過系統(tǒng)總線耦接到存儲器元件處理器。存儲器元件可以包括在程序代碼實際執(zhí)行期間使用的本地存儲器、大容量(bulk)存儲器、以及為了減少在執(zhí)行期間必須從構(gòu)造存儲器獲取代碼的次數(shù)而提供的至少一些程序代碼的臨時存儲的高速ll存存儲器。輸入/輸出或1/0設(shè)備(包括但不限于鍵盤、顯示器、定點裝置等等)可以完全直接的或者通過介于其間的1/0控制器耦接到系統(tǒng)。網(wǎng)絡(luò)適配器可以耦接到系:統(tǒng),使得數(shù)據(jù)處理系統(tǒng)能夠通過介于其間的私有.或者公共網(wǎng)絡(luò)耦接到其它數(shù)據(jù)處理系統(tǒng)或者遠端打印機或存儲裝置。調(diào)制解調(diào)器、電纜調(diào)制解調(diào)器、以及以太網(wǎng)卡正是一些當(dāng)前可用的網(wǎng)絡(luò)適配器的類型。為了說明和描述的目的,本發(fā)明的描述已經(jīng)展示出來,但并不是窮盡或限制本發(fā)明于披露的形式中。對于本領(lǐng)域的普通技術(shù)人員而言,多種修改和改變將是顯而易見的。為了最好的解釋本發(fā)明的原理、實際的應(yīng)用,并且為了本領(lǐng)域的其它技術(shù)人員能夠理解具有各種修改的適合于預(yù)期的具體應(yīng)用的各種修改的各種實施例的本發(fā)明,而選擇并描述了本實施例。權(quán)利要求1、一種在數(shù)據(jù)處理系統(tǒng)中用于在耦接到數(shù)據(jù)處理系統(tǒng)的多個端點之間平衡數(shù)據(jù)處理系統(tǒng)的前端總線的帶寬的方法,包括確定前端總線的最大數(shù)據(jù)速率;確定多個端點的總的最大數(shù)據(jù)速率;比較多個端點的總的最大數(shù)據(jù)速率與前端總線的最大數(shù)據(jù)速率;響應(yīng)于多個端點的總的最大數(shù)據(jù)速率大于前端總線的最大數(shù)據(jù)速率,檢索多個端點的最小數(shù)據(jù)速率;以及基于多個端點的最小數(shù)據(jù)速率,設(shè)置多個端點的操作參數(shù)。2、如權(quán)利要求1所述的方法,其中,確定前端總線的最大數(shù)據(jù)速率的步驟包括以下步驟中的至少一個從存儲最大數(shù)據(jù)速率值的數(shù)據(jù)處理系統(tǒng)的寄存器檢索最大數(shù)據(jù)速率值;或者接收對應(yīng)于前端總線的最大數(shù)據(jù)速率的值作為至關(guān)重要的產(chǎn)品數(shù)據(jù)的部分。3、如權(quán)利要求1所述的方法,其中,確定多個端點的總的最大數(shù)據(jù)速率的步驟包括向多個端點中的每個端點查詢它們當(dāng)前的操作參數(shù)設(shè)置;基于它們當(dāng)前的操作參數(shù)設(shè)置,為多個端點的每個端點確定最大數(shù)據(jù)速率;以及作為多個端點的每個端點的最大數(shù)據(jù)速率的總和,計算總的最大數(shù)據(jù)速率。4、如權(quán)利要求3所述的方法,其中,查詢多個端點的每個端點的步驟包括從行業(yè)標(biāo)準(zhǔn)寄存器獲得端點的操作參數(shù)設(shè)置,其中,行業(yè)標(biāo)準(zhǔn)寄存器的值是響應(yīng)于與正在加電的端點相對應(yīng)的槽而被填充的。5、如權(quán)利要求3所述的方法,其中,基于它們當(dāng)前的操作參數(shù)設(shè)置為多個端點的每個端點確定最大數(shù)據(jù)速率的步驟包括使用識別在一個或多個操作參數(shù)與最大數(shù)據(jù)速率的設(shè)置之間的相關(guān)性的第一數(shù)據(jù)結(jié)構(gòu),對多個端點中的每個端點執(zhí)行查找操作。6、如權(quán)利要求5所述的方法,其中,第一數(shù)據(jù)結(jié)構(gòu)是三維數(shù)據(jù)結(jié)構(gòu),該三維數(shù)據(jù)結(jié)構(gòu)將多個通道操作參數(shù)、有效負載大小操作參數(shù)、以及最大存儲器讀取大小操作參數(shù)與最大數(shù)據(jù)速率相關(guān)。7、如權(quán)利要求1所述的方法,其中,如果多個端點的總的最大數(shù)據(jù)速率小于或者等于前端總線的最大數(shù)據(jù)速率,則將多個端點的每個端點的操作參數(shù)設(shè)置為對應(yīng)于每個端點的最大數(shù)據(jù)速率的值。8、如權(quán)利要求1所述的方法,其中,檢索多個端點的最小數(shù)據(jù)速率的步驟包括使用識別在端點類型、端點優(yōu)先級、最小數(shù)據(jù)速率、以及端點是否具有同步要求之間的相關(guān)性的第二數(shù)據(jù)結(jié)構(gòu),對多個端點中的每個端點執(zhí)行查找操作。9、如權(quán)利要求1所述的方法,其中,基于多個端點的最小數(shù)據(jù)速率設(shè)置多個端點的操作參數(shù)的步驟包括檢索用戶帶寬平衡級別值;基于前端總線的最大數(shù)據(jù)速率和用戶帶寬平衡級別值,為前端總線確定調(diào)整的數(shù)據(jù)速率;比較多個端點的總的最小數(shù)據(jù)速率與前端總線的調(diào)整的數(shù)據(jù)速率;以及基于多個端點的總的最小數(shù)據(jù)速率與前端總線的調(diào)整的數(shù)據(jù)速率的比較結(jié)果,而設(shè)置多個端點的操作參數(shù)。10、如權(quán)利要求9所述的方法,其中,如果多個端點的總的最小數(shù)據(jù)速率小于或者等于前端總線的調(diào)整的數(shù)據(jù)速率,則基于多個端點的總的最小數(shù)據(jù)速率與前端總線的調(diào)整的數(shù)據(jù)速率的比較結(jié)果設(shè)置多個端點的操作參數(shù)的步驟包括基于對應(yīng)于端點的最小數(shù)據(jù)速率,通過在第一數(shù)據(jù)結(jié)構(gòu)中執(zhí)行查找操作而為每個端點設(shè)置操作參數(shù),其中該第一數(shù)據(jù)結(jié)構(gòu)識別在一個或多個操作參數(shù)和數(shù)據(jù)速率的設(shè)置之間的相關(guān)性。11、如權(quán)利要求9所述的方法,其中,如果多個端點的總的最小數(shù)據(jù)速率大于前端總線的調(diào)整的數(shù)據(jù)速率,則基于多個端點的總的最小數(shù)據(jù)速率與前端總線的調(diào)整的數(shù)據(jù)速率的比較結(jié)果而設(shè)置多個端點的操作參數(shù)的步驟包括使用對應(yīng)的最小數(shù)據(jù)速率,基于在第一數(shù)據(jù)結(jié)構(gòu)中的查找操作,為每個端點設(shè)置操作參數(shù);以及發(fā)送錯誤消息給管理員數(shù)據(jù)處理裝置,以指示在配置數(shù)據(jù)處理系統(tǒng)中的問題。12、如權(quán)利要求9所述的方法,其中,如果多個端點的總的最小數(shù)據(jù)速率大于前端總線的調(diào)整的數(shù)據(jù)速率,則基于多個端點的總的最小數(shù)據(jù)速率與前端總線的調(diào)整的數(shù)據(jù)速率的比較結(jié)果而設(shè)置多個端點的操作參數(shù)的步驟包括基于從識別端點優(yōu)先級的第二數(shù)據(jù)結(jié)構(gòu)檢索的優(yōu)先級信息,產(chǎn)生多個端點中的端點的優(yōu)先級列表;以及基于優(yōu)先級列表而減少分配給端點的資源,直到多個端點的總的最小數(shù)據(jù)速率小于或等于前端總線的調(diào)整的數(shù)據(jù)速率為止。13、如權(quán)利要求12所述的方法,其中,在數(shù)據(jù)處理系統(tǒng)的固件中實現(xiàn)該方法。14、如權(quán)利要求8所述的方法,進一步包括基于第二數(shù)據(jù)結(jié)構(gòu),識別多個端點中的具有同步要求的一個或多個端點;基于第二數(shù)據(jù)結(jié)構(gòu),確定所述一個或多個端點是否具有最高優(yōu)先級;以及設(shè)置總線仲裁器,以便對一個或多個端點賦予比多個端點中的其它端點高的對前端總線的優(yōu)先級。15、如權(quán)利要求14所述的方法,進一步包括基于第一數(shù)據(jù)結(jié)構(gòu),確定處理與用于一個或多個端點的操作參數(shù)設(shè)置相對應(yīng)的有效負載大小的時間;為多個端點確定理想的有效負載大小,以補償一個或多個端點的同步要求;以及調(diào)整多個端點中的有效負載大小設(shè)置大于理想有效負載大小的端點的操作參數(shù)。16、一種包含具有計算機可讀程序的計算機可用介質(zhì)的計算機程序產(chǎn)品,其中,當(dāng)在計算裝置上執(zhí)行時,該計算機可讀程序使計算裝置實現(xiàn)根據(jù)權(quán)利要求1到15中的任一個所述的方法。17、一種數(shù)據(jù)處理系統(tǒng),包括固件;前端總線;以及多個耦接到固件和前端總線的端點,其中所述固件確定前端總線的最大數(shù)據(jù)速率;確定多數(shù)端點的總的最大數(shù)據(jù)速率;比較多個端點的總的最大數(shù)據(jù)速率與前端總線的最大數(shù)據(jù)速率;響應(yīng)于多個端點的總的最大數(shù)據(jù)速率大于前端總線的最大數(shù)據(jù)速率,檢索多個端點的最小數(shù)據(jù)速率;以及基于多個端點的最小數(shù)據(jù)速率,設(shè)置多個端點的操作參數(shù)。18、如權(quán)利要求17所述的系統(tǒng),其中,固件通過以下步驟,來基于多個端點的當(dāng)前的操作參數(shù)設(shè)置而確定多個端點的每個端點的最大數(shù)據(jù)速率,所述步驟為使用識別在一個或多個操作參數(shù)與最大數(shù)據(jù)速率的設(shè)置之間的相關(guān)性的第一數(shù)據(jù)結(jié)構(gòu),對多個端點中的每個端點執(zhí)行查找操作,并且,其中,第一數(shù)據(jù)結(jié)構(gòu)是三維數(shù)據(jù)結(jié)構(gòu),該三維數(shù)據(jù)結(jié)構(gòu)將多個通道操作參數(shù)、有效負載大小操作參數(shù)、以及最大存儲器讀取大小操作參數(shù)與最大數(shù)據(jù)速率相關(guān)。19、如權(quán)利要求18所述的系統(tǒng),其中,固件通過以下步驟來檢索多個端點的最小數(shù)據(jù)速率使用識別在端點類型、端點優(yōu)先級、最小數(shù)據(jù)速率、以及端點是否具有同步要求之間的相關(guān)性的第二數(shù)據(jù)結(jié)構(gòu),對多個端點中的每個端點執(zhí)行查找操作。20、如權(quán)利要求19所述的系統(tǒng),其中,固件通過以下步驟來基于多個端點的最小數(shù)據(jù)速率而設(shè)置多個端點的操作參數(shù),所述步驟為檢索用戶帶寬平衡級別值;基于前端總線的最大數(shù)據(jù)速率和用戶帶寬平衡級別值,為前端總線確定調(diào)整的數(shù)據(jù)速率;比較多個端點的總的最小數(shù)據(jù)速率與前端總線的調(diào)整的數(shù)據(jù)速率;以及基于多個端點的總的最小數(shù)據(jù)速率與前端總線的調(diào)整的數(shù)據(jù)速率的比較結(jié)果,設(shè)置多個端點的操作參數(shù)。21、如權(quán)利要求17所述的系統(tǒng),其中固件進一步基于第二數(shù)據(jù)結(jié)構(gòu),識別多個端點中的具有同步要求的一個或多個端點;基于第二數(shù)據(jù)結(jié)構(gòu),確定所述一個或多個端點是否具有最高優(yōu)先級;以及設(shè)置總線仲裁器,以便對一個或多個端點賦予比多個端點中的其它端點高的對前端總線的優(yōu)先級;基于第一數(shù)據(jù)結(jié)構(gòu),確定處理與用于一個或多個端點的4喿作參數(shù)設(shè)置相對應(yīng)的有效負載大小的時間;為多個端點確定理想的有效負載大小,以補償一個或多個端點的同步要求;以及調(diào)整多個端點中的有效負載大小設(shè)置大于理想有效負載大小的端點的操作參數(shù)。全文摘要提供了在多個PCI-Express端點之間平衡總線帶寬的系統(tǒng)和方法。固件自動的與已建立的數(shù)據(jù)結(jié)構(gòu)協(xié)調(diào)的操作,以設(shè)置PCIe端點的操作參數(shù),從而最大化前端總線的可用帶寬的使用率,同時最小化同步問題和不能保證PCIe端點的執(zhí)行的可能性。第一表數(shù)據(jù)結(jié)構(gòu)包括控制數(shù)據(jù)處理系統(tǒng)的每個端點的帶寬使用的操作參數(shù)設(shè)置的各種組合。第二表數(shù)據(jù)結(jié)構(gòu)包含數(shù)據(jù)處理系統(tǒng)所支持的端點、以及它們相關(guān)的最小數(shù)據(jù)速率、優(yōu)先級和端點是否具有同步要求的列表。期望帶寬平衡級別的設(shè)置與這些數(shù)據(jù)結(jié)構(gòu)一起用于確定如何調(diào)整PCIe端點的操作參數(shù)。文檔編號G06F13/42GK101290609SQ200810092220公開日2008年10月22日申請日期2008年4月17日優(yōu)先權(quán)日2007年4月17日發(fā)明者小里卡多·馬塔,斯蒂文·方維布爾,查德·J·拉森,邁克爾·A·佩雷茲申請人:國際商業(yè)機器公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
搜索| 柘荣县| 富锦市| 无为县| 靖边县| 大石桥市| 江都市| 灌云县| 永宁县| 綦江县| 敖汉旗| 怀安县| 淄博市| 郁南县| 会东县| 白沙| 外汇| 芜湖县| 桐城市| 汉沽区| 峨眉山市| 芒康县| 施秉县| 江永县| 余干县| 平南县| 罗城| 双城市| 沈阳市| 黄浦区| 麻城市| 谢通门县| 南京市| 托里县| 承德县| 屯昌县| 白河县| 寿光市| 武城县| 六盘水市| 大足县|