TWI568220B - 用以啟用透過週邊構件互連快速匯流排的身份識別式串流之方法與裝置 - Google Patents
用以啟用透過週邊構件互連快速匯流排的身份識別式串流之方法與裝置 Download PDFInfo
- Publication number
- TWI568220B TWI568220B TW099109390A TW99109390A TWI568220B TW I568220 B TWI568220 B TW I568220B TW 099109390 A TW099109390 A TW 099109390A TW 99109390 A TW99109390 A TW 99109390A TW I568220 B TWI568220 B TW I568220B
- Authority
- TW
- Taiwan
- Prior art keywords
- request
- queue
- packet
- delivery request
- delayed
- Prior art date
Links
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/38—Information transfer, e.g. on bus
- G06F13/382—Information transfer, e.g. on bus using universal interface adapter
- G06F13/385—Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
-
- 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
-
- 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/38—Information transfer, e.g. on bus
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Systems (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
本發明係有關於互連領域,及特別地,有關於啟用透過PCI快速匯流排的身份識別式串流。
電腦系統包括一些構件及元件。通常這些構件及元件透過一匯流排或互連而被耦接。早前,輸入/輸出(I/O)裝置透過一習知被稱為週邊構件互連(PCI)的多點並行匯流排架構而被耦接到一起。最近,被稱為PCI-Express(PCIe)(PCI快速匯流排)的新一代I/O匯流排已被用來利用一串列實體層通訊協定促進裝置之間的較快互連。
一PCIE架構包括一在裝置間通訊的分層式協定(layered protocol)。例如,一實體層、鏈接層、及交易層形成一PCIE協定堆疊。該PCIe鏈接圍繞著稱為線道(lane)之專用單向串列點對點連接對而建立。裝置之間的一鏈接包括一些數目的線道,諸如一、二、十六、三十二條等等。在http://www.pcisig.com/specifications/pciexpress/可得目前的PCIE規範:基礎規範2.0。
習知的PCIe排序規則已被建立來啟用一生產者-消費者程式化模型。在此模型下,一特定裝置的讀取被需要來将在其之前產生的寫入推入。這一程式化模型確保了讀取一記憶體位置X將始終獲得已被寫入該記憶體位置之最近
的資料。
然而,此排序要求導致一請求串流(一系列具有相同請求者及相同目的地之讀取或寫入交易)的請求干擾另一獨立的請求串流。此干擾可導致一嚴重的性能瓶頸。如果非投遞式(non-posted)請求被阻塞於投遞式(posted)請求之後的話,此干擾尤為嚴重,因為讀取請求對潛時敏感。
依據本發明之一實施例,係特地提出一種裝置,其包含:用以排定欲透過一串列點對點互連埠傳輸之封包的順序之一記憶體排序邏輯元件,如果在一遭延誤的第一封包之後到達的一第二封包包括設定來指出該第二封包與順序無關的一屬性旗標,且如果該第二封包包括有與該遭延誤的第一封包中所包括的一身份識別(ID)不同的一ID,該記憶體排序邏輯元件便使在該第一封包之後到達的該第二封包越過該遭延誤的第一封包。
本發明以範例方式被說明並不欲受附圖的圖式限制。
第1圖說明一包括一連接一電腦系統內的I/O裝置之串列點對點互連之系統的一實施例。
第2圖說明一層式協定堆疊的一實施例。
第3圖說明一記憶體排序邏輯元件的一實施例。
第4圖說明一包括一ID式排序旗標之封包的一實施例。
第5圖說明一排序表格的一實施例。
第6圖說明一用以啟用裝置ID式串流之流程圖的實施
例。
在下面的說明中,許多特定細節被提出,諸如特定互連的範例、特定封包/訊息、封包/訊息內特定欄位及位置、邏輯/快取的特定位置等等,以便提供對本發明的一徹底理解。然而,對熟於此技者而言顯而易見的是,這些特定細節不需要被用來實施本發明。在其它實例中,習知構件或方法,諸如快取邏輯/實施、週邊構件互連快速匯流排(PCIe)訊息協定、交易中的PCIe欄位/封包、及其它PCIe基本實施未被予以詳細描述以免不必要的模糊本發明。
本文所予以描述的方法及裝置是用以啟用透過PCIe的身份識別(ID)式串流。具體地,越過一交換器中的佇列請求是參考一(因信用度或其它如尋頁錯失之事件而)遭延誤的投遞式(non-posted)請求而被予以討論。然而,用以啟用ID式串流的方法與裝置並不如此受限,因為它們可在任何積體電路裝置上或聯合任何積體電路裝置,諸如任何輸入/輸出裝置或其它電腦構件,以及結合任何類型的串列點對點互連而被實施。
參考第1圖,一包括透過一串列鏈接(serial link)而被耦接至一控制器中樞之裝置的系統的一實施例被說明。系統100包括被耦接至控制器中樞(controller hub)115之處理器105及系統記憶體110。處理器105包括任一處理元件,諸如
一微處理器、一主機處理器、一嵌入式處理器、一共處理器、或其它處理器。處理器105透過前端匯流排(FSB)106被耦接至控制器中樞115。在一實施例中,FSB 106是如下所述之一串列點對點互連。
系統記憶體110包括任一記憶體裝置,諸如隨機存取記憶體(RAM)、非依電性(NV)記憶體、或其它可被系統100內的裝置存取之記憶體。系統記憶體110透過記憶體介面116被耦接至控制器中樞115。一記憶體介面的範例包括一雙倍資料速率(DDR)記憶體介面、一雙通道DDR記憶體介面、及一動態RAM(DRAM)記憶體介面。
在一實施例中,控制器中樞115是週邊構件互連快速匯流排(PCIe或PCIE)階層中的一個根中樞或根控制器。控制器中樞115的範例包括一晶片組、一記憶體控制器中樞(MCH)、一北橋、一互連控制器中樞(ICH)、一南橋、及一個根控制器/中樞。通常晶片組一詞指兩實體分隔的控制器中樞,亦即一記憶體控制器中樞(MCH)被耦接至一互連控制器中樞(ICH)。
這裡,控制器中樞115透過串列鏈接119被耦接至交換器/橋接器120。也可被稱為介面/埠117之輸入/輸出模組117及121包括/實施一層式協定堆疊來提供控制器中樞115與交換器120之間的通訊。一模組,諸如模組117、118、121、122、124、126、129及131,可在硬體、軟體、韌體、或其等的任一組合中被實施。此外,模組邊界通常會改變且功能在不同實施例中不但可以被一同實施而且還可以分開實
施。在一實施例中,多個裝置能夠被耦接至交換器120。
交換器120將封包/訊息自裝置125及128向上游路由安排,亦即,向上一階層朝向一根控制器至控制器中樞115並向下游路由安排,亦即,向下一階層遠離一根控制器,自處理器105或系統記憶體110至裝置125及128。裝置125及128包括耦接至一電子系統之任一內部或外部裝置或構件,諸如一I/O裝置、一網路介面控制器(NIC)、一附加卡、一音訊處理器、一網絡處理器、一硬碟驅動機、一儲存裝置、一CD/DVD ROM、一監視器、一印表機、一滑鼠、一鍵盤、一路由器、一可攜式儲存裝置、一防火牆裝置、一通用串列匯流排(USB)裝置、一掃描器、及其它輸入/輸出裝置。交換器120包括記憶體排序邏輯140,其如下文更詳細說明來啟用裝置ID式(ID-based)串流。
圖形加速器130透過串列鏈接132也被耦接至控制器中樞115。在一實施例中,圖形加速器130被耦接至一MCH,該MCH被耦接至一ICH。交換器120及相應地I/O裝置125及128接著被耦接至該ICH。I/O模組131及118也實施一層式協定堆疊來在圖形加速器130與控制器中樞115之間通訊。
轉向第2圖,一層式協定堆疊之一實施例被說明。層式協定堆疊200包括任一層式通訊堆疊,諸如一快速路徑互連(QPI)堆疊、PCIe堆疊、或其它協定堆疊。在一實施例中,協定堆疊200是一包括交易層205、鏈接層210、及實體層220的PCIe堆疊。一介面,諸如第1圖的介面117、118、121、122、124、126、129及131,可被表示為通訊協定堆疊200。
如一通訊協定堆疊之表示也被稱為一實施/包括一協定堆疊的模組或介面。
在一實施例中,交易層205係用以提供一裝置處理核心與互連架構諸如資料鏈接層210及實體層220之間的一介面。在這方面,交易層的一主要責任是封包(亦即,交易層封包,或TLP)的組合與拆卸。PCIe實施切割交易,亦即具有請求及響應的交易被時間分隔,允許一鏈接在目標裝置收集響應資料時攜載其它流量。
此外,PCIe利用信用式流程控制。在此方案中,一裝置對交易層205中的各該接收緩衝區通告一初始數量的信用度。在鏈接對立端的一外部裝置,諸如第1圖中的控制器中樞115,計算每一TLP消耗的信用度數目。如果一交易未超過一信用度限制,該交易可被傳輸。在接收一響應之後,一信用度數量被恢復。一信用度方案的一優點是信用度回報的潛時並不影響性能,但有條件是未遇到信用度限制。
在一實施例中,四交易位址空間包括一組態位址空間、一記憶體位址空間、一輸入/輸出位址空間、及一訊息位址空間。記憶體空間交易包括一或一個以上的讀取請求與寫入請求來將資料傳遞至一記憶體映射位置或自一記憶體映射位置傳遞。在一實施例中,記憶體空間交易能夠使用兩不同的位址格式,舉例而言,一短位址格式,諸如一32位元位址,或一長位址格式,諸如64位元位址。組態空間交易被用來存取PCIe裝置的組態空間。到組態空間的交
易包括讀取請求及寫入請求。訊息空間交易(或,簡單訊息)被定義來支援PCIe代理程式的頻帶內通訊。
因此,在一實施例中,交易層205組合封包標頭/酬載206。封包標頭/酬載的格式可在PCIe規範中獲悉,亦即PCIe基礎規範2.0,它可在http://www.pcisig.com/specifications/pciexpress/得到。
也稱為資料鏈接層210之鏈接層210充當交易層205與實體層220之間的一中間級。在一實施例中,資料鏈接層210的一責任是提供在兩組件一鏈接之間交換交易層封包(TLP)之一可靠的機制。資料鏈接層210的一側接收交易層205組合的TLP、應用封包序列識別符211,亦即一身份識別號碼或封包號碼、計算並應用一錯誤檢測碼,亦即CRC 212,並將修改的TLP提交至實體層220供跨越一實體鏈接傳輸至一外部裝置。
在一實施例中,實體層220包括用以將一封包實體傳輸至一外部裝置之邏輯子區塊221及電氣子區塊222。這裡,邏輯子區塊221負責實體層221的「數位」功能。在這方面,邏輯子區塊包括一用以準備實體子區塊222傳輸的輸出資訊之傳輸區段,及一用以在將接收的資訊傳遞至鏈接層210之前識別並準備接收的資訊之接收區段。
實體區塊222包括一傳輸器及一接收器。該傳輸器由邏輯子區塊221供應符元,傳輸器串列化該等符元並傳輸至一
外部裝置。該接收器被供應以來自一外部裝置之串列化的符元並將該等接收的信號轉換為一位元串流。該位元串流被反串列化並被提供至邏輯子區塊221。在一實施例中,在傳輸/接收了十位元符元的情況下,使用一8b/10b傳輸碼。這裡,特殊的符元被用來以訊框223來為封包加框。此外,在一範例中,接收器也提供一自進入的串列串流恢復出的符元時鐘。
如上所述,雖然交易層205、鏈接層210、及實體層220是參考一PCIe協定堆疊的一特定實施例而被予以討論,但是一層式協定堆疊並不如此受限。事實上,任一層式協定可被包括/實施。如一範例,一被表示為一層式協定的埠/介面包括:(1)一用以組合封包的第一層,亦即,一交易層;一用以序列化封包的第二層,亦即一鏈接層;及一用以傳輸該等封包的第三層,亦即一實體層。
接著參考第3圖,一記憶體排序邏輯的一實施例被說明。如所繪示,智慧交換器300包括記憶體排序邏輯305、投遞式請求佇列308(包括投遞式請求310A-N)及指標322、非投遞式請求隊列314(包括非投遞式請求316A-N)及指標324、完成佇列318(包括完成320A-N)及指標326、及埠350(其可以是一上游或下游埠)。
記憶體排序邏輯305實施一種啟用裝置ID式串流的方法,例如如參考第6圖所述,且可包括ID式排序啟動器332、佇列選擇器334、指標處理者336、請求者/完成者ID比較器338及識別符式排序(IDO)旗標核對340。
參考第4圖,一包括一ID式排序旗標之封包的一實施例被說明。一封包指任一請求、訊息、存取、或在一匯流排/互連上被傳輸之其它資訊分組。在所示實施例中,封包400包括其它資訊欄位405。其它資訊欄位405的範例包括保留欄位、格式欄位、屬性欄位、長度欄位、PCIe特定欄位、及任何其它協定特定欄位。另外,封包400包括請求者ID415(位元組4及5),其可參考一請求代理程式/裝置及為一全域ID/交易描述符的一部分或包括一全域ID/交易ID,及位址欄位420來參考一位址位置。
屬性位元402及404可如所繪示來啟用排序模型450、455、460及465。可使用位元組1之目前保留位元2的屬性位元402表示一ID式排序旗標,該ID式排序旗標可被設定為一請求者或完成者來指示一請求者或完成與順序無關及可越過投遞式請求。
接著參考第5圖,一排序表格之一實施例被說明。表格500類似於PCIe規範之表格2-24,但被修改成在某些實例中允許一獨立請求串流超過較早排隊但遭延誤的投遞式記憶體寫入或訊息請求(第2行)。
依據單元505,一記憶體寫入或訊息請求:在鬆弛排序屬性位元404清除及ID排序位元402清除的情況下不得超過(a);在鬆弛排序屬性位元404設定及ID排序位元402清除的情況下被允許超過(b);及在鬆弛排序屬性位元404清除及ID排序位元402設定的情況下被允許超過任何其它記憶體寫入或訊息請求,如果它們的請求者ID415不同(c)。
依據單元510,一讀取請求:在鬆弛排序屬性位元404清除及ID排序位元402清除的情況下不得超過(a);在鬆弛排序屬性位元404設定及ID排序位元402清除的情況下不得超過(b);及在鬆弛排序屬性位元404清除及ID排序位元402設定的情況下被允許超過任何其它記憶體寫入或訊息請求,如果它們的請求者ID415不同(c)。
依據單元515,I/O或組態寫入請求無法超過一記憶體寫入或訊息請求。這保留了被需要來支援生產者/消費者使用模型之強寫入排序。
依據單元520,一讀取完成:在鬆弛排序屬性位元404清除及ID排序位元402清除的情況下不得超過(a);在鬆弛排序屬性位元404清除及ID排序位元402設定的情況下被允許超過(b);及在鬆弛排序屬性位元404清除及ID排序位元402設定的情況下被允許超過任何其它記憶體寫入或訊息請求,如果它們完成者ID與記憶體寫入之請求者ID415不同(c)。
最後,依據單元525,I/O或組態寫入完成被允許受記憶體寫入及訊息請求阻塞或超過記憶體寫入及訊息請求。此類交易通常以相反方向移動及因而,沒有排序關係。
接著參考第6圖,一用以啟用裝置ID式串流之流程圖的一實施例被說明。在流程605,ID式排序啟動器332判定是否存在一機會來越過一投遞式請求。在一實施例中,如果啟動器332判定一投遞式請求被延誤,其將此流程推進至610。
在流程610,佇列選擇器334接著選擇一佇列以找尋一選替封包來傳輸。在一實施例中,選擇器334根據哪一佇列有最多的項來選擇投遞式請求佇列308、非投遞式請求佇列314或完成佇列318。在另一實施例中,選擇器334始終首先選擇非投遞式請求佇314來找尋一選替封包。在流程615,指標處理者336可令指標332、324、326中之一或一個以上的指標增量,例如,如果一先前可能選替封包不被允許超過(亦即,不是來自一獨立串流或不具有ID排序位元402設定)。
接著,在流程620請求者/完成者ID比較器判定是否可能選替封包之請求者/完成者ID不同於投遞式請求佇列308中早前接收投遞式請求中之任一者的ID。在一實施例中,比較器338使用一隨同每一非投遞式請求被儲存之投遞式請求指標及完成來判定投遞式請求佇列308中哪一投遞式請求在可能選替封包之前被接收。如果由早前接收投遞式請求,可能選替封包被判定為是一獨立串流,則流程繼續流程625。不然,流程返回至流程605。
在流程625,IDO旗標核對340驗證ID排序位元402被設定於可能選替封包中,及如果被設定於可能選替封包中,在流程630,選替封包透過埠350被傳輸。不然,流程返回至流程605。
上面提出之方法、軟體、韌體或代碼之實施例可透過儲存於一機器可存取或機器可讀取媒體上、可被一處理元件執行之指令或代碼而實施,一機器可存取/可讀取媒體包
括任何以一為一諸如一電腦或電子系統之機器可讀取的形式提供(亦即,儲存及/傳輸)資訊之機制。舉例而言,一機器可存取媒體包括隨機存取記憶體(RAM),諸如靜態RAM(SRAM)或動態RAM(DRAM);ROM;磁或光學儲存媒體;快閃記憶體裝置;電氣、光學、聲學或其它形式的傳播信號(例如,載波、紅外信號、數位信號)等。
本說明書提及「一實施例」意為結合實施例所予以描述之一特定特徵、結構、或特性被包括在本發明之至少一實施例中。因此,在本說明書的各不同位置出現片語「在一實施例中」未必都指相同的實施例。此外,特定特徵、結果、或特性能以適當方式被結合於一或一個以上的實施例中。
在前面說明書中,參考特定示範實施例已給出一詳細說明。然而,將明顯的是,在不背離較廣精神及後附申請專利範圍所提出之本發明的範圍的情況下可對此詳細說明作各種修改及改變。本說明書及圖式因此在一說明性意義而非一限制意義上來看待。此外,前面使用實施例及其它示範語言未必指相同實施例或相同範例,而可指不同及相異實施例,以及可能地相同實施例。
100‧‧‧系統
105‧‧‧處理器
106‧‧‧前端匯流排
110‧‧‧系統記憶體
115‧‧‧控制器中樞
116‧‧‧記憶體介面
117、118、121、122、124、126、129、131‧‧‧介面
119、132‧‧‧串列鏈接
120‧‧‧交換器/橋接器
125、128‧‧‧輸入/輸出裝置
130‧‧‧圖形加速器
140、305‧‧‧記憶體排序邏輯元件
200‧‧‧層式協定堆疊
205‧‧‧交易層
206‧‧‧封包標頭/酬載
210‧‧‧鏈接層
211‧‧‧封包序列識別符
212‧‧‧CRC
220‧‧‧實體層
221‧‧‧邏輯子區塊
222‧‧‧電氣子區塊
223‧‧‧訊框
300‧‧‧智慧交換器
308‧‧‧投遞式請求佇列
310A-N‧‧‧投遞式請求
314‧‧‧非投遞式請求佇列
316A-N‧‧‧非投遞式請求
318‧‧‧完成佇列
320A-N‧‧‧完成
322、324、326‧‧‧指標
332‧‧‧身份識別式排序啟動器
334‧‧‧佇列選擇器
336‧‧‧指標處理者
338‧‧‧請求者/完成者身份識別比較器
340‧‧‧IDO旗標核對
350‧‧‧埠
400‧‧‧封包
402、404‧‧‧屬性位元
405‧‧‧資訊欄位
415‧‧‧請求者身份識別
420‧‧‧位址欄位
450、455、460、465‧‧‧排序模型
500‧‧‧表格
505、510、515、520、525‧‧‧單元
605~630‧‧‧流程
第1圖說明一包括一連接一電腦系統內的I/O裝置之串列點對點互連之系統的一實施例。
第2圖說明一層式協定堆疊的一實施例。
第3圖說明一記憶體排序邏輯元件的一實施例。
第4圖說明一包括一ID式排序旗標之封包的一實施例。
第5圖說明一排序表格的一實施例。
第6圖說明一用以啟用裝置ID式串流之流程圖的實施例。
100‧‧‧系統
105‧‧‧處理器
106‧‧‧前端匯流排
110‧‧‧系統記憶體
115‧‧‧控制器中樞
116‧‧‧記憶體介面
117、118、121、122、124、126、129、131‧‧‧介面
119、132‧‧‧串列鏈接
120‧‧‧交換器/橋接器
125、128‧‧‧輸入/輸出裝置
130‧‧‧圖形加速器
140‧‧‧記憶體排序邏輯元件
Claims (9)
- 一種裝置,其包含:用以沿一串列點對點鏈接傳輸封包之一埠;用以儲存欲透過該埠傳輸之投遞式請求的封包之一第一佇列;用以儲存欲透過該埠傳輸之非投遞式請求的封包之一第二佇列;及用以選擇性地越過之邏輯元件,其用以於在來自該第一佇列之一遭延誤的投遞式請求之後所接收之來自該第二佇列的一非投遞式請求的一標頭之一識別符式排序(IDO)屬性欄位指出該非投遞式請求與順序無關,且該非投遞式請求的該標頭包括與該第一佇列中之早前接收的投遞式請求之請求者識別符(ID)不同的一請求者識別符(ID)時,選擇性地越過該遭延誤的投遞式請求並透過該埠來傳輸該非投遞式請求,進一步包含用以儲存欲透過該埠傳輸之完成的封包之一第三佇列,如果在該遭延誤的投遞式請求之後所接收之來自該第三佇列的一完成封包的一標頭指出該遭延誤的投遞式請求與順序無關,且如果該完成封包之該標頭包括與該第一佇列中之早前接收的投遞式請求之完成者識別符(ID)不同的一完成者識別符(ID),該邏輯元件便選擇性地越過該遭延誤的投遞式請求並透過該埠來傳輸來自該第三佇列的該完成封包。
- 如申請專利範圍第1項所述之裝置,其中該埠是一上游埠。
- 如申請專利範圍第1項所述之裝置,其進一步包含與該串列點對點鏈接通訊式耦接之一處理器、一系統記憶體、及一圖形加速器。
- 一種裝置,其包含:用以沿一串列點對點鏈接傳輸封包之一埠;用以儲存欲透過該埠傳輸之投遞式請求的封包之一第一佇列;用以儲存欲透過該埠傳輸之非投遞式請求的封包之一第二佇列;及用以選擇性地越過之邏輯元件,其用以於在來自該第一佇列之一遭延誤的投遞式請求之後所接收之來自該第二佇列的一非投遞式請求的一標頭之一識別符式排序(IDO)屬性欄位指出該非投遞式請求與順序無關,且該非投遞式請求的該標頭包括與該第一佇列中之早前接收的投遞式請求之請求者識別符(ID)不同的一請求者識別符(ID)時,選擇性地越過該遭延誤的投遞式請求並透過該埠來傳輸該非投遞式請求,進一步包含如果來自該第一佇列的一投遞式請求的一標頭指出該遭延誤的投遞式請求與順序無關,且如果該投遞式請求之該標頭包括與該遭延誤的投遞式請求之一請求者ID不同的一請求者ID,該邏輯元件便選擇性地越過來自該第一佇列之該遭延誤的投遞式請求,並透過該埠來傳輸在該遭延誤的投遞式請求之後被接收之來自該第一佇列的該投遞式請求。
- 如申請專利範圍第4項所述之裝置,其中該埠是一上游埠。
- 如申請專利範圍第4項所述之裝置,其進一步包含與該串列點對點鏈接通訊式耦接之一處理器、一系統記憶體、及一圖形加速器。
- 一種裝置,其包含:用以沿一串列點對點鏈接傳輸封包之一埠;用以儲存欲透過該埠傳輸之投遞式請求的封包之一第一佇列;用以儲存欲透過該埠傳輸之非投遞式請求的封包之一第二佇列;及用以選擇性地越過之邏輯元件,其用以於在來自該第一佇列之一遭延誤的投遞式請求之後所接收之來自該第二佇列的一非投遞式請求的一標頭之一識別符式排序(IDO)屬性欄位指出該非投遞式請求與順序無關,且該非投遞式請求的該標頭包括與該第一佇列中之早前接收的投遞式請求之請求者識別符(ID)不同的一請求者識別符(ID)時,選擇性地越過該遭延誤的投遞式請求並透過該埠來傳輸該非投遞式請求,進一步包含該第二佇列係用以儲存與每一非投遞式請求封包相關聯的一投遞式請求指標,以指出儲存於該第一佇列中的哪些投遞式請求早於該每一非投遞式請求封包被接收到。
- 如申請專利範圍第7項所述之裝置,其中該埠是一上游埠。
- 如申請專利範圍第7項所述之裝置,其進一步包含與該串列點對點鏈接通訊式耦接之一處理器、一系統記憶 體、及一圖形加速器。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/474,480 US8199759B2 (en) | 2009-05-29 | 2009-05-29 | Method and apparatus for enabling ID based streams over PCI express |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201101044A TW201101044A (en) | 2011-01-01 |
TWI568220B true TWI568220B (zh) | 2017-01-21 |
Family
ID=43220157
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW105106711A TWI633442B (zh) | 2009-05-29 | 2010-03-29 | 用以啓用透過週邊構件互連快速匯流排的身份識別式串流之方法與裝置(二) |
TW099109390A TWI568220B (zh) | 2009-05-29 | 2010-03-29 | 用以啟用透過週邊構件互連快速匯流排的身份識別式串流之方法與裝置 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW105106711A TWI633442B (zh) | 2009-05-29 | 2010-03-29 | 用以啓用透過週邊構件互連快速匯流排的身份識別式串流之方法與裝置(二) |
Country Status (8)
Country | Link |
---|---|
US (1) | US8199759B2 (zh) |
JP (2) | JP2012527036A (zh) |
KR (1) | KR101298862B1 (zh) |
CN (2) | CN101901205B (zh) |
DE (2) | DE112010002178T5 (zh) |
RU (2) | RU2559727C2 (zh) |
TW (2) | TWI633442B (zh) |
WO (1) | WO2010138230A2 (zh) |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8199759B2 (en) | 2009-05-29 | 2012-06-12 | Intel Corporation | Method and apparatus for enabling ID based streams over PCI express |
EP2577936A2 (en) * | 2010-05-28 | 2013-04-10 | Lawrence A. Laurich | Accelerator system for use with secure data storage |
WO2013105978A1 (en) * | 2012-01-13 | 2013-07-18 | Intel Corporation | Allocation of flow control credits for high performance devices |
KR101828756B1 (ko) * | 2012-10-22 | 2018-02-12 | 인텔 코포레이션 | 고성능 인터커넥트 코히어런스 프로토콜 |
US9600431B2 (en) | 2012-10-22 | 2017-03-21 | Intel Corporation | High performance interconnect physical layer |
US9558143B2 (en) * | 2014-05-09 | 2017-01-31 | Micron Technology, Inc. | Interconnect systems and methods using hybrid memory cube links to send packetized data over different endpoints of a data handling device |
US9602464B2 (en) | 2014-12-12 | 2017-03-21 | Intel Corporation | Apparatus, system and method for allocating identifiers to components of a control system |
US10176126B1 (en) * | 2015-06-29 | 2019-01-08 | Cadence Design Systems, Inc. | Methods, systems, and computer program product for a PCI implementation handling multiple packets |
US11216396B2 (en) * | 2016-09-29 | 2022-01-04 | Intel Corporation | Persistent memory write semantics on PCIe with existing TLP definition |
US10353833B2 (en) | 2017-07-11 | 2019-07-16 | International Business Machines Corporation | Configurable ordering controller for coupling transactions |
CN108471384B (zh) * | 2018-07-02 | 2020-07-28 | 北京百度网讯科技有限公司 | 用于端到端通信的报文转发的方法和装置 |
US11477049B2 (en) * | 2018-08-02 | 2022-10-18 | Xilinx, Inc. | Logical transport over a fixed PCIE physical transport network |
CN110580202A (zh) * | 2019-06-04 | 2019-12-17 | 阿里巴巴集团控股有限公司 | 服务器系统内消息的处理方法、装置及系统 |
US11748285B1 (en) * | 2019-06-25 | 2023-09-05 | Amazon Technologies, Inc. | Transaction ordering management |
KR102529761B1 (ko) | 2021-03-18 | 2023-05-09 | 에스케이하이닉스 주식회사 | PCIe 디바이스 및 그 동작 방법 |
KR102496994B1 (ko) * | 2021-03-23 | 2023-02-09 | 에스케이하이닉스 주식회사 | PCIe 인터페이스 장치 및 그 동작 방법 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030163649A1 (en) * | 2002-02-25 | 2003-08-28 | Kapur Suvansh K. | Shared bypass bus structure |
TW200533107A (en) * | 2003-12-31 | 2005-10-01 | Intel Corp | Programmable measurement mode for a serial point to point link |
US20070211746A1 (en) * | 2006-03-10 | 2007-09-13 | Koji Oshikiri | Information processing apparatus, information processing system, and data communication method |
TW200834316A (en) * | 2006-11-02 | 2008-08-16 | Intel Corp | PCI express enhancements and extensions |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3505728B2 (ja) * | 1993-01-13 | 2004-03-15 | 株式会社日立製作所 | 記憶制御装置 |
US6138192A (en) * | 1996-12-31 | 2000-10-24 | Compaq Computer Corporation | Delivering a request to write or read data before delivering an earlier write request |
US6385708B1 (en) * | 1998-11-16 | 2002-05-07 | Infineon Technologies Ag | Using a timing-look-up-table and page timers to determine the time between two consecutive memory accesses |
US6691192B2 (en) * | 2001-08-24 | 2004-02-10 | Intel Corporation | Enhanced general input/output architecture and related methods for establishing virtual channels therein |
CN100409606C (zh) * | 2001-08-24 | 2008-08-06 | 英特尔公司 | 管理数据完整性的通用输入/输出体系结构、协议和方法 |
US6728790B2 (en) * | 2001-10-15 | 2004-04-27 | Advanced Micro Devices, Inc. | Tagging and arbitration mechanism in an input/output node of a computer system |
US7149857B2 (en) * | 2002-05-14 | 2006-12-12 | Micron Technology, Inc. | Out of order DRAM sequencer |
DE10234934A1 (de) * | 2002-07-31 | 2004-03-18 | Advanced Micro Devices, Inc., Sunnyvale | Antwortreihenwiederherstellungsmechanismus |
US7443869B2 (en) * | 2003-08-04 | 2008-10-28 | Intel Corporation | Deadlock avoidance queuing mechanism |
US7165131B2 (en) * | 2004-04-27 | 2007-01-16 | Intel Corporation | Separating transactions into different virtual channels |
US7957428B2 (en) * | 2004-05-21 | 2011-06-07 | Intel Corporation | Methods and apparatuses to effect a variable-width link |
US20050289306A1 (en) * | 2004-06-28 | 2005-12-29 | Sridhar Muthrasanallur | Memory read requests passing memory writes |
CN100456273C (zh) * | 2005-03-24 | 2009-01-28 | 富士通株式会社 | PCI-Express通信系统及其通信方法 |
US7461190B2 (en) * | 2005-08-11 | 2008-12-02 | P.A. Semi, Inc. | Non-blocking address switch with shallow per agent queues |
US20080005484A1 (en) * | 2006-06-30 | 2008-01-03 | Joshi Chandra P | Cache coherency controller management |
US7836220B2 (en) * | 2006-08-17 | 2010-11-16 | Apple Inc. | Network direct memory access |
US8050290B2 (en) * | 2007-05-16 | 2011-11-01 | Wilocity, Ltd. | Wireless peripheral interconnect bus |
US7904629B2 (en) * | 2007-10-02 | 2011-03-08 | NVON, Inc. | Virtualized bus device |
US8199759B2 (en) | 2009-05-29 | 2012-06-12 | Intel Corporation | Method and apparatus for enabling ID based streams over PCI express |
-
2009
- 2009-05-29 US US12/474,480 patent/US8199759B2/en active Active
-
2010
- 2010-03-10 DE DE112010002178T patent/DE112010002178T5/de not_active Ceased
- 2010-03-10 RU RU2013146508/08A patent/RU2559727C2/ru not_active IP Right Cessation
- 2010-03-10 KR KR1020117028449A patent/KR101298862B1/ko active IP Right Grant
- 2010-03-10 DE DE202010018100.3U patent/DE202010018100U1/de not_active Expired - Lifetime
- 2010-03-10 JP JP2012510805A patent/JP2012527036A/ja active Pending
- 2010-03-10 WO PCT/US2010/026777 patent/WO2010138230A2/en active Application Filing
- 2010-03-10 RU RU2011153260/08A patent/RU2509348C2/ru not_active IP Right Cessation
- 2010-03-29 TW TW105106711A patent/TWI633442B/zh active
- 2010-03-29 TW TW099109390A patent/TWI568220B/zh active
- 2010-05-27 CN CN201010194859.2A patent/CN101901205B/zh active Active
- 2010-05-27 CN CN201410310637.0A patent/CN104123262B/zh active Active
-
2013
- 2013-09-11 JP JP2013188640A patent/JP5897524B2/ja active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030163649A1 (en) * | 2002-02-25 | 2003-08-28 | Kapur Suvansh K. | Shared bypass bus structure |
TW200533107A (en) * | 2003-12-31 | 2005-10-01 | Intel Corp | Programmable measurement mode for a serial point to point link |
US20070211746A1 (en) * | 2006-03-10 | 2007-09-13 | Koji Oshikiri | Information processing apparatus, information processing system, and data communication method |
TW200834316A (en) * | 2006-11-02 | 2008-08-16 | Intel Corp | PCI express enhancements and extensions |
Also Published As
Publication number | Publication date |
---|---|
US8199759B2 (en) | 2012-06-12 |
RU2509348C2 (ru) | 2014-03-10 |
WO2010138230A2 (en) | 2010-12-02 |
TW201101044A (en) | 2011-01-01 |
KR20120024669A (ko) | 2012-03-14 |
CN101901205A (zh) | 2010-12-01 |
RU2011153260A (ru) | 2013-07-10 |
CN101901205B (zh) | 2014-07-30 |
JP5897524B2 (ja) | 2016-03-30 |
CN104123262A (zh) | 2014-10-29 |
US20100303079A1 (en) | 2010-12-02 |
RU2559727C2 (ru) | 2015-08-10 |
JP2014017006A (ja) | 2014-01-30 |
TWI633442B (zh) | 2018-08-21 |
WO2010138230A3 (en) | 2011-01-20 |
KR101298862B1 (ko) | 2013-08-21 |
CN104123262B (zh) | 2018-03-30 |
JP2012527036A (ja) | 2012-11-01 |
RU2013146508A (ru) | 2015-04-27 |
TW201636865A (zh) | 2016-10-16 |
DE112010002178T5 (de) | 2012-09-20 |
DE202010018100U1 (de) | 2014-04-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI568220B (zh) | 用以啟用透過週邊構件互連快速匯流排的身份識別式串流之方法與裝置 | |
US11726939B2 (en) | Flex bus protocol negotiation and enabling sequence | |
US8139575B2 (en) | Device, system and method of modification of PCI express packet digest | |
US8085801B2 (en) | Resource arbitration | |
US7827325B2 (en) | Device, system, and method of speculative packet transmission | |
US7979592B1 (en) | Virtualization bridge device | |
EP1433067B1 (en) | An enhanced general input/output architecture and related methods for establishing virtual channels therein | |
US7412555B2 (en) | Ordering rule and fairness implementation | |
US9189441B2 (en) | Dual casting PCIE inbound writes to memory and peer devices | |
US20060230210A1 (en) | Method and apparatus for memory interface | |
Lawley | Understanding Performance of PCI Express Systems | |
CN109716311B (zh) | 用于执行分布式仲裁的系统、装置和方法 | |
JPH0969855A (ja) | トランザクション・フローを制御する制御システムおよびその方法 | |
JP6273010B2 (ja) | 入出力データアライメント | |
US7610415B2 (en) | System and method for processing data streams | |
US20080298383A1 (en) | Buffer Minimization in Interface Controller | |
TWI240859B (en) | Error forwarding in an enhanced general input/output architecture and related methods | |
Table | DS551 June 22, 2011 Product Specification | |
Sreekanth | DESIGN AND VARIFICATION OF APPLICATION AND TRANSACTION LAYERS OF PCI-EXPRESS |