KR20130077758A - Using bloom-filter of reverse mapping method and system for enhancing performance of garbage collection in storage systems - Google Patents

Using bloom-filter of reverse mapping method and system for enhancing performance of garbage collection in storage systems Download PDF

Info

Publication number
KR20130077758A
KR20130077758A KR1020120091408A KR20120091408A KR20130077758A KR 20130077758 A KR20130077758 A KR 20130077758A KR 1020120091408 A KR1020120091408 A KR 1020120091408A KR 20120091408 A KR20120091408 A KR 20120091408A KR 20130077758 A KR20130077758 A KR 20130077758A
Authority
KR
South Korea
Prior art keywords
bloom filter
bit vector
physical address
location
mapping table
Prior art date
Application number
KR1020120091408A
Other languages
Korean (ko)
Other versions
KR101379161B1 (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 한양대학교 산학협력단
Publication of KR20130077758A publication Critical patent/KR20130077758A/en
Application granted granted Critical
Publication of KR101379161B1 publication Critical patent/KR101379161B1/en

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/0253Garbage collection, i.e. reclamation of unreferenced 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/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • 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/10Address translation
    • 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/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0674Disk 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

PURPOSE: A reverse mapping method and system using Bloom-filters for enhancing performance of garbage collection in a storage device are provided to reduce unnecessary searching on the basis of Bloom -filters by moving valid pages to another block, thereby enabling quick search for a physical address of a corresponding mapping table. CONSTITUTION: A filter allocation unit (510) segments a mapping table by a fixed region unit, and allocates a Bloom -filter to each region. Whenever a physical address is allocated to the mapping table, a location setting unit (520) searches for a location corresponding to the physical address in a bit vector and sets the location in the mapping table. When a valid page is changed during garbage collection, a location checking unit (530) checks whether the bit vector exists in the Bloom-filter of each region using the physical address. If it is determined that the bit vector exists, a location search unit (540) searches for the corresponding region. [Reference numerals] (510) Filter allocation unit; (520) Location setting unit; (530) Location checking unit; (540) Location search unit

Description

저장장치에서 블룸필터를 적용한 역매핑 방법 및 시스템{USING BLOOM-FILTER OF REVERSE MAPPING METHOD AND SYSTEM FOR ENHANCING PERFORMANCE OF GARBAGE COLLECTION IN STORAGE SYSTEMS}USING BLOOM-FILTER OF REVERSE MAPPING METHOD AND SYSTEM FOR ENHANCING PERFORMANCE OF GARBAGE COLLECTION IN STORAGE SYSTEMS}

본 발명은 SSD(Solid State Drive or Solid State Disk) 등의 저장장치에서 효과적인 쓰레기 수집(Garbage Collection)을 위한 역매핑 방법 및 그 시스템에 관한 것이다.The present invention relates to a reverse mapping method and a system for effective garbage collection in a storage device such as a solid state drive or a solid state disk (SSD).

플래시 메모리는 블록과 페이지 단위로 이루어져 있다. 하나의 블록은 다수의 페이지로 이루어져 있으며 읽고 쓰는 단위는 페이지, 삭제 단위는 블록 단위이며 업데이트(덮어쓰기)가 지원되지 않는다. 따라서, 업데이트가 일어나면 새로운 페이지를 할당하고 쓰여지며 기존의 페이지는 무효화 처리된다. 그리고 매핑 테이블(Mapping Table)은 새로운 페이지를 가리키게 된다. 이와 같은 과정이 반복되면 블록 내에 무효한 페이지가 증가하게 되고 공간 확보를 위해 삭제 과정이 필요하게 되는데 이러한 과정이 쓰레기 수집 과정이다.Flash memory is organized in blocks and pages. One block is composed of many pages. The unit of reading and writing is the page, the unit of deletion is the unit of block, and updating (overwriting) is not supported. Thus, when an update occurs, a new page is allocated and written, and the existing page is invalidated. And the mapping table will point to the new page. If this process is repeated, invalid pages increase in the block and a deletion process is required to secure space, which is a garbage collection process.

삭제를 위해 블록 내에 유효한 페이지를 새로운 곳으로 옮기게 되고 매핑 테이블을 업데이트한다. 매핑 테이블은 논리 주소와 물리 주소로 구성되어 있는데 논리 주소를 인덱스로 사용하는 배열 구조를 사용한다. 쓰기 요청이 발생하면 요청된 논리 주소를 이용하여 매핑 테이블 내 물리 주소를 바로 검색할 수 있다. 반면에, 쓰레기 수집 과정에서는 블록 내 페이지를 옮기는 과정에 논리 주소는 알 수 없기 때문에 물리 주소를 이용하여 매핑 테이블을 검색해야 한다.For deletion, a valid page in the block is moved to a new location and the mapping table is updated. The mapping table consists of logical and physical addresses. It uses an array structure that uses logical addresses as indexes. When a write request occurs, the requested logical address can be used to directly search for a physical address in the mapping table. On the other hand, in the garbage collection process, since the logical address is not known in the process of moving pages in a block, the mapping table must be searched using the physical address.

본 발명의 실시예는 기존 기술의 문제점을 해결하여, 매핑 테이블 검색 시간을 줄이고, 성능 부하가 생기는 문제를 해결하기 위해 블룸필터를 이용한 지역 탐색 방법을 도입하여 효율적으로 공간을 사용하고 성능을 향상시킬 수 있는 방법 및 시스템을 제공하고자 한다. An embodiment of the present invention is to solve the problems of the existing technology, to reduce the mapping table search time, and to introduce a local search method using a bloom filter to solve the problem of the performance load to efficiently use space and improve performance It is intended to provide a method and system that can be used.

또한, 적은 메모리의 저장장치에도 적용할 수 있도록 블룸필터를 이용한 빠른 검색과 효율적 공간 사용 방법 및 시스템을 제공하고자 한다.In addition, to provide a fast search and efficient space usage method and system using a bloom filter to be applied to the storage of less memory.

매핑 테이블을 일정 지역 단위로 나누어 각 지역별로 블룸필터를 할당하는 단계; 매핑 테이블에 물리 주소가 할당될 때마다, 비트 벡터(Bit Vector) 내에 물리 주소가 해당하는 위치를 찾아 설정하는 단계; 쓰레기(Garbage) 수집 과정에서 유효한 페이지의 위치가 변경될 때, 페이지의 물리 주소를 이용하여 각 지역의 블룸필터를 대상으로 비트 벡터가 있는지를 확인하는 단계; 및 비트 벡터의 존재가 확인되는 경우에만 해당 지역을 검색하는 단계를 포함하는 블룸필터를 적용한 역매핑 방법이 제공될 수 있다. Dividing the mapping table into predetermined area units and assigning a bloom filter to each area; Whenever a physical address is assigned to the mapping table, finding and setting a position corresponding to the physical address in a bit vector; When the location of a valid page is changed during garbage collection, checking whether a bit vector exists for a bloom filter of each region by using the physical address of the page; And searching for a corresponding region only when the existence of the bit vector is confirmed. The inverse mapping method using the bloom filter may be provided.

일측에 있어서, 블룸필터는 k 해시 함수와 주어진 비트 벡터의 길이, 두 개의 컴포넌트를 포함하며, 비트 벡터의 길이와 블룸필터에 입력되는 키(Key)의 개수에 맞는 k 해시 함수의 개수를 선택할 수 있다. On one side, the bloom filter includes two components, the k hash function and the length of a given bit vector, and the number of k hash functions that match the length of the bit vector and the number of keys input to the bloom filter can be selected. have.

또 다른 측면에 있어서, 블룸필터의 모든 해시 함수는 블룸필터 값의 범위와 비트 벡터의 길이와 일치할 수 있다. In another aspect, all hash functions of the bloomfilter may match the range of the bloomfilter value and the length of the bit vector.

또 다른 측면에 있어서, 물리 주소가 해당하는 위치를 찾아 설정하는 단계는 각 물리 주소가 할당될 때마다 k 해시 함수를 이용한 값을 구해 비트 벡터 내에 물리 주소가 해당 위치를 찾아 설정할 수 있다. In another aspect, the step of finding and setting a location corresponding to a physical address may be obtained by using a k hash function each time the physical address is allocated, and the physical address may be found and set in the bit vector.

또 다른 측면에 있어서, 비트 벡터의 해당 위치를 확인하는 단계는 해당 물리 주소를 이용하여 각 지역의 블룸필터를 대상으로 k 해시 함수를 이용한 값이 있는지를 확인할 수 있다. In another aspect, the step of determining the corresponding position of the bit vector may determine whether there is a value using the k hash function for the bloom filter of each region using the corresponding physical address.

매핑 테이블을 일정 지역 단위로 나누어 각 지역별로 블룸필터를 할당하는 필터 할당부; 매핑 테이블에 물리 주소가 할당될 때마다, 비트 벡터(Bit Vector) 내에 물리 주소가 해당하는 위치를 찾아 설정하는 위치 설정부; 쓰레기(Garbage) 수집 과정에서 유효한 페이지의 위치가 변경될 때, 페이지의 물리 주소를 이용하여 각 지역의 블룸필터를 대상으로 비트 벡터가 있는지를 확인하는 위치 확인부; 및 비트 벡터의 존재가 확인되는 경우에만 해당 지역을 검색하는 지역 검색부를 포함하는 블룸필터를 적용한 역매핑 시스템이 제공될 수 있다.A filter allocator configured to divide the mapping table into predetermined area units and to assign a bloom filter to each area; A position setting unit for finding and setting a position corresponding to a physical address in a bit vector each time a physical address is allocated to a mapping table; A location checking unit that checks whether a bit vector exists for a bloom filter of each region by using a physical address of the page when the location of a valid page is changed in a garbage collection process; And a region filter for searching a corresponding region only when the existence of the bit vector is confirmed.

본 발명을 통해서 쓰레기 수집 과정에서 유효한 페이지를 다른 블록으로 이동하는 경우 블룸필터를 이용하여 해당하는 매핑 테이블의 물리주소를 불필요한 검색을 줄여 빠르게 찾을 수 있도록 한다.According to the present invention, when a valid page is moved to another block in the garbage collection process, a bloom filter can be used to quickly find a physical address of a corresponding mapping table by reducing unnecessary searches.

