TWI444828B - PCI Express增強及延伸 - Google Patents
PCI Express增強及延伸 Download PDFInfo
- Publication number
- TWI444828B TWI444828B TW96140088A TW96140088A TWI444828B TW I444828 B TWI444828 B TW I444828B TW 96140088 A TW96140088 A TW 96140088A TW 96140088 A TW96140088 A TW 96140088A TW I444828 B TWI444828 B TW I444828B
- Authority
- TW
- Taiwan
- Prior art keywords
- hint
- cache
- packet
- prefetch
- read
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
- G06F12/0831—Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/324—Power saving characterised by the action undertaken by lowering clock frequency
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/325—Power saving in peripheral device
- G06F1/3253—Power saving in bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
-
- 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/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4027—Coupling between buses using bus bridges
- G06F13/4045—Coupling between buses using bus bridges where the bus bridge performs an extender function
-
- 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/40—Bus structure
- G06F13/4063—Device-to-bus coupling
- G06F13/4068—Electrical coupling
-
- 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/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4265—Bus transfer protocol, e.g. handshake; Synchronisation on a point to point bus
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/66—Arrangements for connecting between networks having differing types of switching systems, e.g. gateways
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/62—Details of cache specific to multiprocessor cache arrangements
- G06F2212/621—Coherency control relating to peripheral accessing, e.g. from DMA or I/O device
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Description
本發明有關於互連的領域,詳言之,有關於串列點對點互連的延伸。
電腦系統包括數個構件及元見。經常這些構件透過匯流排或互連耦合。以前,裝置經由稱為周邊構件互連(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)」狀態,亦即裝置消耗不同程度的功率但潛在上無法操作。
在下列說明中,提出各種特定細節,如特定互連、特定封裝/訊息、封裝/訊息內的特定欄位及位置、特定邏輯/快取位置、特定快取/預取暗示、特定功率/性能度量等等之範例,以提供本發明之詳盡的理解。然而,對熟悉該項技藝者明顯地,不需利用這些特定細節來實行本發明。在其他例子中,並未詳述快取邏輯/實施、周邊構件互連快速(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/DVDROM、監視器、印表機、滑鼠、鍵盤、路由器、可攜式儲存裝置、火線(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
,會造成後服務Bo的讀取到不正確的資料。
然而,在一實施例中,可使用任何其他因素結合來判斷第二順序,例如對頁面有效率的存取、存取模式、串列定址及服務時間。例如,若逐一執行第一順序,開啟頁面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中的12 V電壓及行1840中的功率25 W關聯。注意到第18圖中每一個主動功率子狀態有三個項目,如子狀態1有項目1850至1852。於此,在行1835中12 V及3.3 V的電壓值代表12 V及3.3 V兩電壓軌之最大電壓值,而項目1852中表示熱能值。在另一實施例中,每子狀態的一第四項目包括第三電壓軌之第三電壓值。舉例而言,第三軌的第三最大電壓為1.8 V。
行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‧‧‧圖形加速器
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裝置的系統之一實施例。
100‧‧‧系統
105‧‧‧處理器
106‧‧‧前端匯流排(FSB)
110‧‧‧系統記憶體
115‧‧‧控制器集線器
116‧‧‧記憶體介面
117、121‧‧‧輸入/輸出模組
118、131‧‧‧I/O模組
119、132‧‧‧串列鍊結
120‧‧‧交換器/橋接器
125‧‧‧裝置
130‧‧‧圖形加速器
Claims (50)
- 一種用以增強及延伸PCI Express之設備,包含:輸入/輸出(I/O)模組,包括組態成透過串列點對點互連與裝置通訊之協定堆疊,該協定堆疊組態成在該串列點對點互連上傳送第一封包,其中該第一封包包括對於記憶體位址之參照及第一快取暗示,該第一快取暗示包括有意唯寫之暗示,及其中回應於包括該有意唯寫之暗示的該第一快取暗示,該裝置不會從該記憶體位址提取資料元件而是將與該記憶體位址關聯的記憶體位置轉變至獨佔一致性狀態。
- 如申請專利範圍第1項之設備,其中該協定堆疊包含交易層、鍊結層及實體層,以及其中該I/O模組係包括在選自由處理元件、微處理器、根部控制器、交換器、控制器集線器、圖形加速器及輸入/輸出(I/O)裝置組成之群組的裝置中。
- 如申請專利範圍第1項之設備,其中該第一封包為讀取/寫入請求封包,以及其中該第一快取暗示係包括在該讀取/寫入請求封包的第一部分內,第一預取暗示係包括在該讀取/寫入請求封包的位址欄位內,以及其中該第一部分及該位址欄位為該讀取/寫入請求封包之分別不重疊的部分。
- 如申請專利範圍第1項之設備,其中該協定堆疊亦在該串列點對點互連上傳送第二封包,其中該第二封包為 預取訊息封包,以包括第一預取暗示,及其中該第一預取暗示係包括對於預取位址之參照以及預取參數,以及其中該預取參數選自由長度、區塊數量、一頁面內之區塊數量、一預取區塊中之快取線數量、至下一區塊的起始之快取線數量、偏置、跨幅及方向組成之群組。
- 一種用以增強及延伸PCI Express之設備,包含:輸入/輸出(I/O)模組,組態成實施包括至少交易層、鍊結層及實體層之協定堆疊,該I/O模組組態成傳送第一封包,其中該第一封包包括對於位址之參照及快取暗示,及其中回應於指示待提取之元件的該快取暗示,與該位址關聯的元件將根據該快取暗示而被提取並維持於快取記憶體內之快取一致性狀態。
- 如申請專利範圍第5項之設備,其中該快取暗示選自由有意變更之暗示、有意寫入之暗示、有意寫回之暗示、有意讀取之暗示、有意唯讀之暗示、有意讀取及寫入之暗示、逐出暗示、直接輸入輸出(DIO)暗示、基本讀取暗示、基本寫入暗示及基本內定暗示組成之群組。
- 如申請專利範圍第5項之設備,其中該封包為讀取/寫入請求封包,以及其中該快取暗示係包括在該讀取/寫入請求封包的第一部分內,第一預取暗示係包括在該讀取/寫入請求封包的位址欄位內,以及其中該第一部分及該位址欄位為該讀取/寫入請求封包之分別不重疊的部分。
- 如申請專利範圍第6項之設備,其中該I/O模組亦 接收第二封包,其中該第二封包包括預取訊息封包,以包括第一預取暗示。
- 如申請專利範圍第8項之設備,其中該第一預取暗示係包括對於預取位址之參照以及預取參數,以及其中該預取參數選自由長度、區塊數量、一頁面內之區塊數量、一預取區塊中之快取線數量、至下一區塊的起始之快取線數量、偏置、跨幅及方向組成之群組。
- 如申請專利範圍第9項之設備,其中提取邏輯進一步根據該預取位址及該預取參數以從至少該預取位址預取。
- 一種用以增強及延伸PCI Express之設備,包含:輸入/輸出(I/O)模組,包括組態成透過串列點對點互連與裝置通訊之協定堆疊,該協定堆疊組態成在該串列點對點互連上傳送第一封包,其中該第一封包包括對於記憶體位址之參照及第一快取暗示,該第一快取暗示包括有意讀取及寫入之暗示,及其中回應於包括該有意讀取及寫入之暗示的該第一快取暗示,該裝置係從該記憶體位址提取資料元件並轉變記憶體位置以維持該資料元件於獨佔一致性狀態。
- 如申請專利範圍第11項之設備,其中該協定堆疊包含交易層、鍊結層及實體層,以及其中該I/O模組係包括在選自由處理元件、微處理器、根部控制器、交換器、控制器集線器、圖形加速器及輸入/輸出(I/O)裝置組成之 群組的裝置中。
- 如申請專利範圍第11項之設備,其中該第一封包為讀取/寫入請求封包,以及其中該第一快取暗示係包括在該讀取/寫入請求封包的第一部分內,第一預取暗示係包括在該讀取/寫入請求封包的位址欄位內,以及其中該第一部分及該位址欄位為該讀取/寫入請求封包之分別不重疊的部分。
- 如申請專利範圍第11項之設備,其中該協定堆疊亦在該串列點對點互連上傳送第二封包,其中該第二封包為預取訊息封包,以包括第一預取暗示,及其中該第一預取暗示係包括對於預取位址之參照以及預取參數,以及其中該預取參數選自由長度、區塊數量、一頁面內之區塊數量、一預取區塊中之快取線數量、至下一區塊的起始之快取線數量、偏置、跨幅及方向組成之群組。
- 一種用以增強及延伸PCI Express之設備,包含:輸入/輸出(I/O)模組,包括組態成透過串列點對點互連與裝置通訊之協定堆疊,該協定堆疊組態成在該串列點對點互連上傳送第一封包,其中該第一封包包括對於記憶體位址之參照及第一快取暗示,該第一快取暗示包括有意唯讀之暗示,及其中回應於包括該有意唯讀之暗示的該第一快取暗示,該裝置係從該記憶體位址提取資料元件並轉變記憶體位置以維持該資料元件於獨佔或共享一致性狀態。
- 如申請專利範圍第15項之設備,其中該協定堆疊包含交易層、鍊結層及實體層,以及其中該I/O模組係包括在選自由處理元件、微處理器、根部控制器、交換器、控制器集線器、圖形加速器及輸入/輸出(I/O)裝置組成之群組的裝置中。
- 如申請專利範圍第15項之設備,其中該第一封包為讀取/寫入請求封包,以及其中該第一快取暗示係包括在該讀取/寫入請求封包的第一部分內,第一預取暗示係包括在該讀取/寫入請求封包的位址欄位內,以及其中該第一部分及該位址欄位為該讀取/寫入請求封包之分別不重疊的部分。
- 如申請專利範圍第15項之設備,其中該協定堆疊亦在該串列點對點互連上傳送第二封包,其中該第二封包為預取訊息封包,以包括第一預取暗示,及其中該第一預取暗示係包括對於預取位址之參照以及預取參數,以及其中該預取參數選自由長度、區塊數量、一頁面內之區塊數量、一預取區塊中之快取線數量、至下一區塊的起始之快取線數量、偏置、跨幅及方向組成之群組。
- 一種用以增強及延伸PCI Express之方法,包含:以包括協定堆疊之輸入/輸出(I/O)模組透過串列點對點互連來傳送第一封包,該第一封包包括對於記憶體位址之參照及第一快取暗示;回應於從該串列點對點互連接收該第一封包,根據該第一快取暗示以判斷是否提取與該記憶體位址關 聯的資料元件;回應於根據該第一快取暗示而判斷出應提取與記憶體位址關聯的該資料元件,提取該資料元件;及根據該第一快取暗示以將與記憶體位址關聯的快取記憶體位置轉變至快取一致性狀態。
- 如申請專利範圍第19項之方法,其中該快取暗示選自由有意變更之暗示、有意寫入之暗示、有意寫回之暗示、有意讀取之暗示、有意唯讀之暗示、有意讀取及寫入之暗示、逐出暗示、直接輸入輸出(DIO)暗示、基本讀取暗示、基本寫入暗示及基本內定暗示組成之群組。
- 如申請專利範圍第19項之方法,其中該快取暗示包括有意唯寫之暗示及該快取一致性狀態包括獨佔一致性狀態,以及其中根據該第一快取暗示以判斷是否提取與該記憶體位址關聯的資料元件包含根據其包括該有意唯寫之暗示的該第一快取暗示以判斷不應提取該資料元件。
- 如申請專利範圍第19項之方法,其中該快取暗示包括有意讀取及寫入之暗示及該快取一致性狀態包括獨佔一致性狀態,以及其中根據該第一快取暗示以判斷是否提取與該記憶體位址關聯的資料元件包含根據其包括該有意讀取及寫入之暗示的該第一快取暗示以判斷應提取該資料元件。
- 如申請專利範圍第19項之方法,其中該快取暗示包括有意唯讀之暗示及該快取一致性狀態包括獨佔或共享一致性狀態,以及其中根據該第一快取暗示以判斷是否提 取與該記憶體位址關聯的資料元件包含根據其包括該有意唯讀之暗示的該第一快取暗示以判斷應提取該資料元件。
- 如申請專利範圍第19項之方法,其中該第一封包為讀取/寫入請求封包,以及其中該第一快取暗示係包括在該讀取/寫入請求封包的第一部分內,第一預取暗示係包括在該讀取/寫入請求封包的位址欄位內,以及其中該第一部分及該位址欄位為該讀取/寫入請求封包之分別不重疊的部分。
- 一種用以增強及延伸PCI Express之系統,包含:傳送裝置,包括輸入/輸出(I/O)模組,組態成實施包括至少交易層、鍊結層及實體層之協定堆疊,該I/O模組組態成傳送第一封包,其中該第一封包包括對於位址之參照及快取暗示,接收裝置,其係透過串列點對點互連而耦合至該傳送裝置,該接收裝置包括組態成實施協定堆疊之快取記憶體、提取邏輯、及I/O模組,該I/O模組組態成接收該第一封包,其中該提取邏輯組態成根據該快取暗示以判斷是否從該位址提取資料元件而該快取記憶體組態成根據該快取暗示以維持與該位址關聯的快取位置於快取一致性狀態。
- 如申請專利範圍第25項之系統,其中該快取暗示選自由有意變更之暗示、有意寫入之暗示、有意寫回之暗示、有意讀取之暗示、有意唯讀之暗示、有意讀取及寫入之暗示、逐出暗示、直接輸入輸出(DIO)暗示、基本讀取 暗示、基本寫入暗示及基本內定暗示組成之群組。
- 如申請專利範圍第25項之系統,其中該封包為讀取/寫入請求封包,以及其中該快取暗示係包括在該讀取/寫入請求封包的第一部分內,第一預取暗示係包括在該讀取/寫入請求封包的位址欄位內,以及其中該第一部分及該位址欄位為該讀取/寫入請求封包之分別不重疊的部分。
- 如申請專利範圍第25項之系統,其中該傳送裝置進一步組態成傳送第二封包,該接收裝置進一步組態成接收該第二封包,以及該第二封包係包括預取訊息封包以包括第一預取暗示,該第一預取暗示係包括對於預取位址之參照以及預取參數,該預取參數選自由長度、區塊數量、一頁面內之區塊數量、一預取區塊中之快取線數量、至下一區塊的起始之快取線數量、偏置、跨幅及方向組成之群組,以及其中該提取邏輯進一步組態成根據該預取位址及該預取參數以從至少該預取位址預取。
- 一種用以增強及延伸PCI Express之設備,包含:輸入/輸出(I/O)邏輯,以實施協定堆疊並包括耦合至記憶體之提取邏輯,該I/O邏輯在該串列點對點互連上接收第一封包,其中該第一封包包括第一存取控制暗示(ACH)及第一位址,以及其中該第一ACH係影響與該第一位址關聯之該記憶體中的記憶體位置之狀態並影響該提取邏輯是否將與該第一位址關聯之元件提取至該記憶體位置。
- 如申請專利範圍第29項之設備,其中該記憶體包 括耦合至該I/O邏輯的快取且與該第一位址關聯之記憶體位置的該狀態包括與該第一位址關聯之快取線的一致性狀態或快取一致性狀態,以及其中該快取一致性狀態選自由變更、獨佔、共享及無效狀態所組成之群組。
- 如申請專利範圍第30項之設備,其中該I/O邏輯亦接收預取訊息,該預取訊息包括對於預取位址之參照、第二ACH及選自由長度、區塊數量、偏置、跨幅及方向組成之群組的預取參數。
- 如申請專利範圍第31項之設備,其中該第一及第二ACH各選自由逐出、唯讀之意圖、唯寫之意圖、讀取及寫入之意圖及直接輸入輸出(DIO)組成之群組。
- 如申請專利範圍第31項之設備,,其中該提取邏輯回應於該預取訊息而根據對於該位址之該參照及該預取參數預取額外的元件且該快取記憶體維持該額外的元件於該第二ACH所影響的一致性狀態。
- 一種用以增強及延伸PCI Express之系統,包含:控制器集線器,包括:I/O邏輯,以實施協定堆疊,該協定堆疊接收包括第一存取控制暗示(ACH)之第一封包以及包括第一預取暗示及第二快取暗示之第一預取訊息;耦合至該I/O邏輯之提取邏輯,以提取由該第一封包所參照的第一元件,回應於表示欲提取該第一元件之該第一ACH,以及根據該第一 預取暗示第二元件,回應於表示欲提取該第二元件之該第二ACH;以及耦合至該提取邏輯之快取,以回應於該提取邏輯提取該第一及第二元件而儲存該第一元件及該第二元件;以及耦合至該控制器集線器之系統記憶體,以儲存該第一元件及該第二元件。
- 如申請專利範圍第34項之系統,其中該協定堆疊為周邊構件互連快速(PCIE)協定堆疊,包括實體層、鍊結層及交易層。
- 如申請專利範圍第34項之系統,進一步包含第一裝置,其中該第一裝置係選自由圖形加速器、輸入/輸出(I/O)裝置、交換器及處理元件組成之群組。
- 如申請專利範圍第34項之系統,其中該快取根據該第一快取暗示將該第一元件儲存於第一快取一致性狀態中,以及根據該預取訊息中的該第二快取暗示將該第二元件儲存於第二快取一致性狀態中。
- 如申請專利範圍第37項之系統,其中該第一及第二快取一致性狀態各自由變更狀態、獨佔狀態、共享狀態及無效狀態所組成之群組。
- 一種用以增強及延伸PCI Express之方法,包含:在串列點對點鍊結上以第一裝置接收第一封包,其中該第一封包包括對於第一元件之參照及第一存取控制暗示(ACH); 回應於該第一ACH指示欲提取該第一元件,提取該第一元件;回應於提取該第一元件,將該第一元件儲存於快取中與該第一ACH關聯的第一快取一致性狀態中。
- 如申請專利範圍第39項之方法,其中該第一封包為讀取/寫入請求封包。
- 如申請專利範圍第39項之方法,其中該串列點對點鍊結為周邊構件互連快速(PCIE)鍊結。
- 如申請專利範圍第41項之方法,其中該第一快取暗示包括有意讀取及寫入之暗示,與該有意讀取及寫入之暗示關聯之該第一快取一致性狀態為獨佔狀態,以及該有意讀取及寫入之暗示指示欲提取該第一元件。
- 如申請專利範圍第41項之方法,其中該第一快取暗示包括有意寫入之暗示,與該有意寫入之暗示關聯之該第一快取一致性狀態為獨佔狀態,以及該有意寫入之暗示指示不欲提取該第一元件。
- 一種用以增強及延伸PCI Express之設備,包含:快取記憶體;及輸入/輸出(I/O)模組,用以實施包括至少交易層、鍊結層及實體層之協定堆疊,該I/O模組係接收第一封包,其中該第一封包包括對於與元件關聯的位址之參照及快取控制暗示(ACH),及其中回應於該ACH指示應提取該元件且該I/O模組接收該元件,該快取記憶體係根據該ACH以維持 第一元件於快取一致性狀態。
- 如申請專利範圍第44項之設備,進一步包含提取邏輯,其中該提取邏輯從該關聯位址提取該元件,以及其中該I/O模組回應於該提取邏輯提取該元件而接收該元件。
- 如申請專利範圍第45項之設備,其中該I/O模組亦接收第二封包,及其中該第二封包包括預取訊息封包,以包括第一預取暗示。
- 如申請專利範圍第46項之設備,其中該第一預取暗示係包括對於預取位址之參照以及預取參數,以及其中該預取參數選自由長度、區塊數量、一頁面內之區塊數量、一預取區塊中之快取線數量、至下一區塊的起始之快取線數量、偏置、跨幅及方向組成之群組。
- 如申請專利範圍第47項之設備,其中提取邏輯進一步根據該預取位址及該預取參數以從至少該預取位址預取。
- 如申請專利範圍第44項之設備,其中該ACH選自由有意變更之暗示、有意寫入之暗示、有意寫回之暗示、有意讀取之暗示、有意唯讀之暗示、有意讀取及寫入之暗示、逐出暗示、直接輸入輸出(DIO)暗示、基本讀取暗示、基本寫入暗示及基本內定暗示組成之群組。
- 如申請專利範圍第44項之設備,其中該封包為讀取/寫入請求封包,以及其中該ACH係包括在該讀取/寫入請求封包的第一部分內,第一預取暗示係包括在該讀取/寫入請求封包的位址欄位內,以及其中該第一部分及該位 址欄位為該讀取/寫入請求封包之分別不重疊的部分。
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 |
---|---|
TW200834316A TW200834316A (en) | 2008-08-16 |
TWI444828B true TWI444828B (zh) | 2014-07-11 |
Family
ID=39360980
Family Applications (7)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW106109372A TW201810055A (zh) | 2006-11-02 | 2007-10-25 | Pci express增強及延伸 |
TW102141586A TWI590060B (zh) | 2006-11-02 | 2007-10-25 | PCI Express增強及延伸 |
TW102102880A TWI443520B (zh) | 2006-11-02 | 2007-10-25 | PCI Express增強及延伸 |
TW102102882A TWI428753B (zh) | 2006-11-02 | 2007-10-25 | PCI Express增強及延伸 |
TW96140088A TWI444828B (zh) | 2006-11-02 | 2007-10-25 | PCI Express增強及延伸 |
TW104101070A TWI599885B (zh) | 2006-11-02 | 2007-10-25 | PCI Express增強及延伸 |
TW102102878A TWI430099B (zh) | 2006-11-02 | 2007-10-25 | PCI Express增強及延伸 |
Family Applications Before (4)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW106109372A TW201810055A (zh) | 2006-11-02 | 2007-10-25 | Pci express增強及延伸 |
TW102141586A TWI590060B (zh) | 2006-11-02 | 2007-10-25 | PCI Express增強及延伸 |
TW102102880A TWI443520B (zh) | 2006-11-02 | 2007-10-25 | PCI Express增強及延伸 |
TW102102882A TWI428753B (zh) | 2006-11-02 | 2007-10-25 | PCI Express增強及延伸 |
Family Applications After (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW104101070A TWI599885B (zh) | 2006-11-02 | 2007-10-25 | PCI Express增強及延伸 |
TW102102878A TWI430099B (zh) | 2006-11-02 | 2007-10-25 | PCI Express增強及延伸 |
Country Status (2)
Country | Link |
---|---|
US (20) | US7949794B2 (zh) |
TW (7) | TW201810055A (zh) |
Cited By (1)
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 (118)
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 |
CN102511039B (zh) * | 2009-09-25 | 2014-11-05 | 惠普发展公司,有限责任合伙企业 | 将不可预取存储单元映射到存储器映射输入/输出空间中 |
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 |
US20160246711A9 (en) * | 2010-01-28 | 2016-08-25 | Hewlett-Packard Development Company, L. P. | Interface methods and apparatus for memory devices |
US8938589B2 (en) * | 2010-01-28 | 2015-01-20 | Hewlett-Packard Development Company, L. P. | Interface methods and apparatus for memory devices using arbitration |
US9354823B2 (en) | 2012-06-06 | 2016-05-31 | Mosys, Inc. | Memory system including variable write burst and broadcast command scheduling |
US8473695B2 (en) | 2011-03-31 | 2013-06-25 | Mosys, Inc. | Memory system including variable write 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 |
US9160449B2 (en) | 2010-10-13 | 2015-10-13 | Ccs Technology, Inc. | Local power management for remote antenna units in distributed antenna systems |
US9252874B2 (en) | 2010-10-13 | 2016-02-02 | Ccs Technology, Inc | 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 |
EP2643947B1 (en) | 2010-11-24 | 2018-09-19 | Corning Optical Communications LLC | Power distribution module(s) capable of hot connection and/or disconnection for distributed antenna systems, and related power units, components, and methods |
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 |
WO2013009442A2 (en) * | 2011-07-12 | 2013-01-17 | 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 |
DE112012005663B4 (de) * | 2012-01-13 | 2023-05-11 | Intel Corporation | Vorrichtung, Verfahren und System zur Zuweisung von Prozesen oder Threads an Agenten |
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 |
US8891535B2 (en) | 2012-01-18 | 2014-11-18 | International Business Machines Corporation | Managing a global forwarding table in a distributed switch |
US8437343B1 (en) | 2012-05-22 | 2013-05-07 | Intel Corporation | Optimized link training and management mechanism |
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 |
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 |
CN103430161B (zh) * | 2012-11-15 | 2016-12-21 | 华为技术有限公司 | 一种基于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 |
US9261934B2 (en) | 2013-03-15 | 2016-02-16 | Intel Corporation | Dynamic response improvement of hybrid power boost technology |
US20140281639A1 (en) * | 2013-03-15 | 2014-09-18 | Mahesh Wagh | Device power management state transition latency advertisement for faster boot time |
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 |
WO2015092973A1 (ja) * | 2013-12-17 | 2015-06-25 | 日本電気株式会社 | 情報処理装置及びトラフィック制御方法 |
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 |
US9495108B2 (en) | 2014-06-26 | 2016-11-15 | International Business Machines Corporation | Transactional memory operations with write-only atomicity |
US9489142B2 (en) | 2014-06-26 | 2016-11-08 | International Business Machines Corporation | Transactional memory operations with read-only atomicity |
US9509133B2 (en) | 2014-06-27 | 2016-11-29 | Corning Optical Communications Wireless Ltd | Protection of distributed antenna systems |
US9727466B2 (en) | 2014-08-26 | 2017-08-08 | Arm Limited | Interconnect and method of managing a snoop filter for an interconnect |
US9639470B2 (en) * | 2014-08-26 | 2017-05-02 | Arm Limited | Coherency checking of invalidate transactions caused by snoop filter eviction in an integrated circuit |
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 |
US9720838B2 (en) * | 2015-03-27 | 2017-08-01 | Intel Corporation | Shared buffered memory routing |
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 |
US10671476B2 (en) * | 2015-09-26 | 2020-06-02 | 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 |
US10275388B2 (en) | 2016-09-26 | 2019-04-30 | International Business Machines Corporation | Simultaneous inbound multi-packet processing |
US9760514B1 (en) * | 2016-09-26 | 2017-09-12 | International Business Machines Corporation | Multi-packet processing with ordering rule enforcement |
US10404594B2 (en) * | 2016-12-13 | 2019-09-03 | Oracle International Corporation | System and method for providing partitions of classification resources in a network device |
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 |
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 |
US11263143B2 (en) * | 2017-09-29 | 2022-03-01 | Intel Corporation | Coherent accelerator fabric controller |
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 |
TWI793328B (zh) | 2018-05-23 | 2023-02-21 | 日商興和股份有限公司 | 通信系統、控制系統及通信裝置 |
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 |
US10970238B2 (en) * | 2019-04-19 | 2021-04-06 | Intel Corporation | Non-posted write transactions for a computer bus |
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)
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 |
KR100647161B1 (ko) | 2001-08-24 | 2006-11-23 | 인텔 코오퍼레이션 | 레거시 인터럽트를 지원하는 범용 입/출력 아키텍쳐프로토콜 및 관련 방법 |
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 |
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 |
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 |
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 |
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 |
US20050166006A1 (en) * | 2003-05-13 | 2005-07-28 | Advanced Micro Devices, Inc. | System including a host connected serially in a chain to one or more memory modules that include a cache |
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 |
-
2006
- 2006-11-02 US US11/592,341 patent/US7949794B2/en active Active
-
2007
- 2007-10-25 TW TW106109372A patent/TW201810055A/zh unknown
- 2007-10-25 TW TW102141586A patent/TWI590060B/zh active
- 2007-10-25 TW TW102102880A patent/TWI443520B/zh active
- 2007-10-25 TW TW102102882A patent/TWI428753B/zh active
- 2007-10-25 TW TW96140088A patent/TWI444828B/zh active
- 2007-10-25 TW TW104101070A patent/TWI599885B/zh active
- 2007-10-25 TW TW102102878A patent/TWI430099B/zh active
- 2007-10-31 US US11/933,178 patent/US8073981B2/en active Active
- 2007-10-31 US US11/933,143 patent/US20080196034A1/en not_active Abandoned
- 2007-10-31 US US11/933,159 patent/US7930566B2/en active Active
- 2007-10-31 US US11/933,126 patent/US7899943B2/en active Active
-
2010
- 2010-08-23 US US12/861,439 patent/US8230119B2/en active Active
- 2010-09-16 US US12/883,781 patent/US8549183B2/en active Active
-
2011
- 2011-03-11 US US13/046,345 patent/US8555101B2/en active Active
- 2011-03-28 US US13/073,219 patent/US8099523B2/en active Active
- 2011-03-28 US US13/073,149 patent/US8230120B2/en active Active
- 2011-08-04 US US13/198,559 patent/US8473642B2/en active Active
- 2011-12-09 US US13/316,349 patent/US8447888B2/en active Active
-
2012
- 2012-06-11 US US13/493,606 patent/US8793404B2/en active Active
- 2012-11-30 US US13/690,931 patent/US20130132636A1/en not_active Abandoned
- 2012-11-30 US US13/691,106 patent/US9535838B2/en active Active
- 2012-11-30 US US13/691,016 patent/US9098415B2/en active Active
- 2012-12-06 US US13/706,575 patent/US9032103B2/en active Active
- 2012-12-13 US US13/713,614 patent/US20130132683A1/en not_active Abandoned
- 2012-12-13 US US13/713,635 patent/US9026682B2/en active Active
-
2014
- 2014-12-27 US US14/583,601 patent/US9442855B2/en active Active
Cited By (1)
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
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI444828B (zh) | PCI Express增強及延伸 |