KR101392174B1 - Apparatus and method for controlling flash memory storing mapping table of block to erase - Google Patents

Apparatus and method for controlling flash memory storing mapping table of block to erase Download PDF

Info

Publication number
KR101392174B1
KR101392174B1 KR1020110116144A KR20110116144A KR101392174B1 KR 101392174 B1 KR101392174 B1 KR 101392174B1 KR 1020110116144 A KR1020110116144 A KR 1020110116144A KR 20110116144 A KR20110116144 A KR 20110116144A KR 101392174 B1 KR101392174 B1 KR 101392174B1
Authority
KR
South Korea
Prior art keywords
block
flash memory
physical address
entry
recorded
Prior art date
Application number
KR1020110116144A
Other languages
Korean (ko)
Other versions
KR20130051032A (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 KR1020110116144A priority Critical patent/KR101392174B1/en
Priority to PCT/KR2012/004568 priority patent/WO2013069859A1/en
Publication of KR20130051032A publication Critical patent/KR20130051032A/en
Application granted granted Critical
Publication of KR101392174B1 publication Critical patent/KR101392174B1/en

Links

Images

Classifications

    • 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
    • G11C16/14Circuits for erasing electrically, e.g. erase voltage switching circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • 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
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • GPHYSICS
    • 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
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

소거 대상 블록의 매핑 테이블을 저장하는 플래시 메모리 제어장치 및 방법이 개시된다. 호스트 인터페이스부는 호스트와 제어신호 및 데이터를 송수신하고, 메모리 인터페이스부는 호스트로부터 수신된 제어신호에 따라 데이터를 플래시 메모리에 저장하거나 플래시 메모리로부터 독출한다. 저장부에는 플래시 메모리에서 데이터가 저장되는 복수의 페이지 각각의 논리 주소에 대응하는 복수의 엔트리에 각 페이지의 물리 주소가 기록된 주소 변환 테이블이 저장되며, 플래시 메모리의 각 블록의 물리 주소에 대응하는 복수의 엔트리에 각 블록에 포함된 무효 페이지의 개수 및 동일한 개수의 무효 페이지를 포함하는 다른 블록의 물리 주소가 기록된 블록 매핑 테이블과, 플래시 메모리의 각 블록에 포함된 무효 페이지의 개수에 대응하는 복수의 엔트리에 각 블록의 물리 주소가 기록된 소거 대상 블록 테이블이 더 저장된다. 본 발명에 따르면, 가비지 컬렉션을 위한 블록의 탐색 및 정렬 과정이 생략되므로 지연 시간을 단축시켜 시스템의 일시 정지 현상을 방지할 수 있다.A flash memory control device and method for storing a mapping table of a block to be erased is disclosed. The host interface unit transmits / receives control signals and data to / from the host, and the memory interface unit stores or reads data from / to the flash memory in accordance with a control signal received from the host. In the storage unit, an address conversion table in which physical addresses of respective pages are recorded is stored in a plurality of entries corresponding to logical addresses of a plurality of pages in which data is stored in the flash memory, and an address conversion table corresponding to the physical address of each block of the flash memory A block mapping table in which a plurality of entries include the number of invalid pages included in each block and the physical addresses of other blocks including the same number of invalid pages, and a block mapping table in which the number of invalid pages included in each block of the flash memory The erase target block table in which the physical addresses of the respective blocks are recorded in a plurality of entries is further stored. According to the present invention, since the searching and sorting of blocks for garbage collection is omitted, the delay time can be shortened to prevent the system from being temporarily stopped.

Description

소거 대상 블록의 매핑 테이블을 저장하는 플래시 메모리 제어장치 및 방법{Apparatus and method for controlling flash memory storing mapping table of block to erase}BACKGROUND OF THE INVENTION 1. Field of the Invention [0001] The present invention relates to a flash memory control apparatus and method for storing a mapping table of a block to be erased,

본 발명은 소거 대상 블록의 매핑 테이블을 저장하는 플래시 메모리 제어장치 및 방법에 관한 것으로, 보다 상세하게는, 플래시 메모리 내부에서 데이터의 이동 및 삭제를 수행하는 동안 소거 대상 블록을 결정하기 위해 사용되는 매핑 테이블을 유지 및 관리하는 장치 및 방법에 관한 것이다.The present invention relates to a flash memory control apparatus and method for storing a mapping table of a block to be erased, and more particularly, to a flash memory control apparatus and method for storing a mapping table used for determining a block to be erased during data movement and deletion in a flash memory To an apparatus and method for maintaining and managing tables.

플래시 메모리는 고성능, 저전력 및 소형화 등의 장점으로 인해 디지털 카메라, MP3 플레이어, 핸드폰 및 PDA 등과 같은 휴대용 디바이스의 저장장치로 많이 사용되고 있다. 또한 플래시 메모리의 용량이 증가함에 따라 PC나 노트북 및 서버 시스템 등의 디스크를 플래시 메모리로 대체하는 경우가 증가하고 있다.Flash memory is widely used as a storage device for portable devices such as digital cameras, MP3 players, mobile phones and PDAs because of its advantages such as high performance, low power and miniaturization. Also, as the capacity of flash memory increases, the number of replacement of disks such as PC, notebook computer, and server system with flash memory is increasing.

플래시 메모리는 메모리 셀의 물리적인 특성으로 인하여 쓰기 전 소거 연산을 수행한다. 즉, 플래시 메모리는 특정 페이지에 쓰기 동작을 수행할 경우 해당 페이지에 이미 저장된 데이터가 있다면 그 페이지가 속해 있는 블록 전체를 소거한 다음 쓰기 동작을 수행할 수 있다. 이와 같이 플래시 메모리는 하드 디스크와 달리 덮어쓰기를 지원하지 않기 때문에 특정 쓰기 동작에 대해 더 많은 시간과 연산을 필요로 할 수 있다. 또한 플래시 메모리는 동일한 블록에 대해 일정 횟수 이상의 소거 동작이 수행되면 해당 블록을 더 이상 사용할 수 없기 때문에 특정 블록에 소거 동작이 반복되는 것을 피해야 한다.The flash memory performs a pre-write erase operation due to the physical characteristics of the memory cell. That is, when a write operation is performed on a specific page, the flash memory erases the entire block to which the page belongs, and then performs a write operation. Unlike hard disks, flash memory does not support overwriting, so it may require more time and operations for certain write operations. In addition, if an erase operation is performed more than a predetermined number of times for the same block, the flash memory can not use the block any more, so it is necessary to avoid repeated erase operations in a specific block.

이러한 단점을 극복하기 위해 플래시 메모리를 제어하기 위한 방법으로 플래시 변환 레이어(Flash Translation Layer : FTL)가 도입되었다. FTL은 파일 시스템으로부터 논리 페이지 번호(Logical Page Number : LPN)를 입력받아 물리 페이지 번호(Physical Page Number : PPN)로 변환하여 플래시 메모리에 접근한다. FTL은 이와 같은 주소 변환을 위해 매핑 테이블(mapping table)을 생성하며, 생성된 매핑 테이블은 랜덤 액세스 메모리(RAM)에 저장된다.In order to overcome this drawback, Flash Translation Layer (FTL) has been introduced as a method for controlling flash memory. The FTL receives a logical page number (LPN) from the file system and converts it into a physical page number (PPN) to access the flash memory. FTL generates a mapping table for such address conversion, and the generated mapping table is stored in random access memory (RAM).

한편, 앞에서 설명한 바와 같이 플래시 메모리는 쓰기 전 소거(erase-before-write) 특성에 의해 덮어쓰기 연산을 수행하지 않고 새로운 페이지에 계속적으로 쓰기 연산을 수행하기 때문에, 같은 논리 주소 영역에 덮어쓰기 되는 경우에는 새로운 물리 주소 영역을 할당받고 이전의 물리 주소 영역에 저장된 데이터를 무효화시키는 이전 데이터 무효화 기법을 사용한다. 이와 같이 누적된 무효 데이터를 제거하고 유효 데이터를 취합하는 기법을 가비지 컬렉션(garbage collection)이라 하며, 플래시 메모리의 제어기에 의해 수행된다. 플래시 메모리 제어기가 가비지 컬렉션을 수행할 때에는 제거되는 블록의 유효한 페이지를 새로운 블록으로 복사한 후 이전 블록을 삭제하는 연산을 수행한다.On the other hand, as described above, since the flash memory continuously performs the write operation to the new page without performing the overwrite operation by the erase-before-write characteristic, if the same logical address area is overwritten A previous data invalidation technique is used in which a new physical address area is allocated and data stored in a previous physical address area is invalidated. The technique of eliminating accumulated invalid data and collecting valid data is called garbage collection and is performed by the controller of the flash memory. When the flash memory controller performs garbage collection, the valid page of the block to be removed is copied to the new block, and the previous block is deleted.

또한 플래시 메모리의 제어기는 가비지 컬렉션을 수행하는 순간에 가비지 컬렉션의 타깃이 되는 블록을 선정하기 위해 모든 블록들을 검색하여 유효 페이지 및 무효 페이지의 개수를 파악하여야 한다. 간단한 정렬 기법에 의해 타깃 블록을 검색할 수는 있으나, 모든 블록을 정렬하고 저장해야 한다는 단점이 존재한다. 또한 호스트의 요청에 의해 블록의 유효 및 무효 페이지가 계속적으로 변화하기 때문에 타깃 블록의 유지 및 보수도 용이하지 않다.In addition, the controller of the flash memory must search all the blocks to determine the number of valid pages and invalid pages in order to select the target block of the garbage collection at the moment of performing the garbage collection. Although the target block can be searched by a simple sorting technique, there is a disadvantage that all blocks must be sorted and stored. Also, since the valid and invalid pages of the block continuously change at the request of the host, maintenance and repair of the target block is not easy.

한국공개특허 제2004-0086500호에는 물리 블록에 유효한 데이터가 기억되어 있는지 여부를 나타내는 유효 블록 테이블을 참조하여 무효인 물리 블록을 지정하여 소거를 실행하는 제어 방법이 개시되어 있다. 그러나 기존의 매핑 테이블을 활용하는 것이 아닌 새로운 유효 블록 테이블을 생성하며, 블록의 유효 또는 무효 여부만 나타낼 뿐 가비지 컬렉션을 수행하는 순간에 타깃 블록을 즉시 결정하기는 어렵다는 문제가 있다.Korean Patent Publication No. 2004-0086500 discloses a control method of erasing by designating an invalid physical block with reference to a valid block table indicating whether valid data is stored in the physical block. However, there is a problem that it is difficult to immediately determine a target block at the moment of performing garbage collection only by generating a new valid block table instead of utilizing the existing mapping table and indicating whether the block is valid or invalid.

또한 한국등록특허 제0789406호에는 가비지 컬렉션의 타깃 블록을 결정하기 위해 가비지 컬렉션 코스트를 계산하는 방법이 개시되어 있으나, 이 방법 역시 가비지 컬렉션 코스트를 매번 새롭게 산출해야 하므로 유지 및 보수가 어렵다는 단점을 가진다.Korean Patent Registration No. 0789406 discloses a method of calculating a garbage collection cost to determine a target block of a garbage collection. However, this method also has a disadvantage in that it is difficult to maintain and repair the garbage collection cost since the garbage collection cost must be newly calculated every time.

본 발명이 이루고자 하는 기술적 과제는, 호스트로부터의 데이터 요청을 수행할 때마다 타깃 블록의 우선순위를 재설정함으로써 가비지 컬렉션이 수행될 때의 지연 시간을 줄일 수 있으며, 가비지 컬렉션을 수행하는 도중 호스트로부터의 제어신호에 즉시 응답할 수 있는 소거 대상 블록의 매핑 테이블을 저장하는 플래시 메모리 제어장치 및 방법을 제공하는 데 있다.SUMMARY OF THE INVENTION The present invention has been made in view of the above problems, and it is an object of the present invention to reduce the delay time when garbage collection is performed by resetting the priority of a target block each time a data request is made from a host, And a mapping table of a block to be erased capable of immediately responding to a control signal.

상기의 기술적 과제를 달성하기 위한, 본 발명에 따른 소거 대상 블록의 매핑 테이블을 저장하는 플래시 메모리 제어장치는, 호스트와 제어신호 및 데이터를 송수신하는 호스트 인터페이스부; 상기 호스트로부터 수신된 제어신호에 따라 상기 데이터를 플래시 메모리에 저장하거나 상기 플래시 메모리로부터 독출하는 메모리 인터페이스부; 및 상기 플래시 메모리에서 상기 데이터가 저장되는 복수의 페이지 각각의 논리 주소에 대응하는 복수의 엔트리에 상기 각 페이지의 물리 주소가 기록된 주소 변환 테이블이 저장되는 저장부;를 구비하며, 상기 저장부에는 상기 플래시 메모리의 각 블록의 물리 주소에 대응하는 복수의 엔트리에 상기 각 블록에 포함된 무효 페이지의 개수 및 동일한 개수의 무효 페이지를 포함하는 다른 블록의 물리 주소가 기록된 블록 매핑 테이블과, 상기 플래시 메모리의 각 블록에 포함된 무효 페이지의 개수에 대응하는 복수의 엔트리에 상기 각 블록의 물리 주소가 기록된 소거 대상 블록 테이블이 더 저장된다.According to another aspect of the present invention, there is provided a flash memory control device for storing a mapping table of a block to be erased, comprising: a host interface unit for transmitting and receiving control signals and data to and from a host; A memory interface unit for storing the data in the flash memory or reading the data from the flash memory according to a control signal received from the host; And a storage unit storing an address translation table in which a physical address of each page is recorded in a plurality of entries corresponding to logical addresses of a plurality of pages in which the data is stored in the flash memory, A block mapping table in which a plurality of entries corresponding to the physical addresses of the respective blocks of the flash memory are recorded with the physical addresses of other blocks including the invalid pages and the same number of invalid pages included in each block; The erase target block table in which the physical addresses of the respective blocks are recorded is further stored in a plurality of entries corresponding to the number of invalid pages included in each block of the memory.

상기의 기술적 과제를 달성하기 위한, 본 발명에 따른 소거 대상 블록의 매핑 테이블을 저장하는 플래시 메모리 제어방법은, (a) 플래시 메모리의 각 블록에 포함된 무효 페이지의 개수에 대응하는 복수의 엔트리에 상기 각 블록의 물리 주소가 기록된 소거 대상 블록 테이블을 참조하여 가비지 컬렉션을 수행하기 위해 데이터를 소거할 블록인 소거 대상 블록을 선택하는 단계; (b) 상기 선택된 소거 대상 블록의 물리 주소에 저장된 데이터를 소거하는 단계; 및 (c) 가비지 컬렉션을 수행한 후 상기 소거 대상 블록 테이블에서 상기 소거 대상 블록의 물리 주소가 기록되어 있던 엔트리를 갱신하는 단계;를 갖는다.According to another aspect of the present invention, there is provided a flash memory control method for storing a mapping table of a block to be erased according to the present invention, the method comprising the steps of: (a) Selecting a block to be erased as a block to erase data to perform garbage collection with reference to a block table to be erased in which physical addresses of the blocks are recorded; (b) erasing the data stored in the physical address of the selected block to be erased; And (c) updating an entry in which the physical address of the block to be erased has been recorded in the erasure target block table after performing garbage collection.

본 발명에 따른 소거 대상 블록의 매핑 테이블을 저장하는 플래시 메모리 제어장치 및 방법에 의하면, 가비지 컬렉션에서 소거 대상 블록을 즉시 선택할 수 있도록 소거 대상 블록 테이블을 유지 및 관리함으로써, 가비지 컬렉션이 블록 단위로 이루어지며, 데이터 복사는 페이지 단위로 수행되므로, 가비지 컬렉션을 수행하는 도중 호스트로부터의 제어신호에 따른 연산을 즉시 수행할 수 있다. 또한 가비지 컬렉션을 위한 블록의 탐색 및 정렬 과정이 생략되므로 지연 시간을 단축시켜 시스템의 일시 정지 현상을 방지할 수 있다.According to the flash memory control apparatus and method for storing the mapping table of the erasure target block according to the present invention, the erasure target block table is maintained and managed so that the erasure target block can be immediately selected from the garbage collection, Since data copying is performed page by page, arithmetic operations according to control signals from the host can be performed immediately during garbage collection. In addition, since the search and sorting of the blocks for garbage collection is omitted, the delay time can be shortened to prevent the system from being suspended.

도 1은 본 발명에 따른 소거 대상 블록의 매핑 테이블을 저장하는 플래시 메모리 제어장치에 대한 바람직한 실시예의 구성을 도시한 블록도,
도 2는 저장부에 저장되는 각각의 테이블의 엔트리 구조를 도시한 도면,
도 3은 소거 대상 블록 테이블의 초기 상태를 도시한 도면,
도 4는 페이지 덮어쓰기에 의해 1개의 무효 페이지가 발생한 블록의 링크가 기록되는 예를 도시한 도면,
도 5는 페이지 덮어쓰기에 의해 물리 주소가 0인 블록에 2개의 무효 페이지가 발생한 경우를 도시한 도면,
도 6은 도 5에 도시된 것과 같은 상태에서 무효 페이지가 2개인 블록이 한 개 추가된 경우를 도시한 도면,
도 7은 도 6에 도시된 것과 같은 상태에서 무효 페이지의 개수가 2개인 블록이 한 개 추가된 경우를 도시한 도면,
도 8은 소거 대상 블록 테이블의 128번 엔트리에 링크된 블록을 소거하는 가비지 컬렉션이 수행된 후 엔트리 값이 갱신되는 예를 도시한 도면, 그리고,
도 9는 본 발명에 따른 소거 대상 블록의 매핑 테이블을 저장하는 플래시 메모리 제어방법에 대한 바람직한 실시예의 수행과정을 도시한 흐름도이다.
1 is a block diagram showing a configuration of a preferred embodiment of a flash memory control apparatus for storing a mapping table of an erasure target block according to the present invention;
2 is a diagram showing an entry structure of each table stored in the storage unit,
3 is a diagram showing an initial state of a block table to be erased,
4 is a diagram showing an example in which a link of a block in which one invalid page is generated by page overwriting is recorded,
5 shows a case where two invalid pages are generated in a block whose physical address is 0 by page overwriting,
6 shows a case where one block having two invalid pages is added in a state as shown in FIG. 5,
FIG. 7 is a diagram showing a case where one block having two invalid pages is added in a state as shown in FIG. 6;
8 is a diagram illustrating an example in which an entry value is updated after garbage collection for erasing a block linked to an entry 128 in the erasure object block table is performed,
9 is a flowchart illustrating a process of performing a preferred embodiment of a flash memory control method for storing a mapping table of an erasure target block according to the present invention.

이하에서 첨부된 도면들을 참조하여 본 발명에 따른 소거 대상 블록의 매핑 테이블을 저장하는 플래시 메모리 제어장치 및 방법의 바람직한 실시예에 대해 상세하게 설명한다.Hereinafter, a preferred embodiment of a flash memory control apparatus and method for storing a mapping table of an erasure target block according to the present invention will be described in detail with reference to the accompanying drawings.

도 1은 본 발명에 따른 소거 대상 블록의 매핑 테이블을 저장하는 플래시 메모리 제어장치에 대한 바람직한 실시예의 구성을 도시한 블록도이다.1 is a block diagram showing a configuration of a preferred embodiment of a flash memory control apparatus for storing a mapping table of an erasure target block according to the present invention.

도 1을 참조하면, 본 발명에 따른 플래시 메모리 제어장치(100)는 호스트(200)와 플래시 메모리(300) 사이에서 동작하며, 호스트 인터페이스부(110), 메모리 인터페이스부(120) 및 저장부(130)를 구비한다. 이때 저장부(130)는 랜덤 엑세스 메모리(RAM)의 형태로 구현되어 앞에서 설명한 FTL, 즉 주소 변환 테이블이 저장된다.1, a flash memory control apparatus 100 according to the present invention operates between a host 200 and a flash memory 300 and includes a host interface unit 110, a memory interface unit 120, 130). At this time, the storage unit 130 is implemented in the form of a random access memory (RAM), and stores the FTL described above, that is, the address conversion table.

