KR101847859B1 - 파일 트림을 이용한 플래시 메모리 기반 저장장치 및 그 파일 트림 방법 - Google Patents

파일 트림을 이용한 플래시 메모리 기반 저장장치 및 그 파일 트림 방법 Download PDF

Info

Publication number
KR101847859B1
KR101847859B1 KR1020160132226A KR20160132226A KR101847859B1 KR 101847859 B1 KR101847859 B1 KR 101847859B1 KR 1020160132226 A KR1020160132226 A KR 1020160132226A KR 20160132226 A KR20160132226 A KR 20160132226A KR 101847859 B1 KR101847859 B1 KR 101847859B1
Authority
KR
South Korea
Prior art keywords
file
flash memory
logical address
trim
information
Prior art date
Application number
KR1020160132226A
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 KR1020160132226A priority Critical patent/KR101847859B1/ko
Application granted granted Critical
Publication of KR101847859B1 publication Critical patent/KR101847859B1/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/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
    • 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/0253Garbage collection, i.e. reclamation of unreferenced memory

Landscapes

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

Abstract

본 발명은 하나 이상의 파일을 저장하는 플래시 메모리 및 파일 트림 프로그램을 실행하는 컨트롤러를 포함한다. 이때, 컨트롤러는 프로그램의 실행에 따라 호스트 장치로부터 수신된 파일 트림 명령에 대응하는 파일의 논리 주소를 추출하고, 추출된 파일의 논리 주소에 대응하는 물리 페이지에 대한 무효화를 수행하고, 파일은 플래시 메모리에 저장된 것이며, 파일 트림 명령은 호스트 장치의 파일 시스템에서의 파일의 정보를 포함한다.

Description

파일 트림을 이용한 플래시 메모리 기반 저장장치 및 그 파일 트림 방법{APPARATUS AND METHOD OF STORAGE BASED ON FLASH MEMORY USING FILE TRIM}
본 발명은 파일 트림을 이용한 플래시 메모리 기반 저장장치 및 그 파일 트림 방법에 관한 것이다.
낸드 플래시(NAND flash)와 같은 플래시 메모리 기반 저장장치는 빠른 속도 및 낮은 전력 소비 등의 장점으로 컴퓨터 시스템 및 모바일 디바이스 저장장치로 활용되고 있다. 플래시 기반 스토리지는 데이터를 저장하는 최소 단위인 셀(cell)에 데이터를 저장하는 방식에 따라 SLC(single-level cell), MLC(multi-level cell) 및 TLC(triple-level cell) 등으로 구분할 수 있다.
플래시 기반 저장장치는 쓰기 전 지우기(erase before write)와 같은 속성이 있다. 그러므로 플래시 기반 저장장치를 이용하는 호스트 장치는 플래시 기반 저장장치 내부의 플래시 메모리에 직접 접근할 수 없다. 그러므로 호스트는 플래시 기반 저장장치의 플래시 주소 변환 계층(flash translation layer; 이하 FTL)을 통하여 데이터 연산을 수행하게 된다.
한편, 일반적으로 호스트 장치는 플래시 기반 저장장치에 저장된 파일에 대한 삭제를 위하여, 해당 파일에 대한 파일 시스템의 연결 제거를 진행한다.
호스트 장치의 파일 시스템은 파일 시스템에 저장된 해당 파일에 대응하는 아이 노드에 대한 참조 횟수를 감소시킨다. 만약, 다른 프로세서를 통하여 해당 파일이 사용중이면, 해당 파일은 삭제할 수 없는 상태가 될 수 있다. 그러므로 호스트 장치의 파일 시스템은 다른 프로세서를 통한 해당 파일의 접근이 모두 종료된 이후, 해당 파일에 대응하는 아이 노드에 대한 참조 횟수를 0으로 변경할 수 있다.
해당 파일의 아이 노드의 참조 횟수가 0이 되면, 호스트 장치의 파일 시스템은 해당 파일의 아이 노드를 고아 리스트(orphan list)에 추가하게 된다. 그리고 호스트 장치의 파일 시스템은 고아 리스트에 대한 트림(trim) 작업을 수행할 수 있다.
호스트 장치의 파일 시스템은 고아 리스트에 포함된 아이 노드에 대한 폐기(discard) 작업을 진행하게 된다. 예를 들어, 호스트 장치의 파일 시스템은 해당 아이 노드 및 아이 노드와 연결된 데이터 블록에 대한 회수 작업을 수행할 수 있다. 이를 위하여 호스트 장치의 파일 시스템은 플래시 기반 저장장치에 회수 작업에 포함된 데이터 블록 각각에 대한 트림 명령을 전달할 수 있다.
이때, 회수 작업에 포함된 데이터 블록의 수가 증가하면 플래시 기반 저장장치에서 수행하게 될 트림 명령의 수가 증가할 수 있다. 또한, 이에 따른 플래시 기반 저장장치의 오버헤드 역시 증가할 수 있다.
이와 관련되어, 한국 등록특허공보 제10-1157763호(발명의 명칭: "TRIM 명령 처리 기능이 추가된 플래시 메모리 장치를 위한 가변 공간 페이지 사상 방법 및 그 장치")는 융합 그룹에 포함되는 블록에 페이지 사상 기법을 적용하여 데이터를 저장하고, 순차 그룹에 포함되는 블록에는 블록 사상 기법 적용 또는 순차적으로 데이터를 저장하는 FTL를 개시하고 있다.
본 발명은 전술한 종래 기술의 문제점을 해결하기 위한 것으로서, 호스트 장치로부터 수신되는 파일 또는 데이터 단위의 파일 트림 명령을 수행할 수 있는 플래시 메모리 기반 저장장치와 플래시 메모리 기반 저장장치의 파일 트림 방법을 제공한다.
다만, 본 실시예가 이루고자 하는 기술적 과제는 상기된 바와 같은 기술적 과제로 한정되지 않으며, 또 다른 기술적 과제들이 존재할 수 있다.
상술한 기술적 과제를 달성하기 위한 기술적 수단으로서, 본 발명의 제 1 측면에 따른 파일 트림 기법을 이용한 플래시 메모리 기반 저장장치는 하나 이상의 파일을 저장하는 플래시 메모리 및 파일 트림 프로그램을 실행하는 컨트롤러를 포함한다. 이때, 컨트롤러는 프로그램의 실행에 따라 호스트 장치로부터 수신된 파일 트림 명령에 대응하는 파일의 논리 주소를 추출하고, 추출된 파일의 논리 주소에 대응하는 물리 페이지에 대한 무효화를 수행하고, 파일은 플래시 메모리에 저장된 것이며, 파일 트림 명령은 호스트 장치의 파일 시스템에서의 파일의 정보를 포함한다.
또한, 본 발명의 제 2 측면에 따른 플래시 메모리 기반 저장장치에서의 파일 트림 방법은 호스트 장치로부터 수신된 파일 트림 명령에 대응하는 파일의 논리 주소를 추출하는 단계; 및 추출된 파일의 논리 주소에 대응하는 물리 페이지에 대한 무효화를 수행하는 단계를 포함한다. 이때, 파일 트림 명령에 대응하는 파일은 플래시 메모리 기반 저장장치에 포함된 플래시 메모리에 저장된다.
본 발명은 플래시 메모리 기반 저장장치에 저장된 파일 단위에 대한 트림 명령을 수행할 수 있다. 그러므로 본 발명은 트림 명령에 따른 오버헤드를 줄일 수 있다.
또한, 본 발명은 플래시 메모리 기반 저장장치에 대한 하드웨어적인 설계변경 없이, 소프트웨어적으로 구현될 수 있으므로 종래의 플래시 메모리 기반 저장장치에 쉽게 적용할 수 있다.
도 1은 일반적인 플래시 메모리 기반 저장장치의 블록도이다.
도 2는 가비지 컬렉션 과정을 설명하기 위한 예시도이다.
도 3은 본 발명의 일 실시예에 따른 플래시 메모리 기반 저장장치의 블록도이다.
도 4는 본 발명의 일 실시예에 따른 파일 트림 명령의 수행과정을 설명하기 위한 예시도이다.
도 5는 본 발명의 일 실시예에 따른 트림 테이블의 예시도이다.
도 6은 본 발명의 일 실시예에 따른 플래시 메모리 기반 저장장치의 파일 트림 방법에 대한 순서도이다.
아래에서는 첨부한 도면을 참조하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 본 발명의 실시예를 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
명세서 전체에서, 어떤 부분이 다른 부분과 "연결"되어 있다고 할 때, 이는 "직접적으로 연결"되어 있는 경우뿐 아니라, 그 중간에 다른 소자를 사이에 두고 "전기적으로 연결"되어 있는 경우도 포함한다. 또한, 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.
다음은 도 1 및 도 2를 참조하여 종래의 플래시 메모리 기반 저장장치(130)의 파일 트림 방법을 설명한다.
도 1은 일반적인 플래시 메모리 기반 저장장치(130)의 블록도이다.
플래시 메모리 기반 저장장치는 하드 디스크(hard disk)와 같은 저장장치(storage device)와 유사하게 호스트 장치(110)로부터 수신한 파일을 저장하고, 호스트 장치(110)가 요청하는 파일을 읽어 호스트 장치(110)로 전달한다.
이때, 호스트 장치(110)는 플래시 메모리 기반 저장장치(130)를 하드 디스크와 같은 블록 기반의 저장장치와 유사하게 접근할 수 있다. 예를 들어, 호스트 장치(110)는 블록 요청(block request)을 통하여 플래시 메모리 기반 저장장치(130)에 접근할 수 있다.
일반적인 블록 기반의 저장장치와 유사하게 사용하기 위하여 플래시 메모리 기반 저장장치(300)는 FTL(140)을 포함한다. 즉, FTL(140)은 호스트 장치(110)가 플래시 메모리 기반 저장장치(130)를 일반적인 블록 기반 저장장치(130)와 유사하게 데이터 연산을 할 수 있도록 지원한다.
예를 들어, FTL(140)은 호스트 장치(110)의 블록 쓰기 연산을 수행하기 위하여 주소와 상관없이(out-of-place) 저장 가능한 빈 공간에 요청된 쓰기 데이터를 저장할 수 있다. 그리고 FTL(140)은 매핑 정보를 유지한다. FTL(140)은 데이터가 저장된 주소와 동일한 주소에 데이터를 덮어쓰는(overwrite) 쓰기 연산이 요청되면 해당 주소에 저장된 데이터를 다른 빈 공간에 저장한다. 그리고 FTL(140)은 해당 주소의 데이터를 무효화(invalid)할 수 있다.
종래의 플래시 메모리 기반 저장장치(130)에 포함된 모든 공간이 사용된 이후, FTL(140)은 무효화된 데이터를 회수할 수 있다. 이때, 무효화된 데이터를 회수하고 새로운 쓰기 연산을 수행할 수 있도록 준비하기 위하여 FTL(140)은 지우기 연산을 수행할 수 있다.
도 2는 가비지 컬렉션 과정을 설명하기 위한 예시도이다.
일반적으로 플래시 메모리 기반 저장장치(130)에서 쓰기 및 읽기 연산은 페이지(page) 단위로 수행된다. 그러나 플래시 메모리 기반 저장장치(130)에서 지우기 연산은 복수의 페이지를 포함하는 블록(block) 단위로 수행된다. 그러므로 플래시 메모리 기반 저장장치(130)는 회수하기로 결정된 희생 블록(victim block) 내에 존재하는 유효(valid) 페이지를 다른 블록으로 이동하는 가비지 컬렉션(garbage collection)을 수행하여야 한다.
가비지 컬렉션의 효율은 희생 블록 내에 포함된 유효 페이지의 개수가 적고, 무효 페이지의 개수가 많을수록 증가하게 된다. 그러므로 플래시 메모리 기반 저장장치(130)는 트림(trim) 명령에 기초하여 데이터의 삭제 정보를 호스트 시스템으로부터 수신할 수 있다. 그리고 일반적으로 플래시 메모리 기반 저장장치(130)는 트림 명령에 기초하여 삭제 정보에 포함된 논리 주소에 해당하는 물리 페이지에 대한 무효화 작업을 진행할 수 있다. 이때, 트림 명령은 해당 데이터의 저장장치(130) 내의 논리 주소(logical address)를 포함한다. 그리고 논리 주소는 논리 주소의 시작 지점과 범위를 포함한다.
한편, 일반적으로 호스트 장치(110)는 파일 시스템(file system; 120)을 포함한다. 파일 시스템(120)은 파일에 포함된 복수의 데이터를 호스트 장치(110)와 연결된 저장장치에 저장한다. 그리고 파일 시스템(120)은 디렉토리 및 메타데이터를 통하여 저장장치(130) 내에 저장된 데이터를 쉽게 접근, 보관 및 관리할 수 있도록 한다.
호스트 장치(110)는 파일 시스템(120)에 저장된 메타데이터를 통해 파일에 포함된 특정 데이터가 저장장치(130)의 어느 위치에 저장되어 있는지를 알 수 있다. 또한, 호스트 장치(110)는 파일에 포함된 하나 이상의 데이터가 불연속으로 저장되더라도 메타데이터(metadata)를 통하여 쉽게 접근할 수 있다.
일반적으로 파일 시스템(120)이 단편화(fragmentation) 되거나, 파일에 대한 첨부방식(append)이 자주 변경되는 경우 특정 파일에 대응하여 저장장치(130) 내에 저장되는 데이터의 위치는 분산될 확률이 커진다.
트림 명령은 블록 주소에 기초하여 연속적인 주소 공간에 대한 명령을 수행한다. 그러므로 앞에서 설명한 바와 같이, 저장장치(130) 내에 저장되는 데이터의 위치가 분산되는 경우 해당 데이터를 삭제하기 위한 트림 명령의 개수가 증가할 수 있기 때문에 비효율적이다.
다음은 도 3 내지 도 5를 참조하여 본 발명의 일 실시예에 따른 파일 트림 기법에 기반한 플래시 메모리 기반 저장장치(300)를 설명한다.
도 3은 본 발명의 일 실시예에 따른 플래시 메모리 기반 저장장치(300)의 블록도이다.
플래시 메모리 기반 저장장치(300)는 하나 이상의 플래시 메모리(310)를 포함하는 저장장치이다. 예를 들어, 플래시 메모리 기반 저장장치(300)는 하나 이상의 낸드 플래시 메모리를 포함하는 낸드 플래시 메모리 기반 저장장치이거나 하나 이상의 노어 플래시 메모리(NOR flash memory)를 포함하는 노어 플래시 메모리 기반 저장장치일 수 있다. 또한, 플래시 메모리 기반 저장장치는 솔리드 스테이트 드라이브(solid-state drive) 또는 하이브리드 드라이브(hybrid drive) 등과 같이 플래시 메모리를 포함하는 저장장치가 될 수 있으나, 이에 한정된 것은 아니다.
또한, 플래시 메모리 기반 저장장치(300)는 호스트 장치(330) 내에 포함된 내장형 저장장치일 수 있다. 또는, 플래시 메모리 기반 저장장치(300)는 호스트 장치(330) 외부에서 호스트 장치(330)와 연결된 외장형 저장장치이거나, 호스트 장치(330)와 연결된 저장서버(storage server)에 포함된 것일 수 있다.
호스트 장치(330)는 서버, 컴퓨터 또는 모바일 장치일 수 있으나, 이에 한정된 것은 아니다. 즉, 호스트 장치(330)는 플래시 메모리 기반 저장장치(300)에 파일을 저장하고, 읽을 수 있는 모든 종류의 컴퓨팅 장치일 수 있다.
한편, 플래시 메모리 기반 저장장치(300)는 플래시 메모리(310) 및 컨트롤러(320)를 포함한다.
플래시 메모리(310)는 호스트 장치(330)의 요청에 따라 파일에 포함된 하나 이상의 데이터를 저장한다.
또한, 컨트롤러(320)는 파일 트림 프로그램이 저장될 수 있다. 또한, 컨트롤러(320)는 플래시 주소 변환 레이어를 저장할 수 있다. 이때, 파일 트림 프로그램 및 플래시 주소 변환 레이어는 컨트롤러(320)에 포함된 롬(ROM; read only memory)에 저장될 수 있으나, 이에 한정된 것은 아니다.
예를 들어, 파일 트림 프로그램은 모듈 형태로 구현되어 플래시 메모리 기반 저장장치(300)의 플래시 주소 변환 레이어 또는 별도의 플래시 메모리 기반 저장장치(300) 내에 저장된 파일 시스템에 추가될 수 있다. 또는 파일 트림 프로그램은 플래시 주소 변환 레이어 또는 별도의 파일 시스템을 통하여 실행될 수 있도록 구현될 수 있으나, 이에 한정된 것은 아니다.
컨트롤러(320)는 파일 트림 프로그램의 실행에 따라 호스트 장치(330)로부터 플래시 메모리(310)에 저장된 특정 파일에 대한 파일 트림 명령을 수신한다. 그리고 컨트롤러(320)는 수신된 파일 트림 명령에 대응하는 파일의 논리 주소를 추출한다. 컨트롤러(320)는 추출된 파일의 논리 주소에 대응하는 물리 페이지에 무효화 작업을 수행한다.
구체적으로 컨트롤러(320)는 호스트 장치(330)로부터 플래시 메모리 기반 저장장치(300)에 대응하는 파티션 정보 및 파일 시스템 정보를 수신할 수 있다. 이때, 플래시 메모리 기반 저장장치(300)에 대응하는 파티션 정보 및 파일 시스템 정보는 호스트 장치(330)의 파일 시스템으로부터 플래시 메모리 기반 저장장치(300)에 대응하여 생성된 것일 수 있다. 예를 들어, 호스트 장치(330)의 파일 시스템은 FAT(file allocation table), NTFS(new technology file system), EXT2(extended file system 2), EXT3(extended file system 3) 및 EXT4(extended file system 4) 등일 수 있으나, 이에 한정된 것은 아니다.
컨트롤러(320)는 호스트 장치(330)로부터 수신한 파티션 정보 및 파일 시스템 정보를 플래시 메모리(310)에 저장할 수 있다.
또한, 호스트 장치(330)는 플래시 메모리 기반 저장장치(300)에 저장된 파일에 대한 파일 트림 명령을 플래시 메모리 기반 저장장치(300)에 전달할 수 있다. 이때, 파일 트림 명령은 해당 파일이 저장된 파티션의 정보, 해당 파일에 대응하는 파일 시스템의 정보 및 파일에 대한 정보를 포함할 수 있다. 예를 들어, 파일에 대한 정보는 파일 시스템 내에 저장된 해당 파일의 아이노드(inode) 번호가 될 수 있다. 또한, 파일 시스템의 정보는 파일 시스템의 종류 및 파일 시스템의 버전 등을 포함할 수 있다.
컨트롤러(320)는 파일 트림 명령에 기초하여 해당 파일에 대응하는 논리 주소를 추출할 수 있다. 이때, 컨트롤러(320)는 기저장된 파티션의 정보 및 파일 시스템의 정보를 이용할 수 있다.
또한, 컨트롤러(320)는 추출된 논리 주소에 대응하는 물리 페이지(physical page)에 대한 무효화를 수행할 수 있다.
이하에서는 호스트 장치(330)의 파일 시스템이 EXT4인 경우를 예로 들어 상세히 설명하기로 한다.
도 4는 본 발명의 일 실시예에 따른 파일 트림 명령의 수행과정을 설명하기 위한 예시도이다.
컨트롤러(320)는 호스트 장치(330)로부터 파일의 정보 및 파일 시스템의 정보를 수신할 수 있다. 이때, 파일의 정보는 해당 파일의 아이노드 번호(400)를 포함할 수 있다. 또한, 파일 시스템의 정보는 파티션 정보, 파일 시스템의 종류 및 버전 등을 포함할 수 있다.
컨트롤러(320)는 호스트 장치(330)로부터 수신한 파티션 정보에 기초하여 호스트 장치(330)의 파일 시스템이 관리하는 논리 주소 공간을 검색할 수 있다. 또한, 컨트롤러(320)는 호스트 장치(330)로부터 수신한 파일 시스템의 정보에 기초하여 호스트 장치(330)에 대응하는 파일 시스템의 종류 및 버전을 추출할 수 있다.
그리고 컨트롤러(320)는 검색된 논리 주소 공간과 추출된 파일 시스템의 종류 및 버전을 이용하여 아이노드 테이블(415)에서 해당 파일 아이노드 번호(400)에 대응하는 인덱스 노드 및 익스텐트 정보를 추출할 수 있다. 그리고 컨트롤러(320)는 인덱스 노드 및 익스텐트를 이용하여 해당 파일이 저장된 공간의 논리 주소를 추출할 수 있다.
이때, 해당 파일에 포함된 복수의 데이터는 연속된 공간에 저장되거나, 연속되지 않은 공간에 파편화되어 저장될 수 있다. 그러므로 도 4를 참조하면, 컨트롤러(320)는 인덱스 노드 및 각 데이터가 저장된 공간에 대응하는 복수의 익스텐트 인덱스를 추출할 수 있다. 그리고 컨트롤러(320)는 추출된 익스텐트 인덱스에 대응하는 리프 노드에서 해당 파일이 저장된 복수의 공간(451, 452, 453, 454)에 대한 논리 주소를 추출할 수 있다.
컨트롤러(320)는 논리 주소가 추출되면 추출된 논리 주소에 대응하는 물리 페이지에 대한 무효화 작업을 수행할 수 있다. 예를 들어, 컨트롤러(320)는 플래시 주소 변환 레이어를 이용하여, 논리 주소에 대응하는 물리 페이지에 무효화를 수행할 수 있다.
한편, 컨트롤러(320)는 기저장된 파티션의 정보 및 파일 시스템 정보가 존재하지 않은 경우, 트림 테이블에 기초하여 해당 파일에 대응하는 논리 주소를 추출할 수 있다. 이때, 트림 테이블은 도 5를 참조하여 설명한다.
도 5는 본 발명의 일 실시예에 따른 트림 테이블의 예시도이다.
호스트 장치(330)는 파일에 포함된 복수의 데이터를 분석하여 하나 이상의 그룹을 생성할 수 있다. 예를 들어, 호스트 장치(330)는 해당 파일의 플래시 메모리 기반 저장장치(300)에서의 저장 상태 또는 저장 위치에 따라 하나 이상의 그룹을 생성할 수 있다.
구체적으로 호스트 장치(330)는 파일에 포함된 복수의 데이터가 플래시 메모리 기반 저장장치(300)에서 연속되어 저장된 경우 이를 하나의 그룹으로 추출할 수 있다.
예를 들어, 파일에 포함된 모든 데이터가 플래시 메모리 기반 저장장치(300)에서 연속되어 저장되는 경우, 호스트 장치(330)는 파일에 포함된 모든 데이터를 하나의 그룹으로 생성할 수 있다.
또는, 호스트 장치(330)는 데이터 중 다른 데이터와 연속되어 저장되는 일부 데이터를 같은 그룹으로 생성되도록 하여 하나 이상의 데이터를 포함하는 복수의 그룹을 생성할 수 있다. 그러므로 호스트 장치(330)가 생성하는 각 그룹은 플래시 메모리 기반 저장장치(300)에서 불연속적으로 저장된 것일 수 있다. 또한, 각 그룹에 포함된 데이터는 플래시 메모리 기반 저장장치(300)에서 연속적으로 저장된 것일 수 있다.
그리고 호스트 장치(330)는 각 그룹에 대응하는 논리 주소가 포함되도록 트림 테이블을 생성할 수 있다. 예를 들어, 트림 테이블은 각각의 그룹에 대응하는 논리 주소의 시작 주소 및 범위를 포함할 수 있다. 이때, 범위는 호스트 장치(330)의 파일 시스템의 정의에 따라 설정될 수 있다. 예를 들어, 범위는 호스트 장치(330)의 파일 시스템이 정의한 논리 주소의 최소 단위이거나, 'byte' 단위, 페이지 단위 또는 블록 단위일 수 있으나, 이에 한정된 것은 아니다.
예를 들어, 도 5를 참조하면 임의의 파일은 5개의 그룹으로 구분될 수 있다. 이때, 각 그룹의 크기는 연속되어 저장되는 데이터 크기에 따라 달라질 수 있다. 제 1 그룹은 시작 주소가 '32'이며, 범위가 '16'일 수 있다. 또한, 제 2 그룹은 시작 주소가 '1024'이며, 트림 범위가 '8'이며, 제 3 그룹 및 제 4 그룹은 시작 주소가 각각 '32768', '60011'이며, 트림 범위가 '1'일 수 있다. 제 5 그룹은 시작 주소가 '81920'이며, 트림 범위가 '240'일 수 있다.
그리고 호스트 장치(330)는 각 그룹에 대응하는 논리 주소에 기초하여 트림 테이블을 생성할 수 있다. 호스트 장치(330)는 트림 테이블이 포함되도록 파일 트림 명령을 생성하여 플래시 메모리 기반 저장장치(300)의 컨트롤러(320)에 전달할 수 있다.
컨트롤러(320)는 호스트 장치(330)로부터 트림 테이블이 포함된 파일 트림 명령을 수신하면, 수신된 파일 트림 명령으로부터 트림 테이블을 추출할 수 있다. 그리고 컨트롤러(320)는 트림 테이블에 저장된 각 그룹에 대한 논리 주소 및 범위에 기초하여 각 그룹에 대응하는 물리 페이지에 무효화를 수행할 수 있다.
한편, 본 발명의 다른 실시예에서 호스트 장치(330)는 데이터 관리 서버일 수 있다.
이때, 데이터 관리 서버는 관계 기반 데이터베이스, 오브젝트 기반의 데이터베이스 또는 키-밸류 스토어(key-value store)와 같은 데이터베이스(database) 서버가 수 있으나, 이에 한정된 것은 아니다. 그러므로 플래시 메모리 기반 저장장치(300)는 파일 뿐만 아니라, 오브젝트(object), 테이블(table) 또는 튜플(tuple) 등의 데이터를 저장할 수 있다. 그리고 호스트 장치(330)는 파일 외의 오브젝트, 테이블 또는 튜플 등의 데이터에 대한 트림 명령을 생성하여 플래시 메모리 기반 저장장치(300)로 전달할 수 있다.
예를 들어, 호스트 장치(330)가 오브젝트 기반의 데이터베이스인 경우 호스트 장치(330)는 오브젝트에 대응하는 트림 명령을 생성하고, 플래시 메모리 기반 저장장치(300)에 전달할 수 있다. 그리고 플래시 메모리 기반 저장장치(300)의 컨트롤러(320)는 트림 명령에 대응하는 오브젝트의 논리 주소를 추출하고, 추출된 오브젝트의 논리 주소에 대응하는 물리 페이지에 대한 무효화를 수행할 수 있다.
또한, 호스트 장치(330)가 관계 기반 데이터베이스인 경우 호스트 장치(330)는 테이블 또는 튜플에 대응하는 트림 명령을 생성하고, 플래시 메모리 기반 저장장치(300)에 전달할 수 있다. 그리고 플래시 메모리 기반 저장장치(300)의 컨트롤러(320)는 트림 명령에 대응하는 테이블 또는 튜플의 논리 주소를 추출하고, 추출된 테이블 또는 튜플의 논리 주소에 대응하는 물리 페이지에 대한 무효화를 수행할 수 있다.
다음은 도 6을 참조하여 본 발명의 일 실시예에 따른 플래시 메모리 기반 저장장치(300)에서의 파일 트림 방법을 설명한다.
도 6은 본 발명의 일 실시예에 따른 플래시 메모리 기반 저장장치(300)의 파일 트림 방법에 대한 순서도이다.
플래시 메모리 기반 저장장치(300)는 호스트 장치(330)로부터 파일 트림 명령을 수신할 수 있다(S600).
플래시 메모리 기반 저장장치(300)는 수신된 파일 트림 명령에 대응하는 파일의 논리 주소를 추출한다(S610). 파일 트림 명령에 대응하는 파일은 플래시 메모리(310)에 저장된 것이다. 또한, 파일의 정보는 파일 시스템에서의 파일에 대응하는 아이노드 번호이다.
그리고 플래시 메모리 기반 저장장치(300)는 추출된 파일의 논리 주소에 대응하는 물리 페이지에 대한 무효화를 수행한다(S620).
이때, 플래시 메모리 기반 저장장치(300)는 논리 주소를 추출하기 전에, 호스트 장치(330)로부터 수신한 플래시 메모리(310)에 대응하는 파티션 정보 및 호스트 장치(330)의 파일 시스템의 정보를 저장할 수 있다. 그리고 플래시 메모리 기반 저장장치(300)는 저장된 파티션 정보 및 파일 시스템의 정보에 기초하여 파일의 논리 주소를 추출할 수 있다.
또한, 플래시 메모리 기반 저장장치(300)는 트림 테이블을 포함하는 파일 트림 명령을 수신할 수 있다. 이때, 트림 테이블은 플래시 메모리(310) 상에서 파일에 포함한 복수의 데이터가 저장된 논리 주소 및 범위를 포함한다. 그러므로 플래시 메모리 기반 저장장치(300)는 트림 테이블에 포함된 논리 주소에 기초하여 파일의 논리 주소를 추출할 수 있다.
이때, 트림 테이블은 플래시 메모리 기반 저장장치(300)에 포함된 플래시 메모리(310)에 포함된 복수의 그룹 각각에 대응하는 논리 주소의 시작 주소 및 논리 주소의 범위가 포함되도록 생성될 수 있다. 또한, 그룹은 파일에 포함된 복수의 데이터 중 플래시 메모리(310)에 연속되어 저장되는 하나 이상의 데이터에 기초하여 추출된 것일 수 있다.
본 발명의 일 실시예에 따른 파일 트림을 이용한 플래시 메모리 기반 저장장치(300) 및 그 파일 트림 방법은 플래시 기반 저장장치(300)에 저장된 파일 단위의 트림 명령을 수행할 수 있다. 그러므로 파일 트림을 이용한 플래시 메모리 기반 저장장치(300) 및 그 파일 트림 방법은 트림 명령에 따른 오버헤드를 줄일 수 있다. 그리고 파일 트림을 이용한 플래시 메모리 기반 저장장치(300) 및 그 파일 트림 방법은 플래시 메모리 기반 저장장치(300)에 대한 하드웨어적인 설계변경 없이, 소프트웨어적으로 구현될 수 있다. 그러므로 파일 트림을 이용한 플래시 메모리 기반 저장장치(300) 및 그 파일 트림 방법은 종래의 플래시 메모리 기반 저장장치에 쉽게 적용할 수 있다.
본 발명의 일 실시예는 컴퓨터에 의해 실행되는 프로그램 모듈과 같은 컴퓨터에 의해 실행 가능한 명령어를 포함하는 기록 매체의 형태로도 구현될 수 있다. 컴퓨터 판독 가능 매체는 컴퓨터에 의해 액세스될 수 있는 임의의 가용 매체일 수 있고, 휘발성 및 비휘발성 매체, 분리형 및 비분리형 매체를 모두 포함한다. 또한, 컴퓨터 판독가능 매체는 컴퓨터 저장 매체를 포함할 수 있다. 컴퓨터 저장 매체는 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현된 휘발성 및 비휘발성, 분리형 및 비분리형 매체를 모두 포함한다.
본 발명의 방법 및 시스템은 특정 실시예와 관련하여 설명되었지만, 그것들의 구성 요소 또는 동작의 일부 또는 전부는 범용 하드웨어 아키텍쳐를 갖는 컴퓨터 시스템을 사용하여 구현될 수 있다.
전술한 본 발명의 설명은 예시를 위한 것이며, 본 발명이 속하는 기술분야의 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 예를 들어, 단일형으로 설명되어 있는 각 구성 요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성 요소들도 결합된 형태로 실시될 수 있다.
본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.
300: 플래시 메모리 기반 저장장치
310: 플래시 메모리
320: 컨트롤러
330: 호스트 장치

Claims (13)

  1. 파일 트림 기법을 이용한 플래시 메모리 기반 저장장치에 있어서,
    하나 이상의 파일을 저장하는 플래시 메모리 및
    파일 트림 프로그램을 실행하는 컨트롤러를 포함하되,
    상기 컨트롤러는 상기 프로그램의 실행에 따라 호스트 장치로부터 수신된 파일 트림 명령에 대응하는 파일의 논리 주소를 추출하고, 상기 추출된 파일의 논리 주소에 대응하는 물리 페이지에 대한 무효화를 수행하고,
    상기 파일은 상기 플래시 메모리에 저장된 것이며,
    상기 파일 트림 명령은 상기 호스트 장치의 파일 시스템에서의 상기 파일의 정보를 포함하고,
    상기 파일의 정보는 상기 파일 시스템에서의 상기 파일에 대응하는 아이노드 번호를 포함하고,
    상기 컨트롤러는 상기 파일 트림 명령을 수신하기 이전에, 상기 호스트 장치로부터 수신한 상기 플래시 메모리의 파티션 정보 및 상기 호스트 장치의 파일 시스템의 정보를 저장하고,
    상기 컨트롤러는 상기 파일 트림 명령을 수신하면, 상기 파티션 정보에 기초하여 상기 파일 시스템이 관리하는 상기 플래시 메모리 상의 논리 주소 공간을 추출하고, 상기 파일 시스템의 정보에 기초하여 상기 아이노드 번호에 대응하는 파일의 상기 논리 주소 공간상의 상기 논리 주소를 추출하는, 플래시 메모리 기반 저장장치.
  2. 삭제
  3. 제 1 항에 있어서,
    상기 파일 트림 명령은 상기 파일이 저장된 상기 플래시 메모리의 파티션에 대한 정보, 상기 호스트 장치에 대응하는 파일 시스템의 정보 및 상기 파일에 대한 정보를 포함하는, 플래시 메모리 기반 저장장치.
  4. 삭제
  5. 제 1 항에 있어서,
    상기 파일 트림 명령은 상기 파일에 대응하는 트림 테이블을 포함하고,
    상기 트림 테이블은 상기 플래시 메모리 상에서 상기 파일에 포함한 하나 이상의 데이터가 저장된 논리 주소 및 범위를 포함하되,
    상기 컨트롤러는 상기 트림 테이블에 포함된 논리 주소에 기초하여 상기 하나 이상의 데이터에 대응하는 물리 페이지를 무효화하는 것인, 플래시 메모리 기반 저장장치.
  6. 제 5 항에 있어서,
    상기 트림 테이블은 상기 플래시 메모리에 포함된 복수의 그룹 각각에 대응하는 논리 주소의 시작 주소 및 상기 논리 주소의 범위가 포함되도록 생성된 것이며,
    상기 그룹은 상기 파일에 포함된 복수의 데이터 중 상기 플래시 메모리에 연속되어 저장되는 하나 이상의 데이터에 기초하여 생성된 것인, 플래시 메모리 기반 저장장치.
  7. 제 1 항에 있어서,
    상기 호스트 장치는 데이터 관리 서버이고,
    상기 파일 트림 명령은 상기 플래시 메모리에 저장된 데이터에 대응하는 것이되,
    상기 컨트롤러는 상기 데이터 관리 서버로부터 수신된 파일 트림 명령에 대응하는 논리 주소를 추출하고, 상기 추출된 논리 주소에 대응하는 물리 페이지에 대한 무효화를 수행하는 것인, 플래시 메모리 기반 저장장치.
  8. 플래시 메모리 기반 저장장치에서의 파일 트림 방법에 있어서,
    호스트 장치로부터 수신된 파일 트림 명령에 대응하는 파일의 논리 주소를 추출하는 단계; 및
    상기 추출된 파일의 논리 주소에 대응하는 물리 페이지에 대한 무효화를 수행하는 단계를 포함하되,
    상기 파일 트림 명령에 대응하는 파일은 상기 플래시 메모리 기반 저장장치에 포함된 플래시 메모리에 저장된 것이며,
    상기 파일의 정보는 파일 시스템에서의 상기 파일에 대응하는 아이노드 번호를 포함하고,
    상기 논리 주소를 추출하는 단계 이전에, 상기 호스트 장치로부터 수신한 상기 플래시 메모리의 파티션 정보 및 상기 호스트 장치의 파일 시스템의 정보를 저장하는 단계를 포함하되,
    상기 논리 주소를 추출하는 단계는, 상기 파티션 정보에 기초하여 상기 파일 시스템이 관리하는 상기 플래시 메모리 상의 논리 주소 공간을 추출하고, 상기 파일 시스템의 정보에 기초하여 상기 아이노드 번호에 대응하는 파일의 상기 논리 주소 공간상의 상기 논리 주소를 추출하는 것인, 파일 트림 방법.
  9. 삭제
  10. 삭제
  11. 제 8 항에 있어서,
    상기 파일 트림 명령은 상기 파일에 대응하는 트림 테이블을 포함하고,
    상기 트림 테이블은 상기 플래시 메모리 상에서 상기 파일에 포함한 복수의 데이터가 저장된 논리 주소 및 범위를 포함하되,
    상기 파일의 논리 주소를 추출하는 단계는, 상기 트림 테이블에 포함된 논리 주소에 기초하여 상기 파일의 논리 주소를 추출하는 것인, 파일 트림 방법.
  12. 제 11 항에 있어서,
    상기 트림 테이블은 상기 플래시 메모리에 포함된 복수의 그룹 각각에 대응하는 논리 주소의 시작 주소 및 상기 논리 주소의 범위가 포함되도록 생성된 것이며,
    상기 그룹은 상기 파일에 포함된 복수의 데이터 중 상기 플래시 메모리에 연속되어 저장되는 하나 이상의 데이터에 기초하여 생성된 것인, 파일 트림 방법.
  13. 제 8 항, 제 11 항 및 제 12 항 중 어느 한 항에 기재된 방법을 컴퓨터 상에서 수행하기 위한 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체.
KR1020160132226A 2016-10-12 2016-10-12 파일 트림을 이용한 플래시 메모리 기반 저장장치 및 그 파일 트림 방법 KR101847859B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020160132226A KR101847859B1 (ko) 2016-10-12 2016-10-12 파일 트림을 이용한 플래시 메모리 기반 저장장치 및 그 파일 트림 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160132226A KR101847859B1 (ko) 2016-10-12 2016-10-12 파일 트림을 이용한 플래시 메모리 기반 저장장치 및 그 파일 트림 방법

Publications (1)

Publication Number Publication Date
KR101847859B1 true KR101847859B1 (ko) 2018-04-11

Family

ID=61975870

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160132226A KR101847859B1 (ko) 2016-10-12 2016-10-12 파일 트림을 이용한 플래시 메모리 기반 저장장치 및 그 파일 트림 방법

Country Status (1)

Country Link
KR (1) KR101847859B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112882650A (zh) * 2019-11-29 2021-06-01 慧荣科技股份有限公司 数据储存装置以及非挥发式存储器控制方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101465460B1 (ko) * 2013-11-25 2014-11-26 성균관대학교산학협력단 트림 방법 및 데이터 관리 장치

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101465460B1 (ko) * 2013-11-25 2014-11-26 성균관대학교산학협력단 트림 방법 및 데이터 관리 장치

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112882650A (zh) * 2019-11-29 2021-06-01 慧荣科技股份有限公司 数据储存装置以及非挥发式存储器控制方法

