KR20090129161A - Structure of flash translation layer and prefetching method and asynchronous writing method based on the flash translation layer - Google Patents

Structure of flash translation layer and prefetching method and asynchronous writing method based on the flash translation layer Download PDF

Info

Publication number
KR20090129161A
KR20090129161A KR1020080055289A KR20080055289A KR20090129161A KR 20090129161 A KR20090129161 A KR 20090129161A KR 1020080055289 A KR1020080055289 A KR 1020080055289A KR 20080055289 A KR20080055289 A KR 20080055289A KR 20090129161 A KR20090129161 A KR 20090129161A
Authority
KR
South Korea
Prior art keywords
hash table
clustered hash
grained
address
fine
Prior art date
Application number
KR1020080055289A
Other languages
Korean (ko)
Other versions
KR100999111B1 (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 KR1020080055289A priority Critical patent/KR100999111B1/en
Priority to US12/254,410 priority patent/US8024545B2/en
Publication of KR20090129161A publication Critical patent/KR20090129161A/en
Application granted granted Critical
Publication of KR100999111B1 publication Critical patent/KR100999111B1/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/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
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/04Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
    • G11C16/0483Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/20Employing a main memory using a specific memory technology
    • G06F2212/202Non-volatile memory
    • G06F2212/2022Flash memory

Abstract

PURPOSE: A flash translation layer structure, pre-carrying method using the same, and asynchronous writing method based on the flash conversion layer structure are provided to predict address data which is frequency updated, thereby minimizing unnecessary repeated writing operation. CONSTITUTION: A flash translation layer structure is composed of the Fine-Grained clustered hash table of 1 step, the Fine-Grained clustered hash table of 2 step, and a Coarse-Grained clustered hash table. Information about successive PBA(Physical Block Address) is stored in the Coarse-grained clustered hash table. The flash translation layer structure comprises a continuity flag. The continuity flag minimizes repeated address translation mechanism according to the address translation request of successive LBA(Local Block Address) based on information about a physical address.

Description

플래시 변환 계층 구조와 이를 이용한 선 반입 방법 및 플래시 변환 구조를 기반으로 한 비동기 쓰기 방법{STRUCTURE OF FLASH TRANSLATION LAYER AND PREFETCHING METHOD AND ASYNCHRONOUS WRITING METHOD BASED ON THE FLASH TRANSLATION LAYER}Flash Transform Hierarchy Structure, Prefetch Method Using the Same, and Asynchronous Write Method Based on Flash Transformation Structure

본 발명은 플래시 메모리의 주소 변환 성능과 수명 관리에 관한 것으로, 더욱 상세하게는 연속성 플래그와 선반입 기법을 통해 연속적인 주소변환 성능을 제공하고, 2비트 쓰기 예측기법과 비동기 쓰기 기법을 통해 플래시 메모리의 효율적 관리가 가능 한 플래시 변환 계층 구조와 이를 이용한 선 반입 방법 및 플래시 변환 구조를 기반으로 한 비동기 쓰기 방법에 관한 것이다.The present invention relates to address translation performance and lifetime management of flash memory, and more particularly, provides continuous address translation performance through continuity flags and prefetching techniques, and flash memory through 2-bit write prediction and asynchronous write techniques. The present invention relates to a flash conversion hierarchy structure that can be efficiently managed, a prefetch method using the same, and an asynchronous write method based on the flash conversion structure.

최근 대용량 낸드 플래시 메모리가 매년 출시되면서 향후 자기 디스크를 대체할 새로운 저장장치로 각광받고 있다. 낸드 플래시 메모리의 장점으로 일반 하드 디스크에 비해 랜덤 액세스가 가능해 입출력 속도가 빠르고 충격에 강해 임베디드 시스템이나 산업용 시스템에 유용하다. 그러나 이와 같은 장점 외에 자기디스크와 다른 물리적 특성을 아래와 같이 포함하고 있다. Recently, with the introduction of large-capacity NAND flash memory every year, it is in the spotlight as a new storage device to replace magnetic disk in the future. The advantage of NAND flash memory is that it can be randomly accessed compared to a normal hard disk, and thus the input / output speed and shock resistance are useful for embedded systems or industrial systems. However, in addition to these advantages, magnetic disks and other physical characteristics are included as follows.

첫째 낸드 플래시 메모리는 페이지(512B, 2KB)와 블록(16KB, 128KB)으로 구 성되어 있다. 페이지는 낸드 플래시 메모리를 구성하는 최소 단위로 일반적으로 페이지 32개를 하나의 블록을 구성한다. 둘째 각 블록들은 갱신되는 횟수에 한계를 가지고 있으며 이를 마모도라고 한다. SLC(Single Level Cell)에서는 약 10만 번 MLC(Multi Level Cell)에서는 약 1만 번 정도의 수명을 가지고 있다. 셋째, 낸드 플래시 메모리는 읽기/쓰기/삭제 3개의 동작으로 구분되며 읽기/쓰기 동작은 페이지(512B, 2KB) 단위이지만 삭제 동작은 블록(16KB, 128KB) 단위이다. 넷째 블록 단위의 삭제는 페이지 32개를 지우는 속도이므로 읽기/쓰기 속도보다 많이 느리다.The first NAND flash memory consists of pages (512B, 2KB) and blocks (16KB, 128KB). Pages are the smallest unit of NAND flash memory. Generally, 32 pages constitute one block. Second, each block has a limit on the number of times it is updated, which is called wear. It is about 100,000 times in SLC (Single Level Cell) and about 10,000 times in MLC (Multi Level Cell). Third, the NAND flash memory is divided into three operations of read / write / delete. The read / write operation is in units of pages (512B, 2KB), but the erase operation is in blocks (16KB, 128KB). Fourth block delete is much slower than read / write because it erases 32 pages.

따라서, 기존에 사용하던 하드 디스크 전용 파일시스템은 이와 같은 낸드 플래시 메모리의 특성을 고려하지 않고 설계되었기 때문에 기존의 파일 시스템과 낸드 플래시 메모리와의 호환을 위해서는 FTL(Flash Translation Layer)이라는 미들웨어를 거쳐서 수행해야 한다. FTL 이 수행하는 역할을 살펴 보면 다음과 같다.Therefore, the existing hard disk dedicated file system is designed without considering the characteristics of the NAND flash memory. Therefore, the compatibility with the existing file system and the NAND flash memory is performed through a middleware called a FTL (Flash Translation Layer). Should be. The role of FTL is as follows.

첫째, 제자리 갱신(In-place update)을 하기 위해서는 쓰기 전 지우기를 수행해야 하므로 이에 따른 삭제 비용이 매우 높다. 그러므로 낸드 플래시 메모리는 제자리 갱신 대신 외부 갱신(Out-place update)를 한다. 외부 갱신 할 때마다 파일 시스템의 논리 주소(LBA: Logical Block Address)와 사상되는 플래시 메모리의 물리 주소(PBA: Physical Block Address)가 갱신되므로 주소 변환 테이블 기능을 포함한다. 둘째, 낸드 플래시 메모리를 오래 쓰기 위해서 모든 블록의 마모도를 평준화 시키는 기능을 가지고 있다. 셋째 삭제 속도가 읽기, 쓰기보다 느리므로 플래시 메모리의 유효하지 않은(Invalid) 블록을 일괄적으로 삭제하는 블록 수거 기법(Garbage Collection) 기능을 포함한다.First, since in-place update requires erasing before writing, the deletion cost is very high. Therefore, the NAND flash memory performs an out-place update instead of an in-place update. Each time an external update is performed, the logical address of the file system (LBA) and the physical block address (PBA) of the flash memory mapped to each other are updated, so the address translation table function is included. Second, it has the function of leveling the wear of all blocks in order to use NAND flash memory for a long time. Third, since the erase speed is slower than read and write, it includes a garbage collection function that deletes invalid blocks of flash memory in a batch.

한편, 전술된 바와 같이 페이지 단위 주소 변환 기법의 가장 큰 단점인 주소 변환 테이블의 크기를 줄이기 위해, 근래에는 블록 단위의 주소 변환 방식을 적용하고 있으며, 일 예로 NFTL 방식이 존재한다. 여기서, NFTL은 M-Systems사에서 설계한 낸드 플래시 메모리 전용 FTL이다. 즉, 도 1에 도시된 바와 같이, LBA (Logical Block Address)의 값을 블록당 페이지 개수로 나누어 몫은 VBA(Virtual Block Address)로 사용하고 나머지 값은 오프셋을 인덱스로 사용한다. 그리고 주소 변환 테이블로 접근 시 VBA의 값을 통해 주 블록(Primary block)과 교체 블록(Replacement block)의 주소를 가지고 있는 엔트리에 접근한다.Meanwhile, as described above, in order to reduce the size of the address translation table, which is the biggest disadvantage of the page-based address translation scheme, a block-based address translation scheme has recently been applied. For example, an NFTL scheme exists. Here, NFTL is an NTL dedicated FTL designed by M-Systems. That is, as shown in FIG. 1, the value of the Logical Block Address (LBA) is divided by the number of pages per block, and the quotient is used as a VBA (Virtual Block Address), and the remaining value is used as an index. When accessing the address translation table, the VBA value is used to access the entry containing the addresses of the primary block and the replacement block.

먼저, 주 블록 PBA가 존재할 경우 나머지 값인 블록 옵셋으로 페이지 단위 접근을 시도한다. 하지만 주 블록에 대응하는 PBA의 데이터가 유효하지 않은 경우 교체 블록의 주소로 다시 접근하여 각 페이지를 순차적으로 검색하는 기법을 사용한다. 여기서 이를 NFTL의 블록 단위 주소 변환 기법이라고 한다. 블록 단위 주소 변환 기법은 주소 변환 테이블의 크기가 작은 대신 주 블록에서 주소 검색을 실패할 경우 교체 블록을 순차적으로 다시 검색해야 하는 오버헤드가 존재한다.First, if the main block PBA exists, the page-by-page access is attempted with the remaining block offset. However, if the data of the PBA corresponding to the main block is not valid, the technique of searching each page sequentially by accessing the address of the replacement block again. This is called NFTL's block address conversion technique. In block-based address translation, the size of the address translation table is small, but there is an overhead of re-scanning the replacement block sequentially if the address retrieval fails in the main block.

한편, 주소 변환 방식의 또 다른 예로, AFTL 방식이 존재하는데, 상기 AFTL은 대만 국립 대학교에서 제안한 FTL로 도 2와 같이 Coarse-grained 해시 테이블, Fine-grained 해시 테이블 두 개 단위의 주소 변환 테이블로 이루어져 있다.Meanwhile, as another example of an address translation method, there is an AFTL method, which is an FTL proposed by the National Taiwan University, and is composed of an address translation table of two units, a coarse-grained hash table and a fine-grained hash table, as shown in FIG. 2. have.

기본적으로 Coarse-grained 해시 테이블에서는 NFTL과 같이 블록 단위의 주소 변환 기법을 사용하고, Fine-grained 해시 테이블에서는 FTL과 같은 페이지 단위의 주소 변환 기법을 사용한다. 페이지 단위의 주소 변환 기법을 사용하는 경우 는 교체 블록의 데이터가 유효 상태일 경우 이 데이터들이 앞으로 자주 쓰일 수 있다고 가정하여 Fine-grained 해시 테이블에 저장하여 페이지 단위로 주소를 변환한다.By default, coarse-grained hash tables use block-level address translation techniques like NFTL, and fine-grained hash tables use page-level address translation techniques such as FTL. In case of using the page address conversion method, if the replacement block data is valid, it is assumed that the data can be frequently used in the future, and stored in the fine-grained hash table to convert the address by page.

주 블록일 경우는 오프셋을 이용하여 바로 찾기 때문에 Coarse-grained 해시 테이블을 사용한다. Fine-grained 해시 테이블의 크기의 제한이 있으므로 Fine-to-Coarse 간의 교체 기법이 필요한데 이때 사용하는 기법이 LRU를 적용하여 일정 기간 동안 사용하지 않는 슬롯을 Coarse-grained 해시 테이블로 이동하는 기법을 사용한다. In the case of the main block, the coarse-grained hash table is used because it is directly found using the offset. Due to the limitation of the size of fine-grained hash tables, a replacement technique between fine-to-coarse is required, and the technique used here uses the technique of applying LRU to move unused slots to a coarse-grained hash table for a certain period of time. .

그러나, 전술된 NFTL 방식 및 AFTL 방식에서 적용되는 해시 테이블은, 주소 변환 속도가 항상 고정되어 있어서 유연성이 부족하다는 단점이 있었으며, 태그(Tag) 및 넥스트(Next) 포인터가 노드 별로 추가적으로 요구되어 메모리 사용량에 있어서 200 % 정도의 오버헤드가 발생하는 문제점이 있다.However, the hash table applied in the above-described NFTL method and AFTL method has a disadvantage in that flexibility is lacked because the address translation speed is always fixed, and the tag and next pointers are additionally required for each node to use memory. There is a problem in that about 200% overhead occurs.

본 발명은 이와 같은 문제점을 해결하기 위한 것으로, 본 발명의 목적은 연속적인 물리주소에 관한 정보를 저장하는 연속성 플래그를 두어, 반복적인 주소변환 횟수를 감소시켜 Coarse-grained 군집형 해시 테이블의 주소변환 성능을 향상시킬 수 있는 플래시 변환 계층을 위한 선반입 방법을 제공함에 있다.SUMMARY OF THE INVENTION The present invention has been made to solve such a problem, and an object of the present invention is to provide a continuity flag for storing information about consecutive physical addresses, thereby reducing the number of repetitive address translations and thus address translation of a coarse-grained clustered hash table. The present invention provides a preloading method for a flash translation layer that can improve performance.

본 발명의 다른 목적은, 갱신이 자주 발생하는 주소 데이터를 예측함으로써, 플래시 메모리의 수명을 늘리기 이한 불필요한 반복적인 쓰기 동작을 최소화시킬 수 있는 플래시 변환 계층을 위한 선반입 방법을 기반으로 한 비동기 쓰기 방법을 제공함에 있다.Another object of the present invention is an asynchronous write method based on a write-through method for a flash translation layer that can minimize unnecessary repetitive write operations that increase the lifespan of a flash memory by predicting address data with frequent updates. In providing.

상기 목적을 달성하기 위한 본 발명의 관점에 따른 플래시 변환 계층 구조는, 1단계 Fine-Grained 군집형 해시 테이블, 2단계 Fine-grained 군집형 해시 테이블 및 Coarse-grained 군집형 해시 테이블로 구성된 플래시 변환 계층(FTL) 구조에 있어서, 상기 Coarse-grained 군집형 해시 테이블로 연속적인 물리 주소(PBA:Physical Block Address)에 관한 정보를 저장하고, 상기 물리 주소에 관한 정보를 기반으로 연속적인 LBA(Local Block Address)의 주소변환 요청에 따른 반복적인 주소변환 메카니즘을 최소화하기 위한 연속성 플래그가 포함되는 것을 특징으로 한다.Flash conversion hierarchy according to an aspect of the present invention for achieving the above object is a flash conversion layer consisting of a first stage fine-grained clustered hash table, a second stage fine-grained clustered hash table and a coarse-grained clustered hash table In the (FTL) structure, the Coarse-grained clustered hash table stores information about consecutive physical block addresses (PBAs) and consecutive LBAs based on the information about the physical addresses. A continuity flag is included to minimize the repetitive address translation mechanism according to the address translation request.

또한, 상기 목적을 달성하기 위한 본 발명의 관점에 따른 플래시 변환 계층을 위한 선반입 방법은, a) 군집형 해시 테이블로 동일한 버켓 안에 연속된 LBA 및 이에 대응하는 PBA들을 저장하는 단계; b) 상기 버켓의 LBA에 대한 읽기 요청을 접수하는 단계; c) Coarse-Grained 군집형 해시 테이블로 탑재된 상기 연속성 플래그를 토대로 연속적인 LBA의 주소변환을 수행하는 단계; d) 상기 LBA가 소속된 버켓의 전체 페이지를 선 반입하는 단계;로 이루어진 것을 특징으로 한다.In addition, a preloading method for a flash translation layer according to an aspect of the present invention for achieving the above object comprises the steps of: a) storing a contiguous LBA and its corresponding PBAs in the same bucket as a clustered hash table; b) accepting a read request for an LBA in the bucket; c) performing address translation of consecutive LBAs based on the continuity flag mounted as a coarse-grained clustered hash table; d) pre-loading the entire page of the bucket to which the LBA belongs.

구체적으로, 상기 c) 단계는, c-1) 상기 1단계 Fine-grained 군집형 해시 테이블을 검색하여 매칭되는 PBA가 존재할 경우 주소 변환을 종료하는 단계; c-2) 상기 1단계 Fine-grained 군집형 해시 테이블에서 검색에 실패했을 경우, 상기 2단계 Fine-grained 군집형 해시 테이블을 검색하여 매칭되는 PBA가 존재할 경우 주소 변환을 종료하는 단계; 및 c-3) 상기 2단계 Fine-grained 군집형 해시 테이블에서도 검색에 실패 한 경우, 상기 Coarse-grained 군집형 해시 테이블에서 매칭되는 주소 변환 정보를 찾는 단계;로 이루어진 것을 특징으로 한다.Specifically, step c) may include c-1) searching for the first fine-grained clustered hash table and ending address translation when there is a matching PBA; c-2) searching for the second fine-grained clustered hash table if the search fails in the first fine-grained clustered hash table, and ending address translation when there is a matching PBA; And c-3) searching for matching address translation information in the coarse-grained clustered hash table when the search fails in the second fine-grained clustered hash table.

한편, 상기 목적을 달성하기 위한 본 발명의 관점에 따른 플래시 변환 계층을 위한 선반입 방법을 기반으로 한 비동기 쓰기 방법은, a) 임의의 정보가 저장되는 예측 테이블을 생성하는 단계; b) 반복적으로 저장되는 LBA가 포함된 VBA를 상기 예측 테이블에 추가하는 단계; c) 동일한 VBA로 소속된 LBA에 쓰기 요청이 들어올 때마다, 쓰기 요청 회수에 비례하여 상기 예측 테이블로 저장되는 예측 비트를 갱신하는 단계; d) 상기 예측 비트가 기 설정된 값으로 갱신될 경우, 상기 VBA를 예약 버퍼에 저장하는 단계; 및 e) 상기 예약 버퍼가 포화될 경우, 상기 예약 버퍼 로 탑재된 최신 데이터만 플래시 메모리로 적재하는 단계;로 이루어진 것을 특징으로 한다.On the other hand, the asynchronous write method based on a pre-write method for a flash translation layer according to an aspect of the present invention for achieving the above object, a) generating a prediction table in which any information is stored; b) adding a VBA containing a repeatedly stored LBA to the prediction table; c) updating a prediction bit stored in the prediction table in proportion to the number of write requests, each time a write request enters an LBA belonging to the same VBA; d) storing the VBA in a reservation buffer when the prediction bit is updated to a preset value; And e) loading only the latest data loaded into the reservation buffer into the flash memory when the reservation buffer is saturated.

