TW201428498A - PCI Express增強及延伸 - Google Patents

PCI Express增強及延伸 Download PDF

Info

Publication number
TW201428498A
TW201428498A TW102141586A TW102141586A TW201428498A TW 201428498 A TW201428498 A TW 201428498A TW 102141586 A TW102141586 A TW 102141586A TW 102141586 A TW102141586 A TW 102141586A TW 201428498 A TW201428498 A TW 201428498A
Authority
TW
Taiwan
Prior art keywords
transaction
packet
request
memory
interconnect
Prior art date
Application number
TW102141586A
Other languages
English (en)
Other versions
TWI590060B (zh
Inventor
Jasmin Ajanovic
Mahesh Wagh
Prashant Sethi
Sharma Debendra Das
David Harriman
Mark B Rosenbluth
Ajay V Bhatt
Peter J Barry
Scott Rodgers
Anil Vasudevan
Sridhar Muthrasanallur
James E Akiyama
Robert G Blankenship
Ohad Falik
Avi Mendelson
Ilan Pardo
Eran Tamari
Eliezer Weissmann
Doron Shamia
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of TW201428498A publication Critical patent/TW201428498A/zh
Application granted granted Critical
Publication of TWI590060B publication Critical patent/TWI590060B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/0831Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/324Power saving characterised by the action undertaken by lowering clock frequency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/325Power saving in peripheral device
    • G06F1/3253Power saving in bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/385Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4027Coupling between buses using bus bridges
    • G06F13/4045Coupling between buses using bus bridges where the bus bridge performs an extender function
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4063Device-to-bus coupling
    • G06F13/4068Electrical coupling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4265Bus transfer protocol, e.g. handshake; Synchronisation on a point to point bus
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/66Arrangements for connecting between networks having differing types of switching systems, e.g. gateways
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/62Details of cache specific to multiprocessor cache arrangements
    • G06F2212/621Coherency control relating to peripheral accessing, e.g. from DMA or I/O device
    • 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
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

在此描述一種增強/延伸串列點對點互連架構(如周邊構件互連快速(PCIe))之方法及設備。提供時間及位置快取暗示及預取暗示以改善泛系統之快取及預取。包括用於仲裁系統裝置/資源間之擁有權的原子操作之訊息碼以允許有效率之共享資料的存取/擁有權。提供寬鬆交易排序同時維持對記憶體位置的對應交易之優先權,以確保資料完整性及有效率的記憶體存取。包括主動功率子狀態及其之設定以允許更有效率之功率管理。並且,提供在主機位址空間中快取裝置本地記憶體,以及在裝置本地記憶體位址空間中快取系統記憶體,以改善記憶體存取之頻寬與潛伏。

Description

PCI Express增強及延伸
本發明有關於互連的領域,詳言之,有關於串列點對點互連的延伸。
電腦系統包括數個構件及元見。經常這些構件透過匯流排或互連耦合。以前,裝置經由稱為周邊構件互連(PCI)的多點下傳(multi-drop)平行匯流排架構來耦合在一起。最近,已開始使用稱為PCI-Express(PCIe)的新一代I/O匯流排來促進利用串列實體層通訊協定之裝置間更快速的互連。
PCIE架構包括分層協定來在裝置間通訊。舉例而言,實體層、鍊結層及交易層形成PCIE協定堆疊。PCIe練結係建立於專用單向串列點對點連結對上,稱為線道(lane)。裝置間的鍊結包括某數量的線道,如一、二、十六、三十二等等。可從http:///www.pcisig.com/specifications/pciexpress/取得目前PCIE規格,基礎規格1.1。
目前,PCIe鍊結與處理器快取及系統記憶體維持一致性(coherency)。例如,至I/O裝置的讀取/寫入未命中快取、擷取參照的元件、執行請求的操作以及接著立刻從快取逐出(evict)元件。換言之,於處理器快取中檢查I/O寫入,但I/O存取並非快取一致。此外,無法快取的MMIO存取並無法快取且亦非一致。因此,I/O存取對系統操作而言代價高,且可能減少處理頻寬。
此外,當I/O裝置操作共享記憶體時,裝置典型上會取得泛系統之鎖定(lock),對共享記憶體執行操作以及接著釋放鎖定。依照此方式取得鎖定可能導致當多個處理元件操作共享資料時資料之串列化與代價高的延遲。微處理器經常提供多線程(thread)之機制來執行原子操作,以避免鎖定帶來的延遲。然而,目前PCIe無法提供直接原子操作共享資料的能力。
此外,裝置以任何順序發出交易,其在某些例子中造成無效率的記憶體存取,如翻跳於記憶體頁面之間。例如,發出參照記憶體的第一頁面中之第一位置的第一交易、參照記憶體的第二頁面中之第二位置的第二交易以及參照記憶體的第一頁面中之第三位置的第三交易。在此,開啟第一頁面以服務第一交易、關閉第一頁面、開啟第二頁面以服務第二交易、關閉第二頁面以及接著必須再次開啟第一頁面來服務第三交易。
隨著裝置/構件變得越來越複雜並且承擔更重的工作負載,功率管理亦變得越來越重要。以前,符合PCIe之 裝置能夠進入複數個功率狀態。然而,功率狀態包括單一主動狀態及複數個不同的「關閉(off)」狀態,亦即裝置消耗不同程度的功率但潛在上無法操作。
100‧‧‧系統
105‧‧‧處理器
106‧‧‧前端匯流排(FSB)
110‧‧‧系統記憶體
115‧‧‧控制器集線器
116‧‧‧記憶體介面
117、121‧‧‧輸入/輸出模組
118、131‧‧‧I/O模組
119、132‧‧‧串列鍊結
120‧‧‧交換器/橋接器
125‧‧‧裝置
130‧‧‧圖形加速器
200‧‧‧分層協定堆疊
205‧‧‧交易層
206‧‧‧封包標頭/酬載
210‧‧‧鍊結層
220‧‧‧實體層
211‧‧‧封包串列識別符
212‧‧‧錯誤偵測碼
221‧‧‧邏輯子區塊
222‧‧‧電性子區塊
223‧‧‧訊框
300‧‧‧交易描述符
302‧‧‧總體識別符欄位
304‧‧‧屬性欄位
306‧‧‧通道識別符欄位
308‧‧‧本地交易識別符欄位
310‧‧‧來源識別符欄位
312‧‧‧優先權欄位
314‧‧‧保留欄位
316‧‧‧順序欄位
318‧‧‧不窺視欄位
321‧‧‧位元設立指令
322‧‧‧位元清除指令
323‧‧‧二的補數加法指令
324‧‧‧加法指令
325‧‧‧調換指令
326‧‧‧測試與調換指令
330‧‧‧第一部分
335‧‧‧第二部分
405、410‧‧‧裝置
406‧‧‧傳輸邏輯
407‧‧‧接收邏輯
415‧‧‧鍊結
416、417‧‧‧傳送路徑
418、419‧‧‧接收路徑
505‧‧‧系統記憶體
507‧‧‧記憶體介面
510‧‧‧控制器集線器
511、521‧‧‧I/O模組
512‧‧‧快取
513‧‧‧提取邏輯
515‧‧‧串列點對點鍊結
520‧‧‧裝置
600‧‧‧表單
605~645‧‧‧線
700‧‧‧表單
705~725‧‧‧項目
800‧‧‧封包
805‧‧‧其他資訊欄位
810‧‧‧ACH欄位
815‧‧‧請求ID
820‧‧‧位址欄位
900‧‧‧預取訊息
905‧‧‧其他資訊
910‧‧‧ACH欄位
915‧‧‧請求者ID
920‧‧‧標籤欄位
925‧‧‧訊息碼
930‧‧‧位址欄位
940‧‧‧預取暗示
941‧‧‧區塊計數欄位
942‧‧‧長度欄位
943‧‧‧跨幅欄位
944‧‧‧方向欄位
1000‧‧‧封包
1005‧‧‧其他資訊
1010‧‧‧ACH欄位
1015‧‧‧請求者ID
1020‧‧‧標籤欄位
1025‧‧‧訊息碼
1030‧‧‧位址欄位
1040‧‧‧預取暗示
1041~1044‧‧‧參數欄位
1200‧‧‧系統
1207‧‧‧資料單元
1206‧‧‧旗號
1210‧‧‧控制器集線器
1211、1221‧‧‧介面
1212‧‧‧偵測/解碼邏輯
1213‧‧‧服務邏輯
1215‧‧‧SP2P鍊結
1220‧‧‧裝置
1222‧‧‧RMW引擎
1225‧‧‧處理器
1226、1227‧‧‧線程
1300‧‧‧封包
1305‧‧‧其他資訊
1310‧‧‧ID
1315‧‧‧標籤
1320‧‧‧訊息碼
1330‧‧‧位址欄位
1400‧‧‧回應訊息
1410‧‧‧完成者ID
1415‧‧‧位元組計數
1420‧‧‧請求者ID
1425‧‧‧標籤
1430‧‧‧較低位址
1605‧‧‧系統記憶體
1606~1608‧‧‧頁面
1610‧‧‧控制器集線器
1611‧‧‧I/O模組
1612‧‧‧重新排序邏輯
1615‧‧‧SP2P互連
1616‧‧‧交易
1617‧‧‧第二順序
1620‧‧‧裝置
1621‧‧‧介面
1805‧‧‧第二儲存元件
1806~1810‧‧‧欄位
1815‧‧‧表
1825~1840‧‧‧行
1850~1861‧‧‧項目
2000‧‧‧系統
2005‧‧‧系統記憶體
2008‧‧‧窗
2009‧‧‧共享/主機記憶體空間
2010‧‧‧控制器集線器
2012、2024‧‧‧窺探過濾器
2015‧‧‧SP2P鍊結
2016‧‧‧記憶體介面
2020‧‧‧裝置
2022‧‧‧本地記憶體
2023、2006‧‧‧部分
2025‧‧‧基礎位址暫存器(BAR)
2100‧‧‧系統
2105‧‧‧系統記憶體
2109‧‧‧記憶體介面
2110‧‧‧控制器集線器
2112‧‧‧窺探過濾器/快取
2111、2121‧‧‧I/O模組
2115‧‧‧SP2P鍊結
2120‧‧‧I/O裝置
2122‧‧‧快取
2125‧‧‧處理器
2126‧‧‧前側匯流排
藉由附圖範例性而非限制性地描繪本發明。
第1圖描繪包括連接電腦系統中之I/O裝置的串列點對點互連的系統之一實施例。
第2圖描繪一分層協定堆疊的一實施例。
第3圖描繪一交易描述符的一實施例。
第4圖描繪一串列點對點鍊結的一實施例。
第5圖描繪一系統之一實施例,其包括經由能夠傳送/接收快取/預取暗示之串列點對點鍊結耦合至控制器集線器的裝置。
第6圖描繪裝置請求存取語意的一表單之一實施例。
第7圖描繪存取控制暗示(ACH)的一表單之一實施例。
第8圖描繪包括ACH欄位的一封包之一實施例。
第9圖描繪包括一預取訊息之一實施例。
第10圖描繪包括ACH欄位及預取暗示之標頭的一實施例。
第11圖描繪用於提供存取控制及/或預取暗示之方法的流程圖之一實施例。
第12圖描繪能夠對共享資料執行原子操作的系統的 一實施例。
第13圖描繪包括指明原子操作之欄位的一封包的一實施例。
第14圖描繪一原子操作回應封包的一實施例。
第15圖描繪用於執行原子操作的流程圖的一實施例。
第16圖描繪能夠重新排序發出之交易以更有效率地存取記憶體的系統之一實施例。
第17圖描繪重新排序交易之流程圖的一實施例。
第18圖描繪一儲存元件的一實施例,以設定功率狀態及表來將功率及性能度量與功率狀態作關聯。
第19圖描繪用於設定裝置中的主動子狀態之方法的流程圖之一實施例。
第20圖描繪一系統之一實施例,其包括映照至主機記憶體空間之本地記憶體的一部分及映照至本地記憶體空間之系統記憶體的一部分。
第21圖描繪包括具有快取之I/O裝置的系統之一實施例。
【發明內容及實施方式】
在下列說明中,提出各種特定細節,如特定互連、特定封裝/訊息、封裝/訊息內的特定欄位及位置、特定邏輯/快取位置、特定快取/預取暗示、特定功率/性能度量等等之範例,以提供本發明之詳盡的理解。然而,對熟悉該項 技藝者明顯地,不需利用這些特定細節來實行本發明。在其他例子中,並未詳述快取邏輯/實施、周邊構件互連快速(PCIe)發信協定、交易中的PCIe欄位/封包及其他PCIe基本實施以避免不必要地模糊本發明。
在此所述之方法及設備係用來延伸/增強串列點對點互連架構。詳言之,主要參照透過PCIe鍊結耦合至控制器集線器/根部控制器的圖形加速器來討論互連增強。然而,用於延伸串列點對點鍊結的方法及設備不如此受限,而可以或聯合任何積體電路裝置加以實施,例如任何輸入/輸出裝置或其他電腦構件,亦可連同任何種類的串列點對點互連加以實施。
串列點對點分層協定鍊結/互連
參照第1圖,描繪包括經由串列鍊結耦合至控制器集線器之裝置的系統之一實施例。系統100包括耦合至控制器集線器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)、南橋及根部控制器/集線器。晶片組一詞經常指兩個實際分開的控制器集線器,亦即耦合至互連控制器集線器(ICH)的記憶體控制器集線器(MCH)。
在此,控制器集線器115透過串列鍊結119耦合至交換器/橋接器120。輸入/輸出模組117及121,其亦可稱為介面/埠117及121,包括/實施分層協定堆疊,以在控制器集線器115與交換器120間提供通訊。可以硬體、軟體、軔體或上述之任何結合實施諸如模組117、118、121、122、126及131的模組。此外,模組界線常有變化並且功能一起實施,亦或在不同實施例分開實施。在一實施例中,多個裝置能夠耦合至交換器120。
交換器120將封包/訊息從裝置125往上游路由至控制器集線器115(亦即往上一個等級至根部控制器)以及從處理器105或系統記憶體110往下游路由至裝置125(亦即自根部控制器往下一個等級)。裝置125包括將耦合至電子系統的任何內部或外部裝置或構件,例如I/O裝置、網路介面控制器(NIC)、擴充卡、音頻處理器、網路處理器、硬碟、儲存裝置、CD/DVD ROM、監視器、印表機、 滑鼠、鍵盤、路由器、可攜式儲存裝置、火線(Firewire)裝置、通用串列匯流排(USB)裝置、掃描器及其他輸入/輸出裝置。
圖形加速器130亦經由串列鍊結132耦合至控制器集線器115。在一實施例中,圖形加速器130耦合至MCH,其則耦合至ICH。交換器120,以及因而I/O裝置125,則耦合至ICH。I/O模組131及118亦實施分層協定堆疊以在圖形加速器及控制器集線器115之間通訊。
茲參照第2圖,描繪一分層協定堆疊的一實施例。分層協定堆疊200包括任何分層的通訊堆疊,如共同標準介面(CSI)堆疊、PCIe堆疊或其他協定堆疊。在一實施例中,協定堆疊200為PCIe協定堆疊,包括交易層205、鍊結層210及實體層220。如第1圖中之介面117、118、121、122、126及131的介面可表示為通訊協定堆疊200。表示成通訊協定亦稱為實施/包括協定堆疊的模組或介面。
交易層
在一實施例中,交易層205係提供裝置之處理核心及互連架構(如資料鍊結層210及實體層220)之間的介面。針對此,交易層205的主要責任為封包(亦即交易層封包或TLP)的組裝與拆解。PCI實施分裂的交易,亦即由時間分隔之請求及回應的交易,以允許鍊結在目標裝置收集供回應的資料時承載其他訊務。
除此之外,PCIe利用基於額度(credit-based)的流量控制。在此方法中,裝置公佈交易層205中接收緩衝器的每一個之初始額度量。在鍊結相對側的外部裝置,如第1圖中的控制器集線器115,計數各TLP所消耗掉的額度數量。若交易未超過額度極限則可傳送此交易。在接收到回應後,可復原額度量。額度方法的一個好處在於額度返回的潛伏不影響性能,只要未達額度極限。
在一實施例中,四個交易位址空間包括組態位址空間、記憶體位址空間、輸入/輸出位址空間及訊息位址空間。記憶體空間交易包括一或更多讀取請求及寫入請求,以傳輸資料至記憶體映照的位置/從記憶體映照的位置傳輸資料。在一實施例中,記憶體空間交易能夠使用兩種不同的位址格式,如短位址格式,例如32位元位址,或長位址格式,例如64位元位址。組態空間交易用來存取PCIe裝置的組態空間。至組態空間的交易包括讀取請求及寫入請求。訊息空間交易(或簡單地訊息)係界定成PCIe媒介間的頻帶內(in-band)通訊。
因此,在一實施例中,交易層205組裝封包標頭/酬載206。封包標頭/酬載的格式可見於PCIe規格中,亦即PCIe基礎規格1.1,可從http://www.pcisig.com/speicifications/pciexpress/取得。
快速參照第3圖,描繪PCIe交易描述符的一實施例。在一實施例中,交易描述符300為用於承載交易資訊的機制。針對此,交易描述符300支援系統中交易的辨 識。其他可能的用途包括追蹤內定交易順序的變更以及將交易與通道關聯。
交易描述符300包括總體識別符欄位302、屬性欄位304及通道識別符欄位306。在所示的範例中,總體識別符欄位302描繪為包含本地交易識別符欄位308及來源識別符欄位310。在一實施例中,所有未決(outstanding)請求的總體識別符欄位302為獨一無二的
根據一實施例,本地交易識別符欄位308為由請求媒介所產生的欄位,並且對所有需要那個請求媒介完成之未決的請求而言為獨一無二的,此外,在此範例中,來源識別符310獨特地識別PCIe等級內之請求者媒介。因此,加上來源ID 310,本地交易識別符308欄位提供等級領域內交易之總體識別。
屬性欄位304指出交易的特徵與關係。針對此,屬性欄位304可能用來提供額外的資訊,已允許交易內定處置的變更。在一實施例中,屬性欄位304包括優先權欄位312、保留欄位314、順序欄位316及不窺視欄位318。在此,可由開始方變更優先權子欄位312,以將優先權分配給交易。保留屬性欄位314保留作為未來供應商界定用。可利用保留的屬性欄位來實施使用優先權或安全屬性之可能的使用模型。
在此範例中,順序屬性欄位316係用來供應非必要的資訊,傳達變更內定順序規則之順序的種類。根據一範例實施例,「0」順序屬性代表將應用內定順序規則,其中 「1」順序屬性代表隨意的順序,其中寫入可通過相同方向中的寫入,以及讀取完成可通過相同方向中的寫入。窺視屬性欄位318用來判斷交易是否被窺視。如所示,通道ID欄位306識別與交易關聯的通道。
鍊結層
鍊結層210,亦稱為資料鏈結層210,作為交易層205及實體層220之間的中間階段。在一實施例中,資料鏈結層210的一項責任為提供用於在兩構件之間交換交易層封包(TLP)的可靠的機制。資料層210的一側接受由交易層205組裝的TLP,施加封包串列識別符211(亦即識別號碼或封包號碼)、計算並施加錯誤偵測碼(亦即CRC 212)以及提交變更過的TLP至實體層220,以透過實體傳送至外部裝置。
實體層
在一實施例中,實體層220包括邏輯子區塊221及電性子區塊222,以實際傳送封包至外部裝置。在此,邏輯子區塊221負責實體層221的「數位」功能。針對此,邏輯子區塊包括傳送區以準備由實體子區塊222傳輸之外出資訊,以及接收器區來辨別及準備接收到的資訊以供後續傳送至鍊結層210。
實體區塊222包括傳送器及接收器。傳送器由邏輯子區塊221提供符號,由傳送器加以串列化並傳送到外部裝 置。接收器則由外部裝置供應串列化符號並將接收到的信號轉變成位元流。在一實施例中,使用8b/10b傳輸碼,其中傳送/接收十位元符號。在此,使用特別符號將封包框上訊框223。此外,在一範例中,接收器亦提供從進入串列流復原的符號時脈。
如上述,雖交易層205、鍊結層210及實體層220係參照PCIe協定堆疊的一特定實施例討論,分層協定堆疊不如此受限。事實上,可包含/實施任何分層協定。舉例而言,表視為分層協定之埠/介面包括:(1)組裝封包的第一層(亦即交易層)、排序封包的第二層(亦即鍊結層)以及傳送封包的第三層(亦即實體層)。作為一特定範例,使用共同標準介面(CSI)分層協定。
接著參照第4圖,描繪PCIe串列點對點鍊結的一實施例。雖描述PCIe串列點對點鍊結的一實施例,串列點對點鍊結並非如此受限,因其包含用於傳輸串列資料的任何傳輸路徑。在所示的實施例中,在電性層級,兩個單向的差動對形成一條線道。因此,裝置405包括傳輸資料至裝置410的傳輸邏輯406以及從裝置410接收資料的接收邏輯407。換言之,兩條傳輸路徑,亦即路徑416及417,以及兩條接收路徑,亦即路徑418及419,係包含於PCIe線道中。
傳輸路徑係指傳輸資料的任何路徑,如傳輸線、銅線、光線、無線通訊通道、紅外線通訊鍊結或其他通訊路徑。兩裝置間的連結,如裝置405及裝置410,稱為鍊 結,如鍊結415。第4圖描繪鍊結415中有單一線道。然而,鍊結中可存在任何數量的線道,如2、4、8、12、16、32、64或更寬。
差動對指兩條傳輸路徑,如線416及417,以傳輸差動信號。舉例而言,當線416從低電壓位準雙態觸變(toggle)至高電壓位準(亦即上升邊緣),線417則從高邏輯位準驅動至低邏輯位準(亦即下降邊緣)。差動信號潛在上呈現較佳電性特徵,如較佳信號完整度,亦即交叉耦合、電壓過衝/下越、振鈴等等。這允許有較佳時間窗,其能導致較快速的傳輸頻率。
快取及預取暗示
參照第5圖,描繪能夠在串列點對點鍊結上傳送/接收快取/預取暗示的系統之一實施例。系統記憶體505經由記憶體介面507耦合至控制器集線器510。系統記憶體505包括任何可由裝置520經由控制器集線器510存取的記憶體,如RAM、NVRAM或其他已知的記憶體裝置。如前述,控制器集線器510包括任何控制器,如MCH、ICH或上述的結合,其常稱為晶片組。在另一實施例中,控制器集線器510為PCIe等級中之根部控制器。
裝置520經由串列點對點鍊結515耦合至控制器集線器510。I/O模組511及521包括,亦即表示為,協定堆疊。在一實施例中,協定堆疊為PCIe協定堆疊並且串列點對點(SP2P)鍊結為SP2P PCIe鍊結。在一實施例中,裝 置520為I/O裝置,如圖形加速器、網路介面控制器(NIC)及擴充卡。
裝置520透過SP2P鍊結515傳輸第一封包,其亦稱為請求、訊息、交易或其他已知的資訊群。在一實施例中,第一封包包括快取暗示及/或預取暗示。在一實施例中,快取暗示,亦稱為存取控制暗示(ACH),潛在包括時間暗示、位置暗示、快取一致性暗示、元件使用意圖暗示或上述之結合,以影響與第一封包所參照之元件關聯的快取策略。根據一實施例,預取暗示包括任何對將取得以作為潛在未來使用之元件的參照。元件包括任何資料、指令、位元群、快取線或儲存於記憶體裝置中的其他已知資訊。
茲參照第6圖,描繪與快取及預取改良關聯之裝置請求存取語意的非詳盡表單的一實施例。本質上,表單600列出範例裝置請求以提供促進有效存取與執行之時間及/或位置快取/預取暗示。於線605中列出基本讀取,以及於線635中列出基本寫入。在一實施例中,基本讀取為正常的基本讀取請求而無快取或預取暗示,以及基本寫入為正常的基本寫入請求而無快取或預取暗示。在一替代實施例中,基本讀取/寫入包括快取暗示。
在線610中,讀與寫之意圖表示裝置有意讀取快取線或複數條快取線,並且接著寫入至快取線或複數條快取線之意圖。於此,有包括快取暗示及/或預取暗示。線615列出要求讀取及有意讀取之預取,其表示裝置有意讀取快 取線的要求部分並之後有意讀取相同的快取線或額外的快取線。同樣地,有包括快取暗示及/或預取暗示。類似地,在線630中,要求寫入與有意寫入之預取表示裝置將寫入快取線的要求部分並之後有意讀取相同的快取線或額外的快取線。
線620包括回寫至記憶體之意圖,亦即,裝置請求從快取逐出快取線並且回寫至記憶體。於此,快取暗示及/或預取暗示係包含在請求/訊息中。線635及640包括直接I/O存取,亦即讀取或寫入,其表示讀取但不快取及/或透過一致組織寫入/直接快取存取。直接存取潛在利用英特爾®加速技術(IOAT)實施而成。有關於英特爾®加速技術(IOAT)的更多資訊可見於http://www.intel.com/technology/ioacceleration/index.htm.
在利用預取暗示訊息的一實施例中,線645列出載有預取資訊及存取控制暗示(ACH)的預取訊息。如上述,表單600為裝置存取請求的一例示表單。任何裝置存取請求潛在上包括/參照快取及/或預取暗示。
茲參照第7圖,描繪將包括在封包、請求及/或訊息中的存取控制暗示(ACH)/快取暗示的一實施例。在所示的實施例中,列出五個ACH:唯讀之意圖、讀取及寫入之意圖、唯寫之意圖、逐出及直接I/O(DIO)存取。其他可能的暗示包括意圖變更暗示、意圖回寫暗示、基本寫入及基本內定暗示。
項目705表示裝置有意僅發出快取線讀取。結果為快 取(如來自第5圖之快取512)可快取被參照的元件。在一實施例中,快取被參照之元件的快取線以獨佔或共享狀態來儲存該元件。在此,快取512能夠將快取線儲存於一致性狀態中,如已變更(Modified)、獨佔(Exclusive)、共享(Shared)或無效(Invalid)(MESI)狀態。
項目710,亦即讀取及寫入意圖之ACH,表示裝置會發出後續讀取及寫入至快取線。在此,提取被參照的元件並將之維持在獨佔狀態中,因其會被變更。相反地,項目715,亦即唯寫之意圖,表示裝置將潛在寫入至快取線。針對此,被參照的快取線維持在獨佔狀態中,但不會提取與該快取線關聯的新元件,因此線會被變更,而非讀取。
雖然任何ACH可為內定的ACH,項目720描繪成此實施例中的內定ACH。在此,逐出ACH表示裝置已完成,亦即,被參照的元件/快取線可被逐出,因裝置近期內不意圖存取該元件/快取線。最後,於項目725中,直接I/O(DIO)ACH表示請求為直接I/O請求,其潛在與IOAT關聯。
如暗示一詞所指,快取或存取控制暗示以請求/訊息提供意圖/暗示來潛在地偏移/影響快取/逐出策略。然而,快取控制邏輯潛在能夠忽略ACH,亦即執行與ACH不一致的快取/逐出操作。此外,由於表單700為非窮舉式表單,影響快取/逐出策略的任何其他位元/訊息可包括而成第一暗示。
參照第8圖,描繪包括快取暗示(亦即ACH)的一封包 之一實施例。封包係指將在匯流排/互連上傳送的任何請求、訊息、存取或其他資訊群。在所示的實施例中,封包800包括其他資訊欄位805。其他資訊805的範例包括保留欄位、格式欄位、類型欄位、屬性欄位、長度欄位、PCIe專用欄位及任何其他協定專用欄位。此外,封包800包括請求ID 815,其可參照請求媒介/裝置並且為總體ID/交易描述符的一部分或包括總體ID/交易描述符,如上述,以及參照位址位置之位址欄位820。
ACH欄位810為封包800中包括對於ACH之參照(亦即快取暗示)的第一部分。如所示,第一部分810包括指示ACH的三位元;然而,可使用任何數量的位元。此外,第一部分810可位在封包800的任何位元、位元組或其他位置中。如下述,第7圖中所列的ACH係由欄位810中不同的預定位元模式來加以代表。例如,位元模式000代表逐出850 ACH,而位元模式011代表讀取與寫入之意圖865 ACH。第一部分欄位810亦可稱為運算碼欄位、訊息碼欄位、類型碼欄位或其他碼欄位。
除了時間的暗示,亦可包括位置快取暗示。例如,ACH欄位810中的一預定位元模式表示一元件將快取於根部控制器快取、裝置快取、系統記憶體快取或處理器快取中。
在一實施例中,封包800為讀取/寫入請求封包,其可為訊息、酬載及/或標頭。詳言之,讀取/寫入請求封包/訊息/標頭為增強/延伸PCIE讀取/寫入請求訊息/標頭。針 對此,ACH位元810可存在於讀取/寫入請求標頭中的任一處。
接著參照第9圖,描繪包括預取暗示之預取封包/訊息之一實施例。如第8圖中,封包900包括其他資訊905、ACH欄位910、請求者ID 915、標籤欄位920、訊息碼925及位址欄位930。此外,於此,預取暗示940亦包括在封包900中。如上述,預取暗示包括偏移/影響額外元件的提取之任何參照或暗示。在一實施例中,預取係指預先讀取並且維持預取的快取線之一致副本之動作。
在一實施例中,預取暗示包括預取參數之任何組合,如計數、長度、跨幅(stride)、偏置及方向。在此範例中,預取暗示包括區塊計數欄位941、長度欄位942、跨幅欄位943以及方向欄位944。如所示,長度欄位941係包括在位址欄位930中,而其餘的欄位係包括在封包/訊息的酬載。然而,欄位941至944可包括在預取訊息900的任一處,包括分散於酬載及標頭之間或完全包或於其中之一中。
作為一例示性的範例,計數區塊欄位941包括五位元,以參照0至31之間的數區塊、區塊長度欄位942包括六位元,以參照預取區塊中0到63之間的數條快取線、跨幅欄位943包括六位元,以參照偏置,亦即介於0及63之間的數條快取線直到下一區塊的起始以及方向欄位944包括至少一位元,以指示將朝上或下的方向作提取。
預取暗示可包括欄位/參數之任何其他組合以參照將預取之額外的元件,如頁面內之區塊數量或交插位元以指示提取額外快取線(亦即元件)的順序。此外,預取訊息/暗示包括某些時間用途指標,以指示何時裝置將發出區塊之請求以影響/偏移根部控制器快取的配置及配置策略。
如上述,預取訊息900包括ACH欄位910。在此,ACH欄位910係儲存與將預取之額外元件(亦即區塊/快取線)關聯的ACH。如上述,位置暗示潛在地指示將在何處快取預取的元件,以及時間暗示ACH指示裝置偏移與額外元件關聯的快取動作之存取意圖。因此,預取封包900,在一實施例中,包括對於一位址的參照,如起始位址或其他位址,預取暗示及存取控制暗示(ACH)。
茲參照第10圖,描繪將快取暗示及預取暗示包括在訊息/封包中的另一實施例。在此,封包1000包括與封包900類似的欄位,如其他資訊欄位1005、ACH欄位1010、請求者ID欄位1015、標籤1020、訊息碼1025及位址1030。然而,位址欄位1030為較小尺寸,而預取暗示1040,具有參數欄位1041至1044,係包括在標頭的位元組12內。在一實施例中,封包1000為包括快取暗示及預取暗示的讀取/寫入請求標頭。
參照回第5圖,如圖形加速器之裝置520包括I/O模組521,其具有協定堆疊以傳送包括快取暗示(亦即ACH)之封包,如參照第6至10圖中所述。在另一實施例中,I/O模組521亦傳送第二封包,如預取訊息或讀取/寫入請 求,包括如第6至10圖中所述之預取暗示。
如MCH之控制器集線器510係經由串列點對點互連515耦合至裝置520。I/O模組511接收第一與第二封包。在一實施例中,控制器集線器亦包括快取512以根據第一封包中的ACH來快取第一元件於MESI快取一致狀態中以及第二預取封包中所參照的額外元件。控制器集線器510亦可包括提取邏輯513,其在一實施例中,係包括在記憶體介面邏輯中,以在ACH指示欲提取額外的元件時提取/預取額外的元件。例如,若ACH代表僅變更之意圖,則無須提取新資料,因新的資料仍會被變更。相反地,若ACH代表讀取之意圖,則提取較新的資料以確保讀取到適當的資料。
因此,快取512主要為彈性緩衝器以管理/管線式處理I/O通量。快取512可表現出寫入快取、寫透式(write through)、及/或寫回式(write back)屬性。然而,快取512並非如此受限,因其可為任何已知形態的快取。雖未圖示,在一實施例中,PCIe等級中的橋接器/交換器能夠傳遞封包/請求及/或訊息,以及路由快取/預取訊息至根部控制器。
參照第11圖,描繪一種用於提供存取控制及/或預取暗示之方法的流程圖之一實施例。在流程1105中,產生包括對於第一元件之參照及第一暗示之第一封包。經由串列點對點(SP2P)鍊結傳送第一封包(如控制器集線器或根部控制器)至第一裝置。在一實施例中,SP2P鍊結為基於 PCIE之鍊結。在流程1110中第一裝置接收第一封包。
在流程1115中,判斷第一封包的種類。在第一實施例中,第一封包為包括ACH的讀取/寫入請求訊息。此讀取/寫入請求訊息亦可包括預取暗示。在另一實施例中,封包為包括預取暗示之預取訊息。可由運算碼欄位、訊息碼欄位或指出封包種類的其他欄位來判斷封包種類。此外,可讀取ACH欄位及/或預取暗示欄位以判斷封包種類。
若封包包括ACH而無預取暗示,若ACH指示欲提取第一元件,則於流程1120中提取第一元件。於流程1125中,根據第一ACH將諸如快取線之第一元件儲存於第一MESI快取一致狀態中。
若訊息為具有ACH及預取暗示的讀取/寫入訊息,則在流程1120及1125之後,流程回到1130。然而,在訊息為預取訊息的一實施例中,流程直接進至流程1130而不會經過區塊1120及1125。
在流程1130中,根據預取暗示判斷欲預取之額外元件或複數個額外元件。預取暗示包括預取參數的任何結合,如起始位址、區塊計數、長度、偏置、跨幅及方向。於流程1135中,預取額外元件。如上述,根據與預取訊息關聯的ACH將額外元件儲存在快取一致狀態中。
原子操作及同步基元
參照第12圖,描繪一種能夠執行原子操作的系統的 一實施例。系統1200透過迅速交換裝置間共享之資料的擁有權而允許有效率的交換狀態資訊及旗號(semaphores)。以前,I/O裝置需取得記憶體中共享位置之泛系統鎖定、在共享位置上執行操作、以及接著釋放鎖定。然而,裝置1220能夠請求原子操作。在一實施例中,原子操作包括對於共享記憶體位置之讀取、變更及寫入(RMW)。在另一實施例中,原子操作包括讀取請求。作為例示性範例,原子操作係操作於4B、8B及16B對齊的資料。
作為另一例示性範例,RMW引擎1222係請求/指定原子操作,亦即對於元資料/旗號的RMW,以獲得資料單元1207的擁有權。資料單元1207包括任何大小的可鎖定資料,從單一位元、單一元件、單一快取線、一區塊的元件/快取線、表或任何其他大小/群集的資料。在一實施例中,RMW引擎1222亦追蹤未決之原子操作。包括分層協定堆疊之介面1221係傳送指定原子操作的封包/訊息至控制器集線器1210。介面1211中的偵測/解碼邏輯1212係偵測原子操作,如經由預定位元模式。服務邏輯1213服務原子操作,亦即至位置120的RMW。回應於完成RMW,控制器集線器1210中的邏輯產生將透過SP2P鍊結1215傳送並由裝置1220接收的回應訊息。針對此,RMW引擎重試未決原子操作的追蹤。
在一實施例中,旗號1206為共享的資料結構,以獲得資料單元1207的擁有權。結果為在處理器1225上執行 的兩條線程,如線程1226及1227,與裝置1220共享對旗號1206的存取,及因而資料單元1207,如雜湊表或其他大小的資料。因此,取代用裝置1220獲得泛系統之鎖定,其會暫停線程1226及1227同時對資料單元1207中的資料操作,並且由控制器集線器1210服務旗號之原子更新。換言之,裝置1220本質上被看待成能夠對共享資料位置執行原子操作的同等線程/處理器。因此,若正確的值存在於旗號位置1206中,則原子性完成至元資料/旗號1206的寫入及位置1206中的值之交換。
參照第13圖,描繪指明原子操作之一封包/請求/訊息的一實施例。封包1300包括任何訊息或請求,如讀取/寫入PCIe請求。如上述參照第8至10圖,任何欄位可包括在封包1300中,如其他資訊1305、ID 1310、標籤1315及位址欄位1330。如上述,ID 1310潛在地包括交易描述符、交易描述符之一部分、獨特交易ID、總體ID、媒介ID、本地ID或上述的組合。由於ID係用來追蹤未決的原子操作,如下述,如裝置1220的裝置可產生多個未決原子操作。
亦包括於封包1300中者為訊息碼1320。訊息碼1320用來指定原子操作。在一實施例中,訊息碼1320為由偵測邏輯(如偵測邏輯1212)辨認/偵測之運算碼。替代地,運算碼欄位包括在封包1300中,如在其他資訊欄位1305中,以辨別請求或訊息,如讀取/寫入請求。在此範例中,訊息碼1320潛在上為偵測/解碼邏輯1212所偵測/解 碼的不同欄位。訊息碼1320亦可稱為類型欄位或其他已知的預定位元欄位。
在一實施例中,訊息碼1320的第二部分335指明一指令以及第一部分330指示此指令是否為原子性。附加至第一部分的第二部分之一例示性範例顯示於第13圖中。於此,若欄位330中的位元包括預定的位元模式011,則原子識別符(AID)欄位330指示在指令欄位335中所參照的指令為原子性。在AID欄位330包括任何其他位元模式的情況中,則判斷關聯的指令並非原子性。指令欄位335識別一指令,如位元設立指令321、位元清除指令322、二的補數加法指令323、加法指令324、調換指令325及測試與調換指令326。
在其中原子操作包括RMW操作的一實施例中,能夠RMW的任何指令可作為原子指令。相反地,在其中原子操作包括讀取的一實施例中,可利用任何讀取指令。因此,第13圖顯示潛在原子操作的一例示性非窮舉表單,其可被變更。在另一實施例中,封包1300包括供應商ID欄位,其潛在地用來識別供應商或允許供應商指定的識別。
快速參照回第12圖,RMW引擎1222請求/指定原子操作。如總體ID、交易ID或其他獨特ID之ID可用來追蹤未決的原子交易。例如,資料結構中諸如佇列、堆疊或鍊結的表單之項目追蹤原子交易的狀態。在一實施例中,RMW引擎1222於發送原子交易前分配原子交易回應 的空間至裝置中,如本地記憶體及/或資料結構。一旦服務(亦即完成)了原子交易,產生並由初始請求裝置(亦即裝置1220)接收回應訊息。回應訊息包括獨特ID,其可用來路由訊息回到裝置1220以及定位/撤退(retire)資料結構中的未決原子交易。
茲參照第14圖,描繪回應訊息的一實施例。同上,回應訊息1400可包括其他資訊1405,如PCIE回應訊息中的其他資訊。此外,回應訊息1400顯示成包括辨別完成媒介之完成者ID 1410、參照位元組計數之位元組計數1415、請求者ID 1420、標籤1425及較低位址1430。與原子交易關聯的一獨特ID係包括在回應1400中。舉例而言,獨特ID包括所示之ID的結合或在所示ID欄位內。然而,獨特ID可位在回應1400中的任一處。舉另一例而言,如上述之交易描述符、交易描述符、總體ID、本地ID或其他ID的一部分係包括在回應1400中。
在一實施例中,回應於服務原子操作而產生回應1400。針對此,連同回應訊息1400返還初始或舊值。舉例而言,原子操作係指定在由圖形加速器產生的讀取寫入請求中。原子操作將在第一記憶體位置上執行RMW。由包括分層協定堆疊的控制器集線器接收此讀取/寫入請求。讀取第一記憶體位置以返還值0、變更值0至1並且將1寫入第一記憶體位置。回應訊息1400包括獨特原子交易ID及舊/初始值0。當由圖形加速器接收回應訊息1400,藉由獨特的原子交易ID而從追蹤該原子交易為未 決的資料結構撤退此回應訊息。
在一實施例中,諸如服務邏輯1213的服務邏輯包括服務原子交易的任何邏輯。例如,服務邏輯包括邏輯以執行從記憶體位置讀取第一值、變更第一值成第二值以及將第二值寫回至第一記憶體位置。RMW亦稱為交換、比較與交換及測試與交換。
接著參照第15圖,描繪執行原子操作的一流程圖的一實施例。於流程1505中,用裝置產生第一封包。第一封包包括對於第一原子操作的參照及獨特交易ID。在一實施例中,裝置包括圖形加速器。此外,對於第一原子操作的參照包括對原子指令(如位元設立、位元清除、二的補數加法、加法、調換及測試與調換)的參照。
在另一實施例中,裝置儲存對獨特交易ID的參照以作追蹤。再者,舉例而言,於發出第一封包前,分配回應訊息的空間至第一封包。接著使用分層協定堆疊經由SP2P鍊結傳送第一封包至控制器集線器。注意到第一封包可經由複數個SP2P鍊結傳送並路由經過橋接器/交換器以到達控制器集線器,如根部控制器集線器。
於流程1510中透過分層協定堆疊用控制器集線器接收第一封包。控制器集線器偵測對原子操作的參照。在一實施例中,一預定位元模式從上述該些原子操作中指定原子操作。於流程1515中,服務該原子操作。在一實施例中,當原子操作包括原子RMW,原子性執行RMW。
接著,於流程1520中,回應於服務了原子操作而產 生回應訊息。於此,回應訊息包括舊的值以及對獨特交易ID的參照。
在一實施例中,舊值為在服務原子操作時所讀取的值。將回應訊係傳送回裝置。針對此,參照原始請求者(亦即裝置)的獨特交易ID潛在地用來路由回應訊息至正確的裝置。
於流程1525中,由該裝置接收回應訊息,並且於流程1530中,根據獨特交易ID撤退原子操作。由於回應訊息指示已服務了與獨特ID關聯之原子操作而主要撤退儲存在裝置中用來追蹤之對於獨特ID的參照。
寬鬆排序
參照第16圖,描繪重新排序交易之一實施例。系統記憶體1605經常邏輯上分割成可存取的頁面以更有效率地管理/存取記憶體。因此,系統記憶體1605顯示成分割成頁面1606至1608。頁面1606包括記憶體位置B及D、頁面1607包括記憶體位置A及頁面1608包括記憶體位置C及E。
裝置1620產生第一數量的交易。經由介面1621中的協定堆疊在SP2P互連1615上傳送交易1616。控制器集線器1610中的I/O模組1611以第一順序接收交易1616。如所示,地一順序中的第二交易參照頁面1606中的記憶體位置B,由B0所示,而第一順序中的第八且為最後一個交易亦參照記憶體位置B,由B1所示。第一順序中的 其他的交易以類似方式表現。
控制器集線器1610亦包括重新排序邏輯1612以將交易1616重新排序成第二順序1617。在一實施例中,重新排序邏輯1612係包括在控制器集線器1610的核心中。然而,重新排序邏輯1612可包含在控制器集線器1610的任一處,包括I/O模組1611。此外,交易1616可在協定堆疊1621中、互連1615上及/或由協定堆疊1611中的邏輯從原始順序重新排序。
至少部分根據維持複數個對應交易之優先權,重新排序邏輯1612將第一數量的交易1616重新排序成第二順序1617,其與第一順序不同。在一實施例中,對應交易包括參照至相同記憶體位置的交易,例如參照至第一記憶體位置之第一交易及第二交易。針對此,A0/A1及B0/B1為對應交易,因其參照至相同的記憶體位置。可用其他因素來判斷對應交易,如串列順序或其他位址技術。
在一實施例中,維持優先權包括不允許在第二順序中將複數個對應交易之第一交易排在該複數個對應交易之第二交易之後,其中第一交易在第一順序中先於第二交易。換言之,不允許複數個對應交易互相超越。或者,不將在第一順序中先於第二交易的第一交易在第二順序中排在第二交易之後。
例如,在第一順序中交易B0在B1前發出,亦即先於B1。在第二順序1617中,不允許B1超越B0,如在第二順序中B0放置在B1之前般所示。從記憶體位置(如記憶體 位置B)的相對角度來看,不能將B1排成在B0存取位置B之前存取位置B。邏輯上,若B1為發生在B0從位置B讀取後對位置B之寫入,若先服務B1,會造成後服務B0的讀取到不正確的資料。
然而,在一實施例中,可使用任何其他因素結合來判斷第二順序,例如對頁面有效率的存取、存取模式、串列定址及服務時間。例如,若逐一執行第一順序,開啟頁面1607來服務交易A0、接著關閉頁面1607、開啟頁面1606來服務交易B0、接著關閉頁面1606、接著開啟頁面1608來服務交易C、接著關閉頁面1608以及再次開啟頁面1606來服務交易D。此無效率的頁面存取可稱為翻跳,當存取在頁面之間交替。
因此,第二順序1617將有效率的頁面存取納入考量,其中開啟頁面1606來服務交易B0、B1及D、關閉頁面1606以及開啟頁面1607來服務交易A0及A1,並接著關閉頁面1607以及開啟頁面1608來服務交易E及C。於此,有效率地存取頁面以節省存取/服務時間。執行/服務交易的服務邏輯亦可包括於控制器集線器1610中。
第17圖描繪一種寬鬆排序之方法的一實施例。於流程1705中,在諸如PCIE鍊結的串列點對點鍊結上接收第一數量的交易。於流程1710中,判斷該複數個交易之第二順序。在一實施例中,第二順序將至少部分根據維持第一數量的交易之複數個交易的優先權。複數個交易對應,亦即它們每一個皆參照第一記憶體位置。
在一實施例中,維持複數個交易的優先權包括不允許在第二順序中將複數個交易的第一交易排在複數個交易的第二交易之後。在此,第一交易在第一順序中先於第二交易,所以第二交易在第二順序中不允許超越第一交易。在一實施例中,第二順序與第一數量的交易接收到時之第一順序不同。此外,在另一實施例中,第二交易亦至少部分根據選自由存取模式、串列定址及服務時間(亦即按照估計或過往的存取要花多久服務交易)組成之群組的額外參數。接著於流程1715中,以第二順序服務交易,亦即執行交易。
性能/功率主動子狀態
茲參照第18圖,描繪與裝置中的性能及功率度量關聯的功率子狀態的一實施例。在一實施例中,表1815儲存與性能及功率度量關聯的功率狀態。在一實施例中,表1815係由裝置中的複數個儲存元件所製成。例如,裝置中12個組態暫存器儲存項目1850至1861。
在一實施例中,功率狀態為主動功率子狀態。於此,在各主動子狀態中,裝置能夠執行I/O工作;然而,各主動子狀態與不同的功率及性能度量關聯而消耗不同程度的功率或以不同性能等級操作。相反地,非主動功率狀態潛在地與不同耗電程度關聯;然而,非主動功率狀態典型包括不同程度的「關閉」,其中I/O裝置不能執行I/O操作或其他主要功能。
在所示範例中,表1815包括四個主動功率子狀態,亦即子狀態1至4。然而,可將任何數量的子狀態(如七個)與表1815中之性能及功率度量關聯。舉例而言,於項目1850中之子狀態1與行1825中小於1μs的過渡潛伏、行1830中之15/16的性能率、行1835中的12V電壓及行1840中的功率25W關聯。注意到第18圖中每一個主動功率子狀態有三個項目,如子狀態1有項目1850至1852。於此,在行1835中12V及3.3V的電壓值代表12V及3.3V兩電壓軌之最大電壓值,而項目1852中表示熱能值。在另一實施例中,每子狀態的一第四項目包括第三電壓軌之第三電壓值。舉例而言,第三軌的第三最大電壓為1.8V。
行1825中所列之過渡潛伏可代表與功率狀態關聯的任何潛伏。過渡潛伏的範例包括自最大功率狀態進入一主動子狀態之過渡潛伏、從該主動子狀態出來進入另一功率狀態的過渡潛伏、從前一個主動子狀態進入該主動子狀態的過渡及從該主動子狀態出來進入下一個主動子狀態的過渡。亦注意到這些值可為相對或絕對者。
例如,在一實施例中,針對項目1856至1858中的主動子狀態三之小於5μs的過渡潛伏代表絕對過渡潛伏。針對此,行1825的欄位代表從主動子狀態3至最大主動子狀態(如子狀態1)或最小子狀態(如4)的過渡潛伏、從主動子狀態3至最大或最小子狀態的過渡潛伏或上述的結合。替代地,如所示,行1825中的欄位代表相對的過渡 潛伏。例如,項目1856至1858向中小於5μs代表從主動子狀態3出來進入主動子狀態2的過渡、進入主動子狀態2從主動子狀態3的過渡或上述之結合的小於5μs的過渡潛伏。
在後敘之範例中,當於子狀態1中時,將欄位1825中的值相加以判斷進入較低主動功率子狀態之過渡的過渡潛伏。舉例而言,從子狀態1至子狀態4的過渡包括<1μs+<5μs+<10ms。相反地,表1815可建構成代表從最小主動功率子狀態(如4)上至最大功率子狀態1的過渡潛伏。在此,項目1859至1861包括從最小低功率狀態之比項目1850至1852更小的過渡潛伏,項目1850至1852包括較高的過渡潛伏。
應注意到某些資料欄位,如行1820、1825及1830中的欄位在一主動子狀態的三個項目內重覆。在一實施例中,這些值為不同者。在另一實施例中,表1815儲存成二維字陣列或其他資料結構以最小化主動子狀態項目之間的重覆欄位。
如上述,表1815,其可由任何資料結構代表,如表單、陣列、二維陣列、多維陣列或其他已知的資料結構,係將性能度量以及潛在地功率度量與主動功率子狀態關聯。功率度量的範例包括:最大電壓值、最小電壓值、絕對電壓值、最大耗電值、最小耗電值及絕對耗電值,以及供應商界定的功率度量。性能度量的範例則包括子狀態性能值、操作頻率值、子狀態操作單元值、子狀態熱能值、 子狀態過渡潛伏值、最大性能的分數值、將變主動之子單元數量、將變主動之管線的分數數量、熱能值、電壓、供應商界定之性能值及裝置界定之性能值。
雖分開表述,功率及性能度量不非總為互斥。例如,若圖形加速器具有四個管線/子單元,指示四管線/子單元有幾個將變主動的性能值亦會影響耗電量,因為1主動管線的耗電量很可能小於4主動管線的耗電量。注意到子單元可包括裝置之任何功能單元,如管線、佇列、邏輯區塊、功能區塊或其他潛在子單元。
亦描繪於第18圖中為第二儲存元件1805。在一實施例中,第二儲存元件1805,以及項目1850至1861,為裝置的組態空間中的組態暫存器。儲存元件1805接收設定/請求/選擇主動功率子狀態之寫入。在另一實施例中,亦潛在地寫入暫存器1805以設定非主動功率狀態。
典型上,從外部媒介或軟體接收寫入。然而,在一實施例中,裝置能夠寫入自己本身的暫存器1805以設定功率狀態。裝置設定功率狀態經常不具優勢,因其典型上沒有系統耗電量的概觀。然而,在一範例中,當請求/設定最大主動功率狀態時,裝置可設定一較低的主動功率狀態,只要過渡潛伏或其他性能/功率度量不嚴重地影響性能。例如,若將請求之子狀態1寫入欄位1806,在此範例中,裝置可在欄位1807中選擇子狀態2,因其比最大主動子狀態消耗更少功率/熱預算。然而,裝置在欄位1807中可能無法選擇主動子狀態四,因<10ms的過渡潛伏 及/或1/16的性能率太低。在另一實施例中,裝置能夠設定任何主動功率子狀態。
然而,更典型地,當諸如欄位1809的中斷欄位設定時,致能來自裝置的中斷請求以請求對主動子狀態的改變。於此,裝置產生中斷以請求主動子狀態的改變。軔體或另一外部媒介困住中斷並寫回至暫存器1805以設定所請求的主動子狀態。在一實施例中,寫回至暫存器1805係將欄位1806設定成所請求的子狀態。在另一實施例中,裝置將請求的子狀態寫入欄位1806中並且寫回設定子狀態選擇欄位1807。
因此,回應於設定子狀態請求欄位1806及/或子狀態選擇欄位1807,裝置則接著藉由設定與欄位1807中選擇的子狀態關聯之功率及性能度量而設定選擇的主動功率子狀態。例如,若子狀態選擇欄位1807設定成主動子狀態2,則設定與子狀態2關聯之項目1835至1855中的度量,如12/16的性能率。如上述,潛伏1808可包括任何過渡潛伏,包括從請求的子狀態至選擇的子狀態或從選擇的子狀態至請求的子狀態之過渡的潛伏。此外,表大小欄位1810可包括數個項目、數個欄位或其他表1815的大小測量。
雖未顯示,系統功率管理模組係用來設定裝置的耗電量極限,其可包括功率管理模組、功率管理控制器或系統中之其他邏輯、軔體或軟體。在一實施例中,耗電量極限至少部分根據下列之任何結合,如系統可得之總功率量、 系統可散逸之總熱量、裝置目前耗電量、裝置目前的主動狀態、裝置的工作負載、來自裝置以改變主動子狀態的中斷請求、裝置目前的操作頻率及裝置中為主動的子單元數量。
針對此,系統功率管理模組了解泛系統之功率及性能問題。例如,系統功率管理模組(SPMM)能夠測量或讀取電源供應器針對系統能夠產生的功率量。根據總功率、裝置(如處理器及I/O裝置)的工作負載及裝置之請求功率狀態,系統功率管理模組設定各裝置的功率/性能消耗極限。若請求超過裝置之設定極限的功率狀態,潛在上拒絕功率狀態改變請求。SPMM亦了解其他系統因素,例如系統終能夠散逸之總熱量。因此,SPMM係寫入儲存元件1805,該寫入參照一主動子狀態,其係根據裝置及/或包括裝置於其中之系統的耗電量及/或熱能極限。
接著參照第19圖,描繪設定裝置中的主動子狀態之方法的流程圖之一實施例。在流程1905中,I/O裝置產生中斷以請求對主動功率子狀態的改變。如上述,中斷可被軔體或其他媒介困住。產生至I/O裝置的寫入以回應於服務該中斷而設定主動功率子狀態。在產生中斷前,可將第一儲存元件中的中斷欄位設立以產生中斷。
於流程1910中,可透過I/O裝置中的分層協定堆疊接收至第一儲存元件的寫入。在一實施例中,第一儲存元件為I/O裝置的組態暫存器空間中的組態暫存器。寫入係根據請求而將第一儲存元件中的一欄位設定成主動子狀態 或另一主動子狀態。在一實施例中,I/O裝置為包括PCIE分層協定堆疊之PCIE裝置。接著,於流程1915中,所請求的主動功率子狀態係儲存於第一儲存元件中。
從第二儲存元件判斷與該主動功率子狀態關聯的度量。在一實施例中,第二儲存元件為I/O裝置的組態暫存器空間中的組態暫存器。作為第一範例,主動子狀態係位在包括第二儲存元件的資料結構中,並且將第二儲存元件中與主動子狀態關聯的度量讀取出來。
在一實施例中,度量為如上述般之性能度量。在另一實施例中,度量為如上述般之功率度量。度量之範例包括頻率、潛伏、過渡潛伏、熱能值、將成為主動之I/O裝置的子單元數量、最大性能的性能百分比以及最大功率的百分比功率值。接著,於流程1925中,回應於將所請求的主動功率子狀態儲存於第一儲存元件中而於I/O裝置中組態度量。主要將功率及性能度量設定成主動功率子狀態值以將I/O裝置設定成該主動功率子狀態。
裝置及共享記憶體窗之快取
在第20圖中,描繪能夠將本地及系統記憶體之部分互相映照成快取的系統之一實施例。系統記憶體2005在此包括任何共享記憶體,如DRAM、NVRAM或其他記憶體裝置。系統記憶體2005典型上可在共享/主機記憶體空間2009中,雖某些部分對主機記憶體空間2009而言為隱形者。
在此,裝置2020可關聯至本地記憶體2022,其可包括SRAM、NVRAM或其他本地記憶體。裝置2020包括I/O裝置,如圖行加速器、擴充卡、網路處理器或其他I/O裝置。本地記憶體2022的部分2023係映照到主機位址空間2009中。因此,其他資源可經由窗2008共享對於裝置2020的本地記憶體2022之存取。
在一實施例中,儲存裝置2020的基礎位址之基礎位址暫存器(BAR)2025係用來將部分2023映照至主機記憶體空間2009中。經常為頁面表的結構,BAR儲存記憶體之邏輯/線性/虛擬觀點之起始位址。例如,BAR包括對於頁面目錄項目(PDE)之參照,該PDE儲存對於頁面表項目(PTE)的參照,該PTE包括一系列的位址/偏置。針對此,BAR儲存對於主機位址空間2009內之位址的參照以含括窗2008。注意到本地記憶體2022的某些部分在系統記憶體空間2009中潛在為隱形者。
在一實施例中,將所映照的本地記憶體窗2008作為本地記憶體2022的快取以增進另一裝置(如系統2000中的處理器)對本地記憶體2022存取時之頻寬及潛伏。因此,從本地記憶體2022提取元件至窗2008,並且潛在地儲存於快取一致性狀態(如MESI狀態)中。諸如系統2000中之處理器的其他裝置經由窗型快取2008存取本地記憶體2022。當請求一元件並且在窗2008中發生命中時,直接提供元件至請求媒介。相反地,若為無命中則從本地記憶體2022提取所請求的元件。
在一實施例中,窗型快取2008係用作為寫回式快取,其中元件係儲存於窗2008中並且隨後寫回至本地記憶體2022。亦可使用其他快取形式/屬性,如寫透式快取。在另一實施例中,窺探過濾器2012係包括在控制器集線器2010中以過濾往返窗型快取2008的窺探以降低記憶體介面2016上及SP2P鍊結2015上的窺探通量。
與映照本地記憶體2022的一部分類似地,在一實施例中,系統記憶體2005的部分2006係映照至本地記憶體2022以作為系統記憶體之加速器快取。在此,由於映照之系統記憶體部分2023操作為窗型快取2023,操作上與窗型I/O快取類似。在一實施例中,窗型快取2023使用寫回式快取記憶體屬性以經由SP2P鍊結2015及記憶體介面2016與系統記憶體2005接介。在一實施例中,將系統記憶體部分2006映照至本地記憶體2023中包括將系統記憶體的一部分2006設定為裝置2020的本地記憶體位址空間邏輯上可見。
在一實施例中,窺探過濾器2024過濾與本地記憶體關聯之第一複數個窺探請求。換言之,窺探過濾器2024追蹤快取在窗型快取2008中之本地記憶體2022的第一線數量,並且過濾掉對於未被快取之本地記憶體2022的第二線數量之窺探。類似地,窺探過濾器2012追蹤快取在窗型快取2023中之系統記憶體2025的第一線數量,並且過濾掉對於未被快取之系統記憶體2025的第二線數量之窺探。
第21圖描繪包括具有快取之I/O裝置的系統之一實施例。系統2100包括任何電子系統,如電腦系統。處理器2125經由前側匯流排(FSB)2126耦合至控制器集線器2110。控制器集線器2110經由記憶體介面2109耦合至系統記憶體2105以及經由SP2P鍊結2115至I/O裝置2120。I/O模組2111及2121實施分層協定堆疊以促進裝置2120及控制器集線器2110之間的通訊。在一實施例中,控制器集線器2110包括快取。例如,控制器集線器2110為包括晶片組快取之晶片組。在一實施例中,有窺探過濾器2112及/或複製於裝置2120中。
由於快取2122在裝置2120中,可有潛在地新請求/交易以支援I/O裝置快取。例如,新的可能之上游請求包括讀取共享以讓快取2122標記某一條線為共享的、讀取現有以取得快照(snapshot)、讀取獨佔以於寫入時將某一條線標記為獨佔或變更狀態。此外,共享或獨佔/變更狀態支援下游窺探無效交易。另外,可支援新的回應,如有/無放棄擁有權之資料的寫回式回應、有/無放棄擁有權之資料的窺探回應及任何MESI狀態的資料回應。
在一實施例中,快取2122呈現寫回及/或寫透式快取屬性。針對此,快取2122及快取2112操作成將系統記憶體2105元件快取於系統2100中的不同位置。因此,可利用如上述般之位置快取暗示來將特定線/元件快取於不同位置以更快速地存取。結果為快取2122中的控制邏輯亦可接收及解譯預取/快取暗示。
此外,諸如快取2122的I/O裝置快取能夠快取除了傳統MESI狀態之外的快取一致性狀態中的線。作為第一範例,快取2122將一條線維持在提取進行中(FIP)狀態,指示提取正在進行中。另一範例包括快照(C)一致性狀態以指示快取線的快照。
裝置2120的範例包括圖形加速器、網路控制器、擴充卡、音頻處理器或其他I/O裝置。I/O裝置2120包括能夠將快取現維持在MESI一致狀態中的快取2122。諸如控制器集線器2110的根部控制器,在一實施例中,維持裝置2120所快取之快取線的目錄。針對此,窺探過濾器2112儲存頁面位址、狀態指標、該頁面之主機實體位址及快取參照線之請求媒介的請求ID。結果為窺探過濾器2112可分割於多個I/O裝置/交換器之中。
如前述,能夠在SP2P互連組織中提供時間及位置快取/預取暗示。詳言之,在PCIe中,提供請求/訊息暗示以更有效率地存取與快取記憶體及預取記憶體供後續執行。此外,包括新訊息碼之延伸/增強允許PCIe裝置執行/請求原子操作。因此得避免I/O裝置代價高昂地鎖定共享記憶體位置,以及藉此仲裁所有資源以有效率地獲得共享資料位置之原子擁有權。
再者,能夠重新排序交易以更有效率地存取頁面表記憶體,同時藉由維持至相同記憶體位置的對應交易的優先權而確保記憶體位置之完整性。由於先前PCIe主要包括一個主動功率狀態及複數個非主動功率狀態,新組態暫存 器及系統功率管理技術可更有效率的管理功率及性能。最後,將裝置本地記憶體映照為主機記憶體空間中的窗型快取,以及反之亦然地,將系統記憶體映照為裝置本地記憶體空間中的第二窗型快取能在處理器及PCIe裝置之間獲得更有效率之潛伏及頻寬存取。
可透過儲存在可由處理元件執行的機器可存取或機器可讀取媒體上之指令或編碼實行上述之方法、軟體、軔體或編碼的實施例。機器可存取/可讀取媒體包括提供(亦即儲存及/或傳送)具有機器(如電腦或電子系統)可讀取之形式的資訊之任何機制。例如,機器可存取媒體包括隨機存取記憶體(RAM),如靜態RAM(SRAM)或動態RAM(DRAM)、ROM、磁性或光性儲存媒體、快閃記憶體裝置、電性、光性、聲音或其他形式的傳播信號(如載波、紅外線信號、數位信號)等等。
在整份說明書中對於「一實施例」的參照意指連同該實施例所描述的特定特徵、結構或特性係包括在本發明的至少一實施例中。因此,在各處出現的「在一實施例中」的詞組並非皆參照相同的實施例。此外,在一或更多實施例中可以任何適當的方式結合特定特徵、結構或特性。
在上述說明書中,已參照特定範例實施例提供詳細說明。然而,很明顯地,可對此作出各種修改與變更而不悖離由所附之申請專利範圍中所提出的本發明之較廣的精神與範疇。依此,說明書及圖示應視為例示性而非限制性。再者,上述實施例的使用及其他範例性語言並非絕對參照 相同的實施例或相同的範例,而可在潛在上參照相同實施例以外亦可參照不同且有區別的實施例。
100‧‧‧系統
105‧‧‧處理器
106‧‧‧前端匯流排(FSB)
110‧‧‧系統記憶體
115‧‧‧控制器集線器
116‧‧‧記憶體介面
117、121‧‧‧輸入/輸出模組
118、131‧‧‧I/O模組
119、132‧‧‧串列鍊結
120‧‧‧交換器/橋接器
125‧‧‧裝置
130‧‧‧圖形加速器

Claims (198)

  1. 一種用以處理封包之設備,該設備包含:輸入/輸出(I/O)模組,用以:透過互連以接收來自一裝置之交易的封包;及識別來自該封包之暗示;其中該暗示係指示與該交易關聯之記憶體中的資料之所欲使用。
  2. 如申請專利範圍第1項之設備,其中該互連包含周邊構件互連快速(PCIe)相容的互連、支援PCIe協定的實體層、共同系統互連(CSI)相容的互連、及支援分層通訊協定的實體層之至少一者。
  3. 如申請專利範圍第1項之設備,其中該設備包含根部控制器且該I/O模組被包括於該根部控制器中。
  4. 如申請專利範圍第3項之設備,其中該根部控制器組態成至少部分地根據該暗示以對該記憶體執行一動作。
  5. 如申請專利範圍第4項之設備,其中該動作被包括於該交易之完成時。
  6. 如申請專利範圍第1項之設備,其中該交易包括該記憶體之讀取請求。
  7. 如申請專利範圍第1項之設備,其中該交易包括該記憶體之寫入請求。
  8. 如申請專利範圍第1項之設備,其中該交易包括對該記憶體之讀取及寫入的請求。
  9. 如申請專利範圍第1項之設備,其中該交易包括標 頭及資料酬載。
  10. 如申請專利範圍第9項之設備,其中該標頭為交易層並包括該暗示。
  11. 如申請專利範圍第1項之設備,其中該記憶體為可從該暗示所識別的。
  12. 如申請專利範圍第1項之設備,其中該記憶體為快取資料。
  13. 如申請專利範圍第1項之設備,其中該暗示被包括於第一請求中,而該所欲使用包含與第二後續請求相關之該資料的潛在使用。
  14. 一種用以處理封包之設備,該設備包含:輸入/輸出(I/O)模組,用以:將暗示插入交易之至少一封包中,其中該暗示係指示與該交易關聯之記憶體中的資料之所欲使用;及透過互連以傳送該封包至一裝置。
  15. 如申請專利範圍第14項之設備,其中該互連包含周邊構件互連快速(PCIe)相容的互連、支援PCIe協定的實體層、共同系統互連(CSI)相容的互連、及支援分層通訊協定的實體層之至少一者。
  16. 如申請專利範圍第14項之設備,其中該暗示被包括於該封包之標頭中。
  17. 如申請專利範圍第14項之設備,其中該封包與該記憶體之請求關聯。
  18. 如申請專利範圍第17項之設備,其中該請求為包 含以下的族群之一者:a)該記憶體之讀取請求;b)該記憶體之寫入請求;及c)該記憶體之讀取及寫入請求。
  19. 一種用以處理封包之設備,該設備包含:一包括輸入/輸出(I/O)模組之根部控制器,該I/O模組係透過周邊構件互連快速(PCIe)相容的互連以接收來自一裝置之封包,其中該I/O模組包括協定堆疊,該協定堆疊包括交易層、鍊結層、及實體層,而該封包包括交易層標頭及資料酬載,且該交易層標頭包括暗示,其中該封包與快取資料之請求關聯,以及該暗示係指示該快取資料之所欲使用且該快取資料可從該暗示所識別。
  20. 一種用以處理封包之方法,該方法包含:定義針對一交易之暗示;及使用周邊構件互連快速(PCIe)相容的互連以傳送該交易中之封包,其中該交易包括記憶體之請求;其中該暗示係指示該記憶體之所欲使用。
  21. 如申請專利範圍第20項之方法,進一步包含執行與該交易關聯之該所欲使用。
  22. 如申請專利範圍第20項之方法,其中該所欲使用未被執行。
  23. 如申請專利範圍第20項之方法,其中該暗示被包括於該交易中所包括之該封包的標頭中。
  24. 如申請專利範圍第23項之方法,其中該標頭為交易層標頭。
  25. 如申請專利範圍第20項之方法,其中該記憶體包括快取資料且該所欲使用相應於該快取資料。
  26. 如申請專利範圍第20項之方法,其中該請求為包含以下的族群之一者:a)該記憶體空間之讀取請求;b)該記憶體空間之寫入讀取請求;及c)該記憶體空間之讀取及寫入請求。
  27. 一種系統,包含:第一裝置;第二裝置,用以:使用周邊構件互連快速(PCIe)相容的互連以接收來自該第一裝置之交易請求,其中該互連包括交易層且該交易請求包括記憶體之請求;及識別該交易請求中所包括之暗示,其中該暗示係指示藉由該第一裝置之該記憶體的所欲使用。
  28. 如申請專利範圍第27項之系統,其中該第二裝置進一步組態成至少部分地根據該暗示以對該記憶體執行一動作。
  29. 如申請專利範圍第27項之系統,其中該第一裝置係使用該互連而通訊地耦合至該第二裝置。
  30. 如申請專利範圍第27項之系統,其中該記憶體包括快取資料。
  31. 如申請專利範圍第27項之系統,其中該第一裝置包含通用串列匯流排(USB)裝置而該第二裝置包含微處理器裝置。
  32. 如申請專利範圍第27項之系統,其中該第一裝置包括第一微控制器裝置而該第二裝置包括第二微控制器裝置。
  33. 一種用以處理封包之設備,該設備包含:邏輯,用以:接收一包括暗示欄位、資料長度欄位、及屬性欄位之封包,其中該封包係透過周邊構件互連快速(PCIe)相容的互連而被接收;及服務該封包以至少部分地根據該暗示欄位之值來識別記憶體之所欲使用。
  34. 如申請專利範圍第33項之設備,其中該暗示欄位之該值係指示該封包中所包括之暗示的存在,其中該暗示係識別該所欲使用。
  35. 如申請專利範圍第33項之設備,其中該暗示欄位、該資料長度欄位、及該屬性欄位被包括於該封包之交易層標頭中。
  36. 如申請專利範圍第35項之設備,其中該暗示欄位係於該標頭之位元組零中。
  37. 如申請專利範圍第33項之設備,其中該屬性欄位包括其包含以下的族群之至少一者:a)優先權欄位; b)順序欄位;及c)不窺視欄位。
  38. 一種用以處理封包之設備,該設備包含:邏輯,用以:產生一包括暗示欄位、資料長度欄位、及屬性欄位之封包,其中該暗示欄位係指示該封包中所包括之暗示的存在,其中該暗示係至少部分地根據該暗示欄位之值來識別記憶體之所欲使用;及透過周邊構件互連快速(PCIe)相容的互連以將該封包傳送至一裝置。
  39. 如申請專利範圍第38項之設備,其中該裝置包括該記憶體。
  40. 如申請專利範圍第38項之設備,其中該暗示欄位、該資料長度欄位、及該屬性欄位被包括於該封包之交易層標頭中。
  41. 如申請專利範圍第40項之設備,其中該暗示欄位係於該標頭之位元組零中。
  42. 如申請專利範圍第38項之設備,其中該屬性欄位包括其包含以下的族群之至少一者:a)優先權欄位;b)順序欄位;及c)不窺視欄位。
  43. 一種用以處理封包之設備,該設備包含:輸入/輸出(I/O)元件,用以: 透過互連以接收來自一裝置之交易的封包;識別來自該封包之對資料單元的原子操作請求;及服務該原子操作請求。
  44. 如申請專利範圍第43項之設備,其中該互連包含周邊構件互連快速(PCIe)相容的互連、支援PCIe協定的實體層、共同系統互連(CSI)相容的互連、及支援分層通訊協定的實體層之至少一者。
  45. 如申請專利範圍第43項之設備,其中該I/O元件包括一分層的協定堆疊,其包括交易層、鍊結層、及實體層。
  46. 如申請專利範圍第43項之設備,其中該設備包含根部控制器。
  47. 如申請專利範圍第43項之設備,其中該I/O元件係回應於至少部分地根據該原子操作請求之服務的該接收封包而傳送一完成訊息。
  48. 如申請專利範圍第47項之設備,其中該完成訊息在該原子操作請求之服務前識別該特定資料單元之值。
  49. 如申請專利範圍第43項之設備,其中該原子操作請求係用於對該特定資料單元之讀取-變更-寫入原子操作。
  50. 如申請專利範圍第49項之設備,其中該原子操作包括對該特定資料單元之值執行二的補數加法。
  51. 如申請專利範圍第49項之設備,其中該原子操作 包括對該特定資料單元之值執行調換。
  52. 如申請專利範圍第49項之設備,其中該原子操作包括對該特定資料單元之值執行條件性調換。
  53. 如申請專利範圍第43項之設備,其中該封包包括交易層封包標頭。
  54. 如申請專利範圍第53項之設備,其中該封包標頭識別該原子操作請求之原子操作類型。
  55. 如申請專利範圍第54項之設備,其中該原子操作類型為包括以下的族群之一者:a)二的補數加法;b)調換;及c)測試與調換。
  56. 如申請專利範圍第54項之設備,其中該封包識別該特定資料單元之位址資訊。
  57. 一種用以處理封包之設備,該設備包含:輸入/輸出(I/O)元件,用以:產生對特定資料單元之原子操作請求,其中產生該原子操作請求包括設定該請求中所包括之封包的屬性值,該屬性值係用以識別該請求包括一原子操作請求;及透過互連以傳送該封包。
  58. 如申請專利範圍第57項之設備,其中該互連包含周邊構件互連快速(PCIe)相容的互連、支援PCIe協定的實體層、共同系統互連(CSI)相容的互連、及支援分層通訊協定的實體層之至少一者。
  59. 如申請專利範圍第57項之設備,其中該屬性值係識別該原子操作請求之類型。
  60. 如申請專利範圍第59項之設備,其中該原子操作類型為包括以下的族群之一者:a)二的補數加法;b)調換;及c)測試與調換。
  61. 如申請專利範圍第57項之設備,其中該屬性將被設定於該封包之交易層封包標頭中。
  62. 一種用以處理封包之設備,該設備包含:邏輯,用以:接收一包括類型欄位之封包,其中該封包係透過周邊構件互連快速(PCIe)相容的互連而被接收,且該類型欄位之值係指示該封包是否相應於針對原子操作之請求;及至少部分地根據該類型欄位之該值以識別該封包係相應於原子操作請求之特定類型;及服務該原子操作請求之該特定類型。
  63. 如申請專利範圍第62項之設備,其中該類型欄位被包括於該封包之交易層標頭中。
  64. 如申請專利範圍第63項之設備,其中該交易層標頭進一步包括位址欄位及請求者識別符欄位。
  65. 如申請專利範圍第62項之設備,其中該類型欄位識別所請求的操作之類型。
  66. 如申請專利範圍第65項之設備,其中該類型為包含以下的族群之一者:a)位元設定操作;b)位元清除操作;c)二的補數加法操作;d)加法操作;e)調換操作;及f)測試與調換操作。
  67. 一種用以處理封包之設備,該設備包含:邏輯,用以:產生一包括類型欄位之封包,其中產生該封包包括設定該類型欄位之值以指示該封包係相應於針對特定類型之原子操作的請求;及透過周邊構件互連快速(PCIe)相容的互連而傳送該封包至另一裝置以服務該請求。
  68. 如申請專利範圍第67項之設備,其中該類型欄位被包括於該封包之交易層標頭中。
  69. 如申請專利範圍第68項之設備,其中該交易層標頭進一步包括位址欄位及請求者識別符欄位。
  70. 如申請專利範圍第67項之設備,其中該類型為包含以下的族群之一者:a)位元設定操作;b)位元清除操作;c)二的補數加法操作; d)加法操作;e)調換操作;及f)測試與調換操作。
  71. 一種用以處理封包之設備,該設備包含:根部控制器,組態成透過周邊構件互連快速(PCIe)相容的互連以接收來自一裝置之封包,其中該根部控制器包括一I/O模組,其包括交易層、鍊結層、及實體層,而該封包包括交易層標頭及資料酬載,且該交易層標頭包括對特定資料單元之特定類型的讀取-變更-寫入之請求,其中該根部控制器係存取該封包中之資料以識別該請求之該特定類型並服務該請求,及其中該封包包括該資料單元之位址資訊。
  72. 一種用以處理封包之方法,該方法包含:透過周邊構件互連快速(PCIe)相容的互連以接收封包;解碼該封包以識別對資料單元之原子操作請求;及服務該原子操作請求。
  73. 如申請專利範圍第72項之方法,服務該原子操作請求包括:讀取該資料單元之第一值;將第二、新的值寫至該資料單元;及於一回應中回覆該資料單元之該第一值至該裝置。
  74. 如申請專利範圍第73項之方法,其中該回應包括一傳送至該裝置之完成訊息,其指示該原子操作請求已被 服務。
  75. 如申請專利範圍第72項之方法,其中解碼該封包包括從該封包之標頭中的識別符識別該封包包括原子操作。
  76. 如申請專利範圍第75項之方法,其中該標頭包括該原子操作之類型的識別符。
  77. 一種系統,包含:第一輸入/輸出(I/O)裝置;記憶體元件;及通訊地耦合至該第一I/O裝置之第二I/O裝置,其中該第二I/O裝置係用以:透過周邊構件互連快速(PCIe)相容的互連以於一交易中接收來自該第一I/O裝置之封包;解碼該封包以識別對該記憶體元件上所儲存之資料單元的原子操作請求;服務該原子操作請求;及根據該原子操作請求之服務以回覆一回應至該第一I/O裝置。
  78. 如申請專利範圍第77項之系統,其中該第一I/O裝置係用以:產生該原子操作請求,其中該原子操作請求識別複數可用的原子操作類型之一;及接收來自該第二I/O裝置之該回應,其中該回應包括在該原子操作請求之服務前的該資料單元之值的識別。
  79. 如申請專利範圍第77項之系統,其中該記憶體元件包括該第二I/O裝置之主機記憶體。
  80. 如申請專利範圍第79項之系統,其中該第一I/O裝置被包括於根部控制器中,且該根部控制器與該第二I/O裝置係使用該互連而被通訊地耦合。
  81. 如申請專利範圍第80項之系統,其中該根部控制器係透過周邊構件互連快速(PCIe)相容的互連而被通訊地耦合至包括該第二I/O裝置之複數端點裝置。
  82. 如申請專利範圍第81項之系統,其中該根部控制器被耦合至至少一微控制器。
  83. 如申請專利範圍第77項之系統,其中該記憶體元件為該系統之共享記憶體。
  84. 一種用以處理封包之設備,該設備包含:輸入/輸出(I/O)元件,用以:透過周邊構件互連快速(PCIe)相容的互連以接收複數交易,其中該些複數交易將被接收以第一順序;識別該些複數交易之至少一者中所包括的寬鬆排序值;及至少部分地根據該寬鬆排序值以將該些複數交易重新排序為第二、不同的順序,其中該些複數交易之一特定交易於該第一順序中是在該些複數交易之另一者前且於該第二順序中在該另一交易後。
  85. 如申請專利範圍第84項之設備,其中該特定交易與該另一交易之至少一者包括原子操作。
  86. 如申請專利範圍第84項之設備,其中該些複數交易將依據該第二順序而完成。
  87. 如申請專利範圍第84項之設備,其中該I/O元件被包括於該設備之根部控制器中。
  88. 如申請專利範圍第84項之設備,其中該些複數交易將被重新排序於該互連上。
  89. 如申請專利範圍第84項之設備,其中排序規則要求其在該第一順序中超越第二交易之第一交易的優先權被維持在第二順序中。
  90. 如申請專利範圍第89項之設備,其中該第一交易包含特定記憶體位置之讀取請求而該第二交易包含該特定記憶體位置之寫入請求。
  91. 如申請專利範圍第84項之設備,其中該些複數交易將依據該第二順序而完成。
  92. 如申請專利範圍第91項之設備,其中該些複數交易包括記憶體寫入請求、記憶體讀取請求、訊息請求、I/O讀取請求、及I/O寫入請求之一者或更多。
  93. 如申請專利範圍第84項之設備,其中該寬鬆排序值包含該些複數交易中所包括之至少一封包的寬鬆排序標頭欄位之值。
  94. 如申請專利範圍第93項之設備,其中該寬鬆排序標頭欄位包含單一位元。
  95. 一種用以處理封包之設備,該設備包含:輸入/輸出(I/O)元件,用以: 產生將包括於複數交易中之封包,以包括一寬鬆排序值來指示其寬鬆排序適用於該些複數交易之一特定交易;透過周邊構件互連快速(PCIe)相容的互連以傳送該封包,其中該些複數交易將被傳送以第一順序且該寬鬆排序值容許該些複數交易依據第二、不同的順序而被完成。
  96. 如申請專利範圍第95項之設備,其中該封包為該特定交易之封包,而該特定交易於該第一順序中是在該些複數交易之另一者前且於該第二順序中在該另一交易後。
  97. 如申請專利範圍第95項之設備,其中該重新排序增進該些複數交易之至少一子集的完成效率。
  98. 如申請專利範圍第97項之設備,其中該重新排序造成該交易子集依據由該交易子集所對準之記憶體的依序定址而被排序。
  99. 如申請專利範圍第97項之設備,其中該重新排序造成用以完成該交易子集之服務時間的減少。
  100. 如申請專利範圍第97項之設備,其中該重新排序減輕該互連上之壅塞。
  101. 如申請專利範圍第95項之設備,其中該寬鬆排序值為該封包之標頭中所包括之寬鬆排序欄位的值。
  102. 一種用以處理封包之設備,該設備包含:根部控制器,組態成:透過點對點周邊構件互連快速(PCIe)相容的互連 以接收複數交易,其中該根部控制器包括一輸入/輸出(I/O)模組,其包括一包括交易層、鍊結層、及實體層之協定堆疊,而該些複數交易包括交易層封包,其各包括交易層標頭,及其中該些複數交易將被接收以第一順序且該些複數交易之一特定交易於該第一順序中是在該些複數交易之另一者後,至少部分地根據該特定交易之排序屬性欄位的值而識別其寬鬆排序適用於該特定交易,其中該排序屬性欄位包含單一位元;及重新排序該些複數交易中之至少該特定交易,其中該些複數交易於該重新排序之後為不同的第二順序,該特定交易於該第二順序中是在該另一交易前,且該重新排序容許該特定交易在該另一交易之前被完成。
  103. 如申請專利範圍第102項之設備,其中該寬鬆排序係容許以下之至少一者:a)該特定交易之接收到的寫入請求超過該另一交易中之接收到的寫入請求;及b)該特定交易之接收到的讀取請求超過該另一交易中之接收到的讀取請求。
  104. 一種用以處理封包之方法,該方法包含:透過周邊構件互連快速(PCIe)相容的互連以接收複數交易,其中該些複數交易被接收以第一順序;及識別該些複數交易之至少一者中所包括的寬鬆排序值;及 至少部分地根據該寬鬆排序值以將該些複數交易重新排序為第二、不同的順序,其中該些複數交易在該重新排序之後為第二順序。
  105. 如申請專利範圍第104項之方法,進一步包含造成該些複數交易依據該第二順序而被完成。
  106. 如申請專利範圍第104項之方法,其中該寬鬆排序值被包括於該些複數交易之至少一特定交易中,該方法進一步包含識別其寬鬆排序適用於該特定交易,其中該第二順序是至少部分地根據該特定交易之該重新排序。
  107. 如申請專利範圍第106項之方法,其中該寬鬆排序值被包括於該特定交易之至少一封包標頭中。
  108. 一種系統,包含:第一裝置;第二裝置,包括由至少一處理器所執行之輸入/輸出(I/O)模組,用以:透過周邊構件互連快速(PCIe)相容的互連以接收複數交易,其中該些複數交易被接收以第一順序且該些交易之至少一者係由該第一裝置所請求;識別該些複數交易之至少一者中所包括的寬鬆排序值;至少部分地根據該寬鬆排序值以將該些複數交易重新排序為第二、不同的順序,其中該些複數交易在該重新排序之後為第二順序;及造成該些複數交易依據該第二順序而被完成。
  109. 如申請專利範圍第108項之系統,其中該第一裝置係使用該互連而被通訊耦合至該第二裝置。
  110. 如申請專利範圍第108項之系統,其中該第一裝置包含根部控制器集線器。
  111. 一種用以處理封包之設備,該設備包含:輸入/輸出(I/O)元件,用以:透過周邊構件互連快速(PCIe)相容的互連以接收來自一裝置之交易的封包;從該封包識別有關快取一致性管理之快取一致性屬性,該快取一致性管理係與該交易關聯;及造成該交易至少部分地根據該快取一致性屬性而被完成。
  112. 如申請專利範圍第111項之設備,其中該交易包括對共享記憶體之請求。
  113. 如申請專利範圍第112項之設備,其中該共享記憶體為快取記憶體。
  114. 如申請專利範圍第113項之設備,其中該共享記憶體為系統快取。
  115. 如申請專利範圍第113項之設備,其中該共享記憶體為裝置之本地快取。
  116. 如申請專利範圍第111項之設備,其中該快取一致性管理包括一或更多共享記憶體位置之窺視請求。
  117. 如申請專利範圍第116項之設備,其中該快取一致性管理進一步包括該窺視請求之過濾。
  118. 如申請專利範圍第117項之設備,其中該一或更多共享記憶體位置包括第一及第二共享記憶體位置,該交易包括對該第一共享記憶體位置之請求,且該快取一致性屬性係指示其相應於該請求之窺視請求應被過濾。
  119. 如申請專利範圍第118項之設備,其中該第二共享記憶體位置之該窺視請求不被過濾。
  120. 如申請專利範圍第118項之設備,其中該快取一致性屬性被包括於該封包之交易層標頭的屬性欄位中。
  121. 如申請專利範圍第111項之設備,其中該I/O元件被包括於該設備之根部控制器中。
  122. 如申請專利範圍第111項之設備,其中該交易包括原子操作。
  123. 一種用以處理封包之設備,該設備包含:一包括輸入/輸出(I/O)模組之根部控制器,組態成:透過點對點周邊構件互連快速(PCIe)相容的互連以接收來自一裝置之交易的封包,其中該I/O模組包括協定堆疊,該協定堆疊包括交易層、鍊結層、及實體層,該封包為包括交易描述符之交易層封包,該交易描述符包括不窺視欄位,且該交易涉及對共享記憶體之請求;從該不窺視欄位識別窺視過濾是否適用於窺視其由該交易所影響之共享記憶體的請求;及造成快取一致性管理與該交易關聯並至少部分地根據該不窺視欄位而被實行。
  124. 一種用以處理封包之方法,該方法包含: 透過點對點周邊構件互連快速(PCIe)相容的互連以接收來自一裝置之交易的封包;從該封包識別快取一致性屬性,該快取一致性屬性係有關相應於該交易之快取一致性管理;及造成該交易至少部分地根據該快取一致性屬性而被完成。
  125. 如申請專利範圍第124項之方法,其中該快取一致性屬性指示其窺視過濾是否適用於該交易。
  126. 如申請專利範圍第125項之方法,進一步包含至少部分地根據該快取一致性屬性以過濾窺視請求。
  127. 如申請專利範圍第124項之方法,其中該封包被包括於該交易中對快取之請求中。
  128. 一種用以處理封包之方法,該方法包含:設定有關快取一致性管理之快取一致性屬性的值,該快取一致性管理係與一交易關聯;造成該快取一致性屬性被包括於該交易之封包中;及透過周邊構件互連快速(PCIe)相容的互連以傳送該封包至一裝置。
  129. 如申請專利範圍第128項之方法,其中該快取一致性屬性被包括於該封包之交易層標頭中。
  130. 如申請專利範圍第129項之方法,其中該快取一致性屬性包括不窺視欄位。
  131. 如申請專利範圍第130項之方法,其中該不窺視欄位指示其窺視請求是否應與該交易關聯而被過濾。
  132. 一種系統,包含:第一裝置;第二裝置,包括由至少一處理器所執行之輸入/輸出(I/O)模組,用以:透過周邊構件互連快速(PCIe)相容的互連以接收交易之封包;從該封包識別有關快取一致性管理之快取一致性屬性,該快取一致性管理係與該交易關聯;及造成該交易至少部分地根據該快取一致性屬性而被完成。
  133. 如申請專利範圍第132項之系統,其中該第一裝置係使用該互連而被通訊耦合至該第二裝置。
  134. 如申請專利範圍第132項之系統,其中該第一裝置包含根部控制器集線器。
  135. 如申請專利範圍第132項之系統,其中該第二裝置包含快取且該封包被包括於由該第一裝置之該快取的請求中。
  136. 如申請專利範圍第132項之系統,其中該第二裝置進一步可操作以:設定有關快取一致性管理之快取一致性屬性值,該快取一致性管理係與另一交易關聯;造成該快取一致性屬性值被包括於該另一交易之封包中;及透過周邊構件互連快速(PCIe)相容的互連以傳送該另 一交易之該封包至另一裝置。
  137. 一種用以處理封包之設備,該設備包含:輸入/輸出(I/O)元件,用以:透過互連以接收來自一裝置之封包;從該封包識別一暗示,其中該暗示係指示一與交易關聯之記憶體中的資料之所欲使用;及至少部分地根據該暗示以起始該資料之預取。
  138. 如申請專利範圍第137項之設備,其中該互連包含實體層、支援周邊構件互連快速(PCIe)協定層之實體層、包括一或更多協定之實體層的至少一者。
  139. 如申請專利範圍第137項之設備,其中該互連包含周邊構件互連快速(PCIe)相容的互連。
  140. 如申請專利範圍第137項之設備,其中該設備包含根部控制器且輸送層被包括於該根部控制器中。
  141. 如申請專利範圍第137項之設備,其中該封包與該記憶體之第一請求關聯,且該預取資料被使用於該記憶體之後續請求中。
  142. 如申請專利範圍第137項之設備,其中該裝置為包含裝置之族群的一選定者,該族群由以下所組成:a)處理元件;b)微處理器;c)根部控制器;d)開關;e)控制器集線器; f)圖形加速器;及g)輸入/輸出(I/O)裝置。
  143. 如申請專利範圍第137項之設備,其中該交易包括該記憶體之讀取請求。
  144. 如申請專利範圍第137項之設備,其中該交易包括該記憶體之寫入請求。
  145. 如申請專利範圍第137項之設備,其中該交易包括對該記憶體之讀取及寫入請求。
  146. 如申請專利範圍第137項之設備,其中該封包包括標頭及資料酬載。
  147. 如申請專利範圍第146項之設備,其中該標頭為交易層標頭並包括一暗示欄位,其指示該暗示被包括於該封包中。
  148. 如申請專利範圍第137項之設備,其中該記憶體為從該暗示可識別的。
  149. 如申請專利範圍第137項之設備,其中該I/O模組進一步組態成預取該資料。
  150. 一種用以處理封包之設備,該設備包含:輸入/輸出(I/O)模組,用以:將一暗示插入交易之至少一封包中,其中該暗示係指示一與該交易關聯之記憶體中的資料之潛在未來使用;及透過互連以傳送該封包至一裝置,其中該裝置至少部分地根據該暗示以預取該資料。
  151. 如申請專利範圍第150項之設備,其中該互連包含實體層、支援周邊構件互連快速(PCIe)協定層之實體層、包括一或更多協定之實體層的至少一者。
  152. 如申請專利範圍第150項之設備,其中該互連包含周邊構件互連快速(PCIe)相容的互連。
  153. 如申請專利範圍第150項之設備,其中該暗示被包括於該封包之標頭中。
  154. 如申請專利範圍第153項之設備,其中該標頭包括暗示欄位,其指示該封包中之該暗示的存在。
  155. 如申請專利範圍第154項之設備,其中該封包標頭進一步包括資料長度欄位、及屬性欄位。
  156. 如申請專利範圍第150項之設備,其中該封包係與該記憶體之請求關聯。
  157. 如申請專利範圍第150項之設備,其中該請求為包含以下之族群的一者:a)該記憶體之讀取請求;b)該記憶體之寫入請求;及c)該記憶體之讀取和寫入請求。
  158. 如申請專利範圍第150項之設備,其中該交易包括第一請求且該I/O模組進一步組態成傳送一對準該預取資料之第二請求。
  159. 一種用以處理封包之設備,該設備包含:根部控制器,用以:透過周邊構件互連快速(PCIe)相容的互連以接收 封包,其中輸入/輸出(I/O)模組包括一包括交易層、鍊結層、及實體層之協定堆疊,而該封包包括交易層標頭且該交易層標頭包括暗示;及至少部分地根據該暗示以起始資料元件之預取,其中該封包係指示將被預取之資料量以及與該資料元件關聯之可預取記憶體的位址資訊。
  160. 一種用以處理封包之方法,該方法包含:透過周邊構件互連快速(PCIe)相容的互連以接收來自一裝置之封包;從該封包識別一暗示,其中該暗示係指示與一交易關聯之記憶體中的資料之所欲使用;及至少部分地根據該暗示以起始該資料之預取。
  161. 如申請專利範圍第160項之方法,其中起始預取包括預取該資料以供由後續請求之潛在存取。
  162. 如申請專利範圍第160項之方法,其中該所欲使用不被執行。
  163. 如申請專利範圍第160項之方法,其中該暗示被包括於該交易中所包括之該封包的標頭中。
  164. 如申請專利範圍第163項之方法,其中該標頭為交易層標頭。
  165. 如申請專利範圍第160項之方法,其中該請求為包含以下之族群的一者:a)該記憶體之讀取請求;b)該記憶體之寫入請求;及 c)該記憶體之讀取和寫入請求。
  166. 一種系統,包含:第一計算裝置;第二計算裝置,用以:透過周邊構件互連快速(PCIe)相容的互連以接收來自該第一計算裝置之封包;從該封包識別一暗示,其中該暗示係指示一與交易關聯之記憶體中的資料之所欲使用;及至少部分地根據該暗示以起始該資料之預取。
  167. 如申請專利範圍第166項之系統,其中該第二計算裝置進一步組態成至少部分地根據該暗示以預取該資料。
  168. 如申請專利範圍第166項之系統,其中該第一計算裝置係使用該互連而通訊地耦合至該第二計算裝置。
  169. 如申請專利範圍第166項之系統,進一步包含該第二計算裝置,其中該第一計算裝置包括通用串列匯流排(USB)裝置而該第二計算裝置包括微處理器裝置。
  170. 如申請專利範圍第166項之系統,其中該第一計算裝置包括互連控制器集線器。
  171. 如申請專利範圍第166項之系統,其中該第一計算裝置包括第一微控制器而該第二計算裝置包括第二微控制器。
  172. 一種用以處理封包之設備,該設備包含:橋接器,用以透過互連而接收一交易,該橋接器組態 成從該交易識別預取參數並組態成至少部分地根據該預取參數以起始將被預取之資料元件。
  173. 如申請專利範圍第172項之設備,其中該互連包含周邊構件互連快速(PCIe)相容的互連、支援PCIe協定的實體層、共同系統互連(CSI)相容的互連、及支援分層通訊協定的實體層之至少一者。
  174. 如申請專利範圍第172項之設備,其中該預取參數係指示欲讀取該資料元件之意圖。
  175. 如申請專利範圍第172項之設備,其中該裝置為裝置之族群的一選定者,該族群由以下所組成:a)處理元件;b)微處理器;c)根部控制器;d)開關;e)控制器集線器;f)圖形加速器;及g)輸入/輸出(I/O)裝置。
  176. 如申請專利範圍第172項之設備,其中該橋接器亦將該交易發送至另一裝置。
  177. 如申請專利範圍第172項之設備,其中該橋接器係從該預取參數判定應預取之資料量。
  178. 如申請專利範圍第177項之設備,其中該預取參數係識別待預取之資料元件的計數。
  179. 如申請專利範圍第178項之設備,其中該預取參 數係識別待預取之複數資料元件,而該橋接器係起始待預取之該些複數資料元件。
  180. 如申請專利範圍第172項之設備,其中該預取參數係識別待預取之該資料元件的位址資訊。
  181. 如申請專利範圍第180項之設備,其中該位址資訊包括可預取記憶體之開始位址。
  182. 如申請專利範圍第180項之設備,其中該位址資訊包括可預取記憶體之結束位址。
  183. 如申請專利範圍第172項之設備,其中該橋接器包括一預取模組,用以產生請求供傳遞給另一裝置之預取請求。
  184. 如申請專利範圍第183項之設備,其中該預取模組亦產生複數同時預取讀取請求。
  185. 如申請專利範圍第172項之設備,其中該橋接器包括一I/O模組,且該I/O模組包括一包括交易層、鍊結層、及實體層之協定堆疊。
  186. 一種用以處理封包之設備,該設備包含:包括輸入/輸出(I/O)模組之橋接器,組態成透過周邊構件互連快速(PCIe)相容的互連以接收來自一裝置之交易,其中該I/O模組包括一包括交易層、鍊結層、及實體層之協定堆疊,該橋接器係從該交易識別預取參數並進一步包括預取模組,用以至少部分地根據該預取參數而產生預取請求,其中該預取請求起始待預取之資料元件,且該預取參數包括待預取之資料量以及與該資料元件關聯之可 預取記憶體的位址資訊。
  187. 一種用以處理封包之方法,該方法包含:在橋接器之互連上接收一交易,其中該交易包括預取參數;及至少部分地根據該預取參數以起始待預取之資料元件。
  188. 如申請專利範圍第187項之設備,其中該互連包含周邊構件互連快速(PCIe)相容的互連、支援PCIe協定的實體層、共同系統互連(CSI)相容的互連、及支援分層通訊協定的實體層之至少一者。
  189. 如申請專利範圍第187項之設備,其中該預取參數包括該資料元件之可預取記憶體。
  190. 如申請專利範圍第187項之設備,其中該預取參數係識別包括該資料元件之複數資料元件,且該些複數資料元件被預取。
  191. 如申請專利範圍第187項之設備,其中該預取參數係指示記憶體讀取交易且該資料元件係針對該記憶體讀取交易而被預取。
  192. 如申請專利範圍第191項之設備,其中該記憶體讀取交易包含上游記憶體讀取交易。
  193. 如申請專利範圍第187項之設備,進一步包含:至少部分地根據該預取參數以產生預取請求;及傳遞該預取請求至下游裝置,其中該傳遞之預取請求係使用該下游裝置以起始該資料元件之預取。
  194. 一種系統,包含:第一裝置;橋接器,通訊地耦合至該第一裝置,用以:於周邊構件互連快速(PCIe)相容的互連上接收來自該第一裝置之交易;至少部分地根據該預取參數以產生預取請求,其中該預取請求係起始待預取之資料元件;及傳遞該預取請求至第二裝置。
  195. 如申請專利範圍第194項之系統,進一步包含該第二裝置,其中該第一裝置包括通用串列匯流排(USB)裝置而該第二裝置包括微處理器裝置。
  196. 如申請專利範圍第194項之系統,其中該第一裝置包括互連控制器集線器(ICH),其中該交易係由該橋接器從該ICH所接收。
  197. 如申請專利範圍第194項之系統,進一步包含該第二裝置,其中該第一裝置包括第一微控制器而該第二裝置包括第二微控制器,以及該交易被接收自該第一微控制器且該交易被傳遞至該第二微控制器,使用該橋接器。
  198. 一種用以處理封包之設備,該設備包含:輸入/輸出(I/O)模組,用以:產生一封包於一交易中,該封包包括封包標頭及酬載,其中該封包標頭包括暗示欄位、格式欄位、類型欄位、屬性欄位、及資料長度欄位,其中該暗示欄位中之一設定值係指示一與該交易關聯之記憶體中的資料之所欲使 用;及造成該封包透過互連而被傳遞至一裝置。
