(57)【要約】【課題】データを複数の分割データに分けて、ディスクリプターを用いて転送先に出力する場合に、ディスクリプターを新たに作成することなく、分割データの転送先を変更できるデータ転送制御装置を提供する。【解決手段】第１のディスクリプター生成部３３は、複数の分割データのそれぞれをＤＲＡＭ１３に書き込むために、複数の分割データのそれぞれに割り当てられ、各分割データの転送先を示す第１のディスクリプターを生成する。第１の転送先変更設定部３７は、転送先を変更すべき分割データに割り当てられた第１のディスクリプターに対して、転送先を変更する設定となる第１の設定をする。バス制御部２３は、マスター１１が分割データをバス２１に出力する前に、分割データに割り当てられた第１のディスクリプターにおいて第１の設定がされているかを判定し、第１の設定がされていると判定した場合、マスター１１からバス２１に出力された分割データをＳＲＡＭ１５に転送する制御をする。【選択図】図４
2014164395.tif 000002
【特許請求の範囲】
【請求項１】
バスと、
前記バスに接続されており、データを複数の分割データに分けて、前記複数の分割データを順番に前記バスに出力するマスターと、
前記バスに接続された第１のスレーブと、
前記バスに接続された第２のスレーブと、
前記複数の分割データのそれぞれを前記第１のスレーブで処理をするために、前記複数の分割データのそれぞれに割り当てられ、各分割データの転送先を示す第１のディスクリプターを生成する第１のディスクリプター生成部と、
転送先を変更すべき前記分割データに割り当てられた前記第１のディスクリプターに対して、転送先を変更する設定となる第１の設定をする第１の転送先変更設定部と、
前記マスターが前記分割データを前記バスに出力する前に、前記分割データに割り当てられた前記第１のディスクリプターにおいて前記第１の設定がされているかを判定する第１の判定部を含み、前記第１の判定部が前記第１の設定がされていると判定しない場合、前記マスターから前記バスに出力された前記分割データを前記第１のスレーブに転送し、前記第１の判定部が前記第１の設定がされていると判定した場合、前記マスターから前記バスに出力された前記分割データを前記第２のスレーブに転送する制御となる第１の転送制御を、前記複数の分割データのそれぞれに対して実行するバス制御部と、を備えるデータ転送制御装置。
【請求項２】
前記第１の転送先変更設定部は、前記データをデバッグするときに、前記データのうちデータ化けが発生した部分を含む前記分割データに割り当てられた前記第１のディスクリプターに対して、前記第１の設定をする請求項１に記載のデータ転送制御装置。
【請求項３】
前記第１のスレーブで処理をする場合に前記第１のスレーブを選択し、前記第２のスレーブで処理をする場合に前記第２のスレーブを選択する第１のスレーブ選択部を備え、
前記バス制御部は、前記第１の判定部によって前記第１の設定がされていると判定されたときに、前記第２のスレーブを選択して、前記第１の設定がされている前記第１のディスクリプターが割り当てられた前記分割データを、前記第２のスレーブに転送させる転送先変更処理をする第２のスレーブ選択部を含み、
前記バス制御部は、前記第１のスレーブ選択部が、前記第１のスレーブを選択し、前記第２のスレーブを非選択にしている状態で、前記マスターが、前記複数の分割データを順番に前記バスに出力している場合に、前記第２のスレーブ選択部に前記転送先変更処理をさせる請求項１又は２に記載のデータ転送制御装置。
【請求項４】
前記複数の分割データのそれぞれに付加されたヘッダーを前記第１のスレーブで処理するために、前記ヘッダーのそれぞれに割り当てられ、各ヘッダーの転送先を示す第２のディスクリプターを生成する第２のディスクリプター生成部と、
前記第２のディスクリプターのそれぞれに対して、転送先を変更する設定となる第２の設定をする第２の転送先変更設定部と、を備え、
前記バス制御部は、前記マスターが前記ヘッダーを前記バスに出力する前に、前記ヘッダーに割り当てられた前記第２のディスクリプターにおいて前記第２の設定がされているかを判定する第２の判定部を含み、前記第２の判定部が前記第２の設定がされていると判定しない場合、前記マスターから前記バスに出力された前記ヘッダーを前記第１のスレーブに転送し、前記第２の判定部が前記第２の設定がされていると判定した場合、前記マスターから前記バスに出力された前記ヘッダーを前記第２のスレーブに転送する制御となる第２の転送制御を、前記複数の分割データのそれぞれに付加された前記ヘッダー対して実行する請求項１〜３のいずれか一項に記載のデータ転送制御装置。
【請求項５】
前記複数の分割データ及び前記複数の分割データのそれぞれに付加された前記ヘッダーを前記第１のスレーブに転送する第１の転送、及び、前記複数の分割データを前記第１のスレーブに転送し、前記複数の分割データのそれぞれに付加された前記ヘッダーを前記第２のスレーブに転送する第２の転送のいずれか一方を選択できる転送選択部を備え、
前記転送選択部が、前記第１の転送を選択した場合、前記第１の転送先変更設定部は、前記第１のディスクリプターのそれぞれに対して、前記第１の設定をせず、かつ前記第２の転送先変更設定部は、前記第２のディスクリプターのそれぞれに対して、前記第２の設定をせず、
前記転送先選択部が、前記第２の転送を選択した場合、前記第１の転送先変更設定部は、前記第１のディスクリプターのそれぞれに対して、前記第１の設定をせず、かつ前記第２の転送先変更設定部は、前記第２のディスクリプターのそれぞれに対して、前記第２の設定をする請求項４に記載のデータ転送制御装置。
【請求項６】
前記マスターは、前記複数の分割データを順番に前記バスに出力する処理の実行中に、前記複数の分割データと別のデータを前記第１のスレーブに転送する割り込み処理が発生したとき、前記出力を中断し、
前記第１の転送先変更設定部は、前記マスターによって前記出力が中断されると、前記複数の分割データのうち、前記バスに出力されていない残りの分割データに割り当てられた前記第１のディスクリプターのそれぞれに対して、前記第１の設定をし、
前記バス制御部は、前記第１の転送制御をすることにより、前記第１の設定がされた前記残りの分割データを前記第２のスレーブに転送する請求項１〜５のいずれか一項に記載のデータ転送制御装置。
【請求項７】
前記マスターは、前記複数の分割データを順番に前記バスに出力する処理の実行中に、前記複数の分割データと別のデータを前記第１のスレーブに転送する割り込み処理が発生したとき、前記出力を中断し、
前記第１のディスクリプターは、前記データのうちデータ化けが発生した部分を含む前記分割データを前記第２のスレーブに転送するために、前記第１の設定がされる第１の領域と、前記マスターが前記複数の分割データを順番に前記バスに出力する処理が中断された場合に、前記複数の分割データのうち、前記バスに出力されていない残りの分割データを前記第２のスレーブに転送するために、前記第１の設定がされる第２の領域と、を含み、
前記第１の転送先変更設定部は、前記マスターによって前記出力が中断されると、前記残りの分割データのうち、前記バスに最初に出力される前記分割データに割り当てられた前記第１のディスクリプターの前記第２の領域に前記第１の設定をし、
前記バス制御部は、前記第２の領域に前記第１の設定がされていると、前記残りの分割データを前記第２のスレーブに転送する請求項１〜５のいずれか一項に記載のデータ転送制御装置。
【請求項８】
請求項１〜７のいずれか一項に記載のデータ転送制御装置と、
前記データ転送制御装置によって転送された前記データである画像データで示される画像を用紙に形成する画像形成部と、を備える画像形成装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ディスクリプターを用いたデータ転送制御に関する。
【背景技術】
【０００２】
画像データ(例えば、原稿をスキャナーで読み取ることによって得られた画像データ)を、メモリーに書き込む処理において、画像データが大きい場合、連続するアドレスの記憶領域を必ずしも確保できない。そこで、画像データを複数の分割データに分けて、アドレスが不連続な記憶領域に格納することにより、メモリー空間を効率的に利用している。この場合、アドレスが不連続な記憶領域に書き込まれた分割データをつなげて元の画像データに戻すことができるように、複数の分割データの書き込み時及び複数の分割データの読み出し時に、ディスクリプターが用いられる。
【０００３】
ディスクリプターを用いた技術として、メモリーの各ディスクリプターにデバッグにおいて使用したディスクリプターを判別し易くするための個別の識別ナンバを格納する領域を設けたデータ転送制御装置が提案されている(例えば、特許文献１参照)。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００４−１１０１５９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
データを複数の分割データに分けて、ディスクリプターを用いてスレーブに順番に出力する処理(例えば、メモリーに順番に書き込む処理)において、何らかの事情により、分割データの転送先(言い換えれば、出力先)を別のスレーブに変更したいことがある。これは、ディスクリプターを新たに作成することにより実現できる。しかし、ディスクリプターは、数百、数千の単位で作成されるので、ディスクリプターを新たに作成することは、その分だけソフトウェアの処理が増えることになる。
【０００６】
本発明は、データを複数の分割データに分けて、ディスクリプターを用いて転送先に出力する場合に、ディスクリプターを新たに作成することなく、分割データの転送先を変更できるデータ転送制御装置、及び、それを備えた画像形成装置を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記目的を達成する本発明の一局面に係るデータ転送制御装置は、バスと、前記バスに接続されており、データを複数の分割データに分けて、前記複数の分割データを順番に前記バスに出力するマスターと、前記バスに接続された第１のスレーブと、前記バスに接続された第２のスレーブと、前記複数の分割データのそれぞれを前記第１のスレーブで処理をするために、前記複数の分割データのそれぞれに割り当てられ、各分割データの転送先を示す第１のディスクリプターを生成する第１のディスクリプター生成部と、転送先を変更すべき前記分割データに割り当てられた前記第１のディスクリプターに対して、転送先を変更する設定となる第１の設定をする第１の転送先変更設定部と、前記マスターが前記分割データを前記バスに出力する前に、前記分割データに割り当てられた前記第１のディスクリプターにおいて前記第１の設定がされているかを判定する第１の判定部を含み、前記第１の判定部が前記第１の設定がされていると判定しない場合、前記マスターから前記バスに出力された前記分割データを前記第１のスレーブに転送し、前記第１の判定部が前記第１の設定がされていると判定した場合、前記マスターから前記バスに出力された前記分割データを前記第２のスレーブに転送する制御となる第１の転送制御を、前記複数の分割データのそれぞれに対して実行するバス制御部と、を備える。
【０００８】
本発明の一局面に係るデータ転送制御装置において、第１の転送先変更設定部は、転送先を変更したい分割データが割り当てられた第１のディスクリプターに対して、転送先を変更する設定となる第１の設定をする。バス制御部は、第１の転送制御をする。すなわち、バス制御部の第１の判定部は、マスターによって分割データがバスに出力される前に、その分割データに割り当てられた第１のディスクリプターにおいて第１の設定がされているか否かを判定する。そして、バス制御部は、第１の判定部が第１の設定がされていると判定しない場合、分割データを第１のスレーブに転送し、第１の判定部が第１の設定がされていると判定した場合、分割データを第２のスレーブに転送する制御を、複数の分割データのそれぞれに対して実行する。従って、本発明の一局面に係るデータ転送制御装置によれば、データを複数の分割データに分けて、ディスクリプターを用いて転送先に出力する場合に、ディスクリプターを新たに作成することなく、分割データの転送先を変更できる。
【０００９】
上記構成において、前記第１の転送先変更設定部は、前記データをデバッグするときに、前記データのうちデータ化けが発生した部分を含む前記分割データに割り当てられた前記第１のディスクリプターに対して、前記第１の設定をする。
【００１０】
この構成によれば、デバッグ時において、データ化けが発生した部分を含む分割データを第２のスレーブに転送することを、その分割データに割り当てられた第１のディスクリプターに対して第１の設定をすることにより実現できる。
【００１１】
上記構成において、前記第１のスレーブで処理をする場合に前記第１のスレーブを選択し、前記第２のスレーブで処理をする場合に前記第２のスレーブを選択する第１のスレーブ選択部を備え、前記バス制御部は、前記第１の判定部によって前記第１の設定がされていると判定されたときに、前記第２のスレーブを選択して、前記第１の設定がされている前記第１のディスクリプターが割り当てられた前記分割データを、前記第２のスレーブに転送させる転送先変更処理をする第２のスレーブ選択部を含み、前記バス制御部は、前記第１のスレーブ選択部が、前記第１のスレーブを選択し、前記第２のスレーブを非選択にしている状態で、前記マスターが、前記複数の分割データを順番に前記バスに出力している場合に、前記第２のスレーブ選択部に前記転送先変更処理をさせる。
【００１２】
この構成において、バス制御部は、複数の分割データの全てを第１のスレーブに転送し、第１の設定がされた第１のディスクリプターが割り当てられた分割データについては第２のスレーブにも転送する。この構成によれば、マスターにとって、第１のスレーブに複数の分割データを出力する動作と全く同じ動作で、データ化けが発生した部分を含む分割データを第２のスレーブに出力することができる。
【００１３】
データ化けが発生した部分を含む分割データを第２のスレーブに出力するために、複数の分割データを第１のスレーブに出力する動作と異なる動作をマスターにさせることにより、新たな問題が発生した場合、デバッグが複雑化する。この構成によれば、データ化けが発生した部分を含む分割データを第２のスレーブに出力する動作において、マスターは複数の分割データを第１のスレーブに出力する動作と同じ動作をするので、上記新たな問題が発生することを回避できる。
【００１４】
上記構成において、前記複数の分割データのそれぞれに付加されたヘッダーを前記第１のスレーブで処理するために、前記ヘッダーのそれぞれに割り当てられ、各ヘッダーの転送先を示す第２のディスクリプターを生成する第２のディスクリプター生成部と、前記第２のディスクリプターのそれぞれに対して、転送先を変更する設定となる第２の設定をする第２の転送先変更設定部と、を備え、前記バス制御部は、前記マスターが前記ヘッダーを前記バスに出力する前に、前記ヘッダーに割り当てられた前記第２のディスクリプターにおいて前記第２の設定がされているかを判定する第２の判定部を含み、前記第２の判定部が前記第２の設定がされていると判定しない場合、前記マスターから前記バスに出力された前記ヘッダーを前記第１のスレーブに転送し、前記第２の判定部が前記第２の設定がされていると判定した場合、前記マスターから前記バスに出力された前記ヘッダーを前記第２のスレーブに転送する制御となる第２の転送制御を、前記複数の分割データのそれぞれに付加された前記ヘッダー対して実行する。
【００１５】
この構成によれば、第１のスレーブに出力する複数の分割データを一つのデータ(例えば、画像データ)として処理する場合、複数の分割データのそれぞれからヘッダーを除去して、複数の分割データを第１のスレーブに出力する。従って、複数の分割データのそれぞれにヘッダーが付加された状態で、第１のスレーブに出力し、複数の分割データのそれぞれからヘッダーを除去する処理をする場合と比べて、処理の工程を少なくできる。
【００１６】
上記構成において、前記複数の分割データ及び前記複数の分割データのそれぞれに付加された前記ヘッダーを前記第１のスレーブに転送する第１の転送、及び、前記複数の分割データを前記第１のスレーブに転送し、前記複数の分割データのそれぞれに付加された前記ヘッダーを前記第２のスレーブに転送する第２の転送のいずれか一方を選択できる転送選択部を備え、前記転送選択部が、前記第１の転送を選択した場合、前記第１の転送先変更設定部は、前記第１のディスクリプターのそれぞれに対して、前記第１の設定をせず、かつ前記第２の転送先変更設定部は、前記第２のディスクリプターのそれぞれに対して、前記第２の設定をせず、前記転送先選択部が、前記第２の転送を選択した場合、前記第１の転送先変更設定部は、前記第１のディスクリプターのそれぞれに対して、前記第１の設定をせず、かつ前記第２の転送先変更設定部は、前記第２のディスクリプターのそれぞれに対して、前記第２の設定をする。
【００１７】
この構成によれば、第１の転送と第２の転送とを選択することができる。
【００１８】
上記構成において、前記マスターは、前記複数の分割データを順番に前記バスに出力する処理の実行中に、前記複数の分割データと別のデータを前記第１のスレーブに転送する割り込み処理が発生したとき、前記出力を中断し、前記第１の転送先変更設定部は、前記マスターによって前記出力が中断されると、前記複数の分割データのうち、前記バスに出力されていない残りの分割データに割り当てられた前記第１のディスクリプターのそれぞれに対して、前記第１の設定をし、前記バス制御部は、前記第１の転送制御をすることにより、前記第１の設定がされた前記残りの分割データを前記第２のスレーブに転送する。
【００１９】
複数の分割データを順番にバスに出力する処理の実行中に、複数の分割データと別のデータを第１のスレーブに転送する割り込み処理が発生することにより、複数の分割データをバスに出力する処理が中断することがある。中断期間が長くなることや、この中断を解消するためにソフトウェア処理の負担が大きくなることは、データ転送制御装置のパフォーマンスが低下する原因となる。
【００２０】
この構成によれば、複数の分割データのうち、バスに出力していない残りの分割データに割り当てられた第１のディスクリプターに対して、第１の設定をすることにより、残りの分割データを第２のスレーブに転送することができる。よって、ソフトウェア処理の負担を大きくすることなく、中断期間を解消できるので、データ転送制御装置のパフォーマンスの低下を抑制できる。
【００２１】
上記構成において、前記マスターは、前記複数の分割データを順番に前記バスに出力する処理の実行中に、前記複数の分割データと別のデータを前記第１のスレーブに転送する割り込み処理が発生したとき、前記出力を中断し、前記第１のディスクリプターは、前記データのうちデータ化けが発生した部分を含む前記分割データを前記第２のスレーブに転送するために、前記第１の設定がされる第１の領域と、前記マスターが前記複数の分割データを順番に前記バスに出力する処理が中断された場合に、前記複数の分割データのうち、前記バスに出力されていない残りの分割データを前記第２のスレーブに転送するために、前記第１の設定がされる第２の領域と、を含み、前記第１の転送先変更設定部は、前記マスターによって前記出力が中断されると、前記残りの分割データのうち、前記バスに最初に出力される前記分割データに割り当てられた前記第１のディスクリプターの前記第２の領域に前記第１の設定をし、前記バス制御部は、前記第２の領域に前記第１の設定がされていると、前記残りの分割データを前記第２のスレーブに転送する。
【００２２】
この構成によれば、中断後、バスに最初に出力される分割データに割り当てられた第１のディスクリプターの第２の領域に第１の設定をすることにより、その分割データを含む残りの分割データを第２のスレーブに転送することができる。よって、ソフトウェア処理の負担を大きくすることなく、中断期間を解消できるので、データ転送制御装置のパフォーマンスの低下を抑制できる。
【００２３】
また、この構成では、中断後、バスに最初に出力される分割データより後の分割データに割り当てられた第１のディスクリプターのそれぞれにおいて、第２の領域に第１の設定をしなくても、それらの分割データを第２のスレーブに転送することができる。よって、第１の転送先変更設定部での第１の設定の処理を少なくすることができる。
【００２４】
本発明の他の局面に係る画像形成装置は、前記データ転送制御装置と、前記データ転送制御装置によって転送された前記データである画像データで示される画像を用紙に形成する画像形成部と、を備える。
【００２５】
本発明の他の局面に係る画像形成装置は、本発明の一局面に係るデータ転送制御装置を備えるので、本発明の一局面に係るデータ転送制御装置と同様の作用効果を有する。
【発明の効果】
【００２６】
本発明によれば、データを複数の分割データに分けて、ディスクリプターを用いて転送先に出力する場合に、ディスクリプターを新たに作成することなく、分割データの転送先を変更できる。
【図面の簡単な説明】
【００２７】
【図１】本実施形態に係るデータ転送制御装置を備えた画像形成装置の内部構造の概略を説明する説明図である。
【図２】図１に示す画像形成装置の構成を示すブロック図である。
【図３】本実施形態に係るデータ転送制御装置の構成を示すブロック図である。
【図４】本実施形態に係るデータ転送制御装置に備えられるＣＰＵ及びメインメモリーによって実現される機能ブロック群を示すブロック図である。
【図５】第１のディスクリプターや第２のディスクリプターの具体例となるディスクリプターを説明する説明図である。
【図６】ディスクリプターを用いて、複数の分割データをメモリーに書き込む処理を説明する説明図である。
【発明を実施するための形態】
【００２８】
以下、図面に基づいて本発明の実施形態を詳細に説明する。図１は、本発明の一実施形態に係るデータ転送制御装置を備えた画像形成装置１の内部構造の概略を説明する説明図である。画像形成装置１は、例えば、コピー、プリンター、スキャナー及びファクシミリの機能を有するデジタル複合機に適用することができる。画像形成装置１は、装置本体１００、装置本体１００の上に配置された原稿読取部２００、原稿読取部２００の上に配置された原稿給送部３００及び装置本体１００の上部前面に配置された操作部４００を備える。
【００２９】
原稿給送部３００は、自動原稿送り装置として機能し、原稿載置部３０１に置かれた複数枚の原稿を連続的に原稿読取部２００で読み取ることができるように送ることができる。
【００３０】
原稿読取部２００は、露光ランプ等を搭載したキャリッジ２０１、ガラス等の透明部材により構成された原稿台２０３、不図示のＣＣＤ(Charge Coupled Device)センサー及び原稿読取スリット２０５を備える。原稿台２０３に載置された原稿を読み取る場合、キャリッジ２０１を原稿台２０３の長手方向に移動させながらＣＣＤセンサーにより原稿を読み取る。これに対して、原稿給送部３００から給送された原稿を読み取る場合、キャリッジ２０１を原稿読取スリット２０５と対向する位置に移動させて、原稿給送部３００から送られてきた原稿を、原稿読取スリット２０５を通してＣＣＤセンサーにより読み取る。ＣＣＤセンサーは読み取った原稿を画像データとして出力する。
【００３１】
装置本体１００は、用紙貯留部１０１、画像形成部１０３及び定着部１０５を備える。用紙貯留部１０１は、装置本体１００の最下部に配置されており、用紙の束を貯留することができる用紙トレイ１０７を備える。用紙トレイ１０７に貯留された用紙の束において、最上位の用紙がピックアップローラー１０９の駆動により、用紙搬送路１１１へ向けて送出される。用紙は、用紙搬送路１１１を通って、画像形成部１０３へ搬送される。
【００３２】
画像形成部１０３は、搬送されてきた用紙にトナー画像を形成する。画像形成部１０３は、感光体ドラム１１３、露光部１１５、現像部１１７及び転写部１１９を備える。露光部１１５は、画像データ(原稿読取部２００から出力された画像データ、パソコンから送信された画像データ、ファクシミリ受信の画像データ等)に対応して変調された光を生成し、一様に帯電された感光体ドラム１１３の周面に照射する。これにより、感光体ドラム１１３の周面には、画像データに対応する静電潜像が形成される。この状態で感光体ドラム１１３の周面に現像部１１７からトナーを供給することにより、周面には画像データに対応するトナー画像が形成される。このトナー像は、転写部１１９によって先ほど説明した用紙貯留部１０１から搬送されてきた用紙に転写される。
【００３３】
トナー像が転写された用紙は、定着部１０５に送られる。定着部１０５において、トナー像と用紙に熱と圧力が加えられて、トナー像は用紙に定着される。用紙はスタックトレイ１２１又は排紙トレイ１２３に排紙される。
【００３４】
操作部４００は、操作キー部４０１と表示部４０３を備える。表示部４０３は、タッチパネル機能を有しており、ソフトキーを含む画面が表示される。ユーザーは、画面を見ながらソフトキーを操作することによって、コピー等の機能の実行に必要な設定等をする。
【００３５】
操作キー部４０１には、ハードキーからなる操作キーが設けられている。具体的には、スタートキー４０５、テンキー４０７、ストップキー４０９、リセットキー４１１、コピー、プリンター、スキャナー及びファクシミリを切り換えるための機能切換キー４１３等が設けられている。
【００３６】
スタートキー４０５は、コピー、ファクシミリ送信等の動作を開始させるキーである。テンキー４０７は、コピー部数、ファクシミリ番号等の数字を入力するキーである。ストップキー４０９は、コピー動作等を途中で中止させるキーである。リセットキー４１１は、設定された内容を初期設定状態に戻すキーである。
【００３７】
機能切換キー４１３は、コピーキー及び送信キー等を備えており、コピー機能、送信機能等を相互に切り替えるキーである。コピーキーを操作すれば、コピーの初期画面が表示部４０３に表示される。送信キーを操作すれば、ファクシミリ送信及びメール送信の初期画面が表示部４０３に表示される。
【００３８】
図２は、図１に示す画像形成装置１の構成を示すブロック図である。画像形成装置１は、装置本体１００、原稿読取部２００、原稿給送部３００、操作部４００、制御部５００及び通信部６００がバスによって相互に接続された構成を有する。装置本体１００、原稿読取部２００、原稿給送部３００及び操作部４００に関しては既に説明したので、説明を省略する。
【００３９】
制御部５００は、ＣＰＵ(Central Processing Unit)、ＲＯＭ(Read Only Memory)、ＲＡＭ(Random Access Memory)及び画像メモリー等を備える。ＣＰＵは、画像形成装置１を動作させるために必要な制御を、装置本体１００等の画像形成装置１の上記構成要素に対して実行する。ＲＯＭは、画像形成装置１の動作の制御に必要なソフトウェアを記憶している。ＲＡＭは、ソフトウェアの実行時に発生するデータの一時的な記憶及びアプリケーションソフトの記憶等に利用される。画像メモリーは、画像データ(原稿読取部２００から出力された画像データ、パソコンから送信された画像データ、ファクシミリ受信の画像データ等)を一時的に記憶する。
【００４０】
通信部６００は、ファクシミリ通信部６０１及びネットワークＩ／Ｆ部６０３を備える。ファクシミリ通信部６０１は、相手先ファクシミリとの電話回線の接続を制御するＮＣＵ(Network Control Unit)及びファクシミリ通信用の信号を変復調する変復調回路を備える。ファクシミリ通信部６０１は、電話回線６０５に接続される。
【００４１】
ネットワークＩ／Ｆ部６０３は、ＬＡＮ(Local Area Network)６０７に接続される。ネットワークＩ／Ｆ部６０３は、ＬＡＮ６０７に接続されたパソコン等の端末装置との間で通信を実行するための通信インターフェイス回路である。
【００４２】
図３は、本実施形態に係るデータ転送制御装置１０の構成を示すブロック図である。データ転送制御装置１０は、図２の制御部５００に含まれる。
【００４３】
データ転送制御装置１０は、マスター１１、ＤＲＡＭ１３、ＳＲＡＭ１５、ＣＰＵ１７、メインメモリー１９及びバス２１を備える。
【００４４】
マスター１１は、バス２１に接続されており、画像データのようなデータを複数の分割データに分けて、複数の分割データを順番にバス２１に出力する。マスター１１の具体例として、ＵＳＢインターフェイス部や画像データ圧縮部が挙げられる。
【００４５】
ＤＲＡＭ１３は、バス２１に接続されており、第１のスレーブの具体例である。ＤＲＡＭ以外の記憶装置も第１のスレーブとして用いることができる。
【００４６】
ＳＲＡＭ１５は、バス２１に接続されており、第２のスレーブの具体例である。ＳＲＡＭ以外の記憶装置(例えば、ＤＲＡＭ)も第２のスレーブとして用いることができる。
【００４７】
ＣＰＵ１７及びメインメモリー１９は、バス２１に接続されている。ＣＰＵ１７及びメインメモリー１９によって、図４に示す機能ブロック群３０が実現される。機能ブロック群３０は、書込・読出制御部３１、第１のディスクリプター生成部３３、第２のディスクリプター生成部３５、第１の転送先変更設定部３７、第２の転送先設定変更部３９、転送選択部４１、及び、チップ選択部４３を備える。
【００４８】
書込・読出制御部３１は、データ転送制御装置１０において、書き込み処理や読み出し処理の制御を統括する。
【００４９】
第１のディスクリプター生成部３３は、複数の分割データのそれぞれをＤＲＡＭ１３で処理(書き込みや読み出し)をするために、複数の分割データのそれぞれに割り当てる第１のディスクリプターを生成する。
【００５０】
図５は、第１のディスクリプターの具体例となるディスクリプターを説明する説明図である。ディスクリプターは、２５６ビットであり、最初の３２ビットがソースアドレス領域となる。次の３２ビットがデスティネイションアドレス領域となる。次の３２ビットがサイズ領域となる。次の３２ビットがネクストディスクリプターアドレス領域となる。次の３２ビットがリザーブド領域及びコントロール領域となる。残りの９６ビット領域がユーザービット領域となる。
【００５１】
ディスクリプターを用いて、複数の分割データを、メモリーに書き込む処理を説明する。図６は、それを説明する説明図である。マスター１１として機能するＵＳＢインターフェイス部１１ａがＵＳＢメモリーに格納されている画像データを三つの分割データ１，２，３に分けて、これらの分割データをメモリー１３ａに書き込む処理を例にして説明する。メモリー１３ａは、例えば、ＤＲＡＭ１３である。
【００５２】
書込・読出制御部３１は、ＵＳＢメモリーに格納されている画像データを三つの分割データ１，２，３に分けて、メモリー１３ａに書き込む命令を生成する。この命令により、第１のディスクリプター生成部３３は、ディスクリプター１，２，３を生成して、メモリー１３ａに書き込む。
【００５３】
第１のディスクリプター生成部３３は、ＵＳＢインターフェイス部１１ａにディスクリプター１が書き込まれているメモリー１３ａの記憶領域のアドレスを知らせ、そして、ＵＳＢインターフェイス部１１ａにディスクリプター１の読み出しを命令する。
【００５４】
ＵＳＢインターフェイス部１１ａは、メモリー１３ａからディスクリプター１を読み出し、それのデスティネイションアドレス領域を参照する。この領域は、分割データの書き込み時に参照され、分割データ(ここでは分割データ１)が書き込まれるメモリー１３ａの記憶領域の先頭アドレスを示している。なお、ソースアドレス領域は、分割データの読み出し時に参照され、読み出しの対象となる分割データが格納されているメモリー１３ａの記憶領域の先頭アドレスを示している。
【００５５】
ＵＳＢインターフェイス部１１ａは、その先頭アドレスの記憶領域を先頭にして分割データ１をメモリー１３ａに書き込む。
【００５６】
ＵＳＢインターフェイス部１１ａは、ディスクリプター１のネクストディスクリプターアドレス領域を参照する。この領域は、ディスクリプター２が書き込まれているメモリー１３ａの記憶領域の先頭アドレスを示している。
【００５７】
ＵＳＢインターフェイス部１１ａは、メモリー１３ａからディスクリプター２を読み出し、ディスクリプター１の場合と同様にして、分割データ２をメモリー１３ａに書き込む。
【００５８】
ＵＳＢインターフェイス部１１ａは、ディスクリプター２のネクストディスクリプターアドレス領域を参照し、メモリー１３ａからディスクリプター３を読み出す。そして、ＵＳＢインターフェイス部１１ａは、ディスクリプター１の場合と同様にして、分割データ３をメモリー１３ａに書き込む。
【００５９】
ディスクリプター３には、最後のディスクリプターであることが示されており、これにより、ＵＳＢインターフェイス部１１ａは、分割データ１，２，３をメモリー１３ａに書き込む処理を終了する。
【００６０】
図４の説明に戻る。第１の転送先変更設定部３７は、転送先を変更したい分割データに割り当てられた第１のディスクリプターに対して、転送先を変更する設定となる第１の設定をする。例えば、図５に示すリザーブド領域やユーザービット領域において、余っている領域が、第１の設定をする領域Ｒ１とされている。第１の転送先変更設定部３７は、領域Ｒ１に、例えば、１ビットのフラグを立てることにより第１の設定をする。
【００６１】
チップ選択部４３は、ＤＲＡＭ１３やＳＲＡＭ１５を選択する機能を有する。ＤＲＡＭ１３にデータを書き込む処理やＤＲＡＭ１３からデータを読み出す処理がされる場合、チップ選択部４３は、チップセレクト信号Ｓ１をアクティブにし、チップセレクト信号Ｓ２をノンアクティブにする。ＳＲＡＭ１５にデータを書き込む処理やＳＲＡＭ１５からデータを読み出す処理がされる場合、チップ選択部４３は、チップセレクト信号Ｓ１をノンアクティブにし、チップセレクト信号Ｓ２をアクティブにする。
【００６２】
このように、チップ選択部４３は、第１のスレーブで処理をする場合に第１のスレーブを選択し、第２のスレーブで処理をする場合に第２のスレーブを選択する第１のスレーブ選択部として機能する。
【００６３】
第２のディスクリプター生成部３５、第２の転送先変更設定部３９及び転送選択部４１については、後の実施例２で説明する。
【００６４】
図３に示すバス制御部２３は、マスター１１が分割データをバス２１に出力する前に、分割データに割り当てられた第１のディスクリプターにおいて第１の設定がされているかを判定する第１の判定部２８を含み、第１の判定部２８が第１の設定がされていると判定しない場合、マスター１１からバス２１に出力された分割データをＤＲＡＭ１３に転送し、第１の判定部２８が第１の設定がされていると判定した場合、マスター１１からバス２１に出力された分割データをＳＲＡＭ１５に転送する制御となる第１の転送制御を、複数の分割データのそれぞれに対して実行する。
【００６５】
この処理を実行するために、バス制御部２３は、転送先変更処理をするＳＲＡＭ選択部２５及びＤＲＡＭ非選択部２７を含む。転送先変更処理は、チップ選択部４３によってＤＲＡＭ１３が選択され、ＳＲＡＭ１５が非選択にされている状態で、マスター１１が、複数の分割データを順番にバス２１に出力している場合に実行される。転送先変更処理は、バス制御部２３によって第１の設定がされていると判定されたときに、ＳＲＡＭ１５を強制的に選択し、かつＤＲＡＭ１３を強制的に非選択にして、第１の設定がされている第１のディスクリプターが割り当てられた分割データを、ＳＲＡＭ１５に転送させる処理である。ＳＲＡＭ選択部２５は、チップセレクト信号Ｓ２を強制的にアクティブにする機能を有する。ＤＲＡＭ非選択部２７は、チップセレクト信号Ｓ１を強制的にノンアクティブにする機能を有する。
【００６６】
ＳＲＡＭ１５は、先頭アドレスで指定される記憶領域から順番に、ＳＲＡＭ１５の記憶領域にデータが書き込まれるように設定されている。従って、転送先変更処理において、ＳＲＡＭ１５に転送されてきた分割データは、ＳＲＡＭ１５の先頭アドレスで指定される記憶領域から順番にＳＲＡＭ１５の記憶領域に書き込まれる。
【００６７】
ＳＲＡＭ１５の記憶容量は、ＤＲＡＭ１３のそれに比べて小さい。書込・読出制御部３１は、ＳＲＡＭ１５に転送されてくる二以上の分割データのサイズの合計が、ＳＲＡＭ１５の記憶容量を超えるかを判定する。書込・読出制御部３１は、超えると判定した場合、二以上の分割データのうち超える部分について、ＤＲＡＭ１３に転送する処理に切り替える。
【００６８】
具体的には、ＳＲＡＭ選択部２５がチップセレクト信号Ｓ２を強制的にアクティブにする機能を無効にし、ＤＲＡＭ非選択部２７がチップセレクト信号Ｓ１を強制的にノンアクティブにする機能を無効にする。これにより、チップ選択部４３が、チップセレクト信号Ｓ１をアクティブにする処理が有効となり、チップセレクト信号Ｓ２をノンアクティブにする処理が有効となるので、二以上の分割データのうち超える部分については、ＳＲＡＭ１５に転送されず、ＤＲＡＭ１３に転送される。
【００６９】
以上説明したように、本実施形態に係るデータ転送制御装置１０において、第１の転送先変更設定部３７は、転送先を変更したい分割データが割り当てられた第１のディスクリプターに対して、転送先を変更する設定をする。バス制御部２３は、第１の転送制御をする。すなわち、バス制御部２３の第１の判定部２８は、マスター１１によって分割データがバス２１に出力される前に、その分割データに割り当てられた第１のディスクリプターにおいて転送先を変更する設定となる第１の設定がされているか否かを判定する。そして、バス制御部２３は、第１の判定部２８が第１の設定がされていると判定しない場合、分割データをＤＲＡＭ１３に転送し、第１の判定部２８が第１の設定がされていると判定した場合、分割データをＳＲＡＭ１５に転送する制御を、複数の分割データのそれぞれに対して実行する。従って、本実施形態に係るデータ転送制御装置１０によれば、データを複数の分割データに分けて、ディスクリプターを用いて転送先に出力する場合に、ディスクリプターを新たに作成することなく、分割データの転送先を変更できる。
【００７０】
本実施形態に係るデータ転送制御装置１０の実施形態１〜３を説明する。
【００７１】
(実施形態１)
画像形成装置１のシステム開発の過程において、ＤＲＡＭ１３に書き込まれたデータにデータ化けが発生することがある。例えば、ＵＳＢインターフェイス部(マスター１１)によって、ＵＳＢメモリーに格納されているデータがＤＲＡＭ１３に書き込まれたときに、データ化けが発生することがある。
【００７２】
ＤＲＡＭ１３は、高速クロックで動作するので、それが原因でデータ化けが発生する可能性がある。また、データ化けの発生が、ＤＲＡＭ１３の記憶領域の一部が壊れていることが原因の場合もある。一方、ＤＲＡＭ１３が原因でなく、ＵＳＢインターフェイス部が原因の場合もある。従って、ＤＲＡＭ１３に問題があるか否かを特定する必要がある。
【００７３】
データをＳＲＡＭ１５に転送し、ＳＲＡＭ１５に書き込まれたデータにデータ化けが発生していれば、データ化けの原因はＤＲＡＭ１３でないことになる。ＳＲＡＭ１５に書き込まれたデータにデータ化けが発生していなければ、データ化けの原因がＤＲＡＭ１３となる。
【００７４】
データを構成する複数の分割データの全てをＳＲＡＭ１５に転送するために、第１のディスクリプターを新たに生成することは、その分だけソフトウェアの処理が増える。また、データを構成する複数の分割データの全てをＳＲＡＭ１５に転送する場合、ＳＲＡＭ１５はＤＲＡＭ１３に比べて容量が小さいので、複数の分割データの全てを書き込むことができないことがある。よって、データ化けが発生した部分を含む分割データのみをＳＲＡＭ１５に転送する必要がある。
【００７５】
第１のディスクリプター生成部３３は、複数の分割データをＤＲＡＭ１３に書き込むために、複数の分割データのそれぞれに割り当てる第１のディスクリプター生成し、それらをＤＲＡＭ１３に書き込む。
【００７６】
データのうちデータ化けが発生した部分は、システム開発者によって、デバッグ用のコンピューターに入力されており、コンピューターは第１の転送先変更設定部３７に第１の設定を命令する。第１の転送先変更設定部３７は、ＤＲＡＭ１３に書き込まれている第１のディスクリプターのうち、所定の第１のディスクリプターに対して第１の設定をする。実施形態１において、第１の転送先変更設定部３７は、データをデバッグするときに、データのうちデータ化けが発生した部分を含む分割データに割り当てられた第１のディスクリプターに対して、第１の設定をする。
【００７７】
バス制御部２３は、ＵＳＢインターフェイス部がバス２１に順番に出力した複数の分割データのうち、データ化けが発生した部分を含まない分割データを、ＤＲＡＭ１３に転送する。データ化けが発生した部分を含む分割データがバス２１に出力されたとき、ＳＲＡＭ選択部２５により、ＳＲＡＭ１５が強制的に選択され、ＤＲＡＭ非選択部２７により、ＤＲＡＭ１３が強制的に非選択にされる。これにより、バス制御部２３は、データ化けが発生した部分を含む分割データをＤＲＡＭ１３でなくＳＲＡＭ１５に転送する。
【００７８】
実施形態１によれば、デバッグ時において、データ化けが発生した部分を含む分割データをＳＲＡＭ１５に転送することを、その分割データに割り当てられた第１のディスクリプターに対して第１の設定をすることにより実現できる。その分割データをＳＲＡＭ１５に転送するために、第１のディスクリプターを新たに生成する必要がない。
【００７９】
実施形態１の変形例を説明する。この変形例は、ＤＲＡＭ非選択部２７を備えていない。すなわち、バス制御部２３は、バス制御部２３によって第１の設定がされていると判定されたときに、ＳＲＡＭ１５を選択して、第１の設定がされている第１のディスクリプターが割り当てられた分割データを、ＳＲＡＭ１５に転送させる転送先変更処理をするＳＲＡＭ選択部２５(第２のスレーブ選択部)を含む。バス制御部２３は、チップ選択部４３が、ＤＲＡＭ１３を選択し、ＳＲＡＭ１５を非選択にしている状態で、マスター１１が、複数の分割データを順番にバス２１に出力している場合に、ＳＲＡＭ選択部２５に転送先変更処理をさせる。
【００８０】
この変形例において、バス制御部２３は、複数の分割データの全てをＤＲＡＭ１３に転送し、第１の設定がされた第１のディスクリプターが割り当てられた分割データについてはＳＲＡＭ１５にも転送する。この変形例によれば、マスター１１であるＵＳＢインターフェイス部にとって、ＤＲＡＭ１３に複数の分割データを書き込む動作と全く同じ動作で、データ化けが発生した部分を含む分割データがＳＲＡＭ１５に書き込まれることになる。
【００８１】
データ化けが発生した部分を含む分割データをＳＲＡＭ１５に書き込む処理をするために、複数の分割データをＤＲＡＭ１３に書き込む動作と異なる動作をマスター１１にさせることにより、新たな問題が発生した場合、デバッグが複雑化する。この変形例によれば、データ化けが発生した部分を含む分割データをＳＲＡＭ１５に書き込む処理において、マスター１１は複数の分割データをＤＲＡＭ１３に書き込む動作と同じ動作をするので、上記新たな問題が発生することを回避できる。
【００８２】
(実施形態２)
実施形態２は、画像データが複数の分割データに分けられ、複数の分割データのそれぞれにヘッダーが付加されている場合に、マスター１１が複数の分割データをＤＲＡＭ１３に書き込む処理に関する。ヘッダーは、分割データを送信元から送信先へ正しく転送するための制御情報であり、送信元アドレス、送信先アドレス、分割データの大きさ、ＣＲＣ(Cyclic Redundancy Check)値等を含む。
【００８３】
ＤＲＡＭ１３に書き込まれた複数の分割データについて、画像データとして処理する場合、処理しない場合のいずれも考えられる。ヘッダーは画像データでないので、複数の分割データを画像データとして処理するには、複数の分割データのそれぞれに付加されているヘッダーを除去する必要がある。
【００８４】
そこで、実施形態２では、ＤＲＡＭ１３に書き込まれた複数の分割データを画像データとして処理する場合、複数の分割データをＤＲＡＭ１３に書き込み、複数の分割データのそれぞれのヘッダーをＳＲＡＭ１５に書き込む処理をする。これに対して、ＤＲＡＭ１３に書き込まれた複数の分割データを画像データとして処理しない場合、複数の分割データ及び複数の分割データのそれぞれのヘッダーをＤＲＡＭ１３に書き込む処理をする。
【００８５】
実施形態２では、図４に示す第１のディスクリプター生成部３３、第１の転送先変更設定部３７、及び、チップ選択部４３に加えて、第２のディスクリプター生成部３５、第２の転送先変更設定部３９、及び、転送選択部４１が利用される。
【００８６】
第２のディスクリプター生成部３５は、複数の分割データのそれぞれに付加されたヘッダーをＤＲＡＭ１３で処理(書き込み、読み出し)するために、ヘッダーのそれぞれに割り当てる第２のディスクリプターを生成し、ＤＲＡＭ１３に書き込む。第２のディスクリプター具体例は、既に説明した図５に示すディスクリプターである。
【００８７】
第２の転送先変更設定部３９は、ＤＲＡＭ１３に書き込まれている第２のディスクリプターのそれぞれに対して、転送先を変更する設定となる第２の設定をする。第２の設定は、第１の設定と同様に、例えば、図５に示すリザーブド領域やユーザービット領域において、余っている領域が、第２の設定をする領域とされる。その領域に例えば、１ビットのフラグを立てることにより第２の設定をする。
【００８８】
各ヘッダーのサイズは、互いに同じである。よって、書込・読出制御部３１がマスター１１にヘッダーのサイズを知らせることにより、マスター１１は、ヘッダーが付加された分割データにおいて、ヘッダーを分割データから切り離して、バス２１に出力することができる。
【００８９】
バス制御部２３は、マスター１１がヘッダーをバス２１に出力する前に、ヘッダーに割り当てられた第２のディスクリプターにおいて第２の設定がされているかを判定する第２の判定部２９を含み、第２の判定部２９が第２の設定がされていると判定しない場合、マスター１１からバス２１に出力されたヘッダーをＤＲＡＭ１３に転送し、第２の判定部２９が第２の設定がされていると判定した場合、マスター１１からバス２１に出力されたヘッダーをＳＲＡＭ１５に転送する制御となる第２の転送制御を、複数の分割データのそれぞれに付加されたヘッダー対して実行する。
【００９０】
転送選択部４１は、複数の分割データ及び複数の分割データのそれぞれに付加されたヘッダーをＤＲＡＭ１３に転送する第１の転送、及び、複数の分割データをＤＲＡＭ１３に転送し、複数の分割データのそれぞれに付加されたヘッダーをＳＲＡＭ１５に転送する第２の転送のいずれか一方を選択できる。
【００９１】
転送選択部４１が、第１の転送を選択した場合、第１の転送先変更設定部３７は、第１のディスクリプターのそれぞれに対して、第１の設定をせず、かつ第２の転送先変更設定部３９は、第２のディスクリプターのそれぞれに対して、第２の設定をしない。
【００９２】
マスター１１が第２のディスクリプターを参照して、分割データに付加されているヘッダーをバス２１に出力し、第１のディスクリプターを参照して、その分割データをバス２１に出力する処理を、複数の分割データのそれぞれに対して実行する。バス制御部２３は、ヘッダーをＤＲＡＭ１３に転送し、そのヘッダーが除去された分割データをＤＲＡＭ１３に転送する処理を繰り返す。これにより、複数の分割データ及び複数の分割データのそれぞれに付加されたヘッダーが、ＤＲＡＭ１３に書き込まれる。
【００９３】
一方、転送選択部４１が、第２の転送を選択した場合、第１の転送先変更設定部３７は、第１のディスクリプターのそれぞれに対して、第１の設定をせず、かつ第２の転送先変更設定部３９は、第２のディスクリプターのそれぞれに対して、第２の設定をする。
【００９４】
マスター１１が第２のディスクリプターを参照して、分割データに付加されているヘッダーをバス２１に出力し、第１のディスクリプターを参照して、その分割データをバス２１に出力する処理を、複数の分割データのそれぞれに対して実行する。バス制御部２３は、ヘッダーをＳＲＡＭ１５に転送し、そのヘッダーが除去された分割データをＤＲＡＭ１３に転送する処理を繰り返す。これにより、複数の分割データがＤＲＡＭ１３に書き込まれ、複数の分割データのそれぞれに付加されたヘッダーがＳＲＡＭ１５に書き込まれる。
【００９５】
実施形態２によれば、ＤＲＡＭ１３に書き込まれた複数の分割データを画像データとして処理したい場合、複数の分割データのそれぞれからヘッダーを除去して、複数の分割データをＤＲＡＭ１３に書き込む。従って、複数の分割データのそれぞれにヘッダーが付加された状態で、ＤＲＡＭ１３に書き込み、複数の分割データのそれぞれからヘッダーを除去する処理をする場合と比べて、処理の工程を少なくできる。
【００９６】
ＳＲＡＭ１５は、先頭アドレスで指定される記憶領域から順番に、ＳＲＡＭ１５の記憶領域にデータが書き込まれるように設定されている。従って、ＳＲＡＭ１５に転送されてきたヘッダーは、ＳＲＡＭ１５の先頭アドレスで指定される記憶領域から順番にＳＲＡＭ１５の記憶領域に書き込まれる。よって、複数の分割データのそれぞれに付加されていたヘッダーは、１番目の分割データに付加されていたヘッダーから順番にＳＲＡＭ１５に書き込まれる。従って、ＳＲＡＭ１５に書き込まれたヘッダーのうち、あるヘッダーを参照したい場合、そのヘッダーへのアクセスが容易である。
【００９７】
(実施形態３)
マスター１１が複数の分割データをＤＲＡＭ１３に書き込む処理の実行中に、他のマスターによりデータ(複数の分割データと別のデータ)をＤＲＡＭ１３に書き込む処理が発生することがある。後者の処理が必要とするＤＲＡＭ１３の帯域が大きいと、前者の処理と後者の処理とを同時に実行できない。後者の処理が前者の処理よりも優先度が高い処理(例えば、印字処理)であれば、他のマスターが後者の処理を終了するまで、マスター１１は前者の処理を中断しなければならない。後者の処理が必要とするＤＲＡＭ１３の帯域が大きいので、前者の処理が遅れ、よってデータ転送制御装置１０のパフォーマンスが低下する。
【００９８】
実施形態３において、マスター１１は、複数の分割データを順番にバス２１に出力する処理の実行中に、複数の分割データと別のデータをＤＲＡＭ１３に転送する割り込み処理が発生したとき、先に実行していた複数の分割データの出力を中断する。中断後、第１の転送先変更設定部３７は、複数の分割データのうち、バス２１に出力されていない残りの分割データに割り当てられた第１のディスクリプターのそれぞれに対して、第１の設定をする。
【００９９】
例えば、マスター１１がｎ−１番目の分割データをバス２１に出力した後、ｎ番目の分割データをバス２１に出力する前に、中断が発生したとする。第１の転送先変更設定部３７は、ＤＲＡＭ１３に書き込まれている第１のディスクリプターのうち、ｎ番目から最後(ｎ番目、ｎ＋１番目、・・・)までの分割データに割り当てられた第１のディスクリプターのそれぞれにおいて、第１の設定をする領域Ｒ１にフラグを立てる。
【０１００】
バス制御部２３は、第１の設定がされた残りの分割データに対して第１の転送制御をすることにより、第１の設定がされた残りの分割データをＳＲＡＭ１５に転送する。第１の転送制御とは、第１の設定がされていると判定されない場合、分割データをＤＲＡＭ１３に転送し、第１の設定がされていると判定された場合、分割データをＳＲＡＭ１５に転送する制御を、分割データのそれぞれに対して実行する制御である。残りの分割データに割り当てられた第１のディスクリプターに対しては、第１の設定がされているので、残りの分割データはＳＲＡＭ１５に転送されて、ＳＲＡＭ１５に書き込まれる。
【０１０１】
マスター１１が複数の分割データをＤＲＡＭ１３に書き込む処理を中断した場合、複数の第１のディスクリプターを新たに作成して、複数の分割データをＳＲＡＭ１５に転送することにより、上記中断を解消することができる。しかし、この方法では、複数の第１のディスクリプターを新たに作成する必要があるので、ソフトウェア処理の負担が大きくなる。
【０１０２】
上記中断期間が長くなることや、この中断を解消するためにソフトウェア処理の負担が大きくなることは、データ転送制御装置１０のパフォーマンスが低下する原因となる。実施形態３では、複数の分割データのうち、バス２１に出力していない残りの分割データに割り当てられた第１のディスクリプターのそれぞれに対して、第１の設定をすることにより、残りの分割データをＳＲＡＭ１５に転送することができる。よって、実施形態３によれば、ソフトウェア処理の負担を大きくすることなく、中断期間を解消できるので、データ転送制御装置１０のパフォーマンスの低下を抑制できる。
【０１０３】
実施形態３の変形例を説明する。例えば、マスター１１がｎ−１番目の分割データをバス２１に出力した後、ｎ番目の分割データをバス２１に出力する前に、中断が発生したとする。
【０１０４】
上述したように、実施形態３の第１のディスクリプター生成部３３は、ｎ番目から最後(ｎ番目、ｎ＋１番目、・・・)の分割データに割り当てられた第１のディスクリプターにおいて、第１の設定をする領域Ｒ１にフラグを立てる。すなわち、残りの分割データに割り当てられた全ての第１のディスクリプターに対して、第１の設定をする領域Ｒ１にフラグを立てる必要がある。
【０１０５】
変形例は、第１の設定をする領域を２ビットにする。第１の転送先変更設定部３７は、１番目のビット領域(図５の領域Ｒ１)を実施形態１，２で利用し、２番目のビット領域(図５の領域Ｒ２)を実施形態３で利用する。すなわち、第１のディスクリプター生成部３３は、複数の分割データのそれぞれに割り当てられた第１のディスクリプターにおいて、２番目のビット領域にフラグを立てない状態で第１のディスクリプターを生成する。そして、ｎ番目の分割データに割り当てられた第１のディスクリプターにおいて、２番目のビット領域にフラグを立てる。これにより、バス制御部２３は、ｎ番目以降の分割データをＳＲＡＭ１５に転送する。
【０１０６】
変形例は、次のように言い換えることができる。第１のディスクリプターは、データのうちデータ化けが発生した部分を含む分割データをＳＲＡＭ１５に転送するために、第１の設定がされる第１の領域と、マスター１１が複数の分割データを順番にバス２１に出力する処理を中断した場合に、複数の分割データのうち、バス２１に出力されていない残りの分割データをＳＲＡＭ１５に転送するために、第１の設定がされる第２の領域と、を含む。
【０１０７】
マスター１１は、複数の分割データを順番にバス２１に出力する処理の実行中に、複数の分割データと別のデータをＤＲＡＭ１３に転送する割り込み処理が発生したとき、その出力を中断する。第１の転送先変更設定部３７は、マスター１１によってその出力が中断されると、残りの分割データのうち、バス２１に最初に出力される分割データに割り当てられた第１のディスクリプターの第２の領域に第１の設定をする。
【０１０８】
バス制御部２３は、第２の領域に第１の設定がされている状態で第１の転送制御をすることにより、残りの分割データをＳＲＡＭ１５に転送する。
【０１０９】
変形例では、ｎ番目の分割データに割り当てられた第１のディスクリプターにおいて、２番目のビット領域にフラグを立てることにより、これより後の第１のディスクリプターにおいて、２番目のビット領域にフラグを立てなくても、残りの分割データをＳＲＡＭ１５に転送することができる。よって、変形例は、実施形態３と比べて、第１の転送先変更設定部３７での第１の設定の処理を少なくすることができる。
【符号の説明】
【０１１０】
１  画像形成装置
１０  データ転送制御装置
１３  ＤＲＡＭ(第１のスレーブ)
１５  ＳＲＡＭ(第２のスレーブ)
２５  ＳＲＡＭ選択部(第２のスレーブ選択部)
４３  チップ選択部(第１のスレーブ選択部)
Ｓ１，Ｓ２  チップセレクト信号
【図１】
2014164395.tif 000003
【図２】
2014164395.tif 000004
【図３】
2014164395.tif 000005
【図４】
2014164395.tif 000006
【図５】
2014164395.tif 000007
【図６】
2014164395.tif 000008