(57)【要約】【課題】  従来は、アプリケーションプログラムを終了しない限りメインメモリの内容が消去されないため、不揮発のメインメモリを備えた装置では、メインメモリの内容が保持されたままとなる。【解決手段】  ＣＰＵと、不揮発のメインメモリとを有する情報処理装置とその制御方法であって、アプリケーションの実行時に前記メインメモリにメモリ領域を確保し、そのアプリケーションが、そのメモリ領域の使用を終了すると、そのメモリ領域に記憶されている情報を消去して、そのメモリ領域を解放する。【選択図】  図６
2015095001.tif 000002
【特許請求の範囲】
【請求項１】
ＣＰＵと、不揮発のメインメモリとを有する情報処理装置であって、
アプリケーションの実行時に前記メインメモリにメモリ領域を確保する確保手段と、
前記アプリケーションが前記メモリ領域の使用を終了すると、前記メモリ領域に記憶されている情報を消去して前記メモリ領域を解放する解放手段と、
を有することを特徴とする情報処理装置。
【請求項２】
前記確保手段は、前記アプリケーションがメモリ領域を確保するためのサブルーチンをコールし、当該サブルーチンがシステムコール呼び出し命令によりオペレーティングシステムのメモリ領域を確保するためのサブルーチンをコールして実行されることを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記解放手段は、前記アプリケーションがメモリ領域を解放するためのサブルーチンをコールし、当該サブルーチンがシステムコール呼び出し命令によりオペレーティングシステムのメモリ領域を解放するためのサブルーチンをコールして実行されることを特徴とする請求項１に記載の情報処理装置。
【請求項４】
前記オペレーティングシステムのメモリ領域を確保するためのサブルーチン、或いは前記オペレーティングシステムのメモリ領域を解放するためのサブルーチンは、前記ＣＰＵがスーパーバイザモードで実行されることを特徴とする請求項１乃至３のいずれか１項に記載の情報処理装置。
【請求項５】
前記メモリ領域は、前記不揮発のメインメモリのヒープ領域に確保されることを特徴とする請求項１乃至４のいずれか１項に記載の情報処理装置。
【請求項６】
前記ヒープ領域の使用状態を示す情報を記憶する記憶手段を更に有し、前記オペレーティングシステムのメモリ領域を確保するためのサブルーチンの実行時、前記ＣＰＵは、前記情報を参照して前記ヒープ領域の未使用領域に前記メモリ領域を確保することを特徴とする請求項２に記載の情報処理装置。
【請求項７】
前記解放手段は、前記メモリ領域に所定の値を書き込むことによって前記メモリ領域に記憶されている情報を消去することを特徴とする請求項１乃至６のいずれか１項に記載の情報処理装置。
【請求項８】
ＣＰＵと、不揮発のメインメモリとを有する情報処理装置の制御方法であって、
アプリケーションの実行時に前記メインメモリにメモリ領域を確保する確保工程と、
前記アプリケーションが前記メモリ領域の使用を終了すると、前記メモリ領域に記憶されている情報を消去して前記メモリ領域を解放する解放工程と、
を有することを特徴とする情報処理装置の制御方法。
【請求項９】
コンピュータを、請求項１乃至７のいずれか１項に記載の情報処理装置として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、その制御方法とプログラムに関する。
【背景技術】
【０００２】
従来、画像形成装置を含む情報処理装置では、ＣＰＵが実行するプログラムや様々なデータを保持するメインメモリに、コストと読み書き速度の観点から、例えばＤＲＡＭのような揮発性メモリを用いるのが一般的である。フラッシュメモリのような低コストの不揮発メモリは読み書き速度が遅いため、メインメモリとして使用するには不適である。しかし近年、例えばＭＲＡＭのような高速に読み書きできる不揮発性メモリが低コストで利用できるようになったため、これをメインメモリに用いた電子機器が現実的となっている。
【０００３】
メインメモリにＭＲＡＭのような不揮発メモリを採用した画像形成装置では、ＤＲＡＭを主記憶メモリとして用いた従来の装置と異なり、画像形成装置の電源をオフにしても、メインメモリの内容が残存する。このように装置の電源をオフにしても、メインメモリに記憶されている内容がそのまま残ってしまうため、セキュリティの面で情報が漏洩するというリスクをはらんでいることになる。
【０００４】
従来の装置では、アプリケーションプログラムがメインメモリの一部に格納された後、そのアプリケーションの利用が終了しても、メインメモリのプログラム領域を占有した状態である場合が多かった。例えば、画像形成装置の操作部を操作してＦＡＸの宛先を入力すると、その宛先はメインメモリの一部に保持され、その情報が不要となっても、別のデータで上書きされるまで、その情報は保持されたままであった。なぜならば従来のＤＲＡＭをメインメモリとして用いた装置では、その電源をオフにすることによりメモリの内容が消失されるため、敢えてメインメモリの内容を消去する必要がないためである。しかし、メインメモリに不揮発メモリを用いた画像形成装置では、例えば、その装置が盗まれた場合は、そのメインメモリに記憶されている内容が第三者により取得され、重要な情報が漏洩するおそれがある。
【０００５】
このような事態を防止するために、揮発性のメインメモリを想定して作成されたアプリケーションプログラムを、メインメモリの内容を消去するように変更することが考えられるが、これには多くのコストがかかる。このため従来から存在するアプリケーションプログラムを変更することなく、不揮発のメインメモリに起因する情報の漏洩を防止する技術が望まれている。例えば特許文献１は、情報処理装置上で実行していたアプリケーションプログラムを終了する際に、そのアプリケーションプログラムが使用していたメインメモリのメモリ領域の内容を消去する技術を提案している。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００６−４８５０６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
一般的な画像形成装置のような組み込み機器では、実行しているアプリケーションプログラムを終了させることが無い。例えば、ＦＡＸ機能を備えた画像形成装置はＦＡＸアプリケーションを有しており、このＦＡＸアプリケーションは、電話回線を通じて画像データが着信するのを常に待ち受けて受信した画像データを印刷する。ＦＡＸデータはいつ送信されてくるか分からないため、このＦＡＸアプリケーションは常に実行されており、そのアプリケーションが終了することはない。これはＦＡＸ機能に限らず、また、画像形成装置以外の組み込み機器において通常よくみられる構成である。このように従来は、アプリケーションプログラムを終了しない限りメインメモリの内容が消去されないため、不揮発のメインメモリを備えた装置では、メインメモリの内容が保持されたままとなり、重要な情報が漏洩する可能性がある。また不揮発性のメインメモリを備えた画像形成装置が盗まれた場合は、不揮発性に記憶されているメインメモリの内容が第三者により読み取られて重要な情報が漏洩する可能性がある。
【０００８】
本発明の目的は、上記従来技術の問題点を解決することにある。
【０００９】
本発明の特徴は、アプリケーションプログラムを終了しない場合でも、不揮発のメインメモリからデータを消去して、情報の漏洩を防ぐ技術を提供することにある。
【課題を解決するための手段】
【００１０】
上記目的を達成するために本発明の一態様に係る情報処理装置は以下のような構成を備える。即ち、
ＣＰＵと、不揮発のメインメモリとを有する情報処理装置であって、
アプリケーションの実行時に前記メインメモリにメモリ領域を確保する確保手段と、
前記アプリケーションが前記メモリ領域の使用を終了すると、前記メモリ領域に記憶されている情報を消去して前記メモリ領域を解放する解放手段と、を有することを特徴とする。
【発明の効果】
【００１１】
本発明によれば、アプリケーションプログラムを終了しない場合でも、不揮発のメインメモリからデータを消去して、情報の漏洩を防ぐことができるという効果がある。
【００１２】
また、揮発性のメインメモリを想定して作成されたアプリケーションプログラムを変更することなく、不揮発性のメインメモリを用いた場合でも情報の漏洩を防ぐことができるという効果がある。
【図面の簡単な説明】
【００１３】
【図１】本発明の実施形態１に係る画像形成装置の構成を示すブロック図。
【図２】実施形態１に係るコントローラの構成を説明するブロック図。
【図３】実施形態１に係るメインメモリであるＭＲＡＭのメモリマップを説明する図。
【図４】実施形態１に係る画像形成装置においてヒープ領域を利用する状態を説明する図。
【図５】実施形態１に係る画像形成装置による複写動作の概略を説明するフローチャート。
【図６】実施形態１に係る画像形成装置のＣＰＵが実行するメモリ領域を確保する処理を説明するフローチャート。
【図７】実施形態１に係る画像形成装置のＣＰＵがメモリ領域を解放するときの処理を説明するフローチャート。
【図８】実施形態２に係る画像形成装置において、ＣＰＵがメモリ領域を解放する処理を説明するフローチャート。
【発明を実施するための形態】
【００１４】
以下、添付図面を参照して本発明の実施形態を詳しく説明する。尚、以下の実施形態は特許請求の範囲に係る本発明を限定するものでなく、また本実施形態で説明されている特徴の組み合わせの全てが本発明の解決手段に必須のものとは限らない。本実施形態では、本発明に係る情報処理装置を画像形成装置を例に説明する。
【００１５】
図１は、本発明の実施形態１に係る画像形成装置１００の構成を示すブロック図である。
【００１６】
コントローラ（制御部）１０１は、スキャナ部１０２、プリンタ部１０３、操作部１０４、ＦＡＸ部１０５、記憶部１０６、ＬＡＮ１０７と接続し、これらの動作を制御している。スキャナ部１０２は、原稿の画像を光学的に読み取りデジタル画像に変換して出力する。プリンタ部１０３は、画像データに基づいて画像を紙などのシート（記録媒体）に印刷する。操作部１０４はユーザインターフェースを構成し、ユーザはこの操作部１０４を操作して画像形成装置１００に動作等を指示する。記憶部１０６はハードディスクドライブ（ＨＤＤ）等の記憶部で、デジタル画像や制御プログラム等を記憶している。ＦＡＸ部１０５は、電話回線等にデジタル画像をファクシミリ信号として送信し、また電話回線等を介してファクシミリ信号を受信する。この画像形成装置１００は、ＬＡＮ１０７経由でコンピュータ１０９との間でデジタル画像データの入出力、ジョブの発行や機器の指示等も行うことができる。
【００１７】
スキャナ部１０２は、原稿束を載置して一枚ずつスキャナユニット１１１に搬送する原稿給紙ユニット１１０、原稿を光学的にスキャンしてデジタル画像データに変換するスキャナユニット１１１を有し、変換された画像データはコントローラ１０１に送信される。プリンタ部１０３は、紙束から一枚ずつ給紙する給紙ユニット１２２、給紙した紙に画像を印刷するマーキングユニット１２１、印刷後の紙を排紙する排紙ユニット１２３を有する。
【００１８】
操作部１０４は、ユーザが画像形成装置１００に画像の複写等の動作を指示したり、画像形成装置１００の各種情報をユーザに提示したりするための非図示の操作ボタン及び液晶等の表示パネルを備える。尚、この表示パネルは、タッチパネルであっても良い。
【００１９】
次に、この画像形成装置１００が有する機能について簡単に説明する。
・複写機能
スキャナ部１０２が原稿を読み取って得られた画像データをＨＤＤ１０６に保存し、プリンタ部１０３に出力して印刷する。
・画像送信機能
スキャナ部１０２が原稿を読み取って得られた画像データをＬＡＮ１０７を介してコンピュータ１０９に送信する。
・画像保存機能
スキャナ部１０２が原稿を読み取って得られた画像データをＨＤＤ１０６に記憶し、必要に応じて送信や印刷を行なう。
・画像印刷機能
コンピュータ１０９から受信した、例えばページ記述言語の印刷ジョブを解析し、プリンタ部１０３で印刷する。
・ＦＡＸ送信機能
スキャナ部１０２が原稿を読み取って得られた画像データをＦＡＸ部１０５を介して電話回線へ送信する。
・ＦＡＸ受信機能
電話回線からＦＡＸ部１０５を介して受信した画像データをプリンタ部１０３で印刷する。
【００２０】
図２は、実施形態１に係るコントローラ１０１の構成を説明するブロック図である。
【００２１】
コントローラ１０１は、いわゆる汎用的なＣＰＵを含む回路である。全体を制御するＣＰＵ２０１、ＣＰＵ２０１がメインメモリとして使用するＭＲＡＭ２０２を備える。ＭＲＡＭ２０２は高速に読み書き可能な不揮発性メモリである。またストレージ装置を制御するディスクコントローラ２０４は、半導体デバイスで構成された比較的小容量なストレージ装置であるフラッシュディスク（ＳＳＤ等）２０５及びＨＤＤ１０６を接続し、それらへの読み書きを制御している。フラッシュディスク２０５は、ＣＰＵ２０１が実行するオペレーティングシステム（ＯＳ）やアプリケーションプログラム等のプログラムを格納している。コントローラ１０１は更に、リアルタイムでデジタル画像処理を行なう画像処理プロセッサ２０６を有する。画像処理プロセッサ２０６には、プリンタインターフェース２０７とスキャナインターフェース２０８を介して、プリンタ部１０３とスキャナ部１０２とそれぞれが接続されている。またコントローラ１０１には、外部に操作部１０４、ＦＡＸ部１０５が接続される。また、ネットワークインターフェース２０３を介してＬＡＮ１０７が接続されている。
【００２２】
尚、この図２はブロック図であり簡略化している。例えばＣＰＵ２０１等にはチップセット、バスブリッジ、クロックジェネレータ等のＣＰＵの周辺ハードウェアが多数含まれているが、本実施形態の説明では需要でないため省略して示している。
【００２３】
図３は、実施形態１に係るメインメモリであるＭＲＡＭ２０２のメモリマップを説明する図である。
【００２４】
画像形成装置１００の電源がオンされると、ＣＰＵ２０１はフラッシュディスク２０５からＯＳ及びアプリケーションプログラムをＭＲＡＭ２０２へロードして、その実行を開始する。図３は、アプリケーションの実行が開始された後のＭＲＡＭ２０２のデータ構成を示す図である。
【００２５】
ヒープ領域３０１は、この画像形成装置１００が各種ジョブを実行する際に作業用メモリとして利用するための領域である。ヒープ領域３０１は、複写機能やＦＡＸ送信機能のような複数の機能によって共有されており、各機能は必要に応じてヒープ領域３０１にメモリ領域を確保して使用する。これは画像形成装置１００の各機能は必ずしも同時に利用されるわけではないためである。例えば、複写機能とＦＡＸ送信機能はどちらもスキャナ部１０２を利用する機能であるから、ユーザがこれらの機能を同時に使用することはない。
【００２６】
図４は、実施形態１に係る画像形成装置１００で、ヒープ領域３０１を利用する状態を説明する図である。
【００２７】
図４（Ａ）は、プログラムが実行されていないアイドル状態のときのヒープ領域３０１を示す。このアイドル状態では、ヒープ領域３０１には特別なメモリ領域が確保されていない。図４（Ｂ）は、複写機能を使用する際を示し、このときはヒープ領域３０１の一部を複写用の画像データ領域４０１として割り当てる。図４（Ｃ）は、ＦＡＸ機能を使用する状態を示し、ファクシミリ送信用の画像データを格納するＦＡＸ画像データ領域４０２及びファクシミリの宛先情報を格納する宛先情報領域４０３をそれぞれ割り当てる。このように複数の機能で共有するヒープ領域３０１を設けることによって、各機能のために個別のメモリ領域を用意する必要がなく、有限な資源であるＭＲＡＭ２０２を有効に利用できる。
【００２８】
再び図３に戻り、複写機能アプリ３０２、画像送信機能アプリ３０３、ＦＡＸ機能アプリ３０４は、画像形成装置１００の各機能を実現するためにＣＰＵ２０１が実行するアプリケーションプログラムである。これらアプリケーションプログラムは、画像形成装置１００の電源がオンの間は常に実行中で、アプリケーションの実行が終了することはない。もちろんこの構成は一例であって、更に、多数のアプリケーションプログラムを備えた構成であってもよい。
【００２９】
共有ライブラリ３０５は、上記の複数のアプリケーションプログラムの実行中に共通して実行される処理を、アプリケーションプログラムから呼び出し可能なサブルーチンとして抽出したプログラム領域である。一般的に共有ライブラリには、複数のサブルーチンが記憶される。本実施形態１に係る共有ライブラリ３０５は、ＯＳの持つ機能をアプリケーションプログラムから利用するための処理をサブルーチンとして抽出したものである。このようなＯＳの持つ機能を利用するための処理を共有ライブラリとして抽出するのは、ＯＳを備えたコンピュータシステムの一般的な構成である。
【００３０】
共有ライブラリ３０５は、メモリ確保サブルーチン３１１及びメモリ解放サブルーチン３１２を含む。メモリ確保サブルーチン３１１は、ＯＳの機能を呼び出し、アプリケーションプログラムの動作に必要なメモリ領域を、ヒープ領域３０１に割り当てる処理を行うプログラムである。メモリ解放サブルーチン３１２は、ＯＳの機能を呼び出し、メモリ確保サブルーチン３１１により割り当てられたヒープ領域３０１のメモリ領域の利用終了をＯＳに通知するプログラムである。上述のアプリケーションプログラムは全て、ヒープ領域３０１を利用した動作を実行する際、これらメモリ確保サブルーチン３１１及びメモリ解放サブルーチン３１２を呼び出すように構成されている。
【００３１】
オペレーティングシステム（ＯＳ）３０６は、コントローラ１０１を制御するＯＳがロードされているメモリ領域である。ＯＳはＭＲＡＭ２０２を含む画像形成装置１００の資源管理の機能を提供しており、メモリ確保システムコール３２１、メモリ解放システムコール３２２、ヒープ領域使用状態リスト３２３を含む。メモリ確保システムコール３２１は、ＯＳの機能の一つであるヒープ領域３０１にメモリ領域を割り当てる処理を実現するためのプログラムである。ヒープ領域３０１内で現在アプリケーションプログラムによって使用されていないメモリ領域の一部分を確保して、要求したアプリケーションプログラムに割り当てる。メモリ解放システムコール３２２は、ＯＳの機能の一つであるヒープ領域３０１へのメモリ領域の割り当てを解除するためのプログラムである。メモリ解放システムコール３２２によって、ヒープ領域３０１の、そのアプリケーションプログラムに対して割り当てられたメモリ領域の割り当てを解除する。
【００３２】
ヒープ領域使用状態リスト３２３は、ヒープ領域３０１の管理に利用される。メモリ確保システムコール３２１が実行されて、ヒープ領域３０１に割り当てたメモリ領域のアドレス（番地）の範囲をヒープ領域使用状態リスト３２３に登録する。このリストを参照することにより、メモリ確保システムコール３２１の実行中に、ヒープ領域３０１で未だアプリケーションプログラムに割り当てていないメモリ領域がどこにあるかを識別できる。メモリ解放システムコール３２２を実行すると、ヒープ領域使用状態リスト３２３に記録されていたメモリ領域を示す番地情報は消去される。
【００３３】
一般的に現代のＣＰＵは、メインメモリのＯＳが存在しているメモリ領域に対して、アプリケーションプログラムがアクセスできないようにプロテクトする機能を備えている。これはアプリケーションプログラムの不具合や誤動作によってＯＳの機能が損なわれるのを防止するためである。そうしたＣＰＵには、一般にスーパーバイザモードと呼ばれる実行モードが備えられており、この実行モードに切り替えることで、ＣＰＵはプロテクトされたメモリ領域へアクセスできるようになる。ＣＰＵ２０１は、スーパーバイザモードでＯＳのプログラムを実行する。オペレーティングシステム３０６のメモリ領域はプロテクトされており、ヒープ領域使用状態リスト３２３も、このプロテクトされたメモリ領域の内部にある。もちろん上記のようなＭＲＡＭ２０２の構成はあくまで一例であって、本発明はこれに限定されるものではない。
【００３４】
次に、実施形態１に係るコントローラ１０１が実行する画像形成動作を複写処理を例に図５を参照して説明する。
【００３５】
図５は、実施形態１に係る画像形成装置１００による複写動作の概略を説明するフローチャートである。この処理は、ユーザが操作部１０４から画像複写を指示して、ＣＰＵ２０１が複写機能アプリ３０２を実行することにより実行される。尚、この処理を実行するプログラムはＨＤＤ１０６にインストールされており、実行時ＭＲＡＭ２０２に展開され、ＣＰＵ２０１の制御の下に実行される。
【００３６】
まずＳ５０１でＣＰＵ２０１は、ユーザからの画像形成指示を待っている。ここで操作部１０４を介してユーザから複写動作の開始指示、及び複写枚数などの必要なパラメータ入力を受け取るとＳ５０２へ処理を進める。そうでない場合は引き続きＳ５０１でユーザからの指示を待ちうける。Ｓ５０２でＣＰＵ２０１は、画像データ等の複写動作に必要なデータを格納するためのメモリ領域が必要となるため、ＯＳの機能を呼び出して、ヒープ領域３０１にメモリ領域を確保する。このメモリ領域の確保処理の詳細については後述する。
【００３７】
図４（Ｂ）は、複写用の画像データを記憶するメモリ領域を確保した後のヒープ領域３０１の状態を示し、ヒープ領域３０１に複写画像データ領域４０１が確保されている。
【００３８】
次にＳ５０３に進みＣＰＵ２０１は、画像処理プロセッサ２０６に対し画像データの格納先として複写画像データ領域４０１を設定し、スキャナインターフェース２０８を介してスキャナ部１０２に原稿の読み取り命令を送る。これによりスキャナ部１０２は、原稿を光学スキャンし、その原稿の画像をデジタル画像データに変換して画像処理プロセッサ２０６に入力する。画像処理プロセッサ２０６は、その画像データに画像処理を施して複写画像データ領域４０１に格納する。
【００３９】
次にＳ５０４に進みＣＰＵ２０１は、Ｓ５０３でデジタル画像データが複写画像データ領域４０１に一定量もしくは全て入ったことを確認すると、プリンタインターフェース２０７を介してプリンタ部１０３に印刷指示を出す。この時、ＣＰＵ２０１は画像処理プロセッサ２０６に、画像データの入力元として複写画像データ領域４０１を設定する。これにより画像処理プロセッサ２０６は、複写画像データ領域４０１から画像データを読み出してプリンタ部１０３に送信する。こうしてプリンタ部１０３により、シート上に画像が印刷される。
【００４０】
次にＳ５０５に進みＣＰＵ２０１は、プリンタ部１０３による画像の印刷処理の完了を待ちうける。印刷完了を検出するとＳ５０６へ、そうでない場合は引き続いてＳ５０５で完了を待ちうける。Ｓ５０６でＣＰＵ２０１は、画像データ等を格納するためのメモリ領域を使い終えたため、ＯＳの機能を呼び出してヒープ領域３０１に確保しているメモリ領域を解放するためのメモリ解放処理を実行する。このメモリ解放処理の詳細は後述する。こうしてメモリ解放処理を実行した後、ヒープ領域３０１の内部は図４（Ａ）のようになっている。その後、ＣＰＵ２０１は再度Ｓ５０１へ戻って、ユーザの指示を待ちうける。
【００４１】
尚、本実施形態１に係る複写機能アプリ３０２では、ＯＳの機能を呼び出してメモリ領域を解放する際、そのメモリ領域の内容を消去する処理は行わない。つまり、Ｓ５０３までの処理を実行することで、画像データが記憶されている状態の複写画像データ領域４０１をそのままの状態でＳ５０６でＯＳの機能を呼び出して解放する。これは従来のＤＲＡＭ等の不揮発性メモリをメインメモリとして利用することを想定して作成されたアプリケーションプログラムの一般的な動作である。
【００４２】
ここでは画像形成装置１００の複数の機能のうち、複写機能を例に説明したが、上述のようにヒープ領域３０１に必要に応じてメモリ領域を確保して画像形成動作を行うなどの基本的な処理の流れは他の機能でも共通である。よって、ここでは複写機能アプリ３０２の動作のみを説明し、画像送信機能アプリ３０３およびＦＡＸ機能アプリ３０４の動作の説明は省略する。
【００４３】
次に本実施形態１に係る画像形成装置１００におけるメモリ領域を確保する動作を図６のフローチャートを参照して説明する。先述の図５の処理を実行している際に、ＣＰＵ２０１はＯＳの機能を呼び出してヒープ領域３０１にメモリ確保を実行しているため、この図６を参照して、より分かり易く説明する。
【００４４】
図６は、実施形態１に係る画像形成装置１００のＣＰＵ２０１が実行するメモリ領域を確保する処理を説明するフローチャートである。尚、この処理を実行するプログラムはＨＤＤ１０６にインストールされており、実行時ＭＲＡＭ２０２に展開され、ＣＰＵ２０１の制御の下に実行される。
【００４５】
Ｓ６０１でＣＰＵ２０１は、共有ライブラリ３０５内のメモリ確保サブルーチン３１１の実行を開始する。アプリケーションプログラムは、サブルーチンの呼び出し時に、割り当てを要求するメモリ領域の大きさをパラメータとして与えるのが一般的である。尚、先述のように、共有ライブラリ３０５は、複数のアプリケーションプログラムが共通して実行する処理をサブルーチンとして抽出したものである。よってＣＰＵ２０１は複写機能アプリ３０２を実行している場合に限らず、画像送信機能アプリ３０３やＦＡＸ機能アプリ３０４を実行していた場合であっても同じメモリ確保サブルーチン３１１を呼び出す。
【００４６】
次にＳ６０２に進みＣＰＵ２０１は、ＯＳの機能であるメモリ領域の確保を実行するためにメモリ確保システムコール３２１を呼び出す。実行可能プログラムであるメモリ確保システムコール３２１は、プロテクトされたメモリ領域にあるため、その実行のためにＣＰＵ２０１は動作モードをスーパーバイザモードに切り替えねばならない。このスーパーバイザモードへの切り替え方法はＣＰＵによって異なるが、システムコール呼び出し命令と呼ばれるＣＰＵ２０１によって実行可能な特別なプログラム命令を用いるのが一般的である。実行可能プログラムであるメモリ確保サブルーチン３１１は、このシステムコール呼び出し命令を含んでいる。
【００４７】
Ｓ６０２でＣＰＵ２０１は、ＣＰＵ２０１の所定のレジスタにメモリ確保システムコール３２１を示す所定の識別番号、及び割り当てを要求するメモリ領域の大きさを格納し、システムコール呼び出し命令を実行する。これによりＣＰＵ２０１は、メモリ確保サブルーチン３１１の実行を中断してスーパーバイザモードに切り替わる。スーパーバイザモードのＣＰＵ２０１は、メモリ確保システムコール３２１の実行を開始してＳ６０３へ進む。これ以降の処理はスーパーバイザモードで実行される。
【００４８】
Ｓ６０３でＣＰＵ２０１は、ヒープ領域３０１の未だアプリケーションプログラムに割り当てていない未使用のメモリ領域を検索する。これはヒープ領域使用状態リスト３２３を参照することで可能である。次にＳ６０４に進みＣＰＵ２０１は、Ｓ６０３で発見した未使用領域から、アプリケーションプログラムが割り当てを要求した大きさの部分を選び出し、アプリケーションプログラムに割り当てるメモリ領域として決定する。そしてＳ６０５に進みＣＰＵ２０１は、Ｓ６０４で割り当てメモリ領域として決定したメモリ領域の番地の情報を、ヒープ領域使用状態リスト３２３に追加する。そしてＳ６０６に進みＣＰＵ２０１は、ＯＳのメモリ確保機能としての動作が完了したので、メモリ確保システムコール３２１の実行を終了する。ここではシステムコール終了命令と呼ばれるＣＰＵ２０１によって実行可能な特別なプログラム命令を用いて、ＣＰＵ２０１のスーパーバイザモードでの動作を終了する。尚、メモリ確保システムコール３２１は、このシステムコール終了命令を含んでいる。こうしてＳ６０６でＣＰＵ２０１は、割り当てたメモリ領域の番地情報を所定のレジスタに格納して、システムコール終了命令を実行する。これによりＣＰＵ２０１はスーパーバイザモードを終了し、中断していたメモリ確保サブルーチン３１１の実行を再開する。
【００４９】
こうしてＳ６０７に進みＣＰＵ２０１は、メモリ確保サブルーチン３１１を実行終了し、サブルーチンを呼び出していたアプリケーションプログラムの実行を再開する。
【００５０】
このようにして本実施形態１に係る画像形成装置１００においてメモリ領域を確保する動作が実行される。
【００５１】
次に、本実施形態１に係る画像形成装置１００の特徴的な動作であるメモリ領域の解放動作を、図７のフローチャートを参照して説明する。これは先述の図５に示す処理を実行している際に、ＣＰＵ２０１は先述のメモリ領域の解放処理により、ヒープ領域３０１に確保されているメモリ領域をＯＳの機能を呼び出して解放するために、この図７を参照して、より分かり易く説明する。
【００５２】
図７は、実施形態１に係る画像形成装置１００のＣＰＵ２０１がメモリ領域を解放するときの処理を説明するフローチャートである。尚、この処理を実行するプログラムはＨＤＤ１０６にインストールされており、実行時ＭＲＡＭ２０２に展開され、ＣＰＵ２０１の制御の下に実行される。
【００５３】
先ずＳ７０１において、共有ライブラリ３０５のメモリ解放サブルーチン３１２の実行を開始する。アプリケーションプログラムは、サブルーチンの呼び出し時に、解放するメモリ領域の番地をパラメータとして与えるのが一般的である。先述のメモリ領域の確保動作と同じく、ＣＰＵ２０１は複写機能アプリ３０２とＦＡＸ機能アプリ３０４のどちらを実行していた場合であっても同じメモリ解放サブルーチン３１２を実行する。
【００５４】
次にＳ７０２に進みＣＰＵ２０１は、ＯＳの機能であるメモリ解放を実行するために、メモリ解放システムコール３２２を呼び出す。このＳ７０２でＣＰＵ２０１は、ＣＰＵ２０１の所定のレジスタにメモリ解放システムコール３２２を示す所定の識別番号、及び解放を要求するメモリ領域の番地を格納してシステムコール呼び出し命令を実行する。これによりＣＰＵ２０１は、メモリ解放サブルーチン３１２の実行を中断し、スーパーバイザモードに切り替わる。スーパーバイザモードでＣＰＵ２０１は、メモリ解放システムコール３２２の実行を開始してＳ７０３へ進む。これ以降の処理はスーパーバイザモードで実行される。
【００５５】
Ｓ７０３でＣＰＵ２０１は、アプリケーションプログラムがメモリ領域を解放した時点で、そのメモリ領域に含まれている内容を消去する。具体的には、ＣＰＵ２０１は事前に決められた所定の値で、そのメモリ領域の全内容を上書きする。例えば、メモリ領域内の全ビットをゼロクリアする。この動作により、そのメモリ領域にそれまで含まれていた内容をＭＲＡＭ２０２から読み出すことは不可能となる。これは従来技術には無い本実施形態１の特徴的な動作である。
【００５６】
次にＳ７０４に進みＣＰＵ２０１は、その解放したメモリ領域の番地の情報をヒープ領域使用状態リスト３２３から削除する。これにより、これ以降、そのメモリ領域は、別のアプリケーションプログラム等からメモリ領域の確保が要求された場合に割り当て対象となり得る。次にＳ７０５に進みＣＰＵ２０１は、ＯＳのメモリ領域の解放機能としての動作が完了したので、メモリ解放システムコール３２２の実行を終了するためにシステムコール終了命令を実行する。これによりＣＰＵ２０１はスーパーバイザモードを終了し、中断していたメモリ解放サブルーチン３１２の実行を再開する。
【００５７】
そしてＳ７０６に進みＣＰＵ２０１は、メモリ解放サブルーチン３１２の実行を終了し、サブルーチンを呼び出していたアプリケーションプログラムの実行を再開する。
【００５８】
このようにして本実施形態１に係る画像形成装置１００におけるメモリ領域の解放動作が行われる。
【００５９】
以上説明したように本実施形態１に係る画像形成装置によれば、アプリケーションプログラムを終了することがない機器であっても、機密を保持する必要のあるデータや宛先情報等をメインメモリから消去できる。これによりメインメモリとしてＭＲＡＭ等の不揮発性メモリを用いる場合であっても、重要な情報が漏洩するのを防ぐことができる。
【００６０】
尚、メモリの消去動作は、メインメモリのメモリ領域の使用し終えた時点で直ちに実行されるので、情報の漏洩を防ぐ必要のあるデータがメインメモリに長く存在することはない。これにより機器の電源がオンのままコンセントを引き抜くなどして盗難にあった場合でも、そのような情報が漏洩する可能性をなくすことができる。
【００６１】
また、メモリの内容はＯＳの機能によって消去されるため、各アプリケーションプログラムま、メインメモリの内容を消去する機能を備えなくともよい。これにより、本実施形態１に係る画像形成装置は、従来のＤＲＡＭのような揮発性メモリをメインメモリに用いた機器用のアプリケーションプログラムを、そのまま変更せずに搭載できる。即ち、不揮発性メモリを用いた装置用のアプリケーションプログラムを新たに作成するコストを削減できる。
【００６２】
尚、本実施形態１では、メモリ領域の内容を消去するために、予め決められた所定の値でメモリを上書きするものとしたが、この構成はあくまで一例である。消去処理の実行時にランダムな値で上書きする構成としてもよく、本発明はこの構成に限定されるものではない。
【００６３】
［実施形態２］
上述の実施形態１では、メモリ領域を解放する時にＣＰＵ２０１がスーパーバイザモードにある状態でＭＲＡＭ２０２の内容を消去するとしたが、スーパーバイザモードでない状態で消去するようにしても良い。
【００６４】
本実施形態２では、スーパーバイザモードでＣＰＵ２０１によって実行されるメモリ解放システムコール３２２でなく、メモリ解放サブルーチン３１２を実行することによって確保しているメモリ領域の内容を消去する場合について説明する。
【００６５】
尚、本実施形態２は、メモリ領域の解放時におけるＣＰＵ２０１の実行するフローを除いて先述の実施形態１と同一である。以降の説明では実施形態１と異なる点についてのみ説明し、同一である点については説明を省略する。
【００６６】
図８は、実施形態２に係る画像形成装置１００において、ＣＰＵ２０１がメモリ領域を解放する処理を説明するフローチャートである。本実施形態２は、ＣＰＵ２０１が図７のフローの代わりに図８のフローを実行する点を除いて実施形態１と同一である。尚、この処理を実行するプログラムはＨＤＤ１０６にインストールされており、実行時ＭＲＡＭ２０２に展開され、ＣＰＵ２０１の制御の下に実行される。
【００６７】
Ｓ８０１において、共有ライブラリ３０５内のメモリ解放サブルーチン３１２の実行を開始する。アプリケーションプログラムは、サブルーチンの呼び出し時に、解放するメモリ領域の番地をパラメータとして与えるのが一般的である。ＣＰＵ２０１は複写機能アプリ３０２とＦＡＸ機能アプリ３０４のどちらを実行していた場合であっても同じメモリ解放サブルーチン３１２を実行する。
【００６８】
次にＳ８０２においてＣＰＵ２０１は、アプリケーションプログラムがメモリ領域を解放した時点で、そのメモリ領域に含まれている内容を消去する。具体的にはＣＰＵ２０１は、事前に決められた所定の値で、そのメモリ領域の全内容を上書きする。例えば、メモリ領域内の全ビットをゼロでクリアする。
【００６９】
次にＳ８０３でＣＰＵ２０１は、ＯＳの機能であるメモリ領域の解放を実行するためにメモリ解放システムコール３２２を呼び出す。ＣＰＵ２０１はＣＰＵ内の所定のレジスタにメモリ解放システムコール３２２を示す所定の識別番号、及び解放を要求するメモリ領域の番地を格納し、システムコール呼び出し命令を実行する。これによりＣＰＵ２０１はメモリ解放サブルーチン３１２の実行を中断してスーパーバイザモードに切り替わる。スーパーバイザモードのＣＰＵ２０１は、メモリ解放システムコール３２２の実行を開始しＳ８０４へ進む。これ以降の処理はスーパーバイザモードで実行される。
【００７０】
Ｓ８０４でＣＰＵ２０１は、そのメモリ領域の番地情報をヒープ領域使用状態リスト３２３から削除する。これにより、これ以降、そのメモリ領域は別のアプリケーションプログラムなどからメモリ領域の確保が要求された場合に割り当て対象となり得る。次にＳ８０５に進みＣＰＵ２０１は、ＯＳのメモリ領域の解放機能としての動作が完了したので、メモリ解放システムコール３２２の実行を終了するためにシステムコール終了命令を実行する。これによりＣＰＵ２０１はスーパーバイザモードを終了し、中断していたメモリ解放サブルーチン３１２の実行を再開する。
【００７１】
そしてＳ８０６でＣＰＵ２０１は、メモリ解放サブルーチン３１２の実行を終了し、サブルーチンを呼び出していたアプリケーションプログラムの実行を再開する。
【００７２】
このようにして本実施形態２に係る画像形成装置１００におけるメモリ領域の解放動作が実行される。
【００７３】
以上説明したように実施形態２によれば、ＣＰＵ２０１がスーパーバイザモードにない状態であっても、確保していたメモリ領域の内容を消去することができる。ここでも実施形態１と同様に、アプリケーションプログラムを終了することがない機器であっても、不揮発性メインメモリの内容を消去できるため、情報の漏洩を防止できる。
【００７４】
また、上記の構成により、全てのアプリケーションプログラムは、ヒープ領域３０１を使用した後にメモリ解放サブルーチン３１２を呼び出すように構成されているため、個別のアプリケーションプログラムにメモリ消去を実行する機能を備えなくともよい。つまり本実施形態２によれば、不揮発性メモリをメインメモリに用いた装置のためのアプリケーションプログラムを新たに作成するコストを削減できる。
【００７５】
（その他の実施形態）
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（又はＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
2015095001.tif 000003
【図２】
2015095001.tif 000004
【図３】
2015095001.tif 000005
【図４】
2015095001.tif 000006
【図５】
2015095001.tif 000007
【図６】
2015095001.tif 000008
【図７】
2015095001.tif 000009
【図８】
2015095001.tif 000010