KR101375832B1 - Data storage system and data management method - Google Patents

Data storage system and data management method Download PDF

Info

Publication number
KR101375832B1
KR101375832B1 KR1020120068217A KR20120068217A KR101375832B1 KR 101375832 B1 KR101375832 B1 KR 101375832B1 KR 1020120068217 A KR1020120068217 A KR 1020120068217A KR 20120068217 A KR20120068217 A KR 20120068217A KR 101375832 B1 KR101375832 B1 KR 101375832B1
Authority
KR
South Korea
Prior art keywords
data
memory
flash memory
update
stored
Prior art date
Application number
KR1020120068217A
Other languages
Korean (ko)
Other versions
KR20140000830A (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 KR1020120068217A priority Critical patent/KR101375832B1/en
Publication of KR20140000830A publication Critical patent/KR20140000830A/en
Application granted granted Critical
Publication of KR101375832B1 publication Critical patent/KR101375832B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • 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/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to storage systems
    • 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
    • G06F3/064Management of blocks
    • 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/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]

Landscapes

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

Abstract

본 발명은 데이터가 저장되는 플래시 메모리; 및 상기 데이터의 갱신 내용이 발생 순서대로 순차적으로 저장되는 상변환 메모리(PCRAM: Phase Change Random Access Memory);를 포함하되, 상기 갱신 내용은 상기 플래시 메모리에 저장된 데이터가 상위 메모리에서 갱신될 때 갱신되기 전 데이터와 갱신된 데이터의 차이인 데이터 저장 시스템을 제공한다.The present invention includes a flash memory in which data is stored; And a phase change random access memory (PCRAM) in which update contents of the data are sequentially stored in an order of occurrence, wherein the update contents are updated when data stored in the flash memory is updated in an upper memory. It provides a data storage system that is the difference between all data and updated data.

Description

데이터 저장 시스템 및 데이터 관리 방법{DATA STORAGE SYSTEM AND DATA MANAGEMENT METHOD}TECHNICAL FIELD [0001] The present invention relates to a data storage system and a data management method,

본 발명은 데이터 저장 시스템에 관한 것으로서, 보다 상세하게는 플래시 메모리 및 상변환 메모리를 사용한 데이터 저장 시스템 및 데이터 관리 방법에 관한 것이다.The present invention relates to a data storage system, and more particularly, to a data storage system and a data management method using a flash memory and a phase change memory.

플래시 메모리 기반 저장 장치는 읽기/쓰기 속도가 기존 디스크 저장 장치보다 빠르므로 많이 쓰이고 있다. 예를 들어, 여러 가지 저장 매체의 속도 차이를 비교하여 도시하고 있는 도 3의 표를 보면, 디스크인 경우 2KB의 데이터를 읽는 데 12.7 밀리초, 쓰는 데 13.7 밀리초의 시간이 걸리는 반면, 낸드 플래시 메모리는 같은 데이터량에 대한 접근 시간이 읽기의 경우 75 마이크로초, 쓰기의 경우 250 마이크로초밖에 되지 않아, 훨씬 빠르다.Flash memory-based storage devices are popular because they have faster read / write speeds than conventional disk storage devices. For example, in the table of FIG. 3, which compares the speed difference of various storage media, the disk takes 12.7 milliseconds to read and 13.7 milliseconds to write 2KB of data, while NAND flash memory. The access time for the same amount of data is only 75 microseconds for read and 250 microseconds for write, which is much faster.

그러나 플래시 메모리는 여러 가지 단점을 가지고 있다. 예를 들어, 표에 도시되어 있는 바와 같이, 플래시 메모리는 하드 디스크와는 달리 데이터를 저장하기 전에 먼저 데이터를 삭제해야 한다. 플래시 메모리의 읽기/쓰기 연산은 바이트 단위가 아닌 페이지 단위로 이루어지며, 데이터 삭제 연산은 블럭 단위로 이루어져야 한다. 이러한 연산을 수행할 때마다 열화되므로 지나치게 데이터를 자주 갱신하면 플래시 메모리의 수명이 감축된다.Flash memory, however, has several drawbacks. For example, as shown in the table, unlike a hard disk, a flash memory must first delete the data before storing the data. The read / write operation of the flash memory is performed by page unit rather than byte unit, and data deletion operation should be performed by block unit. Since these operations deteriorate each time, excessive data updates reduce the lifespan of the flash memory.

따라서 다양한 방식의 FTL(Flash Translation Layer) 등 이러한 단점을 우회하여 플래시 메모리의 성능을 향상시키기 위한 노력이 있어왔다.Therefore, efforts have been made to improve the performance of flash memory by circumventing these shortcomings such as various methods of flash translation layer (FTL).

한편, 차세대 비휘발성 메모리인 상변환 메모리(PCRAM: Phase Change Random Access Memory)는 바이트 단위의 임의 쓰기가 가능하고, 데이터 갱신을 위해 먼저 데이터를 삭제해야 한다는 제약이 없으며, 소량 데이터인 경우 DRAM에 근접하는 읽기 성능을 보인다.On the other hand, Phase Change Random Access Memory (PCRAM), a next-generation nonvolatile memory, enables random writes in bytes, and there is no restriction that data must be deleted first for data update. Shows read performance.

하지만 상변환 메모리에도 단점이 존재하므로, 플래시 메모리와 상변환 메모리를 함께 사용하여 서로 보완하도록 하면 각각 단독으로 사용하는 것보다 나은 성능을 제공하는 데이터 저장 시스템 및 데이터 관리 방법을 만들어낼 수 있을 것이다.However, there are drawbacks to phase-conversion memory, so using flash memory and phase-conversion memory together to complement each other can create data storage systems and data management methods that provide better performance than single-use.

이와 관련하여 한국등록특허 10-2010-0037789호("메모리 장치 및 메모리 장치의 관리 방법")에는 데이터를 저장하는 데이터 블록과 데이터의 업데이트된 값을 저장하는 로그 블록으로 나누는 구성이 개시되어 있다.In this regard, Korean Patent Registration No. 10-2010-0037789 ("memory device and a management method of a memory device") discloses a configuration in which a data block for storing data and a log block for storing updated values of the data are disclosed.

또한, 한국등록특허 10-2010-0057346호("메모리 장치 및 메모리 장치의 동작 방법")는 플래시 메모리 및 NVRAM을 포함하며, NVRAM은 쓰기 명령의 데이터 크기가 임계치보다 크면 순차적 쓰기, 임계치 이하면 랜덤 쓰기하는 구성이 개시되어 있다.In addition, Korean Patent No. 10-2010-0057346 ("memory device and a method of operating the memory device") includes a flash memory and NVRAM, NVRAM is a sequential write if the data size of the write command is larger than the threshold, random if the threshold is below The writing configuration is disclosed.

본 발명은 전술한 문제를 해결하기 위한 것으로서, 그 목적은 플래시 메모리와 상변환 메모리의 상호 보완을 통해 향상된 성능을 제공하는 데이터 저장 시스템 및 데이터 관리 방법을 제공하는 것이다.SUMMARY OF THE INVENTION The present invention has been made to solve the above problems, and an object thereof is to provide a data storage system and a data management method that provide improved performance by complementary complementary flash memory and phase change memory.

상기와 같은 목적을 달성하기 위한 본 발명의 제 1 측면에 따른 데이터 저장 시스템은 데이터가 저장되는 플래시 메모리; 및 상기 데이터의 갱신 내용이 발생 순서대로 순차적으로 저장되는 상변환 메모리(PCRAM: Phase Change Random Access Memory);를 포함하되, 상기 갱신 내용은 상기 플래시 메모리에 저장된 데이터가 상위 메모리에서 갱신될 때 갱신되기 전 데이터와 갱신된 데이터의 차이인 것을 특징으로 한다.A data storage system according to the first aspect of the present invention for achieving the above object includes a flash memory in which data is stored; And a phase change random access memory (PCRAM) in which update contents of the data are sequentially stored in an order of occurrence, wherein the update contents are updated when data stored in the flash memory is updated in an upper memory. It is characterized in that the difference between the previous data and the updated data.

