TWI548997B - 利用完成器對記憶體區域排序需求之理解來修改異動屬性的技術(二) - Google Patents
利用完成器對記憶體區域排序需求之理解來修改異動屬性的技術(二) Download PDFInfo
- Publication number
- TWI548997B TWI548997B TW102109839A TW102109839A TWI548997B TW I548997 B TWI548997 B TW I548997B TW 102109839 A TW102109839 A TW 102109839A TW 102109839 A TW102109839 A TW 102109839A TW I548997 B TWI548997 B TW I548997B
- Authority
- TW
- Taiwan
- Prior art keywords
- completion
- packet
- transaction
- request
- mitigation
- Prior art date
Links
- 230000009471 action Effects 0.000 claims description 43
- 230000000116 mitigating effect Effects 0.000 claims description 30
- 238000000034 method Methods 0.000 claims description 9
- 230000008859 change Effects 0.000 claims description 3
- 230000002093 peripheral effect Effects 0.000 claims description 3
- 239000002131 composite material Substances 0.000 claims 5
- 230000007246 mechanism Effects 0.000 description 5
- 238000011144 upstream manufacturing Methods 0.000 description 4
- 238000007726 management method Methods 0.000 description 3
- 230000006399 behavior Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000002457 bidirectional effect Effects 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 239000004744 fabric Substances 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000012913 prioritisation Methods 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1605—Handling requests for interconnection or transfer for access to memory bus based on arbitration
- G06F13/161—Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement
- G06F13/1626—Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement by reordering requests
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Information Transfer Systems (AREA)
- Multi Processors (AREA)
- Memory System (AREA)
- Bus Control (AREA)
- Power Sources (AREA)
Description
本發明的實施例係大致有關異動排序的技術,且更確切來說,本發明的實施例係有關允許修改嚴格排序的系統與方法。
周邊構件互連體(PCI)是在1992年研發出來以取代工業標準架構(ISA)匯流排的一種第二代並列匯流排架構。在PCI中,所有裝置共享相同的雙向、32位元(或64位元)並列信號路徑。該種PCI匯流排帶來了多項優於ISA匯流排的優點,包括處理器獨立性、緩衝隔離、匯流排主控、以及真實的隨插即用操作。PCI Express(PCIe)是一種設計來取代該匯流排的第三代一般用途串列I/O互連體。PCIe並不是一種匯流排,而是建構在稱為通道(lane)的點對點串列鏈結周邊。
PCI Express的該種點對點串列鏈結架構相當適於經由一種分散式多處理器架構模式的分散式處理技術。分散式處理器通常受到最佳化,以實行資料封包處理功能。並不像相當程度地仰賴快取動作以改善效能的一般用途CPU,分散式處理器缺乏封包處理動作中的局部性並且需要高效能I/O,這已促使設計者要提出創新的架構來降低處理潛伏期間而同時能以高資料率處理封包。
目前,必須由請求器來設定PCIe與相似互連體中的異動排序屬性。因為主機CPU為一般資源,它們典型地並不具備根據所進行活動的特定需求來設定排序屬性的能力,並且必須退回到最低的共同點,其因此導致低效能。CPU對IO讀取往往是最重要的效能關鍵系統異動,因為一CPU核心可以一直等待結果。改善該種讀取動作的效能因此將藉由釋出CPU資源以供用於其他更有用的工作,來直接地導向整體系統效能的提升。
依據本發明之一實施例,係特地提出一種設備,其包含:用以執行下列動作之邏輯:透過一互連體接收一特定異動的一封包,該互連體包含一或多個點對點串列鏈結,其中該封包包含用以識別一請求器之一請求封包;識別於該請求封包中是否已設定用以指示緩和性排序將施用於該特定異動的一排序屬性;以及判定將緩和性排序施用於完成該特定異動之機會。
100、200‧‧‧系統
106‧‧‧端點
108‧‧‧交換器
110‧‧‧根複合體
112‧‧‧輸入/輸出控制器中樞控制器(ICH)
114‧‧‧記憶體控制器中樞(MCH)
116‧‧‧主要記憶體
118‧‧‧CPU
120‧‧‧桌面管理介面(DMI)
122‧‧‧PCIe互連體
124、126‧‧‧整合式端點
可參照以下的發明說明與用以展示出本發明實施例的圖式而最佳地瞭解本發明。
第1圖以PCIe請求頭標的概要圖展示出緩和性排序屬性。
第2圖以PCIe完成頭標的概要圖展示出緩和性排序屬性。
第3圖以概要圖展示出本發明的一實施例。
第4圖以概要圖展示出本發明的另一個實施例。
如本發明說明以及申請專利範圍所使用的,單數形式的“一”、“一個”、以及“該”包括複數形式的參照,除非在本文中特別明確表示出來的以外。一種“根複合體”(“RC”)為一種PCI Express裝置,其使一中央處理單元(“CPU”或“處理器”)以及記憶體連接至該PCI Express交換結構。該根複合體代表該處理器產生異動請求。一種“請求器”為提出一請求的任何裝置。一種“完成器”為針對一請求提供服務的任何實體。一種“中間物”為介於該請求器以及該完成器之間的任何裝置,例如一交換器。典型地,中間物僅傳遞該請求。本發明說明以及申請專利範圍中使用的“上游”係表示朝向該根複合體的流動。“下游”則表示離開該根複合體的流動。一“區域”為以一位址或多個位址範圍界定之記憶體的一部分。例如,一裝置可能想要針對用以把指令儲存到該裝置中的一區域以及用於該裝置產生或耗用之資料的另一區域進行不同的行為。
本發明的實施例描述如何藉著使IO裝置根據該裝置對異動特定需求的理解來修改該完成動作的排序屬性,以針對CPU對IO裝置讀取來恢復因為不必要嚴格排序而喪失某些效能的技術。舉嚴格排序的問題作為一實例,假設可以使最初花了2μs完成的一項讀取提升到只花1μs就完成,可把該1μs的差異“送回”到該核心以進行有效的工作-有足夠時間可執行數千個指令。目前的系統經常在CPU對IO裝置讀取動作方面產生0.6μs到數μs的延遲。大型系統可能針對習知排序的CPU對IO裝置讀取動作產生4μs的延遲。此種延遲的大部分是因為禁止完成動作繞過寫入動作的習知排序需求而引起。因為往往有相當多的IO裝置要對主要記憶體寫入訊務,對該CPU的讀取完成動作經常會因為要把該等許多寫入動作引起的延遲排入佇列而受到延誤。
PCIe與相似互連體使排序屬性與異動相聯結,以允許進行最佳化的處置動作。例如,在PCI/PCIe中,預設的排序規則需要讀取完成動作等待流向相同方向的所有先前發佈寫入,作為PCI生產者/消費者排序模型的一項正確需求。然而,此種模型在大部分的狀況中是過度保守的。例如,在讀取描述一IO裝置狀態的一資料結構之前,往往需要清空對主要記憶體進行的該IO裝置寫入動作。使該裝置寫入清空的動作往往是藉著使該CPU從該裝置進行讀取來完成。然而,一旦該清空讀取動作完成,典型地不需要針對上游寫入動作來排序額外的裝置狀態讀取動作。再者,往往不需要針對來自不相關裝置的上游寫入動作來排序該CPU的讀取動作,即使該PCI/PCIe預設排序規則需要此項行為。
典型地,主機CPU並無法知道如何標示讀取請求以指出所需的排序屬性。然而,該IO裝置典型地知悉哪些區域需要習知排序而哪些區域不需要。該等排序需求可能彼此相當不同,在位於一裝置中的一暫存器以及位於相同裝置中的另一個暫存器不同,甚至對如何存取該暫存器的方式也不同。理論上來說,可以透過在該主機上運轉的裝置驅動程式軟體來傳遞對該排序需求的理解,但最新近架構的CPU並未提供如此進行的機構。然而,典型地,該IO裝置本身具有對該等排序需求的理解。然而,該IO裝置不能把該CPU標示為裝置請求-假設最保守的排序需求適用,此異動部分必需受到掌管,除非使用某些其他機構相反地表示出來。
在許多實例中,對該完成動作設置的排序需求會產生嚴重的延遲問題。然而,藉由本發明揭露的系統與方法,可由該IO裝置於適當時針對排序需求緩和性目的來標示該排序需求。該排序需求依據所實行的架構而定。在本發明的一實施例中,該架構為PCIe。PCIe裝置已經可存取一種稱為緩和性排序(RO)的排序屬性。
第1圖展示出該RO位元在PCIe請求頭標中的位置。典型地,在該請求中,係把該RO位元設定為0,除非有能提供資訊以供該CPU瞭解哪個請求可允許設定該RO位元的某種機構。依據現存的PCIe規則,該RO位元(以及相關聯排序暗示)係由該完成器從該請求複製到該完成中。第2圖展示出PCIe完成頭標中的對應緩和性排序(RO)位元。
在今日的PCI-x/PCIe中,如果已在對應請求中設定該RO位元,便僅在完成頭標中設定該RO位元。此策略對讀取主要記憶體的裝置來說是有意義的,因為假設該裝置“知悉”可以把哪些請求標示為RO而不能把哪些請求標示為RO。本發明的實施例可認定針對該裝置送回的該完成動作把來自一裝置的CPU讀取動作標示為RO。此允許該完成動作繞過對記憶體進行的不相關裝置寫入動作。
第3圖展示出如何由一IO裝置來設定一緩和性排序屬性(在此實例中,為一PCI/PCIe完成動作的RO位元)的實例。在此實例中,系統100包括3個PCI/PCIe端點1、2、3。然而,系統100可具有任何數量的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。然而,在大部分的狀況中,端點1“知悉”該讀取動作並不與任何未完成寫入動作相關,且在此實例中,端點1可安全地針對RO來標示該完成動作。
第4圖展示出本發明的另一個實施例,其中係把多個定址裝置整合到根複合體110中。系統200包括連接至輸入/輸出控制器中樞控制器(ICH)112的二個整合式端點124與126。輸入/輸出控制器中樞控制器(ICH)112經由桌面管理介面(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/PCIeRO屬性展示出來。然而,本發明不限於PCI/PCIe RO。在較一般的狀況中,該排序屬性可不同於RO。再者,表達該排序屬性的方式可以不同。該完成器具有知識能判定是否可從預設
行為安全地修改完成排序便已足夠。此外,上述的實例係針對上游寫入動作的排序來展示。然而,該系統為對稱性的。換言之,可以使該排序屬性緩和,以改變為亦針對下游寫入動作的排序。
本發明的實施例可提供效能提升,這對大多數的電腦系統是所欲的。PC相容架構系統特別受到限制,因為與支援既有硬體與軟體相關聯的需求使它難以實行排序緩和性。然而,上述的機構在PC環境可運作良好。
僅管已經根據本發明的數個實施例來說明本發明,熟知記憶者將可瞭解的是,本發明並不受限於所解說的本發明實施例,並且可利用屬於以下申請專利範圍之精神與範圍中的修改方式以及變化方式來實現本發明。本發明說明因此應被視為具有例示性而非限制性。
Claims (30)
- 一種資料處理設備,其包含:一根複合體整合式端點(RCIE),其經組構以:透過一互連體接收一特定異動的一封包,該互連體包含一或多個點對點串列鏈結,其中該封包包含用以識別一請求器之一請求封包;識別於該請求封包中是否已設定用以指示緩和性排序將施用於該特定異動的一排序屬性;判定將緩和性排序施用於完成該特定異動之機會;以及產生用於該特定異動之完成封包,其中該完成封包是要包括一完成頭標,該完成頭標包括一排序屬性欄位、一完成器識別符、一完成狀態識別符、及一路由的識別符,而該排序屬性欄位係經設定以指示緩和性排序將施用於該完成動作。
- 如申請專利範圍第1項之設備,其中該RCIE將於一完成封包中設定用以指示緩和性排序將被施用於該完成動作的一排序屬性。
- 如申請專利範圍第1項之設備,其中該互連體包含用以支援快捷周邊構件互連標準(PCIe)協定層的一實體層以及包括一或多個其他協定的一實體層中的至少一者。
- 如申請專利範圍第1項之設備,其中該RCIE進一步組配以設定該排序屬性。
- 如申請專利範圍第4項之設備,其中該特定異動為一系統中的複數個異 動中的一者,並且於設定該排序屬性之前,根據一第一排序完成該等多數個異動,其中根據該第一排序該特定異動將於該等複數個異動中的一第二異動之後被完成,並且將緩和性排序施用於該特定異動將導致該特定異動在該第二異動之前被完成。
- 如申請專利範圍第5項之設備,其中該特定異動包含一讀取異動,而該第二異動包含一寫入異動。
- 如申請專利範圍第6項之設備,其中該特定異動牽涉讀取一第一裝置的記憶體以及寫入一不同I/O裝置的記憶體。
- 如申請專利範圍第5項之設備,其中該特定異動將藉由一第一整合式端點來完成,且該第二異動將藉由一第二整合式端點來完成。
- 如申請專利範圍第1項之設備,其中該排序屬性包括一包括在該封包的一頭標中的一欄位。
- 如申請專利範圍第9項之設備,其中該排序屬性欄位包含至少兩個位元。
- 如申請專利範圍第1項之設備,其中該請求封包係指示該緩和性排序尚未被設定。
- 如申請專利範圍第1項之設備,其中該RCIE進一步組構以:以被設定用以指示緩和性排序將施用於完成該特定異動的該排序屬性來產生一完成封包;以及透過該互連體將該完成封包發送至該請求器。
- 如申請專利範圍第12項之設備,其中該完成封包係包括具有一緩和性排序屬性欄位的一頭標。
- 如申請專利範圍第13項之設備,其中該完成封包頭標包括識別該請求器 的一路由的識別符欄位。
- 如申請專利範圍第14項之設備,其中該路由的識別符欄位的值實質上與包括在該請求封包的一頭標中的值相匹配。
- 如申請專利範圍第13項之設備,其中該完成封包頭標進一步包括對應該裝置的一完成器識別符以及一完成狀態識別符。
- 如申請專利範圍第1項之設備,其中該特定異動為一系統中的複數個異動中的一者,並且判定設定該排序屬性的一機會包括判定該特定異動之完成將不會與在該等複數個異動中的其他異動之完成衝突。
- 一種設備,其包含:一根複合體整合式端點(RCIE),其用以:從一請求中判定緩和排序要被施加至對應於該請求之一異動層完成封包之完成;組合該異動層完成封包以包括一封包頭標,其中該封包頭標係要包括一緩和排序欄位、一完成器識別欄位與一完成狀態欄位;以及透過一互連體發送該完成封包至一裝置,其中該完成封包對應至與該裝置相關聯的一請求。
- 如申請專利範圍第18項之設備,其中該互連體包含用以支援快捷周邊構件互連標準(PCIe)協定層的一實體層以及包括一或多個其他協定的一實體層中的至少一者。
- 如申請專利範圍第18項之設備,其中該互連體包含一適用PCIe互連體。
- 一種設備,包含:一第一根複合體整合式端點(RCIE),其用以: 透過一互連體接收一特定異動的一封包,其中該封包包含一請求器的一請求封包,並且該請求包含一I/O讀取請求;從該請求封包之一異動層封包頭標的一排序屬性欄位來識別是否緩和排序施用於該請求的完成動作;以及產生用於該特定異動的一完成封包,其中該完成封包係要包括一完成頭標,該頭標包括一排序屬性欄位、一完成器識別符、一完成狀態識別符與一路由識別符,而該排序屬性欄位經設定為指示緩和排序將施用於該完成動作;其中該特定異動係被包括於複數個異動之中,並且施用緩和排序至該特定異動的完成動作導致在該等複數個異動所包括的記憶體讀取異動的至少一者之前完成將被完成之該特定異動。
- 一種方法,其包含:透過互連至一或多個裝置之一鏈路接收一特定異動的一請求封包,其中該特定異動係要包括一請求與一完成動作,並且該封包對應至來自一請求器的該請求;從該請求封包來識別在該請求封包中的一排序屬性指示緩和排序並未施加至該特定異動;基於該一或多個裝置之至少一者包含一根複合體整合式端點(RCIE)的一判定,來判定用以設定該排序屬性將施用緩和排序至該特定異動的一機會;以及產生帶有設定為指示緩和排序係至少部分基於該機會而施用至該特定異動之該排序屬性的一完成封包。
- 如申請專利範圍第22項之方法,其中該特定異動為一系統中的複數個異動中的一者,並且判定用以設定該排序屬性的一機會包括判定該特定異動之完成將不會與在該等複數個異動中的其他異動之完成衝突。
- 如申請專利範圍第23項之方法,其中該特定異動沒有緩和排序,該等複數異動將根據一第一排序完成,並且施用緩和排序至該特定異動導致該等複數異動將根據一不同的第二排序而完成。
- 如申請專利範圍第22項之方法,其中產生該完成封包包括組合一封包頭標,其包括設定用以指示緩和排序施用至該特定異動的一排序屬性欄位。
- 如申請專利範圍第22項之方法,進一步包含透過該互連體發送該完成封包至該請求器。
- 一種系統,其包含:一第一裝置;包含一根複合體整合式端點(RCIE)之一第二裝置,其包括由至少一個處理器執行的一I/O模組,其用以:透過一互連體接收對應來自於該第一裝置的一請求之一請求封包;從該請求封包來識別一排序屬性是否已被設定於該請求封包中以指示緩和性排序將施用於該請求的完成動作;產生對應於該完成動作的一完成封包,其中該完成封包包括一排序屬性,其經設定以指示緩和性排序將施用於該完成動作;以及透過該互連體發送該完成封包到該第一裝置。
- 如申請專利範圍第27項之系統,其中該請求封包指示緩和性排序尚未被設定。
- 如申請專利範圍第27項之系統,其中該第一裝置包含一第一端點裝置且該第二裝置包含一第二端點裝置。
- 如申請專利範圍第27項之系統,進一步包含一根複合體。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/252,303 US8108584B2 (en) | 2008-10-15 | 2008-10-15 | Use of completer knowledge of memory region ordering requirements to modify transaction attributes |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201329732A TW201329732A (zh) | 2013-07-16 |
TWI548997B true TWI548997B (zh) | 2016-09-11 |
Family
ID=41462384
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW102109839A TWI548997B (zh) | 2008-10-15 | 2009-10-12 | 利用完成器對記憶體區域排序需求之理解來修改異動屬性的技術(二) |
TW098134482A TWI420319B (zh) | 2008-10-15 | 2009-10-12 | 用於修改異動屬性的系統、方法與設備 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW098134482A TWI420319B (zh) | 2008-10-15 | 2009-10-12 | 用於修改異動屬性的系統、方法與設備 |
Country Status (6)
Country | Link |
---|---|
US (2) | US8108584B2 (zh) |
JP (3) | JP5479020B2 (zh) |
CN (2) | CN101727413B (zh) |
DE (2) | DE102009049078B4 (zh) |
GB (1) | GB2464403B (zh) |
TW (2) | TWI548997B (zh) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8108584B2 (en) * | 2008-10-15 | 2012-01-31 | Intel Corporation | Use of completer knowledge of memory region ordering requirements to modify transaction attributes |
US8402195B2 (en) * | 2009-10-27 | 2013-03-19 | Hitachi, Ltd. | Storage system mounted with plurality of processors |
CN104081722B (zh) * | 2012-01-13 | 2018-05-22 | 英特尔公司 | SoC构造中的高效对等通信支持 |
US9129071B2 (en) * | 2012-10-24 | 2015-09-08 | Texas Instruments Incorporated | Coherence controller slot architecture allowing zero latency write commit |
KR102065664B1 (ko) | 2013-08-09 | 2020-01-13 | 삼성전자 주식회사 | 메모리 장치의 열화 상태 추정 방법 및 이를 이용한 메모리 시스템에서의 웨어 레벨링 방법 |
US9569362B2 (en) * | 2014-11-13 | 2017-02-14 | Cavium, Inc. | Programmable ordering and prefetch |
US10013385B2 (en) | 2014-11-13 | 2018-07-03 | Cavium, Inc. | Programmable validation of transaction requests |
US10007619B2 (en) * | 2015-05-29 | 2018-06-26 | Qualcomm Incorporated | Multi-threaded translation and transaction re-ordering for memory management units |
US10127968B2 (en) * | 2015-08-03 | 2018-11-13 | Intel Corporation | Method and apparatus for completing pending write requests to volatile memory prior to transitioning to self-refresh mode |
US10223307B2 (en) * | 2017-06-15 | 2019-03-05 | International Business Machines Corporation | Management of data transaction from I/O devices |
US10353833B2 (en) * | 2017-07-11 | 2019-07-16 | International Business Machines Corporation | Configurable ordering controller for coupling transactions |
CN110688332B (zh) * | 2019-09-12 | 2021-01-15 | 无锡江南计算技术研究所 | 一种面向高速消息传输的pcie数据传输系统及计算机 |
US11762785B2 (en) * | 2021-05-03 | 2023-09-19 | Mellanox Technologies, Ltd. | Peripheral component interconnect attributes shared using address bits |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW200302014A (en) * | 2001-12-28 | 2003-07-16 | Intel Corp | Method for handling unexpected completion packets and completion packets with a non-successful completion status |
US6615295B2 (en) * | 2000-12-26 | 2003-09-02 | Hewlett-Packard Development Company, L.P. | Relaxed read completion ordering in a system using transaction order queue |
US20060218336A1 (en) * | 2005-03-24 | 2006-09-28 | Fujitsu Limited | PCI-Express communications system |
US20070130372A1 (en) * | 2005-11-15 | 2007-06-07 | Irish John D | I/O address translation apparatus and method for specifying a relaxed ordering for I/O accesses |
US20070130397A1 (en) * | 2005-10-19 | 2007-06-07 | Nvidia Corporation | System and method for encoding packet header to enable higher bandwidth efficiency across PCIe links |
TW200834316A (en) * | 2006-11-02 | 2008-08-16 | Intel Corp | PCI express enhancements and extensions |
Family Cites Families (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3255908B2 (ja) * | 1988-06-30 | 2002-02-12 | エルジー・セミコン・カンパニー・リミテッド | メモリー制御ユニット |
GB2230120B (en) * | 1989-04-07 | 1992-12-02 | Intel Corp | Read/write ordering apparatus and method for a microprocessor |
US5418940A (en) * | 1993-08-04 | 1995-05-23 | International Business Machines Corporation | Method and means for detecting partial page writes and avoiding initializing new pages on DASD in a transaction management system environment |
US5530933A (en) * | 1994-02-24 | 1996-06-25 | Hewlett-Packard Company | Multiprocessor system for maintaining cache coherency by checking the coherency in the order of the transactions being issued on the bus |
US5657472A (en) * | 1995-03-31 | 1997-08-12 | Sun Microsystems, Inc. | Memory transaction execution system and method for multiprocessor system having independent parallel transaction queues associated with each processor |
US5790870A (en) * | 1995-12-15 | 1998-08-04 | Compaq Computer Corporation | Bus error handler for PERR# and SERR# on dual PCI bus system |
US6272600B1 (en) * | 1996-11-15 | 2001-08-07 | Hyundai Electronics America | Memory request reordering in a data processing system |
US5860126A (en) * | 1996-12-17 | 1999-01-12 | Intel Corporation | Controlling shared memory access ordering in a multi-processing system using an acquire/release consistency model |
US5878237A (en) * | 1997-07-11 | 1999-03-02 | Compaq Computer Corp. | Apparatus, method and system for a comuter CPU and memory to PCI bridge having a pluarlity of physical PCI buses |
US6145052A (en) * | 1997-11-04 | 2000-11-07 | Western Digital Corporation | Disk drive with adaptive pooling for command reordering |
US6038646A (en) * | 1998-01-23 | 2000-03-14 | Sun Microsystems, Inc. | Method and apparatus for enforcing ordered execution of reads and writes across a memory interface |
US6816934B2 (en) * | 2000-12-22 | 2004-11-09 | Hewlett-Packard Development Company, L.P. | Computer system with registered peripheral component interconnect device for processing extended commands and attributes according to a registered peripheral component interconnect protocol |
US6175889B1 (en) * | 1998-10-21 | 2001-01-16 | Compaq Computer Corporation | Apparatus, method and system for a computer CPU and memory to high speed peripheral interconnect bridge having a plurality of physical buses with a single logical bus number |
US6625683B1 (en) * | 1999-08-23 | 2003-09-23 | Advanced Micro Devices, Inc. | Automatic early PCI transaction retry |
US6490635B1 (en) * | 2000-04-28 | 2002-12-03 | Western Digital Technologies, Inc. | Conflict detection for queued command handling in disk drive controller |
JP2002043544A (ja) * | 2000-07-21 | 2002-02-08 | Mitsubishi Electric Corp | 半導体装置およびその製造方法 |
US6757768B1 (en) * | 2001-05-17 | 2004-06-29 | Cisco Technology, Inc. | Apparatus and technique for maintaining order among requests issued over an external bus of an intermediate network node |
US7177971B2 (en) | 2001-08-24 | 2007-02-13 | Intel Corporation | General input/output architecture, protocol and related methods to provide isochronous channels |
US6801970B2 (en) * | 2001-09-30 | 2004-10-05 | Hewlett-Packard Development Company, L.P. | Priority transaction support on the PCI-X bus |
US6754737B2 (en) * | 2001-12-24 | 2004-06-22 | Hewlett-Packard Development Company, L.P. | Method and apparatus to allow dynamic variation of ordering enforcement between transactions in a strongly ordered computer interconnect |
US20030145136A1 (en) * | 2002-01-31 | 2003-07-31 | Tierney Gregory E. | Method and apparatus for implementing a relaxed ordering model in a computer system |
US20040022094A1 (en) * | 2002-02-25 | 2004-02-05 | Sivakumar Radhakrishnan | Cache usage for concurrent multiple streams |
US20050289306A1 (en) * | 2004-06-28 | 2005-12-29 | Sridhar Muthrasanallur | Memory read requests passing memory writes |
US7698498B2 (en) * | 2005-12-29 | 2010-04-13 | Intel Corporation | Memory controller with bank sorting and scheduling |
US7461210B1 (en) * | 2006-04-14 | 2008-12-02 | Tilera Corporation | Managing set associative cache memory according to entry type |
KR100823171B1 (ko) * | 2007-02-01 | 2008-04-18 | 삼성전자주식회사 | 파티션된 플래시 변환 계층을 갖는 컴퓨터 시스템 및플래시 변환 계층의 파티션 방법 |
US8108584B2 (en) * | 2008-10-15 | 2012-01-31 | Intel Corporation | Use of completer knowledge of memory region ordering requirements to modify transaction attributes |
-
2008
- 2008-10-15 US US12/252,303 patent/US8108584B2/en active Active
-
2009
- 2009-10-12 TW TW102109839A patent/TWI548997B/zh active
- 2009-10-12 DE DE102009049078.7A patent/DE102009049078B4/de active Active
- 2009-10-12 DE DE102009061252.1A patent/DE102009061252B3/de active Active
- 2009-10-12 TW TW098134482A patent/TWI420319B/zh not_active IP Right Cessation
- 2009-10-14 CN CN200910208029.8A patent/CN101727413B/zh active Active
- 2009-10-14 CN CN201210586797.9A patent/CN102981984B/zh active Active
- 2009-10-15 GB GB0918065A patent/GB2464403B/en not_active Expired - Fee Related
- 2009-10-15 JP JP2009237987A patent/JP5479020B2/ja active Active
-
2011
- 2011-12-22 US US13/335,345 patent/US8307144B2/en active Active
-
2013
- 2013-08-27 JP JP2013175504A patent/JP5824488B2/ja active Active
-
2015
- 2015-10-09 JP JP2015201103A patent/JP6141379B2/ja active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6615295B2 (en) * | 2000-12-26 | 2003-09-02 | Hewlett-Packard Development Company, L.P. | Relaxed read completion ordering in a system using transaction order queue |
TW200302014A (en) * | 2001-12-28 | 2003-07-16 | Intel Corp | Method for handling unexpected completion packets and completion packets with a non-successful completion status |
US20060218336A1 (en) * | 2005-03-24 | 2006-09-28 | Fujitsu Limited | PCI-Express communications system |
US20070130397A1 (en) * | 2005-10-19 | 2007-06-07 | Nvidia Corporation | System and method for encoding packet header to enable higher bandwidth efficiency across PCIe links |
US20070130372A1 (en) * | 2005-11-15 | 2007-06-07 | Irish John D | I/O address translation apparatus and method for specifying a relaxed ordering for I/O accesses |
TW200834316A (en) * | 2006-11-02 | 2008-08-16 | Intel Corp | PCI express enhancements and extensions |
Also Published As
Publication number | Publication date |
---|---|
JP5824488B2 (ja) | 2015-11-25 |
US8307144B2 (en) | 2012-11-06 |
JP2014041618A (ja) | 2014-03-06 |
GB0918065D0 (en) | 2009-12-02 |
US20100095032A1 (en) | 2010-04-15 |
US20120096212A1 (en) | 2012-04-19 |
TW201019128A (en) | 2010-05-16 |
CN102981984A (zh) | 2013-03-20 |
JP2010097615A (ja) | 2010-04-30 |
GB2464403A (en) | 2010-04-21 |
JP5479020B2 (ja) | 2014-04-23 |
DE102009049078B4 (de) | 2015-03-05 |
GB2464403B (en) | 2011-08-24 |
DE102009061252B3 (de) | 2023-04-20 |
DE102009049078A1 (de) | 2010-05-20 |
CN101727413A (zh) | 2010-06-09 |
CN101727413B (zh) | 2013-09-11 |
TW201329732A (zh) | 2013-07-16 |
CN102981984B (zh) | 2016-04-06 |
TWI420319B (zh) | 2013-12-21 |
JP2016033823A (ja) | 2016-03-10 |
JP6141379B2 (ja) | 2017-06-07 |
US8108584B2 (en) | 2012-01-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI548997B (zh) | 利用完成器對記憶體區域排序需求之理解來修改異動屬性的技術(二) | |
US6587905B1 (en) | Dynamic data bus allocation | |
US9064051B2 (en) | Issuing requests to a fabric | |
US11042300B2 (en) | Command load balancing for NVME dual port operations | |
US7308522B2 (en) | Method and apparatus to allow dynamic variation of ordering enforcement between transactions in a strongly ordered computer interconnect | |
US20050091432A1 (en) | Flexible matrix fabric design framework for multiple requestors and targets in system-on-chip designs | |
WO2006012289A2 (en) | Memory read requests passing memory writes | |
US20100005247A1 (en) | Method and Apparatus for Global Ordering to Insure Latency Independent Coherence | |
TWI662416B (zh) | 系統晶片(SoC)結構中有效率的點對點通訊支援 | |
US20090037932A1 (en) | Mechanism for broadcasting system management interrupts to other processors in a computer system | |
US9684613B2 (en) | Methods and systems for reducing spurious interrupts in a data storage system | |
EP3788495A1 (en) | High-performance streaming of ordered write stashes to enable optimized data sharing between i/o masters and cpus | |
US20070073977A1 (en) | Early global observation point for a uniprocessor system | |
US20080022052A1 (en) | Bus Coupled Multiprocessor | |
GB2447690A (en) | A data processing apparatus and method for performing multi-cycle arbitration | |
US20190227838A1 (en) | System and method for batch accessing | |
JP2006301825A (ja) | アドレス競合時のスタベーション防止方法およびチップセットおよびマルチプロセッサシステム | |
US7987437B2 (en) | Structure for piggybacking multiple data tenures on a single data bus grant to achieve higher bus utilization | |
US20090094385A1 (en) | Techniques for Handling Commands in an Ordered Command Stream | |
US8112590B2 (en) | Methods and apparatus for reducing command processing latency while maintaining coherence | |
CN114064198A (zh) | 经由os接口表的单numa域内的多虚拟numa域 | |
US20140019730A1 (en) | Method and Device for Data Transmission Between Register Files | |
Feehrer et al. | Coherency hub design for multi-node victoria falls server systems | |
Balasingam | Modular, Configurable Bus Architecture Targeted for Ease of IP Reuse on System on Chip and ASIC Devices | |
Anjaiah et al. | Advanced On-Chip Bus Design with Open Core Protocol Interface |