KR101936364B1 - Memory management system using flash memory and method thereof - Google Patents

Memory management system using flash memory and method thereof Download PDF

Info

Publication number
KR101936364B1
KR101936364B1 KR1020170101150A KR20170101150A KR101936364B1 KR 101936364 B1 KR101936364 B1 KR 101936364B1 KR 1020170101150 A KR1020170101150 A KR 1020170101150A KR 20170101150 A KR20170101150 A KR 20170101150A KR 101936364 B1 KR101936364 B1 KR 101936364B1
Authority
KR
South Korea
Prior art keywords
partition
page
logical
physical page
processor
Prior art date
Application number
KR1020170101150A
Other languages
Korean (ko)
Inventor
신동군
김효진
김혁중
Original Assignee
성균관대학교산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 성균관대학교산학협력단 filed Critical 성균관대학교산학협력단
Priority to KR1020170101150A priority Critical patent/KR101936364B1/en
Application granted granted Critical
Publication of KR101936364B1 publication Critical patent/KR101936364B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/0292User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

The present invention relates to a memory managing system for an electronic device which uses a flash memory. The memory managing system comprises: a memory which temporarily stores a program for conducting conversion between a physical address and a logical address for access to a flash memory; and a processor which executes the program. In addition, the processor determines a partition corresponding to a target logical page in response to a request for access to the target logical page, calculates the address of a physical page corresponding to the target logical page by reading table information corresponding to the partition from a mapping table, and accesses the relevant physical page of the flash memory. At this time, the processor manages a plurality of logical pages in a single partition unit according to both the order of mapping table access requests and the order of increasing index of logical pages subject to the access requests, and includes a bitmap indicating offset information of each logical page included in each partition and the physical page corresponding to the each logical page. Therefore, the memory managing system can reduce the size of the mapping table and can efficiently conduct conversion between the logical address and the physical address.

Description

플래시 메모리를 이용한 메모리 관리 시스템 및 메모리 관리 방법 {MEMORY MANAGEMENT SYSTEM USING FLASH MEMORY AND METHOD THEREOF}[0001] MEMORY MANAGEMENT SYSTEM USING FLASH MEMORY AND METHOD THEREOF [0002]

본 발명은 플래시 메모리를 이용한 메모리 관리 시스템 및 그 방법에 관한 것으로서, 보다 구체적으로, 순서 규칙을 갖는 논리 페이지들을 묶음 단위로 관리하는 맵핑 페이지를 이용하여 메모리를 관리하는 방법 및 그 메모리 관리 시스템에 관한 것이다.The present invention relates to a memory management system using a flash memory and a method thereof, and more particularly, to a method for managing a memory using a mapping page for managing logical pages having a sequence rule in units of a bundle, will be.

최근 SSD(solid state drive)는 저지연성(low latency), 고대역폭(high bandwidth), 에너지 효율성 등의 장점으로 인해 휴대용 단말기나 노트북 시장을 선점하였다. SSD 시장은 지난 5년간 연평균 45.1%로 성장하였다. 특히, SSD에 주로 사용되는 낸드플래시(NAND Flash)는 기존의 하드디스크와 다른 특성을 가지고 있다. 첫째로, 낸드플래시는 덮어쓰기가 불가능하다. 따라서 유효하지 않은(invalid) 페이지에 데이터를 쓰기 위해서는 삭제 동작을 수행하여야 한다. 둘째로, 낸드플래시의 삭제 동작이 수행되는 단위 메모리 영역은 쓰기/읽기 동작이 수행되는 단위 메모리 영역과 상이하다. 낸드 플래시는 블록 단위로 삭제 동작을 수행하지만, 페이지 단위로 읽기/쓰기 동작을 수행한다. Recently, solid state drives (SSDs) have led the market for portable terminals and notebooks because of their low latency, high bandwidth and energy efficiency. The SSD market has grown at a CAGR of 45.1% over the past five years. In particular, NAND flash, which is mainly used for SSD, has characteristics different from those of conventional hard disks. First, NAND flash can not be overwritten. Therefore, in order to write data to an invalid page, a delete operation must be performed. Second, the unit memory area in which the erase operation of the NAND flash is performed differs from the unit memory area in which the write / read operation is performed. NAND flash performs the erase operation on a block basis, but performs a read / write operation on a page basis.

한편, 호스트(host)에서 입력되는 입출력 명령은 낸드플래시(NAND Flash) 에서 수행 가능한 형태로 변환되어야 한다. 따라서, 플래시 변환 계층(Flash Translation Layer)은 논리주소와 물리주소를 맵핑 하는 맵핑 테이블을 관리하며, 메모리 공간이 부족해지면 프리 블록을 획득하는 가비지 컬렉션(Garbage Collection)등의 삭제 동작을 수행한다. 이러한 플래시 변환 계층의 알고리즘은 낸드플래시의 성능에 영향을 미치게 된다. 종래의 페이지 맵핑 기법은 맵핑 테이블을 페이지 단위로 유지하는 기술로서, 맵핑 테이블에 논리페이지별 물리페이지의 주소를 저장함으로써, 논리페이지에 해당하는 물리페이지를 바로 찾을 수 있도록한다. 따라서, 논리페이지별 맵핑 정보를 유지해야한다는 점에서, 논리페이지가 증가할수록 램의 사용량이 증가한다는 단점이 있다.On the other hand, the input / output command input from the host must be converted into a form that can be executed by the NAND flash. Accordingly, the Flash Translation Layer manages a mapping table for mapping a logical address and a physical address, and performs a deletion operation such as a garbage collection for acquiring a free block when memory space becomes insufficient. The algorithm of this flash conversion layer affects the performance of NAND flash. The conventional page mapping technique is a technique for maintaining a mapping table on a page unit basis and stores the address of a physical page for each logical page in the mapping table so that a physical page corresponding to the logical page can be found immediately. Therefore, in order to maintain the mapping information for each logical page, there is a disadvantage that the amount of used RAM increases as the number of logical pages increases.

DFTL(Demand-based Flash Translation Layer) 기법은 앞서 설명한 페이지 맵핑 기법과 동일하게 페이지 단위로 맵핑 테이블을 관리한다. 그러나 DFTL 기법은 맵핑 테이블을 모두 램에 로딩(loading)하는 대신에 캐싱(caching)한다. 이로 인해, 주소 변환 시에 페이지 맵핑 기법과 동일한 결과를 발생시키면서, 램 사용량을 감소시킬 수 있다. 그러나 DFTL 기법은 랜덤 읽기/쓰기 동작을 수행하는 경우의 캐시 미스(cache miss)에 의해 오버헤드가 발생한다는 단점이 있다. The Demand-based Flash Translation Layer (DFTL) manages the mapping table on a page basis in the same manner as the page mapping method described above. However, the DFTL technique caches all mapping tables instead of loading them into RAM. Therefore, the RAM usage can be reduced while generating the same result as the page mapping method at the time of address conversion. However, the DFTL scheme has a disadvantage that an overhead occurs due to a cache miss in the case of performing a random read / write operation.

이와 관련하여, 대한민국 공개특허공보 제 2014-0116617 호(발명의 명칭: 플래시 메모리 기반의 페이지 주소 사상 방법 및 시스템)는 순차적으로 할당된 논리 주소와 물리 주소가 함께 순차적인 경우, 순차적인 논리 주소와 데이터 정보의 크기를 이용하여 맵핑 테이블의 크기를 감소시킴으로써, 읽기 연산의 횟수를 감소시키는 방법을 개시한다. 특히, 상기 특허는 순차적으로 증가하는 논리 주소와 물리 주소가 로딩되는 시스템 부팅 시의 성능을 향상시키는 효율을 갖는다.In this regard, Korean Patent Laid-Open Publication No. 2014-0116617 (titled "Flash memory-based page address mapping method and system"), when sequential logical addresses and physical addresses are sequentially sequential, A method for reducing the number of read operations by reducing the size of a mapping table using the size of data information is disclosed. Particularly, the above-mentioned patent has efficiency to improve the performance at the time of booting the system in which logical addresses and physical addresses which are sequentially increased are loaded.

본 발명은 전술한 종래 기술의 문제점을 해결하기 위한 것으로서, 본 발명의 일부 실시예는 복수의 논리페이지를 하나의 테이블 정보로 관리하는 맵핑 테이블을 제안함으로써 RAM 의 사용량을 감소시키는 한편, 복수의 논리페이지들이 순서 규칙을 갖도록 함으로써 맵핑 테이블의 분할/합병에 따른 오버헤드(overhead)를 감소시키는데에 그 목적이 있다. 다만, 본 실시예가 이루고자 하는 기술적 과제는 상기된 바와 같은 기술적 과제로 한정되지 않으며, 또 다른 기술적 과제들이 존재할 수 있다.It is an object of the present invention to provide a mapping table for managing a plurality of logical pages as one table information, thereby reducing the amount of RAM used, The purpose of the present invention is to reduce the overhead of segmentation / merging of mapping tables by allowing pages to have ordering rules. It should be understood, however, that the technical scope of the present invention is not limited to the above-described technical problems, and other technical problems may exist.

상술한 기술적 과제를 달성하기 위한 기술적 해결방법으로서, 본 발명의 제1 측면에 따른 메모리 관리 시스템은 플래시 메모리 접근을 위해 물리주소와 논리주소 간의 변환을 수행하는 프로그램을 일시적으로 저장하는 메모리; 및 상기 프로그램을 실행하는 프로세서를 포함하되, 상기 프로세서는, 타겟 논리페이지에 대한 접근 요청에 응답하여, 타겟 논리페이지에 대응하는 파티션을 결정하고, 맵핑 테이블 중에서 상기 파티션에 대응하는 테이블 정보를 독출하여 타겟 논리페이지에 대응하는 물리페이지의 주소를 산출하며, 플래시 메모리의 해당 물리페이지로 접근한다. 이때, 맵핑 테이블은 접근 요청의 순서와 접근 요청된 논리페이지의 인덱스가 증가하는 순서에 따라 복수의 논리페이지를 하나의 파티션 단위로 관리하고, 각 파티션에 포함된 각 논리페이지와 상기 각 논리페이지에 대응하는 물리페이지의 오프셋(offset) 정보를 나타내는 비트맵(bitmap)을 포함한다. According to a first aspect of the present invention, there is provided a memory management system comprising: a memory for temporarily storing a program for performing a conversion between a physical address and a logical address for flash memory access; And a processor for executing the program, wherein the processor, in response to the access request for the target logical page, determines a partition corresponding to the target logical page, reads table information corresponding to the partition from the mapping table The address of the physical page corresponding to the target logical page is calculated, and the physical page of the flash memory is accessed. At this time, the mapping table manages a plurality of logical pages in one partition unit in accordance with the order of the access requests and the order in which the indexes of the logical pages requested to be accessed are incremented, and each logical page included in each partition and each logical page And a bitmap indicating offset information of the corresponding physical page.

또한, 본 발명의 제 2 측면에 따른 메모리 관리 시스템의 동작 방법은, 논리페이지에 대한 접근 요청에 응답하여, 상기 타겟 논리페이지에 대응하는 제1 파티션을 결정하는 단계; 맵핑 테이블 중에서 제1 파티션에 대응하는 테이블 정보를 독출하여 타겟 논리페이지에 대응하는 물리페이지의 주소를 산출하는 단계; 및 플래시 메모리의 물리페이지로 접근하는 단계를 포함한다. 이때, 맵핑 테이블은, 접근 요청의 순서와 접근 요청된 논리페이지의 인덱스가 증가하는 순서에 따라 복수의 논리페이지를 하나의 파티션 단위로 관리하고, 각 파티션에 포함된 각 논리페이지와 각 논리페이지에 대응하는 물리페이지의 오프셋(offset) 정보를 나타내는 비트맵(bitmap)을 포함한다.In addition, a method of operating a memory management system according to the second aspect of the present invention includes: determining a first partition corresponding to the target logical page in response to an access request for a logical page; Reading table information corresponding to the first partition from the mapping table and calculating an address of a physical page corresponding to the target logical page; And accessing a physical page of the flash memory. At this time, the mapping table manages a plurality of logical pages in one partition unit according to the order of the access requests and the order of the indexes of the logical pages requested to be accessed, and each logical page included in each partition and each logical page And a bitmap indicating offset information of the corresponding physical page.

또한, 본 발명의 제 3 측면은, 상기 제 2 측면을 구현하기 위한 프로그램이 기록된 컴퓨터로 판독 가능한 기록 매체를 제공한다.A third aspect of the present invention provides a computer-readable recording medium having recorded thereon a program for implementing the second aspect.

전술한 본 발명의 과제 해결 수단에 의하면, 인덱스가 증가하는 복수의 논리페이지들을 파티션 단위로 관리함으로써, 맵핑 테이블의 크기를 감소시킬 수 있다. 또한, 파티션에 포함된 논리페이지들과 각 논리페이지에 할당되는 물리페이지의 오프셋을 하나의 비트맵으로 나타냄으로써 논리주소와 물리주소간의 변환을 효율적으로 수행할 수 있다. According to the present invention, the size of the mapping table can be reduced by managing a plurality of logical pages whose indexes increase in a partition unit. In addition, by converting a logical page included in a partition and an offset of a physical page allocated to each logical page into one bitmap, conversion between a logical address and a physical address can be efficiently performed.

또한, 논리페이지들을 클러스터 단위로 구분하여 관리함으로써, 파티션 병합을 수행할 빅팀(victim) 파티션들을 효율적으로 선택할 수 있도록 하여 파티션 병합 효율을 증가시킬 수 있다.In addition, by partitioning and managing logical pages on a cluster basis, it is possible to efficiently select victim partitions to be subjected to partition merge, thereby increasing the efficiency of partition merging.

도 1은 본 발명의 일 실시예에 따른 메모리 관리 시스템의 구성을 도시한 블록도이다.
도 2는 본 발명의 일 실시예에 따른 맵핑 테이블(mapping table)을 도시한 일례이다.
도 3은 본 발명의 일 실시예에 따라 도 1의 프로세서가 읽기 동작을 수행하는 방법을 설명하기 위한 순서도이다.
도 4는 본 발명의 일 실시예에 따른 맵핑 테이블의 일례를 도시한 도면이다.
도 5는 본 발명의 일 실시예에 따라 도 1의 프로세서가 쓰기 동작을 수행하는 방법을 설명하기 위한 순서도이다.
도 6은 본 발명의 일 실시예에 따른 맵핑 테이블과 그에 따른 스트림 테이블의 일례를 도시한 도면이다.
도 7은 본 발명의 일 실시예에 따른 파티션 병합 과정을 설명하기 위한 순서도이다.
도 8은 본 발명의 일 실시예에 따라 클러스터에 대응되는 파티션들의 일례를 도시한 도면이다.
도 9는 본 발명의 일 실시예에 따른 메모리 관리 시스템을 적용한 결과를 페이지 단위 메모리 관리 시스템과 비교한 표이다.
1 is a block diagram illustrating a configuration of a memory management system according to an embodiment of the present invention.
2 illustrates an example of a mapping table according to an embodiment of the present invention.
3 is a flowchart illustrating a method of performing a read operation by the processor of FIG. 1 according to an embodiment of the present invention.
4 is a diagram illustrating an example of a mapping table according to an embodiment of the present invention.
5 is a flowchart illustrating a method of performing a write operation by the processor of FIG. 1 according to an embodiment of the present invention.
6 is a diagram illustrating an example of a mapping table and a stream table according to an embodiment of the present invention.
7 is a flowchart illustrating a process of merging partitions according to an embodiment of the present invention.
8 is a diagram illustrating an example of partitions corresponding to clusters according to an embodiment of the present invention.
9 is a table comparing a result of applying the memory management system according to an embodiment of the present invention to a page unit memory management system.

아래에서는 첨부한 도면을 참조하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 본 발명의 실시예를 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings, which will be readily apparent to those skilled in the art. The present invention may, however, be embodied in many different forms and should not be construed as limited to the embodiments set forth herein. In order to clearly illustrate the present invention, parts not related to the description are omitted, and similar parts are denoted by like reference characters throughout the specification.

명세서 전체에서, 어떤 부분이 다른 부분과 "연결"되어 있다고 할 때, 이는 "직접적으로 연결"되어 있는 경우뿐 아니라, 그 중간에 다른 소자를 사이에 두고 "전기적으로 연결"되어 있는 경우도 포함한다. 또한 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.Throughout the specification, when a part is referred to as being "connected" to another part, it includes not only "directly connected" but also "electrically connected" with another part in between . Also, when an element is referred to as "comprising ", it means that it can include other elements as well, without departing from the other elements unless specifically stated otherwise.

이하, 첨부된 도면을 참조하여 본 발명의 일부 실시예에 따른 전자 장치의 메모리 관리 시스템에 대해서 설명하도록 한다.Hereinafter, a memory management system of an electronic device according to some embodiments of the present invention will be described with reference to the accompanying drawings.

도 1은 본 발명의 일 실시예에 따른 메모리 관리 시스템(10)의 구성을 도시한 블록도이다. 1 is a block diagram showing the configuration of a memory management system 10 according to an embodiment of the present invention.

