(57)【特許請求の範囲】
【請求項１】
複数個の中央処理装置と、前記複数個の中央処理装置に接続されるＵＳＢホストモジュールとを有するデータ処理装置であって、
前記ＵＳＢホストモジュールは、前記データ処理装置の外部からＵＳＢデバイスが接続されるＵＳＢホストインタフェースと、前記複数個の中央処理装置に接続されるバスインタフェースと、前記バスインタフェースに接続され特定の中央処理装置によってアクセスされるアクセス制御レジスタ回路と、前記アクセス制御レジスタ回路に設定された内容に従って前記ＵＳＢホストインタフェースを制御するアクセス制御回路とを有し、
前記ＵＳＢホストインタフェースは、前記データ処理装置の外部から接続されたＵＳＢデバイスの任意のエンドポイントと通信するためのパイプを複数個有するパイプ回路と、前記パイプからのトランザクション転送要求を処理するＵＳＢホストプロトコルエンジンとを有し、
前記ＵＳＢホストインタフェースは、前記パイプ毎にデバイスアドレスとエンドポイント番号が指定され、前記デバイスアドレスと前記エンドポイント番号を含むトークンパケットをトランザクション毎に送受することにより、前記接続されたＵＳＢデバイスの前記エンドポイントと通信可能であり、
前記アクセス制御レジスタ回路は、前記パイプに対する制御権限をいずれの中央処理装置に認めるかを指定する第１のアクセス制御レジスタを有し、
前記アクセス制御回路は、前記第１のアクセス制御レジスタの設定に合わせて夫々のパイプ毎にアクセス権限のある中央処理装置からの、当該パイプ毎に指定されるデバイスアドレスとエンドポイント番号を含む制御情報のみを当該パイプに伝える、データ処理装置。
【請求項２】
前記アクセス制御レジスタ回路は、前記ＵＳＢホストプロトコルエンジンに対する制御権限を何れの中央処理装置に認めるかを指定する第２のアクセス制御レジスタを有し、
前記アクセス制御回路は、第２のアクセス制御レジスタで指定された中央処理装置からの制御情報のみをＵＳＢホストプロトコルエンジンに伝える、請求項1記載のデータ処理装置。
【請求項３】
前記ＵＳＢホストインタフェースは、前記パイプ回路のパイプに対する前記中央処理装置との間でトランザクションの入出力を行うＣＰＵポートを有し
前記アクセス制御レジスタ回路は、前記ＣＰＵポートに対する制御権限を何れの中央処理装置に認めるかを指定する第３のアクセス制御レジスタを有し、
前記ＣＰＵポートは、第３のアクセス制御レジスタによって制御権限が認められたＣＰＵとの間でトランザクションの入出力を行う、請求項２記載のデータ処理装置。
【請求項４】
ＤＭＡコントローラを有し、
前記ＵＳＢホストインタフェースは、前記パイプ回路のパイプに対する前記ＤＭＡコントローラとの間でトランザクションの入出力を行うＤＭＡポートを有し
前記アクセス制御レジスタ回路は、前記ＤＭＡポートに対する制御権限を何れの中央処理装置に認めるかを指定する第４のアクセス制御レジスタを有し、
前記ＤＭＡポートは、第４のアクセス制御レジスタによって制御権限が認められたＣＰＵによりＤＭＡコントローラに設定された転送条件によるデータ転送制御に従ってトランザクションの入出力を行う、請求項２記載のデータ処理装置。
【請求項５】
前記アクセス制御レジスタ回路は、前記パイプに割当て可能な機能をパイプ毎に指定する第５のアクセス制御レジスタを有し、
前記アクセス制御回路は、パイプに伝える前記制御情報を前記第５のアクセス制御レジスタに設定された範囲に制限する、請求項３又は４記載のデータ処理装置。
【請求項６】
前記アクセス制御回路は、中央処理装置からの制御データを格納するＵＳＢ制御レジスタを中央処理装置毎に備えると共に、中央処理装置からのＵＳＢ制御レジスタへの制御データの書き込みを前記第５のアクセス制御レジスタの内容に従って制限する書き込み値制御回路を有する、請求項５記載のデータ処理装置。
【請求項７】
前記アクセス制御回路は前記ＵＳＢ制御レジスタに接続するアクセスレジスタ選択回路を有し、前記アクセスレジスタ選択回路は前記第１制御レジスタ乃至第４制御レジスタで指定された中央処理装置に対応する前記ＵＳＢ制御レジスタの内容を選択して前記ＵＳＢホストインタフェース回路に与える、請求項６記載のデータ処理装置。
【請求項８】
前記アクセス制御回路は、中央処理装置からの制御データを格納するＵＳＢ制御レジスタを備えると共に、中央処理装置からのＵＳＢ制御レジスタへの制御データの書き込みを前記第５のアクセス制御レジスタの内容に従って制限する書き込み値制御回路を有する、請求項５記載のデータ処理装置。
【請求項９】
前記アクセス制御回路は前記ＵＳＢ制御レジスタに接続する書込み可否制御回路を有し、
前記書込み可否制御回路は前記第１制御レジスタ乃至第４制御レジスタで指定された中央処理装置以外の中央処理装置による前記ＵＳＢ制御レジスタへの書き込みを拒絶する、請求項８記載のデータ処理装置。
【請求項１０】
前記アクセス制御回路は、夫々のパイプからの割込み要求を前記第１制御レジスタで指定された中央処理装置に向けて供給する割込み要求制御回路を有する、請求項１記載のデータ処理装置。
【請求項１１】
前記複数の中央処理装置のうちの一つの中央処理装置と他の中央処理装置との間の相互通信を行う通信回路を有し、
前記通信回路は、通信したい情報が前記中央処理装置によって書込み及び読み出し可能に格納される記憶回路を有し、通信したい中央処理装置が通信相手の中央処理装置からの割込み許可を受けて通信フラグをセットすることにより当該通信相手の中央処理装置に向けて割り込みを要求する、請求項１記載のデータ処理装置。
【請求項１２】
複数個の中央処理装置と、前記複数個の中央処理装置に接続されるＵＳＢホストモジュールとを有するデータ処理装置であって、
前記ＵＳＢホストモジュールは、前記データ処理装置の外部からＵＳＢデバイスが接続されるＵＳＢホストインタフェースと、前記複数個の中央処理装置に接続されるバスインタフェースと、前記バスインタフェースに接続され特定の中央処理装置によってアクセスされるアクセス制御レジスタ回路と、前記アクセス制御レジスタ回路に設定された内容に従って前記ＵＳＢホストインタフェースを制御するアクセス制御回路とを有し、
前記ＵＳＢホストインタフェースは、前記データ処理装置の外部から接続されたＵＳＢデバイスのエンドポイントと通信するためのパイプを複数個有し前記中央処理装置毎に個別化されたパイプ回路と、前記パイプ回路と中央処理装置との間でトランザクションの入出力を行い前記中央処理装置毎に個別化されたＣＰＵポートと、前記パイプからのトランザクション転送要求を処理するＵＳＢホストプロトコルエンジンとを有し、
前記ＵＳＢホストインタフェースは、前記パイプ毎にデバイスアドレスとエンドポイント番号が指定され、前記デバイスアドレスと前記エンドポイント番号を含むトークンパケットをトランザクション毎に送受することにより、前記接続されたＵＳＢデバイスの前記エンドポイントと通信可能であり、
前記アクセス制御レジスタ回路は、前記パイプに割当て可能な機能をパイプ毎に指定し、
前記アクセス制御回路は、前記ＵＳＢホストインタフェースを制御するための情報が中央処理装置毎に個別化されて設定されるＵＳＢ制御レジスタを有し、前記ＵＳＢ制御レジスタに設定される、当該パイプ毎に指定されるデバイスアドレスとエンドポイント番号を含む制御情報を前記アクセス制御レジスタに設定された範囲に制限する、データ処理装置。
【請求項１３】
前記特定の中央処理装置に対応されるＵＳＢ制御レジスタだけが前記ＵＳＢホストプロトコルエンジンに伝える制御情報を格納可能である、請求項１２記載のデータ処理装置。
【請求項１４】
ＤＭＡコントローラを有し、
前記ＵＳＢホストインタフェースは、前記パイプ回路のパイプに対する前記ＤＭＡコントローラとの間でトランザクションの入出力を行い前記中央処理装置毎に個別化されたＤＭＡポートを有し
前記ＤＭＡポートは、対応するＣＰＵによりＤＭＡコントローラに設定された転送条件によるデータ転送制御に従ってトランザクションの入出力を行う、請求項１３記載のデータ処理装置。
【請求項１５】
前記特定の中央処理装置以外の中央処理装に対応されるＵＳＢ制御レジスタは前記特定の中央処理装置による操作が可能にされる、請求項１２記載のデータ処理装置。
【請求項１６】
前記特定の中央処理装置による操作が可能にされる制御情報はエンドポイント番号及びデバイスアドレスの情報である、請求項１５記載のデータ処理装置。
【請求項１７】
前記ＵＳＢホストモジュールと選択的に利用可能にされるその他のシリアルインタフェースに対応するシリアルインタフェースモジュールを有する、請求項１又は１２記載のデータ処理装置。
【請求項１８】
前記シリアルインタフェースモジュールはＵＡＲＴインタフェースモジュールである、請求項１７記載のデータ処理装置。
【請求項１９】
前記データ処理装置の外部端子のうち前記ＵＳＢホストモジュールに接続する端子の一部と前記シリアルインタフェースモジュールに接続する端子とは共通端子とされる、請求項１７記載のデータ処理装置。
【請求項２０】
請求項１９記載のデータ処理装置と、前記データ処理装置の外部端子のうち前記ＵＳＢホストモジュールに接続する端子と前記シリアルインタフェースモジュールに接続する端子とを介して前記データ処理装置に接続されると共に、外部デバイスが着脱可能に接続されるデバイス制御回路とを有し、
前記デバイス制御回路はこれに接続される外部デバイスに動作電源として第１電源電圧又は第２電源電圧を供給すると共に前記データ処理装置に接続する外部端子と前記外部デバイスに接続する外部端子との対応を制御し、
前記データ処理装置は、前記デバイス制御回路に外部デバイスへの第１電源電圧の供給を指示すると共にＵＳＢホストモジュールを用いた通信を指示し、これに対する外部デバイスからの第１の応答があれば、前記ＵＳＢホストモジュールの使用を選択し前記シリアルインタフェースモジュールの使用を非選択とし、
前記第１の応答がなければ、前記デバイス制御回路に外部デバイスへの第２電源電圧の供給を指示すると共にＵＳＢホストモジュールを用いた通信を指示し、これに対する外部デバイスからの第２の応答があれば、前記ＵＳＢホストモジュールの使用を選択し前記シリアルインタフェースモジュールの使用を非選択とし、
前記第２の応答がなければ前記ＵＳＢホストモジュールの使用を非選択し前記シリアルインタフェースモジュールの使用を選択とする、データ処理システム。
【請求項２１】
前記第１の電源電圧は１．８Ｖ、前記第２の電源電圧は３．０Ｖである、請求項２０記載のデータ処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の中央処理装置（ＣＰＵ）が外部のＵＳＢ（Universal Serial Bus）デバイスと一つの物理通信路を用いて通信を行う機能を備えたデータ処理装置に関し、例えば移動体通信用の半導体データ処理装置に適用して有効な技術に関する。
【背景技術】
【０００２】
ＵＳＢデバイスとインタフェースされるＵＳＢインタフェースモジュールは、ＦＩＦＯ（First-in First-out）バッファなどで構成された複数のパイプ（ＰＩＰＥ）を持ち、そのパイプ毎にＵＳＢデバイスのデバイスアドレスとエンドポイントを指定することで、特定のエンドポイントとの間の通信を制御する。パイプとエンドポイントとの間でやり取りされるトランザクションはＵＳＢモジュール内のＵＳＢプロトコルエンジンが管理する。トランザクションはデバイスアドレスとエンドポイントなどを含むトークンパケット、送受信するデータを含むデータパケット、通信成否を返すハンドシェイクパケット等からなる。ＵＳＢプロトコルエンジンはＵＳＢデバイスと各パケットをやり取りして通信を行い、各パイプに送受信データをライト・リードする。複数のパイプから通信要求がある場合は、トランザクション毎にパイプを切換えて、ひとつのパイプが通信路を占有することがないようにされる。
【０００３】
特許文献１には複数のＣＰＵが一つのＵＳＢデバイスを時分割的に使用可能にする発明が記載される。即ち、ＵＳＢデバイスを選択的に使用する複数のＣＰＵの内、何れか１つのＣＰＵが実質的なシステムのホストであるメインホストとなり、その他のＣＰＵがサブホストとして位置付けられ、メインホストは、各サブホストによりＵＳＢデバイスに対して送信されるデータを一旦受付けてから、それらを対応するＵＳＢデバイスに対して転送し、メインホストはＵＳＢデバイスから対応するサブホストに対して送信されるデータを一旦受付けると対応するサブホストに対して転送することで、各サブホストによるＵＳＢデバイスの使用が排他的に行われるように制御するものである。これにより、見掛け上は１つのシステムにおいて複数のホストが存在することになるが、それらのホストの内１つがメインホストとなって他のサブホストによるＵＳＢデバイスの使用が排他的に行われるように制御することで、サブホストは、メインホストから見るとＵＳＢデバイスの１つとして認識される。従って、複数のホストが、１つのＵＳＢデバイスを時分割的に使用することが可能となり、各ホストが夫々属しているシステムのハブにデバイスを繋ぎ替える必要が無く、利便性を向上させることができる、というものである
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００１−２５６１７３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら特許文献１に記載の技術では複数のＣＰＵがＵＳＢデバイスと時分割的に通信を行う場合にサブとなるＣＰＵは必ずマスタとなるＣＰＵの制御を経由しなければならないから、マスタとなるＣＰＵが動作可能でなければサブのＣＰＵによる通信を行うことができず、この点でＵＳＢ通信のスループットの向上には限界がある。更に、サブ側のＣＰＵが通信を行うとき、マスタ側のＣＰＵがスリープ状態の場合には再起動することが必要になり、消費電力が増大する。更に、サブ側のＣＰＵによる通信にはマスタ側のＣＰＵが関与するから通信情報の秘匿性を保証できない場合があり、また、ＣＰＵ間の情報転送によってオーバーヘッドも発生する。
【０００６】
本発明者は複数のＣＰＵが夫々独立してＵＳＢデバイスとの間で一つの物理通信路を用いて通信を行うことについて以下の検討を行った。
【０００７】
例えば移動体通信端末の端末認証に用いるＵＳＩＭ(Universal Subscriber Identity Module)と汎用ストレージモジュールとをカード基板に備えＵＳＢインタフェースを用いて移動体通信端末に接続されるＵＳＢデバイスを想定し、移動体通信端末の２個のＣＰＵから夫々独立に前記ＵＳＢデバイスの別々のファンクションと通信をすることについて検討した。具体的には、第１のＣＰＵはエンドポイント０と、第２のＣＰＵはエンドポイント１〜４と通信をするものとし、エンドポイント０(ファンクション1対応)との間では加入者情報読み取りやＵＳＩＭの存在確認などの通信を行う。エンドポイント１，２(ファンクション２対応)との間ではストレージモジュールに対する読み書きを行う。エンドポイント３，４(ファンクション３対応)との間ではイーサネット（登録商標）フレームのやり取りを行う。しかしながら、その場合には、解決すべき以下の課題のあることが本発明者によって明らかにされた。
【０００８】
第１に、あるＣＰＵが使用中のパイプに他方のＣＰＵからアクセスすると通信が阻害される。また、複数個のＣＰＵが同一デバイスの同一エンドポイントにアクセスすると、それぞれの通信を阻害しあう。そのような衝突を抑制しなければならない。
【０００９】
第２に、衝突回避を行うために、ＯＳのセマフォを用いて複数のＣＰＵによる資源の排他制御を行う場合には、セマフォ管理によるアクセス権を切換えない限り、一のＣＰＵがＵＳＢデバイスへのアクセスを占有することになり、その間は他方のＣＰＵはＵＳＢデバイスを一切アクセスすることができず、データ処理効率が低下する。
【００１０】
第３に、単なるセマフォ管理では、それぞれのＣＰＵがアクセスするＵＳＢデバイスのエンドポイントを制限することができず、特定のＣＰＵに対して秘匿性のある情報に対するアクセス制限を掛けることができず、セキュリティーを保つことができない。
【００１１】
第４に、ＵＳＢ通信途上で割り込み要求が発生したときこれに応答する割込みをどのＣＰＵに与えるかについての制御を行わなければ、処理とは無関係なＣＰＵもその都度、割り込みに応答すべきかを判別しなければならなくなり、本来のデータ処理効率が低下する。
【００１２】
第５に、ＵＳＢ通信は接続されたＵＳＢデバイスにデバイスアドレスの設定などを行うエニュメレーションが必要であり、その通信はどちらか一方のＣＰＵが受け持つ必要がある。その後、各ＣＰＵがエンドポイントと通信を行うが、その際エニュメレーションによって設定したデバイスアドレスや受け取ったエンドポイントの情報(パケットサイズ、送受信方向、プロトコルなど)が不可欠であり、複数個のＣＰＵ間でその情報をやり取りする必要がある。
【００１３】
本発明の目的は、複数個のＣＰＵが夫々独立に単一の通信経路を用いてＵＳＢデバイスの別々のファンクションと通信を行うことができるデータ処理装置、更にはデータ処理システムを提供することにある。
【００１４】
本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
【課題を解決するための手段】
【００１５】
本願において開示される発明のうち代表的なものの概要を簡単に説明すれば下記の通りである。
【００１６】
すなわち、複数個の中央処理装置に接続されるＵＳＢホストモジュールは、データ処理装置の外部から接続されたＵＳＢデバイスの任意のエンドポイントと通信するためのパイプを複数個有すると共に、前記パイプに対する制御権限をいずれの中央処理装置に認めるか、また、パイプに対する機能の設定内容をどの範囲で認めるかについて指定するためのアクセス制御レジスタを備え、アクセス制御レジスタの設定内容に従ってＵＳＢホストインタフェースを制御するように、データ処理装置を構成する。
【発明の効果】
【００１７】
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記のとおりである。
【００１８】
すなわち、複数個のＣＰＵが夫々独立に単一の通信経路を用いてＵＳＢデバイスの別々のファンクションと通信を行うことができる。
【図面の簡単な説明】
【００１９】
【図１】図１は本発明に係るデータ処理装置１とこれに接続されるＵＳＢデバイスの一例を示すブロック図である。
【図２】図２はＵＳＢ通信に用いられるトランスファの構成を例示する説明図である。
【図３】図３はアクセス制御回路におけるＵＳＢ制御レジスタ及びアクセスレジスタ選択回路の具体例を特に示したブロック図である。
【図４】図４はアクセス制御回路におけるレジスタ書込み・読出し値制御回路の具体例を特に示したブロック図である。
【図５】図５はＵＳＢホストモジュールに対するＵＳＢデバイスの接続形態の一例を示す説明図である。
【図６】図６はアクセス制御レジスタの設定を示す説明図である。
【図７】図７は書込み値許可レジスタの設定例を示す説明図である。
【図８】図８は書込み値許可レジスタによる書込み値制御回路の構成を例示するブロック図である。
【図９】図９は書込み値制御回路による動作タイミングを例示するタイミングチャートである。
【図１０】図１０は割込みを要求先のＣＰＵを選択するための構成を例示するブロック図である。
【図１１】図１１はＣＰＵ間通信を行うための構成を例示するブロック図である。
【図１２】図１２にはＵＳＢホストモジュール７０の動作を例示するフローチャートである。
【図１３】図１３はＣＰＵ１０とＣＰＵ２０で同時に別々のパイプにアクセスする通信動作を例示するタイミングチャートである。
【図１４】図１４は図１３の動作フローで処理されるトランザクションの処理フローである。
【図１５】図１５は図１３の比較例でありＣＰＵがＵＳＢモジュールのアクセス権限をセマフォ管理で行った場合の通信動作を例示するタイミングチャートである。
【図１６】図１６は図１５の動作フローで処理されるトランザクションの処理フローである。
【図１７】図１７は本発の第２の実施の形態に係るデータ処理装置を例示するブロック図である。
【図１８】図１８はレジスタ書込み・読出し制御回路６００Ａの具体例を示すブロック図である。
【図１９】図１９は本発の第３の実施の形態に係るデータ処理装置１Ｂを例示するブロック図である。
【図２０】図２０は本発の第４の実施の形態に係るデータ処理装置１Ｃを例示するブロック図である。
【図２１】図２１はＵＳＢインタフェースのほかにＵＡＲＴインタフェースを備えたＵＩＭデバイス、あるいはＵＡＲＴインタフェースだけを備えたＵＩＭデバイスに対応するためのデータ処理装置１Ｄを例示するブロック図である。
【図２２】図２０は電源制御半導体装置１３０による外部デバイスとのインタフェース形態を決定する制御動作さを示すフローチャートである。
【発明を実施するための形態】
【００２０】
１．実施の形態の概要
先ず、本願において開示される発明の代表的な実施の形態について概要を説明する。代表的な実施の形態についての概要説明で括弧を付して参照する図面中の参照符号はそれが付された構成要素の概念に含まれるものを例示するに過ぎない。
【００２１】
〔１〕本発明の代表的な実施の形態に係るデータ処理装置は、複数個の中央処理装置（１０，２０）と、前記複数個の中央処理装置に接続されるＵＳＢホストモジュール（３２，３２Ａ）とを有する。前記ＵＳＢホストモジュールは、前記データ処理装置の外部からＵＳＢデバイスが接続されるＵＳＢホストインタフェース（７０）と、前記複数個の中央処理装置に接続されるバスインタフェース（４０）と、前記バスインタフェースに接続され特定の中央処理装置によってアクセスされるアクセス制御レジスタ回路（５０）と、前記アクセス制御レジスタ回路に設定された内容に従って前記ＵＳＢホストインタフェースを制御するアクセス制御回路（６０，６０Ａ）とを有する。前記ＵＳＢホストインタフェースは、前記データ処理装置の外部から接続されたＵＳＢデバイスの任意のエンドポイントと通信するためのパイプを複数個有するパイプ回路（７２０）と、前記パイプからのトランザクション転送要求を処理するＵＳＢホストプロトコルエンジン（７００）とを有する。前記アクセス制御レジスタ回路は、前記パイプに対する制御権限をいずれの中央処理装置に認めるかを指定する第１のアクセス制御レジスタ（５０２）を有する。前記アクセス制御回路は、前記第１のアクセス制御レジスタの設定に合わせて夫々のパイプ毎にアクセス権限のある中央処理装置からの制御情報のみを当該パイプに伝える。
【００２２】
これより、パイプと中央処理装置との対応関係を第１のアクセス制御レジスタによって任意に設定することが可能になる。通信の競合回避が容易であり、複数の中央処理装置が一つの通信路を用いて時分割で通信を行うことができる。しかもセマフォ管理に比べて、データ転送に融通性があり、データ処理効率の向上に資することができる。さらに、ＣＰＵに対して秘匿性のある情報に対するアクセス制限を掛けることも容易である。
【００２３】
〔２〕項１のデータ処理装置において、例えば前記アクセス制御レジスタ回路は、前記ＵＳＢホストプロトコルエンジンに対する制御権限を何れの中央処理装置に認めるかを指定する第２のアクセス制御レジスタ（５０１）を有する。前記アクセス制御回路は、第２のアクセス制御レジスタで指定された中央処理装置からの制御情報のみをＵＳＢホストプロトコルエンジンに伝える。
【００２４】
これにより、特定の中央処理装置がＵＳＢインタフェース制御のマスタとなる場合にも、前記ＵＳＢホストプロトコルエンジンに対する制御権限を別の中央処理装置に認めるという融通性を得ることができる。
【００２５】
〔３〕項１又は２のデータ処理装置において、例えば前記ＵＳＢホストインタフェースは、前記パイプ回路のパイプに対する前記中央処理装置との間でトランザクションの入出力を行うＣＰＵポート（７４１）を有する。前記アクセス制御レジスタ回路は、前記ＣＰＵポートに対する制御権限を何れの中央処理装置に認めるかを指定する第３のアクセス制御レジスタ（５０３）を有する。前記ＣＰＵポートは、第３のアクセス制御レジスタによって制御権限が認められたＣＰＵとの間でトランザクションの入出力を行う。
【００２６】
これにより、ＣＰＵポートをどのパイプに割当てるか、ＣＰＵポートにどのＣＰＵとの間でトランザクションを入出力させるか、などの制御をプログラマブルに行うことができる。
【００２７】
〔４〕項１乃至３の何れかのデータ処理装置において、例えばＤＭＡコントローラ（３３）を有する。前記ＵＳＢホストインタフェースは、前記パイプ回路のパイプに対する前記ＤＭＡコントローラとの間でトランザクションの入出力を行うＤＭＡポートを有する。前記アクセス制御レジスタ回路は、前記ＤＭＡポートに対する制御権限を何れの中央処理装置に認めるかを指定する第４のアクセス制御レジスタ（５０４）を有する。前記ＤＭＡポートは、第４のアクセス制御レジスタによって制御権限が認められたＣＰＵによりＤＭＡコントローラに設定された転送条件によるデータ転送制御に従ってトランザクションの入出力を行う。
【００２８】
これにより、ＤＭＡポートをどのパイプに割当てるか、ＤＭＡポートにどのＣＰＵとの間でトランザクションを入出力させるか、などの制御をプログラマブルに行うことができる。
【００２９】
〔５〕項３又は４のデータ処理装置において、例えば前記アクセス制御レジスタ回路は、前記パイプに割当て可能な機能をパイプ毎に指定する第５のアクセス制御レジスタ（５０５，５０７）を有する。前記アクセス制御回路は、パイプに伝える制御情報を前記第５のアクセス制御レジスタに設定された範囲に制限する。
【００３０】
これにより、ＵＳＢデバイスのエンドポイントとパイプと対応関係を第５のアクセス制御レジスタによって任意に設定することが可能になる。
【００３１】
〔６〕項５のデータ処理装置において、パイプに伝える前記制御情報は、例えばエンドポイント番号及びデバイスアドレスを含む。
【００３２】
〔７〕項６のデータ処理装置において、前記アクセス制御回路は、例えば中央処理装置からの制御データを格納するＵＳＢ制御レジスタ（６２０，６４０）を中央処理装置毎に備えると共に、中央処理装置からのＵＳＢ制御レジスタへの制御データの書き込みを前記第５のアクセス制御レジスタの内容に従って制限する書き込み値制御回路（６０１，６０３）を有する(実施の形態１)。
【００３３】
これにより、ＵＳＢデバイスのエンドポイントとパイプと対応関係などを任意に設定する構成を容易に実現することができる。
【００３４】
〔８〕項７のデータ処理装置において、例えば前記アクセス制御回路は前記ＵＳＢ制御レジスタに接続するアクセスレジスタ選択回路（６６０）を有し、前記アクセスレジスタ選択回路は前記第１制御レジスタ乃至第４制御レジスタで指定された中央処理装置に対応する前記ＵＳＢ制御レジスタの内容を選択して前記ＵＳＢホストインタフェース回路に与える（実施の形態１）。
【００３５】
ＵＳＢホストインタフェース回路と前記ＵＳＢ制御レジスタとの接続を容易に実現することができる。
【００３６】
〔９〕項６のデータ処理装置において、例えば前記アクセス制御回路は、中央処理装置からの制御データを格納するＵＳＢ制御レジスタ（６５０）を備えると共に、中央処理装置からのＵＳＢ制御レジスタへの制御データの書き込みを前記第５のアクセス制御レジスタの内容に従って制限する書き込み値制御回路（６０１，６０３）を有する（実施の形態２）。
【００３７】
これにより、ＵＳＢデバイスのエンドポイントとパイプと対応関係などを任意に設定する構成を容易に実現することができる。
【００３８】
〔１０〕項９のデータ処理装置において、例えば前記アクセス制御回路は前記ＵＳＢ制御レジスタに接続する書込み可否制御回路（６０５，６０６）を有する。前記書込み可否制御回路は前記第１制御レジスタ乃至第４制御レジスタで指定された中央処理装置以外の中央処理装置による前記ＵＳＢ制御レジスタへの書き込みを拒絶する（実施の形態２）。
【００３９】
これにより、ＵＳＢ制御レジスタを複数個の中央処理装置に共通化することができる。
【００４０】
〔１１〕項１のデータ処理装置において、例えば前記アクセス制御回路は、夫々のパイプからの割込み要求を前記第１制御レジスタで指定された中央処理装置に向けて供給する割込み要求制御回路（６７０，６７１）を有する。
【００４１】
これにより、パイプからの割込み要求に応答する中央処理装置をパイプに対する制御権限を持つＣＰＵに関連付けて指定することができる。
【００４２】
〔１２〕項１のデータ処理装置において、例えば前記複数の中央処理装置のうちの一の中央処理装置と他の中央処理装置との間の相互通信を行う通信回路（９１，９２）を有する。前記通信回路は、通信したい情報が前記中央処理装置によって書込み及び読み出し可能に格納される記憶回路（９２０）を有し、通信したい中央処理装置が通信相手の中央処理装置からの割込み許可を受けて通信フラグをセットする（９２１，９２２）ことにより当該通信相手の中央処理装置に向けて割り込みを要求する。
【００４３】
特定の中央処理装置が取得したエニュメレーションの結果などを他の中央処理装置に知らせることが可能であり、その通知に割込みを用いることにより、ポーリングで認識する場合に比べて、中央処理装置の負担を軽減でき、認識も高速化される。
【００４４】
〔１３〕本発明の別の実施の形態に係るデータ処理装置（実施の形態３）は、複数個の中央処理装置と、前記複数個の中央処理装置に接続されるＵＳＢホストモジュール（３２Ｂ）とを有する。前記ＵＳＢホストモジュールは、前記データ処理装置の外部からＵＳＢデバイスが接続されるＵＳＢホストインタフェース（７０Ｂ）と、前記複数個の中央処理装置に接続されるバスインタフェース（４０）と、前記バスインタフェースに接続され特定の中央処理装置によってアクセスされるアクセス制御レジスタ回路（５０Ｂ）と、前記アクセス制御レジスタ回路に設定された内容に従って前記ＵＳＢホストインタフェースを制御するアクセス制御回路（６０Ｂ）とを有する。前記ＵＳＢホストインタフェースは、前記データ処理装置の外部から接続されたＵＳＢデバイスのエンドポイントと通信するためのパイプを複数個有し前記中央処理装置毎に個別化されたパイプ回路（７３１，７３２）と、前記パイプ回路と中央処理装置との間でトランザクションの入出力を行い前記中央処理装置毎に個別化されたＣＰＵポート（７５１，７５２）と、前記パイプからのトランザクション転送要求を処理するＵＳＢホストプロトコルエンジン（７００）とを有する。前記アクセス制御レジスタ回路は、前記パイプに割当て可能な機能をパイプ毎に指定する。前記アクセス制御回路は、前記ＵＳＢホストインタフェースを制御するための情報が中央処理装置毎に個別化されて設定されるＵＳＢ制御レジスタ（６８０，６８１，６８１Ｃ）を有し、前記ＵＳＢ制御レジスタに設定される制御情報を前記アクセス制御レジスタに設定された範囲に制限する。
【００４５】
項１に比べてパイプ回路及びＣＰＵポートを中央処理装置毎に個別化してもそれと同様の効果を得ることができる。
【００４６】
〔１４〕項１３のデータ処理装置において、例えばパイプに伝える前記制御情報は、エンドポイント番号及びデバイスアドレスを含む。
【００４７】
〔１５〕項１４のデータ処理装置において、例えば前記特定の中央処理装置に対応されるＵＳＢ制御レジスタだけが前記ＵＳＢホストプロトコルエンジンに伝える制御情報を格納可能である。
【００４８】
〔１６〕項１５のデータ処理装置において、例えばＤＭＡコントローラを有する。前記ＵＳＢホストインタフェースは、前記パイプ回路のパイプに対する前記ＤＭＡコントローラとの間でトランザクションの入出力を行い前記中央処理装置毎に個別化されたＤＭＡポートを有する。前記ＤＭＡポートは、対応するＣＰＵによりＤＭＡコントローラに設定された転送条件によるデータ転送制御に従ってトランザクションの入出力を行う。
【００４９】
〔１７〕項１３のデータ処理装置において、例えば前記特定の中央処理装置（１０）以外の中央処理装（２０）に対応されるＵＳＢ制御レジスタ（６８１Ｃ）は前記特定の中央処理装置による操作が可能にされる（実施の形態４）。
【００５０】
ここでは、複数のＵＳＢデバイスが着脱可能にされる場合を想定する。前記特定の中央処理装置以外の中央処理装と通信を行なっていたＵＳＢデバイスが取外されたときそれに対応されるＵＳＢ制御レジスタの設定がそのままになっていると、それと設定の同じデバイスアドレスが、前記特定の中央処理装置に新たに割当てられることになれば、特定の中央処理装置は他の中央処理装置による設定と同じ条件でアクセスが可能になり、セキュリティー違反等を生じ、はなはだ不都合である。このとき、複数のＵＳＢデバイスが着脱可能にされる場合に一つのＵＳＢデバイスの取り外しに連動して全てのパイプをリセットしなくても、特定の中央処理装置が新たに用いるパイプに関する設定を個別的に操作することによって、そのような問題の発生を未然に防止することが可能になる。
【００５１】
〔１８〕項１７のデータ処理装置において、例えば前記特定の中央処理装置による操作が可能にされる制御情報はエンドポイント番号及びデバイスアドレスの情報である。
【００５２】
〔１９〕項１又は１３のデータ処理装置において、例えば前記ＵＳＢホストモジュールと選択的に利用可能にされるその他のシリアルインタフェースに対応するシリアルインタフェースモジュール（１０２）を有する。
【００５３】
これにより、他のシリアルインタフェースを持つ外部デバイスにも対応可能になる。
【００５４】
〔２０〕項１９のデータ処理装置において、例えば前記シリアルインタフェースモジュールはＵＡＲＴインタフェースモジュールである。
【００５５】
〔２１〕項１９又は２０のデータ処理装置において、例えば前記データ処理装置の外部端子のうち前記ＵＳＢホストモジュールに接続する端子の一部と前記シリアルインタフェースモジュールに接続する端子とは共通端子（１２４，１２５）とされる。マルチファンクション端子によって外部端子の数を減らすことができる。
【００５６】
〔２２〕本発明の別の観点による代表的な実施の形態に係るデータ処理システムは、例えば項２１のデータ処理装置と、前記データ処理装置の外部端子のうち前記ＵＳＢホストモジュールに接続する端子と前記シリアルインタフェースモジュールに接続する端子とを介して前記データ処理装置に接続されると共に、外部デバイスが着脱可能に接続されるデバイス制御回路（１３０）とを有する。前記デバイス制御回路はこれに接続される外部デバイスに動作電源として第１電源電圧又は第２電源電圧を供給すると共に前記データ処理装置に接続する外部端子と前記外部デバイスに接続する外部端子との対応を制御する。前記データ処理装置は、前記デバイス制御回路に外部デバイスへの第１電源電圧の供給を指示すると共にＵＳＢホストモジュールを用いた通信を指示し、これに対する外部デバイスからの第１の応答があれば、前記ＵＳＢホストモジュールの使用を選択し前記シリアルインタフェースモジュールの使用を非選択とし、前記第１の応答がなければ、前記デバイス制御回路に外部デバイスへの第２電源電圧の供給を指示すると共にＵＳＢホストモジュールを用いた通信を指示し、これに対する外部デバイスからの第２の応答があれば、前記ＵＳＢホストモジュールの使用を選択し前記シリアルインタフェースモジュールの使用を非選択とし、前記第２の応答がなければ前記ＵＳＢホストモジュールの使用を非選択し前記シリアルインタフェースモジュールの使用を選択とする。
【００５７】
これにより、電源電圧が異なる複数種類のＵＳＢインタフェースを備えて外部デバイス、更に、その他のシリアルインタフェースに対応する外部デバイスにも対応することができる。
【００５８】
〔２３〕項２２のデータ処理システムにおいて、例えば前記第１の電源電圧は１．８Ｖ、前記第２の電源電圧は３．０Ｖである。
【００５９】
２．実施の形態の詳細
実施の形態について更に詳述する。
【００６０】
《実施の形態１のシステム構成》
図１には本発明に係るデータ処理装置とこれに接続されるＵＳＢデバイスの一例が示される。データ処理装置１は、特に制限されないが、相補型ＭＯＳ集積回路製造技術などによって単結晶シリコンのような１個の半導体基板に形成された、システムオンチップの半導体装置（ＬＳＩ）として構成される。半導体装置１は例えば移動体通信のためのベースバンド処理と画像処理や音声処理などのアプリケーション処理を行なう。ＵＳＢデバイス２は、特に制限されないが、移動体通信端末の端末認証に用いるＵＳＩＭ及び汎用ストレージモジュールなどの複数のファンクション４，５とＵＳＢデバイスインタフェース６を備え、単一のＵＳＢ通信路３を介してデータ処理装置１に着脱自在に接続される。ＵＳＢデバイスインタフェース６は、エンドポイントと呼ばれるＵＳＢ転送用のバッファを複数有する。ＵＳＢ規格に従えばフル・スピードデバイスで最大１６個のエンドポイントを持つ。図ではエンドポイント０（ＥＰ０）、エンドポイント１（ＥＰ１）、エンドポイント２（ＥＰ２）が代表的に図示されている。エンドポイント毎に、エンドポイント番号、転送方向、転送方式、最大パケットサイズが定義される。エンドポイント０はコントロール転送をサポートし、全てのＵＳＢデバイスが持たなければならない。コントロール転送はＵＳＢデバイスのコンフィギュレーションやメッセージの送受信に使用される。その他のエンドポイントはプリンタやストレージ等の大量のデータ転送を行うときに用いるバルク転送、オーディオや電話等のリアルタイム性が要求されるデータ転送に用いるアイソクロナス転送などに割当てられる。特に制限されないが、ファンクション４はＵＳＩＭとされ、エンドポイント０による転送が適用される。ファンクション５は不揮発性ストレージとされ、エンドポイント１、エンドポイント２による転送が適用される。
【００６１】
データ処理装置１は、夫々が命令をフェッチして実行する複数個の中央処理装置（ＣＰＵ）１０，２０を備え、それぞれは固有のバス１２，２２に接続され、バス１２，２２は共有バス３０に接続され、共有バス３０にＵＳＢホストモジュール３２が接続される。バス１２には代表的に示されたメインメモリ１３や割込みコントローラ（ＩＮＴＣ）１１等が接続される。バス２２には代表的に示されたメインメモリ２３や割込みコントローラ（ＩＮＴＣ）２１等が接続される。共有バス３０には共有メモリ３１、ＵＳＢホストモジュール３２、及びＤＭＡ（Direct Memory Access）コントローラ３３が接続される。メインメモリ１３，２３は対応するＣＰＵ（第１ＣＰＵ）１０，２０のワーク領域若しくは一時記憶領域として用いられる。割込みコントローラ１１はＵＳＢホストモジュール３２などからの割込み要求に基づいてＣＰＵ１０に割込み信号ＩＮＴ１を出力する。割込みコントローラ２１はＵＳＢホストモジュール３２などからの割込み要求に基づいてＣＰＵ（第２ＣＰＵ）２０に割込み信号ＩＮＴ２を出力する。バス１２，２２及び共有バス３０は、特に制限されないが、スプリットトランザクションバスとされ、アクセスを要求する回路（イニシエータ）はリクエストパケットをバスに出力し、アクセス対象とされる回路（ターゲット）は受取ったリクエストパケットに応答する処理を行なってレスポンスパケットをイニシエータに返す。リクエストパケットにはアクセスを要求するイニシエータのアドレス（イニシエータアドレス）、アクセス対象とされるターゲットのアドレス（ターゲットアドレス）、アクセスの内容を示すアクセスコマンド、及び必要な場合には書込みデータを有する。バス上に配置されたルータは、リクエストパケットに含まれるターゲットアドレスが示すターゲットにリクエストパケットを転送し、レスポンスパケットに含まれるレスポンスアドレスが示すイニシエータにレスポンスパケットを渡す。
【００６２】
ＵＳＢホストモジュール３２は、ＵＳＢデバイス２が接続されるＵＳＢホストインタフェース７０、共有バスに接続されるバスインタフェース４０、バスインタフェース４０に接続され特定の中央処理装置例えばＣＰＵ１０によってアクセスされるアクセス制御レジスタ回路５０、アクセス制御レジスタ回路５０に設定された内容に従って前記ＵＳＢホストインタフェースを制御するアクセス制御回路６０、及びＣＰＵ間通信回路８０を有する。
【００６３】
ＵＳＢホストインタフェース７０はＵＳＢ通信の制御、即ち、通信、リセット、アタッチ、デタッチなどの制御を行うＵＳＢプロトコルエンジン７００、各エンドポイントと通信を行う複数のパイプを備えたパイプ回路７２０、及びパイプ回路７２０との間でデータ、即ちトランザクションのやり取りを行うポート回路７４０を有する。パイプ回路７２０は複数のパイプ０（ＰＩＰＥ０）〜パイプｎ（ＰＩＰＥｎ）を有する。ポート回路７４０は、夫々のパイプとバスインタフェース４０との間でトランザクションのやり取りを行うＣＰＵポート７４１と、夫々のパイプとＤＭＡ（Direct Memory Access）コントローラ３３との間でトランザクションのやり取りを行うＤＭＡポート７４２とを有する。パイプはＣＰＵポート７４１又はＤＭＡポート７４２介してトランザクションを受取る。パイプ毎にＵＳＢデバイス２のデバイスアドレスとエンドポイントが指定されることで、ＵＳＢホストインタフェース７０は特定のエンドポイントとの間の通信を制御する。パイプとエンドポイントとの間でやり取りされるトランザクションはＵＳＢモジュール内のＵＳＢプロトコルエンジン７００が管理する。図２に例示されるようにトランスファを構成するトランザクションは、デバイスアドレスとエンドポイントなどを含むトークンパケット、送受信するデータを含むデータパケット、通信成否を返すハンドシェイクパケット等からなる。ＵＳＢプロトコルエンジン７００はＵＳＢデバイス２と各パケットをやり取りして通信を行い、各パイプに送受信データをライト・リードする。複数のパイプから通信要求がある場合は、トランザクション毎にパイプを切換えて、ひとつのパイプが通信路を占有することがないように制御する。例えばパイプ０とパイプ１を用いる場合、ＵＳＢプロトコルエンジン７００は、パイプ０のトランザクション完了をＵＳＢデバイスから受取ったとき、パイプ１に未実行の別のトランザクションがあれば当該別のトランザクションの実行に切換えるといいうように、異なるパイプのトランザクションを交互に、時分割で、処理する制御を行う。ＣＰＵポート７４１はバスインタフェース４０とパイプとの間でトランザクションの入出力を行う。
【００６４】
バスインタフェース４０は共有バス３０から伝達されるアクセスのアクセス元識別情報、例えばイニシエータアドレスのようなソースＩＤ情報を元にアクセス元のＣＰＵを区別することができる。マスタバスインタフェース（ＭＢＩＦ）４１はＣＰＵ１０からのアクセスを受け付け、それに対する応答を返すために利用される。サブバスインタフェース（ＳＢＩＦ）４２はＣＰＵ１１からのアクセスを受け付け、それに対する応答を返すために利用される。
【００６５】
アクセス制御レジスタ回路５０は夫々のパイプＰＩＰＥ０〜ＰＩＰＥｎ、ＣＰＵポート７４１、ＤＭＡポート７４２、ＵＳＢプロトコルエンジン７００などをＣＰＵ１０又はＣＰＵ２０の何れのＣＰＵからアクセスできるかを指示するための図３に例示されるレジスタと、夫々のＣＰＵ１０，２０が設定することができるエンドポイントアドレス及びデバイスアドレスの値などを制御する図４に例示されるレジスタを備える。アクセス制御レジスタ回路５０の各レジスタに対するアクセスは特定のＣＰＵ１０のみが可能にされる。要するに、アクセス制御レジスタ回路５０はマスタバスインタフェース回路４１を介して共有バス３０に接続される。
【００６６】
アクセス制御回路６０は、レジスタ書込み・読み出し制御回路６００、ＣＰＵ１０専用のＵＳＢ制御レジスタ６２０、ＣＰＵ２０専用のＵＳＢ制御レジスタ６４０、及びアクセスレジスタ選択回路６６０を有する。ＵＳＢ制御レジスタ６２０，６４０はＵＳＢホストインタフェース７０を制御するためのレジスタ群であり、パイプＰＩＰＥ０〜ＰＩＰＥｎ、ＣＰＵポート７４１、ＤＭＡポート７４２、プロトコルエンジン７００を制御する情報が格納される図３に例示される複数のレジスタを備える。
【００６７】
《実施の形態１におけるアクセス制御レジスタ回路及びＵＳＢ制御レジスタ》
アクセス制御レジスタ回路５０及びＵＳＢ制御レジスタ６２０，６４０の制御機能について図３及び図４を参照しながら更に詳述する。
【００６８】
前述の如くＵＳＢ制御レジスタ６２０はＣＰＵ１０専用であり、ＵＳＢ制御レジスタ６４０はＣＰＵ２０専用であり、ＣＰＵ１０，２０から夫々のＵＳＢ制御レジスタ６２０，６４に対する書き込み可能な値の範囲を設定するために、図４に例示される書込み値許可レジスタ５０５，５０７を有する。図４に例示されるように、レジスタ書込み・読み出し値制御回路６００は、書込み値許可レジスタ５０５の設定値に従った値の範囲でＣＰＵ１０からＵＳＢ制御レジスタ６２０への書込み値を制限する書込み値制御回路６０１を備える。同様に、レジスタ書込み・読み出し値制御回路６００は、書込み値許可レジスタ５０７の設定値に従った値の範囲でＣＰＵ２０からＵＳＢ制御レジスタ６４０への書込み値を制限する書込み値制御回路６０３を備える。
【００６９】
ＵＳＢ制御レジスタ６２０は、図３に例示されるように、プロトコルエンジン７００に対する制御情報が設定されるプロトコルエンジン制御レジスタ６２１、対応させるべきエンドポイント番号及びデバイスアドレスなどが設定されるパイプＰＩＰＥ０制御レジスタ６２２、…、接続されるべきパイプの番号等が設定されるＣＰＵポート制御レジスタ６２３、接続されるべきパイプの番号等が設定されるＤＭＡポート制御レジスタ６２４、ＣＰＵポートに入出力されるデータを保持するＣＰＵポートデータレジスタ６２５を有する。同様に、ＵＳＢ制御レジスタ６４０も、図３に例示されるように、プロトコルエンジン７００に対する制御情報が設定されるプロトコルエンジン制御レジスタ６４１、対応させるべきエンドポイント番号及びデバイスアドレスなどが設定されるパイプＰＩＰＥ０制御レジスタ６４２、…、接続されるべきパイプの番号等が設定されるＣＰＵポート制御レジスタ６４３、接続されるべきパイプの番号等が設定されるＤＭＡポート制御レジスタ６４４、ＣＰＵポートに入出力されるデータを保持するＣＰＵポートデータレジスタ６４５を有する。
【００７０】
前記書込み値制御回路６０１（６０３）は、例えばＣＰＵ１０（ＣＰＵ２０）が、エンドポイント番号とデバイスアドレスをパイプ０制御レジスタ６２２に書き込もうとしたときアクセス書込み値許可レジスタ５０５（５０７）で許可されていない値の場合にはその書込みを無効化し、また、パイプ番号をＣＰＵポート制御レジスタ６２３（６４３）に書込もうとしたときそのパイプ番号がアクセス書込み値許可レジスタ５０５（５０７）で許可されていない値の場合にはその書込みを無効化する。図４のレジスタ書込み・読出し値制御回路６００はＵＳＢ制御レジスタ６２０からマスタバスインタフェース４１への読出し値を制御する読出し値制御回路６０２と、ＵＳＢ制御レジスタ６４０からサブバスインタフェース４２への読出し値を制御する読出し値制御回路６０４を備え、後述する図２のＣＰＵ選択レジスタ５０１〜５０４で許可されていないＣＰＵ側のＵＳＢ制御レジスタ６２０，６４０からの読出しを抑止する。図４において例えばＣＰＵ選択レジスタ５０２でＣＰＵ１０が選択されているときはパイプ０制御レジスタの読出しはＵＳＢ制御レジスタ６２０からだけ可能にされ、選択されていない方のほうのＵＳＢ制御レジスタ６４０から無意味なデータが読み出されることによって不都合が生ずることを未然に防止している。
【００７１】
ＣＰＵ選択レジスタ５０１〜５０４は、書込み値制御レジスタ５０５，５０７によって指定された書込み可能な範囲でＵＳＢ制御レジスタ６２０とＵＳＢ制御レジスタ６４０に書込まれた制御情報の何れの情報を用いてＵＳＢインタフェース７０を制御するかを決定する。図３の構成に従えば、ＵＳＢホストプロトコルエンジン選択レジスタ５０１はＵＳＢ制御レジスタ６２０のプロトコルエンジン制御レジスタ６２１の値又はＵＳＢ制御レジスタ６４０のプロトコルエンジン制御レジスタ６４１の値をスイッチ６６１に選択させてＵＳＢプロトコルエンジン７００に供給する。パイプ０ＣＰＵ選択レジスタ５０２はＵＳＢ制御レジスタ６２０のパイプ０制御レジスタ６２２の値又はＵＳＢ制御レジスタ６４０のパイプ０制御レジスタ６４２の値をスイッチ６６２に選択させてパイプ０に供給する。図示は省略しているが、その他のパイプ１〜パイプｎについても同様とされる。ＣＰＵポート選択レジスタ５０３はＵＳＢ制御レジスタ６２０のＣＰＵポート制御レジスタ６２３の値又はＵＳＢ制御レジスタ６４０のＣＰＵポート制御レジスタ６４３の値をスイッチ６６３に選択させてＣＰＵポート７４１に供給し、また、ＵＳＢ制御レジスタ６２０のＣＰＵポートデータレジスタ６２５の値又はＵＳＢ制御レジスタ６４０のＣＰＵポートデータレジスタ６４５の値をスイッチ６６５に選択させてＣＰＵポート７４１に接続する。ＤＭＡポート選択レジスタ５０４はＵＳＢ制御レジスタ６２０のＤＭＡポート制御レジスタ６２４の値又はＵＳＢ制御レジスタ６４０のＤＭＡポート制御レジスタ６４４の値をスイッチ６６４に選択させてＤＭＡポート７４２に供給する。特に制限されないが、ＤＭＡコントローラ３３に対するデータ転送条件の設定はＣＰＵ２０だけに許容されている関係で、ＤＭＡポート７４２のデータレジスタをＣＰＵ１０又はＣＰＵ２０の一方に選択的に対応付ける構成は採用されておらず、ＣＰＵポート７４１のデータレジスタに対する構成とは相違される。
【００７２】
アクセス制御レジスタ回路及びＵＳＢ制御レジスタに対する設定例を説明する。図５にはＵＳＢデバイス２の使用例がエンドポイント番号とアクセスＣＰＵとの対応で示される。図６には図５の使用例に則したアクセス制御レジスタ回路５０に対する設定例が示される。パイプに対するＣＰＵのアクセス権限はＣＰＵ選択レジスタ５０２、…の設定で決まり、ＣＰＵポート７４１、ＤＭＡポート７４２、ＵＳＢプロトコルエンジン７００に対するＣＰＵの権限はＣＰＵ選択レジスタ５０１，５０３，５０４の設定で決まる。デバイスアドレス及びエンドポイントの設定値は書込み値許可レジスタ５０５，５０７によるパイプ制御レジスタ６２２，…、６２４，…への書込み値制御に従って決まる。この場合の書込み値許可レジスタ５０５，５０７の内容は、特に制限されないが、図７に例示されるように、エンドポイント番号とデバイスアドレスとの組合せに対してアクセス可能なＣＰＵを明示した内容とされる。
【００７３】
図８には書込み値許可レジスタ５０５に従った書込み値制御回路６０１による書込み値制御の具体例が示される。マスタバスインタフェース４１からデバイスアドレスとエンドポイントが供給されるとき、それがどのパイプのデータであるかを示すデータセットパルスも供給される。書込み値許可レジスタ５０５はデバイスアドレス毎に使用可能なエンドポイントを指定している。デバイスアドレス[15:12]に対応するエンドポイントのエントリが選択され、選択されたエンドポイントのエントリからエンドポイント[3:0]で一つのエンドポイント許可データが選択され、選択された許可データが許可を示し、対応するデータセットパルスがイネーブルにされているとき、イネーブルレベルのセットパルスに対応するパイプのパイプ制御レジスタにその書込みデータ[15:0]が書込まれて、パイプ制御レジスタにデバイスアドレスとエンドポインタ番号がセットされる。
【００７４】
図９には図８によるデバイスアドレスとエンドポインタ番号の書込み動作タイミングが例示される。図９において書込みデータＤ１は書込み許可レジスタによって書き込みが許可されているデバイスアドレスとエンドポイント番号を含み、データＤ２は含まないものとする。含む場合のみ、パイプ制御レジスタへのセットパルスがイネーブルにされ、これに同期してパイプ制御レジスタにデバイスアドレスとエンドポインタ番号が書込まれる。
【００７５】
《割込み要求機能》
アクセス制御回路６０は、図１０に例示されるように、例えばパイプ０（ＰＩＰＥ０）からの割込み要求を前記パイプ０ＣＰＵ選択レジスタ５０２で指定されたＣＰＵ１０又は２０に向けて供給する割込み要求制御機能を備える。具体的には、ＵＳＢ制御レジスタ６２０はパイプ０割込み許可レジスタ６２６及び割込み要因レジスタ６２７を有し、ＵＳＢ制御レジスタ６４０はパイプ０割込み許可レジスタ６４６および割込み要因レジスタ６４７を有し、アクセスレジスタ選択回路６６０はＵＳＢモジュール割込みコントローラ６７０，６７１を有し、パイプ０割込み許可レジスタ６２６によりパイプ０からの割込みが許可され、且つパイプ０ＣＰＵ選択レジスタ５０２によってＣＰＵ１０のアクセス権限が有効にされているとき、パイプ０の割込み要求信号７３１がイネーブルにされることによって、割込みコントローラ１１に割込み要求信号ＩＲＱ１が出力され、これによって、ＣＰＵ１０は自分自身がアクセス権限のあるパイプ０から発生された割込み要求に答えることができる。一方、パイプ０割込み許可レジスタ６４６によりパイプ０からの割込みが許可され、且つパイプ０ＣＰＵ選択レジスタ５０２によってＣＰＵ１０のアクセス権限が有効にされているとき、パイプ０の割込み要求信号７３１がイネーブルにされることによって、割込みコントローラ２１に割込み要求信号ＩＲＱ２が出力され、これによって、ＣＰＵ２０は自分自身がアクセス権限のあるパイプ０から発生された割込み要求に答えることができる。割り込み要因は割り込み信号を受取ったＣＰＵが割り込み要因レジスタ６２７，６４７を参照することによって把握する。図示は省略するが当該割込み要求制御機能は全てのパイプに対して備える。
【００７６】
これにより、パイプからの割込み要求に応答する中央処理装置をパイプに対する制御権限を持つＣＰＵに関連付けて指定することができる。
【００７７】
《ＣＰＵ間通信》
図１１にはＣＰＵ間通信のための通信回路が例示される。ＵＳＢホストモジュール３２は、ＣＰＵ１０からＣＰＵ２０への通信を行うための通信回路（ＭｔＳＣｏｍ）９２と、ＣＰＵ２０からＣＰＵ１０への通信を行うための通信回路（ＳｔＭＣｏｍ）９１とを有する。
【００７８】
通信回路９２は、通信したい情報が前記ＣＰＵ１０によって書込み及び読み出し可能に格納され、且つＣＰＵ２０によって読み出し可能にされる記憶回路としてのデータレジスタ９２０、通信したいＣＰＵ１０が通信相手のＣＰＵ２０からの割込み許可を受けるための割り込み許可レジスタ９２１、及びＣＰＵ１０が割り込みフラグをセット及びクリアすることができ、ＣＰＵ２０が割り込みフラグをクリアすることが出来る割り込みフラグレジスタ９２２を有する。ＣＰＵ２０によって割り込み許可レジスタ９２１に割込み許可がセットされているとき、ＣＰＵ１０が割り込みフラグレジスタ９２２に割り込みフラグをセットすることにより、ゲート回路９２３から割り込みコントローラ２１に割込み要求信号ＩＲＱ４が出力される。ＣＰＵ１０はエニュメレーションによって取得したデバイスアドレスやエンドポイントの情報（パケットサイズ、送受信方向、プロトコル）のうち、ＣＰＵ２０がＵＳＢ制御レジスタ６４０に設定すべき情報をＣＰＵ２０に伝達しなければならないようなとき、ＣＰＵ２０による割込み許可がされているとき、データレジスタ９２０に転送すべきデータを書き込んだ後、割り込みフラグをレジスタ９２２にセットすればよい。これによってＣＰＵ２０はそれによる割込みを受け付けることによって必要なデータを取得することができる。  転送すべきデータが揃ったことを割込みによってＣＰＵ２０に通知するから、ＣＰＵ２０がポーリングを使ってその状態を認識する場合に比べて、ＣＰＵ２０の負担を軽減でき、認識も高速化することができる。
【００７９】
特に図示はしないが、通信回路９１も同様に構成され、ＣＰＵ１０によって割り込み許可レジスタに割込み許可がセットされているとき、ＣＰＵ２０が割り込みフラグレジスタに割り込みフラグをセットすることにより、ゲート回路から割り込みコントローラ１１に割込み要求信号ＩＲＱ３が出力されるように構成され、通信回路９２と同様の効果を奏する。
【００８０】
《ＵＳＢホストモジュールの動作フロー》
図１２にはＵＳＢホストモジュール７０の動作フローが例示される。ＵＳＢホストモジュールの初期設定（Ｍ１）とＵＳＢデバイス２のアタッチ検出（Ｍ２）はマスタＣＰＵ１０が行う。ＵＳＢデバイス２のアタッチを検出したマスタＣＰＵ１０はバスリセットをかけ、リセットハンドシェイクにより通信速度を決定する（Ｍ３）。その後、ＵＳＢデバイスとのエニュメレーションを行い（Ｍ４）、ＵＳＢデバイス２の初期設定とデバイスの情報を受け取る。USBデバイスの情報から判断し、エンドポイントとパイプのアクセス権限をどちらのＣＰＵに割り振るかを決定し（Ｍ５）、アクセス制御レジスタ回路５０にその設定値を書き込む（Ｍ６）。その際パイプ制御レジスタ６２２，…、６４２，…をリセットすることで、既に書き込まれたデバイスアドレスやエンドポイントの設定を消去する（Ｍ７）。その後、マスタＣＰＵ１０はサブＣＰＵ２０に利用可能になったパイプ番号とアクセス可能なデバイスアドレス、エンドポイント番号、各エンドポイントの情報を前記ＣＰＵ間通信機能を用いて送信する（Ｍ８）。その前提として、サブＣＰＵ２０は既に、ＣＰＵ１０からＣＰＵ２０への通信に対する割り込み許可をレジスタ９２１に設定してあり（Ｓ１）、ＣＰＵ２０は割り込み信号ＩＮＴ２を受けることによってデータレジスタ９２０から利用可能なパイプ番号とアクセス可能なデバイスアドレス、エンドポイント番号、各エンドポイントの情を取得する（Ｓ２）。この後、マスタＣＰＵ１０はＵＳＢ制御レジスタ６２０に対してパイプの設定等のＵＳＢ通信の準備を行い（Ｍ９）、ＵＳＢ通信を行う（Ｍ１０）。ＵＳＢデバイスのデタッチをマスタＣＰＵ１０が検出したら、デタッチをサブＣＰＵ２０に伝える（Ｍ１１）。ステップＳ２の後、サブＣＰＵ２０は、ＵＳＢ制御レジスタ６４０に対してパイプの設定等のＵＳＢ通信の準備を行い（Ｓ３）、ＵＳＢ通信を行う（Ｓ４）。ＵＳＢデバイスのデタッチがマスタＣＰＵ１０から通知されたら、サブＣＰＵ２０はＵＳＢ通信を終了する（Ｓ５）。
【００８１】
《通信情報に対する秘匿性の保証》
上述のＵＳＢホストモジュールを用いることによって得られる秘匿性の保証について具体例を説明する。図５のようなデバイスが接続され、図６のようにアクセス制御レジスタを設定する場合を一例とする。これに従えば、ＣＰＵ１０はパイプ０を制御して、エンドポイント０と加入者情報をやり取りすることができる。ＣＰＵ２０はＣＰＵ１０からエンドポイント１〜４と通信するための設定情報を受け取り、その情報を元にパイプ１〜パイプ４を制御することで、ファイルの読み書きや、イーサネット（登録商標）フレームの送受信を行うことができる。ＣＰＵ２０がこの加入者情報を得るために使用可能なパイプ１にエンドポイント番号に０を設定しようしても、図４の書込み値制御回路６０３によって無効化されるため設定できない。また、既にエンドポイント番号に０が設定されているパイプ０を制御しようとしても、ＵＳＢ制御レジスタ６２０へのアクセスはできず、ＵＳＢ制御レジスタ６４０のパイプ０制御レジスタ６４２にアクセスしたとしても、図３のアクセスレジスタ選択回路６６０によってパイプ回路７２０のパイプ０（ＰＩＰＥ０）と切り離されているため、制御することはできない。さらに使用可能なＤＭＡポート７４２をパイプ０に繋ぎ、データの盗聴や改竄をしようとしても、図４の書込み値制御回路６０３によって無効化されるため設定できない。
【００８２】
パイプ０の通信が終わり、通信終了割り込みが発生したとき、サブＣＰＵ２０が間違ってパイプ０割込み許可レジスタ６４６で割り込み許可にしていたとしても、パイプ０ＣＰＵ選択レジスタ５０２の設定により図１０のＵＳＢモジュール割り込みコントローラ６７１内で割り込み要求７３１が無効化される。
【００８３】
《トランザクション単の時分割通信動作》
図１３にはＣＰＵ１０とＣＰＵ２０で同時に別々のパイプにアクセスする通信動作が例示される。図１４は図１３の動作フローで処理されるトランザクションの処理フローを示す。図１５は図１３の比較例でありＣＰＵがＵＳＢモジュールのアクセス権限をセマフォ管理で行った場合の通信動作を例示し、図１６は図１５の動作フローで処理されるトランザクションの処理フローを示す。
【００８４】
図１５においてＣＰＵ１はＣＰＵ２がＵＳＢホストモジュール利用中はパイプ０を利用できないため、ＣＰＵ２が通信終了するまで待つ必要がある。図１６に例示されるように、ＣＰＵ２の通信終了後もセマフォ管理の処理とＣＰＵ１のパイプ設定などの処理が入るため、通信開始まで時間が空く。また、ＵＳＢのインタラプト転送やアイソクロナス転送を正しく行うことができない。要するに、セマフォ切換えなどの処理によってリアルタイム性や遅延時間の保証を行うことができなくなる。
【００８５】
ＣＰＵ２とファンクション２との間でファイル転送を行うとき、大量のデータの転送を行うが、その間ＣＰＵ１は通信を行うことができない。図１３、１４、１５、１６において、Ｂ０〜Ｂｎはファイル転送のブロックなどを意味する。ＣＰＵ１はファンクション１と定期的な認証を行っており、ファンクション１との通信ができずにタイムアウトすると、認証が必要とされる機能を使用することができなくなる。また、ＣＰＵ２が遅いデバイスと通信するとき、トランザクションとトランザクションの間が空いていても、そこにＣＰＵ１のトランザクションを入れることができない。したがってトランザクションの処理効率、更にはトランスファの処理効率が著しく低下し、更には必要なトランスファを実現することができなくなる虞を生ずる。
【００８６】
これに対し、２個のＣＰＵ１０とＣＰＵ２０でパイプ資源を分け合うことで、図１３に例示されるように相手のＣＰＵのトランスファの完了を待たずに、通信したい機能とトランザクション単位で交互に通信を行うことができる。サブＣＰＵ（ＣＰＵ２）２０が大量のデータをやり取りしていても、マスタＣＰＵ（ＣＰＵ１）１０はファンクション1と通信を行うことができる。トランザクション単位の時分割による使用パイプの切換えは前述の通り、プロトコルエンジン７００の制御で行う。
【００８７】
《実施の形態２》
図１７には本発の第２の実施の形態に係るデータ処理装置１Ａが示される。同図に示されるデータ処理装置１Ａはアクセス制御回路６０Ａが図1とは異なる。即ち、ＣＰＵ１０，２０からの制御データを格納する一つのＵＳＢ制御レジスタ６５０を備え、ＵＳＢ制御レジスタ６５０に格納された情報は直接ＵＳＢホストインタフェース７０に供給される。ＵＳＢ制御レジスタ６５０に接続されるレジスタ書込み・読出し制御回路６００Ａは、ＣＰＵ１０，２０からのＵＳＢ制御レジスタ６５０への制御データの書き込みをアクセス制御レジスタ回路の設定に従って制限するために、前記書込み値制御回路６０１，６０３のほかに書込み可否制御回路６０５，６０６を備える。尚、図1と同一機能を備えた構成要素には同一参照符号を附してその詳細な説明を省略する。
【００８８】
図１８にはレジスタ書込み・読出し制御回路６００Ａの具体例が示される。書込み値制御回路６０１，６０３及び読み出し値制御回路６０２，６０４は図４と同様にマスタバスインタフェース４１側とサブバスインタフェース４２側に夫々配置される。書込み値制御回路６０１とＵＳＢ制御レジスタ６５０との間にはＣＰＵ１０側からの書込みの可否を制御する書込み可否制御回路６０５が配置され、ＣＰＵ選択レジスタ５０１〜５０４によってＣＰＵ１０のアクセス権限が認められたデータだけをＵＳＢ制御レジスタ６５０の対応レジスタに供給可能とする。一方、書込み値制御回路６０３とＵＳＢ制御レジスタ６５０との間にはＣＰＵ２０側からの書込みの可否を制御する書込み可否制御回路６０６が配置され、ＣＰＵ選択レジスタ５０１〜５０４によってＣＰＵ２０のアクセス権限が認められたデータだけをＵＳＢ制御レジスタ６５０の対応レジスタに供給可能とする。アクセス権限のないＣＰＵへの制御データの読出し制限は前述の読出し値制御回路６０２，６０４で達成される。
【００８９】
これにより、図１と同様の作用効果を奏すると共に、ＵＳＢ制御レジスタ６５０を複数個のＣＰＵ１０，２０に共通化することができる。
【００９０】
《実施の形態３》
図１９には本発の第３の実施の形態に係るデータ処理装置１Ｂが示される。同図に示されるデータ処理装置１Ｂはアクセス制御回路６０Ｂ及びＵＳＢホストインタフェース７０Ｂが図1とは異なる。即ち、上記実施の形態では、ＣＰＵ１０，２０が使用するパイプの数を自由に変更可能としたが、ここでは最初から各ＣＰＵ１０，２０に所定数のパイプを割り当ておくものとする。尚、図1と同一機能を備えた構成要素には同一参照符号を附してその詳細な説明を省略する。
【００９１】
更に詳しくは、ＵＳＢホストインタフェース７０Ｂは、ＣＰＵ１０に割当てられる第１パイプ回路７３１及び第１ポート回路７５１を有し、ＣＰＵ２０に割当てられる第２パイプ回路７３２及び第２ポート回路７５２を有する。特に図示はしないがＣＰＵポート７４３はマスタバスインタフェース４１に、ＣＰＵポート７４５はサブバスインタフェース４２に接続される。ＤＭＡポート７４４はＤＭＡコントローラ３３に接続され、ＤＭＡポート７４６は別のＤＭＡコントローラ３４に接続される。ＤＭＡコントローラ３３はＣＰＵ１０に専属制御権が認められ、ＤＭＡコントローラ３４にはＣＰＵ２０に専属制御権が認められる。
【００９２】
アクセス制御回路６０Ｂはレジスタ書込み・読出し制御回路６００Ｂ、ＣＰＵ１０が専属アクセス権を持つＵＳＢ制御レジスタ６８０、及びＣＰＵ２０が専属アクセス権を持つＵＳＢ制御レジスタ６８１を備える。レジスタ書込み・読出し制御回路６００Ｂはアクセス制御レジスタ回路５０Ｂ内の書込み値許可レジスタ５０５，５０７の設定値に従って、ＵＳＢ制御レジスタ６８０に対する書込み値を制限する書込み値制御回路６０１と、ＵＳＢ制御レジスタ６８１に対する書込み値を制限する書込み値制御回路６０３とを備える。
【００９３】
ＵＳＢ制御レジスタ６８０は、レジスタ６２１のようなプロトコルエンジン制御レジスタ、レジスタ６２２のようなポート制御レジスタ、レジスタ６２３のようなＣＰＵポート制御レジスタ、及びレジスタ６２４のようなＤＭＡポート制御レジスタを有する。それらレジスタの設定値は第１パイプ回路７３１及び第１ポート回路７５１にそのまま供給される。ＵＳＢ制御レジスタ６８１は、レジスタ６２２のようなポート制御レジスタ、レジスタ６２３のようなＣＰＵポート制御レジスタ、及びレジスタ６２４のようなＤＭＡポート制御レジスタを有する。それらレジスタの設定値は第２パイプ回路７３２及び第１ポート回路７５２にそのまま供給される。
【００９４】
アクセス制御レジスタ５０ＢはＣＰＵ選択レジスタ５０１〜５０４を持つことを要しない。
【００９５】
この実施の形態によれば、パイプ回路及びポート回路をＣＰＵ毎に個別化しても図１と同様の効果を得ることができる。
【００９６】
《実施の形態４》
図２０には本発の第４の実施の形態に係るデータ処理装置１Ｃが示される。同図に示されるデータ処理装置１ＣはＵＳＢハブ等を介して複数のＵＳＢデバイスが接続される場合を想定した例であり、たとえば図１９のデータ処理装置１Ｂを改良した構成として位置付けられる。図１９との相違点はＵＳＢ制御レジスタ６８１Ｃとマスタバスインタフェース４１Ｃの構成である。即ち、ＣＰＵ２０側のＵＳＢ制御レジスタ６８１Ｃのうち、パイプ制御レジスタに対してはＣＰＵ１０による操作も可能に構成される。尚、図１９と同一機能を備えた構成要素には同一参照符号を附してその詳細な説明を省略する。
【００９７】
更に詳しく説明する。前述の通り、ここではＵＳＢプロトコルエンジン７０ＢにＵＳＢハブ等を介して複数のＵＳＢデバイスが接続される場合を想定する。２個以上のＵＳＢデバイスが接続され、挿抜が繰り返されるような場合、デバイスアドレスとエンドポイントの設定がパイプに残らないようにする機能が必要となる。例えば、図１９の構成において、デバイスアドレス５をＣＰＵ２０に割り当てていたとする。ＣＰＵ２０によるアクセスが許可されているので、パイプの制御レジスタ６８１にデバイスアドレス５を設定できる。そのＵＳＢデバイスが抜かれた後でも、その設定は残る。その後別のＵＳＢデバイスが接続され、そのデバイスへのアクセスをＣＰＵ１０のみに許可し、それにデバイスアドレス５を割り振った場合、ＣＰＵ２０側のパイプにデバイスアドレス５が設定されているので、ＣＰＵ２０もデバイスアドレス５のＵＳＢデバイスと通信可能になり、セキュリティー上の問題を生ずる。ＵＳＢデバイスが1つしか繋がらない条件の場合には、その1つのＵＳＢデバイスが抜かれたときにそのパイプをリセットする制御手順を採用すればよいが、２個以上のＵＳＢデバイスが接続可能な場合には、一つのＵＳＢデバイスが離脱されたとき、違うデバイスアドレスとそのパイプが通信中である可能性があるため、クリアすることはできない。
【００９８】
そこで、図２０では、ＣＰＵ２０側のＵＳＢ制御レジスタ６８１Ｃにおいてデバイスアドレスとエンドポイントを設定するパイプ制御レジスタへのアクセスをＣＰＵ１０からも可能にする。ＣＰＵ１０はＵＳＢデバイスの挿抜が繰り返され、以前使用したデバイスアドレスを再度使用する場合、以前設定した値がパイプ制御レジスタに残っていないかを確認する。残っている場合は違うアドレスを割り振るか、そのレジスタの書き換えをＣＰＵ２０に指示し、書き換わったことを確認してからそのデバイスアドレスを使用する。
【００９９】
《実施の形態５》
図２１にはＵＳＢインタフェースのほかにＵＡＲＴ（Universal Asynchronous Receiver Transmitter）インタフェースを備えたＵＩＭ（User Identity Module）デバイス、あるいはＵＡＲＴインタフェースだけを備えたＵＩＭデバイスに対応するためのデータ処理装置１Ｄが例示される。ＵＩＭデバイスは携帯電話器に代表される携帯端末における使用者認証などに広く利用されているが、従来から汎用非同期送受信を行うＵＡＲＴインタフェースが用いられているが、それに比べて通信速度の速いＵＳＢインタフェースを採用することも可能であり、ここでは、過渡的な段階においてＵＳＢインタフェースとＵＡＲＴインタフェースが混載されたＵＩＭデバイス、ＵＳＢインタフェースだけが搭載されたＵＩＭデバイス、及びＵＡＲＴインタフェースだけが搭載されたＵＩＭデバイスの何れにも対応可能なデータ処理装置１Ｄについて説明する。
【０１００】
データ処理装置１Ｄは例えば実施の形態１で説明した全ての機能を備え、アプリケーション部１１０にサブとなるＣＰＵ２０とＵＳＢホストモジュール３２が配置され、ベースバンド部１００にマスタとなるＣＰＵ１０とＵＡＲＴインタフェースモジュール１０２及びＩＩＣ（Inter-Integrated Circuit）インタフェースモジュール１０１が配置される。ＩＩＣインタフェースはデータとクロックの２本の信号線を用いてマスタとスレーブ間で双方向シリアル通信を簡易に行うインタフェースである。ＵＡＲＴインタフェースは調歩同期のシリアル転送とパラレル転送を相互に変換するインタフェース方式である。
【０１０１】
ＵＳＢホストモジュール３２は、特に制限されないが、イネーブル信号ＩＣ＿ＯEを出力し、非反転信号ＩＣ＿ＤＰ及び反転信号ＩＣ＿ＤＭを入出力する。ＵＡＲＴインタフェースモジュール１０２は、特に制限されないが、クロック信号ＩＤ＿ＣＬＫ及びリセット信号ＩＤ＿ＲＳを出力し、データ信号ＩＤ＿ＩＯを入出力する。それらの信号の外部インタフェース端子として、イネーブル信号ＩＣ＿ＯEの出力端子１２３、非反転信号ＩＣ＿ＤＰとクロック信号ＩＤ＿ＣＬＫの共用端子１２４、反転信号ＩＣ＿ＤＭとデータ信号ＩＤ＿ＩＯの共用端子１２５、及びリセット信号ＩＤ＿ＲＳの出力端子１２６を有する。マルチプレクサ１２１は非反転信号ＩＣ＿ＤＰと又はクロック信号ＩＤ＿ＣＬＫの何れか一方を選択する。マルチプレクサ１２２は反転信号ＩＣ＿ＤＭとデータ信号ＩＤ＿ＩＯの何れか一方を選択する。１２０は半導体集積回路において外部端子や入出力バッファなどが配置される入出力パッド領域（ＰＡＤ）を総称する。ＩＩＣインタフェースモジュール１０１はクロック信号ＣＬＫを出力し、データ（ｄａｔａ）を入出力する。尚、特に図示を省略しているが、ＩＩＣインタフェースモジュール１０１も入出力パッド領域（ＰＡＤ）を介して外部とクロック信号ＣＬＫ及びデータ（ｄａｔａ）の入出力を行うことは当然である。
【０１０２】
外部デバイス２Ａはデバイス制御装置としての電源制御半導体装置１３０を介してデータ処理装置１Ｄに接続される。外部デバイス２ＡはＵＳＢデバイスインタフェース６、ファンクション４，５の他に、ＵＡＲＴデバイスインタフェース７を備える。ＵＡＲＴデバイスインタフェース７は例えばＩＳＯ／ＩＥＣ７８１６−３に準拠し、ファンクション４に接続する。例えばファンクション４はＳＩＭ、ファンクション５がフラッシュメモリカードのようなストレージとされる。ＶｃｃはＵＡＲＴデバイスインタフェース７の動作電源、ＶｂｕｓはＵＳＢデバイスインタフェース６の動作電源である。ＵＡＲＴデバイスインタフェース７に接続するＲＳはリセット信号、ＣＬＫはクロック信号、Ｉ／Ｏは入出力データである。ＵＳＢデバイスインタフェース６に接続するＤ＋は非反転データ、Ｄ−は反転データである。電源制御半導体装置１３０に対する動作電源の制御や端子の活性化制御などはＣＰＵ１０がＩＩＣインタフェースモジュール１０１を介して行う。
【０１０３】
電源制御半導体装置１３０による外部デバイスとのインタフェース形態を決定する制御について説明する。外部デバイス２Ａは現在主流の形式であるＵＡＲＴ(ISO/IEC 7816-3)とデータ処理装置１ＤがサポートするＵＳＢの両方に対応するものとされる。ＵＳＢデバイスインタフェース６の物理通信路は例えば電源が５クラスに分かれており、１．８Ｖと３．０Ｖの双方に対応する必要があり、接続された外部デバイスがどの電源に対応し、どのインタフェースに対応するかを判別することが必要になる。例えばＣＰＵ１０は、どのインタフェースが使用可能かを判定する制御として、図２２に例示されるように、１．８ＶでＵＳＢインタフェースによる通信を行い（Ｉ１）、応答の有無を判別し（Ｉ２）、応答があれば１．８ＶでＵＳＢインタフェースによる通信を継続する（Ｉ３）。応答がない場合には動作電源を３．０Ｖに変えて再度ＵＳＢインタフェースによる通信を試み（Ｉ４）、応答の有無を判別する（Ｉ５）。応答があれば動作電源を３．０ＶでＵＳＢインタフェースによる通信を継続し（Ｉ６）、それでも通信が出来ない場合はＵＳＢインタフェースが不可能であると判別し、ＵＡＲＴインタフェースによる通信を開始する（Ｉ７）。上記動作電源の切換えはＩＩＣインタフェースモジュール１０１を用いて行う。
【０１０４】
これにより、電源電圧が異なる複数種類のＵＳＢインタフェースを備えた外部デバイス、更に、ＵＡＲＴインタフェースにのみ対応する外部デバイスにも対応することができる。
【０１０５】
以上説明した夫々に実施の形態によれば以下の作用効果を奏する。
【０１０６】
〔１〕２個のＣＰＵ１０，２０に別々のパイプを割り当て、さらにエンドポイントとの通信に必要な情報をＣＰＵ間で受け渡しできる機能を持つことで、複数のＣＰＵが1つのＵＳＢホストモジュールを共有して時分割で通信することができる。
【０１０７】
〔２〕ＣＰＵ１０とＣＰＵ２０の間で割込みを利用してＣＰＵ通信を行うことができるから、マスタＣＰＵ１０がエニュメレーションを行った結果をサブＣＰＵ２０に早く伝達することができる。
【０１０８】
〔３〕ＣＰＵはアクセス権限を有しないパイプに対するデバイスアドレスの指定やエンドポイント番号の指定などの制御情報の書き込みが制限されるから、他のＣＰＵによる通信の妨害、盗聴、書換え防ぐことができ、秘匿性のある情報に対するセキュリティーの万全に資することができる。
【０１０９】
〔４〕パイプで発生する割込みは当該パイプに対する制御権限のあるＣＰＵにのみ通知されるから、他のＣＰＵに無駄な割り込み処理が発生する事態を阻止することができる。
【０１１０】
以上本発明者によってなされた発明を実施形態に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。
【０１１１】
例えば、一つのＵＳＢホストモジュールを共有するＣＰＵは２個に限定されず、３個以上であってもよい。本発明は携帯電話器に代表される通信携帯端末に適用する場合に限定されず、ＵＳＢインタフェースを備えた各種電子機器に広く適用することができる。本発明に係るデータ処理装置はシングルチップの半導体装置に限定されず、マルチチップを１個のパッケージに搭載したモジュールデバイスとして構成することも可能である。また、データ処理装置１Ｄと電源制御半導体装置１３０とをシングルチップで構成することも可能である。
【符号の説明】
【０１１２】
１  データ処理装置
１Ａ  データ処理装置
１Ｂ  データ処理装置
１Ｃ  データ処理装置
１Ｄ  データ処理装置
２  ＵＳＢデバイス
４，５  ファンクション
６  ＵＳＢデバイスインタフェース
ＥＰ０〜ＥＰｎ  エンドポイント０〜エンドポイントｎ
１０  マスタ中央処理装置
２０  サブ中央処理装置
１１、２１  割込みコントローラ（ＩＮＴＣ）
１２，２２  バス
３０  共有バス
３２  ＵＳＢホストモジュール
４０  バスインタフェース
４１  マスタバスインタフェース（ＭＢＩＦ）
４１Ｃ  マスタバスインタフェース
４２  サブバスインタフェース（ＳＢＩＦ）
５０  アクセス制御レジスタ回路
６０  アクセス制御回路
６０Ｂ  アクセス制御回路
７０  ＵＳＢホストインタフェース
７０Ｂ  ＵＳＢホストインタフェース
８０  ＣＰＵ間通信回路
９２  ＣＰＵ１０からＣＰＵ２０への通信を行うための通信回路（ＭｔＳＣｏｍ）
９１  ＣＰＵ２０からＣＰＵ１０への通信を行うための通信回路（ＳｔＭＣｏｍ）
１００  ベースバンド部
１０２  ＵＡＲＴインタフェースモジュール
１０１  ＩＩＣインタフェースモジュール
１１０  アプリケーション部
１２３  イネーブル信号ＩＣ＿ＯEの出力端子
１２４  非反転信号ＩＣ＿ＤＰとクロック信号ＩＤ＿ＣＬＫの共用端子
１２５  反転信号ＩＣ＿ＤＭとデータ信号ＩＤ＿ＩＯの共用端子
１２６  リセット信号ＩＤ＿ＲＳの出力端子
１３０  電源制御半導体装置（デバイス制御装置）
５０１  ＵＳＢホストプロトコルエンジン選択レジスタ
５０２  パイプ０ＣＰＵ選択レジスタ
５０３  ＣＰＵポート選択レジスタ
５０４  ＤＭＡポート選択レジスタ
５０５，５０７  書込み値許可レジスタ
６００  レジスタ書込み・読み出し制御回路
６２０  ＵＳＢ制御レジスタ
６４０  ＵＳＢ制御レジスタ
６６０  アクセスレジスタ選択回路
６２１  プロトコルエンジン制御レジスタ
６２２  パイプＰＩＰＥ０制御レジスタ
６２３  ＣＰＵポート制御レジスタ
６２４  ＤＭＡポート制御レジスタ
６４１  プロトコルエンジン制御レジスタ
６４２  パイプＰＩＰＥ０制御レジスタ
６４３  ＣＰＵポート制御レジスタ
６４４  ＤＭＡポート制御レジスタ
６０２，６０４  読出し値制御回路
６２６  パイプ０割込み許可レジスタ
６２７  割込み要因レジスタ
６４６  パイプ０割込み許可レジスタ
６４７  割込み要因レジスタ
６０Ａ  アクセス制御回路
６５０  ＵＳＢ制御レジスタ
６００Ａ  レジスタ書込み・読出し制御回路
６００Ｂ  レジスタ書込み・読出し制御回路
６８０  ＵＳＢ制御レジスタ
６８１  ＵＳＢ制御レジスタ
６８１Ｃ  ＵＳＢ制御レジスタ
７００  ＵＳＢプロトコルエンジン
７２０  パイプ回路
７４０  ポート回路
７４１  ＣＰＵポート
７４２  ＤＭＡポート
７３１  パイプ０の割込み要求信号
７３１  第１パイプ回路
７５１  第１ポート回路
７３２  第２パイプ回路
７５２  第２ポート回路
ＩＲＱ１  割込み要求信号
ＩＲＱ２  割込み要求信号
ＩＲＱ４  割込み要求信号
ＩＲＱ３  割込み要求信号
９２０  データレジスタ
９２１  割り込み許可レジスタ
９２２  割り込みフラグレジスタ
【図１】
0005506304.tif 000002
【図２】
0005506304.tif 000003
【図３】
0005506304.tif 000004
【図４】
0005506304.tif 000005
【図５】
0005506304.tif 000006
【図６】
0005506304.tif 000007
【図７】
0005506304.tif 000008
【図８】
0005506304.tif 000009
【図９】
0005506304.tif 000010
【図１０】
0005506304.tif 000011
【図１１】
0005506304.tif 000012
【図１２】
0005506304.tif 000013
【図１３】
0005506304.tif 000014
【図１４】
0005506304.tif 000015
【図１５】
0005506304.tif 000016
【図１６】
0005506304.tif 000017
【図１７】
0005506304.tif 000018
【図１８】
0005506304.tif 000019
【図１９】
0005506304.tif 000020
【図２０】
0005506304.tif 000021
【図２１】
0005506304.tif 000022
【図２２】
0005506304.tif 000023