상기와 같은 목적을 달성하기 위한 본 발명의 제 2 측면에 따른 플래시 메모리와 상변환 메모리를 포함하는 데이터 저장 시스템을 사용한 데이터 관리 방법은 (a) 상기 플래시 메모리에 저장되어 있는 데이터에 상기 상변환 메모리에 저장되어 있는 갱신 내용을 적용한 데이터를 상위 메모리로 로드하는 단계; (b) 상기 상위 메모리에 로드되어 갱신된 데이터의 갱신 내용을 상기 상변환 메모리에 저장하는 단계; 및 (c) 상기 상변환 메모리에 저장되어 있는 상기 갱신 내용을 상기 플래시 메모리에 저장된 데이터에 병합하여 상기 플래시 메모리에 저장된 데이터를 갱신하는 단계;를 포함하되, 상기 갱신 내용은 상기 플래시 메모리에 저장된 데이터가 상기 상위 메모리에서 갱신될 때 갱신되기 전 데이터와 갱신된 데이터의 차이인 것을 특징으로 한다.A data management method using a data storage system including a flash memory and a phase change memory according to the second aspect of the present invention for achieving the above object includes (a) the phase change memory in the data stored in the flash memory; Loading data to which the update contents are stored in the upper memory; (b) storing updated contents of the data loaded and updated in the upper memory in the phase change memory; And (c) updating the data stored in the flash memory by merging the update contents stored in the phase change memory with the data stored in the flash memory, wherein the update contents are data stored in the flash memory. When is updated in the upper memory is characterized in that the difference between the data before the update and the updated data.

본 발명은 데이터 저장 시스템 및 데이터 관리 방법에 있어, 플래시 메모리와 상변환 메모리가 서로 보완하도록 구성됨으로써 성능이 향상되는 효과를 얻는다.The present invention achieves the effect of improving performance by configuring the flash memory and the phase change memory to complement each other in the data storage system and the data management method.

구체적으로, 데이터 갱신시 데이터가 저장되어 있는 플래시 메모리에 접근하는 대신 상변환 메모리에 데이터의 갱신 내용을 저장하고, 플래시 메모리 데이터를 갱신할 필요를 줄임으로써 플래시 메모리의 임의 쓰기 속도를 향상시키는 효과를 얻는다.Specifically, when updating data, instead of accessing the flash memory where the data is stored, the contents of the data are stored in the phase conversion memory and the flash memory data is reduced, thereby improving the random writing speed of the flash memory. Get

상변환 메모리의 소량 데이터 쓰기에 있어서의 빠른 속도를 활용할 수 있어 갱신 내용을 플래시 메모리의 로그 영역에 저장하는 것보다 데이터 저장 시간이 단축된다.The high speed of writing small amount of data in the phase conversion memory can be utilized, and the data storage time is shorter than storing the update contents in the log area of the flash memory.

플래시 메모리 데이터의 갱신 횟수가 줄어들므로, 기록을 위해 삭제가 선행되어야 하며 대량 데이터를 한꺼번에 기록/삭제해야 하는 플래시 메모리의 단점을 피할 수 있어, 자주 갱신되는 데이터를 저장하고 있는 영역에 열화가 가중되어 플래시 메모리의 수명이 감축되는 것을 막을 수 있다.Since the number of flash memory data updates is reduced, the disadvantage of flash memory, which must be erased first for writing and a large amount of data must be written / deleted at a time, avoids the deterioration of the area storing frequently updated data. This can prevent the flash memory from shortening its lifespan.

또한 상변환 메모리에 페이지 별로 로그 영역을 고정 할당 하지 않으므로, 상변환 메모리 공간 활용도가 높고, 매핑에 따른 부하가 낮으며, 특정 영역에 열화가 가중되어 상변환 메모리의 수명이 감축되는 것을 막을 수 있다.In addition, since the log area is not fixedly allocated to each page in the phase change memory, the utilization of the phase change memory space is high, the load due to the mapping is low, and deterioration is increased in a specific area, thereby preventing the life of the phase change memory from being shortened. .

또한 복잡한 연산을 필요로 하지 않으므로 자원 활용이 효율적이고 성능이 좋으며 구현이 용이하다.In addition, because it does not require complex operations, resource utilization is efficient, good performance, and easy to implement.

도 1, 2는 본 발명에 따른 데이터 저장 시스템을 도시함.
도 3은 여러 저장 매체의 속도 차이를 비교하여 도시함.
도 4는 본 발명에 따른 데이터 관리 방법의 흐름을 도시함.
도 5는 본 발명에 따른 데이터 관리 방법의 주메모리로의 데이터 로드 단계의 흐름을 도시함.
도 6은 본 발명에 따른 데이터 관리 방법의 상변환 메모리로의 갱신 내용 저장 단계의 흐름을 도시함.
도 7은 본 발명에 따른 데이터 관리 방법의 플래시 메모리로의 갱신 내용 병합 단계의 흐름을 도시함.
도 8은 본 발명에 따른 데이터 저장 시스템의 실시예에서 주메모리로 데이터가 로드되기 이전 상태를 도시함.
도 9는 본 발명에 따른 데이터 저장 시스템의 실시예에서 주메모리로 데이터가 로드되어 갱신되는 과정을 도시함.
도 10은 본 발명에 따른 데이터 저장 시스템의 실시예에서 상변환 메모리에 갱신 내용이 저장된 상태를 도시함.
도 11은 본 발명에 따른 데이터 저장 시스템의 실시예에서 플래시 메모리에 갱신 내용이 병합된 상태를 도시함.
1 and 2 show a data storage system according to the invention.
3 shows a comparison of the speed differences of various storage media.
4 illustrates a flow of a data management method according to the present invention.
Figure 5 shows the flow of the data loading step into the main memory of the data management method according to the present invention.
Figure 6 shows the flow of the update content storing step to the phase change memory of the data management method according to the present invention.
Figure 7 shows the flow of the update content merging step into the flash memory of the data management method according to the present invention.
8 shows a state before data is loaded into the main memory in the embodiment of the data storage system according to the present invention.
9 is a diagram illustrating a process of loading and updating data into a main memory in an embodiment of a data storage system according to the present invention.
FIG. 10 illustrates a state in which updates are stored in a phase conversion memory in an embodiment of a data storage system according to the present invention. FIG.
11 illustrates a state in which update contents are merged into a flash memory in an embodiment of a data storage system according to the present invention.

아래에서는 첨부한 도면을 참조하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 본 발명의 실시예를 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings, which will be readily apparent to those skilled in the art. The present invention may, however, be embodied in many different forms and should not be construed as limited to the embodiments set forth herein. In order to clearly illustrate the present invention, parts not related to the description are omitted, and similar parts are denoted by like reference characters throughout the specification.

명세서 전체에서, 어떤 부분이 다른 부분과 "연결"되어 있다고 할 때, 이는 "직접적으로 연결"되어 있는 경우뿐 아니라, 그 중간에 다른 소자를 사이에 두고 "전기적으로 연결"되어 있는 경우도 포함한다. 또한 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.Throughout the specification, when a part is referred to as being "connected" to another part, it includes not only "directly connected" but also "electrically connected" with another part in between . Also, when an element is referred to as "comprising ", it means that it can include other elements as well, without departing from the other elements unless specifically stated otherwise.

도 1은 본 발명에 따른 데이터 저장 시스템을 도시하고 있다.1 shows a data storage system according to the invention.

본 발명에 따른 데이터 저장 시스템(10)은 데이터를 저장하는 비휘발성 저장 매체인 플래시 메모리(100)와 데이터의 갱신 내용을 저장하는 비휘발성 저장 매체인 상변환 메모리(200)를 포함한다.The data storage system 10 according to the present invention includes a flash memory 100, which is a nonvolatile storage medium for storing data, and a phase change memory 200, which is a nonvolatile storage medium for storing update contents of data.

본 발명에 따른 데이터 저장 시스템(10)의 구성 형태에는 제한이 없다. 예를 들어, 일실시예에서 플래시 메모리(100)는 SSD(solid state disk) 형태로 구성될 수 있으며, 상변환 메모리(200)는 SSD에 포함되어 있는 형태로 구성될 수 있다. 또는 플래시 메모리(100)와 상변환 메모리(200)를 서로 독립적으로 구성하는 것도 가능하다. 또한 플래시 메모리(100)와 상변환 메모리(200)의 종류나 개수, 용량에도 제한이 없다. 또한 데이터 저장 시스템(10)은 하드 디스크 등의 다른 보조 기억 장치와 연결되어 사용될 수 있다.There is no limitation on the configuration of the data storage system 10 according to the present invention. For example, in one embodiment, the flash memory 100 may be configured in the form of a solid state disk (SSD), and the phase change memory 200 may be configured in the form included in the SSD. Alternatively, the flash memory 100 and the phase change memory 200 may be configured independently of each other. In addition, there is no limitation on the type, number and capacity of the flash memory 100 and the phase change memory 200. The data storage system 10 may also be used in connection with other auxiliary storage devices such as a hard disk.

데이터 저장 시스템(10)에 저장되어 있는 데이터는 주메모리(RAM) 등 상위 메모리로 로드되어 사용된다. 일실시예에서 주메모리에는 데이터 저장 시스템(10)에 저장되어 있는 데이터를 읽어와 사용하기 위한 전용 버퍼(20), 더욱 구체적으로는 버퍼(20) 내 데이터 영역(300)이 마련될 수 있다. 또한 주메모리 버퍼(20)는 데이터 영역(300)에 로드된 데이터가 갱신될 경우 갱신 내용을 저장하기 위한 로그 영역(400)을 더 포함할 수 있다.Data stored in the data storage system 10 is loaded into an upper memory such as main memory (RAM) and used. In an exemplary embodiment, the main memory may include a dedicated buffer 20 for reading and using data stored in the data storage system 10, more specifically, a data area 300 in the buffer 20. In addition, the main memory buffer 20 may further include a log area 400 for storing updated contents when data loaded in the data area 300 is updated.