본 발명에 따른 플래시 메모리 제어장치(100)에서 호스트 인터페이스부(110)는 호스트(200)와 제어신호 및 데이터를 송수신하며, 메모리 인터페이스부(120)는 호스트(200)로부터 수신된 제어신호에 따라 데이터를 플래시 메모리(300)에 저장하거나, 플레시 메모리(300)로부터 데이터를 독출한다.The host interface unit 110 transmits and receives control signals and data to and from the host 200 in the flash memory control apparatus 100 according to the present invention and the memory interface unit 120 receives the control signals and data according to control signals received from the host 200 Data is stored in the flash memory 300 or data is read out from the flash memory 300. [

또한 본 발명에 따른 플래시 메모리 제어장치(100)는 가비지 컬렉션을 수행할 때 발생하는 지연시간의 문제를 해결하기 위하여 저장부(130)에 주소 변환 테이블 외에 소거 대상 블록을 결정하기 위한 테이블을 추가로 저장하고, 가비지 컬렉션 수행시에 데이터를 소거할 블록을 저장된 테이블로부터 선택한다.The flash memory control apparatus 100 according to the present invention further includes a table for determining a block to be erased in addition to the address conversion table in the storage unit 130 in order to solve the problem of delay time occurring when performing garbage collection And selects a block to be erased from the stored table when performing garbage collection.

구체적으로, 저장부(130)에는 플래시 메모리(300)에서 데이터가 저장되는 복수의 페이지 각각의 논리 주소에 대응하는 복수의 엔트리에 각 페이지의 물리 주소가 기록된 주소 변환 테이블이 저장되며, 이는 종래기술과 동일하다. 다만, 본 발명에 따른 플래시 메모리 제어장치(100)에서는 주소 변환 테이블의 각 엔트리 내의 일부 영역에 해당 페이지가 유효인지 여부를 나타내는 플래그(flag)를 추가로 기록할 수 있다. 이러한 경우 4 바이트의 엔트리 내에 페이지의 물리 주소와 유효 정보 플래그를 함께 포함시킬 수 있다.Specifically, the storage unit 130 stores an address conversion table in which physical addresses of respective pages are recorded in a plurality of entries corresponding to logical addresses of a plurality of pages in which data is stored in the flash memory 300, Technology. However, in the flash memory control apparatus 100 according to the present invention, a flag indicating whether the corresponding page is valid may additionally be recorded in a part of each entry of the address conversion table. In this case, the physical address of the page and the valid information flag can be included together in the 4-byte entry.

가비지 컬렉션을 위해 저장부(130)에 추가로 저장되는 테이블은 블록 매핑 테이블 및 소거 대상 블록 테이블로서, 블록 매핑 테이블에는 플래시 메모리(300)의 각 블록의 물리 주소에 대응하는 복수의 엔트리에 각 블록에 포함된 무효 페이지의 개수 및 동일한 개수의 무효 페이지를 포함하는 다른 블록의 물리 주소가 기록되며, 소거 대상 블록 테이블에는 플래시 메모리(300)의 각 블록에 포함된 무효 페이지의 개수에 대응하는 복수의 엔트리에 각 블록의 물리 주소가 기록된다.The table further stored in the storage unit 130 for the garbage collection is a block mapping table and an erasing subject block table. In the block mapping table, a plurality of entries corresponding to the physical addresses of the respective blocks of the flash memory 300, Corresponding to the number of invalid pages included in each block of the flash memory 300 are recorded in the erase object block table, and the physical addresses of other blocks including the same number of invalid pages are recorded The physical address of each block is recorded in the entry.

이하에서는 저장부(130)에 저장되는 주소 변환 테이블, 블록 매핑 테이블 및 소거 대상 블록 테이블의 각 엔트리에 기록되는 정보에 대하여 상세히 설명한다.Hereinafter, information recorded in each entry of the address conversion table, the block mapping table, and the erasure target block table stored in the storage unit 130 will be described in detail.

도 2는 저장부(130)에 저장되는 각각의 테이블의 엔트리 구조를 도시한 도면이다. 도 2의 (a)는 주소 변환 테이블의 하나의 엔트리에 기록되는 정보를 나타내며, (b)는 블록 매핑 테이블의 하나의 엔트리, (c)는 소거 대상 블록 테이블의 하나의 엔트리에 기록되는 정보를 나타낸 것이다.2 is a diagram showing an entry structure of each table stored in the storage unit 130. As shown in FIG. FIG. 2A shows information recorded in one entry of the address conversion table, FIG. 2B shows one entry in the block mapping table, FIG. 2C shows information to be recorded in one entry of the block table to be erased, .

먼저 도 2의 (a)를 참조하면, 주소 변환 테이블은 플래시 메모리(300) 내지 플래시 메모리(300)로 이루어진 저장장치에 포함된 페이지의 개수와 동일한 개수의 엔트리로 구성되며, 각각의 엔트리에는 페이지의 논리 주소를 통해 접근할 수 있다. 특정 페이지의 논리 주소를 통해 주소 변환 테이블의 엔트리에 접근하면 종래 기술과 같이 해당 페이지의 물리 주소(PPN)를 알 수 있으며, 나아가 페이지의 물리 주소를 통해 엔트리에 접근하는 경우에는 해당 페이지가 유효 페이지에 해당하는지 여부(Valid)를 확인할 수 있다. 도 2의 (a)에서 괄호 안에 표시된 숫자는 엔트리 내에서 해당 정보가 차지하는 비트 수를 나타낸다.Referring to FIG. 2A, the address conversion table is composed of the same number of entries as the number of pages included in the storage device including the flash memory 300 and the flash memory 300, Can be accessed through the logical address of. When the entry of the address conversion table is accessed through the logical address of the specific page, the physical address (PPN) of the page can be known as in the prior art. Further, when the entry is accessed through the physical address of the page, (Valid). ≪ / RTI > The number in parentheses in FIG. 2 (a) indicates the number of bits occupied by the corresponding information in the entry.

또한 도 2의 (b)를 참조하면, 블록 매핑 테이블의 엔트리 개수는 플래시 메모리(300) 내지 플래시 메모리(300)로 이루어진 저장장치에 포함된 블록의 개수와 동일하며, 각각의 엔트리에는 블록의 물리 주소를 통해 접근 가능하다.2B, the number of entries in the block mapping table is the same as the number of blocks included in the storage device including the flash memory 300 and the flash memory 300. In each entry, Address.

블록 매핑 테이블의 각 엔트리에는 배드(bad) 블록을 체크하기 위한 플래그(BAD), 해당 블록이 삭제된 상태인지 여부를 나타내는 플래그(ERASE), 해당 블록이 블록 매핑 테이블에 구속되는지 여부를 나타내는 플래그(FREE), 해당 블록에 포함된 무효 페이지의 개수(invPage), 해당 블록 내에서 순차적으로 몇 번째 페이지까지 사용되고 있는지에 관한 정보(curPage) 및 해당 블록에 대하여 수행된 소거 연산의 횟수(eCount)를 비롯하여 가비지 컬렉션을 위한 링크 정보(preBlk, nextBlk)가 기록된다.Each entry of the block mapping table includes a flag (BAD) for checking a bad block, a flag (ERASE) indicating whether the corresponding block is deleted, a flag indicating whether the block is bound to the block mapping table FREE), the number of invalid pages included in the block (invPage), information on how many pages are sequentially used in the block (curPage), and the number of erase operations performed on the block (eCount) Link information (preBlk, nextBlk) for garbage collection is recorded.

