JPH03132840A - メモリアロケーション装置 - Google Patents
メモリアロケーション装置Info
- Publication number
- JPH03132840A JPH03132840A JP27035289A JP27035289A JPH03132840A JP H03132840 A JPH03132840 A JP H03132840A JP 27035289 A JP27035289 A JP 27035289A JP 27035289 A JP27035289 A JP 27035289A JP H03132840 A JPH03132840 A JP H03132840A
- Authority
- JP
- Japan
- Prior art keywords
- memory
- area
- allocation
- memory allocation
- header
- 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
Links
- 238000001514 detection method Methods 0.000 claims abstract description 4
- 238000000034 method Methods 0.000 abstract description 3
- 238000010586 diagram Methods 0.000 description 4
- 230000007423 decrease Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
〔産業上の利用分野〕
本発明は、動的にメモリを割り付け、確保することによ
りメモリ管理を行うメモリアロケーション装置に関する
。
りメモリ管理を行うメモリアロケーション装置に関する
。
コンピュータ等の計算システムに配置される記憶装置は
、一般に種々ある一連の命令を実行する上で共用される
。従って、各一連の命令がロードされるときに記憶領域
を固定的に割り付けてしまうと、他の命令により使用要
求がされたときに使用できない等の種々の効率低下を生
じる。そこで、記憶装置の効率的な運用を行うため、ロ
ード時にはメモリ領域を割り付けず、実行時に要求が来
るごとに割り付ける動的割り付けをメモリアロケーショ
ン装置で行う場合がある。
、一般に種々ある一連の命令を実行する上で共用される
。従って、各一連の命令がロードされるときに記憶領域
を固定的に割り付けてしまうと、他の命令により使用要
求がされたときに使用できない等の種々の効率低下を生
じる。そこで、記憶装置の効率的な運用を行うため、ロ
ード時にはメモリ領域を割り付けず、実行時に要求が来
るごとに割り付ける動的割り付けをメモリアロケーショ
ン装置で行う場合がある。
このような動的な割り付けを行うメモリアロケーション
装置では、メモリの割り付けの要求が来るごとに、要求
サイズのメモリ領域を確保する処理を行っている。この
ため、メモリ割り付けに時間がかかり、コンピュータ等
の計算システム全体の処理が遅くなるという欠点があっ
た。
装置では、メモリの割り付けの要求が来るごとに、要求
サイズのメモリ領域を確保する処理を行っている。この
ため、メモリ割り付けに時間がかかり、コンピュータ等
の計算システム全体の処理が遅くなるという欠点があっ
た。
そこで本発明の目的は、高速にメモリ割り付けの処理を
行うことができるメモリアロケーション装置を提供する
ことにある。
行うことができるメモリアロケーション装置を提供する
ことにある。
本発明のメモリアロケーション装置は、(i)主メモリ
と、(ii)この主メモリに対するメモリ割り付けの要
求サイズが2n−1バイトより大きく21バイト以下と
なる割付サイズnを検出する割付サイズ検出手段と、(
iii )このサイズnの割付要求が初めての場合、ブ
ロック単位で主メモリの領域を確保し、このブロックを
ヘッダと2nバイト単のエリアに分割し、各エリアのヘ
ッダに次のエリアのヘッダのポインタ値を格納してフリ
ーリストを作成する主メモリ分割手段と、(iv)この
主メモリ分割手段で分割されるエリアサイズの値nをイ
ンデックスとし、そのインデックスの内容としてフリー
リストの先頭のポインタ値を格納するメモリ割付管理テ
ーブルと、(V)割付サイズ検出子役で検出されるサイ
ズnのメモリ割付要求に対して、このメモリ割付管理テ
ーブルのインデックスnに格納されたポインタ値で指定
されるエリアを割り付け、そのエリアのヘッダに割付管
理テーブルのインデックス値nを格納するメモリ割付手
段とを具備している。
と、(ii)この主メモリに対するメモリ割り付けの要
求サイズが2n−1バイトより大きく21バイト以下と
なる割付サイズnを検出する割付サイズ検出手段と、(
iii )このサイズnの割付要求が初めての場合、ブ
ロック単位で主メモリの領域を確保し、このブロックを
ヘッダと2nバイト単のエリアに分割し、各エリアのヘ
ッダに次のエリアのヘッダのポインタ値を格納してフリ
ーリストを作成する主メモリ分割手段と、(iv)この
主メモリ分割手段で分割されるエリアサイズの値nをイ
ンデックスとし、そのインデックスの内容としてフリー
リストの先頭のポインタ値を格納するメモリ割付管理テ
ーブルと、(V)割付サイズ検出子役で検出されるサイ
ズnのメモリ割付要求に対して、このメモリ割付管理テ
ーブルのインデックスnに格納されたポインタ値で指定
されるエリアを割り付け、そのエリアのヘッダに割付管
理テーブルのインデックス値nを格納するメモリ割付手
段とを具備している。
すなわち本発明のメモリアロケーション装置は、主メモ
リの各ブロック内の分割エリアにヘッダを設け、そのヘ
ッダ内にメモリフリーリスト用のポインタ値または割り
付は済みを示すメモリ割付管理テーブルのインデックス
値を格納し、メモリ割付管理テーブルで主メモリのブロ
ック内の分割エリアを管理するようにしたものである。
リの各ブロック内の分割エリアにヘッダを設け、そのヘ
ッダ内にメモリフリーリスト用のポインタ値または割り
付は済みを示すメモリ割付管理テーブルのインデックス
値を格納し、メモリ割付管理テーブルで主メモリのブロ
ック内の分割エリアを管理するようにしたものである。
以下、実施例につき本発明の詳細な説明する。
第1図は、本発明の一実施例におけるメモリアロケーシ
ョン装置の回路構成の概要を示したものである。
ョン装置の回路構成の概要を示したものである。
このメモリアロケーション装置のCPU(中央処理装置
)11は、データバス等のバス12を通じて次の各部と
接続されており、各種の制御を行うようになっている。
)11は、データバス等のバス12を通じて次の各部と
接続されており、各種の制御を行うようになっている。
ROM13は、主メモリ14に対するメモリ割り付けの
要求サイズを検出したり、この要求に応じて主メモリ1
4の動的割り付けを制御するプログラムや一般的な制御
のためのプログラムを格納したリード・オンリ・メモリ
である。
要求サイズを検出したり、この要求に応じて主メモリ1
4の動的割り付けを制御するプログラムや一般的な制御
のためのプログラムを格納したリード・オンリ・メモリ
である。
主メモリ14は、CPUIIで実行される命令やデータ
等を格納するランダム・アクセス・メモリである。主メ
モリ14は所定サイズのブロック単位で動的に割り付け
られる。主メモリ14は、ブロック単位で所定サイズの
エリアが割り付けられる。各ブロックは、その最初の割
り付は時に各エリアのヘッダに次のエリアのヘッダのポ
インタ値を格納してフリーリストが作成されるようにな
っている。
等を格納するランダム・アクセス・メモリである。主メ
モリ14は所定サイズのブロック単位で動的に割り付け
られる。主メモリ14は、ブロック単位で所定サイズの
エリアが割り付けられる。各ブロックは、その最初の割
り付は時に各エリアのヘッダに次のエリアのヘッダのポ
インタ値を格納してフリーリストが作成されるようにな
っている。
メモリ割付管理テーブル16は、主メモリの分割された
各エリアサイズnを第n番目のインデックスとし、その
内容としてフリーリストのポインタ値を格納するランダ
ム・アクセス・メモリである。このインデックスの値n
(nは整数)は、割り付けられたエリアのサイズが2
′″バイトであることを示している。
各エリアサイズnを第n番目のインデックスとし、その
内容としてフリーリストのポインタ値を格納するランダ
ム・アクセス・メモリである。このインデックスの値n
(nは整数)は、割り付けられたエリアのサイズが2
′″バイトであることを示している。
第2図は、主メモリ14とメモリ割付管理テーブル16
の関係を示したものである。
の関係を示したものである。
主メモリ14には、領域を割り付け、確保する要求に対
して各メモリサイズごとにメモリブロック17.18が
確保される。メモリブロック17の詳細は、その写像さ
れたイメージ領域としてのメモリブロック19に示され
ている。メモリブロック19は、エリアサイズiごとに
分割されている。同様にメモリブロック18は、メモリ
ブロック21に示されるように、エリアサイズjごとに
分割されている。ここで、1、jはともに整数である。
して各メモリサイズごとにメモリブロック17.18が
確保される。メモリブロック17の詳細は、その写像さ
れたイメージ領域としてのメモリブロック19に示され
ている。メモリブロック19は、エリアサイズiごとに
分割されている。同様にメモリブロック18は、メモリ
ブロック21に示されるように、エリアサイズjごとに
分割されている。ここで、1、jはともに整数である。
メモリ割付管理テーブル16は、2°バイトのエリアサ
イズnに分割されたブロックをそのインデックスに対応
して管理する。メモリ割付管理テーブル16のインデッ
クスiの要素として、例えばメモリ部17のまだ割り付
けられていないフリーリストの先頭エリア22に付され
たヘッダを示すポインタ値が格納される。すなわち、メ
モリ割付管理テーブル16は各メモリブロック内の分割
されたエリアを指すポインタ値の配列であり、i番目の
配列要素はサイズ2′バイトに分割されたエリアのフリ
ーリストの先頭を指している。
イズnに分割されたブロックをそのインデックスに対応
して管理する。メモリ割付管理テーブル16のインデッ
クスiの要素として、例えばメモリ部17のまだ割り付
けられていないフリーリストの先頭エリア22に付され
たヘッダを示すポインタ値が格納される。すなわち、メ
モリ割付管理テーブル16は各メモリブロック内の分割
されたエリアを指すポインタ値の配列であり、i番目の
配列要素はサイズ2′バイトに分割されたエリアのフリ
ーリストの先頭を指している。
第3図は、メモリ割付管理テーブル16と、主メモリ1
4のメモリブロック19との関係を示したものである。
4のメモリブロック19との関係を示したものである。
メモリブロック19は、21バイトのエリアに分割され
、その各々には2バイトのへラダ19−1.19−2・
・・・・・が設けられている。メモリブロック19の各
エリアのうち、既に割り付けがされている領域のヘッダ
19−1.19−2には、このメモリブロック19を管
理するメモリ割付管理テーブル16の1番目のインデッ
クスの値iが格納されている。
、その各々には2バイトのへラダ19−1.19−2・
・・・・・が設けられている。メモリブロック19の各
エリアのうち、既に割り付けがされている領域のヘッダ
19−1.19−2には、このメモリブロック19を管
理するメモリ割付管理テーブル16の1番目のインデッ
クスの値iが格納されている。
一方、まだ割り付けがされていないエリアのヘッダには
フリーリストのポイ゛ンタ値として、次の使用可能なエ
リアに付されたヘッダのアドレスが格納されている。す
なわち、ヘッダ19−3には次のエリアのへラダ19−
4のアドレスが、ヘッダ19−4には更に次のエリアの
ヘッダのアドレスがそれぞれ格納されている。これら割
り付けされていないエリアのヘッダには、このサイズi
が最初に割付要求され、ブロックの確保とエリアの分割
が行われるときにそれぞれの値が格納される。
フリーリストのポイ゛ンタ値として、次の使用可能なエ
リアに付されたヘッダのアドレスが格納されている。す
なわち、ヘッダ19−3には次のエリアのへラダ19−
4のアドレスが、ヘッダ19−4には更に次のエリアの
ヘッダのアドレスがそれぞれ格納されている。これら割
り付けされていないエリアのヘッダには、このサイズi
が最初に割付要求され、ブロックの確保とエリアの分割
が行われるときにそれぞれの値が格納される。
メモリ割付管理テーブル16の第1番目のインデックス
lのエリア23には、メモリブロック19のフリーリス
トの先頭エリアに設けられたヘッダ19−3のアドレス
が格納される。
lのエリア23には、メモリブロック19のフリーリス
トの先頭エリアに設けられたヘッダ19−3のアドレス
が格納される。
次にメモリアロケーション装置の動作について説明する
。
。
第4図は、メモリ割付要求がされたときの処理の流れを
示したものである。
示したものである。
メモリの割付要求がされると(ステップ■;Y)、nの
値を3に設定する(ステップ■)。割付要求のサイズが
2”バイトより大きい場合(ステップ■、、N)、71
の値をn+1に置き換え(ステップ■)、ステップ■に
戻る。割付要求のサイズが2nバイト以下の場合(ステ
ップ■;Y)、メモリ割付管理テーブル16のインデッ
クスnに格納された値をPとする(ステップ■)。
値を3に設定する(ステップ■)。割付要求のサイズが
2”バイトより大きい場合(ステップ■、、N)、71
の値をn+1に置き換え(ステップ■)、ステップ■に
戻る。割付要求のサイズが2nバイト以下の場合(ステ
ップ■;Y)、メモリ割付管理テーブル16のインデッ
クスnに格納された値をPとする(ステップ■)。
PがNtJLLポインタ、すなわちPの値が全て“0”
であり、メモリブロック19上のアドレスを指定してい
ない場合(ステップ■;Y)、CPU1lは主メモリ1
4からメモリブロックを確保する(ステップ■)。メモ
リブロックが確保されると、このブロックはサイズ2
n*2バイトで分割され、フリーリストが作成される(
ステップ■)。
であり、メモリブロック19上のアドレスを指定してい
ない場合(ステップ■;Y)、CPU1lは主メモリ1
4からメモリブロックを確保する(ステップ■)。メモ
リブロックが確保されると、このブロックはサイズ2
n*2バイトで分割され、フリーリストが作成される(
ステップ■)。
CPUIIは、メモリ割付管理テーブル16のn番目に
最初の分割エリアのヘッダのアドレスを格納し、これを
Pに代入する(ステップ■)。
最初の分割エリアのヘッダのアドレスを格納し、これを
Pに代入する(ステップ■)。
CPUIIは、メモリ割付管理テーブル16のn番目に
、Pで指定されるエリアのヘッダに格納されているアド
レス値を格納する(ステップO)。
、Pで指定されるエリアのヘッダに格納されているアド
レス値を格納する(ステップO)。
Pで指定されるエリアのヘッダには値nが格納される(
ステップ0)。更に、Pで指定されるアドレスのヘッダ
の次のアドレス、すなわちPで指定されるヘッダが付さ
れたエリアのアドレスは図示しないレジスタに格納され
て(ステップo)、メモリの割り付けが終了する。
ステップ0)。更に、Pで指定されるアドレスのヘッダ
の次のアドレス、すなわちPで指定されるヘッダが付さ
れたエリアのアドレスは図示しないレジスタに格納され
て(ステップo)、メモリの割り付けが終了する。
一方、ステップ■で、PがNULLポインタでない場合
(N) 、CPU 11はステップ0以降のステップに
移行して割り付けを行う。
(N) 、CPU 11はステップ0以降のステップに
移行して割り付けを行う。
割り付けられたエリアには、割付要求のされたプログラ
ムやデータが格納される。これらを格納すべきエリアは
、ステップ■で図示しないレジスタに格納されたエリア
のアドレスを知ることができる。
ムやデータが格納される。これらを格納すべきエリアは
、ステップ■で図示しないレジスタに格納されたエリア
のアドレスを知ることができる。
第5図、6図は、メモリ解放要求がされたときの処理の
流れを説明するだめのものである。
流れを説明するだめのものである。
例えば、メモリブロック19の既にメモリ割り付けされ
ているエリアFに対してメモリ解放要求があった場合に
ついて説明する。解放要求前は第3図に示される状態で
あったとすると、メモリ割付管理テーブル16の第1番
目のエリア23には、フリーリストの先頭エリアのヘッ
ダ19−3のアドレスが格納されている。
ているエリアFに対してメモリ解放要求があった場合に
ついて説明する。解放要求前は第3図に示される状態で
あったとすると、メモリ割付管理テーブル16の第1番
目のエリア23には、フリーリストの先頭エリアのヘッ
ダ19−3のアドレスが格納されている。
そこで、CPUIIはメモリの解放要求がされるとくス
テップ■;Y)、解放要求のあったエリアFのヘッダの
値1をセーブする(ステップ■)。
テップ■;Y)、解放要求のあったエリアFのヘッダの
値1をセーブする(ステップ■)。
メモリ割付管理テーブル16のエリア23の内容はエリ
アFのヘッダ19−1に格納される(ステップ■)。そ
の後、メモリブロック19のエリアFに設定されたヘッ
ダ19−1のアドレスがメモリ割付管理テーブル16の
i番目の内容23に格納されて(ステップ■)、処理が
終了する。
アFのヘッダ19−1に格納される(ステップ■)。そ
の後、メモリブロック19のエリアFに設定されたヘッ
ダ19−1のアドレスがメモリ割付管理テーブル16の
i番目の内容23に格納されて(ステップ■)、処理が
終了する。
以上説明した実施例では、メモリ割付管理テーブルを主
メモリと別に設ける構成としたが、メモリ割付管理テー
ブルを主メモリの一部で構成してもよい。
メモリと別に設ける構成としたが、メモリ割付管理テー
ブルを主メモリの一部で構成してもよい。
以上説明した実施例では、メモリ割付管理テーブルと各
メモリブロックのフリーリストに格納するポインタ値と
してヘッダのアドレスを用いたが、このアドレスは必ず
しも実アドレスである必要はなく、相対アドレスをポイ
ン7タ値として格納してもよい。
メモリブロックのフリーリストに格納するポインタ値と
してヘッダのアドレスを用いたが、このアドレスは必ず
しも実アドレスである必要はなく、相対アドレスをポイ
ン7タ値として格納してもよい。
このように本発明によれば、動的なメモリ割り付けを行
う際、最初のメモリ割付要求がされたときに、ブロック
単位でメモリを確保し、その要求サイズより大きくて最
小の2n(nは3以上)バイト単位であらかじめブロッ
ク内を分割管理することによって、それ以後の2n−1
より大きく2n以下のバイトサイズのメモリ割付要求に
対して高速に処理することができる。
う際、最初のメモリ割付要求がされたときに、ブロック
単位でメモリを確保し、その要求サイズより大きくて最
小の2n(nは3以上)バイト単位であらかじめブロッ
ク内を分割管理することによって、それ以後の2n−1
より大きく2n以下のバイトサイズのメモリ割付要求に
対して高速に処理することができる。
図面は本発明の一実施例を説明するためのもので、この
うち第1図はメモリアロケーション装置の概要を示した
ブロック図、第2・図は主メモリとメモリ割付管理テー
ブルの関係を示した説明図、第3図はメモリ割付管理テ
ーブルとメモリブロックの関係を示した説明図、第4図
はメモリ割付要求がされたときの処理の流れを示した流
れ図、第5図はメモリ解放要求がされたときの、処理の
流れを示した流れ図、第6図はメモリ解放要求がされた
ときのメモリ割付管理テーブルとメモリブロックとの関
係を示した説明図である。 11・・・・・・CPU、13・・・・・・ROM。 14・・・・・・主メモリ、 16・・・・・・メモリ割付管理テーブル。
うち第1図はメモリアロケーション装置の概要を示した
ブロック図、第2・図は主メモリとメモリ割付管理テー
ブルの関係を示した説明図、第3図はメモリ割付管理テ
ーブルとメモリブロックの関係を示した説明図、第4図
はメモリ割付要求がされたときの処理の流れを示した流
れ図、第5図はメモリ解放要求がされたときの、処理の
流れを示した流れ図、第6図はメモリ解放要求がされた
ときのメモリ割付管理テーブルとメモリブロックとの関
係を示した説明図である。 11・・・・・・CPU、13・・・・・・ROM。 14・・・・・・主メモリ、 16・・・・・・メモリ割付管理テーブル。
Claims (1)
- 【特許請求の範囲】 主メモリと、 この主メモリに対するメモリ割り付けの要求サイズが2
^n^−^1バイトより大きく2^nバイト以下となる
割付サイズnを検出する割付サイズ検出手段と、 このサイズnの割付要求が初めての場合、ブロック単位
で前記主メモリの領域を確保し、このブロックをヘッダ
と2^nバイト単位のエリアに分割し、各エリアのヘッ
ダに次のエリアのヘッダのポインタ値を格納してフリー
リストを作成する主メモリ分割手段と、 この主メモリ分割手段で分割されるエリアサイズの値n
をインデックスとし、そのインデックスの内容として前
記フリーリストの先頭のポインタ値を格納するメモリ割
付管理テーブルと、 前記割付サイズ検出手段で検出されるサイズnのメモリ
割付要求に対して、このメモリ割付管理テーブルのイン
デックスnに格納されたポインタ値で指定されるエリア
を割り付け、そのエリアのヘッダに前記割付管理テーブ
ルのインデックス値nを格納するメモリ割付手段 とを具備することを特徴とするメモリアロケーション装
置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP27035289A JPH03132840A (ja) | 1989-10-19 | 1989-10-19 | メモリアロケーション装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP27035289A JPH03132840A (ja) | 1989-10-19 | 1989-10-19 | メモリアロケーション装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH03132840A true JPH03132840A (ja) | 1991-06-06 |
Family
ID=17485069
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP27035289A Pending JPH03132840A (ja) | 1989-10-19 | 1989-10-19 | メモリアロケーション装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH03132840A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100467564B1 (ko) * | 1997-07-23 | 2005-03-16 | 삼성전자주식회사 | 복합기의데이터종류에따른메모리내의데이터저장방법 |
-
1989
- 1989-10-19 JP JP27035289A patent/JPH03132840A/ja active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100467564B1 (ko) * | 1997-07-23 | 2005-03-16 | 삼성전자주식회사 | 복합기의데이터종류에따른메모리내의데이터저장방법 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CA2069711C (en) | Multi-media signal processor computer system | |
US7987465B2 (en) | Method and apparatus for dynamic allocation of processing resources | |
US7921151B2 (en) | Managing a plurality of processors as devices | |
US6823472B1 (en) | Shared resource manager for multiprocessor computer system | |
US20230196502A1 (en) | Dynamic kernel memory space allocation | |
EP0523863B1 (en) | Digital data processor for high level instructions | |
US6925546B2 (en) | Memory pool configuration system | |
JP2004127291A (ja) | 連続したメモリ・アドレスを提供する方法、システムおよびコンピュータ・ソフトウェア | |
US11249805B2 (en) | Methods and systems for hardware-based memory resource allocation | |
US20150268985A1 (en) | Low Latency Data Delivery | |
US9697047B2 (en) | Cooperation of hoarding memory allocators in a multi-process system | |
US6604185B1 (en) | Distribution of address-translation-purge requests to multiple processors | |
JP2005209206A (ja) | マルチプロセッサシステムにおけるデータ転送方法、マルチプロセッサシステム、及び、この方法を実施するプロセッサ | |
CN117632843A (zh) | 一种数据处理方法、装置、片上系统和电子设备 | |
US20030229721A1 (en) | Address virtualization of a multi-partitionable machine | |
JPH03132840A (ja) | メモリアロケーション装置 | |
JP2023058030A (ja) | 自動ダイレクトメモリアクセスデータフォーマットのためのハードウェアシステム | |
US10481951B2 (en) | Multi-queue device assignment for application groups | |
Jeong et al. | Design and Implementation of Azalea unikernel file IO offload | |
JP3304445B2 (ja) | プログラム生成処理装置 | |
JPH04344549A (ja) | 計算機システムにおけるページ割り当て方式 | |
JPH0251740A (ja) | プロセス割当制御方式 | |
JP2001022640A (ja) | メモリ管理方法 | |
JPH09167114A (ja) | マルチスレッドタスクのスタック割り当て方法 | |
JPH02178856A (ja) | マルチタスクオペレーティングシステムでのグラフィックvramのアクセス方式 |