TW102141586A 2006-11-02 2007-10-25 PCI Express增強及延伸 TWI590060B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US11/592,341 US7949794B2 (en) 2006-11-02 2006-11-02 PCI express enhancements and extensions

Publications (2)

Publication Number Publication Date
TW201428498A true TW201428498A (zh) 2014-07-16
TWI590060B TWI590060B (zh) 2017-07-01

Family

ID=39360980

Family Applications (7)

Application Number Title Priority Date Filing Date
TW102141586A TWI590060B (zh) 2006-11-02 2007-10-25 PCI Express增強及延伸
TW102102878A TWI430099B (zh) 2006-11-02 2007-10-25 PCI Express增強及延伸
TW102102882A TWI428753B (zh) 2006-11-02 2007-10-25 PCI Express增強及延伸
TW104101070A TWI599885B (zh) 2006-11-02 2007-10-25 PCI Express增強及延伸
TW102102880A TWI443520B (zh) 2006-11-02 2007-10-25 PCI Express增強及延伸
TW106109372A TW201810055A (zh) 2006-11-02 2007-10-25 Pci express增強及延伸
TW96140088A TWI444828B (zh) 2006-11-02 2007-10-25 PCI Express增強及延伸

Family Applications After (6)

Application Number Title Priority Date Filing Date
TW102102878A TWI430099B (zh) 2006-11-02 2007-10-25 PCI Express增強及延伸
TW102102882A TWI428753B (zh) 2006-11-02 2007-10-25 PCI Express增強及延伸
TW104101070A TWI599885B (zh) 2006-11-02 2007-10-25 PCI Express增強及延伸
TW102102880A TWI443520B (zh) 2006-11-02 2007-10-25 PCI Express增強及延伸
TW106109372A TW201810055A (zh) 2006-11-02 2007-10-25 Pci express增強及延伸
TW96140088A TWI444828B (zh) 2006-11-02 2007-10-25 PCI Express增強及延伸

Country Status (2)

Country Link
US (20) US7949794B2 (zh)
TW (7) TWI590060B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9946683B2 (en) 2014-12-24 2018-04-17 Intel Corporation Reducing precision timing measurement uncertainty

Families Citing this family (115)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8325768B2 (en) 2005-08-24 2012-12-04 Intel Corporation Interleaving data packets in a packet-based communication system
US7949794B2 (en) 2006-11-02 2011-05-24 Intel Corporation PCI express enhancements and extensions
US7827343B2 (en) * 2007-09-20 2010-11-02 International Business Machines Corporation Method and apparatus for providing accelerator support in a bus protocol
US20090254712A1 (en) * 2008-04-02 2009-10-08 Naveen Cherukuri Adaptive cache organization for chip multiprocessors
US9032100B2 (en) * 2008-04-03 2015-05-12 International Business Machines Corporation I/O hub-supported atomic I/O operations
US9047421B2 (en) * 2008-04-30 2015-06-02 Alcatel Lucent Serial link buffer fill-level compensation using multi-purpose start of protocol data unit timing characters
US20100023569A1 (en) * 2008-07-22 2010-01-28 Daw Shien Scientific Research & Development, Inc. Method for computerized arithmetic operations
US7861024B2 (en) * 2008-09-30 2010-12-28 Intel Corporation Providing a set aside mechanism for posted interrupt transactions
US8108584B2 (en) * 2008-10-15 2012-01-31 Intel Corporation Use of completer knowledge of memory region ordering requirements to modify transaction attributes
US9785462B2 (en) 2008-12-30 2017-10-10 Intel Corporation Registering a user-handler in hardware for transactional memory event handling
US8627017B2 (en) * 2008-12-30 2014-01-07 Intel Corporation Read and write monitoring attributes in transactional memory (TM) systems
US8065542B2 (en) * 2008-12-31 2011-11-22 Synopsys, Inc. Distributed table-driven power mode computation for controlling optimal clock and voltage switching
US7895380B2 (en) * 2009-01-21 2011-02-22 Ati Technologies Ulc Communication protocol for sharing memory resources between components of a device
US8199759B2 (en) * 2009-05-29 2012-06-12 Intel Corporation Method and apparatus for enabling ID based streams over PCI express
US8111704B2 (en) 2009-06-26 2012-02-07 Intel Corporation Multiple compression techniques for packetized information
US8909862B2 (en) * 2009-06-30 2014-12-09 Intel Corporation Processing out of order transactions for mirrored subsystems using a cache to track write operations
EP2480977B1 (en) * 2009-09-25 2014-11-05 Hewlett-Packard Development Company, L.P. Mapping non-prefetchable storage locations into memory mapped input/output space
US8990506B2 (en) * 2009-12-16 2015-03-24 Intel Corporation Replacing cache lines in a cache memory based at least in part on cache coherency state information
US8938589B2 (en) * 2010-01-28 2015-01-20 Hewlett-Packard Development Company, L. P. Interface methods and apparatus for memory devices using arbitration
US20160246711A9 (en) * 2010-01-28 2016-08-25 Hewlett-Packard Development Company, L. P. Interface methods and apparatus for memory devices
US8473695B2 (en) 2011-03-31 2013-06-25 Mosys, Inc. Memory system including variable write command scheduling
US9354823B2 (en) 2012-06-06 2016-05-31 Mosys, Inc. Memory system including variable write burst and broadcast command scheduling
JP2011182314A (ja) * 2010-03-03 2011-09-15 Oki Semiconductor Co Ltd データ中継装置及び方法
US8594100B2 (en) 2010-03-31 2013-11-26 International Business Machines Corporation Data frame forwarding using a distributed virtual bridge
US8619796B2 (en) 2010-04-22 2013-12-31 International Business Machines Corporation Forwarding data frames with a distributed fiber channel forwarder
US8447909B2 (en) * 2010-07-19 2013-05-21 International Business Machines Corporation Register access in distributed virtual bridge environment
US8407389B2 (en) * 2010-07-20 2013-03-26 International Business Machines Corporation Atomic operations with page migration in PCIe
US20120023302A1 (en) * 2010-07-20 2012-01-26 Ibm Corporation Concurrent Atomic Operations with Page Migration in PCIe
US9146610B2 (en) 2010-09-25 2015-09-29 Intel Corporation Throttling integrated link
US9252874B2 (en) 2010-10-13 2016-02-02 Ccs Technology, Inc Power management for remote antenna units in distributed antenna systems
US9160449B2 (en) * 2010-10-13 2015-10-13 Ccs Technology, Inc. Local power management for remote antenna units in distributed antenna systems
US11296504B2 (en) 2010-11-24 2022-04-05 Corning Optical Communications LLC Power distribution module(s) capable of hot connection and/or disconnection for wireless communication systems, and related power units, components, and methods
CN103314556B (zh) 2010-11-24 2017-09-08 康宁光缆系统有限责任公司 用于分布式天线系统的能够带电连接和/或断开连接的配电模块及相关电力单元、组件与方法
US20120158684A1 (en) * 2010-12-21 2012-06-21 Lsi Corporation Performance enhanced synchronization mechanism with intensity-oriented reader api
CN102622044B (zh) * 2011-01-28 2014-04-02 微盟电子(昆山)有限公司 主机板及其pcie端口动态配置方法
US8543754B2 (en) * 2011-02-25 2013-09-24 International Business Machines Corporation Low latency precedence ordering in a PCI express multiple root I/O virtualization environment
US8806164B2 (en) 2011-03-04 2014-08-12 Micron Technology, Inc. Apparatus, electronic devices and methods associated with an operative transition from a first interface to a second interface
US9417687B2 (en) * 2011-07-12 2016-08-16 Rambus Inc. Dynamically changing data access bandwidth by selectively enabling and disabling data links
US8769159B2 (en) 2011-12-14 2014-07-01 National Instruments Corporation Resource reservation for an external device that is not available at startup of a host computer
WO2013105978A1 (en) * 2012-01-13 2013-07-18 Intel Corporation Allocation of flow control credits for high performance devices
US8891535B2 (en) 2012-01-18 2014-11-18 International Business Machines Corporation Managing a global forwarding table in a distributed switch
US8861400B2 (en) 2012-01-18 2014-10-14 International Business Machines Corporation Requesting multicast membership information in a distributed switch in response to a miss event
US8549205B1 (en) 2012-05-22 2013-10-01 Intel Corporation Providing a consolidated sideband communication channel between devices
US8446903B1 (en) * 2012-05-22 2013-05-21 Intel Corporation Providing a load/store communication protocol with a low power physical unit
US8437343B1 (en) 2012-05-22 2013-05-07 Intel Corporation Optimized link training and management mechanism
US20130346655A1 (en) * 2012-06-22 2013-12-26 Advanced Micro Devices, Inc. Bus agent capable of supporting extended atomic operations and method therefor
US9128811B2 (en) 2012-06-26 2015-09-08 Intel Corporation Assigning addresses to devices on an interconnect
US8924611B2 (en) 2012-06-26 2014-12-30 Intel Corporation Providing a serial protocol for a bidirectional serial interconnect
US8972640B2 (en) 2012-06-27 2015-03-03 Intel Corporation Controlling a physical link of a first protocol using an extended capability structure of a second protocol
MY169964A (en) 2012-06-29 2019-06-19 Intel Corp An architected protocol for changing link operating mode
US9154222B2 (en) 2012-07-31 2015-10-06 Corning Optical Communications LLC Cooling system control in distributed antenna systems
US9086957B2 (en) 2012-08-02 2015-07-21 International Business Machines Corporation Requesting a memory space by a memory controller
US10268583B2 (en) * 2012-10-22 2019-04-23 Intel Corporation High performance interconnect coherence protocol resolving conflict based on home transaction identifier different from requester transaction identifier
WO2014075255A1 (zh) * 2012-11-15 2014-05-22 华为技术有限公司 一种基于PCIE Switch通信的方法、装置及系统
US10257056B2 (en) 2012-11-28 2019-04-09 Corning Optical Communications LLC Power management for distributed communication systems, and related components, systems, and methods
US9262270B2 (en) 2012-12-28 2016-02-16 Intel Corporation Live error recovery
US9497706B2 (en) 2013-02-20 2016-11-15 Corning Optical Communications Wireless Ltd Power management in distributed antenna systems (DASs), and related components, systems, and methods
US20140281639A1 (en) * 2013-03-15 2014-09-18 Mahesh Wagh Device power management state transition latency advertisement for faster boot time
US9261934B2 (en) 2013-03-15 2016-02-16 Intel Corporation Dynamic response improvement of hybrid power boost technology
US9552323B1 (en) 2013-07-05 2017-01-24 Altera Corporation High-speed peripheral component interconnect (PCIe) input-output devices with receive buffer management circuitry
US10229043B2 (en) 2013-07-23 2019-03-12 Intel Business Machines Corporation Requesting memory spaces and resources using a memory controller
WO2015029028A1 (en) 2013-08-28 2015-03-05 Corning Optical Communications Wireless Ltd. Power management for distributed communication systems, and related components, systems, and methods
US9304709B2 (en) 2013-09-06 2016-04-05 Western Digital Technologies, Inc. High performance system providing selective merging of dataframe segments in hardware
CN103532807B (zh) * 2013-10-12 2017-10-03 丁贤根 一种用于pcie数据服务质量管理的方法
US20150127878A1 (en) * 2013-11-06 2015-05-07 Plx Technology, Inc. Tunneled window connection for programmed input output transfers over a switch fabric
US9928198B2 (en) 2013-11-22 2018-03-27 Oracle International Corporation Adapter card with a computer module form factor
WO2015079435A1 (en) 2013-11-26 2015-06-04 Corning Optical Communications Wireless Ltd. Selective activation of communications services on power-up of a remote unit(s) in a distributed antenna system (das) based on power consumption
US10097658B2 (en) 2013-12-17 2018-10-09 Nec Corporation Traffic control of packet transfer
US10013344B2 (en) * 2014-01-14 2018-07-03 Avago Technologies General Ip (Singapore) Pte. Ltd. Enhanced SSD caching
US20150261681A1 (en) * 2014-03-14 2015-09-17 International Business Machines Corporation Host bridge with cache hints
US9612643B2 (en) 2014-03-29 2017-04-04 Intel Corporation Controlling the CPU slew rates based on the battery state of charge
US9710381B2 (en) 2014-06-18 2017-07-18 International Business Machines Corporation Method and apparatus for cache memory data processing
US9489142B2 (en) 2014-06-26 2016-11-08 International Business Machines Corporation Transactional memory operations with read-only atomicity
US9495108B2 (en) 2014-06-26 2016-11-15 International Business Machines Corporation Transactional memory operations with write-only atomicity
US9509133B2 (en) 2014-06-27 2016-11-29 Corning Optical Communications Wireless Ltd Protection of distributed antenna systems
US9639470B2 (en) * 2014-08-26 2017-05-02 Arm Limited Coherency checking of invalidate transactions caused by snoop filter eviction in an integrated circuit
US9727466B2 (en) 2014-08-26 2017-08-08 Arm Limited Interconnect and method of managing a snoop filter for an interconnect
US9653861B2 (en) 2014-09-17 2017-05-16 Corning Optical Communications Wireless Ltd Interconnection of hardware components
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
US9710406B2 (en) 2014-12-15 2017-07-18 Intel Corporation Data transmission using PCIe protocol via USB port
US9740646B2 (en) * 2014-12-20 2017-08-22 Intel Corporation Early identification in transactional buffered memory
US9742616B2 (en) * 2014-12-23 2017-08-22 Intel Corporation Device for indicating packet processing hints
US20160188468A1 (en) * 2014-12-26 2016-06-30 Intel Corporation Implementation of data coherence among devices
US9785175B2 (en) 2015-03-27 2017-10-10 Corning Optical Communications Wireless, Ltd. Combining power from electrically isolated power paths for powering remote units in a distributed antenna system(s) (DASs)
US10229076B2 (en) 2015-09-09 2019-03-12 International Business Machines Corporation Peripheral component interconnect express (PCIE) pseudo-virtual channels using vendor defined messages
US9880772B2 (en) * 2015-09-21 2018-01-30 Micron Technology, Inc. Systems and methods for providing file information in a memory system protocol
WO2017052665A1 (en) * 2015-09-26 2017-03-30 Intel Corporation In-band margin probing on an operational interconnect
US10474576B2 (en) * 2015-11-10 2019-11-12 International Business Machines Corporation Prefetch protocol for transactional memory
CN105306306B (zh) * 2015-11-12 2018-08-24 姚焕根 链路连通性检测系统及方法
US9858221B2 (en) * 2016-02-15 2018-01-02 Nvidia Corporation Producer/consumer remote synchronization
US10353758B2 (en) 2016-03-18 2019-07-16 Samsung Electronics Co., Ltd. Data coding methods for a communication between semiconductor chips
US10095620B2 (en) * 2016-06-29 2018-10-09 International Business Machines Corporation Computer system including synchronous input/output and hardware assisted purge of address translation cache entries of synchronous input/output transactions
US10210131B2 (en) 2016-07-13 2019-02-19 International Business Machines Corporation Synchronous data input/output system using prefetched device table entry
US9760514B1 (en) * 2016-09-26 2017-09-12 International Business Machines Corporation Multi-packet processing with ordering rule enforcement
US10275388B2 (en) 2016-09-26 2019-04-30 International Business Machines Corporation Simultaneous inbound multi-packet processing
US10341242B2 (en) 2016-12-13 2019-07-02 Oracle International Corporation System and method for providing a programmable packet classification framework for use in a network device
US10404594B2 (en) * 2016-12-13 2019-09-03 Oracle International Corporation System and method for providing partitions of classification resources in a network device
US10282297B2 (en) 2017-02-08 2019-05-07 Arm Limited Read-with overridable-invalidate transaction
US11030713B2 (en) * 2017-04-10 2021-06-08 Intel Corporation Extended local memory including compressed on-chip vertex data
US10353833B2 (en) 2017-07-11 2019-07-16 International Business Machines Corporation Configurable ordering controller for coupling transactions
US11194753B2 (en) * 2017-09-01 2021-12-07 Intel Corporation Platform interface layer and protocol for accelerators
EP4276625A3 (en) * 2018-01-29 2024-01-24 Micron Technology, Inc. Memory controller
US10606785B2 (en) * 2018-05-04 2020-03-31 Intel Corporation Flex bus protocol negotiation and enabling sequence
CN112154618B (zh) * 2018-05-23 2023-10-13 兴和株式会社 通信系统、控制系统以及通信装置
US11023410B2 (en) * 2018-09-11 2021-06-01 Advanced Micro Devices, Inc. Instructions for performing multi-line memory accesses
US11093393B2 (en) * 2018-12-27 2021-08-17 Samsung Electronics Co., Ltd. System and method for early DRAM page-activation
CN111737176B (zh) * 2020-05-11 2022-07-15 瑞芯微电子股份有限公司 一种基于pcie数据的同步装置及驱动方法
TWI747416B (zh) * 2020-08-04 2021-11-21 新唐科技股份有限公司 增強型串列周邊介面傳輸控制裝置及方法
US11375050B1 (en) * 2020-09-11 2022-06-28 Xilinx, Inc. Multiple protocol layer conversion
CN112597080B (zh) * 2020-12-29 2022-10-21 联芸科技(杭州)股份有限公司 读请求控制装置及方法以及存储器控制器
CN112685353B (zh) * 2020-12-31 2022-06-07 深圳安捷丽新技术有限公司 一种usb转pcie协议的桥接芯片及其运行方法
US11762785B2 (en) * 2021-05-03 2023-09-19 Mellanox Technologies, Ltd. Peripheral component interconnect attributes shared using address bits
TWI789122B (zh) * 2021-11-17 2023-01-01 瑞昱半導體股份有限公司 指令轉換系統以及指令轉換方法
US20230342244A1 (en) * 2022-04-20 2023-10-26 Western Digital Technologies, Inc. Read Look Ahead Optimization According To NVMe Dataset Management Hints

Family Cites Families (48)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6115756A (en) * 1997-06-27 2000-09-05 Sun Microsystems, Inc. Electro-optically connected multiprocessor and multiring configuration for dynamically allocating time
US6212645B1 (en) * 1998-10-09 2001-04-03 Mediaq Inc. Programmable and flexible power management unit
US6175884B1 (en) 1998-11-03 2001-01-16 Intel Corporation Efficient communication of transaction types using separate and orthogonal attribute fields in packet headers transferred between hubs in a computer system
US6272563B1 (en) 1998-11-03 2001-08-07 Intel Corporation Method and apparatus for communicating routing and attribute information for a transaction between hubs in a computer system
US6542968B1 (en) * 1999-01-15 2003-04-01 Hewlett-Packard Company System and method for managing data in an I/O cache
US6665802B1 (en) * 2000-02-29 2003-12-16 Infineon Technologies North America Corp. Power management and control for a microcontroller
US6766419B1 (en) 2000-03-31 2004-07-20 Intel Corporation Optimization of cache evictions through software hints
US7177971B2 (en) 2001-08-24 2007-02-13 Intel Corporation General input/output architecture, protocol and related methods to provide isochronous channels
US6691192B2 (en) 2001-08-24 2004-02-10 Intel Corporation Enhanced general input/output architecture and related methods for establishing virtual channels therein
ATE335237T1 (de) 2001-08-24 2006-08-15 Intel Corp Eine allgemeine eingabe-/ausgabearchitektur, protokoll und entsprechende verfahren zur umsetzung der flusssteuerung
US7581026B2 (en) 2001-12-28 2009-08-25 Intel Corporation Communicating transaction types between agents in a computer system using packet headers including format and type fields
US7099318B2 (en) 2001-12-28 2006-08-29 Intel Corporation Communicating message request transaction types between agents in a computer system using multiple message groups
US7184399B2 (en) 2001-12-28 2007-02-27 Intel Corporation Method for handling completion packets with a non-successful completion status
US6944617B2 (en) 2001-12-28 2005-09-13 Intel Corporation Communicating transaction types between agents in a computer system using packet headers including an extended type/extended length field
US6915415B2 (en) 2002-01-07 2005-07-05 International Business Machines Corporation Method and apparatus for mapping software prefetch instructions to hardware prefetch logic
US7234040B2 (en) * 2002-01-24 2007-06-19 University Of Washington Program-directed cache prefetching for media processors
US6848057B2 (en) * 2002-05-28 2005-01-25 Nvidia Corporation Method and apparatus for providing a decoupled power management state
US6898674B2 (en) * 2002-06-11 2005-05-24 Intel Corporation Apparatus, method, and system for synchronizing information prefetch between processors and memory controllers
US7130933B2 (en) 2002-07-24 2006-10-31 Intel Corporation Method, system, and program for handling input/output commands
US7117316B2 (en) 2002-08-05 2006-10-03 Micron Technology, Inc. Memory hub and access method having internal row caching
US7502826B2 (en) * 2003-03-27 2009-03-10 Hewlett-Packard Development Company, L.P. Atomic operations
WO2004102403A2 (en) * 2003-05-13 2004-11-25 Advanced Micro Devices, Inc. A system including a host connected to a plurality of memory modules via a serial memory interconnect
US7340548B2 (en) 2003-12-17 2008-03-04 Microsoft Corporation On-chip bus
US7162584B2 (en) 2003-12-29 2007-01-09 Intel Corporation Mechanism to include hints within compressed data
US7606933B2 (en) * 2004-02-11 2009-10-20 Cray Canada Corporation Shared memory and high performance communication using interconnect tunneling
US7228362B2 (en) 2004-03-31 2007-06-05 Intel Corporation Out-of-order servicing of read requests with minimal additional storage
US7366921B2 (en) * 2004-04-23 2008-04-29 Hewlett-Packard Development Company, L.P. Selecting input/output devices to control power consumption of a computer system
US7210000B2 (en) 2004-04-27 2007-04-24 Intel Corporation Transmitting peer-to-peer transactions through a coherent interface
US7684970B2 (en) 2004-06-25 2010-03-23 Intel Corporation Graphical user interface for use during processor simulation
US20050289306A1 (en) * 2004-06-28 2005-12-29 Sridhar Muthrasanallur Memory read requests passing memory writes
TWI266176B (en) * 2004-08-26 2006-11-11 Via Tech Inc Power management state control method
US7353301B2 (en) * 2004-10-29 2008-04-01 Intel Corporation Methodology and apparatus for implementing write combining
US7886086B2 (en) * 2005-02-03 2011-02-08 International Business Machines Corporation Method and apparatus for restricting input/output device peer-to-peer operations in a data processing system to improve reliability, availability, and serviceability
TWI283367B (en) * 2005-03-15 2007-07-01 Uli Electronics Inc Method for transmitting a power-saving command between computer system and system chips
US7293184B2 (en) 2005-03-30 2007-11-06 Intel Corporation Programmatic binding for power management events involving execution of instructions in a first programming system with a first interface and a second programming system with a second interface
US20060294327A1 (en) 2005-06-23 2006-12-28 Sharma Debendra D Method, apparatus and system for optimizing interleaving between requests from the same stream
US7360031B2 (en) 2005-06-29 2008-04-15 Intel Corporation Method and apparatus to enable I/O agents to perform atomic operations in shared, coherent memory spaces
US7624221B1 (en) * 2005-08-01 2009-11-24 Nvidia Corporation Control device for data stream optimizations in a link interface
US7539809B2 (en) * 2005-08-19 2009-05-26 Dell Products L.P. System and method for dynamic adjustment of an information handling systems graphics bus
US7437510B2 (en) * 2005-09-30 2008-10-14 Intel Corporation Instruction-assisted cache management for efficient use of cache and memory
US20070124728A1 (en) 2005-11-28 2007-05-31 Mark Rosenbluth Passing work between threads
US7916750B2 (en) 2005-12-28 2011-03-29 Intel Corporation Transaction layer packet compression
US7970956B2 (en) * 2006-03-27 2011-06-28 Ati Technologies, Inc. Graphics-processing system and method of broadcasting write requests to multiple graphics devices
US7752376B1 (en) * 2006-08-11 2010-07-06 Oracle America, Inc. Flexible configuration space
US7958406B2 (en) * 2006-10-03 2011-06-07 International Business Machines Corporation Verifying a record as part of an operation to modify the record
US7587575B2 (en) * 2006-10-17 2009-09-08 International Business Machines Corporation Communicating with a memory registration enabled adapter using cached address translations
US7761666B2 (en) 2006-10-26 2010-07-20 Intel Corporation Temporally relevant data placement
US7949794B2 (en) 2006-11-02 2011-05-24 Intel Corporation PCI express enhancements and extensions

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9946683B2 (en) 2014-12-24 2018-04-17 Intel Corporation Reducing precision timing measurement uncertainty

Also Published As

Publication number Publication date
TW201333708A (zh) 2013-08-16
US20110072164A1 (en) 2011-03-24
US9026682B2 (en) 2015-05-05
TWI430099B (zh) 2014-03-11
US20150161050A1 (en) 2015-06-11
US8447888B2 (en) 2013-05-21
US20130111086A1 (en) 2013-05-02
US9442855B2 (en) 2016-09-13
US20150149683A9 (en) 2015-05-28
US9535838B2 (en) 2017-01-03
US8793404B2 (en) 2014-07-29
US20080195780A1 (en) 2008-08-14
US20130132622A1 (en) 2013-05-23
US20130132683A1 (en) 2013-05-23
US20080195791A1 (en) 2008-08-14
TW201514702A (zh) 2015-04-16
US20110161703A1 (en) 2011-06-30
TW200834316A (en) 2008-08-16
US8473642B2 (en) 2013-06-25
US20120036293A1 (en) 2012-02-09
TWI590060B (zh) 2017-07-01
TWI599885B (zh) 2017-09-21
US8230119B2 (en) 2012-07-24
TW201329723A (zh) 2013-07-16
TWI443520B (zh) 2014-07-01
US8230120B2 (en) 2012-07-24
US7949794B2 (en) 2011-05-24
TWI444828B (zh) 2014-07-11
US8549183B2 (en) 2013-10-01
US20120254563A1 (en) 2012-10-04
US20110238882A1 (en) 2011-09-29
US20080109565A1 (en) 2008-05-08
US20110208925A1 (en) 2011-08-25
US9098415B2 (en) 2015-08-04
US9032103B2 (en) 2015-05-12
US8073981B2 (en) 2011-12-06
US7930566B2 (en) 2011-04-19
TW201810055A (zh) 2018-03-16
US20110173367A1 (en) 2011-07-14
US8555101B2 (en) 2013-10-08
TWI428753B (zh) 2014-03-01
US8099523B2 (en) 2012-01-17
US20130097353A1 (en) 2013-04-18
US20130091317A1 (en) 2013-04-11
US20080196034A1 (en) 2008-08-14
TW201329722A (zh) 2013-07-16
US20080215822A1 (en) 2008-09-04
US7899943B2 (en) 2011-03-01
US20120089750A1 (en) 2012-04-12
US20130132636A1 (en) 2013-05-23

Similar Documents

Publication Publication Date Title
TWI590060B (zh) PCI Express增強及延伸