説明

画像処理装置

【課題】OSのオーバーヘッドを少なくすることができ、アクセス違反によるデータ破壊を抑制することができる画像処理装置を提供する。
【解決手段】この画像処理装置1は、システムメモリ7と、複数のタスクに対応してシステムメモリ7上に連続して設定された複数のスタック領域に対応する仮想アドレスを、仮想アドレス領域に離散的にマッピングする仮想アドレス離散配置手段62と、仮想アドレスと物理アドレスとを対応付けるとともにメモリアクセス違反が検知するメモリ管理手段64と、画像処理用アプリケーションによるメモリアクセス違反が検知されたとき、メモリアクセス違反を履歴情報として不揮発性記憶部8に保存する履歴情報保存手段66とを備える。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像処理装置に関する。
【背景技術】
【0002】
コンピュータシステムのメモリ方式として、仮想記憶方式が一般に採用されている(例えば、特許文献1参照。)。
【0003】
特許文献1に記載されたコンピュータシステムは、複数のタスクを実行するアプリケーションによりアクセスされる主記憶メモリと、論理アドレスと主記憶メモリ上の物理アドレスとをページ単位で対応付けたページテーブルと、ペーテーブルに対し、現在実行中のタスクのスタックに対応するページの保護情報を読み書き禁止に設定し、次に実行するタスクのスタックに対応するページの保護情報を読み書き可能に設定するページ情報書き換え手段と、現在実行しているタスクが他のタスクのスタックへアクセスしたとき、ページ保護例外処理を発生するメモリ管理機構とを備える。現在実行しているタスクが他のタスクのスタックへアクセスした場合、現在実行中のタスクが休止状態となり、タクスの暴走を防止することができる。
【特許文献1】特開平11−134204号公報
【発明の開示】
【発明が解決しようとする課題】
【0004】
本発明の目的は、OSのオーバーヘッドを少なくすることができ、アクセス違反によるデータ破壊を抑制することができる画像処理装置を提供することにある。
【課題を解決するための手段】
【0005】
本発明の一態様は、上記目的を達成するため、以下の画像処理装置を提供する。
【0006】
[1]複数のタスクを実行するアプリケーションによりアクセスされるメモリと、前記複数のタスクに対応して前記メモリ上に連続して設定された複数のスタック領域に対応する仮想アドレスを、仮想アドレス領域に離散的にマッピングする仮想アドレス離散配置手段と、前記仮想アドレス離散配置手段によりマッピングされた前記仮想アドレスと前記メモリ上に設定された前記複数のスタック領域の物理アドレスとを対応付けるメモリ管理手段と、前記アプリケーションによる前記メモリへのアクセス違反を検知する検知手段と、前記検知手段により前記アクセス違反が検知されたとき、前記アクセス違反の内容を保存する保存手段とを備えた記載の画像処理装置。
【0007】
[2]前記保存手段は、前記アクセス違反の内容を履歴情報として不揮発性記憶部に保存する前記[1]に記載の画像処理装置。
【0008】
[3]前記検知手段により前記アクセス違反が検知されたとき、前記仮想アドレス領域に空き領域が存在し、かつ、前記メモリの物理アドレス領域に空き領域が存在するとき、前記アクセス違反の発生に係る前記スタック領域の仮想アドレスを前記仮想アドレス領域の空き領域に拡張するスタック領域拡張手段を、更に備えた前記[1]に記載の画像処理装置。
【0009】
[4]前記検知手段により前記アクセス違反が検知されたとき、前記保存手段により保存された前記アクセス違反の内容をクリアしない再起動を行う強制再起動手段を、更に備えた前記[1]に記載の画像処理装置。
【発明の効果】
【0010】
請求項1に記載の発明によれば、OSのオーバーヘッドを少なくすることができ、アクセス違反によるデータ破壊を抑制することができ、アクセス違反の発生原因の特定が可能となる。
【0011】
請求項2に記載の発明によれば、電源オフ後もアクセス違反の内容を保存することができる。
【0012】
請求項3に記載の発明によれば、スタック領域を動的に拡張することができる。
【0013】
請求項4に記載の発明によれば、不揮発性記憶部を有していなくてもアクセス違反の発生原因の特定が可能となる。
【発明を実施するための最良の形態】
【0014】
[第1の実施の形態]
図1は、本発明の第1の実施の形態に係る画像処理装置の概略の構成を示すブロック図である。
【0015】
この画像処理装置1は、操作表示部2と、画像入力部3と、画像出力部4と、通信部5と、制御部6と、システムメモリ7と、不揮発性記憶部8とを備え、1又は2以上の画像処理用アプリケーションによって複数のタスクを実行するように構成されている。画像処理用アプリケーションは、オペレーティングシステム(OS)上で動作し、OSによりメモリ管理がなされている。
【0016】
操作表示部2は、ユーザの操作により、表示、設定、入力、指示が可能なタッチパネル及びハードスイッチを備える。
【0017】
画像入力部3は、原稿から画像をCCD(Charge Coupled Device)等の固体撮像素子により光学的に読み取るものである。
【0018】
画像出力部4は、画像を電子写真プロセス方式、インクジェット方式、感熱転写方式等により用紙に印刷するものである。
【0019】
通信部5は、USB(Universal Serial Bus)、PCI Express等のシリアルインタフェースやイーサネット(登録商標))等のインタフェースを用いてコンピュータ(PC)等の外部装置との間で通信が可能に構成されている。
【0020】
システムメモリ7は、画像処理用アプリケーション、後述するページテーブル等が格納され、プログラムや画像データ等を処理するためにデータが一時的に格納される。
【0021】
不揮発性記憶部8は、例えば、ハードディスクドライブ、フラッシュメモリ等の不揮発性メモリから構成され、各種の履歴情報が格納される。
【0022】
制御部6は、画像処理制御手段60と、メモリ資源管理手段61と、仮想アドレス離散配置手段62と、メモリアドレス変換手段63と、MMU(Memory Management Unit)640及びページテーブル641を有するメモリ管理手段64と、メモリアクセス違反例外処理手段65と、履歴情報保存手段66とを備える。これらの手段60〜66は、CPUとプログラム、又はASIC等のハードウェアによって実現することができる。
【0023】
画像処理制御手段60は、操作表示部2、画像入力部3及び画像出力部4を制御するとともに、画像入力部3から画像データを入力し、画像データを画像処理して出力画像を生成し、画像出力部4に出力する。
【0024】
メモリ資源管理手段61は、システムメモリ7のスタック領域(画像処理用のバッファ領域を含む。)等を管理し、タスクに対して適切なメモリ資源の割り当て・回収を行う。
【0025】
仮想アドレス離散配置手段62は、スタック領域を仮想アドレス領域にマッピングする際、隣接する領域が存在しないように、少なくともMMU640が物理メモリを管理するページサイズ分(例えば4kB)の間隔を空け、かつ、スタック領域がそのページサイズにアライメントされたアドレスにマッピングし、要求があれば仮想アドレスへのマッピングを取り消し、元のマッピングに戻す。
【0026】
メモリ管理手段64のMMU640は、内部にトランスレーション・ルックアサイド・バッファ(TLB)を有し、TLBにページテーブル641の一部を格納している。MMU640は、CPUから出力された仮想アドレスをページテーブル641を参照して物理アドレスに変換するとともに、システムメモリ7に対するアクセスを制御し、仮想アドレスに対応する物理アドレスがページテーブルエントリ(PTE)に存在しないことでメモリアクセス違反を検知する機能を有する。
【0027】
メモリ管理手段64のページテーブル641は、仮想ページ番号がインデックスとなっており、PTEに物理アドレスが格納される構造になっている。ページテーブル641は、仮想アドレス離散配置手段62によってマッピングされた仮想アドレスにシステムメモリ17上の物理アドレスがページ単位で対応付けられており、ページ単位で書込みの可否と読出しの可否のアクセス情報が設定可能となっている。
【0028】
メモリアドレス変換手段63は、ページテーブル641の仮想アドレスに対応するPTEにメインメモリ7上の物理アドレスを設定する。
【0029】
メモリアクセス違反例外処理手段65は、MMU640がメモリアクセス違反を検知したとき、例外処理を実行する。
【0030】
履歴情報保存手段66は、不揮発性記憶部8に履歴情報格納領域を確保し、そこに必要な履歴情報を書き込む。履歴情報を書き込むケースには、通常のタスクから呼び出して書き込むケース、OS内部の状態を書き込むケース等がある。これに更に、割り込みや例外処理のコンテクストで履歴情報を書き込むようにし、上記メモリアクセス違反例外処理手段65の処理として例外履歴情報を書き込む。
【0031】
また、履歴情報保存手段66は、不揮発性記憶部8に格納されている履歴情報を、操作表示部2からの要求に基づいて操作表示部2に出力し、又は通信部5に接続された外部装置からの要求に基づいて外部装置に出力する。外部装置は、エミュレータソフト等を用いることにより、不揮発性記憶部8から出力された履歴情報をファイルとして保存することができる。
【0032】
図2は、メモリ管理方法を説明するための図である。仮想アドレス離散配置手段62は、複数のタスクに対応してシステムメモリ7上に連続して設定された複数のスタック領域に対応する仮想アドレスを、仮想アドレス領域71に離散的にマッピングする。例えば、図2に示すように、物理アドレス領域70上のタスクA用のスタック領域70a、タスクB用のスタック領域70b、及びタスクC用のスタック領域70cは、仮想アドレス領域71上のタスクA用のスタック領域71a、タスクB用のスタック領域71b、及びタスクC用のスタック領域71cに対応し、スタック領域71a〜71cの間に空き領域72a,72bが形成される。ページテーブル641の各ページ641a、641b、641cには、スタック領域71a〜71cに対応して物理アドレスと仮想アドレスとの変換情報等が設定される。
【0033】
(画像処理装置の動作)
次に、画像処理装置1の動作を、メモリアクセス違反を中心に説明する。例えば、画像処理用プログラムがタスクAを実行中にタスクA用のスタック領域71aにおいてオーバーフロー(メモリアクセス違反)が発生すると、MMU640がそのメモリアクセス違反を検知し、それをメモリアクセス違反例外処理手段65に通知する。
【0034】
メモリアクセス違反例外処理手段65は、タスクAの処理の停止等の例外処理を行う。履歴情報保存手段66は、メモリアクセス違反例外処理手段65の指示により履歴情報記憶部8にメモリアクセス違反の履歴情報を格納する。履歴情報として、例えば、メモリアクセス違反の発生場所、発生時刻等がある。
【0035】
履歴情報保存手段66は、外部装置から通信部5を介して履歴情報の読み出し要求があると、履歴情報記憶部8から履歴情報を読み出して通信部5を介して外部装置に出力する。また、履歴情報保存手段66は、操作表示部2から履歴情報の読み出し要求があると、履歴情報記憶部8から履歴情報を読み出して操作表示部2に出力する。
【0036】
図3及び図4は、操作表示部2又は外部装置の表示部への履歴情報の出力例であって、図3は、履歴情報の種類を選択する履歴情報操作メニュー画面の一例を示す図、図4は、図3の履歴情報操作メニュー画面において履歴情報として例外処理ログを選択した場合の例外処理ログ画面を示す図である。
【0037】
図3に示す履歴情報操作メニュー画面100には、「履歴の表示」110の対象として、全ての種類の履歴を示す「全て表示」項目111、タスクが出力した履歴を示す「タスク出力ログ」項目112、システムが処理した履歴を示す「システムログ」項目113、割込み処理の履歴を示す「割り込み処理ログ」項目114、及び例外処理の履歴を示す「例外処理ログ」項目115等が表示される。「履歴の消去」120の対象には、「履歴の表示」110と同様に上記の項目111〜115が含まれる。スクロールボタン130,131を操作することにより、他のログを画面100に表示することができる。
【0038】
図3に示す履歴情報操作メニュー画面100において、「例外処理ログ」項目115を選択すると、図4に示す例外処理ログ画面200が操作表示部2又は外部装置の表示部に表示される。例外処理ログ画面200には、メモリアクセス違反の発生した時刻210、エラー内容211、CPUのレジスタに関する情報(レジスタNo.、プログラムカウンタ、関数の戻りアドレス等)212等が表示される。また、この例外処理ログ画面200には、ログをファイルとして保存するF1キー213や、F2キー214、BSキー215、Escキー216、スクロールバー220等が表示される。
【0039】
(比較例)
図5は、比較例を示す図である。この比較例は、第1の実施の形態のように、仮想アドレス離散配置手段62を有しておらず、メモリアドレス変換手段63の代わりにメモリ属性変換手段67を設けたものであり、物理アドレス領域70のスタック領域70a〜70cに対応して仮想アドレス領域71に連続してスタック領域71a〜71cがマッピングされる。実行中以外のスタック領域のデータがメモリアクセス違反によって破壊されないようにするため、メモリ属性変換手段62は、実行するタスクを変更する度にページテーブル641のページ641a〜641cに対しアクセス情報を書き換える。同図は、タスクBを実行中の場合を示し、タスクBに対応するページ641bには、アクセス情報として「書込み可」が設定され、タスクA、Bに対応するページ641a,641cには、アクセス情報として「書込み不可」が設定される。
【0040】
本実施の形態によれば、比較例のようにタスクを変更する度にメモリ属性を書き換える必要がなくなり、OSのオーバーヘッドが少なくなる。また、メモリアクセス違反が発生したとき、スタック領域のデータ破壊が抑制され、メモリアクセス違反の発生原因の特定が可能となる。
【0041】
[第2の実施の形態]
図6は、本発明の第2の実施の形態に係る画像処理装置の概略の構成を示すブロック図である。
【0042】
本実施の形態は、第1の実施の形態において、スタック領域拡張手段68を設けたものであり、他は第1の実施の形態と同様に構成されている。スタック領域拡張手段68は、CPUとプログラム、又はASIC等のハードウェアによって実現することができる。
【0043】
スタック領域拡張手段68は、MMU640がメモリアクセス違反を検知したとき、仮想アドレス領域71に空き領域が存在するか否か、及びシステムメモリ7の物理アドレス領域70に空き領域が存在するか否かを判断し、仮想アドレス領域71に空き領域が存在し、かつ、システムメモリ7の物理アドレス領域70に空き領域が存在するとき、メモリアクセス違反の発生に係るスタック領域の仮想アドレスを仮想アドレス領域71の空き領域に拡張する。
【0044】
図7は、メモリ管理方法を説明するための図である。仮想アドレス離散配置手段62は、複数のタスクに対応してシステムメモリ7上に連続して設定された複数のスタック領域に対応する仮想アドレスを、仮想アドレス領域71に離散的にマッピングする。例えば、図7に示すように、物理アドレス領域70上のタスクA用のスタック領域70a、タスクB用のスタック領域70b、及びタスクC用のスタック領域70cは、仮想アドレス領域71上のタスクA用のスタック領域71a、タスクB用のスタック領域71b、及びタスクC用のスタック領域71cに対応し、スタック領域71a〜71cの間に空き領域72a,72bが形成される。画像形成用アプリケーションがタスクBを実行中に仮想アドレス71bにおいてオーバーフローが発生したとする。MMU640がそのメモリアクセス違反を検知し、スタック領域拡張手段68は、物理アドレス領域70にタスクB用の一時バッファ領域70b’を確保し、仮想アドレス領域71のスタック領域71bに隣接する空き領域72bをタスクB用のスタック領域71b’として確保する。画像処理用アプリケーションは、一時バッファ領域70b’をタスクBのスタック領域として使用し、タスクBを継続して実行する。
【0045】
図8は、第2の実施の形態の動作を示すフローチャートである。画像処理用アプリケーションが例えばタスクBを実行中にスタック領域71bにおいてオーバーフローを発生すると、MMU640は、メモリアクセス違反を検知し、それをメモリアクセス違反例外処理手段65に通知する。メモリアクセス違反例外処理手段65は、タクスBの処理の停止等の例外処理を行う。
【0046】
スタック領域拡張手段68は、メモリアクセス違反例外処理手段65の指示により仮想アドレス領域71に空き領域が存在するか否かをページテーブル641を参照して判断し(S10)、仮想アドレス領域71に空き領域が存在する場合は(S10:Yes)、画像処理用アプリケーションがタスクBを処理するのに必要なデータ量がページサイズ(例えば、4kB)よりも大きいか否かを判断する(S11)。ページサイズよりも大きい場合は(S11:Yes)、スタック領域拡張手段68は、メモリ資源管理手段61へ空きリソースを問い合わせる(S12)。物理アドレス領域70に空き領域が存在するか否かを判断する(S13)。物理アドレス領域70に空き領域が存在する場合は、一時バッファ領域70b’を確保し(S13:Yes)、スタック領域拡張手段68は、仮想アドレス領域71のスタック領域71bに隣接する空き領域をスタック領域71b’としてマッピングする(S14)。
【0047】
上記ステップS10において、仮想アドレス領域71に空き領域が存在しない場合(S10:No)、タクスBの処理に必要なデータ量がページサイズよりも大きくない場合(S11:No)、又は物理アドレス領域71に空き領域が存在しない場合は(S13:No)、履歴情報保存手段66は、メモリアクセス違反例外処理手段65の指示により揮発性記憶部8の履歴情報領域にメモリアクセス違反の履歴情報を含む例外情報を保存する(S15)。
【0048】
本実施の形態によれば、タスクを変更する度にメモリ属性を書き換える必要がなくなり、OSのオーバーヘッドが少なくなる。また、メモリアクセス違反が発生したとき、スタック領域のデータ破壊が抑制され、メモリアクセス違反の発生原因の特定が可能となり、スタック領域を動的に拡張することができる。
【0049】
[第3の実施の形態]
図9は、本発明の第3の実施の形態に係る画像処理装置の概略の構成を示すブロック図である。
【0050】
本実施の形態は、第1の実施の形態において、揮発性記憶部8及び履歴情報保存手段66を省き、強制再起動手段69を設けたものであり、他は第1の実施の形態と同様に構成されている。強制再起動手段69は、CPUとプログラム、又はASIC等のハードウェアによって実現することができる。
【0051】
強制再起動手段69は、画像処理用プログラムがタクスを実行中にメモリアクセス違反が発生し、タクスの処理が停止した後、メモリアクセス違反例外処理手段65の指示によりメモリ(アクセス違反の内容を含む。)をクリアしない再起動を強制的に行う。強制再起動手段69は、再起動した際に、メモリアクセス違反例外処理手段65の処理として、図4に示す例外処理ログ画面200の情報を操作表示部2又は通信部5を介して外部装置に出力する。
【0052】
本実施の形態によれば、タスクを変更する度にメモリ属性を書き換える必要がなくなり、OSのオーバーヘッドが少なくなる。また、メモリアクセス違反が発生したとき、スタック領域のデータ破壊が抑制され、不揮発性記憶部を有していなくても再起動時に出力される例外処理ログに基づいてメモリアクセス違反の発生原因の特定が可能となる。
【0053】
[他の実施の形態]
なお、本発明は、上記各実施の形態に限定されず、その要旨を変更しない範囲内で種々な変形が可能である。
【図面の簡単な説明】
【0054】
【図1】図1は、本発明の第1の実施の形態に係る画像処理装置の概略の構成を示すブロック図である。
【図2】図2は、メモリ管理方法を説明するための図である。
【図3】図3は、履歴情報操作メニュー画面の一例を示す図である。
【図4】図4は、例外処理ログ画面を示す図である。
【図5】図5は、比較例を示す図である。
【図6】図6は、本発明の第2の実施の形態に係る画像処理装置の概略の構成を示すブロック図である。
【図7】図7は、メモリ管理方法を説明するための図である。
【図8】図8は、本発明の第2の実施の形態の動作を示すフローチャートである。
【図9】図9は、本発明の第3の実施の形態に係る画像処理装置の概略の構成を示すブロック図である。
【符号の説明】
【0055】
1…画像処理装置、2…操作表示部、3…画像入力部、4…画像出力部、5…通信部、6…制御部、7…システムメモリ、8…不揮発性記憶部、60…画像処理制御手段、61…メモリ資源管理手段、62…仮想アドレス離散配置手段、63…メモリアドレス変換手段、64…メモリ管理手段、65…メモリアクセス違反例外処理手段、66…履歴情報保存手段、67…メモリ属性変換手段、68…スタック領域拡張手段、69…強制再起動手段、70…物理アドレス領域、70a〜70c…スタック領域、71…仮想アドレス領域、71a〜71c…スタック領域、72a,72b…空き領域、100…履歴情報操作メニュー画面、110…「履歴の表示」、111…「全て表示」項目、112…「タスク出力ログ」項目、113…「システムログ」項目113、114…「割り込み処理ログ」項目、115…「例外処理ログ」項目、120…「履歴の消去」、130,131…スクロールボタン、200…例外処理ログ画面、210…時刻、211…エラー内容、212…CPUのレジスタに関する情報、213…F1キー、214…F2キー、215…BSキー、216…Escキー、220…スクロールバー、640…MMU、641…ページテーブル

