(57)【要約】【課題】ＩＯバスの動作周波数をＩＯバスに接続されているＩＯカードの動作可能な周波数に応じて設定する。【解決手段】ＰＣＩバス４０を所定の動作周波数に設定し、ＰＣＩバス４０に接続されたＰＣＩカード５０のコンフィギュレーション・レジスタ５２内のＲ／Ｗ領域５４に対して検証用データを読み書きすることでＰＣＩカード５０の動作を検証する。検証結果が良好状態であるとき、設定した周波数を維持し、検証結果が不良状態であるとき、設定した周波数よりも低い周波数を設定するようにバスブリッジ３０に指示する。これにより、ＰＣＩバス４０の動作周波数をＰＣＩカード５０が安定して動作可能な周波数に応じて設定することができる。【選択図】図１
2007241462.tif 000002
【特許請求の範囲】
【請求項１】
データを記録及び該記録されたデータを読み取るための記録領域を備えるＩＯカードを接続するためのＩＯバスの動作周波数を予め定めた複数の異なる周波数の何れか１つの周波数に設定する設定手段と、
前記ＩＯバスに接続されるＩＯカードの前記記録領域に対して、前記動作周波数で予め定めた検証用データを記録し該記録した検証用データを読み取って前記ＩＯカードの動作を検証する検証手段と、
前記検証手段の検証結果が良好状態であるとき、前記動作周波数を維持するように前記設定手段に指示すると共に、前記検証手段の検証結果が不良状態であるとき、前記動作周波数より低い周波数を設定するように前記設定手段に指示する指示手段と、
を備えたＩＯバス制御装置。
【請求項２】
データを記録及び該記録されたデータを読み取るための記録領域を備えるＩＯカードを接続するためのＩＯバスの動作周波数を予め定めた複数の異なる周波数の何れか１つの周波数に設定する設定手段と、
前記ＩＯバスに接続されるＩＯカードの記録領域から該ＩＯカードの動作周波数を表す周波数情報を検出する検出手段と、
前記検出手段により前記周波数情報が非検出の場合に、前記ＩＯバスに接続されるＩＯカードの前記記録領域に対して、前記動作周波数で予め定めた検証用データを記録し該記録した検証用データを読み取って前記ＩＯカードの動作を検証する検証手段と、
前記検証手段の検証結果が良好状態であるとき、前記動作周波数を維持するように前記設定手段に指示すると共に、前記検証手段の検証結果が不良状態であるとき、前記動作周波数より低い周波数を設定するように前記設定手段に指示する指示手段と、
を備えたＩＯバス制御装置。
【請求項３】
前記検証手段は、前記設定手段に対して前記動作周波数が高周波側の周波数に設定されるように指示し、前記指示手段は前記検証手段の検証結果が良好であるとき前記検証手段で指示した動作周波数を維持するように前記設定手段に指示することを特徴とする請求項２に記載のＩＯバス制御装置。
【請求項４】
前記ＩＯカードに予め記憶された該ＩＯカードを識別するためのＩＤ情報を取得する取得手段と、前記ＩＤ情報及び前記検証手段の検証結果を記憶するＩＤ情報記憶手段と、をさらに備え、前記検証手段は、前記取得手段で取得したＩＤ情報のＩＯカードに対応する前記ＩＤ情報記憶手段に記憶されたＩＤ情報及び検証結果に基づいて前記ＩＯカードの動作を検証することを特徴とする請求項２または請求項３に記載のＩＯバス制御装置。
【請求項５】
前記検証手段は、前記ＩＤ情報記憶手段にＩＤ情報及び前記検証手段の検証結果を記憶することを特徴とする請求項４に記載のＩＯバス制御装置。
【請求項６】
データを記録及び該記録されたデータを読み取るための記録領域を備えるＩＯカードを接続するためのＩＯバスの動作周波数を予め定めた複数の異なる周波数の何れか１つの周波数に設定する工程と、
前記ＩＯバスに接続されるＩＯカードの前記記録領域に対して、前記動作周波数で予め定めた検証用データを記録し該記録した検証用データを読み取って前記ＩＯカードの動作を検証する工程と、
前記検証手段の検証結果が良好状態であるとき、前記動作周波数を維持するように前記設定手段に指示すると共に、前記検証手段の検証結果が不良状態であるとき、前記動作周波数より低い周波数を設定するように前記設定手段に指示する工程と、
を含むＩＯバス制御方法。
【請求項７】
データを記録及び該記録されたデータを読み取るための記録領域を備えるＩＯカードを接続するためのＩＯバスの動作周波数を予め定めた複数の異なる周波数の何れか１つの周波数に設定する工程、
前記ＩＯバスに接続されるＩＯカードの記録領域から該ＩＯカードの動作周波数を表す周波数情報を検出する工程と、
前記検出手段により前記周波数情報が非検出の場合に、前記ＩＯバスに接続されるＩＯカードの前記記録領域に対して、前記動作周波数で予め定めた検証用データを記録し該記録した検証用データを読み取って前記ＩＯカードの動作を検証する工程と、
前記検証手段の検証結果が良好状態であるとき、前記動作周波数を維持するように前記設定手段に指示すると共に、前記検証手段の検証結果が不良状態であるとき、前記動作周波数より低い周波数を設定するように前記設定手段に指示する工程と、
を含むＩＯバス制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＩＯバス制御装置及び制御方法にかかり、特にＩＯカードが接続されたＩＯバスの動作周波数を制御するＩＯバス制御装置及び制御方法に関する。
【背景技術】
【０００２】
ＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ）カードと呼ばれるＩＯカードが一般的に知られており、そのＩＯカードに対してデータの送受信をするための伝送路としてＰＣＩバスと呼ばれるＩＯバスが知られている。ＰＣＩカードの動作周波数は、一般的には例えば３３ＭＨｚのものと６６ＭＨｚのものがあり、ＰＣＩバスに接続されるＰＣＩカードは３３ＭＨｚまたは、６６ＭＨｚで制御される。同一のＰＣＩバスに複数のＰＣＩカードが接続され、その動作周波数が３３ＭＨｚと６６ＭＨｚとが混在している場合は、このＰＣＩバスの動作周波数は、低い周波数である３３ＭＨｚに設定する必要がある。
【０００３】
例えば、ＰＣＩバスの動作周波数の設定は、コンフィギュレーション・レジスタと呼ばれる領域内に予め格納されたそのＰＣＩカードの動作周波数を示す周波数情報を読み取って行うコンピュータシステムが知られている（特許文献１参照）。このシステムでは、ＰＣＩバスに接続されている全てのＰＣＩカードのコンフィギュレーション・レジスタ内の周波数情報の各々を読み取り、ＰＣＩバスの動作周波数を読み取った周波数情報のうちの最低周波数に切り替えている。
【特許文献１】特開２００２−２４１６９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記特許文献１に記載のシステムでは、コンフィギュレーション・レジスタと呼ばれる領域内に予め格納されたそのＰＣＩカードの動作周波数を示す周波数情報を読み取ることを前提としているため、ＰＣＩバスに接続されている全てのＰＣＩカードのコンフィギュレーション・レジスタ内に周波数情報が格納されていなくてはＰＣＩバスの動作周波数の設定が行えない。
【０００５】
本発明は、上記事実を考慮したもので、任意のＩＯカードが接続されたＩＯバスの動作周波数をＩＯカードの動作可能な周波数に応じて設定することができるＩＯバス制御装置及び制御方法を提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記目的を達成するために、第１の本発明のＩＯバス制御装置は、データを記録及び該記録されたデータを読み取るための記録領域を備えるＩＯカードを接続するためのＩＯバスの動作周波数を予め定めた複数の異なる周波数の何れか１つの周波数に設定する設定手段と、前記ＩＯバスに接続されるＩＯカードの前記記録領域に対して、前記動作周波数で予め定めた検証用データを記録し該記録した検証用データを読み取って前記ＩＯカードの動作を検証する検証手段と、前記検証手段の検証結果が良好状態であるとき、前記動作周波数を維持するように前記設定手段に指示すると共に、前記検証手段の検証結果が不良状態であるとき、前記動作周波数より低い周波数を設定するように前記設定手段に指示する指示手段と、を備えたことを特徴とする。
【０００７】
本発明のＩＯバス制御装置では、設定手段によって、予め定めた複数の異なる周波数の何れか１つの周波数にＩＯバスの動作周波数を設定する。ＩＯバスは、データを記録及び該記録されたデータを読み取るための記録領域を備えるＩＯカードを接続するためのものである。検証手段は、ＩＯバスに接続されるＩＯカードの記録領域に対して、設定手段で設定した動作周波数で予め定めた検証用データを記録する。さらに、記録した検証用データを読み取って、ＩＯカードの動作を検証する。これにより、検証手段は、設定手段により設定された動作周波数でＩＯカードが動作可能かどうかを検証することができる。指示手段は、検証手段の検証結果が良好状態、すなわちＩＯカードが動作可能の状態であるとき、その動作周波数をそのまま維持するように設定手段に指示する。また、検証手段の検証結果が不良状態、すなわちＩＯカードが動作不可の状態であるとき、その動作周波数より低い周波数を設定するように設定手段に指示する。ここで、ＩＯカードは予め定めた動作周波数（動作可能な周波数）よりも低い周波数により動作をする可能性は高いが、その動作周波数を越えた周波数により動作をする可能性は低い。そのため、検証手段による検証結果が不良状態であるときは、設定した周波数より低い周波数を設定することによってＩＯカードが動作可能になる可能性が高い。そこで、ＩＯカードが動作不可な状態であるとき、設定手段によって、より低い周波数を動作周波数に設定することで、ＩＯカードの動作としてその検証結果が良好状態となるように設定できる。このように、本発明のＩＯバス制御装置では、ＩＯカードの動作可能な検証時の周波数に応じて、ＩＯバスの動作周波数を設定することができる。
【０００８】
第２の発明のＩＯバス制御装置は、データを記録及び該記録されたデータを読み取るための記録領域を備えるＩＯカードを接続するためのＩＯバスの動作周波数を予め定めた複数の異なる周波数の何れか１つの周波数に設定する設定手段と、前記ＩＯバスに接続されるＩＯカードの記録領域から該ＩＯカードの動作周波数を表す周波数情報を検出する検出手段と、前記検出手段により前記周波数情報が非検出の場合に、前記ＩＯバスに接続されるＩＯカードの前記記録領域に対して、前記動作周波数で予め定めた検証用データを記録し該記録した検証用データを読み取って前記ＩＯカードの動作を検証する検証手段と、前記検証手段の検証結果が良好状態であるとき、前記動作周波数を維持するように前記設定手段に指示すると共に、前記検証手段の検証結果が不良状態であるとき、前記動作周波数より低い周波数を設定するように前記設定手段に指示する指示手段と、を備えたことを特徴とする。
【０００９】
ＩＯカードの記録領域に、該ＩＯカードの動作周波数を示す周波数情報が格納されている場合、格納されている周波数情報を読み取ることにより、動作可能な周波数が検出できる。例えば、ＰＣＩカードの記録領域であるコンフィギュレーション・レジスタには該ＰＣＩカードの動作周波数を示す周波数情報が予め格納されている場合がある。そこで、本発明のＩＯバス制御装置は、検出手段を備え、この検出手段によって、ＩＯバスに接続されるＩＯカードの記録領域からＩＯカードの動作周波数を示す周波数情報を検出する。この検出手段により周波数情報が非検出の場合、検証手段は、そのＩＯカードの動作を、ＩＯカードの記録領域に対して、動作周波数で予め定めた検証用データを記録し、記録した検証用データを読み取ることによって検証する。周波数情報が非検出の場合とは例えば、ＩＯカードに動作周波数を示す周波数情報が予め格納されていなかったり、動作周波数を示す周波数情報を格納する領域（コンフィギュレーション・レジスタ）が設けられていなかったりして、ＩＯカードの周波数情報がＩＯカード自身から読み取れない場合である。指示手段は、検証手段の検証結果が良好状態であるとき、動作周波数を維持するように、設定手段に指示すると共に、検証手段の検証結果が不良状態であるとき、動作周波数より低い周波数を設定するように設定手段に指示する。このように、ＩＯカードから周波数情報が検出できない場合でも、検証手段で検証した検証結果をＩＯカードから検出した周波数情報のように扱うことができる。従って、本発明のＩＯバス制御装置では、ＩＯカードの動作可能な検証時の周波数に応じて、ＩＯバスの動作周波数を設定することができる。
【００１０】
前記検証手段は、前記設定手段に対して前記動作周波数が高周波側の周波数に設定されるように指示し、前記指示手段は前記検証手段の検証結果が良好であるとき前記検証手段で指示した動作周波数を維持するように前記設定手段に指示することを特徴とする。
【００１１】
ＩＯバスは、その動作周波数が高いほど、ＩＯカードに対してより高速にデータの送受信をすることができる。そのためＩＯバスの動作周波数は、より高い周波数に設定することが好ましい。そこで本発明では、検証手段は、設定手段に対して、動作周波数が高周波側の周波数に設定されるように指示して、高周波側の動作周波数について検証を行う。指示手段は、検証手段の検証結果が良好状態であるとき、この高周波側の動作周波数をそのまま維持するように設定手段に指示する。このように、検証手段はＩＯバスの動作周波数を高周波側から検証することで、設定手段はより高い周波数側の周波数へ容易に設定することができる。
【００１２】
前記ＩＯバス制御装置は、前記ＩＯカードに予め記憶された該ＩＯカードを識別するためのＩＤ情報を取得する取得手段と、前記ＩＤ情報及び前記検証手段の検証結果を記憶するＩＤ情報記憶手段と、をさらに備え、前記検証手段は、前記取得手段で取得したＩＤ情報のＩＯカードに対応する前記ＩＤ情報記憶手段に記憶されたＩＤ情報及び検証結果に基づいて前記ＩＯカードの動作を検証することを特徴とする。
【００１３】
ＩＯカードの動作周波数を特定できればＩＯバスの動作周波数を設定できる。そこで、本発明では、ＩＯカードと別体に設けられるＩＤ情報記憶手段は、ＩＯカードを識別するためのＩＤ情報と、該ＩＯカードの検証結果としての該ＩＯカードの動作可能な周波数と、を対応付けて予め記憶する。そして取得手段は、ＩＯカードのＩＤ情報を取得する。このように、ＩＯカードのＩＤ情報を取得できれば、検証手段は、そのＩＤ情報に対応する周波数情報を特定できる。従って、検証手段で特定された周波数情報に基づいて検証手段が検証を行う。このように、ＩＯカードをＩＤ情報で識別するのみで、ＩＯカードの周波数情報を定めることができ、周波数情報が格納されたＩＯカードと同様に扱うことができる。従って、迅速に該ＩＯカードが動作可能な周波数を検出できる。
【００１４】
前記検証手段は、前記ＩＤ情報記憶手段にＩＤ情報及び前記検証手段の検証結果を記憶することができる。
【００１５】
ＩＯカードの動作周波数は、検証手段による検証結果によるものが、より正確である。そこで、本発明では、検証手段は、検証結果をＩＤ情報記憶手段に記憶する。このように、検証手段の検証結果を記憶することにより、ＩＯカードの検証結果による周波数情報からＩＯカードの動作周波数を特定することができる。従って、より正確かつ、迅速にＩＯカードの動作を検証することが可能になる。
【００１６】
前記第１の発明のＩＯバス制御装置は、次のＩＯバス制御方法の工程を含んで実現できる。詳細は、データを記録及び該記録されたデータを読み取るための記録領域を備えるＩＯカードを接続するためのＩＯバスの動作周波数を予め定めた複数の異なる周波数の何れか１つの周波数に設定する工程と、前記ＩＯバスに接続されるＩＯカードの前記記録領域に対して、前記動作周波数で予め定めた検証用データを記録し該記録した検証用データを読み取って前記ＩＯカードの動作を検証する工程と、前記検証手段の検証結果が良好状態であるとき、前記動作周波数を維持するように前記設定手段に指示すると共に、前記検証手段の検証結果が不良状態であるとき、前記動作周波数より低い周波数を設定するように前記設定手段に指示する工程と、を含む。
【００１７】
また、前記第２の発明のＩＯバス制御装置は、次のＩＯバス制御方法の工程を含んで実現できる。詳細は、データを記録及び該記録されたデータを読み取るための記録領域を備えるＩＯカードを接続するためのＩＯバスの動作周波数を予め定めた複数の異なる周波数の何れか１つの周波数に設定する工程、前記ＩＯバスに接続されるＩＯカードの記録領域から該ＩＯカードの動作周波数を表す周波数情報を検出する工程と、前記検出手段により前記周波数情報が非検出の場合に、前記ＩＯバスに接続されるＩＯカードの前記記録領域に対して、前記動作周波数で予め定めた検証用データを記録し該記録した検証用データを読み取って前記ＩＯカードの動作を検証する工程と、前記検証手段の検証結果が良好状態であるとき、前記動作周波数を維持するように前記設定手段に指示すると共に、前記検証手段の検証結果が不良状態であるとき、前記動作周波数より低い周波数を設定するように前記設定手段に指示する工程と、を含む。
【発明の効果】
【００１８】
以上説明したように、本発明によれば、接続されているＩＯカードの動作可能な周波数に応じて、ＩＯバスの動作周波数を設定するため、ＩＯカードを安定して動作させることができる、という効果がある。
【発明を実施するための最良の形態】
【００１９】
以下、図面を参照して本発明の実施の一例を詳細に説明する。
【００２０】
［第１実施の形態］
図１は、本実施の形態に係るＩＯバス制御装置１０の概略構成を示す機能ブロック図である。本実施の形態に係るＩＯバス制御装置１０は、ＰＣＩバスの制御を行うものである。なお、本実施の形態では、動作周波数が６６ＭＨｚまたは３３ＭＨｚであるＰＣＩカードが接続されたＰＣＩバスを制御する構成としているが、他のＩＯカードが接続されたＩＯバスを制御する構成としてもよい。
【００２１】
ＩＯバス制御装置１０は、ＣＰＵ１２とバスブリッジ３０とを備えている。ＣＰＵ１２は、ＲＯＭ１４、ＲＡＭ１６及びメモリ１８とバス２０を介して互いにコマンドやデータを授受可能に接続されている。メモリ１８には、後述する処理ルーチンを実行するためのプログラムが予め格納されている。なお、図示は省略したが、ＣＰＵ１２には、バス２０を介してタイマーがさらに接続されており、ＣＰＵ１２は、このタイマーを読み取って、後述する処理を実行する時期を判断する。
【００２２】
バスブリッジ３０には、ＰＣＩバス４０が接続されており、ＰＣＩバス４０の動作周波数を６６ＭＨｚまたは３３ＭＨｚのいずれかに設定する周波数切替部３２が含まれる。ＰＣＩバス４０にはＰＣＩカード５０が接続可能とされ、バスブリッジ３０で設定された動作周波数でＰＣＩカード５０に対して後述するＰＣＩカード５０の動作を検証するための検証用データ等のデータが授受される。
【００２３】
ＰＣＩカード５０は、記録領域であるコンフィギュレーション・レジスタ５２を含んでいる。コンフィギュレーション・レジスタ５２は、データを記録及び記録したデータを読み取ることができるＲ／Ｗ領域５４と周波数情報レジスタ５６とを含んでいる。周波数情報レジスタ５６には、ＰＣＩカード５０の動作周波数を示す周波数情報として、３３ＭＨｚまたは、６６ＭＨｚのいずれかの周波数情報が格納されている。なお、本実施の形態では周波数情報レジスタ５６を含んで構成した場合を説明するが、周波数情報及び周波数情報レジスタ５６は必須の構成ではない。
【００２４】
なお、本実施の形態のＣＰＵ１２は、本発明の検証手段及び指示手段に対応し、バスブリッジ３０は、本発明の設定手段に対応する。
【００２５】
次に、本実施の形態の作用を説明する。
【００２６】
本実施の形態のＩＯバス制御装置１０によるＰＣＩバス４０の制御処理の流れを図２を参照して説明する。
【００２７】
まずＩＯバス制御装置１０に電源が投入されると、図２の処理ルーチンが実行されてステップ１００へ進む。ステップ１００では、ＣＰＵ１２は、図示しないタイマー等を読み取って調査時期になったか否かを判断する。調査時期とは、例えば前回の制御処理から一定期間経過した後等がある。未だ調査時期になっていなければ否定判定となり、本処理を終了する。一方、調査時期になったと判断した場合はステップ１０２へ進む。
【００２８】
ステップ１０２では、バスブリッジ３０の周波数切替部３２から現在設定されているＰＣＩバス４０の動作周波数を読み取る。次のステップ１０４では、ステップ１０２で読み取った動作周波数が６６ＭＨｚか否か、すなわちＰＣＩバス４０が６６ＭＨｚの動作周波数で動作しているか否かを判断する。本実施形態では、ＰＣＩバス４０は３３／６６（ＭＨｚ）の何れかで動作が可能である。３３ＭＨｚでＰＣＩバス４０が動作している場合は６６ＭＨｚで動作している場合に比べて安定的に動作している確度が高い。従って、ステップ１０４の判断は、動作周波数が高周波側か否かを判断することによって、不安定な動作をしている可能性が有るか否かを判別するものである。
【００２９】
ステップ１０４で否定判断の場合、安定的動作であるとしてステップ１２２へ進み、周波数切替部３２にＰＣＩバス４０の動作周波数の設定を低周波側の周波数（３３ＭＨｚ）のまま継続するように指示を出し、本処理を終了する。
【００３０】
一方、ステップ１０４で肯定されると、不安定動作である可能性有りとしてステップ１０６以降の検証処理を開始する。まず、ステップ１０６では、図示しないカウンタに後述するＲ／Ｗの回数を表わす変数Ｎ＝１をセットし、次のステップ１０８においてＲ／Ｗ領域５４に、予め定めた検証用データＷを、第１回目の検証用データＷ１として書込み、そのＲ／Ｗ領域５４からＷ１を次のステップ１１０において読み取る（Ｒ／Ｗの処理）。このステップ１１０では、読み取った検証用データを第１回目の読み取りデータＲ１としてメモリ１８に記憶する。なお、Ｒ／Ｗ領域５４はコンフィギュレーション・レジスタ５２内に設けられた領域であり、予め定めた検証用データＷは乱数により決定することができる。これらステップ１０８及び１１０の処理により、Ｒ／Ｗ領域５４への記録及び読み取りの１回の処理（検証のための）が完了する。
【００３１】
次のステップ１１２では、次回の記録及び読み取りをするために、変数Ｎをインクリメントし、ステップ１１４へ進む。ステップ１１４では上記記録及び読み取りのセットを所定回（本実施形態では１０回）終了したか否か（Ｎ＞１０）を判断する。
【００３２】
ステップ１１４で否定されるとステップ１０８に戻り、検証用データの書込み、読み取り、及び記憶の処理を繰り返す。一方、ステップ１１４で肯定されると、ステップ１１６へ進み、検証処理を実行する。このようにして、第１回目から第Ｎ回目のＲ／Ｗを行い、得られる所定個のデータセット（１０セット）を用いた検証処理へ移行する。
【００３３】
ステップ１１６の検証処理は、Ｒ／Ｗ領域５４へ書き込んだ検証用データＷ１〜Ｗ１０とメモリ１８に記憶してあるＲ／Ｗ領域５４から読み取った検証用データＲ１〜Ｒ１０とが一致しているか否かをそれぞれ比較することによって、検証する。すなわち、ステップ１１６の検証処理は、動作周波数６６ＭＨｚでデータを記録し、その記録したデータを読み取ることを実行し、両者に相違のないことを複数について検証することである。本実施の形態では、所定回（１０回）全てが一致することを基準として動作良好状態と検証する。一方、不一致があるとき、動作不良状態と検証する。なお、ここでは所定回（１０回）の全て一致を基準としているが、その回数は予め決めた他の回数（９回以下）でもよい。なお、以下の説明ではステップ１０６〜ステップ１１６の処理をＲ／Ｗ検証処理と言う。
【００３４】
次のステップ１１８では、ステップ１１６の検証結果に基づいてＰＣＩカード５０が良好状態（エラー無）か否かを判断する。ＰＣＩカード５０の動作が良好状態の場合（ステップ１１８で肯定）、ステップ１２４へ進む。ステップ１２４では、６６ＭＨｚの周波数でのＰＣＩカード５０の動作が良好状態であり、ＰＣＩカード５０は高周波側の動作周波数で安定した動作が可能なので、周波数切替部３２に動作周波数の設定を６６ＭＨｚのまま継続するように指示を出し、本処理を終了する。
【００３５】
一方、ＰＣＩカード５０の動作が不良状態であり、ステップ１１８で否定判断の場合、設定されている動作周波数では安定した動作が不可能であると判定し、ステップ１２０において、周波数切替部３２に動作周波数の設定を６６ＭＨｚから低周波側の３３ＭＨｚへ切り替るように指示を出し、本処理を終了する。周波数切替部３２は、この指示をうけてＰＣＩバス４０の動作周波数の設定を６６ＭＨｚから３３ＭＨｚへ切り替るので、ＰＣＩバス４０は、３３ＭＨｚの動作周波数で動作する。これにより、ＰＣＩカード５０は３３ＭＨｚの動作周波数で動作することになるので、安定した動作が可能になる。
【００３６】
なお、本実施の形態ではＰＣＩバスにＰＣＩカードが１つ接続されている場合としているが、ＰＣＩバスにＰＣＩカードが複数接続されている場合は、それぞれのＰＣＩカードごとに上記の処理を行なえばよい。この場合、調査時期はＰＣＩカードごとに異なっていてもよい。
【００３７】
また、本実施の形態では、ステップ１０４でＰＣＩカード５０の動作が不安定な可能性のある高周波側における動作において不安定な可能性があるとしてＲ／Ｗ検証処理を実行しているが、本発明はこれに限定されない。例えば、ステップ１０４の代わりに、周波数切替部３２の設定を、現在の設定に拘わらず高周波側の６６ＭＨｚに設定する処理に変更し、ＰＣＩカード５０の動作を検証するようにしてもよい。この場合、動作周波数が３３ＭＨｚのＰＣＩカードが接続されており、ＰＣＩバスが３３ＭＨｚで動作していた後、このＰＣＩカードを動作周波数が６６ＭＨｚのＰＣＩカードに交換した場合、動作周波数を高周波側の６６ＭＨｚに設定することができるので、ＰＣＩカードはより高速に安定した動作をすることができる。
【００３８】
このように本実施の形態では、周波数切替部で設定したＰＣＩバスの動作周波数においてＰＣＩカードの動作の検証を行ない、その検証結果に基づいてＰＣＩバスの動作周波数を継続または切り替えているので、ＰＣＩカードの動作可能な検証時の周波数に応じて、ＰＣＩバスの動作周波数を設定することができる。従って、ＰＣＩバスに接続されているＰＣＩカードが安定して動作可能になる。
【００３９】
さらに、本実施の形態では、ＰＣＩカードに周波数情報が格納されているか否かにかかわらず、ＰＣＩバスの動作をＲ／Ｗ検証処理により検証しているので、そのＰＣＩカードが良好な状態で動作可能な周波数に応じて、ＰＣＩバスの動作周波数を設定することができるので、ＰＣＩバスに接続されているＰＣＩカードがより安定して動作可能になる。例えば、６６ＭＨｚの動作周波数を示す周波数情報が予め格納されているＰＣＩカードを、６６ＭＨｚの周波数で動作をさせると、ＰＣＩカードの劣化等によりエラーが発生してしまう場合、６６ＭＨｚで動作させたときの検証結果が不良状態となるので、動作周波数の設定をより低い周波数である３３ＭＨｚに設定する。このように、ＰＣＩカードに格納されている周波数情報にかかわらずＰＣＩバスの動作周波数を設定することができる。従って、ＰＣＩカードを良好な状態で動作可能な動作周波数で動作させることができるので、より安定して動作させることができる。
【００４０】
［第２実施の形態］
本実施の形態は、ＰＣＩカードに周波数情報が格納されているか否かにかかわらず、ＰＣＩバスの動作周波数を設定するものである。なお、本実施の形態は、第１実施の形態と略同様の構成であるので、同一部分には、同一符号を付して詳細な説明は省略する。
【００４１】
図３は、本実施の形態に係るＩＯバス制御装置１０Ａの概略構成を示す機能ブロック図である。本実施の形態に係るＩＯバス制御装置１０Ａは、ＰＣＩバス４０にＰＣＩカードが複数（５０、５０Ａ、６０）接続可能とされている。ＰＣＩカード５０Ａは、ＰＣＩカード５０と略同様の構成となっており、コンフィギュレーション・レジスタ５２Ａはコンフィギュレーション・レジスタ５２に対応し、Ｒ／Ｗ領域５４ＡはＲ／Ｗ領域５４に対応し、周波数情報レジスタ５６Ａは周波数情報レジスタ５６に対応する。なお、ＰＣＩカード５０ＡとＰＣＩカード５０の動作周波数が異なる場合、周波数レジスタ５６Ａと周波数レジスタ５６とに格納されている周波数情報は異なる。また、ＰＣＩカード６０のコンフィギュレーション・レジスタ６２は、Ｒ／Ｗ領域６４を含んでいるが、周波数情報レジスタを含んでいない。なお、本実施形態では周波数情報レジスタの有無は要求しない。すなわち、ＰＣＩバス４０に接続されている複数のＰＣＩカードは、周波数情報レジスタを含んでいなくてもよいし、含んでいてもよい。
【００４２】
なお、本実施の形態のＣＰＵ１２は、本発明の検出手段に対応する。
【００４３】
次に、本実施の形態の作用を説明する。本実施の形態のＩＯバス制御装置１０ＡによるＰＣＩバス４０の制御処理の流れを図４を参照して説明する。
【００４４】
まずＩＯバス制御装置１０Ａに電源が投入されると、図４の処理ルーチンが実行されてステップ２００へ進む。ステップ２００では、ＣＰＵ１２は、図示しないタイマー等を読み取って調査時期になったか否かを判断する。本実施の形態の調査時期とは、例えば、ＩＯバス制御装置１０Ａの電源が投入されたときや、新規ＰＣＩカードがＰＣＩバスに接続されたとき等があるが、第１実施の形態と同様であってもよい。未だ調査時期になっていなければ否定判定となり、本処理を終了する。一方、調査時期になったと判断した場合はステップ２０２へ進む。
【００４５】
ステップ２０２では、バスブリッジ３０の周波数切替部３２から現在設定されているＰＣＩバス４０の動作周波数を読み取る。次のステップ２０４は、ステップ２０２で読み取った周波数が６６ＭＨｚ（６６ＭＨｚの動作周波数）か否かを判断し、否定判定の場合に、ステップ２２０へ進む。ステップ２０４で否定されたときは、安定動作であるとしてステップ２２０において、周波数切替部３２にＰＣＩバス４０の動作周波数の設定を低周波側の周波数（３３ＭＨｚ）のまま継続するように指示を出し、本処理を終了する。
【００４６】
一方、ステップ２０４で肯定されると、不安定動作である可能性有りとしてステップ２０６以降のＲ／Ｗ検証処理を開始する。まずステップ２０６では、ＰＣＩバス４０に接続されている全ＰＣＩカード（図３の例ではＰＣＩカード５０、５０Ａ、６０）の周波数情報の読み取りを行う。この周波数情報の読み取りは、周波数情報レジスタ（５６、５６Ａ）に格納されている周波数情報を読み取ることによって行う。次のステップ２０８では、全ＰＣＩカードに周波数情報が有るか否かを判断する。全ＰＣＩカードに周波数情報が有るときは、ステップ２０８で肯定されて、ステップ２３０へ進む。ステップ２３０では、ステップ２０６で読み取った周波数情報の全てが６６ＭＨｚか否かを判断し、肯定判断のときはステップ２３２において周波数切替部３２に現周波数（６６ＭＨｚ）維持するべく継続を指示する。一方、ステップ２３０で否定判断のときはステップ２３４において、周波数切替部３２にＰＣＩバス４０の動作周波数の設定を、３３ＭＨｚに設定するよう指示を出し、本処理を終了する。
【００４７】
ステップ２１０で否定判断のときは、周波数情報レジスタが無いＰＣＩカードを含む場合や、周波数情報が格納されていないＰＣＩカードを含む場合のため、ステップ２１０へ進み該当するＰＣＩカードのうちの１つを選択する。この場合、ＰＣＩカード６０を選択する。次のステップ２１１では、ステップ２１０で選択したＰＣＩカード６０に対してＲ／Ｗ検証処理を行う。このステップ２１１のＲ／Ｗ検証処理は、図２のステップ１０６乃至ステップ１１６の処理と同様であるため、詳細な説明を省略する。
【００４８】
Ｒ／Ｗ検証処理が終了するとステップ２１２へ進み、選択したＰＣＩカード６０が良好状態（エラー無）か否かを判断する。ＰＣＩカード６０の動作が良好状態の場合（ステップ２１２で肯定）、ステップ２１６へ進む。ステップ２１６では、周波数切替部３２に動作周波数について６６ＭＨｚの継続を指示し、ステップ２１８へ進む。ステップ２１８では、残存するＰＣＩカードが有るか否かを判断し、否定判断の場合、本処理を終了する。一方、残存する場合には（ステップ２０８で肯定判断）ステップ２１０に戻り、他のＰＣＩカードを選択して、上記の処理を繰り返す。
【００４９】
ここで、ＰＣＩカード６０の動作が不良状態であり、ステップ２１２で否定判断の場合、設定されている動作周波数では安定した動作が不可能であると判定し、ステップ２１４において、周波数切替部３２に動作周波数の設定を６６ＭＨｚから低周波側の３３ＭＨへ切り替るように指示を出し、本処理を終了する。周波数切替部３２は、この指示をうけてＰＣＩバス４０の動作周波数の設定を６６ＭＨｚから３３ＭＨｚへ切り替るので、ＰＣＩバス４０は３３ＭＨｚの動作周波数で動作する。これにより、ＰＣＩカード６０は、３３ＭＨｚの動作周波数で動作することになるので、安定した動作が可能になる。
【００５０】
このように、本実施の形態では、ＰＣＩカードに周波数情報が格納されていない等によりＰＣＩカードの周波数情報が読み取れない場合でも、ＰＣＩカードの動作の検証を行ない、その検証結果に基づいてＰＣＩバスの動作周波数を設定するので、検証結果による周波数をＰＣＩカードから読み取った周波数情報のように扱うことができ、ＰＣＩカードの動作可能な周波数に応じて、ＰＣＩバスの動作周波数を設定することができる。
【００５１】
［第３実施の形態］
本実施の形態は、ＰＣＩカードの周波数情報をＰＣＩカードとは別個に格納し、利用するものである。なお、本実施の形態は、上記実施の形態と略同様の構成であるので、同一部分には、同一符号を付して詳細な説明は省略する。
【００５２】
図５は、本実施の形態に係るＩＯバス制御装置１０Ｂの概略構成を示す機能ブロック図である。なお、図５の機能ブロック図は、図３の機能ブロック図と同様であるため、詳細な説明を省略するが、図５に示すブロック図におけるメモリ１８Ａには、ＰＣＩカード６０Ａを識別するためのＩＤ情報及びそのＩＤ情報に対応するＰＣＩカード６０Ａの動作周波数が予め記憶される。ＩＤ情報は、ＰＣＩカードを識別するためのデータであり、製造メーカ、機種、製造番号等を表わす識別子である。また、ＰＣＩカード（５０、６０、６０Ａ）は、上記実施形態と同様の構成であるが、本実施の形態では、ＰＣＩカードにＩＤ情報を格納するための格納領域（ＩＤ情報格納部５８、６８、６８Ａ）を有している。
【００５３】
なお、本実施の形態のＣＰＵ１２は、本発明の取得手段に対応し、メモリ１８Ａは、本発明のＩＤ情報記憶手段に対応する。
【００５４】
次に、本実施の形態の作用を説明する。本実施の形態のＩＯバス制御装置１０ＢによるＰＣＩバス４０の制御処理の流れを図６を参照して説明する。なお、図４と図６の差異は、ステップ２０６をステップ２０５及び２０７に変更したこと、ステップ２０８をステップ２０９に変更したこと、ステップ２１０をステップ２１０Ａに変更したこと、ステップ２１６の後にステップ２１７を追加したこと、ステップ２１４の後にステップ２１５を追加したこと、ステップ２１８をステップ２１９に変更したことである。
【００５５】
まず、ＩＯバス制御装置１０Ｂに電源投入されたときか、それ以降の調査時期で、ＰＣＩバスが６６ＭＨｚの動作周波数であるとき（ステップ２００〜２０４、ステップ２０４で肯定判断）、ステップ２０５へ進み、全てのＰＣＩカードから情報を読み取る。この情報の読み取りは、ＰＣＩバス４０に接続されている全ＰＣＩカード（ＰＣＩカード５０、６０、６０Ａ）の周波数情報及びＩＤ情報を読み取ることである。周波数情報の読み取りは、コンフィギュレーション・レジスタ内の周波数情報レジスタに格納されている周波数情報を読み取ることにより行う。ＩＤ情報の読み取りは、コンフィギュレーション・レジスタ内のＩＤ情報格納部に格納されているＩＤ情報を読み取ることにより行う。ここで、ＰＣＩカードは、周波数情報レジスタに周波数情報が格納されていない場合や、周波数情報レジスタそのものが存在しない場合には、周波数情報を読み取ることができない。このため、本実施形態では、ＰＣＩカードのＩＤ情報と対応付けられた周波数情報を予めメモリ１８Ａに格納して、ＰＣＩカードのＩＤ情報を特定することで、メモリ１８Ａからその周波数情報を読み取ることにより、ＰＣＩカードの周波数情報を特定（把握）することを可能にした。
【００５６】
そこでステップ２０７では、メモリ１８Ａからステップ２０５で読み取ったＩＤ情報に対応する周波数情報を読み取る。すなわち、予めメモリ１８にＰＣＩカード６０Ａを識別するためのＩＤ情報及びそれに対応付けてＰＣＩカード６０Ａの検証結果として周波数情報が予め記憶してあるのでこれを読み取る。これによって、ＰＣＩカードから周波数情報を読み取ることが困難な場合であっても、メモリ１８Ａから読み取った周波数情報を、ＰＣＩカードに格納された周波数情報として扱うことができる。
【００５７】
次に、ステップ２０９では、全ＰＣＩカードの周波数情報を読み取れたか否かを判断する。この場合の読み取りは、ＰＣＩカード及びメモリ１８Ａの双方を含むものである。なお、全ＰＣＩカードの周波数情報が読み取れた場合、ステップ２０９で肯定され、上記実施形態と同様にステップ２３０以降を処理する。一方、周波数情報を読み取ることができなかったＰＣＩカードが存在するときは、ステップ２０９で否定され、ステップ２１０Ａへ進む。ステップ２１０Ａでは、周波数情報が読み取れず、動作周波数が不明なＰＣＩカードのうちの１つを選択する。ここでは、ＰＣＩカード６０を選択することとする。なお、動作周波数が不明なＰＣＩカードが複数ある場合には、その内の１つを選択すればよい。そして、ステップ２１０Ａで選択したＰＣＩカード６０に対して上記と同様に、ステップ２１１においてＲ／Ｗ検証処理を実行する。
【００５８】
Ｒ／Ｗ検証処理が終了し、ＰＣＩカードが良好状態のときには動作周波数を６６ＭＨｚで維持し（ステップ２１２で肯定判断、ステップ２１６）ステップ２１７へ進む。ステップ２１７では、ＰＣＩカード６０の動作周波数として６６ＭＨｚを表すデータを、ＩＤ情報に対応付けて、メモリ１８Ａに記憶する。このステップ２１７の記憶処理は、ＰＣＩカードの検証結果を記憶することに相当する。そして、次のステップ２１９では、周波数情報が不明なＰＣＩカードが残存するか否かを判断し、２０９で周波数情報が不明と判断されたＰＣＩカードが他にある場合には、肯定判断の場合には、ステップ２１０Ａに戻り、残存する他のＰＣＩカードを選択して、上記の処理を繰り返す。一方、ステップ２１９で否定されると、そのまま本処理を終了する。
【００５９】
Ｒ／Ｗ検証処理が終了し、ＰＣＩカードが不良状態のときには、動作周波数を３３ＭＨｚに切り替えて（ステップ２１２で否定判断、ステップ２１４）ステップ２１５へ進む。ステップ２１５では、ＰＣＩカード６０の動作周波数として３３ＭＨｚを表わすデータをＩＤ情報に対応付けて、メモリ１８Ａに記憶し、本処理を終了する。上述のようにステップ２１５及び２１７により、ＰＣＩカードの動作周波数としてメモリ１８にＩＤ情報に対応付けて記憶するので、次回以降ではＲ／Ｗ検証処理を実行することなく、ＰＣＩカードの周波数情報を特定することができる。
【００６０】
このように、本実施の形態では、ＰＣＩカードを識別するためのＩＤ情報に対応付けて動作周波数を予めメモリに記憶しているので、例えば、ＰＣＩカードに周波数情報が格納されていなかったり、コンフィギュレーション・レジスタが設けられていなかったりしてＰＣＩカードの周波数情報がＰＣＩカード自身から読み取れない場合でも、メモリに予め記憶している周波数情報を、ＰＣＩカードに格納されている周波数情報と同等に利用して、ＰＣＩカードの検証を行うことができる。従って、迅速にＰＣＩカードが動作可能な周波数を検出できる。
【００６１】
また、本実施の形態では、ＰＣＩカードの動作周波数を検証結果として記憶するので、次回以降、この検証結果に基づいてＰＣＩカードの動作を検証することができる。従って、より正確かつ、迅速にＰＣＩカードの動作を検証することができる。
【図面の簡単な説明】
【００６２】
【図１】本発明の第１実施の形態に係るＩＯバス制御装置の主要構成を示す機能ブロック図である。
【図２】本実施の第１実施の形態に係るＩＯバス制御装置で実行される処理の流れを示すフローチャートである。
【図３】本発明の第２実施の形態に係るＩＯバス制御装置の主要構成を示す機能ブロック図である。
【図４】本実施の第２実施の形態に係るＩＯバス制御装置で実行される処理の流れを示すフローチャートである。
【図５】本発明の第３実施の形態に係るＩＯバス制御装置の主要構成を示す機能ブロック図である。
【図６】本実施の第３実施の形態に係るＩＯバス制御装置で実行される処理の流れを示すフローチャートである。
【符号の説明】
【００６３】
１０、１０Ａ、１０Ｂ  ＩＯ制御装置
１２  ＣＰＵ（検証手段、指示手段、検出手段、取得手段）
１８  メモリ（ＩＤ情報記憶手段）
３０  バスブリッジ（設定手段）
３２  周波数切替部
４０  ＰＣＩバス
５０、５０Ａ、６０、６０Ａ  ＰＣＩカード
【図１】
2007241462.tif 000003
【図２】
2007241462.tif 000004
【図３】
2007241462.tif 000005
【図４】
2007241462.tif 000006
【図５】
2007241462.tif 000007
【図６】
2007241462.tif 000008