본 발명에 따른 플래시 변환 계층을 위한 선반입 및 비동기 쓰기 방법은, 플래시 메모리에 적합한 FTL에 대한 실질적인 알고리즘 구현 및 정책을 제시함으로써, 유관분야의 연구를 선도하고 후속 연구의 활성화에 기여할 수 있는 효과가 있다.The write-in and asynchronous write method for the flash translation layer according to the present invention has the effect of leading the research in related fields and contributing to the activation of subsequent studies by suggesting practical algorithm implementation and policy for FTL suitable for flash memory. have.

또한 본 발명은, NAND 플래시 메모리 관련 소프트웨어에 관한 기술 연구개발로 세계적인 메모리 반도체 분야에서 독보적인 위치를 유지할 수 있으며, 나아가 NVRAM(Non Volatile Random Access Memory)과 같은 향후 차세대 비휘발성 메모리에도 충분히 적용할 수 있어, 매출 증가와 독점 기술확보로 세계적인 경쟁력을 갖출 수 있는 효과가 있다.In addition, the present invention can maintain a unique position in the global memory semiconductor field through technology research and development on software related to NAND flash memory, and furthermore, it can be sufficiently applied to future next-generation nonvolatile memory such as nonvolatile random access memory (NVRAM). As a result, the company can achieve global competitiveness by increasing sales and securing proprietary technology.

이하, 본 발명을 첨부된 예시도면에 의거 상세히 설명하면 다음과 같다.Hereinafter, the present invention will be described in detail with reference to the accompanying drawings.

먼저, 발명에서 개시되는 주소변환 테이블 기법은 일반 해시 테이블 보다 메모리 사용량이 적고 대용량 주소 변환에 적합한 Clustered Hash Table을 사용하는 것으로, 이하 CFTL(Clustered Flash Translation Layer) 방식이라 지칭한다. 본 발명에 따른 CFTL 방식은 블록, 페이지 단위의 주소 변환 테이블 기법을 혼용하면서 Fine-grained Clustered Hash Table을 2단계로 설계하여 미스 페널티를 감소시켜, 주소 변환 속도를 향상시킨다. 또한 Continuity Flag와 Prefetch를 통해 연속적인 주소 변환 성능을 향상시키고 2-bit access prediction기법을 이용한 쓰기 지연을 통해 플래시 메모리의 수명 및 성능을 향상시킨다.First, the address translation table technique disclosed in the present invention uses a clustered hash table that is less memory-intensive than a general hash table and is suitable for large-capacity address translation. Hereinafter, the address translation table scheme is referred to as a clustered flash translation layer (CFTL) method. In the CFTL method according to the present invention, a fine-grained clustered hash table is designed in two stages while using a block and page address translation table technique to reduce miss penalty, thereby improving address translation speed. It also improves continuous address translation performance with Continuity Flag and Prefetch and improves flash memory life and performance through write delay using 2-bit access prediction.

그러면, 전술된 플래시 변환 계층을 위한 선반입 절차를 설명한다. 도 3은 플래시 변환 계층을 위한 선반입 절차로 적용되는 CFTL 방식의 주소변환 테이블 기법을 나타낸 도면이고, 도 4는 상기 CFTL 방식을 이용한 플래시 변환 계층을 위한 선반입 절차를 도시한 흐름도이다.Next, the prefetching procedure for the above-described flash translation layer will be described. FIG. 3 is a diagram illustrating an address translation table technique of a CFTL method applied as a prefetching procedure for a flash translation layer, and FIG. 4 is a flowchart illustrating a prefetching procedure for a flash translation layer using the CFTL method.

도시된 바와 같이, 군집형 해시 테이블은 선형 테이블 기법과 해시 테이블을 혼용하여, 유사한 주소들을 동일한 버켓(Bucket)에 그룹화하는 1단계 Fine-Grained 군집형 해시 테이블과, TLB(Translation Lookaside Buffer)와 같은 캐시를 차용하여, 미스 페널티를 최소화하고 상대적으로 주소변환 오버헤드가 큰 Coarse-grained 군집형 해시 테이블의 접근 빈도를 감소시키는 2단계 Fine-grained 군집형 해시 테이블 및, 연속성 플래그를 사용하여 연속적인 LBA(Logical Block Address)의 주소변환 요청 시 주소 변환 부담을 줄이는 Coarse-grained 군집형 해시 테이블로 구성된다.As shown, a clustered hash table is a combination of a linear table technique and a hash table, such as a one-step fine-grained clustered hash table that groups similar addresses into the same bucket, and a translation lookaside buffer (TLB). Borrowing a cache, a two-stage fine-grained clustered hash table that minimizes miss penalties and reduces the frequency of access to coarse-grained clustered hash tables with relatively high address translation overhead, and continuous LBA with continuity flags. It consists of coarse-grained clustered hash table that reduces the address translation burden when requesting address of (Logical Block Address).

이와 같은 구성을 토대로 주소 변환 요청 시, 상기 Fine-grained 군집형 해시 테이블에 요청된 LBA가 존재할 경우 그 LBA가 소속된 버켓의 전체 페이지를 미리 선반입하여 주소 변환을 수행함으로써, 주소변환 성능을 향상시킨다. Based on this configuration, when the requested LBA exists in the fine-grained clustered hash table, address translation is performed by pre-loading all pages of the bucket to which the LBA belongs, thereby performing address translation performance. Let's do it.

여기서, 상기 1단계 Fine-Grained 군집형 해시 테이블은 군집형 해시 테이블 은 선형 테이블 기법과 해시 테이블을 혼용하는 기법으로 메모리 사용량이 기존 해시 테이블보다 적고, 유사한 주소들을 동일한 버켓(Bucket)에 그룹화하므로 지역성 확보가 가능할 것이다.Here, the first-level fine-grained clustered hash table is a clustered hash table that uses a combination of a linear table technique and a hash table. The memory usage is less than that of the existing hash table, and similar addresses are grouped in the same bucket. It can be secured.

