JP6526609B2 - プロセッサ - Google Patents
プロセッサ Download PDFInfo
- Publication number
- JP6526609B2 JP6526609B2 JP2016175998A JP2016175998A JP6526609B2 JP 6526609 B2 JP6526609 B2 JP 6526609B2 JP 2016175998 A JP2016175998 A JP 2016175998A JP 2016175998 A JP2016175998 A JP 2016175998A JP 6526609 B2 JP6526609 B2 JP 6526609B2
- Authority
- JP
- Japan
- Prior art keywords
- processor
- memory access
- instructions
- instruction
- memory
- 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
- 230000015654 memory Effects 0.000 claims description 451
- 230000001360 synchronised effect Effects 0.000 claims description 29
- 238000012360 testing method Methods 0.000 claims description 5
- 238000012544 monitoring process Methods 0.000 claims description 2
- 238000000034 method Methods 0.000 description 62
- 238000010586 diagram Methods 0.000 description 40
- 230000004888 barrier function Effects 0.000 description 36
- 230000000116 mitigating effect Effects 0.000 description 24
- 238000012545 processing Methods 0.000 description 24
- 230000007246 mechanism Effects 0.000 description 21
- 238000007667 floating Methods 0.000 description 11
- 238000004891 communication Methods 0.000 description 9
- 238000013519 translation Methods 0.000 description 9
- 238000006243 chemical reaction Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 8
- 239000003795 chemical substances by application Substances 0.000 description 7
- 238000004364 calculation method Methods 0.000 description 6
- 230000008859 change Effects 0.000 description 6
- 230000003287 optical effect Effects 0.000 description 6
- 230000002085 persistent effect Effects 0.000 description 6
- 230000008569 process Effects 0.000 description 6
- 230000006835 compression Effects 0.000 description 5
- 238000007906 compression Methods 0.000 description 5
- 238000013500 data storage Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 238000004519 manufacturing process Methods 0.000 description 4
- 230000003068 static effect Effects 0.000 description 4
- 238000012546 transfer Methods 0.000 description 4
- 238000013459 approach Methods 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000011156 evaluation Methods 0.000 description 3
- 230000003044 adaptive effect Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 2
- 230000000903 blocking effect Effects 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 239000000758 substrate Substances 0.000 description 2
- 230000002730 additional effect Effects 0.000 description 1
- 150000001875 compounds Chemical class 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 229910052754 neon Inorganic materials 0.000 description 1
- GKAOGPIIYCISHV-UHFFFAOYSA-N neon atom Chemical compound [Ne] GKAOGPIIYCISHV-UHFFFAOYSA-N 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000001902 propagating effect Effects 0.000 description 1
- 230000002040 relaxant effect Effects 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 239000011232 storage material Substances 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 230000001052 transient effect 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
- 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
-
- 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/0804—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
-
- 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/0815—Cache consistency protocols
-
- 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/0862—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to 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
-
- 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/522—Barrier synchronisation
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1072—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers for memories with random access ports synchronised on clock signal pulse trains, e.g. synchronous memories, self timed memories
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1052—Security improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/60—Details of cache memory
- G06F2212/6028—Prefetching based on hints or prefetch instructions
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- Executing Machine-Instructions (AREA)
- Multi Processors (AREA)
- Memory System (AREA)
- Advance Control (AREA)
Description
以下の例は、更に他の実施形態に関する。例における詳細は、1以上の実施形態のどこに使用されてもよい。
本実施形態の例を下記の各項目として示す。
[項目1]
プロセッサであって、
複数の論理プロセッサと、
前記複数の論理プロセッサの第1の論理プロセッサであって、メモリへのアクセスを同期させるメモリ・アクセス同期命令を含むソフトウェアを実行する第1の論理プロセッサと、
前記プロセッサが緩和メモリ・アクセス同期モードのときに、前記メモリ・アクセス同期命令が前記メモリへのアクセスを同期させるのを阻止するメモリ・アクセス同期緩和ロジックとを含むプロセッサ。
[項目2]
前記プロセッサは、前記プロセッサが前記緩和メモリ・アクセス同期モードであることを示す1以上のアーキテクチャ可視ビットを有する、項目1に記載のプロセッサ。
[項目3]
前記1以上のアーキテクチャ可視ビットが、ソフトウェアにアクセスして、前記ソフトウェアに、前記プロセッサが緩和メモリ・アクセス同期モードであることを示すように前記1以上のアーキテクチャ可視ビットを修正させることができる、項目2に記載のプロセッサ。
[項目4]
前記1以上のアーキテクチャ可視ビットが、前記メモリに対応し、更に、他の第2のメモリに対応する別の組の1以上のアーキテクチャ可視ビットを含む、項目2または3に記載のプロセッサ。
[項目5]
前記メモリ・アクセス同期命令が、フェンス命令とバリア命令から選択され、前記メモリ・アクセス同期緩和ロジックが、前記メモリ・アクセス同期命令をノーオペレーション(NOP)に変換するロジックを含む、項目1から4のいずれか1項に記載のプロセッサ。
[項目6]
前記メモリ・アクセス同期命令が、フェンス命令とバリア命令から選択され、前記メモリ・アクセス同期緩和ロジックが、フェンス操作とバリア操作の対応する一方の実行を省略するためにメモリ・サブシステムのロジックを含む、項目1から5のいずれか1項に記載のプロセッサ。
[項目7]
前記メモリ・アクセス同期命令が、条件付きロード命令と条件付きストア命令から選択された条件付きメモリ・アクセス命令を含み、前記メモリ・アクセス同期緩和ロジックが、前記条件付きメモリ・アクセス命令を対応する無条件メモリ・アクセス命令に変換するロジックを含む、項目1から6のいずれか1項に記載のプロセッサ。
[項目8]
前記メモリ・アクセス同期命令が、リード・モディファイ・ライト命令、コンペア・アンド・スワップ命令、テスト・アンド・セット命令、及び1対のロードリンク/ストア条件付き命令のストア条件命令から選択され、前記メモリ・アクセス同期緩和ロジックが、前記メモリ・アクセス同期命令をストア命令とライト命令から選択された命令に変換するロジックを含む、項目1から7のいずれか1項に記載のプロセッサ。
[項目9]
前記メモリ・アクセス同期命令が、条件付き分岐命令を含み、前記メモリ・アクセス同期緩和ロジックは、前記プロセッサが緩和メモリ・アクセス同期モードのときに前記条件付き分岐を特定の方法で予測させる分岐プレディクタのロジックを含む、項目1から8のいずれか1項に記載のプロセッサ。
[項目10]
プロセッサにおける方法であって、
複数の論理プロセッサのうちの第1の論理プロセッサのための1組の命令を取り出す段階であって、前記1組の命令が、メモリへのアクセスを同期させるメモリ・アクセス同期命令を含む段階と、
前記メモリ・アクセス同期命令の前記同期を考慮せずに前記第1の論理プロセッサから前記メモリにアクセスする段階とを含む方法。
[項目11]
前記プロセッサが緩和メモリ・アクセス同期モードであることを示す1以上のアーキテクチャ可視ビットを確認することによって、前記プロセッサが、前記緩和メモリ・アクセス同期モードであることを判定する段階を更に含む、項目10に記載の方法。
[項目12]
前記プロセッサが緩和メモリ・アクセス同期モードであることを示すように前記1以上のアーキテクチャ可視ビットを修正するソフトウェアを更に含む、項目11に記載の方法。
[項目13]
前記メモリ・アクセス同期命令が前記メモリへの前記アクセスを同期させるのを阻止する段階と更に含む、項目10から12のいずれか1項に記載の方法。
[項目14]
取り出しが、更に、フェンス命令とバリア命令から選択された前記メモリ・アクセス同期命令を取り出すことを含み、更に、前記メモリ・アクセス同期命令をノーオペレーション(NOP)に変換することを含む、項目10から13のいずれか1項に記載の方法。
[項目15]
前記メモリ・アクセス同期命令が、フェンス命令とバリア命令から選択された命令を含み、更に、フェンス操作とバリア操作の対応する一方を実行することを省略することを含む、項目10から14のいずれか1項に記載の方法。
[項目16]
前記取り出しが、リード・モディファイ・ライト命令、コンペア・アンド・スワップ命令、テスト・アンド・セット命令、及びロードリンク/ストア条件付き対の命令のストア条件命令から選択された命令である前記メモリ・アクセス同期命令を取り出すことを含み、更に、前記条件付きメモリ・アクセス命令を、ストア命令とライト命令から選択された命令に変換することを含む、項目10から15のいずれか1項に記載の方法。
[項目17]
前記取り出しが、条件付きロード命令と条件付きストア命令から選択された条件付きメモリ・アクセス命令である前記メモリ・アクセス同期命令を取り出すことを含み、更に、前記条件付きメモリ・アクセス命令を対応する無条件メモリ・アクセス命令に変換することを含む、項目10から16のいずれか1項に記載の方法。
[項目18]
前記取り出しが、条件付き分岐命令である前記メモリ・アクセス同期命令を取り出すことを含み、更に、前記プロセッサが緩和メモリ・アクセス同期モードであることに基づいて前記条件付き分岐を予測することを含む、項目10から17のいずれか1項に記載の方法。
[項目19]
命令を処理するシステムであって、
インターコネクトと、
前記インターコネクトと結合されたプロセッサと、
前記インターコネクトと結合され、命令を記憶する動的ランダム・アクセス・メモリ(DRAM)とを有し、
前記命令は、機械によって実行されたときに、前記機械に、
前記プロセッサの複数の論理プロセッサのうちの第1の論理プロセッサを、緩和メモリ・アクセス同期モードで動作させることを決定することと、
前記第1の論理プロセッサが前記緩和メモリ・アクセス同期モードで動作されることを示すように、前記プロセッサの1以上のアーキテクチャ可視ビットを修正することを含む操作を実行させ、
前記緩和メモリ・アクセス同期モードで動作されるとき、前記第1の論理プロセッサが、メモリ・アクセス同期命令がメモリへのアクセスを同期させるのを阻止するシステム。
[項目20]
前記命令は、オペレーティング・システムの命令を含む、項目19に記載のシステム。
[項目21]
前記命令は、前記第1の論理プロセッサが前記メモリ・アクセス同期命令がアクセスを同期させるのを阻止する前記メモリに、他の論理プロセッサがアクセスしないときに、前記第1の論理プロセッサを前記緩和メモリ・アクセス同期モードで動作させることを前記機械に決定させる命令を含む、項目19または20に記載のシステム。
[項目22]
プログラムであって、
コンピュータによって実行された場合に、前記コンピュータに、
前記コンピュータの複数の論理プロセッサのうちの第1の論理プロセッサを緩和メモリ・アクセス同期モードで動作させることを決定することと、
前記コンピュータの1以上のアーキテクチャ可視ビットを、前記第1の論理プロセッサが、前記緩和メモリ・アクセス同期モードで動作されることを示すように修正することとを含む操作を実行させ、
前記緩和メモリ・アクセス同期モードで動作されたときに、前記第1の論理プロセッサは、メモリ・アクセス同期命令がメモリへのアクセスを同期させるのを阻止するプログラム。
[項目23]
前記第1の論理プロセッサが前記メモリ・アクセス同期命令がアクセスを同期させるのを阻止する前記メモリに、他の論理プロセッサがアクセスしないときに、前記第1の論理プロセッサを前記緩和メモリ・アクセス同期モードで動作させることを前記コンピュータに決定させる、項目22に記載のプログラム。
Claims (18)
- プロセッサであって、
複数の論理プロセッサと、
前記複数の論理プロセッサのうちの第1の論理プロセッサであって、前記第1の論理プロセッサは、1以上の条件付きメモリ・アクセス命令を含むソフトウェアを実行する、前記第1の論理プロセッサと、
前記第1の論理プロセッサの復号化ユニットであって、前記復号化ユニットは、前記プロセッサが緩和メモリ・アクセス同期モードである場合、前記1以上の条件付きメモリ・アクセス命令を1以上の無条件メモリ・アクセス操作に変換する、前記復号化ユニットと、を備え、
前記プロセッサが前記緩和メモリ・アクセス同期モードであるときに、前記第1の論理プロセッサは、同期を考慮せずにメモリの少なくとも第1の部分にアクセスし、
前記プロセッサは、前記第1の論理プロセッサ以外のエンティティが前記メモリの前記少なくとも第1の部分にアクセスできないとの決定に基づいて、ランタイムにおいて前記緩和メモリ・アクセス同期モードを用いるように構成される
プロセッサ。 - 前記1以上の条件付きメモリ・アクセス命令は、条件付きストア命令を有し、
前記1以上の無条件メモリ・アクセス操作は、無条件ストア操作を有する
請求項1に記載のプロセッサ。 - 前記1以上の条件付きメモリ・アクセス命令は、条件付きロード命令を有し、
前記1以上の無条件メモリ・アクセス操作は、無条件ロード操作を有する
請求項1に記載のプロセッサ。 - 前記1以上の条件付きメモリ・アクセス命令は、ロードリンク命令とストアコンディショナル命令による対を有し、
前記1以上の無条件メモリ・アクセス操作は、単一の無条件ストア操作を有する
請求項1に記載のプロセッサ。 - 前記1以上の条件付きメモリ・アクセス命令は、リード・モディファイ・ライト命令を有し、
前記1以上の無条件メモリ・アクセス操作は、単一の無条件ライト操作を有する
請求項1に記載のプロセッサ。 - 前記プロセッサは、前記プロセッサが前記緩和メモリ・アクセス同期モードであることを示す、1以上のアーキテクチャ可視ビットを有する
請求項1から5のいずれか1項に記載のプロセッサ。 - 前記1以上のアーキテクチャ可視ビットは、オペレーティング・システムにより修正可能である
請求項6に記載のプロセッサ。 - 前記1以上のアーキテクチャ可視ビットは、前記メモリの前記第1の部分に対応し、
前記プロセッサは、前記メモリの他の第2の部分に対応する1以上のアーキテクチャ可視ビットの別の組をさらに備える
請求項6または7に記載のプロセッサ。 - 前記プロセッサは、オペレーティング・システムにより、ランタイムにおいて前記緩和メモリ・アクセス同期モードにされる
請求項1から8のいずれか1項に記載のプロセッサ。 - 前記プロセッサは、(1)単一のスレッドのみが実行されている場合、(2)1つのスレッドのみが関連する共有メモリにアクセスする場合、および(3)他のスレッドが前記関連する共有メモリを監視していない場合のうちの少なくとも1つの場合に、前記緩和メモリ・アクセス同期モードになる
請求項1から9のいずれか1項に記載のプロセッサ。 - プロセッサであって、
複数の論理プロセッサと、
前記複数の論理プロセッサのうちの第1の論理プロセッサであって、前記第1の論理プロセッサは、1以上の条件付きメモリ・アクセス命令を含むソフトウェアを実行する、前記第1の論理プロセッサと、
前記第1の論理プロセッサの復号化ユニットであって、前記復号化ユニットは、前記プロセッサが緩和メモリ・アクセス同期モードである場合、前記1以上の条件付きメモリ・アクセス命令を1以上の無条件メモリ・アクセス操作に変換する、前記復号化ユニットと、
前記プロセッサが前記緩和メモリ・アクセス同期モードであることを示す、1以上のアーキテクチャ可視ビットと、を備え、
前記プロセッサが前記緩和メモリ・アクセス同期モードであるときに、前記第1の論理プロセッサは、同期を考慮せずにメモリの少なくとも一部にアクセスし、
前記1以上のアーキテクチャ可視ビットは、オペレーティング・システムにより修正可能であり、
前記プロセッサが前記緩和メモリ・アクセス同期モードであることを示すべく、前記1以上のアーキテクチャ可視ビットは、前記オペレーティング・システムにより、前記ソフトウェアが前記第1の論理プロセッサで実行される間のランタイムの間に修正され、
(1)単一のスレッドのみが実行されている場合、(2)1つのスレッドのみが前記メモリの前記少なくとも一部にアクセスする場合、および(3)他のスレッドが前記メモリの前記少なくとも一部を監視していない場合のうちの少なくとも1つの場合に、前記プロセッサが前記緩和メモリ・アクセス同期モードであることが、前記オペレーティング・システムにより示される、
プロセッサ。 - 前記1以上の条件付きメモリ・アクセス命令は、条件付きストア命令を有し、
前記1以上の無条件メモリ・アクセス操作は、無条件ストア操作を有する
請求項11に記載のプロセッサ。 - 前記1以上の条件付きメモリ・アクセス命令は、条件付きロード命令を有し、
前記1以上の無条件メモリ・アクセス操作は、無条件ロード操作を有する
請求項11に記載のプロセッサ。 - 前記1以上の条件付きメモリ・アクセス命令は、ロードリンク命令とストアコンディショナル命令による対を有し、
前記1以上の無条件メモリ・アクセス操作は、単一の無条件ストア操作を有する
請求項11に記載のプロセッサ。 - 前記1以上の条件付きメモリ・アクセス命令は、リード・モディファイ・ライト命令を有し、
前記1以上の無条件メモリ・アクセス操作は、単一の無条件ライト操作を有する
請求項11に記載のプロセッサ。 - プロセッサであって、
複数の論理プロセッサと、
前記複数の論理プロセッサのうちの第1の論理プロセッサであって、前記第1の論理プロセッサは、リード・モディファイ・ライト命令、コンペア・アンド・スワップ命令、テスト・アンド・セット命令、およびロードリンク命令とストアコンディショナル命令による対のうちのストアコンディショナル命令のうちの1つである、第1の命令を含むソフトウェアを実行する、前記第1の論理プロセッサと、
前記第1の論理プロセッサの復号化ユニットであって、前記復号化ユニットは、前記プロセッサが緩和メモリ・アクセス同期モードである場合、前記第1の命令を、ストア操作およびライト操作のうちの一方の操作に変換する、前記復号化ユニットと、を備え、
前記プロセッサが前記緩和メモリ・アクセス同期モードであるときに、前記第1の論理プロセッサは、同期を考慮せずにメモリの少なくとも一部にアクセスし、
前記プロセッサは、前記第1の論理プロセッサ以外のエンティティが前記メモリの前記少なくとも一部にアクセスできないとの決定に基づいて、ランタイムにおいて前記緩和メモリ・アクセス同期モードを用いるように構成される
プロセッサ。 - 前記プロセッサは、(1)単一のスレッドのみが実行されている場合、(2)1つのスレッドのみが前記メモリの前記少なくとも一部にアクセスする場合、および(3)他のスレッドが前記メモリの前記少なくとも一部を監視していない場合のうちの少なくとも1つの場合に、前記緩和メモリ・アクセス同期モードになる
請求項16に記載のプロセッサ。 - 前記プロセッサは、前記プロセッサが前記緩和メモリ・アクセス同期モードであることを示す、1以上のアーキテクチャ可視ビットを有し、
前記1以上のアーキテクチャ可視ビットは、オペレーティング・システムにより修正可能である
請求項16または17に記載のプロセッサ。
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 JP2016207232A5 (ja) | 2017-03-30 |
JP6526609B2 true 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) | GB2512478B (ja) |
Families Citing this family (20)
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 |
US9756128B2 (en) * | 2013-04-17 | 2017-09-05 | Apeiron Data Systems | Switched direct attached shared storage architecture |
US10452316B2 (en) | 2013-04-17 | 2019-10-22 | 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 | 湖南毂梁微电子有限公司 | 一种基于延迟栅栏同步操作指令的多核处理器同步方法 |
US12079102B2 (en) * | 2020-07-14 | 2024-09-03 | The Trustees Of Columbia University In The City Of New York | 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)
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 |
-
2013
- 2013-03-15 US US13/844,729 patent/US9304940B2/en active Active
-
2014
- 2014-02-18 JP JP2014028277A patent/JP6006247B2/ja active Active
- 2014-02-20 GB GB1402964.9A patent/GB2512478B/en not_active Expired - Fee Related
- 2014-02-20 GB GB1709375.8A patent/GB2548511B/en not_active Expired - Fee Related
- 2014-03-13 KR KR1020140029403A patent/KR101594090B1/ko active IP Right Grant
- 2014-03-14 BR BR102014006021A patent/BR102014006021A2/pt active Search and Examination
- 2014-03-14 DE DE102014003671.5A patent/DE102014003671A1/de active Pending
- 2014-03-17 CN CN201410097357.6A patent/CN104050026B/zh active Active
-
2016
- 2016-04-04 US US15/089,883 patent/US10235175B2/en active Active
- 2016-09-08 JP JP2016175998A patent/JP6526609B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
US9304940B2 (en) | 2016-04-05 |
JP6006247B2 (ja) | 2016-10-12 |
GB2548511A (en) | 2017-09-20 |
GB2512478B (en) | 2017-08-30 |
JP2016207232A (ja) | 2016-12-08 |
GB201709375D0 (en) | 2017-07-26 |
US20160216967A1 (en) | 2016-07-28 |
US20140281196A1 (en) | 2014-09-18 |
GB2548511B (en) | 2018-01-17 |
US10235175B2 (en) | 2019-03-19 |
GB201402964D0 (en) | 2014-04-09 |
KR101594090B1 (ko) | 2016-02-15 |
CN104050026A (zh) | 2014-09-17 |
CN104050026B (zh) | 2018-10-23 |
GB2512478A (en) | 2014-10-01 |
DE102014003671A1 (de) | 2014-09-18 |
KR20140113444A (ko) | 2014-09-24 |
BR102014006021A2 (pt) | 2015-10-20 |
JP2014182795A (ja) | 2014-09-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6526609B2 (ja) | プロセッサ | |
KR102496402B1 (ko) | 사용자-레벨 포크 및 조인 프로세서, 방법, 시스템, 및 명령어 | |
JP6143872B2 (ja) | 装置、方法、およびシステム | |
CN108885586B (zh) | 用于以有保证的完成将数据取出到所指示的高速缓存层级的处理器、方法、系统和指令 | |
JP6373425B2 (ja) | 複数のビットを左にシフトし、複数の1を複数の下位ビットにプルインするための命令 | |
CN106293626B (zh) | 持久性提交处理器、方法、装置、制品和电子设备 | |
KR101806279B1 (ko) | 명령어 순서 강제 명령어들의 쌍들, 프로세서들, 방법들, 및 시스템들 | |
US11354128B2 (en) | Optimized mode transitions through predicting target state | |
US10579378B2 (en) | Instructions for manipulating a multi-bit predicate register for predicating instruction sequences | |
US10877765B2 (en) | Apparatuses and methods to assign a logical thread to a physical thread | |
US9880839B2 (en) | Instruction that performs a scatter write | |
CN112148106A (zh) | 用于处理器的混合预留站的系统、装置和方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20170220 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20170220 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20180508 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20180807 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20181005 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20181108 |
|
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: 20190409 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20190508 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6526609 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |