JP5054665B2 - スリープ‐起動機構を用いた比較および交換動作 - Google Patents
スリープ‐起動機構を用いた比較および交換動作Info
- Publication number
- JP5054665B2 JP5054665B2 JP2008324669A JP2008324669A JP5054665B2 JP 5054665 B2 JP5054665 B2 JP 5054665B2 JP 2008324669 A JP2008324669 A JP 2008324669A JP 2008324669 A JP2008324669 A JP 2008324669A JP 5054665 B2 JP5054665 B2 JP 5054665B2
- Authority
- JP
- Japan
- Prior art keywords
- lock
- instruction
- processor
- instructions
- sleep
- Prior art date
- Legal status (The legal status 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 status listed.)
- Expired - Fee Related
Links
- 230000007246 mechanism Effects 0.000 title claims description 40
- 230000007958 sleep Effects 0.000 claims description 32
- 238000000034 method Methods 0.000 claims description 30
- 230000008859 change Effects 0.000 claims description 20
- 239000000872 buffer Substances 0.000 claims description 12
- 230000004913 activation Effects 0.000 claims description 5
- 238000012544 monitoring process Methods 0.000 claims 13
- 239000012536 storage buffer Substances 0.000 claims 8
- 238000001514 detection method Methods 0.000 claims 2
- 230000003213 activating effect Effects 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 16
- 230000008569 process Effects 0.000 description 15
- 238000012545 processing Methods 0.000 description 9
- 230000001960 triggered effect Effects 0.000 description 6
- 101000912503 Homo sapiens Tyrosine-protein kinase Fgr Proteins 0.000 description 5
- 102100037226 Nuclear receptor coactivator 2 Human genes 0.000 description 5
- 238000012360 testing method Methods 0.000 description 5
- 238000005192 partition Methods 0.000 description 4
- 238000012546 transfer Methods 0.000 description 4
- 101000974356 Homo sapiens Nuclear receptor coactivator 3 Proteins 0.000 description 3
- 102100022883 Nuclear receptor coactivator 3 Human genes 0.000 description 3
- 239000003795 chemical substances by application Substances 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 101000602926 Homo sapiens Nuclear receptor coactivator 1 Proteins 0.000 description 2
- 101000651467 Homo sapiens Proto-oncogene tyrosine-protein kinase Src Proteins 0.000 description 2
- 102100027384 Proto-oncogene tyrosine-protein kinase Src Human genes 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 230000004622 sleep time Effects 0.000 description 2
- 238000000638 solvent extraction Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 102100023882 Endoribonuclease ZC3H12A Human genes 0.000 description 1
- 101710112715 Endoribonuclease ZC3H12A Proteins 0.000 description 1
- 101100120298 Rattus norvegicus Flot1 gene Proteins 0.000 description 1
- 101100412401 Rattus norvegicus Reg3a gene Proteins 0.000 description 1
- 101100412403 Rattus norvegicus Reg3b gene Proteins 0.000 description 1
- 206010000210 abortion Diseases 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000002411 adverse Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30021—Compare instructions, e.g. Greater-Than, Equal-To, MINMAX
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30032—Movement instructions, e.g. MOVE, SHIFT, ROTATE, SHUFFLE
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3004—Arrangements for executing specific machine instructions to perform operations on memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30076—Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
- G06F9/30087—Synchronisation or serialisation instructions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3854—Instruction completion, e.g. retiring, committing or graduating
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3854—Instruction completion, e.g. retiring, committing or graduating
- G06F9/3858—Result writeback, i.e. updating the architectural state or memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
- G06F9/526—Mutual exclusion algorithms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/52—Indexing scheme relating to G06F9/52
- G06F2209/521—Atomic
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Power Sources (AREA)
- Memory System (AREA)
- Hardware Redundancy (AREA)
- Exchange Systems With Centralized Control (AREA)
- Advance Control (AREA)
Description
cmpxchg,src(暗黙アキュムレータレジスタと共に)
アキュムレータレジスタRAXは、期待ロック解除値を含む
if accumulator = dest then
zero−flag = 1
dest = src
else
zero_flag = 0
accumulator = dest
endif
eax(accumulator)=0 // 0はフリーを示す
ecx = 1 // 1はロック済みを示す
label: cmpxchg [lock_var],ecx;
// lock_var = 0であれば、1 zfに設定、lock_var = 1を設定
//それ以外はsleep
jne label // 取得に失敗したら、再試行
instr1; // 複数の臨界領域命令
instr2; // 複数の臨界領域命令
lock_var = 0; // ロック解除
Claims (20)
- 1つの方法であって、1つのプロセッサにおいて1つの命令シーケンスに含まれる1つの命令を実行して、前記プロセッサのために1つのロックを取得するのに役立つことと、前記ロックが利用可能でない場合、前記プロセッサにおける前記命令をスリープさせることとを含み、前記命令は、1つのイベントが生じるまでスリープし、
前記命令は、前記プロセッサによる前記ロックを取得するための1つの比較および交換動作を行う1つの比較および交換命令を備え、前記比較および交換動作は、1つのアトミック比較および交換動作を含み、前記比較および交換命令がスリープ状態である間、前記プロセッサは、前記1つの命令シーケンスに含まれる他の命令の実行を継続し、前記比較および交換命令が起動されてリタイアされるまで、前記他の命令はリタイアされないことを特徴とする方法。 - 請求項1に記載の前記方法であって、前記ロックに対応する1つのメモリアドレスを監視することをさらに備え、前記ロックは、1つのメモリの1つの共有メモリ空間に対するプロセッサアクセスを制御することを特徴とする方法。
- 請求項1に記載の前記方法であって、前記イベントが生じたかを決定するための1つのロック値を有する1つの宛先を監視することであって、前記宛先の前記監視は、以下の、前記ロック値における1つの変更と、前記ロック値を変更する試行とのうち、1つまたはそれ以上を観測することを含み、前記宛先は、1つのレジスタまたは1つのメモリ位置を含む、監視と、前記イベントの発生を検出することと、前記イベントが発生した場合、前記命令を起動することであって、前記イベントは、以下の、前記ロック値が変化した場合は前記ロックが利用可能になったことと、前記ロック値を変更する前記試行が発生した場合は前記ロックが潜在的に利用可能になったこととのうち、1つまたはそれ以上を備る、起動と、前記プロセッサが前記利用可能なロックを取得することとをさらに含むことを特徴とする方法。
- 請求項1に記載の前記方法であって、前記命令のスリープ化は、以下の、複数の命令をロードすることと、前記複数の命令を実行することとのうち、1つまたそれ以上を含む複数の他のタスクを行うべく、前記プロセッサのための複数のリソースを用いることを放棄することを含むことを特徴とする方法。
- 請求項4に記載の前記方法であって、前記複数のリソースの前記放棄は、
1つのレジスタプール内の複数のレジスタを放棄することと、
1つの命令キュー内の複数の命令キュー入力を放棄することと、
1つの記憶バッファ内の複数の記憶バッファ入力を放棄することと、
1つの再順序付けバッファ内の複数の再順序付けバッファ入力を放棄することとを含むことを特徴とする方法。 - 1つのプロセッサであって、1つの命令シーケンスに含まれる1つの命令を実行して、前記プロセッサのために1つのロックを取得することが可能な1つの実行部と、前記プロセッサが前記ロックを取得できなかった場合、前記命令をスリープさせる1つのスリープ‐起動機構とを備え、前記命令は、1つのイベントが生じるまでスリープし、
前記命令は、前記プロセッサによる前記ロックを取得するための1つの比較および交換動作を行う1つの比較および交換命令を備え、前記比較および交換動作は、1つのアトミック比較および交換動作を含み、前記比較および交換命令がスリープ状態である間、前記プロセッサは、前記1つの命令シーケンスに含まれる他の命令の実行を継続し、前記比較および交換命令が起動されてリタイアされるまで、前記他の命令はリタイアされないことを特徴とするプロセッサ。 - 請求項6に記載の前記プロセッサであって、前記イベントが生じたかを決定するための1つのロック値を有する1つの宛先を監視する監視論理であって、前記宛先の前記監視は、以下の、前記ロック値における1つの変更と、前記ロック値を変更する1つの試行とのうち、1つまたはそれ以上を観測することを含み、前記宛先は、1つの専用レジスタまたは1つのメモリ位置を含む、監視論理と、前記イベントの発生を検出する検出論理と、前記イベントが発生した場合、前記命令を起動する前記スリープ‐起動機構であって、前記イベントは、以下の、前記ロック値が変化した場合は前記ロックが利用可能になったことと、前記ロック値を変更する前記試行が発生した場合は前記ロックが潜在的に利用可能になったこととのうち、1つまたはそれ以上を備える、前記スリープ‐起動機構とをさらに備えることを特徴とするプロセッサ。
- 請求項6に記載の前記プロセッサであって、前記命令のスリープ化は、以下の、複数の命令をロードすることと、前記複数の命令を実行することとのうち、1つまたそれ以上を含む複数の他のタスクを行うべく、前記プロセッサのための複数のリソースを用いることを放棄することを含むことを特徴とするプロセッサ。
- 請求項8に記載の前記プロセッサであって、前記複数のリソースの前記放棄は、
1つのレジスタプール内の複数のレジスタを放棄することと、
1つの命令キュー内の複数の命令キュー入力を放棄することと、
1つの記憶バッファ内の複数の記憶バッファ入力を放棄することと、
1つの再順序付けバッファ内の複数の再順序付けバッファ入力を放棄することとを含むことを特徴とするプロセッサ。 - 請求項7に記載の前記プロセッサであって、前記プロセッサを1つのメモリに結合させる1つのバスインターフェイスをさらに備え、前記バスインターフェイスは、前記専用のレジスタをさらに備えることを特徴とするプロセッサ。
- 請求項6に記載の前記プロセッサであって、前記比較および交換命令を含む複数の命令を有する1つの命令の組をさらに備えることを特徴とするプロセッサ。
- 1つのシステムであって、1つの第1のプロセッサを含む複数のプロセッサであって、1つの命令シーケンスに含まれる1つの命令を実行して、前記第1のプロセッサのために1つのロックを取得することが可能な1つの実行部と、前記第1のプロセッサが前記ロックを取得できなかった場合、前記命令をスリープさせる1つのスリープ‐起動機構であって、前記命令は、1つのイベントが生じるまでスリープする、スリープ‐起動機構とを有する、第1のプロセッサと、前記複数のプロセッサに結合され、前記複数のプロセッサによって共有された、1つのメモリ空間を有する1つのメモリと、前記メモリおよび前記複数のプロセッサに結合され、前記メモリ空間に対するアクセスを制御する前記ロックを有する1つのロック記憶位置とを備え、
前記命令は、前記プロセッサによる前記ロックを取得するための1つの比較および交換動作を行う1つの比較および交換命令を備え、前記比較および交換動作は、1つのアトミック比較および交換動作を含み、前記比較および交換命令がスリープ状態である間、前記プロセッサは、前記1つの命令シーケンスに含まれる他の命令の実行を継続し、前記比較および交換命令が起動されてリタイアされるまで、前記他の命令はリタイアされないことを特徴とするシステム。 - 請求項12に記載の前記システムであって、前記イベントが生じたかを決定するための1つのロック値を有する1つの宛先を監視する監視論理であって、前記宛先の前記監視は、以下の、前記ロック値における1つの変更と、前記ロック値を変更する1つの試行とのうち、1つまたはそれ以上を観測することを含み、前記宛先は、1つの専用レジスタまたは1つのメモリ位置を含む、監視論理と、前記イベントの発生を検出する検出論理と、前記イベントが発生した場合、前記命令を起動する前記スリープ‐起動機構であって、前記イベントは、以下の、前記ロック値が変化した場合は前記ロックが利用可能になったことと、前記ロック値を変更する前記試行が発生した場合は前記ロックが潜在的に利用可能になったこととのうち、1つまたはそれ以上を備える、前記スリープ‐起動機構とをさらに備えることを特徴とするシステム。
- 請求項12に記載の前記システムであって、前記命令のスリープ化は、以下の、複数の命令をロードすることと、前記複数の命令を実行することとのうち、1つまたそれ以上を含む複数の他のタスクを行うべく、前記第1のプロセッサのための複数のリソースを用いることを放棄することを含むことを特徴とするシステム。
- 請求項14に記載の前記システムであって、前記複数のリソースの前記放棄は、
1つのレジスタプール内の複数のレジスタを放棄することと、
1つの命令キュー内の複数の命令キュー入力を放棄することと、
1つの記憶バッファ内の複数の記憶バッファ入力を放棄することと、
1つの再順序付けバッファ内の複数の再順序付けバッファ入力を放棄することとを含むことを特徴とするシステム。 - 複数の命令の複数の組を表すデータを記憶する1つの機械読み取り可能媒体であって、複数の命令の前記複数の組は、機械によって実行される場合、以下の、1つのプロセッサにおいて1つの命令シーケンスに含まれる1つの命令を実行して、前記プロセッサのために1つのロックを取得するのに役立つことと、前記ロックが利用可能でない場合、前記プロセッサにおける前記命令をスリープさせることとを含み、前記命令は、1つのイベントが生じるまでスリープすることと、前記プロセッサによる前記ロックを取得するための1つの比較および交換動作を行う1つの比較および交換命令を備えることと、を前記機械に対して行わせ、前記比較および交換動作は、1つのアトミック比較および交換動作を含み、前記比較および交換命令がスリープ状態である間、前記プロセッサは、前記1つの命令シーケンスに含まれる他の命令の実行を継続し、前記比較および交換命令が起動されてリタイアされるまで、前記他の命令はリタイアされないことを特徴とする媒体。
- 請求項16に記載の前記機械読み取り可能媒体であって、複数の命令の前記複数の組は、前記機械によって実行されると、前記ロックに対応する1つのメモリアドレスを監視することを前記機械に対してさらに行わせ、前記ロックは、1つのメモリの1つの共有メモリ空間に対するプロセッサアクセスを制御することを特徴とする媒体。
- 請求項16に記載の前記機械読み取り可能媒体であって、複数の命令の前記複数の組は、前記機械によって実行されると、前記イベントが生じたかを決定するための1つのロック値を有する1つの宛先を監視することであって、前記宛先の前記監視は、以下の、前記ロック値における1つの変更と、前記ロック値を変更する試行とのうち、1つまたはそれ以上を観測することを含み、前記宛先は、1つのレジスタまたは1つのメモリ位置を含む、監視と、前記イベントの発生を検出することと、前記イベントが発生した場合、前記命令を起動することであって、前記イベントは、以下の、前記ロック値が変化した場合は前記ロックが利用可能になったことと、前記ロック値を変更する前記試行が発生した場合は前記ロックが潜在的に利用可能になったこととのうち、1つまたはそれ以上を備える、起動と、前記プロセッサのために前記利用可能なロックを取得することとを前記機械に対してさらに行わせることを特徴とする媒体。
- 請求項16に記載の前記機械読み取り可能媒体であって、前記命令のスリープ化は、以下の、複数の命令をロードすることと、前記複数の命令を実行することとのうち、1つまたそれ以上を含む複数の他のタスクを行うべく、前記プロセッサのための複数のリソースを用いることを放棄することを含むことを特徴とする媒体。
- 請求項19に記載の前記機械読み取り可能媒体であって、前記複数のリソースの前記放棄は、
1つのレジスタプール内の複数のレジスタを放棄することと、
1つの命令キュー内の複数の命令キュー入力を放棄することと、
1つの記憶バッファ内の複数の記憶バッファ入力を放棄することと、
1つの再順序付けバッファ内の複数の再順序付けバッファ入力を放棄することとを含むことを特徴とする媒体。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/880,638 | 2004-06-30 | ||
US10/880,638 US8607241B2 (en) | 2004-06-30 | 2004-06-30 | Compare and exchange operation using sleep-wakeup mechanism |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005178287A Division JP2006031691A (ja) | 2004-06-30 | 2005-06-17 | スリープ‐起動機構を用いた比較および交換動作 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2009151793A JP2009151793A (ja) | 2009-07-09 |
JP5054665B2 true JP5054665B2 (ja) | 2012-10-24 |
Family
ID=34941754
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005178287A Pending JP2006031691A (ja) | 2004-06-30 | 2005-06-17 | スリープ‐起動機構を用いた比較および交換動作 |
JP2008324669A Expired - Fee Related JP5054665B2 (ja) | 2004-06-30 | 2008-12-19 | スリープ‐起動機構を用いた比較および交換動作 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005178287A Pending JP2006031691A (ja) | 2004-06-30 | 2005-06-17 | スリープ‐起動機構を用いた比較および交換動作 |
Country Status (6)
Country | Link |
---|---|
US (2) | US8607241B2 (ja) |
EP (1) | EP1612661A3 (ja) |
JP (2) | JP2006031691A (ja) |
KR (1) | KR100829638B1 (ja) |
CN (1) | CN100407136C (ja) |
TW (1) | TWI285332B (ja) |
Families Citing this family (70)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8099538B2 (en) * | 2006-03-29 | 2012-01-17 | Intel Corporation | Increasing functionality of a reader-writer lock |
US20070271450A1 (en) * | 2006-05-17 | 2007-11-22 | Doshi Kshitij A | Method and system for enhanced thread synchronization and coordination |
US8468526B2 (en) * | 2006-06-30 | 2013-06-18 | Intel Corporation | Concurrent thread execution using user-level asynchronous signaling |
KR101205323B1 (ko) * | 2006-09-28 | 2012-11-27 | 삼성전자주식회사 | 리텐션 입/출력 장치를 이용하여 슬립모드를 구현하는시스템 온 칩 |
WO2009050644A1 (en) * | 2007-10-18 | 2009-04-23 | Nxp B.V. | Data processing system with a plurality of processors, cache circuits and a shared memory |
US8145849B2 (en) * | 2008-02-01 | 2012-03-27 | International Business Machines Corporation | Wake-and-go mechanism with system bus response |
US8316218B2 (en) * | 2008-02-01 | 2012-11-20 | International Business Machines Corporation | Look-ahead wake-and-go engine with speculative execution |
US8127080B2 (en) | 2008-02-01 | 2012-02-28 | International Business Machines Corporation | Wake-and-go mechanism with system address bus transaction master |
US8452947B2 (en) * | 2008-02-01 | 2013-05-28 | International Business Machines Corporation | Hardware wake-and-go mechanism and content addressable memory with instruction pre-fetch look-ahead to detect programming idioms |
US8341635B2 (en) | 2008-02-01 | 2012-12-25 | International Business Machines Corporation | Hardware wake-and-go mechanism with look-ahead polling |
US8225120B2 (en) | 2008-02-01 | 2012-07-17 | International Business Machines Corporation | Wake-and-go mechanism with data exclusivity |
US8516484B2 (en) | 2008-02-01 | 2013-08-20 | International Business Machines Corporation | Wake-and-go mechanism for a data processing system |
US8171476B2 (en) | 2008-02-01 | 2012-05-01 | International Business Machines Corporation | Wake-and-go mechanism with prioritization of threads |
US8312458B2 (en) | 2008-02-01 | 2012-11-13 | International Business Machines Corporation | Central repository for wake-and-go mechanism |
US8612977B2 (en) * | 2008-02-01 | 2013-12-17 | International Business Machines Corporation | Wake-and-go mechanism with software save of thread state |
US8250396B2 (en) * | 2008-02-01 | 2012-08-21 | International Business Machines Corporation | Hardware wake-and-go mechanism for a data processing system |
US8880853B2 (en) * | 2008-02-01 | 2014-11-04 | International Business Machines Corporation | CAM-based wake-and-go snooping engine for waking a thread put to sleep for spinning on a target address lock |
US8015379B2 (en) * | 2008-02-01 | 2011-09-06 | International Business Machines Corporation | Wake-and-go mechanism with exclusive system bus response |
US8386822B2 (en) * | 2008-02-01 | 2013-02-26 | International Business Machines Corporation | Wake-and-go mechanism with data monitoring |
US8732683B2 (en) | 2008-02-01 | 2014-05-20 | International Business Machines Corporation | Compiler providing idiom to idiom accelerator |
US8788795B2 (en) * | 2008-02-01 | 2014-07-22 | International Business Machines Corporation | Programming idiom accelerator to examine pre-fetched instruction streams for multiple processors |
US8725992B2 (en) | 2008-02-01 | 2014-05-13 | International Business Machines Corporation | Programming language exposing idiom calls to a programming idiom accelerator |
US8640141B2 (en) * | 2008-02-01 | 2014-01-28 | International Business Machines Corporation | Wake-and-go mechanism with hardware private array |
US8145931B2 (en) * | 2008-05-27 | 2012-03-27 | Sharp Laboratories Of America, Inc. | Imaging device with adaptive power saving behavior and method for use thereon |
US8555292B2 (en) * | 2008-06-27 | 2013-10-08 | Microsoft Corporation | Synchronizing communication over shared memory |
EP2144163A1 (en) * | 2008-07-09 | 2010-01-13 | Software AG | Method and system for synchronizing the execution of a critical code section |
US7792916B2 (en) * | 2008-10-20 | 2010-09-07 | International Business Machines Corporation | Management of cluster-wide resources with shared variables |
US20100146169A1 (en) * | 2008-12-05 | 2010-06-10 | Nuvoton Technology Corporation | Bus-handling |
US8145723B2 (en) * | 2009-04-16 | 2012-03-27 | International Business Machines Corporation | Complex remote update programming idiom accelerator |
US8082315B2 (en) * | 2009-04-16 | 2011-12-20 | International Business Machines Corporation | Programming idiom accelerator for remote update |
US8886919B2 (en) | 2009-04-16 | 2014-11-11 | International Business Machines Corporation | Remote update programming idiom accelerator with allocated processor resources |
US8230201B2 (en) * | 2009-04-16 | 2012-07-24 | International Business Machines Corporation | Migrating sleeping and waking threads between wake-and-go mechanisms in a multiple processor data processing system |
US8156275B2 (en) * | 2009-05-13 | 2012-04-10 | Apple Inc. | Power managed lock optimization |
US8266383B1 (en) * | 2009-09-28 | 2012-09-11 | Nvidia Corporation | Cache miss processing using a defer/replay mechanism |
US8464035B2 (en) * | 2009-12-18 | 2013-06-11 | Intel Corporation | Instruction for enabling a processor wait state |
US8601242B2 (en) * | 2009-12-18 | 2013-12-03 | Intel Corporation | Adaptive optimized compare-exchange operation |
US8996845B2 (en) * | 2009-12-22 | 2015-03-31 | Intel Corporation | Vector compare-and-exchange operation |
US8516577B2 (en) * | 2010-09-22 | 2013-08-20 | Intel Corporation | Regulating atomic memory operations to prevent denial of service attack |
US8732496B2 (en) * | 2011-03-24 | 2014-05-20 | Nvidia Corporation | Method and apparatus to support a self-refreshing display device coupled to a graphics controller |
JP5819184B2 (ja) | 2011-12-28 | 2015-11-18 | 富士通株式会社 | 情報処理装置及び情報処理装置の制御方法 |
EP2862068B1 (en) | 2012-06-15 | 2022-07-06 | Intel Corporation | Reordered speculative instruction sequences with a disambiguation-free out of order load store queue |
CN104583936B (zh) | 2012-06-15 | 2019-01-04 | 英特尔公司 | 具有组成按序从存储器进行读取的加载的存储器一致性模型中的乱序加载的信号量方法和系统 |
EP2862061A4 (en) | 2012-06-15 | 2016-12-21 | Soft Machines Inc | MEMORY PRECISION FOR VIRTUAL LOAD WITH DYNAMIC SHIPPING WINDOW WITH UNIFORM STRUCTURE |
CN107220032B (zh) | 2012-06-15 | 2020-12-15 | 英特尔公司 | 无消歧乱序加载存储队列 |
KR20170102576A (ko) | 2012-06-15 | 2017-09-11 | 인텔 코포레이션 | 분산된 구조를 갖는 동적 디스패치 윈도우를 가지는 가상 load store 큐 |
WO2013188701A1 (en) | 2012-06-15 | 2013-12-19 | Soft Machines, Inc. | A method and system for implementing recovery from speculative forwarding miss-predictions/errors resulting from load store reordering and optimization |
KR101826399B1 (ko) | 2012-06-15 | 2018-02-06 | 인텔 코포레이션 | Load store 재정렬 및 최적화를 구현하는 명령어 정의 |
US8719504B2 (en) * | 2012-09-14 | 2014-05-06 | International Business Machines Corporation | Efficient processing of cache segment waiters |
EP2904765B1 (en) * | 2012-10-04 | 2019-05-08 | Qualcomm Incorporated | Method and apparatus using high-efficiency atomic operations |
CN103885824B (zh) * | 2012-12-21 | 2017-06-20 | 华为技术有限公司 | 接口控制电路、设备和标识切换方法 |
TWI573015B (zh) | 2013-06-19 | 2017-03-01 | 祥碩科技股份有限公司 | 防超時方法及資料處理系統 |
US9465432B2 (en) * | 2013-08-28 | 2016-10-11 | Via Technologies, Inc. | Multi-core synchronization mechanism |
US9466091B2 (en) | 2013-09-26 | 2016-10-11 | Imagination Technologies Limited | Atomic memory update unit and methods |
GB2520603B (en) * | 2013-09-26 | 2016-04-06 | Imagination Tech Ltd | Atomic memory update unit and methods |
US11257271B2 (en) | 2013-09-26 | 2022-02-22 | Imagination Technologies Limited | Atomic memory update unit and methods |
US9817703B1 (en) * | 2013-12-04 | 2017-11-14 | Amazon Technologies, Inc. | Distributed lock management using conditional updates to a distributed key value data store |
US9372500B2 (en) | 2014-02-27 | 2016-06-21 | Applied Micro Circuits Corporation | Generating a timeout signal based on a clock counter associated with a data request |
US9454370B2 (en) | 2014-03-14 | 2016-09-27 | International Business Machines Corporation | Conditional transaction end instruction |
US10120681B2 (en) * | 2014-03-14 | 2018-11-06 | International Business Machines Corporation | Compare and delay instructions |
US9558032B2 (en) | 2014-03-14 | 2017-01-31 | International Business Machines Corporation | Conditional instruction end operation |
US10198274B2 (en) * | 2015-03-27 | 2019-02-05 | Intel Corporation | Technologies for improved hybrid sleep power management |
US10191747B2 (en) * | 2015-06-26 | 2019-01-29 | Microsoft Technology Licensing, Llc | Locking operand values for groups of instructions executed atomically |
US10346168B2 (en) | 2015-06-26 | 2019-07-09 | Microsoft Technology Licensing, Llc | Decoupled processor instruction window and operand buffer |
CN105068904A (zh) * | 2015-08-17 | 2015-11-18 | 浪潮电子信息产业股份有限公司 | 一种linux系统下自动计算内存理论带宽的方法 |
US11216378B2 (en) * | 2016-09-19 | 2022-01-04 | Advanced Micro Devices, Inc. | Techniques for handling cache coherency traffic for contended semaphores |
CN110825530B (zh) * | 2018-08-10 | 2022-12-23 | 昆仑芯(北京)科技有限公司 | 用于人工智能芯片的指令执行方法和装置 |
US10901807B2 (en) | 2019-01-02 | 2021-01-26 | International Business Machines Corporation | Computer system with concurrency for multithreaded applications |
US11105645B2 (en) * | 2019-05-28 | 2021-08-31 | Glazberg, Applebaum & co. | Navigation in vehicles and in autonomous cars |
CN112130904B (zh) * | 2020-09-22 | 2024-04-30 | 黑芝麻智能科技(上海)有限公司 | 处理系统、处理器间通信方法、以及共享资源管理方法 |
JP7509021B2 (ja) * | 2020-12-14 | 2024-07-02 | トヨタ自動車株式会社 | 車載システム、車載システム制御方法、及び車載システム制御プログラム |
Family Cites Families (41)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5274809A (en) * | 1988-05-26 | 1993-12-28 | Hitachi, Ltd. | Task execution control method for a multiprocessor system with enhanced post/wait procedure |
US5487156A (en) * | 1989-12-15 | 1996-01-23 | Popescu; Valeri | Processor architecture having independently fetching issuing and updating operations of instructions which are sequentially assigned and stored in order fetched |
JPH05225149A (ja) | 1992-02-13 | 1993-09-03 | Toshiba Corp | ロック方式 |
JPH07319716A (ja) | 1994-05-23 | 1995-12-08 | Hitachi Ltd | 計算機システムの資源の排他制御方式 |
JP3745800B2 (ja) | 1995-09-29 | 2006-02-15 | 富士通株式会社 | 共有資源の排他制御方式 |
US5787026A (en) * | 1995-12-20 | 1998-07-28 | Intel Corporation | Method and apparatus for providing memory access in a processor pipeline |
US6237024B1 (en) | 1998-03-20 | 2001-05-22 | Sun Microsystem, Inc. | Method and apparatus for the suspension and continuation of remote processes |
US6938263B2 (en) * | 1996-04-23 | 2005-08-30 | Sun Microsystems, Inc. | System and method for facilitating dynamic loading of “stub” information to enable a program operating in one address space to invoke processing of a remote method or procedure in another address space |
US5860126A (en) * | 1996-12-17 | 1999-01-12 | Intel Corporation | Controlling shared memory access ordering in a multi-processing system using an acquire/release consistency model |
US5889983A (en) * | 1997-01-21 | 1999-03-30 | Intel Corporation | Compare and exchange operation in a processing system |
US5790851A (en) | 1997-04-15 | 1998-08-04 | Oracle Corporation | Method of sequencing lock call requests to an O/S to avoid spinlock contention within a multi-processor environment |
US6112222A (en) | 1998-08-25 | 2000-08-29 | International Business Machines Corporation | Method for resource lock/unlock capability in multithreaded computer environment |
US6223335B1 (en) * | 1998-12-09 | 2001-04-24 | Sun Microsystems, Inc. | Platform independent double compare and swap operation |
JP2001084235A (ja) * | 1999-09-10 | 2001-03-30 | Nec Corp | ロック粒度統計情報を利用した排他制御方法及びプログラムを記録した機械読み取り可能な記録媒体 |
US6493741B1 (en) | 1999-10-01 | 2002-12-10 | Compaq Information Technologies Group, L.P. | Method and apparatus to quiesce a portion of a simultaneous multithreaded central processing unit |
US6473819B1 (en) * | 1999-12-17 | 2002-10-29 | International Business Machines Corporation | Scalable interruptible queue locks for shared-memory multiprocessor |
US6886105B2 (en) * | 2000-02-14 | 2005-04-26 | Intel Corporation | Method and apparatus for resuming memory operations from a low latency wake-up low power state |
US6615340B1 (en) * | 2000-03-22 | 2003-09-02 | Wilmot, Ii Richard Byron | Extended operand management indicator structure and method |
US6502170B2 (en) * | 2000-12-15 | 2002-12-31 | Intel Corporation | Memory-to-memory compare/exchange instructions to support non-blocking synchronization schemes |
JP3796124B2 (ja) * | 2001-03-07 | 2006-07-12 | 株式会社ルネサステクノロジ | スレッド間優先度可変プロセッサ |
JP4253796B2 (ja) | 2001-11-08 | 2009-04-15 | 富士通株式会社 | コンピュータ及び制御方法 |
US7127561B2 (en) * | 2001-12-31 | 2006-10-24 | Intel Corporation | Coherency techniques for suspending execution of a thread until a specified memory access occurs |
US7363474B2 (en) | 2001-12-31 | 2008-04-22 | Intel Corporation | Method and apparatus for suspending execution of a thread until a specified memory access occurs |
JP2004135875A (ja) | 2002-10-17 | 2004-05-13 | Konsho Ryu | 巻取り装置付き靴 |
US7559060B2 (en) * | 2003-06-10 | 2009-07-07 | National Instruments Corporation | Time-bounded program execution |
US7213093B2 (en) * | 2003-06-27 | 2007-05-01 | Intel Corporation | Queued locks using monitor-memory wait |
EP1503309A1 (en) * | 2003-07-31 | 2005-02-02 | Deutsche Börse Ag | Data validity control in straight-through processing systems |
JP2005225149A (ja) | 2004-02-16 | 2005-08-25 | Mitsubishi Paper Mills Ltd | インクジェット記録材料 |
JP4376692B2 (ja) | 2004-04-30 | 2009-12-02 | 富士通株式会社 | 情報処理装置、プロセッサ、プロセッサの制御方法、情報処理装置の制御方法、キャッシュメモリ |
US7529914B2 (en) * | 2004-06-30 | 2009-05-05 | Intel Corporation | Method and apparatus for speculative execution of uncontended lock instructions |
US7437581B2 (en) * | 2004-09-28 | 2008-10-14 | Intel Corporation | Method and apparatus for varying energy per instruction according to the amount of available parallelism |
US7555630B2 (en) * | 2004-12-21 | 2009-06-30 | Intel Corporation | Method and apparatus to provide efficient communication between multi-threaded processing elements in a processor unit |
US8010969B2 (en) * | 2005-06-13 | 2011-08-30 | Intel Corporation | Mechanism for monitoring instruction set based thread execution on a plurality of instruction sequencers |
US7882339B2 (en) * | 2005-06-23 | 2011-02-01 | Intel Corporation | Primitives to enhance thread-level speculation |
US8099538B2 (en) | 2006-03-29 | 2012-01-17 | Intel Corporation | Increasing functionality of a reader-writer lock |
JP4129532B2 (ja) | 2007-09-11 | 2008-08-06 | 株式会社高尾 | 弾球遊技機 |
US7904696B2 (en) | 2007-09-14 | 2011-03-08 | Intel Corporation | Communication paths for enabling inter-sequencer communication following lock competition and accelerator registration |
US8555016B2 (en) | 2008-12-17 | 2013-10-08 | Intel Corporation | Unified optimistic and pessimistic concurrency control for a software transactional memory (STM) system |
US8316194B2 (en) | 2009-12-15 | 2012-11-20 | Intel Corporation | Mechanisms to accelerate transactions using buffered stores |
US8479053B2 (en) | 2010-07-28 | 2013-07-02 | Intel Corporation | Processor with last branch record register storing transaction indicator |
US8446903B1 (en) | 2012-05-22 | 2013-05-21 | Intel Corporation | Providing a load/store communication protocol with a low power physical unit |
-
2004
- 2004-06-30 US US10/880,638 patent/US8607241B2/en not_active Expired - Fee Related
-
2005
- 2005-06-15 TW TW094119878A patent/TWI285332B/zh not_active IP Right Cessation
- 2005-06-17 JP JP2005178287A patent/JP2006031691A/ja active Pending
- 2005-06-23 EP EP05253896A patent/EP1612661A3/en not_active Withdrawn
- 2005-06-28 KR KR1020050056393A patent/KR100829638B1/ko not_active IP Right Cessation
- 2005-06-29 CN CN2005100798027A patent/CN100407136C/zh not_active Expired - Fee Related
-
2008
- 2008-12-19 JP JP2008324669A patent/JP5054665B2/ja not_active Expired - Fee Related
-
2013
- 2013-03-15 US US13/843,305 patent/US9733937B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US20130232499A1 (en) | 2013-09-05 |
US9733937B2 (en) | 2017-08-15 |
EP1612661A3 (en) | 2007-09-19 |
JP2009151793A (ja) | 2009-07-09 |
CN100407136C (zh) | 2008-07-30 |
KR20060048630A (ko) | 2006-05-18 |
US20060005197A1 (en) | 2006-01-05 |
TW200614075A (en) | 2006-05-01 |
JP2006031691A (ja) | 2006-02-02 |
TWI285332B (en) | 2007-08-11 |
CN1716186A (zh) | 2006-01-04 |
US8607241B2 (en) | 2013-12-10 |
KR100829638B1 (ko) | 2008-05-16 |
EP1612661A2 (en) | 2006-01-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5054665B2 (ja) | スリープ‐起動機構を用いた比較および交換動作 | |
US7266648B2 (en) | Cache lock mechanism with speculative allocation | |
US8065499B2 (en) | Methods and apparatus to implement parallel transactions | |
AU2011305091B2 (en) | Apparatus, method, and system for dynamically optimizing code utilizing adjustable transaction sizes based on hardware limitations | |
US9817644B2 (en) | Apparatus, method, and system for providing a decision mechanism for conditional commits in an atomic region | |
JP5404574B2 (ja) | マルチプロセッサ環境におけるトランザクションベースの共有データオペレーション | |
US8190859B2 (en) | Critical section detection and prediction mechanism for hardware lock elision | |
US6370625B1 (en) | Method and apparatus for lock synchronization in a microprocessor system | |
US7882339B2 (en) | Primitives to enhance thread-level speculation | |
US20090119459A1 (en) | Late lock acquire mechanism for hardware lock elision (hle) | |
CN107003896B (zh) | 具有共享事务处理资源的装置和数据处理方法 | |
KR20100111700A (ko) | 로킹된 오퍼레이션을 수행하기 위한 방법 및 시스템 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20110711 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110726 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20111013 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20111018 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20120710 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20120727 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20150803 Year of fee payment: 3 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |