JP6634864B2 - 演算処理装置、情報処理装置、及び情報処理装置の制御方法 - Google Patents

演算処理装置、情報処理装置、及び情報処理装置の制御方法 Download PDF

Info

Publication number
JP6634864B2
JP6634864B2 JP2016028116A JP2016028116A JP6634864B2 JP 6634864 B2 JP6634864 B2 JP 6634864B2 JP 2016028116 A JP2016028116 A JP 2016028116A JP 2016028116 A JP2016028116 A JP 2016028116A JP 6634864 B2 JP6634864 B2 JP 6634864B2
Authority
JP
Japan
Prior art keywords
unit
cache
request
data
state
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.)
Active
Application number
JP2016028116A
Other languages
English (en)
Other versions
JP2017146787A (ja
Inventor
達彦 根岸
達彦 根岸
雅紀 日下田
雅紀 日下田
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 JP2016028116A priority Critical patent/JP6634864B2/ja
Publication of JP2017146787A publication Critical patent/JP2017146787A/ja
Application granted granted Critical
Publication of JP6634864B2 publication Critical patent/JP6634864B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Description

本発明は、演算処理装置、情報処理装置、及び情報処理装置の制御方法に関する。
複数の演算処理装置としてのCPU(Central Processing Unit)を有し、メモリを複数のCPUで共用するマルチプロセッサシステムにおいて、複数のCPU間におけるデータのコヒーレンシを保つ制御を行うためにキャッシュプロトコルとしてMESIプロトコルを採用し、ディレクトリを使用するマルチプロセッサシステムがある。MESIプロトコルを用いてキャッシュメモリにおけるデータの状態(キャッシュステート)が管理され、ディレクトリによってメモリのデータの所在等が示される。
MESIプロトコルにおいて、M(Modified)ステートは、データが自CPUのキャッシュメモリだけにあり、メモリ内のデータと内容が一致していない変更状態を示す。E(Exclusive)ステートは、データが自CPUのキャッシュメモリだけにあり、メモリ内のデータと内容が一致している排他状態を示す。S(Shared)ステートは、データが他CPUのキャッシュメモリにもあり、メモリ内のデータと内容が一致している共有状態を示す。I(Invalid)ステートは、キャッシュエントリ(キャッシュブロック)が無効になっている無効状態を示す。
このようなマルチプロセッサシステムにおいては、キャッシュ無効化要求を発行することにより、キャッシュ無効化要求で指定された物理アドレスのデータを保持しているキャッシュエントリを無効化することが可能となっている。キャッシュ無効化要求とは、キャッシュメモリを介してアクセスされるキャッシャブル空間に対するキャッシュエントリを無効化する要求であり、指定する物理アドレスを管理しているCPUのキャッシュ制御部に対して発行される。
キャッシュ無効化要求を受けたキャッシュ制御部は、指定された物理アドレスに基づいてキャッシュメモリを検索し、メモリのデータがキャッシュメモリに保持されている場合、そのキャッシュエントリのキャッシュステートをIステートにして無効化する。すなわち、キャッシュ無効化要求で指定された物理アドレスのデータを保持しているキャッシュエントリのキャッシュステートが、例えばMステートやEステートやSステートであっても、それをIステートにし無効化する。
キャッシュミス等のあるリクエストを契機にディレクトリを読み出したときに、1回の読み出しによって得られる複数キャッシュラインのステートが他ノードですべて無効状態又は共有状態であれば、それを示す情報を他のメモリに記録する情報処理装置が提案されている(例えば、特許文献1参照)。
国際公開第2012/039008号
キャッシュ無効化要求を発行することにより、指定する物理アドレスのデータを保持しているキャッシュエントリを無効化することができるが、物理アドレスを指定してキャッシュステートを表示させる方法がないため、無効化するキャッシュエントリのキャッシュステートを観測可能に表示させることができない。したがって、実機試験で検証を行う場合など、無効化対象の物理アドレスについて、その物理アドレスのデータがキャッシュメモリに保持されているか否か、また、保持されている場合にキャッシュステートが何であるかが分からず、状態確認が不十分になってしまう。このため、例えば意図していた試験を行うことができずに試験精度を低下させてしまうことがある。1つの側面では、本発明の目的は、要求で指定された処理対象の物理アドレスのデータのキャッシュステートを表示させることができる演算処理装置を提供することにある。
演算処理装置の一態様は、処理対象のデータの物理アドレスを有する要求を発行する要求発行部と、複数の演算処理装置で共用される主記憶装置のデータを保持するとともに保持しているデータの状態を保持するキャッシュ部を制御し、発行された要求を受けて物理アドレスに基づきキャッシュ部を検索し処理対象のデータの状態を取得した後に要求に応じた処理を行うキャッシュ制御部と、取得した処理対象のデータの状態を通知する応答部と、通知された処理対象のデータの状態を保持する、コア部から読み出し可能な保持部とを有する。
発明の一態様においては、要求で指定された処理対象の物理アドレスのデータのキャッシュステートを示す情報を保持部に保持し、キャッシュステートを観測可能に表示させることができる。
本発明の実施形態におけるマルチプロセッサシステムの構成例を示す図である。 本実施形態における演算処理装置の構成例を示す図である。 本実施形態におけるMESIプロトコルのキャッシュステートを示す図である。 本実施形態におけるディレクトリ情報のフォーマット例を示す図である。 本実施形態におけるアドレスレジスタ、制御レジスタ、及び情報レジスタの例を示す図である。 本実施形態におけるキャッシュ無効化要求及びキャッシュ無効化応答のフォーマット例を示す図である。 本実施形態におけるキャッシュ無効化処理の例を示すフローチャートである。 本実施形態におけるキャッシュ無効化処理の例を示すフローチャートである。 本実施形態におけるキャッシュ無効化処理の例を示すシーケンス図である。
以下、本発明の実施形態を図面に基づいて説明する。
図1は、本発明の一実施形態におけるマルチプロセッサシステムの構成例を示す図である。図1には、演算処理装置としてのCPU(Central Processing Unit)と主記憶装置としてのメモリとの組を複数有し、複数のCPUで各メモリを共用するccNUMA(cache coherent Non Uniform Memory Access)型のマルチプロセッサシステムを一例として示しているが、本実施形態におけるマルチプロセッサシステムはこれに限定されるものではない。
本実施形態では、複数のCPU間におけるデータのコヒーレンシを保つ制御を行うために、例えばキャッシュプロトコルとしてMESIプロトコルを採用し、ディレクトリを使用する。キャッシュメモリにおけるデータの状態(キャッシュステート)がMESIプロトコルを用いて管理され、メモリのデータの所在等がそれぞれのCPUが管理して制御を行うディレクトリによって示される。なお、キャッシュプロトコルはMESIプロトコルに限らず、他の種類のキャッシュプロトコルでも良い。
ここで、MESIプロトコルにおいて、M(Modified)ステートは、データが自CPUのキャッシュメモリだけにあり、メモリ内のデータと内容が一致していない変更状態を示す。E(Exclusive)ステートは、データが自CPUのキャッシュメモリだけにあり、メモリ内のデータと内容が一致している排他状態を示す。S(Shared)ステートは、データが他CPUのキャッシュメモリにもあり、メモリ内のデータと内容が一致している共有状態を示す。I(Invalid)ステートは、キャッシュエントリ(キャッシュブロック)が無効になっている無効状態を示す。
図1に示すマルチプロセッサシステムには、複数のシステムボード101が備えられている。システムボード101の各々は、CPU102とメモリ103との組を複数有するとともにクロスバー(XB)104を有する。図1には、2つのシステムボード101を有する例を示しているが、これに限定されるものではなく、マルチプロセッサシステムが有するシステムボード101の数は任意である。また、システムボード101の各々が2組のCPU102とメモリ103を有する例を示しているが、システムボード101の各々が有するCPU102、メモリ103の数も任意である。
CPU102の各々は、複数のコア部105、キャッシュ制御部106、メモリ制御部107、及びルーター制御部108を有する。なお、図1において、CPU102の構成については簡略して図示しており、図示していない他の機能部もCPU102は有している。コア部105は、それぞれ1次キャッシュメモリを有し、1次キャッシュメモリが保持するデータを用いた演算処理や、MI(Move-In)要求やMO(Move-Out)要求等の要求の発行を行う。
キャッシュ制御部106は、コア部105とメモリ103との間に配される図示しない共有キャッシュメモリに係る制御を行う。共有キャッシュメモリは、CPU102内の複数のコア部105で共有されるキャッシュメモリであり、キャッシュブロック単位でメモリ103に格納されているデータを保持する。共有キャッシュメモリは、例えばコア部105の各々が1次キャッシュメモリだけを有する場合には2次キャッシュメモリであり、コア部105の各々が1次キャッシュメモリと2次キャッシュメモリとを有する場合には3次キャッシュメモリである。
メモリ制御部107は、接続されたメモリ103に対するメモリアクセス制御を行う。メモリ103には、データと、各データの所在等を示すためのディレクトリが記憶されている。ルーター制御部108は、トランザクション転送のためにシステムボード101内のCPU102の接続を行う。また、ルーター制御部108は、システムボード101間でのトランザクション転送のためにクロスバー104との接続も行う。ルーター制御部108は、パケット転送によって要求や応答のトランザクションを転送する。
クロスバー104は、トランザクション転送のためにシステムボード101間のCPU102の接続を行う。また、クロスバー104は、システムボード101内のCPU102が有するルーター制御部108との接続を行う。クロスバー104は、パケット転送によって要求や応答のトランザクションを転送する。
図2は、本実施形態における演算処理装置としてのCPUの構成例を示す図である。図2に示すCPU201及びメモリ202は、それぞれ図1に示したCPU102及びメモリ103に対応する。CPU201は、コア部210、キャッシュ制御部220、キャッシュ部230、ディレクトリ制御部240、メモリ制御部250、レジスタ制御部260、及び無効化制御部270を有する。なお、図2には1つのコア部210を図示しているが、CPU201は複数のコア部210を有しており、それら複数のコア部210が、キャッシュ制御部220、キャッシュ部230、ディレクトリ制御部240、メモリ制御部250、レジスタ制御部260、及び無効化制御部270を共有している。
コア部210は、1次キャッシュメモリを有しており、1次キャッシュメモリが保持するデータを用いた演算処理を行ったり、MI(Move-In)要求やMO(Move-Out)要求等をキャッシュ制御部220に発行したりする。また、コア部210は、レジスタ制御部260内のレジスタに対する書き込みや読み出しを指示するリードライト部211を有する。リードライト部211は、レジスタ制御部260にレジスタのリード要求やライト要求を送信し、それに対するレジスタ制御部260からのレジスタのリード応答やライト応答を受信する。
キャッシュ制御部220は、メモリ202に格納されているデータをキャッシュブロック単位でキャッシュデータとして保持するキャッシュ部230に係る制御を行う。キャッシュ部230は、キャッシュデータ231と、保持しているキャッシュデータに係るキャッシュ管理情報232とが格納される。キャッシュ管理情報232は、キャッシュデータのアドレスを示す情報や、キャッシュデータのキャッシュステート(状態)を示す情報を含む。
例えば図3に一例を示すように、キャッシュ管理情報232における所定のフィールドに、キャッシュステートが変更状態を示すMステートである場合にはコード値“11”が設定され、排他状態を示すEステートである場合にはコード値“10”が設定される。また、キャッシュステートが共有状態を示すSステートである場合にはコード値“01”が設定され、無効状態を示すIステートである場合にはコード値“00”が設定される。
キャッシュ制御部220は、MI要求やMO要求等の要求を受けると、要求で指定された物理アドレスに基づいてキャッシュ管理情報232の検索を行い、その物理アドレスのデータがキャッシュデータ231としてキャッシュ部230に保持されているか否かを判定する。指定された物理アドレスのデータがキャッシュ部230に保持されている場合、キャッシュ制御部220は、キャッシュ部230にデータ要求を送信し、それに対するキャッシュ部230からのデータ応答を受信して、MI要求やMO要求等の要求に対する応答を返す。なお、指定された物理アドレスのデータがキャッシュ部230に保持されていない場合、キャッシュ制御部220は、メモリ202に対する要求を発行する。
また、キャッシュ制御部220は、キャッシュ無効化要求を受けると、キャッシュ無効化要求で指定された無効化対象物理アドレスに基づいてキャッシュ管理情報232の検索を行う。ここで、キャッシュ無効化要求とは、キャッシュメモリを介してアクセスされるキャッシャブル空間に対するキャッシュエントリ(キャッシュブロック)を無効化する要求であり、例えばある物理アドレスの一定領域をクリーンにする(無効化する)場合等に用いられる。キャッシュ無効化要求は、無効化対象物理アドレスを管理しているCPUのキャッシュ制御部220に対して発行される。
キャッシュ制御部220は、無効化対象物理アドレスのデータがキャッシュ部230に保持されている場合、そのキャッシュエントリのキャッシュステートをキャッシュ管理情報232から取得した後、Iステートにして無効化する。すなわち、キャッシュ制御部220は、無効化対象物理アドレスのデータがキャッシュ部230に保持されている場合、そのデータを保持しているキャッシュエントリのキャッシュステートを示すコード値をキャッシュ管理情報232における所定のフィールドから取得し、その後に所定のフィールドにコード値“00”を設定する。そして、キャッシュ制御部220は、ディレクトリ制御部240にキャッシュ無効化要求を送信するとともに、取得した無効化対象物理アドレスのキャッシュステートを通知する。
ディレクトリ制御部240は、要求を受信した場合にメモリ202からディレクトリ情報を読み出し、その要求に係るディレクトリ情報を解析することによりメモリ制御部250へのリード要求やライト要求の送信を制御する。また、ディレクトリ制御部240は、受信した要求に対する応答をキャッシュ制御部220に送信する。
ディレクトリ制御部240は、要求を管理するための要求管理情報243を保持する。例えば、ディレクトリ制御部240は、キャッシュ無効化要求を受信した場合、要求毎にオペコード、無効化対象アドレス、ID、キャッシュステート、及びディレクトリ情報を要求管理情報243として保持する。すなわち、ディレクトリ制御部240は、キャッシュ無効化要求を受信した場合、受信したキャッシュ無効化要求と関連付けてキャッシュステート及びディレクトリ情報を要求管理情報243として保持する。
また、ディレクトリ制御部240は、モード判定部241及び応答部242を有する。モード判定部241は、レジスタ制御部260から伝達された表示モードがキャッシュステート及びディレクトリ情報を表示するモードであるか否かを判定する。応答部242は、モード判定部241での判定結果に応じて、要求管理情報243として保持されている無効化対象物理アドレスのキャッシュステート及びディレクトリ情報をレジスタ制御部260に通知する。応答部242は、表示モードがキャッシュステート及びディレクトリ情報を表示するモードである場合、要求管理情報243から無効化対象物理アドレスのキャッシュステート及びディレクトリ情報を取得してレジスタ制御部260に通知する。
メモリ制御部250は、接続されたメモリ202に対するメモリアクセス制御を行う。例えば、メモリ制御部250は、ディレクトリ制御部240からのリード要求やライト要求を受信し、その要求に応じたリード要求やライト要求をメモリ202に送信する。また、例えばメモリ制御部250は、送信したリード要求やライト要求に対するメモリ202からのリード応答やライト応答を受信し、その応答に応じたリード応答やライト応答をディレクトリ制御部240に送信する。
メモリ202には、データ281及びディレクトリ282が記憶されている。ディレクトリ282には、メモリ202に格納されている各データをどのCPU201のキャッシュメモリが保持しているか等を示すディレクトリ情報が格納される。図4に、本実施形態におけるディレクトリ情報のフォーマット例を示す。図4には、マルチプロセッサシステムが16個のCPU(CPU0〜CPU15)を有する場合のディレクトリ情報のフォーマットを一例として示している。
図4において、フィールドExclusive(63ビット目)は、任意のCPU201のキャッシュメモリにおいてデータがMステート又はEステートで保持されているか否かを示す。ここでは、CPU0〜CPU15の内の何れかのCPUのキャッシュメモリにおいてデータがMステート又はEステートで保持されている場合に“1”が設定され、そうでない場合に“0”が設定される。
フィールドPresence(0ビット目〜15ビット目)は、各CPU201のキャッシュメモリにデータが保持されているか否かを示す。ここでは、iビット目がCPUiに対応し(iは0〜15の整数)、キャッシュメモリにデータが保持されている場合に“1”が設定され、データを保持していない場合に“0”が設定される。例えば、CPU0〜CPU15の内のCPU0、CPU7、CPU15のキャッシュメモリにデータが保持されている場合、0ビット目、7ビット目、及び15ビット目の値が“1”であり、1ビット目〜6ビット目及び8ビット目〜14ビット目の値が“0”である。なお、図4においてフィールドの記載がないビットは例えばリザーブビットである。
図2に戻り、レジスタ制御部260は、複数のレジスタ261〜263、リードライト部264、及びモード設定部265を有する。なお、図2においては、レジスタ制御部260が有するレジスタとして、キャッシュ無効化に係るアドレスレジスタ261、制御レジスタ262、及び情報レジスタ263の3つのレジスタを示しているが、レジスタ制御部260が他のレジスタを有していてもよい。
アドレスレジスタ261は、キャッシュエントリを無効化する物理アドレス(無効化対象物理アドレス)を保持するレジスタである。図5(A)にアドレスレジスタ261の一例を示す。フィールドadrs(7ビット目〜46ビット目)に無効化対象物理アドレスが格納される。
制御レジスタ262は、キャッシュ無効化機能の制御に係るレジスタである。図5(B)に制御レジスタ262の一例を示す。フィールドbusy(63ビット目)は無効化機能処理中であるか否かを示す。制御レジスタ262へのライト要求をコア部210から受けると、レジスタ制御部260が、キャッシュ無効化機能の起動要求を無効化制御部270に送信するとともに、無効化機能処理中であることを示すビット値(例えば“1”)を制御レジスタ262のフィールドbusyに設定する。また、無効化制御部270からキャッシュ無効化機能の応答が返ってくると、レジスタ制御部260が、無効化機能処理中でないことを示すビット値(例えば“0”)を制御レジスタ262のフィールドbusyに設定する。
情報レジスタ263は、キャッシュステート及びディレクトリ情報の表示等を行うためのレジスタである。図5(C)に情報レジスタ263の一例を示す。フィールドread_en(57ビット目)は、情報表示を有効にするか無効にするかを指定する、言い換えればキャッシュステート及びディレクトリ情報を表示する表示モードとするか否かを指定するフィールドである。ここでは、フィールドread_enは、情報表示を有効にする、すなわちキャッシュステート及びディレクトリ情報を表示する表示モードとする場合、ビット値“1”を設定する。一方、フィールドread_enは、情報表示を無効にする、すなわちキャッシュステート及びディレクトリ情報を表示する表示モードとしない場合、ビット値“0”を設定する。また、フィールドcs(32ビット目〜33ビット目)にディレクトリ制御部240の応答部242から通知されるキャッシュステートが格納され、フィールドdir(0ビット目〜31ビット目)にディレクトリ制御部240の応答部242から通知されるディレクトリ情報が格納される。
なお、図5(A)〜図5(C)において、64ビットの内、フィールドの記載がないビットは例えばリザーブビットである。また、図5(A)〜図5(C)において、RWは読み書き可能なフィールドであることを示し、Rは読み出し専用のフィールドであることを示す。
リードライト部264は、コア部210からのレジスタのリード要求やライト要求を受信する。リードライト部264は、受信した要求に応じてレジスタに対するリード動作やライト動作を行ってリード応答やライト応答をコア部210に送信する。モード設定部265は、情報レジスタ263の設定値に基づく表示モードをディレクトリ制御部240に伝達する。すなわち、モード設定部265は、情報レジスタ263のフィールドread_enの設定値に基づいて、表示モードがキャッシュステート及びディレクトリ情報を表示するモードであるか、キャッシュステート及びディレクトリ情報を表示しないモードであるかを伝達する。
要求発行部としての無効化制御部270は、レジスタ制御部260からのキャッシュ無効化機能の起動要求を受信した場合、キャッシュ無効化機能を起動して、レジスタ制御部260のアドレスレジスタ261に保持されている無効化対象物理アドレスに係るキャッシュ無効化要求をキャッシュ制御部220に送信する。また、無効化制御部270は、キャッシュ制御部220からのキャッシュ無効化応答を受信した場合、キャッシュ無効化機能の応答をレジスタ制御部260に送信する。
図6に、キャッシュ制御部220と無効化制御部270との間、及びキャッシュ制御部220とディレクトリ制御部240との間で送受信されるキャッシュ無効化要求及びキャッシュ無効化応答のフォーマット例を示す。キャッシュ無効化要求のフォーマット例を図6(A)に示し、キャッシュ無効化応答のフォーマット例を図6(B)に示している。キャッシュ無効化要求及びキャッシュ無効化応答は、例えば64ビットのパケット形式で送受信される。
キャッシュ無効化要求は、図6(A)に示すようにオペコード(OPCD)、ID(ID)、及びアドレス(ADRS)を含む。キャッシュ無効化応答は、図6(B)に示すようにオペコード(OPCD)及びID(ID)を含む。オペコード(OPCD)は、キャッシュ無効化要求/キャッシュ無効化応答の種類を特定するために使用される。ID(ID)はキャッシュ無効化要求/キャッシュ無効化応答同士でどの要求/応答なのかを特定するために使用される。アドレス(ADRS)は、キャッシュ無効化要求により無効化させる物理アドレスを指定するために使用される。なお、図6(A)及び図6(B)において、64ビットの内、フィールドの記載がないビットは例えばリザーブビットである。
次に、動作について説明する。なお、コア部210からのMI要求やMO要求に係る処理は、従来と同様であるので説明を省略し、以下ではキャッシュ無効化処理について説明する。図7A及び図7Bは、本実施形態におけるキャッシュ無効化処理の例を示すフローチャートである。キャッシュ無効化処理では、まず、ステップS701にて、キャッシュステート及びディレクトリ情報を表示するモードにするか否かがコア部210により判定される。
キャッシュステート及びディレクトリ情報を表示するモードにすると判定した場合、ステップS702へ進む。ステップS702にて、コア部210のリードライト部211がレジスタ制御部260のリードライト部264に情報レジスタ263へのライト要求を送信し、情報レジスタ263に対してフィールドread_enに“1”(情報表示有効)と設定する。一方、キャッシュステート及びディレクトリ情報を表示するモードにはしないと判定した場合、ステップS702はスキップし、情報レジスタ263のフィールドread_enは“0”(情報表示無効)のままである。
次に、ステップS703にて、レジスタ制御部260のモード設定部265は、情報レジスタ263のフィールドread_enの設定値に基づく表示モードをディレクトリ制御部240のモード判定部241に伝達する。本実施形態では、情報レジスタ263のフィールドread_enの設定値そのものを表示モードとしてレジスタ制御部260からディレクトリ制御部240へ伝達するものとする。
ステップS704にて、コア部210のリードライト部211がレジスタ制御部260のリードライト部264にアドレスレジスタ261へのライト要求を送信し、アドレスレジスタ261に対してフィールドadrsに無効化対象物理アドレスを設定する。続いて、ステップS705にて、コア部210のリードライト部211がレジスタ制御部260のリードライト部264に制御レジスタ262へのライト要求を送信する。
ステップS706にて、レジスタ制御部260は、コア部210からの制御レジスタ262へのライト要求を受けて、無効化制御部270にキャッシュ無効化機能の起動要求を送信する。また、レジスタ制御部260は、制御レジスタ262のフィールドbusyに無効化機能処理中であることを示す値を設定する。ステップS707にて、無効化制御部270は、レジスタ制御部260からのキャッシュ無効化機能の起動要求を受けてキャッシュ無効化機能を起動し、無効化対象物理アドレスに係るキャッシュ無効化要求をキャッシュ制御部220に送信する。
ステップS708にて、キャッシュ無効化要求を受けたキャッシュ制御部220は、キャッシュ部230が保持しているキャッシュ管理情報232を検索し、無効化対象物理アドレスのキャッシュステートを得るとともに、その物理アドレスのキャッシュステートを無効化する(Iステートにする)。次に、ステップS709にて、キャッシュ制御部220は、ディレクトリ制御部240にキャッシュ無効化要求を送信するとともに無効化対象物理アドレスのキャッシュステートを通知する。
ステップS710にて、ディレクトリ制御部240は、キャッシュ制御部220より通知された無効化対象物理アドレスのキャッシュステートを受信し要求管理情報243として保持する。また、ディレクトリ制御部240は、受信した無効化対象物理アドレスのキャッシュステートを解析し、解析後に無効化対象物理アドレスに対するリード要求をメモリ制御部250に送信する。
続いて、ステップS711にて、メモリ制御部250は、無効化対象物理アドレスに対するリード要求をメモリ202に送信する。ステップS712にて、メモリ制御部250からのリード要求を受けたメモリ202が、無効化対象物理アドレスのディレクトリ情報及びデータをリード応答としてメモリ制御部250に送信する。ステップS713にて、メモリ制御部250は、メモリ202から得た無効化対象物理アドレスのディレクトリ情報及びデータをリード応答としてディレクトリ制御部240に送信する。
ステップS714にて、ディレクトリ制御部240は、メモリ制御部250から送信された無効化対象物理アドレスのディレクトリ情報を受信し要求管理情報243として保持する。また、ディレクトリ制御部240は、受信した無効化対象物理アドレスのディレクトリ情報を解析し、無効化対象物理アドレスに係るキャッシュ無効化要求に対するキャッシュ無効化応答を送信する。
ステップS715にて、ディレクトリ制御部240のモード判定部241は、表示モードがキャッシュステート及びディレクトリ情報を表示するモードであるか否かを判定する。キャッシュステート及びディレクトリ情報を表示するモードであるとモード判定部241によって判定された場合、ステップS716にて、ディレクトリ制御部240の応答部242は、要求管理情報243として保持されている無効化対象物理アドレスのキャッシュステート及びディレクトリ情報をレジスタ制御部260に通知する。なお、キャッシュステート及びディレクトリ情報を表示するモードではないとモード判定部241によって判定された場合、ディレクトリ制御部240は何も処理を行わない。ステップS717にて、レジスタ制御部260は、ディレクトリ制御部240の応答部242からの情報を基に、情報レジスタ263のフィールドcsに無効化対象物理アドレスのキャッシュステートを保持し、情報レジスタ263のフィールドdirに無効化対象物理アドレスのディレクトリ情報を保持する。
また、ステップS718にて、ディレクトリ制御部240からのキャッシュ無効化応答を受けたキャッシュ制御部220は、無効化制御部270にキャッシュ無効化応答を送信する。ステップS719にて、キャッシュ制御部220からのキャッシュ無効化応答を受けた無効化制御部270は、レジスタ制御部260にキャッシュ無効化機能の応答を送信する。無効化制御部270からのキャッシュ無効化機能の応答を受けたレジスタ制御部260は、制御レジスタ262のフィールドbusyに無効化機能処理中ではないことを示す値を設定する。
無効化対象物理アドレスに係るキャッシュ無効化が終了した後、ステップS720にて、コア部210のリードライト部211がレジスタ制御部260のリードライト制御部264に情報レジスタ263に対するリード要求を送信する。なお、無効化対象物理アドレスに係るキャッシュ無効化が終了したか否かは、コア部210が、例えばレジスタ制御部260が有する制御レジスタ262のフィールドbusyの値を定期的に確認することで判定可能である。ステップS721にて、レジスタ制御部260は、情報レジスタ263に対するリード要求を受けて、情報レジスタ263から無効化対象物理アドレスのキャッシュステート及びディレクトリ情報を読み出してコア部210に応答として送信する。
図8は、本実施形態におけるキャッシュステート及びディレクトリ情報を表示させる場合のキャッシュ無効化処理の例を示すシーケンス図である。コア部210が情報レジスタ263へのライト要求をレジスタ制御部260に送信して、情報表示を有効にする表示モードに設定する(801)。そして、レジスタ制御部260が表示モードをディレクトリ制御部240に伝達する(802)。
また、コア部210がアドレスレジスタ261へのライト要求をレジスタ制御部260に送信して、アドレスレジスタ261に無効化対象物理アドレスを設定する(803)。次に、コア部210が制御レジスタ262へのライト要求をレジスタ制御部260に送信する(804)。コア部210からの制御レジスタ262へのライト要求を受けて、レジスタ制御部260がキャッシュ無効化機能の起動要求を無効化制御部270に送信する(805)。
レジスタ制御部260からのキャッシュ無効化機能の起動要求を受けて、無効化制御部270が無効化対象物理アドレスに係るキャッシュ無効化要求をキャッシュ制御部220に送信する(806)。無効化制御部270からのキャッシュ無効化要求を受けて、キャッシュ制御部220が、キャッシュ部230に対してキャッシュ管理情報232を検索して無効化対象物理アドレスのキャッシュステートを得るとともに、その物理アドレスのキャッシュステートを無効化する(807、808)。続いて、キャッシュ制御部220が、ディレクトリ制御部240にキャッシュ無効化要求を送信するとともに無効化対象物理アドレスのキャッシュステートを通知する(809)。
キャッシュ制御部220から通知された無効化対象物理アドレスのキャッシュステートを受信したディレクトリ制御部240が、受信したキャッシュステートを解析して無効化対象物理アドレスに係るリード要求をメモリ制御部250に送信する(810)。ディレクトリ制御部240からのリード要求を受けて、メモリ制御部250が無効化対象物理アドレスに係るリード要求をメモリ202に送信する(811)。メモリ制御部250からのリード要求を受けて、メモリ202が無効化対象物理アドレスに係るリード要求に対するリード応答をメモリ制御部250に返す(812)。メモリ202からのリード応答を受けたメモリ制御部250がリード応答をディレクトリ制御部240に返す(813)。
メモリ制御部240からのリード応答を受けたディレクトリ制御部240が無効化対象物理アドレスのキャッシュステート及びディレクトリ情報をレジスタ制御部260に通知する(814)。また、メモリ制御部240からのリード応答を受けたディレクトリ制御部240が無効化対象物理アドレスに係るキャッシュ無効化要求に対するキャッシュ無効化応答をキャッシュ制御部220に返す(815)。ディレクトリ制御部240からのキャッシュ無効化応答を受けたキャッシュ制御部220がキャッシュ無効化応答を無効化制御部270に返す(816)。さらにキャッシュ制御部220からのキャッシュ無効化応答を受けた無効化制御部270がキャッシュ無効化機能の応答をレジスタ制御部260に返す(817)。
その後、コア部210が情報レジスタ263に対するリード要求をレジスタ制御部260に送信する(818)。情報レジスタ263に対するリード要求を受けてレジスタ制御部260が情報レジスタ263に保持している無効化対象物理アドレスのキャッシュステート及びディレクトリ情報をコア部210に通知する(819)。
なお、キャッシュ無効化に伴ってメモリ202に対するデータやディレクトリ情報の更新が必要な場合、メモリ制御部240からのリード応答を受けた後に、ディレクトリ制御部240がライト要求をメモリ制御部250に送信する(820)。ディレクトリ制御部240からのライト要求を受けて、メモリ制御部250がライト要求をメモリ202に送信する(821)。メモリ制御部250からのライト要求を受けて、ライト動作が行われ、メモリ202がライトリード要求に対するライト応答をメモリ制御部250に返す(822)。メモリ202からのライト応答を受けたメモリ制御部250がライト応答をディレクトリ制御部240に返す(823)。
本実施形態によれば、キャッシュ無効化要求で指定された物理アドレスのデータのキャッシュステートを読み出し可能な情報レジスタに格納して表示させることができ、対象のデータのキャッシュステートを観測可能に表示させることができる。例えば、実機試験で検証を行う場合などの検証精度を向上させることができる。なお、前述した実施形態では、キャッシュ無効化要求を一例として説明したが、これに限定されるものではなく、物理アドレスを持つ要求を使用すれば、無効化要求とは異なる要求であっても処理対象の物理アドレスのデータのキャッシュステータスを表示することが可能である。
なお、前記実施形態は、何れも本発明を実施するにあたっての具体化のほんの一例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、またはその主要な特徴から逸脱することなく、様々な形で実施することができる。
101 システムボード
102、201 CPU
103、202 メモリ
104 クロスバー
105、210 コア部
106、220 キャッシュ制御部
107、250 メモリ制御部
211 リードライト部
230 キャッシュ部
231 キャッシュデータ
232 キャッシュ管理情報
240 ディレクトリ制御部
241 モード判定部
242 応答部
243 要求管理情報
260 レジスタ制御部
261 アドレスレジスタ
262 制御レジスタ
263 情報レジスタ
264 リードライト部
265 モード設定部
270 無効化制御部
281 データ
282 ディレクトリ

Claims (9)

  1. 処理対象のデータの物理アドレスを有する要求を発行する要求発行部と、
    複数の演算処理装置で共用される主記憶装置のデータを保持するとともに保持している前記データの状態を保持するキャッシュ部を制御し、前記要求発行部から発行された要求を受けて前記物理アドレスに基づいて前記キャッシュ部を検索し前記処理対象のデータの状態を取得した後に前記要求に応じた処理を行うキャッシュ制御部と、
    取得した前記処理対象のデータの状態を通知する応答部と、
    前記応答部より通知された前記処理対象のデータの状態を保持する、コア部から読み出し可能な第1の保持部とを有することを特徴とする演算処理装置。
  2. 前記処理対象のデータの状態の表示を有効にするか無効にするかを設定する第2の保持部を有し、
    前記応答部は前記第2の保持部の設定に応じて前記処理対象のデータの状態を通知するか否かを切り替えることを特徴とする請求項1記載の演算処理装置。
  3. 前記応答部は、前記処理対象のデータの状態とともに前記処理対象のデータの前記複数の演算処理装置に係る所在を示すディレクトリ情報を前記主記憶装置から取得して通知し、
    前記第1の保持部に前記応答部より通知された前記処理対象のデータの状態及び前記ディレクトリ情報を保持することを特徴とする請求項1又は2記載の演算処理装置。
  4. 前記要求は、前記キャッシュ部が保持している前記処理対象のデータを無効にする無効化要求であることを特徴とする請求項1〜3の何れか1項に記載の演算処理装置。
  5. 前記処理対象のデータの物理アドレスを保持する第3の保持部を有することを特徴とする請求項1〜4の何れか1項に記載の演算処理装置。
  6. ライト要求を受けると前記処理対象のデータの物理アドレスを有する要求の発行を前記要求発行部に指示する第4の保持部を有することを特徴とする請求項1〜5の何れか1項に記載の演算処理装置。
  7. 前記第1の保持部及び前記第2の保持部は、前記処理対象のデータの状態を保持するフィールド及び前記処理対象のデータの状態の表示を有効にするか無効にするかを設定するフィールドを有する1つの保持部であることを特徴とする請求項2記載の演算処理装置。
  8. 処理対象のデータの物理アドレスを有する要求を発行する要求発行部と、
    複数の演算処理装置で共用される主記憶装置のデータを保持するとともに保持している前記データの状態を保持するキャッシュ部を制御し、前記要求発行部から発行された要求を受けて前記物理アドレスに基づいて前記キャッシュ部を検索し前記処理対象のデータの状態を取得した後に前記要求に応じた処理を行うキャッシュ制御部と、
    取得した前記処理対象のデータの状態を通知する応答部と、
    前記応答部より通知された前記処理対象のデータの状態を保持する、コア部から読み出し可能な第1の保持部とを有する演算処理装置と、
    前記演算処理装置に接続され、前記演算処理装置からの要求に対して前記処理対象データを前記演算処理装置に供給する前記主記憶装置とを備えることを特徴とする情報処理装置。
  9. 複数の演算処理装置と、前記複数の演算処理装置で共用され前記演算処理装置からの要求に対して処理対象データを前記演算処理装置に供給する主記憶装置とが接続された情報処理装置の制御方法であって、
    前記演算処理装置の要求発行部が、処理対象のデータの物理アドレスを有する要求を発行し、
    前記主記憶装置のデータを保持するとともに保持している前記データの状態を保持するキャッシュ部を制御する前記演算処理装置のキャッシュ制御部が、前記要求発行部から発行された要求を受けて前記物理アドレスに基づいて前記キャッシュ部を検索し前記処理対象のデータの状態を取得した後に前記要求に応じた処理を行い、
    前記演算処理装置の応答部が取得した前記処理対象のデータの状態を通知し、通知された前記処理対象のデータの状態をコア部から読み出し可能な第1の保持部に保持することを特徴とする情報処理装置の制御方法。
JP2016028116A 2016-02-17 2016-02-17 演算処理装置、情報処理装置、及び情報処理装置の制御方法 Active JP6634864B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2016028116A JP6634864B2 (ja) 2016-02-17 2016-02-17 演算処理装置、情報処理装置、及び情報処理装置の制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016028116A JP6634864B2 (ja) 2016-02-17 2016-02-17 演算処理装置、情報処理装置、及び情報処理装置の制御方法

Publications (2)

Publication Number Publication Date
JP2017146787A JP2017146787A (ja) 2017-08-24
JP6634864B2 true JP6634864B2 (ja) 2020-01-22

Family

ID=59681440

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016028116A Active JP6634864B2 (ja) 2016-02-17 2016-02-17 演算処理装置、情報処理装置、及び情報処理装置の制御方法

Country Status (1)

Country Link
JP (1) JP6634864B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7081376B2 (ja) * 2018-07-31 2022-06-07 株式会社リコー 情報処理装置、情報処理システムおよび故障診断方法

Also Published As

Publication number Publication date
JP2017146787A (ja) 2017-08-24

Similar Documents

Publication Publication Date Title
JP5315017B2 (ja) マルチプロセッサ・データ処理システムにおいて共有キャッシュ・ラインを与える方法、コンピュータ読み取り可能な記録媒体及びマルチプロセッサ・データ処理システム
US10402327B2 (en) Network-aware cache coherence protocol enhancement
JP6022849B2 (ja) 共有キャッシュメモリ制御
US8037252B2 (en) Method for reducing coherence enforcement by selective directory update on replacement of unmodified cache blocks in a directory-based coherent multiprocessor
US20170168939A1 (en) Snoop filter for cache coherency in a data processing system
KR100515059B1 (ko) 멀티프로세서 시스템 및 멀티프로세서 시스템의 캐쉬일관성 유지 방법
US20080005485A1 (en) Exclusive ownership snoop filter
EP2224343B1 (en) Data processing system
KR101414384B1 (ko) 연산 장치, 정보 처리 장치 및 연산 방법
JP3661764B2 (ja) 不均等メモリ・アクセス・コンピュータ・システムにおいてエヴィクション・プロトコルを提供するための方法およびシステム
JP2007257631A (ja) 動作のスヌーピングに応答して無効コヒーレンシー状態を更新するデータ処理システム、キャッシュ・システム、および方法
TW200406676A (en) Computer system with integrated directory and processor cache
JPWO2010035426A1 (ja) バッファメモリ装置、メモリシステム及びデータ転送方法
JP4409619B2 (ja) 情報処理装置、制御装置および制御方法
WO2010038301A1 (ja) メモリアクセス方法及び情報処理装置
JP6634864B2 (ja) 演算処理装置、情報処理装置、及び情報処理装置の制御方法
KR20140038075A (ko) 캐시 일관성 유지 장치 및 방법, 이를 이용하는 멀티프로세서 장치
JP2020003959A (ja) 情報処理装置、演算処理装置及び情報処理装置の制御方法
WO2017016427A1 (zh) 根据目录信息维护Cache数据一致性的方法及装置
KR102069696B1 (ko) 캐시 제어 장치 및 방법
US20140201447A1 (en) Data processing apparatus and method for handling performance of a cache maintenance operation
US9842050B2 (en) Add-on memory coherence directory
US6826654B2 (en) Cache invalidation bus for a highly scalable shared cache memory hierarchy
JP2002024198A (ja) 分散共有メモリ型並列計算機
JP6565729B2 (ja) 演算処理装置、制御装置、情報処理装置及び情報処理装置の制御方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20181011

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190319

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190416

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190614

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20191202

R150 Certificate of patent or registration of utility model

Ref document number: 6634864

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150