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
Application number
JP27035289A
Other languages
English (en)
Inventor
Shinichi Kiyohara
清原 伸一
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
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP27035289A priority Critical patent/JPH03132840A/ja
Publication of JPH03132840A publication Critical patent/JPH03132840A/ja
Pending legal-status Critical Current

Links

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は、動的にメモリを割り付け、確保することによ
りメモリ管理を行うメモリアロケーション装置に関する
〔従来の技術〕
コンピュータ等の計算システムに配置される記憶装置は
、一般に種々ある一連の命令を実行する上で共用される
。従って、各一連の命令がロードされるときに記憶領域
を固定的に割り付けてしまうと、他の命令により使用要
求がされたときに使用できない等の種々の効率低下を生
じる。そこで、記憶装置の効率的な運用を行うため、ロ
ード時にはメモリ領域を割り付けず、実行時に要求が来
るごとに割り付ける動的割り付けをメモリアロケーショ
ン装置で行う場合がある。
〔発明が解決しようとする課題〕
このような動的な割り付けを行うメモリアロケーション
装置では、メモリの割り付けの要求が来るごとに、要求
サイズのメモリ領域を確保する処理を行っている。この
ため、メモリ割り付けに時間がかかり、コンピュータ等
の計算システム全体の処理が遅くなるという欠点があっ
た。
そこで本発明の目的は、高速にメモリ割り付けの処理を
行うことができるメモリアロケーション装置を提供する
ことにある。
〔課題を解決するための手段〕
本発明のメモリアロケーション装置は、(i)主メモリ
と、(ii)この主メモリに対するメモリ割り付けの要
求サイズが2n−1バイトより大きく21バイト以下と
なる割付サイズnを検出する割付サイズ検出手段と、(
iii )このサイズnの割付要求が初めての場合、ブ
ロック単位で主メモリの領域を確保し、このブロックを
ヘッダと2nバイト単のエリアに分割し、各エリアのヘ
ッダに次のエリアのヘッダのポインタ値を格納してフリ
ーリストを作成する主メモリ分割手段と、(iv)この
主メモリ分割手段で分割されるエリアサイズの値nをイ
ンデックスとし、そのインデックスの内容としてフリー
リストの先頭のポインタ値を格納するメモリ割付管理テ
ーブルと、(V)割付サイズ検出子役で検出されるサイ
ズnのメモリ割付要求に対して、このメモリ割付管理テ
ーブルのインデックスnに格納されたポインタ値で指定
されるエリアを割り付け、そのエリアのヘッダに割付管
理テーブルのインデックス値nを格納するメモリ割付手
段とを具備している。
すなわち本発明のメモリアロケーション装置は、主メモ
リの各ブロック内の分割エリアにヘッダを設け、そのヘ
ッダ内にメモリフリーリスト用のポインタ値または割り
付は済みを示すメモリ割付管理テーブルのインデックス
値を格納し、メモリ割付管理テーブルで主メモリのブロ
ック内の分割エリアを管理するようにしたものである。
〔実施例〕
以下、実施例につき本発明の詳細な説明する。
第1図は、本発明の一実施例におけるメモリアロケーシ
ョン装置の回路構成の概要を示したものである。
このメモリアロケーション装置のCPU(中央処理装置
)11は、データバス等のバス12を通じて次の各部と
接続されており、各種の制御を行うようになっている。
ROM13は、主メモリ14に対するメモリ割り付けの
要求サイズを検出したり、この要求に応じて主メモリ1
4の動的割り付けを制御するプログラムや一般的な制御
のためのプログラムを格納したリード・オンリ・メモリ
である。
主メモリ14は、CPUIIで実行される命令やデータ
等を格納するランダム・アクセス・メモリである。主メ
モリ14は所定サイズのブロック単位で動的に割り付け
られる。主メモリ14は、ブロック単位で所定サイズの
エリアが割り付けられる。各ブロックは、その最初の割
り付は時に各エリアのヘッダに次のエリアのヘッダのポ
インタ値を格納してフリーリストが作成されるようにな
っている。
メモリ割付管理テーブル16は、主メモリの分割された
各エリアサイズnを第n番目のインデックスとし、その
内容としてフリーリストのポインタ値を格納するランダ
ム・アクセス・メモリである。このインデックスの値n
 (nは整数)は、割り付けられたエリアのサイズが2
′″バイトであることを示している。
第2図は、主メモリ14とメモリ割付管理テーブル16
の関係を示したものである。
主メモリ14には、領域を割り付け、確保する要求に対
して各メモリサイズごとにメモリブロック17.18が
確保される。メモリブロック17の詳細は、その写像さ
れたイメージ領域としてのメモリブロック19に示され
ている。メモリブロック19は、エリアサイズiごとに
分割されている。同様にメモリブロック18は、メモリ
ブロック21に示されるように、エリアサイズjごとに
分割されている。ここで、1、jはともに整数である。
メモリ割付管理テーブル16は、2°バイトのエリアサ
イズnに分割されたブロックをそのインデックスに対応
して管理する。メモリ割付管理テーブル16のインデッ
クスiの要素として、例えばメモリ部17のまだ割り付
けられていないフリーリストの先頭エリア22に付され
たヘッダを示すポインタ値が格納される。すなわち、メ
モリ割付管理テーブル16は各メモリブロック内の分割
されたエリアを指すポインタ値の配列であり、i番目の
配列要素はサイズ2′バイトに分割されたエリアのフリ
ーリストの先頭を指している。
第3図は、メモリ割付管理テーブル16と、主メモリ1
4のメモリブロック19との関係を示したものである。
メモリブロック19は、21バイトのエリアに分割され
、その各々には2バイトのへラダ19−1.19−2・
・・・・・が設けられている。メモリブロック19の各
エリアのうち、既に割り付けがされている領域のヘッダ
19−1.19−2には、このメモリブロック19を管
理するメモリ割付管理テーブル16の1番目のインデッ
クスの値iが格納されている。
一方、まだ割り付けがされていないエリアのヘッダには
フリーリストのポイ゛ンタ値として、次の使用可能なエ
リアに付されたヘッダのアドレスが格納されている。す
なわち、ヘッダ19−3には次のエリアのへラダ19−
4のアドレスが、ヘッダ19−4には更に次のエリアの
ヘッダのアドレスがそれぞれ格納されている。これら割
り付けされていないエリアのヘッダには、このサイズi
が最初に割付要求され、ブロックの確保とエリアの分割
が行われるときにそれぞれの値が格納される。
メモリ割付管理テーブル16の第1番目のインデックス
lのエリア23には、メモリブロック19のフリーリス
トの先頭エリアに設けられたヘッダ19−3のアドレス
が格納される。
次にメモリアロケーション装置の動作について説明する
第4図は、メモリ割付要求がされたときの処理の流れを
示したものである。
メモリの割付要求がされると(ステップ■;Y)、nの
値を3に設定する(ステップ■)。割付要求のサイズが
2”バイトより大きい場合(ステップ■、、N)、71
の値をn+1に置き換え(ステップ■)、ステップ■に
戻る。割付要求のサイズが2nバイト以下の場合(ステ
ップ■;Y)、メモリ割付管理テーブル16のインデッ
クスnに格納された値をPとする(ステップ■)。
PがNtJLLポインタ、すなわちPの値が全て“0”
であり、メモリブロック19上のアドレスを指定してい
ない場合(ステップ■;Y)、CPU1lは主メモリ1
4からメモリブロックを確保する(ステップ■)。メモ
リブロックが確保されると、このブロックはサイズ2 
n*2バイトで分割され、フリーリストが作成される(
ステップ■)。
CPUIIは、メモリ割付管理テーブル16のn番目に
最初の分割エリアのヘッダのアドレスを格納し、これを
Pに代入する(ステップ■)。
CPUIIは、メモリ割付管理テーブル16のn番目に
、Pで指定されるエリアのヘッダに格納されているアド
レス値を格納する(ステップO)。
Pで指定されるエリアのヘッダには値nが格納される(
ステップ0)。更に、Pで指定されるアドレスのヘッダ
の次のアドレス、すなわちPで指定されるヘッダが付さ
れたエリアのアドレスは図示しないレジスタに格納され
て(ステップo)、メモリの割り付けが終了する。
一方、ステップ■で、PがNULLポインタでない場合
(N) 、CPU 11はステップ0以降のステップに
移行して割り付けを行う。
割り付けられたエリアには、割付要求のされたプログラ
ムやデータが格納される。これらを格納すべきエリアは
、ステップ■で図示しないレジスタに格納されたエリア
のアドレスを知ることができる。
第5図、6図は、メモリ解放要求がされたときの処理の
流れを説明するだめのものである。
例えば、メモリブロック19の既にメモリ割り付けされ
ているエリアFに対してメモリ解放要求があった場合に
ついて説明する。解放要求前は第3図に示される状態で
あったとすると、メモリ割付管理テーブル16の第1番
目のエリア23には、フリーリストの先頭エリアのヘッ
ダ19−3のアドレスが格納されている。
そこで、CPUIIはメモリの解放要求がされるとくス
テップ■;Y)、解放要求のあったエリアFのヘッダの
値1をセーブする(ステップ■)。
メモリ割付管理テーブル16のエリア23の内容はエリ
アFのヘッダ19−1に格納される(ステップ■)。そ
の後、メモリブロック19のエリアFに設定されたヘッ
ダ19−1のアドレスがメモリ割付管理テーブル16の
i番目の内容23に格納されて(ステップ■)、処理が
終了する。
以上説明した実施例では、メモリ割付管理テーブルを主
メモリと別に設ける構成としたが、メモリ割付管理テー
ブルを主メモリの一部で構成してもよい。
以上説明した実施例では、メモリ割付管理テーブルと各
メモリブロックのフリーリストに格納するポインタ値と
してヘッダのアドレスを用いたが、このアドレスは必ず
しも実アドレスである必要はなく、相対アドレスをポイ
ン7タ値として格納してもよい。
〔発明の効果〕
このように本発明によれば、動的なメモリ割り付けを行
う際、最初のメモリ割付要求がされたときに、ブロック
単位でメモリを確保し、その要求サイズより大きくて最
小の2n(nは3以上)バイト単位であらかじめブロッ
ク内を分割管理することによって、それ以後の2n−1
より大きく2n以下のバイトサイズのメモリ割付要求に
対して高速に処理することができる。
【図面の簡単な説明】
図面は本発明の一実施例を説明するためのもので、この
うち第1図はメモリアロケーション装置の概要を示した
ブロック図、第2・図は主メモリとメモリ割付管理テー
ブルの関係を示した説明図、第3図はメモリ割付管理テ
ーブルとメモリブロックの関係を示した説明図、第4図
はメモリ割付要求がされたときの処理の流れを示した流
れ図、第5図はメモリ解放要求がされたときの、処理の
流れを示した流れ図、第6図はメモリ解放要求がされた
ときのメモリ割付管理テーブルとメモリブロックとの関
係を示した説明図である。 11・・・・・・CPU、13・・・・・・ROM。 14・・・・・・主メモリ、 16・・・・・・メモリ割付管理テーブル。

