(57)【要約】【課題】  アクセス時の制御タイミングが異なる複数の外部デバイスに対して、ソフトウェアの変更なしにアクセスが可能であるバスコントローラ装置を提供する。【解決手段】  外部デバイス２２０に書き込みアクセスと読み出しアクセスを行い、書き込みデータと読み出しデータを比較器２０８で比較することにより、バスブリッジ回路２０３に設定されている制御タイミング設定が適切かどうかを判断する。比較結果が不一致の場合は、設定値発生器２０９が新たな設定値を発生し、その設定でバスブリッジ回路２０３を制御する。書き込みアクセスと読み出しアクセスを繰り返すことにより、適切な設定値を獲得することができ、外部デバイス２２０に対して適切なアクセスが可能となる。外部デバイス２２０が制御タイミングが異なるデバイスに入れ替えられたとしても、同様にして、適切なアクセスが可能となる。【選択図】  図１
2006277114.tif 000002
【特許請求の範囲】
【請求項１】
ＣＰＵがアクセスタイミングの異なる複数の外部デバイスに対しアクセスするときのタイミングを制御するバスコントローラ装置において、
ＣＰＵバスと外部デバイスバスとのバスプロトコルを変換するためのバスブリッジ回路と、
上記バスブリッジ回路から出力される制御信号のタイミングを制御するためのコントロールレジスタ群と、
上記ＣＰＵから上記外部デバイスへの書き込みデータと、その読み出しデータとを比較するための比較器と、
上記比較器からの比較一致信号を受けて、上記コントロールレジスタ群の設定値を発生するレジスタ設定値発生器と、
上記比較器での比較が一致する時の上記コントロールレジスタの設定値を保持するための設定値保持部と、
を備えたことを特徴とするバスコントローラ装置。
【請求項２】
請求項１記載のバスコントローラ装置において、
上記外部デバイスに対して書き込みアクセスと、読み出しアクセスを行うためのアクセス信号を発生するアクセス信号発生器と、
上記ＣＰＵからのアクセスと、上記アクセス信号発生器からのアクセスとのいずれを上記バスブリッジ回路に伝えるかを選択する第１のセレクタ回路と、
上記設定値発生器からの設定と、上記ＣＰＵからの設定とのいずれを上記コントロールレジスタ群に設定するかを選択する第２のセレクタ回路と、
上記第１、第２のセレクタ回路に上記各選択のためのセレクト信号を入力するための入力端子と、
を備えたことを特徴とするバスコントローラ装置。
【請求項３】
請求項１記載のバスコントローラ装置において、
上記外部デバイスに対して書き込みアクセスと、読み出しアクセスを行うためのアクセス信号を発生するアクセス信号発生器と、
上記ＣＰＵからのアクセスと、上記アクセス信号発生器からのアクセスとのいずれを上記バスブリッジ回路に伝えるかを選択する第１のセレクタ回路と、
上記設定値発生器からの設定と、上記ＣＰＵからの設定とのいずれを上記コントロールレジスタ群に設定するかを選択する第２のセレクタ回路と、
上記第１、第２のセレクタ回路に上記各選択のためのセレクト信号を入力するためのセレクトレジスタと、
を備えたことを特徴とするバスコントローラ装置。
【請求項４】
請求項１記載のバスコントローラ装置において、
上記外部デバイスに対して書き込みアクセスと、読み出しアクセスを行うためのアクセス信号発生器と、
上記ＣＰＵからのアクセスと、上記アクセス信号発生器からのアクセスとのいずれを上記バスブリッジ回路に伝えるかを選択する第１のセレクタ回路と、
上記設定値発生器からの設定と、上記ＣＰＵからの設定とのいずれを上記コントロールレジスタ群に設定するかを選択する第２のセレクタ回路と、
上記１、第２のセレクタ回路に上記各選択のためのセレクト信号を入力するための入力端子と、
上記１、第２のセレクタ回路に上記各選択のためのセレクト信号を入力するためのセレクトレジスタと、
を備えたことを特徴とするバスコントローラ装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＣＰＵなどが多様な外部デバイスにアクセスするときのタイミングを制御するバスコントローラ装置に関し、アクセスの制御タイミングが異なる複数の外部デバイスと接続する際の制御タイミングの設定の容易化を図ったものに関するものである。
【背景技術】
【０００２】
従来、ＣＰＵから外部バスを通して外部デバイスにアクセスする場合、図５に示されるバスコントローラ装置１００のように、ＣＰＵ１０２のシステムバス１０５から外部バス１２０へ適切にバス変換するための設定をコントロールレジスタ群１０４にしてから、ＣＰＵ１０２は外部バス１２０へアクセスを開始する。
【０００３】
以下に、図５のバスコントローラ装置１００の具体的な動作を説明する。
まず、図５に示されるバスコントローラ装置１０１とＣＰＵ１０２が含まれるＬＳＩ１００の具体的な動作を説明する。
ＣＰＵ１０２からシステムバス１０５を通して、外部に接続されている外部デバイス１１０と適切にアクセスするためのバスブリッジ回路１０３の設定値を、ＩＯバス１０６を用いてコントロールレジスタ群１０４に設定する。コントロールレジスタ群１０４に設定された値は、設定信号１０７を通して、バスブリッジ回路１０３に反映される。
【０００４】
バスブリッジ回路１０３の設定が完了した後、システムバス１０５と外部バス１２０間のバス変換がバスブリッジ回路１０３で正しく行われ、ＣＰＵ１０２から外部デバイス１１０に対してアクセスが可能となる。
【０００５】
上記のような動作を実現する手段として、レジスタによる制御タイミングの生成をせず、タイミング生成メモリブロックを設けることにより、プログラマブルに制御信号を生成する方法もある。
【特許文献１】特開２００１−３１８８８３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
従来のバスコントローラ装置は以上のように構成されており、あらかじめ、外部デバイス１１０の制御タイミングを認識しておき、これらを、外部デバイス１１０にアクセスする前にコントロールレジスタ群１０４にソフトウェア等により設定しておくことで、アクセスタイミングの異なる多様な外部機器に対するアクセスを実現するものであった。しかるに、この場合、設定した制御タイミングが間違えていたために、該制御タイミングを修正しなければならない場合があったり、接続する外部デバイスを変更する場合などには、ソフトウェアの変更をしなければならないという問題があったり、制御タイミングが多様な外部デバイスに対応するためには、それぞれの外部デバイスに対応するように個別のソフトウェアを準備しなければならない、という問題があったりしたものである。
【０００７】
本発明は、以上のような問題点に鑑みてなされたものであり、設定した制御タイミングが間違っていたような場合にもソフトウェアの修正を必要とせず、また、接続する外部デバイスを変更する場合にもソフトウェアの変更をする必要がなく、多様な外部デバイスがある場合にも個別のソフトウェアの準備をする必要がなく、簡易にバスコントロールの制御を行うことのできるバスコントローラ装置を提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明（請求項１）にかかるバスコントローラ装置は、ＣＰＵがアクセスタイミングの異なる複数の外部デバイスに対しアクセスするときのタイミングを制御するバスコントローラ装置において、ＣＰＵバスと外部デバイスバスとのバスプロトコルを変換するためのバスブリッジ回路と、上記バスブリッジ回路から出力される制御信号のタイミングを制御するためのコントロールレジスタ群と、上記ＣＰＵから上記外部デバイスへの書き込みデータと、その読み出しデータとを比較するための比較器と、上記比較器からの比較一致信号を受けて、上記コントロールレジスタ群の設定値を発生するレジスタ設定値発生器と、上記比較器での比較が一致した時の上記コントロールレジスタの設定値を保持するための設定値保持部と、を備えたことを特徴とするものである。
【０００９】
本発明（請求項２）にかかるバスコントローラ装置は、請求項１記載のバスコントローラ装置において、上記外部デバイスに対して書き込みアクセスと読み出しアクセスを行うためのアクセス信号を発生するアクセス信号発生器と、上記ＣＰＵからのアクセスと、上記アクセス信号発生器からのアクセスとのいずれを上記バスブリッジ回路に伝えるかを選択する第１のセレクタ回路と、上記設定値発生器からの設定と、上記ＣＰＵからの設定とのいずれを上記コントロールレジスタ群に設定するかを選択する第２のセレクタ回路と、上記第１、第２のセレクタ回路に各選択のためのセレクト信号を入力するための入力端子と、を備えたことを特徴とするものである。
【００１０】
本発明（請求項３）にかかるバスコントローラ装置は、請求項１記載のバスコントローラ装置において、上記外部デバイスに対して書き込みアクセスと、読み出しアクセスを行うためのアクセス信号を発生するアクセス信号発生器と、上記ＣＰＵからのアクセスと、上記アクセス信号発生器からのアクセスとのいずれを上記バスブリッジ回路に伝えるかを選択する第１のセレクタ回路と、上記設定値発生器からの設定と、上記ＣＰＵからの設定とのいずれを上記コントロールレジスタ群に設定するかを選択する第２のセレクタ回路と、上記第１、第２のセレクタ回路に各選択のためのセレクト信号を入力するためのセレクトレジスタと、を備えたことを特徴とするものである。
【００１１】
本発明（請求項４）にかかるバスコントローラ装置は、請求項１記載のバスコントローラ装置において、上記外部デバイスに対して書き込みアクセスと、読み出しアクセスを行うためのアクセス信号発生器と、上記ＣＰＵからのアクセスと、上記アクセス信号発生器からのアクセスとのいずれを上記バスブリッジ回路に伝えるかを選択する第１のセレクタ回路と、上記設定値発生器からの設定と、上記ＣＰＵからの設定とのいずれを上記コントロールレジスタ群に設定するかを選択する第２のセレクタ回路と、上記第１、第２のセレクタ回路に上記各選択のためのセレクト信号を入力するための入力端子と、上記第１、第２のセレクタ回路に上記各選択のためのセレクト信号を入力するためのセレクトレジスタと、を備えたことを特徴とするものである。
【発明の効果】
【００１２】
本発明にかかるバスコントローラ装置によれば、ＣＰＵがアクセスタイミングの異なる複数の外部デバイスに対しアクセスするときのタイミングを制御するバスコントローラ装置において、ＣＰＵバスと外部デバイスバスとのバスプロトコルを変換するためのバスブリッジ回路と、上記バスブリッジ回路から出力される制御信号のタイミングを制御するためのコントロールレジスタ群と、ＣＰＵから外部デバイスへのライトデータとリードデータを比較するための比較器と、上記比較器からの比較一致信号を受けて上記コントロールレジスタ群の設定値を発生するレジスタ設定値発生器と、上記比較器での比較が一致した時の上記コントロールレジスタ群の設定値を保持するための設定値保持部とを備えたものとしたので、バスブリッジ回路を制御するコントロールレジスタ群に設定すべき適切な設定値を、外部デバイスへの書き込みアクセスと読み出しアクセスを実施して両者のデータを比較することにより獲得することができ、このため、あらかじめ外部デバイスにアクセスするための適切な制御タイミングを知っておく必要がなく、間違った制御タイミングを設定した場合でも再設定をする必要もなく、ソフトウェアを変更する必要もなくなる。その結果、検証工数、および、ソフトウェア開発の工数の削減が可能となるという効果が得られる。
【００１３】
さらに、本発明にかかるバスコントローラ装置によれば、外部デバイスに対して書き込みアクセスと読み出しアクセスをするアクセス信号を発生するアクセス信号発生器と、上記ＣＰＵからのアクセスと上記アクセス信号発生器からのアクセスのいずれを上記バスブリッジ回路に伝えるかを選択する第１のセレクタ回路と、上記設定値発生器からの設定と、上記ＣＰＵからの設定のいずれを上記コントロールレジスタ群に設定するかを選択する第２のセレクタ回路と、第１、第２のセレクタ回路に各セレクト信号を入力するための入力端子と、第１、第２のセレクタ回路に各セレクト信号を入力するためのセレクトレジスタを、さらに備えたものとしたので、ＣＰＵが制御タイミング調整を実施している間、書き込みアクセスと読み出しアクセスを繰り返し行う必要は無く、制御タイミング調整が完了した旨の調整完了信号が返ってくるのを待っているだけでよい。したがって、間違った制御タイミングを設定した場合でも再設定をしなくてもよく、ソフトウェアを変更する必要もなくなる。その結果、検証工数、および、ソフトウェア開発の工数のさらなる削減が可能となる効果が得られる。
【発明を実施するための最良の形態】
【００１４】
以下、本発明の実施の形態について、図面を参照しながら説明する。
(実施の形態１)
図１は、本発明の実施の形態１に係るバスコントローラ装置の回路構成を表す図である。
図１に示すように、本実施の形態１によるバスコントローラ装置２００は、ＣＰＵ２０２と、バスコントローラ２０１とにより構成される。
【００１５】
また、バスコントローラ２０１は、ＣＰＵ２０２のシステムバス２０５と、外部デバイス２２０の外部バス２３０との間のバスプロトコルを変換するためのバスブリッジ回路２０３と、上記バスブリッジ回路２０３から出力される制御信号のタイミングを制御するためのコントロールレジスタ群２０４と、ＣＰＵ２０２から外部デバイス２２０への書き込みデータと、その読み出しデータとを比較するための比較器２０８と、上記比較器２０８からの比較一致信号２１１を受けて上記コントロールレジスタ群２０４の設定値を発生して設定信号２１２をコントロールレジスタ群２０４に出力するレジスタ設定値発生器２０９と、上記比較器２０８での比較が一致する上記コントロールレジスタ群２０４の設定値を保持するための設定値保持部２１０とにより構成される。
また、２１９は、上記比較器２０８、設定値発生器２０９、設定値保持部２１０により構成され、外部デバイス２２０への制御タイミングを調整する制御タイミング調整器である。
【００１６】
以下、本実施の形態１によるバスコントローラ装置の動作について説明する。
まず、ＣＰＵ２０２からＩＯバス２０６経由で設定値発生器２０９へ設定発生開始指示を出す。それを受けて、設定値発生器２０９はコントロールレジスタ群２０４に対するバスブリッジ回路２０３の出力する制御信号のタイミング設定として、コントロールレジスタ群２０４の設定を、設定信号２１２経由で実施する。コントロールレジスタ群２０４に設定された制御タイミング設定値がバスブリッジ回路２０３に反映された後、ＣＰＵ２０２は、システムバス２０５を経由して、外部デバイス２２０に対して書き込みアクセスを実施する。このとき、比較器２０８には、書き込みデータが保持される。
【００１７】
次に、ＣＰＵ２０２は、システムバス２０５経由で、外部デバイス２２０に対して読み出しアクセスを実施し、外部デバイス２２０から読み出されたデータは、バスブリッジ回路２０３を経由して、比較器２０８に保持される。そして、先に保持された書き込みデータと、読み出しデータとが、比較器２０８において比較され、その結果が比較結果信号２１１として、設定値発生器２０９へと入力される。ここで、比較結果が、不一致の場合は、設定値発生器２０９でコントロールレジスタ群２０４に設定するための新たな値が発生され、設定信号２１２が出力される。そして、上記比較器２０８での比較結果が一致するまで、ＣＰＵ２０２から、外部デバイス２２０への書き込みアクセスと読み出しアクセスとを繰り返し実施する。そして、比較結果が一致した場合は、設定値発生器２０９では、コントロールレジスタ群２０４に設定するための設定値発生動作を終了し、比較一致となったときの設定値を設定値保持部２１０に保持する。
【００１８】
ＣＰＵ２０２では、外部デバイス２２０への書き込みデータと読み出しデータが一致することを確認できれば、ＩＯバス２０６経由で設定値保持部２１０にアクセスすることにより、外部デバイス２２０へアクセスするときの適切な制御信号のタイミング設定値を読み出すことが可能となる。また、ＣＰＵ２０２からＩＯバス２０６経由で設定値発生器２０９へ設定値発生停止指示を出し、コントロールレジスタ群２０４の設定値を変更しないようにする。
【００１９】
ここで、設定値発生器２０９の詳細動作に関して説明する。
図６は、コントロールレジスタ群２０４がその初期値としてレジスタの最小値をとるものである場合の設定値発生器６００を示す図である。
【００２０】
ＣＰＵ６２０からのＩＯバス６０１経由のアクセスで、設定値変更開始レジスタ６０２が“０”に設定されている場合は、信号６０３は“０”となるため、セレクタ６０４へのセレクト信号６０５も“０”となり、コントロールレジスタ６３０への設定値６０６は、常に設定値レジスタ６０７の初期値となる。ＣＰＵ６２０からのＩＯバス６０１経由のアクセスで、設定値変更開始レジスタ６０２が“１”に設定されている場合は、比較器６４０の比較結果が不一致の間、信号６０８は“０”となり、セレクタ６０４へのセレクト信号６０５は“１”となるため、コントロールレジスタ６３０への設定値６０６は、設定値レジスタ６０７に“１”を加算した値となる。また、設定値６０６は設定値レジスタ６０７へも返り設定される。
【００２１】
比較器６４０の比較結果が一致すると、信号６０８は“１”となり、セレクタ６０４へのセレクト信号６０５は“０”となるため、コントロールレジスタ６３０への設定値６０６は、設定値レジスタに設定されている値となる。比較器６４０の比較結果が一致したとき、信号６０８が“１”となるため、セレクタ６０９の出力６１０は設定値レジスタの出力信号６１１となり、比較器６４０における比較が一致したときのコントロールレジスタ６３０への設定値が、設定値保持部６５０に保持される。
【００２２】
図７は、コントロールレジスタ群２０４がその初期値としてレジスタの最大値をとるものである場合の設定値発生器７００を示す図である。
ＣＰＵ７２０からのＩＯバス７０１経由のアクセスで、設定値変更開始レジスタ７０２が“０”に設定されている場合は、信号７０３は“０”となるため、セレクタ７０４へのセレクト信号７０５も“０”となり、コントロールレジスタ７３０への設定値７０６は、常に設定値レジスタ７０７の初期値となる。ＣＰＵ７２０からのＩＯバス７０１経由のアクセスで、設定値変更開始レジスタ７０２が“１”に設定されている場合は、比較器７４０の比較結果が不一致の間、信号７０８は“０”となり、セレクタ７０４へのセレクト信号７０５は“１”となるため、コントロールレジスタ７３０への設定値７０６は、設定値レジスタ７０７から“１”を減算した値となる。また、設定値７０６は設定値レジスタ７０７へも返り設定される。
【００２３】
比較器７４０の比較結果が一致すると、信号７０８は“１”となり、セレクタ７０４へのセレクト信号７０５は“０”となるため、コントロールレジスタ７３０への設定値７０６は、設定値レジスタ７０７に設定されている値となる。比較器７４０の比較結果が一致したとき、信号７０８が“１”となるため、セレクタ７０９の出力７１０は設定値レジスタの出力信号７１１となり、比較器７４０における比較が一致したときのコントロールレジスタ７３０への設定値が、設定値保持部７５０に保持される。
【００２４】
上記のように設定値発生器２０９としては、コントロールレジスタ群２０４がその初期値としてレジスタの最小値をとるか最大値をとるかに応じて、図６の構成または図７の構成のいずれかの構成を有するものを用いる。
【００２５】
このような本実施の形態１のバスコントローラ装置によれば、システムバス２０５と外部デバイスバス２３０のバスプロトコルを変換するためのバスブリッジ回路２０３と、バスブリッジ回路２０３から出力される制御信号のタイミングを制御するためのコントロールレジスタ群２０４と、ＣＰＵ２０２から外部デバイス２２０へのライトデータとリードデータを比較する比較器２０８と、比較器２０８からの比較一致信号を受けてコントロールレジスタ群２０４の設定値を発生するレジスタ設定値発生器２０９と、比較器２０８での比較が一致するコントロールレジスタ群２０４の設定値を保持するための設定値保持部２１０とを設けたので、ＣＰＵ２０２から外部デバイス２２０への書き込みアクセスと読み出しアクセスを繰り返すだけで、アクセスすべき外部デバイス２２０の制御タイミングを獲得することができる。また、獲得した制御タイミングの設定を維持したまま外部デバイス２２０へのアクセスを継続することができるので、ソフトウェアを修正することなく、多様な外部デバイス２２０を接続することが可能となる。その結果、ソフトウェア開発工数を削減することができる。
【００２６】
(実施の形態２)
図２は、本発明の実施の形態２に係るバスコントローラ装置の回路構成を表す図である。
図２に示すように、本実施の形態２にかかるバスコントローラ装置３００は、ＣＰＵ３０２と、バスコントローラ３０１とにより構成される。
【００２７】
また、バスコントローラ３０１は、ＣＰＵ３０２、または、アクセス信号発生器３１４のシステムバス３０５と、外部デバイス３３０の外部バス３４０のバスプロトコルとを変換するためのバスブリッジ回路３０３と、該バスブリッジ回路３０３から出力される制御信号のタイミングを制御するためのコントロールレジスタ群３０４と、ＣＰＵ３０２、または、アクセス信号発生器３１４から外部デバイス３３０への書き込みデータと読み出しデータとを比較するための比較器３０８と、該比較器３０８からの比較一致信号３１１を受けて上記コントロールレジスタ群３０４の設定値を発生して設定信号３１２をコントロールレジスタ群３０４に出力するレジスタ設定値発生器３０９と、上記比較器３０８での比較が一致する上記コントロールレジスタ群の設定値を保持するための設定値保持部３１０とを備える。
【００２８】
さらに、上記外部デバイス３３０に対してシステムバス３０５を経由した書き込みアクセスと読み出しアクセスをするためのアクセス信号を発生するアクセス信号発生器３１４と、ＣＰＵ３０２とアクセス信号発生器３１４からのアクセスのいずれを上記バスブリッジ回路３０３に伝えるかを選択する第１のセレクタ回路３１５と、設定値発生器３０９からの設定と、ＣＰＵ３０２からの設定のいずれを上記コントロールレジスタ群３０４に設定するかを選択する第２のセレクタ回路３１６と、第１のセレクタ回路３１５と第２のセレクタ回路３１６にセレクト信号を入力するための入力端子３１８と、第１のセレクタ回路３１５と第２のセレクタ回路３１６にセレクト信号を入力するセレクトレジスタ３１７とから構成される。ここで、第１のセレクタ回路３１５と第２のセレクタ回路３１６とは、入力端子３１８とセレクトレジスタ３１７のいずれからでも制御できる構成となっている。
【００２９】
また、３１９は、上記比較器３０８、設定値発生器３０９、設定値保持部３１０、アクセス信号発生器３１４、セレクトレジスタ３１７により構成され、外部デバイス３３０への制御タイミングを調整する制御タイミング調整器である。
【００３０】
以下、本実施の形態２によるバスコントローラ装置の動作について説明する。
セレクト信号を入力するための入力端子３１８からの入力を、第１のセレクタ回路３１５においてＣＰＵ３０２からのアクセス３０５を選択してバスブリッジ回路３０３へ伝え、第２のセレクタ回路３１６においてＣＰＵ３０２からのＩＯバス３０６経由のアクセスを選択してコントロールレジスタ群３０４へ伝えるように固定した場合は、従来技術の構成である図５と電気回路的には等価の構成となる。これを通常モードと呼ぶ。
通常モードへの切り替えは、ＣＰＵ３０２からＩＯバス３０６経由でのセレクトレジスタ３１７への設定によっても可能である。
【００３１】
次に、入力端子３１８からの入力を、第１のセレクタ回路３１５においてアクセス信号生成器３１４からのアクセスを選択してバスブリッジ回路３０３へ伝え、第２のセレクタ回路３１６において設定値発生器３０９からの設定信号３１２を選択してコントロールレジスタ群３０４へ伝えるように固定した場合は、制御タイミング調整器３１９による外部デバイス制御タイミングの調整が可能となる。これを制御タイミング調整モードと呼ぶ。
【００３２】
通常モードと同様、この制御タイミング調整モードへの切り替えも、ＣＰＵ３０２からＩＯバス３０６経由でのセレクトレジスタ３１７への設定によっても可能である。
【００３３】
上記制御タイミング調整モードの場合、まず、設定値発生器３０９は、コントロールレジスタ群３０４にバスブリッジ回路３０３の出力する制御信号のタイミングの設定として、コントロールレジスタ群３０４の設定を、設定信号３１２経由で実施する。コントロールレジスタ群３０４に設定された制御タイミング設定値は、バスブリッジ回路３０３に反映された後、アクセス信号発生器３１４から、システムバス３０５経由で外部デバイス３３０に対して書き込みアクセスを実施する。このとき、比較器３０８には書き込みデータが保持される。
【００３４】
次に、アクセス信号発生器３１４から、システムバス３０５経由で外部デバイス３３０に対して読み出しアクセスを実施し、外部デバイス３３０から読み出されたデータは、バスブリッジ回路３０３を経由して比較器３０８に保持される。このとき、先に保持された書き込みデータと、該読み出したデータとを比較器３０８において比較する。その結果が比較結果信号３１１として設定値発生器３０９へと入力される。比較結果が不一致の場合は、設定値発生器３０９においてコントロールレジスタ群３０４に設定するための新たな値が発生され、設定信号３１２が出力される。そして、比較器３０８での比較結果が一致するまで、アクセス信号発生器３１４から、外部デバイス３３０への書き込みアクセスと読み出しアクセスを繰り返し実施する。
【００３５】
比較結果が一致した場合は、設定値発生器３０９では、コントロールレジスタ群３０４に設定するための設定値発生動作を終了し、比較一致となったときの設定値を、設定値保持部３１０に保持する。このとき、比較結果信号３１１とともに調整完了信号３２０をＣＰＵ３０２に出し、制御タイミング調整が完了したことをＣＰＵ３０２に通知する。ＣＰＵ３０２はこの通知を受け、設定値保持部３１０に保持された適切なアクセスが可能な制御タイミング設定値を、ＩＯバス３０６経由で読み出す。
【００３６】
その後、ＣＰＵ３０２からセレクトレジスタ３１７の設定を通常モードに切替え、設定値保持部３１０から読み出した設定値をコントロールレジスタ群３０４に設定して、これを用いてＣＰＵ３０２から外部デバイス３３０へのアクセスを実施する。
【００３７】
外部デバイス３３０へ適切なアクセスをする場合の制御タイミング設定値が、制御タイミング調整器３１９で獲得されたのであれば、その後は、入力端子３１８を通常モードになるように固定しておけばよい。このようにすることにより、一旦適切なアクセス状態となった後は、制御タイミング調整モードに入ることはなくなり、無駄な処理時間を使うことはない。
【００３８】
また、外部デバイス３３０が固定の外部デバイスではなく、制御タイミングの異なる様々な外部デバイスであるときには、入力端子３１８を制御タイミング調整モードになるように固定しておき、電源立上げ時には必ず制御タイミング調整モードで立ち上がるように設定し、まず必ず制御タイミング調整モードでタイミング調整を実施してから、通常モードに移行するように設定することで、このような制御タイミングの異なる様々な外部デバイスに対応することができる。
【００３９】
なお、上記通常モードと制御タイミング調整モードとの切り替えは、外部から入力端子３１８を用いて行うのに限らず、ソフトウェアによるセレクタレジスタ３１７への設定によって行うこともできる。
また、本実施の形態２における、設定値発生器３０９は、実施の形態１における、図６，図７に示した設定値発生器６００、７００と同様に構成することができる。
【００４０】
以上のような本実施の形態２のバスコントローラ装置によれば、実施の形態１の構成に加えて、外部デバイス３３０に対して書き込みアクセスと読み出しアクセスをするためのアクセス信号を発生するアクセス信号発生器３１４と、ＣＰＵ３０２とアクセス信号発生器３１４からのアクセスのいずれをバスブリッジ回路３０３に伝えるかを選択する第１のセレクタ回路３１５と、設定値発生器３０９からの設定とＣＰＵ３０２からの設定のいずれをコントロールレジスタ群３０４に設定するかを選択する第２のセレクタ回路３１６と、両セレクタ回路３１５，３１６に各セレクト信号を入力するための入力端子３１８と、両セレクタ回路３１５，３１６に各セレクト信号を入力するためのセレクトレジスタ３１７とをさらに備えたものとしたので、外部デバイス３３０への適切なアクセスをするための制御タイミングを、実施の形態１のようにソフトウェアによる書込みアクセスと読み出しアクセスを繰り返すことなく、自動的に獲得することができる。また、制御タイミング調整器３１９によって獲得した制御タイミング設定を、コントロールレジスタ群３０４に設定するようにしておけば、ソフトウェアを修正することなく、多様な外部デバイスを接続することが可能となる。その結果、ソフトウェア開発工数を削減することができ、また、制御タイミングが多様な外部デバイスを用いての検証を実施する場合に、デバイス毎に制御タイミング設定を実施する必要がなく、検証工数の削減にもつながる。
また、本実施の形態２では、通常モードと制御タイミング調整モードの切り替えを、外部からの入力端子を使っても、ソフトウェアによるレジスタ設定によっても、実施することができる。
【００４１】
(実施の形態３)
次に本発明の実施の形態３にかかるバスコントローラ装置について説明する。図３は、本実施の形態３に係るバスコントローラ装置の回路構成を表す図である。
図３に示すように、本実施の形態３によるバスコントローラ装置４００は、ＣＰＵ４０２と、バスコントローラ４０１とにより構成される。
【００４２】
また、バスコントローラ４０１は、ＣＰＵ４０２、または、アクセス信号発生器４１４のシステムバス４０５と外部デバイス４３０の外部バス４４０のバスプロトコルを変換するためのバスブリッジ回路４０３と、上記バスブリッジ回路４０３から出力される制御信号のタイミングを制御するためのコントロールレジスタ群４０４と、ＣＰＵ４０２、またはアクセス信号発生器４１４から外部デバイス４３０への書き込みデータと読み出しデータを比較するための比較器４０８と、上記比較器４０８からの比較一致信号４１１を受けて上記コントロールレジスタ群４０４の設定値を発生して設定信号４１２をコントロールレジスタ群４０４に出力するレジスタ設定値発生器４０９と、上記比較器４０８での比較が一致する上記コントロールレジスタ群４０４の設定値を保持するための設定値保持部４１０とを備える。さらに、外部デバイス４３０に対してシステムバス４０５を経由して、書き込みアクセスと読み出しアクセスをすることができるアクセス信号発生器４１４と、ＣＰＵ４０２とアクセス信号発生器４１４からのアクセスのいずれを上記バスブリッジ回路４０３に伝えるかを選択する第１のセレクタ回路４１５と、設定値発生器４０９からの設定と、ＣＰＵ４０２からの設定のいずれを上記コントロールレジスタ群３０４に設定するかを選択する第２のセレクタ回路４１６と、第１のセレクタ回路４１５と第２のセレクタ回路４１６に各々セレクト信号を入力するための入力端子４１８とから構成される。
【００４３】
また、４１９は、上記比較器４０８、設定値発生器４０９、設定値保持部４１０、アクセス信号発生器４１４により構成され、外部デバイス４３０への制御タイミングを調整する制御タイミング調整器である。
【００４４】
以下、本実施の形態３によるバスコントローラ装置の動作について説明する。
バスコントローラ装置４０１は、実施の形態２のバスコントローラ装置３０１とほぼ同様の構成をしているが、第１のセレクタ回路４１５と第２のセレクタ回路４１６へセレクト信号を入力する構成として、入力信号４１８のみを備えている点が異なる。
【００４５】
この場合、入力端子４１８からの入力のみで通常モードと制御タイミング調整モードの切り替えを行うので、立上げ時にどちらのモードで立ち上げるかを容易に切り替えることが可能となる。
【００４６】
セレクト信号を入力するための入力端子４１８からの入力を、第１のセレクタ回路４１５においてＣＰＵ４０２からのアクセス４０５を選択してバスブリッジ回路４０３へ伝え、第２のセレクタ回路４１６においてＣＰＵ４０２からのＩＯバス４０６経由のアクセスを選択してコントロールレジスタ群４０４へ伝えるように固定した場合は、従来技術の構成である図５と回路的に等価の構成となる。
【００４７】
入力端子４１８からの入力を、第１のセレクタ回路４１５においてアクセス信号生成器４１４からのアクセスを選択してバスブリッジ回路４０３へ伝え、第２のセレクタ回路４１６において設定値発生器４０９からの設定信号４１２を選択してコントロールレジスタ群４０４へ伝えるように固定した場合は、制御タイミング調整モードとなり、制御タイミング調整器４１９による外部デバイス制御タイミングの調整が可能となる。
【００４８】
制御タイミング調整モードの場合、まず、設定値発生器４０９はコントロールレジスタ群４０４にバスブリッジ回路４０３の出力する制御信号のタイミング設定として、コントロールレジスタ群４０４の設定を設定信号４１２経由で実施する。コントロールレジスタ群４０４に設定された制御タイミング設定値はバスブリッジ回路４０３に反映された後、アクセス信号発生器４１４からシステムバス４０５経由で外部デバイス４３０に対して、書き込みアクセスを実施する。このとき、比較器４０８には書き込みデータが保持される。
【００４９】
次に、アクセス信号発生器４１４から、システムバス４０５経由で外部デバイス４３０に対して、読み出しアクセスを実施し、外部デバイス４３０から読み出されたデータは、バスブリッジ回路４０３を経由して比較器４０８に保持される。このとき、先に保持された書き込みデータと、今回読み出したデータとを比較器４０８において比較する。その結果が比較結果信号４１１として、設定値発生器４０９へと入力される。比較結果が、不一致の場合は、設定値発生器４０９でコントロールレジスタ群４０４に設定するための新たな値が発生され、設定信号４１２が出力される。そして、比較器４０８での比較結果が一致するまで、アクセス信号発生器４１４から、外部デバイス４３０への書き込みアクセスと読み出しアクセスを繰り返し実施する。
【００５０】
比較結果が一致した場合は、設定値発生器４０９では、コントロールレジスタ群４０４に設定するための設定値発生動作を終了し、比較一致となったときの設定値を、設定値保持部４１０に保持する。このとき、比較結果信号４１１とともに調整完了信号４２０をＣＰＵ４０２に出し、制御タイミング調整が完了したことをＣＰＵ４０２に通知する。ＣＰＵ４０２はこの通知を受け、設定値保持部４１０に保持された適切なアクセスが可能な制御タイミング設定値を、ＩＯバス４０６経由で読み出すことができる。
【００５１】
外部デバイス４３０へ適切なアクセスをする場合の制御タイミング設定値が、制御タイミング調整器４１９で獲得されたのであれば、その後は、入力端子４１８を通常モードになるように固定しておき、電源投入後、獲得した制御タイミング設定値をＣＰＵ４０２からＩＯバス４０６経由でコントロールレジスタ群４０４に設定し、この設定値を用いてＣＰＵ４０２は、外部デバイス４３０に対してアクセスするようにすればよい。
また、本実施の形態３における、設定値発生器４０９は、実施の形態１における、図６，図７に示した設定値発生器６００、７００と同様に構成することができる。
【００５２】
以上のような本実施の形態３のバスコントローラ装置によれば、実施の形態１の構成に加えて、外部デバイス４３０に対して書き込みアクセスと読み出しアクセスをするアクセス信号を発生するアクセス信号発生器４１４と、ＣＰＵ４０２とアクセス信号発生器４１４からのアクセスのいずれをバスブリッジ回路４０３に伝えるかを選択する第１のセレクタ回路４１５と、設定値発生器４０９からの設定とＣＰＵ４０２からの設定のいずれをコントロールレジスタ群４０４に設定するかを選択する第２のセレクタ回路４１６と、両セレクタ回路４１５，４１６に各選択のためのセレクト信号を入力する入力端子４１８とを備えたものとしたので、通常モードと制御タイミング調整モードの切り替えを、外部から入力端子４１８を使うことによって実現することができ、電源投入時にどちらのモードで立ち上げるかを選択することができ、制御タイミング調整モードを頻繁に利用しないシステムにおいて特に有効である。
【００５３】
(実施の形態４)
次に本発明の実施の形態４にかかるバスコントローラ装置について説明する。
図４は、本発明の実施の形態４に係るバスコントローラ装置の回路構成を表す図である。
図４に示すように、本実施の形態４によるバスコントローラ装置５００は、ＣＰＵ５０２と、バスコントローラ５０１とにより構成される。
【００５４】
また、バスコントローラ５０１は、ＣＰＵ５０２、または、アクセス信号発生器５１４のシステムバス５０５と外部デバイス５３０の外部バス５４０のバスプロトコルを変換するためのバスブリッジ回路５０３と、上記バスブリッジ回路５０３から出力される制御信号のタイミングを制御するためのコントロールレジスタ群５０４と、ＣＰＵ５０２、またはアクセス信号発生器５１４から外部デバイスへの書き込みデータと読み出しデータを比較するための比較器５０８と、上記比較器５０８からの比較一致信号５１１を受けて上記コントロールレジスタ群５０４の設定値を発生して設定信号５１２をコントロールレジスタ群５０４に出力するレジスタ設定値発生器５０９と、上記比較器５０８での比較が一致する上記コントロールレジスタ群の設定値を保持するための設定値保持部５１０とを備える。
【００５５】
さらに、外部デバイス５３０に対してシステムバス５０５を経由した書き込みアクセスと読み出しアクセスをすることができるアクセス信号発生器５１４と、ＣＰＵ５０２とアクセス信号発生器５１４からのアクセスのいずれを上記バスブリッジ回路５０３に伝えるかを選択する第１のセレクタ回路５１５と、設定値発生器５０９からの設定と、ＣＰＵ５０２からの設定のいずれを上記コントロールレジスタ群５０４に設定するかを選択する第２のセレクタ回路５１６と、両セレクタ回路５１５、５１６に上記各選択のためのセレクト信号を入力するセレクトレジスタ５１７から構成される。
【００５６】
また、５１９は、上記比較器５０８、設定値発生器５０９、設定値保持部５１０、アクセス信号発生器５１４、セレクトレジスタ５１７よりなり、外部デバイス５３０への制御タイミングを調整する制御タイミング調整器である。
【００５７】
以下、本実施の形態４によるバスコントローラ装置の動作について説明する。
上記構成において、バスコントローラ装置５０１は、実施の形態２で示したバスコントローラ装置３０１とほぼ同様の構成をしているが、本バスコントローラ装置５０１では、２つのセレクタ回路５１５，５１６へのセレクト信号として、入力端子を有さずセレクトレジスタ５１７のみを備えている点が異なる。
【００５８】
この場合、セレクトレジスタ５１７の設定のみで通常モードと制御タイミング調整モードの切り替えを行うことができるので、立上げ後にどちらのモードにするかをソフトウェアにより、容易に切り替えることができる。
【００５９】
セレクトレジスタ５１７の設定値を、セレクタ回路５１５においてＣＰＵ５０２からのアクセス５０５を選択してバスブリッジ回路５０３へ伝え、セレクタ回路５１６においてＣＰＵ５０２からのＩＯバス５０６経由のアクセスを選択してコントロールレジスタ群５０４へ伝えるように設定した場合は、従来技術の構成である図５と回路的に等価の構成となる。
【００６０】
セレクトレジスタ５１７の設定を、セレクタ回路５１５においてアクセス信号生成器５１４からのアクセスを選択してバスブリッジ回路５０３へ伝え、セレクタ回路５１６において設定値発生器５０９からの設定信号５１２を選択してコントロールレジスタ群５０４へ伝えるように設定した場合は、制御タイミング調整モードとなり、制御タイミング調整器５１９による外部デバイス制御タイミングの調整が可能となる。
【００６１】
制御タイミング調整モードの場合、まず、設定値発生器５０９はバスブリッジ回路５０３の出力する制御信号のタイミング設定として、コントロールレジスタ群５０４の設定を設定信号５１２経由で実施する。コントロールレジスタ群５０４に設定された制御タイミング設定値は、バスブリッジ回路５０３に反映された後、アクセス信号発生器５１４から、システムバス５０５経由で外部デバイス５３０に対して、書き込みアクセスを実施する。このとき、比較器５０８には書き込みデータが保持される。次に、アクセス信号発生器５１４から、システムバス５０５経由で外部デバイス５３０に対して、読み出しアクセスを実施し、外部デバイス５３０から読み出されたデータは、バスブリッジ回路５０３を経由して、比較器５０８に保持される。このとき、先に保持された書き込みデータと、該読み出したデータを比較器５０８において比較する。その結果が比較結果信号５１１として、設定値発生器５０９へと入力される。比較結果が、不一致の場合は、設定値発生器５０９でコントロールレジスタ群５０４に設定するための新たな値が発生され、設定信号５１２が出力される。比較器５０８での比較結果が一致するまで、アクセス信号発生器５１４から外部デバイス５３０への書き込みアクセスと読み出しアクセスを繰り返し実施する。比較結果が一致した場合は、設定値発生器５０９では、コントロールレジスタ群５０４に設定するための設定値発生動作を終了し、比較一致となったときの設定値を設定値保持部５１０に保持する。このとき、比較結果信号５１１とともに調整完了信号５２０をＣＰＵ５０２に出し、制御タイミング調整が完了したことをＣＰＵ５０２に通知する。ＣＰＵ５０２はこの通知を受け、設定値保持部５１０に保持された適切なアクセスが可能な制御タイミング設定値を、ＩＯバス５０６経由で読み出すことができる。
【００６２】
外部デバイス５３０へ適切なアクセスをする場合の制御タイミング設定値が、制御タイミング調整器５１９で獲得された後は、セレクトレジスタ５１７を通常モードになるようにソフトウェアで設定し、獲得した制御タイミング設定値をＣＰＵ５０２からＩＯバス５０６経由でコントロールレジスタ群５０４に設定し、これを用いてＣＰＵ５０２から外部デバイス５３０へのアクセスを開始するようにする。
また、本実施の形態４における、設定値発生器５０９は、実施の形態１における、図６，図７に示した設定値発生器６００、７００と同様に構成することができる。
【００６３】
以上のような本実施の形態４のバスコントローラ装置によれば、実施の形態１の構成に加えて、外部デバイス５３０に対して書き込みアクセスと読み出しアクセスをするアクセス信号を発生するアクセス信号発生器５１４と、ＣＰＵ５０２とアクセス信号発生器５１４からのアクセスのいずれをバスブリッジ回路５０３に伝えるかを選択する第１のセレクタ回路５１５と、設定値発生器５０９からの設定とＣＰＵ５０２からの設定のいずれをコントロールレジスタ群５０４に設定するかを選択する第２のセレクタ回路５１６と、両セレクタ回路５１５，５１６に各選択のためのセレクト信号を入力するためのセレクトレジスタ５１７とを備えたものとしたので、通常モードと制御タイミング調整モードの切り替えを、ソフトウェアによってセレクトレジスタ５１７に設定することで、書き込み読み出しのタイミングの調整を含むバスコントロールを実現することができる。したがって、電源投入後の任意の時点において通常モードと制御タイミング調整モードの切り替えが可能となり、電源投入後にアクセスの制御タイミングが異なる複数の外部デバイスと接続しなければならないシステムや、実機検証などで外部デバイスを入れ替えて検証する場合等において、非常に有効である。
【産業上の利用可能性】
【００６４】
本発明は、バスブリッジ回路を制御するコントロールレジスタ群の適切な設定値を、外部デバイスへの書き込みアクセスと読み出しアクセスを実施し、両者のデータを比較することにより獲得することができるものであり、アクセス時の制御タイミングが異なる複数の外部デバイスにアクセスする必要のあるシステムにおいて有用である。
【図面の簡単な説明】
【００６５】
【図１】本発明の実施の形態１に係るバスコントローラ装置の回路構成を表す図である。
【図２】本発明の実施の形態２に係るバスコントローラ装置の回路構成を表す図である。
【図３】本発明の実施の形態３に係るバスコントローラ装置の回路構成を表す図である。
【図４】本発明の実施の形態４に係るバスコントローラ装置の回路構成を表す図である。
【図５】従来のバスコントローラ装置の回路構成を表す図である。
【図６】本発明の実施の形態１における、コントロールレジスタの初期値が最小値である場合の設定値発生器６００を示す図である。
【図７】本発明の実施の形態１における、コントロールレジスタの初期値が最大値である場合の設定値発生器７００を示す図である。
【符号の説明】
【００６６】
２０１，３０１，４０１，５０１    バスコントローラ装置
２０２，３０２，４０２，５０２    ＣＰＵ
２０３，３０３，４０３，５０３    バスブリッジ回路
２０４，３０４，４０４，５０４    コントロールレジスタ群
２０５，３０５，４０５，５０５    システムバス
２０６，３０６，４０６，５０６    ＩＯバス
２０８，３０８，４０８，５０８    比較器
２０９，３０９，４０９，５０９    設定値発生器
２１０，３１０，４１０，５１０    設定値保持部
２１９，３１９，４１９，５１９    制御タイミング調整器
２２０，３３０，４３０，５３０    外部デバイス
２３０，３４０，４４０，５４０    外部バス
３１４，４１４，５１４            アクセス信号発生器
３１５，４１５，５１５            第１のセレクタ回路
３１６，４１６，５１６            第２のセレクタ回路
３１８，４１８，４１９            入力端子
３１７，５１７                    セレクトレジスタ
６００    設定値発生器
６０１    ＩＯバス
６０２    設定値変更開始レジスタ
６０３    信号
６０４    セレクタ
６０５    セレクト信号
６０６    設定値
６０７    設定値レジスタ
６０８    信号
６０９    セレクタ
６１０    セレクタ６０９の出力
６１１    設定値レジスタの出力信号
６２０    ＣＰＵ
６３０    コントロールレジスタ
６４０    比較器
６５０    設定値保持部
７００    設定値発生器
７０１    ＩＯバス
７０２    設定値変更開始レジスタ
７０３    信号
７０４    セレクタ
７０５    セレクト信号
７０６    設定値
７０７    設定値レジスタ
７０８    信号
７０９    セレクタ
７１０    セレクタ７０９の出力
７１１    設定値レジスタの出力信号
７２０    ＣＰＵ
７３０    コントロールレジスタ
７４０    比較器
７５０    設定値保持部
【図１】
2006277114.tif 000003
【図２】
2006277114.tif 000004
【図３】
2006277114.tif 000005
【図４】
2006277114.tif 000006
【図５】
2006277114.tif 000007
【図６】
2006277114.tif 000008
【図７】
2006277114.tif 000009