(57)【要約】【課題】並行して複数の処理を行う際に、簡易な制御によってバスや処理回路を効率的に利用しつつ、各処理を行うのに必要な帯域を割り当てる。【解決手段】転送装置は、記憶装置と処理装置との間でデータを転送する複数の転送装置の１つの転送装置であって、記憶装置と転送装置とはバスを介して接続され、転送装置は、バスを介してデータを転送するためのリクエストを発行する発行手段と、転送されるデータを解析する解析手段と、発行手段によって発行される一連のリクエストの状態を、第１状態と、他の転送装置からのリクエストが第１状態よりも割り込みやすい第２状態と、の間で、解析の結果得られるデータの属性に応じて切り替える切替手段と、を備える。【選択図】図１
2018185762.tif 000002
【特許請求の範囲】
【請求項１】
記憶装置と処理装置との間でデータを転送する複数の転送装置の１つの転送装置であって、前記記憶装置と前記転送装置とはバスを介して接続され、前記転送装置は、
前記バスを介してデータを転送するためのリクエストを発行する発行手段と、
転送されるデータを解析する解析手段と、
前記発行手段によって発行される一連のリクエストの状態を、第１状態と、他の転送装置からのリクエストが前記第１状態よりも割り込みやすい第２状態と、の間で、解析の結果得られるデータの属性に応じて切り替える切替手段と、を備える転送装置。
【請求項２】
前記切替手段は、解析の結果得られるデータの属性に応じてデータの転送が完了したと判定するための条件を切り替えることにより、前記第１状態と前記第２状態との間の切り替えを行う請求項１に記載の転送装置。
【請求項３】
バッファと前記処理装置との間でデータを転送するバッファ転送手段をさらに備え、
前記切替手段は、
前記第１状態において、あるリクエストに対応する前記記憶装置と前記バッファとの間のデータの転送および該リクエストに対応する前記バッファと前記処理装置との間のデータの転送の両方が完了したと判定されたことを条件として、次のリクエストの発行を許可し、
前記第２状態において、あるリクエストに対応する前記記憶装置と前記バッファとの間のデータの転送および該リクエストに対応する前記バッファと前記処理装置との間のデータの転送の両方が完了したと判定され、かつデータの転送が指示されてから所定の期間が経過したことを条件として、次のリクエストの発行を許可する請求項２に記載の転送装置。
【請求項４】
前記所定の期間は、前記解析手段が所定の設定コマンドをデコードした際に設定される請求項３に記載の転送装置。
【請求項５】
データは設定データと非設定データとを含み、
前記解析手段は、非設定データの転送を開始するためのコマンドをデコードしたら、前記切替手段に第１通知を行い、非設定データの転送を終了するためのコマンドをデコードしたら、前記切替手段に第２通知を行い、
前記切替手段は、前記第１通知に応じて前記発行手段によって発行される一連のリクエストの状態を前記第２状態に遷移させ、前記第２通知に応じて前記第１状態に遷移させる請求項３または４に記載の転送装置。
【請求項６】
非設定データは画像データであり、設定データは対応する画像データを処理するための設定を含むデータである請求項５に記載の転送装置。
【請求項７】
前記解析手段は、しきい値より多い量のデータの転送を開始するためのコマンドをデコードしたら、前記切替手段に第１通知を行い、前記しきい値より少ない量のデータの転送を開始するためのコマンドをデコードしたら、前記切替手段に第２通知を行い、
前記切替手段は、前記第１通知に応じて前記発行手段によって発行される一連のリクエストの状態を前記第２状態に遷移させ、前記第２通知に応じて前記第１状態に遷移させる請求項３または４に記載の転送装置。
【請求項８】
クロックの供給を制御する制御手段をさらに備え、
前記制御手段は、前記第２状態において、あるリクエストに対応する前記記憶装置と前記バッファとの間のデータの転送および該リクエストに対応する前記バッファと前記処理装置との間のデータの転送の両方が完了したと判定されてから前記所定の期間が経過するまでの間、クロックの供給を停止させる請求項３から７のいずれか一項に記載の転送装置。
【請求項９】
前記バッファは第１バッファと第２バッファとを含み、
あるリクエストに対応する前記記憶装置と前記第１バッファとの間のデータの転送および該リクエストに対応する前記第２バッファと前記処理装置との間のデータの転送は並行して行われる請求項３から８のいずれか一項に記載の転送装置。
【請求項１０】
前記切替手段は、解析の結果得られるデータの属性に応じてリクエストの分割数を切り替えることにより、前記第１状態と前記第２状態との間の切り替えを行う請求項１に記載の転送装置。
【請求項１１】
前記切替手段は、前記第１状態において、前記発行手段によって発行されるリクエストを分割せず、前記第２状態において、前記発行手段によって発行されるリクエストを分割する請求項１０に記載の転送装置。
【請求項１２】
前記切替手段は、前記第２状態において、前記発行手段によって発行されるリクエストを、所与の連続転送回数を有する少なくともひとつのリクエストと、前記所与の連続転送回数よりも少ない連続転送回数を有するリクエストと、に分割する請求項１１に記載の転送装置。
【請求項１３】
前記所与の連続転送回数は、前記解析手段が所定の設定コマンドをデコードした際に設定される請求項１２に記載の転送装置。
【請求項１４】
前記転送装置は、前記他の転送装置とも接続される転送処理手段と接続され、前記転送処理手段は前記バスを介して前記記憶装置と接続され、
前記転送処理手段は前記転送装置からのリクエストと前記他の転送装置からのリクエストとが競合した場合、それらのリクエストを受け付けた順番に処理する請求項１から１３のいずれか一項に記載の転送装置。
【請求項１５】
前記バスにはＣＰＵが接続され、
前記解析手段および前記切替手段は前記ＣＰＵとは無関係に動作する請求項１から１４のいずれか一項に記載の転送装置。
【請求項１６】
記憶装置と処理装置との間でデータを転送する複数の転送装置の１つの転送装置の制御方法であって、前記記憶装置と前記転送装置とはバスを介して接続され、前記制御方法は、
前記バスを介してデータを転送するためのリクエストを発行することと、
転送されるデータを解析することと、
発行される一連のリクエストの状態を、第１状態と、他の転送装置からのリクエストが前記第１状態よりも割り込みやすい第２状態と、の間で、解析の結果得られるデータの属性に応じて切り替えることと、を含む制御方法。
【請求項１７】
スキャナとプリンタとそれらを制御する制御手段とを備える複合機であって、
前記制御手段は、
前記スキャナおよび前記プリンタを用いたコピー処理で用いられるデータを記憶するための記憶装置と、
コピー処理で用いられるデータを処理する演算手段と、
前記制御手段を制御するＣＰＵと、
前記記憶装置と前記演算手段と前記ＣＰＵとが接続されたバスと、
前記バスへ信号を送り出す権利を調停する調停手段と、を含み、
前記演算手段は、
前記スキャナによってスキャンされたデータを処理する第１処理手段と、
前記記憶装置と前記第１処理手段との間でデータを転送する第１転送手段と、
前記プリンタによるプリントに適合させるようにデータを処理する第２処理手段と、
前記記憶装置と前記第２処理手段との間でデータを転送する第２転送手段と、
前記第１転送手段および前記第２転送手段と接続され、前記第１転送手段または前記第２転送手段からのリクエストを前記バスを介して前記調停手段に送信する転送処理手段と、を有し、
前記転送処理手段は前記第１転送手段からのリクエストと前記第２転送手段からのリクエストとが競合した場合、それらのリクエストを受け付けた順番に処理し、
前記第１転送手段は、
前記バスを介してデータを転送するためのリクエストを発行する発行手段と、
転送されるデータを解析する解析手段と、
前記発行手段によって発行される一連のリクエストの状態を、第１状態と、前記第２転送手段からのリクエストが前記第１状態よりも割り込みやすい第２状態と、の間で、解析の結果得られるデータの属性に応じて切り替える切替手段と、を有する複合機。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、転送装置、転送方法および複合機に関する。
【背景技術】
【０００２】
スキャン機能とプリント機能とを持つ複合機等の装置では、コピー処理を行う際、処理を素早く完了するために原稿をスキャナで読み取りながら、同時にプリント（印刷）が行われる。この時、スキャンにより得られた画像データはバスを介してＤＲＡＭに格納されてゆき、数ライン分のスキャンが完了した段階でＤＲＡＭに格納された画像データが読み出されてプリントが実行されるという処理が繰り返される。しかしながら、スキャナによって読み取られた画像データや、プリントに用いる画像データの転送は共通のバスを介して行われることから、スキャナやプリンタが同時に動作するコピー処理では、バスの帯域負荷が大きくなる。特に、コピー処理時に一時的にスキャナ側のバスアクセスが集中した場合、プリンタ側でプリント用のデータ転送が待たされることとなる。スキャン動作に必要なバス帯域が確保できなくなると、データの取りこぼしによってコピー処理が正しく行われなくなる可能性がある。データ供給が遅れると、プリントヘッドを止めることなく連続して動作させることができなくなり、プリントが正しく行われなくなる可能性がある。
【０００３】
このような状況に鑑み、バスを介してデータ転送を行う装置が複数存在するシステムにおいて、各装置に必要な速度でデータを供給するための様々な技術が開発されている。例えば、特許文献１には、スキャン処理とプリント処理とが共に動作する場合、プリント処理部のバスアクセスを許可する期間を多く取るよう定めることで、プリントエンジンへのデータ転送が滞らないよう制御する技術が開示されている。特許文献２には、バス帯域の負荷を定期的に監視し、バス上の帯域負荷が一定量を超えていたら、データ転送量を抑制する技術が開示されている。特許文献３には、ブロック単位でデータ転送するＤＭＡＣにおいて、バッファへのライト動作とリード動作との切り替えを時間的に分散させることで、バス上でのデータ転送の集中を抑制する技術が開示されている。特許文献４には、複数チャンネルのＤＭＡ転送を制御するＤＭＡＣが開示されている。このＤＭＡＣは、各チャンネルの転送要求を設定されたデータ転送量に分割して実行することで、特定のチャンネルがバスを占有し、他のデバイスが待機し続けてしまう状態を回避する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１４−１０７５８５号公報
【特許文献２】特開２０１０−１５２７５号公報
【特許文献３】特開２０１５−９９４７７号公報
【特許文献４】特開２００２−３６６５０７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１に記載の手法ではバスの使用を許可されている間、転送するデータを常に準備しておかなければ、バスの帯域を十分に活用できない時間が発生してしまう。特許文献２に記載の手法では、データ転送速度が抑制されるタイミングを予測するのが難しいことから、スキャン処理やプリント処理のようにリアルタイムな動作が要求される機器への適用は難しい。特許文献３に記載の手法では、リアルタイム動作に必要な速度でデータ転送が行えるよう、バッファリング動作の切り替えにかかるウェイトサイクルを指定している。しかしながら、このシステムは、ウェイトサイクルをＣＰＵのイベント信号で切り替えるよう構成されていることから、データ転送速度の切り替えに時間がかかり、次の処理に移行するまでに待機時間が発生する。特許文献４に記載の手法では、ＤＭＡ転送時にアクセス先の転送速度に応じてＤＭＡ転送のデータ量を制御している。しかしながら、高速なデータ転送が要求されるプリント処理の設定値の転送やスキャナ処理の設定値の転送時にもＤＭＡ転送が分割して行われるため、望まれないタイミングで転送速度が抑制されてしまう。
【０００６】
本発明はこうした課題に鑑みてなされたものであり、その目的は、並行して複数の処理を行う際に、簡易な制御によってバスや処理回路を効率的に利用しつつ、各処理を行うのに必要な帯域を割り当てることができる構成の提供にある。
【課題を解決するための手段】
【０００７】
本発明のある態様は転送装置に関する。この転送装置は、記憶装置と処理装置との間でデータを転送する複数の転送装置の１つの転送装置であって、記憶装置と転送装置とはバスを介して接続され、転送装置は、バスを介してデータを転送するためのリクエストを発行する発行手段と、転送されるデータを解析する解析手段と、発行手段によって発行される一連のリクエストの状態を、第１状態と、他の転送装置からのリクエストが第１状態よりも割り込みやすい第２状態と、の間で、解析の結果得られるデータの属性に応じて切り替える切替手段と、を備える。
【発明の効果】
【０００８】
本発明によれば、並行して複数の処理を行う際に、簡易な制御によってバスや処理回路を効率的に利用しつつ、各処理を行うのに必要な帯域を割り当てることができる。
【図面の簡単な説明】
【０００９】
【図１】第１の実施の形態に係る複合機の構成例を示すブロック図。
【図２】スキャン処理を行う際のディスプレイリストの一例を示す模式図。
【図３】図１の複合機がコピー処理を行う際の動作の流れの一例を示すフロー図。
【図４】図４（ａ）〜（ｃ）は、バス上のデータ転送を示す模式図。
【図５】図１の演算部の機能および構成を示すブロック図。
【図６】図５の第１入力側転送部の機能および構成を示すブロック図。
【図７】転送シーケンスの制御を説明するための図。
【図８】同期制御を説明するフローチャート。
【図９】図９（ａ）、（ｂ）は、バッファチェンジのタイミングを示す模式図。
【図１０】第２の実施の形態に係る第１入力側転送部の機能および構成を示すブロック図。
【図１１】第３の実施の形態に係る第１入力側転送部の機能および構成を示すブロック図。
【図１２】図１１のＤＭＡ分割部における分割制御を説明するフローチャート。
【図１３】図１３（ａ）〜（ｅ）は、ＤＭＡ転送リクエストの分割を説明するための図。
【発明を実施するための形態】
【００１０】
以下、各図面に示される同一または同等の構成要素、部材、処理には、同一の符号を付するものとし、適宜重複した説明は省略する。また、各図面において説明上重要ではない部材の一部は省略して表示する。
【００１１】
実施の形態では、データの転送装置において、転送するデータの属性や内容に応じて、高速にデータ転送が行われる高速転送モードとデータ転送速度が抑制される抑制転送モードとが自律的に切り替えられる。これにより、ＣＰＵが介在すること無く、適切なタイミングでデータ転送速度が制御されるため、各処理部がデータ転送する際に必要とするバスの帯域を確保することができる。
【００１２】
（第１の実施の形態）
図１は、第１の実施の形態に係る複合機１００の構成例を示すブロック図である。複合機１００は、制御部１１０と、スキャナ１２０と、プリンタ１３０と、を備える。スキャナ１２０は原稿１２１を読み取り、画像データに変換する光学装置である。具体的には、スキャナ１２０は原稿１２１に光を照射し、撮像素子によってその反射光を受光してアナログデータを生成し、Ａ／Ｄ変換することで画像データを得る。プリンタ１３０はプリント（印刷）画像データに従い、用紙１３１に対してインクを吐出することで、用紙１３１上に画像を形成するプリント装置である。なお、プリンタ１３０はこのようなインクジェット方式のプリント装置に限られず、電子写真方式やその他のプリント方式を用いたプリント装置であってもよい。
【００１３】
制御部１１０はスキャナ１２０やプリンタ１３０に対する動作の指示や、画像の転送、画像処理を行う制御装置である。制御部１１０は、ＣＰＵ１１１と、メモリコントローラ１１２と、ＤＲＡＭ１１３と、スキャナＩ／Ｆ１１４と、プリンタＩ／Ｆ１１５と、演算部１１６と、を含む。これらの構成要素はそれぞれバス１１７と接続され、バス１１７を介してデータのやりとりを行う。
【００１４】
スキャナＩ／Ｆ１１４はスキャナ１２０とバス１１７との間に設けられ、それらの間のインタフェースとして機能する。プリンタＩ／Ｆ１１５はプリンタ１３０とバス１１７との間に設けられ、それらの間のインタフェースとして機能する。ＣＰＵ１１１は複合機１００を制御するプロセッサである。バス１１７は制御部１１０の構成要素間でデータを転送する際に用いられる信号伝送路である。バス１１７上では同時に複数の構成要素からデータを転送することができないため、バス１１７上でどの構成要素からデータを転送するかはメモリコントローラ１１２で制御される。
【００１５】
メモリコントローラ１１２は、制御部１１０の構成要素の間で、バス１１７へ信号を送り出す権利（バスの使用権）を調停する調停手段（Bus arbiter）である。メモリコントローラ１１２はバス１１７上で行うデータ転送のリクエストを管理する。メモリコントローラ１１２は、各構成要素から送られたリクエストを受信し、順に実行する。メモリコントローラ１１２は、同時に複数の構成要素からリクエストを受信した場合、優先順位の高いリクエストから順次実行する。
【００１６】
ＤＲＡＭ１１３は複合機１００の主記憶装置である。ＤＲＡＭ１１３は、スキャンやプリントに用いる画像データや、演算部１１６の設定値や、ディスプレイリストを記憶（保持）する。ディスプレイリストは、演算部１１６がどのような処理をするべきかが記載されたコマンド列を示すデータである。
【００１７】
演算部１１６はディスプレイリストによって制御され、スキャン画像やプリント画像に対して画像処理を行う装置である。画像処理はスキャン画像処理とプリント画像処理とを含む。スキャン画像処理では、スキャナ１２０によって読み取った画像データに対して、光学素子の特性によってずれてしまった色調を自然な色に修正するガンマ（γ）補正や、文字の輪郭をはっきりさせるためのエッジ強調等が行われる。プリント画像処理では、プリント対象の画像データに対して、プリント可能なＣＭＹＫ色空間に変換する色空間変換や、インクで表現するのに適切な階調へと変換するガンマ（γ）変換等が行われる。
【００１８】
図２は、スキャン処理を行う際のディスプレイリスト１５０の一例を示す模式図である。演算部１１６がディスプレイリスト１５０によりどのように制御されるかを説明する。図２は、ディスプレイリスト１５０と、ＬＵＴ（Look-Up Table）データ１５１と、画像データ１５２と、がＤＲＡＭ１１３に保持されている状態を示している。ディスプレイリスト１５０は上から順に処理されるので、最初に演算部設定コマンド１５３が実行される。演算部設定コマンド１５３により、後述の第１イベント制御部２１１や第１入力側転送部２１２や第１出力側転送部２１３に対する設定がなされる。具体的には、演算部設定コマンド１５３により、ＤＭＡ（Direct Memory Access）転送時のバースト長や、ＣＰＵ１１１に送信する割り込みの種別や、画像転送コマンド１５６やＬＵＴ転送コマンド１５５をデコード（Decode、復号）した際に転送されるデータのアドレスやデータ量等、の設定がなされる。
【００１９】
次に、スキャン画像処理部設定コマンド１５４が実行され、後述のスキャン画像処理部２１４に対して、処理対象の画像の大きさやフォーマットの設定がなされる。その後、ＬＵＴ転送コマンド１５５が実行され、ＤＲＡＭ１１３に記憶されているＬＵＴデータが、前述の演算部設定コマンド１５３による設定に応じて読み出される。ＬＵＴデータは、スキャン画像処理部２１４に対して、色空間変換のように設定値を比較的多く持つ処理の設定を行うためのものである。次に、画像転送コマンド１５６が実行され、ＤＲＡＭ１１３に記憶されている、スキャナ１２０で読み取られた画像データが、前述の演算部設定コマンド１５３による設定に応じて読み出される。各種設定がなされた演算部１１６は、読み出された画像データに対するスキャン画像処理を実行する。最後に、終了コマンド１５７が実行され、演算部１１６がＣＰＵ１１１に対して割り込みを送信する。
プリント処理を行う際のディスプレイリストは、図２に示されるディスプレイリスト１５０と同様の構成を有する。
【００２０】
図３は、図１の複合機１００がコピー処理を行う際の動作の流れの一例を示すフロー図である。Ｓ３３０で、ユーザの操作によってコピー処理の開始が指示されると、ＣＰＵ１１１はコピー処理のプログラムの実行を開始する。Ｓ３３１で、ＣＰＵ１１１はスキャナＩ／Ｆ１１４を通してスキャナ１２０を起動し、Ｓ３３２で、スキャナ１２０はスキャン処理すなわち原稿の読み取りを開始する。スキャナＩ／Ｆ１１４はスキャナ１２０で読み取った画像データをＤＲＡＭ１１３に書き込むようメモリコントローラ１１２に対して転送リクエストを発行する。Ｓ３３３で、スキャナＩ／Ｆ１１４は該転送リクエストに応じて、読み取られた画像データをＤＲＡＭ１１３に書き込む。Ｎライン分（Ｎは所与の自然数）のスキャンデータがＤＲＡＭ１１３に書き込まれると（Ｓ３３４のＹ）、Ｓ３３５でスキャナＩ／Ｆ１１４はＣＰＵ１１１に対して割り込みを送信する。
【００２１】
ＣＰＵ１１１はこの割り込みを受けて、スキャン画像に対する処理を実行するために、Ｓ３３６で演算部１１６を起動する。Ｓ３３７で、演算部１１６はスキャン用のディスプレイリストによって各種設定を行う。Ｓ３３８で、演算部１１６はＤＲＡＭ１１３からスキャンされた画像データを読み出し、Ｓ３３９でスキャン画像処理を行う。Ｓ３４０で、演算部１１６は、処理後の画像データをＤＲＡＭ１１３に書き戻す。演算部１１６は、処理したデータを全てＤＲＡＭ１１３に書き戻したら（Ｓ３４１のＹ）、Ｓ３４２でＣＰＵ１１１に対して割り込みを送信する。
【００２２】
ＣＰＵ１１１はスキャン画像処理の完了を受けて、プリント処理に向けた制御を開始する。ＣＰＵ１１１はプリント用画像データの生成を行うために、Ｓ３４３で再度演算部１１６を起動する。Ｓ３４４で、演算部１１６はプリント用のディスプレイリストによって各種設定を行う。演算部１１６は、Ｓ３４５でＤＲＡＭ１１３からスキャン画像処理された画像データを読み出し、Ｓ３４６でプリント画像処理を行う。Ｓ３４７で、演算部１１６は、処理後の画像データをＤＲＡＭ１１３に書き戻す。演算部１１６は、処理したデータを全てＤＲＡＭ１１３に書き戻したら（Ｓ３４８のＹ）、Ｓ３４９でＣＰＵ１１１に対して割り込みを送信する。
【００２３】
ＣＰＵ１１１はこの割り込みを受けて、Ｓ３５０で、プリントを行うためにプリンタＩ／Ｆ１１５を通してプリンタ１３０を起動する。Ｓ３５１で、プリンタＩ／Ｆ１１５はＤＲＡＭ１１３上のプリント画像処理が施された画像データを読み出し、プリンタ１３０に送信する。Ｓ３５２で、プリンタ１３０は受信した画像データを用いて用紙１３１に対するプリントを行う。以上の処理を原稿１２１全体に対して繰り返し行うことで、コピー処理が完了する。
【００２４】
上記のコピー処理においては、スキャン処理とプリント処理とが同時に行えるよう、各構成要素は並行して動作するよう制御される。例えば、スキャナＩ／Ｆ１１４が割り込みを送信し、ＣＰＵ１１１が演算部１１６を起動している間にもスキャナ１２０は並行して原稿１２１の続きを読み取り続けている（Ｓ３５３、Ｓ３５４）。その後、演算部１１６で処理が進められている間にも、スキャナ１２０がＮライン分のスキャンを完了したら、スキャナＩ／Ｆ１１４は再度割り込みを送信する。このように、コピー処理ではスキャン処理とプリント処理とが同時に行われるため、各処理が用紙１３１へのプリント速度に遅れないよう動作することが望ましい。また、プリンタ１３０へのデータ供給が滞りなく行われるよう、プリント処理の動作速度よりもスキャン処理の動作速度の方が大きくなるように設計される。
【００２５】
しかしながら、スキャナＩ／Ｆ１１４、プリンタＩ／Ｆ１１５、演算部１１６がそれぞれ並行して動作するなか、スキャナ側で大量のラインを読み進める場合などのように、スキャナが一時的に大量のデータ転送を発生させてしまう場合が生じうる。この場合、図４（ａ）に示されるように一時的にバス１１７の帯域がスキャナ処理に占有される。その結果、プリントを行うためのデータをプリンタ１３０に供給するのに必要なバス１１７の帯域が足りず、プリントが正しく行われなくなるか、またはプリント処理が滞る虞がある。本実施の形態では、この課題を解決する構成を演算部１１６に設けている。以下、演算部１１６について説明する。
【００２６】
図５は、図１の演算部１１６の機能および構成を示すブロック図である。演算部１１６は、ＤＭＡ転送コントローラ２０１と、スキャンデータ処理部２１０と、プリントデータ処理部２２０と、を含む。スキャンデータ処理部２１０はＤＲＡＭ１１３から画像データを取得してスキャン画像処理を行い、ＤＲＡＭ１１３に送信する。スキャンデータ処理部２１０は、第１イベント制御部２１１と、第１入力側転送部２１２と、第１出力側転送部２１３と、スキャン画像処理部２１４と、を有する。プリントデータ処理部２２０はＤＲＡＭ１１３から画像データを取得してプリント画像処理を行い、ＤＲＡＭ１１３に送信する。プリントデータ処理部２２０は、第２イベント制御部２２１と、第２入力側転送部２２２と、第２出力側転送部２２３と、プリント画像処理部２２４と、を有する。
【００２７】
ＤＭＡ転送コントローラ２０１は複数のポートからＤＭＡ転送リクエストを受信し、メモリコントローラ１１２に送信する制御部である。具体的には、ＤＭＡ転送コントローラ２０１は第１入力側転送部２１２、第１出力側転送部２１３、第２入力側転送部２２２、第２出力側転送部２２３と接続され、そのそれぞれからＤＭＡ転送リクエストを受信可能に構成される。ＤＭＡ転送コントローラ２０１はバス１１７を介してＤＲＡＭ１１３と接続される。ＤＭＡ転送コントローラ２０１は、ＤＲＡＭ１１３から受信したデータを、該データに対応するＤＭＡ転送リクエストの発行元に送信する。また、複数のポートからＤＭＡ転送リクエストを同時に受信するような競合が起こった場合には、ＤＭＡ転送コントローラ２０１はそれらのＤＭＡ転送リクエストをタスクに積んで、受け付けた順番に処理する（First-in First-out）。競合は、例えば第１入力側転送部２１２からのＤＭＡ転送リクエストと第２入力側転送部２２２からのＤＭＡ転送リクエストとが同時にＤＭＡ転送コントローラ２０１によって受け付けられた場合に生じる。
【００２８】
第１入力側転送部２１２（第２入力側転送部２２２）は、ＤＲＡＭ１１３から画像データやディスプレイリストを取得するためのＤＭＡ転送リクエストを発行し、受信したデータをスキャン画像処理部２１４（プリント画像処理部２２４）に送信する。第１入力側転送部２１２（第２入力側転送部２２２）は、終了コマンドを実行すると第１イベント制御部２１１（第２イベント制御部２２１）に通知し、動作を停止する。
【００２９】
第１出力側転送部２１３（第２出力側転送部２２３）は、スキャン画像処理部２１４（プリント画像処理部２２４）から処理済みの画像データやディスプレイリストを受信し、受信したデータをＤＲＡＭ１１３に書き出すためのＤＭＡ転送リクエストを発行する。第１出力側転送部２１３（第２出力側転送部２２３）は、終了コマンドを実行すると第１イベント制御部２１１（第２イベント制御部２２１）に通知し、動作を停止する。
【００３０】
第１イベント制御部２１１（第２イベント制御部２２１）は、演算部１１６が起動された際に第１入力側転送部２１２（第２入力側転送部２２２）と第１出力側転送部２１３（第２出力側転送部２２３）とに動作開始の指示を行う。第１イベント制御部２１１（第２イベント制御部２２１）は、第１入力側転送部２１２（第２入力側転送部２２２）および第１出力側転送部２１３（第２出力側転送部２２３）の両方から処理の終了の通知を受けるとＣＰＵ１１１への割り込みを発行する。その後、第１イベント制御部２１１（第２イベント制御部２２１）は動作を停止する。
【００３１】
スキャン画像処理部２１４は第１入力側転送部２１２から送信された画像データに対してスキャン画像処理を行い、第１出力側転送部２１３に送信する。プリント画像処理部２２４は、プリンタ１３０によるプリントに適合させるようにデータを処理する。具体的には、プリント画像処理部２２４は第２入力側転送部２２２から送信された画像データに対してプリント画像処理を行い、第２出力側転送部２２３に送信する。
【００３２】
演算部１１６がスキャン画像処理を行う際の動作について説明する。ＣＰＵ１１１は第１イベント制御部２１１に対して、演算部１１６の起動を通知する。第１イベント制御部２１１は第１入力側転送部２１２にデータの転送を開始するよう指示し、第１出力側転送部２１３にデータの受信を待機するよう指示する。第１入力側転送部２１２はデータ転送開始の指示に従って、ＤＲＡＭ１１３からディスプレイリストや画像データを読み出すためのＤＭＡ転送リクエストを発行し、ＤＭＡ転送コントローラ２０１に送信する。ＤＭＡ転送コントローラ２０１は第１入力側転送部２１２から受信したＤＭＡ転送リクエストに従ってＤＲＡＭ１１３からデータを読み出し、読み出したデータを第１入力側転送部２１２に送信する。
【００３３】
第１入力側転送部２１２はＤＭＡ転送コントローラ２０１から受信したデータをスキャン画像処理部２１４に転送すると共に、受信したデータの解析を行い、終了コマンドを受信すると第１イベント制御部２１１にその旨を通知する。スキャン画像処理部２１４は、第１入力側転送部２１２から転送されてきたデータに対してスキャン画像処理を行い、処理後のデータを第１出力側転送部２１３に送信する。
【００３４】
第１出力側転送部２１３はスキャン画像処理部２１４から受信したデータをＤＲＡＭ１１３に書き出すためのＤＭＡ転送リクエストを発行すると共に、受信したデータの解析を行い、終了コマンドを受信すると第１イベント制御部２１１にその旨を通知する。ＤＭＡ転送コントローラ２０１は第１出力側転送部２１３から受信したＤＭＡ転送リクエストに従ってＤＲＡＭ１１３にデータの書き出しを行う。最後に、第１イベント制御部２１１は、第１入力側転送部２１２および第１出力側転送部２１３の両方から終了の通知を受け取るとスキャン画像処理を終了し、ＣＰＵ１１１に割り込みを送信する。なお、一般には入力側の転送処理は出力側の転送処理よりも先に終了するので、第１イベント制御部２１１は第１出力側転送部２１３から終了の通知を受け取るとスキャン画像処理を終了してもよい。演算部１１６がプリント画像処理を行う際の動作は上述のスキャン画像処理を行う際の動作と同様である。
【００３５】
図６は、図５の第１入力側転送部２１２の機能および構成を示すブロック図である。第１入力側転送部２１２は、ＤＭＡ転送部３０１と、バッファ転送部３０２と、コマンド解析部３０３と、同期制御部３０４と、バッファ部３０８と、を有する。バッファ部３０８は、バッファコントローラ３０５と、第１バッファ３０６と、第２バッファ３０７と、を有する。第１出力側転送部２１３、第２入力側転送部２２２、第２出力側転送部２２３はそれぞれ、図６に示される第１入力側転送部２１２の構成と同様の構成を有する。
【００３６】
ＤＭＡ転送部３０１は同期制御部３０４からの指示に応じてＤＭＡ転送コントローラ２０１にＤＭＡ転送リクエストを発行する。第１入力側転送部２１２、第２入力側転送部２２２については、ＤＭＡ転送リクエストはＤＲＡＭ１１３からバッファ部３０８にデータを転送するためのリクエストである。第１出力側転送部２１３、第２出力側転送部２２３については、ＤＭＡ転送リクエストはバッファ部３０８からＤＲＡＭ１１３にデータを転送するためのリクエストである。ＤＲＡＭ１１３とバッファ部３０８との間でのデータの転送が完了したら、ＤＭＡ転送コントローラ２０１はその旨をＤＭＡ転送部３０１に通知する。ＤＭＡ転送部３０１は、この通知を受けて同期制御部３０４にデータ転送の完了を通知する。
【００３７】
バッファ転送部３０２は同期制御部３０４からの指示に応じてバッファ部３０８にアクセスする。第１入力側転送部２１２、第２入力側転送部２２２については、バッファ転送部３０２はバッファ部３０８からデータを読み出し、コマンド解析部３０３に送信する。第１出力側転送部２１３、第２出力側転送部２２３については、バッファ転送部３０２はコマンド解析部３０３から受信したデータをバッファ部３０８へ書き込む。バッファ部３０８とコマンド解析部３０３との間でのデータの転送が完了したら、バッファ転送部３０２は同期制御部３０４にデータ転送の完了を通知する。
【００３８】
バッファコントローラ３０５は、データを保持する第１バッファ３０６、第２バッファ３０７への書き込みやそれらからの読み出しを制御するコントローラである。バッファ部３０８への書き込みのためのアクセスがあった場合は、バッファコントローラ３０５は空いているバッファにアクセスする。バッファ部３０８からの読み出しのためのアクセスがあった場合は、バッファコントローラ３０５はデータの溜まっているバッファにアクセスする。これらの動作は書き込みのためのアクセスと読み出しのためのアクセスとが同時に起こった場合には並行して行われる。これにより、ＤＭＡ転送部３０１によるアクセスとバッファ転送部３０２によるアクセスとは並行して行われうる。
【００３９】
コマンド解析部３０３はバッファ転送部３０２とスキャン画像処理部２１４（第２入力側転送部２２２、第２出力側転送部２２３の場合はプリント画像処理部２２４）との間でやりとりされるデータの内容を解析する。コマンド解析部３０３は解析の結果を同期制御部３０４に送信して同期制御部３０４を設定すると共に、第１イベント制御部２１１にも解析の結果を通知する。同期制御部３０４の設定は、例えば、演算部設定コマンド１５３をデコードすることによって得られる、バッファチェンジの制御を行う際に用いられるタイマの設定である。コマンド解析部３０３は、終了コマンド１５７をデコードした場合は第１イベント制御部２１１に対して処理の終了を通知する。コマンド解析部３０３は、画像転送コマンド１５６をデコードした場合は画像データ転送開始を、画像データの最終画素コマンドをデコードした場合は設定データ転送開始を、同期制御部３０４に通知する。
【００４０】
同期制御部３０４は、コマンド解析部３０３における解析の結果得られるデータの属性に応じて転送シーケンスを制御し、転送シーケンスに応じたタイミングでＤＭＡ転送部３０１やバッファ転送部３０２にデータの転送を実行するための指示を与える。転送シーケンスでは、データの属性に応じて高速転送モードと抑制転送モードとの間の遷移が発生する。図４（ｂ）、（ｃ）に関連して後述するように、ＤＭＡ転送部３０１によって発行される一連のＤＭＡ転送リクエストの状態には、高速転送モードのときに実現される高速転送状態と、抑制転送モードのときに実現される抑制転送状態と、がある。同期制御部３０４は、データの属性に応じてモードを切り替えることで、一連の転送リクエストの状態を高速転送状態と抑制転送状態との間で切り替える。
【００４１】
図７は、転送シーケンスの制御を説明するための図である。データ転送が開始されると、転送シーケンスは高速転送モードに遷移する。高速転送モードにおいて、コマンド解析部３０３から同期制御部３０４に画像データの転送の開始が通知されると、転送シーケンスは抑制転送モードに遷移する。この遷移は、ＤＭＡ転送部３０１およびバッファ転送部３０２に対するデータ転送の指示の制御と同期する。一方、抑制転送モードにおいて、設定データの転送の開始が通知されると、転送シーケンスは高速転送モードに遷移する。この遷移は、ＤＭＡ転送部３０１およびバッファ転送部３０２に対するデータ転送の指示の制御と同期する。図２に示されるディスプレイリスト１５０の例では、設定コマンドやＬＵＴデータ１５１の転送中は転送シーケンスが高速転送モードとなり、画像データ１５２の転送中は転送シーケンスが抑制転送モードとなる。
【００４２】
本実施の形態では、転送するデータ量が多い画像データ１５２の転送時に抑制転送モードを用いるが、これに限られない。例えば、ＬＵＴのデータ量が多くなる場合には、ＬＵＴデータ１５１の転送を行う際も抑制転送モードを用いてもよい。つまり、転送するデータ量が多く、集中的なバス１１７へのアクセスが発生してバス１１７が占有されてしまう蓋然性が高いコマンドをデコードした場合、抑制転送モードに遷移することが望ましい。
【００４３】
図６に戻り、転送シーケンスの各モードにおけるデータ転送のための指示について説明する。第１入力側転送部２１２、第２入力側転送部２２２についてのデータ転送のための指示は以下の二つを含む。
（１）バッファ部３０８が空いている場合にＤＭＡ転送部３０１に送信される、転送を開始するための指示。この場合、バッファ部３０８へのデータの溜め込みが行われる。
（２）バッファ部３０８にデータが溜まっている場合にバッファ転送部３０２に送信される、転送を開始するための指示。この場合、バッファ部３０８内のデータの読み出しが行われる。
【００４４】
第１出力側転送部２１３、第２出力側転送部２２３についてのデータ転送のための指示は以下の二つを含む。
（３）バッファ部３０８が空いている場合にバッファ転送部３０２に送信される、転送を開始するための指示。
（４）バッファ部３０８にデータが溜まっている場合にＤＭＡ転送部３０１に送信される、転送を開始するための指示。
【００４５】
データ転送のための指示はＤＭＡ転送部３０１とバッファ転送部３０２との間で同期する形で行われる。図８は、同期制御を説明するフローチャートである。データ転送が開始されると、Ｓ６０１で、同期制御部３０４はＤＭＡ転送部３０１およびバッファ転送部３０２に対して転送の開始を指示する。この指示に応じてＤＭＡ転送部３０１からＤＭＡ転送リクエストが発行される。Ｓ６０２で、同期制御部３０４は転送シーケンスのモードを判定または確認し、高速転送モードであればＳ６０３に、抑制転送モードであればＳ６０４に移行する。
【００４６】
高速転送モードに対応するＳ６０３で、同期制御部３０４はＤＭＡ転送部３０１およびバッファ転送部３０２の両方から転送完了が通知されるまで待機し、それらの通知を両方とも受信した時点でデータ転送が完了したと判定し、Ｓ６０７に移行する。一方、抑制転送モードにおいて、ＤＭＡ転送部３０１およびバッファ転送部３０２の両方から転送完了の通知を受信すると、同期制御部３０４は前回のバッファチェンジから所定の待機期間が経過したか否かを判定する。経過していない場合、同期制御部３０４はバッファチェンジを行わないまま、すなわち次のデータ転送への移行を行わないまま待機する。このため、Ｓ６０４で、同期制御部３０４はタイマを初期化する。Ｓ６０５で、同期制御部３０４は転送完了の通知が発行されているか否か、および待機期間が経過しているか否かを判定する。ＤＭＡ転送部３０１およびバッファ転送部３０２の両方から転送完了の通知が発行されていたとしても、待機期間が経過していない場合は、Ｓ６０６で同期制御部３０４はタイマのカウントアップを行い、再度Ｓ６０５にて終了判定を行う。ＤＭＡ転送部３０１およびバッファ転送部３０２の両方から転送完了の通知を受信し、かつ待機期間が経過したら同期制御部３０４はデータ転送が完了したと判定し、Ｓ６０７に移行する。Ｓ６０７で、同期制御部３０４は受信用のバッファと送信用のバッファとを入れ替えるバッファチェンジのための制御を行う。合わせて同期制御部３０４は転送シーケンスの更新を行う。具体的には、同期制御部３０４は前述のようにコマンド解析部３０３の解析結果を確認し、図７に関連して説明された態様でモードの切替を行う。バッファチェンジの後、同期制御部３０４は次のＤＭＡ転送リクエストの発行を許可する。上記の通り、待機期間は、同期制御部３０４がバッファチェンジが可能となるまで次の指示を発行せずに待機する期間である。
【００４７】
バッファチェンジについて図６を参照して具体的に説明する。例えば、第１バッファ３０６に対してライトを行い、第２バッファ３０７からはリードが行われている場合、ライトおよびリードの両方が完了した時点で次の動作が指示される。このとき、第２バッファ３０７はリードが完了して空になっており、第１バッファ３０６にはライトの完了によりデータが溜まっている。このため、次のライトは空の第２バッファ３０７に対して行われ、リードはデータがある第１バッファ３０６に対して行われる。このように、ライト対象のバッファとリード対象のバッファとを同期して入れ替えることをバッファチェンジと呼ぶ。図８を参照して説明されたように、バッファチェンジのタイミングは転送シーケンスのモードに応じて異なる。
【００４８】
上記のように、本実施の形態では、解析の結果得られるデータの属性（設定データであるか、画像データ等の非設定データであるか）に応じてデータの転送が完了したと判定するための条件を切り替える。これにより、バス１１７上のデータ転送が頻繁に発生するスキャン画像処理時は、ライトおよびリードが完了しても所定の待機期間が経過するまで次のデータ転送が発生しなくなる。
【００４９】
図９（ａ）は、抑制転送モードにおける処理の進行を示す模式図である。抑制転送モードでは、あるバッファチェンジの後のライトおよびリードの両方のデータ転送が完了する時刻Ｔ１において次のバッファチェンジは行われない。同期制御部３０４は、時刻Ｔ１の後、タイマがカウントアップして待機期間が経過したと判定される時刻Ｔ２まで待機する。すなわち、同期制御部３０４は時刻Ｔ２になるまで次のバッファチェンジを行わないので、時刻Ｔ２まで次のデータ転送は開始されない。従って、抑制転送モードではバス１１７の帯域を時刻Ｔ１から時刻Ｔ２までの期間空けることができる。
【００５０】
抑制転送モードにおけるリクエスト競合の処理が図４（ｂ）に示される。スキャン画像処理に係る一連のＤＭＡ転送リクエストについて、リクエスト発行の周期は待機期間以上となる。具体的には、スキャン画像処理に係る一連のＤＭＡ転送リクエストＲＳ１〜ＲＳ４について、ＲＳ１が発行された後、対応するデータのリード／ライトが完了しても待機期間が経過するまでは次のＲＳ２は発行されない。待機期間が経過するとバッファチェンジと共にＲＳ２が発行される。ＲＳ２とＲＳ３との関係についても同様である。ＲＳ３が発行された後、対応するデータのリード／ライトが完了しても待機期間が経過するまでは次のＲＳ４は発行されない。ここで、ＲＳ３に対応するデータのリード／ライトが完了してから待機期間が満了するまでの期間Ｐ１に、プリント画像処理に係るＤＭＡ転送リクエストＲＰ１、ＲＰ２の処理が開始される。例えば、ＲＰ２はＲＳ３ともＲＳ４とも競合しないので、発行後すぐに処理される。その後、ＲＳ４が発行される。これにより、プリント処理に必要な画像転送の帯域が確保できるようになる。図４（ｂ）に示されるスキャン画像処理に係る一連のＤＭＡ転送リクエストＲＳ１〜ＲＳ４の状態は、上述の抑制転送状態である。
【００５１】
図９（ｂ）は、高速転送モードにおける処理の進行を示す模式図である。データ転送が少なくバス１１７の占有が起きにくい設定値等の転送を行う際は、図９（ｂ）に示されるように、ライト、リードのデータ転送が完了した時刻Ｔ１の時点でバッファチェンジを行う。したがって、データ転送速度の抑制が不要な場合には該抑制が発生しにくくなるか発生しなくなる。
【００５２】
高速転送モードに対応する図４（ａ）では、スキャン画像処理に係る一連のＤＭＡ転送リクエストＲＳ１〜ＲＳ５について、待機期間による制限はない。ＲＳ３に対応するデータのリード／ライトが完了した時点で競合がなければ、バッファチェンジと共に次のＲＳ４が発行される。このＲＳ４とプリント画像処理に係るＤＭＡ転送リクエストＲＰ１とが競合し、ＲＰ１の処理が遅れる。ＲＳ５についても同様にプリント画像処理に係るＤＭＡ転送リクエストＲＰ２と競合する。図４（ａ）に示されるスキャン画像処理に係る一連のＤＭＡ転送リクエストＲＳ１〜ＲＳ４の状態は上述の高速転送状態である。
【００５３】
図４（ｂ）に示されるスキャン画像処理に係る一連のＤＭＡ転送リクエストＲＳ１〜ＲＳ４の抑制転送状態は、図４（ａ）に示される高速転送状態よりも、プリント画像処理に係るＤＭＡ転送リクエストがより割り込みやすい状態である。本実施の形態において、抑制転送状態ではリクエスト間の間隔が比較的空いており、高速転送状態ではリクエスト間の間隔が比較的密であるとも表現できる。あるいはまた、抑制転送状態と高速転送状態との間で、ＤＭＡ転送リクエストがバス１１７を占有する頻度が切り替えられると表現できる。あるいはまた、抑制転送状態では、スキャン画像処理に係る一連のＤＭＡ転送リクエストについて、あるＤＭＡ転送リクエストにより生じるバス占有期間と、次のＤＭＡ転送リクエストにより生じるバス占有期間と、の間に隙間を空けて両者を離す。これにより、プリント画像処理に係るＤＭＡ転送リクエストが割り込みやすくなる。
【００５４】
また、本実施の形態に係る複合機１００では、Ｎライン分の処理が終わるごとにＣＰＵ１１１から演算部１１６に起動の割り込みがなされている。起動された後は演算部１１６がディスプレイリストに応じて画像転送やＬＵＴ転送を切り替えながら実行していく。ＣＰＵ１１１がこの転送状態を監視し、ＣＰＵ１１１が都度演算部１１６のデータ転送速度を制御することとすると、負荷が重く処理が大幅に遅くなる可能性がある。しかしながら、本実施の形態に係るＣＰＵ１１１とは無関係に行われる自律的な制御により、データ転送の転送シーケンスが自律的に切り替えられるようになるため、演算部１１６が動作を止めること無く適切なタイミングで動作することができる。
【００５５】
また、本実施の形態に係る複合機１００では、第１入力側転送部２１２、第１出力側転送部２１３、第２入力側転送部２２２、第２出力側転送部２２３のそれぞれに転送シーケンスに応じたモード切り替え機能を実装する。これにより、画像処理によって画像の大きさが変わる場合にも適切なデータ転送速度の切り替えを行うことができる。
【００５６】
例えば、スキャン画像処理部２１４において入力画像の拡大処理が行われる場合、出力側で転送するデータ量が大きくなる。本実施の形態では、第１出力側転送部２１３は第１入力側転送部２１２と同様のモード切り替え機能を有するので、出力データの増大にも対応することができる。
【００５７】
なお、入力側および出力側のうち転送する画像データが大きい方が、バス１１７の帯域に影響を与えやすい。このことから、スキャン画像処理部２１４が縮小処理を行う場合は第１入力側転送部２１２に、拡大処理を行う場合は第１出力側転送部２１３に、それぞれモード切り替え機能を実装するまたは有効化する構成するとしてもよい。
【００５８】
（第２の実施の形態）
第２の実施の形態の主な目的は、演算部でデータ転送が行われない間に消費される電力を抑えることにある。図１０は、第２の実施の形態に係る第１入力側転送部６１２の機能および構成を示すブロック図である。本実施の形態では、第１入力側転送部６１２にクロック制御部６０８を設ける。第１出力側転送部、第２入力側転送部、第２出力側転送部についても同様である。
【００５９】
クロック制御部６０８は、スキャン画像処理部２１４に供給するクロックのオン・オフを、同期制御部６０４から送信されるクロック制御信号に応じて切り替える制御回路である。
【００６０】
同期制御部６０４は、データ転送の転送シーケンスに応じて、クロック制御部６０８にクロック制御信号を発行する。同期制御部６０４は、抑制転送モードにおいて、ＤＭＡ転送部３０１およびバッファ転送部３０２の両方からデータ転送の完了が通知されてから待機期間が経過するまでの間、クロックの供給を停止させるようクロック制御部６０８を制御する。図９（ａ）を参照して説明すると、時刻Ｔ１から時刻Ｔ２までの期間がクロック供給をオフにする期間となる。そして、再度データ転送を開始する際には同期制御部６０４はクロック供給を開始するようクロック制御部６０８を制御する。高速転送モードにおいてはクロック供給は常にオンとなるよう制御される。
【００６１】
本実施の形態に係る複合機によると、第１の実施の形態に係る複合機１００により奏される作用効果と同様の作用効果が奏される。加えて、データ転送が行われない間にスキャン画像処理部２１４にクロックの供給が行われていると、画像を処理していない間に電力を消費することとなる。これに対して、本実施の形態では、同期制御部６０４によりクロック制御部６０８を上記のように制御する。これにより、データ転送が行われない間は、スキャン画像処理部２１４へのクロック供給が止まるので、不要な電力の消費を抑えることができる。
【００６２】
（第３の実施の形態）
第３の実施の形態の主な目的は、データの属性に応じて、ＤＭＡ転送リクエストのデータ量を制御し、バス１１７の帯域を有効に利用しつつ適切なタイミングで優先度の高いＤＭＡ転送に帯域を割り当てることを可能とすることにある。図１１は、第３の実施の形態に係る第１入力側転送部７１２の機能および構成を示すブロック図である。本実施の形態では、第１入力側転送部７１２にＤＭＡ分割部７０９を設ける。第１出力側転送部、第２入力側転送部、第２出力側転送部についても同様である。
【００６３】
ＤＭＡ分割部７０９は、同期制御部７０４の転送シーケンスに応じて、ＤＭＡ転送部３０１からのＤＭＡ転送リクエストを分割する際の分割数を切り替える制御回路である。
【００６４】
図１２は、ＤＭＡ分割部７０９における分割制御を説明するフローチャートである。Ｓ１００１で、ＤＭＡ分割部７０９はＤＭＡ転送部３０１からのＤＭＡ転送リクエストを受信する。Ｓ１００２で、ＤＭＡ分割部７０９は同期制御部７０４の転送シーケンスを参照する。ＤＭＡ分割部７０９は転送シーケンスのモードが高速転送モードである場合はＳ１００３に移行する。Ｓ１００３で、ＤＭＡ分割部７０９はＤＭＡ転送部３０１からのＤＭＡ転送リクエストを、そのデータ量を変化させずに発行する。例えば、ＤＭＡ分割部７０９はＤＭＡ転送部３０１からのＤＭＡ転送リクエストをそのままＤＭＡ転送コントローラ２０１に送信する。Ｓ１００２でＤＭＡ分割部７０９は転送シーケンスのモードが抑制転送モードである場合はＳ１００４に移行する。Ｓ１００４で、ＤＭＡ分割部７０９はＤＭＡ転送部３０１からのＤＭＡ転送リクエストを分割し、複数の新たなＤＭＡ転送リクエスト（分割リクエストと称す）を生成し、ＤＭＡ転送コントローラ２０１に発行する。
【００６５】
Ｓ１００４における分割リクエストの生成について説明する。  図１３（ａ）〜（ｅ）は、ＤＭＡ転送リクエストの分割を説明するための図である。図１３（ａ）〜（ｅ）ではＤＭＡ転送部３０１から発行されたＤＭＡ転送リクエスト（図１３（ａ））の連続転送回数をＲ、分割により得られる分割リクエスト（図１３（ｂ）〜（ｄ））の連続転送回数をＴで表す。分割リクエストの連続転送回数Ｔはコマンド解析部３０３が演算部設定コマンドをデコードした際に設定される。
【００６６】
ＤＭＡ分割部７０９はＤＭＡ転送部３０１からのＤＭＡ転送リクエスト（図１３（ａ））の連続転送回数Ｒと分割リクエストの連続転送回数Ｔとを比較し、Ｒ＞Ｔの場合、連続転送回数Ｔを有する分割リクエスト（図１３（ｂ））を生成する。この分割リクエストは、ＤＭＡ転送部３０１からのＤＭＡ転送リクエストの連続転送回数ＲをＴに置き換えることで生成されてもよい。なお、Ｔ≧Ｒの場合、ＤＭＡ分割部７０９はＤＭＡ転送部３０１からのＤＭＡ転送リクエストをそのままＤＭＡ転送コントローラ２０１に送信する（分割しない）。
【００６７】
次に、ＤＭＡ分割部７０９はＲ−Ｔ（すなわち、分割後の残りの連続転送回数）とＴとを比較し、Ｒ−Ｔ＞Ｔの場合、連続転送回数Ｔを有する分割リクエスト（図１３（ｃ））を生成する。この分割リクエストは、ＤＭＡ転送部３０１からのＤＭＡ転送リクエストの連続転送回数ＲをＴに置き換えると共に他のフィールドに大きさＴのオフセットを加えることで生成されてもよい。
【００６８】
次に、ＤＭＡ分割部７０９はＲ−２ＴとＴとを比較し、Ｒ−２Ｔ＞Ｔの場合、連続転送回数Ｔを有する分割リクエスト（図１３（ｄ））を生成する。この分割リクエストは、ＤＭＡ転送部３０１からのＤＭＡ転送リクエストの連続転送回数ＲをＴに置き換えると共に他のフィールドに大きさ２Ｔのオフセットを加えることで生成されてもよい。
【００６９】
次に、ＤＭＡ分割部７０９はＲ−３ＴとＴとを比較し、Ｒ−３Ｔ≦Ｔの場合、連続転送回数を未転送分の連続転送回数（Ｒ−３Ｔ）に設定した分割リクエスト（図１３（ｅ））を生成する。この分割リクエストは、ＤＭＡ転送部３０１からのＤＭＡ転送リクエストの連続転送回数ＲをＲ−３Ｔに置き換えると共に他のフィールドに大きさ３Ｔのオフセットを加えることで生成されてもよい。
【００７０】
図１２に戻り、Ｓ１００５で、ＤＭＡ分割部７０９は、発行済みの分割リクエストの連続転送回数の合計がＲ回に達していない場合はＳ１００４に移行して、再度分割リクエストの生成、発行を行う。一方、連続転送回数の合計がＲに達している場合は、ＤＭＡ分割部７０９は分割制御を完了し、ＤＭＡ転送部３０１から次のＤＭＡ転送リクエストを受けるまで待機する
【００７１】
本実施の形態に係る複合機によると、ＤＭＡ分割部７０９は抑制転送モードにおいてＤＭＡ転送リクエストを分割し、高速転送モードにおいて分割を行わない。これにより、同期制御部７０４の転送シーケンスに応じて、分割制御が切り替えられる。その結果、転送シーケンスのモードに応じてＤＭＡ転送リクエストの帯域利用率を切り替えることができる。具体的には、演算部１１６の設定値の読み出し等、データ量が少なくかつ高速な転送が望まれるデータ転送については分割制御を行わず優先的なバス帯域の利用を許す。一方で、画像データの読み出し等、データ量が多いデータ転送については、他のデバイスがバス１１７を利用できない期間が比較的多く発生する。本実施の形態ではこのようなデータ転送について、ＤＭＡ転送リクエストを複数の分割リクエストに分割するので、各分割リクエストにより転送されるデータの量は元のＤＭＡ転送リクエストにより転送されるべきデータの量よりも少なくなる。これにより、図４（ｃ）のように他のデバイスから発行されるＤＭＡ転送リクエストが割り込みやすくなる。具体的には、プリント画像処理に係るＤＭＡ転送リクエストＲＰ１、ＲＰ２はスキャン画像処理に係る一連のＤＭＡ転送リクエスト（の分割リクエスト）ＲＳ’１、ＲＳ’２、ＲＳ’３、ＲＳ’４と競合する。しかしながら、各分割リクエストがバス１１７を占有する期間は比較的短いので、ＲＰ１やＲＰ２の処理が待たされる時間も比較的短くなる。これは、「割り込みやすい状態」の一態様である。
【００７２】
このように本実施の形態に係る複合機によると、スキャナ側で転送シーケンスに応じてバス帯域を占有する頻度を切り替えることで、並行動作を可能としつつ、プリンタのようにリアルタイムな動作が要求されるデバイスのデータ転送を優先的に行うことができる。
【００７３】
以上、実施の形態に係る複合機の構成と動作について説明した。これらの実施の形態は例示であり、その各構成要素や各処理の組み合わせにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
【００７４】
第１から第３の実施の形態では、データの属性として、設定データであるか画像データ等の非設定データであるかの別を採用する場合を説明したが、これに限られない。例えば、データの量についてしきい値を設定し、データの量が該しきい値より多いか少ないかの別をデータの属性として採用してもよい。あるいはまた、データの属性は、実施の形態に係る技術的思想が適用されるアプリケーションに応じて設定されてもよい。
【００７５】
第１から第３の実施の形態では、主にスキャン画像処理に係るＤＭＡ転送リクエストとプリント画像処理に係るＤＭＡ転送リクエストとが競合する場合について説明したが、これに限られない。任意の第１処理に係るＤＭＡ転送リクエストと任意の第２処理に係るＤＭＡ転送リクエストとの競合が生じうる場合に、実施の形態に係る技術的思想を適用可能である。例えば、第１処理と第２処理との間に優先度の差があってもよい。この場合、優先度の低い処理について転送シーケンスによるモード切り替えを適用することで、並行処理を行いつつ優先度の高い処理を優先することができる。
【００７６】
第１から第３の実施の形態では、ＤＭＡ転送リクエストが割り込みやすくなる態様として、ＤＭＡ転送リクエスト間の間隔を空ける場合と、各リクエストの占有期間を短くする場合と、を説明したがこれに限られない。例えば、ＤＭＡ転送リクエストに優先度を含め、転送シーケンスに応じて該優先度を設定してもよい。この場合、抑制転送モードであれば優先度を比較的低く設定してもよい。
【００７７】
第１から第３の実施の形態では、コマンドを解析して転送シーケンスのモードを切り替える機能を入力側転送部や出力側転送部が有する場合について説明したが、これに限られない。例えば、当該機能をＤＭＡ転送コントローラに実装してもよい。
【符号の説明】
【００７８】
１００  複合機、  １１０  制御部、  １２０  スキャナ、  １３０  プリンタ。
【図１】
2018185762.tif 000003
【図２】
2018185762.tif 000004
【図３】
2018185762.tif 000005
【図４】
2018185762.tif 000006
【図５】
2018185762.tif 000007
【図６】
2018185762.tif 000008
【図７】
2018185762.tif 000009
【図８】
2018185762.tif 000010
【図９】
2018185762.tif 000011
【図１０】
2018185762.tif 000012
【図１１】
2018185762.tif 000013
【図１２】
2018185762.tif 000014
【図１３】
2018185762.tif 000015