JPH08221317A - メモリ管理方式 - Google Patents

メモリ管理方式

Info

Publication number
JPH08221317A
JPH08221317A JP2671695A JP2671695A JPH08221317A JP H08221317 A JPH08221317 A JP H08221317A JP 2671695 A JP2671695 A JP 2671695A JP 2671695 A JP2671695 A JP 2671695A JP H08221317 A JPH08221317 A JP H08221317A
Authority
JP
Japan
Prior art keywords
memory
bit
management
memory cell
length
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.)
Pending
Application number
JP2671695A
Other languages
English (en)
Inventor
Manabu Shimoo
学 下尾
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Original Assignee
Toshiba Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Toshiba Corp filed Critical Toshiba Corp
Priority to JP2671695A priority Critical patent/JPH08221317A/ja
Publication of JPH08221317A publication Critical patent/JPH08221317A/ja
Pending legal-status Critical Current

Links

Abstract

(57)【要約】 【目的】ビットマップを使用して動的メモリ管理を行
い、メモリの利用効率の向上及び可変長メモリ管理にお
ける処理時間の向上を図ったメモリ管理方式を提供する
こと。 【構成】マイクロプロセッサからの指令に応じデータの
ローカルメモリ内のメモリの割り付けと開放を行なうメ
モリ管理方式において、ローカルメモリの一部を固定長
の複数のメモリセルに分割し、複数のメモリセルにそれ
ぞれビットを対応させるとともに当該メモリセルの使用
中・未使用の状態を示すビット値として記憶するビット
マップを管理データ領域に設け、このビットマップを管
理してメモリの割り付けと開放を行っているので、固定
長メモリブロックのメモリ管理では、メモリブロックの
サイズやその個数に拘らず効率的なメモリ管理が可能と
なり、また可変長メモリブロックのメモリ管理では、処
理が一定の速度で高速に実施することが可能となる。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、マイクロプロセッサの
オペレーティングシステムでローカルメモリ上のメモリ
ブロックを管理するメモリ管理方式に関するものであ
る。
【0002】
【従来の技術】マイクロプロセッサのオペレーティング
システムでローカルメモリ上の固定長並に可変長の従来
のメモリ管理方式を図5並に図6を参照して説明する。 (1)ローカルメモリ上にあるメモリ域を固定長メモリ
ブロックに分割し、各メモリブロックの割り付けと開放
の管理をする場合、図5に示すように各メモリブロック
102(メモリブロック1,2,…n)をリンク情報1
11、状態112、データ113で構成する。リンク情
報111と状態112を管理データ114と呼ぶ。一
方、メモリブロック102中のデータ113を実データ
115と呼ぶ。1はマイクロプロセッサ(CPU)、1
0はオペレーティングシステム(OS)である。
【0003】このリンク情報111と状態112を使っ
て、以下のようにしてメモリブロック102の管理を行
う。未使用のメモリブロックは、未使用のポインタ10
1を先頭とし,各メモリブロック102のリンク情報1
11を使うリンクを構成する。プログラム20からメモ
リの獲得要求があった場合は、未使用のリンクからメモ
リブロック102を獲得し,状態を使用中にした後、そ
の実データ115をプログラム20によって使えるよう
に割り付けする。
【0004】使用中のメモリブロックは、プログラム2
0の中で利用されているため未使用のポインタ101に
よって管理されることはない。しかし、管理データ11
4を含むデータそのものは動的メモリ管理領域100に
存在する。プログラム20が獲得していたメモリブロッ
ク102を開放する場合は、そのメモリブロック102
の状態112を未使用に設定し、未使用のポインタ10
1によって構築されるリンクの先頭または最後につな
ぐ。
【0005】したがって、従来技術による固定長メモリ
ブロックの管理では、各メモリブロック中の実データ1
15の大きさが管理データ114の大きさより小さい場
合、実際にメモリの割り当てに使用される実データ11
5よりこれを管理する管理データ114の方が大きくな
る可能性がある。
【0006】(2)ローカルメモリ上にあるメモリ域を
可変長メモリブロックとして割り付けと開放の管理をす
る場合、図6に示すように各メモリブロック122(メ
モリブロック1,2,…n)をリンク情報131、状態
132、サイズ133、データ134で構成する。リン
ク情報131、状態132、サイズ133の3個を合わ
せて管理データ135と呼ぶ。一方、メモリブロック1
22中のデータ134を実データ136と呼ぶ。
【0007】このリンク情報131、状態132、サイ
ズ133を使って、以下のようにしてメモリブロックの
管理を行う。可変長メモリブロックの各メモリブロック
122(メモリブロック1,2,…n)は、可変長メモ
リ管理ポインタ121を先頭として各メモリブロック1
22のリンク情報131を使うリンクを構成する。この
場合、未使用のメモリブロックと使用中のメモリブロッ
クが混在しているため、未使用のメモリブロックを探す
ために、各メモリブロック122をリンクの先頭から1
つ1つたどってそのメモリブロック122の状態132
を検査し割り当てが可能か否か判断する。
【0008】プログラム20からメモリの獲得要求があ
った場合は、可変長メモリ管理ポインタ121のリンク
からプログラム20が要求したサイズが収まる大きさの
未使用のメモリブロック122を探し、そのメモリブロ
ック122の状態132を使用中にした後、その実デー
タ136をプログラム20によって使えるように割り付
けする。このとき、メモリブロック122の実データ1
36がプログラム20が要求したサイズより大きい場
合、2つのメモリブロック122に分割し、一方をプロ
グラム20に割り付けし、もう一方を未使用のメモリブ
ロック122として可変長メモリ管理ポインタ121に
リンクする。分割によって2つのメモリブロック122
のサイズ133は、それぞれの大きさに変更する。
【0009】プログラム20が獲得していたメモリブロ
ック122を開放する場合は、そのメモリブロック12
2の状態132を未使用に設定し、リンクの前後のメモ
リブロックが未使用の状態であれば、1個の大きなメモ
リブロックに組み立てる。
【0010】このようにして可変長メモリブロックを管
理するために、リンクの始めの方にあるメモリブロック
122と後方にあるメモリブロック122では、後方の
メモリブロック122の方が検査に時間がかかり、割り
付けの処理時間に大きな違いが出てくる。特に、割り当
て可能なメモリブロックより少ない大きさのメモリ獲得
要求があったとき、そのメモリブロックを2つに分割
し、要求に最適な大きさにするため、メモリブロックの
個数が増え後方のメモリブロックの検査に要する時間に
拍車をかけることになる。
【0011】
【発明が解決しようとする課題】ところで、上記した従
来技術では下記のごとき欠点がある。 (1)固定長メモリブロックでデータ(メモリセル)を
管理する場合、管理データが実データより大きくなりメ
モリの利用効率が悪くなる。
【0012】(2)動的に割り付け/開放を行うメモリ
域を管理する場合、固定長のデータだけでなく、可変長
のデータを必要とすることがある。この場合、固定長お
よび可変長のデータの管理を同じデータ構造を利用して
実現できることが好ましく、また、可変長メモリブロッ
クのメモリ管理を行う場合、割り当てと開放の処理時間
がそのときと場合によって一定ではなくなる。
【0013】本発明は上記欠点を解消するためになされ
たもので、その目的はメモリの利用効率の向上及び可変
長メモリ管理における処理時間の向上を図ったメモリ管
理方式を提供することにある。
【0014】
【課題を解決するための手段】上記目的を達成するため
に、本発明の請求項1のメモリ管理方式は、マイクロプ
ロセッサからの指令に応じデータのローカルメモリ内の
メモリの割り付けと開放を行なうメモリ管理方式におい
て、前記ローカルメモリの一部を固定長の複数のメモリ
セルに分割し、前記複数のメモリセルにそれぞれビット
を対応させるとともに当該メモリセルの使用中・未使用
の状態を示すビット値として記憶するビットマップを管
理データ領域に設け、このビットマップを管理してメモ
リの割り付けと開放を行なうことを特徴とする。
【0015】本発明の請求項2のメモリ管理方式は、マ
イクロプロセッサからの指令に応じデータのローカルメ
モリ内のメモリの割り付けと開放を行なうメモリ管理方
式において、前記ローカルメモリの一部を固定長の複数
のメモリセルに分割し、前記複数のメモリセルにそれぞ
れビットを対応させるとともに当該メモリセルの使用中
・未使用の状態を示すビット値として記憶するビットマ
ップと、前記ビットマップにおける未使用の状態を示す
メモリセルの先頭位置およびこの先頭位置のメモリセル
に連続する未使用の状態のメモリセルの個数を管理デー
タ領域に設け、メモリの割り付けと開放を行うことを特
徴とする。
【0016】
【作用】本発明(請求項1及び請求項2対応)によれば
以下の如き作用を奏する。 (1)このような構成にすることでメモリセルのサイズ
が小さくなった場合でも、管理用のデータの領域は実デ
ータの領域より相対的に大きくなることはない。
【0017】(2)固定長のメモリ管理のデータ構造を
使用して、各メモリセルを連続して割り当てが可能なよ
うな上位概念を導入することで、メモリセルのサイズの
n倍(ここで、nは1以上でメモリセル全体の個数未満
の任意の値)の可変長データを割り当てることが可能と
なる。
【0018】(3)可変長のメモリ管理において、固定
長メモリ管理のデータに可変長タグ部を追加する。可変
長タグ部は、メモリセルの開始とメモリセルの個数で構
成される可変長タグの集合体である。可変長タグは、2
倍以上のメモリセルを連続して割り当てる場合に、割り
当てたメモリセルの開始位置とメモリセルの個数を記録
するために使用する。このようなデータ構造によって、
可変長メモリ管理におけるメモリ割り当ての処理時間の
高速化が図られる。
【0019】
【実施例】以下、本発明の実施例を図を参照して説明す
る。図1は本発明の第1実施例の構成図であり、本実施
例では既に説明した図5に示した従来方式の個々のメモ
リブロック102にある管理データ114に代えて、実
データを統括管理する管理データ領域210を設けた点
に特徴がある。
【0020】図1に示すように、固定長のメモリ管理に
おいて、(実データの)アドレス部211、(実データ
の)サイズ部212、(実データ領域の中の各)セルの
サイズ(バイト数)部213、ビットマップ部214か
ら構成される管理データは、管理データ領域210に配
置し、この管理データを使用して実データの内容を管理
する。実データ領域220には、メモリセル221の集
合体からなる実データが配置され、管理データとは別の
場所に格納されている。
【0021】また、管理データ中のアドレス部211
は、実データが存在する場所を示す。サイズ部212
は、実データの全体の大きさ(バイト数)を示す。セル
のサイズ部213は、実データ領域中の各メモリセル2
21の大きさ(バイト数)を示す。ビットマップ部21
4は、実データ領域中の各メモリセル221が使用中で
あるか、未使用であるかを0か1で表すビットマップの
配列を示す。このような構成により管理データ中のビッ
トマップ部214で実データ領域中のメモリセル221
の使用状況が把握でき、動的なメモリの管理が可能とな
る。
【0022】図1に示すように、動的メモリ管理領域の
管理データと実データは、それぞれローカルメモリ2上
の管理データ領域210と実データ領域220に配置さ
れる。実データは、管理データ領域210のアドレス部
211でその先頭部分が示され、実データ中の各メモリ
セル221は、管理データ領域210のセルのサイズ部
213で示される大きさ(バイト数)である。各メモリ
セル221は、ローカルメモリ2上の実データ領域22
0に連続して配置され、その全てを動的なメモリ空間と
して使用することができる。
【0023】しかして、本実施例の特徴は、図2に示す
ように、実データの各メモリセル221を管理データ領
域210のビットマップ部214で利用状態を管理し、
さらに、ビットマップ部214のビットが0のそれに対
応する実データのメモリセル221が未使用であり、ビ
ットマップ部214のビットが1の時のそれに対応する
実データのメモリセル221が使用中であることを表す
ことである。
【0024】次に、本実施例におけるプロセッサのロー
カルメモリ上に固定長メモリブロックのメモリ管理をす
る場合について説明する。今、プログラム20が動的メ
モリの獲得を要求すると、オペレーティングシステム
(OS)10は、管理データ領域210中のビットマッ
プ部214の各ビットを先頭から順番にチェックし、ビ
ットが0である場所を探す。見つかればそのビットを1
にして使用中の状態にし、そのビットに対応する実デー
タのメモリセル221をプログラム20が利用できるよ
うに、アドレスを渡すことによって割り付ける。
【0025】逆に、プログラム20が獲得していたメモ
リを開放する場合、オペレーティングシステム(OS)
10は、プログラム20が渡したメモリブロックのアド
レスを基に実データ中のメモリセル221の位置を計算
し、管理データ領域210中のこれに対応するビットマ
ップ部214のビットを0にする事によって未使用状態
にし、そのメモリの開放を行う。
【0026】未使用のメモリセル221を探すために、
ビットマップ部214を先頭から1ビットずつチェック
すると処理に時間がかかるので、バイト単位もしくはプ
ロセッサが1回の処理で扱えるビット数を単位としてそ
の単位の全てのビットが1でなければその中に未使用の
メモリセルがあることが分かる。このようにして処理の
高速化を行うことも可能である。
【0027】上述したように、本実施例によれば、動的
メモリ管理における管理データ領域210は、アドレス
部221,サイズ部212、セルのサイズ部213が一
定の大きさを占め、ビットマップ部214の大きさが実
データ中のメモリセル221の個数に比例する。そのた
め、従来方式における実データの大きさと管理データの
大きさの中に占める管理データの割合と比較すると、本
実施例おけるその割合は小さく、動的メモリ管理領域2
00を効率的に利用することが可能となる。
【0028】図3は本発明の第2実施例の構成図であ
り、本実施例では、管理データ領域230と実データ領
域220によって動的メモリ管理領域2が構成され、実
データ領域220は、上記第1実施例と同じように固定
長サイズのメモリセル221からなる。管理データ領域
230は、(実データの)アドレス部231、(実デー
タの)サイズ部232、(実データの中の各)セルのサ
イズ(バイト数)部233、ビットマップ部234およ
び可変長タグ部235から構成される。
【0029】したがって、本実施例では、可変長のメモ
リを割り当てる際に、メモリセル221のサイズの正数
倍の個数の領域を連続して割り当てることができ、この
とき何個分のメモリセル221を連続して割り当てたか
を管理するために、可変長タグ部235を使用するもの
である。
【0030】次に、本実施例におけるプロセッサのロー
カルメモリ上に可変長メモリブロックのメモリ管理をす
る場合について説明する。今、プログラム20が動的メ
モリの獲得を要求すると、オペレーティングシステム
(OS)10は、要求に足るだけのサイズ分のメモリセ
ル221を獲得できる場所を探す。つまり、管理データ
領域230中のビットマップ部234の各ビットを先頭
から順番にチェックし、連続した複数のビットが0であ
る所を割り当て可能な場所とする。それが見つかれば、
その連続したビットを1にして使用中の状態にし、その
ビットに対応する実データのメモリセル221をプログ
ラム20が利用できるように、アドレスを渡すことによ
って割り付ける。さらに、可変長タグ部235の可変長
タグにメモリセル221の開始位置241と割り当てた
セルの個数242を登録する。
【0031】逆に、プログラム20が獲得していたメモ
リを開放する場合、オペレーティングシステム(OS)
10は、プログラム20が渡したアドレス情報を基に可
変長タグ部235の可変長タグをチェックし、そのアド
レス情報に一致した可変長タグのセルの開始241で示
されるメモリセル221の開始位置を求め、それに対応
するビットマップ部234のビットをタグエントリーの
セルの個数242に登録されている個数分のビットを0
にすることによって、未使用状態にしてメモリの開放を
する。
【0032】上記したように、本実施例では、未使用の
メモリセル221を探すために、ビットマップ部234
を1ビットづつ順番にチェックする処理としてもよい
が、第1実施例と同様にバイト単位またはプロセッサが
一度に処理できるビット数を単位としてチェックするこ
とで、処理の高速化を行うことができる。
【0033】したがって、本実施例によれば固定長メモ
リブロック管理をベースとした可変長メモリブロック管
理が可能となるので、上記第1実施例の効果に加えて、
次の効果が得られる。
【0034】すなわち、メモリの割り当ての時のメモリ
ブロックの分割とメモリ開放時のメモリの組み立ての必
要がなくなり、処理の高速化が図ることが可能となり、
一定の処理時間でメモリの割り当てと開放ができるよう
になる。
【0035】
【発明の効果】以上説明したように、本発明によれば、
固定長メモリブロックのメモリ管理を行う場合、メモリ
ブロックのサイズやその個数に拘らず効率的なメモリ管
理が可能となる。また可変長メモリブロックのメモリ管
理を行う場合、処理が一定の速度で高速に実施すること
が可能となる。
【図面の簡単な説明】
【図1】本発明の第1実施例のメモリ管理方式の構成
図。
【図2】図1の管理データ領域中のビットマップ部と実
データ中のメモリセルの対応を示す図。
【図3】本発明の第2実施例のメモリ管理方式の構成
図。
【図4】図3の管理データ領域中のビットマップ部、可
変長タグ部と実データ中のメモリセルの対応を示す図。
【図5】従来技術による固定長メモリブロックのメモリ
管理方式の構成図。
【図6】従来技術による可変長メモリブロックのメモリ
管理方式の構成図。
【符号の説明】
1…マイクロプロセッサ(CPU)、2…ローカルメモ
リ、10…オペレーティングシステム(OS)、20…
プログラム、200…動的メモリ管理領域、210,2
30…管理データ領域、220…実データ領域、21
1,231…アドレス部、212,232…サイズ部、
213,233…セルのサイズ部、214,234…ビ
ットマップ部、221…メモリセル、235…可変長タ
グ部、241…セルの開始、242…セルの個数。

Claims (2)

    【特許請求の範囲】
  1. 【請求項1】 マイクロプロセッサからの指令に応じデ
    ータのローカルメモリ内のメモリの割り付けと開放を行
    なうメモリ管理方式において、前記ローカルメモリの一
    部を固定長の複数のメモリセルに分割し、前記複数のメ
    モリセルにそれぞれビットを対応させるとともに当該メ
    モリセルの使用中・未使用の状態を示すビット値として
    記憶するビットマップを管理データ領域に設け、このビ
    ットマップを管理してメモリの割り付けと開放を行なう
    ことを特徴とするメモリ管理方式。
  2. 【請求項2】 マイクロプロセッサからの指令に応じデ
    ータのローカルメモリ内のメモリの割り付けと開放を行
    なうメモリ管理方式において、前記ローカルメモリの一
    部を固定長の複数のメモリセルに分割し、前記複数のメ
    モリセルにそれぞれビットを対応させるとともに当該メ
    モリセルの使用中・未使用の状態を示すビット値として
    記憶するビットマップと、前記ビットマップにおける未
    使用の状態を示すメモリセルの先頭位置およびこの先頭
    位置のメモリセルに連続する未使用の状態のメモリセル
    の個数を管理データ領域に設け、メモリの割り付けと開
    放を行うことを特徴とするメモリ管理方式。
