(57)【要約】【課題】  プログラマブル部にプログラムされるデータ処理部によるメモリアクセスの特徴に応じて、キャッシュ効率を最適化する。【解決手段】  情報処理装置は、データを記憶する記憶部と、データ処理部、キャッシュ制御切替部、キャッシュ制御部およびキャッシュメモリ部がプログラムされるプログラマブル部と、分析部と、決定部と、構成制御部とを有する。分析部は、データ処理部が発行するメモリアクセス要求に含まれるアクセスアドレスのパターンを分析する。決定部は、分析したアクセスアドレスのパターンに基づいて、プログラマブル部にプログラムするキャッシュ制御切替部の論理を決定する。構成制御部は、データ処理部、キャッシュメモリ部およびキャッシュ制御部をプログラマブル部にプログラムするとともに、決定部が決定したキャッシュ制御切替部をプログラマブル部にプログラムする。【選択図】    図１
2018151827.tif 000002
【特許請求の範囲】
【請求項１】
データを記憶する記憶部と、
前記記憶部が記憶するデータを処理するデータ処理部と、前記データ処理部で使用するデータが格納されるキャッシュメモリ部と、前記データ処理部が前記記憶部から読み出すデータを前記キャッシュメモリ部に格納するかをキャッシュ制御情報に基づいて決定するキャッシュ制御部と、前記データ処理部が発行するメモリアクセス要求に基づいて前記キャッシュ制御情報を生成するキャッシュ制御切替部とがプログラムされるプログラマブル部と、
前記プログラマブル部にプログラムされる前記データ処理部が発行する前記メモリアクセス要求に含まれるアクセスアドレスのパターンを分析する分析部と、
前記分析部が分析した前記アクセスアドレスのパターンに基づいて、前記プログラマブル部にプログラムする前記キャッシュ制御切替部の論理を決定する決定部と、
前記データ処理部、前記キャッシュメモリ部および前記キャッシュ制御部を前記プログラマブル部にプログラムするとともに、前記決定部が決定した前記キャッシュ制御切替部を前記プログラマブル部にプログラムする構成制御部と
を備えることを特徴とする情報処理装置。
【請求項２】
前記データ処理部が実行する第１データ処理と等価な第２データ処理を実行する機能を含む処理プログラムを実行する演算処理部を備え、
前記分析部は、前記処理プログラムによる前記第２データ処理の実行により発生する前記記憶部へのアクセスに基づいて前記アクセスアドレスのパターンを分析することを特徴とする請求項１記載の情報処理装置。
【請求項３】
前記処理プログラムによる前記第２データ処理の実行中に前記分析部による前記アクセスアドレスのパターンの分析が完了した場合、
前記構成制御部は、前記決定部が決定した前記キャッシュ制御切替部を前記プログラマブル部にプログラムし、
前記演算処理部は、前記第２データ処理のうち未実行の処理を、前記第１データ処理の一部として前記データ処理部に実行させることを特徴とする請求項２記載の情報処理装置。
【請求項４】
前記分析部は、前記プログラマブル部にプログラムされ、
前記構成制御部は、前記データ処理部、前記分析部およびデフォルトのキャッシュ制御切替部を前記プログラマブル部にプログラムし、前記データ処理部が発行する前記メモリアクセス要求に基づいて前記分析部が前記アクセスアドレスのパターンを分析した後、前記デフォルトのキャッシュ制御切替部を、前記決定部が決定した前記キャッシュ制御切替部に置き換えることを特徴とする請求項１記載の情報処理装置。
【請求項５】
前記データ処理部が実行するデータ処理は、複数のプロセスを含み、
前記分析部は、前記複数のプロセスのうち、実行頻度が他のプロセスよりも高いプロセスによる前記アクセスアドレスのパターンを分析することを特徴とする請求項１ないし請求項４のいずれか１項記載の情報処理装置。
【請求項６】
前記決定部は、前記分析部が分析した前記アクセスアドレスのパターンに基づいて決定した前記キャッシュ制御切替部の構成情報を生成し、
前記構成制御部は、前記決定部が生成した前記キャッシュ制御切替部の構成情報を前記プログラマブル部にプログラムすることを特徴とする請求項１ないし請求項５のいずれか１項記載の情報処理装置。
【請求項７】
前記決定部は、複数種の前記アクセスアドレスのパターンにそれぞれ対応する複数種の前記キャッシュ制御切替部の構成情報のいずれかを、前記分析部が分析した前記アクセスアドレスのパターンに基づいて選択し、
前記構成制御部は、前記決定部が選択した前記キャッシュ制御切替部の構成情報を前記プログラマブル部にプログラムすることを特徴とする請求項１ないし請求項５のいずれか１項記載の情報処理装置。
【請求項８】
前記決定部は、前記分析部が分析した前記アクセスアドレスのパターンに基づいて、前記プログラマブル部の空き領域にプログラム可能な前記キャッシュ制御切替部の論理を決定することを特徴とする請求項１ないし請求項７のいずれか１項記載の情報処理装置。
【請求項９】
データを記憶する記憶部とプログラマブル部を備え、前記プログラマブル部に、前記記憶部が記憶するデータを処理するデータ処理部と、前記データ処理部で使用するデータが格納されるキャッシュメモリ部と、前記データ処理部が前記記憶部から読み出すデータを前記キャッシュメモリ部に格納するかをキャッシュ制御情報に基づいて決定するキャッシュ制御部と、前記データ処理部が発行するメモリアクセス要求に基づいて前記キャッシュ制御情報を生成するキャッシュ制御切替部がプログラムされる情報処理装置の制御方法において、
前記情報処理装置が、
前記プログラマブル部にプログラムされる前記データ処理部が発行する前記メモリアクセス要求に含まれるアクセスアドレスのパターンを分析し、
分析した前記アクセスアドレスのパターンに基づいて、前記プログラマブル部にプログラムする前記キャッシュ制御切替部の論理を決定し、
前記データ処理部、前記キャッシュメモリ部および前記キャッシュ制御部を前記プログラマブル部にプログラムするとともに、決定した前記キャッシュ制御切替部を前記プログラマブル部にプログラムすることを特徴とする情報処理装置の制御方法。
【請求項１０】
データを記憶する記憶部とプログラマブル部を備え、前記プログラマブル部に、前記記憶部が記憶するデータを処理するデータ処理部と、前記データ処理部で使用するデータが格納されるキャッシュメモリ部と、前記データ処理部が前記記憶部から読み出すデータを前記キャッシュメモリ部に格納するかをキャッシュ制御情報に基づいて決定するキャッシュ制御部と、前記データ処理部が発行するメモリアクセス要求に基づいて前記キャッシュ制御情報を生成するキャッシュ制御切替部がプログラムされる情報処理装置の制御プログラムにおいて、
前記プログラマブル部にプログラムされる前記データ処理部が発行する前記メモリアクセス要求に含まれるアクセスアドレスのパターンを分析し、
分析した前記アクセスアドレスのパターンに基づいて、前記プログラマブル部にプログラムする前記キャッシュ制御切替部の論理を決定し、
前記データ処理部、前記キャッシュメモリ部および前記キャッシュ制御部を前記プログラマブル部にプログラムするとともに、決定した前記キャッシュ制御切替部を前記プログラマブル部にプログラムする
処理を、前記情報処理装置に実行させるための制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理装置の制御方法および情報処理装置の制御プログラムに関する。
【背景技術】
【０００２】
近時、論理を動的に再構成可能なＦＰＧＡ（Field-Programmable Gate Array）等のプログラマブルデバイスをアクセラレータとして機能させる情報処理装置が注目されている。この種の情報処理装置において、処理をソフトウェアまたはハードウェアのいずれで実行するかを判断し、ハードウェアで実行する場合、ＦＰＧＡに論理を構築して処理を実行する手法が知られている（例えば、特許文献１参照）。
【０００３】
例えば、ＦＰＧＡに構築する論理は、高級言語で記述されたソースファイルを制御フローグラフ表現、制御データフローグラフ表現に順次変換し、制御データフローグラフ表現をハードウェア記述言語に変換することで生成される（例えば、特許文献２参照）。また、ソースファイルのうち、ソフトウェアで実行する部分とハードウェアで実行する部分とを、コンパイラによって判定する手法が知られている（例えば、特許文献３参照）。
【０００４】
一方、演算処理を並列に実行する複数の演算器を含むデータ処理装置では、プログラムの実行によりデータのアクセスパターンが予め解析され、解析結果に基づいて、複数の演算器で処理するデータが特定される。複数の演算器にキャッシュメモリがそれぞれ接続される場合、特定されたデータは、データを処理する演算器に対応するキャッシュメモリに格納される（例えば、特許文献４参照）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００４−２１４２６号公報
【特許文献２】特表２００６−５０５０５５号公報
【特許文献３】特表２００５−５３５０５５号公報
【特許文献４】特開２０１１−８４８５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ところで、特定のアプリケーション用のデータ処理を実行するデータ処理部をＦＰＧＡに搭載するドメイン指向型の情報処理装置では、ＦＰＧＡに搭載するデータ処理部によるメモリアクセスのパターンは、アプリケーション毎に相違する。このため、汎用のキャッシュメモリを使用する場合、キャッシュヒット率等のキャッシュ効率が低下する場合がある。例えば、キャッシュメモリに保持されたデータは、ＬＲＵ（Least Recently Used）方式にしたがって入れ替えられる。しかしながら、ドメイン指向型の情報処理装置が実行する各種アプリケーションは、メモリアクセスの特徴がそれぞれ異なるため、ＬＲＵ方式が全てのアプリケーションに適するとは限らない。しかしながら、ドメイン指向型の情報処理装置において、アプリケーション毎にキャッシュ効率を最適化する手法は提案されていない。
【０００７】
１つの側面では、本発明は、プログラマブル部にプログラムされるデータ処理部によるメモリアクセスの特徴に応じて、キャッシュ効率を最適化することを目的とする。
【課題を解決するための手段】
【０００８】
一つの実施態様では、情報処理装置は、データを記憶する記憶部と、記憶部が記憶するデータを処理するデータ処理部と、データ処理部で使用するデータが格納されるキャッシュメモリ部と、データ処理部が記憶部から読み出すデータをキャッシュメモリ部に格納するかをキャッシュ制御情報に基づいて決定するキャッシュ制御部と、データ処理部が発行するメモリアクセス要求に基づいてキャッシュ制御情報を生成するキャッシュ制御切替部とがプログラムされるプログラマブル部と、プログラマブル部にプログラムされるデータ処理部が発行するメモリアクセス要求に含まれるアクセスアドレスのパターンを分析する分析部と、分析部が分析したアクセスアドレスのパターンに基づいて、プログラマブル部にプログラムするキャッシュ制御切替部の論理を決定する決定部と、データ処理部、キャッシュメモリ部およびキャッシュ制御部をプログラマブル部にプログラムするとともに、決定部が決定したキャッシュ制御切替部をプログラマブル部にプログラムする構成制御部とを備える。
【発明の効果】
【０００９】
１つの側面では、本発明は、プログラマブル部にプログラムされるデータ処理部によるメモリアクセスの特徴に応じて、キャッシュ効率を最適化することができる。
【図面の簡単な説明】
【００１０】
【図１】情報処理装置、情報処理装置の制御方法および情報処理装置の制御プログラムの一実施形態を示す図である。
【図２】図１に示す情報処理装置の動作フローの一例を示す図である。
【図３】図１に示す情報処理装置の動作の一例を示す図である。
【図４】情報処理装置、情報処理装置の制御方法および情報処理装置の制御プログラムの別の実施形態を示す図である。
【図５】図４に示すプログラマブル部のチップ構成の一例を示す図である。
【図６】図４に示すプログラマブル部にプログラムされるデータ処理部の一例を示す図である。
【図７】図６に示す第２プログラムを実行する環境を構築する処理の一例を示す図である。
【図８】図７に示すステップＳ２４で生成されるキャッシュ制御切替部を含むキャッシュ回路の動作の一例を示す図である。
【図９】図７に示すステップＳ２２で使用する特徴抽出テーブルの一例を示す図である。
【図１０】図７に示すステップＳ２２の処理の一例を示す図である。
【図１１】情報処理装置の別の実施形態における第２プログラムを実行する環境を構築する処理の一例を示す図である。
【図１２】図１１に示すステップＳ２４で生成されたキャッシュ制御切替部を含むキャッシュ回路の動作の一例を示す図である。
【図１３】情報処理装置の別の実施形態における第２プログラムを実行する環境を構築する処理の一例を示す図である。
【図１４】情報処理装置の別の実施形態における第２プログラムを実行する環境を構築する処理の一例を示す図である。
【図１５】情報処理装置の別の実施形態における第２プログラムを実行する環境を構築する処理の一例を示す図である。
【発明を実施するための形態】
【００１１】
以下、図面を用いて実施形態を説明する。
【００１２】
図１は、情報処理装置、情報処理装置の制御方法および情報処理装置の制御プログラムの一実施形態を示す。図１に示す情報処理装置１００は、例えば、ドメイン指向サーバであり、ＦＰＧＡ等のプログラマブル部１、メモリモジュール等の記憶部２およびＣＰＵ（Central Processing Unit）等の演算処理装置３を有する。情報処理装置１００は、図１に示す要素以外に、ＨＤＤ（Hard Disk Drive）および通信インタフェース等を有してもよい。
【００１３】
プログラマブル部１には、例えば、特定のアプリケーションで使用するデータを処理するデータ処理部１ａおよびキャッシュ回路１ｂ等の回路がプログラムされる。キャッシュ回路１ｂは、キャッシュ制御切替部１ｃ、キャッシュ制御部１ｄおよびキャッシュメモリ部１ｅを有する。キャッシュメモリ部１ｅには、データ処理部１ａで使用するデータが格納される。キャッシュ制御部１ｄは、データ処理部１ａが発行するメモリアクセス要求に基づいて、記憶部２にアクセスする制御を実行する。また、キャッシュ制御部１ｄは、データ処理部１ａが記憶部２から読み出すデータをキャッシュメモリ部１ｅに格納するか否かをキャッシュ制御情報ＣＩＮＦに基づいて決定する。キャッシュ制御切替部１ｃは、データ処理部１ａが発行するメモリアクセス要求（リードアクセス要求またはライトアクセス要求）に基づいてキャッシュ制御情報ＣＩＮＦを生成する。
【００１４】
例えば、データ処理部１ａが記憶部２から読み出すデータを、キャッシュメモリ部１ｅに保持させる場合、キャッシュ制御切替部１ｃは、リードアクセス要求に基づいて”Ｓ”（Ｓｈａｒｅｄ）を示すキャッシュ制御情報ＣＩＮＦを生成する。データ処理部１ａが記憶部２から読み出すデータを、キャッシュメモリ部１ｅに保持させない場合、キャッシュ制御切替部１ｃは、リードアクセス要求に基づいて”Ｉ”（Ｉｎｖａｌｉｄ）を示すキャッシュ制御情報ＣＩＮＦを生成する。
【００１５】
キャッシュ制御部１ｄは、リードアクセス要求に対応して受けるキャッシュ制御情報ＣＩＮＦが”Ｓ”の場合、記憶部２にリードアクセス要求を出力する。そして、キャッシュ制御部１ｄは、記憶部２から読み出されるデータを、キャッシュメモリ部１ｅに格納するとともに、データ処理部１ａに出力する。なお、記憶部２からの読み出し対象のデータが、キャッシュメモリ部１ｅに既に保持されている場合、キャッシュ制御部１ｄは、記憶部２にリードアクセス要求を出力することなく、キャッシュメモリ部１ｅに保持されたデータをデータ処理部１ａに出力する。キャッシュ制御部１ｄは、リードアクセス要求に対応して受けるキャッシュ制御情報ＣＩＮＦが”Ｉ”の場合、記憶部２にリードアクセス要求を出力する。そして、キャッシュ制御部１ｄは、記憶部２から読み出されるデータを、キャッシュメモリ部１ｅに格納することなく、データ処理部１ａに出力する。
【００１６】
なお、キャッシュ制御部１ｄは、データ処理部１ａが記憶部２にデータを書き込むライトアクセス要求を発行する場合に、キャッシュ制御情報ＣＩＮＦを生成してもよい。例えば、データ処理部１ａから出力される書き込みデータをキャッシュメモリ部１ｅに保持する場合、キャッシュ制御切替部１ｃは、ライトアクセス要求に基づいて”Ｍ”（Ｍｏｄｉｆｉｅｄ）を示すキャッシュ制御情報ＣＩＮＦを生成する。データ処理部１ａが記憶部２に書き込むデータを、キャッシュメモリ部１ｅに保持させない場合、キャッシュ制御切替部１ｃは、ライトアクセス要求に基づいて”Ｉ”を示すキャッシュ制御情報ＣＩＮＦを生成する。
【００１７】
キャッシュ制御部１ｄは、ライトアクセス要求に対応して受けるキャッシュ制御情報ＣＩＮＦが”Ｍ”の場合、データ処理部１ａから出力されるデータを、キャッシュメモリ部１ｅに格納し、記憶部２に書き込まない。キャッシュ制御部１ｄは、ライトアクセス要求に対応して受けるキャッシュ制御情報ＣＩＮＦが”Ｉ”の場合、データ処理部１ａから出力されるデータを、キャッシュメモリ部１ｅに格納することなく、記憶部２に書き込む。データ処理部１ａが発行するライトアクセス要求に対応して生成される”Ｍ”または”Ｉ”を示すキャッシュ制御情報ＣＩＮＦは、第１情報の一例である。
【００１８】
記憶部２は、ＳＤＲＡＭ（Synchronous Dynamic Random Access Memory）、ＳＲＡＭ、またはフラッシュメモリ等の半導体メモリを含む。記憶部２は、データ領域２ａ、プログラム領域２ｂおよび構成情報領域２ｃを有する。データ領域２ａは、データ処理部１ａで処理するデータおよび演算処理装置３で使用するデータ等を保持する。プログラム領域２ｂは、第１プログラム２ｄ、第２プログラム２ｅおよび制御プログラム２ｆ等を保持する。第１プログラム２ｄは、データ処理部１ａを使用せずに所定のデータ処理を実行する場合に使用される。例えば、第１プログラム２ｄは、データ処理部１ａに実行させる処理と等価な処理を含むソースプログラムである。
【００１９】
第２プログラム２ｅは、データ処理部１ａを使用して所定のデータ処理を実行する場合に使用される。例えば、第２プログラム２ｅは、第１プログラム２ｄからデータ処理部１ａが実行する処理と等価な処理を削除し、データ処理部１ａを呼び出す処理を追加することで生成される。このため、第１プログラム２ｄが実行するデータ処理と、第２プログラム２ｅの指示によりデータ処理部１ａが実行するデータ処理は、互いに等価である。第１プログラム２ｄは、処理プログラムの一例である。第１プログラム２ｄおよび第２プログラム２ｅによる動作の例は、図３に示される。
【００２０】
制御プログラム２ｆは、演算処理部３ａにより実行されることで、分析部３ｂ、決定部３ｃおよび構成制御部３ｄの機能を実現する。なお、制御プログラム２ｆは、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）、ＤＶＤ（Digital Versatile Disc）、ＵＳＢ（Universal Serial Bus）メモリ等のコンピュータにより読み取り可能な記録媒体４に格納されてもよい。この場合、記録媒体４に格納された制御プログラム２ｆは、情報処理装置１００に設けられる図示しない入出力インタフェースを介して記録媒体４からプログラム領域２ｂに転送される。なお、制御プログラムは、記録媒体４から図示しないＨＤＤに転送された後、ＨＤＤからプログラム領域２ｂに転送されてもよい。
【００２１】
構成情報領域２ｃは、プログラマブル部１にプログラムされる様々な回路の構成情報を保持する。構成情報は、予め生成されてもよく、情報処理装置１００に要求される処理性能に合わせて、演算処理装置３により生成されてもよい。なお、構成情報は、情報処理装置１００の記憶部２以外の記憶領域に記憶されてもよく、情報処理装置１００の外部の記憶領域に記憶されてもよい。
【００２２】
演算処理装置３は、ＣＰＵコア等の演算処理部３ａと、制御プログラム２ｆの実行により実現される分析部３ｂ、決定部３ｃおよび構成制御部３ｄとを有する。なお、分析部３ｂ、決定部３ｃおよび構成制御部３ｄの少なくともいずれかは、ハードウェア（回路）として、情報処理装置１００に搭載されてもよい。この場合、分析部３ｂ、決定部３ｃおよび構成制御部３ｄの少なくともいずれかは、プログラマブル部１を使用して実現されてもよい。
【００２３】
演算処理部３ａは、第１プログラム２ｄ、第２プログラム２ｅおよび制御プログラム２ｆ等のプログラムを実行することで、演算処理を実行し、情報処理装置１００の機能を実現する。
【００２４】
分析部３ｂは、演算処理部３ａによる第１プログラム２ｄの実行に基づいて、データ処理部１ａを動作させることなく、データ処理部１ａが発行するメモリアクセス要求を間接的に検出し、メモリアクセス要求に含まれるアクセスアドレスのパターンを分析する。
【００２５】
決定部３ｃは、分析部３ｂが分析したアクセスアドレスのパターンに基づいて、データ処理部１ａによるメモリアクセスに最適なキャッシュ制御切替部１ｃの構成情報を生成することで、プログラマブル部１にプログラムするキャッシュ制御切替部１ｃを決定する。決定部３ｃにより生成されるキャッシュ制御切替部１ｃの構成情報は、構成情報領域２ｃに格納される。なお、決定部３ｃは、構成情報領域２ｃに既に格納済みの複数のキャッシュ制御切替部１ｃの構成情報の中から、プログラマブル部１にプログラムする構成情報を選択することで、プログラマブル部１にプログラムするキャッシュ制御切替部１ｃを決定してもよい。
【００２６】
構成制御部３ｄは、決定部３ｃが生成したキャッシュ制御切替部１ｃの構成情報を、構成情報領域２ｃから読み出してプログラマブル部１にプログラムする制御を実行する。
【００２７】
図２は、図１に示す情報処理装置１００の動作フローの一例を示す。図２に示すフローは、演算処理部３ａで実行するデータ処理の一部をデータ処理部１ａに実行させる指示を、情報処理装置１００を管理する管理者または情報処理装置１００を使用するユーザから受信したことに基づいて開始される。
【００２８】
まず、ステップＳ１において、情報処理装置１００は、データ処理部１ａを使用せずに所定のデータ処理を実行する第１プログラム２ｄの実行を開始する。次に、ステップＳ２において、情報処理装置１００の分析部３ｂは、第１プログラム２ｄの実行に基づいて、データ処理部１ａが発行するメモリアクセス要求を間接的に検出し、メモリアクセス要求に含まれるアクセスアドレスのパターンを分析する。第１プログラムを使用することで、データ処理部１ａおよびキャッシュ回路１ｂをプログラマブル部１にプログラムする前に、アクセスアドレスのパターンを分析することができる。
【００２９】
次に、ステップＳ３において、情報処理装置１００は、分析部３ｂによるアクセスアドレスのパターンの分析が完了した場合、処理をステップＳ４に移行し、アクセスアドレスのパターンの分析が完了していない場合、処理をステップＳ２に移行する。例えば、分析部３ｂは、データ処理部１ａが発行するメモリアクセス要求に含まれるアクセスアドレスのパターンの特徴が判明した場合、アクセスアドレスのパターンの分析を完了する。
【００３０】
ステップＳ４において、情報処理装置１００の決定部３ｃは、分析部３ｂが分析したアクセスアドレスのパターンに基づいてキャッシュ制御切替部１ｃの構成情報を生成することで、プログラマブル部１にプログラムするキャッシュ制御切替部１ｃを決定する。
【００３１】
次に、ステップＳ５において、情報処理装置１００の構成制御部３ｄは、決定部３ｃが決定したキャッシュ制御切替部１ｃを、データ処理部１ａ、キャッシュ制御部１ｄおよびキャッシュメモリ部１ｅとともにプログラマブル部１にプログラムする。ステップＳ２からステップＳ５までの処理は、情報処理装置１００の制御方法の一例および情報処理装置１００の制御プログラムの一例を示す。
【００３２】
次に、ステップＳ６において、情報処理装置１００は、第１プログラム２ｄの実行を停止し、実行を停止した個所に対応する個所から第２プログラム２ｅの実行を開始する。これにより、データ処理を重複または欠落させることなく、第１プログラム２ｄから第２プログラム２ｅに切り替えることができる。
【００３３】
図３は、図１に示す情報処理装置１００の動作の一例を示す。すなわち、図２は、情報処理装置１００の制御方法の一例を示す。図３において、白抜きの矩形は、演算処理部３ａで実行される処理を示す。斜線の矩形は、データ処理部１ａで実行されるデータ処理と等価なデータ処理、またはデータ処理部１ａで実行されるデータ処理を示す。網掛けの矩形は、キャッシュ制御切替部１ｃで実行される処理を示す。
【００３４】
まず、情報処理装置１００は、データ処理部１ａを使用せずに所定のデータ処理を実行する第１プログラム２ｄの実行を開始する（図３（ａ））。第１プログラム２ｄは、データ処理部１ａが実行するデータ処理と等価なデータ処理を実行する（図３（ｂ））。換言すれば、第１プログラム２ｄは、データ処理部１ａがデータ処理で使用するデータと同じデータを用いてデータ処理を実行する。データ処理部１ａが実行するデータ処理は、第１データ処理の一例である。第１プログラム２ｄが実行するデータ処理は、第２データ処理の一例である。なお、図３の左端の括弧内は、第１プログラム２ｄによりデータ処理を継続した場合の動作の例を示す。
【００３５】
分析部３ｂは、等価なデータ処理によるデータ領域２ａのアクセス（すなわち、メモリアクセス要求）をモニタし、アクセスアドレスのパターンを分析する（図３（ｃ））。すなわち、分析部３ｂは、第１プログラム２ｄによりデータ処理の一部を実行させた場合の記憶部２へのアクセスに基づいてアクセスアドレスのパターンを分析する。ここで、データ処理部１ａがデータ処理で使用するデータと同じデータを用いて、第１プログラム２ｄがデータ処理を実行するため、分析部３ｂは、データ処理部１ａによるメモリアクセスの特徴を分析することができる。
【００３６】
決定部３ｃは、分析部３ｂが分析したアクセスアドレスのパターンの特徴に基づいて、キャッシュ制御切替部１ｃの構成情報を生成することを決定し、生成したキャッシュ制御切替部１ｃをプログラマブル部１にプログラムすることを決定する（図３（ｄ））。構成制御部３ｄは、決定部３ｃが生成したキャッシュ制御切替部１ｃを、データ処理部１ａ、キャッシュ制御部１ｄおよびキャッシュメモリ部１ｅとともにプログラマブル部１にプログラムする（図３（ｅ））。なお、データ処理部１ａ、キャッシュ制御部１ｄおよびキャッシュメモリ部１ｅは、キャッシュ制御切替部１ｃが生成される前（すなわち、図３の動作の開始前）にプログラマブル部１にプログラムされてもよい。
【００３７】
キャッシュ制御切替部１ｃがプログラマブル部１にプログラムされた後、情報処理装置１００は、第１プログラム２ｄの実行を停止し、実行を停止した個所に対応する個所から第２プログラム２ｅの実行を開始する（図３（ｆ））。そして、第２プログラム２ｅは、データ処理部１ａを呼び出し、第１プログラム２ｄが実行していたデータ処理のうち、未実行の処理を、データ処理部１ａに実行させる（図３（ｇ））。
【００３８】
データ処理部１ａが動作中、データ処理部１ａが発行するメモリアクセス要求に基づいて、キャッシュ制御切替部１ｃ、キャッシュ制御部１ｄおよびキャッシュメモリ部１ｅが動作する（図３（ｈ））。キャッシュ制御切替部１ｃは、メモリアクセス要求に基づいて、キャッシュ制御情報ＣＩＮＦを生成し、キャッシュ制御部１ｄは、キャッシュ制御情報ＣＩＮＦに基づいて動作する。ここで、キャッシュ制御情報ＣＩＮＦは、データ処理部１ａのメモリアクセス特性に合わせて生成されるため、他のキャッシュ制御切替部を使用する場合に比べて、キャッシュ回路１ｂのキャッシュヒット率を向上することができる。また、キャッシュヒット率の向上により、新たなデータを格納する記憶領域を確保するためにキャッシュメモリ部１ｅからデータをデータ領域２ａに書き戻す追い出し処理の頻度は低下する。この結果、データ領域２ａへの無駄なメモリアクセスを低減することでキャッシュ効率を向上することができ、情報処理装置１００の処理性能を向上することができる。
【００３９】
なお、データ処理部１ａによるデータ処理は、プログラマブル部１にプログラムされたハードウェアにより実行される。このため、データ処理部１ａによるデータ処理の効率は、第１プログラム２ｄ（ソフトウェア）によるデータ処理の効率に比べて高い。したがって、データ処理部１ａによるデータ処理は、データ処理部１ａで実行されるデータ処理と等価なデータ処理を第１プログラム２ｄにより実行する場合に比べて、早く完了する（図３（ｉ））。
【００４０】
データ処理部１ａによるデータ処理が完了した後、第２プログラム２ｅは、ソフトウェアによる処理を実行する（図３（ｊ））。この後、第２プログラム２ｅは、データ処理部１ａにデータ処理を実行させるため、データ処理部１ａを呼び出し、データ処理部１ａは、データ処理を実行する（図３（ｋ））。上述と同様に、データ処理部１ａによるデータ処理は、第１プログラム２ｄによりデータ処理に比べて、早く完了する（図３（ｌ））。そして、データ処理部１ａによるデータ処理が完了した後、第２プログラム２ｅは、ソフトウェアによる処理を実行し、全体の処理が完了する（図３（ｍ））。図３に示すように、データ処理部１ａによるデータ処理を含む第２プログラム２ｅにより実行される全体の処理は、第１プログラム２ｄにより実行される全体の処理に比べて早く完了する。
【００４１】
以上、図１から図３に示す実施形態では、情報処理装置１００は、データ処理部１ａが出力するメモリアクセス要求に含まれるアクセスアドレスのパターンを分析し、分析結果に基づいたキャッシュ制御情報ＣＩＮＦを出力するキャッシュ制御切替部１ｃを生成する。例えば、情報処理装置１００が実行する第１プログラム２ｄは、データ処理部１ａがデータ処理で使用するデータと同じデータを用いてデータ処理を実行する。このため、分析部３ｂは、データ処理部１ａを動作させることなく、データ処理部１ａによるメモリアクセスの特徴を分析することができる。これにより、プログラマブル部１に搭載される前のデータ処理部１ａのメモリアクセスの特徴に合わせて、キャッシュ回路１ｂのキャッシュヒット率等のキャッシュ効率を最適化することができる。この結果、データ領域２ａへの無駄なメモリアクセスを低減してキャッシュ効率を向上することができ、情報処理装置１００の処理性能を向上することができる。
【００４２】
情報処理装置１００は、データ処理部１ａに実行させる処理を含むソースプログラムである第１プログラムを使用することで、データ処理部１ａおよびキャッシュ回路１ｂをプログラマブル部１に搭載する前に、アクセスアドレスのパターンを分析することができる。アクセスアドレスのパターンの分析が完了した場合に、第１プログラムによる処理の続きを第２プログラムに実行させることで、同じ処理を第１プログラムと第２プログラムとで重複して実行する無駄を省くことができる。アクセスアドレスのパターンの分析結果に基づいてキャッシュ制御切替部１ｃの論理を生成することで、複数種のキャッシュ制御切替部１ｃの論理を予め準備することなく、プログラマブル部１にキャッシュ制御切替部１ｃをプログラムすることができる。
【００４３】
図４は、情報処理装置、情報処理装置の制御方法および情報処理装置の制御プログラムの別の実施形態を示す。図１から図３に示す実施形態で説明した要素と同一または同様の要素については、同一の符号を付し、これ等については、詳細な説明は省略する。図４に示す情報処理装置１００Ａは、例えば、ドメイン指向サーバである。情報処理装置１００Ａは、ＦＰＧＡ等のプログラマブル部１０、メインメモリ２０、ＣＰＵ等の演算処理装置３０、入出力インタフェース４０、ＨＤＤ５０および通信インタフェース６０を有する。
【００４４】
プログラマブル部１０には、特定のアプリケーションで使用するデータを処理するデータ処理部１０ａおよびキャッシュ回路１０ｂ等の回路がプログラムされる。データ処理部１０ａは、ＣＰＵコア３０ａが実行するアプリケーションプログラム（第２プログラム）の制御に基づいて動作し、ＣＰＵコア３０ａの代わりにデータ処理を実行する。データ処理部１０ａは、データを処理するデータ処理部の一例である。データ処理部１０ａが実行するデータ処理は、第１データ処理の一例である。データ処理部１０ａによるメインメモリ２０へのアクセス（データのリードまたはデータのライト）は、キャッシュ回路１０ｂおよびＬＬＣ（Last Level Cache）３０ｂを介して実行される。
【００４５】
キャッシュ回路１０ｂは、図１に示すキャッシュ回路１ｂと同様に、キャッシュ制御切替部１０ｃ、キャッシュ制御部１０ｄおよびキャッシュメモリ部１０ｅを有する。キャッシュ制御切替部１０ｃは、データ処理部１０ａが発行するメモリアクセス要求（リードアクセス要求またはライトアクセス要求）に基づいて、キャッシュ制御部１０ｄに出力するキャッシュヒントおよびバースト長を決定する。キャッシュヒントは、データ処理部１０ａがリードアクセス要求を発行した場合、リードアクセス要求に基づいて、ＬＬＣ３０ｂから受信したデータをキャッシュメモリ部１０ｅに保持するか否かの情報を含む。また、キャッシュヒントは、データ処理部１０ａがライトデータとともにライトアクセス要求を発行した場合、ライトデータをキャッシュメモリ部１０ｅに書き込むか、ＬＬＣ３０ｂに出力するかを示す情報を含む。
【００４６】
バースト長は、データ処理部１０ａがリードアクセス要求を発行した場合、ＬＬＣ３０ｂから受信するデータの長さを示す情報を含む。キャッシュヒントおよびバースト長は、キャッシュ制御切替部１０ｃが出力するキャッシュ制御情報の一例である。バースト長は、キャッシュ制御情報のうちの第２情報の一例である。
【００４７】
例えば、キャッシュ回路１０ｂは、ＭＥＳＩ（Modified, Exclusive, Shared, Invalid）プロトコルを用いて、データの一貫性を維持する制御を実行する。ＭＥＳＩプロトコルにおいて、”Ｍｏｄｉｆｉｅｄ”は、キャッシュメモリ部１０ｅに保持されたデータが更新され（書き替えられ）、ＬＬＣ３０ｂまたはメインメモリ２０が保持するデータと異なる状態を示す。”Ｅｘｃｌｕｓｉｖｅ”は、アクセス対象のデータが、キャッシュメモリ部１０ｅのみに保持され、データが更新されていない状態を示す。”Ｓｈａｒｅｄ”は、アクセス対象のデータが例えばＬＬＣ３０ｂとキャッシュメモリ部１０ｅとに保持され、データが更新されていない状態を示す。”Ｉｎｖａｌｉｄ”は、キャッシュメモリ部１０ｅに保持されたデータが無効であることを示す。
【００４８】
キャッシュ制御部１０ｄは、データ処理部１０ａからリードアクセス要求を受信した場合、アクセスの対象データがキャッシュメモリ部１０ｅに保持されているか否かを判定する。キャッシュ制御部１０ｄは、対象データがキャッシュメモリ部１０ｅに保持されている場合（キャッシュヒット）、キャッシュメモリ部１０ｅからデータを読み出し、読み出したデータをデータ処理部１０ａに出力する。
【００４９】
キャッシュ制御部１０ｄは、対象データがキャッシュメモリ部１０ｅに保持されていない場合（キャッシュミス）、ＬＬＣ３０ｂにリードアクセス要求を発行し、ＬＬＣ３０ｂから出力されるデータを受信する。この後、キャッシュ制御部１０ｄは、リードアクセス要求に対応してキャッシュ制御切替部１０ｃから受信するキャッシュヒントに応じて、以下のように動作する。
【００５０】
キャッシュヒントが”Ｓ”の場合、キャッシュ制御部１０ｄは、ＬＬＣ３０ｂから受信したデータをデータ処理部１０ａに出力するとともにキャッシュメモリ部１０ｅに格納する。キャッシュメモリ部１０ｅにデータを格納する空き領域がない場合、キャッシュ制御部１０ｄは、キャッシュメモリ部１０ｅが保持するデータのいずれかをＬＬＣ３０ｂに書き戻す追い出し処理を実行する。追い出し処理は、データをＬＬＣ３０ｂに書き戻すためのライトアクセス要求を含む。
【００５１】
キャッシュヒントが”Ｉ”の場合、キャッシュ制御部１０ｄは、ＬＬＣ３０ｂから受信したデータをキャッシュメモリ部１０ｅに格納せずにデータ処理部１０ａに出力する。なお、キャッシュミスの発生時、キャッシュ制御部１０ｄは、リードアクセス要求に対応してキャッシュ制御切替部１０ｃから出力されるバースト長に対応する長さのデータをＬＬＣ３０ｂから読み出すリードアクセス要求をＬＬＣ３０ｂに発行する。
【００５２】
一方、キャッシュ制御部１０ｄは、データ処理部１０ａからライトデータとともにライトアクセス要求を受信した場合、アクセスの対象データがキャッシュメモリ部１０ｅに保持されているか否かを判定する。キャッシュ制御部１０ｄは、対象データがキャッシュメモリ部１０ｅに保持されている場合（キャッシュヒット）、ライトアクセス要求に対応してキャッシュ制御切替部１０ｃから受信するキャッシュヒントに応じて、以下のように動作する。
【００５３】
キャッシュヒントが”Ｍ”の場合、キャッシュ制御部１０ｄは、キャッシュメモリ部１０ｅが保持するキャッシュヒットの対象データをライトデータで上書きし、ＬＬＣ３０ｂにライトアクセス要求を発行しない。キャッシュヒントが”Ｉ”の場合、キャッシュ制御部１０ｄは、キャッシュメモリ部１０ｅが保持するキャッシュヒットの対象データを削除し、ライトデータをＬＬＣ３０ｂに書き込むライトアクセス要求をＬＬＣ３０ｂに発行する。キャッシュ制御部１０ｄがライトアクセス要求に基づいて出力する”Ｍ”または”Ｉ”のキャッシュヒントは、第１情報の一例である。
【００５４】
キャッシュ制御部１０ｄは、対象データがキャッシュメモリ部１０ｅに保持されていない場合（キャッシュミス）、ライトアクセス要求に対応してキャッシュ制御切替部１０ｃから受信するキャッシュヒントに応じて、以下のように動作する。
【００５５】
キャッシュヒントが”Ｍ”の場合、キャッシュ制御部１０ｄは、ライトデータに対応するデータの読み出し要求をＬＬＣ３０ｂに発行し、ＬＬＣ３０ｂから受信するデータをライトデータに置き換え、キャッシュメモリ部１０ｅに格納する。ここで、ライトデータのビット幅がＬＬＣ３０ｂから受信するデータのビット幅より小さい場合、ＬＬＣ３０ｂから受信するデータの一部がライトデータで置き換えられる。キャッシュヒントが”Ｉ”の場合、キャッシュ制御部１０ｄは、ライトデータをＬＬＣ３０ｂに書き込むライトアクセス要求をＬＬＣ３０ｂに発行する。
【００５６】
キャッシュメモリ部１０ｅは、データの入出力の単位である複数のエントリ（キャッシュライン）を有し、ＬＬＣ３０ｂに対するデータの入出力は、キャッシュライン単位で実行される。また、バースト長が”１”の場合、１つのキャッシュラインに対応するデータがアクセスされる。バースト長が”２”の場合、２つのキャッシュラインに対応するデータがアクセスされる。バースト長が”４”の場合、４つのキャッシュラインに対応するデータがアクセスされる。
【００５７】
メインメモリ２０は、例えば、複数のＳＤＲＡＭが搭載されたメモリモジュールであり、データ領域２０ａ、プログラム領域２０ｂおよび構成情報領域２０ｃを有する。メインメモリ２０は、記憶部の一例である。データ領域２０ａは、データ処理部１０ａで処理するデータおよび演算処理装置３０で使用するデータ等を保持する。
【００５８】
プログラム領域２０ｂは、ＯＳ、管理プログラムおよびアプリケーションプログラム等の各種プログラム２０ｄと、制御プログラム２０ｅ等を保持する。例えば、アプリケーションプログラムのいずれかは、データ処理部１０ａを使用せずに所定のデータ処理を実行する第１プログラムである。第１プログラムは、データ処理部１０ａが実行するデータ処理と等価なデータ処理を実行する機能を含む処理プログラムの一例である。第１プログラムが実行するデータ処理は、第２データ処理の一例である。
【００５９】
アプリケーションプログラムの他のいずれかは、データ処理部１０ａを使用して所定のデータ処理を実行する第２プログラムである。例えば、プログラム領域２０ｂに格納される各種プログラム２０ｄと制御プログラム２０ｅとは、ＣＤ−ＲＯＭ、ＤＶＤ、ＵＳＢメモリ等のコンピュータにより読み取り可能な記録媒体７０またはネットワークＮＷを介してＨＤＤ５０に格納される。この後、各種プログラム２０ｄと制御プログラム２０ｅとは、ＨＤＤ５０からメインメモリ２０に転送される。
【００６０】
構成情報領域２０ｃは、プログラマブル部１０にプログラムされる様々な回路の構成情報を保持する。構成情報がプログラマブル部１０に書き込まれることで、プログラマブル部１０は、データ処理部１０ａおよびキャッシュ回路１０ｂ等の機能を実現する。構成情報は、予め生成されてもよく、情報処理装置１００Ａに要求される処理性能に合わせて、演算処理装置３０が実行する論理合成用のプログラム等により生成されてもよい。なお、構成情報は、メインメモリ２０以外の記憶領域に記憶されてもよく、情報処理装置１００Ａの外部の記憶領域に記憶されてもよい。
【００６１】
演算処理装置３０は、各種プログラムを並列に実行可能な複数のＣＰＵコア３０ａ、ＬＬＣ３０ｂおよびＭＭＵ（Memory Management Unit）３０ｃを有する。プログラマブル部１０は、バスＢＵＳ１を介して演算処理装置３０のＬＬＣ３０ｂに接続され、メインメモリ２０は、バスＢＵＳ２を介して演算処理装置３０のＭＭＵ３０ｃに接続される。
【００６２】
演算処理装置３０は、ＣＰＵコア３０ａによりＯＳ（Operating System）および管理プログラムを実行することで情報処理装置１００Ａの全体の動作を制御する。また、演算処理装置３０は、ＣＰＵコア３０ａによりアプリケーションプログラムを実行することで、ドメイン指向サーバとして機能する。
【００６３】
さらに、演算処理装置３０は、ＣＰＵコア３０ａが制御プログラム２０ｅを実行することで、分析部３０ｄ、決定部３０ｅおよび構成制御部３０ｆとして機能する。なお、分析部３０ｄ、決定部３０ｅおよび構成制御部３０ｆは、ハードウェア（回路）として、情報処理装置１００Ａに搭載されてもよい。
【００６４】
ＬＬＣ３０ｂは、キャッシュメモリの一種であり、ＣＰＵコア３０ａから最も離れた（すなわち、メインメモリ２０に最も近い）キャッシュメモリである。ＭＭＵ３０ｃは、メインメモリ２０に対するメモリアクセスを管理する。例えば、ＭＭＵ３０ｃは、ＣＰＵコア３０ａが出力する仮想アドレスを、メインメモリ２０に割り当てられた物理アドレスに変換する。
【００６５】
分析部３０ｄ、決定部３０ｅおよび構成制御部３０ｆのそれぞれの機能は、図１から図３で説明した分析部３ｂ、決定部３ｃおよび構成制御部３ｄのそれぞれの機能と同様である。分析部３０ｄ、決定部３０ｅおよび構成制御部３０ｆの動作は、図７から図１０で説明される。
【００６６】
入出力インタフェース４０の１つは、ＤＶＤ等の記録媒体７０が装着される光学ドライブ装置に接続され、あるいは、ＵＳＢメモリ等が装着されるコネクタを有する。他の入出力インタフェース４０は、図示しないマウスおよびキーボード等の入力装置と、図示しないディスプレイ等の出力装置にそれぞれ接続される。
【００６７】
ＨＤＤ５０は、メインメモリ２０に格納するプログラムおよび構成情報等を記憶する。通信インタフェース６０は、インターネットまたはイントラネット等のネットワークＮＷに接続され、ネットワークＮＷとの間で情報を入出力する。入出力インタフェース４０、ＨＤＤ５０および通信インタフェース６０は、バスＢＵＳ３を介して演算処理装置３０に接続される。
【００６８】
図５は、図４に示すプログラマブル部１０のチップ構成の一例を示す。プログラマブル部１０は、網掛けの矩形で示す複数の入出力端子ＩＯ、白抜きの矩形で示す複数のＡＬＭ（Adaptive Logic Module）、複数のメモリＭ１、複数のメモリＭ２および複数のＤＳＰ（Digital Signal Processor）を有する。ＡＬＭには、プログラマブル部１０に転送される構成情報に基づいて論理がプログラムされる。特に限定されないが、メモリＭ１、Ｍ２の記憶素子と、ＤＳＰの内部回路は、プログラマブル部１０に予め構築されており、構成情報の転送により、接続配線が構築される。
【００６９】
例えば、図４に示すデータ処理部１０ａは、所定数の入出力端子ＩＯ、所定数のＡＬＭ、所定数のメモリＭ１および所定数のＤＳＰを使用してプログラマブル部１０上に構築される。キャッシュメモリ部１０ｅは、所定数のＡＬＭおよび所定数のメモリＭ１、Ｍ２を使用してプログラマブル部１０上に構築される。キャッシュ制御部１０ｄおよびキャッシュ制御切替部１０ｃの各々は、所定数のＡＬＭ、所定数のメモリＭ１および所定数のＤＳＰを使用してプログラマブル部１０上に構築される。
【００７０】
図６は、図４に示すプログラマブル部１０にプログラムされるデータ処理部１０ａの一例を示す。データ処理部１０ａは、ＣＰＵコア３０ａのみでデータ処理が完結する第１プログラムの中から、プログラマブル部１０に実行させるデータ処理の部分を論理合成し、構成情報を生成する。例えば、プログラマブル部１０に実行させるデータ処理は、破線で囲った部分であり、他のデータ処理に比べて時間が掛かるデータ処理であり、かつ、反復性を有するデータ処理である。データ処理部１０ａは、構成情報がプログラマブル部１０にプログラムされることで、プログラマブル部１０に構築される。すなわち、ＣＰＵコア３０ａがプログラムにより実行するデータ処理の一部が、プログラマブル部１０にオフロードされる。
【００７１】
そして、論理合成したデータ処理部１０ａによるデータ処理部分を第１プログラムから除き、データ処理部１０ａの呼び出し処理を追加した第２プログラムが、データ処理部１０ａがプログラマブル部１０にプログラムされた後に実行される。これにより、プログラマブル部１０は、演算処理装置３０のアクセラレータとして動作し、演算処理装置３０とプログラマブル部１０とによりデータ処理が実行される。
【００７２】
図７は、図６に示す第２プログラムを実行する環境を構築する処理の一例を示す。まず、事前準備として、ステップＳ１０において、キャッシュ制御部１０ｄおよびキャッシュメモリ部１０ｅが論理合成され、構成情報が生成される。ステップＳ１２において、第１プログラムの中でプログラマブル部１０に処理させる部分が、データ処理部１０ａとして論理合成され、構成情報が生成される。
【００７３】
ステップＳ１４において、論理合成したデータ処理部１０ａにデータ処理を実行させる第２プログラム（ソースプログラム）が生成される。そして、ソースプログラムをコンパイルすることにより、ＣＰＵコア３０ａで実行可能な第２プログラムのオブジェクトファイルが生成される。ステップＳ１６において、第１プログラム（ソースプログラム）がコンパイルされ、第１プログラムのオブジェクトファイルが生成される。
【００７４】
なお、ステップＳ１２、Ｓ１４が順次実行されることを除き、ステップＳ１０、Ｓ１２、Ｓ１４、Ｓ１６は、図７に示す順序以外で実行されてもよい。また、事前準備は、情報処理装置１００Ａで実行されてもよく、他のツールを使用して実行されてもよい。
【００７５】
事前準備が完了した後、データ処理部１０ａを使用してデータ処理を実行するための環境を情報処理装置１００Ａ上に構築する構築処理が実行される。構築処理は、ＣＰＵコア３０ａで実行するデータ処理の一部をデータ処理部１０ａに実行させる指示を、情報処理装置１００Ａを管理する管理者または情報処理装置１００Ａを使用するユーザから受信したことに基づいて開始される。
まず、ステップＳ２０において、情報処理装置１００Ａは、演算処理装置３０に第１プログラムの実行を開始させる。
【００７６】
次に、ステップＳ２２において、情報処理装置１００Ａの分析部３０ｄは、第１プログラムにおいてデータ処理部１０ａの動作に相当する命令を分析し、メモリアクセス命令の特徴を抽出する。ここで、データ処理部１０ａの動作に相当する命令は、図６に示した第１プログラムのうち、破線で囲った部分に含まれる命令である。
【００７７】
次に、ステップＳ２４において、情報処理装置１００Ａの決定部３０ｅは、ステップＳ２２で抽出した特徴に基づいて、キャッシュ制御切替部１０ｃの論理を生成することで、プログラマブル部１０にプログラムするキャッシュ制御切替部１０ｃを決定する。
【００７８】
次に、ステップＳ２６において、情報処理装置１００Ａの構成制御部３０ｆは、キャッシュ回路１０ｂの構成情報とデータ処理部１０ａの構成情報とを、プログラマブル部１０にプログラムする。キャッシュ回路１０ｂは、キャッシュ制御切替部１０ｃ、キャッシュ制御部１０ｄおよびキャッシュメモリ部１０ｅを含む。すなわち、情報処理装置１００Ａは、事前に準備したキャッシュ制御部１０ｄ、キャッシュメモリ部１０ｅおよびデータ処理部１０ａの構成情報と、ステップＳ２４で生成したキャッシュ制御切替部１０ｃの構成情報とを、プログラマブル部１０にプログラムする。そして、データ処理部１０ａを使用してデータ処理を実行するための環境を構築する構築処理が完了する。これにより、第２プログラムの実行が可能になる。
【００７９】
ステップＳ２２からステップＳ２６までの処理は、情報処理装置１００Ａの制御方法の一例および情報処理装置１００Ａの制御プログラムの一例を示し、図３（ａ）から図３（ｅ）に示した処理に対応する。換言すれば、図３の右端のデータ処理部をデータ処理部１０ａに置き換え、各要素の符号を付け替えることで、図３は、情報処理装置１００Ａの動作の例を示す。
【００８０】
例えば、分析部３０ｄは、ＣＰＵコア３０ａが実行する第１プログラムによりデータ処理の一部を実行させた場合のメインメモリ２０へのアクセスに基づいてアクセスアドレスのパターンを分析する。決定部３０ｅは、分析部３０ｄが分析したアクセスアドレスのパターンの特徴に基づいて、キャッシュ制御切替部１０ｃを生成し、生成したキャッシュ制御切替部１ｃをプログラマブル部１０にプログラムすることを決定する。構成制御部３０ｆは、決定部３０ｅが生成したキャッシュ制御切替部１０ｃを、データ処理部１０ａ、キャッシュ制御部１０ｄおよびキャッシュメモリ部１０ｅとともにプログラマブル部１０にプログラムする。
【００８１】
キャッシュ制御切替部１０ｃがプログラマブル部１にプログラムされた後、情報処理装置１００Ａは、第１プログラムの実行を停止し、実行を停止した個所に対応する個所から第２プログラムの実行を開始する。そして、第２プログラムは、データ処理部１０ａを呼び出し、第１プログラムが実行していたデータ処理のうち、未実行の処理を、データ処理部１０ａに実行させる。データ処理部１０ａが動作中、データ処理部１０ａが発行するメモリアクセス要求に基づいて、キャッシュ制御切替部１０ｃ、キャッシュ制御部１０ｄおよびキャッシュメモリ部１０ｅが動作する。キャッシュ制御切替部１０ｃは、メモリアクセス要求に基づいて、キャッシュヒントおよびバースト長を生成し、キャッシュ制御部１０ｄは、キャッシュヒントおよびバースト長に基づいて動作する。
【００８２】
なお、キャッシュ制御部１０ｄ、キャッシュメモリ部１０ｅおよびデータ処理部１０ａの構成情報は、ステップＳ２０の処理を開始する前に、プログラマブル部１０にプログラムされてもよい。この場合、事前準備において、データ処理部１０ａとキャッシュ制御切替部１０ｃとを互いに接続するインタフェース仕様と、キャッシュ制御切替部１０ｃとキャッシュ制御部１０ｄとを互いに接続するインタフェース仕様とが決められる。そして、決定部３０ｅは、事前準備で決められたインタフェース仕様にしたがって、キャッシュ制御切替部１０ｃの論理を生成する。
【００８３】
図８は、図７に示すステップＳ２４で生成されるキャッシュ制御切替部１０ｃを含むキャッシュ回路の動作の一例を示す。左側の欄は、データ処理部１０ａで実行する処理と等価な命令群（ソースプログラム）とその行番号を示す。図８に示す命令群は、図６の第１プログラムの破線の枠内で実行される命令の一例を示す。例えば、命令群は、３つのプロセスＡ、Ｂ、Ｃの処理を含む。
【００８４】
”ＬＤ”はロード命令を示し、”ＳＴ”はストア命令を示し、”ＥＸＥ”が付く命令は演算命令を示し、”ＢＲ”は分岐命令を示す。例えば、１行目の”ＬＤ  Ａ１，Ｄａ１”は、アドレスＡ１のメモリ領域からデータを読み出してレジスタＤａ１に格納することを示す。４行目の”ＳＴ  Ａ３，Ｄａ３”は、レジスタＤａ３に保持されたデータをアドレスＡ３のメモリ領域に格納することを示す。３行目の”ＥＸＥ１  Ｄａ３  （Ｄａ１，Ｄａ２）”は、レジスタＤａ１、Ｄａ２に保持されたデータを演算し、演算結果をレジスタＤａ３に格納することを示す。５行目の”ＢＲ  Ｄａ３  Ｂ  Ｃ”は、レジスタＤａ３に格納された値に応じて６行目または２１行目に分岐することを示す。”Ｂ”、”Ｃ”は、ラベルを示す。
【００８５】
中央の欄は、キャッシュ回路１０ｂの動作の例を示し、キャッシュヒントとバースト長は、メモリアクセス要求（ロード命令ＬＤまたはストア命令ＳＴ）毎にキャッシュ制御切替部１０ｃにより生成される。右側の欄は、キャッシュ制御切替部１０ｃを持たない他のキャッシュ回路の動作の例を示し、キャッシュヒントは”Ｓ”（リードアクセス）と”Ｍ”（ライトアクセス）に固定され、バースト長は”１”に固定される。中央の欄および右側の欄において、”ミス”は、キャッシュミスの発生を示し、”ヒット”は、キャッシュヒットの発生を示し、”追い出しの発生”に示す数字は、データを追い出すキャッシュラインの数を示す。
【００８６】
キャッシュ回路１０ｂの動作において、１行目のロード命令ＬＤに対応してデータ処理部１０ａが実行するリードアクセス（アドレスＡ１）では、キャッシュ制御切替部１０ｃは、キャッシュヒント（＝”Ｉ”）をキャッシュ制御部１０ｄに出力する。データ処理部１０ａが、この後、リードアクセス（アドレスＡ１）を実行しない場合、リードアクセスに基づいてＬＣＣ３０ｂから出力されるデータは、キャッシュメモリ部１０ｅに保持しなくてよい。
【００８７】
この場合、キャッシュヒントを”Ｉ”に設定することで、キャッシュメモリ部１０ｅからキャッシュラインが無駄に追い出されることを抑止することができる。これに対して、他のキャッシュ回路の動作では、１行目のロード命令ＬＤに対応してデータ処理部１０ａが実行するリードアクセス（アドレスＡ１）では、キャッシュヒントが”Ｓ”のため、キャッシュラインの無駄な追い出しが発生する。
【００８８】
２行目のロード命令ＬＤに対応してデータ処理部１０ａが実行するリードアクセス（アドレスＡ２）では、キャッシュ制御切替部１０ｃは、キャッシュヒント（＝”Ｓ”）をキャッシュ制御部１０ｄに出力する。ロード命令ＬＤ（アドレスＡ２）は、２２行目でも実行される。データ処理部１０ａが、同じアドレスのリードアクセスを複数回実行する場合、最初のリードアクセスのキャッシュヒントを”Ｓ”にすることで、２回目以降のリードアクセスをキャッシュヒットさせることができる。
【００８９】
４行目のストア命令ＳＴに対応してデータ処理部１０ａが実行するライトアクセス（アドレスＡ３）では、キャッシュ制御切替部１０ｃは、キャッシュヒント（＝”Ｍ”）とバースト長（＝”１”）をキャッシュ制御部１０ｄに出力する。ストア命令ＳＴ（アドレスＡ３）は、２５行目でも実行される。データ処理部１０ａが、同じアドレスのライトアクセスを複数回実行する場合、ライトアクセスのキャッシュヒントを”Ｍ”にすることで、ＬＬＣ３０ｂに発行するライトアクセス要求の頻度を下げることができる。
【００９０】
７行目のロード命令ＬＤに対応してデータ処理部１０ａが実行するリードアクセス（アドレスＢ１）では、キャッシュ制御切替部１０ｃは、キャッシュヒント（＝”Ｓ”）とバースト長（＝”２”）をキャッシュ制御部１０ｄに出力する。８行目のロード命令ＬＤに対応してデータ処理部１０ａが実行するリードアクセスのアドレスＢ２は、アドレスＢ１に連続する。この場合、バースト長を”２”に設定することで、リードアクセス（アドレスＢ２）をキャッシュヒットさせることができ、ＬＬＣ３０ｂへのアクセス要求の頻度を減らすことができる。
【００９１】
これに対して、他のキャッシュ回路の動作では、７行目のロード命令ＬＤに対応してデータ処理部１０ａが実行するリードアクセス（アドレスＢ１）のバースト長が”１”に設定される。このため、８行目のロード命令ＬＤに対応してデータ処理部１０ａが実行するリードアクセス（アドレスＢ２）でキャッシュミスが発生し、キャッシュ制御部１０ｄは、ＬＬＣ３０ｂに無駄なリードアクセス要求を発行する。
【００９２】
１０行目のストア命令ＳＴに対応してデータ処理部１０ａが実行するライトアクセス（アドレスＢ３）では、キャッシュ制御切替部１０ｃは、キャッシュヒント（＝”Ｉ”）とバースト長（＝”１”）をキャッシュ制御部１０ｄに出力する。データ処理部１０ａが、この後、ライトアクセス（アドレスＢ３）を実行しない場合、ライトアクセスとともにデータ処理部１０ａが出力するライトデータは、キャッシュメモリ部１０ｅに保持しなくてよい。この場合、キャッシュヒントを”Ｉ”に設定し、ライトデータをＬＬＣ３０ｂに直接書き込むことで、キャッシュメモリ部１０ｅからキャッシュラインが無駄に追い出されることを抑止することができる。
【００９３】
これに対して、他のキャッシュ回路の動作では、１０行目のストア命令ＳＴに対応してデータ処理部１０ａが実行するライトアクセス（アドレスＢ３）のキャッシュヒントが”Ｍ”に設定される。このため、その後のアクセスで使用されない無駄なデータがキャッシュメモリ部１０ｅに保持され、キャッシュラインの無駄な追い出しが発生する。
【００９４】
２３行目のロード命令ＬＤに対応してデータ処理部１０ａが実行するリードアクセス（アドレスＣ１）では、１行目と同様に、キャッシュ制御切替部１０ｃは、キャッシュヒント（＝”Ｉ”）をキャッシュ制御部１０ｄに出力する。データ処理部１０ａが、この後、リードアクセス（アドレスＣ１）を実行しない場合、キャッシュヒントを”Ｉ”に設定することで、キャッシュメモリ部１０ｅからキャッシュラインが無駄に追い出されることを抑止することができる。
【００９５】
このように、データ処理部１０ａのアクセスアドレスのパターンの特徴に基づいて生成されたキャッシュ制御切替部１０ｃにより、キャッシュ回路１０ｂは、無駄な追い出し処理および無駄なＬＬＣ３０ｂへのアクセス要求が発生することを抑止することができる。この結果、他のキャッシュ回路に比べて、図４に示すバスＢＵＳ１の使用効率を向上することができ、情報処理装置１００Ａの処理性能を向上することができる。
【００９６】
図９は、図７に示すステップＳ２２で使用する特徴抽出テーブルＴＢＬの一例を示す。特徴抽出テーブルＴＢＬは、分析部３０ｄが抽出したメモリアクセス命令の特徴を記録するために使用される。特徴抽出テーブルＴＢＬは、アクセス種別、アクセスアドレス、キャッシュヒントおよびバースト長を格納する領域を含む複数のエントリを有する。
【００９７】
アクセス種別の領域には、特徴を抽出したメモリアクセス命令がリード命令である場合、リードを示す情報が格納され、特徴を抽出したメモリアクセス命令がライト命令である場合、ライトを示す情報が格納される。アクセスアドレスの領域には、特徴を抽出したメモリアクセス命令に含まれるアドレスが格納される。
【００９８】
キャッシュヒントの領域には、キャッシュ制御部１０ｄが使用するキャッシュヒントが格納される。キャッシュヒントは、”Ｓｈａｒｅｄ”を示す”Ｓ”、”Ｍｏｄｉｆｉｅｄ”を示す”Ｍ”、”Ｉｎｖａｌｉｄ”を示す”Ｉ”、または”Ｅｘｃｌｕｓｉｖｅ”を示す”Ｅ”が格納される。
【００９９】
アクセス種別がリードの場合、キャッシュヒントは、リード命令に相当するリードアクセス要求に基づいて、キャッシュ制御部１０ｄが、ＬＬＣ３０ｂから受信したデータをキャッシュメモリ部１０ｅに保持するか否かを示す。アクセス種別がライトの場合、キャッシュヒントは、ライト命令に相当するライトアクセス要求に基づいて、キャッシュ制御部１０ｄが、ライトアクセス要求に含まれるライトデータをキャッシュメモリ部１０ｅに格納するか、ＬＬＣ３０ｂに出力するかを示す。
【０１００】
バースト長の領域には、メモリアクセス命令によりキャッシュメモリ部１０ｅに入力されるデータの数を示すバースト長が格納される。なお、バースト長は、キャッシュメモリ部１０ｅのアクセスの単位であるキャッシュラインのアクセス数を示す。
【０１０１】
分析部３０ｄは、メモリアクセス命令の特徴が抽出できるまで、メモリアクセス命令毎に、アクセス種別とアクセスアドレスとを特徴抽出テーブルＴＢＬに順次格納する。そして、メモリアクセス命令の特徴が抽出しながら、各エントリに格納したメモリアクセス要求に最適なキャッシュヒントとバースト長とを判定し、判定したキャッシュヒントとバースト長とを各エントリに格納する。
【０１０２】
図１０は、図７に示すステップＳ２２の処理の一例を示す。まず、ステップＳ２２２において、分析部３０ｄは、特徴抽出テーブルＴＢＬを初期化する。例えば、アクセス種別とアクセスアドレスの領域には、無効な値が格納される。キャッシュヒントの領域には、”Ｉ”が格納され、バースト長の領域には、”１”が格納される。
【０１０３】
次に、ステップＳ２２４において、分析部３０ｄは、順次実行される命令の中からメモリアクセス命令を検出する。なお、検出対象のメモリアクセス命令は、図６に示す第１プログラムの中で、データ処理部１０ａに処理させる破線で囲った部分に含まれるメモリアクセス命令である。
【０１０４】
次に、ステップＳ２２６において、分析部３０ｄは、検出したメモリアクセス命令がストア命令の場合、処理をステップＳ２２８に移行し、検出したメモリアクセス命令がストア命令でない場合、ロード命令であるため、処理をステップＳ２３２に移行する。
【０１０５】
ステップＳ２２８において、分析部３０ｄは、今回検出したストア命令に含まれるアドレスが、以前に検出したストア命令に含まれるアドレスと同じ場合、処理をステップＳ２３０に移行する。分析部３０ｄは、検出したストア命令に含まれるアドレスが、以前に検出したストア命令に含まれるアドレスと異なる場合、処理をステップＳ２４０に移行する。
【０１０６】
ステップＳ２３０において、分析部３０ｄは、アドレスが互いに同じストア命令に対応して、特徴抽出テーブルＴＢＬに、ライトを示す情報と、アドレスの値と、キャッシュヒント＝”Ｍ”とを格納し、処理をステップＳ２４０に移行する。
【０１０７】
一方、ステップＳ２３２において、分析部３０ｄは、今回検出したロード命令に含まれるアドレスが、以前に検出したロード命令に含まれるアドレスと同じ場合、処理をステップＳ２３４に移行する。分析部３０ｄは、検出したロード命令に含まれるアドレスが、以前に検出したロード命令に含まれるアドレスと異なる同じ場合、処理をステップＳ２３６に移行する。
【０１０８】
ステップＳ２３４において、分析部３０ｄは、アドレスが互いに同じロード命令に対応して、特徴抽出テーブルＴＢＬに、リードを示す情報と、アドレスの値と、キャッシュヒント＝”Ｓ”とを格納し、処理をステップＳ２３６に移行する。
【０１０９】
ステップＳ２３６において、分析部３０ｄは、現在のロード命令と直前のロード命令とのアドレスが互いに同じ場合、処理をステップＳ２３８に移行し、現在のロード命令と直前のロード命令とのアドレスが互いに異なる場合、処理をステップＳ２４０に移行する。ステップＳ２３８において、分析部３０ｄは、直前のロード命令とアドレスが互いに同じロード命令に対応して、特徴抽出テーブルＴＢＬに、リードを示す情報と、アドレスの値と、キャッシュヒント＝”Ｓ”と、バースト長＝”２”とを格納する。この後、処理は、ステップＳ２４０に移行される。
【０１１０】
ステップＳ２４０において、分析部３０ｄは、メモリアクセス命令の特徴が抽出され、特徴抽出テーブルＴＢＬに格納した情報に基づいてキャッシュメモリ部１０ｅのキャッシュヒット率を向上できると判断した場合、処理を終了する。分析部３０ｄは、メモリアクセス命令の特徴の抽出が不十分であると判定した場合、処理をステップＳ２２４に戻し、メモリアクセス命令の特徴の抽出を続行する。このように、分析部３０ｄは、第１プログラムの実行により発生する、メモリアクセス命令を利用して、データ処理部１０ａから発行されるメモリアクセス要求命令の特徴を抽出する。
【０１１１】
例えば、メモリアクセス命令の特徴が格納された特徴抽出テーブルＴＢＬは、キャッシュ制御切替部１０ｃの一部として、プログラマブル部１０内のメモリＭ１（図５）にプログラムされる。なお、メモリアクセス命令の特徴が格納された特徴抽出テーブルＴＢＬは、キャッシュ制御切替部１０ｃの一部として、プログラマブル部１０内のＡＬＭにプログラムされてもよい。
【０１１２】
以上、図４から図１０に示す実施形態においても、図１から図３に示す実施形態と同様の効果を得ることができる。例えば、データ処理部１０ａのメモリアクセスの特徴に合わせて、キャッシュ回路１０ｂのキャッシュ効率を最適化することができ、情報処理装置１００Ａの処理性能を向上することができる。データ処理部１０ａおよびキャッシュ回路１０ｂをプログラマブル部１０に搭載する前に、アクセスアドレスのパターンを分析することができる。第１プログラムと第２プログラムとで同じ処理を重複して実行する無駄を省くことができ、あるいは、処理が欠落することを抑止することができる。
【０１１３】
図１１は、情報処理装置の別の実施形態における第２プログラムを実行する環境を構築する処理の一例を示す。図７と同一の要素については、詳細な説明は省略する。図１１では、図７のステップＳ２２の代わりに、ステップＳ２２Ａが実行される。ステップＳ２２Ａを除く処理は、図７と同じである。
【０１１４】
ステップＳ２２Ａ、Ｓ２４、Ｓ２６に示す処理は、情報処理装置が実行する制御プログラムにより実行される。すなわち、ステップＳ２２Ａ、Ｓ２４、Ｓ２６に示す処理は、情報処理装置の制御方法の一例および情報処理装置の制御プログラムの一例を示す。
【０１１５】
ステップＳ２０、Ｓ２２Ａ、Ｓ２４、Ｓ２６を実行する情報処理装置は、図４に示した制御プログラム２０ｅが異なることを除き、図４に示す情報処理装置１００Ａと同様である。換言すれば、ステップＳ２０、Ｓ２２Ａ、Ｓ２４、Ｓ２６を実行する情報処理装置は、図４に示す分析部３０ｄと決定部３０ｅが実行する処理が異なることを除き、図４に示す情報処理装置１００Ａと同様である。
【０１１６】
ステップＳ２２Ａにおいて、情報処理装置１００Ａの分析部３０ｄは、第１プログラムにおいてデータ処理部１０ａの動作に相当する命令を分析し、分岐命令において、分岐する確率が他より高い分岐先を検出する。そして、分析部３０ｄは、分岐する確率が他より高い分岐先で実行されるメモリアクセスの特徴を抽出する。すなわち、分析部３０ｄは、図１２に示す複数のプロセスＡ、Ｂ、Ｃのうち、実行頻度が他のプロセスよりも高いプロセスによるアクセスアドレスのパターンを分析する。次に、ステップＳ２４において、決定部３０ｅは、ステップＳ２２Ａで抽出した特徴に基づいて、キャッシュ制御切替部１０ｃの論理を生成する。
【０１１７】
図１２は、図１１に示すステップＳ２４で生成されたキャッシュ制御切替部１０ｃを含むキャッシュ回路１０ｂの動作の一例を示す。図８と同一または同様の要素については、詳細な説明は省略する。左側の欄に示すデータ処理部１０ａで実行する処理と等価な命令群（ソースプログラム）は、図８と同じである。
【０１１８】
中央の欄は、５行目のブランチ命令ＢＲにおいて、プロセスＢで実行されるメモリアクセスの特徴の抽出に基づいて生成されたキャッシュ制御切替部を含むキャッシュ回路の動作を示す。すなわち、中央の欄は、ラベルＢに分岐する確率が他に分岐する確率より高い場合に合わせて生成されたキャッシュ制御切替部を含むキャッシュ回路の動作を示す。
【０１１９】
右側の欄は、５行目のブランチ命令ＢＲにおいて、プロセスＣで実行されるメモリアクセスの特徴の抽出に基づいて生成されたキャッシュ制御切替部を含むキャッシュ回路の動作を示す。すなわち、右側の欄は、ラベルＣに分岐する確率が他に分岐する確率より高い場合に合わせて生成されたキャッシュ制御切替部を含むキャッシュ回路の動作を示す。
【０１２０】
５行目のブランチ命令ＢＲにおいて、ラベルＢに分岐する確率が高い場合、７行目のロード命令ＬＤに対応してデータ処理部１０ａが実行するリードアクセス（アドレスＢ１）のバースト長が”２”に設定される。これにより、次のリードアクセス（アドレスＢ２）をキャッシュヒットさせることができ、ＬＬＣ３０ｂへのアクセス要求の頻度を減らすことができる。この例では、プロセスＢでのキャッシュ効率が高くなるように、全てのリードアクセスにおいて、キャッシュヒントは”Ｓ”に設定され、バースト長は”２”に設定される。
【０１２１】
一方、５行目のブランチ命令ＢＲにおいて、ラベルＣに分岐する確率が高い場合、例えば、２２行目のロード命令ＬＤ（アドレスＡ２）のアクセス効率を向上するため、２行目のロード命令（アドレスＡ２）のキャッシュヒントが”Ｓ” に設定される。また、１行目のロード命令ＬＤ（アドレスＡ１）と８行目のロード命令（アドレスＢ２）は、プロセスＣでは実行されないため、キャッシュヒントが”Ｉ”に設定される。
【０１２２】
さらに、７行目のロード命令ＬＤ（アドレスＢ１）が実行された後に、プロセスＣにおいて、アドレスＢ１のリードアクセスが実行されるため（図示せず）、７行目のロード命令のキャッシュヒントが”Ｓ”に設定される。２３行目のロード命令ＬＤ（アドレスＣ１）で読み出されたデータは、その後のプロセスＣの処理で使用されないため、２３行目のロード命令ＬＤのキャッシュヒントは”Ｉ”に設定される。
【０１２３】
これにより、２２行目のロード命令ＬＤをキャッシュヒットさせることができ、２３行目のロード命令ＬＤに基づいてキャッシュラインの無駄な追い出しが発生することを抑止することができる。また、プロセスＣに関連する処理を実行する他のプロセス（１行目、８行目）においても、キャッシュラインの無駄な追い出しが発生することを抑止することができる。
【０１２４】
なお、図１２に示す動作では、ストア命令ＳＴに対応してデータ処理部１０ａが実行するライトアクセスは、図８の右側の欄と同様に、キャッシュヒントは”Ｍ”に設定され、バースト長は”１”に設定される。
【０１２５】
以上、図１１および図１２に示す実施形態においても、図１から図３に示す実施形態と同様の効果を得ることができる。例えば、データ処理部１０ａのメモリアクセスの特徴に合わせて、キャッシュ回路１０ｂのキャッシュ効率を最適化することができ、情報処理装置１００Ａの処理性能を向上することができる。データ処理部１０ａおよびキャッシュ回路１０ｂをプログラマブル部１０に搭載する前に、アクセスアドレスのパターンを分析することができる。第１プログラムと第２プログラムとで同じ処理を重複して実行する無駄を省くことができ、あるいは、処理が欠落することを抑止することができる。
【０１２６】
さらに、図１１および図１２に示す実施形態では、実行頻度が他より高い処理のアクセスアドレスのパターンの特徴に合わせて、キャッシュ回路１０ｂのキャッシュ効率を最適化することができる。これにより、例えば、プロセスＣまたはプロセスＣに特化して、キャッシュ回路１０ｂのキャッシュ効率を最適化することができる。
【０１２７】
図１３は、情報処理装置の別の実施形態における第２プログラムを実行する環境を構築する処理の一例を示す。図７と同一の要素については、詳細な説明は省略する。図１３では、事前準備において、複数のキャッシュ制御切替部を論理合成するステップＳ１１Ｂが、図７に対して追加される。また、図７のステップＳ２４の代わりに、ステップＳ２４Ｂが実行される。その他の処理は、図７と同じである。
【０１２８】
ステップＳ２２、Ｓ２４Ｂ、Ｓ２６に示す処理は、情報処理装置が実行する制御プログラムにより実行される。すなわち、ステップＳ２２、Ｓ２４Ｂ、Ｓ２６に示す処理は、情報処理装置の制御方法の一例および情報処理装置の制御プログラムの一例を示す。ステップＳ２０、Ｓ２２、Ｓ２４Ｂ、Ｓ２６を実行する情報処理装置は、図４に示す制御プログラム２０ｅが異なることを除き、図４に示す情報処理装置１００Ａと同様である。換言すれば、ステップＳ２０、Ｓ２２、Ｓ２４Ｂ、Ｓ２６を実行する情報処理装置は、図４に示す決定部３０ｅが実行する処理が異なることを除き、図４に示す情報処理装置１００Ａと同様である。
【０１２９】
ステップＳ１１Ｂにおいて、様々なメモリアクセスの特徴に合わせた複数種のキャッシュ制御切替部が論理合成され、構成情報が生成される。なお、事前準備は、情報処理装置１００Ａで実行されてもよく、他のツールを使用して実行されてもよい。ステップＳ１１Ｂは、事前準備のフローにおいて、他の個所に配置されてもよい。
【０１３０】
ステップＳ２４Ｂにおいて、情報処理装置１００Ａの決定部３０ｅは、ステップＳ２２で抽出した特徴に基づいて、ステップＳ１１Ｂで生成された複数種のキャッシュ制御切替部の中からメモリアクセス効率が他より高くなるキャッシュ制御切替部１０ｃを選択する。なお、ステップＳ２２の代わりに図１１に示したステップＳ２２Ａが実行され、ステップＳ２４Ｂにおいて、決定部３０ｅが、ステップＳ２２Ａで抽出した特徴に基づいて、メモリアクセス効率が他より高くなるキャッシュ制御切替部１０ｃを選択してもよい。
【０１３１】
決定部３０ｅは、事前準備で生成されたキャッシュ制御切替部の構成情報を使用できるため、アクセスアドレスのパターンの分析結果に基づいてキャッシュ制御切替部１０ｃを生成する処理を省略することができる。これにより、プログラマブル部１０にプログラムするキャッシュ制御切替部１０ｃを準備するまでに実行される第１プログラムの命令数を最小限にすることができる。この結果、情報処理装置１００Ａが実行するデータ処理に使用されるデータ処理部１０ａの動作率を向上することができ、データ処理の処理性能を向上することができる。
【０１３２】
以上、図１３に示す実施形態においても、図１から図３に示す実施形態と同様の効果を得ることができる。例えば、データ処理部１０ａのメモリアクセスの特徴に合わせて、キャッシュ回路１０ｂのキャッシュ効率を最適化することができ、情報処理装置１００Ａの処理性能を向上することができる。データ処理部１０ａおよびキャッシュ回路１０ｂをプログラマブル部１０に搭載する前に、アクセスアドレスのパターンを分析することができる。第１プログラムと第２プログラムとで同じ処理を重複して実行する無駄を省くことができ、あるいは、処理が欠落することを抑止することができる。
【０１３３】
さらに、図１３に示す実施形態では、事前準備で生成されたキャッシュ制御切替部の構成情報を使用することで、プログラマブル部１０にプログラムするキャッシュ制御切替部１０ｃを準備するまでに実行される第１プログラムの命令数を最小限にすることができる。この結果、情報処理装置１００Ａが実行するデータ処理に使用されるデータ処理部１０ａの動作率を向上することができ、データ処理の処理性能を向上することができる。
【０１３４】
図１４は、情報処理装置の別の実施形態における第２プログラムを実行する環境を構築する処理の一例を示す。図７と同一の要素については、詳細な説明は省略する。図１４では、図７のステップＳ２４の代わりに、ステップＳ２４Ｃが実行され、図７のステップＳ２２の後にステップＳ２３Ｃが追加される。ステップＳ２３Ｃ、Ｓ２４Ｃを除く処理は、図７と同じである。
【０１３５】
ステップＳ２２、Ｓ２３Ｃ、Ｓ２４Ｃ、Ｓ２６に示す処理は、情報処理装置が実行する制御プログラムにより実行される。すなわち、ステップＳ２２、Ｓ２３Ｃ、Ｓ２４Ｃ、Ｓ２６に示す処理は、情報処理装置の制御方法の一例および情報処理装置の制御プログラムの一例を示す。ステップＳ２０、Ｓ２２、Ｓ２３Ｃ、Ｓ２４Ｃ、Ｓ２６を実行する情報処理装置は、図４に示す制御プログラム２０ｅが異なることを除き、図４に示す情報処理装置１００Ａと同様である。換言すれば、Ｓ２０、Ｓ２２、Ｓ２３Ｃ、Ｓ２４Ｃ、Ｓ２６を実行する情報処理装置は、図４に示す決定部３０ｅが実行する処理が異なることを除き、図４に示す情報処理装置１００Ａと同様に動作する。
【０１３６】
ステップＳ２３Ｃにおいて、決定部３０ｅは、プログラマブル部１０において、キャッシュ制御切替部をプログラム可能な空き領域を検出する。例えば、決定部３０ｅは、図５に示したプログラマブル部１０において、未使用のＡＬＭの数、未使用のメモリＭ１の数および未使用のＤＳＰの数を検出する。
【０１３７】
次に、ステップＳ２４Ｃにおいて、決定部３０ｅは、ステップＳ２２で抽出された特徴に基づいて、空き領域にプログラム可能な規模のキャッシュ制御切替部１０ｃの論理を生成する。すなわち、決定部３０ｅは、未使用のＡＬＭ、メモリＭ１、ＤＳＰを使用して搭載可能な回路規模のキャッシュ制御切替部１０ｃを生成する。
【０１３８】
キャッシュ制御切替部１０ｃの性能は、回路規模が大きいほど高くなり、回路規模が小さいほど低くなる。ここで、キャッシュ制御切替部１０ｃの性能は、キャッシュヒット率が高いほど高く、キャッシュラインの追い出し頻度が少ないほど高い。このように、ステップＳ２３Ｃ、Ｓ２４Ｃにより、プログラマブル部１０の空き領域に応じて最適な性能のキャッシュ制御切替部１０ｃをプログラマブル部１０に搭載することができる。また、空き領域の制限により、キャッシュ制御切替部１０ｃがプログラマブル部１０にプログラムされない不具合を解消することができる。
【０１３９】
なお、図１１に示すステップＳ２２Ａと同様に、分析部３０ｄは、分岐する確率が他より高い分岐先で実行されるメモリアクセスの特徴を抽出してもよい。また、図１３に示すステップＳ２４Ｂと同様に、決定部３０ｅは、キャッシュ制御切替部１０ｃの論理を生成する代わりに、予め生成された複数のキャッシュ制御切替部の中から、メモリアクセス効率が他より高くなるキャッシュ制御切替部を選択してもよい。この場合、決定部３０ｅは、プログラマブル部１０の空き領域に合わせてキャッシュ制御切替部を選択する。さらに、決定部３０ｅがメモリアクセス効率が他より高くなるキャッシュ制御切替部を選択することに加えて、図１１に示したように、分析部３０ｄが分岐する確率が他より高い分岐先でのメモリアクセスの特徴を抽出してもよい。
【０１４０】
以上、図１４に示す実施形態においても、図１から図３に示す実施形態と同様の効果を得ることができる。例えば、データ処理部１０ａのメモリアクセスの特徴に合わせて、キャッシュ回路１０ｂのキャッシュ効率を最適化することができ、情報処理装置１００Ａの処理性能を向上することができる。データ処理部１０ａおよびキャッシュ回路１０ｂをプログラマブル部１０に搭載する前に、アクセスアドレスのパターンを分析することができる。第１プログラムと第２プログラムとで同じ処理を重複して実行する無駄を省くことができ、あるいは、処理が欠落することを抑止することができる。
【０１４１】
さらに、図１４に示す実施形態では、プログラマブル部１０の空き領域に応じた最適な性能のキャッシュ制御切替部１０ｃをプログラマブル部１０に搭載することができる。また、空き領域の制限により、キャッシュ制御切替部１０ｃがプログラマブル部１０にプログラムされない不具合を解消することができる。
【０１４２】
図１５は、情報処理装置の別の実施形態における第２プログラムを実行する環境を構築する処理の一例を示す。図７と同一の要素については、詳細な説明は省略する。図１５では、事前準備において、複数のキャッシュ制御切替部を論理合成するステップＳ１１Ｄ、Ｓ１３Ｄ、１７Ｄが、図７に対して追加される。また、図７のステップＳ２０、Ｓ２２、Ｓ２４、Ｓ２６の代わりに、ステップＳ２０Ｄ、Ｓ２２Ｄ、Ｓ２４Ｄ、Ｓ２６Ｄが実行される。その他の処理は、図７と同じである。
【０１４３】
ステップＳ２２Ｄ、Ｓ２４Ｄ、Ｓ２６Ｄに示す処理は、情報処理装置が実行する制御プログラムにより実行される。すなわち、ステップＳ２２Ｄ、Ｓ２４Ｄ、Ｓ２６Ｄに示す処理は、情報処理装置の制御方法の一例および情報処理装置の制御プログラムの一例を示す。ステップＳ２０Ｄ、Ｓ２２Ｄ、Ｓ２４Ｄ、Ｓ２６Ｄを実行する情報処理装置は、図４に示す制御プログラム２０ｅが異なることと、分析部３０ｄがプログラマブル部１０に配置されることを除き、図４に示す情報処理装置１００Ａと同様である。換言すれば、ステップＳ２０Ｄ、Ｓ２２Ｄ、Ｓ２４Ｄ、Ｓ２６Ｄを実行する情報処理装置は、図４に示す決定部３０ｅが実行する処理が異なることを除き、図４に示す情報処理装置１００Ａと同様に動作する。
【０１４４】
ステップＳ１１Ｄにおいて、標準的なキャッシュヒントとバースト長とを生成するデフォルトのキャッシュ制御切替部が論理合成され、構成情報が生成される。ステップＳ１３Ｄにおいて、図４に示すデータ処理部１０ａのメモリアクセスの特徴を分析する分析回路が論理合成され、構成情報が生成される。ステップＳ１４の後、ステップＳ１７Ｄにおいて、データ処理部１０ａ、キャッシュ制御部１０ｄ、キャッシュメモリ部１０ｅ、デフォルトのキャッシュ制御切替部および分析回路がプログラマブル部１０にプログラムされる。なお、ステップＳ１１Ｄ、Ｓ１３Ｄは、事前準備のフローにおいて、他の個所に配置されてもよい。事前準備は、情報処理装置１００Ａで実行されてもよく、他のツールを使用して実行されてもよい。
【０１４５】
事前準備が完了した後、ステップＳ２０Ｄにおいて、情報処理装置１００Ａは、演算処理装置３０に第２プログラムの実行を開始させる。次に、ステップＳ２２Ｄにおいて、プログラマブル部１０にプログラムされた分析部３０ｄは、第２プログラムに呼び出されて動作するデータ処理部１０ａが出力するメモリアクセス要求の特徴を抽出する。すなわち、分析部３０ｄをプログラマブル部１０内に搭載することで、第１プログラムを実行することなく、第２プログラムで呼び出されるデータ処理部１０ａのメモリアクセスの特徴を直接分析することができる。データ処理部１０ａ（ハードウェア）が出力するメモリアクセス要求を直接分析できるため、メモリアクセス要求の特徴の抽出に掛かる時間を、図７に示した手法に比べて短縮することができる。なお、図１１に示すステップＳ２２Ａと同様に、分析部３０ｄは、分岐する確率が他より高い分岐先で実行されるメモリアクセスの特徴を抽出してもよい。
【０１４６】
次に、ステップＳ２４Ｄにおいて、決定部３０ｅは、プログラマブル部１０上の分析部３０ｄが抽出した特徴に基づいて、キャッシュ制御切替部１０ｃの論理を生成する。なお、図１４に示すステップＳ２４Ｄと同様に、決定部３０ｅは、ステップＳ２２Ｄで抽出された特徴に基づいて、空き領域にプログラム可能な規模のキャッシュ制御切替部１０ｃの論理を生成してもよい。さらに、分岐する確率が他より高い分岐先でのメモリアクセスの特徴を分析部３０ｄが抽出し、かつ、空き領域にプログラム可能な規模のキャッシュ制御切替部１０ｃの論理を決定部３０ｅが生成してもよい。
【０１４７】
また、図１３に示すステップＳ２４Ｂと同様に、決定部３０ｅは、キャッシュ制御切替部１０ｃの論理を生成する代わりに、予め生成された複数のキャッシュ制御切替部の中から、メモリアクセス効率が他より高くなるキャッシュ制御切替部を選択してもよい。この場合、分岐する確率が他より高い分岐先でのメモリアクセスの特徴を分析部３０ｄが抽出してもよく、空き領域にプログラム可能な規模のキャッシュ制御切替部１０ｃの論理を決定部３０ｅが生成してもよい。さらに、分岐する確率が他より高い分岐先でのメモリアクセスの特徴を分析部３０ｄが抽出し、かつ、空き領域にプログラム可能な規模のキャッシュ制御切替部１０ｃの論理を決定部３０ｅが生成してもよい。
【０１４８】
次に、ステップＳ２６Ｄにおいて、構成制御部３０ｆは、プログラマブル部１０にプログラムされたデフォルトのキャッシュ制御切替部を、ステップＳ２４Ｄで生成されたキャッシュ制御切替部１０ｃに置き換える。そして、情報処理装置１００Ａは、第２プログラムの実行を継続する。
【０１４９】
以上、図１５に示す実施形態においても、図１から図３に示す実施形態と同様の効果を得ることができる。例えば、データ処理部１０ａのメモリアクセスの特徴に合わせて、キャッシュ回路１０ｂのキャッシュ効率を最適化することができ、情報処理装置１００Ａの処理性能を向上することができる。
【０１５０】
さらに、図１５に示す実施形態では、分析部３０ｄをプログラマブル部１０内に搭載することで、第１プログラムを実行することなく、第２プログラムで呼び出されるデータ処理部１０ａのメモリアクセスの特徴を直接分析することができる。データ処理部１０ａ（ハードウェア）が出力するメモリアクセス要求を直接分析できるため、メモリアクセス要求の特徴の抽出に掛かる時間を、図７による手法に比べて短縮することができる。
【０１５１】
以上の図１から図１０に示す実施形態に関し、さらに以下の付記を開示する。
（付記１）
データを記憶する記憶部と、
前記記憶部が記憶するデータを処理するデータ処理部と、前記データ処理部で使用するデータが格納されるキャッシュメモリ部と、前記データ処理部が前記記憶部から読み出すデータを前記キャッシュメモリ部に格納するかをキャッシュ制御情報に基づいて決定するキャッシュ制御部と、前記データ処理部が発行するメモリアクセス要求に基づいて前記キャッシュ制御情報を生成するキャッシュ制御切替部とがプログラムされるプログラマブル部と、
前記プログラマブル部にプログラムされる前記データ処理部が発行する前記メモリアクセス要求に含まれるアクセスアドレスのパターンを分析する分析部と、
前記分析部が分析した前記アクセスアドレスのパターンに基づいて、前記プログラマブル部にプログラムする前記キャッシュ制御切替部の論理を決定する決定部と、
前記データ処理部、前記キャッシュメモリ部および前記キャッシュ制御部を前記プログラマブル部にプログラムするとともに、前記決定部が決定した前記キャッシュ制御切替部を前記プログラマブル部にプログラムする構成制御部と
を備えることを特徴とする情報処理装置。
（付記２）
前記データ処理部が実行する第１データ処理と等価な第２データ処理を実行する機能を含む処理プログラムを実行する演算処理部を備え、
前記分析部は、前記処理プログラムによる前記第２データ処理の実行により発生する前記記憶部へのアクセスに基づいて前記アクセスアドレスのパターンを分析することを特徴とする付記１記載の情報処理装置。
（付記３）
前記処理プログラムによる前記第２データ処理の実行中に前記分析部による前記アクセスアドレスのパターンの分析が完了した場合、
前記構成制御部は、前記決定部が決定した前記キャッシュ制御切替部を前記プログラマブル部にプログラムし、
前記演算処理部は、前記第２データ処理のうち未実行の処理を、前記第１データ処理の一部として前記データ処理部に実行させることを特徴とする付記２記載の情報処理装置。
（付記４）
前記分析部は、前記プログラマブル部にプログラムされ、
前記構成制御部は、前記データ処理部、前記分析部およびデフォルトのキャッシュ制御切替部を前記プログラマブル部にプログラムし、前記データ処理部が発行する前記メモリアクセス要求に基づいて前記分析部が前記アクセスアドレスのパターンを分析した後、前記デフォルトのキャッシュ制御切替部を、前記決定部が決定した前記キャッシュ制御切替部に置き換えることを特徴とする付記１記載の情報処理装置。
（付記５）
前記データ処理部が実行するデータ処理は、複数のプロセスを含み、
前記分析部は、前記複数のプロセスのうち、実行頻度が他のプロセスよりも高いプロセスによる前記アクセスアドレスのパターンを分析することを特徴とする付記１ないし付記４のいずれか１項記載の情報処理装置。
（付記６）
前記決定部は、前記分析部が分析した前記アクセスアドレスのパターンに基づいて決定した前記キャッシュ制御切替部の構成情報を生成し、
前記構成制御部は、前記決定部が生成した前記キャッシュ制御切替部の構成情報を前記プログラマブル部にプログラムすることを特徴とする付記１ないし付記５のいずれか１項記載の情報処理装置。
（付記７）
前記決定部は、複数種の前記アクセスアドレスのパターンにそれぞれ対応する複数種の前記キャッシュ制御切替部の構成情報のいずれかを、前記分析部が分析した前記アクセスアドレスのパターンに基づいて選択し、
前記構成制御部は、前記決定部が選択した前記キャッシュ制御切替部の構成情報を前記プログラマブル部にプログラムすることを特徴とする付記１ないし付記５のいずれか１項記載の情報処理装置。
（付記８）
前記決定部は、前記分析部が分析した前記アクセスアドレスのパターンに基づいて、前記プログラマブル部の空き領域にプログラム可能な前記キャッシュ制御切替部の論理を決定することを特徴とする付記１ないし付記７のいずれか１項記載の情報処理装置。
（付記９）
前記キャッシュ制御切替部が出力する前記キャッシュ制御情報は、データを前記記憶部に書き込む代わりに前記キャッシュメモリ部に格納するか否かを示す第１情報を含み、
前記キャッシュ制御部は、前記第１情報に応じて、データを前記記憶部または前記キャッシュメモリ部に書き込むことを特徴とする付記１ないし付記８のいずれか１項記載の情報処理装置。
（付記１０）
前記キャッシュ制御切替部が出力する前記キャッシュ制御情報は、前記データ処理部が発行する前記メモリアクセス要求に対応して転送されるデータの長さを示す第２情報を含み、
前記キャッシュ制御部は、前記第２情報に応じた長さのデータを前記記憶部から読み出すことを特徴とする付記１ないし付記９のいずれか１項記載の情報処理装置。
（付記１１）
データを記憶する記憶部とプログラマブル部を備え、前記プログラマブル部に、前記記憶部が記憶するデータを処理するデータ処理部と、前記データ処理部で使用するデータが格納されるキャッシュメモリ部と、前記データ処理部が前記記憶部から読み出すデータを前記キャッシュメモリ部に格納するかをキャッシュ制御情報に基づいて決定するキャッシュ制御部と、前記データ処理部が発行するメモリアクセス要求に基づいて前記キャッシュ制御情報を生成するキャッシュ制御切替部がプログラムされる情報処理装置の制御方法において、
前記情報処理装置が、
前記プログラマブル部にプログラムされる前記データ処理部が発行する前記メモリアクセス要求に含まれるアクセスアドレスのパターンを分析し、
分析した前記アクセスアドレスのパターンに基づいて、前記プログラマブル部にプログラムする前記キャッシュ制御切替部の論理を決定し、
前記データ処理部、前記キャッシュメモリ部および前記キャッシュ制御部を前記プログラマブル部にプログラムするとともに、決定した前記キャッシュ制御切替部を前記プログラマブル部にプログラムすることを特徴とする情報処理装置の制御方法。
（付記１２）
データを記憶する記憶部とプログラマブル部を備え、前記プログラマブル部に、前記記憶部が記憶するデータを処理するデータ処理部と、前記データ処理部で使用するデータが格納されるキャッシュメモリ部と、前記データ処理部が前記記憶部から読み出すデータを前記キャッシュメモリ部に格納するかをキャッシュ制御情報に基づいて決定するキャッシュ制御部と、前記データ処理部が発行するメモリアクセス要求に基づいて前記キャッシュ制御情報を生成するキャッシュ制御切替部がプログラムされる情報処理装置の制御プログラムにおいて、
前記プログラマブル部にプログラムされる前記データ処理部が発行する前記メモリアクセス要求に含まれるアクセスアドレスのパターンを分析し、
分析した前記アクセスアドレスのパターンに基づいて、前記プログラマブル部にプログラムする前記キャッシュ制御切替部の論理を決定し、
前記データ処理部、前記キャッシュメモリ部および前記キャッシュ制御部を前記プログラマブル部にプログラムするとともに、決定した前記キャッシュ制御切替部を前記プログラマブル部にプログラムする
処理を、前記情報処理装置に実行させるための制御プログラム。
（付記１３）
データを記憶する記憶部とプログラマブル部を備え、前記プログラマブル部に、前記記憶部が記憶するデータを処理するデータ処理部と、前記データ処理部で使用するデータが格納されるキャッシュメモリ部と、前記データ処理部が前記記憶部から読み出すデータを前記キャッシュメモリ部に格納するかをキャッシュ制御情報に基づいて決定するキャッシュ制御部と、前記データ処理部が発行するメモリアクセス要求に基づいて前記キャッシュ制御情報を生成するキャッシュ制御切替部がプログラムされる情報処理装置の制御プログラムを記録した記録媒体において、
前記プログラマブル部にプログラムされる前記データ処理部が発行する前記メモリアクセス要求に含まれるアクセスアドレスのパターンを分析し、
分析した前記アクセスアドレスのパターンに基づいて、前記プログラマブル部にプログラムする前記キャッシュ制御切替部の論理を決定し、
前記データ処理部、前記キャッシュメモリ部および前記キャッシュ制御部を前記プログラマブル部にプログラムするとともに、が決定した前記キャッシュ制御切替部を前記プログラマブル部にプログラムする
処理を、前記情報処理装置に実行させるための制御プログラムを記録した記録媒体。
【０１５２】
以上の詳細な説明により、実施形態の特徴点および利点は明らかになるであろう。これは、特許請求の範囲がその精神および権利範囲を逸脱しない範囲で前述のような実施形態の特徴点および利点にまで及ぶことを意図するものである。また、当該技術分野において通常の知識を有する者であれば、あらゆる改良および変更に容易に想到できるはずである。したがって、発明性を有する実施形態の範囲を前述したものに限定する意図はなく、実施形態に開示された範囲に含まれる適当な改良物および均等物に拠ることも可能である。
【符号の説明】
【０１５３】
１…プログラマブル部；１ａ…データ処理部；１ｂ…キャッシュ回路；１ｃ…キャッシュ制御切替部；１ｄ…キャッシュ制御部；１ｅ…キャッシュメモリ部；２…記憶部；２ａ…データ領域；２ｂ…プログラム領域；２ｃ…構成情報領域；２ｄ…第１プログラム；２ｅ…第２プログラム；２ｆ…制御プログラム；３…演算処理装置；３ａ…演算処理部；３ｂ…分析部；３ｃ…決定部；３ｄ…構成制御部；４…記録媒体；１０…プログラマブル部；１０ａ…データ処理部；１０ｂ…キャッシュ回路；１０ｃ…キャッシュ制御切替部；１０ｄ…キャッシュ制御部；１０ｅ…キャッシュメモリ部；２０…メインメモリ；２０ａ…データ領域；２０ｂ…プログラム領域；２０ｃ…構成情報領域；２０ｄ…プログラム；２０ｅ…制御プログラム；３０…演算処理装置；３０ａ…ＣＰＵコア；３０ｂ…ＬＬＣ；３０ｃ…ＭＭＵ；３０ｄ…分析部；３０ｅ…決定部；３０ｆ…構成制御部；４０…入出力インタフェース；５０…ＨＤＤ；６０…通信インタフェース；７０…記録媒体；１００、１００Ａ…情報処理装置；ＢＵＳ１、ＢＵＳ２、ＢＵＳ３…バス；ＣＩＮＦ…キャッシュ制御情報；ＮＷ…ネットワーク；ＴＢＬ…特徴抽出テーブル
【図１】
2018151827.tif 000003
【図２】
2018151827.tif 000004
【図３】
2018151827.tif 000005
【図４】
2018151827.tif 000006
【図５】
2018151827.tif 000007
【図６】
2018151827.tif 000008
【図７】
2018151827.tif 000009
【図８】
2018151827.tif 000010
【図９】
2018151827.tif 000011
【図１０】
2018151827.tif 000012
【図１１】
2018151827.tif 000013
【図１２】
2018151827.tif 000014
【図１３】
2018151827.tif 000015
【図１４】
2018151827.tif 000016
【図１５】
2018151827.tif 000017