JP5087954B2 - メモリ管理装置 - Google Patents
メモリ管理装置 Download PDFInfo
- Publication number
- JP5087954B2 JP5087954B2 JP2007050933A JP2007050933A JP5087954B2 JP 5087954 B2 JP5087954 B2 JP 5087954B2 JP 2007050933 A JP2007050933 A JP 2007050933A JP 2007050933 A JP2007050933 A JP 2007050933A JP 5087954 B2 JP5087954 B2 JP 5087954B2
- Authority
- JP
- Japan
- Prior art keywords
- memory
- heap
- logical
- physical
- blocks
- 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.)
- Active
Links
Images
Description
void *malloc(size_t size)
からなる要求バイトを渡すことで、要求バイトの連続メモリ空間が獲得され、そのアドレスを戻り値として得ることができる。また、メモリ資源を解放する際は、
void free(void *ptr)
からなるコマンドにより、獲得されたメモリのアドレスを渡すことで、そのメモリ空間をヒープ領域に返却することができる。
(動的メモリの獲得)
制御部11は、サイズSのヒープメモリ17(動的メモリ)を取得するため、malloc(S)を呼び出し、後述するヒープ管理部12に通知する(符号s1)。なお、制御部11の機能は、例えばプログラム(アプリケーション)がCPUを動作させることで実現できる。また、図3はプログラムがシングルプロセスのとき、すなわちプログラムの実行開始から実行終了までCPUを独占して実行するときに正しく動作する。
制御部11は獲得されたアドレスAからサイズSの範囲を自由にヒープメモリ17からリード/ライトする(符号s5)。
制御部11は、ヒープメモリ17が不要になった時点で free(A)を呼び出すと共に、ヒープ管理部12に通知する(符号s6)。ヒープ管理部12はメモリ解放部15にアドレスAのメモリの解放を依頼する(符号s7)。メモリ解放部15は管理メモリ14の使用中メモリのリストを参照して登録されているアドレスAを検索し、その内容を削除する(符号s8)。
制御部21はサイズSの動的メモリを取得するため、malloc(S)を呼び出すと共に、ヒープ管理部に通知する(符号s1)。ヒープ管理部22は、後述するメモリ割付部23にメモリの割付を依頼する(符号s2)。メモリ割付部23は管理メモリ24の使用中メモリのリストを参照して未使用ブロックを把握し、そこから1つの未使用のブロックを検索すると共に、そのブロックのアドレスAを管理メモリに登録する(符号s3)。獲得されたアドレスAはヒープ管理部22を経由して制御部21に渡される(符号s4)。
制御部21は獲得されたアドレスAからサイズSの範囲をヒープメモリ27から自由にリード/ライトする(符号s5)。
制御部21は、動的メモリが不要になった時点で free(A)を呼び出し、ヒープ管理部に通知する(符号s6)。ヒープ管理部22はメモリ解放部25にアドレスAのメモリの解放を依頼する(符号s7)。メモリ解放部25は管理メモリ24の使用中メモリのリストを参照して登録されているアドレスAを検索し、その内容を削除する(符号s8)。
割付けられた論理アドレスと物理アドレスの対応を記憶するマッピングメモリと、
固定長ブロックで領域の獲得又は解放が行われるヒープメモリと、
論理アドレスへのアクセスを前記マッピングメモリによって対応付けられた物理アドレスへのアクセスに写像し、前記ヒープメモリにアクセスするメモリマネジメントユニットと、
前記ヒープメモリの領域の動的な獲得、又は獲得した領域が不要になると、前記ヒープメモリの物理アドレスの割付、解放を行う、物理空間管理メモリを有する物理空間管理ブロックと、
前記ヒープメモリのメモリ領域の動的な獲得、又は獲得したメモリ領域が不要になると、前記ヒープメモリの論理アドレスの割付、解放を行う、論理空間管理メモリを有する論理空間管理ブロックと、
前記ヒープメモリの領域の動的な獲得又は解放に必要な関数を呼び出すと共に、割付された論理アドレスにアクセスする制御部と、
前記制御部から前記関数の通知を受けると、前記物理空間管理メモリに登録された物理アドレスと、前記論理空間管理メモリに登録された論理アドレスとの対応を前記マッピングメモリへ登録し、又は削除するヒープ管理ブロックと、を備え、
前記ヒープ管理ブロックは、
前記関数により前記ヒープメモリの所定サイズの領域の動的な獲得が必要な場合に、
前記所定のサイズから必要なブロック数を求め、前記物理空間管理メモリを参照することにより未使用ブロックを把握して前記必要なブロック数に相当するブロックを割付け、当該割付けられたブロックの物理アドレス情報を前記物理空間管理メモリに登録すると共に、
前記論理空間管理メモリを参照することにより未使用ブロックを把握して前記必要なブロック数に相当するブロックを割付け、当該割付けられたブロックの論理アドレス情報を前記論理空間管理メモリに登録し、
前記通知された関数により前記ヒープメモリのメモリ領域の解放が必要な場合において、
前記マッピングメモリから対応する物理アドレスを得、当該物理アドレス、および対応する論理アドレス情報を、前記物理空間管理メモリ、および前記論理空間管理メモリから削除する、
ことを特徴とする。
(動的メモリの獲得)
制御部31はサイズsの動的メモリを取得するため、malloc(s)を呼び出し、ヒープ管理部Aに通知する(符号s1)。ヒープ管理部32はメモリ割付部33にサイズsのメモリの割付を依頼する(符号s2)。メモリ割付部33はサイズsから必要なブロック数mを計算し(m*ヒープメモリのブロックサイズ >= s)、物理空間管理部34にブロック数mの割付を依頼する(符号s3)。物理空間管理部34は物理空間割付部35にブロック数mの割付を依頼する(符号s4)。
制御部31は獲得された論理アドレスvからサイズsの範囲を自由にリード/ライトする(符号s13)。論理アドレスvへのアクセスが発生すると、メモリ マネジメント ユニットMが働き、マッピングメモリ40に書かれた論理アドレスvと物理メモリp[ ]に従って対応付けられたヒープメモリ42のブロックがアクセスされる(符号s14)。
制御部31は動的メモリが不要になった時点でfree(v)を呼び出し、これはヒープ管理部32に通知される(符号s15)。ヒープ管理部32はメモリ解放部43に論理アドレスvの解放を依頼する(符号s16)。メモリ解放部43はマッピングメモリ40から論理アドレスvを検索し、対応する物理アドレスリストp[ ]を得て、物理空間管理部34に物理アドレスリストp[ ]の解放を依頼する(符号s17)。
論理空間管理部37は論理空間解放部45に論理アドレスvの解放を依頼する(符号s21)。
論理空間解放部45は論理アドレスvの内容を論理空間管理メモリ39から削除する(符号s22)。物理アドレスリストp[ ]と論理アドレスvの解放を終えたメモリ解放部43は、最後にマッピングメモリ40からも論理アドレスvと物理アドレスの対応情報を削除する(符号s23)。
32 ヒープ管理部
33 メモリ割付部
34 物理空間管理部
35 物理空間割付部
36 物理空間管理メモリ
37 論理空間管理部
38 論理空間割付部
39 論理空間管理メモリ
40 マッピングメモリ
41 メモリマネジメントユニット
42 ヒープメモリ
43 メモリ解放部
44 物理空間解放部
45 論理空間解放部
100 ヒープ管理ブロック
110 物理空間管理ブロック
120 論理空間管理ブロック
Claims (1)
- 割付けられた論理アドレスと物理アドレスの対応を記憶するマッピングメモリと、
固定長ブロックで領域の獲得又は解放が行われるヒープメモリと、
論理アドレスへのアクセスを前記マッピングメモリによって対応付けられた物理アドレスへのアクセスに写像し、前記ヒープメモリにアクセスするメモリマネジメントユニットと、
前記ヒープメモリの領域の動的な獲得、又は獲得した領域が不要になると、前記ヒープメモリの物理アドレスの割付、解放を行う、物理空間管理メモリを有する物理空間管理ブロックと、
前記ヒープメモリのメモリ領域の動的な獲得、又は獲得したメモリ領域が不要になると、前記ヒープメモリの論理アドレスの割付、解放を行う、論理空間管理メモリを有する論理空間管理ブロックと、
前記ヒープメモリの領域の動的な獲得又は解放に必要な関数を呼び出すと共に、割付された論理アドレスにアクセスする制御部と、 前記制御部から前記関数の通知を受けると、前記物理空間管理メモリに登録された物理アドレスと、前記論理空間管理メモリに登録された論理アドレスとの対応を前記マッピングメモリへ登録し、又は削除するヒープ管理ブロックと、を備え、
前記ヒープ管理ブロックは、
前記関数により前記ヒープメモリの所定サイズの領域の動的な獲得が必要な場合に、
前記所定のサイズから必要なブロック数を求め、前記物理空間管理メモリを参照することにより未使用ブロックを把握して前記必要なブロック数に相当するブロックを割付け、当該割付けられたブロックの物理アドレス情報を前記物理空間管理メモリに登録すると共に、
前記論理空間管理メモリを参照することにより未使用ブロックを把握して前記必要なブロック数に相当するブロックを割付け、当該割付けられたブロックの論理アドレス情報を前記論理空間管理メモリに登録し、
前記通知された関数により前記ヒープメモリのメモリ領域の解放が必要な場合において、
前記マッピングメモリから対応する物理アドレスを得、当該物理アドレス、および対応する論理アドレス情報を、前記物理空間管理メモリ、および前記論理空間管理メモリから削除する、
ことを特徴とするメモリ管理装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007050933A JP5087954B2 (ja) | 2007-03-01 | 2007-03-01 | メモリ管理装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007050933A JP5087954B2 (ja) | 2007-03-01 | 2007-03-01 | メモリ管理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2008217183A JP2008217183A (ja) | 2008-09-18 |
JP5087954B2 true JP5087954B2 (ja) | 2012-12-05 |
Family
ID=39837184
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007050933A Active JP5087954B2 (ja) | 2007-03-01 | 2007-03-01 | メモリ管理装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5087954B2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7170953B2 (ja) | 2020-09-30 | 2022-11-14 | 三菱電機株式会社 | 時間演算装置及び時間演算方法 |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8291192B2 (en) | 2008-10-30 | 2012-10-16 | Kyocera Document Solutions, Inc. | Memory management system |
JP5352284B2 (ja) * | 2009-02-27 | 2013-11-27 | 京セラドキュメントソリューションズ株式会社 | メモリ管理システム、電子機器及びメモリ管理プログラム |
JP5376973B2 (ja) * | 2009-01-30 | 2013-12-25 | 京セラドキュメントソリューションズ株式会社 | メモリ管理システム、電子機器及びメモリ管理プログラム |
JP5377001B2 (ja) * | 2009-02-27 | 2013-12-25 | 京セラドキュメントソリューションズ株式会社 | メモリ管理システム、電子機器及びメモリ管理プログラム |
KR102517685B1 (ko) * | 2017-11-07 | 2023-04-05 | 후아웨이 테크놀러지 컴퍼니 리미티드 | 메모리 블록 복구 방법 및 디바이스 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH05216745A (ja) * | 1992-02-04 | 1993-08-27 | Matsushita Electric Ind Co Ltd | メモリ管理装置 |
GB9213563D0 (en) * | 1992-06-26 | 1992-08-12 | Philips Electronics Uk Ltd | Data processing apparatus with dynamic memory allocation |
JPH11275158A (ja) * | 1998-03-19 | 1999-10-08 | Nec Corp | 自動メモリ割り付け方式 |
US6986016B2 (en) * | 2002-09-30 | 2006-01-10 | International Business Machines Corporation | Contiguous physical memory allocation |
-
2007
- 2007-03-01 JP JP2007050933A patent/JP5087954B2/ja active Active
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7170953B2 (ja) | 2020-09-30 | 2022-11-14 | 三菱電機株式会社 | 時間演算装置及び時間演算方法 |
Also Published As
Publication number | Publication date |
---|---|
JP2008217183A (ja) | 2008-09-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6401181B1 (en) | Dynamic allocation of physical memory space | |
JP5087954B2 (ja) | メモリ管理装置 | |
US9513815B2 (en) | Memory management based on usage specifications | |
KR102061079B1 (ko) | 파일 액세스 방법 및 관련 기기 | |
US10310997B2 (en) | System and method for dynamically allocating memory to hold pending write requests | |
TWI459201B (zh) | Information processing device | |
CN105917319B (zh) | 存储器单元和方法 | |
US20060218347A1 (en) | Memory card | |
KR20100081880A (ko) | 비휘발성 메모리와, 이의 페이지 동적할당장치 및 페이지 매핑장치와, 이의 페이지 동적할당방법 및 페이지 매핑방법 | |
JP5422652B2 (ja) | フラッシュメモリ記憶装置における動的メモリ割当てに起因する自己エビクションの回避 | |
JP7279889B2 (ja) | メモリブロックリクレーム方法およびメモリブロックリクレーム装置 | |
WO2015053966A9 (en) | Memory system with shared file system | |
US10817186B2 (en) | Memory system | |
JP2006513493A5 (ja) | ||
US20160026399A1 (en) | Block i/o interface for a host bus adapter that utilizes nvdram | |
WO2009110168A1 (ja) | Dma転送装置 | |
US20160266793A1 (en) | Memory system | |
KR20150062039A (ko) | 반도체 장치 및 그 동작 방법 | |
US8151086B2 (en) | Early detection of an access to de-allocated memory | |
CN110674051A (zh) | 一种数据存储方法及装置 | |
KR101950759B1 (ko) | 저장 장치의 메모리 컨트롤러가 수행하는 가비지 컬렉션 방법 및 메모리 컨트롤러 | |
US20150074334A1 (en) | Information processing device | |
JP2007102314A (ja) | ディスクキャッシュ制御装置 | |
CN117130955A (zh) | 用于管理相关联的存储器的方法和*** | |
KR101549569B1 (ko) | 가비지 컬렉션 수행 방법 및 그 방법을 이용한 플래시 메모리 장치 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20100106 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20120528 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20120605 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20120726 |
|
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: 20120814 |
|
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: 20120827 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20150921 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5087954 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |