KR20050102779A - Design of nand flash memory file system - Google Patents

Design of nand flash memory file system Download PDF

Info

Publication number
KR20050102779A
KR20050102779A KR1020040028028A KR20040028028A KR20050102779A KR 20050102779 A KR20050102779 A KR 20050102779A KR 1020040028028 A KR1020040028028 A KR 1020040028028A KR 20040028028 A KR20040028028 A KR 20040028028A KR 20050102779 A KR20050102779 A KR 20050102779A
Authority
KR
South Korea
Prior art keywords
flash memory
page
nand
file system
type flash
Prior art date
Application number
KR1020040028028A
Other languages
Korean (ko)
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 KR1020040028028A priority Critical patent/KR20050102779A/en
Publication of KR20050102779A publication Critical patent/KR20050102779A/en

Links

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/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
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/1847File system types specifically adapted to static storage, e.g. adapted to flash memory or SSD

Abstract

본 발명은 2 Kbytes 페이지 크기에 적합한 NAND형 플래 메모리 전용 파일시스템에 대한 설계 방법 및 NAND형 플래시 메모리 접근 계층의 설계 방법에 관한 것이다. 본 발명은 기존의 플래시 변환 계층에 의한 NAND형 플래시 메모리 사용 기법보다 우수한 성능을 나타내며 주소 사상을 위한 메모리의 사용도 최소화하는 방법을 제공한다. NAND형 플래시 메모리 특수연산을 활용할 수 있는 접근 계층을 설계하여 이를 파일 시스템에서 활용하여 파일 시스템의 성능을 높이는 방법을 제공하며 NAND형 플래시 메모리의 멀티-플레인 기능을 사용하여 2 Kbytes 논리 페이지의 구현이 간단한 주소 변환으로 가능함을 보이고 있다. The present invention relates to a design method for a NAND type flash memory dedicated file system suitable for a 2 Kbytes page size and a method of designing a NAND type flash memory access layer. The present invention provides a method that exhibits better performance than the conventional NAND-type flash memory usage scheme by the flash translation layer and minimizes the use of memory for address mapping. By designing an access layer that can take advantage of NAND-type flash memory special operations, it provides a way to increase the performance of the file system by utilizing it in the file system, and by using the multi-plane capability of NAND-type flash memory, Simple address translation shows that this is possible.

Description

NAND형 플래시 메모리 파일 시스템의 설계 방법 {Design of NAND Flash Memory File System} Design Method of NAND Flash Memory File System {Design of NAND Flash Memory File System}

본 발명은 NAND형 플래시 메모리(NAND-type Flash Memory)를 위한 접근 계층 및 NAND형 플래시 메모리 전용 파일 시스템의 설계 방법에 관한 것이다. The present invention relates to an access layer for a NAND-type flash memory and a method of designing a file system dedicated to a NAND-type flash memory.

플래시 메모리는 전기적으로 데이터의 삭제 및 쓰기가 가능한 비휘발성 메모리로서, 가볍고 물리적인 충격에 강하면서도 전력 소모가 적어 휴대폰, PDA, 디지털카메라 등과 같은 휴대용 정보기기의 저장매체로 많이 사용되고 있다. 그러나 EEPROM의 일종인 플래시 메모리에서 데이터를 쓰기 위해서는 삭제연산을 선행해야 하며 일반적으로 삭제 단위는 쓰기 단위보다 크다. 이러한 특성은 보조기억장치로 플래시 메모리를 사용하는 경우 일반 하드디스크용 파일 시스템을 그대로 활용하는 것을 어렵게 한다. 따라서 이러한 제약을 감추고 플래시 메모리를 하드디스크와 같은 블록디바이스로 사용할 수 있도록 파일시스템과 플래시 메모리 사이의 미들웨어인 플래시 변환 계층(Flash Translation Layer)이 제안되어 사용되고 있다. 플래시 변환 계층은 가상의 블록 디바이스 상의 논리적인 위치와 플래시 메모리 상의 물리적인 위치 간의 사상(mapping)정보를 유지하면서, 소정의 논리적인 위치에 대해 쓰기/읽기연산이 요청되면, 상기 사상정보를 이용하여 논리적인 위치를 물리적인 위치로 변환하는 역할을 수행한다. 특히, 논리Flash memory is a nonvolatile memory capable of electrically erasing and writing data, and is widely used as a storage medium for portable information devices such as mobile phones, PDAs, and digital cameras because it is light and resistant to physical shocks and has low power consumption. However, in order to write data in flash memory, a kind of EEPROM, the erase operation must be preceded. Generally, the erase unit is larger than the write unit. This feature makes it difficult to use a file system for a general hard disk when using flash memory as an auxiliary storage device. Therefore, the flash translation layer, which is middleware between the file system and the flash memory, has been proposed and used to hide the limitations and use the flash memory as a block device such as a hard disk. The flash translation layer maintains mapping information between a logical location on a virtual block device and a physical location on a flash memory, and uses a mapping information when a write / read operation is requested for a predetermined logical location. It converts logical locations into physical locations. In particular, logic

적인 위치에 대해 데이터를 변경하는 쓰기 연산이 요청되는 경우, 논리적인 위치에 대응하는 물리적인 위치를 전기적으로 소거한 후 다시 쓰거나 논리적인 위치를 다른 물리적인 위치로 재사상하는 역할을 수행한다. When a write operation that changes data is requested for a logical location, the physical location corresponding to the logical location is electrically erased and then rewritten, or the logical location is re-imagined to another physical location.

플래시 메모리는 크게 NAND형 과 NOR형이 많이 사용되고 있는데, 최근 휴대형 정보기기의 저장매체의 대용량화로 인해 집적도가 높아 비용이 저렴하고 대용량인 NAND형 플래시 메모리가 기본 저장매체로 널리 사용되고 있다. 이미 제안되어 사용되고 있는 플래시 메모리 전용 파일시스템의 경우 NOR형 플래시 메모리에 최적화 되어 제안되어 NAND형 플래시 메모리의 페이지 단위의 구성 및 빠른 블록 삭제 연산, 페이지 내에 잉여영역의 활용을 효율적으로 수행하지 못하고 있으며 NAND형 플래시 메모리가 제공하고 있는 카피백(Copy-back)등의 특수 연산을 적극적으로 활용하지 못하고 있다. 카피백 연산은 블록 삭제 연산을 수행하기 전에 블록 내에 존재하는 유효한 페이지를 할당중인 블록으로 복사할 때 사용하면 파일시스템의 성능을 높일 수 있다. Flash memory is mainly used in NAND type and NOR type. Recently, due to the large capacity of the storage medium of portable information devices, the high density and low cost, large capacity NAND flash memory is widely used as the basic storage medium. The flash memory file system, which has been proposed and used, is optimized for NOR flash memory and cannot be used to efficiently configure the page unit of NAND flash memory, perform fast block erase operations, and utilize redundant areas within the page. It does not actively utilize special operations such as copy-back provided by type flash memory. The copyback operation can be used to copy a valid page existing in a block to the allocating block before performing the block delete operation.

현재 사용되고 있는 NAND형 플래시 메모리는 512 bytes의 페이지 크기를 가진 것과 2 Kbytes 페이지 크기를 가진 것으로 구분된다. 512 bytes 페이지 크기를 가지는 NAND형 플래시 메모리는 상대적으로 적은 용량을 가진다. 2 Kbytes 페이지 크기의 NAND형 플래시 메모리는 용량이 크며 더욱 적극적으로 사용될 것이다. 따라서 NAND형 플래시 메모리 전용 파일 시스템의 설계는 2 Kbytes 페이지 크기 NAND형 플래시 메모리를 기초로 한다. 이러한 설계는 512 bytes 페이지 크기 NAND형 플래시 메모리의 사용을 어렵게 하는데 이는 접근 계층에서 NAND형 플래시 메모리의 멀티-플레인 기능을 활용하여 상위 계층인 파일 시스템이 512 bytes 페이지 크기 NAND형 플래시 메모리라도 2 Kbytes 크기 논리 페이지를 가지는 플래시 메모리로 인식하게 하여 해결한다. Currently used NAND flash memory is divided into a page size of 512 bytes and a page size of 2 Kbytes. NAND-type flash memory with a 512 bytes page size has a relatively small capacity. NAND flash memory with 2 Kbytes page size is large and will be used more aggressively. Therefore, the design of a file system dedicated to NAND-type flash memory is based on 2 Kbytes page size NAND-type flash memory. This design makes it difficult to use 512 bytes page size NAND-type flash memory, which utilizes the multi-plane capabilities of NAND-type flash memory at the access layer, so that the upper-tier file system can be as large as 2 Kbytes even with 512 bytes page size NAND-type flash memory. The problem is solved by recognizing a flash memory having a logical page.

상기와 같은 플래시 변환 계층의 사용은 플래시 메모리의 성능을 충분히 활용할 수 없으며 사상정보 유지하기 위해 많은 주 메모리를 사용하게 된다. 따라서 NAND형 플래시 메모리의 특성을 고려한 NAND형 플래시 메모리 전용 파일 시스템이 요구된다. The use of such a flash translation layer can not fully utilize the performance of the flash memory and uses a lot of main memory to maintain mapping information. Therefore, a file system dedicated to NAND flash memory considering the characteristics of NAND flash memory is required.

상기한 문제점을 해결하기 위한 본 발명의 하나의 목적은 2 Kbytes 페이지 크기에 최적화된 NAND형 플래시 메모리 파일 시스템을 설계하여 NAND형 플래시 메모리가 저장매체로 사용되는 기기에서 NAND형 플래시 메모리가 최적의 성능을 발휘할 수 있도록 하는 것이다. One object of the present invention to solve the above problems is to design a NAND flash memory file system optimized for 2 Kbytes page size, NAND flash memory is the optimal performance in the device that NAND flash memory is used as a storage medium To be able to exercise.

본 발명의 다른 목적은 카피백과 같은 NAND형 플래시 메모리 특수연산을 활용할 수 있는 접근 계층을 설계하여 이를 파일 시스템에서 적극 활용하여 파일 시스템의 성능을 높이고자 하는 것이다. Another object of the present invention is to design an access layer that can utilize NAND-type flash memory special operations such as copyback, and to actively utilize it in the file system to improve the performance of the file system.

본 발명의 다른 목적은 512 bytes 페이지 크기의 NAND형 플래시 메모리의 멀티-플레인 기능을 활용하여 2 Kbytes로 설계된 파일 시스템을 사용할 수 있도록 하는 접근 계층을 제공하는 것이다. Another object of the present invention is to provide an access layer that enables the use of a file system designed for 2 Kbytes by utilizing the multi-plane function of NAND-type flash memory of 512 bytes page size.

본 발명의 다른 목적은 파일의 논리적인 주소를 물리적인 페이지 주소로 사상할 때 필요한 주 메모리의 사용을 최소화 하는 것이다. Another object of the present invention is to minimize the use of main memory required when mapping the logical address of a file into a physical page address.

상기 목적을 달성하기 위해 본 발명은 NAND형 플래시 메모리의 페이지 읽기/쓰기, 블록 삭제의 기본 연산을 제공하며 카피백과 같은 특수연산을 제공하며 멀티-플레인을 이용하여 논리페이지를 지원하는 접근 계층을 구비함을 특징으로 한다. 또한 2 Kbytes 페이지 크기 NAND형 플래시 메모리에 최적화 되었으며 성능을 높이기 위해 접근 계층의 제공하는 특수 연산을 활용하며 논리적인 페이지 주소를 물리적인 페이지 주소로 사상할 때 필요한 주 메모리의 사용을 최소화한 파일 시스템을 구비함을 특징으로 한다. In order to achieve the above object, the present invention provides a basic operation of page read / write and block erase of a NAND type flash memory, provides special operations such as copyback, and has an access layer supporting logical pages using multi-planes. It is characterized by. It is also optimized for 2 Kbytes page size NAND-type flash memory and utilizes the special operation provided by the access layer to improve performance and minimizes the use of main memory required to map logical page addresses to physical page addresses. Characterized in having.

이하, 첨부된 도명을 참조하여 본 발명의 바람직한 실시예에 따른 NAND형 플래시 메모리 전용 파일시스템에 대하여 상세히 설명한다. Hereinafter, a NAND type flash memory dedicated file system according to a preferred embodiment of the present invention will be described in detail with reference to the accompanying drawings.

도 1은 본 발명의 전체적인 구조를 나타내는 것으로 파일 시스템은 접근 계층이 제공하는 페이지 읽기/쓰기, 블록 삭제의 기본 연산 (11)으로 NAND형 플래시 메모리에 접근하여 파일 데이터를 읽거나 쓰고 플래시 메모리의 공간을 관리 (13)한다. 접근 계층은 파일 시스템으로 기본 연산 및 특수 연산 (12)을 제공하는 기능을 수행하며 멀티-플레인 기능을 활용하여 2 Kbytes 논리페이지를 지원한다. FIG. 1 illustrates the overall structure of the present invention. The file system is a basic operation (11) of page read / write and block deletion provided by an access layer. To manage (13). The access layer performs basic functions and special operations (12) as a file system and supports 2 Kbytes logical pages by utilizing the multi-plane function.

