(57)【要約】【課題】画像形成装置を含むファイルシステムにおいて、デバイスの排他が簡単に行え、また両ＯＳで共通に使用する関数部の重複を省く。【解決手段】同一のアーキテクチャである複数のＣＰＵを有し、前記複数のＣＰＵがアクセス可能である主記憶装置を搭載した画像形成装置を含むファイルシステムであって、前記ＣＰＵ上で動作する前記画像形成装置のファームウェア６２０６は、それぞれ別々にリンクされた独立したオブジェクトであり、前記ＣＰＵのうち、特定のＣＰＵ上のファームウェア内の関数のエントリーポインタを記述したテーブル６２０７を前記複数のＣＰＵそれぞれのＯＳ上で管理するようにした。【選択図】  図１７
2008140191.tif 000002
【特許請求の範囲】
【請求項１】
同一のアーキテクチャである複数のＣＰＵを有し、前記複数のＣＰＵがアクセス可能である主記憶装置を搭載した画像形成装置を含むファイルシステムであって、
前記ＣＰＵ上で動作する前記画像形成装置のファームウェアは、それぞれ別々にリンクされた独立したオブジェクトであり、前記ＣＰＵのうち、特定のＣＰＵ上のファームウェア内の関数のエントリーポインタを記述したテーブルを前記複数のＣＰＵそれぞれのＯＳ上で管理することを特徴とするファイルシステム。
【請求項２】
前記テーブルの内容は、前記ＣＰＵ上のファームウェアの関数のエントリーポインタ、及び前記関数のインタフェースを記述したものであることを特徴とする請求項１に記載のファイルシステム。
【請求項３】
前記ファームウェアの関数はデバイスドライバの制御プログラムであり、
前記複数のＣＰＵからは、前記デバイスドライバの制御プログラムのエントリーアドレスをメンバーに持ったテーブル情報を参照するとともに、前記デバイスドライバを制御する場合はテーブルに記載の制御プログラムによって排他的に制御することを特徴とする請求項１又は２に記載のファイルシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像形成装置のファイルシステムに関する。
【背景技術】
【０００２】
従来、マルチＣＰＵシステム上のデバイスドライバは、そのデバイスを使用するＣＰＵ上のすべてに搭載することが一般的であった。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
一つのデバイスに対して、複数のデバイスドライバが存在することは、メモリの無駄使いであり、第一に一つのデバイスを複数のＣＰＵから制御するために排他を取ることが困難である。
【０００４】
シンメトリカルなマルチＣＰＵ対応のＯＳを使用しない場合、通常、それぞれのＯＳ下に、標準的な関数、あるいはデバイスドライバを配置する必要がある。デバイスドライバの制御の排他、省メモリの観点からこれらは大きな問題である。
【課題を解決するための手段】
【０００５】
本発明のファイルシステムは、同一のアーキテクチャである複数のＣＰＵを有し、前記複数のＣＰＵがアクセス可能である主記憶装置を搭載した画像形成装置を含むファイルシステムであって、前記ＣＰＵ上で動作する前記画像形成装置のファームウェアは、それぞれ別々にリンクされた独立したオブジェクトであり、前記ＣＰＵのうち、特定のＣＰＵ上のファームウェア内の関数のエントリーポインタを記述したテーブルを前記複数のＣＰＵそれぞれのＯＳ上で管理することを特徴とする。
【発明の効果】
【０００６】
本発明によれば、マルチＣＰＵのＯＳに対し、デバイスドライバの制御用プログラムや、標準関数のオブジェクトを、どちらかのＯＳのローカルオブジェクトあるいは、両ＯＳと切り離した別リンクのオブジェクトとして持つようにした。前者の場合は、オブジェクトを持たない方のＯＳ側に、後者の場合は、両ＯＳに、標準関数やデバイスドライバの制御用プログラムのエントリーアドレスおよび、インタフェースをメンバーにもつ関数テーブルを用意する。この場合、関数テーブルはどこかに実態を取り、両ＯＳにはテーブルの先頭アドレスだけを保持するようにする。そして、このテーブルを参照し、標準入出力やデバドラ制御を行う。これにより、デバイスの排他が簡単に行え、また両ＯＳで共通に使用する関数部の重複を省くことが可能である。
【発明を実施するための最良の形態】
【０００７】
以下、本発明の実施の形態を図面を参照して説明する。図１は本発明に係る電子部品としてのコントローラ部が搭載された画像入出力装置（データ処理装置）の実施の形態を示すブロック構成図である。
【０００８】
本実施形態では、該画像入出力装置１００は、イーサネット（登録商標）等のＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）６００にてホストコンピュータ（本実施の形態では第一のホストコンピュータ６０１、第二のホストコンピュータ６０２）に接続されている。
【０００９】
画像入出力システム１００は、画像データの読取処理を行うリーダ装置（リーダー部）２００と、画像データの出力処理を行うプリンタ装置（プリンタ部）３００とを有する。
【００１０】
また、画像データの入出力操作を行うキーボード、及び画像データや各種機能の表示／設定などを行う液晶パネルを備えた操作部１５０を有する。
【００１１】
また、リーダ装置２００を制御して読み込んだ画像データや、ＬＡＮ６００を介してホストコンピュータ６０１、６０２より受信したコードデータから生成される画像データを格納／保存できる画像記憶部１６０を有する。
【００１２】
本実施形態は、これら各構成要素に接続されて該構成要素を制御する単一の電子部品からなる制御装置（コントローラ部）１１０で構成されている。
【００１３】
リーダ装置２００は、原稿用紙を搬送する原稿給紙ユニット２５０と、原稿画像を光学的に読み取って電気信号としての画像データに変換するスキャナユニット２１０とを有する。
【００１４】
プリンタ装置３００は、給紙ユニット３１０と、マーキングユニット(部)３２０と、排紙ユニット（部）３３０とを有する。給紙ユニット３１０は記録用紙を収容する複数段の給紙カセットを備えて構成される。また、マーキングユニット３２０は画像データを記録用紙に転写／定着する。排紙ユニット３３０は印字された記録用紙にソート処理やステイプル処理を施し、外部に排出する。
【００１５】
制御装置１１０は、リーダ部２００を制御して、原稿の画像データを読込み、プリンタ部３００を制御して画像データを記録用紙に出力してコピー機能を提供する。
【００１６】
また、リーダ部２００から読取った画像データを、コードデータに変換し、ネットワーク６００を介してホストコンピュータ６０１、６０２へ送信するスキャナ機能を有する。
【００１７】
また、ホストコンピュータからネットワーク６００を介して受信したコードデータを画像データに変換し、プリンタ部３００に出力するプリンタ機能、その他の機能ブロックを有している。
【００１８】
図２はリーダ部２００及びプリンタ部３００の詳細を示す断面図である。リーダ部２００では、原稿給送ユニット２５０に積層された原稿用紙がその積層順に従って、先頭から順次１枚ずつプラテンガラス２１１上へ給送される。
【００１９】
スキャナユニット２１０で所定の読み取り動作が終了した後、読み取られた原稿用紙は、プラテンガラス２１１上の原稿を排出トレイ２１９に排出される。
【００２０】
また、原稿用紙がプラテンガラス２１１上に搬送されると、ランプ２１２を点灯し、次いで光学ユニット２１３の移動を開始させ、原稿用紙を下方から照射し走査する。
【００２１】
そして、原稿用紙からの反射光は、複数のミラー２１４、２１５、２１６、及び、レンズ２１７を介してＣＣＤイメージセンサ(以下「ＣＣＤ」と記す)２１８へ導かれ、走査された原稿画像はＣＣＤ２１８によって読み取られる。
【００２２】
ＣＣＤ２１８で読み取られた画像データは、所定の処理が施された後、コントローラユニット１１０に転送される。
【００２３】
原稿給送ユニット２５０が原稿流し読み機能を有している場合、原稿給送部２５０に積層された原稿用紙は、原稿流し読み位置２４０を一定の速度で通過する。
【００２４】
この場合、光学ユニット２１３は原稿流し読み位置２４０に移動し、等速で搬送される原稿をランプ２１２によって照射し、ＣＣＤ２１８によって随時読み取ることで画像データを生成し、コントローラユニット１１０に転送される。
【００２５】
次いで、プリンタ部３００では、コントローラ部１１０から出力された画像データに対応するレーザ光がレーザドライバ３２１により駆動されるレーザ発行部３２２から発行され、感光ドラム３２３にはレーザ光に応じた静電潜像が形成される。現像器３２４により前記静電潜像の部分に現像剤が付着される。
【００２６】
一方、レーザ光の照射開始と同期したタイミングで、カセット３１１、カセット３１２、カセット３１３、カセット３１４、手差し給紙段３１５のいずれかから記録用紙が給紙されて転写部３２５に搬送路３３１により搬送される。
【００２７】
感光ドラム３２３に付着している現像剤を記録用紙に転写する。画像データが転写された記録用紙は搬送ベルト３２６によって、定着部３２７に搬送され、定着部３２７における加熱・加圧処理により画像データが記録紙に定着される。
【００２８】
定着部３２７を通過した記録紙は搬送路３３５、搬送路３３４を通り、排紙ビン３２８に排出される。印字面を反転して排紙ビン３２８に排出する場合には、搬送路３３６、搬送路３３８まで導かれ、そこから記録紙を逆方向に搬送し、搬送路３３７、搬送路３３４を通り、排紙ビン３２８に排出される。図に記していないが、排紙ビンの変わりに、排紙ユニットを装着することが可能で、排紙ユニットは排出された記録用紙を束ねて記録用紙の仕分け、仕分けされた記録用紙のステイプル処理などを行うことができる。
【００２９】
また、画像データを記録用紙に両面記録する場合は、定着部３２７を通過したあと、記録紙は、搬送路３３６からフラッパ３２９によって搬送路３３３に導かれる。
【００３０】
その後、記録紙を逆方向に搬送し、フラッパ３２９によって搬送路３３８、再給紙搬送路３３２へ導かれる。
【００３１】
再給紙搬送路３３２へ導かれた記録紙は上述と同様にして搬送路３３１を通り、転写部３２５へ給紙される。
【００３２】
図３は制御装置（コントローラ部）１１０の詳細を示すブロック図である。すなわち、メインコントローラ１１１は、ＣＰＵ１１２と、バスコントローラ１１３と、後述する各種コントローラ回路を含む機能ブロックを内蔵する。
【００３３】
また、ＲＯＭ Ｉ／Ｆ１１５を介してＲＯＭ１１４と接続され、ＤＲＡＭ Ｉ／Ｆ１１７を介してＤＲＡＭ１１６と接続され、コーデックＩ／Ｆ１１８を介してコーデック１１９と接続される。
【００３４】
また、ネットワークＩ／Ｆ１２３を介してネットワークコントローラ１２１と接続され、コネクタ１２２によりＬＡＮ６００との間で所定の制御動作を行う。ネットワークとしては一般的にイーサネット（登録商標）があげられる。
【００３５】
ＲＯＭ１１４は、メインコントローラ１１１のＣＰＵ１１２で実行される各種制御プログラムや演算データが確認されている。ＤＲＡＭ１１６は、ＣＰＵ１１２が動作するための作業領域や画像データを蓄積するための領域として使用される。
【００３６】
コーデック１１９はＤＲＡＭ１１６に蓄積されたラスターイメージデータをＭＨ／ＭＲ／ＭＭＲ／ＪＢＩＧなどの周知の圧縮方式で圧縮し、また圧縮されたデータをラスターイメージに伸長する。
【００３７】
また、コーデック１１９にはＳＲＡＭ１２０が接続されており、該ＳＲＡＭ１２０は前記コーデック１１９の一時的な作業領域として使用される。
【００３８】
また、前記メインコントローラ１１１はスキャナバス１４１を介してスキャナＩ／Ｆ１４０に接続され、プリンタバス１４６を介してプリンタＩ／Ｆ１４５に接続される。さらにＰＣＩバス等の汎用高速バス１２５を介して拡張ボードを接続するための拡張コネクタ１２４及び入出力制御部（Ｉ／Ｏ制御部）１２６に接続されている。
【００３９】
Ｉ／Ｏ制御部１２６はリーダ部２００やプリンタ部３００との間で制御コマンドを送受信するための調歩同期式のシリアル通信コントローラ１２７が２チャンネル装備されている。該シリアル通信コントローラ１２７はＩ／Ｏバス１２８を介してスキャナＩ／Ｆ１４０及びプリンタＩ／Ｆ１４５に接続されている。
【００４０】
スキャナＩ／Ｆ１４０は、第一の調歩同期シリアルＩ／Ｆ１４３及び第一のビデオＩ／Ｆ１４４を介してスキャナコネクタ１４２に接続され、さらに該スキャナコネクタ１４２はリーダ部２００のスキャナユニット２１０に接続されている。
【００４１】
そして、スキャナＩ／Ｆ１４０はスキャナユニット２１０から受信した画像データに対し所望の２値化処理や、主走査方向及び／又は副走査方向の変倍処理を行い、またスキャナユニット２１０から送られてきたビデオ信号に基づいて制御信号を生成する。そして、スキャナバス１４１を介してメインコントローラ１１１に画像データを転送する。
【００４２】
また、プリンタＩ／Ｆ１４５は、第２の調歩同期シリアルＩ／Ｆ１４８及び第２のビデオＩ／Ｆ１４９を介してプリンタコネクタ１４７に接続され、さらに該プリンタコネクタ１４７はプリンタ部３００のマーキングユニット３２０に接続されている。
【００４３】
そして、プリンタＩ／Ｆ１４５はメインコントローラ１１１から出力された画像データにスムージング処理を施して該画像データをマーキングユニット３２０に出力する。さらにマーキングユニット３２０から送られたビデオ信号に基づいて、生成された制御信号をプリンタバス１４６に出力する。
【００４４】
そして、ＣＰＵ１１２は、ＲＯＭ１１４からＲＯＭＩ／Ｆ１１５を介して読み込まれた制御プログラムに基づいて動作する。例えば、第１及び第２のホストコンピュータ６０１、６０２から受信したＰＤＬ（ページ記述言語）データを解釈し、ラスターイメージデータに展開処理を行う。
【００４５】
また、バスコントローラ１１３は、スキャナＩ／Ｆ１４０プリンタＩ／Ｆ１４５、その他拡張コネクタ１２４等に接続された外部機器から入出力されるデータ転送を制御するものである。
【００４６】
これらはバス競合時のアービトレーション（調停）やＤＭＡデータ転送の制御を行う。即ち、ＤＲＡＭ１１６とコーデック１１９との間のデータ転送や、スキャナユニット２１０からＤＲＡＭ１１６へのデータ転送、ＤＲＡＭ１１６からマーキングユニット３２０へのデータ転送等は、バスコントローラ１１３によって制御され、ＤＭＡ転送される。
【００４７】
また、Ｉ／Ｏ制御部１２６は、ＬＣＤコントローラ１３１及びキー入力Ｉ／Ｆ１３０を介してパネルＩ／Ｆ１３２に接続され、パネルＩ／Ｆ１３２は操作部１５０に接続されている。
【００４８】
また、前記Ｉ／Ｏ制御部１２６は不揮発性メモリとしてのＥＥＰＲＯＭ１３５に接続される。またＥ−ＩＤＥコネクタ１６１を介して画像データの書き込み／読み出しが可能なハードディスクドライブ（ＨＤＤ）１６２に接続され、さらに、機器内で管理する日付と時刻を更新／保存するリアルタイムクロックモジュール１３３に接続されている。
【００４９】
尚、リアルタイムクロックモジュール１３３はバックアップ用電池１３４に接続されて該バックアップ用電池１３４によりバックアップされている。
【００５０】
図４はメインコントローラ１１１の内部詳細を示すブロック構成図である。プロセッサコア４０１は、６４ビットのプロセッサバス（ＳＣバス）を介して、システム・バス・ブリッジ(以下、ＳＢＢ)４０２に接続される。
【００５１】
ＳＢＢ４０２は４×４の６４ビットクロスバスイッチであり、プロセッサコア４０１の他に、キャッシュメモリを備えたＳＤＲＡＭやＲＯＭを制御するメモリコントローラ４０３と専用のローカルバス（ＭＣバス）で接続されている。
【００５２】
さらに、グラフィックバスであるＧバス４０４、ＩＯバスであるＢバス４０５と接続され、全部で４つのバスに接続される。
【００５３】
ＳＢＢ４０２は、これら４モジュール間を、可能な限り同時平行接続を確保することができるように設計されている。また、データの圧縮伸張ユニット（ＣＯＤＥＣ）４１８とも、ＣＯＤＥＣ Ｉ／Ｆを介して接続されている。
【００５４】
Ｇバス４０４はＧバスアービタ（ＧＢＡ）４０６により協調制御されており、スキャナやプリンタと接続するためのスキャナ/プリンタコントローラ（ＳＰＣ）４０８に接続される。また、Ｂバス４０５は、Ｂバスアービタ（ＢＢＡ）４０７により協調制御されている。
【００５５】
ＳＰＣ４０８のほか、電力管理ユニット（ＰＭＵ）４０９、インタラプトコントローラ（ＩＣ）４１０、ＵＡＲＴを用いたシリアルインタフェースコントローラ（ＳＩＣ）４１１、ＵＳＢコントローラ４１２にも接続される。ＩＥＥＥ１２８４を用いたパラレルインタフェースコントローラ（ＰＩＣ）４１３、イーサネット（登録商標）を用いたＬＡＮコントローラ（ＬＡＮＣ）４１４、汎用入出力コントローラ（ＭＩＳＣ）４１５、ＰＣＩバスインタフェース（ＰＣＩＣ）４１６にも接続されている。
【００５６】
Ｂバスアービタ４０７はＢバス４０５を協調制御するアービトレーションである。Ｂバス４０５のバス使用要求を受け付け、調停の後、使用許可が選択された一つのマスタに与えられ、これにより同時に２つ以上のマスタがバスアクセスを行うのを禁止している。
【００５７】
尚、アービトレーション方式は３段階の優先権を有し、それぞれの優先権に複数のマスタが割り当てられる。インタラプトコントローラ４１０は、上述した各機能ブロック及びコントローラユニット１１０の外部からインタラプトを集積する。
【００５８】
ＣＰＵ４０１がサポートするコントローラ類４０８、４１１〜４１６及びノンマスカブルインタラプト（ＮＭＩ）に再配分する。
【００５９】
電力管理ユニット４０９は機能ブロック毎に電力を管理し、さらに１チップで構成されている電子部品としてコントローラユニット１１０の消費電力量の監視を行う。
【００６０】
即ち、コントローラユニット１１０は、ＣＰＵ４０１を内蔵した大規模なＡＳＩＣ（特定用途向けＩＣ）で構成されており、このため全ての機能ブロックが同時に動作すると大量の熱を発生して、コントローラ部１１０自体が破壊されてしまう虞がある。
【００６１】
そこで、このような事態を防止するために各に機能ブロック毎に消費電力を管理し、各機能ブロックの消費電力量はパワーマネージメントレベルとして電力管理ユニット４０９に集積される。
【００６２】
そして、該電力管理ユニット４０９では各機能ブロックの消費電力量を合計し、該消費電力量が限界消費電力を超えないように各機能ブロックの消費電力量を一括して監視する。
【００６３】
Ｇバスアービタ４０６は中央アービトレーション方式によりＧバス４０４を協調制御しており、各バスマスタに対して専用の要求信号と許可信号とを有する。
【００６４】
尚、バスマスタへの優先権の付与方式として、全てのバスマスタを同じ優先権として、公平にバス権を付与する公平アービトレーションモードといずれか一つのバスマスタに対して優先的にバスを使用させる優先アービトレーションモードの何れかを指定できる。
【００６５】
図５は、操作部１５０の例を示す図である。５００は、ユーザインタフェースであり、種々のコピーモード（例えば、両面設定、グループ、ソート、ステイプル出力等）を設定することが可能である。
【００６６】
なお、これらのコピーモード設定手段は、ハードキーであっても、タッチパネルに表示されるソフトキーであっても良い。
【００６７】
５０１は、スタートボタンで、このボタンが押されたことを契機にコピー処理が開始される。
【００６８】
図６は、スタートボタン５０１押下によりコピー処理が開始された後に、コピーモードとして、原稿の読取り蓄積を繰り返し行う「連続読込モード」が選択されたときにユーザインタフェース５００に表示される原稿読込設定画面５０２の例である。
【００６９】
原稿読込設定画面５０２には、それまで読み込んだ画像を表示されるモードに入るための「確認」ボタン５０３と、それまで読み込んだ画像を一括出力するための「読込終了」ボタン５０４が備えられている。
【００７０】
図７は、原稿読込設定画面５０２で「確認」ボタン５０３が押下されたときに表示される読込画像確認画面で、５０５の領域にはそれまでに蓄積された画像の総ページ数および表示中のページ番号が表示される。
【００７１】
５０６および５０７は、蓄積された画像のページを移動させる「ページ移動」ボタンで、５０６を押下すると前ページに、５０７を押下すると次ページに移動する。
【００７２】
５０８および５０９は、確認用画像の拡大／縮小表示を行うための「拡大／縮小」ボタンで、５０８を押下すると確認用画像は縮小表示され、５０９を押下すると確認用画像は拡大表示される。
【００７３】
５１０は、蓄積画像確認画面で、５０５に表示されているページの内容が表示される。５１１は「再読込」ボタンで、「再読込」ボタン５１１が押下されるとそのときに表示されていたページを記憶し、画像確認画面をクローズする。
【００７４】
画像確認画面がクローズされると５０２の原稿読込設定画面に戻り原稿読込が可能になる。このとき、原稿読込は再読込モードで実行される。５１２は「閉じる」ボタンで、「閉じる」ボタン５１２が押下されると画像確認画面はクローズされる。
【００７５】
原稿確認画面がクローズされると５０２の原稿読込設定画面に戻り原稿読込が可能になる。このとき、原稿読込は連続読込モードで実行される。
【００７６】
なお、上述の連続読込モードとは、読込んだ画像データが蓄積記憶された最後尾（最終画像）から再度画像データの蓄積記憶を行い、処理中に蓄積記憶された全画像データを１組の画像データとして扱うことを意味する。
【００７７】
再読込モードとは、蓄積記憶された特定の画像データを、新たに読み込んだ画像データに置き換えることを意味する。また、何れの場合も原稿読込み指示はスタートボタン５０１押下により行われる。
【００７８】
図８は、本発明における連続読込コピー処理のフローチャートである。ステップＳ１００１では、スタートボタン５０１が押下されたことによるスタート指示がされたか否かを判別する。
【００７９】
スタートボタン５０１が押下されていない場合はスタートボタン５０１が押下されるまでその判別を繰り返す。スタートボタン５０１が押下された場合はＳ１００２に進み、「連続読込モード」が選択されたかの確認を行う。
【００８０】
ステップＳ１００２にて「連続読込モード」が設定されていない場合、ステップＳ１０１２に進み、通常のコピー処理を行い処理を終了する。
【００８１】
「読込画像確認モード」が設定された場合、ステップＳ１００３に進み、自動紙送り装置（ＤＦ）にセットされた原稿束の読込み、または、圧板上に置かれた原稿の読込みを行う原稿読込処理を実行する。処理が終了すると操作部１５０による指示が可能になる。
【００８２】
ステップＳ１００４では、画像記憶部１６０に蓄積された画像確認処理（プレビュー処理）の指示がされたか否かを判別する。
【００８３】
画像確認処理実行が指示された場合、ステップＳ１００５に進み画像確認処理（プレビュー処理）を行い、その後ステップＳ１００６に進む。画像確認処理実行の指示が無い場合はステップＳ１００６に進む。
【００８４】
ステップＳ１００６では、「再読込」が指示されたか否かを判別する。再読込の指示はステップＳ１００５のプレビュー処理内で行われ、再読込の指示がされると、再読込の対象となるページの画像格納場所が記憶される。
【００８５】
再読込が指示されるとステップＳ１００７に進み、再読込の指示がされない場合はステップＳ１００８に進む。ステップＳ１００７では、再読込指示がされた時に記憶されたページの画像データ破棄（削除）処理を実行する。
【００８６】
その後、ステップＳ１００３に戻り原稿読込処理を実行し、再読込み対象ページの画像データを置き換える。
【００８７】
なお、原稿読込処理Ｓ１００３は、自動紙送り装置（ＤＦ）にセットされた全原稿の読込処理、圧板上に置かれた原稿の読込み処理の他、自動紙送り装置にセットされた原稿から指定枚数の読込処理を行うことが可能である。また、再読込み時は、読込枚数が１ページという指定がされる。
【００８８】
ステップＳ１００８は、連続読込処理中止の指示の判別を行う。ステップＳ１００８で中止の指示があった場合はステップＳ１００９に進み、それまで読込蓄積した画像データの全てを破棄する読込画像破棄処理Ｓ１００９を実行した後、コピー処理を終了する。ステップＳ１００８で中止の指示が無い場合はステップＳ１０１０に進む。
【００８９】
ステップＳ１０１０では読込終了指示の判別を行う。ステップＳ１０１０で読込終了が指示された場合ステップＳ１０１１に進み、それまで読込んだ画像データを全て印刷する読込画像印刷処理を実行した後、コピー処理を終了する。
【００９０】
ステップＳ１０１０で読込終了が指示されない場合はＳ１０１３に進み読込指示の判別を行う。ステップＳ１０１３で読込の指示があった場合、ステップＳ１００３に戻り原稿読込処理を実行する。
【００９１】
ステップＳ１０１３で読込の指示が無い場合はステップＳ１００４に戻る。つまり、操作部１６０による指示が何も無いときは、画像確認、再読込、中止、読込終了、読込の何れかの指示待ちになる。
【００９２】
図９は、原稿読込処理のフローチャートである。ステップＳ２００１では、自動紙送り装置（ＤＦ）の状態の判別を行う。ＤＦがオープンの時はステップＳ２００６に進み、圧板からの原稿読込処理を行い処理を終了する。
【００９３】
ＤＦがクローズの時はステップＳ２００２に進み、ＤＦに原稿がセットされているか否かの判別を行う。ＤＦに原稿がセットされていない場合はステップＳ２００６に進み、圧板からの原稿読込処理を行い処理を終了する。
【００９４】
ＤＦに原稿がセットされている場合はステップＳ２００３に進み、再読込処理が指示されているか否かの判別を行う。ステップＳ２００３にて再読込が指示されていると判別した場合はステップＳ２００４に進み、ＤＦにセットされた原稿から１ページだけ画像を読込み処理を終了する。
【００９５】
ステップＳ２００３にて再読込が指示されていないと判別した場合はステップＳ２００５に進み、ＤＦにセットされた原稿の全ページの読込み処理を行い処理を終了する。
【００９６】
図１０は、蓄積画像確認（プレビュー）処理のフローチャートである。ステップＳ３００１では、蓄積画像の確認を行う画像格納先の指定がされているかの判別を行う。
【００９７】
連続読込コピー処理で繰り返し読込まれる画像データは、実行中の連続読込コピー処理が使用している画像格納先である、後述文書管理部９００のジョブ管理部９０２配下に管理されている。
【００９８】
ジョブ管理部９０２を指定することで、それまでに読込蓄積した画像データの先頭ページから最終ページまでたどることが可能なように管理されている。ステップＳ３００１で指定が無い場合は処理を終了する。つまり、プレビュー処理は実行されない。ステップＳ３００１で指定があった場合はステップＳ３００２に進み蓄積された画像の先頭ページを特定する。
【００９９】
ステップＳ３００３では蓄積されている画像データから、蓄積画像確認画面５１０に表示する画像データの生成を行う。
【０１００】
本実施形態では、蓄積画像確認画面５１０に表示する直前に画像データの生成を行っているが、原稿読込蓄積時に蓄積画像確認画面表示用の画像データを生成し、オリジナル画像と対応付けて外部記憶部１６０に格納しておいても良い。
【０１０１】
ステップＳ３００４では、ステップＳ３００３で生成された画像データを蓄積画像確認画面５１０に表示する。
【０１０２】
ステップＳ３００５は入力指示待ちで、入力指示をループして待っている。
【０１０３】
ステップＳ３００６では次ページを表示する指示がされたかの判別を行い、次ページ表示の指示がされた場合はステップＳ３００７に進む。
【０１０４】
ステップＳ３００７では蓄積されている画像データの最後尾かを判別し、最後尾であった場合はＳ３００５に戻り再度入力指示待ちになる。
【０１０５】
ステップＳ３００７で最後尾で無いと判別した場合、ステップＳ３００３に進み特定されたページの蓄積画像確認画面表示用の画像データの生成を行い処理を繰り返す。
【０１０６】
ステップＳ３００８では、前ページ表示の指示がされたかの判別を行う。前ページ表示の指示がされた場合はステップＳ３００９に進み、蓄積されている画像データの先頭かの判別を行う。
【０１０７】
先頭と判別した場合はステップＳ３００５に戻り再度入力指示待ちになる。先頭で無いと判別した場合、ステップＳ３００３に進み特定されたページの蓄積画像確認画面表示用の画像データの生成を行い処理を繰り返す。
【０１０８】
ステップＳ３０１０では蓄積画像確認画面５１０に表示されている画像を縮小表示する指示がされたかの判別を行う。
【０１０９】
縮小表示が指示されたと判別した場合はステップＳ３００３に進み特定されたページの蓄積画像確認画面表示用の画像データの生成を行い処理を繰り返す。
【０１１０】
縮小表示の指示が無い場合ステップＳ３０１１に進み、拡大表示の指示がされたかの判別を行う。ステップＳ３０１１で拡大表示の指示がされたと判別した場合は指定された場合ステップＳ３００３に進み特定されたページの蓄積画像確認画面表示用の画像データの生成を行い処理を繰り返す。
【０１１１】
拡大表示の指示が無い場合ステップＳ３０１２に進み、画像再読込の指示がされたか判別を行う。ステップＳ３０１２で画像再読込の指示がされた場合、ステップＳ３０１３に進み、現在表示されているページが文書管理部９００のどこで管理されているか等を特定する識別情報を記憶（保持）し処理を終了する。
【０１１２】
ここで保持された情報が前述の画像読込処理に伝わり、再読込処理が実行される。ステップＳ３０１２で再読込の指示が無い場合ステップＳ３００５に戻り入力指示待ちとなる。
【０１１３】
図１１は、制御装置１１０の内部ソフトウェア構造を示す図である。本図において、７００はコントローラソフトウェアであり、その中はプロトコル解釈部７０１、ジョブ制御部７０２、デバイス部７０３で構成されている。
【０１１４】
プロトコル解釈部７０１はホストコンピュータ６０１や、操作部１５０から、各インタフェース（４１１〜４１４）を介して送られてきたコマンド（プロトコル）を解釈し、ジョブ制御部７０２に対してジョブの実行を依頼する。
【０１１５】
ジョブ制御部７０２は、プロトコル解釈部の依頼に基づき種々のジョブを実行する。デバイス部７０３は、画像入出力システム１００を構成する各ユニットを制御するドライバソフトを含み、ジョブ制御部７０２がジョブを実行する際に使用される。
【０１１６】
図１２は、ジョブ制御部７０２の構造を示す図である。同図において７００はコントローラソフトウェア、７０１はプロトコル解釈部、７０２はジョブ制御部、７０３はデバイス部である。
【０１１７】
ジョブ制御部７０２は、ジョブ生成部８００、ジョブ処理部８１０、ドキュメント処理部８２０、ページ処理部８３０、バンド処理部８４０、デバイス割り当て部８５０を有している。
【０１１８】
また、ジョブ処理部８１０は、ジョブ管理部８１１、バインダ管理部８１２、ドキュメント管理部８１３を有している。
【０１１９】
また、デバイス部７０３は、第１デバイス８５１、第２デバイス８５２及び第３デバイス８５３等複数のデバイスを有する事が可能となっている。
【０１２０】
ホストコンピュータ６０１，６０２や、操作部１５０から送られてきた一連の操作依頼は、コマンド（プロトコル）という形で、各インタフェース（４１１〜４１４）を介して送られてくる。
【０１２１】
送られてきたコマンドは、プロトコル解釈部７０１で解釈された後、ジョブ制御部７０２に送られる。この時点でコマンドは、ジョブ制御部７０２が理解できる形に変換される。
【０１２２】
ジョブ生成部８００はジョブ８１４を生成する。ジョブ８１４にはコピージョブ、プリントジョブ、スキャンジョブ及びファックスジョブ等様々なジョブが存在する。
【０１２３】
プロトコル解釈部７０１により解釈されたプロトコルには、例えば、プリントジョブならば印刷する文書の名前や印刷部数、出力先の排紙トレイの指定等の種々の設定情報や、印刷データ自体（ＰＤＬデータ）等が含まれる。
【０１２４】
ジョブ８１４はジョブ処理部８１０に送られ処理が行われる。ジョブ処理部８１０は、ジョブ管理部８１１、バインダ管理部８１２、ドキュメント管理部８１３を有する。ジョブ管理部８１１はジョブを構成する複数のバインダの出力順など、ジョブ全体に関わる設定をする。バインダ管理部８１２はバインダを構成する複数のドキュメントの出力順など、バインダ全体に関わる設定をする。ドキュメント管理部８１３はドキュメントを構成する複数のページの出力順など、ドキュメント全体に関わる設定をする。即ち、ジョブ処理部８１０では、ジョブ８１４全体に関する設定や処理が行われる。
【０１２５】
更に、ジョブ処理部８１０では、ジョブ８１４全体に関する設定や処理以外は、ジョブ８１４を構成するさらに小さな仕事の単位であるバインダ８１５に分割する。
【０１２６】
また、バインダ８１５全体に関する設定や処理以外は、バインダ８１５を構成するさらに小さな仕事の単位であるドキュメント８１６に分割し処理する。
【０１２７】
ドキュメント８１６は入力ドキュメント８２１と１対１に対応付けされており、入力ドキュメント８２１は、ドキュメント処理部８２０により出力ドキュメント８２２に変換処理される。
【０１２８】
例えば、原稿の束をスキャナで読み取り、複数のイメージデータに変換するスキャンジョブを考えると、原稿の束に関する設定や操作の手順が書かれているのが入力ドキュメント８２１である。
【０１２９】
複数のイメージデータに関する設定や操作の手順が書かれているのが出力ドキュメント８２２である。そして、紙の束を複数のイメージデータに変換する役割を持っているのがドキュメント処理部８２０である。
【０１３０】
ドキュメント処理部８２０は、ドキュメント単位の入力ドキュメント８２１から出力ドキュメント８２２への変換処理を行う。そして、ドキュメント全体に関する設定や処理以外は、更に小さな仕事の単位である入力ページ８３１に分割し、ページ処理部８３０に処理を依頼する。
【０１３１】
これは、ちょうどジョブ処理部８１５がジョブ単位の処理に専念して、更に細かい仕事のためにバインダ８１５、ドキュメント８１６を生成するのと同じである。
【０１３２】
ドキュメント単位の設定及び操作は、具体的にはページの並び替え、両面印刷の指定、表紙の付加、ＯＨＰ中差し等のページ順序に関するものである。ページ処理部８３０は、ページ単位の入力ページ８３１から出力ページ８３２への変換処理を行う。
【０１３３】
例えば、上述のスキャンジョブの場合、入力ページ８３１には読み取りの解像度、読み取りの向き（ランドスケープ／ポートレイト）等の各種設定や、手順が書かれており、出力ページ８３２にはイメージデータの格納場所等の設定や手順が書かれている。
【０１３４】
ここまでは、ジョブの単位を徐々に小さくして、ページの単位で扱えるようにすることを説明してきた。高価なシステムで１ページ分のページメモリを持てるならば、最終的にページ単位までジョブを細分化して処理すればよい。
【０１３５】
しかし、現実にはメモリのコスト等の問題から１ページ分のページメモリを持てない場合には、数ライン分のメモリ（バンドメモリ）でジョブ８１４を処理するシステムもある。このような場合、ページを更に細かい単位であるバンドに分割して変換処理を行う。
【０１３６】
それが入力バンド８４１、バンド処理部８４０、出力バンド８４２であり、これらの動作に関してはページの場合と同様である。ジョブ処理部８１０、ドキュメント処理部８２０、ページ処理部８３０及びバンド処理部８４０は、いずれも処理を進める際に画像入出力システム１００を構成する種々の物理デバイスを使用する。
【０１３７】
当然、複数の処理部が同時に仕事を進めるとデバイスの競合が発生するので、それを調停するのがデバイス割り当て部８５０である。
【０１３８】
例として図に示した第１〜第３のデバイス８５１〜８５３は、デバイス割り当て部８５０により上述した各処理部に割り当てられる論理デバイスである。
【０１３９】
例えば、ページメモリやバンドメモリ、原稿給紙ユニット２５０、マーキングユニット３２０エンジン及びスキャナユニット２１０等が考えられる。
【０１４０】
図１３は、画像記憶部１６０に蓄積される画像データを管理する文書管理部９００の管理構造を示す図である。
【０１４１】
文書管理部９００は、フォルダ管理部９０１、ジョブ管理部９０２、バインダ管理部９０３、ドキュメント管理部９０４、ページ管理部９０５で構成さる。
【０１４２】
それぞれ管理情報（属性値）を持っている。文書管理部９００は、１つまたは複数のフォルダ管理部９０１で構成され、フォルダ管理部９０１の管理情報が格納されている。
【０１４３】
フォルダ管理部９０１は、１つまたは複数のジョブ管理部９０２で構成され、ジョブ管理部９０２の管理情報が格納されている。ジョブ管理部９０２は、１つまたは複数のバインダ管理部９０３で構成され、バインダ管理部９０２の管理情報が格納されている。
【０１４４】
さらに、ジョブ管理部９０２は、ジョブ制御部７０２において処理されるジョブ８１４の動作に必要な情報で、ジョブ管理部８１１に格納されている属性値を格納／保存することができる。
【０１４５】
バインダ管理部９０３は、１つまたは複数のドキュメント管理部９０４で構成され、ドキュメント管理部９０４の管理情報が格納されている。
【０１４６】
さらに、バインダ管理部９０３は、ジョブ制御部７０２において処理されるバインダ８１５の動作に必要な情報で、バインダ管理部８１２に格納されている属性値を格納／保存することができる。
【０１４７】
ドキュメント管理部９０４は、１つまたは複数のページ管理部９０５で構成され、ページ管理部９０５の管理情報が格納されている。
【０１４８】
さらに、ドキュメント管理部９０４は、ジョブ制御部７０２において処理されるドキュメント管理部８１３に格納されている属性値や、ドキュメント処理部８２０により処理された出力ドキュメント８２２の属性値を格納／保存することができる。
【０１４９】
ページ管理部９０５は、画像記憶部１６０に保存された、スキャナで読込んだ１ページ分の画像データ、ホストコンピュータから送信されたＰＤＬを展開した１ページ分の画像データ、ＦＡＸで受信した１ページ分の画像データなどと対応付けられている。
【０１５０】
さらに、ページ管理部９０５は、ジョブ制御部７０２のページ処理部８３０により処理された出力ページ８３２の属性値を格納／保存することができる。
【０１５１】
つまり、文書管理部９００に保存された情報と、画像記憶部１６０に保存された画像データから画像蓄積時に投入されたジョブ８１４を再現することが可能である。
【０１５２】
また、保存されている情報を再設定することで投入時のジョブと異なる動作をさせることも可能である。
【０１５３】
図１４は主記憶装置（ＣＰＵ-ＡとＣＰＵ-Ｂが共有してアクセスすることが出来る共有メモリ）にアクセスすることが可能なマルチＣＰＵシステムの説明図である。
【０１５４】
ここでは仮に２つのＣＰＵを搭載したシステムに関して説明するが図１４のＣＰＵ−Ａ、ＣＰＵ−Ｂ以外のＣＰＵを使用した場合に関しても当発明は該当するものとする。
【０１５５】
図１４中の１００１はＣＰＵ−Ａ、１００２はＣＰＵ−Ｂ、１００３は共有メモリ、１００４はシステムバスブリッジ、１００５はメモリコントローラ、１００６はハードディスクコントローラ、１００７はハードディスクである。１００４、１００５に関しては、図４中で説明したとおりであり、ＣＰＵとメモリのデータアクセス方法に関しての説明はここでは省く。
【０１５６】
ＣＰＵ−ＡおよびＣＰＵ−Ｂは、それぞれ、システムバスブリッジ、メモリコントローラを介して、１００３共有メモリに対して、データのリード、ライトが可能である。
【０１５７】
１００６ハードディスクコントローラは、メモリコントローラ同様、ハードディスクへの読み書きを制御するコントローラであり、図３にあるようなＥ−ＩＤＥコネクタを介してハードディスクと接続されている。
【０１５８】
１００７ハードディスクはＥ−ＩＤＥ規格のハードディスクであり、主記憶装置（共有メモリ）対し、非常に容量が大きい。ＣＰＵ−ＡおよびＣＰＵ−Ｂからハードディスクコントローラを介してアクセスすることが可能である。
【０１５９】
図１５は従来のシステム図である。６００１はＣＰＵ-Ａ、６００２はＣＰＵ-Ｂ、６００６はＣＰＵ-ＡおよびＣＰＵ-Ｂからアクセスすることが出来る共有メモリである。
【０１６０】
６００３は共有メモリ上に配置されたＣＰＵ-Ａ上で動作するファームウェア、６００４は共有メモリ上に配置されたＣＰＵ-Ｂ上で動作するファームウェアである。
【０１６１】
６００８は６００３ファームウェア内にあるはーでドディスクを制御するためのデバイスドライバ、６００５は６００４ファームウェア内にあるハードディスクを制御するためのデバイスドライバ、６００７はハードディスクである。
【０１６２】
ハードディスクデバイスドライバは、ハードディスクにデータを書き込んだり、ハードディスクからデータを読み込んだりといった制御を行う。
【０１６３】
このシステムでは、ハードディスクデバイスドライバはＣＰＵ-ＡおよびＣＰＵ-Ｂ上で動作するファームウェア両方の内部に搭載されており、ＣＰＵ-Ａ、ＣＰＵ-Ｂからは通常の関数実行で呼ぶことが可能である。
【０１６４】
ここで問題となるのは、ＣＰＵ-ＡとＣＰＵ-Ｂのコンフリクトである。そのためハードディスクを制御する際、排他的な制御が必要となる。例えばＣＰＵ-Ａがハードディスクをコントロールする際にはＣＰＵ-Ｂにはハードディスクを制御しないように、ＣＰＵ-ＡからＣＰＵ-Ｂに対し命令を出す。
【０１６５】
あるいは、またセマフォなどを利用してＣＰＵ-ＡとＣＰＵ-Ｂが同時にハードディスクへアクセスしないよう排他制御を行う必要がある。これらの排他制御を怠った場合、ＣＰＵ-Ａ及びＣＰＵ-Ｂが同時にハードディスクへアクセスしに行き、データの整合性がとれなくなる可能性がある。
【０１６６】
また、ハードディスクを制御するという全く同様のプログラムを複数のＣＰＵ上のファームウェアに搭載することはメモリやディスクの無駄遣いだと言える。
【０１６７】
図１６は本実施形態でのシステム図である。６１０１はＣＰＵ-Ａ、６１０２はＣＰＵ-Ｂ、６１０６はＣＰＵ-ＡおよびＣＰＵ-Ｂからアクセスすることが出来る共有メモリ、６１０３は共有メモリ上に配置されたＣＰＵ-Ａ上で動作するファームウェアである。
【０１６８】
６１０４は共有メモリ上に配置されたＣＰＵ-Ｂ上で動作するファームウェア、６１０５は６１０４ファームウェア内にあるハードディスクを制御するためのデバイスドライバ、６１０７はハードディスクである。
【０１６９】
６１０８はＣＰＵ-Ａが参照する関数テーブルＡ、６１０９はＣＰＵ-Ｂが参照する関数テーブルＢである。
【０１７０】
このシステムでは、ハードディスクデバイスドライバはＣＰＵ-Ｂ上で動作するファームウェア内に搭載されており、ＣＰＵ-Ｂからは通常の関数実行で呼ぶことが可能である。
【０１７１】
しかし、ＣＰＵ-Ａからは、通常ＣＰＵ-Ｂのファームウェアに搭載されているプログラムを実行することは出来ない。
【０１７２】
ＣＰＵ-ＡからはＣＰＵ-Ａ上のファームウェア内のプログラムを、ＣＰＵ-ＢからはＣＰＵ-Ｂ上のファームウェア内のプログラムを実行することが通常である。
【０１７３】
通常では例えば、ハードディスクデバイスドライバを搭載したＣＰＵ-Ｂからのみハードディスクをコントロールすることが可能となる。
【０１７４】
ＣＰＵ-Ａからハードディスクを制御する場合には、ＣＰＵ-Ａ上のファームウェアにもハードディスクデバイスドライバを搭載する必要がある。しかしながら、ＣＰＵ-Ａ上にハードディスクデバイスドライバを搭載すれば、ＣＰＵ-Ａからハードディスクのコントロールは可能となるが、ＣＰＵ-ＡとＣＰＵ-Ｂのコンフリクトにより、ハードディスクを制御する際の排他制御が必要となる。
【０１７５】
例えばＣＰＵ-Ａがハードディスクをコントロールする際にはＣＰＵ-Ｂにはハードディスクを制御しないように、ＣＰＵ-ＡからＣＰＵ-Ｂに対し命令を出す。あるいは、またセマフォなどを利用してＣＰＵ-ＡとＣＰＵ-Ｂが同時にハードディスクへアクセスしないよう排他制御を行う必要がある。
【０１７６】
これらの排他制御を怠った場合、ＣＰＵ-Ａ及びＣＰＵ-Ｂが同時にハードディスクへアクセスしに行き、データの整合性がとれなくなる可能性がある。
【０１７７】
また、ハードディスクを制御するという全く同様のプログラムを複数のＣＰＵ上のファームウェアに搭載することはメモリやディスクの無駄遣いだと言える。そこで本発明では、ＣＰＵ-ＡがＣＰＵ-Ｂのデバイスドライバを使用して、ハードディスクを制御する手法に付いて述べてゆく。
【０１７８】
図１７は本実施形態における、関数テーブルの概念図である。６２０１はＣＰＵ-Ａ、６２０２はＣＰＵ-Ｂである。６２０３はＣＰＵ-ＡおよびＣＰＵ-Ｂからアクセスすることが出来る共有メモリ、６２０４共有メモリ上に配置されたＣＰＵ-Ａ上で動作するファームウェアである。
【０１７９】
６２０６は共有メモリ上に配置されたＣＰＵ-Ｂ上で動作するファームウェア、６２０８は６２０４ファームウェア内にあるハードディスクを制御するためのデバイスドライバ、６２０９はハードディスクである。６２０５はＣＰＵ-Ａが参照する関数テーブルＡ、６２０７はＣＰＵ-Ｂが参照する関数テーブルＢである。
【０１８０】
画像形成装置の電源投入立ち上げ時に、ＣＰＵ-Ｂは、ＣＰＵ-Ｂ上にあるハードディスクデバイスドライバの制御プログラムのエントリーアドレス、インターフェイス等のメンバーを６２０７関数テーブルＢに設定する。
【０１８１】
その後、ＣＰＵ-ＡとＣＰＵ-Ｂがネゴシエーションを行い、６２０７関数テーブルＢの内容をＣＰＵ-Ａの６２０５関数テーブルＡにコピーする。
【０１８２】
あるいは、ＣＰＵ-Ｂが、ＣＰＵ-Ｂ上にあるハードディスクデバイスドライバの制御プログラムのエントリーアドレス、インターフェイス等を６２０５関数テーブルＡに設定する。
【０１８３】
関数テーブルの内容は、関数名、関数のエントリーアドレス、インターフェイス、戻り値などが設定されている。
【０１８４】
ＣＰＵ-Ｂ上にあるファームウェア内部のプログラムも、同一アーキテクチャのＣＰＵでならば、ＣＰＵ-Ａから関数のエントリーアドレスを指定することにより実行可能である。
【０１８５】
図１８は本実施形態のシステム図である。６４０１はＣＰＵ-Ａ、６４０２はＣＰＵ-Ａである。６４０３はＣＰＵ-ＡおよびＣＰＵ-Ｂからアクセスすることが出来る共有メモリ、６４０４は共有メモリ上に配置されたＣＰＵ-Ａ上で動作するファームウェア、６４０６は共有メモリ上に配置されたＣＰＵ-Ｂ上で動作するファームウェアである。
【０１８６】
６４０８は６４０６ファームウェア内にあるハードディスクを制御するためのデバイスドライバ、６４１０はハードディスク、６４０５はＣＰＵ-Ａが参照する関数テーブルＡ、６４０７はＣＰＵ-Ｂが参照する関数テーブルＢである。
【０１８７】
ＣＰＵ-Ｂからハードディスクを制御する場合には、図のように、６４０８デバイスドライバプログラムを直接ＣＰＵ-Ｂが実行することで可能である。
【０１８８】
また、関数テーブル６４０７の関数エントリーポインタを実行することでも同様の結果になる。
【０１８９】
図１９は本実施形態のシステム図である。６３０１はＣＰＵ-Ａ、６３０２はＣＰＵ-Ｂである。６３０３はＣＰＵ-ＡおよびＣＰＵ-Ｂからアクセスすることが出来る共有メモリ、６３０４は共有メモリ上に配置されたＣＰＵ-Ａ上で動作するファームウェア、６３０６は共有メモリ上に配置されたＣＰＵ-Ｂ上で動作するファームウェアである。
【０１９０】
６３０８は６４０６ファームウェア内にあるハードディスクを制御するためのデバイスドライバ、６３１１はハードディスク、６３０５はＣＰＵ-Ａが参照する関数テーブルＡ、６３０７はＣＰＵ-Ｂが参照する関数テーブルＢである。
【０１９１】
６３０９は共有メモリの未使用領域、６３１０は関数テーブルの内容である。ＣＰＵ-Ａからハードディスクを制御する場合には、図のように、６３０５関数テーブルを参照する。
【０１９２】
例えば、ハードディスクドライバのｏｐｅｎ動作を実行したいのであれば、関数テーブルからそのエントリーアドレスは、０ｘＸＸＸＸ００００であると分かる。また、引数にはそれぞれ、ｎａｍｅとｆｌａｇｓを与えればいいことも分かる。
【０１９３】
戻り値はｆｄであることも分かる。この関数テーブルのｏｐｅｎのエントリーアドレスをコールすることで、６３０８デバイスドライバ内のｏｐｅｎを直接コールしたことと同様の結果が得られる。
【０１９４】
以上、本実施形態では、同一のアーキテクチャである複数のＣＰＵを有し、前記複数のＣＰＵがアクセス可能である主記憶装置を搭載した画像形成装置を含むファイルシステムにおいて、前記ＣＰＵ上で動作する前記画像形成装置のファームウェアを、それぞれ別々にリンクされた独立したオブジェクトとし、前記ＣＰＵのうち、特定のＣＰＵ上のファームウェア内の関数のエントリーポインタを記述したテーブルを前記複数のＣＰＵそれぞれのＯＳ上で管理するようにしている。
このような本実施形態の方式を使用すれば、デバイスの排他が簡単に行え、また両ＯＳで共通に使用する関数部の重複を省くことが可能である。
【図面の簡単な説明】
【０１９５】
【図１】本発明の実施の形態に係るデータ処理装置としてのデジタル複合機のブロック構成図である。
【図２】本発明の実施の形態に係るデジタル複合機の内部構成図である。
【図３】本発明の実施の形態に係る電子部品としてのコントローラ部の詳細を示すブロック図である。
【図４】本発明の実施の形態に係るメインコントローラの詳細を示すブロック図である。
【図５】本発明の実施の形態に係る操作部の例を示す図である。
【図６】本発明の実施の形態に係る「連続読込モード」時の原稿読込設定画面の例を示す図である。
【図７】本発明の実施の形態に係る読込画像確認画面の例を示す図である。
【図８】本発明の実施の形態に係る連続読込コピー処理のフローチャートである。
【図９】本発明の実施の形態に係る原稿読込処理のフローチャートである。
【図１０】本発明の実施の形態に係る蓄積画像確認（プレビュー）処理のフローチャートである。
【図１１】本発明の実施の形態に係る制御装置内部のソフトウェア構造を示す図である。
【図１２】本発明の実施の形態に係るジョブ制御部の構造を示す図である。
【図１３】本発明の実施の形態に係る文書管理部の管理構造を示す図である。
【図１４】本発明の実施の形態に係る主記憶装置（メモリ）を共有するマルチＣＰＵの図である。
【図１５】従来のシステム構成の図である。
【図１６】本発明の実施の形態に係るシステム構成の図である。
【図１７】本発明の実施の形態に係るシステム構成の図である。
【図１８】本発明の実施の形態に係るシステム構成の図である。
【図１９】本発明の実施の形態に係るシステム構成の図である。
【符号の説明】
【０１９６】
１００  画像入出力システム
６２０１  ＣＰＵ−Ａ
６２０２  ＣＰＵ−Ｂ
６２０３  共有メモリ
６２０４  ファームウェア
６２０５  関数テーブルＡ
６２０６  ハードディスク
６２０７  関数テーブルＢ
６４０１  ＣＰＵ−Ａ
６４０２  ＣＰＵ−Ｂ
６４０３  共有メモリ
６４０４  ファームウェア
６４０５  関数テーブル
６４０６  ファームウェア
６４０７  関数テーブル
６４０８  デバイスドライバ
６４１０  ハードディスク
６３０１  ＣＰＵ−Ａ
６３０２  ＣＰＵ−Ｂ
６３０３  共有メモリ
６３０４  ファームウェア
６３０５  関数テーブルＡ
６３０６  ファームウェア
６３０７  関数テーブルＢ
６３０８  デバイスドライバ
【図１】
2008140191.tif 000003
【図２】
2008140191.tif 000004
【図３】
2008140191.tif 000005
【図４】
2008140191.tif 000006
【図５】
2008140191.tif 000007
【図６】
2008140191.tif 000008
【図７】
2008140191.tif 000009
【図８】
2008140191.tif 000010
【図９】
2008140191.tif 000011
【図１０】
2008140191.tif 000012
【図１１】
2008140191.tif 000013
【図１２】
2008140191.tif 000014
【図１３】
2008140191.tif 000015
【図１４】
2008140191.tif 000016
【図１５】
2008140191.tif 000017
【図１６】
2008140191.tif 000018
【図１７】
2008140191.tif 000019
【図１８】
2008140191.tif 000020
【図１９】
2008140191.tif 000021