TWI512611B - 執行緒層級推測中之動態資料同步化技術 - Google Patents

執行緒層級推測中之動態資料同步化技術 Download PDF

Info

Publication number
TWI512611B
TWI512611B TW100122652A TW100122652A TWI512611B TW I512611 B TWI512611 B TW I512611B TW 100122652 A TW100122652 A TW 100122652A TW 100122652 A TW100122652 A TW 100122652A TW I512611 B TWI512611 B TW I512611B
Authority
TW
Taiwan
Prior art keywords
synchronization
processor
dependent
instructions
bits
Prior art date
Application number
TW100122652A
Other languages
English (en)
Other versions
TW201229893A (en
Inventor
Wei Liu
Youfeng Wu
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 TW201229893A publication Critical patent/TW201229893A/zh
Application granted granted Critical
Publication of TWI512611B publication Critical patent/TWI512611B/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/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; 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • 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/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; 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/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; 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3851Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Advance Control (AREA)

Description

執行緒層級推測中之動態資料同步化技術 發明領域
本發明係有關執行緒層級推測,更特別係有關執行緒層級推測中之動態資料同步化技術。
發明背景
於現代處理器中,擁有能夠並行執行的多個運算核心是很普遍的。然而,許多序列或串列應用程式和程式卻未能有效地運用並行架構。執行緒層級推測(TLS)為一種具有前景的並行化序列程式之技術,配合靜態或動態編譯器和硬體以在當誤推測發生時復原。然而,若在相依的載入和儲存指令之間沒有適當的同步化,則,例如,載入動作可能會在儲存動作之前執行,並導致會擠壓推測執行緒並需要以重新載入之資料重新執行的資料違規。
依據本發明之一實施例,係特地提出一種包含有內容的儲存媒體,該內容在由一取用機器執行時會致使該取用機器進行下列步驟:於一個多核心處理器的一第一核心中執行指令;判定在一個推測快取記憶體中作為一個相依槽之一部份的一個資料的一個位址;以及若與該資料相關聯的一個同步化位元已被一第二核心中的一個相依源設定,則等待以取用該資料。
依據本發明之另一實施例,係特地提出一種系統,其包含:一個處理器,其包括有用以執行指令的一第一核心和一第二核心;一個推測快取記憶體,用以為該處理器儲存資料和指令,該推測快取記憶體包括有數個同步化位元,以指出相關聯的資料是否從屬於一個相依源及在一個同步化位元被設定時擱置數個相依槽操作;耦接至該處理器的一個動態隨機存取記憶體(DRAM),該DRAM係用於儲存數個串列指令;以及一個推測引擎,該推測引擎係用於藉由創造分開的數個執行緒與插入數個處理器指令以在一個相依源之前設定該等同步化位元,而將該等串列指令並行化。
依據本發明之又一實施例,係特地提出一種由專門推測引擎執行之方法,其包含下列步驟:從數個串列指令創造出並行化的數個執行緒;在該等執行緒中插入數個處理器指令,以在一個相依源之前設定數個同步化位元及在該相依源之後清除該等同步化位元,其中該等同步化位元係設計來在被設定時擱置一個相依槽;以及於一個多核心處理器的數個核心上執行經並行化的該等執行緒。
圖式簡單說明
第1圖為依據本發明之一實施例的一個示範系統之方塊圖;第2圖為依據本發明之一實施例的一個示範推測引擎之方塊圖;第3A和3B圖為依據本發明之一實施例的示範軟體碼之方塊圖;第4圖為依據本發明之一實施例的用於執行緒層級推測中之動態資料同步化的流程圖;第5圖為依據本發明之一實施例的一個系統之方塊圖。
較佳實施例之詳細說明
在多種實施例中,係將一個推測快取記憶體引入一個處理器,此推測快取記憶體具有數個同步化位元,此等同步化位元被設定時可擱置(stall)對於快取行或字組的讀取。熟於此技者會可識出,這可避免誤推測和相關聯的經擠壓執行緒之無效率行為。亦呈現用以設定和清除此等同步化位元的處理器指令。編譯器可得益於這些指令來將資料相依性(data dependency)同步化。本發明係意欲要在可包括有額外的同步化及/或執行緒推測特徵的處理器和系統中實現。
現在,請參考第1圖,所示為依據本發明之一實施例的一個示範系統之方塊圖。如於第1圖中所示,系統100可包括處理器102和記憶體104,像是動態隨機存取記憶體(DRAM)等。處理器102可包括有核心106~110、推測快取記憶體112和推測引擎118。核心106~110可係能夠彼此獨立地執行指令的,並可包括任何類型的架構。雖然係示為包括有三個核心,但處理器102係可具有任何數量的核心,並可包括有未示於圖中的其他部件或控制器。在一個實施例中,處理器102為一個單晶片系統(SOC)。
推測快取記憶體112可包括有任何數量的分開的快取記憶體,且可含有任何數量的項目。雖然係意欲作為一個低潛伏第一級快取記憶體,但亦可係於任何階層層級而在任何記憶體技術中實施推測快取記憶體112。推測快取記憶體112包括與快取行或字組116相關聯的同步化位元114。當同步化位元114被設定時,如將於後文中更詳細說明的,行或字組116會無法被核心載入,因為,例如,另一個核心可能正要執行此載入動作所相依的一個儲存動作。在一個實施例中,在同步化位元114被設定時試著要從快取行或字組116載入的一個核心會被擱置,直到同步化位元114被清除為止。
推測引擎118可實施一種用於執行緒層級推測中之動態資料同步化的方法,例如參考第4圖所說明之方法,並可具有如參考第2圖所說明的一個架構。推測引擎118可係與處理器102分開,並可係在硬體、軟體或硬體與軟體之組合中實施。
現在,請參考第2圖,所示為依據本發明之一實施例的一個示範推測引擎之方塊圖。如於第2圖中所示,推測引擎118可包括有數個同步化服務202、並行輸出碼204和串列輸入碼206。同步化服務202可提供推測引擎118將串列指令並行化及在執行緒層級推測中增加動態資料同步化的能力。
同步化服務202可包括執行緒服務208、同步化設定服務210以及同步化清除服務212,其分別可從串列指令中創造出數個並行執行緒、插入處理器指令以在相依源(dependence source)之前設定同步化位元、以及插入處理器指令以在相依源之後清除同步化位元。同步化服務202可從串列輸入碼206(例如示於第3A圖中者)創造出並行輸出碼204(例如示於第3B圖中者)。
現在,請參考第3A和3B圖,所示為依據本發明之一實施例的示範軟體碼之方塊圖。如於第3A圖中所示,序列指令300包括許多串列地進行的載入和儲存動作,並係意欲要由一個處理器的單一個核心執行。序列指令300可作為推測引擎118的串列輸出碼206。如於第3B圖中所示,並行指令302可表示推測引擎118的並行輸出碼204。執行緒304~308可係能夠分開地由核心106~110執行的。
執行緒304~308可各包括有一個處理器指令(例如,mark_comm_addr),其在被執行時會在相依源,像是一個儲存指令,之前針對一個特定的快取行或字組116而設定同步化位元114。執行緒304~308可亦各包括有一個對應的處理器指令(例如,clear_comm_addr),其在被執行時會在此相依源之後清除同步化位元114。資料相依性的一個範例可見於執行緒304和308中,其中,相依槽(dependence sink)會必須要等待相依源來完成和清除同步化位元。於此事例中,載入310會擱置執行緒308之進度,直到儲存312完成且執行緒304清除相關聯的同步化位元為止。
現在,請參考第4圖,所示為依據本發明之一實施例的用於執行緒層級推測中之動態資料同步化的流程圖。如於第4圖中所示,此方法係由從串列指令創造出數個並行執行緒(402)開始。在一個實施例中,執行緒服務208被調用來從序列指令300產生並行指令302。在另一個實施例中,所產生之執行緒(304~308)的數量至少部份係以一個處理器中的核心(106~110)之數量為基礎。
此方法繼續,插入處理器指令以設定和清除同步化位元(404)。在一個實施例中,當一個位址被產生時,同步化設定服務210在於比相依源或潛在相依源更早的一個時點將指令(mark_comm_addr)插入到執行緒304~308內。在另一個實施例中,同步化清除服務212在相依源或潛在相依源之後將指令(clear_comm_addr)插入到執行緒304~308內。
此方法包括在一個多核心處理器的數個核心上執行此等並行執行緒(406)。在一個實施例中,執行緒304~308分別係在核心106~110上執行。在一個實施例中,核心110之執行可擱置在載入310上,直到同步化位元114被執行於核心106上之執行緒304清除為止。
可係以許多不同的系統類型來實施數個實施例。現在,請參考第5圖,所示為依據本發明之一實施例的一個系統之方塊圖。如於第5圖中所示,多處理器系統500為一個點對點互連系統,並包括有經由一個點對點互連550而耦接的一第一處理器570和一第二處理器580。如於第5圖中所示,處理器570和580各可為多核心處理器,包括有第一和第二處理器核心(即,處理器核心574a和574b及處理器核心584a和584b)。各個處理器均可包括有依據本發明之一實施例的動態資料同步化執行緒層級推測硬體、軟體和韌體。
仍參考第5圖,第一處理器570更進一步地包括有一個記憶體控制器集線器(MCH)572及點對點(P-P)介面576和578。類似地,第二處理器580包括有一個MCH 582及P-P介面586和588。如於第5圖中所示,MCH 572和582將此等處理器耦接至各別記憶體,也就是記憶體532和記憶體534,其可為於本地附接至個別處理器的主記憶體(例如,一個動態隨機存取記憶體(DRAM))之部份,其依據本發明之一實施例係各可包括有數個延伸頁表。第一處理器570和第二處理器580可分別經由P-P互連552和554耦接至一個晶片組590。如於第5圖中所示,晶片組590包括有P-P介面594和598。
此外,晶片組590還包括一個介面592,以將晶片組590與一個高效能圖形引擎538耦接。接著,晶片組590可經由一個介面596耦接至一第一匯流排516。如於第5圖中所示,多種輸入/輸出(I/O)裝置514可和將第一匯流排516耦接至一第二匯流排520的一個匯流排橋518一起被耦接至第一匯流排516。在一個實施例中,多種裝置可被耦接至第二匯流排520,包括,例如,一個鍵盤/滑鼠522、數個通訊裝置526和一個資料儲存單元528,像是一個磁碟驅動器或可包括有碼530的其他大量儲存裝置等。更進一步地,亦可將一個音訊I/O 524耦接至第二匯流排520。
數個實施例可係在碼中實施,並且可被儲存在具有儲存在內之指令的一個儲存媒體上,其可被用來規劃一個系統以執行此等指令。此儲存媒體可包括但不限於任何類型的磁碟,包括軟碟、光碟、密閉磁碟唯讀記憶體(CD-ROM)、密閉磁碟可複寫(CD-RW)、以及磁光碟、半導體裝置,像是唯讀記憶體(ROM)、隨機存取記憶體(RAM),像是動態隨機存取記憶體(DRAM)、靜態隨機存取記憶體(SRAM)、可拭除可規劃唯讀記憶體(EPROM)、快閃記憶體,電氣式可拭除可規劃唯讀記憶體(EEPROM)、磁性或光學卡、或任何其他類型的適於儲存電子指令之媒體。
雖然已針對有限數量的實施例來說明本發明,但熟於此技者會可從中識出多種修改體與變異體。係意欲要使後附申請專利範圍將所有這樣的修改體與變異體涵蓋為落於本發明之真實精神與範疇內。
100...系統
102...處理器
104、532、534‧‧‧記憶體
106~110‧‧‧核心
112‧‧‧推測快取記憶體
114‧‧‧同步化位元
116‧‧‧行或字組
118‧‧‧推測引擎
202‧‧‧同步化服務
204‧‧‧並行輸出碼
206‧‧‧串列輸入碼
208‧‧‧執行緒服務
210‧‧‧同步化設定服務
212‧‧‧同步化清除服務
300‧‧‧序列指令
302‧‧‧並行指令
304~308‧‧‧執行緒
310‧‧‧載入
312‧‧‧儲存
402~406‧‧‧步驟
500‧‧‧多處理器系統
514‧‧‧輸入/輸出(I/O)裝置
516‧‧‧第一匯流排
518‧‧‧匯流排橋
520‧‧‧第二匯流排
522‧‧‧鍵盤/滑鼠
524‧‧‧音訊輸入/輸出(I/O)
526‧‧‧通訊裝置
528‧‧‧資料儲存單元
530‧‧‧碼
538‧‧‧高效能圖形引擎
550、552、554‧‧‧點對點(P-P)互連
570、580‧‧‧處理器
572、582‧‧‧記憶體控制器集線器(MCH)
574a、574b、584a、584b‧‧‧處理器核心
576、578、586、588、594、598‧‧‧點對點(P-P)介面
590‧‧‧晶片組
592、596‧‧‧介面
第1圖為依據本發明之一實施例的一個示範系統之方塊圖;
第2圖為依據本發明之一實施例的一個示範推測引擎之方塊圖;
第3A和3B圖為依據本發明之一實施例的示範軟體碼之方塊圖;
第4圖為依據本發明之一實施例的用於執行緒層級推測中之動態資料同步化的流程圖;
第5圖為依據本發明之一實施例的一個系統之方塊圖。
118...推測引擎
202...同步化服務
204...並行輸出碼
206...串列輸入碼
208...執行緒服務
210...同步化設定服務
212...同步化清除服務

Claims (19)

  1. 一種包含有內容的儲存媒體,該內容在由一取用機器執行時會致使該取用機器進行下列步驟:於一個多核心處理器的一第一核心中執行指令;判定在一個推測快取記憶體中作為一個相依槽之一部份的一個資料的一個位址;以及若與該資料相關聯的一個同步化位元已被一第二核心中的一個相依源設定,則等待以取用該資料,其中,該同步化位元係在與該第二核心中之該相依源相關聯的一個相依源位址被產生出來時受到設定。
  2. 如申請專利範圍第1項之儲存媒體,其更包含有在由一取用機器執行時會致使該取用機器進行下列步驟的內容:藉由執行一個處理器指令來設定該同步化位元。
  3. 如申請專利範圍第2項之儲存媒體,其更包含有在由一取用機器執行時會致使該取用機器進行下列步驟的內容:藉由執行一個處理器指令來清除該同步化位元。
  4. 如申請專利範圍第3項之儲存媒體,其中該相依槽包含一個載入指令。
  5. 如申請專利範圍第3項之儲存媒體,其中該相依源包含一個儲存指令。
  6. 如申請專利範圍第3項之儲存媒體,其中與該資料相關聯之該同步化位元包含一個快取行位元。
  7. 如申請專利範圍第3項之儲存媒體,其中與該資料相關聯之該同步化位元包含一個快取字組位元。
  8. 一種系統,其包含:一個處理器,其包括有用以執行指令的一第一核心和一第二核心;一個推測快取記憶體,用以為該處理器儲存資料和指令,該推測快取記憶體包括有數個同步化位元,以指出相關聯的資料是否從屬於一個相依源及在一個同步化位元被設定時擱置數個相依槽操作;耦接至該處理器的一個動態隨機存取記憶體(DRAM),該DRAM係用於儲存數個串列指令;以及一個推測引擎,該推測引擎係用於藉由創造分開的數個執行緒與插入數個處理器指令以在一個相依源之前設定該等同步化位元,而將該等串列指令並行化。
  9. 如申請專利範圍第8項之系統,其更進一步包含該推測引擎以在一個相依源之後插入對應的數個處理器指令來清除該等同步化位元。
  10. 如申請專利範圍第9項之系統,其中該相依源包含一個儲存指令。
  11. 如申請專利範圍第9項之系統,其中該相依槽包含一個載入指令。
  12. 如申請專利範圍第8項之系統,其中該等同步化位元包含數個快取行位元。
  13. 如申請專利範圍第8項之系統,其中該等同步化位元包 含數個快取字組位元。
  14. 一種由專門推測引擎執行之方法,其包含下列步驟:從一組串列指令創造出並行化的數個執行緒;在該等執行緒中插入數個處理器指令,以在一個相依源之前設定數個同步化位元及在該相依源之後清除該等同步化位元,其中該等同步化位元係設計來在被設定時擱置一個相依槽;以及於一個多核心處理器的數個核心上執行經並行化的該等執行緒。
  15. 如申請專利範圍第14項之方法,其中該相依源包含一個儲存指令。
  16. 如申請專利範圍第14項之方法,其中該相依槽包含一個載入指令。
  17. 如申請專利範圍第14項之方法,其中該等同步化位元包含數個快取行位元。
  18. 如申請專利範圍第14項之方法,其中該等同步化位元包含數個快取字組位元。
  19. 如申請專利範圍第14項之方法,其中在該等執行緒中插入數個處理器指令以在一個相依源之前設定數個同步化位元之步驟包含:插入一個處理器指令以在一個相依源位址被產生時設定該同步化位元。
TW100122652A 2010-06-29 2011-06-28 執行緒層級推測中之動態資料同步化技術 TWI512611B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US12/826,287 US20110320781A1 (en) 2010-06-29 2010-06-29 Dynamic data synchronization in thread-level speculation

Publications (2)

Publication Number Publication Date
TW201229893A TW201229893A (en) 2012-07-16
TWI512611B true TWI512611B (zh) 2015-12-11

Family

ID=45353688

Family Applications (1)

Application Number Title Priority Date Filing Date
TW100122652A TWI512611B (zh) 2010-06-29 2011-06-28 執行緒層級推測中之動態資料同步化技術

Country Status (8)

Country Link
US (1) US20110320781A1 (zh)
EP (1) EP2588959A4 (zh)
JP (1) JP2013527549A (zh)
KR (1) KR101460985B1 (zh)
CN (1) CN103003796B (zh)
AU (1) AU2011276588A1 (zh)
TW (1) TWI512611B (zh)
WO (1) WO2012006030A2 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9697003B2 (en) 2013-06-07 2017-07-04 Advanced Micro Devices, Inc. Method and system for yield operation supporting thread-like behavior
WO2020259560A1 (zh) * 2019-06-24 2020-12-30 华为技术有限公司 一种插入同步指令的方法及装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5655096A (en) * 1990-10-12 1997-08-05 Branigin; Michael H. Method and apparatus for dynamic scheduling of instructions to ensure sequentially coherent data in a processor employing out-of-order execution
US6785803B1 (en) * 1996-11-13 2004-08-31 Intel Corporation Processor including replay queue to break livelocks
US20060294326A1 (en) * 2005-06-23 2006-12-28 Jacobson Quinn A Primitives to enhance thread-level speculation
US20070240158A1 (en) * 2006-04-06 2007-10-11 Shailender Chaudhry Method and apparatus for synchronizing threads on a processor that supports transactional memory

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6282637B1 (en) * 1998-12-02 2001-08-28 Sun Microsystems, Inc. Partially executing a pending atomic instruction to unlock resources when cancellation of the instruction occurs
US7257814B1 (en) 1998-12-16 2007-08-14 Mips Technologies, Inc. Method and apparatus for implementing atomicity of memory operations in dynamic multi-streaming processors
WO2001061480A1 (en) 2000-02-14 2001-08-23 Intel Corporation Processor having replay architecture with fast and slow replay paths
US6862664B2 (en) * 2003-02-13 2005-03-01 Sun Microsystems, Inc. Method and apparatus for avoiding locks by speculatively executing critical sections
US7340569B2 (en) * 2004-02-10 2008-03-04 Wisconsin Alumni Research Foundation Computer architecture providing transactional, lock-free execution of lock-based programs
JP2005284749A (ja) * 2004-03-30 2005-10-13 Kyushu Univ 並列処理コンピュータ
US20060143384A1 (en) * 2004-12-27 2006-06-29 Hughes Christopher J System and method for non-uniform cache in a multi-core processor
US7587555B2 (en) * 2005-11-10 2009-09-08 Hewlett-Packard Development Company, L.P. Program thread synchronization
US8185700B2 (en) * 2006-05-30 2012-05-22 Intel Corporation Enabling speculative state information in a cache coherency protocol
US8719807B2 (en) * 2006-12-28 2014-05-06 Intel Corporation Handling precompiled binaries in a hardware accelerated software transactional memory system
WO2008155827A1 (ja) * 2007-06-20 2008-12-24 Fujitsu Limited キャッシュ制御装置及び制御方法
US8855138B2 (en) * 2008-08-25 2014-10-07 Qualcomm Incorporated Relay architecture framework
JP5320618B2 (ja) * 2008-10-02 2013-10-23 株式会社日立製作所 経路制御方法及びアクセスゲートウェイ装置
US8732407B2 (en) * 2008-11-19 2014-05-20 Oracle America, Inc. Deadlock avoidance during store-mark acquisition
CN101657028B (zh) * 2009-09-10 2011-09-28 新邮通信设备有限公司 一种建立s1接口连接的方法、设备及系统

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5655096A (en) * 1990-10-12 1997-08-05 Branigin; Michael H. Method and apparatus for dynamic scheduling of instructions to ensure sequentially coherent data in a processor employing out-of-order execution
US6785803B1 (en) * 1996-11-13 2004-08-31 Intel Corporation Processor including replay queue to break livelocks
US20060294326A1 (en) * 2005-06-23 2006-12-28 Jacobson Quinn A Primitives to enhance thread-level speculation
US20070240158A1 (en) * 2006-04-06 2007-10-11 Shailender Chaudhry Method and apparatus for synchronizing threads on a processor that supports transactional memory

Also Published As

Publication number Publication date
CN103003796A (zh) 2013-03-27
KR101460985B1 (ko) 2014-11-13
WO2012006030A2 (en) 2012-01-12
AU2011276588A1 (en) 2013-01-10
WO2012006030A3 (en) 2012-05-24
EP2588959A2 (en) 2013-05-08
EP2588959A4 (en) 2014-04-16
JP2013527549A (ja) 2013-06-27
KR20130040957A (ko) 2013-04-24
CN103003796B (zh) 2017-08-25
US20110320781A1 (en) 2011-12-29
TW201229893A (en) 2012-07-16

Similar Documents

Publication Publication Date Title
US8615646B2 (en) Unanimous branch instructions in a parallel thread processor
US8375176B2 (en) Lock mechanism to enable atomic updates to shared memory
TWI494851B (zh) 用於推測式述詞指令之功能單元、處理器及方法
TWI714903B (zh) 多處理器裝置及用於操作多處理器系統之方法
US20140149719A1 (en) Arithmetic processing apparatus, control method of arithmetic processing apparatus, and a computer-readable storage medium storing a control program for controlling an arithmetic processing apparatus
US8572355B2 (en) Support for non-local returns in parallel thread SIMD engine
JP2006107497A (ja) 制御方法、処理方法、またはそれらを利用した処理システム、コンピュータ処理システム、コンピュータのネットワーク
US20140047419A1 (en) Handling Pointers in Program Code in a System that Supports Multiple Address Spaces
US9645802B2 (en) Technique for grouping instructions into independent strands
US20140173606A1 (en) Streaming processing of short read alignment algorithms
US8935475B2 (en) Cache management for memory operations
TWI478053B (zh) 用於將函式指標映對到裝置碼的方法和系統
US8490071B2 (en) Shared prefetching to reduce execution skew in multi-threaded systems
TWI512611B (zh) 執行緒層級推測中之動態資料同步化技術
CN113791770B (zh) 代码编译器、代码编译方法、代码编译系统和计算机介质
WO2016201699A1 (zh) 指令处理方法及设备
CN111857830A (zh) 一种提前转发指令数据的通路设计方法、系统及存储介质
US7937565B2 (en) Method and system for data speculation on multicore systems
Dheeraj et al. Optimization of automatic conversion of serial C to parallel OpenMP
CN116301874A (zh) 代码编译方法、电子设备及存储介质
EP4010795A1 (en) Efficient encoding of high fan-out communications in a block-based instruction set architecture
Youngman Multi-core processors and the future of parallelism in software
JP2005267024A (ja) 並列処理装置、方法、およびプログラム

Legal Events

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