KR20190045121A - Method and apparatus for managing data of non-volatile memory in hybrid main memory system - Google Patents
Method and apparatus for managing data of non-volatile memory in hybrid main memory system Download PDFInfo
- Publication number
- KR20190045121A KR20190045121A KR1020190046820A KR20190046820A KR20190045121A KR 20190045121 A KR20190045121 A KR 20190045121A KR 1020190046820 A KR1020190046820 A KR 1020190046820A KR 20190046820 A KR20190046820 A KR 20190046820A KR 20190045121 A KR20190045121 A KR 20190045121A
- Authority
- KR
- South Korea
- Prior art keywords
- data
- memory module
- memory
- random
- cache
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/22—Safety or protection circuits preventing unauthorised or accidental access to memory cells
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1416—Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/78—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
- G06F21/79—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in semiconductor storage media, e.g. directly-addressable memories
Abstract
Description
본 발명은 하이브리드 메인 메모리 시스템의 비휘발성 메모리의 데이터 관리 방법 및 그 장치에 관한 것이다. 보다 자세하게는 잊혀질 권리(Duty to Delete)를 비휘발성 메모리에 적용하여, 하이브리드 메인 메모리 시스템의 비휘발성 메모리에 저장된 데이터를 무효화(invalid) 하는 방법 및 그 방법을 수행하는 장치에 관한 것이다.The present invention relates to a method and an apparatus for managing data in a nonvolatile memory of a hybrid main memory system. More particularly, to a method of invalidating data stored in a nonvolatile memory of a hybrid main memory system by applying a duty to delete to a nonvolatile memory and an apparatus performing the method.
최근 개인 정보의 보호에 대한 관심이 커지고 있다. 이러한 관심은 개인 정보 보호법(Personal Information Protection Law)으로 이어지고 있다. 우리나라에서도 개인 정보 보호법이 2011년 제정되어 시행되고 있으며, 유럽 위원회(European Commission)에서는 2016년 4월 27일 개인 정보 보호 규정(General Data Protection Regulation)을 채택한 바 있다. 유럽의 개인 정보 보호 규정 제65조에 따르면, 개인 정보의 주체는 몇 가지 예외 상황을 제외하고는 목적에 맞지 않는 개인 정보의 삭제를 요청할 수 있음을 명시하고 있다.Recently, interest in the protection of personal information is growing. This interest has led to the Personal Information Protection Law. In Korea, the Personal Information Protection Act was enacted in 2011, and the European Commission adopted the General Data Protection Regulation on April 27, 2016. In accordance with Article 65 of the European Privacy Act, the subject of personal information specifies that, except in a few exceptions, it may ask for the deletion of personal information that does not fit the purpose.
미국의 경우에는 헌법 제1조의 표현의 자유가 사생활 보호보다 더 강조되고 있었으나, 2012년 오바마 대통령이 "네트워크 환경에서의 개인 정보 보호: 글로벌 디지털 경제에서 개인 정보 보호와 혁신 촉진을 위한 기본 아이디어 (Consumer Information Privacy in Network World: A Fundamental Idea for Privacy Protection and Innovation Promotion in the Global Digital Economy)"를 발표하면서, 개인 정보 보호에 보다 초점을 맞추는 방향으로 변화하고 있다.In the United States, freedom of expression in
이러한 세계적인 변화의 흐름을 통해, 이제는 서비스를 제공하는데 불필요한 개인 정보는 의무적으로 삭제해야 한다는 것을 알 수 있다. 물론 이른바 "잊혀질 권리"(the right to be forgotten)에 있어서 삭제를 요청할 수 있는 개인 정보의 범위는 다를 수 있다. 그러나 개인 정보의 주체가 자신의 개인 정보의 삭제를 요청할 수 있다는 것이 현재의 추세이다.Through this global trend of change, we can see that mandatory deletion of personal information is no longer necessary to provide services. Of course, the so-called right to be forgotten, the range of personal information that may be requested for deletion may vary. However, the current trend is that the subject of personal information can request the deletion of his / her personal information.
개인 정보의 주체가 자신의 개인 정보의 삭제를 요청하면, 개인 정보를 관리하는 회사, 개인 정보를 이용해서 서비스를 제공하는 회사들은 자신의 시스템 상에서 이를 "삭제해야 할 의무"(the duty to delete)가 있다. 하지만 일반적으로 메모리 상에서 개인 정보를 삭제하더라도 삭제된 정보는 메모리 상에 그대로 남아있는 경우가 많다. 이처럼 종래에는 삭제한 정보이더라도 디지털 포렌식(Digital Forensics)에 의해서 복구가 가능한 경우가 있었다.When a subject of personal information requests deletion of his or her personal information, a company that manages personal information, or a company that provides services using personal information, must "delete" the duty to delete it on his / . However, in general, even if personal information is deleted from the memory, the deleted information is often left in the memory. As described above, there has been a case where the deleted information can be recovered by digital forensics.
이에 하이브리드 메인 메모리 시스템의 메모리의 데이터를 무효화 할 수 있는 별도의 데이터 관리 방법이 요구된다. 특히 전원이 공급되지 않아도 저장된 정보를 계속 유지할 수 있는 하드 디스크 등과 같은 비휘발성 메모리의 데이터를 무효화 할 수 있는 별도의 데이터 관리 방법이 필요하다.Therefore, a separate data management method capable of invalidating data in the memory of the hybrid main memory system is required. There is a need for a separate data management method capable of invalidating data in a nonvolatile memory such as a hard disk that can keep stored information even when power is not supplied.
본 발명이 해결하고자 하는 기술적 과제는 하이브리드 메인 메모리 시스템의 비휘발성 메모리의 데이터를 관리하는 방법 및 그 방법을 수행하는 장치를 제공하는 것이다.SUMMARY OF THE INVENTION It is an object of the present invention to provide a method for managing data in a nonvolatile memory of a hybrid main memory system and an apparatus for performing the method.
본 발명의 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.The technical problems of the present invention are not limited to the above-mentioned technical problems, and other technical problems which are not mentioned can be clearly understood by those skilled in the art from the following description.
본 발명의 실시 예에 따른 제 1 메모리 모듈, 제 2 메모리 모듈, 및 상기 제 1 및 제 2 메모리 모듈들을 제어하는 중앙 처리 장치를 포함하는 데이터 서버 시스템의 동작 방법은, 상기 제 2 메모리 모듈에서 플러쉬 동작(flush operation)에 따라 제 1 메모리 모듈의 유효 캐시 데이터를 저장하는 단계; 상기 제 2 메모리 모듈에서 상기 유효 캐시 데이터에 대한 무효화 요청에 응답하여 랜덤 캐시 데이터를 생성하는 단계; 및 상기 제 2 메모리 모듈에서 상기 유효 캐시 데이터를 상기 랜덤 데이터로 덮어쓰는 단계를 포함하고, 상기 제 1 메모리 모듈은 DRAM(Dynamic Random Access Memory)를 포함하고, 상기 제 2 메모리 모듈은 NAND 플래시 메모리를 포함하고, 상기 랜덤 데이터는 상기 유효 캐시 데이터에 대응하는 현재 상태의 값을 기준으로 쓰기 가능한 상태에 대응하는 데이터 중에서 생성되는 것을 특징으로 한다.A method of operating a data server system including a first memory module, a second memory module, and a central processing unit controlling the first and second memory modules, according to an embodiment of the present invention, Storing effective cache data of a first memory module according to a flush operation; Generating random cache data in response to an invalidation request for the valid cache data in the second memory module; And overwriting the valid cache data with the random data in the second memory module, wherein the first memory module includes a Dynamic Random Access Memory (DRAM), and the second memory module includes a NAND flash memory And the random data is generated from data corresponding to a writable state based on a value of a current state corresponding to the valid cache data.
실시 예에 있어서, 상기 제 1 및 제 2 메모리 모듈들은 DDR(Double Data Rate) 인테페이스에 의해 상기 중앙 처리 장치에 연결되는 것을 특징으로 한다.In an embodiment, the first and second memory modules are connected to the central processing unit by a double data rate (DDR) interface.
실시 예에 있어서, 상기 유효 캐시 데이터는 개인 정보를 갖는 캐시 데이터 및 상기 캐시 데이터의 유효성을 지시하는 관리 비트를 포함할 수 있다.In an embodiment, the valid cache data may include cache data having private information and a management bit indicating validity of the cache data.
실시 예에 있어서, 상기 랜덤 데이터로 덮어쓰는 단계는, 상기 유효 캐시 데이터의 일부를 상기 랜덤 데이터로 덮어쓰는 단계를 포함할 수 있다.In an embodiment, overwriting with the random data may include overwriting a portion of the valid cache data with the random data.
실시 예에 있어서, 상기 데이터 서버 시스템은 관계형 데이터베이스 서버 시스템(RDBMS; Relational Database Management System)를 포함할 수 있다.In an embodiment, the data server system may include a relational database management system (RDBMS).
본 발명에 의하면 하이브리드 메인 메모리 시스템의 비휘발성 메모리에 저장된 데이터, 특히 개인 정보를 보다 확실하게 무효화 할 수 있다. 이를 통해 개인 정보를 효율적으로 보호하고, 해킹과 같은 불의의 사고가 발생하더라도 개인 정보를 안전하게 보호할 수 있다.According to the present invention, data stored in a nonvolatile memory of a hybrid main memory system, particularly personal information, can be more reliably invalidated. This protects personal information efficiently and safeguards personal information even if unexpected accidents such as hacking occur.
본 발명의 효과들은 이상에서 언급한 효과들로 제한되지 않으며, 언급되지 않은 또 다른 효과들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.The effects of the present invention are not limited to the effects mentioned above, and other effects not mentioned can be clearly understood to those of ordinary skill in the art from the following description.
도 1은 하이브리드 메인 메모리 시스템을 설명하기 위한 도면이다.
도 2는 일반적으로 비휘발성 메모리에 저장된 데이터의 관리 방법을 설명하기 위한 도면이다.
도 3은 본 발명의 일 실시 예에 따른 비휘발성 메모리에 저장된 데이터의 관리 방법을 설명하기 위한 도면이다.
도 4는 본 발명의 일 실시 예에 따른 비휘발성 메모리에 저장된 데이터의 관리 장치를 설명하기 위한 도면이다.
도 5는 본 발명의 일 실시 예에 따른 NAND 플래시 메모리의 랜덤 데이터 생성 과정을 설명하기 위한 도면이다.
도 6은 본 발명의 다른 실시 예에 따른 비휘발성 메모리에 저장된 데이터의 관리 방법을 설명하기 위한 도면이다.1 is a view for explaining a hybrid main memory system.
2 is a diagram for explaining a method of managing data stored in a nonvolatile memory.
3 is a diagram for explaining a method of managing data stored in a nonvolatile memory according to an embodiment of the present invention.
4 is a diagram for explaining an apparatus for managing data stored in a nonvolatile memory according to an embodiment of the present invention.
5 is a diagram for explaining a random data generating process of a NAND flash memory according to an embodiment of the present invention.
6 is a diagram for explaining a method of managing data stored in a nonvolatile memory according to another embodiment of the present invention.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시 예를 가질 수 있는 바, 특정 실시 예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다. 제1, 제2, A, B 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다. 어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 본 출원에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다. 다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.While the invention is susceptible to various modifications and alternative forms, specific embodiments thereof are shown by way of example in the drawings and will herein be described in detail. It should be understood, however, that the invention is not intended to be limited to the particular embodiments, but includes all modifications, equivalents, and alternatives falling within the spirit and scope of the invention. Like reference numerals are used for like elements in describing each drawing. The terms first, second, A, B, etc. may be used to describe various elements, but the elements should not be limited by the terms. The terms are used only for the purpose of distinguishing one component from another. For example, without departing from the scope of the present invention, the first component may be referred to as a second component, and similarly, the second component may also be referred to as a first component. And / or < / RTI > includes any combination of a plurality of related listed items or any of a plurality of related listed items. It is to be understood that when an element is referred to as being "connected" or "connected" to another element, it may be directly connected or connected to the other element, . On the other hand, when an element is referred to as being "directly connected" or "directly connected" to another element, it should be understood that there are no other elements in between. The terminology used in this application is used only to describe a specific embodiment and is not intended to limit the invention. The singular expressions include plural expressions unless the context clearly dictates otherwise. In the present application, the terms "comprises" or "having" and the like are used to specify that there is a feature, a number, a step, an operation, an element, a component or a combination thereof described in the specification, But do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, or combinations thereof. Unless defined otherwise, all terms used herein, including technical or scientific terms, have the same meaning as commonly understood by one of ordinary skill in the art to which this invention belongs. Terms such as those defined in commonly used dictionaries are to be interpreted as having a meaning consistent with the contextual meaning of the related art and are to be interpreted as either ideal or overly formal in the sense of the present application Do not.
이하, 본 발명에 따른 바람직한 실시 예를 첨부된 도면을 참조하여 상세하게 설명한다.Hereinafter, preferred embodiments according to the present invention will be described in detail with reference to the accompanying drawings.
도 1은 하이브리드 메인 메모리 시스템을 설명하기 위한 도면이다. 도 1을 참조하면, 하이브리드 메인 메모리 시스템(100)은 중앙 처리 장치(CPU; Central Processing Unit; 110)과 디램(DRAM; Dynamic Random Access Memory)을 갖는 적어도 하나의 제 1 메모리 모듈(120) 및 비휘발성 메모리(NVM; Non-Volatile Memory)을 갖는 적어도 하나의 제 2 메모리 모듈(130)을 포함할 수 있다.1 is a view for explaining a hybrid main memory system. 1, the hybrid
중앙 처리 장치(110)는 메인 메모리 시스템(100)의 전반적인 동작을 제어하도록 구현될 수 있다. 실시 예에 있어서, 중앙 처리 장치(100)는 적어도 하나의 프로세서, GPU(graphic processing unit), 메모리 제어기(memory controller) 등을 포함할 수 있다. 여기서, 프로세서는 범용 마이크로프로세서, 멀티코어 프로세서, 디지털 신호 프로세서(DSP; digital signal processor), ASIC(application specific integrated circuit), 혹은 그것들의 조합을 포함할 수 있다.The
제 1 메모리 모듈(120)은 중앙 처리 장치(110)의 동작을 수행하는데 필요한 데이터를 임시로 저장하도록 구현될 수 있다. 실시 예에 있어서, 제 1 메모리 모듈(120)은 DDRx(double data rate, x는 generation 의미함, 예를 들어 x는 4, 5 등이 될 수 있다.) 인터페이스에 따라 중앙 처리 장치(110)에 연결될 수 있다. 하지만, 본 발명의 인터페이스가 여기에 제한되지는 않을 것이다.The
제 2 메모리 모듈(130)은 전원이 공급되지 않아도 저장된 정보를 계속 유지하도록 구현될 수 있다. 실시 예에 있어서, 제 2 메모리 모듈(130)은 DDRx 인터페이스에 따라 중앙 처리 장치(110)에 연결될 수 있다. 하지만, 본 발명의 인터페이스가 여기에 제한되지는 않을 것이다.The
예를 들어, 제 2 메모리 모듈(130)는 NVMe(non-volatile memory express), PCIe(peripheral component interconnect express), SATA(serial advanced technology attachment), SCSI(small computer system interface), SAS(serial attached SCSI), UAS(USB(universal storage bus) attached SCSI), iSCSI(internet small computer system interface), Fiber Channel, FCoE(fiber channel over Ethernet) 중에서 적어도 하나에 의해 중앙 처리 장치(110)에 연결될 수 있다.For example, the
실시 예에 있어서, 제 2 메모리 모듈(130)은, 예를 들어, NVDIMM(nonvolatile dual in-line memory module), SSD(solid state drive), UFS(universal flash storage), eMMC(embedded multimedia card), SD(secure digital) 카드, DRAM(dynamic random access memory), SRAM(static random access memory), nand flash memory, vertical nand flash memory, PRAM(phase random access memory), RRAM(resistive random access memory) 등 일 수 있다.In an embodiment, the
중앙 처리 장치(110)는 제 1 메모리 모듈(120)의 캐시를 통해 보다 빠르게 데이터에 접근할 수 있다. 만약 중앙 처리 장치(110)가 미리 정해진 시간 동안 캐시(Cache)를 사용하지 않으면, 캐시 정책에 의해 제 1 메모리 모듈(120)의 캐시에 저장된 데이터는 제 2 메모리 모듈(130)로 옮겨지게 된다. 이를 플러쉬(Flush) 과정이라고 한다.The
플러쉬 과정 이후에는 데이터는 비휘발성 메모리에 남아있게 된다. 한편, 본 발명의 하이브리드 메인 메모리(100)의 캐시 동작이 여기에 제한되지 않을 것이다. 하이브리드 메인 메모리(100)의 캐시 동작은 다양하게 구현될 수 있다고 이해되어야 할 것이다. 예를 들어, 중앙 처리 장치(110)는 동작에 필요한 캐시를 제 1 메모리 모듈(120) 및 제 2 메모리 모듈(130)에 동시에 전송할 수 있다.After the flushing process, the data remains in nonvolatile memory. On the other hand, the cache operation of the hybrid
또한, 제 2 메모리 모듈(130)에 저장된 캐시는 추후 중앙 처리 장치(110)에 의해 관리 될 수 있다. 이때, 중앙 처리 장치(110)는 제 2 메모리 모듈(130)에 저장된 캐시의 valid/invalid 비트를 업데이트 하여 캐시를 관리할 수 있다. 즉 실제 데이터는 삭제하지는 않고, 데이터의 유효성에 관한 비트만 업데이트하여 캐시를 관리할 수 있다.In addition, the cache stored in the
도 2는 일반적으로 비휘발성 메모리에 저장된 데이터의 관리 방법을 설명하기 위한 도면이다. 도 2를 참고하면 제 2 메모리 모듈(130)에 캐시 5와 캐시 6이 valid 상태로 저장되어 있는 것을 볼 수 있다. 이때 해당 캐시에 대한 무효화 요청(invalidation request)이 오면, 중앙 처리 장치(110)는 제 2 메모리 모듈(130)의 캐시 5와 캐시 6의 유효성에 관한 비트만 invalid로 업데이트 한다. 즉 실제의 데이터는 아직 그대로 저장되어 있는 것을 볼 수 있다.2 is a diagram for explaining a method of managing data stored in a nonvolatile memory. Referring to FIG. 2, it can be seen that
실시 예에 있어서, 무효화 요청은 비식별(de-identification) 기술과 관련된 요청일 수 있다. 이러한 비식별 기술은, 가명처리(pseudonymization; 휴리스틱 가명화, 암호화, 교환), 총계처리(aggregation; 총계처리, 부분총계, 라운딩, 재배열), 데이터 삭제(data reduction; 식별자 삭제, 식별자 부분 삭제, 레코드 삭제, 식별요소 전부삭제), 데이터 범주화(data suppressed; 감추기, 랜덤라운딩, 범위 방법, 제어 라운딩), 데이터 마스킹(data masking; 임의 잡음 추가, 공백과 대체) 포함할 수 있다.In an embodiment, the revocation request may be a request associated with a de-identification technique. Such non-identification techniques include pseudonymization, heuristic pseudonymization, encryption, exchange, aggregation, partial sum, rounding, reordering, data reduction, Data suppression, random rounding, range method, control rounding), data masking (random noise addition, blank and substitute).
실시 예에 있어서, 무효화 요청은, 비식별 대상인 데이터 관련 주소, 및 비식별 기술 종류 등을 포함하는 커맨드 형태로, 중앙 처리 장치(110)로부터 제 2 메모리 모듈(130)에 전송될 수 있다. 도시되지 않았지만, 제 2 메모리 모듈(130)은 비식별 조치 후, 비식별 조치가 완료되었다는 정보를 중앙 처리 장치(110)로 전송할 수 있다.In the embodiment, the invalidation request may be transmitted from the
이와 같이 캐시를 관리하게 되면, 추후 디지털 포렌식에 의해서 유효성에 관한 비트가 invalid 상태라고 하더라도, 캐시 5와 캐시 6에 저장된 원래의 데이터를 복구할 수 있다. 즉 해킹과 같은 최악의 상황이 발생하면 개인 정보의 유출이 발생할 수 있는 문제점이 있다. 이를 해결하기 위해서는 단순히 유효성에 관한 비트만 관리할 것이 아니라 데이터도 함께 관리해야 한다.When the cache is managed as described above, the original data stored in the
도 3은 본 발명의 일 실시 예에 따른 비휘발성 메모리에 저장된 데이터의 관리 방법을 설명하기 위한 도면이다. 도 3을 참고하면 본 발명에서 제안하는 제 2 메모리 모듈(130)에 저장된 데이터의 관리 방법은 캐시에 대한 무효화 요청을 수신하면 유효성을 관리하는 비트만 변경하는 것이 아니라, 캐시 데이터도 값을 변경하는 것을 특징으로 한다. 이때 캐시 데이터에 저장할 새로운 값은 임의로 생성되는 값이다.3 is a diagram for explaining a method of managing data stored in a nonvolatile memory according to an embodiment of the present invention. Referring to FIG. 3, in the method of managing data stored in the
이렇게 임의로 생성한 값으로 원래의 데이터를 변경함으로써, 개인 정보를 효율적으로 관리할 수 있다. 특히, 제 2 메모리 모듈(130)에 개인 정보를 보다 확실하게 무효화 할 수 있다. 이를 통해 개인 정보를 효율적으로 보호하고, 해킹과 같은 불의의 사고가 발생하더라도 개인 정보를 안전하게 보호할 수 있다.By changing the original data to the value arbitrarily generated, the individual information can be efficiently managed. Particularly, personal information can be more reliably invalidated in the
이때, 제 2 메모리 모듈(130)이 PRAM, MRAM, ReRAM, 3DXpoint Memory과 같이 overwritable 메모리인 경우에는 임의의 랜덤 데이터를 생성해서, 캐시 데이터를 변경할 수 있다. 그러나, 제 2 메모리 모듈(130)이 NAND flash memory와 같이 non-overwritable 메모리인 경우에는 제한된 환경에서 랜덤 캐시 데이터를 생성해서 원래의 캐시 데이터를 변경할 수 있다. 이에 관한 보다 자세한 설명은 추후에 하기로 한다.At this time, if the
도 4는 본 발명의 일 실시 예에 따른 비휘발성 메모리에 저장된 데이터의 관리 장치를 설명하기 위한 도면이다. 도 4를 참고하면 본 발명에서 제안하는 제 2 메모리 모듈(130)의 데이터 관리 장치는 메모리 제어기(210) 및 비휘발성 메모리부(230)를 포함할 수 있다. 그리고 메모리 제어기(210)는 DDN 처리부(220)를 포함할 수 있다. 여기서 DDN은 삭제할 의무(Duty to Delete)를 비휘발성 메모리(Non-volatile memory)에 적용하기 위한 별도의 처리부를 말한다.4 is a diagram for explaining an apparatus for managing data stored in a nonvolatile memory according to an embodiment of the present invention. Referring to FIG. 4, the data management apparatus of the
메모리 제어기(210)의 DDN 처리부(220)는 무효화 요청에 대한 응답으로 랜덤 데이터(221)를 생성할 수 있다. 여기서 무효화 요청은 비휘발성 메모리부(230)의 어느 데이터를 무효화 할지에 대한 주소 정보를 포함할 수 있다. 랜덤 데이터(221)를 생성한 후, DDN 처리부(220)는 비휘발성 메모리부(230)의 해당 주소의 실제 공간에 랜덤 데이터(221)를 덮어 쓸 수 있다.The
이때 비휘발성 메모리부(230)의 종류에 따라 랜덤 데이터(221)를 덮어쓰는 과정은 크게 2가지로 나눠질 수 있다. 하나는 비휘발성 메모리부(230)의 종류가 PRAM, MRAM, ReRAM, 3DXpoint Memory과 같이 overwritable 메모리인 경우에는 난수를 이용하여 랜덤 데이터(221)를 생성할 수 있다. 이때 난수는 난수 발생기를 이용하여 생성할 수 있다. 난수를 이용하여 랜덤 데이터(221)를 생성한 후에는 실제 공간에 랜덤 데이터(221)를 덮어 쓸 수 있다. 이후, 무효화 요청이 완료되었다는 정보를 중앙 처리 장치(110)에 전송될 수 있다.At this time, the process of overwriting the
반면에 비휘발성 메모리부(230)의 종류가 NAND memory와 같이 non-overwritable 메모리인 경우에는 overwritable 메모리와 같이 난수를 이용한 데이터의 생성은 불가능하며, 제한된 환경에서 랜덤 데이터(221)를 생성해야 한다. 즉, 무효화 대상이 되는 메모리의 실제 캐시 데이터를 읽은 다음에 읽은 캐시 데이터에 기초하여 랜덤 데이터(221)를 생성한다. 실제 캐시 데이터의 값에 기초하여 랜덤 데이터(221)를 생성한 후에는 실제 공간에 랜덤 데이터(221)를 덮어 쓴다. 이후, 무효화 요청이 완료되었다는 정보를 중앙 처리 장치(110)에 전송될 수 있다.On the other hand, when the
즉 이때 비휘발성 메모리부(230)의 종류에 따라 랜덤 데이터(221)의 생성 방법이 달라질 수 있다. 다만, 랜덤 데이터(221)를 생성한 후에는 유효성을 나타내는 비트의 값을 valid에서 invalid로 변경하는 것과 함께, 실제 데이터를 랜덤 데이터(221)로 덮어쓰는 과정을 통해 개인 정보를 완전하게 무효화 할 수 있다.That is, the method of generating the
본 발명에서 제안하는 제 2 메모리 모듈(130)의 데이터 관리 방법과 일반적인 데이터 관리 방법을 비교하면 다음의 표 1과 같다.The data management method of the
본 발명에서 제안하는 제 2 메모리 모듈(130)의 데이터 관리 방법은 제 2 메모리 모듈(130)가 non-overwritable 메모리인 경우, 메모리를 읽고 쓰는 시간을 모두 포함해야 한다. 예를 들어 NAND 플래시 메모리의 경우 non-overwritable 메모리이므로 데이터를 읽는 시간이 추가로 더 필요하다.예를 들어 표 1에 값이 표시된 3D NAND 플래시 메모리의 경우, 페이지 읽기 시간은 0.049ms 미만이고, 페이지 쓰기 시간은 0.6 ms 미만이다. 여기에 랜덤 데이터(221)를 생성하는 시간을 모두 포함해도 1ms 미만이다. 이에 비해 일반적인 데이터 관리 방법은 소거 시간에 4ms 정도를 소요한다.The data management method of the
게다가 일반적인 데이터 관리 방법은 가비지 콜렉션(GC; Gavage Collection)로 인한 부하도 추가로 고려해야 한다. 즉 일반적인 데이터 관리 방법에 비해서 본 발명에서 제안하는 제 2 메모리 모듈(130)의 데이터 관리 방법을 사용할 경우 데이터를 무효화 하는데 소모되는 시간과 비용을 줄일 수 있다.In addition, common data management methods require additional load due to garbage collection (GC). That is, when the data management method of the
도 5는 본 발명의 일 실시 예에 따른 NAND 플래시 메모리의 랜덤 데이터 생성 과정을 설명하기 위한 도면이다. 도 5를 참고하면 NAND 플래시 메모리의 경우, 원래 저장되어 있던 데이터에 따라 현재 생성할 수 있는 랜덤 데이터(221)가 달라진다. 예를 들면 현재 S5 "100"의 값을 가지고 있다면, 랜덤 데이터(221)는 해당 S5 이후의 상태인 S6, S7, S8의 값인 101, 110, 111 중에서만 생성이 가능하다. 한편, 도 5에 도시된 상태들에 대응하는 데이터는 하나의 실시 예로써, 본 발명을 제한하지 않는다고 이해되어야 할 것이다.5 is a diagram for explaining a random data generating process of a NAND flash memory according to an embodiment of the present invention. Referring to FIG. 5, in the case of the NAND flash memory, the
이는 NAND 플래시 메모리가 셀 단위로 데이터를 쓰고 지우기 때문이다. 즉 NAND 플래시 메모리의 S5 상태에서는 데이터를 소거하지 않는 이상 S6, S7, S8 상태의 데이터만 기록이 가능하다. 즉 셀의 데이터를 소거(Erase) 해야만 다시 S1 상태로 돌아갈 수 있기 때문에, 현재 상태 S5를 기준으로 쓰기가 가능한 데이터 중에서 랜덤 데이터(221)를 생성하는 것이다.This is because the NAND flash memory writes and erases data on a cell-by-cell basis. That is, in the S5 state of the NAND flash memory, only the data in the states S6, S7 and S8 can be written unless data is erased. That is, if the data of the cell is erased, it is possible to return to the S1 state. Therefore, the
NAND 플래시 메모리의 경우, 이렇게 현재 상태의 값을 기준으로 랜덤 데이터(221)를 생성해서 쓰는 과정이 데이터를 소거(Erase)하고 S1 상태로 돌아가는 것보다 시간 및 비용 측면에서 훨씬 효율적이다.In the case of the NAND flash memory, the process of generating and writing the
도 6은 본 발명의 다른 실시 예에 따른 비휘발성 메모리에 저장된 데이터의 관리 방법을 설명하기 위한 도면이다. 도 6을 참고하면, 무효화가 필요한 원래의 캐시 데이터(Original Cache Data)를 전부 랜덤 데이터(221)로 덮어쓰는 방법 외에도 부분적으로 덮어쓰는 방법도 가능하다. 이렇게 부분적으로 덮어쓰더라도 온전한 개인 정보의 복구는 불가능하기 때문이다.6 is a diagram for explaining a method of managing data stored in a nonvolatile memory according to another embodiment of the present invention. Referring to FIG. 6, it is possible to partially overwrite original cache data (original cache data) which need to be invalidated, in addition to overwriting all of the original cache data with
이 경우에는 랜덤 데이터 대신에 비-랜덤 데이터를 활용할 수 있다. 즉 임의로 생성한 데이터가 아닌 "000" 또는 "111"과 같은 특정 데이터의 값을 고정으로 사용할 수 있다. 이때에는 도 6의 (a)와 같이 대상 영역을 전부 덮어쓰는 것도 가능하고 (b)와 같이 절반 영역만, (c)나 (d)와 같이 원래의 데이터와 특정 데이터를 교대로 나타나도록 덮어쓰는 것도 가능하다.In this case, non-random data can be utilized instead of random data. That is, the value of specific data such as " 000 " or " 111 " At this time, it is possible to overwrite the entire target area as shown in FIG. 6 (a), and only the half area as shown in FIG. 6 (b) It is also possible.
또한, 캐시 데이터가 플러쉬 과정 이후 비활성 메모리(130)에 저장된 이후에, 기 설정된 일정한 시간이 경과한 때에는 자동으로 캐시 데이터를 무효화 할 수 있다. 이때 본 발명에서 제안하는 랜덤 데이터를 이용하여 캐시 데이터를 무효화 할 수 있다.Also, after the cache data is stored in the
한편, 본 발명은 데이터 서버에 응용 가능하다. 본 발명의 실시 예에 따른 데이터 서버 시스템은 관계형 데이터베이스 관리 시스템(RDBMS; Relational Database Management System), 캐시 서버, 및 어플리케이션 서버를 포함할 수 있다. 캐시 서버는 데이터 베이스 관리 시스템으로부터 무효화 통지에 대응하여 서로 다른 키(key), 값(value) 쌍을 유지하고, 삭제하는 키값 저장을 포함할 수 있다. 데이터 베이스 관리 시스템(RDBMS), 캐시 서버, 및 어플리케이션 서버 중 적어도 하나는 도 1 내지 도 6에서 설명된 비휘발성 메모리의 무효화 기술로 구현될 수 있다.Meanwhile, the present invention is applicable to a data server. A data server system according to an embodiment of the present invention may include a relational database management system (RDBMS), a cache server, and an application server. The cache server may include a key value storage for holding and deleting different key, value pairs in response to the invalidation notification from the database management system. At least one of the database management system (RDBMS), the cache server, and the application server can be implemented with the technique of invalidating the nonvolatile memory described in Figs.
이상 첨부된 도면을 참조하여 본 발명의 실시 예들을 설명하였지만, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시 예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다.While the present invention has been described in connection with what is presently considered to be practical exemplary embodiments, it is to be understood that the invention is not limited to the disclosed embodiments, but, on the contrary, You will understand. It is therefore to be understood that the above-described embodiments are illustrative in all aspects and not restrictive.
100: 하이브리드 메인 메모리 시스템
110: 중앙 처리 장치(CPU)
120: 제 1 메모리 모듈
130: 제 2 메모리 모듈
210: 메모리 제어기
220: DDN 처리부
230: 비휘발성 메모리부100: Hybrid main memory system
110: central processing unit (CPU)
120: first memory module
130: second memory module
210: memory controller
220: DDN processor
230: Nonvolatile memory unit
Claims (6)
상기 제 2 메모리 모듈에서 플러쉬 동작(flush operation)에 따라 제 1 메모리 모듈의 유효 캐시 데이터를 저장하는 단계;
상기 제 2 메모리 모듈에서 상기 유효 캐시 데이터에 대한 무효화 요청에 응답하여 랜덤 캐시 데이터를 생성하는 단계; 및
상기 제 2 메모리 모듈에서 상기 유효 캐시 데이터를 상기 랜덤 데이터로 덮어쓰는 단계를 포함하고,
상기 제 1 메모리 모듈은 DRAM(Dynamic Random Access Memory)를 포함하고,
상기 제 2 메모리 모듈은 NAND 플래시 메모리를 포함하고,
상기 랜덤 데이터는 상기 유효 캐시 데이터에 대응하는 현재 상태의 값 이후에 생성 가능한 값들 중 선택되는 것을 특징으로 하는 방법.A method of operating a data server system including a first memory module, a second memory module, and a central processing unit controlling the first and second memory modules,
Storing effective cache data of a first memory module according to a flush operation in the second memory module;
Generating random cache data in response to an invalidation request for the valid cache data in the second memory module; And
And overwriting the valid cache data with the random data in the second memory module,
The first memory module includes a dynamic random access memory (DRAM)
Wherein the second memory module includes a NAND flash memory,
Wherein the random data is selected among values that can be generated after the value of the current state corresponding to the valid cache data.
상기 제 1 및 제 2 메모리 모듈들은 DDR(Double Data Rate) 인테페이스에 의해 상기 중앙 처리 장치에 연결되는 것을 특징으로 하는 방법.The method according to claim 1,
Wherein the first and second memory modules are coupled to the central processing unit by a Double Data Rate (DDR) interface.
상기 유효 캐시 데이터는 개인 정보를 갖는 캐시 데이터 및 상기 캐시 데이터의 유효성을 지시하는 관리 비트를 포함하는 방법.The method according to claim 1,
Wherein the valid cache data comprises cache data having private information and a management bit indicating validity of the cache data.
상기 랜덤 데이터로 덮어쓰는 단계는,
상기 유효 캐시 데이터의 일부를 상기 랜덤 데이터로 덮어쓰는 단계를 포함하는 방법.The method according to claim 1,
Wherein overwriting with the random data comprises:
And overwriting a portion of the valid cache data with the random data.
상기 데이터 서버 시스템은 관계형 데이터베이스 서버 시스템(RDBMS; Relational Database Management System)를 포함하는 방법.The method according to claim 1,
Wherein the data server system comprises a relational database management system (RDBMS).
상기 중앙 처리 장치가 미리 정해진 시간 동안 캐시를 사용하지 않으면 상기 제1 메모리 모듈의 캐시에 저장된 데이터가 상기 제2 메모리 모듈로 옮겨지는 플러쉬 동작이 수행되는 것을 특징으로 하는 방법.6. The method according to any one of claims 1 to 5,
Wherein a flush operation is performed in which data stored in the cache of the first memory module is transferred to the second memory module if the central processing unit does not use the cache for a predetermined time.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020190046820A KR102144124B1 (en) | 2019-04-22 | 2019-04-22 | Method and apparatus for managing data of non-volatile memory in hybrid main memory system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020190046820A KR102144124B1 (en) | 2019-04-22 | 2019-04-22 | Method and apparatus for managing data of non-volatile memory in hybrid main memory system |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020170046915A Division KR20180114774A (en) | 2017-04-11 | 2017-04-11 | Method and apparatus for managing data of non-volatile memory in hybrid main memory system |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20190045121A true KR20190045121A (en) | 2019-05-02 |
KR102144124B1 KR102144124B1 (en) | 2020-08-13 |
Family
ID=66581740
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020190046820A KR102144124B1 (en) | 2019-04-22 | 2019-04-22 | Method and apparatus for managing data of non-volatile memory in hybrid main memory system |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102144124B1 (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20210072730A (en) * | 2019-12-09 | 2021-06-17 | 고려대학교 산학협력단 | Method of destroying privacy data in a nand flash memory |
WO2021118232A1 (en) * | 2019-12-09 | 2021-06-17 | 고려대학교 산학협력단 | Method for discarding personal information in nand flash memory |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20240003750A (en) | 2022-07-02 | 2024-01-09 | 안나영 | Storage device hving real-time secure deletion function and operating method thereof |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100578143B1 (en) * | 2004-12-21 | 2006-05-10 | 삼성전자주식회사 | Storage system with scheme capable of invalidating data stored in buffer memory and computing system including the same |
KR20090094195A (en) * | 2008-03-01 | 2009-09-04 | 가부시끼가이샤 도시바 | Memory system and data erasing method thereof |
KR100936086B1 (en) * | 2002-02-11 | 2010-01-12 | 어드밴스드 마이크로 디바이시즈, 인코포레이티드 | Partial page programming of multi level flash semiconductor memory |
KR20100123133A (en) * | 2009-05-14 | 2010-11-24 | 구진국 | Management method for temporary files used in applications |
KR101284465B1 (en) * | 2013-03-26 | 2013-07-09 | 서울과학기술대학교 산학협력단 | Page mapping scheme that supports secure file deletion for nand-based block device, and thereof recording medium |
KR20140051685A (en) * | 2012-10-23 | 2014-05-02 | 삼성전자주식회사 | Data storage device and controller, and operation method of data storage device |
KR20150112076A (en) | 2014-03-26 | 2015-10-07 | 삼성전자주식회사 | Hybrid memory, memory system including the same and data processing method thereof |
KR20160016481A (en) * | 2014-07-31 | 2016-02-15 | 삼성전자주식회사 | Memory controller for controlling data sanitization and memory system including the same |
KR101704702B1 (en) * | 2016-04-18 | 2017-02-08 | (주)케이사인 | Tagging based personal data de-identification system and de-identification method of personal data |
-
2019
- 2019-04-22 KR KR1020190046820A patent/KR102144124B1/en active IP Right Grant
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100936086B1 (en) * | 2002-02-11 | 2010-01-12 | 어드밴스드 마이크로 디바이시즈, 인코포레이티드 | Partial page programming of multi level flash semiconductor memory |
KR100578143B1 (en) * | 2004-12-21 | 2006-05-10 | 삼성전자주식회사 | Storage system with scheme capable of invalidating data stored in buffer memory and computing system including the same |
KR20090094195A (en) * | 2008-03-01 | 2009-09-04 | 가부시끼가이샤 도시바 | Memory system and data erasing method thereof |
KR20100123133A (en) * | 2009-05-14 | 2010-11-24 | 구진국 | Management method for temporary files used in applications |
KR20140051685A (en) * | 2012-10-23 | 2014-05-02 | 삼성전자주식회사 | Data storage device and controller, and operation method of data storage device |
KR101284465B1 (en) * | 2013-03-26 | 2013-07-09 | 서울과학기술대학교 산학협력단 | Page mapping scheme that supports secure file deletion for nand-based block device, and thereof recording medium |
KR20150112076A (en) | 2014-03-26 | 2015-10-07 | 삼성전자주식회사 | Hybrid memory, memory system including the same and data processing method thereof |
KR20160016481A (en) * | 2014-07-31 | 2016-02-15 | 삼성전자주식회사 | Memory controller for controlling data sanitization and memory system including the same |
KR101704702B1 (en) * | 2016-04-18 | 2017-02-08 | (주)케이사인 | Tagging based personal data de-identification system and de-identification method of personal data |
Non-Patent Citations (1)
Title |
---|
US 2007-0276995 A1 "Hybrid solid state disk drive with controller" (2007.11.29) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20210072730A (en) * | 2019-12-09 | 2021-06-17 | 고려대학교 산학협력단 | Method of destroying privacy data in a nand flash memory |
WO2021118232A1 (en) * | 2019-12-09 | 2021-06-17 | 고려대학교 산학협력단 | Method for discarding personal information in nand flash memory |
US11899958B2 (en) | 2019-12-09 | 2024-02-13 | Korea University Research And Business Foundation | Method for discarding personal information in NAND flash memory |
Also Published As
Publication number | Publication date |
---|---|
KR102144124B1 (en) | 2020-08-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10127166B2 (en) | Data storage controller with multiple pipelines | |
US10275310B2 (en) | Updating exclusive-or parity data | |
CN113508382B (en) | Selective erasure of data in SSDs | |
US11416417B2 (en) | Method and apparatus to generate zero content over garbage data when encryption parameters are changed | |
US11580029B2 (en) | Memory system, computing system, and methods thereof for cache invalidation with dummy address space | |
KR102233400B1 (en) | Data storage device and operating method thereof | |
KR102144124B1 (en) | Method and apparatus for managing data of non-volatile memory in hybrid main memory system | |
US10019315B2 (en) | Control device for a storage apparatus, system, and method of controlling a storage apparatus | |
US20180260151A1 (en) | Data Storage Device and Operating Method Therefor | |
CN107402719B (en) | Data storage method and data recovery method for data storage device, and data storage device using the same | |
KR102530583B1 (en) | Storage device and memory system | |
US20140219041A1 (en) | Storage device and data processing method thereof | |
US20140325168A1 (en) | Management of stored data based on corresponding attribute data | |
KR20160024550A (en) | Data storage device and operating method thereof | |
JP2005339231A (en) | Memory card, semiconductor device, and method for controlling semiconductor memory | |
US20190377693A1 (en) | Method to generate pattern data over garbage data when encryption parameters are changed | |
US10146688B2 (en) | Safe write-back cache replicating only dirty data | |
KR20180114774A (en) | Method and apparatus for managing data of non-volatile memory in hybrid main memory system | |
Ahn et al. | Duty to delete on non-volatile memory | |
JP2013062616A (en) | Storage device, data storage method, and data controller | |
KR20210095711A (en) | Data integrity protection to relocate data in memory systems | |
TW201621668A (en) | Data storage device and data writing method thereof | |
US11360912B2 (en) | Method for performing adaptive locking range management, associated data storage device and controller thereof | |
JP6378111B2 (en) | Information processing apparatus and program | |
KR20210079894A (en) | Data storage device and operating method thereof |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A107 | Divisional application of patent | ||
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E90F | Notification of reason for final refusal | ||
E701 | Decision to grant or registration of patent right |