도 2는 본 발명에 따른 데이터 저장 시스템의 내부 구조를 도시하고 있다.2 shows an internal structure of a data storage system according to the present invention.

데이터는 플래시 메모리(100)에 저장된다. 플래시 메모리(100)는 전술한 바와 같이 바이트 단위가 아닌 페이지 단위로 읽고 쓰며 데이터 삭제는 페이지의 집합인 블럭 단위로 이루어지는 저장 매체이다. 예를 들어, 각 페이지는 2KB의 용량을 갖고, 각 블럭은 32개의 페이지로 이루어져 있을 수 있다.Data is stored in the flash memory 100. As described above, the flash memory 100 reads and writes data in units of pages rather than bytes, and data erasing is performed by a block unit that is a set of pages. For example, each page has a capacity of 2 KB, and each block may consist of 32 pages.

도면에 도시되어 있는 바와 같이, 플래시 메모리(100)의 i번째 블럭을 Bi, 각 블럭의 j번째 페이지를 Pj라고 하면, i번째 블럭의 j번째 페이지는 BiPj로 나타낼 수 있다. 단, 여기서 BiPj는 물리적 주소가 아닌 논리적 주소이다. 자세한 내용은 실시예를 통해 후술한다.As shown in the figure, if the i-th block of the flash memory 100 is Bi and the j-th page of each block is Pj, the j-th page of the i-th block may be represented as BiPj. Where BiPj is a logical address, not a physical address. Details will be described later through examples.

상변환 메모리(200)는 플래시 메모리(100)에 저장되어 있는 데이터의 갱신 내용을 저장한다. 갱신 내용이란 데이터가 상위 메모리(주메모리)로 로드되어 갱신되었을 때, 갱신되기 전 데이터와 갱신된 데이터의 차이이며, 차분 데이터 또는 로그라고 칭하기도 한다. 즉, 갱신 내용은 데이터의 갱신 이전 버전과 갱신 이후 버전의 차이라고 정의할 수 있다.The phase change memory 200 stores update contents of data stored in the flash memory 100. The update content is a difference between the data before updating and the updated data when the data is loaded into the upper memory (main memory) and updated, and may be referred to as difference data or log. That is, the update content may be defined as the difference between the pre-update version and the post-update version of the data.

이러한 갱신 내용은 상변환 메모리(200)에 저장된다. 상변환 메모리(200)는 갱신 내용 저장 공간을 플래시 메모리(100)의 각 블럭별로 고정적으로 할당하므로, 플래시 메모리(100)의 i번째 블럭(Bi)에 속한 페이지들에 대해 상변환 메모리(200)에 할당된 갱신 내용 저장 공간을 Li로 나타낼 수 있다. 예를 들어, 플래시 메모리(100)의 첫번째 블럭의 첫번째 페이지(B1P1), 첫번째 블럭의 두번째 페이지(B1P2)에 대한 갱신 내용은 모두 상변환 메모리(200)의 첫번째 갱신 내용 저장 공간(L1)에 저장된다.This update is stored in the phase-change memory 200. Since the phase change memory 200 fixedly allocates the update content storage space for each block of the flash memory 100, the phase change memory 200 is applied to pages belonging to the i th block Bi of the flash memory 100. The update storage space allocated to may be represented as Li. For example, update contents of the first page B1P1 and the second page B1P2 of the first block of the flash memory 100 are all stored in the first update storage space L1 of the phase-change memory 200. do.

즉, 상변환 메모리(200)는 갱신 내용 저장 공간을 플래시 메모리(100)의 페이지별로 할당하지는 않는다. 상변환 메모리(200)가 갱신 내용 저장 공간을 블럭별로 할당하는 이유는 뒤에서 자세히 설명한다.That is, the phase change memory 200 does not allocate the update content storage space for each page of the flash memory 100. The reason why the phase change memory 200 allocates the update content storage space for each block will be described in detail later.

플래시 메모리(100)에 저장되어 있는 데이터는 전술한 바와 같이 주메모리에 마련되어 있는 버퍼(20)로 로드되며, 일실시예에서 주메모리 버퍼(20)의 데이터 영역(300)은 데이터를, 로그 영역(400)은 데이터의 갱신 내용을 저장하도록 구성된다. 데이터가 플래시 메모리(100)에 저장되므로, 주메모리 버퍼(20)의 데이터 영역(300)으로 로드되는 데이터 단위는 페이지이다. 반면, 로드된 데이터가 갱신되는 단위는 바이트이며, 일반적으로 전체 페이지의 극히 일부만이 변경된다. 예를 들어, 데이터베이스 시스템에 적용하였을 때, 데이터베이스 연산에 의해 갱신되는 데이터는 평균 수십 바이트에 불과하다고 알려져 있다.As described above, the data stored in the flash memory 100 is loaded into the buffer 20 provided in the main memory. In one embodiment, the data area 300 of the main memory buffer 20 stores data in a log area. 400 is configured to store the update contents of the data. Since data is stored in the flash memory 100, the data unit loaded into the data area 300 of the main memory buffer 20 is a page. On the other hand, the unit in which the loaded data is updated is bytes, and typically only a fraction of the entire page is changed. For example, when applied to a database system, it is known that the data updated by a database operation is only an average of tens of bytes.

플래시 메모리 매체의 페이지 단위는 보통 2KB가 넘으며 그 용량이 더욱 커지는 추세에 있음을 고려할 때, 이렇게 수십 바이트에 불과한 갱신 내용을 적용하기 위해 플래시 메모리(100)에 접근하여 페이지 전체를 갱신된 데이터로 덮어쓰는 것은 매우 비효율적이며, 여러 가지 단점을 지닌다. 전술한 바와 같이 플래시 메모리(100)는 블럭 단위의 삭제 연산을 수행한 후 페이지 단위의 쓰기 연산을 수행해야 수십 바이트의 변경 사항이 적용되도록 데이터를 갱신할 수 있기 때문에 성능이 더욱 저하되며, 이러한 연산을 수행할 때마다 열화 현상이 일어나 메모리 수명이 감축된다는 문제도 있다.Considering that the page unit of a flash memory medium is usually larger than 2 KB and its capacity is becoming larger, the entire page is updated by accessing the flash memory 100 in order to apply the update content of only a few tens of bytes. Overwriting is very inefficient and has several disadvantages. As described above, the flash memory 100 may perform a write operation in units of blocks and then perform a write operation in units of pages, so that data may be updated so that changes of tens of bytes are applied, thereby further degrading performance. There is also a problem in that the memory life is reduced every time a degradation occurs.

본 발명에 따른 데이터 저장 시스템(10)은 데이터가 갱신되었을 때, 플래시 메모리(100)에 저장되어 있는 데이터를 바로 갱신하지 않고 상변환 메모리(200)에 갱신 내용을 모아둠으로써 전술한 문제를 효과적으로 해결한다. 상변환 메모리(200)는 바이트 단위의 쓰기가 가능하며 소량 데이터에 대해 DRAM에 근접한 쓰기 속도를 보이고 쓰기 이전에 삭제를 수행해야 할 필요가 없는 비휘발성 저장 매체이므로 갱신 내용을 저장하기에 매우 적합하다.The data storage system 10 according to the present invention effectively solves the above-mentioned problems by collecting the update contents in the phase conversion memory 200 without immediately updating the data stored in the flash memory 100 when the data is updated. Solve. The phase change memory 200 is a non-volatile storage medium capable of writing in bytes, showing a write speed close to DRAM for small amounts of data, and eliminating the need to perform a deletion before writing. Therefore, the phase change memory 200 is suitable for storing update contents. .

예를 들어, 주메모리 버퍼(20)의 데이터 영역(300)에 2KB 용량의 B1P1 데이터가 로드되어 있고, 데이터베이스 연산에 의해 이 페이지의 70바이트가 변경되고 다시 32바이트가 변경되었다면, 상변환 메모리(200)의 L1 영역에 70바이트의 갱신 내용과 32바이트의 갱신 내용을 순차적으로 기록해두기만 하면 된다.For example, if 2 KB of B1P1 data is loaded in the data area 300 of the main memory buffer 20, and 70 bytes of this page are changed by the database operation and 32 bytes are changed again, the phase change memory ( It is only necessary to sequentially record the update contents of 70 bytes and the update contents of 32 bytes in the L1 area of 200).

이렇게 하면 플래시 메모리(100)에 있는 데이터를 갱신하지 않고도 데이터가 필요할 때 데이터의 최신 버전을 갱신 내용에 대한 기록을 사용하여 계산해낼 수 있다. 이것은 데이터를 주 메모리 버퍼(20)의 데이터 영역(300)에 로드할 때 수행되는 연산이다. 예를 들어, 플래시 메모리(100)에서 데이터를 읽어온 후, 상변환 메모리의 L1 영역에서 갱신 내용들을 읽어와서, 70바이트의 갱신 내용을 적용한 후 다시 32바이트의 갱신 내용을 적용하여 반환하면 된다.In this way, when data is needed, the latest version of the data can be calculated using the record of the update contents when the data is needed without updating the data in the flash memory 100. This is an operation performed when data is loaded into the data area 300 of the main memory buffer 20. For example, after reading the data from the flash memory 100, the updated contents are read from the L1 region of the phase conversion memory, 70 bytes of updated contents are applied, and 32 bytes of updated contents are applied again.

읽기 요청이 있을 때마다 이러한 최신 버전 재구성 과정을 거치는 데 따른 비용은 전술한 바와 같은 쓰기 속도 대폭 향상 등과 같은 장점에 비해 낮다. 상변환 메모리는 소량 데이터의 읽기 속도 또한 빠르기 때문에 갱신 내용을 읽어오는 비용이 크지 않기 때문이다. 쓰기 속도 향상과 읽기 속도 저하에 대한 트레이드 오프에 관한 고려는 뒤에서 다시 기술하겠다.Whenever there is a read request, the cost of going through this latest version reconstruction process is low compared to the advantages such as a significant improvement in write speed as described above. This is because the phase-change memory reads the update content because the read speed of the small amount of data is also fast. Consideration of the trade-offs for faster write speeds and slower read speeds will be discussed later.

따라서 본 발명에 따른 데이터 저장 시스템(10)은 갱신 내용을 상변환 메모리(200)에 저장할 때 발생 순서대로 기존에 저장되어 있는 데이터의 끝에 덧붙여 저장한다(append). 이는 여러 가지 장점을 가지고 있는 특성이다. 페이지 별로 크기와 위치를 고정시키지 않으므로 매핑 등의 연산 부하가 없다. 특정 영역에 열화가 가중되는 문제도 없다. 수명이 다한 셀이 전체 메모리의 일부이더라도 전체 메모리를 못 쓰게 되므로, 플래시 메모리(100)나 상변환 메모리(200)와 같이 사용할 때마다 해당 메모리 셀의 수명이 줄어드는 열화 현상을 보이는 저장 매체를 사용할 때는 열화가 특정 영역에 치중되지 않도록 주의하는 것이 바람직한데, 본 발명에 따른 데이터 저장 시스템(10)은 이러한 장점을 가지고 있다.Accordingly, the data storage system 10 according to the present invention appends and stores the updated contents in the order of occurrence when the updated contents are stored in the phase conversion memory 200. This is a characteristic that has several advantages. Since there is no fixed size and position for each page, there is no computational load such as mapping. There is also no problem of deterioration in a particular area. Even if the end-of-life cell is a part of the entire memory, the entire memory cannot be used. Therefore, when using a storage medium that exhibits a deterioration phenomenon in which the life of the memory cell decreases every time the flash memory 100 or the phase change memory 200 is used. It is desirable to be careful not to deteriorate the specific area, but the data storage system 10 according to the invention has this advantage.

또한, 갱신 내용을 단순히 기존에 저장되어 있는 데이터의 끝에 덧붙여 저장하기만 하면 되어 별다른 연산을 필요로 하지 않으므로 갱신 내용들을 주메모리 버퍼(20)의 로그 영역(400)에 모아놓았다가 한꺼번에 상변환 메모리(200)에 쓰는 것이 가능해진다. 이러한 실시예에서는 I/O 연산이 더욱 줄어들므로 그만큼 성능이 더욱 향상될 수 있다.In addition, since the update contents are simply added to the end of the previously stored data and do not require any special operation, the update contents are collected in the log area 400 of the main memory buffer 20, and the phase conversion memory is stored at once. It becomes possible to write to 200. In such an embodiment, since I / O operations are further reduced, the performance may be further improved.

그러나 본 발명에 따른 데이터 저장 시스템(10)은 전술한 바와 같이, 상변환 메모리(200)의 갱신 내용 저장 공간을 페이지별로는 고정적으로 할당하지 않되, 블럭별로는 고정 할당한다. 페이지별로 고정 할당하는 것은 전술한 이유로 인해 바람직하지 않지만, 아무 구분없이 상변환 메모리(200) 전체를 통째로 사용하는 것보다는 블럭 단위로 구분하는 것이 바람직하기 때문이다. 예를 들어, 블럭 구분 없이 단순히 매체의 처음부터 차례대로 갱신 내용을 저장한다면 오히려 전술한 열화 가중 문제를 겪게 될 것이다.However, as described above, the data storage system 10 according to the present invention does not allocate the update contents storage space of the phase change memory 200 fixedly for each page, but fixedly for each block. Although fixed allocation for each page is not preferable because of the above-mentioned reasons, it is preferable to divide by page unit by block rather than using the entire phase-transform memory 200 without any division. For example, if you simply store the update contents sequentially from the beginning of the medium without block division, you will suffer from the above-mentioned deterioration weighting problem.

더욱 중요하게는 전술한 읽기 속도 저하가 심해진다는 문제가 생긴다. 예를 들어, B1P1에 대한 갱신 내용이 2건, B1P2에 대한 갱신 내용이 1건, B2P1에 대한 갱신 내용이 3건, B3P5에 대한 갱신 내용이 1건, B3P7에 대한 갱신 내용이 2건이라면, 이러한 갱신 내용을 블럭 구분없이 모두 발생 순서대로 순차적으로 저장하였을 경우, B1P1의 최신 버전을 반환하려면 총 9건의 갱신 내용을 읽어와야 한다. 이는 속도 뿐 아니라 필요한 임시 메모리 공간도 늘어날 수 있음을 의미한다. 반면, 블럭별로 구분하여 저장하였을 경우에는 총 3건의 갱신 내용만을 읽어오면 되므로 효율적이다.More importantly, there arises a problem that the above-described read speed decreases. For example, if there are 2 updates for B1P1, 1 update for B1P2, 3 updates for B2P1, 1 update for B3P5, and 2 updates for B3P7, If all of these updates are stored sequentially in order of occurrence without block division, a total of 9 updates must be read to return the latest version of B1P1. This means that not only speed, but also the required temporary memory space can be increased. On the other hand, in case of storing by dividing by block, it is efficient because only 3 update contents need to be read.

즉, 본 발명에 따른 데이터 저장 시스템(10)이 블럭별로 갱신 내용을 저장할 영역을 고정 할당하는 주요 이유는 읽기와 쓰기간 트레이드 오프 고려에 따른 것이다. 이에 따라 각 블럭당 할당 영역 임계치를 설정할 수도 있다. 플래시 메모리(100)의 페이지 크기가 2KB, 각 블럭당 페이지 수가 32개이고, 읽기와 쓰기 빈도가 동일하다고 가정할 때, 상변환 메모리(200)의 읽기 부담= (차분 데이터 영역 크기/2/32)*읽기 속도, 쓰기 부담=쓰기 속도이다. 도 3에 도시되어 있는 읽기 속도, 쓰기 속도를 적용하여 계산하여 보면, 차분 데이터 영역 크기는 대략 2KB 이하라는 결론이 나온다.That is, the main reason why the data storage system 10 according to the present invention fixedly allocates an area for storing update contents on a block basis is a trade-off between read and write. Accordingly, the allocation area threshold for each block may be set. Assuming that the page size of the flash memory 100 is 2KB, the number of pages per block is 32, and the read and write frequencies are the same, the read burden of the phase-conversion memory 200 = (differential data area size / 2/32) * Read speed, write burden = write speed. When calculating by applying the read speed and the write speed shown in FIG. 3, it is concluded that the difference data area size is approximately 2 KB or less.

이렇게 블럭별로 갱신 내용 저장 공간을 고정 할당하므로, 데이터가 차서 더이상 해당 블럭에 대한 갱신 내용을 저장할 수 없는 갱신 내용 저장 공간이 발생할 수 있다. 이런 경우에는 해당 블럭의 플래시 메모리(100)에 저장된 데이터를 최신 버전으로 갱신한 후 상변환 메모리(200)의 해당 갱신 내용 저장 공간을 비우면 된다. 즉, 플래시 메모리(100)에 저장되어 있는 데이터에 대한 갱신이 이 시점에서 비로소 이루어진다.Since the update content storage space is fixedly allocated for each block, an update content storage space in which data cannot be stored anymore may be generated because the data is full. In this case, the data stored in the flash memory 100 of the block is updated to the latest version, and the corresponding update contents storage space of the phase change memory 200 may be emptied. That is, the update of the data stored in the flash memory 100 is made at this point.

도 4, 5, 6, 7은 본 발명에 따른 데이터 관리 방법의 흐름을 도시하고 있다.4, 5, 6, and 7 show the flow of the data management method according to the present invention.

도 4는 전체 흐름을 도시하고 있다.4 shows the overall flow.

주메모리 버퍼(20)로 로드할 플래시 메모리(100)의 i번째 블럭 Bi의 j번째 페이지(BiPj) 데이터를 요청받으면(S410), 플래시 메모리(100)에 저장되어 있는 요청 페이지(BiPj)의 내용에 상변환 메모리(200)의 해당 블럭(Bi)에 할당된 갱신 내용 저장 공간(Li)에 저장되어 있는 갱신 내용 중 요청 페이지(BiPj)에 대한 갱신 내용을 순차적으로 적용한 최선 버전의 데이터를 반환하여, 주메모리 버퍼(20)의 데이터 영역(300)으로 로드한다(S420).When the j-th page (BiPj) data of the i-th block Bi of the flash memory 100 to be loaded into the main memory buffer 20 is requested (S410), the contents of the request page (BiPj) stored in the flash memory 100 Of the update contents stored in the update contents storage space (Li) allocated to the corresponding block (Bi) of the conversion memory (200), the data of the best version in which the updates to the request page (BiPj) are sequentially applied are returned. In operation S420, the data memory 300 is loaded into the data area 300 of the main memory buffer 20.

주메모리 버퍼(20)에서 페이지(BiPj)가 갱신되면(S430), 주메모리 버퍼(20)의 로그 영역(400)에 갱신 내용을 기록해두었다가(S440), 로그 영역(400)이 가득 차거나 체크포인트 연산 등의 이유로 갱신 내용 데이터를 비휘발성 저장 장치에 기록해야 할 필요가 있을 때(S450), 플래시 메모리(100)에 저장되어 있는 페이지(BiPj) 원본 데이터는 갱신하지 않고 대신 상변환 메모리(200)의 갱신 영역 저장 공간(Li)에 해당 갱신 내용을 저장한다(S460). 이때 전술한 바와 같이 덮어쓰지 않고 발생 순서대로 기존에 저장되어 있는 갱신 내용 데이터에 덧붙여 저장한다(append).When the page BiPj is updated in the main memory buffer 20 (S430), the update contents are recorded in the log area 400 of the main memory buffer 20 (S440), and the log area 400 is full or the checkpoint is updated. When it is necessary to write the update content data in the nonvolatile storage device for reasons such as an operation (S450), the page BiPj original data stored in the flash memory 100 is not updated, but the phase-conversion memory 200 is instead updated. The update content is stored in the update area storage space Li of the device (S460). At this time, as described above, the data is stored in addition to the update contents data previously stored in the order of occurrence without overwriting.

상변환 메모리(200)의 갱신 영역 저장 공간(Li)이 가득 차 갱신 내용을 플래시 메모리(100)의 원본 데이터에 병합할 필요가 발생할 경우(S470), 플래시 메모리(100)의 해당 블럭(Bi)에 속하는 각 페이지의 원본 데이터에 상변환 메모리(200)의 갱신 내용 저장 공간(Li)에 저장되어 있는 해당 페이지에 대한 갱신 내용을 순차적으로 병합하여 산출한 최신 버전으로 플래시 메모리(100)의 원본 데이터를 갱신하고 상변환 메모리(200)의 해당 영역(Li)은 비운다(S480).When the update area storage space Li of the phase conversion memory 200 is full and a need to merge the update contents with the original data of the flash memory 100 occurs (S470), the corresponding block Bi of the flash memory 100 is generated. The original data of the flash memory 100 is a latest version calculated by sequentially merging the update contents of the corresponding page stored in the update contents storage space Li of the phase conversion memory 200 with the original data of each page belonging to. Is updated and the corresponding area Li of the phase conversion memory 200 is emptied (S480).

도 5는 본 발명에 따른 데이터 관리 방법의 주메모리로의 데이터 로드 단계(도 4의 420)의 흐름을 도시하고 있다.FIG. 5 shows the flow of the data loading step (420 in FIG. 4) into the main memory of the data management method according to the present invention.

읽기 요청된 페이지(BiPj)의 원본 데이터를 플래시 메모리(100)에서 읽어오고(S510), 상변환 메모리(200)에서 해당 페이지가 속한 블럭(Bi)에 대해 할당된 갱신 내용 저장 공간(Li)에 저장되어 있는 갱신 내용을 모두 읽어와서(S520), 상기 단계(S510)에서 읽어온 원본 데이터에 해당 읽기 요청 페이지(BiPj)에 대한 갱신 내용만을 순차적으로 적용하면(S530), 해당 페이지(BiPj) 데이터가 최신 버전으로 재구성되므로 이를 반환하면 된다.The original data of the page requested to be read (BiPj) is read from the flash memory 100 (S510), and in the update content storage space Li allocated to the block Bi belonging to the page in the phase conversion memory 200. If all stored update contents are read (S520), and only the update contents of the corresponding read request page BiPj are sequentially applied to the original data read in step S510 (S530), the corresponding page (BiPj) data Is reorganized into the latest version, so you can return it.

도 6은 본 발명에 따른 데이터 관리 방법의 상변환 메모리로의 갱신 내용 저장 단계(도 4의 460)의 흐름을 도시하고 있다.Fig. 6 shows the flow of the update contents storing step (460 of Fig. 4) to the phase change memory of the data management method according to the present invention.

상변환 메모리(200)의 쓰기 요청 페이지(BiPj)가 속한 블럭(Bi)에 할당된 갱신 내용 저장 공간(Li)에 쓰기 요청 페이지(BiPj)에 대한 갱신 내용을 모두 저장한다(S610). 이때 전술한 바와 같이 덮어쓰지 않고 덧붙여 저장한다. 전술한 바와 같이 쓰기 요청 페이지(BiPj)의 플래시 메모리(100)에 저장되어 있는 원본 데이터는 이 시점에서 갱신되지 않는다. 이렇게 갱신시마다 데이터 원본을 갱신하는 대신, 갱신 내용만을 상변환 메모리(200)에 저장함으로써, 본 발명에 따른 데이터 관리 방법은 앞에서 기술한 여러 가지 효과를 얻는다. 갱신 내용을 저장하기에 플래시 메모리(100)보다 좀더 적합한 매체인 상변환 메모리(200)를 사용하여 플래시 메모리(100)를 보완한다.The update contents of the write request page BiPj are all stored in the update contents storage space Li allocated to the block Bi to which the write request page BiPj of the phase-change memory 200 belongs (S610). At this time, as described above, it is stored without being overwritten. As described above, the original data stored in the flash memory 100 of the write request page BiPj is not updated at this time. Instead of updating the data source every time, the data management method according to the present invention achieves various effects as described above. The flash memory 100 is complemented by using a phase change memory 200, which is a medium more suitable than the flash memory 100 for storing update contents.

도 7은 본 발명에 따른 데이터 관리 방법의 플래시 메모리로의 갱신 내용 병합 단계(도 4의 480)의 흐름을 도시하고 있다.7 shows the flow of the update content merging step (480 of FIG. 4) of the data management method according to the present invention.

우선 플래시 메모리(100)에 빈 블럭을 할당 받는다(S710).First, an empty block is allocated to the flash memory 100 (S710).

상변환 메모리(200)의 병합 필요 블럭(Bi)에 대한 갱신 내용 저장 공간(Li)에서 갱신 내용을 모두 읽어온 후(S720), 병합 필요 블럭(Bi)의 페이지가 모두 갱신될 때까지(S750) 블럭의 각 페이지에 해당 페이지에 대한 갱신 내용을 순차적으로 적용하여(S730), 최신 버전으로 갱신된 페이지를 할당 받은 빈 블럭에 기록한다(S740).After all the update contents are read from the update contents storage space Li of the merge required block Bi of the phase-conversion memory 200 (S720), until all pages of the merge required block Bi are updated (S750). ) Update contents of the corresponding page are sequentially applied to each page of the block (S730), and the page updated with the latest version is recorded in the allocated empty block (S740).

플래시 메모리(100)에서 블럭 매핑 정보를 변경하고 이전 블럭을 빈 블럭으로 반환한다(S760).The block mapping information is changed in the flash memory 100 and the previous block is returned as an empty block (S760).

이렇게 하면 플래시 메모리(100)의 해당 블럭(Bi)의 각 페이지가 최신 버전으로 갱신되어 저장되었으므로 더이상 기존 갱신 내용을 유지할 필요가 없어, 상변환 메모리(200)의 해당 블럭에 대한 갱신 내용 저장 공간(Li)은 다시 처음부터 사용할 수 있다.In this case, since each page of the corresponding block Bi of the flash memory 100 has been updated and stored as the latest version, it is no longer necessary to maintain the existing update contents, so that the update contents storage space for the corresponding block of the phase conversion memory 200 ( Li) can be used again from the beginning.

도 8, 9, 10, 11은 본 발명에 따른 데이터 저장 시스템의 실시예를 도시하고 있다.8, 9, 10 and 11 show an embodiment of a data storage system according to the invention.

편의를 위해 플래시 메모리(100)의 논리적 블럭 수를 2개, 각 블럭당 페이지 수를 2개로 제한하여 설명한다. 각 페이지는 전술한 바와 같이 논리적 주소 BiPj로 나타낼 수 있다. 예를 들어, B2P2는 논리적으로 2번째 블럭의 2번째 페이지이다.For convenience, the logical block number of the flash memory 100 is limited to two and the number of pages per block is limited to two. Each page may be represented by a logical address BiPj as described above. For example, B2P2 is logically the second page of the second block.

각 페이지 데이터의 버전은 _ 뒤에 주메모리에 로드된 후 갱신된 횟수를 써서 나타내기로 한다. 예를 들어, B2P2_0은 논리적으로 2번째 블럭의 2번째 페이지의 플래시 메모리(100)에 저장되어 있는 원본 버전이다. 여기에서, 원본이라 함은 주메모리 버퍼(20)로 로드되어 갱신되기 이전의 데이터, 즉 갱신 횟수가 0이며, 상변환 메모리(200)에 저장할 갱신 내용이 없는 데이터이다.The version of each page data is represented by _ followed by the number of times it has been loaded in main memory and updated. For example, B2P2_0 is the original version stored logically in the flash memory 100 of the second page of the second block. Here, the original data is data before being loaded into the main memory buffer 20 and updated, that is, the number of updates is 0, and there is no update content to be stored in the phase conversion memory 200.

상변환 메모리(200)는 각 블럭별로 갱신 내용 저장 공간을 할당한다. 본 실시예에서 플래시 메모리(100)의 블럭의 수는 2이므로, 상변환 메모리(200)에 마련되는 갱신 내용 저장 공간의 수도 2이다. 즉, 상변환 메모리(200)의 L1, L2는 각각 플래시 메모리(100)의 블럭 B1, B2에 대응하는 갱신 내용 저장 공간이다.The phase change memory 200 allocates update content storage space for each block. In the present embodiment, since the number of blocks of the flash memory 100 is two, the number of update contents storage space provided in the phase conversion memory 200 is two. That is, L1 and L2 of the phase change memory 200 are update content storage spaces corresponding to blocks B1 and B2 of the flash memory 100, respectively.

갱신 내용은 주메모리 버퍼(20)로 로드된 후 갱신된 데이터의 갱신 이전 버전과 갱신 이후 버전의 차이이고, 각 블럭별로 할당된 공간에 발생 순서대로 순차적으로 저장되므로, 갱신 내용 저장 공간 번호와 발생 번호를 사용하여 나타내도록 하자. 예를 들어, L1D1은 첫번째 갱신 내용 저장 공간(L1)에 저장될 첫번째 갱신 내용이다.The update content is the difference between the pre-update and post-update versions of the updated data after being loaded into the main memory buffer 20. Since the update contents are sequentially stored in the allocated space for each block, the update contents storage space number and occurrence Let's use numbers. For example, L1D1 is the first update content to be stored in the first update content storage space L1.

도 8은 본 발명에 따른 데이터 저장 시스템의 실시예에서 주메모리로 데이터가 로드되기 이전 상태를 도시하고 있다.8 illustrates a state before data is loaded into the main memory in the embodiment of the data storage system according to the present invention.

주메모리로 로드되어 갱신되기 이전 상태이므로, 플래시 메모리(100)에는 각 페이지의 원본 데이터인 B1P1_0, B1P2_0, B2P1_0, B2P2_0가 저장되어 있으며, 상변환 메모리(200)의 각 갱신 내용 저장 공간(L1, L2)은 비어있다.Since it is in the state before loading and updating to main memory, the flash memory 100 stores B1P1_0, B1P2_0, B2P1_0, and B2P2_0, which are the original data of each page, and stores the update contents storage space L1, of the phase change memory 200. L2) is empty.

도 9는 본 발명에 따른 데이터 저장 시스템의 실시예에서 주메모리로 데이터가 로드되어 갱신되는 과정을 도시하고 있다. 도 9의 과정을 거친 후의 상변환 메모리(200)의 상태는 도 10에 도시되어 있다.9 is a diagram illustrating a process of loading and updating data into a main memory in an embodiment of a data storage system according to the present invention. The state of the phase change memory 200 after the process of FIG. 9 is illustrated in FIG. 10.

데이터 페이지를 주메모리로 로드할 때 본 발명에 따른 데이터 저장 시스템(10)은 전술한 바와 같이 플래시 메모리(100)에 저장되어 있는 원본 데이터에 상변환 메모리(200)에 저장되어 있는 갱신 내용을 적용하여 최신 버전을 재구성하여 반환한다.When the data page is loaded into the main memory, the data storage system 10 according to the present invention applies the update contents stored in the phase conversion memory 200 to the original data stored in the flash memory 100 as described above. Reconstruct and return the latest version.

이에 따라, 도 9의 첫번째 상태 도면에서 플래시 메모리(100)의 2번째 블럭의 1번째 페이지 데이터인 B2P1_0이 주메모리 버퍼(20)의 데이터 영역(300)으로 로드되었다. 현재는 갱신된 내용이 없으므로, 플래시 메모리(100)에 있는 원본만을 로드하면 된다.Accordingly, in the first state diagram of FIG. 9, B2P1_0, which is the first page data of the second block of the flash memory 100, is loaded into the data area 300 of the main memory buffer 20. Currently there is no updated content, so only the original in the flash memory 100 needs to be loaded.

두번째 상태 도면에서 위 페이지 데이터 B2P1_0이 B2P1_1 버전으로 갱신되었다. 이때의 갱신 내용 L2D1은 갱신 이전 버전인 B2P1_0과 갱신 이후 버전인 B2P1_1의 차이이다. 도면에서는 편의상 이를 빼기 기호를 써서 나타내었다. 전술한 바와 같이 L2D1은 상변환 메모리(200)의 L2 영역에 저장될 첫번째 갱신 내용이다. 갱신된 페이지(B2P) 두번째 논리적 블럭(B2)에 속한 페이지이므로, 이 페이지에 대한 갱신 내용은 L2에 저장된다.In the second state diagram, the above page data B2P1_0 has been updated to the B2P1_1 version. The update content L2D1 at this time is a difference between B2P1_0 which is a version before update and B2P1_1 which is a version after update. In the drawings, it is shown using a minus sign for convenience. As described above, L2D1 is the first update content to be stored in the L2 area of the phase change memory 200. Updated page B2P Since the page belongs to the second logical block B2, the update contents for this page are stored in L2.

세번째 상태 도면에서 B1P1_0 데이터가 로드되었다. 첫번째 상태 도면에서와 마찬가지로 로드시 적용할 갱신 내용이 없으므로 원본 데이터가 그대로 로드되었다.In the third state diagram, the B1P1_0 data has been loaded. As in the first state drawing, the original data is loaded as there is no update to be applied at load.

네번째 상태 도면에서 페이지 데이터 B1P1_0이 B1P1_1 버전으로 갱신되었다. 해당 갱신 내용 L1D1은 갱신 이전 버전인 B1P1_0과 갱신 이후 버전인 B1P1_1의 차이이다.In the fourth state diagram, the page data B1P1_0 has been updated to the B1P1_1 version. The update content L1D1 is a difference between B1P1_0 which is a version before update and B1P1_1 which is a version after update.

다섯번째 상태 도면에서 페이지 데이터 B2P1_1이 B2P1_2 버전으로 갱신되었다. 즉, 페이지 B2P1은 주메모리 버퍼(20)로 로드된 후 2번째 갱신되었다. 해당 갱신 내용은 상변환 메모리(200)의 L2 영역에 저장될 두번째 갱신 내용이므로 L2D2로 나타낼 수 있다.In the fifth state diagram, the page data B2P1_1 has been updated to the B2P1_2 version. That is, the page B2P1 has been updated a second time after being loaded into the main memory buffer 20. The update content is the second update content to be stored in the L2 area of the phase-change memory 200 and may be referred to as L2D2.

여섯번째 상태 도면에서 B1P2_0 데이터가 로드되었고, 일곱번째 상태 도면에서 B1P2_1 버전으로 갱신되었다. 해당 갱신 내용은 L1에 저장할 갱신 내용 중 2번째 데이터이므로, L1D2이다.The B1P2_0 data was loaded in the sixth state diagram and updated to the B1P2_1 version in the seventh state diagram. The update content is L1D2 since it is the second data of the update content to be stored in L1.

