JP2015106312A - 並列計算機システム、並列計算機システムの制御方法、情報処理装置、演算処理装置および通信制御装置 - Google Patents

並列計算機システム、並列計算機システムの制御方法、情報処理装置、演算処理装置および通信制御装置 Download PDF

Info

Publication number
JP2015106312A
JP2015106312A JP2013248582A JP2013248582A JP2015106312A JP 2015106312 A JP2015106312 A JP 2015106312A JP 2013248582 A JP2013248582 A JP 2013248582A JP 2013248582 A JP2013248582 A JP 2013248582A JP 2015106312 A JP2015106312 A JP 2015106312A
Authority
JP
Japan
Prior art keywords
atomic operation
communication control
control device
main storage
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.)
Granted
Application number
JP2013248582A
Other languages
English (en)
Other versions
JP6115455B2 (ja
Inventor
新哉 平本
Shinya Hiramoto
新哉 平本
智宏 井上
Tomohiro Inoue
智宏 井上
誠裕 前田
Masahiro Maeda
誠裕 前田
俊 安藤
Takashi Ando
俊 安藤
雄太 豊田
Yuta Toyoda
雄太 豊田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2013248582A priority Critical patent/JP6115455B2/ja
Priority to EP14192720.2A priority patent/EP2879058B1/en
Priority to US14/540,381 priority patent/US9542313B2/en
Publication of JP2015106312A publication Critical patent/JP2015106312A/ja
Application granted granted Critical
Publication of JP6115455B2 publication Critical patent/JP6115455B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0804Addressing 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0811Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0842Multiuser, multiprocessor or multiprocessing cache systems for multiprocessing or multitasking
    • 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/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • G06F9/526Mutual exclusion algorithms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • G06F2212/1024Latency reduction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/28Using a specific disk cache architecture
    • G06F2212/283Plural cache memories

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

【課題】分散オブジェクトストレージのような複数台の情報処理装置(サーバ)を用いて構築された情報処理システムにおけるアンド検索時の検索性能の低下を抑制するための技術を提供する。【解決手段】ネットワークインタフェース装置22は、ネットワーク1から、アトミック操作を要求するパケットを受信した場合、各キャッシュメモリ212、及び主記憶装置23に対し、アトミック操作の実行を要求する。各キャッシュメモリ212は、対象となるデータが何れかのキャッシュラインに存在し、状態がInvalidでなければ、キャッシュライン上でアトミック操作を実行し、その実行結果を通知する。主記憶装置23も、対象となるデータが存在していれば、アトミック操作を実行し、その実行結果を通知する。ネットワークインタフェース装置22は、キャッシュメモリ212からの通知を優先する形で応答を生成し、生成した応答をネットワーク1に送信する。【選択図】図1

Description

本発明は、並列計算機システム、並列計算機システムの制御方法、情報処理装置、演算処理装置および通信制御装置に関する。
情報処理装置(コンピュータ)をデータ処理用の計算機(ノード)として複数、ネットワークに接続させて構築される並列計算機システムは、ネットワークに接続させるノードを多くするほど、高い性能を得ることが可能となる。そのため、高い性能が要求される処理は、並列計算機システムに実行させるのが普通である。
並列計算機システムは、各ノードがそれぞれメモリ空間を有する分散メモリ型のコンピュータシステムである。そのため、各ノードは、必要に応じて、データを他のデータから取得するようになっている。
各ノードは、ネットワークを介した通信用のNIC(Network Interface Card)等の通信制御装置、及びCPU(Central Processing Unit)等の演算処理装置を備えている。普通、演算処理装置には、1つのプロセッサとして機能するプロセッサコアが複数、搭載され、各プロセッサコアには、キャッシュメモリが用意されている。それにより、演算処理装置は、主記憶装置上の必要なデータをキャッシュメモリに読み出すようになっている。
キャッシュメモリには、データ格納用の領域として、複数のキャッシュラインが用意されている。キャッシュメモリにおけるデータの読み出し、及び書き込みは、キャッシュライン単位で行われる。
キャッシュメモリ上のデータは、必要に応じて更新される。そのため、キャッシュメモリ上のデータは、主記憶装置上のデータ、及び他のキャッシュメモリ上のデータと一致しない場合がある。適切な処理を行うには、適切なデータを用いなければならない。このことから、並列計算機システムのような複数のキャッシュメモリが存在するシステム環境では、複数のキャッシュメモリ間で内容に矛盾が生じないようにするキャッシュコヒーレンシ制御が行われる。キャッシュコヒーレンシプロトコルは、キャッシュコヒーレンシ制御のためのプロトコルであり、キャッシュコヒーレンシプロトコルとしては、MSIプロトコル、MESIプロトコル、及びMOESIプロトコル等がある。
MOESIプロトコルでは、キャッシュメモリ上の各キャッシュラインの状態は、M(Modified)、O(Owned)、E(Exclusive)、S(Shared)、I(Invalid)の5状態に分類される。
M状態とは、データが自キャッシュメモリだけに存在し、且つ主記憶装置上のデータと内容が一致しない状態である。E状態とは、データが自キャッシュメモリだけに存在し、且つ主記憶装置上のデータと内容が一致している状態である。S状態とは、データが他のキャッシュメモリにも存在している状態である。I状態とは、キャッシュラインが無効となっている状態である。O状態とは、データが主記憶装置上のデータの内容と一致せず、且つそのデータが他のキャッシュメモリ上にも存在する状態である。S状態とは、データを主記憶装置に格納するライトバックを行わなければならない点で異なる。つまり、主記憶装置上のデータの内容と一致しないデータが存在する複数のキャッシュメモリでは、1つのキャッシュメモリのみがO状態となり、他の全てのキャッシュメモリはS状態となる。
並列計算機システムには、普通、各ノードがスレッドと呼ばれるプログラムの最小の実行単位を同時に実行するマルチスレッドが採用される。各ノードが主記憶装置上に保持しているデータは共有リソースであり、データは同期させる必要がある。データの同期のために、或いは排他制御のために並列計算機システムで行われる操作として、これ以上の細かい操作に分割できない不可分操作であるアトミック操作がある。
アトミック操作は、データに対する単純な数学的演算、或いは単純な論理演算を実行させる複数の一連の操作である。アトミック操作の実行中は、データはロックされ、他のスレッドによるアクセスが行われる前にアトミック操作は完了する。そのため、データを同期させることができる。
アトミック操作としては、例えばFetch and Addがある。このFetch and Addは、以下の一連の操作を含む。
(1)主記憶装置からデータをキャッシュメモリにリード
(2)リードしたデータとオペランドの加算
(3)加算結果を主記憶装置にライトバック
Fetch and Addを実行している間、他のスレッド(或いはプロセス)は、主記憶装置上のリード対象のデータにはアクセスできない。これにより、他のスレッドによる加算結果前のデータの取得、及び他のスレッドによる加算結果への上書き等が防止される。
アトミック操作は、他にも様々なものがある。例えばCompare and Swapは、オペランドと主記憶装置上のデータの値を比較し、それらが一致していれば主記憶装置上のデータを別のオペランドの値に置き換えるアトミック操作である。
ノード間でアトミック操作を行う場合であっても、キャッシュメモリの整合性(キャッシュコヒーレンシ)は維持させなければならない。そのため、従来、演算処理装置(に搭載されたプロセッサコア)は、アトミック操作の対象となる対象データを格納したキャッシュラインの状態を確認し、その確認結果に応じた処理を行っている。より具体的には、演算処理装置は、キャッシュラインの確認した状態がE状態、或いはS状態であればI状態に遷移させ、M状態、或いはO状態であれば、主記憶装置に対象データをライトバックしてからI状態に遷移させる。その後、演算処理装置は、主記憶装置上の対象データへのアトミック操作を行う。このような処理により、キャッシュコヒーレンシは維持することができる。
主記憶装置上のデータの操作には、長い時間がかかる。そのため、従来のアトミック操作を要求したノードでは、アトミック操作を要求してから応答を得るまでの時間であるレイテンシも長くなる。より効率的な処理を行うためには、レイテンシはより短くする必要がある。このことから、キャッシュコヒーレンシは、アトミック操作時のレイテンシをより短くしつつ、実現させることが重要と思われる。
特表2010−507160号公報 特開2008−204101号公報
1側面では、本発明は、ノード間のアトミック操作時のレイテンシをより短くしつつ、キャッシュコヒーレンシを実現させるための技術を提供することを目的とする。
本発明を適用した1システムは、通信を行う通信制御装置と、データを記憶する主記憶装置と、通信制御装置と主記憶装置とに接続される演算処理装置とをそれぞれ有するとともに通信制御装置によりネットワークを介して接続される情報処理装置を複数備える並列計算機システムであり、演算処理装置は、不可分操作であるアトミック操作を要求するアトミック操作要求を通信制御装置が出力した場合、対象データを格納するキャッシュメモリ上で対象データへのアトミック操作を行う処理部と、キャッシュメモリ上でアトミック操作を行った結果を通信制御装置に通知する通知部と、を有する。
本発明を適用した場合には、ノード間のアトミック操作時のレイテンシをより短くしつつ、キャッシュコヒーレンシを実現させることができる。
本実施形態による並列計算機システムの構築例を説明する図である。 本実施形態による通信制御装置であるネットワークインタフェース装置の構成例を説明する図である。 アトミック操作要求パケットの構成例を説明する図である。 内部メッセージの一つであるアトミック操作要求の構成例を説明する図である。 アトミック操作要求の応答の構成例を説明する図である。 処理状況情報の構成例を説明する図である。 キャッシュコントローラによるアトミック操作要求処理のフローチャートである。 アトミック操作要求パケット処理のフローチャートである。
以下、本発明の実施形態について、図面を参照しながら詳細に説明する。
図1は、本実施形態による並列計算機システムの構築例を説明する図である。
本実施形態による並列計算機システムは、本実施形態による情報処理装置をノード2として用いたコンピュータシステムである。図1に表すように、並列計算機システムは、ネットワーク1にノード2を複数台、接続する形で構築されている。
各ノード2は、図1に表すように、演算処理装置であるプロセッサ21、ネットワークインタフェース装置22、主記憶装置23、及びハードディスク装置24がメモリバス25にそれぞれ接続されている。プロセッサ21には、複数のプロセッサコア211、及びプロセッサコア211毎に用意されたキャッシュメモリ212が搭載されている。
各ノード2に搭載されているプロセッサ21は、本実施形態による演算処理装置である。各ノード2に搭載されているネットワークインタフェース22は、本実施形態による通信制御装置である。各ノード2に搭載されている主記憶装置23は、本実施形態による記憶装置である。
各キャッシュメモリ212は、キャッシュコントローラ213を備える。各キャッシュメモリ212は、例えば他に、データの格納に用いられるデータ部、タグの格納に用いられるタグ部、各キャッシュラインの状態を管理するタグステート管理部等を備えている(不図示)。キャッシュコントローラ213は、これらデータ部、タグ部、及びタグステート管理部を制御する。
タグ部、及びデータ部は、それぞれ同じ数のエントリを備える。1つのキャッシュラインは、タグ部の1エントリと、データ部の1エントリとを含む。ここでは、便宜的に、キャッシュメモリ212にはダイレクトマップ方式が採用されていると想定する。ダイレクトマップ方式では、アドレスに対応するデータを格納できるデータ部のエントリ(空間)は1つのみである。このことから、ダイレクトマップ方式では、1つのキャッシュラインは、タグ部の1エントリと、データ部の対応する1エントリとを含む構成となる。
タグステート管理部も、タグ部、及びデータ部と同じ数のエントリを備える。各エントリには、対応するキャッシュラインの状態を表す状態データが格納される。ここでは、キャッシュコヒーレンシプロトコルとして、MOESIプロトコルが採用されていると想定する。上記のように、MOESIプロトコルでは、各キャッシュラインの状態は、M(Modified)、O(Owned)、E(Exclusive)、S(Shared)、I(Invalid)の5状態に分類される。そのため、各エントリに格納される状態データは、その5状態のうちの一つを表す。
キャッシュコントローラ213は、任意のキャッシュラインに対する操作を実行可能なコントローラである。実行可能な操作としては、アトミック操作が含まれる。それにより、キャッシュメモリ212は、キャッシュコントローラ213により、要求されたアトミック操作を実行する。
主記憶装置23は、メモリコントローラ23aを備える。このメモリコントローラ23aは、主記憶装置23の任意のアドレスに格納されているデータに対する操作を行うことができる。
プロセッサ21に搭載された何れかのプロセッサコア211は、他のプロセッサコア211、及び他のノード2に対し、必要に応じてアトミック操作を要求する。自ノード2内の他のプロセッサコア211によるアトミック操作のレイテンシは、他のノード2によるアトミック操作のレイテンシと比較して、非常に長いのが普通である。これは、他のノード2によるアトミック操作では、ネットワーク1を介した通信に要する時間もレイテンシに含まれるからである。このことから、本実施形態では、ノード2間で要求されるアトミック操作のレイテンシをより短縮させている。以降、各プロセッサコア211のキャッシュメモリ212、ネットワークインタフェース装置22、及び主記憶装置23に着目し、ノード2間で要求されるアトミック操作に係わる動作について詳細に説明する。
図2は、本実施形態による通信制御装置であるネットワークインタフェース装置の構成例を説明する図である。
ネットワークインタフェース装置23は、ノード2間のネットワーク1を介した通信をパケット単位で行う通信制御装置である。図2に表すように、ネットワークインタフェース装置23は、パケット送信部221、パケット受信部222、DMA(Direct Memory Access)コントローラ223、及び制御部224を備える。
制御部224は、プロセッサ21に搭載された何れかのプロセッサコア211からのパケット送信指示に従って、パケットの生成、及び生成されたパケットのネットワーク1への送信を実現させる。そのために、制御部224は、パケット送信部221、及びDMAコントローラ223を制御する。
パケット送信部221は、ネットワーク1にパケットを送信する。パケットの送信先とするノード2(リモートノード)のアドレス等を含むパケットヘッダは、制御部224からパケット送信部221に出力される。制御部224は、パケット送信指示に従って、パケットヘッダを生成する。
DMAコントローラ223は、制御部224からの指示に従い、プロセッサ21を介さずに主記憶装置23へのアクセスを行う。制御部224は、パケット送信指示を参照して、DMAコントローラ223にアドレス、及びデータ長を指示し、主記憶装置23にアクセスさせる。DMAコントローラ223は、制御部224の指示に従って主記憶装置23から読み出したデータをパケット送信部221に出力する。それにより、パケット送信部221は、制御部224から取得したパケットヘッダに、DMAコントローラ223から取得したデータをペイロードとして付加して、パケットを生成し、生成したパケットをネットワーク1に送信する。
パケット送信部221が生成するパケットには、アトミック操作を要求するためのパケット(以降「アトミック操作要求パケット」と表記)が含まれる。そのアトミック操作要求パケットは、例えば図3に表すような構成である。
パケットは、パケットヘッダと、ペイロードとに大別される。アトミック操作要求パケットのパケットヘッダには、図3に表すように、例えばパケットタイプ、ルーティングヘッダ、ローカルノードアドレス、リモートノードアドレス、オフセット、及びアトミック操作種類の各データが格納される。
パケットタイプデータは、パケットの種類を表すデータである。ルーティングヘッダデータは、パケットの送信元であるローカルノードから送信先であるリモートノードまでの経路を指定するデータである。ローカルノードアドレスは、ローカルノードのアドレスを表すデータであり、リモートノードアドレスは、リモートノードのアドレスを表すデータである。オフセットは、アトミック操作を行う対象となる対象データが格納されている主記憶装置23上のアドレスを表すデータである。アトミック操作種類は、アトミック操作の種類を表すデータである。
ペイロードには、アトミック操作で用いるオペランドが含まれる。それにより、アトミック操作要求パケットを受信したノード(リモートノード)2では、アトミック操作種類が表すアトミック操作を、オフセットで指定される対象データに対し、ペイロード中のオペランドを用いて行うことができる。
他のノード2がネットワーク1上に送信したアトミック操作要求パケットは、リモートノードアドレスで指定されるリモートノード2のネットワークインタフェース装置22のパケット受信部222によって受信される。パケット受信部222は、アトミック操作要求パケットを受信した場合、図4に表すような構成の内部メッセージを生成し、生成した内部メッセージをメモリバス25上に出力する。以降、その内部メッセージは「アトミック操作要求」と表記する。
アトミック操作要求は、図4に表すように、アトミック操作種類、アトミック操作対象アドレス、シーケンス番号、及びオペランドの各データを含む。
アトミック操作種類は、アトミック操作要求パケットと同じく、アトミック操作の種類を表すデータである。アトミック操作対象アドレスは、アトミック操作の対象となる対象データが格納されている主記憶装置23上のアドレスを表すデータである。このアトミック操作対象アドレスは、オフセットそのものか、或いはそのオフセットとペイロード中のオペランドを用いて生成されるデータである。
シーケンス番号は、このアトミック操作要求を識別するためのデータである。オペランドは、アトミック操作に用いるデータであり、そのオペランドは、アトミック操作対象アドレスの生成に用いられるオペランドとは異なる。
このアトミック操作要求は、プロセッサ21に搭載された全てのキャッシュメモリ212、及び主記憶装置23を対象にしたメッセージである。それにより、本実施形態では、全てのキャッシュメモリ212、及び主記憶装置23に、アトミック操作要求によるアトミック操作をそれぞれ並行して行わせ、アトミック操作を行った結果を応答として返信させるようにしている。
キャッシュメモリ212、及び主記憶装置23が返信する応答は、例えば図5に表すように、有効、実行元、シーケンス番号、及びデータを含む。
有効データは、アトミック操作要求によるアトミック操作を実行したか否かを表すデータである。実行元データは、アトミック操作要求によるアトミック操作の実行元、つまり応答の返信元を表すデータであり、例えば実行元が主記憶かキャッシュかを示す値である。シーケンス番号は、アトミック操作要求に格納されていたシーケンス番号である。データは、アトミック操作対象アドレスのアトミック操作の実行前のデータである。
主記憶装置23のメモリコントローラ23aは、メモリバス25上を転送されるアトミック操作要求を受信し、受信したアトミック操作要求を処理する。それにより、メモリコントローラ23aは、アトミック操作対象アドレスのデータに対して要求されたアトミック操作を実行し、アトミック操作の実行後のデータを新たに保持させる。このとき、応答は、有効データとして、アトミック操作の実行を表すデータ、シーケンス番号として、アトミック操作要求に格納されているシーケンス情報、データとして、アトミック操作の実行前のデータをそれぞれ用いて生成される。
各キャッシュメモリ212では、アトミック操作要求はキャッシュコントローラ213によって処理される。キャッシュメモリ212では、主記憶装置23とは異なり、各キャッシュラインは状態で管理されている。キャッシュコントローラ213は、アトミック操作対象アドレスのデータを格納したキャッシュラインの状態を確認し、確認した状態に応じて、アトミック操作を実行する。
MOESIプロトコルでは、キャッシュラインの状態は、M、O、E、S、Iの5状態に分類される。I状態以外では、キャッシュラインにアトミック操作対象アドレスの有効なデータが存在する。このことから、キャッシュコントローラ213は、I状態以外、即ちM、O、E、及びSのうちの何れかの状態であった場合、キャッシュラインのデータにアトミック操作を実行し、そのキャッシュラインのデータを更新する。それにより、キャッシュコントローラ213は、アトミック操作の実行を表す有効データを用いて応答を生成し、生成した応答をメモリバス25上に出力する。その応答に格納されるデータは、アトミック操作の実行前のデータである。
I状態であった場合、或いはアトミック操作対象アドレスのデータを格納したキャッシュラインが存在しない場合、キャッシュコントローラ213は、アトミック操作を実行することなく、応答を生成してメモリバス25上に出力する。このとき、応答に格納される有効データは、アトミック操作の未実行を表すデータである。
キャッシュラインの状態は、アトミック操作を実行するか否か、及びその状態に係わらず、維持される。これは、上記のように、キャッシュラインのデータを保存する主記憶装置23上でも、そのデータに対するアトミック操作が実行されるからである。
図7は、キャッシュコントローラによるアトミック操作要求処理のフローチャートである。このアトミック操作要求処理は、アトミック操作要求の受信を契機に、受信したアトミック操作要求の処理のためにキャッシュコントローラ213が実行する一連の処理の流れを表したものである。ここで図7を参照し、アトミック操作要求処理について詳細に説明する。
キャッシュコントローラ23は、メモリバス25上を転送されるメッセージを監視しており、そのメモリバス25上にアトミック操作要求をパケット受信部222が出力した場合、キャッシュコントローラ23はそのアトミック操作要求を検知する(SC1)。アトミック操作要求を検知した場合、キャッシュコントローラ23は、検知したアトミック操作要求のアトミック操作対象アドレスのデータを格納したキャッシュラインがヒットし、且つヒットしたキャッシュラインがI状態以外か否か判定する(SC2)。アトミック操作対象アドレスのデータを格納したキャッシュラインがヒットしない、或いはヒットしたキャッシュラインがI状態であった場合、SC2の判定はNoとなってSC4に移行する。アトミック操作対象アドレスのデータを格納したキャッシュラインがヒットし、且つヒットしたキャッシュラインがI状態以外の状態であった場合、SC2の判定はYesとなってSC3に移行する。
SC3では、キャッシュコントローラ23は、ヒットしたキャッシュラインのデータに対し、検知したアトミック操作要求のアトミック操作種類が指定するアトミック操作を、検知したアトミック操作要求のオペランドを用いて実行する。このとき、アトミック操作の実行後のデータは、新たにキャッシュラインに上書きされ、アトミック操作の実行前のデータは保存される。加算結果の主記憶装置23へのライトバックは行われない。
キャッシュライン上のデータを更新したキャッシュコントローラ23は、アトミック操作の実行を表す有効データ、アトミック操作要求のシーケンス番号、アトミック操作の実行前のデータを用いて応答を生成し、生成した応答をメモリバス25上に出力する(SC4)。その後、このアトミック操作要求処理が終了する。
このSC2にSC4から移行した場合、キャッシュコントローラ23は、アトミック操作の未実行を表す有効データ、アトミック操作要求のシーケンス番号を用いて応答を生成し、生成した応答をメモリバス25上に出力する(SC4)。その後、このアトミック操作要求処理が終了する。
このように、キャッシュコントローラ23は、アトミック操作要求が主記憶装置23でも処理されることから、キャッシュラインがM状態、及びO状態の何れであっても主記憶装置23へのライトバック等は行わない。そのため、アトミック操作要求は非常に短時間に処理される。キャッシュメモリ212間の整合性、つまりキャッシュコヒーレンシは、アトミック操作要求が主記憶装置23に無条件に処理させることにより、維持される。
各キャッシュメモリ212、及び主記憶装置23からメモリバス25上に出力された応答は、ネットワークインタフェース装置22のパケット受信部222によって受信され、処理される。
パケット受信部222は、キャッシュメモリ212からの応答を受信した場合、アトミック操作要求パケットの応答(以降「アトミック操作応答パケット」と表記)をネットワーク1上に送信する。
アトミック操作応答パケットは、アトミック操作要求パケット(図3)と同様の構成である。パケットヘッダでは、アトミック操作種類データが存在しないことがアトミック操作要求パケットと異なる。ペイロードには、アトミック操作を実行したキャッシュメモリ212、或いは主記憶装置23が存在している場合、アトミック操作要求の応答に格納されたデータが含まれる。キャッシュメモリ212、及び主記憶装置23の何れもアトミック操作を実行していない場合、その旨を表すデータがペイロードに含まれる。
アトミック操作要求の応答は、キャッシュメモリ212のほうが主記憶装置23よりも早く返信されるのが普通である。しかし、何らかの理由により、主記憶装置23からの応答が、アトミック操作を実行したキャッシュメモリ212よりも早く返信される可能性が考えられる。アトミック操作を実行していないキャッシュメモリ212からの応答が、アトミック操作を実行したキャッシュメモリ212よりも早く出力されることは高い頻度で発生すると考えられる。また、全てのキャッシュメモリ212がアトミック操作を実行しない可能性もある。全てのキャッシュメモリ212がアトミック操作を実行しない場合、アトミック操作応答パケットのペイロードには、主記憶装置23からの応答に格納されるデータを含めなければならない。このようなことから、パケット受信部222は、アトミック操作応答パケットを送信すべき契機の特定用に、処理状況情報222aを用いている。
図6は、処理状況情報の構成例を説明する図である。図6では、処理状況情報222aの構成例をテーブル形式で表している。ここでは、処理状況情報222aはテーブル形式の情報であると想定する。処理状況情報222aは、テーブル形式以外であっても良い。
図6に表すように、この処理状況情報222aは、受信したアトミック操作要求パケット毎に、シーケンス番号、受信数、状態、及びデータを1レコード(エントリ)に格納するテーブルである。
シーケンス番号は、例えば直前に受信したアトミック操作要求パケットに割り当てたシーケンス番号をインクリメントした値であり、処理状況管理テーブル222aから参照すべきエントリの抽出に用いられる。受信数は、各キャッシュメモリ212、及び主記憶装置23からの応答の受信数を表すデータである。図6中に表記の「0」は、キャッシュメモリ212、及び主記憶装置23の何れからも応答を受信していないことを表す初期値である。
状態は、アトミック操作応答パケットを送信したか否かを表すデータである。図6に表記の「待ち」は、アトミック操作応答パケットを送信していない待ち状態を表している。アトミック操作応答パケットを送信した場合、状態は、待ち状態から送信済み状態に移行される。
データは、アトミック操作応答パケットのペイロードとして格納するデータの有無、つまりアトミック操作の実行を表す有効データを有する応答の受信の有無を表すデータである。図6に表記の「無」は、アトミック操作の実行を表す有効データを有する応答を受信していないことを表している。その応答を受信した場合の内容は、「有」と表記する。
図8は、アトミック操作要求パケット処理のフローチャートである。このアトミック操作要求パケット処理は、アトミック操作要求パケットの受信を契機に、パケット受信部222がその応答であるアトミック操作応答パケットを送信するまでの一連の処理の流れを表したものである。次に図8を参照し、アトミック操作要求パケット処理について詳細に説明する。
パケット受信部222は、ネットワーク1上を転送されるパケットを監視しており、そのネットワーク1上を転送される自ノード2宛のアトミック操作要求パケットを受信する(SN1)。パケット受信部222は、受信したアトミック操作要求パケットにシーケンス番号を割り当て、割り当てたシーケンス番号を格納したアトミック操作要求を生成し、生成したアトミック操作要求をメモリバス1上に出力する。また、パケット受信部222は、処理状況情報222aに1エントリを追加し、追加したエントリに、シーケンス番号、0の受信数、待ち状態を表す状態データ、「無」を表すデータを格納する(以上SN2)。
そのようにして処理状況情報222aを更新したパケット受信部222は、アトミック操作要求の応答を受信するのを待つ(SN3)。応答を受信すると、パケット受信部222は、受信した応答のシーケンス番号を用いて処理状況情報222aから1エントリを抽出し、抽出したエントリの状態データが「待ち状態」(図8中「応答待ち」と表記)を表しているか否か判定する(SN4)。その状態データが「待ち状態」を表していた場合、SN4の判定はYesとなってSN5に移行する。その状態データが「送信済み状態」を表していた場合、SN4の判定はNoとなって上記SN3に戻る。SN4でのNoの判定は、対応するアトミック操作応答パケットが既に送信されたアトミック操作要求の応答を受信したことを意味する。
SN5では、パケット受信部222は、受信した応答の有効データがアトミック操作の実行を表し、且つ実行元データが何れかのキャッシュメモリ212を表しているか否か判定する。受信した応答がアトミック操作を実行した何れかのキャッシュメモリ212から送信されていた場合、SN5の判定はYesとなってSN6に移行する。受信した応答の有効データがアトミック操作の未実行を表しているか、或いは受信した応答の実行元データが主記憶装置23を表している場合、SN5の判定はNoとなってSN8に移行する。
SN6では、パケット受信部222は、受信した応答中のデータ(図8中「アトミック操作結果のデータ」と表記)をペイロードに用いたアトミック操作応答パケットを生成し、生成したアトミック操作応答パケットをネットワーク1上に送信させる。生成したアトミック操作応答パケットのネットワーク1上への送信は、生成したアトミック操作応答パケットをパケット受信部222がパケット送信部221に出力し、その送信を依頼することで行われる。
アトミック操作応答パケットを送信させたパケット受信部222は、次に、処理状況情報222aの受信した応答中のシーケンス番号を有するエントリの状態データを、「送信済み状態」を表す内容に更新する(SN7)。そのような処理状況情報222aの更新を行った後、アトミック操作要求パケット処理が終了する。
上記SN5の判定がNoとなって移行するSN8では、パケット受信部222は、処理状況情報222aの受信した応答中のシーケンス番号を有するエントリの受信数データの値をインクリメントする。次に、パケット受信部222は、受信した応答の実行元データが何れかのキャッシュメモリ212を表しているか否か判定する(SN9)。受信した応答が何れかのキャッシュメモリ212から送信されていた場合、SN9の判定はYesとなってSN11に移行する。受信した応答が主記憶装置23から送信されていた場合、SN9の判定はNoとなってSN10に移行する。
SN10では、パケット受信部222は、受信した応答中のデータを保存し、処理状況情報222aの受信した応答中のシーケンス番号を有するエントリのデータの内容を「有」に更新する。その更新を行った後、SN11に移行する。
SN11では、パケット受信部222は、処理状況情報222aの受信した応答中のシーケンス番号を有するエントリの受信数データの値が、キャッシュメモリ212の数に1を加算した値と等しいか否か判定する。全てのキャッシュメモリ212、及び主記憶装置23からの応答を受信した場合、受信数データの値は加算結果と等しくなる。そのため、SN11の判定はYesとなってSN12に移行する。何れかのキャッシュメモリ212、或いは主記憶装置23からの応答を受信していない場合、SN11の判定はNoとなって上記SN3に戻る。
SN12では、パケット受信部222は、SN10で保存したデータをペイロードとして用いるアトミック操作応答パケットを生成し、生成したアトミック操作応答パケットをネットワーク1上に送信させる。その後、上記SN7に移行する。
このように、本実施形態では、何れかのキャッシュメモリ212から、アトミック操作応答パケットの生成に用いるべきデータを有する応答を受信できなければ、全ての応答を受信するのを待って、アトミック操作応答パケットを送信させるようにしている。処理速度の違いから、通常、パケット受信部222が最後に受信する応答を送信するのは主記憶装置23となる。そのため、何れかのキャッシュメモリ212からアトミック操作の実行を表す応答が出力された場合、アトミック操作応答パケットはより迅速に返信されることとなる。従って、ノード2間のアトミック操作時のレイテンシはより短くなる。ノード2間のキャッシュコヒーレンシは、各キャッシュメモリ212、及び主記憶装置23に、必要なアトミック操作を行わせることで維持される。
主記憶装置23から応答をパケット受信部222が受信した時には、全キャッシュメモリ212からの応答をパケット受信部222は受信しているのが普通である。そのため、全キャッシュメモリ212からの応答を受信している場合、主記憶装置23からの応答を待つ待ち合わせを行っても、通常、その待ち合わせは並列計算機システムの性能を低下させる要因とはならない。
なお、本実施形態では、アトミック操作要求に対する応答の処理、及びアトミック操作応答パケットの生成をパケット受信部222が行っているが、その処理、及びアトミック操作応答パケットの生成は別の構成要素に行わせても良い。それら全て、或いは一部を例えば制御部224に行わせても良い。
また、本実施形態では、プロセッサ21に搭載された各キャッシュメモリ212にアトミック操作要求の処理を行わせているが、アトミック操作要求を処理させるコントローラをキャッシュメモリ212とは別に設けても良い。その別に設けるコントローラは、複数のキャッシュメモリ212へのアトミック操作要求を処理させるものであっても良い。
本実施形態では、主記憶装置23にもアトミック操作を行わせるようにしているが、主記憶装置23はアトミック操作を行わせる対象から除外させても良い。これは、キャッシュメモリ212上でアトミック操作を実行した後のデータは、主記憶装置23上の対応するデータへのリード要求への返信として用いることができるためである。返信として用いることができるデータのキャッシュラインは、状態がM状態、或いはO状態のキャッシュラインである。
上記以外にも、様々な変形を行うことができる。
以上の変形例を含む実施形態に関し、更に以下の付記を開示する。
(付記1)
通信を行う通信制御装置と、データを記憶する主記憶装置と、前記通信制御装置と前記主記憶装置とに接続される演算処理装置とをそれぞれ有するとともに前記通信制御装置によりネットワークを介して接続される情報処理装置を複数備える並列計算機システムにおいて、
前記演算処理装置は、
不可分操作であるアトミック操作を要求するアトミック操作要求を前記通信制御装置が出力した場合、対象データを格納するキャッシュメモリ上で前記対象データへの前記アトミック操作を行う処理部と、
前記キャッシュメモリ上で前記アトミック操作を行った結果を前記通信制御装置に通知する通知部と、
を有することを特徴とする並列計算機システム。
(付記2)
前記主記憶装置は、
前記アトミック操作要求を前記通信制御装置が出力した場合に、前記アトミック操作を行う対象データに対して前記アトミック操作を行う他の処理部と、
前記対象データに対する前記アトミック操作を行った結果を前記通信制御装置に通知する他の通知部と、
を有することを特徴とする付記1記載の並列計算機システム。
(付記3)
前記通信制御装置は、
前記アトミック操作を要求するために前記ネットワークを介して送信されるメッセージであるアトミック操作要求メッセージを受信した場合、前記アトミック操作要求を前記演算処理装置と前記主記憶装置とに対して出力する要求部と、
前記要求部が出力したアトミック操作要求によるアトミック操作を行った処理結果の通知である処理結果通知を、前記演算処理装置又は前記主記憶装置から受信する受信部と、
前記受信部が受信した処理結果通知の送信元と前記処理結果通知が表すアトミック操作の実行情報とに基づき、前記アトミック操作要求メッセージの応答の生成に用いる処理結果通知を決定し、決定した前記処理結果通知を用いて前記応答を生成して前記ネットワークに出力する制御部と、
を有することを特徴とする付記1、または2記載の並列計算機システム。
(付記4)
前記制御部は、
前記アトミック操作を前記キャッシュメモリ上で実行した旨を表す実行通知を前記受信部が受信した場合、前記実行通知を用いて前記応答を生成し、前記実行通知を受信せずに前記主記憶装置からの処理結果通知を前記受信部が受信した場合、前記主記憶装置からの処理結果通知を用いて前記応答を生成する、
ことを特徴とする付記3記載の並列計算機システム。
(付記5)
通信を行う通信制御装置と、データを記憶する主記憶装置と、前記通信制御装置と前記主記憶装置とに接続される演算処理装置とをそれぞれ有するとともに前記通信制御装置によりネットワークを介して接続される情報処理装置を複数備える並列計算機システムにおいて、
前記演算処理装置は、
不可分操作であるアトミック操作を要求するアトミック操作要求を前記通信制御装置が出力した場合、対象データを格納するキャッシュメモリ上で前記対象データへの前記アトミック操作を行い、
前記キャッシュメモリ上で前記アトミック操作を行った結果を前記通信制御装置に通知することを特徴とする並列計算機システムの制御方法。
(付記6)
通信を行う通信制御装置と、データを記憶する主記憶装置と、前記通信制御装置と前記主記憶装置とに接続される演算処理装置とをそれぞれ有するとともに前記通信制御装置によりネットワークを介して他の情報処理装置に接続される情報処理装置において、
前記演算処理装置は、
不可分操作であるアトミック操作を要求するアトミック操作要求を前記通信制御装置が出力した場合、対象データを格納するキャッシュメモリ上で前記対象データへの前記アトミック操作を行う処理部と、
前記キャッシュメモリ上で前記アトミック操作を行った結果を前記通信制御装置に通知する通知部と、
を有することを特徴とする情報処理装置。
(付記7)
通信を行う通信制御装置と、データを記憶する主記憶装置と、前記通信制御装置と前記主記憶装置とに接続される演算処理装置において、
不可分操作であるアトミック操作を要求するアトミック操作要求を前記通信制御装置が出力した場合、対象データを格納するキャッシュメモリ上で前記対象データへの前記アトミック操作を行う処理部と、
前記キャッシュメモリ上で前記アトミック操作を行った結果を前記通信制御装置に通知する通知部と、
を有することを特徴とする演算処理装置。
(付記8)
データを記憶する主記憶装置に接続され、不可分操作であるアトミック操作を要求するアトミック操作要求を前記通信制御装置が出力した場合、対象データを格納するキャッシュメモリ上で前記対象データへの前記アトミック操作を行う処理部と、前記キャッシュメモリ上で前記アトミック操作を行った結果を前記通信制御装置に通知する通知部とを備える演算処理装置に接続する通信制御装置において、
前記アトミック操作を要求するために前記ネットワークを介して送信されるメッセージであるアトミック操作要求メッセージを受信した場合、前記アトミック操作要求を前記演算処理装置と前記主記憶装置とに対して出力する要求部と、
前記要求部が出力したアトミック操作要求によるアトミック操作を行った処理結果の通知である処理結果通知を、前記演算処理装置又は前記主記憶装置から受信する受信部と、
前記受信部が受信した処理結果通知の送信元と前記処理結果通知が表すアトミック操作の実行情報とに基づき、前記アトミック操作要求メッセージの応答の生成に用いる処理結果通知を決定し、決定した前記処理結果通知を用いて前記応答を生成して前記ネットワークに出力する制御部と、
を有することを特徴とする通信制御装置。
1 ネットワーク
2 ノード(情報処理装置)
21 プロセッサ
22 ネットワークインタフェース装置
23 主記憶装置
23a メモリコントローラ
25 メモリバス
211 プロセッサコア
212 キャッシュメモリ
213 キャッシュコントローラ
221 パケット送信部
222 パケット受信部
224 制御部

Claims (7)

  1. 通信を行う通信制御装置と、データを記憶する主記憶装置と、前記通信制御装置と前記主記憶装置とに接続される演算処理装置とをそれぞれ有するとともに前記通信制御装置によりネットワークを介して接続される情報処理装置を複数備える並列計算機システムにおいて、
    前記演算処理装置は、
    不可分操作であるアトミック操作を要求するアトミック操作要求を前記通信制御装置が出力した場合、対象データを格納するキャッシュメモリ上で前記対象データへの前記アトミック操作を行う処理部と、
    前記キャッシュメモリ上で前記アトミック操作を行った結果を前記通信制御装置に通知する通知部と、
    を有することを特徴とする並列計算機システム。
  2. 前記通信制御装置は、
    前記アトミック操作を要求するために前記ネットワークを介して送信されるメッセージであるアトミック操作要求メッセージを受信した場合、前記アトミック操作要求を前記演算処理装置と前記主記憶装置とに対して出力する要求部と、
    前記要求部が出力したアトミック操作要求によるアトミック操作を行った処理結果の通知である処理結果通知を、前記演算処理装置又は前記主記憶装置から受信する受信部と、
    前記受信部が受信した処理結果通知の送信元と前記処理結果通知が表すアトミック操作の実行情報とに基づき、前記アトミック操作要求メッセージの応答の生成に用いる処理結果通知を決定し、決定した前記処理結果通知を用いて前記応答を生成して前記ネットワークに出力する制御部と、
    を有することを特徴とする請求項1記載の並列計算機システム。
  3. 前記制御部は、
    前記アトミック操作を前記キャッシュメモリ上で実行した旨を表す実行通知を前記受信部が受信した場合、前記実行通知を用いて前記応答を生成し、前記実行通知を受信せずに前記主記憶装置からの処理結果通知を前記受信部が受信した場合、前記主記憶装置からの処理結果通知を用いて前記応答を生成する、
    ことを特徴とする請求項2記載の並列計算機システム。
  4. 通信を行う通信制御装置と、データを記憶する主記憶装置と、前記通信制御装置と前記主記憶装置とに接続される演算処理装置とをそれぞれ有するとともに前記通信制御装置によりネットワークを介して接続される情報処理装置を複数備える並列計算機システムにおいて、
    前記演算処理装置は、
    不可分操作であるアトミック操作を要求するアトミック操作要求を前記通信制御装置が出力した場合、対象データを格納するキャッシュメモリ上で前記対象データへの前記アトミック操作を行い、
    前記キャッシュメモリ上で前記アトミック操作を行った結果を前記通信制御装置に通知することを特徴とする並列計算機システムの制御方法。
  5. 通信を行う通信制御装置と、データを記憶する主記憶装置と、前記通信制御装置と前記主記憶装置とに接続される演算処理装置とをそれぞれ有するとともに前記通信制御装置によりネットワークを介して他の情報処理装置に接続される情報処理装置において、
    前記演算処理装置は、
    不可分操作であるアトミック操作を要求するアトミック操作要求を前記通信制御装置が出力した場合、対象データを格納するキャッシュメモリ上で前記対象データへの前記アトミック操作を行う処理部と、
    前記キャッシュメモリ上で前記アトミック操作を行った結果を前記通信制御装置に通知する通知部と、
    を有することを特徴とする情報処理装置。
  6. 通信を行う通信制御装置と、データを記憶する主記憶装置と、前記通信制御装置と前記主記憶装置とに接続される演算処理装置において、
    不可分操作であるアトミック操作を要求するアトミック操作要求を前記通信制御装置が出力した場合、対象データを格納するキャッシュメモリ上で前記対象データへの前記アトミック操作を行う処理部と、
    前記キャッシュメモリ上で前記アトミック操作を行った結果を前記通信制御装置に通知する通知部と、
    を有することを特徴とする演算処理装置。
  7. データを記憶する主記憶装置に接続され、不可分操作であるアトミック操作を要求するアトミック操作要求を前記通信制御装置が出力した場合、対象データを格納するキャッシュメモリ上で前記対象データへの前記アトミック操作を行う処理部と、前記キャッシュメモリ上で前記アトミック操作を行った結果を前記通信制御装置に通知する通知部とを備える演算処理装置に接続する通信制御装置において、
    前記アトミック操作を要求するために前記ネットワークを介して送信されるメッセージであるアトミック操作要求メッセージを受信した場合、前記アトミック操作要求を前記演算処理装置と前記主記憶装置とに対して出力する要求部と、
    前記要求部が出力したアトミック操作要求によるアトミック操作を行った処理結果の通知である処理結果通知を、前記演算処理装置又は前記主記憶装置から受信する受信部と、
    前記受信部が受信した処理結果通知の送信元と前記処理結果通知が表すアトミック操作の実行情報とに基づき、前記アトミック操作要求メッセージの応答の生成に用いる処理結果通知を決定し、決定した前記処理結果通知を用いて前記応答を生成して前記ネットワークに出力する制御部と、
    を有することを特徴とする通信制御装置。
JP2013248582A 2013-11-29 2013-11-29 並列計算機システム、並列計算機システムの制御方法、情報処理装置、演算処理装置および通信制御装置 Active JP6115455B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2013248582A JP6115455B2 (ja) 2013-11-29 2013-11-29 並列計算機システム、並列計算機システムの制御方法、情報処理装置、演算処理装置および通信制御装置
EP14192720.2A EP2879058B1 (en) 2013-11-29 2014-11-11 Parallel computer system, control method of parallel computer system, information processing device, arithmetic processing device, and communication control device
US14/540,381 US9542313B2 (en) 2013-11-29 2014-11-13 Parallel computer system, control method of parallel computer system, information processing device, arithmetic processing device, and communication control device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013248582A JP6115455B2 (ja) 2013-11-29 2013-11-29 並列計算機システム、並列計算機システムの制御方法、情報処理装置、演算処理装置および通信制御装置

Publications (2)

Publication Number Publication Date
JP2015106312A true JP2015106312A (ja) 2015-06-08
JP6115455B2 JP6115455B2 (ja) 2017-04-19

Family

ID=51900201

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013248582A Active JP6115455B2 (ja) 2013-11-29 2013-11-29 並列計算機システム、並列計算機システムの制御方法、情報処理装置、演算処理装置および通信制御装置

Country Status (3)

Country Link
US (1) US9542313B2 (ja)
EP (1) EP2879058B1 (ja)
JP (1) JP6115455B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2022509735A (ja) * 2018-11-07 2022-01-24 アーム・リミテッド 記憶されたデータの変更装置及び変更方法

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108268939B (zh) * 2016-12-30 2021-09-07 上海寒武纪信息科技有限公司 用于执行lstm神经网络运算的装置和运算方法
US11016802B2 (en) 2018-01-26 2021-05-25 Nvidia Corporation Techniques for ordering atomic operations
CN114721996B (zh) * 2022-06-09 2022-09-16 南湖实验室 一种分布式原子操作的实现方法与实现装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0319049A (ja) * 1989-06-16 1991-01-28 Fujitsu Ltd アクセス制御方法及び情報処理装置
JPH05181745A (ja) * 1991-06-04 1993-07-23 Intel Corp 二次レベルキャッシュ制御装置
JP2006293550A (ja) * 2005-04-07 2006-10-26 Fujitsu Ltd キャッシュコヒーレンス管理装置およびキャッシュコヒーレンス管理方法
US20100281220A1 (en) * 2009-04-30 2010-11-04 International Business Machines Corporation Predictive ownership control of shared memory computing system data

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2442984B (en) 2006-10-17 2011-04-06 Advanced Risc Mach Ltd Handling of write access requests to shared memory in a data processing apparatus
JP4851958B2 (ja) 2007-02-19 2012-01-11 エヌイーシーコンピュータテクノ株式会社 バスインタフェースアダプタ、データ転送方法、データ転送システム及び情報処理装置
US20090077322A1 (en) * 2007-09-19 2009-03-19 Charles Ray Johns System and Method for Getllar Hit Cache Line Data Forward Via Data-Only Transfer Protocol Through BEB Bus
US8412889B2 (en) * 2008-10-16 2013-04-02 Microsoft Corporation Low-level conditional synchronization support
US8473681B2 (en) * 2009-02-17 2013-06-25 Rambus Inc. Atomic-operation coalescing technique in multi-chip systems
US8380935B2 (en) * 2009-06-12 2013-02-19 Cray Inc. Atomic memory operation cache protocol with opportunistic combining
EP2696289B1 (en) * 2011-04-07 2016-12-07 Fujitsu Limited Information processing device, parallel computer system, and computation processing device control method
GB2518613A (en) * 2013-09-25 2015-04-01 Ibm Multiple core processing with high throughput atomic memory operations

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0319049A (ja) * 1989-06-16 1991-01-28 Fujitsu Ltd アクセス制御方法及び情報処理装置
JPH05181745A (ja) * 1991-06-04 1993-07-23 Intel Corp 二次レベルキャッシュ制御装置
JP2006293550A (ja) * 2005-04-07 2006-10-26 Fujitsu Ltd キャッシュコヒーレンス管理装置およびキャッシュコヒーレンス管理方法
US20100281220A1 (en) * 2009-04-30 2010-11-04 International Business Machines Corporation Predictive ownership control of shared memory computing system data

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2022509735A (ja) * 2018-11-07 2022-01-24 アーム・リミテッド 記憶されたデータの変更装置及び変更方法

Also Published As

Publication number Publication date
US9542313B2 (en) 2017-01-10
EP2879058B1 (en) 2018-10-31
EP2879058A1 (en) 2015-06-03
US20150154115A1 (en) 2015-06-04
JP6115455B2 (ja) 2017-04-19

Similar Documents

Publication Publication Date Title
US10891228B2 (en) Cache line states identifying memory cache
US10248564B2 (en) Contended lock request elision scheme
US11403247B2 (en) Methods and apparatus for network interface fabric send/receive operations
JP4474570B2 (ja) キャッシュコヒーレンシ制御方法
US20150058570A1 (en) Method of constructing share-f state in local domain of multi-level cache coherency domain system
US8762651B2 (en) Maintaining cache coherence in a multi-node, symmetric multiprocessing computer
US10228869B1 (en) Controlling shared resources and context data
US10782896B2 (en) Local instruction ordering based on memory domains
JP6514329B2 (ja) メモリアクセス方法、スイッチ、およびマルチプロセッサシステム
JP6115455B2 (ja) 並列計算機システム、並列計算機システムの制御方法、情報処理装置、演算処理装置および通信制御装置
US8806168B2 (en) Producer-consumer data transfer using piecewise circular queue
US20160034332A1 (en) Information processing system and method
CN107250995B (zh) 存储器管理设备
US20080098198A1 (en) Information processing device, data transfer method, and information storage medium
JP2009217721A (ja) マルチプロセッサシステムにおけるデータ同期方法及びマルチプロセッサシステム
CN117370046A (zh) 进程间通信方法、系统、设备和存储介质
US10775870B2 (en) System and method for maintaining cache coherency
US10318424B2 (en) Information processing device
KR101303079B1 (ko) 멀티-코어 기반의 가상화 환경에서 캐쉬 일관성을 제어하는 장치 및 방법
JP4414447B2 (ja) 情報処理装置、情報処理システムおよび情報処理方法
JP2010061220A (ja) データ転送装置、データ転送方法およびプロセッサ
TWI758317B (zh) 用於提供資料存取行為原子集的裝置及方法
JP2013174943A (ja) 超並列計算機、同期方法、同期プログラム
JP4833911B2 (ja) プロセッサユニットおよび情報処理方法
JP6631317B2 (ja) 演算処理装置、情報処理装置および情報処理装置の制御方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160804

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170215

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170306

R150 Certificate of patent or registration of utility model

Ref document number: 6115455

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150