NAND형 플래시 메모리는 EEPROM의 한 종류로 데이터를 쓰기 위해서는 삭제 연산을 선행해야 하며 쓰기 연산 단위인 페이지보다 큰 블록 단위의 삭제 연산만 허용된다. 이러한 제약으로 인해 갱신되는 데이터는 플래시 메모리의 같은 곳에 쓰이지 않고 다른 위치에 쓰이게 된다. 따라서 이전의 데이터는 무효화되며, 계속되는 갱신은 특정 블록이 무효화된 데이터만을 가지게 한다. 무효화된 데이터만을 가지고 있는 블록의 경우, 플래시 메모리내의 사용 공간 확보시 삭제 연산의 대상이 되고 삭제 연산이 수행된 후 데이터 저장에 사용될 수 있는 자유 블록으로 변환된다. 하지만 플래시 메모리의 마모도 평준화(Wear-Leveling)와 사용 공간 확보를 위한 삭제 연산의 비용문제로 인해 유효한 데이터를 가지고 있는 블록도 삭제 연산의 대상이 되기도 한다. 이 경우, 블록내의 유효한 데이터는 플래시 메모리의 할당중인 다른 블록으로 복사되어야 하며 이는 플래시 메모리 저장기법의 성능을 저하시킬 수 있다. 카피백 쓰기 연산은 외부 메모리를 사용하지 않고 특정 페이지에 있는 데이터를 다른 페이지로 복사할 수 있게 하는 기능으로 플래시 메모리 접근 계층에서 NAND형 플래시 메모리가 제공하는 카피백 쓰기 연산을 수행할 수 있도록 이에 대한 인터페이스를 제공함으로써 상위 계층인 파일 시스템의 성능을 향상시킬 수 있다. 본 발명의 실시예에 따른 NAND형 플래시 메모리의 사용 공간 확보시 카피백 쓰기 연산의 활용이 도 2에 도시되어 있다. NAND-type flash memory is a type of EEPROM that must be preceded by a delete operation in order to write data, and only delete operations larger than a page, which is a write operation unit, are allowed. Because of this restriction, the data being updated is not written to the same place in flash memory, but to a different location. Thus, previous data is invalidated, and subsequent updates cause a particular block to have only invalidated data. In the case of a block having only invalidated data, when the space used in the flash memory is secured, the block is subjected to a delete operation, and after the delete operation is performed, the block is converted into a free block that can be used for data storage. However, due to the cost of wear-leveling of the flash memory and the cost of the erase operation for freeing up space, a block having valid data is also subject to the erase operation. In this case, valid data in the block must be copied to another block in the allocation of flash memory, which can degrade the performance of the flash memory storage technique. The copyback write operation allows you to copy data from one page to another without using external memory. This allows you to perform the copyback write operations provided by NAND-type flash memory at the flash memory access layer. By providing an interface, you can improve the performance of the upper layer file system. 2 illustrates the use of a copyback write operation in securing a used space of a NAND type flash memory according to an exemplary embodiment of the present invention.

도 2을 참조하면, 사용 공간 확보시 삭제 연산의 대상이 된 블록 (21)내의 유효 페이지 (24)를 새로 할당하는 블록 (22)로 카피백 쓰기 연산을 이용하여 복사한다. 복사된 페이지 (25)는 유효 페이지와 같은 데이터를 가지게 된다. 이러한 과정은 외부 메모리를 사용하지 않고 속도가 빠르므로 공간 확보시 성능을 높일 수 있게 된다. 무효 페이지(23)는 복사되지 않으며 사용 공간 확보를 위한 삭제 연산에 의해 빈 페이지가 된다. Referring to FIG. 2, a copyback write operation is copied to a block 22 for newly allocating a valid page 24 in a block 21 that is a target of a delete operation when securing a used space. The copied page 25 will have the same data as the valid page. Since this process is fast without using external memory, performance can be increased when space is secured. The invalid page 23 is not copied and becomes a blank page by a delete operation to secure space used.

본 발명의 특성에 따르면, 파일 시스템의 데이터 저장은 2 Kbytes 페이지 크기를 기준으로 하고 있다. 그러나 512 bytes 페이지 크기를 가지는 NAND형 플래시 메모리도 사용하기 위하여 논리 페이지를 지원하도록 접근 계층이 설계되었다. 접근 계층은 NAND형 플래시 메모리가 제공하는 멀티-플레인 특수 연산을 활용하여 논리 페이지를 지원한다. According to a feature of the invention, the data storage of the file system is based on a 2 Kbytes page size. However, the access layer is designed to support logical pages to use NAND type flash memory with 512 bytes page size. The access layer supports logical pages by taking advantage of the multi-plane special operations provided by NAND-type flash memory.

도 3은 멀티-플레인 구조를 갖춘 NAND형 플래시 메모리의 일반적인 구조를 도시한 것이다. 4개의 플레인 상에 4,096개의 물리 블록이 위치하고, 각 물리 블록은 32개의 물리 페이지를 포함하는 NAND형 플래시 메모리의 실시예를 도시하고 있다. 도 3에서 보는 바와 같이, n개의 메모리 플레인 상에 플래시 메모리의 물리 블록들이 균등하게 분산 배치되어 있고, 각 물리 블록은 복수 개의 물리 페이지를 포함하고 있다. 각 플레인마다 별도의 페이지 레지스터(page register)가 구비되어 있어서, 각 플레인으로부터 하나씩의 물리 블록 또는 물리 페이지를 선택하여 최대 n개의 물리 블록 또는 물리 페이지에 대해 동시에 삭제 연산, 읽기/쓰기 연산을 수행할 수 있다. 이하, 도 3에 도시한 실시예를 기반으로 하여 본 발명을 설명한다. 3 illustrates a general structure of a NAND flash memory having a multi-plane structure. 4,096 physical blocks are located on four planes, and each physical block shows an embodiment of a NAND flash memory including 32 physical pages. As shown in FIG. 3, physical blocks of the flash memory are evenly distributed on n memory planes, and each physical block includes a plurality of physical pages. Each plane is provided with a separate page register, which allows you to select one physical block or physical page from each plane to perform simultaneous delete and read / write operations on up to n physical blocks or physical pages. Can be. Hereinafter, the present invention will be described based on the embodiment shown in FIG. 3.

도 4는 본 발명의 바람직한 실시예에 따른 페이지 쓰기 연산을 보이고 있다. 도 4에서 보는 바와 같이, 논리 페이지를 지원하는 접근 계층은 2 Kbytes 쓰기 연산을 동일 플레인 내의 4개의 페이지 (42)에 수행하지 않고 각 플레인에 속해있는 4개의 페이지 (41)에 수행하게 된다. 멀티-플레인 구조를 갖춘 512 bytes 페이지 크기 NAND형 플래시 메모리가 상위 계층에 의해 2 Kbytes 페이지 크기 NAND형 플래시 메모리인 것처럼 보이기 위해서는 4개의 페이지를 하나의 논리 페이지로 묶어 연산을 수행하여야 한다. 동일 플레인에 속한 4개의 페이지를 묶어서 논리 페이지를 지원할 수도 있으나 멀티-플레인 기능을 사용하는 것을 동시에 쓰기 연산을 가능하게 함으로 성능을 향상 시킬 수 있다. 4 illustrates a page write operation according to a preferred embodiment of the present invention. As shown in FIG. 4, an access layer supporting logical pages does not perform 2 Kbytes write operations to four pages 42 in the same plane but to four pages 41 belonging to each plane. In order for a 512 bytes page size NAND-type flash memory with a multi-plane structure to appear as a 2 Kbytes page size NAND-type flash memory by a higher layer, four pages must be grouped into one logical page to perform an operation. Although four pages belonging to the same plane may be bundled to support logical pages, using the multi-plane function may simultaneously enable write operations to improve performance.

2 Kbytes 페이지 크기로 정렬된 페이지 물리 주소와 쓰기 연산에 사용될 데이터가 주어지면 접근 계층은 데이터를 512 bytes 단위 4개로 나누어 저장하게 된다. 나누어진 데이터의 조각들에 대해 멀티-플레인 쓰기 연산을 수행하기 위해서는 일련의 주소변환 과정이 필요하며 이는 도 5에 도시되어 있는 바와 같다. NAND형 플래시 메모리의 물리 주소 (51)는 컬럼 주소 (54)와 페이지 주소 (55)로 구분할 수 있다. 주소 변환을 위해 페이지 주소 (55)는 플레인 비트 (56), 페이지 주소 (57), 블록 주소 (58)로 세분화 (52)하여 나타낼 수 있다. 이 중 플레인 비트와 페이지 주소를 치환하게 되면 이 주소는 멀티-플레인 쓰기 연산에 사용할 수 있는 주소 (53)로 변하게 된다. 도 4의 실시예와 같이 주소 변환 과정을 거친 주소는 동일 플레인의 페이지에 연속하는 것이 아니라 플레인에 걸쳐 있는 네 개의 페이지 주소로 변환된다. Given a page physical address arranged at 2 Kbytes page size and data to be used for write operations, the access layer divides the data into four 512 bytes. In order to perform a multi-plane write operation on divided pieces of data, a series of address translation processes are required, as shown in FIG. The physical address 51 of the NAND type flash memory may be divided into a column address 54 and a page address 55. For address translation, the page address 55 may be represented by subdividing 52 into a plane bit 56, a page address 57, and a block address 58. Substituting the plane bits and the page address among them converts this address into an address 53 that can be used for multi-plane write operations. As shown in the embodiment of FIG. 4, an address that has undergone an address translation process is converted into four page addresses that span the plane, rather than being contiguous with pages of the same plane.

도 6은 본 발명의 실시예에 따른 NAND 플래시 메모리 파일 시스템의 페이지내 데이터 저장 방법을 보이고 있다. NAND형 플래시 메모리 내의 페이지는 크기 페이지 공간 (61)과 잉여 공간으로 구분된다. 본 발명에서는 페이지 공간에는 파일의 데이터를 잉여 공간에는 페이지 공간에 저장된 데이터의 메타 데이터를 저장한다. 파일이 저장 되면 파일의 정보는 페이지 공간에 저장되게 되는데 이때 잉여 공간의 파일 오프셋 구분자는 0으로 설정한다. 이후에 파일 데이터는 증가되는 파일 오프셋 구분자에 의해 구분되게 된다. 따라서 잉여 공간에 저장되는 파일 구분자가 같은 페이지들은 동일 파일의 데이터 조각들이 된다. 6 illustrates a method for storing in-page data of a NAND flash memory file system according to an exemplary embodiment of the present invention. The pages in the NAND type flash memory are divided into size page space 61 and excess space. In the present invention, data of a file is stored in a page space, and metadata of data stored in the page space is stored in a surplus space. When the file is saved, the file information is stored in the page space. In this case, the file offset separator of the surplus space is set to zero. The file data is then identified by the incrementing file offset delimiter. Therefore, pages with the same file separator stored in the redundant space become pieces of data of the same file.

도 6의 실시예와 같이 같은 파일의 데이터들은 여러 페이지에 걸쳐 나타나며 이로 파일의 논리적인 오프셋에 대한 물리적 페이지 주소를 사상하는 작업이 필요하다. 본 발명에서는 페이지 노드라는 자료구조를 이용하여 이러한 작업을 수행한다. 페이지 노드는 시스템의 주 메모리에 동적으로 할당되며 메모리의 사용을 최소화할 수 있도록 실시된다. 페이지 노드는 두 가지가 있는데 그 하나는 내부 노드로 말단 노드를 묶어서 관리하는 역할을 하는 중간 계층 노드로써 하나의 내부 노드가 최대 8개의 말단 노드를 관리한다. 내부 노드에서는 파일 오프셋 구분자의 상위 3 비트를 인덱스 값으로 하위 노드로 이동한다. 말단 노드는 실제 페이지 주소를 가지고 있는 노드이다. 하나의 노드가 16개의 16 비트 페이지 주소를 가지고 있다. 말단 노드에 기록되어 있는 페이지 주소가 관련 파일 데이터가 플래시 메모리 상에서 기록되어 있는 페이지의 실제 주소가 된다. 파일 오프셋 구분자 최하위 4 비트가 말단 노드에 기록되어 있는 16개의 페이지 주소들 중 하나를 선택하기 위한 인덱스 값으로 사용된다. As shown in the embodiment of Fig. 6, data of the same file is displayed over several pages, and thus a work of mapping a physical page address to a logical offset of the file is required. In the present invention, this operation is performed using a data structure called a page node. Page nodes are dynamically allocated to the system's main memory and implemented to minimize memory usage. There are two page nodes, one of which is a middle layer node that manages end nodes as an inner node. A single inner node manages up to eight end nodes. The inner node moves the upper 3 bits of the file offset delimiter to the lower node by the index value. The end node is the node that holds the actual page address. One node has 16 16-bit page addresses. The page address written to the end node becomes the actual address of the page where the relevant file data is written on the flash memory. The least significant 4 bits of the file offset separator are used as an index value for selecting one of the 16 page addresses recorded at the end node.

도 7에 도시한 바와 같이, 새로운 파일이 하나 생성되면 때, 생성된 파일에는 기본적으로 말단 노드 (71)가 하나 할당된다. 도 7에서 회색으로 표시된 노드들은 모두 새로 추가된 노드를 나타낸다. 하나의 말단 노드는 16개의 페이지 주소를 저장할 수 있기 때문에, 새로 생성된 파일은 데이터가 16개의 페이지를 차지하기 이전까지 관련된 페이지 주소를 할당된 말단 노드에 저장할 수 있다. 만약 파일 데이터의As shown in Fig. 7, when one new file is generated, one terminal node 71 is assigned to the generated file by default. The gray nodes in FIG. 7 all represent newly added nodes. Since one end node can store 16 page addresses, a newly created file can store the associated page address in the assigned end node until the data occupies 16 pages. If file's data

크기가 16개 페이지 이상으로 커지게 되면, 도 8에 도시한 바와 같이, 파일 시스템은 파일에 새로운 말단 노드 (82)를 하나 더 할당하여 추가로 생성된 페이지 주소를 저장할 수 있도록 한다. 또한 말단 노드가 하나 더 추가되어 두 개가 되었으므로 이를 관리할 내부 노드 (81)도 하나 할당한다. 도 9는 계속해서 파일의 데이터의 크기가 늘어나서 필요한 말단 노드의 수가 8개를 넘어서게 되는 경우를 나타내고 있다. 하나의 내부 노드는 최대 8개의 말단 노드만을 관리할 수 있으므로, 이 경우 말단 노드 (93)를 하나 추가하면서 추가된 말단 노드를 관리할 내부 노드 (92)도 하나 더 필요하게 된다. 또한 두 개로 늘어난 내부 노드를 관리할 상위의 내부 노드 (91)도 필요하게 되므로, 결과적으로 말단 노드 1개와 내부 노드는 2개가 추가된다. 본 발명에서는 이러한 과정을 통해 페이지 주소 변환을 위한 페이지 노드를 관리한다.  If the size grows to more than 16 pages, as shown in FIG. 8, the file system assigns one more new end node 82 to the file to store additionally generated page addresses. In addition, since one more end node has been added, two internal nodes 81 are allocated. Fig. 9 shows a case where the data size of the file continues to increase so that the required number of end nodes exceeds eight. Since one internal node can manage a maximum of eight end nodes, in this case, one additional end node 93 is added, and one more inner node 92 is needed to manage the added end node. In addition, a higher inner node 91 is required to manage two more inner nodes, and as a result, one end node and two inner nodes are added. In the present invention, through this process, the page node for page address translation is managed.

도 10은 페이지 노드를 이용하여 파일 오프셋 구분자를 통해 물리 페이지 주소를 찾는 과정을 보이고 있다. 파일 오프셋 구분자에서 상위 3 비트씩을 읽어서 이 값을 인덱스로 하여, 페이지 노드 트리에서 상위에 있는 내부 노드 (101)부터 하위 내부 노드 (102, 103)로 이동한다. 이러한 과정을 통해 말단 노드 (104)까지 이동하면 파일 오프셋 구분자의 최하위 4 비트만 남게 된다. 이 4 비트 값이 바로 현재 말단 노드에서 해당파일의 오프셋 구분자에 대한 페이지 주소가 있는 인덱스가 되고, 말단 노드에서 이 인덱스 값에 해당하는 위치에 기록되어 있는 값이 바로 페이지 주소이다. 도 10의 실시예를 자세히 살펴보면, 페이지 주소를 찾고자 하는 파일 오프셋 구분자의 값이 0x753이라고 가정하면 이는 이진수 '000.001.110.101.0011'으로 표현된다. 여기서 상위 3 비트의 값이 0인 것은 제외하고 상위 3 비트씩을 읽으면 내부 노드에서 이동할 인덱스는 차례로 1 (105), 6 (106), 5 (107)가 되고, 최상위의 내부 노드에서부터 이 인덱스를 따라 하위 내부 노드로 이동하면 마침내는 말단 노드에 이르게 된다. 말단 노드에서 페이지 주소는 파일 오프셋 구분자의 최하위 4 비트 값을 인덱스로 한 위치에 존재하고 파일 오프셋 구분자의 최하위 4 비트 값은 3이므로, 말단 노드의 4번째 위치 (108)에서 물리 페이지 주소를 찾을 수 있다. 10 illustrates a process of finding a physical page address through a file offset separator using a page node. The upper three bits are read from the file offset separator and this value is used as an index to move from the upper internal node 101 to the lower internal nodes 102 and 103 in the page node tree. Moving to the end node 104 through this process leaves only the least significant 4 bits of the file offset delimiter. This 4-bit value is the index containing the page address of the offset separator of the file at the current end node, and the value recorded at the position corresponding to this index value at the end node is the page address. Looking at the embodiment of FIG. 10 in detail, assuming that the value of the file offset delimiter to find the page address is 0x753, it is represented as binary '000.001.110.101.0011'. Here, except that the value of the top 3 bits is 0, when reading the top 3 bits, the index to move from the internal node becomes 1 (105), 6 (106), 5 (107) in turn, and follows this index from the highest internal node. Moving to a child internal node finally leads to the end node. In the end node, the page address exists at the position of the file offset delimiter with the least significant 4-bit value, and the file offset delimiter has the least significant 4-bit value, so the physical page address can be found at the end node's fourth position (108). have.

전술한 바와 같이, 본 발명은 2 Kbytes 페이지 크기에 적합한 NAND형 플래시 메모리 전용 파일시스템에 대한 설계 방법으로 기존의 플래시 변환 계층에 의한 NAND형 플래시 메모리 사용 기법보다 우수한 성능을 나타내며 주소 사상을 위한 메모리의 사용도 최소화하는 방법을 제공한다. As described above, the present invention is a design method for a NAND-type flash memory dedicated file system suitable for 2 Kbytes page size, and shows better performance than the conventional NAND-type flash memory using technique by the flash translation layer. It also provides a way to minimize use.

또한, 본 발명에 따르면 카피백과 같은 NAND형 플래시 메모리 특수연산을 활용할 수 있는 접근 계층을 설계하여 이를 파일 시스템에서 적극 활용하여 파일 시스템의 성능을 높일 수 있다. In addition, according to the present invention, by designing an access layer that can utilize NAND-type flash memory special operations such as copyback, and actively utilize it in the file system, the performance of the file system can be improved.

또한, 본 발명에 따르면 NAND형 플래시 메모리의 멀티-플레인 기능을 사용하여 2 Kbytes 논리 페이지의 구현이 간단한 주소 변환으로 가능하며 이를 이용하여 파일 시스템의 설계를 간단하게 할 수 있게 된다. In addition, according to the present invention, the 2 Kbytes logical page can be implemented by simple address translation using the multi-plane function of the NAND type flash memory, and the design of the file system can be simplified by using the address conversion.

도 1은 본 발명의 전체적인 구성도.1 is a general configuration of the present invention.

도 2는 본 발명의 실시예에 따른 유효 페이지 복사 방법을 도시한 도면.2 is a diagram illustrating a valid page copying method according to an embodiment of the present invention.

도 3은 멀티-플레인 구조의 플래시 메모리의 구성을 도시한 도면.3 is a diagram illustrating a configuration of a flash memory having a multi-plane structure.

도 4는 본 발명의 실시예에 따라, 멀티-플레인 쓰기 연산을 수행하는 방법을 도시한 도면.4 illustrates a method of performing a multi-plane write operation, in accordance with an embodiment of the invention.

도 5는 본 발명의 실시예에 따른 논리 페이지 지원을 위한 주소 변환 방법을 도시한 도면.5 is a diagram illustrating an address translation method for supporting logical pages according to an embodiment of the present invention.

도 6은 본 발명의 실시예에 따른 데이터 저장 구조를 도시한 도면.6 illustrates a data storage structure in accordance with an embodiment of the present invention.

도 7은 본 발명의 실시예에 따라, 페이지 최초의 페이지 노드가 할당되는 구조를 도시한 도면.FIG. 7 illustrates a structure in which a page first page node is allocated according to an embodiment of the present invention. FIG.

도 8은 본 발명의 실시예에 따라, 새로운 내부 페이지 노드가 할당되는 구조를 도시한 도면.8 illustrates a structure in which a new internal page node is allocated according to an embodiment of the present invention.

도 9은 본 발명의 실시예에 따라, 새로운 상위 내부 페이지 노드, 말단 페이지 노드가 할당되는 구조를 도시한 도면.9 illustrates a structure in which new upper inner page nodes and end page nodes are allocated according to an embodiment of the present invention.

도 10은 본 발명의 실시예에 따른 파일 오프셋 구분자를 통한 물리 페이지 검색 구조를 도시한 도면.FIG. 10 is a diagram illustrating a physical page search structure through a file offset separator according to an embodiment of the present invention. FIG.

Claims (3)

플래시 메모리 내의 사용 공간 확보 방법에 있어서,In the method of securing the used space in the flash memory, 접근 계층에서 카피백 특수연산을 제공하고 파일 시스템에서 이를 이용하여 유효 페이지를 복사하는 방법.A method of providing copyback operations at the access layer and copying valid pages from the file system. 논리 페이지 지원 방법에 있어서,In the logical page support method, 페이지 주소를 구분하는 단계; 및Separating page addresses; And 구분된 주소를 치환하여 주소변환을 하는 단계; 및Performing address translation by replacing the divided addresses; And 변환된 주소를 이용하여 논리 페이지를 지원하는 방법.How to support logical pages using translated addresses. NAND형 플래시 전용 파일 시스템을 설계하는 방법에 있어서,In the method of designing a NAND-type flash-only file system, 파일의 데이터를 저장할 때 데이터가 저장된 물리 페이지 주소를 저장하는 단계; 및Storing a physical page address at which data is stored when storing data of the file; And 이를 이용하여 파일 데이터의 물리 페이지 주소를 검색하는 방법.Use this method to retrieve the physical page address of file data.
KR1020040028028A 2004-04-23 2004-04-23 Design of nand flash memory file system KR20050102779A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020040028028A KR20050102779A (en) 2004-04-23 2004-04-23 Design of nand flash memory file system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020040028028A KR20050102779A (en) 2004-04-23 2004-04-23 Design of nand flash memory file system

Publications (1)

Publication Number Publication Date
KR20050102779A true KR20050102779A (en) 2005-10-27

Family

ID=37280868

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020040028028A KR20050102779A (en) 2004-04-23 2004-04-23 Design of nand flash memory file system

Country Status (1)

Country Link
KR (1) KR20050102779A (en)

Similar Documents

Publication Publication Date Title
KR100771521B1 (en) Flash memory device having a multi-leveled cell and programming method thereof
US7516295B2 (en) Method of remapping flash memory
US7702844B2 (en) Address mapping method and mapping information managing method for flash memory, and flash memory using the same
KR100389867B1 (en) Flash memory management method
US8180955B2 (en) Computing systems and methods for managing flash memory device
US8069297B2 (en) Storage device, computer system, and storage device access method
KR100706242B1 (en) Memory system and run level address mapping table forming method thereof
JP5295778B2 (en) Flash memory management method
US8407397B2 (en) Block management method for flash memory and controller and storage system using the same
US7711892B2 (en) Flash memory allocation for improved performance and endurance
US20080098195A1 (en) Memory system including flash memory and mapping table management method
KR100608602B1 (en) Flash memory, Mapping controlling apparatus and method for the same
US20140297921A1 (en) Method of Partitioning Physical Block and Memory System Thereof
US8745312B2 (en) Storage device and method of mapping a nonvolatile memory based on a map history
KR100845552B1 (en) Method for address mapping in Flash Translation LayerFTL
KR20020092261A (en) Management Scheme for Flash Memory with the Multi-Plane Architecture
KR20110070656A (en) Method and apparatus for processing data of flash memory
KR100745163B1 (en) Method for managing flash memory using dynamic mapping table
KR101119866B1 (en) Flash memory comprising flexible size flash memory per partition and memory system using thereof
KR100638638B1 (en) Method for controling flash memory device
KR100982440B1 (en) System for managing data in single flash memory
KR101022001B1 (en) Flash memory system and method for managing flash memory
KR20050102779A (en) Design of nand flash memory file system
JP2005092678A (en) Semiconductor memory card and method for deleting data in nonvolatile memory
KR100868674B1 (en) The method of managing flash memory

Legal Events

Date Code Title Description
N231 Notification of change of applicant
WITN Withdrawal due to no request for examination