또한, 블룸필터를 이용하여 빠른 시간 내에 매핑 테이블에서 이동된 페이지의 위치를 검색하는 방법 및 시스템을 제공할 수 있으며, 본 발명은 하드디스크, SSD와 같은 중복제거 기술을 사용하는 모든 저장장치에 적용될 수 있다.In addition, it is possible to provide a method and system for retrieving the position of a page moved from a mapping table in a short time using a bloom filter, and the present invention is applicable to all storage devices using deduplication techniques such as hard disks and SSDs. Can be.

도 1은 선형 검색을 이용한 매핑 테이블 검색을 설명하기 위한 도면이다.
도 2는 물리 주소를 인덱스로 사용하는 매핑 테이블의 사용을 설명하기 위한 도면이다.
도 3은 본 발명의 일실시예에 있어서, 블룸필터를 적용한 역매핑 방법의 단계를 도시한 순서도이다.
도 4는 본 발명의 일실시예에 있어서, 블룸필터를 이용한 지역 탐색 방법을 설명하기 위한 도면이다.
도 5는 본 발명의 일실시예에 있어서, 블룸필터를 적용한 역매핑 시스템의 구성을 도시한 블록도이다.
도 6은 본 발명의 일실시예에 있어서, SSD 내의 블룸필터를 설명하기 위한 도면이다.
1 is a diagram for describing a mapping table search using a linear search.
2 is a view for explaining the use of a mapping table using a physical address as an index.
3 is a flowchart illustrating steps of a reverse mapping method using a bloom filter according to an embodiment of the present invention.
4 is a view for explaining a region search method using a bloom filter according to an embodiment of the present invention.
5 is a block diagram illustrating a configuration of an inverse mapping system using a bloom filter according to an embodiment of the present invention.
6 is a diagram for describing a bloom filter in an SSD according to an embodiment of the present invention.

이하, 저장장치에 블룸필터를 적용하여 효과적인 쓰레기 수집을 위한 역매핑 기법에 대해 첨부된 도면을 참조하여 자세히 설명한다.Hereinafter, the reverse mapping method for effective waste collection by applying a bloom filter to a storage device will be described in detail with reference to the accompanying drawings.

본 발명은 저장장치인 SSD에서 효과적인 쓰레기 수집(Garbage Collection)을 위한 역매핑 기법을 제안한다. 쓰레기 수집은 플래시 메모리의 여러 블록 안에 유효한 페이지의 데이터를 모아 새로운 블록에 할당하고 기존의 블록을 삭제하는 과정을 말한다. 쓰레기 수집 과정에서 페이지의 위치가 새로운 위치로 변경되기 때문에 매핑 테이블을 수정해야 하는데 오랜 시간이 걸리게 된다. 본 발명에서는 빠른 시간 내에 매핑 테이블에서 이동된 페이지의 위치를 검색하는 방법을 블룸필터를 이용하여 고안하였다.The present invention proposes a reverse mapping method for effective garbage collection in an SSD as a storage device. Garbage collection is the process of collecting data from valid pages in blocks of flash memory, assigning them to new blocks, and deleting existing blocks. Because the location of the page changes to a new location during the garbage collection process, it takes a long time to modify the mapping table. In the present invention, a method of retrieving a position of a page moved from a mapping table in a short time is devised using a bloom filter.

본 발명은 하드디스크, SSD, 가상 테이프 라이브러리(Virtual Tape Library; VTL), NAS(Network Attached Storage), 백업용 저장장치 등 중복제거 기술을 사용하는 모든 저장 장치에 적용될 수 있으며, 일반 PC, 임베디드 시스템, 서버, 데이터 센터, 백업 시스템 등의 분야에 적용될 수 있다.The present invention can be applied to all storage devices using deduplication technology such as hard disks, SSDs, virtual tape libraries (VTLs), network attached storage (NAS), backup storage devices, general PCs, embedded systems, It can be applied to fields such as servers, data centers and backup systems.

도 1과 같이, 선형 검색을 수행하여 매핑 테이블을 검색할 수 있는데, 이와 같은 경우에는 매핑 테이블의 엔트리의 수가 많기 때문에 선형 검색 수행 시에는 성능 부하가 나타날 수 있다. 추가적인 저장 공간이 필요하지 않게 되지만 검색 시간이 길어 질 수 있기 때문에 전체적인 쓰레기 수집 시간이 증가할 수 있다. As shown in FIG. 1, a linear search may be performed to search a mapping table. In this case, since the number of entries in the mapping table is large, a performance load may appear when performing a linear search. No additional storage space is required, but the retrieval time can be long, which can increase overall garbage collection time.

따라서, 고안된 방법이 또 다른 매핑 테이블을 유지하는 것이다. 이 매핑 테이블은 물리 주소를 인덱스로 사용하여 빠른 검색이 가능하다. 즉, 도 2와 같은 물리 주소를 인덱스로 사용하는 매핑 테이블을 통해 빠른 검색이 가능하다.Thus, the devised method is to maintain another mapping table. This mapping table can be quickly searched by using physical addresses as indexes. That is, fast searching is possible through the mapping table using the physical address as shown in FIG. 2.

도 2는 논리 주소를 인덱스로 사용하는 매핑 테이블 외에도 물리 주소를 인덱스로 사용하는 매핑 테이블(P-to-L Table; Physical to Logical Table)의 일례를 도시한 것이다. 두 매핑 테이블은 새로운 요청이 오거나 쓰레기 수집 과정에서 업데이트(덮어쓰기)가 발생할 경우, 동시에 수정될 필요가 있으며, 서로 참조하기 위해 동기화되어야 한다. FIG. 2 illustrates an example of a mapping table using a physical address as an index in addition to a mapping table using a logical address as an index (P-to-L Table). The two mapping tables need to be modified at the same time when new requests come in or when updates (overwrites) occur during the garbage collection process, and they must be synchronized to reference each other.

그러나 매핑 테이블이 하나 더 필요하게 되어, 메모리가 부족한 SSD에 적용되기에는 적합하지 않다. 즉, 짧은 시간 내에 검색할 수 있는 장점이 존재하지만, 추가되는 매핑 테이블만큼의 추가적인 저장 공간(메모리)이 필요하게 된다. 따라서, 이와 같은 문제점을 해결하기 위해 본 발명에서는 블룸필터를 이용하여 빠른 검색과 함께 효율적으로 공간을 사용할 수 있는 방법을 제안한다. However, one more mapping table is needed, which makes it unsuitable for SSDs that run out of memory. In other words, although there is an advantage of being able to search within a short time, additional storage space (memory) is required as much as an additional mapping table. Therefore, in order to solve such a problem, the present invention proposes a method of efficiently using a space with a fast search using a bloom filter.

본 발명에서는 기존 기술의 문제점을 해결하기 위해 블룸필터를 이용한 지역 탐색 기법을 도입하여 효율적인 공간 사용과 성능을 향상시키는 방법을 제안한다.In order to solve the problems of the existing technology, the present invention proposes a method of improving space usage and performance by introducing a local search method using a bloom filter.

도 3은 본 발명의 실시예에 있어서, 블룸필터를 이용한 역매핑 방법, 지역 탐색 기법의 단계를 도시한 도면이다. 실시예에 있어서, 도 4의 도면을 참조하여 설명할 수 있다. 블룸필터를 할당하는데 매핑 테이블을 일정 지역으로 나누어서 각 지역별로 블룸필터를 할당할 수 있다(S310). 도 4에 도시된 바와 같이, 매핑 테이블을 일정 지역 단위로 나누어서 블룸필터를 각각 적용할 수 있다. FIG. 3 is a diagram illustrating an inverse mapping method using a bloom filter and a region search method according to an embodiment of the present invention. In an embodiment, this may be described with reference to the drawings of FIG. 4. In order to allocate the bloom filter, the mapping table may be divided into predetermined regions, and the bloom filter may be allocated to each region (S310). As shown in FIG. 4, the bloom filter may be applied by dividing the mapping table into predetermined area units.

블룸필터란, 1970년에 처음으로 Burton H. Bloom이 발표한 것으로서, 확률을 적용한 자료 구조를 가진다. 즉, 어떤 집합에 특정 원소가 있는지, 없는지를 판단하는 자료 구조인데, 여기서 중요한 것은 원소의 존재 유무에 대해서만 판단할 수 있고, 원소를 어떤 형태로 저장하고 있는지의 여부는 알 수 없다.The Bloom Filter, first published in 1970 by Burton H. Bloom, has a data structure with probability applied. In other words, it is a data structure that determines whether a certain element is in a set or not, and what is important here is that only the existence of an element can be judged, and it is not known what form the element is stored in.

블룸필터는 두 개의 컴포넌트로 구성되어 있는데, 하나는 k 해시 함수와 또 다른 하나는 주어진 길이의 비트 벡터(Bit Vector)이다. 비트 벡터의 길이와 입력되는 키(Key)의 개수에 맞는 해시 함수의 개수를 선택할 수 있다. 여기서, 블룸필터의 모든 해시 함수에 대해서 해시 함수 값의 범위와 비트 벡터의 길이가 일치한다. The bloom filter consists of two components, one for the k hash function and one for the bit vector of the given length. The number of hash functions that match the length of the bit vector and the number of keys to be input can be selected. Here, for all hash functions of the bloom filter, the range of hash function values and the length of the bit vector coincide.

블룸필터로 키가 입력되면, k 해시 함수 중에 하나를 통해 값을 얻어내고, 이 함수 값을 비트 벡터의 해당 위치로 찾아 벡터를 설정한다. 만약 비트가 이미 설정되어 있다면 해시 함수를 적용하지 않을 수 있다. When the key is input to the bloom filter, the value is obtained through one of the k hash functions, and the value of the function is set to the corresponding position of the bit vector to set the vector. If the bit is already set, the hash function may not be applied.

본 발명의 실시예에 있어서, 매핑 테이블의 논리 주소에 해당하는 물리 주소가 매핑 테이블에 할당될 때마다, 블룸필터의 k 해시 함수를 사용하여 해당하는 값을 얻어내고, 이 값을 비트 벡터 내의 물리 주소가 해당하는 위치를 찾아 설정할 수 있다(S320). 각 지역별로 해당하는 블룸필터의 비트 벡터가 존재하게 되며, 이렇게 얻어진 비트 벡터는 메모리에 유지할 수 있다.In an embodiment of the present invention, each time a physical address corresponding to a logical address of the mapping table is assigned to the mapping table, a corresponding value is obtained using the K hash function of the Bloom filter, and this value is obtained from the physical in the bit vector. The location corresponding to the address may be found and set (S320). There is a bit vector of a bloom filter corresponding to each region, and the obtained bit vector can be maintained in a memory.

한편, 쓰레기 수집(Garbage Collection) 과정에서 유효한 페이지의 위치가 변경될 때, 즉 유효한 페이지가 다른 블록으로 옮겨질 때 매핑 테이블에서 해당 물리 주소의 검색을 가정하면, 페이지의 물리 주소를 이용하여 각 지역의 블룸필터를 대상으로 비트 벡터가 있는지 확인하도록 한다(S330). 즉, 먼저 물리 주소를 해당 k 해시 함수를 사용하여 함수 값을 얻어내어, 얻은 함수 값이 비트 벡터의 해당 위치에 있는지 확인할 수 있다. On the other hand, when the location of a valid page is changed during garbage collection, that is, when a valid page is moved to another block, assuming that the corresponding physical address is retrieved from the mapping table, each region is determined using the physical address of the page. The bloom filter checks whether there is a bit vector (S330). In other words, the physical address is first obtained by using the corresponding k hash function to check whether the obtained function value is in the corresponding position of the bit vector.

만약, 함수 값이 비트 벡터의 해당 위치에 존재가 확인이 되는 것은 해당 지역에 물리 주소가 있는 확률이 높다는 것을 의미하기 때문에 해당 지역을 검색할 수 있다(S340). 그러나 반대로, 함수 값이 존재하지 않는다면 비트 벡터가 존재하지 않은 것을 의미하게 되며, 블룸필터는 해당 지역에 물리 주소가 없다는 것을 보장할 수 있다. 또한, 다른 지역의 비트 벡터의 해당 위치에 값이 존재하는지 검색하여 존재하는 경우에는 해당 지역을 검색할 수 있다. If it is confirmed that the function value exists at the corresponding position of the bit vector, it means that there is a high probability that there is a physical address in the corresponding region, and thus the corresponding region may be searched (S340). On the contrary, if the function value does not exist, it means that the bit vector does not exist, and the bloom filter can guarantee that there is no physical address in the region. In addition, if a value exists in a corresponding position of a bit vector of another region, the corresponding region may be searched for.

본 발명의 실시를 통해서, 작은 크기의 저장 공간을 활용하여 메모리 검색을 효과적으로 수행하고 불필요한 검색을 줄일 수 있으며, 도 2에 도시된 물리 주소를 인덱스로 사용하는 매핑 테이블을 사용하는 경우와 비교했을 때, 전체적인 쓰레기 수집의 수행 시간에 변동이 없게 되므로 성능이 향상된 지역 탐색 기법을 제공한 것으로 볼 수 있다. Through the implementation of the present invention, it is possible to effectively perform a memory search and reduce unnecessary searches by utilizing a small storage space, compared with the case of using a mapping table using the physical address shown in FIG. As a result, there is no change in the execution time of the entire garbage collection.

또한, 도 5는 본 발명의 일실시예에 있어서, 블룸필터를 적용한 역매핑 시스템(500)에 관한 것으로, 시스템(500)은 필터 할당부(510)와 위치 설정부(520), 위치 확인부(530), 그리고 지역 검색부(540)를 포함하여 구성될 수 있으며, 도 3을 통해 설명한 역매핑 방법의 각 단계를 수행할 수 있다. 시스템(500)의 구성은 경우에 따라 둘 이상의 구성이 하나로 결합될 수 있고, 추가적인 구성들이 더 포함되거나, 하나 이상의 요소가 생략될 수 있다. In addition, FIG. 5 relates to an inverse mapping system 500 to which a bloom filter is applied, according to an embodiment of the present invention. The system 500 includes a filter allocating unit 510, a positioning unit 520, and a positioning unit. 530, and a local search unit 540, and may perform each step of the reverse mapping method described with reference to FIG. 3. The configuration of the system 500 may optionally combine two or more configurations into one, additional configurations may be included, or one or more elements may be omitted.

일례에 있어서, 필터 할당부(510)는 매핑 테이블을 일정 지역 단위로 나누어 지역별로 블룸필터를 할당할 수 있다. 할당되는 블룸필터는 k 해시 함수와 주어진 길이의 비트 벡터, 이렇게 두 개의 컴포넌트로 구성되어 있다. 블룸필터의 모든 해시 함수는 함수 값의 범위와 비트 벡터의 길이와 맞아떨어진다. 블룸필터로 키가 입력되면 k 해시 함수 중에 하나를 통해 함수 값을 얻을 수 있고, 이를 비트 벡터의 해당 위치를 찾아 이 벡터를 설정할 수 있다. In one example, the filter allocator 510 may allocate a bloom filter for each region by dividing the mapping table into predetermined region units. The assigned bloom filter consists of two components: the k hash function and the bit vector of the given length. All hash functions in the bloom filter match the range of function values and the length of the bit vector. When the key is input to the bloom filter, the function value can be obtained through one of the k hash functions, and the vector can be set by finding the corresponding position of the bit vector.

