(57)【要約】【課題】メモリに画像データを書き込む処理と書きこまれた画像データの処理とを並列して行う情報処理装置を提供すること。【解決手段】周辺機器１１が生成するデータのうち所定量がデータ記憶手段１８に記憶される毎にデータに対し処理を施す情報処理装置１００において、データ記憶手段を複数の領域に区分した際の各領域の終了アドレスを、ソフトウェア処理を経ることなく、終了アドレス記憶手段又はハードウェア回路の計算結果から取得するアドレス情報取得手段３０と、周辺機器が前記データと共に出力する記憶先アドレスと、終了アドレスを比較して一致検出信号を出力する比較手段４０１と、一致した場合、ソフトウェア処理により起動され、データ記憶手段の領域に記憶されたデータに処理を施す処理手段２１等とを有し、一致した場合、アドレス情報取得手段は、次に周辺機器がデータを書き込む領域の終了アドレスを取得して比較手段に供給する、ことを特徴とする。【選択図】図２
2014081760.tif 000002
【特許請求の範囲】
【請求項１】
周辺機器が生成するデータのうち所定量がデータ記憶手段に記憶される毎に所定量の前記データに対し処理を施す情報処理装置において、
前記データ記憶手段を複数の領域に区分した際の各領域の終了アドレスを、ソフトウェア処理を経ることなく、終了アドレス記憶手段又はハードウェア回路の計算結果から取得するアドレス情報取得手段と、
前記周辺機器が前記データと共に出力する記憶先アドレスと、前記終了アドレスを比較して、所定の範囲内で一致した場合に一致検出信号を出力する比較手段と、
前記比較手段が一致検出信号を出力した場合、ソフトウェア処理により起動され、前記データ記憶手段の前記領域に記憶された前記データに処理を施す処理手段と、を有し、
前記比較手段が一致検出信号を出力した場合、前記アドレス情報取得手段は、次に前記周辺機器が前記データを書き込む前記領域の終了アドレスを取得して前記比較手段に供給する、ことを特徴とする情報処理装置。
【請求項２】
１つの前記領域当たりのデータサイズを記憶するデータサイズ記憶手段と、
前記終了アドレスを記憶する終了アドレス記憶手段と、
前記周辺機器が前記データの書き込みを開始する前に、前記データサイズ記憶手段に前記データサイズを、前記終了アドレス記憶手段に前記終了アドレスをそれぞれ設定するパラメータ設定手段と、
前記比較手段が一致検出信号を出力した場合、前記終了アドレス記憶手段に記憶されている前記終了アドレスに前記データサイズを加算して、前記周辺機器が次に前記データを書き込む前記領域の前記終了アドレスを算出する算出手段と、を有し、
前記アドレス情報取得手段は、前記比較手段が一致検出信号を出力した時、前記算出手段が算出した前記終了アドレスを前記比較手段に供給すると共に、前記終了アドレス記憶手段の前記終了アドレスを更新する、
ことを特徴とする請求項１記載の情報処理装置。
【請求項３】
前記データを前記領域に分割して記憶した場合の各領域の前記終了アドレスを、前記周辺機器が前記データ記憶手段への前記データの書き込みを開始する前に算出するアドレス算出手段と、
各領域の前記終了アドレス及び前記領域の次に前記データが書き込まれる次領域の前記終了アドレスの記憶場所をアドレス記憶手段に、前記周辺機器が前記データの書き込みを開始する前記領域の前記終了アドレスの記憶場所を前記アドレス情報取得手段に、それぞれ設定するアドレス設定手段と、
前記周辺機器が前記データ記憶手段への前記データの書き込みを開始した場合、前記アドレス情報取得手段は設定された前記アドレス記憶手段の前記記憶場所から、前記周辺機器が前記データの書き込みを開始する前記領域の前記終了アドレスを取得して前記比較手段に供給すると共に、次領域の前記終了アドレスの記憶場所を取得し、
前記比較手段が一致検出信号を出力した場合、前記アドレス情報取得手段は、前記アドレス記憶手段における次領域の前記終了アドレスの記憶場所から、次領域の前記終了アドレスを取得して前記比較手段に供給すると共に、該次領域の次に前記データが書き込まれる次領域の前記終了アドレスの記憶場所を読み出す、
ことを特徴とする請求項１記載の情報処理装置。
【請求項４】
前記比較手段が出力する一致検出信号を検出して、ソフトウェア処理により起動されることなく、前記データ記憶手段の前記領域に記憶された所定量のデータに処理を施す処理手段を有する
ことを特徴とする請求項１〜３いずれか１項記載の情報処理装置。
【請求項５】
前記比較手段は、前記周辺機器が前記データと共に出力する前記記憶先アドレスの所定数の下位ビットをマスクして、前記終了アドレスと一致するか否かを比較する、
ことを特徴とする請求項１〜４いずれか１項記載の情報処理装置。
【請求項６】
請求項１〜５いずれか１項記載の情報処理装置と、
原稿を光学的に読み取って画像データを生成する画像データ生成手段と、を有し、
前記比較手段は、前記周辺機器である前記画像データ生成手段から前記データと共に出力される前記記憶先アドレスと前記終了アドレスを比較する、
ことを特徴とする画像形成装置。
【請求項７】
周辺機器が生成するデータのうち所定量がデータ記憶手段に記憶される毎に所定量の前記データに対し処理を施す情報処理装置のデータ処理方法において、
アドレス情報取得手段が、前記データ記憶手段を複数の領域に区分した際の各領域の終了アドレスを、ソフトウェア処理を経ることなく、終了アドレス記憶手段又はハードウェア回路の計算結果から取得するステップと、
比較手段が、前記周辺機器が前記データと共に出力する記憶先アドレスと、前記終了アドレスを比較して、所定の範囲内で一致した場合に一致検出信号を出力するステップと、
前記比較手段が一致検出信号を出力した場合、ソフトウェア処理により起動される処理手段が、前記データ記憶手段の前記領域に記憶された前記データに処理を施すステップと、
前記比較手段が一致検出信号を出力した場合、前記アドレス情報取得手段が、次に前記周辺機器が前記データを書き込む前記領域の終了アドレスを取得して前記比較手段に供給するステップと、を有することを特徴とするデータ処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリから周辺機器又は周辺機器からメモリに領域単位にデータを転送する情報処理装置に関する。
【背景技術】
【０００２】
画像読み取り装置や複合機などの画像形成装置などでは、スキャナが読み取った画像データの高速なメモリ（例えばＲＡＭ）への書き込み、及び、書き込まれた画像データに処理を施すことを並行して行うことが多い。ＲＡＭは、ラインセンサ（主走査方向の濃度情報を１ラインずつ読み取る）が読み出す濃度情報が複数ライン分格納されるバンドに分割され、バンドがメモリフルになった時にＣＰＵに割込みが発生するようになっている。ＣＰＵは割込みを契機に画像データをＨＤＤ（Hard  Disk  Drive）などの不揮発性メモリに退避させる。このような手法により、１ページ分の画像データのデータサイズよりも小さいＲＡＭサイズを搭載していても、ジョブの実行が可能になる（例えば、特許文献１参照。）。
【０００３】
図１に基づきより詳細に説明する。図１は、特許文献１に記載されたメモリに対する画像データの書き込みを模式的に説明する図の一例である。ユーザが読み取り開始の操作を行うと、ＣＰＵはメモリにディスクリプタ情報を書き込みスキャナに読み取り開始を指示する。スキャナは、メモリ上のディスクリプタ情報を読み出し読み取りを開始する。スキャナはディスクリプタ情報で指示される開始アドレスから画像データを書き込んでいく。
【０００４】
ディスクリプタ情報はバンド毎に設定されており、スキャナは１つのバンドへの書き込みが終了すると次のディスクリプタ情報を読み出して次のバンドに画像データを書き込む。
【０００５】
メモリのニアエンドアドレスまで到達すると、スキャナは、元のバンドを指示するディスクリプタ情報に従って、元のバンドに画像データを書き込む。すなわち、１つのバンドは繰り返し使用できるようになっていて、１ページ分の画像データサイズよりもメモリのサイズを小さくすることが可能になっている。また、原稿が長尺であるため画像データのサイズが大きくなっても、通常の原稿と同様に対応できる。
【０００６】
一方、ＣＰＵとしては、メモリフルのバンドから処理を開始しメモリフルのバンドを早期に開放する必要がある、しかし、スキャナがマスタとなって画像データを転送するため、ＣＰＵはメモリフルを直接、観測できない。このため、ＣＰＵはバンドがメモリフルになったことを割込みにより検出している。
【０００７】
バンドの終了アドレスをアドレスポイントといい、アドレスポイントはディスクリプタ情報から算出可能になっている。このため、ＣＰＵは、ＣＰＵがエンジンのためにメモリに書き込んだディスクリプタ情報からソフト的にアドレスポイントを算出して、割込み制御用のレジスタに設定するという処理を行っている。
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、従来の手法では、ＣＰＵは割込みにより次のバンドのアドレスポイントを設定するため、アドレスポイントの設定に時間がかかるという問題がある。スキャナはバンドに相当する画像データを読み取り、ディスクリプタ情報から図１の１番目のバンドの開始アドレスとデータサイズを取得して画像データを書き込む。割込み制御用のレジスタがスキャナのライトアドレスがアドレスポイントに一致したと判定すると、ＣＰＵは割込みにより１番目のバンドのメモリフルを検出する。
【０００９】
割込み制御用のレジスタは１つしかないので、２番目のバンドのメモリフルを検出できるように、ＣＰＵは２番目のバンドのアドレスポイントを算出して割込み制御用のレジスタに設定する。この間、スキャナは２番目のバンドに相当する画像データを読み取っている。
【００１０】
このように、ＣＰＵはスキャナがバンド分の画像データを読み取る間に、次のバンドのアドレスポイントを設定する必要がある。この時間は、次のようにして算出される。
「１ラインの読取速度×バンドのライン数」
従来は、この時間内に次バンドのアドレスポイントの設定を行えることが制御の前提であった。ところが、スキャナの読取線速をさらに速くしたいという要請や、ＲＡＭのサイズを少容量化したいという要請がある。これらの要請に応えるために１バンドの処理ライン単位を少なくした場合、「1ラインの読取速度×バンドのライン数」の時間内に次バンドのアドレスポイントの設定が困難になることが懸念される。この場合、アドレスポイントが設定されないので割込みが発生せず、読取処理が停止してしまう。
【００１１】
本発明は、１バンドの読み取り時間が短くなっても、次バンドのディスクリプタ情報を設定し、画像メモリに画像データを書き込む処理と書きこまれた画像データの処理とを並列して行うことが可能な情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【００１２】
本発明は、周辺機器が生成するデータのうち所定量がデータ記憶手段に記憶される毎に所定量の前記データに対し処理を施す情報処理装置において、前記データ記憶手段を複数の領域に区分した際の各領域の終了アドレスを、ソフトウェア処理を経ることなく、終了アドレス記憶手段又はハードウェア回路の計算結果から取得するアドレス情報取得手段と、前記周辺機器が前記データと共に出力する記憶先アドレスと、前記終了アドレスを比較して、所定の範囲内で一致した場合に一致検出信号を出力する比較手段と、前記比較手段が一致検出信号を出力した場合、ソフトウェア処理により起動され、前記データ記憶手段の前記領域に記憶された前記データに処理を施す処理手段と、を有し、前記比較手段が一致検出信号を出力した場合、前記アドレス情報取得手段は、次に前記周辺機器が前記データを書き込む前記領域の終了アドレスを取得して前記比較手段に供給する、ことを特徴とする。
【発明の効果】
【００１３】
画像メモリに画像データを書き込む処理と書きこまれた画像データの処理とを並列して行うことが可能な情報処理装置ができる。
【図面の簡単な説明】
【００１４】
【図１】ＲＡＭに対する画像データの書き込みを模式的に説明する図の一例である。
【図２】本実施形態の画像形成装置の概略的な特徴を説明する図の一例である。
【図３】画像形成装置の概略構成図の一例である。
【図４】コントローラの構成図の一例である。
【図５】スキャナが生成した画像データをメインメモリに書き出す動作を説明する図の一例である。
【図６】PCIe Rootの構成図の一例である。
【図７】ダイレクトビデオ入力Ｉ／Ｆ制御部の構成図の一例である。
【図８】スキャナ、ダイレクトビデオ入力Ｉ／Ｆ制御部、及び、ＣＰＵのシーケンス図の一例である。
【図９】ダイレクトビデオ入力Ｉ／Ｆ制御部の構成図の一例である。
【図１０】各回路の動作手順の一例を示すフローチャートである。
【図１１】ダイレクトビデオ入力Ｉ／Ｆ制御部の構成図の一例である（実施例２）。
【図１２】各回路の動作手順の一例を示すフローチャートである（実施例２）。
【発明を実施するための形態】
【００１５】
以下、本発明を実施するための形態について図面を参照しながら説明する。しかしながら、本発明の技術的範囲が、本実施の形態に限定されるものではない。
【００１６】
図２は、本実施形態の画像形成装置の概略的な特徴を説明する図の一例である。図２（ａ）はハード的にアドレスポイントを算出する実施例の概略を、図２（ｂ）は予めアドレスポイントを算出しておき記憶しておく実施例の概略をそれぞれ示す。
【００１７】
Ａ．ハード的にアドレスポイントを算出
（１）ＣＰＵはスキャナに読み取り開始を指示する前に、バンドがメモリフルとなるアドレスポイントを算出するために必要なパラメータをレジスタ制御回路に設定しておく。パラメータは、最初のアドレスポイント、バンドのライン数や主走査幅などである。
（２）レジスタ制御回路はアドレス比較回路にアドレスポイントを設定する。
（３）アドレス比較回路はアドレスポイントとスキャナのライトアドレスを比較して、一致するとレジスタ制御回路に割り込みする。
（４）レジスタ制御回路は、割込みがある毎にパラメータからハード的にアドレスポイントを算出し、アドレス比較回路に設定する。
【００１８】
このように、割込みに対しハード的にアドレスポイントを算出することで、ＣＰＵがソフト的に算出する場合よりも早くアドレスポイントを算出できる。
【００１９】
Ｂ．予め全てのアドレスポイントを記憶しておく
（１）スキャナに読み取り開始を指示する前に、ＣＰＵは全てのアドレスポイントと次ディスクリプタポインタを予め算出し、メモリに記憶しておく。また、最初のアドレスポイントのディスクリプタポインタをディスクリプタ制御回路に設定する。
（２）ディスクリプタ制御回路はディスクリプタポインタに従いメモリからアドレスポイントと次ディスクリプタポインタを読み出す。ディスクリプタ制御回路は次ディスクリプタポインタを保持しておく。
（３）ディスクリプ制御回路はレジスタ制御回路を介してアドレス比較回路にアドレスポイントを設定する。
（４）アドレス比較回路はアドレスポイントとスキャナのライトアドレスを比較して、一致するとレジスタ制御回路に割り込みする。
（５）レジスタ制御回路は、アドレス比較回路が割込みを発生させる毎に、ディスクリプタ制御回路に通知して、メモリからアドレスポイントと次のディスクリプタポインタを読み出させる。
【００２０】
このように、割込みに対し予めアドレスポイントが用意されているので、ＣＰＵがソフト的に算出する場合よりも早くアドレスポイントを算出できる。また、ソフト的に算出するので容易に各バンドのサイズを変えることもできる。
【００２１】
〔構成例〕
図３は、画像形成装置の概略構成図の一例を示す。画像形成装置１００はエンジン側とコントローラ側とに分かれており、両者はPCI Expressなどの高速なバスで接続されている。エンジン側にはスキャナ１１とプロッタ１２が配置されているが、この他にＦＡＸエンジン等が配置されてもよい。
【００２２】
スキャナ１１は、コンタクトガラスやＡＤＦ（Auto Document Feeder）に載置された原稿を、ＣＣＤなどで構成されるラインセンサで光学的に読み取る装置である。ＣＣＤではカラーフィルター（ＲＧＢ）を通過した光が光電変換され、所定の解像度で原稿の濃淡が反映されたカラーの画像データが生成される。この画像データはコントローラ側のメインメモリ１８に書き込まれ、プロッタ１２が用紙に印刷したりＦＡＸエンジンが電話回線などから送信するために使用される。また、不図示の外部インタフェースから他の機器に送信される場合がある（SCAN  TO  E−MAILなど）。
【００２３】
プロッタ１２は、メインメモリ１８に書き込まれた画像データを用紙などの記録媒体に印刷する。プロッタ１２は、感光体、帯電器、露光手段、現像器、クリーニング装置、除電器、転写ベルト、紙搬送機構、定着器、給紙トレイ、排紙トレイ、などを有する画像形成手段である。このような電子写真方式の画像形成手段でなくインクジェット方式の画像形成手段でもよい。電子写真方式のプロッタ１２には、ＣＭＹＫの色毎に感光体等を用意するタンデム方式、４サイクル方式（中間転写体に順次４色のトナー画像を重ねて転写した後，中間転写体上の4色トナー画像を1回で用紙に転写する方式）などがある。
【００２４】
画像処理ＡＳＩＣ１３は、スキャナ１１より読み取られた画像データに対して画像処理を行いコントローラＡＳＩＣ１４へ画像データを出力する。スキャナ１１が読み取った画像データに対し、画像処理ＡＳＩＣ１３は、スキャナ１１のＣＣＤの特性の差異に応じて、この特性の補正を行う処理を行う。例えば、シェーディング補正や、γ変換、フィルタ処理、色変換（RGB→RGB）などである。補正により、スキャナ１１の違いに影響されず同じ原稿から同じ画像データが生成される。
【００２５】
また、画像処理ＡＳＩＣ１３は、コントローラＡＳＩＣ１４からの画像データをプロッタ１２にて印刷できるように画像処理したり、プロッタ１２の印刷タイミングにあわせて画像データを送る。例えば、メインメモリ１８の画像データに対して、スキュー補正、倍密処理、ジャギー補正、トリミング処理などを行う。また、このような補正処理は、ＣＭＹＫのそれぞれの画像データに行われ、画像処理ＡＳＩＣ１３は別々のタイミングでプロッタ１２へ画像データを送信する。
【００２６】
コントローラ側では、コントローラＡＳＩＣ１４、ＣＰＵ１５、チップセット１６、Ｉ／Ｏ ＡＳＩＣ１７、及び、メインメモリ１８が配置されている。なお、本実施形態の主要な特徴部に用いないブロックは省略されており、例えばＨＤＤ（Hard  Disk  Drive）を有していてもよい。ＨＤＤには、フォントデータ、画像データ、及び、プログラム等が蓄積される。
【００２７】
ＣＰＵ１５はコントローラ側及びエンジン側を含む画像形成装置１００の全体を制御して複写、印刷、スキャンなどのジョブを実行する。メインメモリ１８は、ＣＰＵ１５が本画像形成装置１００を制御するためのプログラムが展開されるワーク領域であり、また、扱う画像データなどを一時保管したりするメモリ（画像メモリ）である。メインメモリ１８は、特許請求の範囲のデータ記憶手段の一例として挙げられる。
【００２８】
チップセット１６は、ＣＰＵ１５がコントローラＡＳＩＣ１４、Ｉ／Ｏ ＡＳＩＣ１７及びメインメモリ１８へアクセスする際の橋渡しとなるためブリッジである。すなわち、チップセット１６はＣＰＵ１５からの要求に応じてコントローラＡＳＩＣ１４、Ｉ／Ｏ ＡＳＩＣ１７及びメインメモリ１８を制御したり、コントローラＡＳＩＣ１４、Ｉ／Ｏ ＡＳＩＣ１７及びメインメモリ１８の制御結果をＣＰＵ１５に通知する。
【００２９】
コントローラＡＳＩＣ１４は、チップセット１６越しのメインメモリ１８を使って画像形成装置１００で扱う画像データの回転、及び、編集などを行ったり、ＨＤＤに蓄積することで、画像処理ＡＳＩＣ１３との間で画像データを送受信する。
【００３０】
Ｉ／Ｏ ＡＳＩＣ１７には、画像形成装置１００に付加機能を与えるための外部インタフェース、例えば、ネットワークインタフェース、ＵＳＢ、ＳＤカード、操作部、ＳＰＩ（System Packet Interface ）、Ｉ２Ｃ（Inter-Integrated Circuit）などのインタフェース、画像処理を高速化するためのハードウェアアクセラレータ、及び、暗号化処理回路などが接続されている。
【００３１】
図４は、コントローラＡＳＩＣ１４の構成図の一例を示す。コントローラＡＳＩＣ１４には、周辺回路として、圧縮伸長器２１、回転器２６、編集器２７、ＨＤＤ２８、ビデオ入力部２３、ビデオ出力部２４、PCIe Root２２、PCIe EndPoint２９、及び、レジスタ制御回路３０が配置されている。PCIeの「e」はExpressの略である。各周辺回路はＤＭＡＣ（Direct Memory Access Controller）３１を介してアービタ２５に接続されている。なお、周辺回路によっては複数のＤＭＡＣ３１が接続されているが、これはメインメモリ１８への書き込みと読み出しのためである。また、PCIe Root２２は画像処理ＡＳＩＣ１３と、PCIe EndPoint２９はチップセット１６とそれぞれ接続されている。
【００３２】
アービタ２５は、全てのＤＭＡＣ３１と接続されており、各ＤＭＡＣ３１からメインメモリ１８へのアクセス要求をアビトレーション処理（調停）する。通常は、スキャナ１１の画像データやプロッタ１２の画像データのライン等時性を確保するために、ビデオ入力部２３のＤＭＡＣ３１及びビデオ出力部２４のＤＭＡＣ３１からのアクセス要求を優先的に処理できるアビトレーションアルゴリズムとなっている。
【００３３】
PCIe EndPoint２９は、アービタ２５のアビトレーションで許可された周辺回路とチップセット１６との通信を制御する。すなわち、PCIe EndPoint２９とチップセット１６はPCI Expressで接続されている。PCIe EndPoint２９は、アービタ２５でアビトレーションされたＤＭＡＣ３１の要求に従い、メインメモリ１８からデータを読み出したり書き込んだりする。また、ＣＰＵ１５から、チップセット１６越しにコントローラＡＳＩＣ１４の周辺回路に対して要求があると、レジスタ制御回路３０を介して周辺回路のレジスタにリード/ライト制御を行う。
【００３４】
PCIe Root２２は、アービタ２５のアビトレーションで許可された周辺回路と画像処理ＡＳＩＣ１３との通信を制御する。スキャナ１１から画像処理ＡＳＩＣ１３を介して送信される画像データの書き込みを受け付けたり、プロッタ１２へ出力する画像データの読み出しを受け付けたりする。
【００３５】
回転器２６は、メインメモリ１８上の画像データを読み出し、レジスタ制御回路３０による設定に従い、回転処理（一番最後のアドレスのデータを一番先頭のアドレスに置き換える）を行ってメインメモリ１８へ書き戻す。編集器２７は、レジスタ制御回路３０による設定に従い、２種類の画像データをメインメモリ１８から読み出し合成（２in１など）などの編集処理を行ってメインメモリ１８へ書き戻す。ＨＤＤ２８は、コントローラＡＳＩＣ１４で扱う画像データを一時保存しておくために、メインメモリ１８上の画像データをＨＤＤ２８へライトしたり、ＨＤＤ２８からリードしてメインメモリ１８へライトしたりするための不揮発メモリである。
【００３６】
圧縮伸長器２１は、メモリ領域を有効に使用するためメインメモリ１８上の画像データを圧縮したり、プロッタ１２への出力の前に伸張しりする。ビデオ入力部２３は、ビデオ入力部２３のＤＭＡＣ３１の設定に従い、画像処理ＡＳＩＣ１３で処理されPCIe Root２２経由で入力されたスキャナ１１からの画像データをメインメモリ１８へ書き込む。PCIe Root２２に含まれるダイレクトビデオ入力Ｉ／Ｆ制御部４１（図６にて説明する）は、ビデオ入力部２３やＤＭＡＣ３１を介さずに、PCIe Root２２が画像処理ＡＳＩＣ１３から送信された画像データをメインメモリ１８に書き込む。
【００３７】
ビデオ出力部２４は、コントローラＡＳＩＣ１４が回転や編集などの処理を施した後、PCIe Root２２経由で画像データを、画像処理ＡＳＩＣ１３を介してプロッタ１２へ出力する。
【００３８】
また、圧縮伸長器２１で圧縮された画像データをメインメモリ１８からリードし、圧縮伸長器２１で伸長してメインメモリ１８を介さずにそのまま画像処理ＡＳＩＣ１３へ出力する機能や、メインメモリ１８上のスタンプ画像を元画像と共にリードして合成して出力する機能も備えている。また、不正コピーガードを行うための地紋データなどを埋め込む機能を備えていてもよい。
【００３９】
＜従来のアドレスポイントの設定＞
図５は、スキャナ１１が生成した画像データをメインメモリ１８に書き出す動作を説明する図の一例である。図５では主に従来の書き込み制御について説明する。
【００４０】
太い矢印線がスキャナ１１で読み取った画像データがメインメモリ１８へ格納されるまでのデータパスであり、図５の右図にメインメモリ１８の構成が記載されている。
【００４１】
スキャナ１１から入力された画像データは、画像処理ＡＳＩＣ１３で画像処理が行われ、コントローラＡＳＩＣ１４へ入力される。入力された画像データは、PCIe Root２２のダイレクトビデオ入力のデータパスを通り、アービタ２５、PCIe EndPoint２９を経由してメインメモリへ書き込まれる。
【００４２】
すでに説明したように画像形成装置１００は、メインメモリ１８をバンドに分割して画像データを格納する。スキャナ１１で読み取った画像データの主走査方向の画像データを1ラインとして、所定のライン数（例えば256ライン）が１つのバンドに対応する。バンドの最終アドレスをアドレスポイントと称する。
【００４３】
エンジン側のスキャナ１１には、スキャナ１１が読み取りを開始する前に、ＣＰＵ１５がメインメモリ１８に設定したディスクリプタ情報（開始アドレス、データサイズ、次ディスクリプタポインタ等）が設定されている。PCIe Root２２のダイレクトビデオ入力Ｉ／Ｆ制御部４１は、スキャナ１１（画像処理ＡＳＩＣ）が指示する開始アドレスから順番に画像データを書き込んでいく。
【００４４】
ダイレクトビデオ入力では、ＣＰＵ１５がダイレクトビデオ入力Ｉ／Ｆ制御部４１のレジスタ制御回路３０にアドレスポイントを設定する。図ではレジスタ制御回路３０を外部に出している。
【００４５】
スキャナ１１が生成した画像データはPCIe Root２２を通るが、この時、ダイレクトビデオ入力Ｉ／Ｆ制御部４１は、設定されたアドレスポイントと、画像データの書き込み先のアドレス（ライトアドレス）を比較する。２つのアドレスが一致した場合、つまり、メインメモリ１８へのライトアドレスが１バンド目の最終アドレスまで行われた時、PCIe Root２２内部のダイレクトビデオ入力Ｉ／Ｆ制御部４１はチップセット１６を介しＣＰＵ１５へ対して割り込みを発生する。
【００４６】
割込みを検出したＣＰＵ１５はこの割り込み処理の中で、次バンドのアドレスポイントをダイレクトビデオ入力Ｉ／Ｆ制御部４１に設定する。また、スキャナ１１の読み取り動作は止められないため、この設定処理と並列にスキャナ１１からの画像データ書き込みがメインメモリへ対して行われる。
【００４７】
この後、２バンド目のアドレスポイントとスキャナ１１が画像データを書き込むアドレスの比較が行われる。アドレスが一致した場合、１バンド目と同様に割り込みが発生し、ＣＰＵ１５によって割り込み処理され、次バンドのアドレスポイントの設定が行われる。
【００４８】
ＣＰＵ１５は割り込みによって、そのバンドの画像データのメインメモリ１８への書き込みが完了していることが分かるため、そのバンドに対する次の処理、ＨＤＤ２８格納や圧縮処理、回転処理などを行うことができる。
【００４９】
ＣＰＵ１５とダイレクトビデオ入力Ｉ／Ｆ制御部４１のこれらの動作及び制御の繰り返しによって、スキャナ１１で読み取った画像データをメインメモリ１８へ書き込む制御と、メインメモリ１８へ書き込まれた画像データの処理の並列制御が行われている。
【００５０】
なお、バンドが図５のように連続するか図１のように不連続になるかは、スキャナに設定されるディスクリプタ情報の開始アドレスによる。
【００５１】
この動作及び制御は、アドレスポイントの割り込み処理内で行われる次バンドのアドレスポイントの設定が、1ラインの読み取り時間（１LineSync）×バンドのライン数、の時間内に完了することを前提としている。
【００５２】
仮に、次バンドのアドレスポイントの設定が間に合わなかった場合、既にスキャナ１１からの画像データは最後のアドレスポイントを越えたアドレスに対して行われているので、アドレス比較が一致しないまま画像データが書き込まれる。すなわち、アドレスポイントの割り込みが発生せず、次処理が行われないので読み取り処理が完了しない状態で止まってしまう。
【００５３】
例えば、1ラインの読み取り時間を400〔us〕、1バンドのライン数を256ラインとした場合、アドレスポイントの設定に許容される時間は以下のようになる。
0.4〔ms〕×256＝102.4〔ms〕
しかし、高速機や両面読み取りなどでスキャナ１１による読み取りの生産性を向上させるために、1ラインの読み取り時間を40〔us〕、1バンドのライン数を256ラインとした場合、アドレスポイントの設定に許容される時間は以下のようになる。
0.04〔ms〕×256＝10.24〔ms〕
さらにコストダウンなどでメインメモリのサイズを少容量化し、それに伴い1バンドのライン数を半分にした場合は、以下のようになる。
0.04〔ms〕×128＝5.12〔ms〕
今後、アドレスポイントの設定に許容される時間はますます短くなっていくことが予想され、短時間にアドレスポイントの設定が完了することが要請される。
【００５４】
＜PCIe Rootの機能＞
図６は、PCIe Root２２の構成図の一例を示す。PCIe Root２２はPCIe論理回路２２１、及び、PCIeインタフェース回路２２２を有し、PCIeインタフェース回路２２２はダイレクトビデオ入力Ｉ／Ｆ制御部４１、ビデオ入力Ｉ／Ｆ制御部４２、及び、ビデオ出力Ｉ／Ｆ制御部４３を有している。
【００５５】
PCIe論理回路２２１は、画像処理ＡＳＩＣ１３とのＩ／ＦとしてPCI Expressの通信制御を行うものであり、PCIeのコンフィグレーションやプロトコル制御などを司っている。PCIe論理回路２２１は、スキャナ１１で読み取った画像データを画像処理ＡＳＩＣ１３から受け取り、PCIeインタフェース回路へ出力する。
【００５６】
ビデオ出力Ｉ／Ｆ制御部４３は、印刷時にメインメモリ１８に記憶されている画像データをビデオ出力部２４に接続されたＤＭＡＣ３１で読み出し、その画像データを取得して、PCIe論理回路２２１を介して画像処理ＡＳＩＣ１３へ出力する。
【００５７】
ビデオ入力Ｉ／Ｆ制御部４２は、スキャナ１１からの画像データをメインメモリ１８へ書き込む際に動作し、PCIe論理回路２２１から画像データを受け取りビデオ入力部２３のＤＭＡＣ３１へ出力する。ビデオ入力部２３のＤＭＡＣ３１は設定されたアドレスに従い画像データを書き込む。
【００５８】
ダイレクトビデオ入力Ｉ／Ｆ制御部４１は、画像処理ＡＳＩＣ１３（スキャナ１１）が指定するアドレスに、PCIe論理回路２２１から入力された画像データをアービタ２５、及び、PCIeEndPointを介してメインメモリ１８へ書き込む。
【００５９】
なお、PCIe Root２２に対するＣＰＵ１５からのレジスタ設定は、レジスタ制御回路３０から行われる。
【００６０】
＜ダイレクトビデオ入力Ｉ／Ｆ制御部の機能＞
図７は、ダイレクトビデオ入力Ｉ／Ｆ制御部４１の構成図の一例を示す。ダイレクトビデオ入力Ｉ／Ｆ制御部４１は、アドレス比較回路４０１、レジスタ制御回路３０、及び、ディスクリプタ制御回路４０３を有している。
【００６１】
ダイレクトビデオ入力Ｉ／Ｆ制御部４１は、PCIe論理回路２２１からアービタ２５に画像データを出力する。この過程で、画像データの書き込み先のアドレス（ライトアドレス）がアドレス比較回路４０１に出力される。特許請求の範囲の比較手段は、例えばアドレス比較回路４０１が１つの例として挙げられる。
【００６２】
レジスタ制御回路３０はＣＰＵ１５と接続されており、ＣＰＵ１５が要求したダイレクトビデオ入力Ｉ／Ｆ制御部４１への書き込みと読み出しの制御を行う。特許請求の範囲のアドレス情報取得手段は、例えばレジスタ制御回路３０が１つの例として挙げられる。
【００６３】
また、ディスクリプタ制御回路４０３はメインメモリ１８と接続されており、メインメモリ１８のディスクリプタ領域にアクセスしてディスクリプタ情報を読み出し、レジスタ制御回路３０に設定する（すなわち、スキャナ１１とは別にディスクリプタ制御回路４０３がディスクリプタ情報を読み出す）。
【００６４】
以下では、レジスタ制御回路３０とディスクリプタ制御回路４０３の使い方の違いにより２つの実施例を説明する。
【実施例１】
【００６５】
本実施例では、主にレジスタ制御回路３０を使用してデータ転送を行うダイレクトビデオ入力Ｉ／Ｆ制御部４１について説明する。
【００６６】
図８は、スキャナ、ダイレクトビデオ入力Ｉ／Ｆ制御部４１、及び、ＣＰＵ１５のシーケンス図の一例を示す。
Ｓ１：ＣＰＵ１５は、ダイレクトビデオ入力Ｉ／Ｆ制御部４１に後述するパラメータを設定する。これにより、アドレス比較回路４０１にはアドレスポイントが設定される。
Ｓ２：ＣＰＵ１５は、スキャナ１１に原稿の読み取り開始を指示する。
Ｓ３：スキャナ１１は読み取った画像データを転送単位でダイレクトビデオ入力Ｉ／Ｆ制御部４１に送信する。
Ｓ４：ダイレクトビデオ入力Ｉ／Ｆ制御部４１は、画像データと共に送信されたラインアドレスをアドレスポイントと比較する。
Ｓ５：ラインアドレスをアドレスポイントが一致すると、ダイレクトビデオ入力Ｉ／Ｆ制御部４１はＣＰＵ１５に割り込みする。
Ｓ６：ＣＰＵ１５は、バンド分の画像データに対し次に行うべき処理を制御する。
Ｓ７：ダイレクトビデオ入力Ｉ／Ｆ制御部４１は次バンドのアドレスポイントを設定する。以降はＳ３〜Ｓ７の繰り返しである。
【００６７】
本実施例では、ステップＳ７の次バンドのアドレスポイントの設定を、レジスタ制御回路３０のハードウェア処理により行う。
【００６８】
図９は、ダイレクトビデオ入力Ｉ／Ｆ制御部４１の構成図の一例を、図１０は各回路の動作手順の一例をそれぞれ示す。図９のレジスタ制御回路３０は、複数のレジスタ４１３を有しており、バンド数、１バンドのライン数、画像の主走査幅、メインメモリの先頭アドレス（または1バンド目のアドレスポイント）、及び、現在のアドレスポイントが記憶される。さらに、加算回路４１１と乗算回路４１２を有している。なお、先頭アドレスは、最初のバンドの開始アドレスであり、スキャナ１１に予め設定されている最初のバンドの開始アドレスと同じものである。１バンドのライン数と画像の主走査幅は特許請求の範囲のデータサイズ、1バンド目のアドレスポイントは同じく終了アドレス記憶手段、加算回路４１１は同じく算出手段、の一例である。
【００６９】
また、ＣＰＵ１５がプログラムを実行することでパラメータ設定手段１５１が実現される。プログラムはＨＤＤ２８に記憶されている。パラメータ設定手段１５１は、レジスタ制御回路３０にパラメータを設定する。設定されるパラメータは、バンド数、１バンドのライン数、画像の主走査幅、メインメモリの先頭アドレス（または1バンド目のアドレスポイント）である。なお、アドレスポイント算出手段１５２は、先頭アドレスでなく1バンド目のアドレスポイントをレジスタ制御回路３０に設定する場合に、アドレスポイントを算出する。
【００７０】
ＣＰＵ１５のパラメータ設定手段１５１は、スキャナ１１に読み取り開始を指示する前にこれらのパラメータをレジスタ制御回路３０に設定する（Ｓ１０）。バンド数、ライン数、及び、主走査幅は固定値であり予めプログラムに記述されている。なお、バンド数は、例えばＡ４やLetterサイズの原稿を所定の1バンドのライン数（２５６）で割った値とする。
【００７１】
まず、レジスタ制御回路３０は、設定された１バンド目のアドレスポイントをアドレス比較回路４０１へ設定する（Ｓ２０）。レジスタ制御回路３０に設定されたのが先頭アドレスである場合は、
アドレスポイント＝先頭アドレス＋（主走査幅×ライン数）
から、１バンド目のアドレスポイントを算出し（Ｓ１５）、アドレス比較回路４０１へ設定する。
【００７２】
ＣＰＵ１５は、レジスタ制御回路３０への設定の後、スキャナ１１へ読み取り開始を指示する（Ｓ３０）。
【００７３】
これにより、ダイレクトビデオ入力Ｉ／Ｆ制御部４１へスキャナ１１からライトアドレスと画像データが入力される。アドレス比較回路４０１は、ライトアドレスとレジスタ制御回路３０が設定したアドレスポイントを転送単位で比較する（Ｓ４０）。転送単位は例えば１ライン毎、又は、転送単位×ｎ（自然数）＝２５６を満たす自然数である。すなわち、バウンダリが維持されるように転送単位を決定することが好ましい。
【００７４】
なお、PCI Expressのパケットサイズや画像処理ＡＳＩＣ１３内部の転送単位の都合上(バースト転送など)、バウンダリを維持できない場合は、転送単位内でアドレスポイントを比較一致できるように下位アドレスのマスクビットを設定する。マスクビットを指示するパラメータをレジスタ制御回路３０に備える。例えば、転送単位が１Byte（８bit）の場合、アドレスポイントの下位７bit（１Byte）をマスクして、一致するか否かを判定する。
【００７５】
アドレスが一致した場合（Ｓ４０のＹｅｓ）、アドレス比較回路４０１がレジスタ制御回路３０に割り込みする（Ｓ５０）。
【００７６】
レジスタ制御回路３０はＣＰＵ１５に割込みする（Ｓ６０）。ＣＰＵ１５はこの割り込みで１バンド目の画像データの書き込み完了を判断して、次処理の制御を行う。例えば、ＨＤＤ２８に格納したり、回転器２６で回転させたり、圧縮伸長器２１で圧縮したりする。ＨＤＤ２８、回転器２６、圧縮伸長器２１、又は、これらに接続されたＤＭＡＣは、特許請求の範囲の処理手段の一例として挙げられる。
【００７７】
また、ＣＰＵ１５を介することなく、割込み信号を各種のＤＭＡＣ３１に出力してもよい。例えば、ＨＤＤ２８に格納するためにＨＤＤ２８のＤＭＡＣ３１、回転器２６のＤＭＡＣ３１、圧縮伸長器２１のＤＭＡＣ３１に割込み信号を出力して、これらが起動するためのトリガーとすることができる。これによりＣＰＵ１５の負荷を低減できる。
【００７８】
次いで、レジスタ制御回路３０はバンド数分の割込みが発生したか否かを判定する（Ｓ７０）。割込み数は、アドレス比較回路４０１がレジスタ制御回路３０に割り込みした数をカウントするカウンタ回路でカウントしておく。
【００７９】
バンド数分の割込みが発生した場合（Ｓ７０のＹｅｓ）、スキャナ１１からの画像データの書き込みが終了したので処理が終了する。この時点でレジスタ制御回路３０はＣＰＵ１５に割込みしてもよい。
【００８０】
バンド数分の割込みが発生していない場合（Ｓ７０のＮｏ）、レジスタ制御回路３０は次のバンドのアドレスポイントを算出する（Ｓ８０）。
アドレスポイント＝1バンド目のアドレスポイント＋主走査幅×ライン数
すなわち、乗算回路４１２は「主走査幅×ライン数」を計算し、加算回路４１１が乗算結果に１バンド目のアドレスポイントを加算する。加算結果は現在のアドレスポイントとしてレジスタ４１３に記憶される。次回の割込みでは、次のアドレスポイントは、現在のアドレスポイントに「主走査幅×ライン数」を加算することで求められる。
【００８１】
この後、処理はステップＳ４０に移行し、２バンド目のアドレスポイントが一致した場合、再度、割り込みを発生し（Ｓ５０）、ＣＰＵ１５へ通知する（Ｓ６０）。ステップＳ４０〜Ｓ８０の処理をバンド数分だけ繰り返す。
【００８２】
このように、本実施例では、アドレス比較回路４０１が割込みを発生させた直後に、レジスタ制御回路３０のハードウェアで次バンドのアドレスポイントの算出・設定を行うので、ＣＰＵ１５が行うよりも高速にアドレスポイントの更新が可能になる。
【実施例２】
【００８３】
本実施例ではディスクリプタ制御回路４０３を利用したダイレクトビデオ入力Ｉ／Ｆ制御部４１について説明する。
【００８４】
図１１は、ダイレクトビデオ入力Ｉ／Ｆ制御部４１の構成図の一例を、図１２は各回路の動作手順の一例をそれぞれ示す。図１１のレジスタ制御回路３０は、複数のレジスタ４１５を有しており、それぞれアドレスポイント、起動ビット、ディスクリプタポインタが記憶される。また、メインメモリ１８にはバンド数分のディスクリプタ情報が記憶されている。ディスクリプタ情報には、少なくとも各バンドのアドレスポイントと次ディスクリプタポインタが含まれる。次ディスクリプタポインタは、次のディスクリプタポインタ領域のアドレスを示している。アドレスポイントと次ディスクリプタポインタの記述サイズが固定なので、次ディスクリプタポインタは、最初のディスクリプタ領域のアドレスに記述サイズを加えることで求めることができる。
【００８５】
本実施例ではメインメモリ１８が特許請求の範囲のアドレス記憶手段、次ディスクリプタポインタが同じく次領域の前記終了アドレスの記憶場所の一例である。
【００８６】
また、ＣＰＵ１５がプログラムを実行することでアドレスポイント算出手段１５２とパラメータ設定手段１５１が実現される。プログラムはＨＤＤ２８に記憶されている。アドレスポイント算出手段１５２は、全てのバンドのアドレスポイントを算出し、全てのディスクリプタ領域の次ディスクリプタポインタを決定する。各バンドのアドレスポイントは、実施例１と同様に計算できる。また、ＣＰＵ１５がソフト的に計算するので、各バンドのサイズを可変にすることもできる。例えば、バンドのライン数を徐々に大きくする・小さくする、大小のライン数を交互に繰り返すように設定する、又は、不作為に決定する。
【００８７】
パラメータ設定手段１５１は、レジスタ制御回路３０にパラメータを設定する。設定されるパラメータは、起動ビット、及び、ディスクリプタポインタ（初回のディスクリプタ領域のアドレス）である。起動ビットによりレジスタ制御回路３０が起動し、ディスクリプタポインタによりディスクリプタ制御回路４０３がメインメモリ１８からディスクリプタ情報を取得できる。
【００８８】
アドレスポイント算出手段１５２は特許請求の範囲のアドレス算出手段、パラメータ設定手段１５１は同じくアドレス設定手段の一例である。
【００８９】
まず、ＣＰＵ１５のアドレスポイント算出手段１５２はバンド数分のディスクリプタ情報を算出し、メインメモリ１８に記憶する（Ｓ１１０）。これにより、バンドの数だけディスクリプタ情報が作成される。
【００９０】
次に、ＣＰＵ１５のパラメータ設定手段１５１は、起動ビットと初回のディスクリプタポインタをレジスタ制御回路３０に設定する（Ｓ１２０）。起動ビットが例えば"１"になることでディスクリプタ制御回路４０３が起動する。
【００９１】
ＣＰＵ１５はスキャナ１１に読み取り開始を指示する（Ｓ１３０）。
【００９２】
起動したレジスタ制御回路３０はディスクリプタ制御回路４０３に初回のディスクリプタポインタを出力し、ディスクリプタ情報を読み出させる。ディスクリプタ制御回路４０３は、初回のディスクリプタ領域からディスクリプタ情報を読み出し、アドレスポイントをレジスタ制御回路３０に出力する（Ｓ１４０）。また、ディスクリプタ制御回路４０３には、次のバンドの次ディスクリプタポインタが保持される。
【００９３】
レジスタ制御回路３０はアドレスポイントをアドレス比較回路４０１に設定する（Ｓ１５０）。
【００９４】
スキャナ１１が読み取りを開始することで、ダイレクトビデオ入力I/F制御部４１へスキャナ１１からライトアドレスと画像データが入力される。アドレス比較回路４０１は、ライトアドレスとレジスタ制御回路３０が設定したアドレスポイントを転送単位で比較する（Ｓ１６０）。
【００９５】
アドレスが一致した場合（Ｓ１６０のＹｅｓ）、アドレス比較回路４０１がレジスタ制御回路３０に割り込みする（Ｓ１７０）。
【００９６】
レジスタ制御回路３０はＣＰＵ１５に割込みする（Ｓ１８０）。ＣＰＵ１５はこの割り込みで１バンド目の画像データの書き込み完了を判断して、次処理の制御を行う。例えば、回転器２６に回転を指示したり、圧縮伸長器２１に圧縮を指示する。
【００９７】
次に、レジスタ制御回路３０は次のディスクリプタ情報の読み取りをディスクリプタ制御回路４０３に指示する（Ｓ１９０）。
【００９８】
ディスクリプタ制御回路４０３はすでに保持している次ディスクリプタポインタが最終バンドであることを示しているか否かを判定する（Ｓ２００）。例えば、次ディスクリプタポインタが"０"の場合は最終バンドとみなし、ディスクリプタ情報のリード動作を完了する。
【００９９】
次ディスクリプタポインタが最終バンドであることを示していない場合（Ｓ２００のＮｏ）、処理はステップＳ１４０に戻り、ディスクリプタ制御回路４０３は、ディスクリプタ領域からディスクリプタ情報を読み出し、アドレスポイントをレジスタ制御回路３０に出力する（Ｓ１４０）。以上の処理が、次ディスクリプタポインタが最終バンドを指示するまで繰り返し実行される。
【０１００】
このように、本実施例では、スキャナ１１の読み取り開始前にＣＰＵ１５が全てのバンドのアドレスポイントの算出を行い、メインメモリ１８に記憶しておくので、割込みの度にＣＰＵ１５が算出するよりも高速にアドレスポイントの更新が可能になる。
【０１０１】
なお、実施例１，２では画像処理ＡＳＩＣ１３からメインメモリ１８に画像データが転送される際のバンド分の書き込みについて説明した。しかし、メインメモリ１８から画像処理ＡＳＩＣ１３に画像データが転送される際も同様に適用できる。具体的にはビデオ出力部２４のＤＭＡＣ３１に実施例１，２のアドレス比較回路４０１、レジスタ制御回路３０及びディスクリプタ制御回路４０３を配置すれば、ＣＰＵ１５は割込みによりメインメモリ１８からバンド分の画像データの読み出しが完了したことを検出できる。このバンド分は不要になったので、ＣＰＵ１５は例えば次ページの印刷データの処理領域に使用することができる。また、読み出したバンドのデータに対し処理を指示したり、処理を行ったりすることができる。
【符号の説明】
【０１０２】
１１    スキャナ
１２    プロッタ
１３    画像処理ＡＳＩＣ
１４    コントローラＡＳＩＣ
１５    ＣＰＵ
１６    チップセット
１７    Ｉ／Ｏ ＡＳＩＣ
１８    メインメモリ
２２    PCIe Root
２９    PCIe  EndPoint
３０    レジスタ制御回路
３１    ＤＭＡＣ
４１    ダイレクトビデオ入力Ｉ／Ｆ制御部
１００  画像形成装置
４０１  アドレス比較回路
４０３  ディスクリプタ制御回路
【先行技術文献】
【特許文献】
【０１０３】
【特許文献１】特開2009−276825号公報
【図１】
2014081760.tif 000003
【図２】
2014081760.tif 000004
【図３】
2014081760.tif 000005
【図４】
2014081760.tif 000006
【図５】
2014081760.tif 000007
【図６】
2014081760.tif 000008
【図７】
2014081760.tif 000009
【図８】
2014081760.tif 000010
【図９】
2014081760.tif 000011
【図１０】
2014081760.tif 000012
【図１１】
2014081760.tif 000013
【図１２】
2014081760.tif 000014