KR101851122B1 - Method for data management based on page table - Google Patents

Method for data management based on page table Download PDF

Info

Publication number
KR101851122B1
KR101851122B1 KR1020180009686A KR20180009686A KR101851122B1 KR 101851122 B1 KR101851122 B1 KR 101851122B1 KR 1020180009686 A KR1020180009686 A KR 1020180009686A KR 20180009686 A KR20180009686 A KR 20180009686A KR 101851122 B1 KR101851122 B1 KR 101851122B1
Authority
KR
South Korea
Prior art keywords
page table
data
management module
stored
page
Prior art date
Application number
KR1020180009686A
Other languages
Korean (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 to KR1020180009686A priority Critical patent/KR101851122B1/en
Application granted granted Critical
Publication of KR101851122B1 publication Critical patent/KR101851122B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0652Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

Disclosed is a data management method based on a page table generated within a memory. The data management method based on a page table of the present invention, which is a method for managing data stored within the memory, comprises the steps of: allowing a page table management module to generate a page table including a first storage space for storing data and a second storage space for storing index information for the first storage space; allowing the page table management module to store data in the first storage space included in the generated page table and to update the index information for the first storage space in which the data has been stored, and allowing a synchronizing module to synchronize the updated index information to a memory map file in real time when the index information is updated; allowing the page table management module to remove all of the data stored in the page table for which an event has occurred when it is determined that the event for the page table has occurred; and allowing a memory map management module to delete the memory map file for the page table from which all of the data have been removed. Accordingly, a time required to read, to the memory, a desired data page of data pages stored in a storage device can be minimized. In addition, data loss can be prevented in a process of swapping the data pages of the memory and the data pages stored in the storage device with each other or in a process of reading, to the memory, the data pages stored in the storage device.

Description

페이지 테이블 기반의 데이터 관리 방법{Method for data management based on page table}[0001] The present invention relates to a data management method based on page tables,

본 발명은 메모리 내에 저장되는 데이터 관리 방법에 관한 것으로, 더욱 상세하게는 메모리 내에 생성된 페이지 테이블 기반의 데이터 관리 방법에 관한 것이다. The present invention relates to a method of managing data stored in a memory, and more particularly, to a method of managing a page table based data generated in a memory.

일반적으로 메모리는 비교적 콤팩트하고 신속하게 엑세스 가능한 메모리 구조를 프로세서 가까이에 제공함으로써, 디스크와 같은 저장장치에 비해 프로세서로 하여금 데이터들의 처리 속도가 빠르지만, 저장장치에 비해 저장 용량이 작기 때문에, 너무 많은 데이터 페이지들을 불러낼 수 없다는 단점이 존재하여, 프로세서가 메모리 데이터에 엑세스 되는데 요구되는 시간을 최소화하는 데 사용된다. Generally, memory provides a relatively compact and rapidly accessible memory structure near the processor, thereby allowing the processor to process the data faster than a storage device such as a disk, but since the storage capacity is smaller than a storage device, There is a disadvantage that the data pages can not be fetched and is used to minimize the time required for the processor to access the memory data.

구체적으로, 메모리는 메모리의 데이터 페이지들을 프로세서가 엑세스하여 데이터 페이지를 빠르게 처리하도록 하고, 처리된 데이터 페이지들은 저장장치에 저장하는데, 저장장치에 저장된 데이터 페이지들 중 원하는 데이터 페이지를 선별하여, 메모리로 불러들이는 과정에서 소요되는 시간이 많으며, 메모리의 데이터 페이지들과 저장장치에 저장된 데이터 페이지들을 서로 스와핑하는 과정 또는 저장장치에 저장된 데이터를 메모리에 데이터 페이지를 불러들이는 과정에서 데이터의 손실이 발생하는 문제가 존재한다.Specifically, the memory allows the processor to access the data pages of the memory to quickly process the data pages, and to store the processed data pages in the storage device, to select the desired one of the data pages stored in the storage device, There is a lot of time in the process of importing, the process of swapping the data pages of the memory and the data pages stored in the storage device or the data stored in the storage device is lost in the process of loading the data page into the memory .

이에 따라, 저장장치에 저장된 데이터 페이지들 중 원하는 데이터 페이지를 선별하고, 선별된 데이터 페이지들을 메모리로 불러들이는 과정에서 시간을 최소화할 수 있으며, 메모리의 데이터 페이지들과 저장장치에 저장된 데이터 페이지들을 서로 스와핑하는 과정 또는 저장장치에 저장된 데이터를 메모리에 데이터 페이지를 불러들이는 과정에서 데이터가 손실되는 것을 방지하기 위한 방안의 모색이 요구된다. Accordingly, it is possible to minimize the time in selecting a desired data page among the data pages stored in the storage device, to load the selected data pages into the memory, and to save the data pages of the memory and the data pages It is required to search for a method for preventing data loss in the process of swapping each other or in the process of loading data stored in a storage device into a memory.

한국공개특허 제10-2012-0083160호(발명의 명칭: 메모리 관리 유닛, 이를 포함하는 장치들, 및 이의 동작 방법)Korean Patent Publication No. 10-2012-0083160 (entitled " Memory Management Unit, Devices Including the Same, and Method of Operation Thereof)

본 발명은 상기와 같은 문제점을 해결하기 위한 것으로 본 발명의 목적은 메모리 내에 데이터를 저장하기 위한 제1 저장 공간 및 상기 제1 저장 공간에 대한 인덱스 정보를 저장하기 위한 제2 저장 공간이 분리되어, 저장된 데이터와 데이터에 대한 인덱스 정보를 나누어서 사용할 수 있는 페이지 테이블을 생성하고, 관리함으로써, 저장장치에 저장된 데이터 페이지들 중 원하는 데이터 페이지를 선별하여 메모리로 불러들이는 과정에서 시간을 최소화할 수 있으며, 메모리의 데이터 페이지들과 저장장치에 저장된 데이터 페이지들을 서로 스와핑하는 과정 또는 저장장치에 저장된 데이터를 메모리에 데이터 페이지를 불러들이는 과정에서 데이터가 손실되는 것을 방지할 수 있는 페이지 테이블 기반의 데이터 관리 방법을 제공함에 있다. SUMMARY OF THE INVENTION The present invention has been made in an effort to solve the above problems, and it is an object of the present invention to provide an information processing apparatus and a method thereof, which can separate a first storage space for storing data in a memory and a second storage space for storing index information for the first storage space, It is possible to minimize time in the process of selecting a desired data page among the data pages stored in the storage device and fetching it into the memory by creating and managing a page table that can be used by dividing the stored data and index information about the data, A page table-based data management method capable of preventing data from being lost in the process of swapping data pages of a memory and data pages stored in a storage device or in a process of loading data stored in a storage device into a memory page .

상기와 같은 문제를 해결하기 위한 본 발명의 일 실시예에 따른 페이지 테이블 기반의 데이터 관리 방법은 메모리 내에 저장되는 데이터 관리 방법에 있어서, 페이지 테이블 관리 모듈이 데이터를 저장하기 위한 제1 저장 공간 및 상기 제1 저장 공간에 대한 인덱스 정보를 저장하기 위한 제2 저장 공간이 포함된 페이지 테이블을 생성하는 단계; 상기 페이지 테이블 관리 모듈이 상기 생성된 페이지 테이블에 포함된 제1 저장 공간에 데이터를 저장하고, 데이터가 저장된 제1 저장 공간에 대한 인덱스 정보를 갱신하고, 상기 인덱스 정보가 갱신되면, 동기화 모듈에 의해, 갱신된 인덱스 정보가 메모리 맵 파일에 실시간 동기화되도록 하는 단계; 상기 페이지 테이블 관리 모듈에 의해, 페이지 테이블에 대한 이벤트가 발생된 것으로 판단되면, 상기 이벤트가 발생된 것으로 판단되는 페이지 테이블에 저장된 데이터를 모두 제거하는 단계; 및 메모리 맵 관리 모듈이 상기 데이터가 모두 제거된 페이지 테이블에 대한 메모리 맵 파일을 삭제하는 단계;를 포함한다.According to an aspect of the present invention, there is provided a method of managing data stored in a memory, the method comprising: a first storage space for storing data; Creating a page table including a second storage space for storing index information on the first storage space; The page table management module stores data in a first storage space included in the generated page table, updates index information on a first storage space in which data is stored, and when the index information is updated, , Causing the updated index information to be synchronized in real time with the memory map file; If the page table management module determines that an event for the page table has been generated, removing all the data stored in the page table determined to have generated the event; And deleting the memory map file for the page table from which the memory map management module has removed all of the data.

그리고 상기 페이지 테이블은, 상기 제1 저장 공간에 데이터가 저장되는 경우, 상기 저장된 데이터를 처리하기 위한 라우팅 인덱스 정보를 저장하기 위한 제3 저장 공간이 더 포함할 수 있다.The page table may further include a third storage space for storing routing index information for processing the stored data when data is stored in the first storage space.

또한, 본 실시예에 따른 페이지 테이블 기반의 데이터 관리 방법은 상기 생성된 페이지 테이블에 포함된 제1 저장 공간에 데이터가 모두 채워질 때마다 상기 페이지 테이블 관리 모듈이 새로운 페이지 테이블을 생성하는 단계; 상기 새로운 페이지 테이블이 생성될 때마다, 링크 관리 모듈이 기존의 페이지 테이블과 새로 생성된 페이지 테이블 간에 연결되도록 하는 단계; 및 상기 페이지 테이블 관리 모듈이 새로운 페이지 테이블에 포함된 제1 저장 공간에 데이터를 저장하고, 데이터가 저장된 제1 저장 공간에 대한 인덱스 정보를 갱신하고, 상기 인덱스 정보가 갱신되면, 동기화 모듈에 의해, 갱신된 인덱스 정보가 새로운 메모리 맵 파일에 실시간 동기화되도록 하는 단계;를 더 포함할 수 있다.In addition, the page table-based data management method according to the present embodiment may include: generating a new page table by the page table management module whenever data is completely filled in a first storage space included in the generated page table; Causing the link management module to link between the existing page table and the newly created page table each time the new page table is created; And the page table management module stores data in a first storage space included in a new page table, updates index information on a first storage space in which data is stored, and when the index information is updated, And causing the updated index information to be synchronized in real time with the new memory map file.

이때, 상기 데이터를 모두 제거하는 단계는, 상기 새로운 페이지 테이블이 생성된 이후, 상기 페이지 테이블 관리 모듈에 의해, 데이터가 모두 채워진 페이지 테이블 중 특정 페이지 테이블에 대한 이벤트가 발생된 것으로 판단되면, 상기 이벤트가 발생된 것으로 판단되는 특정 페이지 테이블에 저장된 데이터를 모두 제거하고, 상기 메모리 맵 파일을 삭제하는 단계는, 상기 데이터가 모두 제거된 특정 페이지 테이블이 다른 페이지 테이블과 연결된 경우, 상기 링크 관리 모듈에 의해, 상기 데이터가 모두 제거된 페이지 테이블과 다른 페이지 테이블 간의 연결이 모두 해제되도록 하고, 상기 데이터가 모두 제거된 특정 페이지 테이블의 연결이 모두 해제되면, 상기 메모리 맵 관리 모듈이 상기 연결이 모두 해제된 페이지 테이블에 대한 메모리 맵 파일을 삭제할 수 있다.If it is determined that an event for a specific page table among the page tables in which data has been completely filled is generated by the page table management module after the new page table is created, Wherein the step of deleting all of the data stored in the specific page table and deleting the memory map file is performed by the link management module when a specific page table from which all the data is removed is linked to another page table The connection between the page table in which the data is completely removed and the page table in which the data is completely removed is released, and when all the connection of the specific page table from which the data is removed is released, Memory map files for tables It may be deleted.

또한, 상기 데이터를 모두 제거하는 단계는, 상기 메모리가 저장용량의 임계치에 도달하는 경우, 상기 페이지 테이블 관리 모듈에 의해, 상기 이벤트가 발생된 것으로 판단되어, 상기 페이지 테이블 관리 모듈이 복수의 페이지 테이블 중 데이터가 저장된 기간이 가장 오래된 페이지 테이블을 선별하여, 상기 선별된 페이지 테이블에 저장된 데이터를 모두 제거할 수 있다.The step of removing all of the data may include determining that the event is generated by the page table management module when the memory reaches a storage capacity threshold, The page table having the oldest period in which the data is stored can be selected and all the data stored in the selected page table can be removed.

그리고 상기 기존의 페이지 테이블과 상기 새로운 페이지 테이블 간에 연결되도록 하는 단계는, 상기 새로운 페이지 테이블이 생성될 때마다, 링크 관리 모듈이 기존의 페이지 테이블과 새로 생성된 페이지 테이블 간에 연결되도록 하되, 기존의 페이지 테이블 중 생성된 순서에 따라 데이터가 저장된 기간이 가장 오래된 페이지 테이블이 연결 상태의 헤드(Head)가 되고, 가장 최근에 생성된 페이지 테이블이 연결 상태의 테일(Tail)이 되도록 하는 연결되도록 하고, 상기 데이터를 모두 제거하는 단계는, 상기 페이지 테이블 관리 모듈이 상기 복수의 페이지 테이블 중 데이터가 저장된 기간이 가장 오래된 페이지 테이블을 선별하는 경우, 복수의 페이지 테이블 중 헤드에 해당하는 페이지 테이블을 가장 오래된 페이지 테이블로 선별하여, 상기 선별된 페이지 테이블에 저장된 데이터를 모두 제거할 수 있다.The linking between the existing page table and the new page table is performed such that each time the new page table is created, the link management module is connected between the existing page table and the newly created page table, The page table having the oldest period in which the data is stored according to the created order in the table becomes the head of the connected state and the most recently generated page table is connected so as to become the tail of the connected state, The step of removing all of the data may include removing a page table corresponding to a head among a plurality of page tables when the page table management module selects the page table with the oldest period of time in which data of the plurality of page tables is stored, , And the selected page You can remove all the data stored in the table.

또한, 상기 데이터를 모두 제거하는 단계는, 상기 페이지 테이블 관리 모듈에 의해, 기설정된 기간이 도래하면, 상기 이벤트가 발생된 것으로 판단되어, 상기 페이지 테이블 관리 모듈이 상기 제3 저장 공간에 저장된 라우팅 인덱스 정보에 따라 특정 프로세서가 데이터를 처리하는 동안 상기 메모리에서 재사용될 가능성이 없는 것으로 판단되는 데이터 페이지를 선별하고, 상기 선별된 페이지 테이블에 저장된 데이터를 모두 제거할 수 있다. The page table management module may determine that the event is generated when a preset period of time has elapsed and the page table management module determines that the event is generated, According to the information, a data page determined to be unlikely to be reused in the memory while a specific processor processes the data may be selected, and all the data stored in the selected page table may be removed.

그리고 본 발명의 일 실시예에 따른 페이지 테이블 기반의 데이터 관리 방법은 상기 저장장치에 저장된 데이터와 상기 페이지 테이블에 저장된 데이터 간의 스와핑이 요청되면, 상기 페이지 테이블 관리 모듈에 의해, 상기 이벤트가 발생된 것으로 판단되어, 상기 페이지 테이블 관리 모듈이 복수의 페이지 테이블 중 데이터가 저장된 기간이 가장 오래된 페이지 테이블을 선별하여, 상기 선별된 페이지 테이블에 저장된 데이터가 모두 제거되도록 하는 단계; 상기 데이터가 모두 제거된 페이지 테이블이 다른 페이지 테이블과의 연결이 해제되도록 하는 단계; 새로운 페이지 테이블이 생성되어 다른 페이지 테이블과 연결되도록 하거나 또는 다른 페이지 테이블과 연결되지 않은 상태의 페이지 테이블 중 하나가 다른 페이지 테이블과 연결되도록 하는 단계; 및 상기 페이지 테이블 관리 모듈이 새롭게 다른 페이지 테이블과 연결된 페이지 테이블에 상기 저장장치에 저장된 데이터를 불러들여 저장하는 단계;를 더 포함할 수 있다.According to another aspect of the present invention, there is provided a method of managing data based on a page table, wherein, when swapping between data stored in the storage device and data stored in the page table is requested, The page table management module selects the oldest page table in which the data of the plurality of page tables is stored, so that all the data stored in the selected page table is removed; Causing a page table from which all the data is removed to be disconnected from another page table; Allowing a new page table to be created and associated with another page table, or one of page tables not associated with another page table being associated with another page table; And the page table management module retrieving and storing data stored in the storage device in a page table newly associated with another page table.

이에 의해, 저장장치에 저장된 데이터 페이지들 중 원하는 데이터 페이지를 메모리로 불러들이는 과정에서 시간을 최소화할 수 있다.This minimizes the time required to load a desired data page among the data pages stored in the storage device into the memory.

또한, 메모리의 데이터 페이지들과 저장장치에 저장된 데이터 페이지들을 서로 스와핑하는 과정 또는 저장장치에 저장된 데이터를 메모리에 데이터 페이지를 불러들이는 과정에서 데이터가 손실되는 것을 방지할 수 있다. In addition, it is possible to prevent the data from being lost in the process of swapping the data pages of the memory with the data pages stored in the storage device or in the process of loading the data stored in the storage device into the memory.

도 1은 본 발명의 일 실시예에 따른 페이지 테이블 기반의 데이터 관리 방법을 수행하기 위한 시스템이 개략적으로 도시된 도면이다.
도 2는 본 발명의 일 실시예에 따른 페이지 테이블의 구조를 설명하기 위해 도시된 도면이다.
도 3은 본 발명의 일 실시예에 따른 페이지 테이블 기반의 데이터 관리 방법 중 페이지 테이블 상호 간의 연결 과정 및 동기화 과정을 설명하기 위해 도시된 도면이다.
도 4는 본 발명의 일 실시예에 따른 페이지 테이블 기반의 데이터 관리 방법을 이용하여 새로운 페이지 테이블을 추가하거나 제거하는 과정을 설명하기 위해 도시된 도면이다.
도 5는 본 발명의 일 실시예에 따른 페이지 테이블 기반의 데이터 관리 방법을 이용하여 메모리의 데이터 페이지에 저장된 데이터와 저장장치에 저장된 데이터 간에 스와핑이 수행되는 과정을 설명하기 위해 도시된 도면이다.
도 6은 본 발명의 일 실시예에 따른 페이지 테이블 기반의 데이터 관리 방법을 설명하기 위해 도시된 도면이다.
FIG. 1 is a diagram schematically illustrating a system for performing a page-table-based data management method according to an embodiment of the present invention.
2 is a diagram illustrating a structure of a page table according to an embodiment of the present invention.
FIG. 3 is a diagram illustrating a connection process and a synchronization process between page tables in a page table based data management method according to an embodiment of the present invention.
4 is a diagram illustrating a process of adding or removing a new page table using a page table-based data management method according to an embodiment of the present invention.
5 is a diagram illustrating a process in which swapping is performed between data stored in a data page of a memory and data stored in a storage device using a page table-based data management method according to an embodiment of the present invention.
FIG. 6 is a view for explaining a page table-based data management method according to an embodiment of the present invention.

이하에서는 본 발명의 실시예들을 첨부 도면을 참조하여 상세히 설명한다. 이하에 소개되는 실시예들은 본 발명이 속하는 기술분야에서 통상의 지식을 가진자에게 본 발명의 사상이 충분히 전달될 수 있도록 하기 위한 예로서 제공되는 것이다. 본 발명은 이하 설명되는 실시예들에 한정되지 않고 다른 형태로 구체화될 수도 있다.Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings. The embodiments described below are provided as examples for allowing a person skilled in the art to sufficiently convey the ideas of the present invention. The present invention is not limited to the embodiments described below and may be embodied in other forms.

도 1은 본 발명의 일 실시예에 따른 페이지 테이블(10) 기반의 데이터 관리 방법을 수행하기 위한 시스템이 개략적으로 도시된 도면이며, 도 2는 본 발명의 일 실시예에 따른 페이지 테이블(10)의 구조를 설명하기 위해 도시된 도면이고, 도 3은 본 발명의 일 실시예에 따른 페이지 테이블(10) 기반의 데이터 관리 방법 중 페이지 테이블(10) 상호 간의 연결 과정 및 동기화 과정을 설명하기 위해 도시된 도면이다. 이하에서는 도 1 내지 도 3을 참조하여 본 실시예에 따른 페이지 테이블(10) 기반의 데이터 관리 방법에 대하여 설명하기로 한다. FIG. 1 is a schematic diagram illustrating a system for performing a data management method based on a page table 10 according to an embodiment of the present invention. FIG. 2 is a block diagram of a page table 10 according to an embodiment of the present invention. FIG. 3 is a diagram illustrating a structure of a page table 10 according to an exemplary embodiment of the present invention. Referring to FIG. 3, Respectively. Hereinafter, a data management method based on the page table 10 according to the present embodiment will be described with reference to FIG. 1 to FIG.

본 실시예에 따른 페이지 테이블(10) 기반의 데이터 관리 방법은, 별도로 마련되는 저장장치에 저장된 데이터 페이지들 중 원하는 데이터 페이지를 선별하여 메모리로 불러들이는 과정에서 시간을 최소화하고, 메모리의 데이터 페이지들과 저장장치에 저장된 데이터 페이지들을 서로 스와핑하는 과정 또는 저장장치에 저장된 데이터를 메모리에 데이터 페이지를 불러들이는 과정에서 데이터가 손실되는 것을 방지하기 위해 마련된다.The data management method based on the page table 10 according to the present embodiment minimizes time in the process of selecting a desired data page among the data pages stored in the storage device separately and loading it into the memory, And swapping data pages stored in the storage device with each other or preventing the data stored in the storage device from being lost in the process of loading data pages into the memory.

이를 위해, 페이지 테이블(10) 기반의 데이터 관리 방법을 이용하는 시스템은, 페이지 테이블 관리 모듈(100), 동기화 모듈(200), 링크 관리 모듈(300) 및 메모리 맵 관리 모듈(400)로 구성될 수 있다. To this end, the system using the data management method based on the page table 10 may be configured with a page table management module 100, a synchronization module 200, a link management module 300, and a memory map management module 400 have.

페이지 테이블 관리 모듈(100)은 메모리 내에 페이지 테이블(10)을 생성하고, 관리하기 위해 마련된다.The page table management module 100 is provided for creating and managing the page table 10 in the memory.

구체적으로 페이지 테이블 관리 모듈(100)은, 데이터를 저장하기 위한 제1 저장 공간(11), 상기 제1 저장 공간(11)에 대한 인덱스 정보를 저장하기 위한 제2 저장 공간(12) 그리고 제1 저장 공간(11)에 데이터가 저장되는 경우, 저장된 데이터를 처리하기 위한 프로세서를 구별할 수 있는 라우팅 인덱스 정보를 저장하기 위한 제3 저장 공간(13)을 포함하는 페이지 테이블(10)을 생성할 수 있다.Specifically, the page table management module 100 includes a first storage space 11 for storing data, a second storage space 12 for storing index information on the first storage space 11, A page table 10 including a third storage space 13 for storing routing index information capable of distinguishing a processor for processing stored data when data is stored in the storage space 11 can be generated have.

즉, 페이지 테이블 관리 모듈(100)은, 제1, 제2, 제3 저장 공간(13)이 각각 분리된 페이지 테이블(10)을 생성하고, 생성된 페이지 테이블의 제1 저장 공간(11)에 데이터를 저장할 수 있으며, 제3 저장 공간(13)에 저장된 라우팅 인덱스 정보에 따라 메모리에서 재사용될 가능성이 없는 것으로 판단되는 데이터 페이지를 선별하여, 페이지 테이블(10)에 저장된 데이터를 삭제하거나, 또는 별도로 마련되는 저장장치로 이동시킬 수 있으며, 프로세서의 요청에 따라 저장장치로 이동된 페이지 테이블(10)을 다시 메모리로 불러들일 수도 있다. That is, the page table management module 100 generates the page table 10 in which the first, second, and third storage spaces 13 are respectively separated, and stores the generated page table 10 in the first storage space 11 of the generated page table It is possible to delete data stored in the page table 10 by selecting data pages judged to be unlikely to be reused in the memory according to the routing index information stored in the third storage space 13, The page table 10 moved to the storage device may be recalled to the memory according to the request of the processor.

여기서, 제3 저장 공간(13)에 저장된 라우팅 인덱스 정보는 각각의 데이터를 처리하고자 하는 프로세서를 식별할 수 있는 정보이기 때문에, 특정 프로세서가 실행되어 데이터를 처리하는 과정에서 특정 페이지 테이블의 제3 저장 공간(13)에 특정 프로세서에 대한 라우팅 인덱스 정보가 없는 경우, 페이지 테이블 관리 모듈(100)에 의해, 현재 데이터 처리 과정에서 사용되지 않는 것으로 판단되며, 이후에도 특정 프로세서가 데이터를 처리하는 과정에서는 재사용될 가능성이 없는 것으로 판단될 수 있다. Here, since the routing index information stored in the third storage space 13 is information that can identify a processor to process each data, a specific processor is executed and a third storage of a specific page table If there is no routing index information for a specific processor in the space 13, the page table management module 100 determines that the routing table is not used in the current data processing process, and is reused in the process of processing data by a specific processor It can be judged that there is no possibility.

한편, 페이지 테이블 관리 모듈(100)은, 제1 저장 공간(11)에 데이터가 저장되면, 데이터가 저장된 제1 저장 공간(11)에 대한 인덱스 정보를 갱신하여, 제2 저장 공간(12)에 저장할 수 있다.The page table management module 100 updates the index information on the first storage space 11 in which the data is stored when the data is stored in the first storage space 11, Can be stored.

또한, 페이지 테이블 관리 모듈(100)은, 생성된 페이지 테이블의 제1 저장 공간(11)에 데이터가 모두 채워지면, 메모리 저장용량의 임계치에 도달하기 이전까지 새로운 페이지 테이블(10)을 생성할 수 있다. In addition, the page table management module 100 can generate a new page table 10 before reaching the threshold of the memory storage capacity when all the data is filled in the first storage space 11 of the generated page table have.

동기화 모듈(200)은 페이지 테이블 관리 모듈(100)에 의해, 제1 저장 공간(11)에 대한 인덱스 정보가 갱신되면, 갱신된 인덱스 정보를 메모리 맵 파일(20)에 실시간 동기화되도록 할 수 있다. The synchronization module 200 may cause the page table management module 100 to synchronize the updated index information with the memory map file 20 in real time when the index information of the first storage space 11 is updated.

링크 관리 모듈(300)은 페이지 테이블 관리 모듈(100)에 의해, 최초의 페이지 테이블(10)이 생성된 이후, 새로운 페이지 테이블(10)이 생성될 때마다, 기존의 페이지 테이블(10)과 새로 생성된 페이지 테이블(10) 간에 연결되도록 하고, 이후, 해당 페이지 테이블(10)에 대한 페이지 테이블 관리 모듈(100)의 요청 또는 해당 페이지 테이블(10)에 대한 프로세서의 요청에 따라 연결 상태가 유지 또는 해제되도록 할 수 있다. Each time the new page table 10 is created after the first page table 10 is created by the page table management module 100, the link management module 300 updates the existing page table 10 and the new page table 10, The connection state is maintained or maintained according to the request of the page table management module 100 for the page table 10 or the request of the processor for the page table 10, Can be released.

메모리 맵 관리 모듈(400)은 페이지 테이블(10)이 생성되면, 생성된 페이지 테이블(10)에 따라 메모리 맵 파일(20)을 생성하고, 페이지 테이블(10)에 저장된 데이터가 삭제되면, 데이터가 삭제된 페이지 테이블(10)에 대한 메모리 맵 파일(20)을 삭제할 수 있다. The memory map management module 400 generates the memory map file 20 according to the generated page table 10 when the page table 10 is created and if the data stored in the page table 10 is deleted, The memory map file 20 for the deleted page table 10 can be deleted.

도 4는 본 발명의 일 실시예에 따른 페이지 테이블(10) 기반의 데이터 관리 방법을 이용하여 새로운 페이지 테이블(10)을 추가하거나 제거하는 과정을 설명하기 위해 도시된 도면이다. 4 is a diagram illustrating a process of adding or removing a new page table 10 using a data management method based on a page table 10 according to an embodiment of the present invention.

페이지 테이블 관리 모듈(100)은, 페이지 테이블(10)이 생성된 이후, 생성된 페이지 테이블의 제1 저장 공간(11)에 데이터가 모두 채워지면, 새로운 페이지 테이블(10)을 생성하는데, 이때 생성된 새로운 페이지 테이블(10)은 기존에 생성된 페이지 테이블(10)의 후단에 배열될 수 있다.The page table management module 100 generates a new page table 10 when all the data is filled in the first storage space 11 of the generated page table after the page table 10 is created, The new page table 10 may be arranged at the rear end of the page table 10 that has been created.

링크 관리 모듈(300)은, 데이터가 저장된 복수의 페이지 테이블(10)이 상호 간에 연결되는 경우, 저장된 데이터가 저장된 기간이 가장 오래된 페이지 테이블(10)이 연결 관계의 헤드가 되고, 가장 최근에 생성된 페이지 테이블(10)이 연결 관계의 테일(Tail)이 되도록 연결 시킬 수 있다. 또한, 이후 추가로 새로운 페이지 테이블(10)이 생성되면, 기존의 테일에 해당하는 페이지 테이블(10)의 후단에 배열되어, 기존의 테일에 해당하는 페이지 테이블(10)과 연결되어, 새로운 연결 관계의 테일에 해당할 수 있다.When the plurality of page tables 10 in which data is stored are connected to each other, the link management module 300 determines that the page table 10 having the oldest stored period of the stored data becomes the head of the connection relationship, The linked page table 10 may be connected to a tail of the connection relationship. When a new page table 10 is further generated, it is arranged at the rear end of the page table 10 corresponding to the existing tail and connected to the page table 10 corresponding to the existing tail, Lt; / RTI >

또한, 페이지 테이블 관리 모듈(100)은, 페이지 테이블(10)에 대한 이벤트가 발생된 것으로 판단되면, 이벤트가 발생된 것으로 판단되는 페이지 테이블(10)에 저장된 데이터를 모두 제거하고, 제거된 데이터에 대한 인덱스 정보를 갱신할 수 있다.If the page table management module 100 determines that an event for the page table 10 has been generated, the page table management module 100 deletes all data stored in the page table 10, which is determined to have generated an event, It is possible to update the index information about the index.

이때, 동기화 모듈(200)은 특정 페이지 테이블(10)의 데이터가 모두 제거되어, 제거된 데이터에 대한 인덱스 정보가 갱신되면, 갱신된 인덱스 정보가 메모리 맵 파일(20)에 동기화되도록 하고, 링크 관리 모듈(300)은, 데이터가 모두 제거된 페이지 테이블(10)과 다른 페이지 테이블(10) 간의 연결을 모두 해제할 수 있다. At this time, the synchronization module 200 causes the updated index information to be synchronized with the memory map file 20 when the data of the specific page table 10 is all removed and the index information of the removed data is updated, The module 300 can release all the connections between the page table 10 and the other page table 10 from which all data have been removed.

그리고 데이터가 모두 제거된 페이지 테이블(10)과 다른 페이지 테이블(10)의 연결이 모두 해제되면, 메모리 맵 관리 모듈(400)은, 다른 페이지 테이블(10)과의 연결이 모두 해제된 페이지 테이블(10)에 대한 메모리 맵 파일(20)을 삭제할 수 있다. When both the page table 10 and the page table 10 whose data are completely removed are disconnected from each other, the memory map management module 400 deletes the page table 10 from which connection with the other page table 10 is released The memory map file 20 can be deleted.

여기서, 페이지 테이블 관리 모듈(100)은, 프로세서로부터 특정 페이지 테이블(10)에 저장된 데이터에 대한 저장장치로의 전달요청 또는 삭제요청을 수신하는 경우, 메모리가 저장용량의 임계치에 도달하는 경우 또는 기설정된 기간이 도래하는 경우에 페이지 테이블(10)에 대한 이벤트가 발생된 것으로 판단할 수 있다. Here, when the page table management module 100 receives a transfer request or deletion request from the processor to the storage device for the data stored in the specific page table 10, when the memory reaches the threshold of the storage capacity, It can be determined that an event for the page table 10 has occurred when the set period comes.

구체적으로 예를 들면, 페이지 관리 모듈은, 프로세서로부터 특정 페이지 테이블(10)에 저장된 데이터에 대한 저장장치로의 전달요청이 수신되면, 페이지 테이블(10)에 대한 제1 이벤트가 발생된 것으로 판단하여, 프로세서가 지정한 특정 페이지 테이블(10)을 선별하여, 선별된 페이지 테이블(10)에 저장된 데이터를 저장장치에 전달하여 저장할 수 있다. Specifically, for example, when receiving a request from the processor for transferring data stored in the specific page table 10 to the storage device, the page management module determines that the first event for the page table 10 has been generated , The specific page table 10 designated by the processor is selected, and the data stored in the selected page table 10 is transferred to the storage device and stored.

즉, 제1 이벤트가 발생된 것으로 판단되면, 페이지 관리 모듈은, 프로세서가 지정한 특정 페이지 테이블(10)을 선별하고, 선별된 페이지 테이블(10)에 저장된 데이터를 저장장치에 전달하고, 페이지 테이블의 제1 저장 공간(11)에 저장된 데이터를 모두 삭제하고, 삭제된 데이터에 대한 인덱스 정보를 갱신할 수 있다. That is, when it is determined that the first event is generated, the page management module selects the specific page table 10 specified by the processor, transfers the data stored in the selected page table 10 to the storage device, It is possible to delete all the data stored in the first storage space 11 and update the index information on the deleted data.

이후, 동기화 모듈(200)은 특정 페이지 테이블(10)의 데이터가 모두 제거되어, 제거된 데이터에 대한 인덱스 정보가 갱신되면, 갱신된 인덱스 정보가 메모리 맵 파일(20)에 동기화되도록 하고, 링크 관리 모듈(300)은, 데이터가 모두 제거된 페이지 테이블(10)과 다른 페이지 테이블(10) 간의 연결을 모두 해제하며, 메모리 맵 관리 모듈(400)은, 다른 페이지 테이블(10)과의 연결이 모두 해제된 페이지 테이블(10)에 대한 메모리 맵 파일(20)을 삭제할 수 있다.Thereafter, the synchronization module 200 causes the updated index information to be synchronized with the memory map file 20 when the data of the specific page table 10 is all removed and the index information of the removed data is updated, The module 300 releases all the connections between the page table 10 and the other page table 10 from which all the data has been removed and the memory map management module 400 has the connection with the other page table 10 The memory map file 20 for the released page table 10 can be deleted.

다른 예를 들면, 페이지 관리 모듈은, 메모리가 저장용량의 임계치에 도달하면, 페이지 테이블(10)에 대한 제2 이벤트가 발생된 것으로 판단하여, 페이지 테이블(10)에 저장된 데이터를 제거하되, 데이터가 저장된 페이지 테이블(10)이 복수인 경우, 복수의 페이지 테이블(10) 중 데이터가 저장된 기간이 가장 오래된 페이지 테이블(10)을 선별하고, 선별된 페이지 테이블(10)에 저장된 데이터를 모두 제거하고, 제거된 데이터에 대한 인덱스 정보를 갱신할 수 있다. In another example, the page management module determines that a second event for the page table 10 has been generated when the memory has reached the storage capacity threshold, and removes the data stored in the page table 10, The page table 10 having the oldest period in which the data is stored among the plurality of page tables 10 is selected and all the data stored in the selected page table 10 is removed , The index information on the removed data can be updated.

또 다른 예를 들면, 페이지 관리 모듈은, 기설정된 기간이 도래하면, 페이지 테이블(10)에 대한 제3 이벤트가 발생된 것으로 판단하여, 페이지 테이블(10)에 저장된 제3 저장 공간(13)에 저장된 라우팅 인덱스 정보에 따라 메모리에서 재사용될 가능성이 없는 것으로 판단되는 데이터 페이지를 선별하고, 선별된 데이터 페이지에 저장된 데이터를 모두 제거하고, 제거된 데이터에 대한 인덱스 정보를 갱신할 수 있다. As another example, the page management module determines that a third event for the page table 10 has been generated when a predetermined period of time has passed, and stores the third event in the third storage space 13 stored in the page table 10 According to the stored routing index information, it is possible to select data pages that are not likely to be reused in the memory, remove all data stored in the selected data pages, and update index information on the removed data.

여기서, 데이터가 저장된 기간이 가장 오래된 페이지 테이블(10)은 데이터를 저장하는 복수의 페이지 테이블(10)이 상호 간에 연결되는 경우, 상호 간의 연결 상태의 헤드에 해당하는 페이지 테이블(10)에 저장된 데이터가 저장된 기간이 가장 오래된 페이지 테이블(10)일 수 있으며, 상호 간의 연결 상태의 테일에 해당하는 페이지 테이블(10)이 가장 최근에 생성된 페이지 테이블(10)일 수 있다.Here, when the page table 10 storing the data is the oldest page table 10, the data stored in the page table 10 corresponding to the head of the connection state between the plural page tables 10 May be the oldest page table 10 and the page table 10 corresponding to the tail of the connection state between the pages may be the page table 10 that has been generated most recently.

또한, 제2, 제3 및 제4 이벤트가 발생된 경우에도, 각각의 이벤트에 따라 페이지 테이블(10)에 저장된 데이터를 모두 제거하고, 제거된 데이터에 대한 인덱스 정보를 갱신한 이후에 동기화 모듈(200)을 통해, 갱신된 인덱스 정보를 메모리 맵 파일(20)에 동기화하고, 링크 관리 모듈(300)을 통해, 데이터가 모두 제거된 페이지 테이블(10)과 다른 페이지 테이블(10) 간의 연결을 모두 해제하고, 메모리 맵 관리 모듈(400)을 통해, 다른 페이지 테이블(10)과의 연결이 모두 해제된 페이지 테이블(10)에 대한 메모리 맵 파일(20)을 삭제하는 과정이 동일하게 수행된다. Also, even if the second, third, and fourth events are generated, after all the data stored in the page table 10 is deleted according to each event and the index information about the removed data is updated, The link management module 300 synchronizes the updated index information with the memory map file 20 through the link management module 300 and the link between the page table 10 and the page table 10, The process of deleting the memory map file 20 for the page table 10 in which the connection with the other page table 10 is released through the memory map management module 400 is performed in the same manner.

도 5는 본 발명의 일 실시예에 따른 페이지 테이블(10) 기반의 데이터 관리 방법을 이용하여 메모리의 데이터 페이지에 저장된 데이터와 저장장치에 저장된 데이터 간에 스와핑이 수행되는 과정을 설명하기 위해 도시된 도면이다. 5 is a diagram illustrating a process of swapping between data stored in a data page of a memory and data stored in a storage device using a page management method based on the page table 10 according to an embodiment of the present invention. to be.

페이지 테이블 관리 모듈(100)은, 저장장치에 저장된 데이터와 페이지 테이블(10)에 저장된 데이터 간의 스와핑이 요청되거나 또는 실행되는 프로세서가 변경되어, 변경된 프로세서에 대한 데이터의 재사용 가능성을 재판단한 결과, 페이지 테이블(10)에 저장된 데이터와 저장장치에 저장된 데이터 간의 스와핑이 필요한 것으로 판단되는 경우, 제5 이벤트가 발생된 것으로 판단되어, 복수의 페이지 테이블(10) 중 데이터가 저장된 기간이 가장 오래된 페이지 테이블(10)을 선별하고, 선별된 페이지 테이블(10)에 저장된 데이터를 모두 제거하고, 제거된 데이터에 대한 인덱스 정보를 갱신할 수 있다.The page table management module 100 determines whether the swapping between the data stored in the storage device and the data stored in the page table 10 is requested or the processor to be executed is changed so that the re- When it is determined that swapping between the data stored in the table 10 and the data stored in the storage device is necessary, it is determined that the fifth event has occurred, and the period in which data among the plurality of page tables 10 is stored is the oldest page table 10), removes all data stored in the selected page table 10, and updates index information on the removed data.

이때, 동기화 모듈(200)은 전술한 바와 같이 선별된 페이지 테이블(10)의 데이터가 모두 제거되어, 제거된 데이터에 대한 인덱스 정보가 갱신되면, 갱신된 인덱스 정보가 메모리 맵 파일(20)에 동기화되도록 하고, 링크 관리 모듈(300)은, 데이터가 모두 제거된 페이지 테이블(10)과 다른 페이지 테이블(10) 간의 연결을 모두 해제할 수 있다. At this time, when all the data of the page table 10 selected as described above is removed and the index information about the removed data is updated, the synchronization module 200 synchronizes the updated index information with the memory map file 20 And the link management module 300 can release all the connections between the page table 10 from which the data is completely removed and the other page table 10.

그리고 데이터가 모두 제거된 페이지 테이블(10)과 다른 페이지 테이블(10)의 연결이 모두 해제되면, 메모리 맵 관리 모듈(400)은, 다른 페이지 테이블(10)과의 연결이 모두 해제된 페이지 테이블(10)에 대한 메모리 맵 파일(20)을 삭제할 수 있다. When both the page table 10 and the page table 10 whose data are completely removed are disconnected from each other, the memory map management module 400 deletes the page table 10 from which connection with the other page table 10 is released The memory map file 20 can be deleted.

또한, 페이지 테이블 관리 모듈(100)은, 데이터가 모두 제거된 페이지 테이블(10)과 다른 페이지 테이블(10)의 연결이 모두 해제되면, 새로 페이지 테이블(10)을 생성하고, 링크 관리 모듈(300)을 통해, 새로 생성된 페이지 테이블(10)이 다른 페이지 테이블(10)과 연결되도록 하거나 또는 다른 페이지 테이블(10)과 연결되지 않은 상태의 페이지 테이블(10) 중 하나가 다른 페이지 테이블(10)과 연결되도록 할 수 있다.The page table management module 100 generates a new page table 10 when the connection between the page table 10 and the page table 10 having all the data removed is released, The newly generated page table 10 is linked to another page table 10 or one of the page tables 10 not connected to another page table 10 is connected to another page table 10 via the page table 10, .

이어서, 새로 생성된 페이지 테이블(10) 또는 다른 페이지 테이블(10)과 연결되지 않은 상태의 페이지 테이블(10) 중 하나가 다른 페이지 테이블(10)과 연결되면, 페이지 테이블 관리 모듈(100)은, 새롭게 다른 페이지 테이블(10)과 연결된 페이지 테이블(10)에 저장장치에 저장된 데이터를 불러들여 저장하여, 기존에 페이지 테이블(10)에 저장된 데이터와 저장장치에 저장된 데이터 간의 스와핑이 수행되도록 할 수 있다. If one of the page tables 10 newly connected to the page table 10 or the other page table 10 is connected to another page table 10, the page table management module 100, The data stored in the storage device is fetched and stored in the page table 10 connected to the different page table 10 so that swapping between the data stored in the page table 10 and the data stored in the storage device can be performed .

이때, 새로 생성된 페이지 테이블(10)이 다른 페이지 테이블(10)과 연결되는 경우에는, 복수의 페이지 테이블(10)의 연결 상태의 테일에 해당할 수 있으나, 다른 페이지 테이블(10)과 연결되지 않은 상태의 페이지 테이블(10) 중 하나가 다른 페이지 테이블(10)과 연결되는 경우에는, 복수의 페이지 테이블(10)의 연결 상태의 테일 뿐 아니라 헤드에 해당할 수 있으며, 이는 연결 상태가 해제된 페이지 테이블(10)과, 연결되지 않은 상태의 페이지 테이블(10) 중 선택된 페이지 테이블(10)의 배열 위치에 따라 다양하게 결정될 수 있다. At this time, when the newly created page table 10 is connected to another page table 10, it may correspond to a tail of a connection state of a plurality of page tables 10, When one of the page tables 10 in a non-connected state is connected to another page table 10, it may correspond to not only the tail of the connection state of the plurality of page tables 10 but also the head, Can be variously determined according to the arrangement position of the page table 10 and the selected page table 10 among the page tables 10 not connected.

도 6은 본 발명의 일 실시예에 따른 페이지 테이블(10) 기반의 데이터 관리 방법을 설명하기 위해 도시된 도면이다.6 is a diagram for explaining a data management method based on the page table 10 according to an embodiment of the present invention.

본 실시예에 따른 페이지 테이블(10) 기반의 데이터 관리 방법은, 페이지 테이블 관리 모듈(100)이 데이터를 저장하기 위한 제1 저장 공간(11), 상기 제1 저장 공간(11)에 대한 인덱스 정보를 저장하기 위한 제2 저장 공간(12) 그리고 제1 저장 공간(11)에 데이터가 저장되는 경우, 저장된 데이터를 처리하기 위한 프로세서를 구별할 수 있는 라우팅 인덱스 정보를 저장하기 위한 제3 저장 공간(13)을 포함하는 페이지 테이블(10)을 생성하고(S610), 페이지 테이블(10)이 생성된 사실을 메모리 맵 관리 모듈(400)에 전달할 수 있다(S613). 메모리 맵 관리 모듈(400)은 이를 바탕으로, 생성된 페이지 테이블(10)에 따라 메모리 맵 파일(20)을 생성하게 된다(S615). The page table 10-based data management method according to the present embodiment includes a first storage space 11 for storing data by the page table management module 100, a first storage space 11 for storing the index information for the first storage space 11, A third storage space 12 for storing routing index information for distinguishing a processor for processing stored data when data is stored in the first storage space 11, (S610) and transmits the fact that the page table 10 has been created to the memory map management module 400 (S613). The memory map management module 400 generates the memory map file 20 in accordance with the generated page table 10 (S615).

그리고 페이지 테이블 관리 모듈(100)은, 제1 저장 공간(11)에 데이터가 저장되면(S617), 데이터가 저장된 제1 저장 공간(11)에 대한 인덱스 정보를 갱신하여(S620), 제2 저장 공간(12)에 저장하고, 갱신된 인덱스 정보를 동기화 모듈(200)에 전달할 수 있다(S623). When the data is stored in the first storage space 11 in step S617, the page table management module 100 updates the index information on the first storage space 11 in which the data is stored in step S620, And transmits the updated index information to the synchronization module 200 (S623).

동기화 모듈(200)은 제1 저장 공간(11)에 대한 인덱스 정보가 갱신되면, 갱신된 인덱스 정보를 메모리 맵 파일(20)에 실시간 동기화되도록 할 수 있다(S625).The synchronization module 200 may synchronize the updated index information with the memory map file 20 in real time (S625) when the index information of the first storage space 11 is updated.

또한, 페이지 테이블 관리 모듈(100)은, 생성된 페이지 테이블의 제1 저장 공간(11)에 데이터가 모두 채워지면(S627-Yes), 메모리 저장용량의 임계치에 도달하기 이전까지 새로운 페이지 테이블(10)을 생성할 수 있으며(S630), 새로운 페이지 테이블(10)의 생성 사실을 메모리 맵 관리 모듈(400)에 전달할 수 있다(S633). 메모리 맵 관리 모듈(400)은 이를 바탕으로, 새롭게 생성된 페이지 테이블(10)에 따라 메모리 맵 파일(20)을 생성하게 된다(S635). When all the data is filled in the first storage space 11 of the generated page table (S627-Yes), the page table management module 100 stores the new page table 10 (S630), and may transmit the creation of the new page table 10 to the memory map management module 400 (S633). The memory map management module 400 generates the memory map file 20 in accordance with the newly generated page table 10 (S635).

그리고 페이지 테이블 관리 모듈(100)은, 새로운 페이지 테이블(10)의 생성 사실을 링크 관리 모듈(300)에 전달하여(S637), 링크 관리 모듈(300)이 기존의 페이지 테이블(10)과 새로 생성된 페이지 테이블(10) 간에 연결되도록 할 수 있다(S640).Then, the page table management module 100 transmits the creation of the new page table 10 to the link management module 300 (S637), and the link management module 300 creates the new page table 10 and the new page table 10 The page tables 10 may be connected to each other (S640).

복수의 페이지 테이블(10) 간에 연결된 이후, 페이지 테이블 관리 모듈(100)은, 새로 생성된 페이지 테이블의 제1 저장 공간(11)에 데이터가 저장되면(S643), 데이터가 저장된 제1 저장 공간(11)에 대한 인덱스 정보를 갱신하여(S645), 제2 저장 공간(12)에 저장하고, 갱신된 인덱스 정보를 동기화 모듈(200)에 전달할 수 있다(S647). 동기화 모듈(200)은 갱신된 인덱스 정보를 수신하여, 갱신된 인덱스 정보를 메모리 맵 파일(20)에 실시간 동기화되도록 할 수 있다(S650).After the page table management module 100 has connected the plurality of page tables 10, if the data is stored in the first storage space 11 of the newly created page table (S643), the first storage space 11 in step S645, store the index information in the second storage space 12, and transmit the updated index information to the synchronization module 200 in step S647. The synchronization module 200 may receive the updated index information and synchronize the updated index information to the memory map file 20 in real time (S650).

한편, 페이지 테이블 관리 모듈(100)은, 페이지 테이블(10)에 대한 이벤트가 발생된 것으로 판단되면(S653-Yes), 이벤트가 발생된 것으로 판단되는 페이지 테이블(10)에 저장된 데이터를 모두 제거하고(S655), 제거된 데이터에 대한 인덱스 정보를 갱신할 수 있으며, 갱신된 인덱스 정보를 동기화 모듈(200)에 전달할 수 있다(S657).On the other hand, if it is determined that an event for the page table 10 has been generated (S653-Yes), the page table management module 100 removes all the data stored in the page table 10 judged to have generated the event (S655), the index information on the removed data can be updated, and the updated index information can be transmitted to the synchronization module 200 (S657).

동기화 모듈(200)은 갱신된 인덱스 정보를 수신하여, 갱신된 인덱스 정보를 메모리 맵 파일(20)에 실시간 동기화되도록 할 수 있다(S660).The synchronization module 200 may receive the updated index information and synchronize the updated index information to the memory map file 20 in real time (S660).

이때, 동기화 모듈(200)은 갱신된 인덱스 정보가 메모리 맵 파일(20)에 동기화되도록 하고, 링크 관리 모듈(300)에, 이벤트가 발생된 것으로 판단되는 페이지 테이블의 제1 저장 공간(11)에 저장되었던 데이터의 제거 사실을 전달할 수 있으며(S663), 링크 관리 모듈(300)은, 이벤트가 발생된 것으로 판단되는 페이지 테이블의 제1 저장 공간(11)에 저장되었던 데이터의 제거 사실을 수신하여, 데이터가 모두 제거된 페이지 테이블(10)과 다른 페이지 테이블(10) 간의 연결을 모두 해제할 수 있다(S665). At this time, the synchronization module 200 causes the updated index information to be synchronized with the memory map file 20, and sends the updated index information to the link management module 300 in the first storage space 11 of the page table, (S663). The link management module 300 receives the deletion fact of the data stored in the first storage space 11 of the page table judged that the event has occurred, The connection between the page table 10 and the page table 10 in which all the data have been removed can be released (S665).

또한, 링크 관리 모듈(300)은 데이터가 모두 제거된 페이지 테이블(10)과 다른 페이지 테이블(10) 간의 연결이 모두 해제되면, 데이터가 모두 제거된 페이지 테이블(10)이 다른 페이지 테이블(10)과의 연결을 모두 해제한 사실을 메모리 맵 관리 모듈(400)에 전달하고(667), 메모리 맵 관리 모듈(400)은 다른 페이지 테이블(10)과의 연결이 모두 해제된 페이지 테이블(10)에 대한 메모리 맵 파일(20)을 삭제할 수 있다(S670).If the link management module 300 releases the connection between the page table 10 and the other page table 10 from which all the data have been removed, To the memory map management module 400 (667). The memory map management module 400 transfers the fact that the connection to the page table 10 is released to the page table 10 The memory map file 20 can be deleted (S670).

한편, 본 실시예에 따른 장치의 기능 및 방법을 수행하게 하는 컴퓨터 프로그램을 수록한 컴퓨터로 읽을 수 있는 기록매체에도 본 발명의 기술적 사상이 적용될 수 있음은 물론이다. 또한, 본 발명의 다양한 실시예에 따른 기술적 사상은 컴퓨터로 읽을 수 있는 기록매체에 기록된 컴퓨터로 읽을 수 있는 프로그래밍 언어코드 형태로 구현될 수도 있다. 컴퓨터로 읽을 수 있는 기록매체는 컴퓨터에 의해 읽을 수 있고 데이터를 저장할 수 있는 어떤 데이터 저장 장치이더라도 가능하다.It goes without saying that the technical idea of the present invention can also be applied to a computer-readable recording medium having a computer program for performing the functions and methods of the apparatus according to the present embodiment. In addition, the technical idea according to various embodiments of the present invention may be realized in the form of a computer-readable programming language code recorded on a computer-readable recording medium. The computer-readable recording medium is any data storage device that can be read by a computer and can store data.

예를 들어, 컴퓨터로 읽을 수 있는 기록매체는 ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광디스크, 하드 디스크 드라이브, 플래시 메모리, 솔리드 스테이트 디스크(SSD) 등이 될 수 있음은 물론이다.For example, the computer-readable recording medium may be a ROM, a RAM, a CD-ROM, a magnetic tape, a floppy disk, an optical disk, a hard disk drive, a flash memory, a solid state disk (SSD), or the like.

또한, 컴퓨터로 읽을 수 있는 기록매체에 저장된 컴퓨터로 읽을 수 있는 코드 또는 프로그램은 컴퓨터 간에 연결된 네트워크를 통해 전송될 수도 있다.In addition, the computer readable code or program stored in the computer readable recording medium may be transmitted through a network connected between the computers.

이상에서는 본 발명의 바람직한 실시예에 대하여 도시하고 설명하였지만, 본 발명은 상술한 특정의 실시예에 한정되지 아니하며, 청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 발명의 기술적 사상이나 전망으로부터 개별적으로 이해되어져서는 안될 것이다.While the present invention has been particularly shown and described with reference to exemplary embodiments thereof, it is clearly understood that the same is by way of illustration and example only and is not to be construed as limiting the scope of the invention as defined by the appended claims. It will be understood by those skilled in the art that various changes in form and details may be made therein without departing from the spirit and scope of the invention.

10 : 페이지 테이블 11 : 제1 저장 공간
12 : 제2 저장 공간 13 : 제3 저장 공간
20 : 메모리 맵 파일
100 : 페이지 테이블 관리 모듈
200 : 동기화 모듈 300 : 링크 관리 모듈
400 : 메모리 맵 관리 모듈
10: page table 11: first storage space
12: second storage space 13: third storage space
20: Memory map file
100: page table management module
200: synchronization module 300: link management module
400: memory map management module

Claims (8)

메모리 내에 저장되는 데이터 관리 방법에 있어서,
페이지 테이블 관리 모듈이 데이터를 저장하기 위한 제1 저장 공간 및 상기 제1 저장 공간에 대한 인덱스 정보를 저장하기 위한 제2 저장 공간이 포함된 페이지 테이블을 생성하는 단계;
상기 페이지 테이블 관리 모듈이 상기 생성된 페이지 테이블에 포함된 제1 저장 공간에 데이터를 저장하고, 데이터가 저장된 제1 저장 공간에 대한 인덱스 정보를 갱신하고, 상기 인덱스 정보가 갱신되면, 동기화 모듈에 의해, 갱신된 인덱스 정보가 메모리 맵 파일에 실시간 동기화되도록 하는 단계;
상기 페이지 테이블 관리 모듈에 의해, 페이지 테이블에 대한 이벤트가 발생된 것으로 판단되면, 상기 이벤트가 발생된 것으로 판단되는 페이지 테이블에 저장된 데이터를 모두 제거하는 단계; 및
메모리 맵 관리 모듈이 상기 데이터가 모두 제거된 페이지 테이블에 대한 메모리 맵 파일을 삭제하는 단계;를 포함하고,
상기 페이지 테이블은,
상기 제1 저장 공간에 데이터가 저장되는 경우, 상기 저장된 데이터를 처리하기 위한 라우팅 인덱스 정보를 저장하기 위한 제3 저장 공간이 더 포함되고,
상기 데이터 관리 방법은,
상기 생성된 페이지 테이블에 포함된 제1 저장 공간에 데이터가 모두 채워질 때마다 상기 페이지 테이블 관리 모듈이 새로운 페이지 테이블을 생성하는 단계;
상기 새로운 페이지 테이블이 생성될 때마다, 링크 관리 모듈이 기존의 페이지 테이블과 새로 생성된 페이지 테이블 간에 연결되도록 하는 단계; 및
상기 페이지 테이블 관리 모듈이 새로운 페이지 테이블에 포함된 제1 저장 공간에 데이터를 저장하고, 데이터가 저장된 제1 저장 공간에 대한 인덱스 정보를 갱신하고, 상기 인덱스 정보가 갱신되면, 동기화 모듈에 의해, 갱신된 인덱스 정보가 새로운 메모리 맵 파일에 실시간 동기화되도록 하는 단계;를 더 포함하는 것을 특징으로 하는 페이지 테이블 기반의 데이터 관리 방법.
A method of managing data stored in a memory,
Generating a page table including a first storage space for storing data by the page table management module and a second storage space for storing index information on the first storage space;
The page table management module stores data in a first storage space included in the generated page table, updates index information on a first storage space in which data is stored, and when the index information is updated, , Causing the updated index information to be synchronized in real time with the memory map file;
If the page table management module determines that an event for the page table has been generated, removing all the data stored in the page table determined to have generated the event; And
And the memory map management module deletes the memory map file for the page table from which the data is completely removed,
The page table includes:
Further comprising a third storage space for storing routing index information for processing the stored data when data is stored in the first storage space,
The data management method includes:
Generating a new page table by the page table management module every time data is filled in a first storage space included in the generated page table;
Causing the link management module to link between the existing page table and the newly created page table each time the new page table is created; And
Wherein the page table management module stores data in a first storage space included in a new page table, updates index information on a first storage space in which data is stored, and updates the index information, And synchronizing the updated index information with a new memory map file in real time.
삭제delete 삭제delete 제1항에 있어서,
상기 데이터를 모두 제거하는 단계는,
상기 새로운 페이지 테이블이 생성된 이후, 상기 페이지 테이블 관리 모듈에 의해, 데이터가 모두 채워진 페이지 테이블 중 특정 페이지 테이블에 대한 이벤트가 발생된 것으로 판단되면, 상기 이벤트가 발생된 것으로 판단되는 특정 페이지 테이블에 저장된 데이터를 모두 제거하고,
상기 메모리 맵 파일을 삭제하는 단계는,
상기 데이터가 모두 제거된 특정 페이지 테이블이 다른 페이지 테이블과 연결된 경우, 상기 링크 관리 모듈에 의해, 상기 데이터가 모두 제거된 페이지 테이블과 다른 페이지 테이블 간의 연결이 모두 해제되도록 하고, 상기 데이터가 모두 제거된 특정 페이지 테이블의 연결이 모두 해제되면, 상기 메모리 맵 관리 모듈이 상기 연결이 모두 해제된 페이지 테이블에 대한 메모리 맵 파일을 삭제하는 것을 특징으로 하는 페이지 테이블 기반의 데이터 관리 방법.
The method according to claim 1,
The step of removing all of the data comprises:
After the new page table is created, if the page table management module determines that an event for a specific page table among the page tables whose data is completely filled is generated, the event is stored in a specific page table Remove all data,
Wherein the step of deleting the memory map file comprises:
When a specific page table from which all the data is removed is linked to another page table, the link management module releases all the connection between the page table from which the data is completely removed and another page table, Wherein the memory map management module deletes the memory map file for the page table from which the connection is released when all the connections of the specific page table are released.
제4항에 있어서,
상기 데이터를 모두 제거하는 단계는,
상기 메모리가 저장용량의 임계치에 도달하는 경우, 상기 페이지 테이블 관리 모듈에 의해, 상기 이벤트가 발생된 것으로 판단되어, 상기 페이지 테이블 관리 모듈이 복수의 페이지 테이블 중 데이터가 저장된 기간이 가장 오래된 페이지 테이블을 선별하여, 상기 선별된 페이지 테이블에 저장된 데이터를 모두 제거하는 것을 특징으로 하는 페이지 테이블 기반의 데이터 관리 방법.
5. The method of claim 4,
The step of removing all of the data comprises:
Wherein the page table management module determines that the event is generated when the memory reaches a threshold value of the storage capacity and the page table management module determines that the period of the data among the plurality of page tables is the oldest page table And removing all of the data stored in the selected page table.
제5항에 있어서,
상기 기존의 페이지 테이블과 상기 새로운 페이지 테이블 간에 연결되도록 하는 단계는,
상기 새로운 페이지 테이블이 생성될 때마다, 링크 관리 모듈이 기존의 페이지 테이블과 새로 생성된 페이지 테이블 간에 연결되도록 하되, 기존의 페이지 테이블 중 생성된 순서에 따라 데이터가 저장된 기간이 가장 오래된 페이지 테이블이 연결 상태의 헤드(Head)가 되고, 가장 최근에 생성된 페이지 테이블이 연결 상태의 테일(Tail)이 되도록 하는 연결되도록 하고,
상기 데이터를 모두 제거하는 단계는,
상기 페이지 테이블 관리 모듈이 상기 복수의 페이지 테이블 중 데이터가 저장된 기간이 가장 오래된 페이지 테이블을 선별하는 경우, 복수의 페이지 테이블 중 헤드에 해당하는 페이지 테이블을 가장 오래된 페이지 테이블로 선별하여, 상기 선별된 페이지 테이블에 저장된 데이터를 모두 제거하는 것을 특징으로 하는 페이지 테이블 기반의 데이터 관리 방법.
6. The method of claim 5,
Wherein the step of linking the existing page table with the new page table comprises:
Each time a new page table is created, a link management module is connected between an existing page table and a newly generated page table, and a page table in which a period in which data is stored in the oldest page table, And the most recently generated page table is connected so as to become a tail of the connected state,
The step of removing all of the data comprises:
When the page table management module selects the oldest page table in which the data is stored in the plurality of page tables, the page table corresponding to the head among the plurality of page tables is selected as the oldest page table, And removing all of the data stored in the table.
제4항에 있어서,
상기 데이터를 모두 제거하는 단계는,
상기 페이지 테이블 관리 모듈에 의해, 기설정된 기간이 도래하면, 상기 이벤트가 발생된 것으로 판단되어, 상기 페이지 테이블 관리 모듈이 상기 제3 저장 공간에 저장된 라우팅 인덱스 정보에 따라 특정 프로세서가 데이터를 처리하는 동안 상기 메모리에서 재사용될 가능성이 없는 것으로 판단되는 데이터 페이지를 선별하고, 상기 선별된 페이지 테이블에 저장된 데이터를 모두 제거하는 것을 특징으로 하는 페이지 테이블 기반의 데이터 관리 방법.
5. The method of claim 4,
The step of removing all of the data comprises:
Wherein the page table management module determines that the event has occurred when a preset period of time has elapsed and the page table management module has processed the data according to the routing index information stored in the third storage space Selecting a data page that is not likely to be reused in the memory, and removing all data stored in the selected page table.
제4항에 있어서,
저장장치에 저장된 데이터와 상기 페이지 테이블에 저장된 데이터 간의 스와핑이 요청되면, 상기 페이지 테이블 관리 모듈에 의해, 상기 이벤트가 발생된 것으로 판단되어, 상기 페이지 테이블 관리 모듈이 복수의 페이지 테이블 중 데이터가 저장된 기간이 가장 오래된 페이지 테이블을 선별하여, 상기 선별된 페이지 테이블에 저장된 데이터가 모두 제거되도록 하는 단계;
상기 데이터가 모두 제거된 페이지 테이블이 다른 페이지 테이블과의 연결이 해제되도록 하는 단계;
새로운 페이지 테이블이 생성되어 다른 페이지 테이블과 연결되도록 하거나 또는 다른 페이지 테이블과 연결되지 않은 상태의 페이지 테이블 중 하나가 다른 페이지 테이블과 연결되도록 하는 단계; 및
상기 페이지 테이블 관리 모듈이 새롭게 다른 페이지 테이블과 연결된 페이지 테이블에 상기 저장장치에 저장된 데이터를 불러들여 저장하는 단계;를 더 포함하는 것을 특징으로 하는 페이지 테이블 기반의 데이터 관리 방법.
5. The method of claim 4,
When swapping between the data stored in the storage device and the data stored in the page table is requested, the page table management module determines that the event is generated, and the page table management module stores the data Selecting the oldest page table so that all data stored in the selected page table is removed;
Causing a page table from which all the data is removed to be disconnected from another page table;
Allowing a new page table to be created and associated with another page table, or one of page tables not associated with another page table being associated with another page table; And
Further comprising the step of the page table management module retrieving and storing data stored in the storage device in a page table newly associated with another page table.
KR1020180009686A 2018-01-26 2018-01-26 Method for data management based on page table KR101851122B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180009686A KR101851122B1 (en) 2018-01-26 2018-01-26 Method for data management based on page table

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180009686A KR101851122B1 (en) 2018-01-26 2018-01-26 Method for data management based on page table

Publications (1)

Publication Number Publication Date
KR101851122B1 true KR101851122B1 (en) 2018-04-24

Family

ID=62084946

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180009686A KR101851122B1 (en) 2018-01-26 2018-01-26 Method for data management based on page table

Country Status (1)

Country Link
KR (1) KR101851122B1 (en)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100169708A1 (en) * 2008-12-29 2010-07-01 John Rudelic Method and apparatus to profile ram memory objects for displacment with nonvolatile memory
US20170139840A1 (en) 2015-11-12 2017-05-18 International Business Machines Corporation Memory mapping for object-based storage devices

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100169708A1 (en) * 2008-12-29 2010-07-01 John Rudelic Method and apparatus to profile ram memory objects for displacment with nonvolatile memory
US20170139840A1 (en) 2015-11-12 2017-05-18 International Business Machines Corporation Memory mapping for object-based storage devices

Similar Documents

Publication Publication Date Title
US10185495B2 (en) Block storage device having hierarchical disks with different access frequencies
US7681010B2 (en) Apparatus and method for a managing file system
US8219562B1 (en) Efficient storage and retrieval for large number of data objects
US7574435B2 (en) Hierarchical storage management of metadata
EP2324440B1 (en) Providing data structures for determining whether keys of an index are present in a storage system
US7694103B1 (en) Efficient use of memory and accessing of stored records
US11687488B2 (en) Directory deletion method and apparatus, and storage server
US10073649B2 (en) Storing metadata
US9547706B2 (en) Using colocation hints to facilitate accessing a distributed data storage system
US8682941B2 (en) Database apparatus
EP3206128A1 (en) Data storage method, data storage apparatus, and storage device
US10013312B2 (en) Method and system for a safe archiving of data
EP1181639B1 (en) Apparatus and method for providing a cyclic buffer
JP5464269B2 (en) File storage device, data storage method, and data storage program
JP4755244B2 (en) Information generation method, information generation program, and information generation apparatus
CN106528338B (en) Remote data copying method, storage device and storage system
CN115840731A (en) File processing method, computing device and computer storage medium
JP4727800B2 (en) Digital data subsystem including a directory for efficiently providing format information about stored records
KR20150045073A (en) Data Operating Method And System supporting the same
KR101851122B1 (en) Method for data management based on page table
CN113467719A (en) Data writing method and device
US9575679B2 (en) Storage system in which connected data is divided
US10922277B1 (en) Logging file system metadata changes using a single log hold per cached block of metadata
JP2830826B2 (en) Distributed file synchronization system and method
US5802557A (en) System and method for caching information in a digital data storage subsystem

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant