JP7238262B2 - 計算機、半導体装置、及び制御方法 - Google Patents

計算機、半導体装置、及び制御方法 Download PDF

Info

Publication number
JP7238262B2
JP7238262B2 JP2018060775A JP2018060775A JP7238262B2 JP 7238262 B2 JP7238262 B2 JP 7238262B2 JP 2018060775 A JP2018060775 A JP 2018060775A JP 2018060775 A JP2018060775 A JP 2018060775A JP 7238262 B2 JP7238262 B2 JP 7238262B2
Authority
JP
Japan
Prior art keywords
processor
memory
cache
data
cache line
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
JP2018060775A
Other languages
English (en)
Other versions
JP2019175006A (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.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Priority to JP2018060775A priority Critical patent/JP7238262B2/ja
Publication of JP2019175006A publication Critical patent/JP2019175006A/ja
Application granted granted Critical
Publication of JP7238262B2 publication Critical patent/JP7238262B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、計算機、半導体装置、及び制御方法に関する。
関連するマルチプロセッサ型の計算機は、一又は複数のコアを備える複数のプロセッサ(半導体装置)が、メモリ空間を共有して各コアが連携して並列処理を実行する。各プロセッサは、夫々に設けられたメモリを管理し、また、他のプロセッサが管轄するメモリの内容にアクセスすることを他のプロセッサに要求する。各プロセッサは、夫々キャッシュを設けることで、各メモリに対する処理の応答性を高めている。
各プロセッサが並列処理を実行するためには、キャッシュコヒーレンス(一貫性)を保証することが必要とされる。キャッシュコヒーレンスを保証する機能をハードウェアで実現する方法が知られている。上記の機能をハードウェアで実現するタイプのプロセッサは、キャッシュコヒーレンスが保証されない事象が生じると、キャッシュコヒーレンスを保証するためにスヌープ動作、無効化動作などの処理を実施する場合がある(例えば、特許文献1参照)。
特表2011-527037号公報
しかしながら、プロセッサが実行する処理の中には、データを参照するために実行されるロード処理が含まれる。このようなデータ参照するために実行されるロード処理であれば、必ずしもキャッシュコヒーレンシを必要としない。上記のデータ参照するために実行されるロード処理についてもキャッシュコヒーレンスを保証するための処理が実行されることにより、計算機の性能が低下することがあった。
そこでこの発明は、上述の問題を解決することのできる計算機、半導体装置、及び制御方法を提供することを目的としている。
発明の第1の態様によれば、第1プロセッサと第2プロセッサとを有し、前記第1プロセッサと前記第2プロセッサとによって同一メモリ空間を共有する計算機であって、前記第1プロセッサは、前記第2プロセッサに割り当てられたメモリ内の領域に対するキャッシュコヒーレンスを保証しない第1ロード処理を実行し、前記第2プロセッサは、前記メモリからのデータの読み出しの履歴を残すリモートキャッシュメモリを備え、前記リモートキャッシュメモリは、前記第1ロード処理の実行による前記メモリからのデータの読み出しの場合には、前記データの読み出しの履歴を残さない、ことを特徴とする計算機である。
発明の第2の態様によれば、複数のプロセッサによって同一メモリ空間を共有する半導体装置であって、他のプロセッサに割り当てられたリモートメモリ内の領域に対するキャッシュコヒーレンスを保証しない第1ロード処理を実行する実行部と、自プロセッサに割り当てられたローカルメモリからのデータの読み出しの履歴を残すキャッシュメモリと、を備え、前記キャッシュメモリは、他のプロセッサのキャッシュコヒーレンスを保証しない第1ロード処理の実行による前記ローカルメモリからのデータの読み出しの場合には、前記データの読み出しの履歴を残さない、ことを特徴とする半導体装置である。
発明の第3の態様によれば、第1プロセッサと第2プロセッサとを有し、前記第1プロセッサと前記第2プロセッサとによって同一メモリ空間を共有する計算機の制御方法であって、前記第1プロセッサに、前記第2プロセッサに割り当てられたメモリ内の領域に対するキャッシュコヒーレンスを保証しない第1ロード処理を実行させ、前記第2プロセッサのリモートキャッシュメモリに、前記メモリからのデータの読み出しの履歴が残るが、前記第1ロード処理の実行による前記メモリからのデータの読み出しの場合には、前記データの読み出しの履歴を残させないステップを含むことを特徴とする制御方法である。
発明の第4の態様によれば、第1プロセッサと第2プロセッサとを有し、前記第1プロセッサと前記第2プロセッサとによって同一メモリ空間を共有する計算機の第1プロセッサに実行させるためのプログラムであって、前記第2プロセッサに割り当てられたメモリ内の領域に対するキャッシュコヒーレンスを保証しない第1ロード命令を含み、前記第1ロード命令の実行により前記メモリからのデータの読み出し要求を送信させ、前記読み出し要求には、前記第2プロセッサのリモートキャッシュメモリに前記データの読み出しの履歴を残させないための情報が含まれるプログラムである。
本発明によれば、これにより計算機の性能の低下を抑制するという効果が得られる。
本発明の一実施形態による計算機の構成図である。 本実施形態による第1プロセッサのキャッシュメモリの構成図である。 本実施形態によるキャッシュメモリに格納される制御情報の構成図である。 本実施形態による他のプロセッサによって参照されている領域を示す情報について説明するための図である。 本実施形態による第2プロセッサのキャッシュメモリの構成図である。 本実施形態によるキャッシュメモリに格納される制御情報の構成図である。 本実施形態による他のプロセッサによって参照されている領域を示す情報について説明するための図である。 本実施形態のキャッシュ制御について説明するための図である。 本実施形態のキャッシュ制御について説明するための図である。 本実施形態の第1プロセッサ10(半導体装置)の最小構成を示す図である。
以下、本発明の一実施形態による計算機を、図面を参照して説明する。以下の説明は、本発明の実施の形態を説明するものであり、本発明が以下の実施形態に限定されるものではない。説明の明確化のため、以下の記載は、適宜、省略及び簡略化がなされている。又、以下の実施形態の各要素を、本発明の範囲において容易に変更、追加、変換することが可能である。
図1は、第1実施形態による計算機の構成図である。
計算機1は、例えば、第1プロセッサ10と、第2プロセッサ20と、メモリ16と、メモリ26と、ネットワークNWとを備える。第1プロセッサ10と第2プロセッサ20は、ネットワークNWを介して接続されている。ネットワークNWは、例えば計算機1内に構成されている。なお、ネットワークNWは、計算機1の外部のネットワークを含むものであってもよい。
第1プロセッサ10にはメモリ16が、第2プロセッサ20にはメモリ26が、夫々個別に接続されている。メモリ16は第1プロセッサ10によって管理され、メモリ26は第2プロセッサ20によって管理される。第1プロセッサ10と第2プロセッサ20は、メモリ16とメモリ26を共有メモリとして利用する。メモリ16とメモリ26の各記憶領域には、互いに共通するアドレスが割り付けられている。
まず、第1プロセッサ10について説明する。
第1プロセッサ10は、例えば、コア11と、コア12と、ネットワークオンチップ13(NOC)と、メモリコントローラ14と、キャッシュメモリ15とを備える。
コア11とコア12は、プログラムにより規定された命令を逐次実行する。例えば、コア11とコア12は、少なくとも市場に流通している一般的なプロセッサ(CPU)に内蔵されるコアの機能と同等の機能を持つ。一般的なプロセッサとは、例えば、メモリからデータを読み出すロード命令、メモリにデータを書き込むストア命令、各種条件分岐命令などが含まれるプログラムを実行し、更に、外部からの割り込み、又はソフトウエア処理による割り込みに応じて例外処理を実行するものである。コア11とコア12は、少なくとも上記の処理を実行する。これについての詳細な説明は省略する。
なお、実施形態のコア11とコア12は、さらに、ノンコヒーレントロード命令を含むプログラムを実行する。ノンコヒーレントロード命令は、第2プロセッサ20のメモリ26に格納された情報を取得する。
ネットワークオンチップ13は、コア11とキャッシュメモリ15間と、コア12とキャッシュメモリ15間の通信パスを提供する。
メモリコントローラ14は、メモリ16にアクセスを行い、メモリ16に対する書き込み処理、読み出し処理などを実行する。例えば、メモリ16は、そのインタフェース仕様が、DDR(Double-Data-Rate)3、DDR4メモリ等のメモリ種別で規定される半導体メモリである。メモリコントローラ14は、メモリ16のインタフェース仕様に合致するものである。
キャッシュメモリ15は、メモリ16に格納されたデータを読み出し、そのデータ等を一時的に保持する。例えば、キャッシュメモリ15は、ネットワークオンチップ13と、メモリコントローラ14と、ネットワークNWとに接続されている。キャッシュメモリ15は、例えば、キャッシュミス時に、メモリコントローラ14を介してメモリ16に格納されているデータ取得し、あるいはネットワークNWを通してメモリ26に格納さているデータを取得して、取得したデータを内部に格納する。
また、キャッシュメモリ15は、キャッシュ制御の処理のシーケンスの中にライトバック動作を行うシーケンスを有する。キャッシュメモリ15は、ライトバック動作により、更新されたデータをメモリ16に書き戻す。
次に、第2プロセッサ20について説明する。
プロセッサ20は、第1プロセッサ10と同様の構成を備える。例えば、第2プロセッサ20は、コア21と、コア22と、ネットワークオンチップ23と、メモリコントローラ24と、キャッシュメモリ25とを備える。コア21、コア22、ネットワークオンチップ23、メモリコントローラ24及びキャッシュメモリ25は、上記のコア11、コア12、ネットワークオンチップ13、メモリコントローラ14及びキャッシュメモリ15と同様の機能を有する。以下、第1プロセッサ10を中心に説明するが、第2プロセッサ20についても同様の処理を実施できる。
[第1プロセッサ10]
図2を参照して、第1プロセッサ10のキャッシュメモリの構成について説明する。図2は、本実施形態による第1プロセッサ10のキャッシュメモリの構成図である。
キャッシュメモリ15は、データアレイ1501、キャッシュ制御部1502、及びキャッシュディレクトリ1503を備える。
データアレイ1501は、キャッシュメモリ15内で一時的に保持するデータを格納する。
キャッシュ制御部1502は、キャッシュメモリ15内のデータの格納状態を示す制御情報を内在し、その制御情報に基づいてキャッシュメモリ15内のデータの格納状態を制御する。その制御情報は、一般的なキャッシュメモリにおいて利用されるキャッシュライン(又はキャッシュブロック)に類似するが、その一部が異なる。これについては後述する。
キャッシュ制御部1502は、コア11とコア12とからの要求を、指示入力1504を経て取得して、その要求に応じた結果を、返送出力1505を経て要求元に返送する。コア11とコア12は、要求元の一例である。
キャッシュ制御部1502は、受け付けた要求を、指示入力1512を経てデータアレイ1501に送り、その要求に対応するデータが、データアレイ1501内にあることを検出する。キャッシュ制御部1502は、その要求に対応するデータがデータアレイ1501内にあるか否かの検出結果を、返送出力1513を経て取得する。
キャッシュ制御部1502は、メモリ16をアクセスするための指示を、メモリ指示出力1506を経てメモリコントローラ14に送り、その指示に対応するデータを、メモリ返送入力1507を経てメモリコントローラ14から取得する。
キャッシュ制御部1502は、指示1508を経てキャッシュディレクトリ1503を参照して、要求に対応するデータがメモリ16内にあるか否かについての情報を、メモリ返送入力1507を経て取得する。
キャッシュディレクトリ1503は、例えば、メモリ16のメモリ領域の所定の範囲毎に割り付けられた参照有無情報15031(図4)を、所定の範囲に対応づけて保持している。メモリ16の全領域に対する所定の範囲は、全領域に渡る。なお、参照有無情報15031については後述する。
なお、キャッシュ制御部1502は、第2プロセッサ20に対するロード及びストアに関する要求を、指示1508と指示出力1510を経て第2プロセッサ20に送り、その要求に対応する応答を第2プロセッサ20から入力1511と返送1509を経て取得する。
キャッシュ制御部1502は、その要求に対応するデータがメモリ16内にあるか否かの検出結果を、メモリ返送入力1507を経て取得する。
なお、キャッシュメモリ15に対する要求の発行元が第2プロセッサ20である場合には、キャッシュ制御部1502は、第2プロセッサ20からの要求を、指示入力1504を経て取得し、その要求に応じた結果を、返送出力1505を経て要求元である第2プロセッサ20に返送する。
図3と図4を参照して、キャッシュメモリ15に格納される制御情報の一例について説明する。
図3は、本実施形態によるキャッシュメモリに格納される制御情報の構成図である。この図3に示すキャッシュライン15021は、キャッシュメモリ15に格納される制御情報の一例である。
キャッシュライン15021は、例えば、有効情報15022、アドレスタグ15023、置き換え情報15024、ノンコヒーレント情報15025等の項目の情報を含む。
有効情報15022には、該当するキャッシュライン15021の有効性を示す情報が登録される。
アドレスタグ15023には、キャッシュラインにキャッシュされたデータが、キャッシュされる前に格納されていたアドレス(元アドレス)に関する情報が登録される。
置き換え情報15024には、このキャッシュライン15021にキャッシュされたデータがその結果に従い置き換えられる情報であることを示す情報が登録される。例えば、置き換えに関する優先度は、LRU(Least Recently Used)などのアルゴリズムによって決定される。これに関するアルゴリズムは上記以外のものであって良い。
ノンコヒーレント情報15025には、ノンコヒーレントロード命令によってキャッシュミスが生じたことを示す情報が登録される。例えば、ノンコヒーレントロード命令によってキャッシュミスが生じた場合を1で示し、上記によってキャッシュミスが生じなかった場合を0で示し、ノンコヒーレントロード命令以外の処理に起因するストア処理よってキャッシュミスが生じなかった場合も0で示す。ノンコヒーレント情報15025は、例えば、例えば、キャッシュラインがフィルされる際にセットされる。
なお、第1プロセッサ10が第2プロセッサ20に対して通知データリクエストには、例えば、図3に示すキャッシュライン15021の情報が格納されている。この場合、ノンコヒーレント情報15025は、ノンコヒーレントロード命令を明示する情報として利用される。上記のデータリクエストを取得した第2プロセッサ20は、ノンコヒーレント情報15025を参照することにより、ノンコヒーレントロード命令によるデータリクエストであることを検出する。
図4を参照して、他のプロセッサである第2プロセッサ20によって参照される領域の識別について説明する。図4は、本実施形態による他のプロセッサによって参照されている領域を示す情報について説明するための図である。参照有無情報15031は、第2プロセッサ20などの他のプロセッサがメモリ16のメモリ領域を参照しているか否かをメモリ領域のアクセス単位毎に示す情報である。
キャッシュディレクトリ1503は、参照有無情報15031を、メモリ16のメモリ領域に対応づけて保持している。
なお、他のプロセッサによって参照されていることを示す方式として、多数の実装方式が当然考えられ得る。以下の説明を簡便にするため、メモリ16全体をキャッシュラインサイズに分割したときのその全ての領域に対して、参照有無情報15031をそれぞれ持つものとする。なお、これに代わり、ページ単位に参照有無情報を持つ方式、参照有無情報をキャッシュ方式、あるいは接続されるプロセッサ全てがキャッシュする最大量をカバーできる程度に圧縮してディレクトリに保持するといった方式は当然に考えうる拡張である。
[第2プロセッサ20]
次に、図5を参照して、第2プロセッサ20のキャッシュメモリの構成について説明する。図5は、本実施形態による第2プロセッサ20のキャッシュメモリの構成図である。
キャッシュメモリ25は、例えば、データアレイ2501、キャッシュ制御部2502、及びキャッシュディレクトリ2503を備える。
データアレイ2501、キャッシュ制御部2502、データアレイ2501、及びキャッシュディレクトリ2503は、前述のキャッシュメモリ15は、データアレイ1501、キャッシュ制御部1502、データアレイ1501、及びキャッシュディレクトリ1503と同様に構成される。
図6と図7を参照して、キャッシュメモリ25に格納される制御情報の一例について説明する。
図6は、本実施形態によるキャッシュメモリに格納される制御情報の構成図である。この図6に示すキャッシュライン25021は、キャッシュメモリ25に格納される制御情報の一例である。キャッシュライン25021は、例えば、有効情報25022、アドレスタグ25023、置き換え情報25024、ノンコヒーレント情報25025等の項目の情報を含む。
有効情報25022、アドレスタグ25023、置き換え情報25024、及びノンコヒーレント情報25025は、前述の有効情報15022、アドレスタグ15023、置き換え情報15024、及びノンコヒーレント情報15025と同様に構成される。
図7を参照して、他のプロセッサである第1プロセッサ10によって参照される領域の識別について説明する。図7は、本実施形態による他のプロセッサによって参照されている領域を示す情報について説明するための図である。参照有無情報25031は、第1プロセッサ20などの他のプロセッサがメモリ26のメモリ領域を参照しているか否かをメモリ領域のアクセス単位毎に示す情報である。参照有無情報25031は、前述の参照有無情報15031と同様に構成される。
[各プロセッサの動作]
まず、ロード命令を例示して動作について説明する。
第1プロセッサ10と第2プロセッサ20は、ロード命令として、「通常ロード命令」と「ノンコヒーレントロード命令」とを夫々実行する。なお、「ノンコヒーレントロード命令」が第1ロード命令の一例であり、その命令の実行に係る処理が第1ロード処理の一例である。「通常ロード命令」が第2ロード命令の一例であり、その命令の実行に係る処理が第2ロード処理の一例である。
以下、これらを対比して説明する。なお、以下の説明において、上記の各命令を実行するプロセッサをローカル側と定義して、その命令によりローカル側からアクセスされるプロセッサをリモート側と定義する。以下、第1プロセッサ10がローカル側になり、第2プロセッサ20がリモート側になる場合について説明する。
(通常ロード命令)
「通常ロード命令」とは、キャッシュメモリのコヒーレント性を保ちながら、リモート側に格納されているデータを取得する命令のことである。
以下、通常ロード命令が第1プロセッサ10のコア11で実行されたときの動作について説明する。
まず、第1プロセッサ10のコア11は、通常ロード命令を実行する。これにより、コア11は、通常ロード命令に係るデータの読みだし(ロード)のリクエスト(データリクエスト)を、ネットワークオンチップ13を通じてキャッシュメモリ15に伝える。キャッシュメモリ15は、指示入力1504を経て上記のデータリクエストを取得する。このリクエストは、例えば前述の図3の制御情報の形式に形成されている。
キャッシュ制御部1502は、このデータリクエストがキャッシュメモリ15においてキャッシュヒットするものであるか否かを判定する。
キャッシュヒットした場合は、キャッシュ制御部1502は、データアレイ1501から該当するキャッシュラインに対応するデータを読み出し、返送出力1513を経由して返送出力1505へデータを返送する。
キャッシュミスした場合、キャッシュ制御部1502は、目的アドレスがメモリ26内にあるということを識別し、指示1508と指示出力1510とを経て、前述の図3の制御情報を含むデータリクエストを送る。
そのデータリクエストは、ネットワークNWを通じて、リモート側の第2プロセッサ20に到着する。
第2プロセッサ20のキャッシュメモリ25は、第1プロセッサ10から送信されたデータリクエストを取得する。キャッシュメモリ25のキャッシュ制御部1502は、キャッシュメモリ25内に該当データが含まれているか否かを判定する。
該当データがキャッシュメモリ25に含まれていた場合、キャッシュ制御部2502は、データアレイ2501から該当データを読み出す。キャッシュ制御部2502は、返送出力2513を通してデータを取得して、ターゲット値を、返送出力2505を経てネットワークNWに出力する。このターゲット値は、該当データが格納された記憶領域の位置(アドレス等)を示す情報である。データリクエストの要求元である第1プロセッサ10は、この応答を取得する。
これに合わせて、キャッシュ制御部2502は、キャッシュディレクトリ2503内の該当アドレスの参照有無情報25031に、当該アドレスのデータが参照されていることを示す情報を登録する。これにより、第2プロセッサ20が管轄するメモリ26のデータは、第1プロセッサ10から実際に参照されているものとして識別される。
なお、第2プロセッサ20側でメモリ26に対するデータの更新が、キャッシュメモリ25上の更新を伴うものである場合には、第2プロセッサ20は、第1プロセッサ10に対するインバリデート指示を出す。このインバリデート指示はネットワークNWを通って第1プロセッサ10に伝わり、キャッシュメモリ15においてそのデータのインバリデートが行われる。このインバリデート指示として送信されたパケットにより、ネットワークNWのバンド幅が消費される。
該当データがキャッシュメモリ25に含まれていなかった場合は、キャッシュ制御部2502は、データの出力指示を、メモリ指示出力2506を経てメモリコントローラ24に送り、メモリ26からデータを読み出す。キャッシュ制御部2502は、メモリ返送入力2507を通してデータを取得して、ターゲット値を、返送出力2505を経てネットワークNWに出力し、データリクエストの要求元に返送する。
これに合わせて、キャッシュ制御部2502は、第2プロセッサ20側でメモリ26に対する更新を行い、その更新の結果がキャッシュメモリ25上の更新を伴うものである場合には第2プロセッサ20は、第1プロセッサ10に対するインバリデート指示を出す。インバリデート指示はネットワークNWを通って第1プロセッサ10に伝わり、キャッシュメモリ15においてそのデータのインバリデートが行われる。このインバリデート指示として送信されたパケットにより、ネットワークNWのバンド幅が消費される。
(ノンコヒーレントロード命令)
「ノンコヒーレントロード命令」とは、「通常ロード命令」に比べて、キャッシュメモリのコヒーレント性を保つための処理の一部を省略して、リモート側に格納されているデータを取得する命令のことである。
例えば、このノンコヒーレントロード命令により特定される記憶領域のデータが、メモリ26内に格納されていると仮定し、ノンコヒーレントロード命令が第1プロセッサ10のコア11で実行されたときの動作を詳細に説明する。
まず、コア11がノンコヒーレントロード命令を実行する。これにより、コア11は、ノンコヒーレントロード命令に係るデータの読みだし(ノンコヒーレントロード)のリクエスト(データリクエスト)を、ネットワークオンチップ13を通じてキャッシュメモリ15に伝える。キャッシュメモリ15は、指示入力1504を経て上記のデータリクエストを取得する。このデータリクエストは、例えば前述の図3の制御情報によって形成されている。
キャッシュ制御部1502は、このデータリクエストがキャッシュヒットするものであるか否かを判定する。
キャッシュヒットした場合は、キャッシュ制御部1502は、データアレイ1501から該当するキャッシュラインに対するデータを読み出し、返送出力1513を経由して返送出力1505へデータを返送する。
キャッシュミスした場合、キャッシュ制御部1502は、目的アドレスがメモリ26内にあるということを判断し、指示1508と指示出力1510とを経て、前述の図3の制御情報によるデータリクエストを送る。
そのデータリクエストは、ネットワークNWを通じて、リモート側の第2プロセッサ20に到着する。
第2プロセッサ20のキャッシュメモリ25は、第1プロセッサ10から送信されたデータリクエストを取得する。キャッシュメモリ25のキャッシュ制御部1502は、キャッシュメモリ25内に該当データが含まれているか否かを判定する。
該当データがキャッシュメモリ25に含まれていた場合、キャッシュ制御部2502は、データアレイ2501から該当データを読み出す。キャッシュ制御部2502は、返送出力2513を通してデータを取得して、ターゲット値を、返送出力2505を経てネットワークNWに出力し、データリクエストの要求元に返送する。
なお、キャッシュ制御部2502は、上記の応答の際に、キャッシュディレクトリ2503内の該当アドレスの参照有無情報25031に、当該アドレスのデータが参照されていることを示す情報を登録しない。これにより、第2プロセッサ20が管轄するメモリ26の当該アドレスのデータは、第1プロセッサ10から実際に参照されているものであるが、あたかも参照されていないものとして識別される。
そのため、第2プロセッサ20側でメモリ26に対するデータの更新が、キャッシュメモリ25上の更新を伴うものであったとしても、第1プロセッサ10に対するインバリデート指示が発行されない。そのため、これに伴う無用なパケットを、ネットワークNW上に送出すること抑制することができ、ネットワークNWのバンド幅が消費されることを抑制できる。
該当データがキャッシュメモリ25に含まれていなかった場合は、メモリ指示出力2506は、データの出力指示を、メモリ指示出力2506を経てメモリコントローラ24に送り、メモリ26からデータを読み出す。キャッシュ制御部2502は、メモリ返送入力2507を通してデータを取得して、ターゲット値を、返送出力2505を経てネットワークNWに出力し、データリクエストの要求元に返送する。
なお、この際も、キャッシュ制御部2502は、キャッシュディレクトリ2503内の該当アドレスの参照有無情報25031に、当該アドレスのデータが参照されていることを示す情報を登録しない。これにより、第2プロセッサ20が管轄するメモリ26の当該アドレスのデータは、第1プロセッサ10から実際に参照されているものであるが、あたかも参照されていないものとして識別される。
そのため、第2プロセッサ20側でメモリ26に対するデータの更新が、キャッシュメモリ25上の更新を伴うものであったとしても、第1プロセッサ10に対するインバリデート指示が発行されない。そのため、これに伴う無用なパケットを、ネットワークNW上に送出すること抑制することができ、ネットワークNWのバンド幅が消費されることを抑制できる。
この後、データリクエストの要求元である第1プロセッサ10は、この応答を取得する。
図8と図9を参照して、本実施形態のキャッシュ制御について説明する。図8と図9は、本実施形態のキャッシュ制御について説明するための図である。この図は上下に2分されており、図9は、図8の下部に続く。
各図の左側に、第1プロセッサ10が実行する処理の流れと各段階の処理の結果としてキャッシュメモリ15に格納されているキャッシュライン15021の状態を示し、その右側に、第2プロセッサ20が実行する処理の流れと各段階の処理の結果としてキャッシュメモリ25に格納されているキャッシュライン25021の状態を示す。
なお、キャッシュライン15021における各項目「有効」、「タグ」、「UDI」及び「NCI」は、前述の有効情報15022、アドレスタグ15023、置き換え情報15024、ノンコヒーレント情報15025に対応する。制御情報25021についても同様である。
なお、メモリ空間は、第1プロセッサ10と第2プロセッサ20とに割り付けられていて、第1プロセッサ10が管轄するメモリ16には、領域a1とa2が含まれ、第2プロセッサ20が管轄するメモリ26には、領域b1とb2とb3が含まれると仮定する。
図8(a1)に示す初期段階では、キャッシュライン15021とキャッシュライン250215として格納されたデータがないものとする。
第1プロセッサ10のコア11は、領域a1に対する通常ロード命令を実行する(ステップS10)。キャッシュメモリ15は、領域a1に対応するキャッシュライン15021を登録する(ステップS11)。その結果、通常ロード命令の実行であるため、ノンコヒーレント情報15025に0が登録される(図8(b1))。
次に、第1プロセッサ10のコア11は、領域b1に対する通常ロード命令を実行し(ステップS20)、キャッシュメモリ15に第2プロセッサ20に対するデータリクエストを送信させる(ステップS21)。第2プロセッサ20は、これに応答し(ステップS22)、領域b1に対応する制御情報を出力し(ステップS24)、キャッシュメモリ25の状態を更新する(ステップS23、図8(c2))。その結果、領域b1に対応するキャッシュライン250215が登録される(図8(c1))。
キャッシュメモリ15は、第2プロセッサ20から領域b1の制御情報を取得して、領域b1に対応するキャッシュライン15021を登録し(ステップS25)、コア11に転送する。その結果、通常ロード命令の実行であるため、領域b1に対応するキャッシュライン15021のノンコヒーレント情報15025に0が登録される。
次に、第1プロセッサ10のコア11は、領域b2に対するノンコヒーレントロード命令を実行し(ステップS30)、キャッシュメモリ15に第2プロセッサ20に対するデータリクエストを送信させる(ステップS31)。第2プロセッサ20は、これに応答し(ステップS32)、領域b2の制御情報を出力する(ステップS34)。その結果、領域b2に対応するキャッシュライン150215が登録される(図8(d1))。なお、キャッシュライン15021は更新されず、領域b2に対応するキャッシュライン25021は登録されない(図8(d2))。
上記の通りキャッシュメモリ25にはデータの読み出しの履歴が残らない。そのため、第2プロセッサ20は、上記のデータの読み出しの有無によらずに必要な処理を実施する際に、キャッシュコヒーレンスを保証するための制限に影響されない。この制限に起因するスヌープ、無効化などの処理が発生しない。
なお、キャッシュメモリ15は、第2プロセッサ20から領域b2の制御情報を取得して、領域b2に対応するキャッシュライン15021を登録し(ステップS35)、コア11に転送する。その結果、当該命令がノンコヒーレントロード命令の実行であるため、領域b2に対応するノンコヒーレント情報15025に1が登録され(図8(d1))、この情報からノンコヒーレントな領域の情報として領域b2に対応するキャッシュライン15021が登録されていることを識別できる。
図9に進む。次に、第1プロセッサ10のコア11は、領域b2に対するストア命令を実行し(ステップS40)、キャッシュメモリ15にこれを指示する。キャッシュメモリ15は、領域b2に対応するキャッシュライン15021にヒットする(図9(e1))。また、そのノンコヒーレント情報15025が1であることから、キャッシュメモリ15は、ノンコヒーレントな領域に対するデータリクエストであることを検出する。
なお、上記の場合、キャッシュメモリ15は、ヒットしたキャッシュラインを無効化してもよい。第1プロセッサ10は、そのキャッシュラインを無効化した後に、目的データがフィルされた他のキャッシュラインを保持するようにしてもよい(ステップS41)。
なお、上記はストア命令の事例であるが、通常ロード命令の場合も同様である。例えば、キャッシュメモリ15は、通常ロード命令の実行によってキャッシュラインがヒットした場合にも、当該ヒットしたキャッシュラインを無効化してもよい。
また、上記のようにノンコヒーレントな領域b2に対応するキャッシュライン15021にヒットした場合に、キャッシュメモリ15は、例外処理を発生させてもよい。なお、キャッシュライン25021は、上記の例外処理により異なる結果を取りうるが、図9(e2)に示す例では図8(d2)から更新されていない例を示す。
例えば、ノンコヒーレントな領域としてキャッシュされた領域は、そのデータの参照などを目的とするものであり、関連する処理の中ではこの領域に対するストア処理は発生しないはずである。そのような場合においても、上記の事象が生じることがある。例えば、実行している処理に異常な状態が生じた場合、或いは、同じプロセッサ内の他のコアの処理が干渉した場合などである。上記の場合、キャッシュメモリ15は、コア11に対する割り込みを発生させて、上記の通りコア11に所定の例外処理を実行させてもよい。
この後に、第1プロセッサ10のコア11は、上記ステップS30と同様に、領域b3に対するノンコヒーレントロード命令を実行する(ステップS50)ことにより、キャッシュライン15021に、領域b3に関するキャッシュライン15021が追加される(ステップS55、図9(f1))。ステップS51からステップS54の詳細は、前述のステップS31からステップS34を参照する。なお、図9(f2)に示す例では図8(d2)から更新されていない例を示す。
次に、第1プロセッサ10のコア11は、キャッシュメモリ15に、領域b3に関するパージ(削除)を指示する(ステップS60)。キャッシュメモリ15は、領域b3に関するキャッシュライン15021を削除する(ステップS61、図9(g1)))。なお、ステップS60の処理の実施は任意に設定できる。
比較例を挙げて、ステップS60の処理の適用例について説明する。
比較例の場合、参照を目的にノンコヒーレントロード命令の処理が実施されると、そのノンコヒーレントロード命令でフィルされたキャッシュラインがしばらくの間キャッシュメモリに残る。上記の領域に対する書き込みを行う際に、そのキャッシュラインにヒットすると、上記の通り例外処理に繋がってしまう。それを避けるには、当該キャッシュラインがキャッシュメモリからなくなるまで、ストア処理(動作)の実行を待機しなければならない。
そこで、本実施形態では、参照に関する処理が終わった段階で、コア11がそのキャッシュラインを削除することにより、当該キャッシュラインがキャッシュメモリ15になくなる。これにより、当該キャッシュラインがキャッシュメモリ15になくなるまで待たずに上記の領域に対するストア処理(動作)の実行が可能になる。
上記の実施形態に示した計算機1は、リモート側のキャッシュメモリ25に、ノンコヒーレントロード命令の実行によるデータの読み出しの履歴を残さないことにより、第2プロセッサ20がデータの読み出しの履歴の有無によらずに必要な処理を実施できる。その際に、キャッシュコヒーレンスを保証するための制限に影響されることがなく、この制限に起因するスヌープ、無効化などの処理が発生しない。ノンコヒーレントロード命令による処理は、第1ロード処理の一例である。
また、第1プロセッサ10は、ノンコヒーレントロード命令の実行によりフィルされるキャッシュラインを保持し、当該キャッシュラインにノンコヒーレントな領域を示す情報を登録するキャッシュメモリ15を備える。これにより、当該キャッシュラインにフィルされた情報が、ノンコヒーレントな領域の情報として登録されていることが識別可能になる。
図10は、第1プロセッサ10(半導体装置)の最小構成を示す図である。
第1プロセッサ10は、複数のプロセッサによって同一メモリ空間を共有する。第1プロセッサ10は、少なくともコア(実行部)と、キャッシュメモリとを備える。コア11は、他のプロセッサに割り当てられたリモートメモリ内の領域に対するキャッシュコヒーレンスを保証しないノンコヒーレントロード命令を実行する。キャッシュメモリ15は、自プロセッサに割り当てられたローカルメモリからのデータの読み出しの履歴を残す。キャッシュメモリ15は、他のプロセッサのキャッシュコヒーレンスを保証しないノンコヒーレントロード命令の実行による前記ローカルメモリからのデータの読み出しの場合には、前記データの読み出しの履歴を残さない。例えば、このような第1プロセッサ10と同様の構造を有する第2プロセッサなどを組み合わせることにより、第1プロセッサ10は、処理能力の低下を抑制することができる。
また、少なくとも第1プロセッサ10のコア11に実行させるためのプログラムは、第2プロセッサ20に割り当てられたメモリ26内の領域に対するデータを読み出し、その領域に対するキャッシュコヒーレンスを保証しないノンコヒーレントロード命令を含み、ノンコヒーレントロード命令の実行によりメモリ26からのデータリクエストを送信させるものであってよい。そのデータリクエストに、第2プロセッサ20のキャッシュメモリ25にデータの読み出しの履歴を残させないための情報を含めることで、上記の処理をプログラムの実行によって実現できる。
なお、ノンコヒーレントロード命令は、アプリケーションレベルのコンピュータプログラムに含まれていてもよく、或いは、上記コンピュータプログラムにより起動される他のコンピュータプログラムに含まれていてもよい。
以上、本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものとする。
上述の計算機1は内部に、コンピュータを有している。そして、上述した各処理の過程は、プログラムの形式でコンピュータ読み取り可能な記録媒体に記憶されており、このプログラムをコンピュータが読み出して実行することによって、上記処理が行われる。ここでコンピュータ読み取り可能な記録媒体とは、磁気ディスク、光磁気ディスク、CD-ROM、DVD-ROM、半導体メモリ等をいう。また、このコンピュータプログラムを通信回線によってコンピュータに配信し、この配信を受けたコンピュータが当該プログラムを実行するようにしても良い。
なお、図1における処理部の機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより上述した各処理を行ってもよい。なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものとする。また、「コンピュータシステム」は、ホームページ提供環境(あるいは表示環境)を備えたWWWシステムも含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD-ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ(RAM)のように、一定時間プログラムを保持しているものも含むものとする。
また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク(通信網)や電話回線等の通信回線(通信線)のように情報を伝送する機能を有する媒体のことをいう。また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル(差分プログラム)であっても良い。
1・・・計算機、
10・・・第1プロセッサ(半導体装置)、20・・・第2プロセッサ(半導体装置)、
11、12、21、22・・・コア、
13、23・・・ネットワークオンチップ、
14、24・・・メモリコントローラ、
15・・・キャッシュメモリ(ローカルキャッシュメモリ)、
25・・・キャッシュメモリ(リモートキャッシュメモリ)、
16・・・メモリ(ローカルメモリ)、
26・・・メモリ(リモートメモリ)、
1501、2501・・・データアレイ、
1502、2502・・・キャッシュ制御部、
1503、2503・・・キャッシュディレクトリ、
15021・・・キャッシュライン(第1キャッシュライン)、
25021・・・キャッシュライン(第2キャッシュライン)、
15022、25022・・・有効情報、
15023、25023・・・アドレスタグ、
15024、25024・・・書き換え情報、
15025、25025・・・ノンコヒーレント情報、
15031、25031・・・参照有無情報

Claims (9)

  1. 第1プロセッサと第2プロセッサとを有し、前記第1プロセッサと前記第2プロセッサとによって同一メモリ空間を共有する計算機であって、
    前記第2プロセッサは、
    メモリからのデータの読み出しの履歴を残すリモートキャッシュメモリを備え、
    前記第1プロセッサは、
    第1ロード処理の実行によりフィルされる第1キャッシュラインを保持し、前記第1キャッシュラインにノンコヒーレントな領域を示す情報を登録するローカルキャッシュメモリ
    を備え、
    前記第1プロセッサは、
    前記第2プロセッサに割り当てられた前記メモリ内の領域に対するキャッシュコヒーレンスを保証しない前記第1ロード処理を実行し、
    前記第1プロセッサは、
    記第1ロード処理の実行による前記メモリからのデータの読み出しの場合には、前記リモートキャッシュメモリに前記データの読み出しの履歴を残さない
    前記第1プロセッサは、前記第2プロセッサに割り当てられたメモリ内の領域に対するキャッシュコヒーレンスを保証する第2ロード処理を実行し、
    前記ローカルキャッシュメモリは、
    前記第2ロード処理の実行によって前記第1キャッシュラインがヒットした場合には、当該ヒットした前記第1キャッシュラインを無効化する、
    ことを特徴とする計算機。
  2. 第1プロセッサと第2プロセッサとを有し、前記第1プロセッサと前記第2プロセッサとによって同一メモリ空間を共有する計算機であって、
    前記第2プロセッサは、
    メモリからのデータの読み出しの履歴を残すリモートキャッシュメモリを備え、
    前記第1プロセッサは、
    第1ロード処理の実行によりフィルされる第1キャッシュラインを保持し、前記第1キャッシュラインにノンコヒーレントな領域を示す情報を登録するローカルキャッシュメモリ
    を備え、
    前記第1プロセッサは、
    前記第2プロセッサに割り当てられた前記メモリ内の領域に対するキャッシュコヒーレンスを保証しない前記第1ロード処理を実行し、
    前記第1プロセッサは、
    前記第1ロード処理を実行することによる前記メモリからのデータの読み出しの場合には、前記リモートキャッシュメモリに前記データの読み出しの履歴を残さない
    前記第1プロセッサは、前記第2プロセッサに割り当てられたメモリ内の領域にデータを書き込むためのストア処理を実行し、
    前記ローカルキャッシュメモリは、
    前記ストア処理によって前記第1キャッシュラインがヒットした場合には、当該ヒットした前記第1キャッシュラインを無効化する、
    ことを特徴とする計算機。
  3. 前記第1プロセッサは、
    前記第1キャッシュラインを無効化した後に、目的データがフィルされた第2キャッシュラインを保持する、
    ことを特徴とする請求項1又は請求項2に記載の計算機。
  4. 前記第1プロセッサは、
    前記ノンコヒーレントな領域に対する前記ストア処理によりキャッシュヒットした場合に例外処理を発生させる
    ことを特徴とする請求項2に記載の計算機。
  5. 前記ローカルキャッシュメモリは、
    前記第2プロセッサが管轄するメモリの内容をノンコヒーレントにキャッシュしている領域を前記ローカルキャッシュメモリからパージする、
    ことを特徴とする請求項1から請求項4の何れか1項に記載の計算機。
  6. 第1プロセッサと第2プロセッサとを有し、前記第1プロセッサと前記第2プロセッサとによって同一メモリ空間を共有する計算機の一部を形成する半導体装置であって、
    前記第1プロセッサと、
    第1ロード処理の実行によりフィルされる第1キャッシュラインを保持し、前記第1キャッシュラインにノンコヒーレントな領域を示す情報を登録するローカルキャッシュメモリと
    を備え、
    前記第2プロセッサを含む半導体装置は、
    メモリからのデータの読み出しの履歴を残すリモートキャッシュメモリを備え、
    前記リモートキャッシュメモリは、
    前記第1ロード処理の実行による前記メモリからのデータの読み出しの場合には、前記データの読み出しの履歴を残さないように構成されていて、
    前記第1プロセッサは、
    前記第2プロセッサに割り当てられたメモリ内の領域に対するキャッシュコヒーレンスを保証しない前記第1ロード処理を実行し、
    前記第1プロセッサは、前記第2プロセッサに割り当てられたメモリ内の領域に対するキャッシュコヒーレンスを保証する第2ロード処理を実行し、
    前記ローカルキャッシュメモリは、
    前記第2ロード処理の実行によって前記第1キャッシュラインがヒットした場合には、当該ヒットした前記第1キャッシュラインを無効化するように構成されている、
    ことを特徴とする半導体装置。
  7. 第1プロセッサと第2プロセッサとを有し、前記第1プロセッサと前記第2プロセッサとによって同一メモリ空間を共有する計算機の一部を形成する半導体装置であって、
    前記第1プロセッサと、
    第1ロード処理の実行によりフィルされる第1キャッシュラインを保持し、前記第1キャッシュラインにノンコヒーレントな領域を示す情報を登録するローカルキャッシュメモリと
    を備え、
    前記第2プロセッサを含む半導体装置は、
    メモリからのデータの読み出しの履歴を残すリモートキャッシュメモリを備え、
    前記リモートキャッシュメモリは、
    前記第1ロード処理の実行による前記メモリからのデータの読み出しの場合には、前記データの読み出しの履歴を残さないように構成されていて、
    前記第1プロセッサは、
    前記第2プロセッサに割り当てられたメモリ内の領域に対するキャッシュコヒーレンスを保証しない前記第1ロード処理を実行し、
    前記第1プロセッサは、前記第2プロセッサに割り当てられたメモリ内の領域にデータを書き込むためのストア処理を実行し、
    前記ローカルキャッシュメモリは、
    前記ストア処理によって前記第1キャッシュラインがヒットした場合には、当該ヒットした前記第1キャッシュラインを無効化するように構成されている、
    ことを特徴とする半導体装置。
  8. 第1プロセッサと第2プロセッサとを有し、前記第1プロセッサと前記第2プロセッサとによって同一メモリ空間を共有する計算機の制御方法であって、
    前記第1プロセッサは、第1ロード処理の実行によりフィルされる第1キャッシュラインを保持し、前記第1キャッシュラインにノンコヒーレントな領域を示す情報を登録するローカルキャッシュメモリを備え、
    前記第2プロセッサは、
    メモリからのデータの読み出しの履歴を残すリモートキャッシュメモリを備え、
    前記第1プロセッサが、
    前記第2プロセッサに割り当てられたメモリ内の領域に対するキャッシュコヒーレンスを保証しない前記第1ロード処理を実行して、
    前記第1プロセッサが前記第1ロード処理を実行することによる前記メモリからのデータの読み出しの場合には、前記リモートキャッシュメモリに前記データの読み出しの履歴を残さないステップと、
    前記第1プロセッサが、前記第2プロセッサに割り当てられたメモリ内の領域に対するキャッシュコヒーレンスを保証する第2ロード処理を実行するステップと、
    前記第2ロード処理の実行によって前記第1キャッシュラインがヒットした場合には、前記ローカルキャッシュメモリにおける当該ヒットした前記第1キャッシュラインを無効化させるステップと
    を含むことを特徴とする制御方法。
  9. 第1プロセッサと第2プロセッサとを有し、前記第1プロセッサと前記第2プロセッサとによって同一メモリ空間を共有する計算機の制御方法であって、
    前記第1プロセッサは、第1ロード処理の実行によりフィルされる第1キャッシュラインを保持し、前記第1キャッシュラインにノンコヒーレントな領域を示す情報を登録するローカルキャッシュメモリを備え、
    前記第2プロセッサは、
    メモリからのデータの読み出しの履歴を残すリモートキャッシュメモリを備え、
    前記第1プロセッサが、
    前記第2プロセッサに割り当てられたメモリ内の領域に対するキャッシュコヒーレンスを保証しない前記第1ロード処理を実行して、
    前記第1プロセッサが前記第1ロード処理を実行することによる前記メモリからのデータの読み出しの場合には、前記リモートキャッシュメモリに前記データの読み出しの履歴を残さないステップと、
    前記第1プロセッサが、前記第2プロセッサに割り当てられたメモリ内の領域にデータを書き込むためのストア処理を実行するステップと、
    前記ストア処理によって前記第1キャッシュラインがヒットした場合には、前記ローカルキャッシュメモリにおける当該ヒットした前記第1キャッシュラインを無効化させるステップと
    を含むことを特徴とする制御方法。
JP2018060775A 2018-03-27 2018-03-27 計算機、半導体装置、及び制御方法 Active JP7238262B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2018060775A JP7238262B2 (ja) 2018-03-27 2018-03-27 計算機、半導体装置、及び制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018060775A JP7238262B2 (ja) 2018-03-27 2018-03-27 計算機、半導体装置、及び制御方法

Publications (2)

Publication Number Publication Date
JP2019175006A JP2019175006A (ja) 2019-10-10
JP7238262B2 true JP7238262B2 (ja) 2023-03-14

Family

ID=68168899

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018060775A Active JP7238262B2 (ja) 2018-03-27 2018-03-27 計算機、半導体装置、及び制御方法

Country Status (1)

Country Link
JP (1) JP7238262B2 (ja)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007257637A (ja) 2006-03-23 2007-10-04 Internatl Business Mach Corp <Ibm> アクセラレータ用低コストのキャッシュ一貫性を維持する方法及びシステム
JP2015176153A (ja) 2014-03-12 2015-10-05 三菱電機株式会社 計算機、障害処理方法及びプログラム

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09212465A (ja) * 1996-01-31 1997-08-15 Toshiba Corp メモリ割り当て装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007257637A (ja) 2006-03-23 2007-10-04 Internatl Business Mach Corp <Ibm> アクセラレータ用低コストのキャッシュ一貫性を維持する方法及びシステム
JP2015176153A (ja) 2014-03-12 2015-10-05 三菱電機株式会社 計算機、障害処理方法及びプログラム

Also Published As

Publication number Publication date
JP2019175006A (ja) 2019-10-10

Similar Documents

Publication Publication Date Title
US11803486B2 (en) Write merging on stores with different privilege levels
US8949544B2 (en) Bypassing a cache when handling memory requests
US8996812B2 (en) Write-back coherency data cache for resolving read/write conflicts
US8606997B2 (en) Cache hierarchy with bounds on levels accessed
TWI432963B (zh) 加速器之低成本快取一致
US7698508B2 (en) System and method for reducing unnecessary cache operations
US7669010B2 (en) Prefetch miss indicator for cache coherence directory misses on external caches
US8015365B2 (en) Reducing back invalidation transactions from a snoop filter
US6088769A (en) Multiprocessor cache coherence directed by combined local and global tables
US8762651B2 (en) Maintaining cache coherence in a multi-node, symmetric multiprocessing computer
US10204047B2 (en) Memory controller for multi-level system memory with coherency unit
US20120102273A1 (en) Memory agent to access memory blade as part of the cache coherency domain
JP4474570B2 (ja) キャッシュコヒーレンシ制御方法
US20180357175A1 (en) Cache devices with configurable access policies and control methods thereof
JP2005519391A (ja) 共有ベクトルの増加を伴わないdsmマルチプロセッサシステムにおけるキャッシュコヒーレンスのための方法およびシステム
JP2007200292A (ja) エントリの時間経過によるキャッシュ・エントリの所有権喪失
US20090216957A1 (en) Managing the storage of data in coherent data stores
US10853256B2 (en) Cache operation in an apparatus supporting both physical and virtual address mapping
US11625326B2 (en) Management of coherency directory cache entry ejection
JP5587539B2 (ja) ローカルメモリデータのコヒーレントなキャッシュ処理
US8489822B2 (en) Providing a directory cache for peripheral devices
US10775870B2 (en) System and method for maintaining cache coherency
JP7238262B2 (ja) 計算機、半導体装置、及び制御方法
US7353341B2 (en) System and method for canceling write back operation during simultaneous snoop push or snoop kill operation in write back caches
US6356982B1 (en) Dynamic mechanism to upgrade o state memory-consistent cache lines

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210210

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20211222

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220104

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220303

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220325

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220520

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20220927

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20221226

C60 Trial request (containing other claim documents, opposition documents)

Free format text: JAPANESE INTERMEDIATE CODE: C60

Effective date: 20221226

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20230111

C21 Notice of transfer of a case for reconsideration by examiners before appeal proceedings

Free format text: JAPANESE INTERMEDIATE CODE: C21

Effective date: 20230117

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230213

R151 Written notification of patent or utility model registration

Ref document number: 7238262

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151