【特許請求の範囲】
【請求項1】
複数のタスクを実行するアプリケーションによりアクセスされるメモリと、
前記複数のタスクに対応して前記メモリ上に連続して設定された複数のスタック領域に対応する仮想アドレスを、仮想アドレス領域に離散的にマッピングする仮想アドレス離散配置手段と、
前記仮想アドレス離散配置手段によりマッピングされた前記仮想アドレスと前記メモリ上に設定された前記複数のスタック領域の物理アドレスとを対応付けるメモリ管理手段と、
前記アプリケーションによる前記メモリへのアクセス違反を検知する検知手段と、
前記検知手段により前記アクセス違反が検知されたとき、前記アクセス違反の内容を保存する保存手段とを備えた記載の画像処理装置。
【請求項2】
前記保存手段は、前記アクセス違反の内容を履歴情報として不揮発性記憶部に保存する請求項1に記載の画像処理装置。
【請求項3】
前記検知手段により前記アクセス違反が検知されたとき、前記仮想アドレス領域に空き領域が存在し、かつ、前記メモリの物理アドレス領域に空き領域が存在するとき、前記アクセス違反の発生に係る前記スタック領域の仮想アドレスを前記仮想アドレス領域の空き領域に拡張するスタック領域拡張手段を、更に備えた請求項1に記載の画像処理装置。
【請求項4】
前記検知手段により前記アクセス違反が検知されたとき、前記保存手段により保存された前記アクセス違反の内容をクリアしない再起動を行う強制再起動手段を、更に備えた請求項1に記載の画像処理装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate


【公開番号】特開2010−134747(P2010−134747A)
【公開日】平成22年6月17日(2010.6.17)
【国際特許分類】
【出願番号】特願2008−310897(P2008−310897)
【出願日】平成20年12月5日(2008.12.5)
【出願人】(000005496)富士ゼロックス株式会社 (21,908)
【Fターム(参考)】