KR20190045121A - 하이브리드 메인 메모리 시스템의 비휘발성 메모리의 데이터 관리 방법 및 장치 - Google Patents
하이브리드 메인 메모리 시스템의 비휘발성 메모리의 데이터 관리 방법 및 장치 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
본 발명에 따른 데이터 서버 시스템의 동작 방법은, 상기 제 2 메모리 모듈에서 플러쉬 동작(flush operation)에 따라 제 1 메모리 모듈의 유효 캐시 데이터를 저장하는 단계, 상기 제 2 메모리 모듈에서 상기 유효 캐시 데이터에 대한 무효화 요청에 응답하여 랜덤 캐시 데이터를 생성하는 단계, 및 상기 제 2 메모리 모듈에서 상기 유효 캐시 데이터를 상기 랜덤 데이터로 덮어쓰는 단계를 포함하고, 상기 제 1 메모리 모듈은 DRAM를 포함하고, 상기 제 2 메모리 모듈은 NAND 플래시 메모리를 포함하고, 상기 랜덤 데이터는 상기 유효 캐시 데이터에 대응하는 현재 상태의 값을 기준으로 쓰기 가능한 상태에 대응하는 데이터 중에서 생성되는 것을 특징으로 한다.
Description
본 발명은 하이브리드 메인 메모리 시스템의 비휘발성 메모리의 데이터 관리 방법 및 그 장치에 관한 것이다. 보다 자세하게는 잊혀질 권리(Duty to Delete)를 비휘발성 메모리에 적용하여, 하이브리드 메인 메모리 시스템의 비휘발성 메모리에 저장된 데이터를 무효화(invalid) 하는 방법 및 그 방법을 수행하는 장치에 관한 것이다.
최근 개인 정보의 보호에 대한 관심이 커지고 있다. 이러한 관심은 개인 정보 보호법(Personal Information Protection Law)으로 이어지고 있다. 우리나라에서도 개인 정보 보호법이 2011년 제정되어 시행되고 있으며, 유럽 위원회(European Commission)에서는 2016년 4월 27일 개인 정보 보호 규정(General Data Protection Regulation)을 채택한 바 있다. 유럽의 개인 정보 보호 규정 제65조에 따르면, 개인 정보의 주체는 몇 가지 예외 상황을 제외하고는 목적에 맞지 않는 개인 정보의 삭제를 요청할 수 있음을 명시하고 있다.
미국의 경우에는 헌법 제1조의 표현의 자유가 사생활 보호보다 더 강조되고 있었으나, 2012년 오바마 대통령이 "네트워크 환경에서의 개인 정보 보호: 글로벌 디지털 경제에서 개인 정보 보호와 혁신 촉진을 위한 기본 아이디어 (Consumer Information Privacy in Network World: A Fundamental Idea for Privacy Protection and Innovation Promotion in the Global Digital Economy)"를 발표하면서, 개인 정보 보호에 보다 초점을 맞추는 방향으로 변화하고 있다.
이러한 세계적인 변화의 흐름을 통해, 이제는 서비스를 제공하는데 불필요한 개인 정보는 의무적으로 삭제해야 한다는 것을 알 수 있다. 물론 이른바 "잊혀질 권리"(the right to be forgotten)에 있어서 삭제를 요청할 수 있는 개인 정보의 범위는 다를 수 있다. 그러나 개인 정보의 주체가 자신의 개인 정보의 삭제를 요청할 수 있다는 것이 현재의 추세이다.
개인 정보의 주체가 자신의 개인 정보의 삭제를 요청하면, 개인 정보를 관리하는 회사, 개인 정보를 이용해서 서비스를 제공하는 회사들은 자신의 시스템 상에서 이를 "삭제해야 할 의무"(the duty to delete)가 있다. 하지만 일반적으로 메모리 상에서 개인 정보를 삭제하더라도 삭제된 정보는 메모리 상에 그대로 남아있는 경우가 많다. 이처럼 종래에는 삭제한 정보이더라도 디지털 포렌식(Digital Forensics)에 의해서 복구가 가능한 경우가 있었다.
이에 하이브리드 메인 메모리 시스템의 메모리의 데이터를 무효화 할 수 있는 별도의 데이터 관리 방법이 요구된다. 특히 전원이 공급되지 않아도 저장된 정보를 계속 유지할 수 있는 하드 디스크 등과 같은 비휘발성 메모리의 데이터를 무효화 할 수 있는 별도의 데이터 관리 방법이 필요하다.
본 발명이 해결하고자 하는 기술적 과제는 하이브리드 메인 메모리 시스템의 비휘발성 메모리의 데이터를 관리하는 방법 및 그 방법을 수행하는 장치를 제공하는 것이다.
본 발명의 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
본 발명의 실시 예에 따른 제 1 메모리 모듈, 제 2 메모리 모듈, 및 상기 제 1 및 제 2 메모리 모듈들을 제어하는 중앙 처리 장치를 포함하는 데이터 서버 시스템의 동작 방법은, 상기 제 2 메모리 모듈에서 플러쉬 동작(flush operation)에 따라 제 1 메모리 모듈의 유효 캐시 데이터를 저장하는 단계; 상기 제 2 메모리 모듈에서 상기 유효 캐시 데이터에 대한 무효화 요청에 응답하여 랜덤 캐시 데이터를 생성하는 단계; 및 상기 제 2 메모리 모듈에서 상기 유효 캐시 데이터를 상기 랜덤 데이터로 덮어쓰는 단계를 포함하고, 상기 제 1 메모리 모듈은 DRAM(Dynamic Random Access Memory)를 포함하고, 상기 제 2 메모리 모듈은 NAND 플래시 메모리를 포함하고, 상기 랜덤 데이터는 상기 유효 캐시 데이터에 대응하는 현재 상태의 값을 기준으로 쓰기 가능한 상태에 대응하는 데이터 중에서 생성되는 것을 특징으로 한다.
실시 예에 있어서, 상기 제 1 및 제 2 메모리 모듈들은 DDR(Double Data Rate) 인테페이스에 의해 상기 중앙 처리 장치에 연결되는 것을 특징으로 한다.
실시 예에 있어서, 상기 유효 캐시 데이터는 개인 정보를 갖는 캐시 데이터 및 상기 캐시 데이터의 유효성을 지시하는 관리 비트를 포함할 수 있다.
실시 예에 있어서, 상기 랜덤 데이터로 덮어쓰는 단계는, 상기 유효 캐시 데이터의 일부를 상기 랜덤 데이터로 덮어쓰는 단계를 포함할 수 있다.
실시 예에 있어서, 상기 데이터 서버 시스템은 관계형 데이터베이스 서버 시스템(RDBMS; Relational Database Management System)를 포함할 수 있다.
본 발명에 의하면 하이브리드 메인 메모리 시스템의 비휘발성 메모리에 저장된 데이터, 특히 개인 정보를 보다 확실하게 무효화 할 수 있다. 이를 통해 개인 정보를 효율적으로 보호하고, 해킹과 같은 불의의 사고가 발생하더라도 개인 정보를 안전하게 보호할 수 있다.
본 발명의 효과들은 이상에서 언급한 효과들로 제한되지 않으며, 언급되지 않은 또 다른 효과들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
도 1은 하이브리드 메인 메모리 시스템을 설명하기 위한 도면이다.
도 2는 일반적으로 비휘발성 메모리에 저장된 데이터의 관리 방법을 설명하기 위한 도면이다.
도 3은 본 발명의 일 실시 예에 따른 비휘발성 메모리에 저장된 데이터의 관리 방법을 설명하기 위한 도면이다.
도 4는 본 발명의 일 실시 예에 따른 비휘발성 메모리에 저장된 데이터의 관리 장치를 설명하기 위한 도면이다.
도 5는 본 발명의 일 실시 예에 따른 NAND 플래시 메모리의 랜덤 데이터 생성 과정을 설명하기 위한 도면이다.
도 6은 본 발명의 다른 실시 예에 따른 비휘발성 메모리에 저장된 데이터의 관리 방법을 설명하기 위한 도면이다.
도 2는 일반적으로 비휘발성 메모리에 저장된 데이터의 관리 방법을 설명하기 위한 도면이다.
도 3은 본 발명의 일 실시 예에 따른 비휘발성 메모리에 저장된 데이터의 관리 방법을 설명하기 위한 도면이다.
도 4는 본 발명의 일 실시 예에 따른 비휘발성 메모리에 저장된 데이터의 관리 장치를 설명하기 위한 도면이다.
도 5는 본 발명의 일 실시 예에 따른 NAND 플래시 메모리의 랜덤 데이터 생성 과정을 설명하기 위한 도면이다.
도 6은 본 발명의 다른 실시 예에 따른 비휘발성 메모리에 저장된 데이터의 관리 방법을 설명하기 위한 도면이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시 예를 가질 수 있는 바, 특정 실시 예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다. 제1, 제2, A, B 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다. 어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 본 출원에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다. 다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 본 발명에 따른 바람직한 실시 예를 첨부된 도면을 참조하여 상세하게 설명한다.
도 1은 하이브리드 메인 메모리 시스템을 설명하기 위한 도면이다. 도 1을 참조하면, 하이브리드 메인 메모리 시스템(100)은 중앙 처리 장치(CPU; Central Processing Unit; 110)과 디램(DRAM; Dynamic Random Access Memory)을 갖는 적어도 하나의 제 1 메모리 모듈(120) 및 비휘발성 메모리(NVM; Non-Volatile Memory)을 갖는 적어도 하나의 제 2 메모리 모듈(130)을 포함할 수 있다.
중앙 처리 장치(110)는 메인 메모리 시스템(100)의 전반적인 동작을 제어하도록 구현될 수 있다. 실시 예에 있어서, 중앙 처리 장치(100)는 적어도 하나의 프로세서, GPU(graphic processing unit), 메모리 제어기(memory controller) 등을 포함할 수 있다. 여기서, 프로세서는 범용 마이크로프로세서, 멀티코어 프로세서, 디지털 신호 프로세서(DSP; digital signal processor), ASIC(application specific integrated circuit), 혹은 그것들의 조합을 포함할 수 있다.
제 1 메모리 모듈(120)은 중앙 처리 장치(110)의 동작을 수행하는데 필요한 데이터를 임시로 저장하도록 구현될 수 있다. 실시 예에 있어서, 제 1 메모리 모듈(120)은 DDRx(double data rate, x는 generation 의미함, 예를 들어 x는 4, 5 등이 될 수 있다.) 인터페이스에 따라 중앙 처리 장치(110)에 연결될 수 있다. 하지만, 본 발명의 인터페이스가 여기에 제한되지는 않을 것이다.
제 2 메모리 모듈(130)은 전원이 공급되지 않아도 저장된 정보를 계속 유지하도록 구현될 수 있다. 실시 예에 있어서, 제 2 메모리 모듈(130)은 DDRx 인터페이스에 따라 중앙 처리 장치(110)에 연결될 수 있다. 하지만, 본 발명의 인터페이스가 여기에 제한되지는 않을 것이다.
예를 들어, 제 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)에 연결될 수 있다.
실시 예에 있어서, 제 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) 등 일 수 있다.
중앙 처리 장치(110)는 제 1 메모리 모듈(120)의 캐시를 통해 보다 빠르게 데이터에 접근할 수 있다. 만약 중앙 처리 장치(110)가 미리 정해진 시간 동안 캐시(Cache)를 사용하지 않으면, 캐시 정책에 의해 제 1 메모리 모듈(120)의 캐시에 저장된 데이터는 제 2 메모리 모듈(130)로 옮겨지게 된다. 이를 플러쉬(Flush) 과정이라고 한다.
플러쉬 과정 이후에는 데이터는 비휘발성 메모리에 남아있게 된다. 한편, 본 발명의 하이브리드 메인 메모리(100)의 캐시 동작이 여기에 제한되지 않을 것이다. 하이브리드 메인 메모리(100)의 캐시 동작은 다양하게 구현될 수 있다고 이해되어야 할 것이다. 예를 들어, 중앙 처리 장치(110)는 동작에 필요한 캐시를 제 1 메모리 모듈(120) 및 제 2 메모리 모듈(130)에 동시에 전송할 수 있다.
또한, 제 2 메모리 모듈(130)에 저장된 캐시는 추후 중앙 처리 장치(110)에 의해 관리 될 수 있다. 이때, 중앙 처리 장치(110)는 제 2 메모리 모듈(130)에 저장된 캐시의 valid/invalid 비트를 업데이트 하여 캐시를 관리할 수 있다. 즉 실제 데이터는 삭제하지는 않고, 데이터의 유효성에 관한 비트만 업데이트하여 캐시를 관리할 수 있다.
도 2는 일반적으로 비휘발성 메모리에 저장된 데이터의 관리 방법을 설명하기 위한 도면이다. 도 2를 참고하면 제 2 메모리 모듈(130)에 캐시 5와 캐시 6이 valid 상태로 저장되어 있는 것을 볼 수 있다. 이때 해당 캐시에 대한 무효화 요청(invalidation request)이 오면, 중앙 처리 장치(110)는 제 2 메모리 모듈(130)의 캐시 5와 캐시 6의 유효성에 관한 비트만 invalid로 업데이트 한다. 즉 실제의 데이터는 아직 그대로 저장되어 있는 것을 볼 수 있다.
실시 예에 있어서, 무효화 요청은 비식별(de-identification) 기술과 관련된 요청일 수 있다. 이러한 비식별 기술은, 가명처리(pseudonymization; 휴리스틱 가명화, 암호화, 교환), 총계처리(aggregation; 총계처리, 부분총계, 라운딩, 재배열), 데이터 삭제(data reduction; 식별자 삭제, 식별자 부분 삭제, 레코드 삭제, 식별요소 전부삭제), 데이터 범주화(data suppressed; 감추기, 랜덤라운딩, 범위 방법, 제어 라운딩), 데이터 마스킹(data masking; 임의 잡음 추가, 공백과 대체) 포함할 수 있다.
실시 예에 있어서, 무효화 요청은, 비식별 대상인 데이터 관련 주소, 및 비식별 기술 종류 등을 포함하는 커맨드 형태로, 중앙 처리 장치(110)로부터 제 2 메모리 모듈(130)에 전송될 수 있다. 도시되지 않았지만, 제 2 메모리 모듈(130)은 비식별 조치 후, 비식별 조치가 완료되었다는 정보를 중앙 처리 장치(110)로 전송할 수 있다.
이와 같이 캐시를 관리하게 되면, 추후 디지털 포렌식에 의해서 유효성에 관한 비트가 invalid 상태라고 하더라도, 캐시 5와 캐시 6에 저장된 원래의 데이터를 복구할 수 있다. 즉 해킹과 같은 최악의 상황이 발생하면 개인 정보의 유출이 발생할 수 있는 문제점이 있다. 이를 해결하기 위해서는 단순히 유효성에 관한 비트만 관리할 것이 아니라 데이터도 함께 관리해야 한다.
도 3은 본 발명의 일 실시 예에 따른 비휘발성 메모리에 저장된 데이터의 관리 방법을 설명하기 위한 도면이다. 도 3을 참고하면 본 발명에서 제안하는 제 2 메모리 모듈(130)에 저장된 데이터의 관리 방법은 캐시에 대한 무효화 요청을 수신하면 유효성을 관리하는 비트만 변경하는 것이 아니라, 캐시 데이터도 값을 변경하는 것을 특징으로 한다. 이때 캐시 데이터에 저장할 새로운 값은 임의로 생성되는 값이다.
이렇게 임의로 생성한 값으로 원래의 데이터를 변경함으로써, 개인 정보를 효율적으로 관리할 수 있다. 특히, 제 2 메모리 모듈(130)에 개인 정보를 보다 확실하게 무효화 할 수 있다. 이를 통해 개인 정보를 효율적으로 보호하고, 해킹과 같은 불의의 사고가 발생하더라도 개인 정보를 안전하게 보호할 수 있다.
이때, 제 2 메모리 모듈(130)이 PRAM, MRAM, ReRAM, 3DXpoint Memory과 같이 overwritable 메모리인 경우에는 임의의 랜덤 데이터를 생성해서, 캐시 데이터를 변경할 수 있다. 그러나, 제 2 메모리 모듈(130)이 NAND flash memory와 같이 non-overwritable 메모리인 경우에는 제한된 환경에서 랜덤 캐시 데이터를 생성해서 원래의 캐시 데이터를 변경할 수 있다. 이에 관한 보다 자세한 설명은 추후에 하기로 한다.
도 4는 본 발명의 일 실시 예에 따른 비휘발성 메모리에 저장된 데이터의 관리 장치를 설명하기 위한 도면이다. 도 4를 참고하면 본 발명에서 제안하는 제 2 메모리 모듈(130)의 데이터 관리 장치는 메모리 제어기(210) 및 비휘발성 메모리부(230)를 포함할 수 있다. 그리고 메모리 제어기(210)는 DDN 처리부(220)를 포함할 수 있다. 여기서 DDN은 삭제할 의무(Duty to Delete)를 비휘발성 메모리(Non-volatile memory)에 적용하기 위한 별도의 처리부를 말한다.
메모리 제어기(210)의 DDN 처리부(220)는 무효화 요청에 대한 응답으로 랜덤 데이터(221)를 생성할 수 있다. 여기서 무효화 요청은 비휘발성 메모리부(230)의 어느 데이터를 무효화 할지에 대한 주소 정보를 포함할 수 있다. 랜덤 데이터(221)를 생성한 후, DDN 처리부(220)는 비휘발성 메모리부(230)의 해당 주소의 실제 공간에 랜덤 데이터(221)를 덮어 쓸 수 있다.
이때 비휘발성 메모리부(230)의 종류에 따라 랜덤 데이터(221)를 덮어쓰는 과정은 크게 2가지로 나눠질 수 있다. 하나는 비휘발성 메모리부(230)의 종류가 PRAM, MRAM, ReRAM, 3DXpoint Memory과 같이 overwritable 메모리인 경우에는 난수를 이용하여 랜덤 데이터(221)를 생성할 수 있다. 이때 난수는 난수 발생기를 이용하여 생성할 수 있다. 난수를 이용하여 랜덤 데이터(221)를 생성한 후에는 실제 공간에 랜덤 데이터(221)를 덮어 쓸 수 있다. 이후, 무효화 요청이 완료되었다는 정보를 중앙 처리 장치(110)에 전송될 수 있다.
반면에 비휘발성 메모리부(230)의 종류가 NAND memory와 같이 non-overwritable 메모리인 경우에는 overwritable 메모리와 같이 난수를 이용한 데이터의 생성은 불가능하며, 제한된 환경에서 랜덤 데이터(221)를 생성해야 한다. 즉, 무효화 대상이 되는 메모리의 실제 캐시 데이터를 읽은 다음에 읽은 캐시 데이터에 기초하여 랜덤 데이터(221)를 생성한다. 실제 캐시 데이터의 값에 기초하여 랜덤 데이터(221)를 생성한 후에는 실제 공간에 랜덤 데이터(221)를 덮어 쓴다. 이후, 무효화 요청이 완료되었다는 정보를 중앙 처리 장치(110)에 전송될 수 있다.
즉 이때 비휘발성 메모리부(230)의 종류에 따라 랜덤 데이터(221)의 생성 방법이 달라질 수 있다. 다만, 랜덤 데이터(221)를 생성한 후에는 유효성을 나타내는 비트의 값을 valid에서 invalid로 변경하는 것과 함께, 실제 데이터를 랜덤 데이터(221)로 덮어쓰는 과정을 통해 개인 정보를 완전하게 무효화 할 수 있다.
본 발명에서 제안하는 제 2 메모리 모듈(130)의 데이터 관리 방법과 일반적인 데이터 관리 방법을 비교하면 다음의 표 1과 같다.
Read time | Write time | Random Data Gen. time | Erase time | GC Overhead | |
DDN Process | 0.049 ms | 0.6 ms | < 0.1 ms | None | None |
Prior Erase | 4ms | Non-expected |
본 발명에서 제안하는 제 2 메모리 모듈(130)의 데이터 관리 방법은 제 2 메모리 모듈(130)가 non-overwritable 메모리인 경우, 메모리를 읽고 쓰는 시간을 모두 포함해야 한다. 예를 들어 NAND 플래시 메모리의 경우 non-overwritable 메모리이므로 데이터를 읽는 시간이 추가로 더 필요하다.예를 들어 표 1에 값이 표시된 3D NAND 플래시 메모리의 경우, 페이지 읽기 시간은 0.049ms 미만이고, 페이지 쓰기 시간은 0.6 ms 미만이다. 여기에 랜덤 데이터(221)를 생성하는 시간을 모두 포함해도 1ms 미만이다. 이에 비해 일반적인 데이터 관리 방법은 소거 시간에 4ms 정도를 소요한다.
게다가 일반적인 데이터 관리 방법은 가비지 콜렉션(GC; Gavage Collection)로 인한 부하도 추가로 고려해야 한다. 즉 일반적인 데이터 관리 방법에 비해서 본 발명에서 제안하는 제 2 메모리 모듈(130)의 데이터 관리 방법을 사용할 경우 데이터를 무효화 하는데 소모되는 시간과 비용을 줄일 수 있다.
도 5는 본 발명의 일 실시 예에 따른 NAND 플래시 메모리의 랜덤 데이터 생성 과정을 설명하기 위한 도면이다. 도 5를 참고하면 NAND 플래시 메모리의 경우, 원래 저장되어 있던 데이터에 따라 현재 생성할 수 있는 랜덤 데이터(221)가 달라진다. 예를 들면 현재 S5 "100"의 값을 가지고 있다면, 랜덤 데이터(221)는 해당 S5 이후의 상태인 S6, S7, S8의 값인 101, 110, 111 중에서만 생성이 가능하다. 한편, 도 5에 도시된 상태들에 대응하는 데이터는 하나의 실시 예로써, 본 발명을 제한하지 않는다고 이해되어야 할 것이다.
이는 NAND 플래시 메모리가 셀 단위로 데이터를 쓰고 지우기 때문이다. 즉 NAND 플래시 메모리의 S5 상태에서는 데이터를 소거하지 않는 이상 S6, S7, S8 상태의 데이터만 기록이 가능하다. 즉 셀의 데이터를 소거(Erase) 해야만 다시 S1 상태로 돌아갈 수 있기 때문에, 현재 상태 S5를 기준으로 쓰기가 가능한 데이터 중에서 랜덤 데이터(221)를 생성하는 것이다.
NAND 플래시 메모리의 경우, 이렇게 현재 상태의 값을 기준으로 랜덤 데이터(221)를 생성해서 쓰는 과정이 데이터를 소거(Erase)하고 S1 상태로 돌아가는 것보다 시간 및 비용 측면에서 훨씬 효율적이다.
도 6은 본 발명의 다른 실시 예에 따른 비휘발성 메모리에 저장된 데이터의 관리 방법을 설명하기 위한 도면이다. 도 6을 참고하면, 무효화가 필요한 원래의 캐시 데이터(Original Cache Data)를 전부 랜덤 데이터(221)로 덮어쓰는 방법 외에도 부분적으로 덮어쓰는 방법도 가능하다. 이렇게 부분적으로 덮어쓰더라도 온전한 개인 정보의 복구는 불가능하기 때문이다.
이 경우에는 랜덤 데이터 대신에 비-랜덤 데이터를 활용할 수 있다. 즉 임의로 생성한 데이터가 아닌 "000" 또는 "111"과 같은 특정 데이터의 값을 고정으로 사용할 수 있다. 이때에는 도 6의 (a)와 같이 대상 영역을 전부 덮어쓰는 것도 가능하고 (b)와 같이 절반 영역만, (c)나 (d)와 같이 원래의 데이터와 특정 데이터를 교대로 나타나도록 덮어쓰는 것도 가능하다.
또한, 캐시 데이터가 플러쉬 과정 이후 비활성 메모리(130)에 저장된 이후에, 기 설정된 일정한 시간이 경과한 때에는 자동으로 캐시 데이터를 무효화 할 수 있다. 이때 본 발명에서 제안하는 랜덤 데이터를 이용하여 캐시 데이터를 무효화 할 수 있다.
한편, 본 발명은 데이터 서버에 응용 가능하다. 본 발명의 실시 예에 따른 데이터 서버 시스템은 관계형 데이터베이스 관리 시스템(RDBMS; Relational Database Management System), 캐시 서버, 및 어플리케이션 서버를 포함할 수 있다. 캐시 서버는 데이터 베이스 관리 시스템으로부터 무효화 통지에 대응하여 서로 다른 키(key), 값(value) 쌍을 유지하고, 삭제하는 키값 저장을 포함할 수 있다. 데이터 베이스 관리 시스템(RDBMS), 캐시 서버, 및 어플리케이션 서버 중 적어도 하나는 도 1 내지 도 6에서 설명된 비휘발성 메모리의 무효화 기술로 구현될 수 있다.
이상 첨부된 도면을 참조하여 본 발명의 실시 예들을 설명하였지만, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시 예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다.
100: 하이브리드 메인 메모리 시스템
110: 중앙 처리 장치(CPU)
120: 제 1 메모리 모듈
130: 제 2 메모리 모듈
210: 메모리 제어기
220: DDN 처리부
230: 비휘발성 메모리부
110: 중앙 처리 장치(CPU)
120: 제 1 메모리 모듈
130: 제 2 메모리 모듈
210: 메모리 제어기
220: DDN 처리부
230: 비휘발성 메모리부
Claims (6)
- 제 1 메모리 모듈, 제 2 메모리 모듈, 및 상기 제 1 및 제 2 메모리 모듈들을 제어하는 중앙 처리 장치를 포함하는 데이터 서버 시스템의 동작 방법에 있어서,
상기 제 2 메모리 모듈에서 플러쉬 동작(flush operation)에 따라 제 1 메모리 모듈의 유효 캐시 데이터를 저장하는 단계;
상기 제 2 메모리 모듈에서 상기 유효 캐시 데이터에 대한 무효화 요청에 응답하여 랜덤 캐시 데이터를 생성하는 단계; 및
상기 제 2 메모리 모듈에서 상기 유효 캐시 데이터를 상기 랜덤 데이터로 덮어쓰는 단계를 포함하고,
상기 제 1 메모리 모듈은 DRAM(Dynamic Random Access Memory)를 포함하고,
상기 제 2 메모리 모듈은 NAND 플래시 메모리를 포함하고,
상기 랜덤 데이터는 상기 유효 캐시 데이터에 대응하는 현재 상태의 값 이후에 생성 가능한 값들 중 선택되는 것을 특징으로 하는 방법. - 제 1 항에 있어서,
상기 제 1 및 제 2 메모리 모듈들은 DDR(Double Data Rate) 인테페이스에 의해 상기 중앙 처리 장치에 연결되는 것을 특징으로 하는 방법. - 제 1 항에 있어서,
상기 유효 캐시 데이터는 개인 정보를 갖는 캐시 데이터 및 상기 캐시 데이터의 유효성을 지시하는 관리 비트를 포함하는 방법. - 제 1 항에 있어서,
상기 랜덤 데이터로 덮어쓰는 단계는,
상기 유효 캐시 데이터의 일부를 상기 랜덤 데이터로 덮어쓰는 단계를 포함하는 방법. - 제 1 항에 있어서,
상기 데이터 서버 시스템은 관계형 데이터베이스 서버 시스템(RDBMS; Relational Database Management System)를 포함하는 방법. - 제 1 항 내지 제5항 중 어느 한 항에 있어서,
상기 중앙 처리 장치가 미리 정해진 시간 동안 캐시를 사용하지 않으면 상기 제1 메모리 모듈의 캐시에 저장된 데이터가 상기 제2 메모리 모듈로 옮겨지는 플러쉬 동작이 수행되는 것을 특징으로 하는 방법.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020190046820A KR102144124B1 (ko) | 2019-04-22 | 2019-04-22 | 하이브리드 메인 메모리 시스템의 비휘발성 메모리의 데이터 관리 방법 및 장치 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020190046820A KR102144124B1 (ko) | 2019-04-22 | 2019-04-22 | 하이브리드 메인 메모리 시스템의 비휘발성 메모리의 데이터 관리 방법 및 장치 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020170046915A Division KR20180114774A (ko) | 2017-04-11 | 2017-04-11 | 하이브리드 메인 메모리 시스템의 비휘발성 메모리의 데이터 관리 방법 및 장치 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20190045121A true KR20190045121A (ko) | 2019-05-02 |
KR102144124B1 KR102144124B1 (ko) | 2020-08-13 |
Family
ID=66581740
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020190046820A KR102144124B1 (ko) | 2019-04-22 | 2019-04-22 | 하이브리드 메인 메모리 시스템의 비휘발성 메모리의 데이터 관리 방법 및 장치 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102144124B1 (ko) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021118232A1 (ko) * | 2019-12-09 | 2021-06-17 | 고려대학교 산학협력단 | 낸드 플래시 메모리에서 개인 정보 폐기 방법 |
KR20210072730A (ko) * | 2019-12-09 | 2021-06-17 | 고려대학교 산학협력단 | 낸드 플래시 메모리에서 개인 정보 폐기 방법 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20240003750A (ko) | 2022-07-02 | 2024-01-09 | 안나영 | 실시간 보안 삭제 기능을 갖는 저장 장치 및 그것의 동작 방법 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100578143B1 (ko) * | 2004-12-21 | 2006-05-10 | 삼성전자주식회사 | 버퍼 메모리에 저장된 데이터를 무효화시키는 스킴을 갖는저장 시스템 및 그것을 포함한 컴퓨팅 시스템 |
KR20090094195A (ko) * | 2008-03-01 | 2009-09-04 | 가부시끼가이샤 도시바 | 메모리 시스템 및 그 데이터 소거 방법 |
KR100936086B1 (ko) * | 2002-02-11 | 2010-01-12 | 어드밴스드 마이크로 디바이시즈, 인코포레이티드 | 다중 레벨 플래쉬 반도체 메모리의 부분 페이지 프로그래밍 |
KR20100123133A (ko) * | 2009-05-14 | 2010-11-24 | 구진국 | 응용프로그램에서 사용되는 임시 파일의 관리 방법 |
KR101284465B1 (ko) * | 2013-03-26 | 2013-07-09 | 서울과학기술대학교 산학협력단 | 낸드 기반 블록 장치에서 안전 파일 삭제를 지원하는 페이지 사상 방법 및 이를 기록하는 기록매체 |
KR20140051685A (ko) * | 2012-10-23 | 2014-05-02 | 삼성전자주식회사 | 데이터 저장 장치 및 컨트롤러, 그리고 데이터 저장 장치의 동작 방법 |
KR20150112076A (ko) | 2014-03-26 | 2015-10-07 | 삼성전자주식회사 | 하이브리드 메모리 장치, 그것을 포함하는 메모리 시스템 및 그것의 데이터 처리 방법 |
KR20160016481A (ko) * | 2014-07-31 | 2016-02-15 | 삼성전자주식회사 | 데이터 완전삭제를 제어하는 메모리 컨트롤러 및 이를 포함하는 메모리 시스템 |
KR101704702B1 (ko) * | 2016-04-18 | 2017-02-08 | (주)케이사인 | 태깅 기반의 개인 정보 비식별화 시스템 및 방법 |
-
2019
- 2019-04-22 KR KR1020190046820A patent/KR102144124B1/ko active IP Right Grant
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100936086B1 (ko) * | 2002-02-11 | 2010-01-12 | 어드밴스드 마이크로 디바이시즈, 인코포레이티드 | 다중 레벨 플래쉬 반도체 메모리의 부분 페이지 프로그래밍 |
KR100578143B1 (ko) * | 2004-12-21 | 2006-05-10 | 삼성전자주식회사 | 버퍼 메모리에 저장된 데이터를 무효화시키는 스킴을 갖는저장 시스템 및 그것을 포함한 컴퓨팅 시스템 |
KR20090094195A (ko) * | 2008-03-01 | 2009-09-04 | 가부시끼가이샤 도시바 | 메모리 시스템 및 그 데이터 소거 방법 |
KR20100123133A (ko) * | 2009-05-14 | 2010-11-24 | 구진국 | 응용프로그램에서 사용되는 임시 파일의 관리 방법 |
KR20140051685A (ko) * | 2012-10-23 | 2014-05-02 | 삼성전자주식회사 | 데이터 저장 장치 및 컨트롤러, 그리고 데이터 저장 장치의 동작 방법 |
KR101284465B1 (ko) * | 2013-03-26 | 2013-07-09 | 서울과학기술대학교 산학협력단 | 낸드 기반 블록 장치에서 안전 파일 삭제를 지원하는 페이지 사상 방법 및 이를 기록하는 기록매체 |
KR20150112076A (ko) | 2014-03-26 | 2015-10-07 | 삼성전자주식회사 | 하이브리드 메모리 장치, 그것을 포함하는 메모리 시스템 및 그것의 데이터 처리 방법 |
KR20160016481A (ko) * | 2014-07-31 | 2016-02-15 | 삼성전자주식회사 | 데이터 완전삭제를 제어하는 메모리 컨트롤러 및 이를 포함하는 메모리 시스템 |
KR101704702B1 (ko) * | 2016-04-18 | 2017-02-08 | (주)케이사인 | 태깅 기반의 개인 정보 비식별화 시스템 및 방법 |
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 |
---|---|---|---|---|
WO2021118232A1 (ko) * | 2019-12-09 | 2021-06-17 | 고려대학교 산학협력단 | 낸드 플래시 메모리에서 개인 정보 폐기 방법 |
KR20210072730A (ko) * | 2019-12-09 | 2021-06-17 | 고려대학교 산학협력단 | 낸드 플래시 메모리에서 개인 정보 폐기 방법 |
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 (ko) | 2020-08-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10127166B2 (en) | Data storage controller with multiple pipelines | |
CN113508382B (zh) | Ssd中数据的选择性擦除 | |
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 | |
KR102144124B1 (ko) | 하이브리드 메인 메모리 시스템의 비휘발성 메모리의 데이터 관리 방법 및 장치 | |
US20180260151A1 (en) | Data Storage Device and Operating Method Therefor | |
US10019315B2 (en) | Control device for a storage apparatus, system, and method of controlling a storage apparatus | |
KR102530583B1 (ko) | 저장 장치 및 메모리 시스템 | |
CN107402719B (zh) | 可用于数据储存装置的数据储存方法与数据回复方法、以及采用这些方法的数据储存装置 | |
US20140219041A1 (en) | Storage device and data processing method thereof | |
US20140325168A1 (en) | Management of stored data based on corresponding attribute data | |
KR20160024550A (ko) | 데이터 저장 장치 및 그것의 동작 방법 | |
US20190377693A1 (en) | Method to generate pattern data over garbage data when encryption parameters are changed | |
US11360912B2 (en) | Method for performing adaptive locking range management, associated data storage device and controller thereof | |
US10146688B2 (en) | Safe write-back cache replicating only dirty data | |
Ahn et al. | Duty to delete on non-volatile memory | |
KR20180114774A (ko) | 하이브리드 메인 메모리 시스템의 비휘발성 메모리의 데이터 관리 방법 및 장치 | |
US20240069771A1 (en) | Read operations for mixed data | |
JP2013062616A (ja) | 記憶装置、データ記憶方法、及びデータコントローラ | |
KR20210095711A (ko) | 메모리 시스템에서 데이터를 재배치하기 위한 데이터 무결성 보호 | |
TW201621668A (zh) | 資料儲存裝置及其資料寫入方法 | |
JP6378111B2 (ja) | 情報処理装置及びプログラム | |
KR20210079894A (ko) | 데이터 저장 장치 및 그것의 동작 방법 | |
US11657000B2 (en) | Controller and memory system including the same | |
TWI824761B (zh) | 在以快閃記憶體為基礎的儲存裝置中快取位址映射資訊的方法與裝置 |
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 |