專利名稱:使用完成者對存儲器區域排序要求的知識來修改事務屬性的制作方法
技術領域:
本發明的實施例一般涉及事務排序,尤其涉及允許修改嚴格排序的系統和方法。
背景技術:
外圍組件互連(PCI)是于1992年開發的第二代并行總線架構,其作為行業標準架 構(ISA)總線的替代。在PCI中,所有設備共享相同的雙向、32位(或64位)并行信號路 徑。PCI總線帶來優于ISA總線的數個優點,包括處理器獨立性、緩沖隔離、總線主控、以及 實在的即插即用操作。PCI高速(PCI E鄧ress, PCIe)是被設計用來替代PCI總線的第三 代通用串行I/0互連。并非總線,PCIe是圍繞被稱為通道(lane)的點對點串行鏈路而構 造的。 PCI高速的點對點串行鏈路架構非常適合經由分布式多處理器架構模型的分布式 處理。分布式處理器一般被優化用于實現數據分組處理功能。與嚴重依賴于高速緩存以提 高性能的通用CPU不同,分布式處理器在分組處理上缺乏局部性并且需要高性能IA),這已 推動設計者提出創新架構以減少處理等待時間,同時仍以高數據率處理分組。
目前,PCIe中的事務排序屬性和類似互連必須由請求者來設置。由于主CPU是通 用資源,因此它們通常不具有根據正執行的活動的具體要求來設置排序屬性的能力,并且 必然落后于最低的公共平均水平,這導致低性能。CPU至IO讀取通常是性能最關鍵的系統 事務,因為CPU核可能停轉以等待結果。改進這種讀取的性能因此通過釋放CPU資源供其 它更有用工作用就直接導致整個系統性能的提高。
通過參考用來說明本發明的實施例的以下描述和附圖,可最好地理解本發明。
圖1是圖解寬松排序屬性的PCIe請求報頭的示意圖解。
圖2是圖解寬松排序屬性的PCIe完成報頭的示意圖解。
圖3是本發明的一個實施例的示意圖解。
圖4是本發明的另一個實施例的示意圖解。
具體實施例方式
如說明書及權利要求書中所使用的,單數形式的"一"、"一個"以及"該"包括復數 引用,除非上下文另外明確地指出。"根聯合體"("RC")是將中央處理單元("CPU"或"處 理器")和存儲器連接到PCI高速開關結構的PCI高速設備。根聯合體代表處理器生成事
務請求。"請求者"是作出請求的任何設備。"完成者"是服務請求的任何實體。"媒介"是 請求者與完成者之間的任何設備,諸如開關。通常,媒介僅向前傳遞請求。如說明書和權利 要求書中所使用的"上游"指示往根聯合體的流。"下游"指示遠離根聯合體的流。"區域" 是由地址或地址范圍定義的存儲器部分。設備例如可能希望用于存儲對設備的指令的一個 區域和用于由設備產生或消耗的數據的另一個區域有不同行為。
本發明的實施例描述如何通過使10設備基于該設備對因事務而異的要求的理解來修改完成的排序屬性,來恢復迷失于不必要的嚴格排序的一些性能以用于CPU至10設備讀取。作為嚴格排序問題的示例,考慮如果初始要花費2i! s來完成的讀取可被改進到IP s,則這IP s之差可被"返回"給核心以完成有用工作——這是足以執行數千指令的時間。當前系統頻繁地在CPU至I0設備讀取上引發0.6iis到若干ys的等待時間。較大系統針對常規排序的CPU至10設備讀取可能引發4 s的等待時間。這種延遲中的大部分是由于禁止完成繞開寫入的常規排序要求造成的。由于常常存在大量的IO設備至主存寫入業務,因此對CPU的讀取完成常常簡單地因這許多寫入造成的排隊延遲而延遲。
PCIe和類似的互連將排序屬性與事務相關聯以允許最優化處理。例如,在PCI/PCIe中,默認排序規則要求讀取完成等待所有先前發出的在同一方向上流動的寫入,作為PCI生產者/消費者排序模型的正確要求。然而,這種模型對于大多數情形而言過于保守。例如,在讀取描述IO設備的狀態的數據結構之前通常必須清空IO設備寫入主存。清空設備寫入常常通過使CPU讀取設備來完成。然而,一旦清空讀取完成,附加的設備狀態讀取通常不必針對上游寫入進行排序。此外,通常不必針對來自無關設備的上游寫入來排序CPU的讀取,即使PCI/PCIe默認排序規則要求該行為。 通常,主CPU無法知曉如何標注讀取請求以指示所要求的排序屬性。然而,IO設備通常知曉哪些區域要求常規排序而哪些不要求。在各設備之間、設備內的一個寄存器與同一設備中另一個寄存器之間、以及甚至是針對基于如何訪問該寄存器的一個寄存器,排序要求可能顯著變化。排序要求的知識理論上可通過在主機上運行的設備驅動軟件來傳達,但大多數當前架構CPU不提供這樣做的機制。然而,通常IO設備自身具有排序要求的知識。然而,10設備不能標記CPU至設備請求——該事務的這部分必須在假定應用最保守的排序要求下處理,除非某種其它機制另行作出指示。 在許多情形中,加諸于各完成上的排序要求導致顯著的停轉。然而使用本發明的系統和方法,可由IO設備標記排序要求,用于在恰適之處放寬排序要求。排序要求取決于實現架構。在本發明的一個實施例中,該架構是PCIe。 PCIe設備能訪問被稱為寬松排序(RO)的排序屬性。 圖1示出PCIe請求報頭中的RO比特的位置。通常,在請求中將RO比特設為0,除非存在為CPU提供用以理解哪些請求可允許RO比特被置位的信息的某種機制。根據現有的PCIe規則,由完成者簡單地將RO比特(以及相關聯的排序含意)從請求復制到完成中。圖2示出PCIe完成報頭中的相應寬松排序(RO)比特。 在當今的PCI-x/PCIe中,RO比特僅在其在對應的請求中被置位的情況下才在完成報頭中被置位。這種策略對于設備讀取至主存有意義,因為假定該設備"知曉"哪些請求可標注RO而哪些不能。本發明的實施例認識到針對設備返回的完成,CPU讀取設備可標注R0。這允許完成繞開無關的設備寫入存儲器。 圖3示出可如何由IO設備置位寬松排序屬性(在這種情形中為PCI/PCIe完成的RO比特)的示例。在該示例中,系統100包括3個PCI/PCIe端點1、2、3。然而,系統IOO可具有任何數目的PCI/PCIe端點。前兩個PCI/PCIe端點1、2經由PCIe互連122連接到開關108。開關108通過另一個PCIe互連122連接到根綜合體110。第三PCI/PCIe端點3經由PCIe互連122直接連接到根綜合體110。根綜合體110包括輸入/輸出控制器集線器控制器(ICH)112、存儲器控制器集線器(MCH)114、主存116、以及CPU 118。輸入/輸出控制器集線器控制器(ICH)112經由桌面管理接口 (DMI)120連接到存儲器控制器集線器(MCH)114。 在該實施例中,端點2和3將數據寫入主存116。這些寫入與端點1的活動無關。CPU核118讀取端點1。常規PCI排序規則在這些寫入可能與讀取數據相關的(過度保守的)假定下禁止完成繞開對存儲器的寫入。這種行為是PCI生產者/消費者模型所要求的。通常,端點1 "知曉"CPU正讀取的數據是否與未完結的寫入存儲器相關,并且如果與未完結的寫入有關系,則將不指示讀取完成的RO。然而,在大多數情形中,端點l"知曉"該讀取與任何未完結的寫入無關,并且在這種情形中端點1可安全地關于RO標注該完成。
圖4圖解本發明的另一個實施例,其中尋址設備集成在根綜合體110中。系統200包括連接到輸入/輸出控制集線器控制器(ICH)112的2個集成端點124、126。輸入/輸出控制器集線器控制器(ICH)11經由桌面管理接口 (DMI) 120連接到存儲器控制器集線器(MCH)114。存儲器控制器集線器(MCH)114連接到CPU 118和主存116。該實施例包括單個PCI/PCIe端點1。然而,系統100可具有任何數目的集成尋址設備124、126或PCI/PCIe端點1。 在許多情形中,集成尋址設備124、126按照很好地定義的方式使用,并且能夠簡化用于確定何時可接受完成排序放寬的機制。注意,完成排序的具體處理無需遵守PCIe RO要求。即,根據所需成本/益處,可使得本發明的其它實施例更簡單或更復雜。
圖4示出其根綜合體集成設備參與完成排序放寬方案的系統。在圖4中所示的系統中,可實現以下策略或其它類似策略。 參認識到CPU讀取集成設備針對從其它集成設備寫入主存可能從來沒有排序要求 參認識到CPU讀取集成設備針對從非集成設備寫入主存可能從來沒有排序要求
參認識到CPU讀取非集成設備針對從其它集成設備寫入主存可能從來沒有排序要求 參認識到CPU讀取非集成設備針對從其它非集成設備寫入主存可能從來沒有排序要求 以上示例是用PCI/PCIe RO屬性例示的。然而,本發明不局限于PCI/PCIe RO。在更一般性情形中,排序屬性可不同于RO。此外,表達排序屬性的方式可能不同。完成者具有用于確定是否能從默認行為安全地修改完成排序的知識是充分的。此外,以上示例是以針對上游寫入排序的形式來例示的。然而,該系統是對稱的。即,排序屬性也可被放寬以改變針對下游寫入的排序。 本發明的實施例可提供對于寬泛的計算機系統合需的性能改進。PC兼容的架構系統被特別約束,因為與支持傳統硬件和軟件相關聯的要求使得很難實現排序放寬。然而,以上描述的機制在PC環境中工作良好。 雖然本發明已用本發明的若干實施例的形式進行了描述,但本領域普通技術人員將認識到,本發明并不被限定于所描述的本發明的實施例,而是可以用落在所附權利要求書的精神和范圍內的修改和變更來實踐。因此本說明書應被認為是說明性的而不是限制性的。
權利要求
一種數據處理系統,包括事務排序機制,其被配置成確定是否能放寬讀取完成的排序屬性,且被進一步配置成在適當的情況下放寬所述排序屬性,其中放寬的排序屬性允許所述讀取完成繞開待決寫入。
2. 如權利要求1所述的系統,其特征在于,所述事務排序機制被配置成設置完成報頭 中的放寬排序比特,并且繞開發生在外圍組件互連中。
3. 如權利要求1所述的系統,其特征在于,所述事務排序機制被配置成設置完成報頭 中的放寬排序比特,并且繞開發生在桌面管理接口中。
4. 如權利要求1所述的系統,其特征在于,所述系統包括第一端點設備,所述第一端點 設備包括所述事務排序機制。
5. 如權利要求4所述的系統,其特征在于,所述事務排序機制適于基于所述第一端點 設備對因事務而異的要求的理解來放寬所述排序屬性。
6. 如權利要求4所述的系統,其特征在于,所述系統包括附加端點設備,并且放寬比特 的設置允許所述讀取完成繞開來自所述附加端點設備的待決寫入。
7. 如權利要求1所述的系統,其特征在于,還包括集成在根綜合體中的端點設備。
8. 如權利要求7所述的系統,其特征在于,還包括附加端點設備。
9. 如權利要求8所述的系統,其特征在于,所述附加端點設備中的至少一個位于所述 根綜合體中。
10. —種方法,包括確定是否能放寬讀取完成的排序屬性以允許所述讀取完成繞開一個或多個待決寫入;設置所述讀取完成的所述排序屬性以允許所述讀取完成繞開所述一個或多個待決寫入。
11. 如權利要求io所述的方法,其特征在于,還包括確定第一端點設備的讀取完成是否與所述一個或多個待決寫入相關。
12. 如權利要求10所述的方法,其特征在于,設置所述排序屬性包括設置完成報頭中 的放寬排序比特,并且其中繞開發生在外圍組件互連中。
13. 如權利要求IO所述的方法,其特征在于,設置所述排序屬性包括設置完成報頭中 的放寬排序比特,并且其中繞開發生在桌面管理接口中。
14. 如權利要求IO所述的方法,其特征在于,確定是否能放寬讀取完成的排序屬性是 基于所述第一端點設備對因事務而異的要求的理解的。
15. 如權利要求12所述的方法,其特征在于,還包括所述讀取完成繞開所述一個或多 個待決寫入。
16. 如權利要求13所述的方法,其特征在于,還包括所述讀取完成繞開所述一個或多 個待決寫入。
17. 如權利要求11所述的方法,其特征在于,所述一個或多個待決寫入來自一個或多 個附加端點設備。
18. 如權利要求17所述的方法,其特征在于,所述一個或多個附加端點設備中的至少 一個集成在根綜合體中。
19. 如權利要求18所述的方法,其特征在于,還包括從中央處理單元向所述第一端點設備發送讀取請求,所述第一端點設備集成在所述根 綜合體中;以及從所述第 一端點設備向主存發送所述讀取完成,其中所述排序屬性可總是被設置成允許所述讀取完成繞開來自所述至少一個附加集 成設備的一個或多個待決寫入。
20. 如權利要求18所述的方法,其特征在于,還包括從中央處理單元向所述第一端點設備發送讀取請求,所述第一端點設備集成在所述根 綜合體中;以及從所述第 一端點設備向主存發送所述讀取完成,其中所述排序屬性可總是被設置成允許所述讀取完成繞開來自附加的非集成設備的 一個或多個待決寫入。
21. 如權利要求18所述的方法,其特征在于,還包括從中央處理單元向所述第一端點設備發送讀取請求,所述第一端點設備并非集成在所 述根綜合體中;以及從所述第一端點設備向主存發送所述讀取完成,其中所述排序屬性可總是被設置成允許所述讀取完成繞開來自所述至少一個附加集 成設備的一個或多個待決寫入。
22. 如權利要求18所述的方法,其特征在于,還包括從中央處理單元向所述第一端點設備發送讀取請求,所述第一端點設備并非集成在所 述根綜合體中;以及從所述第 一端點設備向主存發送所述讀取完成,其中所述排序屬性可總是被設置成允許所述讀取完成繞開來自附加的非集成設備的 一個或多個待決寫入。
23. —種裝置,包括用于確定是否能放寬讀取完成的排序屬性以允許所述讀取完成繞開一個或多個待決 寫入的裝置;用于設置所述讀取完成的所述排序屬性以允許繞開所述一個或多個待決寫入的裝置。
24. 如權利要求23所述的裝置,其特征在于,所述用于設置所述排序屬性的裝置包括 用于設置完成報頭中的放寬排序比特的裝置。
25. 如權利要求23所述的裝置,其特征在于,所述裝置是外圍組件互連。
全文摘要
一種通過設置讀取完成中的排序屬性來放寬讀取完成的排序的方法和系統。放寬的排序屬性允許讀取完成繞開待決寫入。
文檔編號G06F13/20GK101727413SQ200910208029
公開日2010年6月9日 申請日期2009年10月14日 優先權日2008年10月15日
發明者D·哈利曼 申請人:英特爾公司