(57)【要約】【課題】１つの大容量記憶装置を用いた分散システムにおいて、高速な画像処理を実現するとともに、必要となるハードウェアによるコストを低減する画像形成装置及びその制御方法を提供する。【解決手段】本画像形成装置は、メインボードと、メインボードにバスを介して接続されるサブボードと、サブボードに接続されるとともにサブボードを介してメインボードに間接的に接続され、画像データを記憶するハードディスク６とを備える。さらに、メインボードは、ハードディスクに対するアクセス要求が発生すると、当該アクセスによるデータ転送が、メインボードとサブボードとの何れとの間で行なわれるかを判定し、メインボードである場合は通常アクセスを適用し、サブボードである場合は高速アクセスを適用する。【選択図】図２
2011015093.tif 000002
【特許請求の範囲】
【請求項１】
画像形成装置であって、
前記画像形成装置を統括的に制御する第１制御手段と、
前記第１制御手段にバスを介して接続され、前記画像形成装置が提供する機能の中で高速な画像処理を必要とする機能を制御する第２制御手段と、
前記第２制御手段に接続されるとともに該第２制御手段を介して前記第１制御手段に間接的に接続され、画像データを記憶する大容量記憶手段と
を備え、
前記第１制御手段は、
前記大容量記憶手段に対するアクセス要求が発生すると、当該アクセスが、前記第１制御手段と前記大容量記憶手段との間でのデータ転送か、又は、前記第２制御手段と前記大容量記憶手段との間でのデータ転送かを判定する判定手段と、
前記アクセスが前記第１制御手段と前記大容量記憶手段との間でのデータ転送である場合に、アクセス要求の発生した順番に従って前記大容量記憶手段にアクセスする通常アクセス手段と、
前記アクセスが前記第２制御手段と前記大容量記憶手段との間でのデータ転送である場合に、前記アクセス要求の発生した順番に関係なく、前記大容量記憶手段にアクセスする高速アクセス手段と
を備えることを特徴とする画像形成装置。
【請求項２】
前記通常アクセス手段は、前記第１制御手段から、該第１制御手段と前記第２制御手段とを接続する前記バスを経由して前記大容量記憶手段にアクセスすることを特徴とする請求項１に記載の画像形成装置。
【請求項３】
前記高速アクセス手段は、前記第２制御手段から、直接的に前記大容量記憶手段にアクセスすることを特徴とする請求項１又は２に記載の画像形成装置。
【請求項４】
前記第１制御手段は、仮想メモリ領域の一部を管理するオペレーティングシステムを実行し、
前記アクセス要求は、当該アクセスが前記第１制御手段と前記大容量記憶手段との間でのデータ転送である場合には前記オペレーティングシステムが管理している前記仮想メモリ領域のアドレスが指定され、当該アクセスが前記第２制御手段と前記大容量記憶手段との間でのデータ転送である場合には前記オペレーティングシステムが管理していない前記仮想メモリ領域のアドレスが指定され、
前記判定手段は、
前記アクセス要求に指定された前記アドレスが前記オペレーティングシステムが管理している前記仮想メモリ領域を示すか否かを判定することにより、当該アクセスが、前記第１制御手段と前記大容量記憶手段との間でのデータ転送か、又は、前記第２制御手段と前記大容量記憶手段との間でのデータ転送かを判定することを特徴とする請求項１乃至３の何れか１項に記載の画像形成装置。
【請求項５】
前記第１制御手段のワーク領域である第１記憶手段と、
前記第２制御手段のワーク領域である第２記憶手段とをさらに備え、
前記オペレーティングシステムが管理していない仮想メモリ領域を示すアドレスは、前記第２記憶手段のアドレスに関連付けられていることを特徴とする請求項４に記載の画像形成装置。
【請求項６】
前記高速な画像処理とは、原稿から画像を読み取る読取処理、又は、画像データに従って記録材に画像を形成する画像形成処理であることを特徴とする請求項１乃至５の何れか１項に記載の画像形成装置。
【請求項７】
前記第１制御手段と前記第２制御手段とは異なる基板に設けられていることを特徴とする請求項１乃至６の何れか１項に記載の画像形成装置。
【請求項８】
画像形成装置を統括的に制御する第１制御手段と、前記第１制御手段にバスを介して接続され、前記画像形成装置が提供する機能の中で高速な画像処理を必要とする機能を制御する第２制御手段と、前記第２制御手段に接続されるとともに該第２制御手段を介して前記第１制御手段に間接的に接続され、画像データを記憶する大容量記憶手段とを備える画像形成装置の制御方法であって、
前記第１制御手段は、
判定手段が、前記大容量記憶手段に対するアクセス要求が発生すると、当該アクセスが、前記第１制御手段と前記大容量記憶手段との間でのデータ転送か、又は、前記第２制御手段と前記大容量記憶手段との間でのデータ転送かを判定する判定ステップと、
通常アクセス手段が、前記アクセスが前記第１制御手段と前記大容量記憶手段との間でのデータ転送である場合に、アクセス要求の発生した順番に従って前記大容量記憶手段にアクセスする通常アクセスステップと、
高速アクセス手段が、前記アクセスが前記第２制御手段と前記大容量記憶手段との間でのデータ転送である場合に、前記アクセス要求の発生した順番に関係なく、前記大容量記憶手段にアクセスする高速アクセスステップと
を実行することを特徴とする画像形成装置の制御方法。
【請求項９】
請求項８に記載の画像形成装置の制御方法をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像形成装置、その制御方法及びプログラムに関するものである。
【背景技術】
【０００２】
複合機等の画像形成装置では、大量の画像を高速に扱う機能に加え、汎用ＰＣサーバ機能を取り込み、多くの汎用アプリケーションを同時に動作させる機能を有するようになってきている。このような画像形成装置では、ハードウェア構成として、汎用ＰＣサーバ機能を実現するための独立した汎用ＰＣシステムと、リアルタイム画像処理システムとを独立して備えている。これは、各々の機能で異なるパフォーマンスを追及するためである。
【０００３】
例えば、特許文献１では、汎用ＰＣのマザーボードに対して、汎用ＰＣＩバスを介してプリンタ制御ボードを接続することで、高機能低価格な汎用ＰＣ技術を用いた画像形成装置が提案されている。なお、通常の汎用ＰＣはストレージ装置が必須となる。したがって、特許文献１においても汎用ＰＣのマザーボード上にストレージ装置を有し、ＰＣＩバスを介して画像データのやり取りを行なっている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平０９−３４６０９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、上記従来技術には以下に記載する問題がある。上述のような画像形成装置では、２つのシステム間を接続する汎用バスの性能に依存してパフォーマンスが決定する。つまり、白黒や低解像度カラー画像など、比較的小さい画像データを低速に扱う場合には問題無いが、高画質なカラー画像を高速に扱う場合には、バス帯域的な問題や、転送用バッファの増加等が懸念される。
【０００６】
また、汎用ＰＣＩバスの先にさらにＣＰＵシステムを搭載した画像形成装置の場合、これらのＣＰＵ間のコミュニケーションや、汎用ＰＣ側の各種サーバ機能を実現するためにハードディスクの多くの領域が使用される。さらに、オペレーティングシステムがファイルのアクセスをキュー方式で逐次実行するため、ディスクのＩ／Ｏ待ちにより画像入出力のパフォーマンスが低下する可能性もある。この問題を解決する１つの方法として、拡張ボード側に画像蓄積専用のハードディスクを搭載する方法が考えられる。しかし、複数のハードディスクを搭載することにより、故障率増加の懸念や、コスト高という問題が発生する。
【０００７】
本発明は、上述の問題に鑑みて成されたものであり、１つの大容量記憶装置を用いた分散システムにおいて、高速な画像処理を実現するとともに、必要となるハードウェアによるコストを低減する画像形成装置及びその制御方法を提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明は、画像形成装置として実現できる。画像形成装置は、画像形成装置を統括的に制御する第１制御手段と、第１制御手段にバスを介して接続され、画像形成装置が提供する機能の中で高速な画像処理を必要とする機能を制御する第２制御手段と、第２制御手段に接続されるとともに第２制御手段を介して第１制御手段に間接的に接続され、画像データを記憶する大容量記憶手段とを備え、第１制御手段は、大容量記憶手段に対するアクセス要求が発生すると、当該アクセスが、第１制御手段と大容量記憶手段との間でのデータ転送か、又は、第２制御手段と大容量記憶手段との間でのデータ転送かを判定する判定手段と、アクセスが第１制御手段と大容量記憶手段との間でのデータ転送である場合に、アクセス要求の発生した順番に従って大容量記憶手段にアクセスする通常アクセス手段と、アクセスが第２制御手段と大容量記憶手段との間でのデータ転送である場合に、アクセス要求の発生した順番に関係なく、大容量記憶手段にアクセスする高速アクセス手段とを備えることを特徴とする。
【発明の効果】
【０００９】
本発明は、例えば、１つの大容量記憶装置を用いた分散システムにおいて、高速な画像処理を実現するとともに、必要となるハードウェアによるコストを低減する画像形成装置及びその制御方法を提供できる。
【図面の簡単な説明】
【００１０】
【図１】本実施形態に係る画像形成装置１００の構成例を示す図である。
【図２】本実施形態に係るコントローラ３のハードウェア構成を示す図である。
【図３Ａ】本実施形態に係るソフトウエアの概念図である。
【図３Ｂ】図３Ａの変形例を示す図である。
【図４】本実施形態に係るＣＰＵ２０１のメモリマップの一例を示す図である。
【図５】比較例となる画像データの転送シーケンスを示す図である。
【図６】本実施形態に係る画像データの転送シーケンスを示す図である。
【図７】本実施形態に係るストレージデバイスドライバ３０４の処理手順を示すフローチャートである。
【図８】本実施形態に係る高速ファイルシステム３０５の処理手順を示すフローチャートである。
【図９】本実施形態に係る転送先ボードを判定する処理手順を示すフローチャートである。
【発明を実施するための形態】
【００１１】
以下に本発明の一実施形態を示す。以下で説明される個別の実施形態は、本発明の上位概念、中位概念及び下位概念など種々の概念を理解するために役立つであろう。また、本発明の技術的範囲は、特許請求の範囲によって確定されるのであって、以下の個別の実施形態によって限定されるわけではない。
【００１２】
＜第１の実施形態＞
＜画像形成装置の構成＞
まず、図１を参照して、本実施形態における画像形成装置１００について説明する。尚、本実施形態では、この画像形成装置１００は、コピー機能、ファクシミリ機能、プリンタ機能等を有する複合機の場合で説明するが、本発明はこれに限定されるものではない。
【００１３】
この画像形成装置１００は、イーサネット（登録商標）等のＬＡＮ８を介してホストコンピュータ９に接続されている。この画像形成装置１００は、画像データの読取処理を行うリーダ装置（リーダ部）２と、画像データの印刷処理を行うプリンタ装置（プリンタ部）４、操作部５、画像記憶部（ハードディスク）６及びこれらを制御するコントローラ（制御装置）３とを有している。操作部５は、画像データの入出力操作を行うキーボード及び画像データや各種機能の表示／設定などを行う液晶パネルとを備える。記憶部（ＨＤＤ）６は、リーダ部２を制御して読み込んだ画像データや、ＬＡＮ８を介してホストコンピュータ９より受信したコードデータから生成される画像データを格納する。コントローラ３は、これら各構成要素に接続され、これら構成要素を制御する。
【００１４】
リーダ部２は、原稿を搬送する原稿給紙ユニット２１と、その原稿を光学的に読み取って電気信号としての画像データに変換するスキャナユニット２２とを有している。ＦＡＸユニット７は、電話回線１０を介してファクシミリデータを送受信する。またプリンタ部４は、シートを収容する複数段の給紙カセットを備えた給紙ユニット４２と、画像データをシートに転写して定着するマーキングユニット４１とを有している。さらに、印刷されたシートにソート処理やステイプル処理を施して外部に排出する排紙ユニット４３を有している。
【００１５】
コントローラ３は、リーダ部２を制御して原稿の画像データを読み込み、プリンタ部４を制御して、その画像データをシートに印刷するコピー機能を提供する。また、リーダ部２で読み取った画像データをコードデータに変換し、ネットワーク８を介してホストコンピュータ９へ送信するスキャナ機能を有している。またホストコンピュータ９からネットワーク８を介して受信したコードデータを画像データに変換し、プリンタ部４に出力して印刷するプリンタ機能やその他の機能ブロックを有している。
【００１６】
上述した画像形成装置１００は、大きく分けて複写機能、画像送信機能、画像保存機能、画像印刷機能、及びファクシミリ受信機能を有している。複写機能は、リーダ部２から入力した画像データをハードディスク６に記憶するとともに、プリンタ部４により印刷するものである。画像送信機能は、リーダ部２から入力した画像データをＬＡＮ８を介してホストコンピュータ９に送信する機能である。画像保存機能は、リーダ部２から入力した画像データをハードディスク６に記憶し、必要に応じて画像データの送信や印刷を行なう機能である。また画像印刷機能は、ホストコンピュータ９から送信された例えばページ記述言語を解析し、プリンタ部４で印刷する機能である。またファクシミリ受信機能は、ＦＡＸユニット７が電話回線から画像データを受信してプリンタ部４で印刷するか、又は、ハードディスク６に保存する機能である。また、スキャナユニット２２から読み込んだデータをハードディスク６に保存して、ＦＡＸユニット７を介して電話回線へデータを送信することもできる。また、これらの機能は、各ハードウェアデバイスを排他的に制御し、見かけ上同時に実行することが可能である。
【００１７】
＜コントローラ３＞
次に、図２を参照して、画像形成装置１００のコントローラ３のハードウェア構成について説明する。図１と共通する部分は同一の参照番号で示している。なお、図２は簡略化して示している。例えば後述するＣＰＵ２０１、ＣＰＵ２２１等にはチップセット、バスブリッジ、クロックジェネレータ等のＣＰＵ周辺ハードウェアが多数含まれているが、簡略化のためにこれらを省略して記述している。コントローラ３は、メインボード２００と、サブボード２２０とを備える。メインボード２００は、第１制御手段として機能し、画像形成装置１００を統括的に制御する制御基板である。また、サブボード２２０は、第２制御手段として機能し、画像形成装置１００が提供する機能の中で高速な画像処理を必要とする機能を制御する制御基板である。
【００１８】
メインボード２００は、所謂汎用のＣＰＵシステムで、メインボード２００全体を制御するＣＰＵ２０１、ブートプログラムが含まれるブートＲＯＭ２０２、ＣＰＵ２０１がワーク領域として使用するメモリ（第１記憶手段）２０３を有している。また、外部バスとのブリッジ機能を持つバスコントローラ２０４、不揮発メモリ２０５（バッテリ等によりバックアップされたメモリであっても良い）を含む。さらに、メインボード２００は、半導体デバイスで構成された比較的小容量なストレージ装置であるフラッシュディスク（ＳＳＤ等）２０７、当該フラッシュディスク２０７を制御するディスクコントローラ２０６、及びＵＳＢメモリ２０９を制御するＵＳＢコントローラ２０８を含む。メインボード２００は、図２に示すように、ＵＳＢメモリ２０９、及び操作部５に接続されている。
【００１９】
サブボード２２０は、比較的小さな汎用ＣＰＵシステムと、画像処理用のハードウェアで構成される。サブボード２２０はＣＰＵ２２１、当該ＣＰＵ２２１がワーク領域として使用するメモリ（第２記憶手段）２２３、外部バスとのブリッジ機能を持つバスコントローラ２２４、及び不揮発メモリ２２５を有している。さらに、サブボード２２０は、リアルタイムでデジタル画像処理を行なう画像処理部２２７、デバイスコントローラ２２６、２２８及びディスクコントローラ２２９を有する。サブボード２２０は、図２に示すように、プリンタ部４、リーダ部２、ＦＡＸユニット７及びハードディスク６に接続されている。上述したリーダ部２及びプリンタ部４は、それぞれデバイスコントローラ２２６、２２８を介して画像処理部２２７との間でデジタル画像データの受け渡しを行なう。ＦＡＸユニット７は、ＣＰＵ２２１によって直接制御される。ハードディスク６は、ディスクコントローラ２２９によって制御される。
【００２０】
このように、本実施形態に係る画像形成装置１００では、メインの大容量記憶装置となるハードディスク６がサブボード２２０側に接続され、メインボード２００側にはバスコントローラ２２４、２０４を介して間接的に接続される。これにより、本画像形成装置１００は、比較的高速な画像転送が必要となるサブボード２２０側の処理において、ハードディスク６に対して高速なアクセスを実現する。なお、このディスクコントローラ２２９はＣＰＵ２０１から見ると、例えばＰＣＩコントローラの先のストレージコントローラ（デバイスバスブリッジ経由でＩ／Ｏが見える形のデバイス）となる。また、本実施形態では、ＣＰＵ２２１からはディスクコントローラ２２９及びハードディスク６を操作することはない構成としている。
【００２１】
次に複写機能を例にして、コントローラ３の動作を説明する。ユーザが操作部５から複写を指示すると、ＣＰＵ２０１がＣＰＵ２２１を介してリーダ部２に読取処理を実行する画像読取命令を送る。これによりリーダ部２は、原稿を光学的にスキャンしてデジタル画像データに変換してデバイスコントローラ２２８を介して画像処理部２２７に入力する。画像処理部２２７はＣＰＵ２２１を介してメモリ２２３にＤＭＡにより画像データを格納する。
【００２２】
ＣＰＵ２０１はデジタル画像データがメモリ２２３に一定量もしくは全て記憶されたことを確認すると、ＣＰＵ２２１を介してプリンタ部４に印刷指示を出す。ＣＰＵ２２１は画像処理部２２７にメモリ２２３の画像データの位置を教える。そしてプリンタ部４からの同期信号に従ってメモリ２２３上の画像データは、画像処理部２２７とデバイスコントローラ２２６を介してプリンタ部４に送信され、プリンタ部４によりシート上に印刷される。
【００２３】
また、複数部の印刷を行なう場合には、ＣＰＵ２０１は、原稿を一度しか読み取らないため、メモリ２２３の画像データをハードディスク６に対して保存する。具体的には、ＣＰＵ２０１は、メモリ２２３の画像データを一旦ハードディスク６がアクセス可能なＲＡＭへ転送し、ハードディスク６に対して保存を行う。したがって、２部目以降は、当該ハードディスク６から画像データを読み出し、プリンタ部４によって印刷される。
【００２４】
＜メモリマップ＞
次に、図４を参照して、図２に示すＣＰＵ２０１のメモリマップについて説明する。４００はＣＰＵ２０１の仮想メモリ空間（領域）となる。４１０はＣＰＵ２０１の物理メモリ空間である。４２０はバスコントローラ２０４、２２４のメモリ空間である。本実施形態では一般的なＰＣＩバスを用いて説明する。４３０はＣＰＵ２０１のメモリマップである。
【００２５】
仮想メモリ空間４０１は、物理メモリ空間４１１と、仮想メモリページテーブルを介して離散的に対応している。４０２はＰＣＩに割り当てた領域であり、ＣＰＵ２０１の４３３のメモリ領域が参照できるようになっている。４３１はＣＰＵ２０１の物理メモリである。４３３の物理メモリと分離して示しているが、これらの領域は通常１つの領域で構成される。４３２はＰＣＩ空間に割り当てたＩ／Ｏ領域である。Ｉ／Ｏ領域４３２のメモリを参照することで、ＣＰＵ２０１の物理メモリ空間４１１を参照することが可能となる。これらの設定はバスコントローラ２０４、２２４を相互に設定するすることにより可能であり、互いのメモリエリアを参照するようなシステムを構築することができる。
【００２６】
＜比較例となる画像データの転送シーケンス＞
ここで、図５を参照して、図２に示す構成からハードディスク６をメインボード２００のディスクコントローラ２０６に接続するように変更した構成の画像データの転送シーケンスについて説明する。この変更した構成は、従来の一般的な構成となる。したがって、以下で説明する転送シーケンスは比較例の転送シーケンスとなる。図５の５０１はプリンタ部４の動作タイミングを示す。５０２はリーダ部２の動作タイミングを示す。５０３、５０５はそれぞれメモリ２２３、２０３上のバッファにおけるデータのリード・ライトのタイミングを示す。５０４はバスコントローラ２０４、２２４の動作タイミングを示す。５０６は後述するブロックデバイス３０３におけるデータのリード・ライトのタイミングを示す。５０７はメインボード２００側に接続を変更したハードディスク６におけるデータのリード・ライトのタイミングを示す。
【００２７】
ここでは、１部が複数枚の原稿からなる複数部の原稿をコピーするシーケンスについて説明する。原稿給紙ユニット２１は、原稿を痛めないように一度だけスキャンして得た画像データをハードディスク６に保存する。保存された画像データは、プリンタ部４の速度に応じて、非同期でハードディスク６から必要な画像データだけ読み出されて印刷される。
【００２８】
まず、リーダ部２によって原稿スキャン５１０が行なわれ、読み取られた画像データがメモリ２２３上のバッファ５１１に格納される。続いて、ハードディスク６に格納するために、バッファ５１１のデータがメモリ２０３上のバッファ５１３に転送される。ここでの転送は、矢印５１２に示すように、バスコントローラ２０４、２２４を介して行なわれる。
【００２９】
次に、ＣＰＵ２０１は、カーネルに対してバッファ５１３に格納されたデータをハードディスク６に保存するように依頼する。この操作によりブロックデバイス３０３に対して当該データのライト５１４が行なわれる。ここで、ブロックデバイスとは、カーネルがハードディスク６等に対して、データ転送をブロック単位で行なうサービスを示し、一般的にブロック単位のバッファを使用した入出力、ランダムアクセス、探索などの機能を提供する。なお、バッファの空き領域がなくなると、必要に応じてバッファ内のデータをハードディスク６に書き出すことができる。そのため５０７と５０６上のデータは仮想的に等価と考えることができる。
【００３０】
ブロックデバイス３０３へライト５１４が行なわれたデータは、プリント処理を実行するために、ブロックデバイス３０３からリード５１５が行なわれ、メモリ２０３上のバッファ５１６に格納される。その後、メモリ２２３上のバッファ５１８に転送され、原稿プリント５１９を行なうプリンタ部４へ送信される。
【００３１】
上述したメモリ２２３とメモリ２０３との間のデータ転送は主にＤＭＡが使用され、図４で説明した相互メモリ参照の仕組みを用いて行なわれる。ブロックデバイス３０３は、比較的遅いハードディスク６のキャッシュの役割を行うため、同じ場所を読み書きするようなファイルアクセスにおいては非常に有効に動作する。しかし、当該制御はカーネルがメモリとストレージの関係を隠蔽する仕組みであり、即時動作させる用途では応答性に問題がある。
【００３２】
このような画像データの転送シーケンスにおいて、パフォーマンスを追及すると、３つの問題が発生する。１つ目はメモリ２２３とメモリ２０３との間のデータ送受信である。これは汎用バスブリッジが汎用的なデータの送受信を行うためのものであり、バス帯域が保証されていない場合が多い。例えば、プリンタ・スキャナ等のリアルタイムで画像を送受信するデバイスとのデータ送受信を行う際には、データオーバーラン・アンダーランの可能性が発生するため、バス速度が保証されたバッファ領域に格納しなければならない。つまり、比較的バス速度の高いバッファ領域が別途必要となる。
【００３３】
２つ目はバッファ量の問題である。図５の５３０の範囲に示すように、メモリ２２３、２０３上に同一画像のためのバッファが同一時間内に複数発生する。これは転送先に転送元と同じだけのデータ領域を確保してからＤＭＡ転送を行う必要があるからである。
【００３４】
３つ目はブロックデバイス３０３である。ブロックデバイスはリクエストキュー構成（後述する図３Ｂの３０３に示す。）を有する。つまり、カーネル内でストレージに対する要求が発生した順番にリクエストキューに積み、そのキューに従って逐次処理される。例えば、対象がハードディスク等の低速度デバイスであった場合、アプリケーションがハードディスクアクセスを頻発させると、リクエストキューに要求がたくさん溜まることになる。したがって、このようにブロックデバイス経由でハードディスクと画像データをやり取りすると、即座にアクセスできない可能性がある。
【００３５】
＜本実施形態に係る画像データの転送シーケンス＞
図２に示す本実施形態に係るコントローラ３の構成では、上述した問題を解消する画像形成装置１００を提供することができる。まず、図３Ａを参照して、ハードディスクへの２種類のアクセス方法について説明する。図３Ａは、ソフトウェアの概念図を示す。なお、ここでは、以下で説明する機能をソフトウェアで実現した例について説明するが、本発明はこれに限定されず、当該機能をハードウェア、又は、ソフトウェアとハードウェアとの組み合わせとして実現してもよい。
【００３６】
まず、１つ目のアクセス方法として通常アクセスについて説明する。通常アクセスとは、高速にアクセスする必要のある画像データ以外のデータアクセスに用いられる。アプリケーション３１０は、３０７の経路でオペレーティングシステムが有するファイルシステム３０２にアクセスする。ファイルシステム３０２はディスクの物理的な場所（一般的にＬＢＡアドレス）を決定し、ブロックデバイス３０３にアクセス要求を出す。カーネルは必要に応じて経路３０９によりストレージデバイスドライバ３０４に要求を出す。ストレージデバイスドライバ３０４はディスクコントローラ２２９を介してハードディスク６にアクセスする。このように、通常アクセスでは、メインボード２００が提供するブロックデバイス３０３のリクエストキューの順番（つまり、アクセス要求が発生した順番）でハードディスク６にアクセスする。
【００３７】
次に、２つ目のアクセス方法として高速アクセスについて説明する。高速アクセスとは、プリンタ部４、リーダ部２等の生産性を保証するために、高速にアクセスする必要のある画像データのデータアクセスに用いられる。このようなデータアクセスには、例えば、リーダ部２によって原稿から画像を読み取る読取処理、又は、プリンタ部４によって、画像データに従って記録材に画像を形成する画像形成処理（印刷処理）がある。高速アクセスは、高速アクセスに対応して拡張された高速ファイルシステム３０５により実現される。また、高速アクセスでは、通常アクセスで用いられたリクエストキューが適用されず、直接的にハードディスク６にアクセスされる。
【００３８】
アプリケーション３１０は、経路３０８を経由して高速ファイルシステム３０５にアクセスする。高速ファイルシステムは、画像データの転送先がサブボード２２０か、メインボード２００かを判定する。メインボード２００である場合は、既存のファイルシステム３０２に対してアクセスを依頼し、その後、通常アクセスと同様の動作が行なわれる。一方、サブボード２２０に転送する場合は、ストレージデバイスドライバ３０４に対する直接的なシステムコール（例えば、ｉｏｃｔｌ等）の高速アクセスＩ／Ｆ３０６によりファイルアクセス要求を出す。ストレージデバイスドライバ３０４は、高速アクセスＩ／Ｆ３０６を経由した処理を優先的に処理する。つまり、ブロックデバイス３０３のリクエストキューからの順序制御を待たずに優先的に処理が行なわれる。
【００３９】
なお、図３Ｂは図３Ａの変形例である。図３Ｂの構成では、高速ファイルシステム３０５がオペレーティングシステム３０１上に構築されている。高速ファイルシステム３０５がオペレーティングシステム３０１に構築されるため、直接的にブロックデバイス３０３に対して依頼を行うことができる。制御については図３Ａの構成と同様である。
【００４０】
次に、図８を参照して、本実施形態における高速ファイルシステム３０５の処理手順について説明する。フローチャート８００は図３Ａの構成である非カーネル領域に拡張した高速ファイルシステム３０５による処理手順を示す。また、フローチャート８０１は図３Ｂの構成であるカーネル領域に拡張した高速ファイルシステム３０５による処理手順を示す。以下で説明する処理は、メインボード２００のＣＰＵ２０１が不揮発メモリ２０５等に格納されたプログラムを実行することにより行なわれる。なお、以下で示すＳに続く番号はステップ番号を示す。
【００４１】
まずフローチャート８００について説明する。Ｓ８０１において、高速ファイルシステム３０５は、転送先のボードがメインボード２００かサブボード２２０かを判定する。ここでの判定では、ハードディスク６へのアクセス要求として、リードが要求された場合を想定しているため、転送先のボードがメインボード２００かサブボード２２０かを判定している。しかしながら、本発明は、これに限定されず、ハードディスク６に対するライト要求にも対応できる。この場合、ここでの判定は、アクセス要求による当該アクセスにおいて、メインボード２００とハードディスク６との間でのデータ転送か、サブボード２２０とハードディスク６との間でのデータ転送かを判定する。メインボード２００である場合はＳ８０２に進み、ファイルシステム３０２をコールし、処理を終了する。これは、通常アクセスと同等の結果を得ることができる。一方、Ｓ８０１で転送先がサブボード２２０であると判定されると、Ｓ８０３に進み、高速ファイルシステム３０５は、要求されたファイルからアクセスすべきディスクの物理的アドレスを算出する。これは一般的なファイルシステムの動作である。その後、Ｓ８０４において、高速ファイルシステム３０５は、高速アクセスＩ／Ｆ３０６を経由してストレージデバイスドライバ３０４に依頼する。
【００４２】
次にフローチャート８０１について説明する。Ｓ８１１において、高速ファイルシステム３０５は、Ｓ８０４と同様に、ファイルからアクセスすべきディスクの物理的な記録場所を特定する。次に、Ｓ８１２において、高速ファイルシステム３０５は、転送先ボードがメインボード２００かサブボード２２０かを判定する。メインボード２００である場合はＳ８１３に進み、高速ファイルシステム３０５は、カーネルのブロックデバイス３０３をコールし、処理を終了する。一方、サブボード２２０である場合はＳ８１４に進み、高速ファイルシステム３０５は、高速アクセスＩ／Ｆ３０６を経由してストレージデバイスドライバ３０４に依頼する。
【００４３】
次に、図７を参照して、ストレージデバイスドライバ３０４の処理手順について説明する。以下で説明する処理は、メインボード２００のＣＰＵ２０１が不揮発メモリ２０５等に格納されたプログラムを実行することにより行なわれる。なお、以下で示すＳに続く番号はステップ番号を示す。
【００４４】
まず、Ｓ７０１において、ストレージデバイスドライバ３０４は、高速アクセスＩ／Ｆ３０６からの高速アクセス要求があるか否かを判定する。高速アクセス要求がない場合はＳ７０２に進み、ストレージデバイスドライバ３０４は、ブロックデバイス３０３からの要求があるか否かを判定する。ブロックデバイス３０３からの要求がある場合はＳ７０３に進み、ストレージデバイスドライバ３０４は、ブロックデバイス３０３からのアクセス要求を取得し、Ｓ７０４でハードディスク６にアクセスするための情報（ディスクリプタ）を作成する。その後、Ｓ７０５において、ストレージデバイスドライバ３０４は、ストレージコントローラに要求することでハードディスク６にアクセスし、処理をＳ７０１に戻す。
【００４５】
一方、Ｓ７０１で高速アクセス要求がある場合、Ｓ７０６に進み、ストレージデバイスドライバ３０４は、高速アクセスＩ／Ｆ３０６で要求された高速アクセス要求を取得する。続いて、Ｓ７０７において、ストレージデバイスドライバ３０４は、アドレス変換を行い、Ｓ７０４に進む。その後、ブロックデバイス３０３の動作と同様にＳ７０４、Ｓ７０５の処理を実行し、ハードディスクに対してアクセスする。このように、本フローチャートでは、高速アクセスを通常アクセス（リクエストキューを用いるブロックデバイス要求）も優先的に実行するように制御している。つまり、ストレージデバイスドライバ３０４は、アクセス制御手段に相当する。
【００４６】
ここで、Ｓ８０１及びＳ８１２の、転送先（転送要求）ボードの判定方法について詳細に説明する。当該判定方法には、例えばファイルシステムのＩ／Ｆを分ける方法、ボリューム名を変更する方法、特定のパス名を割り当てる方法などがある。本実施形態では以下に説明する方法を適用するが、この判定方法に限定するわけではない。
【００４７】
本判定方法は、図４に示す領域４０３を用いる。領域４０３は、オペレーティングシステムが管理する一部の仮想メモリ領域以外のメモリ領域であり、サブボード２２０用の領域４３３のミラーアドレスとして割り当てられる。つまり、サブボード２２０のメモリ２２３のアドレスに関連付けられる。この割り当ては、ハードウェア的に割り当てたものではなく、転送先ボードを判定するためのものである。アプリケーション３１０は、ＣＰＵ２０１のメモリマップ４３０上の領域４３３にデータを転送したい場合、オペレーティングシステムの非管理領域である領域４０３を指定して高速ファイルシステム３０５をコールする。
【００４８】
図９を参照して、Ｓ８０１及びＳ８１２の詳細な処理について説明する。以下で説明する処理は、メインボード２００のＣＰＵ２０１が不揮発メモリ２０５等に格納されたプログラムを実行することにより行なわれる。なお、以下で示すＳに続く番号はステップ番号を示す。
【００４９】
Ｓ９０１において、高速ファイルシステム３０５は、ファイルシステムに与えられたバッファアドレスが、領域４０３を示すか否かを判定する。同様に、カーネルの仮想メモリ領域であるか否かの判定でもよい。バッファアドレスが領域４０３を示す場合、Ｓ９０２に進み、高速ファイルシステム３０５は、転送先をサブボード２２０に設定する。一方、バッファアドレスが領域４０３を示さない場合、Ｓ９０３に進み、高速ファイルシステム３０５は、転送先をメインボード２００に設定する。
【００５０】
次に、図７に示すＳ７０７のアドレス変換処理について詳細に説明する。Ｓ７０６では、高速アクセス要求であるため、領域４０３を示すバッファアドレスが通知されている。領域４０３は、仮想アドレスであるため、Ｓ７０７で対応するサブボード用の領域４３３のアドレスに変換する。当該アドレスは、サブボード２２０のディスクコントローラ２２９がメモリ２２３を参照するためのアドレスである。このアドレス変換処理により、ディスクコントローラ２２９は、ハードディスク６とメモリ２２３との間で直接データ転送を行なうことができる。
【００５１】
次に、図６を参照して、本実施形態における画像データの転送シーケンスについて説明する。図６の６０１はプリンタ部４の動作タイミングを示す。６０２はリーダ部２の動作タイミングを示す。６０３、６０６はそれぞれメモリ２２３、２０３上のバッファにおけるデータのリード・ライトのタイミングを示す。６０４は本実施形態におけるサブボード２２０側に接続されたハードディスク６におけるデータのリード・ライトのタイミングを示す。６０５はバスコントローラ２０４、２２４の動作タイミングを示す。６０７はブロックデバイス３０３におけるデータのリード・ライトのタイミングを示す。
【００５２】
ブロックデバイス３０３に６２１、６２４の大量のリード要求が入っているとする。リード６２１はハードディスク６を使用し、メモリ２０３上にデータをリードする。この動作は図３Ａにおけるファイルシステム３０２、ブロックデバイス３０３、ストレージデバイスドライバ３０４、ディスクコントローラ２２９における経路のアクセスである。当該アクセスは、既存のブロックデバイスを用いたオペレーティングシステムの１つの機能であるディスクキャッシュを最大限に利用したファイルアクセスである。
【００５３】
図６では、リーダ部２が原稿スキャン６１０を行いメモリ２２３上のバッファ６１１にデータが読み込まれ、当該データをハードディスク６に書き込む動作が先のファイルアクセスに競合した場合を想定している。６１２の書き込みは上述した高速アクセスＩ／Ｆ３０６からアクセスされるためＳ７０６、Ｓ７０７の経路で６２４のリード要求に先行して実行される。その後、同様にバッファ６１４に対してリード６１３が実行され、原稿プリント６１５を行なうためプリンタ部４に画像データが転送される。
【００５４】
６３０から６３５についても同様に画像データが優先的に転送される。リード６２４はハードディスク６が空いたときにスケジューリングされるためリード６２５のタイミングで遅延してバッファ６２６にリードされる。つまり、優先度の高いライト６１２、６３２、リード６１３、６３３が先に実行され、リード６２４に対応するリード６２５は遅延して実行される。６４０から６４２も同様に遅延リードされる。
【００５５】
以上説明したように、本実施形態に係る画像形成装置１００では、メインのハードディスク６をサブボード２２０側に設けることにより、サブボード２２０で制御されるプリント処理やスキャナ処理におけるデータ転送を高速で行なう。具体的には、当該データ転送は、サブボード２２０内でのデータ転送となり、バスコントローラ２０４、２２４を介することなく行なわれる。したがって、本画像形成装置１００では、高速なデータ転送が要求されるプリント処理やスキャナ処理においては、複数のボードを介することなく１つのボードに閉じて制御が行えるため上述した問題を解消することができる。例えば、本画像形成装置は、ハードディスク６から、画像データを出力するデバイスが装着されているＲＡＭ２２３にデータを直接転送することが可能であり、中間バッファ量の削減、バスブリッジの帯域負荷を軽減させることができる。これにより、複数の画像操作要求が競合した場合や、汎用ＰＣのサーバ機能からのストレージアクセス要求が競合した場合においても、画像入出力のパフォーマンスを保証することが可能となる。また、本画像形成装置は、汎用バスブリッジのバス負荷の大幅な軽減、画像転送用のバッファの削減、ストレージ装置の個数削減などによるコスト優位性もある。
【００５６】
なお、上記実施形態は様々な変形が可能となる。上記実施形態においては、ディスクコントローラ、ハードディスクを用いて説明したが、ストレージ装置であれば同様に発明を適用することが可能である。また、その場合、ディスクコントローラに相当するハードウェアは使用するストレージに対応したコントローラとなる。例えば、高速なＳＳＤ等のストレージデバイスを用いる場合は、バスブリッジ間の帯域問題が発生する可能性もある。しかし、本発明は、このような場合であっても有効に適用することが可能である。
【００５７】
＜他の実施形態＞
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
2011015093.tif 000003
【図２】
2011015093.tif 000004
【図３Ａ】
2011015093.tif 000005
【図３Ｂ】
2011015093.tif 000006
【図４】
2011015093.tif 000007
【図５】
2011015093.tif 000008
【図６】
2011015093.tif 000009
【図７】
2011015093.tif 000010
【図８】
2011015093.tif 000011
【図９】
2011015093.tif 000012