(57)【要約】【課題】模擬するホストのシステムリソースを節約することのできるシミュレータを実現する。【解決手段】キャッシュヒット判定手段８は、アクセス要求のアドレスがタグ情報格納手段１０のタグ情報と一致し、かつ、状態情報格納手段１１の状態ビットが有効であった場合にキャッシュヒットと判定する。アクセス時間算出手段９は、キャッシュヒット判定手段８がキャッシュヒットと判定した場合に、そのアクセスの動作時間をキャッシュメモリモデル２に対するアクセス時間として計数する。一方、アクセス手段１２は、キャッシュヒットでもそのキャッシュヒットした情報のアクセスを主メモリモデル１に対して行う。【選択図】        図１
2004240783.tif 000002
【特許請求の範囲】
【請求項１】
主メモリと、キャッシュメモリと、演算処理装置とを備えた情報処理装置のプログラム実行動作を模擬し、その動作時間を計数するシミュレータにおいて、
前記キャッシュメモリの動作を模擬するキャッシュメモリモデルに格納されている情報に対応させた、前記主メモリの動作を模擬する主メモリモデルのアドレス情報をタグ情報として格納するタグ情報格納手段と、
前記キャッシュメモリモデルに格納されている情報と、当該情報に対応する前記主メモリモデルに格納された情報との一致状態を示す状態情報を格納する状態情報格納手段と、
前記キャッシュメモリモデルに対するアクセス要求を検出した場合、そのアクセス要求のアドレスが、前記タグ情報格納手段で格納したタグ情報と一致し、かつ、前記状態情報格納手段の状態情報が一致状態であった場合に、キャッシュヒットと判定するキャッシュヒット判定手段と、
前記キャッシュヒット判定手段がキャッシュヒットと判定した場合に、当該アクセスの動作時間を前記キャッシュメモリモデルに対するアクセス時間として計数するアクセス時間算出手段と、
前記キャッシュヒット判定手段がキャッシュヒットと判定した場合は、前記主メモリモデルに対して前記情報のアクセスを行うアクセス手段とを備えたことを特徴とするシミュレータ。
【請求項２】
主メモリと、キャッシュメモリと、演算処理装置とを備えた情報処理装置のプログラム実行動作を模擬し、その動作時間を計数するシミュレータにおいて、
前記キャッシュメモリの動作を模擬するキャッシュメモリモデルに格納されている命令に対応させた、前記主メモリの動作を模擬する主メモリモデルのアドレス情報をタグ情報として格納するタグ情報格納手段と、
前回の命令アクセスのタグ情報を保存する前回アクセスタグ情報格納手段と、
前記キャッシュメモリモデルに対するアクセス要求が命令アクセスであり、かつ、当該アクセス要求のアドレスが前記前回アクセスタグ情報と一致した場合は、キャッシュヒットと判定するキャッシュヒット判定手段と、
前記キャッシュヒット判定手段がキャッシュヒットと判定した場合に、当該アクセスの動作時間を前記キャッシュメモリモデルに対するアクセス時間として計数するアクセス時間算出手段と、
前記キャッシュヒット判定手段がキャッシュヒットと判定した場合は、前記主メモリモデルから前記命令の読み取りを行うアクセス手段とを備えたことを特徴とするシミュレータ。
【請求項３】
主メモリと、キャッシュメモリと、演算処理装置とを備えた情報処理装置のプログラム実行動作を模擬し、その動作時間を計数するシミュレータにおいて、
前記キャッシュメモリの動作を模擬するキャッシュメモリモデルに格納されているデータに対応させた、前記主メモリの動作を模擬する主メモリモデルのアドレス情報をタグ情報として格納するタグ情報格納手段と、
前記キャッシュメモリモデルに格納されているデータと、当該データに対応する前記主メモリモデルに格納されたデータとの一致状態を示す状態情報を格納する状態情報格納手段と、
前記キャッシュメモリモデルへの前回のデータアクセスのタグ情報を保存する前回アクセスタグ情報格納手段と、
前回のデータアクセスのデータに対して、前記キャッシュメモリモデルに格納されている情報と、当該情報に対応する前記主メモリモデルに格納された情報との一致状態を示す状態情報を格納する前回状態情報格納手段と、
前記キャッシュメモリモデルに対するアクセス要求がデータアクセスであった場合、当該要求のアドレスが前記前回アクセスタグ情報と一致し、かつ、前記前回状態情報が一致状態であった場合は、キャッシュヒットと判定するキャッシュヒット判定手段と、
前記キャッシュヒット判定手段がキャッシュヒットと判定した場合に、当該アクセスの動作時間を前記キャッシュメモリモデルに対するアクセス時間として計数するアクセス時間算出手段と、
前記キャッシュヒット判定手段がキャッシュヒットと判定した場合は、前記主メモリモデルに対して前記データアクセスを行うアクセス手段とを備えたことを特徴とするシミュレータ。
【請求項４】
主メモリと、キャッシュメモリと、演算処理装置とを備えた情報処理装置のプログラム実行動作を模擬し、その動作時間を計数するシミュレータにおいて、
前記キャッシュメモリの動作を模擬するキャッシュメモリモデルに格納されている命令またはデータに対応させた、前記主メモリの動作を模擬する主メモリモデルのアドレス情報をタグ情報として格納するタグ情報格納手段と、
前記キャッシュメモリモデルに格納されているデータと、当該データに対応する前記主メモリモデルに格納されたデータとの一致状態を示す状態情報を格納する状態情報格納手段と、
前記キャッシュメモリモデルへの前回の命令またはデータアクセスのタグ情報を保存する前回アクセスタグ情報格納手段と、
前記キャッシュメモリモデルへの前回のデータアクセスのデータに対して、前記キャッシュメモリモデルに格納されているデータと、当該データに対応する前記主メモリモデルに格納されたデータとの一致状態を示す状態情報を格納する前回状態情報格納手段と、
前記キャッシュメモリモデルに対するアクセス要求が命令アクセスであり、かつ、当該アクセス要求のアドレスが前記アクセスタグ情報格納手段の前回命令アクセスタグ情報と一致した場合、および、前記キャッシュメモリモデルに対するアクセス要求がデータアクセスであり、かつ、当該アクセス要求のアドレスが前記前回アクセスタグ情報格納手段の前回アクセスタグ情報と一致すると共に、前記前回状態情報格納手段の状態情報が一致状態であった場合は、キャッシュヒットと判定するキャッシュヒット判定手段と、
前記キャッシュヒット判定手段がキャッシュヒットと判定した場合に、当該アクセスの動作時間を前記キャッシュメモリモデルに対するアクセス時間として計数するアクセス時間算出手段と、
前記キャッシュヒット判定手段がキャッシュヒットと判定した場合は、前記主メモリモデルに対して前記命令またはデータのアクセスを行うアクセス手段とを備えたことを特徴とするシミュレータ。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ハードウェアの制御にＣＰＵを利用する装置を、ワークステーションなどのホスト上でその動作を再現するシミュレータに関する。
【０００２】
【従来の技術】
従来、ワークステーションなどのホスト上で、あるターゲットのハードウェアをモデル化し、そのＣＰＵモデルの動作を模擬（シミュレート）し、そのターゲットの動作に必要な時間を積算するシミュレータがあった。
このようなシミュレータは、命令を一つずつ命令メモリから取り出し、解析した結果に基づき逐一実行し、必要時間を算出する方法で処理を進めていた（例えば、特許文献１参照。）。
【０００３】
図９は、従来のシミュレータの構成図である。
図示のように、シミュレータは、ＲＯＭモデルとＲＡＭモデルから構成されている主メモリモデル１０１、キャッシュコントローラモデルとＲＡＭモデルで構成されているキャッシュメモリモデル１０２、主メモリモデル１０１に格納されている命令を解釈し実行するＣＰＵモデル１０３と、ＣＰＵモデル１０３等が必要としたシミュレーション時間を測定する計数部１０４からなる。また、キャッシュメモリモデル１０２は、第１レベル（Ｌ１）キャッシュメモリモデル１０５（命令用第１レベル（Ｌ１）キャッシュメモリモデル１０５ａおよびデータ用第１レベル（Ｌ１）キャッシュメモリモデル１０５ｂ）と、第２レベル（Ｌ２）キャッシュメモリモデル１０６からなる。
【０００４】
このようなキャッシュメモリモデル１０２は、ホストのメモリ上にキャッシュメモリの動作を模擬するためのキャッシュ情報格納モデル１０７を設けている。キャッシュ情報格納モデル１０７は、キャッシュメモリモデル１０２に格納している情報（命令・データ）に対応する主メモリモデル１０１のアドレスを記憶しているタグ１０８と、キャッシュの状態を示す状態ビット１０９と、情報を格納しているメモリ領域１１０からなる。
【０００５】
キャッシュメモリは、ラインと呼ばれる単位で管理されており、１ラインには連続したアドレスを持つ複数バイトの情報が格納されている（ここでは１６バイト単位とする）。例えば、アドレス０ｘ１２３４５６７０から０ｘ１２３４５６７Ｆの値がキャッシュメモリにキャッシュされている場合、タグ１０８の値は０ｘ１２３４５６７であり、そのラインに０ｘ１２３４５６７０から０ｘ１２３４５６７Ｆ迄の値がキャッシュされている。ライン当たりのバイト数は、シミュレータの初期設定において適当な大きさにすることが可能である。また、Ｌ２キャッシュメモリのラインは、Ｌ１キャッシュメモリのそれ以上の大きさとなっている。
状態ビット１０９はライン毎に設定されており、そのラインのキャッシュが有効・変更済み・無効等の状態を表している。
【０００６】
図１０は、従来のシミュレータの全体の処理を示すフローチャートである。
先ず、ＣＰＵモデル１０３は実行すべき命令のアドレスを取得する（ステップＳ１０１）。次に、キャッシュメモリモデル１０２をチェックし、命令取得時間（ペナルティ）を算出し、命令を読み取る（ステップＳ１０２）。その後、その命令を解釈し、実行する（ステップＳ１０３）。実行の際、データの読み取り・書き込みが必要ならば、キャッシュメモリモデル１０２をチェックし、データ取得時間（ペナルティ）を算出し、データの読み書きを行う（ステップＳ１０４、Ｓ１０５）。次に、実行にかかった時間を計算し、ＣＰＵモデル１０３のサイクル（シミュレーション時間）を更新する（ステップＳ１０６）。最後に、模擬終了の判定を行う（ステップＳ１０７）。
【０００７】
図１１は、従来のシミュレータにおけるキャッシュチェックの処理を示すフローチャートである。
先ず、該当する命令用またはデータ用Ｌ１キャッシュメモリモデル１０５ａ、１０５ｂのタグ１０８を検索し（ステップＳ２０１）、該当するタグがあるかを調べる（ステップＳ２０２）。このステップＳ２０２において、該当するタグが無ければＬ２キャッシュメモリモデル１０６のタグ１０８を検索する（ステップＳ２０２）。それでも該当するタグが無ければキャッシュミスとなる。一方、ステップＳ２０２において、キャッシュメモリモデル１０２内のタグがあった、つまりキャッシュヒットならば、状態ビット１０９を調査し（ステップＳ２０３）、無効でなければキャッシュヒットとなる。キャッシュヒットしたのならば、ペナルティを算出し（ステップＳ２０４）、該当するキャッシュメモリモデル１０２のメモリ領域１１０より命令・データの読み書きを行い、必要に応じて状態ビット１０９を変更する（ステップＳ２０５）。キャッシュミスしたのならば、ペナルティを算出し（ステップＳ２０６）、主メモリモデル１０１より命令・データの読み書きを行い、該当するキャッシュしているメモリの内容とタグと状態ビットを更新する（ステップＳ２０７）。
【０００８】
【特許文献１】
特開２００１−２４９８２９号公報
【０００９】
【発明が解決しようとする課題】
しかしながら、上記のような従来のシミュレータでは、キャッシュメモリモデルの分だけ、シミュレーションするホストのメモリを使用してしまい、ホストのシステムリソースを圧迫する恐れがあった。
また、毎回、キャッシュメモリをチェックするため、シミュレータとしての動作速度が低下してしまう、特に、タグを検索するための時間が多くかかってしまうという問題点を有していた。
【００１０】
【課題を解決するための手段】
本発明は、前述の課題を解決するため次の構成を採用する。
本発明のシミュレータは、主メモリと、キャッシュメモリと、演算処理装置とを備えた情報処理装置のプログラム実行動作を模擬し、その動作時間を計数するシミュレータにおいて、キャッシュメモリの動作を模擬するキャッシュメモリモデルに格納されている情報に対応させた、主メモリの動作を模擬する主メモリモデルのアドレス情報をタグ情報として格納するタグ情報格納手段と、キャッシュメモリモデルに格納されている情報と、その情報に対応する主メモリモデルに格納された情報との一致状態を示す状態情報を格納する状態情報格納手段と、キャッシュメモリモデルに対するアクセス要求を検出した場合、そのアクセス要求のアドレスが、タグ情報格納手段で格納したタグ情報と一致し、かつ、状態情報格納手段の状態情報が一致状態であった場合に、キャッシュヒットと判定するキャッシュヒット判定手段と、キャッシュヒット判定手段がキャッシュヒットと判定した場合に、そのアクセスの動作時間をキャッシュメモリモデルに対するアクセス時間として計数するアクセス時間算出手段と、キャッシュヒット判定手段がキャッシュヒットと判定した場合は、主メモリモデルに対して情報のアクセスを行うアクセス手段とを備えたことを特徴とするものである。
【００１１】
【発明の実施の形態】
以下、本発明の実施の形態を具体例を用いて詳細に説明する。
《具体例１》
〈構成〉
図１は、本発明のシミュレータの具体例１を示す構成図である。
図示のシミュレータは、主メモリモデル１、キャッシュメモリモデル２、ＣＰＵモデル３からなり、キャッシュメモリモデル２は、Ｌ１キャッシュメモリモデル４（命令用Ｌ１キャッシュメモリモデル４ａ、データ用Ｌ１キャッシュメモリモデル４ｂ）、Ｌ２キャッシュメモリモデル５を含んでいる。
【００１２】
主メモリモデル１は、ＲＯＭモデルとＲＡＭモデルとからなる主メモリの動作を模擬するモデルである。命令用Ｌ１キャッシュメモリモデル４ａおよびデータ用Ｌ１キャッシュメモリモデル４ｂは、キャッシュコントローラとＲＡＭで構成されているＬ１キャッシュメモリの動作を模擬するものである。Ｌ２キャッシュメモリモデル５は、Ｌ２キャッシュメモリの動作を模擬するモデルである。ＣＰＵモデル３は、主メモリに格納されている命令を解釈し実行する演算装置の動作を模擬するモデルである。尚、本具体例でも計数部を備えているが、従来と同様の構成であるためここでの説明は省略する。
【００１３】
キャッシュメモリモデル２は、キャッシュコントローラモデル６とキャッシュ情報格納モデル７を備えている。キャッシュコントローラモデル６は、キャッシュコントローラの動作を模擬するモデルであり、キャッシュヒット判定手段８とアクセス時間算出手段９を備えている。また、キャッシュ情報格納モデル７は、キャッシュメモリのタグや状態ビットといったキャッシュ情報を模擬するためのものであり、タグ情報格納手段１０と状態情報格納手段１１とを備えている。
【００１４】
タグ情報格納手段１０は、キャッシュメモリモデル２に格納されているとした情報（命令・データ）に対応させた、主メモリモデル１のアドレス情報をタグ情報として格納する機能を有している。状態情報格納手段１１は、キャッシュメモリモデル２に格納されているとした情報と、この情報に対応する主メモリモデル１に格納された情報との一致状態を示す状態情報（状態ビット）を格納する機能を有している。即ち、本具体例では、キャッシュしているメモリを実装していないが、実装しているものとしてタグと状態ビットが設定されている。例えば、ラインの長さが１６で、タグの値が０ｘ１２３４５６７であったとしたら、そのラインに、アドレス０ｘ１２３４５６７０から０ｘ１２３４５６７Ｆの値がキャッシュされていると見なされる。ライン当たりのバイト数は、シミュレータの初期設定において適当な大きさにすることが可能である。状態ビットは、ライン毎に設定されており、そのラインのキャッシュが有効・変更済み・無効等の状態を示している。尚、状態ビットの「変更済み」とは、キャッシュメモリに保持されているデータが変更されていることを示しており、ＣＰＵが主メモリに書き戻しを行うか否かを判断するための状態ビットである。
【００１５】
キャッシュヒット判定手段８は、ＣＰＵモデル３からのキャッシュメモリモデル２に対するアクセス要求を検出した場合、そのアクセス要求のアドレスが、タグ情報格納手段１０で格納したタグ情報と一致し、かつ、状態情報格納手段１１の状態情報が一致状態であった場合に、キャッシュヒットと判定する機能を有している。アクセス時間算出手段９は、キャッシュヒット判定手段８がキャッシュヒットと判定した場合に、そのアクセスの動作時間をキャッシュメモリに対するアクセス時間として計数する機能を有している。
【００１６】
また、本具体例のシミュレータでは、アクセス手段１２を備えている。このアクセス手段１２は、キャッシュヒット判定手段８がキャッシュヒットと判定した場合は、主メモリモデル１に対して、キャッシュヒットした情報のアクセスを行う機能を有している。
【００１７】
〈動作〉
次に、具体例１の動作について説明する。
具体例１における全体の処理の基本的な流れは図１０で示した従来の動作と同様であるため、ここでの説明は省略し、キャッシュチェックの処理を説明する。
図２は、具体例１におけるキャッシュチェックのフローチャートである。
先ず、該当するＬ１キャッシュメモリモデル４のタグ情報格納手段１０におけるタグを検索し（ステップＳ１）、該当するタグがあるかを調べる（ステップＳ２）。無ければＬ２キャッシュメモリモデル５のタグを検索する。それでもなければキャッシュミスとなる。キャッシュメモリ内のタグがあった、つまりキャッシュヒットならば、状態情報格納手段１１における状態ビットを調査し（ステップＳ３）、無効でなければキャッシュヒット判定手段８はキャッシュヒットと判定する。キャッシュヒットしたのならば、アクセス時間算出手段９は、情報取得時間（ペナルティ）を算出し、必要に応じてタグと状態ビットを変更する（ステップＳ４）。キャッシュミスしたのならば、情報取得時間（ペナルティ）を算出し、必要に応じてタグと状態ビットを変更する（ステップＳ５）。
【００１８】
次に、キャッシュヒット・キャッシュミスにかかわらず、アクセス手段１２は、命令またはデータを主メモリモデル１より読み取る、または、書き込む（ステップＳ６）。ここで、キャッシュヒットした場合には、書き込みの場合に主メモリモデル１とキャッシュメモリモデル２とのデータを一致させているため、主メモリモデル１から命令の読み取りまたはデータの読み取り・書き込みを行い、ペナルティだけをキャッシュメモリにキャッシュヒットした場合とする。即ち、アクセス時間算出手段９は、キャッシュヒットした場合のアクセス時間をＣＰＵモデル３に通知し、実際にアクセス手段１２がアクセスした時間はアクセス時間としては算出しない。尚、これらのアクセス時間は、Ｌ１キャッシュメモリモデル４でキャッシュヒットしたか、Ｌ２キャッシュメモリモデル５でキャッシュヒットしたか等に基づいてアクセス時間算出手段９において予め決められている。
【００１９】
このような動作は、シミュレータの場合、キャッシュメモリモデルも実際には主メモリモデル１と同様に主メモリ上に展開されていることから、データのアクセス動作そのものは、キャッシュメモリと主メモリとでほとんど同様と見なすことができるからである。
また、データの書き込みでキャッシュヒットした場合、データは主メモリモデル１に書き込むが、その状態ビットは「変更済み」とする。これにより、実際のキャッシュメモリと同様のシミュレーションを行うことができる。
【００２０】
一方、キャッシュミスの場合は、Ｌ１キャッシュメモリモデル４またはＬ２キャッシュメモリモデル５とＣＰＵモデル３から主メモリモデル１へのデータアクセスが発生するため、従来と同様のペナルティの算出が可能となる。このように、キャッシュメモリにキャッシュしているメモリを省略しても、キャッシュメモリのタグと状態ビットを模擬すれば、ペナルティの算出は可能であることが分かる。
また、シミュレータであるため、主メモリとキャッシュメモリからの読み取る場合の時間はホスト上では変わらない。ただ、必要とされるリソースが軽減されるため、ホスト上の時間は短くなる場合がある。
【００２１】
〈効果〉
以上のように、具体例１によれば、キャッシュメモリモデル２のタグと状態ビットに基づいてペナルティを算出し、キャッシュメモリモデルの命令またはデータへのアクセス時間とし、命令またはデータのアクセスは別途主メモリモデル１に対して行うようにしたので、模擬するホストのメモリを節約することができる。
【００２２】
《具体例２》
具体例２のシミュレータは、命令の前回アクセスタグを設け、アクセス要求命令のアドレスが前回アクセスタグと一致した場合は、タグの検索および状態ビットの調査をすることなく、キャッシュヒットと判定するようにしたものである。
【００２３】
〈構成〉
図３は、具体例２の構成図である。
具体例３のシミュレータは、キャッシュ情報格納モデル７として、命令用Ｌ１キャッシュメモリモデル４ａに対する前回アクセスタグ情報格納手段１３を備えている。
前回アクセスタグ情報格納手段１３は、命令用Ｌ１キャッシュメモリモデル４ａに対する前回の命令アクセスのタグ情報を保存する機能を有するものである。
【００２４】
具体例２のキャッシュヒット判定手段８ａは、具体例１のキャッシュヒット判定手段８と同様の機能を有する共に、キャッシュメモリに対するアクセス要求が命令アクセスで、かつ、そのアクセス要求のアドレスが前回アクセスタグ情報格納手段１３の前回アクセスタグと一致した場合は、その時点でキャッシュヒットと判定する機能を有している。また、アクセス時間算出手段９は、具体例１のアクセス時間算出手段９と同様の機能を有している。
【００２５】
アクセス手段１２は、具体例１と同様の機能を有している。即ち、キャッシュヒット判定手段８ａが、命令アクセスで前回アクセスタグと一致したことでキャッシュヒットと判定した場合は、その命令を主メモリモデル１から読み取る機能を有している。
これ以外の構成は、具体例１と同様であるため、対応する部分に同一符号を付してその説明を省略する。
【００２６】
〈動作〉
具体例２においても、シミュレータとしての全体の処理の流れは具体例１と同様であるため、ここでの説明は省略し、キャッシュチェックの処理を説明する。
図４は、具体例２におけるキャッシュチェックのフローチャートである。
先ず、アクセス要求が命令の読み取りのためならば、キャッシュヒット判定手段８ａは、命令のアドレスからタグを算出し、そのタグが命令用Ｌ１キャッシュメモリモデル４ａに対応した前回アクセスタグ情報格納手段１３の前回アクセスタグと一致するか否かを調べる（ステップＳ１１）。一致したならば、キャッシュヒット判定手段８ａはキャッシュヒットしたと見なし、アクセス時間算出手段９はペナルティの算出を行い、更にアクセス手段１２によりその命令を主メモリモデル１から読み取る（ステップＳ１５、ステップＳ１７）。
【００２７】
ここで、前回アクセスタグと命令アドレスのタグが一致しただけでキャッシュヒットと判定しているが、これは、命令用Ｌ１キャッシュメモリにはＣＰＵからの書き込みは発生しない（状態ビットの変更も起きない）ため、前回キャッシュヒットしたライン（前回キャッシュヒットしたタグ）については必ずキャッシュヒットし、また、前回キャッシュミスしたラインであっても命令用Ｌ１キャッシュメモリが更新されているので必ずキャッシュヒットするからである。
【００２８】
また、全ての命令でタグの検索を行わなくてもよいため、ホストから見たシミュレータの速度を向上させることができる。特に、これは、キャッシュメモリのサイズを大きくしたり、１ラインの大きさを大きくしたり、連続したアドレスの命令が実行された場合に顕著となる。
【００２９】
一方、ステップＳ１１において、前回アクセスタグと一致しない場合はステップＳ１２以降の処理を行う。ステップＳ１２〜ステップＳ１７の処理は、具体例１におけるステップＳ１〜ステップＳ６の処理と同様である。また、ステップＳ１８では、命令の読み取りアクセスであった場合は、アクセスした命令のアドレスから算出したタグを前回アクセスタグ情報格納手段１３の前回アクセスタグに保存し、終了する。
【００３０】
〈効果〉
以上のように、具体例２によれば、具体例１の構成に加えて、命令アクセスのための前回アクセスタグ情報格納手段１３を設け、命令のアクセス要求のタグが前回アクセスタグと一致した場合は、直ちにキャッシュヒットと判定するようにしたので、シミュレータとしての速度向上を図ることができる。
【００３１】
《具体例３》
具体例３は、データ用の前回アクセスタグと前回アクセス状態ビットを設け、アクセス要求データのアドレスが前回アクセスタグと一致し、かつ、その状態ビットが有効であった場合は、タグを検索することなく、キャッシュヒットと判定するようにしたものである。
【００３２】
〈構成〉
図５は、具体例３の構成図である。
具体例３のシミュレータは、キャッシュ情報格納モデル７として、データ用Ｌ１キャッシュメモリモデル４ｂに対する前回アクセスタグ情報格納手段１４と前回状態情報格納手段１５を備えている。
前回アクセスタグ情報格納手段１４は、データ用Ｌ１キャッシュメモリモデル４ｂに対する前回のデータアクセスのタグ情報を保存する機能を有し、リード用前回アクセスタグ１４ａとライト用前回アクセスタグ１４ｂを備えている。これらは、データのリードとライトとに対応した前回アクセスタグを保存するためのものである。
【００３３】
前回状態情報格納手段１５は、リード用前回アクセスタグ１４ａおよびライト用前回アクセスタグ１４ｂに対応した状態ビットを示すものであり、これらの前回アクセスタグに対応して、リード用前回アクセス状態ビット１５ａおよびライト用前回アクセス状態ビット１５ｂを備えている。
【００３４】
具体例３のキャッシュヒット判定手段８ｂは、キャッシュメモリに対するアクセス要求がデータであり、かつ、そのデータのアドレスが前回アクセスタグ情報格納手段１４のリード用前回アクセスタグ１４ａまたはライト用前回アクセスタグ１４ｂのタグと一致し、かつ、一致したリード用前回アクセスタグ１４ａまたはライト用前回アクセスタグ１４ｂに対応したリード用前回アクセス状態ビット１５ａまたはライト用前回アクセス状態ビット１５ｂの状態ビットが有効であった場合は、その時点でキャッシュヒットと判定する機能を有している。尚、このようにリード用／ライト用のアクセスタグおよび状態ビットを設けているため、リード／ライトを区別しない場合に比べて前回アクセスタグに一致する確率は高くなる。
図５における他の各構成は、具体例１、２と同様であるため、対応する部分に同一符号を付してその説明を省略する。
【００３５】
〈動作〉
具体例３においても、シミュレータとしての全体の処理の流れは具体例１、２と同様であるため、ここでの説明は省略し、キャッシュチェックの処理を説明する。
図６は、具体例３におけるキャッシュチェックのフローチャートである。
先ず、データの読み取り（書き込み）のためならば、そのアドレスからタグを算出し、そのタグがリード用前回アクセスタグ１４ａまたはライト用前回アクセスタグ１４ｂと一致するか否かを調べる（ステップＳ２１）。一致するならば、更にリード用前回アクセス状態ビット１５ａまたはライト用前回アクセス状態ビット１５ｂを調べ（ステップＳ２２）、その状態ビットが無効でなければキャッシュヒット判定手段８ｂはキャッシュヒットしたと見なす。そしてキャッシュヒット判定手段８ｂがキャッシュヒットと判定した場合は、アクセス時間算出手段９はペナルティの算出を行い、また、アクセス手段１２は主メモリモデル１からデータを読み取るまたは書き込む（ステップＳ２６、ステップＳ２８）。
【００３６】
ここで、リード用前回アクセスタグ１４ａまたはライト用前回アクセスタグ１４ｂと、アクセス要求データのアドレスのタグが一致し、リード用前回アクセス状態ビット１５ａまたはライト用前回アクセス状態ビット１５ｂが無効でなければキャッシュヒットとしているが、これは、前回キャッシュヒットしたライン（前回キャッシュヒットしたタグ）で、前回アクセス状態ビットが無効でなければ必ずキャッシュヒットし、また、前回キャッシュミスしたラインであっても、データ用Ｌ１キャッシュメモリモデル４ｂが更新され、リード用前回アクセス状態ビット１５ａまたはライト用前回アクセス状態ビット１５ｂが無効でなければキャッシュヒットするからである。
尚、キャッシュの書き込みの際に状態ビットを無効とする場合があるため、状態ビットを必ずチェックしている。
【００３７】
また、全てのデータでタグの検索を行わなくてよいため、ホストから見たシミュレータの速度を向上させることができる。特に、これは、キャッシュメモリのサイズを大きくしたり、１ラインの大きさを大きくしたり、データアクセスが連続したアドレスに発生した場合に顕著となる。
【００３８】
一方、ステップＳ２１において、リード用前回アクセスタグ１４ａまたはライト用前回アクセスタグ１４ｂと一致しない場合およびステップＳ２２において、リード用前回アクセス状態ビット１５ａまたはライト用前回アクセス状態ビット１５ｂが無効であった場合は、ステップＳ２３以降の処理を行う。ステップＳ２３〜ステップＳ２８の処理は、具体例１におけるステップＳ１〜ステップＳ６の処理と同様である。また、ステップＳ２９では、リード用前回アクセスタグ１４ａまたはライト用前回アクセスタグ１４ｂに、アクセスしたデータのアドレスから算出したタグを保存し、かつ、リード用前回アクセス状態ビット１５ａまたはライト用前回アクセス状態ビット１５ｂを更新する。
【００３９】
〈効果〉
以上説明したように、具体例３によれば、データ用Ｌ１キャッシュメモリモデル４ｂに対応した前回アクセスタグ情報格納手段１４と前回アクセスタグ情報格納手段１４とを設け、アクセス要求データのタグと、前回アクセスタグが一致し、かつ、その前回状態ビットが無効でなかった場合は、即座にキャッシュヒットと判定するようにしたので、ホストから見たシミュレータの速度を向上させることができる。
【００４０】
《具体例４》
具体例４は、Ｌ２キャッシュメモリモデル５へのデータアクセス時のシミュレーションに関するものである。
【００４１】
〈構成〉
図７は、具体例４の構成図である。
具体例４のシミュレータは、キャッシュ情報格納モデル７として、Ｌ２キャッシュメモリモデル５に対する前回アクセスタグ情報格納手段１６と前回状態情報格納手段１７を備えている。
前回アクセスタグ情報格納手段１６は、Ｌ２キャッシュメモリモデル５に対する前回の命令アクセスとデータアクセスのタグ情報を保存する機能を有し、命令用前回アクセスタグ１６ａとデータ用前回アクセスタグ１６ｂを備えている。これらは、命令とデータに対応した前回アクセスタグを保存するためのものである。
前回状態情報格納手段１７は、データ用前回アクセス状態ビット１７ａを備えている。このデータ用前回アクセス状態ビット１７ａは、データ用前回アクセスタグ１６ｂに対応したデータに対応した状態ビットを示すものである。
【００４２】
具体例４のキャッシュヒット判定手段８ｃは、キャッシュメモリに対するアクセス要求が命令であり、かつ、そのアクセス要求のアドレスが命令用前回アクセスタグ１６ａと一致した場合、および、キャッシュメモリに対するアクセス要求がデータであり、かつ、そのアクセス要求のアドレスがデータ用前回アクセスタグ１６ｂと一致すると共に、データ用前回アクセス状態ビット１７ａが有効であった場合は、その時点でキャッシュヒットと判定する機能を有している。
図７における他の各構成は、具体例１〜３と同様であるため、対応する部分に同一符号を付してその説明を省略する。
【００４３】
〈動作〉
具体例４においても、シミュレータとしての全体の処理の流れは具体例１〜３と同様であるため、ここでの説明は省略し、キャッシュチェックの処理を説明する。
図８は、具体例４におけるキャッシュチェックのフローチャートである。
Ｌ１キャッシュメモリモデル４からＬ２キャッシュメモリモデル５へのアクセスが発生した場合、そのアドレスからタグを算出し、命令用前回アクセスタグ１６ａまたはデータ用前回アクセスタグ１６ｂと一致するか否かを調べる（ステップＳ３１）。どちらかのタグが一致した場合、データアクセスか否かを判定する（ステップＳ３２）。このステップＳ３２においてデータアクセスでない、つまり命令アクセスならば、その時点でＬ２キャッシュメモリモデル５のキャッシュヒットと見なす。
【００４４】
ステップＳ３２において、データアクセスであったならばデータ用前回アクセス状態ビット１７ａを調べ（ステップＳ３３）、状態ビットが無効でなければ、Ｌ２キャッシュメモリモデル５のキャッシュヒットと見なす。Ｌ２キャッシュメモリモデル５のキャッシュヒットと見なされたならば、アクセス時間算出手段９はペナルティの算出を行い、また、アクセス手段１２により、主メモリモデル１から命令を読み取る、またはデータのリード／ライトを行う（ステップＳ３７、ステップＳ３９）。
【００４５】
ここで、命令用前回アクセスタグ１６ａまたはデータ用前回アクセスタグ１６ｂが一致し、また、データの場合はデータ用前回アクセス状態ビット１７ａが無効でなければキャッシュヒットとしている。これは、命令の場合はＬ２キャッシュメモリにはＣＰＵからの書き込みは発生しない（状態ビットの変更も起きない）ため、前回キャッシュヒットしたライン（前回キャッシュヒットしたタグ）については必ずキャッシュヒットし、また、前回キャッシュミスしたラインであっても、Ｌ２キャッシュメモリが更新されているので必ずキャッシュヒットするからである。
尚、データの場合、キャッシュの書き込みの際に状態ビットを無効とすることがあるため、状態ビットを必ずチェックしている。
【００４６】
また、全てのデータでタグの検索を行わなくてよいため、ホストから見たシミュレータの速度を向上させることができる。特に、これは、キャッシュメモリのサイズを大きくしたり、１ラインの大きさを大きくしたり、データアクセスが連続したアドレスに発生した場合に顕著となる。
【００４７】
一方、ステップＳ３１において、命令用前回アクセスタグ１６ａまたはデータ用前回アクセスタグ１６ｂと一致しない場合およびステップＳ３３において、データ用前回アクセス状態ビット１７ａが無効であった場合は、ステップＳ３４以降の処理を行う。ステップＳ３４〜ステップＳ３９の処理は、具体例１におけるステップＳ１〜ステップＳ６の処理と同様である。
また、ステップＳ４０では、アクセスした命令やデータのアドレスから算出したタグ、状態ビットを、命令用前回アクセスタグ１６ａやデータ用前回アクセスタグ１６ｂおよびデータ用前回アクセス状態ビット１７ａに保存し、終了する。
【００４８】
〈効果〉
以上説明したように、具体例４によれば、Ｌ２キャッシュメモリモデル５において、命令の読み取りの際のタグと前回アクセスタグが一致した場合、また、データの読み取り・書き込みの際のタグと、前回アクセスタグが一致し、かつ、その前回状態ビットが無効で無かった場合は、即座にキャッシュヒットと判定するようにしたので、ホストから見たシミュレータの速度を向上させることができる。
【００４９】
《利用形態》
・上記具体例２では命令用Ｌ１キャッシュメモリモデル４ａに関する構成、具体例３ではデータ用Ｌ１キャッシュメモリモデル４ｂに関する構成としたがこれらの構成を組み合わせてもよい。
・具体例３では前回アクセスタグや前回アクセス状態ビットを、リード／ライト用別々に設けたが、これらリード／ライトの区別を行わない前回アクセスタグや前回アクセス状態ビットとしてもよい。また、具体例４において、具体例３のように、前回データアクセスに関して前回アクセスタグや前回アクセス状態ビットをリード／ライト別々に設けてもよい。
【００５０】
【発明の効果】
以上のように、本発明によれば、キャッシュメモリモデルにキャッシュヒットした場合は、このアクセスの動作時間をキャッシュメモリモデルに対するアクセス時間として計数し、キャッシュヒットした情報は、別途主メモリモデルに対してアクセスするようにしたので、実行時間を正確に模擬することができる、かつ、ホスト上のキャッシュメモリモデルのためのメモリ領域を不要とすることができるため、模擬するホストのシステムリソースを節約することができる。また、シミュレータの速度を向上させることができる。
【図面の簡単な説明】
【図１】本発明の具体例１のシミュレータの構成図である。
【図２】具体例１におけるキャッシュチェックのフローチャートである。
【図３】本発明の具体例２のシミュレータの構成図である。
【図４】具体例２におけるキャッシュチェックのフローチャートである。
【図５】本発明の具体例３のシミュレータの構成図である。
【図６】具体例３におけるキャッシュチェックのフローチャートである。
【図７】本発明の具体例４のシミュレータの構成図である。
【図８】具体例４におけるキャッシュチェックのフローチャートである。
【図９】従来のシミュレータの構成図である。
【図１０】従来のシミュレータにおける全体の処理を示すフローチャートである。
【図１１】従来のシミュレータにおけるキャッシュチェックのフローチャートである。
【符号の説明】
１  主メモリモデル
２  キャッシュメモリモデル
３  ＣＰＵモデル
４  Ｌ１キャッシュメモリモデル
５  Ｌ２キャッシュメモリモデル
８、８ａ、８ｂ、８ｃ  キャッシュヒット判定手段
９  アクセス時間算出手段
１０  タグ情報格納手段
１１  状態情報格納手段
１２  アクセス手段
１３、１４、１６  前回アクセスタグ情報格納手段
１５、１７  前回状態情報格納手段
【図１】
2004240783.tif 000003
【図２】
2004240783.tif 000004
【図３】
2004240783.tif 000005
【図４】
2004240783.tif 000006
【図５】
2004240783.tif 000007
【図６】
2004240783.tif 000008
【図７】
2004240783.tif 000009
【図８】
2004240783.tif 000010
【図９】
2004240783.tif 000011
【図１０】
2004240783.tif 000012
【図１１】
2004240783.tif 000013