(57)【特許請求の範囲】
【請求項１】
試験装置と、
先行命令のアクセス先仮想メモリアドレスが、後続命令のアクセス先仮想メモリアドレスと重複するか否かを判定し、重複しない場合に、前記後続命令が前記先行命令を追い越して実行されるように、処理装置によるメモリへのアクセス動作を制御する、命令追い越し回路と、
前記後続命令の追い越しが発生した場合に、前記後続命令を特定する情報を生成し、追い越し結果情報として保存する、追い越しトレーサ回路と、
を具備し、
前記試験装置は、
前記後続命令の追い越しが発生した場合における実行結果が、前記後続命令の追い越しが発生しなかった場合における実行結果とは異なる結果になるように、前記処理装置の設定を変更する、設定変更部と、
ランダムに試験命令列を生成し、前記処理装置に実行させる、試験命令列生成部と、
前記試験命令列が実行された後に、前記追い越し結果情報に基づいて、前記後続命令の追い越しが発生したか否かを判別する、追い越し判別部と、
追い越しが発生していた場合に、前記追い越し結果情報に基づいて、前記試験命令列を実際に前記処理装置によって実行された順番になるように並び替え、変更後試験命令列を生成する、試験命令列変更部と、
前記変更後試験命令列の実行結果をシミュレートし、期待値を生成する、ＳＷシミュレータ実行部と、
前記試験命令列の実行結果が前記期待値に一致するか否かを判定し、判定結果を出力する、実行結果判定部とを備える
コンピュータシステム。
【請求項２】
請求項１に記載されたコンピュータシステムであって、
前記先行命令は、メモリからデータを読み出す旨を示すロード命令であり、
前記後続命令は、メモリにデータを格納する旨を示すストア命令である
コンピュータシステム。
【請求項３】
請求項１に記載されたコンピュータシステムであって、
前記先行命令は、メモリにデータを格納する旨を示すストア命令であり、
前記後続命令は、メモリからデータを読み出す旨を示すロード命令である
コンピュータシステム。
【請求項４】
請求項２又は３に記載されたコンピュータシステムであって、
前記設定変更部は、前記ストア命令のアクセス先仮想メモリアドレスに含まれる仮想メモリ空間と、前記ロード命令のアクセス先仮想メモリアドレスに含まれる仮想メモリ空間とが、同一の物理メモリ空間にマッピングされるように、前記処理装置の設定を変更する
コンピュータシステム。
【請求項５】
請求項４に記載されたコンピュータシステムであって、
前記試験命令列生成部は、前記試験命令列として、順番的に連続する前記ストア命令及び前記ロード命令のペアを含む命令列を生成する
コンピュータシステム。
【請求項６】
請求項５に記載されたコンピュータシステムであって、
前記試験命令列生成部は、前記ストア命令のアクセス先仮想メモリアドレスと前記ロード命令のアクセス先仮想メモリアドレスとが、異なる仮想メモリ空間を有し、同一のページ番号及びページ内アドレスを有するように、前記ペアを生成する
コンピュータシステム。
【請求項７】
請求項１乃至６のいずれかに記載されたコンピュータシステムで用いられる
試験装置。
【請求項８】
先行命令のアクセス先仮想メモリアドレスが、後続命令のアクセス先仮想メモリアドレスと重複するか否かを判定し、重複しない場合に、前記後続命令が前記先行命令よりも先に実行されるように、処理装置によるメモリへのアクセス動作を制御する、命令追い越し回路と、
前記後続命令が前記先行命令よりも先に実行された場合に、前記後続命令を特定する情報を追い越し結果情報として保存する、追い越しトレーサ回路と、
を具備する被試験装置の試験方法であって、
前記後続命令の追い越しが発生した場合における実行結果が、前記後続命令の追い越しが発生しなかった場合における実行結果とは異なる結果になるように、前記処理装置の設定を変更するステップと、
ランダム試験命令列を生成し、前記処理装置に実行させるステップと、
前記試験命令列が実行された後に、前記追い越し結果情報に基づいて、前記後続命令の追い越しが発生したか否かを判別するステップと、
追い越しが発生していた場合に、前記追い越し結果情報に基づいて、前記試験命令列の順番を実際に前記処理装置によって実行された順番になるように並び替え、変更後試験命令列を生成するステップと、
前記変更後試験命令列の実行結果をシミュレートし、期待値を生成するステップと、
前記試験命令列の実行結果が前記期待値に一致するか否かを判定し、判定結果を出力するステップと、
を具備する
試験方法。
【請求項９】
請求項８に記載された試験方法を、コンピュータにより実現するための、試験プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータシステム、試験装置、試験方法、及び試験プログラムに関し、特に、命令間における追い越し制御機能を有するコンピュータシステムに関する。
【背景技術】
【０００２】
コンピュータシステムには、処理装置（ＣＰＵ等）と、メモリとが設けられる。処理装置においてストア命令が発行されると、処理装置はメモリにアクセスし、メモリにデータを格納する。また、ロード命令が発行されると、処理装置は、メモリにアクセスし、メモリからデータを読み出す。
【０００３】
コンピュータシステムが正常に動作するかどうかを確認するために、試験が行なわれる。試験時には、ランダムに試験命令列が生成され、処理装置によって実行される。また、試験命令列の実行結果が、ソフトウェアによるシミュレータ（以下、ＳＷシミュレータと記載する）により計算され、期待値が生成される。そして、処理装置による実行結果が、期待値に一致するか否かが判定される。判定結果に基づき、コンピュータシステムが正常に動作しているか否かが確認される。
【０００４】
上記に関連して、特許文献１（特開昭６２−２０３２４０号公報）には、情報処理装置の試験方式が開示されている。この情報処理装置の試験方式は、試験されるべき被試験情報処理装置と同一命令セットを持つシミュレータと、ランダム試験プログラムを生成するランダム試験プログラム生成手段と、生成されたランダム試験プログラムを被試験情報処理装置の先行制御有効状態と先行制御無効状態及びシミュレータで実行するように指示するランダム試験プログラム起動手段と、ランダム試験プログラム起動手段で起動されて得られた実行結果を判定する実行結果判定手段とを有することを特徴としている。
【０００５】
一方で、コンピュータシステムの性能を高めるために、追い越し機能がコンピュータシステムに搭載されることがある。追い越し機能が搭載されたコンピュータシステムでは、先行命令のアクセス先アドレスが後続命令のアクセス先アドレスと重複するか否かが判定される。アクセス先アドレス同士が重複しない場合、後続命令が先行命令よりも先に実行される。これにより、先行命令の実行終了を待たずに後続命令を実行することができ、コンピュータシステムにおける動作性能を高めることができる。
【０００６】
追い越し機能に関連して、特許文献２（特開２０１０−１９８４３９号公報）には、ベクトル命令間追い越し判定装置が開示されている。このベクトル命令間追い越し判定装置は、先行するベクトルストア命令と後続のベクトルロード命令間のアドレスの依存関係をチェックするアドレス比較部が、チェック対象の複数のベクトルストア命令に対して共通に１つのアドレス比較論理を備える。アドレス比較論理は、複数のベクトルストア命令と後続のベクトルロード命令のアドレスの依存関係を時分割でチェックする。このベクトル命令間追い越し判定装置では、要素展開部での展開処理と、アドレス比較処理とが、並行して実行可能とされている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開昭６２−２０３２４０号公報
【特許文献２】特開２０１０−１９８４３９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
追い越し機能が搭載されたコンピュータシステムでは、追い越し機能が正常に動作しているか否かを試験することが求められる。しかしながら、試験命令列をランダムに生成した場合、追い越し機能が正常に動作しているかどうかを試験することは、以下に述べる３つの理由から、難しい。
【０００９】
第１に、通常、ロード命令のアクセス先アドレスと、ストア命令のアクセス先アドレスとは異なっている。そのため、追い越しが発生しようがしまいが、処理装置による実行結果に変わりはない。従って、処理装置による実行結果がシミュレータによって得られた期待値に一致したとしても、追い越し機能が正常に機能しているかどうかは判別できない。
【００１０】
第２に、ランダムに生成された試験命令列では、追い越しの発生を保証できない。また、追い越しが発生しようがしまいが実行結果に変わりがないため、実際に追い越しが発生したか否かをソフトウェアによって確認することができない。
【００１１】
第３に、追い越しが発生した場合の実行結果を、ＳＷシミュレータによって計算することができず、期待値の生成ができない。
【００１２】
追い越し機能が正常に動作しているか否かを試験するために、必ず追い越しが発生するような試験命令列を作成し、作成した試験命令列を用いて試験を行なうことが考えられる。しかしながら、必ず追い越しが発生するような試験命令列の作成は、人間が行なわなければならない。加えて、コンピュータシステムにおけるハードウェア（ＨＷ）構造を理解していなければ、そのような試験命令列を作成することができない。更には、特定の試験命令列でしか試験を行なうことができず、ＨＷの品質を十分に保証することが難しい。
【００１３】
従って、本発明の課題は、追い越し機能が正常に動作しているか否かを信頼性よく試験することができる、コンピュータシステム、試験装置、試験方法、及び試験プログラムを提供することにある。
【課題を解決するための手段】
【００１４】
本発明に係るコンピュータシステムは、先行命令のアクセス先仮想メモリアドレスが、後続命令のアクセス先仮想メモリアドレスと重複するか否かを判定し、重複しない場合に、前記後続命令が前記先行命令を追い越して実行されるように、処理装置によるメモリへのアクセス動作を制御する、命令追い越し回路と、前記後続命令の追い越しが発生した場合に、前記後続命令を特定する情報を生成し、追い越し結果情報として保存する、追い越しトレーサ回路とを具備する。前記試験装置は、前記後続命令の追い越しが発生した場合における実行結果が、前記後続命令の追い越しが発生しなかった場合における実行結果とは異なる結果になるように、前記処理装置の設定を変更する、設定変更部と、ランダムに試験命令列を生成し、前記処理装置に実行させる、試験命令列生成部と、前記試験命令列が実行された後に、前記追い越し結果情報に基づいて、前記後続命令の追い越しが発生したか否かを判別する、追い越し判別部と、追い越しが発生していた場合に、前記追い越し結果情報に基づいて、前記試験命令列を実際に前記処理装置によって実行された順番になるように並び替え、変更後試験命令列を生成する、試験命令列変更部と、前記変更後試験命令列の実行結果をシミュレートし、期待値を生成する、ＳＷシミュレータ実行部と、前記試験命令列の実行結果が前記期待値に一致するか否かを判定し、判定結果を出力する、実行結果判定部とを備える。
【００１５】
本発明に係る試験装置は、上述のコンピュータシステムで用いられる試験装置である。
【００１６】
本発明に係る試験方法は、先行命令のアクセス先仮想メモリアドレスが、後続命令のアクセス先仮想メモリアドレスと重複するか否かを判定し、重複しない場合に、前記後続命令が前記先行命令よりも先に実行されるように、処理装置によるメモリへのアクセス動作を制御する、命令追い越し回路と、前記後続命令が前記先行命令よりも先に実行された場合に、前記後続命令を特定する情報を追い越し結果情報として保存する、追い越しトレーサ回路とを具備する被試験装置の試験方法である。この試験方法は、前記後続命令の追い越しが発生した場合における実行結果が、前記後続命令の追い越しが発生しなかった場合における実行結果とは異なる結果になるように、前記処理装置の設定を変更するステップと、ランダム試験命令列を生成し、前記処理装置に実行させるステップと、前記試験命令列が実行された後に、前記追い越し結果情報に基づいて、前記後続命令の追い越しが発生したか否かを判別するステップと、追い越しが発生していた場合に、前記追い越し結果情報に基づいて、前記試験命令列の順番を実際に前記処理装置によって実行された順番になるように並び替え、変更後試験命令列を生成するステップと、前記変更後試験命令列の実行結果をシミュレートし、期待値を生成するステップと、前記試験命令列の実行結果が前記期待値に一致するか否かを判定し、判定結果を出力するステップとを具備する。
【００１７】
本発明に係る試験プログラムは、上述の試験方法を、コンピュータにより実現するためのプログラムである。
【発明の効果】
【００１８】
本発明によれば、追い越し機能が正常に動作しているか否かを信頼性よく試験することができる、コンピュータシステム、試験装置、試験方法、及び試験プログラムが提供される。
【図面の簡単な説明】
【００１９】
【図１】コンピュータシステムを概略的に示す機能構成図である。
【図２】メモリアドレスを示す概念図である。
【図３】仮想メモリアドレスの空間番号と、物理メモリアドレスの空間番号との対応関係を示す概念図である。
【図４】追い越し結果情報を示す概念図である。
【図５】コンピュータシステムの動作方法を示すフローチャートである。
【図６】設定変更後のアドレス変換テーブルの設定内容を概念的に示す図である。
【図７】試験命令列の一例を示す概念図である。
【図８】追い越し結果情報採取命令を示す概念図である。
【図９】読み取られた追い越し結果情報の一例を示す概念図である。
【図１０】変更後試験命令列を示す概念図である。
【発明を実施するための形態】
【００２０】
以下に、本発明の実施形態について説明する。
【００２１】
まず、本実施形態の原理について説明する。
【００２２】
本願発明者は、追い越し機能が正常に動作しているか否かを試験するために、以下の（１）乃至（３）の機能を設けることを考えた。
（１）追い越しが発生した場合に、追い越しが発生しなかった場合とは異なる実行結果が得られるようにする機能。
（２）追い越しが発生した場合に、追い越しが発生したことをソフトウェアによって知ることができる機能。
（３）上記（１）における異なる実行結果を、ソフトウェアによって計算し、期待値を生成する機能。
上記（１）乃至（３）の機能を用いれば、機能（２）により、追い越しが発生したことを知ることができる。追い越しが発生した場合には、機能（１）によって、追い越しが発生しなかった場合とは異なる実行結果を得ることができる。追い越しが発生した場合の実行結果を、機能（３）によって得られた追い越しが発生した場合の期待値と比較することにより、追い越し機能が正常に動作しているか否かを判別することができる。
【００２３】
上記（１）の機能を実現するために、本願発明者は、仮想メモリアドレスと物理メモリアドレスとの対応関係を変更することを考えた。通常、仮想メモリアドレスと物理メモリアドレスとは、１対１で対応している。また、追い越しを発生させるか否かの判断は、仮想メモリアドレスに基いて行なわれる。すなわち、先行命令の仮想メモリアドレスと後続命令の仮想メモリアドレスとが重複しているか否かが判定され、重複しない場合、追い越しが行われる。そのため、先行するロード命令（又はストア命令）を後続するストア命令（又はロード命令）が追い越したとしても、実行結果に変わりはない。これに対して、仮想メモリアドレスと物理メモリアドレスとの対応関係を変更することにより、先行命令において使用される仮想メモリアドレスと後続命令において使用される仮想メモリアドレスとを、同一の物理メモリアドレスに割り当てることができる。その結果、先行するストア命令（又はロード命令）と後続するロード命令（又はストア命令）との間において仮想メモリアドレスが異なるにもかかわらず、アクセス先の物理メモリアドレスを同一にすることができる。すなわち、追い越しが発生した場合に、追い越しが発生しなかった場合とは異なる実行結果を得ることが可能になる。
【００２４】
また、本願発明者は、上記（２）の機能を実現するために、ハードウェア内に、追い越しが発生したことを示す情報を格納する追い越しトレーサを設けることを考えた。追い越しトレーサに格納された情報を読み取ることにより、ソフトウェアによって追い越しが発生したことを知ることができる。
【００２５】
更に、本願発明者は、上記（３）の機能を実現するために、試験命令列を変更し、変更後の試験命令列によって期待値を生成することを考えた。すなわち、上記（２）で説明した追い越しトレーサに保存された情報を用いれば、試験命令列の中から、追い越しが発生した命令のペアを特定することができる。そして、特定したペアの順番を入れ替えることにより、変更後の試験命令列を得ることができる。変更後の試験命令列中における命令の順序は、実際に処理装置によって実行された命令の順序に一致する。変更後の試験命令列を用いてシミュレーションを行なえば、追い越しが発生した場合の期待値を得ることができる。
【００２６】
続いて、図面を参照しつつ、本実施形態に係るコンピュータシステムについて、詳細に説明する。尚、本実施形態では、一例として、先行命令がストア命令であり、後続命令がロード命令である場合に、追い越しが発生するものとする。
【００２７】
＜構成の説明＞
図１は、本実施形態に係るコンピュータシステム１を概略的に示す機能構成図である。図１に示されるように、コンピュータシステム１は、ＣＰＵ３（処理装置）、メモリ４、及び試験装置２を備えている。試験装置２は、ＣＰＵ３がメモリ４に格納された試験プログラムを実行することにより、実現される。
【００２８】
まず、ＣＰＵ３について説明する。ＣＰＵ３は、メモリ４に格納された命令列を実行する。命令列に含まれる各命令（ロード命令又はストア命令）には、アクセス先の仮想メモリアドレスを示す情報が含まれる。ＣＰＵ３では、命令に含まれる仮想メモリアドレスが、物理メモリアドレスに変換される。そして、ＣＰＵ３は、物理メモリアドレスに基いてメモリ４にアクセスし、命令を実行する。すなわち、命令がロード命令である場合には、メモリ４にアクセスし、物理メモリアドレスからデータをレジスタに読み出す。命令がストア命令である場合には、メモリ４にアクセスし、レジスタに格納されたデータを、アクセス先の物理メモリアドレスに書き込む。
【００２９】
ＣＰＵ３は、アドレス変換制御部１１、命令追い越し回路１２、追い越しトレーサ回路１３、及びＳＷビジブルレジスタ１５を備えている。
【００３０】
アドレス変換制御部１１には、アドレス変換テーブルを示す情報が格納されている。アドレス変換テーブルは、仮想メモリアドレスと物理メモリアドレスとの対応関係を示しており、仮想メモリアドレスを物理メモリアドレスに変換するために用いられる。図２は、メモリアドレス（仮想メモリアドレス及び物理メモリアドレス）を示す概念図である。図２に示されるように、メモリアドレスは、通常、空間番号、ページ番号、及びページ内アドレスによって表現される。通常、仮想メモリアドレスを物理メモリアドレスに変換する際、空間番号及びページ番号が変更され、ページ内アドレスは変更されない。また、図３は、仮想メモリアドレスの空間番号と、物理メモリアドレスの空間番号との対応関係を示す概念図である。通常の運用時には、アドレス変換テーブルは、仮想メモリアドレスと物理メモリアドレスが１対１で対応するように、設定されている。すなわち、図３に示されるように、仮想メモリアドレスの空間番号と、物理メモリアドレスの空間番号とは、１対１で対応している。
【００３１】
再び図１を参照する。命令追い越し回路１２は、先行命令がストア命令であり、後続命令がロード命令である場合に、後続命令が先行命令を追い越すことが可能であるか否かを判断する部分である。追い越し可能である場合、後続命令が先行命令よりも先に実行される。また、命令追い越し回路１２は、追い越しが発生した場合、追い越しがあった旨と、追い越しを行なった後続命令（ロード命令）を特定する情報（以下、追い越し結果情報）とを、追い越しトレーサ１３に格納する。
【００３２】
追い越しトレーサ１３は、上述のように、追い越し結果情報を格納するために設けられている。図４は、追い越しトレーサ１３に格納される追い越し結果情報を示す概念図である。本実施形態では、追い越しトレーサ１３に４個（４レコード）の追い越し結果情報を格納できるものとする。また、各追い越し結果情報は、追い越しがあったこと示す有効ｂｉｔと、追い越しを行なった後続命令（ロード命令）の仮想アクセス先アドレスにおけるページ内アドレスとを含んでいる。尚、ページ内アドレスは、１６ｂｉｔの情報により表現されている。
【００３３】
ＳＷビジブルレジスタ１５は、ソフトウェアビジブルなレジスタであり、追い越しトレーサ１３に格納された情報を退避させるために設けられている。
【００３４】
続いて、試験装置２について詳細に説明する。図１に示されるように、試験装置２は、マッピング変更部５、試験命令列生成部６、追い越し判定部７、試験命令列変更部８、ＳＷシミュレータ実行部９、及び実行結果判定部１０を備えている。
【００３５】
マッピング変更部５は、追い越しが発生した場合と追い越しが発生しなかった場合とで実行結果が変わるように、アドレス変換制御部１１の設定を変更する機能を有している。
【００３６】
試験命令列生成部６は、試験命令列を生成する部分である。試験命令列には、複数の命令が含まれる。生成された試験命令列は、メモリ４に格納され、ＣＰＵ３によって順番に実行される。
【００３７】
追い越し判定部７は、試験命令列がＣＰＵ３によって実行された後に、追い越し結果情報を読み取る機能を有している。追い越し判定部７は、追い越し結果情報に基づいて、追い越しが発生したか否かを判定する。追い越しが発生していた場合、追い越し判定部７は、追い越し結果情報を試験命令列変更部８に通知する。
【００３８】
試験命令列変更部８は、試験命令列の順番を変更し、変更後試験命令列を生成する機能を有している。試験命令列変更部８は、追い越し結果情報に基づいて、追い越しが発生した命令のペアを特定し、実際にＣＰＵ３によって実行された順番になるように、試験命令列に含まれる複数の命令の順番を並び替える。
【００３９】
ＳＷシミュレータ実行部９は、試験命令列又は変更後試験命令列の実行結果をソフトウェア的にシミュレーションし、期待値を生成する機能を有している。
【００４０】
実行結果判定部１０は、ＣＰＵ３による試験命令列の実行結果が、期待値に一致するか否かを判別する部分する。実行結果判定部１０は、判別結果を、出力する。
【００４１】
＜動作方法の説明＞
続いて、本実施形態に係るコンピュータシステム１の動作方法について説明する。図５は、コンピュータシステム１の動作方法を示すフローチャートである。本コンピュータシステム１では、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）等に格納された試験プログラムがメモリ４上にロードされることにより、試験装置２が実現される。試験装置１には、試験に必要なパラメータ情報が与えられる。パラメータ情報は、実行時間、試験命令列の特性（命令毎の出現頻度の重み付け等）、及び試験命令列中に含まれる命令数などを特定する情報である。パラメータ情報は、予めメモリ４などに設定されていてもよいし、ユーザによって入力されていてもよい。
【００４２】
ステップＳ１：マッピング
試験装置２では、まず、マッピング変更部５が、アドレス変換制御部１１にアクセスし、アドレス変換テーブルの設定を変更する。図６は、設定が変更された後のアドレス変換テーブルの設定内容を概念的に示す図である。図６に示されるように、マッピング変更部は、仮想メモリアドレスにおける空間番号（以下、仮想空間番号）と、物理メモリアドレスにおける空間番号（以下、物理空間番号）との対応関係を、変更する。より詳細には、マッピング変更部５は、ロード命令で用いられるデータエリアの仮想空間番号と、ストア命令で用いられるデータエリアの仮想空間番号とを、同一の物理空間番号に割り当てる。本実施形態では、ロード命令で用いられる仮想空間番号が＃０であり、ストア命令で用いられる仮想空間番号が＃１であるものとする。そして、図６に示されるように、仮想空間番号♯０及び♯１が、物理空間番号＃０に対応付けられている。
【００４３】
ステップＳ２：試験命令列の生成
次いで、試験命令列生成部６が、ランダムに試験命令列を生成する。試験命令列生成部６は、入力されたパラメータ情報に基づいて、試験命令列を生成し、メモリ４に格納する。図７は、試験命令列の一例を示す概念図である。
【００４４】
ここで、試験命令列生成部６は、追い越しが発生しやすい命令列を、試験命令列として生成する。具体的には、図７に示されるように、試験命令列生成部６は、順番的に連続するストア命令とロード命令とのペアが含まれるように、試験命令列を生成する。試験命令列に含まれるペアの数は、追い越しトレーサ１３に格納することのできる追い越し結果情報の数に応じて、決定される。また、試験命令列生成部６は、同一ペア内におけるロード命令及びストア命令のアクセス先アドレスを、以下のように決定する。まず、ロード命令の仮想アクセス先アドレスの空間番号を、ステップＳ１で設定されたロード命令用の仮想空間番号（♯０）に決定する。また、ストア命令の仮想アクセス先アドレスの空間番号を、ステップＳ２で設定されたストア命令用の仮想空間番号（♯１）に決定する。一方、ページ番号及びページ内アドレスは、同一ペア内で同一となるように、決定される。
【００４５】
上述のようにペアを作成すれば、順番的に連続するストア命令とロード命令との間において仮想アクセス先アドレスが異なっているため、追い越しが発生しやすくなる。加えて、ストア命令とロード命令との間において、物理アクセス先アドレスは同一となるため、追い越しが発生した場合と追い越しが発生しなかった場合との間において、ＣＰＵ３の実行結果を異ならせることが可能になる。
【００４６】
尚、図７に示される試験命令列には、ペア１及びペア２が含まれている。また、本実施形態では、メモリアドレスが３２ビットのアドレス空間を有するものとし、空間番号が８ビット、ページ番号が８ビット、ページ内アドレスが１６ビットであるものとする。図７に示されるように、ペア１では、ロード命令のアクセスアドレスにおいて、仮想空間番号が＃０であり、ページ番号がページ＃０であり、ページ内アドレスが０ｘ１０００である。一方、ストア命令のアクセスアドレスにおいては、仮想空間番号が＃１であり、ページ番号がページ＃０であり、ページ内アドレスが０ｘ１０００である。すなわち、ペア１においては、ロード命令の仮想アクセスアドレスを３２ビットで表現すれば、０ｘ００００１０００となり、ストア命令アクセスアドレスを３２ビットで表現すれば、０ｘ０１００１０００になる。その結果、ロード命令及びストア命令の仮想アクセス先アドレスを物理アクセス先アドレスに変換すれば、いずれも、０ｘ００００１０００になる。一方、ペア２においては、ロード命令のアクセスアドレスが０ｘ００００１００８に設定され、ストア命令のアクセスアドレスが０ｘ０１００１００８に設定されている。ペア２においても、ロード命令及びストア命令の物理アクセス先アドレスは、いずれも、０ｘ００００１００８になる。
【００４７】
ステップＳ３：試験命令列の実行
次いで、ＣＰＵ３により、試験命令列が実行される。ＣＰＵ３では、命令追い越し回路１２が、既述のように、追い越しの可否を判定する。既述のように、命令追い越し回路１２は、先行するストア命令と後続するロード命令の仮想アクセス先アドレスが重複しているか否かを判定することにより、追い越しの可否を判定する。そして、追い越しが可能である場合には、ロード命令がストア命令を追い越して実行される。更に、追い越しが発生した場合には、追い越し結果情報が、追い越しトレーサ１３に保存される。すなわち、追い越しが発生した場合、図４に示したように、追い越しが発生したことを示す有効ビットと、追い越して実行されたロード命令のアクセス先アドレスにおけるページ内アドレスとが、保存される。
【００４８】
ステップＳ４：追い越し結果情報の採取
試験命令列の実行が終了すると、追い越し判定部７が、追い越しトレーサ１３に保存された追い越し結果情報（図４参照）を採取する。具体的には、追い越し判定部７は、追い越し結果情報採取命令を生成し、ＣＰＵ３に実行させる。図８は、追い越し結果情報採取命令を示す概念図である。図８に示されるように、追い越し結果情報採取命令は、オペコードと、ＲＥＧとを含んでいる。オペコードは、追い越しトレーサ１３の情報を読み出すことを示している。ＲＥＧは、ＳＷビジブルレジスタ１５のメモリアドレスが格納されたレジスタ番号を示している。すなわち、追い越し結果情報採取命令が実行されると、ＣＰＵ３は、追い越しトレーサ１３から追い越し結果情報を１つずつ読み出し、ＳＷビジブルレジスタ１５に、順次書き込んでいく。
【００４９】
ステップＳ５：追い越しの有無の判定
追い越し判定部７は、ＳＷビジブルレジスタ１５に書き込まれた追い越し結果情報を読み取り、追い越しが発生したか否かを判定する。図９は、読み取られた追い越し結果情報の一例を示す概念図であり、図７に示した試験命令列を実行した場合の結果の一例を示している。追い越し判定部７は、追い越し結果情報中における有効ビットを参照することにより、追い越しが発生したか否かを判定する。すなわち、有効ビットが全て「０」であった場合には、追い越しが発生しなかったと判断される。一方、有効ビットが「１」である追い越し結果情報が存在する場合には、追い越しが発生したと判断される。追い越しが発生したと判断した場合、追い越し判定部７は、追い越し結果情報を試験命令列変更部８に通知する。図７に示した例の場合、有効ビットが「１」である追い越し結果情報が存在する。従って、追い越し判定部７は、追い越しが発生したと判断する。
【００５０】
ステップＳ６：命令の入れ替え
追い越しが発生した場合、試験命令列変更部８が、試験命令列の順番を変更する。試験命令列変更部８は、追い越し結果情報に記載されるページ内アドレスを参照し、追い越しが発生したペアを特定する。試験命令列変更部８は、試験命令列を取得し、特定したペアにおける命令の順番を入れ替え、変更後試験命令列を生成する。図９に示される例の場合、一つの追い越し結果情報において、有効ビットが「１」になっている。従って、図７に示した試験命令列中において、ペア１及びペア２のいずれかにおいて追い越しが発生したことがわかる。更に、図９に示される追い越し結果情報において、ページ内アドレスは、「０×１００８」である。このアドレスは、ペア２（図７参照）における仮想アクセス先アドレスに一致する。従って、ペア２で追い越しが発生したことが特定される。そこで、試験命令列変更部８は、ペア２において、ストア命令及びロード命令の順番を入れ替え、変更後試験命令列を生成する。図１０は、変更後試験命令列を示す概念図である。ペア２において、ストア命令とロード命令との順番が、入れ替えられている。
【００５１】
ステップＳ７：シミュレーション実行
次いで、ＳＷシミュレータ実行部９が、変更後試験命令列を用いてシミュレーションを行い、期待値を生成する。
【００５２】
ステップＳ８：実行結果比較
次いで、実行結果判定部１０が、ＣＰＵ３による試験命令列の実行結果を、期待値と比較する。実行結果が期待値に一致する場合、実行結果判定部１０は、追い越し機能が正常に動作していると判定し、その旨を出力する。一方、一致しない場合には、ハードウェアの動作状態に以上があるものと判断し、その旨を出力する。
【００５３】
以上のステップＳ８までの動作により、試験動作が終了する。尚、連続実行が指定されている場合は、再びステップＳ１以降の動作が繰り返される。
【００５４】
尚、ステップＳ５において、追い越しが発生していないと判断された場合には、ＳＷシミュレータ実行部９が、試験命令列を用いてシミュレーションを行い、期待値を生成する。そして、実行結果判定部１０により、ＣＰＵ３による試験命令列の実行結果が、期待値と比較される（ステップＳ９）。
【００５５】
＜効果の説明＞
本実施形態によれば、仮想メモリアドレスと物理メモリアドレスとの対応関係を変更することにより、命令の追い越しが発生した場合に、命令の追い越しが発生しなかった場合とは異なる実行結果が得られる。また、追い越しトレーサ１３が設けられていることにより、追い越しが発生した命令を特定することができる。更に、試験命令列中の順番を変更し、実際にＣＰＵ３で実行された順番を示す変更後試験命令列を生成することができる。そして、変更後試験命令列に基づいてシミュレーションによる期待値を生成することができる。そのため、追い越しが発生しなかった場合とは別に、追い越しが発生した場合における実行結果と期待値とを照合することが可能となる。すなわち、追い越し機能が正常に動作しているか否かを試験することが可能となる。
【００５６】
また、本実施形態によれば、試験命令列をランダムに生成することが可能であるため、いろいろなタイミングでの評価が可能になり、ハードウェアの品質を向上させることが可能になる。
【００５７】
尚、本実施形態では、先行命令がストア命令であり、後続命令がロード命令である場合に追い越しが発生する場合について説明した。但し、先行命令と後続命令との関係はこれに限定されるものではない。例えば、ストア命令がロード命令を追い越すように構成されたコンピュータシステムにおいても、本実施形態を適用することが可能である。
【符号の説明】
【００５８】
１  コンピュータシステム
２  試験装置
３  ＣＰＵ
４  メモリ
５  マッピング変更部
６  試験命令列生成部
７  追い越し情報読み出し部
８  試験命令列変更部
９  ＳＷシミュレータ実行部
１０  実行結果判定部
１１  アドレス変換制御部
１２  命令追い越し回路
１３  追い越しトレーサ回路
１４  追い越し情報格納先アドレス指定レジスタ
１５  レジスタ
１６  命令実行部
１７  命令発行部
【図１】
0005469106.tif 000002
【図２】
0005469106.tif 000003
【図３】
0005469106.tif 000004
【図４】
0005469106.tif 000005
【図５】
0005469106.tif 000006
【図６】
0005469106.tif 000007
【図７】
0005469106.tif 000008
【図８】
0005469106.tif 000009
【図９】
0005469106.tif 000010
【図１０】
0005469106.tif 000011