図面 (/)

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

出願人 富士通株式会社
発明者 野尻隆宏日下田雅紀小佐野秀和岡田誠之高橋仁
出願日 2016年1月7日 (5年9ヶ月経過) 出願番号 2016-001676
公開日 2017年7月13日 (4年3ヶ月経過) 公開番号 2017-123051
状態 特許登録済
技術分野 階層構造のメモリシステム
主要キーワード FF対 CPU間 フェイタルエラー 命令制御回路 登録単位 ファイルノード 獲得データ 例外割り込み
関連する未来課題
重要な関連分野

この項目の情報は公開日時点(2017年7月13日)のものです。
また、この項目は機械的に抽出しているため、正しく解析できていない場合があります

図面 (20)

課題

ストア動作中のエラーの発生を抑制する。

解決手段

情報処理装置は、命令を実行する演算処理部と、演算処理部からのデータアクセス要求応答するデータアクセス制御部と、データアクセス制御部によるデータ転送を制御する制御装置とをそれぞれ有するとともに、通信経路を介して接続される複数の演算処理装置とを有し、データアクセス制御部は、ストア要求に応答して他の演算処理装置にデータ獲得要求を出力し、同じストア要求のためのデータ獲得要求を再度出力するときに再実行情報を有するデータ獲得要求を出力し、制御装置は、他の演算処理装置から受信したデータアクセス要求を許可するか否かの判定と、データ獲得要求が同じストア要求のための再実行の要求か否かの判定とを行い、データアクセス要求を許可しない場合アクセス拒否応答を返信し、データアクセス要求を許可しないがデータ獲得要求が前記再実行の要求と判定した場合前記データ獲得要求を許可する、情報処理装置。

概要

背景

マルチプロセッサシステムと呼ばれる情報処理装置は、演算処理装置であるCPU(Central Processing Unit)とそれに接続されるメモリとをそれぞれ有する複数の演算処理ノード(以下単にノードと称する)をLAN(Local Area Network)などの通信経路であるネットワークで接続する。このようなクラスタ構成の情報処理装置では、各ノードでそれぞれのOS(Operating System)が独立して動作するとともに、各ノードのメモリがクラスタ内の複数のノード間で共有される。

そのため、メモリへのアクセス要求発行するCPU(ローカルCPUまたはL_CPU)は、そのアクセス先のメモリ領域を管理するCPU(ホームCPUまたはH_CPU)に対してデータアクセス要求を発行する。ホームCPUは、ローカルCPUからのデータアクセス要求に応答して、キャッシュコヒーレンシを保って、管理するメモリへのデータアクセス要求を処理する。なお、データアクセス要求は、メモリ内のデータを読み出すデータ獲得要求と、メモリ内にデータを書き込むまたは上書きするストア要求がある。

このようなノード間でデータアクセス要求が行われる場合、意図しないCPUからのアクセスを防ぐためにCPU間アクセス制御が行われる。例えば、各ノードのCPUは、故障したCPUからのアクセス要求を拒否することで好ましくないアクセス要求の処理を回避したり、故障したCPUへのアクセス要求の発行を抑制したりする。CPU間でのアクセス制御については、以下の特許文献にも記載されている。

概要

ストア動作中のエラーの発生を抑制する。情報処理装置は、命令を実行する演算処理部と、演算処理部からのデータアクセス要求に応答するデータアクセス制御部と、データアクセス制御部によるデータ転送を制御する制御装置とをそれぞれ有するとともに、通信経路を介して接続される複数の演算処理装置とを有し、データアクセス制御部は、ストア要求に応答して他の演算処理装置にデータ獲得要求を出力し、同じストア要求のためのデータ獲得要求を再度出力するときに再実行情報を有するデータ獲得要求を出力し、制御装置は、他の演算処理装置から受信したデータアクセス要求を許可するか否かの判定と、データ獲得要求が同じストア要求のための再実行の要求か否かの判定とを行い、データアクセス要求を許可しない場合アクセス拒否応答を返信し、データアクセス要求を許可しないがデータ獲得要求が前記再実行の要求と判定した場合前記データ獲得要求を許可する、情報処理装置。

目的

そこで、開示の第1の側面の目的は,ストア動作中のエラーの発生を抑制した情報処理装置、情報処理装置の制御方法及び演算処理装置を提供する

効果

実績

技術文献被引用数
0件
牽制数
0件

この技術が所属する分野

ライセンス契約や譲渡などの可能性がある特許掲載中! 開放特許随時追加・更新中 詳しくはこちら

請求項1

命令を実行する演算処理部と、前記演算処理部からのデータアクセス要求応答するデータアクセス制御部と、前記データアクセス制御部によるデータ転送を制御する制御装置とをそれぞれ有するとともに、通信経路を介して接続される複数の演算処理装置とを有し、前記データアクセス制御部は、前記ストア要求に応答して他の演算処理装置にデータ獲得要求を出力し、同じストア要求のためのデータ獲得要求を再度出力するときに再実行情報を有するデータ獲得要求を出力し、前記制御装置は、他の演算処理装置から受信したデータアクセス要求を許可するか否かの判定と、前記データ獲得要求が同じストア要求のための再実行の要求か否かの判定とを行い、前記データアクセス要求を許可しない場合アクセス拒否応答を返信し、前記データアクセス要求を許可しないが前記データ獲得要求が前記再実行の要求と判定した場合前記データ獲得要求を許可する、情報処理装置

請求項2

前記データアクセス要求を行うローカル側演算処理装置の前記データアクセス制御部は、前記データアクセス要求に対応する認証情報であるアクセス認証情報を付加して前記データアクセス要求を出力し、前記データアクセス要求を受けるホーム側演算処理装置の前記制御装置は、受信したデータアクセス要求のアクセス認証情報が、自装置が管理する主記憶装置に記憶するメモリ認証情報と一致する場合、前記データアクセス要求に対応するデータへのアクセスを許可する、請求項1に記載の情報処理装置。

請求項3

前記ローカル側演算処理装置の前記データアクセス制御部は、前記再実行情報を有するデータ獲得要求を発行するとき、前記アクセス認証情報として再実行用認証情報を付加して前記データ獲得要求を出力し、前記ホーム側演算処理装置の前記制御装置は、前記データ獲得要求のアクセス認証情報が前記再実行用認証情報の場合に前記再実行の要求と判定する、請求項2に記載の情報処理装置。

請求項4

前記ローカル側演算処理装置の前記データアクセス制御部は、前記再実行情報を有するデータ獲得要求を発行するとき、再実行情報を付加して前記データ獲得要求を出力し、前記ホーム側演算処理装置の前記制御装置は、前記データ獲得要求に前記再実行情報が付加されている場合に前記再実行の要求と判定する、請求項1または2に記載の情報処理装置。

請求項5

前記複数の演算処理装置のそれぞれと複数の主記憶装置のそれぞれとでノードを構成し、データアクセス要求を受けるホーム側演算処理装置の前記制御装置は、前記データアクセス要求を発行したノードがデータアクセス要求を拒否する拒否ノードに該当する場合に、前記データアクセス要求を拒否する、請求項1に記載の情報処理装置。

請求項6

前記データアクセス要求を行うローカル側演算処理装置の前記データアクセス制御部は、アクセス認証情報を付加してデータアクセス要求を出力し、前記再実行情報を有するデータ獲得要求を発行するとき、前記アクセス認証情報として再実行用認証情報を付加してデータ獲得要求を出力し、前記ホーム側演算処理装置の前記制御装置は、前記データ獲得要求の前記アクセス認証情報が再実行用認証情報の場合に前記再実行の要求と判定する、請求項5に記載の情報処理装置。

請求項7

前記データアクセス要求を行うローカル側演算処理装置の前記データアクセス制御部は、前記再実行情報を有するデータ獲得要求を発行するとき、再実行情報を付加してデータ獲得要求を出力し、前記ホーム側演算処理装置の前記制御装置は、受信したデータ獲得要求に再実行情報が付加されている場合に前記再実行の要求と判定する、請求項5に記載の情報処理装置。

請求項8

命令を実行する演算処理部と、前記演算処理部からのデータアクセス要求に応答するデータアクセス制御部と、前記データアクセス制御部によるデータ転送を制御する制御装置とをそれぞれ有する複数の演算処理装置と、前記複数の演算処理装置それぞれに設けられアクセスを制御される複数の主記憶装置と、前記複数の演算処理装置の間を接続する通信経路とを有する情報処理装置の制御方法であって、前記データアクセス制御部が、前記ストア要求に応答して他の演算処理装置にデータ獲得要求を出力し、同じストア要求のためのデータ獲得要求を再度出力するときに再実行情報を有するデータ獲得要求を出力し、前記制御装置が、他の演算処理装置から受信したデータアクセス要求を許可するか否かの判定と、前記データ獲得要求が同じストア要求のための再実行の要求か否の判定とを行い、前記データアクセス要求を許可しない場合にアクセス拒否応答を返信し、前記データアクセス要求を許可しないが前記データ獲得要求が前記再実行の要求と判定した場合に前記データ獲得要求を許可する、情報処理装置の制御方法。

請求項9

命令を実行する演算処理部と、前記演算処理部からのデータアクセス要求に応答するデータアクセス制御部と、前記データアクセス制御部によるデータ転送を制御し、対応するメモリのアクセスを制御する制御装置とを有し、前記データアクセス制御部は、前記ストア要求に応答して他の演算処理装置にデータ獲得要求を出力し、同じストア要求のためのデータ獲得要求を再度出力するときに再実行情報を有するデータ獲得要求を出力し、前記制御装置は、他の演算処理装置から受信したデータアクセス要求を許可するか否かの判定と、前記データ獲得要求が同じストア要求のための再実行の要求か否の判定とを行い、前記データアクセス要求を許可しない場合にアクセス拒否応答を返信し、前記データアクセス要求を許可しないが前記データ獲得要求が前記再実行の要求と判定した場合に前記データ獲得要求を許可する、演算処理装置。

技術分野

0001

本発明は,情報処理装置、情報処理装置の制御方法及び演算処理装置に関する。

背景技術

0002

マルチプロセッサシステムと呼ばれる情報処理装置は、演算処理装置であるCPU(Central Processing Unit)とそれに接続されるメモリとをそれぞれ有する複数の演算処理ノード(以下単にノードと称する)をLAN(Local Area Network)などの通信経路であるネットワークで接続する。このようなクラスタ構成の情報処理装置では、各ノードでそれぞれのOS(Operating System)が独立して動作するとともに、各ノードのメモリがクラスタ内の複数のノード間で共有される。

0003

そのため、メモリへのアクセス要求発行するCPU(ローカルCPUまたはL_CPU)は、そのアクセス先のメモリ領域を管理するCPU(ホームCPUまたはH_CPU)に対してデータアクセス要求を発行する。ホームCPUは、ローカルCPUからのデータアクセス要求に応答して、キャッシュコヒーレンシを保って、管理するメモリへのデータアクセス要求を処理する。なお、データアクセス要求は、メモリ内のデータを読み出すデータ獲得要求と、メモリ内にデータを書き込むまたは上書きするストア要求がある。

0004

このようなノード間でデータアクセス要求が行われる場合、意図しないCPUからのアクセスを防ぐためにCPU間アクセス制御が行われる。例えば、各ノードのCPUは、故障したCPUからのアクセス要求を拒否することで好ましくないアクセス要求の処理を回避したり、故障したCPUへのアクセス要求の発行を抑制したりする。CPU間でのアクセス制御については、以下の特許文献にも記載されている。

先行技術

0005

特開2009−176179号公報
特開2013−140446号公報

発明が解決しようとする課題

0006

一方、CPUにおけるストア動作では、ソフトウエアを実行する、演算処理部であるCPUコアからのストア要求に応答して、キャッシュ制御部は、ストアデータを一旦ストアバッファに格納し要求元のCPUコアにストア完了応答を行う。その後、キャッシュ制御部は、ストアバッファに格納したストアデータを記憶部であるキャッシュメモリに書き込む(キャッシュ登録する)。

0007

また、ストア動作では、キャッシュ制御部は、キャッシュメモリ内排他状態(Exclusive State)でストア対象の元のデータが記憶されていることを条件に、ストアデータをストアバッファに格納してストア完了応答を出力する。したがって、キャッシュ制御部は、キャッシュメモリに元のデータが排他状態で記憶されていない場合、ホームCPUに排他型のデータ獲得要求を発行し、排他状態でデータを獲得しキャッシュ登録した後に、ストアバッファにストアデータを格納する。

0008

しかしながら、ストア動作中にCPU間でキャッシュ競合(同一キャッシュラインのCPU間での取り合い)が発生すると、キャッシュメモリに登録した元のデータが他のCPUによる排他型データ獲得要求によりキャッシュメモリから追い出されてしまうことがある。その場合、キャッシュ制御部は、ストアデータをキャッシュメモリに上書きする前に、再度、ホームCPUに排他型データ獲得要求を発行し、ホームCPUのメモリ内のデータを排他状態で取得する必要がある。そして、キャッシュ制御部は、取得したデータをキャッシュメモリに登録した後にストアバッファ内のストアデータをキャッシュメモリに書き込む。

0009

さらに、ストア動作中に、CPU間のキャッシュ競合と、CPU間のアクセス制御の切り替えとが、発生すると、再度発行された排他型データ獲得要求が、ホームCPUにより拒否されることがある。その結果、ホームCPUからアクセス拒否応答を受信したローカルCPUは、ストア動作を完結できず、ストア要求したCPUコアに例外割り込みを発生し、ストア要求元のソフトウエアは修正不能なエラーであるフェイタルエラーになる。このようなアクセス拒否エラーの発生は回避することが望ましい。

0010

そこで、開示の第1の側面の目的は,ストア動作中のエラーの発生を抑制した情報処理装置、情報処理装置の制御方法及び演算処理装置を提供することにある。

課題を解決するための手段

0011

開示の第1の側面は,命令を実行する演算処理部と、前記演算処理部からのデータアクセス要求に応答するデータアクセス制御部と、前記データアクセス制御部によるデータ転送を制御する制御装置とをそれぞれ有するとともに、通信経路を介して接続される複数の演算処理装置とを有し、
前記データアクセス制御部は、前記ストア要求に応答して他の演算処理装置にデータ獲得要求を出力し、同じストア要求のためのデータ獲得要求を再度出力するときに再実行情報を有するデータ獲得要求を出力し、
前記制御装置は、他の演算処理装置から受信したデータアクセス要求を許可するか否かの判定と、前記データ獲得要求が同じストア要求のための再実行の要求か否かの判定とを行い、前記データアクセス要求を許可しない場合アクセス拒否応答を返信し、前記データアクセス要求を許可しないが前記データ獲得要求が前記再実行の要求と判定した場合前記データ獲得要求を許可する、情報処理装置である。

発明の効果

0012

第1の側面によれば,ストア動作中のエラーの発生を抑制することができる。

図面の簡単な説明

0013

マルチプロセッサシステムである情報処理装置の概略構成を示す図である。
アクセストークンを利用する第1のCPU間のアクセス制御を行うマルチプロセッサシステムの構成を示す図である。
メモリ領域とトークンとの関係を示す図である。
アクセストークンを利用したCPU間のアクセス制御の概略を説明する図である。
アクセストークンを利用したCPU間のアクセス制御の概略を説明する図である。
ホームCPUによるアクセス制御のフローチャート図である。
アクセス要求が許可される場合のシーケンスを示す図である。
アクセス要求が拒否される場合のシーケンスを示す図である。
フェイルノードリストを利用する第2のCPU間のアクセス制御を行うマルチプロセッサシステムの構成を示す図である。
フェイルノードリストによるアクセス制御の一例を示す図である。
ローカルCPU(L_CPU)によるストア動作のフローチャート図である。
CPU間でキャッシュ競合が発生しなかった場合のストア動作のシーケンスを示す図である。
CPU間でキャッシュ競合が発生した場合のストア動作のシーケンスを示す図である。
CPU間でキャッシュ競合が発生し且つストア動作中にCPU間のアクセス制御が切り替えられた場合のストア動作のシーケンスを示す図である。
本実施の形態におけるマルチプロセッサシステム(情報処理装置)の構成を示す図である。
本実施の形態におけるローカルCPU(L_CPU)でのストア動作を示すフローチャート図である。
本実施の形態におけるホームCPU(H_CPU)でのアクセス要求に対する動作を示すフローチャート図である。
本実施の形態におけるCPU間でキャッシュ競合が発生し且つストア動作中にCPU間のアクセス制御が切り替えられた場合のストア動作のシーケンスを示す図である。
第2の実施の形態におけるCPUのプロセッサ部PRの構成例を示す図である。
第2の実施の形態におけるCPUのシステムコントローラの構成例を示す図である。
第2の実施の形態におけるアクセストークンレジスタ設定動作を示す図である。
第3の実施の形態におけるCPUのシステムコントローラの構成を示す図である。
第4の実施の形態におけるCPUのプロセッサPRの構成を示す図である。
第4の実施の形態におけるCPUのシステムコントローラの構成を示す図である。
第5の実施の形態におけるCPUのシステムコントローラSYS_CONの構成を示す図である。

実施例

0014

図1は、マルチプロセッサシステムである情報処理装置の概略構成を示す図である。図1に示されたマルチプロセッサシステムは、複数のCPU(またはプロセッサ、演算処理装置)と複数のCPUそれぞれに設けられてアクセス制御される複数のメモリMEMと、複数のCPU間の通信を可能にする通信経路であるネットワークNWとを有する。CPUとメモリMEMとでノードを構成する。図1の例では、マルチプロセッサシステムは4つのノードを有し、したがって、4つのCPUと4つのメモリMEMを有する。

0015

各CPUは、プロセッサ部(またプロセッサ回路)PRと制御装置であるシステムコントローラSYS_CONとを有する。プロセッサ部PRは、命令フェッチ部と命令デコーダと命令を実行する演算部などを有する単数または複数の演算処理部(または演算処理回路)であるCPUコアCOREと、CPUコアが発行するデータアクセス要求を処理するデータアクセス制御部(またはキャッシュ制御部、データアクセス制御回路キャッシュ制御回路)DA_AC_CONとを有する。

0016

データアクセス制御部DA_AC_CONは、データを保持するキャッシュメモリ(または記憶部)CACHEの制御やストアバッファST_BUFの制御などを行う。データアクセス要求がデータ獲得要求(ロード要求)の場合は、データアクセス制御部は、データアクセス要求に対してキャッシュタグ(図示せず)を検索キャッシュヒットならキャッシュメモリのデータを応答し、キャッシュミスならシステムコントローラSYS_CONにデータアクセス要求を出力する。データアクセス要求がストア要求の場合は、データアクセス制御部は、キャッシュタグを検索してストア対象アドレスのデータが排他状態でキャッシュ登録されていることを条件にストアバッファST_BUFにストデータを格納し、その後キャッシュメモリに上書きする。

0017

システムコントローラ(またはホームエージェント)SYS_CONは、トランザクション制御部TRNS_CONと、アクセス許可判定部(またはアクセス許可判定回路)AC_PRMと、アクセス制御情報レジスタAC_INFとを有する。トランザクション制御部TRNS_CONは、データアクセス制御部からのデータアクセス要求が同じノード内のメモリ(または主記憶装置)MEMへのアクセスの場合は、図示しないメモリアクセス制御部(またはメモリアクセス制御回路)を介してメモリにアクセスし、メモリからのデータ応答をデータアクセス制御部に転送する。また、データアクセス要求が他のノードのメモリへのアクセスの場合は、トランザクション制御部は、そのデータアクセス要求をネットワークNWを介してホームCPU(アクセス先のメモリを管理するCPU)に出力する。そして、ホームCPUからのデータ応答をデータアクセス制御部に転送する。

0018

システムコントローラSYS_CON内のトランザクション制御部TRNS_CONは、他のCPUから出力されたデータアクセス要求についてアクセスを許可するか否かをアクセス許可判定部AC_PRMに依頼する。アクセス許可判定部AC_PRMは、例えばアクセス許可判定のためアクセス制御情報レジスタAC_INFを参照し、アクセス許可の判定を行う。判定結果がアクセス許可の場合、トランザクション制御部は、メモリMEMにアクセスし読み出したデータを要求元のCPUにデータ応答として返信する。判定結果がアクセス拒否の場合、トランザクション制御部は、要求元のCPUにアクセス拒否応答を返信する。

0019

[CPU間のアクセス制御]
次に、CPU間のメモリへのアクセス制御について説明する。

0020

複数のノードがネットワークNWを介して接続されたマルチプロセッサシステムは、複数のCPU間でメモリ領域を共有する。その場合、CPU間でそれぞれのCPUが管理するメモリへのアクセス制御(アクセスを許可または拒否の制御)が必要になる。第1のCPU間のアクセス制御として、複数のCPU間で共有するメモリ領域に対するアクセスプロテクションを行うために、一種認証情報であるアクセストークンを利用するアクセス制御がある。CPU間で共有されるメモリ領域のメモリを管理するホームCPUが、そのメモリ領域を共有するローカルCPUにアクセストークンをあらかじめ通知しておき、ローカルCPUはアクセストークンを付加してアクセス要求をホームCPUに出力し、ホームCPUはアクセストークンが正しいか否か(許可できるか否か)を判定する。

0021

または、第2のCPU間のアクセス制御として、各ノードのCPUが、他のノードが故障しているか否かを示すフェイルノードリストを所有し、他のノード宛てのアクセス要求を抑制したり他のノードからのアクセス要求を拒否する。各CPUはフェイルノードリストを適宜変更することで他のノードからのアクセス要求を動的に拒否または許可する。

0022

図2は、アクセストークンを利用する第1のCPU間のアクセス制御を行うマルチプロセッサシステムの構成を示す図である。図2のマルチプロセッサシステムにおいて図1と異なる構成は、各CPUのシステムコントローラSYS_CONが、自ノードが管理する主記憶装置であるメモリMEM内のメモリ領域へのアクセス要求のための認証情報であるメモリトークンを設定しておくメモリトークンレジスタMTK_RGを有することである。メモリトークンレジスタMTK_RGは、アクセス制御情報レジスタAC_INFの一形態として設けられる。さらに、異なる構成は、各CPUのデータアクセス制御部DA_AC_CONが、ホームCPUから通知されたトークンを設定するアクセストークンレジスタACTK_RGを有することである。

0023

図3は、メモリ領域とトークンとの関係を示す図である。メモリMEMは所定の物理アドレスPA[M:N]で特定される所定容量のメモリ領域であるセグメントSEGMENTに分割され、各セグメントに対応してそれぞれのトークンMTKが割り当てられる。図3の例では、物理アドレスPA[M:N]はメモリMEMの上位アドレス8桁に対応し、PA[M:N]=00からFFまでの256のセグメントに分割され、それぞれのセグメントに対応するトークンがメモリトークンMTKとしてメモリトークンレジスタMTK_RGに格納されている。

0024

図4図5は、アクセストークンを利用したCPU間のアクセス制御の概略を説明する図である。図4図5には、4つのノードのCPU#1- CPU#4が示されている。ここでCPU#2がメモリMEM#2を管理するホームCPUであり、他のノードCPU#1,#3,#4がメモリMEM#2内のメモリ領域を共有しそのメモリ領域へのアクセスを要求するローカルCPUである。

0025

図4において、ホームCPU#2の監視アプリケーションMON_APLは、メモリMEM#2内のあるメモリ領域のトークンをメモリトークンMTK=777としてメモリトークンレジスタMTK_RGに物理アドレスPA[M:N]に関連付けて設定する。さらに、ホームCPU#2の監視アプリケーションMON_APLは、メモリ領域を共有する他のノードCPU#1,#3,#4のアプリケーションAPLにメモリトークンMTK=777を通知し、それぞれのアプリケーションAPLはそのトークンをアクセストークンレジスタACTK_RG内に物理アドレスPA[M:N]に関連付けて格納する。

0026

そして、例えばローカルCPU#1がメモリMEM#2内のメモリ領域にアクセス要求を発行する際に、アクセストークンレジスタACTK_RG内の物理アドレスPA[M:N]に対応付けられたアクセストークンACTK=777をアクセス要求に付加する。このアクセス要求を受信したホームCPU#2は、アクセス要求に付加されていたアクセストークンACTK=777と、メモリトークンレジスタMTK_RG内のアクセス先物理アドレスPA[M:N]に対応するメモリトークンMTK=777とを比較し、等しいためアクセス許可の判定を行う。そして、ホームCPU#2は、メモリMEM#2にアクセスしてアクセス要求に対応するデータをローカルCPU#1に応答する。

0027

図5において、ホームCPU#2の監視アプリケーションMON_APLは、CPU#1に故障が発生したことを検出する。例えば、CPU#1へのある要求に対応する応答が所定時間内に受信できなかった場合などCPU#1と通信できなくなると、CPU#1が何らかの理由(暴走など)で故障したと判定する。それに応答して、ホームCPU#2の監視アプリケーションMON_APLは、自ノードのメモリトークンレジスタMTK_RG内のメモリトークンMTKをMTK=888に変更し、他のCPUのアプリケーションに変更後のトークンを通知する。CPU#3,#4は自ノードのアクセストークンレジスタACTK_RG内のアクセストークンを、新たなトークンTK=888に変更することができるが、故障しているCPU#1は新たなトークンに変更することができない。

0028

その結果、ホームCPU#2は、CPU#3,#4からのアクセス要求については変更後のアクセストークンによりアクセスを許可しデータ応答するが、CPU#1からのアクセス要求は変更前のアクセストークンであるためアクセスを拒否しアクセス拒否応答をする。上記のような故障ノードからのアクセスを拒否する方法に利用する場合、アクセストークンが任意のタイミングで変更される。

0029

図6は、ホームCPUによるアクセス制御のフローチャート図である。ホームCPU(図4,5の例ではCPU#2)では、トランザクション制御部TRNS_CONが、他のCPUからアクセス要求を受信すると(S1)、アクセス要求のメモリ領域に対応するアクセス制御情報AC_INF(アクセストークン方式の場合はメモリトークンMTK)をアクセス制御情報レジスタ(メモリトークンレジスタMTK_RG)から読み出し(S2)、アクセス要求のアクセスが許可されるか否かの判定をアクセス許可判定部AC_PRMに行わせる(S3)。そして、アクセス許可されていれば、アクセス要求を処理(リード要求ならメモリからデータを読み出し)してデータ応答を送信する(S4,S5)。一方、アクセス許可されていなければ、アクセス拒否応答を送信する(S6)。

0030

図7は、アクセス要求が許可される場合のシーケンスを示す図である。ローカルCPU(L_CPU)のコアCOREがリード要求を発行すると(S50)、データアクセス制御部DA_AC_CONは、キャッシュミス判定し、アクセストークンを付加したデータアクセス要求をシステムコントローラSYS_CONを経由してホームCPU(H_CPU)に出力する(S51)。ホームCPU(H_CPU)は、アクセストークンに基づいてアクセス要求を許可し図示しないメモリにアクセスしてデータを読み出し(S52)、ローカルCPU(L_CPU)にデータ応答する(S53)。データ応答を受信したローカルCPU(L_CPU)では、データアクセス制御部DA_AC_CONが受信したデータをキャッシュメモリに登録し(S54)、コアCOREにデータを出力してリードが完了する(S55)。

0031

図8は、アクセス要求が拒否される場合のシーケンスを示す図である。図7と同様に、ローカルCPUのコアCOREがリード要求を発行すると(S50)、データアクセス制御部がキャッシュミス判定し、アクセストークン付のメモリアクセス要求をホームCPUに出力する(S51)。ホームCPUは、アクセストークンがメモリトークンと一致せずアクセス拒否判定をして(S52)、ローカルCPUにアクセス拒否応答を出力する(S53A)。その結果、ローカルCPUのデータアクセス制御部DA_AC_CONは、アクセス拒否応答を要求元のコアCOREに出力する(S55A)。その結果、アクセス要求元のソフトウエアは、所定の例外処理を実行してアクセス要求を実行する。

0032

図9は、フェイルノードリストを利用する第2のCPU間のアクセス制御を行うマルチプロセッサシステムの構成を示す図である。図9のマルチプロセッサシステムにおいて図1図2と異なる構成として、各CPUのシステムコントローラSYS_CONが、アクセス制御情報レジスタAC_INFとして、自ノードが管理するメモリMEM内のメモリ領域への他のノードからのアクセス要求を拒否するか否かを示すフェイルノードリストFND_LSTをアクセス制御情報レジスタAC_INF内に有する。各CPUのデータアクセス制御部DA_AC_CONは、アクセス要求にノードIDを付加して出力するので、ホームCPUのシステムコントローラSYS_CONは、他のCPUからのアクセス要求に応答して、フェイルノードリストFND_LSTを参照しアクセス要求のノードIDがアクセスを拒否設定されているか否かを判定する。

0033

フェイルノードリストによるアクセス制御では、アクセス要求に含まれてるノードIDに基づいてホームCPUとして他のCPUからのアクセス要求を拒否するか否かを自ノード内のフェイルノードリストFND_LSTの設定により制御することができる。したがって、例えば、暴走などにより故障したノードからのアクセス要求をノード別に拒否することができる。さらに、自ノードが電源OFFする直前に、(1)自ノード内のキャッシュメモリ内の他ノードから持ち出したデータを当該他ノードのメモリに書き戻す処理と(2)自ノードのメモリから他ノードが持ち出したデータを他ノードのキャッシュメモリから自ノードのメモリに書き戻す処理を完了する必要がある。そこで、電源OFFの直前に、前述の(1)(2)とはそれぞれ逆方向のデータの持ち出しの禁止を、フェイルノードリストを書き換えることで行うことができる。

0034

図10は、フェイルノードリストによるアクセス制御の一例を示す図である。図10の例では、ノードNODE#0がCPU#0のキャッシュメモリCACHE内にノードNODE#2、NODE#1のメモリデータを持ち出し、ノードNODE#1がCPU#1内のキャッシュメモリCACHE内にノードNODE#0のメモリデータを持ち出し、ノードNODE#2がCPU#2内のキャッシュメモリCACHE内にノードNODE#1のメモリデータを持ち出している。この状態で、ノードNODE#1のCPU#1が電源OFFすると仮定する。

0035

その場合、電源OFFする直前に、(1)電源OFF対象のCPU#1は、キャッシュメモリ内に持ち出しているノードNODE#0のメモリデータをノードNODE#0のメモリMEM#0に書き戻す必要がある。同様に、(2)CPU#0、CPU#2は、キャッシュメモリ内に持ち出しているノードNODE#1のメモリデータをノードNODE#1のメモリMEM#1に書き戻す必要がある。

0036

そこで、上記の(1)(2)とは逆方向のデータの持ち出しを禁止するために、電源OFFするCPU#1のフェイルノードリストFND_LSTは全ノードをアクセス要求拒否のビット「1」に設定し、CPU#0,#2のフェイルノードリストFND_LSTはノードNODE#1をアクセス拒否ビット「1」に設定する。このようにフェイルノードリストを設定することで、電源OFF対象のノードNODE#1のCPU#1は、上記の(1)とは逆方向の全ノードから自ノードへのアクセス要求を拒否することができ、ノードNODE#0,#2のCPU#0,CPU#2は、上記の(2)とは逆方向のノードNODE#1から自ノード(NODE#0,NODE#2)へのアクセス要求を拒否することができる。

0037

[ストア要求の処理と課題]
次に、ストア要求の処理がどのように行われるかについて説明し、前述のCPU間のアクセス制御と競合した場合の課題について説明する。

0038

図11は、ローカルCPU(L_CPU)によるストア動作のフローチャート図である。まず、データアクセス制御部DA_AC_CONは、コアCOREからストア要求を入力すると(S11)、キャッシュタグを探索してキャッシュメモリがストア対象のライン(キャッシュ登録単位のメモリ領域)を排他状態で記憶しているか否かを判定する(S12)。ここで排他状態とは、キャッシュメモリのMESIプロトコルの排他状態(EXCLUSIVEまたはMODIFIED)を意味し、ローカルCPU(L_CPU)のノードが単独でキャッシュメモリ内にラインのデータを記憶している状態である。キャッシュコヒーレンシを保つために、排他状態でないとそのキャッシュラインにストアデータを上書きすることが禁止される。

0039

キャッシュメモリがストア対象のラインを排他状態で記憶している場合(S12のYES)、ローカルCPUのデータアクセス制御部DA_AC_CONは、ストア要求のストアデータをストアバッファST_BUFに格納し(S15)、コアおよびソフトウエアに対してストア命令完了通知を行う(S16)。

0040

一方、キャッシュメモリがストア対象のラインを排他状態で記憶していない場合(S12のNO)、ホームCPUに対して排他型のデータ獲得要求を発行する(S14)。排他型のデータ獲得要求とは、他のCPUがストア対象のラインをキャッシュメモリに記憶していない状態でホームCPUのメモリのデータを読み出す要求である。そして、ホームCPUからデータ応答を受信すると、データアクセス制御部DA_AC_CONは、受信したデータをキャッシュメモリに排他状態で書き込み(登録し)、ストア要求のストアデータをストアバッファに格納し(S15)、上記と同様にストア命令完了通知を行う(S16)。

0041

ストアデータをストアバッファに格納したとき、ストアバッファ内のストアデータをキャッシュ登録する要求がデータアクセス制御部DA_AC_CONの入力ポート予約される。ここまでが、ストア動作のフェーズ1である。

0042

次に、ストア動作のフェーズ2では、ストアデータのキャッシュ登録要求がデータアクセス制御部のパイプライン部に投入されると(S17)、データアクセス制御部は、キャッシュメモリがストア対象のラインを排他状態で記憶しているか否か判定し(S18)、記憶していれば(S18のYES)、ストアバッファ内のストアデータをキャッシュ登録する(S20)。一方、このときにキャッシュメモリがストア対象のラインを排他状態で記憶していない場合(S18のNO)、データアクセス制御部は、再度、ホームCPUに対して排他型のデータ獲得要求を発行する(S19)。そして、受信したデータをキャッシュメモリに排他状態で書き込み(登録し)、ストアバッファ内のストアデータをキャッシュメモリに上書きする(S20)。

0043

上記のストアバッファ内のストアデータのキャッシュ登録要求が入力された後、工程S18でキャッシュメモリがストア対象のラインを排他型で記憶していないという状況になるのは、ストア命令完了S16からキャッシュ登録要求が入力されるまでの間に、他のCPUがストア対象のラインを排他型で獲得した場合である。この現象は、複数のCPU間で同一のキャッシュラインの取得が競合する場合(キャッシュ競合)に発生する。

0044

以下、CPU間でキャッシュ競合が発生しなかった場合と、発生した場合のストア動作について説明する。

0045

図12は、CPU間でキャッシュ競合が発生しなかった場合のストア動作のシーケンスを示す図である。まず、ローカルCPU(L_CPU)にて、コアCOREからのストア要求が入力されると(S11)、データアクセス制御部DA_AC_CONは、キャッシュメモリ内にストア対象のラインが排他状態で記憶されているかチェックし(S12)、記憶されていなければ、システムコントローラを経由してホームCPU(H_CPU)に排他型のデータ獲得要求を出力する(S14)。このデータ獲得要求に応答して、ホームCPUがデータ応答すると(S14_2)、ローカルCPUのデータアクセス制御部DA_AC_CONは、受信したデータをキャッシュメモリに登録し(S15_2)、ストアデータをストアバッファに格納し(S15)、ストア要求元のコア(ソフトウエア)にストア完了応答をする(S16)。

0046

その後、ストアバッファ内のデータのキャッシュ登録を要求するキャッシュ登録要求が入力されると(S17)、データアクセス制御部DA_AC_CONは、キャッシュメモリがストア対象のラインが排他状態で記憶していることを確認し(S18)、ストアバッファ内のストアデータをキャッシュメモリに上書き(登録)する(S20)。

0047

図13は、CPU間でキャッシュ競合が発生した場合のストア動作のシーケンスを示す図である。図13では、ローカルCPU(L_CPU#1)にて、ストア要求が入力され(S11)、図12と同様の処理を経て、ストアバッファにストアデータを格納しストア完了応答をする(S16)。

0048

ただし、図12と異なり、ローカルCPU(L_CPU#1)がストア完了応答をした後、別のローカルCPU(L_CPU#3)がホームCPU(H_CPU#2)に同じラインに対して排他型のデータ獲得要求を出力する(S60)。それに応答して、ホームCPU(H_CPU#2)が要求されたラインを持ち出しているローカルCPU(L_CPU#1)に、そのラインをキャッシュメモリから追い出す追い出し要求を出力する(S61)。この要求に応答して、ローカルCPU(L_CPU#1)のデータアクセス制御部DA_AC_CONは、キャッシュメモリ内のラインのデータを読み出し且つそのラインを削除し(S62)、ホームCPUに読み出しデータとともにデータ応答を返信する(S63)。そして、ホームCPUが要求されたデータをデータ応答でローカルCPU(L_CPU#3)に返信する(S64)。それに応答して、ローカルCPU(L_CPU#3)は返信されたデータをキャッシュ登録する(S65)。その結果、ローカルCPU(L_CPU#1)内のキャッシュメモリからストア対象のラインは削除されてしまう。

0049

その後、ストアデータのキャッシュ登録要求がデータアクセス制御部DA_AC_CONに入力されると(S17)、データアクセス制御部は、キャッシュメモリがストア対象のラインを排他状態で記憶していないことを検出し(S18)、ストア対象のラインについて排他型のデータ獲得要求をホームCPUに出力する(S19)。

0050

それに応答して、ホームCPUは別のローカルCPU(L_CPU#3)にストア対象ラインをキャッシュメモリから追い出す追い出し要求を送信し(S66)、ローカルCPU(L_CPU#3)からのデータ応答を受信し(S67)、ローカルCPU(L_CPU#1)にデータ応答を返信する(S19_2)。

0051

このデータ応答に応答して、ローカルCPU(L_CPU#1)のデータアクセス制御部は、受信したラインのデータをキャッシュメモリに記憶し(S20_2)、ストアバッファ内のストアデータをキャッシュメモリに上書きする(S20)。

0052

図14は、CPU間でキャッシュ競合が発生し且つストア動作中にCPU間のアクセス制御が切り替えられた場合のストア動作のシーケンスを示す図である。この場合、アクセス制御の切り替えに起因して、ストア動作がフェイタルエラーで終わっている。

0053

図14では、ホームCPU(H_CPU#2)において、前半はCPU#1,CPU#3からのアクセス要求を許可するようアクセス制御情報が設定されていたが、後半にCPU#1,CPU#3からのアクセス要求を拒否するよう設定変更されている。図中、ホームCPUの位置にアクセス制御設定内容が示されている。

0054

図14のストア動作では、ローカルCPU(L_CPU#1)にてストア要求がデータアクセス制御部に入力され(S11)、図13と同様の処理を経て、データアクセス制御部がストアバッファにストアデータを格納しストア完了応答をする(S16)。さらに、別のローカルCPU(L_CPU#3)がストア対象のラインについて排他型のデータ獲得要求をホームCPUに出力し(S60)、図13と同様の処理を経て、獲得したラインのデータをキャッシュ登録する(S65)。その結果、ローカルCPU(L_CPU#1)はキャッシュメモリにストア対象のラインを記憶していない。

0055

このタイミングで、ホームCPUに対するローカルCPU#1,CPU#3からのアクセス要求を拒否するようアクセス制御情報の設定が変更される。そして、ローカルCPU(L_CPU#1)のデータアクセス制御部が、ストアデータのキャッシュ登録要求を投入され(S17)、再度排他型のデータ獲得要求をホームCPUに出力するが(S19)、ホームCPUでのキャッシュ制御設定の変更によりその排他型のデータ獲得要求は拒否され(S19_3)、ローカルCPU(L_CPU#1)のデータアクセス制御部は、コアに例外割り込みを発行し(S20_3)、ソフトウエアはフェイタルエラーとなる(S20_4)。

0056

すなわち、ローカルCPU(L_CPU#1)は、ストア要求に対してすでにストア完了応答をしたのにかかわらず、その後のストアデータのキャッシュ登録を完結することができない。そのため、ストア動作が破綻してしまっている。その結果、ストア要求時に同期してストア失敗を通知できず、例外割り込みをコアに出力してフェイタルエラーとなる。

0057

このような非同期エラーが発生した場合、ストア命令を実行したソフトウエアにとってすでに完了済みのストアが失敗している恐れがある。そのため、ストアできたはずのメモリ領域が古いデータのままとなり、以降のソフトウエアの動作が保障されない。したがって、ソフトウエアは、このような非同期エラーを受信した場合、例外処理で回復することができず、システムフェイタルエラーとなる。

0058

[第1の実施の形態]
図15は、本実施の形態におけるマルチプロセッサシステム(情報処理装置)の構成を示す図である。図15において図1と異なる構成は、プロセッサ部PR内のデータアクセス制御部DA_AC_CONに、ストア要求のためのデータ獲得要求が再実行であることを通知する再実行通知部RE_EXC_NTCが設けられていることである。さらに、図1と異なる構成は、システムコントローラSYS_CONが、アクセス許可判定部AC_PRMに、他のCPUからのデータ獲得要求が再実行であるか否かを判定する再実行判定部RE_EXC_JDが設けられていることである。

0059

このような構成を有することで、アクセス要求を発行するローカルCPUとアクセス要求を受信するホームCPUの動作は、以下のようになる。まず、ローカルCPU側のデータアクセス制御部DA_AC_CONは、ストア要求に応答してホーム側演算処理装置にデータ獲得要求を出力し獲得データをキャッシュ登録した後、ストアバッファのデータをキャッシュ登録するときに、同じストア要求のためのデータ獲得要求を再実行するときに再実行情報を有するデータ獲得要求を発行する。再実行通知部RE_EXC_NTCが再実行情報をデータ獲得要求に付加する。

0060

逆に、ホームCPU側のシステムコントローラSYS_CONでは、アクセス許可判定部AC_PRMが他のCPUから受信したデータアクセス要求を許可するか否かの判定を行うとき、再実行判定部RE_EXC_JDがデータ獲得要求が同じストア要求のための再実行の要求か否の判定を行う。そして、アクセス許可判定部は、データ獲得要求が再実行の要求ではないときは、アクセストークンやフェイルノードリストなどによりデータアクセス要求を許可するか否か判定し、データ獲得要求が再実行の要求であるときは、アクセストークンやフェイルノードリストなどに依らずデータ獲得要求を許可する。

0061

図16は、本実施の形態におけるローカルCPU(L_CPU)でのストア動作を示すフローチャート図である。図16において、フェーズ1では、データアクセス制御部が、コアからストア要求を入力し(S11)、キャッシュタグを検索してキャッシュメモリにストア対象のラインが排他状態で記憶しているか確認し(S12)、記憶していればストアデータをストアバッファに格納し(S15)コアに対してストア命令完了通知を行う(S16)。一方、記憶していなければホームCPUにストア対象のラインを排他型で獲得する排他型のデータ獲得要求を出力し(S14)、ストアデータをストアバッファに格納し(S15)コアにストア命令完了通知を行う(S16)。ここまでは、図11と同じである。

0062

一方、フェーズ2では、データアクセス制御部が、入力ポートからキャッシュ登録要求を入力し(S17)、キャッシュタグを検索してキャッシュメモリにストア対象のラインが排他状態で記憶しているか確認し(S18)、記憶していればストアバッファのデータをキャッシュに上書きする(S20)。ここまでも図11と同じである。一方、図11と異なり、キャッシュメモリが排他型でストア対象のラインを記憶していない場合(S18のNO)、データアクセス制御部DA_AC_CONと再実行通知部RE_EXC_NTCとが再実行であることを通知する情報をデータ獲得要求に付加する(S19A)。これにより、ホームCPUは、データ獲得要求が同じストア動作での再実行であることを知ることができる。

0063

その結果、ホームCPUはこのデータ獲得要求が再実行であることから、アクセス制御情報にかかわらずデータ獲得要求を許可し、ストア対象のラインを持ち出している別のローカルCPUのキャッシュメモリからストア対象のラインを追い出し、元のローカルCPUにデータ応答を行う。これに応答して、元のローカルCPUはデータ応答のデータをキャッシュ登録してからストアバッファのデータをキャッシュメモリに上書きする(S20)。

0064

上記のフェーズ1のストア要求とフェーズ2のキャッシュ登録要求とは、データアクセス制御部(パイプライン部)へのパイプIDが異なるので、データアクセス制御部は、両フェーズを見分けることができる。

0065

図17は、本実施の形態におけるホームCPU(H_CPU)でのアクセス要求に対する動作を示すフローチャート図である。図17において、図6と異なる工程は、アクセス許可判定部AC_PRMと再実行判定部RE_EXC_JDとが、まず、アクセス制御情報AC_INFに基づいてアクセス許可すべきか否か判定し(S3)、それと共に、再実行判定部によりアクセス要求が同じストア動作での再実行であるか否かの判定を行う(S7)ことである。そして、アクセス制御情報に基づくアクセス許可判定が拒否の場合でも(S3のNO)、再実行判定部がアクセス要求が同じストア動作での再実行の要求であると判定すると(S7のYES)、ホームCPUはそのアクセス要求を許可して、ローカルCPUにデータ応答を行う。

0066

図18は、本実施の形態におけるCPU間でキャッシュ競合が発生し且つストア動作中にCPU間のアクセス制御が切り替えられた場合のストア動作のシーケンスを示す図である。図18は、図14と同様に、2つのローカルCPU(L_CPU#1,L_CPU#3)との間でホームCPUのデータについてキャッシュ競合が発生し、且つストア動作中にホームCPU(H_CPU#2)において2つのローカルCPU(L_CPU#1,L_CPU#3)からのアクセス要求に対する許可設定が拒否に切替えられている。

0067

図18では、図14と同様に、ローカルCPU(L_CPU#1)がコアからのストア要求(S11)に応答して、排他型のデータ獲得要求をホームCPUに出力し(S14)、獲得したデータをストアバッファに書き込み(S15,S15_2)、コアにストア完了を応答する(S16)。さらに、図18では、図14と同様に、別のローカルCPU(L_CPU#3)が排他型のデータ獲得要求をホームCPUに出力し(S60)、ホームCPUがL_CPU#1のキャッシュメモリからキャッシュラインのデータを追い出してL_CPU#3にデータ応答し(S61,S63)、L_CPU#3が、獲得したデータをキャッシュ登録する(S65)。ここまでは図14と同じであり、2つの排他型のデータ獲得要求はいずれもホームCPUでアクセス許可されている。

0068

一方、図14と異なり、図18では、ローカルCPU(L_CPU#1)が、ストアデータのキャッシュ登録要求に応答して、ストア対象のラインについて排他型のデータ獲得要求を再度発行するとき、再実行通知部RE_EXC_NTCが再実行であることを示す情報をデータ獲得要求に付加し、データ獲得要求が同じストア動作での再実行であることを示して、再実行の排他型のデータ獲得要求をホームCPUに出力する(S19A)。このデータ獲得要求に応答して、ホームCPUのアクセス許可判定部AC_PRMは、ローカルCPU(L_CPU#1)からのアクセス要求は拒否する設定なっているが、再実行判定部RE_EXC_JDがデータ獲得要求が同じストア動作での再実行の要求であると判定するため、再実行の排他型のデータ獲得要求を許可する。

0069

その結果、ローカルCPU(L_CPU#1)は、データ応答を受信し(S19_2)、獲得したデータをキャッシュメモリに登録後(S20_2)、ストアデータをキャッシュメモリに上書きする(S20)。

0070

以上のように、本実施の形態では、他のローカルCPUとの間のキャッシュ競合により同じストア動作で排他型のデータ獲得要求を再実行するときに、ローカルCPUが再実行であることを示す情報をデータ獲得要求に付加する。そして、ホームCPUが再実行のデータ獲得要求の場合は、キャッシュ制御のアクセス要求拒否の設定にもかかわらず、その再実行のデータ獲得要求を許可する。したがって、ストア動作中にホームCPUにおいてアクセス制御の設定が切り替りローカルCPUからのアクセス要求を拒否する設定になっていても、非同期エラーが発生せず、ソフトウエアがフェイタルエラーになることがなく、システムの信頼性が向上する。そして、ホームCPUは、ストア動作での1回目のデータ獲得要求を許可したのであるから、再実行のデータ獲得要求も許可するようにしても、アクセス制御の観点で問題になることはない。

0071

[第2の実施の形態]
図19は、第2の実施の形態におけるCPUのプロセッサ部PRの構成例を示す図である。また、図20は、第2の実施の形態におけるCPUのシステムコントローラの構成例を示す図である。

0072

第2の実施の形態では、アクセス制御にアクセストークンとメモリトークンを使用し、さらに、同じストア動作での再実行の排他型のデータ獲得要求を通知するために、アクセストークン[13:0]に再実行の排他型のデータ獲得要求であることを示す専用のアクセストークンを割り当てる。例えば、専用のアクセストークンとして14’hXXXXを割り当てる。そして、ローカルCPU側のアクセス制御部が同じストア動作で排他型のデータ獲得要求を再度実行する場合、アクセストークンを専用の14’hXXXXに置き換えて、排他型のデータ獲得要求をシステムコントローラ経由でホームCPUに発行する。一方、ホームCPU側のシステムコントローラは、受信した排他型のデータ獲得要求のアクセストークンが専用のトークン14’hXXXXの場合は、同じストア動作での二度目の排他型のデータ獲得要求と判定し、アクセス制御が切替えられてアクセストークンとメモリトークンが不一致になっても、そのデータ獲得要求を許可する。

0073

図19において、アクセストークンレジスタACTK_RGは、アクセストークン要求ACTK_RQに応答してアクセス先アドレスに対応するアクセストークンACTK[13:0]を出力する。また、アクセストークンライト要求ACTK_WTに応答して、アクセストークンを設定する。

0074

図19のプロセッサ部PRでは、コアがデータアクセス要求DA_AC_RQとしてストア要求をデータアクセス制御部DA_AC_CONに入力すると、第1フェーズにおいて、データアクセス制御部は、キャッシュタグを検索してストア対象のラインがキャッシュメモリに排他型で記憶されているか否かチェックし、記憶されていない場合は、排他型のデータ獲得要求DA_AQ_RQをシステムコントローラを経由してホームCPUに出力する。この排他型のデータ獲得要求DA_AQ_RQには、アクセストークンレジスタACTK_RG内のアクセストークンACTK[13:0]を含める。そして、その排他型のデータ獲得要求に対応するデータを受信すると、キャッシュメモリCAHEに登録してから、ストアバッファST_BUFにストアデータを格納し、コアにストア完了通知を返信する。

0075

次に、第2フェーズにおいて、ストアデータのキャッシュ登録要求が入力されると、データアクセス制御部DA_AC_CONは、ストア対象のラインがキャッシュメモリに記憶されているか否かをチェックし、記憶されていない場合は、二度目の排他型のデータ獲得要求をシステムコントローラを経由してホームCPUに出力する。この場合、再実行通知部RE_EXC_NTCの比較器CMP1は、第2フェーズのパイプラインID(PIPE_ID)が再実行要求ID(RE_EXC_ID)と等しいため、再実行を示す旨の情報である再実行フラグRE_EXC=FLGを1にする。その結果、データアクセス制御部DA_AC_CONのセレクタSELは専用のトークン14’hXXXXを選択し、アクセストークンACTK[13:0]としてデータ獲得要求DA_AQ_RQに付加して出力する。

0076

図20のホームCPU側のシステムコントローラSYS_CONでは、トランザクション制御部TRNS_CONが、他のCPUからの排他型のデータアクセス要求を受信すると、アクセス許可判定部AC_PRMにアクセス許可要求AC_PRM_RQをデータアクセス要求の情報RQ_INFと共に出力し、アクセス許可できるか否か判定させる。要求情報RQ_INFには、アクセス先の物理アドレスPA及びアクセストークンACTKと、アクセス元ノード情報などが含まれる。

0077

通常のデータアクセス要求の場合は、アクセス許可判定部AC_PRMは、アクセス先の物理アドレスの一部PA[M:N]に対応するメモリトークンMTKをメモリトークンレジスタMTK_RGから読み出し、比較器CMP3がアクセストークンACTK[13:0]とメモリトークンMTK[13:0]を比較し、一致する場合は「1」を出力し、ORゲートは「1」を出力し、ANDゲートはアクセス許可状態を示す「1」のアクセス許可通知AC_PRM_NTCを出力する。このアクセス許可通知に応答して、トランザクション制御部TRNS_CONは、ストア対象のラインが他のCPUにより持ち出されている場合は追い出し要求を発行し、他のCPUからキャッシュメモリ内のラインのデータを追い出させる。そして、トランザクション制御部は、データ追い出し要求に対するデータ応答を受信した後、メモリMEMにメモリアクセスを実行し、読み出したデータを、データアクセス要求元にデータ応答する。

0078

一方、他のCPUからのデータアクセス要求が、同じストア動作での二度目のデータ獲得要求の場合、要求情報RQ_INF内のアクセストークンACTKは、専用のトークン14’hXXXXである。それにより、再実行判定部RE_EXC_JD内の比較器CMP2は、アクセストークACTKが専用トークン14’hXXXXと等しいため、出力の再実行判定結果RE_EXC_RSを「1」とする。そして、アクセス制御が切替えられて、比較器CMP3にてアクセス先物理アドレスPA[M:N]に対応するメモリトークンMTKがデータ獲得要求元のアクセストークンACTKと不一致になっていても、再実行判定結果RE_EXC_RSが「1」であるため、ORゲートの出力が「1」、ANDゲートの出力が「1」となり、アクセス許可通知AC_PRM_NTCは「1」となり、二度目のデータ獲得要求は許可される。

0079

以上のとおり、第2の実施の形態では、ローカルCPUのデータアクセス制御部DA_AC_CONが再実行通知部RE_EXC_NTCと共に、第2フェーズの再実行のデータ獲得要求の場合、通常のアクセストークンACTKを専用のアクセストークン14’hXXXに代えてデータ獲得要求の要求情報に含める。そして、ホームCPUのシステムコントローラSYS_CONでは、アクセストークンACTKが再実行専用のトークン14’hXXXXであることを検知し、アクセストークンACTKとメモリトークンMTKとの比較結果にかかわらず、アクセス要求を許可する。したがって、ストア動作の途中でアクセス制御が切替えられても、最初のデータ獲得要求が許可されている場合は、二度目のデータ獲得要求も許可される。

0080

図21は、第2の実施の形態におけるアクセストークンレジスタの設定動作を示す図である。例えば、ソフトウエアがアクセストークンレジスタACT_RGに新規のアクセストークンACTKを書き込む要求を発行すると(S31)、図19設定チェック部10が、新規アクセストークンACTKが専用トークン14’hXXXXと一致するか否かを判定し(S32)、不一致の場合は新規アクセストークンACTKをアクセストークンレジスタACTK_RGに書き込み(S33)、ソフトウエアに書き込み完了通知を行う(S34)。一方、一致する場合は、新規アクセストークンACTKをアクセストークンレジスタACTK_RGに書き込まず、ソフトウエアに書き込み完了通知を行う(S34)。これにより、ソフトウエアが専用トークンをアクセストークンレジスタに設定して、アクセス制御に反するアクセス要求を発行して不正にデータを獲得することを防止する。

0081

[第3の実施の形態]
第3の実施の形態では、アクセス制御にアクセストークンとメモリトークンによる制御と、ノードフェイルリストを利用する制御とを行い、さらに、同じストア動作での再実行の排他型のデータ獲得要求を通知するために、アクセストークン[13:0]を再実行の排他型のデータ獲得要求であることを示す専用のアクセストークンに置き換える。例えば、専用のアクセストークンとして14’hXXXXを割り当てる。そして、ローカルCPU側のデータアクセス制御部が同じストア動作で排他型のデータ獲得要求を再度実行する場合、アクセストークンを専用の14’hXXXXに置き換えて、排他型のデータ獲得要求をシステムコントローラに発行する。一方、ホームCPU側のシステムコントローラは、受信した排他型のデータ獲得要求のアクセストークンが専用のトークン14’hXXXXの場合は、同じストア動作での二度目の排他型のデータ獲得要求と判定し、アクセス制御が切替えられてアクセス元のノードIDがフェイルノードリスト内のノードIDと一致したとしても、そのデータ獲得要求を許可する。

0082

図22は、第3の実施の形態におけるCPUのシステムコントローラの構成を示す図である。第3の実施の形態におけるCPUのプロセッサ部PRの構成は図19と同様である。

0083

第3の実施の形態では、ローカルCPUでのストア要求に対する動作は、第2の実施の形態と同様である。つまり、ストア動作の第2フェーズでは、データアクセス制御部がアクセストークンACTKを再実行のデータ獲得要求であることを示すために、アクセストークンを専用トークン14’hXXXXに置き換える。

0084

一方、ホームCPUでのデータアクセス要求に対する動作は、次の通りである。通常のデータアクセス要求の場合、アクセス許可判定部AC_PRMは、要求情報RQ_INFに含まれる要求ノード識別番号RQ_ND_ID[3:0]をデコーダDECでデコードし16ビットのノードID信号を出力する。そして、16個のアンドAND2が16ビットのデコード出力と、フェイルノードリストFND_LST[15:0]の16ビットとの論理積をそれぞれ出力し、ノアゲートNORが16個の論理積出力のNOR出力を出力する。フェイルノードリストFND_LST[15:0]は、フェイルノードに対応するビットが「1」にフェイルノードではないビットが「0」に設定される。したがって、16ビットのうち1組一致すれば、NOR出力は出力を「0」にする。その場合は、アクセス許可通知AC_PRM_NTCは「0」になりアクセスは拒否される。すべて不一致であれば、NOR出力は出力を「1」にする。この場合アクセス許可通知信号は「1」になりアクセスは許可される。

0085

そして、ストア動作のフェーズ2において、同じストア動作での再実行のデータ獲得要求を受信した場合、その要求に付加されたアクセストークンACTKは専用トークン14’hXXXXである。その結果、再実行判定部RE_EXC_JDは、アクセストークンACTK[13:0]は専用トークン14’hXXXXと一致することを検出し、再実行判定結果RE_EXC_RSを「1」にする。そのため、ORゲートORは出力を「1」にして、アクセス許可通知AC_PRM_NTCを「1」にするので、同じストア動作での再実行のデータ獲得要求は、アクセス制御が切替えられて要求元のノードがフェイルノードリストで「1」に設定されていても、アクセス許可される。

0086

第2及び第3の実施の形態では、再実行のデータ獲得要求であることを通知するために、既存のアクセストークンを専用トークンに置き換える。したがって、データアクセス要求に新たなフィールドを設けなくても、対応可能である。

0087

[第4の実施の形態]
第4の実施の形態では、アクセストークンとメモリトークンを利用してCPU間のアクセス制御を行う。そして、ローカルCPUのデータアクセス制御部が、ストア動作の第2フェーズでの再実行のデータ獲得要求に再実行であることを示す再実行フラグを付加して、ホームCPUに出力する。そして、ホームCPUは、データアクセス要求であるデータ獲得要求に、再実行フラグが付加されていたら、アクセストークンがメモリトークンと不一致でも、そのデータ獲得要求を許可する。

0088

図23は、第4の実施の形態におけるCPUのプロセッサPRの構成を示す図である。図19と異なり、再実行通知部RE_EXC_NTCは、パイプラインID(PIPE_ID)がストア動作の第2フェーズに対応するパイプラインID、RE_EXC_IDと一致したら、再実行フラグRE_EXC_FLGを「1」にする。データアクセス制御部DA_AC_CONはこの再実行フラグRE_EXC_FLGをアクセストークンACTKと共に、データ獲得要求DA_AQ_RQに付加して、システムコントローラを経由し、ホームCPUに出力する。

0089

図24は、第4の実施の形態におけるCPUのシステムコントローラの構成を示す図である。図20と異なり、図24では、再実行判定部RE_EXC_JDが要求情報RQ_INFに含まれる再実行フラグRE_EXC_FLGをそのままアクセス許可判定部AC_PRMのORゲートに入力する。ORゲートのもう一つの入力は、アクセス要求に含まれるアクセストークンACTK[13:0]をアクセス要求の物理アドレスPAに対応するメモリトークンMTK[13:0]と比較する比較器CMP3の出力である。

0090

したがって、通常のデータアクセス要求の場合は、比較器CMP3がアクセストークンとメモリトークンとを比較して要求を許可するか否か判定し、ストア動作の第2フェーズでのデータアクセス要求では、再実行フラグRE_EXC_FLGが「1」であるので、アクセス制御が切替えられてアクセストークンがメモリトークンと一致しなくても、データ獲得要求が許可される。

0091

[第5の実施の形態]
第5の実施の形態では、ノードフェイルリストを利用してCPU間のアクセス制御を行う。そして、ローカルCPUのデータアクセス制御部が、ストア動作の第2フェーズでの再実行のデータ獲得要求に再実行であることを示す再実行フラグを付加して、ホームCPUに出力する。そして、ホームCPUは、データアクセス要求であるデータ獲得要求に再実行フラグが付加されていたら、アクセス要求元のノードIDがフェイルノードリストと一致しても、そのデータ獲得要求を許可する。

0092

図25は、第5の実施の形態におけるCPUのシステムコントローラSYS_CONの構成を示す図である。一方、CPUのプロセッサPRの構成は図23と同じであり、動作も同様である。

0093

図25において、図22と異なり、再実行判定部RE_EXC_JDが要求情報RQ_INFに含まれる再実行フラグRE_EXC_FLGをそのままアクセス許可判定部AC_PRMのORゲートに入力する。ORゲートのもう一つの入力は、アクセス要求元の要求ノードID(RQ_ND_ID[3:0])がフェイルノードリストFND_LST[15:0]内のファイルノードを示すビットと一致するか否かを判定するANDゲートAND2とNORゲートNORの判定部の出力である。

0094

したがって、通常のデータアクセス要求の場合は、データアクセス要求元のノードがフェイルノードリストFND_LSTに含まれているか否かでアクセス要求を許可するか否か判定し、ストア動作の第2フェーズでのデータアクセス要求では、再実行フラグRE_EXC_FLGが「1」であるので、アクセス制御が切替えられてアクセストークンがメモリトークンと一致しなくても、データ獲得要求が許可される。

0095

以上のとおり、本実施の形態によれば、ストア動作中にキャッシュ競合が発生し、第2フェーズで排他的なデータ獲得要求を再実行した場合、アクセス制御の設定が変更されていても、ホームCPUが再実行のデータ獲得要求を許可する。

0096

以上の実施の形態をまとめると,次の付記のとおりである。

0097

(付記1)
命令を実行する演算処理部と、前記演算処理部からのデータアクセス要求に応答するデータアクセス制御部と、前記データアクセス制御部によるデータ転送を制御する制御装置とをそれぞれ有するとともに、通信経路を介して接続される複数の演算処理装置とを有し、
前記データアクセス制御部は、前記ストア要求に応答して他の演算処理装置にデータ獲得要求を出力し、同じストア要求のためのデータ獲得要求を再度出力するときに再実行情報を有するデータ獲得要求を出力し、
前記制御装置は、他の演算処理装置から受信したデータアクセス要求を許可するか否かの判定と、前記データ獲得要求が同じストア要求のための再実行の要求か否かの判定とを行い、前記データアクセス要求を許可しない場合アクセス拒否応答を返信し、前記データアクセス要求を許可しないが前記データ獲得要求が前記再実行の要求と判定した場合前記データ獲得要求を許可する、情報処理装置。

0098

(付記2)
前記データアクセス要求を行うローカル側演算処理装置の前記データアクセス制御部は、前記データアクセス要求に対応する認証情報であるアクセス認証情報を付加して前記データアクセス要求を出力し、
前記データアクセス要求を受けるホーム側演算処理装置の前記制御装置は、受信したデータアクセス要求のアクセス認証情報が、自装置が管理する主記憶装置に記憶するメモリ認証情報と一致する場合、前記データアクセス要求に対応するデータへのアクセスを許可する、付記1に記載の情報処理装置。

0099

(付記3)
前記ローカル側演算処理装置の前記データアクセス制御部は、前記再実行情報を有するデータ獲得要求を発行するとき、前記アクセス認証情報として再実行用認証情報を付加して前記データ獲得要求を出力し、
前記ホーム側演算処理装置の前記制御装置は、前記データ獲得要求のアクセス認証情報が前記再実行用認証情報の場合に前記再実行の要求と判定する、付記2に記載の情報処理装置。

0100

(付記4)
前記ローカル側演算処理装置の前記データアクセス制御部は、前記再実行情報を有するデータ獲得要求を発行するとき、再実行情報を付加して前記データ獲得要求を出力し、
前記ホーム側演算処理装置の前記制御装置は、前記データ獲得要求に前記再実行情報が付加されている場合に前記再実行の要求と判定する、付記1または2に記載の情報処理装置。

0101

(付記5)
前記複数の演算処理装置のそれぞれと複数の主記憶装置のそれぞれとでノードを構成し、
データアクセス要求を受けるホーム側演算処理装置の前記制御装置は、前記データアクセス要求を発行したノードがデータアクセス要求を拒否する拒否ノードに該当する場合に、前記データアクセス要求を拒否する、付記1に記載の情報処理装置。

0102

(付記6)
前記データアクセス要求を行うローカル側演算処理装置の前記データアクセス制御部は、アクセス認証情報を付加してデータアクセス要求を出力し、前記再実行情報を有するデータ獲得要求を発行するとき、前記アクセス認証情報として再実行用認証情報を付加してデータ獲得要求を出力し、
前記ホーム側演算処理装置の前記制御装置は、前記データ獲得要求の前記アクセス認証情報が再実行用認証情報の場合に前記再実行の要求と判定する、付記5に記載の情報処理装置。

0103

(付記7)
前記データアクセス要求を行うローカル側演算処理装置の前記データアクセス制御部は、前記再実行情報を有するデータ獲得要求を発行するとき、再実行情報を付加してデータ獲得要求を出力し、
前記ホーム側演算処理装置の前記制御装置は、受信したデータ獲得要求に再実行情報が付加されている場合に前記再実行の要求と判定する、付記5に記載の情報処理装置。

0104

(付記8)
前記ストア要求におけるデータ獲得要求は、他の演算処理装置によるデータ獲得状態を禁止する排他型のデータ獲得要求であり、
前記データ獲得要求に応答して、当該データ獲得要求のデータを記憶する主記憶装置を管理するホーム側演算処理装置は、前記他の演算処理装置のキャッシュメモリから前記データ獲得要求のデータを追い出し、その後前記データ獲得要求のデータを前記データ獲得要求を出力したローカル側演算処理装置に応答する、付記1に記載の情報処理装置。

0105

(付記9)
前記データアクセス要求は、前記データ獲得要求とデータストア要求とを有する、付記1に記載の情報処理装置。

0106

(付記10)
命令を実行する演算処理部と、前記演算処理部からのデータアクセス要求に応答するデータアクセス制御部と、前記データアクセス制御部によるデータ転送を制御する制御装置とをそれぞれ有する複数の演算処理装置と、
前記複数の演算処理装置それぞれに設けられアクセスを制御される複数の主記憶装置と、
前記複数の演算処理装置の間を接続する通信経路とを有する情報処理装置の制御方法であって、
前記データアクセス制御部が、
前記ストア要求に応答して他の演算処理装置にデータ獲得要求を出力し、
同じストア要求のためのデータ獲得要求を再度出力するときに再実行情報を有するデータ獲得要求を出力し、
前記制御装置が、
他の演算処理装置から受信したデータアクセス要求を許可するか否かの判定と、前記データ獲得要求が同じストア要求のための再実行の要求か否の判定とを行い、
前記データアクセス要求を許可しない場合にアクセス拒否応答を返信し、
前記データアクセス要求を許可しないが前記データ獲得要求が前記再実行の要求と判定した場合に前記データ獲得要求を許可する、情報処理装置の制御方法。

0107

(付記11)
前記データアクセス要求を行うローカル側演算処理装置の前記データアクセス制御部は、前記データアクセス要求に対応する認証情報であるアクセス認証情報を付加して前記データアクセス要求を出力し、
前記データアクセス要求を受けるホーム側演算処理装置の前記制御装置は、受信したデータアクセス要求のアクセス認証情報が、自装置が管理する主記憶装置に記憶するメモリ認証情報と一致する場合、前記データアクセス要求に対応するデータへのアクセスを許可する、付記10に記載の情報処理装置の制御方法。

0108

(付記12)
前記ローカル側演算処理装置の前記データアクセス制御部は、前記再実行情報を有するデータ獲得要求を発行するとき、前記アクセス認証情報として再実行用認証情報を付加して前記データ獲得要求を出力し、
前記ホーム側演算処理装置の前記制御装置は、前記データ獲得要求のアクセス認証情報が前記再実行用認証情報の場合に前記再実行の要求と判定する、付記11に記載の情報処理装置の制御方法。

0109

(付記13)
前記ローカル側演算処理装置の前記データアクセス制御部は、前記再実行情報を有するデータ獲得要求を発行するとき、再実行情報を付加して前記データ獲得要求を出力し、
前記ホーム側演算処理装置の前記制御装置は、前記データ獲得要求に前記再実行情報が付加されている場合に前記再実行の要求と判定する、付記10または11に記載の情報処理装置の制御方法。

0110

(付記14)
命令を実行する演算処理部と、
前記演算処理部からのデータアクセス要求に応答するデータアクセス制御部と、
前記データアクセス制御部によるデータ転送を制御し、対応するメモリのアクセスを制御する制御装置とを有し、
前記データアクセス制御部は、前記ストア要求に応答して他の演算処理装置にデータ獲得要求を出力し、同じストア要求のためのデータ獲得要求を再度出力するときに再実行情報を有するデータ獲得要求を出力し、
前記制御装置は、他の演算処理装置から受信したデータアクセス要求を許可するか否かの判定と、前記データ獲得要求が同じストア要求のための再実行の要求か否の判定とを行い、前記データアクセス要求を許可しない場合にアクセス拒否応答を返信し、前記データアクセス要求を許可しないが前記データ獲得要求が前記再実行の要求と判定した場合に前記データ獲得要求を許可する、演算処理装置。

0111

CPU:プロセッサ、演算処理装置、CPUチップ
H_CPU:ホームCPU(メモリを管理しているCPU)
L_CPU:ローカルCPU(H_CPUにデータアクセス要求を発行するリクエストCPU)
MEM:メモリ、メインメモリ
PR:プロセッサ回路、演算処理部
CORE:CPUコア、命令制御回路命令制御
DA_AC_CON:データアクセス制御回路(またはデータアクセス制御部)、キャッシュ制御回路(またはキャッシュ制御部)(パイプライン構成
ST_BUF:ストアバッファ
CACHE:キャッシュメモリ(含むキャッシュタグ)
SYS_CON:システムコントローラ、ホームエージェント
TRNS_CON:トランザクション制御部
AC_PRM:アクセス許可判定回路(アクセス許可判定部)
AC_INF:アクセス制御情報
NW:プロセッサ間ネットワーク(または通信経路)
ACTK_RG:アクセストークンレジスタ
ACTK:アクセストークン(アクセス認証情報)
MTK_RG:メモリトークンレジスタ
MTK:メモリトークン(メモリ認証情報)
APL:アプリケーションプログラム
MON_APL:監視アプリケーションプログラム

ページトップへ

この技術を出願した法人

この技術を発明した人物

ページトップへ

関連する挑戦したい社会課題

関連する公募課題

ページトップへ

おススメ サービス

おススメ astavisionコンテンツ

新着 最近 公開された関連が強い技術

この 技術と関連性が強い人物

関連性が強い人物一覧

この 技術と関連する社会課題

関連する挑戦したい社会課題一覧

この 技術と関連する公募課題

関連する公募課題一覧

astavision 新着記事

サイト情報について

本サービスは、国が公開している情報(公開特許公報、特許整理標準化データ等)を元に構成されています。出典元のデータには一部間違いやノイズがあり、情報の正確さについては保証致しかねます。また一時的に、各データの収録範囲や更新周期によって、一部の情報が正しく表示されないことがございます。当サイトの情報を元にした諸問題、不利益等について当方は何ら責任を負いかねることを予めご承知おきのほど宜しくお願い申し上げます。

主たる情報の出典

特許情報…特許整理標準化データ(XML編)、公開特許公報、特許公報、審決公報、Patent Map Guidance System データ