따라서, 특정 LBA의 주소변환 요청이 호스트로부터 들어오면 가장 먼저 1단계 Fine-grained 군집형 해시 테이블을 검색하고 매칭되는 PBA를 찾으면 주소 변환은 종료되며, 상기 1단계 Fine-grained 군집형 해시 테이블에서 검색에 실패했을 경우, 2단계 Fine-grained 군집형 해시 테이블을 검색하여 매칭되는 PBA를 찾으면 주소 변환은 종료된다.Therefore, when an address translation request of a specific LBA comes in from the host, the first step is to search the first-level fine-grained clustered hash table, and if a matching PBA is found, the address translation is terminated, and the first-level fine-grained clustered hash table is searched. If it fails, address translation is terminated by searching the second-level fine-grained clustered hash table to find a matching PBA.

반면, 상기 2단계 Fine-grained 군집형 해시 테이블에서도 검색에 실패 한 경우 최종적으로 Coarse-grained 군집형 해시 테이블에서 매칭되는 주소 변환 정보를 찾는다. Coarse-grained 군집형 해시 테이블은 NFTL과 동일하게 우선 LBA를 VBA와 오프셋으로 변환한다. 이렇게 구해진 VBA를 해싱하여 PPBA(Primary Physical Block Address)와 RPBA(Replacement Physical Block Address)의 주소가 저장 되어 있는 버켓을 찾는다. 그리고 매칭된 PPBA와 오프셋에 있는 페이지 데이터가 유효하지 않을 경우 RPBA를 순차적으로 검색하여 해당 물리 주소를 찾게 된다.On the other hand, if the search fails even in the second-level fine-grained clustered hash table, address matching information is finally found in the coarse-grained clustered hash table. Coarse-grained clustered hash tables, like NFTL, first convert LBAs to VBAs and offsets. Hashing the obtained VBA to find the bucket that stores the address of the PPBA (Primary Physical Block Address) and RPBA (Replacement Physical Block Address). If the page data at the matched PPBA and offset is not valid, the RPBA is sequentially searched to find the corresponding physical address.

또한, 전술된 2단계 fine-grained 군집형 해시 테이블은 Coarse-to-Fine 또는 Fine-to-Coarse간의 이동이 필요하며, 이를 위한 정책으로, 승급정책 및 강등정책이 적용된다. 즉, Coarse-to-fine으로 이동하는 경우, 특정 LBA에 잦은 접근으로 인해 접근 빈도가 일정횟수만큼 증가하면 처음에는 2단계 fine-grained 군집형 해시 테이블로 승급되는 승급정책이 적용되거나, NUR 기법을 통해 일정 시간 동안 접 근이 되지 않을 시 Fine-grained 군집형 해시 테이블에서 Coarse-grained 군집형 해시 테이블로 강등되는 강등 정책이 적용될 수 있다. 한편, 상기 승급정책이 실행된 후, 접근 빈도는 초기화되며, 상기한 1단계 fine-grained 군집형 해시 테이블에서도 이러한 정책은 동일하게 적용된다. In addition, the aforementioned two-stage fine-grained clustered hash table requires movement between Coarse-to-Fine or Fine-to-Coarse, and as a policy for this, promotion and demotion policies are applied. In other words, when moving to coarse-to-fine, if the frequency of access increases a certain number of times due to frequent access to a specific LBA, a promotion policy is first applied to a two-stage fine-grained clustered hash table, or NUR technique is used. This allows a demotion policy to demote from a fine-grained clustered hash table to a coarse-grained clustered hash table if there is no access for some time. On the other hand, after the promotion policy is executed, the access frequency is initialized, and the policy is equally applied to the first-level fine-grained clustered hash table.

따라서, 2단계 fine-grained 군집형 해시 테이블을 이용해 미스 페널티를 감소시키며 Coarse-grained 군집형 해시 테이블의 접근 빈도를 낮출 수 있으며, 주소 변환 대부분이 Fine-grained 군집형 해시 테이블에서 이뤄지므로 주소 변환 시간을 줄일 수 있다.Therefore, a two-stage fine-grained clustered hash table can be used to reduce miss penalties, reduce the frequency of access to coarse-grained clustered hash tables, and address translation time because most of the address translation is done in fine-grained clustered hash tables. Can be reduced.

상기한 NUR 기법은 수정 비트라는 비트 벡터를 사용하여 시스템에서 정해진 주기마다 비트에 따라 최근에 사용하지 않는 슬롯들을 분별할 수 있는 방법이다. 따라서, 두 개의 비트를 통해 참조된 상황과 수정이 되었는지를 판단하여 표 1과 같이 Fine-to-Coarse 교체 기법에 적용된다.The NUR technique is a method that can identify slots that are not used recently according to bits at predetermined periods in the system by using a bit vector called a modified bit. Therefore, it is applied to the fine-to-coarse replacement technique as shown in Table 1 by determining whether the situation is referenced through the two bits and whether the modification has been made.

참조 비트Reference bits 수정 비트Fix bit 정책Policy 00 00 Coarse로 강등Demote to Coarse 00 1One 상태 유지Keep state 1One 00 상태 유지Keep state 1One 1One 상태 유지Keep state

즉, 표 1과 같이, 특정 주소의 NUR의 참조, 수정 비트가 모두 0인 경우는 그 주소는 사용되지 않는 것으로 보고, 상기 Fine-grained 군집형 해시 테이블에서 Coarse-grained 군집형 해시 테이블로 이동 시키고 Fine-grained 군집형 해시 테이블의 슬롯을 삭제한다.That is, as shown in Table 1, when the NUR reference and modification bits of a specific address are all 0, the address is not used, and it is moved from the fine-grained clustered hash table to the coarse-grained clustered hash table. Delete slots from fine-grained clustered hash tables.

그러면, 도 4에 도시된 군집형 해시 테이블의 특정 버켓의 서브블록들이 가리키고 있는 PBA의 페이지들을 선 반입하는 방식을 설명하면 다음과 같다.Next, a method of prefetching pages of PBAs indicated by subblocks of a specific bucket of the clustered hash table illustrated in FIG. 4 will be described.

먼저 일반적으로 사용되는 방식 즉, FTL에 의해 LBA 요청할 때마다 주소를 변환하고 데이터를 전송하는 것과는 달리, 본 발명에 따른 연속적인 페이지를 위한 선반입 기법은 Fine-grained 군집형 해시 테이블에서 하나의 버켓 내에 연속된 LBA를 갖는 페이지를 선반입하는 것이다.First of all, unlike the commonly used method, that is, address translation and data transfer for each LBA request by FTL, the prefetching technique for successive pages according to the present invention is a bucket in a fine-grained clustered hash table. It is to fetch pages with consecutive LBAs in them.

즉, 주소 변환 기법에서 사용되는 자료구조인 군집형 해시 테이블에서는 동일한 버켓 안에 연속된 LBA들과 이에 대응하는 PBA들을 저장하는 것으로, 특정 버켓의 LBA에 대한 읽기 요청 시 인접한 서브블록들의 물리 페이지들을 선 반입 할 수 있는 것이다. 따라서, 반복적인 메모리 적재 및 플래시 메모리에 명령어를 매 시간마다 내리는 것을 방지할 뿐만 아니라, 다수의 페이지를 선반입하므로 다음 읽기 수행 시에 읽기 동작의 속도를 단축하게 된다.In other words, the clustered hash table, which is a data structure used in the address translation scheme, stores contiguous LBAs and corresponding PBAs in the same bucket, and selects physical pages of adjacent subblocks when a read request for an LBA of a specific bucket is made. It can be brought in. Thus, not only does it prevent repetitive memory loading and issuance of instructions to the flash memory every hour, but also a plurality of pages are loaded, thereby reducing the speed of a read operation at the next read.

상기한 군집형 해시 테이블은 CFTL에서 사용하는 주소 변환 자료구조이며 썬마이크로시스템즈 사의 64비트 운영체제인 솔라리스의 가상 메모리 페이지 기법에서 처음 사용하던 자료구조로서, 서브블록의 집합인 버켓으로 구성된다. 여기서, 하나의 버켓의 서브블록의 개수를 서브블록 팩터(Subblock factor)라 하며, 일반적인 해시 테이블과 달리 하나의 버켓에 여러 개의 서브블록이 존재하므로 주소당 포인터의 메모리 사용량을 1/(서브블록 팩터) 만큼 줄일 수 있는 특징을 갖고 있다.The clustered hash table is an address translation data structure used in CFTL, and is a data structure first used in the virtual memory page technique of Solaris, which is a 64-bit operating system of Sun Microsystems, and consists of a bucket, which is a set of subblocks. Here, the number of subblocks in one bucket is called a subblock factor. Unlike a general hash table, since there are several subblocks in one bucket, the memory usage of a pointer per address is 1 / (subblock factor). It can be reduced by).

따라서, 연속적이면서 동시에 사용하는 데이터들이 한 버켓의 서브 블록들에 연속적으로 저장되므로 주소 변환 테이블 내에서 지역성을 유지하는데 매우 유용하며, 본 발명에서의 주소변환 자료구조로 적용된다.Therefore, since data that is used continuously and simultaneously is continuously stored in sub-blocks of one bucket, it is very useful for maintaining locality in the address translation table, and is applied to the address translation data structure in the present invention.

한편, 본 발명에서 전술된 Coarse-grained 군집형 해시 테이블의 각 버켓의 서브블록마다 연속성 플래그를 추가하고 있는데, VBA(Virtual Block Address)와 PBA(Physical Block Address)가 함께 연속적인 경우 연속적인 블록의 개수가 상기 연속성 플래그의 값에 기입된다. 이를 통해 주소변환 메커니즘을 다시 반복하지 않고도 PBA를 획득할 뿐만 아니라, 주소 변환을 가능하게 한다. 결국, 상기 Fine-grained 군집형 해시 테이블은 접근 빈도가 높은 LBA를 독립적인 테이블로 구성하므로 주소 검색 시간을 감소시켜 주소 변환 성능을 향상시키며, 해당 버켓의 서브블록들이 가리키는 PBA의 데이터를 미리 주 메모리에 선반입하여 주소 변환 성능을 향상시킨다.Meanwhile, in the present invention, a continuity flag is added to each subblock of each bucket of the coarse-grained clustered hash table described above. When the VBA and the PBA are contiguous together, the continuity flag is added. The number is written to the value of the continuity flag. This allows for address translation as well as acquiring PBA without having to repeat the address translation mechanism again. As a result, since the fine-grained clustered hash table is composed of LBAs with high access frequency as independent tables, address retrieval time is improved to improve address translation performance, and the PBA data pointed to by the subblocks of the bucket is pre-main memory. Improves address translation performance.

여기서, 전술된 연속성 플래그 즉, 연속적인 LBA의 주소변환 요청 시 주소변환 방법으로 적용되는 연속성 플래그는 도 3의 Coarse-grained 군집형 해시 테이블 내에 도시된 서브블록들에 저장되는 'C' 값이다. 연속적인 VBA와 함께 물리블록 또한 연속적인 경우 연속성 플래그인 C에 연속적인 블록의 개수를 기입하는데 사용되며, 이를 통해 주소변환 메커니즘을 다시 반복하지 않고도 주소 변환이 가능하다. 예컨대, VBA가 128, PPBA가 386, 연속성 플래그가 8일 경우 VBA의 증가 값이 8 이하인 경우 주소 변환 없이 PPBA의 값을 얻을 수 있는 것이다.Here, the continuity flag described above, that is, the continuity flag applied to the address translation method when the address of the continuous LBA is requested is a 'C' value stored in the subblocks shown in the coarse-grained clustered hash table of FIG. 3. Along with the contiguous VBA, the physical block is also used to write the number of contiguous blocks in C, the continuity flag in the contiguous case, which enables address translation without repeating the address translation mechanism again. For example, if the VBA is 128, the PPBA is 386, and the continuity flag is 8, the increment value of VBA is 8 or less.

도 7은 본 발명에 따른 CFTL의 성능을 비교한 그래프이다. CFTL의 환경은 리눅스 2.6.17의 MTD(Memory Technology Device) 를 사용하여 실험하였으며, 성능 평가를 위해 1단계 Fine-grained 군집형 해시 테이블, 2단계 fine-grained 군집형 해시 테이블의 슬롯의 비율은 1:4로 할당하였다. 예를 들어 MSFS(Maximum Short Fine-grained Slot)가 1000개일 경우, MLFS(Maximum Long Fine-grained Slot)의 개수는 4000개를 갖는 것을 의미한다. 실험을 위해 군집형 해시 테이블의 서브블록 팩터, 즉 서브블록의 개수를 8로 설정하고 MSFS는 2500, MLFS는 10,000으로 설정했다. 2비트 쓰기 예측 기법 예측테이블의 슬롯 수는 1024, 2048, 4096개로 설정하였다.7 is a graph comparing the performance of the CFTL according to the present invention. The CFTL environment was tested using the Linux 2.6.17 MTD (Memory Technology Device). For the performance evaluation, the ratio of slots in the first stage fine-grained clustered hash table and the second stage fine-grained clustered hash table is 1 Assigned to: 4. For example, if the number of Maximum Short Fine-Grained Slots (MSFS) is 1000, this means that the number of Maximum Long Fine-Grained Slots (MLFS) is 4000. For the experiment, the subblock factor of the clustered hash table, that is, the number of subblocks is set to 8, the MSFS is set to 2500, and the MLFS is set to 10,000. 2-bit write prediction scheme The number of slots in the prediction table is set to 1024, 2048, 4096.

여기서, 주소 변환 시간 및 FTL의 전체적인 성능을 측정하기 위해 저장장치 성능평가로 방식으로 잘 알려진 앤드류 벤치마크를 사용했다. 앤드류 벤치마크는 1) 디렉터리 생성, 2) 데이터 복사, 3) 재귀적인 파일 검색, 4) 파일 접근, 5) 컴파일과 같이 5단계로 분류된다. 이러한 테스트는 저장장치에서 읽기/쓰기의 성능을 확인하는데 효과적이다. 도시된 바와 같이 10회의 값을 평균을 낸 결과 CFTL의 주소 변환 속도가 NFTL보다 약 13% 빠르고 AFTL보다 약 8% 빠른 것으로 나타났다. 또한 추가적으로 연속성 플래그와 선반입 기법을 적용한 경우 연속적인 주소에 관한 예측으로 인해 NFTL보다 17%이상의 성능이 향상되고 AFTL보다 11% 이상 성능 향상되었다.Here, we used the Andrew benchmark, which is a well-known way of evaluating storage performance, to measure address translation time and overall performance of the FTL. Andrew benchmarks fall into five stages: 1) directory creation, 2) data copying, 3) recursive file search, 4) file access, and 5) compilation. These tests are useful for verifying read / write performance on storage devices. As shown, averaging 10 values shows that CFTL's address translation speed is about 13% faster than NFTL and about 8% faster than AFTL. In addition, the application of continuity flags and prefetching techniques resulted in more than 17% better performance than NFTL and 11% better than AFTL due to the prediction of consecutive addresses.

더구나, CFTL의 주소변환 테이블의 크기를 비교할 경우, 주소변환 테이블 메모리의 사용량이 감소됨을 알 수 있다. 이는 표 2에 도시한 바와 같이 NFTL과 AFTL 그리고 서브블록 팩터가 8인 CFTL의 주소 변환 테이블의 크기를 비교할 경우 CFTL이 AFTL보다 주소 변환 테이블 메모리 사용량을 최대 43% 이상 감소되고 있음을 인지할 수 있다. 또한 CFTL의 서브블록 팩터를 32로 설정할 경우 메모리 사용량이 최대 65%까지 절약할 수 있음을 나타낸다.Moreover, when comparing the size of the CFTL address translation table, it can be seen that the memory usage of the address translation table is reduced. As shown in Table 2, when comparing the size of the address translation table of NFTL, AFTL, and CFTL with subblock factor of 8, it can be seen that CFTL reduces the address translation table memory usage by up to 43% or more than AFTL. . In addition, setting the CFTL subblock factor to 32 indicates that memory usage can be saved up to 65%.

MFSMFS NFTLNFTL AFTLAFTL CFTLCFTL 500 + 2,000500 + 2,000 64.0KB64.0 KB 201.8KB201.8 KB 78.1KB78.1 KB 1,000 + 4,0001,000 + 4,000 64.0KB64.0 KB 211.5KB211.5 KB 84.2KB84.2KB 1,500 + 6,0001,500 + 6,000 64.0KB64.0 KB 221.3KB221.3 KB 90.3KB90.3 KB 2,000 + 8,0002,000 + 8,000 64.0KB64.0 KB 231.1KB231.1 KB 96.4KB96.4 KB 2,500 + 10,0002,500 + 10,000 64.0KB64.0 KB 240.8KB240.8 KB 102.5KB102.5 KB 3,000 + 12,0003,000 + 12,000 64.0KB64.0 KB 250.6KB250.6 KB 108.6KB108.6KB

