JP4176682B2 - メモリ管理方式 - Google Patents
メモリ管理方式 Download PDFInfo
- Publication number
- JP4176682B2 JP4176682B2 JP2004206464A JP2004206464A JP4176682B2 JP 4176682 B2 JP4176682 B2 JP 4176682B2 JP 2004206464 A JP2004206464 A JP 2004206464A JP 2004206464 A JP2004206464 A JP 2004206464A JP 4176682 B2 JP4176682 B2 JP 4176682B2
- Authority
- JP
- Japan
- Prior art keywords
- fixed
- memory
- length
- area
- length memory
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Description
上記可変長メモリ管理方式では,例えば,CPU等によりサイズαのデータの割付要求が出されると,メモリの先頭アドレスから順に上記サイズαのデータを収容し得る空き領域(未使用領域),即ち開放されたメモリ領域があるか否かが探索され(探索処理),この探索結果に基づいて上記割付要求を満たす空き領域があると判断されると,上記空き領域が上記サイズαと残りの空き領域とに分割され(領域分割処理),その後,上記サイズαの空き領域にデータが割り付けられる。また,割り付けられたデータの開放要求が出されると,CPU等により指定されたメモリアドレスの割付領域内のデータが消去された後に開放された領域の前後のメモリ領域の使用状況を確認して,隣接する空き領域があれば複数の空き領域を併合する処理(領域併合処理)が行われる。
このように,可変長メモリ管理方式によれば,データを収容し得る空き領域さえ存在しておれば,任意のサイズのメモリ割り付けが要求されたサイズどおりに行えるため,メモリ内に無駄なメモリ領域が生じ難い。従って,効率よくメモリ領域を使用することができる。しかし,その反面,割り付け時に行われる空き領域の上記探索処理或いは上記領域分割処理等の前処理や,開放時に行われる上記領域併合処理や空き領域のチェーン処理等の後処理が付随することになるため,メモリ管理における各処理の速度が遅くなる。特に,メモリの末端アドレス部分ほど前記した割付時探索処理に時間がかかり,処理速度が極端に落ちる傾向にある。
一方,上記固定長メモリ管理方式では,メモリ領域を所定のサイズの複数のメモリセル(固定長メモリ領域と同義)に区切り,上記メモリセル単位でメモリが管理される。そのため,メモリ領域の割り付けや開放が高速に行えるという利点がある。しかし,上記メモリセルのサイズを大きくするほど,管理されるメモリセルの数が減って処理速度は上がるが,上記メモリセルにデータが割り付けられたときの上記メモリセルにおける端数が拡大するため,上記メモリセル内に使用することのできない無駄なメモリ領域が生じ,メモリの使用効率が悪くなるという問題がある。
(1)一の可変長データに対して,連続するメモリセルを割り付ける必要があるため,メモリセルの割り付けと開放が繰り返された場合は,未使用のメモリセルが動的メモリ領域内に分散して,連続した未使用のメモリセルが減少することになり却ってメモリの使用効率が低下する。
(2)固定長のメモリセルを使用するため,可変長データに対しては従来と同様に,メモリセルのサイズ以下の割り付け要求が発生した場合に,割り付けられた複数のメモリセルの最後のメモリセルに,無駄な割り付け端数が発生するため,メモリの使用効率が低下する。
(3)メモリ内に,実データ以外の前記ビットマップ等のデータを格納しておく必要があるため,メモリ管理領域内における実データの記憶管理領域が相対的に減少する。
しかし,上記メモリ管理方式Xを用いて上記固定長メモリブロックを元の可変長領域に変更する場合,以下の問題が生じるおそれがある。例えば,上記固定長メモリブロック内の複数の固定長メモリ領域が全て開放されたために上記固定長メモリブロックを元の可変長領域に変更する処理が行われ,その直後に上記所定サイズのデータの割付要求がなされた場合は,上記固定長メモリブロックを新たに再確保する処理が行われる。そのため,固定長メモリ領域への割付,開放が連続して行われた場合に,上記変更処理,確保処理が繰り返し行われることになる。このように変更処理,確保処理が繰り返し行われると,上記固定長メモリブロックのサイズは単純に割付,開放されるメモリ領域のサイズと較べて格段に大きいため,上記変更処理や確保処理を実行するCPUやメモリコントローラ等の負担が増大するという問題がある。
そこで,本発明は上記事情に鑑みてなされたものであり,その目的とするところは,一旦,可変長メモリ領域に確保された固定長メモリブロックの領域を元の可変長領域に変更する際に生じ得る処理負担の大きい繰り返し処理を排除してメモリの割付及び開放処理を高速に行い,且つ,メモリ内に使用することができない未使用領域を生じさせずに使用効率のよいメモリ管理方式を提供することにある。
また,上記固定長ブロックの固定長メモリ領域の割り付け・開放に伴ってチェーンの張り替えを実行することにより該固定長メモリ領域がチェーン管理される構成では,上記メモリ上の可変長領域に二以上の上記固定長メモリブロックが確保されている場合に,上記可変長領域に確保された二以上の上記固定長メモリブロックのいずれか一つの固定長メモリブロック内の上記固定長メモリ領域が全て開放されたとき,該一つの固定長メモリブロックの他に上記固定長メモリ領域が全て開放された上記固定長メモリブロックが存在しない場合には該一つの固定長メモリブロックの固定長メモリ領域を元の可変長領域に変更せず,該一つの固定長メモリブロックの他に上記固定長メモリ領域が全て開放された上記固定長メモリブロックが存在する場合には該一つの固定長メモリブロックの固定長メモリ領域をチェーンの張り替えの実行前に元の可変長領域に変更することが望ましい。
また,上記固定長ブロックの固定長メモリ領域の割り付け・開放に伴ってチェーンの張り替えを実行することにより該固定長メモリ領域がチェーン管理される構成では,上記メモリ上の可変長領域に二以上の上記固定長メモリブロックが確保されている場合に,上記可変長領域に確保された二以上の上記固定長メモリブロックのいずれか一つの固定長メモリブロック内の上記固定長メモリ領域が全て開放されたとき,該一つの固定長メモリブロックの他に上記固定長メモリ領域が全て開放された上記固定長メモリブロックが存在しない場合には該一つの固定長メモリブロックの固定長メモリ領域を元の可変長領域に変更せず,該一つの固定長メモリブロックの他に上記固定長メモリ領域が全て開放された上記固定長メモリブロックが存在する場合には該一つの固定長メモリブロックの固定長メモリ領域をチェーンの張り替えの実行前に元の可変長領域に変更するように構成することにより,該一つの固定長メモリブロックに対してのチェーンの張り替えのための処理負担が軽減される。
ここに,図1は本発明のメモリ管理方式Xを実現するためのハードウェア構成を示すブロック図,図2は図1の管理領域6内に作成され,本発明のメモリ管理方式Xに係わる固定長メモリ領域の管理テーブルの内容を示すテーブル図,図3は図1の実データ領域7にデータが順次割り付けられたときの実データ領域7の状態を示す模式図,図4はメモリ管理手段4によって図3で示した可変長データや固定長データが割り付けられる概略手順を説明するフローチャート,図5は固定長メモリブロックの領域BB1を作成する手順を説明する模式図,図6は固定長メモリブロックの領域BB1内の固定長メモリ領域を割り付ける手順を説明する模式図,図7はメモリアドレス611番地の固定長メモリ領域11を割り付けた後の後処理を説明するための模式図,図8は図1の実データ領域7に作成された3つの固定長メモリブロック領域BB1〜BB3のうちの固定長メモリブロックBB3内の先頭アドレス711の固定長メモリ領域11を開放する手順を説明するための模式図,図9は図1の実データ領域7に確保された固定長メモリブロック領域が可変長領域に変更されるときの実データ領域7の状態を示す模式図,図10は図7に示すメモリアドレス612番地の固定長メモリ領域11が開放された場合の新たなポインタとチェーンを示す図,図11はメモリ管理手段4によって固定長データの格納領域として割り付けられた固定長メモリ領域を開放する概略手順を説明するフローチャートである。
いま,S1で,CPU1から,あるサイズのメモリの割り付け要求がメモリ管理手段4に出されると,S2では,メモリ管理手段4により管理テーブル10(図2)が検索され,要求された割付サイズが本メモリ管理方式Xによるメモリ管理を行う固定データサイズとして登録されているか否かが判断される。S3での判断が行われ,割り付け要求がなされたデータのサイズが登録されていない場合は,S8に分岐して通常の可変長メモリ管理方式に基づいて,可変長データ領域(例えば可変長データ領域AA)が実データ領域7内に確保される(図3(b)参照)。
現時点では,全ての固定長メモリ領域11は未使用状態(空き状態)である。そのため,最初のアドレス611番地の固定長メモリ領域11には,次の空いている固定長メモリ領域11のアドレス,すなわち,612番地が書き込まれ,同様にして,612番地の固定長メモリ領域11内には613番地が書き込まれる。つまり,n番目の空き固定長メモリ領域11内にはn+1番目の空き固定長メモリ領域11を指すアドレスが書き込まれることになる。そして,最後の642番地の固定長メモリ領域11は次に指し示す空き固定長メモリ領域がないため,“0”が書き込まれる。このようにして,空き領域に次の空き領域のアドレスが書き込まれることにより,管理テーブル10の先頭アドレスの欄に書き込まれた次の番地を示すアドレス(ポインタ)を順番にたどっていけば,全ての空き固定長メモリ領域11が順番に繋がるチェーンが完成する。上記チェーンの終端は,ポインタとして“0”を持つ固定長メモリ領域11である。
その後,管理テーブル10の空き個数欄に,空き固定長メモリ領域11の個数(現時点では32個)が書き込まれる。
このようなS5(図4)の手順を踏むことにより,固定長メモリブロック領域BB1が作成される。
なお,その後,図4のS6の割り付けが行われることにより,611番地の空き固定長メモリ領域11がデータの格納領域として割り付けられるため,後述するS7のチェーン張り替え時に,上記管理テーブル10の空き個数欄が31個に書き換えられる。その後,CPU1(図1)からの要求に応じて,メモリ管理手段4(図1)により611番地にデータが書き込まれる。
まず,S11で,CPU1から上記メモリ管理手段4(図1)に対してアドレス711を指定して,固定長メモリブロックBB3内のアドレス711の固定長メモリ領域11を開放する開放要求が出されると,S12では,指定されたアドレス711の固定長メモリ領域11が開放される。その後,S13において,固定長メモリブロックBB3内の全ての固定長メモリ領域11が開放されたか否か,即ち,固定長メモリブロックBB3内の全ての固定長メモリ領域11が空き状態(未使用)であるか否かが判断される。かかる判断は,開放を行なう前後における図8(a)の管理テーブルの空き個数の欄の数値に基づいて行われる。この例では,固定長メモリブロックBB3のアドレス711の固定長メモリ領域11のみが使用中であったため,この固定長メモリ領域11が開放されることにより,固定長メモリブロックBB3内の全ての固定長メモリ領域が開放されたと判断されて,処理はS14に移行する。なお,ステップS13の判断でNoと判断された場合は,S16に移行して,後述するチェーンの張り替えが行われる。
S15では,上記固定長メモリブロックBB2又はBB3のいずれかが可変長メモリ領域に変更される。即ち,固定長メモリ領域を割り付けるために確保していた固定長メモリブロックの領域が元の可変長メモリ領域に復元される。図9(c)に変更後の実データ領域7の状態を示す。なお,可変長メモリ領域に変更される領域は上記固定長メモリブロックBB2又はBB3のいずれであってもかまわないが,先に固定長メモリ領域が全て開放されていた上記固定長メモリブロックBB2では既にチェーンの張り替えが行われているため,上記固定長メモリブロックBB3を可変長メモリ領域に変更することが望ましい。このほうが,固定長メモリブロックBB3に対してチェーンの張り替えを行う必要が無いため,その分,処理負担が軽減される。
また,固定長メモリ領域11がデータの格納領域として割り付けられると,その後の処理としては,管理テーブル10の先頭アドレス欄に,割り付けられた固定長メモリ領域11が有していたポインタを転記するだけの1つの動作ですむ。また,固定長メモリ領域11が開放されると,後処理として,開放された固定長メモリ領域11のアドレスを,管理テーブル10の先頭アドレス欄にポインタとして書き込むことと,開放された固定長メモリ領域11に,それまで管理テーブル10の先頭アドレス欄が有していたポインタを転記することの2つの動作ですむ。つまり,チェーンの最初のポインタ,或いは最初と2番目のポインタを変更するのみで,空き固定長メモリ領域11を繋いで示すチェーンの張り替えが完了することになり,更にメモリ管理の高速化が図れる。
また,これまで,可変長メモリ管理方式によって1024バイトや256バイトの固定長メモリブロック領域BB1等やCCが管理され,更に,その固定長メモリブロック領域BB1内やCC内では,空き固定長メモリ領域をポインタでチェーン管理することを具体的な例をあげて説明したが,本発明はこうした例や数値に限定されないことは言うまでもない。
また,1024バイトや256バイトの固定長は,本発明が実施される装置によって変わるものであり,例えば2048バイトや512バイト,或いはその他の固定データサイズであってもよい。更に,これらの固定データサイズは,本発明が実施される装置で頻繁にメモリ割り付け要求が出されるサイズに設定するとよい。そうすると,従来の固定長メモリ管理方式のように,要求されるサイズとの間に端数が発生してメモリの使用効率が低下することもない。
2…OS
3…プログラム
4…メモリ管理手段
5…メモリ
6…管理領域
7…実データ領域
10…管理テーブル
11…固定長メモリ領域
A,B,C,D… 空き領域
AA…可変長データ領域
BB,BB1,BB2,CC…固定長メモリブロック領域
Claims (2)
- メモリ上の可変長領域に予め確保された所定のデータサイズの複数の固定長メモリ領域からなる固定長メモリブロックの領域を元の可変長領域に変更するメモリ管理方式において,
上記メモリ上の可変長領域に二以上の上記固定長メモリブロックが確保されている場合に,上記確保された二以上の上記固定長メモリブロックのうちの少なくとも二以上の固定長メモリブロック内の全ての上記固定長メモリ領域が開放されたことを条件に,該固定長メモリ領域が全て開放された二以上の固定長メモリブロックのうちのいずれか一つの固定長メモリブロック全体の領域を元の可変長領域に変更し,上記固定長メモリ領域が全て開放された上記固定長メモリブロックが一つである場合には該固定長メモリブロックを元の可変長領域に変更しないことを特徴とするメモリ管理方式。 - 上記固定長ブロックの固定長メモリ領域の割り付け・開放に伴ってチェーンの張り替えを実行することにより該固定長メモリ領域がチェーン管理されてなり,
上記メモリ上の可変長領域に二以上の上記固定長メモリブロックが確保されている場合に,上記可変長領域に確保された二以上の上記固定長メモリブロックのいずれか一つの固定長メモリブロック内の上記固定長メモリ領域が全て開放されたとき,該一つの固定長メモリブロックの他に上記固定長メモリ領域が全て開放された上記固定長メモリブロックが存在しない場合には該一つの固定長メモリブロックの固定長メモリ領域を元の可変長領域に変更せず,該一つの固定長メモリブロックの他に上記固定長メモリ領域が全て開放された上記固定長メモリブロックが存在する場合には該一つの固定長メモリブロックの固定長メモリ領域をチェーンの張り替えの実行前に元の可変長領域に変更する請求項1に記載のメモリ管理方式。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2004206464A JP4176682B2 (ja) | 2004-07-13 | 2004-07-13 | メモリ管理方式 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2004206464A JP4176682B2 (ja) | 2004-07-13 | 2004-07-13 | メモリ管理方式 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2006031187A JP2006031187A (ja) | 2006-02-02 |
| JP4176682B2 true JP4176682B2 (ja) | 2008-11-05 |
Family
ID=35897489
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2004206464A Expired - Fee Related JP4176682B2 (ja) | 2004-07-13 | 2004-07-13 | メモリ管理方式 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP4176682B2 (ja) |
Families Citing this family (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP5977011B2 (ja) * | 2011-09-29 | 2016-08-24 | 富士通株式会社 | ストレージ装置、制御装置およびストレージ装置制御方法 |
-
2004
- 2004-07-13 JP JP2004206464A patent/JP4176682B2/ja not_active Expired - Fee Related
Also Published As
| Publication number | Publication date |
|---|---|
| JP2006031187A (ja) | 2006-02-02 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US11573701B2 (en) | Memory device and host device | |
| US7610434B2 (en) | File recording apparatus | |
| JP2020046963A (ja) | メモリシステムおよび制御方法 | |
| JP2019020788A (ja) | メモリシステムおよび制御方法 | |
| KR20090026941A (ko) | 복수개의 비휘발성 데이터 저장매체를 구비한 저장장치의가상 파일 시스템에서 어드레스 맵핑을 수행하는 방법 및그 장치 | |
| CN111522507A (zh) | 一种低延迟的文件系统地址空间管理方法、系统及介质 | |
| US20060218347A1 (en) | Memory card | |
| CN112650577A (zh) | 内存管理方法和装置 | |
| CN111190537B (zh) | 一种追加写场景下顺序存储磁盘管理的方法及系统 | |
| CN108664577B (zh) | 一种基于flash空闲区的文件管理方法及系统 | |
| CN108304259B (zh) | 内存管理方法及系统 | |
| KR100907477B1 (ko) | 플래시 메모리에 저장된 데이터의 인덱스 정보 관리 장치및 방법 | |
| JP4311312B2 (ja) | 時系列データ管理方法およびプログラム | |
| US9146859B2 (en) | Information processing apparatus, method, and program for improving use efficiency of a storage apparatus | |
| JP4176682B2 (ja) | メモリ管理方式 | |
| JP4204405B2 (ja) | メモリ管理方式 | |
| JP2006039942A (ja) | 階層記憶システムにおけるファイル管理装置及びそのファイル管理方法 | |
| JP4033829B2 (ja) | メモリ管理システム | |
| EP4521223A1 (en) | Operation method for memory system, memory system and storage medium | |
| WO2014114947A1 (en) | Method and system for allocating space on a storage device | |
| JP6276208B2 (ja) | メモリシステム及びプログラム | |
| KR20260055132A (ko) | 압축 메모리 장치 및 그 방법 | |
| CN120386744A (zh) | 存储系统及其操作方法 | |
| JP2009217357A (ja) | ファイルスペース追加システム、ファイルスペース追加方法、及びファイルスペース追加プログラム | |
| JPH08249225A (ja) | メモリ管理装置 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080527 |
|
| A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080717 |
|
| TRDD | Decision of grant or rejection written | ||
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20080819 |
|
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20080820 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110829 Year of fee payment: 3 |
|
| R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110829 Year of fee payment: 3 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120829 Year of fee payment: 4 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120829 Year of fee payment: 4 |
|
| S533 | Written request for registration of change of name |
Free format text: JAPANESE INTERMEDIATE CODE: R313533 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120829 Year of fee payment: 4 |
|
| R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130829 Year of fee payment: 5 |
|
| LAPS | Cancellation because of no payment of annual fees |