JP2018523235A - Dmb操作を伴うロード/ストア操作を使用するロード獲得/ストア解放命令の実装 - Google Patents

Dmb操作を伴うロード/ストア操作を使用するロード獲得/ストア解放命令の実装 Download PDF

Info

Publication number
JP2018523235A
JP2018523235A JP2018502709A JP2018502709A JP2018523235A JP 2018523235 A JP2018523235 A JP 2018523235A JP 2018502709 A JP2018502709 A JP 2018502709A JP 2018502709 A JP2018502709 A JP 2018502709A JP 2018523235 A JP2018523235 A JP 2018523235A
Authority
JP
Japan
Prior art keywords
load
memory
operations
store
barrier operation
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
JP2018502709A
Other languages
English (en)
Other versions
JP2018523235A5 (ja
JP6739513B2 (ja
Inventor
マシュー・アシュクラフト
クリストファー・ネルソン
Original Assignee
マコム・コネクティビティ・ソリューションズ・エルエルシー
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by マコム・コネクティビティ・ソリューションズ・エルエルシー filed Critical マコム・コネクティビティ・ソリューションズ・エルエルシー
Publication of JP2018523235A publication Critical patent/JP2018523235A/ja
Publication of JP2018523235A5 publication Critical patent/JP2018523235A5/ja
Application granted granted Critical
Publication of JP6739513B2 publication Critical patent/JP6739513B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • G06F9/30043LOAD or STORE instructions; Clear instruction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30076Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
    • G06F9/30087Synchronisation or serialisation instructions

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Executing Machine-Instructions (AREA)
  • Advance Control (AREA)
  • Stored Programmes (AREA)

Abstract

縮小命令セットコンピューティング(RISC)において使用されるロード獲得およびストア解放セマンティクスを単純化するためのシステムおよび方法が提供される。セマンティクスをマイクロオペレーションか、または複雑な機械命令を実装するために使用される低レベルの命令に変換することは、複雑な新しいメモリ操作を実装する必要を回避し得る。ロードおよびストア操作に関連して1つまたは複数のデータメモリバリア操作を使用することは、後続の命令が実行される前に先の命令が実行され、完了されることをデータメモリバリアが保証するので、十分な順序付けを提供することができる。

Description

本開示は、コンピューティング環境におけるメモリ操作の順序付けに関する。
ロックのないコンピューティングにおいては、スレッドが共有メモリを操作し得る2つの方法があり、スレッドが、リソースのために互いに競合する可能性があるか、または情報をスレッドからスレッドへと協働して渡す可能性がある。獲得および解放セマンティクス(semantics)が、情報をスレッドからスレッドへと協働して渡すことを達成するために使用される。獲得および解放セマンティクスは、メモリ操作がエラーを防止するために正しく順序付けられることを保証するための構造的システムを提供する。ストア解放命令は、すべての先の命令が完了されることを保証し、ロード獲得命令は、すべての以降の命令がそのロード獲得命令が完了した後にのみ完了することになることを保証する。獲得および解放セマンティクスを使用してメモリ操作を適切に順序付けるためには、ストア解放およびロード獲得命令の複雑な組合せが必要である。
本明細書において開示されるのは、縮小命令セットコンピューティング(RISC)において使用されるロード獲得およびストア解放セマンティクスを単純化するためのシステムおよび方法である。
実施態様は、本明細書において開示される命令に関連してメモリ操作を順序付けることを提供する。典型的な獲得付きロード(load with acquire)命令は、獲得付きロードの後のメモリ操作が獲得付きロードの後に順序付けられることのみを必要とする--その典型的な獲得付きロード命令は、(獲得付きロードと後続の命令との両方に関連して)獲得付きロードの前の命令にいかなる順序も課さない。実施形態において、獲得付きロードは、獲得付きロードの前のおよび獲得付きロードを含むすべてのアクセスが獲得付きロードの後の命令からのすべてのアクセスの前に順序付けられることを保証する、ロード操作に関連して使用されるデータメモリバリアを含む。
同様に、通常の解放付きストア(store with release)命令は、解放付きストアからのアクセスとすべての先の命令のアクセスとの間に順序付けを課す(しかし、後続の命令には課さない)。しかし、実施形態においては、解放付きストアの初めのデータメモリバリアが、先のアクセスと解放付きストアに関連するアクセスとの間に強い順序付けを与える。
一実施態様においては、システムは、操作を実行するためのコンピュータ実行可能命令を実行するプロセッサを含む。命令は、メモリ操作の順序付けを実行する獲得付きロード命令を含む可能性があり、獲得付きロード命令は、データメモリバリア操作が後に続くロード操作を含む。
別の実施態様においては、方法は、プロセッサにおいて命令を実行するステップを含む。方法は、メモリ操作の順序付けを実行するための獲得付きロード命令を含む可能性があり、獲得付きロード命令を実行するステップは、データメモリバリア操作が後に続くロード操作を実行することを含む。
一実施態様においては、システムは、操作を実行するためのコンピュータ実行可能命令を実行するプロセッサを含む。命令は、メモリ操作の順序付けを実行する解放付きストア命令を含む可能性があり、解放付きストア命令は、第2のデータメモリバリア操作が後に続くストア操作が後に続く第1のデータメモリバリア操作を含む。
一実施態様においては、方法は、プロセッサにおいて命令を実行するステップを含む。方法は、メモリ操作の順序付けを実行するために解放付きストア命令を含む可能性があり、解放付きストア命令を実行するステップは、第2のデータメモリバリア操作を実行するステップが後に続く、ストア操作を実行するステップが後に続く、第1のデータメモリバリア操作を実行するステップを含む。
本明細書において説明される様々な態様によるメモリ操作をフィルタリングするシステムの実施形態を示すブロック図である。 本明細書において説明される様々な態様によるメモリ操作をフィルタリングするシステムの実施形態を示すブロック図である。 本明細書において説明される様々な態様によるメモリ操作をフィルタリングするシステムの実施形態を示すブロック図である。 本明細書において説明される様々な態様によるメモリ操作をフィルタリングするシステムの実施形態を示すブロック図である。 獲得付きロード命令を実行するための方法の実施形態の流れ図である。 解放付きストア命令を実行するための方法の実施形態の流れ図である。 データメモリバリアを使用してメモリ操作をフィルタリングするための方法の実施形態の流れ図である。 本明細書において説明される1つまたは複数の態様に関連して実装され得る電子コンピューティング環境のブロック図である。 本明細書において説明される様々な態様に関連して動作し得る可能性があるデータ通信ネットワークのブロック図である。
様々な実施形態が、縮小命令セットコンピューティング(RISC)において使用されるロード獲得およびストア解放セマンティクスを単純化するシステムを提供する。ロックのないコンピューティングにおいては、スレッドが共有メモリを操作し得る2つの方法があり、スレッドが、リソースのために互いに競合する可能性があるか、または情報をスレッドからスレッドへと協働して渡す可能性がある。しかしながら、これらのセマンティクスは、複雑であり、特殊なセマンティクスを単純なデータメモリバリアによって置き換えることは、メモリの順序付けのプロセスを単純化する可能性がある。セマンティクスをマイクロオペレーションか、または複雑な機械命令を実装するために使用される低レベルの命令に変換することは、複雑な新しいメモリ操作を実装する必要を回避し得る。ロードおよびストア命令に関連してデータメモリバリアを使用することは、単純な総当たりの(brute force)順序付け操作を使用して十分な順序付けを提供することができる。
本開示において使用されるとき、用語「命令」、「操作」、および「アクセス」は、別々のプロセスを指し、交換可能でない。命令が、1つまたは複数の操作からなる一方、操作は、ゼロ以上のメモリアクセスまたはバリアを含む可能性がある。例として、獲得付きロード命令は、2つの操作(ロード操作およびバリア操作)を生成する。このバリアは、すべてのメモリアクセスを2つのグループに分ける。第1のグループは、獲得付きロードの前のすべての命令からのアクセスと、獲得付きロードに属するロード操作からのアクセスとを含む。第2のグループは、獲得付きロード命令の後のすべての命令からのアクセスを含む。
図1は、RISCプロセッサ、処理環境またはアーキテクチャ内でデータメモリバリアを使用してメモリ操作をフィルタリングするシステム100を示す。RISCプロセッサは、ARMプロセッサおよび特にこの実施形態においてはARMv8プロセッサの変化型を含み得る。示されるように、システム100は、システム100によるコンピュータ実行可能命令および/またはコンポーネントの操作および/または実行を容易にするためにプロセッサ104に通信可能なように接続され得るおよび/または動作可能なように接続され得るロード/ストアコンポーネント102と、たとえば、プロセッサ104を利用してシステム100によって実行するためにデータおよび/またはコンピュータ実行可能命令および/またはコンポーネントを記憶するためのメモリ106と、たとえば、プロセッサ104を使用してシステム100によって実行され得るデータおよび/またはコンピュータ実行可能命令および/またはコンポーネントのためのより長期的なストレージを提供するためのストレージコンポーネント108とを含む可能性がある。さらに、示されるように、システム100は、プロセッサ104による1つまたは複数のコンピュータ実行可能命令および/またはコンポーネントの実行によって第1の状態から第2の状態に変形され得る入力110を受け取る可能性があり、第1の状態は、第2の状態と区別され得るおよび/または識別可能であるおよび/または異なる。また、システム100は、システム100による処理を通じて異なる状態または物(thing)に変形されたもの(article)を含む可能性がある出力112を生成し得る。
図2は、本明細書において説明される様々な態様によるメモリ操作をフィルタリングするシステムの実施形態を示すブロック図を示す。システム200は、先の命令202および後続の命令206に対して順序付けの制約を施行するデータメモリバリア204を含む。データメモリバリア204は、CPUまたはコンパイラにバリア操作の前後に発行されたメモリ操作に対して順序付けの制約を施行させる一種のバリア操作である。通常、これは、特定の操作がバリアの前に実行されることを保証され、その他の操作がバリアの後に実行されることを保証されることを意味する。データメモリバリア204は、後続の命令206が実行される前に先の命令202が実行され、完了されることを保証する。先の命令202および後続の命令206は、それぞれ、基本的なロードおよびストア命令にこれらの命令のより複雑な変化型(たとえば、獲得付きロード排他(load-exclusive with acquire)、解放付きストア排他(store-exclusive with release)など)を加えたものの様々な組合せを含み得る。
実施形態において、先の命令202および後続の命令206は、メモリからデータの第1のセットをロードし、データの第2のセットをメモリに記憶するように構成されるロードまたはストア命令を含む可能性がある。データメモリバリア204は、データをロードすることおよび記憶することに関連するメモリ操作を順序付けるように構成される可能性があり、達成される順序付けの種類は、1つまたは複数のロード命令およびストア命令に対するデータメモリのプログラム順序(program order)内の位置に基づく。
図3は、本明細書において説明される様々な態様による獲得付きロード命令によってメモリ操作をフィルタリングするシステムの実施形態を示すブロック図である。システム300は、プログラム順序でデータメモリバリア304に先立つロード操作302を順序付けるデータメモリバリア304を含み得る。データメモリバリア304は、後続の命令が実行される前にロード操作302が実行され、完了されることを保証する。システム300は、ロード操作およびデータメモリバリア操作を含む単純な獲得付きロード命令を示す。その他の実施形態においては、その他のタイプのロード操作が、獲得付きロード排他およびその他の変化型などの異なるロード命令をもたらす可能性がある。
図4は、本明細書において説明される様々な態様による解放付きストア命令を実行するシステムの実施形態を示す。システム400は、プログラム順序でストア操作404の両側にデータメモリバリア402および406を含み得る。データメモリバリア402は、ストア操作404が開始される前にすべての先の命令/操作が終わっていることを保証し、一方、データメモリバリア406は、いずれかの後続のメモリ命令/操作が起こる前にストア操作404が完了されることを保証する。加えて、第1のデータメモリバリア402および第2のデータメモリバリア406は、解放付きストアおよび獲得付きロード命令がプログラム順序で観測されることを保証するための順序をやはり生じる。
図5〜図7の流れ図に関連して説明される対象に従って実装され得る方法は、一連のブロックとして示され、説明され、一部のブロックが本明細書において示され、説明されるものとは異なる順序でおよび/またはその他のブロックと同時に行われる可能性があるので、特許請求の対象はブロックの順序によって限定されないことを理解されたい。さらに、すべての示されるブロックが、以降で説明される方法を実装するために必要とされるわけではない可能性がある。
図5は、獲得付きロード命令を実行するための方法の実施形態の流れ図を示す。方法500は、ロード操作が実行される502から始まる可能性があり、ロード操作は、メモリのデータにアクセスするためのアドレスを指定する。
504において、データメモリバリアが実行される可能性がある。データメモリバリアは、CPUまたはコンパイラにバリア操作の前後に発行されたメモリ操作に対して順序付けの制約を施行させる一種のバリア操作である。通常、これは、特定の操作がバリアの前に実行されることを保証され、その他の操作がバリアの後に実行されることを保証されることを意味する。データメモリバリアは、後続の命令が実行される前に先の命令が実行され、完了されることを保証する。この場合、データメモリバリア操作は、後続の命令が実行される前に先のロード操作が実行され、完了されることを保証する。
図6は、解放付きストア命令を実行するための方法の実施形態の流れ図を示す。方法600は、第1のデータメモリバリア操作が実行される602から始まる可能性がある。データメモリバリアは、CPUまたはコンパイラにバリア操作の前後に発行されたメモリ操作に対して順序付けの制約を施行させる一種のバリア命令である。
604において、ストア操作が実行される。ストア操作は、メモリにデータを書き込むためのアドレスを指定する。606において、第2のデータメモリバリア操作が実行される。2つのデータメモリバリア操作の間にストア操作を有することは、ストア操作が実行される前にすべてのその他のメモリ操作が実行済みであり、完了され、それから、ストア操作が完了されるまでその他のメモリ操作が許されないことを保証する。このようにして、解放付きストア命令は、単純なストアおよびデータメモリバリア操作を使用してメモリ操作の順序付けを実行した。
図7は、データメモリバリア操作を使用してメモリ操作をフィルタリングするための方法の実施形態の流れ図である。方法700は、メモリ操作の第1のセットがバリアの前に実行される702から始まる可能性がある。バリアは、すべての命令がステップ704の前に完了されることを保証し、ステップ704において、メモリ操作の第2のセットが、データメモリバリアの後に実行される。
本明細書において説明される技術は、メモリ操作の順序付けまたはフィルタリングを実行することが望ましい任意の縮小命令セットコンピューティング環境に適用され得る。すべての種類のハンドヘルド、ポータブル、およびその他のコンピューティングデバイスおよびコンピューティングオブジェクトが、様々な実施形態に関連する、つまり、そのメモリ操作の順序付けが実行され得る任意の状況での使用を想定されることを理解されたい。下で図8において説明される下の多目的リモートコンピュータは、例であり、開示される対象は、ネットワーク/バス相互運用性およびインタラクションを有する任意のクライアントを用いて実装され得る。したがって、開示される対象は、ネットワーク化されたホストされるサービスの環境、たとえば、家電製品内に置かれるオブジェクト(object)などのクライアントデバイスが単にネットワーク/バスとのインターフェースとして働くネットワーク化された環境内のチップまたはシステムに実装され得る。
図8は、開示される対象の態様が実装され得る好適なコンピューティングシステム環境800の例を示し、コンピューティングシステム環境800は、デバイスのための好適なコンピューティング環境の一例に過ぎず、開示される対象の使用または機能の範囲に関していかなる限定も示唆するように意図されていない。
図8は、コンピュータ810の形態の多目的コンピューティングデバイスを含む、開示される対象を実装するための例示的なデバイスである。コンピュータ810の構成要素は、処理ユニット820、システムメモリ830、およびシステムメモリを含む様々なシステム構成要素を処理ユニット820に結合するシステムバス821を含み得る。システムバス821は、様々なバスアーキテクチャのいずれかを使用するメモリバスまたはメモリコントローラ、周辺バス、およびローカルバスを含む数種のバス構造のいずれかである可能性がある。通常、コンピュータ810は、様々なコンピュータ可読媒体を含む。
システムメモリ830は、読み出し専用メモリ(ROM)および/またはランダムアクセスメモリ(RAM)などの揮発性および/または不揮発性メモリの形態のコンピュータ記憶媒体を含み得る。起動中などにコンピュータ810内の要素間で情報を転送することに役立つ基礎的なルーチンを含む基本入出力システム(BIOS)が、メモリ830に記憶され得る。コンピュータ810は、その他の取り外し可能な/取り外し可能でない揮発性/不揮発性コンピュータ記憶媒体を含む可能性もある。
ユーザは、キーボード、および通常マウス、トラックボール、またはタッチパッドと呼ばれるポインティングデバイスなどの入力デバイスを通じてコンピュータ810にコマンドおよび情報を入力することができる。
コンピュータ810は、リモートコンピュータ870などの1つまたは複数のその他のリモートコンピュータへの論理接続を使用するネットワーク化されたまたは分散型の環境内で動作することができ、そしてまた、それらのその他のリモートコンピュータは、デバイス810とは異なる媒体の能力を有する可能性がある。
以上に加えて、開示される対象は、開示される対象を実装するように電子デバイスを制御するためのハードウェア、ファームウェア、ソフトウェア、またはこれらの任意の好適な組合せを製造するために典型的な製造、プログラミング、または工学技術を使用して、方法、装置、または製品として実装される可能性がある。コンピュータ可読媒体は、ハードウェア媒体またはソフトウェア媒体を含む可能性があり、媒体は、非一時的媒体または転送媒体を含む可能性がある。
100 システム
102 ロード/ストアコンポーネント
104 プロセッサ
106 メモリ
108 ストレージコンポーネント
110 入力
112 出力
200 システム
202 先の命令
204 データメモリバリア
206 後続の命令
300 システム
302 ロード操作
304 データメモリバリア
400 システム
402 データメモリバリア
404 ストア操作
406 データメモリバリア
800 コンピューティングシステム環境
810 コンピュータ
820 処理ユニット
821 システムバス
830 システムメモリ
840 入力
850 出力、例えば、ディスプレイ
860 ネットワークインターフェース
870 リモートコンピュータ
910,912 サーバオブジェクト
920,922,928 コンピューティングデバイス
924,926 オブジェクト
940 (複数の)データストア
942 通信ネットワーク/バス

Claims (10)

  1. 操作を実行するためのコンピュータ実行可能命令を実行するプロセッサであって、
    前記命令が、メモリ操作の順序付けを実行する獲得付きロード命令を含み、
    前記獲得付きロード命令が、データメモリバリア操作が後に続くロード操作を含む、プロセッサ。
  2. 前記データメモリバリア操作が、前記バリア操作の前に行われるメモリ操作の第1のセットおよび前記バリア操作の後に行われるメモリ操作の第2のセットを含むメモリ操作を順序付ける、請求項1に記載のプロセッサ。
  3. 前記ロード操作が、メモリの第1のデータにアクセスするためのアドレスを指定し、
    前記獲得付きロード命令が、複数のタイプの獲得付きロード命令のうちの少なくとも1つを含み、
    前記データメモリバリア操作が、メモリ操作の順序付けのためにロード獲得セマンティクスのセットを置き換える、請求項1に記載のプロセッサ。
  4. プロセッサにおいて命令を実行するための方法であって、
    メモリ操作の順序付けを実行するために獲得付きロード命令を実行するステップを含み、
    前記獲得付きロード命令を実行するステップが、データメモリバリア操作が後に続くロード操作を実行するステップを含む、方法。
  5. 複数のタイプの獲得付きロード命令を実行するステップをさらに含み、
    前記データメモリバリア操作の実行が、メモリ操作の順序付けのためにロード獲得セマンティクスのセットを置き換え、
    前記ロード操作が、メモリの第1のデータにアクセスするためのアドレスを指定する、請求項4に記載の方法。
  6. 前記データメモリバリア操作が、前記バリア操作の前に行われるメモリ操作の第1のセットおよび前記バリア操作の後に行われるメモリ操作の第2のセットを含むメモリ操作を順序付ける、請求項4に記載の方法。
  7. 操作を実行するためのコンピュータ実行可能命令を実行するプロセッサであって、
    前記命令が、メモリ操作の順序付けを実行する解放付きストア命令を含み、
    前記解放付きストア命令が、第2のデータメモリバリア操作が後に続くストア操作が後に続く第1のデータメモリバリア操作を含む、プロセッサ。
  8. 前記第1のデータメモリバリア操作および前記第2のデータメモリバリア操作が、前記バリア操作の前に行われるメモリ操作の第1のセットおよび前記バリア操作の後に行われるメモリ操作の第2のセットを含むメモリ操作を順序付け、
    前記ストア操作が、メモリに第1のデータを書き込むためのアドレスを指定し、
    前記命令が、複数のタイプの解放付きストア命令をさらに含む、請求項7に記載のプロセッサ。
  9. プロセッサにおいて命令を実行するための方法であって、
    メモリ操作の順序付けを実行するために解放付きストア命令を実行するステップを含み、
    解放付きストア命令を実行するステップが、第2のデータメモリバリア操作を実行するステップが後に続く、ストア操作を実行するステップが後に続く、第1のデータメモリバリア操作を実行するステップを含む、方法。
  10. 複数のタイプの解放付きストア命令を実行するステップをさらに含み、
    前記第1のデータメモリバリア操作を実行するステップおよび前記第2のデータメモリバリア操作を実行するステップが、前記バリア操作の前に行われるメモリアクセスの第1のセットおよび前記バリア操作の後に行われるメモリアクセスの第2のセットを含むメモリ操作を順序付け、
    獲得付きロード命令を実行する前に前記第2のデータメモリバリア操作を実行するステップが、前記命令がプログラム順序で観測されることを保証する、請求項9に記載の方法。
JP2018502709A 2015-07-21 2015-07-21 Dmb操作を伴うロード/ストア操作を使用するロード獲得/ストア解放命令の実装 Active JP6739513B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2015/041322 WO2017014752A1 (en) 2015-07-21 2015-07-21 Implementation of load acquire/store release instructions using load/store operation with dmb operation

Publications (3)

Publication Number Publication Date
JP2018523235A true JP2018523235A (ja) 2018-08-16
JP2018523235A5 JP2018523235A5 (ja) 2018-11-15
JP6739513B2 JP6739513B2 (ja) 2020-08-12

Family

ID=57835180

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018502709A Active JP6739513B2 (ja) 2015-07-21 2015-07-21 Dmb操作を伴うロード/ストア操作を使用するロード獲得/ストア解放命令の実装

Country Status (4)

Country Link
EP (1) EP3326059A4 (ja)
JP (1) JP6739513B2 (ja)
CN (2) CN108139903B (ja)
WO (1) WO2017014752A1 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10606590B2 (en) 2017-10-06 2020-03-31 International Business Machines Corporation Effective address based load store unit in out of order processors
US10394558B2 (en) 2017-10-06 2019-08-27 International Business Machines Corporation Executing load-store operations without address translation hardware per load-store unit port
US10606591B2 (en) 2017-10-06 2020-03-31 International Business Machines Corporation Handling effective address synonyms in a load-store unit that operates without address translation
US10417002B2 (en) 2017-10-06 2019-09-17 International Business Machines Corporation Hazard detection of out-of-order execution of load and store instructions in processors without using real addresses
US10572256B2 (en) 2017-10-06 2020-02-25 International Business Machines Corporation Handling effective address synonyms in a load-store unit that operates without address translation
US11175924B2 (en) 2017-10-06 2021-11-16 International Business Machines Corporation Load-store unit with partitioned reorder queues with single cam port

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000181891A (ja) * 1998-12-18 2000-06-30 Hitachi Ltd 共有メモリアクセス順序保証方式

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07302200A (ja) * 1994-04-28 1995-11-14 Hewlett Packard Co <Hp> 順次付けロード動作および順序付け記憶動作を強制する命令を有するコンピュータのロード命令方法。
US7552317B2 (en) * 2004-05-04 2009-06-23 Sun Microsystems, Inc. Methods and systems for grouping instructions using memory barrier instructions
WO2005121948A1 (en) * 2004-06-02 2005-12-22 Sun Microsystems, Inc. Method and apparatus for enforcing membar instruction semantics in an execute-ahead processor
US7725618B2 (en) * 2004-07-29 2010-05-25 International Business Machines Corporation Memory barriers primitives in an asymmetric heterogeneous multiprocessor environment
US8060482B2 (en) * 2006-12-28 2011-11-15 Intel Corporation Efficient and consistent software transactional memory
EP2203828A1 (en) * 2007-10-18 2010-07-07 Nxp B.V. Data processing system with a plurality of processors, cache circuits and a shared memory
GB2461716A (en) * 2008-07-09 2010-01-13 Advanced Risc Mach Ltd Monitoring circuitry for monitoring accesses to addressable locations in data processing apparatus that occur between the start and end events.
US8997103B2 (en) * 2009-09-25 2015-03-31 Nvidia Corporation N-way memory barrier operation coalescing
US8935513B2 (en) * 2012-02-08 2015-01-13 International Business Machines Corporation Processor performance improvement for instruction sequences that include barrier instructions
US9582276B2 (en) * 2012-09-27 2017-02-28 Apple Inc. Processor and method for implementing barrier operation using speculative and architectural color values
US9442755B2 (en) * 2013-03-15 2016-09-13 Nvidia Corporation System and method for hardware scheduling of indexed barriers
US9477599B2 (en) * 2013-08-07 2016-10-25 Advanced Micro Devices, Inc. Write combining cache microarchitecture for synchronization events

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000181891A (ja) * 1998-12-18 2000-06-30 Hitachi Ltd 共有メモリアクセス順序保証方式

Also Published As

Publication number Publication date
EP3326059A1 (en) 2018-05-30
EP3326059A4 (en) 2019-04-17
CN108139903B (zh) 2019-11-15
CN110795150A (zh) 2020-02-14
WO2017014752A1 (en) 2017-01-26
CN108139903A (zh) 2018-06-08
JP6739513B2 (ja) 2020-08-12

Similar Documents

Publication Publication Date Title
JP6739513B2 (ja) Dmb操作を伴うロード/ストア操作を使用するロード獲得/ストア解放命令の実装
JP2015532749A5 (ja)
EP3230860B1 (en) Technologies for efficient synchronization barriers with work stealing support
JP2017535854A5 (ja)
JP2016507849A5 (ja)
JP2016511489A5 (ja)
JP2014194770A5 (ja)
WO2016036830A4 (en) Executing graph-based program specifications
JP2015532748A5 (ja)
EP2615546A1 (en) Method and system, scheduler for parallel simulating processors
JP2014521184A5 (ja)
US10592235B2 (en) Generating an idempotent workflow
RU2015144322A (ru) Способ начальной загрузки компьютерной системы с множеством центральных процессоров
CN107479981B (zh) 一种基于异步调用实现同步调用的处理方法及装置
JP2017503233A (ja) 競合状態を検出する技法
US11314712B2 (en) Method and apparatus for providing serial number, electronic device and readable storage medium
US20160364177A1 (en) Concurrent, moving, garbage collector
JP2018528515A5 (ja)
JP2019502201A5 (ja)
JP2018523235A5 (ja)
US8732657B2 (en) OData consumption tool
US9703905B2 (en) Method and system for simulating multiple processors in parallel and scheduler
US9298769B1 (en) Method and apparatus to facilitate discrete-device accelertaion of queries on structured data
JP2017045144A5 (ja)
CN104267929A (zh) 计算系统以及在该计算系统中操作锁的方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180316

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180703

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20180725

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20181004

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20181004

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20181211

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20190124

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190204

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20190507

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190805

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20191105

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20200205

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200310

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: 20200622

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200721

R150 Certificate of patent or registration of utility model

Ref document number: 6739513

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250