TW201037524A - Registering a user-handler in hardware for transactional memory event handling - Google Patents

Registering a user-handler in hardware for transactional memory event handling Download PDF

Info

Publication number
TW201037524A
TW201037524A TW098143374A TW98143374A TW201037524A TW 201037524 A TW201037524 A TW 201037524A TW 098143374 A TW098143374 A TW 098143374A TW 98143374 A TW98143374 A TW 98143374A TW 201037524 A TW201037524 A TW 201037524A
Authority
TW
Taiwan
Prior art keywords
handler
transaction
execution
event
processor
Prior art date
Application number
TW098143374A
Other languages
English (en)
Other versions
TWI476595B (zh
Inventor
Gad Sheaffer
Shlomo Raikin
Vadim Bassin
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 TW201037524A publication Critical patent/TW201037524A/zh
Application granted granted Critical
Publication of TWI476595B publication Critical patent/TWI476595B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/466Transaction processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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
    • G06F9/528Mutual exclusion algorithms by using speculative mechanisms

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)
  • Executing Machine-Instructions (AREA)
  • Advance Control (AREA)
  • Devices For Executing Special Programs (AREA)

Description

201037524 六、發明說明: 【發明所屬之技術領域】 本發明有關於處理器執行的領域,詳言之,指令群的 執行。 [相關申請案之交互參考] 本發明有關於與此一起申請的下列專利申請案:由蓋 _ 德薛佛(Gad Sheaf fer )等人於2008年12月30日申請的 Ο 名稱爲「延伸快取一致性協定以支援本地緩衝之資料( Extending Cache Coherency Protocols to Support Locally Buffered Data)」之具有專利代理人卷號P29 1 3 2的美國 專利申請案號1 2/3 46,543、由蓋德薛佛(Gad Sheaffer ) 等人於2008年12月30日申請的名稱爲「交易式記憶體 系統內之硬體屬性的記憶體模型(Memory Model for Hardware Attributes Within a Transactional Memory Q System)」之具有專利代理人卷號P29131的美國專利申 請案號12/346,539、由蓋德薛佛(Gad Sheaffer )等人於 2008年12月30日申請的名稱爲「交易式記憶體系統內之 讀取及寫入監視屬性(Read and Write Monitoring Attributes in Transactional Memory (TM) System )」之具 有專利代理人卷號 P29 1 3 0的美國專利申請案號 1 2/346,5 30、由蓋德薛佛(Gad Sheaffer)等人於 2008 年 12月30日申請的名稱爲「在硬體中保持失真元資料用的 抽象位址空間(Metaphysical Address Space for Holding 201037524
Lossy Meta-data in Hardware)」之具有專利代理人卷號 P29 1 28的美國專利申請案號1 2/346,500。 【先前技術】 半導體處理及邏輯設計的進步允許可存在於積體電路 裝置上的邏輯數量之增加。因此,電腦系統組態已從系統 中之單一或多積體電路演化成存在於個別積體電路上之多 核心及多邏輯處理器。處理器或積體電路典型包含單一處 理器晶粒,其中處理器晶粒可包括任何數量的核心或邏輯 處理器。 在積體電路上之不斷增加的核心及邏輯處理器的數量 允許同時執行更多軟體執行緒。然而,可同時執行的軟體 執行緒之數量的增加已經在同步化軟體執行緒間共享之資 料上產生問題。一種常見的存取多核心或多邏輯處理器系 統中之共享資料的解決方法包含閉鎖的使用,以保證在對 共享資料的多重存取內之互斥(mutual exclusion)。然而 ’執行多重軟體執行緒不斷增加的能力潛在導致假競爭以 及執行的序列化。 例如’考量保持共享資料的散列表。藉由閉鎖系統, 程式設計人員可閉鎖整個散列表,允許一執行緒存取整個 散列表。然而’其他執行緒的產出量及性能會受到危及, 因其無法存取散列表中的任何項目,直到閉鎖解除爲止。 替代地’可閉鎖散列表中之各個項目。無論哪種方式,在 從此簡單的範例推及大型可擴充程式之後,很明顯地對程 -6- 201037524 式設計人員而言閉鎖競爭、序列化、微粒同步化及鎖死避 免的複雜度會變成非常棘手的負擔。 另一種最近的資料同步化技術包括交易式記憶體( TM )的使用。交易式執行經常包括執行一群複數微操作 、操作或指令。在上述範例中,監視/追蹤散列表內之執 行緒執行及其記憶體存取兩者。若兩個執行緒存取/變更 相同項目’可執行衝突化解以確保資料效度。一種交易式 執行包括軟體交易式記憶體(STM),其中經常在沒有硬 體支援下在軟體中執行記憶體存取的追蹤、衝突化解、放 棄任務及其他交易式任務。另一種交易式執行包括硬體交 易式記憶體(ΗTM )系統,其中包括硬體以支援存取追蹤 、衝突化解及其他交易式任務。 交易內的某些操作係基於由交易讀取或產生之資料。 若損壞此資料或監視對此資料之存取之資訊,可能發生意 外的副作用。例如,假設一交易將分支目的地寫入某變數 X中。由於交易式記憶體的語義,X的値可能會被改變( 如以緩衝方式寫入X且喪失緩衝器)。在改變後,交易基 於從位址X讀取之新的無效値嘗試分支,因而發生意外的 結果。由純同步軟體(0 S或V Μ Μ )方法(如輪詢)或在 交易最後所處置之事件(如上述那些)可能不夠立即而無 法在發生意外結果前處置改變或衝突。 【發明內容及實施方式】 在下列說明中’提出各種特定細節,如交易執行的特 201037524 定硬體結構、存取監視器的特定類型及實行、特定快取實 行、特定類型之快取一致性模型、特定資料粒度及特定類 型之記憶體存取及位置等等’以利本發明之詳盡的了解。 然而’對熟悉此技藝人士明顯地’無需利用這些特定細節 來實施本發明。在其他例子中,並未詳細說明熟知的構件 及方法’如軟體中之交易的編碼、交易之定界、特定及替 代型多核心及多執行緒處理器架構'特定編譯器方法/實 行及微處理器之特定操作細節,以不多餘地混淆本發明。 在此所述之方法及設備爲用於暫存硬體中之處置器以 支援至處置器的最佳化控制流程轉移。詳言之,暫存處置 器係主要參照硬體交易式記憶體系統加以說明。然而,暫 存處置器之方法及設備不如此受限,可針對需要處置器介 入之任何硬體執行實施其。 參照第1圖’描繪能夠同時執行多執行緒的處理器之 一實施例。注意到處理器1 00可包括硬體交易式執行的硬 體支援。與硬體交易式執行一起或分開地,處理器100亦 可提供軟體交易式記憶體(s TM )的硬體加速、S TM的分 別執行或其之組合,如綜合交易式記憶體(TM )系統的 硬體支援。處理器1〇〇包括任何處理器,如微處理器、嵌 入式處理器、數位信號處理器(DSP )、網路處理器或執 行碼之其他裝置。處理器1 00,如所示,包括複數處理元 件。 在一實施例中,處理元件意指執行緒單元、處理單元 、前後關係(context)、邏輯處理器、硬體執行緒、核心 -8 - 201037524 及/或任何其他元件,其能夠保持處理器之狀態’如執行 狀態或架構狀態。換言之,處理元件,在一實施例,意指 能夠與碼(如軟體執行緒、操作系統、應用或其他碼)獨 立關聯的任何硬體。實體處理器典型意指積體電路,其潛 在包括任何數量的其他處理元件,如核心或硬體執行緒。 核心經常意指位在積體電路上能夠維持獨立架構狀態 之邏輯,其中每一個獨立維持之架構狀態與至少一些專門 執行資源關聯。與核心相反地,硬體執行緒典型意指位在 積體電路上能夠維持獨立架構狀態之任何邏輯,其中每一 個獨立維持之架構狀態共享執行資源的存取。如所示,當 共享某些資源並將其他專供給一架構狀態時,硬體執行緒 及核心之命名間的界線重疊。但經常地,核心及硬體執行 緒被操作系統視爲個別的邏輯處理器,其中操作系統能夠 個別地排程各個邏輯處理器上的操作。 實體處理器100,如第1圖所示,包括兩個核心,核 心1 0 1及1 0 2 ’其共享對較高階快取1 1 0的存取。雖處理 器1 0 0可包括不對稱核心’亦即不同組態、功能單元及/ 或邏輯的核心,但描繪對稱核心。因此,將不詳細說明核 心1 02,其描繪成與核心1 ο 1相同,以避免重複說明。此 外’核心1 0 1包括兩硬體執行緒1 〇 1 a及1 〇 1 b,而核心 102包括兩硬體執行緒102a及i〇2b。因此,軟體實體, 如操作系統,潛在將處理器1 0 0視爲四個分別的處理器, 亦即四個邏輯處理器或能夠同時執行四個軟體執行緒之處 理元件。 201037524 在此,第一執行緒與架構狀態暫存器1 二執行緒與架構狀態暫存器101b關聯、第 構狀態暫存器1 02a關聯且第四執行緒與架 10 2b關聯。如所示,在架構狀態暫存器1〇] 狀態暫存器1 0 1 a,所以可儲存邏輯處理器] 理器1 0 1 b之個別架構狀態/前後關係。亦 1 0 1 a及1 0 1 b的其他較小資源,如指令指標 配器邏輯130中之重新命名邏輯。可經由分 資源’如重新排序/引退(retirement)單元 排序緩衝器、指令轉譯緩衝區(ITLB ) 120 衝器及佇列。可潛在地完全共享其他資源’ 部暫存器、頁-表基礎暫存器、低階資料快 緩衝區(T LB ) 1 1 5、執行單元1 40及亂序單 〇 處理器1 〇 0經常包括其他資源,其可完 分割而共享或由處理元件專供/專供給處理 圖中,描繪單純例示性處理器之一實施例’ 的例示性功能單元/資源。注意到處理器可 ,任何這些功能單元,還可包括未圖示之任 功能單元、邏輯或軔體。 如所示,處理器1 〇〇包括匯流排介面模 處理器1 〇〇外部的裝置通訊,如系統記憶體 、北橋或其他積體電路。記憶體1 75可專供 或與系統中之其他裝置共享。較高階或更外 0 1 a關聯、第 三執行緒與架 構狀態暫存器 1 b中複製架構 [〇 1 a及邏輯處 可複製執行緒 或重新命名分 割來共享某些 1 35中之重新 、載入/儲存緩 如一般目的內 取及資料轉譯 元1 3 5之部分 全共享、經由 元件。在第1 其具有處理器 包括,或省略 何其他已知的 i組105,以與 ί 1 7 5、晶片組 ;給處理器100 部快取11 〇用 -10 - 201037524 來快取最近從較高階快取1 1 0提取的元件。注意到較高階 或更外部快取意指從執行單元增加或更遠的快取階級。在 一實施例中,較高階快取1 1 0爲二階資料快取。然而,較 高階快取11 0不如此受限,因其可與指令快取關聯或包括 指令快取。追蹤快取,亦即,一種指令快取,可取代地耦 合在解碼器125之後以儲存最近解碼的追蹤。模組120亦 潛在包括預測將執行/採取的分支之分支目標緩衝器以及 ^ 儲存指令之位址轉譯項目之指令轉譯緩衝器(I-TLB )。 〇 解碼模組125耦合至提取單元120以解碼提取的元件 。在一實施例中,處理器1 00與指令集架構(IS A )關聯 ,其界定/指定可在處理器1 〇 〇上執行的指令。在此,IS A 可辨認的機器碼經常包括稱爲運算碼的指令之一部分,其 參照/指定將執行之指令或操作。 在一範例中,分配器及重新命名區塊130包括分配器 以保留資源,如儲存指令處理結果之暫存器檔。然而,執 q 行緒1 〇 1 a及1 0 1 b潛在能夠亂序執行,其中分配器及重新 命名區塊1 3 0亦保留其他資源,如追蹤指令結果的重新排 序緩衝器。單元130亦可包括暫存器重新命名器以將程式 /指令參考暫存器重新命名成處理器100內部的其他暫存 器。重新排序/引退單元1 3 5包括構件,如上述之重新排 序緩衝器、載入緩衝器及儲存緩衝器,以支援亂序執行及 亂序執行之指令的後續有序引退。 排程器及執行單元區塊1 40,在一實施例中,包括排 程器單元以排程執行單元上之指令/操作。例如,在具有 -11 - 201037524 可得之浮點執行單元的執行單元的埠上排程 包括與執行單元關聯的暫存器檔以儲存資訊 °範例執行單元包括浮點執行單元、整數執 執行單元、載入執行單元、儲存執行單元及 行單元。 較低階資料快取及資料轉譯緩衝器(D 合至執行單元1 40。資料快取用來儲存最近< 的元件,如資料運算元,其潛在保持在記憶 中。D-TLB用來儲存最近虛擬/線性至實體 爲一特定範例,處理器可包括頁表結構以將 成複數虛擬頁。 在一實施例中,處理器100能夠硬體交 體交易式執行或其之組合及綜合。交易,其 關鍵或原子區段,包括將執行爲原子群的指 操作群。例如,指令或操作可用來定界交易 在一實施例中,於後詳述,這些指令爲指令 架構(ISA ))的部份,其可被處理器1〇〇 述解碼器)所辨認。經常,這些指令,一旦 譯成硬體可辨認組合語言後,包括在解碼階 認之運算碼(opcodes ),或其他指令部分。 典型地,在交易執行期間,不將記憶體 體可見直到交易提交(c 〇 m m i t )爲止。舉例 行緒潛在可看到至一位置的交易式寫入,但 一執行緒的讀取’不轉送寫入資料直到包括 浮點指令。亦 指令處理結果 行單元、跳越 其他已知的執 -TLB ) 150 耦 使用過/操作過 體一致性狀態 位址轉譯。作 實體記憶體分 易式執行、軟 亦可稱爲碼之 令、操作或微 或關鍵區段。 集(如指令集 之硬體(如上 從高階語言編 段解碼器可辨 之更新變得總 而言,本地執 回應於來自另 父易式寫入的 -12- 201037524 交易提交爲止。雖然交易仍舊爲待決,追蹤從記憶體載入 或寫入記憶體內的資料項/元素,於後詳述。一旦交易到 達提交點,若未偵測到交易的衝突,則提交交易並將在交 易期間進行的更新變得總體可見。 然而’若在交易待決期間交易變成無效,則放棄交易 並潛在重新開始而不將更新變得總體可見。因此,如此所 使用’交易之待決意指已經開始執行且尙未提交或放棄( ^ 亦即待決)之交易。 軟體交易式記憶體(s Τ Μ )系統經常意指在軟體或至 少部分在軟體中執行存取追蹤、衝突化解或其他交易式記 憶體任務。在一實施例中’處理器1 〇 〇能夠執行編譯器以 編譯程式碼以支援交易式執行。在此,編譯器可插入操作 、呼叫、函數及其他碼以執行交易的執行。 編譯器經常包括程式或程式集以將來源文/碼轉譯成 目標文/碼。通常,多階段及多遍地以編譯器進行程式/應 Q 用碼的編譯以將高階程式語言碼轉變成低階機器或組合語 言碼。然而’針對簡單編譯仍可利用單遍編譯器。編譯器 可利用任何已知的編譯技術並執行任何已知的編譯器操作 ’如詞法分析、預先處理、剖析、語義分析、碼產生、碼 轉變及碼最佳化。 較大型編譯器經常包括多階段,但這些階段最常包括 在兩個一般階段中:(1 )前端,亦即一般可以發生語法 處理、語義處理及一些轉變/最佳化的地方,以及(2 )後 端,亦即一般發生分析、轉變、最佳化及碼產生。某些編 -13- 201037524 譯器參照中端,其描繪編譯器之前端及後端 糊化。因此,對於編譯器之插入、關聯、產 之參照可能發生在上述階段或遍的任何中, 任何其他已知的階段或遍中。舉例而言,編 或更多編譯階段中插入交易式操作、呼叫、 在編譯前端階段中之呼叫/操作的插入以及; 記憶體轉變階段期間至較低階碼之呼叫/操作 無論如何,不管編譯器之執行環境及動 爲何,在一實施例中,編譯器編譯程式碼以 行。因此,在一實施例中,程式碼之執行的 )動態或靜態地編譯器程式的執行,以編譯 維持交易式結構或執行交易相關的其他操作 式碼的執行包括交易式操作/呼叫、(3 )與 之其他程式碼的執行,如程式庫或(4 )上述 在一實施例中,處理器1 00能夠利用 即在硬體交易式記憶體(ΗΤΜ )系統內執行 ΗΤΜ時從架構或微架構角度來看存在各種特 其大部分不再此詳述以避免多餘地混淆本發 示性揭露某些結構及實行例。然而,應注意 實行例爲非必要且可增加具有不同實行例細 及/或以具有不同實行例細節的其他結構取代 作爲實行設計選擇的一範例,ΗΤΜ可 update-in-place)方式或寫入緩衝方式操作 的HTM中’對參照的記憶體位址執行交易 間之敘述的模 生或其他操作 以及編譯器之 譯器潛在於一 函數等等,如 接著在交易式 的轉變。 態或靜態本質 致能交易式執 丨參照意指(1 主程式碼、以 ;、(2 )主程 主程式碼關聯 :之結合。 g體/邏輯,亦 交易。當實作 定實行細節; 明。然而,例 到這些結構及 節的其他結構 〇 以就地更新( 。在就地更新 式寫入以修改 14- 201037524 保持在其中之先前資料。然而,此修改的資料並不提供給 外部請求的執行緒’亦即不將資料變成總體可見’但提供 給本地讀取以供本地記億體排序用。另外’經常「記錄」 先前資料,使得在放棄交易時’能夠復原先前資料以實現 交易執行開始前執行緒的狀態。 舉例說明,假設資料快取1 50包括第一階資料快取以 保持來自較高階記億體之資料’如快取11 〇及系統記憶體 ^ 1 75。因此,在遇到至資料快取1 5 0之交易式寫入時,在 寫回快取的一實施例中,將先前的資料項寫回到較高階快 取110。替代地,可將先前資料記錄在處理器100內或外 之另一分別記憶體中。在記錄先前資料項後,執行交易式 寫入以更新快取1 5 〇中之資料項。因此,本地執行緒,如 本地執行緒1 ο 1 a,亦即與此交易式寫入關聯的執行緒,可 從快取1 5 0中之修改的資料項讀取。然而,若包括交易式 寫入之交易尙未提交,回應於讀取請求,不提供修改的資 〇 料而是提供記錄的資料給另一執行緒,如執行緒1 02b。當 交易提交時,記錄資料變成無效或被忽略。然而,若放棄 交易,則重載先前資料或將其總體識別爲有效資料。 相反地,在寫入緩衝HTM中,在寫入緩衝器中緩衝 交易式寫入,同時先前資料留在其原來位置中。若本地執 行緒’如執行緒1 02b,執行被交易式寫入之資料的讀取, 則從寫入緩衝器轉送修改的資料。必然地,若在包括交易 式寫入之交易仍爲待決時外部執行緒請求該資料的讀取, 則提供來自原來位置的先前資料。此外,在交易提交後, -15- 201037524 將修改的資料複製到對應的記憶體位址,同時在放棄時, 忽略緩衝的資料。 如從上述討論中可見到,可由本地處理元件,以及潛 在由其他處理元件,做出對資料項之存取及請求兩者。在 沒有安全機制情況下,這些存取的一些可能潛在導致無效 資料及執行,亦即使讀取無效之對資料的寫入,或無效資 料的讀取。因此,處理器1 〇〇潛在包括邏輯來追蹤或監視 對資料項之記憶體存取以辨別出潛在衝突。 資料項或資料元件可包括在由硬體、軟體或其之結合 所界定之任何粒度的資料。資料、資料元素、資料項或對 其之參照的範例之非窮舉式列表包括記憶體位址、資料物 件、類別(class )、動態語言碼的一類型(type )之欄位 、動態語言碼之一類型、變數、運算元、資料結構及對記 憶體位址之非直接參照。然而,任何已知的資料群可稱爲 資料元件或資料項。上述範例之數個,如動態語言碼的一 類型之欄位及動態語言碼之一類型參照動態語言碼之資料 結構。舉例說明’動態語言碼,如來自昇陽微系統公司( Sun Microsystems lnc)之JavaTM,爲類型強烈的語言。 各變數具有在編譯時間知道的類型。類型可分成兩類一原 生型(布林及數値的,如整數(int )、浮點(float ))及 參照類型(類別、介面及陣列)。參照型的値爲對物件之 參照。在JavaTM中,物件,其具有欄位,可爲類別實例 (class instance )或陣列。假設類別 a的物件a,慣用 A: :x的記法來指類型A的欄位X以及a.x來指類別A之物 -16- 201037524 件a的欄位x。例如,一式子可表達成a. x = 載入欄位y及欄位ζ以相加並且將結果寫入 因此,可在任何資料層級粒度監視對資 存取。例如,在一實施例中,在類型層級監 憶體存取。在此,可將對欄位Α::χ之交易 A::y的非交易式載入監視爲對相同資料項( 的存取。在另一實施例中,在欄位層級粒度 ^ 取監視。在此,不將對A::x的交易式寫入;ί 〇 易式載入監視爲對相同資料項的存取,因它 欄位。注意到,可在追蹤對資料項之記憶體 資料結構或程式技術納入考量。舉例而言, 別Β的物件之類別Α的物件之欄位X及y ( A: :y)初始化成新分配的物件,且在初始化 其。在一實施例中,對由 A:: X所指向之物 的交易式寫入與對由A::y所指向之物件的fl Q 交易式載入並非監視成對相同資料項之記憶 些範例推及,可判斷監視器可在任何資料粒 視。 在一實施例中,監視器包括讀取監視器 以追蹤載入及儲存,其因此被判斷成將被監 ,硬體讀取監視器及寫入監視器至少在資料 視資料項,不管保持資料項的儲存結構之粒 蓋德薛佛(Gad Sheaffer)等人與此案一起 利代理人卷號P29 1 3 0的名稱爲「交易式記 :a.y+a.z。在此 至欄位X。 料項的記億體 視對資料的記 式寫入及欄位 亦即類型A ) 執行記憶體存 之A :: y的非交 們參照至不同 存取時將其他 假設將指向類 亦即,A :: X及 後永遠不寫至 件的欄位B :: ζ |位B :: ζ的非 體存取。從這 度層級執行監 及寫入監視器 視。舉例而言 項的一粒度監 度爲何。在由 申請的具有專 憶體系統中之 -17- 201037524 讀取及寫入監視屬性(Read and Write Monitoring Attributes in Transactional Memory ™ Systems )」之共同 申請案號1 2 / 3 4 6,5 3 0中討論利用讀取監視器/屬性來監視 資料項的範例。然而,可利用監視器、屬性、註解或其他 追蹤機制來偵測與利用任何資料或結構粒度來保持資料的 交易式執行關聯的衝突。 讀取或寫入屬性包括用來保持與資料項相關之狀態的 任何邏輯、軔體或結構。例如,資料項的屬性包括位元向 量,其中位元向量中之各位元代表資料項之屬性,如交易 式載入、交易式寫入、非交易式載入、非交易式寫入、不 是交易式載入、不是交易式寫入、不是非交易式載入、不 是非交易式寫入、偵測到存取衝突、偵測到無存取衝突、 讀取請求、無讀取請求、寫入請求、無寫入請求、所有權 請求、無所有權請求或與資料項或保持資料項的記憶體位 置關聯之任何其他屬性或狀態。 舉另一例而言,資料項之屬性包括編碼値。例如,利 用兩屬性位元,亦即0 0、01、1 1及1 0之四個二元値,來 編碼如四個狀態之狀態:(1)交易式寫入、(2)交易式 讀取、(3)不是交易式寫入以及(4)不是交易式讀取。 作爲另一範例,包括屬性作爲與快取記憶體(如資料 快取1 5 0 )關聯之一致性狀態陣列的部份。範例快取一致 性狀態的非窮舉性列表包括:(1 )修改的(Μ 4 2 0 )狀態 ’亦即寫入位址且無與之關聯的屬性、(2 )修改的讀取 (MR 43 0 )狀態,亦即寫入位址且具有與之關聯的讀取屬 -18- 201037524 性(如當對位址先前讀取且接著交易寫入位址)、(3 ) 修改的寫入(MW 425 )狀態,亦即寫入位址且有與之關 聯的寫入屬性、(4 )修改的讀取寫入(MRW 43 5 )狀態 ’亦即寫入位址且具有與之關聯的讀取及寫入屬性兩者、
(5 )獨佔(E 440 )狀態,亦即讀取位址且無與之關聯的 屬性、(6 )獨佔讀取(ER 445 )狀態,亦即讀取位址且 有與之關聯的讀取屬性、(7 )共享(s 41 0 )狀態,亦即 ^ 讀取位址且無與之關聯的屬性以及(8 )共享讀取(SR Ο 4 1 5 )狀態’亦即讀取位址且有與之關聯的讀取屬性。 在此,可添加如受監視的一致性狀態之額外的快取一 致性狀態至傳統修改獨佔共享及無效(Μ E S I )快取一致性 狀態。因此,可與硬體監視器/屬性結合地利用現有已知 之一致性及通訊/窺探協定來偵測衝突。 基於設計,快取一致性請求及快取線的受監視一致性 狀態的不同結合導致潛在衝突,如保持資料項之快取線處 Q 於共享讀取狀態中以及指示對該資料項之寫入請求的窺探 。相反地,處於修改的寫入狀態中的保持資料項之快取線 以及指示對該資料項之讀取請求之窺探可視爲潛在地衝突 。在一實施例中,欲偵測存取請求及屬性狀態之此種結合 ,窺探邏輯耦合至衝突偵測/報告邏輯,如衝突偵測/報告 用之監視器及/或邏輯。 在一實施例中,利用暫時或私下儲存來實行與保持在 快取1 5 0中之資料項關聯的屬性。在此’屬性可保持在快 取1 5 0中的任何地方,如快取1 5 0線本身中。例如’上述 -19- 201037524 之HTM的一範例包括就地更新HTM。在此,交易式修改 的資料保持在目前的記憶體位置中,同時記錄/備份先前 資料,例如在較高階記憶體中。因此,在一實施例中,當 針對資料項存取快取1 5 0時,於快取1 5 0中將屬性與資料 項暫時儲存在一起。在此,資料項保持在私下或暫時一致 性狀態中,其允許快取控制邏輯以確保維持交易式語意。 換言之,保持在暫時狀態中之資料項不提供至其他執行緒 〇 然而,若從快取1 50逐出資料項,則潛在喪失私下保 持的屬性。實質上,屬性爲系統所創造以監視資料項,且 不寫回至較高階記憶體。在其中屬性會衰退的情況中,亦 即在逐出或其他事件發生後會喪失,可能以與如上述般偵 測潛在存取衝突類似方式觸發潛在衝突。在與此一同申請 之名稱爲「延伸MESI協定以支援本地緩衝之資料」之具 有專利代理人卷號Ρ29 1 3 2的相關申請案中討論暫時儲存 及私下儲存的一種版本,如緩衝儲存及緩衝狀態。 在一實施例中,在硬體中暫存處置器以支援衝突(如 存取衝突、監視器衝突喪失、資料衝突喪失等等)的有效 率處置。舉例而言,針對軟體(如交易式運作時間或應用 碼)提供軟體可寫入暫存器以暫存交易式處置器之位址。 當偵測到關注事件時,如上述衝突或資訊喪失,則在一實 施例中,將控制流程引向至暫存在軟體可寫入暫存器中之 交易式處置器而無特權軟體之介入,如操作系統(OS)。 在一實施例中,關注的事件,亦即造成交易式處置器 -20- 201037524 之引動的處置器事件’能夠由非特權軟體指定,如交易式 運作時間或應用碼。不同實施例中之關注的事件可爲同步 、非同步或上述之結合。因此,提供針對同步及非同步事 件將控制轉移至軟體處置器而無OS介入的能力,其潛在 排除等待特權層級軟體分派程序以開始處置器之執行所涉 及的延遲。因此,可在導致意外執行前有效率且迅速地處 置需低潛伏反應之處置器事件。 _ 如上述初步參照第1圖所述,處理器1 00之架構單純 〇 係爲了說明。類似地,屬性與資料項/元件之關聯的特定 範例亦爲例示性,因可利用在不同粒度資料項關聯硬體監 視器/屬性的任何方法。 參照第2圖,描繪包括提供在硬體中暫存處置器之支 援的處理器之系統的一實施例。處理器205可包括或省略 參照第1圖所述之任何功能單元或模組,以及包括處理器 之任何其他已知的單元或邏輯。此外,亦描繪一組儲存元 Q 件。然而,可在任何數量的儲存元件內結合於下所述之有 關分別的儲存元件的操作及方法。 如所示,處理器205經由控制器集線器230耦合至系 統記億體25 0。系統記憶體2 5 0包括任何記憶體裝置,如 隨機存取記憶體(RAM )。在此,系統記憶體2 5 0保持應 用碼260,其可包括將在處理器205上執行之一或更多交 易,以及處置器2 5 5,其如下述般,可暫存在處理器205 之硬體中以處置在應用碼2 6 0執行期間發生的交易相關之 處置器事件。 -21 - 201037524 在一實施例中,控制器集線器2 3 0包括晶片組 常由雨個集線器所構成,亦即與系統記憶體2 5 0通 輸入/輸出(I/O )裝置(如圖形處理器)潛在接介 體控制器集線器,以及與其他I/O裝置通訊之I/O 集線器,如網路介面控制器(NIC )、音頻裝置或 知I/O裝置。 處理器205包括儲存元件210。儲存元件意指 訊或元件(如二元値、資料、碼、指令、位址或其 電腦相關資訊)的任何邏輯、構件或裝置。作爲一 例’儲存元件包括暫存器。處理器中常見的典型暫 括一般用途暫存器、資料暫存器、位址暫存器、條 存器、浮點暫存器、常數暫存器、向量暫存器、特 暫存器、程式計數器(亦即指令指標)暫存器、狀 器、指令暫存器、特殊機器/模型暫存器(MSR)、 存器及一般使用者可存取暫存器。因此,在不同實 儲存元件210至225的每一個可個別地爲上述暫存 —者。 在一實施例中,將處置器,如處置器255,暫 存元件210中。將處置器255暫存在處理器205的 包括暫存任何處置器255的識別或其位置至處理器 舉例而言,將處置器25 5暫存在儲存元件210中包 存元件2 1 0中儲存對處置器2 5 5之參照。換言之, 暫存,儲存元件2 1 0保持對處置器2 5 5之參照。 可利用將參照暫存至碼的任何方法來更新儲 ,其經 訊並與 之記憶 控制器 其他已 保持資 他以之 常見範 存器包 件式暫 殊用途 態暫存 控制暫 施例中 器之任 存在儲 硬體中 205。 括在儲 一旦被 存元件 -22- 201037524 2 1 〇以保持對處置器2 5 5之參照。在—實施例中,非特權 軟體/碼將處置器255暫存在儲存元件21〇中。非特權軟 體可包括非特權的任何碼,如不允許在特定高特權層級, 亦即特權等級零,執行之軟體。然而,在一實施例中,非 特權軟體包括使用者級碼。換言之,在交易執行之前,交 易式運作時間碼、應用碼或虛擬機器碼能夠將處置器255 暫存於處理器205的硬體中。因此,在一實施例中,可藉 ^ 由使用者級或非特權層級碼修改儲存元件2 1 0以更新其以 保持對處置器255之參照。 例如’在執行交易前’應用碼將處置器255暫存於儲 存元件2 1 0中’使得若在交易執行期間發生處置器事件, 引動使用者暫存之處置器255來處置該事件。因此,在此 實施例中,使用者能夠界定將在交易式處置器事件情況中 利用的處置器以及將其暫存在硬體中以提供最佳化至處置 器之控制流程的轉移。然而,在其他實施例中,可藉由特 0 權層級軟體(如OS)來暫存處置器。 在一實施例中’對處置器2 5 5之參照包括對保持在系 統記憶體2 5 0中之處置器2 5 5的起始位址2 5 6之參照。由 於有在處理器中利用的各種定址方法,對記憶體位址之參 照潛在包括對位址之任何已知的電腦參照。舉一例而言, 利用虛擬位址及偏置作爲對處置器2 5 5的起始位址2 5 6之 參照。在此’保持在處理器205之儲存器中的頁表及轉譯 表轉譯虛擬位址成參照基礎之實體位址並加上偏置以獲得 實體位址,亦即參照處置器25 5之實體位址256。注意到 -23- 201037524 偏置或碼段的値之省略會限制處置器至目前 其潛在亦限制被執行之交易內的合法指令。 例包括保持在儲存元件2 1 〇中之直接實體位 照處置器2 5 5。 在一實施例中,儲存元件2 2 0指定/指 器事件。如上述,處置器事件可包括非同步 同步處置器事件或上述之結合。同步處置器 令連接/關聯的事件,如非合法指令/操作或 存取的執行》相反地,非同步事件常稱爲不 指令的控制流程相關的事件。處置器事件的 資訊之缺少、屬性資訊之喪失、在交易範圍 令執行、非合法之控制轉移、對非核對過之 、緩衝資料的喪失、對在交易範圍內禁止之 存取、例外、系統呼叫及受監視資料的喪失 指令之常見的範例爲非合法指令的執行,如 制到受保護領域之指令,而非同步事件的典 性資訊的喪失。然而,處置器事件可包括將 處置之任何已知的事件,同步或非同步。 在一實施例中,儲存元件220保持位元 向量221。位元向量221中之每一位元對應 件,如事件270至274。例如,事件270至 事件的任何結合,還有未在此說明的任何其 器事件。當一位元爲設定時,則致能對應的 當位元非設定時,禁能對應的處置器事件。 碼段之使用, 參照之另一範 址,以直接参 示複數個處置 處置器事件、 事件包括與指 對無效操作之 直接與程式或 範例包括屬性 內非合法的指 暫存器的存取 記憶體類型的 。在此,同步 非合法轉移控 型範例包括屬 由軟體處置器 向量,如位元 至一處置器事 274代表上述 他已知的處置 處置器事件, * 24 - 201037524 如所示,保持在儲存元件220中之向量221的第一位 元爲非設定,亦即設成邏輯零,因此禁能處置器事件274 。注意到邏輯値僅爲例示性且可相反,亦即邏輯零爲致能 而邏輯一爲禁能。實質上,向量221操作爲遮罩。在此, 事件274,如對非核對過暫存器之存取,即使偵測到也不 會導致處置器255的引動因爲其被禁能。在此情況中,此 種存取可被允許,因爲交易之不可撤回或頑強之本質,亦 _ 即交易被給與優先權,所以它可能不會放棄。然而,若偵 〇 測到其他致能事件270至273的任何者,則基於保持在儲 存元件2 1 0中之參照執行處置器255。雖利用位元向量作 爲範例,亦可利用儲存指定事件之方法,如透過編碼値或 指令的使用。 在一實施例中,藉由非特權軟體可修改儲存元件220 之一部分或所有。在此,軟體可暫存處置器25 5於儲存元 件210中,還可指定/暫存導致處置器25 5之執行的處置 Q 器事件。然而,在一範例中,可保留儲存元件220之一部 分。結果爲硬體能夠界定軟體不能禁能之某些保留的處置 器事件,同時其他事件能夠由軟體致能。 經常地,處置器接收關於偵測到的處置器事件之情形 的一些通訊。因此,在一實施例中,儲存元件225包括狀 態儲存元件,以保持狀態値以指示將由處置器255處置之 處置器事件,亦即偵測到的處置器事件。延續上述範例, 狀態儲存元件225亦可保持位元向量,如位元向量226。 在此,除了致能或禁能處置器事件外,設定至第一邏輯値 -25- 201037524 之位元指示偵測到處置器事件,同時設定至第二邏輯値之 位元指示未偵測到處置器事件。 雖僅描繪一位元設定成邏輯一,多個位元可設定成指 示發生且將處置多個事件。在一實施例中,可由使用者級 或非特權軟體讀取儲存元件225。因此,應用碼260或處 置器2 5 5能夠讀取儲存元件225以判斷在執行期間發生的 處置器事件,無論作爲側寫(profiling)或實際事件處置 用。透過儲存元件22 0至儲存元件210的互連或保持在處 理器205中之對儲存元件2 1 0的參照,回應於偵測到處置 器事件,基於參照,亦即保持在儲存元件2 1 0中之位址 256的表示,將執行從在目前點之應用碼執行(亦即在位 址2 5 7的指令)引向至處置器2 5 5的執行(亦即位址2 5 6 )° 可以執行引向或程式控制流程引導的任何已知方法將 執行從應用碼260引向至處置器2H或從應用碼260轉移 控制流程至處置器2 5 5。如上述,先前系統經常仰賴控制 軟體(如〇 S )來轉移控制到不同程式,如處置器。在此 ,可偵測並收集事件,同時〇S輪詢資訊以判斷是否發生 事件。一旦0 S知道事件發生’其爲處置器2 5 5的執行排 定時間。然而,如在先前技術段落中所述,若沒有以較有 效率,亦即較少滑遲(skid )的方式來處置交易式事件( 其可爲同步或非同步),則可能發生意外的執行結果,如 基於無效目標位址之分支。 滑遲經常定義爲處置器情況發生(亦即處置器事件之 -26- 201037524 偵測)及處置器事件實際引動間的潛伏。例如,若因緩衝 /私下保持的讀取資料喪失而引動處置器25 5,且滑遲値爲 三,則從緩衝資料喪失到引動處置器需花上三個指令。雖 用指令計數來參照滑遲,亦可利用任何其他處理度量,如 執行週期。因此’潛在以較少滑遲執行至處置器2 5 5的控 制流程轉移。 控制流程轉移的範例包括類錯誤方式,亦即在辨別錯 ^ 誤/事件的指令引退前,其意味著零滑遲等級、類捕捉方 式,亦即在下一個可中斷視窗,其意味著一滑遲等級,或 不同事件的上述結合。有時滑遲係基於類型事件。例如, 不引退潛在會導致意外執行結果的一些操作以確保在系統 中沒有觀察到意外結果,亦即零滑遲等級。一範例包括在 交易範圍內之非合法操作,其將改變先前未核對過的狀態 。在此,若發生狀態改變,則會喪失先前的狀態,無法還 原先前狀態。因此,在操作引退之前,將執行引向至處置 0 器,其在此例子中,可核對先前狀態並接著允許操作執行 〇 在一實施例中,利用處理器205的硬體執行最佳化的 控制流程轉移以轉移控制至處置器255而無特權級軟體的 介入。特權級軟體之範例包括OS軟體、核心碼及虛擬機 器監視器(VMM )碼。在此,處理器205可基於暫存在儲 存元件210中之參照將應用碼260之執行引向至處置器 25 5。舉例說明,假設參照係保持在暫存器210中,如由 應用碼260儲存在暫存器210中的與實體位址256關聯之 -27- 201037524 虛擬位址及偏置。此外,在暫存器220中已例如由 級碼260指定處置器事件,並且已偵測到那些處置 之一事件,其藉由對暫存器225更新以保持狀態値 指示。 因此,執行邏輯在暫存器2 1 5中儲存對目前程 器之參照,亦即對目前指令位址25 7的指標。與保 存器2 1 〇中之參照類似地,指令指標位址可包括對 至執行前一個的目前點之虛擬位址及偏置或其他參 基於指令指標實行之目前或下一個指令的位址。實 暫存器215以與暫存器210類似方式操作爲返回暫 換言之’利用暫存器2 1 0中之參照來最佳化對處置 之控制流程轉移,且保持在返回暫存器2 1 5中之參 佳化從處置器25 5到應用碼260之控制流程的返回 在此範例中,在暫存器215中記錄程式260的 之後’接著利用執行應用碼2 6 0的執行資源以基於 暫存器210中的參照引向至應用碼260之執行。在 位址25 6的參照實質上變成新的指令指標,並且開 置器2 5 5之開端(亦即第一指令)的執行。執行資 參照第1圖之上述的任何執行邏輯,或任何其他已 行相關邏輯。例如’交易的操作可在應用碼2 6 0中 亦即排程在載入/儲存執行單元上執行之載入或儲 。接著’回應於處置器事件,跳越執行單元執行跳 作以令執行從指令位址2 5 7跳到位址2 5 6而無特權 的介入。在此,跳越型操作可包括正常跳越操作或 使用者 器事件 來加以 式計數 持在暫 在引向 照,如 質上, 存器。 器255 照以最 〇 目前點 保持在 此,對 始在處 源包括 知的執 執行, 存操作 越型操 級軟體 遠跳越 -28 - 201037524 操作。 將在暫存器2 1 0中所參照的位址(如將轉譯成位址 2 5 6的虛擬位址及偏置)作爲跳越型操作目標位址以將執 行從應用碼260引向至處置器255。在此架構內,在處置 器25 5完成執行(亦即結束處置器事件之處置)之後,執 行類似的跳越型指令/操作以返回至應用碼260。然而,取 代以保持在暫存器2 1 0中之參照作爲目標位址,利用保持 在返回暫存器215中之先前指令指標參照作爲到應用碼 260內之先前點的返回跳越之目標位址。 對於處置器255之上述參照包括處置同步或非同步事 件的任何已知碼。事實上,處置器2 5 5可根據偵測到的處 置器事件執行不同操作。例如,處置器25 5可在遇到某些 處置器事件時嘗試執行確認或放棄函數,並在遇到其他處 置器事件時執行其他操作,如核對暫存器或位置。結果爲 使用者可指定處置器事件並在硬體中界定將利用之處置器 ,使得當遇到處置器事件時,硬體能夠將控制轉移至由使 用者級碼指定的處置器而無特權軟體介入的延遲。此外, 可提供硬體以傳送關於處置器事件之資訊’如事件、與事 件關聯之位址及其他事件相關資訊。第3及4圖討論將控 制引向至處置器之實施例。 茲參照第3圖,描述將執行引向至交易式處置器而無 特權級軟體介入之方法的流程圖之一實施例°注意到以實 質序列方式描述第3及4圖中之流程。然而’在其他實施 例中所述之流程可以不同順序、互相平行或完全不執行。 -29- 201037524 例如,在第4圖中,在流程410中指定處置器事件之前在 流程405中將處置器位址儲存在第一暫存器中。然而,可 在將處置器位址儲存在第一暫存器中之前指定事件而不背 離第4圖之目的。 在流程3〇5中,在處理器的硬體中暫存交易式處置器 。可利用在硬體中暫存處置器的任何方法,例如在處理器 中保持的表或疊列中添加對處置器之參照。在一實施例中 ’將對與交易式處置器關聯的位址之參照放置在暫存器中 。對位址之此參照包括任何已知的位址參照。舉例而言, 參照包括可由處理器中之硬體結構(亦即轉譯緩衝器及/ 或頁表)轉譯的虛擬位址及偏置。如上述,暫存器可爲使 用者可存取’使應用碼或交易式運作時間碼在碼初始化時 或碼之主文內,例如在交易開始時,執行暫存。 在流程3 1 0中’判斷是否偵測到處置器事件。處置器 事件的範例包括屬性資訊之缺少、屬性資訊之喪失、在交 易範圍內非合法的指令執行、非合法之控制轉移 '對非核 對過之暫存器的存取、緩衝資料的喪失、對在交易範圍內 禁止之記憶體類型的存取、例外、系統呼叫及受監視資料 的喪失。可了解到在此範例中’處置器事件可包括同步及 非同步事件。然而’如下詳述’在一實施例中,取代利用 帶有潛伏軟體輪詢來處置事件’可以迅速非同步硬體方式 處置同步及非同步事件兩者以提供最佳化的滑遲處置。參 照上述第2圖’描繪一實施例,其中使用者級碼或特權碼 及使用者級碼的結合指定處置器事件。然而,亦可由硬體 -30- 201037524 、軔體或其他軟體來指定處置器事件。 若未偵測到事件,則在流程3 1 5中執行如正常般執行 。然而,若在流程3 10中偵測到事件,則在流程320中, 將執行引向至交易式處置器而無特權級軟體介入。注意到 可利用將執行導向處置器而無執行OS、核心或虛擬機器 監視器碼的任何方法。參照第4圖於下說明的一範例包括 基於保持在處理器之暫存器中之値的執行引向。 0 參照第4圖,其爲利用硬體將控制流程轉移至軟體處 置器之方法的流程圖之一實施例。在流程4 0 5中,將交易 式處置益之處置器位址儲存/寫入第一暫存器。在此,使 用者級軟體寫入對位址之參照,如虛擬位址及偏置。在流 程410中’使用者級軟體在第二暫存器中指定複數處置器 事件。如上述範例般,使用者級軟體設定/重設對應至硬 體界定的處置器事件之位元向量的位元。注意到處置器事 件可爲同步事件、非同步事件或上述之結合。 Q 在流程4 1 5中’偵測複數處置器事件之一處置器事件 。事件偵測可包括橫跨多函數單元之多種方法。例如,欲 偵測屬性資料或受監視資料的喪失,快取控制邏輯可偵測 受監視線的逐出並相應地加以通報。然而,針對非合法指 令’偵測與非合法操作關聯之運算元的解碼器潛在偵測並 通報事件。舉另一例來說,在處理器之管線的一階段中偵 測更新暫存器之狀態的操作並且與那個階段關聯之邏輯偵 測處置器事件。可利用偵測硬體事件或處置器相關事件的 其他邏輯及方法。 -31 - 201037524 一旦偵測到一事件’則在流程4 2 0中,將第三暫存器 更新成一狀態値以指示偵測到複數處置器事件之該處置器 事件。在此,一旦硬體偵測到事件,則通報邏輯向狀態暫 存器通報該事件。舉例說明,在保持於第三暫存器中之位 元向量中設定對應至此處置器事件的位元以通報該處置器 事件的發生。第三暫存器可由使用者級軟體讀取,所以處 置器能夠判斷偵測到哪個處置器事件。注意到第三暫存器 或連同第三暫存器的其他暫存器可提供關於處置器事件之 額外資訊,如與事件關聯的操作、與事件關聯的暫存器及 與事件關聯的位址/資料項。 在將執行引向至處置器前,在流程4 2 5中,將目前程 式計數器値或指令指標値/位址寫入至第四暫存器,以致 能在處置器執行後到目前執行點之返回。基於處理器設計 ,指令指標可參照目前指令或下一指令。因此,在這兩種 實行例中,對「目前指令指標」的參照包括目前指令指標 値,其可爲目前或下一指令。舉例說明,將參照適當指令 之位址的虛擬位址及偏置儲存在暫存器中。 在流程430中,執行跳至保持在第一暫存器中之處置 器位址。延續上述範例,執行跳越型操作以跳至保持在第 —暫存器中之虛擬位址加上偏置。實質上,在流程425中 ,記錄指令指標並且在流程43 0中以指向交易式處置器的 起始指令之「指令指標」取代目前指令指標。 在流程43 5中,執行交易式處置器以相應地處置事件 或多個事件。如前述,處置器也許能夠存取暫存器,如第 -32- 201037524 三暫存器,以判斷偵測的事件、事件類型、與事件關聯的 位址及操作或其他處置器相關資訊。在處置事件後,在流 程440中,執行跳回到保持在第四暫存器中之指令指標位 址。作爲上述之相反,以先前記錄的指令指標取代處置器 內的指令指標。結果爲將執行引向回到在引動處置之前的 點。在一實施例中,軟體處置器,回應於放棄或確認,可 令執行被引向回不同點。 ^ 在此所用之模組係指任何硬體、軟體、軔體或上述的 結合。描述爲分別之模組邊界經常會變化且潛在地重疊。 例如,第一及第二模組可分享硬體、軟體、軔體或上述之 結合,而潛在地保有一些獨立硬體、軟體或軔體。在一實 施例中,邏輯一詞的使用包括硬體,如電晶體、暫存器或 其他硬體,如可編程式邏輯裝置。然而,在另一實施例中 ,邏輯亦包括與硬體整合之軟體或碼,如軔體或微碼。 在此所用之値包括數字、狀態、邏輯狀態或二元邏輯 Q 狀態的任何已知表示。邏輯位準、邏輯値或邏輯性値的使 用經常亦稱爲1及〇 ’其簡單地表示二元邏輯狀態。例如 ,1係指高邏輯位準且0係指低邏輯位準。在一實施例中 ,儲存單元,如電晶體或快閃單元’能夠保持單一邏輯値 或多個邏輯値。然而’已使用電腦系統中之値的其他表示 。例如,十進位數字十亦可表示成1010二元値及十六進 位字母A。因此,値包括能夠保持在電腦系統中之資訊的 任何表示。 此外,狀態可由値或値之部分代表。舉例而言’第~ -33- 201037524 値,如邏輯一,可表示預設或初始狀態,而 輯零,可表示非預設狀態。此外,重設及設 實施例中,係分別指預設及更新値或狀態。 潛在包括高邏輯値,亦即重設,而更新値潛 値,亦即設定。注意到可利用値的任何結合 量的狀態。 上述提出之方法、硬體、軟體、軔體或 經由儲存在機器可存取或機器可讀取媒體之 執行的指令或碼加以實行。機器可存取/存 可由如電腦或電子系統之機器讀取的形式提 及/或傳送)資訊的任何機制。例如,機器 括隨機存取記憶體(RAM ),如靜態RAM 態RAM ( DRAM ) 、ROM、磁性或光學性儲 記憶體裝置、電性儲存裝置、光學儲存裝置 置或其他形式的傳播信號(如載波、紅外線 號)儲存裝置等等。例如,機器可透過接收 如載波)從能夠保持將在傳播信號上傳送之 取儲存裝置。 此說明書中對於「一實施例」或「實施 指連同實施例說明的特定特徵、結構或特性 明之至少一實施例中。因此,在說明書中各 實施例中」或「在實施例中」之詞組的出現 至相同實施例。此外,在一或更多實施例中 的方式結合特定特徵、結構或特性。 第二値,如邏 定之詞,在一 例如,預設値 在包括低邏輯 來表示任何數 碼的實施例可 可由處理元件 权媒體包括以 供(亦即儲存 可存取媒體包 SRAM )或動 存媒體、快閃 、音學儲存裝 信號、數位信 的傳播信號( 資訊的媒體存 例」之參照意 係包括在本發 處中之「在一 不絕對皆參照 可以任何適合 -34- 201037524 在上述說明中,已參照特定範例實施例提出詳細說明 。然而,顯然可對這些實施例做出各種修改及變更而不背 離在所附申請專利範圍中提出的本發明之較廣精神及範疇 。因此,說明書及圖示應視爲例示性而非限制性。另外, 實施例的上述使用及其他範例性語言不絕對意指相同實施 例或相同範例,但可指不同及分別的實施例,還有潛在相 同實施例。 【圖式簡單說明】 第1圖描繪包括能夠同時執行多執行緒的多個處理元 件的處理器之一實施例。 第2圖描繪回應於處置器事件支援至處置器的控制轉 移之處理器中的結構之一實施例。 第3圖描繪將執行引向至交易式處置器而無特權級軟 體介入之方法的流程圖之一實施例。 0 第4圖描繪利用硬體將控制流程轉移至軟體處置器之 方法的流程圖之另一實施例。 【主要元件符號說明】 1 0 0 :處理器 1 0 1、1 0 2 ··核心 1 0 1 a、1 0 1 b :架構狀態暫存器 102a、102b :架構狀態暫存器 105 :匯流排介面模組 -35- 201037524 1 1 0 :較高階快取 1 1 5 ··資料轉譯緩衝區 1 2 0 :指令轉譯緩衝區 1 2 5 :解碼器 130:重新命名分配器邏輯 135 :重新排序/引退單元 1 4 0 :執行單元 1 5 0 :資料快取 1 7 5 :系統記憶體 2 0 5 :處理器 210~22 5 :儲存元件 221、226:位元向量 23 0 :控制器集線器 2 5 0 :系統記憶體 25 5 :處置器 256 ' 257 :位址 2 6 0 :應用碼 270-274 :事件 -36-

