JPH03132839A - データ処理装置 - Google Patents

データ処理装置

Info

Publication number
JPH03132839A
JPH03132839A JP27023789A JP27023789A JPH03132839A JP H03132839 A JPH03132839 A JP H03132839A JP 27023789 A JP27023789 A JP 27023789A JP 27023789 A JP27023789 A JP 27023789A JP H03132839 A JPH03132839 A JP H03132839A
Authority
JP
Japan
Prior art keywords
data
processing unit
processing
central processing
collection
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP27023789A
Other languages
English (en)
Inventor
Nobuhito Miyauchi
信仁 宮内
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.)
National Institute of Advanced Industrial Science and Technology AIST
Original Assignee
Agency of Industrial Science and Technology
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 Agency of Industrial Science and Technology filed Critical Agency of Industrial Science and Technology
Priority to JP27023789A priority Critical patent/JPH03132839A/ja
Publication of JPH03132839A publication Critical patent/JPH03132839A/ja
Pending legal-status Critical Current

Links

Abstract

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

Description

【発明の詳細な説明】 〔産業上の利用分野〕 この発明は、データの参照数の管理を行い、不要になっ
たデータを回収する機能を有し、データを処理するデー
タ処理装置に関するものである。
〔従来の技術〕
一般的なデータ処理装置(計算機)の中央処理装置のハ
ードウェアの構成は、算術論理演算装置と頻繁に処理す
るデータを一時的に保持するレジスタ群と通常のデータ
全てを記録しておく主記憶装置をアクセスするためのメ
モリ管理装置とからなっており、データバスやアドレス
バスによりその連絡が行われている。
主記憶装置を処理系によってどのように管理するかは、
プログラミング言語の特性に関係して各データセルの管
理のしかたによって様々な方式がある。一般の論理型言
語では、データセルがどの時点で不要になったかを通常
判別することができないので、メモリを全て消費してし
まったときに不要なデータの回収の処理を行う。これを
ガーベジコレクションという (以下GCと称する)。
−度使用したデータセルを不要になってから回収してま
た新たに使用するインクリメンタルGC方式では、使用
可能なデータセルを連続したアドレスにて確保しておけ
ないので、各セルをボインりにてひとつなぎにしておく
方法をとっている。
これをフリーリストと呼んでおり、第3図のようなもの
である。第3図において、4はフリーリストトップポイ
ンタレジスタであり、14はフリーリスト終端子セルで
ある。
このフリーリストを使用してインクリメンタルGCを行
っている処理系の例に並列論理型言語KLIの処理系が
あり、第4図のようにデータセルを管理している。第4
図において、15はKL1処理系、16はフリーリスト
セル、17は使用しているセル、18は不要になったセ
ルである。
これらの参考文献として〔1〕木村他:MRBによる多
重参照管理方式−KLI処理処理台ける実時間ガーベジ
コレクション方式、第35回情報処理全国大会2Q−6
、及び〔2〕後藤他:LRCによる多重参照管理方式、
第37回情報処理全国大会7Y−5がある。
このインクリメンタルGCは不要になったデータの即時
回収を行い、−捨型GCの起動回数をできる限り減らそ
うとするものである。KLlのコンパイラではデータが
ユニフィケーションやデレファレンスや組込述語の入力
引数としての使用などの後に不要になったところで回収
命令を出力する。この回収命令の処理では、回収するデ
ータ構造のルートが与えられるので、まずルートとなる
データセルを回収する。次にこのデータセルから他のデ
ータセルを参照しているときは、その先の指されるデー
タセルを順に回′収していく。回収されるデータセルは
フリーリストの記録されているトップポインタを書き換
えて、フリーリストに継ぎ足す。不要データが階層構造
になっている場合には、スタックを使用して多段にわた
るデータセルを回収する。これらの処理について従来の
中央処理装置では、ハードウェアのサポートがないため
それぞれ主記憶装置を何度もアクセスする大きな処理と
なる。
このデータの回収の処理は一捨型GCがある限り通常の
処理ではないものであるから、通常の処理にとってかな
りのオーバヘッドになる。また不要データの回収命令に
より回収されるデータの量、は一定しておらず、処理過
程の一時点でかなり多量のデータが回収され通常の処理
がかなり中断される現象があることも報告されている(
〔3〕宮内他: LRCによるインクリメンタルGCの
評価。
第37回情報処理全国大会7Y−7参照)。
したがって、インクリメンタルGCを通常の中央処理装
置でそのまま処理しようとすると、データ処理装置(計
算機)の実行性能が大きく低下することになる。
一方、LISPマシンの並列ガーベジコレクションの例
で、通常の中央処理装置としてのリストプロセッサと不
要データを回収する処理装置としてのガーベジコレクタ
が並列に動作するようになっているものが報告されてい
るが、リストプロセッサは割り込みにより処理を中断し
、不要データのルートをスタックに積む処理を行うので
多量のルートをスタックに積む場合など連続した通常処
理は実質的に不可能なものである(〔4〕公開特許公報
:昭63−85946.並列ガーベジ・コレクションの
ルート処理方式参照)。
〔発明が解決しようとする課題〕
従来のデータ処理装置は上述したように構成されている
ので、中央処理装置ではデータの参照数管理による不要
データの回収を行おうとすると、通常の処理以外にデー
タ回収処理を行わなければならず、かなりのオーバヘッ
ドになり、特に大きな構造のデータの回収では一捨型G
Cに匹敵する通常処理の中断が課せられる。したがって
、従来のデータ処理装置では一捨型GCの起動回数を減
らそうとする目的に矛盾した結果となり、中央処理装置
のオーバヘッドの軽減を図ることが難しいという問題点
があった。
この発明は上記のような問題点を解決するためになされ
たもので、不要データの回収処理を中央処理装置に直接
行わせることは避け、その回収処理を他の装置で行い、
中央処理装置のオーバヘッドの軽減を図れるデータ処理
装置を提供することを目的とする。
〔課題を解決するための手段〕
この発明に係るデータ処理装置は、処理過程で、不要に
なったデータを回収するためのデータ回収命令のルート
を中央処理装置1から順次書き込むバッファ6と、この
バッファ6からルートを読み出して不要データの回収を
中央処理装置1の処理とは独立して実行して回収不要デ
ータによるフリーリストを中央処理装置1に返還するデ
ータ回収処理装置3とを設けたことを特徴とするもので
ある。
〔作用〕
バッファ6は、処理過程で不要になったデータを回収す
るためのデータ回収命令のルートを中央処理装置1から
順次書き込む。データ回収処理装置3は、バッファ6か
らルートを読み出し、不要データの回収を中央処理装置
1の処理とは独立して実行し、フリーリストを中央処理
装置1に返還する。
〔発明の実施例〕
第1図はこの発明の一実施例に係るデータ処理装置の要
部構成を示すブロック図である。図において、1はデー
タ処理に必要な演算・制御を行う中央処理装置、2はデ
ータ処理に必要なデータや処理データを記憶する主記憶
装置、3は下記サイクリックバッファからデータ回収命
令のルートを読み出しデータの回収を中央処理装置1の
処理とは独立して実行して回収不要データによるフリー
リストを中央処理装置1に返還するデータ回収処理装置
、4,5はフリーリストのトップポインタを格納するフ
リーリストトップポインタレジスタ、6は処理過程で不
要になったデータを回収するためのデータ回収命令のル
ートを中央処理装置1から順次書き込むサイクリックバ
ッファ、7は階層データを回収するためのハードウェア
スタック、8は中央処理装置1が主記憶装置2をアクセ
スするためのメモリバス、9はデータ回収処理装置3が
主記憶装置2をアクセスするためのメモリバスである。
次に動作について説明する。この実施例は並列論理型言
語KLIによりデータ処理を行うデータ処理装置であり
、このデータ処理装置において主記憶装置2を管理する
手法として、使用可能なl、ワードあるいは数ワード単
位のセルを次に使用可能なセルへのポインタによって連
結しておき、使用するたびに1つづつ開始端からセルを
獲得し不要になったらその開始端にセルを継ぎ足すこと
ができるフリーリスト方式を用いている。
データ回収処理装置3が行う基本的処理はデータ構造の
ルートをたどってフリーリストにデータセルをつなぎ戻
す処理であり、主記憶装置2の読み書きを行う機能を有
する。また、データ回収処理装置3は、回収データのデ
ータセルの種類を判別し、フリーリストの種類を区別し
たり、回収処理の種類別分岐を行ったりするために、タ
グディスパッチの機能も有する。通常に処理が行われる
データはフリーリストトップポインタレジスタ4゜5か
ら獲得されるものであり、通常の処理が終了した不要な
データがフリーリストに返還するデータ回収処理装置3
の対象とするデータである。したがって、中央処理装置
1とデータ回収処理装置3との主記憶装置2上でアクセ
スされるアドレスは必ず異なるので、両処理装W1,3
の主記憶装置2への同時アクセスが可能となる。
第4図に示すKLI処理系15は、データの参照数管理
を行い不要になったデータをデータルトの指示によりデ
ータ構造をたどり総て回収するため、機械命令(データ
回収命令)を実行可能なコードとしてコンパイルする。
並列論理型言語KL1ではデータ回収命令として、co
llect−1tst及びcollect−value
が用意されている。collect−1istはリスト
構造体セルをただ一つ回収するだけなので、1の通常の
中央処理装置1による処理で回収してもわずかなオーバ
ヘッドである。そこで、データ回収処理装置3が回収処
理を担当するのはcollect−value命令であ
る。
この命令で回収されるデータ構造の大きさは様々である
。データ回収処理装置3はcollect−value
にて引数として指定される回収データ構造のルートの値
をサイクリックバッファ6に書き込む。
第5図はこのサイクリックバッファ6の構成を説明する
ためのブロック図である。図において、アドレスレジス
タ19は、中央処理装置1からの・アドレスを格納し、
サイクリックバ・ソファ6の領域を指定する。アドレス
レジスタ20は、データ回収処理装置3からのアドレス
を格納し、サイクリックバッファ6の領域を指定する。
サイクリックバッファ6の各エントリにはデータの有効
を示すフラグビットがあり、このフラグビ・ノドは中央
処理装置1がルートを書き込むとオンになり、データ回
収処理装置3が読みだすとオフされるようになっている
。このサイクリックバッファ6のオーバフローの検出と
しては書き込みポインタと読みだしポインタとの比較を
行う形式でも可能であろう。このサイクリックバッファ
6がオーバフローすると回収データのルートをどこか別
のメモリ領域に待避しておくことが考えられるが、−捨
型GCが不可欠なので回収データを単純に捨ててしまっ
てかまわない。書き込みを行おうとするサイクリックバ
ッファ6のエントリのフラグビットがオンになっている
と、ハードウェアの割り込みが起こるようになっている
データ回収処理装置3は、サイクリ・ツクノNJ +7
フア6の有効な回収データのルートを読みだし、ルート
が指すデータセルを回収する。具体的には、第1図のフ
リーリストトップポインタレジスタ5にルートを書き込
み、旧フリーリストトップポインタをルートの指すデー
タセルに書き込む。回収データ内部にポインタが格納さ
れ、他のデータセルを指している場合には、この先のデ
ータセルの回収も行う。大きなデータ構造内に次のデー
タセルへのポインタが多い場合には、ハードウェアスタ
ック7を用いて後で回収処理を行う開始場所を格納して
おくことができる。このハードウェアスタック7の使用
法は様々に考えられ、マイクロプログラムのサブルーチ
ンコールのためのマイクロスタックとして使用する設計
も可能である。
中央処理装置1では、データセルの獲得をフリーリスト
トップポインタレジスタ4から行う。第6図Aに示すよ
うに中央処理装置lがフリーリストセル16を消費して
しまうと、通常、第1図に示す主記憶装置2のヒープ領
域からフリーリストセルを生成する。この前にフリーリ
ストトップボ、インタレジスタ5の内容をフリーリスト
トップポインタレジスタ4にコピーすれば、データ回収
処理装置3によって回収されたフリーリストセル16を
そのまま使用できる。コピー処理の後では、フリーリス
トトップポインタレジスタ5はフリーリスト終端子セル
14(第3図)を書き込みクリアしておく。フリーリス
トセル16は第6図Bに示すようにデータ回収処理装置
3から中央処理装置1へ譲渡される。
以上のように中央処理装置1とデータ回収処理装置3と
は、別々のメモリバス8,9によって主記憶装置2をア
クセスする。
ところで、レジスタだけの間でデータの転送が高速に行
われるのに対して、主記憶装置2に使用するダイナミッ
クRAMへのアクセスはレジスタへのアクセスの数倍の
時間がかかることが、現在の技術の常識となっており、
レジスタとほぼ同じ速度でアクセスできる高速なキャッ
シュメモリと呼ばれるメモリが主記憶装置2中で頻繁に
アクセスされるデータを高速にアクセスできるように搭
載することが近年一般に行われている。これにより、キ
ャッシュメモリを効率良く使用できるようなプログラミ
ングシステムの処理系のインプリメンテーションも重要
になってきている。
第2図は上記のようなキャッシュメモリを有する他の実
施例のブロック図である。第2図において、第1図に示
す構成要素に対応するものには同一の符号を付し、その
説明を省略する。第1図において、10a、10bはキ
ャッシュメモリ、11はキャッシュメモリ10aを制御
し主記憶装置2とデータ転送を行うキャッシュメモリコ
ントロールユニット、12は中央処理装置1がキヤ・ノ
シュメモリ10aをアクセスするためのキヤ・ノシュメ
モリバス、13はデータ回収処理装置3がキャッシュメ
モリ10bをアクセスするためのキャッシュメモリバス
である。
このようにキャッシュメモリlOa、10bを有するデ
ータ処理装置の場合、中央処理装置1が通常の処理で直
接アクセスするキヤ・ノシュメモリ10aを同時にデー
タ回収処理装置3がアクセス、することはできない。
このためにデータ回収処理装置3のためのキャッシュメ
モリ10bを備えることが考えられる。
この場合には、一般のマルチプロセッサのキャッシュメ
モリと同様に、2つのキャッシュメモリ間のデータの排
他制御処理が必要になる。一般には一方のキャッシュメ
モリのブロックをライトした場合、他方のキャッシュメ
モリに同一アドレスのブロックが存在するならば、この
ブロックのデータを無効化しなければならない。
このように上記実施例によれば、中央処理装置1が回収
すべき不要なデータのルートをサイクリックバッファ6
を経由してデータ回収処理装置3へ送信し、データ回収
処理装置3は中央処理装置lの通常の処理とは独立して
回収処理を行い、回収された不要なデータによるフリー
リストをフリリストトップポインタレジスタ5を経由し
て中央処理装置1に返還することが可能なので、中央処
理装置1自体は上記バッファ6やレジスタ5等をアクセ
スするだけで通常の処理を極力中断でき、インクリメン
タルGCのオーバヘッドを軽減する。
〔発明の効果〕
以上のように本発明によれば、処理過程で不要になった
データを回収するためのデータ回収命令のルートを中央
処理装置から順次書き込むバッファと、このバッファか
らルートを読み出して不要データの回収を中央処理装置
の処理とは独立して実行してフリーリストを中央処理装
置に返還するデータ回収処理装置とを備えて構成したの
で、不要データの回収処理は中央処理装置が直接行わず
、データ回収処理装置が行うことになり、これにより中
央処理装置のオーバヘッドが軽減するという効果が得ら
れる。
【図面の簡単な説明】
第1図はこの発明の一実施例に係るデータ処理装置の要
部構成を示すブロック図、第2図は他の実施例に係るデ
ータ処理装置の要部構成を示すブロック図、第3図は実
施例及び従来例においてフリーリストの形成を説明する
ための図、第4図は実施例及び従来例においてKLI処
理系におけるフリーリスト方式によるデータセルの獲得
及び回収の処理の概念図、第5図は実施例におけるサイ
クリックバッファの構成図、第6図(A)。 (B)(ま実施例において中央処理装置とデータ回収処
理装置によるフリーリスト使用に関する概念図である。 1・・・中央処理装置、2・・・主記憶装置、3・・・
データ回収処理装置、6・・・サイクリックバッファ。

Claims (1)

    【特許請求の範囲】
  1. データ処理に必要な演算・制御を行う中央処理装置と、
    データ処理に必要なデータや処理データを記憶する主記
    憶装置とを備えたデータ処理装置において、処理過程で
    不要になったデータを回収するためのデータ回収命令の
    ルートを上記中央処理装置から順次書き込むバッファと
    、このバッファからルートを読み出して不要データの回
    収を上記中央処理装置の処理とは独立して実行して回収
    不要データによるフリーリストを上記中央処理装置に返
    還するデータ回収処理装置とを設けたことを特徴とする
    データ処理装置。
JP27023789A 1989-10-19 1989-10-19 データ処理装置 Pending JPH03132839A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP27023789A JPH03132839A (ja) 1989-10-19 1989-10-19 データ処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP27023789A JPH03132839A (ja) 1989-10-19 1989-10-19 データ処理装置

Publications (1)

Publication Number Publication Date
JPH03132839A true JPH03132839A (ja) 1991-06-06

Family

ID=17483466

Family Applications (1)

Application Number Title Priority Date Filing Date
JP27023789A Pending JPH03132839A (ja) 1989-10-19 1989-10-19 データ処理装置

Country Status (1)

Country Link
JP (1) JPH03132839A (ja)

Similar Documents

Publication Publication Date Title
KR960011613A (ko) 데이터 처리장치
JP4763598B2 (ja) プロセッサおよびデバイス
US20060149940A1 (en) Implementation to save and restore processor registers on a context switch
JP2009514043A5 (ja)
JPH03132839A (ja) データ処理装置
Glaser et al. Lazy garbage collection
JPH01251250A (ja) 共有キャッシュメモリ
JPS6051947A (ja) 仮想記憶計算機における命令先取方式
JPS603229B2 (ja) 情報処理方式
JPS6037931B2 (ja) リスト処理方式
JP2540959B2 (ja) 情報処理装置
JPH0298754A (ja) 主記憶制御方式
JP2517859B2 (ja) 並列プロセス管理方法
JP3061818B2 (ja) マイクロ・プロセッサ用アクセス・モニタ装置
Nilsen Memory cycle accountings for hardware-assisted real-time garbage collection
JPH0447350A (ja) 主記憶読み出し応答制御方式
JP2718676B2 (ja) 仮想記憶ダンプ処理方法
JPH0738168B2 (ja) データ処理装置
JPS63237143A (ja) プログラマブルコントロ−ラ
JPH0658647B2 (ja) 計算機におけるページフォルトテスト方式
EP0362366A1 (en) COMMAND CAKE WITH FLUSH-ON-REI CONTROL.
JPS5872251A (ja) デ−タ処理方式
JPH03235148A (ja) 計算機システム
JPH03271859A (ja) 情報処理装置
JPS589452B2 (ja) フア−ムウエアホウシキ