JP5377001B2 - メモリ管理システム、電子機器及びメモリ管理プログラム - Google Patents
メモリ管理システム、電子機器及びメモリ管理プログラム Download PDFInfo
- Publication number
- JP5377001B2 JP5377001B2 JP2009047280A JP2009047280A JP5377001B2 JP 5377001 B2 JP5377001 B2 JP 5377001B2 JP 2009047280 A JP2009047280 A JP 2009047280A JP 2009047280 A JP2009047280 A JP 2009047280A JP 5377001 B2 JP5377001 B2 JP 5377001B2
- Authority
- JP
- Japan
- Prior art keywords
- memory
- block
- unused
- memory block
- size
- 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
図1に示すように従来のメモリプール方式では、メモリ空間中からアプリケーションが必要時にメモリ領域を取得(割当)して、メモリの使用が終わると同領域を解放する。この動作により、フラグメンテーションと呼ばれるメモリが細分化された状態となり連続した大容量のメモリ領域を取ることが困難となる問題がある。
そこで、物理メモリ空間を小サイズの領域(以降マイクロパーテーションと呼ぶ)に切り分けて、論理アドレス空間をこのマイクロパーテーションの実メモリの物理アドレス空間に変換する方法によって、前記した不具合を解消する。
このようなマイクロパーテーションを用いた、論理アドレス空間と物理アドレス空間との間での変換を行う方法において、アプリケーションによって使用されるメモリ空間と未使用のメモリ空間により分けられるが、未使用のメモリ領域は、図8に示すようなリンクリスト構造により結合されている。
(1)メモリレンジ1をメモリサイズが0x0001から0x00FF
(2)メモリレンジ2をメモリサイズが0x0100から0x0FFF
(3)メモリレンジ3をメモリサイズが0x1000以上
とする3つのレンジに分けて、それぞれのレンジ毎に連結したリンクリスト構造にしてある。
図38に本発明実施例のメモリ管理システムの機能ブロック図を示す。
閾値種別管理257は、メモリの未使用領域のサイズに従って、物理パーテーション内でサイズ毎にグループ分けを行う。
本方式のさらに詳細な構造について、従来例(非特許文献1参照)との比較を示して以下に説明する。
Aのアドレス+Aのレングス<Dのアドレス
次の未使用領域はGで
Dのアドレス+Dのレングス<Gのアドレスとなり、
CとDが連結されない、またDとEが連結されない。
本発明実施例のメモリ管理システムにより、以下のことが可能となる。
201 変換テーブル管理部(物理パーテーション管理部、論理パーテーション管理部)
211 パーテーション管理部
213 パーテーションサイズ管理部
215 アドレス(物理・論理)管理部
217 ID管理部
219 フラグ(待機・停止)管理部
221 アドレス変換部(変換部)
231 物理アドレスから論理アドレスへの変換部
233 論理アドレスから物理アドレスへの変換部
241 メモリ統計情報管理部(物理パーテーション管理部)
251 メモリ使用ブロック数の管理部
253 メモリ使用バイト数の管理部
255 パーテーションの閾値チェック部
257 閾値種別管理部
261 MCB管理部
271 malloc()処理部
273 free()処理部
Claims (11)
- 論理アドレス空間においてアプリケーションが使用する仮想メモリの割当と解放を管理する論理パーテーション管理部と、
物理アドレス空間において実メモリを小サイズ毎の物理パーテーションに切り分けて前記実メモリの割当と解放を管理する物理パーテーション管理部と、
前記論理アドレス空間と前記物理アドレス空間との間のアドレス変換を行う変換部とを有し、
前記物理パーテーション管理部は、メモリコントロールブロックを用いて未使用のメモリブロックの割り当て及び解放を行い、前記メモリコントロールブロックは、前記物理パーテーション内の各メモリブロックのヘッダ部分であり、先頭に次の同種のメモリブロックを示すポインタとメモリブロックのサイズを有し、前記ポインタは、そのポインタを含むメモリブロックが未使用の場合は、次の同じメモリレンジの未使用ブロックの先頭を表し、使用中の場合は、隣接する一つ前の未使用メモリブロックの先頭アドレスを示し、前記物理パーテーションの未使用領域をそのサイズ毎に分類しておき、メモリ割当要求の際には当該割当要求のサイズを含む前記分類された未使用領域から前記メモリコントロールブロックを用いて検索し選択する、
ことを特徴とするメモリ管理システム。 - 請求項1のメモリ管理システムであって、
前記変換部は、前記論理アドレス空間と前記物理アドレス空間とを関連付ける変換テーブルを生成する
ことを特徴とするメモリ管理システム。 - 請求項1又は2のメモリ管理システムであって、
前記論理パーテーション管理部は、前記仮想メモリの割当をアプリケーション毎に連続した論理アドレス空間に確保する
ことを特徴とするメモリ管理システム。 - 請求項1から3のいずれか1項のメモリ管理システムであって、
前記物理パーテーション管理部は、メモリブロックBよりもサイズの小さなメモリブロックFのメモリブロックBに対するメモリ割当後にフリー領域Eが存在する場合のメモリ割当処理によるメモリブロックFの割当てを、以下のステップS11〜S31の一連の動作で完了する、
S11:Eのprev-flagを「使用中」にセットする
S13:Eのself-flagを「未使用」にセットする
S15:Eのメモリサイズを算出し、sizeにセットする
S17:割当前のメモリブロックBのメモリレンジに該当する「空きブロックのリスト」から、Bのメモリブロックを外す
S19:割当後のEのメモリレンジに該当する「空きブロックのリスト」に、Eのメモリブロックを挿入する
S21:Fのprev-flagを「未使用」にセットする
S23:Fのself-flagを「使用中」にセットする
S25:Fのptrに、E(未使用)のブロックの先頭アドレスをセットする
S27:Fのsizeをセットする
S29:Fの上位アドレスに位置するメモリブロックGのprev-flagを「使用中」にセットする
S31:Gのptrに、NULL(Fのメモリブロック使用中)をセットする
ことを特徴とするメモリ管理システム。 - 請求項1から3のいずれか1項のメモリ管理システムであって、
前記物理パーテーション管理部は、メモリブロックBと同じサイズのメモリブロックFのメモリブロックBに対するメモリ割当後にフリー領域が存在しない場合のメモリ割当処理によるメモリブロックFの割当てを、以下のステップS41〜S51の一連の動作で完了する、
S41:Eのprev-flagを「使用中」にセットする
S43:Eのself-flagを「未使用」にセットする
S45:Eのptrに、NULL(Dのメモリブロック使用中)をセットする
S47:割当前のBのメモリレンジに該当する「空きブロックのリスト」から、Bのメモリブロックを外す
S49:Fのprev-flagを「使用中」にセットする
S51:Fのptrに、NULL(Eのメモリブロック使用中)をセットする
ことを特徴とするメモリ管理システム。 - 請求項1から3のいずれか1項のメモリ管理システムであって、
前記物理パーテーション管理部は、解放前メモリブロックBの下位アドレスに隣接するメモリブロックAが未使用、上位アドレスに隣接するメモリブロックCが使用中の場合に、以下のステップS61〜S61の一連の動作で、メモリブロックB解放後のメモリブロックEとメモリブロックEの下位アドレスに隣接するメモリブロックDを結合するようにメモリブロックBを解放する
S61:DとEの結合後のメモリサイズを算出し、Dのsizeにセットする。
S63:解放前のAのメモリレンジに該当する「空きブロックのリスト」から、Aのメモリブロックを外す。
S65:解放後のDとEを結合したメモリレンジに該当する「空きブロックのリスト」に、DとEを結合したメモリブロックを挿入する。
S67:Fのprev-flagを「未使用」にセットする。
S69:Fのptrに、D(未使用)のブロックの先頭アドレスをセットする。
以上の一連の動作で左隣接メモリブロックが未使用、右隣接メモリブロックが使用中の場合のメモリ解放処理を完了する。
ことを特徴とするメモリ管理システム。 - 請求項1から3のいずれか1項のメモリ管理システムであって、
前記物理パーテーション管理部は、解放前のメモリブロックBの下位アドレスに隣接するメモリブロックAが使用中、上位アドレスに隣接するメモリブロックCが未使用の場合に、以下のステップS71〜S81の一連の動作で、メモリブロックB解放後のメモリブロックFとメモリブロックFの上位アドレスに隣接するメモリブロックGを結合するようにメモリブロックBを解放する
S71:FとGの結合後のメモリサイズを算出し、Fのsizeにセットする
S73:Fのptrに、次の(同じメモリレンジの)未使用ブロックの先頭アドレスをセットする
S75:Fのself-flagを「未使用」にセットする
S77:解放前のCのメモリレンジに該当する「空きブロックのリスト」から、Cのメモリブロックを外す
S79:解放後のFとGを結合したメモリレンジに該当する「空きブロックのリスト」に、FとGを結合したメモリブロックを挿入する
S81:Hのptrに、F(未使用)のブロックの先頭アドレスをセットする
ことを特徴とするメモリ管理システム。 - 請求項1から3のいずれか1項のメモリ管理システムであって、
前記物理パーテーション管理部は、解放前のメモリブロックBの上位アドレス、下位アドレスに隣接するメモリブロックが未使用の場合に、以下のステップS91〜S101の一連の動作で、メモリブロックB解放後のメモリブロックFとメモリブロックFの上位アドレス、下位アドレスに隣接するメモリブロックE、Gを結合するようにメモリブロックBを解放する
S91:E、F、Gの結合後のメモリサイズを算出し、Eのsizeにセットする
S93:Eのptrに、次の(同じメモリレンジの)未使用ブロックの先頭アドレスをセットする
S95:解放前のAのメモリレンジに該当する「空きブロックのリスト」から、Aのメモリブロックを外す
S97:解放前のCのメモリレンジに該当する「空きブロックのリスト」から、Cのメモリブロックを外す
S99:解放後のEとFとGを結合したメモリレンジに該当する「空きブロックのリスト」に、EとFとGを結合したメモリブロックを挿入する
S101:Hのptrに、E(未使用)のブロックの先頭アドレスをセットする
ことを特徴とするメモリ管理システム。 - 請求項1から3のいずれか1項のメモリ管理システムであって、
前記物理パーテーション管理部は、解放前のメモリブロックBの上位アドレス、下位アドレスに隣接するメモリブロックが使用中の場合に、メモリブロックB解放後のメモリブロックEとなるようにメモリブロックBを解放する
S111:Eのself-flagを「未使用」にセットする
S113:EのメモリサイズをEのsizeにセットする
S115:解放後のEのメモリレンジに該当する「空きブロックのリスト」に、Eのメモリブロックを挿入する
S117:Fのprev-flagを「未使用」にセットする
S119:Fのptrに、E(未使用)のブロックの先頭アドレスをセットする
ことを特徴とするメモリ管理システム。 - 請求項1から9のいずれか1項のメモリ管理システムを有する
ことを特徴とする電子機器。 - コンピュータに、
論理アドレス空間においてアプリケーションが使用する仮想メモリの割当と解放を管理する論理パーテーション管理機能と、
物理アドレス空間において実メモリを小サイズ毎の物理パーテーションに切り分けて前記実メモリの割当と解放を管理する物理パーテーション管理機能と、
前記論理アドレス空間と前記物理アドレス空間との間のアドレス変換を行う変換機能とを実現させ、
前記物理パーテーション管理機能は、メモリコントロールブロックを用いて未使用のメモリブロックの割り当て及び解放を行い、前記メモリコントロールブロックは、前記物理パーテーション内の各メモリブロックのヘッダ部分であり、先頭に次の同種のメモリブロックを示すポインタとメモリブロックのサイズを有し、前記ポインタは、そのポインタを含むメモリブロックが未使用の場合は、次の同じメモリレンジの未使用ブロックの先頭を表し、使用中の場合は、隣接する一つ前の未使用メモリブロックの先頭アドレスを示し、前記物理パーテーションの未使用領域をそのサイズ毎に分類しておき、メモリ割当要求の際には当該割当要求のサイズを含む前記分類された未使用領域から前記メモリコントロールブロックを用いて検索し選択する、
ことを特徴とするメモリ管理プログラム。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009047280A JP5377001B2 (ja) | 2009-02-27 | 2009-02-27 | メモリ管理システム、電子機器及びメモリ管理プログラム |
US12/607,673 US8291192B2 (en) | 2008-10-30 | 2009-10-28 | Memory management system |
US13/606,784 US8539198B2 (en) | 2008-10-30 | 2012-09-07 | Memory management system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009047280A JP5377001B2 (ja) | 2009-02-27 | 2009-02-27 | メモリ管理システム、電子機器及びメモリ管理プログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2010204762A JP2010204762A (ja) | 2010-09-16 |
JP5377001B2 true JP5377001B2 (ja) | 2013-12-25 |
Family
ID=42966207
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009047280A Expired - Fee Related JP5377001B2 (ja) | 2008-10-30 | 2009-02-27 | メモリ管理システム、電子機器及びメモリ管理プログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5377001B2 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107977265A (zh) * | 2016-10-25 | 2018-05-01 | 中兴通讯股份有限公司 | 内存初始化方法、装置和内存分配方法、装置 |
CN117806983A (zh) * | 2023-12-27 | 2024-04-02 | 摩尔线程智能科技(北京)有限责任公司 | 存储空间管理方法、装置、设备及存储介质 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0438540A (ja) * | 1990-06-05 | 1992-02-07 | Toshiba Corp | メモリ管理方式 |
JPH0895849A (ja) * | 1994-09-27 | 1996-04-12 | Canon Inc | メモリ管理方法 |
JP2005196343A (ja) * | 2004-01-05 | 2005-07-21 | Mitsubishi Electric Corp | メモリ管理装置及びメモリ管理方法及びプログラム |
WO2008084531A1 (ja) * | 2007-01-10 | 2008-07-17 | Netcleus Systems Corporation | メモリ管理装置 |
JP5087954B2 (ja) * | 2007-03-01 | 2012-12-05 | 横河電機株式会社 | メモリ管理装置 |
-
2009
- 2009-02-27 JP JP2009047280A patent/JP5377001B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2010204762A (ja) | 2010-09-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8291192B2 (en) | Memory management system | |
JP2007523412A (ja) | メモリ割当て | |
US9405485B2 (en) | Method and apparatus for writing data to a flash memory | |
KR102290540B1 (ko) | 네임스페이스/스트림 관리 | |
US10114866B2 (en) | Memory-constrained aggregation using intra-operator pipelining | |
CN111177017B (zh) | 一种内存分配方法及装置 | |
CN111984425B (zh) | 用于操作系统的内存管理方法、装置及设备 | |
CN106383742B (zh) | 一种基于linux的IO调度方法 | |
US10049035B1 (en) | Stream memory management unit (SMMU) | |
US20130318322A1 (en) | Memory Management Scheme and Apparatus | |
US20190026325A1 (en) | Memory object pool use in a distributed index and query system | |
JP2005500620A (ja) | 移動するメモリブロックを備えるメモリプール | |
JP5377001B2 (ja) | メモリ管理システム、電子機器及びメモリ管理プログラム | |
CN112650577A (zh) | 内存管理方法和装置 | |
CN109213423A (zh) | 基于地址屏障无锁处理并发io命令 | |
US20100153678A1 (en) | Memory management apparatus and method | |
CN106537321B (zh) | 存取文件的方法、装置和存储系统 | |
CN117130955A (zh) | 用于管理相关联的存储器的方法和系统 | |
JP5352284B2 (ja) | メモリ管理システム、電子機器及びメモリ管理プログラム | |
CN109284234A (zh) | 一种存储地址分配方法及系统 | |
CN111881639B (zh) | 一种可重构硬件任务动态布局方法 | |
JP2010108216A (ja) | メモリ管理システム、電子機器及びメモリ管理プログラム | |
JP4176682B2 (ja) | メモリ管理方式 | |
CN111913657A (zh) | 块数据读写方法、装置、系统及存储介质 | |
JPH0484346A (ja) | 記憶領域管理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20110524 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20130115 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20130122 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20130325 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20130730 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20130808 |
|
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: 20130827 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20130924 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |