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

Data storage system and data management method Download PDF

Info

Publication number
KR101375838B1
KR101375838B1 KR1020120067993A KR20120067993A KR101375838B1 KR 101375838 B1 KR101375838 B1 KR 101375838B1 KR 1020120067993 A KR1020120067993 A KR 1020120067993A KR 20120067993 A KR20120067993 A KR 20120067993A KR 101375838 B1 KR101375838 B1 KR 101375838B1
Authority
KR
South Korea
Prior art keywords
data
update
nonvolatile memory
storage space
memory
Prior art date
Application number
KR1020120067993A
Other languages
Korean (ko)
Other versions
KR20140000780A (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 KR1020120067993A priority Critical patent/KR101375838B1/en
Publication of KR20140000780A publication Critical patent/KR20140000780A/en
Application granted granted Critical
Publication of KR101375838B1 publication Critical patent/KR101375838B1/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/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)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

본 발명은 데이터가 저장되는 제 1 휘발성 메모리; 및 상기 데이터의 갱신 빈도에 따라 동적으로 할당되는 갱신 내용 저장 공간에 상기 데이터의 갱신 내용이 발생 순서대로 순차적으로 저장되는 제 2 휘발성 메모리;를 포함하되, 상기 갱신 내용은 상기 제 1 휘발성 메모리에 저장된 데이터가 상위 메모리에서 갱신될 때 갱신되기 전 데이터와 갱신된 데이터의 차이인 데이터 저장 시스템을 제공한다.The present invention provides a memory device comprising: a first volatile memory in which data is stored; And a second volatile memory sequentially storing the updated contents of the data in an order of occurrence in an update contents storage space dynamically allocated according to the update frequency of the data, wherein the updated contents are stored in the first volatile memory. When the data is updated in the upper memory, a data storage system is provided, which is a difference between the data before updating and the 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.

이때, 갱신 빈도가 높은 핫(hot) 데이터를 특별 처리한다면 데이터 저장 장치의 성능을 더욱 높일 수 있을 것이다.In this case, special processing of hot data with high update frequency may further improve the performance of the data storage device.

이와 관련하여 한국등록특허 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 in view of the above-described problems, and an object thereof is to provide a data storage system and a data management method which provide improved performance through special processing of data with high complementary and update frequency of flash memory and phase conversion memory. will be.

상기와 같은 목적을 달성하기 위한 본 발명의 제 1 측면에 따른 데이터 저장 시스템은 데이터가 저장되는 제 1 휘발성 메모리; 및 상기 데이터의 갱신 빈도에 따라 동적으로 할당되는 갱신 내용 저장 공간에 상기 데이터의 갱신 내용이 발생 순서대로 순차적으로 저장되는 제 2 휘발성 메모리;를 포함하되, 상기 갱신 내용은 상기 제 1 휘발성 메모리에 저장된 데이터가 상위 메모리에서 갱신될 때 갱신되기 전 데이터와 갱신된 데이터의 차이인 것을 특징으로 한다.A data storage system according to a first aspect of the present invention for achieving the above object includes a first volatile memory in which data is stored; And a second volatile memory sequentially storing the updated contents of the data in an order of occurrence in an update contents storage space dynamically allocated according to the update frequency of the data, wherein the updated contents are stored in the first volatile memory. When the data is updated in the upper memory, it is characterized in that the difference between the data before the update and the updated data.

상기와 같은 목적을 달성하기 위한 본 발명의 제 2 측면에 따른 제 1 휘발성 메모리와 제 2 휘발성 메모리를 포함하는 데이터 저장 시스템을 사용한 데이터 관리 방법은 (a) 상기 제 1 휘발성 메모리에 저장되어 있는 데이터에 상기 제 2 휘발성 메모리의 갱신 내용 저장 공간에 저장되어 있는 갱신 내용을 적용한 데이터를 상위 메모리로 로드하는 단계; (b) 상기 상위 메모리에 로드되어 갱신된 데이터의 갱신 내용을 상기 제 2 휘발성 메모리의 갱신 내용 저장 공간에 저장하는 단계; (c) 상기 갱신된 데이터가 갱신이 자주 이루어지는 핫 데이터인지 여부를 판단하는 단계; (d) 상기 (c) 단계의 판단 결과가 핫 데이터인 데이터에 대해 상기 갱신 내용 저장 공간을 추가 할당하는 단계; 및 (e) 상기 제 1 휘발성 메모리에 저장된 데이터에 상기 갱신 내용을 발생 순서대로 순차적으로 적용하여 상기 제 1 휘발성 메모리에 저장된 데이터를 갱신하는 갱신 내용 병합 동작을 수행하고, 상기 갱신 내용 병합 동작을 통해 상기 갱신 내용 저장 공간을 비우는 단계;를 포함하되, 상기 갱신 내용은 상기 제 1 휘발성 메모리에 저장된 데이터가 상기 상위 메모리에서 갱신될 때 갱신되기 전 데이터와 갱신된 데이터의 차이인 것을 특징으로 한다.A data management method using a data storage system including a first volatile memory and a second volatile memory according to a second aspect of the present invention for achieving the above object is (a) data stored in the first volatile memory Loading data to which the update contents stored in the update contents storage space of the second volatile memory are applied to the upper memory in the second memory; (b) storing updated contents of the data loaded and updated in the upper memory in an updated contents storage space of the second volatile memory; (c) determining whether the updated data is hot data which is frequently updated; (d) additionally allocating the update content storage space for data whose determination result of step (c) is hot data; And (e) performing an update merge operation to update the data stored in the first volatile memory by sequentially applying the update contents to the data stored in the first volatile memory in the order of occurrence, and performing the update merge operation. And emptying the update content storage space, wherein the update content is a difference between the data before updating and the updated data when the data stored in the first volatile memory is updated in the upper memory.

본 발명은 데이터 저장 시스템 및 데이터 관리 방법에 있어, 플래시 메모리와 상변환 메모리가 서로 보완하도록 구성됨으로써 성능이 향상되는 효과를 얻는다.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 reduced. .

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

또한 갱신 빈도가 높은 핫(hot) 데이터에 대한 갱신 내용 저장 공간이 동적으로 증가하므로 성능이 더욱 향상된다.In addition, the update storage space for hot data, which is frequently updated, increases dynamically, further improving performance.

또한 갱신 내용 저장 공간을 동적으로 할당하게 되므로, 상변환 메모리의 특정 영역에 대한 열화를 더욱 줄일 수 있다.In addition, since the update storage space is dynamically allocated, deterioration of a specific area of the phase change memory can be further reduced.

도 1은 본 발명에 따른 데이터 저장 시스템을 도시함.
도 2는 본 발명에 따른 데이터 저장 시스템의 내부 구조를 도시하고 있음.
도 3은 여러 저장 매체의 속도 차이를 비교하여 도시함.
도 4는 본 발명에 따른 데이터 관리 방법의 흐름을 도시함.
도 5는 본 발명에 따른 데이터 관리 방법의 주메모리로의 데이터 로드 단계의 흐름을 도시함.
도 6은 본 발명에 따른 데이터 관리 방법의 핫 블럭 처리 단계의 흐름을 도시함.
도 7은 본 발명에 따른 데이터 관리 방법의 플래시 메모리로의 갱신 내용 병합 단계의 흐름을 도시함.
1 shows a data storage system according to the invention.
2 shows an internal structure of a data storage system according to the present 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 hot block processing step 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.

아래에서는 첨부한 도면을 참조하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 본 발명의 실시예를 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.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)는 전술한 바와 같이 바이트 단위가 아닌 페이지 단위로 읽고 쓰며 데이터 삭제는 페이지의 집합인 블럭 단위로 이루어지는 저장 매체이다.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.

도면에 도시되어 있는 바와 같이, 플래시 메모리(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.

플래시 메모리(100) 데이터가 갱신되는 빈도는 각 블럭마다 다를 것이므로, 갱신 빈도가 높은 블럭을 핫(hot) 블럭으로 칭할 수 있다. 예를 들어, 도면에서 플래시 메모리(100)의 첫번째 블럭(B1)은 일반 블럭(102), 두번째 블럭(B2)은 핫 블럭(104)으로 도시되었다.Since the frequency of updating the flash memory 100 data will be different for each block, a block having a high update frequency may be referred to as a hot block. For example, in the drawing, the first block B1 of the flash memory 100 is shown as a general block 102 and a second block B2 as a hot block 104.

상변환 메모리(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)는 플래시 메모리(100)의 각 블럭별로 갱신 내용을 저장하되, 핫 블럭(104)의 갱신 내용을 저장하는 데에 동적으로 더 많은 공간을 할당한다. 동적 할당에 대한 자세한 이유와 그에 따른 효과는 후술하며, 구현 방법 및 그에 따른 상변환 메모리(200)의 구조를 먼저 간략하게 설명한다.The phase change memory 200 stores update contents for each block of the flash memory 100, and dynamically allocates more space to store update contents of the hot block 104. Detailed reasons for the dynamic allocation and the effects thereof will be described later, and an implementation method and a structure of the phase conversion memory 200 will be briefly described first.

본 발명에 따른 데이터 저장 시스템(10)은 갱신 내용 저장 공간을 동적으로 할당하는 효과는 얻으면서 동적 할당에 따른 동작 부하는 줄이기 위해 위해, 상변환 메모리(200)를 기본 영역(202)과 예비 영역(204)으로 나누어 관리한다. 상변환 메모리(200)는 기본 영역(202)에 플래시 메모리(100)의 각 블럭별로 갱신 내용 저장 공간을 고정 할당하고, 핫 블럭(104)에 대해서는 예비 영역(204)에 있는 공간을 추가적인 갱신 내용 저장 공간으로 더 할당한다. The data storage system 10 according to the present invention uses the phase conversion memory 200 and the base area 202 and the spare area in order to obtain an effect of dynamically allocating update storage space while reducing the operation load caused by the dynamic allocation. Manage by dividing by (204). The phase change memory 200 fixedly allocates update storage space for each block of the flash memory 100 to the basic area 202, and additionally updates the space in the spare area 204 for the hot block 104. Allocate more storage space.

기본 영역(202)에서 플래시 메모리(100)의 각 블럭과 상변환 메모리(200)의 각 갱신 내용 저장 공간은 1 대 1 대응되므로, 플래시 메모리(100)의 i번째 블럭(Bi)에 속한 페이지들에 대해 상변환 메모리(200)에 할당된 갱신 내용 저장 공간을 Li로 나타낼 수 있다. 반면 예비 영역(204)에 준비되어 있는 각 공간(R1, R2, ..., Rk, ...)은 핫 블럭(104)에 대해 동적으로 선택되어 할당된다. 예를 들어, 기존에 핫 블럭(104)으로 판단된 블럭이 없는 상태에서 플래시 메모리(100)의 두번째 블럭(B2)이 핫 블럭(104)으로 판단될 경우, 이 블럭에 대한 갱신 내용 저장 공간은 L2 외에 R1이 추가적으로 할당될 수 있다. 할당 시점은 L2가 가득 찼을 때로, R1까지 가득 찬다면 R2가 추가적으로 더 할당될 수 있다.Since each block of the flash memory 100 and each update storage space of the phase-change memory 200 correspond one-to-one in the basic area 202, pages belonging to the i-th block Bi of the flash memory 100 may correspond. The update storage space allocated to the phase-conversion memory 200 with respect to may be represented as Li. On the other hand, each of the spaces R1, R2, ..., Rk, ... prepared in the spare area 204 is dynamically selected and allocated to the hot block 104. For example, when the second block B2 of the flash memory 100 is determined to be a hot block 104 in a state where there is no block previously determined as the hot block 104, the update storage space for the block is In addition to L2, R1 may be additionally allocated. The allocation time point is when L2 is full. If R1 is full, R2 may be additionally allocated.

이때 본 발명에 따른 데이터 저장 시스템(10)은 포인터(pointer)를 사용하여 추가적으로 할당되는 갱신 내용 저장 공간을 관리한다. 실시예에 따라 포인터는 L2에서 R1, R1에서 R2를 가리키도록 구성될 수도 있고, 그 역방향으로 구성될 수도 있다. 편의를 위해 일실시예에서 주메모리 버퍼(20)에 이러한 포인터를 저장하는 공간이 마련될 수 있다.In this case, the data storage system 10 according to the present invention manages an update content storage space additionally allocated using a pointer. According to an embodiment, the pointer may be configured to point to R1 at L2, R2 at R1, and vice versa. For convenience, in one embodiment, a space for storing such a pointer may be provided in the main memory buffer 20.

본 발명에 따른 데이터 저장 시스템(10)이 갱신된 데이터를 플래시 메모리(100)에 저장되어 있는 데이터에 직접 덮어쓰지 않고, 갱신 내용만을 상변환 메모리(200)에 저장하는 이유는 다음과 같다.The reason why the data storage system 10 stores only the updated contents in the phase-conversion memory 200 without directly overwriting the updated data with the data stored in the flash memory 100 is as follows.

플래시 메모리(100)에 저장되어 있는 데이터는 전술한 바와 같이 주메모리 버퍼(20)로 로드된다. 데이터가 플래시 메모리(100)에 저장되므로, 주메모리 버퍼(20)의 데이터 영역(300)으로 로드되는 데이터 단위는 페이지이다. 반면, 로드된 데이터가 갱신되는 단위는 바이트이며, 일반적으로 전체 페이지의 극히 일부만이 변경된다. 예를 들어, 데이터베이스 시스템에 적용하였을 때, 데이터베이스 연산에 의해 갱신되는 데이터는 평균 수십 바이트에 불과하다고 알려져 있다.Data stored in the flash memory 100 is loaded into the main memory buffer 20 as described above. 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에 근접한 쓰기 속도를 보이고 쓰기 이전에 삭제를 수행해야 할 필요가 없는 비휘발성 저장 매체이므로 갱신 내용을 저장하기에 매우 적합하다. 따라서 본 발명에 따른 데이터 저장 시스템(10)은 플래시 메모리 자체에 페이지별 로그 영역을 두는 종래 기술보다 성능이 좋다.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. . Therefore, the data storage system 10 according to the present invention has better performance than the prior art in which a log area for each page is provided in the flash memory itself.

예를 들어, 주메모리 버퍼(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바이트의 갱신 내용을 적용하여 반환하면 된다.This keeps a record of the update contents without updating the data in the flash memory 100, so that the latest version of the data can be calculated when the data is needed. 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 allocates them separately for each block. The fixed allocation for each page is not preferable because of the above-mentioned reasons, but it is also undesirable to use the entire phase conversion memory 200 without any distinction. 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 the update content for the block can no longer be stored because of full data may occur. In this case, the data stored in the flash memory 100 of the block may be updated to the latest version in which the update contents are merged and then 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.

단, 핫 블럭(104)인 경우에는 이러한 갱신 내용 병합 동작을 미루고, 전술한 바와 같이 예비 영역(204)에서 추가적인 갱신 내용 저장 공간을 더 할당한다.However, in the case of the hot block 104, such update merging operation is postponed, and as described above, an additional update storage space is further allocated in the spare area 204.

본 발명에 따른 데이터 저장 시스템(10)은 핫 블럭(104)에 대해 동적으로 추가적인 갱신 내용 저장 공간을 더 할당함으로써 전술한 여러 가지 효과에 더해 성능을 더욱 향상시킬 수 있다. 이는 특정 시간 윈도우(예를 들어, 최근 한 시간) 내에 갱신이 자주 발생한 핫 블럭(104)은 전체 블록 수에 비해 아주 일부분인 경우가 많기 때문이다. 전체 갱신 횟수의 20% 정도가 5%의 데이터에 대해 발생한다고 알려져 있다. 따라서, 이러한 핫 블럭(104)을 동적으로 찾아내고 이에 대해 추가적인 갱신 내용 저장 영역을 할당하면 성능을 더욱 향상시킬 수 있다.The data storage system 10 according to the present invention can further improve performance in addition to the aforementioned effects by dynamically allocating additional update storage space dynamically for the hot block 104. This is because hot blocks 104, which frequently occur within a certain time window (e.g., the last hour), are often only a fraction of the total number of blocks. It is known that about 20% of the total updates occur for 5% of data. Thus, dynamically finding such hot blocks 104 and allocating additional update storage areas for them can further improve performance.

또한 전술한 바와 같이, 상변환 메모리(200)의 특정 영역에 열화가 가중되는 현상을 감소시킬 수 있다. 핫 블럭(104)은 데이터의 갱신이 자주 발생하는 블럭을 뜻하므로, 대응하는 상변환 메모리(200)의 갱신 내용 저장 공간에는 데이터가 자주 기록되어야 한다. 따라서 해당 메모리 셀들은 다른 메모리 셀들보다 수명이 짧아진다. 그러므로 전술한 바와 같은 저장 매체의 수명 문제를 해결하기 위해, 해당 영역에 열화가 치중되지 않도록 하는 것이 바람직하다. 즉, 추가적인 갱신 내용 저장 공간 할당을 통해 해당 갱신 내용 저장 공간에 대한 기록 부하를 줄여줌으로써, 본 발명에 따른 데이터 저장 시스템(10)은 상변환 메모리(200)를 더 오래 사용할 수 있게 한다.In addition, as described above, a phenomenon in which deterioration is increased in a specific area of the phase conversion memory 200 may be reduced. Since the hot block 104 is a block in which data is frequently updated, data must be frequently recorded in the update contents storage space of the corresponding phase conversion memory 200. Therefore, corresponding memory cells have a shorter lifespan than other memory cells. Therefore, in order to solve the lifetime problem of the storage medium as described above, it is desirable to prevent deterioration in the area concerned. In other words, by reducing the recording load on the update storage space through the additional update storage space allocation, the data storage system 10 according to the present invention allows the phase conversion memory 200 to be used longer.

이때, 예비 영역(204)에 마련할 추가적인 갱신 내용 저장 공간의 크기는 성능과 공간에 대한 트레이드 오프를 고려하여 설정한다. 예를 들어, 일실시예에서 전체 예비 영역(204)의 크기는 전체 데이터 블록 수의 10% 이내로 설정할 수 있다.At this time, the size of the additional update content storage space to be provided in the spare area 204 is set in consideration of the performance and the trade-off for the space. For example, in one embodiment, the size of the entire spare area 204 may be set within 10% of the total number of data blocks.

핫 블럭(104)에 대해 갱신 내용 저장 공간을 추가적으로 할당하기 위해서는 핫 블럭(104) 여부를 판별하는 방법이 필요하다. 핫 블럭(104)은 갱신 빈도가 높은 블럭, 즉, 특정 시간 윈도우 내에서 갱신이 자주 이루어지는 블럭이므로, 상변환 메모리(200)에 쓰여지는 각 갱신 내용에 해당 갱신 내용이 쓰여지는 시점(time stamp) 정보를 부가적으로 포함함으로써 해당 블럭의 핫 블럭(104) 여부를 판단할 수 있다.In order to additionally allocate the update content storage space to the hot block 104, a method of determining whether or not the hot block 104 is required is required. Since the hot block 104 is a block having a high update frequency, that is, a block in which updates are frequently performed within a specific time window, a time stamp in which the corresponding update contents are written to each update contents written in the phase-change memory 200 is performed. By additionally including the information, it may be determined whether the block is a hot block 104.

이때 핫 블럭(104) 여부 판별은 쓰기 요청에 따라 갱신 내용을 저장해야 할 현재 갱신 내용 저장 공간, 즉 해당 블럭이 가장 최근에 할당받은 갱신 내용 저장 공간이 가득 찼을 때만 하면 된다. 새로운 갱신 내용 저장 공간을 추가적으로 할당할 것인지 여부는 현재 갱신 내용 저장 공간에 더이상 새로운 갱신 내용을 저장할 가용 공간이 없을 때만 하면 되기 때문이다. 가장 최근에 할당받은 갱신 내용 저장 공간이 가득 찼다는 것은 해당 블럭에 할당된 모든 갱신 내용 저장 공간이 가득 찼다는 뜻인 것이다. 이때 현재 갱신 내용 저장 공간은 기본 영역(202)에서 기본적으로 할당된 갱신 내용 저장 공간일 수도 있고, 예비 영역(204)에서 추가적으로 할당된 갱신 내용 저장 공간일 수도 있다. In this case, the determination of whether or not the hot block 104 may be performed only when the current update contents storage space in which the update contents are to be stored, that is, the update contents storage space most recently allocated by the corresponding block is full. Whether or not to allocate additional update storage space is only necessary when there is no more space available to store new update contents in the current update storage space. The most recently allocated update storage is full, which means that all update storage allocated to that block is full. In this case, the current update content storage space may be an update content storage space basically allocated in the basic area 202 or may be an update content storage space additionally allocated in the spare area 204.

예를 들어, 플래시 메모리(100)의 두번째 블럭(B2)이 핫 블럭(104)이고, 예비 영역(204)에서 R1, R2를 순서대로 더 할당받은 상태라면, 현재 L1과 R1는 가득 차 있고 R2에 해당 블럭(B2)의 갱신 내용이 저장되고 있을 것이다. 이때 R2가 가득 찬다면, 이 시점에서 해당 블럭(B2)이 여전히 핫 블럭(104)인지 여부를 판단하여, 핫 블럭(104)이면 추가 공간(예를 들어, R3)을 더 할당하고, 현재 시점에서는 핫 블럭(104)이 아니라면 전술한 갱신 내용 병합 동작을 통해 플래시 메모리(100)에 저장되어 있는 원본 데이터를 최신 버전으로 갱신한 후 해당 갱신 내용 저장 공간(L1, R1, R2)을 비우면 된다. 물론 이 경우 R1과 R2는 예비 영역(204)의 가용 공간으로 반환될 것이다.For example, if the second block B2 of the flash memory 100 is the hot block 104, and R1 and R2 are further allocated in the spare area 204 in order, the current L1 and R1 are full and R2 is present. The update contents of the block B2 will be stored in the. At this point, if R2 is full, it is determined at this point whether the block B2 is still a hot block 104. If it is a hot block 104, an additional space (for example, R3) is further allocated, and at this time, In the non-hot block 104, the update data merging operation may be performed by updating the original data stored in the flash memory 100 to the latest version and then emptying the update storage spaces L1, R1, and R2. In this case, of course, R1 and R2 will be returned to the available space of the spare area 204.

구체적으로 핫 블럭(104) 여부 판단은 해당 갱신 내용 저장 공간(R2)에서 가장 오래된 갱신 내용 저장 내용이 포함하고 있는 시점 정보와 저장해야 할 현재 갱신 내용의 시점 정보를 비교해서, 특정 임계치 이내일 경우 해당 블록을 핫 블럭(104)으로 판별하는 식으로 이루어진다. 이때 임계치는 사용자가 설정 가능하다. 예를 들어, 설정된 임계치가 1시간일 경우, 해당 갱신 내용 저장 공간(R2)에서 가장 오래된 갱신 내용 저장 내용이 2시간 30분 전에 저장되었을 경우에는 핫 블럭(104)이 아니라고 판별되고, 30분 전에 저장된 갱신 내용일 경우에는 핫 블럭(104)이라고 판별된다.In more detail, the determination whether the hot block 104 is performed is performed by comparing the time point information included in the oldest update content store in the update storage space R2 with the time point information of the current update to be stored, and being within a specific threshold. The block is determined as a hot block 104. At this time, the threshold value can be set by the user. For example, when the set threshold is 1 hour, when the oldest update storage in the update storage space R2 is stored 2 hours and 30 minutes ago, it is determined that it is not the hot block 104, and 30 minutes before In the case of the stored update contents, it is determined as the hot block 104.

해당 블럭(B2)이 핫 블럭(104)이라고 판별되었을 경우에는 전술한 바와 같이 추가 공간을 더 할당해야 하는데, 예비 영역(204)의 추가 공간은 기본 영역(202)과 달리 동적으로 할당되므로 어느 갱신 내용 저장 공간을 해당 블럭(B2)에 추가적으로 할당할 것인지 선정해야 한다. 특히 예비 영역(204)에 있는 가용 공간은 한정되어 있으므로, 더이상 할당할 수 있는 가용 추가 공간이 없을 경우 이에 대한 처리가 필요하다.If it is determined that the block B2 is the hot block 104, an additional space must be allocated as described above. The additional space of the spare area 204 is dynamically allocated unlike the base area 202, so any update is made. It is necessary to select whether to allocate the content storage space to the corresponding block B2. In particular, since the available space in the spare area 204 is limited, it is necessary to deal with it when there is no more available additional space that can be allocated.

예비 영역(204)에 가용 공간이 있을 경우 그 중 하나를 선택하는 방법은 구현자의 선택에 달려 있다. 예를 들어, 일실시예에서 예비 영역(204)에서 발견되는 첫번째 가용 공간(예를 들어, 전술한 예에서 R3)을 선택하면 된다.If there is available space in the spare area 204, the method of selecting one is up to the implementor. For example, in one embodiment the first available space found in the spare area 204 can be selected (eg, R3 in the above example).

예비 영역(204)에 있는 갱신 내용 저장 공간이 모두 사용 중이어서 가용 공간이 없을 경우에는, 예비 영역(204)에서 추가적인 갱신 내용 저장 공간을 할당 받은 데이터 블럭 중 가장 오랫동안 갱신 내용 쓰기가 발생하지 않은 블럭을 핫 블럭(104)이 아닌 기본 블럭(102)으로 돌아갈 희생자로 선정한다. 즉, 희생자는 기존의 핫 블럭 중에서 가장 핫하지 않은 블럭, 즉 갱신이 가장 오래 전에 이루어진 블럭이다. 해당 희생자에 전술한 바와 같은 갱신 내용 병합 동작을 수행하면 해당 희생자가 예비 영역(204)에서 사용하고 있던 갱신 내용 저장 공간을 가용 공간으로 반환시킬 수 있다. 따라서 희생자가 사용하던 예비 영역(204)에 있는 갱신 내용 저장 공간을 현재의 핫 블럭(104)에 할당하면 된다.If there is no available space because all of the update storage space in the spare area 204 is in use, the block in which the update write has not occurred for the longest time among the data blocks allocated the additional update storage space in the spare area 204. Is selected as the victim to return to the basic block 102 rather than the hot block 104. That is, the victim is the least hot block of the existing hot blocks, that is, the block with the longest update. When the above-described update merging operation is performed on the victim, the victim may return the update storage space used in the spare area 204 to the available space. Accordingly, the update storage space in the spare area 204 used by the victim may be allocated to the current hot block 104.

이상의 동작을 간략하게 정리하면, 주메모리 버퍼(20)에서의 데이터 갱신으로 인한 쓰기 요청시 본 발명에 따른 데이터 저장 시스템(10)은 플래시 메모리(100)에 저장되어 있는 원본 데이터를 갱신된 데이터로 덮어쓰는 대신 갱신 내용만을 상변환 메모리(200)의 해당 블럭에 할당된 현재 갱신 내용 저장 공간(기본 영역(202)에 있을 수도 있고, 예비 영역(204)에서 할당된 추가 공간일 수도 있음)에 저장한다. Briefly summarizing the above operation, when the write request is caused by the data update in the main memory buffer 20, the data storage system 10 according to the present invention uses the original data stored in the flash memory 100 as updated data. Instead of overwriting, only update contents are stored in the current update contents storage space (which may be in the primary region 202 or in the additional region allocated in the spare region 204) allocated to the corresponding block of the phase-change memory 200. do.

이때 해당 갱신 내용 저장 공간이 가득 차면, 해당 블럭이 핫 블럭(104)인지 여부를 판단한다. 핫 블럭(104)이 아닌 경우에는 할당된 모든 갱신 내용 저장 공간(Li 및 동적으로 추가 할당된 하나 이상의 갱신 내용 저장 공간)의 모든 갱신 내용을 발생 순서대로 순차적으로 병합하여 재구성한 최신 버전으로 플래시 메모리(100)의 원본 데이터를 갱신한 후, 할당된 모든 갱신 내용 저장 공간(Li 및 동적으로 추가 할당된 하나 이상의 갱신 내용 저장 공간)을 비우고, 추가 공간을 할당받았었다면 해당 공간을 예비 영역(204)의 가용 공간으로 반환한다.At this time, if the update storage space is full, it is determined whether the block is a hot block (104). If it is not the hot block 104, the flash memory is the latest version that is reconstructed by sequentially merging all updates from all allocated update storage spaces (Li and one or more dynamically allocated storage spaces allocated dynamically) in order of occurrence. After updating the original data of (100), all allocated update storage spaces (Li and one or more dynamically allocated storage spaces allocated dynamically) are emptied, and if the additional space has been allocated, the space is reserved. Return the available space of.

핫 블럭(104)인 경우에는 예비 영역(204)에서 추가 공간을 할당받되, 예비 영역(204)에 가용 공간이 없을 경우에는, 예비 영역(204)을 사용하고 있는 다른 블럭들 중 가장 핫하지 않은 블럭, 즉 갱신 내용 저장이 가장 오래 전에 이루어진 블럭이어서 기본 블럭(102)으로 돌아갈 희생자로 선정된 블럭이 반환한 공간을 할당받는다.In the case of the hot block 104, an additional space is allocated in the spare area 204. If there is no available space in the spare area 204, the hot block 104 is the least hot of other blocks using the spare area 204. The block, that is, the block whose update has been stored for the longest time, is allocated the space returned by the block selected as the victim to return to the basic block 102.

즉, 갱신 내용 병합을 통한 원본 데이터 갱신은 갱신 내용 저장 공간을 비워야 할 필요가 있을 때 이루어지는데, 구체적으로는 갱신 내용 저장 공간이 가득 찬 블럭 중 핫 블럭(104)이 아니거나, 다른 핫 블럭(104)을 위해 희생자로 선정되어 기본 블럭(102)으로 돌아가는 블럭에 대해 이루어진다.That is, update of original data through merging of updates is performed when it is necessary to free update storage space. Specifically, the hot data is not a hot block 104 or another hot block ( For the block that is selected as the victim for 104 and returns to basic block 102.

도 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 For the request page BiPj of the update contents stored in all update storage spaces (Li and one or more dynamically allocated storage spaces allocated dynamically) allocated to the corresponding block Bi of the conversion memory 200. The latest version of the data to which the update contents are sequentially applied is returned, and the data is loaded into the data area 300 of the main memory buffer 20 (S420).

주메모리 버퍼(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 current update area storage space (Li or most recently allocated update area storage space) 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.

핫 블럭 처리가 필요하면(S470), 핫 블럭(104)에 추가적인 갱신 내용 저장 공간을 할당하고(S480), 갱신 내용 병합 처리가 필요하면(S490), 모든 갱신 내용을 플래시 메모리(100)의 원본 데이터에 병합하여 해당 블럭의 갱신 내용 저장 영역을 비운다.If hot block processing is required (S470), an additional update content storage space is allocated to the hot block 104 (S480), and if update merge processing is required (S490), all update contents are stored in the original of the flash memory 100. Merge the data to free up the update storage area of the block.

전술한 바와 같이, 핫 블럭 처리나 갱신 내용 병합 처리는 갱신 내용 쓰기 요청시 현재 갱신 내용 저장 공간이 가득 차 있는 블럭에 대해 이루어진다. 현재 갱신 내용 저장 공간에 저장되어 있는 가장 오래된 갱신 내용이 포함하고 있는 시점 정보와 쓰기 요청된 갱신 내용이 포함하고 있는 시점 정보를 비교하여 해당 블럭의 핫 여부를 판단한 후, 핫 블럭(104)이면 핫 블럭 처리 동작을 수행하고, 핫 블럭(104)이 아니면 갱신 내용 병합 처리 동작을 수행하되, 핫 블럭(104) 처리 과정은 희생자 블럭에 대한 갱신 내용 병합 처리 동작을 포함할 수 있다.As described above, hot block processing or update content merging processing is performed for blocks in which the current update content storage space is full when an update content write request is made. Compares the time point information included in the oldest update content stored in the current update content storage space with the time point information included in the write requested update content, and determines whether the corresponding block is hot. If the block processing operation is performed, and if not the hot block 104, the update content merging processing operation is performed, and the hot block 104 processing may include the update content merging processing operation for the victim block.

도 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 all update storage spaces Li and allotted for the block Bi belonging to the page in the phase-conversion memory 200 are included. Read all updates stored in the dynamically allocated one or more update storage space (S520), and sequentially update only the corresponding read request page (BiPj) to the original data read in the step (S510). If applied to (S530), since the page (BiPj) data is reconstructed to the latest version, it can be returned.

도 6은 본 발명에 따른 데이터 관리 방법의 핫 블럭 처리 단계(도 4의 480)의 흐름을 도시하고 있다.6 shows the flow of the hot block processing step (480 of FIG. 4) of the data management method according to the present invention.

예비 영역(204)에 가용 공간이 있는지 확인하여(S610), 없으면 전술한 바와 같이 갱신 내용 병합한 후 기본 블럭(102)으로 돌아갈 희생자를 선정하여 희생자에 할당되어 있던 추가 공간을 반환시켜 예비 영역(204)에 가용 공간을 마련한다(S620). Check whether there is available space in the spare area 204 (S610), if not, after merging the update contents as described above, the victim is selected to return to the basic block 102, and the additional space allocated to the victim is returned. An available space is provided in 204 (S620).

예비 영역(204)에 있는 가용 공간 중 하나를 핫 블럭(104)에 추가적인 갱신 내용 저장 공간으로 할당한다(S630).One of the available spaces in the spare area 204 is allocated to the hot block 104 as an additional update content storage space (S630).

도 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 of the update contents are read from all allocated update storage spaces (Li and one or more dynamically allocated update storage spaces) allocated for the merge required block Bi of the phase-change memory 200 (S720), Until all the pages of the required block Bi are updated (S750), the updated contents of the corresponding pages are sequentially applied to each page of the block (S730), and the page updated to 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)의 기본 영역(202)에서 할당된 해당 블럭에 대한 기본 갱신 내용 저장 공간(Li)은 다시 처음부터 사용할 수 있으며, 만약 예비 영역(204)에서 추가적인 갱신 내용 저장 공간이 하나 이상 할당되어 있었을 경우, 이를 예비 영역(204)에 가용 공간으로 반환할 수 있다.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 content, and thus the corresponding area allocated in the basic area 202 of the phase-change memory 200 is maintained. The default update storage space (Li) for the block is available again from the beginning, and if more than one additional update storage space has been allocated in the spare area 204, it is returned to the spare area 204 as available space. can do.

전술한 본 발명의 설명은 예시를 위한 것이며, 본 발명이 속하는 기술분야의 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 예를 들어, 단일형으로 설명되어 있는 각 구성 요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성 요소들도 결합된 형태로 실시될 수 있다.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 (25)

데이터 저장 시스템에 있어서,
데이터가 저장되는 제 1 비휘발성 메모리; 및
상기 데이터의 갱신 빈도에 따라 동적으로 할당되는 갱신 내용 저장 공간에 상기 데이터의 갱신 내용이 발생 순서대로 순차적으로 저장되는 제 2 비휘발성 메모리;를 포함하되,
상기 갱신 내용은 상기 제 1 비휘발성 메모리에 저장된 데이터가 상위 메모리에서 갱신될 때 갱신되기 전 데이터와 갱신된 데이터의 차이이며,
상기 제 2 비휘발성 메모리의 갱신 내용 저장 공간은 상기 제 1 비휘발성 메모리의 블럭별로 할당되는 데이터 저장 시스템.
In a data storage system,
A first nonvolatile memory in which data is stored; And
And a second nonvolatile memory configured to sequentially store update contents of the data in an order of occurrence in an update contents storage space dynamically allocated according to the update frequency of the data.
The update content is a difference between the data before updating and the updated data when the data stored in the first nonvolatile memory is updated in the upper memory,
The update storage space of the second nonvolatile memory is allocated for each block of the first nonvolatile memory.
제 1 항에 있어서,
데이터를 요청받으면 상기 제 1 비휘발성 메모리에 저장된 데이터에 상기 제 2 비휘발성 메모리에 저장되어 있는 상기 요청 데이터에 대한 모든 갱신 내용을 순차적으로 적용하여 재구성한 최신 버전을 반환하는 데이터 저장 시스템.
The method of claim 1,
And when the data is requested, return the latest version reconstructed by sequentially applying all updates to the requested data stored in the second nonvolatile memory to data stored in the first nonvolatile memory.
제 1 항에 있어서,
상기 제 1 비휘발성 메모리에 저장된 데이터에 상기 갱신 내용을 발생 순서대로 순차적으로 적용하여 상기 제 1 비휘발성 메모리에 저장된 데이터를 갱신하는 갱신 내용 병합 동작을 수행하고, 상기 갱신 내용 병합 동작을 통해 상기 갱신 내용 저장 공간을 비우는 데이터 저장 시스템.
The method of claim 1,
Sequentially applying the update contents to the data stored in the first nonvolatile memory in order of occurrence, and performing an update merge operation to update the data stored in the first nonvolatile memory, and performing the update through the update merge operation. Data storage system that frees up content storage.
제 1 항에 있어서,
상기 제 1 비휘발성 메모리에 저장된 데이터는 페이지 단위로 접근되고, 상기 갱신 내용은 바이트 단위로 접근되는 데이터 저장 시스템.
The method of claim 1,
Data stored in the first nonvolatile memory is accessed in units of pages, and the update contents are accessed in units of bytes.
제 1 항에 있어서,
상기 갱신 내용은 크기가 가변적이며, 상기 제 2 비휘발성 메모리의 상기 갱신 내용 저장 공간 내에서의 저장 위치가 고정적이지 않은 데이터 저장 시스템.
The method of claim 1,
Wherein said update content is variable in size and said storage location in said update storage space of said second non-volatile memory is not fixed.
제 1 항에 있어서,
상기 갱신 내용은 상기 갱신 내용의 발생 시점 정보를 포함하는 데이터 저장 시스템.
The method of claim 1,
And the update content includes information on when the update occurred.
제 1 항에 있어서,
상기 갱신 내용 저장 공간은 상기 제 1 비휘발성 메모리의 각 블럭별로 상기 제 2 비휘발성 메모리에 할당된 기본 갱신 내용 저장 공간; 및
상기 제 2 비휘발성 메모리의 예비 영역에서 동적으로 더 할당될 수 있는 추가적인 갱신 내용 저장 공간;을 포함하는 데이터 저장 시스템.
The method of claim 1,
The update content storage space may include a basic update content storage space allocated to the second nonvolatile memory for each block of the first nonvolatile memory; And
And additional update storage space that can be further dynamically allocated in the spare area of the second non-volatile memory.
제 7 항에 있어서,
가장 최근에 할당되어 상기 갱신 내용이 저장될 갱신 내용 저장 공간에 있는 가장 오래된 갱신 내용의 발생 시점과 현재 시점을 비교하여, 상기 시점간 차이가 기설정된 임계값 이내에 있는 갱신 내용 저장 공간에 대응되는 제 1 비휘발성 메모리 블럭을 핫 블럭으로 판단하는 데이터 저장 시스템.
The method of claim 7, wherein
Comparing the time point of occurrence of the oldest update content in the update content storage space to which the update content is most recently allocated and the current time point, and the difference between the time points corresponding to the update content storage space within a preset threshold; 1 A data storage system that determines a nonvolatile memory block as a hot block.
제 8 항에 있어서,
상기 추가적인 갱신 내용 저장 공간은 상기 핫 블럭 여부 판단 결과 핫 블럭인 블럭에 대해 할당되는 데이터 저장 시스템.
The method of claim 8,
And the additional update content storage space is allocated to a block that is a hot block as a result of the hot block determination.
제 8 항에 있어서,
상기 핫 블럭 여부 판단은 상기 갱신 내용이 저장될 갱신 내용 저장 공간이 가득찼을 때 수행되는 데이터 저장 시스템.
The method of claim 8,
The determination of whether or not the hot block is performed when an update content storage space for storing the update content is full.
제 8 항에 있어서,
상기 핫 블럭 여부 판단 결과 핫 블럭이 아닌 블럭에 대해 상기 갱신 내용 병합 동작을 수행하는 데이터 저장 시스템.
The method of claim 8,
And a data storage system for performing the merging of updated contents on a block other than a hot block as a result of determining whether the hot block is present.
제 8 항에 있어서,
상기 제 2 비휘발성 메모리의 예비 영역에 추가적인 갱신 내용 저장 공간으로 할당될 수 있는 가용 공간이 없을 경우, 상기 예비 영역에 추가적인 갱신 내용 저장 공간을 할당받아 사용하고 있는 블럭 중 갱신 내용 저장이 가장 오래 전에 이루어진 블럭에 대해 상기 갱신 내용 병합 동작을 수행함으로써 상기 예비 영역에 가용 공간을 마련하는 데이터 저장 시스템.
The method of claim 8,
If there is no available space that can be allocated as an additional update storage space in the spare area of the second nonvolatile memory, the update content is stored the longest time among the blocks that have been allocated additional update storage space in the spare area. And an available space in the spare area by performing the merging of updated contents on the blocks formed.
제 7 항에 있어서,
상기 추가적인 갱신 내용 저장 공간에 접근하기 위한 포인터(pointer)를 포함하는 데이터 저장 시스템.
The method of claim 7, wherein
And a pointer for accessing the additional update content storage space.
제 1 항에 있어서,
상기 제 1 비휘발성 메모리에 저장된 데이터는 데이터베이스 데이터인 데이터 저장 시스템.
The method of claim 1,
And data stored in the first nonvolatile memory is database data.
제 1 항에 있어서,
상기 제 1 비휘발성 메모리는 플래시 메모리이고, 상기 제 2 비휘발성 메모리는 상변환 메모리(PCRAM: Phase Change Random Access Memory)인 데이터 저장 시스템.
The method of claim 1,
The first nonvolatile memory is a flash memory, and the second nonvolatile memory is a phase change random access memory (PCRAM).
제 1 비휘발성 메모리와 제 2 비휘발성 메모리를 포함하는 데이터 저장 시스템을 사용한 데이터 관리 방법에 있어서,
(a) 상기 제 1 비휘발성 메모리에 저장되어 있는 데이터에 상기 제 2 비휘발성 메모리의 갱신 내용 저장 공간에 저장되어 있는 갱신 내용을 적용한 데이터를 상위 메모리로 로드하는 단계;
(b) 상기 상위 메모리에 로드되어 갱신된 데이터의 갱신 내용을 상기 제 2 비휘발성 메모리의 갱신 내용 저장 공간에 저장하는 단계;
(c) 상기 갱신된 데이터가 갱신이 자주 이루어지는 핫 데이터인지 여부를 판단하는 단계;
(d) 상기 (c) 단계의 판단 결과가 핫 데이터인 데이터에 대해 상기 갱신 내용 저장 공간을 추가 할당하는 단계; 및
(e) 상기 제 1 비휘발성 메모리에 저장된 데이터에 상기 갱신 내용을 발생 순서대로 순차적으로 적용하여 상기 제 1 비휘발성 메모리에 저장된 데이터를 갱신하는 갱신 내용 병합 동작을 수행하고, 상기 갱신 내용 병합 동작을 통해 상기 갱신 내용 저장 공간을 비우는 단계;를 포함하되,
상기 갱신 내용은 상기 제 1 비휘발성 메모리에 저장된 데이터가 상기 상위 메모리에서 갱신될 때 갱신되기 전 데이터와 갱신된 데이터의 차이이며,
상기 제 2 비휘발성 메모리의 갱신 내용 저장 공간은 상기 제 1 비휘발성 메모리의 블록별로 할당되는 데이터 관리 방법.
A data management method using a data storage system including a first nonvolatile memory and a second nonvolatile memory,
(a) loading data to which the update contents stored in the update contents storage space of the second nonvolatile memory into the upper memory to the data stored in the first nonvolatile memory;
(b) storing updated contents of the data loaded and updated in the upper memory in an updated contents storage space of the second nonvolatile memory;
(c) determining whether the updated data is hot data which is frequently updated;
(d) additionally allocating the update content storage space for data whose determination result of step (c) is hot data; And
(e) sequentially applying the update contents to the data stored in the first nonvolatile memory, in order of occurrence, to perform update merge operation to update the data stored in the first nonvolatile memory, and to perform the merge operation of the update contents. Including the step of emptying the update storage space;
The update content is a difference between the data before updating and the updated data when the data stored in the first nonvolatile memory is updated in the upper memory,
The update management space of the second nonvolatile memory is allocated for each block of the first nonvolatile memory.
제 16 항에 있어서,
상기 제 1 비휘발성 메모리에 저장되는 데이터는 페이지 단위로 접근되며,
상기 제 2 비휘발성 메모리에 저장되는 데이터는 바이트 단위로 접근되고, 크기가 가변적이며, 상기 제 2 비휘발성 메모리에 저장되는 위치가 고정적이지 않은 데이터 관리 방법.
17. The method of claim 16,
Data stored in the first nonvolatile memory is accessed in units of pages.
The data stored in the second nonvolatile memory is accessed in units of bytes, has a variable size, and has a fixed location in the second nonvolatile memory.
제 16 항에 있어서,
상기 갱신 내용은 상기 갱신 내용의 발생 시점 정보를 포함하는 데이터 관리 방법.
17. The method of claim 16,
And the update content includes information on when the update occurred.
제 16 항에 있어서,
상기 (c) 단계는
상기 갱신된 데이터에 할당된 갱신 내용 저장 공간이 모두 가득 찼을 때 수행되는 데이터 관리 방법.
17. The method of claim 16,
The step (c)
The data management method performed when all the update contents storage space allocated to the updated data are full.
제 16 항에 있어서,
상기 (e) 단계는
상기 (c) 단계의 판단 결과가 핫 데이터가 아닌 데이터에 수행되는 데이터 관리 방법.
17. The method of claim 16,
The step (e)
And the determination result of step (c) is performed on data other than hot data.
제 16 항에 있어서,
상기 (e) 단계는
상기 (c) 단계의 판단 결과가 핫 데이터인 데이터에 추가적으로 할당할 수 있는 갱신 내용 저장 공간이 없을 경우 수행되는 데이터 관리 방법.
17. The method of claim 16,
The step (e)
The data management method is performed when there is no update content storage space that can be additionally allocated to data whose determination result in step (c) is hot data.
제 16 항에 있어서,
상기 (e) 단계는
기존 핫 데이터 중 갱신이 가장 오래 전에 이루어진 데이터에 대해 수행되는 데이터 관리 방법.
17. The method of claim 16,
The step (e)
Data management method performed on the oldest update of existing hot data.
제 16 항에 있어서,
상기 (c) 단계는
상기 갱신된 데이터에 대해 가장 최근에 할당된 갱신 내용 저장 공간에 있는 가장 오래된 갱신 내용의 시점과 현재 시점의 차이가 임계값 이하인 데이터를 핫 데이터로 판단하는 데이터 관리 방법.
17. The method of claim 16,
The step (c)
And determining that hot data is a difference between a time point of the oldest update content in the most recently allocated update content storage space for the updated data and a current time point or less.
제 16 항에 있어서,
상기 제 1 비휘발성 메모리에 저장된 데이터는 데이터베이스 데이터인 데이터 관리 방법.
17. The method of claim 16,
The data stored in the first nonvolatile memory is database data.
제 16 항에 있어서,
상기 제 1 비휘발성 메모리는 플래시 메모리이고, 상기 제 2 비휘발성 메모리는 상변환 메모리(PCRAM: Phase Change Random Access Memory)인 데이터 관리 방법.
17. The method of claim 16,
And the first nonvolatile memory is a flash memory and the second nonvolatile memory is a phase change random access memory (PCRAM).
KR1020120067993A 2012-06-25 2012-06-25 Data storage system and data management method KR101375838B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020120067993A KR101375838B1 (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
KR1020120067993A KR101375838B1 (en) 2012-06-25 2012-06-25 Data storage system and data management method

Publications (2)

Publication Number Publication Date
KR20140000780A KR20140000780A (en) 2014-01-06
KR101375838B1 true KR101375838B1 (en) 2014-03-17

Family

ID=50138519

Family Applications (1)

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

Country Status (1)

Country Link
KR (1) KR101375838B1 (en)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060052236A (en) * 2004-10-27 2006-05-19 소니 가부시끼 가이샤 Storage device and information processing system
KR20110109418A (en) * 2010-03-31 2011-10-06 성균관대학교산학협력단 Non-volatile memory storage and method for improving performance of non-volatile memory storage

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060052236A (en) * 2004-10-27 2006-05-19 소니 가부시끼 가이샤 Storage device and information processing system
KR20110109418A (en) * 2010-03-31 2011-10-06 성균관대학교산학협력단 Non-volatile memory storage and method for improving performance of non-volatile memory storage

Non-Patent Citations (2)

* 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. *

Also Published As

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

Similar Documents

Publication Publication Date Title
US11922039B2 (en) Storage device that secures a block for a stream or namespace and system having the storage device
US9652386B2 (en) Management of memory array with magnetic random access memory (MRAM)
KR101966693B1 (en) Lba bitmap usage
US8321652B2 (en) Process and method for logical-to-physical address mapping using a volatile memory device in solid state disks
JP5571691B2 (en) Maintaining mapping address tables in storage
KR101324688B1 (en) Memory system having persistent garbage collection
EP2293196B1 (en) Non-volatile memory and method with non-sequential update block management
KR101982251B1 (en) Method for storage devices to achieve low write amplification with low over provision
US20190220396A1 (en) Data Storage Device
US20140129758A1 (en) Wear leveling in flash memory devices with trim commands
KR20100115090A (en) Buffer-aware garbage collection technique for nand flash memory-based storage systems
KR101017067B1 (en) Locality-Aware Garbage Collection Technique for NAND Flash Memory-Based Storage Systems
US11334480B2 (en) Data storage device and non-volatile memory control method
CN110309077B (en) Method and device for constructing flash translation layer of cooperative work of host and equipment
CN106557428A (en) The mapped system of data storage device is selected
US20150220433A1 (en) Method for managing flash memories having mixed memory types using a finely granulated allocation of logical memory addresses to physical memory addresses
EP2264602A1 (en) Memory device for managing the recovery of a non volatile memory
KR101077901B1 (en) Apparatus and method for managing flash memory using log block level mapping algorithm
KR101020781B1 (en) A method for log management in flash memory-based database systems
KR20110070656A (en) Method and apparatus for processing data of flash memory
KR101375838B1 (en) Data storage system and data management method
KR101375832B1 (en) Data storage system and data management method
CN117492637A (en) Data writing method and solid state disk

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