여덟번째 상태 도면에서 페이지 데이터 B2P1_2는 B2P1_2 버전으로 다시 한번 갱신되었다. 해당 갱신 내용은 상변환 메모리(200)의 L2 영역에 저장될 세번째 갱신 내용이므로 L2D3이다.In the eighth state figure, the page data B2P1_2 has once again been updated to the B2P1_2 version. The update is L2D3 since it is the third update to be stored in the L2 area of the phase-change memory 200.

정리하자면, 도시되어 있는 바와 같이, 갱신 내용은 갱신된 페이지의 갱신 이전 버전과 갱신 이후 버전의 차이이며, 해당 페이지가 속한 블럭에 대응하는 갱신 내용 저장 공간에 페이지 순서와 상관없이 발생 순서대로 저장된다.In summary, as shown in the drawing, the update content is the difference between the pre-update and post-update versions of the updated page, and is stored in the order of occurrence regardless of the page order in the update content storage space corresponding to the block to which the page belongs. .

도 10은 본 발명에 따른 데이터 저장 시스템의 실시예에서 상변환 메모리에 갱신 내용이 저장된 상태를 도시하고 있다.10 illustrates a state in which an update is stored in a phase conversion memory in an embodiment of a data storage system according to the present invention.

도 9에서 발생한 갱신 내용들이 해당 갱신 내용 저장 영역에 저장되었다. 도시되어 있는 바와 같이, 갱신 내용의 크기는 고정되어 있지 않다. L1 영역은 2개의 갱신 내용만이 저장되었지만 가득 차 있고, L2 영역은 3개의 갱신 내용이 저장되었음에도 빈 공간이 남아있다.The update contents generated in FIG. 9 are stored in the update contents storage area. As shown, the size of the update contents is not fixed. In the L1 area, only two updates are stored, but they are full. In the L2 area, empty space remains even though three updates are stored.

도 11은 본 발명에 따른 데이터 저장 시스템의 실시예에서 플래시 메모리에 갱신 내용이 병합된 상태를 도시하고 있다.11 illustrates a state in which update contents are merged into a flash memory in an embodiment of a data storage system according to the present invention.

도 10의 L1은 가득 차 있어 더이상 갱신 내용을 저장할 공간이 없으므로, 비워야 한다. 전술한 바와 같이 이때가 플래시 메모리(100)의 원본 데이터가 갱신되는 시점이다.Since L1 of FIG. 10 is full and there is no more space for storing the updated contents, it should be empty. As described above, this is the time when the original data of the flash memory 100 is updated.

도시되어 있는 바와 같이, 먼저 플래시 메모리(100)의 빈 블럭을 B1에 새롭게 할당한다. 즉, 논리적으로 첫번째 블럭인 B1은 물리적으로 첫번째 블럭에서 세번째 블럭으로 할당된다.As shown, first, an empty block of the flash memory 100 is newly allocated to B1. That is, B1, which is logically the first block, is physically allocated from the first block to the third block.

상변환 메모리(200)의 해당 블럭에 대한 갱신 내용 저장 공간 L1에서 갱신 내용 L1D1, L1D2를 모두 읽어온 후, 블럭에 속한 각 페이지별로 해당하는 갱신 내용을 적용하여 새롭게 할당된 블럭에 저장한다. 즉, 첫번째 페이지는 원본 데이터 B1P1_0에 L1D1이 적용되어 재구성된 최신 버전으로 병합되고, 두번째 페이지는 원본 데이터 B1P2_0에 L1D2가 적용되어 재구성된 최신 버전으로 병합된다. 병합된 데이터는 주메모리로 로드되어 갱신되기 이전 버전이 되므로, 정의에 의해 다시 원본 데이터 B1P1_0, B1P2_0가 된다. 즉, 도 10에 도시되어 있는 B1P1_0, B1P2_0 데이터는 도 8에 도시되어 있는 B1P1_0, B1P2_0과 내용이 다르다.After all of the update contents L1D1 and L1D2 are read from the update contents storage space L1 of the corresponding block of the phase conversion memory 200, the corresponding update contents are applied to each page belonging to the block and stored in the newly allocated block. That is, the first page is merged into the latest version reconstructed by applying L1D1 to the original data B1P1_0, and the second page is merged into the latest version reconstructed by applying L1D2 to the original data B1P2_0. Since the merged data becomes the version before it is loaded into the main memory and updated, it becomes the original data B1P1_0 and B1P2_0 by definition. That is, the B1P1_0 and B1P2_0 data shown in FIG. 10 are different from the B1P1_0 and B1P2_0 shown in FIG. 8.

플래시 메모리(100)의 데이터에 병합되었으므로, 상변환 메모리(200)의 L1 영역에 있는 갱신 내용 데이터들은 더이상 필요하지 않다. 따라서 해당 영역을 비워서 다시 처음부터 새롭게 발생하는 L1D1, L1D2 등의 갱신 내용 데이터를 저장하면 된다.Since the data has been merged with the flash memory 100, the update content data in the L1 region of the phase change memory 200 is no longer needed. Therefore, it is only necessary to save the update contents data such as L1D1 and L1D2 which are newly generated from the beginning again by emptying the corresponding area.

전술한 본 발명의 설명은 예시를 위한 것이며, 본 발명이 속하는 기술분야의 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 예를 들어, 단일형으로 설명되어 있는 각 구성 요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성 요소들도 결합된 형태로 실시될 수 있다.The foregoing description of the present invention is intended for illustration, and it will be understood by those skilled in the art that the present invention may be easily modified in other specific forms without changing the technical spirit or essential features of the present invention. will be. It is therefore to be understood that the above-described embodiments are illustrative in all aspects and not restrictive. For example, each component described as a single entity may be distributed and implemented, and components described as being distributed may also be implemented in a combined form.

본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.The scope of the present invention is shown by the following claims rather than the above description, and all changes or modifications derived from the meaning and scope of the claims and their equivalents should be construed as being included in the scope of the present invention. do.

10: 메모리 시스템
100: 플래시 메모리
200: 상변환 메모리
10: Memory system
100: flash memory
200: phase change memory

Claims (18)

