(57)【要約】【課題】バスシステム等のホストバスとＬＰＣバス等のターゲットバスとの間の単純な直接通信経路を可能にする。【解決手段】　本発明の一態様では、インタフェースが、ホストバスに連結されたホスト機器とターゲットバスに連結されたターゲット機器との間の通信を可能にする。まず、インタフェースは、ホストバスを介してホスト機器からターゲット機器の、第１の幅を有するアドレスを受取る。次に、インタフェースは、受取ったアドレスを第１の幅から各々が第２の幅を有する１つまたは複数のアドレスコンポーネントに変換する。そして、インタフェースは、１つまたは複数のアドレスコンポーネントをターゲットバスにドライブすることにより、ターゲット機器にアクセスする。【選択図】図３
2004118825.tif 000002
【特許請求の範囲】
【請求項１】
　ホストバス（２３）に連結されたホスト機器（２１）とターゲットバス（５１）に連結されたターゲット機器（５２）との間の通信を可能にするインタフェース（５０）であって、
　前記ホストバス（２３）を介して前記ホスト機器（２１）から、前記ターゲット機器（５２）の第１の幅を有するアドレスを受取り、
　該受取ったアドレスを前記第１の幅から各々が第２の幅を有する１つまたは複数のアドレスコンポーネントに変換し、
　該１つまたは複数のアドレスコンポーネントを前記ターゲットバス（５１）にドライブすることにより、前記ターゲット機器（５２）にアクセスする
　ように動作可能であるインタフェース。
【請求項２】
　インタフェース（５０）であって、
　前記第１の幅は１６ビットからなり、
　前記第２の幅は４ビットからなる
　請求項１記載のインタフェース。
【請求項３】
　インタフェース（５０）であって、
　前記ターゲット機器（５２）にアクセスすることは、前記１つまたは複数のアドレスコンポーネントを前記ターゲットバス（５１）に連続的にドライブすることを含む
　請求項１記載のインタフェース。
【請求項４】
　インタフェース（５０）であって、
　前記ホストバス（２３）を介して前記ホスト機器（２１）から第３の幅を有するデータを受取り、
　該受取ったデータを該第３の幅から各々が前記第２の幅を有する１つまたは複数のデータコンポーネントに変換し、
　前記１つまたは複数のデータコンポーネントを前記ターゲットバス（５１）にドライブすることにより、前記データを前記ターゲット機器（５０）に書込む
　ようにさらに動作可能である請求項１記載のインタフェース。
【請求項５】
　インタフェース（５０）であって、
　前記ターゲット機器（５２）から前記ターゲットバス（５１）を介して、各々が前記第２の幅を有する１つまたは複数のデータコンポーネントを受取り、
　該受取ったデータコンポーネントを第３の幅を有するデータに変換し、
　該データを前記ホストバス（２３）にドライブすることにより、前記ホスト機器（２１）が前記１つまたは複数のデータコンポーネントを読出すことができるようにする
ようにさらに動作可能である請求項１記載のインタフェース。
【請求項６】
　システムバス（２３）とローピンカウント（ＬＰＣ）バス（５１）との間の通信を可能にするバスインタフェース（５０）であって、
　前記システムバス（２３）に連結され、該システムバス（２３）上でＬＰＣトランザクションの開始を示す所定アドレスを検出するように動作可能な、トリガモジュール（２０１）と、
　前記システムバスに接続され、該システムバス（２３）と前記ＬＰＣバス（５１）との間でデータ転送を同期させるように動作可能な、データ同期化モジュール（２０２）と、
　前記トリガモジュール（２０１）と、データ同期化モジュール（２０２）と、ＬＰＣバス（５１）とに連結され、前記システムバス（２３）からの前記所定アドレスを前記ＬＰＣバス（５１）に転送し該データ同期化モジュール（２０２）と該ＬＰＣバス（５１）との間でデータを転送するように動作可能な、状態機械（２０４）と
　を具備するバスインタフェース。
【請求項７】
　バスインタフェース（５０）であって、
　前記トリガモジュール（２０１）は、
　前記所定アドレスを検出するアドレス決定器（２１０）と、
　該所定アドレスの検出に応じて前記ＬＰＣトランザクションを開始するように動作可能なパルス同期化モジュール（２１１）と
　を備える請求項６記載のバスインタフェース。
【請求項８】
　バスインタフェース（５０）であって、
　前記トリガモジュール（２０１）は、
　前記所定アドレスを検出するアドレス決定器（２１０）と、
　該所定アドレスの検出に応じてＬＰＣ開始パルスを発生させるように動作可能なパルス同期化モジュール（２１１）と
　を備える請求項６記載のバスインタフェース。
【請求項９】
　バスインタフェース（５０）であって、
　前記状態機械（２０４）は、
　前記所定アドレスを前記ＬＰＣバス（５１）に互換性のあるアドレスフォーマットに変換し、
　前記システムバス（２３）からのデータを前記ＬＰＣバス（５１）に互換性のあるデータフォーマットに変換し、
　前記ＬＰＣバス（５１）からのデータを前記システムバス（２３）に互換性のあるデータフォーマットに変換する
　ように動作可能である請求項６記載のバスインタフェース。
【発明の詳細な説明】
【技術分野】
【０００１】
　本発明は、コンピュータのバスインターフェースに関する。
【背景技術】
【０００２】
　ローピンカウント（Low-Pin Count）（ＬＰＣ）バスは、コンピュータシステムのための内部通信バスであり、近年、徐々に業界標準アーキテクチャ（Industry Standard Architecture）（ＩＳＡ）バスに取って代るように実現されてきた。
　たとえば、カリフォルニア州、Santa Claraのインテル・コーポレーション（Intel Corporation）から入手可能なＬＰＣ Ｉｎｔｅｒｆａｃｅ Ｓｐｅｃｉｆｉｃａｔｉｏｎ １．０は、コンピュータシステムのコアロジックチップセットとマザーボードＩ／Ｏ機能との間のＬＰＣインタフェースを必要とする。
【０００３】
　ＬＰＣバスアーキテクチャは、３３ＭＨｚクロックのシリアル７ピンシンプルバスである。
　ＩＳＡおよびＰＣＩバスとは異なり、スロットが定義されていないため、ＬＰＣアーキテクチャではオンボードソリューションのみが使用される。
　その速度は３３ＭＨｚに限定されるため、重負荷データ転送用には設計されていない。
　ＬＰＣバス上で見出される可能性の高い機器は、スーパＩ／Ｏおよびフラッシュブート機器等のレガシーデバイスである。
　ＬＰＣバスアーキテクチャは、より高レベルのＩ／Ｏ機能に対して透過なソフトウェアであり、既存の周辺機器およびアプリケーションと互換性がある。
　しかしながら、ＬＰＣバスは、バス速度の不一致のために、レジスタベースメモリバス等の他のバスアーキテクチャとは容易に互換性が取れない。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
　システムバスは、コンピュータ中央処理システムとそのレジスタベースのメモリシステムとの間の通信を容易にするように設計されたバスアーキテクチャである。
　システムバスのバス速度は通常、ＣＰＵ速度ほど高速ではないが、ＬＰＣバスの速度よりは著しく高速である。
　その結果、システムバスとＬＰＣバスとの間の通信を、単純なインタフェースでは達成することができない。
【０００５】
　従来、システムバスを使用する機器とＬＰＣバスを使用する機器との間の通信は、間接的であり、重要なファームウェア／ソフトウェアの作業が必要であった。
　この作業は、実質的に長々しい処理時間を必要とすることが分かった。
　したがって、システムとＬＰＣバスとの間に直接経路を提供することによりこの作業の実質的な長さを除去する必要が生じた。
【課題を解決するための手段】
【０００６】
　本発明の一態様では、インタフェースが、ホストバスに連結されたホスト機器とターゲットバスに連結されたターゲット機器との間の通信を可能にする。
　まず、インタフェースは、ホストバスを介してホスト機器からターゲット機器の、第１の幅を有するアドレスを受取る。
　次に、インタフェースは、受取ったアドレスを第１の幅から各々が第２の幅を有する１つまたは複数のアドレスコンポーネントに変換する。
　そして、インタフェースは、１つまたは複数のアドレスコンポーネントをターゲットバスにドライブすることにより、ターゲット機器にアクセスする。
【発明の効果】
【０００７】
　本発明によれば、バスシステム等のホストバスとＬＰＣバス等のターゲットバスとの間の単純な直接通信経路が可能になる。
　本インタフェースは、いくつかのタスクを１つの汎用インタフェースに統合し、使用されるコンポーネント、設計複雑性および実現の全コストにおいて節約を提供する。
　さらに、異なるバス間の通信に必要な時間の長さが実質的に低減される。
【発明を実施するための最良の形態】
【０００８】
　本発明のあらゆる実施形態は、２つの異なるコンピュータバスアーキテクチャ間のデータ通信を容易にする装置、システム、方法およびコンピュータ読取可能媒体を対象とする。
　一実施形態では、レジスタベースのメモリバスとＬＰＣバスとの間の通信が達成される。
　図１および以下の論考は、本発明の実施形態が実施され得る適当なコンピューティング環境の簡単な一般的説明を提供するよう意図されている。
　当業者は、本発明を、たとえばハンドヘルド機器、ネットワークＰＣ、ミニコンピュータ、メインフレームコンピュータ、マルチプロセッサシステム、マイクロプロセッサベースまたはプログラマブル組込みコンピュータ等、他のコンピュータシステム構成で実施してよいことを認めるであろう。
　また、本発明を、タスクが通信ネットワークによってリンクされているリモート処理機器によって実行される分散コンピューティング環境において実施してもよい。
【０００９】
　図１は、本発明の実施形態による従来からのパーソナルコンピュータ２０の形態の汎用コンピューティング機器のブロック図である。
　コンピュータ２０は、処理装置２１と、システムメモリ２２と、システムバス２３とを有する。
　システムバス２３は、システムメモリ２２を含むあらゆるシステムコンポーネントを処理装置２１に連結する。
　システムバス２３は、種々のバスアーキテクチャのうちの任意のものを使用するメモリバス、周辺機器バスおよびローカルバスを含むいくつかのタイプのバスのうちの任意のものであってよい。
【００１０】
　システムメモリ２２は、リードオンリメモリ（ＲＯＭ）２４と、ランダムアクセスメモリ（ＲＡＭ）２５と、パーソナルコンピュータ２０の機器間で情報を転送するのを助ける基本ルーチンを含むファームウェア２６とを有する。
　パーソナルコンピュータ２０はさらに、ハードディスクコントローラ（図示せず）を介して同様にシステムバス２３に接続されるハードディスクドライブ２７を有する。
　さらに、システムバス２３には、光ドライブ、ＣＤ−ＲＯＭドライブ、フロッピドライブ（図示せず）を、同様に各々のドライブコントローラ（図示せず）を介して接続してよい。
【００１１】
　ハードディスクドライブ２７もしくはＲＯＭ２４またはＲＡＭ２５には、オペレーティングシステム、１つまたは複数のアプリケーションプログラムおよび他のデータを含む複数のプログラムモジュールを格納してよい。
　ユーザ（図示せず）は、キーボード４０およびポインティングデバイス４２等の入力装置を介してパーソナルコンピュータ２０にコマンドおよび情報を入力してよい。
【００１２】
　これらの入力装置は図示しない他のものとともに、通常シリアルポートインタフェース４６を介してシステムバス２３に接続される。
　他のインタフェース（図示せず）には、ユニバーサルシリアルバス（ＵＳＢ）およびパラレルポートが含まれる。
　　また、モニタ４７または他のタイプの表示装置を、ビデオアダプタ４８等のインタフェースを介してシステムバス２３に接続してもよい。
【００１３】
　さらに図１を参照すると、ＬＰＣバス５１に、１つまたは複数のＬＰＣスレーブ機器５２（図１には１つのスレーブ機器のみを示す）が接続されている。
　ＬＰＣバスインタフェース５０が、ＬＰＣバス５１をシステムバス２３にインタフェースする。
　一実施形態では、ＬＰＣバス５１は、３３ＭＨｚクロックのシリアル７ピンシンプルバスであり、いかなる数のＬＰＣスレーブ機器５２に対してもインタフェーススロットは定義されていない。
　さらに、一実施形態では、ＬＰＣバス５１のアドレス／データ部は４ビット幅しかなく、システムバス２３のアドレス部とデータ部とは、それぞれ１６ビット幅と８ビット幅とである。
【００１４】
　したがって、ＬＰＣバスインタフェース５０は、システムアドレスワードとデータバイトとを各々のＬＰＣアドレスニブルとデータニブルとに変換し、またその逆も行う。
　代替的に、ＬＰＣバス５１とシステムバス２３とは、開示したものと異なるサイズを有してよい。
　各場合において、ＬＰＣインタフェース５０は、アドレスおよびデータを適当は幅になるように変換する。
【００１５】
　さらに、システムバス２３に連結されたメモリ２２等のコンポーネントは通常、２つの部分空間、すなわちデータ空間とＩ／Ｏ空間とを有し、一実施形態では２１６バイトサイズのメモリロケーションを含む、システムアドレス空間にマップされる。
　一実施形態では、ＬＰＣバス５１に接続されたＬＰＣスレーブ機器５２に割当てられたアドレスの範囲であるＬＰＣアドレス空間は、システムＩ／Ｏ空間内に配置される。
　しかしながら、ＬＰＣアドレス空間は、代替的にシステムデータ空間に存在してもよい。
【００１６】
　図２を参照すると、本発明の実施形態による図１のシステムバス２３とＬＰＣバスインタフェース５０とをより詳細に示す。
　システムバス２３は、メモリバス読出し／書込みトランザクションを使用してホストからターゲットに情報を転送し、３つのサブバス、すなわちデータバス２３ａ、アドレスバス２３ｂおよび制御バス２３ｃを備える。
　読出し／書込みトランザクションは、所定プロトコルにおいてホストとターゲットとの間の情報の交換として定義される。
　システムバス２３プロトコルは、ＬＰＣバス５１プロトコルとは異なるため、読出し／書込みトランザクションがバス２３とバス５１との間で通信することができるようにするインタフェース５０を提供することが必要である。
【００１７】
　ＬＰＣバスインタフェース５０は、システムバス読出し／書込みトランザクションをＬＰＣバス読出し／書込みトランザクションに変換するために使用する３つの基本部分を備える。
　トランザクショントリガモジュール２０１は、システムバス２３における所定ＬＰＣアドレスの検出に基づいてＬＰＣトランザクションの開始をトリガする。
　データ同期化モジュール２０２は、システムバス２３とＬＰＣバス５１との間のデータ転送を同期化し、有限状態機械２０４は、データ転送を実施する。
【００１８】
　ＬＰＣ機器５２にデータを書込むかまたはそこからデータを読出すためには、１つのＬＰＣ「トランザクション」を要し、かかるトランザクションには、通常、ＬＰＣクロック２５０の複数サイクルが必要である。
　たとえば、アドレスバス２３ｂが１６ビット幅であり、データバス２３ａが８ビット幅であり、ＬＰＣバス５１が４ビット幅しかない場合、通常のＬＰＣ読出し／書込みトランザクションはＬＰＣクロック２０の１３サイクルを要する。
【００１９】
　トランザクショントリガモジュール２０１は、所定のＬＰＣアドレス空間内でアドレスを「探す」ことにより、システムバス２３のアドレスバス２３ｂを監視する。
　アドレス決定器２１０は、ＣＰＵ２１（図１）等のシステムコンポーネントによってシステムアドレスバス２３ｂに配置されるＬＰＣアドレスを、従来の方法で検出する。
　決定器２１０がＬＰＣアドレスを検出するのに応じて、パルス同期化モジュール２１１は、ＬＰＣクロック２５０のエッジに同期するＬＰＣ開始パルス２１２を発生させる。
　一実施形態では、ＬＰＣ開始パルス２１２は、１つのＬＰＣクロックサイクルの期間を有する。
【００２０】
　一実施形態では、ＬＰＣアドレス空間のアドレスは、アドレス決定器２１０に「ハード結線（hard wired）」されている。
　すなわち、決定器２１０は、所定のＬＰＣアドレス空間内のアドレスを認識するように設計された論理回路を有する。
　したがって、ＬＰＣアドレス空間を変更したい場合、新たなＬＰＣアドレス空間を認識するように設計された決定器２１０を有する新たなチップを獲得しなければならない。
【００２１】
　しかしながら、第２実施形態では、ＬＰＣアドレス空間はアドレス決定器２１０内にプログラム可能である。
　特に、決定器２１０は、ＬＰＣアドレス空間の開始アドレスを格納する第１のレジスタと、ＬＰＣアドレス空間の終了アドレスを格納する第２のレジスタ２５４とを有する。
【００２２】
　アドレス決定器２１０は、従来のアルゴリズムを使用して開始アドレスと終了アドレスとの間にある中間アドレスを確定する。
　したがって、新たなチップを取得する必要なしにＬＰＣアドレス空間を移動させることができる。
　さらに、開始および終了ＬＰＣアドレスを、システム２０のブート中等、いかなる時でもレジスタ２５２および２５４にロードすることができる。
【００２３】
　データ同期化モジュール２０２は、ＬＰＣ書込みまたは読出しトランザクション中にそれぞれバス２３ａからのおよびバス２３ａへのデータを同期化する。
　ＬＰＣ書込みトランザクション中、データ同期化モジュール２０２は、制御バス２３ｃ上の書込み信号とＬＰＣ開始パルス２１２とに応じてバス２３ａからのデータをラッチする。
　次に、モジュール２０２は、このラッチデータを有限状態機械２０４に提供する。
【００２４】
　ＬＰＣ読出しトランザクション中、データ同期化モジュール２０２は、ＬＰＣバス５１、有限状態機械２０４およびデータバス２５６を介してＬＰＣ機器５２からデータを受取り、このデータをシステムデータバス２３ａに提供する。
　一実施形態では、モジュール２０２は、制御バス２３ｃによってシステムクロックを受取り、データのバス２３ａへの転送をシステムクロックと同期させる。
　他の実施形態では、モジュール２０２は、システムバス２３ａに関して非同期に機能する。
　特に、モジュール２０２は、従来、ＬＰＣクロックサイクルにおけるＬＰＣ読出しトランザクションの長さでプログラムされる。
【００２５】
　したがって、モジュール２０２は、ＬＰＣ開始パルス２１２に応じてＬＰＣクロックサイクルのカウントを開始し、受取ったデータを、読出しトランザクションの終了までに（または時に終了前に）ＬＰＣ機器５２からデータバス２３ａにドライブする。
　ＬＰＣクロックがシステムクロックの整数倍である場合、これは、読出しトランザクションがバス２３ａと同期して終了することを保証する。
　たとえば、一実施形態では、ＬＰＣクロック２５０は、システムクロックの周波数の２倍である。
【００２６】
　有限状態機械２０４は、データおよびアドレスを、システムバス２３ａおよび２３ｂとＬＰＣバス５１との間の転送を可能にするために必要なフォーマットに変換する。
　特に、ＬＰＣ書込みトランザクション中は、システムバス２３ａおよび２３ｂからのデータおよびアドレスを、ＬＰＣバス５１への転送に適したＬＰＣフォーマットに変換する。
　同様に、ＬＰＣ読出しトランザクション中は、システムアドレスバス２３ｂからのアドレスをＬＰＣバス５１への転送に適したフォーマットに変換し、ＬＰＣバスからのデータを、システムデータバス２３ａへの転送に適したフォーマットに変換する。
【００２７】
　たとえば、ＬＰＣ書込みトランザクション中は、システムバス２３ａおよび２３ｂからの１バイトのデータと１６ビットアドレスとを、４ビットＬＰＣバス５１への転送に適した２ニブルのデータと４ニブルのアドレスとに変換する。
　同様に、ＬＰＣ読出しトランザクション中は、システムアドレスバス２３ｂからの１６ビットアドレスを、ＬＰＣバス５１のアドレス／データ部への転送に適した４ニブルのアドレスに変換し、ＬＰＣバスのアドレス／データ部からの２ニブルの読出しデータを、システムデータバス２３ａへの転送に適した１バイトのデータに変換する。
【００２８】
　典型的なバストランザクションにおいて、一度に１つの機器がバスをドライブしてよい、ということを留意することが重要である。
　そのため、バスの制御を放棄するために、機器は放棄を示し、バスの制御を受入れる別の機器からの応答を待つ。
　このように、一度に１つの機器のみがバスをドライブしており、その結果、データは機器から機器へ適当に転送される。
【００２９】
　図３は、本発明の実施形態によるＬＰＣ書込みトランザクションおよびＬＰＣ読出しトランザクション中の図２のＬＰＣインタフェース５０の動作のフローチャートである。
　この論考中、図１もまた参照する。
　この論考の目的のために、「ホスト」は、ＬＰＣインタフェース５０のシステムバス側に存在する任意の機器（ＣＰＵ２１等）を指し、「ターゲット」は、ＬＰＣインタフェース５０のＬＰＣバス側に存在する任意の機器（ＬＰＣスレーブ５２等）を指す。
【００３０】
　まず、システムバス２３に連結されたホスト機器がターゲットＬＰＣスレーブ５２にデータを書込む、ＬＰＣ書込みトランザクションについて論考する。
【００３１】
　ステップ３０１を参照すると、ＣＰＵ２１等のホスト機器は、ＬＰＣ書込みトランザクションを開始する。
　特に、ＣＰＵ２１は、ＬＰＣスレーブ５２のＬＰＣアドレス（ＬＰＣアドレス空間内）でシステムアドレスバス２３ｂをドライブし、書込まれるデータでシステムデータバス２３ａをドライブし、書込み信号でシステム制御バス２３ｃをドライブする。
　次に、アドレス決定器２１０が、バス２３ｂ上のアドレスがＬＰＣアドレスであることを検出する。
【００３２】
　そして、この検出に応じて、パルス同期化モジュール２１１は、１つのＬＰＣクロックサイクルに対してＬＰＣパルス２１２を発生させる。
　ＬＰＣパルス２１２に応じて、有限状態機械２０４は、ＬＰＣバス５１に連結された、ＬＰＣスレーブ機器５２を含むターゲット機器に対し、ホスト機器がＬＰＣ機器のうちの１つにデータを書込んでいることを通知する。
【００３３】
　状態機械２０４は、ＬＰＣバス５１を介してこの通知を行う。
　一実施形態では、この通知を、ＬＰＣバスプロトコルにしたがって従来のように実行する。
　また、状態機械２０４は、ＬＰＣパルス２１２に応じて、その記憶レジスタ（図示せず）を初期化し、その後これらのレジスタに、システムバス２３ｂ上のアドレスと、システム制御バス２３ｃ上の書込み信号を含む制御信号と、をラッチする。
　同様に、データ同期化モジュールは、ＬＰＣパルス２１２に応じて、その記憶レジスタ（図示せず）を初期化し、このレジスタにシステムデータバス２３ｂ上のデータをラッチする。
　一実施形態では、ステップ３０１は、ＬＰＣクロック２５０の２サイクルを要する。
【００３４】
　次に、ステップ３０３を参照すると、状態機械２０４は、システムアドレスバス２３ｂからラッチされた書込みアドレスをＬＰＣバス５１にドライブする。
　一実施形態では、このアドレスは１６ビット幅であるが、ＬＰＣバス５１のアドレス／データ部は４ビット幅しかない。
　したがって、状態機械２０４は、ＬＰＣクロック２５０と同期して、書込みアドレスを逐次ニブル単位で（最上位ニブルから最下位ニブルへ）ＬＰＣバス５１にドライブする。
【００３５】
　ＬＰＣ機器５２等のＬＰＣターゲットは、１６ビットアドレスを認識するように構成されるため、ターゲットのいずれがアドレス指定されているかを判断するために、アドレスの４つのニブルをすべて受取り復号化する。
　かかる実施形態において、このステップは、ＬＰＣクロック２５０の４サイクルを要する。
【００３６】
　代替的に、ＬＰＣバス５１のアドレスとアドレス／データ部とは、夫々１６ビットおよび４ビットとは異なる幅を有してよい。
　いずれの場合も、状態機械２０４は、システムバス２３ｂからのアドレスをＬＰＣバス５１での伝送に適したフォーマットに変換する。
　当然ながら、システムアドレスがＬＰＣバス５１と互換性のあるフォーマットである場合、かかる変換は不要であってよい。
【００３７】
　そして、ステップ３０５を参照すると、状態機械２０４は、データ同期化モジュール２０２にラッチされた書込みデータをＬＰＣバス５２にドライブする。
　一実施形態では、このデータは８ビット幅であるが、ＬＰＣバス５１は４ビット幅しかない。
　したがって、状態機械２０４は、バス２５６を介してモジュール２０２から書込みデータを受取り、ＬＰＣクロック２５０に同期してその書込みデータを逐次ニブル単位で（最下位ニブルから最上位ニブルへ）ＬＰＣバス５１の４ビット幅アドレス／データ部にドライブする。
【００３８】
　ＬＰＣ機器５２等のＬＰＣターゲットは、１バイトのデータを認識するように構成されるため、アドレス指定されたＬＰＣターゲットは、２つのニブルのデータを受取り、これらのニブルからデータタイプを復元する。
　かかる実施形態では、ステップ３０５は、ＬＰＣクロック２５０の２サイクルを要する。
　代替的に、ＬＰＣバス５１のデータとアドレス／データ部とは、夫々８ビットと４ビットとは異なる幅を有してよい。
【００３９】
　いずれの場合も、状態機械２０４は、システムバス２３ａからのデータをＬＰＣバス５１での伝送に適したフォーマットに変換する。
　当然ながら、システムデータがＬＰＣバス５１と互換性のあるフォーマットである場合、かかる変換は不要であってよい。
【００４０】
　次いで、ステップ３０７を参照すると、ホスト機器は、ＬＰＣバス５１のターゲット機器への制御を放棄する。
　特に、状態機械２０４は、放棄値、たとえば１６進数０ｘＦをＬＰＣバス５１にドライブする。
　これはしばしば、バスドライブターンアラウンドのための第１のサイクルとも呼ばれる。
　そして、状態機械２０４とスレーブ機器５２を含むＬＰＣターゲット機器とはともに、ＬＰＣバス５１をトライステートにすることにより、バスドライブターンアラウンドのための第２のサイクルをマークする。
　ステップ３０７は、ＬＰＣクロック２５０の２サイクルを要する。
【００４１】
　そして、ステップ３０９を参照すると、ＬＰＣバス５１を制御するターゲット機器は、機器がバス５１を制御していることを示すためにＬＰＣバス５１にレディ信号をドライブする。
　しかしながらこの場合、書込みトランザクション中、ＬＰＣターゲット機器はＬＰＣバス５１を制御する必要がないため、指定されたまたはデフォルトのターゲット機器（図示せず）は、バス５１の制御がその時デフォルトターゲット機器にあることを確認するために、バス５１にレディ信号をドライブする。
　ステップ３０９は、ＬＰＣクロック２５０の１サイクルを要する。
【００４２】
　次に、ステップ３１１を参照すると、ターゲット機器は、ＬＰＣバス５１の制御をホスト機器に戻すように放棄する。
　特に、デフォルトターゲット機器は、ＬＰＣバス５１に放棄値、たとえば１６進数０ｘＦをドライブすることにより、バスドライブターンアラウンドのための第１のサイクルをマークする。
【００４３】
　そして、状態機械２０４とスレーブ機器５２を含むターゲット機器との両方が、ＬＰＣバス５１をトライステートにすることによりバスドライブターンアラウンドのための第２のサイクルをマークする。
　次に、ＬＰＣバス５１は、アイドル状態となって書込みトランザクションの終了をマークし、ホストが後続するトランザクションを開始するまでアイドル状態を維持する。
　ステップ３１１は、ＬＰＣクロック２５０の２サイクルを要する。
【００４４】
　第２に、システムバス２３に連結されたＣＰＵ２１等のホスト機器がターゲットＬＰＣスレーブ５２からデータを読出す、ＬＰＣ読出しトランザクションについて論考する。
【００４５】
　ステップ３０１を参照すると、ＣＰＵ２１等のホスト機器は、ＬＰＣ読出しトランザクションを開始する。
　特に、ＣＰＵ２１は、ＬＰＣスレーブ５２のＬＰＣアドレス（ＬＰＣアドレス空間内）でシステムアドレスバス２３ｂをドライブし、読出し信号でシステム制御バス２３ｃをドライブする。
　次に、アドレス決定器２１０は、バス２３ｂ上のアドレスがＬＰＣアドレスであることを検出する。
【００４６】
　そして、この検出に応じて、パルス同期化モジュール２１１は、１つのＬＰＣクロックサイクルに対してＬＰＣパルス２１２を発生させる。
　ＬＰＣパルス２１２に応じて、有限状態機械２０４は、ＬＰＣバス５１に連結された、ＬＰＣスレーブ機器５２を含むターゲット機器に対し、ホスト機器がＬＰＣ機器のうちの１つからデータを読出していることを通知する。
【００４７】
　状態機械２０４は、この通知をＬＰＣバス５１を介して行う。
　一実施形態では、この通知を、ＬＰＣバスプロトコルにしたがって従来のように実行する。
　また、ＬＰＣパルス２１２に応じて、状態機械２０４は、その記憶レジスタ（図示せず）を初期化し、その後、これらのレジスタに、システムバス２３ｂ上のアドレスとシステム制御バス２３ｃ上の書込み信号を含む制御信号とをラッチする。
　同様に、ＬＰＣパルス２１２に応じて、データ同期化モジュール２０２は、その記憶レジスタ（図示せず）を初期化する。
　一実施形態では、ステップ３０１は、ＬＰＣクロック２５０の２つのサイクルを要する。
【００４８】
　次に、ステップ３０３を参照すると、状態機械２０４は、システムアドレスバス２３ｂからラッチされた読出しアドレスをＬＰＣバス５１にドライブする。
　一実施形態では、このアドレスは１６ビット幅であり、ＬＰＣバス５１のアドレス／データ部は、４ビット幅のみである。
　したがって、状態機械２０４は、ＬＰＣクロック２５０に同期して、読出しアドレスを逐次ニブル単位で（最上位ニブルから最下位ニブルへ）ＬＰＣバス５１にドライブし、ＬＰＣターゲットは、アドレスの４つのニブルをすべて受取り復号化することにより、ターゲットのいずれがアドレス指定されているかを判断する。
【００４９】
　かかる実施形態において、このステップは、ＬＰＣクロック２５０の４サイクルを要する。
　代替的に、ＬＰＣバス５１のアドレスとアドレス／データ部とは、夫々１６ビットと４ビットとは異なる幅を有してよい。
　いずれの場合も、状態機械２０４は、システムバス２３ｂからのアドレスをＬＰＣバス５１での伝送に適したフォーマットに変換する。
　当然ながら、システムアドレスがＬＰＣバス５１と互換性のあるフォーマットである場合、かかる変換は不要であってよい。
【００５０】
　次に、ステップ３１３を参照すると、ホスト機器は、ＬＰＣバス５１のＬＰＣスレーブ５２への制御を放棄する。
　特に、状態機械２０４は、バスドライブターンアラウンドのための第１のサイクル中に、放棄値、たとえば１６進数０ｘＦをＬＰＣバス５１にドライブする。
　そして、状態機械２０４とスレーブ機器５２を含むＬＰＣターゲットとの両方が、ＬＰＣバス５１をトライステートにすることにより、バスドライブターンアラウンドのための第２のサイクルをマークする。
　ステップ３１３は、書込みトランザクションのステップ３０７のように、ＬＰＣクロック２５０の２サイクルを要する。
【００５１】
　そして、ステップ３１５を参照すると、読出されるＬＰＣターゲット、ここではＬＰＣスレーブ５２が、バス５１を制御していることを示すために、ＬＰＣバス５１にレディ信号をドライブする。
　ステップ３１５は、書込みトランザクションのステップ３０９のように、ＬＰＣクロック２５０の１サイクルを要する。
【００５２】
　次に、ステップ３１７を参照すると、ターゲット、ここではＬＰＣスレーブ５２は、読出しデータをＬＰＣバス５１にドライブする。
　読出しデータが８ビット幅でありＬＰＣバス５１のアドレス／データ部が４ビット幅のみである実施形態では、スレーブ５２は、ＬＰＣクロック２５０に同期して、このデータを逐次ニブル単位で（最下位ニブルから最上位ニブルへ）ＬＰＣバス５１にドライブする。
【００５３】
　状態機械２０４は、これらのニブルを受取り、それらを１バイトの読出しデータとして合わせて格納し、このバイトのデータをデータ同期化モジュール２０２に提供する。
　かかる実施形態では、ステップ３１７は、ＬＰＣクロック２５０の２サイクルを要する。
　代替的に、ＬＰＣバス５１のデータとアドレス／データ部とは、夫々８ビットと４ビットとは異なる幅を有してよい。
　いずれの場合も、ＬＰＣスレーブ５２は、ＬＰＣバス５１での伝送に適したフォーマットで読出しデータを提供し、状態機械２０４は、このデータを、システムデータバス２３ａでの伝送に適したフォーマットに変換する。
　当然ながら、ＬＰＣデータがシステムデータバス２３ａと互換性のあるフォーマットである場合、かかる変換は不要であってよい。
【００５４】
　次いで、ステップ３１９を参照すると、ＬＰＣターゲットは、ＬＰＣバス５１の制御をホストに戻すように放棄する。
　特に、ＬＰＣスレーブ５２は、ＬＰＣバス５１に放棄値、たとえば１６進数０ｘＦをドライブすることにより、バスドライブターンアラウンドのための第１のサイクルをマークする。
　そして、状態機械２０４とスレーブ機器５２を含むＬＰＣターゲットとの両方が、ＬＰＣバス５１をトライステートにすることにより、バスドライブターンアラウンドのための第２のサイクルをマークする。
　次に、ＬＰＣバス５１は、アイドル状態であることにより読出しトランザクションの終了をマークし、ホストが後続するトランザクションを開始するまでアイドル状態を維持する。
　ステップ３１１は、ＬＰＣクロック２５０の２サイクルを要する。
【００５５】
　さらにステップ３１９を参照すると、ＬＰＣターゲットがＬＰＣバス５１の制御を放棄している間、データ同期化モジュール２０２は、システムデータバス２３ａに読出しデータをドライブする。
　モジュール２０２とデータバス２３ａとの間のインタフェースが非同期である場合、モジュール２０２は、読出しトランザクションの終了によりバス２３ａにデータをドライブするのを停止する。
【００５６】
　特に、上述したように、読出しトランザクションは、ＬＰＣ開始パルス２１２の発生で開始して、ＬＰＣクロック２５０の１３サイクルに亙る。
　したがって、モジュール２０２は、パルス２１２に応じてＬＰＣクロックサイクルの数のカウントを開始し、非同期で、状態機械２０４からバス２３ａに読出しデータをドライブし、１３のＬＰＣクロックサイクルの終了により、読出しデータをバス２３ａにドライブするのを停止する。
　代替的に、モジュール２０２とデータバス２３ａとの間のインタフェースが同期している場合、モジュールは、システムクロック（図示せず）と同期して、データをバス２３ａにドライブする以外は同様に動作し、データをドライブするのを停止する。
【００５７】
　本発明の好ましい実施形態を例示し説明したが、本発明の精神および範囲から逸脱することなくあらゆる変更を行うことができる、ということが認められよう。
【産業上の利用可能性】
【００５８】
　本発明は、コンピュータのバスインターフェースに利用可能である。
【図面の簡単な説明】
【００５９】
【図１】本発明の実施形態によるＬＰＣバスインタフェースを含む汎用コンピュータシステムのブロック図である。
【図２】本発明の実施形態による図１のＬＰＣバスインタフェースのブロック図である。
【図３】本発明の実施形態による図２のＬＰＣバスインタフェースの動作のフローチャートである。
【符号の説明】
【００６０】
２０・・・コンピュータ、
２１・・・処理装置、
２２・・・メモリ、
２３ａ・・・データバス、
２３ｂ・・・アドレスバス、
２３ｃ・・・制御バス、
２４・・・リードオンリメモリ（ＲＯＭ）、
２５・・・ランダムアクセスメモリ（ＲＡＭ）、
２６・・・ファームウェア、
２７・・・ハードディスク、
４０・・・キーボード、
４２・・・ポインティングデバイス、
４６・・・シリアルポートインタフェース、
４７・・・モニタ、
４８・・・ビデオアダプタ、
５０・・・ＬＰＣバストランスレータ、
５１・・・ＬＰＣバス、
５２・・・ＬＰＣスレーブ、
２０１・・・トランザクショントリガモジュール、
２０２・・・データ同期化モジュール、
２０２・・・有限状態機械、
２１０・・・アドレス決定器、
２１１・・・パルス同期化モジュール、
２５２，２５４・・・レジスタ
【図１】
2004118825.tif 000003
【図２】
2004118825.tif 000004
【図３】
2004118825.tif 000005