(57)【要約】【課題】本発明は、キャッシュ機能の試験を行うプログラムを生成する試験プログラム生成システム、試験プログラム生成プログラム、および記録媒体に関し、キャッシュ構成をもとにキャッシュ試験シートの記述およびキャッシュ構成モデリング配列に従い、キャッシュ状態設定プログラムおよびキャッシュ試験プログラムを自動生成し、簡易かつ確実かつ記述ミスなしにキャッシュ機能の試験を行うプログラムを自動生成することを目的とする。【解決手段】キャッシュ機能の試験内容を記述した試験シートと、試験対象のキャッシュ構成に対応したキャッシュ状態を擬似的に表すキャッシュ構成モデリング配列と、試験シートから試験内容を読み込んで解析し、キャッシュ構成モデリング配列に設定されているキャッシュ状態を参照し、試験内容に合致するように必要に応じて当該キャッシュ構成モデリング配列のキャッシュ状態を変更する第１の命令列を生成および試験内容の試験を行う第２の命令列を生成する手段とを備える。【選択図】　図１
2004005178.tif 000002
【特許請求の範囲】
【請求項１】
キャッシュ機能の試験を行うプログラムを生成する試験プログラム生成システムにおいて、
キャッシュ機能の試験内容を記述した試験シートと、
試験対象のキャッシュ構成に対応したキャッシュ状態を擬似的に表すキャッシュ構成モデリング配列と、
前記試験シートから試験内容を読み込んで解析し、前記キャッシュ構成モデリング配列に設定されているキャッシュ状態を参照し、当該試験内容に合致するように必要に応じて当該キャッシュ構成モデリング配列のキャッシュ状態を変更する第１の命令列を生成および当該試験内容の試験を行う第２の命令列を生成する手段と
を備えたことを特徴とする試験プログラム生成システム。
【請求項２】
指定された試験対象のキャッシュ構成をもとにキャッシュ状態を擬似的に表す前記キャッシュ構成モデリング配列を作成する手段を備えたことを特徴とする請求項１記載の試験プログラム生成システム。
【請求項３】
前記第１の命令列および前記第２の命令列を、指定されたアーキテクチャの命令列に変換する手段を備えたことを特徴とする請求項１あるいは請求項２記載の試験プログラム生成システム。
【請求項４】
キャッシュ機能の試験を行うプログラムを生成する試験プログラム生成プログラムにおいて、
キャッシュ機能の試験内容を記述した試験シートと、
試験対象のキャッシュ構成に対応したキャッシュ状態を擬似的に表すキャッシュ構成モデリング配列とを設け、
前記試験シートから試験内容を読み込んで解析し、前記キャッシュ構成モデリング配列に設定されているキャッシュ状態を参照し、当該試験内容に合致するように必要に応じて当該キャッシュ構成モデリング配列のキャッシュ状態を変更する第１の命令列を生成および当該試験内容の試験を行う第２の命令列を生成する手段と
してコンピュータに機能させるための試験プログラム生成プログラム。
【請求項５】
キャッシュ機能の試験を行うプログラムを生成する試験プログラム生成プログラムを記録した記録媒体において、
キャッシュ機能の試験内容を記述した試験シートと、
試験対象のキャッシュ構成に対応したキャッシュ状態を擬似的に表すキャッシュ構成モデリング配列とを設け、
前記試験シートから試験内容を読み込んで解析し、前記キャッシュ構成モデリング配列に設定されているキャッシュ状態を参照し、当該試験内容に合致するように必要に応じて当該キャッシュ構成モデリング配列のキャッシュ状態を変更する第１の命令列を生成および当該試験内容の試験を行う第２の命令列を生成する手段と
して機能させるプログラムを記録したコンピュータ読取可能な記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、キャッシュ機能の試験を行うプログラムを生成する試験プログラム生成システム、試験プログラム生成プログラム、および記録媒体に関するものである。
【０００２】
【従来の技術】
従来、キャッシュ機構を試験するプログラムは、キャッシュ機構のアルゴリズムを試験者が理解し、キャッシュのヒット、ミスの状態の組み合せを当該キャッシュのウェイ数、ラインを考慮して人手でプログラムを１つ１つ記述していた。例えば、図７の（ｂ）の試験シートに記述したキャッシュ試験を行う場合、即ち、図７の（ａ）の試験プログラムに示すように、ウェイ（ＷＡＹ）２、ライン１のヒット状態と隣のラインのヒット状態のアクセスして試験を行うプログラムを作成する場合、
・当該試験プログラムの下段に示すように、ウェイ２のライン１へのロード命令と、ウェイ２の隣のライン２へのロード命令という試験命令列を作成すると共に、
・当該試験プログラムの上段に示すように、試験命令列の前に、当該２つの試験命令がヒットとなるように、図示の▲１▼のロード命令、および▲２▼のプリロード命令（キャッシュ上へ格納してヒットさせるための命令）を考慮して記述していた。
【０００３】
【発明が解決しようとする課題】
このため、キャッシュ機構の試験を行う試験プログラムを記述するためには、試験者がキャッシュ機構の仕様（例えば２ウェイ、２ラインなど）を熟知し、ヒット、ミスの状態を試験する試験プログラムの記述と、その前にヒットあるいはミスとなるキャッシュ状態設定命令を記述する必要があり、作業が大変であると共に、キャッシュ機構の仕様が変わるとその毎に試験プログラムやキャッシュ状態設定プログラムを修正する手間が発生したり、時として記述ミスが発生したりするという問題があった。また、キャッシュが組み込まれるアーキテクチャにより、記述する試験プログラムおよびキャッシュ状態設定プログラムの記述命令を当該アーキテクチャに合わせて記述し直しが必要となってしまうなどの問題もあった。
【０００４】
本発明は、これらの問題を解決するため、キャッシュ構成をもとにキャッシュ試験シートの記述およびキャッシュ構成モデリング配列に従い、キャッシュ状態設定プログラムおよびキャッシュ試験プログラムを自動生成し、簡易かつ確実かつ記述ミスなしにキャッシュ機能の試験を行うプログラムを自動生成することを目的としている。
【０００５】
【課題を解決するための手段】
図１を参照して課題を解決するための手段を説明する。
【０００６】
図１において、処理装置１は、プログラムに従い各種処理を実行するものであって、ここでは、キャッシュ構成／モデリング配列作成手段１２、キャッシュ構成モデリング配列１３、解析手段１４、命令変換手段１８などから構成されるものである。
【０００７】
キャッシュ構成／モデリング配列作成手段１２は、キャッシュ構成もとにキャッシュ構成モデリング配列１３を作成するものである。
【０００８】
解析手段１４は、キャッシュ試験シート３を解析して試験用のプログラム４を生成するものである。
【０００９】
命令変換手段１８は、指定されたアーキテクチャの命令に変換するものである。
【００１０】
次に、動作を説明する。
解析手段１４がキャッシュ試験シート３から試験内容を読み込んで解析し、キャッシュ構成モデリング配列１３に設定されているキャッシュ状態を参照し、試験内容に合致するように必要に応じてキャッシュ構成モデリング配列１３のキャッシュ状態を変更する第１の命令列（キャッシュ状態設定プログラム）を生成および試験内容の試験を行う第２の命令列（キャッシュ試験プログラム）を生成するようにしている。
【００１１】
この際、キャッシュ構成／モデリング配列作成手段１２が指定された試験対象のキャッシュ構成をもとにキャッシュ状態を擬似的に表すキャッシュ構成モデリング配列１３を作成するようにしている。
【００１２】
また、命令変換手段１８が第１の命令列および第２の命令列を、指定されたアーキテクチャの命令列に変換するようにしている。
【００１３】
従って、キャッシュ構成をもとにキャッシュ試験シート３の記述およびキャッシュ構成モデリング配列１３に従い、キャッシュ状態設定プログラムおよびキャッシュ試験プログラムを自動生成することにより、簡易かつ確実かつ記述ミスなしにキャッシュ機能の試験を行うプログラムを自動生成することが可能となる。
【００１４】
【発明の実施の形態】
次に、図１から図６を用いて本発明の実施の形態および動作を順次詳細に説明する。
【００１５】
図１は、本発明のシステム構成図を示す。
図１において、処理装置１は、プログラムに従い各種処理を実行するものであって、１１から１８などから構成されるものである。
【００１６】
アーキテクチャ指定手段１１は、外部からキャッシュ機能の組み込まれたコンピュータシステムのアーキテクチャを、外部から指定するものである。アーキテクチャを指定すると、当該アーキテクチャ上で動作するプログラム４（命令列）に変換されて出力される。
【００１７】
キャッシュ構成／モデリング配列作成手段１２は、外部から指定されたキャッシュ構成情報２、例えばウェイ数、ライン数などのキャッシュ構成もとにキャッシュ構成モデリング配列１３を自動生成するものである（図６参照）。
【００１８】
キャッシュ構成モデリング配列１３は、キャッシュ機構の現在のキャッシュ状態を擬似的に表すものである（図６参照）。
【００１９】
解析手段１４は、外部から指定されたキャッシュ試験シート３を解析し、試験用のプログラム（キャッシュ状態設定プログラム４１およキャッシュ試験プログラム４２）４を生成するものである（図２から図６を用いて後述する）。
【００２０】
擬似命令出力手段１５は、解析手段１４で生成されたキャッシュ状態設定プログラム４１およびキャッシュ試験プログラム４１の内部形式の命令列を出力するものである。
【００２１】
ユーザ固有指定判定手段１６は、ユーザから固有のアーキテクチャが指定されたか判別するものである。
【００２２】
外部インタフェース１７は、ユーザ固有の指定がされた場合に、外部のユーザ固有命令への変換手段５に依頼し、内部形式の命令列を当該ユーザのアーキテクチャ上で動作する命令列（プログラム４）に変換させ、それを受信し、プログラム（キャッシュ状態設定プログラム４１およびキャッシュ試験プログラム４２）４を出力するものである。
【００２３】
命令変換手段１８は、ユーザから指定されたアーキテクチャ上で動作する命令列のプログラム４に変換して出力するものである。
【００２４】
キャッシュ構成情報２は、試験対象のキャッシュ機能の構成情報（例えば、ウェイ数、ライン数、先頭位置など）である。
【００２５】
プログラム４は、キャッシュ構成情報２で指定された試験対象のキャッシュ機構について、指定されたアーキテクチャ上で動作する、キャッシュ試験シート５で指定したキャッシュ試験を実行するプログラム（キャッシュ状態設定プログラム４１およびキャッシュ試験プログラム４２）である。
【００２６】
ユーザ固有命令への変換手段５は、擬似命令出力手段１５から出力された内部形式のプログラム（キャッシュ状態設定プログラム４１およびキャッシュ試験プログラム４２）を、ユーザ固有の命令列に変換するものである。
【００２７】
次に、図２から図４のフローチャートに示す順番に従い、図１の構成のもとで、キャッシュ機構の試験するプログラム４（キャッシュ状態設定プログラム４１およびキャッシュ試験プログラム４２）を自動生成するときの手順を詳細に説明する。
【００２８】
図２から図４は、本発明の動作説明フローチャートを示す。
図２において、Ｓ１は、キャッシュ試験シートを記述する。これは、試験者が図５のキャッシュ試験シート３を記述する。
【００２９】
Ｓ２は、キャッシュ構成を入力する。例えば右側に記載した図６の（Ａ）に示す下記の、試験対象のキャッシュ構成を入力する。
【００３０】
・ＷＡＹ数：２
・ＬＩＮＥ数：４
・先頭位置（キャッシュの先頭位置）：
・その他（アーキテクチャなど）：
Ｓ３は、キャッシュ試験シートを読み込む。これは、Ｓ１で試験者がファイルに記述したキャッシュ試験シートを読み込む。
【００３１】
Ｓ４は、１行を取り出す。例えば、後述する図５のキャッシュ試験シート５の先頭の１行分の
ＷＡＹ＝１，ＬＩＮＥ＝１，ＨＩＴ
を取り込む。
【００３２】
Ｓ５は、解析する。これは、Ｓ４で取り込んだ１行分を解析し、
・ＨＩＴ（キャッシュヒット）：
・ＭＩＳＳ（キャッシュミス）：
・Ｍ＆Ｒ（キャッシュミスおよびリプレイス（キャッシュ上書き））：
のいずれのキャッシュ試験を行うか、判別する。
【００３３】
Ｓ６は、ＨＩＴの試験を行うと判明した場合、Ｓ７に進む。
Ｓ７は、ＷＡＹ１，ライン１のＶａｒｉｄの情報を参照する。これは、例えば後述する図５のキャッシュ試験シート５の１行目について、ＨＩＴの試験を行うと判明した場合、当該ＨＩＴの試験を行う対象の，ここでは、ＷＡＹ＝１，ＬＩＮＥ＝１について、例えば後述する図６の（ａ）のキャッシュ構成モデリング配列１３の当該ＷＡＹ＝１，ＬＩＮＥ＝１のＶａｒｉｄの内容（ここでは、”Ｉｎｖａｒｉｄ”）を参照する。
【００３４】
Ｓ８は、Ｓ７の参照で、Ｖａｒｉｄと判明した場合、Ｓ９でキャッシュ試験プログラムに、ＷＡＹ１，ライン１のロード命令を書き、Ｓ１０で正常と判定されるので、Ｓ１８に進む。
【００３５】
Ｓ１１は、Ｓ７の参照で、Ｉｎｖａｒｉｄと判明した場合、Ｓ１２でＷＡＹ２のＶａｒｉｄを同様に参照（他のＷＡＹを見る）する。
【００３６】
Ｓ１３は、Ｓ１２の他のＷＡＹ（ここでは、ＷＡＹ２のライン１）の参照で、Ｖａｒｉｄと判明した場合、Ｓ１４で違反（エラー）とし、Ｓ１８に進む。
【００３７】
Ｓ１５は、Ｓ１２の他のＷＡＹ（ここでは、ＷＡＹ２のライン１）の参照で、Ｉｎｖａｒｉｄと判明した場合、図３の（ａ）の（Ｃ）−（Ｃ’）を実行する。
【００３８】
図３のＳ２１は、キャッシュ状態設定プログラムにＷＡＹ１，ライン１へのプリロード命令を書く。
【００３９】
Ｓ２２は、キャッシュ試験プログラムにＷＡＹ２，ライン１へのロード命令を書く。
【００４０】
Ｓ２３は、キャッシュ構成モデリング配列１３のＷＡＹ１、ライン１をＶａｒｉｄに設定（例えば後述する図６の（ｂ））し、図２のＳ１８に進む。
【００４１】
Ｓ１６は、ＭＩＳＳの試験を行うと判明した場合、図３の（ｂ）の（Ｄ）−（Ｄ’）を実行し、Ｓ１８に進む。
【００４２】
図３の（ｂ）のＳ３１は、ＷＡＹ１，ライン１のＶａｒｉｄ情報を参照する。これは、例えば後述する図５のキャッシュ試験シート５の２行目について、ＭＩＳＳの試験を行うと判明した場合、当該ＭＩＳＳの試験を行う対象の，ここでは、ＷＡＹ＝２，ＬＩＮＥ＝２について、例えば後述する図６の（ａ）のキャッシュ構成モデリング配列１３の当該ＷＡＹ＝２，ＬＩＮＥ＝２のＶａｒｉｄの内容（ここでは、”Ｉｎｖａｒｉｄ”）を参照する。
【００４３】
Ｓ３２は、Ｓ３１の参照で、Ｖａｒｉｄと判明した場合、Ｓ３３で違反（エラー）と判定されるので終了し、図２のＳ１８に進む。
【００４４】
Ｓ３４は、Ｓ３１の参照で、Ｉｎｖａｒｉｄ（ＷＡＹ−１までが全てＶａｒｉｄ）と判明した場合、Ｓ３５でキャッシュ試験プログラムに，ＷＡＹ１，、ライン１へのロード命令を書き、Ｓ３６でキャッシュ構成モデリング配列１３のＷＡＹ１，ライン１をＶａｒｉｄに設定し、Ｓ３７で正常と判定し、図２のＳ１８に進む。
【００４５】
Ｓ３８は、Ｓ３１の参照で、Ｉｎｖａｒｉｄ（ＷＡＹ−１までが全てＩｎｖａｒｉｄ）と判明した場合、Ｓ３９でキャッシュ状態設定プログラム４２に指定ＷＡＹ−１までのロード命令を書き、Ｓ４０でキャッシュ構成モデリング配列１３のＷＡＹ−１までをＶａｒｉｄに設定し、Ｓ４１で正常と判定し、図２のＳ１８に進む。
【００４６】
Ｓ４２は、Ｉｎｖａｒｉｄ（それ以外）と判明した場合、Ｓ４３で違反（エラー）とし、図２のＳ１８に進む。
【００４７】
Ｓ１７、Ｍ＆Ｒの試験を行うと判明したので、図４の（Ｅ）−（Ｅ’）を実行し、Ｓ１８に進む。
【００４８】
図４のＳ５１は、ライン１の両方ＷＡＹがＩｎｖａｒｉｄ（全てのＷＡＹ）と判明した場合、Ｓ５２からＳ５７を実行する。
【００４９】
Ｓ５２は、キャッシュ状態設定プログラムにＷＡＹ１，ライン１のプリロード命令を書く。
【００５０】
Ｓ５３は、キャッシュ状態設定プログラムにＷＡＹ２，ライン１のプリロード命令を書く。
【００５１】
Ｓ５４は、キャッシュ試験プログラムにリプレース用のロード命令を書く。
【００５２】
Ｓ５５は、キャッシュ構成モデリング配列のライン１の両ＷＡＹをＶａｒｉｄにする。
【００５３】
Ｓ５６は、キャッシュ構成モデリング配列のリプレース用の位置情報をＷＡＹ１，ライン１の位置情報と入れ替える。
【００５４】
Ｓ５７は、正常と判定する。そして、図２のＳ１８に進む。
図４のＳ５８は、ライン１の両方ＷＡＹがＶａｒｉｄ（全てのＷＡＹ）と判明した場合、Ｓ５９からＳ６３を実行する。
【００５５】
Ｓ５９は、キャッシュ状態設定プログラムとキャッシュ試験プログラムからライン１のロードのうちＷＡＹ１が一番古いか判別する。
【００５６】
Ｓ６０は、古いと判明した場合、Ｓ６１でキャッシュ試験プログラムにリプレース用のロード命令を書き、Ｓ６２でキャッシュ構成モデリング配列のリプレース用の位置情報をＷＡＹ１，ライン１の位置情報と入れ替え、Ｓ６３で正常と判定し、図２のＳ１８に進む。
【００５７】
Ｓ６４は、それ以外と判明した場合、Ｓ６５で違反（エラー）と判明し、図２のＳ１８に進む。
【００５８】
図４のＳ６６は、それ以外と判明した場合、Ｓ６７で違反（エラー）と判明し、図２のＳ１８に進む。
【００５９】
Ｓ１８は、違反か判別する。ＹＥＳの場合には、Ｓ１９で違反を出力し、終了する。ＮＯの場合には、Ｓ２０に進む。
【００６０】
Ｓ２０は、終わりか判別する。ＹＥＳの場合には、Ｓ２１で指定アーキテクチャ用の命令に変換し、出力し、終了する。一方、ＮＯの場合には、Ｓ４でキャッシュ試験シート３から次の１行分を取り出し、Ｓ５以降を繰り返す。
【００６１】
以上によって、キャッシュ試験シートを記述するのみで、自動的に当該キャッシュ試験シートから１行分つつ読み込み、キャッシュ構成モデリング配列１３を参照しつつ当該読み込んだ試験が行えるように、キャッシュ状態を設定する命令をキャッシュ状態設定プログラム４１に出力および試験プログラムをキャッシュ試験プログラム４２に出力することを繰り返すことにより、試験者はキャッシュ試験シート３を記述するのみで、自動的にキャッシュ状態設定プログラム４１およびキャッシュ試験プログラム４２を生成することが可能となる。
【００６２】
図５は、本発明のキャッシュ試験シートの記述例を示す。図示のキャッシュ試験シート３は、キャッシュ機能の試験を行う試験内容を記述したものであって、図示の下記のように記述する。
【００６３】
・ＷＡＹ＝１，ＬＩＮＥ＝１，ＨＩＴ
・ＷＡＹ＝２，ＬＩＮＥ＝２，ＭＩＳＳ
・ＷＡＹ＝１，ＬＩＮＥ＝２，Ｍ＆Ｒ
ここでは、１行目はＨＩＴ（キャッシュヒット）を試験するものであって、キャッシュヒットがＷＡＹ＝１，ＬＩＮＥ＝１のときに生じるように試験するものであり、具体的にはＷＡＹ＝１，ＬＩＮＥ＝１がＶａｒｉｄのときは（図５の（ｂ）のキャッシュ構成モデリング配列１３のときは）、キャッシュ試験プログラム４２で当該ＷＡＹ＝１，ＬＩＮＥ＝１からデータを読み出して図示外の主記憶などにロードする命令を生成する（既述した図２のＳ９）。同様に、ＭＩＳＳ，Ｍ＆Ｒのときも、既述した図２のＳ１６（ＭＩＳＳの場合）、Ｓ１７（Ｍ＆Ｒの場合）に続く処理でキャッシュ状態設定プログラム４１、キャッシュ試験プログラム４２、およびキャッシュ構成モデリング配列１３に必要な命令の生成あるいは設定を行うことで、キャッシュ状態設定プログラム４１およびキャッシュ試験プログラム４２を自動生成することが可能となる。
【００６４】
図６は、本発明のキャッシュ構成モデリング配列の例を示す。キャッシュ構成モデリング配列１３は、現在のキャッシュのＷＡＹ，ＬＩＮＥのＶａｒｉｄ、Ｉｎｖａｒｉｄ，リプレース用の位置情報（ＷＡＹ１，２のうちの古い上書きなどしてリプレースする位置情報）を設定して擬似的にキャッシュ状態を管理するものである。
【００６５】
図６の（ａ）は、初期状態で全てのＷＡＹ１，２とＬＩＮＥ１，２、３，４がＩｎｖａｒｉｄと設定されている状態を示す。これは、既述した図２のＳ２で入力されたキャッシュ構成に対応する初期状態を示す。
【００６６】
図６の（ｂ）は、ＷＡＹ１，２とライン１をＶａｒｉｄに設定した状態を示す。これは、既述した図３のＳ２３で設定したキャッシュの状態を示す。
【００６７】
以上のように、キャッシュの状態をキャッシュ構成モデリング配列１３で擬似的に設定して管理することにより、キャッシュ機能の試験を行うときに、現状のキャッシュの状態を認識し、ＨＩＴ／ＭＩＳ／Ｍ＆Ｒの試験を行うときに、現在の状態を変更するときはキャッシュ状態設定プログラム４１を生成して試験を行うに適した状態にしてから、キャッシュ試験プログラム４２を生成してキャッシュの試験を行うように、キャッシュ状態を擬似的に管理して所望のキャッシュ状態を自動生成することが可能となる。
【００６８】
【発明の効果】
以上説明したように、本発明によれば、キャッシュ構成をもとにキャッシュ試験シート３の記述およびキャッシュ構成モデリング配列１３に従い、キャッシュ状態設定プログラムおよびキャッシュ試験プログラムを自動生成する構成を採用しているため、簡易かつ確実かつ記述ミスなしにキャッシュ機能の試験を行うプログラムを自動生成することが可能となる。
【図面の簡単な説明】
【図１】本発明のシステム構成図である。
【図２】本発明の動作説明フローチャート（その１）である。
【図３】本発明の動作説明フローチャート（その２）である。
【図４】本発明の動作説明フローチャート（その３）である。
【図５】本発明のキャッシュ試験シートの記述例である。
【図６】本発明のキャッシュ構成モデリング配列の例である。
【図７】従来のキャッシュ試験プログラム作成説明図である。
【符号の説明】
１：処理装置
１１：アーキテクチャ指定手段
１２：キャッシュ構成／モデリング配列作成手段
１３：キャッシュ構成モデリング配列
１４：解析手段
１５：擬似命令出力手段
１６：ユーザ固有指定判定手段
１７：外部インタフェース
１８：命令変換手段
２：キャッシュ構成情報
３：キャッシュ試験シート
４：プログラム
４１：キャッシュ状態設定プログラム
４２：キャッシュ試験プログラム
５：ユーザ固有命令への変換手段
【図１】
2004005178.tif 000003
【図２】
2004005178.tif 000004
【図３】
2004005178.tif 000005
【図４】
2004005178.tif 000006
【図５】
2004005178.tif 000007
【図６】
2004005178.tif 000008
【図７】
2004005178.tif 000009