(57)【要約】【課題】  メモリ領域の動的な割り当て管理を行うとともに、メモリのフラグメンテーションの発生を簡易に抑制することを可能とする。【解決手段】  メモリ領域の取得要求サイズの大きさに応じて、第１の検索方向又は前記第１の検索方向とは逆方向である第２の検索方向のいずれかを選択する検索方向判定部１００と、該選択された検索方向に従ってメモリ内の未使用領域を検索する領域検索部１０１と、前記取得要求サイズを満足する未使用領域を取得する領域確保部１０２とを備える。【選択図】    図１
2005316839.tif 000002
【特許請求の範囲】
【請求項１】
メモリ領域の動的な割り当て管理を行うメモリ管理装置において、
メモリ領域の取得要求サイズの大きさに応じて、第１の検索方向又は前記第１の検索方向とは逆方向である第２の検索方向のいずれかを選択する検索方向判定手段と、
前記選択された検索方向に従ってメモリ内の未使用領域を検索する領域検索手段と、
前記取得要求サイズを満足する未使用領域を取得する領域確保手段とを備え、
前記検索方向判定手段は、前記取得要求サイズと基準サイズとの大小関係に応じた検索方向を選択することを特徴とするメモリ管理装置。
【請求項２】
過去に取得されたメモリ領域のサイズの統計を取る統計処理手段と、
前記統計処理結果から取得される頻度が最大のサイズを前記基準サイズに設定する基準サイズ設定手段と、
を備えたことを特徴とする請求項１に記載のメモリ管理装置。
【請求項３】
メモリ領域の動的な割り当て管理を行うメモリ管理装置において、
メモリ領域の使用時間の長さに応じて、第１の検索方向又は記第１の検索方向とは逆方向である第２の検索方向のいずれかを選択する検索方向判定手段と、
前記選択された検索方向に従ってメモリ内の未使用領域を検索する領域検索手段と、
前記取得要求サイズを満足する未使用領域を取得する領域確保手段と、
を備えたことを特徴とするメモリ管理装置。
【請求項４】
前記検索方向判定手段は、前記使用時間と基準時間との長短関係に応じた検索方向を選択することを特徴とする請求項３に記載のメモリ管理装置。
【請求項５】
前記検索方向判定手段は、取得要求されたメモリ領域に関し、一度取得されたらメモリ使用先の動作中は解放されないものと、取得／解放が繰り返されるものとで検索方向を逆にすることを特徴とする請求項３に記載のメモリ管理装置。
【請求項６】
メモリと、
前記メモリを使用するメモリ使用部と、
請求項１から５のいずれかの項に記載のメモリ管理装置とを備え、
前記メモリ管理装置は、前記メモリ使用部からのメモリ領域取得要求に応じた前記メモリ内の領域を確保することを特徴とする携帯端末装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、携帯端末装置等におけるメモリ管理装置、及び携帯端末装置に関する。
【背景技術】
【０００２】
従来、携帯端末装置等においてメモリ領域の動的な割り当てを行う場合、メモリ領域の取得要求があると、当該取得要求サイズを満たす未使用領域をメモリの領域の特定の一方向から検索し、発見した未使用領域を取得している。また、従来のファイル検索技術として、実体ファイルの管理情報を第１のアドレス方向に従ってメモリに書き込み、該管理情報の検索時には該第１のアドレス方向とは逆方向となる第２のアドレス方向から順次検索する技術が知られている（例えば、特許文献１参照）。
【特許文献１】特開平１０−２８３２４４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかし、上述した従来のメモリ管理技術では、メモリ領域の取得サイズや使用期間がそれぞれ異なることにより、メモリの未使用領域が様々なサイズに分断されてしまう（メモリのフラグメンテーションの発生）。この結果、未使用領域を合計すれば取得可能なサイズであっても、連続した領域ではないために取得不可能となりメモリの使用効率が低下する。図１１は従来のメモリ領域取得方法を説明するための概念図である。図１１において、ステップＳ３００では、領域Ａ，Ｂ，Ｃ，Ｄが取得済みである。この取得時には、各領域Ａ，Ｂ，Ｃ，Ｄのサイズとは無関係に適宜未使用領域が確保されている。次いで、ステップＳ３０１では、領域Ａ，Ｂが使用終了し、解放される。次いで、ステップＳ３０２では、新たに領域Ｅが取得された後に、領域Ｆの取得を試みるが失敗する。このとき、解放された領域Ａ，Ｂの合計によれば、新たな領域Ｅ，Ｆ共に確保できるが、連続した領域ではないために領域Ｆについては取得不可能となっている。
【０００４】
この問題を解決する技術としてガーベジコレクションが知られているが、フラグメンテーションを考慮せずにメモリ管理を行った場合にはガーベジコレクションの実行頻度が増加し、処理量が増えるなどの問題が生じる。一方、フラグメンテーションの発生を抑制するためには、メモリアドレスを管理するなどの特別な制御を行う複雑な処理が必要であった。
【０００５】
本発明は、このような事情を考慮してなされたもので、その目的は、メモリ領域の動的な割り当て管理を行うとともに、メモリのフラグメンテーションの発生を簡易に抑制することができるメモリ管理装置を提供することにある。
【０００６】
また、本発明の他の目的は、本発明のメモリ管理装置を備えた携帯端末装置を提供することにある。
【課題を解決するための手段】
【０００７】
上記の課題を解決するために、本発明に係るメモリ管理装置は、メモリ領域の動的な割り当て管理を行うメモリ管理装置において、メモリ領域の取得要求サイズの大きさに応じて、第１の検索方向又は前記第１の検索方向とは逆方向である第２の検索方向のいずれかを選択する検索方向判定手段と、前記選択された検索方向に従ってメモリ内の未使用領域を検索する領域検索手段と、前記取得要求サイズを満足する未使用領域を取得する領域確保手段とを備え、前記検索方向判定手段は、前記取得要求サイズと基準サイズとの大小関係に応じた検索方向を選択することを特徴としている。
【０００８】
本発明に係るメモリ管理装置においては、過去に取得されたメモリ領域のサイズの統計を取る統計処理手段と、前記統計処理結果から取得される頻度が最大のサイズを前記基準サイズに設定する基準サイズ設定手段とを備えたことを特徴とする。
【０００９】
本発明に係るメモリ管理装置は、メモリ領域の動的な割り当て管理を行うメモリ管理装置において、メモリ領域の使用時間の長さに応じて、第１の検索方向又は記第１の検索方向とは逆方向である第２の検索方向のいずれかを選択する検索方向判定手段と、前記選択された検索方向に従ってメモリ内の未使用領域を検索する領域検索手段と、前記取得要求サイズを満足する未使用領域を取得する領域確保手段とを備えたことを特徴としている。
【００１０】
本発明に係るメモリ管理装置においては、前記検索方向判定手段は、前記使用時間と基準時間との長短関係に応じた検索方向を選択することを特徴とする。
【００１１】
本発明に係るメモリ管理装置においては、前記検索方向判定手段は、取得要求されたメモリ領域に関し、一度取得されたらメモリ使用先の動作中は解放されないものと、取得／解放が繰り返されるものとで検索方向を逆にすることを特徴とする。
【００１２】
本発明に係る携帯端末装置は、メモリと、前記メモリを使用するメモリ使用部と、請求項１から５のいずれかの項に記載のメモリ管理装置とを備え、前記メモリ管理装置は、前記メモリ使用部からのメモリ領域取得要求に応じた前記メモリ内の領域を確保することを特徴としている。
【発明の効果】
【００１３】
本発明によれば、メモリ領域の動的な割り当て管理を行うとともに、メモリのフラグメンテーションの発生を簡易に抑制することができる。
【発明を実施するための最良の形態】
【００１４】
以下、図面を参照し、本発明の一実施形態について説明する。
図１は、本発明の一実施形態に係る携帯端末装置の構成を示すブロック図である。なお、図１には、本発明に係る構成のみを示している。
【００１５】
図１において、メモリ管理部１は、メモリ取得部１０とメモリ解放部１１を備えており、メモリ２内のメモリ領域の取得及び解放を行う。メモリ２には、動的管理メモリ領域２０が設けられている。メモリ取得部１０は、検索方向判定部１００、領域検索部１０１及び領域確保部１０２を備えており、メモリ使用部３からのメモリ領域取得要求に応じて動的管理メモリ領域２０から当該取得要求サイズの未使用領域を取得する。メモリ解放部１１は、領域解放部１１０を備えており、メモリ使用部３からのメモリ領域解放要求に応じて、当該取得済みのメモリ領域を解放する。
【００１６】
次に、図２を参照して、本実施形態に係るメモリ領域取得動作を説明する。図２は、上記図１に示すメモリ取得部１０の処理フロー図である。
図２において、メモリ使用部３からメモリ領域取得要求があると、先ず、検索方向判定部１００は、当該取得要求サイズと基準サイズとを比較する。そして、この比較結果に応じた動的管理メモリ領域２０の検索方向を選択する（ステップＳ１００、Ｓ１０１）。この実施例では、取得要求サイズが基準サイズ以下ならば、動的管理メモリ領域２０の先頭から最後尾へと検索する。一方、取得要求サイズが基準サイズ超過ならば、動的管理メモリ領域２０の最後尾から先頭へと検索する。
【００１７】
次いで、先頭から最後尾へ検索する場合、領域検索部１０１は、動的管理メモリ領域２０内の取得要求サイズを満たす未使用領域を先頭から最後尾の方向へ検索する（ステップＳ１０２）。他方、最後尾から先頭へ検索する場合には、領域検索部１０１は、動的管理メモリ領域２０内の取得要求サイズを満たす未使用領域を最後尾から先頭の方向へ検索する（ステップＳ１０３）。
【００１８】
次いで、領域確保部１０２は、領域検索部１０１による検索の結果として発見された未使用領域を取得し、このメモリ領域の使用可をメモリ使用部３に対して応答する（ステップＳ１０４）。
【００１９】
図３は、上記本実施形態に係るメモリ領域取得方法を説明するための概念図である。
図３において、ステップＳ２００では、領域Ａ，Ｂ，Ｃ，Ｄが取得済みである。この取得時には、各領域Ａ，Ｂ，Ｃ，Ｄのサイズの大小に応じた検索方向、基準サイズ以下の領域Ａ，Ｃは先頭（図中上）から最後尾（図中下）の方向へ、又サイズ超過の領域Ｂ，Ｄは最後尾（図中下）から先頭（図中上）の方向へ、それぞれ未使用領域の検索が行われている。この結果、サイズ小の領域Ａ，Ｃはメモリ領域内の前半に、又、サイズ大の領域Ｂ，Ｄはメモリ領域内の後半に、それぞれ確保されている。次いで、ステップＳ２０１では、領域Ａ，Ｂが使用終了し、解放される。これにより、サイズ小の未使用領域がメモリ領域内の前半に、又、サイズ大の未使用領域がメモリ領域内の後半に、それぞれ発生する。次いで、ステップＳ２０２では、新たにサイズ小の領域Ｅの取得とサイズ大の領域Ｆの取得とが行われる。このとき、基準サイズ以下の領域Ｅは先頭から最後尾の方向へ未使用領域の検索が行われ、満足するサイズの未使用領域が取得される。一方、基準サイズ超過の領域Ｆは最後尾から先頭の方向へ未使用領域の検索が行われ、同様に満足するサイズの未使用領域が取得される。
【００２０】
このように本実施形態によれば、取得要求サイズの大きさに応じた検索方向に従って未使用領域の検索を行うことにより、サイズの大小に応じたメモリ領域の割り当て管理を行うことができる。これにより、メモリ領域の動的な割り当て管理を行うとともに、メモリのフラグメンテーションの発生を簡易に抑制することができる。
【００２１】
なお、取得要求サイズと基準サイズの大小関係により選択される未使用領域検索方向は、一意に定まっていればよく、上記実施例とは各々逆方向であってもよい。
【００２２】
また、基準サイズは予め固定されていてもよく、或いは動的に変更されてもよい。例えば、動作中に取得／解放される各サイズを測定し、この測定結果を統計処理してサイズ毎の取得／解放される頻度を算出する。そして、取得／解放される頻度が最大のサイズを基準サイズに設定する。基準サイズの設定間隔は、一定周期であってもよく、或いは任意の時期（例えばユーザ指示）であってもよい。なお、基準サイズの更新時には新基準サイズに基づいたガーベジコレクションを実行して、メモリ領域の整理を行うことが望ましい。
【００２３】
次に、本実施形態に係るメモリ未使用領域管理方式を説明する。
図４は、ある時点での動的管理メモリ領域２０の使用状況の一例を示す図である。この図４の時点では使用中領域Ａ，Ｂ，Ｃ，Ｄによって未使用領域が４つに分割されている。メモリの未使用領域は、分割された各未使用領域の先頭アドレスをリンクする形で管理される。
【００２４】
未使用領域および使用中領域ともに各々の領域の先頭部分には、図５に示される管理領域を有している。この管理領域には次領域アドレスと本領域サイズが格納される。本領域サイズには当該領域の使用可能部分のサイズが記録される。次領域アドレスには、当該領域が未使用領域である場合にのみ、次の未使用領域の先頭アドレスが記録される（使用中領域の場合には不定な値となる）。なお、メモリを取得したプログラム（メモリ使用部）には、使用中領域内の使用可能領域のアドレスが通知されるため、メモリ使用部によって管理領域が書き換えられることはない。
【００２５】
図６は、未使用領域のリンク方法を説明するための図である。図６において、未使用領域先頭管理部は、静的メモリ領域に準備される。この未使用領域先頭管理部には、未使用領域のうち、最も先頭にある領域のアドレスが記録される。そして、図６に示されるように、各未使用領域の次領域アドレスには次の未使用領域のアドレスが記録される。これにより、各未使用領域が順次リンクされることとなり、動的管理メモリ領域２０内の全ての未使用領域は管理される。
【００２６】
メモリ領域を取得する場合、各未使用領域の本領域サイズが必要なサイズ（取得要求サイズ＋管理領域サイズ）を満足するか否かを判定し、満足するならば当該未使用領域を確保する。このとき、未使用領域の検索は、上述したように動的管理メモリ領域２０の先頭或いは最後尾から開始する。
【００２７】
図７は、先頭から未使用領域を検索する場合のメモリ領域取得方法を説明するための図である。先頭から未使用領域を検索する場合、動的管理メモリ領域２０内の先頭の未使用領域から最後尾方向へと順次、本領域サイズをチェックする。そして、必要なサイズを満たす未使用領域ならば、図７に示されるように、当該未使用領域の先頭から必要サイズ分を確保して使用中領域Ｘとする。
【００２８】
図８は、最後尾から未使用領域を検索する場合のメモリ領域取得方法を説明するための図である。最後尾から未使用領域を検索する場合、動的管理メモリ領域２０内の最後尾の未使用領域から先頭方向へと順次、本領域サイズをチェックする。そして、必要なサイズを満たす未使用領域ならば、図８に示されるように、当該未使用領域の先頭から必要サイズ分を確保して使用中領域Ｘとする。
【００２９】
図９は、使用中領域の解放方法を説明するための図である。
使用中領域を解放する場合、図９に示されるように、解放後に当該領域をリンクする位置を各未使用領域の次領域アドレスを参照して検索し、リンク位置の前後となる各未使用領域とのリンクを再設定する。このとき、前後の未使用領域と連続領域になる場合には、図１０に示されるように、管理領域を削除して管理を統合する。
【００３０】
以上、本発明の実施形態を図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、本発明の要旨を逸脱しない範囲の設計変更等も含まれる。
例えば、メモリ領域の使用時間に応じた検索方向に従って未使用領域の検索を行うようにしてもよい。例えば、メモリ領域の取得時点から解放時点までの使用時間が基準時間以下の場合と基準時間超過の場合とで、検索方向を逆方向にする。この場合、使用時間情報は、取得要求元から通知されるものであってもよく、或いは取得要求元と取得要求サイズとにより区別される統計値であってもよい。
また、一度取得されたらプログラム実行中は解放されないものと、取得／解放が何度も繰り返されるものとで、検索方向を逆方向にしてもよい。この場合、使用時間情報としては例えば長期間／短期間とし、取得要求元から使用時間情報が通知される。
【００３１】
なお、本発明に係る携帯端末装置としては、携帯電話機や、ＰＤＡ（Personal Digital Assistants：個人用情報機器）と称される携帯型の端末などを含むものとする。
【図面の簡単な説明】
【００３２】
【図１】本発明の一実施形態に係る携帯端末装置の構成を示すブロック図である。
【図２】図１に示すメモリ取得部１０の処理フロー図である。
【図３】本発明の実施形態に係るメモリ領域取得方法を説明するための概念図である。
【図４】動的管理メモリ領域２０の使用状況の一例を示す図である。
【図５】未使用領域および使用中領域の構成例を示す図である。
【図６】未使用領域のリンク方法を説明するための図である。
【図７】先頭から未使用領域を検索する場合のメモリ領域取得方法を説明するための図である。
【図８】最後尾から未使用領域を検索する場合のメモリ領域取得方法を説明するための図である。
【図９】使用中領域の解放方法を説明するための図である。
【図１０】使用中領域の解放方法を説明するための図である。
【図１１】従来のメモリ領域取得方法を説明するための概念図である。
【符号の説明】
【００３３】
１…メモリ管理部、２…メモリ、１０…メモリ取得部、１１…メモリ解放部、２０…動的管理メモリ領域、１００…検索方向判定部、１０１…領域検索部、１０２…領域確保部、１１０…領域解放部。
【図１】
2005316839.tif 000003
【図２】
2005316839.tif 000004
【図３】
2005316839.tif 000005
【図４】
2005316839.tif 000006
【図５】
2005316839.tif 000007
【図６】
2005316839.tif 000008
【図７】
2005316839.tif 000009
【図８】
2005316839.tif 000010
【図９】
2005316839.tif 000011
【図１０】
2005316839.tif 000012
【図１１】
2005316839.tif 000013