KR101379161B1 - 저장장치에서 블룸필터를 적용한 역매핑 방법 및 시스템 - Google Patents
저장장치에서 블룸필터를 적용한 역매핑 방법 및 시스템 Download PDFInfo
- Publication number
- KR101379161B1 KR101379161B1 KR1020120091408A KR20120091408A KR101379161B1 KR 101379161 B1 KR101379161 B1 KR 101379161B1 KR 1020120091408 A KR1020120091408 A KR 1020120091408A KR 20120091408 A KR20120091408 A KR 20120091408A KR 101379161 B1 KR101379161 B1 KR 101379161B1
- Authority
- KR
- South Korea
- Prior art keywords
- bloom filter
- bit vector
- physical address
- mapping table
- region
- Prior art date
Links
Images
Classifications
-
- 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/0253—Garbage collection, i.e. reclamation of unreferenced memory
-
- 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/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
-
- 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/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
-
- 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
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0674—Disk device
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
본 발명은 SSD(Solid State Drive or Solid State Disk) 등의 저장장치에서 효과적인 쓰레기 수집(Garbage Collection)을 위한 역매핑 방법 및 그 시스템에 관한 것이다.
매핑 테이블을 일정 지역 단위로 나누어 각 지역별로 블룸필터를 할당하는 단계; 매핑 테이블에 물리 주소가 할당될 때마다, 비트 벡터(Bit Vector) 내에 물리 주소가 해당하는 위치를 찾아 설정하는 단계; 쓰레기(Garbage) 수집 과정에서 유효한 페이지의 위치가 변경될 때, 페이지의 물리 주소를 이용하여 각 지역의 블룸필터를 대상으로 비트 벡터가 있는지를 확인하는 단계; 및 비트 벡터의 존재가 확인되는 경우에만 해당 지역을 검색하는 단계를 포함하는 블룸필터를 적용한 역매핑 방법이 제공될 수 있다.
매핑 테이블을 일정 지역 단위로 나누어 각 지역별로 블룸필터를 할당하는 단계; 매핑 테이블에 물리 주소가 할당될 때마다, 비트 벡터(Bit Vector) 내에 물리 주소가 해당하는 위치를 찾아 설정하는 단계; 쓰레기(Garbage) 수집 과정에서 유효한 페이지의 위치가 변경될 때, 페이지의 물리 주소를 이용하여 각 지역의 블룸필터를 대상으로 비트 벡터가 있는지를 확인하는 단계; 및 비트 벡터의 존재가 확인되는 경우에만 해당 지역을 검색하는 단계를 포함하는 블룸필터를 적용한 역매핑 방법이 제공될 수 있다.
Description
본 발명은 SSD(Solid State Drive or Solid State Disk) 등의 저장장치에서 효과적인 쓰레기 수집(Garbage Collection)을 위한 역매핑 방법 및 그 시스템에 관한 것이다.
삭제
본 발명의 배경이 되는 기술은 아래의 특허를 참조할 수 있다.
(1) 한국공개특허 제2011-0070656호의 “플래시 메모리의 데이터 처리 방법 및 장치”
(2) 한국공개특허 제2012-0011634호의 “플래시 메모리장치”
플래시 메모리는 블록과 페이지 단위로 이루어져 있다. 하나의 블록은 다수의 페이지로 이루어져 있으며 읽고 쓰는 단위는 페이지, 삭제 단위는 블록 단위이며 업데이트(덮어쓰기)가 지원되지 않는다. 따라서, 업데이트가 일어나면 새로운 페이지를 할당하고 쓰여지며 기존의 페이지는 무효화 처리된다. 그리고 매핑 테이블(Mapping Table)은 새로운 페이지를 가리키게 된다. 이와 같은 과정이 반복되면 블록 내에 무효한 페이지가 증가하게 되고 공간 확보를 위해 삭제 과정이 필요하게 되는데 이러한 과정이 쓰레기 수집 과정이다.
삭제를 위해 블록 내에 유효한 페이지를 새로운 곳으로 옮기게 되고 매핑 테이블을 업데이트한다. 매핑 테이블은 논리 주소와 물리 주소로 구성되어 있는데 논리 주소를 인덱스로 사용하는 배열 구조를 사용한다. 쓰기 요청이 발생하면 요청된 논리 주소를 이용하여 매핑 테이블 내 물리 주소를 바로 검색할 수 있다. 반면에, 쓰레기 수집 과정에서는 블록 내 페이지를 옮기는 과정에 논리 주소는 알 수 없기 때문에 물리 주소를 이용하여 매핑 테이블을 검색해야 한다.
(1) 한국공개특허 제2011-0070656호의 “플래시 메모리의 데이터 처리 방법 및 장치”
(2) 한국공개특허 제2012-0011634호의 “플래시 메모리장치”
플래시 메모리는 블록과 페이지 단위로 이루어져 있다. 하나의 블록은 다수의 페이지로 이루어져 있으며 읽고 쓰는 단위는 페이지, 삭제 단위는 블록 단위이며 업데이트(덮어쓰기)가 지원되지 않는다. 따라서, 업데이트가 일어나면 새로운 페이지를 할당하고 쓰여지며 기존의 페이지는 무효화 처리된다. 그리고 매핑 테이블(Mapping Table)은 새로운 페이지를 가리키게 된다. 이와 같은 과정이 반복되면 블록 내에 무효한 페이지가 증가하게 되고 공간 확보를 위해 삭제 과정이 필요하게 되는데 이러한 과정이 쓰레기 수집 과정이다.
삭제를 위해 블록 내에 유효한 페이지를 새로운 곳으로 옮기게 되고 매핑 테이블을 업데이트한다. 매핑 테이블은 논리 주소와 물리 주소로 구성되어 있는데 논리 주소를 인덱스로 사용하는 배열 구조를 사용한다. 쓰기 요청이 발생하면 요청된 논리 주소를 이용하여 매핑 테이블 내 물리 주소를 바로 검색할 수 있다. 반면에, 쓰레기 수집 과정에서는 블록 내 페이지를 옮기는 과정에 논리 주소는 알 수 없기 때문에 물리 주소를 이용하여 매핑 테이블을 검색해야 한다.
본 발명의 실시예는 기존 기술의 문제점을 해결하여, 매핑 테이블 검색 시간을 줄이고, 성능 부하가 생기는 문제를 해결하기 위해 블룸필터를 이용한 지역 탐색 방법을 도입하여 효율적으로 공간을 사용하고 성능을 향상시킬 수 있는 방법 및 시스템을 제공하고자 한다.
또한, 적은 메모리의 저장장치에도 적용할 수 있도록 블룸필터를 이용한 빠른 검색과 효율적 공간 사용 방법 및 시스템을 제공하고자 한다.
매핑 테이블을 일정 지역 단위로 나누어 각 지역별로 블룸필터를 할당하는 단계; 매핑 테이블에 물리 주소가 할당될 때마다, 비트 벡터(Bit Vector) 내에 물리 주소가 해당하는 위치를 찾아 설정하는 단계; 쓰레기(Garbage) 수집 과정에서 유효한 페이지의 위치가 변경될 때, 페이지의 물리 주소를 이용하여 각 지역의 블룸필터를 대상으로 비트 벡터가 있는지를 확인하는 단계; 및 비트 벡터의 존재가 확인되는 경우에만 해당 지역을 검색하는 단계를 포함하는 블룸필터를 적용한 역매핑 방법이 제공될 수 있다.
일측에 있어서, 블룸필터는 k 해시 함수와 주어진 비트 벡터의 길이, 두 개의 컴포넌트를 포함하며, 비트 벡터의 길이와 블룸필터에 입력되는 키(Key)의 개수에 맞는 k 해시 함수의 개수를 선택할 수 있다.
또 다른 측면에 있어서, 블룸필터의 모든 해시 함수는 블룸필터 값의 범위와 비트 벡터의 길이가 일치할 수 있다.
또 다른 측면에 있어서, 물리 주소가 해당하는 위치를 찾아 설정하는 단계는 각 물리 주소가 할당될 때마다 k 해시 함수를 이용한 값을 구해 비트 벡터 내에 물리 주소가 해당 위치를 찾아 설정할 수 있다.
또 다른 측면에 있어서, 비트 벡터의 해당 위치를 확인하는 단계는 해당 물리 주소를 이용하여 각 지역의 블룸필터를 대상으로 k 해시 함수를 이용한 값이 있는지를 확인할 수 있다.
매핑 테이블을 일정 지역 단위로 나누어 각 지역별로 블룸필터를 할당하는 필터 할당부; 매핑 테이블에 물리 주소가 할당될 때마다, 비트 벡터(Bit Vector) 내에 물리 주소가 해당하는 위치를 찾아 설정하는 위치 설정부; 쓰레기(Garbage) 수집 과정에서 유효한 페이지의 위치가 변경될 때, 페이지의 물리 주소를 이용하여 각 지역의 블룸필터를 대상으로 비트 벡터가 있는지를 확인하는 위치 확인부; 및 비트 벡터의 존재가 확인되는 경우에만 해당 지역을 검색하는 지역 검색부를 포함하는 블룸필터를 적용한 역매핑 시스템이 제공될 수 있다.
본 발명을 통해서 쓰레기 수집 과정에서 유효한 페이지를 다른 블록으로 이동하는 경우 블룸필터를 이용하여 해당하는 매핑 테이블의 물리주소를 불필요한 검색을 줄여 빠르게 찾을 수 있도록 한다.
또한, 블룸필터를 이용하여 빠른 시간 내에 매핑 테이블에서 이동된 페이지의 위치를 검색하는 방법 및 시스템을 제공할 수 있으며, 본 발명은 하드디스크, SSD와 같은 중복제거 기술을 사용하는 모든 저장장치에 적용될 수 있다.
도 1은 선형 검색을 이용한 매핑 테이블 검색을 설명하기 위한 도면이다.
도 2는 물리 주소를 인덱스로 사용하는 매핑 테이블의 사용을 설명하기 위한 도면이다.
도 3은 본 발명의 일실시예에 있어서, 블룸필터를 적용한 역매핑 방법의 단계를 도시한 순서도이다.
도 4는 본 발명의 일실시예에 있어서, 블룸필터를 이용한 지역 탐색 방법을 설명하기 위한 도면이다.
도 5는 본 발명의 일실시예에 있어서, 블룸필터를 적용한 역매핑 시스템의 구성을 도시한 블록도이다.
도 6은 본 발명의 일실시예에 있어서, SSD 내의 블룸필터를 설명하기 위한 도면이다.
도 2는 물리 주소를 인덱스로 사용하는 매핑 테이블의 사용을 설명하기 위한 도면이다.
도 3은 본 발명의 일실시예에 있어서, 블룸필터를 적용한 역매핑 방법의 단계를 도시한 순서도이다.
도 4는 본 발명의 일실시예에 있어서, 블룸필터를 이용한 지역 탐색 방법을 설명하기 위한 도면이다.
도 5는 본 발명의 일실시예에 있어서, 블룸필터를 적용한 역매핑 시스템의 구성을 도시한 블록도이다.
도 6은 본 발명의 일실시예에 있어서, SSD 내의 블룸필터를 설명하기 위한 도면이다.
이하, 저장장치에 블룸필터를 적용하여 효과적인 쓰레기 수집을 위한 역매핑 기법에 대해 첨부된 도면을 참조하여 자세히 설명한다.
본 발명은 저장장치인 SSD에서 효과적인 쓰레기 수집(Garbage Collection)을 위한 역매핑 기법을 제안한다. 쓰레기 수집은 플래시 메모리의 여러 블록 안에 유효한 페이지의 데이터를 모아 새로운 블록에 할당하고 기존의 블록을 삭제하는 과정을 말한다. 쓰레기 수집 과정에서 페이지의 위치가 새로운 위치로 변경되기 때문에 매핑 테이블을 수정해야 하는데 오랜 시간이 걸리게 된다. 본 발명에서는 빠른 시간 내에 매핑 테이블에서 이동된 페이지의 위치를 검색하는 방법을 블룸필터를 이용하여 고안하였다.
본 발명은 하드디스크, SSD, 가상 테이프 라이브러리(Virtual Tape Library; VTL), NAS(Network Attached Storage), 백업용 저장장치 등 중복제거 기술을 사용하는 모든 저장 장치에 적용될 수 있으며, 일반 PC, 임베디드 시스템, 서버, 데이터 센터, 백업 시스템 등의 분야에 적용될 수 있다.
도 1과 같이, 선형 검색을 수행하여 매핑 테이블을 검색할 수 있는데, 이와 같은 경우에는 매핑 테이블의 엔트리의 수가 많기 때문에 선형 검색 수행 시에는 성능 부하가 나타날 수 있다. 추가적인 저장 공간이 필요하지 않게 되지만 검색 시간이 길어 질 수 있기 때문에 전체적인 쓰레기 수집 시간이 증가할 수 있다.
따라서, 고안된 방법이 또 다른 매핑 테이블을 유지하는 것이다. 이 매핑 테이블은 물리 주소를 인덱스로 사용하여 빠른 검색이 가능하다. 즉, 도 2와 같은 물리 주소를 인덱스로 사용하는 매핑 테이블을 통해 빠른 검색이 가능하다.
도 2는 논리 주소를 인덱스로 사용하는 매핑 테이블 외에도 물리 주소를 인덱스로 사용하는 매핑 테이블(P-to-L Table; Physical to Logical Table)의 일례를 도시한 것이다. 두 매핑 테이블은 새로운 요청이 오거나 쓰레기 수집 과정에서 업데이트(덮어쓰기)가 발생할 경우, 동시에 수정될 필요가 있으며, 서로 참조하기 위해 동기화되어야 한다.
그러나 매핑 테이블이 하나 더 필요하게 되어, 메모리가 부족한 SSD에 적용되기에는 적합하지 않다. 즉, 짧은 시간 내에 검색할 수 있는 장점이 존재하지만, 추가되는 매핑 테이블만큼의 추가적인 저장 공간(메모리)이 필요하게 된다. 따라서, 이와 같은 문제점을 해결하기 위해 본 발명에서는 블룸필터를 이용하여 빠른 검색과 함께 효율적으로 공간을 사용할 수 있는 방법을 제안한다.
본 발명에서는 기존 기술의 문제점을 해결하기 위해 블룸필터를 이용한 지역 탐색 기법을 도입하여 효율적인 공간 사용과 성능을 향상시키는 방법을 제안한다.
도 3은 본 발명의 실시예에 있어서, 블룸필터를 이용한 역매핑 방법, 지역 탐색 기법의 단계를 도시한 도면이다. 실시예에 있어서, 도 4의 도면을 참조하여 설명할 수 있다. 블룸필터를 할당하는데 매핑 테이블을 일정 지역으로 나누어서 각 지역별로 블룸필터를 할당할 수 있다(S310). 도 4에 도시된 바와 같이, 매핑 테이블을 일정 지역 단위로 나누어서 블룸필터를 각각 적용할 수 있다.
블룸필터란, 1970년에 처음으로 Burton H. Bloom이 발표한 것으로서, 확률을 적용한 자료 구조를 가진다. 즉, 어떤 집합에 특정 원소가 있는지, 없는지를 판단하는 자료 구조인데, 여기서 중요한 것은 원소의 존재 유무에 대해서만 판단할 수 있고, 원소를 어떤 형태로 저장하고 있는지의 여부는 알 수 없다.
블룸필터는 두 개의 컴포넌트로 구성되어 있는데, 하나는 k 해시 함수와 또 다른 하나는 주어진 길이의 비트 벡터(Bit Vector)이다. 비트 벡터의 길이와 입력되는 키(Key)의 개수에 맞는 해시 함수의 개수를 선택할 수 있다. 여기서, 블룸필터의 모든 해시 함수에 대해서 해시 함수 값의 범위와 비트 벡터의 길이가 일치한다.
블룸필터로 키가 입력되면, k 해시 함수 중에 하나를 통해 값을 얻어내고, 이 함수 값을 비트 벡터의 해당 위치로 찾아 벡터를 설정한다. 만약 비트가 이미 설정되어 있다면 해시 함수를 적용하지 않을 수 있다.
본 발명의 실시예에 있어서, 매핑 테이블의 논리 주소에 해당하는 물리 주소가 매핑 테이블에 할당될 때마다, 블룸필터의 k 해시 함수를 사용하여 해당하는 값을 얻어내고, 이 값을 비트 벡터 내의 물리 주소가 해당하는 위치를 찾아 설정할 수 있다(S320). 각 지역별로 해당하는 블룸필터의 비트 벡터가 존재하게 되며, 이렇게 얻어진 비트 벡터는 메모리에 유지할 수 있다.
한편, 쓰레기 수집(Garbage Collection) 과정에서 유효한 페이지의 위치가 변경될 때, 즉 유효한 페이지가 다른 블록으로 옮겨질 때 매핑 테이블에서 해당 물리 주소의 검색을 가정하면, 페이지의 물리 주소를 이용하여 각 지역의 블룸필터를 대상으로 비트 벡터가 있는지 확인하도록 한다(S330). 즉, 먼저 물리 주소를 해당 k 해시 함수를 사용하여 함수 값을 얻어내어, 얻은 함수 값이 비트 벡터의 해당 위치에 있는지 확인할 수 있다.
만약, 함수 값이 비트 벡터의 해당 위치에 존재가 확인이 되는 것은 해당 지역에 물리 주소가 있는 확률이 높다는 것을 의미하기 때문에 해당 지역을 검색할 수 있다(S340). 그러나 반대로, 함수 값이 존재하지 않는다면 비트 벡터가 존재하지 않은 것을 의미하게 되며, 블룸필터는 해당 지역에 물리 주소가 없다는 것을 보장할 수 있다. 또한, 다른 지역의 비트 벡터의 해당 위치에 값이 존재하는지 검색하여 존재하는 경우에는 해당 지역을 검색할 수 있다.
본 발명의 실시를 통해서, 작은 크기의 저장 공간을 활용하여 메모리 검색을 효과적으로 수행하고 불필요한 검색을 줄일 수 있으며, 도 2에 도시된 물리 주소를 인덱스로 사용하는 매핑 테이블을 사용하는 경우와 비교했을 때, 전체적인 쓰레기 수집의 수행 시간에 변동이 없게 되므로 성능이 향상된 지역 탐색 기법을 제공한 것으로 볼 수 있다.
또한, 도 5는 본 발명의 일실시예에 있어서, 블룸필터를 적용한 역매핑 시스템(500)에 관한 것으로, 시스템(500)은 필터 할당부(510)와 위치 설정부(520), 위치 확인부(530), 그리고 지역 검색부(540)를 포함하여 구성될 수 있으며, 도 3을 통해 설명한 역매핑 방법의 각 단계를 수행할 수 있다. 시스템(500)의 구성은 경우에 따라 둘 이상의 구성이 하나로 결합될 수 있고, 추가적인 구성들이 더 포함되거나, 하나 이상의 요소가 생략될 수 있다.
일례에 있어서, 필터 할당부(510)는 매핑 테이블을 일정 지역 단위로 나누어 지역별로 블룸필터를 할당할 수 있다. 할당되는 블룸필터는 k 해시 함수와 주어진 길이의 비트 벡터, 이렇게 두 개의 컴포넌트로 구성되어 있다. 블룸필터의 모든 해시 함수는 함수 값의 범위와 비트 벡터의 길이와 맞아떨어진다. 블룸필터로 키가 입력되면 k 해시 함수 중에 하나를 통해 함수 값을 얻을 수 있고, 이를 비트 벡터의 해당 위치를 찾아 이 벡터를 설정할 수 있다.
또한, 위치 설정부(520)는 매핑 테이블에 각 매핑 테이블의 논리 주소에 해당하는 물리 주소가 할당될 때마다 비트 벡터 내에 물리 주소가 해당하는 위치를 찾아 설정할 수 있다. 이때, k 해시 함수를 이용하며, k 해시 함수를 이용해 함수 값을 구하여 비트 벡터 내에 해당 위치를 찾아 설정할 수 있다. 각 지역별로 해당하는 블룸필터의 비트 벡터가 존재하고, 이렇게 얻어진 비트 벡터는 메모리에 저장하여 유지할 수 있다.
위치 확인부(530)는 쓰레기 수집 과정에서 유효한 페이지를 다른 블록으로 옮기기 위해, 즉 유효한 페이지가 업데이트되어 다른 블록으로 이동하는 경우에 있어서, 매핑 테이블에서 해당 물리 주소의 검색을 가정하면, 먼저 물리 주소를 해당 k 해시 함수를 사용하여 해당하는 값을 얻을 수 있다. 그리고, 이 값이 비트 벡터의 해당 위치에 있는지 확인할 수 있다. 위치 확인부(530)는 비트 벡터가 해당 위치에 존재하는지를 확인함으로써 해당 위치에 물리 주소가 존재하는지 여부를 확인할 수 있다.
만약, 비트 벡터의 해당 위치에 함수 값이 존재한다면, 해당 지역에 물리 주소가 있을 확률이 높은 것을 의미하게 되며, 반대로 존재하지 않는다면 블룸필터는 이 지역에 물리 주소가 없다는 것을 보장할 수 있다. 나아가, 다른 지역의 비트 벡터의 해당 위치에 값이 존재하는지 계속 검색할 수 있다.
지역 검색부(540)는 위치 확인부(530)를 통해 각 지역의 블룸필터를 대상으로 함수 값이 있는지 확인이 된 경우에, 해당 지역을 검색할 수 있으며, 이렇게 불필요한 검색을 줄일 수 있게 함으로써 시스템(500) 성능을 전체적으로 향상시킬 수 있다.
도 6은 발명의 일실시예에 있어서, 본 발명의 적용이 가능한 SSD와 SSD 내부에 블룸필터를 포함하는 것을 도시한 도면이다. SSD는 내부에 컨트롤러와 메모리를 포함하며, 메모리에 매핑 테이블이 존재한다. 매핑 테이블을 일정 지역으로 나누어 블룸필터를 할당할 수 있으며, 생성된 비트 벡터 값은 메모리에 저장시킬 수 있다. 또한, 블룸필터는 플래시 변환계층(Flash Translation Layer; FTL)에 포함될 수 있다.
이와 같이, 본 발명의 실시로 쓰레기 수집 과정에서 유효한 페이지를 다른 블록으로 이동하는 경우 블룸필터를 이용하여 해당하는 매핑 테이블의 물리주소를 불필요한 검색을 줄여 빠르게 찾을 수 있도록 한다.
앞서 설명한 기술적 내용들, 즉 블룸필터를 적용한 역매핑 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예들을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다.
컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 하드웨어 장치는 실시예들의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등한 것들에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.
500: 블룸필터 적용 역매핑 시스템
510: 필터 할당부
520: 위치 설정부
530: 위치 확인부
540: 지역 검색부
510: 필터 할당부
520: 위치 설정부
530: 위치 확인부
540: 지역 검색부
Claims (10)
- 매핑 테이블을 일정 지역 단위로 나누어 각 지역별로 블룸필터를 할당하는 단계;
상기 매핑 테이블에 물리 주소가 할당될 때마다, 비트 벡터(Bit Vector) 내에 상기 물리 주소가 해당하는 위치를 찾아 설정하는 단계;
쓰레기(Garbage) 수집 과정에서 유효한 페이지의 위치가 변경될 때, 상기 페이지의 물리 주소를 이용하여 상기 각 지역의 블룸필터를 대상으로 상기 비트 벡터가 있는지를 확인하는 단계; 및
상기 비트 벡터의 존재가 확인되는 경우에만 해당 지역을 검색하는 단계
를 포함하는 블룸필터를 적용한 역매핑 방법. - 제1항에 있어서,
상기 블룸필터는 k 해시 함수와 주어진 상기 비트 벡터의 길이, 두 개의 컴포넌트를 포함하며,
비트 벡터의 길이와 상기 블룸필터에 입력되는 키(Key)의 개수에 맞는 k 해시 함수의 개수를 선택하는 것
을 특징으로 하는 블룸필터를 적용한 역매핑 방법. - 제2항에 있어서,
상기 블룸필터의 모든 해시 함수는 상기 블룸필터 값의 범위와 비트 벡터의 길이가 일치하는 것
을 특징으로 하는 블룸필터를 적용한 역매핑 방법. - 제1항에 있어서,
상기 물리 주소가 해당하는 위치를 찾아 설정하는 단계는
각 물리 주소가 할당될 때마다 k 해시 함수를 이용한 값을 구해 비트 벡터 내에 상기 물리 주소가 해당 위치를 찾아 설정하는 것
을 특징으로 하는 블룸필터를 적용한 역매핑 방법. - 제4항에 있어서,
상기 비트 벡터의 해당 위치를 확인하는 단계는
해당 물리 주소를 이용하여 각 지역의 블룸필터를 대상으로 상기 k 해시 함수를 이용한 값이 있는지를 확인하는 것
을 특징으로 하는 블룸필터를 적용한 역매핑 방법. - 매핑 테이블을 일정 지역 단위로 나누어 각 지역별로 블룸필터를 할당하는 필터 할당부;
상기 매핑 테이블에 물리 주소가 할당될 때마다, 비트 벡터(Bit Vector) 내에 상기 물리 주소가 해당하는 위치를 찾아 설정하는 위치 설정부;
쓰레기(Garbage) 수집 과정에서 유효한 페이지의 위치가 변경될 때, 상기 페이지의 물리 주소를 이용하여 상기 각 지역의 블룸필터를 대상으로 상기 비트 벡터가 있는지를 확인하는 위치 확인부; 및
상기 비트 벡터의 존재가 확인되는 경우에만 해당 지역을 검색하는 지역 검색부
를 포함하는 블룸필터를 적용한 역매핑 시스템. - 제6항에 있어서,
상기 블룸필터는 k 해시 함수와 주어진 상기 비트 벡터의 길이, 두 개의 컴포넌트를 포함하며,
비트 벡터의 길이와 상기 블룸필터에 입력되는 키(Key)의 개수에 맞는 k 해시 함수의 개수를 선택하는 것
을 특징으로 하는 블룸필터를 적용한 역매핑 시스템. - 제7항에 있어서,
상기 블룸필터의 모든 해시 함수는 상기 블룸필터 값의 범위와 비트 벡터의 길이가 일치하는 것
을 특징으로 하는 블룸필터를 적용한 역매핑 시스템. - 제6항에 있어서,
상기 위치 설정부는,
각 물리 주소가 할당될 때마다 k 해시 함수를 이용한 값을 구해 비트 벡터 내에 상기 물리 주소가 해당 위치를 찾아 설정하는 것
을 특징으로 하는 블룸필터를 적용한 역매핑 시스템. - 제9항에 있어서,
상기 위치 확인부는,
해당 물리 주소를 이용하여 각 지역의 블룸필터를 대상으로 상기 k 해시 함수를 이용한 값이 있는지를 확인하는 것
을 특징으로 하는 블룸필터를 적용한 역매핑 시스템.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020110145879 | 2011-12-29 | ||
KR20110145879 | 2011-12-29 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20130077758A KR20130077758A (ko) | 2013-07-09 |
KR101379161B1 true KR101379161B1 (ko) | 2014-03-27 |
Family
ID=48990943
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020120091408A KR101379161B1 (ko) | 2011-12-29 | 2012-08-21 | 저장장치에서 블룸필터를 적용한 역매핑 방법 및 시스템 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101379161B1 (ko) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20230102877A (ko) | 2021-12-30 | 2023-07-07 | 부산대학교 산학협력단 | 다수의 ssd로 구성된 논리적 볼륨의 효율적인 입출력 자원 분배를 위한 블록 재배치 가능한 ssd 장치 및 방법 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11306081A (ja) * | 1998-04-22 | 1999-11-05 | Toshiba Corp | キャッシュフラッシュ装置 |
US7424498B1 (en) | 2003-06-30 | 2008-09-09 | Data Domain, Inc. | Probabilistic summary data structure based encoding for garbage collection |
US20090183159A1 (en) | 2008-01-11 | 2009-07-16 | Michael Maged M | Managing concurrent transactions using bloom filters |
-
2012
- 2012-08-21 KR KR1020120091408A patent/KR101379161B1/ko not_active IP Right Cessation
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11306081A (ja) * | 1998-04-22 | 1999-11-05 | Toshiba Corp | キャッシュフラッシュ装置 |
US7424498B1 (en) | 2003-06-30 | 2008-09-09 | Data Domain, Inc. | Probabilistic summary data structure based encoding for garbage collection |
US20090183159A1 (en) | 2008-01-11 | 2009-07-16 | Michael Maged M | Managing concurrent transactions using bloom filters |
Also Published As
Publication number | Publication date |
---|---|
KR20130077758A (ko) | 2013-07-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101289931B1 (ko) | 다양한 블록 크기를 지원하는 주소 사상을 사용하여 플래시 메모리 내에 데이터를 저장하는 방법 및 장치 | |
US10013317B1 (en) | Restoring a volume in a storage system | |
US8886882B2 (en) | Method and apparatus of storage tier and cache management | |
US9626288B2 (en) | Address translation for a non-volatile memory storage device | |
CN105843551B (zh) | 高性能和大容量储存重复删除中的数据完整性和损耗电阻 | |
US9501421B1 (en) | Memory sharing and page deduplication using indirect lines | |
KR102275563B1 (ko) | 호스트-관리 비휘발성 메모리 | |
US20200218465A1 (en) | Selective erasure of data in a ssd | |
WO2015195936A1 (en) | Range-based data deduplication | |
JP2015515047A5 (ko) | ||
US10482061B1 (en) | Removing invalid data from a dataset in advance of copying the dataset | |
CN110807008A (zh) | 用于lba的原子交换和剪切的swat命令和api | |
JP6823734B2 (ja) | ソリッドステートディスクアクセス | |
CN107562367B (zh) | 基于软件化存储***读写数据的方法以及装置 | |
KR102545067B1 (ko) | 로그 구조 파일 시스템의 메타 데이터 저장 방법, 시스템 및 컴퓨터 판독 가능한 기록 매체 | |
US20170160940A1 (en) | Data processing method and apparatus of solid state disk | |
WO2015065312A1 (en) | Method and apparatus of data de-duplication for solid state memory | |
JP6089890B2 (ja) | ストレージ制御装置、ストレージ制御装置の制御方法およびストレージ制御装置の制御プログラム | |
JP2014199574A (ja) | ストレージ制御装置、ストレージ制御方法、およびストレージ制御プログラム | |
JP2007220107A (ja) | 不揮発性メモリのマッピング情報管理装置及び方法 | |
CN113253926A (zh) | 提升新型存储器的查询和存储性能的存储内索引构建方法 | |
US20150121033A1 (en) | Information processing apparatus and data transfer control method | |
US10365846B2 (en) | Storage controller, system and method using management information indicating data writing to logical blocks for deduplication and shortened logical volume deletion processing | |
CN106294189A (zh) | 内存碎片整理方法及装置 | |
KR101676175B1 (ko) | 전원 손실 이후 데이터 손실을 방지하기 위한 메모리 저장 장치 및 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20161227 Year of fee payment: 4 |
|
LAPS | Lapse due to unpaid annual fee |