메모리 관리 시스템(10)은 전원이 공급되지 않아도 저장된 정보를 계속 유지하는 플래시 메모리(11), 저장된 정보를 유지하기 위하여 전력이 필요한 랜덤 엑세스 메모리(12) 및 프로세서(13)를 포함한다. The memory management system 10 includes a flash memory 11 that keeps stored information even when power is not supplied, a random access memory 12 that requires power to maintain stored information, and a processor 13. [

플래시 메모리(11)는 전기적으로 데이터를 지우고 다시 기록할 수 있는 비휘발성 기억 장치로서, 데이터를 읽고/쓸수 있도록 구성된다. 단, 플래시 메모리(11)는 데이터의 덮어쓰기(overwrite)를 허용하지 않으며, 기 설정된 사이즈로 데이터를 삭제(카비지 컬렉션(garbage collection))한 후에 재사용할 수 있다. 한편, 플래시 메모리(11)는 노어(NOR)플래시 메모리 또는 낸드(NAND)플래시 메모리를 포함한다. 낸드플래시 메모리는 페이지(page) 단위로 데이터를 읽기/쓰기를 할 수 있으며, 블록(block) 단위로 데이터를 삭제할 수 있다. 한편, 노어플래시 메모리는 바이트 단위로 데이터를 읽기/쓰기 할수 있으며, 블록 단위로 데이터를 삭제할 수 있다. The flash memory 11 is a nonvolatile memory device that can electrically erase and rewrite data, and is configured to read / write data. However, the flash memory 11 does not allow overwriting of data, and can reuse after deleting data (garbage collection) at a predetermined size. On the other hand, the flash memory 11 includes a NOR flash memory or a NAND flash memory. The NAND flash memory can read / write data on a page basis, and can erase data on a block-by-block basis. On the other hand, the NOR flash memory can read / write data in byte units and can delete data in block units.

랜덤 엑세스 메모리(Random Access Memory: RAM)(12)는 프로세서(13)가 프로그램을 수행하기 위한 데이터를 일시적으로 로딩(loading)하는 데에 사용된다. 즉, 프로세서(13)는 플래시 메모리(11)에 저장된 데이터를 랜덤 엑세스 메모리(12)로 로딩하여 다양한 프로그램을 실행하거나, 실행된 데이터를 플래시 메모리(11)로 언로드할 수 있다. 한편, 랜덤 엑세스 메모리(12)의 저장 공간은 플래시 메모리(11)보다 작으므로, 프로세서(13)는 플래시 메모리(11)의 데이터를 선택적으로 페이징(paging)하여 로드한다. 이를 위해, 프로세서(13)는 플래시 메모리(11)의 데이터를 반복적으로 읽기, 쓰기 또는 삭제하기 위해 플래시 메모리(11)에 접근해야 한다. A random access memory (RAM) 12 is used for temporarily loading data for the processor 13 to execute the program. That is, the processor 13 may load the data stored in the flash memory 11 into the random access memory 12 to execute various programs, or may unload the executed data to the flash memory 11. On the other hand, since the storage space of the random access memory 12 is smaller than that of the flash memory 11, the processor 13 selectively pages and loads the data of the flash memory 11. To this end, the processor 13 has to access the flash memory 11 to repeatedly read, write or delete data in the flash memory 11. [

한편, 프로세서(13)는 랜덤 엑세스 메모리(12)의 한정적 자원을 효율적으로 이용하기 위해, 논리주소(logical address, 또는 가상주소)를 사용한다. 따라서, 프로세서(13)는 플래시 메모리(11)의 데이터를 로딩하기 위해, 플래시 메모리(11)의 물리주소를 논리주소로 변환하거나 물리주소를 논리주소로 변환하여야 한다. 이를 위해, 프로세서(13)는 물리주소를 논리주소로(또는 그 역) 변환하기 위한 맵핑 테이블(mapping table)을 이용한다. 즉, 프로세서(13)는 플래시 메모리(11)에 대한 접근 요청(즉, 데이터 읽기, 쓰기 또는 삭제)에 응답하여, 맵핑 테이블을 이용하여 플래시 메모리(11)에 접근(즉, 데이터를 읽기, 쓰기 또는 삭제)할 수 있다. 이하에서는, 도 2 를 참조하여 본 발명의 일 실시예에 따른 맵핑 테이블을 설명하며, 도 3 내지 도 9를 참조하여 프로세서(13)가 플래시 메모리(11)에 접근하는 읽기, 쓰기 등의 동작을 설명한다. On the other hand, the processor 13 uses a logical address (or virtual address) to efficiently utilize the limited resources of the random access memory 12. [ Accordingly, the processor 13 must convert the physical address of the flash memory 11 into a logical address or a physical address to a logical address in order to load data in the flash memory 11. [ To this end, the processor 13 uses a mapping table to convert physical addresses to logical addresses (or vice versa). That is, the processor 13 accesses the flash memory 11 (i.e., reads, writes, or deletes data) using the mapping table in response to an access request (i.e., Or deleted). The mapping table according to an embodiment of the present invention will be described below with reference to FIG. 2, and a description will be given of operations of reading and writing accessing the flash memory 11 by the processor 13 with reference to FIG. 3 to FIG. Explain.

한편, 이하에서는 플래시 메모리(11)가 낸드플래시 메모리인 것으로 가정하여 설명한다. 즉, 프로세서(13)는 페이지 단위로 물리주소를 논리주소로 변환(또는 논리주소를 물리주소로 변환)한다. 따라서, 이하의 설명에서 논리페이지를 물리페이지로 변환한다는 것은, 논리페이지의 시작 논리주소를 물리페이지의 시작 물리주소로 변환하는 것을 의미할 수 있다. 그러나, 개시되는 실시예들이 노어플래시 메모리에도 적용될 수 있다는 것은 본 기술분야의 통상의 기술자가 용이하게 이해할 수 있을 것이다. In the following description, it is assumed that the flash memory 11 is a NAND flash memory. That is, the processor 13 converts a physical address into a logical address (or converts a logical address into a physical address) on a page basis. Thus, in the following description, converting a logical page to a physical page may mean converting the starting logical address of the logical page to the starting physical address of the physical page. However, those skilled in the art will readily understand that the disclosed embodiments can also be applied to NOR flash memory.

도 2는 본 발명의 일 실시예에 따른 맵핑 테이블(mapping table)을 도시한 일례이다. 2 illustrates an example of a mapping table according to an embodiment of the present invention.

도 2를 참조하면, 프로세서(13)는 전자 장치의 전원이 온(on) 됨에 따라, 랜덤 엑세스 메모리(12)에 맵핑 테이블(200)을 할당한다. 맵핑 테이블(200)은 접근 요청의 순서와 상기 접근 요청된 논리페이지의 인덱스(index)가 증가하는 순서에 따라 복수의 논리페이지를 하나의 파티션(partition) 단위로 관리한다. 예컨대, 맵핑 테이블(200)은 논리페이지 [#1, #4, #5, #3] 에 대한 쓰기 요청에 순차적으로 응답하여, 인덱스 순서가 증가하는 논리페이지 [#1, #4, #5]을 하나의 파티션으로 관리하며, 순서가 감소한 논리페이지 [#3]을 다른 파티션으로 관리한다. Referring to FIG. 2, the processor 13 allocates the mapping table 200 to the random access memory 12 as the electronic device is powered on. The mapping table 200 manages a plurality of logical pages in units of one partition according to the order of access requests and the order in which the indexes of the requested logical pages increase. For example, the mapping table 200 responds to the write requests for the logical pages [# 1, # 4, # 5, # 3] in sequence and generates logical pages [# 1, # 4, Is managed as one partition, and the logical page [# 3] whose sequence is decreased is managed by another partition.

또한, 맵핑 테이블(200)은 각 파티션에 포함된 각 논리페이지와 각 논리페이지에 대응하는 물리페이지의 오프셋(offset) 정보를 나타내는 비트맵(210)을 포함한다. 또한, 맵핑 테이블(200)은 각 파티션에 대응하는 클러스터의 식별자(예컨대, 인덱스)(cluster #)(240)와, 각 파티션의 시작 블록(Block #)(230) 및 시작 물리페이지(start physicalpage #: Start PPN)(220)를 더 포함한다. 여기서, 클러스터(240)는 논리페이지를 구분하는 단위로서, 일정 개수의 논리페이지를 하나의 클러스터로 구분한다. In addition, the mapping table 200 includes a bit map 210 indicating each logical page included in each partition and offset information of a physical page corresponding to each logical page. In addition, the mapping table 200 includes an identifier (e.g., index) (cluster #) 240 corresponding to each partition, a start block 230 of each partition and a start physical page # : Start PPN) 220. Here, the cluster 240 is a unit for identifying logical pages, and divides a certain number of logical pages into one cluster.

구체적으로, 비트맵(210)의 '1' 비트의 위치는 논리페이지의 오프셋 정보를 나타내며, 비트맵(210)의 '1' 비트의 개수는 물리페이지의 오프셋 정보를 나타낸다. 예를 들어, 파티션에 맵핑된 논리페이지가 [#1, #3, #5]이라면, 비트맵은 '010101'로 표현될 수 있다. 즉, 파티션이 나타내는 논리페이지들은 "(파티션의 클러스터)*(클러스터 별 논리페이지 수)+(비트맵의 위치)"로 산출된다. 또한, 비트맵에서 각 논리페이지를 나타내는 비트의 이전에 위치하는 '1'비트의 개수는 각 논리페이지에 해당하는 물리페이지의 오프셋을 나타낸다. 즉, 논리페이지 #3을 나타내는 비트의 이전에 위치하는 '1'비트의 개수는 1이므로, 논리페이지 #3에 대응하는 물리페이지는 "(파티션의 시작 블록)*(블록 별 물리페이지 개수)+(시작 물리페이지)+1"로 산출된다. 또한, 논리페이지 #5를 나타내는 비트의 이전에 위치하는 '1' 비트의 개수는 2이므로, 논리페이지 #5 에 대응하는 물리페이지는 "(파티션의 시작 블록)*(블록 별 물리페이지 수)+(시작 물리페이지)+2"로 산출된다.Specifically, the '1' bit position of the bit map 210 indicates offset information of the logical page, and the '1' bit number of the bit map 210 indicates offset information of the physical page. For example, if the logical page mapped to the partition is [# 1, # 3, # 5], the bitmap can be represented as '010101'. That is, the logical pages indicated by the partition are calculated as "(cluster of partitions) * (number of logical pages per cluster) + (position of bitmap)". Also, the number of '1' bits located before the bit representing each logical page in the bitmap represents the offset of the physical page corresponding to each logical page. That is, since the number of '1' bits located before the bit indicating the logical page # 3 is 1, the physical page corresponding to the logical page # 3 is "(starting block of the partition) * (the number of physical pages per block) (Start physical page) + 1 ". Since the number of '1' bits located before the bit representing the logical page # 5 is 2, the physical page corresponding to the logical page # 5 is "(the start block of the partition) * (the number of physical pages per block) (Start physical page) + 2 ".

이와 같이, 본 발명의 일 실시예에 따른 맵핑 테이블은 비트맵 정보를 이용하여 효율적으로 논리페이지와 물리페이지를 변환할 수 있다. 한편, 맵핑 테이블(200)은 전술한 정보 이외에, 파티션의 유효한 페이지 수(VALID CNT)를 더 포함할 수 있다. 또한, 맵핑 테이블(200)은 유효성 정보를 더 포함할 수 있다. 이때, 유효성 정보는 파티션에 포함되는 논리페이지의 유효성을 나타내며, 해당 파티션의 페이지들이 쓰여지지 않음, 유효함, 유효하지 않음을 나타낼 수 있다. 또한, 맵핑 테이블(200)은 시작 논리페이지의 인덱스를 더 포함할 수도 있으나, 이에 제한되는 것은 아니다. As described above, the mapping table according to an embodiment of the present invention can efficiently convert logical pages and physical pages using bitmap information. On the other hand, the mapping table 200 may further include the valid number of pages (VALID CNT) of the partition, in addition to the above-described information. Further, the mapping table 200 may further include validity information. At this time, the validity information indicates the validity of the logical page included in the partition, and may indicate that the pages of the partition are not written, valid, or invalid. In addition, the mapping table 200 may further include an index of the starting logical page, but is not limited thereto.

한편, 본 발명의 일 실시예에 따른 맵핑 테이블은 비트맵을 클러스터와 얼라인(align)할 수 있다. 즉, 프로세서(13)는 비트맵의 크기를 클러스터에 포함된 논리페이지의 개수로 제한하고, 비트맵의 첫 비트가 나타내는 논리페이지와 클러스터의 첫 논리페이지를 일치시킴으로써, 추후의 파티션 병합 및 블록 삭제 시의 오버헤드(overhead)를 감소시킬 수 있다. Meanwhile, the mapping table according to an embodiment of the present invention can align the bitmap with the cluster. That is, the processor 13 limits the size of the bitmap to the number of logical pages contained in the cluster, and by matching the logical page indicated by the first bit of the bitmap with the first logical page of the cluster, It is possible to reduce the overhead of the time.

도 3은 본 발명의 일 실시예에 따라 프로세서(13)가 읽기 동작을 수행하는 방법을 설명하기 위한 순서도이다. 3 is a flowchart illustrating a method of performing a read operation by the processor 13 according to an embodiment of the present invention.

도 3을 참조하면, 프로세서(13)는 읽기 요청된 타겟 논리페이지가 포함된 클러스터를 기초로 타겟 논리페이지에 대응하는 파티션을 추출한다(S310). 예를 들어, 프로세서(13)는 맵핑 테이블의 클러스터 필드(도 2의 240)를 탐색하여, 타겟 논리페이지가 포함된 클러스터를 갖는 파티션을 추출한다. 한편, 프로세서(13)는 파티션 인덱스가 큰 순으로 추출한다. 이는, 프로세서(13)가 인덱스를 점차적으로 증가하여 파티션을 할당하므로, 인덱스가 클수록 유효한 데이터를 갖고 있을 확률이 높기 때문일 수 있다. Referring to FIG. 3, the processor 13 extracts a partition corresponding to the target logical page based on the cluster including the target logical page requested to be read (S310). For example, the processor 13 searches the cluster field (240 in FIG. 2) of the mapping table to extract a partition having a cluster including the target logical page. On the other hand, the processor 13 extracts the partition index in descending order of the partition index. This is because the processor 13 gradually increases the index and allocates the partitions, so that the larger the index, the higher the probability that the processor 13 has valid data.

이후, 프로세서(13)는 추출된 파티션의 비트맵과 타겟 논리페이지의 오프셋을 이용하여, 타겟 논리페이지에 기 맵핑된 물리페이지가 존재하는지 여부를 판단한다(S320). 즉, 프로세서(13)는 추출된 파이션의 비트맵에서 "(논리페이지)%(클러스터 별 논리페이지 수)"에 위치하는 비트가 '1'인지 여부를 기초로 타겟 논리페이지에 기 맵핑된 물리페이지가 존재하는지 판단한다. 이와 함께, 프로세서(13)는 맵핑 테이블의 유효 페이지 수 필드(도 2의 VALID PAGE #) 또는 유효성 필드를 참조하여 추출된 파티션이 유효한 페이지를 포함하고 있는지 여부를 판단할 수 있다. Thereafter, the processor 13 determines whether there is a physical page mapped to the target logical page using the bitmap of the extracted partition and the offset of the target logical page (S320). That is, the processor 13 determines whether or not the bit located at "(logical page)% (the number of logical pages per cluster)" in the bitmap of the extracted section is "1" Determine if the page exists. At the same time, the processor 13 can determine whether the extracted partition includes a valid page by referring to the valid page number field (VALID PAGE # of FIG. 2) or the validity field of the mapping table.

타겟 논리페이지에 기 맵핑된 물리페이지가 존재하면, 프로세서(13)는 추출된 파티션의 비트맵 필드, 시작 블록 필드 및 시작 물리페이지 필드를 이용하여 물리페이지의 주소를 산출한다(S330). 즉, 프로세서(13)는 비트맵에서 타겟 논리페이지의 오프셋에 대응하여 독출된 비트의 앞 비트를 독출하여 물리페이지의 오프셋을 산출하고, 파티션의 시작 물리페이지와 산출된 물리페이지의 오프셋의 합을 기초로 파티션의 시작 블록에 접근한다. If there is a physical page mapped to the target logical page, the processor 13 calculates the physical page address using the bitmap field, the start block field, and the start physical page field of the extracted partition (S330). That is, the processor 13 reads the bit of the bit read from the bitmap corresponding to the offset of the target logical page to calculate the offset of the physical page, and calculates the sum of the offset of the starting physical page of the partition and the calculated physical page Accesses the start block of the partition as a basis.

도 4를 참조하여 설명하면, 프로세서(13)는 논리페이지 #4에 대한 읽기 요청에 응답하여, 논리페이지 #4가 속하는 클러스터 #1에 대응하는 파티션을 탐색한다. 이때, 프로세서(13)는 인덱스가 높은 순으로 탐색하여 파티션 #2를 추출한다. 파티션 #2의 비트맵 '1001'에서 논리페이지 #4의 오프셋(즉, 0)에 해당하는 비트(즉, 첫 번째 비트)가 '1'이므로, 프로세서(13)는 논리페이지 #4에 기 맵핑된 물리페이지가 존재하는 것으로 판단한다. 이어서, 프로세서(13)는 논리페이지 #4에 대응하는 물리페이지의 오프셋(즉, 0)과 시작 물리페이지(즉, #2)의 합(즉, #2)을 기초로, 시작 블록(즉, 블록 #0)의 두 번째 물리페이지에 저장된 데이터를 독출할 수 있다. Referring to FIG. 4, in response to a read request for logical page # 4, processor 13 searches for a partition corresponding to cluster # 1 to which logical page # 4 belongs. At this time, the processor 13 searches in the descending order of the indexes to extract the partition # 2. Since the bit corresponding to the offset (i.e., the first bit) of the logical page # 4 is '1' in the bitmap '1001' of the partition # 2, the processor 13 writes the logical page # It is determined that the physical page exists. The processor 13 then determines the start block (that is, the block # 2) based on the offset (i.e., 0) of the physical page corresponding to logical page # 4 and the sum of the starting physical page Block # 0) can read the data stored in the second physical page.

한편, 전술한 단계 S320에서 타겟 논리페이지에 기 맵핑된 물리페이지 존재하지 않는다면, 프로세서(13)는 다른 파티션을 탐색한다. 이때, 프로세서(13)는 인덱스가 큰 파티션부터 탐색하므로, 탐색된 파티션의 인덱스는 전술한 단계 S310에서 탐색된 파티션의 인덱스보다 낮을 수 있다. On the other hand, if there is no physical page mapped to the target logical page in the above-described step S320, the processor 13 searches for another partition. At this time, the processor 13 searches for a partition having a large index, so that the index of the searched partition may be lower than the index of the partition searched at the above-described step S310.

도 4를 참조하여 설명하면, 프로세서(13)는 논리페이지 #5 에 대한 읽기 요청에 응답하여, 논리페이지 #5가 속하는 클러스터 #1에 대응하는 파티션 #2을 추출한다. 그러나, 파티션 #2의 비트맵 '1001'에는 논리페이지 #5의 오프셋(즉, 1)에 해당하는 비트(즉, 두 번째 비트)가 '0'이므로, 프로세서(13)는 논리페이지 #2에 기 맵핑된 물리페이지가 존재하지 않는 것으로 판단한다. 이후, 프로세서(13)는 클러스터 #1에 대응하는 파티션 #1을 탐색한다. 파티션 #1의 비트맵 '0100'에는 논리페이지 #5의 오프셋(즉, 1)에 해당하는 비트가 '1'이므로, 프로세서(13)는 논리페이지 #5에 기 맵핑된 물리페이지가 존재하는 것으로 판단한다. 4, the processor 13, in response to the read request for the logical page # 5, extracts the partition # 2 corresponding to the cluster # 1 to which the logical page # 5 belongs. However, since the bit corresponding to the offset (i.e., the first bit) of the logical page # 5 is '0' in the bitmap '1001' of the partition # 2, It is determined that there is no mapped physical page. Then, the processor 13 searches for the partition # 1 corresponding to the cluster # 1. Since the bit corresponding to the offset (i.e., 1) of the logical page # 5 is '1' in the bitmap '0100' of the partition # 1, the processor 13 determines that the physical page mapped to the logical page # 5 exists .

다시 도 3을 참조하면, 프로세서(13)는 타겟 논리페이지에 맵핑된 물리페이지를 이용하여 플래시 메모리(11)에 접근하여, 해당 물리페이지에 저장된 데이터를 독출할 수 있다(S340).Referring again to FIG. 3, the processor 13 accesses the flash memory 11 using the physical page mapped to the target logical page, and reads the data stored in the physical page (S340).

도 5는 본 발명의 일 실시예에 따라 프로세서(13)가 쓰기 동작을 수행하는 방법을 설명하기 위한 순서도이다. 전술한 바와 같이, 플래시 메모리(11)는 덮어쓰기를 허용하지 않으므로, 프로세서(13)는 논리페이지에 기 맵핑된 물리페이지가 존재하는 경우, 새로운 물리페이지를 할당해야 한다. 이하에서, 상세히 설명한다. 5 is a flowchart illustrating a method of performing a write operation by the processor 13 according to an embodiment of the present invention. As described above, since the flash memory 11 does not allow overwriting, the processor 13 must allocate a new physical page if there is a physical page mapped to the logical page. Hereinafter, this will be described in detail.

먼저, 프로세서(13)는 쓰기 요청된 논리페이지가 포함된 클러스터를 기초로 타겟 논리페이지 대응하는 파티션을 추출한다(S510). 이어서, 프로세서(13)는 추출된 파티션의 비트맵과 타겟 논리페이지의 오프셋을 이용하여, 타겟 논리페이지에 기 맵핑된 물리페이지가 존재하는지 여부를 판단한다(S520). 만약, 단계 S520 에서 타겟 논리페이지에 대응하는 파티션이 추출되지 않는다면, 프로세서(13)는 다음의 S530을 수행하지 않고, S540을 바로 수행한다. First, the processor 13 extracts a partition corresponding to the target logical page based on the cluster including the logical page requested to be written (S510). Subsequently, the processor 13 determines whether there is a physical page mapped to the target logical page using the bitmap of the extracted partition and the offset of the target logical page (S520). If the partition corresponding to the target logical page is not extracted in step S520, the processor 13 directly performs step S540 without performing the following step S530.

단계 S520에서 타겟 논리페이지에 기 맵핑된 물리페이지가 존재하면, 프로세서(13)는 추출된 파티션의 비트맵과 타겟 논리페이지의 오프셋을 이용하여, 타겟 논리페이지에 기 맵핑된 물리페이지의 주소를 산출한다(S530). 한편, 전술한 단계 S510 내지 S530에서의 프로세서(13)의 동작 방법은 각각 도 3의 단계 S310 내지 S330 과 동일 또는 유사하므로, 자세한 설명은 생략한다. If there is a physical page mapped to the target logical page in step S520, the processor 13 calculates the address of the physical page mapped to the target logical page using the bitmap of the extracted partition and the offset of the target logical page (S530). Meanwhile, the operation method of the processor 13 in the above-described steps S510 to S530 is the same as or similar to the steps S310 to S330 in FIG. 3, respectively, and detailed description will be omitted.

이후, 프로세서(13)는 타겟 논리페이지의 데이터를 저장하기 위해 할당 상태의 파티션을 탐색한다(S540). 이때, 프로세서(13)는 스트림 테이블(stream table)을 기초로 파티션을 탐색한다. 여기서, 스트림 테이블(stream table)은 비할당 상태의 페이지를 포함하는 할당 상태의 파티션들에 대한 정보로서, 해당 파티션들의 식별자(예컨대, 인덱스), 파티션에 마지막으로 기입된 논리페이지 및 마지막으로 할당된 물리페이지에 대한 정보를 포함할 수 있다. 프로세서(13)는 스트림 테이블에 기초하여, 마지막으로 기입된 논리페이지의 인덱스가 타겟 논리페이지의 인덱스보다 작은 파티션을 탐색한다. Then, the processor 13 searches for a partition in the allocated state to store the data of the target logical page (S540). At this time, the processor 13 searches for a partition based on a stream table. Here, the stream table is information on partitions in an allocated state including pages in an unallocated state, and includes an identifier (for example, an index) of corresponding partitions, a logical page last written to the partition, And may include information about physical pages. Based on the stream table, the processor 13 searches for a partition whose index of the last written logical page is smaller than the index of the target logical page.

도 6은 본 발명의 일 실시예에 따른 맵핑 테이블과 그에 따른 스트림 테이블의 일례를 도시한 도면이다. 도 6을 참조하여 프로세서(13)가 논리페이지 #3에 대해 쓰기 동작을 수행하는 일례를 설명한다. 먼저, 맵핑 테이블(601)의 파티션 #1이 논리페이지 #3에 대한 정보를 포함하므로, 논리페이지 #3은 기 맵핑된 물리페이지(즉, 물리페이지 #6)를 갖는다. 따라서, 프로세서(13)는 스트림 테이블(602)의 마지막으로 기입된 논리페이지(610) 중에서 #3보다 작은 논리페이지를 갖는 파티션을 탐색한다. 이 경우에도, 프로세서(13)는 스트림 테이블(602)의 인덱스가 큰 것부터 먼저 탐색할 수 있다. 따라서, 프로세서(13)는 파티션 #3을 새로운 파티션으로 결정할 수 있다. 6 is a diagram illustrating an example of a mapping table and a stream table according to an embodiment of the present invention. An example in which the processor 13 performs a write operation to the logical page # 3 will be described with reference to FIG. First, since the partition # 1 of the mapping table 601 includes the information about the logical page # 3, the logical page # 3 has the physical mapped physical page (that is, the physical page # 6). Thus, the processor 13 searches for a partition having a logical page smaller than # 3 among the last written logical pages 610 of the stream table 602. [ In this case as well, the processor 13 can first search for the index of the stream table 602 starting from the largest index. Thus, the processor 13 can determine partition # 3 as a new partition.

다시 도 5를 참조하면, 프로세서(13)는 탐색된 새로운 파티션에 마지막으로 할당된 물리페이지의 다음 페이지에 타겟 논리페이지의 데이터를 저장할 수 있다(S550). 다시 도 6을 참조하여 예를 들면, 프로세서(13)는 스트림 테이블(602)의 각 파티션에 마지막으로 할당된 물리페이지(즉, 물리페이지 #9)의 연속하는 물리페이지(즉, 물리페이지 #10)에, 타겟 논리페이지의 데이터를 저장할 수 있다. 이후, 프로세서(13)는 타겟 논리페이지와 이에 할당된 물리페이지에 대응되도록 맵핑 테이블 및 스트림 테이블을 갱신할 수 있다(S560). 다시 도 6을 참조하여 예를 들면, 논리페이지 #3에 기 맵핑되어 있었던 파티션 #1의 유효 페이지 수(VALID)를 (2-1)로 조정하며, 논리페이지 #3이 새롭게 맵핑되는 파티션 #3의 비트맵을 '0111'로 조정하고, 파티션 #3의 유효 페이지 수(VALID)르 ㄹ3으로 조정한다. Referring again to FIG. 5, the processor 13 may store the data of the target logical page on the next page of the physical page last allocated to the discovered new partition (S550). Referring again to Figure 6, for example, the processor 13 determines that the physical page # 10 (i.e., physical page # 10) of the physical page last allocated to each partition of the stream table 602 ), The data of the target logical page can be stored. Thereafter, the processor 13 may update the mapping table and the stream table so as to correspond to the target logical page and the physical page allocated thereto (S560). 6, the number of effective pages (VALID) of the partition # 1 mapped in the logical page # 3 is adjusted to (2-1), and the logical page # 3 is newly allocated to the partition # 3 Is adjusted to '0111', and the number of effective pages (VALID) of partition # 3 is adjusted to 3.

그러나, 전술한 단계 S530에서 새로운 파티션이 탐색되지 않으면, 프로세서(13)는 새로운 파티션을 할당한다(S570). 한편, 파티션의 최대 사용가능 개수는 제한될 수 있다. 이에 따라, 기 할당된 파티션의 개수가 최대 사용가능한 파티션의 개수이면, 프로세서(13)는 파티션 병합을 수행한다(S580). 이에 대해서는, 도 7을 참조하여 상세히 설명한다. However, if no new partition is found in step S530, the processor 13 allocates a new partition (S570). On the other hand, the maximum usable number of partitions can be limited. Accordingly, if the number of preallocated partitions is the maximum number of available partitions, the processor 13 performs the partition merge (S580). This will be described in detail with reference to FIG.

한편, 파티션은 탐색 또는 할당되었으나, 플래시 메모리(11)의 저장 공간이 부족한 경우(예컨대, 마지막 페이지까지 할당된 경우), 프로세서(13)는 삭제 동작(즉, 가비지 콜렉션)을 수행한다(S590). 이 경우, 프로세서(13)는 삭제할 빅팀(victim) 블록 내의 유효 페이지들의 순서를 정렬하여 복사 작업을 수행할 수 있다. 한편, 프로세서(13)는 유효 페이지의 수가 가장 적은 블록을 빅팀 블록으로 결정할 수 있으나, 이에 제한되는 것은 아니다. Meanwhile, if the partition is searched or allocated but the storage space of the flash memory 11 is insufficient (for example, the last page is allocated), the processor 13 performs a deletion operation (i.e., garbage collection) (S590) . In this case, the processor 13 can arrange the order of the valid pages in the victim block to be deleted and perform the copying operation. On the other hand, the processor 13 can determine a block having the smallest number of valid pages as a big team block, but the present invention is not limited thereto.

도 7은 본 발명의 일 실시예에 따른 파티션 병합 과정을 설명하기 위한 순서도이다. 파티션의 최대사용 개수가 제한되어 있는 경우, 프로세서(13)는 파티션을 병합할 수 있다. 7 is a flowchart illustrating a process of merging partitions according to an embodiment of the present invention. If the maximum number of uses of a partition is limited, the processor 13 can merge the partitions.

이를 위해, 프로세서(13)는 파티션 병합에 이용될 빅팀(victim) 파티션들을 결정한다 (S710). 예를 들어, 프로세서(13)는 클러스터 단위로 각 클러스터에 대응되는 파티션들을 그룹핑(grouping)하고, 그룹핑된 파티션들의 유효 페이지 수를 비교하여 빅팀 파티션 그룹을 선택할 수 있다. 이때, 빅팀 파티션 그룹에 포함된 파티션의 수가 "(클러스터에 포함된 논리페이지 수/파티션의 비트맵 크기 + 2)" 이상이면, 적어도 하나 이상의 비할당 상태의 파티션을 획득할 수 있다. 따라서, 프로세서(13)는 파티션 그룹에 포함된 파티션의 수가 "(클러스터에 포함된 논리페이지 수/파티션의 비트맵 크기 + 2)" 이상인 경우에만 유효 페이지 수를 비교할 수 있다. To this end, the processor 13 determines the victim partitions to be used for merging partitions (S710). For example, the processor 13 may group the partitions corresponding to each cluster in a cluster unit, and compare the number of effective pages of the grouped partitions to select a victim group group. At this time, if the number of partitions included in the victim partition group is equal to or larger than "(the number of logical pages included in the cluster / the bitmap size of the partition + 2)", at least one unallocated partition can be obtained. Therefore, the processor 13 can compare the number of valid pages only when the number of partitions included in the partition group is equal to or larger than "(the number of logical pages included in the cluster / the bitmap size of the partition + 2)".

한편, 클러스터에 파티션이 대응된다는 것은, 파티션의 시작 논리페이지의 인덱스가 해당 클러스터에 속하는 것을 의미할 수 있다. 도 8에 도시된 바와 같이, 파티션 #0의 시작 논리페이지가 논리페이지 #0이고, 파티션 #1의 시작 논리페이지가 논리페이지 #3이며, 파티션 #2의 시작 논리페이지가 논리페이지 #2이면, 파티션 [#0, #1, #2]는 클러스터 #0에 대응된다.On the other hand, the correspondence of the partition to the cluster may mean that the index of the start logical page of the partition belongs to the cluster. If the starting logical page of partition # 0 is logical page # 0, the starting logical page of partition # 1 is logical page # 3, and the starting logical page of partition # 2 is logical page # 2, Partitions [# 0, # 1, # 2] correspond to cluster # 0.

이후, 프로세서(13)는 빅팀 파티션들의 유효 페이지들을 순서대로 정렬하여 복사한다(S720). 즉, 프로세서(13)는 가장 낮은 인덱스의 논리페이지부터 순서대로 읽기 동작을 수행하고, 가장 낮은 인덱스의 빅팀 파티션을 이용하여 할당된 물리페이지로 쓰기 동작을 수행할 수 있다. 다시 도 8을 참조하여 설명하면, 프로세서(13)는 전술한 과정을 통해 파티션 [#0, #1, #2]을 하나 또는 두 개의 파티션으로 병합함으로써, 하나 또는 두 개의 비할당 상태의 파티션을 획득할 수 있다.Thereafter, the processor 13 sorts and copies the valid pages of the big-team partitions in order (S720). That is, the processor 13 performs a read operation in order from the logical page having the lowest index, and can perform the write operation to the allocated physical page using the lowest index partition of the big team. Referring again to FIG. 8, the processor 13 merges the partitions # 0, # 1, and # 2 into one or two partitions through the above-described process, thereby obtaining one or two unallocated partitions Can be obtained.

한편, 프로세서(13)는 파티션 병합 동작이 유효 물리페이지의 복사 동작(즉, 읽기 및 쓰기 동작)을 포함하므로, 플래시 메모리(11)에 대한 삭제 동작을 함께 수행할 수 있다. 따라서, 프로세서(13)는 삭제 동작 시에서와 동일한 방법으로 빅팀 파티션들을 결정할 수 있다. 그러나, 이에 제한되는 것은 아니며, 프로세서(13)는 밀집도가 높은 파티션들을 빅팀 파티션들로 결정할 수 있다. On the other hand, the processor 13 can perform the erase operation to the flash memory 11 together because the merge operation includes the copy operation (i.e., read and write operations) of the valid physical page. Thus, the processor 13 can determine the big-team partitions in the same way as in the erase operation. However, the present invention is not limited thereto, and the processor 13 may determine the high density partitions as the big team partitions.

이와 같이, 본 발명의 일 실시예에 따른 메모리 관리 시스템(10)은 복수의 페이지 단위로 맵핑 테이블을 관리함으로써, 종래의 페이지 단위 메모리 관리 시스템에 비해 약 8 배의 메모리 저장 공간 사용 효율을 발생시킬 수 있다. 도 9는 본 발명의 일 실시예에 따른 메모리 관리 시스템(10)을 적용한 결과를 페이지 단위 메모리 관리 시스템과 비교한 표이다. 도 9의 표에서 "# of PARTITION(배)"은 순서가 증가하게 쓰기 동작을 수행하는 경우를 가정하였을 때의 플래시 메모리(11)의 저장 공간을 커버하는 파티션 개수의 몇 배인지를 의미한다. 예를 들어, 64 GB의 저장 공간에서 파티션의 사이즈가 512KB 인 경우, 128K의 파티션이 있어야 전체 저장 공간을 파티션 병합 없이 사용할 수 있다. 이 경우, "# of PARTITION(배)"이 2 라면, 파티션이 256KB 로 할당됨을 나타낸다. As described above, the memory management system 10 according to an embodiment of the present invention manages the mapping table in units of a plurality of pages, thereby generating about 8 times as much memory usage efficiency as the conventional page-level memory management system . FIG. 9 is a table comparing a result of applying the memory management system 10 according to an embodiment of the present invention to a page-based memory management system. In the table of Fig. 9, "# of PARTITION (x)" indicates a number of times of the number of partitions covering the storage space of the flash memory 11 when it is assumed that the writing operation is performed in an increasing order. For example, if your partition size is 512 KB in 64 GB of storage, you must have a 128K partition to use the entire storage space without any partition merging. In this case, if "# of PARTITION (double)" is 2, it indicates that the partition is allocated to 256 KB.

이상에서 설명한 본 발명의 일 실시예에 따른 메모리 관리 시스템을 갖는 전자 장치 및 메모리 관리 방법은, 컴퓨터에 의해 실행되는 프로그램 모듈과 같은 컴퓨터에 의해 실행 가능한 명령어를 포함하는 기록매체의 형태로도 구현될 수 있다. 컴퓨터 판독 가능매체는 컴퓨터에 의해 액세스될 수 있는 임의의 가용매체일 수 있고, 휘발성 및 비휘발성 매체, 분리형 및 비분리형 매체를 모두 포함한다. 또한, 컴퓨터 판독 가능매체는 컴퓨터 저장 매체를 포함할 수 있다. 컴퓨터 저장매체는 컴퓨터 판독 가능 명령어, 데이터구조, 프로그램 모듈 또는 기타 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현된 휘발성 및 비휘발성, 분리형 및 비분리형 매체를 모두 포함한다. The above-described electronic apparatus and memory management method having a memory management system according to an embodiment of the present invention may be implemented in the form of a recording medium including instructions executable by a computer such as a program module executed by a computer . Computer readable media can be any available media that can be accessed by a computer and includes both volatile and nonvolatile media, removable and non-removable media. The computer-readable medium may also include computer storage media. Computer storage media includes both volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information such as computer readable instructions, data structures, program modules or other data.

본 발명의 시스템 및 방법은 특정 실시예와 관련하여 설명되었지만, 그것들의 구성 요소 또는 동작의 일부 또는 전부는 범용 하드웨어 아키텍처를 갖는 컴퓨터 시스템을 사용하여 구현될 수 있다.While the systems and methods of the present invention have been described with reference to particular embodiments, some or all of their components or operations may be implemented using a computer system having a general purpose hardware architecture.

전술한 본 발명의 설명은 예시를 위한 것이며, 본 발명이 속하는 기술분야의 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 예를 들어, 단일형으로 설명되어 있는 각 구성 요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성 요소들도 결합된 형태로 실시될 수 있다.It will be understood by those skilled in the art that the foregoing description of the present invention is for illustrative purposes only and that those of ordinary skill in the art can readily understand that various changes and modifications may be made without departing from the spirit or essential characteristics of the present invention. will be. It is therefore to be understood that the above-described embodiments are illustrative in all aspects and not restrictive. For example, each component described as a single entity may be distributed and implemented, and components described as being distributed may also be implemented in a combined form.

본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.The scope of the present invention is defined by the appended claims rather than the detailed description and all changes or modifications derived from the meaning and scope of the claims and their equivalents are to be construed as being included within the scope of the present invention do.

10: 메모리 관리 시스템
11: 플래시 메모리
12: 랜덤 엑세스 메모리
13: 프로세서
200, 601: 맵핑 테이블
602: 스트림 테이블
10: Memory Management System
11: Flash memory
12: random access memory
13: Processor
200, 601: mapping table
602: Stream table

Claims (15)

플래시 메모리를 사용하는 전자 장치에 있어서,
상기 플래시 메모리 접근을 위해 물리주소와 논리주소 간의 변환을 수행하는 프로그램을 일시적으로 저장하는 메모리; 및
상기 프로그램을 실행하는 프로세서를 포함하되,
상기 프로세서는, 상기 프로그램이 실행됨에 따라,
제1 논리페이지에 대한 접근 요청에 응답하여, 상기 제1 논리페이지에 대응하는 제1 파티션을 결정하고, 맵핑 테이블 중에서 상기 제1 파티션에 대응하는 테이블 정보를 독출하여 상기 제1 논리페이지에 대응하는 제1 물리페이지의 주소를 산출하며, 상기 플래시 메모리의 상기 제1 물리페이지로 접근하되,
상기 맵핑 테이블은,
접근 요청의 순서와 상기 접근 요청된 논리페이지의 인덱스가 증가하는 순서에 따라 복수의 논리페이지를 하나의 파티션 단위로 관리하고, 각 파티션에 포함된 각 논리페이지와 상기 각 논리페이지에 대응하는 물리페이지의 오프셋(offset) 정보를 나타내는 비트맵(bitmap)을 포함하는 것인 전자 장치.
In an electronic device using a flash memory,
A memory for temporarily storing a program for performing a conversion between a physical address and a logical address for the flash memory access; And
And a processor for executing the program,
The processor, as the program is executed,
Determining a first partition corresponding to the first logical page in response to an access request for a first logical page, reading table information corresponding to the first partition from a mapping table, Calculating an address of a first physical page, accessing the first physical page of the flash memory,
Wherein the mapping table comprises:
A plurality of logical pages are managed in a single partition unit in accordance with the order of access requests and the order in which the indexes of the logical pages requested to be accessed are incremented, and each logical page included in each partition and a physical page And a bitmap indicating offset information of the bitmap.
제 1 항에 있어서,
상기 맵핑 테이블은
상기 각 파티션에 대응하는 클러스터(cluster) 정보와 상기 각 파티션에 대응하는 시작 블록 정보 및 시작 물리페이지 정보를 포함하는 것인 전자 장치.
The method according to claim 1,
The mapping table
Cluster information corresponding to each partition, starting block information corresponding to each partition, and starting physical page information.
제 2 항에 있어서,
상기 비트맵에 포함된 '1'비트의 위치는 상기 각 논리페이지의 오프셋 정보를 나타내며, 상기 비트맵에 포함된 '1'비트의 개수는 각 물리페이지의 오프셋 정보를 나타내는 것인 전자 장치.
3. The method of claim 2,
Wherein a position of a '1' bit included in the bit map indicates offset information of each logical page, and a number of '1' bits included in the bit map indicates offset information of each physical page.
제 3 항에 있어서,
상기 프로세서는
상기 제1 논리페이지가 포함된 클러스터(cluster)를 기초로 상기 제1 파티션을 추출하고, 상기 제1 파티션의 비트맵과 상기 제1 논리페이지의 오프셋을 이용하여, 상기 제1 논리페이지에 기 맵핑된 물리페이지가 존재하는지 여부를 판단하는 것인 전자 장치.
The method of claim 3,
The processor
Extracting the first partition based on a cluster including the first logical page, and using the bitmap of the first partition and the offset of the first logical page, Lt; RTI ID = 0.0 > physical < / RTI >
제 3 항에 있어서,
상기 접근 요청이 읽기 요청인 경우,
상기 프로세서는
상기 제1 논리페이지에 기 맵핑된 물리페이지가 존재하는 경우, 상기 제1 파티션의 비트맵, 상기 시작 블록 및 시작 물리페이지를 이용하여 상기 제1 물리페이지의 주소를 산출하고, 상기 제1 논리페이지에 기 맵핑된 물리페이지가 존재하지 않는 경우, 상기 클러스터에 대응되는 제2 파티션을 추출하되,
상기 제2 파티션의 인덱스는 상기 제1 파티션의 인덱스보다 작은 것인 전자 장치.
The method of claim 3,
If the access request is a read request,
The processor
The address of the first physical page is calculated using the bitmap, the start block, and the start physical page of the first partition when there is a physical page mapped to the first logical page, If there is no physical page mapped to the cluster, extracts a second partition corresponding to the cluster,
And the index of the second partition is smaller than the index of the first partition.
제 5 항에 있어서,
상기 프로세서는
상기 제1 파티션의 비트맵에서, 상기 제1 논리페이지의 오프셋에 대응하여 독출된 비트의 앞 비트들을 독출하여 상기 제1 물리페이지의 오프셋을 산출하고, 상기 제1 파티션의 시작 물리페이지와 상기 오프셋의 합을 기초로 상기 제1 파티션의 시작 블록에 접근하는 것인 전자 장치.
6. The method of claim 5,
The processor
A first physical page of the first partition and a second physical page of the first partition, wherein the first physical page and the offset of the first physical page are read by reading the bits before the bit corresponding to the offset of the first logical page in the bitmap of the first partition, Of the first partition of the first partition.
제 3 항에 있어서,
상기 접근 요청이 쓰기 동작인 경우,
상기 프로세서는
상기 제1 논리페이지에 기 맵핑된 물리페이지가 존재하는 경우, 상기 제1 파티션의 비트맵, 상기 시작 블록 및 시작 물리페이지를 이용하여 상기 제1 물리페이지의 주소를 산출하고, 할당 상태의 제3 파티션을 탐색하되,
상기 제3 파티션은 마지막에 기입된 제2 논리페이지의 인덱스가 상기 제1 논리페이지의 인덱스보다 작은 것인 전자 장치.
The method of claim 3,
If the access request is a write operation,
The processor
The address of the first physical page is calculated using the bitmap, the start block, and the start physical page of the first partition when the physical page mapped to the first logical page exists, Browse the partitions,
And wherein the third partition is one in which the index of the second logical page written last is less than the index of the first logical page.
제 7 항에 있어서,
상기 프로세서는
스트림 테이블을 기초로 상기 할당 상태의 제3 파티션을 탐색하되,
상기 스트림 테이블은
비할당 상태의 페이지를 포함하는 할당 상태의 파티션들 각각에 대해, 각 파티션의 식별자, 상기 각 파티션에 마지막으로 기입된 논리페이지 및 마지막으로 할당된 물리페이지에 대한 정보를 포함하는 것인 전자 장치.
8. The method of claim 7,
The processor
Searching for a third partition in the allocated state based on a stream table,
The stream table
For each of the partitions in the allocated state including the page in the unallocated state, an identifier of each partition, a logical page last written to each partition, and information on the last allocated physical page.
제 8 항에 있어서,
상기 프로세서는
상기 스트림 테이블을 기초로 상기 제3 파티션이 탐색되지 않으며, 기 할당된 파티션의 개수가 최대 사용가능한 파티션의 개수이면, 기 할당된 파티션들을 병합하는 것인 전자 장치.
9. The method of claim 8,
The processor
If the third partition is not searched based on the stream table and if the number of pre-allocated partitions is the maximum number of usable partitions, merge pre-allocated partitions.
제 9 항에 있어서,
상기 프로세서는
각 클러스터에 속하는 시작 논리페이지를 갖는 파티션들을 그룹핑하고, 그룹핑된 파티션들의 유효 페이지 수를 기초로 빅팀 파티션 그룹을 결정하되,
상기 빅팀 파티션 그룹에 포함된 파티션의 수는 (클러스터에 포함된 페이지 수/파티션의 비트맵 크기 +2) 이상인 것인 전자 장치.
10. The method of claim 9,
The processor
Grouping partitions having start logical pages belonging to each cluster, determining a big team partition group based on the number of valid pages of the grouped partitions,
Wherein the number of partitions included in the victim partition group is equal to or greater than (the number of pages included in the cluster / the bitmap size of the partition + 2).
플래시 메모리를 이용하는 전자 장치의 메모리 관리 방법에 있어서,
타겟 논리페이지에 대한 접근 요청에 응답하여, 상기 타겟 논리페이지에 대응하는 제1 파티션을 결정하는 단계;
맵핑 테이블 중에서 상기 제1 파티션에 대응하는 테이블 정보를 독출하여 상기 타겟 논리페이지에 대응하는 물리페이지의 주소를 산출하는 단계; 및
상기 플래시 메모리의 상기 물리페이지로 접근하는 단계를 포함하되,
상기 맵핑 테이블은,
접근 요청의 순서와 상기 접근 요청된 논리페이지의 인덱스가 증가하는 순서에 따라 복수의 논리페이지를 하나의 파티션 단위로 관리하고, 각 파티션에 포함된 각 논리페이지와 상기 각 논리페이지에 대응하는 물리페이지의 오프셋(offset) 정보를 나타내는 비트맵(bitmap)을 포함하는 것인 메모리 관리 방법.
A memory management method for an electronic device using a flash memory,
Responsive to an access request for a target logical page, determining a first partition corresponding to the target logical page;
Reading table information corresponding to the first partition from a mapping table and calculating an address of a physical page corresponding to the target logical page; And
Accessing the physical page of the flash memory,
Wherein the mapping table comprises:
A plurality of logical pages are managed in a single partition unit in accordance with the order of access requests and the order in which the indexes of the logical pages requested to be accessed are incremented, and each logical page included in each partition and a physical page And a bitmap indicating offset information of the bitmap.
제 11 항에 있어서,
상기 맵핑 테이블은
상기 각 파티션에 대응하는 클러스터(cluster) 정보와 상기 각 파티션에 대응하는 시작 블록 정보 및 시작 물리페이지 정보를 포함하는 것인 메모리 관리 방법.
12. The method of claim 11,
The mapping table
And cluster information corresponding to each partition, start block information corresponding to each partition, and start physical page information.
제 12 항에 있어서,
상기 비트맵에 포함된 '1'비트의 위치는 상기 각 논리페이지의 오프셋 정보를 나타내며, 상기 비트맵에 포함된 '1'비트의 개수는 각 물리페이지의 오프셋 정보를 나타내는 것인 메모리 관리 방법.
13. The method of claim 12,
Wherein a position of a '1' bit included in the bit map indicates offset information of each logical page, and a number of '1' bits included in the bit map indicates offset information of each physical page.
제 13 항에 있어서,
상기 제1 파티션을 결정하는 단계는
상기 타겟 논리페이지가 포함된 클러스터(cluster)를 기초로 상기 제1 파티션을 추출하는 단계; 및
상기 제1 파티션의 비트맵과 상기 타겟 논리페이지의 오프셋을 이용하여, 상기 타겟 논리페이지에 기 맵핑된 물리페이지가 존재하는지 여부를 판단하는 단계를 포함하며,
상기 타겟 논리페이지에 대응하는 물리페이지의 주소를 산출하는 단계는
상기 제1 파티션의 비트맵, 상기 시작 블록 및 시작 물리페이지를 이용하여 상기 물리페이지의 주소를 산출하는 것인 메모리 관리 방법.
14. The method of claim 13,
The step of determining the first partition
Extracting the first partition based on a cluster including the target logical page; And
Determining whether a physical page mapped to the target logical page exists using the bitmap of the first partition and the offset of the target logical page,
Wherein the step of calculating the address of the physical page corresponding to the target logical page
Wherein the address of the physical page is calculated using the bitmap of the first partition, the start block, and the start physical page.
제 11 항 내지 제 14 항 중 어느 한 항의 방법을 구현하기 위한 프로그램이 기록된 컴퓨터로 판독 가능한 기록 매체.A computer-readable recording medium on which a program for implementing the method of any one of claims 11 to 14 is recorded.
KR1020170101150A 2017-08-09 2017-08-09 Memory management system using flash memory and method thereof KR101936364B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170101150A KR101936364B1 (en) 2017-08-09 2017-08-09 Memory management system using flash memory and method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170101150A KR101936364B1 (en) 2017-08-09 2017-08-09 Memory management system using flash memory and method thereof

Publications (1)

Publication Number Publication Date
KR101936364B1 true KR101936364B1 (en) 2019-01-08

Family

ID=65021074

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170101150A KR101936364B1 (en) 2017-08-09 2017-08-09 Memory management system using flash memory and method thereof

Country Status (1)

Country Link
KR (1) KR101936364B1 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210027625A (en) * 2019-08-29 2021-03-11 동국대학교 산학협력단 Method for managing of memory address mapping table for data storage device
CN113626347A (en) * 2021-07-29 2021-11-09 武汉新芯集成电路制造有限公司 Storage device and working method thereof
US11561712B2 (en) 2020-10-20 2023-01-24 SK Hynix Inc. Storage device and method of operating the same

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101626218B1 (en) 2014-11-21 2016-06-13 한양대학교 산학협력단 Block based page mapping method

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101626218B1 (en) 2014-11-21 2016-06-13 한양대학교 산학협력단 Block based page mapping method

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210027625A (en) * 2019-08-29 2021-03-11 동국대학교 산학협력단 Method for managing of memory address mapping table for data storage device
KR102316271B1 (en) 2019-08-29 2021-10-22 동국대학교 산학협력단 Method for managing of memory address mapping table for data storage device
US11561712B2 (en) 2020-10-20 2023-01-24 SK Hynix Inc. Storage device and method of operating the same
CN113626347A (en) * 2021-07-29 2021-11-09 武汉新芯集成电路制造有限公司 Storage device and working method thereof
CN113626347B (en) * 2021-07-29 2023-12-15 武汉新芯集成电路制造有限公司 Storage device and working method thereof

Similar Documents

Publication Publication Date Title
US9471500B2 (en) Bucketized multi-index low-memory data structures
CN107066393B (en) Method for improving mapping information density in address mapping table
US10176113B2 (en) Scalable indexing
JP6205650B2 (en) Method and apparatus utilizing non-uniform hash function to place records in non-uniform access memory
KR101289931B1 (en) Method and apparatus for storing data in flash memory using address mapping with various block sizes
US20140304453A1 (en) Effective Caching for Demand-based Flash Translation Layers in Large-Scale Flash Memory Storage Systems
JP2019020788A (en) Memory system and control method
US10936203B2 (en) Memory storage device and system employing nonvolatile read/write buffers
US10445022B1 (en) Optimization of log-structured merge (LSM) tree-based databases using object solid state drive (SSD) devices
US20150324281A1 (en) System and method of implementing an object storage device on a computer main memory system
KR101936364B1 (en) Memory management system using flash memory and method thereof
KR101017067B1 (en) Locality-Aware Garbage Collection Technique for NAND Flash Memory-Based Storage Systems
US11630779B2 (en) Hybrid storage device with three-level memory mapping
CN110968269A (en) SCM and SSD-based key value storage system and read-write request processing method
JP2018181202A (en) Device, method, and program for storage control
CN109002400B (en) Content-aware computer cache management system and method
CN113253926A (en) Memory internal index construction method for improving query and memory performance of novel memory
Lv et al. Exploiting minipage-level mapping to improve write efficiency of NAND flash
US20140359228A1 (en) Cache allocation in a computerized system
CN110968520B (en) Multi-stream storage device based on unified cache architecture
KR20120039166A (en) Nand flash memory system and method for providing invalidation chance to data pages
KR101847859B1 (en) Apparatus and method of storage based on flash memory using file trim
KR100999111B1 (en) Apparatus of having structure of flash translation layer and prefetching method and asynchronous writing method based on the flash translation layer
KR101270777B1 (en) System and method for writing data using a PRAM in a device based on input-output of block unit
CN117891415B (en) P2L data management method and device of storage device

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant