[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

JPH06105435B2 - 情報処理装置による記憶管理機構 - Google Patents

情報処理装置による記憶管理機構

Info

Publication number
JPH06105435B2
JPH06105435B2 JP60237296A JP23729685A JPH06105435B2 JP H06105435 B2 JPH06105435 B2 JP H06105435B2 JP 60237296 A JP60237296 A JP 60237296A JP 23729685 A JP23729685 A JP 23729685A JP H06105435 B2 JPH06105435 B2 JP H06105435B2
Authority
JP
Japan
Prior art keywords
data
information processing
entry
area
storage management
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
JP60237296A
Other languages
English (en)
Other versions
JPS6298441A (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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP60237296A priority Critical patent/JPH06105435B2/ja
Priority to KR1019860007395A priority patent/KR870004369A/ko
Priority to EP86114723A priority patent/EP0220683A3/en
Publication of JPS6298441A publication Critical patent/JPS6298441A/ja
Priority to US07/503,112 priority patent/US5043869A/en
Publication of JPH06105435B2 publication Critical patent/JPH06105435B2/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
    • 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/0292User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Devices For Executing Special Programs (AREA)
  • Memory System (AREA)
  • Stored Programmes (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Executing Machine-Instructions (AREA)

Description

【発明の詳細な説明】 [技術分野] この発明は、情報処理技術さらにはオブジェクト指向言
語で書かれたプログラムを実行するマイクロプロセッサ
に適用して有効な技術に関し、例えばスモールトーク
(Smalltalk)と呼ばれる言語で動くマイクロプロセッ
サにおける記憶管理機構に利用して有効な技術に関す
る。
[背景技術] オブジェクト指向言語を用いたプログラミングでは、デ
ータとそのデータに対する手続きとが一体になったオブ
ジェクトを単位としてプログラムが組み立てられる。そ
して、このオブジェクトに対するメッセージの送信が基
本操作となっている。従って、プログラムを実行する場
合、オブジェクトの読み出しが頻繁に生じる。そのた
め、オブジェクト指向言語で書かれたプログラムを走ら
せるシステムでは、オブジェクトの記憶管理とオブジェ
クトの読出し方式が実行速度を決定する上で重要とな
る。
従来、スモールトーク用マイクロプロセッサにおけるオ
ブジエクト・テーブルの各エントリ領域の構造は、第2
図に示すようにオブジェクトの参照数を記憶するリファ
レンス・カウント領域RCとフラグ領域FG、オブジェクト
の物理アドレスを表すセグメント欄SGおよびオフセット
欄OFとにより構成されていた([株]岩波書店、1985年
6月24日発行、「岩波講座マイクロエレクトロニクス7
プログラミング言語とVLSI」第152頁〜158頁参照)。
ところで、オブジェクト指向言語ではプログラム実行
中、次に来るオペレーションは、アクセスされたオブジ
ェクトのクラスフィールド(オブジェクトの属するクラ
スの種類が入っている欄)を見ないと分からない。従っ
て、従来のオブジェクト・テーブルを用いた間接アクセ
ス方式では次に来るオペレーションを決定する場合、先
ず、オブジェクト・テーブルを引いてそれによって得ら
れた物理アドレスでオブジェクトをアクセスしてクラス
を参照しなければならなかった。すなわち、次のオペレ
ーション(スモールトークではメソッドと呼ぶ)は、受
け手のオブジェクトのクラスとメッセージのセレクタと
からメソッド・ディクショナリなるテーブルを引いてメ
ソッドの探索を行うため、オブジェクトのクラスが必要
となる。しかも、それをマクロプラグラムで行ってい
た。そのため、オペレーションが決定されるまでの時間
が長く、プログラムの実行速度が遅いという不都合が合
った。
[発明の目的] この発明の目的は、オブジェクト指向言語で書かれたプ
ログラムを実行するマイクロプロセッサにおけるプログ
ラムの実行速度の向上を図ることにある。
この発明の前記ならびにそのほかの目的と新規な特徴に
ついては、本明細書の記述および添附図面から明らかに
なるであろう。
[発明の概要] 本願において開示される発明のうち代表的なものの概要
を説明すれば、下記のとおりである。
すなわち、オブジェクト指向言語で書かれたプログラム
を実行する場合、オブジェクト・テーブル内の各エント
リーにそのオブジェクト内のクラス等のデータを入れる
データ欄を付加してやることにより、オブジェクト・テ
ーブルを引いて対応するデータ欄を参照するだけで次の
オペレーションを決定したり、必要なデータを得ること
ができるようにして、プログラムの実行速度の向上を図
るという上記目的を達成するものである。
[実施例] 第3図には、本発明を一例としてスモールトーク(Smsl
ltalk)で書かれたプログラムによって動くシステムに
適用した場合の要部の一実施例が示されている。
この実施例では、オブジェクト・ポインタOop内の値
(エントリ番号)によって指される主メモリMEM上に割
り付けられたオブジェクト・テーブル(アドレス変換用
テーブル)OT内の各エントリENTに、データ欄DTが設け
られている。このデータ欄DTには、そのエントリENT内
の物理アドレス(絶対アドレス)によって指示される主
メモリMEM上のヒープHP内のオブジェクトObjに関するデ
ータ、例えば指示されたオブジェクトObjの属するクラ
スが格納される。ヒープHP内の各オブジェクトObjに
は、一般にそのオブジェクトのサイズや各種データのほ
か、オブジェクトの属するクラスが入っている。従っ
て、ヒープHP上に新しくオブジェクトを形成し、かつオ
ブジェクト・テーブルOT上にそのオブジェクトを読み出
すためのエントリを設ける際に、オブジェクト内に入れ
るクラスを、対応するエントリのデータ欄にも入れてや
るようにすればよい。
このようにしておけば、例えばスモールトークで書かれ
たプログラムにおいて、メソッドを呼び出す場合に必要
となる受け手のオブジェクトのクラスを簡単に知ること
ができるようになる。すなわち、従来のアクセス方式で
は、オブジェクト・テーブルOTを引いて得られた物理ア
ドレスによっていちいちヒープHP内のオブジェクトをア
クセスしてクラスを読み出す必要があった。これに対
し、上記実施例の方式に従うと、オブジェクトのクラス
のみ知りたいような場合には、いちいちヒープ内まで捜
さなくても、単にオブジェクト・テーブルOTを引いて対
応するエントリENT内のデータ欄DTを見るだけで、直ち
に所望のクラスを知ることができる。
また、上記実施例では、オブジェクト・テーブルOT内の
各エントリENTに属するデータ欄DTに、一例として対応
するオブジェクトのクラスを入れるようにしたものにつ
いて説明したが、各エントリENTのデータ欄DTには、ク
ラス以外に例えばオブジェクトObjに関するデータの内
特に使用頻度の高いものを入れておくようにしてもよ
い。プログラムの局所性によって、同一オブジェクト内
の同一データを使用するが頻繁に起きるので、オブジェ
クト・テーブルOT内にそのようなデータを入れておくこ
とによって、いちいちオブジェクト・テーブルOTを介し
て間接的にヒープHP内のオブジェクトをアクセスしなく
ても、オブジェクト・テーブルOTを引くだけで必要なデ
ータが得られることが多くなる。
そのような、使用頻度の高い重要なデータが、オブジェ
クト形成の際に分かっていれば、予め対応するエントリ
ENTのデータ欄DTに入れておけばよい。また、エントリE
NTのデータ欄DTに予め重要なデータが入っていない場合
にも、初めてそのデータが使用されるときに、ヒープHP
内のオブジェクトObjから読み出されたデータを、対応
するオブジェクト・テーブルOT上のエントリENTのデー
タ欄DTに書き込んでやるようにしてもよい。このように
しても、プログラムの局所性から一度参照されたデータ
は再び使用される確立が高いので、同一データの二回目
以降のアクセス時間が短縮されるようになる。
オブジェクト・テーブルOT上のエントリENTのデータ欄D
Tに対応するオブジェクトのクラスを入れる場合にも、
最初にそのオブジェクトのクラスが参照されたときにデ
ータ欄に書き込むようにしてもよい。
第4図には、スモールトークのようなオブジェクト指向
言語に適したオブジェクト・テーブルOTのエントリのよ
り具体的構成例が示されている。
すなわち、この実施例のエントリは、リファレンス・カ
ウント領域RCとフラグ領域FG、セグメント欄SGおよびオ
フセット欄OFに、例えば2ワードのデータ欄DTが付属さ
れた構成にされている。
4ビットのセグメント欄SGと16ビットのオフセット欄OF
を結合した20ビットで主メモリの物理アドレスを形成
し、ヒープHP内のオブジェクトObjをアクセスするよう
にされる。フラグ領域FGには、オブジェクトの中身がポ
インタであるか否かを示すビット等オブジェクトの記憶
管理に必要なフラグが設けられている。
また、リファレンス・カウント領域RCは、オブジェクト
の回収に利用する欄で、ここにはそのオブジェクトを指
している他のオブジェクトの数が入れるようにされてい
る。RCが0になれば、そのオブジェクトは他から参照さ
れていないことを意味する。そこで、RCが0になった場
合には、ガーベッジ・コレクタと呼ばれるプログラムに
よって、使用されなくなったオブジェクトを回収し、空
いた記憶領域の再利用を図るようにされている(ガーベ
ッジ・コレクション)。
さらに、新たにオブジェクトを形成する場合に、そのオ
ブジエクトが入るのに必要かつ十分な大きさの空き領域
を速やかに見つけるため、同じ大きさの空き領域(チャ
ンク)をつないだ線型リスト(フリーチャンク・リス
ト)と、大きさごとに空き領域の線型リストの先頭アド
レスを入れたテーブルとを形成する。また、空き領域の
サイズがだんだん小さくなって新しいオブジェクトの入
る空き領域の探索に失敗すると、ばらばらの空き領域を
集めて一つの大きな空き領域を形成するコンパクション
と呼ばれる処理を行うようにされている。
上記のようなオブジェクト・テーブルOTの管理、オブジ
ェクトの形成、ガーベッジ・コレクション、線型リスト
の作成およびコンパクション等の処理は、従来全てマク
ロプログラムで実行されるようになっていた。しかる
に、この発明では、オブジェクト・テーブルOTを用いた
記憶管理に関する上記処理を全てマイクロプロセッサ内
のマイクロプログラムによって行うようにした。これに
よって、プログラムの実行速度が大幅に向上されるよう
になる。
[効果] オブジェクト・テーブル内の各エントリのうち少なくと
も頻繁にアクセスされるオブジェクトを指示するもの
に、そのオブジェクト内のクラス等のデータを入れるデ
ータ欄を付加してなるので、オブジェクト・テーブルを
引いて対応するデータ欄を参照するだけで次のオペレー
ションを決定したり、必要なデータを得ることができる
という作用により、プログラムの実行速度が向上され
る。しかも、この発明では、オブジェクト・テーブルを
用いた記憶管理をすべてマイクロプログラムで行うよう
にしたので、さらに、プログラムの実行速度が向上され
るという効果がある。
以上本発明者によってなされた発明の実施例に基づき具
体的に説明したが、本発明は上記実施例に限定されるも
のではなく、その要旨を逸脱しない範囲で種々変更可能
であることはいうまでもない。例えば、上記実施例で
は、オブジェクト・テーブルが主メモリ上に形成されて
いると説明したが、オブジェクト・テーブルはオンチッ
プの大容量レジスタ群上に割り付けるようにしてもよ
い。
[利用分野] 以上の説明では主として本発明者によってなされた発明
をその背景となった利用分野であるスモールトーク(Sm
alltalk)で書かれたプログラムで動くシステムに適用
した場合について説明したが、この発明はそれに限定さ
れず、オブジェクト指向言語で書かれたプログラムを実
行するシステムにおける記憶管理機構一般に利用するこ
とができる。
【図面の簡単な説明】
第1図は、従来のスモールトーク(Smalltalk)用のマ
イクロプロセッサにおけるオブジェクトのアクセス方式
を示す説明図、 第2図は、オブジェクトのアクセスに使用される従来の
オブジェクト・テーブルの構成例を示す説明図、 第3図は、本発明に係るオブジェクト・テーブル使用方
式を示す説明図、 第4図は、そのオブジェクト・テーブルの構成例を示す
説明図である。 Oop……オブジェクト・ポインタ、OT……オブジェクト
・テーブル、ENT……エントリ領域、DT……データ領域
(データ欄)、FG……フラグ領域、RC……リファランス
・カウント領域、SG……セグメント欄、OF……オフセッ
ト欄、HP……ヒープ、Obj……オブジェクト。

Claims (3)

    【特許請求の範囲】
  1. 【請求項1】オブジェクト指向言語で書かれたプログラ
    ムを実行可能な情報処理装置による記憶管理機構であっ
    て、 上記プログラムを構成する複数のオブジェクトの所在を
    示すための物理アドレス情報をそれぞれエントリとして
    保有するための複数のエントリ領域を有するアドレス変
    換用テーブルと、 上記アドレス変換用テーブルのエントリ領域を示すため
    のポインタと、を含み、 上記アドレス変換用テーブルのエントリ領域は、そのエ
    ントリ領域の物理アドレス情報で指定されるオブジェク
    ト内の頻繁に参照が生ずる一部のデータを格納可能なデ
    ータ領域を更に有し、 上記情報処理装置は、上記ポインタで示されるエントリ
    領域の物理アドレス情報によるオブジェクトの参照に代
    えて、当該エントリ領域に含まれるデータ領域のデータ
    を参照可能であることを特徴とする情報処理装置による
    記憶管理機構。
  2. 【請求項2】上記データ領域は、対応するエントリ領域
    の物理アドレスで指されるオブジェクトの属するクラス
    を格納する領域であることを特徴とする特許請求の範囲
    第1項記載の情報処理装置による記憶管理機構。
  3. 【請求項3】上記情報処理装置は、上記ポインタで示さ
    れるエントリ領域の物理アドレス情報にて参照したオブ
    ジェクトの所定のデータを、当該エントリ領域の上記デ
    ータ領域に書き込むものであることを特徴とする特許請
    求の範囲第1項または第2項記載の情報処理装置による
    記憶管理機構。
JP60237296A 1985-10-25 1985-10-25 情報処理装置による記憶管理機構 Expired - Lifetime JPH06105435B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP60237296A JPH06105435B2 (ja) 1985-10-25 1985-10-25 情報処理装置による記憶管理機構
KR1019860007395A KR870004369A (ko) 1985-10-25 1986-09-04 정보 처리 장치에 있어서의 기억 영역 구조
EP86114723A EP0220683A3 (en) 1985-10-25 1986-10-23 Storage area structure in information processor
US07/503,112 US5043869A (en) 1985-10-25 1990-03-30 Storage area structure in information processor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP60237296A JPH06105435B2 (ja) 1985-10-25 1985-10-25 情報処理装置による記憶管理機構

Publications (2)

Publication Number Publication Date
JPS6298441A JPS6298441A (ja) 1987-05-07
JPH06105435B2 true JPH06105435B2 (ja) 1994-12-21

Family

ID=17013264

Family Applications (1)

Application Number Title Priority Date Filing Date
JP60237296A Expired - Lifetime JPH06105435B2 (ja) 1985-10-25 1985-10-25 情報処理装置による記憶管理機構

Country Status (4)

Country Link
US (1) US5043869A (ja)
EP (1) EP0220683A3 (ja)
JP (1) JPH06105435B2 (ja)
KR (1) KR870004369A (ja)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5603000A (en) * 1989-05-15 1997-02-11 Dallas Semiconductor Corporation Integrated circuit memory with verification unit which resets an address translation register upon failure to define one-to-one correspondences between addresses and memory cells
US5189733A (en) * 1989-08-22 1993-02-23 Borland International, Inc. Application program memory management system
JP2591217B2 (ja) * 1990-02-06 1997-03-19 日本電気株式会社 オブジェクトクラス定義情報実装装置
US5396630A (en) * 1992-10-06 1995-03-07 International Business Machines Corporation Method and system for object management across process boundries in a data processing system
SE501433C2 (sv) * 1993-06-23 1995-02-13 Ellemtel Utvecklings Ab Sätt att uppnå dataaccess i en primärminnesbaserad databas
US5463769A (en) * 1993-12-15 1995-10-31 International Business Machines Corporation Method and apparatus using dictionary of methods and states for high performance context switching between build and run modes in a computer application builder program
US5611043A (en) * 1994-03-18 1997-03-11 Borland International, Inc. Debugger system and method for controlling child processes
JP3582756B2 (ja) * 1996-10-14 2004-10-27 日本電信電話株式会社 メモリ管理方法
KR20020060419A (ko) * 2001-01-11 2002-07-18 최웅림 메모리 접근 방법
CN100356330C (zh) * 2006-01-26 2007-12-19 无锡永中科技有限公司 基于对象存储库的粘贴链接处理方法和粘贴链接处理器
CN100461176C (zh) * 2006-01-26 2009-02-11 无锡永中科技有限公司 基于对象存储库的对象引用方法

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB1218406A (en) * 1968-07-04 1971-01-06 Ibm An electronic data processing system
FR2230258A5 (ja) * 1973-05-16 1974-12-13 Honeywell Bull Soc Ind
US4145745A (en) * 1974-12-20 1979-03-20 U.S. Philips Corporation Address conversion device for secondary memories
JPS52130532A (en) * 1976-04-27 1977-11-01 Fujitsu Ltd Address conversion system
DE2641722C3 (de) * 1976-09-16 1981-10-08 Siemens AG, 1000 Berlin und 8000 München Hierarchisch geordnetes Speichersystem für eine datenverarbeitende Anlage mit virtueller Adressierung
US4325120A (en) * 1978-12-21 1982-04-13 Intel Corporation Data processing system
JPS55112651A (en) * 1979-02-21 1980-08-30 Fujitsu Ltd Virtual computer system
US4388682A (en) * 1979-09-04 1983-06-14 Raytheon Company Microprogrammable instruction translator
US4511964A (en) * 1982-11-12 1985-04-16 Hewlett-Packard Company Dynamic physical memory mapping and management of independent programming environments
JPH0658646B2 (ja) * 1982-12-30 1994-08-03 インタ−ナショナル・ビジネス・マシ−ンズ・コ−ポレ−ション デ−タ持続性が制御される仮想記憶アドレス変換機構
US4792895A (en) * 1984-07-30 1988-12-20 International Business Machines Corp. Instruction processing in higher level virtual machines by a real machine

Also Published As

Publication number Publication date
EP0220683A3 (en) 1989-11-15
EP0220683A2 (en) 1987-05-06
US5043869A (en) 1991-08-27
KR870004369A (ko) 1987-05-09
JPS6298441A (ja) 1987-05-07

Similar Documents

Publication Publication Date Title
US6308185B1 (en) Methods and apparatus for generational dynamic management of computer memory
JP4248025B2 (ja) 追跡型ゴミ集め用のスペースの限られたマーク付け構造
US5930807A (en) Apparatus and method for fast filtering read and write barrier operations in garbage collection system
JP3628032B2 (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
US6529919B1 (en) Incremental class unloading in a train-algorithm-based garbage collector
EP1049979B1 (en) Incremental garbage collection
JP2856620B2 (ja) コンピュータ・システムにおけるメモリ管理方法及び装置
US6434577B1 (en) Scalable-remembered-set garbage collection
US6449626B1 (en) Reduced-cost remembered-set processing in a train-algorithm-based garbage collector
US20020161792A1 (en) Garbage collector employing multiple-car collection sets
JP2000513850A (ja) ジェネレーション分離システム及びガーベッジコレクションのための方法
JPH06105435B2 (ja) 情報処理装置による記憶管理機構
US6999979B2 (en) Efficient encoding of references into a collection set
JPH05274152A (ja) オブジェクト管理方式
US7617264B1 (en) Parallel remembered-set processing respecting popular-object detection
JP2675088B2 (ja) 情報収集方法
JPS6037931B2 (ja) リスト処理方式
US7146390B2 (en) Staging the processing of remembered-set entries as part of collection based on the train algorithm
JPH05241936A (ja) ガーベッジコレクション処理方式及びその記憶装置
KR100318281B1 (ko) 실용위성의 덤프데이터 추출과 취합 및 데이터 베이스구축방법
JPH0318214B2 (ja)
CN117270762A (zh) 队列控制方法和装置
JPS6122824B2 (ja)