マルチプロセッサシステム
【課題】圧縮bootableの構造をプロセッサに最適化することで、素早く解凍することを実現し、起動時間を短縮できるようにする。
【解決手段】ストリングディスクリプタ(String Descriptor)を用いてパスワード認証を行うことを特徴とするUSBホスト/デバイスシステム装置を提供することで、夫々のUSBデバイスに固有のUSBクラスを駆動するドライバをUSBホストにインストールすることなく、只ひとつのドライバにて複数のUSBデバイスのセキュリティに対応するUSBホスト/デバイスシステム装置を提供する。
【解決手段】ストリングディスクリプタ(String Descriptor)を用いてパスワード認証を行うことを特徴とするUSBホスト/デバイスシステム装置を提供することで、夫々のUSBデバイスに固有のUSBクラスを駆動するドライバをUSBホストにインストールすることなく、只ひとつのドライバにて複数のUSBデバイスのセキュリティに対応するUSBホスト/デバイスシステム装置を提供する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明はマルチプロセッサシステムに関し、特に、画像および文字データを印刷出力するために用いて好適な技術に関する。
【背景技術】
【0002】
近年、HDD上や不揮発メモリ(ROM)上に圧縮されたbootableを保存しておき、起動直後にはROMで起動し、記憶装置上にBootableを展開し動作する組み込み機器において、圧縮されたbootableのサイズが巨大化している。そして、メモリ上に解凍されたbootableを展開する時間が非常に長くなっているのが現状である。
【発明の概要】
【発明が解決しようとする課題】
【0003】
従来、複数のプロセッサがある場合は、それぞれのプロセッサがそれぞれの圧縮されたbootableをメモリ上に解凍、展開する。そして、それぞれのプロセッサがそのbootableで動作するパターンか、あるいは、1つのメインプロセッサが自分以外の複数のプロセッサのBootableをメモリ上に展開する。その後、メインプロセッサ以外の複数のプロセッサがそのメインプロセッサが解凍、展開してくれたbootableで動作する。
【0004】
この方法では、特定のプロセッサ(特にメインプロセッサ)だけを高速に起動させることが困難である。また、特定のプロセッサのbootableだけが巨大で、他のプロセッサは自分のbootableを展開し終わったあと、メインプロセッサのbootableをメインプロセッサが展開する作業がすむまで待たされるなど、遊び時間が生じる無駄が多かった。
【0005】
本発明は前述の問題点に鑑み、圧縮bootableの構造をプロセッサに最適化することで、素早く解凍することを実現し、起動時間を短縮できるようにすることを目的としている。
【課題を解決するための手段】
【0006】
本発明のマルチプロセッサシステムは、複数の中央処理装置と、前記複数の中央処理装置が処理データを格納する共有メモリとを備えるマルチプロセッサシステムであって、前記複数の中央処理装置は、起動に必要な圧縮されたデータと、前記圧縮されたデータを解凍するための解凍プログラムとを複数に分割して前記共有メモリに配置し、それぞれ非同期に各データを読み出す読み出し手段と、前記読み出し手段によって読み出されたデータに対して非同期に解凍処理を実行する解凍実行手段と、前記解凍実行手段により解凍処理が行われたデータを非同期に前記共有メモリに転送する転送手段とを有することを特徴とする。
【発明の効果】
【0007】
本発明によれば、複数のSPEが同時並行的に解凍処理できるので、解凍時間を大幅に短縮でき、bootableの起動までの時間を早めることができる。
【図面の簡単な説明】
【0008】
【図1】画像入出力装置(データ処理装置)の構成例を示すブロック図である。
【図2】リーダー部及びプリンタ部の詳細な構造を示す断面図である。
【図3】コントローラ部の詳細な構成例を示すブロック図である。
【図4】メインコントローラの詳細な内部構成例を示すブロック図である。
【図5】操作部の詳細な構造例を示す図である。
【図6】ユーザーインターフェースに表示される原稿読込設定画面を示す図である。
【図7】「確認」ボタンが押下されたときに表示される読込画像確認画面を示す図である。
【図8】連続読込コピー処理の動作手順の一例を示すフローチャートである。
【図9】原稿読込処理の動作手順の一例を示すフローチャートである。
【図10】蓄積画像確認処理の動作手順の一例を示すフローチャートである。
【図11】コントローラ部の内部ソフトウェアの構成例を示す図である。
【図12】ジョブ制御部の詳細な構成例を示すブロック図である。
【図13】画像データを管理する文書管理部の管理構造を示す図である。
【図14】ジョブの1つであるコピージョブの構成例を示す図である。
【図15】コピージョブ実行時の文書管理部への属性格納の例を示す図である。
【図16】本発明の実施形態におけるマルチプロセッサシステムの概念図である。
【図17】機能ごとに分割した圧縮bootableの模式図である。
【図18】圧縮bootableを解凍・実行するまでの流れを示す図である。
【図19】解凍処理を行う順番を記したテーブルの一例を示す図である。
【図20】Sectionテーブルを変更する処理手順の一例を示すフローチャートである。
【発明を実施するための形態】
【0009】
(第1の実施形態)
以下、本発明の実施形態について図面を参照して説明する。
図1は、本実施形態に係る電子部品としての複数のコントローラが搭載された画像入出力装置(データ処理装置)の構成例を示すブロック図である。
図1において、画像入出力システム100は、イーサネット(登録商標)等のLAN600にて第1のホストコンピュータ601と、第2のホストコンピュータ602とに接続されている。
【0010】
画像入出力システム100は、画像データ(処理データ)の読取処理を行うリーダー部200と、画像データの出力処理を行うプリンタ部300と、画像データの入出力操作を行う不図示のキーボードとを備える。また、画像データや各種機能の表示/設定などを行う液晶パネルを備えた操作部150を備える。
【0011】
また、LAN600を介して第1のホストコンピュータ601、第2のホストコンピュータ602より受信した圧縮データから生成される画像データを格納/保存できる画像記憶部160を装着されている。さらに、これら各構成要素に接続されて該構成要素を制御する単一の電子部品からなるコントローラ部110を備えている。
【0012】
リーダー部200は、原稿用紙を搬送する原稿給紙ユニット250と、原稿画像を光学的に読み取って電気信号としての画像データに変換するスキャナユニット210とを有する。プリンタ部300は、記録用紙を収容する複数段の給紙カセットを備えた給紙ユニット310を有する。また、画像データを記録用紙に転写/定着するマーキングユニット320と、印字された記録用紙にソート処理やステイプル処理を施し、外部に排出する排紙ユニット330とを有している。
【0013】
コントローラ部110は、リーダー部200を制御して、原稿の画像データを読込み、プリンタ部300を制御して画像データを記録用紙に出力してコピーする機能を有している。また、リーダー部200から読取った画像データを、コードデータに変換する。また、LAN600を介して第1のホストコンピュータ601、第2のホストコンピュータ602へ送信するスキャナ機能も有している。さらに、ホストコンピュータからLAN600を介して受信したコードデータを画像データに変換する機能、プリンタ部300に出力するプリンタ機能などの機能を有している。
【0014】
図2は、リーダー部200及びプリンタ部300の詳細な構造を示す断面図である。
図2において、リーダー部200では、原稿給紙ユニット250に積層された原稿用紙がその積層順に従って、先頭から順次1枚ずつプラテンガラス211上へ給送される。スキャナユニット210で所定の読み取り動作が終了した後、読み取られた原稿用紙は、プラテンガラス211上の原稿を排出トレイ219に排出される。また、原稿用紙がプラテンガラス211上に搬送されると、ランプ212を点灯し、次いで光学ユニット213の移動を開始させ、原稿用紙を下方から照射し走査する。そして、原稿用紙からの反射光は、複数のミラー214、215、216、及び、レンズ217を介してCCDイメージセンサ(以下「CCD」と記す)218へ導かれ、走査された原稿画像はCCD218によって読み取られる。CCD218で読み取られた画像データは、所定の処理が施された後、コントローラ部110に転送される。
【0015】
原稿給紙ユニット250が原稿流し読み機能を有している場合、原稿給紙ユニット250に積層された原稿用紙は、原稿流し読み位置240を一定の速度で通過する。この場合、光学ユニット213は原稿流し読み位置240に移動し、等速で搬送される原稿をランプ212によって照射する。そして、CCD218によって随時読み取ることで画像データを生成し、コントローラ部110に転送される。
【0016】
次に、プリンタ部300では、コントローラ部110から出力された画像データに対応するレーザ光が、レーザドライバ321により駆動されるレーザ発行部322から発行される。感光ドラム323にはレーザ光に応じた静電潜像が形成され、現像器324により前記静電潜像の部分に現像剤が付着される。
【0017】
一方、レーザ光の照射開始と同期したタイミングで、第1のカセット311、第2のカセット312、第3のカセット313、第4のカセット314、手差し給紙段315のいずれかから記録用紙が給紙されて転写部325に搬送路331により搬送される。そして、感光ドラム323に付着している現像剤を記録用紙に転写する。画像データが転写された記録用紙は搬送ベルト326によって、定着部327に搬送され、定着部327における加熱・加圧処理により画像データが記録用紙に定着される。
【0018】
定着部327を通過した記録用紙は搬送路335、搬送路334を通り、排紙ビン328に排出される。印字面を反転して排紙ビン328に排出する場合には、搬送路336、搬送路338まで導かれ、そこから記録用紙を逆方向に搬送し、搬送路337、搬送路334を通り、排紙ビン328に排出される。図に記していないが、排紙ビンの変わりに、排紙ユニットを装着することが可能で、排紙ユニットは排出された記録用紙を束ねて記録用紙の仕分け、仕分けされた記録用紙のステイプル処理などを行うことができる。
【0019】
また、画像データを記録用紙に両面記録する場合は、定着部327を通過したあと、記録紙は、搬送路336からフラッパ329によって搬送路333に導かれる。その後、記録紙を逆方向に搬送し、フラッパ329によって搬送路338、再給紙搬送路332へ導かれる。再給紙搬送路332へ導かれた記録用紙は上述と同様にして搬送路331を通り、転写部325へ給紙される。
【0020】
図3は、コントローラ部110の詳細な構成例を示すブロック図である。
図3において、メインコントローラ111は、CPU112と、バスコントローラ113と、後述する各種コントローラ回路を含む機能ブロックとを内蔵する。また、ROM I/F115を介してROM114と接続され、DRAM I/F117を介してDRAM116と接続され、コーデックI/F118を介してコーデック119と接続されている。また、ネットワークI/F123を介してネットワークコントローラ121と接続され、コネクタ122によりLAN600との間で所定の制御動作を行う。ネットワークとしては一般的にイーサネット(登録商標)があげられる。
【0021】
ROM114には、メインコントローラ111のCPU112で実行される各種制御プログラムや演算データが記憶されている。DRAM116は、CPU112が動作するための作業領域や画像データを蓄積するための領域として使用される。コーデック119はDRAM116に蓄積されたラスターイメージデータをMH/MR/MMR/JBIGなどの周知の圧縮方式で圧縮し、また圧縮されたデータをラスターイメージに伸長(解凍実行)する。また、コーデック119にはSRAM120が接続されており、SRAM120はコーデック119の一時的な作業領域として使用される。
【0022】
また、メインコントローラ111はスキャナバス141を介してスキャナI/F140に接続され、プリンタバス146を介してプリンタI/F145に接続されている。さらに、PCIバス等の汎用高速バス125を介して拡張ボードを接続するための拡張コネクタ124及びI/O制御部126に接続されている。
【0023】
I/O制御部126は、リーダー部200やプリンタ部300との間で制御コマンドを送受信するための調歩同期(非同期)式のシリアル通信コントローラ127が2チャンネル装備されている。シリアル通信コントローラ127は、I/Oバス128を介してスキャナI/F140及びプリンタI/F145に接続されている。
【0024】
スキャナI/F140は、第1の調歩同期シリアルI/F143及び第1のビデオI/F144を介してスキャナコネクタ142に接続され、さらにスキャナコネクタ142はリーダー部200のスキャナユニット210に接続されている。そして、スキャナI/F140はスキャナユニット210から受信した画像データに対し所望の2値化処理や、主走査方向及び/又は副走査方向の変倍処理を行う。また、スキャナユニット210から送られてきたビデオ信号に基づいて制御信号を生成し、スキャナバス141を介してメインコントローラ111に画像データを転送する。
【0025】
また、プリンタI/F145は、第2の調歩同期シリアルI/F148及び第2のビデオI/F149を介してプリンタコネクタ147に接続され、さらにプリンタコネクタ147はプリンタ部300のマーキングユニット320に接続されている。そして、プリンタI/F145は、メインコントローラ111から出力された画像データにスムージング処理を施して該画像データをマーキングユニット320に出力する。さらにマーキングユニット320から送られたビデオ信号に基づいて、生成された制御信号をプリンタバス146に出力する。
【0026】
そして、CPU112は、ROM114からROMI/F115を介して読み込まれた制御プログラムに基づいて動作する。例えば、第1のホストコンピュータ601、第2のホストコンピュータ602から受信したPDL(ページ記述言語)データを解釈し、ラスターイメージデータに展開処理を行う。
【0027】
また、バスコントローラ113は、スキャナI/F140、プリンタI/F145、その他、拡張コネクタ124等に接続された外部機器から入出力されるデータ転送を制御する。そして、バス競合時のアービトレーション(調停)やDMAデータ転送の制御を行う。上述したDRAM116とコーデック119との間のデータ転送や、スキャナユニット210からDRAM116へのデータ転送、DRAM116からマーキングユニット320へのデータ転送等は、バスコントローラ113によって制御される。そして、DMA転送される。
【0028】
また、I/O制御部126は、LCDコントローラ131及びキー入力I/F130を介してパネルI/F132に接続され、パネルI/F132は操作部150に接続されている。また、I/O制御部126は不揮発性メモリとしてのEEPROM135に接続されている。さらに、E−IDEコネクタ161を介して画像データの書き込み/読み出しが可能なハードディスクドライブ(HDD)162に接続されている。さらに、機器内で管理する日付と時刻を更新/保存するリアルタイムクロックモジュール133に接続されている。なお、リアルタイムクロックモジュール133はバックアップ用電池134に接続されてバックアップ用電池134によりバックアップされている。
【0029】
図4は、メインコントローラ111の詳細な内部構成例を示すブロック図である。
図4において、プロセッサコア401は、64ビットのプロセッサバス(SCバス)を介して、システム・バス・ブリッジ(SBB)402に接続されている。SBB402は、4×4の64ビットクロスバスイッチであり、プロセッサコア401の他に、キャッシュメモリを備えたSDRAMやROMを制御するメモリコントローラ403と専用のローカルバス(MCバス)で接続されている。さらに、グラフィックバスであるGバス404、IOバスであるBバス405と接続されており、全部で4つのバスに接続されている。
【0030】
SBB402は、これら4モジュール間を、可能な限り同時平行接続を確保することができるように設計されている。また、データの圧縮伸張ユニット(CODEC)418とも、CODEC I/Fを介して接続されている。
【0031】
Gバス404は、Gバスアービタ(GBA)406により協調制御されており、スキャナやプリンタと接続するためのスキャナ/プリンタコントローラ(SPC)408に接続されている。また、Bバス405は、Bバスアービタ(BBA)407により協調制御されている。また、SPC408のほか、電力管理ユニット(PMU)409、インタラプトコントローラ(IC)410、UARTを用いたシリアルインタフェースコントローラ(SIC)411に接続されている。また、USBコントローラ412、IEEE1284を用いたパラレルインタフェースコントローラ(PIC)413にも接続されている。また、イーサネット(登録商標)を用いたLANコントローラ(LANC)414、汎用入出力コントローラ(MISC)415、PCIバスインタフェース(PCIC)416にも接続されている。
【0032】
Bバスアービタ407は、Bバス405を協調制御するアービトレーションであり、Bバス405のバス使用要求を受け付ける。そして、調停の後、使用許可が選択された一つのマスタに与えられ、これにより同時に2つ以上のマスタがバスアクセスを行うのを禁止している。なお、アービトレーション方式は3段階の優先権を有し、それぞれの優先権に複数のマスタが割り当てられる。
【0033】
インタラプトコントローラ410は、上述した各機能ブロック及びコントローラ部110の外部からインタラプトを集積し、プロセッサコア401がサポートするコントローラ類及びノンマスカブルインタラプト(NMI)に再配分する。
【0034】
電力管理ユニット409は、機能ブロック毎に電力を管理し、さらに1チップで構成されている電子部品としてコントローラ部110の消費電力量の監視を行う。すなわち、コントローラ部110は、プロセッサコア401を内蔵した大規模なASIC(特定用途向けIC)で構成されている。このため全ての機能ブロックが同時に動作すると大量の熱を発生して、コントローラ部110自体が破壊されてしまう虞がある。
【0035】
そこで、このような事態を防止するために各に機能ブロック毎に消費電力を管理し、各機能ブロックの消費電力量はパワーマネージメントレベルとして電力管理ユニット409に集積される。そして、電力管理ユニット409では各機能ブロックの消費電力量を合計し、該消費電力量が限界消費電力を超えないように各機能ブロックの消費電力量を一括して監視する。
【0036】
Gバスアービタ406は、中央アービトレーション方式によりGバス404を協調制御しており、各バスマスタに対して専用の要求信号と許可信号とを有する。なお、優先権の付与方式として、全てのバスマスタを同じ優先権として、公平にバス権を付与する公平アービトレーションモードといずれか一つのバスマスタに対して優先的にバスを使用させる優先アービトレーションモードのいずれかを指定することができる。
【0037】
図5は、操作部150の詳細な構造例を示す図である。
図5において、500は、ユーザーインターフェースであり、種々のコピーモード(例えば、両面設定、グループ、ソート、ステイプル出力等)を設定することが可能である。なお、これらのコピーモード設定手段は、ハードキーであっても、タッチパネルに表示されるソフトキーであってもよい。501は、スタートボタンであり、このスタートボタン501が押されたことを契機にコピー処理が開始される。
【0038】
図6は、スタートボタン501の押下によりコピー処理が開始された後に、コピーモードとして、原稿の読取り蓄積を繰り返し行う「連続読込モード」が選択されたときにユーザーインターフェース500に表示される原稿読込設定画面502を示す図である。
図6において、原稿読込設定画面502には、それまで読み込んだ画像を表示されるモードに入るための「確認」ボタン503と、それまで読み込んだ画像を一括出力するための「読込終了」ボタン504とが備えられている。
【0039】
図7は、原稿読込設定画面502で「確認」ボタン503が押下されたときに表示される読込画像確認画面を示す図である。
図7において、領域505にはそれまでに蓄積された画像の総ページ数および表示中のページ番号が表示される。506、507は蓄積された画像のページを移動させる「ページ移動」ボタンであり、ボタン506を押下すると前ページに、ボタン507を押下すると次ページに移動する。
【0040】
508、509は確認用画像の拡大/縮小表示を行うための「拡大/縮小」ボタンであり、ボタン508を押下すると確認用画像は縮小表示され、ボタン509を押下すると確認用画像は拡大表示される。510は蓄積画像確認画面であり、領域505に表示されているページの内容が表示される。511は「再読込」ボタンであり、「再読込」ボタン511が押下されるとそのときに表示されていたページを記憶し、画像確認画面をクローズする。画像確認画面がクローズされると原稿読込設定画面502に戻り原稿読込が可能になる。このとき、原稿読込は再読込モードで実行される。
【0041】
512は「閉じる」ボタンであり、「閉じる」ボタン512が押下されると画像確認画面はクローズされる。原稿確認画面がクローズされると原稿読込設定画面502に戻り、原稿読込が可能になる。このとき、原稿読込は連続読込モードで実行される。
【0042】
なお、上述の連続読込モードとは、読込んだ画像データが蓄積記憶された最後尾(最終画像)から再度画像データの蓄積記憶を行う。処理中に蓄積記憶された全画像データを1組の画像データとして扱うことを意味し、再読込モードとは、蓄積記憶された特定の画像データを、新たに読み込んだ画像データに置き換えることを意味する。また、何れの場合も原稿読込み指示はスタートボタン501の押下により行われる。
【0043】
図8は、連続読込コピー処理の動作手順の一例を示すフローチャートである。
まず、図8のステップS1001において、スタートボタン501が押下されたことによるスタート指示がされたか否かを判別する。スタートボタン501が押下されていない場合はスタートボタン501が押下されるまでその判別を繰り返す。
【0044】
スタートボタン501が押下された場合はステップS1002に進み、「連続読込モード」が選択されたか否か確認する。ステップS1002の確認の結果、「連続読込モード」が選択されていない場合は、ステップS1012に進み、通常のコピー処理を行い、そのまま処理を終了する。
【0045】
一方、ステップS1002の確認の結果、「読込画像確認モード」が選択された場合は、ステップS1003に進み、自動紙送り装置(DF)にセットされた原稿束の読込み、または、圧板上に置かれた原稿の読込みを行う原稿読込処理を実行する。処理が終了すると操作部150による指示が可能になる。次に、ステップS1004において、画像記憶部160に蓄積された画像確認処理(プレビュー処理)の指示がされたか否かを判別する。この判別の結果、画像確認処理の実行が指示された場合、ステップS1005に進み画像確認処理(プレビュー処理)を行い、その後、ステップS1006に進む。一方、ステップS1004の判別の結果、画像確認処理の実行の指示が無い場合はステップS1006に進む。
【0046】
次に、ステップS1006において、「再読込」が指示されたか否かを判別する。なお、再読込の指示はステップS1005のプレビュー処理内で行われ、再読込の指示がされると、再読込の対象となるページの画像格納場所が記憶される。この判別の結果、再読込が指示された場合はステップS1007に進み、再読込の指示がされない場合はステップS1008に進む。
【0047】
ステップS1007においては、再読込指示がされた時に記憶されたページの画像データを破棄(削除)する処理を実行する。その後、ステップS1003に戻り原稿読込処理を実行し、再読込み対象ページの画像データを置き換える。なお、ステップS1003の原稿読込処理は、自動紙送り装置(DF)にセットされた全原稿の読込処理、圧板上に置かれた原稿の読込み処理の他、自動紙送り装置にセットされた原稿から指定枚数の読込処理を行うことが可能である。再読込み時は、読込枚数が1ページという指定がされる。
【0048】
一方、ステップS1008においては、連続読込処理の中止の指示があったか否かを判別する。ステップS1008の判別の結果、中止の指示があった場合はステップS1009に進み、それまで読込蓄積した画像データの全てを破棄する読込画像破棄処理を実行した後、コピー処理を終了する。一方、ステップS1008の判別の結果、中止の指示が無い場合はステップS1010に進む。
【0049】
ステップS1010においては、読込終了指示があったか否かを判別する。ステップS1010の判別の結果、読込終了が指示された場合はステップS1011に進み、それまで読込んだ画像データを全て印刷する読込画像印刷処理を実行した後、コピー処理を終了する。
【0050】
一方、ステップS1010で読込終了が指示されない場合はステップS1013に進み、読込指示があったか否かを判別する。ステップS1013の判別の結果、読込の指示があった場合は、ステップS1003に戻り、原稿読込処理を実行する。一方、ステップS1013の判別の結果、読込の指示が無い場合はステップS1004に戻る。つまり、操作部150による指示が何も無いときは、画像確認、再読込、中止、読込終了、読込の何れかの指示待ちになる。
【0051】
図9は、原稿読込処理の動作手順の一例を示すフローチャートである。
まず、図9のステップS2001では、自動紙送り装置(DF)の状態を判別する。この判別の結果、DFがオープンの時はステップS2006に進み、圧板からの原稿読込処理を行い、そのまま処理を終了する。
【0052】
一方、ステップS2001の判別の結果、DFがクローズの時はステップS2002に進み、DFに原稿がセットされているか否かを判別する。この判別の結果、DFに原稿がセットされていない場合はステップS2006に進み、圧板からの原稿読込処理を行い、そのまま処理を終了する。
【0053】
一方、ステップS2002の判別の結果、DFに原稿がセットされている場合はステップS2003に進み、再読込処理が指示されているか否かを判別する。ステップS2003の判別の結果、再読込が指示されている場合は、ステップS2004に進み、DFにセットされた原稿から1ページだけ画像を読込み、処理を終了する。一方、ステップS2003の判別の結果、再読込が指示されていない場合はステップS2005に進み、DFにセットされた原稿の全ページの読込み処理を行い、処理を終了する。
【0054】
図10は、蓄積画像確認(プレビュー)処理の動作手順の一例を示すフローチャートである。
まず、図10のステップS3001において、蓄積画像の確認を行う画像格納先の指定がされているか否かを判別する。連続読込コピー処理で繰り返し読込まれる画像データは、図13に示すように、実行中の連続読込コピー処理が使用している画像格納先である文書管理部900のジョブ管理部902配下に管理されている。ジョブ管理部902を指定することで、それまでに読込蓄積した画像データの先頭ページから最終ページまでたどることが可能なように管理されている。なお、図13の詳細な説明は後述する。
【0055】
ステップS3001の判別の結果、指定が無い場合は、そのまま処理を終了する。つまり、プレビュー処理は実行されない。一方、ステップS3001の判別の結果、指定があった場合はステップS3002に進み、蓄積された画像の先頭ページを特定する。そして、ステップS3003において、蓄積されている画像データから、蓄積画像確認画面510に表示する画像データの生成を行う。本実施形態では、蓄積画像確認画面510に表示する直前に画像データの生成を行っているが、原稿読込蓄積時に蓄積画像確認画面表示用の画像データを生成し、オリジナル画像と対応付けて画像記憶部160に格納しておいてもよい。
【0056】
次に、ステップS3004において、ステップS3003で生成された画像データを蓄積画像確認画面510に表示する。そして、ステップS3005において、入力指示の待機状態となる。入力指示がなされると、ステップS3006において、次ページを表示する指示がされたか否かを判別する。この判別の結果、次ページを表示する指示がされた場合はステップS3007に進む。そして、ステップS3007において、蓄積されている画像データの最後尾か否かを判別する。
【0057】
この判別の結果、最後尾であった場合はステップS3005に戻り、再度入力指示待ちになる。一方、ステップS3007の判別の結果、最後尾でない場合は、ステップS3003に進み、特定されたページの蓄積画像確認画面表示用の画像データの生成を行い、処理を繰り返す。
【0058】
一方、ステップS3006の判別の結果、次ページを表示する指示がされていない場合は、ステップS3008に進む。そして、ステップS3008において、前ページ表示の指示がされたか否かを判別する。この判別の結果、前ページ表示の指示がされた場合はステップS3009に進み、蓄積されている画像データの先頭であるか否かを判別する。
【0059】
この判別の結果、先頭である場合はステップS3005に戻り、再度入力指示待ちになる。一方、ステップS3009の判別の結果、先頭でない場合は、ステップS3003に進み、特定されたページの蓄積画像確認画面表示用の画像データの生成を行い、処理を繰り返す。
【0060】
一方、ステップS3008の判別の結果、前ページを表示する指示がされていない場合は、ステップS3010に進む。そして、ステップS3010において、蓄積画像確認画面510に表示されている画像を縮小表示する指示がされたか否かを判別する。この判別の結果、縮小表示が指示された場合はステップS3003に戻り、特定されたページの蓄積画像確認画面表示用の画像データの生成を行い、処理を繰り返す。
【0061】
一方、ステップS3010の判別の結果、縮小表示の指示がない場合は、ステップS3011に進み、拡大表示の指示がされたか否かを判別する。ステップS3011の判別の結果、拡大表示の指示がされた場合はステップS3003に戻り、特定されたページの蓄積画像確認画面表示用の画像データの生成を行い、処理を繰り返す。
【0062】
一方、ステップS3011の判別の結果、拡大表示の指示がない場合はステップS3012に進み、画像再読込の指示がされたか否かを判別する。ステップS3012の判別の結果、画像再読込の指示がされた場合は、ステップS3013に進み、現在表示されているページが文書管理部900のどこで管理されているか等を特定する識別情報を記憶(保持)し、処理を終了する。ここで保持された情報が前述の画像読込処理に伝わり、再読込処理が実行される。一方、ステップS3012の判別の結果、再読込の指示がない場合はステップS3005に戻り、入力指示待ちとなる。
【0063】
図11は、コントローラ部110の内部ソフトウェアの構成例を示す図である。
図11において、コントローラソフトウェア700は、プロトコル解釈部701、ジョブ制御部702、及びデバイス部703で構成されている。
【0064】
プロトコル解釈部701は、第1のホストコンピュータ601や、操作部150から、各インタフェースを介して送られてきたコマンド(プロトコル)を解釈し、ジョブ制御部702に対してジョブの実行を依頼する。ジョブ制御部702は、プロトコル解釈部701の依頼に基づき種々のジョブを実行する。デバイス部703は、画像入出力システム100を構成する各ユニットを制御するドライバソフトを含み、ジョブ制御部702がジョブを実行する際に使用される。
【0065】
図12は、ジョブ制御部702の詳細な構成例を示すブロック図である。
図12において、ジョブ制御部702は、ジョブ生成部800、ジョブ処理部810、ドキュメント処理部820、ページ処理部830、バンド処理部840、及びデバイス割り当て部850を有している。また、ジョブ処理部810は、ジョブ管理部811、バインダ管理部812、及びドキュメント管理部813を有している。また、デバイス部703は、第1のデバイス851、第2のデバイス852及び第3のデバイス853等複数のデバイスを有することが可能となっている。
【0066】
第1のホストコンピュータ601や第2のホストコンピュータ602、操作部150から送られてきた一連の操作依頼は、コマンド(プロトコル)という形で、各インタフェースを介して送られてくる。送られてきたコマンドは、プロトコル解釈部701で解釈された後、ジョブ制御部702に送られる。この時点でコマンドは、ジョブ制御部702が理解できる形に変換される。
【0067】
ジョブ生成部800はジョブ814を生成する。ジョブ814にはコピージョブ、プリントジョブ、スキャンジョブ及びファックスジョブ等様々なジョブが存在する。プロトコル解釈部701により解釈されたプロトコルには、例えば、プリントジョブならば印刷する文書の名前や印刷部数、出力先の排紙トレイの指定等の種々の設定情報や、印刷データ自体(PDLデータ)等が含まれる。
【0068】
ジョブ処理部810には、ジョブ814が送られ、処理が行われる。ジョブ管理部811では、ジョブを構成する複数のバインダの出力順など、ジョブ全体に関わる設定を行う。また、バインダ管理部812は、バインダを構成する複数のドキュメントの出力順など、バインダ全体に関わる設定を行う。また、ドキュメント管理部813は、ドキュメントを構成する複数のページの出力順など、ドキュメント全体に関わる設定を行う。このようにジョブ処理部810では、ジョブ814全体に関する設定や処理が行われる。
【0069】
さらに、ジョブ処理部810は、ジョブ814全体に関する設定や処理以外に、ジョブ814を構成するさらに小さな仕事の単位であるバインダ815に分割する。また、バインダ815全体に関する設定や処理以外に、バインダ815を構成するさらに小さな仕事の単位であるドキュメント816に分割し処理する。
【0070】
ドキュメント816は入力ドキュメント821と1対1に対応付けされており、入力ドキュメント821は、ドキュメント処理部820により出力ドキュメント822に変換処理される。例えば、原稿の束をスキャナで読み取り、複数のイメージデータに変換するスキャンジョブを考える。この場合には、原稿の束に関する設定や操作の手順が含まれているのが入力ドキュメント821であり、複数のイメージデータに関する設定や操作の手順が含まれているのが出力ドキュメント822である。そして、紙の束を複数のイメージデータに変換する役割を持っているのがドキュメント処理部820である。
【0071】
このようにドキュメント処理部820は、ドキュメント単位の入力ドキュメント821から出力ドキュメント822への変換処理を行う。ドキュメント全体に関する設定や処理以外には、更に小さな仕事の単位である入力ページ831に分割し、ページ処理部830に処理を依頼する。これは、ジョブ処理部810がジョブ単位の処理に専念して、更に細かい仕事のためにバインダ815、ドキュメント816を生成するのと同じである。ドキュメント単位の設定及び操作は、具体的にはページの並び替え、両面印刷の指定、表紙の付加、OHP中差し等のページ順序に関するものである。
【0072】
ページ処理部830は、ページ単位の入力ページ831から出力ページ832への変換処理を行う。例えば、上述のスキャンジョブの場合、入力ページ831には読み取りの解像度、読み取りの向き(ランドスケープ/ポートレイト)等の各種設定や、手順が含まれており、出力ページ832にはイメージデータの格納場所等の設定や手順が含まれている。
【0073】
以上、ジョブの単位を徐々に小さくして、ページの単位で扱えるようにすることを説明した。高価なシステムで1ページ分のページメモリを備えている場合は、最終的にページ単位までジョブを細分化して処理すればよい。しかし、現実にはメモリのコスト等の問題から1ページ分のページメモリを備えることができない場合には、数ライン分のメモリ(バンドメモリ)でジョブ814を処理するシステムもある。このような場合、ページを更に細かい単位であるバンドに分割して変換処理を行う。それが入力バンド841、バンド処理部840、出力バンド842であり、これらの動作に関してはページの場合と同様である。
【0074】
ジョブ処理部810、ドキュメント処理部820、ページ処理部830及びバンド処理部840は、いずれも処理を進める際に画像入出力システム100を構成する種々の物理デバイスを使用する。複数の処理部が同時に処理を進めるとデバイスの競合が発生するので、デバイス割り当て部850がデバイスを調停する。
【0075】
例えば、図12に示した第1のデバイス851〜第3のデバイス853は、デバイス割り当て部850により上述した各処理部に割り当てられる論理デバイスである。例えば、ページメモリやバンドメモリ、原稿給紙ユニット250、マーキングユニット320エンジン及びスキャナユニット210等が考えられる。
【0076】
図13は、画像記憶部160に蓄積される画像データを管理する文書管理部900の管理構造を示す図である。
図13において、文書管理部900は、フォルダ管理部901、ジョブ管理部902、バインダ管理部903、ドキュメント管理部904、及びページ管理部905で構成され、それぞれ管理情報(属性値)を持っている。
【0077】
文書管理部900は、1つまたは複数のフォルダ管理部901で構成され、フォルダ管理部901の管理情報が格納されている。フォルダ管理部901は、1つまたは複数のジョブ管理部902で構成され、ジョブ管理部902の管理情報が格納されている。ジョブ管理部902は、1つまたは複数のバインダ管理部903で構成され、バインダ管理部903の管理情報が格納されている。さらに、ジョブ管理部902は、ジョブ制御部702において処理されるジョブ814の動作に必要な情報で、ジョブ管理部811に格納されている属性値を格納/保存することができる。
【0078】
バインダ管理部903は、1つまたは複数のドキュメント管理部904で構成され、ドキュメント管理部904の管理情報が格納されている。さらに、バインダ管理部903は、ジョブ制御部702において処理されるバインダ815の動作に必要な情報で、バインダ管理部812に格納されている属性値を格納/保存することができる。
【0079】
ドキュメント管理部904は、1つまたは複数のページ管理部905で構成され、ページ管理部905の管理情報が格納されている。さらに、ドキュメント管理部904は、ジョブ制御部702において処理されるドキュメント管理部813に格納されている属性値や、ドキュメント処理部820により処理された出力ドキュメント822の属性値を格納/保存することができる。
【0080】
ページ管理部905では、画像記憶部160に保存された、スキャナで読込んだ1ページ分の画像データ、ホストコンピュータから送信されたPDLを展開した1ページ分の画像データ、FAXで受信した1ページ分の画像データなどと対応付けられている。さらに、ページ管理部905は、ジョブ制御部702のページ処理部830により処理された出力ページ832の属性値を格納/保存することができる。つまり、文書管理部900に保存された情報と、画像記憶部160に保存された画像データとから画像蓄積時に投入されたジョブ814を再現することが可能である。また、保存されている情報を再設定することで投入時のジョブと異なる動作をさせることも可能である。
【0081】
図14は、コントローラ部110で実行されるジョブ814の1つであるコピージョブの構成例を示す図である。
第1のホストコンピュータ601や、第2のホストコンピュータ602、操作部150から送られてくる一連の操作依頼は、コマンド(プロトコル)という形で各インタフェースを介して送られてくる。送られてきたコマンドは、プロトコル解釈部701で解釈され、ジョブ制御部702に送られる。この時点でコマンドはジョブ制御部が理解出来る形に変換されることになる。
【0082】
ジョブ生成部800は、送られてきたコマンドを解釈し、コピージョブ1001を生成し制御を依頼する。コピージョブ1001はコピー動作を実現するための機能を有しており、スキャンジョブ1002、イメージエージェントジョブ1003、及び、プリントジョブ1006を生成する。そして、これらの動作を制御することでコピー処理を実現する。
【0083】
イメージエージェントジョブ1003は、より細かいイメージエージェントバインダ1004に処理を依頼し、イメージエージェントバインダ1004は、より細かいイメージエージェントドキュメント1005に処理を依頼する。このように、自身を構成する細かい単位に処理を依頼しそれぞれの動作を制御する。
【0084】
イメージエージェントドキュメント1005は、ドキュメント処理部(紙→イメージ)1010の出力ドキュメントであるイメージドキュメント1011の生成を行う。このイメージドキュメント1011は、イメージエージェントドキュメント1005、イメージエージェントバインダ1004、イメージエージェントジョブ1003、コピージョブ1001を経由する。そして、スキャンジョブ1002、プリントジョブ1006に伝達される。
【0085】
スキャンジョブ1002は、ドキュメント処理部(紙→イメージ)1010の入力ドキュメントであるスキャン紙ドキュメント1009の生成を行った後に、ドキュメント処理部(紙→イメージ)1010を生成する。この時、ドキュメント処理部(紙→イメージ)1010に、入力ドキュメントのスキャン紙ドキュメント1009、出力ドキュメントのイメージドキュメント1011が伝えられる。
【0086】
さらに、スキャンジョブ1002は、ドキュメント処理部(紙→イメージ)1010に処理を依頼し動作の制御を行う。なお、スキャンジョブ1002では、ジョブ処理部810で、スキャンジョブ1002全体に関する設定や処理、およびバインダに関する設定や処理が行われる。スキャンジョブ1002では、スキャナユニット210、原稿給紙ユニット250の物理的構造から、1回のスキャン動作は、1ジョブ、1バインダ、1ドキュメントの構成で制御可能である。このためため、本実施形態では、バインダ815、ドキュメント816を省略している。
【0087】
スキャン紙ドキュメント1009は、原稿に関する情報が属性として管理されており、また、イメージドキュメント1011は、読込み結果である画像データに関する情報が属性として管理される。これらの属性をもとに、ドキュメント処理部(紙→イメージ)1010は、入力ドキュメントであるスキャン紙ドキュメント1009から出力ドキュメントであるイメージドキュメント1011への変換を制御する。なお、ドキュメント処理部(紙→イメージ)1010は、ドキュメント単位の処理のみを行い、さらに細かい仕事は、小さな仕事の単位であるスキャン紙ページ1017、ページ処理部(紙→イメージ)1018、イメージページ1019で行われる。
【0088】
スキャン紙ドキュメント1009は、原稿の枚数に対応したスキャン紙1014を順次生成する。スキャン紙1014は生成されると、原稿の処理順を制御するスキャナ紙管理部1016に識別子を付加して登録した後、スキャン紙ページ1017の生成を行う。スキャン紙ページ1017は原稿の表ページ/裏ページに対応しており、両面原稿の時は1つのスキャン紙1014に対して2つのスキャン紙ページ1017が生成される。
【0089】
スキャナ紙管理部1016は、スキャン紙1014に付加された識別子やデバイスの仕様(原稿読み取り順など)によりスキャン紙ページ1017の処理順序の決定を行う。スキャン紙ページ1017には原稿の各ページに関する情報が管理されており、イメージドキュメント1011により生成されるイメージページ1019には各ページの読込画像データに関する情報が管理される。
【0090】
ページ処理部(紙→イメージ)1018は、入力ページであるスキャン紙ページ1017から出力ページであるイメージページ1019への変換を制御する。また、ページ処理部(紙→イメージ)1018は、実際のスキャナデバイスを制御するためのシーケンスを把握しており、スキャナデバイス制御部1023に用意されたエンジン制御コマンドを発行することで原稿読み取り動作(スキャン動作)の制御を行う。
【0091】
また、スキャン紙ページ1017、イメージページ1019に管理されている属性を画像処理部1025aに設定し制御することで、原稿を画像データとして画像記憶部160に蓄積させる。蓄積された画像データは、文書管理部900にて管理されており、文書管理部900を介して、読み出し、複製、移動、削除、等の操作をすることが可能である。また、画像処理部1025a、1025bには、解像度変換、符号変換などの制御を含んでいる。
【0092】
一方、プリントジョブ1006は、ジョブ全体に関わる設定や処理以外は、さらに小さな仕事の単位であるプリントバインダ1007分割する。そして、バインダ全体に関わる設定や処理以外に、さらに小さな仕事の単位であるプリントドキュメント1008に分割し、プリント処理全体に関する設定や処理の制御を行う。
【0093】
プリントドキュメント1008は、ドキュメント処理部(イメージ→紙)1012の出力ドキュメントであるプリント紙ドキュメント1013の生成を行った後に、ドキュメント処理部(イメージ→紙)1012を生成する。この時、ドキュメント処理部(イメージ→紙)1012に、入力ドキュメントのイメージドキュメント1011、出力ドキュメントのプリント紙ドキュメント1013が伝えられる。
【0094】
さらに、プリントドキュメント1008は、ドキュメント処理部(イメージ→紙)1012に処理を依頼し動作の制御を行う。プリント紙ドキュメント1013には、印刷出力に関する情報が属性として管理されており、イメージドキュメント1011には、画像データに関する情報が属性として管理されている。これらの属性をもとに、ドキュメント処理部(イメージ→紙)1012は、入力ドキュメントであるイメージドキュメント1011から出力ドキュメントであるプリント紙ドキュメント1013への変換を制御する。
【0095】
なお、ドキュメント処理部(イメージ→紙)1012は、ドキュメント単位の処理のみを行い、さらに細かい処理は、小さな処理の単位であるイメージページ1019、ページ処理部(イメージ→紙)1020、プリント紙ページ1021で行われる。
【0096】
プリント紙ドキュメント1013は、印刷出力する枚数分のプリント紙1015を順次生成する。プリント紙1015が生成されると、印字の処理順を制御するプリンタ紙管理部1022に識別子を付加して登録した後、プリント紙ページ1021の生成を行う。プリント紙ページ1021は出力用紙の表ページ/裏ページに対応しており、両面印刷の時は1つのプリント紙1015に対して2つのプリント紙ページ1021生成される。
【0097】
プリンタ紙管理部1022は、プリント紙1015に付加された識別子やデバイスの仕様(内部循環枚数や両面出力時の紙制御順など)によりプリント紙ページ1021の処理順序の決定を行う。プリント紙ページ1021には印字する各ページに関する情報が管理されており、イメージページ1019には各ページの画像データに関する情報が管理されている。
【0098】
ページ処理部(イメージ→紙)1020は、入力ページであるイメージページ1019から出力ページであるプリント紙ページ1021への変換を制御する。また、ページ処理部(イメージ→紙)1020は、実際のプリンタデバイスを制御するためのシーケンスを把握しており、プリンタデバイス制御部1024に用意されたエンジン制御コマンドを発行することで印刷動作(プリント動作)の制御を行う。また、イメージページ1019、プリント紙ページ1021に管理されている属性を画像処理部1025bに設定し制御することで、画像記憶部160に蓄積された画像データを印刷用紙に印字する。
【0099】
このような一連の動作によりより小さな処理の単位である処理部に制御を任せて行くことで、コピー動作を実現することが可能となる。
【0100】
図15は、コピージョブ実行時に行われる文書管理部900への属性格納の例を示す図である。
図13に示した通り、文書管理部900は、フォルダ管理部901、ジョブ管理部902、バインダ管理部903、ドキュメント管理部904、ページ管理部905で構成され、それぞれが管理情報(属性値)を持っている。
【0101】
ジョブ制御部702において処理されるジョブ814の動作に必要な情報で、ジョブ管理部811に格納されている属性値は、イメージエージェントジョブ1003により文書管理部900のジョブ管理部902に格納/保存される。また、ジョブ制御部702において処理されるバインダ815の動作に必要な情報で、バインダ管理部812に格納されている属性値は、イメージエージェントバインダ1004により文書管理部900のバインダ管理部903に格納/保存される。
【0102】
さらに、ジョブ制御部702において処理されるドキュメント管理部813に格納されている属性値や、ドキュメント処理部820により処理された出力ドキュメント822の属性値は、文書管理部900のドキュメント管理部904に格納/保存される。ジョブ制御部702のページ処理部830により処理された出力ページ832の属性値は、出力ページに該当するイメージページ1019により文書管理部900のページ管理部905に格納/保存される。
【0103】
次に本実施形態における特徴的な部分の詳細について述べる。
図16は、本実施形態におけるマルチプロセッサシステムの概念図である。
図16において、2101〜2103はデータ処理を行うための演算及び制御を行う中央処理装置(以下CPUとする)である。2104はCPU2101〜2103の動作に必要なデータを格納する共有メモリ2107を制御するメモリコントローラである。2105はマルチプロセッサシステム2100内のCPU2101〜2103の割込みを制御したり、外部デバイスからの割込みを制御したりする割込みコントローラである。
【0104】
2106はマルチプロセッサシステム2100内および内部外部のバス2112の通信を制御するバスコントローラである。2108はマルチプロセッサシステム2100に接続されている外部デバイス2109〜2111からの割込みを制御し、バスコントローラ2106を経由し、割込みコントローラ2105に通知する、外部割込みコントローラである。
【0105】
以上、本実施形態の前提事項について概略的に述べたが、以下で具体的な実施方法について図面を用いて説明する。なお、本実施形態では、どのプロセッサもアクセスできる共有メモリの他に、各プロセッサは固有の内部メモリを持つとしたが、そのような構成でない場合でも同様に実施することは可能である。
【0106】
<機能ごとに分割した圧縮bootableの説明>
図17は、ROM上に配置された、機能ごとに分割した圧縮bootableの模式図である。
図17では、Section1のbootable5001からSection7のbootable5007までの機能に分割されて配置してある。
例えば、bootable5001には、UI機能のbootableモジュールを圧縮したデータとその解凍プログラムとを配置してある。
【0107】
さらに、各bootableのモジュールデータに合わせて圧縮方法を変えることで、圧縮率は低いが解凍時間が短いbootableモジュールや、圧縮率は高いが解凍に時間がかかるbootableモジュールを作ることができる。こうすることで、bootableモジュールの解凍時間を、起動する機能モジュールの順番に合わせることができる。このようにした場合、解凍プログラムも各bootableモジュールデータに合わせて異なったものを使用する。
【0108】
<圧縮bootableを解凍・実行するまでの流れの説明>
図18は、圧縮bootableを解凍・実行するまでの流れを示す図である。
まず、機能単位でbootableを分割・圧縮し、機能単位のモジュールにする。そして、図17に示したように、解凍プログラムとbootableデータとが組み合わさったデータをROM上に配置しておく。さらに、プロセッサがまず初めに読み込む制御プログラム6005と初期化などを行うbootableの初期のプログラム6006とを配置する。bootable初期のプログラムの最後には、そこでプログラムの実行を一旦止めるwait命令6007を入れておく。
【0109】
次に、プロセッサの動きを説明する。まず、メインプロセッサ6001は、制御プログラムを実行する(6008)。そして、制御プログラムの中で、メインプロセッサ6001は、サブプロセッサ6002〜6004にキックをかけ、サブプロセッサ6002〜6004を起動する(6009)。続いて、メインプロセッサ6001は、static変数の初期化等の初期のbootableを実行する(6010)。
【0110】
メインプロセッサ6001の処理(6010)と平行して、サブプロセッサ6002〜6004は解凍プログラムと圧縮bootableを各サブプロセッサ内のメモリに転送し解凍処理を行う(6011)。次に、サブプロセッサ6002〜6004は、解凍したbootableモジュールを共有メモリへ転送する(6012)。そして、サブプロセッサ6002〜6004は、解凍したbootableモジュールの転送が終了したところでメインプロセッサ6001にwait解除の割り込みをかける(6013)。
【0111】
wait解除の割り込みを受けたメインプロセッサ6001は、まだROM上に解凍されていない圧縮bootableのSectionがある場合、早く解凍が終わったサブプロセッサに対して再度キックをかける(6014)。メインプロセッサ6001は、全bootableモジュールが揃うのを待たずに順次続きのbootableを実行する(6015)。各bootableモジュールの最後にwait命令(6015)を入れておくと、次のモジュールの解凍がまだ終わっていない場合に実行中のメインプロセッサは止まることができる。
【0112】
<解凍処理を行う順番を記したテーブルの説明>
図18でメインプロセッサ6001がサブプロセッサ6002〜6004を起動する(6009)際に、解凍処理を行う順番を記したbootableのSectionテーブルを参照する。図19は、解凍処理を行う順番を記したbootableのSectionテーブルの一例を示す図である。このテーブルを参照して行うと、早く起動したい機能モジュールから順番に起動していくことができるようになる。
【0113】
展開先のアドレス7002は、圧縮bootableモジュールが配置されているROM上のアドレスである。各機能7003の特性に合わせて起動の順番7004を設定することができるようになる。さらに、メインプロセッサ6001がbootableのSectionテーブルを参照する前に、このテーブルをダイナミックに変更することで、柔軟に起動の順番を変更することができる。
【0114】
図20は、機器の状態に合わせてbootableのSectionテーブルを変更する処理手順の一例を示すフローチャートである。図20では、FAXボードを例にして説明する。
図20では、まず、ステップS7101において、画像形成装置に付属モジュール(FAXボード)が装着されているかどうかを確認する。この確認の結果、装着されていない場合は処理を終了する。一方、ステップS7101の確認の結果、装着されている場合は、ステップS7102に進み、カセットのリフトアップに時間がかからないかどうかを確認する。
【0115】
ここで、FAXボードが装着されていてかつカセットのリフトアップの準備もできている場合は、すぐにFAX受信を行なうことができる。よって、この場合はステップS7103に進み、FAX機能のbootableモジュールを早く起動することが求められるため、FAXモジュールの優先順位を上げるようにダイナミックにbootableのSectionテーブルを書き換える。
【0116】
以上のように、複数のSPEが同時並行的に解凍処理できるので、解凍時間を大幅に短縮でき、bootableの起動までの時間を早めることができる。さらに、サブプロセッサが解凍処理をしている間に、メインプロセッサに起動初期のbootableを実行させることで、起動時間をさらに短縮することができる。
【0117】
(本発明に係る他の実施形態)
前述した本発明の実施形態におけるマルチプロセッサシステムを構成する各手段、並びに画像形成方法の各工程は、コンピュータのRAMやROMなどに記憶されたプログラムが動作することによって実現できる。このプログラム及び前記プログラムを記録(記憶)したコンピュータ読み取り可能な記録媒体(記憶媒体)は本発明に含まれる。
【0118】
また、本発明は、例えば、システム、装置、方法、プログラムもしくは記録媒体(記憶媒体)等としての実施形態も可能であり、具体的には、複数の機器から構成されるシステムに適用してもよいし、また、一つの機器からなる装置に適用してもよい。
【0119】
なお、本発明は、前述した実施形態の機能を実現するソフトウェアのプログラム(実施形態では図8〜図10、図19に示すフローチャートに対応したプログラム)を、システムまたは装置に直接、または遠隔から供給する場合も含む。そして、そのシステムまたは装置のコンピュータが前記供給されたプログラムコードを読み出して実行することによっても達成される場合を含む。
【0120】
したがって、本発明の機能処理をコンピュータで実現するために、前記コンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明は、本発明の機能処理を実現するためのコンピュータプログラム自体も含まれる。
【0121】
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、OSに供給するスクリプトデータ等の形態であってもよい。
【0122】
プログラムを供給するための記録媒体(記憶媒体)としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスクなどがある。さらに、MO、CD−ROM、CD−R、CD−RW、磁気テープ、不揮発性のメモリカード、ROM、DVD(DVD−ROM、DVD−R)などもある。
【0123】
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続する方法がある。そして、前記ホームページから本発明のコンピュータプログラムそのもの、もしくは圧縮され自動インストール機能を含むファイルをハードディスク等の記録媒体(記憶媒体)にダウンロードすることによっても供給できる。
【0124】
また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるWWWサーバも、本発明に含まれるものである。
【0125】
また、その他の方法として、本発明のプログラムを暗号化してCD−ROM等の記録媒体(記憶媒体)に格納してユーザに配布し、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせる。そして、その鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。
【0126】
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される。さらに、そのプログラムの指示に基づき、コンピュータ上で稼動しているOSなどが、実際の処理の一部または全部を行い、その処理によっても前述した実施形態の機能が実現され得る。
【0127】
さらに、その他の方法として、まず記録媒体(記憶媒体)から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれる。そして、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によっても前述した実施形態の機能が実現される。
【符号の説明】
【0128】
6001 メインプロセッサ、6002、6003、6004 サブプロセッサ
【技術分野】
【0001】
本発明はマルチプロセッサシステムに関し、特に、画像および文字データを印刷出力するために用いて好適な技術に関する。
【背景技術】
【0002】
近年、HDD上や不揮発メモリ(ROM)上に圧縮されたbootableを保存しておき、起動直後にはROMで起動し、記憶装置上にBootableを展開し動作する組み込み機器において、圧縮されたbootableのサイズが巨大化している。そして、メモリ上に解凍されたbootableを展開する時間が非常に長くなっているのが現状である。
【発明の概要】
【発明が解決しようとする課題】
【0003】
従来、複数のプロセッサがある場合は、それぞれのプロセッサがそれぞれの圧縮されたbootableをメモリ上に解凍、展開する。そして、それぞれのプロセッサがそのbootableで動作するパターンか、あるいは、1つのメインプロセッサが自分以外の複数のプロセッサのBootableをメモリ上に展開する。その後、メインプロセッサ以外の複数のプロセッサがそのメインプロセッサが解凍、展開してくれたbootableで動作する。
【0004】
この方法では、特定のプロセッサ(特にメインプロセッサ)だけを高速に起動させることが困難である。また、特定のプロセッサのbootableだけが巨大で、他のプロセッサは自分のbootableを展開し終わったあと、メインプロセッサのbootableをメインプロセッサが展開する作業がすむまで待たされるなど、遊び時間が生じる無駄が多かった。
【0005】
本発明は前述の問題点に鑑み、圧縮bootableの構造をプロセッサに最適化することで、素早く解凍することを実現し、起動時間を短縮できるようにすることを目的としている。
【課題を解決するための手段】
【0006】
本発明のマルチプロセッサシステムは、複数の中央処理装置と、前記複数の中央処理装置が処理データを格納する共有メモリとを備えるマルチプロセッサシステムであって、前記複数の中央処理装置は、起動に必要な圧縮されたデータと、前記圧縮されたデータを解凍するための解凍プログラムとを複数に分割して前記共有メモリに配置し、それぞれ非同期に各データを読み出す読み出し手段と、前記読み出し手段によって読み出されたデータに対して非同期に解凍処理を実行する解凍実行手段と、前記解凍実行手段により解凍処理が行われたデータを非同期に前記共有メモリに転送する転送手段とを有することを特徴とする。
【発明の効果】
【0007】
本発明によれば、複数のSPEが同時並行的に解凍処理できるので、解凍時間を大幅に短縮でき、bootableの起動までの時間を早めることができる。
【図面の簡単な説明】
【0008】
【図1】画像入出力装置(データ処理装置)の構成例を示すブロック図である。
【図2】リーダー部及びプリンタ部の詳細な構造を示す断面図である。
【図3】コントローラ部の詳細な構成例を示すブロック図である。
【図4】メインコントローラの詳細な内部構成例を示すブロック図である。
【図5】操作部の詳細な構造例を示す図である。
【図6】ユーザーインターフェースに表示される原稿読込設定画面を示す図である。
【図7】「確認」ボタンが押下されたときに表示される読込画像確認画面を示す図である。
【図8】連続読込コピー処理の動作手順の一例を示すフローチャートである。
【図9】原稿読込処理の動作手順の一例を示すフローチャートである。
【図10】蓄積画像確認処理の動作手順の一例を示すフローチャートである。
【図11】コントローラ部の内部ソフトウェアの構成例を示す図である。
【図12】ジョブ制御部の詳細な構成例を示すブロック図である。
【図13】画像データを管理する文書管理部の管理構造を示す図である。
【図14】ジョブの1つであるコピージョブの構成例を示す図である。
【図15】コピージョブ実行時の文書管理部への属性格納の例を示す図である。
【図16】本発明の実施形態におけるマルチプロセッサシステムの概念図である。
【図17】機能ごとに分割した圧縮bootableの模式図である。
【図18】圧縮bootableを解凍・実行するまでの流れを示す図である。
【図19】解凍処理を行う順番を記したテーブルの一例を示す図である。
【図20】Sectionテーブルを変更する処理手順の一例を示すフローチャートである。
【発明を実施するための形態】
【0009】
(第1の実施形態)
以下、本発明の実施形態について図面を参照して説明する。
図1は、本実施形態に係る電子部品としての複数のコントローラが搭載された画像入出力装置(データ処理装置)の構成例を示すブロック図である。
図1において、画像入出力システム100は、イーサネット(登録商標)等のLAN600にて第1のホストコンピュータ601と、第2のホストコンピュータ602とに接続されている。
【0010】
画像入出力システム100は、画像データ(処理データ)の読取処理を行うリーダー部200と、画像データの出力処理を行うプリンタ部300と、画像データの入出力操作を行う不図示のキーボードとを備える。また、画像データや各種機能の表示/設定などを行う液晶パネルを備えた操作部150を備える。
【0011】
また、LAN600を介して第1のホストコンピュータ601、第2のホストコンピュータ602より受信した圧縮データから生成される画像データを格納/保存できる画像記憶部160を装着されている。さらに、これら各構成要素に接続されて該構成要素を制御する単一の電子部品からなるコントローラ部110を備えている。
【0012】
リーダー部200は、原稿用紙を搬送する原稿給紙ユニット250と、原稿画像を光学的に読み取って電気信号としての画像データに変換するスキャナユニット210とを有する。プリンタ部300は、記録用紙を収容する複数段の給紙カセットを備えた給紙ユニット310を有する。また、画像データを記録用紙に転写/定着するマーキングユニット320と、印字された記録用紙にソート処理やステイプル処理を施し、外部に排出する排紙ユニット330とを有している。
【0013】
コントローラ部110は、リーダー部200を制御して、原稿の画像データを読込み、プリンタ部300を制御して画像データを記録用紙に出力してコピーする機能を有している。また、リーダー部200から読取った画像データを、コードデータに変換する。また、LAN600を介して第1のホストコンピュータ601、第2のホストコンピュータ602へ送信するスキャナ機能も有している。さらに、ホストコンピュータからLAN600を介して受信したコードデータを画像データに変換する機能、プリンタ部300に出力するプリンタ機能などの機能を有している。
【0014】
図2は、リーダー部200及びプリンタ部300の詳細な構造を示す断面図である。
図2において、リーダー部200では、原稿給紙ユニット250に積層された原稿用紙がその積層順に従って、先頭から順次1枚ずつプラテンガラス211上へ給送される。スキャナユニット210で所定の読み取り動作が終了した後、読み取られた原稿用紙は、プラテンガラス211上の原稿を排出トレイ219に排出される。また、原稿用紙がプラテンガラス211上に搬送されると、ランプ212を点灯し、次いで光学ユニット213の移動を開始させ、原稿用紙を下方から照射し走査する。そして、原稿用紙からの反射光は、複数のミラー214、215、216、及び、レンズ217を介してCCDイメージセンサ(以下「CCD」と記す)218へ導かれ、走査された原稿画像はCCD218によって読み取られる。CCD218で読み取られた画像データは、所定の処理が施された後、コントローラ部110に転送される。
【0015】
原稿給紙ユニット250が原稿流し読み機能を有している場合、原稿給紙ユニット250に積層された原稿用紙は、原稿流し読み位置240を一定の速度で通過する。この場合、光学ユニット213は原稿流し読み位置240に移動し、等速で搬送される原稿をランプ212によって照射する。そして、CCD218によって随時読み取ることで画像データを生成し、コントローラ部110に転送される。
【0016】
次に、プリンタ部300では、コントローラ部110から出力された画像データに対応するレーザ光が、レーザドライバ321により駆動されるレーザ発行部322から発行される。感光ドラム323にはレーザ光に応じた静電潜像が形成され、現像器324により前記静電潜像の部分に現像剤が付着される。
【0017】
一方、レーザ光の照射開始と同期したタイミングで、第1のカセット311、第2のカセット312、第3のカセット313、第4のカセット314、手差し給紙段315のいずれかから記録用紙が給紙されて転写部325に搬送路331により搬送される。そして、感光ドラム323に付着している現像剤を記録用紙に転写する。画像データが転写された記録用紙は搬送ベルト326によって、定着部327に搬送され、定着部327における加熱・加圧処理により画像データが記録用紙に定着される。
【0018】
定着部327を通過した記録用紙は搬送路335、搬送路334を通り、排紙ビン328に排出される。印字面を反転して排紙ビン328に排出する場合には、搬送路336、搬送路338まで導かれ、そこから記録用紙を逆方向に搬送し、搬送路337、搬送路334を通り、排紙ビン328に排出される。図に記していないが、排紙ビンの変わりに、排紙ユニットを装着することが可能で、排紙ユニットは排出された記録用紙を束ねて記録用紙の仕分け、仕分けされた記録用紙のステイプル処理などを行うことができる。
【0019】
また、画像データを記録用紙に両面記録する場合は、定着部327を通過したあと、記録紙は、搬送路336からフラッパ329によって搬送路333に導かれる。その後、記録紙を逆方向に搬送し、フラッパ329によって搬送路338、再給紙搬送路332へ導かれる。再給紙搬送路332へ導かれた記録用紙は上述と同様にして搬送路331を通り、転写部325へ給紙される。
【0020】
図3は、コントローラ部110の詳細な構成例を示すブロック図である。
図3において、メインコントローラ111は、CPU112と、バスコントローラ113と、後述する各種コントローラ回路を含む機能ブロックとを内蔵する。また、ROM I/F115を介してROM114と接続され、DRAM I/F117を介してDRAM116と接続され、コーデックI/F118を介してコーデック119と接続されている。また、ネットワークI/F123を介してネットワークコントローラ121と接続され、コネクタ122によりLAN600との間で所定の制御動作を行う。ネットワークとしては一般的にイーサネット(登録商標)があげられる。
【0021】
ROM114には、メインコントローラ111のCPU112で実行される各種制御プログラムや演算データが記憶されている。DRAM116は、CPU112が動作するための作業領域や画像データを蓄積するための領域として使用される。コーデック119はDRAM116に蓄積されたラスターイメージデータをMH/MR/MMR/JBIGなどの周知の圧縮方式で圧縮し、また圧縮されたデータをラスターイメージに伸長(解凍実行)する。また、コーデック119にはSRAM120が接続されており、SRAM120はコーデック119の一時的な作業領域として使用される。
【0022】
また、メインコントローラ111はスキャナバス141を介してスキャナI/F140に接続され、プリンタバス146を介してプリンタI/F145に接続されている。さらに、PCIバス等の汎用高速バス125を介して拡張ボードを接続するための拡張コネクタ124及びI/O制御部126に接続されている。
【0023】
I/O制御部126は、リーダー部200やプリンタ部300との間で制御コマンドを送受信するための調歩同期(非同期)式のシリアル通信コントローラ127が2チャンネル装備されている。シリアル通信コントローラ127は、I/Oバス128を介してスキャナI/F140及びプリンタI/F145に接続されている。
【0024】
スキャナI/F140は、第1の調歩同期シリアルI/F143及び第1のビデオI/F144を介してスキャナコネクタ142に接続され、さらにスキャナコネクタ142はリーダー部200のスキャナユニット210に接続されている。そして、スキャナI/F140はスキャナユニット210から受信した画像データに対し所望の2値化処理や、主走査方向及び/又は副走査方向の変倍処理を行う。また、スキャナユニット210から送られてきたビデオ信号に基づいて制御信号を生成し、スキャナバス141を介してメインコントローラ111に画像データを転送する。
【0025】
また、プリンタI/F145は、第2の調歩同期シリアルI/F148及び第2のビデオI/F149を介してプリンタコネクタ147に接続され、さらにプリンタコネクタ147はプリンタ部300のマーキングユニット320に接続されている。そして、プリンタI/F145は、メインコントローラ111から出力された画像データにスムージング処理を施して該画像データをマーキングユニット320に出力する。さらにマーキングユニット320から送られたビデオ信号に基づいて、生成された制御信号をプリンタバス146に出力する。
【0026】
そして、CPU112は、ROM114からROMI/F115を介して読み込まれた制御プログラムに基づいて動作する。例えば、第1のホストコンピュータ601、第2のホストコンピュータ602から受信したPDL(ページ記述言語)データを解釈し、ラスターイメージデータに展開処理を行う。
【0027】
また、バスコントローラ113は、スキャナI/F140、プリンタI/F145、その他、拡張コネクタ124等に接続された外部機器から入出力されるデータ転送を制御する。そして、バス競合時のアービトレーション(調停)やDMAデータ転送の制御を行う。上述したDRAM116とコーデック119との間のデータ転送や、スキャナユニット210からDRAM116へのデータ転送、DRAM116からマーキングユニット320へのデータ転送等は、バスコントローラ113によって制御される。そして、DMA転送される。
【0028】
また、I/O制御部126は、LCDコントローラ131及びキー入力I/F130を介してパネルI/F132に接続され、パネルI/F132は操作部150に接続されている。また、I/O制御部126は不揮発性メモリとしてのEEPROM135に接続されている。さらに、E−IDEコネクタ161を介して画像データの書き込み/読み出しが可能なハードディスクドライブ(HDD)162に接続されている。さらに、機器内で管理する日付と時刻を更新/保存するリアルタイムクロックモジュール133に接続されている。なお、リアルタイムクロックモジュール133はバックアップ用電池134に接続されてバックアップ用電池134によりバックアップされている。
【0029】
図4は、メインコントローラ111の詳細な内部構成例を示すブロック図である。
図4において、プロセッサコア401は、64ビットのプロセッサバス(SCバス)を介して、システム・バス・ブリッジ(SBB)402に接続されている。SBB402は、4×4の64ビットクロスバスイッチであり、プロセッサコア401の他に、キャッシュメモリを備えたSDRAMやROMを制御するメモリコントローラ403と専用のローカルバス(MCバス)で接続されている。さらに、グラフィックバスであるGバス404、IOバスであるBバス405と接続されており、全部で4つのバスに接続されている。
【0030】
SBB402は、これら4モジュール間を、可能な限り同時平行接続を確保することができるように設計されている。また、データの圧縮伸張ユニット(CODEC)418とも、CODEC I/Fを介して接続されている。
【0031】
Gバス404は、Gバスアービタ(GBA)406により協調制御されており、スキャナやプリンタと接続するためのスキャナ/プリンタコントローラ(SPC)408に接続されている。また、Bバス405は、Bバスアービタ(BBA)407により協調制御されている。また、SPC408のほか、電力管理ユニット(PMU)409、インタラプトコントローラ(IC)410、UARTを用いたシリアルインタフェースコントローラ(SIC)411に接続されている。また、USBコントローラ412、IEEE1284を用いたパラレルインタフェースコントローラ(PIC)413にも接続されている。また、イーサネット(登録商標)を用いたLANコントローラ(LANC)414、汎用入出力コントローラ(MISC)415、PCIバスインタフェース(PCIC)416にも接続されている。
【0032】
Bバスアービタ407は、Bバス405を協調制御するアービトレーションであり、Bバス405のバス使用要求を受け付ける。そして、調停の後、使用許可が選択された一つのマスタに与えられ、これにより同時に2つ以上のマスタがバスアクセスを行うのを禁止している。なお、アービトレーション方式は3段階の優先権を有し、それぞれの優先権に複数のマスタが割り当てられる。
【0033】
インタラプトコントローラ410は、上述した各機能ブロック及びコントローラ部110の外部からインタラプトを集積し、プロセッサコア401がサポートするコントローラ類及びノンマスカブルインタラプト(NMI)に再配分する。
【0034】
電力管理ユニット409は、機能ブロック毎に電力を管理し、さらに1チップで構成されている電子部品としてコントローラ部110の消費電力量の監視を行う。すなわち、コントローラ部110は、プロセッサコア401を内蔵した大規模なASIC(特定用途向けIC)で構成されている。このため全ての機能ブロックが同時に動作すると大量の熱を発生して、コントローラ部110自体が破壊されてしまう虞がある。
【0035】
そこで、このような事態を防止するために各に機能ブロック毎に消費電力を管理し、各機能ブロックの消費電力量はパワーマネージメントレベルとして電力管理ユニット409に集積される。そして、電力管理ユニット409では各機能ブロックの消費電力量を合計し、該消費電力量が限界消費電力を超えないように各機能ブロックの消費電力量を一括して監視する。
【0036】
Gバスアービタ406は、中央アービトレーション方式によりGバス404を協調制御しており、各バスマスタに対して専用の要求信号と許可信号とを有する。なお、優先権の付与方式として、全てのバスマスタを同じ優先権として、公平にバス権を付与する公平アービトレーションモードといずれか一つのバスマスタに対して優先的にバスを使用させる優先アービトレーションモードのいずれかを指定することができる。
【0037】
図5は、操作部150の詳細な構造例を示す図である。
図5において、500は、ユーザーインターフェースであり、種々のコピーモード(例えば、両面設定、グループ、ソート、ステイプル出力等)を設定することが可能である。なお、これらのコピーモード設定手段は、ハードキーであっても、タッチパネルに表示されるソフトキーであってもよい。501は、スタートボタンであり、このスタートボタン501が押されたことを契機にコピー処理が開始される。
【0038】
図6は、スタートボタン501の押下によりコピー処理が開始された後に、コピーモードとして、原稿の読取り蓄積を繰り返し行う「連続読込モード」が選択されたときにユーザーインターフェース500に表示される原稿読込設定画面502を示す図である。
図6において、原稿読込設定画面502には、それまで読み込んだ画像を表示されるモードに入るための「確認」ボタン503と、それまで読み込んだ画像を一括出力するための「読込終了」ボタン504とが備えられている。
【0039】
図7は、原稿読込設定画面502で「確認」ボタン503が押下されたときに表示される読込画像確認画面を示す図である。
図7において、領域505にはそれまでに蓄積された画像の総ページ数および表示中のページ番号が表示される。506、507は蓄積された画像のページを移動させる「ページ移動」ボタンであり、ボタン506を押下すると前ページに、ボタン507を押下すると次ページに移動する。
【0040】
508、509は確認用画像の拡大/縮小表示を行うための「拡大/縮小」ボタンであり、ボタン508を押下すると確認用画像は縮小表示され、ボタン509を押下すると確認用画像は拡大表示される。510は蓄積画像確認画面であり、領域505に表示されているページの内容が表示される。511は「再読込」ボタンであり、「再読込」ボタン511が押下されるとそのときに表示されていたページを記憶し、画像確認画面をクローズする。画像確認画面がクローズされると原稿読込設定画面502に戻り原稿読込が可能になる。このとき、原稿読込は再読込モードで実行される。
【0041】
512は「閉じる」ボタンであり、「閉じる」ボタン512が押下されると画像確認画面はクローズされる。原稿確認画面がクローズされると原稿読込設定画面502に戻り、原稿読込が可能になる。このとき、原稿読込は連続読込モードで実行される。
【0042】
なお、上述の連続読込モードとは、読込んだ画像データが蓄積記憶された最後尾(最終画像)から再度画像データの蓄積記憶を行う。処理中に蓄積記憶された全画像データを1組の画像データとして扱うことを意味し、再読込モードとは、蓄積記憶された特定の画像データを、新たに読み込んだ画像データに置き換えることを意味する。また、何れの場合も原稿読込み指示はスタートボタン501の押下により行われる。
【0043】
図8は、連続読込コピー処理の動作手順の一例を示すフローチャートである。
まず、図8のステップS1001において、スタートボタン501が押下されたことによるスタート指示がされたか否かを判別する。スタートボタン501が押下されていない場合はスタートボタン501が押下されるまでその判別を繰り返す。
【0044】
スタートボタン501が押下された場合はステップS1002に進み、「連続読込モード」が選択されたか否か確認する。ステップS1002の確認の結果、「連続読込モード」が選択されていない場合は、ステップS1012に進み、通常のコピー処理を行い、そのまま処理を終了する。
【0045】
一方、ステップS1002の確認の結果、「読込画像確認モード」が選択された場合は、ステップS1003に進み、自動紙送り装置(DF)にセットされた原稿束の読込み、または、圧板上に置かれた原稿の読込みを行う原稿読込処理を実行する。処理が終了すると操作部150による指示が可能になる。次に、ステップS1004において、画像記憶部160に蓄積された画像確認処理(プレビュー処理)の指示がされたか否かを判別する。この判別の結果、画像確認処理の実行が指示された場合、ステップS1005に進み画像確認処理(プレビュー処理)を行い、その後、ステップS1006に進む。一方、ステップS1004の判別の結果、画像確認処理の実行の指示が無い場合はステップS1006に進む。
【0046】
次に、ステップS1006において、「再読込」が指示されたか否かを判別する。なお、再読込の指示はステップS1005のプレビュー処理内で行われ、再読込の指示がされると、再読込の対象となるページの画像格納場所が記憶される。この判別の結果、再読込が指示された場合はステップS1007に進み、再読込の指示がされない場合はステップS1008に進む。
【0047】
ステップS1007においては、再読込指示がされた時に記憶されたページの画像データを破棄(削除)する処理を実行する。その後、ステップS1003に戻り原稿読込処理を実行し、再読込み対象ページの画像データを置き換える。なお、ステップS1003の原稿読込処理は、自動紙送り装置(DF)にセットされた全原稿の読込処理、圧板上に置かれた原稿の読込み処理の他、自動紙送り装置にセットされた原稿から指定枚数の読込処理を行うことが可能である。再読込み時は、読込枚数が1ページという指定がされる。
【0048】
一方、ステップS1008においては、連続読込処理の中止の指示があったか否かを判別する。ステップS1008の判別の結果、中止の指示があった場合はステップS1009に進み、それまで読込蓄積した画像データの全てを破棄する読込画像破棄処理を実行した後、コピー処理を終了する。一方、ステップS1008の判別の結果、中止の指示が無い場合はステップS1010に進む。
【0049】
ステップS1010においては、読込終了指示があったか否かを判別する。ステップS1010の判別の結果、読込終了が指示された場合はステップS1011に進み、それまで読込んだ画像データを全て印刷する読込画像印刷処理を実行した後、コピー処理を終了する。
【0050】
一方、ステップS1010で読込終了が指示されない場合はステップS1013に進み、読込指示があったか否かを判別する。ステップS1013の判別の結果、読込の指示があった場合は、ステップS1003に戻り、原稿読込処理を実行する。一方、ステップS1013の判別の結果、読込の指示が無い場合はステップS1004に戻る。つまり、操作部150による指示が何も無いときは、画像確認、再読込、中止、読込終了、読込の何れかの指示待ちになる。
【0051】
図9は、原稿読込処理の動作手順の一例を示すフローチャートである。
まず、図9のステップS2001では、自動紙送り装置(DF)の状態を判別する。この判別の結果、DFがオープンの時はステップS2006に進み、圧板からの原稿読込処理を行い、そのまま処理を終了する。
【0052】
一方、ステップS2001の判別の結果、DFがクローズの時はステップS2002に進み、DFに原稿がセットされているか否かを判別する。この判別の結果、DFに原稿がセットされていない場合はステップS2006に進み、圧板からの原稿読込処理を行い、そのまま処理を終了する。
【0053】
一方、ステップS2002の判別の結果、DFに原稿がセットされている場合はステップS2003に進み、再読込処理が指示されているか否かを判別する。ステップS2003の判別の結果、再読込が指示されている場合は、ステップS2004に進み、DFにセットされた原稿から1ページだけ画像を読込み、処理を終了する。一方、ステップS2003の判別の結果、再読込が指示されていない場合はステップS2005に進み、DFにセットされた原稿の全ページの読込み処理を行い、処理を終了する。
【0054】
図10は、蓄積画像確認(プレビュー)処理の動作手順の一例を示すフローチャートである。
まず、図10のステップS3001において、蓄積画像の確認を行う画像格納先の指定がされているか否かを判別する。連続読込コピー処理で繰り返し読込まれる画像データは、図13に示すように、実行中の連続読込コピー処理が使用している画像格納先である文書管理部900のジョブ管理部902配下に管理されている。ジョブ管理部902を指定することで、それまでに読込蓄積した画像データの先頭ページから最終ページまでたどることが可能なように管理されている。なお、図13の詳細な説明は後述する。
【0055】
ステップS3001の判別の結果、指定が無い場合は、そのまま処理を終了する。つまり、プレビュー処理は実行されない。一方、ステップS3001の判別の結果、指定があった場合はステップS3002に進み、蓄積された画像の先頭ページを特定する。そして、ステップS3003において、蓄積されている画像データから、蓄積画像確認画面510に表示する画像データの生成を行う。本実施形態では、蓄積画像確認画面510に表示する直前に画像データの生成を行っているが、原稿読込蓄積時に蓄積画像確認画面表示用の画像データを生成し、オリジナル画像と対応付けて画像記憶部160に格納しておいてもよい。
【0056】
次に、ステップS3004において、ステップS3003で生成された画像データを蓄積画像確認画面510に表示する。そして、ステップS3005において、入力指示の待機状態となる。入力指示がなされると、ステップS3006において、次ページを表示する指示がされたか否かを判別する。この判別の結果、次ページを表示する指示がされた場合はステップS3007に進む。そして、ステップS3007において、蓄積されている画像データの最後尾か否かを判別する。
【0057】
この判別の結果、最後尾であった場合はステップS3005に戻り、再度入力指示待ちになる。一方、ステップS3007の判別の結果、最後尾でない場合は、ステップS3003に進み、特定されたページの蓄積画像確認画面表示用の画像データの生成を行い、処理を繰り返す。
【0058】
一方、ステップS3006の判別の結果、次ページを表示する指示がされていない場合は、ステップS3008に進む。そして、ステップS3008において、前ページ表示の指示がされたか否かを判別する。この判別の結果、前ページ表示の指示がされた場合はステップS3009に進み、蓄積されている画像データの先頭であるか否かを判別する。
【0059】
この判別の結果、先頭である場合はステップS3005に戻り、再度入力指示待ちになる。一方、ステップS3009の判別の結果、先頭でない場合は、ステップS3003に進み、特定されたページの蓄積画像確認画面表示用の画像データの生成を行い、処理を繰り返す。
【0060】
一方、ステップS3008の判別の結果、前ページを表示する指示がされていない場合は、ステップS3010に進む。そして、ステップS3010において、蓄積画像確認画面510に表示されている画像を縮小表示する指示がされたか否かを判別する。この判別の結果、縮小表示が指示された場合はステップS3003に戻り、特定されたページの蓄積画像確認画面表示用の画像データの生成を行い、処理を繰り返す。
【0061】
一方、ステップS3010の判別の結果、縮小表示の指示がない場合は、ステップS3011に進み、拡大表示の指示がされたか否かを判別する。ステップS3011の判別の結果、拡大表示の指示がされた場合はステップS3003に戻り、特定されたページの蓄積画像確認画面表示用の画像データの生成を行い、処理を繰り返す。
【0062】
一方、ステップS3011の判別の結果、拡大表示の指示がない場合はステップS3012に進み、画像再読込の指示がされたか否かを判別する。ステップS3012の判別の結果、画像再読込の指示がされた場合は、ステップS3013に進み、現在表示されているページが文書管理部900のどこで管理されているか等を特定する識別情報を記憶(保持)し、処理を終了する。ここで保持された情報が前述の画像読込処理に伝わり、再読込処理が実行される。一方、ステップS3012の判別の結果、再読込の指示がない場合はステップS3005に戻り、入力指示待ちとなる。
【0063】
図11は、コントローラ部110の内部ソフトウェアの構成例を示す図である。
図11において、コントローラソフトウェア700は、プロトコル解釈部701、ジョブ制御部702、及びデバイス部703で構成されている。
【0064】
プロトコル解釈部701は、第1のホストコンピュータ601や、操作部150から、各インタフェースを介して送られてきたコマンド(プロトコル)を解釈し、ジョブ制御部702に対してジョブの実行を依頼する。ジョブ制御部702は、プロトコル解釈部701の依頼に基づき種々のジョブを実行する。デバイス部703は、画像入出力システム100を構成する各ユニットを制御するドライバソフトを含み、ジョブ制御部702がジョブを実行する際に使用される。
【0065】
図12は、ジョブ制御部702の詳細な構成例を示すブロック図である。
図12において、ジョブ制御部702は、ジョブ生成部800、ジョブ処理部810、ドキュメント処理部820、ページ処理部830、バンド処理部840、及びデバイス割り当て部850を有している。また、ジョブ処理部810は、ジョブ管理部811、バインダ管理部812、及びドキュメント管理部813を有している。また、デバイス部703は、第1のデバイス851、第2のデバイス852及び第3のデバイス853等複数のデバイスを有することが可能となっている。
【0066】
第1のホストコンピュータ601や第2のホストコンピュータ602、操作部150から送られてきた一連の操作依頼は、コマンド(プロトコル)という形で、各インタフェースを介して送られてくる。送られてきたコマンドは、プロトコル解釈部701で解釈された後、ジョブ制御部702に送られる。この時点でコマンドは、ジョブ制御部702が理解できる形に変換される。
【0067】
ジョブ生成部800はジョブ814を生成する。ジョブ814にはコピージョブ、プリントジョブ、スキャンジョブ及びファックスジョブ等様々なジョブが存在する。プロトコル解釈部701により解釈されたプロトコルには、例えば、プリントジョブならば印刷する文書の名前や印刷部数、出力先の排紙トレイの指定等の種々の設定情報や、印刷データ自体(PDLデータ)等が含まれる。
【0068】
ジョブ処理部810には、ジョブ814が送られ、処理が行われる。ジョブ管理部811では、ジョブを構成する複数のバインダの出力順など、ジョブ全体に関わる設定を行う。また、バインダ管理部812は、バインダを構成する複数のドキュメントの出力順など、バインダ全体に関わる設定を行う。また、ドキュメント管理部813は、ドキュメントを構成する複数のページの出力順など、ドキュメント全体に関わる設定を行う。このようにジョブ処理部810では、ジョブ814全体に関する設定や処理が行われる。
【0069】
さらに、ジョブ処理部810は、ジョブ814全体に関する設定や処理以外に、ジョブ814を構成するさらに小さな仕事の単位であるバインダ815に分割する。また、バインダ815全体に関する設定や処理以外に、バインダ815を構成するさらに小さな仕事の単位であるドキュメント816に分割し処理する。
【0070】
ドキュメント816は入力ドキュメント821と1対1に対応付けされており、入力ドキュメント821は、ドキュメント処理部820により出力ドキュメント822に変換処理される。例えば、原稿の束をスキャナで読み取り、複数のイメージデータに変換するスキャンジョブを考える。この場合には、原稿の束に関する設定や操作の手順が含まれているのが入力ドキュメント821であり、複数のイメージデータに関する設定や操作の手順が含まれているのが出力ドキュメント822である。そして、紙の束を複数のイメージデータに変換する役割を持っているのがドキュメント処理部820である。
【0071】
このようにドキュメント処理部820は、ドキュメント単位の入力ドキュメント821から出力ドキュメント822への変換処理を行う。ドキュメント全体に関する設定や処理以外には、更に小さな仕事の単位である入力ページ831に分割し、ページ処理部830に処理を依頼する。これは、ジョブ処理部810がジョブ単位の処理に専念して、更に細かい仕事のためにバインダ815、ドキュメント816を生成するのと同じである。ドキュメント単位の設定及び操作は、具体的にはページの並び替え、両面印刷の指定、表紙の付加、OHP中差し等のページ順序に関するものである。
【0072】
ページ処理部830は、ページ単位の入力ページ831から出力ページ832への変換処理を行う。例えば、上述のスキャンジョブの場合、入力ページ831には読み取りの解像度、読み取りの向き(ランドスケープ/ポートレイト)等の各種設定や、手順が含まれており、出力ページ832にはイメージデータの格納場所等の設定や手順が含まれている。
【0073】
以上、ジョブの単位を徐々に小さくして、ページの単位で扱えるようにすることを説明した。高価なシステムで1ページ分のページメモリを備えている場合は、最終的にページ単位までジョブを細分化して処理すればよい。しかし、現実にはメモリのコスト等の問題から1ページ分のページメモリを備えることができない場合には、数ライン分のメモリ(バンドメモリ)でジョブ814を処理するシステムもある。このような場合、ページを更に細かい単位であるバンドに分割して変換処理を行う。それが入力バンド841、バンド処理部840、出力バンド842であり、これらの動作に関してはページの場合と同様である。
【0074】
ジョブ処理部810、ドキュメント処理部820、ページ処理部830及びバンド処理部840は、いずれも処理を進める際に画像入出力システム100を構成する種々の物理デバイスを使用する。複数の処理部が同時に処理を進めるとデバイスの競合が発生するので、デバイス割り当て部850がデバイスを調停する。
【0075】
例えば、図12に示した第1のデバイス851〜第3のデバイス853は、デバイス割り当て部850により上述した各処理部に割り当てられる論理デバイスである。例えば、ページメモリやバンドメモリ、原稿給紙ユニット250、マーキングユニット320エンジン及びスキャナユニット210等が考えられる。
【0076】
図13は、画像記憶部160に蓄積される画像データを管理する文書管理部900の管理構造を示す図である。
図13において、文書管理部900は、フォルダ管理部901、ジョブ管理部902、バインダ管理部903、ドキュメント管理部904、及びページ管理部905で構成され、それぞれ管理情報(属性値)を持っている。
【0077】
文書管理部900は、1つまたは複数のフォルダ管理部901で構成され、フォルダ管理部901の管理情報が格納されている。フォルダ管理部901は、1つまたは複数のジョブ管理部902で構成され、ジョブ管理部902の管理情報が格納されている。ジョブ管理部902は、1つまたは複数のバインダ管理部903で構成され、バインダ管理部903の管理情報が格納されている。さらに、ジョブ管理部902は、ジョブ制御部702において処理されるジョブ814の動作に必要な情報で、ジョブ管理部811に格納されている属性値を格納/保存することができる。
【0078】
バインダ管理部903は、1つまたは複数のドキュメント管理部904で構成され、ドキュメント管理部904の管理情報が格納されている。さらに、バインダ管理部903は、ジョブ制御部702において処理されるバインダ815の動作に必要な情報で、バインダ管理部812に格納されている属性値を格納/保存することができる。
【0079】
ドキュメント管理部904は、1つまたは複数のページ管理部905で構成され、ページ管理部905の管理情報が格納されている。さらに、ドキュメント管理部904は、ジョブ制御部702において処理されるドキュメント管理部813に格納されている属性値や、ドキュメント処理部820により処理された出力ドキュメント822の属性値を格納/保存することができる。
【0080】
ページ管理部905では、画像記憶部160に保存された、スキャナで読込んだ1ページ分の画像データ、ホストコンピュータから送信されたPDLを展開した1ページ分の画像データ、FAXで受信した1ページ分の画像データなどと対応付けられている。さらに、ページ管理部905は、ジョブ制御部702のページ処理部830により処理された出力ページ832の属性値を格納/保存することができる。つまり、文書管理部900に保存された情報と、画像記憶部160に保存された画像データとから画像蓄積時に投入されたジョブ814を再現することが可能である。また、保存されている情報を再設定することで投入時のジョブと異なる動作をさせることも可能である。
【0081】
図14は、コントローラ部110で実行されるジョブ814の1つであるコピージョブの構成例を示す図である。
第1のホストコンピュータ601や、第2のホストコンピュータ602、操作部150から送られてくる一連の操作依頼は、コマンド(プロトコル)という形で各インタフェースを介して送られてくる。送られてきたコマンドは、プロトコル解釈部701で解釈され、ジョブ制御部702に送られる。この時点でコマンドはジョブ制御部が理解出来る形に変換されることになる。
【0082】
ジョブ生成部800は、送られてきたコマンドを解釈し、コピージョブ1001を生成し制御を依頼する。コピージョブ1001はコピー動作を実現するための機能を有しており、スキャンジョブ1002、イメージエージェントジョブ1003、及び、プリントジョブ1006を生成する。そして、これらの動作を制御することでコピー処理を実現する。
【0083】
イメージエージェントジョブ1003は、より細かいイメージエージェントバインダ1004に処理を依頼し、イメージエージェントバインダ1004は、より細かいイメージエージェントドキュメント1005に処理を依頼する。このように、自身を構成する細かい単位に処理を依頼しそれぞれの動作を制御する。
【0084】
イメージエージェントドキュメント1005は、ドキュメント処理部(紙→イメージ)1010の出力ドキュメントであるイメージドキュメント1011の生成を行う。このイメージドキュメント1011は、イメージエージェントドキュメント1005、イメージエージェントバインダ1004、イメージエージェントジョブ1003、コピージョブ1001を経由する。そして、スキャンジョブ1002、プリントジョブ1006に伝達される。
【0085】
スキャンジョブ1002は、ドキュメント処理部(紙→イメージ)1010の入力ドキュメントであるスキャン紙ドキュメント1009の生成を行った後に、ドキュメント処理部(紙→イメージ)1010を生成する。この時、ドキュメント処理部(紙→イメージ)1010に、入力ドキュメントのスキャン紙ドキュメント1009、出力ドキュメントのイメージドキュメント1011が伝えられる。
【0086】
さらに、スキャンジョブ1002は、ドキュメント処理部(紙→イメージ)1010に処理を依頼し動作の制御を行う。なお、スキャンジョブ1002では、ジョブ処理部810で、スキャンジョブ1002全体に関する設定や処理、およびバインダに関する設定や処理が行われる。スキャンジョブ1002では、スキャナユニット210、原稿給紙ユニット250の物理的構造から、1回のスキャン動作は、1ジョブ、1バインダ、1ドキュメントの構成で制御可能である。このためため、本実施形態では、バインダ815、ドキュメント816を省略している。
【0087】
スキャン紙ドキュメント1009は、原稿に関する情報が属性として管理されており、また、イメージドキュメント1011は、読込み結果である画像データに関する情報が属性として管理される。これらの属性をもとに、ドキュメント処理部(紙→イメージ)1010は、入力ドキュメントであるスキャン紙ドキュメント1009から出力ドキュメントであるイメージドキュメント1011への変換を制御する。なお、ドキュメント処理部(紙→イメージ)1010は、ドキュメント単位の処理のみを行い、さらに細かい仕事は、小さな仕事の単位であるスキャン紙ページ1017、ページ処理部(紙→イメージ)1018、イメージページ1019で行われる。
【0088】
スキャン紙ドキュメント1009は、原稿の枚数に対応したスキャン紙1014を順次生成する。スキャン紙1014は生成されると、原稿の処理順を制御するスキャナ紙管理部1016に識別子を付加して登録した後、スキャン紙ページ1017の生成を行う。スキャン紙ページ1017は原稿の表ページ/裏ページに対応しており、両面原稿の時は1つのスキャン紙1014に対して2つのスキャン紙ページ1017が生成される。
【0089】
スキャナ紙管理部1016は、スキャン紙1014に付加された識別子やデバイスの仕様(原稿読み取り順など)によりスキャン紙ページ1017の処理順序の決定を行う。スキャン紙ページ1017には原稿の各ページに関する情報が管理されており、イメージドキュメント1011により生成されるイメージページ1019には各ページの読込画像データに関する情報が管理される。
【0090】
ページ処理部(紙→イメージ)1018は、入力ページであるスキャン紙ページ1017から出力ページであるイメージページ1019への変換を制御する。また、ページ処理部(紙→イメージ)1018は、実際のスキャナデバイスを制御するためのシーケンスを把握しており、スキャナデバイス制御部1023に用意されたエンジン制御コマンドを発行することで原稿読み取り動作(スキャン動作)の制御を行う。
【0091】
また、スキャン紙ページ1017、イメージページ1019に管理されている属性を画像処理部1025aに設定し制御することで、原稿を画像データとして画像記憶部160に蓄積させる。蓄積された画像データは、文書管理部900にて管理されており、文書管理部900を介して、読み出し、複製、移動、削除、等の操作をすることが可能である。また、画像処理部1025a、1025bには、解像度変換、符号変換などの制御を含んでいる。
【0092】
一方、プリントジョブ1006は、ジョブ全体に関わる設定や処理以外は、さらに小さな仕事の単位であるプリントバインダ1007分割する。そして、バインダ全体に関わる設定や処理以外に、さらに小さな仕事の単位であるプリントドキュメント1008に分割し、プリント処理全体に関する設定や処理の制御を行う。
【0093】
プリントドキュメント1008は、ドキュメント処理部(イメージ→紙)1012の出力ドキュメントであるプリント紙ドキュメント1013の生成を行った後に、ドキュメント処理部(イメージ→紙)1012を生成する。この時、ドキュメント処理部(イメージ→紙)1012に、入力ドキュメントのイメージドキュメント1011、出力ドキュメントのプリント紙ドキュメント1013が伝えられる。
【0094】
さらに、プリントドキュメント1008は、ドキュメント処理部(イメージ→紙)1012に処理を依頼し動作の制御を行う。プリント紙ドキュメント1013には、印刷出力に関する情報が属性として管理されており、イメージドキュメント1011には、画像データに関する情報が属性として管理されている。これらの属性をもとに、ドキュメント処理部(イメージ→紙)1012は、入力ドキュメントであるイメージドキュメント1011から出力ドキュメントであるプリント紙ドキュメント1013への変換を制御する。
【0095】
なお、ドキュメント処理部(イメージ→紙)1012は、ドキュメント単位の処理のみを行い、さらに細かい処理は、小さな処理の単位であるイメージページ1019、ページ処理部(イメージ→紙)1020、プリント紙ページ1021で行われる。
【0096】
プリント紙ドキュメント1013は、印刷出力する枚数分のプリント紙1015を順次生成する。プリント紙1015が生成されると、印字の処理順を制御するプリンタ紙管理部1022に識別子を付加して登録した後、プリント紙ページ1021の生成を行う。プリント紙ページ1021は出力用紙の表ページ/裏ページに対応しており、両面印刷の時は1つのプリント紙1015に対して2つのプリント紙ページ1021生成される。
【0097】
プリンタ紙管理部1022は、プリント紙1015に付加された識別子やデバイスの仕様(内部循環枚数や両面出力時の紙制御順など)によりプリント紙ページ1021の処理順序の決定を行う。プリント紙ページ1021には印字する各ページに関する情報が管理されており、イメージページ1019には各ページの画像データに関する情報が管理されている。
【0098】
ページ処理部(イメージ→紙)1020は、入力ページであるイメージページ1019から出力ページであるプリント紙ページ1021への変換を制御する。また、ページ処理部(イメージ→紙)1020は、実際のプリンタデバイスを制御するためのシーケンスを把握しており、プリンタデバイス制御部1024に用意されたエンジン制御コマンドを発行することで印刷動作(プリント動作)の制御を行う。また、イメージページ1019、プリント紙ページ1021に管理されている属性を画像処理部1025bに設定し制御することで、画像記憶部160に蓄積された画像データを印刷用紙に印字する。
【0099】
このような一連の動作によりより小さな処理の単位である処理部に制御を任せて行くことで、コピー動作を実現することが可能となる。
【0100】
図15は、コピージョブ実行時に行われる文書管理部900への属性格納の例を示す図である。
図13に示した通り、文書管理部900は、フォルダ管理部901、ジョブ管理部902、バインダ管理部903、ドキュメント管理部904、ページ管理部905で構成され、それぞれが管理情報(属性値)を持っている。
【0101】
ジョブ制御部702において処理されるジョブ814の動作に必要な情報で、ジョブ管理部811に格納されている属性値は、イメージエージェントジョブ1003により文書管理部900のジョブ管理部902に格納/保存される。また、ジョブ制御部702において処理されるバインダ815の動作に必要な情報で、バインダ管理部812に格納されている属性値は、イメージエージェントバインダ1004により文書管理部900のバインダ管理部903に格納/保存される。
【0102】
さらに、ジョブ制御部702において処理されるドキュメント管理部813に格納されている属性値や、ドキュメント処理部820により処理された出力ドキュメント822の属性値は、文書管理部900のドキュメント管理部904に格納/保存される。ジョブ制御部702のページ処理部830により処理された出力ページ832の属性値は、出力ページに該当するイメージページ1019により文書管理部900のページ管理部905に格納/保存される。
【0103】
次に本実施形態における特徴的な部分の詳細について述べる。
図16は、本実施形態におけるマルチプロセッサシステムの概念図である。
図16において、2101〜2103はデータ処理を行うための演算及び制御を行う中央処理装置(以下CPUとする)である。2104はCPU2101〜2103の動作に必要なデータを格納する共有メモリ2107を制御するメモリコントローラである。2105はマルチプロセッサシステム2100内のCPU2101〜2103の割込みを制御したり、外部デバイスからの割込みを制御したりする割込みコントローラである。
【0104】
2106はマルチプロセッサシステム2100内および内部外部のバス2112の通信を制御するバスコントローラである。2108はマルチプロセッサシステム2100に接続されている外部デバイス2109〜2111からの割込みを制御し、バスコントローラ2106を経由し、割込みコントローラ2105に通知する、外部割込みコントローラである。
【0105】
以上、本実施形態の前提事項について概略的に述べたが、以下で具体的な実施方法について図面を用いて説明する。なお、本実施形態では、どのプロセッサもアクセスできる共有メモリの他に、各プロセッサは固有の内部メモリを持つとしたが、そのような構成でない場合でも同様に実施することは可能である。
【0106】
<機能ごとに分割した圧縮bootableの説明>
図17は、ROM上に配置された、機能ごとに分割した圧縮bootableの模式図である。
図17では、Section1のbootable5001からSection7のbootable5007までの機能に分割されて配置してある。
例えば、bootable5001には、UI機能のbootableモジュールを圧縮したデータとその解凍プログラムとを配置してある。
【0107】
さらに、各bootableのモジュールデータに合わせて圧縮方法を変えることで、圧縮率は低いが解凍時間が短いbootableモジュールや、圧縮率は高いが解凍に時間がかかるbootableモジュールを作ることができる。こうすることで、bootableモジュールの解凍時間を、起動する機能モジュールの順番に合わせることができる。このようにした場合、解凍プログラムも各bootableモジュールデータに合わせて異なったものを使用する。
【0108】
<圧縮bootableを解凍・実行するまでの流れの説明>
図18は、圧縮bootableを解凍・実行するまでの流れを示す図である。
まず、機能単位でbootableを分割・圧縮し、機能単位のモジュールにする。そして、図17に示したように、解凍プログラムとbootableデータとが組み合わさったデータをROM上に配置しておく。さらに、プロセッサがまず初めに読み込む制御プログラム6005と初期化などを行うbootableの初期のプログラム6006とを配置する。bootable初期のプログラムの最後には、そこでプログラムの実行を一旦止めるwait命令6007を入れておく。
【0109】
次に、プロセッサの動きを説明する。まず、メインプロセッサ6001は、制御プログラムを実行する(6008)。そして、制御プログラムの中で、メインプロセッサ6001は、サブプロセッサ6002〜6004にキックをかけ、サブプロセッサ6002〜6004を起動する(6009)。続いて、メインプロセッサ6001は、static変数の初期化等の初期のbootableを実行する(6010)。
【0110】
メインプロセッサ6001の処理(6010)と平行して、サブプロセッサ6002〜6004は解凍プログラムと圧縮bootableを各サブプロセッサ内のメモリに転送し解凍処理を行う(6011)。次に、サブプロセッサ6002〜6004は、解凍したbootableモジュールを共有メモリへ転送する(6012)。そして、サブプロセッサ6002〜6004は、解凍したbootableモジュールの転送が終了したところでメインプロセッサ6001にwait解除の割り込みをかける(6013)。
【0111】
wait解除の割り込みを受けたメインプロセッサ6001は、まだROM上に解凍されていない圧縮bootableのSectionがある場合、早く解凍が終わったサブプロセッサに対して再度キックをかける(6014)。メインプロセッサ6001は、全bootableモジュールが揃うのを待たずに順次続きのbootableを実行する(6015)。各bootableモジュールの最後にwait命令(6015)を入れておくと、次のモジュールの解凍がまだ終わっていない場合に実行中のメインプロセッサは止まることができる。
【0112】
<解凍処理を行う順番を記したテーブルの説明>
図18でメインプロセッサ6001がサブプロセッサ6002〜6004を起動する(6009)際に、解凍処理を行う順番を記したbootableのSectionテーブルを参照する。図19は、解凍処理を行う順番を記したbootableのSectionテーブルの一例を示す図である。このテーブルを参照して行うと、早く起動したい機能モジュールから順番に起動していくことができるようになる。
【0113】
展開先のアドレス7002は、圧縮bootableモジュールが配置されているROM上のアドレスである。各機能7003の特性に合わせて起動の順番7004を設定することができるようになる。さらに、メインプロセッサ6001がbootableのSectionテーブルを参照する前に、このテーブルをダイナミックに変更することで、柔軟に起動の順番を変更することができる。
【0114】
図20は、機器の状態に合わせてbootableのSectionテーブルを変更する処理手順の一例を示すフローチャートである。図20では、FAXボードを例にして説明する。
図20では、まず、ステップS7101において、画像形成装置に付属モジュール(FAXボード)が装着されているかどうかを確認する。この確認の結果、装着されていない場合は処理を終了する。一方、ステップS7101の確認の結果、装着されている場合は、ステップS7102に進み、カセットのリフトアップに時間がかからないかどうかを確認する。
【0115】
ここで、FAXボードが装着されていてかつカセットのリフトアップの準備もできている場合は、すぐにFAX受信を行なうことができる。よって、この場合はステップS7103に進み、FAX機能のbootableモジュールを早く起動することが求められるため、FAXモジュールの優先順位を上げるようにダイナミックにbootableのSectionテーブルを書き換える。
【0116】
以上のように、複数のSPEが同時並行的に解凍処理できるので、解凍時間を大幅に短縮でき、bootableの起動までの時間を早めることができる。さらに、サブプロセッサが解凍処理をしている間に、メインプロセッサに起動初期のbootableを実行させることで、起動時間をさらに短縮することができる。
【0117】
(本発明に係る他の実施形態)
前述した本発明の実施形態におけるマルチプロセッサシステムを構成する各手段、並びに画像形成方法の各工程は、コンピュータのRAMやROMなどに記憶されたプログラムが動作することによって実現できる。このプログラム及び前記プログラムを記録(記憶)したコンピュータ読み取り可能な記録媒体(記憶媒体)は本発明に含まれる。
【0118】
また、本発明は、例えば、システム、装置、方法、プログラムもしくは記録媒体(記憶媒体)等としての実施形態も可能であり、具体的には、複数の機器から構成されるシステムに適用してもよいし、また、一つの機器からなる装置に適用してもよい。
【0119】
なお、本発明は、前述した実施形態の機能を実現するソフトウェアのプログラム(実施形態では図8〜図10、図19に示すフローチャートに対応したプログラム)を、システムまたは装置に直接、または遠隔から供給する場合も含む。そして、そのシステムまたは装置のコンピュータが前記供給されたプログラムコードを読み出して実行することによっても達成される場合を含む。
【0120】
したがって、本発明の機能処理をコンピュータで実現するために、前記コンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明は、本発明の機能処理を実現するためのコンピュータプログラム自体も含まれる。
【0121】
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、OSに供給するスクリプトデータ等の形態であってもよい。
【0122】
プログラムを供給するための記録媒体(記憶媒体)としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスクなどがある。さらに、MO、CD−ROM、CD−R、CD−RW、磁気テープ、不揮発性のメモリカード、ROM、DVD(DVD−ROM、DVD−R)などもある。
【0123】
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続する方法がある。そして、前記ホームページから本発明のコンピュータプログラムそのもの、もしくは圧縮され自動インストール機能を含むファイルをハードディスク等の記録媒体(記憶媒体)にダウンロードすることによっても供給できる。
【0124】
また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるWWWサーバも、本発明に含まれるものである。
【0125】
また、その他の方法として、本発明のプログラムを暗号化してCD−ROM等の記録媒体(記憶媒体)に格納してユーザに配布し、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせる。そして、その鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。
【0126】
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される。さらに、そのプログラムの指示に基づき、コンピュータ上で稼動しているOSなどが、実際の処理の一部または全部を行い、その処理によっても前述した実施形態の機能が実現され得る。
【0127】
さらに、その他の方法として、まず記録媒体(記憶媒体)から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれる。そして、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によっても前述した実施形態の機能が実現される。
【符号の説明】
【0128】
6001 メインプロセッサ、6002、6003、6004 サブプロセッサ
【特許請求の範囲】
【請求項1】
複数の中央処理装置と、前記複数の中央処理装置が処理データを格納する共有メモリとを備えるマルチプロセッサシステムであって、
前記複数の中央処理装置は、
起動に必要な圧縮されたデータと、前記圧縮されたデータを解凍するための解凍プログラムとを複数に分割して前記共有メモリに配置し、それぞれ非同期に各データを読み出す読み出し手段と、
前記読み出し手段によって読み出されたデータに対して非同期に解凍処理を実行する解凍実行手段と、
前記解凍実行手段により解凍処理が行われたデータを非同期に前記共有メモリに転送する転送手段とを有することを特徴とするマルチプロセッサシステム。
【請求項2】
前記複数の中央処理装置は、前記読み出し手段、前記解凍実行手段、及び前記転送手段を行うサブプロセッサと、前記サブプロセッサを管理するメインプロセッサとを備えることを特徴とする請求項1に記載のマルチプロセッサシステム。
【請求項3】
前記メインプロセッサは、圧縮データの解凍を待たずに、解凍が終了したデータから処理を行うことを特徴とする請求項2に記載のマルチプロセッサシステム。
【請求項4】
前記複数の中央処理装置は、解凍処理を行う順番を記したテーブルを備え、前記テーブルに従って前記読み出し手段、前記解凍実行手段、及び前記転送手段の処理を行うことを特徴とする請求項1に記載のマルチプロセッサシステム。
【請求項1】
複数の中央処理装置と、前記複数の中央処理装置が処理データを格納する共有メモリとを備えるマルチプロセッサシステムであって、
前記複数の中央処理装置は、
起動に必要な圧縮されたデータと、前記圧縮されたデータを解凍するための解凍プログラムとを複数に分割して前記共有メモリに配置し、それぞれ非同期に各データを読み出す読み出し手段と、
前記読み出し手段によって読み出されたデータに対して非同期に解凍処理を実行する解凍実行手段と、
前記解凍実行手段により解凍処理が行われたデータを非同期に前記共有メモリに転送する転送手段とを有することを特徴とするマルチプロセッサシステム。
【請求項2】
前記複数の中央処理装置は、前記読み出し手段、前記解凍実行手段、及び前記転送手段を行うサブプロセッサと、前記サブプロセッサを管理するメインプロセッサとを備えることを特徴とする請求項1に記載のマルチプロセッサシステム。
【請求項3】
前記メインプロセッサは、圧縮データの解凍を待たずに、解凍が終了したデータから処理を行うことを特徴とする請求項2に記載のマルチプロセッサシステム。
【請求項4】
前記複数の中央処理装置は、解凍処理を行う順番を記したテーブルを備え、前記テーブルに従って前記読み出し手段、前記解凍実行手段、及び前記転送手段の処理を行うことを特徴とする請求項1に記載のマルチプロセッサシステム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【公開番号】特開2010−237821(P2010−237821A)
【公開日】平成22年10月21日(2010.10.21)
【国際特許分類】
【出願番号】特願2009−83021(P2009−83021)
【出願日】平成21年3月30日(2009.3.30)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】
【公開日】平成22年10月21日(2010.10.21)
【国際特許分類】
【出願日】平成21年3月30日(2009.3.30)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】
[ Back to top ]