한편, 본 발명은 PBA의 데이터를 미리 주 메모리에 선반입하여 주소 변환을 수행함에 있어, 자주 갱신되는 데이터를 플래시 메모리에 바로 저장하지 않고 쓰기 버퍼를 이용하여 먼저 저장한다. 이는 플래시 메모리의 수명을 늘리기 위한 것으로, 반복적인 쓰기 동작을 최소화하기 위한 수단이다. 본 발명에서는 이러한 쓰기 방법을 '2비트 쓰기 예측'이라 칭할 것이다.Meanwhile, in the present invention, when the PBA data is pre-loaded into the main memory to perform address translation, the frequently updated data is first stored using the write buffer instead of directly stored in the flash memory. This is to extend the life of the flash memory and to minimize repetitive write operations. In the present invention, this writing method will be referred to as '2-bit write prediction'.

상기 2비트 쓰기 예측은 예측을 위한 상태를 4가지로 분류한다. 도 5는 2비트 쓰기 예측 기법을 설명하기 위한 도면이며, 도 6은 도 5를 이용한 비동기 쓰기방법을 설명하기 위한 도면이다. 이를 참조하여 설명하면 다음과 같다.The 2-bit write prediction classifies four states for prediction. FIG. 5 is a diagram for describing a 2-bit write prediction technique, and FIG. 6 is a diagram for explaining an asynchronous writing method using FIG. 5. This will be described with reference to the following.

먼저, 반복적으로 저장되는 LBA를 포함하는 VBA를 예측 테이블에 추가하고 그 후 동일한 VBA에 소속된 LBA에 쓰기 요청이 들어올 때마다 예측 비트가 갱신된다. 예측 비트가 10, 11인 경우 자주 갱신되는 VBA로 판단하고 RAM의 예약 버퍼에 갱신된 페이지를 적재한다.First, the VBA including the repeatedly stored LBA is added to the prediction table, and then the prediction bit is updated whenever a write request is made to an LBA belonging to the same VBA. If the prediction bits are 10 or 11, it is determined that the VBA is frequently updated, and the updated page is loaded into the reserved buffer of RAM.

차후 예측 비트가 00, 01로 변하는 경우 예약 버퍼에 있는 데이터의 최신 데이터만을 플래시 메모리에 저장한다. 2비트 쓰기 예측 기법을 적용했을 경우, 쓰기 요청이 들어오는 순서에 따라 예측 테이블을 갱신한다. 2개의 비트로 4가지 상태를 표현하고 비트가 10, 11인 Predict written 상태로 판단되는 VBA(Virtual Block Address)를 예약 버퍼에 저장하고 있다가 예약 버퍼가 가득 차거나 예측 비트가 00, 01인 Predict not written 상태인 경우 예약 버퍼의 최신 데이터만 합병하여 이를 플래시 메모리에 적재한다. 이러한 쓰기 지연 기법은 플래시 메모리에 쓰기 횟수를 감소시켜 플래시 메모리의 수명을 향상시킬 수 있으며 데이터의 지역성을 유지하는데도 많은 효과를 갖는다.When the prediction bit is changed to 00, 01, only the latest data of the data in the reservation buffer is stored in the flash memory. When the 2-bit write prediction technique is applied, the prediction table is updated in the order in which write requests are received. Represents four states with two bits and stores the VBA (Virtual Block Address), which is determined to be a Predict written state with bits 10 and 11, in the reservation buffer, and then the Predict not written with the reservation buffer full or with prediction bits 00 and 01. In the state, only the latest data in the reservation buffer is merged and loaded into the flash memory. This write delay technique can improve the lifespan of flash memory by reducing the number of writes to flash memory and has a great effect on maintaining the locality of data.

도 8 내지, 도 10은 전술된 2비트 쓰기 예측 기법에 의한 플래시 메모리의 수명을 나타낸 그래프이다. 본 발명에 따른 실험에서는 2비트 쓰기 예측 기법과 쓰기 버퍼를 이용한 플래시 메모리 쓰기 횟수 감소에 주안점을 두었다. 쓰기 횟수 감소는 두 가지 장점을 가지고 온다.8 to 10 are graphs showing the lifespan of a flash memory according to the 2-bit write prediction technique described above. In the experiments according to the present invention, the focus was on reducing the number of flash memory writes using the 2-bit write prediction technique and the write buffer. Reducing the number of writes has two advantages.

첫째 플래시 메모리의 수명의 척도인 마모도 감소를 가지고 오며, 둘째 쓰기 횟수 감소로 인해 쓰기와 함께 실행되는 블록 수거 기법의 실행 횟수를 같이 감소시킨다. 그러므로 2비트 쓰기 예측 기법은 매우 효율적으로 메모리 수명 및 성능을 향상시킬 수 있다. 도 8은 기존 파일들을 삭제하고 덮어쓰기에 중점을 둔 실험 결과를 나타낸다. 마지막으로, 도 9는 존재하는 파일에 데이터를 반복적으로 추가하는 실험 결과를 나타낸다.First, it has a reduction in wear, a measure of the lifetime of flash memory, and a second decrease in the number of executions of the block collection technique that executes with writes due to the decrease in the number of writes. Therefore, 2-bit write prediction techniques can improve memory life and performance very efficiently. 8 shows the results of experiments focused on deleting and overwriting existing files. Finally, FIG. 9 shows the results of experiments of repeatedly adding data to an existing file.

상기한 앤드류 벤치마크의 경우 다양한 파일 접근 패턴을 가지므로 2비트 쓰기 예측 기법이 적용되는 쓰기 영향을 많이 받지 않는 것을 알 수 있다. 하지만 덮어쓰기(Overwrite)와 추가 갱신(Append)에서는 2비트 쓰기 예측 기법 표의 크기와 비례하여 쓰기 횟수가 감소하며 예측 테이블의 슬롯이 4096개인 CFTL이 NFTL과 AFTL보다 쓰기 횟수를 최대 60%이상 감소시켰다.In the case of the Andrew benchmark described above, since the file access patterns have various file access patterns, they are not affected by the write applied by the 2-bit write prediction technique. However, in overwrite and append, the number of writes decreases in proportion to the size of the 2-bit write prediction table, and CFTL with 4096 slots in the prediction table reduces the number of writes by up to 60% over NFTL and AFTL. .

도 10은 기존 NFTL, AFTL과 2비트 쓰기 예측 기법을 사용한 CFTL의 쓰기 시간을 각각 앤드류 벤치마크, 갱신, 테스트에 따라 측정한 것이다. 그 결과 CFTL이 NFTL, AFTL 보다 쓰기 시간이 앤드류 벤치마크에서 약 10% 이상, 덮어쓰기, 덧붙이기 동작 벤치마크에서 약 30% 이상 감소했다. 또한 단축된 결과는 블록 수거 기법의 오버헤드를 감소시키는데 사용할 수 있음을 증명하고 있다.FIG. 10 shows the write time of CFTL using the existing NFTL, AFTL, and 2-bit write prediction techniques according to Andrew benchmark, update, and test, respectively. As a result, CFTL reduced write time by more than 10% in the Andrew benchmark and over 30% in the overwrite and append operation benchmarks compared to NFTL and AFTL. The shortened results also demonstrate that it can be used to reduce the overhead of block collection techniques.

여기서, 본 발명에 따른 2비트 쓰기 예측 기법에서 사용하는 메모리의 사용량을 살펴 보면, 표 3과 같이 예측 테이블의 슬롯의 개수가 각각 1024, 2048, 4096개인 경우 표의 사이즈는 8KB, 16KB, 32KB까지 증가하고, 쓰기 버퍼가 사용하는 메모리 사용량은 각각 512KB, 1MB, 2MB으로 증가하고 있다.Here, looking at the memory usage used in the 2-bit write prediction scheme according to the present invention, when the number of slots in the prediction table is 1024, 2048, 4096, respectively, as shown in Table 3, the size of the table increases to 8KB, 16KB, 32KB. The memory usage used by the write buffer is increasing to 512 KB, 1 MB, and 2 MB, respectively.

슬롯 수Number of slots 메모리 사용량Memory usage 쓰기 버퍼 크기Write buffer size 10241024 8KB8 KB 512KB512 KB 20482048 16KB16 KB 1MB1 MB 40964096 32KB32 KB 2MB2 MB

결과적으로, 본 발명에 따른 2비트 쓰기 예측 기법을 이용한 비동기 쓰기 기법을 통해, 선반입과 비동기 쓰기 기법이 주소 변환 성능에서 기존 NFTL보다 17% 빠르고, 쓰기 성능에서도 약 30%이상 향상됨을 증명하고 있다. As a result, through the asynchronous write method using the 2-bit write prediction method according to the present invention, it is proved that the prewrite and asynchronous write methods are 17% faster than the existing NFTL in address translation performance and about 30% improved in the write performance. .

전술된 바와 같이, 본 발명은 NAND 플래시 메모리가 필요한 모든 분야에 적 용 가능하므로, 국내의 업체의 NAND 플래시의 기술을 지원하는 핵심 기술로 기업화가 가능할 것이다. 근래에는, 모바일 핸드셋, MP3 디바이스/퍼스널 미디어 플레이어, 디지털 카메라, USB 플래시 드라이브와 같은 주요 제품에서의 수요가 크게 증가하고 있기 때문에, NAND 플래시 메모리의 성장률은 2008년에 130%에서 140% 성장할 것으로 전망되고 있으며, 대부분의 공급 업체들은 제조 생산량을 늘리는 동시에 노드 공정 이전을 공격적으로 추진하고 있어 2008년 하반기에는 수요와 공급이 균형을 이룰 것으로 전망된다.As described above, the present invention can be applied to all fields that require NAND flash memory, it will be possible to commercialize as a core technology that supports the technology of NAND flash of domestic companies. In recent years, growth in NAND flash memory is expected to grow from 130% to 140% in 2008, as demand from major products such as mobile handsets, MP3 devices / personal media players, digital cameras, and USB flash drives is growing significantly. Most suppliers are aggressively pursuing the transfer of node processes while increasing manufacturing output, which is expected to balance supply and demand in 2H08.

또한 모바일 핸드셋 제조업체들의 수요는 전년에 비해 10% 가량 증가하여 12억 3,000만 달러에 이를 것으로 전망된다. 차세대 주요 분야는 MP3/PMP 디바이스가 될 것으로 20% 가량 성장한 2억만 달러에 이를 것이며, USB 플래시 드라이브가 매년 25% 가량 성장하여 1억 7,000만 달러로 그 뒤를 차지할 것으로 보인다. 디지털 카메라 시장 성장은 올 해 14% 1억 3,000만 달러 매출을 달성할 것으로 기대된다.In addition, demand for mobile handset manufacturers is expected to grow 10 percent year-over-year to $ 1.23 billion. The next major area of growth will be MP3 / PMP devices, which will grow by 20% to $ 200 million, followed by USB flash drives by 25% annually, to $ 170 million. Digital camera market growth is expected to reach 14% to $ 130 million this year.

최근에 삼성전자, 하이닉스 등 NAND 플래시 메모리 제조 업체 및 휴대용 저장장치 제조 업체에서는 플래시 메모리 소프트웨어의 성능을 향상시켜 높은 품질의 하드웨어를 내놓기 위해 플래시 메모리 소프트웨어의 관심이 높아지고 있으므로 제조업체의 연구그룹의 규모가 커질 것으로 예상 된다. 따라서, 본 발명에 따른 NAND 메모리의 관리 방안은 산업적 이용 가치가 극히 높을 것으로 판단된다.Recently, NAND flash memory manufacturers and portable storage device manufacturers, such as Samsung Electronics and Hynix, have been increasing interest in flash memory software to improve the performance of flash memory software and release high quality hardware. It is expected. Therefore, it is determined that the industrial utilization value of the NAND memory management method according to the present invention is extremely high.

도 1 및 도 2는 종래 주소변환 기법을 설명하기 위한 도면이다.1 and 2 are diagrams for explaining a conventional address translation technique.

도 3은 본 발명에 따른 플래시 변환 계층을 위한 선반입 절차로 적용되는 CFTL 방식의 주소변환 테이블 기법을 나타낸 도면이다.3 is a diagram illustrating an address translation table scheme of a CFTL method applied as a prefetching procedure for a flash translation layer according to the present invention.

도 4는 도 3의 CFTL 방식을 이용한 플래시 변환 계층을 위한 선반입 절차를 도시한 흐름도이다.FIG. 4 is a flowchart illustrating a preloading procedure for a flash translation layer using the CFTL method of FIG. 3.

도 5는 본 발명으로 적용되는 2비트 쓰기 예측 기법을 설명하기 위한 도면이다.5 is a diagram for describing a 2-bit write prediction technique applied to the present invention.

도 6은 도 5를 이용한 비동기 쓰기 방법을 설명하기 위한 도면이다.FIG. 6 is a diagram for describing an asynchronous writing method using FIG. 5.

도 7은 본 발명에 따른 CFTL의 성능을 비교한 그래프이다.7 is a graph comparing the performance of the CFTL according to the present invention.

도 8 내지, 도 10은 전술된 2비트 쓰기 예측 기법에 의한 플래시 메모리의 수명을 나타낸 그래프이다.8 to 10 are graphs showing the lifespan of a flash memory according to the 2-bit write prediction technique described above.

Claims (10)

1단계 Fine-Grained 군집형 해시 테이블, 2단계 Fine-grained 군집형 해시 테이블 및 Coarse-grained 군집형 해시 테이블로 구성된 플래시 변환 계층(FTL) 구조에 있어서,In a flash translation hierarchy (FTL) structure consisting of a first-level fine-grained clustered hash table, a second-level fine-grained clustered hash table, and a coarse-grained clustered hash table, 상기 Coarse-grained 군집형 해시 테이블로 연속적인 물리 주소(PBA:Physical Block Address)에 관한 정보를 저장하고, 상기 물리 주소에 관한 정보를 기반으로 연속적인 LBA(Local Block Address)의 주소변환 요청에 따른 반복적인 주소변환 메카니즘을 최소화하기 위한 연속성 플래그가 포함되는 것을 특징으로 하는 플래시 변환 계층 구조.Stores information about consecutive physical block addresses (PBAs) as the coarse-grained clustered hash table, and based on the address translation request of consecutive LBAs based on the information about the physical addresses. A flash translation hierarchy, comprising a continuity flag to minimize repetitive address translation mechanisms. 제 1 항에 있어서,The method of claim 1, 상기 연속성 플래그는 VBA(Virtual Block Address)와 PBA(Physical Block Address)가 연속적인 경우 연속적인 블록의 갯 수가 기입되는 것을 특징으로 하는 플래시 변환 계층 구조.The continuity flag is a flash translation layer structure, characterized in that the number of consecutive blocks is written when the VBA (Virtual Block Address) and PBA (Physical Block Address) is continuous. 제 1 항 또는 제 2 항에 있어서,The method according to claim 1 or 2, 상기 연속성 플래그는 상기 Coarse-grained 군집형 해시 테이블의 각 버켓의 서브 블록마다 설정되는 것을 특징으로 하는 플래시 변환 계층 구조.And the continuity flag is set for each subblock of each bucket of the coarse-grained clustered hash table. 제 1 항 또는 제 2 항에 있어서,The method according to claim 1 or 2, 상기 플래시 변환은 NAND 플래시 메모리 기반인 것을 특징으로 하는 플래시 변환 계층 구조.And the flash conversion is NAND flash memory based. 제 1 항에 따른 플래시 변환 계층 구조를 이용한 페이지 선 반입 방법에 있어서,In the page prefetch method using the flash conversion hierarchy according to claim 1, a) 상기 군집형 해시 테이블로 동일한 버켓 안에 연속된 LBA 및 이에 대응하는 PBA들을 저장하는 단계;a) storing contiguous LBAs and corresponding PBAs in the same bucket as the clustered hash table; b) 상기 버켓의 LBA에 대한 읽기 요청을 접수하는 단계;b) accepting a read request for an LBA in the bucket; c) 상기 Coarse-Grained 군집형 해시 테이블로 탑재된 상기 연속성 플래그를 토대로 연속적인 LBA의 주소변환을 수행하는 단계;c) performing address conversion of consecutive LBAs based on the continuity flag mounted as the coarse-grained clustered hash table; d) 상기 LBA가 소속된 버켓의 전체 페이지를 선 반입하는 단계;로 이루어진 것을 특징으로 하는 플래시 변환 계층 구조를 이용한 선 반입 방법.d) prefetching an entire page of the bucket to which the LBA belongs; and a prefetch method using a flash translation hierarchy. 제 5 항에 있어서 상기 c) 단계는,The method of claim 5, wherein step c) c-1) 상기 1단계 Fine-grained 군집형 해시 테이블을 검색하여 매칭되는 PBA가 존재할 경우 주소 변환을 종료하는 단계;c-1) searching for the first fine-grained clustered hash table and ending address translation when there is a matching PBA; c-2) 상기 1단계 Fine-grained 군집형 해시 테이블에서 검색에 실패했을 경우, 상기 2단계 Fine-grained 군집형 해시 테이블을 검색하여 매칭되는 PBA가 존재할 경우 주소 변환을 종료하는 단계; 및c-2) searching for the second fine-grained clustered hash table if the search fails in the first fine-grained clustered hash table, and ending address translation when there is a matching PBA; And c-3) 상기 2단계 Fine-grained 군집형 해시 테이블에서도 검색에 실패 한 경우, 상기 Coarse-grained 군집형 해시 테이블에서 매칭되는 주소 변환 정보를 찾는 단계;로 이루어진 것을 특징으로 하는 플래시 변환 계층 구조를 이용한 선 반입 방법.c-3) searching for matching address translation information in the coarse-grained clustered hash table when the second stage fine-grained clustered hash table fails to search. Prefetch method used. 제 6 항에 있어서 상기 c-3) 단계는,According to claim 6, wherein step c-3), 가) LBA를 상기 Coarse-grained 군집형 해시 테이블 내의 VBA와 오프셋으로 변환하는 단계;A) converting an LBA to an offset with a VBA in the coarse-grained clustered hash table; 나) 상기 VBA를 해싱하여 PPBA와 RPBA의 주소가 저장되어 있는 버켓을 찾는 단계; 및B) hashing the VBA to find a bucket in which the addresses of PPBA and RPBA are stored; And 다) 매칭된 상기 PPBA와 오프셋에 있는 페이지 데이터가 유효하지 않을 경우 상기 RPBA를 순차적으로 검색하여 해당 물리 주소를 찾는 단계;로 이루어진 것을 특징으로 하는 플래시 변환 계층 구조를 이용한 선 반입 방법.C) sequentially searching the RPBA to find a corresponding physical address when the matched page data at the PPBA and the offset is not valid; 플래시 변환 구조를 기반으로 한 플래시 메모리 쓰기 방법에 있어서,In the flash memory write method based on the flash conversion structure, a) 임의의 정보가 저장되는 예측 테이블을 생성하는 단계;a) generating a prediction table in which any information is stored; b) 반복적으로 저장되는 LBA가 포함된 VBA를 상기 예측 테이블에 추가하는 단계;b) adding a VBA containing a repeatedly stored LBA to the prediction table; c) 동일한 VBA로 소속된 LBA에 쓰기 요청이 들어올 때마다, 쓰기 요청 회수에 비례하여 상기 예측 테이블로 저장되는 예측 비트를 갱신하는 단계;c) updating a prediction bit stored in the prediction table in proportion to the number of write requests, each time a write request enters an LBA belonging to the same VBA; d) 상기 예측 비트가 기 설정된 값으로 갱신될 경우, 상기 VBA를 예약 버퍼에 저장하는 단계; 및d) storing the VBA in a reservation buffer when the prediction bit is updated to a preset value; And e) 상기 예약 버퍼가 포화될 경우, 상기 예약 버퍼로 탑재된 최신 데이터만 플래시 메모리로 적재하는 단계;로 이루어진 것을 특징으로 하는 플래시 변환 구조를 기반으로 한 비동기 쓰기 방법.and e) loading only the latest data loaded into the reservation buffer into the flash memory when the reservation buffer is saturated. 제 8 항에 있어서,The method of claim 8, 상기 예측 비트는 적어도 4가지의 상태 표시를 위한 2비트 구조인 것을 특징으로 하는 플래시 변환 구조를 기반으로 한 비동기 쓰기 방법.And the prediction bit is a two-bit structure for displaying at least four states. 제 8 항에 있어서,The method of claim 8, 상기 예약 버퍼로 탑재되는 최신 데이터는 상기 VBA를 일괄 합병된 데이터인 것을 특징으로 하는 플래시 변환 구조를 기반으로 한 비동기 쓰기 방법.And the latest data loaded into the reserved buffer is data obtained by collectively merging the VBA.
KR1020080055289A 2007-10-19 2008-06-12 Apparatus of having structure of flash translation layer and prefetching method and asynchronous writing method based on the flash translation layer KR100999111B1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020080055289A KR100999111B1 (en) 2008-06-12 2008-06-12 Apparatus of having structure of flash translation layer and prefetching method and asynchronous writing method based on the flash translation layer
US12/254,410 US8024545B2 (en) 2007-10-19 2008-10-20 Efficient prefetching and asynchronous writing for flash memory

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020080055289A KR100999111B1 (en) 2008-06-12 2008-06-12 Apparatus of having structure of flash translation layer and prefetching method and asynchronous writing method based on the flash translation layer

Publications (2)

Publication Number Publication Date
KR20090129161A true KR20090129161A (en) 2009-12-16
KR100999111B1 KR100999111B1 (en) 2010-12-07

Family

ID=41689287

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020080055289A KR100999111B1 (en) 2007-10-19 2008-06-12 Apparatus of having structure of flash translation layer and prefetching method and asynchronous writing method based on the flash translation layer

Country Status (1)

Country Link
KR (1) KR100999111B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101114398B1 (en) * 2010-01-25 2012-02-22 인하대학교 산학협력단 Address Translation and Multiple Block Deletion Method of Fusion Flash Memory Using Eraser Group Flash Translation Layer

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190074897A (en) 2017-12-20 2019-06-28 에스케이하이닉스 주식회사 Memory system and operating method thereof

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101114398B1 (en) * 2010-01-25 2012-02-22 인하대학교 산학협력단 Address Translation and Multiple Block Deletion Method of Fusion Flash Memory Using Eraser Group Flash Translation Layer

Also Published As

Publication number Publication date
KR100999111B1 (en) 2010-12-07

Similar Documents

Publication Publication Date Title
US8024545B2 (en) Efficient prefetching and asynchronous writing for flash memory
Chung et al. System software for flash memory: A survey
KR100789406B1 (en) Flash memory system and garbage collection method therof
Chung et al. A survey of flash translation layer
US8316209B2 (en) Robust index storage for non-volatile memory
Seo et al. Recently-evicted-first buffer replacement policy for flash storage devices
KR20100021868A (en) Buffer cache management method for flash memory device
Park et al. A pattern adaptive NAND flash memory storage structure
Park et al. A hybrid flash translation layer design for SLC–MLC flash memory based multibank solid state disk
KR20130022604A (en) Apparatus and method for data storing according to an access degree
Yao et al. HDFTL: An on-demand flash translation layer algorithm for hybrid solid state drives
Lv et al. Exploiting minipage-level mapping to improve write efficiency of NAND flash
CN113253926A (en) Memory internal index construction method for improving query and memory performance of novel memory
Ross Modeling the performance of algorithms on flash memory devices
KR100999111B1 (en) Apparatus of having structure of flash translation layer and prefetching method and asynchronous writing method based on the flash translation layer
Lin et al. Improving flash translation layer performance by supporting large superblocks
Jung et al. LIRS-WSR: Integration of LIRS and writes sequence reordering for flash memory
Kim et al. h-Hash: a hash index structure for flash-based solid state drives
Pan et al. HCFTL: A locality-aware flash translation layer for efficient address translation
Liu et al. Techniques for improving performance of the FAST (fully-associative sector translation) flash translation layer
Ji et al. Locality and duplication-aware garbage collection for flash memory-based virtual memory systems
KR100982440B1 (en) System for managing data in single flash memory
KR100894845B1 (en) Method for Address Translation using the Flash Translation Layer Module
Han Fast erase algorithm using flash translation layer in NAND-type flash memory
Chung et al. LSTAFF* an efficient flash translation layer for large block flash memory

Legal Events

Date Code Title Description
A201 Request for examination
N231 Notification of change of applicant
E902 Notification of reason for refusal
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: 20131203

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20141120

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20161118

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20170829

Year of fee payment: 8

LAPS Lapse due to unpaid annual fee