(57)【要約】【課題】ＯＳのオーバーヘッドを少なくすることができ、アクセス違反によるデータ破壊を抑制するとともに、アクセス違反の再発防止が可能な画像処理装置を提供する。【解決手段】この画像処理装置１は、システムメモリ７を初期化する際、不揮発性記憶部８に保存されているメモリアクセス違反の履歴情報を参照して前回メモリアクセス違反を発生したタスクに係るスタック領域の仮想アドレスを仮想アドレス領域の空き領域に拡張するメモリ資源初期化手段を備える。【選択図】図１
2010134748.tif 000002
【特許請求の範囲】
【請求項１】
複数のタスクを実行するアプリケーションによりアクセスされるメモリと、
前記複数のタスクに対応して前記メモリ上に連続して設定された複数のスタック領域に対応する仮想アドレスを、仮想アドレス領域に離散的にマッピングする仮想アドレス離散配置手段と、
前記仮想アドレス離散配置手段によりマッピングされた前記仮想アドレスと前記メモリ上に設定された前記複数のスタック領域の物理アドレスとを対応付けるメモリ管理手段と、
前記アプリケーションによる前記メモリへのアクセス違反を検知する検知手段と、
前記検知手段により前記アクセス違反が検知されたとき、前記アクセス違反の内容を保存する保存手段と、
前記メモリを初期化する際、前記保存手段により保存された前記アクセス違反の内容に基づいて前記アクセス違反の発生に係る前記スタック領域の仮想アドレスを前記仮想アドレス領域の空き領域に拡張する初期化手段とを備えた画像処理装置。
【請求項２】
前記保存手段は、前記アクセス違反の内容を履歴情報として不揮発性記憶部に保存する請求項１に記載の画像処理装置。
【請求項３】
前記検知手段により前記アクセス違反が検知されたとき、前記保存手段により保存された前記アクセス違反の内容をクリアしない再起動を行う強制再起動手段を、更に備えた請求項１に記載の画像処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置に関する。
【背景技術】
【０００２】
コンピュータシステムのメモリ方式として、仮想記憶方式が一般に採用されている（例えば、特許文献１参照。）。
【０００３】
特許文献１に記載されたコンピュータシステムは、複数のタスクを実行するアプリケーションによりアクセスされる主記憶メモリと、論理アドレスと主記憶メモリ上の物理アドレスとをページ単位で対応付けたページテーブルと、ペーテーブルに対し、現在実行中のタスクのスタックに対応するページの保護情報を読み書き禁止に設定し、次に実行するタスクのスタックに対応するページの保護情報を読み書き可能に設定するページ情報書き換え手段と、現在実行しているタスクが他のタスクのスタックへアクセスしたとき、ページ保護例外処理を発生するメモリ管理機構とを備える。現在実行しているタスクが他のタスクのスタックへアクセスした場合、現在実行中のタスクが休止状態となり、タクスの暴走を防止することができる。
【特許文献１】特開平１１−１３４２０４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
本発明の目的は、ＯＳのオーバーヘッドを少なくすることができ、アクセス違反によるデータ破壊を抑制するとともに、アクセス違反の再発防止が可能な画像処理装置を提供することにある。
【課題を解決するための手段】
【０００５】
本発明の一態様は、上記目的を達成するため、以下の画像処理装置を提供する。
【０００６】
［１］複数のタスクを実行するアプリケーションによりアクセスされるメモリと、前記複数のタスクに対応して前記メモリ上に連続して設定された複数のスタック領域に対応する仮想アドレスを、仮想アドレス領域に離散的にマッピングする仮想アドレス離散配置手段と、前記仮想アドレス離散配置手段によりマッピングされた前記仮想アドレスと前記メモリ上に設定された前記複数のスタック領域の物理アドレスとを対応付けるメモリ管理手段と、前記アプリケーションによる前記メモリへのアクセス違反を検知する検知手段と、前記検知手段により前記アクセス違反が検知されたとき、前記アクセス違反の内容を保存する保存手段と、前記メモリを初期化する際、前記保存手段により保存された前記アクセス違反の内容に基づいて前記アクセス違反の発生に係る前記スタック領域の仮想アドレスを前記仮想アドレス領域の空き領域に拡張する初期化手段とを備えた画像処理装置。
【０００７】
［２］前記保存手段は、前記アクセス違反の内容を履歴情報として不揮発性記憶部に保存する前記［１］に記載の画像処理装置。
【０００８】
［３］前記検知手段により前記アクセス違反が検知されたとき、前記保存手段により保存された前記アクセス違反の内容をクリアしない再起動を行う強制再起動手段を、更に備えた前記［１］に記載の画像処理装置。
【発明の効果】
【０００９】
請求項１に記載の発明によれば、ＯＳのオーバーヘッドを少なくすることができ、アクセス違反によるデータ破壊を抑制するとともに、アクセス違反の再発防止が可能となる。
【００１０】
請求項２に記載の発明によれば、電源オフ後もアクセス違反の内容を保存することができる。
【００１１】
請求項３に記載の発明によれば、不揮発性記憶部を有していなくてもアクセス違反の発生原因を特定し、アクセス違反の再発防止が可能となる。
【発明を実施するための最良の形態】
【００１２】
［第１の実施の形態］
図１は、本発明の第１の実施の形態に係る画像処理装置の概略の構成を示すブロック図である。
【００１３】
この画像処理装置１は、操作表示部２と、画像入力部３と、画像出力部４と、通信部５と、制御部６と、システムメモリ７と、不揮発性記憶部８とを備え、１又は２以上の画像処理用アプリケーションによって複数のタスクを実行するように構成されている。画像処理用アプリケーションは、オペレーティングシステム（ＯＳ）上で動作し、ＯＳによりメモリ管理がなされている。
【００１４】
操作表示部２は、ユーザの操作により、表示、設定、入力、指示が可能なタッチパネル及びハードスイッチを備える。
【００１５】
画像入力部３は、原稿から画像をＣＣＤ（Charge Coupled Device）等の固体撮像素子により光学的に読み取るものである。
【００１６】
画像出力部４は、画像を電子写真プロセス方式、インクジェット方式、感熱転写方式等により用紙に印刷するものである。
【００１７】
通信部５は、ＵＳＢ（Universal Serial Bus）、PCI Express等のシリアルインタフェースやイーサネット（登録商標）等のインタフェースを用いてコンピュータ（ＰＣ）等の外部装置との間で通信が可能に構成されている。
【００１８】
システムメモリ７は、画像処理用アプリケーション、後述するページテーブル等が格納され、プログラムや画像データ等を処理するためにデータが一時的に格納される。
【００１９】
不揮発性記憶部８は、例えば、ハードディスクドライブ、フラッシュメモリ等の不揮発性メモリから構成され、各種の履歴情報が格納される。
【００２０】
制御部６は、画像処理制御手段６０と、メモリ資源管理手段６１と、仮想アドレス離散配置手段６２と、メモリアドレス変換手段６３と、ＭＭＵ（Memory Management Unit）６４０及びページテーブル６４１を有するメモリ管理手段６４と、メモリアクセス違反例外処理手段６５と、履歴情報保存手段６６と、メモリ資源初期化手段６７とを備える。これらの手段６０〜６７は、ＣＰＵとプログラム、又はＡＳＩＣ等のハードウェハによって実現することができる。
【００２１】
画像処理制御手段６０は、操作表示部２、画像入力部３及び画像出力部４を制御するとともに、画像入力部３から画像データを入力し、画像データを画像処理して出力画像を生成し、画像出力部４に出力する。
【００２２】
メモリ資源管理手段６１は、システムメモリ７のスタック領域（画像処理用のバッファ領域を含む。）等を管理し、タスクに対して適切なメモリ資源の割り当て・回収を行う。
【００２３】
仮想アドレス離散配置手段６２は、スタック領域を仮想アドレス領域にマッピングする際、隣接する領域が存在しないように、少なくともＭＭＵ６４０が物理メモリを管理するページサイズ分（例えば４ｋＢ）の間隔を空け、かつ、スタック領域がそのページサイズにアライメントされたアドレスにマッピングし、要求があれば仮想アドレスへのマッピングを取り消し、元のマッピングに戻す。
【００２４】
メモリ管理手段６４のＭＭＵ６４０は、内部にトランスレーション・ルックアサイド・バッファ（ＴＬＢ）を有し、ＴＬＢにページテーブル６４１の一部を格納している。ＭＭＵ６４０は、ＣＰＵから出力された仮想アドレスをページテーブル６４１を参照して物理アドレスに変換するとともに、システムメモリ７に対するアクセスを制御し、仮想アドレスに対応する物理アドレスがページテーブルエントリ（ＰＴＥ）に存在しないことでメモリアクセス違反を検知する機能を有する。
【００２５】
メモリ管理手段６４のページテーブル６４１は、仮想ページ番号がインデックスとなっており、ＰＴＥに物理アドレスが格納される構造になっている。ページテーブル６４１は、仮想アドレス離散配置手段６２によってマッピングされた仮想アドレスにシステムメモリ１７上の物理アドレスがページ単位で対応付けられており、ページ単位で書込みの可否と読出しの可否のアクセス情報が設定可能となっている。
【００２６】
メモリアドレス変換手段６３は、ページテーブル６４１の仮想アドレスに対応するＰＴＥにメインメモリ７上の物理アドレスを設定する。
【００２７】
メモリアクセス違反例外処理手段６５は、ＭＭＵ６４０がメモリアクセス違反を検知したとき、例外処理を実行する。
【００２８】
履歴情報保存手段６６は、不揮発性記憶部８に履歴情報格納領域を確保し、そこに必要な履歴情報を書き込む。履歴情報を書き込むケースには、通常のタスクから呼び出して書き込むケース、ＯＳ内部の状態を書き込むケース等がある。これに更に、割り込みや例外処理のコンテクストで履歴情報を書き込むようにし、上記メモリアクセス違反例外処理手段６５の処理として例外履歴情報を書き込む。
【００２９】
また、履歴情報保存手段６６は、不揮発性記憶部８に格納されている履歴情報を、操作表示部２からの要求に基づいて操作表示部２に出力し、又は通信部５に接続された外部装置からの要求に基づいて外部装置に出力する。外部装置は、エミュレータソフト等を用いることにより、不揮発性記憶部８から出力された履歴情報をファイルとして保存することができる。
【００３０】
メモリ資源初期化手段６７は、メモリアクセス違反の発生後の再起動時（システム初期化時）に、システムメモリ７を含むメモリ資源を初期化するものであり、不揮発性記憶部８に保存された履歴情報のうち、メモリアクセス違反に関する例外処理ログに基づいて、物理アドレス領域に空き領域が存在し、かつ、システムメモリ７の物理アドレス領域に空き領域が存在するとき、前回メモリアクセス違反を発生したタスクに係るスタック領域の仮想アドレスを仮想アドレス領域の空き領域に拡張する処理を行う。
【００３１】
図２は、メモリ管理方法を説明するための図である。仮想アドレス離散配置手段６２は、複数のタスクに対応してシステムメモリ７上に連続して設定された複数のスタック領域に対応する仮想アドレスを、仮想アドレス領域７１に離散的にマッピングする。例えば、図２に示すように、物理アドレス領域７０上のタスクＡ用のスタック領域７０ａ、タスクＢ用のスタック領域７０ｂ、及びタスクＣ用のスタック領域７０ｃは、仮想アドレス領域７１上のタスクＡ用のスタック領域７１ａ、タスクＢ用のスタック領域７１ｂ、及びタスクＣ用のスタック領域７１ｃに対応し、スタック領域７１ａ〜７１ｃの間に空き領域７２ａ，７２ｂが形成される。ページテーブル６４１の各ページ６４１ａ、６４１ｂ、６４１ｃには、スタック領域７１ａ〜７１ｃに対応して物理アドレスと仮想アドレスとの変換情報等が設定される。
【００３２】
（画像処理装置の動作）
次に、画像処理装置１の動作を、メモリアクセス違反を中心に説明する。例えば、画像処理用プログラムがタスクＢを実行中にタスクＢ用のスタック領域７１ｂにおいてオーバーフロー（メモリアクセス違反）が発生すると、ＭＭＵ６４０がそのメモリアクセス違反を検知し、それをメモリアクセス違反例外処理手段６５に通知する。
【００３３】
メモリアクセス違反例外処理手段６５は、タスクＢの処理の停止等の例外処理を行う。履歴情報保存手段６６は、メモリアクセス違反例外処理手段６５の指示により履歴情報記憶部８にメモリアクセス違反の履歴情報を格納する。履歴情報として、例えば、メモリアクセス違反の発生場所、発生時刻等がある。
【００３４】
履歴情報保存手段６６は、外部装置から通信部５を介して履歴情報の読み出し要求があると、履歴情報記憶部８から履歴情報を読み出して通信部５を介して外部装置に出力する。また、履歴情報保存手段６６は、操作表示部２から履歴情報の読み出し要求があると、履歴情報記憶部８から履歴情報を読み出して操作表示部２に出力する。
【００３５】
図３及び図４は、操作表示部２又は外部装置の表示部への履歴情報の出力例であって、図３は、履歴情報の種類を選択する履歴情報操作メニュー画面の一例を示す図、図４は、図３の履歴情報操作メニュー画面において履歴情報として例外処理ログを選択した場合の例外処理ログ画面を示す図である。
【００３６】
図３に示す履歴情報操作メニュー画面１００には、「履歴の表示」１１０の対象として、全ての種類の履歴を示す「全て表示」項目１１１、タスクが出力した履歴を示す「タスク出力ログ」項目１１２、システムが処理した履歴を示す「システムログ」項目１１３、割込み処理の履歴を示す「割り込み処理ログ」項目１１４、及び例外処理の履歴を示す「例外処理ログ」項目１１５等が表示される。「履歴の消去」１２０の対象には、「履歴の表示」１１０と同様に上記の項目１１１〜１１５が含まれる。スクロールボタン１３０，１３１を操作することにより、他のログを画面１００に表示することができる。
【００３７】
図３に示す履歴情報操作メニュー画面１００において、「例外処理ログ」項目１１５を選択すると、図４に示す例外処理ログ画面２００が操作表示部２又は外部装置の表示部に表示される。例外処理ログ画面２００には、メモリアクセス違反の発生した時刻２１０、エラー内容２１１、ＣＰＵのレジスタに関する情報（レジスタＮｏ.、プログラムカウンタ、関数の戻りアドレス等）２１２等が表示される。また、この例外処理ログ画面２００には、ログをファイルとして保存するＦ１キー２１３や、Ｆ２キー２１４、ＢＳキー２１５、Ｅｓｃキー２１６、スクロールバー２２０等が表示される。
【００３８】
メモリアクセス違反が発生した後の再起動時（システム初期化時）に、メモリ資源初期化手段６７は、システムメモリ７を含むメモリ資源の初期化を行う。
【００３９】
図５は、メモリ資源初期化手段６７によるメモリ資源の初期化動作を示す図である。初期化前に画像形成用アプリケーションがタスクＢを実行中に仮想アドレス７１ｂにおいてオーバーフローを発生したとする。この場合、不揮発性記憶部８に履歴情報としてタスクＢの実行中にオーバーフローが発生したことが記録される。メモリ資源初期化手段６７は、不揮発性記憶部８に保存された履歴情報のうち、メモリアクセス違反に関する例外処理ログに基づいて、仮想アドレス領域７１に空き領域が存在し、システムメモリ７の物理アドレス領域７０に空き領域が存在するか否かを判断し、仮想アドレス領域７１に空き領域が存在し、かつ、システムメモリ７の物理アドレス領域７０に空き領域が存在するとき、前回メモリアクセス違反を発生したタスクＢ用に一時バッファ領域７０ｂ’を確保し、仮想アドレス領域７１のスタック領域７１ｂに隣接する空き領域７２ｂをタスクＢ用のスタック領域７１ｂ’として確保する。画像処理用アプリケーションは、タスクＢを実行するとき、スタック領域７１ｂ及び一時バッファ領域７０ｂ’を使用する。
【００４０】
（比較例）
図６は、比較例を示す図である。この比較例は、第１の実施の形態のように、仮想アドレス離散配置手段６２を有しておらず、メモリアドレス変換手段６３の代わりにメモリ属性変換手段６８を設けたものであり、物理アドレス領域７０のスタック領域７０ａ〜７０ｃに対応して仮想アドレス領域７１に連続してスタック領域７１ａ〜７１ｃがマッピングされる。実行中以外のスタック領域のデータがメモリアクセス違反によって破壊されないようにするため、メモリ属性変換手段６２は、実行するタスクを変更する度にページテーブル６４１のページ６４１ａ〜６４１ｃに対しアクセス情報を書き換える。同図は、タスクＢを実行中の場合を示し、タスクＢに対応するページ６４１ｂには、アクセス情報として「書込み可」が設定され、タスクＡ、Ｂに対応するページ６４１ａ，６４１ｃには、アクセス情報として「書込み不可」が設定される。
【００４１】
本実施の形態によれば、比較例のようにタスクを変更する度にメモリ属性を書き換える必要がなくなり、ＯＳのオーバーヘッドが少なくなる。また、メモリアクセス違反が発生したとき、スタック領域のデータ破壊が抑制され、アクセス違反の再発防止が可能となる。
【００４２】
［第２の実施の形態］
図７は、本発明の第２の実施の形態に係る画像処理装置の概略の構成を示すブロック図である。
【００４３】
本実施の形態は、第１の実施の形態において、揮発性記憶部８及び履歴情報保存手段６６を省き、強制再起動手段６９を設けたものであり、他は第１の実施の形態と同様に構成されている。強制再起動手段６９は、ＣＰＵとプログラム、又はＡＳＩＣ等のハードウェアによって実現することができる。
【００４４】
強制再起動手段６９は、画像処理用プログラムがタクスを実行中にメモリアクセス違反が発生し、タクスの処理が停止した後、メモリアクセス違反例外処理手段６５の指示によりメモリ（アクセス違反の内容を含む。）をクリアしない再起動を強制的に行う。
【００４５】
メモリ資源初期化手段６７は、再起動した際に、メモリアクセス違反例外処理手段６５の処理として、図４に示すような例外処理ログに基づいて第１の実施の形態と同様にシステムメモリ７を含むメモリ資源の初期化を行う。
【００４６】
本実施の形態によれば、タスクを変更する度にメモリ属性を書き換える必要がなくなり、ＯＳのオーバーヘッドが少なくなる。また、メモリアクセス違反が発生したとき、スタック領域のデータ破壊が抑制され、不揮発性記憶部を有していなくても再起動時に出力される例外処理ログに基づいてスタック領域を拡張して初期化を行うことができる。
【００４７】
［他の実施の形態］
なお、本発明は、上記各実施の形態に限定されず、その要旨を変更しない範囲内で種々な変形が可能である。
【図面の簡単な説明】
【００４８】
【図１】図１は、本発明の第１の実施の形態に係る画像処理装置の概略の構成を示すブロック図である。
【図２】図２は、メモリ管理方法を説明するための図である。
【図３】図３は、履歴情報操作メニュー画面の一例を示す図である。
【図４】図４は、例外処理ログ画面を示す図である。
【図５】図５は、メモリ資源の初期化を説明するための図である。
【図６】図６は、比較例を示す図である。
【図７】図７は、本発明の第２の実施の形態に係る画像処理装置の概略の構成を示すブロック図である。
【符号の説明】
【００４９】
１…画像処理装置、２…操作表示部、３…画像入力部、４…画像出力部、５…通信部、６…制御部、７…システムメモリ、８…不揮発性記憶部、６０…画像処理制御手段、６１…メモリ資源管理手段、６２…仮想アドレス離散配置手段、６３…メモリアドレス変換手段、６４…メモリ管理手段、６５…メモリアクセス違反例外処理手段、６６…履歴情報保存手段、６７…メモリ資源初期化手段、６８…メモリ属性変換手段、６９…強制再起動手段、７０…物理アドレス領域、７０ａ〜７０ｃ…スタック領域、７１…仮想アドレス領域、７１ａ〜７１ｃ…スタック領域、７２ａ，７２ｂ…空き領域、１００…履歴情報操作メニュー画面、１１０…「履歴の表示」、１１１…「全て表示」項目、１１２…「タスク出力ログ」項目、１１３…「システムログ」項目１１３、１１４…「割り込み処理ログ」項目、１１５…「例外処理ログ」項目、１２０…「履歴の消去」、１３０，１３１…スクロールボタン、２００…例外処理ログ画面、２１０…時刻、２１１…エラー内容、２１２…ＣＰＵのレジスタに関する情報、２１３…Ｆ１キー、２１４…Ｆ２キー、２１５…ＢＳキー、２１６…Ｅｓｃキー、２２０…スクロールバー、６４０…ＭＭＵ、６４１…ページテーブル
【図１】
2010134748.tif 000003
【図２】
2010134748.tif 000004
【図３】
2010134748.tif 000005
【図４】
2010134748.tif 000006
【図５】
2010134748.tif 000007
【図６】
2010134748.tif 000008
【図７】
2010134748.tif 000009