KR101735065B1 - 비트맵 기반의 트림 코맨드를 이용하는 데이터 관리 시스템 및 방법 - Google Patents
비트맵 기반의 트림 코맨드를 이용하는 데이터 관리 시스템 및 방법 Download PDFInfo
- Publication number
- KR101735065B1 KR101735065B1 KR1020150176033A KR20150176033A KR101735065B1 KR 101735065 B1 KR101735065 B1 KR 101735065B1 KR 1020150176033 A KR1020150176033 A KR 1020150176033A KR 20150176033 A KR20150176033 A KR 20150176033A KR 101735065 B1 KR101735065 B1 KR 101735065B1
- Authority
- KR
- South Korea
- Prior art keywords
- data
- bitmap
- storage device
- trim command
- deletion
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
본 발명은 비트맵 기반의 트림 코맨드를 이용하는 데이터 관리 시스템에 관한 것으로, 복수 개의 비트를 그룹으로 지정하고, 복수 개의 그룹을 포함하며, 각각의 비트에 대한 논리 주소가 할당되어 있는 저장장치, 호스트 장치에 형성되고, 저장장치에서 논리 주소가 할당된 각각의 비트에 대응되는 데이터 비트맵을 복수 개의 그룹에 대해 각각 포함하며, 호스트 장치에서 발생하는 데이터 삭제 요청에 따라 데이터 비트맵의 반대 비트인 삭제 대상 데이터 비트맵 및 그룹 정보를 포함하는 트림 코맨드를 생성하는 파일 시스템, 그리고 저장장치에 형성되고, 트림 코맨드를 전달받아 삭제 대상 데이터 비트맵 및 그룹 정보를 이용하여 삭제 요청된 데이터를 삭제하는 플래시 변환 레이어를 포함하는 것을 특징으로 한다. 이로 인해, 저장장치의 데이터는 그룹으로 형성되고, 파일 시스템은 저장장치의 한 그룹 내에 포함되되 서로 떨어져 위치하는 데이터의 무효화를 하나의 트림 코맨드에 포함시키도록 트림 코맨드를 생성하므로 트림 코맨드의 생성 횟수를 효율적으로 감소시킬 수 있다.
Description
본 발명은 비트맵 기반의 트림 코맨드를 이용하는 데이터 관리 시스템 및 방법에 관한 것이다.
자기 디스크에 비해 읽기/쓰기 시간이 짧고 적은 전력을 소모하는 비휘발성 메모리 장치로서, 플래시 메모리를 저장 매체로 사용하고 내부에 제어기를 구비하는 SSD(Solid State Drive)가 있다.
이처럼 플래시 메모리 기반의 저장장치는 프로세서를 포함하는 컴퓨터 등의 호스트 장치는 저장장치에 데이터 저장요청 또는 삭제요청을 전달하여 저장장치의 데이터 읽기/쓰기를 수행한다.
그러나 이때, 호스트 장치에서 저장장치로 데이터 삭제요청이 전달되더라도, 저장장치의 물리적 데이터가 삭제되지 않고 무효 데이터를 저장하고 있으므로, 호스트 장치는 무효 데이터의 삭제를 요청하는 트림(TRIM) 코맨드(command)를 저장장치로 전송한다.
호스트 장치는 파일 시스템(file system)을 포함하여 무효 데이터의 삭제를 요청하는 트림 코맨드를 생성하고, 저장장치는 플래시 변환 계층(FTL;flash translation layer)를 포함하여 호스트 장치로부터 전달받은 논리 주소를 저장장치의 물리주소로 변환하여 저장장치를 관리한다.
이때, 호스트 장치에서 저장장치로 전달되는 종래의 트림 코맨드는 저장장치에 저장된 데이터 중 무효화하고자 하는 데이터의 시작위치(논리 블록 주소, LBA;logical block address)와 무효화고자 하는 데이터의 길이인 구역(섹터, sector) 크기를 포함한다.
그러나, 이러한 트림 코맨드를 통한 무효 데이터 삭제에 있어서, 서로 떨어져 있는 무효 데이터의 삭제를 요청하기 위해서 여러 개의 트림 코맨드를 생성하여 저장장치로 전송해야하는 한계가 있다.
본 발명이 이루고자 하는 기술적 과제는 호스트 장치에서 저장장치로 무효 데이터 삭제 요청을 위한 트림 코맨드를 생성함에 있어서, 하나의 트림 코맨드를 이용하여 서로 떨어진 무효 데이터를 삭제 요청함으로써 트림 코맨드 생성 횟수를 감소시키기 위한 것이다.
본 발명의 한 실시예에 따른 비트맵 기반의 트림 코맨드를 이용하는 데이터 관리 시스템은 플래시 메모리를 저장 매체로 사용하는 비휘발성 메모리 장치로서, 복수 개의 비트를 그룹으로 지정하고, 복수 개의 그룹을 포함하며, 각각의 상기 비트에 대한 논리 주소가 할당되어 있는 저장장치, 호스트 장치에 형성되고, 상기 저장장치에서 논리 주소가 할당된 각각의 상기 비트에 대응되는 데이터 비트맵을 상기 복수 개의 그룹에 대해 각각 포함하며, 상기 호스트 장치에서 발생하는 데이터 삭제 요청에 따라 상기 데이터 비트맵의 반대 비트인 삭제 대상 데이터 비트맵 및 그룹 정보를 포함하는 트림 코맨드를 생성하는 파일 시스템, 그리고 상기 저장장치에 형성되고, 상기 트림 코맨드를 전달받아 상기 삭제 대상 데이터 비트맵 및 상기 그룹 정보를 이용하여 삭제 요청된 데이터를 삭제하는 상기 플래시 변환 레이어를 포함하는 것을 특징으로 한다.
상기 데이터 비트맵은 해당 비트에 매칭되는 상기 저장장치의 데이터 블록이 사용 중인 경우 1의 값을 갖고, 해당 비트에 매칭되는 상기 저장장치의 데이터 블록이 사용중이 아닌 경우 0의 값을 갖는 것을 특징으로 한다.
상기 삭제 대상 데이터 비트맵은 상기 데이터 비트맵 정보 구조에 의해 관리되며, 상기 데이터 비트맵 정보 구조는 그룹 번호, 데이터를 저장하고 있지 않은 비트의 수, 이전 및 이후 포인터를 포함하는 것을 특징으로 한다.
한 예에서, 상기 트림 코맨드는 LBA 옵셋, 그리고 삭제 대상 데이터 비트맵과 상기 삭제 대상 데이터 비트맵의 시작 논리 주소를 포함하는 삭제 대상 비트맵 페이로드를 포함하는 것을 특징으로 한다.
상기 삭제 대상 데이터 비트맵은 삭제 대상 지역에 대한 정보를 포함하고, 삭제 요청 명령을 생성하여 하위 계층에 통보하는 것을 특징으로 한다.
상기 플래시 변환 레이어는 상기 삭제 요청 명령에 따라 삭제 대상 데이터의 논리 주소를 확인하고 해당 비트를 삭제하는 것을 특징으로 한다.
본 발명의 한 실시예에 따른 비트맵 기반의 트림 코맨드를 이용하는 데이터 관리 방법은 (a) 저장장치의 주소를 비트(bit) 단위로 그룹화하는 단계, (b) 저장장치의 주소의 그룹에 대한 데이터 비트맵을 형성하는 단계, (c) 호스트 장치에서 데이터 삭제 요청 발생 여부를 판단하는 단계, (d) 데이터 비트맵을 이용하여 삭제 대상 데이터 비트맵을 생성하는 단계, (e) 삭제 대상 데이터 비트맵을 이용하여 트림 코맨드를 생성하는 단계, (f) 플래시 변환 계층이 트림 코맨드를 전달받아 해당하는 그룹의 주소에 삭제 명령을 전달하는 단계, 그리고 (g) 삭제 명령에 따라 저장장치의 저장 데이터를 삭제하는 단계를 포함하는 것을 특징으로 한다.
상기 (a) 단계에서, 상기 저장장치의 주소는 복수 개의 비트 단위인 그룹으로 구분되되 복수 개의 그룹으로 그룹화되며, 상기 (b) 단계에서 상기 데이터 비트맵은 상기 복수 개의 그룹에 대해 각각 대응되어 형성되는 것을 특징으로 한다.
상기 (b) 단계에서, 상기 데이터 비트맵은 상기 저장장치의 논리 주소에 대응되어 형성되되, 상기 논리 주소의 데이터 포함 여부에 따라 1 또는 0 값을 포함하는 것을 특징으로 한다.
상기 (d) 단계에서, 상기 삭제 대상 데이터 비트맵은 상기 데이터 비트맵의 반대값을 갖도록 형성되는 것을 특징으로 한다.
이러한 특징에 따르면, 본원 발명의 한 실시예에 따른 비트맵 기반의 트림 코맨드를 이용하는 데이터 관리 시스템 및 방법에서, 저장장치의 데이터는 그룹으로 형성되고, 파일 시스템은 저장장치의 한 그룹 내에 포함되되 서로 떨어져 위치하는 데이터의 무효화를 하나의 트림 코맨드에 포함시키도록 트림 코맨드를 생성하므로 트림 코맨드의 생성 횟수를 효율적으로 감소시킬 수 있다.
도 1은 본 발명의 한 실시예에 따른 비트맵 기반의 트림 코맨드를 이용하는 데이터 관리 시스템의 개략적인 구조를 나타낸 블록도이다.
도 2는 본 발명의 한 실시예에 따른 비트맵 기반의 트림 코맨드를 이용하는 데이터 관리 시스템의 파일 시스템의 레이아웃을 개략적으로 나타낸 도면이다.
도 3은 본 발명의 한 실시예에 따른 비트맵 기반의 트림 코맨드를 이용하는 데이터 관리 시스템의 파일 시스템이 생성하는 트림 코맨드의 레이아웃을 나타낸 도면이다.
도 4는 본 발명의 한 실시예에 따른 비트맵 기반의 트림 코맨드를 이용하는 데이터 관리 시스템의 트림 코맨드가 호스트 장치에서 생성되어 저장장치에서 이용되는 구조를 나타낸 도면이다.
도 5는 본 발명의 한 실시예에 따른 비트맵 기반의 트림 코맨드를 이용하는 데이터 관리 방법의 흐름을 나타낸 순서도이다.
도 2는 본 발명의 한 실시예에 따른 비트맵 기반의 트림 코맨드를 이용하는 데이터 관리 시스템의 파일 시스템의 레이아웃을 개략적으로 나타낸 도면이다.
도 3은 본 발명의 한 실시예에 따른 비트맵 기반의 트림 코맨드를 이용하는 데이터 관리 시스템의 파일 시스템이 생성하는 트림 코맨드의 레이아웃을 나타낸 도면이다.
도 4는 본 발명의 한 실시예에 따른 비트맵 기반의 트림 코맨드를 이용하는 데이터 관리 시스템의 트림 코맨드가 호스트 장치에서 생성되어 저장장치에서 이용되는 구조를 나타낸 도면이다.
도 5는 본 발명의 한 실시예에 따른 비트맵 기반의 트림 코맨드를 이용하는 데이터 관리 방법의 흐름을 나타낸 순서도이다.
아래에서는 첨부한 도면을 참고로 하여 본 발명의 실시예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
그러면 첨부한 도면을 참고로 하여 본 발명의 한 실시예에 따른 비트맵 기반의 트림 코맨드를 이용하는 데이터 관리 시스템의 구조 및 방법에 대해 설명한다.
먼저, 도 1 내지 도 3을 참고로 하여 본 발명의 한 실시예에 따른 비트맵 기반의 트림 코맨드를 이용하는 데이터 관리 시스템을 설명하면, 도 1에 도시한 것처럼, 파일 시스템(110)을 포함하는 호스트 장치(100)와 플래시 변환 계층(FTL)(210)을 포함하는 저장장치(200)를 포함한다.
한 예에서, 호스트 장치(100)는 프로세서를 포함하는 컴퓨터 장치이고, 저장장치(200)는 플래시 메모리를 저장 매체로 사용하는 SSD, eMMC(embedded Multi-Media Controller) 등의 비휘발성 메모리 장치이다.
이때, 파일 시스템(110)은 호스트 장치(100)에 포함된 프로세서의 일부로서, 저장장치(200)에 저장된 데이터를 무효화 요청하는 트림 코맨드(300)를 생성하며, 호스트 장치(100)는 생성된 트림 코맨드(300)를 저장장치(200)로 전달한다.
한 예에서, 파일 시스템(110)은 저장장치(200)의 물리 주소에 대한 논리 주소를 미리 알고 있고, 알고 있는 저장장치(200)의 논리 주소를 그룹으로 구분한다.
파일 시스템(110)은 저장장치(200)의 논리 주소를 복수 개의 그룹으로 구분하여, 구분된 그룹이 포함하는 주소와 각 그룹에 번호를 부여하여 그룹 번호로서 저장하고 있다.
이러한 파일 시스템(110)은 호스트 장치(100)에서 삭제 요청된 데이터에 대해 데이터 무효화 요청을 트림 코맨드(300)로서 생성하여 저장장치(200)로 전달한다.
이때, 파일 시스템(110)이 트림 코맨드(300)를 생성하기 위한 파일 시스템(110)의 구조는 도 2에 도시한 레이아웃의 형태를 갖는데, 파일 시스템(110)의 레이아웃은 파일 시스템(110)이 저장장치(200)의 논리 주소를 구분한 각각의 그룹에 대해 설정되며, 도 2에 도시한 것처럼 슈퍼블록, 그룹 설명 부분, 예약부분, 데이터 비트맵, 아이노드 비트맵, 아이노드 테이블, 데이터 블록을 포함한다.
한 예에서, 파일 시스템(110)의 레이아웃(111)은 도 2에 도시한 것처럼 Ext4 파일 시스템의 구조로 형성되나, 다른 한 예에서, 파일 시스템(110)의 레이아웃(111)은 데이터 비트맵(111d)을 포함하는 범위 내에서 다른 구조(예로써, Ext3 등)로도 형성될 수 있다.
파일 시스템(110)의 구조에 있어서, 슈퍼블록(111a), 그룹 설명 부분(111b), 예약부분(111c), 데이터 비트맵(111d), 아이노드 테이블(111e), 데이터 블록(111f) 중 데이터 비트맵(111d)을 제외한 나머지 부분은 종래의 파일 시스템의 구조 상의 동일한 특성 및 역할을 수행하므로 설명하지 않도록 하고, 데이터 비트맵(111d)에 대해서만 자세하게 설명하도록 한다.
데이터 비트맵(111d)은 저장장치(200)의 논리주소를 비트 단위로 구분하여 저장장치(200)의 논리주소의 각 비트에 대한 주소를 매칭하여 저장하는 맵 구조를 갖는데, 이때, 데이터 비트맵(111d)은 매칭된 각 비트에 대한 저장장치(200)의 각 데이터 블록의 사용여부를 1 또는 0으로서 저장한다.
예로써, 1 또는 0으로 세팅되는 각 비트는, 해당 비트에 해당되는 데이터 블록이 사용중인 경우 1로 지정되고, 반면, 해당 비트에 해당하는 데이터 블록이 사용 중이 아닌, 즉, 비어있는 경우 0으로 지정된다.
이처럼, 데이터 비트맵(111d)이 저장장치(200)의 각 비트에 대응되어 형성되고, 저장장치(200)에서의 사용 여부를 비트로 표현하며, 이때, 데이터 비트맵(111d)의 반대 값을 갖는 삭제 대상 데이터 비트맵을 생성한다.
자세하게는, 데이터 비트맵(111d)은 데이터를 저장하고 있는 비트를 표현한 것이므로, 저장장치(200)의 데이터를 삭제하고자 할 때, 데이터를 저장하고 있는 부분에 대해서는 데이터 삭제 요청을 발생하기 위해 데이터 삭제 요청 비트인 비트 1을 지정하고, 반면, 데이터를 저장하고 있지 않은 부분에 대해서는 데이터 삭제 요청을 발생하지 않기 위해 데이터 삭제 요청을 수행하지 않는 비트인 비트 0을 지정한다.
즉, 파일 시스템(110)은 저장장치(200)의 비트에 대응되어 데이터 저장 여부를 비트로 표현하는 데이터 비트맵(111d)을 포함하되, 데이터 비트맵(111d)의 정 반대의 비트 값을 갖는 삭제 대상 데이터 비트맵을 생성한다.
이때, 생성되는 삭제 대상 데이터 비트맵은, 파일 시스템(110)이 저장장치(200)의 하나의 그룹에 대응하도록 데이터 비트맵(111d)을 형성하는 것과 마찬가지로, 저장장치(200)의 하나의 그룹에 대응하도록 형성된다.
예로써, 삭제 대상 데이터 비트맵은 하나의 그룹에 대응하도록 형성된 데이터 비트맵(111d)의 반대 값을 갖도록 형성된 비트맵이므로, 하나의 그룹에 대응하도록 형성되게 된다.
이에 따라, 저장장치(200)에서 삭제하고자 하는 삭제 대상 데이터의 크기가 4KB인 경우, 파일 시스템(110)의 데이터 비트맵(111d)은 32,768개의 비트를 포함하여 삭제 요청된 대상 4KB의 데이터를 32,768개의 각각의 비트로서 삭제할 지 또는 삭제하지 않을 지를 표현하게 되어, 하나의 그룹에 형성되었지만 서로 떨어진 비트 단위의 데이터에 대해서 삭제 여부를 지정할 수 있게 된다.
이러한 삭제 대상 데이터 비트맵의 정보는 삭제 대상 데이터 비트맵 정보 구조에 의해 관리되며, 삭제 대상 데이터 비트맵 정보 구조는 그룹 번호, 데이터를 저장하고 있지 않은 비트의 수, 이전 및 이후 포인터를 포함하여 삭제 대상 지역에 대한 정보를 포함한다.
이때, 데이터를 저장하고 있지 않은 비트의 개수는, 저장장치(200)의 비트 중 데이터를 저장하고 있지 않아 파일 시스템(110)이 저장장치(200)의 해당 그룹에 매칭하여 생성한 데이터 비트맵에서 0으로 지정된 비트의 개수를 의미한다.
그리고 이때, 삭제 대상 데이터 비트맵 정보 구조 중 이전 및 이후 포인터는 파일 시스템(110)이 현재 데이터 삭제 요청 또는 데이터 삭제 처리 중인 저장장치(200)의 특정 그룹의 번호를 나타낸다.
파일 시스템(110)은 삭제 대상 데이터 비트맵 정보를 이용하여 데이터 삭제 요청 코맨드, 즉, 트림 코맨드(300)를 생성하며, 생성되는 트림 코맨드(300)는 도 3에 도시한 것과 같은 구조를 갖는다.
도 3을 참고로 하여 파일 시스템(110)이 생성하는 트림 코맨드(300)의 구조를 설명하면, 트림 코맨드(300)는 LBA 옵셋(offset)(310)과 삭제 대상 비트맵 페이로드(payload)(320)를 포함한다.
이때, LBA 옵셋(310)은 삭제 대상 비트의 시작위치인 LBA 정보를 포함한다.
그리고, 삭제 대상 비트맵 페이로드(320)는 삭제 대상 데이터 비트맵 정보와 그의 시작 논리 주소를 포함하여, 저장장치(200)의 플래시 변환 계층(210)에 전달되었을 때 데이터 삭제에 사용된다.
이러한 레이아웃 형태를 갖는 트림 코맨드(300)는 저장장치(200)의 플래시 변환 계층(210)에서 이용되는데, 플래시 변환 계층(210)은 수신한 트림 코맨드(300)의 LBA 옵셋(310)과 삭제 대상 데이터 비트맵 정보를 이용하여 각각의 비트를 확인함으로써 삭제 대상 데이터가 위치한 삭제 대상 논리 주소를 확인한다.
이때, 삭제 대상 데이터 비트맵 정보는 삭제 대상 지역에 대한 정보를 포함하는데, 삭제 대상 데이터 비트맵 정보는 삭제 요청 명령을 생성하고 이를 하위 계층에 통보한다.
그리고 이때, 삭제 요청 명령이 통보됨에 따라, 삭제 대상 데이터 비트맵 정보는 삭제 요청 명령에 포함되어 호스트 장치(100)에서 저장장치(200)로 전달된다.
도 4를 참고로 하여 호스트 장치(100)의 파일 시스템(110)에서 생성된 트림 코맨드(300)가 저장장치(200)에 전달되어 삭제를 수행하는 과정을 좀더 자세히 설명하면, 호스트 장치(100)의 파일 시스템(110)에서 발생한 현재 삭제 대상 그룹을 가르키는 신호에 따라 삭제 대상 비트맵 정보가 선택된다.
이때, 삭제 대상 비트맵 정보는 위에서 이미 설명한 것처럼 그룹 번호를 포함하므로 도 4에 도시한 것처럼 현재 삭제 대상 그룹을 가르키는 신호에 따라 특정 그룹에 상응하는 특정 삭제 대상 비트맵 정보가 선택되게 된다.
그리고 이때, 현재 삭제 대상 그룹을 가르키는 신호에 대한 특정 그룹이 도 4의 상부 도면에 도시한 것처럼 삭제 대상 비트맵 상태를 형성할 때, 파일 시스템(110)은 삭제 대상 비트맵 상태로부터 삭제 대상 비트맵 페이로드를 형성하고, 이에 따라 트림 코맨드(300)가 생성된다.
따라서, 트림 코맨드(300)의 삭제 대상 비트맵 페이로드는 삭제 대상 데이터 비트맵 정보와 그의 시작 논리 주소를 포함하고, 이때, 삭제 대상 비트맵 페이로드는 삭제 대상 그룹을 가르키는 신호에 따른 특정 그룹에 대해 형성되므로, 도 4와 같이 생성되는 트림 코맨드(300)는 특정 그룹에 대해 형성된 삭제 대상 비트맵 정보와 이의 시작 논리 주소를 포함하게 되며, 시작 논리 주소를 포함하는 LBA 옵셋이 트림 코맨드(300)에 포함된다.
생성된 트림 코맨드(300)가 저장장치(200)로 전달되면, 저장장치(300)의 FTL은 트림 코맨드(300)의 LBA 옵셋 및 삭제 대상 비트맵 페이로드에 따라 삭제 대상 그룹에 대한 삭제 대상 비트맵 정보를 읽어들여, 삭제 대상 비트를 메모리에 무효 비트로 매핑시킨다.
좀더 자세하게는, 도 4의 하부 도면에 도시한 것처럼, 저장장치(200)는 삭제 대상 비트맵 페이로드에서 읽어들인 논리 주소에 해당하는 물리주소를 삭제 대상 비트맵 정보와 한 비트씩 비교하여, 삭제요청된 비트를 oxFFFFFFFF를 마킹하여 무효 비트로 설정한다.이처럼, 저장장치(200)의 플래시 변환 계층(210)에서 트림 코맨드(300)를 이용함에 있어서, 삭제 대상 데이터 비트맵 정보를 이용하여 삭제 대상 데이터의 논리 주소를 확인하고 삭제 요청 명령을 생성하여 이를 저장장치(200)로 전달하는 구조를 갖는다.
저장장치(200)는 플래시 변환 계층(210)으로부터 삭제 요청 명령을 전달받아, 삭제 요청 명령에 포함된 해당 주소의 삭제를 수행한다.
본 발명의 한 실시예에 따른 비트맵 기반의 트림 코맨드를 이용하는 데이터 관리 시스템이 이러한 구조를 가짐에 따라, 비휘발성 메모리 장치인 저장장치(200)의 데이터 삭제에 있어서, 저장장치(200)에서 서로 떨어져 저장된 데이터를 하나의 트림 코맨드(300)를 이용하여 삭제함으로써, 트림 코맨드(300) 생성에 발생하는 부하를 줄일 수 있는 효과가 있다.
또한, 저장장치(200)의 저장공간을 복수 개의 비트로 형성된 그룹으로 나누어, 저장장치(200)에 저장된 삭제에 소모되는 시간을 절약할 수 있는 효과가 있다.
다음으로, 도 1 내지 도 3을 참고로 하여 설명한 구조를 갖는 본 발명의 한 실시예에 따른 비트맵 기반의 트림 코맨드를 이용하는 데이터 관리 시스템을 통한 비트맵 기반의 트림 코맨드를 이용하는 데이터 관리 방법을 도 5의 순서도를 참고로 하여 설명하도록 한다.
먼저, 본 발명의 한 실시예에 따른 비트맵 기반의 트림 코맨드를 이용하는 데이터 방법은 도 5에 도시한 것처럼 저장장치의 주소를 비트(bit) 단위로 그룹화하는 단계(S100), 저장장치의 주소의 그룹에 대한 데이터 비트맵을 형성하는 단계(S200), 호스트 장치에서 데이터 삭제 요청 발생 여부를 판단하는 단계(Q100), 데이터 비트맵을 이용하여 삭제 대상 데이터 비트맵을 생성하는 단계(S300), 삭제 대상 데이터 비트맵을 이용하여 트림 코맨드를 생성하는 단계(S400), 플래시 변환 계층이 트림 코맨드를 전달받아 해당하는 그룹의 주소에 삭제 명령을 전달하는 단계(S500), 그리고 삭제 명령에 따라 저장장치의 저장 데이터를 삭제하는 단계(S600)를 포함한다.
도 1 내지 도 3을 참고로 하여 각 단계를 설명하면, 저장장치의 주소를 비트(bit) 단위로 그룹화하는 단계(S100)는 저장장치(200)의 주소를 복수 개의 그룹으로 구분하고 각각의 그룹은 복수 개의 비트를 포함하도록 구분된다.
이때, 호스트 장치(100)는 저장장치(200)에서 복수 개의 그룹으로 구분되는 것을 알고 있고, 각각의 그룹이 시작되는 주소 및 마지막 주소를 알고 있으며, 저장장치(200)의 각 그룹을 형성하는 주소들의 데이터 저장 여부를 나타내는 데이터 비트맵을 형성한다(S200).
그리고 이때, 호스트 장치(100)에서 저장장치(200)에 저장된 데이터의 삭제 요청이 발생 하였는지를 판단(Q100)하여, 호스트 장치(100)에서 저장장치(200)에 저장된 데이터의 삭제 요청, 즉, 저장장치(200)에 저장된 무효 데이터의 삭제요청이 발생한 경우, 파일 시스템(110)은 데이터 비트맵을 이용하여 삭제 대상 데이터 비트맵을 생성한다(S300).
파일 시스템(110)은 데이터 비트맵이 포함하는 각 비트를 반대로 형성하여 데이터 비트맵과 정 반대의 값을 갖는 삭제 대상 데이터 비트맵을 생성한다.
그러나, 위 단계(Q100)에서, 호스트 장치(100)에서 저장장치(200)에 저장된 데이터의 삭제 요청이 발생하지 않은 경우, 별도의 과정을 수행하지 않는다.
그리고, 파일 시스템(110)은 삭제 대상 데이터 비트맵을 이용하여 트림 코맨드(300)를 생성한다(S400).
그런 다음, 플래시 변환 계층(210)이 트림 코맨드(300)를 전달받아 저장장치트림 코맨드(300)에 포함된 삭제 대상 데이터 비트맵 정보를 이용하여 삭제 대상 논리 주소를 확인하고, 저장장치(200)의 해당 논리 주소에 그룹의 주소에 삭제 명령을 전달한다(S500).
이때, 삭제 명령은 삭제 대상 데이터 비트맵 정보에 포함된 것으로, 플래시 변환 레이어(210)가 트림 코맨드(300)를 전달받을 때 생성된다.
마지막으로, 저장장치(200)는 삭제 명령에 따라 저장장치(200)의 해당 주소에 저장된 무효 데이터를 삭제한다(S600).
본원 발명의 한 실시예에 따른 비트맵 기반의 트림 코맨드를 이용하는 데이터 관리 방법이 이러한 단계로부터 수행됨에 따라, 호스트 장치(100)의 요청에 따라 저장장치(200)의 무효 데이터를 삭제함에 있어서, 저장장치(200)의 주소를 그룹화하고 이를 호스트 장치(100)에서 이용하여 데이터 삭제 요청을 수행하므로, 효율적으로 데이터 삭제를 수행할 수 있는 효과가 있다.
또한, 저장장치(200)에서 서로 떨어진 공간에 저장된 데이터를 삭제 요청함에 있어서, 데이터 비트맵 및 이를 이용한 삭제 데이터 비트맵을 이용하여 용이하게 데이터를 삭제할 수 있어, 하나의 트림 코맨드(300)를 이용하여 데이터 삭제를 용이하게 수행함으로써 트림 코맨드(300) 생성 부하를 줄일 수 있는 효과가 있다.
이상에서 본 발명의 실시예에 대하여 상세하게 설명하였지만 본 발명의 권리범위는 이에 한정되는 것은 아니고 다음의 청구범위에서 정의하고 있는 본 발명의 기본 개념을 이용한 당업자의 여러 변형 및 개량 형태 또한 본 발명의 권리범위에 속하는 것이다.
100 : 호스트 장치 110 : 파일 시스템
200 : 저장장치 210 : 플래시 변환 레이어
300 : 트림 코맨드
200 : 저장장치 210 : 플래시 변환 레이어
300 : 트림 코맨드
Claims (10)
- 플래시 메모리를 저장 매체로 사용하는 비휘발성 메모리 장치로서, 복수 개의 비트를 그룹으로 지정하고, 복수 개의 그룹을 포함하며, 각각의 상기 비트에 대한 논리 주소가 할당되어 있는 저장장치,
호스트 장치에 형성되고, 상기 저장장치에서 논리 주소가 할당된 각각의 상기 비트에 대응되는 데이터 비트맵을 상기 복수 개의 그룹에 대해 각각 포함하며, 상기 호스트 장치에서 발생하는 데이터 삭제 요청에 따라 상기 데이터 비트맵의 반대 비트인 삭제 대상 데이터 비트맵 및 그룹 정보를 포함하는 트림 코맨드를 생성하는 파일 시스템, 그리고
상기 저장장치에 형성되고, 상기 트림 코맨드를 전달받아 상기 삭제 대상 데이터 비트맵 및 상기 그룹 정보를 이용하여 삭제 요청된 데이터를 삭제하는 플래시 변환 레이어
를 포함하고, 상기 데이터 비트맵은 해당 비트에 매칭되는 상기 저장장치의 데이터 블록이 사용 중인 경우 1의 값을 갖고, 해당 비트에 매칭되는 상기 저장장치의 데이터 블록이 사용중이 아닌 경우 0의 값을 가지며, 상기 삭제 대상 데이터 비트맵은 데이터 비트맵 정보 구조에 의해 관리되고, 상기 데이터 비트맵 정보 구조는 그룹 번호, 데이터를 저장하고 있지 않은 비트의 수, 이전 및 이후 포인터를 포함하는 것을 특징으로 하는 비트맵 기반의 트림 코맨드를 이용하는 데이터 관리 시스템. - 삭제
- 삭제
- 제1항에 있어서,
상기 트림 코맨드는 LBA 옵셋, 그리고
삭제 대상 데이터 비트맵과 상기 삭제 대상 데이터 비트맵의 시작 논리 주소를 포함하는 삭제 대상 비트맵 페이로드
를 포함하는 것을 특징으로 하는 비트맵 기반의 트림 코맨드를 이용하는 데이터 관리 시스템. - 제1항에 있어서,
상기 삭제 대상 데이터 비트맵은 삭제 대상 지역에 대한 정보를 포함하고, 삭제 요청 명령을 생성하여 하위 계층에 통보하는 것을 특징으로 하는 비트맵 기반의 트림 코맨드를 이용하는 데이터 관리 시스템. - 제5항에 있어서,
상기 플래시 변환 레이어는 상기 삭제 요청 명령에 따라 삭제 대상 데이터의 논리 주소를 확인하고 해당 비트를 삭제하는 것을 특징으로 하는 비트맵 기반의 트림 코맨드를 이용하는 데이터 관리 시스템. - (a) 저장장치의 주소를 복수 개의 비트(bit) 단위의 그룹으로 그룹화하는 단계,
(b) 저장장치의 주소의 그룹에 대한 데이터 비트맵을 복수 개의 상기 저장장치의 논리 주소에 각각 대응되어 형성하되, 상기 논리 주소의 데이터 포함 여부에 따라 1 또는 0 값을 포함하도록 형성하는 단계,
(c) 호스트 장치에서 데이터 삭제 요청 발생 여부를 판단하는 단계,
(d) 상기 호스트 장치에 형성된 파일 시스템에서 데이터 비트맵을 이용하여 삭제 대상 데이터 비트맵을 상기 데이터 비트맵의 반대값을 갖도록 생성하는 단계,
(e) 상기 파일 시스템에서 삭제 대상 데이터 비트맵을 이용하여 트림 코맨드를 생성하는 단계,
(f) 플래시 변환 계층이 상기 파일 시스템에서 생성된 상기 트림 코맨드를 전달받아 해당하는 그룹의 주소에 삭제 명령을 전달하는 단계, 그리고
(g) 삭제 명령에 따라 저장장치의 저장 데이터를 삭제하는 단계
를 포함하는 것을 특징으로 하는 비트맵 기반의 트림 코맨드를 이용하는 데이터 관리 방법.
- 삭제
- 삭제
- 삭제
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020150176033A KR101735065B1 (ko) | 2015-12-10 | 2015-12-10 | 비트맵 기반의 트림 코맨드를 이용하는 데이터 관리 시스템 및 방법 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020150176033A KR101735065B1 (ko) | 2015-12-10 | 2015-12-10 | 비트맵 기반의 트림 코맨드를 이용하는 데이터 관리 시스템 및 방법 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR101735065B1 true KR101735065B1 (ko) | 2017-05-24 |
Family
ID=59051144
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020150176033A KR101735065B1 (ko) | 2015-12-10 | 2015-12-10 | 비트맵 기반의 트림 코맨드를 이용하는 데이터 관리 시스템 및 방법 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101735065B1 (ko) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11068206B2 (en) | 2019-01-07 | 2021-07-20 | SK Hynix Inc. | Data storage device for processing a sequential unmap entry by using trim instruction data and operating method thereof |
US11281590B2 (en) | 2019-08-05 | 2022-03-22 | SK Hynix Inc. | Controller, operating method thereof and storage device including the same |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101465460B1 (ko) | 2013-11-25 | 2014-11-26 | 성균관대학교산학협력단 | 트림 방법 및 데이터 관리 장치 |
-
2015
- 2015-12-10 KR KR1020150176033A patent/KR101735065B1/ko active IP Right Grant
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101465460B1 (ko) | 2013-11-25 | 2014-11-26 | 성균관대학교산학협력단 | 트림 방법 및 데이터 관리 장치 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11068206B2 (en) | 2019-01-07 | 2021-07-20 | SK Hynix Inc. | Data storage device for processing a sequential unmap entry by using trim instruction data and operating method thereof |
US11281590B2 (en) | 2019-08-05 | 2022-03-22 | SK Hynix Inc. | Controller, operating method thereof and storage device including the same |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11709597B2 (en) | Memory system and method for controlling nonvolatile memory | |
US10481837B2 (en) | Data storage device and method for operating data storage device with efficient trimming operations | |
JP6982468B2 (ja) | メモリシステムおよび制御方法 | |
US10761731B2 (en) | Array controller, solid state disk, and method for controlling solid state disk to write data | |
KR102042643B1 (ko) | 비휘발성 메모리(nvm)에서 다중 네임스페이스 관리 | |
US20200073586A1 (en) | Information processor and control method | |
EP3436953B1 (en) | Method and apparatus for processing sequential writes to a block group of physical blocks in a memory device | |
US8386746B2 (en) | Storage unit management methods and systems | |
US11120081B2 (en) | Key-value storage device and method of operating key-value storage device | |
US10255178B2 (en) | Storage device that maintains a plurality of layers of address mapping | |
JP2019020788A (ja) | メモリシステムおよび制御方法 | |
KR20100011698A (ko) | 데이터 머지를 수행하는 반도체 스토리지 시스템 및 그제어 방법 | |
JP2018073040A (ja) | メモリシステム | |
EP3748509A1 (en) | System garbage collection method and method for collecting garbage in solid state hard disk | |
CN108475230B (zh) | 一种存储***和***垃圾回收方法 | |
US10019198B2 (en) | Method and apparatus for processing sequential writes to portions of an addressable unit | |
US20230333779A1 (en) | Memory system with controller to write data to memory based on lifetime information in write command | |
WO2016106757A1 (zh) | 一种存储数据的管理方法、存储管理器及存储*** | |
KR101735065B1 (ko) | 비트맵 기반의 트림 코맨드를 이용하는 데이터 관리 시스템 및 방법 | |
US20190065395A1 (en) | Storage device and data arrangement method | |
JP5967307B2 (ja) | 情報処理装置、制御回路、制御プログラム、及び制御方法 | |
US11853200B2 (en) | Memory system and controller to invalidate data corresponding to a logical address | |
JP2005115562A (ja) | フラッシュrom制御装置 | |
US20200319999A1 (en) | Storage device, control method of storage device, and storage medium | |
WO2020039927A1 (ja) | 不揮発性記憶装置、ホスト装置、及びデータ記憶システム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
GRNT | Written decision to grant |