(57)【要約】【課題】ＵＳＢ２．０の転送速度を損なうことなく、ＵＳＢ１．１の上位互換性を有するプロセッサ装置を提供する。【解決手段】プロセッサ装置１０は、ＣＰＵ１２、メモリ１４、ＰＬＢ１６、メインＯＰＢ２０、ＰＬＢｔｏＯＰＢブリッジ２４、ＯＰＢｔｏＰＬＢブリッジ２６、ＯＰＢマスタ／スレーブデバイス３０、ＯＰＢスレーブデバイス３２、サブＯＰＢ４６、ＯＰＢｔｏＰＬＢブリッジ５０、メインＡＨＢ５２、ＯＰＢｔｏＡＨＢブリッジ５８、サブＡＨＢ６０、ＡＨＢｔｏＯＰＢブリッジ６６、及びＵＳＢ２．０ホストコントローラ４０を備える。ホストコントローラ４０は、ＵＳＢ２．０用のＥＨＣＩ４２と、ＵＳＢ１．１用のＯＨＣＩ４４とを備える。ＥＨＣＩ４２及びＯＨＣＩ４４のバススレーブ部６８，７２はメインＡＨＢ５２に接続され、バスマスタ部７０，７４はサブＡＨＢ５２に接続される。【選択図】図１
2006048256.tif 000002
【特許請求の範囲】
【請求項１】
ＣＰＵ(Central Processing Unit)と、
前記ＣＰＵに接続された第１のバスと、
第２のメインバスと、
第２のサブバスと、
前記第１のバスから前記第２のメインバスにデータを転送する第１のブリッジと、
前記第２のメインバスから前記第１のバスにデータを転送する第２のブリッジと、
前記第２のサブバスから前記第１のバスにデータを転送する第３のブリッジと、
ＵＳＢ(Universal Serial Bus)ホストコントローラとを備え、
前記ＵＳＢホストコントローラは、
前記第２のメインバスに接続されたバススレーブ部と、前記第２のサブバスに接続されたバスマスタ部とを有するＥＨＣＩ(Enhanced Host Controller Interface)と、
前記第２のメインバスに接続されたバススレーブ部と、前記第２のサブバスに接続されたバスマスタ部とを有するＯＨＣＩ(Open Host Controller Interface)又はＵＨＣＩ(Universal Host Controller Interface)とを含むことを特徴とするプロセッサ装置。
【請求項２】
請求項１に記載のプロセッサ装置であってさらに、
前記ＯＨＣＩ又はＵＨＣＩのバスマスタ部が前記第２のサブバスにデータを転送するとき、前記第２のメインバス上のデータ転送を停止させるバスロック手段を備えたことを特徴とするプロセッサ装置。
【請求項３】
請求項１に記載のプロセッサ装置であってさらに、
前記第２のメインバス上のデータ転送を仲裁するアービタと、
第３のメインバスと、
第３のサブバスと、
前記第２のメインバスから前記第３のメインバスにデータを転送する第４のブリッジと、
前記第３のサブバスから前記第２のサブバスにデータを転送する第５のブリッジとを備え、
前記ＥＨＣＩ及び前記ＯＨＣＩ又はＵＨＣＩのバススレーブ部は前記第３のメインバスに接続され、前記ＥＨＣＩ及び前記ＯＨＣＩ又はＵＨＣＩのバスマスタ部は第３のサブバスに接続され、
前記アービタは、前記ＯＨＣＩ又はＵＨＣＩのバスマスタ部が前記第２のサブバスにデータを転送するとき前記第２のメインバス上のデータ転送を停止させることを特徴とするプロセッサ装置。
【請求項４】
請求項１〜請求項３のいずれか１項に記載のプロセッサ装置であって、
前記第１のブリッジは、前記第２のサブバスから前記第１のバスへのデータ転送のリトライを要求するためのリトライリクエスト信号を前記第３のブリッジに供給し、
前記プロセッサ装置はさらに、
前記ＯＨＣＩ又はＵＨＣＩのバスマスタ部が前記第２のサブバスにデータを転送するとき前記リトライリクエスト信号の前記第３のブリッジへの供給を許可し、前記ＥＨＣＩのバスマスタ部が前記第２のサブバスにデータを転送するとき前記リトライリクエスト信号の前記第３のブリッジへの供給を遮断するゲート手段を備えたことを特徴とするプロセッサ装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はプロセッサ装置に関し、さらに詳しくは、ＵＳＢ(Universal Serial Bus)上位互換性を有するプロセッサ装置に関する。
【背景技術】
【０００２】
近年、ＳｏＣ(System On a Chip)と呼ばれる、コンピュータの主要機能を１つのチップに搭載したプロセッサ装置が提供されている。従来のプロセッサ装置の一例を図５に示す。図中の矢印はアドレスの方向を示す。
【０００３】
このプロセッサ装置１は、ＣＰＵ(Central Processing Unit)１２と、メモリ１４と、ＰＬＢ(Processor Local Bus)１６と、ＰＬＢアービタ１８と、ＯＰＢ(On-Chip Peripheral Bus)２０と、ＯＰＢアービタ２２と、ＰＬＢｔｏＯＰＢブリッジ２４と、ＯＰＢｔｏＰＬＢブリッジ２６と、ＵＳＢ１．１ホストコントローラ２８と、ＯＰＢマスタ／スレーブデバイス３０と、６個のＯＰＢスレーブデバイス３２とを備える。
【０００４】
ＣＰＵ１２及びメモリ１４はＰＬＢ１６に接続される。ＰＬＢ１６のバス幅は１２８ビットであり、動作周波数は１４７．４５６ＭＨｚである。ＰＬＢアービタ１８は、ＰＬＢ１６上のデータ転送を仲裁する。ＯＰＢ２０のバス幅は３２ビットであり、動作周波数は７３．７２８ＭＨｚである。ＯＰＢアービタ２２は、ＯＰＢ２０上のデータ転送を仲裁する。ＰＬＢｔｏＯＰＢブリッジ２４はＰＬＢ１６からＯＰＢ２０にデータを転送する。ＯＰＢｔｏＰＬＢブリッジ２６はＯＰＢ２０からＰＬＢ１６にデータを転送する。
【０００５】
ＵＳＢ１．１ホストコントローラ２８、ＯＰＢマスタ／スレーブデバイス３０、及び６つのＯＰＢスレーブデバイス３２はＯＰＢ２０に接続される。ＵＳＢデバイス３４はＵＳＢ１．１ホストコントローラ２８に接続される。ＵＳＢ１．１の転送速度は１２Ｍｂｐｓと遅いが、ＯＰＢ２０の転送速度はその約２００倍の２．３Ｇｂｐｓと十分に速い。
【０００６】
ＯＰＢマスタ／スレーブデバイス３０には、たとえば別のプロセッサ装置（図示せず）が接続される場合がある。この場合、別のプロセッサ装置は、ＯＰＢマスタ／スレーブデバイス３０、ＯＰＢ２０及びＵＳＢ１．１ホストコントローラ２８経由でＵＳＢデバイス３４にアクセスする。
【０００７】
このプロセッサ装置１をＵＳＢ１．１準拠からＵＳＢ２．０準拠にバージョンアップする最も単純な方法として、ＵＳＢ１．１ホストコントローラ２８をＵＳＢ２．０ホストコントローラに置き換えるという方法がある。ＵＳＢ２．０の転送速度は４８０Ｍｂｐｓ（ＵＳＢ１．１の４０倍）と速いが、それでもＯＰＢ２０の転送速度はその約５倍とまだ十分に速い。
【０００８】
しかしながら、ＯＰＢ２０には他のデバイスが接続されているため、仮に全てのデバイスが均等にＯＰＢ２０を使用した場合、５個以上のデバイスが接続されると、デバイス１個当たりのＯＰＢ２０の転送速度がＵＳＢ２．０の転送速度を下回り、ＵＳＢ２．０の性能を十分に発揮することができない。本例では７個のデバイス３０，３２がＯＰＢ２０に接続されているため、この方法は採用できない。
【０００９】
一方、ＵＳＢ２．０の転送速度を損なわないようにするためには、別のＯＰＢをＵＳＢ２．０ホストコントローラ専用に追加するという方法がある。この場合、他のデバイス３０，３２がＯＰＢ２０を専有していても、ＰＬＢ１６はＯＰＢ２０の８倍の転送速度を有するため、追加した別のＯＰＢのデータも十分に転送できるであろう。
【００１０】
しかしながら、ＵＳＢ２．０ホストコントローラのアドレス空間が従来のＵＳＢ１．１ホストコントローラ２８と異なるアドレス空間にマップされるため、上位互換性を保つことができない。また、ＯＰＢマスタ／スレーブデバイス３０がＵＳＢデバイス３４にアクセスするという従来の機能をサポートすることができない。そのため、この方法も採用できない。
【特許文献１】特開平５−３５６９８号公報
【発明の開示】
【発明が解決しようとする課題】
【００１１】
本発明の目的は、ＵＳＢ上位バージョンの転送速度を損なうことなく、ＵＳＢ上位互換性を有するプロセッサ装置を提供することである。
【課題を解決するための手段及び発明の効果】
【００１２】
本発明によるプロセッサ装置は、ＣＰＵと、ＣＰＵに接続された第１のバスと、第２のメインバスと、第２のサブバスと、第１のバスから第２のメインバスにデータを転送する第１のブリッジと、第２のメインバスから第１のバスにデータを転送する第２のブリッジと、第２のサブバスから第１のバスにデータを転送する第３のブリッジと、ＵＳＢホストコントローラとを備える。ＵＳＢホストコントローラは、第２のメインバスに接続されたバススレーブ部と、第２のサブバスに接続されたバスマスタ部とを有するＥＨＣＩ(Enhanced Host Controller Interface)と、第２のメインバスに接続されたバススレーブ部と、第２のサブバスに接続されたバスマスタ部とを有するＯＨＣＩ(Open Host Controller Interface)又はＵＨＣＩ(Universal Host Controller Interface)とを含む。
【００１３】
このプロセッサ装置では、たとえばＵＳＢ２．０のＵＳＢデバイスが接続されると、ＥＨＣＩのバスマスタ部がＵＳＢデバイスから第２のサブバス経由でデータを転送し、ＥＨＣＩのバススレーブ部には第２のメインバス経由でＵＳＢデバイスにデータが転送される。そのため、第２のメインバスにスレーブデバイスが接続されていても、第２のサブバス経由でのデータの転送速度は遅くならない。また、たとえばＵＳＢ１．１のＵＳＢデバイスが接続されると、ＯＨＣＩ又はＵＨＣＩのバスマスタ部がＵＳＢデバイスから第２のサブバス経由でデータを転送し、ＥＨＣＩ又はＵＨＣＩのバススレーブ部には第２のメインバス経由でＵＳＢデバイスにデータが転送される。したがって、このプロセッサ装置はＵＳＢ上位互換性を有する。
【００１４】
好ましくは、プロセッサ装置であってさらに、ＯＨＣＩ又はＵＨＣＩのバスマスタ部が第２のサブバスにデータを転送するとき、第２のメインバス上のデータ転送を停止させるバスロック手段を備える。
【００１５】
この場合、第２のメインバスがロックされ、第２のメインバス経由のデータ転送が停止されるため、第２のサブバス経由のデータ転送は途切れない。
【００１６】
好ましくは、第１のブリッジは、第２のサブバスから第１のバスへのデータ転送のリトライを要求するためのリトライリクエスト信号を第３のブリッジに供給する。プロセッサ装置はさらに、ＯＨＣＩ又はＵＨＣＩのバスマスタ部が第２のサブバスにデータを転送するときリトライリクエスト信号の第３のブリッジへの供給を許可し、ＥＨＣＩのバスマスタ部が第２のサブバスにデータを転送するときリトライリクエスト信号の第３のブリッジへの供給を遮断するゲート手段を備える。
【００１７】
この場合、ＯＨＣＩ又はＵＨＣＩのバスマスタ部が第２のサブバス経由でデータを転送するとき、第１のブリッジから第３のブリッジへのリトライリクエスト信号の供給は許可され、第３のブリッジはデータ転送のリトライを要求する。一方、ＥＨＣＩのバスマスタ部が第２のサブバス経由でデータを転送するとき、第１のブリッジから第３のブリッジへのリトライリクエスト信号の供給は遮断され、第３のブリッジはデータ転送のリトライを要求しない。したがって、たとえばＵＳＢ１．１用に作製された既存のソフトウェアもそのまま使用することができる。
【発明を実施するための最良の形態】
【００１８】
以下、図面を参照し、本発明の実施の形態を詳しく説明する。図中同一又は相当部分には同一符号を付してその説明は繰り返さない。
【００１９】
図１を参照して、本実施の形態によるプロセッサ装置１０は、ＣＰＵ１２と、メモリ１４と、ＰＬＢ１６と、ＰＬＢアービタ１８と、メインＯＰＢ２０と、ＯＰＢアービタ２２と、ＰＬＢｔｏＯＰＢブリッジ２４と、ＯＰＢｔｏＰＬＢブリッジ２６と、ＯＰＢマスタ／スレーブデバイス３０と、６個のＯＰＢスレーブデバイス３２とを備える。この構成は従来と同じである。
【００２０】
プロセッサ装置１０は、従来のＵＳＢ１．１ホストコントローラ２８に代えて、ＵＳＢ２．０ホストコントローラ４０を備える。ＵＳＢ２．０ホストコントローラ４０は、ＵＳＢ２．０又は１．１に準拠したＵＳＢデバイス３４とプロセッサ装置１０との間の通信を制御するもので、ＥＨＣＩ(Enhanced Host Controller Interface)４２と、ＯＨＣＩ(Open Host Controller Interface)４４とを備える。ＥＨＣＩ４２はＵＳＢ２．０の仕様を定義したＵＳＢコントローラであり、ＯＨＣＩ４４はＵＳＢ１．１の仕様を定義したＵＳＢコントローラである。ＯＨＣＩ４４に代えてＵＨＣＩ(Universal Host Controller Interface)を採用することも可能である。
【００２１】
プロセッサ装置１０は上記に加え、サブＯＰＢ４６と、ＯＰＢアービタ４８と、ＯＰＢｔｏＰＬＢブリッジ５０と、メインＡＨＢ(Advanced High-performance Bus)５２と、ＡＨＢアービタ５４と、ＡＨＢデコーダ５６と、ＯＰＢｔｏＡＨＢブリッジ５８と、サブＡＨＢ６０と、ＡＨＢアービタ６２と、ＡＨＢデコーダ６４と、ＡＨＢｔｏＯＰＢブリッジ６６とを備える。
【００２２】
サブＯＰＢ４６、ＯＰＢアービタ４８及びＯＰＢｔｏＰＬＢブリッジ５０は、それぞれメインＯＰＢ２０、ＯＰＢアービタ２２及びＯＰＢｔｏＰＬＢブリッジ２６に相当する。ＡＨＢは、英ＡＲＭ社のオンチップバス規格、ＡＭＢＡ(Advanced Microcontroller Bus Architecture)の１種である。ＯＰＢｔｏＡＨＢブリッジ５８はメインＯＰＢ２０からメインＡＨＢ５２にデータを転送する。ＡＨＢｔｏＯＰＢブリッジ６６はサブＡＨＢ６０からサブＯＰＢ４６にデータを転送する。ＥＨＣＩ４２のバススレーブ部６８はメインＡＨＢ５２に接続され、バスマスタ部７０はサブＡＨＢ６０に接続される。ＯＨＣＩ４４のバススレーブ部７２はメインＡＨＢ５２に接続され、バスマスタ部７４はサブＡＨＢ６０に接続される。ＥＨＣＩ４２のバススレーブ部６８はコンフィグレーションレジスタ７６を設定し、バスマスタ部７０はＵＳＢデバイス３４からメモリ１４にデータを転送する。
【００２３】
ＵＳＢ２．０のＵＳＢデバイス３４をＵＳＢ２．０ホストコントローラ４０に接続した場合、ＥＨＣＩ４２のバスマスタ部７０は、サブＡＨＢ６０、ＡＨＢｔｏＯＰＢブリッジ６６、サブＯＰＢ４６、ＯＰＢｔｏＰＬＢブリッジ５０、及びＰＬＢ１６経由でメモリ１４にアクセスする。したがって、他のデバイス３０，３２がメインＯＰＢ２０を専有していても、ＵＳＢデバイス３４がサブＯＰＢ４６を専有することができるので、ＵＳＢ２．０の転送速度は遅くならない。
【００２４】
一方、ＣＰＵ１２は、ＰＬＢ１６、ＰＬＢｔｏＯＰＢブリッジ２４、メインＯＰＢ２０、ＯＰＢｔｏＡＨＢブリッジ５８、及びメインＡＨＢ５２経由でＥＨＣＩ４２のバススレーブ部６８にアクセスする。したがって、コンフィグレーションレジスタ７６のアドレス空間は従来と同じになり、既存のソフトウェアをサポートすることができる。
【００２５】
また、ＯＰＢマスタ／スレーブデバイス３０は、メインＯＰＢ２０、ＯＰＢｔｏＡＨＢブリッジ５８、メインＡＨＢ５２及びＥＨＣＩ４２経由でＵＳＢデバイス３４にアクセスする。したがって、従来のプロセッサ装置１が有していた機能もサポートすることができる。
【００２６】
また、ＵＳＢ１．１のＵＳＢデバイス３４をＵＳＢ２．０ホストコントローラ４０に接続した場合、ＯＨＣＩ４４のバスマスタ部７４は、サブＡＨＢ６０、ＡＨＢｔｏＯＰＢブリッジ６６、サブＯＰＢ４６、ＯＰＢｔｏＰＬＢブリッジ５０、及びＰＬＢ１６経由でメモリ１４にアクセスする。一方、ＣＰＵ１２は、ＰＬＢ１６、ＰＬＢｔｏＯＰＢブリッジ２４、メインＯＰＢ２０、ＯＰＢｔｏＡＨＢブリッジ５８、及びメインＡＨＢ５２経由でＯＨＣＩ４４のバススレーブ部７２にアクセスする。
【００２７】
以上のように、このプロセッサ装置１０はＵＳＢ２．０に準拠し、かつ従来のＵＳＢ１．１に準拠したプロセッサ装置１に対して上位互換性を有する。
【００２８】
しかしながら、上述したようにＵＳＢ２．０ホストコントローラ４０をバスマスタ部７０とバススレーブ部６８とに分けると、バスマスタ部７０がサブＯＰＢ４６経由でメモリ１４にアクセスし、データを転送している最中に、ＣＰＵ１２がメインＯＰＢ２０経由でバススレーブ部６８にアクセスし、コンフィグレーションレジスタ７６にデータを書き込むことが可能になってしまう。
【００２９】
ＵＳＢ２．０をサポートするＥＨＣＩ４２は従来から拡張された機能であるから、新規に作製されるソフトウェアでデータ転送中におけるコンフィグレーションレジスタ７６の書込を禁止すればよい。しかしながら、ＵＳＢ１．１をサポートするＯＨＣＩ４４は従来からある機能であるから、既に出荷されたソフトウェアでこれを禁止することは不可能である。そのため、既に出荷されたソフトウェアの中には正しく動作しないソフトウェアが出てくる可能性はある。
【００３０】
本実施の形態ではサイドバンド信号を利用することによりこの問題を解決している。詳細は次の通り。
【００３１】
表１は、ＡＨＢｔｏＯＰＢブリッジ６６の設定を示す。
【表１】
2006048256.tif 000003
【００３２】
表１に示すように、ＡＨＢｔｏＯＰＢブリッジ６６は、ＯＨＣＩ用バスロック不能化ビットＢｕｓＬｏｃｋ＿Ｄｉｓａｂｌｅ＿ＯＨＣＩが「０」のとき、メインＯＰＢ制御権リクエスト信号Ｍｘ＿ｒｅｑ及びメインＯＰＢロック信号Ｍｘ＿ｂｕｓｌｏｃｋを活性化し、ＯＨＣＩ用バスロック不能化ビットＢｕｓＬｏｃｋ＿Ｄｉｓａｂｌｅ＿ＯＨＣＩが「１」のとき、メインＯＰＢ制御権リクエスト信号Ｍｘ＿ｒｅｑ及びメインＯＰＢロック信号Ｍｘ＿ｂｕｓｌｏｃｋを活性化しない。
【００３３】
ＡＨＢｔｏＯＰＢブリッジ６６は、ＯＨＣＩ用リトライリクエスト無視ビットＩｇｎｏｒｅ＿ｒｅｔｒｙＲｅｑ＿ＯＨＣＩが「０」のとき、リトライリクエスト信号ｒｅｔｒｙＲｅｑを受け付け、ＯＨＣＩ用リトライリクエスト無視ビットＩｇｎｏｒｅ＿ｒｅｔｒｙＲｅｑ＿ＯＨＣＩが「１」のとき、リトライリクエスト信号ｒｅｔｒｙＲｅｑを無視する。
【００３４】
ＡＨＢｔｏＯＰＢブリッジ６６は、ＥＨＣＩ用バスロック不能化ビットＢｕｓＬｏｃｋ＿Ｄｉｓａｂｌｅ＿ＥＨＣＩが「０」のとき、メインＯＰＢ制御権リクエスト信号Ｍｘ＿ｒｅｑ及びメインＯＰＢロック信号Ｍｘ＿ｂｕｓｌｏｃｋを活性化し、ＥＨＣＩ用バスロック不能化ビットＢｕｓＬｏｃｋ＿Ｄｉｓａｂｌｅ＿ＥＨＣＩが「１」のとき、メインＯＰＢ制御権リクエスト信号Ｍｘ＿ｒｅｑ及びメインＯＰＢロック信号Ｍｘ＿ｂｕｓｌｏｃｋを活性化しない。
【００３５】
ＡＨＢｔｏＯＰＢブリッジ６６は、ＥＨＣＩ用リトライリクエスト無視ビットＩｇｎｏｒｅ＿ｒｅｔｒｙＲｅｑ＿ＥＨＣＩが「０」のとき、リトライリクエスト信号ｒｅｔｒｙＲｅｑを受け付け、ＥＨＣＩ用リトライリクエスト無視ビットＩｇｎｏｒｅ＿ｒｅｔｒｙＲｅｑ＿ＥＨＣＩが「１」のとき、リトライリクエスト信号ｒｅｔｒｙＲｅｑを無視する。
【００３６】
デフォルトでは、ＯＨＣＩ用バスロック不能化ビットＢｕｓＬｏｃｋ＿Ｄｉｓａｂｌｅ＿ＯＨＣＩ及びＯＨＣＩ用リトライリクエスト無視ビットＩｇｎｏｒｅ＿ｒｅｔｒｙＲｅｑ＿ＯＨＣＩはともに「０」に設定される。また、ＥＨＣＩ用バスロック不能化ビットＢｕｓＬｏｃｋ＿Ｄｉｓａｂｌｅ＿ＥＨＣＩ及びＥＨＣＩ用リトライリクエスト無視ビットＩｇｎｏｒｅ＿ｒｅｔｒｙＲｅｑ＿ＥＨＣＩはともに「１」に設定される。
【００３７】
以下、ＡＨＢｔｏＯＰＢブリッジ６６がデフォルトに設定されている場合におけるプロセッサ装置１０の動作を説明する。
【００３８】
ＵＳＢ１．１のＵＳＢデバイス３４が接続されると、ＯＨＣＩ４４が動作する。この場合、図２及び図３を参照して、ＡＨＢアービタ６２は、ＯＨＣＩ４４からのデータ転送を承認するためのＯＨＣＩ用グラント信号ＨＧＲＡＮＴ＿ＯＨＣＩをＨ（論理ハイ）レベルに活性化し、ＯＨＣＩ４４に供給するとともに、ＡＨＢｔｏＯＰＢブリッジ６６にも供給する。
【００３９】
ＯＨＣＩ用バスロック不能化ビットＢｕｓＬｏｃｋ＿Ｄｉｓａｂｌｅ＿ＯＨＣＩは「０」に設定されているので、ＡＨＢｔｏＯＰＢブリッジ６６は、ＯＨＣＩ用グラント信号ＨＧＲＡＮＴ＿ＯＨＣＩに応答して、バスリクエスト信号Ｍｘ＿ｒｅｑをＨレベルに活性化し、ＯＰＢアービタ２２に供給する。このとき、ＯＨＣＩ用リトライリクエスト無視ビットＩｇｎｏｒｅ＿ｒｅｔｒｙＲｅｑ＿ＯＨＣＩも「０」に設定されているので、ＡＨＢｔｏＯＰＢブリッジ６６は、リトライリクエストゲート信号−Ｇａｔｅ＿ｒｅｔｒｙＲｅｑをＬ（論理ロー）レベルに活性化しない。
【００４０】
ＯＰＢアービタ２２は、バスリクエスト信号Ｍｘ＿ｒｅｑに応答して、メインＯＰＢ２０の制御権を獲得し、かつグラント信号ＯＰＢ＿Ｍｘ＿ｇｎｔをＡＨＢｔｏＯＰＢブリッジ６６に返す。ＡＨＢｔｏＯＰＢブリッジ６６は、グラント信号ＯＰＢ＿Ｍｘ＿ｇｎｔに応答して、バスロック信号Ｍｘ＿ｂｕｓｌｏｃｋをＨレベルに活性化し、ＯＰＢアービタ２２に供給する。ＯＰＢアービタ２２は、バスロック信号Ｍｘ＿ｂｕｓｌｏｃｋに応答してメインＯＰＢ２０をロックし、データ転送を停止させる。この間に、ＯＨＣＩ４４のバスマスタ部７４はサブＯＰＢ４６経由でデータを転送する。
【００４１】
このとき、もしＣＰＵ１２がコンフィグレーションレジスタ７６にデータを書き込もうとしても、メインＯＰＢ２０はロックされているので、コンフィグレーションレジスタ７６へのデータの書き込みは禁止される。しかし、ＰＬＢ１６上でデータ転送は起きるので、ＰＬＢｔｏＯＰＢブリッジ２４は、リトライリクエスト信号ｒｅｔｒｙＲｅｑを生成し、ＯＰＢｔｏＰＬＢブリッジ５０に供給する。このとき、リトライリクエストゲート信号−Ｇａｔｅ＿ｒｅｔｒｙＲｅｑはＨレベルのまま活性化されていないので、ＡＮＤゲート７８はリトライリクエスト信号ｒｅｔｒｙＲｅｑを遮断することなく、そのまま通過させる。したがって、ＯＰＢｔｏＰＬＢブリッジ５０は、リトライリクエスト信号ｒｅｔｒｙＲｅｑに応答して、ＡＨＢｔｏＯＰＢブリッジ６６にデータ転送のリトライを要求する。
【００４２】
一方、ＵＳＢ２．０のＵＳＢデバイス３４が接続されると、ＥＨＣＩ４２が動作する。この場合、図２及び図４を参照して、ＡＨＢアービタ６２は、ＥＨＣＩ４２からのデータ転送を承認するためのＥＨＣＩ用グラント信号ＨＧＲＡＮＴ＿ＥＨＣＩをＨ（論理ハイ）レベルに活性化し、ＥＨＣＩ４２に供給するとともに、ＡＨＢｔｏＯＰＢブリッジ６６にも供給する。
【００４３】
ＥＨＣＩ用リトライリクエスト無視ビットＩｇｎｏｒｅ＿ｒｅｔｒｙＲｅｑ＿ＥＨＣＩは「１」に設定されているので、ＡＨＢｔｏＯＰＢブリッジ６６は、リトライリクエストゲート信号−Ｇａｔｅ＿ｒｅｔｒｙＲｅｑをＬレベルに活性化する。このとき、ＥＨＣＩ用バスロック不能化ビットＢｕｓＬｏｃｋ＿Ｄｉｓａｂｌｅ＿ＥＨＣＩも「１」に設定されているので、ＡＨＢｔｏＯＰＢブリッジ６６は、バスリクエスト信号Ｍｘ＿ｒｅｑを活性化することなく、Ｌレベルのまま維持する。したがって、グラント信号ＯＰＢ＿Ｍｘ＿ｇｎｔもＬレベルのまま維持され、バスロック信号Ｍｘ＿ｂｕｓｌｏｃｋもＬレベルのまま維持される。したがって、ＯＰＢアービタ２２はメインＯＰＢ２０をロックしない。
【００４４】
この間に、ＥＨＣＩ４２のバスマスタ部７０はサブＯＰＢ４６経由でデータを転送する。このとき、ＣＰＵ１２がコンフィグレーションレジスタ７６にデータを書き込もうとしないようにソフトウェアにより禁止する。しかし、メインＯＰＢ２０はロックされていないので、メインＯＰＢ２０経由でデータは転送される。したがって、ＰＬＢｔｏＯＰＢブリッジ２４は、データを転送するたびにリトライリクエスト信号ｒｅｔｒｙＲｅｑを生成し、ＯＰＢｔｏＰＬＢブリッジ５０に供給する。このとき、リトライリクエストゲート信号−Ｇａｔｅ＿ｒｅｔｒｙＲｅｑはＬレベルに活性化されているので、ＡＮＤゲート７８はリトライリクエスト信号ｒｅｔｒｙＲｅｑを遮断する。したがって、ＯＰＢｔｏＰＬＢブリッジ５０は、リトライリクエスト信号ｒｅｔｒｙＲｅｑに邪魔されることなく、連続してデータを転送する。
【００４５】
以上のように本実施の形態によれば、ＵＳＢ１．１のＵＳＢデバイス３４が接続された場合、ＡＨＢｔｏＯＰＢブリッジ６６がメインＯＰＢ２０をロックし、その間にＯＨＣＩ４４のバスマスタ部７４はサブＯＰＢ４６経由でデータを転送することができる。したがって、ＵＳＢ１．１用に作製された既存のソフトウェアをそのまま使用することができる。サブＯＰＢ４６上でデータを転送している最中に、ＣＰＵ１２が既存のソフトウェアに従ってコンフィグレーションレジスタ７６を書き換えようとしたとしても、メインＯＰＢ２０はデータを転送しない。このとき、リトライリクエスト信号ｒｅｔｒｙＲｅｑはＡＮＤゲート７８で遮断されないので、ＯＰＢｔｏＰＬＢブリッジ５０はＡＨＢｔｏＯＰＢブリッジ６６にデータ転送のリトライを返す。したがって、データはサブＯＰＢ４６経由で正しく転送される。
【００４６】
一方、ＵＳＢ２．０のＵＳＢデバイス３４が接続された場合、ＡＨＢｔｏＯＰＢブリッジ６６はメインＯＰＢ２０を開放し、その間にＥＨＣＩ４２のバスマスタ部７０はサブＯＰＢ４６経由でデータを転送することができる。したがって、サブＯＰＢ４６上でデータを転送している最中に、ＣＰＵ１２がコンフィグレーションレジスタ７６を書き換えないように新しいソフトウェアを作製すればよい。サブＯＰＢ４６上でデータを転送している最中に、ＣＰＵ１２がバススレーブ部７２にアクセスすると、メインＯＰＢ２０はデータを転送する。このとき、リトライリクエスト信号ｒｅｔｒｙＲｅｑはＡＮＤゲート７８で遮断されるので、ＯＰＢｔｏＰＬＢブリッジ５０はＡＨＢｔｏＯＰＢブリッジ６６にリトライを返さない。したがって、ＯＰＢｔｏＰＬＢブリッジ５０は連続してデータを転送することができる。
【００４７】
以上、本発明の実施の形態を説明したが、上述した実施の形態は本発明を実施するための例示に過ぎない。よって、本発明は上述した実施の形態に限定されることなく、その趣旨を逸脱しない範囲内で上述した実施の形態を適宜変形して実施することが可能である。
【産業上の利用可能性】
【００４８】
本発明によるプロセッサ装置は特定構成のＳｏＣに利用可能である。
【図面の簡単な説明】
【００４９】
【図１】本発明の実施の形態によるプロセッサ装置の構成を示す機能ブロック図である。
【図２】図１に示したプロセッサ装置の詳細な構成を示す機能ブロック図である。
【図３】ＵＳＢ１．１のＵＳＢデバイスが接続された場合における図２に示したプロセッサ装置の動作を示すタイミング図である。
【図４】ＵＳＢ２．０のＵＳＢデバイスが接続された場合における図２に示したプロセッサ装置の動作を示すタイミング図である。
【図５】従来のプロセッサ装置の構成を示す機能ブロック図である。
【符号の説明】
【００５０】
１０  プロセッサ装置
１２  ＣＰＵ
１４  メモリ
１６  ＰＬＢ
２０  メインＯＰＢ
２４  ＰＬＢｔｏＯＰＢブリッジ
２６  ＯＰＢｔｏＰＬＢブリッジ
３０  マスタスレーブデバイス
３２  スレーブデバイス
４０  ＵＳＢ２．０ホストコントローラ
４２  ＥＨＣＩ
４４  ＯＨＣＩ
４６  サブＯＰＢ
５０  ＯＰＢｔｏＰＬＢブリッジ
６８，７２  バススレーブ部
７０，７４  バスマスタ部
７８  ＡＮＤゲート
【図１】
2006048256.tif 000004
【図２】
2006048256.tif 000005
【図３】
2006048256.tif 000006
【図４】
2006048256.tif 000007
【図５】
2006048256.tif 000008