JP2671695A 1995-02-15 1995-02-15 メモリ管理方式 Pending JPH08221317A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2671695A JPH08221317A (ja) 1995-02-15 1995-02-15 メモリ管理方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2671695A JPH08221317A (ja) 1995-02-15 1995-02-15 メモリ管理方式

Publications (1)

Publication Number Publication Date
JPH08221317A true JPH08221317A (ja) 1996-08-30

Family

ID=12201085

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2671695A Pending JPH08221317A (ja) 1995-02-15 1995-02-15 メモリ管理方式

Country Status (1)

Country Link
JP (1) JPH08221317A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005034121A1 (ja) * 2003-10-03 2005-04-14 Matsushita Electric Industrial Co., Ltd. 再生装置
US8321641B2 (en) 2008-01-16 2012-11-27 Teac Corporation Data access method and data access device
US8429354B2 (en) 2008-01-30 2013-04-23 Kabushiki Kaisha Toshiba Fixed length memory block management apparatus and method for enhancing memory usability and processing efficiency

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005034121A1 (ja) * 2003-10-03 2005-04-14 Matsushita Electric Industrial Co., Ltd. 再生装置
US7733746B2 (en) 2003-10-03 2010-06-08 Panasonic Corporation Playback device
US8321641B2 (en) 2008-01-16 2012-11-27 Teac Corporation Data access method and data access device
US8429354B2 (en) 2008-01-30 2013-04-23 Kabushiki Kaisha Toshiba Fixed length memory block management apparatus and method for enhancing memory usability and processing efficiency