또한, 위치 설정부(520)는 매핑 테이블에 각 매핑 테이블의 논리 주소에 해당하는 물리 주소가 할당될 때마다 비트 벡터 내에 물리 주소가 해당하는 위치를 찾아 설정할 수 있다. 이때, k 해시 함수를 이용하며, k 해시 함수를 이용해 함수 값을 구하여 비트 벡터 내에 해당 위치를 찾아 설정할 수 있다. 각 지역별로 해당하는 블룸필터의 비트 벡터가 존재하고, 이렇게 얻어진 비트 벡터는 메모리에 저장하여 유지할 수 있다. In addition, whenever the physical address corresponding to the logical address of each mapping table is allocated to the mapping table, the location setting unit 520 may find and set the location corresponding to the physical address in the bit vector. In this case, the k hash function is used, and a function value is obtained using the k hash function to find and set a corresponding position in the bit vector. There is a bit vector of a bloom filter corresponding to each region, and the obtained bit vector can be stored and maintained in a memory.

위치 확인부(530)는 쓰레기 수집 과정에서 유효한 페이지를 다른 블록으로 옮기기 위해, 즉 유효한 페이지가 업데이트되어 다른 블록으로 이동하는 경우에 있어서, 매핑 테이블에서 해당 물리 주소의 검색을 가정하면, 먼저 물리 주소를 해당 k 해시 함수를 사용하여 해당하는 값을 얻을 수 있다. 그리고, 이 값이 비트 벡터의 해당 위치에 있는지 확인할 수 있다. 위치 확인부(530)는 비트 벡터가 해당 위치에 존재하는지를 확인함으로써 해당 위치에 물리 주소가 존재하는지 여부를 확인할 수 있다. The location checking unit 530 assumes a search for a corresponding physical address in a mapping table in order to move a valid page to another block in the garbage collection process, that is, when the valid page is updated and moved to another block. You can use the corresponding k hash function to get the corresponding value. Then, it can be checked whether the value is at the corresponding position of the bit vector. The location checker 530 may check whether a bit vector exists at a corresponding location to determine whether a physical address exists at that location.

만약, 비트 벡터의 해당 위치에 함수 값이 존재한다면, 해당 지역에 물리 주소가 있을 확률이 높은 것을 의미하게 되며, 반대로 존재하지 않는다면 블룸필터는 이 지역에 물리 주소가 없다는 것을 보장할 수 있다. 나아가, 다른 지역의 비트 벡터의 해당 위치에 값이 존재하는지 계속 검색할 수 있다. If the function value exists at the corresponding position of the bit vector, it means that there is a high probability that there is a physical address in the region, and if not, the Bloom filter can guarantee that there is no physical address in the region. Furthermore, it is possible to continue searching whether there is a value in the corresponding position of the bit vector of another region.

지역 검색부(540)는 위치 확인부(530)를 통해 각 지역의 블룸필터를 대상으로 함수 값이 있는지 확인이 된 경우에, 해당 지역을 검색할 수 있으며, 이렇게 불필요한 검색을 줄일 수 있게 함으로써 시스템(500) 성능을 전체적으로 향상시킬 수 있다. When the local search unit 540 determines whether there is a function value for the bloom filter of each area through the location checker 530, the local search unit 540 may search the corresponding area, thereby reducing unnecessary searches. 500 can improve overall performance.

도 6은 발명의 일실시예에 있어서, 본 발명의 적용이 가능한 SSD와 SSD 내부에 블룸필터를 포함하는 것을 도시한 도면이다. SSD는 내부에 컨트롤러와 메모리를 포함하며, 메모리에 매핑 테이블이 존재한다. 매핑 테이블을 일정 지역으로 나누어 블룸필터를 할당할 수 있으며, 생성된 비트 벡터 값은 메모리에 저장시킬 수 있다. 또한, 블룸필터는 플래시 변환계층(Flash Translation Layer; FTL)에 포함될 수 있다.FIG. 6 is a diagram illustrating an SSD and a bloom filter included in the SSD according to an embodiment of the present invention. The SSD contains the controller and the memory inside, and there is a mapping table in the memory. Bloom filters can be allocated by dividing the mapping table into regions and the generated bit vector values can be stored in memory. In addition, the bloom filter may be included in a flash translation layer (FTL).

이와 같이, 본 발명의 실시로 쓰레기 수집 과정에서 유효한 페이지를 다른 블록으로 이동하는 경우 블룸필터를 이용하여 해당하는 매핑 테이블의 물리주소를 불필요한 검색을 줄여 빠르게 찾을 수 있도록 한다.As described above, when the valid page is moved to another block in the garbage collection process, the bloom address is used to quickly find the physical address of the corresponding mapping table by reducing the unnecessary search.

앞서 설명한 기술적 내용들, 즉 블룸필터를 적용한 역매핑 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예들을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. The above-described technical contents, that is, the inverse mapping method using the bloom filter may be implemented in the form of program instructions that may be executed by various computer means and may be recorded in a computer readable medium. The computer readable medium may include program instructions, data files, data structures, etc. alone or in combination. The program instructions recorded on the medium may be those specially designed and constructed for the embodiments or may be available to those skilled in the art of computer software.

컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 하드웨어 장치는 실시예들의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.Examples of computer-readable recording media include magnetic media such as hard disks, floppy disks, and magnetic tape, optical media such as CD-ROMs, DVDs, and magnetic disks, such as floppy disks. Magneto-optical media, and hardware devices specifically configured to store and execute program instructions, such as ROM, RAM, flash memory, and the like. Examples of program instructions include not only machine code generated by a compiler, but also high-level language code that can be executed by a computer using an interpreter or the like. The hardware device may be configured to operate as one or more software modules to perform the operations of the embodiments, and vice versa.

이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등한 것들에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.While the present invention has been particularly shown and described with reference to exemplary embodiments thereof, it is to be understood that the invention is not limited to the disclosed exemplary embodiments. For example, it is to be understood that the techniques described may be performed in a different order than the described methods, and / or that components of the described systems, structures, devices, circuits, Lt; / RTI > or equivalents thereof, the appropriate results may be achieved.

그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.Therefore, other implementations, other embodiments, and equivalents to the claims are also within the scope of the following claims.

500: 블룸필터 적용 역매핑 시스템
510: 필터 할당부
520: 위치 설정부
530: 위치 확인부
540: 지역 검색부
500: Reverse Mapping System with Bloom Filter
510: filter assignment unit
520: positioning unit
530: positioning unit
540: local search

Claims (10)

매핑 테이블을 일정 지역 단위로 나누어 각 지역별로 블룸필터를 할당하는 단계;
상기 매핑 테이블에 물리 주소가 할당될 때마다, 비트 벡터(Bit Vector) 내에 상기 물리 주소가 해당하는 위치를 찾아 설정하는 단계;
쓰레기(Garbage) 수집 과정에서 유효한 페이지의 위치가 변경될 때, 상기 페이지의 물리 주소를 이용하여 상기 각 지역의 블룸필터를 대상으로 상기 비트 벡터가 있는지를 확인하는 단계; 및
상기 비트 벡터의 존재가 확인되는 경우에만 해당 지역을 검색하는 단계
를 포함하는 블룸필터를 적용한 역매핑 방법.
Dividing the mapping table into predetermined area units and assigning a bloom filter to each area;
Whenever a physical address is allocated to the mapping table, finding and setting a position corresponding to the physical address in a bit vector;
When the location of a valid page is changed in a garbage collection process, checking whether the bit vector exists in the bloom filter of each region by using the physical address of the page; And
Searching for a region only when the existence of the bit vector is confirmed
Inverse mapping method applying a bloom filter comprising a.
제1항에 있어서,
상기 블룸필터는 k 해시 함수와 주어진 상기 비트 벡터의 길이, 두 개의 컴포넌트를 포함하며,
비트 벡터의 길이와 상기 블룸필터에 입력되는 키(Key)의 개수에 맞는 k 해시 함수의 개수를 선택하는 것
을 특징으로 하는 블룸필터를 적용한 역매핑 방법.
The method of claim 1,
The bloom filter includes two components, a k hash function and a length of the given bit vector,
Selecting the number of k hash functions that match the length of the bit vector and the number of keys input to the bloom filter
Reverse mapping method using a bloom filter, characterized in that.
제2항에 있어서,
상기 블룸필터의 모든 해시 함수는 상기 블룸필터 값의 범위와 비트 벡터의 길이와 일치하는 것
을 특징으로 하는 블룸필터를 적용한 역매핑 방법.
The method of claim 2,
All hash functions of the bloom filter match the range of the bloom filter value and the length of the bit vector
Reverse mapping method using a bloom filter, characterized in that.
제1항에 있어서,
상기 물리 주소가 해당하는 위치를 찾아 설정하는 단계는
각 물리 주소가 할당될 때마다 k 해시 함수를 이용한 값을 구해 비트 벡터 내에 상기 물리 주소가 해당 위치를 찾아 설정하는 것
을 특징으로 하는 블룸필터를 적용한 역매핑 방법.
The method of claim 1,
Finding and setting the location corresponding to the physical address is
Finding and setting the position of the physical address in the bit vector by using the k hash function as each physical address is allocated
Reverse mapping method using a bloom filter, characterized in that.
제4항에 있어서,
상기 비트 벡터의 해당 위치를 확인하는 단계는
해당 물리 주소를 이용하여 각 지역의 블룸필터를 대상으로 상기 k 해시 함수를 이용한 값이 있는지를 확인하는 것
을 특징으로 하는 블룸필터를 적용한 역매핑 방법.
5. The method of claim 4,
Identifying the corresponding position of the bit vector
Checking whether there is a value using the k hash function for the bloom filter of each region using the corresponding physical address
Reverse mapping method using a bloom filter, characterized in that.
매핑 테이블을 일정 지역 단위로 나누어 각 지역별로 블룸필터를 할당하는 필터 할당부;
상기 매핑 테이블에 물리 주소가 할당될 때마다, 비트 벡터(Bit Vector) 내에 상기 물리 주소가 해당하는 위치를 찾아 설정하는 위치 설정부;
쓰레기(Garbage) 수집 과정에서 유효한 페이지의 위치가 변경될 때, 상기 페이지의 물리 주소를 이용하여 상기 각 지역의 블룸필터를 대상으로 상기 비트 벡터가 있는지를 확인하는 위치 확인부; 및
상기 비트 벡터의 존재가 확인되는 경우에만 해당 지역을 검색하는 지역 검색부
를 포함하는 블룸필터를 적용한 역매핑 시스템.
A filter allocator configured to divide the mapping table into predetermined area units and to assign a bloom filter to each area;
A location setting unit for finding and setting a location corresponding to the physical address in a bit vector each time a physical address is allocated to the mapping table;
A position checking unit for checking whether a bit vector exists in a bloom filter of each region by using a physical address of the page when a position of a valid page is changed in a garbage collection process; And
A local search unit searching for a corresponding area only when the existence of the bit vector is confirmed
Inverse mapping system applying a bloom filter comprising a.
제6항에 있어서,
상기 블룸필터는 k 해시 함수와 주어진 상기 비트 벡터의 길이, 두 개의 컴포넌트를 포함하며,
비트 벡터의 길이와 상기 블룸필터에 입력되는 키(Key)의 개수에 맞는 k 해시 함수의 개수를 선택하는 것
을 특징으로 하는 블룸필터를 적용한 역매핑 시스템.
The method according to claim 6,
The bloom filter includes two components, a k hash function and a length of the given bit vector,
Selecting the number of k hash functions that match the length of the bit vector and the number of keys input to the bloom filter
Reverse mapping system using a bloom filter characterized in that.
제7항에 있어서,
상기 블룸필터의 모든 해시 함수는 상기 블룸필터 값의 범위와 비트 벡터의 길이와 일치하는 것
을 특징으로 하는 블룸필터를 적용한 역매핑 시스템.
The method of claim 7, wherein
All hash functions of the bloom filter match the range of the bloom filter value and the length of the bit vector
Reverse mapping system using a bloom filter characterized in that.
제6항에 있어서,
상기 위치 설정부는,
각 물리 주소가 할당될 때마다 k 해시 함수를 이용한 값을 구해 비트 벡터 내에 상기 물리 주소가 해당 위치를 찾아 설정하는 것
을 특징으로 하는 블룸필터를 적용한 역매핑 시스템.
The method according to claim 6,
Wherein the position setting unit comprises:
Finding and setting the position of the physical address in the bit vector by using the k hash function as each physical address is allocated
Reverse mapping system using a bloom filter characterized in that.
제9항에 있어서,
상기 위치 확인부는,
해당 물리 주소를 이용하여 각 지역의 블룸필터를 대상으로 상기 k 해시 함수를 이용한 값이 있는지를 확인하는 것
을 특징으로 하는 블룸필터를 적용한 역매핑 시스템.
10. The method of claim 9,
The positioning unit,
Checking whether there is a value using the k hash function for the bloom filter of each region using the corresponding physical address
Reverse mapping system using a bloom filter characterized in that.
KR1020120091408A 2011-12-29 2012-08-21 Using bloom-filter of reverse mapping method and system for enhancing performance of garbage collection in storage systems KR101379161B1 (en)

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 true KR20130077758A (en) 2013-07-09
KR101379161B1 KR101379161B1 (en) 2014-03-27

Family

ID=48990943

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120091408A KR101379161B1 (en) 2011-12-29 2012-08-21 Using bloom-filter of reverse mapping method and system for enhancing performance of garbage collection in storage systems

Country Status (1)

Country Link
KR (1) KR101379161B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20230102877A (en) 2021-12-30 2023-07-07 부산대학교 산학협력단 Block relocation device for efficient I/O bandwidth sharing of logical volumes composed of multiple SSDs and method of the same

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4303803B2 (en) * 1998-04-22 2009-07-29 株式会社東芝 Cash flush equipment
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

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20230102877A (en) 2021-12-30 2023-07-07 부산대학교 산학협력단 Block relocation device for efficient I/O bandwidth sharing of logical volumes composed of multiple SSDs and method of the same

Also Published As

Publication number Publication date
KR101379161B1 (en) 2014-03-27

Similar Documents

Publication Publication Date Title
CN110678836B (en) Persistent memory for key value storage
KR101289931B1 (en) Method and apparatus for storing data in flash memory using address mapping with various block sizes
US9053013B2 (en) Data storage device and operating method thereof
US8886882B2 (en) Method and apparatus of storage tier and cache management
JP6205650B2 (en) Method and apparatus utilizing non-uniform hash function to place records in non-uniform access memory
US9501421B1 (en) Memory sharing and page deduplication using indirect lines
US20140195551A1 (en) Optimizing snapshot lookups
KR102275563B1 (en) Host-managed non-volatile memory
WO2015195936A1 (en) Range-based data deduplication
US20200218465A1 (en) Selective erasure of data in a ssd
TW201301030A (en) Fast translation indicator to reduce secondary address table checks in a memory device
US9535844B1 (en) Prioritization for cache systems
US10482061B1 (en) Removing invalid data from a dataset in advance of copying the dataset
CN107562367B (en) Method and device for reading and writing data based on software storage system
JP6823734B2 (en) Solid state disk access
KR101615659B1 (en) Apparatus and method for scratch pad memory management
US20140223133A1 (en) Allocating additional requested storage space for a data set in a first managed space in a second managed space
WO2015065312A1 (en) Method and apparatus of data de-duplication for solid state memory
KR102545067B1 (en) Method, system and computer-readable recording medium for storing metadata of log-structured file system
JP2007220107A (en) Apparatus and method for managing mapping information of nonvolatile memory
US20140372706A1 (en) System and method for dynamic allocation of unified cache to one or more logical units
US10365846B2 (en) Storage controller, system and method using management information indicating data writing to logical blocks for deduplication and shortened logical volume deletion processing
US20150121033A1 (en) Information processing apparatus and data transfer control method
US9009204B2 (en) Storage system
WO2017054636A1 (en) Method and apparatus for processing virtual machine snapshots

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