JP2000513851A - ガーベッジコレクションページ境界横断ポインタストアをトラップするためのライトバリアシステム及び方法 - Google Patents
ガーベッジコレクションページ境界横断ポインタストアをトラップするためのライトバリアシステム及び方法Info
- Publication number
- JP2000513851A JP2000513851A JP10546158A JP54615898A JP2000513851A JP 2000513851 A JP2000513851 A JP 2000513851A JP 10546158 A JP10546158 A JP 10546158A JP 54615898 A JP54615898 A JP 54615898A JP 2000513851 A JP2000513851 A JP 2000513851A
- Authority
- JP
- Japan
- Prior art keywords
- pointer
- store
- garbage collection
- instruction
- collection page
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 83
- 230000004888 barrier function Effects 0.000 title claims abstract description 78
- 230000001419 dependent effect Effects 0.000 claims abstract description 49
- 230000008569 process Effects 0.000 claims description 27
- 230000004044 response Effects 0.000 claims description 11
- 230000000873 masking effect Effects 0.000 claims description 10
- 230000035772 mutation Effects 0.000 claims description 6
- 238000011156 evaluation Methods 0.000 claims description 3
- 230000001960 triggered effect Effects 0.000 claims description 2
- 239000002131 composite material Substances 0.000 claims 1
- 238000012152 algorithmic method Methods 0.000 abstract 1
- 239000011159 matrix material Substances 0.000 description 12
- 230000008901 benefit Effects 0.000 description 8
- 238000001914 filtration Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 7
- 230000007246 mechanism Effects 0.000 description 7
- 230000009471 action Effects 0.000 description 6
- 238000004891 communication Methods 0.000 description 6
- 230000003068 static effect Effects 0.000 description 5
- 101100128278 Mus musculus Lins1 gene Proteins 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000014509 gene expression Effects 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 238000004904 shortening Methods 0.000 description 3
- 241000255925 Diptera Species 0.000 description 2
- 241000286819 Malo Species 0.000 description 2
- 238000007792 addition Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 2
- 238000013467 fragmentation Methods 0.000 description 2
- 238000006062 fragmentation reaction Methods 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 229940074869 marquis Drugs 0.000 description 2
- VBUNOIXRZNJNAD-UHFFFAOYSA-N ponazuril Chemical compound CC1=CC(N2C(N(C)C(=O)NC2=O)=O)=CC=C1OC1=CC=C(S(=O)(=O)C(F)(F)F)C=C1 VBUNOIXRZNJNAD-UHFFFAOYSA-N 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- 101100176198 Caenorhabditis elegans nst-1 gene Proteins 0.000 description 1
- 102100024362 Disintegrin and metalloproteinase domain-containing protein 7 Human genes 0.000 description 1
- PEDCQBHIVMGVHV-UHFFFAOYSA-N Glycerine Chemical compound OCC(O)CO PEDCQBHIVMGVHV-UHFFFAOYSA-N 0.000 description 1
- 101000832771 Homo sapiens Disintegrin and metalloproteinase domain-containing protein 7 Proteins 0.000 description 1
- LFVLUOAHQIVABZ-UHFFFAOYSA-N Iodofenphos Chemical compound COP(=S)(OC)OC1=CC(Cl)=C(I)C=C1Cl LFVLUOAHQIVABZ-UHFFFAOYSA-N 0.000 description 1
- FSVCELGFZIQNCK-UHFFFAOYSA-N N,N-bis(2-hydroxyethyl)glycine Chemical compound OCCN(CCO)CC(O)=O FSVCELGFZIQNCK-UHFFFAOYSA-N 0.000 description 1
- 241001417527 Pempheridae Species 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 239000007998 bicine buffer Substances 0.000 description 1
- 239000000872 buffer Substances 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000005465 channeling Effects 0.000 description 1
- 238000005056 compaction Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 239000003471 mutagenic agent Substances 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 239000000243 solution Substances 0.000 description 1
- GOLXNESZZPUPJE-UHFFFAOYSA-N spiromesifen Chemical compound CC1=CC(C)=CC(C)=C1C(C(O1)=O)=C(OC(=O)CC(C)(C)C)C11CCCC1 GOLXNESZZPUPJE-UHFFFAOYSA-N 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0253—Garbage collection, i.e. reclamation of unreferenced memory
- G06F12/0269—Incremental or concurrent garbage collection, e.g. in real-time systems
- G06F12/0276—Generational garbage collection
-
- Y—GENERAL 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
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99941—Database schema or data structure
- Y10S707/99944—Object-oriented database structure
- Y10S707/99945—Object-oriented database structure processing
-
- Y—GENERAL 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
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99951—File or database maintenance
- Y10S707/99956—File allocation
- Y10S707/99957—Garbage collection
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System (AREA)
Abstract
Description
Claims (1)
- 【特許請求の範囲】 1.内部に形成されたオブジェクトにそれへのオブジェクト参照を介してアクセ ス可能であるような動的割り当てストレージと、 プログラム可能に定義されたガーベッジコレクションページマスクと、 ガーベッジコレクションページ境界横断ポインタストアに対するライトバリア とを含み、 前記ライトバリアは、それに関連付けられた第1及び第2のポインタのそれぞ れの選択された部分が異なる場合、ストア命令をトラップし、前記第1ポインタ は前記ストア命令のターゲットオブジェクトを参照し、前記第2ポインタはそこ へストアされるオブジェクト参照データであり、前記それぞれ選択された部分は 、前記プログラム可能に定義されたガーベッジコレクションページマスクの内容 によって定義されることを特徴とする装置。 2.前記プログラム可能に定義されたガーベッジコレクションページマスクがガ ーベッジコレクションページサイズを定義することを特徴とする請求項1に記載 の装置。 3.前記プログラム可能に定義されたガーベッジコレクションページマスクが前 記ターゲットオブジェクト参照及び前記オブジェクト参照データの前記それぞれ の選択された部分の比較のためのビット状の比較窓を定義することを特徴とする 請求項1に記載の装置。 4.前記第1及び第2のポインタが各々最上位部、最下位部、及びそれらの間の 中間部を含み、 前記プログラム可能に定義されたガーベッジコレクションページマスクが、前 記第1及び第2ポインタの前記最上位部を通過させるように定義された最上位部 を有する複合マスクのプログラム可能に定義可能な中間部分を定義し、それによ って前記上部及び前記中間部のマスクされて いない部分が前記ストアオペレーションのトラップのために比較されることを特 徴とする請求項1に記載の装置。 5.前記ライトバリアが、ガーベッジコレクションページレジスタフィールドに 応答して前記ガーベッジコレクションページマスクをエンコードするマスク及び 比較論理を含んでいることを特徴とする請求項1に記載の装置。 6.前記ライトバリアがポインタストア依存ハードウエアライトバリアを含み、 そのポインタストア依存性が、ポインタ非依存ストア命令のストアターゲットフ ィールドタイプの実行時間解決に基づいて、前記ポインタ非依存ストア命令をポ インタ依存ストア命令によって置き換えることによって与えられることを特徴と する請求項1に記載の装置。 7.更に、前記プログラム可能に定義されたガーベッジコレクションページマス クの表現を含む仮想マシン命令プロセッサを含み、 前記ライトバリアが前記仮想マシーン命令プロセッサ上で実行可能なポインタ 依存ストア命令コードを含み、 前記ポインタ依存ストア命令コードの実行が、前記ターゲットオブジェクト参 照及び前記オブジェクト参照データのそれぞれのマスクされた部分のビット状比 較に基づいて、前記ポインタ依存ストア命令の1つの特定の実行がガーベッジコ レクションページ境界横断ポインタのストアを行うか否かを判定し、もしそうで あればガーベジコレクションフォールトハンドラにトラップすることを特徴とす る請求項1に記載の装置。 8.前記仮想マシーン命令プロセッサがハードウエアプロセッサを含んでおり、 仮想マシーン命令の少なくともサブセットがそれによって直接実行可能であるこ とを特徴とする請求項7に記載の装置。 9.前記仮想マシーン命令プロセッサがハードウエアプロセッサ上で実行可能な そのインタプリタによる実現を(interpreted implementation) 含み、 前記ガーベッジコレクションページマスクが前記ハードウエアプロセッサにア クセス可能なストレージ内で表現されていることを特徴とする請求項7に記載の 装置。 10.前記仮想マシーン命令プロセッサがハードウエアプロセッサ上で実行可能 なそのジャストインタイムコンパイラによる実現を含み、 前記ガーベッジコレクションページマスクが前記ハードウエアプロセッサにア クセス可能なストレージ内で表現されていることを特徴とする請求項12に記載 の装置。 11.前記仮想マシーン命令プロセッサが、データタイプの実行時間解決に基づ いて、ポインタ非依存ストア命令コードを前記ポインタ依存ストア命令コードに 動的に置き換えることをもって、前記ライトバリアをポインタストアに制限し、 前記プログラム可能に定義されたガーベッジコレクションページマスクは、前 記ライトバリアによるトラップを、更にガーベッジコレクションページ境界横断 ポインタストアに制限することを特徴とする請求項7に記載の装置。 12.前記ライトバリアの実装と、前記プログラム可能に定義されたガーベッジ コレクションページマスクの表現とを含む仮想マシーン命令プロセッサと、 前記仮想マシーン命令プロセッサによって実行可能な命令を含むフォールトハ ンドラとを含み、 前記ライトバリアは、実行することによってガーベッジコレクションページ境 界横断ポインタをストアするようなターゲットオブジェクト及びストアデータを 有するようなストア命令の実行時に前記フォールトハンドラをトリガすることを 特徴とする請求項1に記載の装置。 13.前記フォールトハンドラの前記命令が想起セットへのストアのための命 令を含むことを特徴とする請求項12に記載の装置。 14.前記仮想マシーン命令プロセッサによって実行可能な命令のジェネレーシ ョン的コレクタプロセスを更に含み、 前記フォールトハンドラが、前記ジェネレーション的コレクタプロセスによっ て使用されるように、想起セットの表現にトラップされたストアデータを識別す るための情報をストアするべく、前記仮想マシーン命令プロセッサによって実行 可能な命令を含んでいることを特徴とする請求項12に記載の装置。 15.前記ターゲットオブジェクト参照及び前記オブジェクト参照データの前記 それぞれ選択された部分のマスキング及び比較のための論理回路を有する実行ユ ニット及び前記プログラム可能に定義されたガーベッジコレクションページマス クのレジスタによる表現を含むハードウエアプロセッサを更に有することを特徴 とする請求項1に記載の装置。 16.ハードウエアプロセッサ上で実行可能なソフトウエア仮想マシーン命令プ ロセッサプログラムを更に含み、前記ソフトウエア仮想マシーン命令プロセッサ プログラムは前記プログラム可能に定義されたガーベッジコレクションページマ スクを表現するためのコンピュータによって読み取り可能なストレージを定義す ると共に、前記ターゲットオブジェクト参照及び前記オブジェクト参照データの 前記それぞれ選択された部分のマスキング及び比較のためのプログラム命令を含 んでいることを特徴とする請求項1に記載の装置。 17.ガーベッジコレクションページ境界横断ポインタストアをトラップするた めの方法であって、 コンピュータで読取り可能なストレージ内にガーベッジコレクションページマ スクを形成する過程と、 ポインタ依存ストア命令の特定の実行に関連付けられた第1及び第2 のポインタをマスキングする過程であって、前記第1ポインタは前記ポインタ依 存ストア命令のターゲットオブジェクト参照であり、前記第2ポインタは前記ポ インタ依存ストア命令のオブジェクト参照データであり、該マスキングは前記し たガーベッジコレクションページマスクの内容に基づいてなされる該マスキング 過程と、 前記第1及び第2ポインタのそれぞれのマスクされていない部分を比較し、前 記第1及び第2ポインタが各々同じガーベッジコレクションページ上のそれぞれ のストレージを参照しているか否か判定する過程と、 前記比較に於ける不一致結果に基づいてトラップハンドラをトリガする過程と を含むことを特徴とする方法。 18.前記比較に於ける一致結果に基づいてトラップすることなく前記ポインタ 依存ストア命令の前記特定の実行を完了することを特徴とする請求項17に記載 の方法。 19.前記トラップハンドラの動作が、 前記ポインタ依存ストア命令に対応する想起セットエントリをストアする過程 を含むことを特徴とする請求項17に記載の方法。 20.前記トラップハンドラの動作が、 前記ポインタ依存ストア命令をエミュレートする過程を含むことを特徴とする 請求項17に記載の方法。 21.ストアターゲットフィールドタイプの実行時間決定に基づいてポインタ非 依存命令のプログラム出現をポインタ依存命令に選択的に変換する過程と、 前記マスキング及び前記比較を概ね前記ポインタ依存命令に対してのみ行う過 程とを含むことを特徴とする請求項17に記載の方法。 22.その上で実行可能な変異及びガーベッジコレクタプロセスを有する仮想マ シン命令プロセッサに於いてガーベッジコレクションページ境 界横断ポインタストアをトラップするためのアーキテクチャ的サポートであって 、 プログラム可能に定義されたガーベッジコレクションページマスクと、前記プ ログラム可能に定義されたガーベッジコレクションページマスクに応答するライ トバリア手段とを含み、 前記変異プロセスのストア命令の評価によって(1)前記ストア命令がポイン タストアへと解決され、且つ(2)前記ストア命令のターゲットメモリオブジェ クトと前記ストアのオブジェクト参照データによって識別されるメモリオブジェ クトのいづれもが同じガーベッジコレクションページ内にある場合、ガーベッジ コレクションフォールトハンドラーがトリガされ、 ガーベッジコレクションページ境界は前記プログラム可能に定義されたガーベ ッジコレクションページマスクによって定義されることを特徴とするアーキテク チャ的サポート。 23.前記ライトバリア手段が仮想マシーン命令プロセッサによって実行可能な ポインタ依存ストア命令を含んでおり、前記ポインタ依存ストア命令は前記ライ トバリアをポインタストアに限定することを特徴とする請求項22に記載のアー キテクチャ的サポート。 24.前記ポインタ依存ストア命令が非高速バイトコードの高速擬似命令を含ん でいることを特徴とする請求項23に記載のアーキテクチャ的サポート。 25.前記ライトバリア手段が論理回路を含み、 前記論理回路は前記ストア命令の特定の実行に関連付けられた第1及び第2ポ インタの部分を効果的にマスキングすると共に、前記第1及び第2ポインタのマ スキングされていない部分をビット単位で比較し、 前記第1ポインタは前記ストア命令の前記ターゲットメモリオブジェ クトを識別し、前記第2ポインタは前記ストア命令の前記データであり、 前記論理回路は前記比較の相違結果に基づいてトラップハンドラをトリガする ことを特徴とする請求項22に記載のアーキテクチャ的サポート。 26.前記ライトバリア手段がポインタストア依存ハードウエアライトバリアを 含んでおり、そのポインタストア依存性はポインタ非依存ストア命令を、該ポイ ンタ非依存ストア命令のストアターゲットフィールドタイプの実行時間解決に基 づいてポインタ依存ストア命令で置き換えることによって与えられることを特徴 とする請求項22に記載のアーキテクチャ的サポート。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/841,544 US5845298A (en) | 1997-04-23 | 1997-04-23 | Write barrier system and method for trapping garbage collection page boundary crossing pointer stores |
US08/841,544 | 1997-04-23 | ||
PCT/US1998/007623 WO1998048352A1 (en) | 1997-04-23 | 1998-04-21 | Write barrier system and method for trapping garbage collection page boundary crossing pointer stores |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2000513851A true JP2000513851A (ja) | 2000-10-17 |
JP4104668B2 JP4104668B2 (ja) | 2008-06-18 |
Family
ID=25285147
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP54615898A Expired - Lifetime JP4104668B2 (ja) | 1997-04-23 | 1998-04-21 | ガーベッジコレクションページ境界横断ポインタストアをトラップするためのライトバリアシステム及び方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US5845298A (ja) |
EP (1) | EP0914632B1 (ja) |
JP (1) | JP4104668B2 (ja) |
DE (1) | DE69802652D1 (ja) |
WO (1) | WO1998048352A1 (ja) |
Families Citing this family (93)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6049810A (en) * | 1997-04-23 | 2000-04-11 | Sun Microsystems, Inc. | Method and apparatus for implementing a write barrier of a garbage collected heap |
US5930807A (en) * | 1997-04-23 | 1999-07-27 | Sun Microsystems | Apparatus and method for fast filtering read and write barrier operations in garbage collection system |
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 |
US6513156B2 (en) * | 1997-06-30 | 2003-01-28 | Sun Microsystems, Inc. | Interpreting functions utilizing a hybrid of virtual and native machine instructions |
US6144965A (en) * | 1997-09-24 | 2000-11-07 | Sony Corporation | Performing memory management in an object-oriented programming environment |
US6317796B1 (en) * | 1997-10-06 | 2001-11-13 | Sun Microsystems, Inc. | Inline database for receiver types in object-oriented systems |
US6021415A (en) * | 1997-10-29 | 2000-02-01 | International Business Machines Corporation | Storage management system with file aggregation and space reclamation within aggregated files |
US6070173A (en) * | 1997-11-26 | 2000-05-30 | International Business Machines Corporation | Method and apparatus for assisting garbage collection process within a java virtual machine |
US6247020B1 (en) * | 1997-12-17 | 2001-06-12 | Borland Software Corporation | Development system with application browser user interface |
US6308185B1 (en) * | 1998-03-06 | 2001-10-23 | Sun Microsystems, Inc. | Methods and apparatus for generational dynamic management of computer memory |
US6093216A (en) | 1998-05-29 | 2000-07-25 | Intel Corporation | Method of run-time tracking of object references in Java programs |
US6421689B1 (en) * | 1998-06-30 | 2002-07-16 | Oracle Corporation | Moderately conservative, mostly copying 2 space garbage collector in the nursery of a generational memory manager |
US6131191A (en) * | 1998-07-21 | 2000-10-10 | Intel Corporation | Code implants for compilers |
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 |
US6279148B1 (en) * | 1998-10-13 | 2001-08-21 | Sun Microsystems, Inc. | Method and apparatus for supporting efficient programming in dynamic pointer-safe languages |
GB2345355A (en) * | 1998-12-30 | 2000-07-05 | Ibm | Garbage collection in a Java virtual machine |
US6629113B1 (en) | 1999-06-30 | 2003-09-30 | International Business Machines Corporation | Method and system for dynamically adjustable and configurable garbage collector |
US6725241B1 (en) * | 1999-03-31 | 2004-04-20 | International Business Machines Corporation | Method and apparatus for freeing memory in a data processing system |
US6701520B1 (en) * | 1999-05-11 | 2004-03-02 | International Business Machines Corporation | Preventing garbage collection of objects in object oriented computer programming languages |
US7389305B1 (en) * | 1999-06-01 | 2008-06-17 | Fair Isaac Corporation | System and method for managing a database |
US6424977B1 (en) | 1999-08-19 | 2002-07-23 | Sun Microsystems, Inc. | Train-algorithm-based garbage collector employing reduced oversized-object threshold |
US7096238B2 (en) | 1999-08-19 | 2006-08-22 | Sun Microsystems, Inc. | Dynamic feedback for determining collection-set size |
US6434577B1 (en) | 1999-08-19 | 2002-08-13 | Sun Microsystems, Inc. | Scalable-remembered-set garbage collection |
US6449626B1 (en) | 1999-08-19 | 2002-09-10 | Sun Microsystems, Inc. | Reduced-cost remembered-set processing in a train-algorithm-based garbage collector |
US6434576B1 (en) | 1999-08-19 | 2002-08-13 | Sun Microsystems, Inc. | Popular-object handling in a train-algorithm-based garbage collector |
US6415302B1 (en) | 1999-08-19 | 2002-07-02 | Sun Microsystems, Inc. | Train-algorithm-based garbage collector employing farthest-forward-car indicator |
US6185581B1 (en) * | 1999-08-19 | 2001-02-06 | Sun Microsystems, Inc. | Train-algorithm-based garbage collector employing fixed-size remembered sets |
US6349314B1 (en) | 1999-09-29 | 2002-02-19 | Motorola, Inc. | Adaptive scheduler for mark and sweep garbage collection in interactive systems |
WO2001044947A1 (en) * | 1999-12-17 | 2001-06-21 | Sun Microsystems, Inc. | Method and apparatus for monitoring a cache for garbage collection |
US6226653B1 (en) * | 2000-01-10 | 2001-05-01 | International Business Machines Corporation | Method and apparatus for performing generational garbage collection using remembered set counter |
US6529919B1 (en) | 2000-02-15 | 2003-03-04 | Sun Microsystems, Inc. | Incremental class unloading in a train-algorithm-based garbage collector |
US6836782B1 (en) * | 2000-06-12 | 2004-12-28 | Sun Microsystems, Inc. | Method and apparatus for implementing modular garbage collectors |
US6738875B1 (en) | 2000-07-31 | 2004-05-18 | Microsoft Corporation | Efficient write-watch mechanism useful for garbage collection in a computer system |
US6865585B1 (en) * | 2000-07-31 | 2005-03-08 | Microsoft Corporation | Method and system for multiprocessor garbage collection |
CA2421591C (en) | 2000-09-13 | 2011-08-23 | Geodesic Systems, Incorporated | Conservative garbage collectors that can be used with general memory allocators |
US6874074B1 (en) * | 2000-11-13 | 2005-03-29 | Wind River Systems, Inc. | System and method for memory reclamation |
GB2369694B (en) * | 2000-11-29 | 2002-10-16 | Sun Microsystems Inc | Efficient memory modification tracking |
GB2369690B (en) * | 2000-11-29 | 2002-10-16 | Sun Microsystems Inc | Enhanced protection for memory modification tracking |
US7350200B2 (en) * | 2001-03-29 | 2008-03-25 | Intel Corporation | Method and system of controlling dynamically compiled native code size |
CA2346766A1 (en) * | 2001-05-07 | 2002-11-07 | Ibm Canada Limited-Ibm Canada Limitee | Efficient locking for thread-safe self-modifying code |
GB2378778B (en) * | 2001-08-13 | 2005-03-23 | Ibm | Computer system with heap and card table |
US6912554B2 (en) * | 2001-11-14 | 2005-06-28 | Omron Corporation | Method and apparatus for garbage collection using advanced marking techniques and restricted barrier to protect the data |
JP3939975B2 (ja) * | 2001-12-14 | 2007-07-04 | 松下電器産業株式会社 | ガベージコレクション装置、ガベージコレクション方法及びガベージコレクションプログラム |
US8042189B2 (en) * | 2002-03-20 | 2011-10-18 | Research In Motion Limited | System and method to force a mobile device into a secure state |
WO2003079196A2 (en) | 2002-03-20 | 2003-09-25 | Research In Motion Limited | System and method of secure garbage collection on a mobile device |
US6959297B2 (en) * | 2002-04-25 | 2005-10-25 | Winnow Technology, Llc | System and process for searching within a data stream using a pointer matrix and a trap matrix |
US6928460B2 (en) * | 2002-07-01 | 2005-08-09 | Sun Microsystems, Inc. | Method and apparatus for performing generational garbage collection in a segmented heap |
US7539713B2 (en) | 2002-11-05 | 2009-05-26 | Sun Microsystems, Inc. | Allocation of likely popular objects in the train algorithm |
US7035884B2 (en) * | 2002-11-05 | 2006-04-25 | Sun Microsystems, Inc. | Placement of allocation trains in the train algorithm |
US6999979B2 (en) * | 2002-11-05 | 2006-02-14 | Sun Microsystems, Inc. | Efficient encoding of references into a collection set |
US7188129B2 (en) | 2002-11-15 | 2007-03-06 | Sun Microsystems, Inc. | Merging trains in a collector based on the train algorithm |
US7209935B2 (en) * | 2002-11-27 | 2007-04-24 | Sun Microsystems, Inc. | Avoiding remembered-set maintenance overhead for memory segments known to be in a collection set |
US7069280B2 (en) | 2002-12-06 | 2006-06-27 | Sun Microsystems, Inc. | Collection-tick mechanism for a collector based on the train algorithm |
US7024437B2 (en) * | 2002-12-06 | 2006-04-04 | Sun Microsystems, Inc. | Better placement of objects reachable from special objects during collection based on the train algorithm |
US7072905B2 (en) * | 2002-12-06 | 2006-07-04 | Sun Microsystems, Inc. | Better placement of objects reachable from outside a generation managed by the train algorithm |
US7031990B2 (en) | 2002-12-06 | 2006-04-18 | Sun Microsystems, Inc. | Combining external and intragenerational reference-processing in a garbage collector based on the train algorithm |
US7143124B2 (en) | 2002-12-06 | 2006-11-28 | Sun Microsystems, Inc. | Detection of dead regions during incremental collection |
US7085790B2 (en) * | 2002-12-06 | 2006-08-01 | Sun Microsystems, Inc. | Advancing cars in trains managed by a collector based on the train algorithm |
JP4116877B2 (ja) * | 2002-12-26 | 2008-07-09 | 富士通株式会社 | ヒープサイズ自動最適化処理方法,ヒープサイズ自動最適化装置およびそのプログラム |
US7069281B2 (en) | 2003-02-24 | 2006-06-27 | Sun Microsystems, Inc. | Efficient collocation of evacuated objects in a copying garbage collector using variably filled local allocation buffers |
US7146390B2 (en) | 2003-02-24 | 2006-12-05 | Sun Microsystems, Inc. | Staging the processing of remembered-set entries as part of collection based on the train algorithm |
US7096329B2 (en) * | 2003-02-27 | 2006-08-22 | Sun Microsystems, Inc. | Better placement of objects promoted into a generation managed by the train algorithm |
US7062519B2 (en) * | 2003-02-27 | 2006-06-13 | Sun Microsystems, Inc. | Incremental scanning of enormous objects to improve scheduling and pause-time behavior of garbage collection |
US20040181782A1 (en) * | 2003-03-13 | 2004-09-16 | Piotr Findeisen | System and method for optimizing memory usage by locating lingering objects |
US20040186863A1 (en) * | 2003-03-21 | 2004-09-23 | Garthwaite Alexander T. | Elision of write barriers for stores whose values are in close proximity |
US7089272B1 (en) | 2003-06-18 | 2006-08-08 | Sun Microsystems, Inc. | Specializing write-barriers for objects in a garbage collected heap |
US8108628B2 (en) * | 2003-08-04 | 2012-01-31 | Azul Systems, Inc. | Processor instruction used to perform a matrix test to generate a memory-related trap |
US7149762B1 (en) | 2003-08-20 | 2006-12-12 | Sun Microsystems, Inc. | Handling futile collections in the train algorithm through selective extension of the collection set |
US20050081190A1 (en) * | 2003-09-30 | 2005-04-14 | International Business Machines Corporation | Autonomic memory leak detection and remediation |
US7404182B1 (en) | 2003-10-03 | 2008-07-22 | Sun Microsystems, Inc. | Deferring and combining write barriers for a garbage-collected heap |
US7702663B2 (en) * | 2004-01-05 | 2010-04-20 | International Business Machines Corporation | Breaking read barrier to apply optimizations |
US20050198088A1 (en) * | 2004-03-03 | 2005-09-08 | Sreenivas Subramoney | Method and system for improving the concurrency and parallelism of mark-sweep-compact garbage collection |
US8131955B2 (en) * | 2004-04-15 | 2012-03-06 | Microsoft Corporation | Ephemeral garbage collection using a tracking mechanism on a card table to determine marked bundles |
US7620943B1 (en) * | 2004-06-30 | 2009-11-17 | Sun Microsystems, Inc. | Using class properties to segregate objects in a generation managed by the train algorithm |
US7519640B1 (en) * | 2004-06-30 | 2009-04-14 | Sun Microsystems, Inc. | Better placement of dying objects in a generation managed by the train algorithm |
US7483930B1 (en) * | 2004-07-29 | 2009-01-27 | Sun Microsystems, Inc. | Method and apparatus for maintaining an object-based write barrier to facilitate garbage-collection operations |
US7676801B1 (en) | 2004-08-31 | 2010-03-09 | Sun Microsystems, Inc. | Scanning of evacuated objects in a generation managed by the train algorithm |
US7191307B1 (en) * | 2004-12-14 | 2007-03-13 | Sun Microsystems, Inc. | Memory management unit technique to detect cross-region pointer stores |
US7321909B1 (en) | 2004-12-23 | 2008-01-22 | Sun Microsystems, Inc. | Method and apparatus for forwarding references to objects concurrently with space-incremental garbage collection |
US7647458B1 (en) * | 2004-12-30 | 2010-01-12 | Azul Systems, Inc. | Garbage collection |
US8452938B1 (en) | 2004-12-30 | 2013-05-28 | Azul Systems, Inc. | Garbage collection with memory quick release |
WO2006128112A2 (en) * | 2005-05-25 | 2006-11-30 | Terracotta, Inc. | Clustering server providing virtual machine data sharing |
US7548940B2 (en) * | 2005-06-10 | 2009-06-16 | International Business Machines Corporation | Generational real-time garbage collection |
US7486673B2 (en) | 2005-08-29 | 2009-02-03 | Connect Technologies Corporation | Method and system for reassembling packets prior to searching |
US7685580B1 (en) * | 2005-08-30 | 2010-03-23 | Sun Microsystems, Inc. | Method and apparatus for selectively eliminating write barriers in snapshot-at-the beginning concurrent-marking garbage collectors |
US7840950B2 (en) * | 2006-03-09 | 2010-11-23 | International Business Machines Corporation | Programmatic compiler optimization of glacial constants |
US7840612B2 (en) * | 2006-10-23 | 2010-11-23 | Research In Motion Limited | Methods and apparatus for concurrently executing a garbage collection process during execution of a primary application program |
WO2008057557A2 (en) * | 2006-11-06 | 2008-05-15 | Rambus Inc. | Memory system supporting nonvolatile physical memory |
KR20080085574A (ko) * | 2007-03-20 | 2008-09-24 | 삼성전자주식회사 | 비휘발성 메모리의 가비지 컬렉션을 위한 장치 및 방법 |
US20090006507A1 (en) * | 2007-06-27 | 2009-01-01 | Mingnan Guo | System and method for ordering reclamation of unreachable objects |
US20120072638A1 (en) * | 2010-09-16 | 2012-03-22 | Unisys Corp. | Single step processing of memory mapped accesses in a hypervisor |
US8447793B2 (en) * | 2011-06-04 | 2013-05-21 | International Business Machines Corporation | Efficient remembered set for region-based garbage collectors |
US10089235B1 (en) | 2017-07-28 | 2018-10-02 | Citrix Systems, Inc. | Dynamic trim processing with disk caching |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4922414A (en) * | 1982-12-17 | 1990-05-01 | Symbolics Inc. | Symbolic language data processing system |
US4775932A (en) * | 1984-07-31 | 1988-10-04 | Texas Instruments Incorporated | Computer memory system with parallel garbage collection independent from an associated user processor |
US4989134A (en) * | 1987-03-20 | 1991-01-29 | Hewlett-Packard Company | Method and apparatus for enhancing data storage efficiency |
US5136706A (en) * | 1987-04-30 | 1992-08-04 | Texas Instruments Incorporated | Adaptive memory management system for collection of garbage in a digital computer |
US4907151A (en) * | 1988-09-30 | 1990-03-06 | Digital Equipment Corporation | System and method for garbage collection with ambiguous roots |
US5088036A (en) * | 1989-01-17 | 1992-02-11 | Digital Equipment Corporation | Real time, concurrent garbage collection system and method |
US5321834A (en) * | 1989-11-28 | 1994-06-14 | Xerox Corporation | Method and system for reclaiming unreferenced computer memory space |
US5218698A (en) * | 1991-11-22 | 1993-06-08 | Aerojet-General Corporation | Garbage collection system for a symbolic digital processor |
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 |
US5367685A (en) * | 1992-12-22 | 1994-11-22 | Firstperson, Inc. | Method and apparatus for resolving data references in generated code |
-
1997
- 1997-04-23 US US08/841,544 patent/US5845298A/en not_active Expired - Lifetime
-
1998
- 1998-04-21 WO PCT/US1998/007623 patent/WO1998048352A1/en active IP Right Grant
- 1998-04-21 EP EP98915596A patent/EP0914632B1/en not_active Expired - Lifetime
- 1998-04-21 JP JP54615898A patent/JP4104668B2/ja not_active Expired - Lifetime
- 1998-04-21 DE DE69802652T patent/DE69802652D1/de not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
WO1998048352A1 (en) | 1998-10-29 |
EP0914632B1 (en) | 2001-11-28 |
WO1998048352A9 (en) | 1999-03-25 |
US5845298A (en) | 1998-12-01 |
JP4104668B2 (ja) | 2008-06-18 |
EP0914632A1 (en) | 1999-05-12 |
DE69802652D1 (de) | 2002-01-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4104668B2 (ja) | ガーベッジコレクションページ境界横断ポインタストアをトラップするためのライトバリアシステム及び方法 | |
JP4130481B2 (ja) | ポインタ依存擬似命令置換機構を含むライトバリアシステム及び方法 | |
EP0914633B1 (en) | Generation isolation system and method for garbage collection | |
JP3881702B2 (ja) | 部分的に再配置されたオブジェクトのソース及び目標インスタンスに関する書込みバリアを含む有界休止時間ガーベッジコレクションシステム及び方法 | |
JP3957770B2 (ja) | 部分的に再配置されたオブジェクトのソースインスタンスに関連する書き込みバリアを含む有界休止時間ガーベッジコレクションシステム及びその方法 | |
US6424977B1 (en) | Train-algorithm-based garbage collector employing reduced oversized-object threshold | |
US6185581B1 (en) | Train-algorithm-based garbage collector employing fixed-size remembered sets | |
US6415302B1 (en) | Train-algorithm-based garbage collector employing farthest-forward-car indicator | |
US5930807A (en) | Apparatus and method for fast filtering read and write barrier operations in garbage collection system | |
US6434577B1 (en) | Scalable-remembered-set garbage collection | |
US6449626B1 (en) | Reduced-cost remembered-set processing in a train-algorithm-based garbage collector | |
US7069281B2 (en) | Efficient collocation of evacuated objects in a copying garbage collector using variably filled local allocation buffers | |
US7035884B2 (en) | Placement of allocation trains in the train algorithm | |
US20020161792A1 (en) | Garbage collector employing multiple-car collection sets | |
US7062519B2 (en) | Incremental scanning of enormous objects to improve scheduling and pause-time behavior of garbage collection | |
US6999979B2 (en) | Efficient encoding of references into a collection set | |
US7062518B2 (en) | Efficiently supporting the existence of long trains in a generation managed by the train algorithm | |
US7096329B2 (en) | Better placement of objects promoted into a generation managed by the train algorithm | |
US7653793B1 (en) | Use of memory protection to implement replicating collection in an incremental, copying garbage collector | |
US7024437B2 (en) | Better placement of objects reachable from special objects during collection based on the train algorithm | |
US7149762B1 (en) | Handling futile collections in the train algorithm through selective extension of the collection set | |
KR100576904B1 (ko) | 가비지수집페이지경계횡단포인터스토어를트랩하기위한기록배리어시스템및방법 | |
KR100502380B1 (ko) | 포인터-고유명령변형교환메카니즘을포함하는쓰기배리어시스템및방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050310 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20071030 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20071019 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080129 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20080318 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20080326 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110404 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120404 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120404 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130404 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130404 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140404 Year of fee payment: 6 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
EXPY | Cancellation because of completion of term |