(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】5868611
(24)【登録日】2016年1月15日
(45)【発行日】2016年2月24日
(54)【発明の名称】ユーザ応答時間を考慮したメモリ管理装置及び方法
(51)【国際特許分類】
G06F 12/02 20060101AFI20160210BHJP
【FI】
G06F12/02 510A
【請求項の数】15
【全頁数】10
(21)【出願番号】特願2011-104862(P2011-104862)
(22)【出願日】2011年5月10日
(65)【公開番号】特開2011-243196(P2011-243196A)
(43)【公開日】2011年12月1日
【審査請求日】2014年5月7日
(31)【優先権主張番号】10-2010-0045589
(32)【優先日】2010年5月14日
(33)【優先権主張国】KR
(73)【特許権者】
【識別番号】390019839
【氏名又は名称】三星電子株式会社
【氏名又は名称原語表記】Samsung Electronics Co.,Ltd.
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100091214
【弁理士】
【氏名又は名称】大貫 進介
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(72)【発明者】
【氏名】林 根 植
(72)【発明者】
【氏名】徐 尚 範
(72)【発明者】
【氏名】李 柱 坪
【審査官】
塩澤 如正
(56)【参考文献】
【文献】
特開2009−003768(JP,A)
【文献】
特開平05−108462(JP,A)
【文献】
特開2001−154860(JP,A)
【文献】
米国特許出願公開第2010/0030994(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 12/00 − G06F 12/06
(57)【特許請求の範囲】
【請求項1】
メモリを割り当てるメモリ割り当て部と、
システムの性能と解除動作の回数別に測定されたユーザ応答時間を考慮して、割り当てられたメモリの解除に関する解除単位を獲得する解除単位算出部と、
前記獲得された解除単位に基づいて割り当てられたメモリを解除するメモリ解除部と、を含むことを特徴とするメモリ管理装置。
【請求項2】
前記メモリ割り当て部は、
前記システムの第1モードに応答して、前記システム上のプロセスに前記メモリの一部領域を割り当てることを特徴とする請求項1に記載のメモリ管理装置。
【請求項3】
前記システムは、デジタルカメラ及びデジタルカメラ付き携帯用機器のうち少なくとも一つを含み、前記第1モードは、前記システムに保存されたデータを再生するための再生モードと定義されることを特徴とする請求項2に記載のメモリ管理装置。
【請求項4】
前記メモリ解除部は、
前記システムの第2モードに応答して、前記システム上のプロセスに割り当てられたメモリの一部領域を前記獲得された解除単位で解除して、前記システムに返還することを特徴とする請求項1に記載のメモリ管理装置。
【請求項5】
前記システムは、デジタルカメラ及びデジタルカメラ付き携帯用機器のうち少なくとも一つを含み、前記第2モードは、前記システムにデータを記録するための記録モードと定義されることを特徴とする請求項4に記載のメモリ管理装置。
【請求項6】
前記解除単位算出部は、
前記システムの性能によって、割り当てられたメモリを解除するための解除動作の回数別に測定されたユーザ応答速度を用いて、最適の解除動作回数を獲得し、割り当てられたメモリの大きさを、獲得された最適の解除動作回数で割って、前記解除単位を獲得することを特徴とする請求項1に記載のメモリ管理装置。
【請求項7】
前記解除単位は、
割り当てられたメモリを解除するときの解除動作の基本単位として定義され、少なくとも1以上のページを含むことを特徴とする請求項1に記載のメモリ管理装置。
【請求項8】
メモリを割り当てる段階と、
システムの性能と解除動作の回数別に測定されたユーザ応答時間を考慮して、割り当てられたメモリの解除に関する解除単位を獲得する段階と、
前記獲得された解除単位に基づいて割り当てられたメモリを解除する段階と、
を含むことを特徴とするメモリ管理方法。
【請求項9】
前記割り当てる段階は、
前記システムの第1モードに応答して、前記システム上のプロセスに前記メモリの一部領域を割り当てる過程を含むことを特徴とする請求項8に記載のメモリ管理方法。
【請求項10】
前記解除単位を獲得する段階は、
前記システムの性能によって、割り当てられたメモリを解除するための解除動作の回数別にユーザ応答速度を測定する過程と、
前記測定されたユーザ応答速度を用いて、最適の解除動作回数を獲得する過程と、
前記割り当てられたメモリの大きさを、前記最適の解除動作回数で割って、前記解除単位を獲得する過程と、
を含むことを特徴とする請求項8に記載のメモリ管理方法。
【請求項11】
前記解除する段階は、
前記システムの第2モードに応答して、前記システム上のプロセスに割り当てられたメモリの一部領域を前記獲得された解除単位で解除して、前記システムに返還する過程を含むことを特徴とする請求項8に記載のメモリ管理方法。
【請求項12】
メモリと、
前記メモリの割り当て及び解除を管理するメモリ管理部と、を含み、
前記メモリ管理部は、システムの性能と解除動作の回数別に測定されたユーザ応答時間を考慮して、前記メモリの解除単位を獲得し、該獲得された解除単位に基づいて割り当てられたメモリ領域を解除することを特徴とする電子装置。
【請求項13】
前記電子装置は、
デジタルカメラ及びデジタルカメラ付き携帯用機器のうち少なくとも一つを含むことを特徴とする請求項12に記載の電子装置。
【請求項14】
前記メモリ管理部は、
前記電子装置に記録されたデータを再生するための再生モードに応答して、前記メモリの一部分を前記電子装置上のプロセスに割り当て、
前記電子装置にデータを記録するための記録モードに応答して、前記割り当てられたメモリの一部分を前記解除単位に基づいて解除することを特徴とする請求項12に記載の電子装置。
【請求項15】
前記メモリ管理部は、
前記電子装置のCPU性能によって、割り当てられたメモリを解除するための解除動作の回数別に測定されたユーザ応答速度を用いて、最適の解除動作回数を獲得し、割り当てられたメモリの大きさを、獲得された最適の解除動作回数で割って、前記解除単位を獲得することを特徴とする請求項12に記載の電子装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、メモリを割り当てるか、該割り当てられたメモリを解除するためのメモリ管理技術に関する。
【背景技術】
【0002】
メモリ割り当て(memory allocation)とは、或るプロセスまたは或るデバイスがメモリの特定領域を使用できるように当該部分を確保することを言う。そして、メモリ割り当て解除(memory deallocation)とは、或るプロセスまたは或るデバイスが確保したメモリの特定領域の占有を解除し、元の状態に戻すことを言う。
【0003】
一方、大容量ファイルを処理するシステム、例えば、大容量の映像データを再生及び録画するデジタルカメラまたはデジタルカムコーダの場合、再生モード(play mode)から記録モード(recording mode)への切換時、ユーザ待機時間が存在することが一般的である。
【0004】
このユーザ待機時間は、モード切換時のメモリ割り当て解除動作が行われることによって発生する。すなわち、再生モードで映像データをメモリにローディングするためにメモリ割り当て動作が行われながら、記録モードへの切換時、メモリ割り当て解除動作が行われるが、このメモリ割り当て解除動作が行われる時、必要以上にCPUが使われることによって、ユーザ待機時間が長くなる場合がある。
【0005】
そして、メモリ割り当て解除動作は、メモリの大きさと関連した所定の固定値を予め定め、その固定値に該当するメモリ領域を反復的に解除する方式で数回にわたって行われることが通常的である。
【発明の概要】
【発明が解決しようとする課題】
【0006】
本発明が解決しようとする課題は、ユーザ応答時間を考慮したメモリ管理装置及び方法を提供することである。
【課題を解決するための手段】
【0007】
本発明の一態様によるメモリ管理装置は、メモリを割り当てるメモリ割り当て部と、システムの性能またはユーザ応答時間を考慮して、割り当てられたメモリの解除に関する解除単位を獲得する解除単位算出部と、獲得された解除単位に基づいて割り当てられたメモリを解除するメモリ解除部と、を含みうる。
【0008】
また、本発明の一態様によるメモリ管理方法は、メモリを割り当てる段階と、システムの性能またはユーザ応答時間を考慮して、割り当てられたメモリの解除に関する解除単位を獲得する段階と、獲得された解除単位に基づいて割り当てられたメモリを解除する段階と、を含みうる。
【0009】
また、本発明の一態様による電子装置は、メモリと、メモリの割り当て及び解除を管理するメモリ管理者と、を含み、メモリ管理者は、システムの性能またはユーザ応答時間を考慮して、メモリの解除単位を獲得し、該獲得された解除単位に基づいて割り当てられたメモリ領域を解除することができる。
【図面の簡単な説明】
【0010】
【
図1】本発明の一実施形態による電子装置を示す図である。
【
図2】本発明の一実施形態によるメモリ割り当て解除動作を示す図である。
【
図3】本発明の一実施形態によるメモリ管理装置を示す図である。
【
図4】本発明の一実施形態による固定型解除単位と可変型解除単位とを示す図である。
【
図5】本発明の一実施形態によるメモリ管理方法を示す図である。
【
図6】本発明の一実施形態による解除単位獲得方法を示す図である。
【発明を実施するための形態】
【0011】
以下、添付した図面を参照して、本発明の実施のための具体例を詳しく説明する。
【0012】
図1は、本発明の一実施形態による電子装置を示す図である。
図1を参照すると、本実施形態による電子装置100は、デジタルカメラ(または、デジタルカムコーダ)またはこのようなデジタルカメラ(または、デジタルカムコーダ)が搭載されたモバイル機器(例えば、スマートフォンPMP、PDAなど)の一部構成になりうる。
【0013】
本実施形態による電子装置100は、メモリ101及びメモリ管理者102を含みうる。メモリ101は、運用体制、応用プログラム及び現在使用中であるデータを保存及び維持する。メモリ管理者102は、電子装置100上で実行されるプロセスにメモリ101の特定部分を割り当て(allocation)るか、或るプロセスに割り当てられたメモリ101の特定部分を割り当て解除(deallocation)して、電子装置100に返還する。本実施形態において、メモリ割り当てとは、或るプロセスまたは或るデバイスがメモリ101の特定領域を使用できるように当該部分を確保することを言う。また、メモリ割り当て解除、メモリ解除または割り当てられたメモリの解除とは、或るプロセスまたは或るデバイスが確保したメモリの特定領域の占有状態を解除し、元の状態に戻すことを言う。
【0014】
例えば、電子装置100が、デジタルカムコーダである場合、メモリ管理者102は、保存された映像データを再生するための再生モードに応答して、メモリ101の特定領域を再生と関連したプロセスに割り当てられる。また、新たな映像データを記録または録画するための記録モードに応答して、再生モードで割り当てられたメモリ101の特定領域を解除することが可能である。
【0015】
メモリ管理者102が、メモリ101を解除する時、解除動作は、所定の解除単位に基づいて行われる。解除単位とは、割り当てられたメモリを解除するときの解除動作の基本単位として定義される。このような解除単位は、数枚のページからなりうるが、電子装置100のCPU性能及び/またはユーザ応答時間を考慮して決定されうる。
【0016】
解除単位は、システム性能と関係なく、所定の固定値を有することもあるが、本実施形態による電子装置100は、システム性能によって解除単位を適切に決定し、該決定された解除単位に基づいてメモリ解除動作を行うことによって、ユーザ待機時間を短縮しうる。
【0017】
例えば、電子装置100が、デジタルカムコーダである場合、再生モードから記録モードへの切換時、メモリ割り当て解除が行われるが、このメモリ割り当て解除をシステムの性能及び/またはユーザ応答時間によって決定される所定の解除単位で行って、モード切換時のユーザ待機時間を短縮することが可能である。
【0018】
図2は、本発明の一実施形態によるメモリ割り当て解除動作を示す図である。
図2を参照すると、割り当てられたメモリ領域201は、9枚のページ202からなり、メモリ割り当て解除動作の基本単位である解除単位は、3枚のページからなる。しかし、これは、説明の便宜上、例示的に表わしたものに過ぎないものであって、実際システムに適用する場合には、数百または数千枚のページ202に割り当てられたメモリ領域201が構成されるということはいうまでもなく、解除単位も数百または数千枚のページ202で構成することができる。
【0019】
本実施形態によって、メモリ割り当て解除動作は、次のように数回にわたってなされる。例えば、まず、解除単位に対応する最初の部分203の割り当てが解除される。最初の部分203の割り当てが解除されれば、解除単位に対応する二番目の部分204の割り当てが解除される。同様に、二番目の部分204の割り当てが解除されれば、解除単位に対応する三番目の部分205の割り当てが解除される。このように解除動作がなされる回数を解除動作回数と名付ける。すなわち、
図2で、解除動作回数は3回である。
【0020】
解除動作回数は、ユーザの待機時間またはユーザの応答時間と関連する。例えば、メモリ割り当て解除は、デジタルカムコーダの再生モードと記録モードとの間のモード切換時に行われるが、解除動作回数によってユーザ待機時間が早くなることもあり、遅くなることもある。すなわち、最も早いユーザ待機時間に対応する最適の解除動作回数が存在することができる。
【0021】
図3は、本発明の一実施形態によるメモリ管理装置を示す図である。これは、
図1のメモリ管理者102に関する構成の一例になりうる。
【0022】
図1及び
図3を参照すると、メモリ管理装置300は、メモリ割り当て部301、解除単位算出部302、及びメモリ解除部303を含む。
【0023】
メモリ割り当て部301は、システムの第1モードに応答して、システム上のプロセスにメモリ101の一部領域を割り当てる。システムが、デジタルカムコーダである場合、例えば、メモリ割り当て部301は、保存された映像データを再生または表示するための再生モードによってメモリ割り当て動作を実行することが可能である。
【0024】
メモリ解除部303は、システムの第2モードに応答して、システム上のプロセスに割り当てられたメモリ101の一部領域を所定の解除単位で解除して、システムに返還する。システムが、デジタルカムコーダである場合、例えば、メモリ解除部303は、映像データを記録または録画するための記録モードによってメモリ割り当て解除動作を実行することができる。
【0025】
メモリを割り当て、解除するためには、mmap()システムコールとmunmap()システムコールとが使われる。mmap()システムコールは、二つ以上のプログラムによって読み取られるか、記録されるメモリ領域を設定する。元々このシステムコールは、プロセス空間にマッピングする目的で導入された機能であるが、実際では、メモリ領域を割り当てる目的でも使われる。mmap()システムコールを使う時、offパラメータを指定すれば、共有されるセグメントによってアクセスされるファイルデータの開始を変更し、特定メモリアドレスを要請するために、addrパラメータを使うことができる。そして、munmap()システムコールは、mmap()システムコールによって確保したプロセス空間領域を解除可能にする。
【0026】
メモリ割り当て解除と関連して、解除単位算出部302は、割り当て解除動作の基本単位である解除単位をシステムの性能を考慮して決定する。例えば、解除単位算出部302は、システムのCPU性能またはCPU動作速度を考慮して、次のように解除単位を算出することが可能である。
【0027】
解除単位=割り当てられたメモリの大きさ/最適の解除動作回数 (1)
式(1)を参照して、解除単位算出方法を説明する。
【0028】
まず、最初にメモリが割り当てられれば、予め定義された解除動作回数でメモリ割り当て解除動作を行った場合のユーザ応答時間を測定する。この際、ユーザ応答時間は、CPUの種類、すなわち、CPUの性能によって変わりうる。そして、解除動作回数を増減しながら、各回数別にユーザ応答時間を測定し、最小のユーザ応答時間を有する解除動作回数を最適の解除動作回数として選択する。最適の解除動作回数が選択されれば、割り当てられたメモリの大きさを用いて解除単位を決定する。
【0029】
例えば、最初100MBのメモリが割り当てられ、予め定義された基準解除動作回数が25回と仮定する。解除単位算出部302は、基準解除動作回数の一定範囲内で各回数別にユーザ応答時間を測定する。例えば、解除単位算出部302は、25回を中心に一定回数ほど増減した範囲で回数別にユーザ応答時間を測定することが可能である。この際、26回の解除動作回数でユーザ応答時間が最も短かったならば、この26回を最適の解除動作回数として選択する。最適の解除動作回数が得られれば、式(1)のように割り当てられたメモリの大きさを、最適の解除動作回数で割って、解除単位を決定することが可能である。
【0030】
また、以後300MBのメモリが割り当てられれば、再びユーザ応答時間を測定して最適の解除動作回数を選択するが、この際、26回ではない他の最適の解除動作回数が選択されうる。例えば、30回の最適の解除動作回数が選択されれば、300MB/30回の解除単位で割り当て解除を行う。
【0031】
図4は、本発明の一実施形態による固定型解除単位と可変型解除単位とを示す図である。
図4を参照すると、メモリ割り当てを解除する時、システムのCPU性能と無関係に解除単位が固定される場合とCPU性能を考慮して解除単位が調節される場合との差異点が分かる。例えば、割り当てられた100MBを解除する場合、固定型解除単位を使えば、8page単位で3,328回にわたって解除動作が行われる。しかし、可変型解除単位を使えば、CPUの性能を考慮して最も早いユーザ応答速度が得られる解除単位である1,024pageが得られ、該得られた1,024page単位で26回にわたって解除動作が行われることが可能である。すなわち、システムの種類またはCPUの性能によって100MBを解除する時、8page単位で3,328回わたって解除する場合と1,024page単位で26回にわたって解除する場合、ユーザ応答時間が異なりうる。この際、解除単位を或る特定の値で固定せず、最も早いユーザ応答時間が得られる値で調節して解除動作を行えば、メモリ割り当て解除動作によるユーザ待機時間を短縮しうる。
【0032】
図5は、本発明の一実施形態によるメモリ管理方法を示す図である。
【0033】
図1、
図3及び
図5を参照して、本実施形態によるメモリ管理方法を説明すれば、次の通りである。
【0034】
まず、メモリ101を割り当てる(501)。例えば、電子装置100が、デジタルカムコーダである場合、メモリ割り当て部301が保存された映像データを再生するための再生モードに応答して、メモリ101の特定領域を割り当てることが可能である。
【0035】
引き続き、メモリ101の割り当て解除によってシステムの性能及び/またはユーザの応答時間を考慮した解除単位を獲得する(502)。例えば、解除単位算出部302が、式(1)のように解除単位を獲得することが可能である。
【0036】
解除単位が獲得されれば、該獲得された解除単位に基づいてメモリ101の割り当てを解除する(503)。例えば、電子装置100が、デジタルカムコーダである場合、メモリ解除部303が、映像データを記録するための記録モードに応答して、再生モードで割り当てられたメモリ101の特定領域を解除することが可能である。
【0037】
図6は、本発明の一実施形態による解除単位獲得方法を示す図である。
【0038】
図3及び
図6を参照すると、解除単位を得るために、まず解除動作回数別にユーザ応答時間を測定する(601)。例えば、解除単位算出部302が、予め定義された解除動作回数を基準に各回数別にユーザ応答時間を測定することが可能である。
【0039】
そして、最適の解除動作回数を決定する(602)。例えば、解除単位算出部302が、測定されたユーザ応答時間を用いて最小応答時間に対応する解除動作回数を選択することが可能である。
【0040】
そして、割り当てられたメモリ領域の大きさを、最適の解除動作回数で割って、解除単位を獲得する(603)。例えば、解除単位算出部302が、式(1)のように解除単位を計算することが可能である。
【0041】
一方、本実施形態によるメモリ管理装置及び方法は、或るシステムの運用体制の一部として具現することが可能である。運用体制は、応用プログラムからシステムコールが呼び出されるか、ハードウェアからインタラプトが発生した場合にのみ動作する。例えば、本実施形態による運用体制が、ライブラリー関数mmap&munmapを呼び出してメモリを割り当て、解除する作業を行う場合、応用プログラムは、ライブラリー内に存在するライブラリー関数mmapを呼び出す。ライブラリー関数mmapは、その中でmmapシステムコールを呼び出す。mmapシステムコールは、普通関数のように見えるが、アーキテクチャー依存的に当該インストラクションを実行し、強制的にインタラプトを発生させる。これにより、運用体制内の機能を呼び出す。運用体制は、mmapシステムコール処理を始める。mmapシステムコールは、仮想ファイルシステム機能で実行される。ファイルシステム(Filesystem)は、対象となるファイルのデータが如何なるデバイスの如何なるブロックに配されているかが分かり、そのデバイスを制御するブロックデバイスドライバーに読み取りを要請する。ブロック型デバイスドライバーは、読み取り要請によってハードウェアを制御する。ハードウェアは、I/O要請によってデバイスブロック上のデータを運用体制内のキャッシュ領域に伝送する。伝送が完了されれば、ハードウェアインタラプトと言う形態で運用体制に通知する。ファイルシステムは、運用体制内のキャッシュ領域からライブラリー関数mmapが管理しているバッファ内のデータをコピーする。これで、運用体制のmmapシステムコール処理が終わる。
【0042】
また、本発明の実施形態は、コンピュータで読み取り可能な記録媒体にコンピュータで読み取り可能なコードとして具現しうる。コンピュータで読み取り可能な記録媒体は、コンピュータシステムによって読み取れるデータが保存されるあらゆる種類の記録装置を含む。
【0043】
コンピュータで読み取り可能な記録媒体の例としては、ROM、RAM、CD−ROM、磁気テープ、フロッピー(登録商標)ディスク、光データ保存装置などがあり、また、キャリアウェーブ(例えば、インターネットを通じる伝送)の形態で具現するものを含む。また、コンピュータで読み取り可能な記録媒体は、ネットワークで連結されたコンピュータシステムに分散されて、分散方式でコンピュータで読み取り可能なコードとして保存されて実行可能である。そして、本発明を具現するための機能的な(functional)プログラム、コード及びコードセグメントは、本発明が属する技術分野のプログラマーによって容易に推論されうる。
【0044】
以上、本発明の実施のための具体例を説明した。前述した実施形態は、本発明を例示的に説明するためのものであって、本発明の権利範囲が特定の実施形態に限定されるものではない。
【産業上の利用可能性】
【0045】
本発明は、ユーザ応答時間を考慮したメモリ管理装置及び方法関連の技術分野に適用可能である。