JPS6122824B2 - - Google Patents

Info

Publication number
JPS6122824B2
JPS6122824B2 JP18821780A JP18821780A JPS6122824B2 JP S6122824 B2 JPS6122824 B2 JP S6122824B2 JP 18821780 A JP18821780 A JP 18821780A JP 18821780 A JP18821780 A JP 18821780A JP S6122824 B2 JPS6122824 B2 JP S6122824B2
Authority
JP
Japan
Prior art keywords
cell
program
memory
cells
unused
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.)
Expired
Application number
JP18821780A
Other languages
English (en)
Other versions
JPS57111872A (en
Inventor
Takeshi Shinoki
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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP18821780A priority Critical patent/JPS57111872A/ja
Publication of JPS57111872A publication Critical patent/JPS57111872A/ja
Publication of JPS6122824B2 publication Critical patent/JPS6122824B2/ja
Granted legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • 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
    • G06F12/0253Garbage collection, i.e. reclamation of unreferenced memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Devices For Executing Special Programs (AREA)

Description

【発明の詳細な説明】 本発明はリスト処理プログラムに必要となるセ
ルを未使用記憶域から割付ける際、この未使用記
憶域がなくなつた時に空きセルの回収を行ないハ
ードウエアを用いて効率的に割付けることのでき
るリスト処理方式に関するものである。
通常の主として数値のみを処理するプログラム
ではなく数式処理等のようなリスト処理用言語で
書かれたプログラムでは、そのプログラムが走る
際に必要な記憶域は、動的に必要になつた時点で
割付けられるものが殆どである。そして、またつ
いに未使用の記憶域がなくなつた時、既にプログ
ラムが使つた記憶域の中にもはや必要でなくなつ
たものが大量に存在することが多い。そのため、
これらの記憶域を回収し再利用することがなされ
る。この回収作業のことをガーベジコレクシヨン
と称する。すなわち、プログラムが走る際、記憶
域が必要になつた時点で割付けられていき、未使
用記憶域がなくなつた時にはプログラムが一時停
止され、ガーベジコレクシヨンのフエーズに入り
空き記憶域を回収後、再びプログラムの実行を開
始するという手順を繰返えす。
従来のリスト処理プログラムの記憶域の単位を
セルと呼び、未使用記憶域は未使用(フリー)セ
ルをシステムのある場所、すなわちフリーリスト
ポインタFLPから線形リストの形でポインタをつ
ないでおく。第1図はFLP1から各セル2を順次
つないでフリーリスト3を構成する。プログラム
が新しいセルを要求した時、FLP1が指すセルを
割付けてやり、FLP1はフリーリスト3中の次の
セル2を指すように変更しておく。
これをセルの割付け作業と呼ぶ。プログラムが
何度もセルを要求し、ついにフリーリストがつき
た時、つまり未使用記憶域がなくなつた時プログ
ラムが一時停止させられ、ガーベジコレクシヨン
フエーズに入る。
ガーベジコレクシヨンフエーズは第2図a,b
で説明する2つのサブフエーズから成る。メモリ
10のすべてのセル11にはガーベジコレクシヨ
ン用に1ビツトのマークビツトと呼ばれるビツト
12が付加される。
同図aに示すマーキングフエーズではすべての
使つているセルを順にたどりながら、たどれたセ
ルのマークビツトに印“1”を付けていく。
次に、同図bのコレクテイングフエーズではセ
ルの領域10の全空間について、アドレス順にマ
ークビツト12に印“1”のついていないセルを
FLP1から線形リストの形でフリーリスト3とし
てつなげていく。
この時、マークビツト12に印“1”のついて
いるセルはその印“1”を消して“0”とする。
上述の従来の手法では、プログラムからの新し
いセルの要求はフリーリストがないときにはコレ
クテイングフエーズが終了し、再開するまで待た
せることになり、効率が悪いから第3図a,bに
示すような手順の改良が考えられる。
それは、ガーベジコレクシヨンをマーキングフ
エーズのみで終了しコレクテイングフエーズを省
略する。そしてプログラムが再開し新しいセルの
要求をした時になつてマークビツトが付いていな
いセルを捜し、割付けるようにする。さらに詳し
く述べると、マーキングフエーズのみのガーベジ
コレクシヨンが終了した時、システムのある場
所、前述のFLPに相当するフリーセルマネージメ
ントポインタ(FCMP)に、セル領域の中でアド
レスが最小のセルを指させておく。
第3図a,bに示すように、プログラムが新し
いセルを要求した時、同図aに実線○イで示すよう
に、FCMP13の指すセル12にマークビツト
“1”がある場合、このセルのアドレスからアド
レスの大きい方へマークビツトに印のついていな
いセルを捜し、はじめて印のついていなかつたセ
ル12を、同図bの点線○ロで示すように、プロ
グラムに割付け、探索のとき、マークビツトに印
の付いているセル12の印は消していく。
そして、FCMP13は次の割付けのため、同図
bの実線○ハで示すように、その時割付けたセルの
次のアドレスのセルを指させておき、プログラム
に制御を戻す。
以上の改良により、従来のガーベジコレクシヨ
ンに要していた時間の一部であるコレクテイング
フエーズの時間を省き、新しいセルの要求の都
度、充当するようにしてコレクテイングフエーズ
の時間を分散させ時刻的に遅らせることができ
る。しかしこの手順の欠点はプログラムがセルを
要求してから割付けられるまでの個々の時間が従
来の手法よりかかることである。本発明者は基本
的に後者の手順を用いて若干のハードウエアを付
加することにより、問題となる割付け時間を効果
的に短縮することを考えたものである。
本発明の目的はリスト処理プログラムに必要と
なるセルを未使用記憶域から割付ける際、この未
使用記憶域がなくなつた時に空きセルの回収を行
ないハードウエアを用いて効率的に割付けること
のできるリスト処理方式を提供することである。
前記目的を達成するため、本発明のリスト処理
方式はリスト処理用プログラムを実行する際必要
となる記憶域セルが、複数セルよりなる未使用記
憶域から実行時に動的にセル単位で割付けられ、
この未使用記憶域がなくなつた時に該プログラム
を一旦停止し、ガーベジコレクシヨン段階に入り
空きセルを回収し再びプログラムを実行するリス
ト処理方式において、前記ガーベジコレクシヨン
における各セルの使用、未使用を示すマークビツ
トをセル用メモリとは独立してアクセスできるよ
うに別に設けたビツトマツプメモリとこれを処理
するビツトマツプメモリ処理装置を具え、前記ビ
ツトマツプメモリ中に未使用セルを順次探索し、
該アドレスをビツトマツプメモリ処理装置内のバ
ツフアメモリに登録することを特徴とするもので
ある。
以下本発明を実施例につき詳述する。
本発明の原理はプログラムの実行と割付け作業
の中の未使用セルの探索とを並行して行なうとい
うことである。
第4図は本発明の実施例の構成を示す説明図で
ある。同図において、前述のセル用メモリ10と
は別にマークビツトを集めて設けたビツトマツプ
メモリ21を用意し、これを処理するため未使用
セルの探索を行なうビツトマツプメモリ処理装置
21を情報処理装置CPU20とは別に用意す
る。ガーベジコレクシヨンのマーキングはCPU
20で行なうため、ビツトマツプメモリ21は
CPU20からもアクセスできるようにしてお
く。ビツトマツプメモリ21はハードウエアとし
てはCPU20とビツトマツプメモリ処理装置2
2の両方からアクセスされるが、プログラムが
CPU20で走つているときには、セル用メモリ
10だけをアクセスしビツトマツプメモリ21は
ビツトマツプメモリ処理装置22からしかアクセ
スされないし、ガーベジコレクシヨン時はビツト
マツプメモリ処理装置22は停止していてCPU
20からしかアクセスされないので、ビツトマツ
プメモリ21のアクセス競合は全く起らない。
第5図は第4図の実施例の要部であるビツトマ
ツプメモリ処理装置の詳細説明図である。
同図において、CPU20がガーベジコレクシ
ヨンで印付けを終了した時、ビツトマツプメモリ
処理装置22が動き出す。CPU20側はプログ
ラムを再開することは前述のとおりである。ビツ
トマツプメモリ処理装置22はFCMP用レジスタ
32を有もしており、このFCMP用レジスタ32
の値をアドレスとして、セル空間に対応するビツ
トマツプメモリ21中の各ビツトを調べていき、
印のついているビツトは印を消し、印のついてい
ないビツトについてはそのアドレスをビツトマツ
プメモリ処理装置22内のフリーセルアドレスバ
ツフア33中に登録していく。
すなわち、まず初めにアドレス初期値設定回路
31がFCMP用レジスタ32にセル空間の最初の
アドレスを設定する。このFCMP用レジスタ32
の値をアドレスとして、ビツトマツプメモリ21
中のそのアドレスに対応するビツトをデータビツ
トレジスタ30に読み出す。この読み出された値
が1、すなわち印のついている場合はデータビツ
トレジスタ30を0にして、ビツトマツプメモリ
21中のFCMP用レジスタ32が保持するアドレ
スに対応するビツトに書き出す。すなわち印を消
してやる。読み出された値が0、すなわち印がつ
いていない場合はFCMP用レジスタ32が保持す
るアドレスをフリーセルアドレスバツフア33に
送り登録する。その後インクリメント回路34に
よりFCMP用レジスタ32の値を繰り上げ、この
アドレスに対して同じ動作が行なわれる。このよ
うにしてセル空間の最後のアドレスまで同じ動作
が行なわれる。フリーセルアドレスバツフア33
は、一個または複数個の高速記憶から構成され
る。CPU20側が新しいセルを要求た時、フリ
ーセルアドレスバツフア33中に登録されている
アドレスを返してやる。ビツトマツプメモリ処理
装置22のフリーセルの探索が速すぎて、フリー
セルアドレスバツフア33が一杯だつた時のため
に、ビツトマツプメモリ処理装置22の仕事を停
止するような制御を付加してもよい。また、
CPU20からの新しいセルの要求速度が速くビ
ツトマツプメモリ処理装置22の接索の仕事が間
に合わないために、フリーセルアドレスバツフア
33が空の時、CPU20側から新しいセルの要
求があつた時のみCPU20側の待ち、すなわち
割付け時間が見られるが、これは通常まれである
から全体的に効率のよい割付けを行なうことがで
きる。
以上説明したように、本発明によれば、リスト
処理プログラムに必要となるセルを未使用記憶域
から割付ける際、この未使用記憶域がなくなつた
時に空きセルの回収を行ないハードウエアのビツ
トマツプメモリとこれを処理するビツトマツプメ
モリ処理装置を具え、前記ビツトマツプメモリ中
に未使用セルを順次探索し、該アドレスをビツト
マツプメモリ処理装置内のバツフアメモリに登録
するものである。これにより前述のようにソフト
ウエアの場合に問題となつた割付け時間を有効に
短縮することができる。
【図面の簡単な説明】
第1図、第2図a,bは従来例の説明図、第3
図a,bは第2図の従来例の改良案の説明図、第
4図は本発明の実施例の構成を示す説明図、第5
図は第4図の実施例の要部の詳細説明図であり、
図中、10はセル用メモリ、20は情報処理装
置、21はビツトマツプメモリ、22はビツトマ
ツプメモリ処理装置、31はアドレス初期値設定
回路、32はFCMP用レジスタ、33はフリーセ
ルアドレスバツフア、34はインクリメント回路
を示す。

Claims (1)

    【特許請求の範囲】
  1. 1 リスト処理用プログラムを実行する際必要と
    なる記憶域セルが複数セルより成る未使用記憶域
    から実行時に動的にセル単位で割付けられ、この
    未使用記憶域がなくなつた時に該プログラムを一
    旦停止し、ガーベジコレクシヨン段階に入り空き
    セルを回収し再びプログラムを実行するリスト処
    理方式において、前記ガーベジコレクシヨンにお
    ける各セルの使用、未使用を示すマークビツトを
    セル用メモリとは独立してアクセスできるように
    別に設けたビツトマツプメモリとこれを処理する
    ビツトマツプメモリ処理装置を具え、前記ビツト
    マツプメモリ中に未使用セルを順次探索し、該ア
    ドレスをビツトマツプメモリ処理装置内のバツフ
    アメモリに登録することを特徴とするリスト処理
    方式。
JP18821780A 1980-12-27 1980-12-27 List processing system Granted JPS57111872A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP18821780A JPS57111872A (en) 1980-12-27 1980-12-27 List processing system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP18821780A JPS57111872A (en) 1980-12-27 1980-12-27 List processing system

Publications (2)

Publication Number Publication Date
JPS57111872A JPS57111872A (en) 1982-07-12
JPS6122824B2 true JPS6122824B2 (ja) 1986-06-03

Family

ID=16219810

Family Applications (1)

Application Number Title Priority Date Filing Date
JP18821780A Granted JPS57111872A (en) 1980-12-27 1980-12-27 List processing system

Country Status (1)

Country Link
JP (1) JPS57111872A (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4616315A (en) * 1985-01-11 1986-10-07 Burroughs Corporation System memory for a reduction processor evaluating programs stored as binary directed graphs employing variable-free applicative language codes
US4598361A (en) * 1985-01-11 1986-07-01 Burroughs Corporation Allocator for a reduction processor evaluating programs stored as binary directed graphs employing variable-free applicative language codes

Also Published As

Publication number Publication date
JPS57111872A (en) 1982-07-12

Similar Documents

Publication Publication Date Title
US6865585B1 (en) Method and system for multiprocessor garbage collection
US6175900B1 (en) Hierarchical bitmap-based memory manager
US8909853B2 (en) Methods and apparatus to share a thread to reclaim memory space in a non-volatile memory file system
US7069279B1 (en) Timely finalization of system resources
US8214577B2 (en) Method of memory management for server-side scripting language runtime system
JP2000222281A (ja) マルチスレッド仮想マシン内におけるメモリ・アロケ―ションの方法及び装置
JPH10254756A (ja) リファレンスされたオブジェクトを管理するための3状態リファレンスの使用
US6920541B2 (en) Trace termination for on-the-fly garbage collection for weakly-consistent computer architecture
US8397045B2 (en) Memory management device, memory management method, and memory management program
US6219678B1 (en) System and method for maintaining an association for an object
JPH05274152A (ja) オブジェクト管理方式
US7321908B2 (en) Mostly concurrent garbage collection
KR101885030B1 (ko) 하이브리드 트랜잭셔널 메모리 시스템에서의 트랜잭션 처리 방법 및 트랜잭션 처리 장치
JPH06105435B2 (ja) 情報処理装置による記憶管理機構
JPS6122824B2 (ja)
Boehm Hardware and operating system support for conservative garbage collection
JP3453761B2 (ja) アドレス変換方式
JPS603229B2 (ja) 情報処理方式
JPS6152505B2 (ja)
JPH05241936A (ja) ガーベッジコレクション処理方式及びその記憶装置
JPH1091527A (ja) 記憶装置および記録媒体
JPS5837886A (ja) 記憶空間管理方式
JP3945886B2 (ja) 計算機システムにおける主記憶の割当て方式およびそのための記録媒体
JPS59140566A (ja) 情報処理装置
JPH0119183B2 (ja)