Similar Documents

Publication Publication Date Title
US9582511B2 (en) Maintaining versions of data in solid state memory
US10402091B1 (en) Managing data in log-structured storage systems
US9342256B2 (en) Epoch based storage management for a storage device
US9122582B2 (en) File system for maintaining data versions in solid state memory
US10725930B2 (en) Logical to physical memory address mapping tree
US20170139825A1 (en) Method of improving garbage collection efficiency of flash-oriented file systems using a journaling approach
US10445022B1 (en) Optimization of log-structured merge (LSM) tree-based databases using object solid state drive (SSD) devices
US20200218465A1 (en) Selective erasure of data in a ssd
US10552377B2 (en) Data discard method for journaling file system and memory management apparatus thereof
Lee et al. iLSM-SSD: An intelligent LSM-tree based key-value SSD for data analytics
EP3211547B1 (en) System and methods for providing fast cacheable access to a key-value device through a filesystem interface
US9122581B2 (en) Data versioning in solid state memory
US20170039142A1 (en) Persistent Memory Manager
US9229852B2 (en) Flash translation layer system for maintaining data versions in solid state memory
KR102545067B1 (ko) 로그 구조 파일 시스템의 메타 데이터 저장 방법, 시스템 및 컴퓨터 판독 가능한 기록 매체
KR101936364B1 (ko) 플래시 메모리를 이용한 메모리 관리 시스템 및 메모리 관리 방법
KR101847859B1 (ko) 파일 트림을 이용한 플래시 메모리 기반 저장장치 및 그 파일 트림 방법
WO2022262381A1 (zh) 一种数据压缩方法及装置
KR101379161B1 (ko) 저장장치에서 블룸필터를 적용한 역매핑 방법 및 시스템
US20220091772A1 (en) Memory system
Kim et al. Identifying Invalid Data within Operating System for Higher Flash Utilization
Wei et al. A Novel Storage Management in Embedded Environment

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant