説明

メモリ管理装置及び画像形成装置

【課題】 画像形成装置において、大容量の画像データ等を扱うための連続した大容量のメモリ空間の確保を容易にすること。
【解決手段】 従来の仮想メモリシステムでは、OSがメモリ空間を管理するために、取得するメモリの容量制限やOS管理におかれたメモリ取得・解放動作によって引き起こされたフラグメンテーション等により、連続した大容量のメモリを取得することが困難であったが、物理メモリ空間をOS管理領域とOS非管理領域に分けて仮想アドレス空間に割当て、前記OS非管理領域へのアプリケーションプログラムからのアクセスを可能とするOS非管理メモリ領域管理部を有することにより課題を解決した。

【発明の詳細な説明】
【技術分野】
【0001】
仮想メモリシステムにおけるメモリ利用方式の技術に関するものである。
【背景技術】
【0002】
通常仮想アドレス空間を意識したメモリマップ構成では、物理メモリの取り扱いはOSが管理するマッピング機構にその制御が委ねられるので、ユーザが自由に取り扱うことができずプロセス間の連携ができず取り扱えるメモリ量が限られる。
【0003】
OSが管理するメモリ空間では、メモリの使用・解放を繰り返す方法により細かにメモリが消費されてしまい、メモリ領域のフラグメンテーションが発生して、例えば画像形成装置等の大容量の画像データを扱う機器では、連続した大容量メモリを確保することができず、データ処理の低速化を発生させる原因となっていた。
【0004】
従来技術として、ページ・テーブルのために物理メモリを余計に消費することのない仮想メモリ方式を提供するための以下の方法がある。アドレス変換テーブル生成器は、システム・バスに接続されており、TLB(Translation Look-aside Buffer)ミス発生時に、CPUによってアクセスされる。そして、アクセスを受ける度に、あらかじめ設定された規則に従って該当するページ・テーブル・エントリを生成する。アドレス変換テーブル生成器にアクセスすることで、メモリ内の領域を使用せず済む。アドレス変換テーブル生成器におけるページ・テーブルの生成規則は、CPUから設定可能とする(特許文献1参照)。
【0005】
しかし、上記方法はページ・テーブルのメモリ消費を抑える技術であり、これによって確保されるメモリ領域は非常に小さな量であり、画像形成装置で扱われる画像データが必要とする連続した大容量のメモリ空間を確保することはできない。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開2004−355187号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
解決しようとする課題は、仮想メモリシステムにおいてユーザが使用する大容量の連続したデータ領域を確保することができなかった点である。
【課題を解決するための手段】
【0008】
本発明のメモリ管理装置は、仮想アドレス空間を有してメモリ領域の管理を行うメモリ管理装置であって、物理メモリ空間の一部をオペレーティングシステムが管理する管理領域として確保して当該管理領域を仮想メモリ空間に割当て、前記オペレーティングシステムによるメモリ空間の取得・解放を可能とさせるOS管理領域アクセス手段と、前記物理メモリ空間の管理領域外をオペレーティングシステム(OS)からアクセスできない非管理領域として確保して当該非管理領域を仮想メモリ空間に割当て、メモリ空間の取得・解放を可能とするOS非管理領域アクセス手段と、前記OS非管理領域アクセス手段を用いて前記メモリのOS非管理領域へのデータアクセスを可能とさせることを特徴とする。
【0009】
本発明の画像形成装置は、物理メモリ空間を前記オペレーティングシステム(OS)が管理可能な管理領域と管理を行わない非管理領域に分けて、前記管理領域を仮想メモリ空間に割当てて前記管理領域内のメモリ空間の取得・解放を可能とさせるOSメモリ領域管理部と、前記非管理領域を仮想メモリ空間に割当てて、アプリケーションプログラムからの前記非管理領域内のメモリ空間の取得・解放を可能とさせるOS非管理メモリ領域管理部とを有することを特徴とする。
【0010】
本発明の画像形成装置は、前記非管理領域のメモリ空間にハードウェアからの直接アクセスが可能なDMA転送部を有することを特徴としてもよい。
【0011】
本発明の画像形成装置は、前記非管理領域に書き込まれた画像データをDMA転送部によって転送されて該画像データの印刷を行う印刷部を有することを特徴としてもよい。
【0012】
本発明の画像形成装置は、画像を読み込んで画像データに変換するスキャナ部と、前記DMA転送部は、前記スキャナ部により変換された画像データをDMA転送によって前記非管理領域に書き込むことを特徴としてもよい。
【発明の効果】
【0013】
本発明のメモリ管理装置は、仮想アドレス空間を有してメモリ領域の管理を行うメモリ管理装置であって、物理メモリ空間の一部をオペレーティングシステムが管理する管理領域として確保して当該管理領域を仮想メモリ空間に割当て、前記オペレーティングシステムによるメモリ空間の取得・解放を可能とさせるOS管理領域アクセス手段と、前記物理メモリ空間の管理領域外をオペレーティングシステム(OS)からアクセスできない非管理領域として確保して当該非管理領域を仮想メモリ空間に割当て、メモリ空間の取得・解放を可能とするOS非管理領域アクセス手段と、前記OS非管理領域アクセス手段を用いて前記メモリのOS非管理領域へのデータアクセスを可能とさせることを特徴とする。
【0014】
このため、OSによるメモリ管理によるメモリ取得の容量制限や、メモリのフラグメンテーション発生などに影響されずに、OS非管理領域のメモリを用いて連続した大容量のメモリを利用可能となる。
【0015】
本発明の画像形成装置は、物理メモリ空間を前記オペレーティングシステム(OS)が管理可能な管理領域と管理を行わない非管理領域に分けて、前記管理領域を仮想メモリ空間に割当てて前記管理領域内のメモリ空間の取得・解放を可能とさせるOSメモリ領域管理部と、前記非管理領域を仮想メモリ空間に割当てて、アプリケーションプログラムからの前記非管理領域内のメモリ空間の取得・解放を可能とさせるOS非管理メモリ領域管理部とを有することを特徴とする。
【0016】
このため、OSによるメモリ管理によるメモリ取得の容量制限や、メモリのフラグメンテーション発生などに影響されずに、OS非管理領域のメモリを用いて連続した大容量のメモリを利用可能となる。
【0017】
本発明の画像形成装置は、前記非管理領域のメモリ空間にハードウェアからの直接アクセスが可能なDMA転送部を有することを特徴としてもよい。
【0018】
このため、DMA転送による高速のメモリアクセスを利用して、前記非管理領域のメモリに対してデータの読込・書込みを高速で可能となる。
【0019】
本発明の画像形成装置は、前記非管理領域に書き込まれた画像データをDMA転送部によって転送されて該画像データの印刷を行う印刷部を有することを特徴としてもよい。
【0020】
このため、印刷のための画像データとして大容量のデータ領域を非管理領域内に確保して高速のデータ転送が可能となり、印刷部の高性能化に対応する高速度のデータ転送が可能となる。
【0021】
本発明の画像形成装置は、画像を読み込んで画像データに変換するスキャナ部と、前記DMA転送部は、前記スキャナ部により変換された画像データをDMA転送によって前記非管理領域に書き込むことを特徴としてもよい。
【0022】
このため、スキャナによって得られた大容量の画像データを高速に処理可能となる。
【図面の簡単な説明】
【0023】
【図1】本発明実施例の画像形成装置の機能ブロック図である。
【図2】(A)従来例によるI/O等を除いて全てのメモリ領域をOS管理下においた場合のメモリマップである。(B)従来例によるデータ参照のための領域であるウィンド領域を有するメモリ管理方法でのメモリマップである。(C)本発明実施例によるメモリマップの図である。(D)本発明実施例による物理メモリが1Gバイトの場合のメモリ使用区分の例である。(E)本発明実施例による物理メモリが2Gバイトの場合のメモリ使用区分の例である。(F)本発明実施例による物理メモリが4Gバイトの場合のメモリ使用区分の例である。
【図3】本発明実施例の画像形成装置における、(A)電源立ち上げ時の初期化動作におけるメモリ管理動作のフローチャートである。(B)スキャナ部による画像読み込み時における動作のフローチャートである。
【発明を実施するための形態】
【0024】
従来の仮想メモリシステムでは、OSがメモリ空間を管理するために、取得するメモリの容量制限やOS管理におかれたメモリ取得・解放動作によって引き起こされたフラグメンテーション等により、連続した大容量のメモリを取得することが困難であったが、物理メモリ空間をOS管理領域とOS非管理領域に分けて仮想アドレス空間に割当て、前記OS非管理領域へのアプリケーションプログラムからのアクセスを可能とするOS非管理メモリ領域管理部を有することにより課題を解決した。
【実施例】
【0025】
図2のメモリマップを用いて、仮想メモリの方式について説明する。
【0026】
図2中において、PROGはプログラムの、APLはアプリケーションの、WINDはウィンド領域の略である。
【0027】
図2(A)は、従来例によるI/O等を除いて全てのメモリ領域をOS管理下においた場合のメモリマップである。この場合には、標準状態では、ユーザ側にて十分仮想空間を取り扱えるがすべてがOS管理下にあるので、DMA転送領域など連続領域を動的に確保することは難しい。OSの管理によって使用されたメモリ領域によって、フラグメンテーションが発生してしまい、ユーザが大容量のメモリ領域を取ることができなくなってしまう。
【0028】
図2(B)は、従来例によるデータ参照のための領域であるウィンド領域(図中でのWIND)を有するメモリ管理方法でのメモリマップである。ユーザ空間とカーネル空間で共有するメモリ領域を大きく取るためには、カーネルの物理空間から一定オフセットをずらした領域に物理メモリをマッピングしたウィンド(WIND)領域が共有メモリのサイズ分カーネル空間に必要であるが、そのためにユーザ領域が圧迫されてしまう。仮想空間は例えば32ビットアドレス空間の場合には4Gバイトに制限されてしまうために、他のカーネルやI/Oやプログラムに使用されてしまう分を除くと、共有メモリとして使用可能となるメモリ領域は1Gバイト程度に制限されてしまう。
【0029】
そこで、本発明のメモリ管理方式では図2(C)に示すようなメモリマップに示すメモリの割り当て方法を取る。ここでは、カーネル空間での共有メモリ内データへの参照をなくすることでウィンド領域を削除する。そして、以下の方法によりユーザに割当てるメモリ領域を確保する。
【0030】
(1)OS(Operating System)の初期化時に予めプロセスにて共有する目的が明確になっているサイズの共有メモリをOS管理外の領域に確保する。
【0031】
(2)この管理領域外のメモリは、OSの制約を受けることなくユーザ空間へマッピングすることが可能になり、ユーザ空間からのメモリ確保時にメモリ不足の事態を招くこがなくなる。またOS管理外とすることでより広範にメモリをマッピングすることができる。
【0032】
(3)より仮想メモリを有効利用するために上記管理外の領域を確保し、物理メモリを直接閲覧するためのカーネル仮想領域を削減するが、管理外領域に確保した物理メモリは主にDMAなどハードウェア・アクセスに限定した領域に割り当てることによって、直接参照する可能性は低いため、この拡張のデメリットは少ない。
【0033】
[構成]
以下に本発明実施例としての画像形成装置について説明する。
【0034】
図1に画像形成装置101の機能ブロック図を示す。
【0035】
画像形成装置101は、スキャナ部111、HDD(Hard Disk Drive)113、DMA(Direct Memory Access)転送部115、印刷部117、主メモリ119、制御部120、ソフトウェア121、OS(Operating System)123、OSメモリ領域管理部125、IOMEM(OS非管理メモリ領域管理部)127、アプリケーションプログラム129、スキャナデータ読取プログラム131、データ圧縮プログラム133を有する。
【0036】
以下に各機能ブロックについて説明する。
【0037】
スキャナ部111は、画像データをスキャンして電子データに変換する。画像データはサイズが大きく、また、連続したメモリ領域を確保して該画像データを書き込む必要があるために、OS非管理メモリ領域にDMA転送部により書き込みが行われる。
【0038】
HDD(Hard Disk Drive)113は、回転磁気ディスクによる二次記憶装置であり、画像形成装置を動作させるためのプログラムやデータを記憶する。
【0039】
DMA(Direct Memory Access)転送部115は、例えばスキャナ部111で取得したデータを、CPU(制御部120内に含まれる)を通さずに直接主メモリ119に書込み・読取を可能とさせる機能部である。これにより高速のデータ転送が可能となる。
【0040】
印刷部117は、画像データを用紙に印刷を行う機能部である。
【0041】
主メモリ119は、DRAM(Dynamic Random Access Memory)から構成され、一次記憶装置として画像形成装置101のソフトウェア121を必要に応じて記憶させたり、データの書込み・読み取りを行わせるために記憶する記憶装置である。
【0042】
制御部120は、CPU(Central Processing Unit)と周辺制御回路からなり、画像形成装置101の動作を制御する。
【0043】
ソフトウェア121は、画像形成装置101の動作を司るためのソフトウェアであり、OS(Operating System)123、アプリケーションプログラム129、その他などからなる。詳細は各項目に後述する。
【0044】
OS(Operating System)123は、画像形成装置101のハードウェア・ソフトウェアの動作を管理・制御するための基本ソフトウェアである。OS123中には、次項に説明するOSメモリ領域管理部125を有する。
【0045】
OSメモリ領域管理部125は、OSが管理するメモリ領域を確保して割り当て、プログラム等からのメモリの使用要求があると空き領域を見つけて取得し、メモリの使用が済めば、同領域を解放する。従来のメモリ管理方式では、I/O使用領域などの一部を除いたメモリ空間は全てOSメモリ領域管理部125により管理されていたが、本実施例画像形成装置では、カーネルやプログラム等が使用する一部の領域のみをOSメモリ領域管理部125が管理する。
【0046】
IOMEM(OS非管理メモリ領域管理部;OS非管理領域アクセス手段)127は、本発明の最も特徴的な機能部であり、OSの非管理下におかれたメモリ領域(I/O領域は除く)を確保して、当該メモリ領域(OS非管理メモリ領域)を仮想メモリ空間に割当てる。割当てにはMMAP動作を行ってメモリの確保割り当てを行う。当該メモリ領域は、ハードウェア(スキャナ部や印刷部)からは、DMAによる直接アクセスが可能であり、ユーザプログラム(アプリケーションプログラム129)からは、IOMEMを経由してメモリ領域の取得(malloc())・解放(free())が可能である。
【0047】
例えば、スキャナ部で読み取る画像データ等は、画像サイズ、解像度、カラー深度等によっては非常に大きな値となりうるので、これらの大容量データが連続したメモリ空間を確保可能とするために、IOMEMを通してユーザプログラム(例えば後述のスキャナデータ読取プログラム131)から直接メモリ領域の取得・解放を行わせる。
【0048】
アプリケーションプログラム129は、画像形成装置101の動作を行うために必要なプログラムで例えば次項に示すようなスキャナデータ読取プログラム131やデータ圧縮プログラム133やその他のプログラムを含む。詳細は、次項に説明する。
【0049】
スキャナデータ読取プログラム131は、スキャナ部111で読み取った大容量の画像データをDMA転送部115により、直接主メモリ119に書き込ませる機能を実現させる。
【0050】
データ圧縮プログラム133は、画像データ等のデータ圧縮を行うための機能を実現させる。
【0051】
[フローチャート]
図3(A)に本発明実施例の画像形成装置101の初期化動作についてのフローチャートを示し、以下に各動作について説明する。
【0052】
S11:画像形成装置の電源が投入されると、OS123が動作を開始し、OSメモリ領域管理部125が主メモリ119上の一部の領域をOS管理領域として確保する。
【0053】
S13:IOMEM127は、連続の大容量メモリの使用のために、主メモリから残りのメモリ領域をマッピングして、ユーザプログラムからの使用に備える。
【0054】
以上の一連の動作により電源投入時のメモリの初期化動作を終了する。
【0055】
図3(B)に本発明実施例の画像形成装置101において、画像データをスキャンする場合の動作を例にとってそのメモリの使用について説明する。
【0056】
S21:スキャナ部111で画像データの読み込みを開始する。この際にスキャナデータ読取プログラムは、IOMEM127を経由して画像データを書き込むための大容量の連続したメモリ領域を主メモリ119上のOS非管理のメモリ領域に取得する。
【0057】
S23:S21動作中に読み込んだ画像データをDMA転送部115により、S11で取得したOS非管理のメモリ領域に転送する。
【0058】
S25:データ圧縮プログラム133は、前記OS非管理メモリ領域に転送された画像データにIOMEM127を経由してアクセスして読み込む。
【0059】
S27:データ圧縮プログラム133は、前記読み込んだ画像データを圧縮して、OS管理のメモリ領域に一時書込みを行う。
【0060】
S29:データ圧縮プログラム133は、S27で一時書込みされた圧縮データをHDD113に書き込む。S27とS29は、並行に動作を行ってHDDに書き込まれたデータについては、メモリから消去するため、OS管理メモリ領域は大きく消費されることはない。
【0061】
以上の一連の動作により、IOMEM127により確保された大容量のOS非管理のメモリ領域をDMA転送部115やスキャナデータ読取プログラム131、データ圧縮プログラムにより使用可能となる。
【0062】
[実施例の効果]
本発明実施例の画像形成装置により以下のことが可能となる。
【0063】
ユーザ空間とOS管理のカーネル空間でのメモリの共有をもたらすためのウィンド領域を持つ必要がなくなるので、仮想アドレス空間での重複したアドレス空間であるウィンド領域によって、仮想アドレス空間が消費されてしまう問題が解消される。
【0064】
メモリ領域を全てOSの管理下とすると、メモリ領域の取得(malloc())は、OSの制約を受けて取得容量サイズに制限を受けたりするが、IOMEMを利用することによりそのような制限は無くなる。
【0065】
OS管理下のメモリ領域では、フラグメンテーションが発生してしまい、例え前記した取得容量サイズ制限内であっても、連続したメモリ領域が取得不可能な場合が発生するがIOMEMにより、ユーザプログラム側(アプリケーションプログラム)が、メモリ取得をコントロールすることにより、フラグメンテーションの発生等を防ぎ、連続した大容量のメモリ空間の取得が可能となる。
【符号の説明】
【0066】
101 画像形成装置
111 スキャナ部
113 HDD(Hard Disk Drive)
115 DMA(Direct Memory Access)転送部
117 印刷部
119 主メモリ
121 ソフトウェア
123 OS(Operating System)
125 OSメモリ領域管理部
127 IOMEM(OS非管理メモリ領域管理部;OS非管理領域アクセス手段)
129 アプリケーションプログラム
131 スキャナデータ読取プログラム
133 データ圧縮プログラム

【特許請求の範囲】
【請求項1】
仮想アドレス空間を有してメモリ領域の管理を行うメモリ管理装置であって、
物理メモリ空間の一部をオペレーティングシステムが管理する管理領域として確保して当該管理領域を仮想メモリ空間に割当て、前記オペレーティングシステムによるメモリ空間の取得・解放を可能とさせるOS管理領域アクセス手段と、
前記物理メモリ空間の管理領域外をオペレーティングシステム(OS)からアクセスできない非管理領域として確保して当該非管理領域を仮想メモリ空間に割当て、メモリ空間の取得・解放を可能とするOS非管理領域アクセス手段と、
前記OS非管理領域アクセス手段を用いて前記メモリのOS非管理領域へのデータアクセスを可能とさせる
ことを特徴とするメモリ管理装置。
【請求項2】
物理メモリ空間を前記オペレーティングシステム(OS)が管理可能な管理領域と管理を行わない非管理領域に分けて、前記管理領域を仮想メモリ空間に割当てて前記管理領域内のメモリ空間の取得・解放を可能とさせるOSメモリ領域管理部と、
前記非管理領域を仮想メモリ空間に割当てて、アプリケーションプログラムからの前記非管理領域内のメモリ空間の取得・解放を可能とさせるOS非管理メモリ領域管理部とを有する
ことを特徴とする画像形成装置。
【請求項3】
請求項2の画像形成装置であって、
前記非管理領域のメモリ空間にハードウェアからの直接アクセスが可能なDMA転送部を有する
ことを特徴とする画像形成装置。
【請求項4】
請求項3の画像形成装置であって、
前記非管理領域に書き込まれた画像データを前記DMA転送部によって転送されて該画像データの印刷を行う印刷部を有する
ことを特徴とする画像形成装置。
【請求項5】
請求項3又は4の画像形成装置であって、
画像を読み込んで画像データに変換するスキャナ部と、
前記DMA転送部は、前記スキャナ部により変換された画像データをDMA転送によって前記非管理領域に書き込む
ことを特徴とする画像形成装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate


【公開番号】特開2010−198569(P2010−198569A)
【公開日】平成22年9月9日(2010.9.9)
【国際特許分類】
【出願番号】特願2009−45961(P2009−45961)
【出願日】平成21年2月27日(2009.2.27)
【出願人】(000006150)京セラミタ株式会社 (13,173)
【Fターム(参考)】