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