JP2015170313A - 演算処理装置および演算処理装置の制御方法 - Google Patents

演算処理装置および演算処理装置の制御方法 Download PDF

Info

Publication number
JP2015170313A
JP2015170313A JP2014046912A JP2014046912A JP2015170313A JP 2015170313 A JP2015170313 A JP 2015170313A JP 2014046912 A JP2014046912 A JP 2014046912A JP 2014046912 A JP2014046912 A JP 2014046912A JP 2015170313 A JP2015170313 A JP 2015170313A
Authority
JP
Japan
Prior art keywords
request
arithmetic processing
management data
unit
processing unit
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
JP2014046912A
Other languages
English (en)
Other versions
JP6303632B2 (ja
Inventor
石井 寛之
Hiroyuki Ishii
寛之 石井
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 JP2014046912A priority Critical patent/JP6303632B2/ja
Publication of JP2015170313A publication Critical patent/JP2015170313A/ja
Application granted granted Critical
Publication of JP6303632B2 publication Critical patent/JP6303632B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Multi Processors (AREA)

Abstract

【課題】複数の演算処理装置間で、管理データの順序保証、例えば、主記憶へのアクセスに対応する管理データの設定前に、当該管理データを読み出さないようにするような制御を可能にする。
【解決手段】自装置に対応する主記憶装置をそれぞれ管理するともに、他の演算処理装置が管理する他の主記憶装置に他の演算処理装置を通じてアクセス可能な演算処理装置において、自装置に対応する主記憶装置と他の主記憶装置のそれぞれの記憶領域ごとに、記憶領域がアクセスされたときに設定される管理データの設定または読み出しを行う管理データ制御部と、自装置に対応する主記憶装置2A又は他の主記憶装置のいずれかの記憶領域にアクセスされた場合、アクセスされた記憶領域に対応する管理データの読み出しよりも管理データの設定を優先して実行させる要求処理部と、を備える。
【選択図】図4

Description

本発明は、演算処理装置および演算処理装置の制御方法に関する。
メインフレーム等、情報処理装置の演算処理装置には、主記憶の一定記憶領域ごと、例えば4KBごとにKEYデータという主記憶管理のためのデータが存在するものがある。一定領域ごとのKEYデータは、例えば、それぞれ対応する一定領域の参照(R bit)と更新(C bit)を表現する。演算処理装置のCPU(Central Processing Unit)や、CPUに含まれるコアが主記憶内のある記憶領域へストア(ST)命令を発行すると、ストア命令の発行に伴って、以下の処理がなされる。すなわち、R bitとC bitを更新する更新要求(SET−RCと呼ぶことにする)がKEYデータを管理するKEY制御部へ発行される。以下、CPUあるいはCPUに含まれるコアをプロセッサ、あるいは演算処理装置ともいう。ただし、演算処理装置が複数のCPUを有し、各CPUが複数のコアを有する場合もある。さらに、以下、KEYデータを管理データと呼ぶことにする。
実際に記憶領域にストアされたデータと、データがストアされた記憶領域の管理データには、整合性が保たれていることが求められる。ストア対象のデータを別のプロセッサが参照したとき、書き込み後の最新データに伴って発行された管理データの更新要求が処理されていることが、例えば、システム管理上要求される。なお、演算処理装置において、管理データ(KEYデータ)を参照する参照命令としては、ISK(Insert Storage Key)命令が例示される。例えば、ISK命令は、オペランドで指定されたレジスタに対して、指定された主記憶のアドレスに対応するKEYデータを主記憶から読み出してセットする。OS(Operating System)は、例えば、ISK命令を用いて主記憶のR bit、C bit等を読み出し、仮想記憶におけるページの入れ替え時に、どのページを先に追い出すか等の判断に使用する。OSは、例えば、頻繁に更新、参照されるページは極力追い出さないようにページを管理すればよい。
演算処理装置においては、ロード(LD)命令で新データが参照された後に発行される管理データの参照命令によって、ストア(ST)命令発行前の管理データが参照できない制御がなされている。
例えば、演算処理装置が、複数のプロセッサとして、CPU0とCPU1とを有する場合の主記憶へのストアとロードの処理は、以下のように例示される。
1.CPU0 ST (A) ・・・ CPU0がAというアドレスにデータをストアした。ストアに伴って、SET−RC (A)が発行される。
2.CPU1 LD (A) ・・・ CPU1がAというアドレスのデータを読み出した。
3.CPU1 ISK (A) ・・・ CPU1がAというアドレスを含む一定範囲の記憶領域に対応するKEYデータを読み出す命令を発行する。
手順2でロードしたときに、手順1でストアしたデータが参照された場合、手順3で発行したISK(管理データの参照命令)は、手順1でのSET−RC(管理データの更新要求)後のKEYデータ(管理データ)を参照する結果となるように、KEYデータの設定と参照との関係が制御されている。
図1に、主記憶へのアクセスレイテンシがどのCPUからも平等なUMA(Unifo
rm Memory Access)型の大規模SMP(Symmetric multiprocessing)構成の演算処理装置の構成を例示する。図1の演算処理装置は、複数のシステムボードを有する。また、各システムボードは、複数のCPU(CPU1−LSI、CPU2−LSI、CPU3−LSI等)と、複数のSC(System Controller; SC1−LSI、SC2−LSI、SC3−LSI等)と、複数に区分された主記憶(MEM、メインストレージ)とを有する。さらに、各CPUは、例えば、複数の演算コアと、キャッシュ制御部と、外部インターフェース部とを有する。一方、各SCは、CPUポート部と、キャッシュTAG情報部と、メモリコントローラと、KEY制御部とを有する。各CPUの外部インターフェース部と、それぞれのCPUに対応するSCのCPUポート部とが接続されている。また、各システムボードのSCは、他のシステムボードのSCと、例えば、インターコネクトと呼ばれる伝送路で接続される。
主記憶(図中MEM)に対するアクセス命令は演算コアから発行される。アクセス命令の対象データが演算コア内に配置されたL1キャッシュでヒットしなかった場合には、アクセス命令がL2キャッシュへのアクセスとなって転送される。さらに、アクセス命令の対象データがL2キャッシュでヒットしなかった場合、CPUの外に別チップで存在するSCへと要求が伝達される。
外部インターフェース部は、演算コアからSCへの要求を送り出す。要求は外部インターフェース部経由でSCへと伝えられる。SCは、キャッシュTAG情報と呼ばれる情報を保持している。キャッシュTAG情報は、アクセス対象のデータがどのSCの管理下にあるかを示す情報を含む。SCは、例えば、ローカルパイプラインと呼ばれるパイプライン処理によってキャッシュTAG情報を参照する。さらに、SCは、他のシステムボードに実装される別のSCと通信を行いながら、最終的に要求されたデータを格納するメモリを管理するメモリコントローラやKEY制御部へ要求を伝達する。SCは、キャッシュTAG情報の示すアドレスを管理するメモリコントローラにアクセス命令を送る。メモリコントローラへのアクセス要求、あるいは他のSCとの通信は、グローバルパイプラインと呼ばれるパイプライン処理によって行われる。各SCのグローバルパイプラインは、互いに同期して実行される。
なお、メモリコントローラはメインストレージとのデータのやり取りを行うユニットであり、KEY制御部はKEYデータを管理するユニットである。KEYデータに関係する要求においてはSCの内部は後続の要求が追い越すことはなく一旦受け付けられた要求は全てのSCで同期して動作することで到着順に処理される。
ところで、上述のように要求がSCに入ってからは、KEYデータに関係する要求の実行順序が保証される。一方、要求の発行元であるCPU側でもKEYデータに関係する要求の実行順序を保証する仕組みが求められる。ところで、CPUの外部インターフェース部では要求種別ごとにキューが分かれている。つまり、CPUの外部インターフェース部は、要求された順序とは無関係にSCに対して、要求種別間で平等に要求を発行する。
図2に、演算処理装置内での要求の流れを例示する。図2において、CPUの外部インターフェース部の中にある2つの四角が要求種別毎に存在するキューを例示している。図2では先に説明したストア命令(ST)がCPU0で発行された後に、CPU1からロード命令(LD)が発行された場合を例示している。図2のS1ではCPU0の演算コアがストア命令(ST)を実行し、それに伴い管理データ(KEY)のRC bit更新要求であるSET−RC要求が発行される。SET−RC要求は外部インターフェース部内のキューへセットされる。しかしこのSET−RC要求は外部インターフェース部内のSET−RCキューの混み具合によっては直ちにSCへ発行されるとは限らない。その間に別のCPUであるCPU1が、CPU0によってストア(ST)されたアドレスに対してロード(LD)命令の要求(LD要求)を発行したとする(S2)。LD要求はSCを経由
して(S3)、実際にデータを保持しているCPU0へとデータの読み出し要求(吐き出し要求ともいう)が発行される(S4)。吐き出し要求を受けたCPU0の演算コアによって読み出されたデータは外部インターフェース部を経由してSCへと応答される。このときストア(ST)されて更新されたデータの読み出しがSET−RCを追い抜いてしまうと、管理データ(KEY)が更新されていない状態でデータの更新が他のCPUへ伝わってしまう。そのため、外部インターフェース部内のキュー取り出し部は、管理データ(KEY)の設定要求(SET−RC)がキュー内からなくなるまで読み出し要求に対するデータの応答をSCへは発行しない。
特表2003−512673号公報 特開2003−67357号公報 特開平11−167557号公報 特開2003−323415号公報
上述のように、従来技術では、UMA型のSMP構成の演算処理装置において、要求がSC等のCPU外の制御部に入ってから、その制御部が他の制御部と連携することで後続の要求が先行する要求を追い抜かないようになっている。一方、要求がSC等の制御部に入る前の順序保証は、CPU側で追い越しが起こらない制御によってなされていた。しかしながら、図2のようにどのCPUからもメモリが等距離にあるような構造(UMA)である場合、主記憶へのアクセスに制御部(SC)間の連携通信が入るため、レイテンシが問題となる。つまり、CPUの半導体集積度の向上に伴い、このような主記憶のレイテンシの問題や部品点数の削減などの観点から次のような課題が生じる。すなわち、例えば、CPU外で管理データ(KEY)を制御する制御部(SC)をなくするとともに、複数CPU間で主記憶の領域ごとにアクセス時間が均一とは限らないNUMA(Non-Uniform Memory Access、ヌマ)型構造を取り入れることが望まれている。しかしながら、複数のコ
ア間、あるいは複数のプロセッサ間で管理データの順序を制御する制御部(SC)をなくそうとすると、管理データ(KEY)特有の順序保証、例えば、主記憶へのアクセスに対応する管理データの設定前に、当該管理データを読み出さないようにするような制御をどのように実現するか、という課題が生じる。
開示の技術の一側面は、自装置に対応する主記憶装置をそれぞれ管理するともに、他の演算処理装置が管理する他の主記憶装置に前記他の演算処理装置を通じてアクセス可能な演算処理装置によって例示される。本演算処理装置は、前記自装置に対応する主記憶装置と前記他の主記憶装置のそれぞれの記憶領域ごとに、前記記憶領域がアクセスされたときに設定される管理データの設定または読み出しを行う管理データ制御部と、前記自装置に対応する主記憶装置又は前記他の主記憶装置のいずれかの記憶領域にアクセスされた場合、アクセスされた前記記憶領域に対応する管理データの読み出しよりも管理データの設定を優先して実行させる要求処理部と、を備える。
本演算処理装置によれば、複数の演算処理装置間で、管理データの順序保証、例えば、主記憶へのアクセスに対応する管理データの設定前に、当該管理データを読み出さないようにするような制御が可能となる。
UMA型の大規模SMP構成の演算処理装置の構成を例示する図である。 演算処理装置内での要求の流れを例示する図である。 実施例1に係るNUMA型の演算処理装置10の構成を例示する図である。 KEYリクエスト処理部の構成を例示する図である。 比較例に係る演算処理装置の制御シーケンスチャートを例示する図である。 比較例に係る演算処理装置の制御シーケンスチャートを例示する図である。 実施例1の方式を適用したシーケンスチャートを例示する図である。 実施例2に係るキーリクエスト処理部の構成を例示する図である。
以下、図面を参照して、一実施形態に係る演算処理装置について説明する。以下の実施形態の構成は例示であり、本演算処理装置は実施形態の構成には限定されない。以下の実施例1、2では、メモリコントローラやKEY制御部などの機能をCPUに内蔵し、メモリをCPU直結にすることでメモリレイテンシを削減しNUMA(Non−Uniform Memory Access)構成が実現される。ただし、NUMA構成ではSCが存在しない。このため、図2に例示した仕組みでは、KEYデータ(管理データに相当)への要求の順序保証を行うことができない。そこで、以下の実施例1、2では、KEYデータへの要求の順序制御を行う新たな回路が提案される。
[実施例1]
図3から図7を参照して、実施例1に係る演算処理装置を説明する。図3に、実施例1に係るNUMA型の演算処理装置10の構成を例示する。演算処理装置10は、複数のCPU0, CPU1等と、CPU0およびCPU1等からアクセスされる主記憶(MEM)2を有する。ただし、図3では、CPU0の管理化にある主記憶2の部分を主記憶2Aといい、CPU1の管理化にある主記憶の部分を主記憶2Bという。主記憶2A、2Bを総称する場合には、主記憶2ということにする。主記憶2A、2Bが主記憶装置の一例である。ここで、主記憶2A(2B)がCPU0(CPU1)の管理化にあるとは、例えば、CPU0(CPU1)が、主記憶2Aへのデータ書き込み、および読み出しを行うとともに、主記憶2A(2B)の状態を管理していることをいう。また、主記憶2A(2B)の状態としては、主記憶2A(2B)のデータがCPU0(CPU1)以外の他のCPUにCPU0(CPU1)を介して引き渡されて、読み出し中であるような状態が例示される。CPU0(CPU1)は、自身が管理する主記憶2A(2B)にアクセスするとともに、相手のCPU1(CPU0)を介して、相手のCPU1(CPU0)が管理する主記憶2B(2A)にアクセスする。したがって、演算処理装置10は、CPU0,CPU1等から主記憶2A、2Bへのアクセス時間が非均等なシステムであるNUMA型のシステムであるということができる。なお、CPU0、CPU1は、演算処理部の一例である。ただし、CPU0、CPU1は、演算処理装置の一例ということもできる。
<CPUの構成>
演算処理装置10内の各CPU、例えば、CPU0とCPU1とは、インターコネクトと呼ばれる伝送路3により接続されている。
さらに、例えば、CPU0は、演算コア11A、メモリコントローラ12A、キャッシュ制御部13A、KEY制御部14A、およびKEYリクエスト処理部15Aを有している。なお、他のCPU、例えば、CPU1も、CPU0と同様に、演算コア11B、メモリコントローラ12B、キャッシュ制御部13B、KEY制御部14B、およびKEYリクエスト処理部15Bを有している。以下、CPU0を例にして、各CPUの構成および作用を例示する。なお、総称する場合には、CPU0、CPU1をCPUと呼び、演算コア11A、11Bを演算コア11と呼び、メモリコントローラ12A、12Bをメモリコントローラ12と呼ぶことにする。同様に、総称する場合には、キャッシュ制御部13A
、13Bをキャッシュ制御部13と呼び、KEY制御部14A、14BをKEY制御部14と呼び、KEYリクエスト処理部15A、15BをKEYリクエスト処理部15と呼ぶことにする。
演算コア11Aは、主記憶2Aに実行可能に展開されたコンピュータプログラムの命令を実行することにより、メモリコントローラ12Aを介して、CPU0が管理する主記憶2AあるいはCPU1等が管理する主記憶2B等に格納されたデータを処理する。なお、演算コア11Aは、CPU1等が管理する主記憶2B等に格納されたデータを処理する場合には、適切なタイミングで伝送路3を介して、CPU1から処理対象のデータを取得し、適切なタイミングで、CPU1へ処理後のデータを引き渡す。
メモリコントローラ12Aは、主記憶2Aのデータを管理する。例えば、メモリコントローラ12Aは、CPU0の要求に応じて、主記憶2Aのデータを取得し、CPU0に引き渡す。
キャッシュ制御部13Aは、図示しないキャッシュメモリへのデータの格納、読み出し等を実行する。また、キャッシュ制御部13Aは、キャッシュTAG情報を保持し、演算コア11Aから要求されたデータの管理先を判定する。例えば、要求されたデータがCPU1で管理されている場合には、キャッシュ制御部13Aは、CPU1のキャッシュ制御部13Bを介して、CPU1が管理する主記憶2Bのデータを取得する。また、キャッシュ制御部13Aは、CPU1のキャッシュ制御部13Bの要求に応じて、CPU0が管理する主記憶2Aに格納されたデータをキャッシュ制御部13Bに引き渡す。さらに、キャッシュ制御部13Aは、適切なタイミングでキャッシュ制御部13Bを介して、CPU1で処理されたデータを受け取り、CPU0が管理する主記憶2Aに格納する。CPU1のキャッシュ制御部13Bの制御もキャッシュ制御部13Aの制御と同様である。また、CPUの数が3以上の場合も、キャッシュ制御部13の制御は、キャッシュ制御部13Aと同様である。
KEY制御部14Aは、CPU0の演算コア11A、キャッシュ制御部13A、あるいは他のCPUからのリクエストにしたがって、主記憶2AへのKEYデータの設定、および主記憶2AからのKEYデータの読み出しを実行する。なお、KEYデータ等の管理データが主記憶に書き込まれる場合には、管理データを書き込むための書き込み要求が実際に完了したことを示す応答が返されない突き放し型と呼ばれる書き込み命令(posted write命令ともいう)が用いられる。KEY制御部14A、14Bが管理データ制御部の一例である。
<KEYリクエスト処理部の構成>
本実施例1では、各CPUチップは、KEYリクエスト処理部というモジュールを有する。図4に、CPU0のKEYリクエスト処理部15Aの構成を例示する。KEYリクエスト処理部15Aは、KEYデータの設定または読み出し等の要求(以下、リクエストという)を受け付けるポート部151と、どのリクエストを受理するかを決定するプライオリティ部152と、選ばれたリクエストをKEY制御部14Aへと発行するための出力部である出力バッファ153を有する。
ポート部151と出力バッファ153はFIFO(First In First Out)によってリクエストを保持する。したがって、ポート部151と出力バッファ153においては、後続リクエストによる先行リクエストの追い越しは起こらない。ところで、リクエストには、自チップ内のコアから発生するローカルリクエストと他チップのコアが発行するリモートリクエストが存在する。これらのリクエストはCPUチップ間接続インターフェースおよび図3の伝送路3によってCPU間でやり取りされる。さらに、リク
エストは2つのグループに分類される。2つの分類は、MO系リクエスト(Move−Out:KEY書き込み系要求)とMI系リクエスト(Move−In:KEY参照系要求)と呼ばれる。MO系リクエストが、設定要求の一例である。また、MI系リクエストが読み出し要求の一例である。
したがって、ポート部151は、MO系のリクエストを記憶するローカルMO用のポート(LMOPT)及リモートMO用のポート(RMOPT)と、MI系のリクエストを記憶するローカルMI用のポート(LMIPT)およびリモートMI用のポート(RMIPT)とを有する。なお、ローカルMO用のポート(LMOPT)とローカルMI用のポート(LMIPT)とは、自装置、つまりCPU0の演算コア11Aあるいはキャッシュ制御部13Aで発生したリクエストを記憶する。一方、リモートMO用のポート(RMOPT)とリモートMI用のポート(RMIPT)とは、CPU0以外の他のCPU(CPU1等)で発生したリクエストを記憶する。MO系のリクエストを記憶するローカルMO用のポート(LMOPT)及リモートMO用のポート(RMOPT)が、第1の先入れ先出し記憶部の一例である。また、MI系のリクエストを記憶するローカルMI用のポート(LMIPT)およびリモートMI用のポート(RMIPT)が、第2の先入れ先出し記憶部の一例である。
図4において、プライオリティ部152は2段の制御回路を有する。プライオリティ部152の第1段階の制御回路1521、1522は、MO系グループとMI系グループに分けてリクエストを受ける。例えば、制御回路1521には、ローカルのMOとリモートのMOが入力される。また、制御回路1522には、ローカルのMIとリモートのMIが入力される。制御回路1521、1522のそれぞれが、各グループ内で優先されるポートを、例えば、LRU(Least Recently Used)の手順で決定する。つまり、制御回路1521、1522は、リクエストを保持しているポートの中で最も長い間選択されていなかったポートが選択されるような論理で動作する。制御回路1521、1522は、LRUによりポート間で偏り無くKEY制御部にリクエストを発行することを可能にしている。ただし、実施例1を含むいずれの実施形態においても、第1段階の制御回路のポート決定手順がLRUに限定される訳ではない。
次に、第2段階の制御回路1523において、MO系とMI系のプライオリティ選択が行われる。第2段階の制御回路1523は、MO系がMI系より優先されて選択されるように制御する。以上のようなプライオリティ部152の構成により、KEYデータの更新系要求(MO系リクエスト)とKEYの参照系要求(MI系リクエスト)との間の順序が保証されている。第1段階の制御回路1521、1522は、例えば、論理ゲートと、LRUのための処理の履歴を管理するカウンタ、フラグ等で実現される。また、第2段階の制御回路1523は、論理ゲート等で実現される。KEYリクエスト処理部15が要求処理部の一例である。
<比較例のシーケンス>
図5、図6に比較例に係る演算処理装置の制御シーケンスチャートを例示する。図5はCPU0が行ったストア(ST)命令の操作により発行されたSET−RC命令がCPU0の外部インターフェース部内の送信バッファ部に残っている状態でCPU1からアドレス(A)に対してデータのロード(LD)命令が発行された場合の動作を例示している。図のように要求されたデータの応答はCPU0内の外部インターフェース部で止められ、SET−RC(A)が処理されSCへ発行されるまでロード(LD)命令が先に処理されることはない。
図6は図5の状態の続きでSET−RC(A)が処理された後のシーケンスを例示している。CPU0の外部インターフェース部でロード(LD)命令の応答をSCへ返すこと
ができ、要求データは要求元であるCPU1へと応答される。応答データの到着を期にCPU1上でLD(A)命令を発行したプログラムの後続命令であるISK(A)命令が発行される。ISK(A)命令はメインストレージ上にあるKEYデータを読み出してCPUのレジスタにセットする動作を行う。比較例のシーケンスでは、ISK(A)命令が発行されるとき、既にSET−RC(A)は処理された後なので、KEYデータが突き放し型の書き込み命令(posted write命令)で設定される場合でも、KEYデータの順序を保証した動作が可能となる。
<実施例1のシーケンス>
図7に実施例1の方式を適用したシーケンスチャートを例示する。上記比較例での処理と同様に、CPU0がストア(ST)命令を実行することによってSET−RC(A)命令がKEYリクエスト処理部15へ送られる。このとき、SET−RC(A)命令の処理を担当するKEYリクエスト処理部15はCPU0側にあってもよいし、CPU1側にあってもよい。例えば、自CPUが管理する主記憶の部分に含まれないアドレスへのKEYリクエスト処理部へはチップ間インターコネクトを使って、SET−RC(A)命令のアドレス(A)を管理するCPUにリクエストが送出される。なお、主記憶の部分、例えば、主記憶2Aを管理するCPUと、主記憶2AのKEYを管理するCPUが一致しなくてもよい。例えば、CPU0が主記憶2Aを管理し、CPU1が主記憶2AのKEYデータを管理してもよい。
図7では(A)というアドレスを担当しているのがCPU0のKEYリクエスト処理部15Aだった場合を表している。この時点では、リクエストは、KEYリクエスト処理部15Aのポート部151にセットされているが、実際のSET−RCの操作は実行されていない。ここでは仮に他のKEYリクエスト処理が集中してこのSET−RC(A)がポート部151内に滞留しているものと仮定する。このとき、CPU1側からロード(LD(A))命令が発行されると、図7の処理は図5、6の処理とは異なり、CPU0は、SET−RC(A)の処理を待たずに、ロード(LD(A))命令の応答を要求元のCPU1に返すことができる。CPU1上でロード(LD(A))命令を発行したプログラムはロード(LD(A))命令の応答を受け取ったのを期にISK(A)命令を発行する。ISK(A)命令はアドレス(A)を担当するCPU0のKEYリクエスト処理部15Aへチップ間インターコネクトである伝送路3を経由して通知される。
したがって、図7の例では、KEYリクエスト処理部15AにはSET−RC(A)とISK(A)がポートに同時に存在することになる。しかし、実施例1の優先順序を制御するプライオリティ部152の制御回路1521、1522、および1523によりMI系リクエストがMO系リクエストを追い抜くことはできない。このため、図7の例では、SET−RC(A)が先に処理される。M0系リクエストに対応するSET−RC(A)命令の処理順序はKEYリクエスト処理部15Aのポート部151にセットされた時点でMI系リクエストより先に処理されることが確定する。このため、SET−RC(A)命令を発行したCPU0はKEYリクエスト処理部15Aのポート部151にセットした時点で、SET−RC(A)命令の処理完了を待つことなく、後続の処理、例えば、CPU1からのロード(LD(A))命令に対応する応答をCPU1に返す処理を続けることができる。プライオリティ部152は、選択回路の一例である。
<実施例1の効果>
実施例1のリクエスト処理部15によれば、KEYリクエスト処理部15のポート部15にリクエストがセットされた時点で、処理順序を守って、リクエストが処理されることが保証できる。したがって、例えば、CPUは、KEYデータを突き放し型の書き込み命令(posted write命令)で設定する場合でも、リクエストをポート部151にセットした時点で、リクエストの処理完了とみなして次のリクエストの発行、処理の続行等が可能と
なる。
また、図3に例示したように、実施例1の演算処理装置10は、SCの機能をCPUに内蔵し、CPU外部のSCを無くした。このため、LSI間通信が減りレイテンシが削減される。また部品点数が削減される。
比較例の方式ではCPU0でストア(ST)された後のデータをCPU1がロード(LD)したものをCPU外部インターフェース部で順序を保証していたが、実施例1の方式では後続のKEYデータの参照要求はKEYデータ書き込み要求の後に処理されることが保証される。このため、例えば、図7に例示したように、実施例1のCPUは、少なくとも自身が管理する主記憶の部分のデータの読み出し要求に対しては、読み出し要求対象のデータに対応するKEYデータの書き込みと無関係に、読み出し要求対象のデータを応答可能である。
[実施例2]
図8を参照して、実施例2にかかる演算処理装置のKEYリクエスト処理部15Cを説明する。上記実施例1では、ポート部151に入力されたリクエストをプライオリティ部152により、MI系リクエストよりM0系リクエストを優先して処理するKEYリクエスト処理部15について説明した。実施例1のポート部151は、図4のように、ローカルMO用のポート、リモートのMO用のポート、ローカルのMI用のポート、およびリモートMI用のポートを有している。実施例2では、実施例1よりもさらに複雑なポート部を有するKEYリクエスト処理部を例示する。実施例2の演算処理装置の他の構成は、実施例1の演算処理装置10と同様である。そこで、同一の構成要素については、同一の符号を付してその説明を省略する。
図8は、実施例2に係るキーリクエスト処理部15Cの構成を例示する。実施例2のリクエスト処理部15Cも、実施例1の場合と同様、ポート部151C、プライオリティ部152C、出力バッファ153C、153Dを有する。
図8のように、実施例2のキーリクエスト処理部15Cでは、実施例1のキーリクエスト処理部15と比較して、ポート部151Cの構成が複雑となっている。すなわち、ポート部151Cは、ローカルのMO/MI用のポート(LMOPT、LMIPT)、リモートのMO/MI用のポート(RMOPT、RMIPT)に加えて、LKRPTが4つ追加されている(LKRPT00、LKRPT01、LKRPT10、LKRPT11)。実施例1で説明したように、LMOPT、LMIPT、RMOPT、RMIPTには、それぞれ、ローカルのCPUのコアから発行されるMO系リクエスト、MI系リクエスト、リモートのCPUのコアから発行されるMO系リクエスト、MI系リクエストが入力される。
また、図8では、L2キャッシュは、4つにアドレスインターリーブされ、SX00、SX01、SX10、SX11で例示され、KEYリクエスト処理部15Cに接続されている。上記4つのポートLKRPT00、LKRPT01、LKRPT10、LKRPT11には、L2キャッシュから発行されるメモリアクセスに付随するKEYアクセスの要求が入力される。すなわち、CPUからの主記憶へのアクセス要求は、インターリーブされたL2キャッシュを通じて、各ポートにセットされる(LKRPT00/01/10/11)。ローカルのMO用のポート(LMOPT)、リモートのMOの用ポート(RMOPT)が第1の先入れ先出し記憶部の一例である。また、ローカルのMI用のポート(LMIPT)、リモートのMI用のポート(RMIPT)、および4つのポートLKRPTが、第2の先入れ先出し記憶部の一例である。また、キーリクエスト処理部15Cが、要求処理部の一例である。
図8では、さらに、リモートのLSI(Large Scale Integrated circuit)のルータ(RT)がKEYリクエスト処理部15Cに接続されている。MO系KEYリクエストは、RT(ルータ)受信部となるRMOPTにおいて、後続のパケットに追い越されないことが保証される。RMOPTにおいて、パケットの追い越しが発生しないことが、データとKEYの順序性保証のための要件となる。そのため、送信側LSIのルータ(RT)から受信側LSIのRMOPTに受信したパケットがRMOPTのビジーによりRT内で待たされるがない制御が求められる。
そこで、例えば、RMOPTは到着する全てのリクエストを受けきるように制御される。到着する全てのリクエストを受けきるようにするために、送信側のリクエスト発行部(例えば、L2キャッシュ制御部)はリクエスト送出からCPLT(Complete、完了応答)受信までクレジット管理を行う。一方、受信側のキーリクエスト処理部15Cは、クレジット数と同じ数だけのエントリ数のRMOPTを持つようにすればよい。
実施例2のプライオリティ部152Cは、実施例1と同様に、3つの制御回路1521C、1522C、1523Cを有する。制御回路1521Cには、ポート部151Cのうち、MI系のリクエストを保持するポートLMOPT、RMOPTが接続される。また、制御回路1521Cには、LMOPT、RMOPT以外のポートが接続される。そして、実施例1と同様、制御回路1521C、1521C内では、それぞれ、たとえば、LRUにしたがってリクエストが処理される。そして、制御回路1523Cは、制御回路1522Cからのリクエスト(MI系リクエストおよびL2キャッシュからのリクエスト)よりも、制御回路1521CからのMO系のリクエストを優先して、出力バッファ153C、153Dに出力する。プライオリティ部152Cは、選択回路の一例である。
出力バッファ153C、153Dは、アドレスインターリーブされた主記憶に対応している。出力バッファ153C、153Dは、受けたリクエストをそれぞれアドレスインターリーブされた主記憶に対応するKEY制御部KX0、KX1に発行する。図中KX0/KX1とはKEY制御部であり、内部に最近使用したKEYデータを保持できるキャッシュを備えてもよい。KX0/KX1は、例えば、メモリコントローラ(MAC)に接続されており、MAC経由で図示しない主記憶へと要求を発行する。
以上述べたように、図8に示したキーリクエスト処理部15Cは、MI系のリクエストを他のKEYデータへのリクエストよりも優先して処理する。そのため、実施例2のKRYリクエスト処理部15Cを有する演算処理装置のCPUは、ポート部151Cにリクエストをセットした時点で、リクエストの処理完了とみなして次のリクエストの発行、あるいは処理の続行等が可能となる。演算処理装置のCPUは、例えば、KEYデータを突き放し型の書き込み命令(posted write命令)で設定する場合でも、ポート部151Cにリクエストをセットした時点で、リクエストの処理完了とみなして次のリクエストの発行、あるいは処理の続行等が可能となる。
CPU0、CPU1 CPU
2A、2B 主記憶
3 伝送路
11A、11B 演算コア
12A、12B メモリコントローラ
13A、13B キャッシュ制御部
14A、14B KEY制御部
15A、15B KEYリクエスト処理部
151、151C ポート部
152、152C プライオリティ部
153、153C 出力バッファ

Claims (7)

  1. 自装置に対応する主記憶装置をそれぞれ管理するともに、他の演算処理装置が管理する他の主記憶装置に前記他の演算処理装置を通じてアクセス可能な演算処理装置において、
    前記自装置に対応する主記憶装置と前記他の主記憶装置のそれぞれの記憶領域ごとに、前記記憶領域がアクセスされたときに設定される管理データの設定または読み出しを行う管理データ制御部と、
    前記自装置に対応する主記憶装置又は前記他の主記憶装置のいずれかの記憶領域にアクセスされた場合、アクセスされた前記記憶領域に対応する管理データの読み出しよりも前記管理データの設定を優先して実行させる要求処理部と、を備える演算処理装置。
  2. 前記要求処理部は、前記管理データの設定を要求する設定要求を記憶する第1の先入れ先出し記憶部と、
    前記管理データの読み出しを要求する読み出し要求を記憶する第2の先入れ先出し記憶部と、
    前記第2の先入れ先出し記憶部からの読み出し要求よりも前記第1の先入れ先出し記憶部からの設定要求を優先して選択する選択回路と、を有する請求項1に記載の演算処理装置。
  3. 前記管理データ制御部は、書き込み要求が完了したことを示す応答が返されない命令により、前記管理データを前記主記憶装置に設定する請求項1または2に記載の演算処理装置。
  4. 自装置に対応する主記憶装置をそれぞれ管理するともに、他の演算処理装置が管理する他の主記憶装置に前記他の演算処理装置を通じてアクセス可能な演算処理装置の制御方法において、
    前記自装置に対応する主記憶装置又は前記他の主記憶装置の記憶領域にアクセスするステップと、
    前記自装置に対応する主記憶装置又は前記他の主記憶装置のいずれかの記憶領域にアクセスされた場合、主記憶装置のそれぞれの記憶領域ごとに設けられた、アクセスされた前記記憶領域に対応する管理データの読み出しよりも前記管理データの設定を優先して実行させる処理ステップと、を有する演算処理装置の制御方法。
  5. 前記処理ステップは、
    前記管理データの設定を要求する設定要求を第1の先入れ先出し記憶部に記憶するステップと、
    前記管理データの読み出しを要求する読み出し要求を第2の先入れ先出し記憶部に記憶するステップと、
    前記第2の先入れ先出し記憶部からの読み出し要求よりも前記第1の先入れ先出し記憶部からの設定要求を優先して選択するステップと、を有する請求項4に記載の演算処理装置の制御方法。
  6. 書き込み要求が完了したことを示す応答が返されない命令により、前記管理データを前記主記憶装置に設定するステップをさらに有する請求項4または5に記載の演算処理装置の制御方法。
  7. 自装置に対応する主記憶装置をそれぞれ管理するともに、他の演算処理部が管理する他の主記憶装置に前記他の演算処理部を通じてアクセス可能な複数の演算処理部を有する演算処理装置であって、前記それぞれの演算処理部が、
    前記自装置に対応する主記憶装置と前記他の主記憶装置のそれぞれの記憶領域ごとに、
    前記記憶領域がアクセスされたときに設定される管理データの設定または読み出しを行う管理データ制御部と、
    前記自装置に対応する主記憶装置又は前記他の主記憶装置のいずれかの記憶領域にアクセスされた場合、アクセスされた前記記憶領域に対応する管理データの読み出しよりも前記管理データの設定を優先して実行させる要求処理部と、を備える演算処理装置。
JP2014046912A 2014-03-10 2014-03-10 演算処理装置および演算処理装置の制御方法 Active JP6303632B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2014046912A JP6303632B2 (ja) 2014-03-10 2014-03-10 演算処理装置および演算処理装置の制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014046912A JP6303632B2 (ja) 2014-03-10 2014-03-10 演算処理装置および演算処理装置の制御方法

Publications (2)

Publication Number Publication Date
JP2015170313A true JP2015170313A (ja) 2015-09-28
JP6303632B2 JP6303632B2 (ja) 2018-04-04

Family

ID=54202944

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014046912A Active JP6303632B2 (ja) 2014-03-10 2014-03-10 演算処理装置および演算処理装置の制御方法

Country Status (1)

Country Link
JP (1) JP6303632B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6146508B1 (ja) * 2016-03-31 2017-06-14 日本電気株式会社 同期処理ユニット、デバイス、システムおよび方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS60134361A (ja) * 1983-12-23 1985-07-17 Hitachi Ltd キ−ストレ−ジ制御方式
JPH05143464A (ja) * 1991-11-22 1993-06-11 Fujitsu Ltd 主記憶キーアクセス制御方式
US20040066758A1 (en) * 2002-10-03 2004-04-08 Van Doren Stephen R. Channel-based late race resolution mechanism for a computer system
WO2012070291A1 (ja) * 2010-11-26 2012-05-31 インターナショナル・ビジネス・マシーンズ・コーポレーション キャッシュコヒーレンシ制御の方法、システムおよびプログラム

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS60134361A (ja) * 1983-12-23 1985-07-17 Hitachi Ltd キ−ストレ−ジ制御方式
JPH05143464A (ja) * 1991-11-22 1993-06-11 Fujitsu Ltd 主記憶キーアクセス制御方式
US20040066758A1 (en) * 2002-10-03 2004-04-08 Van Doren Stephen R. Channel-based late race resolution mechanism for a computer system
WO2012070291A1 (ja) * 2010-11-26 2012-05-31 インターナショナル・ビジネス・マシーンズ・コーポレーション キャッシュコヒーレンシ制御の方法、システムおよびプログラム

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6146508B1 (ja) * 2016-03-31 2017-06-14 日本電気株式会社 同期処理ユニット、デバイス、システムおよび方法
JP2017182533A (ja) * 2016-03-31 2017-10-05 日本電気株式会社 同期処理ユニット、デバイス、システムおよび方法
US10198375B2 (en) 2016-03-31 2019-02-05 Nec Corporation Synchronization processing unit, device, and system

Also Published As

Publication number Publication date
JP6303632B2 (ja) 2018-04-04

Similar Documents

Publication Publication Date Title
CN110741356B (zh) 多处理器系统中的中继一致存储器管理
EP3796179A1 (en) System, apparatus and method for processing remote direct memory access operations with a device-attached memory
JP5787629B2 (ja) マシンビジョン用マルチプロセッサシステムオンチップ
US10169080B2 (en) Method for work scheduling in a multi-chip system
US7120755B2 (en) Transfer of cache lines on-chip between processing cores in a multi-core system
JP4439491B2 (ja) マルチグラフィックスプロセッサシステム、グラフィックスプロセッサおよびデータ転送方法
US9529532B2 (en) Method and apparatus for memory allocation in a multi-node system
US6351784B1 (en) System for determining whether a subsequent transaction may be allowed or must be allowed or must not be allowed to bypass a preceding transaction
JP2012038293A5 (ja)
CN114756502A (zh) 片上原子事务引擎
US20150254182A1 (en) Multi-core network processor interconnect with multi-node connection
US10592459B2 (en) Method and system for ordering I/O access in a multi-node environment
US9372800B2 (en) Inter-chip interconnect protocol for a multi-chip system
JP2018045700A (ja) ネットワークプロセッサにおけるマルチコア相互接続
US20120311266A1 (en) Multiprocessor and image processing system using the same
US8095617B2 (en) Caching data in a cluster computing system which avoids false-sharing conflicts
US6347349B1 (en) System for determining whether a subsequent transaction may be allowed or must be allowed or must not be allowed to bypass a preceding transaction
JP6303632B2 (ja) 演算処理装置および演算処理装置の制御方法
JP4856413B2 (ja) 演算処理装置、情報処理装置、及び演算処理装置の制御方法
JP2006313479A (ja) 半導体集積回路装置及びデータ転送方法
US20010037426A1 (en) Interrupt handling via a proxy processor
JP2011028343A (ja) 演算処理装置、およびデータ転送方法
JP2002198987A (ja) ハブおよびポート付き転送コントローラのアクティブ・ポート
US7136980B2 (en) Computer system implementing synchronized broadcast using skew control and queuing
JP2009037639A (ja) ストリーミングidメソッドによるdmac発行メカニズム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20161102

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20171114

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20171128

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180129

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180219

R150 Certificate of patent or registration of utility model

Ref document number: 6303632

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150