KR101881038B1 - Method for atomic update of memory mapped files stored in non-volatile memory and control apparatus thereof - Google Patents

Method for atomic update of memory mapped files stored in non-volatile memory and control apparatus thereof Download PDF

Info

Publication number
KR101881038B1
KR101881038B1 KR1020160160149A KR20160160149A KR101881038B1 KR 101881038 B1 KR101881038 B1 KR 101881038B1 KR 1020160160149 A KR1020160160149 A KR 1020160160149A KR 20160160149 A KR20160160149 A KR 20160160149A KR 101881038 B1 KR101881038 B1 KR 101881038B1
Authority
KR
South Korea
Prior art keywords
page
update
file
original file
system area
Prior art date
Application number
KR1020160160149A
Other languages
Korean (ko)
Other versions
KR20180060552A (en
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 KR1020160160149A priority Critical patent/KR101881038B1/en
Publication of KR20180060552A publication Critical patent/KR20180060552A/en
Application granted granted Critical
Publication of KR101881038B1 publication Critical patent/KR101881038B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; 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/0292User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means

Abstract

본 명세서는 비휘발성 메모리의 인-메모리(In-memory) 파일시스템에서 보다 안전하고 효율적인 메모리 매핑 파일 I/O(memory mapped file I/O)을 제공하는 파일 업데이트 방법 및 제어 장치를 개신한다. 본 명세서에 따른 파일 업데이트 방법은 원본 파일에 업데이트가 발생한 경우, 업데이트된 내용을 원본 파일과 다른 곳에 저장시킨 후 업데이트 명령어가 수행될 때 한꺼번에 업데이트시키는 특징을 가진다.The present disclosure extends to a file update method and apparatus that provides a more secure and efficient memory mapped file I / O (I / O) in an in-memory file system of non-volatile memory. The file update method according to the present invention is characterized in that, when an update occurs in an original file, the updated contents are stored in a different place from the original file, and are updated at the same time when an update command is executed.

Figure R1020160160149
Figure R1020160160149

Description

비휘발성 메모리에 저장된 메모리 매핑 파일의 원자적 업데이트 방법 및 제어 장치{METHOD FOR ATOMIC UPDATE OF MEMORY MAPPED FILES STORED IN NON-VOLATILE MEMORY AND CONTROL APPARATUS THEREOF}TECHNICAL FIELD [0001] The present invention relates to an atomic update method and apparatus for a memory mapping file stored in a nonvolatile memory,

본 발명은 메모리 매핑 파일의 업데이트 방법 및 제어 장치에 관한 것으로서, 구체적으로는 비휘발성 메인 메모리에 저장된 메모리 매핑 파일의 일관성과 신뢰성을 보장할 수 있는 원자적(Atomic) 업데이트 방법 및 제어 장치에 관한 것이다.The present invention relates to a method and apparatus for updating a memory mapping file, and more particularly, to an atomic updating method and apparatus capable of ensuring consistency and reliability of a memory mapping file stored in a nonvolatile main memory .

최근 등장한 비휘발성 메모리 소자들이 Dynamic Random-Access Memory(DRAM)과 유사한 성능을 보여주고 있어 미래의 메인 메모리로 기대되고 있다. 또한 다양한 종류의 비휘발성 메모리 모듈(Non-Volatile Dual In-line Memory Module, NVDIMM)들이 개발됨에 따라 컴퓨터의 메인 메모리로서 비휘발성 메모리가 사용되는 경향이 증가하고 있다. 비휘발성 메인 메모리를 사용하면 메인 메모리에 파일을 지속적으로 저장할 수 있게 되어, 2차 저장장치 지연시간이 없는 빠른 파일 입출력이 가능하다. 특히 메모리 매핑 파일 입출력(Memory mapped file I/O) 기법은 메인 메모리에 위치한 파일을 프로세스 주소공간(Process address space)에 매핑하기 때문에, 프로세스는 운영체제의 도움 없이 직접 load/store 명령어로 파일에 접근할 수 있다. 이 기법은 2차 저장장치 지연시간이 사라진 시스템에서 가장 큰 오버헤드로 나타나는 소프트웨어 오버헤드를 최소화할 수 있어서 중요한 파일 입출력 기법으로 주목 받고 있다.Recently, nonvolatile memory devices have similar performance to dynamic random access memory (DRAM), and are expected to be the main memory of the future. As non-volatile dual in-line memory modules (NVDIMMs) have been developed, nonvolatile memories are increasingly used as main memory of computers. With nonvolatile main memory, files can be stored continuously in main memory, enabling fast file I / O without secondary storage latency. In particular, since the memory mapped file I / O technique maps a file located in main memory to a process address space, the process accesses the file directly using the load / store command without the help of the operating system . This technique is attracting attention as an important file input / output technique because it can minimize the software overhead which is the biggest overhead in the system where the secondary storage delay time is lost.

그러나 비휘발성 메모리를 사용하는 시스템이라도 프로세서 내에 휘발성 캐시와 버퍼가 존재하므로 시스템 오류(System Crash)가 발생하면 일부 데이터를 잃어버리게 된다. 또한 프로세서는 성능 향상을 위해 비순차적 명령어 처리(Out-of-order execution) 기법을 사용하고 데이터 지역성(Locality)을 활용하기 위한 캐시 관리 기법이 사용되기 때문에 업데이트된 데이터가 메모리에 언제 반영되는지 알기 어렵다. 따라서 프로세서가 파일을 업데이트하는 도중에 시스템 오류가 발생하면, 파일의 일부는 업데이트가 되고 일부는 업데이트가 되지 못하는 문제가 발생한다. 특히 메모리 매핑 파일 입출력은 실제 메모리에 프로세스가 직접 접근하기 때문에 운영체제가 파일의 일관성과 신뢰성을 보장해줄 수 없는 문제가 발생한다.However, even a system using non-volatile memory has a volatile cache and a buffer in the processor, so that when a system crash occurs, some data is lost. The processor also uses out-of-order execution techniques to improve performance and uses cache management techniques to take advantage of data locality, so it is difficult to know when updated data is reflected in memory . Therefore, if a system error occurs while the processor is updating the file, some of the files will be updated and some will not be updated. In particular, memory mapping file I / O has a problem that the operating system can not guarantee the consistency and reliability of the file because the process directly accesses the actual memory.

운영체제가 제공하는 메모리 동기화 시스템 함수(호출)를 사용하면 메모리 매핑 파일의 동기화를 실행할 수 있다. 하지만 업데이트된 내용을 원본에 반영하는 것을 원자적으로 수행할 수 없기 때문에 여전히 파일의 일관성을 보장하지 못하는 문제가 있다.The memory synchronization system function (call) provided by the operating system can be used to perform synchronization of the memory mapping file. However, there is still the problem that the consistency of the file can not be guaranteed because the updated contents can not be atomically performed on the original.

대한민국 공개특허공보 제10-2015-0082010호Korean Patent Publication No. 10-2015-0082010

본 명세서는 일관성과 신뢰성을 보장할 수 있는 메모리 매핑 파일의 원자적 업데이트 방법 및 제어 장치를 제공하기 위함이다.The present specification is intended to provide an atomic update method and apparatus for a memory mapping file that can ensure consistency and reliability.

본 명세서에 기재된 해결과제는 이상에서 언급한 것들에 한정되지 않으며, 언급되지 아니한 다른 해결과제들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다. The solutions described herein are not limited to those mentioned above, and other solutions not mentioned may be clearly understood by those skilled in the art from the following description.

상술한 과제를 해결하기 위한 메모리 매핑 파일 업데이트 방법은, 프로세스 주소 공간, 페이지 테이블 및 파일 시스템 영역을 가진 비휘발성 메모리 및 파일 업데이트 처리하는 프로세서를 포함하는 컴퓨터 시스템에서, 상기 파일 시스템 영역에 저장되어 프로세스 주소 공간에 매핑된 파일(이하 '원본 파일')을 업데이트하는 방법으로서, 상기 프로세서가 (a) 상기 원본 파일의 일부 페이지에 업데이트가 발생했을 때, 새로운 페이지(이하 '업데이트 페이지')를 파일시스템 영역에 할당하고 상기 업데이트된 내용을 상기 업데이트 페이지에 복사하는 단계; (b) 상기 페이지 테이블에 저장된 원본 파일의 페이지 중 상기 업데이트가 발생한 페이지의 매핑 주소를 상기 업데이트 페이지의 매핑 주소로 변경하는 단계; (c) 상기 원본 파일의 페이지 중 상기 업데이트가 발생한 페이지와 상기 업데이트 페이지의 연결관계를 기재한 내용(이하 '연결 정보')을 저장하는 단계; (d) 메모리 동기화 요청에 의해 상기 원본 파일을 잠금 설정하는 단계; (e) 상기 연결 정보를 참조하여, 업데이트 페이지를 상기 원본 파일의 페이지 중 상기 업데이트가 발생한 페이지에 복사하는 단계; 및 (f) 상기 페이지 테이블의 매핑 주소를 상기 원본 파일의 페이지 중 상기 업데이트가 발생한 페이지로 변경하고, 상기 원본 파일의 잠금 설정을 해제하는 단계;를 포함할 수 있다.A memory mapping file update method for solving the above-mentioned problems is a computer system including a processor for processing a file update and a nonvolatile memory having a process address space, a page table, and a file system area, A method for updating a file mapped to an address space (hereinafter, referred to as an 'original file'), the method comprising the steps of: (a) when an update occurs on a page of the original file, Area and copying the updated content to the update page; (b) changing a mapping address of a page of the original file stored in the page table to a mapping address of the update page; (c) storing contents (hereinafter referred to as " connection information ") describing a connection relationship between the page where the update occurred and the update page among the pages of the original file; (d) locking the original file by a memory synchronization request; (e) referring to the connection information, copying an update page to a page of the original file on which the update occurred; And (f) changing a mapping address of the page table to a page where the update occurred in the page of the original file, and releasing the lock setting of the original file.

본 명세서의 일 실시예에 따르면, 상기 (c)단계는 상기 연결 정보를 프로세스 주소 공간에 저장하는 단계일 수 있다. 이 경우, 상기 (d) 단계는 상기 프로세서가 원본 파일 잠금 설정 후, 상기 연결 정보를 상기 프로세스 주소 공간에서 상기 파일 시스템 영역으로 저장하는 것을 더 포함할 수 있다. 또한, 상기 (f)단계는 상기 프로세스 주소 공간 및 파일 시스템 영역에 저장된 연결 정보를 삭제하고, 상기 파일 시스템 영역에 저장된 업데이트 페이지를 삭제하는 것을 포함하는 단계일 수 있다.According to an embodiment of the present invention, the step (c) may be a step of storing the connection information in the process address space. In this case, the step (d) may further include, after the processor sets the original file lock, storing the connection information in the process address space into the file system area. The step (f) may include deleting the connection information stored in the process address space and the file system area, and deleting the update page stored in the file system area.

본 명세서에 따른 메모리 매핑 파일 업데이트 방법은, (d-1) 상기 프로세서의 캐시에 저장된 데이터를 상기 파일 시스템 영역에 저장하는 단계;를 더 포함할 수 있다.The memory mapping file updating method according to the present invention may further include: (d-1) storing data stored in the cache of the processor in the file system area.

본 명세서에 따른 상기 비휘발성 메모리는 컴퓨터 시스템에서 메인 메모리로 사용될 수 있다.The non-volatile memory according to the present specification can be used as main memory in a computer system.

상술한 과제를 해결하기 위한 메모리 매핑 파일 업데이트 장치는, 프로세스 주소 공간, 페이지 테이블 및 파일 시스템 영역을 가진 비휘발성 메모리; 및 파일 업데이트 처리하는 프로세서;를 포함하는 메모리 매핑 파일 업데이트 장치로서, 상기 프로세서는, 상기 파일 시스템 영역에 저장되어 프로세스 주소 공간에 매핑된 파일(이하 '원본 파일')의 일부 페이지에 업데이트가 발생하였을 때, 새로운 페이지(이하 '업데이트 페이지')를 파일 시스템 영역에 할당하고 상기 업데이트된 내용을 상기 업데이트 페이지에 저장하고, 상기 페이지 테이블에 저장된 원본 파일의 페이지 중 상기 업데이트가 발생한 페이지의 매핑 주소를 상기 업데이트 페이지의 매핑 주소로 변경하고, 상기 원본 파일의 페이지 중 상기 업데이트가 발생한 페이지와 상기 업데이트 페이지의 연결관계를 기재한 내용(이하 '연결 정보')을 저장하고, 메모리 동기화 요청에 의해 상기 원본 파일을 잠금 설정하고, 상기 연결 정보를 참조하여, 업데이트 페이지를 상기 원본 파일의 페이지 중 상기 업데이트가 발생한 페이지에 복사하고, 상기 페이지 테이블의 매핑 주소를 상기 원본 파일의 페이지 중 상기 업데이트가 발생한 페이지로 변경하고, 상기 원본 파일의 잠금 설정을 해제할 수 있다. According to an aspect of the present invention, there is provided a memory mapping file update apparatus including: a nonvolatile memory having a process address space, a page table, and a file system area; And a processor for updating the file, wherein the processor is configured to update the memory mapping file when an update occurs on a page of a file stored in the file system area and mapped to the process address space , A new page (hereinafter referred to as an 'update page') is allocated to a file system area, the updated content is stored in the update page, and a mapping address of a page in the original file stored in the page table, (Hereinafter, referred to as " connection information ") describing a connection relationship between the page where the update occurred and the update page among the pages of the original file, Locks the connection information, refers to the connection information The update page is copied to the page where the update occurred, the mapping address of the page table is changed to the page where the update occurred in the page of the original file, and the lock setting of the original file is canceled can do.

본 명세서에 따른 파일 업데이트 방법 및 제어 장치에 따르면, 인-메모리(In-memory) 파일시스템에서 안전한 메모리 매핑 파일 I/O(memory mapped file I/O)가 가능하다. 또한, 인-메모리(In-memory) 파일시스템에서 메모리 매핑 파일 I/O(memory mapped file I/O)를 통해 고성능 메모리 저장장치의 특성을 최대 활용이 가능할 수 있다. According to the file update method and control apparatus of the present disclosure, a secure memory-mapped file I / O (I / O) is possible in an in-memory file system. In addition, memory-mapped file I / O (I / O) in an in-memory file system can make full use of the characteristics of a high-performance memory storage device.

본 명세서에 기재된 효과는 이상에서 언급된 것들에 한정되지 않으며, 언급되지 아니한 다른 효과들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.The effects described in the present specification are not limited to those mentioned above, and other effects not mentioned can be clearly understood by those skilled in the art from the following description.

도 1은 컴퓨터 시스템의 아키텍처의 블록도이다.
도 2 내지 도 6은 본 명세서의 일 실시예에 따른 파일 업데이트 방법을 설명하기 위해 시간 흐름에 따른 파일의 페이지 저장 및 이동을 나타내는 참고도이다.
1 is a block diagram of an architecture of a computer system.
FIGS. 2 to 6 are reference views showing page storage and movement of a file according to a time flow to explain a file update method according to an embodiment of the present invention.

이하, 첨부한 도면을 참조하여, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 본 발명의 실시예를 설명한다. 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 용이하게 이해할 수 있는 바와 같이, 후술하는 실시예는 본 발명의 개념과 범위를 벗어나지 않는 한도 내에서 다양한 형태로 변형될 수 있다. 가능한 한 동일하거나 유사한 부분은 도면에서 동일한 도면부호를 사용하여 나타낸다.Hereinafter, embodiments of the present invention will be described with reference to the accompanying drawings so that those skilled in the art can easily carry out the present invention. It will be apparent to those skilled in the art that various modifications and variations can be made in the present invention without departing from the spirit or scope of the invention. Wherever possible, the same or similar parts are denoted using the same reference numerals in the drawings.

본 명세서에서 사용되는 전문용어는 단지 특정 실시예를 언급하기 위한 것이며, 본 발명을 한정하는 것을 의도하지는 않는다. 여기서 사용되는 단수 형태들은 문구들이 이와 명백히 반대의 의미를 나타내지 않는 한 복수 형태들도 포함한다.The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the invention. The singular forms as used herein include plural forms as long as the phrases do not expressly express the opposite meaning thereto.

본 명세서에서 사용되는 "포함하는"의 의미는 특정 특성, 영역, 정수, 단계, 동작, 요소 및/또는 성분을 구체화하며, 다른 특정 특성, 영역, 정수, 단계, 동작, 요소, 성분 및/또는 군의 존재나 부가를 제외시키는 것은 아니다.Means that a particular feature, region, integer, step, operation, element and / or component is specified and that other specific features, regions, integers, steps, operations, elements, components, and / It does not exclude the existence or addition of a group.

본 명세서에서 사용되는 기술용어 및 과학용어를 포함하는 모든 용어들은 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 일반적으로 이해하는 의미와 동일한 의미를 가진다. 사전에 정의된 용어들은 관련기술문헌과 현재 개시된 내용에 부합하는 의미를 가지는 것으로 추가 해석되고, 정의되지 않는 한 이상적이거나 매우 공식적인 의미로 해석되지 않는다.All terms including technical and scientific terms used herein have the same meaning as commonly understood by one of ordinary skill in the art to which this invention belongs. Predefined terms are further interpreted as having a meaning consistent with the relevant technical literature and the present disclosure, and are not to be construed as ideal or very formal meanings unless defined otherwise.

이하에서는 도면을 중심으로 본 명세서에 따른 파일 업데이트 방법 및 그 제어 장치에 대해서 설명하고자 한다.Hereinafter, a file updating method and a control apparatus thereof according to the present specification will be described with reference to the drawings.

도 1은 컴퓨터 시스템의 아키텍처의 블록도이다.1 is a block diagram of an architecture of a computer system.

도 1을 참조하면, 프로세서(120) 및 비휘발성 메모리(140)를 포함하는 컴퓨터 시스템(100)을 확인할 수 있다.Referring to FIG. 1, a computer system 100 including a processor 120 and a non-volatile memory 140 may be identified.

상기 비휘발성 메모리(140)는 프로세스 주소 공간(142), 페이지 테이블(144) 및 파일 시스템 영역(146)을 가질 수 있다. 상기 프로세스 주소 공간(142), 페이지 테이블(144) 및 파일 시스템 영역(146)은 본 명세서가 속하는 기술분야에 통상의 지식을 가진 자에게 널리 알려진 용어이므로, 각 구성에 대한 상세한 설명은 생략하도록 하겠다.The non-volatile memory 140 may have a process address space 142, a page table 144, and a file system area 146. The process address space 142, the page table 144, and the file system area 146 are well-known to those skilled in the art, and detailed description of each configuration will be omitted .

상기 프로세서(120)는 파일 업데이트 처리하는 프로세서로서, 상기 파일 시스템 영역에 저장되어 프로세스 주소 공간에 매핑된 파일(이하 '원본 파일')을 업데이트할 수 있다. 이를 위해 상기 프로세서(120)는 코어(121) 및 캐시(122)를 포함할 수 있다. 상기 코어(121) 및 캐시(122)는 본 명세서가 속하는 기술분야에 통상의 지식을 가진 자에게 널리 알려진 용어이므로, 각 구성에 대한 상세한 설명은 생략하도록 하겠다.The processor 120 may update a file (hereinafter referred to as a 'source file') stored in the file system area and mapped to a process address space. To that end, the processor 120 may include a core 121 and a cache 122. Since the core 121 and the cache 122 are well known to those skilled in the art, a detailed description of each configuration will be omitted.

상기 비휘발성 메모리(140) 및 프로세서(120)는 메모리 버스(I/O 버스, 160)를 통해서 연결될 수 있다. 상기 메모리 버스(160) 역시 본 명세서가 속하는 기술분야에 통상의 지식을 가진 자에게 널리 알려진 용어이므로, 상기 구성에 대한 상세한 설명은 생략하도록 하겠다.The non-volatile memory 140 and the processor 120 may be connected through a memory bus (I / O bus) 160. The memory bus 160 is also a well-known term to those skilled in the art, so that a detailed description of the configuration will be omitted.

도 2 내지 도 6은 본 명세서의 일 실시예에 따른 파일 업데이트 방법을 설명하기 위해 시간 흐름에 따른 파일의 페이지 저장 및 이동을 나타내는 참고도이다.FIGS. 2 to 6 are reference views showing page storage and movement of a file according to a time flow to explain a file update method according to an embodiment of the present invention.

도 2를 참조하면, 비휘발성 메모리 내 파일이 저장된 상태를 확인할 수 있다. 상기 파일 시스템 영역에는 파일이 실제 저장되는 물리적 영역이다. 상기 파일 시스템 영역에 저장된 파일이 '원본 파일'이며, 파일은 복수의 페이지(A~F)로 구성될 수 있다. 상기 프로세스 주소 공간은 프로세스가 파일이 저장된 것을 인식하는 가상의 영역이다. 상기 프로세스 주소 공간은 프로세스가 사용하는 가상 영역으로 각 프로세스 마다 가지는 독립적인 영역이다. 프로세스는 원본 파일을 상기 프로세스 주소 공간에 매핑함으로써 원본 파일에 직접 접근할 수 있게 된다.Referring to FIG. 2, it can be seen that a file in the non-volatile memory is stored. The file system area is a physical area where files are actually stored. The file stored in the file system area may be an 'original file', and the file may be composed of a plurality of pages (A to F). The process address space is a virtual area in which a process recognizes that a file is stored. The process address space is a virtual area used by a process, and is an independent area for each process. The process can directly access the original file by mapping the original file to the process address space.

상기 페이지 테이블은 가상 영역인 상기 프로세스 주소 공간과 실제 영역인 상기 파일 시스템 영역을 매핑(mapping) 시켜주는 정보가 저장된 곳이다. 따라서, 프로세서는 특정 파일(또는 특정 페이지, 메모리)에 접근하고자 할 때, 상기 프로세스 주소 공간에 접근하고, 상기 페이지 테이블에 저장된 매핑 주소를 확인하여 상기 파일 시스템 영역에 저장된 실제 파일(또는 페이지)에 접근하게 된다.The page table is a place where information for mapping the process address space, which is a virtual area, and the file system area, which is an actual area, is stored. Accordingly, when the processor accesses a specific file (or a specific page, memory), the processor accesses the process address space, identifies a mapping address stored in the page table, and stores the address in the physical file (or page) Approach.

도 2에 도시된 예시에서는 상기 파일 시스템 영역에 저장된 페이지 'A~F'에 대응되는 가상 주소인 '1~6'가 상기 프로세서 주소 공간에 저장된 것을 상기 페이지 테이블을 통해서 확인할 수 있다.In the example shown in FIG. 2, it can be confirmed through the page table that virtual addresses '1 to 6' corresponding to pages 'A to F' stored in the file system area are stored in the processor address space.

일 예로, 상기 파일 시스템 영역은 Ext4-DAX 체제일 수 있다. As an example, the file system area may be an Ext4-DAX system.

본 명세서에 따른 매모리 매핑 파일 업데이트 방법은 파일을 업데이트 시키는 명령어를 처리하는 프로세서에 의해 처리될 수 있다. 따라서, 이하 본 명세서를 설명함에 있어서, 파일을 복사, 이동, 저장시키는 주체를 프로세서로 고려할 수 있다. 또한 본 명세서에서는 프로세서라고 지칭하는 것은 프로세스를 수행하는 장치로서 지칭하는 명칭이며, 하나의 프로세서가 2이상의 프로세스를 탑재할 수 있음은 자명하다. 따라서 2이상의 프로세스를 구분하여 언급할 필요가 있을 때에는 '제1 프로세스' 및 '제2 프로세스'라고 각각 구분하겠다.The method of updating a memory mapping file according to the present invention can be handled by a processor that processes an instruction to update a file. Therefore, in describing the present specification, a subject which copies, moves, and stores a file can be considered as a processor. Also, in this specification, what is referred to as a processor is a name that refers to a device that performs a process, and it is apparent that a single processor can mount two or more processes. Therefore, when it is necessary to distinguish two or more processes, it will be referred to as a 'first process' and a 'second process', respectively.

도 3을 참조하면, 가상 주소 '5'에 대응되는 페이지의 실제 주소 'E' 페이지에 업데이트가 발생한 상황임을 확인할 수 있다. 상기 프로세서는 상기 원본 파일의 일부 페이지에 업데이트가 발생했을 때, 새로운 페이지(이하 '업데이트 페이지')를 상기 파일 시스템 영역에 할당하고 상기 업데이트된 내용을 상기 업데이트 페이지에 저장할 수 있다.Referring to FIG. 3, it can be confirmed that the update occurs in the page 'E' of the page corresponding to the virtual address '5'. The processor may allocate a new page (hereinafter referred to as an 'update page') to the file system area and store the updated content in the update page when an update occurs on a page of the original file.

본 명세서의 일 실시예에 따르면, 상기 프로세서는 상기 원본 파일의 일부 페이지에 업데이트가 발생했을 때, 업데이트가 발생한 상기 원본 파일의 일부 페이지를 상기 업데이트 페이지에 복사하고 상기 업데이트된 내용을 상기 업데이트 페이지에 저장할 수 있다. According to an embodiment of the present invention, when an update occurs on a page of the original file, the processor copies some pages of the original file in which an update has occurred to the update page and updates the updated page to the update page Can be stored.

그리고 상기 프로세서는 상기 페이지 테이블에 저장된 원본 파일의 페이지 중 상기 업데이트가 발생한 페이지의 매핑 주소를 상기 업데이트 페이지의 매핑 주소로 변경할 수 있다. 도 3을 참조하면, 상기 페이지 테이블의 가상 주소 '5'의 실제 주소가 'E'에서 'G'로 변경된 것을 확인할 수 있다.The processor may change a mapping address of a page of the original file stored in the page table to a mapping address of the update page. Referring to FIG. 3, it can be seen that the physical address of the virtual address '5' of the page table is changed from 'E' to 'G'.

그리고 상기 프로세서는 상기 원본 파일의 페이지 중 상기 업데이트가 발생한 페이지와 상기 업데이트 페이지의 연결관계를 기재한 내용(이하 '연결 정보')을 저장할 수 있다. The processor may store contents (hereinafter referred to as " connection information ") describing a connection relationship between the page where the update occurred and the update page among pages of the original file.

본 명세서의 일 실시예에 따르면, 상기 프로세서는 상기 연결 정보를 프로세스 주소 공간에 저장할 수 있다. 도 3을 참조하면, 상기 프로세서 주소 공간에 'E-G'라고 기재된 연결 정보를 확인할 수 있다. 상기 연결 정보가 저장된 상기 프로세스 주소 공간은 파일 시스템 영역이 매핑된 공간이 아니다.According to one embodiment of the present disclosure, the processor may store the connection information in a process address space. Referring to FIG. 3, connection information described as 'E-G' can be confirmed in the processor address space. The process address space in which the connection information is stored is not a space to which the file system area is mapped.

상기 과정은 메모리 매핑 파일의 동기화 요청이 발생하기 전까지 다수의 업데이트가 발생할 때마다 동일한 과정을 반복할 수 있다. 도 4를 참조하면, 실제 주소'B' 및 'D'에 저장된 페이지에 업데이트가 발생하여 업데이트 페이지를 할당 후 업데이트 내용을 각각 'H' 및 'I'로 저장하고, 이에 대응되는 매핑 주소 변경 및 연결정보가 추가된 것을 확인할 수 있다.The above process can be repeated every time a plurality of updates occur until a synchronization request of a memory mapping file occurs. Referring to FIG. 4, an update occurs in a page stored in physical addresses 'B' and 'D', and updates contents are stored as 'H' and 'I' after allocation of an update page, Connection information is added.

도 5는 메모리 매핑 파일의 동기화 요청이 실행된 상황이다.5 is a situation where a synchronization request of a memory mapping file is executed.

메모리 매핑 파일의 동기화를 실행시키는 시스템 호출은 리눅스 운영체제(Linux OS) 또는 리눅스 유사 운영체제(Unix-like OS)에서는 'msync', 윈도우 운영체제(Windows OS)에서는 'FlushFileBuffers'에 해당한다. 다만, 상기 예시는 운영체재에 따른 예시에 불과하며, 운영체제에 관계없이 메모리 매핑 파일의 동기화를 실행시키는지 여부에 따라 본 명세서에 해당하는 시스템 호출로 고려해야 한다.The system calls that cause the memory mapping file to be synchronized correspond to 'msync' on Linux OS or Unix-like OS and 'FlushFileBuffers' on Windows OS. However, the above example is merely an example according to the operating system, and it should be considered as a system call corresponding to the present specification depending on whether or not the memory mapping file is synchronized regardless of the operating system.

먼저, 상기 프로세서는 메모리 동기화 요청에 의해 상기 원본 파일을 잠금 설정할 수 있다. 상기 원본 파일의 잠금이란 읽기/쓰기(read/write)를 금지하는 것을 의미한다. 상기 읽기/쓰기 금지를 통해 업데이트가 완료되기 전에 업데이트가 되지 않은 원본 파일에 제1 프로세스 및 제2 프로세스가 접근하는 것을 방지할 수 있다.First, the processor can lock the original file by a memory synchronization request. The locking of the original file means that the reading / writing is prohibited. The read / write prohibition can prevent the first process and the second process from accessing the original file that has not been updated before the update is completed.

한편, 본 명세서의 일 실시예에 따르면, 상기 프로세서는 원본 파일 잠금 설정 후, 상기 연결 정보를 상기 프로세스 주소 공간에서 상기 파일 시스템 영역으로 저장할 수 있다. 상기 연결 정보를 상기 파일 시스템 영역에 저장하는 것 만으로도 저널링(journaling) 효과를 얻을 수 있다. 상기 연결 정보가 상기 프로세스 주소 공간에 저장된 경우는 아직 메모리 동기화 요청이 발생하지 않은 경우이다. 이 경우에는 시스템 오류가 발생하여 시스템이 리부트되면 상기 연결 정보는 사라지고, 업데이트된 내용은 상기 원본 파일에 반영되지 않는다. 상기 연결 정보가 상기 파일 시스템 영역에 저장된 경우는 메모리 동기화 요청이 발생한 경우이다. 만약 메모리 동기화 도중에 시스템 오류가 발생하더라도 상기 연결 정보, 업데이트 페이지와 원본 페이지는 파일 시스템 영역에 남아있다. 따라서, 상기 파일 시스템 영역에 남아있는 연결 정보를 통해 메모리 동기화 작업을 완료할 수 있다. 또한, 상기 연결 정보는 그 크기가 작기 때문에 일반적인 저널링에 비해 프로세서의 부담을 적게 줄 수 있다.According to an embodiment of the present invention, the processor may store the connection information in the file system area in the process address space after setting the original file lock. A journaling effect can be obtained by simply storing the connection information in the file system area. If the connection information is stored in the process address space, a memory synchronization request has not yet occurred. In this case, when a system error occurs and the system is rebooted, the connection information disappears, and the updated contents are not reflected in the original file. When the connection information is stored in the file system area, a memory synchronization request is generated. Even if a system error occurs during the memory synchronization, the connection information, the update page and the original page remain in the file system area. Therefore, the memory synchronization operation can be completed through the connection information remaining in the file system area. In addition, since the size of the connection information is small, the burden on the processor can be reduced as compared with general journaling.

본 명세서의 일 실시예에 따르면, 상기 프로세서는 상기 프로세서의 캐시에 저장된 데이터를 상기 파일 시스템 영역에 저장할 수 있다. 상기 업데이트 내용이 상기 파일 시스템 영역에 곧 바로 저장되지 못하고, 프로세서의 캐시에 남아있을 가능성이 있다. 따라서, 업데이트 내용이 '지속적으로 저장 가능한 영역인 비휘발성이면서 리부트(reboot) 이후에도 메모리가 초기화되지 않고 남아있는 파일 시스템 영역으로 확실하게 저장될 수 있도록 하는 것이다.According to one embodiment of the present disclosure, the processor may store data stored in the cache of the processor in the file system area. The update may not be immediately stored in the file system area and may remain in the processor's cache. Thus, the update is nonvolatile, which is a continuously storable area, so that the memory can be reliably stored in the remaining file system area without being initialized even after a reboot.

다음으로 상기 프로세서는 상기 연결 정보를 참조하여, 업데이트 페이지를 상기 원본 파일의 페이지 중 상기 업데이트가 발생한 페이지에 복사할 수 있다.Next, the processor can refer to the connection information and copy the update page to the page where the update occurred among the pages of the original file.

상기 업데이트 파일의 복사가 완료된 이후, 도 6에 도시된 것과 같이, 상기 프로세서는 상기 페이지 테이블의 매핑 주소를 상기 원본 파일의 페이지 중 상기 업데이트가 발생한 페이지로 변경하고, 상기 프로세스 주소 공간 및 파일 시스템 영역에 저장된 연결 정보를 삭제할 수 있다. 상기 프로세서는 상기 파일 시스템 영역에 저장된 업데이트 페이지도 삭제할 수 있다. 그리고 상기 프로세서는 상기 원본 파일의 잠금 설정을 해제할 수 있다.After the copying of the update file is completed, as shown in FIG. 6, the processor changes the mapping address of the page table to the page of the original file that the update occurred, and the process address space and the file system area Lt; / RTI > The processor may also delete the update page stored in the file system area. The processor can then unlock the original file.

본 명세서에 따른 메모리 매핑 파일 업데이트 장치 및 방법에 따르면, 메모리 동기화 작업을 시작 할 때 상기 프로세서가 상기 연결 정보를 파일시스템 영역에 저장하고, 메모리 동기화를 완료했을 때 상기 프로세서가 상기 연결 정보를 삭제함으로써 메모리 동기화 작업 중 시스템 오류가 발생해도 원자적(Atomic) 업데이트가 가능하다. 리부트(reboot) 후에 파일시스템 영역에 남아 있는 상기 연결 정보를 참조하여 시스템 오류 때문에 완료하지 못한 메모리 동기화 작업을 재 수행 할 수 있기 때문이다. 만약 남아있는 상기 연결 정보가 없다면 현재 파일시스템은 일관성을 유지하고 있는 상태로 판단할 수 있다.

그리고, 본 발명의 또 다른 실시예로서, 컴퓨터에서 상술한 메모리 매핑 파일 업데이트 방법의 각 단계들을 수행하도록 작성되어 컴퓨터로 독출 가능한 기록 매체에 기록된 컴퓨터프로그램일 수 있다. 즉, 본 발명의 실시예에 따른 장치로서, 컴퓨터로 읽을 수 있는 기록 매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 도 1에 도시된 컴퓨터 시스템에 의하여 읽힐 수 있는 데이터가 저장되는 다양한 종류의 기록장치를 포함할 수 있다. 기록매체의 예로는 ROM, RAM, 광학 디스크, 자기 테이프, 플로피 디스크, 하드 디스크, 비휘발성 메모리 등을 포함한다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다.
According to the apparatus and method for updating a memory mapping file according to the present specification, when the memory synchronization operation is started, the processor stores the connection information in the file system area, and when the processor completes the memory synchronization, Atomic updates are possible even if system errors occur during memory synchronization. This is because, after rebooting, the connection information remaining in the file system area is referred to, and the memory synchronization operation that can not be completed due to a system error can be re-executed. If there is no remaining connection information, the current file system can be determined to be in a state of maintaining consistency.

As another embodiment of the present invention, the computer program may be a computer program written in a computer-readable recording medium so as to perform each step of the memory mapping file updating method described above. That is, the apparatus according to the embodiment of the present invention can be implemented as a computer-readable code on a computer-readable recording medium. The computer-readable recording medium may include various types of recording apparatuses in which data that can be read by the computer system shown in FIG. 1 is stored. Examples of the recording medium include ROM, RAM, optical disk, magnetic tape, floppy disk, hard disk, nonvolatile memory and the like. The computer-readable recording medium may also be distributed over a networked computer system so that computer readable code can be stored and executed in a distributed manner.

본 명세서에서 설명되는 실시예와 첨부된 도면은 본 발명에 포함되는 기술적 사상의 일부를 예시적으로 설명하는 것에 불과하다. 따라서, 본 명세서에 개시된 실시예들은 본 발명의 기술적 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이므로, 이러한 실시예에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아님은 자명하다. 본 발명의 명세서 및 도면에 포함된 기술적 사상의 범위 내에서 당업자가 용이하게 유추할 수 있는 변형 예와 구체적인 실시 예는 모두 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.The embodiments and the accompanying drawings described in the present specification are merely illustrative of some of the technical ideas included in the present invention. Accordingly, the embodiments disclosed herein are for the purpose of describing rather than limiting the technical spirit of the present invention, and it is apparent that the scope of the technical idea of the present invention is not limited by these embodiments. It will be understood by those of ordinary skill in the art that various changes in form and details may be made therein without departing from the spirit and scope of the invention as defined by the appended claims.

100 : 컴퓨터 시스템
120 : 프로세서
121 : 코어
122 : 캐시
140 : 비휘발성 메모리
142 : 프로세스 주소 공간
144 : 페이지 테이블
146 : 파일 시스템 영역
100: Computer system
120: Processor
121: Core
122: Cache
140: Nonvolatile memory
142: Process address space
144: Page table
146: File system area

Claims (13)

프로세스 주소 공간, 페이지 테이블 및 파일 시스템 영역을 가진 비휘발성 메모리 및 파일 업데이트 처리하는 프로세서를 포함하는 컴퓨터 시스템에서, 상기 파일 시스템 영역에 저장되어 상기 프로세스 주소 공간에 매핑된 원본 파일을 업데이트하는 방법으로서, 상기 프로세서가
(a) 상기 원본 파일의 일부 페이지에 업데이트가 발생했을 때, 새로운 업데이트 페이지를 상기 파일 시스템 영역에 할당하고 상기 원본 파일의 업데이트가 발생한 페이지의 내용을 상기 업데이트 페이지에 복사하는 단계;
(b) 상기 페이지 테이블에 저장된 상기 원본 파일의 상기 업데이트가 발생한 페이지의 매핑 주소를 상기 업데이트 페이지의 매핑 주소로 변경하는 단계;
(c) 상기 원본 파일의 상기 업데이트가 발생한 페이지와 상기 업데이트 페이지의 연결관계를 기재한 연결 정보를 상기 프로세스 주소 공간에 저장하고, 업데이트 내용을 상기 업데이트 페이지에 저장하는 단계;
(d) 메모리 동기화 요청에 의해 상기 원본 파일을 잠금 설정하는 단계;
(e) 상기 연결 정보를 참조하여, 상기 업데이트 페이지를 상기 원본 파일의 상기 업데이트가 발생한 페이지에 복사하는 단계; 및
(f) 상기 페이지 테이블의 매핑 주소를 상기 원본 파일의 상기 업데이트가 발생한 페이지로 변경하고, 상기 원본 파일의 잠금 설정을 해제하는 단계;를 포함하되,
상기 (d) 단계는, 상기 프로세서가 상기 원본 파일의 잠금 설정 후, 상기 연결 정보를 상기 프로세스 주소 공간에서 상기 파일 시스템 영역으로 저장하는 것을 더 포함하고;
상기 (f)단계는, 상기 프로세스 주소 공간 및 상기 파일 시스템 영역에 저장된 상기 연결 정보를 삭제하고, 상기 파일 시스템 영역에 저장된 상기 업데이트 페이지를 삭제하는 것을 포함하는 단계이고;
(d-1) 상기 프로세서의 캐시에 저장된 데이터를 상기 파일 시스템 영역에 저장하는 단계;를 더 포함하고, 그리고
상기 비휘발성 메모리는 상기 컴퓨터 시스템에서 메인 메모리로 사용되는 것을 특징으로 하는 메모리 매핑 파일 업데이트 방법.
A method for updating a source file stored in the file system area and mapped to the process address space in a computer system including a nonvolatile memory having a process address space, a page table, and a file system area, The processor
(a) allocating a new update page to the file system area when an update occurs on a page of the original file, and copying the contents of the page where the update of the original file occurred to the update page;
(b) changing a mapping address of a page where the update of the original file stored in the page table occurs to a mapping address of the update page;
(c) storing, in the process address space, connection information indicating a connection relationship between the page where the update of the original file occurred and the update page, and storing the update content in the update page;
(d) locking the original file by a memory synchronization request;
(e) referring to the connection information, copying the update page to a page where the update of the original file occurred; And
(f) changing a mapping address of the page table to a page where the update of the original file occurs, and releasing the lock setting of the original file,
The step (d) further comprises: after the processor locks the original file, storing the connection information in the process address space into the file system area;
The step (f) includes deleting the connection address information stored in the process address space and the file system area, and deleting the update page stored in the file system area;
(d-1) storing data stored in the cache of the processor in the file system area, and
Wherein the non-volatile memory is used as main memory in the computer system.
삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 프로세스 주소 공간, 페이지 테이블 및 파일 시스템 영역을 가진 비휘발성 메모리; 및
상기 파일 시스템 영역에 저장되어 상기 프로세스 주소 공간에 매핑된 원본 파일을 업데이트 처리하는 프로세서;를 포함하는 메모리 매핑 파일 업데이트 장치로서,
상기 프로세서는,
상기 원본 파일의 일부 페이지에 업데이트가 발생하였을 때, 새로운 업데이트 페이지를 상기 파일 시스템 영역에 할당하고 상기 원본 파일의 업데이트가 발생한 페이지의 내용을 상기 업데이트 페이지에 복사하고,
상기 페이지 테이블에 저장된 상기 원본 파일의 상기 업데이트가 발생한 페이지의 매핑 주소를 상기 업데이트 페이지의 매핑 주소로 변경하고,
상기 원본 파일의 상기 업데이트가 발생한 페이지와 상기 업데이트 페이지의 연결관계를 기재한 연결 정보를 상기 프로세스 주소 공간에 저장하고, 업데이트 내용을 상기 업데이트 페이지에 저장하고,
메모리 동기화 요청에 의해 상기 원본 파일을 잠금 설정하고,
상기 연결 정보를 참조하여, 상기 업데이트 페이지를 상기 원본 파일의 상기 업데이트가 발생한 페이지에 복사하고,
상기 페이지 테이블의 매핑 주소를 상기 원본 파일의 상기 업데이트가 발생한 페이지로 변경하고,
상기 원본 파일의 잠금 설정을 해제하되,
상기 프로세서는, 상기 프로세서가 상기 원본 파일의 잠금 설정 후, 상기 연결 정보를 상기 프로세스 주소 공간에서 상기 파일 시스템 영역으로 저장하고, 상기 프로세스 주소 공간 및 상기 파일 시스템 영역에 저장된 상기 연결 정보를 삭제하고, 상기 파일 시스템 영역에 저장된 상기 업데이트 페이지를 삭제하며, 상기 프로세서의 캐시에 저장된 데이터를 상기 파일 시스템 영역에 더 저장하고,
상기 비휘발성 메모리는, 상기 비휘발성 메모리 및 상기 프로세서를 포함하는 컴퓨터 시스템에서 메인 메모리로 사용되는 것을 특징으로 하는 메모리 매핑 파일 업데이트 장치.
A non-volatile memory having a process address space, a page table, and a file system area; And
And a processor for updating an original file stored in the file system area and mapped to the process address space,
The processor comprising:
Allocating a new update page to the file system area when an update occurs on a part of the page of the original file, copying the contents of the page where the update of the original file occurred to the update page,
A mapping address of a page in which the update of the original file stored in the page table is generated is changed to a mapping address of the update page,
Storing connection information describing a connection relationship between the page where the update of the original file occurred and the update page in the process address space, storing update information in the update page,
Lock the original file by a memory synchronization request,
Referring to the connection information, copying the update page to a page where the update of the original file occurred,
Changing a mapping address of the page table to a page where the update of the original file occurred,
The lock setting of the original file is canceled,
Wherein the processor stores the connection information in the file system area in the process address space after the processor locks the original file and deletes the connection information stored in the process address space and the file system area, Deleting the update page stored in the file system area, further storing data stored in the cache of the processor in the file system area,
Wherein the non-volatile memory is used as main memory in a computer system including the non-volatile memory and the processor.
삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 컴퓨터에서 청구항 1에 따른 메모리 매핑 파일 업데이트 방법의 각 단계들을 수행하도록 작성되어 컴퓨터로 독출 가능한 기록 매체에 기록된 컴퓨터프로그램.A computer program recorded on a computer-readable recording medium, the computer program being written in the computer to perform the steps of the memory mapping file update method according to claim 1.
KR1020160160149A 2016-11-29 2016-11-29 Method for atomic update of memory mapped files stored in non-volatile memory and control apparatus thereof KR101881038B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020160160149A KR101881038B1 (en) 2016-11-29 2016-11-29 Method for atomic update of memory mapped files stored in non-volatile memory and control apparatus thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160160149A KR101881038B1 (en) 2016-11-29 2016-11-29 Method for atomic update of memory mapped files stored in non-volatile memory and control apparatus thereof

Publications (2)

Publication Number Publication Date
KR20180060552A KR20180060552A (en) 2018-06-07
KR101881038B1 true KR101881038B1 (en) 2018-08-17

Family

ID=62621723

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160160149A KR101881038B1 (en) 2016-11-29 2016-11-29 Method for atomic update of memory mapped files stored in non-volatile memory and control apparatus thereof

Country Status (1)

Country Link
KR (1) KR101881038B1 (en)

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150082010A (en) 2014-01-07 2015-07-15 삼성전자주식회사 Micro-journaling for non-volatile memory file system
KR101529651B1 (en) * 2014-08-28 2015-06-19 성균관대학교산학협력단 Memory storage apparatus, memory system and transaction function support method for database

Also Published As

Publication number Publication date
KR20180060552A (en) 2018-06-07

Similar Documents

Publication Publication Date Title
US10198186B2 (en) Systems, methods and computer program products memory space management for storage class memory
US9600202B2 (en) Method and device for implementing memory migration
JP5636034B2 (en) Mediation of mount times for data usage
JP3704573B2 (en) Cluster system
US10983955B2 (en) Data unit cloning in memory-based file systems
CN104424030B (en) Method and device for sharing memory by multi-process operation
US10956072B2 (en) Accelerating concurrent access to a file in a memory-based file system
JP5932171B2 (en) Method and system for object-based transactions in a storage system
EP3382557B1 (en) Method and apparatus for persistently caching storage data in a page cache
EP3446221B1 (en) Adapted block translation table (btt)
US20150074336A1 (en) Memory system, controller and method of controlling memory system
US10198352B2 (en) Efficient pointer swizzling for persistent objects
US20060277221A1 (en) Transactional file system with client partitioning
WO2016127807A1 (en) Method for writing multiple copies into storage device, and storage device
US9235349B2 (en) Data duplication system, data duplication method, and program thereof
KR101881038B1 (en) Method for atomic update of memory mapped files stored in non-volatile memory and control apparatus thereof
US9864548B2 (en) Memory module, electronic device and method
US11237925B2 (en) Systems and methods for implementing persistent data structures on an asymmetric non-volatile memory architecture
Kang et al. Per-block-group journaling for improving fsync response time
KR101881039B1 (en) Method for asynchronous atomic update of memory mapped files stored in non-volatile memory and control apparatus thereof
US7206906B1 (en) Physical address mapping framework
EP3136245B1 (en) Computer
CN107025144B (en) Method for writing and reading a data set
KR101847861B1 (en) Apparatus and method of computing and storage for data management
US20180018121A1 (en) Non-transitory computer-readable storage medium, memory management device, and memory managing method

Legal Events

Date Code Title Description
A201 Request for examination
AMND Amendment
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant