JP2009134771A5 - - Google Patents

Download PDF

Info

Publication number
JP2009134771A5
JP2009134771A5 JP2009072468A JP2009072468A JP2009134771A5 JP 2009134771 A5 JP2009134771 A5 JP 2009134771A5 JP 2009072468 A JP2009072468 A JP 2009072468A JP 2009072468 A JP2009072468 A JP 2009072468A JP 2009134771 A5 JP2009134771 A5 JP 2009134771A5
Authority
JP
Japan
Prior art keywords
processor
value
cas
address
processing
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.)
Granted
Application number
JP2009072468A
Other languages
English (en)
Other versions
JP2009134771A (ja
JP4977159B2 (ja
Filing date
Publication date
Priority claimed from US11/291,307 external-priority patent/US7509463B2/en
Application filed filed Critical
Publication of JP2009134771A publication Critical patent/JP2009134771A/ja
Publication of JP2009134771A5 publication Critical patent/JP2009134771A5/ja
Application granted granted Critical
Publication of JP4977159B2 publication Critical patent/JP4977159B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Claims (38)

  1. メインメモリと、
    メモリ・アクセス・サイズに係るメモリアクセス能力の異なる第1のプロセッサと第2のプロセッサとを含み、
    前記第1のプロセッサは前記第2のプロセッサに対して前記メインメモリのアドレスについてCAS(compare and swap:比較・交換)処理の実行を通知し
    前記第2のプロセッサアトミックなCAS処理を実行
    前記第2のプロセッサCAS処理の成否を第1のプロセッサに通知
    前記第2のプロセッサの最大メモリ転送サイズは前記第1のプロセッサの最大メモリ転送サイズよりも大きく設定され、CAS処理の実行時のメモリアドレスにおける保持値のサイズが第2のプロセッサの最大メモリ転送サイズ以下であり、かつ、第1のプロセッサの最大メモリ転送サイズより大きく設定されており
    前記CAS処理は、
    第2のプロセッサに前記アドレスの保持値の予約付き読み出しを実行させるステップと、
    第2のプロセッサに前記保持値と1以上の参照パラメータに関する比較処理を実行させるステップと、
    比較処理が成功したときに、第2のプロセッサに前記アドレスへの交換値の条件付き書き込みを実行させるステップと、
    を含むことを特徴とするプロセッサシステム。
  2. 第2のプロセッサに前記保持値と1以上の参照パラメータに関する比較処理を実行させるステップは、前記保持値と前記1以上の参照パラメータについての論理演算を第2のプロセッサに実行させるステップ、を更に備え、
    前記論理演算の結果は、真値または偽値のいずれかであることを特徴とする請求項1に記載のシステム。
  3. 前記論理演算の結果が真値であって、かつ、前記交換値の条件付き書き込みが成功することが、CAS処理の成功を示すことを特徴とする請求項2に記載のシステム。
  4. 前記論理演算の結果が偽値であって、かつ、前記交換値の条件付き書き込みが成功することが、CAS処理の成功を示すことを特徴とする請求項2に記載のシステム。
  5. 前記1以上の参照パラメータは単一参照値を含み、前記論理演算は、前記保持値と前記単一参照値との比較結果に基づいて、真値または偽値となることを特徴とする請求項2に記載のシステム。
  6. 前記1以上の参照パラメータは単一参照値を含み、前記論理演算は、前記保持値が前記単一参照値と等しいときに真値となる論理等価演算であることを特徴とする請求項2に記載のシステム。
  7. 第1のプロセッサから第2のプロセッサに対して、メインメモリのアドレスについてCAS処理の実行を指示する手段は、第2のプロセッサにアドレス、前記1以上の参照パラメータおよび1以上の交換パラメータを転送する手段、を含むことを特徴とする請求項1に記載のシステム。
  8. 第1のプロセッサから第2のプロセッサに対して、メインメモリのアドレスについてCAS処理の実行を指示する手段は、第2のプロセッサにアドレス、前記交換値および前記1以上の参照パラメータを転送する手段、を含むことを特徴とする請求項1に記載のシステム。
  9. 第1のプロセッサから第2のプロセッサに対して、メインメモリのアドレスについてCAS処理の実行を指示する手段は、第2のプロセッサにアドレスと前記保持値のサイズを転送する手段、を含むことを特徴とする請求項1に記載のシステム。
  10. 第1のプロセッサから第2のプロセッサに対して、メインメモリのアドレスについてCAS処理の実行を指示する手段は、第2のプロセッサにアドレス、前記1以上の参照パラメータ、1以上の交換パラメータを転送する手段を含み、
    CAS処理は、前記1以上の交換パラメータにより前記交換値を計算するステップ、を含むことを特徴とする請求項1に記載のシステム。
  11. 前記保持値と1以上の参照パラメータを比較するステップは、前記保持値が参照値と等しいかを判定するステップ、を含むことを特徴とする請求項1に記載のシステム。
  12. CAS処理は、
    予約付き読み出しの実行から条件付き書き込みの実行までに前記保持値が上書きされていれば、前記保持値の予約付き読み出しを再実行し、更に、前記保持値と1以上の参照値についての比較処理を実行し、比較失敗時には第1のプロセッサに通知することを特徴とする請求項1に記載のシステム。
  13. CAS処理を実行する手段は、前記交換値を計算するステップ、を含むことを特徴とする請求項1に記載のシステム。
  14. CAS処理を実行する手段は、前記1以上の交換パラメータにより参照値を計算するステップ、を含むことを特徴とする請求項1に記載のシステム。
  15. 前記交換値は、前記保持値についての所定関数の実行結果として算出されることを特徴とする請求項1に記載のシステム。
  16. 前記交換値は、前記保持値と第1のプロセッサが提供する1以上のパラメータについての所定関数の実行結果として算出されることを特徴とする請求項1に記載のシステム。
  17. 前記交換値は、前記保持値に増分値を加算した値であることを特徴とする請求項1に記載のシステム。
  18. 第1のプロセッサによりCAS処理を実行指示されるべき第2のプロセッサを指定することを更に含むことを特徴とする請求項1に記載のシステム。
  19. 第1のプロセッサによりCAS処理を実行指示されるべき第2のプロセッサを指定することを更に含み、前記指定された第2のプロセッサはアトミックにCAS処理を実行することを特徴とする請求項1に記載のシステム。
  20. メインメモリと、
    前記メインメモリに接続される第1のプロセッサと、
    前記メインメモリおよび第1のプロセッサに接続される1以上の第2のプロセッサとを備え、
    各1以上の第2のプロセッサは結合したローカルストア(Local Store)を含み、
    第2のプロセッサの最大メモリ転送サイズが第1のプロセッサの最大メモリ転送サイズよりも大きくなるように第2のプロセッサのメモリ転送サイズと第1のプロセッサのメモリ転送サイズは異なる値に設定され、
    メインメモリのアドレスに対するCAS(compare and swap:比較・交換)処理の実行を1以上の第2のプロセッサの1つに指示する第1の命令セットが第1のプロセッサの1以上のレジスタまたはメインメモリに実装され、
    CAS処理の実行時のメモリアドレスにおける保持値のサイズは第2のプロセッサの最大メモリ転送サイズ以下で第1のプロセッサの最大メモリ転送サイズよりも大きく設定され、
    前記アドレスについてのCAS処理を実行する命令と、CAS処理の成否を第1のプロセッサに通知する命令を含む第2の命令セットが1以上の第2のプロセッサ・ローカルストアの1以上のレジスタまたはメインメモリに実装されたことを特徴とするシステム
  21. 前記アドレスについてのCAS処理を実行する命令は、
    第2のプロセッサに前記アドレスの保持値の読み出しを実行させる命令と、
    第2のプロセッサに前記保持値と1以上の参照パラメータに関する比較処理を実行させる命令と、
    比較処理が成功しなかったときに、第1のプロセッサに通知する命令と、
    を含むことを特徴とする請求項20に記載のシステム
  22. CAS処理における比較処理は、前記保持値と1以上の参照パラメータについての論理演算を含み、
    前記論理演算の結果は、真値または偽値のいずれかであることを特徴とする請求項20に記載のシステム
  23. 前記論理演算の結果が真値であって、かつ、交換値の条件付き書き込みが成功することが、CAS処理の成功を示すことを特徴とする請求項22に記載のシステム
  24. 前記論理演算の結果が偽値であって、かつ、交換値の条件付き書き込みが成功することが、CAS処理の成功を示すことを特徴とする請求項22に記載のシステム
  25. 前記論理演算は、前記保持値が単一参照値と等しいときに真値となる論理等価演算であることを特徴とする請求項22に記載のシステム
  26. 1以上の第2のプロセッサは特定第2のプロセッサを含み、
    前記第1の命令セットは、メインメモリのアドレスに対するCAS処理の実行を特定第2のプロセッサに指示する命令を含むことを特徴とする請求項20に記載のシステム
  27. 1以上の第2のプロセッサは特定第2のプロセッサを含み、
    前記第1の命令セットは、メインメモリのアドレスに対するCAS処理の実行を特定第2のプロセッサに指示する命令を含み、
    特定第2のプロセッサは、そのローカル・ストアに第2の命令セットを実装されることを特徴とする請求項20に記載のシステム
  28. 特定第2のプロセッサに第1のプロセッサ補助関数を実装したことを特徴とする請求項27に記載のシステム
  29. 第1のプロセッサ補助関数は、memcopy関数を含むことを特徴とする請求項28に記載のシステム
  30. CAS処理の実行命令は、
    予約付き読み出しの実行から条件付き書き込みの実行までに前記保持値が上書きされていることを条件として実行される条件付き命令のセットを含み、
    条件付き命令のセットは、
    第2のプロセッサに前記保持値の予約付き読み出しを再実行させる命令と、
    第2のプロセッサに前記保持値と1以上の参照値についての比較処理を実行させる命令と、
    を含むことを特徴とする請求項20に記載のシステム
  31. CAS処理は、交換値を計算するステップを含むことを特徴とする請求項20に記載のシステム
  32. CAS処理は、参照値を計算するステップを含むことを特徴とする請求項20に記載のシステム
  33. 前記交換値は、前記保持値についての所定関数の実行結果として算出されることを特徴とする請求項31に記載のシステム
  34. 前記交換値は、前記保持値と第1のプロセッサが提供する1以上のパラメータについての所定関数の実行結果として算出されることを特徴とする請求項31に記載のシステム。。
  35. 前記交換値は、前記保持値に増分値を加算した値であることを特徴とする請求項31に記載のシステム
  36. 第2のプロセッサの最大メモリ転送サイズは128バイトであり、第1のプロセッサの最大メモリ転送サイズは8バイトであることを特徴とする請求項20に記載のシステム
  37. メインメモリと、メモリ・アクセス・サイズに係るメモリアクセス能力の異なる第1のプロセッサと第2のプロセッサとを含む2以上のプロセッサを備えるシステムにおいて実行される処理方法であって、
    第1のプロセッサから第2のプロセッサに対してメインメモリのアドレスについてCAS処理の実行を指示するステップと、
    第2のプロセッサにアトミックなCAS処理を実行させるステップと、
    第2のプロセッサにCAS処理の成否を第1のプロセッサに通知させるステップと、を備え、
    第2のプロセッサの最大メモリ転送サイズは第1のプロセッサの最大メモリ転送サイズよりも大きく設定され、CAS(compare and swap)処理の実行時のメモリアドレスにおける保持値のサイズが第2のプロセッサの最大メモリ転送サイズ以下であり、かつ、第1のプロセッサの最大メモリ転送サイズより大きく設定されており
    CAS処理は、
    第2のプロセッサに前記アドレスの保持値の予約付き読み出しを実行させるステップと、
    第2のプロセッサに前記保持値と1以上の参照パラメータに関する比較処理を実行させるステップと、
    比較処理が成功したときに、第2のプロセッサに前記アドレスへの交換値の条件付き書き込みを実行させるステップと、
    を含むことを特徴とするアトミック命令実行方法。
  38. メインメモリと、メモリ・アクセス・サイズに係るメモリアクセス能力の異なる第1のプロセッサと第2のプロセッサとを含む2以上のプロセッサを備えるシステムにおいてアトミック処理の方法をプロセッサに実現させるための命令を格納した記録媒体であって、前記方法は、
    第1のプロセッサから1以上の第2のプロセッサの1つに対してメインメモリのアドレスについてCAS処理の実行を指示するステップと、
    第2のプロセッサにアトミックなCAS処理を実行するステップと、
    第2のプロセッサにCAS処理の成否を第1のプロセッサに通知させるステップと、を備え、
    第2のプロセッサの最大メモリ転送サイズは第1のプロセッサの最大メモリ転送サイズよりも大きく設定され、CAS(compare and swap)処理の実行時のメモリアドレスにおける保持値のサイズが第2のプロセッサの最大メモリ転送サイズ以下であり、かつ、第1のプロセッサの最大メモリ転送サイズより大きく設定されており、
    CAS処理は、
    第2のプロセッサに前記アドレスの保持値の予約付き読み出しを実行させるステップと、
    第2のプロセッサに前記保持値と1以上の参照パラメータに関する比較処理を実行させるステップと、
    比較処理が成功したときに、第2のプロセッサに前記アドレスへの交換値の条件付き書き込みを実行させるステップと、
    を含むことを特徴とする記録媒体。
JP2009072468A 2005-12-01 2009-03-24 特定のプロセッサを使ってアトミックなコンペア・アンド・スワップ命令を実行するための技術 Active JP4977159B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/291,307 2005-12-01
US11/291,307 US7509463B2 (en) 2005-12-01 2005-12-01 Cell processor atomic compare and swap using dedicated synergistic processor element

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2006323851A Division JP4309420B2 (ja) 2005-12-01 2006-11-30 特定のspeを使ってcellプロセッサのアトミックなコンペア・アンド・スワップ命令を実行するための技術

Publications (3)

Publication Number Publication Date
JP2009134771A JP2009134771A (ja) 2009-06-18
JP2009134771A5 true JP2009134771A5 (ja) 2012-02-02
JP4977159B2 JP4977159B2 (ja) 2012-07-18

Family

ID=38175139

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2006323851A Active JP4309420B2 (ja) 2005-12-01 2006-11-30 特定のspeを使ってcellプロセッサのアトミックなコンペア・アンド・スワップ命令を実行するための技術
JP2009072468A Active JP4977159B2 (ja) 2005-12-01 2009-03-24 特定のプロセッサを使ってアトミックなコンペア・アンド・スワップ命令を実行するための技術

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2006323851A Active JP4309420B2 (ja) 2005-12-01 2006-11-30 特定のspeを使ってcellプロセッサのアトミックなコンペア・アンド・スワップ命令を実行するための技術

Country Status (2)

Country Link
US (2) US7509463B2 (ja)
JP (2) JP4309420B2 (ja)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7472261B2 (en) * 2005-11-08 2008-12-30 International Business Machines Corporation Method for performing externally assisted calls in a heterogeneous processing complex
US7509463B2 (en) * 2005-12-01 2009-03-24 Sony Computer Entertainment, Inc. Cell processor atomic compare and swap using dedicated synergistic processor element
US8024521B2 (en) * 2007-03-13 2011-09-20 Sony Computer Entertainment Inc. Atomic operation on non-standard sized data using external cache
US7934063B2 (en) * 2007-03-29 2011-04-26 International Business Machines Corporation Invoking externally assisted calls from an isolated environment
US8291174B2 (en) 2007-08-15 2012-10-16 Micron Technology, Inc. Memory device and method having on-board address protection system for facilitating interface with multiple processors, and computer system using same
US8055852B2 (en) 2007-08-15 2011-11-08 Micron Technology, Inc. Memory device and method having on-board processing logic for facilitating interface with multiple processors, and computer system using same
US7822911B2 (en) 2007-08-15 2010-10-26 Micron Technology, Inc. Memory device and method with on-board cache system for facilitating interface with multiple processors, and computer system using same
CN101398803B (zh) * 2007-09-28 2011-04-06 国际商业机器公司 管理数据移动的方法和使用该方法的细胞宽带引擎处理器
US8055856B2 (en) * 2008-03-24 2011-11-08 Nvidia Corporation Lock mechanism to enable atomic updates to shared memory
US8095769B2 (en) * 2008-08-19 2012-01-10 Freescale Semiconductor, Inc. Method for address comparison and a device having address comparison capabilities
JP5300005B2 (ja) * 2008-11-28 2013-09-25 インターナショナル・ビジネス・マシーンズ・コーポレーション スレッド実行制御方法、およびシステム
US8910114B2 (en) 2009-06-25 2014-12-09 Intel Corporation Optimizing code using a bi-endian compiler
US8996845B2 (en) * 2009-12-22 2015-03-31 Intel Corporation Vector compare-and-exchange operation
US10026458B2 (en) * 2010-10-21 2018-07-17 Micron Technology, Inc. Memories and methods for performing vector atomic memory operations with mask control and variable data length and data unit size
EP2742032B1 (en) 2011-08-08 2015-05-06 Tfchem Gem-difluorinated c-isopropylgalactoside derivates
US20140250442A1 (en) * 2013-03-01 2014-09-04 Advanced Micro Devices, Inc. Conditional Notification Mechanism
US9411663B2 (en) * 2013-03-01 2016-08-09 Advanced Micro Devices, Inc. Conditional notification mechanism
GB2512086A (en) 2013-03-20 2014-09-24 Ibm Transaction capable queuing
GB2570161B (en) * 2018-01-16 2020-03-25 Advanced Risc Mach Ltd Simulation of exclusive instructions

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6285372A (ja) * 1985-10-09 1987-04-18 Nec Corp マルチプロセツサシステムにおけるコンペアアンドスワツプ方式
AU645785B2 (en) 1990-01-05 1994-01-27 Maspar Computer Corporation Parallel processor memory system
US5224215A (en) * 1990-07-13 1993-06-29 International Business Machines Corporation Message queue processing among cooperative processors having significant speed differences
JPH0922397A (ja) * 1995-07-07 1997-01-21 Hitachi Ltd 並列計算機
US5613139A (en) * 1994-05-11 1997-03-18 International Business Machines Corporation Hardware implemented locking mechanism for handling both single and plural lock requests in a lock message
JPH0954761A (ja) 1995-08-15 1997-02-25 Sony Corp デイジタル信号処理装置及び情報処理システム
US5864738A (en) * 1996-03-13 1999-01-26 Cray Research, Inc. Massively parallel processing system using two data paths: one connecting router circuit to the interconnect network and the other connecting router circuit to I/O controller
US5835925A (en) * 1996-03-13 1998-11-10 Cray Research, Inc. Using external registers to extend memory reference capabilities of a microprocessor
FR2754925B1 (fr) * 1996-10-18 1998-11-20 Bull Sa Operation atomique sur memoire distante et dispositif permettant d'effectuer cette operation
US6880071B2 (en) * 2001-04-09 2005-04-12 Sun Microsystems, Inc. Selective signalling of later reserve location memory fault in compound compare and swap
US7274706B1 (en) * 2001-04-24 2007-09-25 Syrus Ziai Methods and systems for processing network data
US7502826B2 (en) * 2003-03-27 2009-03-10 Hewlett-Packard Development Company, L.P. Atomic operations
US7114042B2 (en) * 2003-05-22 2006-09-26 International Business Machines Corporation Method to provide atomic update primitives in an asymmetric heterogeneous multiprocessor environment
US20050120185A1 (en) * 2003-12-01 2005-06-02 Sony Computer Entertainment Inc. Methods and apparatus for efficient multi-tasking
US7398368B2 (en) 2005-12-01 2008-07-08 Sony Computer Entertainment Inc. Atomic operation involving processors with different memory transfer operation sizes
US7509463B2 (en) 2005-12-01 2009-03-24 Sony Computer Entertainment, Inc. Cell processor atomic compare and swap using dedicated synergistic processor element

Similar Documents

Publication Publication Date Title
JP2009134771A5 (ja)
JP5431308B2 (ja) システムおよびパイプラインプロセッサにおける条件命令実行の加速のためのローカル条件コードレジスタの使用方法
US9678882B2 (en) Systems and methods for non-blocking implementation of cache flush instructions
JP4977159B2 (ja) 特定のプロセッサを使ってアトミックなコンペア・アンド・スワップ命令を実行するための技術
US20060123219A1 (en) Intra-instruction fusion
US20170177365A1 (en) Transaction end plus commit to persistence instructions, processors, methods, and systems
US20070162640A1 (en) Method and system for efficient context swapping
US20150261535A1 (en) Method and apparatus for low latency exchange of data between a processor and coprocessor
JP5745084B2 (ja) ハードウェアトランザクションメモリシステムにおけるトランザクションデータの不慮の喪失の防止
JP2007141246A (ja) ベクトルマスク設定技術
JP2012043443A (ja) 連続フロープロセッサパイプライン
JP2012508938A (ja) セキュアなアプリケーション実行方法および装置
US8589933B2 (en) Low power execution of a multithreaded program
US8601242B2 (en) Adaptive optimized compare-exchange operation
JP4130465B2 (ja) メモリ転送処理サイズが異なるプロセッサに関してアトミックな処理を実行するための技術
TW201732566A (zh) 從亂序處理器中的不良儲存-至-負載轉發復原的方法與設備
JP2018538628A (ja) ブロックアトミック実行モデルを利用するプロセッサベースシステムにおける部分的に実行された命令ブロックのリプレイ
JP2009169767A (ja) パイプライン型プロセッサ
CN116483743A (zh) 数据高速缓存预取装置、方法及处理器
TWI435267B (zh) 處理器電路及讀取資料的方法
JP6645348B2 (ja) 情報処理装置、情報処理プログラム、及び情報処理方法
WO2016201699A1 (zh) 指令处理方法及设备
US20070156990A1 (en) Load mechanism
US10489218B2 (en) Suppression of speculative accesses to shared memory locations at a processor
JP2022510763A (ja) トランザクショナル・メモリのための装置及びデータ処理方法