JP2008140191A - ファイルシステム - Google Patents
ファイルシステム Download PDFInfo
- Publication number
- JP2008140191A JP2008140191A JP2006326257A JP2006326257A JP2008140191A JP 2008140191 A JP2008140191 A JP 2008140191A JP 2006326257 A JP2006326257 A JP 2006326257A JP 2006326257 A JP2006326257 A JP 2006326257A JP 2008140191 A JP2008140191 A JP 2008140191A
- Authority
- JP
- Japan
- Prior art keywords
- cpu
- unit
- image
- firmware
- image data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Abstract
【課題】画像形成装置を含むファイルシステムにおいて、デバイスの排他が簡単に行え、また両OSで共通に使用する関数部の重複を省く。
【解決手段】同一のアーキテクチャである複数のCPUを有し、前記複数のCPUがアクセス可能である主記憶装置を搭載した画像形成装置を含むファイルシステムであって、前記CPU上で動作する前記画像形成装置のファームウェア6206は、それぞれ別々にリンクされた独立したオブジェクトであり、前記CPUのうち、特定のCPU上のファームウェア内の関数のエントリーポインタを記述したテーブル6207を前記複数のCPUそれぞれのOS上で管理するようにした。
【選択図】 図17
【解決手段】同一のアーキテクチャである複数のCPUを有し、前記複数のCPUがアクセス可能である主記憶装置を搭載した画像形成装置を含むファイルシステムであって、前記CPU上で動作する前記画像形成装置のファームウェア6206は、それぞれ別々にリンクされた独立したオブジェクトであり、前記CPUのうち、特定のCPU上のファームウェア内の関数のエントリーポインタを記述したテーブル6207を前記複数のCPUそれぞれのOS上で管理するようにした。
【選択図】 図17
Description
本発明は、画像形成装置のファイルシステムに関する。
従来、マルチCPUシステム上のデバイスドライバは、そのデバイスを使用するCPU上のすべてに搭載することが一般的であった。
一つのデバイスに対して、複数のデバイスドライバが存在することは、メモリの無駄使いであり、第一に一つのデバイスを複数のCPUから制御するために排他を取ることが困難である。
シンメトリカルなマルチCPU対応のOSを使用しない場合、通常、それぞれのOS下に、標準的な関数、あるいはデバイスドライバを配置する必要がある。デバイスドライバの制御の排他、省メモリの観点からこれらは大きな問題である。
本発明のファイルシステムは、同一のアーキテクチャである複数のCPUを有し、前記複数のCPUがアクセス可能である主記憶装置を搭載した画像形成装置を含むファイルシステムであって、前記CPU上で動作する前記画像形成装置のファームウェアは、それぞれ別々にリンクされた独立したオブジェクトであり、前記CPUのうち、特定のCPU上のファームウェア内の関数のエントリーポインタを記述したテーブルを前記複数のCPUそれぞれのOS上で管理することを特徴とする。
本発明によれば、マルチCPUのOSに対し、デバイスドライバの制御用プログラムや、標準関数のオブジェクトを、どちらかのOSのローカルオブジェクトあるいは、両OSと切り離した別リンクのオブジェクトとして持つようにした。前者の場合は、オブジェクトを持たない方のOS側に、後者の場合は、両OSに、標準関数やデバイスドライバの制御用プログラムのエントリーアドレスおよび、インタフェースをメンバーにもつ関数テーブルを用意する。この場合、関数テーブルはどこかに実態を取り、両OSにはテーブルの先頭アドレスだけを保持するようにする。そして、このテーブルを参照し、標準入出力やデバドラ制御を行う。これにより、デバイスの排他が簡単に行え、また両OSで共通に使用する関数部の重複を省くことが可能である。
以下、本発明の実施の形態を図面を参照して説明する。図1は本発明に係る電子部品としてのコントローラ部が搭載された画像入出力装置(データ処理装置)の実施の形態を示すブロック構成図である。
本実施形態では、該画像入出力装置100は、イーサネット(登録商標)等のLAN(Local Area Network)600にてホストコンピュータ(本実施の形態では第一のホストコンピュータ601、第二のホストコンピュータ602)に接続されている。
画像入出力システム100は、画像データの読取処理を行うリーダ装置(リーダー部)200と、画像データの出力処理を行うプリンタ装置(プリンタ部)300とを有する。
また、画像データの入出力操作を行うキーボード、及び画像データや各種機能の表示/設定などを行う液晶パネルを備えた操作部150を有する。
また、リーダ装置200を制御して読み込んだ画像データや、LAN600を介してホストコンピュータ601、602より受信したコードデータから生成される画像データを格納/保存できる画像記憶部160を有する。
本実施形態は、これら各構成要素に接続されて該構成要素を制御する単一の電子部品からなる制御装置(コントローラ部)110で構成されている。
リーダ装置200は、原稿用紙を搬送する原稿給紙ユニット250と、原稿画像を光学的に読み取って電気信号としての画像データに変換するスキャナユニット210とを有する。
プリンタ装置300は、給紙ユニット310と、マーキングユニット(部)320と、排紙ユニット(部)330とを有する。給紙ユニット310は記録用紙を収容する複数段の給紙カセットを備えて構成される。また、マーキングユニット320は画像データを記録用紙に転写/定着する。排紙ユニット330は印字された記録用紙にソート処理やステイプル処理を施し、外部に排出する。
制御装置110は、リーダ部200を制御して、原稿の画像データを読込み、プリンタ部300を制御して画像データを記録用紙に出力してコピー機能を提供する。
また、リーダ部200から読取った画像データを、コードデータに変換し、ネットワーク600を介してホストコンピュータ601、602へ送信するスキャナ機能を有する。
また、ホストコンピュータからネットワーク600を介して受信したコードデータを画像データに変換し、プリンタ部300に出力するプリンタ機能、その他の機能ブロックを有している。
図2はリーダ部200及びプリンタ部300の詳細を示す断面図である。リーダ部200では、原稿給送ユニット250に積層された原稿用紙がその積層順に従って、先頭から順次1枚ずつプラテンガラス211上へ給送される。
スキャナユニット210で所定の読み取り動作が終了した後、読み取られた原稿用紙は、プラテンガラス211上の原稿を排出トレイ219に排出される。
また、原稿用紙がプラテンガラス211上に搬送されると、ランプ212を点灯し、次いで光学ユニット213の移動を開始させ、原稿用紙を下方から照射し走査する。
そして、原稿用紙からの反射光は、複数のミラー214、215、216、及び、レンズ217を介してCCDイメージセンサ(以下「CCD」と記す)218へ導かれ、走査された原稿画像はCCD218によって読み取られる。
CCD218で読み取られた画像データは、所定の処理が施された後、コントローラユニット110に転送される。
原稿給送ユニット250が原稿流し読み機能を有している場合、原稿給送部250に積層された原稿用紙は、原稿流し読み位置240を一定の速度で通過する。
この場合、光学ユニット213は原稿流し読み位置240に移動し、等速で搬送される原稿をランプ212によって照射し、CCD218によって随時読み取ることで画像データを生成し、コントローラユニット110に転送される。
次いで、プリンタ部300では、コントローラ部110から出力された画像データに対応するレーザ光がレーザドライバ321により駆動されるレーザ発行部322から発行され、感光ドラム323にはレーザ光に応じた静電潜像が形成される。現像器324により前記静電潜像の部分に現像剤が付着される。
一方、レーザ光の照射開始と同期したタイミングで、カセット311、カセット312、カセット313、カセット314、手差し給紙段315のいずれかから記録用紙が給紙されて転写部325に搬送路331により搬送される。
感光ドラム323に付着している現像剤を記録用紙に転写する。画像データが転写された記録用紙は搬送ベルト326によって、定着部327に搬送され、定着部327における加熱・加圧処理により画像データが記録紙に定着される。
定着部327を通過した記録紙は搬送路335、搬送路334を通り、排紙ビン328に排出される。印字面を反転して排紙ビン328に排出する場合には、搬送路336、搬送路338まで導かれ、そこから記録紙を逆方向に搬送し、搬送路337、搬送路334を通り、排紙ビン328に排出される。図に記していないが、排紙ビンの変わりに、排紙ユニットを装着することが可能で、排紙ユニットは排出された記録用紙を束ねて記録用紙の仕分け、仕分けされた記録用紙のステイプル処理などを行うことができる。
また、画像データを記録用紙に両面記録する場合は、定着部327を通過したあと、記録紙は、搬送路336からフラッパ329によって搬送路333に導かれる。
その後、記録紙を逆方向に搬送し、フラッパ329によって搬送路338、再給紙搬送路332へ導かれる。
再給紙搬送路332へ導かれた記録紙は上述と同様にして搬送路331を通り、転写部325へ給紙される。
図3は制御装置(コントローラ部)110の詳細を示すブロック図である。すなわち、メインコントローラ111は、CPU112と、バスコントローラ113と、後述する各種コントローラ回路を含む機能ブロックを内蔵する。
また、ROM I/F115を介してROM114と接続され、DRAM I/F117を介してDRAM116と接続され、コーデックI/F118を介してコーデック119と接続される。
また、ネットワークI/F123を介してネットワークコントローラ121と接続され、コネクタ122によりLAN600との間で所定の制御動作を行う。ネットワークとしては一般的にイーサネット(登録商標)があげられる。
ROM114は、メインコントローラ111のCPU112で実行される各種制御プログラムや演算データが確認されている。DRAM116は、CPU112が動作するための作業領域や画像データを蓄積するための領域として使用される。
コーデック119はDRAM116に蓄積されたラスターイメージデータをMH/MR/MMR/JBIGなどの周知の圧縮方式で圧縮し、また圧縮されたデータをラスターイメージに伸長する。
また、コーデック119にはSRAM120が接続されており、該SRAM120は前記コーデック119の一時的な作業領域として使用される。
また、前記メインコントローラ111はスキャナバス141を介してスキャナI/F140に接続され、プリンタバス146を介してプリンタI/F145に接続される。さらにPCIバス等の汎用高速バス125を介して拡張ボードを接続するための拡張コネクタ124及び入出力制御部(I/O制御部)126に接続されている。
I/O制御部126はリーダ部200やプリンタ部300との間で制御コマンドを送受信するための調歩同期式のシリアル通信コントローラ127が2チャンネル装備されている。該シリアル通信コントローラ127はI/Oバス128を介してスキャナI/F140及びプリンタI/F145に接続されている。
スキャナI/F140は、第一の調歩同期シリアルI/F143及び第一のビデオI/F144を介してスキャナコネクタ142に接続され、さらに該スキャナコネクタ142はリーダ部200のスキャナユニット210に接続されている。
そして、スキャナI/F140はスキャナユニット210から受信した画像データに対し所望の2値化処理や、主走査方向及び/又は副走査方向の変倍処理を行い、またスキャナユニット210から送られてきたビデオ信号に基づいて制御信号を生成する。そして、スキャナバス141を介してメインコントローラ111に画像データを転送する。
また、プリンタI/F145は、第2の調歩同期シリアルI/F148及び第2のビデオI/F149を介してプリンタコネクタ147に接続され、さらに該プリンタコネクタ147はプリンタ部300のマーキングユニット320に接続されている。
そして、プリンタI/F145はメインコントローラ111から出力された画像データにスムージング処理を施して該画像データをマーキングユニット320に出力する。さらにマーキングユニット320から送られたビデオ信号に基づいて、生成された制御信号をプリンタバス146に出力する。
そして、CPU112は、ROM114からROMI/F115を介して読み込まれた制御プログラムに基づいて動作する。例えば、第1及び第2のホストコンピュータ601、602から受信したPDL(ページ記述言語)データを解釈し、ラスターイメージデータに展開処理を行う。
また、バスコントローラ113は、スキャナI/F140プリンタI/F145、その他拡張コネクタ124等に接続された外部機器から入出力されるデータ転送を制御するものである。
これらはバス競合時のアービトレーション(調停)やDMAデータ転送の制御を行う。即ち、DRAM116とコーデック119との間のデータ転送や、スキャナユニット210からDRAM116へのデータ転送、DRAM116からマーキングユニット320へのデータ転送等は、バスコントローラ113によって制御され、DMA転送される。
また、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によりバックアップされている。
図4はメインコントローラ111の内部詳細を示すブロック構成図である。プロセッサコア401は、64ビットのプロセッサバス(SCバス)を介して、システム・バス・ブリッジ(以下、SBB)402に接続される。
SBB402は4×4の64ビットクロスバスイッチであり、プロセッサコア401の他に、キャッシュメモリを備えたSDRAMやROMを制御するメモリコントローラ403と専用のローカルバス(MCバス)で接続されている。
さらに、グラフィックバスであるGバス404、IOバスであるBバス405と接続され、全部で4つのバスに接続される。
SBB402は、これら4モジュール間を、可能な限り同時平行接続を確保することができるように設計されている。また、データの圧縮伸張ユニット(CODEC)418とも、CODEC I/Fを介して接続されている。
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にも接続されている。
Bバスアービタ407はBバス405を協調制御するアービトレーションである。Bバス405のバス使用要求を受け付け、調停の後、使用許可が選択された一つのマスタに与えられ、これにより同時に2つ以上のマスタがバスアクセスを行うのを禁止している。
尚、アービトレーション方式は3段階の優先権を有し、それぞれの優先権に複数のマスタが割り当てられる。インタラプトコントローラ410は、上述した各機能ブロック及びコントローラユニット110の外部からインタラプトを集積する。
CPU401がサポートするコントローラ類408、411〜416及びノンマスカブルインタラプト(NMI)に再配分する。
電力管理ユニット409は機能ブロック毎に電力を管理し、さらに1チップで構成されている電子部品としてコントローラユニット110の消費電力量の監視を行う。
即ち、コントローラユニット110は、CPU401を内蔵した大規模なASIC(特定用途向けIC)で構成されており、このため全ての機能ブロックが同時に動作すると大量の熱を発生して、コントローラ部110自体が破壊されてしまう虞がある。
そこで、このような事態を防止するために各に機能ブロック毎に消費電力を管理し、各機能ブロックの消費電力量はパワーマネージメントレベルとして電力管理ユニット409に集積される。
そして、該電力管理ユニット409では各機能ブロックの消費電力量を合計し、該消費電力量が限界消費電力を超えないように各機能ブロックの消費電力量を一括して監視する。
Gバスアービタ406は中央アービトレーション方式によりGバス404を協調制御しており、各バスマスタに対して専用の要求信号と許可信号とを有する。
尚、バスマスタへの優先権の付与方式として、全てのバスマスタを同じ優先権として、公平にバス権を付与する公平アービトレーションモードといずれか一つのバスマスタに対して優先的にバスを使用させる優先アービトレーションモードの何れかを指定できる。
図5は、操作部150の例を示す図である。500は、ユーザインタフェースであり、種々のコピーモード(例えば、両面設定、グループ、ソート、ステイプル出力等)を設定することが可能である。
なお、これらのコピーモード設定手段は、ハードキーであっても、タッチパネルに表示されるソフトキーであっても良い。
501は、スタートボタンで、このボタンが押されたことを契機にコピー処理が開始される。
図6は、スタートボタン501押下によりコピー処理が開始された後に、コピーモードとして、原稿の読取り蓄積を繰り返し行う「連続読込モード」が選択されたときにユーザインタフェース500に表示される原稿読込設定画面502の例である。
原稿読込設定画面502には、それまで読み込んだ画像を表示されるモードに入るための「確認」ボタン503と、それまで読み込んだ画像を一括出力するための「読込終了」ボタン504が備えられている。
図7は、原稿読込設定画面502で「確認」ボタン503が押下されたときに表示される読込画像確認画面で、505の領域にはそれまでに蓄積された画像の総ページ数および表示中のページ番号が表示される。
506および507は、蓄積された画像のページを移動させる「ページ移動」ボタンで、506を押下すると前ページに、507を押下すると次ページに移動する。
508および509は、確認用画像の拡大/縮小表示を行うための「拡大/縮小」ボタンで、508を押下すると確認用画像は縮小表示され、509を押下すると確認用画像は拡大表示される。
510は、蓄積画像確認画面で、505に表示されているページの内容が表示される。511は「再読込」ボタンで、「再読込」ボタン511が押下されるとそのときに表示されていたページを記憶し、画像確認画面をクローズする。
画像確認画面がクローズされると502の原稿読込設定画面に戻り原稿読込が可能になる。このとき、原稿読込は再読込モードで実行される。512は「閉じる」ボタンで、「閉じる」ボタン512が押下されると画像確認画面はクローズされる。
原稿確認画面がクローズされると502の原稿読込設定画面に戻り原稿読込が可能になる。このとき、原稿読込は連続読込モードで実行される。
なお、上述の連続読込モードとは、読込んだ画像データが蓄積記憶された最後尾(最終画像)から再度画像データの蓄積記憶を行い、処理中に蓄積記憶された全画像データを1組の画像データとして扱うことを意味する。
再読込モードとは、蓄積記憶された特定の画像データを、新たに読み込んだ画像データに置き換えることを意味する。また、何れの場合も原稿読込み指示はスタートボタン501押下により行われる。
図8は、本発明における連続読込コピー処理のフローチャートである。ステップS1001では、スタートボタン501が押下されたことによるスタート指示がされたか否かを判別する。
スタートボタン501が押下されていない場合はスタートボタン501が押下されるまでその判別を繰り返す。スタートボタン501が押下された場合はS1002に進み、「連続読込モード」が選択されたかの確認を行う。
ステップS1002にて「連続読込モード」が設定されていない場合、ステップS1012に進み、通常のコピー処理を行い処理を終了する。
「読込画像確認モード」が設定された場合、ステップS1003に進み、自動紙送り装置(DF)にセットされた原稿束の読込み、または、圧板上に置かれた原稿の読込みを行う原稿読込処理を実行する。処理が終了すると操作部150による指示が可能になる。
ステップS1004では、画像記憶部160に蓄積された画像確認処理(プレビュー処理)の指示がされたか否かを判別する。
画像確認処理実行が指示された場合、ステップS1005に進み画像確認処理(プレビュー処理)を行い、その後ステップS1006に進む。画像確認処理実行の指示が無い場合はステップS1006に進む。
ステップS1006では、「再読込」が指示されたか否かを判別する。再読込の指示はステップS1005のプレビュー処理内で行われ、再読込の指示がされると、再読込の対象となるページの画像格納場所が記憶される。
再読込が指示されるとステップS1007に進み、再読込の指示がされない場合はステップS1008に進む。ステップS1007では、再読込指示がされた時に記憶されたページの画像データ破棄(削除)処理を実行する。
その後、ステップS1003に戻り原稿読込処理を実行し、再読込み対象ページの画像データを置き換える。
なお、原稿読込処理S1003は、自動紙送り装置(DF)にセットされた全原稿の読込処理、圧板上に置かれた原稿の読込み処理の他、自動紙送り装置にセットされた原稿から指定枚数の読込処理を行うことが可能である。また、再読込み時は、読込枚数が1ページという指定がされる。
ステップS1008は、連続読込処理中止の指示の判別を行う。ステップS1008で中止の指示があった場合はステップS1009に進み、それまで読込蓄積した画像データの全てを破棄する読込画像破棄処理S1009を実行した後、コピー処理を終了する。ステップS1008で中止の指示が無い場合はステップS1010に進む。
ステップS1010では読込終了指示の判別を行う。ステップS1010で読込終了が指示された場合ステップS1011に進み、それまで読込んだ画像データを全て印刷する読込画像印刷処理を実行した後、コピー処理を終了する。
ステップS1010で読込終了が指示されない場合はS1013に進み読込指示の判別を行う。ステップS1013で読込の指示があった場合、ステップS1003に戻り原稿読込処理を実行する。
ステップS1013で読込の指示が無い場合はステップS1004に戻る。つまり、操作部160による指示が何も無いときは、画像確認、再読込、中止、読込終了、読込の何れかの指示待ちになる。
図9は、原稿読込処理のフローチャートである。ステップS2001では、自動紙送り装置(DF)の状態の判別を行う。DFがオープンの時はステップS2006に進み、圧板からの原稿読込処理を行い処理を終了する。
DFがクローズの時はステップS2002に進み、DFに原稿がセットされているか否かの判別を行う。DFに原稿がセットされていない場合はステップS2006に進み、圧板からの原稿読込処理を行い処理を終了する。
DFに原稿がセットされている場合はステップS2003に進み、再読込処理が指示されているか否かの判別を行う。ステップS2003にて再読込が指示されていると判別した場合はステップS2004に進み、DFにセットされた原稿から1ページだけ画像を読込み処理を終了する。
ステップS2003にて再読込が指示されていないと判別した場合はステップS2005に進み、DFにセットされた原稿の全ページの読込み処理を行い処理を終了する。
図10は、蓄積画像確認(プレビュー)処理のフローチャートである。ステップS3001では、蓄積画像の確認を行う画像格納先の指定がされているかの判別を行う。
連続読込コピー処理で繰り返し読込まれる画像データは、実行中の連続読込コピー処理が使用している画像格納先である、後述文書管理部900のジョブ管理部902配下に管理されている。
ジョブ管理部902を指定することで、それまでに読込蓄積した画像データの先頭ページから最終ページまでたどることが可能なように管理されている。ステップS3001で指定が無い場合は処理を終了する。つまり、プレビュー処理は実行されない。ステップS3001で指定があった場合はステップS3002に進み蓄積された画像の先頭ページを特定する。
ステップS3003では蓄積されている画像データから、蓄積画像確認画面510に表示する画像データの生成を行う。
本実施形態では、蓄積画像確認画面510に表示する直前に画像データの生成を行っているが、原稿読込蓄積時に蓄積画像確認画面表示用の画像データを生成し、オリジナル画像と対応付けて外部記憶部160に格納しておいても良い。
ステップS3004では、ステップS3003で生成された画像データを蓄積画像確認画面510に表示する。
ステップS3005は入力指示待ちで、入力指示をループして待っている。
ステップS3006では次ページを表示する指示がされたかの判別を行い、次ページ表示の指示がされた場合はステップS3007に進む。
ステップS3007では蓄積されている画像データの最後尾かを判別し、最後尾であった場合はS3005に戻り再度入力指示待ちになる。
ステップS3007で最後尾で無いと判別した場合、ステップS3003に進み特定されたページの蓄積画像確認画面表示用の画像データの生成を行い処理を繰り返す。
ステップS3008では、前ページ表示の指示がされたかの判別を行う。前ページ表示の指示がされた場合はステップS3009に進み、蓄積されている画像データの先頭かの判別を行う。
先頭と判別した場合はステップS3005に戻り再度入力指示待ちになる。先頭で無いと判別した場合、ステップS3003に進み特定されたページの蓄積画像確認画面表示用の画像データの生成を行い処理を繰り返す。
ステップS3010では蓄積画像確認画面510に表示されている画像を縮小表示する指示がされたかの判別を行う。
縮小表示が指示されたと判別した場合はステップS3003に進み特定されたページの蓄積画像確認画面表示用の画像データの生成を行い処理を繰り返す。
縮小表示の指示が無い場合ステップS3011に進み、拡大表示の指示がされたかの判別を行う。ステップS3011で拡大表示の指示がされたと判別した場合は指定された場合ステップS3003に進み特定されたページの蓄積画像確認画面表示用の画像データの生成を行い処理を繰り返す。
拡大表示の指示が無い場合ステップS3012に進み、画像再読込の指示がされたか判別を行う。ステップS3012で画像再読込の指示がされた場合、ステップS3013に進み、現在表示されているページが文書管理部900のどこで管理されているか等を特定する識別情報を記憶(保持)し処理を終了する。
ここで保持された情報が前述の画像読込処理に伝わり、再読込処理が実行される。ステップS3012で再読込の指示が無い場合ステップS3005に戻り入力指示待ちとなる。
図11は、制御装置110の内部ソフトウェア構造を示す図である。本図において、700はコントローラソフトウェアであり、その中はプロトコル解釈部701、ジョブ制御部702、デバイス部703で構成されている。
プロトコル解釈部701はホストコンピュータ601や、操作部150から、各インタフェース(411〜414)を介して送られてきたコマンド(プロトコル)を解釈し、ジョブ制御部702に対してジョブの実行を依頼する。
ジョブ制御部702は、プロトコル解釈部の依頼に基づき種々のジョブを実行する。デバイス部703は、画像入出力システム100を構成する各ユニットを制御するドライバソフトを含み、ジョブ制御部702がジョブを実行する際に使用される。
図12は、ジョブ制御部702の構造を示す図である。同図において700はコントローラソフトウェア、701はプロトコル解釈部、702はジョブ制御部、703はデバイス部である。
ジョブ制御部702は、ジョブ生成部800、ジョブ処理部810、ドキュメント処理部820、ページ処理部830、バンド処理部840、デバイス割り当て部850を有している。
また、ジョブ処理部810は、ジョブ管理部811、バインダ管理部812、ドキュメント管理部813を有している。
また、デバイス部703は、第1デバイス851、第2デバイス852及び第3デバイス853等複数のデバイスを有する事が可能となっている。
ホストコンピュータ601,602や、操作部150から送られてきた一連の操作依頼は、コマンド(プロトコル)という形で、各インタフェース(411〜414)を介して送られてくる。
送られてきたコマンドは、プロトコル解釈部701で解釈された後、ジョブ制御部702に送られる。この時点でコマンドは、ジョブ制御部702が理解できる形に変換される。
ジョブ生成部800はジョブ814を生成する。ジョブ814にはコピージョブ、プリントジョブ、スキャンジョブ及びファックスジョブ等様々なジョブが存在する。
プロトコル解釈部701により解釈されたプロトコルには、例えば、プリントジョブならば印刷する文書の名前や印刷部数、出力先の排紙トレイの指定等の種々の設定情報や、印刷データ自体(PDLデータ)等が含まれる。
ジョブ814はジョブ処理部810に送られ処理が行われる。ジョブ処理部810は、ジョブ管理部811、バインダ管理部812、ドキュメント管理部813を有する。ジョブ管理部811はジョブを構成する複数のバインダの出力順など、ジョブ全体に関わる設定をする。バインダ管理部812はバインダを構成する複数のドキュメントの出力順など、バインダ全体に関わる設定をする。ドキュメント管理部813はドキュメントを構成する複数のページの出力順など、ドキュメント全体に関わる設定をする。即ち、ジョブ処理部810では、ジョブ814全体に関する設定や処理が行われる。
更に、ジョブ処理部810では、ジョブ814全体に関する設定や処理以外は、ジョブ814を構成するさらに小さな仕事の単位であるバインダ815に分割する。
また、バインダ815全体に関する設定や処理以外は、バインダ815を構成するさらに小さな仕事の単位であるドキュメント816に分割し処理する。
ドキュメント816は入力ドキュメント821と1対1に対応付けされており、入力ドキュメント821は、ドキュメント処理部820により出力ドキュメント822に変換処理される。
例えば、原稿の束をスキャナで読み取り、複数のイメージデータに変換するスキャンジョブを考えると、原稿の束に関する設定や操作の手順が書かれているのが入力ドキュメント821である。
複数のイメージデータに関する設定や操作の手順が書かれているのが出力ドキュメント822である。そして、紙の束を複数のイメージデータに変換する役割を持っているのがドキュメント処理部820である。
ドキュメント処理部820は、ドキュメント単位の入力ドキュメント821から出力ドキュメント822への変換処理を行う。そして、ドキュメント全体に関する設定や処理以外は、更に小さな仕事の単位である入力ページ831に分割し、ページ処理部830に処理を依頼する。
これは、ちょうどジョブ処理部815がジョブ単位の処理に専念して、更に細かい仕事のためにバインダ815、ドキュメント816を生成するのと同じである。
ドキュメント単位の設定及び操作は、具体的にはページの並び替え、両面印刷の指定、表紙の付加、OHP中差し等のページ順序に関するものである。ページ処理部830は、ページ単位の入力ページ831から出力ページ832への変換処理を行う。
例えば、上述のスキャンジョブの場合、入力ページ831には読み取りの解像度、読み取りの向き(ランドスケープ/ポートレイト)等の各種設定や、手順が書かれており、出力ページ832にはイメージデータの格納場所等の設定や手順が書かれている。
ここまでは、ジョブの単位を徐々に小さくして、ページの単位で扱えるようにすることを説明してきた。高価なシステムで1ページ分のページメモリを持てるならば、最終的にページ単位までジョブを細分化して処理すればよい。
しかし、現実にはメモリのコスト等の問題から1ページ分のページメモリを持てない場合には、数ライン分のメモリ(バンドメモリ)でジョブ814を処理するシステムもある。このような場合、ページを更に細かい単位であるバンドに分割して変換処理を行う。
それが入力バンド841、バンド処理部840、出力バンド842であり、これらの動作に関してはページの場合と同様である。ジョブ処理部810、ドキュメント処理部820、ページ処理部830及びバンド処理部840は、いずれも処理を進める際に画像入出力システム100を構成する種々の物理デバイスを使用する。
当然、複数の処理部が同時に仕事を進めるとデバイスの競合が発生するので、それを調停するのがデバイス割り当て部850である。
例として図に示した第1〜第3のデバイス851〜853は、デバイス割り当て部850により上述した各処理部に割り当てられる論理デバイスである。
例えば、ページメモリやバンドメモリ、原稿給紙ユニット250、マーキングユニット320エンジン及びスキャナユニット210等が考えられる。
図13は、画像記憶部160に蓄積される画像データを管理する文書管理部900の管理構造を示す図である。
文書管理部900は、フォルダ管理部901、ジョブ管理部902、バインダ管理部903、ドキュメント管理部904、ページ管理部905で構成さる。
それぞれ管理情報(属性値)を持っている。文書管理部900は、1つまたは複数のフォルダ管理部901で構成され、フォルダ管理部901の管理情報が格納されている。
フォルダ管理部901は、1つまたは複数のジョブ管理部902で構成され、ジョブ管理部902の管理情報が格納されている。ジョブ管理部902は、1つまたは複数のバインダ管理部903で構成され、バインダ管理部902の管理情報が格納されている。
さらに、ジョブ管理部902は、ジョブ制御部702において処理されるジョブ814の動作に必要な情報で、ジョブ管理部811に格納されている属性値を格納/保存することができる。
バインダ管理部903は、1つまたは複数のドキュメント管理部904で構成され、ドキュメント管理部904の管理情報が格納されている。
さらに、バインダ管理部903は、ジョブ制御部702において処理されるバインダ815の動作に必要な情報で、バインダ管理部812に格納されている属性値を格納/保存することができる。
ドキュメント管理部904は、1つまたは複数のページ管理部905で構成され、ページ管理部905の管理情報が格納されている。
さらに、ドキュメント管理部904は、ジョブ制御部702において処理されるドキュメント管理部813に格納されている属性値や、ドキュメント処理部820により処理された出力ドキュメント822の属性値を格納/保存することができる。
ページ管理部905は、画像記憶部160に保存された、スキャナで読込んだ1ページ分の画像データ、ホストコンピュータから送信されたPDLを展開した1ページ分の画像データ、FAXで受信した1ページ分の画像データなどと対応付けられている。
さらに、ページ管理部905は、ジョブ制御部702のページ処理部830により処理された出力ページ832の属性値を格納/保存することができる。
つまり、文書管理部900に保存された情報と、画像記憶部160に保存された画像データから画像蓄積時に投入されたジョブ814を再現することが可能である。
また、保存されている情報を再設定することで投入時のジョブと異なる動作をさせることも可能である。
図14は主記憶装置(CPU-AとCPU-Bが共有してアクセスすることが出来る共有メモリ)にアクセスすることが可能なマルチCPUシステムの説明図である。
ここでは仮に2つのCPUを搭載したシステムに関して説明するが図14のCPU−A、CPU−B以外のCPUを使用した場合に関しても当発明は該当するものとする。
図14中の1001はCPU−A、1002はCPU−B、1003は共有メモリ、1004はシステムバスブリッジ、1005はメモリコントローラ、1006はハードディスクコントローラ、1007はハードディスクである。1004、1005に関しては、図4中で説明したとおりであり、CPUとメモリのデータアクセス方法に関しての説明はここでは省く。
CPU−AおよびCPU−Bは、それぞれ、システムバスブリッジ、メモリコントローラを介して、1003共有メモリに対して、データのリード、ライトが可能である。
1006ハードディスクコントローラは、メモリコントローラ同様、ハードディスクへの読み書きを制御するコントローラであり、図3にあるようなE−IDEコネクタを介してハードディスクと接続されている。
1007ハードディスクはE−IDE規格のハードディスクであり、主記憶装置(共有メモリ)対し、非常に容量が大きい。CPU−AおよびCPU−Bからハードディスクコントローラを介してアクセスすることが可能である。
図15は従来のシステム図である。6001はCPU-A、6002はCPU-B、6006はCPU-AおよびCPU-Bからアクセスすることが出来る共有メモリである。
6003は共有メモリ上に配置されたCPU-A上で動作するファームウェア、6004は共有メモリ上に配置されたCPU-B上で動作するファームウェアである。
6008は6003ファームウェア内にあるはーでドディスクを制御するためのデバイスドライバ、6005は6004ファームウェア内にあるハードディスクを制御するためのデバイスドライバ、6007はハードディスクである。
ハードディスクデバイスドライバは、ハードディスクにデータを書き込んだり、ハードディスクからデータを読み込んだりといった制御を行う。
このシステムでは、ハードディスクデバイスドライバはCPU-AおよびCPU-B上で動作するファームウェア両方の内部に搭載されており、CPU-A、CPU-Bからは通常の関数実行で呼ぶことが可能である。
ここで問題となるのは、CPU-AとCPU-Bのコンフリクトである。そのためハードディスクを制御する際、排他的な制御が必要となる。例えばCPU-Aがハードディスクをコントロールする際にはCPU-Bにはハードディスクを制御しないように、CPU-AからCPU-Bに対し命令を出す。
あるいは、またセマフォなどを利用してCPU-AとCPU-Bが同時にハードディスクへアクセスしないよう排他制御を行う必要がある。これらの排他制御を怠った場合、CPU-A及びCPU-Bが同時にハードディスクへアクセスしに行き、データの整合性がとれなくなる可能性がある。
また、ハードディスクを制御するという全く同様のプログラムを複数のCPU上のファームウェアに搭載することはメモリやディスクの無駄遣いだと言える。
図16は本実施形態でのシステム図である。6101はCPU-A、6102はCPU-B、6106はCPU-AおよびCPU-Bからアクセスすることが出来る共有メモリ、6103は共有メモリ上に配置されたCPU-A上で動作するファームウェアである。
6104は共有メモリ上に配置されたCPU-B上で動作するファームウェア、6105は6104ファームウェア内にあるハードディスクを制御するためのデバイスドライバ、6107はハードディスクである。
6108はCPU-Aが参照する関数テーブルA、6109はCPU-Bが参照する関数テーブルBである。
このシステムでは、ハードディスクデバイスドライバはCPU-B上で動作するファームウェア内に搭載されており、CPU-Bからは通常の関数実行で呼ぶことが可能である。
しかし、CPU-Aからは、通常CPU-Bのファームウェアに搭載されているプログラムを実行することは出来ない。
CPU-AからはCPU-A上のファームウェア内のプログラムを、CPU-BからはCPU-B上のファームウェア内のプログラムを実行することが通常である。
通常では例えば、ハードディスクデバイスドライバを搭載したCPU-Bからのみハードディスクをコントロールすることが可能となる。
CPU-Aからハードディスクを制御する場合には、CPU-A上のファームウェアにもハードディスクデバイスドライバを搭載する必要がある。しかしながら、CPU-A上にハードディスクデバイスドライバを搭載すれば、CPU-Aからハードディスクのコントロールは可能となるが、CPU-AとCPU-Bのコンフリクトにより、ハードディスクを制御する際の排他制御が必要となる。
例えばCPU-Aがハードディスクをコントロールする際にはCPU-Bにはハードディスクを制御しないように、CPU-AからCPU-Bに対し命令を出す。あるいは、またセマフォなどを利用してCPU-AとCPU-Bが同時にハードディスクへアクセスしないよう排他制御を行う必要がある。
これらの排他制御を怠った場合、CPU-A及びCPU-Bが同時にハードディスクへアクセスしに行き、データの整合性がとれなくなる可能性がある。
また、ハードディスクを制御するという全く同様のプログラムを複数のCPU上のファームウェアに搭載することはメモリやディスクの無駄遣いだと言える。そこで本発明では、CPU-AがCPU-Bのデバイスドライバを使用して、ハードディスクを制御する手法に付いて述べてゆく。
図17は本実施形態における、関数テーブルの概念図である。6201はCPU-A、6202はCPU-Bである。6203はCPU-AおよびCPU-Bからアクセスすることが出来る共有メモリ、6204共有メモリ上に配置されたCPU-A上で動作するファームウェアである。
6206は共有メモリ上に配置されたCPU-B上で動作するファームウェア、6208は6204ファームウェア内にあるハードディスクを制御するためのデバイスドライバ、6209はハードディスクである。6205はCPU-Aが参照する関数テーブルA、6207はCPU-Bが参照する関数テーブルBである。
画像形成装置の電源投入立ち上げ時に、CPU-Bは、CPU-B上にあるハードディスクデバイスドライバの制御プログラムのエントリーアドレス、インターフェイス等のメンバーを6207関数テーブルBに設定する。
その後、CPU-AとCPU-Bがネゴシエーションを行い、6207関数テーブルBの内容をCPU-Aの6205関数テーブルAにコピーする。
あるいは、CPU-Bが、CPU-B上にあるハードディスクデバイスドライバの制御プログラムのエントリーアドレス、インターフェイス等を6205関数テーブルAに設定する。
関数テーブルの内容は、関数名、関数のエントリーアドレス、インターフェイス、戻り値などが設定されている。
CPU-B上にあるファームウェア内部のプログラムも、同一アーキテクチャのCPUでならば、CPU-Aから関数のエントリーアドレスを指定することにより実行可能である。
図18は本実施形態のシステム図である。6401はCPU-A、6402はCPU-Aである。6403はCPU-AおよびCPU-Bからアクセスすることが出来る共有メモリ、6404は共有メモリ上に配置されたCPU-A上で動作するファームウェア、6406は共有メモリ上に配置されたCPU-B上で動作するファームウェアである。
6408は6406ファームウェア内にあるハードディスクを制御するためのデバイスドライバ、6410はハードディスク、6405はCPU-Aが参照する関数テーブルA、6407はCPU-Bが参照する関数テーブルBである。
CPU-Bからハードディスクを制御する場合には、図のように、6408デバイスドライバプログラムを直接CPU-Bが実行することで可能である。
また、関数テーブル6407の関数エントリーポインタを実行することでも同様の結果になる。
図19は本実施形態のシステム図である。6301はCPU-A、6302はCPU-Bである。6303はCPU-AおよびCPU-Bからアクセスすることが出来る共有メモリ、6304は共有メモリ上に配置されたCPU-A上で動作するファームウェア、6306は共有メモリ上に配置されたCPU-B上で動作するファームウェアである。
6308は6406ファームウェア内にあるハードディスクを制御するためのデバイスドライバ、6311はハードディスク、6305はCPU-Aが参照する関数テーブルA、6307はCPU-Bが参照する関数テーブルBである。
6309は共有メモリの未使用領域、6310は関数テーブルの内容である。CPU-Aからハードディスクを制御する場合には、図のように、6305関数テーブルを参照する。
例えば、ハードディスクドライバのopen動作を実行したいのであれば、関数テーブルからそのエントリーアドレスは、0xXXXX0000であると分かる。また、引数にはそれぞれ、nameとflagsを与えればいいことも分かる。
戻り値はfdであることも分かる。この関数テーブルのopenのエントリーアドレスをコールすることで、6308デバイスドライバ内のopenを直接コールしたことと同様の結果が得られる。
以上、本実施形態では、同一のアーキテクチャである複数のCPUを有し、前記複数のCPUがアクセス可能である主記憶装置を搭載した画像形成装置を含むファイルシステムにおいて、前記CPU上で動作する前記画像形成装置のファームウェアを、それぞれ別々にリンクされた独立したオブジェクトとし、前記CPUのうち、特定のCPU上のファームウェア内の関数のエントリーポインタを記述したテーブルを前記複数のCPUそれぞれのOS上で管理するようにしている。
このような本実施形態の方式を使用すれば、デバイスの排他が簡単に行え、また両OSで共通に使用する関数部の重複を省くことが可能である。
このような本実施形態の方式を使用すれば、デバイスの排他が簡単に行え、また両OSで共通に使用する関数部の重複を省くことが可能である。
100 画像入出力システム
6201 CPU−A
6202 CPU−B
6203 共有メモリ
6204 ファームウェア
6205 関数テーブルA
6206 ハードディスク
6207 関数テーブルB
6401 CPU−A
6402 CPU−B
6403 共有メモリ
6404 ファームウェア
6405 関数テーブル
6406 ファームウェア
6407 関数テーブル
6408 デバイスドライバ
6410 ハードディスク
6301 CPU−A
6302 CPU−B
6303 共有メモリ
6304 ファームウェア
6305 関数テーブルA
6306 ファームウェア
6307 関数テーブルB
6308 デバイスドライバ
6201 CPU−A
6202 CPU−B
6203 共有メモリ
6204 ファームウェア
6205 関数テーブルA
6206 ハードディスク
6207 関数テーブルB
6401 CPU−A
6402 CPU−B
6403 共有メモリ
6404 ファームウェア
6405 関数テーブル
6406 ファームウェア
6407 関数テーブル
6408 デバイスドライバ
6410 ハードディスク
6301 CPU−A
6302 CPU−B
6303 共有メモリ
6304 ファームウェア
6305 関数テーブルA
6306 ファームウェア
6307 関数テーブルB
6308 デバイスドライバ
Claims (3)
- 同一のアーキテクチャである複数のCPUを有し、前記複数のCPUがアクセス可能である主記憶装置を搭載した画像形成装置を含むファイルシステムであって、
前記CPU上で動作する前記画像形成装置のファームウェアは、それぞれ別々にリンクされた独立したオブジェクトであり、前記CPUのうち、特定のCPU上のファームウェア内の関数のエントリーポインタを記述したテーブルを前記複数のCPUそれぞれのOS上で管理することを特徴とするファイルシステム。 - 前記テーブルの内容は、前記CPU上のファームウェアの関数のエントリーポインタ、及び前記関数のインタフェースを記述したものであることを特徴とする請求項1に記載のファイルシステム。
- 前記ファームウェアの関数はデバイスドライバの制御プログラムであり、
前記複数のCPUからは、前記デバイスドライバの制御プログラムのエントリーアドレスをメンバーに持ったテーブル情報を参照するとともに、前記デバイスドライバを制御する場合はテーブルに記載の制御プログラムによって排他的に制御することを特徴とする請求項1又は2に記載のファイルシステム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006326257A JP2008140191A (ja) | 2006-12-01 | 2006-12-01 | ファイルシステム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006326257A JP2008140191A (ja) | 2006-12-01 | 2006-12-01 | ファイルシステム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2008140191A true JP2008140191A (ja) | 2008-06-19 |
Family
ID=39601567
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006326257A Pending JP2008140191A (ja) | 2006-12-01 | 2006-12-01 | ファイルシステム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2008140191A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9043520B2 (en) | 2010-07-27 | 2015-05-26 | Fujitsu Limited | Interrupt control method and multicore processor system |
US9465646B2 (en) | 2012-03-19 | 2016-10-11 | Fujitsu Limited | Detection apparatus, notification method, and computer product |
-
2006
- 2006-12-01 JP JP2006326257A patent/JP2008140191A/ja active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9043520B2 (en) | 2010-07-27 | 2015-05-26 | Fujitsu Limited | Interrupt control method and multicore processor system |
US9465646B2 (en) | 2012-03-19 | 2016-10-11 | Fujitsu Limited | Detection apparatus, notification method, and computer product |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8248650B2 (en) | Image processing apparatus, image processing method, and image processing program | |
JP2007188226A (ja) | デジタル複合機及びその制御方法 | |
JP2006222580A (ja) | 画像処理装置及びその制御方法並びにプログラム及び記憶媒体 | |
JP2008097356A (ja) | デジタル複合機及びその制御方法、プログラム並びに記憶媒体 | |
JP2008140191A (ja) | ファイルシステム | |
JP2005144797A (ja) | 印刷装置およびデータ処理装置および印刷処理方法コンピュータが読み取り可能なプログラムを格納した記憶媒体およびプログラム | |
JP2009100101A (ja) | デジタル複合機 | |
JP4054503B2 (ja) | 画像処理装置 | |
JP4054756B2 (ja) | 画像処理装置および画像処理方法およびコンピュータが読み取り可能なプログラムを格納した記憶媒体 | |
JP2008099013A (ja) | デジタル複合機及びその制御方法、プログラム並びに記憶媒体 | |
JP2006186656A (ja) | 画像処理装置、転送ジョブの管理方法、プログラムおよび記憶媒体 | |
JP2010004271A (ja) | 画像処理装置 | |
JP2007028183A (ja) | 画像複写装置 | |
JP2006222581A (ja) | 画像形成装置及びその制御方法、コンピュータプログラム及び記憶媒体 | |
JP2006155467A (ja) | デジタル複合機及びその制御方法、プログラム並びに記憶媒体 | |
JP2007043553A (ja) | Fax、プログラム並びに記憶媒体 | |
JP2006347066A (ja) | デジタル複合機及びその制御方法、プログラム並びに記憶媒体 | |
JP2009087302A (ja) | 画像形成装置 | |
JP2006155163A (ja) | デジタル複合機及びその制御方法、プログラム並びに記憶媒体 | |
JP2006056062A (ja) | 画像複写装置 | |
JP2006173843A (ja) | 画像情報入出力装置 | |
JP4086473B2 (ja) | 画像形成システム、制御方法およびコンピュータ読取可能な記憶媒体 | |
JP2004007047A (ja) | デジタル複写装置及びその制御方法、プログラム並びに記憶媒体 | |
JP2004058499A (ja) | 画像形成装置の制御方法 | |
JP2009151464A (ja) | デジタル画像形成装置 |