JP2017532643A - 永続ストアフェンスプロセッサ、方法、システム、及び命令 - Google Patents
永続ストアフェンスプロセッサ、方法、システム、及び命令 Download PDFInfo
- Publication number
- JP2017532643A JP2017532643A JP2017510898A JP2017510898A JP2017532643A JP 2017532643 A JP2017532643 A JP 2017532643A JP 2017510898 A JP2017510898 A JP 2017510898A JP 2017510898 A JP2017510898 A JP 2017510898A JP 2017532643 A JP2017532643 A JP 2017532643A
- Authority
- JP
- Japan
- Prior art keywords
- persistent
- instruction
- store
- processor
- data
- 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
- 230000002085 persistent effect Effects 0.000 title claims abstract description 450
- 238000000034 method Methods 0.000 title claims abstract description 76
- 230000015654 memory Effects 0.000 claims abstract description 155
- 230000004044 response Effects 0.000 claims abstract description 20
- 238000004519 manufacturing process Methods 0.000 claims abstract description 7
- 239000000872 buffer Substances 0.000 claims description 122
- 238000012545 processing Methods 0.000 claims description 15
- 238000010586 diagram Methods 0.000 description 41
- 230000002688 persistence Effects 0.000 description 18
- 238000007667 floating Methods 0.000 description 12
- 238000007726 management method Methods 0.000 description 10
- 230000008859 change Effects 0.000 description 9
- 238000006243 chemical reaction Methods 0.000 description 9
- 238000004891 communication Methods 0.000 description 9
- 230000007246 mechanism Effects 0.000 description 9
- 238000013500 data storage Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 8
- 239000003795 chemical substances by application Substances 0.000 description 7
- 238000011010 flushing procedure Methods 0.000 description 7
- 230000008901 benefit Effects 0.000 description 6
- 238000013461 design Methods 0.000 description 6
- 230000003287 optical effect Effects 0.000 description 6
- 230000003068 static effect Effects 0.000 description 6
- 230000006835 compression Effects 0.000 description 5
- 238000007906 compression Methods 0.000 description 5
- 238000001693 membrane extraction with a sorbent interface Methods 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 238000011084 recovery Methods 0.000 description 4
- 238000013519 translation Methods 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 230000008878 coupling Effects 0.000 description 2
- 238000010168 coupling process Methods 0.000 description 2
- 238000005859 coupling reaction Methods 0.000 description 2
- 230000010076 replication Effects 0.000 description 2
- 239000000758 substrate Substances 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification 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
- 230000000644 propagated effect Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 239000011343 solid material Substances 0.000 description 1
- 239000011232 storage 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
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30145—Instruction analysis, e.g. decoding, instruction word fields
-
- 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/0875—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with dedicated cache, e.g. instruction or stack
-
- 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/3004—Arrangements for executing specific machine instructions to perform operations on memory
- G06F9/30043—LOAD or STORE instructions; Clear instruction
-
- 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
- G06F9/3824—Operand accessing
- G06F9/3834—Maintaining memory consistency
-
- 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
- G06F9/3854—Instruction completion, e.g. retiring, committing or graduating
- G06F9/3856—Reordering of instructions, e.g. using queues or age tags
-
- 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
- G06F9/3854—Instruction completion, e.g. retiring, committing or graduating
- G06F9/3858—Result writeback, i.e. updating the architectural state or memory
- G06F9/38585—Result writeback, i.e. updating the architectural state or memory with result invalidation, e.g. nullification
-
- 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/466—Transaction processing
-
- 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/45—Caching of specific data in cache memory
- G06F2212/452—Instruction code
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Advance Control (AREA)
- Executing Machine-Instructions (AREA)
Abstract
Description
プロセッサコアは異なる態様で、異なる目的のために、異なるプロセッサで実装されてよい。例えば、そのようなコアの実装は、1)汎用計算向けの汎用インオーダコア、2)汎用計算向けの高性能汎用アウトオブオーダコア、3)主にグラフィックス及び/又は科学(スループット)計算向けの専用コアを含んでよい。複数の異なるプロセッサの実装は、1)1つ又は複数の汎用計算向け汎用インオーダコア、及び/又は、1つ又は複数の汎用計算向け汎用アウトオブオーダコアを含むCPU、並びに2)主にグラフィックス及び/又は科学(スループット)向けの1つ又は複数の専用コアを含むコプロセッサを含んでよい。そのような複数の異なるプロセッサは異なるコンピュータシステムアーキテクチャをもたらし、それは、1)CPUと別のチップにあるコプロセッサ、2)CPUと同じパッケージ内の別のダイにあるコプロセッサ、3)CPUと同じダイにあるコプロセッサ(この場合、そのようなコプロセッサは、統合グラフィクス及び/又は科学(スループット)ロジックなどの専用ロジック、又は専用コアと呼ばれることがある)、及び4)説明されたCPU(アプリケーションコア又はアプリケーションプロセッサと呼ばれることがある)、上述されたコプロセッサ、及び追加機能を同じダイに含み得るシステムオンチップを含んでよい。例示的なコアアーキテクチャが次に説明され、その後に例示的プロセッサ及びコンピュータアーキテクチャの説明が続く。
[インオーダコア及びアウトオブオーダコアのブロック図]
図10Aは、本発明の複数の実施形態に従って、例示的なインオーダパイプラインと、例示的なレジスタリネーミング、アウトオブオーダ発行/実行パイプラインとの両方を図示するブロック図である。図10Bは、本発明の複数の実施形態に従って、インオーダアーキテクチャコアの例示的な実施形態と、プロセッサに含まれる例示的なレジスタリネーミング、アウトオブオーダ発行/実行アーキテクチャコアとの両方を図示するブロック図である。図10A及び図10Bの実線で示されたボックスは、インオーダパイプライン及びインオーダコアを図示する。一方、破線で示されたボックスの任意の追加は、レジスタリネーミング、アウトオブオーダ発行/実行パイプライン及びコアを図示する。インオーダ態様がアウトオブオーダ態様のサブセットであると仮定して、アウトオブオーダ態様が説明される。
図11A及び図11Bは、具体的な例示的インオーダコアアーキテクチャのブロック図を示し、コアはチップ内のいくつかのロジックブロック(同じタイプ及び/又は別のタイプの他の複数のコアを含む)の1つであってよい。複数のロジックブロックは、高帯域幅の相互接続ネットワーク(例えば、リングネットワーク)を通じて、何らかの固定機能ロジック、メモリI/Oインタフェース、及び他の必要なI/Oロジックとアプリケーションに応じて通信する。
図12は、本発明の複数の実施形態によるプロセッサ1200のブロック図であり、これは複数のコアを有してよく、統合メモリコントローラを有してよく、統合グラフィクスを有してよい。図12の実線で示されたボックスは、単一のコア1202A、システムエージェント1210、1つ又は複数のバスコントローラユニット1216のセットを有するプロセッサ1200を示す。一方、破線で示されたボックスの任意の追加は、複数のコア1202A〜1202N、システムエージェントユニット1210内の1つ又は複数の統合メモリコントローラユニット1214のセット、及び専用ロジック1208を有する代替のプロセッサ1200を示す。
図13〜図16は、例示的なコンピュータアーキテクチャのブロック図である。ラップトップ、デスクトップ、ハンドヘルド型PC、携帯情報端末、エンジニアリングワークステーション、サーバ、ネットワークデバイス、ネットワークハブ、スイッチ、組み込みプロセッサ、デジタル信号プロセッサ(DSP)、グラフィックスデバイス、ビデオゲームデバイス、セットトップボックス、マイクロコントローラ、携帯電話、ポータブルメディアプレイヤ、ハンドヘルドデバイス、及び様々な他の電子デバイス用の、当技術分野で知られている他のシステム設計及び構成もまた適している。概して、本明細書に開示されるような、プロセッサ及び/又は他の実行ロジックを組み込むことができる多様なシステム又は電子デバイスが一般に適している。
いくつかの場合において、命令変換器が、ソース命令セットからターゲット命令セットに命令を変換するのに用いられてよい。例えば、命令変換器は命令をコアにより処理される1つ又は複数の他の命令にトランスレート(例えば、スタティックバイナリ変換、ダイナミックコンパイルを含むダイナミックバイナリ変換を用いる)、モーフィング、エミュレート、又は別な方法で変換してよい。命令変換器は、ソフトウェア、ハードウェア、ファームウェア、又はこれらの組み合わせで実装されてよい。命令変換器はプロセッサ上に、プロセッサから離れて、又は一部がプロセッサ上に且つ一部がプロセッサから離れて存在してよい。
以下の複数の例は、更なる実施形態に関する。複数の例における詳細は、1つ又は複数の実施形態のどこでも用いられてよい。
Claims (25)
- 永続ストアフェンス命令をデコードするデコードユニットと、
前記デコードユニットに結合されたメモリサブシステムモジュールと
を備え、
前記メモリサブシステムモジュールは、前記永続ストアフェンス命令に応答して、元のプログラム順序において前記永続ストアフェンス命令の後に発生する全ての後続のストア命令のデータが永続ストレージに永続的に格納される前に、前記永続ストアフェンス命令に対応する所定のデータが前記永続ストレージに永続的に格納されることを保証する
プロセッサ。 - 前記永続ストアフェンス命令は、前記所定のデータを有するソースオペランドを示し、且つ前記所定のデータが格納される前記永続ストレージにおける位置を示すストア及び永続ストアフェンス命令を含む
請求項1に記載のプロセッサ。 - 前記所定のデータは、ストア命令のソースオペランドに含まれ、暗黙的に前記永続ストアフェンス命令は、前記元のプログラム順序において前記永続ストアフェンス命令の直前及び直後のうち一方にある、
請求項1に記載のプロセッサ。
- 前記メモリサブシステムモジュールは、前記永続ストアフェンス命令に応答して、前記元のプログラム順序において前記永続ストアフェンス命令の前に発生する全ての以前のストア命令のデータが、前記後続のストア命令の前記データの前に前記永続ストレージに永続的に格納されることを保証しない、
請求項1に記載のプロセッサ。 - 1つ又は複数のキャッシュのセットを更に備え、
前記メモリサブシステムモジュールは、前記永続ストアフェンス命令に応答して、前記所定のデータに前記1つ又は複数のキャッシュの前記セットをバイパスさせる、
請求項1に記載のプロセッサ。 - 永続ストアフェンスバッファを更に備え、
前記メモリサブシステムモジュールは、前記永続ストアフェンス命令に応答して、前記所定のデータを前記永続ストアフェンスバッファに格納されるようにさせる、
請求項1から5のいずれか一項に記載のプロセッサ。 - キャッシュラインをキャッシュから移す意図を示す信号に基づき、前記キャッシュラインが前記キャッシュから移される前に、少なくとも1つのキャッシュラインを前記永続ストアフェンスバッファから前記永続ストレージに格納する永続ストアフェンスバッファ管理ユニットを更に備える
請求項6に記載のプロセッサ。 - 前記永続ストアフェンスバッファは、第2の永続ストアフェンス命令に対応する第2のデータが、前記所定のデータと同じ前記永続ストアフェンスバッファのキャッシュラインに格納されることを可能にするライトコンバインバッファを含む
請求項6に記載のプロセッサ。 - 前記プロセッサの命令セットは、前記永続ストアフェンスバッファからデータを読み出すユーザレベルのロード命令を含まない
請求項6に記載のプロセッサ。 - 前記永続ストアフェンスバッファは、キャッシュコヒーレンシプロトコルを実装しない
請求項6に記載のプロセッサ。 - 前記プロセッサは、前記プロセッサを前記永続ストレージに結合するのに用いられる相互接続上に送信される1つ又は複数のサイクルの共通セットにおいて、前記所定のデータを有するキャッシュラインと、第2の永続ストアフェンス命令に対応する第2のデータとを前記永続ストレージに格納する
請求項1から5のいずれか一項に記載のプロセッサ。 - プロセッサにおける方法であって、
永続ストアフェンス命令を受信する段階と、
前記永続ストアフェンス命令に応答して、元のプログラム順序において前記永続ストアフェンス命令の後に発生する全ての後続のストア命令のデータが永続ストレージに永続的に格納される前に、前記永続ストアフェンス命令に対応する所定のデータが前記永続ストレージに永続的に格納されることを保証する段階と
を備える
方法。 - 前記永続ストアフェンス命令を受信する段階は、前記所定のデータを有するソースオペランドを示し、且つ前記所定のデータが格納される前記永続ストレージにおける位置を示すストア及び永続ストアフェンス命令を受信する段階を含む
請求項12に記載の方法。 - 前記所定のデータを有するソースオペランドを示すストア命令を受信する段階を更に備え、
前記ストア命令は、前記元のプログラム順序において前記永続ストアフェンス命令の直前及び直後のうち一方にある
請求項12に記載の方法。 - 前記永続ストアフェンス命令に応答して、前記所定のデータに前記プロセッサの1つ又は複数のキャッシュのセットをバイパスさせる段階を更に備える
請求項12に記載の方法。 - 保証する段階は、前記後続のストア命令の前記データが前記永続ストレージに永続的に格納される前に、前記所定のデータが前記永続ストレージに永続的に格納されることを保証する段階を含み、全ての前記後続のストア命令の前記データが前記永続ストレージに永続的に格納される前に、前記元のプログラム順序において前記永続ストアフェンス命令の前に発生する全ての以前のストア命令のデータが前記永続ストレージに永続的に格納されることを保証することはない
請求項12に記載の方法。 - 相互接続上に送信される1つ又は複数のサイクルの共通セットにおいて、前記所定のデータを有するキャッシュラインと、第2の永続ストアフェンス命令に対応する第2のデータとを前記永続ストレージに格納する段階を更に備える
請求項12に記載の方法。 - 前記永続ストアフェンス命令に応答して、前記所定のデータを永続ストアフェンスバッファに格納する段階を更に備え、
前記プロセッサの命令セットは、データを前記永続ストアフェンスバッファからロードするユーザレベルのロード命令を含まない
請求項12に記載の方法。 - キャッシュラインをキャッシュから移す意図を示す信号を受信する段階と、
前記信号を受信した後、且つ前記キャッシュラインが前記キャッシュから前記永続ストレージに移される前に、少なくとも1つのキャッシュラインを前記永続ストアフェンスバッファから前記永続ストレージに格納する段階と
を更に備える
請求項18に記載の方法。 - 前記所定のデータを前記永続ストレージのログ先行書き込みに格納する段階を更に備える
請求項12に記載の方法。 - 複数の命令を処理するシステムであって、
相互接続と、
前記相互接続に結合された永続ストレージと、
前記相互接続に結合されたプロセッサと
を備え、
前記永続ストレージはログ先行書き込みアルゴリズムの命令のセットを格納し、前記命令のセットは、前記永続ストレージにおける位置を示し、且つ前記ログ先行書き込みアルゴリズムにより所定のデータを前記永続ストレージのログ先行書き込みに格納するのに用いられるストア及び永続ストアフェンス命令を含み、
前記プロセッサは、前記ストア及び永続ストアフェンス命令を受信し、前記ストア及び永続ストアフェンス命令に応答して、元のプログラム順序において前記ログ先行書き込みアルゴリズムの前記ストア及び永続ストアフェンス命令の後に発生する全ての後続のストア命令のデータが前記永続ストレージに永続的に格納される前に、前記所定のデータが前記永続ストレージに永続的に格納されることを保証する
システム。 - 前記ストア及び永続ストアフェンス命令は、前記所定のデータに前記プロセッサの1つ又は複数のキャッシュのセットをバイパスさせる非一時的命令を含む
請求項21に記載のシステム。 - 請求項12から20のいずれか一項に記載の方法を実行するための手段を備える
装置。 - 機械により実行されると、請求項12から20のいずれか一項に記載の方法を前記機械に実行させるよう動作可能な命令を格納する非一時的機械可読媒体を備える
製造物品。 - 相互接続と、
前記相互接続に結合された請求項1から11のいずれか一項に記載のプロセッサと、
前記相互接続に結合された永続ストレージと
を備え、
前記永続ストレージは、前記永続ストアフェンス命令を含むログ先行書き込みアルゴリズムを格納し、データを前記永続ストレージのログ先行書き込みに格納するのに前記永続ストアフェンス命令を用いる
電子デバイス。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/498,178 US10489158B2 (en) | 2014-09-26 | 2014-09-26 | Processors, methods, systems, and instructions to selectively fence only persistent storage of given data relative to subsequent stores |
US14/498,178 | 2014-09-26 | ||
PCT/US2015/047741 WO2016048592A1 (en) | 2014-09-26 | 2015-08-31 | Persistent store fence processors, methods, systems, and instructions |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2017532643A true JP2017532643A (ja) | 2017-11-02 |
Family
ID=55581784
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017510898A Pending JP2017532643A (ja) | 2014-09-26 | 2015-08-31 | 永続ストアフェンスプロセッサ、方法、システム、及び命令 |
Country Status (7)
Country | Link |
---|---|
US (1) | US10489158B2 (ja) |
EP (1) | EP3198403A4 (ja) |
JP (1) | JP2017532643A (ja) |
KR (1) | KR102282135B1 (ja) |
CN (1) | CN106575218B (ja) |
TW (1) | TWI598821B (ja) |
WO (1) | WO2016048592A1 (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2022518351A (ja) * | 2019-01-31 | 2022-03-15 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 入出力ストア命令をハンドリングする方法、システム、およびプログラム |
US11762659B2 (en) | 2019-01-31 | 2023-09-19 | International Business Machines Corporation | Handling an input/output store instruction |
Families Citing this family (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 |
US9971686B2 (en) | 2015-02-23 | 2018-05-15 | Intel Corporation | Vector cache line write back processors, methods, systems, and instructions |
US10303477B2 (en) | 2015-06-26 | 2019-05-28 | Intel Corporation | Persistent commit processors, methods, systems, and instructions |
JP6674085B2 (ja) * | 2015-08-12 | 2020-04-01 | 富士通株式会社 | 演算処理装置及び演算処理装置の制御方法 |
US10127243B2 (en) * | 2015-09-22 | 2018-11-13 | International Business Machines Corporation | Fast recovery using self-describing replica files in a distributed storage system |
US9747174B2 (en) * | 2015-12-11 | 2017-08-29 | Microsoft Technology Licensing, Llc | Tail of logs in persistent main memory |
US10254967B2 (en) * | 2016-01-13 | 2019-04-09 | Sandisk Technologies Llc | Data path control for non-volatile memory |
US10324650B2 (en) * | 2016-09-23 | 2019-06-18 | Advanced Micro Devices, Inc. | Scoped persistence barriers for non-volatile memories |
US11216396B2 (en) | 2016-09-29 | 2022-01-04 | Intel Corporation | Persistent memory write semantics on PCIe with existing TLP definition |
CN107885671B (zh) * | 2016-09-30 | 2021-09-14 | 华为技术有限公司 | 一种非易失性内存的持久化方法和计算设备 |
US10528267B2 (en) | 2016-11-11 | 2020-01-07 | Sandisk Technologies Llc | Command queue for storage operations |
US10528286B2 (en) | 2016-11-11 | 2020-01-07 | Sandisk Technologies Llc | Interface for non-volatile memory |
US10528255B2 (en) | 2016-11-11 | 2020-01-07 | Sandisk Technologies Llc | Interface for non-volatile memory |
US10409603B2 (en) * | 2016-12-30 | 2019-09-10 | Intel Corporation | Processors, methods, systems, and instructions to check and store indications of whether memory addresses are in persistent memory |
US11106468B2 (en) * | 2017-05-23 | 2021-08-31 | Eta Scale Ab | System and method for non-speculative reordering of load accesses |
US11436087B2 (en) * | 2017-05-31 | 2022-09-06 | Everspin Technologies, Inc. | Systems and methods for implementing and managing persistent memory |
US10282298B2 (en) | 2017-06-13 | 2019-05-07 | Microsoft Technology Licensing, Llc | Store buffer supporting direct stores to a coherence point |
US10303603B2 (en) * | 2017-06-13 | 2019-05-28 | Microsoft Technology Licensing, Llc | Low power multi-core coherency |
US10936441B2 (en) | 2017-12-15 | 2021-03-02 | Microsoft Technology Licensing, Llc | Write-ahead style logging in a persistent memory device |
US11016669B2 (en) * | 2018-05-01 | 2021-05-25 | Qualcomm Incorporated | Persistent write data for energy-backed memory |
CN110647480B (zh) * | 2018-06-26 | 2023-10-13 | 华为技术有限公司 | 数据处理方法、远程直接访存网卡和设备 |
US10915404B2 (en) * | 2018-11-02 | 2021-02-09 | Arm Limited | Persistent memory cleaning |
US20200210186A1 (en) * | 2018-12-27 | 2020-07-02 | Intel Corporation | Apparatus and method for non-spatial store and scatter instructions |
US11106370B2 (en) * | 2019-07-02 | 2021-08-31 | Micron Technology, Inc. | Changing of memory components to be used for a stripe based on an endurance condition |
US11416397B2 (en) * | 2019-10-14 | 2022-08-16 | Intel Corporation | Global persistent flush |
US11392380B2 (en) * | 2019-12-28 | 2022-07-19 | Intel Corporation | Apparatuses, methods, and systems to precisely monitor memory store accesses |
CN111857825A (zh) | 2020-07-20 | 2020-10-30 | 北京百度网讯科技有限公司 | 指令执行方法、装置、电子设备和计算机可读存储介质 |
US11847048B2 (en) * | 2020-09-24 | 2023-12-19 | Advanced Micro Devices, Inc. | Method and apparatus for providing persistence to remote non-volatile memory |
US11853605B2 (en) | 2021-09-17 | 2023-12-26 | Micron Technology, Inc. | Database persistence |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008512785A (ja) * | 2004-09-10 | 2008-04-24 | カビウム・ネットワークス | マルチコアプロセッサの格納命令の順序づけ |
JPWO2008155829A1 (ja) * | 2007-06-20 | 2010-08-26 | 富士通株式会社 | 情報処理装置,キャッシュメモリ制御装置およびメモリアクセス順序保証方法 |
US20140281240A1 (en) * | 2013-03-15 | 2014-09-18 | Thomas Willhalm | Instructions To Mark Beginning and End Of Non Transactional Code Region Requiring Write Back To Persistent Storage |
US20140281196A1 (en) * | 2013-03-15 | 2014-09-18 | Martin G. Dixon | Processors, methods, and systems to relax synchronization of accesses to shared memory |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1996017291A1 (en) | 1994-12-02 | 1996-06-06 | Intel Corporation | Microprocessor with packing operation of composite operands |
US6073210A (en) | 1998-03-31 | 2000-06-06 | Intel Corporation | Synchronization of weakly ordered write combining operations using a fencing mechanism |
US6678810B1 (en) * | 1999-12-30 | 2004-01-13 | Intel Corporation | MFENCE and LFENCE micro-architectural implementation method and system |
US6708269B1 (en) | 1999-12-30 | 2004-03-16 | Intel Corporation | Method and apparatus for multi-mode fencing in a microprocessor system |
US6546462B1 (en) | 1999-12-30 | 2003-04-08 | Intel Corporation | CLFLUSH micro-architectural implementation method and system |
US6978360B2 (en) | 2001-05-11 | 2005-12-20 | International Business Machines Corporation | Scalable processor |
US7243200B2 (en) | 2004-07-15 | 2007-07-10 | International Business Machines Corporation | Establishing command order in an out of order DMA command queue |
US8909871B2 (en) | 2006-08-03 | 2014-12-09 | International Business Machines Corporation | Data processing system and method for reducing cache pollution by write stream memory access patterns |
US8219741B2 (en) | 2008-10-24 | 2012-07-10 | Microsoft Corporation | Hardware and operating system support for persistent memory on a memory bus |
US10430298B2 (en) | 2010-10-28 | 2019-10-01 | Microsoft Technology Licensing, Llc | Versatile in-memory database recovery using logical log records |
US10949415B2 (en) * | 2011-03-31 | 2021-03-16 | International Business Machines Corporation | Logging system using persistent memory |
WO2013147820A1 (en) | 2012-03-29 | 2013-10-03 | Intel Corporation | System and method for managing persistence with a multi-level memory hierarchy including non-volatile memory |
US9081606B2 (en) | 2012-11-13 | 2015-07-14 | International Business Machines Corporation | Asynchronous persistent stores for transactions |
US9535836B2 (en) * | 2013-03-13 | 2017-01-03 | Hewlett Packard Enterprise Development Lp | Non-volatile memory update tracking |
US9367472B2 (en) * | 2013-06-10 | 2016-06-14 | Oracle International Corporation | Observation of data in persistent memory |
US9423959B2 (en) | 2013-06-29 | 2016-08-23 | Intel Corporation | Method and apparatus for store durability and ordering in a persistent memory architecture |
CN105339908B (zh) * | 2013-07-26 | 2018-09-11 | 英特尔公司 | 用于支持持久存储器的方法和装置 |
US20150095578A1 (en) * | 2013-09-27 | 2015-04-02 | Kshitij Doshi | Instructions and logic to provide memory fence and store functionality |
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 |
-
2014
- 2014-09-26 US US14/498,178 patent/US10489158B2/en active Active
-
2015
- 2015-08-20 TW TW104127169A patent/TWI598821B/zh not_active IP Right Cessation
- 2015-08-31 EP EP15845271.4A patent/EP3198403A4/en not_active Withdrawn
- 2015-08-31 CN CN201580045704.3A patent/CN106575218B/zh active Active
- 2015-08-31 KR KR1020177005384A patent/KR102282135B1/ko active IP Right Grant
- 2015-08-31 WO PCT/US2015/047741 patent/WO2016048592A1/en active Application Filing
- 2015-08-31 JP JP2017510898A patent/JP2017532643A/ja active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008512785A (ja) * | 2004-09-10 | 2008-04-24 | カビウム・ネットワークス | マルチコアプロセッサの格納命令の順序づけ |
JPWO2008155829A1 (ja) * | 2007-06-20 | 2010-08-26 | 富士通株式会社 | 情報処理装置,キャッシュメモリ制御装置およびメモリアクセス順序保証方法 |
US20140281240A1 (en) * | 2013-03-15 | 2014-09-18 | Thomas Willhalm | Instructions To Mark Beginning and End Of Non Transactional Code Region Requiring Write Back To Persistent Storage |
US20140281196A1 (en) * | 2013-03-15 | 2014-09-18 | Martin G. Dixon | Processors, methods, and systems to relax synchronization of accesses to shared memory |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2022518351A (ja) * | 2019-01-31 | 2022-03-15 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 入出力ストア命令をハンドリングする方法、システム、およびプログラム |
US11762659B2 (en) | 2019-01-31 | 2023-09-19 | International Business Machines Corporation | Handling an input/output store instruction |
JP7479373B2 (ja) | 2019-01-31 | 2024-05-08 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 入出力ストア命令をハンドリングする方法、システム、およびプログラム |
Also Published As
Publication number | Publication date |
---|---|
TW201624279A (zh) | 2016-07-01 |
CN106575218B (zh) | 2020-06-26 |
EP3198403A4 (en) | 2018-05-30 |
WO2016048592A1 (en) | 2016-03-31 |
US10489158B2 (en) | 2019-11-26 |
CN106575218A (zh) | 2017-04-19 |
KR102282135B1 (ko) | 2021-07-26 |
EP3198403A1 (en) | 2017-08-02 |
KR20170039237A (ko) | 2017-04-10 |
US20160092223A1 (en) | 2016-03-31 |
TWI598821B (zh) | 2017-09-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102282135B1 (ko) | 영구적 저장 펜스 프로세서, 방법, 시스템, 및 명령어 | |
US11494194B2 (en) | Processor having multiple cores, shared core extension logic, and shared core extension utilization instructions | |
CN108292221B (zh) | 事务结束加上持续性提交指令、处理器、方法和系统 | |
US10409603B2 (en) | Processors, methods, systems, and instructions to check and store indications of whether memory addresses are in persistent memory | |
US9870209B2 (en) | Instruction and logic for reducing data cache evictions in an out-of-order processor | |
US20170097826A1 (en) | System, Method, and Apparatus for Improving Throughput of Consecutive Transactional Memory Regions | |
US9471494B2 (en) | Method and apparatus for cache line write back operation | |
US10768680B2 (en) | Hardware apparatuses and methods to perform transactional power management | |
US20150134932A1 (en) | Structure access processors, methods, systems, and instructions | |
KR20170001568A (ko) | 영구 커밋 프로세서들, 방법들, 시스템들 및 명령어들 | |
TW202314486A (zh) | 原子式儲存至寬於原生支援資料寬度之記憶體資料的處理器、方法、系統與指令 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20180313 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20180612 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20180810 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20180913 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20190305 |