JP5035277B2 - 共有メモリに対するアトミックな更新を可能にするロックメカニズム - Google Patents
共有メモリに対するアトミックな更新を可能にするロックメカニズム Download PDFInfo
- Publication number
- JP5035277B2 JP5035277B2 JP2009060702A JP2009060702A JP5035277B2 JP 5035277 B2 JP5035277 B2 JP 5035277B2 JP 2009060702 A JP2009060702 A JP 2009060702A JP 2009060702 A JP2009060702 A JP 2009060702A JP 5035277 B2 JP5035277 B2 JP 5035277B2
- Authority
- JP
- Japan
- Prior art keywords
- lock
- memory
- address
- entry
- thread
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/084—Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
-
- 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/30181—Instruction operation extension or modification
- G06F9/30185—Instruction operation extension or modification according to one or more bits in the instruction, e.g. prefix, sub-opcode
-
- 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)
- Executing Machine-Instructions (AREA)
- Memory System (AREA)
- Multi Processors (AREA)
Description
[0017]図1は、本発明の1つ以上の態様を実施するように構成されたコンピュータシステム100を示すブロック図である。このコンピュータシステム100は、メモリブリッジ105を含むバス経路を経て通信する中央処理ユニット(CPU)102及びシステムメモリ104を備えている。例えば、ノースブリッジ(Northbridge)チップでよいメモリブリッジ105は、バスまたは他の通信経路106(例えば、ハイパートランスポートリンク)を経てI/O(入力/出力)ブリッジ107に接続される。例えば、サウスブリッジ(Southbridge)チップでよいI/Oブリッジ107は、1つ以上のユーザ入力装置108(例えば、キーボード、マウス)からユーザ入力を受け取り、そしてその入力を、経路106及びメモリブリッジ105を経てCPU102へ転送する。メモリブリッジ105には、バスまたは他の通信経路113(例えば、PCIエクスプレス、アクセラレーテッドグラフィックポートまたはハイパートランスポートリンク)を経て並列処理サブシステム112が結合され、一実施形態では、この並列処理サブシステム112は、ディスプレイ装置110(例えば、従来のCRTまたはLCDベースのモニタ)へピクセルを配送するグラフィックサブシステムである。I/Oブリッジ107には、システムディスク114も接続される。スイッチ116は、I/Oブリッジ107と、他のコンポーネント、例えば、ネットワークアダプタ118及び種々のアドイン(add-in)カード120及び121との間の接続をなす。また、I/Oブリッジ107には、USBまたは他のポート接続部、CDドライブ、DVDドライブ、フィルムレコーディング装置、等を含む他のコンポーネント(明確に示さず)を接続することもできる。図1における種々のコンポーネントを相互接続する通信経路は、適当なプロトコル、例えば、PCI(周辺コンポーネント相互接続)、PCI−エクスプレス(PCI−E)、AGP(アクセラレーテッドグラフィックポート)、ハイパートランスポート、或いは他のバスまたはポイント・ツー・ポイント通信プロトコルを使用して実施することができ、そして異なる装置間の接続は、この技術で知られたように異なるプロトコルを使用することができる。
[0031]図3は、本発明の1つ以上の態様に基づく図2の並列処理サブシステム112のための並列処理ユニット220を示すブロック図である。このPPU202は、非常に多数のスレッドを並列に実行するように構成されたコア208(または複数コア208)を備える。ここで、「スレッド(thread)」という語は、入力データの特定セットに対して実行される特定プログラムのインスタンスを指す。ある実施形態では、単一インストラクション複数データ(SIMD)のインストラクション発行技術を使用して、複数の独立したインストラクションユニットを設けずに、非常に多数のスレッドの並列実行がサポートされる。ある実施形態では、単一インストラクションマルチスレッド(SIMT)技術を使用し、処理エンジンのセットへインストラクションを発行するように構成された共通のインストラクションユニットを使用して、非常に多数の一般的に同期されたスレッドの並列実行がサポートされる。全ての処理エンジンが典型的に同じインストラクションを実行するSIMD実行形態とは異なり、SIMTの実行は、異なるスレッドが、所与のスレッドプログラムを通して、発散する実行経路を容易にたどれるようにする。当業者であれば、SIMD処理形態は、SIMT処理形態の機能的サブセットを表すことが理解されよう。
[0045]ある実施形態では、図3のマルチスレッド処理コア208は、スレッドブロックまたはスレッドアレーを使用して汎用計算を実行することができる。スレッドアレーは、入力データセットに対して同じプログラムを同時に実行して出力データセットを発生する多数(n0)のスレッドより成る。スレッドアレーの各スレッドには、実行中にスレッドにアクセスできる、固有のスレッド識別子(スレッドID)が指定される。このスレッドIDは、スレッドの処理振舞いについての種々の態様を制御する。例えば、スレッドIDを使用して、入力データセットのどの部分をスレッドが処理すべきか決定し、及び/または出力データセットのどの部分をスレッドが発生しまたは書き込むべきか決定することができる。
[0051]図4Aは、本発明の1つ以上の態様に基づく、図3の並列処理ユニット202のためのインストラクションユニット312を示すブロック図である。このインストラクションユニット312は、インストラクションフェッチユニット400と、インストラクションキャッシュ430と、ディスパッチャー435と、条件コードユニット450とを含む。インストラクションフェッチユニット400は、処理されるべきデータと、データを処理するのに使用すべきプログラムに対応するプログラム識別子とを受け取る。
[0061]図4Bは、本発明の1つ以上の態様に基づく、図3に示す共有メモリ306のブロック図である。共有メモリ306内の位置にアクセスするアトミックオペレーションのサポートを与えるために、処理エンジン302からのメモリ読み取り及び書き込み要求がメモリロックユニット410へ入力される。記憶リソース406内の位置に対するロック状態を記憶するロックビット474のセットが設けられる。本発明のある実施形態では、ロックビットは、記憶リソース406内の各アドレス位置に対して専用のものでよい。本発明の他の実施形態では、各ロックビットは、記憶リソース406内の多数のアドレス位置間で共有されてもよい。更に、ロックビット474又は他のロックビットを使用して、グローバルメモリ320のような他のアドレススペースをカバーし、また、記憶リソース406及びグローバルメモリ320内のアドレス可能な位置間で各ロックビットを共有してもよい。
[0070]図5Bは、本発明の1つ以上の実施形態に基づき共有メモリ306に対するテーブル2に示されたアンロックオペレーションを遂行するための方法ステップを示すフローチャートである。ステップ520において、メモリロックユニット410は、R2G.UNLインストラクションに対して指定されたアドレスを受け取り、そしてハッシュアドレス(hash_addr)を決定する。ステップ525では、メモリロックユニット410は、ロックアドレスに対応するロックビット474のロックフラグをクリアする。ステップ530では、アドレスに対応する記憶リソース406のエントリーが、R2G.UNLインストラクションで与えられたデータと共に書き込まれる。重要なことに、ロックフラグをセットするのは、無条件であり、記憶リソース406のエントリーに対する更新と同時に行われる。それ故、アンロックオペレーションを遂行するのに、付加的なロックサイクルもパイプライン段も必要とされない。
Claims (5)
- 共有メモリに対するアトミックな更新を行う方法において、
あるアドレスに対応する前記共有メモリのエントリーにアクセスするためのメモリ要求を受け取るステップと、
前記アドレスを使用してロックフラグを記憶するロックエントリーのロックアドレスを決定するステップと、
前記アドレスに対応する前記共有メモリのエントリーに対してロックが取得されたかどうか指示する前記ロックアドレスに対するロック結果を計算するステップと、
前記メモリ要求により前記エントリーがロックされたことを指示して、別のメモリ要求が、前記アドレスに対応する前記共有メモリのエントリーを書き込むのを防止するために、前記ロックフラグをセットするステップと、
前記アドレスに対応する前記共有メモリのエントリーに記憶されたデータ及び前記ロック結果を同時に読み取るステップと、
前記データを使用して変更データを発生するオペレーションを遂行するステップと、
前記ロック結果が、前記エントリーに対してロックが取得されたことを指示するときには、前記エントリーが前記メモリ要求によってアンロックされることを指示するために、
前記ロックフラグをクリアするステップと、
前記アドレスに対応する前記共有メモリのエントリーに前記変更データを書き込むステップと、
を備える、
方法。 - 前記ロック結果が、前記エントリーに対してロックが取得されなかったことを指示するときには、前記ロック結果を計算するステップ、前記ロックフラグをセットするステップ及び、前記データ及び前記ロック結果を同時に読み取るステップを繰り返すステップを更に備える、請求項1に記載の方法。
- 前記決定するステップ、前記計算するステップ、前記セットするステップ及び前記読み取るステップは、プログラムの複数の実行スレッドに対して並列に遂行される、請求項1に記載の方法。
- 共有メモリに対するアトミックな更新を行うシステムにおいて、
複数のエントリーにデータを記憶するための共有記憶リソースであって、あるアドレスに対応する該共有記憶リソースのエントリーにアクセスするためのメモリ要求を受け取ると共に、前記アドレスに対応する前記エントリーに記憶されたデータを出力する、ように構成された共有記憶リソースと、
前記共有記憶リソースに結合されたメモリロックユニットであって、前記メモリ要求で指定されるロック要求を受け取り、前記アドレスを使用してロックフラグを記憶するロックエントリーのロックアドレスを決定し、前記アドレスに対応する前記共有記憶リソースのエントリーに対してロックが取得されたかどうか指示する前記ロックアドレスに対するロック結果を計算し、前記メモリ要求により前記エントリーがロックされたことを指示して、別のメモリ要求が、前記アドレスに対応する前記共有記憶リソースのエントリーを書き込むのを防止するために、前記ロックフラグをセットし、前記アドレスに対応する前記共有記憶リソースのエントリーにアクセスするための第2のメモリ要求で指定されたアンロック要求を受け取り、前記ロック結果が、前記エントリーに対してロックが取得されたことを指示するときには、前記エントリーが前記第2のメモリ要求によってアンロックされることを指示するために、前記ロックフラグをクリアし、前記アドレスに対応する前記共有記憶リソースのエントリーにアクセスするための前記第2のメモリ要求を受け取り、前記アドレスに対応する前記共有記憶リソースのエントリーに変更データを書き込む、
ように構成されたメモリロックユニットと、
を備え、
前記共有記憶リソースが前記データを出力すると同時に、前記メモリロックユニットは、前記ロック結果を出力する、
システム。 - 前記ロックフラグは、前記共有記憶リソースにおけるエントリーの2つ以上のアドレスにより共有される、請求項4に記載のシステム。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/054,267 US8055856B2 (en) | 2008-03-24 | 2008-03-24 | Lock mechanism to enable atomic updates to shared memory |
US12/054,267 | 2008-03-24 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2009230757A JP2009230757A (ja) | 2009-10-08 |
JP5035277B2 true JP5035277B2 (ja) | 2012-09-26 |
Family
ID=41060802
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009060702A Active JP5035277B2 (ja) | 2008-03-24 | 2009-03-13 | 共有メモリに対するアトミックな更新を可能にするロックメカニズム |
Country Status (3)
Country | Link |
---|---|
US (2) | US8055856B2 (ja) |
JP (1) | JP5035277B2 (ja) |
DE (1) | DE102009012766A1 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9471400B1 (en) | 2015-07-28 | 2016-10-18 | International Business Machines Corporation | Reentrant read-write lock algorithm |
Families Citing this family (36)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8185459B2 (en) * | 2008-05-14 | 2012-05-22 | Symcor Inc. | System, method and computing device for detecting duplicate financial documents |
US8619086B2 (en) * | 2009-04-30 | 2013-12-31 | Intel Corporation | Managing three dimensional scenes using shared and unified graphics processing unit memory |
EP2470991A1 (en) * | 2009-08-24 | 2012-07-04 | ABB Technology AG | Improved execution of real time applications with an automation controller |
US8850436B2 (en) * | 2009-09-28 | 2014-09-30 | Nvidia Corporation | Opcode-specified predicatable warp post-synchronization |
US10360039B2 (en) * | 2009-09-28 | 2019-07-23 | Nvidia Corporation | Predicted instruction execution in parallel processors with reduced per-thread state information including choosing a minimum or maximum of two operands based on a predicate value |
US8365014B2 (en) * | 2010-01-14 | 2013-01-29 | Juniper Networks, Inc. | Fast resource recovery after thread crash |
US9349154B2 (en) * | 2010-04-05 | 2016-05-24 | Nvidia Corporation | Bindless texture and image API |
US20120151145A1 (en) * | 2010-12-13 | 2012-06-14 | Advanced Micro Devices, Inc. | Data Driven Micro-Scheduling of the Individual Processing Elements of a Wide Vector SIMD Processing Unit |
CN103377086A (zh) * | 2012-04-27 | 2013-10-30 | 华为技术有限公司 | 用于异步多核系统操作共享资源的方法、装置及系统 |
WO2014022203A1 (en) * | 2012-08-02 | 2014-02-06 | Siemens Corporation | Pipelining for cyclic control systems |
US9542237B2 (en) * | 2012-09-04 | 2017-01-10 | Red Hat Israel, Ltd. | Shared locking for storage centric exclusive locks |
US9678897B2 (en) * | 2012-12-27 | 2017-06-13 | Nvidia Corporation | Approach for context switching of lock-bit protected memory |
US9146885B2 (en) | 2013-05-17 | 2015-09-29 | Analog Devices, Inc. | Parallel atomic increment |
US9396226B2 (en) | 2013-06-24 | 2016-07-19 | International Business Machines Corporation | Highly scalable tree-based trylock |
US9329895B2 (en) | 2014-01-22 | 2016-05-03 | International Business Machines Corporation | Reader-writer lock |
GB2524063B (en) | 2014-03-13 | 2020-07-01 | Advanced Risc Mach Ltd | Data processing apparatus for executing an access instruction for N threads |
US9672163B2 (en) | 2014-04-17 | 2017-06-06 | Thomson Licensing | Field lockable memory |
GB2529899B (en) | 2014-09-08 | 2021-06-23 | Advanced Risc Mach Ltd | Shared Resources in a Data Processing Apparatus for Executing a Plurality of Threads |
US10560542B2 (en) * | 2014-09-15 | 2020-02-11 | Ge Aviation Systems Llc | Mechanism and method for communicating between a client and a server by accessing message data in a shared memory |
US9898348B2 (en) | 2014-10-22 | 2018-02-20 | International Business Machines Corporation | Resource mapping in multi-threaded central processor units |
WO2016120884A1 (en) * | 2015-01-30 | 2016-08-04 | Hewlett-Packard Development Company, L.P. | Failure atomic update of a single application data file |
CN105988724B (zh) * | 2015-02-12 | 2019-02-26 | 华为技术有限公司 | 多副本写入存储设备的方法及存储设备 |
US10209990B2 (en) * | 2015-06-02 | 2019-02-19 | Advanced Micro Devices, Inc. | Conditional atomic operations in single instruction multiple data processors |
GB2539958B (en) * | 2015-07-03 | 2019-09-25 | Advanced Risc Mach Ltd | Data processing systems |
US10839289B2 (en) | 2016-04-28 | 2020-11-17 | International Business Machines Corporation | Neural network processing with von-Neumann cores |
GB2551529B (en) * | 2016-06-21 | 2018-09-12 | Advanced Risc Mach Ltd | Switching between private cache and shared memory to handle atomic operations |
EP4089531B1 (en) | 2016-12-31 | 2024-06-26 | Intel Corporation | Systems, methods, and apparatuses for heterogeneous computing |
US10387037B2 (en) * | 2016-12-31 | 2019-08-20 | Intel Corporation | Microarchitecture enabling enhanced parallelism for sparse linear algebra operations having write-to-read dependencies |
US10585818B2 (en) * | 2017-04-05 | 2020-03-10 | International Business Machines Corporation | Low overhead exclusive control for shared memory objects |
US10452586B2 (en) | 2017-04-17 | 2019-10-22 | Intel Corporation | Avoid thread switching in cache management |
US10943171B2 (en) * | 2017-09-01 | 2021-03-09 | Facebook, Inc. | Sparse neural network training optimization |
US10877992B2 (en) | 2017-11-30 | 2020-12-29 | International Business Machines Corporation | Updating a database |
US10929199B2 (en) | 2018-07-02 | 2021-02-23 | International Business Machines Corporation | Memory lock serialization |
CN112905365B (zh) * | 2019-10-30 | 2024-02-13 | 支付宝(杭州)信息技术有限公司 | 一种数据处理方法、装置、设备及介质 |
CN111143240B (zh) * | 2019-12-31 | 2022-07-05 | 科华恒盛股份有限公司 | 图像存储方法、系统及终端设备 |
US11361400B1 (en) | 2021-05-06 | 2022-06-14 | Arm Limited | Full tile primitives in tile-based graphics processing |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4574350A (en) * | 1982-05-19 | 1986-03-04 | At&T Bell Laboratories | Shared resource locking apparatus |
JPH02242363A (ja) * | 1989-03-15 | 1990-09-26 | Fujitsu Ltd | 共用資源制御方式 |
US5263161A (en) * | 1989-07-26 | 1993-11-16 | Massachusetts Institute Of Technology | Non-busy waiting resource control |
US5343469A (en) * | 1990-06-14 | 1994-08-30 | Nec Corporation | Communication system and communication devices having lock function |
US5168564A (en) * | 1990-10-05 | 1992-12-01 | Bull Hn Information Systems Inc. | Cancel mechanism for resilient resource management and control |
JPH09297706A (ja) * | 1996-04-30 | 1997-11-18 | Ricoh Co Ltd | データ処理装置及びデータ処理装置における共有メモリの排他制御方法 |
JP4132322B2 (ja) * | 1998-12-16 | 2008-08-13 | 株式会社日立製作所 | 記憶制御装置およびその制御方法 |
US6324624B1 (en) * | 1999-12-28 | 2001-11-27 | Intel Corporation | Read lock miss control and queue management |
US6973521B1 (en) * | 2000-05-16 | 2005-12-06 | Cisco Technology, Inc. | Lock controller supporting blocking and non-blocking requests |
US7003521B2 (en) * | 2000-05-30 | 2006-02-21 | Sun Microsystems, Inc. | Method and apparatus for locking objects using shared locks |
US6862608B2 (en) * | 2001-07-17 | 2005-03-01 | Storage Technology Corporation | System and method for a distributed shared memory |
US6816952B1 (en) * | 2002-05-31 | 2004-11-09 | Unisys Corporation | Lock management system and method for use in a data processing system |
US7458076B2 (en) * | 2004-08-05 | 2008-11-25 | International Business Machines Corporation | Method, apparatus, and computer program product for dynamically tuning a data processing system by identifying and boosting holders of contentious locks |
US7509463B2 (en) * | 2005-12-01 | 2009-03-24 | Sony Computer Entertainment, Inc. | Cell processor atomic compare and swap using dedicated synergistic processor element |
US8108627B2 (en) * | 2006-03-31 | 2012-01-31 | Intel Corporation | Array comparison and swap operations |
US20080250509A1 (en) * | 2007-04-04 | 2008-10-09 | Nokia Corporation | Write Protection For Memory Devices |
US8286196B2 (en) | 2007-05-03 | 2012-10-09 | Apple Inc. | Parallel runtime execution on multiple processors |
WO2008127622A2 (en) | 2007-04-11 | 2008-10-23 | Apple Inc. | Data parallel computing on multiple processors |
US8341611B2 (en) | 2007-04-11 | 2012-12-25 | Apple Inc. | Application interface on multiple processors |
-
2008
- 2008-03-24 US US12/054,267 patent/US8055856B2/en active Active
-
2009
- 2009-03-12 DE DE102009012766A patent/DE102009012766A1/de not_active Withdrawn
- 2009-03-13 JP JP2009060702A patent/JP5035277B2/ja active Active
-
2011
- 2011-10-18 US US13/276,224 patent/US8375176B2/en active Active
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9471400B1 (en) | 2015-07-28 | 2016-10-18 | International Business Machines Corporation | Reentrant read-write lock algorithm |
US9658900B2 (en) | 2015-07-28 | 2017-05-23 | International Business Machines Corporation | Reentrant read-write lock algorithm |
US9672077B2 (en) | 2015-07-28 | 2017-06-06 | International Business Machines Corporation | Reentrant read-write lock algorithm |
Also Published As
Publication number | Publication date |
---|---|
US8375176B2 (en) | 2013-02-12 |
JP2009230757A (ja) | 2009-10-08 |
US20120036329A1 (en) | 2012-02-09 |
US8055856B2 (en) | 2011-11-08 |
DE102009012766A1 (de) | 2009-10-15 |
US20090240860A1 (en) | 2009-09-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5035277B2 (ja) | 共有メモリに対するアトミックな更新を可能にするロックメカニズム | |
EP2480979B1 (en) | Unanimous branch instructions in a parallel thread processor | |
JP5701487B2 (ja) | 同期並列スレッドプロセッサにおける間接的な関数呼び出し命令 | |
US7617384B1 (en) | Structured programming control flow using a disable mask in a SIMD architecture | |
US10067768B2 (en) | Execution of divergent threads using a convergence barrier | |
US9830158B2 (en) | Speculative execution and rollback | |
EP2483787B1 (en) | Efficient predicated execution for parallel processors | |
US8108659B1 (en) | Controlling access to memory resources shared among parallel synchronizable threads | |
US8639882B2 (en) | Methods and apparatus for source operand collector caching | |
US8850436B2 (en) | Opcode-specified predicatable warp post-synchronization | |
US20130198760A1 (en) | Automatic dependent task launch | |
US9448803B2 (en) | System and method for hardware scheduling of conditional barriers and impatient barriers | |
US9678897B2 (en) | Approach for context switching of lock-bit protected memory | |
US8572355B2 (en) | Support for non-local returns in parallel thread SIMD engine | |
US9507638B2 (en) | Compute work distribution reference counters | |
US20130198759A1 (en) | Controlling work distribution for processing tasks | |
US9513923B2 (en) | System and method for context migration across CPU threads | |
US8413151B1 (en) | Selective thread spawning within a multi-threaded processing system | |
US8417735B1 (en) | Instruction-efficient algorithm for parallel scan using initialized memory regions to replace conditional statements |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20120110 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20120410 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20120413 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20120419 |
|
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: 20120605 |
|
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: 20120618 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20150713 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5035277 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
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 |
|
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 |
|
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 |