JPH0363739A - リスト処理方式 - Google Patents

リスト処理方式

Info

Publication number
JPH0363739A
JPH0363739A JP19902889A JP19902889A JPH0363739A JP H0363739 A JPH0363739 A JP H0363739A JP 19902889 A JP19902889 A JP 19902889A JP 19902889 A JP19902889 A JP 19902889A JP H0363739 A JPH0363739 A JP H0363739A
Authority
JP
Japan
Prior art keywords
data
pointer
indirect
list
area
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.)
Granted
Application number
JP19902889A
Other languages
English (en)
Other versions
JP2867441B2 (ja
Inventor
Yuji Ogawa
雄司 小川
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 JP1199028A priority Critical patent/JP2867441B2/ja
Publication of JPH0363739A publication Critical patent/JPH0363739A/ja
Application granted granted Critical
Publication of JP2867441B2 publication Critical patent/JP2867441B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Abstract

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

Description

【発明の詳細な説明】 (産業上の利用分野) 本発明は記憶単位であるデータがポインタで連結された
リスト構造に関し、特にそのリスト構造を有するリスト
処理システムに関する。
(従来の技術) 従来、この種のリスト処理方式では記憶領域中のリスト
領域に各データを割付け、データは互いに他のデータへ
のポインタを保持してリスト構造を構成していた。この
リスト構造を処理するには、各データの形を識別するた
め次のような方法を用いていた。
ひとつはデータが存在するリスト領域中のアドレスとと
もに、当該データの形を示すタグを計算機表現の一語中
に併せ持つタグドポインタ方式が公知である。
第6図は、タグドポインタの一例を表わした説明図であ
る。タグドポインタ201の中には、データ202が割
付けられているアドレスを示すポインタ203と、デー
タ202の形を示すタグ204とがある。このタグによ
ってポインタを指す先のデータ形を識別することができ
る。
他に、データ形を示すタグを各データの先頭に付与する
オブジェクトタグ方式が公知である。
第7図は、オブジェクトタグ方式によるデータの一例を
示す説明図である。ポインタ301で一語をすべてポイ
ンタとして使用する代りに、データ302の先頭に当該
データ形を示すタグを設けている。
どちらの方式も、各データには他のデータへのポインタ
、もしくは即位を保持してリスト構造を構成している。
リスト処理システムは、これらのリスト構造を作成する
とともに、変更するシステムである。そのため、システ
ム実行中に、どこからも参照されなくなるデータが出現
することがある。このようなデータを、ガーベジデータ
と呼ぶ。リスト処理システムでは、リスト領域に次々に
データを割付けていくと、やがてリスト領域が尽き、ガ
ーベジデータの置かれているリスト領域を再利用するた
めにガーベジコレクションを行う。
ガーベジコレクションには数種類の方式があるが、基本
的にはあるルートとなるポインタからたどることのでき
るデータを使用中のデータとし、どの方式でも、それら
使用中のデータのみをリスト領域の一端に詰め寄せてい
る。これによって、残りの領域が再利用可能になるとい
う点で各方式は一致している。例えば、コピー法は、リ
スト領域を2等分にし、一方のリスト領域を使いきると
、いま一方のリスト領域の先頭から使用中のデータを詰
め寄せることによりガーベジ領域を回収する。移動した
データが元に置かれていた場所には、移動先へのポイン
タを記しておき、他のデータがそれを参照していれば、
移動先へ向ける。
また、マークスィーブ法では、使用中のデータがどこか
ら参照されているかを知るために、参照されているデー
タから参照しているデータへの逆転ポインタを作成し、
使用中のデータをリスト領域の先頭へ詰め寄せる。この
ときに、逆転ポインタで指示されるそのデータをポイン
タで参照しているので、当該ポインタを移動先に向ける
(発明が解決しようとする課題) 上述した従来のリスト処理方式において、タグドポイン
タではポインタデータ内にタグを付与しているため、デ
ータを割付けるリスト領域に制限ができる。例えば、−
語が32ビツトでポインタ部がそのうち24ビツトであ
れば、論理的に4ギガバイトを使用できる。ところが1
6メガバイトしか使用できないと言う欠点がある。
オブジェクトタグ方式では、データを参照しないと当該
テ′−夕の形がわからないため、データの形の判定効率
が低くなると言う欠点がある。
ガーベジコレクションではマークスイープ法では、デー
タを指すすべてのポインタを逆転、および回復するため
に処理が複雑になる。これによって、リスト処理システ
ムの中断時間が長くなってしまうか、もしくはコピー法
によってJスト領域を2分割し、実質的に利用できる記
憶領域が半減してしまうと言う欠点がある。
本発明の目的は、あるデータから他のデータへ直接ポイ
ンタを張らずに間接ポインタを介して指示するとともに
、各データ中の他のデータへの参照情報には、そのデー
タを指す間接ポインタのアドレスに、そのデータの種類
を表すタグを付与したタグドポインタを用い、未使用の
間接ポインタをポインタで連結して管理することにより
上記欠点を除去し、データの形を効率的に判定でき、実
効記憶領域を大きくとることができるように構成したリ
スト処理方式を提供することにある。
(課題を解決するための手段) 本発明によるリスト処理方式は間接ポインタ参照手段と
、データ識別手段と、フリーチェーン管理手段とを具備
して構成したものである。
間接ポインタ参照手段は、あるデータから他のデータへ
直接ポインタを張らずに間接ポインタを介して指示する
ためのものである。
データ識別手段は、各データ中の他のデータへの参照情
報には当該データを指す間接ポインタのアドレスに当該
データの種類を表すタグを付与したタグドポインタを用
いるためのものである。
フリーチェーン管理手段は、未使用の間接ボインクをポ
インタで連結して管理するためのものである。
(実施例) 次に、本発明について図面を参照して説明する。
第1図は、本発明によるリスト処理方式の一実施例を示
すブロック図である。
第1図において、1は入出力制御部、2はリスト処理制
御部、3は記憶域管理部、4は記憶領域、5は間接ポイ
ンタ領域、6はリスト領域、7は間接参照手段、8はデ
ータ識別手段、9はフリーチェーン管堺手段、10.1
1はそれぞれデータ、12〜14はそれぞれ変数、15
.16はそれぞれ間接ポインタである。
入出力制御部1から利用者の要求を受付けると、リスト
処理制御部2は構文解析を行い、必要に応じて記憶域管
理部3ヘデータの作成/更新を要求する。その結果がリ
スト処理制御部2に返され、入出力制御部1から利用者
へ伝えられる。記憶域W球部3は、記憶領域4を管理し
ている。記憶領域4に間接ポインタ領域5、ならびにリ
スト領域6を設けることにより間接参照手段7を実現し
ている。また、記憶領域4はさらにいくつかの変数から
構成されている。変数FT14は、間接ポインタ領域中
の未使用データを指し、その未使用データ中には他の未
使用データのアドレスが記されている。
このようにして、最後の未使用データにはNULLポイ
ンタが記され、間接ポインタ領域中の未使用データはポ
インタで結ばれたチェーン構造を構成している。このよ
うに、未使用の間接ポインタはフリーチェーン管理手段
9により管理されている。
変数LT13には、初期値としてリスト領域6の先頭ア
ドレスを保持している。データがリスト領域6に割付け
られるごとに変数LT13の値は増加し、常に、次に割
付けられるべきデータの位置を示している。変数ROO
Tl 2はガーベジコレクションのときに、現在使用中
であるデータを抽出するためのルートポインタである。
いま、変数ROOTl2は間接ポインタ15を指し、間
接ポインタ15はデータ10を指している。データ10
の最初の要素は、データ11へのポインタであるが、直
接データ11をポイントせずに、データ11のデータ形
tとともに間接ポインタ16のアドレスを保持し、間接
ポインタ16がデータ11をポイントしている。
このように、タグとアドレスとを一体化することによっ
て、データ識別手段8を実現している。
ここで、間接ポインタ領域5は記憶領域4の下位アドレ
スから割当てる。一般には、データは複数語の大きさを
有し、−語の間接ポインタより十分大きいと考えられる
。そこで、間接ポインタ領域5とリスト領域6との境界
は、アドレス空間内の下位アドレスに設けることができ
る。
例えば、−語が32ビツトより成る計算機において、間
接ポインタ領域5とリスト領域6との境界アドレスを、
16進級の1000000以下であるとする。すると、
間接ポインタへのアドレスでは、必ず上位1バイトがO
という規則が成立つ。そこで、この上位1バイトをタグ
して用いる。そうすることによって、ポインタの指す先
を参照せずに、データの形が識別でき、且つリスト領域
の大きさに制限が起こらない。
次に、新しいデータを割付ける手順を説明する。データ
の割付けには、間接ポインタとリスト領域6とのなかに
データの割付は領域を確保するO 第2図は、データの割付は処理を表わした流れ図である
。ここで、←は代入を表し、()はポインタによって指
される記憶領域の内容を意味している。まず、間接ポイ
ンタを割付ける。
FT14がNULLポインタであったならば、ガーベジ
コレクションを行い、それでもFT14がNULLであ
ったならば、間接ポインタ領域不足のため、リスト処理
システムを終了する。
このとき、FT14がNULLでなかったならば、レジ
スタPK″FT14の値を代入し、Pの指す次の間接ポ
インタのアドレスをFT14に代入して、Li2Sが指
す先からデータを割付けるだけのリスト領域6が確保で
きるかを調べる。もし、ガーベジコレクションを行って
もリスト領域6が確保できなければ、リスト領域不足の
ためリスト処理システムを終了する。もし、確保できた
ならば、レジスタPの指す間接ポインタにLi2Sの値
を代入し、LT13Vc割付けたデータサイズを加算す
る。レジスタPの先頭の1バイトに割付けられたデータ
の形の示すタグを代入し、結果としてPを戻す。
次に、ガーベジコレクションを説明する。
第3図は、ガーベジコレクションの処理を表わした流れ
図である。まず、ROOT12から、たどることのでき
るすべての間接ポインタにマークをする。マークの方法
は特に限定しないが、すべてのデータを4バイトの倍数
にすることによってアドレス値の下位2ビツトを常にO
にすることができ、これらのビットを1にすることで行
える。
次に、間接ポインタのフリーチェーンを作成する。FT
14にNULLポインタの先頭アドレスを代入し、レジ
スタPに間接ポインタ領域の先頭アドレスを代入する。
もし、Pの指す間接ポインタのマークがオフならば、P
の指す間接ポインタにFT14の値を代入し、FT14
にはPの値を代入する。Pの指す間接ポインタのマーク
がオンであれば、Pの指す間接ポインタの先にあるデー
タの先頭4バイトの内容を、Pの指す間接ポインタに退
避する。データの先頭4バイトにPの値(間接ポインタ
のアドレス)を代入する。これを第4図に示す。ここで
、タグ値0は未定義であるとする。
次に、レジスタPを次の間接ポインタに向け、間接ポイ
ンタ領域5の終端になるまで上記操作を繰返し、最後に
、リスト領域を回収する。レジスタP、Qの内容をリス
ト領域6の先頭アドレスで初期化し、レジスタPの内容
がLi2Sと等しくなるまで次の処理を繰返す。
レジスタPの指すデータの先頭4バイトのタグがOであ
るならば、その先頭4バイトは間接ポインタを指してい
るので、その間接ポインタに退避されている値をデータ
に戻し、レジスタQの値を間接ポインタに代入する。そ
して、そのデータをレジスタQの指す先に転送する。こ
れを第5図に示す。レジスタP、Qの内容にそれぞれデ
ータサイズを加算する。もし、レジスタPの指す先のタ
グが0でなければ、そのデータはガーベジデータである
のでレジスタPの内容だけをデータサイズに加算する。
レジスタPの内容がLi2Sと等しくなったならば、レ
ジスタQの内容をLi2Sに代入し、ガーベジコレクシ
ョンを終了する。
(発明の効果) 以上説明したように本発明は、あるデータから他のデー
タへ直接ポインタを張らずに間接ポインタを介して指示
するとともに、各データ中の他のデータへの参照情報に
は、そのデータを指す間接ポインタのアドレスに、その
データの種類を表わすタグを付与したタグドポインタを
用い、未使用の間接ポインタをポインタで連結して管理
することにより、リスト領域の大きさに制限を与えず、
タグドポインタを実現し、データを参照せずにデータの
形が識別できると言う効果がある。また、ガーベジコレ
クションでは、各データの内容を書換えずに間接ポイン
タのみを修正するだけで、データの移動に対応できるた
め、効率良く処理が行え、リスト領域を2等分する必要
もないという効果がある。
【図面の簡単な説明】
第1図は、本発明によるリスト処理方式の一実施例を示
すブロック図である。 第2図は、本発明のデータ割付は処理を表わす流れ図で
ある。 第3図は、本発明のガーベジコレクション処理を表わす
流れ図である。 第4図および第5図は、それぞれ本発明のガーベジコレ
クション処理における間接ポインタ、およびデータの変
化を表わす説明図である。 第6図は、従来技術によるタグドポインタを示す説明図
である。 第7図は、従来技術によるオブジェクトタグを示す説明
図である。 1・・・入出力制御部  2・・・リスト処理制御部3
・・・記憶域管理部  4・・・記憶領域5・・・間接
ポインタ領域 6・・・リスト領域   7・・・間接参照手段8・・
・データ識別手段 9・・・フリーチェーン管理手段 10.11.202.302・・・データ12〜14・
・・変数 15.16・・・間接ポインタ 201・・・タグドポインタ 203.301・・・ポインタ 204・・・タグ

Claims (1)

    【特許請求の範囲】
  1. あるデータから他のデータへ直接ポインタを張らずに間
    接ポインタを介して指示するための間接ポインタ参照手
    段と、前記各データ中の他のデータへの参照情報には当
    該データを指す前記間接ポインタのアドレスに当該デー
    タの種類を表わすタグを付与したタグドポインタを用い
    るためのデータ識別手段と、未使用の間接ポインタをポ
    インタで連結して管理するためのフリーチェーン管理手
    段とを具備して構成したことを特徴とするリスト処理方
    式。
JP1199028A 1989-07-31 1989-07-31 リスト処理方式 Expired - Lifetime JP2867441B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP1199028A JP2867441B2 (ja) 1989-07-31 1989-07-31 リスト処理方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP1199028A JP2867441B2 (ja) 1989-07-31 1989-07-31 リスト処理方式

Publications (2)

Publication Number Publication Date
JPH0363739A true JPH0363739A (ja) 1991-03-19
JP2867441B2 JP2867441B2 (ja) 1999-03-08

Family

ID=16400915

Family Applications (1)

Application Number Title Priority Date Filing Date
JP1199028A Expired - Lifetime JP2867441B2 (ja) 1989-07-31 1989-07-31 リスト処理方式

Country Status (1)

Country Link
JP (1) JP2867441B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8950214B2 (en) 2013-02-11 2015-02-10 Pandora A/S Component with gripping element

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6160151A (ja) * 1984-08-31 1986-03-27 Fujitsu Ltd タグ付計算機

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6160151A (ja) * 1984-08-31 1986-03-27 Fujitsu Ltd タグ付計算機

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8950214B2 (en) 2013-02-11 2015-02-10 Pandora A/S Component with gripping element

Also Published As

Publication number Publication date
JP2867441B2 (ja) 1999-03-08

Similar Documents

Publication Publication Date Title
US5321834A (en) Method and system for reclaiming unreferenced computer memory space
US7136887B2 (en) Method and mechanism for finding references in a card in time linear in the size of the card in a garbage-collected heap
US4587628A (en) Method and apparatus for dynamic invocation of utilities
EP1435576A2 (en) Method and apparatus for block-oriented memory management provided in smart card controllers
JPH0695954A (ja) コンサーバティブ・スタックとジェネレイショナル・ヒープガーベージ・コレクション用コンピュータシステム及び方法
US5963982A (en) Defragmentation of stored data without pointer indirection
GB2446071A (en) Method of dynamic memory management in an object oriented system
CN104079613A (zh) 用于多租户间共享应用程序对象的方法和系统
JPH08195093A (ja) 不揮発性メモリのファイル管理装置
EP0439920A2 (en) System and method for memory management in a microcomputer
JP2004295889A (ja) データ処理システム内での処理タスクの実行を制御する方法および装置
JPH0363739A (ja) リスト処理方式
JP3555456B2 (ja) フラッシュ型メモリの管理装置
US7039664B2 (en) Combining entries in a card object table
JP2920660B2 (ja) ガーベッジコレクションシステムにおけるアクセス可能なオブジェクトの判別方法
JPH1196779A (ja) フラッシュ型メモリ,その管理方法,記憶装置,コンピュータシステム
JPH113105A (ja) プログラマブルコントローラのプログラミング装置
JPH0271342A (ja) メモリ管理装置
JP2994138B2 (ja) 対話処理システムにおけるカタログの変数管理方法
JPH05241936A (ja) ガーベッジコレクション処理方式及びその記憶装置
EP0430668A2 (en) Method and system for reclaiming unreferenced computer memory space
CN121722440A (zh) 一种基于地址同源映射的Direct3D 12描述符兼容方法
JPH01175040A (ja) 領域割当て方式
JPH0218637A (ja) メモリ管理方法
CN120704598A (zh) 命令处理方法、装置、电子设备及存储介质