(57)【要約】【課題】シミュレーションにおいて参照されたアドレスを変換する構成を実現する。【解決手段】アドレス変換部２００は、ＩＳＳ１００で模擬されているメモリにおけるアドレス群の配置が示されるオリジナルアドレス情報５００を入力し、前記アドレス群が異なる配置で示される再配置アドレス情報６００を入力する。また、アドレス変換部２００は、オリジナルアドレス情報５００の各アドレスを、再配置アドレス情報６００の同じ位置にあるアドレスと対応付ける。また、アドレス変換部２００は、ＩＳＳ１００のシミュレーションにおいて参照されたアドレスを入力し、入力したアドレスと一致するアドレスをオリジナルアドレス情報５００から抽出し、オリジナルアドレス情報５００から抽出したアドレスと同じ位置にあるアドレスを再配置アドレス情報６００から抽出し、抽出したアドレスを階層キャッシュモデル３００に出力する。【選択図】図１
2014142682.tif 000002
【特許請求の範囲】
【請求項１】
シミュレータで模擬されているメモリにおけるメモリアドレス群の配置が示されるオリジナルアドレス情報を入力するオリジナルアドレス情報入力部と、
前記メモリアドレス群が前記オリジナルアドレス情報の配置とは異なる配置で示される再配置アドレス情報を入力する再配置アドレス情報入力部と、
前記オリジナルアドレス情報の各メモリアドレスを、前記再配置アドレス情報の同じ位置にあるメモリアドレスと対応付けるアドレス対応付け部と、
前記シミュレータのシミュレーションにおいて参照されたメモリアドレスを入力するアドレス入力部と、
前記アドレス入力部により入力されたメモリアドレスと一致するメモリアドレスを前記オリジナルアドレス情報から抽出し、前記アドレス対応付け部によるメモリアドレスの対応付けに従い、前記オリジナルアドレス情報から抽出したメモリアドレスと同じ位置にあるメモリアドレスを前記再配置アドレス情報から抽出するメモリアドレス抽出部と、
前記メモリアドレス抽出部により前記再配置アドレス情報から抽出されたメモリアドレスを出力するアドレス出力部とを有することを特徴とするメモリアドレス管理システム。
【請求項２】
前記アドレス出力部は、
キャッシュ動作を模擬するキャッシュ動作模擬システムに、前記メモリアドレス抽出部により前記再配置アドレス情報から抽出されたメモリアドレスを出力して、
前記シミュレータのシミュレーションにおいて参照されたメモリアドレスではなく、前記再配置アドレス情報から抽出されたメモリアドレスについてのキャッシュ動作を前記キャッシュ動作模擬システムに模擬させることを特徴とする請求項１に記載のメモリアドレス管理システム。
【請求項３】
前記アドレス対応付け部は、
相互に同じ位置にある前記オリジナルアドレス情報のメモリアドレスと前記再配置アドレス情報のメモリアドレスとを比較し、相互に同じ位置にある前記オリジナルアドレス情報のメモリアドレスと前記再配置アドレス情報のメモリアドレスとが異なる場合に、前記オリジナルアドレス情報のメモリアドレスを、前記再配置アドレス情報の同じ位置にあるメモリアドレスと対応付けることを特徴とする請求項１又は２に記載のメモリアドレス管理システム。
【請求項４】
前記アドレス入力部は、
前記前記シミュレータのシミュレーションにおいて参照されたオペランドメモリアドレスを入力することを特徴とする請求項１に記載のメモリアドレス管理システム。
【請求項５】
コンピュータを、請求項１に記載されたメモリアドレス管理システムとして機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、性能評価のためのシミュレーションにおいてメモリアドレスを管理する技術に関する。
【背景技術】
【０００２】
近年の組込み装置には、高性能なプロセッサが採用されるようになり、キャッシュや条件分岐などによって与えられる影響が大きい。
上記機能（キャッシュや条件分岐など）を効果的に利用するソフトウェア（以下、Ｓ／Ｗとも表記する）を実装した場合、ユーザーの想定通りのハードウェア（以下、Ｈ／Ｗとも表記する）性能を満たす。
反対に、上記機能を十分に利用できないＳ／Ｗを実装した場合、ユーザーの想定通りのＨ／Ｗ性能を満たせない。
このため、性能低下を引き起こすＳ／Ｗ処理を検出し、Ｈ／Ｗが持つ機能を効果的に利用できるＳ／Ｗに改善する必要がある。
この点に関し、性能評価シミュレータを使って、性能低下の要因を検出する技術がある（例えば、特許文献１〜５）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００４−０７０８６２号公報
【特許文献２】特開２００２−３０４３０２号公報
【特許文献３】特開２００１−１９５２６３号公報
【特許文献４】特開２０００−１２２８７７号公報
【特許文献５】特開２０００−６６８９９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
性能評価シミュレータによって、「大量のキャッシュミス」が性能低下要因のひとつであることがわかった場合に、この「大量のキャッシュミス」を減らす解決策のひとつとして、キャッシュを効率的に利用するＳ／Ｗ（データ配置）に変更する方法が考えられる。
キャッシュを効果的に利用できるデータ配置を提案したとき、実際にＳ／Ｗを修正する前に、どれくらい性能向上を期待できるかを知る必要がある。
つまり、その性能向上の大きさによって、Ｓ／Ｗを修正するか、そのまま修正しないかを決める必要がある。
例えば、性能向上が期待したものより小さかった場合は、Ｓ／Ｗを修正しないという選択をすることが考えられる。
大規模なＳ／Ｗほど修正時間や修正による新たな不具合生成のリスクが大きくなるため、このＳ／Ｗ修正前の判断が必要になる。
【０００５】
しかし、机上ではデータ再配置後のキャッシュ動作を模擬し、性能評価することは困難である。
よって、Ｓ／Ｗを変更せずに性能評価シミュレータを使って、性能評価を行なう技術が必要になる。
つまり、性能評価シミュレータが備えるキャッシュメモリモデルへの入力アドレスをデータ再配置後のアドレスに変換し、キャッシュ動作を変更したときの性能評価を行なえば、データ再配置後の性能評価ができる。
【０００６】
本発明は、このような事情に鑑みたものであり、シミュレーションにおいて参照されたメモリアドレスを変換する構成を実現することを主な目的とする。
【課題を解決するための手段】
【０００７】
本発明に係るメモリアドレス管理システムは、
シミュレータで模擬されているメモリにおけるメモリアドレス群の配置が示されるオリジナルアドレス情報を入力するオリジナルアドレス情報入力部と、
前記メモリアドレス群が前記オリジナルアドレス情報の配置とは異なる配置で示される再配置アドレス情報を入力する再配置アドレス情報入力部と、
前記オリジナルアドレス情報の各メモリアドレスを、前記再配置アドレス情報の同じ位置にあるメモリアドレスと対応付けるアドレス対応付け部と、
前記シミュレータのシミュレーションにおいて参照されたメモリアドレスを入力するアドレス入力部と、
前記アドレス入力部により入力されたメモリアドレスと一致するメモリアドレスを前記オリジナルアドレス情報から抽出し、前記アドレス対応付け部によるメモリアドレスの対応付けに従い、前記オリジナルアドレス情報から抽出したメモリアドレスと同じ位置にあるメモリアドレスを前記再配置アドレス情報から抽出するメモリアドレス抽出部と、
前記メモリアドレス抽出部により前記再配置アドレス情報から抽出されたメモリアドレスを出力するアドレス出力部とを有することを特徴とする。
【発明の効果】
【０００８】
本発明では、シミュレーションにおいて参照されたメモリアドレスを変換し、変換後のメモリアドレスを出力する。
変換後のメモリアドレスの出力先を、キャッシュ動作を模擬するキャッシュ動作模擬システムとすることで、変換後のメモリアドレスでのキャッシュ性能を評価することができる。
【図面の簡単な説明】
【０００９】
【図１】実施の形態１に係る性能評価シミュレータ装置の構成例を示す図。
【図２】実施の形態１に係るアドレス変換部の構成例を示す図。
【図３】実施の形態１に係る性能評価シミュレータ装置の動作例を示すフローチャート図。
【図４】実施の形態１に係るアドレス変換リスト生成動作の例を示すフローチャート図。
【図５】実施の形態１に係るアドレス変換動作の例を示すフローチャート図。
【図６】実施の形態１に係る入力アドレス情報のイメージを示す図。
【図７】実施の形態１に係るアドレス変換リストのイメージを示す図。
【図８】実施の形態１に係る性能評価シミュレータ装置のハードウェア構成例を示す図。
【発明を実施するための形態】
【００１０】
実施の形態１．
［性能評価シミュレータ装置の構成図（図１の説明）］
図１は、本実施の形態に係る性能評価シミュレータ装置１０の構成図である。
性能評価シミュレータ装置１０は、命令セットシミュレータ（Ｉｎｓｔｒｕｃｔｉｏｎ  Ｓｅｔ  Ｓｉｍｕｌａｔｏｒ）１００、アドレス変換部２００、階層キャッシュモデル３００、遅延サイクル算出／割込み生成モデル４００を備える。
命令セットシミュレータ１００は、ＩＳＳ１００とも表記する。
【００１１】
命令セットシミュレータ１００は、ＩＳＳ（Ｉｎｓｔｒｕｃｔｉｏｎ  Ｓｅｔ  Ｓｉｍｕｌａｔｏｒ）命令実行部１１０、ＩＳＳ（Ｉｎｓｔｒｕｃｔｉｏｎ  Ｓｅｔ  Ｓｉｍｕｌａｔｏｒ）メモリアクセス部１２０を備え、命令の処理動作とプログラムカウンタを模擬する。
ＩＳＳ命令実行部１１０は、命令の処理動作を模擬する命令インタプリタである。
ＩＳＳメモリアクセス部１２０は、プログラムやデータを格納するメモリを模擬するモデル（プログラム）である。
【００１２】
アドレス変換部２００は、階層キャッシュモデル３００への入力アドレス（オリジナルアドレス）を、オリジナルアドレス情報５００と再配置アドレス情報６００に従って、再配置後のアドレスに変換する。
アドレス変換部２００は、メモリアドレス管理システムの例に相当する。
【００１３】
階層キャッシュモデル３００は、キャッシュミスやキャッシュヒットなどのキャッシュ動作を模擬するキャッシュモデル（プログラム）である。
階層キャッシュモデル３００は、キャッシュ動作模擬システムの例に相当する。
【００１４】
遅延サイクル算出／割込み生成モデル４００は、分岐命令遅延モデル４１０、実行サイクル算出部４２０、アクセス遅延算出部４３０、経過時間計測部４４０を備えており、遅延サイクルの算出、割込み発生を実行するモデル（プログラム）である。
分岐命令遅延モデル４１０は、分岐命令によるパイプラインストールを模擬し、分岐遅延サイクルを算出するモデル（プログラム）である。
実行サイクル算出部４２０は、模擬する命令の実行サイクルを算出する。
アクセス遅延算出部４３０は、各種の遅延サイクルを算出する。
経過時間計測部４４０は、保持する経過時間に各種の遅延時間を加算する。
また、経過時間計測部４４０は、経過時間が割込み発生時間を超えた場合に、ＩＳＳ命令実行部１１０に対して割込みを生成する。
【００１５】
オリジナルアドレス情報５００は、データのオリジナルのアドレス配置情報である。
オリジナルアドレス情報５００では、ＩＳＳメモリアクセス部１２０が模擬しているメモリにおけるメモリアドレス群の配置が示されている。
以下では、オリジナルアドレス情報５００に示されるメモリアドレス群の配置を、オリジナルのアドレス配置という。
なお、オリジナルアドレス情報５００のイメージを図６に示す。
【００１６】
再配置アドレス情報６００は、データ再配置後のアドレス配置情報である。
再配置アドレス情報６００では、ＩＳＳメモリアクセス部１２０が模擬しているメモリにおけるメモリアドレス群がオリジナルアドレス情報５００の配置とは異なる配置で示されている。
つまり、再配置アドレス情報６００は、ＩＳＳメモリアクセス部１２０が模擬しているメモリに格納されている各データが、オリジナルのアドレス配置におけるメモリアドレスとは異なるメモリアドレスに格納されている状態を表している。
以下では、再配置アドレス情報６００に示されるメモリアドレス群の配置を、再配置後のアドレス配置という。
なお、再配置アドレス情報６００のイメージを図６に示す。
【００１７】
［入力アドレス情報イメージ図（図６の説明）］
図６は、オリジナルアドレス情報５００と、再配置アドレス情報６００のイメージを示す。
図６に示すように、オリジナルアドレス情報５００では、１００番地から２００番地までのメモリアドレス群が昇順に配置されている。
これに対して、再配置アドレス情報６００では、１００番地の次から、１９２番地の直前までの範囲のメモリアドレス群が、オリジナルのアドレス配置とは異なる配置となっている。
オリジナルアドレス情報５００の上から１行目のアドレス情報（１００番地）の再配置後のアドレスは再配置アドレス情報６００の１行目のアドレス情報（１００番地）となる。
この場合、アドレス変換を行なわない。
一方、オリジナルアドレス情報５００の上から２行目のアドレス情報（１０４番地）の再配置後のアドレスは再配置アドレス情報６００の２行目のアドレス情報（１０８番地）となる。
この場合、アドレス変換を行なう。
図６において、データ再配置イメージ７００は、オリジナルアドレス情報５００の２行目のアドレス情報（１０４番地）と再配置アドレス情報６００の２行目のアドレス情報（１０８番地）の関係を簡潔に示したイメージ図である。
このように、再配置アドレス情報６００は、ＩＳＳメモリアクセス部１２０が模擬しているメモリに格納されている各データ（プログラムを含む）の配置が変更された後の状態を表している。
つまり、再配置アドレス情報６００は、ＩＳＳメモリアクセス部１２０が模擬しているメモリにおけるデータ（プログラムを含む）とアドレスの関係が変更された状態を表している。
【００１８】
［アドレス変換部の構成図（図２の説明）］
図２は、性能評価シミュレータ装置１０が備えるアドレス変換部２００の構成例を示す。
アドレス変換部２００は、アドレス変換リスト生成部２１０、アドレス変換リスト２２０、アドレス生成部２３０を備える。
【００１９】
アドレス変換リスト生成部２１０は、アドレス情報取得部２１１、アドレス比較部２１２を備え、アドレス変換リスト２２０を生成する。
【００２０】
アドレス情報取得部２１１は、オリジナルアドレス情報５００と、再配置アドレス情報６００とを入力する。
アドレス情報取得部２１１は、オリジナルアドレス情報入力部及び再配置アドレス情報入力部の例に相当する。
【００２１】
アドレス比較部２１２は、行単位でオリジナルアドレス情報５００と再配置アドレス情報６００を比較した結果に基づいて、アドレス変換リスト２２０を生成する。
つまり、アドレス比較部２１２は、オリジナルアドレス情報５００の各メモリアドレスを、再配置アドレス情報６００の同じ行にあるメモリアドレスと対応付けて、アドレス変換リスト２２０を生成する。
アドレス比較部２１２は、アドレス対応付け部の例に相当する。
【００２２】
アドレス変換リスト２２０は、オリジナルアドレスリスト２２１、再配置アドレスリスト２２２で構成される情報である。
オリジナルアドレスリスト２２１は、アドレス変換リスト生成部２１０が出力した変換アドレス登録情報（オリジナル）の一覧情報である。
オリジナルアドレスリスト２２１のイメージを図７に示す。
また、再配置アドレスリスト２２２は、アドレス変換リスト生成部２１０が出力した変換アドレス登録情報（再配置）の一覧情報である。
再配置アドレスリスト２２２のイメージを図７に示す。
図７に示すように、オリジナルアドレスリスト２２１と再配置アドレスリスト２２２は、オリジナルアドレス情報５００と再配置アドレス情報６００との間で相互にメモリアドレスが一致していない範囲を抜き出したものである。
アドレス変換リスト２２０は、アドレス生成部２３０がアクセス可能な記憶領域に格納される。
【００２３】
アドレス生成部２３０は、アドレスチェック部２３１、アドレス生成処理部２３２、アドレス入力部２３３、アドレス出力部２３４を備え、入力アドレスに対してアドレス変換を行ない再配置後のアドレスを生成する。
【００２４】
アドレス入力部２３３は、ＩＳＳ命令実行部１１０がシミュレーションにおいて参照したオペランドアドレスを入力アドレスとして入力する。
【００２５】
アドレスチェック部２３１は、入力アドレスが変換アドレスリスト情報（オリジナル）を元に、変換対象アドレスに該当するかを判断する。
つまり、アドレスチェック部２３１は、入力アドレスと一致するメモリアドレスをオリジナルアドレスリスト２２１（つまりは、オリジナルアドレス情報５００）から抽出する。
アドレスチェック部２３１は、アドレス生成処理部２３２とともに、メモリアドレス抽出部の例に相当する。
【００２６】
アドレス生成処理部２３２は、アドレスチェック部２３１が、入力アドレスが変換対象アドレスであると判断した場合、変換アドレスリスト情報（再配置）に従って再配置後のアドレスに変換する。
つまり、アドレス生成処理部２３２は、アドレスチェック部２３１がオリジナルアドレスリスト２２１から抽出したメモリアドレスと同じ行（位置）にあるメモリアドレスを再配置アドレスリスト２２２（つまりは、再配置アドレス情報６００）から抽出する。
アドレス生成処理部２３２は、アドレスチェック部２３１とともに、メモリアドレス抽出部の例に相当する。
【００２７】
アドレス出力部２３４は、アドレス生成処理部２３２により変換された再配置後のアドレスを、階層キャッシュモデル３００に出力する。
【００２８】
このように、アドレス変換部２００は、階層キャッシュモデル３００に、ＩＳＳ命令実行部１１０がシミュレーションにおいて参照したオペランドアドレスではなく、再配置後のアドレスを出力する。
これにより、階層キャッシュモデル３００に、ＩＳＳ命令実行部１１０がシミュレーションにおいて参照したオペランドアドレスではなく、再配置後のアドレスについてのキャッシュ動作を模擬させることができる。
【００２９】
［性能評価シミュレータ装置の動作（図３の説明）］
次に、性能評価シミュレータ装置１０の動作について説明する。
図３は、性能評価シミュレータ装置１０全体の動作例を示すフローチャートである。
【００３０】
Ｓ１０では、性能評価シミュレータ装置１０のシミュレーションの対象となる対象計算機の各設定を行なう。
具体的には、ユーザーが、対象計算機の命令毎の実行サイクルテーブルを設定する。
また、ユーザーが、ＩＳＳメモリアクセス部１２０に対象計算機のプログラムをロードする。
更に、ユーザーが、ＩＳＳ命令実行部１１０で対象計算機のプログラムカウンタを設定する。
また、ユーザーが、割込みを発生させるための割込み時間を設定する。
【００３１】
Ｓ２０では、アドレス変換リスト生成部２１０が、アドレス変換リスト２２０を生成する。
アドレス変換リスト２２０を生成する詳細動作については、図４で説明する。
【００３２】
Ｓ３０では、ＩＳＳ命令実行部１１０が、設定されたプログラムカウンタを命令アドレスとし、ＩＳＳメモリアクセス部１２０から命令を取り出す。
【００３３】
Ｓ４０では、ＩＳＳ命令実行部１１０が、命令の処理動作を模擬する。
このとき、実行サイクル算出部４２０が、命令の実行サイクル（実行時間）を算出する。
また、階層キャッシュモデル３００が、命令アドレスを入力し、アクセス遅延サイクル（アクセス遅延時間）を算出する。
また、経過時間計測部４４０が、命令の実行時間とアクセス遅延時間を加算する。
【００３４】
Ｓ５０では、ＩＳＳ命令実行部１１０が、Ｓ３０で取り出した命令がメモリ参照命令かどうかの判断を行う。
【００３５】
Ｓ６０では、アドレス生成部２３０が、階層キャッシュモデル３００への入力アドレスをアドレス変換リスト２２０に従って変換する。
入力アドレスのアドレス変換の詳細動作については、図５で説明する。
【００３６】
Ｓ７０では、階層キャッシュモデル３００が、オペランドアドレスを取得し、アクセス遅延サイクルを算出する。
【００３７】
Ｓ８０では、分岐命令遅延モデル４１０が、Ｓ３０で取り出した命令が、分岐命令か判断する。
分岐命令だった場合、分岐命令遅延モデル４１０が、分岐命令処理を模擬する。
分岐成立だった場合、分岐の遅延時間を算出し、経過時間に加算する。
また、分岐成立だった場合、ＩＳＳ命令実行部１１０は、分岐先アドレスを次に実行するプログラムカウンタとして設定する。
一方、分岐不成立だった場合、ＩＳＳ命令実行部１１０は、プログラムカウンタに模擬した命令の命令長を加算し、プログラムカウンタとして設定する。
【００３８】
Ｓ９０では、遅延サイクル算出／割込み生成モデル４００が、割込み処理を模擬する。
具体的には、遅延サイクル算出／割込み生成モデル４００が、経過時間が割込み時間を超えたか判断する。
そして、経過時間が割込み時間を超えた場合、次の割込み時間を設定する。
また、プログラムカウンタをアックアップし、割込みベクターをプログラムカウンタとして再設定し、Ｓ３０に戻る。
一方、経過時間が割込み時間を超えていなかった場合、Ｓ８０で設定したプログラムカウンタでＳ３０に戻る。
【００３９】
［アドレス変換リスト生成の動作（図４の説明）］
図４は、アドレス変換リスト生成部２１０の動作例を示すフローチャートである。
図４のフローチャートは、図３のＳ２０におけるアドレス変換リスト２２０生成動作の詳細を示す。
【００４０】
Ｓ２１では、アドレス情報取得部２１１が、オリジナルアドレス情報５００と再配置アドレス情報６００を読み込む。
例えば、アドレス情報取得部２１１は、図６に例示したオリジナルアドレス情報５００と再配置アドレス情報６００を読み込む。
【００４１】
Ｓ２２では、アドレス情報取得部２１１が、オリジナルアドレス情報５００から１行分のアドレス値を取得し、再配置アドレス情報６００から１行分のアドレス値を取得する。
例えば、アドレス情報取得部２１１は、オリジナルアドレス情報５００から２行目のアドレス値（１０４番地）を取得し、再配置アドレス情報６００から２行目のアドレス値（１０８番地）を取得する。
【００４２】
Ｓ２３では、アドレス比較部２１２が、Ｓ２２でオリジナルアドレス情報５００から取得したアドレス値と再配置アドレス情報６００から取得したアドレス値が一致しているかを比較する。
アドレス値が一致していた場合（Ｓ２３でＹＥＳ）は、Ｓ２２で取得したアドレス値を破棄し、Ｓ２５の処理を実行する。
一方、アドレス値が一致しない場合（Ｓ２３でＮＯ）は、Ｓ２４の処理を実行する。
例えば、Ｓ２２においてオリジナルアドレス情報５００から２行目のアドレス値（１０４番地）を取得し、再配置アドレス情報６００から２行目のアドレス値（１０８番地）を取得している場合は、これらの値が一致しているかを判断し、両者が一致しないので、Ｓ２４の処理を実行する。
【００４３】
Ｓ２４では、アドレス比較部２１２が、オリジナルアドレス情報５００から取得したアドレス値をオリジナルアドレスリスト２２１に、再配置アドレス情報６００から取得したアドレス値を再配置アドレスリスト２２２に登録する。
例えば、オリジナルアドレス情報５００から取得したアドレス値（１０４番地）を図７のオリジナルアドレスリスト２２１の１行目に、再配置アドレス情報６００から取得したアドレス値（１０８番地）を図７の再配置アドレスリスト２２２の１行目に登録する。
【００４４】
Ｓ２５では、アドレス情報取得部２１１が、オリジナルアドレス情報５００と再配置アドレス情報６００から、それぞれ全てのアドレス情報を読み出したかを確認する。
【００４５】
まだ読み出していないアドレス情報があった場合は、Ｓ２２の処理に戻り、アドレス情報取得部２１１は次のアドレス情報を読み出す。
全てのアドレス情報を読み出した場合は、アドレス変換リスト生成動作を停止する。
つまり、図６のオリジナルアドレス情報５００と再配置アドレス情報６００の２６行全てのアドレス値を読み出すまで、Ｓ２２〜Ｓ２４の処理を実行し続ける。
各行で、アドレス値が不一致だった場合は全てオリジナルアドレスリスト２２１と再配置アドレスリスト２２２に登録される。
【００４６】
［アドレス生成部の動作（図５の説明）］
図５は、アドレス生成部２３０の動作例を示すフローチャートである。
なお、図５は、図３におけるＳ６０におけるアドレス変換動作の詳細を示す。
【００４７】
Ｓ６１では、アドレス入力部２３３が、命令セットシミュレータ１００から階層キャッシュモデル３００に入力するオリジナルアドレス（入力アドレス）を取得する。
例えば、アドレス生成部２３０は、入力アドレスとして、１５２番地を入力する。
【００４８】
Ｓ６２では、アドレスチェック部２３１は、アドレス変換リスト２２０からオリジナルアドレスリスト２２１を取得する。
具体的には、アドレスチェック部２３１は、図７のオリジナルアドレスリスト２２１の１行目から順々にアドレス値（１行目のアドレス値（１０４番地）〜２２行目のアドレス値（１８８番地））を読み出していく。
【００４９】
Ｓ６３では、アドレスチェック部２３１が、入力アドレスが、オリジナルアドレスリスト２２１に含まれているか確認する。
入力アドレスが、オリジナルアドレスリスト２２１に含まれている場合は、Ｓ６４の処理を実行する。
入力アドレスが、オリジナルアドレスリスト２２１に含まれていない場合は、Ｓ６５の処理を実行する。
例えば、アドレスチェック部２３１は、入力アドレス（１５２番地）とＳ６２で読み出したオリジナルアドレスリスト２２１の各行のアドレス値を順々に比較する。
オリジナルアドレスリスト２２１の１３行目のアドレス値（１５２番地）と入力アドレス（１５２番地）は一致したので、Ｓ６３の判定はＹＥＳとなる。
【００５０】
Ｓ６４では、アドレス生成処理部２３２が、Ｓ６３で抽出したオリジナルアドレスリスト２２１の行と同じ位置（行）に記述されているアドレス値を再配置アドレスリスト２２２から取得し、入力アドレスを再配置アドレスリスト２２２から取得したアドレス値（再配置アドレスという）に置き換える。
具体的には、アドレス生成処理部２３２は、再配置アドレスリスト２２２から、オリジナルアドレスリスト２２１の１３行目（１５２番地）と同じ位置（つまり、１３行目）に記載のアドレス値（１８０番地）を取得し、入力アドレス（１５２番地）を再配置アドレス（１８０番地）に変換する。
【００５１】
Ｓ６５では、アドレス出力部２３４が、入力アドレス、もしくは再配置アドレスを階層キャッシュモデル３００に出力する。
つまり、入力アドレスがオリジナルアドレスリスト２２１に含まれていた場合、Ｓ６４で変換した再配置アドレスを出力する。
一方、入力アドレスがオリジナルアドレスリスト２２１に含まれていなかった場合、Ｓ６１で取得した入力アドレスを出力する。
【００５２】
このように、本実施の形態に係る性能評価シミュレータ装置によれば、Ｓ／Ｗを変更せずに、データ再配置後のアドレス情報を使ってキャッシュ動作を変更し、性能評価を行なうことができる。
【００５３】
以上、本実施の形態では、Ｓ／Ｗを変更することなく、データ再配置後のキャッシュ動作を変更し、データ再配置後の性能を予測する性能評価シミュレータ装置を説明した。
【００５４】
また、以下の機能を備える性能評価シミュレータ装置を説明した。
・命令セットシミュレータ：命令の処理動作とプログラムカウンタを模擬するモデル
・アドレス変換部：階層キャッシュモデルへの入力アドレスを変換するツール
・階層キャッシュモデル：キャッシュ動作を模擬するキャッシュモデル
・遅延サイクル算出／割込み生成モデル：遅延サイクルの算出、割込み発生を実行するモデル。
【００５５】
また、以下の機能を備える性能評価シミュレータ装置を説明した。
・アドレス変換リスト生成部：アドレス変換情報を示すアドレス変換リストを生成するツール
・アドレス変換リスト：アドレス変換対応を示す情報
・アドレス生成部：アドレス変換リストに従って、階層キャッシュモデルへの入力アドレスをアドレス変換するツール。
【００５６】
更に、以下の機能を備える性能評価シミュレータ装置を説明した。
・アドレス情報取得部：アドレス変換情報（オリジナルアドレス情報、データ再配置後アドレス情報）を取得するツール
・アドレス比較部：アドレス変換情報より、アドレス変換リストを生成するツール。
【００５７】
また、性能評価シミュレータ装置が、以下のリストを含むアドレス変換リストを用いることを説明した。
・オリジナルアドレスリスト：アドレス変換対象のアドレス情報
・再配置アドレスリスト：オリジナルアドレスリストに対応した再配置後のアドレス情報。
【００５８】
また、性能評価シミュレータ装置が、以下の機能を含むアドレス生成部を備えることを説明した。
・アドレスチェック部：階層キャッシュモデルへの入力アドレスが、アドレス変換対象であるかを判断するツール
・アドレス生成処理部：階層キャッシュモデルに入力する入力アドレスが、アドレス変換対象であった場合、再配置後のアドレスに変換するツール。
【００５９】
なお、以上の説明では、アドレス比較部２１２が、行単位でオリジナルアドレス情報５００のメモリアドレスと再配置アドレス情報６００のメモリアドレスとを比較し、同じ行に記述されているメモリアドレスが異なっている場合に、それぞれのメモリアドレスをオリジナルアドレスリスト２２１と再配置アドレスリスト２２２として抜き出す例を説明した。
これに代えて、アドレス比較部２１２は、オリジナルアドレス情報５００のメモリアドレスと再配置アドレス情報６００のメモリアドレスとを比較せずに、オリジナルアドレス情報５００の各行のメモリアドレスを再配置アドレス情報６００の同じ行のメモリアドレスとを対応付けるようにしてもよい。
この場合は、図６のオリジナルアドレス情報５００（１００番地〜２００番地）と、再配置アドレス情報６００（１００番地〜２００番地）をそのままアドレス変換リストとして用いることになる。
【００６０】
最後に、本実施の形態に示した性能評価シミュレータ装置１０のハードウェア構成例を図８を参照して説明する。
性能評価シミュレータ装置１０はコンピュータであり、性能評価シミュレータ装置１０の各要素をプログラムで実現することができる。
性能評価シミュレータ装置１０のハードウェア構成としては、バスに、演算装置９０１、外部記憶装置９０２、主記憶装置９０３、通信装置９０４、入出力装置９０５が接続されている。
【００６１】
演算装置９０１は、プログラムを実行するＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）である。
外部記憶装置９０２は、例えばＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）やフラッシュメモリ、ハードディスク装置である。
主記憶装置９０３は、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）である。
通信装置９０４は、例えばＮＩＣ（Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃａｒｄ）である。
入出力装置９０５は、例えばマウス、キーボード、ディスプレイ装置等である。
【００６２】
プログラムは、通常は外部記憶装置９０２に記憶されており、主記憶装置９０３にロードされた状態で、順次演算装置９０１に読み込まれ、実行される。
プログラムは、図１に示す「〜部」として説明している機能を実現するプログラムである。
更に、外部記憶装置９０２にはオペレーティングシステム（ＯＳ）も記憶されており、ＯＳの少なくとも一部が主記憶装置９０３にロードされ、演算装置９０１はＯＳを実行しながら、図１に示す「〜部」の機能を実現するプログラムを実行する。
また、本実施の形態の説明において、「〜の判断」、「〜の判定」、「〜の抽出」、「〜の検知」、「〜の対応付け」、「〜の変換」、「〜の算出」、「〜の比較」、「〜の設定」、「〜の登録」、「〜の選択」、「〜の生成」、「〜の入力」、「〜の出力」等として説明している処理の結果を示す情報やデータや信号値や変数値が主記憶装置９０３にファイルとして記憶されている。
【００６３】
なお、図８の構成は、あくまでも性能評価シミュレータ装置１０のハードウェア構成の一例を示すものであり、性能評価シミュレータ装置１０のハードウェア構成は図８に記載の構成に限らず、他の構成であってもよい。
【符号の説明】
【００６４】
１０  性能評価シミュレータ装置、１００  命令セットシミュレータ、２００  アドレス変換部、２１０  アドレス変換リスト生成部、２１１  アドレス情報取得部、２１２  アドレス比較部、２２０  アドレス変換リスト、２２１  オリジナルアドレスリスト、２２２  再配置アドレスリスト、２３０  アドレス生成部、２３１  アドレスチェック部、２３２  アドレス生成処理部、２３３  アドレス入力部、２３４  アドレス出力部、３００  階層キャッシュモデル、４００  遅延サイクル算出／割込み生成モデル、４１０  分岐命令遅延モデル、４２０  実行サイクル算出部、４３０  アクセス遅延算出部、４４０  経過時間計測部、５００  オリジナルアドレス情報、６００  再配置アドレス情報。
【図１】
2014142682.tif 000003
【図２】
2014142682.tif 000004
【図３】
2014142682.tif 000005
【図４】
2014142682.tif 000006
【図５】
2014142682.tif 000007
【図６】
2014142682.tif 000008
【図７】
2014142682.tif 000009
【図８】
2014142682.tif 000010