JP2001236249A - メモリ管理装置およびメモリ管理方法 - Google Patents

メモリ管理装置およびメモリ管理方法

Info

Publication number
JP2001236249A
JP2001236249A JP2000046885A JP2000046885A JP2001236249A JP 2001236249 A JP2001236249 A JP 2001236249A JP 2000046885 A JP2000046885 A JP 2000046885A JP 2000046885 A JP2000046885 A JP 2000046885A JP 2001236249 A JP2001236249 A JP 2001236249A
Authority
JP
Japan
Prior art keywords
memory
size
memory cell
area
bitmap
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
JP2000046885A
Other languages
English (en)
Inventor
Masahiro Fujii
政浩 藤井
Kazuya Inoue
和也 井上
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.)
NEC Corp
NEC Informatec Systems Ltd
Original Assignee
NEC Corp
NEC Informatec Systems Ltd
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 NEC Corp, NEC Informatec Systems Ltd filed Critical NEC Corp
Priority to JP2000046885A priority Critical patent/JP2001236249A/ja
Priority to US09/790,571 priority patent/US20010018731A1/en
Publication of JP2001236249A publication Critical patent/JP2001236249A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Read Only Memory (AREA)

Abstract

(57)【要約】 (修正有) 【課題】 要求したメモリ領域のサイズにかかわらずメ
モリの確保や開放処理を高速で行うことができ、メモリ
領域にフラグメントが発生しにくいメモリ管理装置を得
る。 【解決手段】 ローカルメモリ306は、書き込みと読
み出しを行うメモリ領域331とこれを管理する管理デ
ータ領域332で構成される。メモリ領域331は、固
定された最小サイズのメモリセルとしての第1のメモリ
セル3411と、これをN(たとえば8)倍したサイズ
の第2のメモリセル3412と、これを更にN倍したサ
イズの第3のメモリセル3413のように複数の階層の
メモリセルで構成されている。それぞれのメモリセル
は、対応するビットマップ部3541、3542……で管
理される。メモリの獲得が要求されると、そのサイズ以
下で最も近いサイズのメモリセルが選択され、対応する
ビットマップ部354で空きを確認して領域の獲得が行
われる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明はメモリ領域を管理す
るためのメモリ管理装置およびメモリ管理方法に係わ
り、特にメモリ領域の割り付けや開放を管理するメモリ
管理装置およびメモリ管理方法に関する。
【0002】
【従来の技術】ハードディスクや光ディスクあるいは半
導体メモリ等の各種のメモリあるいは記憶装置がデータ
の格納に使用されている。このようなメモリにデータを
格納する場合には、メモリ領域の割り付けの処理が行わ
れ、不要になったり他の場所に移動するデータについて
はメモリ領域の開放の処理が行われる。このような処理
は、通常の場合、マイクロプロセッサのオペレーション
システムを使って実行される。
【0003】図45および図46は、従来のメモリ領域
の管理の手法として特開平8−221317号公報に開
示されている技術を表わしたものである。図示しないC
PU(中央処理装置)によって読み書きの制御が行われ
るローカルメモリ101(図45)内には、データの格
納の対象となるメモリ領域102とこのメモリ領域10
2の管理を行う管理データ領域103が配置されてい
る。メモリ領域102は、固定長のメモリブロックとし
ての多数のメモリセル104で構成されている。
【0004】管理データ領域103は、アドレス部10
5、実データのサイズ部106、セルのサイズ部10
7、ビットマップ部108および可変長タグ部109で
構成されている。ここでアドレス部105は、メモリセ
ル104を任意の個数だけ連続して占有することでそれ
ぞれのデータの記憶が行われるときに、これらデータご
との格納位置を表わすアドレス情報を格納する箇所であ
る。実データのサイズ部106は、これら任意の個数の
メモリセル104から構成される各データのメモリサイ
ズをいう。セルのサイズ部107は、メモリセル104
それ自体のサイズ(容量)をいう。ビットマップ部10
8は、メモリ領域102を構成するそれぞれのメモリセ
ル104がデータを格納しているかどうかをマトリック
ス状にビットマップデータとして表わしたものである。
たとえば、あるメモリセル104が未使用である場合に
は、ビットマップ部108の対応するビットが“0”で
あり、使用中である場合には“1”となる。
【0005】可変長タグ部109は可変長のメモリブロ
ックを管理するものである。この可変長タグ部109
は、1つの可変長メモリブロックに対して、位置情報と
してのセルの開始111と1つのメモリブロックとして
連続するセルの個数112をデータとして有している。
【0006】すなわち、従来ではローカルメモリ上のメ
モリ領域を固定長のメモリブロックとしてのメモリセル
104で分割しておき、これら分割された1つ1つのメ
モリセルが使用状態であるか未使用状態であるかをビッ
トマップデータ管理するようにしている。そして、メモ
リセル104の1個で対応できない大きさのデータに対
しては、これらをレアケースのメモリブロック管理とし
て可変長メモリブロックによるメモリ管理を行うように
なっている。
【0007】図46は可変長メモリブロックの管理の手
法を説明するためのものである。この図の(a)は、管
理データ中の可変長タグ部109の一例を示している。
メモリの確保の要求があった場合には、要求に足りるだ
けのメモリのサイズ分となるようなメモリセル104が
連続して存在する場所を探すことになる。図46では、
セルの開始111とセルの個数112が共に“3”とな
っている。このような要求が行われた場合には、図45
に示したビットマップ部108のたとえば先頭からチェ
ックを行い、未使用のセルが“3”以上連続している場
所が調べられる。そして、未使用のセルの3つ分をビッ
ト“0”から“1”に書き換えて使用中の状態にする。
たとえば図46の(b)に示した例では、矢印121で
示した箇所からビットマップ部108でそのような書き
換えが行われている。このようにして、図46の(c)
に示すように対応するメモリセル104について、利用
者(ユーザ)が利用できるようにアドレスを渡すこと
で、メモリ領域の割り付けが行われる。このようにして
割り付けが行われたら、可変長タグ部109の可変長タ
グに該当するメモリセル104の開始111と割り当て
たセル104の個数112を登録することになる。
【0008】次に、図45に示したローカルメモリ10
1の一部のメモリ領域を開放する場合について説明す
る。前記したCPUは、確保したメモリブロックを開放
する場合に、可変長タグ部109の可変長タグをチェッ
クする。そして、前記したアドレス情報と一致した可変
長タグにおけるセルの開始111で示されるメモリセル
104の開始位置を求める。そして、ビットマップ部1
08のビット“1”を可変長タグのセルの個数112と
して登録されている個数分だけビット“0”に書き換え
る。これによってその箇所が未使用状態となり、メモリ
領域102の該当する領域が開放されることになる。
【0009】
【発明が解決しようとする課題】この図45および図4
6に示した従来のメモリ領域の管理手法では、次のよう
な問題が存在する。 (1)この手法では、メモリの扱うデータの大きさがほ
ぼ一定していることを大前提としている。すなわち、予
めデータの大きさが固定化されたメモリシステムにおけ
るメモリ管理を前提としている。そして、通常の場合に
はメモリセル104単位でメモリの管理を行っている。
したがって、アプリケーションの取り扱うそれぞれのデ
ータの大きさが広い範囲でばらつくような場合にこのシ
ステムを導入すると、1つ1つのメモリセル104の大
きさを十分大きなものに設定しておかないと、可変長タ
グ部109を頻繁に使用しなければならなくなって、管
理データ領域103の肥大化を招くことになる。
【0010】一方、セルのサイズ部107で1つ1つの
メモリセル104の大きさを十分大きなものに設定する
ようにすると、小さなサイズのデータの場合にも大きな
サイズのメモリセル104に格納されることになる。し
たがって、メモリの使用効率が大きく低下するという問
題がある。
【0011】(2)図45に示した従来のシステムで
は、そこであまり出現しない比較的大きなサイズのデー
タについては可変長タグ部109を用いることで対応す
ることになる。この後者の場合、メモリの確保を行う際
には、確保するデータのサイズに応じてビットマップ部
108を所定の順序でチェックしていくことになる。し
たがって、これに要する検索時間は、メモリ領域102
が大きくなればなるほど、これに比例して長くかかる傾
向になる。メモリの開放の場合にも、メモリ領域102
が大きくなれば同様に検索時間が長くかかることにな
る。 (3)この後者の手法でメモリの管理を長時間行うと、
未使用のメモリセル104が連続して存在する箇所の分
裂が進行する。すなわち、最初は多くのメモリセル10
4が連続することで比較的大きなサイズのメモリ領域と
なる可能性を有していた箇所も順次メモリの確保が無秩
序に行われることで分裂していく。このため、メモリの
確保が要求されてもそのサイズ分の割り当てが次第に困
難となってくる。
【0012】そこで本発明の第1の目的は、要求したメ
モリ領域のサイズにかかわらずメモリの確保や開放処理
を高速で行うことができるメモリ管理装置およびメモリ
管理方法を提供することにある。
【0013】本発明の第2の目的は、メモリ領域にフラ
グメントが発生しにくいメモリ管理装置およびメモリ管
理方法を提供することにある。
【0014】
【課題を解決するための手段】請求項1記載の発明で
は、(イ)読み書き可能な所定サイズのメモリ領域のそ
のサイズを記憶するメモリ領域サイズ記憶手段と、
(ロ)このメモリ領域サイズ記憶手段に記憶したサイズ
のメモリ領域を固定長ブロックとしての第1のメモリセ
ルで分割するときのその固定長ブロックのサイズを記憶
する第1のメモリサイズ記憶手段と、(ハ)メモリ領域
について第1のメモリセルごとの使用の状態をビットマ
ップとして記憶する第1のビットマップ部と、(ニ)第
1のメモリセルを予め定められた整数倍であるN倍のメ
モリ量ごとに上位のメモリセルとしてまとめ、更にそれ
をN倍のメモリ量ごとに更に上位のメモリセルにまとめ
るようにして、メモリ領域を最大階層としてのa−1階
層(ただしaは2以上の整数)に階層化し、これらのそ
れぞれを第2のメモリセル〜第aのメモリセルとしたと
きのこれらのメモリセルごとの使用の状態をビットマッ
プとして記憶した第2〜第aのビットマップ部と、
(ホ)メモリ領域に対するメモリの確保の要求があった
とき、その要求したメモリのサイズよりも小さくそのサ
イズに最も近いサイズのメモリセルの階層を選択するメ
モリセル階層選択手段と、(へ)このメモリセル階層選
択手段によって選択された階層のメモリセルに対応する
ビットマップ部からメモリの確保の要求があったメモリ
のサイズを満足するのに最低限必要な数の連続したメモ
リセルの場所を表わしたアドレスを検索するアドレス検
索手段と、(ト)このアドレス検索手段によって検索さ
れたアドレスを用いてメモリ領域をメモリの確保の要求
があったメモリのサイズを満足するのに最低限必要な数
の連続したメモリセル分だけ確保するメモリ確保手段と
をメモリ管理装置に具備させる。
【0015】すなわち請求項1記載の発明では、読み書
きに割り当てられるメモリ領域のサイズを記憶しておい
て、これを最小単位のサイズのメモリセルで分割すると
きのその第1のメモリセルのサイズを記憶しておく。ま
た、この第1のメモリセルに対してN倍ずつ大きなサイ
ズとなる第2のメモリセル、第3のメモリセル、……を
規定する。そしてそれぞれの階層のメモリセルのメモリ
使用状態を表わす第1、第2、……のビットマップ部を
用意しておく。メモリ領域に対するメモリの確保の要求
があったらその要求したメモリのサイズよりも小さくそ
のサイズに最も近いサイズのメモリセルの階層をメモリ
セル階層選択手段によって選択する。そしてそれに対応
するビットマップ部を使用して要求があったメモリのサ
イズを満足するのに最低限必要な数の連続したメモリセ
ルの場所を表わしたアドレスを検索する。この検索され
たアドレスを用いて、メモリの確保の要求があったメモ
リのサイズを満足するのに最低限必要な数の連続したメ
モリセル分だけメモリ領域を確保することができる。こ
の請求項1記載の発明では、メモリセルについて階層構
造を取っているので、各種のサイズのメモリの要求に対
して、ビットマップ部を切り替えて検索し必要な領域を
確保することができる。したがって、要求したメモリ領
域のサイズにかかわらずメモリの確保や開放処理を高速
で行うことができる。またメモリセルのサイズを複数に
設定しているので、これらのサイズに応じて確保される
領域を住み分けることができ、メモリ領域における連続
した未使用のメモリの分裂が生じにくくなる。
【0016】請求項2記載の発明では、(イ)読み書き
可能な所定サイズのメモリ領域のそのサイズを記憶する
メモリ領域サイズ記憶手段と、(ロ)このメモリ領域サ
イズ記憶手段に記憶したサイズのメモリ領域を固定長ブ
ロックとしての第1のメモリセルで分割するときのその
固定長ブロックのサイズを記憶する第1のメモリサイズ
記憶手段と、(ハ)メモリ領域について第1のメモリセ
ルごとの使用の状態を、未使用状態を示す「未使用」、
その一部を使用している「一部使用中」、その全部を使
用している「使用中」の少なくとも3つの状態のいずれ
かを表わしたビットマップとして記憶する第1のビット
マップ部と、(ニ)第1のメモリセルを予め定められた
整数倍であるN倍のメモリ量ごとに上位のメモリセルと
してまとめ、更にそれをN倍のメモリ量ごとに更に上位
のメモリセルにまとめるようにして、メモリ領域を最大
階層としてのa−1階層(ただしaは2以上の整数)に
階層化し、これらのそれぞれを第2のメモリセル〜第a
のメモリセルとしたときのこれらのメモリセルごとの使
用の状態を、未使用状態を示す「未使用」、その一部を
使用している「一部使用中」、その全部を使用している
「使用中」の少なくとも3つの状態のいずれかを表わし
たビットマップとして記憶した第2〜第aのビットマッ
プ部と、(ホ)メモリ領域に対するメモリの確保の要求
があったとき、その要求したメモリのサイズよりも小さ
くそのサイズに最も近いサイズのメモリセルの階層を選
択するメモリセル階層選択手段と、(へ)このメモリセ
ル階層選択手段によって選択された階層のメモリセルに
対応するビットマップ部からメモリの確保の要求があっ
たメモリのサイズだけデータの連続的な格納が可能な1
または複数の連続したメモリセルの場所を表わしたアド
レスを、「未使用」または「一部使用中」の状態のメモ
リセルを先頭アドレスとして検索するアドレス検索手段
と、(ト)このアドレス検索手段によって検索されたア
ドレスを用いてメモリ領域をメモリの確保の要求があっ
たメモリのサイズを満足するのに最低限必要な数の連続
したメモリセル分だけ確保するメモリ確保手段と、
(チ)このメモリ確保手段によって確保したメモリセル
に対応するビットマップおよび確保したメモリセルより
も上位の階層のメモリセルでその状態の変更を受けるも
のについてのビットマップの状態を、変更後の状態に応
じて「一部使用中」あるいは「使用中」に変更するビッ
トマップ部変更手段とをメモリ管理装置に具備させる。
【0017】すなわち請求項2記載の発明では、読み書
きに割り当てられるメモリ領域のサイズを記憶しておい
て、これを最小単位のサイズのメモリセルで分割すると
きのその第1のメモリセルのサイズを記憶しておく。ま
た、この第1のメモリセルに対してN倍ずつ大きなサイ
ズとなる第2のメモリセル、第3のメモリセル、……を
規定する。そしてそれぞれの階層のメモリセルのメモリ
使用状態を表わす第1、第2、……のビットマップ部を
用意しておく。各メモリセルの使用状態は、未使用状態
を示す「未使用」、その一部を使用している「一部使用
中」、その全部を使用している「使用中」の少なくとも
3つの状態を取るようにしている。そして、メモリ領域
に対するメモリの確保の要求があったらその要求したメ
モリのサイズよりも小さくそのサイズに最も近いサイズ
のメモリセルの階層をメモリセル階層選択手段によって
選択する。そしてそれに対応するビットマップ部を使用
して要求があったメモリのサイズを満足するのに最低限
必要な数の連続したメモリセルの場所を表わしたアドレ
スを検索する。この際には、「未使用」または「一部使
用中」の状態のメモリセルを先頭アドレスとして検索す
ればよい。この検索されたアドレスを用いて、メモリの
確保の要求があったメモリのサイズを満足するのに最低
限必要な数の連続したメモリセル分だけメモリ領域を確
保することができる。このメモリ確保手段によって確保
したメモリセルに対応するビットマップおよび確保した
メモリセルよりも上位の階層のメモリセルでその状態の
変更を受けるものについてのビットマップの状態を、変
更後の状態に応じて「一部使用中」あるいは「使用中」
に変更する。
【0018】この請求項2記載の発明は、請求項1記載
の発明に加えて、ビットマップ部におけるメモリセルの
使用状態を未使用状態を示す「未使用」、その一部を使
用している「一部使用中」、その全部を使用している
「使用中」の少なくとも3つの状態で表わすことにした
ので、それらの状態の特質に応じてメモリの確保や開放
時における検索対象を絞ることができ、これにより検索
のスピードを向上させることができる。
【0019】請求項3記載の発明では、(イ)読み書き
可能な所定サイズのメモリ領域のそのサイズを記憶する
メモリ領域サイズ記憶手段と、(ロ)このメモリ領域サ
イズ記憶手段に記憶したサイズのメモリ領域を固定長ブ
ロックとしての第1のメモリセルで分割するときのその
固定長ブロックのサイズを記憶する第1のメモリサイズ
記憶手段と、(ハ)メモリ領域について第1のメモリセ
ルごとの使用の状態を、未使用状態を示す「未使用」、
その一部を使用している「一部使用中」、その全部を使
用している「使用中」および要求されるメモリサイズの
データの格納される先頭のメモリセルであることを示す
「割り当ての先頭」の4つの状態のいずれかを表わした
ビットマップとして記憶する第1のビットマップ部と、
(ニ)第1のメモリセルを予め定められた整数倍である
N倍のメモリ量ごとに上位のメモリセルとしてまとめ、
更にそれをN倍のメモリ量ごとに更に上位のメモリセル
にまとめるようにして、メモリ領域を最大階層としての
a−1階層(ただしaは2以上の整数)に階層化し、こ
れらのそれぞれを第2のメモリセル〜第aのメモリセル
としたときのこれらのメモリセルごとの使用の状態を、
未使用状態を示す「未使用」、その一部を使用している
「一部使用中」、その全部を使用している「使用中」お
よび要求されるメモリサイズのデータの格納される先頭
のメモリセルであることを示す「割り当ての先頭」の4
つの状態のいずれかを表わしたビットマップとして記憶
した第2〜第aのビットマップ部と、(ホ)メモリ領域
に対するメモリの確保の要求があったとき、その要求し
たメモリのサイズよりも小さくそのサイズに最も近いサ
イズのメモリセルの階層を選択するメモリセル階層選択
手段と、(へ)このメモリセル階層選択手段によって選
択された階層のメモリセルに対応するビットマップ部か
らメモリの確保の要求があったメモリのサイズだけデー
タの連続的な格納が可能な1または複数の連続したメモ
リセルの場所を表わしたアドレスを、「未使用」または
「一部使用中」の状態のメモリセルを先頭アドレスとし
て検索するアドレス検索手段と、(ト)このアドレス検
索手段によって検索されたアドレスを用いてメモリ領域
をメモリの確保の要求があったメモリのサイズを満足す
るのに最低限必要な数の連続したメモリセル分だけ確保
するメモリ確保手段と、(チ)このメモリ確保手段によ
って確保したメモリセルに対応するビットマップを「一
部使用中」、「使用中」あるいは「割り当ての先頭」に
変更すると共に、確保したメモリセルよりも上位の階層
のメモリセルでその状態の変更を受けるものについての
ビットマップの状態を、変更後の状態に応じて「一部使
用中」あるいは「使用中」に変更するビットマップ部変
更手段とをメモリ管理装置に具備させる。
【0020】すなわち請求項3記載の発明では、読み書
きに割り当てられるメモリ領域のサイズを記憶しておい
て、これを最小単位のサイズのメモリセルで分割すると
きのその第1のメモリセルのサイズを記憶しておく。ま
た、この第1のメモリセルに対してN倍ずつ大きなサイ
ズとなる第2のメモリセル、第3のメモリセル、……を
規定する。そしてそれぞれの階層のメモリセルのメモリ
使用状態を表わす第1、第2、……のビットマップ部を
用意しておく。各メモリセルの使用状態は、未使用状態
を示す「未使用」、その一部を使用している「一部使用
中」、その全部を使用している「使用中」および要求さ
れるメモリサイズのデータの格納される先頭のメモリセ
ルであることを示す「割り当ての先頭」の4つの状態を
取るようにしている。そして、メモリ領域に対するメモ
リの確保の要求があったらその要求したメモリのサイズ
よりも小さくそのサイズに最も近いサイズのメモリセル
の階層をメモリセル階層選択手段によって選択する。そ
してそれに対応するビットマップ部を使用して要求があ
ったメモリのサイズを満足するのに最低限必要な数の連
続したメモリセルの場所を表わしたアドレスを検索す
る。この際には、「割り当ての先頭」の状態のメモリセ
ルを先頭アドレスとして検索すればよい。この検索され
たアドレスを用いて、メモリの確保の要求があったメモ
リのサイズを満足するのに最低限必要な数の連続したメ
モリセル分だけメモリ領域を確保することができる。こ
のメモリ確保手段によって確保したメモリセルに対応す
るビットマップおよび確保したメモリセルよりも上位の
階層のメモリセルでその状態の変更を受けるものについ
てのビットマップの状態を、変更後の状態に応じて「一
部使用中」あるいは「使用中」に変更する。
【0021】この請求項3記載の発明は、請求項1記載
の発明に加えて、ビットマップ部におけるメモリセルの
使用状態を未使用状態を示す「未使用」、その一部を使
用している「一部使用中」、その全部を使用している
「使用中」および要求されるメモリサイズのデータの格
納される先頭のメモリセルであることを示す「割り当て
の先頭」の4つの状態で表わすことにしたので、わずか
2ビットの情報を使用することで、それらの状態の特質
に応じてメモリの確保や開放時における検索対象を絞る
ことができ、これにより検索のスピードを向上させるこ
とができる。また、「割り当ての先頭」の概念の状態が
加わることで、メモリの割り当てられた領域の先頭がど
のメモリセルにあるかを簡単に検索することができるよ
うになる。
【0022】請求項4記載の発明では、(イ)読み書き
可能な所定サイズのメモリ領域のそのサイズを記憶する
メモリ領域サイズ記憶手段と、(ロ)このメモリ領域サ
イズ記憶手段に記憶したサイズのメモリ領域を固定長ブ
ロックとしての第1のメモリセルで分割するときのその
固定長ブロックのサイズを記憶する第1のメモリサイズ
記憶手段と、(ハ)メモリ領域について第1のメモリセ
ルごとの使用の状態を、未使用状態を示す「未使用」、
その一部を使用している「一部使用中」、その全部を使
用している「使用中」および要求されるメモリサイズの
データの格納される先頭のメモリセルであることを示す
「割り当ての先頭」の4つの状態のいずれかを表わした
ビットマップとして記憶する第1のビットマップ部と、
(ニ)第1のメモリセルを予め定められた整数倍である
N倍のメモリ量ごとに上位のメモリセルとしてまとめ、
更にそれをN倍のメモリ量ごとに更に上位のメモリセル
にまとめるようにして、メモリ領域を最大階層としての
a−1階層(ただしaは2以上の整数)に階層化し、こ
れらのそれぞれを第2のメモリセル〜第aのメモリセル
としたときのこれらのメモリセルごとの使用の状態を、
未使用状態を示す「未使用」、その一部を使用している
「一部使用中」、その全部を使用している「使用中」お
よび要求されるメモリサイズのデータの格納される先頭
のメモリセルであることを示す「割り当ての先頭」の4
つの状態のいずれかを表わしたビットマップとして記憶
した第2〜第aのビットマップ部と、(ホ)メモリ領域
に対するメモリの確保の要求があったとき、その要求し
たメモリのサイズに比較的近くてこれよりも大きなメモ
リセルが存在するかを判別する1階層上位メモリセル選
択手段と、(へ)この1階層上位メモリセル選択手段が
その条件に合うメモリセルが存在しないと判別したとき
その要求したメモリのサイズよりも小さくそのサイズに
最も近いサイズのメモリセルの階層を選択する第1のメ
モリセル階層選択手段と、(ト)1階層上位メモリセル
選択手段がその条件に合うメモリセルが存在すると判別
したときその階層のメモリセルを選択する第2のメモリ
セル階層選択手段と、(チ)第1または第2のメモリセ
ル階層選択手段によって選択された階層のメモリセルに
対応するビットマップ部からメモリの確保の要求があっ
たメモリのサイズだけデータの連続的な格納が可能な1
または複数の連続したメモリセルの場所を表わしたアド
レスを、「未使用」または「一部使用中」の状態のメモ
リセルを先頭アドレスとして検索するアドレス検索手段
と、(リ)このアドレス検索手段によって検索されたア
ドレスを用いてメモリ領域をメモリの確保の要求があっ
たメモリのサイズを満足するのに最低限必要な数の連続
したメモリセル分だけ確保するメモリ確保手段と、
(ヌ)このメモリ確保手段によって確保したメモリセル
に対応するビットマップを「一部使用中」、「使用中」
あるいは「割り当ての先頭」に変更すると共に、確保し
たメモリセルよりも上位の階層のメモリセルでその状態
の変更を受けるものについてのビットマップの状態を、
変更後の状態に応じて「一部使用中」あるいは「使用
中」に変更するビットマップ部変更手段とをメモリ管理
装置に具備させる。
【0023】すなわち請求項4記載の発明では、読み書
きに割り当てられるメモリ領域のサイズを記憶しておい
て、これを最小単位のサイズのメモリセルで分割すると
きのその第1のメモリセルのサイズを記憶しておく。ま
た、この第1のメモリセルに対してN倍ずつ大きなサイ
ズとなる第2のメモリセル、第3のメモリセル、……を
規定する。そしてそれぞれの階層のメモリセルのメモリ
使用状態を表わす第1、第2、……のビットマップ部を
用意しておく。各メモリセルの使用状態は、未使用状態
を示す「未使用」、その一部を使用している「一部使用
中」、その全部を使用している「使用中」および要求さ
れるメモリサイズのデータの格納される先頭のメモリセ
ルであることを示す「割り当ての先頭」の4つの状態を
取るようにしている。そして、メモリ領域に対するメモ
リの確保の要求があったらその要求したメモリのサイズ
に比較的近くてこれよりも大きなメモリセルが存在する
かを判別することにし、このようなメモリセルが存在し
ないときには要求したメモリのサイズよりも小さくその
サイズに最も近いサイズのメモリセルの階層を選択する
一方、1階層上位のそのような条件に合うメモリセルが
存在するときにはその階層のメモリセルを選択するよう
なメモリセルのアドレスを検索する。この際には、「割
り当ての先頭」の状態のメモリセルを先頭アドレスとし
て検索すればよい。この検索されたアドレスを用いて、
メモリの確保の要求があったメモリのサイズを満足する
のに最低限必要な数の連続したメモリセル分だけメモリ
領域を確保することができる。このメモリ確保手段によ
って確保したメモリセルに対応するビットマップおよび
確保したメモリセルよりも上位の階層のメモリセルでそ
の状態の変更を受けるものについてのビットマップの状
態を、変更後の状態に応じて「一部使用中」あるいは
「使用中」に変更する。
【0024】この請求項4記載の発明では、要求したメ
モリのサイズに比較的近くてこれよりも大きなメモリセ
ルが存在する場合には、下位のサイズのメモリセルを結
果的に上位のメモリセルを構成する個数だけすべて集め
て要求を満たすメモリを確保するのではなく、1つの上
位のメモリセルを確保することで、メモリ管理の簡略化
を図っている。ただし、このようなちょうど良いサイズ
のメモリの獲得要求がある場合は比較的少ないので、多
くの場合には請求項3記載の発明として記載したよう
に、要求したメモリのサイズよりも小さくそのサイズに
最も近いサイズのメモリセルの階層によるメモリセルの
獲得が行われることになる。
【0025】請求項5記載の発明では、(イ)読み書き
可能な所定サイズのメモリ領域のそのサイズを記憶する
メモリ領域サイズ記憶手段と、(ロ)このメモリ領域サ
イズ記憶手段に記憶したサイズのメモリ領域を固定長ブ
ロックとしての第1のメモリセルで分割するときのその
固定長ブロックのサイズを記憶する第1のメモリサイズ
記憶手段と、(ハ)メモリ領域について第1のメモリセ
ルごとの使用の状態を、未使用状態を示す「未使用」、
その一部を使用している「一部使用中」、その全部を使
用している「使用中」および要求されるメモリサイズの
データの格納される先頭のメモリセルであることを示す
「割り当ての先頭」の4つの状態のいずれかを表わした
ビットマップとして記憶する第1のビットマップ部と、
(ニ)第1のメモリセルを予め定められた整数倍である
N倍のメモリ量ごとに上位のメモリセルとしてまとめ、
更にそれをN倍のメモリ量ごとに更に上位のメモリセル
にまとめるようにして、メモリ領域を最大階層としての
a−1階層(ただしaは2以上の整数)に階層化し、こ
れらのそれぞれを第2のメモリセル〜第aのメモリセル
としたときのこれらのメモリセルごとの使用の状態を、
未使用状態を示す「未使用」、その一部を使用している
「一部使用中」、その全部を使用している「使用中」お
よび要求されるメモリサイズのデータの格納される先頭
のメモリセルであることを示す「割り当ての先頭」の4
つの状態のいずれかを表わしたビットマップとして記憶
した第2〜第aのビットマップ部と、(ホ)メモリ領域
に対するメモリの確保の要求があったとき、その要求し
たメモリのサイズよりも小さくそのサイズに最も近いサ
イズのメモリセルと、これよりも更に小さなサイズのメ
モリセルとの組み合わせで要求したメモリのサイズを充
足するメモリセルの組み合わせを選択するメモリセル選
択手段と、(へ)このメモリセル選択手段によって選択
されたそれぞれの階層のメモリセルに対応するビットマ
ップ部からメモリの確保の要求があったメモリのサイズ
だけデータの連続的な格納が可能な1または複数の連続
したメモリセルの場所を表わしたアドレスを、「未使
用」または「一部使用中」の状態のメモリセルを先頭ア
ドレスとして検索するアドレス検索手段と、(ト)この
アドレス検索手段によって検索されたアドレスを用いて
メモリ領域をメモリの確保の要求があったメモリのサイ
ズを満足するのに最低限必要な数の連続したメモリセル
分だけ確保するメモリ確保手段と、(チ)このメモリ確
保手段によって確保したメモリセルに対応するビットマ
ップを「一部使用中」、「使用中」あるいは「割り当て
の先頭」に変更すると共に、確保したメモリセルよりも
上位の階層のメモリセルでその状態の変更を受けるもの
についてのビットマップの状態を、変更後の状態に応じ
て「一部使用中」あるいは「使用中」に変更するビット
マップ部変更手段とをメモリ管理装置に具備させる。
【0026】すなわち請求項5記載の発明では、読み書
きに割り当てられるメモリ領域のサイズを記憶しておい
て、これを最小単位のサイズのメモリセルで分割すると
きのその第1のメモリセルのサイズを記憶しておく。ま
た、この第1のメモリセルに対してN倍ずつ大きなサイ
ズとなる第2のメモリセル、第3のメモリセル、……を
規定する。そしてそれぞれの階層のメモリセルのメモリ
使用状態を表わす第1、第2、……のビットマップ部を
用意しておく。各メモリセルの使用状態は、未使用状態
を示す「未使用」、その一部を使用している「一部使用
中」、その全部を使用している「使用中」および要求さ
れるメモリサイズのデータの格納される先頭のメモリセ
ルであることを示す「割り当ての先頭」の4つの状態を
取るようにしている。そして、メモリ領域に対するメモ
リの確保の要求があったらその要求したメモリのサイズ
よりも小さくそのサイズに最も近いサイズのメモリセル
と、これよりも更に小さなサイズのメモリセルとの組み
合わせで要求したメモリのサイズを充足するメモリセル
の組み合わせを選択するようなメモリセルのアドレスを
検索する。この際には、「割り当ての先頭」の状態のメ
モリセルを先頭アドレスとして検索すればよい。この検
索されたアドレスを用いて、メモリの確保の要求があっ
たメモリのサイズを満足するのに最低限必要な数の連続
したメモリセル分だけメモリ領域を確保することができ
る。このメモリ確保手段によって確保したメモリセルに
対応するビットマップおよび確保したメモリセルよりも
上位の階層のメモリセルでその状態の変更を受けるもの
についてのビットマップの状態を、変更後の状態に応じ
て「一部使用中」あるいは「使用中」に変更する。
【0027】この請求項5記載の発明では、要求したメ
モリのサイズに対して、これに近くてこれよりも小さな
1種類のメモリセルを1または複数個使用して要求を満
足しようとするのではなく、幾種類かのメモリセルを組
み合わせることで要求したメモリのサイズに対応しよう
とするものである。たとえば“101”というデータの
サイズが要求されたとき、これよりも小さくて近い“1
00”というサイズのメモリセルを2つ組み合わせるも
のとすると、一方のメモリセルの占有率は低い。そこで
このような場合には“100”というサイズのメモリセ
ルと、“1”あるいは“10”といったより小さなメモ
リセルを組み合わせることで効率的なメモリ管理を可能
にしている。
【0028】請求項6記載の発明では、(イ)読み書き
可能な所定サイズのメモリ領域のそのサイズを記憶する
メモリ領域サイズ記憶手段と、(ロ)このメモリ領域サ
イズ記憶手段に記憶したサイズのメモリ領域を所定のア
ドレスを境として2分したときの第1のメモリ領域を固
定長ブロックとしての第1のメモリセルで分割するとき
のその固定長ブロックのサイズを記憶する第1のメモリ
サイズ記憶手段と、(ハ)第1のメモリ領域について第
1のメモリセルごとの使用の状態を、未使用状態を示す
「未使用」、その一部を使用している「一部使用中」、
その全部を使用している「使用中」および要求されるメ
モリサイズのデータの格納される先頭のメモリセルであ
ることを示す「割り当ての先頭」の4つの状態のいずれ
かを表わしたビットマップとして記憶する第1のビット
マップ部と、(ニ)第1のメモリセルを予め定められた
整数倍であるN倍のメモリ量ごとに上位のメモリセルと
してまとめ、更にそれをN倍のメモリ量ごとに更に上位
のメモリセルにまとめるようにして、メモリ領域を最大
階層としてのa−1階層(ただしaは2以上の整数)に
階層化し、これらのそれぞれを第2のメモリセル〜第a
のメモリセルとしたときのこれらのメモリセルを第1の
メモリ領域とそれ以外の第2のメモリ領域に割り振り、
これら第1および第2のメモリ領域について対応する各
メモリセルごとの使用状態をビットマップとして記憶し
た第2〜第aのビットマップ部と、(ホ)メモリ領域に
対するメモリの確保の要求があったとき、その要求した
メモリのサイズよりも小さくそのサイズに最も近いサイ
ズのメモリセルの階層を選択するメモリセル階層選択手
段と、(へ)このメモリセル階層選択手段によって選択
された階層のメモリセルに対応するビットマップ部から
メモリの確保の要求があったメモリのサイズを満足する
のに最低限必要な数の連続したメモリセルの場所を表わ
したアドレスを検索するアドレス検索手段と、(ト)こ
のアドレス検索手段によって検索されたアドレスを用い
てメモリ領域をメモリの確保の要求があったメモリのサ
イズを満足するのに最低限必要な数の連続したメモリセ
ル分だけ確保するメモリ確保手段とをメモリ管理装置に
具備させる。
【0029】すなわち請求項6記載の発明では、読み書
きに割り当てられるメモリ領域のサイズを記憶しておい
て、更にこれを所定のアドレスを境として2分し、第1
のメモリ領域と第2のメモリ領域にしておく。そして一
方のメモリ領域としての第1のメモリ領域についてはす
でに説明したと同様に最小のメモリサイズとしての第1
のメモリセルで分割する。更に上位の各階層のメモリセ
ルについては、第1のメモリ領域と第2のメモリ領域に
適宜分散する。たとえば第1〜第4のメモリセルを用意
する場合には、第1のメモリ領域に第1のメモリセルと
第2のメモリセルを配置して第2のメモリ領域に第3の
メモリセルと第4のメモリセルを配置するようにしても
よいし、第1のメモリ領域に第1のメモリセルと第3の
メモリセルを配置して第2のメモリ領域に第2のメモリ
セルと第4のメモリセルを配置するようにしてもよい。
各メモリセルの使用状態は、未使用状態を示す「未使
用」、その一部を使用している「一部使用中」、その全
部を使用している「使用中」および要求されるメモリサ
イズのデータの格納される先頭のメモリセルであること
を示す「割り当ての先頭」の4つの状態を取るようにし
ている。そして、メモリ領域に対するメモリの確保の要
求があったらその要求したメモリのサイズよりも小さく
そのサイズに最も近いサイズのメモリセルと、これより
も更に小さなサイズのメモリセルとの組み合わせで要求
したメモリのサイズを充足するメモリセルの組み合わせ
を選択するようなメモリセルのアドレスを検索する。こ
の際には、「割り当ての先頭」の状態のメモリセルを先
頭アドレスとして検索すればよい。この検索されたアド
レスを用いて、メモリの確保の要求があったメモリのサ
イズを満足するのに最低限必要な数の連続したメモリセ
ル分だけメモリ領域を確保することができる。このメモ
リ確保手段によって確保したメモリセルに対応するビッ
トマップおよび確保したメモリセルよりも上位の階層の
メモリセルでその状態の変更を受けるものについてのビ
ットマップの状態を、変更後の状態に応じて「一部使用
中」あるいは「使用中」に変更する。
【0030】この請求項6記載の発明では、メモリ領域
を2分してそれぞれのサイズのメモリセルをこれらのい
ずれかに割り当てたので、要求されるメモリ量に応じて
データの住み分けが容易になり、メモリ領域にフラグメ
ントが発生しにくくなる可能性がある。
【0031】請求項7記載の発明では、(イ)読み書き
可能な所定サイズのメモリ領域のそのサイズを記憶する
メモリ領域サイズ記憶手段と、(ロ)このメモリ領域サ
イズ記憶手段に記憶したサイズのメモリ領域を所定のア
ドレスを境として2分したときの第1のメモリ領域を固
定長ブロックとしての第1のメモリセルで分割するとき
のその固定長ブロックのサイズを記憶する第1のメモリ
サイズ記憶手段と、(ハ)第1のメモリ領域について第
1のメモリセルごとの使用の状態をビットマップとして
記憶する第1のビットマップ部と、(ニ)第1のメモリ
セルを予め定められた整数倍であるN倍のメモリ量ごと
に上位のメモリセルとしてまとめ、更にそれをN倍のメ
モリ量ごとに更に上位のメモリセルにまとめるようにし
て、メモリ領域を最大階層としてのa−1階層(ただし
aは2以上の整数)に階層化し、これらのそれぞれを第
2のメモリセル〜第aのメモリセルとしたときのこれら
のメモリセルごとの使用の状態を、未使用状態を示す
「未使用」、その一部を使用している「一部使用中」、
その全部を使用している「使用中」および要求されるメ
モリサイズのデータの格納される先頭のメモリセルであ
ることを示す「割り当ての先頭」の4つの状態のいずれ
かを表わし、かつこれらのメモリセルを第1のメモリ領
域とそれ以外の第2のメモリ領域に割り振り、これら第
1および第2のメモリ領域について対応する各メモリセ
ルごとの使用状態をビットマップとして記憶した第2〜
第aのビットマップ部と、(ホ)メモリ領域に対するメ
モリの確保の要求があったとき、その要求したメモリの
サイズよりも小さくそのサイズに最も近いサイズのメモ
リセルと、これよりも更に小さなサイズのメモリセルと
の組み合わせで要求したメモリのサイズを充足するメモ
リセルの組み合わせを選択するメモリセル選択手段と、
(へ)このメモリセル選択手段によって選択されたそれ
ぞれの階層のメモリセルに対応するビットマップ部から
メモリの確保の要求があったメモリのサイズだけデータ
の連続的な格納が可能な1または複数の連続したメモリ
セルの場所を表わしたアドレスを、「未使用」または
「一部使用中」の状態のメモリセルを先頭アドレスとし
て検索するアドレス検索手段と、(ト)このアドレス検
索手段によって検索されたアドレスを用いてメモリ領域
をメモリの確保の要求があったメモリのサイズを満足す
るのに最低限必要な数の連続したメモリセル分だけ確保
するメモリ確保手段と、(チ)このメモリ確保手段によ
って確保したメモリセルに対応するビットマップを「一
部使用中」、「使用中」あるいは「割り当ての先頭」に
変更すると共に、確保したメモリセルよりも上位の階層
のメモリセルでその状態の変更を受けるものについての
ビットマップの状態を、変更後の状態に応じて「一部使
用中」あるいは「使用中」に変更するビットマップ部変
更手段とをメモリ管理装置に具備させる。
【0032】すなわち請求項7記載の発明では、請求項
6記載の発明と同様に読み書き可能な所定サイズのメモ
リ領域を所定のアドレスを境として2分して第1のメモ
リ領域と第2のメモリ領域に分けると共に、これらに各
階層のメモリセルを割り当てるようにしている。また、
メモリ領域に対するメモリの確保の要求があったとき、
その要求したメモリのサイズよりも小さくそのサイズに
最も近いサイズのメモリセルと、これよりも更に小さな
サイズのメモリセルとの組み合わせで要求したメモリの
サイズを充足するメモリセルの組み合わせを選択するよ
うにしている。そして、メモリの確保の要求があった場
合には「未使用」または「一部使用中」の状態のメモリ
セルを先頭アドレスとして該当する階層のメモリセルを
検索し、メモリの確保を行った場合には直接該当するメ
モリセルの状態を変更するだけでなく、それよりも上位
のメモリセルに対しても状態に変化が生じているものに
ついて同様に変更を行うようにしている。
【0033】請求項8記載の発明では、請求項1〜請求
項7記載のメモリ管理装置でアドレス検索手段は、メモ
リセルのサイズの隣接する階層に対してアドレスの検索
方向が逆方向となるように検索方向の設定が行われてい
ることを特徴としている。
【0034】すなわち請求項8記載のメモリ管理装置で
は、たとえば第1の階層のメモリセルと第2の階層のメ
モリセルというようにメモリセルのサイズの隣接する階
層に対してアドレスの検索方向が逆方向となるようにし
ている。これにより、階層ごとのメモリの住み分けを図
ることができ、メモリ領域にフラグメントが発生しにく
くなる。
【0035】請求項9記載の発明では、請求項2〜請求
項7記載のメモリ管理装置に、少なくとも一方が「一部
使用中」の状態の隣接する2つのメモリセルの互いに隣
接している箇所に連続した空き領域があるとき、この連
続した空き領域がメモリの確保の要求時の要求したメモ
リのサイズ以上であるかどうかを判別する隣接メモリセ
ル判別手段を具備させている。
【0036】すなわち請求項9記載の発明では、少なく
とも一方が「一部使用中」の状態の隣接する2つのメモ
リセルの互いに隣接している箇所に連続した空き領域が
あるとき、この連続した空き領域がメモリの確保の要求
時の要求したメモリのサイズ以上であるかどうかを判別
し、要求に満足する場合にはこのような領域の確保も可
能にするようにしている。
【0037】請求項10記載の発明では、請求項1〜請
求項7記載のメモリ管理装置に、(イ)メモリ領域に確
保したメモリの開放が要求されたときその開放するメモ
リのサイズよりも小さくそのサイズに最も近いサイズの
メモリセルを選択する開放時メモリセル選択手段と、
(ロ)この開放時メモリセル選択手段によって選択され
たメモリセルの状態を示すビットマップから開放対象の
メモリセルを検索する開放時検索手段と、(ハ)この開
放時検索手段で検索したメモリセルの該当するデータ領
域を開放するメモリ開放手段とを具備させている。
【0038】すなわち請求項10記載の発明では、請求
項1〜請求項7記載のメモリ管理装置でメモリの開放を
行うとき、開放するメモリのサイズよりも小さくそのサ
イズに最も近いサイズのメモリセルを選択してそれに対
応するビットマップから該当するメモリセルを検索する
ようにしたので、開放時の処理が迅速化する。
【0039】請求項11記載の発明では、請求項3〜請
求項7記載のメモリ管理装置で、開放するメモリの先頭
アドレスは、「割り当ての先頭」の状態のメモリセルの
中から検索することを特徴としている。
【0040】すなわち請求項11記載の発明では、「割
り当ての先頭」の状態のメモリセルのみを検索対象とす
ることで、検索処理が一層迅速化することになる。
【0041】請求項12記載の発明では、請求項10記
載のメモリ管理装置で、メモリ開放手段がメモリ領域か
らメモリを開放したとき、開放時メモリセル選択手段で
選択したメモリセルをその状態によって「未使用」ある
いは「一部使用中」状態に変更すると共に、そのメモリ
セルに対応するビットマップおよびこれを包括する上位
のビットマップの該当するメモリセルのうち他に使用し
ているメモリセルがなくなったものについてはこれを
「未使用」状態に、また一部使用状態に変化したものに
ついてはこれを「一部使用中」状態に変更する開放時ビ
ットマップ変更手段を具備することを特徴としている。
【0042】すなわち請求項12記載の発明では、開放
時におけるメモリセルの使用状態の変化をそれぞれのメ
モリセルの状態に反映させることにしている。
【0043】請求項13記載の発明では、(イ)読み書
き可能な所定サイズのメモリ領域のそのサイズを記憶す
るメモリ領域サイズ記憶ステップと、(ロ)このメモリ
領域サイズ記憶ステップで記憶したサイズのメモリ領域
を固定長ブロックとしての第1のメモリセルで分割する
ときのその固定長ブロックのサイズを記憶する第1のメ
モリサイズ記憶ステップと、(ハ)メモリ領域について
第1のメモリセルごとの使用の状態をビットマップとし
て記憶する第1のビットマップ部記憶ステップと、
(ニ)第1のメモリセルを予め定められた整数倍である
N倍のメモリ量ごとに上位のメモリセルとしてまとめ、
更にそれをN倍のメモリ量ごとに更に上位のメモリセル
にまとめるようにして、メモリ領域を最大階層としての
a−1階層(ただしaは2以上の整数)に階層化し、こ
れらのそれぞれを第2のメモリセル〜第aのメモリセル
としたときのこれらのメモリセルごとの使用の状態をビ
ットマップとして記憶する第2〜第aのビットマップ部
記憶ステップと、(ホ)メモリ領域に対するメモリの確
保の要求があったとき、その要求したメモリのサイズよ
りも小さくそのサイズに最も近いサイズのメモリセルの
階層を選択するメモリセル階層選択ステップと、(へ)
このメモリセル階層選択ステップによって選択された階
層のメモリセルに対応するビットマップ部からメモリの
確保の要求があったメモリのサイズを満足するのに最低
限必要な数の連続したメモリセルの場所を表わしたアド
レスを検索するアドレス検索ステップと、(ト)このア
ドレス検索ステップによって検索されたアドレスを用い
てメモリ領域をメモリの確保の要求があったメモリのサ
イズを満足するのに最低限必要な数の連続したメモリセ
ル分だけ確保するメモリ確保ステップとをメモリ管理方
法に具備させる。
【0044】すなわち請求項13記載の発明では、読み
書きに割り当てられるメモリ領域のサイズを記憶して、
これを最小単位のサイズのメモリセルで分割するときの
その第1のメモリセルのサイズを記憶する。また、この
第1のメモリセルに対してN倍ずつ大きなサイズとなる
第2のメモリセル、第3のメモリセル、……を規定す
る。そしてそれぞれの階層のメモリセルのメモリ使用状
態を表わす第1、第2、……のビットマップ部記憶ステ
ップを用意しておく。メモリ領域に対するメモリの確保
の要求があったらその要求したメモリのサイズよりも小
さくそのサイズに最も近いサイズのメモリセルの階層を
メモリセル階層選択ステップによって選択する。そして
それに対応するビットマップ部を使用して要求があった
メモリのサイズを満足するのに最低限必要な数の連続し
たメモリセルの場所を表わしたアドレスを検索する。こ
の検索されたアドレスを用いて、メモリの確保の要求が
あったメモリのサイズを満足するのに最低限必要な数の
連続したメモリセル分だけメモリ領域を確保することが
できる。この請求項13記載の発明では、メモリセルに
ついて階層構造を取ることを前提にしているので、各種
のサイズのメモリの要求に対して、ビットマップ部を切
り替えて検索し必要な領域を確保することができる。し
たがって、要求したメモリ領域のサイズにかかわらずメ
モリの確保や開放処理を高速で行うことができる。また
メモリセルのサイズを複数に設定しているので、これら
のサイズに応じて確保される領域を住み分けることがで
き、メモリ領域における連続した未使用のメモリの分裂
が生じにくくなる。
【0045】請求項14記載の発明では、(イ)読み書
き可能な所定サイズのメモリ領域のそのサイズを記憶す
るメモリ領域サイズ記憶ステップと、(ロ)このメモリ
領域サイズ記憶ステップで記憶したサイズのメモリ領域
を固定長ブロックとしての第1のメモリセルで分割する
ときのその固定長ブロックのサイズを記憶する第1のメ
モリサイズ記憶ステップと、(ハ)メモリ領域について
第1のメモリセルごとの使用の状態を、未使用状態を示
す「未使用」、その一部を使用している「一部使用
中」、その全部を使用している「使用中」の少なくとも
3つの状態のいずれかを表わしたビットマップとして記
憶する第1のビットマップ部記憶ステップと、(ニ)第
1のメモリセルを予め定められた整数倍であるN倍のメ
モリ量ごとに上位のメモリセルとしてまとめ、更にそれ
をN倍のメモリ量ごとに更に上位のメモリセルにまとめ
るようにして、メモリ領域を最大階層としてのa−1階
層(ただしaは2以上の整数)に階層化し、これらのそ
れぞれを第2のメモリセル〜第aのメモリセルとしたと
きのこれらのメモリセルごとの使用の状態を、未使用状
態を示す「未使用」、その一部を使用している「一部使
用中」、その全部を使用している「使用中」の少なくと
も3つの状態のいずれかを表わしたビットマップとして
記憶する第2〜第aのビットマップ部記憶ステップと、
(ホ)メモリ領域に対するメモリの確保の要求があった
とき、その要求したメモリのサイズよりも小さくそのサ
イズに最も近いサイズのメモリセルの階層を選択するメ
モリセル階層選択ステップと、(へ)このメモリセル階
層選択ステップによって選択された階層のメモリセルに
対応するビットマップ部からメモリの確保の要求があっ
たメモリのサイズだけデータの連続的な格納が可能な1
または複数の連続したメモリセルの場所を表わしたアド
レスを、「未使用」または「一部使用中」の状態のメモ
リセルを先頭アドレスとして検索するアドレス検索ステ
ップと、(ト)このアドレス検索ステップによって検索
されたアドレスを用いてメモリ領域をメモリの確保の要
求があったメモリのサイズを満足するのに最低限必要な
数の連続したメモリセル分だけ確保するメモリ確保ステ
ップと、(チ)このメモリ確保ステップによって確保し
たメモリセルに対応するビットマップおよび確保したメ
モリセルよりも上位の階層のメモリセルでその状態の変
更を受けるものについてのビットマップの状態を、変更
後の状態に応じて「一部使用中」あるいは「使用中」に
変更するビットマップ部変更ステップとをメモリ管理方
法に具備させる。
【0046】すなわち請求項14記載の発明では、読み
書きに割り当てられるメモリ領域のサイズを記憶し、こ
れを最小単位のサイズのメモリセルで分割するときのそ
の第1のメモリセルのサイズを記憶する。また、この第
1のメモリセルに対してN倍ずつ大きなサイズとなる第
2のメモリセル、第3のメモリセル、……を規定する。
そしてそれぞれの階層のメモリセルのメモリ使用状態を
表わす第1、第2、……のビットマップ部記憶ステップ
を用意しておく。各メモリセルの使用状態は、未使用状
態を示す「未使用」、その一部を使用している「一部使
用中」、その全部を使用している「使用中」の少なくと
も3つの状態を取るようにしている。そして、メモリ領
域に対するメモリの確保の要求があったらその要求した
メモリのサイズよりも小さくそのサイズに最も近いサイ
ズのメモリセルの階層をメモリセル階層選択ステップに
よって選択する。そしてそれに対応するビットマップ部
を使用して要求があったメモリのサイズを満足するのに
最低限必要な数の連続したメモリセルの場所を表わした
アドレスを検索する。この際には、「未使用」または
「一部使用中」の状態のメモリセルを先頭アドレスとし
て検索すればよい。この検索されたアドレスを用いて、
メモリの確保の要求があったメモリのサイズを満足する
のに最低限必要な数の連続したメモリセル分だけメモリ
領域を確保することができる。このメモリ確保ステップ
によって確保したメモリセルに対応するビットマップお
よび確保したメモリセルよりも上位の階層のメモリセル
でその状態の変更を受けるものについてのビットマップ
の状態を、変更後の状態に応じて「一部使用中」あるい
は「使用中」に変更する。
【0047】この請求項14記載の発明は、請求項13
記載の発明に加えて、ビットマップ部記憶ステップにお
けるメモリセルの使用状態を未使用状態を示す「未使
用」、その一部を使用している「一部使用中」、その全
部を使用している「使用中」の少なくとも3つの状態で
表わすことにしたので、それらの状態の特質に応じてメ
モリの確保や開放時における検索対象を絞ることがで
き、これにより検索のスピードを向上させることができ
る。
【0048】請求項15記載の発明では、(イ)読み書
き可能な所定サイズのメモリ領域のそのサイズを記憶す
るメモリ領域サイズ記憶ステップと、(ロ)このメモリ
領域サイズ記憶ステップで記憶したサイズのメモリ領域
を固定長ブロックとしての第1のメモリセルで分割する
ときのその固定長ブロックのサイズを記憶する第1のメ
モリサイズ記憶ステップと、(ハ)メモリ領域について
第1のメモリセルごとの使用の状態を、未使用状態を示
す「未使用」、その一部を使用している「一部使用
中」、その全部を使用している「使用中」および要求さ
れるメモリサイズのデータの格納される先頭のメモリセ
ルであることを示す「割り当ての先頭」の4つの状態の
いずれかを表わしたビットマップとして記憶する第1の
ビットマップ部記憶ステップと、(ニ)第1のメモリセ
ルを予め定められた整数倍であるN倍のメモリ量ごとに
上位のメモリセルとしてまとめ、更にそれをN倍のメモ
リ量ごとに更に上位のメモリセルにまとめるようにし
て、メモリ領域を最大階層としてのa−1階層(ただし
aは2以上の整数)に階層化し、これらのそれぞれを第
2のメモリセル〜第aのメモリセルとしたときのこれら
のメモリセルごとの使用の状態を、未使用状態を示す
「未使用」、その一部を使用している「一部使用中」、
その全部を使用している「使用中」および要求されるメ
モリサイズのデータの格納される先頭のメモリセルであ
ることを示す「割り当ての先頭」の4つの状態のいずれ
かを表わしたビットマップとして記憶する第2〜第aの
ビットマップ部記憶ステップと、(ホ)メモリ領域に対
するメモリの確保の要求があったとき、その要求したメ
モリのサイズよりも小さくそのサイズに最も近いサイズ
のメモリセルの階層を選択するメモリセル階層選択ステ
ップと、(へ)このメモリセル階層選択ステップによっ
て選択された階層のメモリセルに対応するビットマップ
部からメモリの確保の要求があったメモリのサイズだけ
データの連続的な格納が可能な1または複数の連続した
メモリセルの場所を表わしたアドレスを、「未使用」ま
たは「一部使用中」の状態のメモリセルを先頭アドレス
として検索するアドレス検索ステップと、(ト)このア
ドレス検索ステップによって検索されたアドレスを用い
てメモリ領域をメモリの確保の要求があったメモリのサ
イズを満足するのに最低限必要な数の連続したメモリセ
ル分だけ確保するメモリ確保ステップと、(チ)このメ
モリ確保ステップによって確保したメモリセルに対応す
るビットマップを「一部使用中」、「使用中」あるいは
「割り当ての先頭」に変更すると共に、確保したメモリ
セルよりも上位の階層のメモリセルでその状態の変更を
受けるものについてのビットマップの状態を、変更後の
状態に応じて「一部使用中」あるいは「使用中」に変更
するビットマップ部変更ステップとをメモリ管理方法に
具備させる。
【0049】すなわち請求項15記載の発明では、読み
書きに割り当てられるメモリ領域のサイズを記憶してお
いて、これを最小単位のサイズのメモリセルで分割する
ときのその第1のメモリセルのサイズを記憶しておく。
また、この第1のメモリセルに対してN倍ずつ大きなサ
イズとなる第2のメモリセル、第3のメモリセル、……
を規定する。そしてそれぞれの階層のメモリセルのメモ
リ使用状態を表わす第1、第2、……のビットマップ部
記憶ステップを用意しておく。各メモリセルの使用状態
は、未使用状態を示す「未使用」、その一部を使用して
いる「一部使用中」、その全部を使用している「使用
中」および要求されるメモリサイズのデータの格納され
る先頭のメモリセルであることを示す「割り当ての先
頭」の4つの状態を取るようにしている。そして、メモ
リ領域に対するメモリの確保の要求があったらその要求
したメモリのサイズよりも小さくそのサイズに最も近い
サイズのメモリセルの階層をメモリセル階層選択手段に
よって選択する。そしてそれに対応するビットマップ部
記憶ステップを使用して要求があったメモリのサイズを
満足するのに最低限必要な数の連続したメモリセルの場
所を表わしたアドレスを検索する。この際には、「割り
当ての先頭」の状態のメモリセルを先頭アドレスとして
検索すればよい。この検索されたアドレスを用いて、メ
モリの確保の要求があったメモリのサイズを満足するの
に最低限必要な数の連続したメモリセル分だけメモリ領
域を確保することができる。このメモリ確保手段によっ
て確保したメモリセルに対応するビットマップおよび確
保したメモリセルよりも上位の階層のメモリセルでその
状態の変更を受けるものについてのビットマップの状態
を、変更後の状態に応じて「一部使用中」あるいは「使
用中」に変更する。
【0050】この請求項15記載の発明は、請求項13
記載の発明に加えて、ビットマップ部におけるメモリセ
ルの使用状態を未使用状態を示す「未使用」、その一部
を使用している「一部使用中」、その全部を使用してい
る「使用中」および要求されるメモリサイズのデータの
格納される先頭のメモリセルであることを示す「割り当
ての先頭」の4つの状態で表わすことにしたので、わず
か2ビットの情報を使用することで、それらの状態の特
質に応じてメモリの確保や開放時における検索対象を絞
ることができ、これにより検索のスピードを向上させる
ことができる。また、「割り当ての先頭」の概念の状態
が加わることで、メモリの割り当てられた領域の先頭が
どのメモリセルにあるかを簡単に検索することができる
ようになる。
【0051】請求項16記載の発明では、(イ)読み書
き可能な所定サイズのメモリ領域のそのサイズを記憶す
るメモリ領域サイズ記憶ステップと、(ロ)このメモリ
領域サイズ記憶ステップで記憶したサイズのメモリ領域
を固定長ブロックとしての第1のメモリセルで分割する
ときのその固定長ブロックのサイズを記憶する第1のメ
モリサイズ記憶ステップと、(ハ)メモリ領域について
第1のメモリセルごとの使用の状態を、未使用状態を示
す「未使用」、その一部を使用している「一部使用
中」、その全部を使用している「使用中」および要求さ
れるメモリサイズのデータの格納される先頭のメモリセ
ルであることを示す「割り当ての先頭」の4つの状態の
いずれかを表わしたビットマップとして記憶する第1の
ビットマップ部記憶ステップと、(ニ)第1のメモリセ
ルを予め定められた整数倍であるN倍のメモリ量ごとに
上位のメモリセルとしてまとめ、更にそれをN倍のメモ
リ量ごとに更に上位のメモリセルにまとめるようにし
て、メモリ領域を最大階層としてのa−1階層(ただし
aは2以上の整数)に階層化し、これらのそれぞれを第
2のメモリセル〜第aのメモリセルとしたときのこれら
のメモリセルごとの使用の状態を、未使用状態を示す
「未使用」、その一部を使用している「一部使用中」、
その全部を使用している「使用中」および要求されるメ
モリサイズのデータの格納される先頭のメモリセルであ
ることを示す「割り当ての先頭」の4つの状態のいずれ
かを表わしたビットマップとして記憶する第2〜第aの
ビットマップ部記憶ステップと、(ホ)メモリ領域に対
するメモリの確保の要求があったとき、その要求したメ
モリのサイズに比較的近くてこれよりも大きなメモリセ
ルが存在するかを判別する1階層上位メモリセル選択ス
テップと、(へ)この1階層上位メモリセル選択ステッ
プがその条件に合うメモリセルが存在しないと判別した
ときその要求したメモリのサイズよりも小さくそのサイ
ズに最も近いサイズのメモリセルの階層を選択する第1
のメモリセル階層選択ステップと、(ト)1階層上位メ
モリセル選択ステップがその条件に合うメモリセルが存
在すると判別したときその階層のメモリセルを選択する
第2のメモリセル階層選択ステップと、(チ)第1また
は第2のメモリセル階層選択ステップによって選択され
た階層のメモリセルに対応するビットマップ部からメモ
リの確保の要求があったメモリのサイズだけデータの連
続的な格納が可能な1または複数の連続したメモリセル
の場所を表わしたアドレスを、「未使用」または「一部
使用中」の状態のメモリセルを先頭アドレスとして検索
するアドレス検索ステップと、(リ)このアドレス検索
ステップによって検索されたアドレスを用いてメモリ領
域をメモリの確保の要求があったメモリのサイズを満足
するのに最低限必要な数の連続したメモリセル分だけ確
保するメモリ確保ステップと、(ヌ)このメモリ確保ス
テップによって確保したメモリセルに対応するビットマ
ップを「一部使用中」、「使用中」あるいは「割り当て
の先頭」に変更すると共に、確保したメモリセルよりも
上位の階層のメモリセルでその状態の変更を受けるもの
についてのビットマップの状態を、変更後の状態に応じ
て「一部使用中」あるいは「使用中」に変更するビット
マップ部変更ステップとをメモリ管理方法に具備させ
る。
【0052】すなわち請求項16記載の発明では、読み
書きに割り当てられるメモリ領域のサイズを記憶してお
いて、これを最小単位のサイズのメモリセルで分割する
ときのその第1のメモリセルのサイズを記憶しておく。
また、この第1のメモリセルに対してN倍ずつ大きなサ
イズとなる第2のメモリセル、第3のメモリセル、……
を規定する。そしてそれぞれの階層のメモリセルのメモ
リ使用状態を表わす第1、第2、……のビットマップ部
記憶ステップを用意しておく。各メモリセルの使用状態
は、未使用状態を示す「未使用」、その一部を使用して
いる「一部使用中」、その全部を使用している「使用
中」および要求されるメモリサイズのデータの格納され
る先頭のメモリセルであることを示す「割り当ての先
頭」の4つの状態を取るようにしている。そして、メモ
リ領域に対するメモリの確保の要求があったらその要求
したメモリのサイズに比較的近くてこれよりも大きなメ
モリセルが存在するかを判別することにし、このような
メモリセルが存在しないときには要求したメモリのサイ
ズよりも小さくそのサイズに最も近いサイズのメモリセ
ルの階層を選択する一方、1階層上位のそのような条件
に合うメモリセルが存在するときにはその階層のメモリ
セルを選択するようなメモリセルのアドレスを検索す
る。この際には、「割り当ての先頭」の状態のメモリセ
ルを先頭アドレスとして検索すればよい。この検索され
たアドレスを用いて、メモリの確保の要求があったメモ
リのサイズを満足するのに最低限必要な数の連続したメ
モリセル分だけメモリ領域を確保することができる。こ
のメモリ確保ステップによって確保したメモリセルに対
応するビットマップおよび確保したメモリセルよりも上
位の階層のメモリセルでその状態の変更を受けるものに
ついてのビットマップの状態を、変更後の状態に応じて
「一部使用中」あるいは「使用中」に変更する。
【0053】この請求項16記載の発明では、要求した
メモリのサイズに比較的近くてこれよりも大きなメモリ
セルが存在する場合には、下位のサイズのメモリセルを
結果的に上位のメモリセルを構成する個数だけすべて集
めて要求を満たすメモリを確保するのではなく、1つの
上位のメモリセルを確保することで、メモリ管理の簡略
化を図っている。ただし、このようなちょうど良いサイ
ズのメモリの獲得要求がある場合は比較的少ないので、
多くの場合には請求項15記載の発明として記載したよ
うに、要求したメモリのサイズよりも小さくそのサイズ
に最も近いサイズのメモリセルの階層によるメモリセル
の獲得が行われることになる。
【0054】請求項17記載の発明では、(イ)読み書
き可能な所定サイズのメモリ領域のそのサイズを記憶す
るメモリ領域サイズ記憶ステップと、(ロ)このメモリ
領域サイズ記憶ステップで記憶したサイズのメモリ領域
を固定長ブロックとしての第1のメモリセルで分割する
ときのその固定長ブロックのサイズを記憶する第1のメ
モリサイズ記憶ステップと、(ハ)メモリ領域について
第1のメモリセルごとの使用の状態を、未使用状態を示
す「未使用」、その一部を使用している「一部使用
中」、その全部を使用している「使用中」および要求さ
れるメモリサイズのデータの格納される先頭のメモリセ
ルであることを示す「割り当ての先頭」の4つの状態の
いずれかを表わしたビットマップとして記憶する第1の
ビットマップ部と、(ニ)第1のメモリセルを予め定め
られた整数倍であるN倍のメモリ量ごとに上位のメモリ
セルとしてまとめ、更にそれをN倍のメモリ量ごとに更
に上位のメモリセルにまとめるようにして、メモリ領域
を最大階層としてのa−1階層(ただしaは2以上の整
数)に階層化し、これらのそれぞれを第2のメモリセル
〜第aのメモリセルとしたときのこれらのメモリセルご
との使用の状態を、未使用状態を示す「未使用」、その
一部を使用している「一部使用中」、その全部を使用し
ている「使用中」および要求されるメモリサイズのデー
タの格納される先頭のメモリセルであることを示す「割
り当ての先頭」の4つの状態のいずれかを表わしたビッ
トマップとして記憶する第2〜第aのビットマップ部記
憶ステップと、(ホ)メモリ領域に対するメモリの確保
の要求があったとき、その要求したメモリのサイズより
も小さくそのサイズに最も近いサイズのメモリセルと、
これよりも更に小さなサイズのメモリセルとの組み合わ
せで要求したメモリのサイズを充足するメモリセルの組
み合わせを選択するメモリセル選択ステップと、(へ)
このメモリセル選択ステップによって選択されたそれぞ
れの階層のメモリセルに対応するビットマップ部からメ
モリの確保の要求があったメモリのサイズだけデータの
連続的な格納が可能な1または複数の連続したメモリセ
ルの場所を表わしたアドレスを、「未使用」または「一
部使用中」の状態のメモリセルを先頭アドレスとして検
索するアドレス検索ステップと、(ト)このアドレス検
索ステップによって検索されたアドレスを用いてメモリ
領域をメモリの確保の要求があったメモリのサイズを満
足するのに最低限必要な数の連続したメモリセル分だけ
確保するメモリ確保ステップと、(チ)このメモリ確保
ステップによって確保したメモリセルに対応するビット
マップを「一部使用中」、「使用中」あるいは「割り当
ての先頭」に変更すると共に、確保したメモリセルより
も上位の階層のメモリセルでその状態の変更を受けるも
のについてのビットマップの状態を、変更後の状態に応
じて「一部使用中」あるいは「使用中」に変更するビッ
トマップ部変更ステップとをメモリ管理方法に具備させ
る。
【0055】すなわち請求項17記載の発明では、読み
書きに割り当てられるメモリ領域のサイズを記憶してお
いて、これを最小単位のサイズのメモリセルで分割する
ときのその第1のメモリセルのサイズを記憶しておく。
また、この第1のメモリセルに対してN倍ずつ大きなサ
イズとなる第2のメモリセル、第3のメモリセル、……
を規定する。そしてそれぞれの階層のメモリセルのメモ
リ使用状態を表わす第1、第2、……のビットマップ部
記憶ステップを用意しておく。各メモリセルの使用状態
は、未使用状態を示す「未使用」、その一部を使用して
いる「一部使用中」、その全部を使用している「使用
中」および要求されるメモリサイズのデータの格納され
る先頭のメモリセルであることを示す「割り当ての先
頭」の4つの状態を取るようにしている。そして、メモ
リ領域に対するメモリの確保の要求があったらその要求
したメモリのサイズよりも小さくそのサイズに最も近い
サイズのメモリセルと、これよりも更に小さなサイズの
メモリセルとの組み合わせで要求したメモリのサイズを
充足するメモリセルの組み合わせを選択するようなメモ
リセルのアドレスを検索する。この際には、「割り当て
の先頭」の状態のメモリセルを先頭アドレスとして検索
すればよい。この検索されたアドレスを用いて、メモリ
の確保の要求があったメモリのサイズを満足するのに最
低限必要な数の連続したメモリセル分だけメモリ領域を
確保することができる。このメモリ確保ステップによっ
て確保したメモリセルに対応するビットマップおよび確
保したメモリセルよりも上位の階層のメモリセルでその
状態の変更を受けるものについてのビットマップの状態
を、変更後の状態に応じて「一部使用中」あるいは「使
用中」に変更する。
【0056】この請求項17記載の発明では、要求した
メモリのサイズに対して、これに近くてこれよりも小さ
な1種類のメモリセルを1または複数個使用して要求を
満足しようとするのではなく、幾種類かのメモリセルを
組み合わせることで要求したメモリのサイズに対応しよ
うとするものである。たとえば“101”というデータ
のサイズが要求されたとき、これよりも小さくて近い
“100”というサイズのメモリセルを2つ組み合わせ
るものとすると、一方のメモリセルの占有率は低い。そ
こでこのような場合には“100”というサイズのメモ
リセルと、“1”あるいは“10”といったより小さな
メモリセルを組み合わせることで効率的なメモリ管理を
可能にしている。
【0057】請求項18記載の発明では、(イ)読み書
き可能な所定サイズのメモリ領域のそのサイズを記憶す
るメモリ領域サイズ記憶ステップと、(ロ)このメモリ
領域サイズ記憶ステップで記憶したサイズのメモリ領域
を所定のアドレスを境として2分したときの第1のメモ
リ領域を固定長ブロックとしての第1のメモリセルで分
割するときのその固定長ブロックのサイズを記憶する第
1のメモリサイズ記憶ステップと、(ハ)第1のメモリ
領域について第1のメモリセルごとの使用の状態を、未
使用状態を示す「未使用」、その一部を使用している
「一部使用中」、その全部を使用している「使用中」お
よび要求されるメモリサイズのデータの格納される先頭
のメモリセルであることを示す「割り当ての先頭」の4
つの状態のいずれかを表わしたビットマップとして記憶
する第1のビットマップ部と、(ニ)第1のメモリセル
を予め定められた整数倍であるN倍のメモリ量ごとに上
位のメモリセルとしてまとめ、更にそれをN倍のメモリ
量ごとに更に上位のメモリセルにまとめるようにして、
メモリ領域を最大階層としてのa−1階層(ただしaは
2以上の整数)に階層化し、これらのそれぞれを第2の
メモリセル〜第aのメモリセルとしたときのこれらのメ
モリセルを第1のメモリ領域とそれ以外の第2のメモリ
領域に割り振り、これら第1および第2のメモリ領域に
ついて対応する各メモリセルごとの使用状態をビットマ
ップとして記憶する第2〜第aのビットマップ部記憶ス
テップと、(ホ)メモリ領域に対するメモリの確保の要
求があったとき、その要求したメモリのサイズよりも小
さくそのサイズに最も近いサイズのメモリセルの階層を
選択するメモリセル階層選択ステップと、(へ)このメ
モリセル階層選択ステップによって選択された階層のメ
モリセルに対応するビットマップ部からメモリの確保の
要求があったメモリのサイズを満足するのに最低限必要
な数の連続したメモリセルの場所を表わしたアドレスを
検索するアドレス検索ステップと、(ト)このアドレス
検索ステップによって検索されたアドレスを用いてメモ
リ領域をメモリの確保の要求があったメモリのサイズを
満足するのに最低限必要な数の連続したメモリセル分だ
け確保するメモリ確保ステップとをメモリ管理方法に具
備させる。
【0058】すなわち請求項18記載の発明では、読み
書きに割り当てられるメモリ領域のサイズを記憶してお
いて、更にこれを所定のアドレスを境として2分し、第
1のメモリ領域と第2のメモリ領域にしておく。そして
一方のメモリ領域としての第1のメモリ領域については
すでに説明したと同様に最小のメモリサイズとしての第
1のメモリセルで分割する。更に上位の各階層のメモリ
セルについては、第1のメモリ領域と第2のメモリ領域
に適宜分散する。たとえば第1〜第4のメモリセルを用
意する場合には、第1のメモリ領域に第1のメモリセル
と第2のメモリセルを配置して第2のメモリ領域に第3
のメモリセルと第4のメモリセルを配置するようにして
もよいし、第1のメモリ領域に第1のメモリセルと第3
のメモリセルを配置して第2のメモリ領域に第2のメモ
リセルと第4のメモリセルを配置するようにしてもよ
い。各メモリセルの使用状態は、未使用状態を示す「未
使用」、その一部を使用している「一部使用中」、その
全部を使用している「使用中」および要求されるメモリ
サイズのデータの格納される先頭のメモリセルであるこ
とを示す「割り当ての先頭」の4つの状態を取るように
している。そして、メモリ領域に対するメモリの確保の
要求があったらその要求したメモリのサイズよりも小さ
くそのサイズに最も近いサイズのメモリセルと、これよ
りも更に小さなサイズのメモリセルとの組み合わせで要
求したメモリのサイズを充足するメモリセルの組み合わ
せを選択するようなメモリセルのアドレスを検索する。
この際には、「割り当ての先頭」の状態のメモリセルを
先頭アドレスとして検索すればよい。この検索されたア
ドレスを用いて、メモリの確保の要求があったメモリの
サイズを満足するのに最低限必要な数の連続したメモリ
セル分だけメモリ領域を確保することができる。このメ
モリ確保ステップによって確保したメモリセルに対応す
るビットマップおよび確保したメモリセルよりも上位の
階層のメモリセルでその状態の変更を受けるものについ
てのビットマップの状態を、変更後の状態に応じて「一
部使用中」あるいは「使用中」に変更する。
【0059】この請求項18記載の発明では、メモリ領
域を2分してそれぞれのサイズのメモリセルをこれらの
いずれかに割り当てたので、要求されるメモリ量に応じ
てデータの住み分けが容易になり、メモリ領域にフラグ
メントが発生しにくくなる可能性がある。
【0060】請求項19記載の発明では、(イ)読み書
き可能な所定サイズのメモリ領域のそのサイズを記憶す
るメモリ領域サイズ記憶ステップと、(ロ)このメモリ
領域サイズ記憶ステップで記憶したサイズのメモリ領域
を所定のアドレスを境として2分したときの第1のメモ
リ領域を固定長ブロックとしての第1のメモリセルで分
割するときのその固定長ブロックのサイズを記憶する第
1のメモリサイズ記憶ステップと、(ハ)第1のメモリ
領域について第1のメモリセルごとの使用の状態をビッ
トマップとして記憶する第1のビットマップ部と、
(ニ)第1のメモリセルを予め定められた整数倍である
N倍のメモリ量ごとに上位のメモリセルとしてまとめ、
更にそれをN倍のメモリ量ごとに更に上位のメモリセル
にまとめるようにして、メモリ領域を最大階層としての
a−1階層(ただしaは2以上の整数)に階層化し、こ
れらのそれぞれを第2のメモリセル〜第aのメモリセル
としたときのこれらのメモリセルごとの使用の状態を、
未使用状態を示す「未使用」、その一部を使用している
「一部使用中」、その全部を使用している「使用中」お
よび要求されるメモリサイズのデータの格納される先頭
のメモリセルであることを示す「割り当ての先頭」の4
つの状態のいずれかを表わし、かつこれらのメモリセル
を第1のメモリ領域とそれ以外の第2のメモリ領域に割
り振り、これら第1および第2のメモリ領域について対
応する各メモリセルごとの使用状態をビットマップとし
て記憶する第2〜第aのビットマップ部記憶ステップ
と、(ホ)メモリ領域に対するメモリの確保の要求があ
ったとき、その要求したメモリのサイズよりも小さくそ
のサイズに最も近いサイズのメモリセルと、これよりも
更に小さなサイズのメモリセルとの組み合わせで要求し
たメモリのサイズを充足するメモリセルの組み合わせを
選択するメモリセル選択ステップと、(へ)このメモリ
セル選択ステップによって選択されたそれぞれの階層の
メモリセルに対応するビットマップ部からメモリの確保
の要求があったメモリのサイズだけデータの連続的な格
納が可能な1または複数の連続したメモリセルの場所を
表わしたアドレスを、「未使用」または「一部使用中」
の状態のメモリセルを先頭アドレスとして検索するアド
レス検索ステップと、(ト)このアドレス検索ステップ
によって検索されたアドレスを用いてメモリ領域をメモ
リの確保の要求があったメモリのサイズを満足するのに
最低限必要な数の連続したメモリセル分だけ確保するメ
モリ確保ステップと、(チ)このメモリ確保ステップに
よって確保したメモリセルに対応するビットマップを
「一部使用中」、「使用中」あるいは「割り当ての先
頭」に変更すると共に、確保したメモリセルよりも上位
の階層のメモリセルでその状態の変更を受けるものにつ
いてのビットマップの状態を、変更後の状態に応じて
「一部使用中」あるいは「使用中」に変更するビットマ
ップ部変更ステップとをメモリ管理方法に具備させる。
【0061】すなわち請求項19記載の発明では、請求
項18記載の発明と同様に読み書き可能な所定サイズの
メモリ領域を所定のアドレスを境として2分して第1の
メモリ領域と第2のメモリ領域に分けると共に、これら
に各階層のメモリセルを割り当てるようにしている。ま
た、メモリ領域に対するメモリの確保の要求があったと
き、その要求したメモリのサイズよりも小さくそのサイ
ズに最も近いサイズのメモリセルと、これよりも更に小
さなサイズのメモリセルとの組み合わせで要求したメモ
リのサイズを充足するメモリセルの組み合わせを選択す
るようにしている。そして、メモリの確保の要求があっ
た場合には「未使用」または「一部使用中」の状態のメ
モリセルを先頭アドレスとして該当する階層のメモリセ
ルを検索し、メモリの確保を行った場合には直接該当す
るメモリセルの状態を変更するだけでなく、それよりも
上位のメモリセルに対しても状態に変化が生じているも
のについて同様に変更を行うようにしている。
【0062】
【発明の実施の形態】本発明の実施例を説明する前に、
本発明の原理を説明することにする。本発明では図45
で説明したメモリ領域102におけるただ1種類のメモ
リセル104を複数の大きさからなるメモリセルの集合
としている。そして、それぞれの種類のメモリセルが階
層構造を有している。
【0063】図1は、本発明のメモリセルの構造を図解
したものである。管理対象となるメモリ領域201に対
して複数の階層のメモリセルを設定する場合には、この
メモリ管理装置に要求されるデータの確保や開放の対象
となるデータの大きさのばらつきを検討する。ばらつき
が非常に少ない場合や、取り扱うデータのサイズがすべ
て一定しているような場合には、先に説明した図45に
示したような1種類のサイズのメモリセルを採用し、そ
のサイズを取り扱うデータのサイズに合わせることで効
率的なメモリ管理を行うことができる。
【0064】本発明のメモリ管理装置あるいはメモリ管
理方法は、対象とするデータのサイズが大きくばらつく
ような場合を前提としている。この前提のもとで、本発
明では管理されるメモリ領域の全域201に対して、最
も小さなサイズで取り扱われる1単位のデータ量を考え
る。そしてこのデータ量と等しいかこれよりもわずかに
大きくてデータの単位として管理しやすいデータ量を最
小単位のメモリセル202Aとする。また、この最小単
位のメモリセル202Aの4倍あるいは8倍といった管
理しやすい大きさのメモリセルを定義し、これを2番目
に大きなデータ量のメモリセル202Bとする。この図
1では、2番目に大きなデータ量のメモリセル202B
は最小単位のメモリセル202Aの4倍の大きさのデー
タ量の領域である。
【0065】この2番目に大きなデータ量のメモリセル
202Bを使用しても、要求されるデータのサイズの方
が大きい場合があるとすれば、同様の原理で2番目に大
きなデータ量のメモリセル202B対する定められた倍
率(この例では4倍)のメモリセルを定義し、これを3
番目に大きなデータ量のメモリセル202Cとする。同
様にして階層を積み上げていく。この図1に示した例で
は4番目に大きなデータ量のメモリセル202Dが最大
のメモリセルとなる。
【0066】なお、以下に説明する実施例ではメモリセ
ルが3階層に分かれており、一番大きなサイズのメモリ
セルを第1のビット列と称している。そして、順に小さ
なメモリセルになるにしたがって、第2のビット列と第
3のビット列となっている。このように最小のビット列
をどのサイズに設定するかということと、何倍ずつの大
きさに設定して一番大きなデータに対応させるかによっ
て、メモリセルの階層の深さが変化することになる。
【0067】図2および図3は、このメモリ管理装置が
適用されるシステムでメモリの要求されるサイズ(要求
サイズ)と、それぞれの要求サイズでメモリ領域が割り
当てられた回数の一例を前後2つに分けて示したもので
ある。これは、UNIX(ユニックス)のアプリケーシ
ョンを実行した場合の一例であり、10分間の経過をま
とめたものである。このように2バイトとか3バイトと
いった小さなデータ量のサイズから、1024バイト〜
17408バイトといった大きさのデータ量のサイズに
多くの回数でメモリの割り当ての要求が行われている。
また、20バイト、128バイト、1024〜2076
バイトといった中間的なサイズの場所でもメモリの割り
当ての要求が頻繁に行われている。更に、一度に要求す
るサイズの範囲は1バイトから66559バイトと非常
に広範囲にわたっている。したがって、この例のような
場合では、図45に示した従来の技術のようにある程度
小さなデータに1単位のメモリセルのサイズを設定し、
これよりも大きなサイズのデータについて可変長タグ部
109を適用しようとすると、可変長タグ部109の適
用の回数が異常に増加することになり、効率的なメモリ
管理を行うことができない。
【0068】図4は、この図2および図3に示した例の
メモリアクセス状態についてメモリセルの階層を5階層
とした場合の階層ごとのアクセス頻度を表わしたもので
ある。この例では、図1に示した4階層よりも1つ大き
な5階層の管理構造になっている。これに対して、図5
は図2および図3に示した例のメモリアクセス状態につ
いてメモリセルの階層を4階層とした場合の階層ごとの
アクセス頻度を表わしている。これは、階層の数では図
1で説明したものと同一である。一般に階層を増やすほ
ど、メモリ領域を管理するための管理データ領域のデー
タ量が増大する。しかしながら、データのサイズが大き
くばらつく場合には階層を増やすことでそれぞれのサイ
ズに細かく対応することができ、処理が迅速化する。し
たがって、両者の考察の下で最小のメモリセルの大きさ
と階層の数を設定する必要がある。今、ここで各種サイ
ズのデータの要求があったときのメモリ領域の管理の様
子を具体的に考察してみる。
【0069】図6は、メモリセルの階層を3階層とした
場合を示している。ここでは最小サイズのメモリセル2
11と、中間サイズのメモリセル212と、最大サイズ
のメモリセル213が存在している。中間サイズのメモ
リセル212は最小サイズのメモリセル211を8個ま
とめたものであり、最大サイズのメモリセル213は中
間サイズのメモリセル212を8個まとめたものであ
る。すなわち、最大サイズのメモリセル213は最小サ
イズのメモリセル211の64個分に相当する。
【0070】図7は、図6に示した階層構造のメモリ管
理装置でデータを確保する場合の一例を示したものであ
る。この例ではメモリセル211の4個分のデータ22
1と、2個分のデータ222と、1個分のデータ223
およびメモリセル212の2個分のデータについてメモ
リ領域225が割り振られている。仮にメモリセル21
1の1種類しかメモリのサイズが規定されていなかった
とする。このような場合には、メモリセル211が16
個連続して未使用となっている場所を探し出し、これを
メモリ領域225として割り当てることになる。更に、
図6で示した最大サイズのメモリセル213に相当する
データをメモリ領域225に割り当てる場合にはメモリ
セル211が64個連続して未使用となっている場所を
探すことを必要とする。
【0071】これに対して、メモリセル221〜223
の階層を設定している場合には、たとえばメモリセル2
12の2個分のデータについてのメモリ領域を確保する
場合、メモリセル221が連続して16個空いている場
所を探す必要はなく、メモリセル212が2個連続して
空いている場所を探せばよい。
【0072】図8は、最大のサイズのメモリセルをわず
かに超えるデータ量のメモリ領域の確保が要求された場
合の処理の例を示したものである。このように最大のサ
イズのメモリセル213をわずかに超えるデータ量に対
しては、メモリセル213に最小のメモリセル211を
必要個数だけ追加することで所望のメモリ領域を確保す
ることができる。このように、領域を確保しようとする
サイズに近いメモリセルが複数段階にわたって備わって
いれば、メモリ領域の空き領域の検索や管理データの処
理が速くなることになる。なお、ここでは最大のサイズ
と最小のサイズを例示したが、これに限るものではな
い。一般には相対的に大きなサイズのメモリセルと相対
的に小さなサイズのメモリセルとの関係で同様な手法を
採ることができる。
【0073】ところでメモリセルのサイズを階層構造と
するとメモリ領域にフラグメントが発生しにくくなる。
これは、割り当てるデータの量によってメモリ領域にお
けるデータの格納される領域を住み分けることができる
ことによるものである。たとえばデータが全然格納され
ていない初期状態のメモリ領域225で、次のような操
作が行われたとする。 (1)メモリセル211を1個確保 (2)メモリセル213を更に1個確保 (3)メモリセル211を更に1個確保 (4)メモリセル213を1個開放 (5)メモリセル211を1個確保 このうちの(1)〜(3)の操作が終了した時点では図
9に示したようなメモリの占有状態となる。
【0074】図10は、図9に示した状態から更に
(4)および(5)の操作が行われた後の状態を示した
ものである。同様の状況をメモリセルのサイズがメモリ
セル211の1種類のみの従来の場合と比較してみる。
【0075】図11はメモリセルのサイズがメモリセル
211の1種類である従来の場合における(1)〜
(3)の操作が終了した時点でのメモリの占有状態を表
わしたものである。まず、(1)の操作でメモリ領域2
25における先頭のアドレスを起点としてメモリセル2
11が確保される。次に(2)の操作でメモリセル21
3の1個分に相当するメモリセル211の64個分が先
頭に近い空き領域のアドレスから順に確保される。最後
に(3)の操作で先頭に近い空き領域のアドレスから1
個分のメモリセル211が確保される。
【0076】図12は、従来における(4)および
(5)の操作が終了した時点におけるメモリの占有状態
を示したものである。(4)の操作で図11における6
4個分のメモリ領域が開放されると、図12における*
(アスタリスク)を付した2個分のメモリセル211が
メモリ領域225を占有する。(5)の操作で1個分の
メモリセル211を確保する場合には、先頭に近い空き
領域から順にメモリ領域の確保が行われる。したがっ
て、♯(シャープ)を付したメモリセル211が新たに
割り付けられる。すなわち、比較的大きなデータがメモ
リ領域225から開放された段階で、これに後続したア
ドレスにデータが格納されていた場合にはそのメモリセ
ル211はそのままその位置に残される。また、メモリ
領域225から開放されたその途中のメモリ領域(メモ
リセル211の64個分の領域)に対して、これよりも
小さなサイズのデータがその先頭から格納されていくの
で、その空き領域が十分効率的に埋まる可能性が低くな
り、フラグメントが発生しやすくなる。この図12に示
した例では、♯(シャープ)を付したメモリセル211
が新たに割り付けられたために、メモリセル211の6
4個分のデータの割り付けが再度要求された場合にも、
以前の空き領域に収めることができない。
【0077】さて、図1に示したようにメモリセルを階
層構造にするだけでなく、メモリセルを割り付ける際の
メモリ領域の検索方向や検索開始位置を工夫すること
で、種種の場面に対応して効率的なメモリ管理を行うこ
とができる。メモリ領域の検索方向や検索開始位置をメ
モリセルのサイズが大きくなるあるいは小さくなる順序
で交互に変更することについて考察する。このようにす
ることで、同一サイズ(階層)のメモリセルを同一箇所
に集めやすくなる。また、各階層でのメモリの割り当て
の回数が平均している場合には、フラグメントがより生
じにくくなる。
【0078】まず、メモリセルを割り付ける際のメモリ
領域の検索方向を交互に変更する場合を説明する。交互
に変更するということは、以上説明してきた最小サイズ
のメモリセル211、中間サイズのメモリセル212お
よび最大サイズのメモリセル213の3種類のサイズの
メモリセルが存在する場合に、たとえばメモリセル21
1とメモリセル213についてアドレスの小さいところ
から大きい方に順に詰めていき、メモリセル212につ
いてはアドレスの大きいところから小さい方に順に詰め
ていくことを意味する。メモリセル211〜213を確
保していく方向はこれらとちょうど逆方向であってもよ
い。メモリセルのサイズが3種類よりも多い場合にも、
同様の考え方を採用することができる。
【0079】図13は、メモリセルのサイズが8倍ずつ
大きくなるような階層構造をとるメモリ管理装置におけ
るメモリ領域の検索方向の交互設定の実際を説明するた
めのものである。この図13に示した状態は、たとえば
図6に示す状態から中間サイズのメモリセル212が開
放された場合に出現する。図13に示した状態で、最小
サイズのメモリセル211の確保が要求されたとする
と、この図でメモリセル213の格納されている箇所の
右隣りにその確保が行われる。
【0080】中間サイズのメモリセル212の確保が要
求された場合には図13に示した状態における最小サイ
ズのメモリセル211の63個分の空白領域231に割
り当てられるのではなく、メモリ領域225のアドレス
の大きい方から設定が行われる結果として、矢印232
で示す一列(メモリセル211の8個分の領域)がこの
ために割り当てられる。したがって、図の空白領域23
1は最小サイズのメモリセル211の専用区域となり、
最終的にこの領域が完全に埋まるまでこのサイズのメモ
リセル211が他の領域に割り当てられることはない。
【0081】また、同様にメモリセル211〜213の
領域の開放が行われる場合でも、次にメモリセルの領域
の確保が行われる際には同じサイズのメモリセルが集ま
る領域でメモリセルの領域の確保が行われる可能性が高
くなる。たとえば図の空白領域231が最小サイズのメ
モリセル211で全部埋まった後にその中のメモリセル
211の領域が1個開放されたとすると、その領域は同
一サイズの他のメモリセル211の領域確保の際に使用
される。中間サイズのメモリセル212の領域が開放さ
れた場合にも、検索方向が最小サイズのメモリセル21
1とは逆であるので、この開放領域をメモリセル211
が新たに占有する可能性は低い。また、この例では最小
サイズのメモリセル211と、メモリセルのサイズを2
段階増やした最大サイズのメモリセル213とでは64
倍のサイズの差がある。したがって、たとえば図13に
示した状態の空白領域231が生じても最大サイズのメ
モリセル213のサイズよりも小さなこの部分を確保さ
せることはできない。このようにして、メモリ領域の検
索方向や検索開始位置の交互設定を行うことで、メモリ
セル211〜213のサイズ別の住み分けが可能にな
る。これは、フラグメントが起きにくくなってメモリの
効率的な活用を図ることができるということを意味す
る。
【0082】次にメモリセルを割り付ける際の検索開始
位置を工夫することでフラグメントがより生じにくくな
る点について説明する。
【0083】図14は検索開始位置を工夫する場合の境
界位置とメモリセルの関係を表わしたものである。この
図でメモリ領域225は境界線235としての所定のア
ドレスを境に2分されている。この例でメモリセルのサ
イズが4種類あったとすると、前半の領域236に1番
小さいサイズのメモリセルと2番目に小さいサイズのメ
モリセルが配置され、後半の領域237に1番大きいサ
イズのメモリセルと2番目に大きいサイズのメモリセル
が配置される。このように領域を設定しておくことで、
たとえば比較的小さなメモリセルが点在してメモリ領域
225を占める結果として、比較的大きなメモリセルの
領域確保が困難になるといった現象を減少させることが
できる。もちろん、前半の領域236で1番小さいサイ
ズのメモリセルと2番目に小さいメモリセルのメモリ領
域の検索方向の交互設定を行い、後半の領域237で1
番大きいサイズのメモリセルと2番目に大きいサイズの
メモリセルのメモリ領域の検索方向の交互設定を行うこ
とは、有効である。境界線235の位置は、それぞれの
領域236、237を占めるメモリセルの総量が同等程
度となるような場所に設定されることが有効である場合
が多い。
【0084】このようなメモリセルを割り付ける際のメ
モリ領域の検索方向や検索開始位置の工夫を、先に示し
た図4および図5との関係で考察してみる。まず、図4
では最小のメモリセルのサイズが4バイトで、メモリセ
ルの隣接するサイズの倍率比率が、4バイトから32バ
イト、32バイトから256バイト、256バイトから
2K(キロ)バイトというように8倍となっている。こ
の例で示すUNIXのアプリケーションでは、第1、第
3および第5と、第2、第4の各階層ごとの割り当てが
同等であるため、図13に示したメモリ領域の検索方向
の交互設定によってフラグメントを生じにくくすること
ができる。また、図14に示した検索開始位置を工夫す
る手法によっても同様にフラグメントを生じにくくする
ことができる。
【0085】一方、図5に示した例では最小のメモリセ
ルのサイズが32バイトで、メモリセルの隣接するサイ
ズの倍率比率が、32バイトから256バイト、256
バイトから2K(キロ)バイトというように8倍となっ
ている。この例では、第1、第3と第2、第4では階層
ごとの割り当てが同等でない。このため図13に示した
メモリ領域の検索方向の交互設定の手法は適さない。こ
れに対して、第1、第2と第3、第4では階層ごとの割
当量が同等であるので、図14に示した検索開始位置を
工夫する手法を用いれば、フラグメントを生じにくくす
ることができる。
【0086】図15は、本発明で採用するメモリセルの
管理手法の1つについてその概要を説明するためのもの
である。同図(a)〜(c)は、それぞれある階層の2
つの連続したメモリセル2411、2412を示してい
る。これらのメモリセル241 1、2412は、それぞれ
1つ下の8個ずつのメモリセル243から構成されてい
る。ここでは説明の便宜上、メモリセル2411、24
2を上位メモリセル2411、2412と呼び、メモリ
セル243を下位メモリセル243と呼ぶことにする。
同図(a)の上位メモリセル2411は下位メモリセル
243のすべてが使用されているので、これを「使用
中」と呼ぶことにする。この図(a)の上位メモリセル
2412は下位メモリセル243の一部が使用されてい
るのでこれを「一部使用中」と呼ぶことにする。同図
(b)の上位メモリセル2411は下位メモリセル24
3のすべてが未使用なので、これを「未使用」と呼ぶこ
とにする。
【0087】今、同図(a)に示すようにある上位メモ
リセル2411が「使用中」の状態で、これに続く上位
メモリセル2412が「一部使用中」の状態であったと
し、次のステップで同図(b)に示すように上位メモリ
セル2411が開放されて「未使用」となったとする。
この後に下位メモリセル243の5個分の割り当てが要
求されたとし、図で矢印244方向に下位メモリセル2
43の5個分連続して空いている領域のスキャンが行わ
れるものとする。
【0088】この場合に、下位メモリセル243の5個
分の連続領域を探すための本発明の第1の手法では、そ
れよりも1つ上位のメモリセルの中の「未使用」あるい
は「一部使用中」のものを矢印244方向にスキャンし
ていって、それぞれの中に5個分の連続領域以上の領域
がある場所を見つけるようにする。この利点は「使用
中」とされている8個ずつのメモリセル243の上位の
メモリセルで管理を行うために、この8個分の点検を省
略することができ、目的の空き領域を見つけるまでの時
間が短かくなる。そして、たとえば下位メモリセル24
3の4個分以下の個数が要求されているような場合に
は、同図(c)の上位メモリセル2411の場所に下位
メモリセル243を設定することができる。ところが、
この例のように下位メモリセル243の5個分の連続領
域を探す場合には、まず上位メモリセル2411で図の
使用中の4個分の下位メモリセル243の後に存在する
空き領域の左端から右端までチェックし、4個分の下位
メモリセル243しかないので、この箇所に対する割り
付けを断念する。同様に次の上位メモリセル2412
は図の左端から使用中の下位メモリセル243の開始点
の前の空き領域をチェックして、この箇所に2個分の下
位メモリセル243しかないので、これに対する割り付
けも断念する。このようにして、この図に示していない
上位メモリセル241の箇所で空き領域が下位メモリセ
ル243の5個分以上存在する場所を見つけて、下位メ
モリセル243の5個分の割り付けを行うことになる。
【0089】図16は、本発明のメモリセルの管理手法
の他の手法の概要を説明するためのものである。この手
法は、図15の(c)に戻って説明を行えば、隣接する
2つの上位メモリセル2411、2412の隣接部分にま
たがって空き領域があればこれを連続した空き領域とみ
て下位メモリセル243の複数個連続する配置に使用す
るというものである。
【0090】図16はこのようなメモリセルの管理手法
で、一例として下位メモリセル243が2つの上位メモ
リセルにまたがって配置される例を示したものである。
この例では3個の下位メモリセル243が空き領域に配
置される。これによって、2つの上位メモリセル241
1、2412の隣接部分を有効に活用することができる。
【0091】このようにこの手法は利点があるが、同時
に問題もある。後に述べるようにそれぞれのメモリセル
の階層ごとにそれらの状態を示すビットマップを用意す
るものとする。ここでは、上位メモリセル2411、2
412、……について第n+1のビットマップが用意さ
れ、下位メモリセル243について第nのビットマップ
が用意されるものとする。このようにビットマップを用
意してそれぞれのメモリセルについて既に説明したよう
に「使用中」とか「一部使用中」とか「未使用」等の状
態を表わす状態識別用データを付するものとする。この
場合、たとえば下位メモリセル243のような相対的に
下位のメモリセルの変動によってそれよりも上位のメモ
リセル(この例の場合には上位メモリセル2411、2
412、……あるいは更に上位のメモリセル)について
のビットマップに変更が生じない方が、フラグメントの
発生の防止という意味でも有効な場合が多い。
【0092】たとえば図16の例の場合だと、新たに割
り当てた3個の下位メモリセル243の1個(図で*で
示している。)が上位メモリセル2412にまたがるた
め、仮にこの上位メモリセル2412が「未使用」の状
態であったとしたら、これを「一部使用中」の状態に変
える必要がある。このような変更は、隣接する図示しな
い上位メモリセル2413の状態によっては下位メモリ
セル243の8個分のサイズのメモリセルを上位メモリ
セル2412とその隣接部分にまたがって配置すること
ができなくなることを意味する。すなわち、空き領域が
細分化される可能性がある。
【0093】図17は、図16に示した手法を採った場
合に、上位のビットマップに大きな変更が生じる例を表
わしたものである。ここでは、図16同様に新たに割り
当てた3個の下位メモリセル243の1個(図で*で示
している。)が上位メモリセル2412にまたがること
によって、連鎖的に更にこれよりも1または複数階層だ
け上位のメモリセル2462まで「未使用」から「一部
使用中」に変更された状態を示している。このような場
合には、図16で説明した場合よりも更に大きなメモリ
セルのためのメモリ空間の確保が困難となる。
【0094】図18は、メモリ領域にあるメモリ空間を
割り当てる他の例を表わしたものである。ここでは、同
図(a)に示すように2個の隣接した上位メモリセル2
41 1、2412に着目している。これらの上位メモリセ
ル2411、2412の1個分のサイズよりも大きく、か
つ2個分のサイズよりも小さなサイズのメモリ領域24
8(同図(b))の確保が要求されたものとする。この
ように上位メモリセル2411、2412、……の1個分
以上で2個分未満の大きさのメモリ領域248が要求さ
れた場合には、通常の考え方では2個分の上位メモリセ
ル2411、2412を確保する。そして、メモリの確保
を行った状態を示す管理データ領域(図45の管理デー
タ領域103参照)には、2個の上位メモリセル241
1、2412の更に上位のメモリセルの状態もチェックし
てその変動が通知される。
【0095】たとえばこの図に示すように上位メモリセ
ル2411の全域249と、上位メモリセル2412の中
のこれに隣接する第1〜第4の下位メモリセル2431
〜2434が、要求されたメモリ領域248として確保
されたとする。この例の場合には、上位メモリセル24
1が「未使用」の状態から「使用中」の状態に変更さ
れ、更にシステムによっては単なる「使用中」の状態で
はなく「割り当ての先頭」として使用中であるという状
態に変更される。また、他のこれに隣接する上位メモリ
セル2412については「未使用」の状態から「一部使
用中」の状態に変更されたり、すでに「一部使用中」の
状態でこの割り当てにより全部の下位メモリセル243
が使用中となれば「使用中」に変更される。「一部使用
中」の状態が依然として継続される場合には、状態の変
更はない。また、このような2個の上位メモリセル24
1、2412に対するメモリ領域の割り当てによってそ
の1つ上のメモリセルの状態に変動が生じれば、当然に
「割り当ての先頭」、「一部使用中」等の状態の変更が
伴うことになる。
【0096】なお、ここで「割り当ての先頭」という概
念を「未使用」、「一部使用中」および「使用中」の中
に加えて説明したのは、後に説明する実施例ではこの4
つの概念(状態)でメモリセルの状態を定義すること
で、メモリセルの開始位置を明確にしたためである。ま
た、このような4つの状態は2ビットで規定することが
できる利点もある。
【0097】
【実施例】以下実施例につき本発明を詳細に説明する。
【0098】図19は本発明の一実施例におけるメモリ
管理装置の全体的な構成を表わしたものである。このメ
モリ管理装置300は、装置の中枢としての機能を有す
るCPU(中央処理装置)302を備えている。CPU
302はデータバス等のバス301を介して、入力イン
ターフェース(I/F)303、出力インターフェース
304、プログラム格納装置305および本実施例のロ
ーカルメモリ306と接続されている。
【0099】このうち入力インターフェース303は、
マウス等のポインティングデバイスからなる入力装置3
11を接続している。出力インターフェース304は、
CRT(cathode ray tube)や液晶ディスプレイ等の表
示装置312と接続されている。図示しないがプリンタ
と接続されていることも可能である。プログラム格納装
置305はたとえば磁気ディスクや光ディスクあるいは
RAM(ランダム・アクセス・メモリ)から構成されて
おり、このメモリ管理装置を機能させるためのプログラ
ムやその他のプログラムを格納している。ローカルメモ
リ306は特別の意味合いはなく、メモリとしてある程
度の容量があれば、半導体メモリ、磁気ディスク、光デ
ィスク等のどのようなものであってもよい。もちろん、
プログラム格納装置305をローカルメモリ306とハ
ードウェア的に共用することは可能である。
【0100】図20は、本実施例のローカルメモリの構
成の概要を表わしたものである。図19に示したCPU
302によってデータの読み書きが行われるローカルメ
モリ306には、メモリのユーザ用に設定されたメモリ
領域331とこのメモリ領域331の管理を行う管理デ
ータ領域332が配置されている。メモリ領域331に
は、これを分割する固定長ブロックとしての最小サイズ
の第1のメモリセル3411を備えている。この第1の
メモリセル3411がN個(ただしNは正の整数)集ま
って、第2のメモリセル3412が構成されている。ま
た、第2のメモリセル3412が同じくN個集まって第
3のメモリセル3413が構成されている。以下同様に
して、メモリ領域331を構成する最大のサイズのメモ
リセルを第Nのメモリセル341Nとすると、第(N−
1)のメモリセル341N-1が同じくN−1個集まって
第Nのメモリセル341Nが構成されている。
【0101】一方、管理データ領域332は、アドレス
部351と、メモリ領域のサイズ部352と、セルのサ
イズ部353と、第1〜第Nのビットマップ部3541
〜354Nから構成されている。ここで、アドレス部3
51はメモリ領域331の先頭アドレスを示している。
メモリ領域のサイズ部352は、メモリ領域331のサ
イズを示している。セルのサイズ部353は、固定長ブ
ロックとしての最小サイズの第1のメモリセル341の
サイズを示している。第1のビットマップ部354
1は、第1のメモリセル341の個々の状態を表わす2
ビットごとのビット列で構成されている。第2のビット
マップ部3542は、第2のメモリセル342の状態を
表わす2ビットごとのビット列で構成されている。以下
同様にして第Nのビットマップ部354Nは、メモリ領
域331の最大サイズのメモリセルとしての第Nのメモ
リセル341Nの状態を表わす2ビットごとのビット列
で構成されている。ここで、状態とはすでに説明した
「割り当ての先頭」、「未使用」、「一部使用中」およ
び「使用中」の4つの状態をとることができる。「割り
当ての先頭」は、メモリセルの検索の方向が異なれば、
当然ながらその位置が異なってくる。
【0102】図21は、第NのメモリセルにおけるNが
“8”の場合の具体的な管理データ領域の構成を表わし
たものであり、図22はこのときのメモリ領域の具体的
な配置を表わしたものである。図21の管理データ領域
332におけるメモリ領域のサイズ部352には、図2
2に示したメモリ領域331のサイズとして64メガバ
イト(Mbyte)のデータ量が設定されている。この
ときメモリ領域331を構成する最小のセルサイズとし
ての第1のメモリセル3411は1Mbyteを設定し
ている。第2のメモリセル3412については、Nが
“8”なので第1のメモリセル3411のデータ量の8
倍のデータ量の8Mbyteが設定されている。
【0103】(メモリ管理についての第1の処理動作)
【0104】今、図19に示したCPU302からロー
カルメモリ306のユーザ(以下特別の場合を除いて単
にユーザと称する。)に対して2Mbyteのメモリの
確保が要求されたものとする。CPU302はこの2M
byteを効率的に管理できるようなビットマップの計
算を行う。
【0105】第1のメモリセル3411は1Mbyte
のサイズであり、第2のメモリセル3412のサイズは
2Mbyteよりも大きな8Mbyteである。そこ
で、この場合には第1のビットマップ部3541を検索
用のビットマップとして設定する。必要な第1のメモリ
セル3411の個数は2個である。
【0106】図23は、確保の要求されたメモリのサイ
ズから管理する階層(管理階層)の構造を求めるための
処理の流れを表わしたものである。このメモリ管理装置
で管理する最大の管理階層を“MAX”とし、要求され
たメモリのサイズを“size”とする。まず、階層を
表わす変数“i”を“1”すなわち第1のメモリセル3
41に対応する第1の階層に設定すると共に、メモリ量
“s”を第1のメモリセルのサイズに設定する(ステッ
プS601)。ここで、メモリ量“s”は第1階層のメ
モリセルのサイズ(ここでは1Mbyte)である。そ
して、まず変数“i”すなわち“1”が最大の管理階層
“MAX”(ここでは“3”)よりも小さいかどうかを
判別する(ステップS602)。小さい場合には
(Y)、要求されたメモリのサイズ“size”(ここ
では2Mbyte)が1番小さい第1のメモリセル34
1のサイズ(ここでは1Mbyte)よりも小さいか
どうかのチェックが行われる(ステップS603)。
【0107】1番小さい第1のメモリセル3411との
比較の場合には、これよりも小さくはない(N)。そこ
で、変数“i”が“1”だけ加算されて“2”となる
(ステップS604)。また、メモリ量“s”が“M
(i)−M(i−1)”すなわち第2のメモリセル34
2のサイズである8Mbyteから第1のメモリセル
3411のサイズである2Mbyteを引いた6Mby
teに変えられる(ステップS605)。そして、再び
ステップS602に処理が戻る。
【0108】ステップS602では変数“i”すなわち
“2”が最大の管理階層“MAX”(ここでは“3”)
よりも小さいかどうかの判別が行われる。この場合には
小さいので(Y)、要求されたメモリのサイズ“siz
e”(ここでは2Mbyte)が6Mbytesよりも
小さいかどうかのチェックが行われる(ステップS60
3)。小さいので、管理する階層の処理が終了する。結
果として、1番小さい第1のメモリセル3411の階層
が管理の対象となる。
【0109】なお、ステップS602で変数“i”が最
大の管理階層“MAX”(ここでは“3”)を越える場
合には(ステップS602:N)、エラーなので処理を
終了させる。
【0110】図24は、図23で求めた管理階層で必要
になるメモリセル数を計算するための処理の流れを表わ
したものである。メモリセル数を計算するためには、ま
ず階層構造番号(CN)を求める。この階層構造番号
は、図23で処理が終了したときの変数“i”から数値
“1”を差し引いたものである(ステップS621)。
この階層構造番号を使用して図19に示したCPU30
2は必要なメモリセル(ここでは第1のメモリセル34
1)の数を求める。必要なメモリセル数をNMUとす
ると、次の式(1)の通りとなる(ステップS62
2)。
【0111】 NMU=[要求サイズ+M(CN)−1]/M(CN) ……(1)
【0112】この例について実際の値を当てはめてみる
と、[2+M(1)−1]/M(1)となる。M(1)
は、1番小さい第1のメモリセル3411の階層のメモ
リサイズであり、これは1Mbyteなので、この値は
2÷1すなわち2となる。このようにして第1階層のメ
モリセル3411が2個必要であるとの演算が行われる
ことになる。
【0113】図25は、本実施例で2Mbyteのメモ
リの確保が要求された後の処理の様子を表わしたもので
ある。まず、同図(a)に示す第1のビットマップ部3
54 1に、2Mbyte分としての第1のメモリセル3
411の2個分の連続した未使用メモリセルを表わすビ
ット列が存在するかを順にチェックする。ここで、一部
使用しているメモリセルを表わすビット列を“01”と
し、未使用のメモリセルを表わすビット列を“00”と
する。図では、2メモリセル分の枠361がそのビット
列の方向を示す矢印362方向に2ビット単位で移動す
ることで、連続した2ビットの未使用の第1のメモリセ
ル3411に対応する領域の存在をチェックする様子を
模式化している。
【0114】このような検索の結果として、第1のビッ
トマップ部3541における図で示した枠361の位置
で2個の未使用メモリセルを表わすビット列が存在する
ことが判別されたものとする。同図(b)に示すメモリ
領域331内の連続した2個の未使用の第1のメモリセ
ル3411からなるメモリブロック363がこれに対応
するものである。そこで、2ビットの枠361による検
索の結果として2個の未使用メモリセルを表わすビット
列が存在した場合には、次の処理でこのメモリブロック
363を構成する2個の第1のメモリセル3411が本
当に未使用であるかどうかの確認が行われる。
【0115】図26は、ビットマップ部の判別結果を受
けてそれぞれのメモリセルが未使用であるかどうかの確
認を行う処理の原理を表わしたものである。この図では
第1〜第3のビットマップ部3541〜3543と、メモ
リ領域331内の第1〜第3のメモリセル3411〜3
413を対比して表わしている。第2のビットマップ部
3542の中における第2のメモリセル3412の状態を
格納しているビット列を第2のビット列3712とす
る。また、第3のビットマップ部3543の中における
第3のメモリセル3413の状態を格納しているビット
列を第3のビット列3713とする。この場合、メモリ
ブロック363を構成する2個の第1のメモリセル34
1が未使用であることは次の2つの場合のいずれかで
ある。
【0116】(1)第2のビット列3712が未使用を
表わす“00”であり、第3のビット列3713が未使
用を表わす“00”である場合。 (2)第2のビット列3712が未使用を表わす“0
0”であり、第3のビット列3713が一部使用中を表
わす“01”である場合。
【0117】以上の確認によって、メモリブロック36
3が未使用であるとされたとする。この場合には、該当
するメモリブロック363の現在の状態を「使用中」に
変更するようなメモリ管理が行われる。このためには、
このメモリブロック363に該当するビットマップにお
ける枠361内のビット列を、“11 10”に変更す
る。ここで前半の2ビット “11”は使用ブロックの
先頭を表わすビット例であり、後半の2ビット “1
0”は使用中のブロックであることを示している。更
に、第2のメモリセル3412の状態を格納しているビ
ット列としての第2のビット列3712を、一部使用中
であることを表わす“01”に変更する。また、同様に
第3のメモリセル3413の状態を格納しているビット
列としての第3のビット列3713を、一部使用中であ
ることを表わす“01”に変更する。
【0118】図27は以上の処理が終了した時点におけ
る管理データ領域の変更の様子を表わしており、図28
はこれに対応してメモリが確保されたメモリ領域の様子
を表わしている。図27に示した管理データ領域332
の第1のビットマップ部3541では、図28に示した
メモリブロック363に対応するビット列が前記したよ
うに“11 10”に変更されている。また、第2のビ
ットマップ部3542における対応する位置のビット列
および第3のビットマップ部3543のビット列が前記
したように“01”に変更されている。このようにして
確保したメモリブロック363をユーザに渡すことで、
メモリの確保要求に応答し、またビットマップにおける
該当する第1のメモリセル3411に対応するビット列
を使用ブロックの先頭および使用中である状態に変更す
ることで、第1のメモリセル3411の割り当てを実現
できることになる。
【0119】図29〜図33は、CPU側で行う相手局
メモリセルの検索および割り当てのための処理動作の流
れを表わしたものである。このうち図29および図30
は、図26の説明に対応したCPU302側の処理の流
れを示したものである。これらの図に示した処理では、
空きメモリセルの検索方向に関して、図25の矢印36
2で示したいわゆる順方向についてのみ示している。逆
方向の処理は、これらの図中の*(アスタリスク)で示
している箇所の処理について変更する必要がある。
【0120】図29では、処理のための入力および出力
を枠641内に示しており、条件を枠642内に示して
いる。ステップS651では“current”に検索
開始位置としてのSTRT[CN]を設定し、1周の有
無を示すフラグ値“loop”に1周していないことを
示す“0”を設定する。そして、ステップS652では
“current”が管理ビットマップ内のデータであ
るかどうかの判別を行う。管理ビットマップ内のデータ
でなければ(N)、“current”の値を管理ビッ
トマップの先頭に移動し、1周したことを示すフラグ値
“loop”として“1”を設定する(ステップS65
3)。そして、再びステップS652の処理に戻る。
【0121】ステップS652で管理ビットマップ内の
データであると判別された場合には(Y)、1周したこ
とを示すフラグ値に“1”がセットされているかどうか
を判別し(ステップS654)、セットされていれば
(Y)、検索終了か否かの判定を行う(ステップS65
5)。検索終了でなければ(N)、エラーとして異常終
了が行われる(ステップS656)。検索終了であれば
(ステップS655:Y)、ステップS654で1周し
たことを示すフラグ値に“1”がセットされていない場
合(N)と同様に次の図30に示す処理に移行する。
【0122】図30では、“current”で示され
るメモリセルから必要なメモリセル数をメモリセル個分
割り当てた場合に、管理ビットマップ内にこれらが収容
可能であるかどうかの判定が行われる。収容可能であれ
ば(ステップS666:Y)、管理ビットマップに収容
するために、該当のメモリセルの状態をデータ(dat
a)に格納する(ステップS667)。ステップS66
6で収容可能でないと判断された場合には(N)、ステ
ップS653で説明したと同様の処理を行い(ステップ
S668)、図29のステップS652に戻ることにな
る。
【0123】一方、図31ではステップS669で、デ
ータ“data”の値がすべて「未使用」を表わしてい
るかどうかのチェックが行われる。そうであれば
(Y)、管理ビットマップ“CN”では「未使用」を表
わしているので、開始メモリセル“current”か
ら必要メモリセル数“NUM”個分のメモリセルが本当
に未使用であるかどうかの判定のための前準備を行う。
管理ビットマップ“CN+1”から管理ビットマップ
“MAX”までの該当メモリセルが「未使用」あるいは
「一部使用中」であるかどうかを判定する(ステップS
670)。
【0124】このような判定が管理ビットマップ“MA
X”まで到達したかどうかの判別が行われ(ステップS
671)、到達していなければ(Y)、ステップS67
2において管理ビットマップ“i”のメモリセル“j”
の状態をデータ“data”に格納する。そして次のス
テップS673ではデータ“data”の状態が「未使
用」あるいは「一部使用中」のいずれかに該当するかど
うかを判定する。該当すれば、それが未使用である場合
には(ステップS674:Y)、再度、i+1の状態を
判定し(ステップS675)、ステップS671の処理
に戻る。また、一部使用中の場合には(ステップS67
4:N)、割り当てが可能なため、図33に示す次の処
理に移行することになる。
【0125】一方、ステップS669でデータ“dat
a”の値がすべて「未使用」を表わしているものでなけ
れば(N)、ステップS676でメモリセル“curr
ent”の値を“1”増加して、図29のステップS6
52の処理に戻ることになる(ステップS670)。
【0126】図32は、図31のステップS673「未
使用」あるいは「一部使用中」ではないと判断されたと
きの処理の流れを主として表わしたものである。この処
理ではまずステップS681でパラメータの変更が行わ
れる。ステップS682〜S692の処理では、ステッ
プS673の判断で「使用中」あるいは「割り当ての先
頭」の状態にあるメモリセルが存在した場合の処理であ
る。この部分では、管理ビットマップ“i”でメモリセ
ルの状態が「未使用」あるいは「一部使用中」であるメ
モリセルの検索を行い、存在した場合には該当するメモ
リセルと同一のメモリ領域を管理している管理ビットマ
ップ“CN”のメモリセルに変換する。そして、図29
のステップS652の処理に戻ることになる。
【0127】これに対して、メモリセルの検索の結果、
存在しないとされた場合にはステップS655の場合と
同様に空きメモリが存在しないことになる。そこでこの
場合にはステップS656に戻って異常終了する。
【0128】図33では、図31のステップS671お
よびステップS674で否定されたときの処理の流れを
主として表わしたものである。この処理ではステップS
695でメモリセル“current”から“CN”個
分のメモリセルの状態を、「割り当ての先頭」および
「使用中」に変更する。そして、ステップS696以降
では、変更した後に状態を変更したことを管理ビットマ
ップ“CN+1”から管理ビットマップ“MAX”の該
当するメモリセルの状態を「一部使用中」に変更する。
【0129】なお、以上の流れ図では示していないが、
メモリセルの状態を変更した後に検索開始位置の移動も
行うようにしている。すなわち(a)“STRT[C
N]”の値を“current+NUM+1”に変更す
る(*)。また、(b)“STRT[CN]”の値が管
理ビットマップ内に収まるのを判定する。この反転結果
として、収まる場合には処理を終了させる。収まらない
場合には“STRT[CN]”の値を管理ビットマップ
の先頭にする(*)。
【0130】(メモリ管理についての第2の処理動作)
【0131】次に、管理データ領域332が図27に示
した状態になっているときに、ユーザから30Mbyt
eのメモリ確保が要求されたものとする。この場合に
は、30Mbyteのデータを効率的に管理することの
できるビットマップをセルのサイズ部353を基にして
算出する。第2のメモリセル3412の容量は8Mby
teであり、第3のメモリセル3413の容量が64M
byteである。そこで、第2のビットマップ部354
2をビットマップの検索対象とする。第2のメモリセル
3412における必要な第2のメモリセル3412の個数
は30Mbyteを8Mbyteで割って残りを切り捨
てた数値としての“4”となる。
【0132】図34は30Mbyteのメモリの確保が
追加的に要求された場合の処理の様子を表わしたもので
ある。まず、同図(a)に示す第2のビットマップ部3
54 2に、30Mbyte分としての第2のメモリセル
3412が最低4個分連続した状態を示すビット列が存
在するかを順にチェックする。すなわち、第2のビット
マップ部3542に、“00 00 00 00”と
“0”が8個連続しているビット列が存在するかどうか
をチェックする。このときの連続した未使用メモリセル
の検索は、先に説明した第1のビットマップ部3541
における走査方向とは逆に、矢印411で示すようにビ
ットマップの最後尾から最前列の方向に4メモリセル分
の枠412を走査するようにして行われる。この図34
(a)で示す枠412の位置で、この条件を満たす未使
用メモリセルが存在している。
【0133】図34(b)は、メモリ領域331内にお
ける第2のビットマップ部3542に対応する第2のメ
モリセル3412からなるメモリブロック414を表わ
している。
【0134】このようにして、第2のビットマップ部3
542における図で示した枠412の位置で4個の未使
用メモリセルを表わすビット列が存在することが判別さ
れると、次の処理でこのメモリブロック414を構成す
る4個の第2のメモリセル3412が本当に未使用であ
るかどうかの確認が行われる。
【0135】図35は、ビットマップ部の判別結果を受
けてそれぞれのメモリセルが未使用であるかどうかの確
認を行う処理の原理を表わしたものである。この図で
は、図26と同様に第1〜第3のビットマップ部354
1〜3543と、メモリ領域331内の第1〜第3のメモ
リセル3411〜3413を対比して表わしている。すで
に説明したように第3のビットマップ部3543の中に
おける第3のメモリセル3413の状態を格納している
ビット列を第3のビット列3713とする。この場合、
メモリブロック414を構成する4個の第2のメモリセ
ル3412が未使用であることは次の2つの場合のいず
れかである。
【0136】(1)第3のビット列3713が未使用を
表わす“00”である場合。 (2)第3のビット列3713が一部使用中を表わす
“01”である場合。
【0137】以上の確認によって、メモリブロック41
4が未使用であるとされたとする。この場合には、該当
するメモリブロック414の現在の状態を「使用中」に
変更するようなメモリ管理が行われる。このためには、
図34に示すように、このメモリブロック414に該当
するビットマップにおける枠412内のビット列を、使
用ブロックの先頭を表わすビット例である“11”と、
使用ブロックであることを表わす“01”に変更する。
図35に示す第3のビット列3713も使用中を表わす
ビット列“01”に変更する必要がある。ただしこの例
では先の第1の処理動作で2Mbyteのメモリを確保
した際にビット列“01”に変更している。このため、
第3のメモリセル3413の状態を格納しているビット
列としての第3のビット列3713は、現状のままとな
り、変更が行われない。
【0138】図36は以上の第1の処理動作が終了した
時点における管理データ領域の変更の様子を表わしてお
り、図37はこれに対応してメモリが確保されたメモリ
領域の様子を表わしている。これらはメモリ管理につい
ての第1の処理動作を説明するために使用した図27お
よび図28と対応するものである。図36に示した管理
データ領域332の第2のビットマップ部3542
は、図37に示したメモリブロック414に対応するビ
ット列が前記したように“11 10 10 10”に
変更されている。第3のビットマップ部3543のビッ
ト列は前記したように“01”のままである。このよう
にして確保したメモリブロック363をユーザに渡すこ
とで、30Mbyteのメモリの確保要求に応答し、ま
たビットマップにおける該当する第2のメモリセル34
2に対応するビット列を使用ブロックの先頭および使
用中である状態に変更することで、第2のメモリセル3
41 2の割り当てを実現できることになる。
【0139】(メモリ管理についての第3の処理動作)
【0140】次に、管理データ領域332が図36に示
した状態になっているときに、ユーザが一部のメモリ領
域の開放を要求した場合を説明する。
【0141】図38は、この場合のユーザが開放を要求
したメモリブロックの位置を示したものである。このよ
うな要求があると、メモリ領域331の所定のメモリブ
ロック511が指すアドレス512に対応する第1〜第
3のビットマップ部3541〜3543のうちの該当する
ビット列の中で、使用ブロックの先頭を表わすビット列
が存在するかどうかのチェックが行われる。
【0142】図39は、使用ブロックの先頭を表わすビ
ット列の存在をチェックする様子を説明するためのもの
である。この図39で(a)は第3のビットマップ部3
54 3のビット列521を示している。本実施例では第
3のビットマップ部3543が2ビット構成の1組のビ
ット列521のみを備えている。したがって、このビッ
ト列521が先頭のビット列となる。同図(b)は第2
のビットマップ部354 2を表わしており、図で左端の
ビット列が先頭に位置するビット列522となる。同図
(c)は第3のビットマップ部3543を表わしてお
り、同様に図で左端のビット列が先頭に位置するビット
列523となる。
【0143】これらのビット列521〜523の中で使
用ブロックの先頭を表わすビット列があるかどうかのチ
ェックが行われるということは、“11”となったビッ
ト列を検索するということになる。
【0144】この図39に示した例では、第1のビット
マップ部3541におけるビット列523が“11”と
なっており、この条件を満たす。したがって、図38に
示したメモリブロック511を、使用ブロックの先頭お
よび使用ブロックとして管理しているビットマップと先
頭メモリセルが発見されたことになる。
【0145】このようにしてビット列521〜523の
中で使用ブロックの先頭を表わすビット列523が発見
されたら、この先頭のビット列523と対応するアドレ
ス512の第1のメモリセル3411を未使用に設定す
る。そして、その先頭の第1のメモリセル3411から
連続して割り当てられている第1のメモリセル3411
をすべて未使用にする。すなわち、図39(c)の先頭
に位置するビット列523である“11”に続くビット
列が使用中のブロックを示す“10”である限り、これ
らをすべて未使用を表わすビット列である“00”に変
更する。このようにして、ビット列“10”以外の2桁
のビット列が現われるまで、これらを1つのメモリブロ
ックとして開放することになる。
【0146】図40は、このようにして第1のメモリセ
ルを未使用にした後の処理を説明するためのものであ
る。メモリ領域331におけるユーザが要求したメモリ
ブロック511が開放されたら、そのメモリブロック5
11を含むすべての第1のメモリセル3411であるN
個(本実施例では8個)のメモリセルの状態が未使用で
あるかどうかのチェックが、該当するビットマップ部
(この例の場合には第1のビットマップ部3541)で
行われる。すなわち、第1のビットマップ部354
1は、第1のメモリセル3411の状態を格納しているビ
ット列541が“0000 00 00 00 00
00 00”となっているかどうかを検査する。なって
いる場合にはそのビット列541はすべて未使用を表わ
していることになる。
【0147】この場合には、第2のメモリセル3412
の状態を格納している第2のビットマップ部3542
おける該当するメモリセルの状態を、未使用を表わすビ
ット列“00”に変更する。第3のメモリセル3413
と同一のメモリ領域を管理しているメモリセルの状態に
ついても同様の変更を行う。ただし、本実施例の場合に
はすべてのビット列が未使用を表わす状態とならないの
で、この状態では第3のメモリセル3413に対応する
第3のビットマップ部3543の状態はビット列“0
0”にならず、“01”のままとなる。
【0148】以上の説明のようにメモリの開放は、該当
するメモリセルのビットマップ部の状態を未使用に変更
することで実現する。
【0149】図41では、処理のための入力および出力
を枠721内に示しており、条件を枠722内に示して
いる。ステップS731では、開放するメモリのアドレ
ス“PTR”が管理しているメモリ領域の先頭アドレス
“TOP”以上であるかチェックされ、先頭アドレス
“TOP”以上である場合には(Y)、開放するメモリ
のアドレス“PTR”が管理しているメモリ領域の先頭
アドレス“TOP”に管理しているメモリ領域サイズ
“SIZE”以下であるかどうかがチェックされる(ス
テップS732)。両者を加えた値よりも小さければ
(Y)、次の処理に進む。ステップS731およびS7
32でこれ以外の判断が行われた場合には(N)、メモ
リ領域外のアドレスが指定されたことになるので、その
まま何もせずに処理を終了させる(エンド)。
【0150】図42は、図41のステップS732で示
した処理の続きを表わしたものである。まずステップS
733では入力されたアドレスの、メモリ内でのオフセ
ット“offset”を求める。このオフセット“of
fset”が最小メモリセルのサイズ“MEM”で割り
切れるかどうかを次にチェックする(ステップS73
4)。割り切れない場合には(N)、エラーなのでその
まま終了する(エンド)。
【0151】割り切れた場合には(ステップS734:
Y)、入力されたアドレス(メモリ)を、最小メモリセ
ルサイズで作成した管理ビットマップのメモリセルに変
換する。そして変数“i”を“0”にして(ステップS
735)、これが最大管理構造数“MAX”未満である
かどうかをチェックする(ステップS736)。以上の
場合には(N)、処理を終了させる(エンド)。
【0152】これ以外の場合には(ステップS736:
Y)、該当するメモリセルの状態をデータ“data”
に格納する(ステップS737)。このメモリセルの状
態が「未使用」あるいは「割り当ての先頭」状態である
かどうかのチェックが行われ(ステップS738)、こ
れらのいずれの状態でもない場合には(N)、処理がそ
のまま終了する(エンド)。「未使用」状態である場合
には(ステップS739:Y)、該当するメモリセルと
同一のメモリを管理しているメモリセルと同一のアドレ
スになるかの判定を行う(ステップS740)。アドレ
スが同一にならない場合には(N)、処理がそのまま終
了する(エンド)。
【0153】これに対して該当するメモリセルと同一の
メモリを管理しているメモリセルと同一のアドレスにな
る場合には(ステップS740:Y)、該当するメモリ
セルと同一のメモリを管理しているビットマップのメモ
リセルに移動する(ステップS741)。そしてステッ
プS736に処理が戻る。
【0154】図43は、ステップS739で「割り当て
の先頭」状態と判断された場合以降の処理を表わしたも
のである。この場合には(N)、その該当メモリセルの
状態を「未使用」に変更する。そして、「未使用」に変
更したメモリセルに続くメモリセルの状態をデータ“d
ata”に格納する(ステップS742、S743)。
この格納したデータ“data”は「使用中」であるか
どうかを判別し(ステップS744)、「使用中」であ
れば(Y)、該当するメモリセルの状態を「未使用」に
変更する(ステップS745)。
【0155】図44は、図43のステップS742およ
びステップS735で否定(N)の判断が行われた場合
の処理の流れを表わしたものである。ステップS746
では「未使用」に変更したメモリセルが現在の検索開始
位置よりも前にあるかを判定し、前にある場合には
(Y)、検索開始位置を今回開放したメモリセルに移動
する(ステップS474)。前にない場合には処理をそ
のまま終了する(エンド)。
【0156】
【発明の効果】以上説明したように請求項1および請求
項13記載の発明によれば、メモリセルについて階層構
造を取っているので、各種のサイズのメモリの要求に対
して、ビットマップ部を切り替えて検索し必要な領域を
確保することができる。したがって、要求したメモリ領
域のサイズにかかわらずメモリの確保や開放処理を高速
で行うことができる。またメモリセルのサイズを複数に
設定しているので、これらのサイズに応じて確保される
領域を住み分けることができ、メモリ領域における連続
した未使用のメモリの分裂が生じにくくなる。
【0157】また請求項2および請求項14記載の発明
によれば、請求項1あるいは請求項13記載の発明と同
様の効果を得ることができる他、ビットマップ部におけ
るメモリセルの使用状態を未使用状態を示す「未使
用」、その一部を使用している「一部使用中」、その全
部を使用している「使用中」の少なくとも3つの状態で
表わすことにしたので、それらの状態の特質に応じてメ
モリの確保や開放時における検索対象を絞ることがで
き、これにより検索のスピードを向上させることができ
る。
【0158】更に請求項3および請求項15記載の発明
によれば、請求項1あるいは請求項13記載の発明と同
様の効果を得ることができる他、ビットマップ部におけ
るメモリセルの使用状態を未使用状態を示す「未使
用」、その一部を使用している「一部使用中」、その全
部を使用している「使用中」および要求されるメモリサ
イズのデータの格納される先頭のメモリセルであること
を示す「割り当ての先頭」の4つの状態で表わすことに
したので、わずか2ビットの情報を使用することで、そ
れらの状態の特質に応じてメモリの確保や開放時におけ
る検索対象を絞ることができ、これにより検索のスピー
ドを向上させることができる。また、「割り当ての先
頭」の概念の状態が加わることで、メモリの割り当てら
れた領域の先頭がどのメモリセルにあるかを簡単に検索
することができるようになる。
【0159】また、請求項4および請求項16記載の発
明によれば、請求項1あるいは請求項13記載の発明と
同様の効果を得ることができる他、要求したメモリのサ
イズに比較的近くてこれよりも大きなメモリセルが存在
する場合には、下位のサイズのメモリセルを結果的に上
位のメモリセルを構成する個数だけすべて集めて要求を
満たすメモリを確保するのではなく、1つの上位のメモ
リセルを確保することで、メモリ管理の簡略化を図るこ
とができる。
【0160】更に請求項5および請求項17記載の発明
によれば、請求項1あるいは請求項13記載の発明と同
様の効果を得ることができる他、要求したメモリのサイ
ズに対して、これに近くてこれよりも小さな1種類のメ
モリセルを1または複数個使用して要求を満足しようと
するのではなく、幾種類かのメモリセルを組み合わせる
ことで要求したメモリのサイズに対応するようにしたの
で、常に効率的なメモリ管理を図ることができる。
【0161】また請求項6および請求項18記載の発明
によれば、請求項1あるいは請求項13記載の発明と同
様の効果を得ることができる他、メモリ領域を2分して
それぞれのサイズのメモリセルをこれらのいずれかに割
り当てたので、要求されるメモリ量に応じてデータの住
み分けが容易になり、メモリ領域にフラグメントが発生
しにくくなる可能性がある。
【0162】また、請求項7および請求項19記載の発
明によれば、請求項6あるいは請求項18記載の発明と
同様に読み書き可能な所定サイズのメモリ領域を所定の
アドレスを境として2分して第1のメモリ領域と第2の
メモリ領域に分けると共に、これらに各階層のメモリセ
ルを割り当てるようにし、メモリ領域に対するメモリの
確保の要求があったとき、その要求したメモリのサイズ
よりも小さくそのサイズに最も近いサイズのメモリセル
と、これよりも更に小さなサイズのメモリセルとの組み
合わせで要求したメモリのサイズを充足するメモリセル
の組み合わせを選択するようにしたので、請求項1ある
いは請求項13記載の発明と同様の効果を得ることがで
きる他、効率的なメモリ管理を行うことができる。
【0163】更に請求項8記載の発明によれば、請求項
1〜請求項7記載のメモリ管理装置でアドレス検索手段
は、メモリセルのサイズの隣接する階層に対してアドレ
スの検索方向が逆方向となるように検索方向の設定が行
われるようにしたので、階層ごとのメモリの住み分けを
図ることができ、メモリ領域にフラグメントが発生しに
くくなるという効果がある。
【0164】また、請求項9記載の発明によれば、請求
項2〜請求項7記載のメモリ管理装置に、少なくとも一
方が「一部使用中」の状態の隣接する2つのメモリセル
の互いに隣接している箇所に連続した空き領域があると
き、この連続した空き領域がメモリの確保の要求時の要
求したメモリのサイズ以上であるかどうかを判別する隣
接メモリセル判別手段を具備させることにしたので、要
求に満足する場合にはこのような領域の確保も可能にで
き、メモリ領域の連続的な確保を早期に図ることができ
る。
【0165】更に請求項10記載の発明によれば、請求
項1〜請求項7記載のメモリ管理装置でメモリの開放を
行うとき、開放するメモリのサイズよりも小さくそのサ
イズに最も近いサイズのメモリセルを選択してそれに対
応するビットマップから該当するメモリセルを検索する
ようにしたので、開放時の処理が迅速化する。
【0166】また、請求項11記載の発明によれば、請
求項3〜請求項7記載のメモリ管理装置で、開放するメ
モリの先頭アドレスは、「割り当ての先頭」の状態のメ
モリセルの中から検索するので、検索処理が一層迅速化
することになる。
【0167】更に請求項12記載の発明によれば、開放
時におけるメモリセルの使用状態の変化をそれぞれのメ
モリセルの状態に確実に反映させることができる。
【図面の簡単な説明】
【図1】本発明のメモリセルの構造を図解した説明図で
ある。
【図2】メモリ管理装置が適用されるシステムでメモリ
の要求される要求サイズと、それぞれの要求サイズでメ
モリ領域が割り当てられた回数の一例の前半を示す説明
図である。
【図3】メモリ管理装置が適用されるシステムでメモリ
の要求される要求サイズと、それぞれの要求サイズでメ
モリ領域が割り当てられた回数の一例の後半を示す説明
図である。
【図4】図2および図3に示した例のメモリアクセス状
態についてメモリセルの階層を5階層とした場合の階層
ごとのアクセス頻度を表わした説明図である。
【図5】図2および図3に示した例のメモリアクセス状
態についてメモリセルの階層を4階層とした場合の階層
ごとのアクセス頻度を表わした説明図である。
【図6】メモリセルの階層を3階層とした場合のメモリ
領域を示した説明図である。
【図7】図6に示した階層構造のメモリ管理装置でデー
タを確保する場合の一例を示した説明図である。
【図8】最大のサイズのメモリセルをわずかに超えるデ
ータ量のメモリ領域の確保が要求された場合を示した第
1の例の説明図である。
【図9】最大のサイズのメモリセルをわずかに超えるデ
ータ量のメモリ領域の確保が要求された場合を示した第
2の例の説明図である。
【図10】図9に示した状態から更に(4)および
(5)の操作が行われた後の状態を示した説明図であ
る。
【図11】メモリセルのサイズが1種類である従来の場
合における(1)〜(3)の操作が終了した時点でのメ
モリの占有状態を表わした説明図である。
【図12】従来における(4)および(5)の操作が終
了した時点におけるメモリの占有状態を示した説明図で
ある。
【図13】メモリセルのサイズが8倍ずつ大きくなるよ
うな階層構造をとるメモリ管理装置におけるメモリ領域
の検索方向の交互設定の実際を示した説明図である。
【図14】検索開始位置を工夫する場合の境界位置とメ
モリセルの関係を表わした説明図である。
【図15】本発明で採用可能なメモリセルの管理手法の
1つについてその概要を示した説明図である。
【図16】本発明で採用可能なメモリセルの管理手法の
他の例を示した説明図である。
【図17】図16に示した手法を採った場合に、上位の
ビットマップに大きな変更が生じる例を表わした説明図
である。
【図18】メモリ領域にあるメモリ空間を割り当てる他
の例を表わした説明図である。
【図19】本発明の一実施例におけるメモリ管理装置の
全体的な構成を表わしたブロック図である。
【図20】実施例におけるローカルメモリの構成の概要
を表わした説明図である。
【図21】実施例で第NのメモリセルにおけるNが
“8”の場合の具体的な管理データ領域の構成を表わし
た説明図である。
【図22】実施例で第NのメモリセルにおけるNが
“8”の場合のメモリ領域の具体的な配置を表わした説
明図である。
【図23】実施例で確保の要求されたメモリのサイズか
ら管理階層の構造を求めるための処理の流れを表わした
流れ図である。
【図24】図23で求めた管理階層で必要になるメモリ
セル数を計算するための処理の流れを表わした流れ図で
ある。
【図25】実施例で2Mbyteのメモリの確保が要求
された後の処理の様子を表わした説明図である。
【図26】ビットマップ部の判別結果を受けてそれぞれ
のメモリセルが未使用であるかどうかの確認を行う処理
の原理を表わした説明図である。
【図27】実施例でメモリの確保処理が終了した時点に
おける管理データ領域の変更の様子を表わした説明図で
ある。
【図28】実施例で第1の処理動作が要求された場合の
メモリ管理動作の流れを表わした流れ図である。
【図29】CPU側で行う相手局メモリセルの検索およ
び割り当てのための一連の処理動作の最初の部分を表わ
した流れ図である。
【図30】図29のステップS654あるいはS655
の続きの処理を表わした流れ図である。
【図31】図30のステップS667の続きの処理を表
わした流れ図である。
【図32】図31のステップS673「未使用」あるい
は「一部使用中」ではないと判断されたときの処理の流
れを主として表わした流れ図である。
【図33】図31のステップS671およびステップS
674で否定(N)の判定が行われた場合の処理の流れ
を主として表わした流れ図である。
【図34】本実施例で30Mbyteのメモリの確保が
追加的に要求された場合の処理の様子を表わした説明図
である。
【図35】ビットマップ部の判別結果を受けてそれぞれ
のメモリセルが未使用であるかどうかの確認を行う処理
の原理を表わした説明図である。
【図36】本実施例で第1の処理動作が終了した時点に
おける管理データ領域の変更の様子を表わした説明図で
ある。
【図37】図36に対応してメモリが確保されたメモリ
領域の様子を表わした説明図である。
【図38】実施例でユーザがメモリ領域の開放を要求し
たメモリブロックの位置を示した説明図である。
【図39】本実施例で使用ブロックの先頭を表わすビッ
ト列の存在をチェックする様子を示した説明図である。
【図40】本実施例で第1のメモリセルを未使用にした
後の処理を示した説明図である。
【図41】実施例で第3の処理動作が要求された場合の
メモリの開放処理の最初の段階を示した流れ図である。
【図42】図41のステップS732で示した処理の続
きを表わした流れ図である。
【図43】ステップS739で「割り当ての先頭」状態
と判断された場合以降の処理を表わした流れ図である。
【図44】図43のステップS742およびステップS
735で否定(N)の判断が行われた場合の処理の流れ
を表わした流れ図である。
【図45】従来提案されたローカルメモリの構成の概要
を表わした説明図である。
【図46】図45に示した提案でメモリの確保が要求さ
れた場合の処理の進行を示す説明図である。
【符号の説明】
300 メモリ管理装置 302 CPU 305 プログラム格納用メモリ 306 ローカルメモリ 331 メモリ領域 332 管理データ領域 3411 第1のメモリセル 3412 第2のメモリセル 3413 第3のメモリセル 351 アドレス部 352 メモリ領域のサイズ部 3541 第1のビットマップ部 3542 第2のビットマップ部 3543 第3のビットマップ部 354N 第Nのビットマップ部 363、414、511 メモリブロック
───────────────────────────────────────────────────── フロントページの続き (72)発明者 井上 和也 神奈川県川崎市高津区坂戸3−2−1 株 式会社エヌイーシー情報システムズ内 Fターム(参考) 5B060 AA12 AA14 5B082 CA01 CA08

Claims (19)

    【特許請求の範囲】
  1. 【請求項1】 読み書き可能な所定サイズのメモリ領域
    のそのサイズを記憶するメモリ領域サイズ記憶手段と、 このメモリ領域サイズ記憶手段に記憶したサイズのメモ
    リ領域を固定長ブロックとしての第1のメモリセルで分
    割するときのその固定長ブロックのサイズを記憶する第
    1のメモリサイズ記憶手段と、 前記メモリ領域について前記第1のメモリセルごとの使
    用の状態をビットマップとして記憶する第1のビットマ
    ップ部と、 前記第1のメモリセルを予め定められた整数倍であるN
    倍のメモリ量ごとに上位のメモリセルとしてまとめ、更
    にそれをN倍のメモリ量ごとに更に上位のメモリセルに
    まとめるようにして、前記メモリ領域を最大階層として
    のa−1階層(ただしaは2以上の整数)に階層化し、
    これらのそれぞれを第2のメモリセル〜第aのメモリセ
    ルとしたときのこれらのメモリセルごとの使用の状態を
    ビットマップとして記憶した第2〜第aのビットマップ
    部と、 前記メモリ領域に対するメモリの確保の要求があったと
    き、その要求したメモリのサイズよりも小さくそのサイ
    ズに最も近いサイズのメモリセルの階層を選択するメモ
    リセル階層選択手段と、 このメモリセル階層選択手段によって選択された階層の
    メモリセルに対応するビットマップ部から前記メモリの
    確保の要求があったメモリのサイズを満足するのに最低
    限必要な数の連続したメモリセルの場所を表わしたアド
    レスを検索するアドレス検索手段と、 このアドレス検索手段によって検索されたアドレスを用
    いて前記メモリ領域を前記メモリの確保の要求があった
    メモリのサイズを満足するのに最低限必要な数の連続し
    たメモリセル分だけ確保するメモリ確保手段とを具備す
    ることを特徴とするメモリ管理装置。
  2. 【請求項2】 読み書き可能な所定サイズのメモリ領域
    のそのサイズを記憶するメモリ領域サイズ記憶手段と、 このメモリ領域サイズ記憶手段に記憶したサイズのメモ
    リ領域を固定長ブロックとしての第1のメモリセルで分
    割するときのその固定長ブロックのサイズを記憶する第
    1のメモリサイズ記憶手段と、 前記メモリ領域について前記第1のメモリセルごとの使
    用の状態を、未使用状態を示す「未使用」、その一部を
    使用している「一部使用中」、その全部を使用している
    「使用中」の少なくとも3つの状態のいずれかを表わし
    たビットマップとして記憶する第1のビットマップ部
    と、 前記第1のメモリセルを予め定められた整数倍であるN
    倍のメモリ量ごとに上位のメモリセルとしてまとめ、更
    にそれをN倍のメモリ量ごとに更に上位のメモリセルに
    まとめるようにして、前記メモリ領域を最大階層として
    のa−1階層(ただしaは2以上の整数)に階層化し、
    これらのそれぞれを第2のメモリセル〜第aのメモリセ
    ルとしたときのこれらのメモリセルごとの使用の状態
    を、未使用状態を示す「未使用」、その一部を使用して
    いる「一部使用中」、その全部を使用している「使用
    中」の少なくとも3つの状態のいずれかを表わしたビッ
    トマップとして記憶した第2〜第aのビットマップ部
    と、 前記メモリ領域に対するメモリの確保の要求があったと
    き、その要求したメモリのサイズよりも小さくそのサイ
    ズに最も近いサイズのメモリセルの階層を選択するメモ
    リセル階層選択手段と、 このメモリセル階層選択手段によって選択された階層の
    メモリセルに対応するビットマップ部から前記メモリの
    確保の要求があったメモリのサイズだけデータの連続的
    な格納が可能な1または複数の連続したメモリセルの場
    所を表わしたアドレスを、前記「未使用」または「一部
    使用中」の状態のメモリセルを先頭アドレスとして検索
    するアドレス検索手段と、 このアドレス検索手段によって検索されたアドレスを用
    いて前記メモリ領域を前記メモリの確保の要求があった
    メモリのサイズを満足するのに最低限必要な数の連続し
    たメモリセル分だけ確保するメモリ確保手段と、 このメモリ確保手段によって確保したメモリセルに対応
    するビットマップおよび確保したメモリセルよりも上位
    の階層のメモリセルでその状態の変更を受けるものにつ
    いてのビットマップの状態を、変更後の状態に応じて
    「一部使用中」あるいは「使用中」に変更するビットマ
    ップ部変更手段とを具備することを特徴とするメモリ管
    理装置。
  3. 【請求項3】 読み書き可能な所定サイズのメモリ領域
    のそのサイズを記憶するメモリ領域サイズ記憶手段と、 このメモリ領域サイズ記憶手段に記憶したサイズのメモ
    リ領域を固定長ブロックとしての第1のメモリセルで分
    割するときのその固定長ブロックのサイズを記憶する第
    1のメモリサイズ記憶手段と、 前記メモリ領域について前記第1のメモリセルごとの使
    用の状態を、未使用状態を示す「未使用」、その一部を
    使用している「一部使用中」、その全部を使用している
    「使用中」および要求されるメモリサイズのデータの格
    納される先頭のメモリセルであることを示す「割り当て
    の先頭」の4つの状態のいずれかを表わしたビットマッ
    プとして記憶する第1のビットマップ部と、 前記第1のメモリセルを予め定められた整数倍であるN
    倍のメモリ量ごとに上位のメモリセルとしてまとめ、更
    にそれをN倍のメモリ量ごとに更に上位のメモリセルに
    まとめるようにして、前記メモリ領域を最大階層として
    のa−1階層(ただしaは2以上の整数)に階層化し、
    これらのそれぞれを第2のメモリセル〜第aのメモリセ
    ルとしたときのこれらのメモリセルごとの使用の状態
    を、未使用状態を示す「未使用」、その一部を使用して
    いる「一部使用中」、その全部を使用している「使用
    中」および要求されるメモリサイズのデータの格納され
    る先頭のメモリセルであることを示す「割り当ての先
    頭」の4つの状態のいずれかを表わしたビットマップと
    して記憶した第2〜第aのビットマップ部と、 前記メモリ領域に対するメモリの確保の要求があったと
    き、その要求したメモリのサイズよりも小さくそのサイ
    ズに最も近いサイズのメモリセルの階層を選択するメモ
    リセル階層選択手段と、 このメモリセル階層選択手段によって選択された階層の
    メモリセルに対応するビットマップ部から前記メモリの
    確保の要求があったメモリのサイズだけデータの連続的
    な格納が可能な1または複数の連続したメモリセルの場
    所を表わしたアドレスを、前記「未使用」または「一部
    使用中」の状態のメモリセルを先頭アドレスとして検索
    するアドレス検索手段と、 このアドレス検索手段によって検索されたアドレスを用
    いて前記メモリ領域を前記メモリの確保の要求があった
    メモリのサイズを満足するのに最低限必要な数の連続し
    たメモリセル分だけ確保するメモリ確保手段と、 このメモリ確保手段によって確保したメモリセルに対応
    するビットマップを「一部使用中」、「使用中」あるい
    は「割り当ての先頭」に変更すると共に、確保したメモ
    リセルよりも上位の階層のメモリセルでその状態の変更
    を受けるものについてのビットマップの状態を、変更後
    の状態に応じて「一部使用中」あるいは「使用中」に変
    更するビットマップ部変更手段とを具備することを特徴
    とするメモリ管理装置。
  4. 【請求項4】 読み書き可能な所定サイズのメモリ領域
    のそのサイズを記憶するメモリ領域サイズ記憶手段と、 このメモリ領域サイズ記憶手段に記憶したサイズのメモ
    リ領域を固定長ブロックとしての第1のメモリセルで分
    割するときのその固定長ブロックのサイズを記憶する第
    1のメモリサイズ記憶手段と、 前記メモリ領域について前記第1のメモリセルごとの使
    用の状態を、未使用状態を示す「未使用」、その一部を
    使用している「一部使用中」、その全部を使用している
    「使用中」および要求されるメモリサイズのデータの格
    納される先頭のメモリセルであることを示す「割り当て
    の先頭」の4つの状態のいずれかを表わしたビットマッ
    プとして記憶する第1のビットマップ部と、 前記第1のメモリセルを予め定められた整数倍であるN
    倍のメモリ量ごとに上位のメモリセルとしてまとめ、更
    にそれをN倍のメモリ量ごとに更に上位のメモリセルに
    まとめるようにして、前記メモリ領域を最大階層として
    のa−1階層(ただしaは2以上の整数)に階層化し、
    これらのそれぞれを第2のメモリセル〜第aのメモリセ
    ルとしたときのこれらのメモリセルごとの使用の状態
    を、未使用状態を示す「未使用」、その一部を使用して
    いる「一部使用中」、その全部を使用している「使用
    中」および要求されるメモリサイズのデータの格納され
    る先頭のメモリセルであることを示す「割り当ての先
    頭」の4つの状態のいずれかを表わしたビットマップと
    して記憶した第2〜第aのビットマップ部と、 前記メモリ領域に対するメモリの確保の要求があったと
    き、その要求したメモリのサイズに比較的近くてこれよ
    りも大きなメモリセルが存在するかを判別する1階層上
    位メモリセル選択手段と、 この1階層上位メモリセル選択手段がその条件に合うメ
    モリセルが存在しないと判別したときその要求したメモ
    リのサイズよりも小さくそのサイズに最も近いサイズの
    メモリセルの階層を選択する第1のメモリセル階層選択
    手段と、 前記1階層上位メモリセル選択手段がその条件に合うメ
    モリセルが存在すると判別したときその階層のメモリセ
    ルを選択する第2のメモリセル階層選択手段と、 前記第1または第2のメモリセル階層選択手段によって
    選択された階層のメモリセルに対応するビットマップ部
    から前記メモリの確保の要求があったメモリのサイズだ
    けデータの連続的な格納が可能な1または複数の連続し
    たメモリセルの場所を表わしたアドレスを、前記「未使
    用」または「一部使用中」の状態のメモリセルを先頭ア
    ドレスとして検索するアドレス検索手段と、 このアドレス検索手段によって検索されたアドレスを用
    いて前記メモリ領域を前記メモリの確保の要求があった
    メモリのサイズを満足するのに最低限必要な数の連続し
    たメモリセル分だけ確保するメモリ確保手段と、 このメモリ確保手段によって確保したメモリセルに対応
    するビットマップを「一部使用中」、「使用中」あるい
    は「割り当ての先頭」に変更すると共に、確保したメモ
    リセルよりも上位の階層のメモリセルでその状態の変更
    を受けるものについてのビットマップの状態を、変更後
    の状態に応じて「一部使用中」あるいは「使用中」に変
    更するビットマップ部変更手段とを具備することを特徴
    とするメモリ管理装置。
  5. 【請求項5】 読み書き可能な所定サイズのメモリ領域
    のそのサイズを記憶するメモリ領域サイズ記憶手段と、 このメモリ領域サイズ記憶手段に記憶したサイズのメモ
    リ領域を固定長ブロックとしての第1のメモリセルで分
    割するときのその固定長ブロックのサイズを記憶する第
    1のメモリサイズ記憶手段と、 前記メモリ領域について前記第1のメモリセルごとの使
    用の状態を、未使用状態を示す「未使用」、その一部を
    使用している「一部使用中」、その全部を使用している
    「使用中」および要求されるメモリサイズのデータの格
    納される先頭のメモリセルであることを示す「割り当て
    の先頭」の4つの状態のいずれかを表わしたビットマッ
    プとして記憶する第1のビットマップ部と、 前記第1のメモリセルを予め定められた整数倍であるN
    倍のメモリ量ごとに上位のメモリセルとしてまとめ、更
    にそれをN倍のメモリ量ごとに更に上位のメモリセルに
    まとめるようにして、前記メモリ領域を最大階層として
    のa−1階層(ただしaは2以上の整数)に階層化し、
    これらのそれぞれを第2のメモリセル〜第aのメモリセ
    ルとしたときのこれらのメモリセルごとの使用の状態
    を、未使用状態を示す「未使用」、その一部を使用して
    いる「一部使用中」、その全部を使用している「使用
    中」および要求されるメモリサイズのデータの格納され
    る先頭のメモリセルであることを示す「割り当ての先
    頭」の4つの状態のいずれかを表わしたビットマップと
    して記憶した第2〜第aのビットマップ部と、 前記メモリ領域に対するメモリの確保の要求があったと
    き、その要求したメモリのサイズよりも小さくそのサイ
    ズに最も近いサイズのメモリセルと、これよりも更に小
    さなサイズのメモリセルとの組み合わせで前記要求した
    メモリのサイズを充足するメモリセルの組み合わせを選
    択するメモリセル選択手段と、 このメモリセル選択手段によって選択されたそれぞれの
    階層のメモリセルに対応するビットマップ部から前記メ
    モリの確保の要求があったメモリのサイズだけデータの
    連続的な格納が可能な1または複数の連続したメモリセ
    ルの場所を表わしたアドレスを、前記「未使用」または
    「一部使用中」の状態のメモリセルを先頭アドレスとし
    て検索するアドレス検索手段と、 このアドレス検索手段によって検索されたアドレスを用
    いて前記メモリ領域を前記メモリの確保の要求があった
    メモリのサイズを満足するのに最低限必要な数の連続し
    たメモリセル分だけ確保するメモリ確保手段と、 このメモリ確保手段によって確保したメモリセルに対応
    するビットマップを「一部使用中」、「使用中」あるい
    は「割り当ての先頭」に変更すると共に、確保したメモ
    リセルよりも上位の階層のメモリセルでその状態の変更
    を受けるものについてのビットマップの状態を、変更後
    の状態に応じて「一部使用中」あるいは「使用中」に変
    更するビットマップ部変更手段とを具備することを特徴
    とするメモリ管理装置。
  6. 【請求項6】 読み書き可能な所定サイズのメモリ領域
    のそのサイズを記憶するメモリ領域サイズ記憶手段と、 このメモリ領域サイズ記憶手段に記憶したサイズのメモ
    リ領域を所定のアドレスを境として2分したときの第1
    のメモリ領域を固定長ブロックとしての第1のメモリセ
    ルで分割するときのその固定長ブロックのサイズを記憶
    する第1のメモリサイズ記憶手段と、 前記第1のメモリ領域について前記第1のメモリセルご
    との使用の状態を、未使用状態を示す「未使用」、その
    一部を使用している「一部使用中」、その全部を使用し
    ている「使用中」および要求されるメモリサイズのデー
    タの格納される先頭のメモリセルであることを示す「割
    り当ての先頭」の4つの状態のいずれかを表わしたビッ
    トマップとして記憶する第1のビットマップ部と、 前記第1のメモリセルを予め定められた整数倍であるN
    倍のメモリ量ごとに上位のメモリセルとしてまとめ、更
    にそれをN倍のメモリ量ごとに更に上位のメモリセルに
    まとめるようにして、前記メモリ領域を最大階層として
    のa−1階層(ただしaは2以上の整数)に階層化し、
    これらのそれぞれを第2のメモリセル〜第aのメモリセ
    ルとしたときのこれらのメモリセルを前記第1のメモリ
    領域とそれ以外の第2のメモリ領域に割り振り、これら
    第1および第2のメモリ領域について対応する各メモリ
    セルごとの使用状態をビットマップとして記憶した第2
    〜第aのビットマップ部と、 前記メモリ領域に対するメモリの確保の要求があったと
    き、その要求したメモリのサイズよりも小さくそのサイ
    ズに最も近いサイズのメモリセルの階層を選択するメモ
    リセル階層選択手段と、 このメモリセル階層選択手段によって選択された階層の
    メモリセルに対応するビットマップ部から前記メモリの
    確保の要求があったメモリのサイズを満足するのに最低
    限必要な数の連続したメモリセルの場所を表わしたアド
    レスを検索するアドレス検索手段と、 このアドレス検索手段によって検索されたアドレスを用
    いて前記メモリ領域を前記メモリの確保の要求があった
    メモリのサイズを満足するのに最低限必要な数の連続し
    たメモリセル分だけ確保するメモリ確保手段とを具備す
    ることを特徴とするメモリ管理装置。
  7. 【請求項7】 読み書き可能な所定サイズのメモリ領域
    のそのサイズを記憶するメモリ領域サイズ記憶手段と、 このメモリ領域サイズ記憶手段に記憶したサイズのメモ
    リ領域を所定のアドレスを境として2分したときの第1
    のメモリ領域を固定長ブロックとしての第1のメモリセ
    ルで分割するときのその固定長ブロックのサイズを記憶
    する第1のメモリサイズ記憶手段と、 前記第1のメモリ領域について前記第1のメモリセルご
    との使用の状態をビットマップとして記憶する第1のビ
    ットマップ部と、 前記第1のメモリセルを予め定められた整数倍であるN
    倍のメモリ量ごとに上位のメモリセルとしてまとめ、更
    にそれをN倍のメモリ量ごとに更に上位のメモリセルに
    まとめるようにして、前記メモリ領域を最大階層として
    のa−1階層(ただしaは2以上の整数)に階層化し、
    これらのそれぞれを第2のメモリセル〜第aのメモリセ
    ルとしたときのこれらのメモリセルごとの使用の状態
    を、未使用状態を示す「未使用」、その一部を使用して
    いる「一部使用中」、その全部を使用している「使用
    中」および要求されるメモリサイズのデータの格納され
    る先頭のメモリセルであることを示す「割り当ての先
    頭」の4つの状態のいずれかを表わし、かつこれらのメ
    モリセルを前記第1のメモリ領域とそれ以外の第2のメ
    モリ領域に割り振り、これら第1および第2のメモリ領
    域について対応する各メモリセルごとの使用状態をビッ
    トマップとして記憶した第2〜第aのビットマップ部
    と、 前記メモリ領域に対するメモリの確保の要求があったと
    き、その要求したメモリのサイズよりも小さくそのサイ
    ズに最も近いサイズのメモリセルと、これよりも更に小
    さなサイズのメモリセルとの組み合わせで前記要求した
    メモリのサイズを充足するメモリセルの組み合わせを選
    択するメモリセル選択手段と、 このメモリセル選択手段によって選択されたそれぞれの
    階層のメモリセルに対応するビットマップ部から前記メ
    モリの確保の要求があったメモリのサイズだけデータの
    連続的な格納が可能な1または複数の連続したメモリセ
    ルの場所を表わしたアドレスを、前記「未使用」または
    「一部使用中」の状態のメモリセルを先頭アドレスとし
    て検索するアドレス検索手段と、 このアドレス検索手段によって検索されたアドレスを用
    いて前記メモリ領域を前記メモリの確保の要求があった
    メモリのサイズを満足するのに最低限必要な数の連続し
    たメモリセル分だけ確保するメモリ確保手段と、 このメモリ確保手段によって確保したメモリセルに対応
    するビットマップを「一部使用中」、「使用中」あるい
    は「割り当ての先頭」に変更すると共に、確保したメモ
    リセルよりも上位の階層のメモリセルでその状態の変更
    を受けるものについてのビットマップの状態を、変更後
    の状態に応じて「一部使用中」あるいは「使用中」に変
    更するビットマップ部変更手段とを具備することを特徴
    とするメモリ管理装置。
  8. 【請求項8】 前記アドレス検索手段は、メモリセルの
    サイズの隣接する階層に対してアドレスの検索方向が逆
    方向となるように検索方向の設定が行われていることを
    特徴とする請求項1〜請求項7記載のメモリ管理装置。
  9. 【請求項9】 少なくとも一方が「一部使用中」の状態
    の隣接する2つのメモリセルの互いに隣接している箇所
    に連続した空き領域があるとき、この連続した空き領域
    が前記メモリの確保の要求時の要求したメモリのサイズ
    以上であるかどうかを判別する隣接メモリセル判別手段
    を具備することを特徴とする請求項2〜請求項7記載の
    メモリ管理装置。
  10. 【請求項10】 前記メモリ領域に確保したメモリの開
    放が要求されたときその開放するメモリのサイズよりも
    小さくそのサイズに最も近いサイズのメモリセルを選択
    する開放時メモリセル選択手段と、 この開放時メモリセル選択手段によって選択されたメモ
    リセルの状態を示すビットマップから開放対象のメモリ
    セルを検索する開放時検索手段と、 この開放時検索手段で検索したメモリセルの該当するデ
    ータ領域を開放するメモリ開放手段とを具備することを
    特徴とする請求項1〜請求項7記載のメモリ管理装置。
  11. 【請求項11】 開放するメモリの先頭アドレスは、
    「割り当ての先頭」の状態のメモリセルの中から検索す
    ることを特徴とする請求項3〜請求項7記載のメモリ管
    理装置。
  12. 【請求項12】 前記メモリ開放手段が前記メモリ領域
    からメモリを開放したとき、前記開放時メモリセル選択
    手段で選択したメモリセルをその状態によって「未使
    用」あるいは「一部使用中」状態に変更すると共に、そ
    のメモリセルに対応するビットマップおよびこれを包括
    する上位のビットマップの該当するメモリセルのうち他
    に使用しているメモリセルがなくなったものについては
    これを「未使用」状態に、また一部使用状態に変化した
    ものについてはこれを「一部使用」状態に変更する開放
    時ビットマップ変更手段を具備することを特徴とする請
    求項10記載のメモリ管理装置。
  13. 【請求項13】 読み書き可能な所定サイズのメモリ領
    域のそのサイズを記憶するメモリ領域サイズ記憶ステッ
    プと、 このメモリ領域サイズ記憶ステップで記憶したサイズの
    メモリ領域を固定長ブロックとしての第1のメモリセル
    で分割するときのその固定長ブロックのサイズを記憶す
    る第1のメモリサイズ記憶ステップと、 前記メモリ領域について前記第1のメモリセルごとの使
    用の状態をビットマップとして記憶する第1のビットマ
    ップ部記憶ステップと、 前記第1のメモリセルを予め定められた整数倍であるN
    倍のメモリ量ごとに上位のメモリセルとしてまとめ、更
    にそれをN倍のメモリ量ごとに更に上位のメモリセルに
    まとめるようにして、前記メモリ領域を最大階層として
    のa−1階層(ただしaは2以上の整数)に階層化し、
    これらのそれぞれを第2のメモリセル〜第aのメモリセ
    ルとしたときのこれらのメモリセルごとの使用の状態を
    ビットマップとして記憶する第2〜第aのビットマップ
    部記憶ステップと、 前記メモリ領域に対するメモリの確保の要求があったと
    き、その要求したメモリのサイズよりも小さくそのサイ
    ズに最も近いサイズのメモリセルの階層を選択するメモ
    リセル階層選択ステップと、 このメモリセル階層選択ステップによって選択された階
    層のメモリセルに対応するビットマップ部から前記メモ
    リの確保の要求があったメモリのサイズを満足するのに
    最低限必要な数の連続したメモリセルの場所を表わした
    アドレスを検索するアドレス検索ステップと、 このアドレス検索ステップによって検索されたアドレス
    を用いて前記メモリ領域を前記メモリの確保の要求があ
    ったメモリのサイズを満足するのに最低限必要な数の連
    続したメモリセル分だけ確保するメモリ確保ステップと
    を具備することを特徴とするメモリ管理方法。
  14. 【請求項14】 読み書き可能な所定サイズのメモリ領
    域のそのサイズを記憶するメモリ領域サイズ記憶ステッ
    プと、 このメモリ領域サイズ記憶ステップで記憶したサイズの
    メモリ領域を固定長ブロックとしての第1のメモリセル
    で分割するときのその固定長ブロックのサイズを記憶す
    る第1のメモリサイズ記憶ステップと、 前記メモリ領域について前記第1のメモリセルごとの使
    用の状態を、未使用状態を示す「未使用」、その一部を
    使用している「一部使用中」、その全部を使用している
    「使用中」の少なくとも3つの状態のいずれかを表わし
    たビットマップとして記憶する第1のビットマップ部記
    憶ステップと、 前記第1のメモリセルを予め定められた整数倍であるN
    倍のメモリ量ごとに上位のメモリセルとしてまとめ、更
    にそれをN倍のメモリ量ごとに更に上位のメモリセルに
    まとめるようにして、前記メモリ領域を最大階層として
    のa−1階層(ただしaは2以上の整数)に階層化し、
    これらのそれぞれを第2のメモリセル〜第aのメモリセ
    ルとしたときのこれらのメモリセルごとの使用の状態
    を、未使用状態を示す「未使用」、その一部を使用して
    いる「一部使用中」、その全部を使用している「使用
    中」の少なくとも3つの状態のいずれかを表わしたビッ
    トマップとして記憶する第2〜第aのビットマップ部記
    憶ステップと、 前記メモリ領域に対するメモリの確保の要求があったと
    き、その要求したメモリのサイズよりも小さくそのサイ
    ズに最も近いサイズのメモリセルの階層を選択するメモ
    リセル階層選択ステップと、 このメモリセル階層選択ステップによって選択された階
    層のメモリセルに対応するビットマップ部から前記メモ
    リの確保の要求があったメモリのサイズだけデータの連
    続的な格納が可能な1または複数の連続したメモリセル
    の場所を表わしたアドレスを、前記「未使用」または
    「一部使用中」の状態のメモリセルを先頭アドレスとし
    て検索するアドレス検索ステップと、 このアドレス検索ステップによって検索されたアドレス
    を用いて前記メモリ領域を前記メモリの確保の要求があ
    ったメモリのサイズを満足するのに最低限必要な数の連
    続したメモリセル分だけ確保するメモリ確保ステップ
    と、 このメモリ確保ステップによって確保したメモリセルに
    対応するビットマップおよび確保したメモリセルよりも
    上位の階層のメモリセルでその状態の変更を受けるもの
    についてのビットマップの状態を、変更後の状態に応じ
    て「一部使用中」あるいは「使用中」に変更するビット
    マップ部変更ステップとを具備することを特徴とするメ
    モリ管理方法。
  15. 【請求項15】 読み書き可能な所定サイズのメモリ領
    域のそのサイズを記憶するメモリ領域サイズ記憶ステッ
    プと、 このメモリ領域サイズ記憶ステップで記憶したサイズの
    メモリ領域を固定長ブロックとしての第1のメモリセル
    で分割するときのその固定長ブロックのサイズを記憶す
    る第1のメモリサイズ記憶ステップと、 前記メモリ領域について前記第1のメモリセルごとの使
    用の状態を、未使用状態を示す「未使用」、その一部を
    使用している「一部使用中」、その全部を使用している
    「使用中」および要求されるメモリサイズのデータの格
    納される先頭のメモリセルであることを示す「割り当て
    の先頭」の4つの状態のいずれかを表わしたビットマッ
    プとして記憶する第1のビットマップ部記憶ステップ
    と、 前記第1のメモリセルを予め定められた整数倍であるN
    倍のメモリ量ごとに上位のメモリセルとしてまとめ、更
    にそれをN倍のメモリ量ごとに更に上位のメモリセルに
    まとめるようにして、前記メモリ領域を最大階層として
    のa−1階層(ただしaは2以上の整数)に階層化し、
    これらのそれぞれを第2のメモリセル〜第aのメモリセ
    ルとしたときのこれらのメモリセルごとの使用の状態
    を、未使用状態を示す「未使用」、その一部を使用して
    いる「一部使用中」、その全部を使用している「使用
    中」および要求されるメモリサイズのデータの格納され
    る先頭のメモリセルであることを示す「割り当ての先
    頭」の4つの状態のいずれかを表わしたビットマップと
    して記憶する第2〜第aのビットマップ部記憶ステップ
    と、 前記メモリ領域に対するメモリの確保の要求があったと
    き、その要求したメモリのサイズよりも小さくそのサイ
    ズに最も近いサイズのメモリセルの階層を選択するメモ
    リセル階層選択ステップと、 このメモリセル階層選択ステップによって選択された階
    層のメモリセルに対応するビットマップ部から前記メモ
    リの確保の要求があったメモリのサイズだけデータの連
    続的な格納が可能な1または複数の連続したメモリセル
    の場所を表わしたアドレスを、前記「未使用」または
    「一部使用中」の状態のメモリセルを先頭アドレスとし
    て検索するアドレス検索ステップと、 このアドレス検索ステップによって検索されたアドレス
    を用いて前記メモリ領域を前記メモリの確保の要求があ
    ったメモリのサイズを満足するのに最低限必要な数の連
    続したメモリセル分だけ確保するメモリ確保ステップ
    と、 このメモリ確保ステップによって確保したメモリセルに
    対応するビットマップを「一部使用中」、「使用中」あ
    るいは「割り当ての先頭」に変更すると共に、確保した
    メモリセルよりも上位の階層のメモリセルでその状態の
    変更を受けるものについてのビットマップの状態を、変
    更後の状態に応じて「一部使用中」あるいは「使用中」
    に変更するビットマップ部変更ステップとを具備するこ
    とを特徴とするメモリ管理方法。
  16. 【請求項16】 読み書き可能な所定サイズのメモリ領
    域のそのサイズを記憶するメモリ領域サイズ記憶ステッ
    プと、 このメモリ領域サイズ記憶ステップで記憶したサイズの
    メモリ領域を固定長ブロックとしての第1のメモリセル
    で分割するときのその固定長ブロックのサイズを記憶す
    る第1のメモリサイズ記憶ステップと、 前記メモリ領域について前記第1のメモリセルごとの使
    用の状態を、未使用状態を示す「未使用」、その一部を
    使用している「一部使用中」、その全部を使用している
    「使用中」および要求されるメモリサイズのデータの格
    納される先頭のメモリセルであることを示す「割り当て
    の先頭」の4つの状態のいずれかを表わしたビットマッ
    プとして記憶する第1のビットマップ部記憶ステップ
    と、 前記第1のメモリセルを予め定められた整数倍であるN
    倍のメモリ量ごとに上位のメモリセルとしてまとめ、更
    にそれをN倍のメモリ量ごとに更に上位のメモリセルに
    まとめるようにして、前記メモリ領域を最大階層として
    のa−1階層(ただしaは2以上の整数)に階層化し、
    これらのそれぞれを第2のメモリセル〜第aのメモリセ
    ルとしたときのこれらのメモリセルごとの使用の状態
    を、未使用状態を示す「未使用」、その一部を使用して
    いる「一部使用中」、その全部を使用している「使用
    中」および要求されるメモリサイズのデータの格納され
    る先頭のメモリセルであることを示す「割り当ての先
    頭」の4つの状態のいずれかを表わしたビットマップと
    して記憶する第2〜第aのビットマップ部記憶ステップ
    と、 前記メモリ領域に対するメモリの確保の要求があったと
    き、その要求したメモリのサイズに比較的近くてこれよ
    りも大きなメモリセルが存在するかを判別する1階層上
    位メモリセル選択ステップと、 この1階層上位メモリセル選択ステップがその条件に合
    うメモリセルが存在しないと判別したときその要求した
    メモリのサイズよりも小さくそのサイズに最も近いサイ
    ズのメモリセルの階層を選択する第1のメモリセル階層
    選択ステップと、 前記1階層上位メモリセル選択ステップがその条件に合
    うメモリセルが存在すると判別したときその階層のメモ
    リセルを選択する第2のメモリセル階層選択ステップ
    と、 前記第1または第2のメモリセル階層選択ステップによ
    って選択された階層のメモリセルに対応するビットマッ
    プ部から前記メモリの確保の要求があったメモリのサイ
    ズだけデータの連続的な格納が可能な1または複数の連
    続したメモリセルの場所を表わしたアドレスを、前記
    「未使用」または「一部使用中」の状態のメモリセルを
    先頭アドレスとして検索するアドレス検索ステップと、 このアドレス検索ステップによって検索されたアドレス
    を用いて前記メモリ領域を前記メモリの確保の要求があ
    ったメモリのサイズを満足するのに最低限必要な数の連
    続したメモリセル分だけ確保するメモリ確保ステップ
    と、 このメモリ確保ステップによって確保したメモリセルに
    対応するビットマップを「一部使用中」、「使用中」あ
    るいは「割り当ての先頭」に変更すると共に、確保した
    メモリセルよりも上位の階層のメモリセルでその状態の
    変更を受けるものについてのビットマップの状態を、変
    更後の状態に応じて「一部使用中」あるいは「使用中」
    に変更するビットマップ部変更ステップとを具備するこ
    とを特徴とするメモリ管理方法。
  17. 【請求項17】 読み書き可能な所定サイズのメモリ領
    域のそのサイズを記憶するメモリ領域サイズ記憶ステッ
    プと、 このメモリ領域サイズ記憶ステップで記憶したサイズの
    メモリ領域を固定長ブロックとしての第1のメモリセル
    で分割するときのその固定長ブロックのサイズを記憶す
    る第1のメモリサイズ記憶ステップと、 前記メモリ領域について前記第1のメモリセルごとの使
    用の状態を、未使用状態を示す「未使用」、その一部を
    使用している「一部使用中」、その全部を使用している
    「使用中」および要求されるメモリサイズのデータの格
    納される先頭のメモリセルであることを示す「割り当て
    の先頭」の4つの状態のいずれかを表わしたビットマッ
    プとして記憶する第1のビットマップ部と、 前記第1のメモリセルを予め定められた整数倍であるN
    倍のメモリ量ごとに上位のメモリセルとしてまとめ、更
    にそれをN倍のメモリ量ごとに更に上位のメモリセルに
    まとめるようにして、前記メモリ領域を最大階層として
    のa−1階層(ただしaは2以上の整数)に階層化し、
    これらのそれぞれを第2のメモリセル〜第aのメモリセ
    ルとしたときのこれらのメモリセルごとの使用の状態
    を、未使用状態を示す「未使用」、その一部を使用して
    いる「一部使用中」、その全部を使用している「使用
    中」および要求されるメモリサイズのデータの格納され
    る先頭のメモリセルであることを示す「割り当ての先
    頭」の4つの状態のいずれかを表わしたビットマップと
    して記憶する第2〜第aのビットマップ部記憶ステップ
    と、 前記メモリ領域に対するメモリの確保の要求があったと
    き、その要求したメモリのサイズよりも小さくそのサイ
    ズに最も近いサイズのメモリセルと、これよりも更に小
    さなサイズのメモリセルとの組み合わせで前記要求した
    メモリのサイズを充足するメモリセルの組み合わせを選
    択するメモリセル選択ステップと、 このメモリセル選択ステップによって選択されたそれぞ
    れの階層のメモリセルに対応するビットマップ部から前
    記メモリの確保の要求があったメモリのサイズだけデー
    タの連続的な格納が可能な1または複数の連続したメモ
    リセルの場所を表わしたアドレスを、前記「未使用」ま
    たは「一部使用中」の状態のメモリセルを先頭アドレス
    として検索するアドレス検索ステップと、 このアドレス検索ステップによって検索されたアドレス
    を用いて前記メモリ領域を前記メモリの確保の要求があ
    ったメモリのサイズを満足するのに最低限必要な数の連
    続したメモリセル分だけ確保するメモリ確保ステップ
    と、 このメモリ確保ステップによって確保したメモリセルに
    対応するビットマップを「一部使用中」、「使用中」あ
    るいは「割り当ての先頭」に変更すると共に、確保した
    メモリセルよりも上位の階層のメモリセルでその状態の
    変更を受けるものについてのビットマップの状態を、変
    更後の状態に応じて「一部使用中」あるいは「使用中」
    に変更するビットマップ部変更ステップとを具備するこ
    とを特徴とするメモリ管理方法。
  18. 【請求項18】 読み書き可能な所定サイズのメモリ領
    域のそのサイズを記憶するメモリ領域サイズ記憶ステッ
    プと、 このメモリ領域サイズ記憶ステップで記憶したサイズの
    メモリ領域を所定のアドレスを境として2分したときの
    第1のメモリ領域を固定長ブロックとしての第1のメモ
    リセルで分割するときのその固定長ブロックのサイズを
    記憶する第1のメモリサイズ記憶ステップと、 前記第1のメモリ領域について前記第1のメモリセルご
    との使用の状態を、未使用状態を示す「未使用」、その
    一部を使用している「一部使用中」、その全部を使用し
    ている「使用中」および要求されるメモリサイズのデー
    タの格納される先頭のメモリセルであることを示す「割
    り当ての先頭」の4つの状態のいずれかを表わしたビッ
    トマップとして記憶する第1のビットマップ部と、 前記第1のメモリセルを予め定められた整数倍であるN
    倍のメモリ量ごとに上位のメモリセルとしてまとめ、更
    にそれをN倍のメモリ量ごとに更に上位のメモリセルに
    まとめるようにして、前記メモリ領域を最大階層として
    のa−1階層(ただしaは2以上の整数)に階層化し、
    これらのそれぞれを第2のメモリセル〜第aのメモリセ
    ルとしたときのこれらのメモリセルを前記第1のメモリ
    領域とそれ以外の第2のメモリ領域に割り振り、これら
    第1および第2のメモリ領域について対応する各メモリ
    セルごとの使用状態をビットマップとして記憶する第2
    〜第aのビットマップ部記憶ステップと、 前記メモリ領域に対するメモリの確保の要求があったと
    き、その要求したメモリのサイズよりも小さくそのサイ
    ズに最も近いサイズのメモリセルの階層を選択するメモ
    リセル階層選択ステップと、 このメモリセル階層選択ステップによって選択された階
    層のメモリセルに対応するビットマップ部から前記メモ
    リの確保の要求があったメモリのサイズを満足するのに
    最低限必要な数の連続したメモリセルの場所を表わした
    アドレスを検索するアドレス検索ステップと、 このアドレス検索ステップによって検索されたアドレス
    を用いて前記メモリ領域を前記メモリの確保の要求があ
    ったメモリのサイズを満足するのに最低限必要な数の連
    続したメモリセル分だけ確保するメモリ確保ステップと
    を具備することを特徴とするメモリ管理方法。
  19. 【請求項19】 読み書き可能な所定サイズのメモリ領
    域のそのサイズを記憶するメモリ領域サイズ記憶ステッ
    プと、 このメモリ領域サイズ記憶ステップで記憶したサイズの
    メモリ領域を所定のアドレスを境として2分したときの
    第1のメモリ領域を固定長ブロックとしての第1のメモ
    リセルで分割するときのその固定長ブロックのサイズを
    記憶する第1のメモリサイズ記憶ステップと、 前記第1のメモリ領域について前記第1のメモリセルご
    との使用の状態をビットマップとして記憶する第1のビ
    ットマップ部と、 前記第1のメモリセルを予め定められた整数倍であるN
    倍のメモリ量ごとに上位のメモリセルとしてまとめ、更
    にそれをN倍のメモリ量ごとに更に上位のメモリセルに
    まとめるようにして、前記メモリ領域を最大階層として
    のa−1階層(ただしaは2以上の整数)に階層化し、
    これらのそれぞれを第2のメモリセル〜第aのメモリセ
    ルとしたときのこれらのメモリセルごとの使用の状態
    を、未使用状態を示す「未使用」、その一部を使用して
    いる「一部使用中」、その全部を使用している「使用
    中」および要求されるメモリサイズのデータの格納され
    る先頭のメモリセルであることを示す「割り当ての先
    頭」の4つの状態のいずれかを表わし、かつこれらのメ
    モリセルを前記第1のメモリ領域とそれ以外の第2のメ
    モリ領域に割り振り、これら第1および第2のメモリ領
    域について対応する各メモリセルごとの使用状態をビッ
    トマップとして記憶する第2〜第aのビットマップ部記
    憶ステップと、 前記メモリ領域に対するメモリの確保の要求があったと
    き、その要求したメモリのサイズよりも小さくそのサイ
    ズに最も近いサイズのメモリセルと、これよりも更に小
    さなサイズのメモリセルとの組み合わせで前記要求した
    メモリのサイズを充足するメモリセルの組み合わせを選
    択するメモリセル選択ステップと、 このメモリセル選択ステップによって選択されたそれぞ
    れの階層のメモリセルに対応するビットマップ部から前
    記メモリの確保の要求があったメモリのサイズだけデー
    タの連続的な格納が可能な1または複数の連続したメモ
    リセルの場所を表わしたアドレスを、前記「未使用」ま
    たは「一部使用中」の状態のメモリセルを先頭アドレス
    として検索するアドレス検索ステップと、 このアドレス検索ステップによって検索されたアドレス
    を用いて前記メモリ領域を前記メモリの確保の要求があ
    ったメモリのサイズを満足するのに最低限必要な数の連
    続したメモリセル分だけ確保するメモリ確保ステップ
    と、 このメモリ確保ステップによって確保したメモリセルに
    対応するビットマップを「一部使用中」、「使用中」あ
    るいは「割り当ての先頭」に変更すると共に、確保した
    メモリセルよりも上位の階層のメモリセルでその状態の
    変更を受けるものについてのビットマップの状態を、変
    更後の状態に応じて「一部使用中」あるいは「使用中」
    に変更するビットマップ部変更ステップとを具備するこ
    とを特徴とするメモリ管理方法。
JP2000046885A 2000-02-24 2000-02-24 メモリ管理装置およびメモリ管理方法 Pending JP2001236249A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2000046885A JP2001236249A (ja) 2000-02-24 2000-02-24 メモリ管理装置およびメモリ管理方法
US09/790,571 US20010018731A1 (en) 2000-02-24 2001-02-23 Memory management device and memory management method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2000046885A JP2001236249A (ja) 2000-02-24 2000-02-24 メモリ管理装置およびメモリ管理方法

Publications (1)

Publication Number Publication Date
JP2001236249A true JP2001236249A (ja) 2001-08-31

Family

ID=18569222

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000046885A Pending JP2001236249A (ja) 2000-02-24 2000-02-24 メモリ管理装置およびメモリ管理方法

Country Status (2)

Country Link
US (1) US20010018731A1 (ja)
JP (1) JP2001236249A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007523412A (ja) * 2004-02-13 2007-08-16 ジャルナ エスアー メモリ割当て
JP2010504007A (ja) * 2006-09-15 2010-02-04 北大方正集▲団▼有限公司 マルチサイトfmスクリーンドットを同時に生成する方法及び装置
US8010834B2 (en) 2008-10-03 2011-08-30 Fujitsu Limited Failure information monitoring apparatus and failure information monitoring method

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10196980T5 (de) * 2000-11-28 2004-04-22 Advantest Corp. Fehleranalysevorrichtung
JP3832341B2 (ja) * 2001-12-27 2006-10-11 日本電気株式会社 メモリプール管理方式
JP4139675B2 (ja) * 2002-11-14 2008-08-27 株式会社日立製作所 仮想ボリュームの記憶領域割当方法、その装置及びプログラム
US7793040B2 (en) * 2005-06-01 2010-09-07 Microsoft Corporation Content addressable memory architecture
US7856523B2 (en) * 2005-06-01 2010-12-21 Microsoft Corporation Random Access Memory (RAM) based Content Addressable Memory (CAM) management
US7565358B2 (en) * 2005-08-08 2009-07-21 Google Inc. Agent rank
US7516291B2 (en) * 2005-11-21 2009-04-07 Red Hat, Inc. Cooperative mechanism for efficient application memory allocation
US7778959B2 (en) * 2005-12-09 2010-08-17 Microsoft Corporation Protecting storages volumes with mock replication
TW200732913A (en) * 2006-02-24 2007-09-01 Benq Corp Memory allocation method and system
US7685181B2 (en) * 2007-02-26 2010-03-23 International Business Machines Corporation Method and system for utilizing a hierarchical bitmap structure to provide a fast and reliable mechanism to represent large deleted data sets in relational databases
JP5270924B2 (ja) * 2008-01-30 2013-08-21 株式会社東芝 固定長メモリブロック管理装置及び固定長メモリブロック管理装置の制御方法
US8606792B1 (en) 2010-02-08 2013-12-10 Google Inc. Scoring authors of posts
US8850573B1 (en) * 2010-04-14 2014-09-30 Google Inc. Computing device with untrusted user execution mode
CN102306128B (zh) * 2011-09-16 2013-11-20 北京星网锐捷网络技术有限公司 磁盘管理方法、装置及网络设备
US9459868B2 (en) * 2012-03-15 2016-10-04 International Business Machines Corporation Instruction to load data up to a dynamically determined memory boundary
US9459864B2 (en) 2012-03-15 2016-10-04 International Business Machines Corporation Vector string range compare
US9268566B2 (en) 2012-03-15 2016-02-23 International Business Machines Corporation Character data match determination by loading registers at most up to memory block boundary and comparing
US9588762B2 (en) 2012-03-15 2017-03-07 International Business Machines Corporation Vector find element not equal instruction
US9459867B2 (en) 2012-03-15 2016-10-04 International Business Machines Corporation Instruction to load data up to a specified memory boundary indicated by the instruction
US9454367B2 (en) 2012-03-15 2016-09-27 International Business Machines Corporation Finding the length of a set of character data having a termination character
US9710266B2 (en) 2012-03-15 2017-07-18 International Business Machines Corporation Instruction to compute the distance to a specified memory boundary
US9454366B2 (en) 2012-03-15 2016-09-27 International Business Machines Corporation Copying character data having a termination character from one memory location to another
US9280347B2 (en) 2012-03-15 2016-03-08 International Business Machines Corporation Transforming non-contiguous instruction specifiers to contiguous instruction specifiers
US9715383B2 (en) 2012-03-15 2017-07-25 International Business Machines Corporation Vector find element equal instruction
CN103927265B (zh) * 2013-01-04 2017-09-01 深圳市龙视传媒有限公司 一种内容分级存储装置、内容获取方法及内容获取装置
US9865299B2 (en) * 2014-11-28 2018-01-09 Sony Corporation Information processing device, information recording medium, information processing method, and program
US10164946B2 (en) * 2015-06-24 2018-12-25 International Business Machines Corporation Mention identification for untrusted content
US10078451B1 (en) * 2016-01-22 2018-09-18 Red Hat, Inc. Deduplicating data based on boundary identification
CN107203477A (zh) 2017-06-16 2017-09-26 深圳市万普拉斯科技有限公司 内存分配方法、装置、电子设备及可读存储介质
CN109582594A (zh) * 2018-12-05 2019-04-05 北京锐安科技有限公司 一种内存地址的管理方法、装置、设备和存储介质

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007523412A (ja) * 2004-02-13 2007-08-16 ジャルナ エスアー メモリ割当て
JP2010504007A (ja) * 2006-09-15 2010-02-04 北大方正集▲団▼有限公司 マルチサイトfmスクリーンドットを同時に生成する方法及び装置
US8699080B2 (en) 2006-09-15 2014-04-15 Peking University Founder Group Co., Ltd. Method and apparatus for generating multi-site FM screen dots simultaneously
US8010834B2 (en) 2008-10-03 2011-08-30 Fujitsu Limited Failure information monitoring apparatus and failure information monitoring method

