[go: up one dir, main page]

TW200815976A - Transactional memory in out-of-order processors - Google Patents

Transactional memory in out-of-order processors Download PDF

Info

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
Application number
TW096111333A
Other languages
English (en)
Other versions
TWI371688B (en
Inventor
Ravi Rajwar
Haitham H Akkary
Konrad Lai
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of TW200815976A publication Critical patent/TW200815976A/zh
Application granted granted Critical
Publication of TWI371688B publication Critical patent/TWI371688B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • G06F9/526Mutual exclusion algorithms
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/161Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement
    • G06F13/1626Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement by reordering requests
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30076Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
    • G06F9/30087Synchronisation or serialisation instructions
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3824Operand accessing
    • G06F9/3834Maintaining memory consistency
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3854Instruction completion, e.g. retiring, committing or graduating
    • G06F9/3858Result writeback, i.e. updating the architectural state or memory
    • G06F9/38585Result writeback, i.e. updating the architectural state or memory with result invalidation, e.g. nullification
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3861Recovery, e.g. branch miss-prediction, exception handling
    • G06F9/3863Recovery, 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)

  1. 200815976 十、申請專利範圍: 1· 一種裝置,包含: 用以儲存與未被委付之異動式記憶體存取請求之 數目相對應之_數值之一儲存單元;以及 5
    10 15
    20 二用以對一異動式記憶體存取請求開始及一異動式 讀體存取财委付之發生,更_存於_存單元中 之該數值之-第_邏輯裝置。 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入指令。 5
    15
    20 .=請專利範圍第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
TW096111333A 2006-03-30 2007-03-30 An apparatus, method and system perform transactional memory operations TWI371688B (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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