以下、図面を参照して、本発明の実施形態を詳細に説明する。本実施形態においては、スキャナ及びプロッタを含む複合機としての画像形成装置を例として説明する。
このような画像形成装置において本実施形態に係る要旨の一つは、スキャナ動作を実行する場合において、スキャナに係る共有メモリへのアクセスが単独で発生した際のメモリの利用効率を低下させることなく、スキャナ及びプロッタによるメモリアクセスが競合した場合の両者からのメモリアクセス速度を向上させることにある。以下、図面を参照して詳細に説明する。
まず、本実施形態に係る画像形成装置1の全体構成について、図1を参照して説明する。図1は、本実施形態に係る画像形成装置1の全体構成を模式的に示すブロック図である。図1に示すように、本実施形態に係る画像形成装置1は、コントローラ100、スキャナユニット200及びプロッタユニット300を含む。
コントローラ100は、画像形成装置1の本体部分であり、スキャナ画像転送装置110、プロッタ画像転送装置120、CPU130(Centoral Processing Unit)130、画像処理部140及び共有メモリ150が、アービタ160を介して接続されて構成されている。
スキャナ画像転送装置110は、スキャナユニット200において原稿が読み取られて生成された読取画像データを入力データとして取得し、共有メモリ150に書き込む。その際、スキャナ画像転送装置110は、アービタ160にメモリアクセス要求を行い、アービタ160によってメモリアクセスが許可されると、共有メモリ150への読取画像データの書き込みを実行する。以下では、スキャナ画像転送装置110による共有メモリ150への読取画像データの書き込みを「ライトアクセス」ともいう。
プロッタ画像転送装置120は、プロッタユニット300において画像形成出力を実行させるために、共有メモリ150に格納されている画像形成出力用の出力画像データを出力データとして読み出してプロッタユニット300に転送する。その際、プロッタ画像転送装置120は、アービタ160にメモリアクセス要求を行い、アービタ160によってメモリアクセスが許可されると、共有メモリ150からの出力画像データの読み出し及びプロッタユニット300への出力画像データの転送を実行する。即ち、本実施形態においては、プロッタ画像転送装置120が、プロッタユニットに関連するデバイスとして機能する。以下では、プロッタ画像転送装置120による共有メモリ150からの出力画像データの読み出しを「リードアクセス」ともいう。
CPU130は、コントローラ100全体の動作を制御するための演算装置である。画像処理部140は、スキャナユニット200によって原稿が読み取られて生成された読取画像データを処理して保存用の保存画像データを生成する機能や、プロッタユニット300による画像形成出力用の出力画像データを生成する機能等を実行する。
共有メモリ150は、情報の高速な読み書きが可能な不揮発性記憶媒体であり、RAM(Random Access Memory)等の主記憶装置によって実現される。共有メモリ150は、CPU130が様々な機能を実現するためのプログラムがロードされる他、CPU130が処理するデータを一次的に格納するための作業領域並びに上述したようにスキャナユニット200及びプロッタユニット300との間でやりとりされる読取画像データ及び出力画像データの一次的な保存領域として用いられる。
アービタ160は、図示しない複数のポートを有し、夫々のポートにスキャナ画像転送装置110、プロッタ画像転送装置120、CPU130及び画像処理部140等のデバイスの何れかがバスマスターとして接続されている。即ち、アービタ160は、各デバイス間での情報のやり取りを行うためのバスとして機能する。また、アービタ160には共有メモリ150が接続されており、夫々のポートに接続されたデバイスからの共有メモリ150へのメモリアクセス要求を調停してアクセスの順番を制御する。即ち、本実施形態においては、アービタ160が、メモリアクセス制御部として機能する。
スキャナユニット200は、原稿を光学的に走査して読み取って読取画像データを生成する画像読取装置であり、スキャナ210、画像入力装置220及びローカルメモリ230を含む。スキャナ210は、光学情報を電気信号に変換する光電変換素子を含む画像読取部である。本実施形態に係るスキャナ210は、原稿の表面と裏面とを同時に読み取ることが可能な機構として、表面スキャナ211及び裏面スキャナ212を含む。
尚、本実施形態に係るスキャナ210は、一度のスキャン動作で一ライン分の読み取りしかできないため、スキャン動作により読み取った原稿の読取画像データをライン単位で一定の間隔(以下、「ライン間隔」とする)毎に生成する。そして、このようにライン間隔毎に生成されたライン単位の画像データ(以下、「ラインデータ」とする)は、画像入力装置220の制御により、一定の周期(以下、「ライン周期」とする)でローカルメモリ230、若しくは、スキャナ画像転送装置110に転送される。
画像入力装置220は、スキャナ210によって生成された読取画像データを、コントローラ100のスキャナ画像転送装置110に転送する。ここで、上述したように、本実施形態に係るスキャナユニット200は、原稿の両面を同時に読み取る機能を有する。そして、画像入力装置220は、原稿の片面についての読取画像データを、主走査ライン毎のラインデータとしてリアルタイムにスキャナ画像転送装置110に転送し、もう一方の面についての読取画像データをローカルメモリ230に蓄積する。尚、このとき画像入力装置220により行われる読取画像データのスキャナ画像転送装置110への転送及びローカルメモリ230への蓄積は、スキャン動作の制約(一度のスキャン動作で一ライン分の読み取りしかできない)によりライン周期で行われる。
また、画像入力装置220は、片面についての読取画像データのスキャナ画像転送装置110への転送が完了した後、ローカルメモリ230に蓄積しておいたもう一方の面についての読取画像データをまとめてスキャナ画像転送装置110へ転送する。
ローカルメモリ230は、上述したように、画像入力装置220がリアルタイムでコントローラ100に送信しない側の面の読取画像データをページ単位で一時的に記憶する記憶媒体であり、共有メモリ150と同様のRAMや、NV−RAM(Non Volatile−RAM)等が用いられる。
尚、本実施形態においては、上述したように、原稿の一方の面の読取画像データはコントローラ100へリアルタイムで転送され、他方の面の読取画像はローカルメモリ230に蓄積された後にまとめて転送される。これは、スキャナユニット200とコントローラ100との間のインタフェースの情報転送速度や、コントローラ100内におけるアービタ160の情報転送速度と、コントローラ100にライン周期で転送されてくるスキャナユニット200からのラインデータのデータ量との関係による。
例えば、スキャナユニット200により生成されるラインデータのデータ量が、スキャナユニット200とコントローラ100との間のインタフェースの情報転送速度や、コントローラ100内におけるアービタ160の情報転送速度によって転送可能なデータ量を超えてしまう場合、情報に欠損が生じることとなる。
また、スキャナユニット200により生成されるラインデータのデータ量が、スキャナユニット200とコントローラ100との間のインタフェースの情報転送速度や、コントローラ100内におけるアービタ160の情報転送速度によって転送可能なデータ量以内であっても、アービタ160におけるバス帯域の大部分を占めることとなってしまう場合、他のモジュールやバスマスターとの関係で不具合が発生することが考えられる。
このような問題を回避するため、少なくとも原稿の一方の面については読取画像データのコントローラ100へのリアルタイム転送を行わず、一度ローカルメモリ230に蓄積した上でコントローラ100に転送される。この他、スキャナユニット200の進歩により、スキャナユニット200により生成されるラインデータのデータ量が増加する傾向にあるため、原稿の一方の面だけでなく、両方の面の読取画像データをローカルメモリ230に格納した上で、後から転送するようにしても良い。
プロッタユニット300は、用紙に対して画像形成出力を実行する画像形成装置であり、プロッタ310及び画像出力装置320を含む。プロッタ310は、入力された画像形成出力用の出力画像データに基づいて画像形成出力を実行するエンジンであり、電子写真方式の画像形成機構や、インクジェット方式の画像形成機構が用いられる。画像出力装置320は、プロッタ画像転送装置120から入力される出力画像データを取得し、プロッタ310を制御して画像形成出力を実行させる。
このような画像形成装置1が複写機として動作する場合、まず、ユーザの操作に基づいてスキャナユニット200が原稿のスキャンを実行し、読取画像データを生成する。スキャナユニット200によって生成された読取画像データは、上述したようなリアルタイム転送やローカルメモリ230に蓄積された後の転送により、共有メモリ150に格納される。
共有メモリ150に読取画像データが格納されると、画像処理部140が、画像形成出力用の出力画像データを生成するための画像処理を、共有メモリ150に格納された読取画像データに基づいて実行する。画像処理部140による画像処理によって生成された画像形成出力用の出力画像データは、共有メモリ150から読み出されてプロッタ画像転送装置120を介してプロッタユニット300に送信される。これにより、プロッタユニット300において画像形成出力が実行される。
尚、図1においては、スキャナユニット200及びプロッタユニット300を含み、少なくとも複写機として機能する画像形成装置1を例として説明している。この他、例えばネットワークI/F等を備え、PC(Personal Computer)から印刷ジョブを受信して画像形成出力を実行するプリンタとしての機能を持たせることや、HDD(Hard Disk Drive)等の記憶装置を備え、スキャン及び画像処理によって生成された出力画像データを蓄積するサーバとしての機能を持たせることも可能である。
次に、本実施形態に係る画像形成装置におけるメモリアクセス制御について、図2を参照して説明する。図2は、本実施形態に係る画像形成装置1の機能構成を模式的に示すブロック図である。図2に示すように、本実施形態に係るスキャナ画像転送装置110は、データ判断部111、コマンド分割部112、データ書込部113を含み、プロッタ画像転送装置120は、データ読出部121、リードアクセス通知部122を含み、画像入力装置220は、データ振分部221、ローカルメモリ制御部222、データ転送部223を含む。
まず、画像入力装置220に含まれる各部の機能について説明する。データ振分部221は、表面スキャナ211により生成された表面の読取画像データをデータ転送部223に、裏面スキャナ212により生成された裏面の読取画像データをローカルメモリ制御部222に、それぞれ振り分けて転送する。尚、上述したように、このとき生成された読取画像データは、スキャナ210によるスキャン動作による制約(一度のスキャン動作で一ライン分の読み取りしかできない)のため、ライン単位で一定の間隔(ライン間隔)毎にラインデータとして生成されて、表面はデータ転送部223に、裏面はローカルメモリ制御部222に、一定の周期(ライン周期)で転送される。
ローカルメモリ制御部222は、データ振分部221からライン単位で転送されてきた裏面の読取画像データ(ラインデータ)を一定の周期(ライン周期)でローカルメモリ230に転送する。また、ローカルメモリ制御部222は、ローカルメモリ230に一時的に記憶されている読取画像データをデータ転送部223にページ単位でまとめて転送する。即ち、本実施形態においては、ローカルメモリ制御部222が、格納制御部として機能し、ローカルメモリ230が、一時格納部として機能する。
データ転送部223は、データ振分部221からライン単位で転送されてきた表面の読取画像データ(ラインデータ)を一定の周期(ライン周期)でスキャナ画像転送装置110に転送する。また、データ転送部223は、ローカルメモリ制御部222からページ単位でまとめて転送されてきた裏面の読取画像データをまとめてスキャナ画像転送装置110に転送する。このように、本実施形態に係る画像入力装置220は、ローカルメモリ230に一時的に蓄積しておいた読取画像データを転送する際には、もはやスキャン動作による制約からは解放されているため、ページ単位でまとめてスキャナ画像転送装置110に転送することが可能となる。
尚、データ転送部223は、自身に転送されてきた読取画像データが直送画像データであっても蓄積画像データであっても、所定の単位(以下、「コマンド単位」とする)で分割してからスキャナ画像転送装置110に転送する。ここで、直送画像データとは、データ振分部221からデータ転送部223に直接転送されてきた直送データとしての読取画像データのことである。また、蓄積画像データとは、一旦ローカルメモリ230に蓄積されてからローカルメモリ制御部222を経由してデータ転送部223に転送されてきた蓄積データとしての読取画像データのことである。
また、データ転送部223は、スキャナ画像転送装置110への転送の際、アービタ160に共有メモリ150への読取画像データの書き込みを命令するためのライトコマンドを生成して、生成したライトコマンドを分割後の夫々の読取画像データ(以下、「ライトデータ」とする)に付加する。
尚、データ転送部223は、読取画像データをコマンド単位で分割する際、例えば、共有メモリ150がDDR(Double−Data−Rate)3の場合、ライトアクセスのデータサイズが、DDR3のアクセス単位8バースト×バス幅の整数倍となるように分割する。これは、後述するように、コマンド分割部112が、ライトアクセスのデータサイズがDDR3のアクセス単位8バースト×バス幅となるように、ライトデータをさらに複数に分割するためである。
次に、プロッタ画像転送装置120に含まれる各部の機能について説明する。データ読出部121は、アービタ160の調停(メモリアクセス制御)に従って共有メモリ150にアクセスし、共有メモリ150に格納されている画像形成出力用の出力画像データを読み出して、プロッタユニット300に転送する。
リードアクセス通知部122は、データ読出部121を監視し、監視結果に応じてリードアクセス通知信号における信号状態を変化させてデータ判断部111に送信する。即ち、リードアクセス通知部122は、データ読出部121を監視し、出力画像データの読出しを検知しない限りはリードアクセス通知信号をLowに保ち、一方、出力画像データの読出しを検知すると、その開始から終了までの間はリードアクセス通知信号をHighに保つ。即ち、本実施形態においては、リードアクセス通知部122が、読出検知部として機能する。
尚、リードアクセス通知部122は、データ読出部121が出力画像データを読み出す際に、ハードウェア制御により自動的にリードアクセス通知信号における信号状態を変化させてデータ判断部111に送信するように構成されている。従って、本実施形態に係る画像形成装置1によれば、データ読出部121による出力画像データの読み出しを検知するための仕組みや機能をプログラムに実装する必要がなく、開発コストや運用コストを低減させることが可能となる。
また、リードアクセス通知部122は、このように、データ読出部121そのものを監視する他に、図3に示すように、データ読出部121とアービタ160との間におけるリードアクセスを監視することにより出力画像データの読出しを検知するように構成されていても良い。この際、リードアクセス通知部122は、データ読出部121とアービタ160との間におけるリードアクセスを検知すると、一定期間、リードアクセス通知信号における信号状態を変化させることにより、データ判断部111にプロッタ転送中であることを通知する。
このような構成の場合においても、リードアクセス通知部122は、データ読出部121が出力画像データを読み出す際に、ハードウェア制御により自動的にリードアクセス通知信号における信号状態を変化させてデータ判断部111に送信するように構成されている。さらに、このような構成の場合、プロッタ画像転送装置120に専用のハードウェアを実装する必要がない。
従って、リードアクセス通知部122がスキャナ画像転送装置110に含まれるように構成されている場合、データ読出部121による出力画像データの読み出しを検知するための仕組みや機能をプログラムに実装する必要がなく、また、プロッタ画像転送装置120に専用のハードウェアを実装する必要がないため、開発コストや運用コストをより低減させることが可能となる。
また、図示しないが、リードアクセス通知部122は、プロッタ画像転送装置120に含まれる他に、スキャナ画像転送装置110に含まれるように構成されていても良く、このような構成においても、上記と同様の効果を得ることが可能となる。
また、本実施形態においては、プロッタ画像転送装置120に含まれるリードアクセス通知部122がデータ判断部111にプロッタ転送中であることを通知する例について説明するが、この他、データ読出部121自身がデータ判断部111にプロッタ転送中であることを通知するように構成されていても良い。この際、データ読出部121は、CPUのコマンドや、プロッタから入力される動作信号等を参照してプロッタ画像の転送の開始から終了までを示すプロッタ転送中信号を生成して、データ判断部111に通知する。この場合、リードアクセス通知部122による監視が必要なくなるため、プロッタ画像転送装置120はリードアクセス通知部122を必要としない。
次に、スキャナ画像転送装置110に含まれる各部の機能について説明する。データ判断部111は、リードアクセス通知部122から受信したリードアクセス通知信号における信号状態を判断し、判断結果に応じて、画像入力装置220から転送されてきた読取画像データをコマンド分割部112若しくはデータ書込部113に入力する。
具体的には、データ判断部111は、リードアクセス通知部122から受信したリードアクセス通知信号における信号状態がLowであると判断した場合には、画像入力装置220から転送されてきた読取画像データをデータ書込部113に入力する。一方、データ判断部111は、リードアクセス通知部122から受信したリードアクセス通知信号における信号状態がHighであると判断した場合には、画像入力装置220から転送されてきた読取画像データをコマンド分割部112に入力する。
即ち、データ判断部111は、スキャナ画像転送装置110によるライトアクセスが単独で発生している場合には、画像入力装置220から転送されてきた読取画像データをデータ書込部113に入力する。スキャナ画像転送装置110によるライトアクセスとプロッタ画像転送装置120によるリードアクセスとが競合した場合に、画像入力装置220から転送されてきた読取画像データをコマンド分割部112に入力する。
コマンド分割部112は、データ判断部111から入力された読取画像データを各ライトコマンド単位で複数に分割してより細かいライトデータにしてから、データ書込部113に入力する。このように、スキャナ画像転送装置110によるライトアクセスとプロッタ画像転送装置120によるリードアクセスとが競合した場合に、コマンド分割部112がライトデータをライトコマンド単位で複数に分割することを本実施形態における要旨の一つとしている。即ち、本実施形態においては、コマンド分割部112が、入力データ分割部として機能する。
尚、コマンド分割部112は、ライトデータを分割する際、例えば、共有メモリ150がDDR3の場合、ライトアクセスのデータサイズが、DDR3のアクセス単位8バースト×バス幅となるように分割する。
以下の説明においては、コマンド分割部112は、データ判断部111から入力されたライトデータを1個のライトコマンドにつき2個に分割する例について説明するが、これに限らず、それ以上であっても良い。
データ書込部113は、アービタ160に対してライトアクセス要求を行い、アービタ160による調停(メモリアクセス制御)に従って共有メモリ150にアクセスし、データ判断部111若しくはコマンド分割部112から入力された読取画像データ(ライトデータ)を共有メモリ150に書き込む。
このように構成されたスキャナ画像転送装置110が、リードアクセス通知部122、ローカルメモリ制御部222、ローカルメモリ230、後述するタグ情報監視部114、タグ情報挿入部224と連携することにより、メモリアクセス制御装置としての主要な機能を提供する。
尚、本実施形態においては、アービタ160に含まれる夫々のポートのメモリアクセス優先度は、夫々のポートに接続されたバスマスターに応じて固定であり、プロッタ画像転送装置120のメモリアクセス優先度は最優先に設定されており、その他のバスマスター、即ち、スキャナ画像転送装置110、CPU130、画像処理部140のメモリアクセス優先度は2番目に設定されている。
ここで、プロッタ画像転送装置120が接続されているポートのメモリアクセス優先度が最優先に設定されている理由を説明する。プロッタ画像転送装置120は、画像形成出力するべき出力画像データをライン単位で一定の周期(ライン周期)で共有メモリ150から画像形成出力用のプロッタユニット300に出力する必要があり、ラインデータが一定の周期(ライン周期)でプロッタユニット300に出力されない場合、プロッタユニット300における用紙の搬送スピードに対して形成するべき画像の準備が間に合わず、そのラインの画像が正しく形成されずに異常画像が出力されることとなる。
従って、プロッタ画像転送装置120は、スキャナユニット200から転送されてきた読取画像データを滞りなくプロッタユニット300に転送し、若しくは、共有メモリ150から出力画像データを滞りなくプロッタユニット300に出力する必要がある。このような理由により、プロッタ画像転送装置120が接続されているポートのメモリアクセス優先度は他のどのバスマスターよりも高く設定されている。
このように、本実施形態に係る画像形成装置1は、スキャナ画像転送装置110によるライトアクセスとプロッタ画像転送装置120によるリードアクセスとが競合した場合、ライトデータを分割してより細かいライトデータにしてから共有メモリ150に書き込むように構成されている。また、本実施形態に係る画像形成装置1は、スキャナ画像転送装置110によるライトアクセスが単独で発生した場合には、ライトデータを分割しないでそのまま共有メモリ150に書き込むように構成されている。
これにより、本実施形態に係る画像形成装置1においては、スキャナ画像転送装置110によるメモリアクセスが単独で発生した際のメモリの利用効率を低下させることなく、スキャナ画像転送装置110によるライトアクセスとプロッタ画像転送装置120によるリードアクセスとが競合した場合の、両者からのメモリアクセス速度を向上させることが可能となる。
次に、本実施形態に係る画像形成装置1がスキャナ210にセットされた原稿の両面を同時に読み取り、その際に生成された読取画像データを共有メモリ150へ転送する際の処理について、図4及び図5を参照して説明する。
図4は、本実施形態に係る画像形成装置1がスキャナ210にセットされた原稿の両面を同時に読み取り、その際に生成された読取画像データをスキャナ画像転送装置110へ転送する際のスキャナユニット200の処理について説明するためのフローチャートである。図5は、本実施形態に係る画像形成装置1がスキャナ210にセットされた原稿の両面を同時に読み取り、その際に生成された読取画像データを共有メモリ150へ転送する際のコントローラ100の処理について説明するためのフローチャートである。
図4に示すように、スキャナユニット200におけるスキャナ画像転送装置110への読取画像データの転送開始に際して、スキャナ210は、CPU130からの指示に従って原稿の両面の読み取りを開始する(S401)。スキャナ210が原稿の読み取りを開始すると、データ振分部221は、表面スキャナ211により生成された表面の読取画像データをデータ転送部223に、裏面スキャナ212により生成された裏面の読取画像データをローカルメモリ制御部222に、それぞれ振り分けて転送する(S402)。
尚、上述したように、このとき生成された読取画像データは、スキャナ210によるスキャン動作による制約(一度のスキャン動作で一ライン分の読み取りしかできない)のため、ライン単位で一定の間隔毎にラインデータとして生成されて一定の周期(ライン周期)毎に転送される。ローカルメモリ制御部222は、CPU130からの指示に従って、データ振分部221から転送されてきた裏面の読取画像データをローカルメモリ230に蓄積する(S403)。
一方、データ転送部223は、CPU130からの指示に従って、データ振分部221から転送されてきた表面の読取画像データ(直送画像データ)をコマンド単位に分割して複数のライトデータを生成し(S404)、ライトコマンドを生成して夫々のライトデータに付加する(S405)。
データ転送部223は、CPU130からの指示に従って、ライトデータをライン周期でスキャナ画像転送装置110に転送する(S406)。そして、データ転送部223は、スキャナ画像転送装置110に表面の読取画像データ(直送画像データ)を全て転送し終えたか否かを判断する(S407)。
データ転送部223が、S407の判断処理において、全ての読取画像データ(直送画像データ)を転送し終えていないと判断した場合には(S407/NO)、画像形成装置1は、全ての読取画像データ(直送画像データ)をスキャナ画像転送装置110に転送し終えるまでS404〜S407と同様の処理を行う。
一方、データ転送部223が、S407の判断処理において、全ての読取画像データ(直送画像データ)を転送し終えたと判断した場合には(S407/YES)、ローカルメモリ制御部222は、CPU130からの指示に従って、ローカルメモリ230から一旦蓄積しておいた裏面の読取画像データ(蓄積画像データ)を読み出してデータ転送部223に転送する(S408)。
そして、画像形成装置1は、データ転送部223に転送された裏面の読取画像データ(蓄積画像データ)についても、表面と同様、S404〜S407と同様の処理を行う(S408〜S412)。
尚、蓄積画像データにおけるS411の処理においては、直送画像データにおけるS406の処理とは異なり、読取画像データ(ライトデータ)は、ライン周期に関係なく連続的にスキャナ画像転送装置110に転送される。これは、上述したように、画像入力装置220は、読取画像データをローカルメモリ230に一旦蓄積して後からまとめて転送する場合には、もはやスキャン動作による制約からは解放されているためである。
このようにして、本実施形態に係るスキャナユニット200は、スキャナ210で生成された読取画像データをスキャナ画像転送装置110に転送する際の処理を終了する。
一方で、スキャナユニット200からスキャナ画像転送装置110へ読取画像データが転送されてくると、図5に示すように、コントローラ100における共有メモリ150への読取画像データの転送開始に際して、データ判断部111は、CPU130からの指示に従って、リードアクセス通知部122から受信したリードアクセス通知信号における信号状態を判断することにより、スキャナユニット200から転送されてきた読取画像データをデータ書込部113に入力するのかコマンド分割部112に入力するのかを判断する。(S501)。
データ判断部111は、S501の判断処理において、リードアクセス通知部122から受信したリードアクセス通知信号における信号状態がLowであると判断した場合には、(S501/Low)、スキャナユニット200から転送されてきた読取画像データをデータ書込部113に入力する(S502)。即ち、データ判断部111は、プロッタ画像転送装置120によるリードアクセスがなく、スキャナ画像転送装置110が単独でライトアクセスする場合には、スキャナユニット200から転送されてきた読取画像データをデータ書込部113に入力する。
データ書込部113は、データ判断部111から読取画像データが入力されると、アービタ160に対してライトアクセス要求を行い、アービタ160による調停(メモリアクセス制御)に従って、単独で共有メモリ150にアクセスして、データ判断部111から入力された読取画像データ(ライトデータ)を共有メモリ150に書き込む(S503)。
このときのスキャナ画像転送装置110による共有メモリ150へのメモリアクセスの様子について、図6及び図7を参照して説明する。
図6は、本実施形態に係るスキャナ画像転送装置110による直送画像データのライトアクセスが単独で発生した場合の、アービタ160上の伝送バスにおけるデータ転送期間を示すタイミングチャートである。
図7は、本実施形態に係るスキャナ画像転送装置110による蓄積画像データのライトアクセスが単独で発生した場合の、アービタ160上の伝送バスにおけるデータ転送期間を示すタイミングチャートである。
尚、本実施形態においては、アービタ160の動作周波数よりも共有メモリ150の動作周波数の方が速い場合について説明する。そのため、本実施形態においては、共有メモリ150を制御するための図示しない共有メモリコントローラ内部のラインバッファへのラインデータの一時格納により、アービタ160上の伝送バスにおいては、メモリリードとメモリライトとが同時刻に発生するタイミングが存在する。
また、本実施形態においては、ライトコマンドとライトデータとがスプリットされておらず、その両者の転送についてアービタ160上の共通の伝送バスが使用される例について説明するが、その両者がスプリットされているスプリットトランザクションの場合であっても同様である。
図6に示すように、本実施形態に係るスキャナ画像転送装置110は、直送画像データのライトアクセスを単独で行う場合、直送画像データをスキャナライン周期毎にライン単位で共有メモリ150に書き込む。
即ち、図6に示すように、本実施形態に係るスキャナ画像転送装置110は、直送画像データのライトアクセスを単独で行う場合、スキャナライン周期の開始を待って、ライン単位で直送画像データを共有メモリ150に書き込む。そして、スキャナ画像転送装置110は、ライン単位での直送画像データの共有メモリ150への書き込みが完了すると、1ライン当たりのデータ書き込み期間(以下、「ラインデータ書込期間」とする)の完了から次のスキャナライン周期のタイミングまでの残りの期間(以下、「スキャナライン残余期間」とする)が経過するまで待機する。スキャナ画像転送装置110は、スキャナライン残余期間が経過して次のスキャナライン周期が開始されると、再びライン単位で直送画像データを共有メモリ150に書き込む。
また、図7に示すように、本実施形態に係るスキャナ画像転送装置110は、蓄積画像データのライトアクセスを単独で行う場合、蓄積画像データをスキャナライン周期に関係なく連続的にライン単位で共有メモリ150に書き込む。
即ち、図7に示すように、スキャナ画像転送装置110は、蓄積画像データのライトアクセスを単独で行う場合、スキャナライン残余期間の経過を待たずに、連続的にライン単位で蓄積画像データを共有メモリ150に書き込む。これは、上述したように、画像入力装置220は、読取画像データをローカルメモリ230に一旦蓄積して後からまとめて転送する場合には、もはやスキャン動作による制約からは解放されているためである。
一方、データ判断部111は、S501の判断処理において、リードアクセス通知部122から受信したリードアクセス通知信号における信号状態がHighであると判断した場合には(S501/High)、スキャナユニットから転送されてきた読取画像データをコマンド分割部112に入力する(S504)。即ち、データ判断部111は、プロッタ画像転送装置120によるリードアクセスが発生しており、スキャナ画像転送装置110によるライトアクセスとプロッタ画像転送装置120によるリードアクセスとが競合する場合には、スキャナユニット200から転送されてきた読取画像データをコマンド分割部112に入力する。
コマンド分割部112は、データ判断部111から入力された読取画像データを各ライトコマンド単位で複数に分割してより細かいライトデータとしてから(S505)、データ書込部113に入力する(S506)。このように、スキャナ画像転送装置110によるライトアクセスとプロッタ画像転送装置120によるリードアクセスとが競合した場合に、コマンド分割部112がライトデートをライトマンド単位で複数に分割することを本実施形態における要旨の一つとしている。
データ書込部113は、コマンド分割部112から分割後のライトデータが入力されると、アービタ160に対してライトアクセス要求を行い、アービタ160による調停(メモリアクセス制御)に従って、プロッタ画像転送装置120と交互に共有メモリ150にアクセスして、データ判断部111から入力された分割後のライトデータを共有メモリ150に書き込む(S507)。
このときのスキャナ画像転送装置110及びプロッタ画像転送装置120による共有メモリ150へのメモリアクセスの様子について、図8及び図10を参照して。
図8は、本実施形態に係るスキャナ画像転送装置110による直送画像データのライトアクセスとプロッタ画像転送装置120によるリードアクセスとが競合した場合の、アービタ160上の伝送バスにおけるデータ転送期間を示すタイミングチャートである。
図10は、本実施形態に係るスキャナ画像転送装置110による蓄積画像データのライトアクセスとプロッタ画像転送装置120によるリードアクセスとが競合した場合の、アービタ160上の伝送バスにおけるデータ転送期間を示すタイミングチャートである。
図8に示すように、スキャナ画像転送装置110による直送画像データのライトアクセスとプロッタ画像転送装置120によるリードアクセスとが競合した場合、スキャナ画像転送装置110及びプロッタ画像転送装置120はそれぞれ、図6の場合と同様にして、ライン周期毎にライン単位で共有メモリ150にアクセスする。尚、このとき、スキャナ画像転送装置110及びプロッタ画像転送装置120は、ライトデータ単位で交互に共有メモリ150にアクセスする。
即ち、図8に示すように、本実施形態に係るスキャナ画像転送装置110は、プロッタ画像転送装置120と競合してライトアクセスを行う場合、スキャナライン周期の開始を待って、ライン単位で直送画像データを共有メモリ150に書き込む。そして、スキャナ画像転送装置110は、ライン単位での直送画像データの共有メモリ150への書き込みが完了すると、スキャナライン残余期間が経過するまで待機する。スキャナ画像転送装置110は、スキャナライン残余期間が経過して次のスキャナライン周期が開始されると、再びライン単位で直送画像データを共有メモリ150に書き込む。
尚、このとき、図8に示すように、直送画像データにおける各ライトデータは、図6の場合とは異なり複数に分割されているため、ラインデータ書込期間は、図6の場合と比較して長くなる。
また、図8に示すように、本実施形態に係るプロッタ画像転送装置120は、スキャナ画像転送装置110と競合してリードアクセスを行う場合、プロッタライン周期の開始を待って、ライン単位で出力画像データを共有メモリ150から読み出す。
尚、このとき、図8に示すように、プロッタ画像転送装置120は、スキャナ画像転送装置110によるライトアクセスの合間にリードコマンドをアービタ160に通知し、通知してから実際にリードデータが返ってくるまでの期間(以下、「レスポンスタイム」とする)が経過するまで待機する必要がある。このように、プロッタ画像転送装置120は、スキャナ画像転送装置110と競合してリードアクセスを行う場合、レスポンスタイムが発生するため、スキャナ画像転送装置110によるライトアクセスに比べてアクセス期間が長くなる。
そして、プロッタ画像転送装置120は、ライン単位での出力画像データの共有メモリ150からの読み出しが完了すると、1ライン当たりのデータ読み出し期間(以下、「リードデータ読出期間」とする)の完了から次のプロッタライン周期のタイミングまでの残りの期間(以下、「プロッタライン残余期間」とする)が経過するまで待機する。プロッタ画像転送装置120は、プロッタライン残余期間が経過して次のプロッタライン周期が開始されると、再びライン単位で出力画像データを共有メモリ150から読み出す。
ここで、スキャナ画像転送装置110が、プロッタ画像転送装置120と競合して共有メモリ150にアクセスした場合であっても、直送画像データを分割しないでそのまま共有メモリ150に書き込むと仮定した際の、スキャナ画像転送装置110及びプロッタ画像転送装置120による共有メモリ150へのメモリアクセスの様子について、図9を参照して説明する。
図9は、スキャナ画像転送装置110による直送画像データのライトアクセスとプロッタ画像転送装置120によるリードアクセスとが競合した場合であっても、直送画像データを分割しないでそのまま共有メモリ150に書き込むと仮定した際の、アービタ160上の伝送バスにおけるデータ転送期間を示すタイミングチャートである。
図9に示すように、スキャナ画像転送装置110による直送画像データのライトアクセスとプロッタ画像転送装置120によるリードアクセスとが競合した場合であっても、直送画像データを分割しないでそのまま共有メモリ150に書き込むと仮定した際には、図8の場合と比較してプロッタライン残余期間が短くなっている。
即ち、スキャナ画像転送装置110による直送画像データのライトアクセスとプロッタ画像転送装置120によるリードアクセスとが競合した場合、ラインデータを分割した方がプロッタライン残余期間が長くなる。
従って、スキャナ画像転送装置110による直送画像データのライトアクセスとプロッタ画像転送装置120によるリードアクセスとが競合した場合、ラインデータを分割した方が、その分、プロッタライン周期を短くすることが可能となる。このとき、スキャナライン残余期間は反対に短くなってしまうが、それでもプロッタライン残余期間に比べて長いため、スキャナライン周期についてもプロッタライン周期と同程度だけ短くすることが可能となる。
このように、スキャナ画像転送装置110による直送画像データのライトアクセスとプロッタ画像転送装置120によるリードアクセスとが競合した場合、ライトデータを分割してより細かいライトデータにしてから共有メモリ150に書き込むことにより、ライトデータを分割しなかった場合に比べて、プロッタライン残余期間を長くすることが可能となる。
そして、プロッタライン残余期間が長くなるということは、その分だけ、各プロッタライン周期における1ライン当たりのデータ読み出し期間(リードデータ読出期間)が短くなっているということである。従って、本実施形態に係る画像形成装置1は、その分、プロッタライン周期を短くすることが可能となり、それに伴って、スキャナライン周期も短くすることが可能となる。
その結果、本実施形態に係る画像形成装置1は、スキャナ画像転送装置110によるメモリアクセスが単独で発生した際のメモリの利用効率を低下させることなく、スキャナ画像転送装置110によるライトアクセスとプロッタ画像転送装置120によるリードアクセスとが競合した場合の、両者からのメモリアクセス速度を向上させることが可能となる。
また、図10に示すように、スキャナ画像転送装置110による蓄積画像データのライトアクセスとプロッタ画像転送装置120によるリードアクセスとが競合した場合、スキャナ画像転送装置110は、図7の場合と同様にして、スキャナライン周期に関係なく、連続的にライン単位で読取画像データを共有メモリ150に書き込む。
また、図10に示すように、スキャナ画像転送装置110による蓄積画像データのライトアクセスとプロッタ画像転送装置120によるリードアクセスとが競合した場合、プロッタ画像転送装置120は、図8の場合と同様にして、プロッタライン周期毎にライン単位で共有メモリ150にアクセスする。
尚、このとき、スキャナ画像転送装置110及びプロッタ画像転送装置120は、ライトデータ単位で交互に共有メモリ150にアクセスする。
即ち、図10に示すように、本実施形態に係るスキャナ画像転送装置110は、プロッタ画像転送装置120と競合してライトアクセスを行う場合、スキャナライン残余期間の経過を待たずに、連続的にライン単位で蓄積画像データを共有メモリ150に書き込む。これは、上述したように、画像入力装置220は、読取画像データをローカルメモリ230に一旦蓄積して後からまとめて転送する場合には、もはやスキャン動作による制約からは解放されているためである。
尚、このとき、図10に示すように、蓄積画像データにおける各ライトデータは、図7の場合とは異なり複数に分割されているため、ラインデータ書込期間は、図7の場合と比較して長くなる。
また、図10に示すように、本実施形態に係るプロッタ画像転送装置120は、スキャナ画像転送装置110と競合してリードアクセスを行う場合、図8の場合と同様にして、プロッタライン周期の開始を待って、ライン単位で出力画像データを共有メモリ150から読み出す。
尚、このとき、図10に示すように、プロッタ画像転送装置120は、図8の場合と同様にして、スキャナ画像転送装置110によるライトアクセスの合間にリードコマンドをアービタ160に通知してからレスポンスタイムが経過するまで待機する。このように、プロッタ画像転送装置120は、スキャナ画像転送装置110と競合してリードアクセスを行う場合、レスポンスタイムが発生するため、スキャナ画像転送装置110によるライトアクセスに比べてアクセス期間が長くなる。
そして、プロッタ画像転送装置120は、ライン単位での出力画像データの共有メモリ150からの読み出しが完了すると、プロッタライン残余期間が経過するまで待機する。プロッタ画像転送装置120は、プロッタライン残余期間が経過して次のプロッタライン周期が開始されると、再びライン単位で出力画像データを共有メモリ150から読み出す。
ここで、スキャナ画像転送装置110が、プロッタ画像転送装置120と競合して共有メモリ150にアクセスした場合であっても、蓄積画像データを分割しないでそのまま共有メモリ150に書き込むと仮定した際の、スキャナ画像転送装置110及びプロッタ画像転送装置120による共有メモリ150へのメモリアクセスの様子について、図11を参照して説明する。
図11は、スキャナ画像転送装置110による直送画像データのライトアクセスとプロッタ画像転送装置120によるリードアクセスとが競合した場合であっても、蓄積画像データを分割しないでそのまま共有メモリ150に書き込むと仮定した際の、アービタ160上の伝送バスにおけるデータ転送期間を示すタイミングチャートである。
図11に示すように、スキャナ画像転送装置110による蓄積画像データのライトアクセスとプロッタ画像転送装置120によるリードアクセスとが競合した場合であっても、直送画像データを分割しないでそのまま共有メモリ150に書き込むと仮定した際には、図10の場合と比較してプロッタライン残余期間が短くなっている。
即ち、スキャナ画像転送装置110による蓄積画像データのライトアクセスとプロッタ画像転送装置120によるリードアクセスとが競合した場合、ラインデータを分割した方がプロッタライン残余期間が長くなる。
従って、スキャナ画像転送装置110による蓄積画像データのライトアクセスとプロッタ画像転送装置120によるリードアクセスとが競合した場合、ラインデータを分割した方が、その分、プロッタライン周期を短くすることが可能となる。このとき、スキャナライン残余期間は反対に短くなってしまうが、それでもプロッタライン残余期間に比べて長いため、スキャナライン周期についてもプロッタライン周期と同程度だけ短くすることが可能となる。
このように、スキャナ画像転送装置110による蓄積画像データのライトアクセスとプロッタ画像転送装置120によるリードアクセスとが競合した場合、ライトデータを分割してより細かいライトデータにしてから共有メモリ150に書き込むことにより、ライトデータを分割しなかった場合に比べて、プロッタライン残余期間が長くすることが可能となる。
そして、プロッタライン残余期間が長くなるということは、その分だけ、各プロッタライン周期における1ライン当たりのデータ読み出し期間(リードデータ読出期間)が短くなっているということである。従って、本実施形態に係る画像形成装置1は、その分、プロッタライン周期を短くすることが可能となり、それに伴って、スキャナライン周期も短くすることが可能となる。
その結果、本実施形態に係る画像形成装置1は、スキャナ画像転送装置110によるメモリアクセスが単独で発生した際のメモリの利用効率を低下させることなく、スキャナ画像転送装置110によるライトアクセスとプロッタ画像転送装置120によるリードアクセスとが競合した場合の、両者からのメモリアクセス速度を向上させることが可能となる。
また、スキャナ画像転送装置110は、蓄積画像データを共有メモリ150に書き込む際にはスキャナライン周期に関係なく連続的にライン単位で共有メモリ150にアクセスするため、その分、プロッタ画像転送装置120がリードアクセスするまでの待ち時間が長くなる。従って、プロッタライン残余期間は、直送画像データを共有メモリ150に書き込む場合と、蓄積画像データを共有メモリ150に書き込む場合とでは、後者の方が短くなる。そのため、ラインデータを分割することによるプロッタライン残余期間の延長、即ち、リードデータ読出期間の短縮は、蓄積画像データを共有メモリ150に書き込む場合、さらに効果的となる。
そして、図5に示すように、スキャナ画像転送装置110は、読取画像データの共有メモリ150への書き込みが完了するまで(S508)、S501以降の処理と同様の処理を繰り返し実行する。
以上、説明したように、本実施形態に係る画像形成装置1は、スキャナ画像転送装置110によるライトアクセスとプロッタ画像転送装置120によるリードアクセスとが競合した場合、ライトデータを分割してより細かいライトデータにしてから共有メモリ150に書き込むように構成されている。また、本実施形態に係る画像形成装置1は、スキャナ画像転送装置110によるライトアクセスが単独で発生した場合には、ライトデータを分割しないでそのまま共有メモリ150に書き込むように構成されている。
これにより、本実施形態に係る画像形成装置1においては、スキャナ画像転送装置110によるメモリアクセスが単独で発生した際のメモリの利用効率を低下させることなく、スキャナ画像転送装置110によるライトアクセスとプロッタ画像転送装置120によるリードアクセスとが競合した場合の、両者からのメモリアクセス速度を向上させることが可能となる。
尚、上記の説明においては、直送画像データと蓄積画像データとを区別しない例について説明したが、両者を区別するように構成されていても良い。このような場合、画像形成装置1は、図12若しくは図13に示すように、上記の構成に加えて、画像入力装置220にタグ情報挿入部224を含み、スキャナ画像転送装置110にタグ情報監視部114を含むように構成される。
タグ情報挿入部224は、データ転送部223に転送されてきた読取画像データが、直送画像データであるのか、それとも、蓄積画像データであるのかを示す情報をタグ情報として生成して、データ転送部223において生成されるライトコマンドに挿入する。これにより、各ライトデータは、直送画像データであるのか、それとも、蓄積画像データであるのかが識別される。即ち、本実施形態においては、タグ情報挿入部224が、識別情報出力部として機能する。
タグ情報監視部114は、スキャナユニット200から転送されてきた読取画像データのタグ情報を監視し、タグ情報を検知するとそのタグ情報を解析して、その解析結果に応じてローカルメモリ通知信号における信号状態を変化させてデータ判断部111に送信する。
即ち、タグ情報監視部114は、スキャナユニット200から転送されてきた読取画像データのタグ情報を監視し、その読取画像データが直送画像データであると判断した場合には直送画像データの転送中はローカルメモリ通知信号をLowに保ち、一方、その読取画像データが蓄積画像データであると判断した場合には蓄積画像データの転送中はローカルメモリ通知信号をHighに保つ。これにより、データ判断部111は、画像入力装置220から転送されてきた読取画像データが直送画像データか蓄積画像データかを識別することが可能となる。
従って、読取画像データの種類によってライトデータを分割するか否かを切り替えるように構成されている場合、データ判断部111は、リードアクセス通知部122から受信したリードアクセス通知信号における信号状態及びタグ情報監視部114から受信したローカルメモリ通知信号における信号状態を判断し、判断結果に応じて、画像入力装置220から転送されてきた読取画像データをコマンド分割部112若しくはデータ書込部113に入力することになる。
また、上記の説明においては、データ振分部221は、表面スキャナ211により生成された表面の読取画像データをデータ転送部223に、裏面スキャナ212により生成された裏面の読取画像データをローカルメモリ制御部222に、それぞれ振り分けて転送する例について説明したが、その反対であっても良い。即ち、データ振分部221は、裏面スキャナ212により生成された裏面の読取画像データをデータ転送部223に、表面スキャナ211により生成された表面の読取画像データをローカルメモリ制御部222に、それぞれ振り分けて転送するように構成されていても良い。
また、上記の説明においては、両面読取時における処理について説明したが、片面のみの読取時においても適用可能である。即ち、表面スキャナ211若しくは裏面スキャナ212により原稿の片面のみが読み取られて生成された読取画像データが、一旦ローカルメモリ230に蓄積されて、1ページ分まとめて共有メモリ150に転送されるように構成されていても良い。また、このとき、ローカルメモリ230に1ページ分の読取画像データが蓄積されるのを待たずに、所定の単位でローカルメモリ230から逐次転送されるように構成されていても良い。
また、上記の説明においては、原稿の表面と裏面とを同時に読み取る際、原稿の片面についての読取画像データについてはリアルタイムで共有メモリに転送し、もう一方の面についての読取画像データについてはローカルメモリ230に一旦蓄積する例について説明したが、ローカルメモリ230が両面の読取画像データを同時に格納できるだけの記憶容量を備える場合には、両面の読取画像データを同時に一旦ローカルメモリ230に蓄積するように構成されていても良い。