TW201537454A - 資料處理方法及處理器 - Google Patents

資料處理方法及處理器 Download PDF

Info

Publication number
TW201537454A
TW201537454A TW103118606A TW103118606A TW201537454A TW 201537454 A TW201537454 A TW 201537454A TW 103118606 A TW103118606 A TW 103118606A TW 103118606 A TW103118606 A TW 103118606A TW 201537454 A TW201537454 A TW 201537454A
Authority
TW
Taiwan
Prior art keywords
data
processor
llc
private cache
directory
Prior art date
Application number
TW103118606A
Other languages
English (en)
Other versions
TWI638311B (zh
Inventor
Ling Ma
si-hai Yao
Lei Zhang
Original Assignee
Alibaba Group Services Ltd
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 Alibaba Group Services Ltd filed Critical Alibaba Group Services Ltd
Publication of TW201537454A publication Critical patent/TW201537454A/zh
Application granted granted Critical
Publication of TWI638311B publication Critical patent/TWI638311B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0811Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0808Multiuser, multiprocessor or multiprocessing cache systems with cache invalidating means
    • 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
    • G06F9/467Transactional memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/28Using a specific disk cache architecture
    • G06F2212/283Plural cache memories
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

本發明提供了一種資料處理方法及處理器;方法包括:第一處理器開始交易處理,將第一資料讀取到私有緩存中;第一處理器在私有緩存中對所述第一資料進行寫操作,完成後開始提交交易記憶體;如果所述第一資料在被第一處理器寫操作前的最後一次更改是由第二處理器進行的,則將所述第一處理器的私有緩存中的所述第一資料寫到最後一級緩存LLC中,無效化所述第一處理器的私有緩存中的所述第一資料;交易記憶體完成提交。本發明能夠減少多核系統中由於資料衝突產生的回滾事件,加速關鍵區域的運行。

Description

資料處理方法及處理器
本發明係關於電腦領域,尤其係關於一種資料處理方法及處理器。
最近幾年內,處理器廠商受到功耗和溫度的限制,同時為了保持高性能運算持續增長,電腦已經朝著多核電腦體系架構方向發展。為了充分利用多核架構,應用程式被拆分成多個可獨立運行在單個CPU上面的執行緒,這樣設計程式可以並存執行提高整體運行效率。
當前多核體系架構的主流設計方案的一個例子如圖1a和圖1b所示,圖1a中共有16個CPU核,彼此通過路由(圖中粗線)可相互存取,圖1b中是每個處理器的框架,其中*Ln代表First Level Cache(第一級緩存)L1,或者L1及Second Level Cache(第二級緩存)L2;Last Level Cache為最後一級緩存,簡稱LLC,*Ln分別和LLC及路由相連,LLC的目錄和路由相連。當從記憶體中讀出記憶體資料後會將記憶體資料均勻分攤到每個處理器的LLC。
基於這樣的程式體系,需要保證資料處理的同步性和資料完整性,因此執行緒之間需要用某種同步機制來串列存取共用區域。Transaction memory(交易記憶體)的提出正是為了提高執行緒的並行度,同時在發生衝突能夠進行回滾到發生衝突之前的狀態,保證了資料完整性。當前Transaction memory技術已經進入了CPU體系架構之中,包括IBM的Blue Gen,Intel的Haswell等。
經過將近20多年的發展,Transaction memory可以分別由軟體或者硬體實現,軟體實現的Transaction memory執行效率非常低,而硬體實現的Transaction memory大大提高了其實用性,本文主要討論硬體基礎上的Transaction memory。
Transaction memory假設多核執行緒之間對於共用資料的存取很少產生寫-讀,讀-寫,以及寫-寫衝突,因此允許多個執行緒試探性的並存執行,通過隱藏資料的更新狀態以及當發現產生衝突的時候進行回滾,使程式的狀態能回到衝突之前的狀態,利用這個特性在不影響資料完整性的前提下提高了體系結構的性能和可擴展性。雖然Transaction memory提高了多核系統的並行度,但隨著並行度的提高衝突產生的概率也隨之增加,一旦產生衝突進行回滾操作就會嚴重的傷害程式的性能。
如果採用提前無效化處理,能夠加快關鍵區域的運行,大大減少由於對共用資料進行更新時產生的衝突。但如果直接將提前無效化處理應用到現有的Transaction memory技術中,由於提前無效化處理要求改變全域資料狀態,與Transaction Memory實現的方式截然相反(Transaction Memory處理過程必須隱藏更新時的狀態),因此不能與Transaction memory簡單結合。
本發明要解決的技術問題是如何減少多核系統中由於資料衝突產生的回滾事件,加速關鍵區域的運行。
為了解決上述問題,本發明提供了一種資料處理方法,包括:第一處理器開始交易處理,將第一資料讀取到私有緩存中;第一處理器在私有緩存中對所述第一資料進行寫操作,完成後開始提交交易記憶體;如果所述第一資料在被第一處理器寫操作前的最後一次更改是由第二處理器進行的,則將所述第一處理器的私有緩存中的所述第一資料寫到最後一級緩存LLC中,無效化所述第一處理器的私有緩存中的所述第一資料;交易記憶體完成提交。
進一步地,所述方法還包括:當所述第一處理器將在私有緩存中對所述第一資料進行寫操作時,如果所述第一資料在被第一處理器寫操作前的最後一次更改是由第二處理器進行的,則將所述私有緩存中的所述第一資料的狀態修改為獨佔且更改;如果所述 第一資料在被第一處理器寫操作前的最後一次更改是由第一處理器進行的,則將所述私有緩存中的所述第一資料的狀態修改為更改;所述開始提交交易記憶體的步驟後、交易記憶體完成提交的步驟前還包括:如果所述第一處理器的私有緩存中的所述第一資料的狀態為獨佔且更改,則將所述第一資料在LLC目錄中的狀態設置為獨佔且更改。
進一步地,所述第一處理器開始交易處理,將第一資料讀取到私有緩存中的步驟包括:S11、第一處理器開始交易處理,如果私有緩存中沒有需要的所述第一資料,則根據地址映射存取LLC的目錄;S12、根據所述第一資料的緩存行在LLC的目錄中的第一狀態指示串,獲知所述第一資料的狀態;如果所述第一資料的狀態為更改,則進行步驟S13;S13、根據所述第一狀態指示串中的資料標識位確定具有最新的所述第一資料的處理器;如果為第二處理器,則從所述第二處理器的私有緩存將最新的所述第一資料取回到LLC,將所述第一資料在LLC的目錄中的狀態修改為共用;如果為第一處理器,則直接進行第一處理器在私有緩存中對所述第一資料進行寫操作的步驟;S14、將所述第一資料從所述LLC中讀到所述第一處理器的私有緩存中,將所述第一狀態指示串中對應於所述 第一處理器的資料標識位置位。
進一步地,所述步驟S12中還包括:如果所述第一資料的狀態為獨佔且更改,則進行步驟S13’;所述方法還包括:S13’、將所述第一資料在LLC的目錄中的狀態修改為共用且更改;進行步驟S14。
進一步地,在開始提交交易記憶體的步驟後、交易記憶體完成提交的步驟前還包括:查詢所述第一資料在LLC目錄中狀態指示串的各資料標識位,判斷除了所述第一處理器對應的資料標識位以外,是否存在置位的資料標識位;如果存在,則無效化置位的資料標識位對應的處理器中的第一資料,並將該資料標識位重定。
本發明還提供了一種處理器,應用在多核處理設備中,包括:私有緩存、提交單元;讀取單元,用於當本處理器開始交易處理時,將第一資料讀取到所述私有緩存中;寫操作單元,用於在所述私有緩存中對所述第一資料進行寫操作,完成後指示所述提交單元開始提交交易記憶體;無效化單元,用於當所述提交單元開始提交交易記憶體後、完成交易記憶體提交前,如果所述第一資料在被本 處理器寫操作前的最後一次更改是由其它處理器進行的,則將所述私有緩存中的所述第一資料寫到LLC中,無效化本處理器的私有緩存中的所述第一資料。
進一步地,所述的處理器還包括:設置單元,用於在所述寫操作單元將對所述第一資料進行寫操作時,如果所述第一資料在被本處理器寫操作前的最後一次更改是由其它處理器進行的,則將所述私有緩存中的第一資料的狀態修改為獨佔且更改;如果所述第一資料在被本處理器寫操作前的最後一次更改是由本處理器進行的,則將所述私有緩存中的所述第一資料的狀態修改為更改;在所述提交單元開始提交交易記憶體後、完成交易記憶體提交前,如果所述第一處理器的私有緩存中的所述第一資料的狀態為獨佔且更改,則將所述第一資料在LLC目錄中的狀態設置為獨佔且更改。
進一步地,所述讀取單元當本處理器開始交易處理時,將第一資料讀取到私有緩存中是指:所述讀取單元當本處理器開始交易處理時,如果私有緩存中沒有需要的所述第一資料,則根據地址映射存取LLC的目錄;根據所述第一資料的緩存行在LLC的目錄中的第一狀態指示串,獲知所述第一資料的狀態;如果所述第一資料的狀態為更改,則根據所述第一狀態指示串中的資料標識位確定具有最新的所述第一資料的處理器,如果為其它處理器,從該其它處理器的私有緩存將最新的所述第一資料取回到LLC,將所述第一資料在LLC的目錄 中的狀態修改為共用,將所述第一資料從所述LLC中讀到本處理器的私有緩存中,將所述第一狀態指示串中對應於本處理器的資料標識位置位,指示所述寫操作單元在本處理器的私有緩存中對所述第一資料進行寫操作;如果為本處理器,則直接指示所述寫操作單元在本處理器的私有緩存中對所述第一資料進行寫操作。
進一步地,所述讀取單元還用於當根據地址映射存取LLC的目錄,且根據所述第一資料的緩存行在LLC的目錄中的第一狀態指示串,獲知所述第一資料的狀態為獨佔且更改時,將所述第一資料在LLC的目錄中的狀態修改為共用且更改。
進一步地,所述無效化單元還用於查詢所述第一資料在LLC目錄中狀態指示串的各資料標識位,判斷除了本處理器對應的資料標識位以外,是否存在置位的資料標識位;如果存在,則無效化置位的資料標識位對應的處理器中的第一資料,並將該資料標識位重定。
本發明的至少一個實施例利用在現有的硬體Transaction memory的基礎上,使用簡單的預測機制無縫地將提前無效化處理與硬體Trasaction memory相結合,加快提高預測準確性和Transaction memory對關鍵區域的執行效率,減少Transaction Memory運行時由於資料衝突產生的回滾時間,進一步提高多核系統的運行性能和可擴展性。當然,實施本發明的任一產品必不一定需要同時達到以上所述的所有優點。
圖1a為多核並行系統中多個處理器的示意圖;圖1b為各處理器的結構示意圖;圖2為資料在LLC的目錄中的狀態指示串的示意圖;圖3為實施例一的資料處理方法的流程示意圖;圖4為實施例一的第一個例子中開始時資料緩存行在LLC的目錄中的狀態指示串的示意圖;圖5為實施例一的第一個例子中的資料處理流程示意圖;圖6為實施例一的第一個例子中步驟104中資料緩存行在LLC的目錄中的狀態指示串的示意圖;圖7為實施例一的第一個例子中步驟110中資料緩存行在LLC的目錄中的狀態指示串的示意圖;圖8為實施例一的第二個例子中的資料處理流程示意圖;圖9為實施例一的第二個例子中步驟210中資料緩存行在LLC的目錄中的狀態指示串的示意圖;圖10為實施例一的第三個例子中的資料處理流程示意圖;圖11為實施例一的第三個例子中步驟304中資料緩存行在LLC的目錄中的狀態指示串的示意圖;圖12為實施例一的第三個例子中步驟310中資料緩 存行在LLC的目錄中的狀態指示串的示意圖。
下面將結合圖式及實施例對本發明的技術方案進行更詳細的說明。
需要說明的是,如果不衝突,本發明實施例以及實施例中的各個特徵可以相互結合,均在本發明的保護範圍之內。另外,雖然在流程圖中示出了邏輯順序,但是在某些情況下,可以以不同於此處的循序執行所示出或描述的步驟。
在一個典型的配置中,多核系統可包括多個處理器(CPU)、一個或多個輸入/輸出介面、網路介面和記憶體。
記憶體可能包括電腦可讀介質中的非永久性記憶體,隨機存取記憶體(RAM)和/或非易失性記憶體等形式,如唯讀記憶體(ROM)或快閃記憶體(flash RAM)。記憶體是電腦可讀介質的示例。
電腦可讀介質包括永久性和非永久性、可移動和非可移動媒體可以由任何方法或技術來實現資訊儲存。資訊可以是電腦可讀指令、資料結構、程式的模組或其他資料。電腦的儲存介質的例子包括,但不限於相變記憶體(PRAM)、靜態隨機存取記憶體(SRAM)、動態隨機存取記憶體(DRAM)、其他類型的隨機存取記憶體(RAM)、唯讀記憶體(ROM)、電可擦除可程式設計唯讀記憶體(EEPROM),快閃記憶體或其他記憶體技術、唯讀光碟唯 讀記憶體(CD-ROM)、數位多功能光碟(DVD)或其他光學儲存、磁盒式磁帶,磁帶磁磁片儲存或其他磁性存放裝置或任何其他非傳輸介質,可用於儲存可以被計算設備存取的資訊。按照本文中的界定,電腦可讀介質不包括非暫存電腦可讀媒體(transitory media),如調製的資料信號和載波。
首先介紹一下現有的硬體Transaction memory的工作原理。
硬體Transaction memory工作原理為:先用代碼告訴CPU Transaction區域的開始和結束,例如Transaction_start和Transaction_end。中間部分為執行Transaction區域,一旦執行結束,Transaction_end指令要求CPU將所有修改過的資料以原子方式提交(也就是提交過程不可被打斷和存取)。執行Transaction的過程中任何讀過或者寫過的記憶體區域都會被監視起來以免產生寫-讀,讀-寫,以及寫-寫衝突,為了使資料衝突時能夠回滾到進入Transaction區域起始的狀態,在執行Transaction memory過程中所有記憶體寫操作之前都必須將原有的資料複製一份;比如可以複製對應的一條緩存行到私有不可見緩存之中(例如第一層緩存),而最新寫的資料都會保存在這個私有不可見的緩存中,這樣一旦產生衝突將拋棄私有不可見緩存中(比如第一層緩存)更改過的資料,如果成功完成Transaction將用最新更改的資料(比如第一層緩存)代替原有的資料。
資料快取一致性的協定有兩種方式:廣播,目錄。廣播的方式適用於核數較小的架構,而目錄有很強的可擴展性,適用於多核架構,因此在這裡主要以目錄為基礎提出本發明的實施例。
每條資料緩存行都有一個狀態指示串在LLC的目錄當中,如圖2所示,圖中Tag是資料緩存行在目錄的索引標記,通常為資料高位位址,Status為狀態標識,包含:Exclusive(獨佔),Modified(更改),Shared(共用),無效;共用狀態下資料會分佈到一個或多個CPU的私有緩存中,資料標識位P0~Pn-1分別對應於n個處理器CPU 1~CPU n-1,當對應的CPU中存在分佈的資料時,資料標識位的數值為“1”,不存在分佈的資料時為“0”;因此P0~Pn-1的數值可以表示共用狀態下資料分佈在哪幾個CPU的私有緩存中。若狀態為更改就只有一個CPU能夠含有最新資料,即只有一個資料標識位的數值為“1”,其它均為“0”。
任何寫操作都必須將資料緩存行的狀態(可能為以上四種中的任一種)轉變為更改狀態。在變為更改狀態的過程中需要對所有含有原資料的CPU發出無效化請求,即無效化相應CPU的私有緩存的資料,並將相應資料緩存行對應於該CPU的資料標識位置為“0”,同時得到最新唯一的資料,這個過程與更改之後,其他CPU需要讀取這個新的資料的時間都將隨著CPU核數的增加迅速變大。比如在對Transaction Memory關鍵區域讀取更改過的 資料或者提交最近更改的資料的過程中都要經過上述過程,本發明的實施例的目的就是加快這個過程,增加並行時間同時降低衝突概率。
實施例一、一種資料處理方法,如圖3所示,包括:S1、第一處理器開始交易處理,將第一資料讀取到私有緩存中;S2、第一處理器在私有緩存中對所述第一資料進行寫操作,完成後開始提交交易記憶體;S3、如果所述第一資料在被第一處理器寫操作前的最後一次更改是由第二處理器進行的,則將所述第一處理器的私有緩存中的所述第一資料寫到LLC中,無效化所述第一處理器的私有緩存中的所述第一資料;S4、交易記憶體完成提交。
本實施例中,可以根據所述第一資料的緩存行在LLC目錄中的第一狀態指示串獲知在第一處理器寫操作前最後一次更新第一資料的處理器;如果是本處理器,則可以按現有方案處理;如果不是本處理器,則如圖3所示,是在第一處理器進行寫操作後將第一資料回寫到LLC中,並無效化第一處理器私有緩存中的第一資料。
本實施例中,由於更改後的資料會放在LLC中,而不是保存在進行寫操作的處理器中,且進行寫操作的處理器在提交交易記憶體時就會被無效化,因此後續步驟中的資料更改都僅僅對LLC上面的資料進行更改,避免了處理器之間的資料傳輸,提高了系統的運行性能;採用本實 施例的方法後,由於更改後的資料的讀取時間不會因為核數增加而迅速變大,因此提高了系統的可擴展性。
本實施例的方法既可以由各處理器依據預先寫入處理器的執行邏輯自發實現,也可以通過在待執行程式中增加相關指令的方式,在執行程式的過程中通過所增加的指令控制相應的處理器實現。
本實施例的一種實施方式中,所述方法還可以包括:當所述第一處理器將在私有緩存中對所述第一資料進行寫操作時,如果所述第一資料在被第一處理器寫操作前的最後一次更改是由第二處理器進行的,則將所述私有緩存中的所述第一資料的狀態修改為獨佔且更改;如果所述第一資料在被第一處理器寫操作前的最後一次更改是由第一處理器進行的,則將所述私有緩存中的所述第一資料的狀態修改為更改;所述開始提交交易記憶體的步驟後、交易記憶體完成提交的步驟前還可以包括:如果所述第一處理器的私有緩存中的所述第一資料的狀態為獨佔且更改,則將所述第一資料在LLC目錄中的狀態設置為獨佔且更改。
本實施方式中,對於第一資料狀態為更改的情況可以按照現有方案處理;對於前一次由其它處理器更改資料的情況,會將第一資料在第一處理器私有緩存中的狀態、及提交時LLC目錄中的狀態設置為特殊的“獨佔及更改”。這樣在後續處理中可以明確獲知該第一資料已寫回 到LLC中,且第一處理器中的第一資料已被無效化過。
本實施方式的一種備選方案中,所述步驟S1具體可以包括:S11、第一處理器開始交易處理,如果私有緩存中沒有需要的所述第一資料,則根據地址映射存取LLC的目錄;S12、根據所述第一資料的緩存行在LLC的目錄中的第一狀態指示串,獲知所述第一資料的狀態;如果所述第一資料的狀態為更改,則進行步驟S13;S13、根據所述第一狀態指示串中的資料標識位確定具有最新的所述第一資料的處理器,如果為第二處理器,則從所述第二處理器的私有緩存將最新的所述第一資料取回到LLC,將所述第一資料在LLC的目錄中的狀態修改為共用;如果為第一處理器,則直接進行步驟S2;S14、將所述第一資料從所述LLC中讀到所述第一處理器的私有緩存中,將所述第一狀態指示串中對應於所述第一處理器的資料標識位置位。
本備選方案中的步驟S13是在交易記憶體的處理中,第一次採用本實施例的方法時的過程;如果在採用本實施例的方法前,最新的第一資料存在於更改該資料的第二處理器中,則第一處理器讀取第一資料時,需要先從第二處理器取回第一資料到LLC。該情況下,第一處理器對第一資料進行寫操作後,還需要將第二處理器中的第一資料進行無效化。
本備選方案中,S14和將所述第一資料的狀態修改為共用的步驟不分先後,也可以同時進行。
本備選方案中,所述步驟S12中還可以包括:如果所述第一資料的狀態為獨佔且更改,則進行步驟S13’;所述方法還可以包括:S13’、將所述第一資料在LLC的目錄中的狀態修改為共用且更改;進行步驟S14。
其中,S14和S13’不分先後,也可以同時進行。
本備選方案中的步驟S13’是已經採用過本實施例的方法後,再進行交易記憶體的處理時的步驟。概括來說,就是如果所讀取的第一資料本來的狀態是更改,則改成共用;如果所讀取的第一資料本來的狀態是獨佔且更改,則改成共用且更改;這樣可以區分其它處理器中是否還存在第一資料,以方便後續步驟中判斷是否需要無效化其它處理器中的第一資料。
本備選方案中,所述開始提交交易記憶體的步驟後、交易記憶體完成提交的步驟前還可以包括:查詢所述第一資料在LLC目錄中狀態指示串的各資料標識位,判斷除了所述第一處理器對應的資料標識位(P1)以外,是否存在置位(為“1”)的資料標識位;如果存在,則無效化置位的資料標識位對應的處理器中的第一資料,並將該資料標識位重定(設置為“0”)。
這樣無論是否為第一次採用本實施例的方法,在進行 完步驟S4後,第一狀態指示串中的狀態標識均為獨佔且更改;且各資料標識位中,僅有和所述第一處理器對應的資料標識位的數值為“1”,以表示最後更改所述第一資料的為所述第一處理器。
下面用三個例子對比現有的資料處理過程和本實施例的資料處理過程。
第一個例子是按照正常途徑完成一次資料處理,過程如下:假設資料已經被更改,由於無效化其他CPU中的資料,CPU 1私有緩存中保留著最新資料,且LLC對應的目錄結構中會反映出CPU 1具有最新資料,該資料當前的狀態為Modified,因此開始時資料在LLC的目錄中的狀態指示串如圖4所示,狀態標識為Modified,資料標識位中只有對應於CPU 1的P1的值為“1”,其它的資料標識位的值均為“0”。
CPU 0在Transaction的現有讀寫過程如圖5所示,包括步驟101~111。
101、CPU 0的Transaction處理過程開始。
102、CPU 0從本CPU的私有緩存讀取資料。
103、由於CPU 0的私有緩存沒有資料,因此根據地址映射存取LLC的目錄。
104、LLC根據目錄內容命令CPU 1將最新資料寫回到記憶體,同時從CPU 1的私有緩存中取回資料到LLC,將目錄中相應資料緩存行的狀態標識設置為 Shared,資料標識位P0,P1會被置位(數值改為“1”),同時將資料傳回CPU 0;此時對應資料的緩存行在LLC的目錄中的狀態指示串的如圖6所示。
105、將讀取的資料返回到CPU 0的私有緩存,該資料的緩存行的狀態為共用;讀取資料完畢。
106、在CPU 0的私有緩存操作此資料,在Transaction提交之前寫操作(例如更改共用資料)不會回饋到LLC。
107、CPU 0的Transaction Memory開始提交。
108、由於資料緩存行是共用狀態,因此所有寫操作都必須需要無效化其他CPU的私有緩存的資料,根據地址映射查詢LLC目錄。
109、根據LLC目錄知道CPU 1包含資料,因此無效化CPU 1的私有緩存的資料,將P1重定(數值改為“0”)。
110、設置資料緩存行在LLC的目錄中的狀態指示串,如圖7所示,將狀態標識設置為Modified,且為CPU0獨佔(即只有P0為“1”,其它資料標識位均為“0”)。
111、CPU0完成Transaction Memory提交。
為了避免產生衝突,步驟107~110需要在提交時合併為原子操作。
可以看到,現在資料緩存行在CPU 0的私有緩存中狀態為Modified,當CPU 1再次操作時候將會重複上面的步 驟(將CPU 0和CPU 1互換)。對於存取其他CPU私有緩存的操作(從其它CPU取回資料,無效化其它CPU中的資料),延遲將隨著CPU核數的增加而迅速增加。
第二個例子是採用本實施例的方法進行資料處理時第一次的寫過程,與提前無效化技術無縫結合,可以加快Transaction Memory的操作;仍假設開始時資料在CPU 1的私有緩存中,狀態為Modified,即開始時資料在LLC的目錄中的狀態指示串也如圖4所示。
該例子中的資料處理過程如圖8所示,包括步驟201~211。
步驟201~205同步驟101~105,同樣地,步驟204中資料緩存行在LLC的目錄中的狀態指示串如圖6所示,即:狀態標識設置為Shared,資料標識位P0,P1為“1”。
206、在CPU 0的私有緩存操作此資料,在Transaction期間對這段資料的讀寫都會在CPU 0私有緩存中進行;如果CPU 0只是進行讀操作,則CPU 0的私有緩存中的資料的狀態為共用;但若有寫操作由於CPU 0取資料的時候看到資料最後一次更改是其它CPU(比如CPU 1),那麼將CPU 0的私有緩存中的資料的狀態設置為獨佔且更改,如圖8中的步驟206所示;否則(即最後一次更改是本CPU)按正常操作設定為Modified即可。
207、CPU 0開始提交Transaction memory。
208、若進行了寫操作且CPU 0的私有緩存中資料在 LLC中的狀態是共用,則有可能需要無效化其他CPU的私有緩存的資料,因此根據地址映射查詢LLC目錄中該資料狀態指示串的資料標識位。如果只是進行了讀操作,則只需要無效化CPU 0的私有緩存的資料即可。
209、根據LLC目錄中的P1為“1”得知CPU 1包含資料,因此無效化CPU 1的私有緩存的資料,將P1重定;若CPU 0的私有緩存中資料狀態為獨佔且更改,則需要將CPU 0的私有緩存中狀態為獨佔且更改的資料寫回到對應的LLC,同時將CPU 0的私有緩存的資料無效化,如圖8中的步驟209所示;若CPU 0的私有緩存資料狀態僅僅為Modified,那麼保留資料在CPU 0的私有緩存中。
210、設置CPU 0進行了寫操作的資料在LLC的目錄中的狀態指示串,如圖9所示,若CPU 0的私有緩存的資料狀態為Modified & Exclusive,則將狀態指示串中的狀態標識設置為Modified & Exclusive;若CPU 0的私有緩存的資料狀態為Modified則僅僅將狀態指示串中的狀態標識轉變為Modified;兩種情況都將P0保持為“1”以表示是CPU 0最後更改該資料。
211、Transaction Memory完成提交。
為了避免干擾,步驟207~211需要在提交時合併為原子操作。
可以看到如今資料在LLC的狀態為獨佔且更改,這個狀態意味著資料為已經更改,而根據資料標識位可知最後一個更改資料的CPU是CPU 0;但是本例子中CPU 0 中不包含資料,因此今後其他CPU操作將無需無效化CPU 0。
第三個例子是採用本實施例的方法進行資料處理時,接在第二個例子之後進行的寫過程,如圖10所示,包括步驟301~308。
301、CPU 1的Transaction處理過程開始。
302、CPU 1從本CPU的私有緩存讀取資料。
303、由於CPU 1的私有緩存沒有資料,因此根據地址映射存取LLC的目錄,根據該資料的緩存行在LLC的目錄中的狀態指示行獲知該資料的狀態為獨佔且更改,最後是被CPU 0更改。由於CPU 1需要讀取資料,因此將該資料的緩存行的狀態標識變為Modified & Shared(共用且更改),並將P1置位,將P0復位,如圖11所示。
304、將資料取回CPU 1的私有緩存,讀取資料完畢。
305、在CPU 1的私有緩存操作此資料,在Transaction期間對這段資料的讀寫都會在CPU 1的私有緩存中進行;如果CPU 1對此資料只進行讀操作,則將該資料在CPU 1的私有緩存的狀態設置為Shared;如果CPU 1對此資料有寫操作,由於CPU 1從LLC取資料的時候知道上次資料被CPU 0更改,因此將該資料在CPU 1的私有緩存的狀態變為Modified & Exclusive,若CPU 1從LLC取資料的時候知道上次資料被本CPU更改,則將該資料在CPU 1的私有緩存的狀態變為Modified。
306、CPU 1開始提交Transaction memory。
307、如果CPU 1只進行了讀操作則只需要無效化CPU 1的私有緩存的資料即可;如果進行了寫操作,由於CPU 1的私有緩存中資料在LLC中的狀態為Modified & Shared,有可能需要無效化其它CPU(值為“1”的資料標識位對應的CPU)中的資料;如果該資料在LLC中的狀態指示串中除了P1以外其它資料標識位均為“0”,則判斷其它CPU中無此資料,因此無需無效化其它CPU中的資料;若CPU 1的私有緩存的資料狀態是Modified & Exclusive,判斷需要將CPU 1的獨佔且更改的資料寫回到的LLC,無效化CPU 1的私有緩存的資料,如圖10中的步驟307所示;若CPU 1的私有緩存的資料狀態是Modified,那麼僅僅將資料保存在CPU1的私有緩存;兩種情況都會將緩存行所在LLC的目錄中的狀態指示串中的狀態標識更改,第一種情況將狀態標識設置為Modified & Exclusive(如圖12所示),第二種情況將狀態標識設置為Modified,兩種情況都是將P1保持為“1”以表示是CPU 1最後使用該資料。
308、Transaction Memory提交結束。
為了避免干擾步驟306~308需要在提交時合併為原子操作。
從現在開始,後面所有的資料更改都僅僅對LLC上面的資料進行更改,避免了CPU與CPU之間的資料傳輸,大大加快了在Transaction Memory中處理時間,最終 減少線性處理的時間,提高整體系統的可擴展性。
實施例二、一種處理器,應用在多核處理設備中,包括:私有緩存、提交單元;讀取單元,用於當本處理器開始交易處理時,將第一資料讀取到所述私有緩存中;寫操作單元,用於在所述私有緩存中對所述第一資料進行寫操作,完成後指示所述提交單元開始提交交易記憶體;無效化單元,用於當所述提交單元開始提交交易記憶體後、完成交易記憶體提交前,如果所述第一資料在被本處理器寫操作前的最後一次更改是由其它處理器進行的,則將所述私有緩存中的所述第一資料寫到LLC中,無效化本處理器的私有緩存中的所述第一資料。
本實施例的一種實施方式中,所述處理器還可以包括:設置單元,用於在所述寫操作單元將對所述第一資料進行寫操作時,如果所述第一資料在被本處理器寫操作前的最後一次更改是由其它處理器進行的,則將所述私有緩存中的第一資料的狀態修改為獨佔且更改;如果所述第一資料在被本處理器寫操作前的最後一次更改是由本處理器進行的,則將所述私有緩存中的所述第一資料的狀態修改為更改;在所述提交單元開始提交交易記憶體後、完成交易記憶體提交前,如果所述第一處理器的私有緩存中的所 述第一資料的狀態為獨佔且更改,則將所述第一資料在LLC目錄中的狀態設置為獨佔且更改。
本實施方式的一種備選方案中,所述讀取單元當本處理器開始交易處理時,將第一資料讀取到私有緩存中具體可以是指:所述讀取單元當本處理器開始交易處理時,如果私有緩存中沒有需要的所述第一資料,則根據地址映射存取LLC的目錄;根據所述第一資料的緩存行在LLC的目錄中的第一狀態指示串,獲知所述第一資料的狀態;如果所述第一資料的狀態為更改,則根據所述第一狀態指示串中的資料標識位確定具有最新的所述第一資料的處理器,如果為其它處理器,從該其它處理器的私有緩存將最新的所述第一資料取回到LLC,將所述第一資料在LLC的目錄中的狀態修改為共用,將所述第一資料從所述LLC中讀到本處理器的私有緩存中,將所述第一狀態指示串中對應於本處理器的資料標識位置位,指示所述寫操作單元在本處理器的私有緩存中對所述第一資料進行寫操作;如果為本處理器,則直接指示所述寫操作單元在本處理器的私有緩存中對所述第一資料進行寫操作。
本備選方案中,所述讀取單元還可以用於當根據地址映射存取LLC的目錄,且根據所述第一資料的緩存行在LLC的目錄中的第一狀態指示串,獲知所述第一資料的狀態為獨佔且更改時,將所述第一資料在LLC的目錄中的狀態修改為共用且更改。
本備選方案中,所述無效化單元還可以用於查詢所述第一資料在LLC目錄中狀態指示串的各資料標識位,判斷除了本處理器對應的資料標識位(P1)以外,是否存在置位(為“1”)的資料標識位;如果存在,則無效化置位的資料標識位對應的處理器中的第一資料,並將該資料標識位重定(設置為“0”)。
本領域普通技術人員可以理解上述方法中的全部或部分步驟可通過程式來指令相關硬體完成,所述程式可以儲存於電腦可讀儲存介質中,如唯讀記憶體、磁片或光碟等。可選地,上述實施例的全部或部分步驟也可以使用一個或多個積體電路來實現。相應地,上述實施例中的各模組/單元可以採用硬體的形式實現,也可以採用軟體功能模組的形式實現。本發明不限制於任何特定形式的硬體和軟體的結合。
當然,本發明還可有其他多種實施例,在不背離本發明精神及其實質的情況下,熟悉本領域的技術人員當可根據本發明作出各種相應的改變和變形,但這些相應的改變和變形都應屬於本發明的申請專利範圍的保護範圍。

Claims (10)

  1. 一種資料處理方法,包括:第一處理器開始交易處理,將第一資料讀取到私有緩存中;第一處理器在私有緩存中對所述第一資料進行寫操作,完成後開始提交交易記憶體;如果所述第一資料在被第一處理器寫操作前的最後一次更改是由第二處理器進行的,則將所述第一處理器的私有緩存中的所述第一資料寫到最後一級緩存LLC中,無效化所述第一處理器的私有緩存中的所述第一資料;交易記憶體完成提交。
  2. 如申請專利範圍第1項所述的方法,其中,還包括:當所述第一處理器將在私有緩存中對所述第一資料進行寫操作時,如果所述第一資料在被第一處理器寫操作前的最後一次更改是由第二處理器進行的,則將所述私有緩存中的所述第一資料的狀態修改為獨佔且更改;如果所述第一資料在被第一處理器寫操作前的最後一次更改是由第一處理器進行的,則將所述私有緩存中的所述第一資料的狀態修改為更改;所述開始提交交易記憶體的步驟後、交易記憶體完成提交的步驟前還包括:如果所述第一處理器的私有緩存中的所述第一資料的狀態為獨佔且更改,則將所述第一資料在LLC目錄中的 狀態設置為獨佔且更改。
  3. 如申請專利範圍第2項所述的方法,其中,所述第一處理器開始交易處理,將第一資料讀取到私有緩存中的步驟包括:S11、第一處理器開始交易處理,如果私有緩存中沒有需要的所述第一資料,則根據地址映射存取LLC的目錄;S12、根據所述第一資料的緩存行在LLC的目錄中的第一狀態指示串,獲知所述第一資料的狀態;如果所述第一資料的狀態為更改,則進行步驟S13;S13、根據所述第一狀態指示串中的資料標識位確定具有最新的所述第一資料的處理器;如果為第二處理器,則從所述第二處理器的私有緩存將最新的所述第一資料取回到LLC,將所述第一資料在LLC的目錄中的狀態修改為共用;如果為第一處理器,則直接進行第一處理器在私有緩存中對所述第一資料進行寫操作的步驟;S14、將所述第一資料從所述LLC中讀到所述第一處理器的私有緩存中,將所述第一狀態指示串中對應於所述第一處理器的資料標識位置位。
  4. 如申請專利範圍第3項所述的方法,其中,所述步驟S12中還包括:如果所述第一資料的狀態為獨佔且更改,則進行步驟S13’;所述方法還包括: S13’、將所述第一資料在LLC的目錄中的狀態修改為共用且更改;進行步驟S14。
  5. 如申請專利範圍第4項所述的方法,其中,在開始提交交易記憶體的步驟後、交易記憶體完成提交的步驟前還包括:查詢所述第一資料在LLC目錄中狀態指示串的各資料標識位,判斷除了所述第一處理器對應的資料標識位以外,是否存在置位的資料標識位;如果存在,則無效化置位的資料標識位對應的處理器中的第一資料,並將所述資料標識位重定。
  6. 一種處理器,應用在多核處理設備中,包括:私有緩存、提交單元;讀取單元,用於當所述處理器開始交易處理時,將第一資料讀取到所述私有緩存中;寫操作單元,用於在所述私有緩存中對所述第一資料進行寫操作,完成後指示所述提交單元開始提交交易記憶體;其中,還包括:無效化單元,用於當所述提交單元開始提交交易記憶體後、完成交易記憶體提交前,如果所述第一資料在被所述處理器寫操作前的最後一次更改是由其它處理器進行的,則將所述私有緩存中的所述第一資料寫到LLC中,無效化所述處理器的私有緩存中的所述第一資料。
  7. 如申請專利範圍第6項所述的處理器,其中,還包 括:設置單元,用於在所述寫操作單元將對所述第一資料進行寫操作時,如果所述第一資料在被所述處理器寫操作前的最後一次更改是由其它處理器進行的,則將所述私有緩存中的第一資料的狀態修改為獨佔且更改;如果所述第一資料在被所述處理器寫操作前的最後一次更改是由所述處理器進行的,則將所述私有緩存中的所述第一資料的狀態修改為更改;在所述提交單元開始提交交易記憶體後、完成交易記憶體提交前,如果所述第一處理器的私有緩存中的所述第一資料的狀態為獨佔且更改,則將所述第一資料在LLC目錄中的狀態設置為獨佔且更改。
  8. 如申請專利範圍第7項所述的處理器,其中,所述讀取單元當所述處理器開始交易處理時,將第一資料讀取到私有緩存中是指:所述讀取單元當所述處理器開始交易處理時,如果私有緩存中沒有需要的所述第一資料,則根據地址映射存取LLC的目錄;根據所述第一資料的緩存行在LLC的目錄中的第一狀態指示串,獲知所述第一資料的狀態;如果所述第一資料的狀態為更改,則根據所述第一狀態指示串中的資料標識位確定具有最新的所述第一資料的處理器,如果為其它處理器,從該其它處理器的私有緩存將最新的所述第一資料取回到LLC,將所述第一資料在LLC的目錄中的狀態修改為共用,將所述第一資料從所述LLC中讀到所述處理器的私有緩存中,將所述第一狀態指示串中對 應於所述處理器的資料標識位置位,指示所述寫操作單元在所述處理器的私有緩存中對所述第一資料進行寫操作;如果為所述處理器,則直接指示所述寫操作單元在所述處理器的私有緩存中對所述第一資料進行寫操作。
  9. 如申請專利範圍第8項所述的處理器,其中:所述讀取單元還用於當根據地址映射存取LLC的目錄,且根據所述第一資料的緩存行在LLC的目錄中的第一狀態指示串,獲知所述第一資料的狀態為獨佔且更改時,將所述第一資料在LLC的目錄中的狀態修改為共用且更改。
  10. 如申請專利範圍第9項所述的處理器,其中:所述無效化單元還用於查詢所述第一資料在LLC目錄中狀態指示串的各資料標識位,判斷除了所述處理器對應的資料標識位以外,是否存在置位的資料標識位;如果存在,則無效化置位的資料標識位對應的處理器中的第一資料,並將所述資料標識位重定。
TW103118606A 2014-03-26 2014-05-28 Data processing method and processor TWI638311B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
??201410117556.9 2014-03-26
CN201410117556.9A CN104951240B (zh) 2014-03-26 2014-03-26 一种数据处理方法及处理器

Publications (2)

Publication Number Publication Date
TW201537454A true TW201537454A (zh) 2015-10-01
TWI638311B TWI638311B (zh) 2018-10-11

Family

ID=54165922

Family Applications (1)

Application Number Title Priority Date Filing Date
TW103118606A TWI638311B (zh) 2014-03-26 2014-05-28 Data processing method and processor

Country Status (8)

Country Link
US (2) US9715450B2 (zh)
EP (2) EP3441886B1 (zh)
JP (2) JP6470300B2 (zh)
KR (1) KR102398912B1 (zh)
CN (2) CN109240945B (zh)
HK (1) HK1211102A1 (zh)
TW (1) TWI638311B (zh)
WO (1) WO2015148679A1 (zh)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150205721A1 (en) * 2014-01-22 2015-07-23 Advanced Micro Devices, Inc. Handling Reads Following Transactional Writes during Transactions in a Computing Device
CN109240945B (zh) 2014-03-26 2023-06-06 阿里巴巴集团控股有限公司 一种数据处理方法及处理器
US10318295B2 (en) * 2015-12-22 2019-06-11 Intel Corporation Transaction end plus commit to persistence instructions, processors, methods, and systems
KR102593362B1 (ko) * 2016-04-27 2023-10-25 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
GB2551529B (en) 2016-06-21 2018-09-12 Advanced Risc Mach Ltd Switching between private cache and shared memory to handle atomic operations
US10268580B2 (en) * 2016-09-30 2019-04-23 Intel Corporation Processors and methods for managing cache tiering with gather-scatter vector semantics
US10528471B2 (en) 2016-12-27 2020-01-07 Eta Scale Ab System and method for self-invalidation, self-downgrade cachecoherence protocols
US11119923B2 (en) * 2017-02-23 2021-09-14 Advanced Micro Devices, Inc. Locality-aware and sharing-aware cache coherence for collections of processors
US11727997B2 (en) 2017-07-07 2023-08-15 Micron Technology, Inc. RPMB improvements to managed NAND
CN109614220B (zh) * 2018-10-26 2020-06-30 阿里巴巴集团控股有限公司 一种多核系统处理器和数据更新方法
CN109684237B (zh) * 2018-11-20 2021-06-01 华为技术有限公司 基于多核处理器的数据访问方法和装置
CN109784930B (zh) * 2019-02-18 2023-07-18 深圳市迅雷网络技术有限公司 一种区块链交易数据的处理方法、装置、电子设备及介质
CN110265029A (zh) * 2019-06-21 2019-09-20 百度在线网络技术(北京)有限公司 语音芯片和电子设备
CN112307067B (zh) * 2020-11-06 2024-04-19 支付宝(杭州)信息技术有限公司 一种数据处理方法及装置
US11429910B1 (en) 2021-08-05 2022-08-30 Transit Labs Inc. Dynamic scheduling of driver breaks in a ride-sharing service

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH061463B2 (ja) 1990-01-16 1994-01-05 インターナショナル・ビジネス・マシーンズ・コーポレーション マルチプロセッサ・システムおよびそのプライベート・キャッシュ制御方法
US5428761A (en) * 1992-03-12 1995-06-27 Digital Equipment Corporation System for achieving atomic non-sequential multi-word operations in shared memory
DE4331178A1 (de) * 1993-09-14 1995-03-16 Hoechst Schering Agrevo Gmbh Substituierte Pyridine und Pyrimidine, Verfahren zu ihrer Herstellung und ihre Verwendung als Schädlingsbekämpfungsmittel und Fungizide
US6192451B1 (en) * 1998-02-17 2001-02-20 International Business Machines Corporation Cache coherency protocol for a data processing system including a multi-level memory hierarchy
US6434672B1 (en) * 2000-02-29 2002-08-13 Hewlett-Packard Company Methods and apparatus for improving system performance with a shared cache memory
US6868485B1 (en) * 2002-09-27 2005-03-15 Advanced Micro Devices, Inc. Computer system with integrated directory and processor cache
US9727468B2 (en) * 2004-09-09 2017-08-08 Intel Corporation Resolving multi-core shared cache access conflicts
US7237070B2 (en) * 2005-04-19 2007-06-26 International Business Machines Corporation Cache memory, processing unit, data processing system and method for assuming a selected invalid coherency state based upon a request source
US10031848B2 (en) * 2005-06-14 2018-07-24 Intel Corporation Method and apparatus for improving snooping performance in a multi-core multi-processor
US8407432B2 (en) * 2005-06-30 2013-03-26 Intel Corporation Cache coherency sequencing implementation and adaptive LLC access priority control for CMP
US20070143550A1 (en) * 2005-12-19 2007-06-21 Intel Corporation Per-set relaxation of cache inclusion
US7590805B2 (en) * 2005-12-29 2009-09-15 Intel Corporation Monitor implementation in a multicore processor with inclusive LLC
US8683143B2 (en) * 2005-12-30 2014-03-25 Intel Corporation Unbounded transactional memory systems
US8924653B2 (en) 2006-10-31 2014-12-30 Hewlett-Packard Development Company, L.P. Transactional cache memory system
US20090138890A1 (en) * 2007-11-21 2009-05-28 Arm Limited Contention management for a hardware transactional memory
US8051248B2 (en) 2008-05-05 2011-11-01 Globalfoundries Inc. Transient transactional cache
US8799582B2 (en) * 2008-12-30 2014-08-05 Intel Corporation Extending cache coherency protocols to support locally buffered data
US8627017B2 (en) 2008-12-30 2014-01-07 Intel Corporation Read and write monitoring attributes in transactional memory (TM) systems
US8782347B2 (en) * 2009-06-26 2014-07-15 Intel Corporation Controllably exiting an unknown state of a cache coherency directory
US8229907B2 (en) 2009-06-30 2012-07-24 Microsoft Corporation Hardware accelerated transactional memory system with open nested transactions
US8301849B2 (en) 2009-12-23 2012-10-30 Intel Corporation Transactional memory in out-of-order processors with XABORT having immediate argument
US9274962B2 (en) * 2010-12-07 2016-03-01 Intel Corporation Apparatus, method, and system for instantaneous cache state recovery from speculative abort/commit
US9477600B2 (en) * 2011-08-08 2016-10-25 Arm Limited Apparatus and method for shared cache control including cache lines selectively operable in inclusive or non-inclusive mode
US8984228B2 (en) * 2011-12-13 2015-03-17 Intel Corporation Providing common caching agent for core and integrated input/output (IO) module
US9274960B2 (en) * 2012-03-20 2016-03-01 Stefanos Kaxiras System and method for simplifying cache coherence using multiple write policies
US20140075124A1 (en) 2012-09-07 2014-03-13 International Business Machines Corporation Selective Delaying of Write Requests in Hardware Transactional Memory Systems
CN109240945B (zh) 2014-03-26 2023-06-06 阿里巴巴集团控股有限公司 一种数据处理方法及处理器

Also Published As

Publication number Publication date
KR102398912B1 (ko) 2022-05-17
CN109240945A (zh) 2019-01-18
EP3441886A1 (en) 2019-02-13
CN104951240B (zh) 2018-08-24
CN109240945B (zh) 2023-06-06
US20170277635A1 (en) 2017-09-28
TWI638311B (zh) 2018-10-11
US20150278094A1 (en) 2015-10-01
EP3441886B1 (en) 2020-11-18
JP6470300B2 (ja) 2019-02-13
US9858186B2 (en) 2018-01-02
WO2015148679A1 (en) 2015-10-01
JP2017509985A (ja) 2017-04-06
EP3123351A4 (en) 2017-10-25
JP6685437B2 (ja) 2020-04-22
EP3123351B1 (en) 2018-12-12
CN104951240A (zh) 2015-09-30
US9715450B2 (en) 2017-07-25
EP3123351A1 (en) 2017-02-01
HK1211102A1 (zh) 2016-05-13
JP2019083045A (ja) 2019-05-30
KR20160138025A (ko) 2016-12-02

Similar Documents

Publication Publication Date Title
TWI638311B (zh) Data processing method and processor
US8706973B2 (en) Unbounded transactional memory system and method
KR101385430B1 (ko) 영구 메모리들을 위한 캐시 일관성 프로토콜
US8688951B2 (en) Operating system virtual memory management for hardware transactional memory
JP7159223B2 (ja) キャッシュの競合を管理するための方法およびシステム
EP3701377B1 (en) Method and apparatus for updating shared data in a multi-core processor environment
US20080005504A1 (en) Global overflow method for virtualized transactional memory
US8423736B2 (en) Maintaining cache coherence in a multi-node, symmetric multiprocessing computer
US10733101B2 (en) Processing node, computer system, and transaction conflict detection method
WO2016106738A1 (zh) 事务冲突检测方法、装置及计算机系统
KR20160086820A (ko) 메모리에 동시에 액세스하는 기법
US20220413952A1 (en) Method and system for constructing persistent memory index in non-uniform memory access architecture
US20230401153A1 (en) Processor and method designating an in-core cache of a hierarchical cache system to perform writing-back and invalidation of cached data
US8230173B2 (en) Cache memory system, data processing apparatus, and storage apparatus
JPH02259945A (ja) ストア処理方式
JP2010204933A (ja) キャッシュシステムおよびこれを用いるコンピュータ