JPS59117649A - Reference counter system - Google Patents
Reference counter systemInfo
- Publication number
- JPS59117649A JPS59117649A JP22651182A JP22651182A JPS59117649A JP S59117649 A JPS59117649 A JP S59117649A JP 22651182 A JP22651182 A JP 22651182A JP 22651182 A JP22651182 A JP 22651182A JP S59117649 A JPS59117649 A JP S59117649A
- Authority
- JP
- Japan
- Prior art keywords
- cell
- counter
- cells
- memory
- pointer
- 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
Landscapes
- Devices For Executing Special Programs (AREA)
Abstract
Description
【発明の詳細な説明】
(1)発明の技術分野
本発明はガーベッジコレクションに用いるリファレンス
カウンタ方式に関するものである。DETAILED DESCRIPTION OF THE INVENTION (1) Technical Field of the Invention The present invention relates to a reference counter method used for garbage collection.
(2) 従来技術と間眺点
1つのセルが複数のセルから参照される可能性のあるセ
ル連結構造でこの構造に対する処理の過程で一部のセル
が不要になシそれを再生して使用したい場合不要セルの
回収を行なうことをカーペッジコレクションと呼ぶ。(2) Comparison with the prior art In a cell-connected structure in which one cell may be referenced by multiple cells, some cells become unnecessary during the process of processing this structure, and are recycled and used. Collecting unnecessary cells when desired is called carpet collection.
セルがポインタによって連絡した構造でポインタが片方
向にしか張られていないたとえばff11図の場合を考
える。第1図においては各セルはポインタが片方向にし
か張られておらず各セルで2分岐されている・。なお図
において斜線を施こした部分は末端のノードを示す。こ
の場合1つのセルは他のセルをポインタて指す(指さな
い場合もある)と同時に他のセルからも指されている(
セル以外から指されていることもある)、1つのセルの
連結構造はこのうちの1つないし幾つかのセルが処理系
から指されている。これらのセルおよびこれに直接間接
につながるセルは使用中であると見られる。Consider, for example, the case of diagram ff11 in which cells are connected by pointers and the pointers are stretched in only one direction. In Figure 1, each cell has a pointer pointing in only one direction, and each cell has two branches. Note that the shaded portion in the figure indicates the terminal node. In this case, one cell points to another cell (it may or may not point to it) and is also pointed to by the other cell (
In a connected structure of one cell, one or several of these cells are pointed to by the processing system. These cells and the cells that are directly or indirectly connected to them are considered to be in use.
この連結構造においであるセルのポインタが切離されそ
のセルおよびそれに直接、間接につながるセルの一部が
他のセル、処理系から指されず遊離した場合、これらの
セルは使用済と見なされとれらがガーベッジコレクショ
ンの対象となる。In this connected structure, if the pointer of a cell is disconnected and that cell and some of the cells directly or indirectly connected to it become free and are not pointed to by other cells or the processing system, these cells are considered used. These are subject to garbage collection.
今メモリセルの中のあるセルに注目しこれが使用済のセ
ル(ガーベッジ;ごみ)であるがどうかを判断しようと
する場合このセルが他のセル(!たは処理系)からポイ
ンタで指されているか否かを調べればよいととに7Th
るが、ポインタが片方向にしか張られていない場合今注
目しているセルが幾つのセルから指されているかを知る
ことが困難である。そこで各セルにカウンタ會付随させ
セル連結構造内であるセルとセルの間に新らしいポイン
タ1に1つ張るごとにそのポインタで指される側のセル
のカウンタを増加させ逆にポインタが削除されるごとに
カウンタを減少させてこれによって任意のセルが他から
指されているか否かを知る方法が考えられる。このカウ
ンタをリファレンスカウンタと称し、これを用いたガー
ベッジコレクション方式位既に提唱されている。If you are looking at a certain cell in the memory cells and trying to determine whether it is a used cell (garbage), this cell is pointed to by a pointer from another cell (! or processing system). I wish I could find out if there is one.7Th
However, if the pointer is extended in only one direction, it is difficult to know how many cells are pointing to the cell of interest. Therefore, a counter is attached to each cell, and each time a new pointer 1 is placed between cells in the cell connection structure, the counter of the cell pointed to by that pointer is increased, and conversely, the pointer is deleted. One possible method is to decrement a counter each time the cell is accessed, thereby determining whether or not a given cell is being pointed to by another cell. This counter is called a reference counter, and a garbage collection method using this counter has already been proposed.
ガーペッジコレクシ冒ンの方式には他にセル連結構造に
対する処理?暫く停止しその間にメモリ中の使用中のセ
ルにマークをつけそれが完了した後マークがついていな
いセルを全てガーベッジとして集める方法があるがこの
方法は本来の処理を一時中断しなければならない問題点
がある。これに対してリファレンスカウンタを用いる方
式では処理系による処理と並列してガーベッジコレクシ
目ンを行なえるという利点がある。しかしこのりファレ
ンスカウンタ全用いる方式にもリファレンスカウンタの
オーバーフローの開明が従来解決されていなかった。こ
れは通常各セル内にとられるカウンタのためのビット数
が固定されており、このビット数で表現できる匝を越え
た1直ケ表現しなければならない場合対処が不可能であ
る。Is there any other processing for cell-connected structures in the Garpedge collection method? There is a method of stopping for a while, marking cells in use in memory during that time, and collecting all unmarked cells as garbage after the process is complete, but this method has the problem that the original processing must be temporarily interrupted. There is. On the other hand, the method using a reference counter has the advantage that garbage collection can be performed in parallel with processing by the processing system. However, even with this method in which all reference counters are used, the overflow of the reference counter has not yet been solved. Usually, the number of bits for the counter taken in each cell is fixed, and it is impossible to deal with this when it is necessary to directly represent more than the number of bits that can be expressed by this number of bits.
(3) 発明の目的
本発明はか\る従来の欠点にかんがみガーベッジコレク
ションにおける各セルに設けられたりフアレンスカウン
タのオーバーフローの問題を解決したりファレンスカウ
ンタ方式を提供することを目的とするものである。(3) Purpose of the Invention In view of the conventional drawbacks, the present invention aims to solve the problem of overflow of the reference counter provided in each cell in garbage collection, and to provide a reference counter method. be.
(4) 発明の構成
この目的は本発明によれば1つのセルが複数のセルから
参照される可能性のあるセル連結構造で、該構造に対す
る処理の過程で一部のセルが不要になりそれを再生して
使いたい場合その不要セルの回収を行なうガーベツジコ
レクションにおいて前記各セルにリファレンスカランフ
ケ付随させ、前記セルの連結構造P1で、あるセルとセ
ルの間に新らしいポインタを1つ張るごとにそのポイン
タで指される側のセルのカウンタを増加させ前記ポイン
タが削除されるごとに前記カウンタ全減少させそれによ
って任意のセルが他から指されているか否かを知る方式
において、@記すファレンスカウンタを必要に応じて拡
張縮少することを特徴とするりファレンスカウンタ方式
を提供することによって達成される。(4) Structure of the Invention According to the present invention, the object is to provide a cell connection structure in which one cell may be referenced by multiple cells, and in the process of processing the structure, some cells may become unnecessary. If you want to regenerate and use the unnecessary cells, attach a reference pointer to each cell during garbage collection to collect the unnecessary cells, and add a new pointer between a certain cell in the cell connection structure P1. In this method, the counter of the cell pointed to by the pointer is incremented each time the pointer is deleted, and the counter is fully decremented each time the pointer is deleted.Thereby, it is possible to know whether any cell is pointed to by another cell or not. This is achieved by providing a reference counter method characterized in that the reference counter is expanded or contracted as necessary.
(5)発明の実施例
以下本発明の第1f)実施例を図面によって詳細に説明
する。(5) Embodiments of the Invention Below, a 1f) embodiment of the present invention will be described in detail with reference to the drawings.
第2図は本発明のシステムの構成金泥し、同図中入出力
関係は省略しである。セルの連結構造はメモリ2門の−
mk占める領域に存在する、通常中央処理装輪1がメモ
リ2ケアクセスしセル連結構造に対する処理を行なう。FIG. 2 shows the configuration of the system of the present invention, and the input/output relationships are omitted in the figure. The cell connection structure consists of two memory gates.
The normal central processing unit 1 existing in the area occupied by mk accesses two memories and processes the cell connection structure.
一方ガーペツジコレクションを行なうG C(Garb
age Co11eetion)プロセッサ3はこれと
並列してメモリ内のセル領域にあるセルラ調ベガーベツ
ジであればこれを回収し未使用セルであるフリーセルの
列に加える作業を行なう。中央処理袋@lとGCプロセ
ッサ3け同時にメモリの同一アクセス単位をアクセスす
ることがないように制御される。アクセスの単位とじて
こ\ではページ1!f:54Fえる。これケ第3図仏)
に示す。¥3図(Nにおいて4はフリーセルを示すピッ
〜ト25はカウンタを示し、6は1つのセル全示す、こ
のセルの一般の構造を第3図(Blに示す。すなわち1
つのセルは2つのポインタ7a、7bと3ビツトのカウ
ンタ5どフリーセルを示すビット4とからなる。On the other hand, Garb
In parallel with this, the processor 3 collects cellular style beggar beds in the cell area of the memory and adds them to the column of free cells, which are unused cells. It is controlled so that the central processing bag @l and the three GC processors do not access the same access unit of memory at the same time. The unit of access is page 1! f: 54F. Koreke Figure 3 Buddha)
Shown below. Figure 3 (In N, 4 indicates a free cell, pit 25 indicates a counter, and 6 indicates one entire cell. The general structure of this cell is shown in Figure 3 (Bl. That is, 1
One cell consists of two pointers 7a and 7b, a 3-bit counter 5, and a bit 4 indicating a free cell.
セル構造を新しく構成するときまたは既存のセル構造に
新らしいセル全追加するとき、処理系はフリーセルのリ
ストから未使用セルのセルを1つとシ出してこれヲ使用
する。各セルはフリーセルの段階でフリーセルを示すビ
ット4が1“でありカラyりの直が%l“である。セル
が新らしく用いられ他から1つのポインタで指される時
点で7リーセルを示すビット4は一〇“と彦りカウンタ
5の匝は%l“どなる。以後使用中のセル上指すポイン
タの増減に合わせてカウンタの1直を更新していく。When configuring a new cell structure or adding all new cells to an existing cell structure, the processing system selects one unused cell from the free cell list and uses it. In each cell, bit 4 indicating a free cell is 1" at the free cell stage, and the color correction is %l". When a cell is newly used and pointed to by another pointer, bit 4 indicating 7th cell changes to 10" and the counter 5's value becomes %l". Thereafter, the first shift of the counter is updated in accordance with the increase/decrease in the pointer pointing to the cell in use.
各セルのカウンタは最大亀6”迄のlit示す、セルを
指すポインタの数カい6“を超えたときそのセルのカウ
ンタの11ハは箪7“とされそのセルの直後にカウンタ
専用のセルが連結される。これを第4図(4)、■)に
示す。第4図匹)はセル八を指すポインタの数カい6”
以下の場合を示し、第4図(I3)はポインタの数が1
6“?越えた場合を示す。第4図(13)においてカウ
ンタ専用セル8の構造は一般セルのポインタJ(7a)
の部分をカウンタとしたものである。従って一般セルと
同一のフリーセルフ)リストから散出したフリーセルを
用いてカウンタ専用セルとすることが可能である7また
各ページにあらかじめカウンタ専用セル用のフリーセル
を用意しておき各ページ内で起った一般セル内カウンタ
のオーバークローに対して同一ページ内のセルを優先的
に用いるようにすれば金側なページフォールトを防ぐこ
とができる。但し水弟1の実施例ではこの方式は用いな
い。The counter of each cell shows up to 6" lit. When the number of pointers pointing to the cell exceeds 6", the counter of that cell becomes 7", and immediately after that cell is a cell dedicated to the counter. This is shown in Figure 4 (4), ■). Figure 4) is the number of pointers pointing to cell 8.
The following cases are shown, and in Figure 4 (I3), the number of pointers is 1.
6"? is exceeded. In FIG. 4 (13), the structure of the counter-only cell 8 is the pointer J (7a) of the general cell.
The part is used as a counter. Therefore, it is possible to use free cells scattered from the free cell list (which is the same as the general cell) as a counter-only cell. By preferentially using cells within the same page in response to the overcrow of the general cell counter that occurred in , it is possible to prevent serious page faults. However, this method is not used in the embodiment of Suiden 1.
! 4 kl(f31においてセルAは7本以上のポイ
ンタから指されておりカウンタ専用セル8を伴なってり
る。この状態でセルAのカウンタの@はす“となってお
り、これはセルAi示すポインタの本数かカウンタ専用
セル8上に表示されていることを示している。セルAに
続くカウンタ専用セル上の拡張カウンタ部にはセルAを
指すポインタ数が表示されている。カウンタ専用セル上
のカウンタ(一般セルのカウンタと同じビット位狸にあ
るカウンタ)のl[は東]“である、これはこのカウン
タ専用セルはセルA以外から指されることがないからで
ある。、誰1理的にはセルAK続くセルVまセルBであ
る。! 4 kl (In f31, cell A is pointed to by seven or more pointers, and is accompanied by a counter-only cell 8. In this state, the counter of cell A is marked @, which means cell Ai This indicates that the number of pointers pointing to cell A is displayed on the counter-only cell 8.The extended counter section on the counter-only cell following cell A displays the number of pointers pointing to cell A.Counter-only cell The above counter (the counter in the same bit position as the general cell counter) is "east", because this counter-only cell is never pointed to by anything other than cell A. 1. Logically speaking, cell AK and subsequent cell V are cell B.
W441jA(B)においてセルAを指すポインタ数カ
減少し噺6“以下となる時カウンタ専用セルは切離され
このセル自体を指すポインタ数を表示するカウンタ直は
気0〃となシガーベッジコレクションによ−て噴1収さ
れるのを待つことになる。セルの結合状況id′gA4
図(2)のように変化する。使用中の各セルはカウンタ
の値が嘔0“となっπ時点でガーベッジになったと見な
されガーベッジコレクションによる回収?まっ。ガ〜ベ
ッジコレクションを行なうプロセッサ3はメモリ21り
をアドレス順に調べてゆき、ガーベッジを発見するとこ
のセルのカウンタ@に%0“フリーセル?示す−1“と
じてフリーセルのリストの先頭につなぐ。ガーベッジコ
レクションの7ζめのアドレス順のセル調亘において発
見したガーペッジセルにつソくセルがサラにガーベッジ
セルである確率が烏い様なセル連結構造ではアドレス順
の調査會一時中断してポインタがさすJl’lにセルを
11Jべてゆくこともでへる。以上のフリーセル管理で
ページ毎の管理を行なえば処理効率がさらに向上する可
能性があ仝。In W441jA(B), when the number of pointers pointing to cell A decreases and becomes less than 6", the counter-only cell is separated and the counter that displays the number of pointers pointing to this cell itself becomes 0" and becomes a cigar bed collection. Therefore, we will have to wait for the eruption to be completed.Cell connection status id'gA4
It changes as shown in Figure (2). Each cell in use is considered to have become garbage at the point when the counter value becomes 0" and is collected by garbage collection. The processor 3, which performs garbage collection, examines the memory 21 in address order, When garbage is found, the counter @ of this cell is set to %0 “Free cell? -1" and connect it to the top of the list of free cells. Cells that are related to garbage cells found during garbage collection in the 7ζth address order are cells with a high probability of being garbage cells. In the concatenated structure, it is possible to temporarily suspend the investigation session in address order and read 11J cells to the Jl'l pointed by the pointer.If the above free cell management is performed on a page-by-page basis, processing efficiency will be further improved. There's a possibility.
拡張カウンタのピッ)lffiは一般に十分であυ通常
の駿7合これがオーバーフローすZ)ことは少ないと考
えられるがオーバーフローし7たj、り4合は処理系が
処理全中断してユーザーに知らせる。The extension counter's fffi is generally sufficient, and if it is normal, it will overflow.Z) It is thought that it is unlikely that it will overflow, but if it does, the processing system will interrupt the entire process and notify the user. .
前記第1の実施例でカウンタ専用セルの拡張カウンタが
オーバーフローし7た場合に対処するため拡張カウンタ
のうちの1ビツトヲカウンタ専用セルの継itk示すビ
ットとして用いることが考えられる。これを第2の実施
例とする。この方式ではカウンター用セルは複数個連結
でき、よ、シ後に連結されるカウンタ専用セルの拡張カ
ウンタ部がより上位のビットを表示するようにする。In order to deal with the case where the extended counter of the counter-dedicated cell overflows and reaches 7 in the first embodiment, it is conceivable to use one bit of the extended counter as a bit indicating the itk of the counter-dedicated cell. This will be referred to as a second embodiment. In this method, a plurality of counter cells can be concatenated, and the extended counter section of the counter-dedicated cell that is concatenated afterward displays the more significant bits.
第2図におけるメモリ2とプロセッサ3を含めた詳#1
なブロック図を第5図に示す。第5図においてMl、M
2はメモリである。メモリM2はポインタ部分、メモリ
M2はフリーセルを示すビットとカウンタ部分である。Details #1 including memory 2 and processor 3 in Figure 2
A block diagram is shown in Figure 5. In Figure 5, Ml, M
2 is a memory. The memory M2 is a pointer section, and the memory M2 is a bit indicating a free cell and a counter section.
ま;q C1,clはメモリ八41のアドレスレジスタ
である。メモリMiは2つの領域(領域−〇“、領域型
]“)に分かれてお夛アドレスレジスタC1,Glはそ
れぞれ異なる領域を同時にアドレスできる。同時に同一
の領域をアドレスしようとするとレジスタC1の方が優
先される。C1, cl is the address register of memory 841. The memory Mi is divided into two areas (area-〇", area type]"), and the multiple address registers C1 and Gl can address different areas simultaneously. If attempts are made to address the same area at the same time, register C1 has priority.
レジスタC1でアドレスした値はレジスタC2に、レジ
スタGlでアドレスした匝はレジスタG2に読出される
、レジスタC5は中央処理袋!irlからメモリMlへ
書込むための書込みレジスタである、C3,G3はメモ
リM2のアドレスレジスタである。メモリM2は2つの
領域(Mlに対応している)に分かれておりレジスタC
3,G3hそれぞれ異なる領域1に同時にアドレスでき
る。同時に同一の領域をアドレスしようとするとC3の
方が優先される。レジスタC3でアドレスしり籠はレジ
スタC4に、レジスタG3でアドレスした値ハレシフタ
G4に読出される。レジスタC6ti中央処理装猿から
メモリMθへ書込むための書込みレジスタであり、また
レジスタG5.G5はそれぞれ領域%0#9%l#のフ
リーセルリストの先頭を指すレジスタである。The value addressed in register C1 is read out to register C2, the value addressed in register Gl is read out to register G2, and register C5 is the central processing bag! C3 and G3, which are write registers for writing from irl to memory M1, are address registers of memory M2. Memory M2 is divided into two areas (corresponding to Ml), and register C
3 and G3h can address different areas 1 at the same time. If attempts are made to address the same area at the same time, C3 has priority. The address basket in register C3 is read out to register C4, and the value addressed in register G3 is read out to shifter G4. Register C6ti is a write register for writing from the central processing device to memory Mθ, and register G5. G5 is a register that points to the head of the free cell list of areas %0#9%l#, respectively.
レジスタG7.G8はそれぞれ領域用“、噺1“でガー
ベッジセルをさがすために各領域のセルを1つ1つアド
レスしていくためのレジスタ、墳たC9.Gio’dそ
れぞれ10II 、 z 1“に対するアクセスでレジ
スタGJ−G4のバックアップの次めのスタックである
。その結線は図示していない。Register G7. C9. Gio'd is the next stack after the backup of registers GJ-G4 by accessing 10II and z1, respectively.The connections are not shown.
以下動作を説明する7
中央処理装置】とGCブロセッザ3は同期したクロック
で動作しそれぞれ独立にメモIJ Ml 、 M2にア
クセスできる。メモIJ Ml 、 M2はおのおの2
つの領域に分かれており中央処理装置とプロセッサはメ
モIJ M) 、 M2のおの卦のにおいて異なる2つ
の領域に対してなら同時にアクセス出来る。、イ1−領
域にアクセスしようとする場合は中央処理装置の方が優
先される、またメモリMlとM2へのアクセスは独立に
行なえる。すなわち、例えば中央処理装置からメモリM
lのあるアドレスにアクセスして°いるときGCプロセ
ッサ(または中央処理装置)からメモリM2の別のアド
レスへアクセスできる。The central processing unit 7 and the GC processor 3, the operations of which will be described below, operate with synchronized clocks and can independently access the memories IJ Ml and M2. Memo IJ Ml, M2 are each 2
It is divided into two areas, and the central processing unit and processor can simultaneously access two different areas in each of the memo IJM) and M2. , when attempting to access the A1-area, the central processing unit has priority, and the memories M1 and M2 can be accessed independently. That is, for example, from the central processing unit to the memory M
While accessing one address in memory M2, the GC processor (or central processing unit) can access another address in memory M2.
中央処理装置からメモリに対して行なうアクセスについ
て説明する6中央処理装電からメモリにアクセスする場
合本a的な内容はメモリλ41に入っている。メモリM
2にFirそのセルがフリーセルか否かを示す情報」と
「そのセルがいくつのポインタから指されているかを示
すカウンタ」が格納されているから中央処理装置からメ
モリM2へのアクセスはセル間のポインタの張替えおよ
びそれに関連する処理を行なう時しか行なわれない。Explanation of Access to Memory from the Central Processing Unit 6 When accessing the memory from the central processing unit, the main contents are stored in the memory λ41. Memory M
Since Fir information indicating whether the cell is a free cell or not and a counter indicating how many pointers point to the cell are stored in memory M2, access from the central processing unit to memory M2 is performed between cells. This is only performed when resetting the pointer and performing related processing.
したがって中央処理装置は通常レジスタC1゜C2,C
5i用いてメモリMJにアクセスしている。ポインタの
張替えおよびそれに関連する処理を行なう場合C3,C
4,C6を用いてメモリM2にアクセスする。通常のセ
ルに対するアクセスは本発明において本質的でない、、
また種々の場合が考えられるのでこ\では言及しない、
問題はポインタの張替えが発生する場合のメモIJM、
l、M2に対するアクセスである。ポインタの張替えに
伴う処理については次の2つの場合に分けて考えること
かで籾る。Therefore, the central processing unit usually has registers C1゜C2,C
5i is used to access memory MJ. When performing pointer resetting and related processing, C3, C
4, access memory M2 using C6. Access to normal cells is not essential to the invention.
Also, since various cases can be considered, I will not discuss them here.
The problem is the memo IJM when the pointer is changed,
This is an access to M2. The process associated with pointer resetting can be considered in the following two cases.
(il カウンタ専用セルの増減がある場合(lfl
(il以外の場合
前記fil 、 (ulは初めから中央処理装置として
はどちらの処理倉するか決めることができず関係するカ
ウンタのfiir調べて処理を決足する。フリーセルを
1つ取ってセル連結構造に加える場合中央処理装置はメ
モリMl上でその処理を行ないそれに伴ってメモリM2
上で該当するアドレスの内容の変更を行なう。フリーセ
ルを取り出す処理に関係なくポインタの張換えを行なう
場合それに伴ってカウンタの瞳が変更されるセルのカウ
ンタの饋がまず参照される。すなわちメモリM2上の該
当するアドレス′y)l[がレジスタC71へどし出さ
れこれが中央処理装置から読出される。(il If there is an increase or decrease in the number of counter-only cells (lfl
(For cases other than il, the above fil, (ul is unable to decide which processing bay to use as a central processing unit from the beginning, so it checks the fiir of the related counter to decide the processing.It takes one free cell and When adding to the connected structure, the central processing unit performs the processing on the memory Ml and accordingly the memory M2.
Change the contents of the corresponding address above. Regardless of the process of extracting free cells, when the pointer is rewired, the counter position of the cell whose counter pupil is changed accordingly is first referenced. That is, the corresponding address 'y)l[ on the memory M2 is transferred to the register C71 and read out from the central processing unit.
第6図はセルAからHi指すポインタをセルAからセル
c2指丁ように張り換える場合の例であるがこの例によ
って説明するとまずセルBのカウンタが訓べられる。セ
ルBのカウンタが気6”以下であればこの直が東l#減
じられる。セルBのカウンタが亀7〃であればセルBの
後に続くカウンタ専用セルの拡張カウンタ部の値が調べ
られる。(この場合メモリMlへアクセスされる。)拡
張カウンタ部のl!75い8#以上の場合はその値が1
減じられて再び格納される。拡張カウンタ部の@妙い7
“の場合はカウンタ専用セルはセルBから切シ離されセ
ルBはカウンタ専用セルが指していたセルを指しセルB
のカウンタの直が%6“ とされる、つぎにセルAから
セルBへのポインタがセルAからセルCへ張り換えられ
セルCのカウンタの更新が行なわれる。セルCのカウン
タのn1tt−調べこれが啄5“以下ならこの[t−%
lN増し再格納する1%6“ならセルCのカウンタの[
tt7“とじた後セルCのつぎにカウンタ専用セルが挿
入接続されその拡張カウンタの匝がり1とされる。セル
Cのカウンタ匝が%7〃であれば既に連結されているカ
ウンタ専用セルの拡張カウンタ部の値が蟻l“増される
。FIG. 6 shows an example in which the pointer pointing Hi from cell A is changed from cell A to cell c2. To explain this example, first the counter of cell B is learned. If the counter of cell B is 6" or less, this value is decremented. If the counter of cell B is 7", the value of the extended counter section of the counter-only cell following cell B is checked. (In this case, the memory Ml is accessed.) If the extended counter part l!75 is 8# or more, the value is 1.
is decremented and stored again. Expanded counter section @ Myoi 7
In the case of ", the counter-only cell is separated from cell B, and cell B points to the cell that the counter-only cell was pointing to.
Then, the pointer from cell A to cell B is transferred from cell A to cell C, and the counter of cell C is updated. Check n1tt of the counter of cell C. If this is less than 5", this [t-%
If lN is increased and re-stored by 1%6, then the counter of cell C is [
tt7" After closing, a counter-only cell is inserted and connected next to cell C, and its expanded counter is set to 1. If the counter value of cell C is %7, the already connected counter-only cell is expanded. The value of the counter section is incremented by "1".
以上で各セルのポインタ部へのアクセスはメモ17 M
]に対して行なわれ「フリーセルを示すビット」とカ
ウンタへのアクセスはメモリM2に対して行なわれる。With the above, you can access the pointer part of each cell using Memo 17 M
], and access to the "bit indicating free cell" and the counter is performed to memory M2.
つff[GCプロセッサからメモリへのアクセスについ
て説明する。ff [Access from the GC processor to memory will be explained.
GCプ目セッサは通常メモリM2のカウンタ部を調ベカ
ウンタの饋が10′′であるアドレスが見つかるとその
アドレスに対応するセルをフリーセルにつなぐためメモ
リMl、M2にアクセスする。The GC processor normally checks the counter section of the memory M2, and when it finds an address where the counter number is 10'', it accesses the memories M1 and M2 in order to connect the cell corresponding to that address to the free cell.
メモリに対するアクセスは各領域(領域%Q#。Access to memory is for each area (area %Q#.
%l“)で中央処理装置の方がプロセスよりも優先され
る1例えば中央処理装置がメモリMlの領域qIだけに
アクセスしているときGcプロセッサはメモリMlの領
域−1’、M2の領域別/l 、 % 3“に同時にア
クセスできるがメモリM1の領域隻o#には同時にアク
セスできない、したがってプロセッサは中央処理装置と
同じメモリ(MlとM2)の同じ領域にアクセスしよう
とするとそのサイクルではアクセスできずに待たされそ
の月2ないし数サイクル後に中央処理装置がアクセスし
ていなイ領域にアクセス−する。%l''), the central processing unit has priority over the process 1 For example, when the central processing unit is accessing only area qI of memory Ml, the Gc processor accesses area -1' of memory M1 and area qI of memory M2 separately. /l, %3", but not the area o# of memory M1 at the same time. Therefore, if the processor tries to access the same area of the same memory (Ml and M2) as the central processing unit, it will not be accessed in that cycle. After two or several cycles of that month, the central processing unit accesses the unaccessed area.
プロセッサによるメモリのガーベツジコレクションは領
域す“と領域11#に分けて行なわれ、別個に管理され
る。1つの領域に対するアクセスが(中央処理装置から
のアクセスと重なって)阻止されるとそのアクセスは中
断され(次の再開まで保留され)他の領域に対する処理
が開始(または中断されていたものが再開)される。す
なわちGCプロセッサはできるだけ中央処理装置がアク
セスしていないメモリ領域をアクセスするようにコント
ロールされる。例えばGCプロセッサがマイクロプログ
ラムコントロールであるとすれば領域鷺0“に対するア
クセス領域%l〃に対するアクセスは各々別個の制御記
憶装置からなる制御系によシ制御され中央処理装置から
のアクセスと重ならない方のアクセスが行なわれるよう
に制御される。Garbage collection of memory by the processor is performed in areas 11# and 11#, which are managed separately.If access to one area is blocked (at the same time as an access from the central processing unit), that access will be canceled. is suspended (suspended until the next restart) and processing for other areas is started (or what was suspended is resumed).In other words, the GC processor tries to access memory areas that are not accessed by the central processing unit as much as possible. For example, if the GC processor is microprogram controlled, access to the access area %l for area 0" is controlled by a control system consisting of separate control storage devices, and is controlled by the central processing unit. Control is performed so that the access that does not overlap with the access is performed.
GCプロセッサの動作をさらに詳細に述べる。The operation of the GC processor will be described in more detail.
初めGCプロセッサが領域lにアクセスするとする。レ
ジスタG8に領域lの先頭アドレスがセットされこのf
[tlセル分ずつ増加させながらレジスタG3にセット
していき各セルのカウンタのli[を調べていく。カウ
ンタの匝力い0“であるセルを発見するとそのセルにつ
ながるセルのカウンタの値を減する処理をしだ後(中央
処理装置からのアクセスの場合と同様)、カウンタの値
% Q # を%I′ としフリーセルを示すビット
を″に1“とじこのセルを領域−1“のフリーセルにつ
なぐ。フリーセルの先頭は(領域嘱l′では)レジスタ
G6によって指されているので新しいセルケ7リーセル
の先頭につないだ後レジスタG6は新しいフリーセルの
先頭を指すように制御される。Assume that the GC processor first accesses area l. The start address of area l is set in register G8, and this f
[tl is set in the register G3 while incrementing each cell, and the counter li[ of each cell is checked. When a cell whose counter strength is 0 is found, the counter value of the cell connected to that cell is decremented (as in the case of access from the central processing unit), and the counter value % Q # is %I', set the bit indicating the free cell to 1, and connect this cell to the free cell in area -1. Since the beginning of the free cell is pointed to by the register G6 (in area 1'), after the new cell is connected to the beginning of the new cell, the register G6 is controlled to point to the beginning of the new free cell.
第5図においてQlはレジスタG4の値を入力し更新し
て(シナい場合もある)出方する回路、G2.G3はそ
れぞれレジスタC4tG4の内容金判足する回路、G4
.Qbfqレジスタシフ、G8の値を更新する回路であ
る。G6はレジスタG2.G5゜G6の出力匝を入力し
更新して(しない場合もある)出力する回路である。第
5図において制御回路は省略されている。In FIG. 5, Ql is a circuit that inputs and updates the value of register G4 (in some cases, it is incorrect), and G2. G3 is a circuit that adds the contents of registers C4 and G4, and G4
.. This is a circuit that updates the value of Qbfq register shift and G8. G6 is register G2. This is a circuit that inputs the outputs of G5 and G6, updates them (sometimes not), and outputs them. In FIG. 5, the control circuit is omitted.
ガーベツジセルをフリーセルにつなぐ処理が終了すると
プロセッサは再びメモリM2に対するアクセスを開始し
カウンタ直がqQIとな。ているセルをさがしていく。When the process of connecting the garbage cell to the free cell is completed, the processor starts accessing the memory M2 again, and the counter value becomes qQI. Search for the cell that is.
(61発明の効果
本発明によればメモリのセル領竣全体の中でリアレンス
カウンタが占める領域を少なくおさえ、かつガーベッジ
コレクションを中央処理装置によるセル連結構造の処理
と並行して行なうことができる7その結果処理全体がガ
ーベッジコレクションのために長く中断することを防止
することができる。(61 Effects of the Invention According to the present invention, the area occupied by the realness counter in the entire memory cell area can be kept small, and garbage collection can be performed in parallel with the processing of the cell connection structure by the central processing unit. 7. As a result, the entire process can be prevented from being interrupted for a long time due to garbage collection.
第1図はセル、の連納棺造を示す図、第2図は本発明に
か\るシステム構成を示すブロック図、早3図はメモリ
のアクセスの単位の構造を示す図、第4図は各セルのカ
ウンタの匝とセル間の接続の関係を示す図、第5図は第
2図のブロック図における部分的詳細図、@6図はセル
を指すボイ/りの接続を張り換える場合の実施例ケ示す
。
図においてlは中央処理装置、2はメモリ、3はGCプ
ロセッサ、4は7リーセルを示すビット。
5はカウンタ、6はページ、7a 、7bはポインタ、
8はカウンタ専用セルをそれぞれ示す。Fig. 1 is a diagram showing the serial storage structure of cells, Fig. 2 is a block diagram showing the system configuration according to the present invention, Fig. 3 is a diagram showing the structure of the memory access unit, and Fig. 4 is a diagram showing the structure of the unit of memory access. Figure 5 is a partial detailed diagram of the block diagram in Figure 2, and Figure 6 is a diagram showing the relationship between the counters of each cell and the connections between cells. An example is shown. In the figure, l is a central processing unit, 2 is a memory, 3 is a GC processor, and 4 is a bit indicating a 7-receive cell. 5 is a counter, 6 is a page, 7a and 7b are pointers,
8 indicates a counter-dedicated cell, respectively.
Claims (1)
ル連結構造で、該構造に対する処理の過程で一部のセル
が不要にな)それを再生して使いたい場合その不要セル
の回収を行なうガーベッジコレクションにおいて前記各
セルにリファレンスカウンタを付随させ、前記セルの連
結構造内で、あるセルとセルの間に新らしいポインタi
1つ張るごとにそのポインタで指される側のセルのカウ
ンタを増加させ前記ポインタが削除されるごとに前記カ
ウンタを減少させそれによって任意のセルが他から指さ
れているか否かを知る方式において、前記リファレンス
カウンタを必要に応じて拡張縮少することを特徴とする
りファレンスカウンタ方式。In a cell-linked structure where one cell may be referenced by multiple cells, if some cells become unnecessary in the process of processing the structure and you want to regenerate and use them, collect the unnecessary cells. In the garbage collection to be performed, a reference counter is attached to each cell, and a new pointer i is added between a certain cell in the connected structure of the cells.
Each time a pointer is added, the counter of the cell pointed to by the pointer is incremented, and each time the pointer is deleted, the counter is decremented, thereby determining whether any cell is being pointed to by another cell. . A reference counter method, characterized in that the reference counter is expanded or contracted as necessary.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP22651182A JPS59117649A (en) | 1982-12-25 | 1982-12-25 | Reference counter system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP22651182A JPS59117649A (en) | 1982-12-25 | 1982-12-25 | Reference counter system |
Publications (1)
Publication Number | Publication Date |
---|---|
JPS59117649A true JPS59117649A (en) | 1984-07-07 |
Family
ID=16846265
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP22651182A Pending JPS59117649A (en) | 1982-12-25 | 1982-12-25 | Reference counter system |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPS59117649A (en) |
-
1982
- 1982-12-25 JP JP22651182A patent/JPS59117649A/en active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2758311B2 (en) | Log file control method in complex system | |
JP2770603B2 (en) | Parallel computer | |
JPH0423144A (en) | Journal system | |
JPH02234242A (en) | Partial write control system | |
EP1652079A2 (en) | Microcontroller with an interrupt structure having programmable priority levels with each priority level associated with a different register set | |
WO2000045261A1 (en) | Access control device and access method | |
JPS59117649A (en) | Reference counter system | |
JPS6336538B2 (en) | ||
JPH01214939A (en) | Single-chip microcomputer | |
JP2000215068A (en) | Multitask scheduling device | |
JP2590282B2 (en) | System execution history collection processing method | |
CN100371916C (en) | SCSI magnetic disc recording device and mehtod | |
JPS62151942A (en) | Task changing-over system | |
KR20060015917A (en) | Control system for controlling plural function block | |
JP2615046B2 (en) | Record addition processing method | |
CN116069389A (en) | MCU access system | |
JP3687525B2 (en) | I / O processing system and CPU processing stagnation avoidance method used therefor | |
JPS5979365A (en) | System for controlling history memory | |
JPH0343841A (en) | Fault information store system | |
JPS61193245A (en) | Memory control system | |
JPS62237539A (en) | Method and device for updating data base | |
JPS6273341A (en) | Information processor | |
JPS59114657A (en) | Memory interface circuit of microcomputer | |
JPS61249164A (en) | Timer device for multimicroprocessor system | |
JPS5857699A (en) | Access controlling system of memory loop |