본 발명에 다른 플래시 메모리 제어장치(100)는 가비지 컬렉션을 수행할 때 발생하는 시간 지연을 방지하기 위하여 플래시 메모리(300) 또는 저장장치에 포함된 복수의 블록 중에서 동일한 개수의 무효 페이지를 포함하는 블록들, 즉 블록 매핑 테이블에서 invPage의 값이 동일한 블록들을 링크에 의해 연결하는 방법을 사용한다. 즉, 복수의 블록 중에서 n개의 무효 페이지를 포함하는 블록들은 링크에 의해 서로 연결되며, 구체적인 연결 순서는 해당 블록에 포함된 무효 페이지의 개수가 n개에 도달하게 된 순서에 따른다.The flash memory control apparatus 100 according to the present invention may include a flash memory 300 or a block including the same number of invalid pages among a plurality of blocks included in the storage device to prevent a time delay occurring when performing garbage collection, , That is, a method of linking blocks having the same value of invPage in the block mapping table by link. That is, the blocks including the n invalid pages among the plurality of blocks are connected to each other by a link, and the concrete connection order is in the order that the number of invalid pages included in the block reaches n.

이에 따르면 복수의 블록 중에서 최초로 n개의 무효 페이지를 포함하게 된 블록이 링크에 의해 연결된 배열의 가장 처음에 위치하게 되며, 이후 무효 페이지의 개수가 n개에 도달하는 블록들은 순차적으로 배열에 추가된다. 도 2의 (b)에 도시된 블록 매핑 테이블의 엔트리에서 preBlk은 invPage의 값이 n으로 동일한 블록들 중 해당 블록에 앞서 n의 invPage 값을 가지게 된 블록의 링크 정보, 즉 물리 주소이며, nextBlk은 invPage의 값이 n으로 동일한 블록들 중 해당 블록 다음으로 n의 invPage 값을 가지게 된 블록의 링크 정보, 즉 물리 주소이다. 만약 해당 블록이 최초로 n개의 무효 페이지를 포함하게 되었다면 preBlk의 값은 'null'이 되며, 해당 블록 이후에 n개의 무효 페이지를 포함하게 된 블록이 존재하지 않는다면 nextBlk의 값이 'null'로 기록된다.According to this, a block including the first n invalid pages among the plurality of blocks is positioned at the beginning of the array connected by the link, and then blocks having the number of invalid pages reaching n are sequentially added to the array. In the entry of the block mapping table shown in FIG. 2B, preBlk is the link information of the block having the invPage value of n before the corresponding block among the blocks having the value of invPage equal to n, that is, the physical address, and nextBlk That is, the link information of the block having the invPage value of n next to the corresponding block among the blocks having the value of invPage equal to n, that is, the physical address. If the block first contains n invalid pages, the value of preBlk becomes 'null'. If there are no blocks that contain n invalid pages after the block, the value of nextBlk is recorded as 'null' .

이와 같이 블록 매핑 테이블의 각 엔트리에 동일한 개수의 무효 페이지를 포함하는 다른 블록의 링크가 기록됨에 따라 플래시 메모리(300) 내지 저장장치 내에서 무효 페이지의 개수가 동일한 블록들은 순차적으로 연결된 하나의 배열을 구성하게 된다. 이후 데이터 소거 등에 의해 블록에 포함된 무효 페이지의 개수에 변동이 발생하면 해당 블록의 물리 주소에 대응하는 블록 매핑 테이블의 엔트리에서 invPage, preBlk 및 nextBlk의 값을 수정할 수 있다. 이러한 엔트리의 수정은 메모리 인터페이스부(120)에 의해 수행될 수 있다.As described above, since the links of other blocks including the same number of invalid pages are recorded in each entry of the block mapping table, blocks having the same number of invalid pages in the flash memory 300 or the storage device are sequentially connected Respectively. If there is a change in the number of invalid pages included in the block due to data erasure or the like, the values of invPage, preBlk and nextBlk can be modified in entries of the block mapping table corresponding to the physical address of the block. Modification of such an entry can be performed by the memory interface unit 120. [

도 2의 (b)와 같은 엔트리를 가지는 블록 매핑 테이블은 가비지 컬렉션에 있어서 소거 대상 블록 테이블과 서로 연관되어 사용된다. 소거 대상 블록 테이블에는 하나의 블록에 포함된 페이지 수에 1을 더한 것과 동일한 개수의 엔트리가 포함되며, 각각의 엔트리 번호는 하나의 블록에 포함된 무효 페이지의 개수에 대응된다. 또한 소거 대상 블록 테이블의 각 엔트리에는 엔트리 번호와 동일한 개수의 무효 페이지를 포함하는 블록의 물리 주소, 구체적으로는 물리 주소를 통해 접근 가능한 블록 매핑 테이블의 링크가 기록된다.The block mapping table having an entry as shown in FIG. 2 (b) is used in association with the block table to be erased in the garbage collection. The erase target block table includes the same number of entries as the number of pages included in one block plus one, and each entry number corresponds to the number of invalid pages included in one block. Each entry of the block table to be erased records a physical address of a block including invalid pages equal in number to the entry number, specifically, a link of a block mapping table accessible through a physical address.

도 2의 (c)를 참조하면, 소거 대상 블록 테이블의 각 엔트리에는 OLD 및 LAST의 두 가지 링크가 기록된다. 이러한 두 가지의 링크는 앞에서 설명한 블록들의 배열, 즉 동일한 개수의 무효 페이지를 포함하며 링크에 의해 연결된 블록들의 배열에서 최초의 블록의 물리 주소 및 배열의 마지막 블록의 물리 주소를 각각 나타낸다. 만약 엔트리 번호와 동일한 개수의 무효 페이지를 포함하는 블록이 한 개라면, 해당 엔트리의 OLD와 LAST의 값은 해당 블록의 물리 주소로 동일하게 설정된다.Referring to (c) of FIG. 2, two entries of OLD and LAST are recorded in each entry of the block table to be erased. These two links represent the physical address of the first block and the physical address of the last block of the array in the arrangement of the blocks described above, that is, the same number of invalid pages and in the arrangement of blocks linked by the link. If there is only one block containing the same number of invalid pages as the entry number, the values of OLD and LAST of the corresponding entry are set to the same physical address of the corresponding block.

예를 들면, 번호가 128인 엔트리에는 무효 페이지의 개수가 128개인 블록의 물리 주소가 기록된다. 만약 하나의 블록이 128개의 페이지로 구성되어 있다면, 해당 블록의 모든 페이지가 무효 페이지에 해당하며, 이는 가비지 컬렉션을 수행할 때 가장 우선적으로 소거되어야 하는 블록임을 나타낸다.For example, in the entry having the number 128, the physical address of the block having the number of invalid pages of 128 is recorded. If one block is composed of 128 pages, all pages of the block correspond to invalid pages, which indicates that the block should be erased most first when performing garbage collection.

도 3은 소거 대상 블록 테이블의 초기 상태를 도시한 도면이고, 도 4 내지 도 7은 페이지 덮어쓰기에 의해 발생한 무효 페이지의 개수에 따라 소거 대상 블록 테이블의 엔트리에 기록되는 링크의 실시예를 도시한 도면이다.FIG. 3 is a diagram showing an initial state of a block table to be erased, and FIGS. 4 to 7 show an embodiment of a link recorded in an entry of a block table to be erased according to the number of invalid pages generated by page overwriting FIG.

도 3을 참조하면, 소거 대상 블록 테이블은 0에서 128까지의 엔트리로 구성되며, 이는 하나의 블록을 구성하는 페이지의 개수가 128개임을 의미한다. 소거 대상 블록 테이블이 최초로 생성되면 어떠한 블록에도 무효 페이지가 발생하지 않은 상태이므로 모든 엔트리의 OLD 및 LAST 값은 'null'로 설정된다.Referring to FIG. 3, the erase target block table is composed of entries from 0 to 128, which means that the number of pages constituting one block is 128. When the block table to be erased is first generated, no invalid pages are generated in any block, so the OLD and LAST values of all the entries are set to 'null'.

도 4는 페이지 덮어쓰기에 의해 1개의 무효 페이지가 발생한 블록의 링크가 기록되는 예를 도시한 도면이다. 도 4를 참조하면, 무효 페이지의 개수가 1개이므로 소거 대상 블록 테이블의 1번 엔트리에 해당 블록의 물리 주소가 기록되며, 이때 무효 페이지의 개수가 1개인 블록은 물리 주소가 0인 블록 한 개이므로 OLD와 LAST에 동일하게 0의 물리 주소가 기록된다. 또한 블록 매핑 테이블에서 물리 주소 0에 대응하는 엔트리의 preBlk 및 nextBlk의 값은 'null'로 설정된다.4 is a diagram showing an example in which a link of a block in which one invalid page is generated by page overwriting is recorded. Referring to FIG. 4, since the number of invalid pages is one, the physical address of the corresponding block is recorded in the entry # 1 of the block table to be erased. In this case, the block having the number of invalid pages is one block The physical address of 0 is recorded in OLD and LAST in the same manner. The value of preBlk and nextBlk of the entry corresponding to physical address 0 in the block mapping table is set to 'null'.

도 4에서 화살표는 링크를 의미하며, 소거 대상 블록 테이블의 엔트리에 기록된 블록의 물리 주소를 통해 해당 물리 주소에 대응하는 블록 매핑 테이블의 엔트리에 접근할 수 있음을 나타낸다.In FIG. 4, the arrow indicates a link, which indicates that an entry in the block mapping table corresponding to the physical address can be accessed through the physical address of the block recorded in the entry of the block table to be erased.

도 5는 페이지 덮어쓰기에 의해 물리 주소가 0인 블록에 2개의 무효 페이지가 발생한 경우를 도시한 도면이다. 도 5를 참조하면, 물리 주소가 0인 블록의 무효 페이지의 개수가 한 개 증가하였으므로, 도 4에서 0의 물리 주소가 기록되어 있던 소거 대상 블록 테이블의 1번 엔트리는 초기화되고, 2번 엔트리에 0의 물리 주소가 기록된다. 도 4와 마찬가지로 무효 페이지가 2개인 블록이 한 개이므로 2번 엔트리의 OLD 및 LAST에는 물리 주소 0이 동일하게 기록된다.5 is a diagram showing a case where two invalid pages are generated in a block whose physical address is 0 by page overwriting. Referring to FIG. 5, since the number of invalid pages in the block having the physical address 0 is increased by one, the entry No. 1 of the block table to be erased in which the physical address of 0 is recorded in FIG. 4 is initialized, 0 physical address is recorded. As in FIG. 4, since there is only one block having two invalid pages, the physical address 0 is equally recorded in OLD and LAST of the entry No. 2.

도 6은 도 5에 도시된 것과 같은 상태에서 무효 페이지가 2개인 블록이 한 개 추가된 경우를 도시한 도면이다. 동일한 개수의 무효 페이지를 포함하는 블록이 복수 개이므로 앞에서 설명한 바와 같이 링크에 의해 연결된 블록들의 배열이 생성된다. 도 6을 참조하면, 최초로 2개의 무효 페이지를 포함하게 된 물리 주소 0의 블록에 이어서 물리 주소 1의 블록에 2개의 무효 페이지가 발생하였음을 확인할 수 있다. 따라서 소거 대상 블록 테이블의 2번 엔트리에서 OLD의 값은 물리 주소 0으로 동일하게 유지되며, LAST의 값이 물리 주소 1로 갱신된다.6 is a diagram showing a case where one block having two invalid pages is added in a state as shown in FIG. Since there are a plurality of blocks including the same number of invalid pages, an array of blocks linked by the link is generated as described above. Referring to FIG. 6, it can be confirmed that two invalid pages are generated in the block of physical address 1 following the block of physical address 0 including two invalid pages for the first time. Therefore, the value of OLD in the entry 2 of the block table to be erased remains the same as the physical address 0, and the value of LAST is updated to the physical address 1.

또한 물리 주소가 0인 블록과 1인 블록은 서로 연결되어야 하므로, 블록 매핑 테이블에서 물리 주소 0에 대응하는 엔트리의 preBlk 값은 'null'로, nextBlk 값은 '1'로 설정되며, 블록 매핑 테이블에서 물리 주소 1에 대응하는 엔트리의 preBlk 값은 '0'으로, nextBlk 값은 'null'로 설정된다. 또한 도 4 내지 도 6에서 블록 매핑 테이블의 각 엔트리의 invPage 값 역시 발생한 무효 페이지의 개수에 따라 갱신되는 것을 확인할 수 있다.Since a block having a physical address of 0 and a block having a physical address of 0 are to be connected to each other, the preBlk value of the entry corresponding to the physical address 0 in the block mapping table is set to 'null' and the value of the nextBlk is set to '1' The preBlk value of the entry corresponding to the physical address 1 is set to '0', and the nextBlk value is set to 'null'. 4 to 6, the invPage value of each entry of the block mapping table is also updated according to the number of invalid pages generated.

도 7은 도 6에 도시된 것과 같은 상태에서 무효 페이지의 개수가 2개인 블록이 한 개 추가된 경우를 도시한 도면이다. 도 7을 참조하면, 물리 주소가 1인 블록에 이어 2개의 무효 페이지를 포함하게 된 블록의 물리 주소는 2이며, 블록 매핑 테이블에서 물리 주소 2에 대응하는 엔트리의 invPage 및 preBlk 값이 갱신된다. 또한 동일한 개수의 무효 페이지를 포함하는 블록들의 배열에서 물리 주소가 1인 블록 다음에 새로운 블록이 추가되므로, 블록 매핑 테이블에서 물리 주소 1에 대응하는 엔트리의 nextBlk 값이 물리 주소 2로 갱신된다. 한편, 소거 대상 블록 테이블의 2번 엔트리의 경우, OLD 값은 물리 주소 0으로 동일하게 유지되며, LAST 값이 배열의 마지막에 위치하는 블록의 물리 주소인 '2'로 갱신된다.FIG. 7 is a diagram showing a case where one block having two invalid pages is added in a state as shown in FIG. Referring to FIG. 7, the physical address of a block including two invalid pages following a block having a physical address of 1 is 2, and the values of invPage and preBlk of the entry corresponding to the physical address 2 in the block mapping table are updated. In addition, since a new block is added after the block having the physical address of 1 in the array of blocks including the same number of invalid pages, the nextBlk value of the entry corresponding to the physical address 1 in the block mapping table is updated to the physical address 2. On the other hand, in the case of the second entry of the block table to be erased, the OLD value remains the same at the physical address 0, and the LAST value is updated to '2', which is the physical address of the block located at the end of the array.

이상에서 설명한 것과 같은 블록 매핑 테이블 및 소거 대상 블록 테이블의 갱신은 호스트(200)로부터 호스트 인터페이스부(110)를 통해 수신되는 제어신호에 따라 메모리 인터페이스부(120)가 덮어쓰기를 수행하여 무효 페이지가 발생할 때마다 이루어지며, 도 2의 (a)에 도시된 주소 변환 테이블의 각 엔트리 역시 덮어쓰기가 수행될 때마다 갱신된다.In the update of the block mapping table and the erase object block table as described above, the memory interface unit 120 performs overwriting according to the control signal received from the host 200 via the host interface unit 110, And each entry of the address conversion table shown in FIG. 2 (a) is also updated each time overwriting is performed.

메모리 인터페이스부(120)는 이상과 같이 호스트(200)로부터 전달되는 제어신호에 따라 데이터의 쓰기 및 읽기 연산을 수행하는 동안 필요에 따라 도 2의 (a) 내지 (c)에 도시된 각 테이블의 엔트리를 갱신하고, 이후 가비지 컬렉션을 수행할 때 소거 대상 블록 테이블의 각 엔트리에 기록된 정보를 이용한다.2 (a) to 2 (c), as needed, during the data write and read operations in accordance with the control signal transmitted from the host 200 as described above, Updates the entry, and uses the information recorded in each entry of the block table to be erased when performing garbage collection thereafter.

메모리 인터페이스부(120)는 가비지 컬렉션을 수행할 때 소거 대상 블록 테이블의 최대 번호의 엔트리에서 OLD 값으로 기록된 물리 주소에 대응하는 블록을 소거한다. 즉, 가장 먼저 최대 개수의 무효 페이지를 포함하게 된 블록이 가비지 컬렉션에서 최우선순위의 소거 대상 블록으로 선택된다. 만약 최대 번호의 엔트리에 기록된 링크가 존재하지 않으면, 메모리 인터페이스부(120)는 링크가 기록되어 있는 엔트리 중 최대 번호의 엔트리에서 OLD 값으로 기록된 물리 주소에 대응하는 블록을 소거한다.When performing garbage collection, the memory interface unit 120 erases the block corresponding to the physical address recorded as the OLD value in the entry of the maximum number of the erasure target block table. That is, a block that includes the maximum number of invalid pages first is selected as the erasure target block of the highest priority in the garbage collection. If there is no link recorded in the entry of the maximum number, the memory interface unit 120 erases the block corresponding to the physical address recorded as the OLD value in the entry of the maximum number among the entries in which the link is recorded.

도 8은 소거 대상 블록 테이블의 128번 엔트리에 링크된 블록을 소거하는 가비지 컬렉션이 수행된 후 엔트리 값이 갱신되는 예를 도시한 도면이다. 도 8의 (a)는 가비지 컬렉션이 수행되기 이전 소거 대상 블록 테이블의 128번 엔트리를 나타낸 것으로, OLD의 값은 0으로, LAST의 값은 2로 설정되어 있다. 또한 무효 페이지의 개수가 128개인 블록들은 물리 주소 0, 1, 2의 순서로 연결된다.8 is a diagram showing an example in which the entry value is updated after the garbage collection for erasing the block linked to the 128th entry of the erasure object block table is performed. FIG. 8A shows the 128th entry of the block table to be erased before the garbage collection is performed. The value of OLD is set to 0, and the value of LAST is set to 2. Blocks with 128 invalid pages are connected in the order of physical address 0, 1, 2.

메모리 인터페이스부(120)는 가비지 컬렉션을 수행할 때 소거될 블록을 결정하기 위해 소거 대상 블록 테이블을 참조하며, 이때 무효 페이지의 개수가 가장 많은 블록을 소거 대상 블록으로 결정한다. 하나의 블록이 128개의 페이지로 구성되는 경우, 도 8의 (a)에 도시된 바와 같이 최대 번호의 엔트리인 128번 엔트리에 링크된 블록이 존재하므로, 메모리 인터페이스부(120)는 128번 엔트리의 OLD 값에 대응하는 물리 주소 0의 블록을 소거 대상 블록으로 결정하여 가비지 컬렉션을 수행한다. 0번 블록의 페이지 전체가 무효 페이지에 해당하므로 유효 페이지에 저장된 데이터의 이동 등과 같은 부가적인 연산은 수행할 필요가 없다.The memory interface unit 120 refers to the erase target block table to determine a block to be erased when performing garbage collection, and determines a block having the largest number of invalid pages as an erase target block. In the case where one block is composed of 128 pages, as shown in FIG. 8A, since there is a block linked to the 128th entry which is the entry of the maximum number, the memory interface unit 120 stores A block having a physical address 0 corresponding to the OLD value is determined as an erase target block and garbage collection is performed. Since the entire page of the block 0 corresponds to an invalid page, additional operations such as movement of data stored in the valid page need not be performed.

메모리 인터페이스부(120)에 의해 0번 블록에 대한 소거 연산이 수행되었으므로, 0번 블록에 포함된 무효 페이지의 개수는 0이 된다. 따라서 메모리 인터페이스부(120)는 블록 소거 연산 후 소거 대상 블록 테이블 및 블록 매핑 테이블에서 해당하는 엔트리를 갱신한다. 구체적으로, 도 8의 (b)에 도시된 바와 같이 소거 대상 블록 테이블에서 128번 엔트리의 OLD 값은 0번 블록에 이어서 128개의 무효 페이지를 포함하는 1번 블록의 물리 주소로 갱신되며, 블록 매핑 테이블에서 물리 주소 1에 대응하는 엔트리의 preBlk 값 역시 0번 블록이 소거되었으므로 'null'로 갱신된다. 또한 블록 매핑 테이블에서 물리 주소 0에 대응하는 엔트리는 블록이 소거됨에 따라 초기화된다.Since the memory interface unit 120 has performed the erase operation on the block 0, the number of invalid pages included in the block 0 is zero. Accordingly, the memory interface unit 120 updates the corresponding entry in the erase object block table and the block mapping table after the block erase operation. Specifically, as shown in FIG. 8B, the OLD value of the 128th entry in the erasure object block table is updated to the physical address of the 1 block including the 128 invalid pages following the block 0, The preBlk value of the entry corresponding to physical address 1 in the table is also updated to 'null' since block 0 is erased. The entry corresponding to physical address 0 in the block mapping table is initialized as the block is erased.

만약 소거 대상 블록 테이블의 최대 번호에 해당하는 엔트리가 초기화 상태이면 메모리 인터페이스부(120)는 링크가 기록된 엔트리 중 최대 번호의 엔트리에서 OLD 값에 링크된 블록을 소거 대상 블록으로 하여 가비지 컬렉션을 수행하는데, 이때 소거 대상 블록에 유효 페이지가 존재하면 해당 유효 페이지의 데이터를 다른 블록으로 이동시킨 후 해당 페이지를 무효화시키는 과정을 수행하게 된다. 이와 같이 데이터를 이동시키는 과정은 페이지 단위로 수행된다.If the entry corresponding to the maximum number of the erasure target block table is in the initialization state, the memory interface unit 120 performs garbage collection with the block linked to the OLD value as the erasure target block in the entry of the maximum number among the entry in which the link is recorded At this time, if there is a valid page in the block to be erased, the data of the valid page is moved to another block, and the corresponding page is invalidated. The process of moving data in this manner is performed on a page basis.

메모리 인터페이스부(120)가 시스템이 사용되지 않는 상태의 정지시간(idle time)을 이용하여 가비지 컬렉션을 수행하는 도중 호스트(200)로부터 제어신호가 입력되면, 메모리 인터페이스부(120)는 즉시 가비지 컬렉션을 중단하고 호스트(200)로부터의 제어신호에 따른 연산을 수행하여야 한다. 이상에서 설명한 바와 같이 본 발명에 따른 플래시 메모리 제어장치(100)의 메모리 인터페이스부(120)에 의해 수행되는 가비지 컬렉션은 블록 단위로 이루어지며, 소거 대상 블록에 유효 페이지가 존재하는 경우 데이터를 이동하는 과정은 페이지 단위로 수행된다.When the memory interface unit 120 inputs a control signal from the host 200 during the garbage collection using the idle time in a state where the system is not in use, the memory interface unit 120 immediately receives the garbage collection And perform an operation according to a control signal from the host 200. [ As described above, the garbage collection performed by the memory interface unit 120 of the flash memory control apparatus 100 according to the present invention is performed on a block-by-block basis. When there is an effective page in the block to be erased, The process is performed page by page.

따라서 메모리 인터페이스부(120)는 가비지 컬렉션을 수행하는 도중이라도 현재까지 블록 소거 또는 페이지 이동이 수행된 상태를 반영하여 도 2의 (a) 내지 (c)의 각 테이블을 갱신한 후 호스트(200)로부터 전달된 제어신호에 따른 연산을 수행할 수 있다. 이후 다시 가비지 컬렉션을 개시하게 되면 직전까지 수행한 가비지 컬렉션의 결과가 주소 변환 테이블, 블록 매핑 테이블 및 소거 대상 블록 테이블에 모두 반영되어 있기 때문에 정상적으로 가비지 컬렉션을 수행할 수 있다.Therefore, even during the garbage collection, the memory interface unit 120 reflects the state in which the block erase or the page movement has been performed so far, updates each table of FIG. 2 (a) to (c) And can perform an operation according to the control signal transmitted from the control unit. When garbage collection is started again, garbage collection can be performed normally because the result of the garbage collection performed until the last time is reflected in both the address translation table, the block mapping table, and the erase target block table.

종래기술에 따른 가비지 컬렉션 기법에서는 매번 소거 대상 블록을 선택하기 위해 블록 전체의 탐색 및 정렬 시간을 필요로 하고, 한 번의 가비지 컬렉션에서 수십 개 이상의 페이지 복사 및 수 개 이상의 블록 소거를 수행하기 때문에 시스템의 순간적인 정지 현상이 발생할 수 있다. 그러나 본 발명에 따른 플래시 메모리 제어장치(100)에 의한 가비지 컬렉션은 블록 탐색 및 정렬을 위한 시간을 필요로 하지 않으므로 시스템 정지 현상을 최소화할 수 있다.The conventional garbage collection technique requires searching and sorting time of the entire block to select the block to be erased each time and performing several hundreds of page copy and several block erase operations in one garbage collection, A momentary stop phenomenon may occur. However, since garbage collection by the flash memory control apparatus 100 according to the present invention does not require time for block search and sorting, it is possible to minimize system suspension.

도 9는 본 발명에 따른 소거 대상 블록의 매핑 테이블을 저장하는 플래시 메모리 제어방법에 대한 바람직한 실시예의 수행과정을 도시한 흐름도이다. 본 발명에 따른 플래시 메모리 제어방법은 앞에서 설명한 플래시 메모리 제어장치(100)에 의해 가비지 컬렉션을 수행하며, 따라서 저장부(130)에 저장된 것과 동일한 테이블을 참조한다.9 is a flowchart illustrating a process of performing a preferred embodiment of a flash memory control method for storing a mapping table of an erasure target block according to the present invention. The flash memory control method according to the present invention performs garbage collection by the flash memory control apparatus 100 described above and thus refers to the same table stored in the storage unit 130. [

도 9를 참조하면, 메모리 인터페이스부(120)는 도 2의 (c)에 도시된 것과 같은 소거 대상 블록 테이블로부터 소거 대상 블록을 선택한다(S1010). 소거 대상 블록의 선택 방법 및 소거 대상 블록 테이블의 구성에 대하여는 앞에서 이미 설명하였으므로 상세한 설명은 생략한다.Referring to FIG. 9, the memory interface unit 120 selects an erase target block from the erase target block table as shown in FIG. 2C (S1010). The method of selecting a block to be erased and the configuration of a block table to be erased have already been described above, and a detailed description thereof will be omitted.

가비지 컬렉션은 소거 대상 블록의 물리 주소에 저장된 데이터를 모두 소거함으로써 수행되며, 메모리 인터페이스부(120)는 우선 소거 대상 블록에 유효 페이지가 존재하는지 여부를 판단한다(S1020). 소거 대상 블록에 유효 페이지가 존재하면 메모리 인터페이스부(120)는 유효 페이지의 물리 주소에 저장된 데이터를 새로운 페이지의 물리 주소로 복사하고, 해당 유효 페이지는 무효 페이지로 전환된다(S1030). 이와 같은 데이터 복사는 페이지 단위로 수행되며, 메모리 인터페이스부(120)는 페이지 단위로 데이터가 복사될 때마다 도 2의 (a) 내지 (c)의 테이블을 갱신한다(S1040).The garbage collection is performed by erasing all the data stored in the physical address of the block to be erased, and the memory interface unit 120 first determines whether there is a valid page in the block to be erased (S1020). If there is a valid page in the block to be erased, the memory interface unit 120 copies the data stored in the physical address of the valid page to the physical address of the new page, and the valid page is switched to the invalid page (S1030). Such data copying is performed page by page, and the memory interface unit 120 updates the table of FIG. 2 (a) to FIG. 2 (c) every time data is copied in page units (S1040).

페이지 단위의 데이터 복사 및 테이블 갱신을 수행하는 도중 호스트(200)로부터 제어신호가 입력되면, 메모리 인터페이스부(120)는 해당 시점까지 수행된 데이터 복사 상태를 반영하기 위해 도 2의 (a) 내지 (c)의 테이블을 갱신한 후 호스트(200)의 제어신호에 따른 연산을 수행한다.When a control signal is input from the host 200 during data copy and table update on a page-by-page basis, the memory interface unit 120 updates the data copy state and the table update state of FIG. c) and then performs an operation according to the control signal of the host 200. [

소거 대상 블록에 유효 페이지가 남아 있지 않으면, 메모리 인터페이스부(120)는 소거 대상 블록의 물리 주소에 저장된 데이터를 소거하고(S1050), 그에 따라 도 2의 (a) 내지 (c)의 테이블을 갱신한다(S1060). 이때 소거 대상 블록의 데이터 소거 및 테이블 갱신을 수행하는 도중 호스트(200)로부터 제어신호가 입력되면, 메모리 인터페이스부(120)는 해당 시점까지 수행된 블록 소거 상태를 반영하기 위해 도 2의 (a) 내지 (c)의 테이블을 갱신한 후 호스트(200)의 제어신호에 따른 연산을 수행한다.If there is no valid page left in the block to be erased, the memory interface unit 120 erases the data stored in the physical address of the block to be erased (S1050), and updates the table of FIGS. 2A to 2C accordingly (S1060). When a control signal is input from the host 200 during the data erase and the table update of the erase target block, the memory interface unit 120 reads the block erase status of the block to be erased, (C) and then performs an operation according to the control signal of the host 200. [

본 발명은 또한 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광데이터 저장장치 등이 있으며, 또한 캐리어 웨이브(예를 들어 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다.The present invention can also be embodied as computer-readable codes on a computer-readable recording medium. A computer-readable recording medium includes all kinds of recording apparatuses in which data that can be read by a computer system is stored. Examples of the computer-readable recording medium include a ROM, a RAM, a CD-ROM, a magnetic tape, a floppy disk, an optical data storage device, and the like, and may be implemented in the form of a carrier wave (for example, transmission via the Internet) . The computer-readable recording medium may also be distributed over a networked computer system so that computer readable code can be stored and executed in a distributed manner.

이상에서 본 발명의 바람직한 실시예에 대해 도시하고 설명하였으나, 본 발명은 상술한 특정의 바람직한 실시예에 한정되지 아니하며, 청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진 자라면 누구든지 다양한 변형 실시가 가능한 것은 물론이고, 그와 같은 변경은 청구범위 기재의 범위 내에 있게 된다.While the present invention has been particularly shown and described with reference to exemplary embodiments thereof, it is clearly understood that the same is by way of illustration and example only and is not to be taken by way of limitation in the embodiment in which said invention is directed. It will be understood by those skilled in the art that various changes in form and detail may be made therein without departing from the scope of the appended claims.

100 - 플래시 메모리 제어장치
110 - 호스트 인터페이스부
120 - 메모리 인터페이스부
130 - 저장부
200 - 호스트
300 - 플래시 메모리
100 - Flash memory control device
110 - Host interface unit
120 - memory interface unit
130 -
200 - host
300 - Flash memory

Claims (13)

호스트와 제어신호 및 데이터를 송수신하는 호스트 인터페이스부;
상기 호스트로부터 수신된 제어신호에 따라 상기 데이터를 플래시 메모리에 저장하거나 상기 플래시 메모리로부터 독출하는 메모리 인터페이스부; 및
상기 플래시 메모리에서 상기 데이터가 저장되는 복수의 페이지 각각의 논리 주소에 대응하는 복수의 엔트리에 상기 각 페이지의 물리 주소가 기록된 주소 변환 테이블이 저장되는 저장부;를 포함하며,
상기 저장부에는 상기 플래시 메모리의 각 블록의 물리 주소에 대응하는 복수의 엔트리에 상기 각 블록에 포함된 무효 페이지의 개수 및 동일한 개수의 무효 페이지를 포함하는 다른 블록의 물리 주소가 기록된 블록 매핑 테이블과, 상기 플래시 메모리의 각 블록에 포함된 무효 페이지의 개수에 대응하는 복수의 엔트리에 상기 각 블록의 물리 주소가 기록된 소거 대상 블록 테이블이 더 저장되고,
상기 블록 매핑 테이블 내에서 동일한 개수의 무효 페이지를 포함하는 블록들의 엔트리가 링크에 의해 순차적으로 연결되며,
상기 소거 대상 블록 테이블의 각 엔트리에는 엔트리 번호와 동일한 개수의 무효 페이지를 포함하며 링크에 의해 순차적으로 연결된 블록들 중 최초의 블록의 물리 주소 및 마지막 블록의 물리 주소가 기록된 것을 특징으로 하는 플래시 메모리 제어장치.
A host interface unit for transmitting and receiving control signals and data to / from the host;
A memory interface unit for storing the data in the flash memory or reading the data from the flash memory according to a control signal received from the host; And
And a storage unit storing an address translation table in which a physical address of each page is recorded in a plurality of entries corresponding to logical addresses of a plurality of pages in which the data is stored in the flash memory,
Wherein the storage unit stores a plurality of entries corresponding to the physical addresses of the respective blocks of the flash memory in a block mapping table in which the number of invalid pages included in each block and physical addresses of other blocks including the same number of invalid pages are recorded, And a deletion target block table in which the physical addresses of the respective blocks are recorded in a plurality of entries corresponding to the number of invalid pages included in each block of the flash memory,
Wherein entries of blocks including the same number of invalid pages in the block mapping table are sequentially linked by a link,
Wherein each entry of the erasure target block table includes the same number of invalid pages as the entry number and the physical address of the first block and the physical address of the last block among the blocks successively connected by the link are recorded. Control device.
삭제delete 제 1항에 있어서,
상기 메모리 인터페이스부는 상기 소거 대상 블록 테이블에서 블록의 물리 주소가 기록된 엔트리 중 최대 번호의 엔트리에 기록된 최초의 블록인 소거 대상 블록의 물리 주소에 저장된 데이터를 소거하여 가비지 컬렉션을 수행하는 것을 특징으로 하는 플래시 메모리 제어장치.
The method according to claim 1,
Wherein the memory interface unit erases data stored in a physical address of a block to be erased, which is a first block recorded in an entry of a maximum number among entries in which a physical address of a block is recorded, in the erasure target block table to perform garbage collection Flash memory.
제 3항에 있어서,
상기 메모리 인터페이스부는 가비지 컬렉션을 수행한 후 상기 소거 대상 블록의 물리 주소에 대응하는 블록 매핑 테이블의 엔트리 및 상기 소거 대상 블록 테이블에서 상기 소거 대상 블록의 물리 주소가 기록되어 있던 최대 번호의 엔트리를 갱신하는 것을 특징으로 하는 플래시 메모리 제어장치.
The method of claim 3,
The memory interface unit performs garbage collection and then updates an entry of a block mapping table corresponding to the physical address of the erasure target block and an entry of the maximum number in which the physical address of the erasure target block is recorded in the erasure target block table Wherein the flash memory is a flash memory.
제 1항, 제 3항 또는 제 4항 중 어느 한 항에 있어서,
상기 주소 변환 테이블의 각 엔트리에는 상기 각 페이지가 유효 페이지에 해당하는지 여부를 나타내는 플래그가 상기 각 페이지의 물리 주소와 함께 기록된 것을 특징으로 하는 플래시 메모리 제어장치.
The method according to any one of claims 1, 3, and 4,
Wherein a flag indicating whether each page corresponds to a valid page is recorded together with a physical address of each page in each entry of the address conversion table.
제 1항, 제 3항 또는 제 4항 중 어느 한 항에 있어서,
상기 메모리 인터페이스부는 상기 플래시 메모리의 동일한 논리 주소에 대응하는 새로운 물리 주소 영역에 데이터 쓰기 연산을 수행하여 무효 페이지가 발생할 때마다 상기 주소 변환 테이블, 상기 블록 매핑 테이블 및 상기 소거 대상 블록 테이블의 각 엔트리를 갱신하는 것을 특징으로 하는 플래시 메모리 제어장치.
The method according to any one of claims 1, 3, and 4,
The memory interface unit performs a data write operation to a new physical address area corresponding to the same logical address of the flash memory, and stores each entry of the address conversion table, the block mapping table, and the erase target block table And the flash memory control unit updates the flash memory.
(a) 플래시 메모리의 각 블록에 포함된 무효 페이지의 개수에 대응하는 복수의 엔트리에 상기 각 블록의 물리 주소가 기록된 소거 대상 블록 테이블을 참조하여 가비지 컬렉션을 수행하기 위해 데이터를 소거할 블록인 소거 대상 블록을 선택하는 단계;
(b) 상기 선택된 소거 대상 블록의 물리 주소에 저장된 데이터를 소거하는 단계; 및
(c) 가비지 컬렉션을 수행한 후 상기 소거 대상 블록 테이블에서 상기 소거 대상 블록의 물리 주소가 기록되어 있던 엔트리를 갱신하는 단계;를 포함하며,
상기 (c) 단계에서, 상기 플래시 메모리의 각 블록의 물리 주소에 대응하는 복수의 엔트리에 상기 각 블록에 포함된 무효 페이지의 개수 및 동일한 개수의 무효 페이지를 포함하는 다른 블록의 물리 주소가 기록된 블록 매핑 테이블에서 상기 소거 대상 블록의 물리 주소에 대응하는 엔트리를 갱신하고,
상기 블록 매핑 테이블 내에서 동일한 개수의 무효 페이지를 포함하는 블록들의 엔트리가 링크에 의해 순차적으로 연결되며,
상기 소거 대상 블록 테이블의 각 엔트리에는 엔트리 번호와 동일한 개수의 무효 페이지를 포함하며 링크에 의해 순차적으로 연결된 블록들 중 최초의 블록의 물리 주소 및 마지막 블록의 물리 주소가 기록된 것을 특징으로 하는 플래시 메모리 제어방법.
(a) a block for erasing data in order to perform garbage collection with reference to a block table to be erased in which a physical address of each block is recorded in a plurality of entries corresponding to the number of invalid pages included in each block of the flash memory Selecting a block to be erased;
(b) erasing the data stored in the physical address of the selected block to be erased; And
(c) updating the entry in which the physical address of the block to be erased has been recorded in the block table to be erased after performing the garbage collection,
In the step (c), a plurality of entries corresponding to the physical addresses of the respective blocks of the flash memory are recorded with the number of invalid pages included in each block and the physical addresses of other blocks including the same number of invalid pages Updates an entry corresponding to the physical address of the block to be erased in the block mapping table,
Wherein entries of blocks including the same number of invalid pages in the block mapping table are sequentially linked by a link,
Wherein each entry of the erasure target block table includes the same number of invalid pages as the entry number and the physical address of the first block and the physical address of the last block among the blocks successively connected by the link are recorded. Control method.
삭제delete 삭제delete 제 7항에 있어서,
상기 (a) 단계에서, 상기 소거 대상 블록 테이블에서 블록의 물리 주소가 기록된 엔트리 중 최대 번호의 엔트리에 기록된 최초의 블록을 상기 소거 대상 블록으로 선택하는 것을 특징으로 하는 플래시 메모리 제어방법.
8. The method of claim 7,
Wherein in the step (a), the first block recorded in the entry of the maximum number among the entries in which the physical address of the block is recorded in the block table to be erased is selected as the block to be erased.
제 7항에 있어서,
상기 (a) 단계와 상기 (b) 단계의 사이에,
(d) 상기 소거 대상 블록에 포함된 유효 페이지의 물리 주소에 저장된 데이터를 상기 플래시 메모리의 새로운 페이지의 물리 주소에 복사하는 단계; 및
(e) 상기 유효 페이지의 데이터가 상기 새로운 페이지로 복사될 때마다 상기 소거 대상 블록 테이블 및 상기 블록 매핑 테이블의 각 엔트리를 갱신하는 단계;를 더 포함하며,
상기 (d) 단계 및 상기 (e) 단계는 상기 소거 대상 블록에 포함된 유효 페이지가 모두 무효 페이지로 전환될 때까지 순차적으로 반복하여 수행되는 것을 특징으로 하는 플래시 메모리 제어방법.
8. The method of claim 7,
Between the step (a) and the step (b)
(d) copying data stored in a physical address of a valid page included in the block to be erased to a physical address of a new page of the flash memory; And
(e) updating each entry of the erasure subject block table and the block mapping table each time data of the valid page is copied to the new page,
Wherein the step (d) and the step (e) are sequentially and repeatedly performed until all the valid pages included in the erase target block are switched to an invalid page.
제 11항에 있어서,
상기 (e) 단계와 상기 (b) 단계의 사이에,
(f) 호스트로부터 데이터 쓰기 또는 읽기에 대한 제어신호가 입력되면 상기 (e) 단계를 수행한 후 상기 제어신호에 대응하는 연산을 수행하는 단계를 더 포함하는 것을 특징으로 하는 플래시 메모리 제어방법.
12. The method of claim 11,
Between the step (e) and the step (b)
(f) if a control signal for writing or reading data is input from the host, performing the operation corresponding to the control signal after performing the step (e).
제 7항 또는 제 10항에 있어서,
상기 (a) 단계 내지 상기 (c) 단계는 순차적으로 반복하여 수행되며,
(d) 호스트로부터 데이터 쓰기 또는 읽기에 대한 제어신호가 입력되면 상기 (c) 단계를 수행한 후 상기 제어신호에 대응하는 연산을 수행하는 단계를 더 포함하는 것을 특징으로 하는 플래시 메모리 제어방법.
11. The method according to claim 7 or 10,
The steps (a) to (c) are repeatedly performed in sequence,
(d) if a control signal for writing or reading data is input from the host, performing the operation corresponding to the control signal after performing the step (c).
KR1020110116144A 2011-11-09 2011-11-09 Apparatus and method for controlling flash memory storing mapping table of block to erase KR101392174B1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020110116144A KR101392174B1 (en) 2011-11-09 2011-11-09 Apparatus and method for controlling flash memory storing mapping table of block to erase
PCT/KR2012/004568 WO2013069859A1 (en) 2011-11-09 2012-06-08 Device and method for controlling flash memory for storing mapping table of block to be erased

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020110116144A KR101392174B1 (en) 2011-11-09 2011-11-09 Apparatus and method for controlling flash memory storing mapping table of block to erase

Publications (2)

Publication Number Publication Date
KR20130051032A KR20130051032A (en) 2013-05-20
KR101392174B1 true KR101392174B1 (en) 2014-05-09

Family

ID=48290201

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110116144A KR101392174B1 (en) 2011-11-09 2011-11-09 Apparatus and method for controlling flash memory storing mapping table of block to erase

Country Status (2)

Country Link
KR (1) KR101392174B1 (en)
WO (1) WO2013069859A1 (en)

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170000516A (en) 2015-06-24 2017-01-03 고려대학교 산학협력단 Method of performing garbage collection in DRAM-Flash hybrid memory using object's character through dynamic profiler and system thereof
US9858000B2 (en) 2015-01-22 2018-01-02 Samsung Electronics Co., Ltd. Storage device and sustained status accelerating method thereof
KR20180076276A (en) * 2016-12-27 2018-07-05 한양대학교 산학협력단 Method for garbage collection of flash memory and storage device using the same
US10042569B2 (en) 2016-09-19 2018-08-07 SK Hynix Inc. Memory system and operating method thereof
US10114552B2 (en) 2015-10-08 2018-10-30 Samsung Electronics Co., Ltd. Memory scheduling method for changing command order and method of operating memory system
US10168952B2 (en) 2015-11-13 2019-01-01 SK Hynix Inc. Memory system and operating method thereof using segment lists
US10203900B2 (en) 2016-05-04 2019-02-12 SK Hynix Inc. Memory system for selecting blocks for garbage selection and operating method thereof
US10387057B2 (en) 2016-05-20 2019-08-20 SK Hynix Inc. Memory system and operating method of memory system
US10534703B2 (en) 2015-10-15 2020-01-14 SK Hynix Inc. Memory system and operation method thereof
US10817624B2 (en) 2017-10-31 2020-10-27 Samsung Electronics Co., Ltd. Memory system and storage device capable of permanently deleting data stored in a non-volatile memory
US11474723B2 (en) 2020-10-08 2022-10-18 SK Hynix Inc. Storage device and operating method thereof

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI501242B (en) * 2013-10-04 2015-09-21 Winbond Electronics Corp Erase method for flash
KR101465426B1 (en) * 2013-11-06 2014-11-27 성균관대학교산학협력단 Extent mapping flash device
KR20150068747A (en) 2013-12-12 2015-06-22 삼성전자주식회사 on-volatile memory system and host communicating with the same
KR102252419B1 (en) 2014-01-09 2021-05-14 한국전자통신연구원 System and method for efficient address translation on Flash memory device
KR102254392B1 (en) 2014-05-12 2021-05-25 삼성전자주식회사 Operating method of memory controller and nonvolatile memory system including nonvolatile memory device and memory controller
KR102343246B1 (en) 2014-12-12 2021-12-27 에스케이하이닉스 주식회사 Data storage device and operating method thereof
TWI563510B (en) * 2015-07-24 2016-12-21 Phison Electronics Corp Mapping table accessing method, memory control circuit unit and memory storage device
CN113641630A (en) * 2017-03-27 2021-11-12 珠海极海半导体有限公司 FLASH memory
KR101995460B1 (en) * 2017-11-21 2019-07-02 한림대학교 산학협력단 System and method for defragmenting of file with ext file structure
US10936199B2 (en) 2018-07-17 2021-03-02 Silicon Motion, Inc. Flash controllers, methods, and corresponding storage devices capable of rapidly/fast generating or updating contents of valid page count table
CN112148631B (en) * 2020-09-25 2023-05-26 华侨大学 Garbage collection method, equipment and storage medium based on cache perception

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004062554A (en) 2002-07-30 2004-02-26 Oki Electric Ind Co Ltd Managing method of flash memory
JP2008146253A (en) 2006-12-07 2008-06-26 Sony Corp Storage device, computer system, and data processing method for storage device

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4536785B2 (en) * 2008-02-01 2010-09-01 富士通株式会社 Information processing apparatus, control unit for controlling data storage performed in information processing apparatus, and data storage control method
JP5341584B2 (en) * 2009-03-17 2013-11-13 株式会社東芝 Controller and memory system
JP2009205689A (en) * 2009-05-08 2009-09-10 Oki Electric Ind Co Ltd Flash disk device
JP4703764B2 (en) * 2009-12-25 2011-06-15 株式会社東芝 Memory system control method

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004062554A (en) 2002-07-30 2004-02-26 Oki Electric Ind Co Ltd Managing method of flash memory
JP2008146253A (en) 2006-12-07 2008-06-26 Sony Corp Storage device, computer system, and data processing method for storage device

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9858000B2 (en) 2015-01-22 2018-01-02 Samsung Electronics Co., Ltd. Storage device and sustained status accelerating method thereof
KR20170000516A (en) 2015-06-24 2017-01-03 고려대학교 산학협력단 Method of performing garbage collection in DRAM-Flash hybrid memory using object's character through dynamic profiler and system thereof
US10430083B2 (en) 2015-10-08 2019-10-01 Samsung Electronics Co., Ltd. Memory scheduling method for changing command order and method of operating memory system
US10114552B2 (en) 2015-10-08 2018-10-30 Samsung Electronics Co., Ltd. Memory scheduling method for changing command order and method of operating memory system
US10534703B2 (en) 2015-10-15 2020-01-14 SK Hynix Inc. Memory system and operation method thereof
US10168952B2 (en) 2015-11-13 2019-01-01 SK Hynix Inc. Memory system and operating method thereof using segment lists
US10203900B2 (en) 2016-05-04 2019-02-12 SK Hynix Inc. Memory system for selecting blocks for garbage selection and operating method thereof
US10387057B2 (en) 2016-05-20 2019-08-20 SK Hynix Inc. Memory system and operating method of memory system
US10042569B2 (en) 2016-09-19 2018-08-07 SK Hynix Inc. Memory system and operating method thereof
KR102033462B1 (en) * 2016-12-27 2019-10-17 한양대학교 산학협력단 Method for garbage collection of flash memory and storage device using the same
KR20180076276A (en) * 2016-12-27 2018-07-05 한양대학교 산학협력단 Method for garbage collection of flash memory and storage device using the same
US10817624B2 (en) 2017-10-31 2020-10-27 Samsung Electronics Co., Ltd. Memory system and storage device capable of permanently deleting data stored in a non-volatile memory
US11474723B2 (en) 2020-10-08 2022-10-18 SK Hynix Inc. Storage device and operating method thereof

Also Published As

Publication number Publication date
KR20130051032A (en) 2013-05-20
WO2013069859A1 (en) 2013-05-16

Similar Documents

Publication Publication Date Title
KR101392174B1 (en) Apparatus and method for controlling flash memory storing mapping table of block to erase
US9146877B2 (en) Storage system capable of managing a plurality of snapshot families and method of snapshot family based read
CN102576293B (en) Data management in solid storage device and Bedding storage system
US8838875B2 (en) Systems, methods and computer program products for operating a data processing system in which a file delete command is sent to an external storage device for invalidating data thereon
US7516295B2 (en) Method of remapping flash memory
KR100789406B1 (en) Flash memory system and garbage collection method therof
US8402202B2 (en) Input/output control method and apparatus optimized for flash memory
US8645614B2 (en) Method and apparatus for managing data of flash memory via address mapping
JP5708216B2 (en) Flash memory device, memory control device, memory control method, and storage system
KR101465789B1 (en) Write and merge methods in memory card systems for reducing the number of page copies
US10445022B1 (en) Optimization of log-structured merge (LSM) tree-based databases using object solid state drive (SSD) devices
US20080120488A1 (en) Apparatus and method of managing nonvolatile memory
KR20100021868A (en) Buffer cache management method for flash memory device
KR20130017748A (en) Memory controller and data management method
US20050216687A1 (en) Data managing method and data access system for storing all management data in management bank of non-volatile memory
US20110029749A1 (en) Semiconductor storage system for decreasing page copy frequency and controlling method thereof
CN103294604A (en) Flash memory device and electronic device employing thereof
KR100526178B1 (en) Access apparatus and method using flash memory
US20170160940A1 (en) Data processing method and apparatus of solid state disk
US20130304972A1 (en) Control device, storage device, and storage control method
KR20090107098A (en) Locality-Aware Garbage Collection Technique for NAND Flash Memory-Based Storage Systems
JP2019028954A (en) Storage control apparatus, program, and deduplication method
CN113253926A (en) Memory internal index construction method for improving query and memory performance of novel memory
KR101191650B1 (en) Apparatus and method for mapping the data address in NAND flash memory
JP5452735B2 (en) Memory controller and memory access method

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
LAPS Lapse due to unpaid annual fee