JP2007520769A - モニタメモリ待機を用いたキューされたロック - Google Patents
モニタメモリ待機を用いたキューされたロック Download PDFInfo
- Publication number
- JP2007520769A JP2007520769A JP2006515366A JP2006515366A JP2007520769A JP 2007520769 A JP2007520769 A JP 2007520769A JP 2006515366 A JP2006515366 A JP 2006515366A JP 2006515366 A JP2006515366 A JP 2006515366A JP 2007520769 A JP2007520769 A JP 2007520769A
- Authority
- JP
- Japan
- Prior art keywords
- processor
- monitor
- lock
- instruction
- monitoring
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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 OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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 OR CALCULATING; 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/30083—Power or thermal control instructions
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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 OR CALCULATING; 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/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3851—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/50—Allocation of resources, e.g. of the central processing unit [CPU]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Debugging And Monitoring (AREA)
- Multi Processors (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
Description
本発明は、プロセッサに関し、より詳細には、1以上のプロセッサが利用可能となるまでロックを待機するため、ロックを監視するためのモニタメモリ待機を利用することに関する。
[関連技術の説明]
典型的には、ハイパースレッドまたはマルチスレッドプロセッサは、複数の命令シーケンスを同時処理することが可能である。1つのプロセッサ内での複数の命令シーケンスの実行を促進する主要な動機要因は、結果としてのプロセッサ利用性の向上である。ハイパースレッドプロセッサは、複数の命令ストリームが各実行リソースにおいて当該リソースをより良好に利用するため同時に実行することを可能にする。さらに、ハイパースレッドプロセッサは、大きな遅延に直面するか、あるいはしばしばイベントの発生を待機するプログラムに利用可能である。
[詳細な説明]
ロックを待機する1以上のプロセッサのためロックを監視する方法及び装置が、説明される。概略的には、本発明の実施例は、ロックが利用可能となるまでロックを待機する1以上のプロセッサのため、ロックを監視するモニタメモリ待機を使用する。
Claims (30)
- 競合するロックに係るノードを監視するステップと、
イベントが発生するまで、前記競合するロックを取得するプロセッサをスリープ状態にするステップと、
から構成されることを特徴とする方法。 - 請求項1記載の方法であって、
前記ノードを監視するステップは、前記ノードの監視を起動するモニタ命令を実行することによって、前記競合するロックに対応するロックアドレスを監視することを特徴とする方法。 - 請求項1記載の方法であって、さらに、
前記イベントが発生するまで前記プロセッサをスリープ状態にするメモリ待機(mwait)命令を実行するステップを有することを特徴とする方法。 - 請求項1記載の方法であって、さらに、
前記競合するロックが利用可能となるイベントが発生すると、前記プロセッサをウェイクアップするステップと、
前記プロセッサに前記利用可能なロックを取得させるステップと、
を有することを特徴とする方法。 - 請求項1記載の方法であって、
前記競合するロックが利用可能となることは、前記プロセッサが前記競合するロックを取得するためのキューの次にあり、前記競合するロックがリリースされることからなることを特徴とする方法。 - 請求項1記載の方法であって、
前記プロセッサをスリープ状態にするステップは、前記プロセッサにより他のプロセッサが利用するリソースを解放することを特徴とする方法。 - 請求項4記載の方法であって、
前記ウェイクアップは、前記ノードの監視を非アクティブ状態とし、前記プロセッサに前記解放されたリソースを利用させることを特徴とする方法。 - 請求項7記載の方法であって、
前記解放は、
レジスタプールの複数のレジスタを解放するステップと、
命令キューの複数の命令キューエントリを解放するステップと、
ストアバッファの複数のストアバッファエントリを解放するステップと、
リオーダバッファの複数のリオーダバッファエントリを解放するステップと、
から構成されることを特徴とする方法。 - キュー要素を監視するため、前記キュー要素に係るモニタアドレスを指定するステップから構成される方法であって、
前記指定するステップは、モニタ命令及びメモリ待機(mwait)命令とを実行することからなることを特徴とする方法。 - 請求項9記載の方法であって、
前記キュー要素は、競合するロックを取得するプロセッサに対応することを特徴とする方法。 - 請求項10記載の方法であって、
前記プロセッサは、監視とmwaitの組み合わせを用いて、前記競合するロックを待機中、スリープ状態にされることを特徴とする方法。 - 請求項11記載の方法であって、
前記プロセッサは、前記プロセッサが前記競合するロックを取得するためのキューの次にあって、前記競合するロックがリリースされるイベントが発生すると、アウェイクされることを特徴とする方法。 - 競合するロックに係るノードを監視するため、監視命令及びメモリ待機(mwait)命令を実行する命令ユニットと、
イベントが発生するまで、前記競合するロックを取得する論理プロセッサをスリープ状態にする論理と、
から構成されることを特徴とするプロセッサ。 - 請求項13記載のプロセッサであって、さらに、
前記競合するロックが利用可能になることを含む指定されたイベントを有するイベントの発生を検出する検出回路を有することを特徴とするプロセッサ。 - 請求項13記載のプロセッサであって、
前記論理プロセッサをスリープ状態にすることは、前記論理プロセッサによって他のプロセッサが利用するリソースを解放するからなることを特徴とするプロセッサ。 - 請求項13記載のプロセッサであって、
前記論理はさらに、前記イベントが発生すると、前記論理プロセッサをウェイクアップするためものであり、
前記ウェイクアップは、前記モードの監視を非アクティブ状態にし、前記論理プロセッサによる前記解放されたリソースの使用からなることを特徴とするプロセッサ。 - 請求項16記載のプロセッサであって、
前記解放は、
レジスタプールの複数のレジスタを解放し、
命令キューの複数の命令キューエントリを解放し、
ストアバッファの複数のストアバッファエントリを解放し、
リオーダバッファの複数のリオーダバッファエントリを解放すること、
から構成されることを特徴とするプロセッサ。 - 記憶媒体と、
前記記憶媒体に接続され、競合するロックに係るノードを監視するため、モニタ命令及びメモリ待機(mwait)命令を実行する実行ユニットと、イベントが発生するまで、前記競合するロックを取得する論理プロセッサをスリープ状態にする論理とを有するプロセッサと、
から構成されることを特徴とするシステム。 - 請求項18記載のシステムであって、さらに、
前記競合するロックが利用可能になることを含む指定されたイベントを有するイベントの発生を検出する検出回路を有することを特徴とするシステム。 - 請求項18記載のシステムであって、
前記論理プロセッサをスリープ状態にすることは、前記論理プロセッサによって他のプロセッサが利用するリソースを解放するからなることを特徴とするシステム。 - 請求項18記載のシステムであって、
前記論理はさらに、前記イベントが発生すると、前記論理プロセッサをウェイクアップするためものであり、
前記ウェイクアップは、前記モードの監視を非アクティブ状態にし、前記論理プロセッサによる前記解放されたリソースの使用からなることを特徴とするシステム。 - マシーンによる実行時、前記マシーンに、
競合するロックに係るノードを監視するステップと、
イベントが発生するまで、前記競合するロックを取得するプロセッサをスリープ状態にするステップと、
を実行させる命令シーケンスを表すデータを格納することを特徴とする機械可読媒体。 - 請求項22記載の機械可読媒体であって、
前記ノードを監視するステップは、前記ノードの監視を起動するモニタ命令を実行することによって、前記競合するロックに対応するロックアドレスを監視することを特徴とする媒体。 - 請求項22記載の機械可読媒体であって、
前記命令シーケンスはさらに、前記マシーンによる実行時、前記イベントが発生するまで前記プロセッサをスリープ状態にするため、メモリ待機(mwait)命令を前記マシーンに実行させることを特徴とする媒体。 - 請求項22記載の機械可読媒体であって、
前記命令シーケンスはさらに、前記マシーンによる実行時、前記マシーンに、前記競合するロックが利用可能になるイベントが発生すると、前記プロセッサをウェイクアップさせ、前記プロセッサが前記利用可能なロックを取得することを可能にさせることを特徴とする媒体。 - 請求項22記載の方法であって、
前記プロセッサをスリープ状態にするステップは、前記プロセッサによって他のプロセッサが利用するリソースを放棄させることからなることを特徴とする方法。 - マシーンによる実行時、キュー要素を監視するため、前記キュー要素に係るモニタアドレスを前記マシーンに指定させる命令シーケンスを表すデータを格納する機械可読媒体であって、
前記指定は、モニタ命令及びメモリ待機(mwait)命令を実行することからなることを特徴とする媒体。 - 請求項27記載の機械可読媒体であって、
前記キュー要素は、競合するロックを取得するプロセッサに対応することを特徴とする媒体。 - 請求項28記載の機械可読媒体であって、
前記命令シーケンスはさらに、前記マシーンによる実行時、前記マシーンによって、監視とmwaitの組み合わせを用いて前記競合するロックの待機中、前記プロセッサをスリープ状態にすることを特徴とする媒体。 - 請求項29記載の機械可読媒体であって、
前記命令シーケンスはさらに、前記マシーンによる実行時、前記マシーンによって、前記競合するロックが利用可能となるイベントが発生すると、前記プロセッサをアウェイク状態にすることを特徴とする媒体。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US10/608,708 US7213093B2 (en) | 2003-06-27 | 2003-06-27 | Queued locks using monitor-memory wait |
| PCT/US2004/019373 WO2005003971A2 (en) | 2003-06-27 | 2004-06-16 | Queued locks using monitor-memory wait |
Related Child Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2009211907A Division JP2010044770A (ja) | 2003-06-27 | 2009-09-14 | モニタメモリ待機を用いたキューされたロック |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JP2007520769A true JP2007520769A (ja) | 2007-07-26 |
Family
ID=33540657
Family Applications (2)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2006515366A Pending JP2007520769A (ja) | 2003-06-27 | 2004-06-16 | モニタメモリ待機を用いたキューされたロック |
| JP2009211907A Pending JP2010044770A (ja) | 2003-06-27 | 2009-09-14 | モニタメモリ待機を用いたキューされたロック |
Family Applications After (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2009211907A Pending JP2010044770A (ja) | 2003-06-27 | 2009-09-14 | モニタメモリ待機を用いたキューされたロック |
Country Status (8)
| Country | Link |
|---|---|
| US (3) | US7213093B2 (ja) |
| JP (2) | JP2007520769A (ja) |
| KR (1) | KR100864747B1 (ja) |
| CN (1) | CN100337206C (ja) |
| DE (1) | DE112004001133T5 (ja) |
| GB (1) | GB2417805B (ja) |
| TW (1) | TWI266987B (ja) |
| WO (1) | WO2005003971A2 (ja) |
Cited By (11)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2010044770A (ja) * | 2003-06-27 | 2010-02-25 | Intel Corp | モニタメモリ待機を用いたキューされたロック |
| JP2010524054A (ja) * | 2007-03-30 | 2010-07-15 | インターナショナル・ビジネス・マシーンズ・コーポレーション | エミュレートされた処理環境でメモリ・アクセスを管理する方法、システム、およびそのためのコンピュータ・プログラム |
| WO2012004990A1 (ja) * | 2010-07-07 | 2012-01-12 | パナソニック株式会社 | プロセッサ |
| JP2012531681A (ja) * | 2009-12-18 | 2012-12-10 | インテル・コーポレーション | プロセッサの待機状態をイネーブルする命令 |
| JP2014501982A (ja) * | 2010-12-21 | 2014-01-23 | インテル・コーポレーション | 電力管理のためのシステム及び方法 |
| JP2014197408A (ja) * | 2007-12-03 | 2014-10-16 | クゥアルコム・インコーポレイテッドQualcomm Incorporated | ロックインジケータを有するマルチスレッドプロセッサ |
| JP2016532233A (ja) * | 2014-10-03 | 2016-10-13 | インテル・コーポレーション | アドレスへの書き込みに対する監視命令を実行するスケーラブル機構 |
| JP2017538212A (ja) * | 2014-12-18 | 2017-12-21 | インテル コーポレイション | 中央処理装置(cpu)と補助プロセッサとの間の改善した関数コールバック機構 |
| US10705961B2 (en) | 2013-09-27 | 2020-07-07 | Intel Corporation | Scalably mechanism to implement an instruction that monitors for writes to an address |
| JP2024505635A (ja) * | 2021-01-29 | 2024-02-07 | アーム・リミテッド | 監視排他命令 |
| JP7781164B2 (ja) | 2021-01-29 | 2025-12-05 | アーム・リミテッド | 監視排他命令 |
Families Citing this family (74)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7236918B2 (en) * | 2003-12-31 | 2007-06-26 | International Business Machines Corporation | Method and system for selective compilation of instrumentation entities into a simulation model of a digital design |
| US8607241B2 (en) | 2004-06-30 | 2013-12-10 | Intel Corporation | Compare and exchange operation using sleep-wakeup mechanism |
| US20060031201A1 (en) * | 2004-08-06 | 2006-02-09 | Microsoft Corporation | Life moment tagging and storage |
| US7590738B2 (en) * | 2004-10-27 | 2009-09-15 | Hewlett-Packard Development Company, L.P. | Method and system for processing concurrent events in a provisional network |
| US20070004501A1 (en) * | 2005-06-29 | 2007-01-04 | Christopher Brewer | Multi-core processing in a wagering game machine |
| US20070067502A1 (en) * | 2005-09-22 | 2007-03-22 | Silicon Integrated Systems Corp. | Method for preventing long latency event |
| US7958510B2 (en) * | 2005-12-30 | 2011-06-07 | Intel Corporation | Device, system and method of managing a resource request |
| US8094158B1 (en) * | 2006-01-31 | 2012-01-10 | Nvidia Corporation | Using programmable constant buffers for multi-threaded processing |
| US7802073B1 (en) * | 2006-03-29 | 2010-09-21 | Oracle America, Inc. | Virtual core management |
| US7882381B2 (en) | 2006-06-29 | 2011-02-01 | Intel Corporation | Managing wasted active power in processors based on loop iterations and number of instructions executed since last loop |
| US8276151B2 (en) * | 2006-09-06 | 2012-09-25 | International Business Machines Corporation | Determination of running status of logical processor |
| US8015379B2 (en) * | 2008-02-01 | 2011-09-06 | International Business Machines Corporation | Wake-and-go mechanism with exclusive system bus response |
| 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 |
| US8788795B2 (en) | 2008-02-01 | 2014-07-22 | International Business Machines Corporation | Programming idiom accelerator to examine pre-fetched instruction streams for multiple processors |
| 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 |
| US8171476B2 (en) | 2008-02-01 | 2012-05-01 | International Business Machines Corporation | Wake-and-go mechanism with prioritization of threads |
| US8127080B2 (en) | 2008-02-01 | 2012-02-28 | International Business Machines Corporation | Wake-and-go mechanism with system address bus transaction master |
| US8725992B2 (en) | 2008-02-01 | 2014-05-13 | International Business Machines Corporation | Programming language exposing idiom calls to a programming idiom accelerator |
| 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 |
| US8386822B2 (en) * | 2008-02-01 | 2013-02-26 | International Business Machines Corporation | Wake-and-go mechanism with data monitoring |
| US8516484B2 (en) | 2008-02-01 | 2013-08-20 | International Business Machines Corporation | Wake-and-go mechanism for a data processing system |
| US8250396B2 (en) * | 2008-02-01 | 2012-08-21 | International Business Machines Corporation | Hardware wake-and-go mechanism for a data processing system |
| US8225120B2 (en) | 2008-02-01 | 2012-07-17 | International Business Machines Corporation | Wake-and-go mechanism with data exclusivity |
| US8612977B2 (en) | 2008-02-01 | 2013-12-17 | International Business Machines Corporation | Wake-and-go mechanism with software save of thread state |
| US8341635B2 (en) | 2008-02-01 | 2012-12-25 | International Business Machines Corporation | Hardware wake-and-go mechanism with look-ahead polling |
| US8732683B2 (en) | 2008-02-01 | 2014-05-20 | International Business Machines Corporation | Compiler providing idiom to idiom accelerator |
| US8640141B2 (en) * | 2008-02-01 | 2014-01-28 | International Business Machines Corporation | Wake-and-go mechanism with hardware private array |
| US8312458B2 (en) | 2008-02-01 | 2012-11-13 | International Business Machines Corporation | Central repository for wake-and-go mechanism |
| US8086437B2 (en) * | 2008-04-02 | 2011-12-27 | Microsoft Corporation | Modeling and simulating software contention |
| US20100262966A1 (en) * | 2009-04-14 | 2010-10-14 | International Business Machines Corporation | Multiprocessor computing device |
| 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 |
| US8145723B2 (en) * | 2009-04-16 | 2012-03-27 | International Business Machines Corporation | Complex remote update programming idiom accelerator |
| CN101876942A (zh) * | 2009-04-30 | 2010-11-03 | 卓望数码技术(深圳)有限公司 | 一种终端软件的测试方法及装置 |
| US8156275B2 (en) * | 2009-05-13 | 2012-04-10 | Apple Inc. | Power managed lock optimization |
| US8364862B2 (en) * | 2009-06-11 | 2013-01-29 | Intel Corporation | Delegating a poll operation to another device |
| US8516577B2 (en) * | 2010-09-22 | 2013-08-20 | Intel Corporation | Regulating atomic memory operations to prevent denial of service attack |
| US20120144218A1 (en) * | 2010-12-03 | 2012-06-07 | International Business Machines Corporation | Transferring Power and Speed from a Lock Requester to a Lock Holder on a System with Multiple Processors |
| US8713262B2 (en) * | 2011-09-02 | 2014-04-29 | Nvidia Corporation | Managing a spinlock indicative of exclusive access to a system resource |
| CN103136099B (zh) * | 2011-12-02 | 2017-08-25 | 腾讯科技(深圳)有限公司 | 测试软件的方法、模拟终端、后台服务器和系统 |
| WO2013101188A1 (en) * | 2011-12-30 | 2013-07-04 | Intel Corporation | Memory event notification |
| US8966494B2 (en) * | 2012-03-16 | 2015-02-24 | Arm Limited | Apparatus and method for processing threads requiring resources |
| US8943505B2 (en) | 2012-08-24 | 2015-01-27 | National Instruments Corporation | Hardware assisted real-time scheduler using memory monitoring |
| US20140075163A1 (en) | 2012-09-07 | 2014-03-13 | Paul N. Loewenstein | Load-monitor mwait |
| US9141454B2 (en) * | 2012-12-27 | 2015-09-22 | Intel Corporation | Signaling software recoverable errors |
| US9558132B2 (en) * | 2013-08-14 | 2017-01-31 | Intel Corporation | Socket management with reduced latency packet processing |
| US9760511B2 (en) * | 2014-10-08 | 2017-09-12 | International Business Machines Corporation | Efficient interruption routing for a multithreaded processor |
| US11023233B2 (en) | 2016-02-09 | 2021-06-01 | Intel Corporation | Methods, apparatus, and instructions for user level thread suspension |
| US10185564B2 (en) | 2016-04-28 | 2019-01-22 | Oracle International Corporation | Method for managing software threads dependent on condition variables |
| US11061730B2 (en) * | 2016-11-18 | 2021-07-13 | Red Hat Israel, Ltd. | Efficient scheduling for hyper-threaded CPUs using memory monitoring |
| US10481936B2 (en) | 2017-02-22 | 2019-11-19 | Red Hat Israel, Ltd. | Efficient virtual machine memory monitoring with hyper-threading |
| WO2020018454A1 (en) | 2018-07-16 | 2020-01-23 | Islamov Rustam | Cryptography operations for secure post-quantum communications |
| US11068407B2 (en) | 2018-10-26 | 2021-07-20 | International Business Machines Corporation | Synchronized access to data in shared memory by protecting the load target address of a load-reserve instruction |
| US10884740B2 (en) | 2018-11-08 | 2021-01-05 | International Business Machines Corporation | Synchronized access to data in shared memory by resolving conflicting accesses by co-located hardware threads |
| US11119781B2 (en) | 2018-12-11 | 2021-09-14 | International Business Machines Corporation | Synchronized access to data in shared memory by protecting the load target address of a fronting load |
| US12335399B2 (en) | 2019-12-10 | 2025-06-17 | Winkk, Inc. | User as a password |
| US12153678B2 (en) | 2019-12-10 | 2024-11-26 | Winkk, Inc. | Analytics with shared traits |
| US12073378B2 (en) | 2019-12-10 | 2024-08-27 | Winkk, Inc. | Method and apparatus for electronic transactions using personal computing devices and proxy services |
| US12132763B2 (en) | 2019-12-10 | 2024-10-29 | Winkk, Inc. | Bus for aggregated trust framework |
| US11574045B2 (en) | 2019-12-10 | 2023-02-07 | Winkk, Inc. | Automated ID proofing using a random multitude of real-time behavioral biometric samplings |
| US11657140B2 (en) | 2019-12-10 | 2023-05-23 | Winkk, Inc. | Device handoff identification proofing using behavioral analytics |
| US11652815B2 (en) | 2019-12-10 | 2023-05-16 | Winkk, Inc. | Security platform architecture |
| US12341790B2 (en) | 2019-12-10 | 2025-06-24 | Winkk, Inc. | Device behavior analytics |
| US11588794B2 (en) | 2019-12-10 | 2023-02-21 | Winkk, Inc. | Method and apparatus for secure application framework and platform |
| US12143419B2 (en) | 2019-12-10 | 2024-11-12 | Winkk, Inc. | Aggregated trust framework |
| US11553337B2 (en) | 2019-12-10 | 2023-01-10 | Winkk, Inc. | Method and apparatus for encryption key exchange with enhanced security through opti-encryption channel |
| US11106608B1 (en) | 2020-06-22 | 2021-08-31 | International Business Machines Corporation | Synchronizing access to shared memory by extending protection for a target address of a store-conditional request |
| US12095751B2 (en) * | 2021-06-04 | 2024-09-17 | Winkk, Inc. | Encryption for one-way data stream |
| US11843943B2 (en) | 2021-06-04 | 2023-12-12 | Winkk, Inc. | Dynamic key exchange for moving target |
| US11693776B2 (en) | 2021-06-18 | 2023-07-04 | International Business Machines Corporation | Variable protection window extension for a target address of a store-conditional request |
| US12445305B2 (en) | 2022-09-21 | 2025-10-14 | Winkk, Inc. | Authentication process |
| KR102848186B1 (ko) * | 2022-11-14 | 2025-08-20 | 주식회사 이지서티 | 집합 값을 갖는 트랜잭션 데이터의 익명처리 시스템 및 그 방법 |
Family Cites Families (24)
| 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 |
| JPH01300365A (ja) * | 1988-05-30 | 1989-12-04 | Nippon Telegr & Teleph Corp <Ntt> | マルチプロセッサシステムの排他制御方式 |
| US4965718A (en) | 1988-09-29 | 1990-10-23 | International Business Machines Corporation | Data processing system incorporating a memory resident directive for synchronizing multiple tasks among plurality of processing elements by monitoring alternation of semaphore data |
| JPH05225149A (ja) * | 1992-02-13 | 1993-09-03 | Toshiba Corp | ロック方式 |
| US5933627A (en) * | 1996-07-01 | 1999-08-03 | Sun Microsystems | Thread switch on blocked load or store using instruction thread field |
| CN1280714C (zh) | 1996-08-27 | 2006-10-18 | 松下电器产业株式会社 | 独立处理多个指令流、软式控制各指令流的处理功能的多线程处理器 |
| JPH10149285A (ja) * | 1996-11-18 | 1998-06-02 | Hitachi Ltd | 命令実行制御方法および情報処理装置 |
| US6512591B1 (en) * | 1997-02-19 | 2003-01-28 | Hewlett-Packard Company | Multiple peripheral support for a single physical port in a host-based printing system |
| AU6586898A (en) | 1997-03-21 | 1998-10-20 | University Of Maryland | Spawn-join instruction set architecture for providing explicit multithreading |
| 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 |
| US6035374A (en) * | 1997-06-25 | 2000-03-07 | Sun Microsystems, Inc. | Method of executing coded instructions in a multiprocessor having shared execution resources including active, nap, and sleep states in accordance with cache miss latency |
| GB2345555A (en) * | 1999-01-05 | 2000-07-12 | Ibm | Controlling device access in a network |
| 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 |
| US6522649B1 (en) * | 2000-04-07 | 2003-02-18 | Omneon Video Networks | Method of distributing video reference signals as isochronous network packets |
| WO2003040948A1 (en) * | 2001-11-08 | 2003-05-15 | Fujitsu Limited | Computer and control method |
| 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 |
| US20030126416A1 (en) * | 2001-12-31 | 2003-07-03 | Marr Deborah T. | Suspending execution of a thread in a multi-threaded processor |
| US7127561B2 (en) * | 2001-12-31 | 2006-10-24 | Intel Corporation | Coherency techniques for suspending execution of a thread until a specified memory access occurs |
| US20030126379A1 (en) * | 2001-12-31 | 2003-07-03 | Shiv Kaushik | Instruction sequences for suspending execution of a thread until a specified memory access occurs |
| US6839816B2 (en) * | 2002-02-26 | 2005-01-04 | International Business Machines Corporation | Shared cache line update mechanism |
| US7234143B2 (en) * | 2002-06-20 | 2007-06-19 | Hewlett-Packard Development Company, L.P. | Spin-yielding in multi-threaded systems |
| US7213093B2 (en) * | 2003-06-27 | 2007-05-01 | Intel Corporation | Queued locks using monitor-memory wait |
| JP4376692B2 (ja) * | 2004-04-30 | 2009-12-02 | 富士通株式会社 | 情報処理装置、プロセッサ、プロセッサの制御方法、情報処理装置の制御方法、キャッシュメモリ |
| US7257679B2 (en) * | 2004-10-01 | 2007-08-14 | Advanced Micro Devices, Inc. | Sharing monitored cache lines across multiple cores |
-
2003
- 2003-06-27 US US10/608,708 patent/US7213093B2/en not_active Expired - Fee Related
-
2004
- 2004-06-16 JP JP2006515366A patent/JP2007520769A/ja active Pending
- 2004-06-16 WO PCT/US2004/019373 patent/WO2005003971A2/en not_active Ceased
- 2004-06-16 KR KR1020057025081A patent/KR100864747B1/ko not_active Expired - Fee Related
- 2004-06-16 GB GB0519863A patent/GB2417805B/en not_active Expired - Fee Related
- 2004-06-16 DE DE112004001133T patent/DE112004001133T5/de not_active Ceased
- 2004-06-17 TW TW093117562A patent/TWI266987B/zh not_active IP Right Cessation
- 2004-06-28 CN CNB2004100594631A patent/CN100337206C/zh not_active Expired - Fee Related
-
2007
- 2007-03-09 US US11/716,377 patent/US7328293B2/en not_active Expired - Fee Related
- 2007-09-20 US US11/903,249 patent/US7640384B2/en not_active Expired - Lifetime
-
2009
- 2009-09-14 JP JP2009211907A patent/JP2010044770A/ja active Pending
Cited By (18)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2010044770A (ja) * | 2003-06-27 | 2010-02-25 | Intel Corp | モニタメモリ待機を用いたキューされたロック |
| JP2010524054A (ja) * | 2007-03-30 | 2010-07-15 | インターナショナル・ビジネス・マシーンズ・コーポレーション | エミュレートされた処理環境でメモリ・アクセスを管理する方法、システム、およびそのためのコンピュータ・プログラム |
| JP2014197408A (ja) * | 2007-12-03 | 2014-10-16 | クゥアルコム・インコーポレイテッドQualcomm Incorporated | ロックインジケータを有するマルチスレッドプロセッサ |
| US9032232B2 (en) | 2009-12-18 | 2015-05-12 | Intel Corporation | Instruction for enabling a processor wait state |
| JP2012531681A (ja) * | 2009-12-18 | 2012-12-10 | インテル・コーポレーション | プロセッサの待機状態をイネーブルする命令 |
| US8990597B2 (en) | 2009-12-18 | 2015-03-24 | Intel Corporation | Instruction for enabling a processor wait state |
| JP2014222520A (ja) * | 2009-12-18 | 2014-11-27 | インテル・コーポレーション | プロセッサ、方法、システム、及び、プログラム |
| KR101410634B1 (ko) | 2009-12-18 | 2014-06-20 | 인텔 코오퍼레이션 | 프로세서 대기 상태를 인에이블하기 위한 명령 |
| US8898671B2 (en) | 2010-07-07 | 2014-11-25 | Panasonic Corporation | Processor that executes a plurality of threads by promoting efficiency of transfer of data that is shared with the plurality of threads |
| JPWO2012004990A1 (ja) * | 2010-07-07 | 2013-09-02 | パナソニック株式会社 | プロセッサ |
| WO2012004990A1 (ja) * | 2010-07-07 | 2012-01-12 | パナソニック株式会社 | プロセッサ |
| JP2014501982A (ja) * | 2010-12-21 | 2014-01-23 | インテル・コーポレーション | 電力管理のためのシステム及び方法 |
| US10705961B2 (en) | 2013-09-27 | 2020-07-07 | Intel Corporation | Scalably mechanism to implement an instruction that monitors for writes to an address |
| JP2016532233A (ja) * | 2014-10-03 | 2016-10-13 | インテル・コーポレーション | アドレスへの書き込みに対する監視命令を実行するスケーラブル機構 |
| JP2017538212A (ja) * | 2014-12-18 | 2017-12-21 | インテル コーポレイション | 中央処理装置(cpu)と補助プロセッサとの間の改善した関数コールバック機構 |
| US10706496B2 (en) | 2014-12-18 | 2020-07-07 | Intel Corporation | Function callback mechanism between a Central Processing Unit (CPU) and an auxiliary processor |
| JP2024505635A (ja) * | 2021-01-29 | 2024-02-07 | アーム・リミテッド | 監視排他命令 |
| JP7781164B2 (ja) | 2021-01-29 | 2025-12-05 | アーム・リミテッド | 監視排他命令 |
Also Published As
| Publication number | Publication date |
|---|---|
| HK1081301A1 (en) | 2006-05-12 |
| CN1577282A (zh) | 2005-02-09 |
| GB0519863D0 (en) | 2005-11-09 |
| US7213093B2 (en) | 2007-05-01 |
| WO2005003971A2 (en) | 2005-01-13 |
| TW200525348A (en) | 2005-08-01 |
| GB2417805B (en) | 2007-11-21 |
| US20080022141A1 (en) | 2008-01-24 |
| DE112004001133T5 (de) | 2006-05-11 |
| US20040267996A1 (en) | 2004-12-30 |
| WO2005003971A3 (en) | 2005-07-14 |
| KR20060029151A (ko) | 2006-04-04 |
| KR100864747B1 (ko) | 2008-10-22 |
| US7640384B2 (en) | 2009-12-29 |
| US20070162774A1 (en) | 2007-07-12 |
| GB2417805A (en) | 2006-03-08 |
| CN100337206C (zh) | 2007-09-12 |
| JP2010044770A (ja) | 2010-02-25 |
| TWI266987B (en) | 2006-11-21 |
| US7328293B2 (en) | 2008-02-05 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP2007520769A (ja) | モニタメモリ待機を用いたキューされたロック | |
| JP4601958B2 (ja) | 指定されたメモリアクセスが発生するまでスレッドの実行をサスペンドする方法及び装置 | |
| US7127561B2 (en) | Coherency techniques for suspending execution of a thread until a specified memory access occurs | |
| US8607241B2 (en) | Compare and exchange operation using sleep-wakeup mechanism | |
| TWI613588B (zh) | 在核心間同步運作的方法、微處理器及電腦程式產品 | |
| US8539485B2 (en) | Polling using reservation mechanism | |
| TWI613593B (zh) | 在微處理器中至多核心的微碼傳播 | |
| US8694976B2 (en) | Sleep state mechanism for virtual multithreading | |
| US20030126379A1 (en) | Instruction sequences for suspending execution of a thread until a specified memory access occurs | |
| TW201508635A (zh) | 多核心微處理器動態重新配置 | |
| GB2441903A (en) | Resuming control of resources by a processor on exiting a sleep mode and disabling an associated monitor. |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20080715 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080805 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20081105 |
|
| A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20090512 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090914 |
|
| A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20090924 |
|
| A912 | Re-examination (zenchi) completed and case transferred to appeal board |
Free format text: JAPANESE INTERMEDIATE CODE: A912 Effective date: 20091016 |
|
| A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20110406 |
|
| A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20110411 |