JPH02263233A - データ管理方式 - Google Patents

データ管理方式

Info

Publication number
JPH02263233A
JPH02263233A JP1059390A JP5939089A JPH02263233A JP H02263233 A JPH02263233 A JP H02263233A JP 1059390 A JP1059390 A JP 1059390A JP 5939089 A JP5939089 A JP 5939089A JP H02263233 A JPH02263233 A JP H02263233A
Authority
JP
Japan
Prior art keywords
storage space
pointer
real
space
node
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
JP1059390A
Other languages
English (en)
Inventor
Hirotoshi Maekawa
博俊 前川
Hiroyuki Yasuda
弘幸 安田
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.)
Sony Corp
Original Assignee
Sony Corp
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 Sony Corp filed Critical Sony Corp
Priority to JP1059390A priority Critical patent/JPH02263233A/ja
Priority to PCT/JP1989/001249 priority patent/WO1990007151A1/ja
Priority to DE68928782T priority patent/DE68928782T2/de
Priority to KR1019900701710A priority patent/KR950005525B1/ko
Priority to EP90900984A priority patent/EP0417293B1/en
Publication of JPH02263233A publication Critical patent/JPH02263233A/ja
Priority to US08/117,337 priority patent/US6067607A/en
Priority to US08/649,775 priority patent/US5694599A/en
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4022Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9024Graphs; Linked lists
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Computer Hardware Design (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Memory System (AREA)
  • Devices For Executing Special Programs (AREA)
  • Document Processing Apparatus (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

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

Description

【発明の詳細な説明】 A 産業上の利用分野 本発明は、コンピュータの主記憶のデータ管理方式に関
し、特に、人工知能、数式処理、自然言語処理等の記号
処理分野で基本的かつ不可欠なリスト構造データの仮想
化を効率良く実現するものである。
B 発明の概要 本発明は、コンピュータによりデータを管理するにあた
り、実記憶空間ではその実記憶空間内のアドレスにてポ
インタを表し、仮想記憶空間ではその仮想記憶空間内の
アドレスと上記実記憶空間へのアドレスにてポインタを
表し、上記実記憶空間上のノードから仮想記憶空間上の
ノードを間接参照するようにして、ノード間がポインタ
でリンクされた構造のデータを実記憶空間と仮想記憶空
間とに亘って表現し、上記ノード間がポインタでリンク
された構造のデータをそのリンク情報を用いたリスト構
造単位で実記憶空間と仮想記憶空間との間で移動させる
ことにより、人工知能、数式処理、自然言語処理等の記
号処理分野で基本的がつ不可欠なリスト構造データの仮
想記憶化を効率良く実現したものである。
C従来の技術 一般に、コンピュータによる人工知能、数式処理、自然
言語処理等の記号処理分野では、リスト構造のデータを
メモリ上で管理しながら、目的の記号処理を行うように
している。
従来より、上記リスト構造のデータとしては、ノード間
がポインタでリンクされている構造を持った所謂poi
nter−1inked dataが広く知られている
。上記pointer−1inked dataにおい
て、ポインタは、多くの場合一方向にだけ持ち、また、
ノードは、(lhのノードへのポインタと自身のデータ
を持ち、そのポインタ数が二つの所謂2分木(bina
ry tree)構造が多い。
例えば、リスト構造のデータを扱う代表的な言語として
知られているリスプ(LISP)言語では、第13図に
リスト構造のデータ例を示しであるように、中間ノード
(Nlo)、(Nlt)、(N+4)、(Nl5)、(
Nl?)。
(Nzo) 、(Nzg) 、(Nl4) 、 (N1
6)がポインタを二つ持ち、端末に位置するノード(N
++)、(N++)、(Nli)、(Nls)。
(N+*)、 (Nr+)、 (Nzs)、 (Nzg
) 、 (Nzt) 、 (Nt、)に具体的データを
持ち、上記端末の構成状態が情報を持っている。
また、上述のようなリスト構造のデータをメモリ上で扱
う場合は、例えば第14図に示すように、番地付けられ
たメモリ上の記憶空間(M)にノード(Nl。)、(N
11)、(Nlり、(Nls)・・・・・を表現し、そ
の記憶空間(M)のアドレスにてポインタを表現するよ
うにして、コンピュータにて上記データを管理するよう
にしている。
ところで、上記記号処理分野で扱われている上記リスト
構造のデータは、切れたり繋がったり、伸びたり縮んだ
りして、そのデータ構造として与えられる情報が自在に
変化する動的構造を有し、試行1!誤的な振る舞いをす
る。
また、このようなリスト構造のデータをコンピュータに
てメモリ上で管理する場合、そのデータ構造がメモリ上
に分散され、メモリ上に新たなノードが無くなってしま
ったり、使用済で不要なノードができるので、不要なノ
ードを回収して新しいノードとして再使用するガーベジ
コレクションCGC:Garbage (:oflec
tion)が行われる。
さらに、ガーベジコレクションを行っても実記憶空間が
足りないときには、記憶空間(M)を仮想化により拡張
するようにして、例えば第15図や第16図に示すよう
に、記憶空間をページ単位で管理して実記憶空間(RM
)と仮想記憶空間(IM)との間でページ単位でのデー
タ転送(swapping)が行われている。
D 発明が解決しようとする課題 ところで、現在のコンピュータアーキテクチャは、静的
構造を有する局所的なデータを処理するようにデザイン
されており、上記記号処理分野で扱われているような上
記リスト構造のデータの処理には適さず、例えば処理対
象が動的に分散されているガーベジコレクションを実行
するのに非常に長い時間を要する。また、従来、データ
の局所性を前提として記憶空間をページ単位で管理する
ようにして記憶空間を仮想化しており、上記ページは記
憶空間上の固定領域であるが、上記リスト構造のデータ
は動的に変化していくので、その構造は複数のページ間
に複雑に入り組んでしまい、ページフォルトが頻繁に発
生し効率が悪い。特に、仮想化した記憶空間に対してガ
ーベジコレクシジンを実行した場合には、実記憶空間と
仮想記憶空間との間でページ単位でのデータ転送を行う
ために、実行効率が著しく低下する。
そこで、本発明は、上述の如き従来の実情に鑑み、人工
知能、数式処理、自然言語処理等の記号処理分野で基本
的かつ不可欠なリスト構造データの仮想記憶化を効率良
く実現することを目的とする。
E 課題を解決するための手段 本発明に係るデータ管理方式は、上述の目的を達成する
ために、実記憶空間ではその実記憶空間内のアドレスに
てポインタを表し、仮想記憶空間ではその仮想記憶空間
内のアドレスと上記実記憶空間へのアドレスにてポイン
タを表し、上記実記憶空間上のノードから仮想記憶空間
上のノードを間接参照するようにして、ノード間がポイ
ンタでリンクされた構造のデータを実記憶空間と仮想記
憶空間とに亘って表現し、上記ノード間がポインタでリ
ンクされた構造のデータをそのリンク情報を用いたリス
ト構造単位で実記憶空間と仮想記憶空間との間で移動さ
せることを特徴とする。
F 作用 本発明に係るデータ管理方式では、実記憶空間ではその
実記憶空間内のアドレスにてポインタを表し、仮想記憶
空間ではその仮想記憶空間内のアドレスと上記実記憶空
間へのアドレスにてポインタを表し、上記実記憶空間上
のノードから仮想記憶空間上のノードを間接参照するよ
うにして、ノード間がポインタでリンクされた構造のデ
ータを実記憶空間と仮想記憶空間とに亘って表現するこ
とによって、ポインタにて全記憶空間を表現する必要が
無くなる。また、上記ノード間がポインタでリンクされ
た構造のデータをそのリンク情報を用いたリスト構造単
位で実記憶空間と仮想記憶空間との間で移動させること
により、動的なデータを静的に区分することなく動的デ
ータ構造をそのまま反映させた状態で管理する。
G 実施例 以下、本発明の一実施例について、図面に従い詳細に説
明する。
第2図は、本発明に係るデータ管理方式を適用してリス
ト構造のデータを取り扱うようにしたマルチプロセッサ
システムの概念的な構成を示すブロック図である。この
マルチプロセッサシステムは、複数のプロセッサ(la
) 、 (lb)〜(In)によりそれぞれメモリコン
トローラ(2a) 、 (2b)〜(2n)を介してア
クセスされる実記憶空間をなす主記憶装置(3)と仮想
記憶空間をなすハードディスク装置等の二次記憶装置(
4)とを備え、仮想化による記憶容量の拡張が図られて
いる。
なお、上記主記憶装置(3)は複数のメモリバンク(3
a) 、 (3b) 〜(3n)と上記各メモリバンク
(3a) 。
(3b)〜(3n)の接続回路(3A)にて構成されて
いる。
このマルチプロセッサシステムにて取り扱うリスト構造
のデータは、実記憶空間ではその実記憶空間内のアドレ
スにてポインタを表し、また、仮想記憶空間ではその仮
想記憶空間内のアドレスと上記実記憶空間へのアドレス
にてポインタを表し、上記実記憶空間上のノードから仮
想記憶空間上のノードを間接ポインタにて参照するよう
にして、第1図に示すようにノード間がポインタでリン
クされたリスト構造のデータとして上記主記憶装置(3
)による実記憶空間(RM)と上記二次記憶装置(4)
による仮想記憶空間(IM)とに亘って表現され、上記
第1図に破線で囲んで示すようなリスト構造単位(01
)、 (uz)で上記実記憶空間(RM)と仮想記憶空
間(IM)との間でデータ転送(Swapping)さ
れる。
なお、上記第1図中には、上記仮想記憶空間上のノード
を参照する間接ポインタを設定した上記実記憶空間上の
ノードを口にて示し、他のノードをOにて示しである。
ここで、上記リスト構造のデータの具体的表現例につい
て説明する。
例えば第3図に示すように、上記主記憶装置(3)によ
る実記憶空間(RM)上に表現された9個のノード(N
、。)、(N++)、(N+z)、(N+ff)、(N
z。)、(Nz+)、(Nzz)。
(Nzs) 、 (Nx。)が上記実記憶空間(RM)
上の実記憶空間アドレスで表現したポインタにてリンク
されてなるリスト構造のデータは、上記第3図中に破線
にて囲んで示す4個のノード(N++)、(Lx)、(
N□)。
(N2りによるリスト構造単位(Uo)を上記二次記憶
装置(4)による仮想記憶空間(I?l)上に移した場
合、第4図のように表現される。
第4図において、上記仮想記憶空間(IM)上に移した
上記リスト構造単位(U、)を構成する4個のノード(
n、1)、 (nlz)、 (nt+)、 (nxx)
は、上記仮想記憶空間(IM)上の各ノード(nt、)
、 (n−)の仮想記憶空間アドレスおよび上記実記憶
空間(RM)上の各ノード(N++)、(N+z)、(
N+3)、(Ntz)の実記憶空間アドレスを直接表現
した各ポインタにて、上記各ノード(ntt)、(nt
t)、(Net)、(Net)、(NIs)、(Ibs
)  とリンクされる。また、上記実記憶空間(12M
)上の各ノード(Net)、(Net)は、上記仮想記
憶空間(IM)上の上記リスト構造単位(U、)の各ノ
ード(n、)、(nl−)の仮想記憶空間アドレスを表
現した間接ポインタにて、上記各ノード(n、)、(n
lりとリンクされる。
上述の如きリスト構造のデータを取り扱うこのシステム
では、上記リストデータの動的な変化過程において、上
記実記憶空間(RM)上に必要なノードが無く、リスト
フォールトが発生し、そのノードが上記仮想記憶空間(
IM)上にある場合に、そのノードを含む一連のリスト
構造単位のデータを上記仮想記憶空間(LM)から上記
実記憶空間(RM)にデータ転送(Swap−in)す
ることにより、後述する手順に従ってリストインを行う
また、このシステムでは、上記実記憶空間(RM)上の
フリーノードの数を監視しており、上記実記憶空間(R
M)上のフリーノードが無くなると、不要なノードをフ
リーノードとして回収するガーベジコレクシロンを行い
、このガーベジコレクションによりフリーノードの数が
所定の閾(tI S h以上になれば、本来のデータ処
理に復帰する。上記ガーベジコレクションによりフリー
ノードの数が所定の闇値sh以上にならない場合には、
その時点で上記実記憶空間(RM)上に不要なリストデ
ータへのポンダを抽出して、後述する手順に従って上記
実記憶空間(RM)から上記仮想記憶空間(IM)への
リスト構造単位のデータ転送(Swap−out)する
ためのリストアウド動作を上記実記憶空間(RM)上で
行う。
上記実記憶空間(1?M)上でリストアウドしたリスト
構造単位のデータ数が少なく所定の閾(!!SSに満た
ない場合には、上記実記憶空間(RM)上に不要なリス
トデータへのボンダをさらに抽出して、新たなリストデ
ータのリストアウド動作を上記実記憶空間(RM)上で
繰り返し行う、そして、上記実記憶空間(RM)上でリ
ストアウドしたリスト構造単位のデータ数が上記闇値S
sに達すると、上記実記憶空間(RM)でリストアウド
されたリスト構造単位のデータを上記実記憶空間(R’
M )から上記仮想記憶空間(■FI)へデータ転送(
Swap−out) シ、リストアウドの動作を終了し
て、本来のデータ処理に復帰する。
上記実記憶空間(RM)から上記仮想記憶空間(IM)
へのリストアウドの動作は、リスト構造を掃査して、各
ノードのリンク数をリファレンスカウンタにより参照し
ながら間接ポインタを用いて次のように行われる。
例えば第5図に示すように、実記憶空間(RM)上の7
個のノード(Ne。)、(Ne +) 、(Ne z)
 、(NIs) 、(Nx。)。
(To+)、(Nzz)間がポインタにてリンクされた
リスト構造単位(υ、。)を上記実記憶空間(RM)か
ら仮想記憶空間(IM)ヘリスドアウドする場合につい
て説明すると、先ず、上記実記憶空間(RM)上におい
て、その作業領域(IIA)に上記リスト構造単位(U
、。)を第6図A〜第6図Fに示すような手順でリスト
アウドする。
すなわち、先ず、上記実記憶空間(RM)上の上記リス
ト構造単位(El t @)の開始位置にあるノード例
えばノード(N16)に着目して、第6図Aに示すよう
に、上記ノード(Ne・)に対するリンクを実記憶空間
アドレスで表現した逆参照ポインタと上記ノード(Ne
。)のポインタにてリンクされているノード(N、)に
対するリンクを実記憶空間アドレスで示した逆参照ポイ
ンタを有するノード(nl。)を上記仮想記憶空間(I
M)に移すノードとして上記実記憶空間(RM)上の作
業領域(阿^)に設け、上記仮想記憶空間(IM)に移
す上記ノード(neo)へのリンクを表現した間接ポイ
ンタを上記実記憶空間(RM)上のノード(Ne。)に
設定する。
次に、上記実記憶空間(RM)上の上記ノード(Nl。
)にリンクしていた上記ノード(Nl+)に着目して、
第6図Bに示すように、上記ノード(Ni+)に対する
リンクを実記憶空間アドレスで表現した逆参照ポインタ
と上記ノード(Net)のポインタにてリンクされてい
る各ノード(Net)、(Nz+)に対する各リンクを
実記憶空間アドレスで表現した各逆参照ポインタを有す
るノード(n、)を上記作業領域(W^)に設ける。そ
して、上記作業領域(賀A)の上記ノード(n11)へ
のリンクを表現した間接ポインタを上記ノード(N 1
.+ )に設定するとともに、上記作業領域(−^)の
上記ノード(nl。)のポインタによる上記実記憶空間
(12M)上の上記ノード(N12)へのリンクを該ノ
ード(N + t)に対応する上記作業領域(HA)の
上記ノード(n、t)へのリンクに移して、上記ノード
(Lx)への逆参照ポインタを上記ノード(nl、)へ
のリンクを仮想記憶空間アドレスにて表現した内容のポ
インタに変更する。
その次に、上記実記憶空間(RM)上の上記ノード(N
11)にリンクしていた上記ノード(N、□)に着目し
て、二〇ノード(Niz)のポインタによるノード(N
i3)へのリンクを手繰って、上記実記憶空間上゛の各
ノード(N、□)、(N’3)を上記作業領域(HA)
に移して、第6図Cに示すように、上記ノード(n、1
)のポインタにてリンクされるノード(nIz)  と
、このノード(nIz)のポインタにてリンクされるノ
ード(nl3)を上記作業領域(−八)に設ける。
次に、上記作業領域(HA)の上記ノード(n、)の逆
参照ポインタにてリンクされている上記実記憶空間(R
M)上の上記ノード(Nz+)に着目して、このノード
(NZ+)のポインタによるノード(No)へのリンク
を手繰ることにより、上記実記憶空間(RM)上の各ノ
ード(N2 +)、 (N22)を上記作業領域(IA
A)に移して、第6図りに示すように、上記ノード(n
、)のポインタにてリンクされるノード(nz+)  
と、このノード(nz+)のポインタにてリンクされる
ノード(n、)を上記作業領域(WA)に設ける。さら
に、上記作業領域(11A)の上記ノード(nz□)の
逆参照ポインタによる上記実記憶空間(RM)上の上記
ノード(Ni1)へのリンクを上記ノード(Nl+)に
対応する上記作業領域(畦)の上記ノード(n、)への
リンクに付は替える。
さらに、上記実記憶空間(RM)上の上記リスト構造単
位(U、。)の他の開始位置にある未掃査のノード(N
!。)に着目して、第6図已に示すように、上記ノード
(Nzo)に対するリンクを実記憶空間アドレスで表現
した逆参照ポインタと上記ノード(Nz。)のポインタ
にてリンクされている上記ノード(N、)に対するリン
クを実記憶空間アドレスで示した逆参照ポインタを有す
るノード(ntJ を上記作業領域(−A)に設けると
ともに、このノード(nz。)へのリンクを表現した間
接ポインタを上記実記憶空間(RM)上のノード(Nt
O)に設定する。
そして、上記作業領域(−^)の上記ノード(nz。)
の逆参照ポインタによる上記実記憶空間(RM)上の上
記ノード(N++)へのリンクを該ノード(N++)に
対応する上記作業領域(HA)の上記ノード(n、、)
へのリンクに付は替えて、第6図Fに示すように、上記
実記憶空間上(RM)の上記ノード(N、)を上記作業
領域(紳A)の上記ノード(nl、)に完全に移動させ
ることにより、上記実記憶空間(RM)上の作業領域(
HA)への上記リスト構造単位(U、。)のリストアウ
ドを終了する。
最後に、上記リスト構造単位(υ、。)のデータを上記
主記憶装置(3)による実記憶空間(RM)上の作業領
域(諭)から上記二次記憶装置(4)による仮想記憶空
間(IM)へデータ転送(Si1ap−out)するこ
とにより、上記リスト構造単位(U+O)を上記仮想記
憶空間(IM)へ第7図に示すようにリストアウドする
このように、間接ポインタを用いることにより上記リス
ト構造単位(υ、。)′の如き環状リスト構造も旨くリ
ストアウドすることができ、しかも、上記主記憶袋W(
3)による実記憶空間(RM)上でリストアウドしたリ
スト構造単位のデータを上記実記憶空間(RM)から上
記二次記憶装置(4)による仮想記憶空間(IM)への
データ転送(Swap−out)することにより、上記
仮想記憶空間(IM)に効率よく迅速にリストアウドす
ることができる。
ここで、上記実記憶空間(RM)上のノードに対するリ
ンクを実記憶空間アドレスにて表現し、また、上記仮想
記憶空間(IM)上のノードに対するリンクを仮想記憶
空間アドレスをそれぞれ各記憶空間内で表現して、それ
ぞれの記憶空間内でのリンクを直接表現した通常のポイ
ンタと、上記仮想記憶空間(IM)上のノードの仮想記
憶空間アドレスを表現した上記実記憶空間(RM)上の
ノード(N++)、(Nit)等の間接ポインタや、上
記実記憶空間(RM)上のノードに対するリンクを実記
憶空間アドレスで表現した上記仮想記憶空間(IM)上
のノード(nl。)、(nl)等の逆参照ポインタとは
、例えばそのポインタで指されているノードの種IFを
示すタグをポインタに付加しておくことにより、上記タ
グの内容にて識別される。
次に、上記二次記憶装置(4)による仮想記憶空間(団
)から上記主記憶装置(3)による実記憶空間(RM)
へのリストインは、アクセスしようとするノードが上記
実記憶空間(R?り上になく間接ボンインクにて示され
る仮想記憶空間(IM)上のノードであった場合に、次
のように行われる。
例えば、第8図に示すように、上記実記憶空間(RM)
上の各ノード(Nl。)、(Nll)の間接ポインタに
てリンクされた上記仮想記憶空間(IM)上のノード(
nl−)、 (n++)+ (r++zL (nIs)
、 (nt−>、 (n−、)、(ngz)によるリス
ト構造単位(U!。)を上記仮想記憶空間(■旧から上
記実記憶空間(R?I)ヘリストインする場合について
説明すると、先ず、上記リスト構造単位(Uio)のデ
ータ上記実記憶空間(R1’l)上の作業領域(−八)
にデータ転送(Swap−in) L/、上記実記憶空
間(RM)上において、第9図A〜第9図りに示すよう
な手順で上記作業領域(HA)から上記リスト構造単位
(Ox。)のリストインの動作を行う。
すなわち、上記仮想記憶空間(IM)から上記実記憶空
間(RM)にデータ転送(Swap−in) 、された
第9図Aに示す如き上記作業領域(HA)のリスト構造
単位(Uz。)について、先ず、上記リスト構造単位(
Uオ。)を掃査し、第9図Bに示すように、上記リスト
構造単位(Lh。)を構成している各ノード(n++)
+(r++□)。
(nl−)、 (nz+)+ (nzz)に逆参照ポイ
ンタを設定して、上記ノード(n、)、 (nIs)+
 (nlff)+ (n−5)、 (n−)に対応する
各ノード(Nll)、(Nlz)、(N+3)、(Nz
+)、(Tow)を上記実記憶空間(RM)上に設ける
次に、再度上記リスト構造単位(UZ。)を掃査し、第
9図Cに示すように、上記作業領域(目)の上記リスト
構造単位(UZ。)を構成している上記各ノード(n、
−)、 (r+++)、 (nIs)+ (n+3)、
(n、o)、 (nz+)、(nzz)の仮想記憶空間
アドレスで表現されているポインタを上記実記憶空間(
IiM)上の上記各ノード(Nll)。
(Nlz)、(N+3)、(lJz+)、(Nzz)に
リンクする実記憶空間アドレスによる逆参照ポインタに
付は替える。
そして、三度上記リスト構造単位(UZ。)を掃査して
、第7図りに示すように、上記作業領域(賀A)の上記
リスト構造単位(UtO)を構成している上記各ノード
(n+oL(n++)+(nIs)+(nIs)+(n
zoL(nz+)+(n=−)の内容を上記実記憶空間
(RM)上の各ノード(NIP)、 (Nll)l(N
lり、 (Nl3)、 (Nx。)、(N□)、(Nz
□)に移すことにより、上記リスト構造単位(U2゜)
を上記作業領域(−八)から上記実記憶空間(RM)に
全て移動し、上記二次記憶装置(4)による仮想記憶空
間(IM)から上記主記憶装置(3)による実記憶空間
(RM)への上記リスト構造単位(Uz。)のリストイ
ンを終了する。
なお、上記仮想記憶空間(IM)から上記実記憶空間(
RM)へのリストインは、上述の実記憶空間(RM)か
ら仮想記憶空間(IM)へのリストアウドと同様な方法
で行うこともできる。
ここで、上記主記憶装置(3)による実記憶空間(RM
)を上記二次記憶装置(4)による仮想記憶空間(IM
)にて拡張して処理を行う際には、上記仮想記憶空間(
IM)上のリストアウドされたリスト構造単位のノード
から上記実記憶空間(RM)上のノードへの参照がしば
しばしば発生し、例えば、第10図に示すように、上記
仮想記憶空間(IM)上のリスト構造単位(υ、)のノ
ード(NA)から参照されている上記実記憶空間(RM
)上のノード(N、)が、上記実記憶空間(RM)上の
他のノードから参照されることなく、上記仮想記憶空間
(IM)上のリスト構造単位(UC)のノード(N、)
への間接ポインタとなることがある。
このような場合には、上記実記憶空間(RM)上のノー
ド(Nl)に対する上記仮想記憶空間(IM)からの参
照を書き替えることにより、第11図に示すように、上
記間接ポインタを削除して、上記実記憶空間(RM)上
のフリーノードの数を増やすことが可能である。
上述の如き間接ポインタを削除するための一連の操作は
、原理的には、各々の間接ポインタへの逆参照表を作成
して、リストアウドの際にリストアウドされたリスト構
造単位内の該当する間接ポインタへの参照を書き替える
ことで実現可能である。この操作では、仮想記憶空間内
のリスト構造を操作する動作を含んでいるので、アクセ
ス時間の長い上記仮想記憶空間へのアクセスが増加する
そこで、このシステムでは、第12図Aに示すように、
仮想記憶空間(1?I)にリストアウドされた各リスト
構造単位を一括して管理するストラフチャ参照表(SR
T)と、上記仮想記憶空間(Il+)にリストアウドさ
れたリスト構造単位で外部ノードへの参照を管理する外
部参照表(XRT)とを実記憶空間(RM)上に設ける
とともに、第12図Bに示すように、上記仮想記憶空間
(I?I)から実記憶空間(RM)への弁型を管理する
逆参照表(DRT)を上記実記憶空間(RM)上に設け
て、上記仮想記憶空間にリストアウドされた各リスト構
造単位間の参照を一括して扱い、上記仮想記憶空間(1
?I)へのアクセスを減少させるようにしている。
上記ストラフチャ参照表(SRT)は、上記仮想記憶空
間(R)にリストアウドされた各リスト構造単位を特定
する情報srt、 idと、リスト構造単位のノードの
外部からの参照数ref、cと、上記外部参照表(XR
T)へのポインタxrtが格納されており、上記外部参
照表(XRT)の管理、検索等に用いられる。
また、上記外部参照表(XRT、)は、リストアウドさ
れたリスト構造単位毎に割り当てられ、対応するリスト
構造単位内で、外部を参照しているノードを特定する情
報ptr、idと、上記ノードが参照している外部のノ
ードを特定するポインタdatが格納される。さらに、
上記逆参照表(DRT)は、上記実記憶空間(IIM)
上のノードを参照している上記仮想記憶空間(IM)上
のノードをリスト構造単位で特定するデータptr、1
istと、上記上記実記憶空間(RM)上のノードを特
定するデータdst、idが格納される。
上記各参照表(SRT) 、 (XI?T) 、 (D
RT)のエントリは、例えば上記ストラフチャ参照表(
SRT)はリスト構造単位のストラフチャ番号で、また
、外部参照表(XRT)はリスト構造単位のストラフチ
ャ内アドレスで、そして、上記逆参照表(DRT)は実
記憶空間アドレスでハシシュすれば良く、各参照表(S
RT) 。
(XRT) 、 (DRT)の検索などを高速化するこ
とができる。なお、被参照ノードが実記憶空間に存在し
ない場合には、上記逆参照表(DRT)へのハツシュは
できないが、上記仮想記憶空間上のリスト構造単位のノ
ードからの逆参照ポインタを逆参照表(DRT)へのエ
ントリとすることができる。
ここで、上述の実施例では2分木のリスト構造データの
管理を行ったが、本発明に係るデータ管理方式において
取り扱うことのできるリスト構造データは、2分木のリ
スト構造データに限定されることなく、n分木構造のリ
スト構造データに拡張することができる。また、本発明
に係るデータ管理方式は、上述の実施例の如きマルチプ
ロセッサシステムのみに通用なものではなく、−船釣な
プロセッサシステムに適用することも勿論可能である。
H発明の効果 本発明に係るデータ管理方式では、実記憶空間ではその
実記憶空間内のアドレろにてポインタを表し、仮想記憶
空間ではその仮想記憶空間内のアドレスと上記実記憶空
間へのアドレスにてポインタを表し、上記実記憶空間上
のノードから仮想記憶空間上のノードを間接参照するよ
うにして、ノード間がポインタでリンクされた構造のデ
ータを実記憶空間と仮想記憶空間とに亘って表現するこ
とによって、ポインタにて全記憶空間を表現する必要が
無いので、記憶容量を節約することができ実質的に記憶
容量を増加させることがきる。
また、本発明に係るデータ管理方式では、上記ノード間
がポインタでリンクされた構造のデータをそのリンク情
報を用いたリスト構造単位で実記憶空間と仮想記憶空間
との間で移動させることにより、動的データを静的に区
分することなく動的データ構造をそのまま反映させた状
態で管理するので、仮想記憶空間のアクセス回数を減ら
してメモリアクセス効率を著しく向上させることができ
る。特に、ガーベジコレクションの実行効率を顕著に高
めることができ極めて有効である。
従って、本発明に係るデータ管理方式を適用することに
よって、人工知能、数式処理、自然言語処理等の記号処
理分野で基本的かつ不可欠なリスト構造データの仮想化
を効率良く実現することができるようになる。
【図面の簡単な説明】
第1図は本発明を適用したプロセッサシステムにおいて
扱うリスト構造のデータを実記憶空間と仮想記憶空間に
亘って表現したデータ例を示す模式図、第2図は本発明
を適用したマルチプロセッサシステムの構成を示すブロ
ック図、第3図は実記憶空間に表現したリスト構造のデ
ータの具体例を示す模式図、第4図は上記第3図に示し
たリスト構造のデータを実記憶空間と仮想記憶空間に亘
って表現した具体例を示す模式図、第5図は実記憶空間
から仮想記憶空間にリストアウドするリスト構造単位の
構成例を示す模式図、第6図A、第6図B、第6図C2
第6図り、第6図Eおよび第6図Fは上記第5図に示し
たリスト構造単位を実記憶空間から仮想記憶空間にリス
トアウドするための上記実記憶空間上でのリストアウド
動作の手順を説明するための各模式図、第7図は上記第
5図に示したリスト構造単位を実記憶空間から仮想記憶
空間にリストアウドした状態を示す模式図、第8図は仮
想記憶空間から実記憶空間にリストインするリスト構造
単位の構成例を示す模式図、第9図A、第9図B、第9
図Cおよび第9図りは上記第8図に示したリスト構造単
位を仮想記憶空間から実記憶空間にリストインするため
の上記実記憶空間上でのリストイン動作の手順を説明す
るための各模式図、第10図はリストアウドにより実記
憶空間上に間接ポインタが残存した状態のリスト構造を
示す模式図、第11図は上記第10図に示した間接ポイ
ンタを削除したリスト構造を示す模式図、第12図Aお
よび第12図Bは仮想記憶空間上にリストアウドされた
各リスト構造単位を一括管理するために設けられる各種
参照表の構成を示す各模式図である。 第13図は一般的なリスト構造のデータ例を示す模式図
、第14図はリスト構造のデータを記憶空間上に表現し
た模式図、第15図および第16図は従来の一般的な仮
想化にて拡張した記憶空間の構成例を示す各模式図であ
る。 (la)、(lb)〜(In) =プロセッサ(2a)
 、 (2b)〜(2n)・・・・・・メモリコントロ
ーラ(3)・・・・・・・・・・・・・・・・・・主記
憶装置(3aL(3b)〜(3n)−・・−=(4)・
・・・・・・・・・・・・・・・・・(RM)  ・・
・・・・・・・・・・・・・・・(IM)  ・・・・
・・・・・・・・・・・・・バンクメモリ 二次記憶装置 実記憶空間 仮想記憶空間

Claims (1)

  1. 【特許請求の範囲】 実記憶空間ではその実記憶空間内のアドレスにてポイン
    タを表し、仮想記憶空間ではその仮想記憶空間内のアド
    レスと上記実記憶空間へのアドレスにてポインタを表し
    、上記実記憶空間上のノードから仮想記憶空間上のノー
    ドを間接参照するようにして、ノード間がポインタでリ
    ンクされた構造のデータを実記憶空間と仮想記憶空間と
    に亘って表現し、 上記ノード間がポインタでリンクされた構造のデータを
    そのリンク情報を用いたリスト構造単位で実記憶空間と
    仮想記憶空間との間で移動させることを特徴とするデー
    タ管理方式。
JP1059390A 1988-12-14 1989-03-10 データ管理方式 Pending JPH02263233A (ja)

Priority Applications (7)

Application Number Priority Date Filing Date Title
JP1059390A JPH02263233A (ja) 1988-12-14 1989-03-10 データ管理方式
PCT/JP1989/001249 WO1990007151A1 (fr) 1988-12-14 1989-12-13 Systeme de gestion de donnees
DE68928782T DE68928782T2 (de) 1988-12-14 1989-12-13 Datenverwaltungssystem
KR1019900701710A KR950005525B1 (ko) 1988-12-14 1989-12-13 데이터관리방식
EP90900984A EP0417293B1 (en) 1988-12-14 1989-12-13 Data management system
US08/117,337 US6067607A (en) 1988-12-14 1993-09-03 Data control system for a computer's main memory for efficiently realizing virtualization of list structure data lying across a real memory space and a virtual memory space
US08/649,775 US5694599A (en) 1988-12-14 1996-05-15 Data control system for a computer's main memory for efficiently realizing virtualization of list structure data living across a real memory space and a virtual memory space

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP63-315652 1988-12-14
JP31565288 1988-12-14
JP1059390A JPH02263233A (ja) 1988-12-14 1989-03-10 データ管理方式

Publications (1)

Publication Number Publication Date
JPH02263233A true JPH02263233A (ja) 1990-10-26

Family

ID=18067947

Family Applications (1)

Application Number Title Priority Date Filing Date
JP1059390A Pending JPH02263233A (ja) 1988-12-14 1989-03-10 データ管理方式

Country Status (2)

Country Link
JP (1) JPH02263233A (ja)
KR (1) KR950005525B1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6141477A (en) * 1997-01-10 2000-10-31 Nec Corporation Semiconductor optical amplification element

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6141477A (en) * 1997-01-10 2000-10-31 Nec Corporation Semiconductor optical amplification element

Also Published As

Publication number Publication date
KR950005525B1 (ko) 1995-05-25
KR910700498A (ko) 1991-03-15

Similar Documents

Publication Publication Date Title
US5241673A (en) System for garbage collecting unused memory space represented by a digraph by assigning values of node identifiers to selected variables based upon predetermined conditions
US5261088A (en) Managing locality in space reuse in a shadow written B-tree via interior node free space list
JP5762878B2 (ja) key−valueストアを有するメモリシステム
US8161244B2 (en) Multiple cache directories
TWI499909B (zh) 階層式不可改變的內容可定址的記憶體處理器
CN104364775A (zh) 具有段偏移寻址的专用存储器访问路径
US20100223432A1 (en) Memory sharing among computer programs
US20170132071A1 (en) Crash recovery using non-volatile memory
CN110532201A (zh) 一种元数据处理方法及装置
CN111309310B (zh) 面向非易失性内存的JavaScript对象持久化框架
US4779191A (en) Method and apparatus for expanding the address space of computers
EP1537485B1 (en) Reverse directory for facilitating accesses involving a lower-level cache
CN109189994B (zh) 一种面向图计算应用的cam结构存储系统
EP0417293B1 (en) Data management system
JPH02263233A (ja) データ管理方式
US6434675B2 (en) Method and apparatus for updating data stored in plural storage means in an information processing system
Albers et al. Page migration with limited local memory capacity
JP2606305B2 (ja) データ処理装置
CN113590582A (zh) 分布式图数据库的优化方法、装置、电子设备及存储介质
JP2015181043A (ja) メモリ、データ処理方法、及びメモリシステム
US20250335345A1 (en) Efficient burst sort based on network-attached memory
JP7654585B2 (ja) データベースシステム及びデータ管理方法
CN110673952A (zh) 一种面向高并发读应用的数据处理方法及装置
JPS63261430A (ja) 情報処理方式および装置
Min et al. ArcNeural: A Multi-Modal Database for the Gen-AI Era

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20030106