TW200815976A - Transactional memory in out-of-order processors - Google Patents
Transactional memory in out-of-order processors Download PDFInfo
- Publication number
- TW200815976A TW200815976A TW096111333A TW96111333A TW200815976A TW 200815976 A TW200815976 A TW 200815976A TW 096111333 A TW096111333 A TW 096111333A TW 96111333 A TW96111333 A TW 96111333A TW 200815976 A TW200815976 A TW 200815976A
- Authority
- TW
- Taiwan
- Prior art keywords
- memory
- transaction
- instruction
- memory access
- cache
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
- G06F9/526—Mutual exclusion algorithms
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1605—Handling requests for interconnection or transfer for access to memory bus based on arbitration
- G06F13/161—Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement
- G06F13/1626—Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement by reordering requests
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3004—Arrangements for executing specific machine instructions to perform operations on memory
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30076—Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
- G06F9/30087—Synchronisation or serialisation instructions
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3824—Operand accessing
- G06F9/3834—Maintaining memory consistency
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3854—Instruction completion, e.g. retiring, committing or graduating
- G06F9/3858—Result writeback, i.e. updating the architectural state or memory
- G06F9/38585—Result writeback, i.e. updating the architectural state or memory with result invalidation, e.g. nullification
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3861—Recovery, e.g. branch miss-prediction, exception handling
- G06F9/3863—Recovery, e.g. branch miss-prediction, exception handling using multiple copies of the architectural state, e.g. shadow registers
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Advance Control (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Retry When Errors Occur (AREA)
- Hardware Redundancy (AREA)
Description
200815976 九、發明說明: 【發明所屬之技術領織】 發明領域 大致上本揭示係有_子裝置領域。更軸,本發明之 5實施例係有關於亂序處理器中之異動式記憶體(TM)之執疒 t先前技術3 發明背景 為了改良效能,某些電腦系統同時執行多個執行緒。 大致上,於一執行緒存取一共享資源之前,可能獲得共享 10資源的栓鎖。於該共享資源為儲存於記憶體之一資料結構 之情況下,全部試圖存取同一個資源的執行緒,可能因栓 鎖機構所提供之互斥,而將其操作的執行串列化排列。如 此對系統的效能有害,也可能造成例如由於鎖死程式錯誤 所導致的程式故障。 15 為了減少因利用栓鎖機構所導致的效能耗損,某些電 腦系統可能使用異動式記憶體。異動式記憶體通常係指同 步模型,其允許多個執行緒同時存取一共享資源,而未利 用一栓鎖機構。但於亂序處理器中之異動式記憶體的執行 可能增加設計上的複雜度,例如因亂序處理器中發生推測 20 處理,結果導致預測錯誤,增加設計複雜度。 H 明内 1 發明概要 依據本發明之一實施例,係特地提出一種裝置,其包 含有:用以儲存與未被委付之異動式記憶體存取請求之^ 5 200815976 圖式簡單說明 數目相對應之-數值之—餘存單元;以及用以對—異動式 記憶體存取請求開料―錢式記Μ存取請求委付之發 生,更新儲存於該儲存單元中之該數值之—第—邏輯裝置。 5 =關提供詳細說明。關中,元件符號的最左的 數表示X元件符遽初次出現的圖式。於不同圖式間使用 相同的元件符號來指示類似或相同的項目。
…第卜6及7圖顯示可用來實作此處討論之多個實施例之 運异糸統之實施例之方塊圖。 1〇第2圖顯示根據本發明之實施例,-種處理器核心部分 之方塊圖。 扪-4圖顯示根據本發明之各個實施例之方法之方塊圖。 弟5圖顯示異動狀㉟及控制暫存器之實施例。
C實施方式;J 15 較佳實施例之詳細說明 於後文說明中,陳述多個特定細節以供徹底瞭解各個 實施例。但若干實施例可無特定細節而實施。於其它情況 下,並未說明眾所周知之方法、程序、組成元件及電路之 細節俾便不隱蔽特定實施例。 20 此處討論之若干實施例可提供於亂序處理器中之異動 式心隱體執行用之有效機構,諸如參考第U圖所討論之處 理器。更特別,第1圖顯示根據本發明之一個實施例,一種 電腦系統100之方塊圖。電腦系統1〇〇可包括一個或多個處 理斋102-1至102-Ν(於此處通稱為「處理器1〇2」)。處理器 6 200815976 102可透過互連裝置紐祕刚通訊。各個處理器可包括 多個組成元件,部分元件僅就處理器繼七寸論以求清晰。 如此,其餘各個處理器1〇2_2至1〇以可包括就處理器鮮】 所討論的相同的或類似的元件。 5 於一實施例中’處理器102]包括一個或多個處理器核 心106-1至106-M(於此處稱作為「核心1〇6」)、__快取記憶 體1〇8(其可包括-個或多個專用快取記憶體或共享快取記 憶體)、及/或一個路由器110。處理器核心1〇6可於單一積體 電路(1C)晶片上實作。此外,晶片可包括—個或多個共享快 ίο取記憶體及/或專用快取記憶體(諸如快取記憶體1〇8)、匯流 排或互連裝置(諸如匯流排或互連裝置112)、記憶體控制器 或其它元件。 15 於-個實施例中,路由器11〇可用來於處理器脱^及/ 或電腦系統1GG之多個元件間之通訊。此外,處理器⑽」 可包括多於-個路由器11()。此外,多個路由器則可通訊
來允許資料路由通過處理㈣2]之内部或外部之多個元 件間。 快取記憶體1G8可儲存由處理器繼]之—個或多個元 件諸如核心、1G6所利用的資料(包括指令)。舉例言之,快取 2〇記憶體108可局部快取儲存於記憶體m的資料1處理器 102的元件可更快速存取,第丨圖所示,記憶體丨丨何透過 互連裝置104而與處理⑽2通訊。於—實施例中,快取記 憶體繼可从階快取記歸(LLC)。料,各個核心1〇6 可包括第-階(L1)快取記憶體116(此處通稱為「u快取記憶 7 200815976 體116」)。此外,處理器102-1可包括由多個核心所共享 的中間階快取記憶體。處理器102-1之多個層面可透過匯流 排(例如匯流排112)及/或記憶體控制器或中樞器而與快取 記憶體108直接通訊。 5 第2圖顯示根據本發明之一個實施例,一個處理器核心 106之部分之方塊圖。於一個實施例中,第2圖所示箭頭顯 示通過核心106之指令串流。一個或多個處理器核心(諸如 處理器核心106)可於單一積體電路晶片(或晶粒)諸如前文 參知第1圖所討論之晶片上實作。此外,晶片可包括一個或 10多個共旱快取記憶體及/或專用快取記憶體(例如第丨圖之快 取記憶體108)、互連裝置(例如第1圖之互連裝置1〇4及/或 H2)、記憶體控制器或其它元件。於一個實施例中,第2圖 所示之處理器核心106可用來於硬體(此處通稱為受限制的 異動式記憶體(TRM))執行異動式記憶體存取請求。 15 如第2圖所示,處理器核心1〇6可包括擷取用來由核心 106執仃的指令之一擷取單元2〇2。#令可操取自任何儲存 衣置諸如岫文參照第6圖及第7圖所討論之記憶體〗14及/ 或讀、體το件。處理器核心106也包括解碼所擷取的指令之 2〇解碼單凡綱。例如,解碼單元2〇4可將所擷取的指令解 °碼成為多個u〇ps(微操作)。 口此外,核心106可包括一排程單元206。排程單元206 可^行與㈣存的贿刺齡(例如《自解碼單元204 / 已解碼的指令)相關聯的多項操作,直到指令準備供 周又例如直到解碼指令的全部來源數值變成可資利用。 200815976 5
10 奸=射’排㈣纖可排料解侧 =調度)所解_指令至一執行翠元2〇8來執行。執: =(例二於指令經過解碼(例如藉解碼單7"綱解碼)及經 。又(彳精排程單元206調度)後執行所調度的指令。於— 個實施例中’執行單元細可包括多於—個執行單元,諸如 二己:錄行單元、一整數執行單元、-浮點執行單元或 ,、了早^此外,執行單錢8可執行亂序指令。如此, 於個貝知例中’處理器核心106可為亂序處理器核心。核 心觸也包括除役單元210。除役單元2断於所執行的指^ 被委付之後將該指令除役。於—個實_巾,所執行的指 令之除役,可能導致處理器狀態由指令的執行被委付,^ 等指令所使用的實體暫存器被解除分派等。
如第2圖所不,核心1〇6包括一重新排序緩衝器 (ROB)212 ’來儲存有關飛行中指令(或微操作(卿s”供由處 15理裔核心106的多個元件存取。核心106進一步包括一RAT (暫存器別名表)214,來維持邏輯暫存器(或架構暫存器)(諸 如軟體指令之運算元所識別之暫存器)與相對應之實體暫 存器間之映射圖。於一個實施例中,於RAT 214的各個登錄 項可包括指定予各個實體暫存器之一R0B識別符。此外, 20載入緩衝器216及儲存緩衝器218(於此處合稱為記憶體定 序缓衝器(MOB))可儲存尚未載入或尚未回寫至一主記憶體 (例如於處理器核心106外部之一記憶體,諸如記憶體114) 之懸置的記憶體操作。一MOB邏輯219可執行與緩衝器216 及218相關之多項操作,諸如於此處討論,例如參照第3圖 9 200815976 及第4圖討論。 此外,處理器核心106可包括一匯流排單元22〇,俾允 許處理器核心106之元件與其它元件(例如參照第i圖討論 之元件)透過一個或多個匯流排(諸如匯流排1〇4及/或ιΐ2) 5間通訊。一個或多個填補緩衝器222可於將所接收的資料儲 存入快取記憶體II6之前,暫時儲存接收(例如透過匯流排 104及/或112接收)自記憶體114之資料。 如第2圖所示,快取記憶體116包括一個或多個快取行 224(例如快取行〇至W)。於一個實施例中,快取記憶體ιΐ6 10之各快取行對各個於處理器核心1〇6上執行的執行緒可包 括一異動式讀取位元226及/或一異動式寫入位元228。位元 226及228可參照第3圖之討論設定或清除,例如藉異動式記 fe體存取請求來指示(載入及/或儲存)存取相對應之快取 行。此外,即使於第2圖,各快取行224顯示有個別位元226 15及228,但其它組態亦屬可能。舉例言之,異動式讀取位元 226(或異動式寫入位元228)可與快取記憶體116之選定部 刀諸如快取圮憶體116之一快取區塊或其它部分相對應.。 此外’位元226及/或位元228可儲存於快取記憶體116以外 之位置’諸如儲存於第1圖之快取記憶體1〇8、記憶體114或 20犧牲快取記憶體。 如後文參照第3圖之討論,處理器核心106可包括異動 深度什數為230來健存維持未被委付的異動式記憶體存取 明求數目相對應之數值。例如儲存於異動深度計數器230之 數值可指示與同一個執行緒相對應之多個異動式記憶體存 200815976 取請求之巢套深度。於-種情況下,當於一懸置的異動内 部引發(例如透過存庫呼叫或其它巢套程序)—次異動時,可 能導致多項異動式記憶體存取請求。異動深度計數哭现可 實作為任何類型之儲存裝置,諸如硬體暫存器或儲存於記 5憶體(例如記憶體114或快取記憶體⑽)之變數。核心刪也 。包括異動深度計數器賴说,來更賴存於異動深度計數 器230之數值。此外,如後文參照第3圖說明,核心刚可包 括-異動檢查點邏輯234,來檢查點檢查(或儲存)核心ι〇6 之各個元件之狀態,及異動復原邏輯236來復原核心ι〇6之 10各個元件。核心1〇6也包括一快取邏輯239,其經由存取快 取記憶體116而可執行各項操作,如本文參照第3圖及第4圖 進一步討論。此外,核心106包括與多個異動式記憶體存取 請求相對應之一個或多個額外暫存器24〇,諸如異動狀態及 控制(TXSR)(參照第4圖進一步討論於此處)、異動指令指標 15器(TXIP)(例如彳為相對應異動起點(或恰接在相對應異動 前方)之一指令指標器),及/或異動堆疊指標器(Txsp)(例如 可為指向堆疊頭部之一堆疊指標器,其係儲存核心1〇6之一 個或夕個元件之各種狀態),如於後文參考第3圖之說明。 特別,第3圖顯示執行與一異動式記憶體存取請求相對 20應之—項或多項操作之方法3〇〇之一實施例之方塊圖。於一 個實施例中’參照第1-2圖及第6_7圖討論之各個元件可用來 執行參照第3圖所討論之一項或多項操作。 參考第1-3圖,於操作302,接收一異動式記憶體存取 請求(諸如一項或多項記憶體載入操作或記憶體儲存操 11 200815976 作)。例如,擷取單元202可擷取指示異動式記憶體執行之 起點之一指令。根據至少一種指令集架構,指示異動式記 憶體執行起點之指令可為TXMBEG<user一handlerJP〉,此 處iiserjiandler一IP指示一使用者處理器程序,當有中止操 5作、錯誤或其它故障情況下,執行可轉向至該使用者處理 器程序。此外,異動式終點指令(諸如根據至少一項指令集 架構之TXMEND)可指示異動的終點。於一個實施例中, TXMBEG指令與TXMEND間之全部操作可標記為異動 式。於一個實施例中,異動式操作可能内設為異動式(以及 10 透過指令前標或參數而明示為非異動式),例如允許異動式 使用非異動式舊式存庫,而無需改變程式碼。另外,異動 式操作可内設為非異動式(及/或例如經由指令前標或參數 明示為異動式)。於一個實施例中,特殊明示非異動式指令 集合即使可能出現於一異動内部,例如出現於TXMBEG指 15 令與TXMEND指令間,仍可能以非異動式處理利用。此外, 於一個實施例中,於一項異動内部發生的非異動式儲存操 作(例如TXMBEG指令與TXMEND指令間)可由執行單元 208執行作為寫入記憶體114的寫穿式操作。於一個實施例 中,操作之内設處理設定可被提供以TXMBEG指令,例如 20 經由相對應之參數或前標來提供TXMBEG指令。於一個實 施例中,内設設定可經由於控制暫存器中之一模式位元提供。 於操作304,邏輯232可更新計數器230(例如依據實作 而定可遞增計數器230或遞減計數器230)。於一個實施例 中,TXMBEG指令的執行(例如由執行單元208的執行)可能 12 200815976 導致計數器230的更新。另外,計數器230可於發出時間更 新’例如當排程單元206發出TXMBEG指令時更新。此外, 於操作304,異動檢查點邏輯234可檢查點檢查各個元件(例 如计數器230及/或暫存器240)之狀態。例如,邏輯234可將 5核心106之一個或多個元件之狀態儲存於儲存元件(例如於 快取記憶體116、快取記憶體108及/或記憶體114)。容後詳 述,因核心106可同時處理多於一個異動式記憶體存取請求 (及/或推測同時),邏輯234可儲存核心1〇6之各個元件之多 於一個狀悲,於一個實施例中,各個檢查點檢查狀態可儲 10存至實作為一堆疊之一資料結構。於一個實施例中,邏輯 234可儲存與最外異動式記憶體請求相對應之一被檢查點 檢查狀態。 於操作306,例如可藉執行單元2〇8執行與操作3〇2之異 動式記賴存取請求相對應之_項或多項指令(或操作)。於 拉作寫執行指令祕,每次麵部分快取記憶體μ • 龍之位元(例如位元226及/或228)可被更新(例如依據實 - 作而定可被設定或被清除)。舉例言之,快取邏輯239可識 別存取快取記憶體116之異動指令,且更新相對應之位元 226及/或228。於一個實施例中,例如經由使用前標(或控制 20位其可與指令一起提供及/志蚀六#匕…丄
別為異動式操作或非異動式操作。
則方法:300繼續操作3〇4。否則, 項異動式記憶體存取請求, 若於操作308未接收到額外 13 200815976 異動式§己憶體存取請求,則於操作310,判定是否存在有與 插作之指令的執行相對應之衝突情況或程式中止情 匕八'、另外個者曰令(可能為與另外一個執行緒相對應之 指令,例如於同一個處理器核心或不同處理器核心上執行 5的指令)衝突,則於操作312中止異動。例如,一衝突指令 可對快取記憶體116中操作搬之異動存取中的-登錄項 (紐標記為已經被存取,如儲存於位元故及/或似之數值 和不)發送-窺探無效。此外若快取記憶體ιΐ6之該部分之 異動寫入位元228指示先前寫人存取該快取記憶體的同一 ίο個4刀,則由另一執行緒至快取記憶體之相同部分之一 窺探讀取請求可於操作312中止。此外,於操作別之中止 可能係由於特殊實作事件而強制程式中止(例如無法快取 的(UC)事件、I/O事件、緩衝器溢流等)。 於-個實施例中,若窺探導致儲存於記憶體(諸如儲存 於快取記憶體116)之資料失效,則於載入緩衝器216頭部之 載入指令可含括於窺探檢查,例如可*MOB邏輯219執行完 整位址檢查(而非部分位址檢查)。若於載入缓衝器216之^ 部之載入指令與於操作310之窥探衝突,則於操作,相 對應之異動式記憶體存取請求可被中止。另外,外顯輕式 20中止請求可能造成操作31〇的執行。例如根據至少一項指令 集合架構,指示異動式記憶體執行中止之指令可為 TXMABT。中止指令可能導致外顯中止,於多個巢套式異 動式記憶體存取請求(如儲存於計數器230之值指示)之情況 下,可能導致滾回先前狀態,呼叫相對應之處理器(例如於 14 200815976 多個懸置的異動式記憶體存取請求之情況下的最内處理 器,可以相對應之TXMBEG指令識別,如參照操作302之討 論)。於一個實施例中,程式中止可能導致滾回與最外異動 相對應之檢查點檢查狀態,呼叫相對應之最外TXMBEG處 5理器。於一個實施例中,於操作312,異動復原邏輯236可 將核心106之各個元件復原至前一狀態,如參照第2圖之討論。 於一個實施例中,於操作304之檢查點檢查可經由使用 寫入時拷貝機構執行,來記錄暫存器復原狀態於存在於暫 存器240之一位元及/或RAT 214之相對應登錄項。例如,1 10位元陣列可與各個RAT例示相關聯(另外,可只使用一個此 種陣列)。當儲存於計數器230之數值指示懸置異動(例如於 一個實施例中TXND>0)B夺,則當解碼單元2〇4執行暫存器的 重新命名操作時,檢查該陣列。若相對應位元指示未經先 前存取,則一微操作(uop)插入指令串流,及R〇B 212將相 15 .對應之資料寫入暫存器240之一,例如於重新命名前寫入。 若相對應之位元指示先前存取,則無需拷貝,原因在於於 寫入前該相對應之資料已經被拷貝。若發生分支錯誤預 測,則各個1位元陣列可經邏輯〇R運算,例如來形成正向 起始陣列。如此進行,則重複錯誤預測不會導致重複寫入 2〇時拷貝操作,原因在於一給定資料之一個拷貝保證存在於 核“ 106之暫存益。如此可限制寫入時拷貝的效能額外負荷。 於一個實施例中,當該快取記憶體116被逐出時,具有 有作用(例如設定)位元226或位元228之登錄項可最後被逐 出。若於快取記憶體116中不再存在有進一步可利用的空 15 200815976 5 10 15 20 …,則程式執行可轉向至使用者處理器(例如相對應之 TXMBEG指令之處理器)。此外,當一異動有作用但暫時被 懸置時,填補缓衝器222可用來伺服非異動式操作(例如儲 存貧料)。 若於操作314,不存在有衝突’則判定與異動式記憶體 存取請求相對應之異動式記憶體存取操作(例如藉 TXMBEG指令及相對應之TXMEND指令識別)成功地被^ 付(例如由除役單元210委付)。若異動式記憶體存取操作仍 然未被委付,則方法300持續操作306來執行相對應之指 令。一旦與異動式記憶體存取請求相對應之異動式記憶^ 存取操作成功地被委付,則於操作316,邏輯232更新計數 器^)。於一個實關中’ TXMEND指令之執行⑼如由執 行單元2G8執行)或發出(例如由排程單元寫發出)可能導致 異動式記憶體存取請求之委付,因而導致操作316之效能。 於操作318,判斷與其它異動式記憶體存取請求相對應 ^任何祕式記龍存取操錢否鱗未被委付。於一個 操作318可由邏輯232執行,例如經由判定儲存 於計數器230之數值是否指示存 取Α 仔在有剩餘異動式記憶體存 取峋求(例如於一個實施例中, 若於操作318,其它操作㈣有^數器挪未被清除時)。 3_續。-旦未有任何域^細,則方㈣以操作 操作進-步殘留時(例如;數存取請求相對應之 相對雁夕次粗“ μ 时230為清除時),於操作320, ί應之貝科(例如於快取記 或記憶體m内部)根據:=、快取記憶體及/ 異動式記憶體存取請求之 間 16 200815976 操作以基本元素方式更新。此外,若儲存於計數器230之數 值指示TXMEND係與最外異動式記憶體存取相對應(例如 當計數器230為清除時),則TXMEND指令指示相對應之異 動式記憶體存取請求之一委付點。於一個實施例中,相對 5 應之位元226及/或228也可經更新(例如於一實施例中經清
除)來指示於核心106中不再有懸置的異動式記憶體存取請 求。如此’ TXMEND指令可能導致基本元素委付,例如經 由確保全部推測及/或例外皆已經被解除,全部屬於異動寫 入集合之快取區塊皆處於互斥狀態,及/或全部屬於讀取集 10合之區塊目前皆存在且有效之基本元素委付。如此處討論 之讀取集合或寫入集合通常係指於位元226及22 8分別相對 應之記憶體(例如快取記憶體116)内部之資料集合。於一個 貝鈀例中,當相對應之寫入集合被委付時,輸入窺探被拖延。 於一個貫施例中,核心106可執行推測參照方法3〇〇所 15討論之指令(或操作),如於後文參照第4圖進一步討論。此 外,方法300之各項操作可亂序執行。例如操作3〇6、⑽及 310可以任-種順序執行。此外,於一個實施例中,於操作 310、312、314、及/或32〇執行前,窺探請求可被拖延,而 於操作310、312、314、及/或32〇執行後未被拖延。 20 第4圖顯示執行與異動式記憶體存取請求相對應之— 項或多項載入操作之方法4〇〇之一實施例之方塊圖。於—個 實施射,就第㈣物·爾論之各航件可用來執行 就第4圖討論之一項或多項操作。 參照第1-4圖 於操作402,解碼單元204可解碼一擷取 17 200815976 的指令’且判定所操取的指令是否與異動式記憶體存取載 入知作相對應。若該指令並未與異動式記憶體存取载入操 作相對應,_心、1G6可據此處理指令(4G4)。例如,對異動 式記憶體存取儲存操作,於相對應之異動式記憶體存取請 5求除役後,核心106可發出儲存操作(或儲存指令)予快取記 憶體116。於一個實施例中,與該儲存操作相對應之位址或 資料可於儲存緩衝器218推測運算及儲存。一旦相對應之異 • 冑式記憶體存取請求除役,則該儲存可根據預先運算值發 出予該快取記憶體。於一個實施例中,當儲存核發予快取 10記憶體116時,若綠元未經狀,舰除役_存可能進 一步造成所存取的快取記憶體區塊(例如相對應之TXw位 7L228)的設定。 於操作406,邏輯239判定一先前異動式記憶體存取請 求是否存取快取記憶體116中由操作4〇2的載入操作所定址 15的相同位置。於一個實施例中,邏輯239可存取快取記憶體 φ n6之相對應位元226來執行操作406。若先前已經存取同一 - 個位置,則排程單元206可發出推測載入指令。否則,於操 作410, MOB邏輯219再發出除役後的载入指令(或委付,如 ROB 212之相對應登錄項指示),然後於操作412,設定於快 20取記憶體116之相對應之TXr位元226。於一個實施例中,相 對應之位元226若由一先前異動載入所存取,則該相對應位 元226也可儲存於載入緩衝器216。一旦載入操作被委付, 如ROB 212之相對應登錄項指示,則R〇B 212可發送信號至 載入緩衝1§216(或MOB邏輯219),來指示相對應之載入操 18 200815976 作經委付。如此提供位元226於載入緩衝器216,可能限制 操作410及412之再存取快取記憶體116,例如獲得最佳快取 頻寬。 於一個實施例中,異動式記憶體存取請求之載入操作 5或儲存操作可内隱或外顯識別為異動式操作或非異動式操 作’例如經由允許發出載入而未串列化且未更新讀取集合 或寫入集合來識別;但當操作係於相對應之載入緩衝器和 儲存緩衝器(例如分別為緩衝器216或218)之頭端時,重新存 取快取記憶體116,來外顯識別載人位址或儲存位址係屬於 10該異動讀取集合或異動寫入集合。如此允許載入或儲存以 推測式發出,而未不正確地更新讀取集合和寫入集合,如 此允許載入和儲存識別的精確,而可進一步自動處理分支 預測錯誤。當儲存指令離開儲存緩衝器218的最老部分(於 一個實施例中,可稱作為資深儲存佇列)時,儲存操作可更 新讀取集合/寫入集合。此外,内隱包含允許舊式存庫由此 處討論之實施例所支援。 第5圖顯示異動狀態及控制暫存器(TXSR)5〇〇之一實 施例。於一個實施例中,TXSR暫存器500可用來實作此處 討論之各個實施例,例如參照第2_3圖討論。例如,於一個 20實施例中,第2圖之暫存器240包括TXSR暫存器500。此外 茶照第2-4圖討論之操作可經由存取TXSR暫存器5〇〇來執行。 如第5圖所示,TXSR暫存器500可包括一個或多個登錄 項5〇2(或位元,於一實施例中)。各個登錄項502具有根據至 少一個指令集架構之例示名稱(5〇4)。同時各個登錄項5的 19 200815976 有相對應之類別506,例如於一大類中類似之群組位元。第 5圖額外顯示與各個登錄項502相對應之描述508。於一個實 施例中,類別資訊506及描述508係用於資訊目的,而未儲 存於實際暫存器500。於一個實施例中,若登錄項5〇2之一 5 指示由描述508所識別之狀態,則可進行一項或多項動作 510。於第5圖中,TXDR及TXFR可為用於除錯的暫存器(例 如包括第2圖之暫存器240)。例如,TXDR可儲存一記憶體 指令之位址,或於異動程式中止操作前儲存一資料衝突之 窥探位址。此外,TXFR可儲存已經造成異動程式中止的一 10錯誤指令之指令指標斋(IP)。於一個實施例中,儲存於txdR 及TXFR之數值可於中止後由異動處理器常式(例如由 TXMBEG所識別的處理器)讀取來判定造成該次程式中止 的位址。 參考第1-5圖,於一個實施例中,參考第3圖所討論之 15 TXMBEG指令依據TXSR暫存器500之狀態而定,可執行以 下兩個動作中之一者或二者: 1. TXMBEG齡可Μ執行絲本元素執行模式,此 處於指令後之操作係於可復原之模式執行。當核心1〇6係於 此種模式時’由指令所執行的任何更新皆可隨時被廢除。 2〇為了允許暫存器狀態可復原,若干暫存器冰可藉邏輯说 接党檢查點檢查。無法被復原的操作若執行時可能導致錯 誤,異動變遷被廢除,及/或控制轉移至由TXMbeg指令^ 識別之處理器。 2. TXMBEG指令也可依據TXSR暫存器5〇〇之狀態來作 20 200815976 條件式控制移轉。若設定適當TXSR位元,則TXMBEG指令 可移轉程式控制至與異動式記憶體存取請求相對應之指令 串流中的不同點,而未記錄回送資訊。目的地(目標)運算元 可規定該指令跳越的位址。當TXMBEG執行條件式控制移 5 轉時,核心106並未變遷至可復原之執行模式,根據至少一 個指令集架構,執行可能類似於JMP(或跳越)指令。 於一個實施例中,如下虛擬碼可說明前文參照第5圖所 • 示TXSR暫存器500之若干登錄項502所討論之操作:
ff 遞 = XjBCmiD
TH^I JMP至目的地運算元位址
ELSE
IF 二 IACTIWE TXMD 々漏D + l.
ekptSP : SP
PI 湯-暴:^3似.
FI rmm<ri
TXmrnrn^Mm s JLACTIVB ckptSP^SP ckptlP g IP(最外方開始基本元素之ip) 10
FI 於前述程式碼中,除了 SP暫存器之外可儲存多個暫存 器(例如暫存器240)。於一個實施例中,欲儲存的暫存器集 合可藉軟體而與硬體通訊。參考第1-5圖,於一個實施例 中參考弟3圖所討論之TXMEND指令依據TXSR暫存器500 21 200815976 之狀態而定可執行下列虛擬碼(於一個實施例中,以下 tmpmemstatus可為連續閘控來指示於快取記憶體116中的 全部快取區塊是否於適當狀態之一狀態): W TXSR N ^active
THEN m
THEM (*除役的巢套區塊*) m - wmm
THIN .,《toup舰細tatt_
THEN TXSR 舰 ji_ «:0ΜΜΠΤ_3 麵默《-0 :D麵 _E (*無法委任記憶體狀態*) TXSR 淑 eejt_ « X-ABOR:丽❹
ibort^ehejrtouiKKfeO
TXSIte獄一 si· = X-ABORTED TOE滅(*追蹤失敗嘗試數目*) immTm (*復原SP等*) 5 m 參考第1-5圖,於一個實施例中,參考第3圖所討論之 TXMABT指令允許使用者外顯中土基本元素區塊執行。該 22 200815976 效果係類似執行中止,全部更新皆被廢除(暫存器5〇〇之位 元除外)。於一個實施例中,ΤΧΜΑΒΤ指令依據^^§尺暫存 器500之狀態而定可執行下列虛擬碼:
W !ss K_ACTWE
THEM Η (· SMP,
TX亂e娜一state ‘X_AB〇R觀;p TXSKLattempLstate科
JMPtollflQP 5 於一個實施例中,下表1顯示樣本快取狀態(例如第2圖 之快取記憶體116之狀態)、第2圖之位元226及228之位元 值’及相對應之描述。於表1中,「Μ」指示經修改之快取 狀態,「Ε」指示互斥快取狀態,「s」指示共享快取狀態,「I」 指示無效快取狀態,「X」指示忽略不計狀態,以及「Ν/Α」 10 指示不適用。 TXR TXw 快取狀態 描述 0 ;i MESI Ν/Α(若TXw設定,則TXr也設定) 1 X 1 N/A(若快取狀態無效,則TX 位元無意義) 1 1 ES N/A(ES快取行不可為髒) 0 0 X 無額外意義 1 0 MES 無異動内部之行讀取(若Μ已經 於異動中讀取,但無法寫至異 動,則快取記憶體中之行為髒) 1 1 Μ 異動内部被寫入之行。更早的 數值已經被回寫至下一層級 表1 -樣本快取狀態及位元描述 於一個實施例中,下表2顯示處理器核心106之請求、 快取狀態(例如第2圖之快取記憶體116之狀態)、第2圖之位 200815976
元226及228之位元值及相對應之動作。表2中,rM」指示 經修改之快取狀態,「Ε」指示互斥快取狀態,「s」指示共 享快取狀態,「I」指示無效快取狀態,「X」指示忽略不計 狀態,「LD」表示載入請求,「ST」表示儲存請求,rLDntx」 5表示外顯非異動載入請求,「STntx」表示外顯非異動儲存 請求’「Done」表示除了於基準線系統(既有快取命中狀況, 並無其它動作)已經出現之操作以外並無額外操作, 「[TXr=?TXw=?]」表示對該事件之快取區塊之最終狀態, 「NA」表示本登錄項未發生,「FAULT」表示可能加旗標 10 之錯誤狀況’以及「Issue miss」表示將發出失誤請求。
核心 TXr TXw 快取 狀態 動作 X 0 1 MESI ΝΑ ~~ X 1 X I ΝΑ X 1 1 ES ΝΑ LD 0 0 MES [TXr=l TXw=〇l LD 1 0 MES Done ~ LD 1 i MES Done LD 0 0 I 發出失誤請求[TXr=l TXw=0] ST 0 0 M WB first retain own()[TXr=l Xw=ll ST 0 0 E [TXr=l Xw=l] ~ST 0 0 S 發出失誤請求(w/o資料移轉) [TXr=l TXw=l] ST 0 0 I 發出失誤請求[TXr=l TXw=l] ST 1 0 M WB first retain own()[TXr=l Xw=ll ST 1 0 E [TXr=l Xw=l] ST 1 0 S 發出失誤請求(w/o資料移轉) [TXr=l TXw=l] ST 1 1 一 M Done "LDntx 0 0 I 發出失誤請求[TXr=0 TXw=0] "LDntx 1 X MES Done LDntx 0 0 MES Done STntx 0 0 S 發出失誤請求(w/o資料移轉) 『TXr=0 TXw=0] STntx 0 0 I 發出失誤請求[TXr=0 TXw=0] STntx 0 0 ME Done STntx 1 0 MES FAULT "^Tntx 1 1 M FAULT 24 200815976 表2-樣本核心請求、快取狀態、位元值及動作 第6圖顯示電腦系統600之一實施例之方塊圖。電腦系 5統600包括一個或多個中央處理單元(CPU)或處理器6〇2其 係與互連裝置或匯流排604溝通。於一個實施例中,處理器 602與第1圖之處理器102相同或相似。此外,互連裝置604 可與參照第1-2圖所討論之互連裝置1〇4及/或112相同或類 似。處理器602可包括任何型別之處理器,諸如通用處理 10器、網路處理器(例如處理透過電腦網路通訊資料之處理 器),或其它處理器,包括精簡指令集電腦(RISC)處理器或 複雜指令集電腦(CISC)處理器。此外,處理器602有單核心 設計或多核心設計,例如包括一個或多個參照第1-2圖討論 之處理器核心1〇6。有多核心設計之處理器6〇2可將不同型 15 處理器核心整合於同一個積體電路(1C)晶粒上。此外,有多 核心設計之處理器602可實作為對稱多處理器或非對稱多 處理器。 如第6圖所示,晶片組606可與互連裝置6〇4通訊。晶片 組606可包括一記憶體控制中樞器(MCH)608。MCH 608包 20 括與記憶體114通訊之一記憶體控制器610。記憶體114可儲 存資料,例如包括由處理器602所執行之指令序列,或任何 其它與電腦系統6〇〇通訊之元件。於本發明之一個實施例 中,記憶體I14可包括一種或多種依電性儲存元件(或記憶 體元件),諸如隨機存取記憶體(RAM)、動態ram(DRAM)、 25 200815976 同步DRAM(SDRAM)、靜態RAM(SRAM)或其它依電性記情 體元件。也可使用非依電性記憶體,諸如硬碟。額外元件 可透過互連裝置604通訊,諸如多處理器及/或多系統呓憶 體通訊。 5 MCH 608可額外包括與圖形加速器616通訊之一圖形 介面6!4。於-個實施例中’圖形介面614可透過加速圖形 埠(AGP)而與圖形加速器616通訊。於本發明之_個實施例 , 中,顯示器(諸如平板顯示器)例如可經由一信號轉換器而與 瞻圖形介面614通訊,該信號轉換器將儲存於儲存元件諸如視 10訊記憶體或系統記憶體之影像之數位呈現轉成由顯示器所 解譯及顯不之顯示信號。於多個實施例中,顯示器元件所 產生之顯不信號可於被轉譯前通過多個控制元件,隨後顯 示於顯示器上。 此外,一中樞器介面618可於MCH 608與輸入/輸出(1/〇) 15控制中枢器(ICH)62〇間通訊。ICH 020可提供與電腦系統 • 600通訊之I/O元件間之介接。ICH 62〇可透過周邊橋接器(或 控制器)624而與一匯流排622通訊,橋接器624諸如為周邊 兀件互連(pci)橋接器或通用串流匯流排(USB)控制器。橋 接器624可提供處理器602與周邊元件間的資料徑路。也可 20利用其它類型之拓樸幾何。此外,多個匯流排可與ICH620 例如透過多個橋接器或控制器通訊。此外,與ICH 620通訊 >、匕周裝置於本發明之多個實施例中可包括整合式驅 動電子70件(IDE)或小型電腦系統介面(SCSI)硬碟、USB 隼鍵i⑺乳、並列埠、串列埠、軟碟機或數位資料支 26 200815976 援介面(例如數位視訊介面(DVI))。 E机排622可與一音訊元件626、一個或多個碟片驅動 态628及一網路配接器63〇通訊。網路配接器可與一電腦 網路631通訊,例如讓電腦系統600之多個元件透過該網路 5 631^送資料及/或接收資料。其它元件可經由匯流排622通 说。此外多個元件(諸如網路配接器63〇)於本發明之若干實 施例中可與MCH 608通訊。此外處理器6〇2及MCH 608可組 合來形成單一晶片。此外,於本發明之其它實施例中,圖 形加速器616可含括於MCH6〇8内部。 10 於一個實施例中,電腦系統600可包括依電性記憶體或 非依屯性ό己fe體(或儲存元件)。例如非依電性記憶體包括下 列之一者或多者:唯讀記憶體(R〇M)、可程式 ROM(PROM)、可抹除PROM(EpR〇M)、可電信抹除 EPROM(EEPROM)、碟片驅動器(例如628)、軟碟、光碟 15 R〇M(CD-ROM)、數位影音光碟(DVD)、快閃記憶體、磁光 碟或其它類型之用來儲存電子資料(例如包括指令)之非依 電性可機器讀取媒體。 第7圖顯示根據本發明之一實施例配置成為點對點 (PtP)組態之一電腦系統700。特別,第7圖顯示一電腦系統, 2〇此處處理器、έ己丨思體及輸入/輸出元件係由多個點對點介面 所互連。就第1-6圖所討論之操作也可由電腦系統7〇〇之一 個或多個元件執行。 如第7圖所示,系統700包括多個處理器,其中只顯示 兩個處理器7〇2及704以求清晰。處理器7〇2及7〇4各自包括 27 200815976 一本地記憶體控制中樞器(MCH)706及708來允許與記憶體 710及/或712通訊。記憶體710及/或712可儲存多項資料,諸 如參照第1、2及6圖討論者。 於一個實施例中,處理器702及704可為參照第6圖討論 5 之處理器602之一。處理器702及704可分別使用PtP介面電 路716及718透過點對點(PtP)介面714交換資料。此外,處理 器702及704可使用點對點介面電路726、728、730及732, 透過個別PtP介面722及724,各自與一晶片組720交換資 料。晶片組720進一步透過高效能圖形介面736,例如使用 10 — PtP介面電路737而與高效能圖形電路734交換資料。 至少一個本發明之實施例可提供於處理器702及704内 部。例如第1圖或第2圖之核心106中之一者或多者可位在處 理器702及704内部。但本發明之其它實施例可存在於第7圖 之電腦系統700内部之其它電路、邏輯單元或元件。此外, 15 本發明之其它實施例可分散遍佈於第7圖所示之若干電 路、邏輯單元或元件。 晶片組720可使用一PtP介面電路741而與一匯流排74〇 通訊。匯流排740有與其通訊之一個或多個元件,諸如匯流 排橋接器742及I/O元件743。透過匯流排744,匯流排橋接 20器742可與其它元件通訊,該等其它元件諸如鍵盤/滑鼠 745、通訊元件746[諸如數據機、網路介面元件(例如第6圖 之網路配接器630)或其它可與電腦網路631通訊之通訊元 件]、音訊I/O元件及/或資料儲存元件748。資料儲存元件748 可儲存可由處理器702及/或704所執行之程式碼749。 28 200815976 於本發明之多個實施例中,此處討論之操作例如參考 第1-7圖討論之操作可實作為硬體(例如電路)、軟體或韌體 或其組合,可提供為-電腦程式產品,例如包括可機器讀 取媒體或可電腦讀取媒體其上儲存有用來規劃一電腦執行 5此處討論之處理程序之指令(或軟體程序)。此外,「邏輯」 一詞例如包括軟體、硬體或軟體與硬體之組合。機器可讀 取媒體可包括一儲存元件,諸如前文就第^圖討論之元 件。此外,此等電腦可讀取媒體可下載為電腦程式產品, 其中該程式可藉由於載波具體實施之資料信號或其它傳播 10媒體透過-通訊鏈路(例如匯流排、數據機或網路連結)而由 -遠端電腦(例如伺服器)傳送至一請求的電腦(例如一客 端)。如此,於此處,载波可視為包含可機器讀取媒體。 於說明書中述及「一個實施例」或「-實施例」表示 就該實施例所說明之一特定特徵、結構或特性可含括於至 15少-項實作。「於-實施例中」出現於說明書中各處也可能 未全部皆指同一個實施例。 此外,於說明及申請專利範圍中,可使用「搞接」及 「連接」等詞及其衍生詞。於本發明之若干實施例中,「連 接」可用來指示兩個或多個元件彼此直接實體接觸或電接 觸。「輕接」表示兩個或多個元件直接實體接觸或電接觸。 但「輕接」也表示兩個或多個元件並非直接彼此接觸,而 仍然彼此協力或彼此互動。 如此’雖然已經就結構特徵及/或方法動作之特定語言 來描述本發明之實施例,但須瞭解所請求專利之主旨並非 29 200815976 揭示為、」::特徵或動作。反而該特定特徵及動作係 蜀丁為4 4專利之主旨之樣本形式。 【阖式簡草說明】 …第1、6及7_示可用來實作此處討論之多個實施例之 運t系統之實施例之方塊圖。 第2圖顯不根據本發明之實施例,一種處理器核心部分 之方塊圖。 ίο 第夂4圖顯示根據本發明之各個實施例之方法之方塊圖。 铱cm和-β … 第5圖顯 【主要元件符號說明】 100…電腦系統 212…重新排序緩衝器(ROB) !〇2…處理器 214…暫存器別名表(RAT) 104…互連裝置或匯流排 216…載入緩衝器 106…核心、處理器核心 218…儲存緩衝器 108…快取記憶體 219…記憶體定序緩衝器(m〇b)邏 110…路由器 輯 112…匯流排或互連裝置 220…匯流排單元 114…記憶體 222…填補緩衝器 116…快取記憶體 224…快取行 202…擷取單元 226…異動讀取位元 204…解碼單元 228···異動寫入位元,TXw位元 206…排程單元 230·..異動深度計數器 208···執行單元 232…異動深度計數器邏輯 210…除役單元 234···異動檢查點邏輯 30 200815976 236…異動復原邏輯 239…快取邏輯 240…額外暫存器 300···方法 302-320…操作方塊 400...方法 40241Z··操作方塊 500···異動狀態與控制暫存器 (TXSR),txSR 暫存器 502.··登錄項 504···例示名稱 506···類別、類別資訊 508…描述^ 510…動作 600…電腦系統 602···中央處理單元(CPU)或處理 器 604…互連裝置(或匯流排) 606…晶片組 608···記憶體控制中樞器(MCH) 610···記憶體控制器 614···圖形介面 616…圖形加速器 618…中樞器介面 620.. .輸入/輸出(I/O)控制中樞器 622…匯流排 624…週邊橋接器(或控制器) 626…音訊元件 628.. .碟片驅動器 630.. .網路配接器 631.. .電腦網路 700.. .電腦系統 702,704...處理器 706 ’ 708···記憶體控制器中樞器 (MCH) 710,712…記憶體 714···點對點(PtP)介面 716,Ή8···ΡΦ介面電路 720…晶片組 722,724...RP 介面 726,728,730,732···點對點介面 電路 734···高效能圖形電路 736…南效能圖形介面 737···ΡίΡ介面電路 740…匯流排 741···Ρφ介面電路 742…匯流排橋接器 31 200815976 743…I/O元件 744…匯流排 745…鍵盤/滑鼠 746…通訊元件 748...資料儲存元件 749···碼
32
Claims (1)
- 200815976 十、申請專利範圍: 1· 一種裝置,包含: 用以儲存與未被委付之異動式記憶體存取請求之 數目相對應之_數值之一儲存單元;以及 510 1520 二用以對一異動式記憶體存取請求開始及一異動式 讀體存取财委付之發生,更_存於_存單元中 之該數值之-第_邏輯裝置。 2·如申請專利範圍幻項之裝置,其進_步包含至少部分 響f於該等異動式記憶體存取請求之-,而儲存與-處 们或夕個元件的一狀態相對應之資料之一第 二邏輯裝置。 曱清專利範 弟2項之裝置,其進一步包含一第三邏 輯衣置用來於與該等異動式記憶體存取請求之一相對 ,之7❹韻料之至少—者未能委付後,復原該 处里》。之》亥個或多個元件之該狀態。 4·=請專利範圍第2項之裝置,其進一步包含-第三邏 衣置,用來於指示與該等異動式記憶體存取請求中之 至少一者相對應之-項或多項操作係可基元委付後造 成該一項或多項操作執行。 5. 如申請專利範圍第4項之裝置,其中於儲存於該儲存單 =中之錢值指出該等異動式記龍存取請求中之至 二者已獲委付後,該第三邏輯I置造成該—項或多項 4呆作之執行。 、 6. 如申請專利範圍第2項之褒置,其中該處理器之該—個 33 200815976 或多個元件包含一個或多個暫存器。 7·如申請專利範圍第1項之裝置,其^中該等異動式記憶體 存取請求係與同一執行緒相對應。 ~ 8. 如申請專利範圍第!項之裝置,其進—步包含用來 貧料之-快取記憶體,其中該快取記憶體包含一個或多 個位元用來指示對該快取記憶體之-部分與該等異動 式記憶體存取請求之一相對應的一個存取。 10 15 20 9. 如申請專利範圍第8項之裝置,其中該快取記憶體之該 部分為-快取行或-快取區塊中之_者或多者。 1〇.如申請專利範圍第8項之裝置,其中該快取記憶體中與 鱗異動式記憶體存取請求中之至少—者相對應之一 個或多個登_ ’係魏絲記㈣之其它登錄項之後 被逐出。 U·,申請專利範圍第!項之裝置,其進一步包含一第二邏 ^裝置’用來_式地執行無等㈣式魏體存取請 求相對應之-項或多項操作中之至少部分摔作。 12=請專利範圍第1項之裝置,其中與該等異動式記憶 $存取請求相對應之1或多項操作中之至少部分操 作,被識別為異動式或非異動式。 13.如申請專利範圍第㈣之裝置,其進—步包含一第二邏 輯f用來響應於下列之一者或多者中止該等異動式 。己丨思體存取請求中之至少一者·· 與一不同操作發生之一衝突; 強迫中止操作之—特定實作事件;3戈 34 200815976 對外顯式中止操作之一請求。 14.如申請專利範圍第1項之裝置,其進一步包含多個處理 器核心,其中該等多個處理器核心中之至少一者包含該 第一邏輯裝置或該儲存單元中之一者或多者。 5 15.如申請專利範圍第1項之裝置,其進一步包含一第二邏 輯裝置用來於該等異動式記憶體存取請求中之前一者 已經存取與一載入操作相對應之一記憶體的同一個位 置後,造成推測性地發出該載入操作。 16. 如申請專利範圍第1項之裝置,其進一步包含一第二邏 10 輯裝置用來造成與該異動式記憶體存取相對應之非異 動式儲存動作的執行,作為寫入該記憶體之寫穿式操 作。 17. —種方法,其包含有下列步驟: 響應於與一異動式記憶體請求相對應之至少一第 15 —指令,更新與未被委付之異動式記憶體存取請求的一 數目相對應之一儲存值;以及 響應於與該異動式記憶體請求相對應之一第二指 令,執行一項或多項操作。 18. 如申請專利範圍第17項之方法,其進一步包含響應於該 20 第二指令更新該儲存值。 19. 如申請專利範圍第17項之方法,其進一步包含響應於該 第一指令對一處理器之一個或多個元件進行檢查點檢 查〇 20. 如申請專利範圍第17項之方法,其進一步包含若與一快 35 200815976 取記憶體之-部分相對應之一位元指 憶體的同一邱八+ τ Τ Λ既取口己 f “刀之—切異動式存取動作,則推測性地 71 、料動式記賴請求相對應之1入指令。 51520 .=請專利範圍第17項之方法’其進—步包含把與該異 ^己憶體請求相對應之—個或多個指令識別為異動 式或非異動式。 22^申請專利範圍第21項之方法,其中識別該-項或多項 曰令之步驟係内隱式進行或外顯式進行。 23·—種系統,包含: 儲存資料用之一記憶體; 一處理器,其包含有: 一第一邏輯裝置,用來由該記憶體中擷取與一 異動式記憶體存取之起始相對應之一第一指令、以 及由4 Z 體操取與該異動式記憶體存取之終點 相對應之一第二指令;以及 用以響應於該第一指令及該第二指令中之一 者或多者’更新儲存於一儲存單元中之一數值之一第 一邏輯裝置。 fy μ •如申請專利範圍第23項之系統,其進一步包含一第三邏 輯裝置’用來於指示一項或多項操作係可基元委付後, 造成該一項或多項操作針對該記憶體執行。 25·如申請專利範圍第23項之系統,其進一步包含一第三邏 輯裳置,用來於與該異動式記憶體存取相對應之一項或 多項操作中之至少一者未能委付後,復原該處理器之一 36 200815976 個或多個元件之一狀態。 26.如申請專利範圍第23項之方法,其中儲存於該儲存單元 中之該數值係與未被委付之異動式記憶體存取請求之 一數目相對應。 5 27.如申請專利範圍第23項之方法,其中該第二邏輯裝置響 應於該第一指令或該第二指令之執行或發出而更新儲 存於該儲存單元中之該數值。 28. 如申請專利範圍第23項之系統,其進一步包含一快取記 憶體,用來儲存該記憶體内所存資料中的至少部分資 10 料,其中該快取記憶體包含一個或多個位元,用來指出 對該快取記憶體之一部分與該異動式記憶體存取相對 應的一個存取。 29. 如申請專利範圍第28項之系統,其進一步包含用以響應 於與該異動式記憶體存取相對應之一項或多項操作,更 15 新儲存於該快取記憶體中之資料之一第三邏輯裝置。 30. 如申請專利範圍第23項之系統,其進一步包含一音訊元 件0 37
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US11/394,687 US8180977B2 (en) | 2006-03-30 | 2006-03-30 | Transactional memory in out-of-order processors |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| TW200815976A true TW200815976A (en) | 2008-04-01 |
| TWI371688B TWI371688B (en) | 2012-09-01 |
Family
ID=38563996
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| TW096111333A TWI371688B (en) | 2006-03-30 | 2007-03-30 | An apparatus, method and system perform transactional memory operations |
Country Status (7)
| Country | Link |
|---|---|
| US (1) | US8180977B2 (zh) |
| JP (1) | JP5118652B2 (zh) |
| CN (2) | CN103257933B (zh) |
| DE (2) | DE112007003801B3 (zh) |
| GB (1) | GB2447200B (zh) |
| TW (1) | TWI371688B (zh) |
| WO (1) | WO2007115003A1 (zh) |
Families Citing this family (85)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US8813052B2 (en) * | 2005-12-07 | 2014-08-19 | Microsoft Corporation | Cache metadata for implementing bounded transactional memory |
| US8683143B2 (en) * | 2005-12-30 | 2014-03-25 | Intel Corporation | Unbounded transactional memory systems |
| US8898652B2 (en) | 2006-03-23 | 2014-11-25 | Microsoft Corporation | Cache metadata for accelerating software transactional memory |
| US8180977B2 (en) | 2006-03-30 | 2012-05-15 | Intel Corporation | Transactional memory in out-of-order processors |
| US8180967B2 (en) * | 2006-03-30 | 2012-05-15 | Intel Corporation | Transactional memory virtualization |
| US8165025B2 (en) * | 2006-12-08 | 2012-04-24 | Ixia | Method and apparatus for generating a unique packet identifier |
| US7669040B2 (en) * | 2006-12-15 | 2010-02-23 | Sun Microsystems, Inc. | Method and apparatus for executing a long transaction |
| US20080158237A1 (en) * | 2006-12-28 | 2008-07-03 | Selwan Pierre M | Graphics memory module |
| US7904668B2 (en) * | 2007-12-31 | 2011-03-08 | Oracle America, Inc. | Optimistic semi-static transactional memory implementations |
| US7966459B2 (en) * | 2007-12-31 | 2011-06-21 | Oracle America, Inc. | System and method for supporting phased transactional memory modes |
| US8621183B2 (en) | 2008-07-28 | 2013-12-31 | Advanced Micro Devices, Inc. | Processor with support for nested speculative sections with different transactional modes |
| US8627017B2 (en) * | 2008-12-30 | 2014-01-07 | Intel Corporation | Read and write monitoring attributes in transactional memory (TM) systems |
| US9785462B2 (en) * | 2008-12-30 | 2017-10-10 | Intel Corporation | Registering a user-handler in hardware for transactional memory event handling |
| US8627014B2 (en) * | 2008-12-30 | 2014-01-07 | Intel Corporation | Memory model for hardware attributes within a transactional memory system |
| US8812796B2 (en) | 2009-06-26 | 2014-08-19 | Microsoft Corporation | Private memory regions and coherence optimizations |
| US8489864B2 (en) * | 2009-06-26 | 2013-07-16 | Microsoft Corporation | Performing escape actions in transactions |
| US8161247B2 (en) | 2009-06-26 | 2012-04-17 | Microsoft Corporation | Wait loss synchronization |
| US8250331B2 (en) | 2009-06-26 | 2012-08-21 | Microsoft Corporation | Operating system virtual memory management for hardware transactional memory |
| US8370577B2 (en) | 2009-06-26 | 2013-02-05 | Microsoft Corporation | Metaphysically addressed cache metadata |
| US8356166B2 (en) * | 2009-06-26 | 2013-01-15 | Microsoft Corporation | Minimizing code duplication in an unbounded transactional memory system by using mode agnostic transactional read and write barriers |
| US8229907B2 (en) * | 2009-06-30 | 2012-07-24 | Microsoft Corporation | Hardware accelerated transactional memory system with open nested transactions |
| US8924975B2 (en) * | 2009-07-23 | 2014-12-30 | Empire Technology Development Llc | Core selection for applications running on multiprocessor systems based on core and application characteristics |
| US20110219215A1 (en) * | 2010-01-15 | 2011-09-08 | International Business Machines Corporation | Atomicity: a multi-pronged approach |
| US8838906B2 (en) * | 2010-01-08 | 2014-09-16 | International Business Machines Corporation | Evict on write, a management strategy for a prefetch unit and/or first level cache in a multiprocessor system with speculative execution |
| US9477515B2 (en) | 2009-12-15 | 2016-10-25 | Intel Corporation | Handling operating system (OS) transitions in an unbounded transactional memory (UTM) mode |
| US8539465B2 (en) | 2009-12-15 | 2013-09-17 | Microsoft Corporation | Accelerating unbounded memory transactions using nested cache resident transactions |
| US9092253B2 (en) * | 2009-12-15 | 2015-07-28 | Microsoft Technology Licensing, Llc | Instrumentation of hardware assisted transactional memory system |
| US8402218B2 (en) | 2009-12-15 | 2013-03-19 | Microsoft Corporation | Efficient garbage collection and exception handling in a hardware accelerated transactional memory system |
| US8533440B2 (en) * | 2009-12-15 | 2013-09-10 | Microsoft Corporation | Accelerating parallel transactions using cache resident transactions |
| US8521995B2 (en) * | 2009-12-15 | 2013-08-27 | Intel Corporation | Handling operating system (OS) transitions in an unbounded transactional memory (UTM) mode |
| US8924692B2 (en) | 2009-12-26 | 2014-12-30 | Intel Corporation | Event counter checkpointing and restoring |
| US8479053B2 (en) | 2010-07-28 | 2013-07-02 | Intel Corporation | Processor with last branch record register storing transaction indicator |
| US8484235B2 (en) | 2011-03-28 | 2013-07-09 | International Business Machines Corporation | Dynamically switching the serialization method of a data structure |
| US9582275B2 (en) | 2011-05-31 | 2017-02-28 | Intel Corporation | Method and apparatus for obtaining a call stack to an event of interest and analyzing the same |
| WO2013101144A1 (en) * | 2011-12-30 | 2013-07-04 | Intel Corporation | Overlapping atomic regions in a processor |
| US9323678B2 (en) * | 2011-12-30 | 2016-04-26 | Intel Corporation | Identifying and prioritizing critical instructions within processor circuitry |
| WO2013115816A1 (en) * | 2012-02-02 | 2013-08-08 | Intel Corporation | A method, apparatus, and system for speculative abort control mechanisms |
| US9558118B2 (en) | 2012-03-30 | 2017-01-31 | Intel Corporation | Tracing mechanism for recording shared memory interleavings on multi-core processors |
| US9442737B2 (en) | 2012-06-15 | 2016-09-13 | International Business Machines Corporation | Restricting processing within a processor to facilitate transaction completion |
| US9772854B2 (en) | 2012-06-15 | 2017-09-26 | International Business Machines Corporation | Selectively controlling instruction execution in transactional processing |
| US9336046B2 (en) | 2012-06-15 | 2016-05-10 | International Business Machines Corporation | Transaction abort processing |
| US9015419B2 (en) | 2012-06-15 | 2015-04-21 | International Business Machines Corporation | Avoiding aborts due to associativity conflicts in a transactional environment |
| US9298631B2 (en) | 2012-06-15 | 2016-03-29 | International Business Machines Corporation | Managing transactional and non-transactional store observability |
| US8682877B2 (en) | 2012-06-15 | 2014-03-25 | International Business Machines Corporation | Constrained transaction execution |
| US9262320B2 (en) | 2012-06-15 | 2016-02-16 | International Business Machines Corporation | Tracking transactional execution footprint |
| US9223687B2 (en) | 2012-06-15 | 2015-12-29 | International Business Machines Corporation | Determining the logical address of a transaction abort |
| US9448796B2 (en) * | 2012-06-15 | 2016-09-20 | International Business Machines Corporation | Restricted instructions in transactional execution |
| US9740549B2 (en) | 2012-06-15 | 2017-08-22 | International Business Machines Corporation | Facilitating transaction completion subsequent to repeated aborts of the transaction |
| US10437602B2 (en) | 2012-06-15 | 2019-10-08 | International Business Machines Corporation | Program interruption filtering in transactional execution |
| US20130339680A1 (en) * | 2012-06-15 | 2013-12-19 | International Business Machines Corporation | Nontransactional store instruction |
| US9361115B2 (en) | 2012-06-15 | 2016-06-07 | International Business Machines Corporation | Saving/restoring selected registers in transactional processing |
| US9311101B2 (en) * | 2012-06-15 | 2016-04-12 | International Business Machines Corporation | Intra-instructional transaction abort handling |
| US8966324B2 (en) | 2012-06-15 | 2015-02-24 | International Business Machines Corporation | Transactional execution branch indications |
| US9348642B2 (en) | 2012-06-15 | 2016-05-24 | International Business Machines Corporation | Transaction begin/end instructions |
| US8688661B2 (en) | 2012-06-15 | 2014-04-01 | International Business Machines Corporation | Transactional processing |
| US9317460B2 (en) | 2012-06-15 | 2016-04-19 | International Business Machines Corporation | Program event recording within a transactional environment |
| US9384004B2 (en) | 2012-06-15 | 2016-07-05 | International Business Machines Corporation | Randomized testing within transactional execution |
| US9298469B2 (en) | 2012-06-15 | 2016-03-29 | International Business Machines Corporation | Management of multiple nested transactions |
| US9367323B2 (en) * | 2012-06-15 | 2016-06-14 | International Business Machines Corporation | Processor assist facility |
| US9436477B2 (en) | 2012-06-15 | 2016-09-06 | International Business Machines Corporation | Transaction abort instruction |
| US8880959B2 (en) | 2012-06-15 | 2014-11-04 | International Business Machines Corporation | Transaction diagnostic block |
| US9411739B2 (en) * | 2012-11-30 | 2016-08-09 | Intel Corporation | System, method and apparatus for improving transactional memory (TM) throughput using TM region indicators |
| US9182986B2 (en) | 2012-12-29 | 2015-11-10 | Intel Corporation | Copy-on-write buffer for restoring program code from a speculative region to a non-speculative region |
| US20140281236A1 (en) * | 2013-03-14 | 2014-09-18 | William C. Rash | Systems and methods for implementing transactional memory |
| US9547594B2 (en) * | 2013-03-15 | 2017-01-17 | Intel Corporation | Instructions to mark beginning and end of non transactional code region requiring write back to persistent storage |
| US9535744B2 (en) * | 2013-06-29 | 2017-01-03 | Intel Corporation | Method and apparatus for continued retirement during commit of a speculative region of code |
| CN104572506B (zh) * | 2013-10-18 | 2019-03-26 | 阿里巴巴集团控股有限公司 | 一种并发访问内存的方法及装置 |
| US9158573B2 (en) | 2013-12-12 | 2015-10-13 | International Business Machines Corporation | Dynamic predictor for coalescing memory transactions |
| US9292337B2 (en) | 2013-12-12 | 2016-03-22 | International Business Machines Corporation | Software enabled and disabled coalescing of memory transactions |
| US9146774B2 (en) * | 2013-12-12 | 2015-09-29 | International Business Machines Corporation | Coalescing memory transactions |
| US9348523B2 (en) | 2013-12-12 | 2016-05-24 | International Business Machines Corporation | Code optimization to enable and disable coalescing of memory transactions |
| US9348522B2 (en) * | 2013-12-12 | 2016-05-24 | International Business Machines Corporation | Software indications and hints for coalescing memory transactions |
| CN105723348B (zh) * | 2013-12-17 | 2019-02-15 | 英特尔公司 | 使用事务性存储器检测未授权存储器修改及访问 |
| US10324768B2 (en) * | 2014-12-17 | 2019-06-18 | Intel Corporation | Lightweight restricted transactional memory for speculative compiler optimization |
| GB2533416A (en) * | 2014-12-19 | 2016-06-22 | Advanced Risc Mach Ltd | Monitoring utilization of transactional processing resource |
| GB2533415B (en) * | 2014-12-19 | 2022-01-19 | Advanced Risc Mach Ltd | Apparatus with at least one resource having thread mode and transaction mode, and method |
| US10318430B2 (en) * | 2015-06-26 | 2019-06-11 | International Business Machines Corporation | System operation queue for transaction |
| CN106527961B (zh) * | 2015-09-15 | 2019-06-21 | 伊姆西公司 | 用于保证数据一致性的方法和装置 |
| US10261827B2 (en) | 2015-10-29 | 2019-04-16 | International Business Machines Corporation | Interprocessor memory status communication |
| US9916179B2 (en) | 2015-10-29 | 2018-03-13 | International Business Machines Corporation | Interprocessor memory status communication |
| US9563467B1 (en) * | 2015-10-29 | 2017-02-07 | International Business Machines Corporation | Interprocessor memory status communication |
| US9760397B2 (en) | 2015-10-29 | 2017-09-12 | International Business Machines Corporation | Interprocessor memory status communication |
| US20170371701A1 (en) * | 2016-06-27 | 2017-12-28 | Kshitij A. Doshi | Apparatuses, methods, and systems for granular and adaptive hardware transactional synchronization |
| GB2579246B (en) * | 2018-11-28 | 2021-10-13 | Advanced Risc Mach Ltd | Apparatus and data processing method for transactional memory |
| US11921637B2 (en) * | 2019-05-24 | 2024-03-05 | Texas Instruments Incorporated | Write streaming with cache write acknowledgment in a processor |
Family Cites Families (36)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5428761A (en) * | 1992-03-12 | 1995-06-27 | Digital Equipment Corporation | System for achieving atomic non-sequential multi-word operations in shared memory |
| US5652859A (en) * | 1995-08-17 | 1997-07-29 | Institute For The Development Of Emerging Architectures, L.L.C. | Method and apparatus for handling snoops in multiprocessor caches having internal buffer queues |
| US5765208A (en) * | 1995-09-29 | 1998-06-09 | Motorola, Inc. | Method of speculatively executing store instructions prior to performing snoop operations |
| US5835961A (en) * | 1996-05-03 | 1998-11-10 | Digital Equipment Corporation | System for non-current page table structure access |
| US6038645A (en) * | 1996-08-28 | 2000-03-14 | Texas Instruments Incorporated | Microprocessor circuits, systems, and methods using a combined writeback queue and victim cache |
| US20020108025A1 (en) * | 1998-10-21 | 2002-08-08 | Nicholas Shaylor | Memory management unit for java environment computers |
| US6681293B1 (en) * | 2000-08-25 | 2004-01-20 | Silicon Graphics, Inc. | Method and cache-coherence system allowing purging of mid-level cache entries without purging lower-level cache entries |
| US6895527B1 (en) * | 2000-09-30 | 2005-05-17 | Intel Corporation | Error recovery for speculative memory accesses |
| US6640285B1 (en) * | 2000-10-26 | 2003-10-28 | Emc Corporation | Method and apparatus for improving the efficiency of cache memories using stored activity measures |
| US7080119B2 (en) * | 2001-07-17 | 2006-07-18 | Bea Systems, Inc. | System and method for transaction processing with delegated commit feature |
| US6877088B2 (en) * | 2001-08-08 | 2005-04-05 | Sun Microsystems, Inc. | Methods and apparatus for controlling speculative execution of instructions based on a multiaccess memory condition |
| US7120762B2 (en) | 2001-10-19 | 2006-10-10 | Wisconsin Alumni Research Foundation | Concurrent execution of critical sections by eliding ownership of locks |
| US7328316B2 (en) * | 2002-07-16 | 2008-02-05 | Sun Microsystems, Inc. | Software transactional memory for dynamically sizable shared data structures |
| US7263585B2 (en) * | 2002-09-19 | 2007-08-28 | Ip-First, Llc | Store-induced instruction coherency mechanism |
| US7269717B2 (en) | 2003-02-13 | 2007-09-11 | Sun Microsystems, Inc. | Method for reducing lock manipulation overhead during access to critical code sections |
| US7216202B1 (en) * | 2003-02-25 | 2007-05-08 | Sun Microsystems, Inc. | Method and apparatus for supporting one or more servers on a single semiconductor chip |
| US7139892B2 (en) | 2003-05-02 | 2006-11-21 | Microsoft Corporation | Implementation of memory access control using optimizations |
| US7676603B2 (en) * | 2004-04-20 | 2010-03-09 | Intel Corporation | Write combining protocol between processors and chipsets |
| GB0415850D0 (en) * | 2004-07-15 | 2004-08-18 | Imagination Tech Ltd | Memory management system |
| US20060026557A1 (en) * | 2004-07-29 | 2006-02-02 | International Business Machines Corporation | Manipulating portlets |
| US7395382B1 (en) * | 2004-08-10 | 2008-07-01 | Sun Microsystems, Inc. | Hybrid software/hardware transactional memory |
| CN1755365A (zh) * | 2004-09-29 | 2006-04-05 | 中国人民解放军军事医学科学院基础医学研究所 | 一种检测丙型肝炎病毒抗体的方法 |
| US7856537B2 (en) * | 2004-09-30 | 2010-12-21 | Intel Corporation | Hybrid hardware and software implementation of transactional memory access |
| US7984248B2 (en) * | 2004-12-29 | 2011-07-19 | Intel Corporation | Transaction based shared data operations in a multiprocessor environment |
| US20060184840A1 (en) * | 2005-02-11 | 2006-08-17 | International Business Machines Corporation | Using timebase register for system checkstop in clock running environment in a distributed nodal environment |
| WO2006124193A2 (en) * | 2005-04-20 | 2006-11-23 | Videoegg, Inc. | Browser enabled video manipulation |
| US7882339B2 (en) * | 2005-06-23 | 2011-02-01 | Intel Corporation | Primitives to enhance thread-level speculation |
| US7480771B2 (en) * | 2005-08-17 | 2009-01-20 | Sun Microsystems, Inc. | Conditional synchronization mechanisms allowing multiple store operations to become visible while a flagged memory location is owned and remains unchanged |
| US7809903B2 (en) * | 2005-12-15 | 2010-10-05 | Intel Corporation | Coordinating access to memory locations for hardware transactional memory transactions and software transactional memory transactions |
| US7870545B2 (en) | 2005-12-16 | 2011-01-11 | Intel Corporation | Protecting shared variables in a software transactional memory system |
| US7730286B2 (en) * | 2005-12-30 | 2010-06-01 | Intel Corporation | Software assisted nested hardware transactions |
| US8683143B2 (en) * | 2005-12-30 | 2014-03-25 | Intel Corporation | Unbounded transactional memory systems |
| US20070186056A1 (en) * | 2006-02-07 | 2007-08-09 | Bratin Saha | Hardware acceleration for a software transactional memory system |
| US9009116B2 (en) * | 2006-03-28 | 2015-04-14 | Oracle America, Inc. | Systems and methods for synchronizing data in a cache and database |
| US8180977B2 (en) | 2006-03-30 | 2012-05-15 | Intel Corporation | Transactional memory in out-of-order processors |
| US8185698B2 (en) * | 2007-04-09 | 2012-05-22 | Bratin Saha | Hardware acceleration of a write-buffering software transactional memory |
-
2006
- 2006-03-30 US US11/394,687 patent/US8180977B2/en active Active
-
2007
- 2007-03-20 DE DE112007003801.2T patent/DE112007003801B3/de active Active
- 2007-03-20 CN CN201310090359.8A patent/CN103257933B/zh active Active
- 2007-03-20 CN CN2007800107806A patent/CN101410797B/zh active Active
- 2007-03-20 GB GB0812727A patent/GB2447200B/en active Active
- 2007-03-20 JP JP2008556588A patent/JP5118652B2/ja active Active
- 2007-03-20 DE DE112007000812.1T patent/DE112007000812B4/de active Active
- 2007-03-20 WO PCT/US2007/064450 patent/WO2007115003A1/en not_active Ceased
- 2007-03-30 TW TW096111333A patent/TWI371688B/zh not_active IP Right Cessation
Also Published As
| Publication number | Publication date |
|---|---|
| DE112007000812B4 (de) | 2023-06-07 |
| TWI371688B (en) | 2012-09-01 |
| GB0812727D0 (en) | 2008-08-20 |
| CN101410797A (zh) | 2009-04-15 |
| JP2009527866A (ja) | 2009-07-30 |
| JP5118652B2 (ja) | 2013-01-16 |
| CN101410797B (zh) | 2013-04-24 |
| CN103257933B (zh) | 2017-12-15 |
| CN103257933A (zh) | 2013-08-21 |
| GB2447200B (en) | 2011-06-22 |
| GB2447200A (en) | 2008-09-03 |
| US20070260942A1 (en) | 2007-11-08 |
| DE112007003801B3 (de) | 2023-07-13 |
| US8180977B2 (en) | 2012-05-15 |
| WO2007115003A1 (en) | 2007-10-11 |
| DE112007000812T5 (de) | 2009-01-22 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| TW200815976A (en) | Transactional memory in out-of-order processors | |
| US8301849B2 (en) | Transactional memory in out-of-order processors with XABORT having immediate argument | |
| US8180967B2 (en) | Transactional memory virtualization | |
| US7627722B2 (en) | Method for denying probes during proactive synchronization within a computer system | |
| CN101802798B (zh) | 在多核处理器中使用干预消息来避免活锁 | |
| CN103544052B (zh) | 用于硬件锁省略(hle)的后期锁获取机制的装置和方法 | |
| JP3661614B2 (ja) | キャッシュメモリ制御方法及びマルチプロセッサシステム | |
| CN101322103B (zh) | 无约束事务存储器系统及其方法 | |
| CN101326494B (zh) | 协调硬件事务和软件事务对存储单元的访问的方法和系统 | |
| US7739455B2 (en) | Avoiding livelock using a cache manager in multiple core processors | |
| TW200817894A (en) | Global overflow method for virtualized transactional memory | |
| US11748174B2 (en) | Method for arbitration and access to hardware request ring structures in a concurrent environment | |
| TW201037524A (en) | Registering a user-handler in hardware for transactional memory event handling | |
| TW200805151A (en) | Apparatus and method for handling data cache misses out-of-order for asynchronous pipelines | |
| CN101788922A (zh) | 基于辅助线程实现事务存储系统的方法和装置 | |
| JP6005392B2 (ja) | ルーティングのための方法及び装置 | |
| US20050283783A1 (en) | Method for optimizing pipeline use in a multiprocessing system | |
| US11327759B2 (en) | Managing low-level instructions and core interactions in multi-core processors | |
| CN101533363B (zh) | 引退前-后混合硬件锁定省略(hle)方案 | |
| CN117472803B (zh) | 原子指令执行方法、装置及电子设备 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| MM4A | Annulment or lapse of patent due to non-payment of fees |