(57)【要約】【課題】  エンドポイントとして用いられるバッファの記憶容量の増大を抑制しつつ、高いパフォーマンスでデータを送信することができる送信装置を提供する。【解決手段】  エンドポイント毎に設けられ、基準データ量未満の記憶容量を有する小容量の送信ＦＩＦＯ１７１〜１７Ｎと、基準データ量以上の記憶容量を有する大容量の送信ＦＩＦＯ１６０と、送信することが判明している送信データのうち、最初に送信要求がされる可能性が高いエンドポイントを推定し、推定したエンドポイントを送信ＦＩＦＯ１６０に割り当てるＣＰＵ２００と、推定されたエンドポイントに対応する送信データを送信ＦＩＦＯ１６０に書き込むと共に、当該エンドポイント以外のエンドポイントに対応する送信データであって送信することが判明している送信データをデフォルトの送信ＦＩＦＯ１７１〜１７Ｎに書き込むＤＭＡＣ４００とを備える。【選択図】      図１
2005346176.tif 000002
【特許請求の範囲】
【請求項１】
送信データをバッファに書き込み、通信可能に接続された受信装置からの送信要求を受け付け、バッファに書き込んだ送信データを前記受信装置に送信する送信装置であって、
送信データの種類毎に設けられ、前記送信装置及び受信装置間において所定の処理を実行するにあたり必要となる基準データ量未満の記憶容量を有する小容量バッファと、
前記基準データ量以上の記憶容量を有する大容量バッファと、
送信要求がされる可能性が高い送信データを推定する推定手段と、
前記推定手段により推定された送信データのバッファとして前記大容量バッファを割り当てる割り当て手段とを備えることを特徴とする送信装置。
【請求項２】
前記推定手段により推定された送信データとは異なる送信データに対して送信要求がなされた場合、当該送信データに対する送信要求が継続して行なわれるか否かを判定する継続判定手段を更に備え、
前記割り当て手段は、前記継続判定手段により異なる送信データに対する送信要求が継続して行なわれると判定された場合、送信要求がなされた送信データを前記大容量バッファに割り当てることを特徴とする請求項１記載の送信装置。
【請求項３】
前記割り当て手段は、前記推定手段により推定された送信データが、対応する小容量バッファには書き込まれないように、当該送信データのバッファとして前記大容量バッファを割り当てることを特徴とする請求項１又は２記載の送信装置。
【請求項４】
前記送信データはＵＳＢ形式によるデータであり、前記大容量バッファ及び小容量バッファは、ＵＳＢにおけるエンドポイントであることを特徴とする請求項１〜３のいずれかに記載の送信装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データを送信する送信装置に関するものである。
【背景技術】
【０００２】
近年、パーソナルコンピュータ（ＰＣ）と、キーボード、プリンタ等の周辺機器との接続インターフェイスとしてＵＳＢ（Universal serial bus）が広く使用されている。ＵＳＢでは、パイプと呼ばれる複数の論理チャネルを介して種々のデータが送受信される。ＵＳＢによるデータ通信を制御するＵＳＢコントローラは、各パイプと関連付けられたエンドポイントと呼ばれる複数のバッファを備えている。原状のＵＳＢコントローラでは最大１６個のエンドポイントを備えることができる。
【０００３】
送受信されるデータは、例えばそのデータの種別毎に使用するエンドポイントが予め定められており、送信側の装置のＵＳＢコントローラは、受信側の装置から送信要求がされることが判明している送信データを、対応するエンドポイントに予め書き込んでおく。受信側の装置から送信要求がなされたとき、送信要求がされたエンドポイントに書き込んでおいたデータを受信側の装置に送信する。ＵＳＢコントローラでは、エンドポントとしてＦＩＦＯ形式のメモリ（以下、ＦＩＦＯと略す。）が用いられている。
【０００４】
通信パフォーマンスを向上させるためには、送受信されるデータを取り扱う装置が、ある処理を実現するために必要とされる基準データ量以上の記憶容量を有する大容量のＦＩＦＯにより、各エンドポイントを構成することが好ましいが、そうすると、コストが嵩む等の問題が発生する。
【０００５】
そこで、１個の大容量のＦＩＦＯを用いるとともに、エンドポイント毎に優先度を与え、現在、ＦＩＦＯを使用中のエンドポイントよりも優先度の高いエンドポイントのデータの送信を実現するために、ＦＩＦＯに対して、常に一定の空き容量を確保しておく技術が開示されている（特許文献１）。
【特許文献１】特開２００１−３０８９３７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献１に示す技術は以下の問題点を有している。すなわち、ＦＩＦＯに対して常に一定の空き容量が確保されているため、その分、一度に送信されるデータの容量が小さくなり、パフォーマンスが低下するという問題があった。また、エンドポイントに対する優先度の判定や、一定の空き容量を確保されるようにＦＩＦＯを管理する必要が生じ、制御が煩雑化するという問題があった。さらに、現在、ＦＩＦＯに書き込まれている送信データのエンドポイントよりも優先度が低いエンドポイントに対する送信データを送信する必要が生じた場合、受信側の装置に対し、優先度が低い方のエンドポイントの送信データを送信することができないことに加え、ＮＡＫが繰り返し送信されてしまうという問題があった。
【０００７】
本発明の目的は、エンドポイントとして用いられるバッファの記憶容量の増大を抑制しつつ、高いパフォーマンスでデータを送信することができる送信装置を提供することである。
【課題を解決するための手段】
【０００８】
本発明にかかる送信装置は、送信データをバッファに書き込み、通信可能に接続された受信装置からの送信要求を受け付け、バッファに書き込んだ送信データを前記受信装置に送信する送信装置であって、送信データの種類毎に設けられ、前記送信装置及び受信装置間において所定の処理を実行するにあたり必要となる基準データ量未満の記憶容量を有する小容量バッファと、前記基準データ量以上の記憶容量を有する大容量バッファと、送信要求がされる可能性が高い送信データを推定する推定手段と、前記推定手段により推定された送信データのバッファとして前記大容量バッファを割り当てる割り当て手段とを備えることを特徴とする。
【０００９】
また、前記推定手段により推定された送信データとは異なる送信データに対して送信要求がなされた場合、当該送信データに対する送信要求が継続して行なわれるか否かを判定する継続判定手段を更に備え、前記割り当て手段は、前記継続判定手段により異なる送信データに対する送信要求が継続して行なわれると判定された場合、送信要求がなされた送信データを前記大容量バッファに割り当てることが好ましい。
【００１０】
また、前記割り当て手段は、前記推定手段により推定された送信データが、対応する小容量バッファには書き込まれないように、当該送信データのバッファとして前記大容量バッファを割り当てることが好ましい。
【００１１】
また、前記送信データはＵＳＢ形式によるデータであり、前記大容量バッファ及び小容量バッファは、ＵＳＢにおけるエンドポイントであることが好ましい。
【発明の効果】
【００１２】
請求項１記載の発明によれば、送信データの種類毎に設けられ、基準データ量未満の記憶容量を有する小容量バッファと、基準データ量以上の記憶容量を有する大容量バッファとを備え、受信装置から送信要求がされる可能性の高い送信データが推定され、推定された送信データに対して大容量バッファが割り当てられるため、推定した送信データに対して送信要求がなされた場合、一度に大容量のデータを送信することが可能となり、高いパフォーマンスのデータ通信を実現することができる。一方、推定した送信データとは種類の異なる送信データに対して送信要求がなされた場合、当該送信データは小容量バッファに書き込まれているため、受信装置に対して当該送信データを送信することが可能となる。その結果、バッファの記憶容量の増大を抑制しつつ、高いパフォーマンスのデータ通信を実現することができる。
【００１３】
請求項２記載の発明によれば、推定した送信データとは異なる送信データに対して送信要求がなされた場合、さらに当該送信データに対する送信要求が継続して行なわれるか否かが判定され、継続して行なわれると判定された場合は、当該送信データに対するバッファとして大容量ＦＩＦＯが割り当てられるため、推定した送信データとは異なる送信データに対する送信要求がなされた場合であっても、高いパフォーマンスのデータ通信を実現することができる。
【００１４】
請求項３記載の発明によれば、推定手段により推定された送信データは、対応する小容量バッファに書き込まれないため、当該小容量バッファに対する書き込み時間が節約され、バッファに対するデータの書き込み時間を短縮することができる。
【００１５】
請求項４記載の発明によれば、ＵＳＢによるデータ通信のパフォーマンスを高めることができる。
【発明を実施するための最良の形態】
【００１６】
以下、図面を参照しつつ本発明の実施形態について説明する。図１は、本発明にかかる送信装置をプリンタ、ファクシミリ、及びスキャナの機能を備えるデジタル複合機に適用した場合の電気的構成を示すブロック図である。本デジタル複合機は、ＵＳＢコントローラ１００、ＣＰＵ２００、メモリ３００、ＤＭＡＣ（Dynamic memory access controller）４００、スキャナ部５００、印刷部６００、ファクシミリ部７００、及び操作部８００を備えている。ＵＳＢコントローラ１００〜操作部８００はバスラインＢＬを介して種々のデータが相互に送受信可能に接続されている。
【００１７】
ＣＰＵ２００は、図略のＲＯＭに記憶された制御プログラムを実行し、本デジタル複合機全体を制御する。メモリ３００は、ＲＡＭ等から構成され、ＵＳＢコントローラ１００が受信した受信データ、ＵＳＢコントローラ１００が送信する送信データ、スキャナ部５００が読み取った原稿の画像データ、ファクシミリ部７００が受信したファクシミリデータ等を記憶する。ＤＭＡＣ４００は、バスラインＢＬにおけるＤＭＡ転送を制御する。
【００１８】
スキャナ部５００は、オートドキュメントフィーダ、あるいはコンタクトガラスにセットされた原稿に対して光を照射し、その反射光をＣＣＤ（charge coupled device）、あるいはＣＩＳ(contact image sensor)等のラインセンサにより受光して原稿の画像データを取得する。
【００１９】
印刷部６００は、ＬＳＵ（Laser scan unit）等から構成され、ＣＰＵ２００の制御の下、メモリ３００に記憶されたデータを記録紙に印刷する。ファクシミリ部７００は、モデム、ＮＣＵ（network control unit）等から構成され、電話回線網を介して接続された相手側ファクシミリ装置との間におけるファクシミリ通信を行なう。操作部８００は、操作パネル、スタートキー及びテンキー等から構成され、ユーザが種々の操作指令を入力する際に用いられる。外部装置６０は、ＵＳＢインターフェイスを備える通常のコンピュータから構成され、ＵＳＢケーブルＣを介してＵＳＢコントローラ１００と接続されている。
【００２０】
ＵＳＢコントローラ１００は、シリアルインターフェイスエンジン（ＳＩＥ）１１０、ＦＩＦＯコントローラ１２０、コントロールレジスタ１３０、バスセレクタ１４０、受信ＦＩＦＯ１５０、大容量の送信ＦＩＦＯ１６０、Ｎ（Ｎは正数）個の小容量の送信ＦＩＦＯ１７１〜１７Ｎを備えている。
【００２１】
コントロールレジスタ１３０、受信ＦＩＦＯ１５０、送信ＦＩＦＯ１６０、１７１〜１７Ｎは、ＦＩＦＯコントローラ１２０及びバスセレクタ１４０間において並列接続されている。
【００２２】
ＳＩＥ１１０は、所定のデータにヘッダ等を付加してパケットを生成する機能、外部装置６０からの受信データをデコードする機能、送信データ及び受信データをＮＲＺＩ（non return to zero change to one）形式等の信号に変換する機能、及びＣＲＣによるチェックを行なう機能等を備えている。また、ＳＩＥ１１０は、送信ＦＩＦＯ１６０、１７１〜１７Ｎの各々に対する送信準備の完了を示す信号をＦＩＦＯコントローラ１２０から受信する。さらに、ＳＩＥ１１０は、外部装置６０から送信要求信号を受信した時、送信要求がされたエンドポイントに対応する送信ＦＩＦＯの送信準備が完了しているか否かを判定し、送信準備が完了していると判定した場合、当該送信ＦＩＦＯの送信データを読み出し、外部装置６０に送信する。一方、外部装置６０から送信要求信号を受信した時、送信要求がされたエンドポイントに対応する送信ＦＩＦＯの送信準備が完了していないと判定した場合、外部装置６０に対してＮＡＫ（no acknowledge）信号を送信する。
【００２３】
ＦＩＦＯコントローラ１２０は、ＣＰＵ２００の制御の下、受信ＦＩＦＯ１５０、送信ＦＩＦＯ１６０、１７１〜１７Ｎの各々に対してどのエンドポイントを割り当てるかを管理する。また、ＦＩＦＯコントローラ１２０は、送信ＦＩＦＯ１６０，１７１〜１７Ｎのそれぞれに対しデータの書き込みが完了した時、送信準備の完了を示す信号をＳＩＥ１１０に送信する。
【００２４】
コントロールレジスタ１３０は、ＣＰＵ２００により受信ＦＩＦＯ１５０，送信ＦＩＦＯ１６０，１７１〜１７Ｎに対して割り当てられたエンドポイントに関する情報を記憶する。バスセレクタ１４０は、受信ＦＩＦＯ１５０、送信ＦＩＦＯ１６０、１７１〜１７Ｎのうちいずれか１つを選択し、バスラインＢＬに接続させる。
【００２５】
受信ＦＩＦＯ１５０は、所定の基準データ量以上の記憶容量を有する大容量のＦＩＦＯであり、外部装置６０から出力されたデータを一時的に記憶するエンドポイントとして用いられる。ここで、基準データ量とは、デジタル複合機及び外部装置６０間で所定の処理を行なうにあたり必要となるデータ量であり、例えばＵＳＢによるデータ通信におけるパケット１個分のデータ量等が相当する。
【００２６】
送信ＦＩＦＯ１６０は、基準データ量以上の記憶容量を有する大容量のＦＩＦＯであり、デジタル複合機が外部装置６０に対して送信する送信データを一時的に記憶するエンドポイントとして用いられる。
【００２７】
送信ＦＩＦＯ１７１〜１７Ｎは、基準データ量未満の記憶容量を有する小容量のＦＩＦＯであり、本デジタル複合機が外部装置６０に対して送信する送信データを一時的に記憶するエンドポイントとして用いられる。送信ＦＩＦＯ１７１〜１７Ｎは、エンドポイント１〜Ｎが予め割り当てられている。ここで、各エンドポイントに対して予め割り当てられた送信ＦＩＦＯをデフォルトの送信ＦＩＦＯと呼ぶこととする。また、送信データはその種類に応じて予めエンドポイント１〜Ｎが予め割り当てられている。
【００２８】
本実施形態では、ＣＰＵ２００が推定手段、割り当て手段、及び継続判定手段の一例に相当し、送信ＦＩＦＯ１７１〜１７Ｎが小容量バッファの一例に相当し、送信ＦＩＦＯ１６０が大容量バッファの一例に相当する。
【００２９】
次に、本デジタル複合機のデータ受信時の基本動作について説明する。外部装置６０から送信されたデータ（受信データ）を受信すると、ＳＩＥ１１０は、受信データをデコードし、ＦＩＦＯコントローラ１２０は、デコードされた受信データを受信ＦＩＦＯ１５０に書き込み、ＤＭＡＣ４００に書き込みが終了したことを通知する。書き込みの終了の通知を受けたＤＭＡＣ４００は、バスラインＢＬを調停してＤＭＡ転送用に確保し、ＵＳＢコントローラ１００に対してＤＭＡＡＣＫ（DMA acknowledge）信号を送信する。ＵＳＢコントローラ１００がＤＭＡＡＣＫ信号を受信すると、ＤＭＡＣ４００は、ＦＩＦＯ１５０から受信データを読み出し、図略のバッファに一旦ラッチした後、メモリ３００に書き込む。この繰り返しにより、外部装置６０からの受信データがメモリ３００に格納される。
【００３０】
次に、本デジタル複合機のデータ送信時の基本動作について説明する。ＣＰＵ２００は、送信することが判明している送信データをメモリ３００に書き込み、ＵＳＢコントローラ１００は、ＤＭＡＲＥＱ(DMA request)信号をＤＭＡＣ４００に送信し、ＤＭＡＲＥＱ信号を受信したＤＭＡＣ４００は、ＤＭＡ転送用にバスラインＢＬを確保し、ＵＳＢコントローラ１００に対してＤＭＡＡＣＫ信号を送信すると共に、メモリ４００に記憶されている送信データを送信する。
【００３１】
ＤＭＡＡＣＫを受信したＵＳＢコントローラ１００は、受信データを図略のバッファに一旦ラッチし、送信ＦＩＦＯ１６０、１７１〜１７Ｎのうち送信先として設定されたいずれか１個の送信ＦＩＦＯに対して、送信データを書き込む。この繰り返しによって送信データが送信ＦＩＦＯに書き込まれる。全ての送信データが設定された送信ＦＩＦＯに書き込まれると、ＦＩＦＯコントローラ１２０は、ＳＩＥ１１０に対して送信準備完了信号を送信し、送信準備が完了していることを通知する。そして、外部装置６０からの送信要求信号を受信すると、ＳＩＥ１１０は、送信要求信号が示すエンドポイントに対する送信準備が完了しているか否かを判定し、送信準備が完了している場合、外部装置６０に対し送信データを送信する。なお、上記説明では、メモリ３００及びＵＳＢコントローラ間のデータ転送をＤＭＡ転送により行なっているが、これに限定されず、ＰＩＯ（programmed I/O）転送により行なっても良い。また、ＤＭＡ転送を用いる場合であっても、上述した方式とは異なる方式のＤＭＡ転送を用いても良い。
【００３２】
次に、図２及び図３を用いて本デジタル複合機の具体的な動作について説明する。図２及び図３に示す各モジュールは、図１に示すＵＳＢコントローラを構成する受信ＦＩＦＯ１５０、送信ＦＩＦＯ１６０、１７１〜１７Ｎのうち送信ＦＩＦＯ１６０，１７１〜１７３及びＦＩＦＯコントローラ１２０を示している。この具体例では、エンドポイント１〜３に対し、それぞれ、本デジタル複合機におけるプリンタ機能に関する送信データ（プリンタ送信データＤ１）、スキャナ機能に関する送信データ（スキャナ送信データＤ２）、ファクシミリ機能に関する送信データ（ファクシミリ送信データＤ３）が予め割り当てられているものとする。また、エンドポイント１〜３は、それぞれ、送信ＦＩＦＯ１７１〜１７３がデフォルトの送信ＦＩＦＯとして割り当てられているものとする。
【００３３】
さらに、送信することが判明しているデータとしてプリンタ送信データＤ１、スキャナ送信データＤ２、ファクシミリ送信データＤ３が本デジタル複合機により生成されており、メモリ３００に記憶されているものとする。まず、ＣＰＵ２００は、エンドポイント１〜３のうち、どのエンドポイントに対して外部装置６０から最初に送信要求がされるかを推定し、推定したエンドポイントを大容量のＦＩＦＯである送信ＦＩＦＯ１６０に割り当てる。
【００３４】
例えば、ＣＰＵ２００は、外部装置６０によりエンドポイント１に対する送信要求がなされると推定した場合、図２に示すようにエンドポイント１を送信ＦＩＦＯ１６０に割り当て、プリンタ送信データＤ１を送信ＦＩＦＯ１６０に書き込むとともに、スキャナ送信データＤ２及びファクシミリ送信データＤ３を、それぞれ、デフォルトの送信ＦＩＦＯである送信ＦＩＦＯ１７２及び１７３に書き込む。この場合、送信ＦＩＦＯ１７１は使用されない。
【００３５】
そして、推定したとおりに、外部装置６０からエンドポイント１に対する送信要求がなされると、ＦＩＦＯコントローラ１２０は、送信ＦＩＦＯ１７１からではなく送信ＦＩＦＯ１６０からプリンタ送信データＤ１を読み出し（図２に示すＰ１）、ＳＩＥ１１０は読み出されたプリンタ送信データＤ１を外部装置６０に送信する。これにより、ＵＳＢコントローラ１００は、一度に基準データ量以上の送信データを送信することができ、最大パフォーマンスでのＵＳＢによるデータ通信を行なうことができる。
【００３６】
一方、ユーザによる操作指令等、何らかの要因により、外部装置６０からの送信要求が推定したエンドポイント１以外のエンドポイント２又は３に対してなされる場合もある。しかしながら、この場合、図２に示すようにエンドポイント２又は３に対応するスキャナ送信データＤ２及びファクシミリ送信データＤ３は、それぞれ、送信ＦＩＦＯ１７２及び１７３に書き込まれているため、ＦＩＦＯコントローラ１２０は、図２のＰ２又はＰ３で示すように、送信要求がなされたエンドポイントに対応する送信データ（Ｄ２又はＤ３）を読み出し、ＳＩＥ１１０は読み出された送信データ（Ｄ２又はＤ３）を外部装置６０に送信することが可能となる。そのため、ＳＩＥ１１０から外部装置６０に対してＮＡＫが送信されず、パフォーマンスの高いデータ通信を実現することができる。
【００３７】
さらに、外部装置６０から推定結果に反したエンドポイントに対する送信要求がなされた場合、ＣＰＵ２００は、送信要求がなされたエンドポイントに対する送信要求が継続して行なわれるか否かを判定し、継続して行なわれる判定した場合、当該エンドポイントを送信ＦＩＦＯ１６０に割り当てるとともに、現在、送信ＦＩＦＯ１６０に割り当てられているエンドポイントをデフォルトの送信ＦＩＦＯに割り当てる。
【００３８】
例えば、エンドポイント１が送信ＦＩＦＯ１６０に割り当てられている場合に、外部装置６０からエンドポイント２に対する送信要求がなされ、当該送信要求が継続して行なわれると判定した場合、ＣＰＵ２００は、図３に示すようにエンドポイント１をデフォルトの送信ＦＩＦＯ１７１に割り当て、エンドポイント２を大容量の送信ＦＩＦＯ１６０に割り当てる。
【００３９】
そして、ＤＭＡＣ４００は、送信ＦＩＦＯ１６０に書き込まれたデータをメモリ３００に退避させ、退避させたプリンタ送信データＤ１のうち送信ＦＩＦＯ１７１の記憶容量分のプリンタ送信データＤ１を、送信ＦＩＦＯ１７１に書き込む。また、ＦＩＦＯコントローラ１２０は、送信ＦＩＦＯ１７２に書き込まれたスキャナ送信データＤ２を送信ＦＩＦＯ１６０に書き込み、ＤＭＡＣ４００はその続きのスキャナ送信データＤ２をメモリ３００から読み出して送信ＦＩＦＯ１６０に書き込む。書き込みが終了するとＦＩＦＯコントローラ１２０は、送信ＦＩＦＯ１７２に代えて送信ＦＩＦＯ１６０からスキャナ送信データＤ２を読み出し（図３に示すＰ１）、ＳＩＥ１１０は外部装置６０に対し、読み出された送信データを送信する。これにより推定がはずれた場合であっても、最高のパフォーマンスによる通信を実現することができる。
【００４０】
次に、本デジタル複合機のデータ送信時の動作を図５〜図７に示すフローチャートを用いて説明する。図４〜図６に示すフローチャートにおけるＵＳＢコントローラ１００の構成は、図２及び図３に示す構成と同一であり、エンドポイント１〜３に対して割り当てられる送信データ及びデフォルトの送信ＦＩＦＯも図２及び図３に示す場合と同一のものとする。また、本フローチャートにおいて、プリンタ送信データＤ１、スキャナ送信データＤ２及びファクシミリ送信データＤ３が、予め送信することが判明している送信データであるとする。
【００４１】
まず、ステップＳ１において、ＣＰＵ２００は、送信することが判明している送信データのうち、最初に送信要求がなされる可能性が高い送信データを推定する。ここでは、ＣＰＵ２００によりエンドポイント１に対して最初に送信要求がなされることが推定されたものとする。ステップＳ２において、ＣＰＵ２００は、推定したエンドポイント１に対して大容量の送信ＦＩＦＯ１６０を割り当てる。
【００４２】
ステップＳ３において、ＤＭＡＣ４００は、メモリ３００に記憶されたプリンタ送信データＤ１を送信ＦＩＦＯ１６０に書き込むとともに、スキャナ送信データＤ２及びファクシミリ送信データＤ３を、それぞれ、デフォルトの送信ＦＩＦＯである送信ＦＩＦＯ１７２及び１７３に書き込む。
【００４３】
ステップＳ４において、ＤＭＡＣ４００による送信ＦＩＦＯ１６０，１７２，１７３に対するプリンタ送信データＤ１、スキャナ送信データＤ２及びファクシミリ送信データＤ３の書き込みが完了すると、ＦＩＦＯコントローラ１２０は、ＳＩＥ１１０に対し送信準備の完了を通知する。
【００４４】
ステップＳ５において、ＳＩＥ１１０が、外部装置６０から推定したエンドポイント１に対する送信要求を受け付けた場合（ステップＳ５でＹＥＳ）、ＳＩＥ１１０は、送信ＦＩＦＯ１６０に書き込まれたプリンタ送信データＤ１を外部装置６０に送信する（ステップＳ６）。一方、ＳＩＥ１１０がエンドポイント１とは異なるエンドポイントに対する送信要求を受け付けた場合（ステップＳ５でＮＯ）、処理が図６に示すステップＳ１４に進められる。
【００４５】
ステップＳ７において、ＣＰＵ２００は、送信ＦＩＦＯ１６０に対し、次に書き込むべきプリンタ送信データＤ１が存在するか否かを判定し、当該データＤ１が存在する場合（ステップＳ７でＹＥＳ）、ＤＭＡＣ４００は、当該データＤ１を送信ＦＩＦＯ１６０に書き込み（ステップＳ８）、書き込みが完了すると、ＦＩＦＯコントローラ１２０は、送信準備の完了をＳＩＥ１１０に通知する（ステップＳ９）。
【００４６】
一方、ステップＳ７において、ＣＰＵ２００が、次に書き込むべきプリンタ送信データＤ１が存在しないと判定した場合（ステップＳ７でＮＯ）、ＣＰＵ２００は、次に送信要求がされる可能性が高いエンドポイントを推定する。そして、推定した結果、ＦＩＦＯ１６０のエンドポイントの割当てを他のエンドポイントに切替える必要があると判定した場合（ステップＳ１０でＹＥＳ）、ＣＰＵ２００は、送信ＦＩＦＯ１６０を推定したエンドポイントに切替え（ステップＳ１１）、ＤＭＡＣ４００は、切替えたエンドポイントのデフォルトの送信ＦＩＦＯに書き込まれた送信データを送信ＦＩＦＯ１６０に書き込むと共に、ＤＭＡＣ４００は、その続きの送信データをメモリ３００から読み出して、送信ＦＩＦＯ１６０に書き込む（ステップＳ１２）。そして、書き込みが完了すると、ＦＩＦＯコントローラ１２０は、送信ＦＩＦＯ１６０の送信準備の完了をＳＩＥ１１０に通知する（ステップＳ１３）。
【００４７】
図６に示すステップＳ１４において、ＳＩＥ１１０は、送信要求がされたエンドポイントに対するデフォルトの送信ＦＩＦＯに書き込まれた送信データを外部装置６０に送信する。ステップＳ１５において、ＣＰＵ２００は、次に送信要求がされる可能性が高いエンドポイントを推定し、推定した結果、送信ＦＩＦＯ１６０を他のエンドポイントに切替える必要があると判定した場合（ステップＳ１５でＹＥＳ）、ＤＭＡＣ４００は、ＦＩＦＯ１６０に書き込まれたプリンタ送信データＤ１をメモリ３００に書き込んで一旦退避させ、送信ＦＩＦＯ１６０をクリアする（ステップＳ１６）。
【００４８】
ＣＰＵ２００は、送信ＦＩＦＯ１６０に対するエンドポイントの割り当てを、推定したエンドポイントに切替え（ステップＳ１７）、ＤＭＡＣ４００は推定したエンドポイントに対応する送信データをメモリ３００から読み出して送信ＦＩＦＯ１６０に書き込み（ステップＳ１８）、書き込みが完了すると、ＦＩＦＯコントローラ１２０は、ＳＩＥ１１０に送信ＦＩＦＯ１６０の送信準備の完了を通知する（ステップＳ１９）。ステップＳ２０において、ＤＡＭＣ４００は、メモリ３００に待避されていたＦＩＦＯ１６０に書き込まれていた送信データをデフォルトの送信ＦＩＦＯに書き込む。
【００４９】
一方、ステップＳ１５において、ＣＰＵ２００が送信ＦＩＦＯ１６０を他のエンドポイントに切替える必要がないと判定した場合（ステップＳ１５でＮＯ）、ＣＰＵ２００は、送信要求がされたエンドポイントに対して次に書き込むべき送信データがあるか否かを判定し（ステップＳ２１）、次に書き込むべき送信データが存在する場合（ステップＳ２１でＹＥＳ）、そのエンドポイントのデフォルトの送信ＦＩＦＯに次の送信データを書き込み（ステップＳ２２）、書き込みが完了すると、ＦＩＦＯコントローラ１２０は、ＳＩＥ１１０に送信準備の完了を通知する（ステップＳ２３）。
【００５０】
一方、ステップＳ２１において、送信要求がされたエンドポイントに書き込むべき次の送信データが存在しない場合（ステップＳ２１でＮＯ）、処理が終了される。
【００５１】
以上説明したように、本デジタル複合機によれば、大容量の送信ＦＩＦＯ１６０と、エンドポイント１〜Ｎに対応する小容量の送信ＦＩＦＯ１７１〜１７Ｎを設け、最初に送信要求がなされる可能性が高いエンドポイントを推定し、推定したエンドポイントに対応する送信データを送信ＦＩＦＯ１６０に書き込み、それ以外の送信データを対応するデフォルトの送信ＦＩＦＯ１７１〜１７Ｎに書き込む。
【００５２】
そして、推定したエンドポイントに対して送信要求がなされた場合は、送信ＦＩＦＯ１６０からデータを読み出して、外部装置６０に送信する。これにより、最高のパフォーマンスでＵＳＢによるデータ通信を実現することができる。一方、推定したエンドポイント以外のエンドポイントから送信要求がなされた場合は、そのエンドポイントに対応する送信データは、対応する送信ＦＩＦＯ１７１〜１７Ｎに書き込まれているため、当該データを外部装置６０に対して送信することが可能となる。そのため、送信ＦＩＦＯ１６０，１７１〜１７Ｎの記憶容量の増大を抑制しつつ、高いパフォーマンスのデータ通信を実現することができる。
【００５３】
さらに、推定したエンドポイント以外のエンドポイントに対して送信要求がなされた場合であって、当該エンドポイントに対する送信要求が継続して行なわれる可能性が高い場合は、当該エンドポイントが大容量のＦＩＦＯ１６０に切替えられるため、最高のパフォーマンスによるデータ通信を実現することができる。
【００５４】
なお、上記実施形態では、大容量の送信ＦＩＦＯは送信ＦＩＦＯ１６０の１個としたが、これに限定されず、複数個設けても良い。また、本発明にかかる送信装置は、上述したＵＳＢによるデータ通信に限られず、それ以外のデータ通信に適用してもよい。さらに、本発明にかかる送信装置をデジタル複合機以外の他の装置（例えばパーソナルコンピュータ）に適用してもよい。さらに、上記実施形態に示す受信ＦＩＦＯ１５０，送信ＦＩＦＯ１６０，１７１〜１７Ｎを物理的に１個の記憶素子により構成してもよい。
【００５５】
上記実施形態では、推定手段、割り当て手段、及び継続判定手段をＣＰＵ２００が行なうものとしたが、これに限定されず、ＵＳＢコントローラ１００内にこれらの手段を実現するためのＣＰＵあるいは専用のハードウェア回路を別途設けてもよい。
【図面の簡単な説明】
【００５６】
【図１】本発明にかかる送信装置をプリンタ、ファクシミリ、及びスキャナの機能を備えるデジタル複合機に適用した場合の電気的構成を示すブロック図である。
【図２】本発明の実施形態によるデジタル複合機のデータ送信時の具体的な動作を説明するための図面である。
【図３】本発明の実施形態によるデジタル複合機のデータ送信時の具体的な動作を説明するための図面である。
【図４】本発明の実施形態によるデジタル複合機のデータ送信時の動作を示すフローチャートである。
【図５】本発明の実施形態によるデジタル複合機のデータ送信時の動作を示すフローチャートである。
【図６】本発明の実施形態によるデジタル複合機のデータ送信時の動作を示すフローチャートである。
【符号の説明】
【００５７】
６０  外部装置
１００  ＵＳＢコントローラ
１１０  ＳＩＥ
１２０  ＦＩＦＯコントローラ
１３０  コントロールレジスタ
１４０  バスセレクタ
１５０  受信ＦＩＦＯ
１６０  送信ＦＩＦＯ
１７１〜１７Ｎ  送信ＦＩＦＯ
２００  ＣＰＵ
３００  メモリ
４００  ＤＭＡＣ
５００  スキャナ部
６００  印刷部
７００  ファクシミリ部
８００  操作部
【図１】
2005346176.tif 000003
【図２】
2005346176.tif 000004
【図３】
2005346176.tif 000005
【図４】
2005346176.tif 000006
【図５】
2005346176.tif 000007
【図６】
2005346176.tif 000008