(57)【要約】【課題】  画像形成装置において、大容量の画像データ等を扱うための連続した大容量のメモリ空間の確保を容易にすること。【解決手段】  従来の仮想メモリシステムでは、ＯＳがメモリ空間を管理するために、取得するメモリの容量制限やＯＳ管理におかれたメモリ取得・解放動作によって引き起こされたフラグメンテーション等により、連続した大容量のメモリを取得することが困難であったが、物理メモリ空間をＯＳ管理領域とＯＳ非管理領域に分けて仮想アドレス空間に割当て、前記ＯＳ非管理領域へのアプリケーションプログラムからのアクセスを可能とするＯＳ非管理メモリ領域管理部を有することにより課題を解決した。【選択図】図２
2010198569.tif 000002
【特許請求の範囲】
【請求項１】
仮想アドレス空間を有してメモリ領域の管理を行うメモリ管理装置であって、
物理メモリ空間の一部をオペレーティングシステムが管理する管理領域として確保して当該管理領域を仮想メモリ空間に割当て、前記オペレーティングシステムによるメモリ空間の取得・解放を可能とさせるＯＳ管理領域アクセス手段と、
前記物理メモリ空間の管理領域外をオペレーティングシステム（ＯＳ）からアクセスできない非管理領域として確保して当該非管理領域を仮想メモリ空間に割当て、メモリ空間の取得・解放を可能とするＯＳ非管理領域アクセス手段と、
前記ＯＳ非管理領域アクセス手段を用いて前記メモリのＯＳ非管理領域へのデータアクセスを可能とさせる
ことを特徴とするメモリ管理装置。
【請求項２】
物理メモリ空間を前記オペレーティングシステム（ＯＳ）が管理可能な管理領域と管理を行わない非管理領域に分けて、前記管理領域を仮想メモリ空間に割当てて前記管理領域内のメモリ空間の取得・解放を可能とさせるＯＳメモリ領域管理部と、
前記非管理領域を仮想メモリ空間に割当てて、アプリケーションプログラムからの前記非管理領域内のメモリ空間の取得・解放を可能とさせるＯＳ非管理メモリ領域管理部とを有する
ことを特徴とする画像形成装置。
【請求項３】
請求項２の画像形成装置であって、
前記非管理領域のメモリ空間にハードウェアからの直接アクセスが可能なＤＭＡ転送部を有する
ことを特徴とする画像形成装置。
【請求項４】
請求項３の画像形成装置であって、
前記非管理領域に書き込まれた画像データを前記ＤＭＡ転送部によって転送されて該画像データの印刷を行う印刷部を有する
ことを特徴とする画像形成装置。
【請求項５】
請求項３又は４の画像形成装置であって、
画像を読み込んで画像データに変換するスキャナ部と、
前記ＤＭＡ転送部は、前記スキャナ部により変換された画像データをＤＭＡ転送によって前記非管理領域に書き込む
ことを特徴とする画像形成装置。
【発明の詳細な説明】
【技術分野】
【０００１】
仮想メモリシステムにおけるメモリ利用方式の技術に関するものである。
【背景技術】
【０００２】
通常仮想アドレス空間を意識したメモリマップ構成では、物理メモリの取り扱いはＯＳが管理するマッピング機構にその制御が委ねられるので、ユーザが自由に取り扱うことができずプロセス間の連携ができず取り扱えるメモリ量が限られる。
【０００３】
ＯＳが管理するメモリ空間では、メモリの使用・解放を繰り返す方法により細かにメモリが消費されてしまい、メモリ領域のフラグメンテーションが発生して、例えば画像形成装置等の大容量の画像データを扱う機器では、連続した大容量メモリを確保することができず、データ処理の低速化を発生させる原因となっていた。
【０００４】
従来技術として、ページ・テーブルのために物理メモリを余計に消費することのない仮想メモリ方式を提供するための以下の方法がある。アドレス変換テーブル生成器は、システム・バスに接続されており、ＴＬＢ（Translation Look-aside Buffer）ミス発生時に、ＣＰＵによってアクセスされる。そして、アクセスを受ける度に、あらかじめ設定された規則に従って該当するページ・テーブル・エントリを生成する。アドレス変換テーブル生成器にアクセスすることで、メモリ内の領域を使用せず済む。アドレス変換テーブル生成器におけるページ・テーブルの生成規則は、ＣＰＵから設定可能とする（特許文献１参照）。
【０００５】
しかし、上記方法はページ・テーブルのメモリ消費を抑える技術であり、これによって確保されるメモリ領域は非常に小さな量であり、画像形成装置で扱われる画像データが必要とする連続した大容量のメモリ空間を確保することはできない。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００４−３５５１８７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
解決しようとする課題は、仮想メモリシステムにおいてユーザが使用する大容量の連続したデータ領域を確保することができなかった点である。
【課題を解決するための手段】
【０００８】
本発明のメモリ管理装置は、仮想アドレス空間を有してメモリ領域の管理を行うメモリ管理装置であって、物理メモリ空間の一部をオペレーティングシステムが管理する管理領域として確保して当該管理領域を仮想メモリ空間に割当て、前記オペレーティングシステムによるメモリ空間の取得・解放を可能とさせるＯＳ管理領域アクセス手段と、前記物理メモリ空間の管理領域外をオペレーティングシステム（ＯＳ）からアクセスできない非管理領域として確保して当該非管理領域を仮想メモリ空間に割当て、メモリ空間の取得・解放を可能とするＯＳ非管理領域アクセス手段と、前記ＯＳ非管理領域アクセス手段を用いて前記メモリのＯＳ非管理領域へのデータアクセスを可能とさせることを特徴とする。
【０００９】
本発明の画像形成装置は、物理メモリ空間を前記オペレーティングシステム（ＯＳ）が管理可能な管理領域と管理を行わない非管理領域に分けて、前記管理領域を仮想メモリ空間に割当てて前記管理領域内のメモリ空間の取得・解放を可能とさせるＯＳメモリ領域管理部と、前記非管理領域を仮想メモリ空間に割当てて、アプリケーションプログラムからの前記非管理領域内のメモリ空間の取得・解放を可能とさせるＯＳ非管理メモリ領域管理部とを有することを特徴とする。
【００１０】
本発明の画像形成装置は、前記非管理領域のメモリ空間にハードウェアからの直接アクセスが可能なＤＭＡ転送部を有することを特徴としてもよい。
【００１１】
本発明の画像形成装置は、前記非管理領域に書き込まれた画像データをＤＭＡ転送部によって転送されて該画像データの印刷を行う印刷部を有することを特徴としてもよい。
【００１２】
本発明の画像形成装置は、画像を読み込んで画像データに変換するスキャナ部と、前記ＤＭＡ転送部は、前記スキャナ部により変換された画像データをＤＭＡ転送によって前記非管理領域に書き込むことを特徴としてもよい。
【発明の効果】
【００１３】
本発明のメモリ管理装置は、仮想アドレス空間を有してメモリ領域の管理を行うメモリ管理装置であって、物理メモリ空間の一部をオペレーティングシステムが管理する管理領域として確保して当該管理領域を仮想メモリ空間に割当て、前記オペレーティングシステムによるメモリ空間の取得・解放を可能とさせるＯＳ管理領域アクセス手段と、前記物理メモリ空間の管理領域外をオペレーティングシステム（ＯＳ）からアクセスできない非管理領域として確保して当該非管理領域を仮想メモリ空間に割当て、メモリ空間の取得・解放を可能とするＯＳ非管理領域アクセス手段と、前記ＯＳ非管理領域アクセス手段を用いて前記メモリのＯＳ非管理領域へのデータアクセスを可能とさせることを特徴とする。
【００１４】
このため、ＯＳによるメモリ管理によるメモリ取得の容量制限や、メモリのフラグメンテーション発生などに影響されずに、ＯＳ非管理領域のメモリを用いて連続した大容量のメモリを利用可能となる。
【００１５】
本発明の画像形成装置は、物理メモリ空間を前記オペレーティングシステム（ＯＳ）が管理可能な管理領域と管理を行わない非管理領域に分けて、前記管理領域を仮想メモリ空間に割当てて前記管理領域内のメモリ空間の取得・解放を可能とさせるＯＳメモリ領域管理部と、前記非管理領域を仮想メモリ空間に割当てて、アプリケーションプログラムからの前記非管理領域内のメモリ空間の取得・解放を可能とさせるＯＳ非管理メモリ領域管理部とを有することを特徴とする。
【００１６】
このため、ＯＳによるメモリ管理によるメモリ取得の容量制限や、メモリのフラグメンテーション発生などに影響されずに、ＯＳ非管理領域のメモリを用いて連続した大容量のメモリを利用可能となる。
【００１７】
本発明の画像形成装置は、前記非管理領域のメモリ空間にハードウェアからの直接アクセスが可能なＤＭＡ転送部を有することを特徴としてもよい。
【００１８】
このため、ＤＭＡ転送による高速のメモリアクセスを利用して、前記非管理領域のメモリに対してデータの読込・書込みを高速で可能となる。
【００１９】
本発明の画像形成装置は、前記非管理領域に書き込まれた画像データをＤＭＡ転送部によって転送されて該画像データの印刷を行う印刷部を有することを特徴としてもよい。
【００２０】
このため、印刷のための画像データとして大容量のデータ領域を非管理領域内に確保して高速のデータ転送が可能となり、印刷部の高性能化に対応する高速度のデータ転送が可能となる。
【００２１】
本発明の画像形成装置は、画像を読み込んで画像データに変換するスキャナ部と、前記ＤＭＡ転送部は、前記スキャナ部により変換された画像データをＤＭＡ転送によって前記非管理領域に書き込むことを特徴としてもよい。
【００２２】
このため、スキャナによって得られた大容量の画像データを高速に処理可能となる。
【図面の簡単な説明】
【００２３】
【図１】本発明実施例の画像形成装置の機能ブロック図である。
【図２】（Ａ）従来例によるＩ／Ｏ等を除いて全てのメモリ領域をＯＳ管理下においた場合のメモリマップである。（Ｂ）従来例によるデータ参照のための領域であるウィンド領域を有するメモリ管理方法でのメモリマップである。（Ｃ）本発明実施例によるメモリマップの図である。（Ｄ）本発明実施例による物理メモリが１Ｇバイトの場合のメモリ使用区分の例である。（Ｅ）本発明実施例による物理メモリが２Ｇバイトの場合のメモリ使用区分の例である。（Ｆ）本発明実施例による物理メモリが４Ｇバイトの場合のメモリ使用区分の例である。
【図３】本発明実施例の画像形成装置における、（Ａ）電源立ち上げ時の初期化動作におけるメモリ管理動作のフローチャートである。（Ｂ）スキャナ部による画像読み込み時における動作のフローチャートである。
【発明を実施するための形態】
【００２４】
従来の仮想メモリシステムでは、ＯＳがメモリ空間を管理するために、取得するメモリの容量制限やＯＳ管理におかれたメモリ取得・解放動作によって引き起こされたフラグメンテーション等により、連続した大容量のメモリを取得することが困難であったが、物理メモリ空間をＯＳ管理領域とＯＳ非管理領域に分けて仮想アドレス空間に割当て、前記ＯＳ非管理領域へのアプリケーションプログラムからのアクセスを可能とするＯＳ非管理メモリ領域管理部を有することにより課題を解決した。
【実施例】
【００２５】
図２のメモリマップを用いて、仮想メモリの方式について説明する。
【００２６】
図２中において、ＰＲＯＧはプログラムの、ＡＰＬはアプリケーションの、ＷＩＮＤはウィンド領域の略である。
【００２７】
図２（Ａ）は、従来例によるＩ／Ｏ等を除いて全てのメモリ領域をＯＳ管理下においた場合のメモリマップである。この場合には、標準状態では、ユーザ側にて十分仮想空間を取り扱えるがすべてがＯＳ管理下にあるので、ＤＭＡ転送領域など連続領域を動的に確保することは難しい。ＯＳの管理によって使用されたメモリ領域によって、フラグメンテーションが発生してしまい、ユーザが大容量のメモリ領域を取ることができなくなってしまう。
【００２８】
図２（Ｂ）は、従来例によるデータ参照のための領域であるウィンド領域（図中でのＷＩＮＤ）を有するメモリ管理方法でのメモリマップである。ユーザ空間とカーネル空間で共有するメモリ領域を大きく取るためには、カーネルの物理空間から一定オフセットをずらした領域に物理メモリをマッピングしたウィンド（ＷＩＮＤ）領域が共有メモリのサイズ分カーネル空間に必要であるが、そのためにユーザ領域が圧迫されてしまう。仮想空間は例えば３２ビットアドレス空間の場合には４Ｇバイトに制限されてしまうために、他のカーネルやＩ／Ｏやプログラムに使用されてしまう分を除くと、共有メモリとして使用可能となるメモリ領域は１Ｇバイト程度に制限されてしまう。
【００２９】
そこで、本発明のメモリ管理方式では図２（Ｃ）に示すようなメモリマップに示すメモリの割り当て方法を取る。ここでは、カーネル空間での共有メモリ内データへの参照をなくすることでウィンド領域を削除する。そして、以下の方法によりユーザに割当てるメモリ領域を確保する。
【００３０】
（１）ＯＳ（Operating System）の初期化時に予めプロセスにて共有する目的が明確になっているサイズの共有メモリをＯＳ管理外の領域に確保する。
【００３１】
（２）この管理領域外のメモリは、ＯＳの制約を受けることなくユーザ空間へマッピングすることが可能になり、ユーザ空間からのメモリ確保時にメモリ不足の事態を招くこがなくなる。またＯＳ管理外とすることでより広範にメモリをマッピングすることができる。
【００３２】
（３）より仮想メモリを有効利用するために上記管理外の領域を確保し、物理メモリを直接閲覧するためのカーネル仮想領域を削減するが、管理外領域に確保した物理メモリは主にＤＭＡなどハードウェア・アクセスに限定した領域に割り当てることによって、直接参照する可能性は低いため、この拡張のデメリットは少ない。
【００３３】
［構成］
以下に本発明実施例としての画像形成装置について説明する。
【００３４】
図１に画像形成装置１０１の機能ブロック図を示す。
【００３５】
画像形成装置１０１は、スキャナ部１１１、ＨＤＤ（Hard Disk Drive）１１３、ＤＭＡ（Direct Memory Access）転送部１１５、印刷部１１７、主メモリ１１９、制御部１２０、ソフトウェア１２１、ＯＳ（Operating System）１２３、ＯＳメモリ領域管理部１２５、ＩＯＭＥＭ（ＯＳ非管理メモリ領域管理部）１２７、アプリケーションプログラム１２９、スキャナデータ読取プログラム１３１、データ圧縮プログラム１３３を有する。
【００３６】
以下に各機能ブロックについて説明する。
【００３７】
スキャナ部１１１は、画像データをスキャンして電子データに変換する。画像データはサイズが大きく、また、連続したメモリ領域を確保して該画像データを書き込む必要があるために、ＯＳ非管理メモリ領域にＤＭＡ転送部により書き込みが行われる。
【００３８】
ＨＤＤ（Hard Disk Drive）１１３は、回転磁気ディスクによる二次記憶装置であり、画像形成装置を動作させるためのプログラムやデータを記憶する。
【００３９】
ＤＭＡ（Direct Memory Access）転送部１１５は、例えばスキャナ部１１１で取得したデータを、ＣＰＵ（制御部１２０内に含まれる）を通さずに直接主メモリ１１９に書込み・読取を可能とさせる機能部である。これにより高速のデータ転送が可能となる。
【００４０】
印刷部１１７は、画像データを用紙に印刷を行う機能部である。
【００４１】
主メモリ１１９は、ＤＲＡＭ（Dynamic Random Access Memory）から構成され、一次記憶装置として画像形成装置１０１のソフトウェア１２１を必要に応じて記憶させたり、データの書込み・読み取りを行わせるために記憶する記憶装置である。
【００４２】
制御部１２０は、ＣＰＵ（Central Processing Unit）と周辺制御回路からなり、画像形成装置１０１の動作を制御する。
【００４３】
ソフトウェア１２１は、画像形成装置１０１の動作を司るためのソフトウェアであり、ＯＳ（Operating System）１２３、アプリケーションプログラム１２９、その他などからなる。詳細は各項目に後述する。
【００４４】
ＯＳ（Operating System）１２３は、画像形成装置１０１のハードウェア・ソフトウェアの動作を管理・制御するための基本ソフトウェアである。ＯＳ１２３中には、次項に説明するＯＳメモリ領域管理部１２５を有する。
【００４５】
ＯＳメモリ領域管理部１２５は、ＯＳが管理するメモリ領域を確保して割り当て、プログラム等からのメモリの使用要求があると空き領域を見つけて取得し、メモリの使用が済めば、同領域を解放する。従来のメモリ管理方式では、Ｉ／Ｏ使用領域などの一部を除いたメモリ空間は全てＯＳメモリ領域管理部１２５により管理されていたが、本実施例画像形成装置では、カーネルやプログラム等が使用する一部の領域のみをＯＳメモリ領域管理部１２５が管理する。
【００４６】
ＩＯＭＥＭ（ＯＳ非管理メモリ領域管理部；ＯＳ非管理領域アクセス手段）１２７は、本発明の最も特徴的な機能部であり、ＯＳの非管理下におかれたメモリ領域（Ｉ／Ｏ領域は除く）を確保して、当該メモリ領域（ＯＳ非管理メモリ領域）を仮想メモリ空間に割当てる。割当てにはＭＭＡＰ動作を行ってメモリの確保割り当てを行う。当該メモリ領域は、ハードウェア（スキャナ部や印刷部）からは、ＤＭＡによる直接アクセスが可能であり、ユーザプログラム（アプリケーションプログラム１２９）からは、ＩＯＭＥＭを経由してメモリ領域の取得（malloc()）・解放（free()）が可能である。
【００４７】
例えば、スキャナ部で読み取る画像データ等は、画像サイズ、解像度、カラー深度等によっては非常に大きな値となりうるので、これらの大容量データが連続したメモリ空間を確保可能とするために、ＩＯＭＥＭを通してユーザプログラム（例えば後述のスキャナデータ読取プログラム１３１）から直接メモリ領域の取得・解放を行わせる。
【００４８】
アプリケーションプログラム１２９は、画像形成装置１０１の動作を行うために必要なプログラムで例えば次項に示すようなスキャナデータ読取プログラム１３１やデータ圧縮プログラム１３３やその他のプログラムを含む。詳細は、次項に説明する。
【００４９】
スキャナデータ読取プログラム１３１は、スキャナ部１１１で読み取った大容量の画像データをＤＭＡ転送部１１５により、直接主メモリ１１９に書き込ませる機能を実現させる。
【００５０】
データ圧縮プログラム１３３は、画像データ等のデータ圧縮を行うための機能を実現させる。
【００５１】
［フローチャート］
図３（Ａ）に本発明実施例の画像形成装置１０１の初期化動作についてのフローチャートを示し、以下に各動作について説明する。
【００５２】
Ｓ１１：画像形成装置の電源が投入されると、ＯＳ１２３が動作を開始し、ＯＳメモリ領域管理部１２５が主メモリ１１９上の一部の領域をＯＳ管理領域として確保する。
【００５３】
Ｓ１３：ＩＯＭＥＭ１２７は、連続の大容量メモリの使用のために、主メモリから残りのメモリ領域をマッピングして、ユーザプログラムからの使用に備える。
【００５４】
以上の一連の動作により電源投入時のメモリの初期化動作を終了する。
【００５５】
図３（Ｂ）に本発明実施例の画像形成装置１０１において、画像データをスキャンする場合の動作を例にとってそのメモリの使用について説明する。
【００５６】
Ｓ２１：スキャナ部１１１で画像データの読み込みを開始する。この際にスキャナデータ読取プログラムは、ＩＯＭＥＭ１２７を経由して画像データを書き込むための大容量の連続したメモリ領域を主メモリ１１９上のＯＳ非管理のメモリ領域に取得する。
【００５７】
Ｓ２３：Ｓ２１動作中に読み込んだ画像データをＤＭＡ転送部１１５により、Ｓ１１で取得したＯＳ非管理のメモリ領域に転送する。
【００５８】
Ｓ２５：データ圧縮プログラム１３３は、前記ＯＳ非管理メモリ領域に転送された画像データにＩＯＭＥＭ１２７を経由してアクセスして読み込む。
【００５９】
Ｓ２７：データ圧縮プログラム１３３は、前記読み込んだ画像データを圧縮して、ＯＳ管理のメモリ領域に一時書込みを行う。
【００６０】
Ｓ２９：データ圧縮プログラム１３３は、Ｓ２７で一時書込みされた圧縮データをＨＤＤ１１３に書き込む。Ｓ２７とＳ２９は、並行に動作を行ってＨＤＤに書き込まれたデータについては、メモリから消去するため、ＯＳ管理メモリ領域は大きく消費されることはない。
【００６１】
以上の一連の動作により、ＩＯＭＥＭ１２７により確保された大容量のＯＳ非管理のメモリ領域をＤＭＡ転送部１１５やスキャナデータ読取プログラム１３１、データ圧縮プログラムにより使用可能となる。
【００６２】
［実施例の効果］
本発明実施例の画像形成装置により以下のことが可能となる。
【００６３】
ユーザ空間とＯＳ管理のカーネル空間でのメモリの共有をもたらすためのウィンド領域を持つ必要がなくなるので、仮想アドレス空間での重複したアドレス空間であるウィンド領域によって、仮想アドレス空間が消費されてしまう問題が解消される。
【００６４】
メモリ領域を全てＯＳの管理下とすると、メモリ領域の取得（malloc()）は、ＯＳの制約を受けて取得容量サイズに制限を受けたりするが、ＩＯＭＥＭを利用することによりそのような制限は無くなる。
【００６５】
ＯＳ管理下のメモリ領域では、フラグメンテーションが発生してしまい、例え前記した取得容量サイズ制限内であっても、連続したメモリ領域が取得不可能な場合が発生するがＩＯＭＥＭにより、ユーザプログラム側（アプリケーションプログラム）が、メモリ取得をコントロールすることにより、フラグメンテーションの発生等を防ぎ、連続した大容量のメモリ空間の取得が可能となる。
【符号の説明】
【００６６】
１０１  画像形成装置
１１１  スキャナ部
１１３  ＨＤＤ（Hard Disk Drive）
１１５  ＤＭＡ（Direct Memory Access）転送部
１１７  印刷部
１１９  主メモリ
１２１  ソフトウェア
１２３  ＯＳ（Operating System）
１２５  ＯＳメモリ領域管理部
１２７  ＩＯＭＥＭ（ＯＳ非管理メモリ領域管理部；ＯＳ非管理領域アクセス手段）
１２９  アプリケーションプログラム
１３１  スキャナデータ読取プログラム
１３３  データ圧縮プログラム
【図１】
2010198569.tif 000003
【図２】
2010198569.tif 000004
【図３】
2010198569.tif 000005