Claims (1)

  1. 201037524 七、申請專利範圍: 1·—種設備,包含: 儲存元件,其可被非特權軟體修改,以保持對交易式 處置器的參照;以及 耦合至該儲存元件之執行資源,以執行交易並回應於 處置器事件而基於保持在該儲存元件中之對該交易式處置 器的該參照以將執行從該交易引向至該交易式處置器。 2.如申請專利範圍第1項所述之設備,其中該儲存元 件包括暫存器,以及其中對該交易式處置器的該參照包括 虛擬位址。 3 ·如申請專利範圍第2項所述之設備,其中將執行從 該交易引向至該交易式處置器之執行資源包含以與該虛擬 位址及偏置關聯的目標位址施行跳越型操作的執行資源。 4·如申請專利範圍第1項所述之設備,其中該非特權 軟體包括交易式運作時間碼。 5 ·如申請專利範圍第1項所述之設備,其中該處置器 事件包括非同步處置器事件。 6 .如申請專利範圍第1項所述之設備,其中該處置器 事件包括同步處置器事件。 7 ·如申請專利範圍第1項所述之設備,其中該處置器 事件包括選自由屬性資訊之缺少、屬性資訊之喪失、在交 易範圍內非合法的指令執行、對非核對過之暫存器的存取 、受監視資料的喪失、緩衝資料的喪失、對在交易範圍中 禁止之記憶體類型的存取、例外及系統呼叫組成之群組的 -37- 201037524 事件。 8. 如申請專利範圍第1項所述之設備,進一步包含第 二儲存元件,其亦可藉由該非特權軟體修改,以指定包括 該處置器事件之複數處置器事件。 9. 如申請專利範圍第8項所述之設備,其中指定複數 處置器事件的該第二儲存元件包含:保持位元向量之該第 二儲存元件,該位元向量之每一位元對應至該複數處置器 事件之一;以及其中將由該非特權軟體設定對應至該處置 器事件的位元以致能該些執行資源回應於該處置器事件而 將執行引向至該交易式處置器。 1 〇.如申請專利範圍第8項所述之設備,進一步包含 胃元件,其可藉由該非特權軟體讀取,其中該第三 Μ # % f牛丨呆持狀態値以指定回應於回應於該處置器事件基 &胃胃&易式處置器的該參照從該交易引向之該些執行資 源的該處置器事件。 11.如申請專利範圍第1 〇項所述之設備,進一步包含 胃Ώ Μ #元;件’在該些執行資源將執行從該交易引向至該 X胃式;® ®器之前,以對目前指令指標之參照加以更新。 1 2 .如申請專利範圍第η項所述之設備,其中回應於 $%胃式;處置器處置該處置器事件,該些執行資源以該目 % ί胃+ ί旨I票作爲目標執行跳越型指令以將執行返回至該交 易。 13·一種處理器,包含: 暫存器’其可被非特權級軟體更新,以保持對交易式 -38- 201037524 處置器之位址的參照;以及 執行邏輯,以回應於在交易執行期間的處置器事件基 於對該交易式處置器之位址的參照而將控制流程轉移至該 交易式處置器而無特權級軟體之介入。 I4.如申請專利範圍第13項所述之處理器,其中該交 易式處置器的該位址爲該交易式處置器的起始位址,以及 其中對該交易式處置器之該位址的該參照包括虛擬位址。 ^ 1 5 .如申請專利範圍第1 3項所述之處理器,其中回應 〇 ^ 於在交易執行期間的處置器事件基於對該交易式處置器之 該位址的該參照而將該控制流程轉移至該交易式處置器而 無特權級軟體之介入的該執行邏輯包含:執行邏輯以利用 來自保持在該暫存器中之對該交易式處置器的該位址之該 參照的該交易式處置器的該位址作爲目標位址來執行第一 跳越型操作。 1 6 ·如申請專利範圍第1 5項所述之處理器,進一步包 Q 含返回暫存器’其中在該執行邏輯以利用來自保持在該暫 存器中之對該交易式處置器的該位址之該參照的該交易式 處置器的該位址作爲目標位址來執行該第一跳越型操作之 前,以對在該執行邏輯執行該第一跳越型操作之前的目前 點之指令指標位址的參照更新該返回暫存器。 1 7 如申請專利範圍第1 6項所述之處理器,其中該執 行邏輯進一步回應於執行該第一跳越型操作而執行該交易 式處置器以處置該處置器事件,以及其中在該執行邏輯執 行該交易式處置器以處置該處置器事件之後,該執行邏輯 -39- 201037524 利用來自保持在該返回暫存器中之該指令指標位址的該參 照之該指令指標位址執行第二跳越型操作,以返回至在該 執行邏輯執行該第一跳越型操作之前的該目前點。 1 8 ·如申請專利範圍第1 3項所述之處理器,其中該處 置器事件包括選自由屬性資訊之缺少、屬性資訊之喪失以 及緩衝資料的喪失組成之群組的非同步事件。 1 9 .如申請專利範圍第1 3項所述之處理器,其中該處 置器事件包括選自由在交易範圍內非合法的指令執行、對 非核對過之暫存器的存取、非合法記憶體類型、例外及系 統呼叫組成之群組的同步事件。 20. 如申請專利範圍第13項所述之處理器,其中該非 特權級軟體包括選自由操作系統軟體、核心軟體及虛擬機 器監視器(VMM )軟體組成之群組的軟體。 21. —種設備,包含: 儲存元件,其能夠被使用者級軟體更新,以指定複數 交易式處置器事件;以及 執行邏輯,回應於偵測到該複數交易式處置器事件的 交易式處置器事件將執行從交易引向至該交易式處置器。 2 2 .如申請專利範圍第2 1項所述之設備,其中該些執 行資源在無操作系統(OS )介入下施行將執行從該交易引 向至該交易式處置器。 23.如申請專利範圍第22項所述之設備,其中該非特 權軟體係選自由交易式運作時間軟體、包括該交易之應用 碼及虛擬機器碼組成之群組。 -40- 201037524 2 4 .如申請專利範圍第2 1項所述之設備, 事件的第一交易式處置器事件包括非同步處置 及其中該複數事件的第二交易式處置器事件包 器事件。 2 5 .如申請專利範圍第21項所述之設備, 事件的第一交易式處置器事件包括非同步處置 及其中該複數事件的第二交易式處置器事件包 器事件。 2 6 ·如申請專利範圍第2 1項所述之設備, 處置器事件爲各個個別地選自由屬性資訊之缺 訊之喪失、在交易範圍內非合法的指令執行、 之暫存器的存取及受監視資料的喪失組成之群 2 7 . —種系統,包含: 處理益,包括保持對父易式處置器之參照 定址暫存器、第二暫存器及稱合至該第一及該 之執行邏輯,其中回應於在交易執行期間之處 該執行邏輯以對該交易內之目前指令位置之參 二暫存器、基於保持在該使用者可定址暫存器 易式處置器的參照將控制流程引導至該交易式 置該處置器事件以及在執行該交易式處置器以 器事件之後基於保持在該第二暫存器中之對該 置的該參照將控制流程導回該目前指令位置; 耦合至該處理器之輸入/輸出(I/O)裝置 28.如申請專利範圍第27項所述之系統, 其中該複數 :器事件,以 括同步處置 其中該複數 器事件,以 括同步處置 其中該複數 少、屬性資 對非核對過 組。 的使用者可 第二暫存器 置器事件, 照更新該第 中之對該交 處置器以處 處置該處置 目前指令位 以及 〇 其中對該交 -41 - 201037524 易式處置器之該參照包括虛擬位址及偏置’當轉譯成實體 位址時,參照該交易式處置器之起始實體位址。 29.如申請專利範圍第28項所述之系統,其中使用者 碼包括該交易,當執行時,以在該交易執行前之該虛擬位 址及該偏置載入該使用者可定址暫存器。 3 0 .如申請專利範圍第2 7項所述之系統,其中對該交 易內的該目前指令位置之該參照包括對與該目前指令位置 關聯的指令指標位址之參照,以及其中基於保持在該第二 暫存器中之對指令指標位置的該參照將控制流程導回該目 前指令位置之該執行邏輯包含該執行邏輯,以將該指令指 標位址作爲返回目標位址執行返回跳越操作。 3 1 ·如申請專利範圍第3 0項所述之系統,其中基於保 持在該使用者可定址暫存器中之對該交易式處置器的該參 照將控制流程引導至該交易式處置器以處置該處置器事件 之該執行邏輯包含該執行邏輯,以將與保持在該使用者可 定址暫存器中之對該交易式處置器的該參照關聯之目標位 址作爲目標位址執行跳越操作。 32. —種方法,包含: 以非特權級$欠體將交易式處置器暫存在處理器的硬體 中; 以該處理器在交易執行期間偵測處置器事件; 將控制流程從該交易的執行導至該硬體中之該交易式 處置器的執行而無特權級軟體的介入;以及 在以該交易式處置器處置該處置器事件後將該控制流 -42 - 201037524 程返回至該交易的執行而無該特權級軟體的介入。 3 3 ·如申請專利範圍第3 2項所述之方法,其中以非特 權級軟體將交易式處置器暫存在處理器的硬體中包含以與 該交易式處置器關聯的位址之表示載入第一暫存器。 34.如申請專利範圍第33項所述之方法,進一步包含 在將控制流程從該交易的執行導至該交易式處置器之前將 指令指標位址儲存在第二暫存器中。 3 5 _如申請專利範圍第3 4項所述之方法,其中將控制 流程從該交易的執行導至該硬體中之該交易式處置器的執 行而無特權級軟體的介入包含令執行跳越至與該交易式處 置器關聯之該位址而無該特權級軟體的介入以執行該交易 式處置器。 3 6 ·如申請專利範圍第3 5項所述之方法,其中在以該 交易式處置器處置該處置器事件後將該控制流程返回至該 交易的執行而無該特權級軟體的介入包含在以該交易式處 置器處置該處置器事件之後令執行跳越至儲存在該第二暫 存器中之該指令指標位址而無該特權級軟體的介入。 37.如申請專利範圍第34項所述之方法,進一步包含 在偵測該處置器事件之前以該非特權級軟體在第三暫存器 中指定該處置器事件。 3 8 .如申請專利範圍第3 7項所述之方法,進一步包含 在回應於偵測該處置器事件而將該控制流程從該交易的執 行導向該交易式硬體的執行前更新第四暫存器以保持該處 置器事件的表示。 -43-
