JPS61105653A - 接続されたユ−ザのプロセツサとは独立の並列ガ−ベツジコレクシヨン機能を有するコンピユ−タ記憶装置 - Google Patents

接続されたユ−ザのプロセツサとは独立の並列ガ−ベツジコレクシヨン機能を有するコンピユ−タ記憶装置

Info

Publication number
JPS61105653A
JPS61105653A JP60167863A JP16786385A JPS61105653A JP S61105653 A JPS61105653 A JP S61105653A JP 60167863 A JP60167863 A JP 60167863A JP 16786385 A JP16786385 A JP 16786385A JP S61105653 A JPS61105653 A JP S61105653A
Authority
JP
Japan
Prior art keywords
block
user
processor
pointer
storage device
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
JP60167863A
Other languages
English (en)
Other versions
JP2564483B2 (ja
Inventor
ドナルド ダブリユ.オツクスリイ
テイモシイ ジエイ.マツクエンテイー
サテイツシユ エム.サツテ
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.)
Texas Instruments Inc
Original Assignee
Texas Instruments Inc
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 Texas Instruments Inc filed Critical Texas Instruments Inc
Publication of JPS61105653A publication Critical patent/JPS61105653A/ja
Application granted granted Critical
Publication of JP2564483B2 publication Critical patent/JP2564483B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • 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
    • 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
    • G06F12/0261Garbage collection, i.e. reclamation of unreferenced memory using reference counting
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99956File allocation
    • Y10S707/99957Garbage collection

Abstract

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

Description

【発明の詳細な説明】 産業上の利用分野 本発明は、記憶装置における改良に関わり、特に結合さ
れるニーずのプロセッサに関係なく、一般的に言って自
動記憶動作そして特にはガーベツジ コレクションおよ
び参照計数を可能にする型の記憶装置における改良に関
する。
従来技術 記憶装置管理システムの開発は、多くの関連の研究分野
と共に長い歴史を有している。ここ数年の間、メモリ構
造の割当ておよび割当解除に対して非常に大きな関心が
寄せられている。これに関連の多くの記憶装置の構造が
、マサチュ七ツツ州所在のAddison −Wesl
ey社発行の11. M、 Deitel著の「An工
ntroduction to Operating 
Systems J(1982年)、第7章に示されて
いる。他の主要な事項は同上社1968年発行のり、K
nuth著の「The Art of Compute
r Programming Jの第1巻の「Fund
amentalム1gorithms Jに論述されて
いる。
ここに開示する本発明は、主として、ガーベツジ コレ
クション(不要情報の整理)が行なわれる重ね管理メモ
リに関する。ここで重ね管理もしくはヒープ管理(He
ap Manage )とは考察下の記憶装置の1時的
秩序または大きさに関係なく、(明確Kまたは含蓄的K
)メモリに割当を行なったり割当を解除することを意味
する。また、ガーペッジ コレクションメモリとは、使
用可能なメモリを自動的に回収して、それにより、必要
に応じメモリの空間を有効に利用するために、次から次
へとメモリを再構成することができるメモリである。こ
のようなガーベツジ コレクション技術の背景ならびに
関連の背景資料に関しては、1981年9月発行の「C
omputing 5urveis JVol、 13
 、墓39頁341−367に掲載の00hen 、T
、著の「Garbage Co11ection of
 LinkedData 8tructures Jが
挙げられ、また1977年9月発行の[Massach
usetts工n5titute ofTechnol
ogy 、 Working Paper 111 J
掲載のP、B15hop著の「Garbage、Co1
1ection in a VeryLarge Ad
dress日pace Jにも開示しである。
人工知能の急速な発展と共に関心がもたれているのは、
例えば動的組織化を必要とする極めて大きく複雑な情報
を記憶保有するのに使用されるような謂ゆる「知識ペー
ス」と称される大型のデータ ペースの開発である。例
えば、「Prelimin−ary Report o
n IFifth Generation compu
ter8ys+tems 、工C0TJK所蔵のBuW
&、 M、他の「Know−1edge Ba5e M
echanism Jを参照されたい。このような考究
されているあるいは実施されている大型データベースの
例には、逐語的事件報告のような法律情報、特定の徴候
を示す病気の診断に用いられる医学的情報、アゾストラ
クト、請求範囲等等を含む成る種の特許情報を格納して
いるデータベースがある。このようなデータ ベースに
おいては、時として100万の単語や文字を探索して、
特定の記録(事件、特許、診断等々)を識別することが
しばしば望まれる。
現在、このような重ね割当てデータベース(Li5p指
示が−ベッジ コレクション データベースをも含む)
を実現するのに、  Li5pのような特定の計算機言
語ならびにそれよりも使用頻度は小さいがPa5cal
およびAdaが用いられている。
メモリの割当、割当解除、ガーペツジ コレクション(
不要情報整理もしくはちり集め〕およびコンパクション
(凝縮)が行なわれる伝統的なアーキテクチャにおいて
は、通常用いられている言語実行時間支援およびコンパ
イラが、ガーペツジフレクションおよびコンパクション
を司り、そして仮想記憶装置が設けられている場合には
、該仮想記憶装置の管理を司るのはハードウェアおよび
オペレーチング システムである。典型的に、オペレー
チング システムにおいては、例えば、通常、支援スト
レッジに対しページをどの様に変位するかを決焙するの
に5成る種の要求ページの最近最小使用(RLU )ス
キーマならびに1どのページが必要とされ、どのページ
が最早や必要とされないかを特定するためのガーベツジ
 コレクタが用いられている。
プログラマがしばしば出金う重要な問題の1つに、用い
られる特定のメモリの速度に直接関係がある個々のワー
ドに対するアクセス速度がある。
また記憶装置が後入れ先出しく LiIPO)で割当て
られなかったり、また一定の大きさでない場合には、割
当ての速度が困難な問題となっている。また、メモリの
ブロックが利用可能になる時点(これはプルグラムの及
ぶところではない、)と、仮想記憶空間のレディー大き
さが得られる時点との間の時間遅延がしばしば問題とな
る。と言うのは、ガーベツジ コレクションの費用は、
回収されるが一ペツジ量ではなく収集が行なわれるスペ
ースの大きさと共に増大するからである。最後に安全性
が重要な問題である。と言うのは、通常プログラムは、
プログラムまたはメモリの設計において故意かあるいは
過失で、記憶装置の実際の構造を無視したりデータ ブ
ロックの書過ぎ(overvrr−1te )や完全な
抹消が容易に起り得るからである。
本発明を用いることができる典型的な記憶装置としては
、例えば1984年6月12日付けの0xley他の米
国特許願(発明の名称: C0MPU’rFiRMEM
ORY 8YSTICM )ならびに1984年6月1
2日付けのThatLe他の米国特許願(発明の名称:
cOMPUT!1Jt  SY8TIIfM MMAB
IIazm() Av’I’OMムT工CMICMOR
YOPII:RATAOMS )各明細書に見ることが
できる。なお、これら米国特許願は双方共に本出願人に
譲渡されているものであり、その内容は、参考のために
本明細書に援用しである。
上記両米国特許願に記述されている型の典型的な記憶装
置ならびに関連のユーザ(使用者)のプロセッサの動作
において、ニーずのプロセッサ(叡必要に応じ、記憶空
間の割当てを要求する。このメモリの割当は仮想アドレ
ス空間で行なわれることが多い。割当てはしばしば仮想
アドレス空間の始めから終りまでのスペースを割当てる
ことにより達成されている。仮想アダレ空間間カを完全
に割当てられてしまうと、その次に起る空間割当て要求
は、既に割当てられている仮想アドレス空間における再
使用可能なスペースが識別され回収されるまでは拒絶し
なければならな(1゜ 従来、割当てられた仮想アドレス空間を回収するために
ユーザのOPHによって行なわれて(Sる処理を中断し
てガーペツジ コレクション アルがリズムをCPUで
実行することにより、ガーベッジ コレクション(不要
情報整理また&!ちり集めとも称される)を行なってい
る。しかしなうtら、メモリが大きくなるにつれて、ガ
ーペツジ コレクション処理には益々時間がかかり、そ
の間主ゾ田セスルーチンは実行できな(−1゜ この問題に鑑み、「並列」または「同時」ガーペツジ 
コレクションが提案されて(する。しかしながらこれは
、現在まで本出願人の知る限り、真の意味での並列ガー
ペツジ フレクション処理ヲi実際には達成されていな
い。なお、並列ガーペツジ コレクション処理と関連し
て、従来多様に用−一うれている幾つかの術語について
明確な定義付けが必要であろう。本明細書において&家
「並列」ゴーベック コレクション処理とは、ユーザの
プロセッサから完全に独立して、しかもユーザのプロセ
ッサの動作と同時に行なわれるガーペツジフレクション
処理を表わす。従来にお〜1てヲ11 ガーペツジ コ
レクション処理と関連して用0られる術語「並列」は「
同時」の意味を含んで〜・た。
術語「同時」処理は、ユーザのc’p■動作とインター
リープもしくは時分割的に行なわれるガーペツジ コレ
クション処理を意味するのに用(1られる。同時ガーペ
ツジ コレクションは、例え&ゴ、時分割アクセスおよ
び処理動作を含み、そしてガーペツジ コレクション 
ルーチンおよび通常の動作ルーチンで交互に動作する単
一のプロセッサにより行なわれるが−ペッツ コレクシ
ョン処理を含む。
[C!ommunications of the A
OM J 、 VoL 21 。
A 11 (1978年11月)頁966−977に掲
載のIL W、 Dij kB tr a他のr On
 −t、he −FLYGarbage Co11ec
tion : An Exercise in coo
per−ation Jにはユーザのプロセッサ(また
は[ミューテイタ: mutator J )の動作と
少なくとも同時にだ−ベック コレクションを行なう第
2のプロセッサを使用することが提案されている。また
、「Communications of the A
CM J 、 Vol、 18 * &9(1975年
9月)9頁495−508に掲載のG、 XJ、 5t
eeleの論文「Multiprocessing c
ompa−cting garbags collec
tion Jには別のガーベツジ コレクション方法が
示唆されている。
Dijkstraの方法によれば、割当てられたブロッ
クは、ユーザのプログラムの使用に依存し、黒、灰色ま
たは白でマークされる。また、5teeleの方法では
、セルをマークするのにセマフォが用いられている。し
かしながら、両方法とも、少なくとも用いたセルのマー
キングならびにガーベッジコレクション用プロセッサと
の時間的に同時の動作においては、ユーザのプロセッサ
の関与が要求される。
さらに、従来用いられている別の方法として、メモリ内
の各ブロックまたはセルに、該ブロックまたはセルがポ
インタあるいは参照の対象になっているかどうかの指示
を与える参照カウンタが設けられている。その基礎とな
る認識は、ブロックあるいはセルに対して参照が行なわ
れない場合には、該ブロックまたはセルはメモリ内で到
達不可能であり、したがってガーベツジ(不要情報)と
なり、したがって収集しスペースを回収することができ
ると言う点である。
先に掲げたP、B、 B15hopの論文には、アドレ
ス空間が区分されている領域にガーベッジ コレクショ
ンを行なうことkより、仮想アドレス空間全体よりも小
さな空間でガーペツジ コレクションを行なうことがで
きる旨の示唆がある。各領域は、領域に向けられたポイ
ンタのリストを維持しているρで、ガーペツジ コレク
ションが行なわれつつある領域内のセルあるいはブロッ
クに対する参照の存否を判定する上でアドレス空間全体
を探索する必要はないからである。
発明の目的および構成 上述の背景技術に艦み本発明の目的は、結合されるユー
ザのプロセッサとは独立して自動メモリ動作を可能にす
るガーペツジ コレクションが行なわれる記憶装置を提
供することにある。
本発明の他の目的は、ユーザのCPUおよび記憶域管理
装置もしくはM、MUの責任が分かれておって、0Pt
lrはポインタの管理の責に当らず、MMUはメモリ内
でデータを自由に動かす能力を有し、そしてCPUおよ
びMMUが双方共に、態別に独立してしかも同時に動作
することができる上述の型のガーベッジ コレクション
が行なわれる記憶装置を提供することにある。
本発明のさらに他の目的は、特定のCPU言語での実効
、特定のオペレーチングシステムおよびCPUマイクロ
フ−げに束縛されない上述の型のが一ベツジ コレクシ
ョンが行なわれる記憶装置を提供することにある。
CPUおよびMMUが上述のように、動作において分離
することを可能にするためにメモリのブロックが情報お
よび識別タグ(標識)を持ち、そして記憶装置のが−ベ
ック コレクションは厳密にMIJHによって管理され
る上述の型の記憶域管理装置を提供することにある。
本発明のさらに他の目的は、記憶装置内のが−ベック 
コレクション(不要情報整理)がユーザのプロセッサの
動作と並列に行なわれ、そして鑓インタ参照計数ならび
にガーペツジ コレクション アルj” IJズムが用
いられる上述の型の記憶装置を提供することにある。
上に述べた目的ならびに他の目的、特徴および利点は、
添付図面を参照しての以下の説明から当業者には明らか
となろう。本発明の広い様相に従がえば、ユーザのOP
Uからの条件、IIQUまたは命令に応答してメモリブ
ロックを割当て、それによりユーザのOPUが、割当て
られたメモリブロックに関し、IQtr、読取り、書込
みおよび命令の移動を実行することができ、さらにユー
ザのプロセッサとは独立にそれと並行にガーペツジコレ
クシロンを行なうことができることを特徴とする。記憶
装置の動作は、ユーザのCPUを記憶装置に接続し、記
憶装置をしてユーザの070に対しブロック構成のメモ
リとして扱うことを可能に、しかもMMUをして、ニー
ずの0PITから独立し且つ実質的に不透過に、ガーペ
ツジ コレクション処理を含むメモリのオーバヘッド機
能を制御することを可能にする結合もしくは連結レジス
タの使用を基礎とするものである。
以下図面を参照し、本発明の実施例に関し説明するが、
全図面を通して同じ参照数字は同じもしくは類似の部分
を指すのに用いられている。
実施例 第1図に示すように、本発明の記憶装置10は、使用者
もしくはユーザの0PtT2Qと接続される記憶域管理
装置11と物理的メモリ12を備えている。追って明ら
かとなるように、従来のメモリ動作とは異なり、ユーザ
のCPU20ならびKここに開示した改良記憶域管理装
置(MMU)11モリ内で自由に9”−夕を動かすこと
ができる。ざらIC,CPU20は、偶然的にもあるい
は故意に記憶装置もしくはメモリの情報構造を破壊した
り変えたりすることはできない。このことはメモリの組
織的完全性を維持するのに必要なことである。
追って明らかなように、使用者もしくはユーザのC!P
tJ2Qは記憶装置10とコンバチゾルな実質的に任意
の型もしくは種類のものとすることができる。
ユーザの0P020側から見た場合、記憶装置10はブ
ロック構成であると見做すことができる。
第2図を参照するに1記憶装置10の実際の構造もしく
はハードウェア構造に関係なく、参照数字(10)、お
よび関連の破線矢印で示すように、ユーザのcpty2
(IKとっては、見掛は上、論理メモリ構成10を呈す
る。この論理メモリ構成10は本明細書では「論理アド
レス空間もしくはスペース」と称する。この論理アrレ
ス空間は、後述する記憶域管理装置もしくはMMUから
見た場合に1記憶内容の代表もしくは抽出データもしく
は仮想アドレスを記憶する「仮想アドレス空間」とも、
また記憶装置の実際の物理的記憶要素である物理的メモ
リとも異なる。
論理メモリ装置10は、追って第3図を参照して詳述す
る連結もしくは結合レジスタ装置15を備えている。こ
の結合レジスタ15は、論理メモリ装置10に対しウィ
ンドウもしくは出力?−トとしての機能を果す(結合レ
ジスタ15は、記憶装置10の実際の一部分であって、
ユーザbbのCPUから見た場合のブロック配列を、実
際に記憶域管理が行われる仮想アドレス空間に変換する
機能を司る)。この結合レジスタ装置15の概念は、任
意時点において、ユーザのプロセッサ20は限られた数
のブロックしか直接アドレスすることができないと言う
事実、より詳しく述べると、ユーザのプロセッサは結合
レジスタ装置15内の一群の結合レジスタ内に格納され
ているポインタを有するブロックしか直接アドレスでき
ないと言うI!1ilK基ずく。
ユーザのC!Pff2Qは、典型的な例において、2つ
の動作モードで連結もしくは結合レジスタ装置゛15を
使用する。即ち、結合レジスタ15には、メモリ内の特
定のブロックのアドレシング可能性を設定するためにブ
ロック識別子をロードすることができる。これを、アド
レシング可能性が設定されつつあるブロックに対する特
定レジスタ「結合」と称する。なお術語「連結もしくは
結合」は、レジスタの名称、番号または識別子およびデ
ロッ′ りの連結もしくは結合を強調するのに用いられ
ている術語である。明らかなように、結合レジスタ内に
格納することができるブロック識別子のソース(源)に
対しては成る程度の制約が課せられる。
初期設定シートストラップ アドレスを除き、ブロック
 アドレスの唯一のアドレス源は、先に結合されている
ブロックまたは他の結合レジスタからのブロック アド
レスである。
結合レジスタ15の他の主動作モードは、先に結合され
ているブロック内において成る値を参照するためのベー
スとしての動作である。例えば特定の相対デマツク場所
におけるデータに対する0Pt7の要求に応答して、M
Mt7は、結合レジスタに収容されているブロック ア
ドレス フィールドの内容にインデックス(索引)計数
を加算することにより、ブロック内に格納されている特
定の値に対するアドレスを発生する。明らかなよ5に5
上記インデツクスは特定のブロックに対して有効なイン
デックスであることを確証する必要がある。例えば、上
記インデックスが2ワードのブロックの4番目のワード
を指定しないこと、したがって無効ではないことを検証
する必要がある。
結合レジスタ装置は、相対インデックスとして現在ブロ
ックに結合されているレジスタの名称に対しこの種のア
ドレシングを行なうことができる。
したがって、参照を行なう前にインデックスが有効であ
るか否かの完全なチェックが行なわれる。
さらに詳細に述べると、結合レジスタ装置15は、多数
の個々結合レジスタ21.22・・・、30゜を備えて
おり、これら個々の結合レジスタはユーザのCPU20
に、よりアドレシング可能であり且つ操作可能である。
ユーザのC!PI:rが結合レジスタをアドレシングす
る仕方は、例えば、「レジスタ、IJ、rレジスタ5」
等々のように特定の結合レジスタを単に指定することに
より行なうことができる。結合レジスタ装置15は、記
憶域管理装置もしくはMMtTの特定の用途に応じて必
要とされる数の結合レジスタを有することができる。
記憶装置10内には、大きい物理的メモリ(追って詳述
する)が設けられており、このメモリから、メモリブロ
ックを割当てることができる。例えば、第2図を参照す
るに、2つのメモリブロック40および45がOFσか
らの関連の命令(後述する)により設定されている。設
定されたブロックの各々は、見出し部分40hおよび4
5hと、少なくとも結合レジスタ装置15の結合レジス
タ20ないし30のうちの1つに再生される部分とを有
する。各ブロックの見出しは、特に、ブロック識別デー
タ、ブロック長データ、デリック種(タイプ)データ、
ブロックの長さを指示するデータ、フラッグ等を収容し
得る。
さらに各ブロック40および45には、それぞれデータ
 ワード40dおよび45dが格納されている。データ
 ワーF40dおよび45dは、アドレス場所の数だけ
、ブロック40および45の各見出しから変位されてい
る。このアドレス場所の数は、ユーザのCPUVcよる
特定のアドレス場所を含め多くの要因に依存する。さら
に具体的に述べると、ユーザのCtPUは、例えば結合
レジスタ装置15のレジスタ21内に格納されている見
出しからの変位を指定することKよりブロック40の記
憶場所40dにデータを書込むことができる。ユーザの
C1’Uが所望のデリック場所を特定する仕方は、ブロ
ックが結合されている特定の結合レジスタ(例えば「レ
ジスタiJ)ならびに結合されているブロック内の変位
(例えば「j」)を指定1することにより実現される。
指定もしくは特定された値は、そこで、直接ユーザのC
PHに対してデータとして戻すこともできるし、或いは
また結合レジスタ装置(同じまたは異なった)指定の結
合レジスタに書込むことができる。
追って詳述するが、ここで例として、0PU20が、記
憶装置1iu!$10に対して、成る特定の長さの参照
数字40で示したブロックを創成する命令を発生するこ
とができるものとする。そうすることKより、OF■は
、MMUK対して、例えばレジスタ21のようなOF■
に向けられた目標結合レジスタにブロック40に対する
鑓インタをロードする指令を発生する。しかる後に%0
PU20は、結合レジスタ21内のポインタにより指示
される見出しのアドレスから変位「j」を指定すること
によりブロック40へのデータ書込み命令を発生する。
ここで0PU1Qは、ポインタS1:0゛および変位「
j」を格納している特定の結合レジスタを指定するだけ
であって、ブロック40のアドレスを指定するものでな
いことを強調して置く。
結合レジスタ装置15の結合レジスタは、第3図に詳細
に示しである。次にこの第3v!Jを参照して説明する
。結合レジスタ装置の各結合レジスタは、「部分a」、
「部分b」および「部分C」で示した3つの部分を有し
ている。これら部分aないしCの各々は追って詳述する
ように1成る種のブロック識別情報を格納している。図
には、ブロック40および45が示されており、そのう
ちブロック40は、部分aないしCを有する結合レジス
タに結合されている(同じことが、追って明らかになる
ように1デ田、ツク45についても当嵌まる)。ブロッ
ク40内の見出し□情報は、ブロック40の始めの部分
に格納され、第1および第2のセグメントもしくは区分
は、結合レジスタの部分aおよびb内の情報に対応する
情報を格納している。関心のない他の情報は、この場合
、見出し部分40h内に格納して置くことができよう。
再び結合レジスタの部分子aJを参照するに53つの情
報、即ちユーザのCPUグロック タグ(標式)61、
MMUタグ62およびブロックサイズ セグメント63
が存在する。
結合レジスタの部分子bJは5つのセグメントを有する
。第1のセグメントもしくは区分64は使用者のCPt
rのタグbのためのものであり、それKtiA<セグメ
ントはMMUのタグ65のためのものであり、そして領
域66は成る種のフラッグのためのものであり、領域6
7は領域識別子を格納シ、そして2つ分のセグメント領
域は参照計数(後述する)を格納している。結合レジス
タのレジスタ部「b」のフラッグ部分子O内のフラッグ
は、種々なフラッグを格納することができ、その例とし
て、「ロック」、「結合」、「スカベンジ」等がある。
簡単に述べると、ロック フラッグは例えばブロックの
設定もしくは変位において、その間、当該ブロックの、
MMU以外によるアドレシングを禁止するのに用いるこ
とができよう。また、結合フラッグは、例えば、当該ブ
ロックが結合レジスタに結合されていることを指示する
のに用いることができよう。さらに1スカベンジ フラ
ッグはガーベツジ コレクション処理(不要情報盤31
)中に使用することができよう。種々なフラッグ動作の
詳細に関しては後述する。
結合レジスタの部rcJも2つのセグメントもしくは区
分を有する。第1のセグメント64は、MMt7タグの
ためのものであり、そして第2のセグメント71は、特
定のブロックの見出しに対する一インタまたはデータの
ためのものである。いずれの場合にも、セグメント71
の内容は観察者に対しては「データ」として現われる。
結合レジスタの部分「C」内の情報は、実際上は、ブロ
ック40の見出しに再生することはできず、単に、連結
もしくは結合レジスタの部分として存在し得、るに過ぎ
ない。
したがって、成る処理に関連し、上述のように、結合レ
ジスタ装置内でのブロックの設定もしくは結合(連結)
においては、特定のデ党ツク場所もしくはアドレスが相
対インデックスによりユーザのCPHにより参照される
。第3図において、参照される特定の場所は、参照ブロ
ック45にPCで示しである。この例において、結合レ
ジスタ装置に結合すべき次のデ豐ツクに対するポインタ
を格納しているのは、この「データ」ワードである。
場所Pcのワードは点線で示すように、結合レジスタの
部分子cJK移される。MMUタグ(標識)64は、「
データ」が実際にポインタであるか否かを指示する。ポ
インタでない場合には、プ四セスは直ちに中断されるか
或いはエラーメツセージが発生される。レジスタの部分
「C」に格納されている部分71の「データ」が有効ポ
インタである場合には、このポインタは結合すべきブロ
ック40の見出し情報40hを指示する。見出し40h
の第1および第2のレジスタ内の情報はそこで、先に述
べたような仕方でレジスタ部分子aJおよびrbJに移
され、それにより結合もしくは連結プロセスが完了する
第2図および第3図の論理メモリ構成を可能にする結合
もしくは連結レジスタ装置を実現するためには、第4図
に示したように配列されたハードウェアを用いることが
できる。本発明による結谷もしくは連結レジスタ装置1
5を実現するためのバーPウェアは、使用者の0Pt7
2Q(第1図)と結合レジスタ装置15との間を接続す
るためのCI’Uインターフェース80と、ゾ田七ツサ
(第5図を参照して後述する)を制御するMM17と、
結合もしくは連結レジスタ装置15との間に接続を形成
するためのプ田セッサ インターフェース81を備えて
いる。結合レジスタ装置15は上述のように情報が書込
まれる個々の結合レジスタからなる結合レジスタ ファ
イル83を備えている。
この結合レジスタ ファイル83は、直接CPUインタ
ーフェース80に接続される。さらに、結合レジスタ 
ファイル83は、データ路制御回路84を介しゾロセッ
サ インターフェース81に接続されている。
さらに、二−デのゾνセツサから命令を受け、ユーザの
CI’Uにより発生される特定の命令を解読するために
、CPUインターフェース80に接続された命令デコー
ダ90が設けられる。命令デコーダ90からの出力は、
シーケンサ92およびマイクロフード発生器もしくは制
御ROM/RAM93に送られる。MMUプロセッサと
関連して設けられるマイク胃コード発生器もしくは制御
ROM/ x A M g 3は、結合レジスタ ファ
イル83およびデータ路選択回路84の動作を制御する
上の説明から明らかなように、結合もしくは連結レジス
タ装置15の回路は周知の技術を用いて、標準TTLま
たはM8工回路或いはカスタムIts工もしくはVL8
エチップとして製造することができる。
上述のように、、既述のメモリアー中テクチャを実現す
るための結合もしくは連結レジスタ15の動作は、マイ
クロコードROM / RAM 93内に格納されてい
るマイクロコード制御プログラムの制御下にある。マイ
クロコードの設計は、(後述するよ5に:)用“いられ
るメモリプロセッサの種類、記憶装置を構成するハード
ウェアの種類等々のような要因に依存する。単なる例と
してではあるが、完全を期すために、結合もしくは連結
レジスタ装置を含め、本発明の記憶装置の動作を模擬す
るために標準リストマシンで実行することができるLi
fipプログラムが本明細書く添付の付録ムに示しであ
る。しかしながら、記憶装置のいろいろな他の冥施態S
をも同等に有利に採用し得ることは理解されるであろう
物理的メモリ12と関連して、本発明の記憶装置を形成
する記憶域管理装置もしくはMMU 11を実現するた
めのハードウェアは全く慣用のものであり、第5図に示
しである。図示のよ5に、記憶装置10は、ユーザのC
PU 20に接続された既述の結合もしくは連結レジス
タ装置15を備えている(第1図参照)。図示のよ5に
、結合もしくは連結レジスタ装置15から、既述のよう
に1ユーデのaPty 2 gに対して指令、結合レジ
スタ、インデックス、データ、制御および状態の各線路
が設けられる。記憶域管理装置もしくはMMff l 
lの動作は、プロセッサ10Gによって制御される。こ
のプロセッサには、図示のように、結合もしくは連結レ
ジスタ装置15に接続される指令、仮想アドレス、制御
およびデータの各線路が設けられている。本発明の記憶
装置と組合せ【動作すべき物理的メモリの特定の型式に
依存して、プロセッサ100による制御のためにいろい
ろなメモリインターフェース装置を設けることがてきる
。即ち図示のように、例えば半導体からなるハードな物
理的メモリ、バブル記憶装置、その他当該技術分野で知
られている他の記憶要素から構成することがテキル主メ
モリ102が設けられる。この主メモリ102は、ペー
ジテーブル装置104により結合もしくは連結レジスタ
装置15に接続される。
結合レジスタ装置15と物理的メモリ102との間のデ
ータの流れは、ページテーブル装置104を介し、結合
レジスタ装置15と上記ページテーブル装置104との
間に接続されている指令、仮想アドレス、制御およびデ
ータ線路を有するプロセッサ100によって制御される
。さらに、本発明によるMMUl 1と組1合せて用い
ることができる形態のメモリとしてディスク装置106
t−設げることができる。このディスク装置106は、
当該技術分野で周知の磁気ディスク、光学ディスクその
他周知のディスクメモリとすることができる。
ディスク装置106は、ディスクコントローラ(制御装
置)108によって制御され、一方、該ディスクコント
ローラは制御、データおよび指令線路t−介しプロセッ
サ100により、図示のよう(データ、制御および物理
的アドレス線路を介して連結レジスタ装置15およびペ
ージテーブル装置104に対して制御される。
なお、物理的主メモリ102およびディスク装置106
が示してはあるが、本発明は、このようなメモリもしく
は記憶装置に制限されるものではなく、当該技術分野の
専門家には明らかなように、本発明の実施において他の
極類のメモリおよび構成を同等に有利に採用し得るもの
であることは理解されるべきである。
既述の結合もしくは連結レジスタ装置の動作においては
、見出しブロックに1つまたは2つ以上のフラッグが設
けられる。これら7ツツグのうちの少なくとも1つはロ
ックフラッグとして用いられ、したがってこのフラッグ
がセットされた時には、当該ブロックに対してユーザの
OP[rにより変更を加えることはできない。この事は
、例えば、ガーベッジコレクション処理中、ブロックの
転a変位或いは再構成等を行ったり或いはMMUにより
他のアクションが実行される際に有利である。
他の用いることができるフラッグは、ブロックが結合も
しくは連結されているか否かを判定するためのフラッグ
である。記憶装置が成るブロックを変位したり或いは修
正したい場合には、当該ブロックが現時点で結合レジス
タに結合されているる否かの判定を行うことができなげ
ればならない。
さらに結合レジスタの部分子−Jのレジスタ部分68の
ブロックサイズ表示が、インデックスが有効プ覧ツク長
を超えているか否かを判定するために必要とされる。
セグメントもしくは区分62.63および64のMMU
タグ(標識)は、ブロックの見出しならびにデ・−夕御
分と組合されている。記憶域管理装置もしくは■によっ
て要求されるタグは、結合レジスタ装置により、ユーザ
のプロセッサがタグもしくは「ポインタ」を書込むのを
阻止され、またセルが実際に特定のブロックを形成する
前にポインタを格納していることを確証するのに結合も
しくは連結レジスタ装置によって強制されるタグである
。なおここに開示したタグ付メモリ(標識付メモリ)に
おいては、タグは、ユーザのゾロセッサによって任意に
設定し得ない点に注意されたい。
したがって、記憶域管理装置もしくは凪Eは、ユーザの
ゾロセッサが禁止されているタグ、即ちポインタ、見出
し等をセットしよ5としていないこと全連続的に検証し
なげればならない。したがって、各ポインタは、データ
が一インタを表すことを意味するMM[rタグを含んで
いるので、ブロック内のポインタはユーザのゾロセッサ
によって変更することはできない。しかしながら、ユー
ザのプロセッサは、ポインタとデータとt書替;c、る
ことが可能であり、そうした場合には、ポインタの破壊
が生じ得る。しかしながらこのような破壊は、ポインタ
の直接的変更により阻止されるのである。
上に述ぺたような仕方で構成された記憶装置によれば、
多数の子め定められた指令により論理アドレス空間にア
ドレッシングもしくはアクセス可能となる。用いること
ができる指令として、(1)ブロック空間もしくはスペ
ースを割当てる指令、(2)論理アドレス空間内の同じ
または異なったブロック内で成るインデックスされたブ
ロックレジスタから他のゾ鴛ツクレジスタにポインタを
転記する命令、(3)論理アドレス空間内の2つのレジ
スタが、(−双方共に同じブロックに関するポインタを
格納しているかまたは(1))同じデータを格納してい
るかを決定するために論理アドレス空間内の2つのレジ
スタもしくはセルを試験するための「3Q(同等月テス
トを行5ための指令、(4)特定のブロック内のインデ
ックスされた記憶場所から読出しを行うための指令、お
よび(5)ユーザのプロセッサで発生されたデータを特
定のブロック内のインデックスされた記憶場所に書込む
ための指令がある。割当指令、転記命令ならびに「ll
1qテスト」は、ユーザのプロセッサをして、記憶装置
の構成もしくは形態全決定し記憶装置を所望の任意の構
成に再編成するのに用いられる。また、読出しおよび書
込み指令により、プロセッサを工、記憶!!置と相互作
用することができる。しかしながら、ユーザのプロセッ
サは、論理アドレス空間にポインタを書込むことは許さ
れていない点に注意されたい。当該技術分野の専門家に
は明らかなように、他の指令tも同等に有利に用いるこ
とができるが、上に列挙した指令が、現在のところ、本
発明の記憶装置について要求される最小限の指令である
と考えられる。即ち、上述の5つの指令て記憶装置の動
作が可能となり、この5つの指令で、本発明の記憶装置
は従来の記憶装置から異なるのである。当業者には明ら
かなよ5に、上に述べた記憶装置で他の付加的な指令を
容易に実現することが可能でアル。この種の命令の多(
は、上述の指令のいろいろな組合せによって達成するこ
とができる。なお上述の指令に関しては追って詳細に説
明する。
次に、上に述べたような構成の記憶装置の動作について
概略的に説明する。記憶装置10は、最初にユーザのプ
ロセッサ20と組合される。ユーザのプロセッサ20は
、結合もしくは連結レジスタ装置15と交信できる限り
において任意のat類もしくは型のものとすることがで
きる。単に)・−ドウエア上のコンパチビリティ(互換
性)に対して制限が課せられるだげであって、記憶装置
の動作、その階層構造および組織等々とは無関係である
・ ユーザのプロセッサが記憶装置に対して書込みを行いた
い場合には、該プロセッサは先ず、記憶域管理装置もし
くはMMU I Q [対してブロック割当指令を発生
する。このブロック割当指令の一部分として、ユーザの
プロセッサは、所望のデ日ツクサイズならびに割当もし
くは創成されるべきブロックが結合される結合レジスタ
を指定する。それに応答して、記憶装置は所要のブロッ
クを創成する。次にユーザのゾロセラ?20は、指定さ
れた結合もしくは連結レジスタに送られる書込み指令を
発生し、プロセッサがデータを書込みたい相対プ冒ツク
場所を指定する。然る後に、前以って書込まれているデ
ータを読出したい場合に:は、プロセッサ20は、デー
タが前以って書込まれた変位もしくはオフセットを指定
することにより、当該時点で結合されているブロックに
°関し読出し宣言を発生する。MMUはそこで、ユーザ
のプロセッサに対して既に書込まれているデータを供給
する。
記憶装置10の動作の1つの様相は、割当てられたブロ
ック内における一インタ系の形成および動作にある。例
えば、ブロックを次から次に参照したい場合には、相対
アドレスで参照される側のブロックに対し、参照する側
のブロックにポインタを設定することができる。ポイン
タは、ユーザのプロセッサ(よることなく記憶域管理装
置もしくはMMIlr 1iにより設定され、参照する
側のブロック内のインデックスされた相対場所に設ける
ことができよう。所望ならば、ユーザのプロセッサは、
1つの特定のブロックまたは2つのブロック内の2つの
相対場所が同じブロックに対する鑓インタを格納してい
るか否かを決定するために記憶装置10に対しICQσ
(同等)指令を発生することができる(このIQ、U指
令は、また、同じ或いは異なったブロックの2つの特定
の相対場所が同じデータを格納しているか否かを決定す
るのに用いることができる)。なお、割当てられたブロ
ックの相対記憶場所をユーザのプロセッサにより直接読
取ることができるが、相対記憶場所が他のプロツ取られ
る一インタは必ずしも同じである必要はない。例′えば
、明らかK・異なった参照全招来するような不可視のポ
インタ金格納しているブロックが有り得る。例えば、ブ
ロックムのポインタがブロックBを指示しており、そし
てブロックCの鑓インクがブロック割当指令しており、
該ブロックDがブロックBを指示している場合には、ブ
ロックムおよびCのポインタは同じブロックを指示する
ととくなるが、ユーザのプ、ロセッサによりデータとし
て取込まれる場合には同等ではない。
最後ニユーデの0PTlrが、特定のブロックに関し総
ての動作を完了したならば、ユーザのプロセッサは、当
該ブロック管破壊すべきことを要求する割当解除指令を
記憶域管理装置もしくはMMU l lに発生すること
ができる。
このような構成のMtr 10 t−用いれば、従来、
CPU 、コンパイラ、アツセンプラ等により実行する
必要があった多(の動作もしくは演算を自動的に遂行も
しくは実行できることが諒解されるであガーベッジコレ
クション(不要情報整理)処理中に停止する必要な(、
ガーペツジコレクショyk自動的に実現し得る点である
仮想メモリは、CPUによって特定される任意の領域に
分割される。即ち、第6図に示すように、任意の大きさ
の3つの領域が仮想アドレス空間に指定される。これら
領域は、CPt1rの要求によって創成されるものであ
るので、C′JJUに対して透過である。領域磁1は、
2つのプ豐ツクを有しており、領域陽2は4つのブロッ
クを有しており、そして領域−3は3つのブロックを有
している。ブロックの各々は、他のブロックまたはブロ
ック群に対するポインタを格納することができる。図示
のように領域1においては、プロ、ツク120は2つの
ポインタを格納しており、その5ちの1つのポインタは
領域1におけるブロック121の見出しを指し、他のポ
インタは領域3におけるブロック122t−指示してい
る。ブロック121は、領域2にブロック126に対す
るポインタを格納している。ブロック126はブロック
ポインタを格納してはいない。領域2においてもブロッ
ク127は2つのポインタを格納しており、そのうちの
1つのポインタはブロック126に、向けられ、他のポ
インタはブロック128rc向けられるものである。ブ
ロック128は、ブロック129に対するポインタを有
しており、ブロック127ないしブロック129のポイ
ンタ連鎖は総て領域2内に格納されている。
最後に、領域3Vcおいて、ブロック132は2つのポ
インタを格納している。即ち、領域2(おけるブロック
126に対するポインタおよび領域3におけるブロック
133に対するポインタである。ブロック127はまた
9、領域2円のブロック126に対するポインタを有し
ている。
上の説明から明らかなように、仮想アドレス空間におけ
る領域の使用で、仮想アドレス空間の小さい部分におけ
るガーベッジコレクション処理が可能となる。また、従
来の場合要求されているような、仮想アドレス空間全体
について捕集することな(単一の領域におけるガーベッ
ジコレクションが可能である。これにより、ガーベッジ
コレクションに対する費用(時間およびプロセッササイ
クル)が軽減される。さらに、他の領域に比較的少ない
不要情報しか存在しない場合でも、相当量の不要情報!
−格納する確率が高い領域においてガーベッジコレクシ
ョン即ち不要情報整理処理もしくはちり集め処理を行な
うことができる。
後述するように、ガーベッジコレクション処理の一部分
として、「ルート(径路)ポインタ」の集合から成る領
域における総ての潜在的に達成可能なブロックを識別す
る追跡サイクルがある。この追跡サイクルは、各領域と
関連し、当該領域外から直接到達することができる領域
内のブロックを識別するルー)1−有しているか否かに
依存する。
成る領域と関連のルートポインタの集合は、結合もしく
は連結レジスタに起因する参照ポインタなら′びに当該
領域に存在しないブロックから直接到来するポインタを
含む。これらポインタは他の領域において発生されるも
のであるが、尚該領域におけるブロックを指定するため
に「到来する」ものである。これらポインタは「内向き
の領域間ポインタ」と称する。成る領域内で発生して、
他の領域に存在するブロックを指定するために「出て行
く」ポインタは「外向き領域間ポインタ」と称する。ま
た、同じ領域内で発生され同じ領域内のブロックを指丁
ポインタは、領域内向きポインタと称することにする。
各領域は、それと関連して、内向きポインタテーブル(
工PT )と称する制御構造を有している。
この工PTは、当該領域に対する総ての内向き領域間ポ
インタを見付けるのに必要な情報を格納している。図示
の特定の実施例においては、工FTは、当該領域内のブ
ロックに結合されている結合レジスタから到来する参照
情報をは格納しない。したがって、成る領域に対するル
ート スペースは、結合もしくは連結レジスタ群に領域
工1”Tを加えたものからなる。
第6図に示す領域形態について再び参照するに、関連の
領域には4つの現在の内向きポインタが格納されている
。即ち、領域1のブロック121から領域2のブロック
126に向くポインタは、領域間ポインタであり、その
参照は領域2内の工PT140内に格納されている。ブ
ロック132および133も、他の領域、例えば領域3
からのポインタ全格納しているので、これらポインタも
領域2におけるエアT140として職別される。領域3
内のブロック122は、領域1内のブロック120によ
って指定されるので、ブロック120内のポインタは領
域3内の工PT 141で識別される。最後に、領域2
または3からの内向きポインタは存在しないので領域1
内の工PT 142は空きである。
上の説明から明らかなように、記憶装置10内のが一ペ
ツジコレクション処理は、QPHに対して不透明である
ので該CPHに関係な(用いられるガーベッジコレクシ
ョン処理は、実際上、ガーベッジコレクション処理を効
率良(圧縮することができ、それfより、記憶域管理装
置もしくはMMσ10の物理的メモリのより有効な使用
が可能となる。
メモリの管理に対する2つの主たる機能に関しては遺っ
て説明する。なお、使用不OT能なメモリが多数決され
る第1のメカニズムもしくは手段は、参照計数メカニズ
ムであり、そして第2の主たるメカニズムはガーベッジ
コレクションの転記のためのメカニズムである。
全てのブロックに対し参照計数を維持することにより、
ガーペツジ ブロックの迅速な回収が可能となり、回収
されたメモリは再び使用可能になる。蚕てのガーベツジ
 ブロックは、参照計数メカニズムにより回収可能であ
るが、ガーベツジブロックの大多数を回収するのが、第
一次的な主たる機能である。
既に概略的に述べたように、各ブロックの見出しには、
参照計数フィールド(第3図参照)が在り、(それ自身
をも含め)他のブロックからのブロック参照回数を表す
計数を格納している。このように、成るブロックに対す
る参照は、同じまたは他の領域内にあるブロック内のセ
ルがその起源である。計数には、結合もし、くは連結レ
ジスタからのブロックに対する参照ならびに内向きポイ
ンタテーブルからの参照は含まれない。
結合レジスタに対する参照が参照計数フィールドで計数
されない理由は、ハードウェアならびに支持ソフトウェ
アに付加的な複雑性が招来されるという認識からして、
性能を最適化するためである。このような最適化は、非
常に短い期間成るブロックが結合レジスタに結合される
リスト探索(例えばL工Pのリストの「ODRlng 
」)の頻度上考慮した場合に必要となり得る。また、成
る領域における外向きポインタを指定する他の領域の内
向きポインタ表に由来する参照も計数されない。
参照は、ユーザのセルからではなく制御構造から行われ
る。さらに、参照はブロックに対しては実際上行われな
い。参照は、ブロック内の特定のユーザのセルに対して
行われる。
成るブロックが最初圧割当てられると、このブロックの
参照計数は零であるが、結合されている結合レジスタに
より「保護」される新しい参照が行われる度に、参照計
数は増分される。(ブロックの参照計数にあふれもしく
はオーバフローが生じ得る確率もしくは可能性に関して
は追って説明する)。他方、ブロック内の参照が破壊さ
れる都度、ターゲットブロックの参照計数は減分される
成るブロックに対する参照の付加および削除は、正確に
、当該ブロックに対する参照計数の増分および減分によ
り反映されなければならない。成るブロックの最後の参
照が破壊される時には、参照計数が値零に達すること、
或いは参照計数が回収不可能であることが重要である。
ブロックが回収できることを知やない場合には、ブロッ
クの二一デのセルがメモリ内の他のプ゛ロックに亨する
参照全格納している場合があり得るので、1つのブロッ
クよりかなり多(のブロックが不必要にも要求され得る
。これらブロックも回収可能である。さらに由々しい叩
!が、成るブロックの参照計数を正確に維持しない場合
に起り得る。ブロックに1つまたは2つ以上の参照が存
在するにも拘らず計数が零に達しブロックが結合されな
くなると、当該 −ブロックは誤って回収される可能性
がある。後に現存しないブロックに対する参照が生ずる
ような場合には、予測できないエラーが発生し得る。こ
のような「中ぶらりんな参照」が残るという問題は回避
しなければならない。
したがって、結合レジスタに結合されていない零の参照
計数のブロックは自動的に割当を解除される。即ち、メ
モリプロセッサが、成るブロックの参照計数が「1」か
ら「0」に許容したことを検出すると、該プロセッサは
、結合レジスタが当該ブロックに結合されているか否か
に関し結合レジスタのバンクに質問を発する。当該ブロ
ックを指定する結合レジスタが存在しない場合には、割
当は解除される。同様にして、特定の結合レジスタから
の成るブロックに対する結合が破壊もしくは解除される
時に、他の結合レジスタについてチェックしなければな
らない。当該ブロックに他の結合レジスタが結合されて
いない場合には、メモリプロセッサは、当該ブロックの
割当を解除できるかどうかを判定するために、ブロック
の参照計数をチェックする。参照計数が零であって、当
該ブロックに対するユーザのセルからの参°照が存在し
ない事が判明した時に、当該ブロックは割当てを解除さ
れる。(なお術語「割岩解除」および「回収もしくは再
生」は、本明細書における参照計数メカニズムの記述に
おいて互換的に用いられている点く注意されたい)。
上の説明から明らかなように、参照計数メカニズムは、
2つまたは3つ以上のブロックの分離した循環構造なら
びに当該ブロックのユーザのセルだけからの参照を有す
るブロックは検出しない。
いずれの場合にも、これらブロックは使用不可能てあり
回収もしくは再生丁べきである。このようなブロックは
、追って詳述するように、ガーベッジコレクション処理
によってのみ回収もしくは再生利用することができる。
このような理由から、参照計数は、到達できないセルの
サブ集合だけを直接回収もしくは再生することを可能に
するが、到達し得るセルの回収は許容しないという点で
保守的であると言える。
成るブロックの参゛照計数の変化は、「転記」動作のよ
うなユーザの動作の結果または他のブロックをクリヤし
た場合の参照の除去、即ちその二一デのセル内の全ての
ポインタを潰すことの結果として発生し得る。
メモリプロセッサおよびOL’ffが、同じ参照計数の
同時変更を試みようとする場合が有り得るので、潜在飽
競合の可能性が存在する。例えば、このような同時修正
もしくは修飾の試みは、CPUが成るブロックに対する
ポインタを変更しつりある時に同時にメモリ管理(MW
)によりクリヤされつつある当該ブロックにポインタが
存在するような場合に起り得る。この競合は、(参照計
数が格納されている)ブロックの見出しに対するハード
ウェアアクセスという性質からして回避される。メモリ
プロセッサは、本質的に1ユーデならびにメモリ管理も
しくは記憶域管理に対し変更を行5のに用いられる直列
の資源である。
第3図に示すように、各ブロック内の参照計数フィール
ドは4ビツトから構成され、それにより当該ブロックに
対する参照回数を表子のに最大15の計数が許容される
。(15或いはそれ以下の参照計数で殆んど多数の事例
をカバーできるが、実際には、各ブロックに対し満杯に
なった参照計数を桁上げするのが非富に望ましい)。
参照計数の桁上げが望ましいことの1つの理由は、後述
するガーペッジコレクションのプルプリズムで、参照計
数は、サイクル中のガーペッジブロックを含め全てのガ
ーペッジブロックに対し零まで減分されるからである。
これにより1.所望ならば、強力な内部一貫性チェック
が行われ、さらに、ガーペッジコレクションメカニズム
ならびに参照計数メカニズムにおける信頼性を増加する
ための手段が得られる。拡張された参照計数能力を実現
するために、各ブロックの第2の見出しセルEbに、余
分のピット、即ち「溢れもしくはオーパフo −Jビッ
トを含ませることができる。さらに参照オーバ70−テ
ーブル(ハツシェ技術を利用した内部制御構造)(図示
せず)が維持される。
満杯参照計数のプルプリズムは゛比較的単純である。1
5の最大ブロック参照計数が超えられる場合、即ちブロ
ックに16番目の参照が行われる場合には、参照計数フ
ィールドの溢れビットがオンにセットされる。そこで参
照計数の半分(8)がROTに対する新しいエントリ(
記述項)として置数される。その結果上記ブロック内の
参照計数は残りの半分(8)を保持する。この「中値」
は、溢れに対する特殊論理を発動する必要性を軽減する
点で望ましい。
オーバ70−もしくは溢れビットが既にセットされてい
るブロックに対し参照が實れ続けてブロック最大参照計
数が再び超えられると、参照計数の半分がROT K既
に存在するエントリ(記述項)に対して加算される。R
OTは、各エントリ毎忙全参照計数を格納することがで
きるので、全参照計数(ROT内のエントリにおけるブ
ロックの参照計数の組合せ)を保持することができる。
参照計数が1であるが溢れビットがセットされているブ
ロックに対する参照が潰されると、ROT内のエントリ
に対し探索が行われることになる。
エントリが、最大ブロック参照計数の2分の1(8)工
9も大きい値を有している場合には、最大ブロック参照
計数の2分の1 (8) k ROTのエントリから減
算し【当該ブロック内に格納されている参照計数に加算
する。当該ブロックにおける参照計数の一連の「アンダ
フロー(下位桁溢れ)」後に、ROTエントリに残って
いる値は、終局的には、ブロックに+転送される。この
ようにして、RO’rエントリの削除が行われる。
参照計数が真に零であるためには、参照計数ならびにオ
ーバフロービット双方が零でなければならない。言い換
えるならば、成るブロックの回収もしくは再生利用t−
可能にするためには、参照計数フィールドの5ビツト全
てが零でなげればならない。成るブロックの参照計数が
零に達し、然も該ブロックに結合レジスタが連結されて
いなくても、このブロックは、当該プnツク内の全ての
ポインタがクリヤされるまでは、真の意味で回収するこ
とはできない。この定義は再帰内定゛義であり、(リス
トに対するポインタが破壊されることにより長いリスト
が突然上ぎになる場合のような)任意に大ぎな量の作業
(タスク)を意味する。この作業に加えて、割当解除プ
ロセス状態を追跡記鎌するために大きな記憶量が要求さ
れ得る。次に述べるアルz% リズムにおいては、割当
解除処理に要求される計数状態を維持するために、割当
解除されつつあるブロック内の利用可能なスペースが用
いられる。
B−割当解除すべきブロックの現在のリストに加えるべ
き参照計数−〇を有する新しいブロックに対するポイン
タ、 T−一時ポインタ、 8−割当解除すべきブロック(の現在のリスト)に対す
るポインタとし、Sの参照計数(ポインタSによって指
定されるブロック)−〇とする。
S−Qであれば、 S−Bとセットし、 そうでなければ、 T−8とセットし、 Bの参照計数を増分し、 ラベルへ會付け、 1(T)の型のタグ(ブロックT内の1番目のセルにポ
インタが付けられている)の場合 タグ−データ= 1 (T) −Bをセットする(古い値t1記憶すべき
セルに対するポインタで書替える) タグ−ポインタ: 参照計数1(T)−1(但しリストの終りの場合)なら
ば、?−1(’I’J(Noであってリストに下方にイ
テレートする)ムに行( そうでない場合(YlBであって、次のセルが1よりも
大きい参照計数を有し@当解除がまだできない場合)に
は、参照計数1(T)を減分する(但し負にはなり得な
い) 1 (T) −Bにセット エンド(終り) 割当て変更処理自体は、上記の8で開始し、第1番目の
セルを除き、Sにより指示されたブロック内の全てのポ
インタ七潰丁。第1番目のセルがポインタを有している
場合くは、Sに組込まれ、当該ブロックは割当解除され
る。そうでない場合には、Sは零にセットされて当該ブ
ロックは禎当解除される。このアルビリズムでは、イン
ダイレクショy (1nlirection )’を用
いる前に、新しいブロックポインタ(上記B)Ti−保
持するだめの場所があるかどうかがブロック内の全ての
セルについて探索される。また、スタック内で最後の挿
入が行われた場所を想起してそこでの探索t8始する。
第6図を参照して上に述べた内向きポインタテーブルは
、ポインタ切換ベースで維持される他の主要な制御構造
である。成る領域の工PTは、当該領域に対する参照計
数の目的に用いられるものと考えて良い。しかしながら
、工PTは、参照計数よりもさらに複雑な構造である。
ポインタが変更される時には常に、当該ポインタを格納
しているブロックが該ポインタにより指定されるブロッ
クを含む領域とは異なる領域にある場合には、工PTt
−更新しなければならない。各ブロックの第2の見出し
セル内に含まれる領域1d(i#!別子領域)が、領域
が同じであるか否かを判定するのに用いられ、そしてソ
ースブロックおよびターゲットブロック双方の領域1d
に対しアクセスして比軟を行う。
MMUの連結レジスタファイル内のポインタは、領域内
に存在すると見做されない点に注意されたい(このポイ
ンタは、自動的に、それが指定するブロックと同じ領域
内に存在すると考えることができる)。したがって、結
合もしくは連結が行われている時には、IPT七更新す
る必要はない。
参照計数の維持の場合と同様に、第1回目の実行では、
CPUは、工PTに対する変更が完了するまで遅延され
るに過ぎない。しかしながら、参照計数の場合と同じ理
由から、差し迫った処理は、遅らせることができる作業
と切り離される。さらに、工IPTの場合には、作業(
1つはポインタのターゲットの読取りおよび1つは工P
Tの部分の読取り)全完了するために多重のページ傷害
全発生することが可能である。ポインタが変更される場
合には常に参照計数および工PTが手直しされるが、こ
れら2つの動作は、基本的には、互いに独立している。
したがって、2つの同時プロセスとして実行できる。
ここで、” Communications of t
he AOM”。
21巻、4号、(1978年4月)に掲載のG。
Baker Jr、著の論文[Li5t Proces
sing in Real’r1me on a 8e
rial computer J 2参照されたい。
この論文には、本発明が属するガーベッジコレクション
の従来のレベルに関する説明がある。
ガーベッジコレクション処理の1つの主たる目的は、仮
想アドレスを再使用することができるようにするために
仮想メモリを回収することである。
上述のように、参照計数を採用することにより、効率的
に、大多数の到達不可能なメモリブロックを回収するこ
とができるが、この方法では扱いきれないような事例が
存在する。既に述べたように参照計数アルテリズムによ
ってでは、循環的構造もしくはティクリック構造は回収
することはできない。互いに参照し合う2つまたは6つ
以上のブロックから構成され従って零には決してならな
い参照計数金有するサイクリックもしくは循環的構造の
生起は極く普通のイベントである。また、成る1つのブ
ロックが当該ブロック内の1つまたは2つ以上のセルに
よってポインタ指定される可能性もある。この場合にも
、参照計数は決して零にはならない。このような構造は
CPUから切離丁ことができる、即ち到達不可能にする
ことができるが、参照計数メカニズムではこれら構造が
回収可能であることの検出は行れない。しかしながら、
参照計数により回収されなかったガーベツジブロックは
、全べて、ガーベッジコレクション処理により回収可能
なのである。このような循環的構造が第7図に示されて
おり、これは後述するように、完全な参照構造とは異な
る。
ガーベッジコレクション(不要情報整理)もしくはちり
集め処理のさらに重要な目的は、参照の局所性を改善す
るために仮想アドレス空間をコンパクト(凝縮)にする
ことにある。メモリブロックを割当てたり割当解除する
CPHの能力ならびにポインタの破壊で仮想メモリは非
常に細分化されるが、ガーベツシコレクタは、アクセス
可能なメモリプロツノを互いに近くに寄せ集め、したが
つて細分化プロセスとは逆の作用をする。
ここに開示するガーペッジコレクションアルイリズムは
、ペイ力(Baker )によって提案された原理に基
いて行われる。このようなコレクタの2つの主たる利点
は、収集および凝縮するのに唯1つのパス[、か必要と
されない点ならびにコレクタスタックが必要とされない
点にあることは、アルがリズムに関する以下の記述から
明らかとなろう。
既に述べた。ように本発明の記憶装置は、主として、大
きい仮想メモリ能力を必要とする動作もしくは演算に企
図されているものである。が−ベックコレクションをメ
モリ全体に対して行うとすれば、そのためのプロセスは
大きい時間を消費する。また、任意時点で、仮想メモリ
の半分だけが使用可能であるようにするのは望ましくな
い。と言うのは、使用不可能な半分は、Baker型の
コレクションが行われる時に転記するのに必要とされる
からである。これら2つの問題は、領域の利用により軽
減される。即ち、仮想アドレス空間の断片は、所要時間
およびオーバーヘッドを減少するために、領域毎のペー
スで、別々にが−ペツジ収集されるのである。領域毎の
ベースでが一ベツジ コレクションを行うことから得ら
れる別の利点は、成る領内におけるゴーベック処理の頻
度を当該領域における予想が−ベック累積率を導出する
のに用いることができるという点にある。したがって例
えば、安定な領域に対しては不必要にが一ペツジコレク
ションを行う必要はない。
介入するが−ベック処理中に、CPUが成る領域をアク
セスすることが不可能になる時間が大きくなるのを回避
するために、CMおよびザーベッジコVクタは、連結レ
ジスタおよび仮想アドレス空間に対し並列に作用する。
その意図は、CPU側から見た場合に、ブロックの割当
ならびにアクセスのだめの性能の劣下を可能な限り最小
にするためであることは言う迄もない。
以下に、が−ベック コレクションのアルゴリズムに関
して説明する。上に述べたように、舅は、そのメモリの
回収の大部分について参照計数を利用する。したがって
、が−ベック コレクタは、参照計数の完全性を保持し
なければならない。
第7図および第8図は、ガーペツジ コレクション直前
および直後における領域200を絵画的に示す図である
。この例においては、領域間ポインタも領域に向けるこ
とができるが、領域200に対するポインタだけが結合
レジスタから由来している。この場合には、当該領域に
対するポインタは、該領域の左側に示しである結合レジ
スタR[。
R4およびR6に起源を発する。領域内には、B1ない
しB8で識別した幾つかのブロックが存在する。各ブロ
ックの右上隅の番号は当該ブロックの参照計数を表す。
成る結合レジスタ(B1およびB7)に直接結合されて
いるかまたは成る結合レジスタ(B2およびB3)から
由来するポインタのストリングで参照されているブロッ
クだけが有用なブロックである。したがって、ブロック
B4およびB8は有用なブロックではないが、これらブ
ロックのセルの1つが自分自身をポインタ指定している
ので、言い換えるならばその参照計数が零ではないので
この領域に残されている。ブロックB5およびB6はま
た、当該領域に残っている円形リストを形成する。これ
と対照的に、第8図に示すように、ガーペツジ コレク
ション後には、全てが有用なブロックが存続する。ガー
ペッジブロックならびKそのポインタは、領域から取払
われ、そして残存ブロックの有用な多照計数は、該ブロ
ックに対する参照の損失を反映するように調節されてい
る。
本発明のが−ペック コレクション 7A、イリズムの
実施に当って、その単純な形態においては、I−ペック
 コレクションを行なうべき曇全てのブロックは、旧ス
ペースおよび新スペース(0LDSPAO1およびN1
1!W8PAOK )と称する2つのサブ空間のうちの
1つに格納される。全てのアクセス可能なブロックは、
旧スペース(OLD8PAc!l)から新スペース(m
mwspAcz)に転記される。前進アドレスは、転記
されたブロックの元の場所もしくは旧場所に残される。
前進アドレスを含むブロックを指定するポインタが追跡
される時には、当該lインタは、転記ブロックを指示す
るように更新される。全てのアクセス可能なブロックが
新スペースMEIFEIPAO]Itに転記された時に
が−ベック コレクションは完了する。そこで、旧スペ
ース(OLD8PAC幻は割当解除される。
本発明によるが−ペック コレクションは5つの相を含
む。即ち、1)成る領域の有用なブロックのコピーを形
成するために新しい断片を設定して必要なポインタを初
期設定するイニシャライズ相、2)1つまたは2つ以上
の結合レジスタまたは他の領域からのセルによってアク
セス可能な全てのブロックを転記する追跡相、6)追跡
相で追跡されたブロック内のセルにより指定されたブロ
ックを転記するスカベンジ相、4)がペック ブロック
内のセルのポインタを除去して再使用のためのセルを作
成する旧スペース クリーニング相、そして5)が−ベ
ック コレクタが制御を放棄する準備をなすフリッゾ相
でおる。
したがって、第9図に簡略に示すような動作においては
、領域210に対してが−ペック コレクション処理を
行う時点となると、当該領域に等しい大きさのメモリ断
片212が割当てられる。
この新しい断片212は、新スペース(NFfWS・P
ACE)212と称される。「が−ペック(5,7)J
と混合された有用ブロックを含む元の断片210は、旧
スペース(OIIDSPA(3K)、 210と称する
?インタBは、新スペース(NxwspAax) 21
2の最下位アドレスを指定するように初期設定もしくは
イニシャライズされる。このポインタは、旧スペース(
OLD8PムC1) 210からのブロックを新スペー
ス212のどの箇所に転記すべきかを指示するのに用い
られる。追って説明するように、が−ペック コレクシ
ョンのスカベンジ相で用いられるポインタSもまた、新
スペース212の最下位アドレスを指示するように初期
設定される。第3のポインタTは、新スペース212の
最上位アドレスを指示するように初期設定される。領域
のガーペツジ コレクション処理中、0PUKよって要
求される全ての新しいブロック割当は、ポインタTが指
示する仮想アドレス空間で行われる。その場合、ポイン
タTは、利用可能な次に低い仮想アドレスを指示するよ
うに進まされる。
イニシャライゼイション相が完了すると、トレースもし
くは追跡相が始まる。1つまたは2つ以上の結合レジス
タにより指示された旧スペース(OLDSPムOR) 
216内のどのブロックをも、直ちに、新スペース(N
扉5pAcy:) 215に転記しなければならない。
このようにして、マシン(機械)の「規則」は守られる
。この規則は、旧スペースには結合されたブロックが存
在してはならないという規則である。既に述べたように
、全ての新しい割当は新スペース内で行われる。追跡相
により、全ての結合されているブロックは、旧スペース
から新スペースに転記される。最後に、が−ペックコレ
クション中、旧スペース内の成るブロックが続いて0P
ffの要求により結合される場合には、このブロックは
直ちに新スペースに転記される。
が−ベック コレクションの追跡相の開始に当って、結
合レジスタの各々は、そのMMffタグ(標識)フィー
ルぜならびに領域−1dフイールドをチェックする。こ
のようなタスクもしくは作業を行う1つの方法において
は、CAM探索が用いられるが、しかしながらこれは必
須要件ではない。各結合レジスタに対して、MMUタグ
 フィールドが、ポインタであることを表す値を有し、
そしてレジスタの領域1dフイールPがザーベッジ コ
レクションされつつある領域と一致する場合には、その
ロック ピット(フラッグ)がセットされる。
この動作で、OFσは、結合されているブロックが旧ス
ペース内に存在する間は、これらブロックに対するアク
セスは阻止される。ロック ビットもしくはフラッグは
、全ての結合されているブロックが新スペースに転記さ
れてしまうまでセットされ良状態に留まる。
次に第10(+!L)図ないし第10(6)図を参照し
て説明する。第10(+L)図に示すように、ニュース
ペース212が創成されている。旧スペース210内の
ブロックに結合されている全ての結合レジスタは、(図
示のように、ロック ピットもしくはフラッグをセット
することによりロックされている。
ブロック251は、ポインタBで始まる新スペース21
2に転記する必要がある。この転記中、ブロックに対し
1回だけのアクセスを可能にするために、ブロックのロ
ック ビットがセットされる。
ブロックをロックする必要性に関しては追って説明する
。ブロック251は新スペース212に転記され、そし
て転記されたブロックは第10(t))図に、参照数字
251で示されている。2つの見出しセルを除き、旧ス
ペース210内のブロック251の各セルは、転記に際
して再初期設定される。と言うのは、これらのセル内の
情報は転記されるブロック内に保存されるものであり、
そしてセルを再初期設定もしくはリイニシャライズする
ポインタにより指示されるブロックは不正確な参照計数
を有することにな9、各ポインタが旧スペース ブロッ
クならびに新スペース内の転記されたブロック内に存在
することになって、ポインタで指示されたブロックの参
照計数が余分のポインタを反映しないことになるからで
ある。
第10(0)図に示すように、旧スペース21Q内のブ
ロック251のブロック見出しHaのMM111rタグ
もしくは標識フィールドに、値rgc−前進(g c−
forvara) Jが与えられ(gcはが−ペッジコ
レクションの意味)、そして最初のユーザのセルσ0に
は、ポインタBによって指示される仮想アドレスの値(
新スペース212内のブロックの仮想ア伊レスの値)が
与えられる。新スペース210内のブロック251の参
照計数には、「gc−前進」ポインタを考慮して値「1
」が与えられる。
第10(i)図に示すように、旧スペース210内で転
記されたブロック251に結合されている全ての連結レ
ジスタ211の仮想ア「レス フィールドは、新スペー
ス212内では、ポインタBにより指示される仮想アド
レスの値に変えられる。
この事により、実効的に、ブロック251の新アVレス
が新スペース212の結合レジスタ211のフィールド
にロードされる。最後に1第10(e)図に示すように
、ポインタBは、最後に転記されたブロック251を丁
度超えたところで新スペース212内のセルに変位され
、全てのロック ピットもしくはフラッグはリセットさ
れる。
次に第11図を参照するに、この図には、第9図と関連
して上に述べたようにイニシャライズされたメモリ ス
ペースに対し、第10(a)図ないし第10(e)図を
参照し上述した仕方でのガーベッジコレクション処理の
結合レジスタ追跡相が図解しである。図から明らかなよ
うに、各結合レジスタR4およびR7によって参照され
るブロックB1およびB3は旧スペース210から新ス
ペース212に転記される。旧スペース210内のブロ
ックに対する結合レジスタからのポインタは潰され、新
スペース212内の転記されたブロックに対するポイン
タと置換される。ブロックB1内の見出しは、ga−前
進で置き換えられ、そして新スペース212内の転記さ
れたブロックB1内の参照計数は増分される。ブロック
B3は、その結合レジスタR7以外は参照しないので、
旧スペース210のブロックB3の見出しには「gC−
前進」は要求されない。旧スペース210内のブロック
B3から旧スペース内のブロックB1の見出しを指示す
るポインタは潰される。と言うのは、このポインタは、
新スペース212内のブロックB3からのポインタによ
ってvjt、き換えられるからである。旧スペース21
0内のブロックB1から旧スペース内のブロックB4に
対するポインタも潰される。と言うのはこのポインタは
、新スペース内のブロックB1から旧スペース内のブロ
ックB4に向くポインタにより置換されるからである。
ポインタBは、新スペース212内のブロックB3の最
後のセルの底部に変位され、領域は、全ての内向き領域
間ポインタを追跡する追跡相における第2の段階の処理
を受は得る状態となる。
全ての内向き領域間ポインタは、IPTを介しガーベツ
ジ コレクタに対しては既知となる。工PTの各チーデ
ル記述項は、領域に対するポインタであるユーザのセル
を探知するのに用いられる。ユーザの各セルが探知され
ると、このセルのデータフィールドを用いて、当該セル
により指示されたブロックの仮想メモリ アドレスが決
定される。
これは、ポインタが、新スペース内のポインタSに1っ
て指示されるユーザのセルの代りに他の領域内のユーザ
のセルに由来する点を除き、後述のスカベンジ相中に行
われるアクションに非常によく類似している。
第12図に示すように、スカベンジ相は、連結レジスタ
または他の領域におけるユーザのセルから直接アクセス
可能な旧スペース210内の全てのブロックが新スペー
ス212に転記された後に開始される。最後に転記され
たブロックを丁度超えた位置にあるセルを指示する新ス
ペース212内のポインタBで、次のステップで新スペ
ース212内のポインタBとポインタSとの間のセルが
[スカベンジ(scavenge)もしくは掃除」され
る。Sにより指示されるセルが見出しセルでない場合に
&精のMMUタグ(標識)フィールドをチェックして、
ポインタ セルであるか否かを判定しなければならない
。ポインタ セルでない場合には、ポインタSを増分し
て同じプロセスを繰返す。セルのMMUタグ(標識)フ
ィールrが、領域内ポインタ セルであることを表す値
「領域内」を保有している場合には、ポインタSを増分
する前ならびに次のセルに対してプロセスを繰返す前に
、スカベンジ アクションがとられる。然る後に、ポイ
ンタSは増分され続け、該ポインタが指定するセルは、
ポインタSがポインタBと同じ新スペース212内のセ
ルに位置するまでチェックされる。
ポ′インタSのセルが領域内ポインタ セルであること
か検出された場合には、該セルにより指示されるブロッ
クの仮想メモリ アドレスを決定するためにデータ フ
ィールrが用いられる。ポインタはそれが指示するブロ
ックに続く。然る後に、当該ブロックの最初の見出し内
のMM111rタグもしくは標識フィールYの内容を見
ることにより、当該ブロックが新スペースに既に転記さ
れているか否かの判定が行われる。rgc−前進」の値
に出合うと、この事は、ブロックが既に転記されている
ことを意味する。他方、値「見出し−a」に出合うと、
この事はブロックがまだ転記されていないことを意味す
る。
見出しセルのH&のMMUタグ フィールドが値「見出
し−a」を有している場合には、ブロックは、新スペー
ス内のBにより指示されるアドレスに転記−される。し
たがって、第12図に示すように、ブロックB4は新ス
ペース212に転記される。ブロックの転記中、メモリ
のプロセッサが成るブロックに対し単−回のアクセスを
可能にするために、当該ブロックの6ビツトは、一時的
にcpwが当該ブロックをアクセスするのを阻止するよ
うにセットされる。そこで、ブロックはセルベースで転
記される。同時に、旧スペース内の元のブロックのユー
ザのセルがイニシャライズされる。rgc−前進」参肌
計数を、旧スペース内の元のブロックにセットする。新
スペース内の転記されたブロックの参照計数には、rg
C−前進」からの単−回の参照を反映するための値「1
」が与えられる。転記されたブロックを指示するセルを
再び読出す。その内容が参照である場合には、ポインタ
を付ける。最も確率が高いのは、丁度転記された旧スペ
ース内のブロックに対する参照であり、したがってr 
gc−前進」を格納している。その場合には、参照計数
を格納しているセルを更新して新スペース内の転記され
たブロックを参照する。
そのためには、旧スペース内のr gc−前進」ブロッ
クの参照計数の減分ならびに新スペース内の転記された
ブロックの増分が必要となる。希な事ではあるが今転記
されたブロックに対する参照計数が、その間に、データ
或いは他のポインタで書替見られている可能性がある。
その場合には、参照計数に対する更新或いは変更は行わ
れない。最後に、旧スペース内のr ga−前進」ブロ
ックが解放される。
ブロックの転記ステップにおいて同じポインタが存在す
ることを確かめるチェックの必要性は自明ではない。こ
のステップは、転記されつつあるブロックを参照するユ
ーザのセルが、ロックされていないブロックの一部分で
あることから必要とされるものである。該ブロックをロ
ックすることは可能ではあるが、その場合には、転記が
完了するまで当該ブロックの全てのユーザのセルに対す
るアクセスは拒否される。ブロック内には、C!PUが
必要とし得る幾つかのポインタが存在し得る。
したがって、ブロックはアクセス可能な状態に留まる。
その結果、CPUは、旧スペースから新スペースへの参
照計数の転記を開始したポインタそのものを潰すことが
可能である。CPUは、上位のユーザのセル内に異なっ
たポインタをローrしたり、セル内にデータを書込むこ
とができる。新スペースへの転記が完了したならば、新
スペース内のブロックを指示するようにユーザのセルを
盲目的に更新することは、メモリ プロセッサ側にとっ
て大きなエラーとなり得る。したがって、その代りにセ
ルを再び読出さなければならない。MMUタグ(標識)
をアクセスすることにより決定されるポインタが最早や
存在しない場合には、セルのスカベンジ処理は完了する
。該セルがポインタ セルである場合にはポインタが続
く。rgc−前進」に出合った時には、ポインタを更新
する。
上述の領域間ポインタ相中ならびにスカベンジ相中、ブ
ロックの転記に要求されるステップは、転記されつつあ
るブロックに連結されている結合レジスタをロック ア
ウトする必要性を何ら含まない。これは、結合レジスタ
は、旧スペース内のブロックに結合されないという「規
則」もしくは「ルール」に依る。しかしながらが−ベツ
ジ コレクタに対する排他的アクセスを保証するために
は、転記されつつあるブロックを、そのロックピットも
しくはタグをセットすることによりロックしなければな
らない。並列なガーペッジ コレクション処理を許容す
る場合にCPUならびにが一ベッジ コレクタが同時に
1つの特定のブロックの内容に゛アクセスすることは可
能である。しかしながら成る種の状況は由々しい問題を
齋す。例えば、が−ペック コレクタが、成るブロック
を新スペースに転記している過程にある間に、CPUは
、再初期設定もしくはリイニシャライズされた旧スペー
ス内のブロック内のセルからの有効な読取りを行ったり
、既に転記されておって新スペース内のブロックに反映
されていないセルに対する有効な書込みを行ったりする
ことができよう。したがって、ロック ぎットもしくは
フラッグは、ブロックをアクセスから阻止するのに用い
ることができるのである。
上に述べたように工PTを用いて領域間ポインタを維持
する特定の実施例においては、領域間ポインタであるユ
ーザのセルが新スペースに転記されそして元のユーザの
セルが上述のようにリイニンヤライズされる場合には常
に、他の領域における関連の工PTエントリもしくは記
述項を変更しなければならない。工PTに対して変更が
なされない場所には、工PTに従い、他の領域に対する
内向きポインタが、新スペース内のセルではなく旧スペ
ース内の元のセルから発生されることになろう。したが
って、旧スペースから新スペースへのブロックのセル 
ペースでの転記中に、各セルは、領域間ポインタである
か否かに関してチェックされる。
領域間ポインタでない場合には、セルは直ちに再初期設
定もしくはリイニシャライズすることができる。しかし
ながら、領域間ポインタであることが指示されている場
合には、参照計数が記憶されている領域における工P前
記述項を更新して新スペース内の転記されたセルを指示
するようにする必要がある。
成るブロックが既に新スペースに転記されているか否か
、ポインタで指示されたブロックのMMUタグ(標@)
フィールドが値r gc−前進」を有しているか否かの
判定に関して再び説明すると、この場合には転記は行わ
れない。何故ならば当該デロックは既に転記されている
からである。その代り、日により指示された新スペース
内のセルのデータ フィールPが、旧スペース内のブロ
ックの第1のユーザのセルのデータ フィールrの値に
変えられる。即ち指示されるブロックの順方向の仮想ア
Pレスに変えられる。この事は、単なる例としてではあ
るが、第12図に新スペース212におけるブロックB
1およびB3に関して図解しである。ポインタは、旧ス
ペース内の「gC−前進」ブロックどは最早や参照しな
いので、旧スペースブロックの参照計数は減分され、新
スペース内のブロックの参照計数は、図示のように、こ
れらブロックに対する新しい参照を考慮して増分される
旧スペース210において「gC−前進」ブロックの参
照計数が上述のステップ後に零に達すると、r gc−
前進」は最早や必要とされない。なぜならば、参照計数
は、最早や存在しないからである。
したがって、新スペース212内の転記されたブロック
を指示するようにポインタを更新する必要は最早や無い
。r gc−前進」ブロックの参照計数が零に達すると
、前進ポインタを潰すことができる。この場合、この事
は、新スペース212内の前進参照計数を「1」だけ増
分できることを意味する。しかしながら、上に述べたよ
うに、旧スペース内の「gC−前進」ブロックは回収さ
れない。
スカベンジ処理が完了すると、全ての有用なブロックは
新スペース212に転記されている。旧スペース210
内のユーザのセルから新スペースに対して参照は行われ
ないことは保証されるけれども、幾つかのr gc−前
進」ポインタが旧スペースから新スペースに参照を行う
可能性は十分にある。旧スペース内に、「go−前進」
ブロックに対する参照をする必要があるような現象が生
ずる。
このような現象は、旧スペース内のr gc−前進」ブ
ロックに対しさらに参照がなされる場合に起る。
ユーザのセルがr gc−前進」ブロックを指示する1
つまたは2つ以上のが一ベツジ ブロックで、当該rg
c−前進」ブロックに対し非零の参照計数が生ずる。r
 gc−前進」ブロックの参照計数が零に達するまで、
新スペース内のブロックに対する前進参照計数は残存す
る。
第16図は、旧スペース260から新スペース265へ
の残存前進ポインタの例を示す。スカベンジ処理は丁度
完了したところである。ブロックB2′は、結合レジス
タ266によって指示され、したがって新スペース26
5にある。旧スペース内のブロックB1は、結合レジス
タに連結されてはおらずまた新スペース内のセルにより
結合レジスタに連結されてもいない。ブロックB1は、
零よりも大きい参照計数を有しており、したがってその
限りにおいてガーペッジ コレクション処理を生き抜い
ている。ブロックB1のセルのうちの1つが旧スペース
内のブロックB2を指示し、ブロックB2に対し非零の
参照計数を生ずる危険が存在する。さらに、旧スペース
内のブロックB2は、新スペース内のブロック32′に
対し前進参照を行うことができる。ブロックB2′は、
その参照計数において、ブロックB2から前進参照を受
ける。したがってが−ペック コレクションの完了の際
に矯正アクションが行われない場合には、旧スペース内
のブロックB1およびブロックB2は消失するが、ブロ
ックB2′は誤った参照計数を有し続は得る。旧スペー
スを単に利用可能な断片のリストに戻した場合に生ずる
このような潜在的問題に鑑みて、旧スペース内の全ての
が−ベラジブロックのセルをスカベンジ(掃除)して旧
スペース内の他のブロックに対する参照を潰すことが必
要である。同時に、旧スペース内のセルは、割当変更を
受けることができるようにリイニシャライズされる。
が−ペック ブロックのユーザのセル内の全てのポイン
タを潰すことなく旧スペースを単に回収するとした場合
には別の問題が起り得る。例えば、他の領域におけるブ
ロックに対する外向き領域間ポインタが誤って破壊され
る可能性がある。このようにが−ペック ブロック内の
領域間ポインタを誤って破壊すると、他の領域に位置す
るブロック内に誤った参照計数が生じ得る。さらに、他
の領域の工PTは、該領域について存在しない参照デー
タを参照し続けることになる。この領域に関してが−ペ
ック コレクションを行うときには、このような参照の
試みは由々しい問題となろう。
旧スペース ブロックをスカベンジし残存ポインタを潰
す過程において、が−ペック コレクションが行われつ
つちる領域内の全てのゾロ・ツクの全ての参照計数の精
度もしくは有効性を交差チェックする機会が存在する。
が−ベック コレクションの旧スペースのクリーニング
相の完了時には、全てのブロックは零の参照計数を有し
ているはずである。それと異なる結果は、由々しいエラ
ーを意味する。
次に述べる旧スペース クリーニング方式は、それが有
効となるためには、その実施に成る種の条件が課せられ
る。通常の参照計数メカニズムの過程中はブロック回収
方法は、最早や使用されていないブロックを記録し続け
なければならない。
即ち、メモリ プロセッサは、仮想アドレス空間内の「
ホール(穴)」の位置および大きさに関する情報を有し
なければならない。この方式は、この条件が満されない
と不可能であるが、この相を完了するには相当長い時間
を要する。と言うのは、既にイニシャライズされている
多くのセルが不必要にもスカベンジ(掃除)されてしま
うからである。
また、メモリ プロセッサは、が−ベック コレクショ
ンが行われている領域の旧スペースにおける通常のブロ
ック回収を「ターン オフ」する能力を有するのが望ま
しい。参照計数が零に達すると、参照計数メカニズムは
、ブロックにより占有されている領域には戻らない。メ
モリ プロセッサはそこで、その作業を参照計数メカニ
ズム側を遮断することなく、が−ペック コレクション
に集中することができる。が−ベック コレクション後
、旧スペース全体は利用可能なスペースの集まりもしく
はプールに戻される。ここで、回収は旧スペースで停止
されるものと仮定する。したがって例えば、旧スペース
内の「gC−前進ブロック」が零に達つしている参照計
数を有している場合には、このブロックは依然として旧
スペース内に留まる。
各ブロックの見出しセル′Hbには、「スカベンジ」フ
ラッグ ビットが設けられている(第6図参照)。この
Cットは、が−ペック コレクシ目ン相中に有用となる
。後述の、旧スペースのクリーニングで、旧スペース全
体に渡り単−回のスカベンジが行われる。旧スペース全
体が掃引されると、各セルはイニシャライズされる。し
かしながら、追って明らかに°なるように、成るセルの
早まったイニシャライジングもしくは初期設定は、有用
である情報を破壊してしまう。したがって、成るセルを
スカベンジする場合に、相の後期におい成る条件が満さ
れるまで初期設定もしくはイニシャライズは行うことが
できず、スカベンジ フラッグ ビットを介して既にス
カベンジされたセルであることのフラッグが立てられる
旧スペースのスカベンジが完了した後に、旧スペース内
には3種類の客体が存在する。即ち、(1)割当てられ
ていない領域断片と、(2)新スペースに転記されて現
在r gc−前進」アドレスを収容している元の有用な
ブロックと、(3)ガーペッジ ブロックである。
これら客体の1つが、一度に1つのセルずつ旧スペース
の全長を走査するポインタSにより指示されると、後述
するような成る種のアクションが生ずる。その場合のア
ルゴリズムは、大きいセル群が、それらの内容をチェッ
クする必要無しに看過されるという点を除いて、新スペ
ースのスカベンジ処理で用いられたアルゴリズムと類似
している。ポインタ日は必要のあるセルだけに関与する
式インタSは、最初、旧スペース内の最下位アドレス 
セルを指示する。このアドレスにおいては、3つの客体
のうちの1つに出会う。以下、それがどの容体であるか
を判定する仕方について述べる。ポインタSは総ての旧
スペースが掃引されるまでセルを走査し続ける。各客体
に対してとられるアクションは次の通りである。
1 領域断片二指水されているセルのMMUタグ(標+
*)フィールドが、それがイニシャライズもしくは初期
設定されたセルであることを表わす値を有している場合
には、次のN個のセルは、力一ペック コレクションの
直前までは割当てられていなかったことになる。例えば
、ブロックはその参照計数が零に達した後に固状されて
おり、そしてセルは他のブロックを形成するために再割
当てされていなかった。数Nは、領域断片リストをアク
セスすることにより決定することができる。ポインタS
は、ポインタに対する中間セルをスカベンジする必要は
ないのでNセルだけ増分することができる。
2 前進アトVスを有するブロック:指示されたセルの
MMUタグ(標識)フィールドが値「gO−forwa
r、d(前進)」を有している場合には、セルは、新ス
ペースに転記されたブロックの第1の見出しセルHaで
ある。このブロックのユーザのセル総てが再初期設定さ
れているので、これらセルはスカベンジする必要はない
。したがってポインタSは、ブロックを丁度越える位置
にあるセルまで増分される。ブロックのユーザのセルは
、追跡もしくはスカベンジ相中にリイニシャライズされ
ているが、現在前進アfレスを保有するに1のユーザの
セルおよび2つの見出しセルはリイニシャライズされて
いない。前進アダレスは、ブロックに対する総ての有用
なポインタが潰されていることが判定されるまで有用と
して留まる。ガーベッジ ブロック内には、ポインタS
でブロックを指示するセルが存在し得る。前進アrレス
が無い場合には、前進に関する参照が最終的に潰された
時、即ち旧スペース内のブロックに対する最後の参照が
潰された後には、新°スペース内における参照計数を何
処で減分すべきかを知ることができない。新スペースの
スカベンジ処理の完了は前進ポインタが最早や必要でな
いことを表わす。順方向を指示しているが一ペツゾ ブ
ロックがあれば、新スペースを指示するように更新する
のではなく潰す。
したがって、第1のユーザのセルUOにおけるrgc−
前進」が存在すると仮定するとポインタは潰され、その
新スペース内の参照計数は「1」だけ減分された参照計
数となる。r gc−前進」ブロックに対する参照計数
が、が−ベック コレクションの初期の相において既に
零に達してiる場合には、該rgc−前進」ポインタは
既に潰されている可能性がある。そこで、Sによって指
示されるブロックの見出しセルの再初期設定の判定にお
いては注意を要する。参照計数はチェックしなければな
らない。この計数が零である場合にはとのことは、それ
を指示するゴーベック セルは存在しないことを意味し
、セルを再゛初期設定もしくはリイニンアライズするこ
とができる。参照計数が零よりも大きい時には、情報が
残存していることを寡味する。さらにHbにスカベンジ
 ピットがセットされる。これは、日が旧スペースを前
進し続け、そして既に通過したセルには決して戻ること
がないので、参照計数が零に達した時に見出しセルを再
初期設定するのに必要である。
6 が−ペック ブロック:指示されたセルの四Uタグ
(標a>フィールVが値「見出し1」を有している場合
には、これは、が−ベック ブロックの端切の見出しセ
ルHaである。ガーペッジデロックのセルをスカベンジ
処理する前に、前進アーレスを有するブロックの場合と
将に同様に、参照計数をチェックする。この計数が零で
ある場合には、見出しセルを再初期設定する。そうでな
い場合には、Hbにスカベンジ フラッグをセットする
。この場合には、ブロックの各セルをチェックしなけれ
ばならない。日がブロックにおいて1度に1セルずつ前
進する際に、MMUタグ フィールドをチェックして、
ポインタセルであることを意味する「領域内」または「
領域間」の値を有しているか否かを確かめる。この値を
有していない場合には、セルは再初期設定される。また
、領域内ポインタである場合には、このポインタはセル
を再初期設定する前に潰さなければならない。
データ フィールドは指示されたブロックのアYレスを
保有している。スカベンジされつつあるセルによシ指示
されている旧スペース内のブロックの参照計数は減分さ
れる。参照計数を減分して零にし、ブロックのHbにス
カベンジ フラッグをセットした場合には、当該デUツ
クに対するポインタは最早や存在しないので、見出しセ
ルを再初期設定する。スカベンジ ピットがセットされ
ていない場合には、Sポインタが当該ブロックに到達し
た時点で、今度は無用なセルを再初期設定する。他方、
ポインタが領域間ポインタであることが判明したならば
、ポインタを潰し、参照計数を減分し、参照側の記述項
のIPT表から関連の記述項を除去する。
総てのアクセス可能なブロックを新スペースに転記し、
そして総ての適用可能なポインタを更新したならば(こ
のことはポインタSが新スペース内のポインタに達して
いると言う事実によって示される)、が−ペック コレ
クションが本質的に完了している。後は唯利用可能なセ
ルの断片リストに旧スペース(opDspAcz)を挿
入し、ポインタBとポインタTとの間にあるメモリ部分
であるところの新スペース(NmwspAcx)の未使
用の部分を領域アロケータに利用可能にすることだけで
ある。
かくして領域のガーベッジ コレクションは完了する。
以上、本発明を成る程度特定的に説明したが、ここに開
示した内容は単なる例に過ぎず、本発明の精神および範
囲から逸脱することなく当業者には組合せおよび6配列
もしくは構成における数多の変更が可能であろうことは
理解されるであろう。
【図面の簡単な説明】
第1図は、ユーザのCPUと、物理的メモリと、本発明
による記憶域管理装置MMUの相互関係を示すブロック
 ダイヤグラム、第2図は、結合されるユーザのプロセ
ッサに対し論理的記憶空間として現われる本発明による
記憶装置のブロック ダイヤグラム、第6図は、本発明
の記憶装置の好ましい実施例を実現する上でM’MUに
おいて使用される結合もしくは連結レジスタ構造を示す
ブロックダイヤグラム、第4図は、本発明により記憶装
置を実現する上で用いられる結合レゾスフ装置のブロッ
ク ダイヤグラム、第5図は、本発明による記憶装置を
汎用ハードウェアで実現する構成を示すブロック ダイ
ヤグラム、第6図は、本発明による記憶装置の仮想アト
Vス空間の一部分を示す図であって、領域間および領域
内式インク構成の種々な形態を図解するダイヤグラム、
第7図は、ガーペッジ コレクション前の本発明の記憶
装置の仮想アドレス空間の領域を図解するダイヤグラム
、第8図は、第7図に示した仮想アrレス空間に対して
行なわれるガーペッジ コレクション処理から生ずるが
−ペック コレクション後の本発明による記憶装置の仮
想アドレス空間の1つの領域を示す図、第9図は、ガー
ベッジ コレクション処理の準備段階として領域の初期
設定相を示す本発明による記憶装置の仮想アダレス空間
の部分を示す図、第10&図ないし第10e図は、が−
ベック処理されているスペースもしくは空間から結合さ
れたブロックを新スペースに転記する段階を図解する図
、第11図は、が−ベック コレクション処理中の結合
レジスタを追跡した後の領域を図解する図、第12図は
、第11図において追跡された領域をスカベンジした結
果を図解する図、そして第16図は、クリーニング前の
旧スペースを図解するダイヤグラムである。 11・・・記憶域管理装置(MMU)、12・・・物理
的メモリ、15・・・連結レジスタ装置、20・・・a
pty 。 64・・・MMUタグ(標識)、80・・・CPUイン
ターフェース、81・・・プロセッサ インターフェー
ス、83・・・連結レジスタ ファイル、84・・・デ
ータ路制御回路、90・・・命令デコーダ、92・・・
シーケンサ、93・・・制御ROM / RAM 、 
10O・・・プロセッサ、102・・・主メモリ、10
4・・・ページ テーブル装置、106・・・ディスク
装置、108・・・ディスクコントローラ

Claims (13)

    【特許請求の範囲】
  1. (1)ユーザのプロセッサと結合して用いられ、該ユー
    ザのプロセッサと独立して動作する記憶装置において、 少なくとも1つの物理的メモリと、 少なくとも前記物理的メモリを表わす仮想アドレス空間
    を表わす論理アドレス空間のブロックを前記ユーザのプ
    ロセッサが割当てることを可能にするように前記物理的
    メモリをユーザのプロセッサに接続して、ユーザが与え
    るデータを前記割当てられた論理アドレス空間に書込ん
    だり、前記割当てられた論理アドレス空間から読出した
    り、前記論理アドレス空間内の2つのポインタが割当て
    られた論理アドレス空間の同じブロックを指示している
    か否かの判定を行なうための「EQテスト」を行ない、
    そしてポインタを前記割当てられた論理アドレス空間内
    に転記するための手段と、前記仮想アドレス空間内の少
    なくとも参照されないブロックのガーベッジコレクショ
    ンを行なうための手段とを備えた記憶装置。
  2. (2)接続手段が、ユーザのプロセッサと論理アドレス
    空間とを接続するための複数個の連結レジスタを備えて
    いる特許請求の範囲第1項記載の記憶装置。
  3. (3)ユーザのプロセッサが論理アドレス空間のブロッ
    クを割当てることを可能にするための手段が、ユーザの
    プロセッサにより特定される任意長のメモリのブロック
    を割当てるための手段を備え、前記ブロックは少なくと
    も、前記割当てられたブロックがポインタにより参照さ
    れているか否かを指示するための手段を有している特許
    請求の範囲第1項記載の記憶装置。
  4. (4)記憶装置の組織を維持するためのメモリプロセッ
    サを備えている特許請求の範囲第3項記載の記憶装置。
  5. (5)物理的メモリが、複数個の半導体ランダムアクセ
    スメモリと、ディスクメモリと、ディスクコントローラ
    とを備えており、メモリプロセッサは、前記ディスクメ
    モリと前記物理的メモリとの間における情報の流れを制
    御するために前記ディスクコントローラの動作を制御す
    る特許請求の範囲第4項記載の記憶装置。
  6. (6)循環的ポインタ参照構造を有するブロックであつ
    て、該構造の外部からブロックまたは連結レジスタポイ
    ンタ参照を受けないブロックを割当解除するためのガー
    ベッジコレクション手段を備えている特許請求の範囲第
    4項記載の記憶装置。
  7. (7)ガーベッジコレクション手段が、さらに、循環的
    ポインタ参照構造を分離するための手段を備えている特
    許請求の範囲第6項記載の記憶装置。
  8. (8)少なくとも、ガーベッジコレクションが選択的に
    実施される仮想アドレス空間の領域を備えている特許請
    求の範囲第6項記載の記憶装置。
  9. (9)ガーベッジコレクション手段が、ガーベッジコレ
    クションが選択的に行なわれる領域から、割当てられて
    おつて収集されていないブロックを新しい領域に凝集す
    るための手段を備えている特許請求の範囲第8項記載の
    記憶装置。
  10. (10)ユーザのプロセッサの動作と並列にガーベッジ
    コレクション手段を動作するための手段を備えている特
    許請求の範囲第6項記載の記憶装置。
  11. (11)ユーザのプロセッサと結合される記憶装置にお
    いて、 物理的メモリと、 該物理的メモリが、前記ユーザのプロセッサに対して、
    該ユーザのプロセッサにより情報を読出したり書込んだ
    りするために、該ユーザのプロセッサにより任意に割当
    て可能な長さのブロックにアクセスすることを可能にす
    る連結レジスタとして見做されるように、前記物理的メ
    モリをユーザのプロセッサに接続するためのインターフ
    ェース手段と、 前記物理的メモリを表わす仮想アドレス空間においてガ
    ーベッジコレクションを行なうための手段とを備え、該
    ガーベッジコレクション手段は、アクセスできないブロ
    ックを割当解除するために、前記ユーザのプロセッサと
    並列に動作する記憶装置。
  12. (12)ユーザのプロセッサと共に使用される記憶装置
    において、 物理的メモリと、 データ操作のために前記ユーザのプロセッサにより相対
    記憶場所を位置出しすることを可能にするために、メモ
    リおよびデータのブロックに対する識別子だけを格納す
    る前記ユーザのプロセッサに対しアクセス可能な複数の
    レジスタを有する連結レジスタ装置と、 前記物理的メモリおよび連結レジスタを管理するための
    前記ユーザのプロセッサとは独立した手段とを備え、前
    記記憶装置は、前記ユーザのプロセッサに対し見掛け上
    、前記連結レジスタによつてのみアクセス可能なユーザ
    指定のブロックの集りであり、 さらに、ユーザのプロセッサの動作とは独立に且つそれ
    と並列に物理的メモリを表わす仮想アドレス空間のガー
    ベッジコレクションを行なうために前記物理的メモリお
    よび連結レジスタ管理手段を制御するためのコンピュー
    タプログラム手段とを含む記憶装置。
  13. (13)メモリのブロックの識別子がポインタであり、
    さらに、各ブロックと結合されてポインタが関連のブロ
    ックを指示しているか否かを表わす手段と該指示手段は
    、参照を表わしておらず該ブロックが結合レジスタ装置
    を介してアクセスすることができない場合に、該ブロッ
    クを割当解除するための手段とを備えている特許請求の
    範囲第12項記載の記憶装置。
JP60167863A 1984-07-31 1985-07-31 接続されたユ−ザのプロセツサとは独立の並列ガ−ベツジコレクシヨン機能を有するコンピユ−タ記憶装置 Expired - Lifetime JP2564483B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US06/636,187 US4775932A (en) 1984-07-31 1984-07-31 Computer memory system with parallel garbage collection independent from an associated user processor
US636187 1984-07-31

Publications (2)

Publication Number Publication Date
JPS61105653A true JPS61105653A (ja) 1986-05-23
JP2564483B2 JP2564483B2 (ja) 1996-12-18

Family

ID=24550821

Family Applications (1)

Application Number Title Priority Date Filing Date
JP60167863A Expired - Lifetime JP2564483B2 (ja) 1984-07-31 1985-07-31 接続されたユ−ザのプロセツサとは独立の並列ガ−ベツジコレクシヨン機能を有するコンピユ−タ記憶装置

Country Status (3)

Country Link
US (1) US4775932A (ja)
EP (1) EP0173464A3 (ja)
JP (1) JP2564483B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0581120A (ja) * 1991-09-19 1993-04-02 Agency Of Ind Science & Technol データ処理装置
WO2010018613A1 (ja) * 2008-08-11 2010-02-18 富士通株式会社 ガーベジコレクションプログラム、及びガーベジコレクション方法、ならびにガーベジコレクションシステム

Families Citing this family (190)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62208977A (ja) * 1986-03-10 1987-09-14 Brother Ind Ltd プリンタ
GB8613069D0 (en) * 1986-05-29 1986-07-02 Univ Manchester Parallel storage allocation
US4912629A (en) * 1986-06-26 1990-03-27 The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration Real-time garbage collection for list processing using restructured cells for increased reference counter size
US4967353A (en) * 1987-02-25 1990-10-30 International Business Machines Corporation System for periodically reallocating page frames in memory based upon non-usage within a time period or after being allocated
US4989134A (en) * 1987-03-20 1991-01-29 Hewlett-Packard Company Method and apparatus for enhancing data storage efficiency
US4961137A (en) * 1987-04-17 1990-10-02 U.S. Philips Corporation Method for operating a multiprocessor system for therein establishing a global binary assertion and a multiprocessor apparatus comprising synchronization means for such establishing, in particular for effecting a garbage collection operation
US5136706A (en) * 1987-04-30 1992-08-04 Texas Instruments Incorporated Adaptive memory management system for collection of garbage in a digital computer
US5121495A (en) * 1988-02-02 1992-06-09 Bell Communications Research, Inc. Methods and apparatus for information storage and retrieval utilizing hashing techniques
US4996663A (en) * 1988-02-02 1991-02-26 Bell Communications Research, Inc. Methods and apparatus for decontaminating hash tables
US5438674A (en) * 1988-04-05 1995-08-01 Data/Ware Development, Inc. Optical disk system emulating magnetic tape units
US5455926A (en) * 1988-04-05 1995-10-03 Data/Ware Development, Inc. Virtual addressing of optical storage media as magnetic tape equivalents
US4953080A (en) * 1988-04-25 1990-08-28 Hewlett-Packard Company Object management facility for maintaining data in a computer system
US4907151A (en) * 1988-09-30 1990-03-06 Digital Equipment Corporation System and method for garbage collection with ambiguous roots
DE68928782T2 (de) * 1988-12-14 1998-12-24 Sony Corp Datenverwaltungssystem
US5088036A (en) * 1989-01-17 1992-02-11 Digital Equipment Corporation Real time, concurrent garbage collection system and method
US5297283A (en) * 1989-06-29 1994-03-22 Digital Equipment Corporation Object transferring system and method in an object based computer operating system
US5321834A (en) * 1989-11-28 1994-06-14 Xerox Corporation Method and system for reclaiming unreferenced computer memory space
JPH0792775B2 (ja) * 1989-12-11 1995-10-09 株式会社日立製作所 外部記憶装置群のスペース管理方法
GB2251324B (en) * 1990-12-31 1995-05-10 Intel Corp File structure for a non-volatile semiconductor memory
GB2251323B (en) * 1990-12-31 1994-10-12 Intel Corp Disk emulation for a non-volatile semiconductor memory
US5237673A (en) * 1991-03-20 1993-08-17 Digital Equipment Corporation Memory management method for coupled memory multiprocessor systems
US5319778A (en) * 1991-07-16 1994-06-07 International Business Machines Corporation System for manipulating elements in linked lists sharing one or more common elements using head nodes containing common offsets for pointers of the linked lists
US5355483A (en) * 1991-07-18 1994-10-11 Next Computers Asynchronous garbage collection
US5809551A (en) * 1991-08-23 1998-09-15 International Business Machines Corporation Pending page release
US5485613A (en) * 1991-08-27 1996-01-16 At&T Corp. Method for automatic memory reclamation for object-oriented systems with real-time constraints
US5659744A (en) * 1991-10-15 1997-08-19 International Computers Limited Data file store system with means for efficiently managing freeing of data blocks
US5367637A (en) * 1992-03-26 1994-11-22 International Business Machines Corporation Self-tuning virtual storage management for dedicated real-time computer system
US5398334A (en) * 1992-04-06 1995-03-14 General Electric Company System for automatic garbage collection using strong and weak encapsulated pointers
EP0574884B1 (en) * 1992-06-15 2003-02-19 Microsoft Corporation A computer method and system for memory management
CA2119788C (en) * 1992-07-24 1996-12-31 Peter L. Morse Computer method and system for allocating and freeing memory
US5577246A (en) * 1992-09-25 1996-11-19 Lucent Technologies Inc. Database memory compaction and reclamation method
US5581724A (en) * 1992-10-19 1996-12-03 Storage Technology Corporation Dynamically mapped data storage subsystem having multiple open destage cylinders and method of managing that subsystem
US5740395A (en) * 1992-10-30 1998-04-14 Intel Corporation Method and apparatus for cleaning up a solid state memory disk storing floating sector data
US5479633A (en) * 1992-10-30 1995-12-26 Intel Corporation Method of controlling clean-up of a solid state memory disk storing floating sector data
US5560003A (en) * 1992-12-21 1996-09-24 Iowa State University Research Foundation, Inc. System and hardware module for incremental real time garbage collection and memory management
US5761739A (en) * 1993-06-08 1998-06-02 International Business Machines Corporation Methods and systems for creating a storage dump within a coupling facility of a multisystem enviroment
US5682497A (en) * 1993-09-28 1997-10-28 Intel Corporation Managing file structures for a flash memory file system in a computer
US5664060A (en) * 1994-01-25 1997-09-02 Information Storage Devices Message management methods and apparatus
US5583988A (en) * 1994-03-09 1996-12-10 National Instruments Corporation Method and apparatus for providing runtime checking features in a compiled programming development environment
JPH086843A (ja) * 1994-06-23 1996-01-12 Fujitsu Ltd 半導体記憶装置
US5613063A (en) * 1994-07-01 1997-03-18 Digital Equipment Corporation Method and apparatus for checking validity of memory operations
US6341293B1 (en) * 1994-07-13 2002-01-22 Object Technology Licensing Corp Real-time computer “garbage collector”
US5687368A (en) * 1994-07-22 1997-11-11 Iowa State University Research Foundation, Inc. CPU-controlled garbage-collecting memory module
US5765175A (en) * 1994-08-26 1998-06-09 Intel Corporation System and method for removing deleted entries in file systems based on write-once or erase-slowly media
US5809558A (en) * 1994-09-29 1998-09-15 Intel Corporation Method and data storage system for storing data in blocks without file reallocation before erasure
US5754817A (en) * 1994-09-29 1998-05-19 Intel Corporation Execution in place of a file stored non-contiguously in a non-volatile memory
US5687370A (en) 1995-01-31 1997-11-11 Next Software, Inc. Transparent local and distributed memory management system
US6571262B2 (en) * 2000-02-14 2003-05-27 Apple Computer, Inc. Transparent local and distributed memory management system
US5604902A (en) * 1995-02-16 1997-02-18 Hewlett-Packard Company Hole plugging garbage collection for a data storage system
US6167503A (en) * 1995-10-06 2000-12-26 Compaq Computer Corporation Register and instruction controller for superscalar processor
US5689707A (en) * 1995-12-04 1997-11-18 Ncr Corporation Method and apparatus for detecting memory leaks using expiration events and dependent pointers to indicate when a memory allocation should be de-allocated
US5794044A (en) * 1995-12-08 1998-08-11 Sun Microsystems, Inc. System and method for runtime optimization of private variable function calls in a secure interpreter
US5860082A (en) * 1996-03-28 1999-01-12 Datalight, Inc. Method and apparatus for allocating storage in a flash memory
US6233621B1 (en) * 1996-04-30 2001-05-15 Sun Microsystems, Inc. System and method for space efficient hashcode allocation
US6186677B1 (en) 1996-08-27 2001-02-13 Compuware Corporation Byte code instrumentation
US5987249A (en) * 1996-08-27 1999-11-16 Numega Technologies IR code instrumentation
US5930830A (en) * 1997-01-13 1999-07-27 International Business Machines Corporation System and method for concatenating discontiguous memory pages
US5911144A (en) * 1997-04-23 1999-06-08 Sun Microsystems, Inc. Method and apparatus for optimizing the assignment of hash values to nodes residing in a garbage collected heap
US5953736A (en) * 1997-04-23 1999-09-14 Sun Microsystems, Inc. Write barrier system and method including pointer-specific instruction variant replacement mechanism
US5915255A (en) * 1997-04-23 1999-06-22 Sun Microsystems, Inc. Method and apparatus for referencing nodes using links
US6115782A (en) * 1997-04-23 2000-09-05 Sun Micosystems, Inc. Method and apparatus for locating nodes in a carded heap using a card marking structure and a node advance value
US5903900A (en) * 1997-04-23 1999-05-11 Sun Microsystems, Inc. Method and apparatus for optimizing exact garbage collection of array nodes in a carded heap
US5900001A (en) * 1997-04-23 1999-05-04 Sun Microsystems, Inc. Method and apparatus for optimizing exact garbage collection using a bifurcated data structure
US5920876A (en) * 1997-04-23 1999-07-06 Sun Microsystems, Inc. Performing exact garbage collection using bitmaps that identify pointer values within objects
US6098089A (en) * 1997-04-23 2000-08-01 Sun Microsystems, Inc. Generation isolation system and method for garbage collection
US6038572A (en) * 1997-04-23 2000-03-14 Sun Microsystems, Inc. Method and apparatus for localizing nodes in a garbage collected carded heap
US5845298A (en) * 1997-04-23 1998-12-01 Sun Microsystems, Inc. Write barrier system and method for trapping garbage collection page boundary crossing pointer stores
US6049810A (en) * 1997-04-23 2000-04-11 Sun Microsystems, Inc. Method and apparatus for implementing a write barrier of a garbage collected heap
US5933840A (en) * 1997-05-19 1999-08-03 International Business Machines Corporation Garbage collection in log-structured information storage systems using age threshold selection of segments
US6199075B1 (en) * 1997-05-30 2001-03-06 Sun Microsystems, Inc. Method and apparatus for generational garbage collection of a heap memory shared by multiple processors
US6182107B1 (en) * 1997-06-03 2001-01-30 Object Technology Licensing Corporation Management of reference object lifetimes in object oriented programs
US5873104A (en) * 1997-06-26 1999-02-16 Sun Microsystems, Inc. Bounded-pause time garbage collection system and method including write barrier associated with source and target instances of a partially relocated object
US5873105A (en) * 1997-06-26 1999-02-16 Sun Microsystems, Inc. Bounded-pause time garbage collection system and method including write barrier associated with a source instance of a partially relocated object
US5857210A (en) * 1997-06-26 1999-01-05 Sun Microsystems, Inc. Bounded-pause time garbage collection system and method including read and write barriers associated with an instance of a partially relocated object
US6055612A (en) * 1997-07-11 2000-04-25 Geodesic Systems, Inc. Incremental garbage collector with decommit barrier
US6144965A (en) * 1997-09-24 2000-11-07 Sony Corporation Performing memory management in an object-oriented programming environment
US6151685A (en) * 1998-05-15 2000-11-21 International Business Machines Corporation System and method for recovering a segment directory for a log structured array
US7013305B2 (en) 2001-10-01 2006-03-14 International Business Machines Corporation Managing the state of coupling facility structures, detecting by one or more systems coupled to the coupling facility, the suspended state of the duplexed command, detecting being independent of message exchange
US6327701B2 (en) * 1998-09-15 2001-12-04 Sun Microsystems, Inc. Method and apparatus for finding bugs related to garbage collection in a virtual machine
US6226761B1 (en) 1998-09-24 2001-05-01 International Business Machines Corporation Post dump garbage collection
GB9907278D0 (en) * 1999-03-31 1999-05-26 Philips Electronics Nv Memory reclamation method and apparatus
US6363403B1 (en) * 1999-06-30 2002-03-26 Lucent Technologies Inc. Garbage collection in object oriented databases using transactional cyclic reference counting
US6393440B1 (en) * 1999-12-13 2002-05-21 International Business Machines Corporation Data structure for keeping track of objects remaining to be traced by concurrent garbage collector
JP4050855B2 (ja) * 2000-01-28 2008-02-20 松下電器産業株式会社 ガベージコレクション装置および方法
US6823351B1 (en) * 2000-05-15 2004-11-23 Sun Microsystems, Inc. Work-stealing queues for parallel garbage collection
US6526422B1 (en) * 2000-05-15 2003-02-25 Sun Microsystems, Inc. Striding-type generation scanning for parallel garbage collection
US6826583B1 (en) 2000-05-15 2004-11-30 Sun Microsystems, Inc. Local allocation buffers for parallel garbage collection
US6463515B1 (en) 2000-06-23 2002-10-08 Dell Products L.P. System and method for recovering physical memory locations in a computer system
US7216136B2 (en) * 2000-12-11 2007-05-08 International Business Machines Corporation Concurrent collection of cyclic garbage in reference counting systems
US6993770B1 (en) * 2001-01-12 2006-01-31 Sun Microsystems, Inc. Lock free reference counting
US6654773B2 (en) * 2001-02-27 2003-11-25 Tajea Corporation Method of deterministic garbage collection
US7103887B2 (en) * 2001-06-27 2006-09-05 Sun Microsystems, Inc. Load-balancing queues employing LIFO/FIFO work stealing
GB0116497D0 (en) * 2001-07-06 2001-08-29 Koninkl Philips Electronics Nv Receiver apparatus and method
US7047213B2 (en) * 2001-10-03 2006-05-16 International Business Machines Corporation Method for purging abandoned shopping carts from an electronic commerce web site
KR100591117B1 (ko) * 2002-03-20 2006-06-19 리서치 인 모션 리미티드 이동 장치에서의 안전 가비지 수집 시스템 및 방법
US6728738B2 (en) * 2002-04-03 2004-04-27 Sun Microsystems, Inc. Fast lifetime analysis of objects in a garbage-collected system
US7403961B1 (en) * 2003-03-14 2008-07-22 Xilinx, Inc. Dangling reference detection and garbage collection during hardware simulation
GB2406181B (en) * 2003-09-16 2006-05-10 Siemens Ag A copy machine for generating or updating an identical memory in redundant computer systems
US7191307B1 (en) * 2004-12-14 2007-03-13 Sun Microsystems, Inc. Memory management unit technique to detect cross-region pointer stores
US7716403B2 (en) * 2005-09-30 2010-05-11 Rockwell Automation Technologies, Inc. Information technology integration with automation systems
US7734603B1 (en) * 2006-01-26 2010-06-08 Netapp, Inc. Content addressable storage array element
US8229902B2 (en) 2006-11-01 2012-07-24 Ab Initio Technology Llc Managing storage of individually accessible data units
US7885932B2 (en) * 2006-11-01 2011-02-08 Ab Initio Technology Llc Managing storage of individually accessible data units
KR100789406B1 (ko) * 2006-11-03 2007-12-28 삼성전자주식회사 플래시 메모리 시스템 및 그것의 가비지 컬렉션 방법
KR20080085574A (ko) * 2007-03-20 2008-09-24 삼성전자주식회사 비휘발성 메모리의 가비지 컬렉션을 위한 장치 및 방법
US7685182B2 (en) * 2007-05-08 2010-03-23 Microsoft Corporation Interleaved garbage collections
US20090094301A1 (en) * 2007-10-05 2009-04-09 Microsoft Corporation Applications of overlooking root information for improving nondeferred reference-counting garbage collection
US8103706B2 (en) * 2007-10-05 2012-01-24 Microsoft Corporation Nondeferred reference-counting garbage collection using overlooking roots
US9208081B1 (en) * 2007-11-30 2015-12-08 Oracle America, Inc. Concurrent object management
US8239611B2 (en) 2007-12-28 2012-08-07 Spansion Llc Relocating data in a memory device
US8301672B2 (en) * 2008-09-22 2012-10-30 Advanced Micro Devices, Inc. GPU assisted garbage collection
US8473900B2 (en) * 2009-07-01 2013-06-25 Advanced Micro Devices, Inc. Combining classes referenced by immutable classes into a single synthetic class
US8200718B2 (en) * 2009-07-02 2012-06-12 Roberts Michael L Parallelized, incremental garbage collector
JP4745465B1 (ja) * 2010-01-29 2011-08-10 株式会社東芝 半導体記憶装置及び半導体記憶装置の制御方法
US8327109B2 (en) * 2010-03-02 2012-12-04 Advanced Micro Devices, Inc. GPU support for garbage collection
US8108447B2 (en) * 2010-03-11 2012-01-31 Symantec Corporation Systems and methods for garbage collection in deduplicated data systems
US8577936B2 (en) * 2010-11-29 2013-11-05 International Business Machines Corporation Fixup cache tool for object memory compaction in an information handling system
US8661221B2 (en) * 2011-03-16 2014-02-25 International Business Machines Corporation Leasing fragmented storage between processes
US20130013605A1 (en) 2011-07-08 2013-01-10 Stanfill Craig W Managing Storage of Data for Range-Based Searching
US8688754B1 (en) 2012-09-19 2014-04-01 International Business Machines Corporation Remembered set overhead reduction by deferred garbage collections of stable regions
WO2014205187A1 (en) 2013-06-20 2014-12-24 The United States Of America, As Represented By The Secretary, Department Of Health And Human Services Cytolethal distending toxin subunit b conjugated or fused to bacillus anthracis toxin lethal factor
US9361224B2 (en) 2013-09-04 2016-06-07 Red Hat, Inc. Non-intrusive storage of garbage collector-specific management data
CN105446653B (zh) 2014-08-27 2018-12-14 阿里巴巴集团控股有限公司 一种数据合并方法和设备
KR102449192B1 (ko) 2015-09-10 2022-09-29 삼성전자주식회사 데이터 저장 장치의 작동 방법과 이를 포함하는 데이터 처리 시스템의 작동 방법
KR102501751B1 (ko) 2015-09-22 2023-02-20 삼성전자주식회사 메모리 콘트롤러, 불휘발성 메모리 시스템 및 그 동작방법
US10359954B2 (en) 2017-05-31 2019-07-23 Alibaba Group Holding Limited Method and system for implementing byte-alterable write cache
US10884926B2 (en) 2017-06-16 2021-01-05 Alibaba Group Holding Limited Method and system for distributed storage using client-side global persistent cache
US10303241B2 (en) 2017-06-19 2019-05-28 Alibaba Group Holding Limited System and method for fine-grained power control management in a high capacity computer cluster
US10678443B2 (en) 2017-07-06 2020-06-09 Alibaba Group Holding Limited Method and system for high-density converged storage via memory bus
US10564856B2 (en) 2017-07-06 2020-02-18 Alibaba Group Holding Limited Method and system for mitigating write amplification in a phase change memory-based storage device
US10089235B1 (en) 2017-07-28 2018-10-02 Citrix Systems, Inc. Dynamic trim processing with disk caching
US10423508B2 (en) 2017-08-11 2019-09-24 Alibaba Group Holding Limited Method and system for a high-priority read based on an in-place suspend/resume write
US10303601B2 (en) 2017-08-11 2019-05-28 Alibaba Group Holding Limited Method and system for rearranging a write operation in a shingled magnetic recording device
US10642522B2 (en) 2017-09-15 2020-05-05 Alibaba Group Holding Limited Method and system for in-line deduplication in a storage drive based on a non-collision hash
US10496829B2 (en) 2017-09-15 2019-12-03 Alibaba Group Holding Limited Method and system for data destruction in a phase change memory-based storage device
US10789011B2 (en) * 2017-09-27 2020-09-29 Alibaba Group Holding Limited Performance enhancement of a storage device using an integrated controller-buffer
US10503409B2 (en) 2017-09-27 2019-12-10 Alibaba Group Holding Limited Low-latency lightweight distributed storage system
US10860334B2 (en) 2017-10-25 2020-12-08 Alibaba Group Holding Limited System and method for centralized boot storage in an access switch shared by multiple servers
US10445190B2 (en) 2017-11-08 2019-10-15 Alibaba Group Holding Limited Method and system for enhancing backup efficiency by bypassing encoding and decoding
US10877898B2 (en) 2017-11-16 2020-12-29 Alibaba Group Holding Limited Method and system for enhancing flash translation layer mapping flexibility for performance and lifespan improvements
US10891239B2 (en) 2018-02-07 2021-01-12 Alibaba Group Holding Limited Method and system for operating NAND flash physical space to extend memory capacity
US10496548B2 (en) 2018-02-07 2019-12-03 Alibaba Group Holding Limited Method and system for user-space storage I/O stack with user-space flash translation layer
US10831404B2 (en) 2018-02-08 2020-11-10 Alibaba Group Holding Limited Method and system for facilitating high-capacity shared memory using DIMM from retired servers
US10402112B1 (en) 2018-02-14 2019-09-03 Alibaba Group Holding Limited Method and system for chunk-wide data organization and placement with real-time calculation
US11379155B2 (en) 2018-05-24 2022-07-05 Alibaba Group Holding Limited System and method for flash storage management using multiple open page stripes
WO2020000136A1 (en) 2018-06-25 2020-01-02 Alibaba Group Holding Limited System and method for managing resources of a storage device and quantifying the cost of i/o requests
US10921992B2 (en) 2018-06-25 2021-02-16 Alibaba Group Holding Limited Method and system for data placement in a hard disk drive based on access frequency for improved IOPS and utilization efficiency
US10871921B2 (en) 2018-07-30 2020-12-22 Alibaba Group Holding Limited Method and system for facilitating atomicity assurance on metadata and data bundled storage
US10996886B2 (en) 2018-08-02 2021-05-04 Alibaba Group Holding Limited Method and system for facilitating atomicity and latency assurance on variable sized I/O
US10747673B2 (en) 2018-08-02 2020-08-18 Alibaba Group Holding Limited System and method for facilitating cluster-level cache and memory space
US11327929B2 (en) 2018-09-17 2022-05-10 Alibaba Group Holding Limited Method and system for reduced data movement compression using in-storage computing and a customized file system
KR102620731B1 (ko) * 2018-09-27 2024-01-05 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작방법
US10852948B2 (en) 2018-10-19 2020-12-01 Alibaba Group Holding System and method for data organization in shingled magnetic recording drive
US10795586B2 (en) 2018-11-19 2020-10-06 Alibaba Group Holding Limited System and method for optimization of global data placement to mitigate wear-out of write cache and NAND flash
US10769018B2 (en) 2018-12-04 2020-09-08 Alibaba Group Holding Limited System and method for handling uncorrectable data errors in high-capacity storage
US10977122B2 (en) 2018-12-31 2021-04-13 Alibaba Group Holding Limited System and method for facilitating differentiated error correction in high-density flash devices
US10884654B2 (en) 2018-12-31 2021-01-05 Alibaba Group Holding Limited System and method for quality of service assurance of multi-stream scenarios in a hard disk drive
US11061735B2 (en) 2019-01-02 2021-07-13 Alibaba Group Holding Limited System and method for offloading computation to storage nodes in distributed system
US11132291B2 (en) 2019-01-04 2021-09-28 Alibaba Group Holding Limited System and method of FPGA-executed flash translation layer in multiple solid state drives
US11200337B2 (en) 2019-02-11 2021-12-14 Alibaba Group Holding Limited System and method for user data isolation
US10922234B2 (en) 2019-04-11 2021-02-16 Alibaba Group Holding Limited Method and system for online recovery of logical-to-physical mapping table affected by noise sources in a solid state drive
US10908960B2 (en) 2019-04-16 2021-02-02 Alibaba Group Holding Limited Resource allocation based on comprehensive I/O monitoring in a distributed storage system
US11169873B2 (en) 2019-05-21 2021-11-09 Alibaba Group Holding Limited Method and system for extending lifespan and enhancing throughput in a high-density solid state drive
US10860223B1 (en) 2019-07-18 2020-12-08 Alibaba Group Holding Limited Method and system for enhancing a distributed storage system by decoupling computation and network tasks
US11126561B2 (en) 2019-10-01 2021-09-21 Alibaba Group Holding Limited Method and system for organizing NAND blocks and placing data to facilitate high-throughput for random writes in a solid state drive
US11042307B1 (en) 2020-01-13 2021-06-22 Alibaba Group Holding Limited System and method for facilitating improved utilization of NAND flash based on page-wise operation
US11449455B2 (en) 2020-01-15 2022-09-20 Alibaba Group Holding Limited Method and system for facilitating a high-capacity object storage system with configuration agility and mixed deployment flexibility
US10872622B1 (en) 2020-02-19 2020-12-22 Alibaba Group Holding Limited Method and system for deploying mixed storage products on a uniform storage infrastructure
US10923156B1 (en) 2020-02-19 2021-02-16 Alibaba Group Holding Limited Method and system for facilitating low-cost high-throughput storage for accessing large-size I/O blocks in a hard disk drive
US11150986B2 (en) 2020-02-26 2021-10-19 Alibaba Group Holding Limited Efficient compaction on log-structured distributed file system using erasure coding for resource consumption reduction
US11144250B2 (en) 2020-03-13 2021-10-12 Alibaba Group Holding Limited Method and system for facilitating a persistent memory-centric system
US11200114B2 (en) 2020-03-17 2021-12-14 Alibaba Group Holding Limited System and method for facilitating elastic error correction code in memory
US11385833B2 (en) 2020-04-20 2022-07-12 Alibaba Group Holding Limited Method and system for facilitating a light-weight garbage collection with a reduced utilization of resources
US11281575B2 (en) 2020-05-11 2022-03-22 Alibaba Group Holding Limited Method and system for facilitating data placement and control of physical addresses with multi-queue I/O blocks
US11494115B2 (en) 2020-05-13 2022-11-08 Alibaba Group Holding Limited System method for facilitating memory media as file storage device based on real-time hashing by performing integrity check with a cyclical redundancy check (CRC)
US11461262B2 (en) 2020-05-13 2022-10-04 Alibaba Group Holding Limited Method and system for facilitating a converged computation and storage node in a distributed storage system
US11218165B2 (en) 2020-05-15 2022-01-04 Alibaba Group Holding Limited Memory-mapped two-dimensional error correction code for multi-bit error tolerance in DRAM
US11556277B2 (en) 2020-05-19 2023-01-17 Alibaba Group Holding Limited System and method for facilitating improved performance in ordering key-value storage with input/output stack simplification
US11507499B2 (en) 2020-05-19 2022-11-22 Alibaba Group Holding Limited System and method for facilitating mitigation of read/write amplification in data compression
US11263132B2 (en) 2020-06-11 2022-03-01 Alibaba Group Holding Limited Method and system for facilitating log-structure data organization
US11354200B2 (en) 2020-06-17 2022-06-07 Alibaba Group Holding Limited Method and system for facilitating data recovery and version rollback in a storage device
US11422931B2 (en) 2020-06-17 2022-08-23 Alibaba Group Holding Limited Method and system for facilitating a physically isolated storage unit for multi-tenancy virtualization
US11354233B2 (en) 2020-07-27 2022-06-07 Alibaba Group Holding Limited Method and system for facilitating fast crash recovery in a storage device
US11372774B2 (en) 2020-08-24 2022-06-28 Alibaba Group Holding Limited Method and system for a solid state drive with on-chip memory integration
US11487465B2 (en) 2020-12-11 2022-11-01 Alibaba Group Holding Limited Method and system for a local storage engine collaborating with a solid state drive controller
US11734115B2 (en) 2020-12-28 2023-08-22 Alibaba Group Holding Limited Method and system for facilitating write latency reduction in a queue depth of one scenario
US11416365B2 (en) 2020-12-30 2022-08-16 Alibaba Group Holding Limited Method and system for open NAND block detection and correction in an open-channel SSD
US11726699B2 (en) 2021-03-30 2023-08-15 Alibaba Singapore Holding Private Limited Method and system for facilitating multi-stream sequential read performance improvement with reduced read amplification
US11461173B1 (en) 2021-04-21 2022-10-04 Alibaba Singapore Holding Private Limited Method and system for facilitating efficient data compression based on error correction code and reorganization of data placement
US11476874B1 (en) 2021-05-14 2022-10-18 Alibaba Singapore Holding Private Limited Method and system for facilitating a storage server with hybrid memory for journaling and data storage

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5436144A (en) * 1977-08-26 1979-03-16 Toshiba Corp Address conversion unit
JPS5835656A (ja) * 1981-08-27 1983-03-02 Fujitsu Ltd セル管理制御方式
JPS58146946A (ja) * 1982-02-26 1983-09-01 Nec Corp リストメモリ
JPS6027962A (ja) * 1983-07-26 1985-02-13 Nec Corp 構造体メモリ管理方式

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CS164932B2 (ja) * 1971-09-07 1975-11-28
US3882470A (en) * 1974-02-04 1975-05-06 Honeywell Inf Systems Multiple register variably addressable semiconductor mass memory
US4189773A (en) * 1974-07-03 1980-02-19 General Electric Company On-line memory space allocation
GB1548401A (en) * 1975-10-08 1979-07-11 Plessey Co Ltd Data processing memory space allocation and deallocation arrangements
JPS56140451A (en) * 1980-03-31 1981-11-02 Hitachi Ltd Log information holding device

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5436144A (en) * 1977-08-26 1979-03-16 Toshiba Corp Address conversion unit
JPS5835656A (ja) * 1981-08-27 1983-03-02 Fujitsu Ltd セル管理制御方式
JPS58146946A (ja) * 1982-02-26 1983-09-01 Nec Corp リストメモリ
JPS6027962A (ja) * 1983-07-26 1985-02-13 Nec Corp 構造体メモリ管理方式

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0581120A (ja) * 1991-09-19 1993-04-02 Agency Of Ind Science & Technol データ処理装置
WO2010018613A1 (ja) * 2008-08-11 2010-02-18 富士通株式会社 ガーベジコレクションプログラム、及びガーベジコレクション方法、ならびにガーベジコレクションシステム
JPWO2010018613A1 (ja) * 2008-08-11 2012-01-26 富士通株式会社 ガーベジコレクションプログラム、及びガーベジコレクション方法、ならびにガーベジコレクションシステム
JP5120455B2 (ja) * 2008-08-11 2013-01-16 富士通株式会社 ガーベジコレクションプログラム、及びガーベジコレクション方法、ならびにガーベジコレクションシステム

Also Published As

Publication number Publication date
US4775932A (en) 1988-10-04
EP0173464A3 (en) 1989-09-13
JP2564483B2 (ja) 1996-12-18
EP0173464A2 (en) 1986-03-05

Similar Documents

Publication Publication Date Title
JPS61105653A (ja) 接続されたユ−ザのプロセツサとは独立の並列ガ−ベツジコレクシヨン機能を有するコンピユ−タ記憶装置
Wang et al. Easy lock-free indexing in non-volatile memory
US10282122B2 (en) Methods and systems of a memory controller for hierarchical immutable content-addressable memory processor
US6823351B1 (en) Work-stealing queues for parallel garbage collection
US6249793B1 (en) Mostly concurrent compaction in a garbage collection system
US7389395B1 (en) Split-reference, two-pass mark-compaction
US20060294167A1 (en) Method and system for dynamically managing storage of data objects generated during execution of a computer program
US20050102670A1 (en) Shared object memory with object management for multiple virtual machines
JP2000513851A (ja) ガーベッジコレクションページ境界横断ポインタストアをトラップするためのライトバリアシステム及び方法
US7533228B1 (en) Two-pass sliding compaction
US20030033498A1 (en) Computer system with heap and card table
CA2758235A1 (en) Device and method for storage, retrieval, relocation, insertion or removal of data in storage units
US6999979B2 (en) Efficient encoding of references into a collection set
US8473722B2 (en) Processor architecture for exact pointer identification
US8051267B1 (en) Using versioned pointers to facilitate reusing memory with a reduced need to reclaim objects through garbage collection
Vaughan et al. Supporting large persistent stores using conventional hardware
US7653793B1 (en) Use of memory protection to implement replicating collection in an incremental, copying garbage collector
CN117377953A (zh) 基于树的数据结构
Chen et al. Lock-free high-performance hashing for persistent memory via PM-aware holistic optimization
CN110471626B (zh) 应用于Java Card的Nor Flash管理层及方法
JPH01152546A (ja) アクセス管理手段及びアクセス要求衝突管理ユニットの利用方法
Rodriguez-Rivera et al. A non-fragmenting non-moving, garbage collector
Gehringer Functionality and performance in capability-based operating systems.
JP2551563B2 (ja) 不変メモリ装置
CN116954921A (zh) 基于乐观批处理的无锁数据结构内存回收方法

Legal Events

Date Code Title Description
EXPY Cancellation because of completion of term