Claims (1)

  1. 【特許請求の範囲】 主メモリと、 この主メモリに対するメモリ割り付けの要求サイズが2
    ^n^−^1バイトより大きく2^nバイト以下となる
    割付サイズnを検出する割付サイズ検出手段と、 このサイズnの割付要求が初めての場合、ブロック単位
    で前記主メモリの領域を確保し、このブロックをヘッダ
    と2^nバイト単位のエリアに分割し、各エリアのヘッ
    ダに次のエリアのヘッダのポインタ値を格納してフリー
    リストを作成する主メモリ分割手段と、 この主メモリ分割手段で分割されるエリアサイズの値n
    をインデックスとし、そのインデックスの内容として前
    記フリーリストの先頭のポインタ値を格納するメモリ割
    付管理テーブルと、 前記割付サイズ検出手段で検出されるサイズnのメモリ
    割付要求に対して、このメモリ割付管理テーブルのイン
    デックスnに格納されたポインタ値で指定されるエリア
    を割り付け、そのエリアのヘッダに前記割付管理テーブ
    ルのインデックス値nを格納するメモリ割付手段 とを具備することを特徴とするメモリアロケーション装
    置。
JP27035289A 1989-10-19 1989-10-19 メモリアロケーション装置 Pending JPH03132840A (ja)

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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100467564B1 (ko) * 1997-07-23 2005-03-16 삼성전자주식회사 복합기의데이터종류에따른메모리내의데이터저장방법

Cited By (1)

* Cited by examiner, † Cited by third party
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のアクセス方式