(57)【要約】【課題】小さい回路規模であって且つＵＳＢ規格におけるインターパケットディレイ時間の制約を満足することが可能なＵＳＢデバイスコントローラを提供する。【解決手段】ＵＳＢ規格に規定されたエンドポイントＦＩＦＯにＳＲＡＭを使用したＵＳＢデバイスコントローラにおいて、イン転送用エンドポイントＦＩＦＯとして機能するＳＲＡＭ１１とシリアルインターフェイスエンジン（ＳＩＥ）２間のデータ転送経路に転送データ格納用のレジスタ１２を設けた【選択図】　　　　図１
2004021742.tif 000002
【特許請求の範囲】
【請求項１】
ＵＳＢ規格に規定されたエンドポイントＦＩＦＯにＳＲＡＭを使用したＵＳＢデバイスコントローラにおいて、イン転送用エンドポイントＦＩＦＯとして機能するＳＲＡＭとシリアルインターフェイスエンジン間のデータ転送経路に転送データ格納用のレジスタを設けたことを特徴とするＵＳＢデバイスコントローラ。
【請求項２】
請求項１記載のＵＳＢデバイスコントローラにおいて、ＳＲＡＭに対するデータ書き込みが始まる時点から完了する時点までの任意のタイミングで、ＳＲＡＭ内のデータの一部を前記レジスタに書き込むことを特徴とするＵＳＢデバイスコントローラ。
【請求項３】
請求項１または２記載のＵＳＢデバイスコントローラにおいて、シリアルインターフェイスエンジンと物理層ブロック間のインターフェイス仕様がＵＴＭＩであることを特徴とするＵＳＢデバイスコントローラ。
【請求項４】
請求項１記載のＵＳＢデバイスコントローラにおいて、前記レジスタのビット幅は、イン転送用エンドポイントＦＩＦＯとして機能するＳＲＡＭとシリアルインターフェイスエンジン間のデータ転送のバス幅と同じであることを特徴とするＵＳＢデバイスコントローラ。
【請求項５】
ＵＳＢ規格に規定されたエンドポイントＦＩＦＯにＳＲＡＭを使用したＵＳＢデバイスコントローラにおいて、アウト転送用エンドポイントＦＩＦＯとして機能するＳＲＡＭとＵＳＢデバイス側インターフェイス間のデータ転送経路に転送データ格納用のレジスタを設けたことを特徴とするＵＳＢデバイスコントローラ。
【請求項６】
請求項５記載のＵＳＢデバイスコントローラにおいて、ＳＲＡＭに対するデータ書き込みが完了しデータにエラーが無いことを確認した時点でＳＲＡＭ内のデータの一部を前記レジスタに書き込むことを特徴とするＵＳＢデバイスコントローラ。
【請求項７】
請求項５記載のＵＳＢデバイスコントローラにおいて、前記レジスタのビット幅は、アウト転送用エンドポイントＦＩＦＯとして機能するＳＲＡＭとＵＳＢデバイス側インターフェイス間のデータ転送経路のバス幅と同じであることを特徴とするＵＳＢデバイスコントローラ。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、複数の機器間のデータ通信システムにおけるＵＳＢデバイスコントローラに関するものである。
【０００２】
【従来の技術】
複数の機器間のデータ通信システムにおけるＵＳＢデバイスコントローラに関連する従来技術として、特開平１１−３２８０６９号公報が存在する。該公報では、エンドポイントＦＩＦＯにデュアルポートメモリを使用することにより、回路規模の小さいＵＳＢインターフェイス装置を提供する。
【０００３】
【発明が解決しようとする課題】
Ｕｎｉｖｅｒｓａｌ　Ｓｅｒｉａｌ　Ｂｕｓ（ＵＳＢ）は、パーソナルコンピュータ（ＰＣ）と複数のＰＣ周辺機器を接続しデータ通信を行うために策定されたシリアルバスインターフェース規格である。従来のインターフェース規格には無い簡便な接続性や拡張性を特長としており、マウスやキーボード、プリンタ、スキャナ、モデム等のＰＣ周辺機器の多くが近年ＵＳＢに対応するようになってきている。
【０００４】
ＵＳＢ規格ではコントロール転送／バルク転送／インタラプト転送／アイソクロナス転送の４種類の転送モードが定められており、周辺機器（ＵＳＢデバイス）の用途に応じて転送モードと転送方向を選択することができる。ＵＳＢにおけるデータ転送方向は、ホストＰＣから周辺機器（ＵＳＢデバイス）にデータを転送するものがアウト転送と定義され、ＵＳＢデバイスからホストＰＣにデータ転送を行なうものがイン転送と定義されており、データ転送は周辺機器側のＵＳＢデバイスコントローラに設けられたエンドポイントと呼ばれるバッファを介して行なわれることがＵＳＢ仕様書に定められている。基本的にはＵＳＢデバイスがサポートする転送モードと転送方向の数と同数のエンドポイントバッファを備える必要がある。
【０００５】
図１にＵＳＢデバイスコントローラの構成例を示す。大きくはＰＨＹブロック１、ＳＩＥ（シリアルインターフェイスエンジン）ブロック２、エンドポイントブロック３、内部レジスタブロック４、ユーザーインターフェイスブロック（Ｉ／Ｆブロック）５に分類される。
【０００６】
ＰＨＹブロック１は、ＵＳＢケーブルを介したホストＰＣとのシリアルデータ送受信及びシリアル／パラレル相互変換等を行なうブロックである。ＳＩＥブロック２は、パケットＩＤデコード／エンコード、ＣＲＣの生成／検出等のＵＳＢ通信プロトコルに関係した処理を行なうブロックである。
【０００７】
エンドポイントブロック３は、エンドポイントＦＩＦＯ及びその周辺回路により構成され、ＵＳＢ送受信データのバッファリングを行なうブロックである。内部レジスタブロック４は、ＵＳＢコントローラの制御及び状態確認のためにプリンタ等のデバイス側ＣＰＵ或いは他のブロックからアクセスされるブロックである。
【０００８】
ユーザーインターフェイスブロック５は、プリンタ等のデバイス側メモリとエンドポイントＦＩＦＯ間のデータ転送及び内部レジスタのアクセスを行なうためのインターフェイスブロックである。
【０００９】
ホストＰＣとＵＳＢデバイス間のデータ送受信は、トランザクションと呼ばれるパケット送受信のシーケンスを使用して実行される。ＵＳＢ仕様においては複数のＵＳＢデバイスが接続可能であるが、１つのトランザクションにおいてデータ送受信の対象となるＵＳＢデバイスはただ１つである。
【００１０】
複数デバイスのデータ通信は複数のトランザクションにより可能となるが、各トランザクションが時間的に重複することを防ぐ目的で、トランザクションを構成する各パケット間の時間間隔（インターパケットディレイ時間）とホストＰＣがトランザクション成立を判断するための時間間隔（タイムアウト時間）がＵＳＢ仕様書において厳密に規定されている。
【００１１】
インターパケットディレイ時間とタイムアウト時間に関して、イン転送の場合を例に図２を使用して説明する。ＵＳＢ規格において、ホストＰＣとデバイス接続は最大５個のハブを介して接続された場合でも正常に動作することが要求されており、図２はその最も厳しい場合を示している。イン転送におけるトランザクションは以下に示す様に３つのパケットの正常送受信で成立する。
【００１２】
▲１▼ホストＰＣは特定デバイスに対してデータ送信を要求するためのＩＮトークンパケットを発行する（ｔ＝ｔ０）。ＩＮトークンパケットには、特定デバイスのＵＳＢアドレス番号とデバイスの持つエンドポイント番号の情報が含まれている。
【００１３】
▲２▼ＩＮトークンは、ハブとＵＳＢケーブルによる遅延時間（Ｔｄ＝ｔ２−ｔ０）の分だけデバイスに遅れて到着する（ｔ＝ｔ２）。特定デバイスのエンドポイントＦＩＦＯに送信すべき転送データの準備ができている場合、デバイスは転送データをホストＰＣに対して送信する（ｔ＝ｔ４）。図中のｔ３とｔ４の時間間隔（Ｔｉｐｄ）がインターパケットディレイ時間の１つである。但し、転送データの準備ができていない場合は転送データの代わりにＮＡＫパケット（図２では示していない）を送信し、該トランザクションは２つのパケット（ＩＮ−ＮＡＫ）で完了する。
【００１４】
▲３▼デバイスからの転送データは、ハブとＵＳＢケーブルによる遅延時間（Ｔｄ’　＝ｔ５−ｔ４）の分だけデバイスに遅れて到着する（Ｔ＝ｔ５）。ホストＰＣが転送データを正常に受け取った場合、デバイスに対してＡＣＫパケットを送信し（ｔ＝ｔ８）、トランザクションの成立を通知する。ホストがＡＣＫパケットを送信するのはＵＳＢ規格に定められたタイムアウト時間（Ｔｔｏｕｔ）以内にデバイスからのデータパケットが到着し、且つ受信したデータにエラーが検出されない場合である。ホストがデータ受信を完了してからＡＣＫ送信するまでの時間間隔（Ｔｉｐｄ’　＝ｔ８−ｔ７）もインターパケットディレイ時間である。
【００１５】
ｔ３とｔ４の間隔がインターパケットディレイ時間の最大許容値を超えた場合、ｔ１とｔ５の間隔もそれに応じて長くなり、タイムアウト時間（Ｔｔｏｕｔ）を越えることになってしまう。この場合、ホストはＡＣＫを送信することなく該トランザクションを中断し、ある一定時間経過後に再度ＩＮトークンパケットを発行するが、ホストＰＣ間とデバイス間のハブ段数を減らすかエンドポイントＦＩＦＯの構成自体をを変更するかしない限り同様なタイムアウトを繰り返すことになるため、対象エンドポイントを使用したデータ転送は不可能になってしまう。
【００１６】
ＵＳＢ２．０規格書の場合、ＨＳモードのインターパケットディレイは最大１９２ビット時間、タイムアウト時間は８１６ビット時間と定められている。ＨＳモードのデータ転送速度は４８０Ｍｂｐｓであることから１ビット時間は約２．０８ｎｓである。これらの値はホストＰＣ或いはデバイスのＵＳＢポート上の値を示している。
【００１７】
ＵＳＢ２．０規格に準ずる規格として、ＵＳＢ２．０におけるＰＨＹブロックとＳＩＥブロック間のインターフェイス仕様がＵＴＭＩ（ＵＳＢ　Ｔｒａｎｓｃｅｉｖｅｒ　Ｍａｃｒｏｃｅｌｌ　ＩＮｔｅｒｆａｃｅ）として定められている。ＰＨＹブロックとＳＩＥブロック間はパラレルデータ通信であり、データ幅８ビット／クロック周波数６０ＭＨｚの仕様とデータ幅１６ビット／クロック周波数３０ＭＨｚの仕様が選択可能である。
【００１８】
ＵＴＭＩ仕様においてもＵＳＢ２．０規格と同じインターパケットディレイ時間が適用される。例えば１６ビット／３０ＭＨｚ仕様の場合、図２のＴｉｐｄ（最大１９２ビット時間）は７ＣＬＫに相当する。ＵＴＭＩ規格のＰＨＹブロックにおいては、ＵＳＢバス側の４８０ＭＨｚクロックで動作する部分とＵＴＭＩ側の３０ＭＨｚで動作する部分に分けられるが、インターパケットディレイ時間制約に関する設計が厳しくなるのはＵＴＭＩ側である。
【００１９】
ＰＨＹとＳＩＥはＵＴＭＩを介して接続されており、ＩＮトークンに対してＮＡＫ応答する場合はＳＩＥがＮＡＫパケットを発行することになるため、ＵＴＭＩ上での制約（７ＣＬＫ以内）を満たすようにＵＳＢコントローラを設計することは比較的容易である。
【００２０】
一方、ＩＮトークンに対してデータパケットを送信する場合はエンドポイントＦＩＦＯに格納されたデータを読み出す必要があるため、その読み出し時間が遅い場合にはＵＴＭＩ上での制約が満足できなくなる場合がある。
【００２１】
エンドポイントＦＩＦＯとしては、レジスタを使用するかＳＲＡＭ等のメモリセルを使用するのが一般的である。エンドポイントＦＩＦＯをレジスタで構成する場合、データ読み出し要求から最初のデータが出力される迄の時間は比較的短いため、インターパケットディレイ時間制約を満足する設計は容易であるが回路規模が大きくなるためコスト増大を招いてしまう。
【００２２】
一方、ＳＲＡＭ等のメモリセルを使用する場合、回路規模は小さくなるもののレジスタを使用した場合に比べて最初のデータが出力される迄の時間が長くなってしまうため、インターパケットディレイ時間の制約を満足する構成にするのが困難になる。
【００２３】
前記特開平１１−３２８０６９号公報においては、ＵＳＢデバイスコントローラの送受信メモリ（エンドポイントＦＩＦＯ）にデュアルポートメモリを使用することで回路規模の縮小を図っているが、上記インターパケットディレイ時間制約に起因する問題に関しては何ら考慮されていない。
【００２４】
本発明の目的は、小さい回路規模であって且つＵＳＢ規格におけるインターパケットディレイ時間の制約を満足することが可能なＵＳＢデバイスコントローラを提供することにある。
【００２５】
【課題を解決するための手段】
上記目的を達成するために、請求項１記載の発明は、ＵＳＢ規格に規定されたエンドポイントＦＩＦＯにＳＲＡＭを使用したＵＳＢデバイスコントローラにおいて、イン転送用エンドポイントＦＩＦＯとして機能するＳＲＡＭとシリアルインターフェイスエンジン（ＳＩＥ）間のデータ転送経路に転送データ格納用のレジスタを設けたＵＳＢデバイスコントローラを最も主要な特徴とする。
【００２６】
請求項２記載の発明は、請求項１記載のＵＳＢデバイスコントローラにおいて、ＳＲＡＭに対するデータ書き込みが始まる時点から完了する時点までの任意のタイミングで、ＳＲＡＭ内のデータの一部を前記レジスタに書き込むＵＳＢデバイスコントローラを主要な特徴とする。
【００２７】
請求項３記載の発明は、請求項１または２記載のＵＳＢデバイスコントローラにおいて、シリアルインターフェイスエンジンと物理層ブロック間のインターフェイス仕様がＵＴＭＩ（ＵＳＢ　Ｔｒａｎｓｃｅｉｖｅｒ　ＭａｃｒｏｃｅｌｌＩＮｔｅｒｆａｃｅ）であるＵＳＢデバイスコントローラを主要な特徴とする。
【００２８】
請求項４記載の発明は、請求項１記載のＵＳＢデバイスコントローラにおいて、前記レジスタのビット幅は、イン転送用エンドポイントＦＩＦＯとして機能するＳＲＡＭとシリアルインターフェイスエンジン間のデータ転送のバス幅と同じであるＵＳＢデバイスコントローラを主要な特徴とする。
【００２９】
請求項５記載の発明は、ＵＳＢ規格に規定されたエンドポイントＦＩＦＯにＳＲＡＭを使用したＵＳＢデバイスコントローラにおいて、アウト転送用エンドポイントＦＩＦＯとして機能するＳＲＡＭとＵＳＢデバイス側インターフェイス間のデータ転送経路に転送データ格納用のレジスタを設けたＵＳＢデバイスコントローラを最も主要な特徴とする。
【００３０】
請求項６記載の発明は、請求項５記載のＵＳＢデバイスコントローラにおいて、ＳＲＡＭに対するデータ書き込みが完了しデータにエラーが無いことを確認した時点でＳＲＡＭ内のデータの一部を前記レジスタに書き込むＵＳＢデバイスコントローラを主要な特徴とする。
【００３１】
請求項７記載の発明は、請求項５記載のＵＳＢデバイスコントローラにおいて、前記レジスタのビット幅は、アウト転送用エンドポイントＦＩＦＯとして機能するＳＲＡＭとＵＳＢデバイス側インターフェイス間のデータ転送経路のバス幅と同じであるＵＳＢデバイスコントローラを主要な特徴とする。
【００３２】
【発明の実施の形態】
以下、図面により本発明の実施の形態を詳細に説明する。図３は本発明の第１の実施の形態に係るＵＳＢデバイスコントローラの構成図である。本発明の特徴は、ＵＳＢデバイスコントローラのエンドポイントＦＩＦＯ（図１のエンドポイントブロック３）にＳＲＡＭ１１を使用する場合、ＳＩＥブロック２とイン転送用エンドポイントＦＩＦＯ（ＳＲＡＭ）１１間のデータバスライン上に、レジスタで構成されるデータ格納バッファ（先読みレジスタ）１２を設けたことにある。
【００３３】
図４は本発明の第２の実施の形態に係るＵＳＢデバイスコントローラの構成図である。本発明の特徴は、Ｉ／Ｆブロック５とアウト転送用エンドポイントＦＩＦＯ（ＳＲＡＭ）１３間のデータバスライン上に、レジスタで構成されるデータ格納バッファ（先読みレジスタ）１２を設けたことにある。
【００３４】
本発明の構成と動作を以下の実施例で説明する。
［実施例１］
イン転送用エンドポイントＦＩＦＯには、図１のＩ／Ｆブロック５経由でホストに転送すべきデータの書き込みが行なわれる。転送データはＵＳＢ規格に定められた最大データパケット単位に区切られることになるため、エンドポイントＦＩＦＯへのデータ書き込みも最大データパケット単位となる。
【００３５】
例えばバルクイン転送の場合、ＨＳモードの最大データパケットは５１２バイトであり、ＦＳモードの最大データパケットは６４バイトである。バルク転送おいては大容量データを高速で転送する必要があるため、ＦＩＦＯはダブルバッファ構成にするのが一般的である。
【００３６】
例えば１０２４バイトのデュアルポートＳＲＡＭを使用し、５１２バイト２面の構成とするのが回路規模縮小上有利である。ＦＳ動作の場合はＳＲＡＭ周辺回路の設定により、６４バイトの２面バッファとして使用することが可能である。
【００３７】
本発明におけるＩＮ転送の構成では、データ書き込み開始時点からＳＲＡＭ内のデータが有効化された時点の任意のタイミングで、ＳＲＡＭ内のデータの一部（レジスタ容量分）を先読みレジスタに転送する。但し、ＳＲＡＭへのデータ書き込みと先読みレジスタへのデータ転送の両方が完了するまでの間は、ＩＮトークンに対してＳＩＥはＮＡＫパケットで応答することになる。
【００３８】
先読みレジスタへのデータ転送が完了後のＩＮトークンに対して、ＳＩＥは転送データにパケットＩＤとデータエラー検出用のＣＲＣデータを付加したデータパケットを生成して応答することになるが、最初のデータは先読みレジスタに格納されたものから順次読み出すことになるため、インターパケットディレイ時間制約を満足するタイミングでデータパケット送信を開始することが可能となる。
【００３９】
ＳＩＥがデータパケット送信を開始され先読みレジスタに空きができる度にＳＲＡＭから先読みレジスタへのデータ転送を実施することになるが、この場合のＳＲＡＭからのデータ出力時間は読み出し開始時の出力時間よりも短いため、先読みレジスタからＳＩＥへのデータ転送に追従したデータ転送が可能であり、ＵＳＢ規格を満たしたデータパケットの送信（インターパケットディレイ時間及びデータパケットの連続性）が可能となる。
【００４０】
先読みレジスタを構成するＦＦ（フリップフロップ）の並列数と段数は使用するＳＲＡＭのデータ出力時間とＳＩＥブロックの構成に応じてインターパケットディレイ時間制約を満足するように適宜設定できるが、並列数に関してはＳＩＥとＳＲＡＭ間のデータバス幅と同じにすることにより、先読みレジスタを含むＳＲＡＭ周辺回路及びＳＩＥブロックの構成を単純にすることができる。
【００４１】
例えばＵＴＭＩ仕様の１６ビット／３０ＭＨｚを選択した場合、ＦＦの並列数は１６（２バイト）にすれば良い。段数に関しては、通常３段程度でインターパケットディレイ時間制約を満足することが可能であり、この場合の先読みレジスタ容量は６バイトとなる。レジスタ容量は適宜設定して構わないが、必要以上に大きく設定することは回路規模の増大を招くことになり好ましくない。
【００４２】
上記はイン転送におけるＵＳＢインターパケットディレイ時間制約に関する発明であるが、同じ構成をアウト転送エンドポイントＦＩＦＯからのＵＳＢデバイス側へのデータ読み出しに使用することが可能である。
【００４３】
［実施例２］
アウト転送において、ホストＰＣは特定デバイスに対してＯＵＴトークンとＤＡＴＡトークンを続けて送信してくる。特定デバイスのＳＩＥはＯＵＴトークンに含まれるＵＳＢアドレス番号とエンドポイント番号をデコードし、対象となるエンドポイントＦＩＦＯの状態に応じて以下のように応答する。
【００４４】
ａ）ＳＲＡＭに最大パケットデータ数分の空きが無い場合、ＳＩＥはＮＡＫパケットを送信することによりデータが受信できなかったことをホストＰＣに通知する。
【００４５】
ｂ）ＳＲＡＭに最大パケットデータ数分の空きが有って、受信したデータにエラーが無いと判断された場合、ＳＩＥはＡＣＫパケットを送信することによりデータが正常に受信できたことをホストＰＣに通知する。
【００４６】
ｃ）受信したデータに何らかのエラーが検出された場合、或いはトランザクション自体がＵＳＢ規格のプロトコルを満たさない場合、ＳＩＥはＮＡＫパケット／ＡＣＫパケットを送信することはない。
【００４７】
上記ａ）とｃ）の場合、ホストＰＣは別のトランザクションを使用して同じデータを送信することになる。ｂ）のデータを正常に受信できた場合、図１に示すＩ／Ｆブロック５を経由してＵＳＢデバイス側メインメモリ等へのデータ転送が行なわれる。このデータ転送はＤＭＡ転送或いはＰＩＯ転送により行なわれるが、ＰＩＯ転送の場合にＳＲＡＭアクセス時の最初のデータ出力が問題になる場合がある。
【００４８】
ＰＩＯ転送の場合、図１の内部レジスタのアドレスを使用してエンドポイントＦＩＦＯを指定することでＳＲＡＭにアクセスする方式が一般的である。Ｉ／Ｆブロックにおいては、ＣＰＵ用バス／ＡＴＡＰＩ／ＰＣＩバス等の汎用バスが使用されることになるが、これらの汎用バスにおけるリードアクセスにおいてもＵＳＢ規格と同じ様なタイムアウト時間が決められている。
【００４９】
より具体的には、Ｉ／Ｆでアウト転送用エンドポイントＦＩＦＯに対するリードアクセス要求を開始してから、エンドポイントＦＩＦＯからの読み出しデータがＩ／Ｆ上に出力されるまでの時間が決められている。エンドポイントＦＩＦＯにＳＲＡＭを使用している場合、リード要求がＳＲＡＭに届いてからデータが出力されるまでの時間はレジスタに比較すると長いため、タイムアウトによりＩ／Ｆ上のデータ転送が成立しなくなる場合がある。特にエンドポイントＦＩＦＯを内部レジスタに割り当てた場合はアドレスデコードに要する時間分だけ更に制約が厳しくなる。
【００５０】
実施例２においては、図４で前述したように、アウト転送用エンドポイントＦＩＦＯにＳＲＡＭを使用した場合において、Ｉ／Ｆブロック５とアウト転送用エンドポイントＦＩＦＯ（ＳＲＡＭ）１３間のデータバスライン上に、レジスタで構成されるデータ格納バッファ（先読みレジスタ）１２を設けた。
【００５１】
アウト転送用ＳＲＡＭがＳＩＥ経由でデータを受信している際にはＳＲＡＭに対するアクセス権はＳＩＥ側にある。ＳＲＡＭに１パケット分のデータが格納されデータにエラーが無いことが確認されると、ＳＲＡＭ内のデータが確定されＳＲＡＭに対するアクセス権はＩ／Ｆ側に引き渡される。
【００５２】
その後でＳＲＡＭから先読みレジスタへのデータ転送が実行される。ＰＩＯ転送によるデータ転送要求はデバイス側ＣＰＵに対する割り込みが使用されるのが一般的であり、先読みレジスタへのデータ転送が完了した時点で割り込みを発生する。
【００５３】
デバイス側ＣＰＵは割り込み要求によりアウト転送用ＳＲＡＭに読み出すべきデータが存在することを確認した後で、Ｉ／Ｆ経由でアウト転送用ＳＲＡＭに対するリードアクセスを行なう。先読みレジスタに読み出しデータの一部が既に格納されているため、Ｉ／Ｆに使用された汎用バスのタイムアウト時間制約を満足する時間以内にデータを出力することが可能となる。
【００５４】
実施例１の場合と同様に、先読みレジスタを構成するＦＦ（フリップフロップ）の並列数と段数は使用するＳＲＡＭのデータ出力時間とＩ／Ｆブロックの構成に応じてタイムアウト時間時間制約を満足するように適宜設定できるが、並列数に関してはＩ／ＦブロックとＳＲＡＭ間のデータバス幅と同じにすることにより、先読みレジスタを含むＳＲＡＭ周辺回路及びＩ／Ｆブロックの構成を単純にすることができる。
【００５５】
例えばＰＣＩ仕様の３２ビット／３３ＭＨｚである場合、ＦＦの並列数は３２（４バイト）にすれば良い。段数に関しては、通常２段程度でタイムアウト時間約を満足することが可能であり、この場合の先読みレジスタ容量は８バイトとなる。レジスタ容量は適宜設定して構わないが、必要以上に大きく設定することは回路規模の増大を招くことになり好ましくない。
【００５６】
実施例１の場合と異なる点として、先読みレジスタへのデータ転送は、ＳＲＡＭに１パケット分のデータが格納されデータにエラーが無いことが確認できた後（データ確定後）である必要がある。データ確定前に転送を行なう場合において、最終的にエラーが検出された場合には先読みレジスタ内のデータを消去する手段が必要になる分だけ回路と制御手順が複雑になることがその理由である。
【００５７】
【発明の効果】
以上説明したように、本発明によれば、イン転送用エンドポイントＦＩＦＯとして機能するＳＲＡＭとシリアルインターフェイスエンジン（ＳＩＥ）間のデータ転送経路に転送データ格納用のレジスタ（先読みレジスタ）を設け、ＳＲＡＭに格納された転送データの一部を先読みレジスタに事前に転送しておくことによって、ＵＳＢ規格及びＵＴＭＩ規格に規定されたＩＮトークンパケット受信からデータパケット送信までのインターパケット時間制約を満足するＵＳＢデバイスコントローラが実現可能となる。
【００５８】
この場合に、エンドポイントＦＩＦＯにはＳＲＡＭを使用し、先読みレジスタには時間制約を満たすために必要最小限のレジスタサイズを設定することにより、回路規模の縮小を図ることができる（請求項１〜４）。
【００５９】
また本発明によれば、アウト転送用エンドポイントＦＩＦＯとして機能するＳＲＡＭとＵＳＢデバイス側インターフェイス間のデータ転送経路に転送データ格納用のレジスタ（先読みレジスタ）を設け、ＳＲＡＭに格納された転送データの一部を先読みレジスタに事前に転送しておくことによって、ＵＳＢデバイス側インターフェイス部分に使用される汎用バス規格のタイムアウト時間制約を満足するＵＳＢデバイスコントローラが実現可能となる。
【００６０】
この場合に、エンドポイントＦＩＦＯにはＳＲＡＭを使用し、先読みレジスタには時間制約を満たすために必要最小限のレジスタサイズを設定することにより、回路規模の縮小を図ることができる（請求項５〜７）。
【図面の簡単な説明】
【図１】ＵＳＢデバイスコントローラの全体構成図である。
【図２】イン転送の場合のインターパケットディレイ時間とタイムアウト時間に関する説明図である。
【図３】本発明の第１の実施の形態に係るＵＳＢデバイスコントローラの構成図である。
【図４】本発明の第２の実施の形態に係るＵＳＢデバイスコントローラの構成図である。
【符号の説明】
２　ＳＩＥブロック
１１　イン転送用エンドポイントＦＩＦＯ（ＳＲＡＭ）
１２　データ格納バッファ（先読みレジスタ）
【図１】
2004021742.tif 000003
【図２】
2004021742.tif 000004
【図３】
2004021742.tif 000005
【図４】
2004021742.tif 000006