(57)【要約】【課題】  メモリ部において、フラグメンテーションを発生させ難くする。【解決手段】  第１のメモリ部１は所定のデバイスの動作に必要なメモリ領域を割り当てる。メモリアロケーション処理部５はメモリアロケート要求に応じて第１のメモリ部１におけるメモリ領域を確保開放する。第２のメモリ部９は予約確保情報を読み書き可能に格納する。学習予約処理部７はメモリアロケーション処理部５から第１のメモリ部１に確保したメモリ領域を監視し、第１のメモリ部１を断片化する特定メモリ領域に関する予約確保情報を作成して第２のメモリ部９に格納する。学習予約処理部７は、第１のメモリ部１の初期化時に、メモリアロケーション処理部５に対して予約領域情報に基づきその第１のメモリ部１の先頭側に予約メモリ領域の確保を指示する。【選択図】  図１
2008084098.tif 000002
【特許請求の範囲】
【請求項１】
所定のデバイスの動作に必要なメモリ領域がアロケートされる第１のメモリ部と、
メモリアロケート要求に応じて前記第１のメモリ部におけるメモリ領域を確保開放するメモリアロケーション処理部と、
予約確保情報を格納する読み書き可能な不揮発性の第２のメモリ部と、
前記第１のメモリ部で確保したメモリ領域を前記メモリアロケーション処理部を介して監視し、前記第１のメモリ部を断片化する特定メモリ領域に関する予約確保情報を作成して前記第２のメモリ部に格納し、前記第１のメモリ部の初期化時に、前記メモリアロケーション処理部に対して前記予約領域情報に基づき前記第１のメモリ部の先頭側又は後端側に予約メモリ領域の確保を指示する学習予約処理部と、
を具備することを特徴とするメモリ管理装置。
【請求項２】
前記学習予約処理部は、特定順位のアロケートメモリ領域を前記特定メモリ領域として前記予約確保情報を作成する請求項１記載のメモリ管理装置。
【請求項３】
前記学習予約処理部は、前記メモリアロケート要求に応じた前記メモリ領域の確保開放の都度、前記予約確保情報を再作成する請求項２記載のメモリ管理装置。
【請求項４】
前記予約領域情報は、確保する前記予約メモリ領域の容量を含む請求項１〜３いずれか１記載のメモリ管理装置。
【請求項５】
前記メモリアロケーション処理部は、前記メモリアロケート要求に対して対応する前記予約メモリ領域を割り当てる請求項１〜４いずれか１記載のメモリ管理装置。
【請求項６】
リアルタイムＯＳの下で動作する請求項１〜５いずれか１記載のメモリ管理装置。
【請求項７】
前記予約確保情報は前記デバイスとしてのプリンタのものである請求項１〜６いずれか１記載のメモリ管理装置。
【請求項８】
所定のデバイスの動作に必要なメモリ領域を第１のメモリ部に割り当てる割当て処理と、
メモリアロケート要求に応じて前記第１のメモリ部におけるメモリ領域を確保開放するメモリアロケーション処理と、
読み書き可能な不揮発性の第２のメモリ部に予約確保情報を読み書きする読み書き処理と、
前記第１のメモリ部に確保したメモリ領域を監視し、前記第１のメモリ部を断片化する特定メモリ領域に関する予約確保情報を作成して前記第２のメモリ部に格納し、前記第１のメモリ部の初期化時に、前記メモリアロケーション処理において前記予約領域情報に基づき前記第１のメモリ部の先頭側又は後端側に予約メモリ領域の確保を指示する学習予約処理と、
を具備することを特徴とするメモリ管理方法。
【請求項９】
前記学習予約処理は、特定順位のアロケートメモリ領域を前記特定メモリ領域として前記予約確保情報を作成する請求項８記載のメモリ管理方法。
【請求項１０】
前記学習予約処理は、前記メモリアロケート要求に応じた前記メモリ領域の確保開放の都度、前記予約確保情報を再作成する請求項９記載のメモリ管理方法。
【請求項１１】
前記予約領域情報は、確保する前記予約メモリ領域の容量を含む請求項８〜１０いずれか１記載のメモリ管理方法。
【請求項１２】
前記メモリアロケーション処理は、前記メモリアロケート要求に対して対応する前記予約メモリ領域を割り当てる請求項８〜１１いずれか１記載のメモリ管理方法。
【請求項１３】
リアルタイムＯＳの下で動作する請求項８〜１２いずれか１記載のメモリ管理方法。
【請求項１４】
前記予約確保情報は前記デバイスとしてのプリンタのものである請求項８〜１３いずれか１記載のメモリ管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はメモリ管理装置およびメモリ管理方法に係り、特にメモリを搭載した電子機器において当該メモリの管理に用いて好適するメモリ管理装置およびメモリ管理方法の改良に関する。
【背景技術】
【０００２】
電子機器、例えばコンピュータに搭載されたメモリでは、その起動時に内蔵デバイスやプリンタ等外部デバイスの動作に必要なメモリ領域が分割して割り当てられるとともに、作業の進捗に応じ開放して未使用メモリ領域が形成される。
【０００３】
このようなメモリにおいては、割り当てられたメモリ領域にうち一部が開放されると、メモリのフラグメンテーション（未使用メモリ領域の断片化）が発生する。
【０００４】
すなわち、図７Ａに示すように、１６Ｍ（バイト）の未使用領域のあるメモリ領域において、同図Ｂのように２Ｍのアロケーション（領域確保）を４回行うと（ＡＡＡ使用、ＢＢＢ使用、ＣＣＣ使用、ＤＤＤ使用）、未使用領域が８Ｍに減少する。
【０００５】
その後、図７Ｃに示すように、最初の３つメモリ領域（ＡＡＡ使用、ＢＢＢ使用、ＣＣＣ使用）を開放すると、未使用領域がトータルで１４Ｍあるものの、アロケーション可能なメモリ領域の最大サイズが８Ｍのまま断片化された状態となり、フラグメンテーションが発生する。
【０００６】
このようなメモリ状態では、連続した大きなメモリブロックを確保できないので、未使用領域をまとめる例えばガベージコレクション機能が実行される。このガベージコレクションはフラグメンテーションを解消するためにＯＳ（Operating System）が有する機能の１つである。
【０００７】
そして、フラグメンテーションを解消するその他技術としては種々あるが、例えば特開２００５−７３００４号公報（特許文献１）等もその１つである。
【特許文献１】特開２００２−７３００４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかしながら、フラグメンテーションを解消する上述したガベージコレクション動作は、ＣＰＵの占有時間が長いため、フラグメンテーション自体が発生しないような工夫が望まれているが、有効な解決策が見いだせないのが現状である。
【０００９】
特に、リアルタイムＯＳでは、フラグメンテーションの解消のためにＣＰＵを長時間占有できないため、ガベージコレクション動作が使用されることが少ないのが現状である。
【００１０】
そこで、本発明者は、コンピュータの起動時に、ＨＤＤ、ネットワークインターフェース、プリンタ等のデバイス等に割り当てたメモリ領域について観察や検討を行った結果、例えばプリンタについては、メモリ領域の割当順位がほぼ決まっており、そのパラメータ設定を頻繁に変更しないので領域が一定であるうえ領域開放もされ難い点に着目し、本発明を完成させた。
【００１１】
本発明はそのような課題を解決するためになされたもので、複数のメモリ領域にアロケートされたメモリについて、フラグメンテーションを発生させ難いメモリ管理装置およびメモリ管理方法の提供を目的とする。
【課題を解決するための手段】
【００１２】
そのような課題を解決するために本発明に係るメモリ管理装置は、所定のデバイスの動作に必要なメモリ領域が割り当てられる第１のメモリ部と、メモリアロケート要求に応じてその第１のメモリ部におけるメモリ領域を確保開放するメモリアロケーション処理部と、予約確保情報を格納する読み書き可能な不揮発性の第２のメモリ部と、その第１のメモリ部を確保したメモリ領域をメモリアロケーション処理部を介して監視し、その第１のメモリ部を断片化する特定メモリ領域に関する予約確保情報を作成してその第２のメモリ部に格納し、その第１のメモリ部の初期化時に、そのメモリアロケーション処理部に対してその予約領域情報に基づき第１のメモリ部の先頭側又は後端側に予約メモリ領域の確保を指示する学習予約処理部とを具備している。
【００１３】
本発明のメモリ管理装置では、上記学習予約処理部が、特定順位のアロケートメモリ領域をその特定メモリ領域として予約確保情報を作成する構成も可能である。
【００１４】
本発明のメモリ管理装置では、上記学習予約処理部が、そのメモリアロケート要求に応じたメモリ領域の確保開放の都度、その予約確保情報を再作成する構成も可能である。
【００１５】
本発明のメモリ管理装置では、上記予約領域情報は、確保する上記予約メモリ領域の容量を含む構成も可能である。
【００１６】
本発明のメモリ管理装置では、上記メモリアロケーション処理部が、そのメモリアロケート要求に対して対応するその予約メモリ領域を割り当てる構成も可能である。
【００１７】
本発明のメモリ管理装置では、リアルタイムＯＳの下で動作する構成も可能である。
【００１８】
本発明のメモリ管理装置では、上記予約確保情報がそのデバイスとしてのプリンタのものである構成も可能である。
【００１９】
本発明に係るメモリ管理方法は、所定のデバイスの動作に必要なメモリ領域を第１のメモリ部に割り当てる割当て処理と、メモリアロケート要求に応じてその第１のメモリ部におけるメモリ領域を確保開放するメモリアロケーション処理と、読み書き可能な不揮発性の第２のメモリ部に予約確保情報を読み書きする読み書き処理と、その第１のメモリ部を確保したメモリ領域を監視し、その第１のメモリ部を断片化する特定メモリ領域に関する予約確保情報を作成してその第２のメモリ部に格納処理し、その第１のメモリ部の初期化時に、そのメモリアロケーション処理に対してその予約領域情報に基づきその第１のメモリ部の先頭側又は後端側において予約メモリ領域の確保を指示する学習予約処理とを具備している。
【００２０】
本発明に係るメモリ管理方法は、上記学習予約処理が、特定順位のアロケートメモリ領域をその特定メモリ領域としてその予約確保情報を作成する構成も可能である。
【００２１】
本発明に係るメモリ管理方法は、上記学習予約処理が、そのメモリアロケート要求に応じたそのメモリ領域の確保開放の都度、その予約確保情報を再作成する構成も可能である。
【００２２】
本発明に係るメモリ管理方法は、上記予約領域情報が確保するその予約メモリ領域の容量を含む構成も可能である。
【００２３】
本発明に係るメモリ管理方法は、上記メモリアロケーション処理がそのメモリアロケート要求に対して対応する予約メモリ領域を割り当てる構成も可能である。
【００２４】
本発明に係るメモリ管理方法は、リアルタイムＯＳの下で動作する構成も可能である。
【００２５】
本発明に係るメモリ管理方法は、上記予約確保情報がデバイスとしてのプリンタのものである構成も可能である。
【発明の効果】
【００２６】
このような本発明に係るメモリ管理装置およびメモリ管理方法では、必要なメモリ領域を第１のメモリ部に割り当て、メモリアロケート要求に応じてその第１のメモリ部におけるメモリ領域をメモリアロケーション処理部で確保開放し、不揮発性の第２のメモリ部に予約確保情報を読み書き可能に格納し、学習予約処理部にて、その第１のメモリ部に確保したメモリ領域を監視し、その第１のメモリ部を断片化する特定メモリ領域に関する予約確保情報を作成してその第２のメモリ部に格納し、その第１のメモリ部の初期化時に、そのメモリアロケーション処理部に対して予約領域情報に基づき第１のメモリ部の先頭側又は後端側に予約メモリ領域の確保を指示するから、第１のメモリ部におけるフラグメンテーションを発生させ難い。
【００２７】
本発明において、上記学習予約処理部が特定順位のアロケートメモリ領域についてその予約確保情報を作成する構成では、メモリ領域を確保したい所定のデバイスに自動的に割付可能である。
【００２８】
本発明において、上記学習予約処理部が、そのメモリアロケート要求に応じたメモリ領域の確保開放の都度、その予約確保情報を再作成する構成では、メモリアロケート要求に応じてメモリ領域の確保が可能である。
【００２９】
本発明において、上記予約領域情報が確保する予約メモリ領域の容量を含む構成では、第１のメモリ部の予約メモリ領域を的確に確保可能である。
【００３０】
本発明において、上記メモリアロケーション処理部が、そのメモリアロケート要求に対して対応する予約メモリ領域を割り当てる構成では、所定のデバイスを予約メモリ領域に的確に割り当てることが可能である。
【００３１】
本発明において、リアルタイムＯＳの下で動作する構成では、第１のメモリ部におけるフラグメンテーションの解消を介して、リアルタイムＯＳの正確な動作確保が可能である。
【００３２】
本発明において、上記予約確保情報がプリンタのものである構成では、第１のメモリ部におけるフラグメンテーションの解消が確実である。
【発明を実施するための最良の形態】
【００３３】
以下、本発明に係る実施の形態を図面を参照して説明する。
【００３４】
図１は本発明に係るメモリ管理装置の実施の一形態を示すブロック図である。本発明に係るメモリ管理方法についてはそのメモリ管理装置を説明する過程で説明する。
【００３５】
図１において、第１のメモリ部１は、例えばコンピュータの主メモリであるバッファメモリであり、コンピュータを形成するＣＰＵ、ＨＤＤ、ネットワークインタフェース（いずれも図示せず。）や、外部接続されるプリンタ（図示省略）等、内蔵および外部デバイスの動作に必要なメモリ領域を割り当てる読み書き可能な記憶部であり、制御部３によって管理制御されている。
【００３６】
制御部３は、コンピュータの種々の演算判断処理を実行するもので上述したＣＰＵを主体としてなり、メモリアロケーション処理部５および学習予約処理部７の機能を有し、これらを制御している。
【００３７】
メモリアロケーション処理部５は、例えば制御部３からのアロケーション情報を第１のメモリ部１に出力し、この第１のメモリ部１における指定した領域にメモリ領域を確保するとともに領域開放を処理する機能を有している。すなわち、アロケーション情報はメモリ領域の確保又は開放指示を含むものである。
【００３８】
メモリアロケーション処理部５は、アロケーション情報を第１のメモリ部１に出力する都度、確保又は開放するメモリ領域を特定する特定情報、確保又は開放するメモリ領域のサイズや番地情報、確保又は開放の別を示す確保開放情報、第１のメモリ部１内の使用領域情報等からなるアロケーション情報を、学習予約処理部７からの要求に応じてこれに出力する機能を有している。
【００３９】
メモリアロケーション処理部５は、起動時に、この第１のメモリ部１内を初期化するとともに、学習予約処理部７から得られる予約領域情報に基づき、第１のメモリ部１内の先頭側においてメモリ領域を予め予約確保する機能の他、後述する機能を有している。メモリ領域の予約確保は後端側であっても良い。
【００４０】
学習予約処理部７は、適宜要求したアロケーション情報に基づき、第１のメモリ部１をアロケートしたサイズおよび順番を監視し、第１のメモリ部１を断片化（分割）する特定メモリ領域を検索し、例えば４番目のメモリ領域について予約確保情報を学習作成して第２のメモリ部９に格納するとともに、起動時に、第２のメモリ部９から予約確保情報を読出してメモリアロケーション処理部５に出力する機能を有している。
【００４１】
予約確保情報は、予約するメモリ領域の容量情報やこのメモリ領域に割り当てるアロケート順番等が含まれ、複数の予約確保情報の作成が可能である。
【００４２】
第２のメモリ部９は、上述した予約確保情報を格納する不揮発性メモリであるり、学習予約処理部７の制御の下で、それら予約確保情報をテーブル状にして読み書き可能に管理制御される。
【００４３】
上述したように、メモリアロケーション処理部５は、学習予約処理部７から得られる予約領域情報に基づき、第１のメモリ部１内の先頭側において予約メモリ領域を確保するとともに、アロケーション情報がアロケート順番に該当すれば、当該デバイスの動作に必要なメモリ領域として予約メモリ領域を割り当てる機能を有している。
【００４４】
例えば、上述した図７Ｂのような順番でアロケートされるメモリ領域がある場合、起動時に、図２Ａのように１６Ｍの第１のメモリ部１内が初期化され、図２Ｂのように４番目のアロケート情報に対応する２Ｍのメモリ領域がその先頭部に予約確保され、図２ＣのようにＡＡＡ使用、ＢＢＢ使用、ＣＣＣ使用領域が割当てられるとともに、予約メモリ領域にＤＤＤ使用が割当てられる。
【００４５】
その後、ＡＡＡ使用、ＢＢＢ使用、ＣＣＣ使用領域が開放されると、図３Ｂに示すように、各々２Ｍずつの３つの開放領域が８Ｍの未使用領域に連続加算されて１４Ｍの未使用領域が確保される。
【００４６】
次に、本発明のメモリ管理装置の動作を図４〜図６のフローチャートを参照して説明する。
【００４７】
プログラムが開始されると、ステップＳ１にて第１のメモリ部１の初期化要求処理がなされ、ステップＳ２にて通常のメモリ初期化処理が実行されてステップＳ３に移る。
【００４８】
ステップＳ３では予約領域情報の有無が判別され、予約領域情報があってステップＳ３がＹＥＳの場合には、ステップＳ４にて予約領域確保処理がなされて図５のステップＳ５に移り、予約領域情報がなくてステップＳ３がＮＯの場合には、直接ステップＳ５に移る。
【００４９】
図５のステップＳ５では、学習予約処理部７がメモリアロケーション処理部５にアロケーション情報を要求し、ステップＳ６にて予約領域対象アロケートの有無が判別される。
【００５０】
予約領域対象アロケートがあってステップＳ６がＹＥＳの場合には、ステップＳ７にて予約領域をアロケート処理してステップＳ９に移り、予約領域対象アロケートがなくてステップＳ６がＮＯの場合には、ステップＳ８にて非予約領域をアロケート処理し、ステップＳ９にてアロケーション情報を取得する。
【００５１】
続く、図６のステップＳ１０にてフラグメンテーション学習要求処理をしてステップＳ１１に移り、ステップＳ１１ではメモリアロケーション状態を確認する。
【００５２】
さらに、ステップＳ１２では、フラグメンテーションを発生させるアロケーション情報の検索処理を実行し、ステップＳ１３にて予約領域情報の生成、第２のメモリ部９への書込処理を実行して終了する。この予約領域情報が図４中のステップＳ３、Ｓ４で使用される。
【００５３】
そして、それらの実行処理が本発明に係るメモリ管理方法である。
【００５４】
このように、本発明に係るメモリ管理装置では、所定のデバイスの動作に必要なメモリ領域が割り当てられる第１のメモリ部１と、メモリアロケート要求に応じてその第１のメモリ部１におけるメモリ領域を確保するメモリアロケーション処理部５と、予約確保情報を格納する読み書き可能な不揮発性の第２のメモリ部９と、その第１のメモリ部１に確保したメモリ領域サイズおよび順番をメモリアロケーション処理部５を介して監視し、その第１のメモリ部１を断片化する特定メモリ領域についてメモリ容量を含む予約確保情報を作成して第２のメモリ部９に格納し、その第１のメモリ部１の初期化時に、そのメモリアロケーション処理部５に対してその予約領域情報に基づきその第１のメモリ部１の先頭側又は後端側に予約メモリ領域の確保を指示する学習予約処理部７とを具備している。
【００５５】
しかも、上記メモリアロケーション処理部５が、そのメモリアロケート要求に対して対応するデバイスの動作に必要な予約メモリ領域を割り当てるとともに、学習予約処理部７が、その第１のメモリ部１のメモリ領域を確保した順番が所定順番に達したメモリ領域を特定メモリ領域として予約確保情報を作成するとともに、そのメモリアロケート要求に応じたメモリ領域の確保の都度、その予約確保情報を再作成する構成となっている。
【００５６】
そのため、第１のメモリ部１におけるフラグメンテーションが発生し難く、その解消も可能となるし、メモリ領域を確保したい所定のデバイスの選択が容易であるうえ、メモリアロケート要求に応じて予約メモリ領域に的確に割り当てることが可能である。
【００５７】
上述した本発明において、学習予約処理部７は、特定メモリ領域を検索し、例えば第１のメモリ部１を４番目にアロケートしたメモリ領域について予約確保情報を作成する構成として説明した。
【００５８】
しかし、本発明では、第１のメモリ部１を断片化する特定メモリ領域について予約確保情報を作成すれば、本発明の目的達成が可能である。
【００５９】
もっとも、第１のメモリ１を断片化する特定メモリ領域の順番が決まっている場合には、特定順位のアロケートメモリ領域を特定メモリ領域として予約確保情報の作成が可能である。例えばプリンタ等がある。
【００６０】
さらに、本発明では、特に、リアルタイムＯＳの下で動作する構成において適用すれば、第１のメモリ部１におけるフラグメンテーションの解消を介して、リアルタイムＯＳの正確な動作確保が可能である。
【図面の簡単な説明】
【００６１】
【図１】本発明に係るメモリ管理装置の実施の一形態を示すブロック図である。
【図２】図１のメモリ管理装置の動作を説明する図である。
【図３】図１のメモリ管理装置の動作を説明する図である。
【図４】図１のメモリ管理装置の動作を説明するフローチャートである。
【図５】図１のメモリ管理装置の動作を説明するフローチャートである。
【図６】図１のメモリ管理装置の動作を説明するフローチャートである。
【図７】従来のメモリ管理を説明する図である。
【符号の説明】
【００６２】
１  第１のメモリ部
３  制御部
５  メモリアロケーション処理部
７  学習予約処理部
９  第２のメモリ部
【図１】
2008084098.tif 000003
【図２】
2008084098.tif 000004
【図３】
2008084098.tif 000005
【図４】
2008084098.tif 000006
【図５】
2008084098.tif 000007
【図６】
2008084098.tif 000008
【図７】
2008084098.tif 000009