TW098143374A 2008-12-30 2009-12-17 用於交易式記憶體事件處置之硬體中使用者處置器的登錄 TWI476595B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US12/346,518 US9785462B2 (en) 2008-12-30 2008-12-30 Registering a user-handler in hardware for transactional memory event handling

Publications (2)

Publication Number Publication Date
TW201037524A true TW201037524A (en) 2010-10-16
TWI476595B TWI476595B (zh) 2015-03-11

Family

ID=42286511

Family Applications (1)

Application Number Title Priority Date Filing Date
TW098143374A TWI476595B (zh) 2008-12-30 2009-12-17 用於交易式記憶體事件處置之硬體中使用者處置器的登錄

Country Status (7)

Country Link
US (1) US9785462B2 (zh)
JP (2) JP5650123B2 (zh)
KR (1) KR101291016B1 (zh)
CN (1) CN101950259B (zh)
BR (1) BRPI0920789A2 (zh)
TW (1) TWI476595B (zh)
WO (1) WO2010077872A2 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI727999B (zh) * 2015-12-22 2021-05-21 美商英特爾股份有限公司 異動結束加上提交持續性的指令、處理器、方法和系統

Families Citing this family (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9785462B2 (en) 2008-12-30 2017-10-10 Intel Corporation Registering a user-handler in hardware for transactional memory event handling
US8799582B2 (en) 2008-12-30 2014-08-05 Intel Corporation Extending cache coherency protocols to support locally buffered data
US9110808B2 (en) * 2009-12-30 2015-08-18 International Business Machines Corporation Formation of an exclusive ownership coherence state in a lower level cache upon replacement from an upper level cache of a cache line in a private shared owner state
US8782434B1 (en) 2010-07-15 2014-07-15 The Research Foundation For The State University Of New York System and method for validating program execution at run-time
US8606907B1 (en) 2011-07-20 2013-12-10 Google Inc. Multi-tiered system for receiving and reporting web site traffic data
US8560685B1 (en) 2011-07-20 2013-10-15 Google Inc. Probabilistic data storage owner election and replication protocol
US8560511B1 (en) * 2011-07-20 2013-10-15 Google Inc. Fine-grain locking
US10387324B2 (en) * 2011-12-08 2019-08-20 Intel Corporation Method, apparatus, and system for efficiently handling multiple virtual address mappings during transactional execution canceling the transactional execution upon conflict between physical addresses of transactional accesses within the transactional execution
CN103999036B (zh) * 2011-12-16 2017-07-14 英特尔公司 在支持事务的计算机体系结构中使用异常进行代码专业化的方法和系统
US20130339680A1 (en) 2012-06-15 2013-12-19 International Business Machines Corporation Nontransactional store instruction
US9740549B2 (en) 2012-06-15 2017-08-22 International Business Machines Corporation Facilitating transaction completion subsequent to repeated aborts of the transaction
US8880959B2 (en) * 2012-06-15 2014-11-04 International Business Machines Corporation Transaction diagnostic block
US9436477B2 (en) 2012-06-15 2016-09-06 International Business Machines Corporation Transaction abort instruction
US10437602B2 (en) * 2012-06-15 2019-10-08 International Business Machines Corporation Program interruption filtering in transactional execution
US9384004B2 (en) 2012-06-15 2016-07-05 International Business Machines Corporation Randomized testing within transactional execution
US9348642B2 (en) 2012-06-15 2016-05-24 International Business Machines Corporation Transaction begin/end instructions
US8682877B2 (en) * 2012-06-15 2014-03-25 International Business Machines Corporation Constrained transaction execution
US9448796B2 (en) 2012-06-15 2016-09-20 International Business Machines Corporation Restricted instructions in transactional execution
US9619345B2 (en) 2012-09-13 2017-04-11 International Business Machines Corporation Apparatus for determining failure context in hardware transactional memories
US9063721B2 (en) 2012-09-14 2015-06-23 The Research Foundation For The State University Of New York Continuous run-time validation of program execution: a practical approach
US9069782B2 (en) 2012-10-01 2015-06-30 The Research Foundation For The State University Of New York System and method for security and privacy aware virtual machine checkpointing
US9411739B2 (en) * 2012-11-30 2016-08-09 Intel Corporation System, method and apparatus for improving transactional memory (TM) throughput using TM region indicators
US9424198B2 (en) * 2012-11-30 2016-08-23 Intel Corporation Method, system and apparatus including logic to manage multiple memories as a unified exclusive memory
US10061609B2 (en) 2013-06-26 2018-08-28 Intel Corporation Method and system using exceptions for code specialization in a computer architecture that supports transactions
JP6244916B2 (ja) 2014-01-06 2017-12-13 富士通株式会社 演算処理装置,演算処理装置の制御方法及び情報処理装置
US9916161B2 (en) 2015-06-25 2018-03-13 Intel Corporation Instruction and logic for tracking fetch performance bottlenecks
US9733689B2 (en) * 2015-06-27 2017-08-15 Intel Corporation Hardware apparatuses and methods to perform transactional power management
WO2017012667A1 (en) 2015-07-22 2017-01-26 Huawei Technologies Co., Ltd. Hardware transactional memory in non volatile memory with log and no lock
US10037147B2 (en) * 2015-12-14 2018-07-31 International Business Machines Corporation Sharing files in a multisystem environment
US10324728B2 (en) 2015-12-17 2019-06-18 International Business Machines Corporation Lightweight interrupts for condition checking
US10552212B2 (en) * 2016-11-28 2020-02-04 Arm Limited Data processing
US10684896B2 (en) 2017-02-20 2020-06-16 Tsinghua University Method for processing asynchronous event by checking device and checking device
CN108345471B (zh) * 2017-05-08 2019-10-25 清华大学 检测装置处理异步事件的方法及检测装置
US10783011B2 (en) 2017-09-21 2020-09-22 Qualcomm Incorporated Deadlock free resource management in block based computing architectures
US10990369B2 (en) * 2018-04-30 2021-04-27 EMC IP Holding Company LLC Repurposing serverless application copies
US11615023B2 (en) 2018-09-17 2023-03-28 Telefonaktiebolaget Lm Ericsson (Publ) Bit register in shared memory indicating the processor and the software handlers
CN110333935B (zh) * 2019-06-05 2022-12-02 创新先进技术有限公司 事务请求处理方法及装置
WO2022205224A1 (zh) * 2021-03-31 2022-10-06 华为技术有限公司 一种同步方法及装置

Family Cites Families (71)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB8728494D0 (en) 1987-12-05 1988-01-13 Int Computers Ltd Multi-cache data storage system
JP2651037B2 (ja) 1990-04-23 1997-09-10 株式会社日立製作所 アドレスバス制御装置
US6216200B1 (en) 1994-10-14 2001-04-10 Mips Technologies, Inc. Address queue
JP3546694B2 (ja) 1998-03-31 2004-07-28 日本電気株式会社 マルチスレッド計算機システム及びマルチスレッド実行制御方法
US6526481B1 (en) 1998-12-17 2003-02-25 Massachusetts Institute Of Technology Adaptive cache coherence protocols
US6272602B1 (en) 1999-03-08 2001-08-07 Sun Microsystems, Inc. Multiprocessing system employing pending tags to maintain cache coherence
US6549996B1 (en) 1999-07-02 2003-04-15 Oracle Corporation Scalable multiple address space server
US6490668B2 (en) 2000-12-15 2002-12-03 Hewlett-Packard Company System and method for dynamically moving checksums to different memory locations
US7035963B2 (en) 2000-12-27 2006-04-25 Intel Corporation Method for resolving address space conflicts between a virtual machine monitor and a guest operating system
US6499085B2 (en) 2000-12-29 2002-12-24 Intel Corporation Method and system for servicing cache line in response to partial cache line request
US20030005219A1 (en) 2001-06-29 2003-01-02 Royer Robert J. Partitioning cache metadata state
US7272622B2 (en) 2001-10-29 2007-09-18 Intel Corporation Method and apparatus for parallel shift right merge of data
US7565687B2 (en) 2002-02-08 2009-07-21 International Business Machines Corporation Transmission control system, server, terminal station, transmission control method, program and storage medium
US7032125B2 (en) 2002-04-25 2006-04-18 Lsi Logic Corporation Method for loosely coupling metadata and data in a storage array
US7003631B2 (en) 2002-05-15 2006-02-21 Broadcom Corporation System having address-based intranode coherency and data-based internode coherency
US6944796B2 (en) * 2002-06-27 2005-09-13 Intel Corporation Method and system to implement a system event log for system manageability
US7062610B2 (en) 2002-09-30 2006-06-13 Advanced Micro Devices, Inc. Method and apparatus for reducing overhead in a data processing system with a cache
US20040111593A1 (en) 2002-12-05 2004-06-10 International Business Machines Corporation Interrupt handler prediction method and system
FR2859307A1 (fr) 2003-08-27 2005-03-04 St Microelectronics Sa Memoire cache a lecture asynchrone et dispositif de controle de l'acces a une memoire de donnees comprenant une telle memoire cache
US20050050305A1 (en) * 2003-08-28 2005-03-03 Kissell Kevin D. Integrated mechanism for suspension and deallocation of computational threads of execution in a processor
US7587615B2 (en) 2003-09-12 2009-09-08 International Business Machines Corporation Utilizing hardware transactional approach to execute code after initially utilizing software locking by employing pseudo-transactions
US20050086446A1 (en) * 2003-10-04 2005-04-21 Mckenney Paul E. Utilizing software locking approach to execute code upon failure of hardware transactional approach
US20050091459A1 (en) 2003-10-23 2005-04-28 Nhon Quach Flexible mechanism for enforcing coherency among caching structures
US7237131B2 (en) 2003-12-30 2007-06-26 Intel Corporation Transaction-based power management in a computer system
US7395374B2 (en) 2004-01-20 2008-07-01 Hewlett-Packard Company, L.P. System and method for conflict responses in a cache coherency protocol with ordering point migration
US7177987B2 (en) 2004-01-20 2007-02-13 Hewlett-Packard Development Company, L.P. System and method for responses between different cache coherency protocols
US9189230B2 (en) 2004-03-31 2015-11-17 Intel Corporation Method and system to provide concurrent user-level, non-privileged shared resource thread creation and execution
GB0407384D0 (en) * 2004-03-31 2004-05-05 Ignios Ltd Resource management in a multicore processor
EP1735983B1 (en) 2004-04-14 2008-02-06 Telecom Italia S.p.A. Method and system for handling content delivery in communication networks
US7644239B2 (en) 2004-05-03 2010-01-05 Microsoft Corporation Non-volatile memory cache performance improvement
US7395382B1 (en) * 2004-08-10 2008-07-01 Sun Microsystems, Inc. Hybrid software/hardware transactional memory
JP4431022B2 (ja) 2004-10-18 2010-03-10 株式会社日立製作所 コンピュータシステム及びその制御方法
US8607235B2 (en) 2004-12-30 2013-12-10 Intel Corporation Mechanism to schedule threads on OS-sequestered sequencers without operating system intervention
US7337280B2 (en) 2005-02-10 2008-02-26 International Business Machines Corporation Data processing system and method for efficient L3 cache directory management
US7627784B1 (en) * 2005-04-06 2009-12-01 Altera Corporation Modular processor debug core connection for programmable chip systems
KR100704037B1 (ko) 2005-04-15 2007-04-04 삼성전자주식회사 이종의 비휘발성 메모리를 가지는 데이터 저장장치와 그의구동 방법
US20060236039A1 (en) 2005-04-19 2006-10-19 International Business Machines Corporation Method and apparatus for synchronizing shared data between components in a group
US7490199B2 (en) 2005-05-09 2009-02-10 Noam Camiel System and method for safe removal of a removable device from a digital appliance
US7350034B2 (en) * 2005-06-20 2008-03-25 International Business Machines Corporation Architecture support of best-effort atomic transactions for multiprocessor systems
US7882339B2 (en) * 2005-06-23 2011-02-01 Intel Corporation Primitives to enhance thread-level speculation
US7533215B2 (en) 2005-09-15 2009-05-12 Intel Corporation Distributed and packed metadata structure for disk cache
US8225297B2 (en) 2005-12-07 2012-07-17 Microsoft Corporation Cache metadata identifiers for isolation and sharing
US8001538B2 (en) 2005-12-07 2011-08-16 Microsoft Corporation Software accessible cache metadata
US8180967B2 (en) * 2006-03-30 2012-05-15 Intel Corporation Transactional memory virtualization
US8180977B2 (en) 2006-03-30 2012-05-15 Intel Corporation Transactional memory in out-of-order processors
US20070300238A1 (en) 2006-06-21 2007-12-27 Leonidas Kontothanassis Adapting software programs to operate in software transactional memory environments
US20080005504A1 (en) * 2006-06-30 2008-01-03 Jesse Barnes Global overflow method for virtualized transactional memory
US9798590B2 (en) * 2006-09-07 2017-10-24 Intel Corporation Post-retire scheme for tracking tentative accesses during transactional execution
US7949794B2 (en) 2006-11-02 2011-05-24 Intel Corporation PCI express enhancements and extensions
US7783805B2 (en) 2006-11-29 2010-08-24 Cisco Technology, Inc. Interlocking input/outputs on a virtual logic unit number
US7669040B2 (en) * 2006-12-15 2010-02-23 Sun Microsystems, Inc. Method and apparatus for executing a long transaction
US7937535B2 (en) 2007-02-22 2011-05-03 Arm Limited Managing cache coherency in a data processing apparatus
US7917701B2 (en) 2007-03-12 2011-03-29 Arm Limited Cache circuitry, data processing apparatus and method for prefetching data by selecting one of a first prefetch linefill operation and a second prefetch linefill operation
US8751859B2 (en) 2007-05-10 2014-06-10 International Business Machines Corporation Monitoring lost data in a storage system
US8095741B2 (en) 2007-05-14 2012-01-10 International Business Machines Corporation Transactional memory computing system with support for chained transactions
US9009452B2 (en) * 2007-05-14 2015-04-14 International Business Machines Corporation Computing system with transactional memory using millicode assists
US20080307169A1 (en) 2007-06-06 2008-12-11 Duane Arlyn Averill Method, Apparatus, System and Program Product Supporting Improved Access Latency for a Sectored Directory
US9292436B2 (en) 2007-06-25 2016-03-22 Sonics, Inc. Various methods and apparatus to support transactions whose data address sequence within that transaction crosses an interleaved channel address boundary
US9280397B2 (en) 2007-06-27 2016-03-08 Intel Corporation Using buffered stores or monitoring to filter redundant transactional accesses and mechanisms for mapping data to buffered metadata
US8195832B2 (en) 2007-12-12 2012-06-05 Alcatel Lucent Facilitating management of layer 2 hardware address table based on packet priority information
US8078807B2 (en) 2007-12-27 2011-12-13 Intel Corporation Accelerating software lookups by using buffered or ephemeral stores
US8108619B2 (en) 2008-02-01 2012-01-31 International Business Machines Corporation Cache management for partial cache line operations
US20100122073A1 (en) 2008-11-10 2010-05-13 Ravi Narayanaswamy Handling exceptions in software transactional memory systems
US8555016B2 (en) 2008-12-17 2013-10-08 Intel Corporation Unified optimistic and pessimistic concurrency control for a software transactional memory (STM) system
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
US8806101B2 (en) 2008-12-30 2014-08-12 Intel Corporation Metaphysical address space for holding lossy metadata in hardware
US8799582B2 (en) 2008-12-30 2014-08-05 Intel Corporation Extending cache coherency protocols to support locally buffered data
US8627014B2 (en) 2008-12-30 2014-01-07 Intel Corporation Memory model for hardware attributes within a transactional memory system
US8370577B2 (en) 2009-06-26 2013-02-05 Microsoft Corporation Metaphysically addressed cache metadata
US8095824B2 (en) 2009-12-15 2012-01-10 Intel Corporation Performing mode switching in an unbounded transactional memory (UTM) system

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI727999B (zh) * 2015-12-22 2021-05-21 美商英特爾股份有限公司 異動結束加上提交持續性的指令、處理器、方法和系統

Also Published As

Publication number Publication date
KR101291016B1 (ko) 2013-07-30
TWI476595B (zh) 2015-03-11
JP2012509529A (ja) 2012-04-19
CN101950259B (zh) 2014-08-20
WO2010077872A2 (en) 2010-07-08
WO2010077872A3 (en) 2010-09-23
BRPI0920789A2 (pt) 2015-12-22
CN101950259A (zh) 2011-01-19
US20100169894A1 (en) 2010-07-01
KR20110050724A (ko) 2011-05-16
JP5650123B2 (ja) 2015-01-07
JP2014089752A (ja) 2014-05-15
US9785462B2 (en) 2017-10-10
JP5944417B2 (ja) 2016-07-05

Similar Documents

Publication Publication Date Title
TWI476595B (zh) 用於交易式記憶體事件處置之硬體中使用者處置器的登錄
JP5860450B2 (ja) ローカルにバッファリングされたデータをサポートするためのキャッシュコヒーレンスプロトコルの拡張
US8195898B2 (en) Hybrid transactions for low-overhead speculative parallelization
US8065491B2 (en) Efficient non-transactional write barriers for strong atomicity
KR101394741B1 (ko) 트랜잭션 메모리(tm) 시스템의 기입 및 판독 모니터링 속성
US8706982B2 (en) Mechanisms for strong atomicity in a transactional memory system
US8190859B2 (en) Critical section detection and prediction mechanism for hardware lock elision
US8838908B2 (en) Using ephemeral stores for fine-grained conflict detection in a hardware accelerated STM
US8769212B2 (en) Memory model for hardware attributes within a transactional memory system
US20100122073A1 (en) Handling exceptions in software transactional memory systems
US20150040111A1 (en) Handling precompiled binaries in a hardware accelerated software transactional memory system
BRPI0805218A2 (pt) esquema de omissão de trava por hardware hìbrida de retirada prévia-posterior

Legal Events

Date Code Title Description
MM4A Annulment or lapse of patent due to non-payment of fees