데이터 저장 시스템에 있어서,
데이터가 저장되는 플래시 메모리; 및
상기 데이터의 갱신 내용이 발생 순서대로 순차적으로 저장되는 상변환 메모리(PCRAM: Phase Change Random Access Memory);를 포함하되,
상기 갱신 내용은 상기 플래시 메모리에 저장된 데이터가 상위 메모리에서 갱신될 때 갱신되기 전 데이터와 갱신된 데이터의 차이이며,
상기 상변환 메모리의 갱신 내용 저장 공간은 상기 플래시 메모리의 블록별로 할당되는 것인 데이터 저장 시스템.
In a data storage system,
A flash memory in which data is stored; And
And a phase change memory (PCRAM: Phase Change Random Access Memory) in which the updated contents of the data are sequentially stored in the order of occurrence.
The update content is a difference between the data before the update and the updated data when the data stored in the flash memory is updated in the upper memory,
And updating content storage space of the phase change memory is allocated for each block of the flash memory.
제 1 항에 있어서,
데이터를 요청받으면 상기 플래시 메모리에 저장된 데이터에 상기 상변환 메모리에 저장되어 있는 갱신 내용을 순차적으로 적용하여 재구성한 최신 버전을 반환하는 데이터 저장 시스템.
The method of claim 1,
When the data is requested, the data storage system returns the latest version reconstructed by sequentially applying the update contents stored in the phase-change memory to the data stored in the flash memory.
제 1 항에 있어서,
상기 플래시 메모리에 저장된 데이터를 갱신하기 위하여 상기 플래시 메모리에 저장된 데이터에 상기 갱신된 데이터를 직접 덮어쓰지 않는 데이터 저장 시스템.
The method of claim 1,
And not to overwrite the updated data directly with the data stored in the flash memory to update the data stored in the flash memory.
제 1 항에 있어서,
상기 플래시 메모리에 저장된 데이터에 상기 갱신 내용을 발생 순서대로 순차적으로 적용하여 병합함으로써 상기 플래시 메모리에 저장된 데이터를 갱신하는 데이터 저장 시스템.
The method of claim 1,
And updating the data stored in the flash memory by sequentially applying and applying the update contents to the data stored in the flash memory in the order of occurrence.
제 1 항에 있어서,
상기 플래시 메모리에 저장된 데이터는 페이지 단위로 접근되고, 상기 갱신 내용은 바이트 단위로 접근되는 데이터 저장 시스템.
The method of claim 1,
Data stored in the flash memory is accessed in units of pages, and the update contents are accessed in units of bytes.
제 1 항에 있어서,
상기 갱신 내용은 크기가 가변적인 데이터 저장 시스템.
The method of claim 1,
And said update content is variable in size.
제 1 항에 있어서,
상기 상위 메모리에 기록되어 있던 하나 이상의 갱신 내용을 상기 상변환 메모리에 한꺼번에 저장하는 데이터 저장 시스템.
The method of claim 1,
And one or more update contents recorded in the upper memory in the phase change memory.
제 1 항에 있어서,
상기 상변환 메모리는 상기 플래시 메모리의 각 블럭별로 갱신 내용 저장 공간을 할당하는 데이터 저장 시스템.
The method of claim 1,
The phase change memory allocates update storage space for each block of the flash memory.
제 8 항에 있어서,
상기 갱신 내용은 상기 상변환 메모리의 상기 갱신 내용 저장 공간 내에서의 저장 위치가 고정적이지 않은 데이터 저장 시스템.
The method of claim 8,
And wherein the update contents are not fixed in a storage location in the update contents storage space of the phase change memory.
제 8 항에 있어서,
상기 플래시 메모리에 저장된 데이터가 갱신되는 시점은 상기 갱신 내용 저장 공간이 가득 찼을 때이며, 상기 플래시 메모리에 저장된 데이터를 갱신함으로써 상기 갱신 내용 저장 공간을 비우는 데이터 저장 시스템.
The method of claim 8,
The time point at which the data stored in the flash memory is updated is when the update content storage space is full, and the data storage system frees the update content storage space by updating the data stored in the flash memory.
제 1 항에 있어서,
상기 플래시 메모리에 저장된 데이터는 데이터베이스 데이터인 데이터 저장 시스템.
The method of claim 1,
Data stored in the flash memory is database data.
플래시 메모리와 상변환 메모리를 포함하는 데이터 저장 시스템을 사용한 데이터 관리 방법에 있어서,
(a) 상기 플래시 메모리에 저장되어 있는 데이터에 상기 상변환 메모리에 저장되어 있는 갱신 내용을 적용한 데이터를 상위 메모리로 로드하는 단계;
(b) 상기 상위 메모리에 로드되어 갱신된 데이터의 갱신 내용을 상기 상변환 메모리에 저장하는 단계; 및
(c) 상기 상변환 메모리에 저장되어 있는 상기 갱신 내용을 상기 플래시 메모리에 저장된 데이터에 병합하여 상기 플래시 메모리에 저장된 데이터를 갱신하는 단계;를 포함하되,
상기 갱신 내용은 상기 플래시 메모리에 저장된 데이터가 상기 상위 메모리에서 갱신될 때 갱신되기 전 데이터와 갱신된 데이터의 차이이며,
상기 상변환 메모리의 갱신 내용 저장 공간은 상기 플래시 메모리의 블록별로 할당되는 것인 데이터 관리 방법.
In the data management method using a data storage system including a flash memory and a phase conversion memory,
(a) loading data into which the update contents stored in the phase change memory are applied to the data stored in the flash memory into the upper memory;
(b) storing updated contents of the data loaded and updated in the upper memory in the phase change memory; And
(c) merging the update contents stored in the phase change memory with data stored in the flash memory to update data stored in the flash memory;
The update content is a difference between the data before updating and the updated data when the data stored in the flash memory is updated in the upper memory,
And updating content storage space of the phase change memory is allocated for each block of the flash memory.
제 12 항에 있어서,
상기 (b) 단계는
상기 상위 메모리에 기록되어 있던 하나 이상의 갱신 내용을 상기 상변환 메모리에 한꺼번에 저장하는 데이터 관리 방법.
13. The method of claim 12,
The step (b)
And storing one or more update contents recorded in the upper memory at a time in the phase change memory.
제 12 항에 있어서,
상기 (b) 단계는
상기 갱신 내용을 상기 상변환 메모리의 상기 플래시 메모리의 블럭별로 할당된 갱신 내용 저장 공간에 저장하는 데이터 관리 방법.
13. The method of claim 12,
The step (b)
And storing the update contents in the update contents storage space allocated for each block of the flash memory of the phase change memory.
제 13 항에 있어서,
상기 (b) 단계는
상기 갱신 내용을 상기 갱신 내용 저장 공간 내에서 기존에 저장되어 있는 데이터에 덧붙여 발생 순서대로 순차적으로 저장하는 데이터 관리 방법.
14. The method of claim 13,
The step (b)
And storing the updated contents sequentially in the order of occurrence in addition to the data previously stored in the updated contents storage space.
제 13 항에 있어서,
상기 (c) 단계는
상기 갱신 내용 저장 공간에 가용 저장 공간이 없을 때 수행되는 데이터 관리 방법.
14. The method of claim 13,
The step (c)
The data management method performed when there is no available storage space in the update content storage space.
제 13 항에 있어서,
상기 (c) 단계는
상기 플래시 메모리에 저장된 데이터의 갱신을 통해 상기 갱신 내용 저장 공간을 비우는 데이터 관리 방법.
14. The method of claim 13,
The step (c)
The data management method of emptying the update storage space by updating the data stored in the flash memory.
제 12 항에 있어서,
상기 플래시 메모리에 저장된 데이터는 데이터베이스 데이터인 데이터 관리 방법.
13. The method of claim 12,
And the data stored in the flash memory is database data.
KR1020120068217A 2012-06-25 2012-06-25 Data storage system and data management method KR101375832B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020120068217A KR101375832B1 (en) 2012-06-25 2012-06-25 Data storage system and data management method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020120068217A KR101375832B1 (en) 2012-06-25 2012-06-25 Data storage system and data management method

Publications (2)

Publication Number Publication Date
KR20140000830A KR20140000830A (en) 2014-01-06
KR101375832B1 true KR101375832B1 (en) 2014-03-17

Family

ID=50138561

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120068217A KR101375832B1 (en) 2012-06-25 2012-06-25 Data storage system and data management method

Country Status (1)

Country Link
KR (1) KR101375832B1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102221249B1 (en) * 2018-08-24 2021-03-02 한국과학기술원 Method and apparatus for permanently destroying data

Non-Patent Citations (6)

* Cited by examiner, † Cited by third party
Title
Chul Lee et al.,‘Efficient Logging of Metadata Using NVRAM for NAND Flash based File System’, IEEE Trans. on Consumer Electronics, Vol. 58, No. 1, February 2012.
Chul Lee et al.,'Efficient Logging of Metadata Using NVRAM for NAND Flash based File System', IEEE Trans. on Consumer Electronics, Vol. 58, No. 1, February 2012. *
Yoon Jae Seong et al.,‘Hydra: A Block-Mapped Parallel Flash Memory Solid-State Disk Architecture’, IEEE Trans. on Computers, Vol. 59, No. 7, July 2010.
Yoon Jae Seong et al.,'Hydra: A Block-Mapped Parallel Flash Memory Solid-State Disk Architecture', IEEE Trans. on Computers, Vol. 59, No. 7, July 2010. *
양유석외 1명, ‘SSD의 성능향상을 위한 접근빈도에 따른 데이터 할당 및 교체기법’, 대한전자공학회 전자공학회 논문지 CI편, 제48권, 제5호, 페이지 74-82, 2011년 9월
양유석외 1명, 'SSD의 성능향상을 위한 접근빈도에 따른 데이터 할당 및 교체기법', 대한전자공학회 전자공학회 논문지 CI편, 제48권, 제5호, 페이지 74-82, 2011년 9월 *

Also Published As

Publication number Publication date
KR20140000830A (en) 2014-01-06

Similar Documents

Publication Publication Date Title
US8321652B2 (en) Process and method for logical-to-physical address mapping using a volatile memory device in solid state disks
US9652386B2 (en) Management of memory array with magnetic random access memory (MRAM)
US9792067B2 (en) Trim command processing in a solid state drive
US9342256B2 (en) Epoch based storage management for a storage device
US8954694B2 (en) Methods, data storage devices and systems for fragmented firmware table rebuild in a solid state drive
KR101982251B1 (en) Method for storage devices to achieve low write amplification with low over provision
US20140129758A1 (en) Wear leveling in flash memory devices with trim commands
US11397669B2 (en) Data storage device and non-volatile memory control method
US9507523B1 (en) Methods, devices and systems for variable size logical page management in a solid state drive
KR101017067B1 (en) Locality-Aware Garbage Collection Technique for NAND Flash Memory-Based Storage Systems
KR20100115090A (en) Buffer-aware garbage collection technique for nand flash memory-based storage systems
CN110309077B (en) Method and device for constructing flash translation layer of cooperative work of host and equipment
US11307979B2 (en) Data storage device and non-volatile memory control method
US11182286B2 (en) Data storage device and control method for non-volatile memory
KR101375832B1 (en) Data storage system and data management method
KR101020781B1 (en) A method for log management in flash memory-based database systems
US11269534B2 (en) Data storage device and non-volatile memory control method
KR101480420B1 (en) Memory-Disk Hybrid System
KR101375838B1 (en) Data storage system and data management method
US11748023B2 (en) Data storage device and non-volatile memory control method

Legal Events

Date Code Title Description
N231 Notification of change of applicant
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee