KR20100022811A - A flash memory storage device and a manage method using the same - Google Patents

A flash memory storage device and a manage method using the same Download PDF

Info

Publication number
KR20100022811A
KR20100022811A KR1020080081499A KR20080081499A KR20100022811A KR 20100022811 A KR20100022811 A KR 20100022811A KR 1020080081499 A KR1020080081499 A KR 1020080081499A KR 20080081499 A KR20080081499 A KR 20080081499A KR 20100022811 A KR20100022811 A KR 20100022811A
Authority
KR
South Korea
Prior art keywords
flash memory
data
address
block
logical page
Prior art date
Application number
KR1020080081499A
Other languages
Korean (ko)
Other versions
KR100977709B1 (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 KR1020080081499A priority Critical patent/KR100977709B1/en
Publication of KR20100022811A publication Critical patent/KR20100022811A/en
Application granted granted Critical
Publication of KR100977709B1 publication Critical patent/KR100977709B1/en

Links

Images

Classifications

    • 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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • 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
    • G06F12/0646Configuration or reconfiguration
    • 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
    • G06F12/1009Address translation using page tables, e.g. page table structures
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages

Abstract

PURPOSE: A flash memory storage device and a managing method using the same are provided to increase data processing speed of a flash memory. CONSTITUTION: A mapping table stores mapping information for converting a logical page address into a physical block address to assign one physical block including physical pages for one logical page. An operation unit(200) checks a physical block address corresponding to a logical page address about an operation request with reference to the mapping table. The operation unit processes an operation requested for a page included in a block corresponding to the checked physical block address.

Description

플래시메모리 저장장치 및 그에 따른 관리 방법{A FLASH MEMORY STORAGE DEVICE AND A MANAGE METHOD USING THE SAME}Flash memory storage device and its management method {A FLASH MEMORY STORAGE DEVICE AND A MANAGE METHOD USING THE SAME}

본 문서는 플래시메모리 저장장치에 관한 것으로서, 보다 구체적으로는 플래시메모리의 접근 속도 성능을 향상시킬 수 있는 플래시메모리 저장장치 및 그 관리방법에 관한 것이다.This document relates to a flash memory storage device, and more particularly, to a flash memory storage device and a management method thereof that can improve the access speed performance of the flash memory.

플래시메모리는 데이터의 기록 및 삭제가 자유로운 램(RAM: Random Access Memory)의 장점과 전원 공급 없이도 저장된 데이터를 보존하는 롬(ROM: Read Only Memory)의 장점을 동시에 지니고 있어, 최근 디지털 카메라,PDA, MP3 플레이어와 같은 휴대용 전자기기의 저장 매체로 널리 사용되고 있다.Flash memory has the advantages of random access memory (RAM), which is free to record and delete data, and read only memory (ROM) that preserves stored data without power supply. It is widely used as a storage medium for portable electronic devices such as MP3 players.

이러한 플래시메모리에서는 이전의 데이터를 수정하고자 하는 경우, 해당 데이터를 포함하는 블록을 삭제한 후 데이터를 다시 기록해야 하는데, 일 예로, 글자나 알파벳을 하나씩 수정하여도 '삭제'키를 눌러 전체 단어를 다 삭제한 후 다시 수정된 내용을 포함한 전체를 다시 기록하는 것과 같다.In such a flash memory, if the previous data is to be modified, the block containing the data must be deleted and the data must be recorded again. For example, even if the letters or alphabets are modified one by one, the entire word is pressed by pressing the 'delete' key. It's like deleting the whole thing and then rewriting the whole thing, including the modifications.

이와 같은 플래시메모리의 기록 전 삭제(erase before write) 특성 때문에 플래시메모리에 기록된 데이터의 물리 주소(Physical Address)가 변경되어도 동일 한 논리 주소(Logical Address)로 플래시메모리에 기록된 데이터에 접근할 수 있도록 논리-물리 매핑(logical-physical mapping) 방법이 지원되는 것이 일반적이다. Because of the erase before write characteristic of the flash memory, even if the physical address of the data written to the flash memory is changed, the data recorded in the flash memory can be accessed with the same logical address. In general, logical-physical mapping methods are supported.

논리-물리 매핑 방법은 특정 데이터에 대한 논리 주소와 물리 주소간의 매핑 정보를 소정의 매핑 테이블(mapping table)을 통해 관리하는 것으로, 페이지 매핑 방법을 예로 들 수 있다.The logical-physical mapping method manages mapping information between a logical address and a physical address of a specific data through a predetermined mapping table. For example, a page mapping method may be used.

도 1은 종래의 페이지 매핑 방법에 따른 플래시메모리 액세스 방법을 개략적으로 나타낸 것이다. 도 1에 도시한 바와 같이, 페이지 매핑 방법은 플래시메모리의 페이지 단위로 매핑 정보를 유지하여 논리 페이지 주소를 이용한 플래시메모리의 물리 페이지 접근이 가능하도록 하는 것이다.1 schematically illustrates a flash memory access method according to a conventional page mapping method. As shown in FIG. 1, the page mapping method maintains mapping information in units of pages of a flash memory so that physical pages of the flash memory can be accessed using a logical page address.

일 예로, 소정의 데이터에 대해 기록 동작 요구와 함께 논리 페이지 번호(Logical Page Number: LPN)가 9번으로 지정되면, 플래시메모리 액세스 장치에서는 매핑 테이블을 참조하여 LPN 9번에 상응하는 물리 페이지 번호(Physical Page Number: PPN)인 PPN 6번을 검색한다. 그 다음, 플래시메모리의 6번 페이지에 해당 데이터를 기록하는데, 만일, 해당 페이지에 다른 데이터가 기록되어 있으면 플래시메모리의 비어 있는 물리 페이지에 데이터를 기록하고 매핑 테이블에서 LPN 9번에 상응하는 PPN을 변경시킨다.For example, if a logical page number (LPN) is specified as 9 with a write operation request for a predetermined data, the flash memory access device refers to the mapping table and refers to the physical page number corresponding to LPN 9 ( Search for PPN 6, which is a physical page number (PPN). Then, the corresponding data is recorded on page 6 of the flash memory. If other data is recorded on the page, the data is recorded on the empty physical page of the flash memory and the PPN corresponding to LPN 9 is written in the mapping table. Change it.

이러한 플래시메모리는 기존의 램(RAM)이나 비휘발성 저장 장치, 마그네틱 등과 마찬가지로 특정 위치에 저장된 데이터를 임의로 접근할 수 있지만, 데이터를 수정하거나 삭제하는 방법에 있어서는 기존의 저장장치와 다르게 삭제블록(Erase block)을 기본단위로 하여 액세스가 이루어진다.Such a flash memory can randomly access data stored in a specific location like a conventional RAM, nonvolatile storage, or magnetic device.However, a method of modifying or deleting data is different from that of a conventional storage device. Access is performed based on block).

이상 및 이하에서 사용되는 용어 가운데 물리적으로 연속된 주소를 갖는 바이트들을 페이지라 하는데, 페이지(Page)는 플래시메모리에 대한 읽기/쓰기 등 연산의 기본 단위가 되고, 다수의 페이지들로 구성되는 블록(Block)은 플래시메모리에서 한번의 삭제 연산으로 지울 수 있는 삭제 연산의 기본 단위가 된다. Among the terms used above and below, bytes having physically consecutive addresses are called pages. Pages are basic units of operations such as reading / writing to flash memory, and a block composed of a plurality of pages ( Block) becomes the basic unit of the delete operation that can be erased by one erase operation in flash memory.

이와 같이 블록이 다수의 페이지들로 구성되는 경우에는, 삭제 연산의 기본 단위와 읽기/쓰기 등 연산의 기본 단위의 크기가 서로 달라지게 되는데, 이는 플래시메모리에 저장된 데이터 수정시 페이지 단위의 수정 요청에도 불구하고 상술한 기록 전 삭제(erase before write) 특성 때문에 블록 단위의 삭제 연산이 수반되어야 하는 문제의 원인이 된다.In this case, when the block is composed of a plurality of pages, the size of the basic unit of the delete operation and the basic unit of the operation such as read / write are different from each other. Nevertheless, the above-described erase before write characteristic causes a problem that an erase operation must be performed on a block basis.

도 2에는 종래의 플래시메모리에 대한 데이터 수정 방법이 개략적으로 나타난다. 도 2를 참조하면 알 수 있듯이 도 2의 데이터 b1을 수정하고자 하는 경우 b1이 포함되는 블록 전체에 대해 수정이 이루어져야 하고 따라서 b1에 대한 단계 S20의 수정뿐만 아니라 동일한 블록에 포함되는 a1 및 c1에 대해 단계 S10의 복사와 단계 S30에 대한 복사가 함께 이루어지고, 단계 S40에 대한 삭제 또한 수행되어야 수정이 완료될 수 있다.2 schematically shows a data modification method for a conventional flash memory. As can be seen with reference to FIG. 2, when the data b1 of FIG. 2 is to be corrected, the entire block including b1 must be modified. The copy of step S10 and the copy of step S30 are made together, and the deletion of step S40 may also be performed to complete the modification.

즉, 플래시메모리에 대한 수정 연산 처리에는 삭제 연산이 반드시 수반되고 플래시 메모리에 대한 읽기/쓰기 등 연산의 기본 단위인 페이지 크기보다 삭제 연산의 기본 단위인 블록 크기가 더 크기 때문에 한 블록에 포함된 데이터를 수정하기 위해서는 그 블록에 포함되는 다른 데이터까지 모두 다시 기록해야 한다. 이는 플래시메모리의 속도 저하 문제에 대한 직접적인 원인이 되고, 전원이 갑자기 끊기 는 등과 같은 문제가 발생하였을 경우 데이터를 손실하게 되는 불안요소가 있어 개선의 필요가 있다.In other words, the correction operation on the flash memory necessarily involves a delete operation, and the data included in one block is larger than the page size, which is the basic unit of the operation such as read / write to the flash memory, than the page size. To correct the problem, all other data contained in the block must be rewritten. This is a direct cause of the problem of slowing down the flash memory, and there is an anxiety factor that causes data loss when a problem such as sudden power failure occurs.

본 문서는 상술한 배경기술에 있어서 플래시메모리의 데이터 처리 속도를 높일 수 있는 플래시메모리 저장장치 및 그 관리방법 제공을 해결 과제로 한다.This document provides a flash memory storage device and a management method thereof capable of increasing the data processing speed of a flash memory in the above-described background art.

상술한 과제를 해결하기 위한 일 수단으로서의 플래시메모리 저장장치는 다수의 물리적 페이지를 포함하는 블록들로 이루어지는 플래시메모리부, 사용자로부터 논리적 페이지 주소를 통해 데이터에 대한 연산 요청을 입력받는 입력부, 하나의 논리적 페이지에 대해 다수의 물리적 페이지를 포함하는 하나의 물리적 블록이 할당되도록, 논리적 페이지 주소를 물리적 블록 주소로 변환하는 매핑 정보를 포함하는 매핑 테이블 및 상기 매핑 테이블을 참조하여 상기 연산 요청에 대한 논리적 페이지 주소에 해당하는 물리적 블록 주소를 확인하고, 상기 확인된 물리적 블록 주소에 상응하는 블록에 포함되는 페이지에 대해 상기 요청된 연산을 처리하는 연산부를 포함한다.As a means for solving the above problems, a flash memory storage device includes a flash memory unit comprising blocks including a plurality of physical pages, an input unit for receiving an operation request for data through a logical page address from a user, and one logical unit. A logical table address for the operation request with reference to the mapping table and a mapping table including mapping information for converting a logical page address into a physical block address so that one physical block including a plurality of physical pages is allocated for the page. And an operation unit that checks a physical block address corresponding to and processes the requested operation on a page included in a block corresponding to the identified physical block address.

상술한 과제를 해결하기 위한 다른 수단으로서의 다수의 페이지를 포함하는 블록들로 이루어지는 플래시메모리에 대한 관리방법은, 사용자로부터 논리적 페이지 주소를 통해 데이터에 대한 연산 요청을 입력받는 단계, 상기 논리적 페이지 주소를 물리적 블록 주소로 변환하는 매핑 정보를 포함하는 매핑 테이블을 참조하여, 상기 연산 요청에 대한 논리적 페이지 주소에 해당하는 물리적 블록 주소를 확인하는 단계 및 상기 확인된 물리적 블록 주소에 상응하는 블록에 포함되는 페이지에 대해 상기 요청된 연산을 처리하는 단계를 포함한다.According to another aspect of the present invention, there is provided a method of managing a flash memory including blocks including a plurality of pages, the method comprising: receiving an operation request for data through a logical page address from a user; Identifying a physical block address corresponding to a logical page address for the operation request by referring to a mapping table including mapping information for converting to a physical block address, and a page included in a block corresponding to the identified physical block address Processing the requested operation for.

상기 데이터가, 상기 플래시메모리부에 대한 파일시스템정보를 포함하는 메타데이터인 경우에 대해, 상기 논리적 페이지 주소를 물리적 블록 주소로 변환하는 매핑 정보를 포함하는 매핑 테이블이 사용될 수 있다.For the case where the data is metadata including file system information for the flash memory unit, a mapping table including mapping information for converting the logical page address into a physical block address may be used.

상기 연산 요청이 상기 데이터에 대한 수정 요청인 경우, 상기 데이터에 대한 삭제 없이 상기 데이터가 저장된 블록 내 사용가능한 다른 페이지에 수정된 데이터를 기록할 수 있다.When the operation request is a modification request for the data, the modified data may be recorded in another page available in the block in which the data is stored without deleting the data.

상기 플래시메모리의 다수에 페이지에 대한 연산 요청이 있는 경우, 상기 플래시메모리에 대한 플래시메모리정보 및 파일시스템정보를 통해 결정되는 오프셋 값을 적용하여 최소 개수의 블록 내에 저장되도록 데이터기록시작위치를 조정할 수 있다.When a request for a page is calculated in a plurality of flash memories, a data recording start position may be adjusted to be stored in a minimum number of blocks by applying an offset value determined through flash memory information and file system information of the flash memory. have.

한편, 상기 플래시메모리부에 대한 메타데이터는, 상기 플래시메모리부 외의 다른 비휘발성 메모리에 저장될 수도 있다.The metadata for the flash memory unit may be stored in a nonvolatile memory other than the flash memory unit.

본 발명의 일 실시예에 따르면, 하나의 논리적 페이지 주소에 대한 데이터를 위해 다수의 물리적 페이지가 할당되기 때문에 기존의 수정 연산 처리에 반드시 수반되던 삭제 연산이 생략될 수 있다는 효과가 있다.According to an embodiment of the present invention, since a plurality of physical pages are allocated for data for one logical page address, an erase operation necessarily required for the existing modification operation may be omitted.

또한, 본 실시예에 따르면 하나의 블록 내에 하나의 논리적 페이지에 대한 데이터만 저장되기 때문에 블록 내 일부 데이터 수정임에도 수반되던 다른 데이터에 대한 삭제/기록 동작이 생략될 수 있는 효과가 있다.In addition, according to the present embodiment, since only data for one logical page is stored in one block, there is an effect that the delete / write operation for other data that is accompanied by some data modification in the block may be omitted.

아울러, 하나의 논리적 페이지 주소에 대해 하나의 블록에 해당하는 수의 물리적 페이지가 할당되기 때문에 즉, 삭제 연산의 기본 단위에 맞추어 할당하여 보다 효율적으로 연산 처리가 수행되는 효과가 있다.In addition, since the number of physical pages corresponding to one block is allocated to one logical page address, that is, the operation is more efficiently performed by allocating the basic page of the erase operation.

본 발명의 다른 실시예에 따르면, 오프셋 값을 이용하여 데이터기록시작위치를 변경함으로써 하나의 데이터가 최소 개수의 블록 내에 저장될 수 있는 효과가 있다.According to another embodiment of the present invention, there is an effect that one data can be stored in the minimum number of blocks by changing the data recording start position using an offset value.

또한 그에 따라서, 저장된 데이터에 대한 삭제 또는 수정 처리시 최소 개수의 블록에 대해서만 처리할 수 있어 플래시메모리 연산 처리 속도를 높일 수 있는 효과가 있다. In addition, according to this, only the minimum number of blocks can be processed when deleting or modifying stored data, thereby increasing the speed of flash memory operation.

이하 도면을 참조하여 하나의 논리적 페이지가 다수의 물리적 페이지로 확장 매핑되는 플래시메모리 저장장치 및 플래시메모리 관리방법을 보다 구체적으로 설명한다.Hereinafter, a flash memory storage device and a flash memory management method in which one logical page is extended and mapped to a plurality of physical pages will be described in more detail.

도 3은 본 발명의 실시예에 따른 플래시메모리 저장장치의 구조를 도시한 도면이다.3 is a diagram illustrating the structure of a flash memory storage device according to an embodiment of the present invention.

도 3에 도시된 바와 같이, 본 발명의 실시예에 따른 플래시메모리 저장장치는 입력부(100)와, 연산부(200)와, 저장부(300)와, 플래시메모리부(400)를 포함하여 구성될 수 있다.As shown in FIG. 3, a flash memory storage device according to an exemplary embodiment of the present invention may include an input unit 100, an operation unit 200, a storage unit 300, and a flash memory unit 400. Can be.

입력부(100)는 사용자로부터 소정 논리적 주소에 대한 읽기/쓰기/삭제/수정 등의 연산 요청 등을 입력받고, 연산부(200)는 논리적 주소에 대한 연산 요청을 물 리적 주소에 대한 연산 요청으로 변환한다. 즉, 연산부(200)는 사용자가 요청한 논리적 주소에 대한 연산 요청을 플래시메모리부(400) 상의 물리적 주소로 변환하여, 요청된 연산을 수행한다.The input unit 100 receives an operation request such as read / write / delete / modify a predetermined logical address from the user, and the operation unit 200 converts the operation request for the logical address into an operation request for the physical address. . That is, the operation unit 200 converts the operation request for the logical address requested by the user into a physical address on the flash memory unit 400 to perform the requested operation.

저장부(300)는 연산부(200)가 플래시메모리부(400)로 접근하는데 필요한 접근 코드를 저장한다. 예를 들면, 저장부(300)에는 사용자에 의해 요청된 논리적 주소와 플래시메모리부(400) 상의 물리적 주소 간의 매핑 관계를 나타내는 매핑 테이블이 저장된다. 이러한 저장부(300)는 플래시메모리부(400) 내에 구현될 수도 있고 램(RAM: Random Access Memory)를 비롯한 외부 메모리로 구현될 수도 있다.The storage unit 300 stores an access code necessary for the operation unit 200 to access the flash memory unit 400. For example, the storage unit 300 stores a mapping table indicating a mapping relationship between a logical address requested by a user and a physical address on the flash memory unit 400. The storage unit 300 may be implemented in the flash memory unit 400 or an external memory including random access memory (RAM).

그리고, 플래시메모리부(400)는 사용자가 기록하려는 데이터를 저장한다. 플래시메모리부(400)는 다수개의 페이지를 포함하는 다수개의 블록을 포함하도록 구성된다. 이상 및 이하에서, 블록은 삭제 연산의 기본 단위이고 페이지는 읽기/쓰기 연산의 기본 단위이다.The flash memory unit 400 stores data to be recorded by the user. The flash memory unit 400 is configured to include a plurality of blocks including a plurality of pages. Above and below, the block is the basic unit of the delete operation and the page is the basic unit of the read / write operation.

본 실시예에 따르면, 플래시메모리에 있어서, 하나의 논리적 페이지에 대해 다수의 물리적 페이지가 할당되는 것을 특징으로 한다. 즉, 사용자로부터 하나의 논리적 페이지 주소를 통해 플래시메모리에 대한 연산 요청이 있는 경우에 이 논리적 페이지 주소에 대해 할당되는 다수의 물리적 페이지 중 임의의 페이지에 대해 연산이 수행되게 된다.According to the present embodiment, a plurality of physical pages are allocated to one logical page in the flash memory. That is, when there is an operation request for the flash memory through one logical page address from the user, the operation is performed on any page among a plurality of physical pages allocated to the logical page address.

특히 하나의 논리적 페이지에 할당되는 물리적 페이지의 수는 하나의 물리적 블록 내에 포함되는 페이지 수로 결정될 수 있다. 이는 하나의 논리적 페이지에 대해 하나의 물리적 블록이 할당되는 것과 동일한 결과가 된다. In particular, the number of physical pages allocated to one logical page may be determined by the number of pages included in one physical block. This is the same result as one physical block is allocated for one logical page.

상술한 본 실시예를 구현하기 위해서 특정 데이터에 대한 논리 주소와 물리 주소간의 매핑 정보를 소정의 매핑 테이블(mapping table)을 통해 관리하는 논리-물리 매핑 방법으로, 논리적 페이지 주소와 물리적 블록 주소를 매핑하는 방법을 적용할 수 있다.In order to implement the above-described embodiment, a logical-physical mapping method that manages mapping information between logical addresses and physical addresses for specific data through a predetermined mapping table, and maps logical page addresses and physical block addresses. Can be applied.

도 4는 본 발명의 일 실시예에 따른 플래시메모리 관리방법을 설명하기 위한 도면이다.4 is a view for explaining a flash memory management method according to an embodiment of the present invention.

도 4에 도시한 바와 같이, 본 실시예에 따른 논리-물리 매핑 방법은 플래시메모리의 페이지 단위의 논리적 매핑 정보를 블록 단위의 물리적 매핑 정보로 변환하여 논리 페이지 주소를 이용해서 플래시메모리의 물리 블록으로의 접근이 가능하도록 하는 것이다.As shown in FIG. 4, the logical-physical mapping method according to the present embodiment converts logical mapping information of a page unit of a flash memory into physical mapping information of a block unit, and converts the logical mapping information to a physical block of a flash memory using a logical page address. Is to enable access.

예를 들어, 소정의 데이터에 대해 기록 연산 요청과 함께 논리 페이지 번호(Logical Page Number: LPN)가 3번으로 지정되면, 플래시메모리 액세스 장치에서는 매핑 테이블을 참조하여 LPN 3번에 상응하는 물리 블록 번호(Physical Block Number: PBN)인 PBN 1번을 검색한다. 그 다음, 플래시메모리의 1번 블록 내 임의의 페이지에 해당 데이터를 기록한다.For example, if a logical page number (LPN) is specified as 3 with a write operation request for a given data, the flash memory access device refers to the mapping table to the physical block number corresponding to LPN 3 Search for PBN # 1 which is (Physical Block Number: PBN). The data is then written to any page in block 1 of the flash memory.

본 실시예에 따르면, 하나의 논리적 페이지 주소에 대한 데이터를 위해 다수의 물리적 페이지가 할당되기 때문에 기존의 수정 연산 처리에 반드시 수반되던 삭제 연산이 생략될 수 있다는 효과가 있다. 또한, 본 실시예에 따르면 하나의 블록 내에 하나의 논리적 페이지에 대한 데이터만 저장되기 때문에 블록 내 일부 데이터 수정임에도 수반되던 다른 데이터에 대한 삭제/기록 연산이 생략될 수 있다는 효과 도 있다.According to the present embodiment, since a plurality of physical pages are allocated for data for one logical page address, the delete operation necessarily required for the existing modification operation may be omitted. In addition, according to the present embodiment, since only data for one logical page is stored in one block, the delete / write operation for other data, which is accompanied by some data modification in the block, may be omitted.

하지만, 본 실시예에 따라 하나의 논리적 페이지에 대해 하나의 블록을 할당하게 되면 메모리 용량 측면에서는 불리한 측면이 있다. 즉, 도 4를 통해 설명한 실시예에 따르면, 종래의 논리적 페이지와 물리적 페이지가 일대일로 할당되는 방법과 비교하여 하나의 논리적 페이지에 다수의 물리적 페이지가 할당되기 때문에, 사용자 측면에서는 사용가능한 메모리 용량이 축소되는 것으로 인식하게 될 것이다. However, according to the present embodiment, allocating one block to one logical page is disadvantageous in terms of memory capacity. That is, according to the exemplary embodiment described with reference to FIG. 4, since a plurality of physical pages are allocated to one logical page as compared with a conventional method of allocating logical pages and physical pages one-to-one, a usable memory capacity may be increased. It will be perceived as being reduced.

예를 들어, 메모리 전체가 도 4의 실시예가 적용되어 하나의 논리적 페이지가 하나의 블록으로 매핑된다고 가정하면, 사용자 측면에서는 메모리 용량을 전체용량(P)이 하나의 블록 내 포함되는 페이지 수(N)만큼 나누어진 크기의 용량(P/N)으로 인식하게 될 것이다. 따라서, 이하에서 설명되는 실시예에 따르면, 플래시메모리에 저장 영역 중 일부에 대해서만 도 4의 실시예가 적용되고 나머지 저장영역에서는 종래와 마찬가지의 방법이 적용되도록 한다.For example, assuming that the entire memory is mapped to one block by applying the embodiment of FIG. 4, in terms of a user, the memory capacity is the number of pages (N) in which the total capacity P is included in one block. It will be recognized as the capacity (P / N) divided by). Therefore, according to the embodiment described below, the embodiment of FIG. 4 is applied to only part of the storage areas in the flash memory, and the same method as the conventional method is applied to the remaining storage areas.

도 5는 본 발명의 일 실시예에 따른 플래시메모리의 논리적 영역구분과 그에 따른 물리적 영역할당 방법을 나타낸다.5 is a diagram illustrating logical region classification and a physical region allocation method of a flash memory according to an embodiment of the present invention.

도 5를 참조하면, 플래시메모리 영역이 크게 메타데이터영역과 데이터영역으로 구분되는 경우 본 실시예에 따르면 메타데이터영역에 대해서만 도 4를 통해 설명한 플래시메모리 관리방법이 적용되도록 한다. Referring to FIG. 5, when the flash memory area is largely divided into a metadata area and a data area, the flash memory management method described with reference to FIG. 4 is applied only to the metadata area.

메타데이터영역은 플래시메모리와 관련되는 메타데이터가 저장되는 영역이다. 메타데이터는 파일시스템정보 등과 같이 플래시메모리에 저장되는 데이터를 관 리하기 위한 데이터로서, 특히, 파일시스템정보는 컴퓨터에서 파일과 그 안에 든 자료를 저장하고 찾기 쉽도록 유지 관리하는 방식으로 자료를 저장, 탐색, 접근, 조작하기 위한 추상적 자료 구조의 집합으로 정의되는 파일 시스템(file system)에 따라 데이터 관리가 이루어지기 위하여 필요한 정보이다.The metadata area is an area in which metadata associated with a flash memory is stored. Metadata is data for managing data stored in flash memory, such as file system information. In particular, file system information stores data in such a way that the computer keeps files and data in them easy to find and find. This is the information required to manage data according to a file system, which is defined as a set of abstract data structures for searching, accessing, and manipulating data.

즉, 메타데이터의 경우에는 데이터에 대한 수정이 빈번하게 이루어지는 반면 그 차지하는 메모리 용량이 작다는 특징 때문에 메타데이터가 저장되는 메타데이터영역에 대한 논리적 페이지들에 대해 각 페이지가 다수의 물리적 페이지 특히 하나의 블록으로 할당되도록 하면 수정 횟수에 비해 삭제 횟수를 현저하게 줄일 수 있어 플래시메모리 처리 속도를 크게 향상시킬 수 있을 것이다.That is, in the case of metadata, the data is frequently modified, but the memory capacity of the data is small, so that each page is divided into a plurality of physical pages, especially one, for logical pages of the metadata area where metadata is stored. By allocating to blocks, the number of erases can be significantly reduced compared to the number of modifications, thereby greatly improving the processing speed of the flash memory.

한편, 플래시메모리에 대한 메타데이터는 상기 플래시메모리부(400) 외의 다른 비휘발성 메모리, 예를 들어 FRAM(Ferroelectric Random Access Memory)에 저장되도록 하여, 플래시메모리 저장공간에 대한 효율성을 확보하고, 이로써 플래시메모리의 접근 속도를 높일 수도 있을 것이다.Meanwhile, metadata about the flash memory may be stored in a nonvolatile memory other than the flash memory unit 400, for example, Ferroelectric Random Access Memory (FRAM), thereby securing efficiency of the flash memory storage space and thereby flash. You might be able to speed up memory access.

도 6은 본 발명의 일 실시예에 따른 플래시메모리 저장장치를 통해 수정 연산이 처리되는 과정을 설명하기 위한 흐름도이고, 도 7은 본 발명의 일 실시예에 따른 수정 연산이 처리되기 전후의 플래시메모리의 데이터 기록 상태를 나타낸다.6 is a flowchart illustrating a process in which a correction operation is processed through a flash memory storage device according to an embodiment of the present invention, and FIG. 7 is a flash memory before and after the correction operation is processed according to an embodiment of the present invention. Indicates the data recording state.

먼저, 단계 S600에서 사용자로부터 플래시메모리에 저장된 b1(71)에 대한 수정 요청을 입력받는다. 이때 수정 요청은 b1(71)의 논리적 페이지 주소를 통해 이루어질 것이다. 그러면 단계 S610에서 b1(71)이 메타데이터영역에 저장된 데이터인지 확인한다. 도 4의 실시예가 메타데이터에 대해서만 적용되는 제한이 없는 경우 에는 단계 S610은 생략될 수 있음은 당연할 것이다.First, in step S600, a modification request for b1 71 stored in a flash memory is received from a user. The modification request will then be made via the logical page address of b1 (71). Then, in step S610, it is checked whether b1 (71) is data stored in the metadata area. It will be appreciated that step S610 may be omitted if the embodiment of FIG. 4 has no limitation applied only to metadata.

단계 S610의 확인 결과 b1(71)이 메타데이터인 경우에는 단계 S620으로 진행하여 b1(71)의 논리적 페이지 주소를 본 실시예에 따라 물리적 블록 주소로 변환함으로써 b1(71)이 저장되어 있는 블록(70)을 확인할 수 있다. 그리고, 단계 S630에서 이 블록(70) 내에 사용가능한 여유 페이지가 있는지 여부를 확인한다.If b1 (71) is metadata as a result of checking in step S610, the process proceeds to step S620 in which the logical page address of b1 (71) is converted into a physical block address according to the present embodiment to block b1 (71) stored therein ( 70) can be confirmed. Then, in step S630, it is checked whether there is a free page available in this block 70.

단계 S630의 확인 결과 블록(70) 내 여유 페이지가 존재하는 경우 단계 S640으로 진행하여 블록(70) 내 여유 페이지에 b1이 수정된 데이터인 b2(72)를 저장한다. 그리고, 단계 S650으로 진행하여 b2(72)가 최근 수정된 데이터임을 알 수 있는 플래그 정보를 추가한다.If there is a free page in the block 70 as a result of checking in step S630, the flow proceeds to step S640 to store b2 72, which is data in which b1 is modified, in the free page in the block 70. In step S650, flag information indicating that b2 72 is the latest modified data is added.

하지만, 단계 S610의 확인 결과 b1(71)이 메타데이터가 아니거나 단계 S630의 확인 결과 블록(70) 내 여유 페이지가 존재하지 않는 경우에는 단계 S660으로 진행하여 종래의 방법으로 블록(70) 내 저장된 데이터를 삭제하고 수정된 데이터 b2(72)를 저장한다. 이때 필요한 경우 블록(70) 내 저장된 다른 데이터에 대한 복사 처리가 수반될 수 있을 것이다.However, if the check result b1 71 of step S610 is not metadata or the free page in the check result block 70 of step S630 does not exist, the process proceeds to step S660 and is stored in the block 70 by a conventional method. Delete the data and store the modified data b2 72. At this time, if necessary, a copy process for other data stored in the block 70 may be involved.

상술한 본 실시예에 따르면, 메타데이터 수정시에 해당 블록 내의 여유 페이지가 존재한다면 해당 블록 내에 수정된 데이터를 저장할 수 있어 수정할 때마다 기존 데이터에 대한 삭제 연산을 생략할 수 있고, 하나의 블록 내 다른 데이터에 대한 복사 연산까지도 생략할 수 있어 그 처리 속도가 종래와 비교하여 매우 향상될 것으로 기대된다. According to the present embodiment described above, if there is a free page in the block at the time of metadata modification, the modified data can be stored in the block, so that the deletion operation for the existing data can be omitted each time the modification is made, and in one block It is also possible to omit copy operations for other data, so that the processing speed is expected to be greatly improved as compared with the prior art.

도 8은 본 발명의 다른 실시예에 따른 플래시메모리 관리방법을 설명하기 위 한 흐름도이고 도 9 및 도 10은 본 실시예에 따라 데이터기록시작위치가 오프셋 값으로 조정되기 전후의 데이터 기록 상태를 나타내는 도면이다.8 is a flowchart illustrating a flash memory management method according to another embodiment of the present invention, and FIGS. 9 and 10 show data recording states before and after the data recording start position is adjusted to an offset value according to the present embodiment. Drawing.

본 실시예에 따르면 플래시메모리의 다수에 페이지에 대한 연산 요청이 있는 경우, 플래시메모리에 대한 플래시메모리정보 및 파일시스템정보를 통해 결정되는 오프셋 값을 적용하여 최소 개수의 블록 내에 저장되도록 조정하는 것을 특징으로 한다. According to the present exemplary embodiment, when a request for a page is applied to a plurality of flash memories, an offset value determined through the flash memory information and the file system information of the flash memory is applied to be stored in the minimum number of blocks. It is done.

플래시메모리정보에는 플래시메모리의 읽기/쓰기 단위인 페이지정보, 플래시메모리의 삭제 단위인 블록정보, 또는 플래시메모리의 용량/특성 정보 등이 포함될 수 있다. The flash memory information may include page information that is a read / write unit of the flash memory, block information that is an erase unit of the flash memory, or capacity / characteristic information of the flash memory.

그리고, 파일시스템정보에는 컴퓨터가 주소지정을 할 수 있는 최소의 단위로 예를 들어, 512 바이트의 크기로 정의되는 섹터정보, 파일정보, 서로 연관이 있는 파일들을 하나의 그룹으로 만들어서 저장할 수 있도록 구분된 공간으로 정의되는 디렉토리정보, 데이터기록시작위치정보, 또는 디렉토리나 파일들이 저장된 위치 또는 플래시메모리의 특정 저장영역의 사용가부를 확인할 수 있는 파일할당테이블 등이 포함될 수 있다.In addition, the file system information is the smallest unit that can be addressed by the computer. For example, sector information, file information, and files related to each other defined by a size of 512 bytes can be created and stored in a group. Directory information, data recording start position information, or a file allocation table for checking whether a directory or files are stored or whether a specific storage area of a flash memory is used.

도 8을 참조하면, 단계 S800에서 컴퓨터 등에서 플래시메모리 저장장치를 인식하여 플래시메모리정보를 획득하고, 단계 S810에서 플래시메모리에 저장된 메타데이터를 통해 파일시스템정보를 획득한다. 그리고, 단계 S820에서 플래시메모리정보와 파일시스템정보를 통해 플래시메모리에 대한 데이터기록시작위치정보에 대한 오프셋 값을 결정하되 이 오프셋 값은 데이터 연산 처리에 최소 개수의 블록이 이 용되도록 결정되어야 할 것이다. 단계 S840에서 이 오프셋 값만큼 변경된 위치에서부터 데이터 기록 등이 이루어지도록 한다.Referring to FIG. 8, in step S800, a flash memory storage device is recognized by a computer to acquire flash memory information, and in step S810, file system information is obtained through metadata stored in the flash memory. In operation S820, the offset value of the data recording start position information of the flash memory is determined through the flash memory information and the file system information. The offset value should be determined such that the minimum number of blocks is used for the data operation. . In step S840, data recording and the like are performed from the position changed by this offset value.

단계 S820의 오프셋 값을 결정하는 방법의 일례는 플래시메모리정보를 통해 확인되는 페이지 크기 또는 블록 크기를 확인하고 이를 기록 대상이 되는 데이터 크기와 비교하여 필요한 페이지 수 또는 블록 수를 결정할 수 있다. 이때 파일시스템정보를 통해 데이터기록시작위치정보를 확인하면 해당 데이터가 데이터기록시작위치로부터 몇 개의 페이지에 걸쳐 기록될 것인지 알 수 있다.As an example of the method of determining the offset value of step S820, the required page number or block number may be determined by checking the page size or block size identified through the flash memory information and comparing the same to the data size to be recorded. At this time, if the data recording start position information is checked through the file system information, it can be known how many pages from the data recording start position.

확인 결과 기록 대상이 되는 데이터 크기는 하나의 블록 내에 기록될 수 있는데 데이터기록시작위치가 임의의 블록 중간 정도로 되어 있어 하나의 블록이 아닌 두 개 이상의 블록에 데이터가 기록되는 경우에, 하나의 블록 내에 데이터 기록이 이루어질 수 있도록 데이터기록시작위치에 대한 오프셋 값을 결정하고 그 오프셋 만큼 변경된 위치부터 데이터 기록을 시작한다.As a result of the check, the size of data to be recorded can be recorded in one block. If data is recorded in two or more blocks instead of one block because the data recording start position is about the middle of an arbitrary block, the data is recorded in one block. The offset value for the data recording start position is determined so that data recording can be made, and data recording starts from the position changed by the offset.

예를 들어 도 9를 참조하면, 기록 대상이 되는 데이터 크기는 2 페이지인데 데이터기록시작위치가 제1블록(90)의 마지막 페이지로 되어 있어 이 상태로 기록을 하게되면 기록 대상이 되는 데이터 일부는 제1블록(90)에 기록되고 나머지 일부는 제2블록(91)에 기록된다.For example, referring to FIG. 9, the data size to be recorded is two pages, but the data recording start position is the last page of the first block 90. The first block 90 is recorded and the remaining part is recorded in the second block 91.

다른 예를 들어, 도 10을 참조하면 기록 대상이 되는 데이터 크기는 2 페이지인데 데이터기록시작위치가 제3블록(92)의 마지막 페이지로 되어 있고 특히 이 경우에는 제3블록(92)이 플래시메모리 제1칩의 마지막 블록인 것으로 가정한다. 이 상태로 기록을 하게 되면 기록 대상이 되는 데이터 일부는 제1칩의 제3블록(92)에 기록되고 나머지 일부는 제2칩의 제1블록(93)에 기록된다.For another example, referring to FIG. 10, the data size to be recorded is two pages, but the data recording start position is the last page of the third block 92. In this case, the third block 92 is a flash memory. Assume that this is the last block of the first chip. When recording in this state, a part of data to be recorded is recorded in the third block 92 of the first chip, and the other part is recorded in the first block 93 of the second chip.

이와 같이 하나의 데이터가 다수의 블록 또는 칩에 기록될수록 그 데이터에 대한 기록/읽기/삭제/수정 등의 연산 처리에 다수의 블록 또는 칩에 대해 수행되어야 하기 때문에 처리 속도가 저하되는 문제가 된다. As one data is recorded in a plurality of blocks or chips as described above, processing speed decreases because a plurality of blocks or chips have to be performed for arithmetic operations such as writing / reading / deleting / modifying the data.

따라서 이와 같은 경우에는 본 실시예에 따라 오프셋 값을 1페이지로 결정하여 1페이지만큼 데이터기록시작위치를 변경하여 데이터를 기록한다. 그러면, 도 9의 오른쪽에 도시된 바와 같이 제2블록(90) 내에 기록 대상이 되는 데이터가 모두 기록될 수 있고, 도 10에 도시된 바와 같이 제2칩의 제1블록(93) 내에 기록 대상이 되는 데이터가 모두 기록될 수 있다.In this case, therefore, the offset value is determined to be one page according to this embodiment, and the data recording start position is changed by one page to record data. Then, as shown in the right side of FIG. 9, all data to be recorded in the second block 90 can be recorded, and as shown in FIG. 10, the recording object in the first block 93 of the second chip. All of this data can be recorded.

따라서, 본 실시예에 따르면 오프셋 값을 이용하여 데이터기록시작위치를 변경함으로써 하나의 데이터가 최소 개수의 블록 내에 저장될 수 있고, 그에 따라서, 플래시메모리 영역을 효율적으로 관리할 수 있으며, 저장된 데이터에 대한 삭제 또는 수정 처리시 최소 개수의 블록에 대해서만 처리할 수 있어 결국 플래시메모리 데이터 처리 속도를 높이는 효과를 얻을 수 있을 것이다.Therefore, according to this embodiment, one data can be stored in the minimum number of blocks by changing the data recording start position by using an offset value, so that the flash memory area can be efficiently managed and stored in the stored data. The minimum number of blocks can be processed when deleting or modifying the data. Therefore, the processing speed of flash memory data will be increased.

상기에서는 도면 및 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허청구범위에 기재된 본 발명의 기술적 매핑으로부터 벗어나지 않는 범위 내에서 본 발명은 다양하게 수정 및 변경시킬 수 있음은 이해할 수 있을 것이다.Although described above with reference to the drawings and embodiments, those skilled in the art that the present invention can be variously modified and changed without departing from the technical mapping of the present invention described in the claims below. I can understand.

도 1은 종래의 페이지 매핑 방법에 따른 플래시메모리 액세스 방법을 개략적으로 나타낸 것이다. 1 schematically illustrates a flash memory access method according to a conventional page mapping method.

도 2는 종래의 플래시메모리에 대한 데이터 수정 방법을 개략적으로 나타내는 도면이다. 2 is a view schematically showing a data modification method for a conventional flash memory.

도 3은 본 발명의 실시예에 따른 플래시메모리 저장장치의 구조를 도시한 도면이다.3 is a diagram illustrating the structure of a flash memory storage device according to an embodiment of the present invention.

도 4는 본 발명의 일 실시예에 따른 플래시메모리 관리방법을 설명하기 위한 도면이다.4 is a view for explaining a flash memory management method according to an embodiment of the present invention.

도 5는 본 발명의 일 실시예에 따른 플래시메모리의 논리적 영역구분과 그에 따른 물리적 영역할당 방법을 설명하기 위한 도면이다.FIG. 5 is a diagram illustrating a logical region classification and a physical region allocation method of a flash memory according to an embodiment of the present invention.

도 6은 본 발명의 일 실시예에 따른 플래시메모리 저장장치를 통해 수정 연산이 처리되는 과정을 설명하기 위한 흐름도이다.FIG. 6 is a flowchart illustrating a process of correcting an operation through a flash memory storage device according to an exemplary embodiment of the present invention.

도 7은 본 발명의 일 실시예에 따른 수정 연산이 처리되기 전후의 플래시메모리의 데이터 기록 상태를 나타내는 도면이다.7 is a diagram illustrating a data writing state of a flash memory before and after a correction operation is processed according to an embodiment of the present invention.

도 8은 본 발명의 다른 실시예에 따른 플래시메모리 관리방법을 설명하기 위한 흐름도이다.8 is a flowchart illustrating a flash memory management method according to another embodiment of the present invention.

도 9는 본 실시예에 따라 데이터기록시작위치가 오프셋 값으로 조정되기 전후의 데이터 기록 상태를 나타내는 도면이다.9 is a diagram showing a data recording state before and after the data recording start position is adjusted to an offset value according to this embodiment.

도 10은 본 실시예에 따라 데이터기록시작위치가 오프셋 값으로 조정되기 전 후의 데이터 기록 상태를 나타내는 도면이다.10 is a diagram showing a data recording state before and after the data recording start position is adjusted to an offset value according to this embodiment.

<도면의 주요부분에 대한 부호의 설명><Description of the symbols for the main parts of the drawings>

100: 입력부 200: 연산부100: input unit 200: calculation unit

300: 저장부 400: 플래시메모리부300: storage unit 400: flash memory unit

Claims (10)

다수의 물리적 페이지를 포함하는 블록들로 이루어지는 플래시메모리부;A flash memory unit comprising blocks including a plurality of physical pages; 사용자로부터 논리적 페이지 주소를 통해 데이터에 대한 연산 요청을 입력받는 입력부;An input unit configured to receive an operation request for data through a logical page address from a user; 하나의 논리적 페이지에 대해 다수의 물리적 페이지를 포함하는 하나의 물리적 블록이 할당되도록, 논리적 페이지 주소를 물리적 블록 주소로 변환하는 매핑 정보를 포함하는 매핑 테이블; 및A mapping table including mapping information for converting a logical page address into a physical block address so that one physical block including a plurality of physical pages is allocated to one logical page; And 상기 매핑 테이블을 참조하여 상기 연산 요청에 대한 논리적 페이지 주소에 해당하는 물리적 블록 주소를 확인하고, 상기 확인된 물리적 블록 주소에 상응하는 블록에 포함되는 페이지에 대해 상기 요청된 연산을 처리하는 연산부An operation unit which checks a physical block address corresponding to a logical page address for the operation request with reference to the mapping table, and processes the requested operation on a page included in a block corresponding to the identified physical block address 를 포함하는, 플래시메모리 저장장치.Including, a flash memory storage device. 청구항 1에 있어서,The method according to claim 1, 상기 데이터는, 상기 플래시메모리부에 대한 파일시스템정보를 포함하는 메타데이터인 것을 특징으로 하는, 플래시메모리 저장장치.And the data is metadata including file system information for the flash memory unit. 청구항 1에 있어서,The method according to claim 1, 상기 연산 요청이 상기 데이터에 대한 수정 요청인 경우, 상기 데이터가 저장된 블록 내 사용가능한 다른 페이지에 수정된 데이터를 기록하는 것을 특징으로 하는, 플래시메모리 저장장치.And if the operation request is a modification request for the data, write the modified data to another page available in the block in which the data is stored. 청구항 1에 있어서,The method according to claim 1, 상기 플래시메모리의 다수에 페이지에 대한 연산 요청이 있는 경우, 상기 플래시메모리에 대한 플래시메모리정보 및 파일시스템정보를 통해 결정되는 오프셋 값을 적용하여 최소 개수의 블록 내에 저장되도록 데이터기록시작위치를 조정하는 것을 특징으로 하는, 플래시메모리 저장장치.If a plurality of flash memory requests for pages are requested, the data recording start position is adjusted to be stored in a minimum number of blocks by applying an offset value determined through flash memory information and file system information of the flash memory. Flash memory device, characterized in that. 청구항 1에 있어서,The method according to claim 1, 상기 플래시메모리부에 대한 메타데이터는, 상기 플래시메모리부 외의 다른 비휘발성 메모리에 저장되는 것을 특징으로 하는, 플래시메모리 저장장치.The metadata for the flash memory unit is stored in a nonvolatile memory other than the flash memory unit. 다수의 페이지를 포함하는 블록들로 이루어지는 플래시메모리에 대한 관리방법에 있어서,In the method for managing a flash memory consisting of blocks comprising a plurality of pages, 사용자로부터 논리적 페이지 주소를 통해 데이터에 대한 연산 요청을 입력받는 단계;Receiving an operation request for data through a logical page address from a user; 논리적 페이지 주소를 물리적 블록 주소로 변환하는 매핑 정보를 포함하는 매핑 테이블을 참조하여, 상기 연산 요청에 대한 논리적 페이지 주소에 해당하는 물리적 블록 주소를 확인하는 단계; 및Identifying a physical block address corresponding to a logical page address for the operation request by referring to a mapping table including mapping information for converting a logical page address into a physical block address; And 상기 확인된 물리적 블록 주소에 상응하는 블록에 포함되는 페이지에 대해 상기 요청된 연산을 처리하는 단계Processing the requested operation on a page included in a block corresponding to the identified physical block address 를 포함하는, 플래시메모리 관리방법. Comprising a flash memory management method. 청구항 6에 있어서,The method according to claim 6, 상기 데이터는, 상기 플래시메모리부에 대한 파일시스템정보를 포함하는 메타데이터인 것을 특징으로 하는, 플래시메모리 관리방법.And the data is metadata including file system information for the flash memory unit. 청구항 6에 있어서,The method according to claim 6, 상기 연산 요청이 상기 데이터에 대한 수정 요청인 경우, 상기 데이터가 저장된 블록 내 사용가능한 다른 페이지에 수정된 데이터를 기록하는 것을 특징으로 하는, 플래시메모리 관리방법.And if the operation request is a modification request for the data, writing the modified data in another page available in the block in which the data is stored. 청구항 6에 있어서,The method according to claim 6, 상기 플래시메모리의 다수에 페이지에 대한 연산 요청이 있는 경우, 상기 플래시메모리에 대한 플래시메모리정보 및 파일시스템정보를 통해 결정되는 오프셋 값을 적용하여 최소 개수의 블록 내에 저장되도록 데이터기록시작위치를 조정하는 것을 특징으로 하는, 플래시메모리 관리방법.If a plurality of flash memory requests for pages are requested, the data recording start position is adjusted to be stored in a minimum number of blocks by applying an offset value determined through flash memory information and file system information of the flash memory. Characterized in that the flash memory management method. 청구항 6에 있어서,The method according to claim 6, 상기 플래시메모리부에 대한 메타데이터는 상기 플래시메모리부 외의 다른 비휘발성 메모리에 저장되는 것을 특징으로 하는, 플래시메모리 관리방법.Metadata for the flash memory unit is stored in a nonvolatile memory other than the flash memory unit.
KR1020080081499A 2008-08-20 2008-08-20 A flash memory storage device and a manage method using the same KR100977709B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020080081499A KR100977709B1 (en) 2008-08-20 2008-08-20 A flash memory storage device and a manage method using the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020080081499A KR100977709B1 (en) 2008-08-20 2008-08-20 A flash memory storage device and a manage method using the same

Publications (2)

Publication Number Publication Date
KR20100022811A true KR20100022811A (en) 2010-03-03
KR100977709B1 KR100977709B1 (en) 2010-08-24

Family

ID=42175235

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020080081499A KR100977709B1 (en) 2008-08-20 2008-08-20 A flash memory storage device and a manage method using the same

Country Status (1)

Country Link
KR (1) KR100977709B1 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012021847A2 (en) * 2010-08-12 2012-02-16 Fusion-Io, Inc. Apparatus, system and method for caching data
KR101301840B1 (en) * 2010-12-08 2013-08-29 삼성전자주식회사 Method of data processing for non-volatile memory
US9734086B2 (en) 2006-12-06 2017-08-15 Sandisk Technologies Llc Apparatus, system, and method for a device shared between multiple independent hosts

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101157763B1 (en) 2010-12-27 2012-06-25 서울시립대학교 산학협력단 Variable space page mapping method and apparatus for flash memory device with trim command processing

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100449708B1 (en) * 2001-11-16 2004-09-22 삼성전자주식회사 Flash memory management method
JP4073799B2 (en) * 2003-02-07 2008-04-09 株式会社ルネサステクノロジ Memory system
US7173852B2 (en) * 2003-10-03 2007-02-06 Sandisk Corporation Corrected data storage and handling methods
KR100745163B1 (en) 2006-06-19 2007-08-01 주식회사 셀픽 Method for managing flash memory using dynamic mapping table

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9734086B2 (en) 2006-12-06 2017-08-15 Sandisk Technologies Llc Apparatus, system, and method for a device shared between multiple independent hosts
US11573909B2 (en) 2006-12-06 2023-02-07 Unification Technologies Llc Apparatus, system, and method for managing commands of solid-state storage using bank interleave
US11640359B2 (en) 2006-12-06 2023-05-02 Unification Technologies Llc Systems and methods for identifying storage resources that are not in use
US11847066B2 (en) 2006-12-06 2023-12-19 Unification Technologies Llc Apparatus, system, and method for managing commands of solid-state storage using bank interleave
US11960412B2 (en) 2006-12-06 2024-04-16 Unification Technologies Llc Systems and methods for identifying storage resources that are not in use
WO2012021847A2 (en) * 2010-08-12 2012-02-16 Fusion-Io, Inc. Apparatus, system and method for caching data
WO2012021847A3 (en) * 2010-08-12 2012-05-31 Fusion-Io, Inc. Apparatus, system and method for caching data
KR101301840B1 (en) * 2010-12-08 2013-08-29 삼성전자주식회사 Method of data processing for non-volatile memory

Also Published As

Publication number Publication date
KR100977709B1 (en) 2010-08-24

Similar Documents

Publication Publication Date Title
US6678785B2 (en) Flash management system using only sequential write
JP5295778B2 (en) Flash memory management method
US7594067B2 (en) Enhanced data access in a storage device
JP4991320B2 (en) Host device and memory system
US7702844B2 (en) Address mapping method and mapping information managing method for flash memory, and flash memory using the same
US8364931B2 (en) Memory system and mapping methods using a random write page mapping table
US7395384B2 (en) Method and apparatus for maintaining data on non-volatile memory systems
KR100923814B1 (en) Method and apparatus for splitting a logical block
US8055873B2 (en) Data writing method for flash memory, and controller and system using the same
US20070233941A1 (en) Method for initializing and operating flash memory file system and computer-readable medium storing related program
US20150186259A1 (en) Method and apparatus for storing data in non-volatile memory
JP6034183B2 (en) Semiconductor memory device
KR20040009926A (en) Flash memory management method
US10120606B2 (en) Data storage devices including storage controller circuits to select data streams based on application tags and computing systems including the same
US20190391756A1 (en) Data storage device and cache-diversion method thereof
KR20100094241A (en) Nonvolatile memory device not including reserved blocks
US20110320689A1 (en) Data Storage Devices and Data Management Methods for Processing Mapping Tables
US8090692B2 (en) Method for using an OTP storage device
KR100977709B1 (en) A flash memory storage device and a manage method using the same
US11218164B2 (en) Data storage device and non-volatile memory control method
KR20230075334A (en) Ecc parity biasing for key-value data storage devices
US8250285B2 (en) Non-volatile dual memory die for data storage devices
US11429519B2 (en) System and method for facilitating reduction of latency and mitigation of write amplification in a multi-tenancy storage drive
US20090204776A1 (en) System for securing an access to flash memory device and method for the same
KR100688463B1 (en) Method for writing and erasing data of physical memory

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: 20131112

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20140812

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20150623

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20160810

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20170727

Year of fee payment: 8