Also Published As

Publication number Publication date
US20010018731A1 (en) 2001-08-30

Similar Documents

Publication Publication Date Title
JP2001236249A (ja) メモリ管理装置およびメモリ管理方法
EP0375188B1 (en) File system
US6023744A (en) Method and mechanism for freeing disk space in a file system
US5109336A (en) Unified working storage management
US6505283B1 (en) Efficient memory allocator utilizing a dual free-list structure
EP0408070B1 (en) Method for allocating real pages to virtual pages having different page sizes therefrom
US6874062B1 (en) System and method for utilizing a hierarchical bitmap structure for locating a set of contiguous ordered search items having a common attribute
US20070239957A1 (en) Method of storing both large and small files in a data storage device and data storage device thereof
CN1184538A (zh) 采用稀疏文件的实时数据迁移系统和方法
CN111190537B (zh) 一种追加写场景下顺序存储磁盘管理的方法及系统
CN115599544A (zh) 内存管理方法、装置、计算机设备及存储介质
US20030018689A1 (en) Method, system, and computer program product for managing a re-usable resource with linked list groups
US5678024A (en) Method and system for dynamic performance resource management within a computer based system
KR100907477B1 (ko) 플래시 메모리에 저장된 데이터의 인덱스 정보 관리 장치및 방법
US7035988B1 (en) Hardware implementation of an N-way dynamic linked list
JPH09179743A (ja) エレメントをソートする方法および装置
JPH10283230A (ja) ファイルデータ格納装置およびプログラムを記録した機械読み取り可能な記録媒体
JPH07325669A (ja) ディスク管理方法
US6766336B2 (en) Garbage collection apparatus and a garbage collection method
WO2002031660A2 (en) A data structure, memory allocator and memory management system
JP3353376B2 (ja) 記憶領域管理方式
CN115374127B (zh) 数据存储方法及装置
AU740041B2 (en) Efficient memory allocator utilising a dual free-list structure
JPH0869399A (ja) ファイル管理装置
JP4176682B2 (ja) メモリ管理方式

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20041130

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050131

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20051206