KR101284465B1 - 낸드 기반 블록 장치에서 안전 파일 삭제를 지원하는 페이지 사상 방법 및 이를 기록하는 기록매체 - Google Patents

낸드 기반 블록 장치에서 안전 파일 삭제를 지원하는 페이지 사상 방법 및 이를 기록하는 기록매체 Download PDF

Info

Publication number
KR101284465B1
KR101284465B1 KR1020130032161A KR20130032161A KR101284465B1 KR 101284465 B1 KR101284465 B1 KR 101284465B1 KR 1020130032161 A KR1020130032161 A KR 1020130032161A KR 20130032161 A KR20130032161 A KR 20130032161A KR 101284465 B1 KR101284465 B1 KR 101284465B1
Authority
KR
South Korea
Prior art keywords
page
block
logical page
mapping
original data
Prior art date
Application number
KR1020130032161A
Other languages
English (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 KR1020130032161A priority Critical patent/KR101284465B1/ko
Application granted granted Critical
Publication of KR101284465B1 publication Critical patent/KR101284465B1/ko

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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0873Mapping of cache memory to specific storage devices or parts thereof
    • 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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0652Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket

Abstract

본 발명은 낸드 기반 블록 장치(NAND-based block device)에서 안전 파일 삭제(secure file deletion)를 지원하는 페이지 사상 방법(page mapping scheme)에 있어서, 논리 페이지에 대한 덮어쓰기(over-write) 요청이 있으면, 상기 논리 페이지에 대한 덮어쓰기 요청 횟수를 계수하는 단계, 상기 논리 페이지에 대한 덮어쓰기 요청 횟수가 미리 정해진 문턱값(threshold)을 초과하는지 여부를 확인하는 단계 및 상기 논리 페이지에 대한 덮어쓰기 요청 횟수가 상기 문턱값을 초과하면, 상기 논리 페이지에 저장된 원본 데이터를 다시 복구할 수 없도록 삭제하는 안전 파일 삭제 기능을 수행하는 단계를 포함한다. 본 발명에 의하면 낸드 기반 블록 장치(NAND-based block device)에서 안전 파일 삭제(secure file deletion)를 지원하는 페이지 사상 방법(page mapping scheme)을 제공함으로써, 보안이 필요한 파일을 복구할 수 없도록 안전하게 삭제할 수 있는 효과가 있다.

Description

낸드 기반 블록 장치에서 안전 파일 삭제를 지원하는 페이지 사상 방법 및 이를 기록하는 기록매체{Page mapping scheme that supports secure file deletion for NAND-based block device, and thereof recording medium}
본 발명은 낸드 플래시 메모리에 관한 것으로서, 더욱 상세하게는 낸드 기반 블록 장치에서 안전하게 파일을 삭제하는 페이지 사상 방법에 관한 것이다.
낸드 플래시 메모리(NAND Flash Memory)는 가볍고, 하드 디스크와 달리 기계적인 움직임이 없어 충격에 강할 뿐만 아니라 소음이 없고 접근 속도가 빠르며 전력소모가 적다. 이러한 장점으로 MP3 플레이어, 휴대폰, USB 메모리와 임베디드 시스템 저장 장치로 널리 사용된다. 또한 작은 크기에 많은 양의 데이터를 저장하는 것이 가능해지면서 플래시 메모리를 병렬로 연결한 Solid State Drive(SSD)가 저장장치로 활발히 사용되고 있다.
낸드 플래시 메모리는 일반적으로 페이지 쓰기 시간에 비하여 읽기 시간이 빠르며 상대적으로 지우기 연산 시간이 길다. 낸드 플래시 메모리는 하드디스크와 다른 입출력 방식과 특성을 가지고 있다.
도 1은 일반적인 낸드 플래시 메모리의 내부 구조를 도시한 도면이다.
도 1을 참조하면, 일반적으로 낸드 플래시 메모리는 다수의 블록으로 구성되어 있으며, 이 블록은 64개 또는 128개의 페이지로 이루어져 있다. 도 1에서는 128개의 페이지로 구성된 블록의 예이다.
낸드 플래시 메모리에서 페이지는 읽기 및 쓰기 연산의 단위이며, 반면 블록은 삭제 연산의 단위이다. 하드디스크와 달리 플래시 메모리는 덮어쓰기 연산을 지원하지 않으며, 따라서 페이지에 기록된 데이터를 수정하기 위해서는 해당 페이지가 속한 블록 내의 모든 유효한 데이터(유효한 페이지)를 다른 빈 블록에 복사를 하고, 이전 블록을 삭제하는 과정을 필요로 한다. 이 과정은 다수의 페이지 복사(페이지 읽기 및 쓰기) 및 삭제 연산 과정을 수반하기 때문에 전반적인 낸드 플래시 저장 장치의 성능을 감소시킨다.
이러한 성능 감소를 줄이기 위해 일반적으로 플래시 메모리 변환 계층(Flash Translation Layer, FTL)이라는 소프트웨어가 파일 시스템과 낸드 플래시 메모리 사이에 사용된다. FTL은 크게 주소 사상 기능과 가비지 컬렉션 기능으로 구성되어 있다. 주소 사상 기능은 파일 시스템으로부터 덮어쓰기 요청을 받은 경우 해당 데이터를 원래 페이지에 덮어쓰는 대신, 다른 빈 페이지에 기록함으로써 부가적인 페이지 복사 및 삭제 연산을 감소시키는 역할을 한다. 이를 위해 주소 사상 기능은 특정 크기의 주소 사상 테이블을 반드시 SRAM 메모리 내에 유지해야 하며, 이를 통해 파일 시스템으로 받은 논리 주소를 플래시 메모리 내의 실제 물리 주소로 사상하는 방식을 사용한다. 주소 사상 기법은 덮어쓰기에 따른 불필요한 읽기, 쓰기, 삭제 연산들을 줄여주지만 최신 데이터보다 오래된 데이터를 저장하고 있는 페이지(무효화 된 페이지)들을 다수 발생시킨다. 무효화 된 페이지들로 인해 플래시 메모리 공간이 낭비되는 것을 막기 위해 FTL은 주기적으로 무효화 된 페이지들을 삭제해야만 한다. 이러한 FTL의 기능을 가비지 컬렉션 기능이라 부른다.
FTL은 주소 변환 테이블을 유지한다. 이 테이블은 논리 주소에 해당하는 물리 주소를 기록한다. FTL은 주소 변환 테이블의 단위에 따라 페이지 사상 정책, 블록 사상 정책, 하이브리드 사상 정책으로 나뉜다.
페이지 사상 정책은 페이지 단위로 주소 변환을 수행하는 정책으로, 낸드 공간을 효율적으로 활용함으로써 가장 빠른 성능을 보인다. 단점은 전체 주소 변환 테이블의 단위가 페이지 단위이므로, 주소 변환 테이블을 유지하는데 필요한 Random Access Memory(RAM) 요구량이 여타 정책에 비해 크다. 이 문제는 필요한 주소 변환 테이블 일부만을 RAM에 적재하는 방식으로 해결할 수 있다.
자주 참조되는 주소 변환 테이블의 일부를 DRAM 메모리에 적재하여 사용하는 기법인 DFTL(Demand-based FTL)은 DRAM 메모리의 사용량을 크게 줄일 수가 있다. 하지만 DRAM에 적재되는 Cached Mapping Table(이하, 'CMT'라 함)의 적중률이 성능에 큰 영향을 끼친다. 해당 주소가 CMT에 존재하지 않았을 경우, 해당 주소를 불러오기 위하여 추가적인 낸드 플래시 메모리의 읽기, 쓰기 연산이 일어남에 따라 성능이 감소한다. 또한 CMT는 순차검색을 하므로 CMT의 크기를 크게 유지하면 그 만큼 순차검색을 위한 시간이 증가하며, CMT의 크기를 작게 유지할 경우 사상 주소의 빈번한 교체로 성능이 감소한다.
전술한 바와 같이 낸드 플래시 메모리 기반 저장장치는 FTL를 이용하여 하드디스크와 같은 블록 디바이스로 사용한다. FTL의 정책에 따라 낸드 플래시 저장장치들의 성능에 큰 영향을 미친다.
FTL은 논리주소를 물리 주소로 변환하기 위한 주소 변환 테이블을 운영한다.
블록(block) 사상 정책은 낸드 플래시 메모리의 삭제단위인 블록을 주소 변환 테이블의 사상 단위로 사용하는 정책이다. 즉, 블록 매핑 테이블을 이용하여 논리블록을 물리블록으로 번역한다. 논리 페이지 번호는 블록 내 물리 페이지 오프셋으로 고정한다. 블록을 사상 주소 단위로 사용하기 때문에 주소 변환 테이블이 작다는 장점이 있다. 그러나 논리 페이지 번호가 고정되어 있기 때문에 이미 쓰인 페이지 수정을 위하여 블록 전체를 새로 기록해야 하므로 그 비용이 굉장히 크다. 이 때문에 무작위 쓰기 패턴에 성능이 굉장히 떨어진다.
페이지 사상 정책은 주소 변환 테이블을 단위가 페이지로 논리 페이지가 물리 페이지 주소로 사상된다. 페이지가 기본 단위이므로 더 유연하게 사상 정보들을 관리 할 수 있으므로 전체적인 페이지 복사 횟수와 블록 지우기 횟수가 줄어든다. 그러므로 높은 성능을 보인다. 하지만 주소 변환 테이블의 단위가 페이지이므로 많은 RAM 사용량을 요구하는 단점이 있다.
도 2는 페이지 사상 정책에서 덮어 쓰기 요청 시 모습을 나타낸 도면이다.
도 2를 참조하면, 논리 페이지 쓰기 요청이 들어오면 물리 블록 내부의 페이지에 순차적으로 기록한다. 논리 페이지 번호 6번에 덮어 쓰기 요청이 들어오면, 기존 물리 페이지 번호 4번의 데이터를 무효화한다. 그리고 새로운 물리 페이지 10번에 새로운 데이터를 기록하고 페이지 사상 테이블을 업데이트한다. 이와 같이 모든 물리 블록 내 페이지가 소모되면, 유효 페이지를 모으고 무효화된 페이지를 삭제하여 블록을 재생시키는 가비지 콜렉션(garbage collection)을 수행한다.
BAST(Block associative sector translation)는 블록 사상 테이블과 페이지 사상 테이블을 모두 사용하며, 낸드 플래시 메모리 내 블록들을 로그블록과 데이터블록으로 분류한다. 로그블록은 페이지 사상 테이블로 운영하고, 데이터 블록은 블록 사상 테이블로 운영한다. 로그 블록은 데이터 블록의 버퍼처럼 쓴다.
BAST 정책에서 쓰기 요청이 들어오면 해당 데이터 블록에 연관된 로그 블록에 순차적으로 기록한다. 하지만 로그블록은 오직 한 데이터블록에 연관됨으로 무작위 작은 쓰기 요청이 들어오면 성능이 급격히 떨어진다.
FAST(fully associative sector translation) 정책은 이러한 무작위적인 쓰기에 대한 BAST의 단점을 보완하기 위하여 전체 로그 블록을 순차 쓰기를 처리하기 위한 순차 로그 블록과, 임의 쓰기를 처리하는 랜덤 로그 블록으로 나누어 관리한다. 이 중 랜덤 로그 블록은 여러 데이터 블록과 연관된다. 그러므로 무작위적인 쓰기에 대해서 로그블록의 활용도를 높여 병합 횟수를 줄일 수 있다.
DFTL 정책은 위에서 설명한 페이지 사상 정책의 DRAM 사용량이 크다는 단점을 해결하기 위하여 빈번히 참조되는 페이지 사상 정보들만을 RAM에 적재하고 모든 사상 정보들을 낸드 플래시 메모리에 저장하는 정책이다. RAM에 적재되는 자주 참조되는 페이지 사상정보를 위한 테이블을 Cached Mapping Table(CMT) 라고 하며, 낸드 플래시 메모리에 적재되는 테이블을 Global Mapping Table(GMT) 이라 한다. 낸드 플래시 메모리 특성상 GMT의 정보들을 흩어져서 저장되어야 하므로, 이러한 정보를 기록하는 Global Translation Directory(GTD)를 RAM에 유지한다.
DFTL 정책에서 읽기, 쓰기 요청 시, 먼저 CMT를 검색하여 해당 논리 페이지 주소에 사상되어 있는 물리 페이지 주소를 찾는다. 만약 CMT에서 주소 찾기가 실패일 경우, GTD를 통하여 GMT에서 CMT로 옮겨온다. 이 때 CMT에서는 LRU(Least Recently Used)정책에 의하여 하나의 사상 정보가 CMT에서 GMT로 퇴출된다. CMT 실패 시 2회 페이지 읽기와 1회 페이지 쓰기 연산이 일어난다.
DFTL은 CMT를 순차검색해야 하기 때문에 CMT크기가 클수록 검색비용이 증가하는 단점을 가지고 있으며, 또한 공간지역성을 고려하지 않았기 때문에 순차쓰기 패턴에 취약한 단점을 갖는다.
최근 개인적인 디지털 데이터의 양이 급격하게 증가하면서, 보안 측면에서 복구불가능한 파일 삭제 기능에 대한 중요성이 증가하고 있다.
반복적인 덮어쓰기(over-writing) 방식으로 안전 컨텐츠(secure contents)를 왜곡하는 현존하는 안전 파일 삭제(secure file deletion) 툴(tool)은 NAND 기반 블록 장치(NAND-based block device)에서 제대로 동작되지 않는다. 왜냐하면, NAND 기반 블록 장치는 업데이트되는 덮어쓰기 요청에 부적절한 동작을 수행하는데, 이는 원본 데이터(original data)를 보호하게 된다.
[1] P. Gutmann, "Secure deletion of data from magnetic and solid-state memory", In proceedings of USENIX Security Symposium, 1996. [2] A. Ban, "Flash file system", U.S. Patent 5,404,485, 1995. [3] A. Ban, "Flash file system optimized for page-mode flash technologies", U.S. Patent 5,937,425, 1999. [4] J. Kim, J. M. Kim, S. Noh, S. Min, and Y. Cho, "A space-efficient flash translation layer for compactflash systems", IEEE Transactions on Consumer Electronics, vol. 48, no. 2, 2002. [5] S. Lee, D. Park, T. Chung, W. Choi, D. Lee, S. Park, and H. Song, "A log buffer based flash translation layer using fully associative sector translation", ACM Transactions on Embedded Computing Systems, vol. 6, no. 3, 2007. [6] A. Kawaguchi, S. Nishioka, and H. Motoda, "A Flash-Memory based File System", In proceedings of USENIX Technical Conference, 1995. [7] I. Shin, "Secure File Delete in NAND-based Storage", International Journal of Security and Its Applications, Vol. 6, No. 2, 2012.
본 발명은 상기와 같은 문제점을 해결하기 위하여 안출된 것으로서, 낸드 기반 블록 장치(NAND-based block device)에서 안전 파일 삭제(secure file deletion)를 지원하는 페이지 사상 방법(page mapping scheme)을 제공하는데 그 목적이 있다.
본 발명의 목적은 이상에서 언급한 목적으로 제한되지 않으며, 언급되지 않은 또 다른 목적들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
이와 같은 목적을 달성하기 위한 본 발명은 낸드 기반 블록 장치(NAND-based block device)에서 안전 파일 삭제(secure file deletion)를 지원하는 페이지 사상 방법(page mapping scheme)에 있어서, 논리 페이지에 대한 덮어쓰기(over-write) 요청이 있으면, 상기 논리 페이지에 대한 덮어쓰기 요청 횟수를 계수하는 단계, 상기 논리 페이지에 대한 덮어쓰기 요청 횟수가 미리 정해진 문턱값(threshold)을 초과하는지 여부를 확인하는 단계 및 상기 논리 페이지에 대한 덮어쓰기 요청 횟수가 상기 문턱값을 초과하면, 상기 논리 페이지에 저장된 원본 데이터를 다시 복구할 수 없도록 삭제하는 안전 파일 삭제 기능을 수행하는 단계를 포함한다.
상기 논리 페이지에 대한 덮어쓰기 요청 횟수, 상기 논리 페이지에 무효화된 원본 데이터를 갖는 전체 물리 블록의 배열 및 상기 논리 페이지에 저장된 무효화된 원본 데이터를 포함하는 물리 블록의 삭제 횟수가 사상 테이블(mapping table)에 저장되어 있을 수 있다.
상기 안전 파일 삭제 기능을 수행하는 단계는 상기 논리 페이지에 대한 덮어쓰기 요청 횟수가 상기 문턱값을 초과하면, 상기 사상 테이블에서 상기 논리 페이지에 무효화된 원본 데이터를 포함하는 물리 블록을 찾고, 상기 사상 테이블로부터 상기 논리 페이지에 무효화된 원본 데이터를 포함하는 물리 블록의 삭제 횟수와 현재 상기 블록의 삭제 횟수를 비교하여, 양자가 동일한 경우에 한하여, 상기 블록을 삭제하는 동작을 수행할 수 있다.
상기 블록을 삭제하는 동작은 상기 블록의 유효한 페이지를 다른 클린 블록(clean block)으로 이동시키고, 상기 블록을 삭제하는 것일 수 있다.
본 발명에 의하면 낸드 기반 블록 장치(NAND-based block device)에서 안전 파일 삭제(secure file deletion)를 지원하는 페이지 사상 방법(page mapping scheme)을 제공함으로써, 보안이 필요한 파일을 복구할 수 없도록 안전하게 삭제할 수 있는 효과가 있다.
도 1은 일반적인 낸드 플래시 메모리의 내부 구조를 도시한 도면이다.
도 2는 페이지 사상 정책에서 덮어쓰기 요청 시 모습을 나타낸 도면이다.
도 3은 본 발명의 일 실시예에 따른 사상 테이블(mapping table)이다.
도 4는 본 발명의 일 실시예에 따른 페이지 사상 방법의 상세한 의사(擬似, pseudo) 코드(code)를 도시한 도면이다.
도 5는 본 발명의 일 실시예에 따른 낸드 기반 블록 장치에서의 안전 파일 삭제 기능을 지원하는 페이지 사상 방법을 보여주는 흐름도이다.
이하, 첨부된 도면을 참조해서 본 발명의 실시예를 상세히 설명하면 다음과 같다. 우선 각 도면의 구성 요소들에 참조 부호를 부가함에 있어서, 동일한 구성 요소들에 한해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 부호를 가지도록 하고 있음에 유의해야 한다. 그리고, 본 발명을 설명함에 있어서, 관련된 공지 기능 혹은 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다. 그리고 명세서 전반에 걸쳐서, 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라, 다른 구성요소를 더 포함할 수 있다는 것을 의미한다.
본 발명은 낸드 기반 블록 장치(NAND-based block device)에서 안전 파일 삭제(secure file deletion)를 지원하는 페이지 사상 방법(page mapping scheme)을 제공한다.
본 발명에서 안전 파일 삭제 기능을 지원하는 페이지 사상 방법을 수행하는 주체는 컴퓨터를 전반적으로 제어하는 제어부 또는 제어 명령 신호 및 일련의 프로그램을 처리하는 중앙처리장치(CPU, Central Processing Unit)일 수 있다. 다시 말해서, 본 발명의 페이지 사상 방법은 일종의 알고리즘인 소프트웨어로서, 소프트웨어는 컴퓨터의 제어부 또는 중앙처리장치(CPU, Central Processing Unit)가 실행 주체가 되어 실행됨은 당연하다 할 것이다.
본 발명에서 제안하는 페이지 사상 방법은 덮어쓰기(over-write) 횟수와 원본 데이터(original data)의 물리적 위치를 유지한다. 만약 덮어쓰기 횟수가 미리 정해진 문턱값(threshold)을 초과하면, 본 발명의 페이지 사상 방법은 이전의 덮어쓰기 동작에 의해 무효화된 원본 데이터를 찾아내고, 블록 삭제 동작(block erasure operation)에 의해 원본 데이터를 삭제한다. 이때, 삭제된 데이터는 복구할 수 없다.
실제 동작환경에서 본 발명에서 제안하는 페이지 사상 방법은 종래 안전 파일 삭제를 지원하는 방법에 비해 전체 입출력(I/O) 시간을 104%까지 감소시킬 수 있음을 트레이스 드라이브(trace-drive) 시뮬레이션에서 보여주고 있다.
원본 페이지 사상 방법(original page mapping scheme)에 있어서, 반복적인 덮어쓰기 요청에 의해 안전 컨텐츠(secure contents)가 완전히 삭제되는 시간은 보장되지 않으며, 만약 충분한 클린 블록(clean block)이 있다면 무기한 연장될 수 있다.
도 3은 본 발명의 일 실시예에 따른 사상 테이블(mapping table)이다.
도 3에서 PPN은 Physical Page Number의 약자로서 물리 페이지 숫자이고, Wp는 각 논리 페이지별 덮어쓰기(over-write) 요청 횟수이고, Lp는 무효화된 데이터를 갖는 물리 블록이고, Eb는 무효화된 데이터가 있는 물리 블록의 삭제 횟수이다.
도 3을 참조하면, 안전 파일 삭제를 실행하기 위해서는, 동일한 논리 페이지에 반복적으로 적어도 n번의 덮어쓰기 요청이 있으면 원본 물리 페이지가 삭제된다는 것이 보장되어야 한다.
이러한 조건을 만족시키기 위하여, 각 논리 페이지마다 덮어쓰기 요청 횟수(Wp)와 무효화된 데이터를 갖는 물리 블록(Lp)을 유지하는 것이 필요하다.
따라서, 상기 데이터들(Wp 및 Lp)은 도 3의 페이지 사상 방법(page mapping scheme)의 사상 테이블(mapping table)에 추가된다. 여기서 Lp는 논리 페이지에 무효화된 데이터를 갖는 전체 물리 블록의 배열이다.
본 발명에서 어떤 무효화된 페이지가 원본 안전 데이터를 갖고 있는지 알 수 없기 때문에, 무효화된 페이지의 모든 위치를 유지해야 한다.
만약 어느 논리 페이지에 대한 덮어쓰기 요청 횟수가 미리 정해진 덮어쓰기 문턱값(UBw)을 초과하면, 안전 삭제 기능이 개시되어 사상 테이블로부터 무효화된 데이터를 갖는 블록을 찾는다. 이때, 무효화된 데이터가 여전히 보존되어 있는지 또는 이전 가비지 컬렉션(garbage collection)에 의해 이미 삭제되었는지를 확인해야 한다.
무효화된 데이터가 이미 삭제된 경우라면, 그 데이터는 이미 복구할 수 없기 때문에 다시 삭제할 필요가 없다.
그러나, 무효화된 데이터가 여전히 보존되어 있다면, 블록 내에 여전히 클린 페이지가 있다고 하더라도 해당 블록에 삭제 동작을 수행하여야 한다. 따라서, 무효화된 데이터가 있는 물리 블록의 삭제 횟수(Eb)를 유지해야할 필요가 있다. Lp와 동일하게 Eb도 배열이다.
결론적으로, 도 3에서 보는 바와 같이, 본 발명에서 제안하는 방법은 사상 테이블에 부가 정보(Wp, Lp 및 Eb)가 추가된다.
안전 삭제 기능은 Eb 값을 원본 페이지를 갖는 블록의 현재 삭제 횟수와 비교하고, 현재 삭제 횟수가 Eb 값과 동일한 경우에만 해당 블록의 유효한 페이지를 다른 클린 블록(clean block)으로 이동시키고, 해당 블록을 삭제한다.
도 4는 본 발명의 일 실시예에 따른 페이지 사상 방법의 상세한 의사(擬似, pseudo) 코드(code)를 도시한 도면이다.
도 4를 참조하면, 읽기 기능(read function)은 원본 페이지 사상 방법과 동일하기 때문에, 본 발명의 페이지 사상 방법에서는 쓰기 기능(write function)과 안전 삭제 기능(secure deletion function)만을 구현하는 유사 코드를 제안한다.
도 5는 본 발명의 일 실시예에 따른 낸드 기반 블록 장치에서의 안전 파일 삭제 기능을 지원하는 페이지 사상 방법을 보여주는 흐름도이다.
도 5를 참조하면, 본 발명의 낸드 기반 블록 장치(NAND-based block device)에서 안전 파일 삭제(secure file deletion)를 지원하는 페이지 사상 방법(page mapping scheme)에 있어서, 어느 논리 페이지에 대한 덮어쓰기(over-write) 요청이 있는지 여부를 확인한다(S501).
어느 논리 페이지에 대한 덮어쓰기 요청이 있으면, 해당 논리 페이지에 대한 덮어쓰기 요청 횟수(Wp)를 계수한다(S503).
논리 페이지에 대한 덮어쓰기 요청 횟수(Wp)가 미리 정해진 문턱값(threshold)(UBw)을 초과하는지 여부를 확인한다(S05).
논리 페이지에 대한 덮어쓰기 요청 횟수(Wp)가 문턱값(UBw)을 초과하면(S505), 논리 페이지에 저장된 원본 데이터를 다시 복구할 수 없도록 삭제하는 안전 파일 삭제 기능을 수행하게 되는데, 그 구체적인 과정은 다음과 같다.
먼저, 사상 테이블에서 논리 페이지에 무효화된 원본 데이터를 포함하는 물리 블록을 찾고, 사상 테이블로부터 논리 페이지에 무효화된 원본 데이터를 포함하는 물리 블록의 삭제 횟수(Eb)와 현재 블록의 삭제 횟수를 비교한다(S507).
논리 페이지에 무효화된 원본 데이터를 포함하는 물리 블록의 삭제 횟수(Eb)와 현재 블록의 삭제 횟수가 동일한 경우에 한하여, 블록을 삭제하는 동작을 수행한다(S507, S509).
S509 단계에서 블록을 삭제하는 동작은 블록의 유효한 페이지를 다른 클린 블록(clean block)으로 이동시키고, 해당 블록을 삭제하는 것이다.
한편, 본 발명의 실시예에 따른 안전 파일 삭제를 지원하는 페이지 사상 방법은 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현되는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다.
예컨대, 컴퓨터가 읽을 수 있는 기록매체로는 롬(ROM), 램(RAM), 시디-롬(CD-ROM), 자기 테이프, 하드디스크, 플로피디스크, 이동식 저장장치, 비휘발성 메모리(Flash Memory), 광 데이터 저장장치 등이 있으며, 또한 캐리어 웨이브(예를 들면, 인터넷을 통한 전송)의 형태로 구현되는 것도 포함된다.
또한, 컴퓨터로 읽을 수 있는 기록매체는 컴퓨터 통신망으로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 읽을 수 있는 코드로서 저장되고 실행될 수 있다.
이상 본 발명을 몇 가지 바람직한 실시예를 사용하여 설명하였으나, 이들 실시예는 예시적인 것이며 한정적인 것이 아니다. 본 발명이 속하는 기술분야에서 통상의 지식을 지닌 자라면 본 발명의 사상과 첨부된 특허청구범위에 제시된 권리범위에서 벗어나지 않으면서 다양한 변화와 수정을 가할 수 있음을 이해할 것이다.

Claims (6)

  1. 낸드 기반 블록 장치(NAND-based block device)에서 안전 파일 삭제(secure file deletion)를 지원하는 페이지 사상 방법(page mapping scheme)에 있어서,
    논리 페이지에 대한 덮어쓰기(over-write) 요청이 있으면, 상기 논리 페이지에 대한 덮어쓰기 요청 횟수를 계수하는 단계;
    상기 논리 페이지에 대한 덮어쓰기 요청 횟수가 미리 정해진 문턱값(threshold)을 초과하는지 여부를 확인하는 단계; 및
    상기 논리 페이지에 대한 덮어쓰기 요청 횟수가 상기 문턱값을 초과하면, 상기 논리 페이지에 저장된 원본 데이터를 다시 복구할 수 없도록 삭제하는 안전 파일 삭제 기능을 수행하는 단계를 포함하는 페이지 사상 방법.
  2. 제1항에 있어서,
    상기 논리 페이지에 대한 덮어쓰기 요청 횟수, 상기 논리 페이지에 무효화된 원본 데이터를 갖는 전체 물리 블록의 배열 및 상기 논리 페이지에 저장된 무효화된 원본 데이터를 포함하는 물리 블록의 삭제 횟수가 사상 테이블(mapping table)에 저장되어 있는 것임을 특징으로 하는 페이지 사상 방법.
  3. 제2항에 있어서,
    상기 안전 파일 삭제 기능을 수행하는 단계는,
    상기 논리 페이지에 대한 덮어쓰기 요청 횟수가 상기 문턱값을 초과하면, 상기 사상 테이블에서 상기 논리 페이지에 무효화된 원본 데이터를 포함하는 물리 블록을 찾는 것을 포함하는 것을 특징으로 하는 페이지 사상 방법.
  4. 제3항에 있어서,
    상기 안전 파일 삭제 기능을 수행하는 단계는,
    상기 사상 테이블로부터 상기 논리 페이지에 무효화된 원본 데이터를 포함하는 물리 블록의 삭제 횟수와 현재 상기 블록의 삭제 횟수를 비교하여, 양자가 동일한 경우에 한하여, 상기 블록을 삭제하는 동작을 수행하는 것을 특징으로 하는 페이지 사상 방법.
  5. 제4항에 있어서,
    상기 블록을 삭제하는 동작은 상기 블록의 유효한 페이지를 다른 클린 블록(clean block)으로 이동시키고, 상기 블록을 삭제하는 것임을 특징으로 하는 페이지 사상 방법.
  6. 제1항 내지 제5항 중 어느 한 항의 방법을 컴퓨터로 실행시킬 수 있는 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.
KR1020130032161A 2013-03-26 2013-03-26 낸드 기반 블록 장치에서 안전 파일 삭제를 지원하는 페이지 사상 방법 및 이를 기록하는 기록매체 KR101284465B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020130032161A KR101284465B1 (ko) 2013-03-26 2013-03-26 낸드 기반 블록 장치에서 안전 파일 삭제를 지원하는 페이지 사상 방법 및 이를 기록하는 기록매체

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020130032161A KR101284465B1 (ko) 2013-03-26 2013-03-26 낸드 기반 블록 장치에서 안전 파일 삭제를 지원하는 페이지 사상 방법 및 이를 기록하는 기록매체

Publications (1)

Publication Number Publication Date
KR101284465B1 true KR101284465B1 (ko) 2013-07-09

Family

ID=48997006

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130032161A KR101284465B1 (ko) 2013-03-26 2013-03-26 낸드 기반 블록 장치에서 안전 파일 삭제를 지원하는 페이지 사상 방법 및 이를 기록하는 기록매체

Country Status (1)

Country Link
KR (1) KR101284465B1 (ko)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9529705B2 (en) 2014-05-12 2016-12-27 Samsung Electronics Co., Ltd. Nonvolatile memory system including nonvolatile memory device and memory controller that loads a mapping table on a sub-bitmap and method of operating the memory controller
KR20180079900A (ko) * 2017-01-03 2018-07-11 한양대학교 산학협력단 캐시 매핑 테이블 관리 방법 및 장치
KR20190045121A (ko) * 2019-04-22 2019-05-02 고려대학교 산학협력단 하이브리드 메인 메모리 시스템의 비휘발성 메모리의 데이터 관리 방법 및 장치
CN109712659A (zh) * 2017-10-25 2019-05-03 三星电子株式会社 存储设备及其动态无用单元收集方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100941368B1 (ko) * 2007-12-27 2010-02-11 한국전자통신연구원 파일 안전 삭제 기능을 갖는 플래시 메모리 장치 및 플래시파일 안전 삭제 방법
KR20120118267A (ko) * 2011-04-18 2012-10-26 고려대학교 산학협력단 안전한 삭제를 위한 플래시 메모리 제어 장치 및 방법

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100941368B1 (ko) * 2007-12-27 2010-02-11 한국전자통신연구원 파일 안전 삭제 기능을 갖는 플래시 메모리 장치 및 플래시파일 안전 삭제 방법
KR20120118267A (ko) * 2011-04-18 2012-10-26 고려대학교 산학협력단 안전한 삭제를 위한 플래시 메모리 제어 장치 및 방법

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9529705B2 (en) 2014-05-12 2016-12-27 Samsung Electronics Co., Ltd. Nonvolatile memory system including nonvolatile memory device and memory controller that loads a mapping table on a sub-bitmap and method of operating the memory controller
KR20180079900A (ko) * 2017-01-03 2018-07-11 한양대학교 산학협력단 캐시 매핑 테이블 관리 방법 및 장치
KR101883637B1 (ko) 2017-01-03 2018-07-31 한양대학교 산학협력단 캐시 매핑 테이블 관리 방법 및 장치
CN109712659A (zh) * 2017-10-25 2019-05-03 三星电子株式会社 存储设备及其动态无用单元收集方法
KR20190045121A (ko) * 2019-04-22 2019-05-02 고려대학교 산학협력단 하이브리드 메인 메모리 시스템의 비휘발성 메모리의 데이터 관리 방법 및 장치
KR102144124B1 (ko) 2019-04-22 2020-08-13 고려대학교 산학협력단 하이브리드 메인 메모리 시스템의 비휘발성 메모리의 데이터 관리 방법 및 장치

Similar Documents

Publication Publication Date Title
KR101717644B1 (ko) 고체-상태 저장 디바이스 상에서 데이터를 캐싱하는 장치, 시스템, 및 방법
KR102002830B1 (ko) 세그먼트 클리닝 장치 및 방법
US9104327B2 (en) Fast translation indicator to reduce secondary address table checks in a memory device
US8949568B2 (en) Memory storage device, and a related zone-based block management and mapping method
TWI446168B (zh) 記憶體系統
KR101297442B1 (ko) 공간 지역성을 고려한 요구 기반 플래시 메모리 변환 계층을 포함하는 낸드 플래시 메모리 시스템
US20170139825A1 (en) Method of improving garbage collection efficiency of flash-oriented file systems using a journaling approach
US9063862B2 (en) Expandable data cache
US10740251B2 (en) Hybrid drive translation layer
US20140082310A1 (en) Method and apparatus of storage tier and cache management
EP2665065A2 (en) Electronic device employing flash memory
US20140115241A1 (en) Buffer management apparatus and method
US9201787B2 (en) Storage device file system and block allocation
KR20100021868A (ko) 플래시 메모리 장치를 위한 버퍼 캐쉬 관리 방법
JP6711121B2 (ja) 情報処理装置、キャッシュメモリ制御方法、およびキャッシュメモリ制御プログラム
KR20100115090A (ko) 버퍼를 고려한 가비지 컬렉션 기법
KR101403922B1 (ko) 접근 빈도에 따라 데이터를 할당하는 저장장치 및 저장방법
KR102304130B1 (ko) 비휘발성 랜덤 액세스 메모리를 이용한 세그먼트 클리닝 방법 및 이를 구현하기 위한 메모리 관리 장치
KR101284465B1 (ko) 낸드 기반 블록 장치에서 안전 파일 삭제를 지원하는 페이지 사상 방법 및 이를 기록하는 기록매체
Ramasamy et al. RFFE: A buffer cache management algorithm for flash-memory-based SSD to improve write performance
US20140095771A1 (en) Host device, computing system and method for flushing a cache
CN109002400B (zh) 一种内容感知型计算机缓存管理系统及方法
KR101026634B1 (ko) 하이브리드 플래시 메모리의 데이터 저장 방법
KR101191650B1 (ko) 낸드 플래시 메모리에서 데이터의 주소를 사상시키는 장치 및 방법
KR100987251B1 (ko) 완전 연관 섹터 변환 기법을 사용하는 플래시 변환 계층에서 합병연산을 줄이기 위한 플래시 메모리 관리 방법및 장치

Legal Events

Date Code Title Description
A201 Request for examination
A302 Request for accelerated examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20160614

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20170627

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee