KR950005525B1 - 데이터관리방식 - Google Patents

데이터관리방식 Download PDF

Info

Publication number
KR950005525B1
KR950005525B1 KR1019900701710A KR900701710A KR950005525B1 KR 950005525 B1 KR950005525 B1 KR 950005525B1 KR 1019900701710 A KR1019900701710 A KR 1019900701710A KR 900701710 A KR900701710 A KR 900701710A KR 950005525 B1 KR950005525 B1 KR 950005525B1
Authority
KR
South Korea
Prior art keywords
memory space
node
data
pointer
list structure
Prior art date
Application number
KR1019900701710A
Other languages
English (en)
Other versions
KR910700498A (ko
Inventor
히로도시 마에가와
히로유끼 야스다
Original Assignee
소니 가부시기가이샤
오가 노리오
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 소니 가부시기가이샤, 오가 노리오 filed Critical 소니 가부시기가이샤
Priority claimed from PCT/JP1989/001249 external-priority patent/WO1990007151A1/ja
Publication of KR910700498A publication Critical patent/KR910700498A/ko
Application granted granted Critical
Publication of KR950005525B1 publication Critical patent/KR950005525B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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; 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
    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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)
  • Devices For Executing Special Programs (AREA)
  • Memory System (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Document Processing Apparatus (AREA)

Abstract

내용 없음.

Description

[발명의 명칭]
데이터관리방식
[도면의 간단한 설명]
제1도는 일반적인 리스트구조의 데이터 예를 도시한 모식도.
제2도는 리스트구조의 데이터를 기억공간상에 표현한 모식도.
제3도 및 제4도는 종래의 일반적인 가상화에 의해 확장한 기억공간의 구성예를 도시한 각 모식도이다.
제5도는 본원 발명을 적용한 멀티프로세서시스템의 구성을 도시한 블록도.
제6도는 본원 발명을 적용한 프로세서시스템에 있어서 취급하는 리스트구조의 데이터를 실기억공간과 가상기억공간에 걸쳐서 표현한 데이터를 예를 도시한 모식도.
제7도는 실기억공간에 표현한 리스트구조의 데이터의 구체예를 도시한 모식도.
제8도는 상기 제7도에 도시한 리스트구조의 데이터를 실기억공간과 가상기억공간에 걸쳐서 포현한 구체예를 도시한 모식도.
제9도는 실기억공간으로부터 가상기억공간에 리스트아웃하는 리스트구조단위의 구성예를 도시한 모식도.
제10도 a, 제10도 b, 제10도 c, 제10도 d, 제10도 e 및 제10도 f는 상기 제9도에 도시한 리스트구조 단위를 실기억공간으로부터 가상기억공간에 리스트아웃하기 위한 상기 실기억공간상에서의 리스트아웃동작의 순서를 설명하기 위한 각 모식도.
제11도는 상기 제9도에 도시한 리스트구조단위를 실기억공간으로부터 가상기억공간에 리스트아웃한 상태를 도시한 모식도.
제12도는 가상기억공간으로부터 실기억공간에 리스트인하는 리스트구조단위의 구성예를 도시한 모식도.
제13도 a, 제13도 b, 제13도 c, 제13도 d는 상기 제12도에 도시한 리스트구조단위를 가상기억공간으로부터 실기억공간에 리스트인하기 위한 상기 실기억공간상에서의 리스트인 동작의 순서를 설명하기 위한 모식도.
제14도는 리스트아웃에 의해 실기억공간상에 간접포인터가 잔존한 상태의 리스트구조를 도시한 모식도.
제15도는 상기 제14도에 도시한 간접포인터를 삭제한 리스트구조를 도시한 모식도.
제16도 a 및 제16도 b는 가상기억공간상에 리스트아웃된 각 리스트구조단위를 일괄관리하기 위해 설정되는 각종 참조표의 구성을 도시한 각 모식도이다.
[발명의 상세한 설명]
[기술분야]
본원 발명은 콤퓨터의 주기억의 데이터관리방식에 관한 것이며, 특히 인공지능, 수식처리, 자연언어처리등의 기호처리분야에서 기본적이고 불가결의 리스트구조데이터의 가상화를 효율높게 실현하는 것이다.
[배경기술]
일반적으로 콤퓨터에 의한 인공지능, 수식처리, 자연언어처리 등의 기호처리분야에서는 리스트구조의 데이터를 메모리상에서 관리하면서, 목적의 기호처리를 행하도록 하고 있다. 종래부터, 상기 리스트구조의 데이터로서는 노드간이 포인터로 링크되어 있는 구조를 가진 이른바 포인터링크 데이터(pointer-linked data)가 널리 알려져 있다. 상기 포인터링크 데이터에 있어서, 포인터는 대부분의 경우 한 방향에만 작고, 또한 노드는 다른 노드에의 포인터와 자체의 데이터를 가지고, 그 포인터수가 2개의 이른바 2분목(2分木, binary tree)구조가 많다.
예를들면 리스트구조의 데이터를 취급하는 대표적인 언어로서 알려져 있는 리스프(LISP)언어로는 제1도 궤 리스트구조의 데이터에 예를 도시한 바와같이, 중간노드(N10,), (N12), (N14), (N15), (N17), (N20), (N22), (N24), (N26)이 포인터를 2개 가지고, 단말에 위치하는 노드(N11) (N13), (N16), (N18), (N19), (N21), (N23), (N25), (N27), (N28)에 구체적 데이터를 가지고, 상기 단말의 구성상태가 정보를 가지고 있다.
또한, 상기와 같은 리스트구조의 데이터를 메모리상에서 취급할 경우는 예를들면 제2도에 도시한 바와같이 번지가 부가된 메모리상의 기억공간(M)에 노드(N10), (N11), (N12), (N13)‥‥을 표현하고, 그 기억공간(M)의 어드레스에 의해 포인터를 표현하도록 해서, 콤퓨터에 의해 상기 데이터를 관리하도록 하고 있다.
그러나, 상기 기호처리분야에서 취급되고 있는 상기 리스트구조의 데이터는 끊어지거나 이어지거나 늘어나거나 줄어들거나해서, 그 데이터구조로서 부여되는 정보가 자유로 변화하는 동적구조를 가지며, 시행착오인 행위를 한다.
또한, 이와같은 리스트구조의 데이터를 콤퓨터에 의해 메모리상에서 관리할 경우, 그 데이터구조가 메모리상에 분산되고, 메모리상에 새로운 노드가 없어져 버리거나, 사용이 완료된 불필요한 노드가 되므로, 불필요한 노드를 회수해서 새로운 노드로서 재사용하는 가베지 콜션(GC : Garbage Collection)이 행해진다.
또한, 가베지 콜렉션을 행해도 실기억공간이 부족할 때에는 기억공간(M)을 가상화에 의해 확장하도록 해서, 예를들면 제3도나 제4도에 도시한 바와같이 기억공간을 페이지단위로 관리해서 실기억공간(RM)과 가상기억공간(IM)과의 사이에서 페이지단위에서의 데이터전송(swapping)이 행해지고 있다.
그러나, 현재의 콤퓨터구조는 정적(靜的)구조를 가진 국소적인 데이터를 처리하도록 디자인되어 있으며, 상기 기호처리분야에서 취급되고 있는 것과 같은 상기 리스트구조의 데이터의 처리에는 적합하지 않고, 예를들면 처리 대상이 동적으로 분산되어 있는 가베지를 콜렉션을 실행하는데 매우 긴 시간을 요한다. 또한, 종래 데이터의 국소성을 전제로 하여 기억공간을 페이지단위로 관리하도록해서 기억공간을 가상화하고 있으며, 상기 페이지는 기억공간상의 고정영역이지만, 상기 리스트구조의 데이터는 동적으로 변화되어가므로, 그 구조는 복수의 페이지간에 복잡하게 개입되어 페이지 폴트가 빈번하게 발생하여 효율이 나쁘다. 특히, 가상화된 기억공간에 대해 가베지 콜렉션을 실행한 경우에는 실기억공간과 가상기억공간과의 사이에서 페이지단위로의 데이터전송을 행하므로 실행효율이 현저히 저하된다.
그래서, 본원 발명은 상기와 같은 종래의 실정을 감안하여, 인공지능, 수식처리, 자연언어처리등의 기호처리분야에서 기본적이며 불가결한 리스트구조 데이터의 가상기억화를 효율높게 실한하는 것을 목적으로 한다.
[발명의 개시]
본원 발명에 관한 데이터관리방식은 상기 목적을 달성하기 위해 실기억공간에서는 그 실기억공간내의 어드레스에 의해 포인터를 표시시하고, 가상기억공간에서는 그 가상기억공간내의 어드레스와 상기 실기억공간에의 어드레스에 의해 포인터를 표시하고, 상기 실기억공간상의 노드로부터 가상기억공간상의 노드를 간접 참조하도록 해서, 노드간이 포인터로 링크된 구조의 데이터를 실기억공간과 가상기억공간에 걸러서 표현하고, 상기 노드간이 포인터로 링크된 구조의 데이터를 그 링크정보를 사용한 리스트구조단위로 실기억공간과 가상기억공간과의 사이에서 이동시키는 것을 특징으로 한다.
본원 발명에 관한 데이터관리방식에서는 실기억공간에서는 실기억공간내의 어드레스에 의해 포인터를 표시하고, 가상기억공간에서는 그 가상기억공간내의 어드레스와 상기 실기억공간에의 어드레스 의해 포인터를 표시하고, 상기 실기억공간상의 노드로부터 가상기억공간상의 노드를 간접 참조하도록 해서, 노드간이 포인터로 링크된 구조의 데이터를 실기억공간과 가상기억공간에 걸쳐서 표현함으로써, 포인터에 의해 전체 기억공간을 표현할 필요가 없어진다. 또한, 상기 노드간이 포인터로 링크된 구조의 데이터를 그 링크정보를 사용한 리스트구조단위로 실기억공간과 가상기억공간과의 사이에서 이동시킴으로써, 동적인 데이터를 정적으로 구분하지 않고 동적데이터 구조를 그대로 반영시킨 상태로 관리한다.
[발명의 최선실시형태]
다음에, 본원 발명의 일실시예에 대하여 도면에 따라서 상세히 설명한다.
제5도는 본원 발명에 관한 데이터관리방식을 적용해서 리스트구조의 데이터를 취급하하도록 한 멀티프로세서 시스템의 개념적인 구성을 도시한 블록도이다. 이 멀티프로세서시스템은 복수의 프로세서(1a), (1b) -(1n)에 의해 각각 메모리콘트롤로(2a), (2b)-(2n)를 통해서 액세스되는 실기억공간을 이루는 주기억장치(3)와 가상기억공간을 이루는 하드디스크장치등의 2차기억장치(4)를 구비하고, 가상화에 의한 기억용량의 화장이 도모되고 있다.
또한, 상기 주기억장치(3)는 복수의 메모리뱅크(3a), (3b)-(3n)와 상기 각 메모리뱅크(3a), (3b)-(3n)의 접속회로(3A)로 구성되어 있다.
이 멀티프로세서시스템에 있어서 취급하는 리스트구조의 데이터는 실기억공간에서는 그 실기억공간내의 어드레스에 의해 포인터를 표시하고, 또한 가상기억공간에서는 그 가상기억공간내의 어드레스와 상기 실기억공간에의 어드레스에 의해 포인터를 표시하며, 상기 실기억공간상의 노드로부터 가상기억공간상의 노드를 간접포인터에 의해 참조하도록 해서 제6도에 도시한 바와같이 노드간이 포인터로 링크된 리스트구조의 데이터로서 상기 주기억장치(3)에 의한 실기억공간(RM)과 상기 2차기억장치(4)에 의한 가상기억공간(IM)에 걸쳐 표현되며, 상기 제6도에 파선으로 둘러싸서 표시한 것과 같은 리스트구조단위(U1), (U2)로 상기 실기억공간(RM)과 가상기억공간(IM)과의 사이에서 데이터전송(swapping)된다.
또한, 상기 제6도중에는 상기 가상기억공간상의 노드를 참조하는 간접포인터를 설정한 상기 실기억공간상의 노드를 ㅁ로 표시하고, 다른 노드를 ㅇ로 표시하고 있다.
여기서, 상기 리스트구조의 데이터의 구체적표현예에 대해서 설명한다.
예를들면 제7도에 도시한 바와같이, 상기 주기억장치(3)에 의한 실기억공간(RM)상에 표현된 9개의 노드(N10), (N11), (N12), (N13), (N20), (N21), (N22), (N23), (N30)가 상기 실기억공간(RM)상의 실기억공간 어드레스로 표현한 포인터에 의해 링크되어 이루어진 리스트구조의 데이터는 상기 제7도중에 파선으로 둘러싸서 도시한 4개의 노드(N11), (N12), (N21), (N22)에 의한 리스트구조단위(U0)를 상기 2차기억장치(4)에 의한 가상기억공간(IM)상으로 옮겼을 경우, 제8도와 같이 표현된다.
제8도에 있어서, 상기 가상기억공간(IM)상으로 옮긴 상기 리스트구조단위(U0)를 구성하는 4개의 노드(n11), (n12), (n21), (n22)는 상기 가상기억공간(IM)상의 각 노드(n21), (N22)의 가상기억공간 어드레스 및 상기 실기억공간(RM)상의 각 노드(N11), (N12), (N13), (N27)의 실기억공간 어드레스를 직접 표현한 각 포인터에 의해, 상기 각 노드(n21), (n22), (N11), (N12), (N13), (N23)와 링크된다. 또한, 상기 실기억공간(RM)상의 각 노드(N11), (N12)는 상기 가상기억공간(IM)상의 상기 리스트구조단위(U0)의 각 노드(n11), (n12)의 가상기억공간 어드레스를 표현한 간접 포인터에 의해 상기 각 노드(n11), (n12)와 링크된다.
상기와 같은 리스트구조의 데이터를 취급하는 이 시스템은 상기 리스트 데이터의 동적인 변화과정에 있어서, 상기 실기억공간(RM)상에 필요한 노드가 없으며, 리스트폴트가 발생하고, 그 노드가 상기 가상기억공간(IM)상에 있을 경우에 그 노드를 포함한 일련의 리스트구조단위의 데이터를 상기 가상기억공간(IM)으로부터 상기 실기억공간(RM)에 데이터전송(Swap-in)함으로써, 후술하는 순서에 따라 리스트인을 행한다.
또한, 이 시스템에서는 상기 실기억공간(RM)상의 프리노드의 수를 감시하고 있으며, 상기 실기억공간(RM)상의 프리노드가 없어지면, 불필요한 노드를 프리노드로서 회수하는 가베지 콜렉션을 실행하고, 이 가베지 콜렉션에 의해 프리노드의 수가 소정의 하한치 Sh이상이 되면, 본래의 데이터처리로 복귀한다. 상기 가베지 콜렉션에 의해 프리노드의 수가 소정의 한치 Sh이상이 되지 않는 경우에는 그 시점에서 상기 실기억공간(RM)상에 불필요한 리스트데이터에의 포인터를 추출해서, 후술하는 순서에 따라 상기 실기억공간(RM)으로부터 상기 가상기억공간(IM)에의 리스트구조단위의 데이터전송(Swap-out)하기 위한 리스트 아웃동작을 상기 실기억공간(RM)상에서 행한다. 상기 실기억공간(RM)상에서 리스트아웃한 리스트구조단 위의 데이터수가 최소한 소정의 하한치 상에 이르지 못하는 경우에는 상기 실기억공간(RM)상에 불필요한 리스트데이터에의 폰터를 다시 추출해서, 새로운 리스트데이터의 리스트아웃동작을 상기 실기억공간(RM)상에서 반복해서 실시한다. 그리고, 상기 실기억공간(RM)상에서 리스트아웃한 리스트구조단위의 데이터수가 상기 하한치 Ss에 이르면, 상기 실기억공간(RM)에서 리스트아웃된 리스트구조단위의 데이터를 상기 실기억공간(RM)으로부터 상기 가상기억공간(IM)으로 데이터전송(Swap-out)하고, 리스트아웃의 동작을 종료해서 본래의 데이터처리에 복귀한다.
상기 실기억공간(RM)으로부터 상기 가상기억공간(IM)에의 리스트아웃의 동작은 리스트구조를 소사(掃査)해서, 각 노드의 링크수를 레퍼렌스 카운터에 의해 참조하면서 간접 포인터를 사용해서 다음과 같이 행해진다.
예를들면 제9도에 도시한 바와같이, 실기억공간(RM)상의 7개의 노드(N10), (N11), (N12), (N13), (N20), (N21), (N22) 사이가 포인터에 의해 링크된 리스트구조단위(U10)를 상기 실기억공간(RM)으로부터 가상기억공간(IM)으로 리스트아웃할 경우에 대해서 설명하면, 먼저 상기 실기억공간(RM)상에 있어서, 그 작업영역(WA)에 상기 리스트구조단위(U10)를 제10도 a-제10도 f에 도시한 바와같은 순서로 리스트아웃한다.
즉, 먼저 상기 실기억공간(RM)상의 상기 리스트구조단위(U10)의 개시위치에 있는 노드 예를들면 노드(N10)에 착안하여, 제10도 a에 도시한 바와같이 상기 노드(N10)에 대한 링크를 실기억공간 어드레스로 표현한 역참조포인터와 상기 노드(N10)의 포인터에 의해 링크되어 있는 노드(N11)에 대한 링크를 실기억공간 어드레스로 도시한 역참조 포인터를 가진 노드(N10)를 상기 가상기억공간(IM)으로 옮기는 노드로서 상기 실기억공간(RM)으로 작업영역(WA)에 배설하고, 상기 가상기억공간(IM)으로 옮기는 상기 노드(n10)에의 링크를 표한한 간접포인터를 상기 실기억공간(RM)상의 노드(N10)에 설정한다.
다음에, 상기 실기억공간(RM)상의 노드(N10)에 링크하고 있던 상기 노드(N11)에 착안하여, 제10도 b에 도시한 바와같이 상기 노드(N11)에 대한 링크를 실기억공간 어드레스로 표현한 역참조포인터와 상기 노드(N11)의 포인터에 의해 링크되어 있는 각 노드(N12), (N21)에 대한 각 링크를 실기억공간 어드레스로 표현한 각 역참조포인터를 가진 노드(n11)를 상기 작업영역(WA)에 배설한다. 그리고, 상기 작업영역(WA)의 상기 노드(n11)에의 링크를 표현한 간접포인터를 상기 노드(N11)에 설정하는 동시에, 상기 작업영역(WA)의 상기 노드(n12)의 포인터에 의한 상기 실기억공간(RM)상의 상기 노드(N12)에의 링크를 이 노드(N12)에 대응하는 상기 작업영역(WA)의 상기 노드(n12)에의 링크로 옳겨서 상기 노드(N12)에의 역참조포인터를 상기 노드(n11)에의 링크를 가상기억공간 어드레스에 의해 표현한 내용의 포인터로 변형한다.
그 다음에, 상기 실기억공간(RM)상의 상기 노드(N11)에 링크하고 있던 상기 노드(N12)에 착안하여, 이 노드(N12)의 포인터에 의한 노드(N13)에의 링크를 끌어당겨서, 상기 실기억공간상의 각 노드(N12), (N13)를 상기 작업영역(WA)으로 옮겨서, 제10도 c에 도시한 바와같이 상기 노드(n12)의 포인터에 의해 링크되는 노드(n12)와, 이 노드(n12)의 포인터에 의해 링크되는 노드(n13)를 상기 작업영역(WA)에 배설한다.
다음에, 상기 작업영역(WA)의 상기 노드(n11)의 역참조포인터에 의해 링크되어 있는 상기실기억공간(RM)상의 상기 노드(N21)에 착안하여, 이 노드(N21)의 포인터에 의한 노드(N22)에의 링크를 끌어당김으로써, 상기 실기억공간(RM)상의 각 노드(N21), (N22)을 상기 작업영역 (WA)으로 옮겨서, 제10도 d에 도시한 바와같이 상기 노드(n11)의 포인터에 의해 링크되는 노드(n21)와, 이 노드(n21)의 포인터에 의해 링크되는 노드(n22)를 상기 작업영역(WA)에 배설한다. 또한, 상기 작업영역(WA)의 상기 노드(n22)의 역참조 포인터에 의한 상기 실기억공간(RM)상의 상기 노드(N11)에의 링크를 상기 노드(N11)에 대응하는 상기 작업영역(WA)의 상기 노드(n11)에의 링크로 바꾼다.
그리고, 상기 실기억공간(RM)으로 상기 리스트구조단위(U10)의 다른 개시위치에 있는 미소사(未掃査)의 노드(N20)에 착안하여, 제10도 e에 도시한 바와같이 상기 노드(N20)에 대한 링크를 실기억공간 어드레스로 표현한 역참조포인터와 상기 노드(N20)의 포인터에 의해 링크되어 있는 상기 노드(N11)에 대한 링크를 실기억공간 어드레스로 표시한 역참조포인터를 가진 노드(n20)를 상기 작업영역(WA)에 배설하는 동시에, 이 노드(n20)에의 링크를 표현한 간접포인터를 상기 실기억공간(RM)상의 노드(N20)에 설정한다.
그리고, 상기 작업영역(WA)의 상기 노드(n20)의 역참조포인터에 의한 상기 실기억공간(RM)상의 상기 노드(N11)에의 링크를 이 노드(N11)에 대응하는 상기 작업영역(WA)의 상기 노드(n11)에의 링크로 바꾸고, 제10도 f에 도시한 바와같이 상기 실기억공간(RM)상의 상기 노드(N11)를 상기 직업영역(WA)의 상기 노드(n11)에 완전히 이동시킴으로써 상기 실기억공간(RM)상의 작업영역(WA)에의 상기 리스트구조단위(U10)의 리스트아웃을 종료한다.
끝으로, 상기 리스트구조단위(U10)의 데이터를 상기 주기억장치(3)에 의한 실기억공간(RM)상의 작업영역(WA)으로부터 상기 2차기억장치(4)에 의한 가상기억공간(IM)에 데이터전송(Swap-out)함으로써, 상기 리스트구조단위(U10)를 상기 가상기억공간(IM)으로 제11도에 도시한 바와같이 리스트아웃한다.
이와같이, 간접포인터를 사용함으로써 상기 리스트구조단위(U10)와 같은 환상리스트구조도 뜻한대로 리스트아웃할 수 있으며, 더욱이 상기 주기억장치(3)를 의한 실기억공간(RM)상에서 리스트아웃한 리스트구조단위의 데이터를 상기 실기억공간(RM)으로부터 상기 2차기억장치(4)에 의한 가상기억공간(IM)에 데이터전송(Swap-out)함으로써, 상기 가상기억공간(IM)에 효율좋고 신속하게 리스트아웃할 수 있다.
여기서, 상기 실기억공간(RM)상의 노드에 대한 링크를 실기억공간 어드레스에 의해 표현하고, 또한 상기 가상기억공간(IM)상의 노드에 대한 링크를 가상기억공간 어드레스를 각각 기억공간내에서 표현하여, 각각의 기억공간내에서의 링크를 직접 표현한 통상의 포인터와, 상기 가상기억공간(IM)상의 노드의 가상기억공간 어드레스를 표현한 상기 실기억공간(RM)상의 노드(N11), (N12)등의 간접포인터나, 상기 실기억공간(RM)상의 노드에 대한 링크를 실기억공간 어드레스로 표현한 상기 가상기억공간(IM)상의 노드(n10), (n11)등의 역참조포인터란, 예를들면, 그 포인터로 지시되어 있는 노드의 종류를 표시한 태그를 포인터에 부가해둠으로서, 상기 태그의 내용에 따라 식별된다.
다음에, 상기 2차기억장치(4)에 의한 가상기억공간(IM)으로부터 상기 주기억장치(3)에 의한 실기억공간(RM)에의 리스트인은 액세스하고자 하는 노드가 상기 실기억공간(RM)상이 아니고 간접포인터에 의해 표시되는 가상기억공간(IM)상의 노드인 경우에 다음과 같이 행해진다.
예를들면, 제12도에 도시한 바와같이 상기 실기억공간(RM)상의 각 노드(N10, (N11)의 간접포인터에 의해 링크된 상기 가상기억공간(IM)상의 노드(n10), (n11), (n12), (n13), (n20), (n21), (n22)에 의한 리스트구조단위(U20)를 상기 가상기억공간(IM)으로부터 상기 실기억공간(RM)에 리스트인할 경우에 대해서 설명하면, 먼저 상기 리스트구조단위(U20)의 데이터를 상기 실기억공간(RM)상의 작업영역(WA)에 데이터전송(Swap-in)하고, 상기 실기억공간(RM)상에 있어서 제13도 a-제13도 d에 도시한 바와같은 순서로 상기 작업영역(WS)으로부터 상기 리스트구조단위(U10)의 리스트인의 동작을 행한다.
즉, 상기 가상기억공간(IM)으로부터 상기 실기억공간(RM)에 데이터전송(Swap-in)된 제13도 a에 도시한 바와같은 상기 작업영역(WA)의 리스트구조단위(U20)에 대해서 먼저 상기 리스트구조단위(U20)를 소사하고, 제13도 b에 도시한 바와같이 상기 리스트구조단위(U20)를 구성하고 있는 각 노드(n11), (n12), (n13), (n21), (n22)에 역참조포인터를 설정하여, 상기 노드(n11), (n12), (n13), (n21), (n22)에 대응하는 각 노드(N11), (N12), (N13), (N21), (N22)를 상기 실기억공간(RM)상에 배설한다.
다음에, 재차 상기 리스트구조단위(U20)를 소사하고, 제13도 c에 도시한 바와같이 상기 작업영역(WA)의 상기 리스트구조단위(U20)를 구성하고 있는 상기 각 노드(n10), (n11), (n12), (n13), (n20), (n21), (n22)의 가상기억공간 어드레스로 표현되어 있는 포인터를 상기 실기억공간(RM)상의 상기 각 노드(N10), (N11), (N12), (N13), (N20), (N21), (N22)에 링크하는 실기억공간 어드레스에 의한 역참조포인터로 바꾼다.
그리고, 3회 상기 리스트구조단위(U20)를 소사해서, 제13도 d에 도시한 바와같이 상기 작업영역(WA)의 상기 리스트구조단위(U20)를 구성하고 있는 상기 각 노드(n10), (n11), (n12), (n13), (n20), (n21), (n22)의 내용을 상기 실기억공간(RM)상의 각 노드(N10), (N11), (N12), (N13), (N20), (N21), (N22)로 이동함으로써, 상기 리스트구조단위 (U20)를 상기 작업영역(WA)으로부터 상기 실기억공간(RM)으로 모두 모두 이동하고, 상기 2차기억장치(4)에 의한 가상기억공간(IM)으로부터 상기 주기억장치 (3)에 의한 실기억공간(RM)에의 상기 리스트구조단위(U20)의 리스트인을 종료한다.
또한, 상기 가상기억공간(IM)으로부터 상기 실기억공간(RM)에의 리스트인은 상기 실기억공간(RM)으로부터 가상기억공간(IM)에의 리스트아웃과 같은 방법으로 행할 수도 있다.
여기서, 상기 주기억장치(3)에 의한 실기억공간(RM)을 상기 2차기억장치(4)에 의한 가상기억공간(IM)에 의해 확장해서 처리할 때는 상기 가상기억공간(IM)상의 리스트아웃된 리스트구조단위의 노드로부터 상기 실기억공간(RM)상의 노드에의 참조가 자주 발생하며, 예를들면 제14도에 도시한 바와같이 상기 가상기억공간(IM)상의 리스트구조단위(UA)의 노드(NA)로부터 참조되어 있는 상기 실기억공간(RM)상의 노드(NB)가 상기 실기억공간(RM)상의 다른 노드로부터 참조되지 않고, 상기 가상기억공간(IM)상의 리스트구조단위(UC)의 노드(NC)에의 간접포인터로 되는 경우가 있다. 이와같은 경우에는 상기 실기억공간(RM)상의 노드(Nb)에 대한 상기 가상기억공간(IM)으로부터의 참조를 재기입함으로써, 제15도에 도시한 바와같이 상기 간접포인터를 삭제해서, 상기 실기억공간(RM)상의 프리노드의 수를 증가시키는 것이 가능하다.
상기와 같은 간접포인터를 삭제하기 위한 일련의 조작은 원리적으로는 각각의 간접포인터에의 역참조표를 작성하여, 리스트아웃시에 리스트아웃된 리스트구조단위내의 해당되는 간접포인터에의 참조를 재기입함으로써 실현가능하다. 이 조작에서는 가상기억공간내의 리스트구조를 조작하는 동작을 포함하고 있으므로, 액세스시간이 긴 상기 가상기억공간에의 액세스가 증가한다.
그래서, 이 스시템에서는 제16도 a에 도시한 바와같이 가상기억공간(IM)에 리스트아웃된 각 리스트구조 단위를 일괄해서 관리하는 스트럭쳐 참조표(SRT)와, 상기 가상기억공간(IM)에 리스트아웃된 리스트구조 단위로 외부노드에의 참조를 관리하는 외부참조표(XRT)를 실기억공간(RM)상에 배설하는 동시에, 제16도 b에 도시한 바와같이 상기 가상기억공간(IM)으로부터 실기억공간(RM)에의 참조를 관리하는 역참조표(DRT)를 상기 실기억공간(RM)상에 배설하고, 상기 가상기억공간에 리스트아웃된 각 리스트구조단위간의 참조를 일괄해서 취급하여, 상기 가상기억공간(IM)에의 액세스를 감소시키도록 하고 있다.
상기 스트럭쳐 참조표(SRT)는 상기 가상기억공간(IM)에 리스트아웃된 각 리스트구조단위를 특정하는 정보 srt.id와, 리스트구조단위의 노드의 외부로부터의 참조수 ref.c와, 상기 외부참조표(XRT)에의 포인터 xrt가 격납되어 있으며, 상기 외부참조표(XRT)의 관리, 검색등에 사용된다. 또한, 상기 외부 참조표(XRT)는 리스트아웃된 리스트구조단위마다 할당되고, 대응하는 리스트구조단위내에서 외부를 참조하고 있는 노드를 특정하는 정보 ptr.id와, 상기 노드가 참조하고 있는 외부의 노드를 특정하는 포인터 dst가 격납된다. 또한, 상기 역참조표(DRT)는 상기 실기억공간(RM)상의 노드를 참조하고 있는 상기 가상기억공간(IM)상의 노드를 리스트구조단위로 특정하는 데이터 ptr.list와, 상기 실기억공간(RM)상의 노드를 특정하는 데이터 dst.id가 격납된다.
상기 각 참조표(SRT), (XRT), (DRT)의 엔트리는 예를들면 상기 스트럭쳐 참조표(SRT)는 리스트구조 단위의 스트럭쳐번호로, 또한 외부참조표(XRT)는 리스트구조단위의 스트럭쳐내에 어드레스로, 그리고 상기 역참조표(DRT)는 실기억공간 어드레스로 하슈하면 되며, 각 참조표(SRT), (XRT), (DRT)의 검색등을 고속화할 수 있다. 또한, 피참조노드가 실기억공간에 존재하지 않는 경우에는 상기 역참조표(DRT)에의 하슈는 할 수 없으나, 상기 가상기억공간상의 리스트구조단위의 노드로부터의 역참조포인터를 역참조표(DRT)에의 엔트리로 할 수 있다.
여기서, 상기 실시예에서는 2분목의 리스트구조데이터의 관리를 하였으나, 본원 발명에 관한 데이터관리 방식에 있어서 취급할 수 있는 리스트구조데이터는 2분목의 리스트구조데이터에 한정되지 않고, n분목구조의 리스트구조데이터로 확장할 수 있다. 또한, 본원 발명에 관한 데이터관리방식은 상기 실시예와 같은 멀티프로세서시스템에만 적용되는 것은 아니고, 일반적인 프로세서시스템에 적용도 물론 가능하다.
이상과 같이 본원 발명에 관한 데이터관리방식에서는 실기억공간에서는 그 실기억공간내의 어드레스에 의해 포인터를 표시하고, 가상기억공간에서는 그 가상기억공간내의 어드레스와 상기 실기억공간에의 어드레스에 의해 포인터를 표시하고, 상기 실기억공간상의 노드로부터 가상기억공간상의 노드를 간접참조하도록 해서, 노드사이가 포인터로 링크된 구조의 데이터를 실기억공간과 가상기억공간에 걸쳐서 표현함으로써, 포인터에 의해 전체 기억공간을 표현할 필요가 없으므로, 기억용량을 절약할 수 있어서 실질적으로 기억용량을 증가시킬 수 있다.
또한, 본원 발명에 관한 데이터관리방식에서는 상기 노드간이 포인터로 링크된 구조의 데이터를 그 링크 정보를 사용한 리스트구조단위로 실기억공간과 가상기억공간과의 사이에서 이동시킴으로써, 동적데이터를 정적으로 구분하지 않고 동적데이터구조를 그대로 반영시킨 상태로 관리하므로, 가상기억공간의 액세스회수를 감소시켜 메모리액세스 효율을 현저히 향상시킬 수 있다. 특히, 가베지 콜렉션의 실행효율을 현저하게 높일 수 있으므로 매우 유효하다.
따라서, 본원 발명에 관한 데이터관리방식을 작용함으로써, 인공지능, 수식처리, 자연언어처리등의 기호 처리분야에서 기본적이며 또한 불가결의 리스트구조데이터의 가상를 효율높게 실현할 수 있게 된다.

Claims (1)

  1. 실기억공간에서는 그 실기억공간내의 어드레스에 의해 포인터를 표시하고, 가상기억공간에서는 그 가상기억공간내의 어드레스와 상기 실기억공간에의 어드레스에 의해 포인터를 표시하고, 상기 실기억공간상의 노드로부터 가상기억공간상의 노드를 간접 참조하도록 해서, 노드간이 포인터로 링크된 구조치 데이터를 실기억공간과 가상기억공간에 걸쳐서 표현하고, 상기 노드간이 포인터로 링크된 구조의 데이터를 그 링크정보를 사용한 리스트구조단위로 실기억공간과 가상기억공간과의 사이에서 이동시키는 것을 특징으로 하는 데이터 관리 방식 .
KR1019900701710A 1988-12-14 1989-12-13 데이터관리방식 KR950005525B1 (ko)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
JP63-315652 1988-12-14
JP31565288 1988-12-14
JP88-315652 1988-12-14
JP1-59390 1989-03-10
JP89-59390 1989-03-10
JP1059390A JPH02263233A (ja) 1988-12-14 1989-03-10 データ管理方式
PCT/JP1989/001249 WO1990007151A1 (en) 1988-12-14 1989-12-13 Data management system

Publications (2)

Publication Number Publication Date
KR910700498A KR910700498A (ko) 1991-03-15
KR950005525B1 true KR950005525B1 (ko) 1995-05-25

Family

ID=18067947

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019900701710A KR950005525B1 (ko) 1988-12-14 1989-12-13 데이터관리방식

Country Status (2)

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

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10200209A (ja) * 1997-01-10 1998-07-31 Nec Corp 半導体光増幅素子

Also Published As

Publication number Publication date
JPH02263233A (ja) 1990-10-26
KR910700498A (ko) 1991-03-15

Similar Documents

Publication Publication Date Title
Copeland Jr et al. The architecture of CASSM: A cellular system for non-numeric processing
JP3640978B2 (ja) ページテーブル中のハッシュアドレスタグを用いたメモリアドレス制御装置
CN100440170C (zh) 网络应用内的自动高速缓存生成
US4991088A (en) Method for optimizing utilization of a cache memory
SE413815B (sv) Databehandlingssystem
US3771142A (en) Digital data storage system
EP0417293B1 (en) Data management system
US5923837A (en) Method of accessing data using approximate data structures
KR950005525B1 (ko) 데이터관리방식
KR950012304B1 (ko) 개선된 현 윈도우 캐시용 캐싱방법 및 프로세서
JPH0271342A (ja) メモリ管理装置
Armenti et al. LISTAR: Lincoln Information Storage and Associative Retrieval System
Abel et al. Caching strategies for spatial joins
US6807618B1 (en) Address translation
JP2606305B2 (ja) データ処理装置
KR100455431B1 (ko) 다중 환경을 지원하는 데이터 베이스의 기록/조회방법
JPS6380349A (ja) 高速ペ−ジ入出力方式
Fujihara et al. Simulation through explicit state description and its application to semiconductor fab operation
Wilkes Associative tabular data structures
JPH0231278A (ja) データ処理装置
Mândutianu et al. A framework for intelligent assembly in industry
Vitter Computational complexity of an optical disk interface
JPH01286041A (ja) 知識ベースの多重制御方式
JPS59119458A (ja) ガ−ベジ・コレクシヨン方法
JPS63269242A (ja) アドレス変換方式

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
G160 Decision to publish patent application
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20090429

Year of fee payment: 15

EXPY Expiration of term