Similar Documents

Publication Publication Date Title
US6757802B2 (en) Method for memory heap and buddy system management for service aware networks
US5784698A (en) Dynamic memory allocation that enalbes efficient use of buffer pool memory segments
JP3155537B2 (ja) 実記憶管理方法
CN110727517A (zh) 一种基于分区设计的内存分配方法和装置
JPH08221317A (ja) メモリ管理方式
JPH10143382A (ja) 共有メモリ型マルチプロセッサシステムの資源管理方法
JPH08212178A (ja) 並列計算機
JPH09319658A (ja) 可変ページサイズのメモリ管理方式
CN112506813A (zh) 一种内存管理方法和系统
US20030221067A1 (en) Staggering call stack offsets for multiple duplicate control threads
US6401184B1 (en) Process for locating physical addresses in a nonuniform access memory and computer system for implementing the process
US6154792A (en) Method and computer program product for paging control using a reference structure including a reference bitmap
KR20030071299A (ko) 메모리 관리 장치
JPS60189549A (ja) デ−タ処理システムにおける主記憶装置管理方式
JPH1091527A (ja) 記憶装置および記録媒体
KR100397502B1 (ko) 다중처리시스템의 프로세서 유닛간 동적 인터페이스 방법
JPH1069429A (ja) バッファ割当て管理装置およびバッファ割当て管理プログラム
JPH0646823B2 (ja) データメモリのメモリセグメントを制御する方法
JP2613931B2 (ja) バッファ制御方式
JP2000347939A (ja) メモリ管理システムおよびメモリ管理方法
JPH0816478A (ja) ベクトルデータ処理装置
JPS63192126A (ja) デ−タセツトのスペ−ス管理処理方式
JPH01241642A (ja) 共通メモリの動的配置方法
KR19990012887A (ko) 고속 중형 컴퓨터의 입출력 메모리 관리방법
JP2000200211A (ja) メモリプ―ル制御回路