JP2016207232A5 - プロセッサ - Google Patents

プロセッサ Download PDF

Info

Publication number
JP2016207232A5
JP2016207232A5 JP2016175998A JP2016175998A JP2016207232A5 JP 2016207232 A5 JP2016207232 A5 JP 2016207232A5 JP 2016175998 A JP2016175998 A JP 2016175998A JP 2016175998 A JP2016175998 A JP 2016175998A JP 2016207232 A5 JP2016207232 A5 JP 2016207232A5
Authority
JP
Japan
Prior art keywords
processor
memory access
conditional
unconditional
instruction
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
JP2016175998A
Other languages
English (en)
Other versions
JP6526609B2 (ja
JP2016207232A (ja
Filing date
Publication date
Priority claimed from US13/844,729 external-priority patent/US9304940B2/en
Application filed filed Critical
Publication of JP2016207232A publication Critical patent/JP2016207232A/ja
Publication of JP2016207232A5 publication Critical patent/JP2016207232A5/ja
Application granted granted Critical
Publication of JP6526609B2 publication Critical patent/JP6526609B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Claims (19)

  1. プロセッサであって、
    複数の論理プロセッサと、
    前記複数の論理プロセッサのうちの第1の論理プロセッサであって、前記第1の論理プロセッサは、1以上の条件付きメモリ・アクセス命令を含むソフトウェアを実行する、前記第1の論理プロセッサと、
    前記第1の論理プロセッサの復号化ユニットであって、前記復号化ユニットは、前記プロセッサが緩和メモリ・アクセス同期モードである場合、前記1以上の条件付きメモリ・アクセス命令を1以上の無条件メモリ・アクセス操作に変換する、前記復号化ユニットと、を備え、
    前記プロセッサが前記緩和メモリ・アクセス同期モードであるときに、前記第1の論理プロセッサは、同期を考慮せずにメモリの少なくとも第1の部分にアクセスする
    プロセッサ。
  2. 前記1以上の条件付きメモリ・アクセス命令は、条件付きストア命令を有し、
    前記1以上の無条件メモリ・アクセス操作は、無条件ストア操作を有する
    請求項1に記載のプロセッサ。
  3. 前記1以上の条件付きメモリ・アクセス命令は、条件付きロード命令を有し、
    前記1以上の無条件メモリ・アクセス操作は、無条件ロード操作を有する
    請求項1に記載のプロセッサ。
  4. 前記1以上の条件付きメモリ・アクセス命令は、ロードリンク命令とストアコンディショナル命令による対を有し、
    前記1以上の無条件メモリ・アクセス操作は、単一の無条件ストア操作を有する
    請求項1に記載のプロセッサ。
  5. 前記1以上の条件付きメモリ・アクセス命令は、リード・モディファイ・ライト命令を有し、
    前記1以上の無条件メモリ・アクセス操作は、単一の無条件ライト操作を有する
    請求項1に記載のプロセッサ。
  6. 前記プロセッサは、前記プロセッサが前記緩和メモリ・アクセス同期モードであることを示す、1以上のアーキテクチャ可視ビットを有する
    請求項1から5のいずれか1項に記載のプロセッサ。
  7. 前記1以上のアーキテクチャ可視ビットは、ソフトウェアに基づき修正可能である
    請求項6に記載のプロセッサ。
  8. 前記1以上のアーキテクチャ可視ビットは、前記メモリの前記第1の部分に対応し、
    前記プロセッサは、前記メモリの他の第2の部分に対応する1以上のアーキテクチャ可視ビットの別の組をさらに備える
    請求項6または7に記載のプロセッサ。
  9. 前記プロセッサは、ソフトウェアに基づき、ランタイムにおいて前記緩和メモリ・アクセス同期モードにされる
    請求項1から8のいずれか1項に記載のプロセッサ。
  10. 前記プロセッサは、(1)単一のスレッドのみが実行されている場合、(2)1つのスレッドのみが関連する共有メモリにアクセスする場合、および(3)他のスレッドが前記関連する共有メモリを監視していない場合のうちの少なくとも1つの場合に、前記緩和メモリ・アクセス同期モードになる
    請求項1から9のいずれか1項に記載のプロセッサ。
  11. プロセッサであって、
    複数の論理プロセッサと、
    前記複数の論理プロセッサのうちの第1の論理プロセッサであって、前記第1の論理プロセッサは、1以上の条件付きメモリ・アクセス命令を含むソフトウェアを実行する、前記第1の論理プロセッサと、
    前記第1の論理プロセッサの復号化ユニットであって、前記復号化ユニットは、前記プロセッサが緩和メモリ・アクセス同期モードである場合、前記1以上の条件付きメモリ・アクセス命令を1以上の無条件メモリ・アクセス操作に変換する、前記復号化ユニットと、
    前記プロセッサが前記緩和メモリ・アクセス同期モードであることを示す、1以上のアーキテクチャ可視ビットと、を備え、
    前記プロセッサが前記緩和メモリ・アクセス同期モードであるときに、前記第1の論理プロセッサは、同期を考慮せずにメモリの少なくとも一部にアクセスし、
    前記1以上のアーキテクチャ可視ビットは、ソフトウェアに基づき修正可能であり、
    前記プロセッサが前記緩和メモリ・アクセス同期モードであることを示すべく、前記1以上のアーキテクチャ可視ビットは、前記ソフトウェアに基づき、ランタイムの間に修正され、
    (1)単一のスレッドのみが実行されている場合、(2)1つのスレッドのみが関連する共有メモリにアクセスする場合、および(3)他のスレッドが前記関連する共有メモリを監視していない場合のうちの少なくとも1つの場合に、前記プロセッサが前記緩和メモリ・アクセス同期モードであることが、前記ソフトウェアに基づき示される、
    プロセッサ。
  12. 前記1以上の条件付きメモリ・アクセス命令は、条件付きストア命令を有し、
    前記1以上の無条件メモリ・アクセス操作は、無条件ストア操作を有する
    請求項11に記載のプロセッサ。
  13. 前記1以上の条件付きメモリ・アクセス命令は、条件付きロード命令を有し、
    前記1以上の無条件メモリ・アクセス操作は、無条件ロード操作を有する
    請求項11に記載のプロセッサ。
  14. 前記1以上の条件付きメモリ・アクセス命令は、ロードリンク命令とストアコンディショナル命令による対を有し、
    前記1以上の無条件メモリ・アクセス操作は、単一の無条件ストア操作を有する
    請求項11に記載のプロセッサ。
  15. 前記1以上の条件付きメモリ・アクセス命令は、リード・モディファイ・ライト命令を有し、
    前記1以上の無条件メモリ・アクセス操作は、単一の無条件ライト操作を有する
    請求項11に記載のプロセッサ。
  16. プロセッサであって、
    複数の論理プロセッサと、
    前記複数の論理プロセッサのうちの第1の論理プロセッサであって、前記第1の論理プロセッサは、リード・モディファイ・ライト命令、コンペア・アンド・スワップ命令、テスト・アンド・セット命令、およびロードリンク命令とストアコンディショナル命令による対のうちのストアコンディショナル命令のうちの1つである、第1の命令を含むソフトウェアを実行する、前記第1の論理プロセッサと、
    前記第1の論理プロセッサの復号化ユニットであって、前記復号化ユニットは、前記プロセッサが緩和メモリ・アクセス同期モードである場合、前記第1の命令を、ストア操作およびライト操作のうちの一方の操作に変換する、前記復号化ユニットと、を備え、
    前記プロセッサが前記緩和メモリ・アクセス同期モードであるときに、前記第1の論理プロセッサは、同期を考慮せずにメモリの少なくとも一部にアクセスする
    プロセッサ。
  17. 前記プロセッサは、(1)単一のスレッドのみが実行されている場合、(2)1つのスレッドのみが関連する共有メモリにアクセスする場合、および(3)他のスレッドが前記関連する共有メモリを監視していない場合のうちの少なくとも1つの場合に、前記緩和メモリ・アクセス同期モードになる
    請求項16に記載のプロセッサ。
  18. 前記プロセッサは、前記プロセッサが前記緩和メモリ・アクセス同期モードであることを示す、1以上のアーキテクチャ可視ビットを有し、
    前記1以上のアーキテクチャ可視ビットは、ソフトウェアに基づき修正可能である
    請求項16または17に記載のプロセッサ。
  19. 前記プロセッサは、ソフトウェアに基づき、ランタイムにおいて前記緩和メモリ・アクセス同期モードにされる
    請求項16から18のいずれか1項に記載のプロセッサ。
JP2016175998A 2013-03-15 2016-09-08 プロセッサ Expired - Fee Related JP6526609B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/844,729 US9304940B2 (en) 2013-03-15 2013-03-15 Processors, methods, and systems to relax synchronization of accesses to shared memory
US13/844,729 2013-03-15

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2014028277A Division JP6006247B2 (ja) 2013-03-15 2014-02-18 共有メモリへのアクセスの同期を緩和するプロセッサ、方法、システム、及びプログラム

Publications (3)

Publication Number Publication Date
JP2016207232A JP2016207232A (ja) 2016-12-08
JP2016207232A5 true JP2016207232A5 (ja) 2017-03-30
JP6526609B2 JP6526609B2 (ja) 2019-06-05

Family

ID=50482493

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2014028277A Active JP6006247B2 (ja) 2013-03-15 2014-02-18 共有メモリへのアクセスの同期を緩和するプロセッサ、方法、システム、及びプログラム
JP2016175998A Expired - Fee Related JP6526609B2 (ja) 2013-03-15 2016-09-08 プロセッサ

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2014028277A Active JP6006247B2 (ja) 2013-03-15 2014-02-18 共有メモリへのアクセスの同期を緩和するプロセッサ、方法、システム、及びプログラム

Country Status (7)

Country Link
US (2) US9304940B2 (ja)
JP (2) JP6006247B2 (ja)
KR (1) KR101594090B1 (ja)
CN (1) CN104050026B (ja)
BR (1) BR102014006021A2 (ja)
DE (1) DE102014003671A1 (ja)
GB (2) GB2548511B (ja)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9304940B2 (en) 2013-03-15 2016-04-05 Intel Corporation Processors, methods, and systems to relax synchronization of accesses to shared memory
US10452316B2 (en) 2013-04-17 2019-10-22 Apeiron Data Systems Switched direct attached shared storage architecture
US9756128B2 (en) * 2013-04-17 2017-09-05 Apeiron Data Systems Switched direct attached shared storage architecture
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
US10489158B2 (en) 2014-09-26 2019-11-26 Intel Corporation Processors, methods, systems, and instructions to selectively fence only persistent storage of given data relative to subsequent stores
US11544214B2 (en) 2015-02-02 2023-01-03 Optimum Semiconductor Technologies, Inc. Monolithic vector processor configured to operate on variable length vectors using a vector length register
US20160378480A1 (en) * 2015-06-27 2016-12-29 Pavel G. Matveyev Systems, Methods, and Apparatuses for Improving Performance of Status Dependent Computations
US10074151B2 (en) * 2015-09-30 2018-09-11 Intel Corporation Dense optical flow acceleration
JP6146508B1 (ja) 2016-03-31 2017-06-14 日本電気株式会社 同期処理ユニット、デバイス、システムおよび方法
US10223002B2 (en) * 2017-02-08 2019-03-05 Arm Limited Compare-and-swap transaction
US10552131B2 (en) 2017-10-16 2020-02-04 Microsoft Technology Licensing, Llc Barrier reduction during code translation
GB2572578B (en) * 2018-04-04 2020-09-16 Advanced Risc Mach Ltd Cache annotations to indicate specultative side-channel condition
JP7064134B2 (ja) * 2018-05-11 2022-05-10 富士通株式会社 演算処理装置及び演算処理装置の制御方法
JP7064135B2 (ja) * 2018-05-15 2022-05-10 富士通株式会社 演算処理装置及び演算処理装置の制御方法
US10831500B2 (en) 2018-06-10 2020-11-10 International Business Machines Corporation Adaptive locking in elastic threading systems
US11068612B2 (en) * 2018-08-01 2021-07-20 International Business Machines Corporation Microarchitectural techniques to mitigate cache-based data security vulnerabilities
US10956166B2 (en) 2019-03-08 2021-03-23 Arm Limited Instruction ordering
CN110147253B (zh) * 2019-05-16 2020-10-20 湖南毂梁微电子有限公司 一种基于延迟栅栏同步操作指令的多核处理器同步方法
US20220019514A1 (en) * 2020-07-14 2022-01-20 Ronghui Gu Systems, methods, and media for proving the correctness of software on relaxed memory hardware
US11249766B1 (en) 2020-09-14 2022-02-15 Apple Inc. Coprocessor synchronizing instruction suppression

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2230119B (en) 1989-04-07 1993-04-21 Intel Corp Conditional execution speed-up on synchronizing instructions
JP3038781B2 (ja) * 1989-04-21 2000-05-08 日本電気株式会社 メモリアクセス制御回路
US6065086A (en) 1998-02-17 2000-05-16 International Business Machines Corporation Demand based sync bus operation
JPH11259437A (ja) 1998-03-12 1999-09-24 Hitachi Ltd 不要バリア命令の削減方式
JP2938056B1 (ja) 1998-08-12 1999-08-23 甲府日本電気株式会社 マルチホストシステムおよびホストコンピュータ間命令制御方法
JP3641997B2 (ja) 2000-03-30 2005-04-27 日本電気株式会社 プログラム変換装置及び方法並びに記録媒体
US6748518B1 (en) * 2000-06-06 2004-06-08 International Business Machines Corporation Multi-level multiprocessor speculation mechanism
JP4915038B2 (ja) 2001-08-08 2012-04-11 コニカミノルタホールディングス株式会社 インクジェット記録方法
US7328314B2 (en) * 2002-06-19 2008-02-05 Alcatel-Lucent Canada Inc. Multiprocessor computing device having shared program memory
JP2006185232A (ja) 2004-12-28 2006-07-13 Hitachi Ltd 複数のプログラムの実行方法、プログラム変換方法及びこれを用いたコンパイラプログラム
US20070143755A1 (en) 2005-12-16 2007-06-21 Intel Corporation Speculative execution past a barrier
JP4148528B2 (ja) 2006-10-31 2008-09-10 インターナショナル・ビジネス・マシーンズ・コーポレーション 排他制御を効率化する技術
US20080109604A1 (en) * 2006-11-08 2008-05-08 Sicortex, Inc Systems and methods for remote direct memory access to processor caches for RDMA reads and writes
US20080307422A1 (en) * 2007-06-08 2008-12-11 Kurland Aaron S Shared memory for multi-core processors
US8131951B2 (en) * 2008-05-30 2012-03-06 Freescale Semiconductor, Inc. Utilization of a store buffer for error recovery on a store allocation cache miss
JP5270268B2 (ja) 2008-09-05 2013-08-21 インターナショナル・ビジネス・マシーンズ・コーポレーション 共有データへの排他的アクセスを許すためのコンピュータ・システム、並びにその方法及びコンピュータ読み取り可能な記録媒体
US8412889B2 (en) * 2008-10-16 2013-04-02 Microsoft Corporation Low-level conditional synchronization support
JP5088754B2 (ja) 2009-12-18 2012-12-05 インターナショナル・ビジネス・マシーンズ・コーポレーション システム、方法、プログラムおよびコード生成装置
US9069545B2 (en) 2011-07-18 2015-06-30 International Business Machines Corporation Relaxation of synchronization for iterative convergent computations
US8607247B2 (en) 2011-11-03 2013-12-10 Advanced Micro Devices, Inc. Method and system for workitem synchronization
US20140281429A1 (en) * 2013-03-14 2014-09-18 Qualcomm Incorporated Eliminating redundant synchronization barriers in instruction processing circuits, and related processor systems, methods, and computer-readable media
US9304940B2 (en) 2013-03-15 2016-04-05 Intel Corporation Processors, methods, and systems to relax synchronization of accesses to shared memory

Similar Documents

Publication Publication Date Title
JP2016207232A5 (ja) プロセッサ
US11023233B2 (en) Methods, apparatus, and instructions for user level thread suspension
JP6526609B2 (ja) プロセッサ
US20160239299A1 (en) System, apparatus, and method for improved efficiency of execution in signal processing algorithms
US10423216B2 (en) Asymmetric multi-core processor with native switching mechanism
GB2568816A8 (en) Processor having multiple cores, shared core extension logic, and shared core extension utilization instructions
JP2006502504A5 (ja)
JP2006500639A5 (ja)
US20160154677A1 (en) Work Stealing in Heterogeneous Computing Systems
JP2017016712A5 (ja) 方法、プロセッサ、及び、システム
JP5413853B2 (ja) マルチスレッド型プロセッサのためのスレッドデエンファシス方法及びデバイス
US10049043B2 (en) Flushing control within a multi-threaded processor
JP2014513373A5 (ja)
JP2010541067A5 (ja)
JP2006503385A (ja) マルチスレッド・プロセッサの高速スレッド間割込みのための方法および装置
WO2018093439A3 (en) Processors, methods, systems, and instructions to load multiple data elements to destination storage locations other than packed data registers
RU2015151132A (ru) Команды, процессоры, способы и системы доступа множественных регистров к памяти
US20160162293A1 (en) Asymmetric processor with cores that support different isa instruction subsets
BR112018016913A2 (pt) predicados uniformes em shaders para unidades de processamento gráfico
WO2015017129A4 (en) Multi-threaded gpu pipeline
TW201543357A (zh) 基於同時多執行緒(smt)的中央處理單元以及用於檢測指令的資料相關性的裝置
US11451241B2 (en) Setting values of portions of registers based on bit values
Xiang et al. Many-thread aware instruction-level parallelism: Architecting shader cores for GPU computing
US20170371701A1 (en) Apparatuses, methods, and systems for granular and adaptive hardware transactional synchronization
Shibata et al. An implementation of auto-memoization mechanism on arm-based superscalar processor