[go: up one dir, main page]

KR20100055201A - Data programming device, and data programming method - Google Patents

Data programming device, and data programming method Download PDF

Info

Publication number
KR20100055201A
KR20100055201A KR1020080114167A KR20080114167A KR20100055201A KR 20100055201 A KR20100055201 A KR 20100055201A KR 1020080114167 A KR1020080114167 A KR 1020080114167A KR 20080114167 A KR20080114167 A KR 20080114167A KR 20100055201 A KR20100055201 A KR 20100055201A
Authority
KR
South Korea
Prior art keywords
block
programming
host
data
control unit
Prior art date
Legal status (The legal status 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 status listed.)
Withdrawn
Application number
KR1020080114167A
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 KR1020080114167A priority Critical patent/KR20100055201A/en
Publication of KR20100055201A publication Critical patent/KR20100055201A/en
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 OR CALCULATING; 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
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Read Only Memory (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

본 발명은 소거 횟수를 대신하여 프로그래밍 횟수를 이용하여 마모도 평준화를 수행하며, 메모리 셀을 제어하는 제어부의 구조를 단순화 시키고, 데이터 프로그래밍에 소요되는 과정과 시간을 감소시키는 플래시 메모리장치, 및 방법에 대한 것이다.The present invention relates to a flash memory device and a method for performing wear leveling using a programming number instead of an erase count, simplifying a structure of a control unit for controlling a memory cell, and reducing a process and time required for data programming. will be.

Description

플래시 메모리장치, 및 데이터 기록방법{Data programming device, and data programming method}Flash memory device, and data recording method {Data programming device, and data programming method}

본 발명은 플래시 메모리장치, 및 데이터 기록방법에 대한 것이다.The present invention relates to a flash memory device and a data writing method.

반도체 기술의 향상에 따라, 플래시 메모리를 이용하는 플래시 메모리장치가 종래의 기계식 하드디스크를 대체하는 추세에 있다.BACKGROUND With the development of semiconductor technology, flash memory devices using flash memory have tended to replace conventional mechanical hard disks.

플래시 메모리는 하드디스크와 같은 제자리 갱신(in-place update)이 불가능하고 데이터를 기록하기 전에, 기록대상 블록을 미리 소거(erase)하는 과정을 필요로 한다.The flash memory cannot perform an in-place update such as a hard disk and requires a process of erasing a block to be written beforehand before recording data.

또한, 플래시 메모리의 각 블록은 소거될 수 있는 한계를 갖는다. 플래시 메모리는 MLC(MultiLevel Cell) 방식의 칩일 경우 각 블록당 기록 가능한 횟수가 1만 번 정도이고, SLC(Single Level Cell) 방식의 칩일 경우에도, 10만 번을 넘지 않는다. 따라서, 플래시 메모리는, 각 블록에 대한 소거 횟수를 참조하여 소거 횟수가 적은 블록을 찾고, 소거 횟수가 적은 블록을 소거 후, 호스트에서 전송하는 데이터를 프로그래밍(기록)하며, 데이터를 프로그래밍 후, 데이터가 프로그래밍된 블록에 대한 소거횟수를 증가시키는 과정을 갖는다.In addition, each block of flash memory has a limit that can be erased. In the case of a MLC (MultiLevel Cell) chip, the flash memory has a recordable number of times of about 10,000 blocks, and a SLC (Single Level Cell) chip does not exceed 100,000. Therefore, the flash memory searches for blocks with fewer erase counts by referring to the erase count for each block, erases the blocks with fewer erase counts, and then programs (writes) data transmitted from the host, and after programming the data, Has a process of increasing the erase count for the programmed block.

플래시 메모리를 구성하는 각 블록에서 균등한 소거를 수행하는 마모도 평준화 방법은 크게 동적 마모도 평준화 방법과 정적 마모도 평준화 방법으로 구분된다.The wear leveling method for equally erasing each block constituting the flash memory is divided into a dynamic wear leveling method and a static wear leveling method.

동적 마모도 평준화 방법(Dynamic Wear Leveling)은 호스트의 데이터 기록 요구가 발생하였을 때, 플래시 메모리의 컨트롤러가 플래시 메모리 내에서 소거 횟수(Erase Cycle)가 가장 적은 블록을 선택하는 방법이다. Dynamic Wear Leveling is a method in which a controller of a flash memory selects a block having the least erase cycle in the flash memory when a host data write request occurs.

정적 마모도 평준화 방법(Static Wear Leveling)은 플래시 컨트롤러가 플래시 메모리 내에서 소거 횟수가 가장 적은 블록의 데이터를 소거 횟수가 가장 많은 블록으로 데이터를 복사하는 방법이다.Static wear leveling is a method in which the flash controller copies data from the least erased block in flash memory to the block with the highest erase count.

여기서, 동적 마모도 평준화 방법과 정적 마모도 평준화 방법은,Here, the dynamic wear leveling method and the static wear leveling method,

- 플래시 메모리에 데이터를 기록하기 전, 마모도 평준화를 위해 플래시 메모리의 컨트롤러가 매핑 테이블을 한 번 참조해야 하고,-Before writing data to the flash memory, the controller of the flash memory should refer to the mapping table once to level out wear,

- 플래시 메모리에 데이터를 기록 후, 소거 횟수를 +1 카운트하기 위해 매핑 테이블을 갱신해야 한다.After writing data to flash memory, the mapping table must be updated to count +1 erases.

즉, 플래시 메모리에 데이터를 한 번 기록할 때마다 두 번씩 매핑 테이블을 참조해야 한다. That is, every time data is written to flash memory, the mapping table must be referenced twice.

이러한 기록 과정에 의해 플래시 메모리에 데이터를 기록하는데 소요되는 과정과 시간이 증가함은 물론, 플래시 메모리의 컨트롤러 구조를 복잡하게 만드는 단점이 있다.Such a writing process increases the process and time required to write data to the flash memory, and also complicates the controller structure of the flash memory.

따라서, 본 발명의 목적은, 데이터 기록에 따른 시간을 감소시킴은 물론, 메모리 셀을 구성하는 각 블록을 제어하는 제어부의 구조를 단순화하는 플래시 메모리장치, 및 데이터 기록방법을 제공함에 있다.Accordingly, an object of the present invention is to provide a flash memory device and a data writing method that not only reduce the time required for data writing but also simplify the structure of a control unit for controlling each block constituting a memory cell.

상기한 목적은 본 발명에 따라, 복수의 블록으로 구성되는 적어도 하나의 메모리 셀, 상기 각 블록에 대한 프로그래밍 횟수를 구비하는 매핑 테이블을 형성하며, 기록대상 블록에 대해 프로그래밍을 수행할 때, 기록대상 블록에 대한 프로그래밍 횟수를 갱신하고, 상기 각 블록에 대한 프로그래밍 횟수를 토대로 상기 각 블록에 대한 마모도 평준화를 수행하는 제어부에 의해 달성된다.The above object is to form a mapping table having at least one memory cell composed of a plurality of blocks, the number of programming for each block, according to the present invention, and when programming for a block to be written, A control is performed by updating a programming number for a block and performing wear leveling on each block based on the programming number for each block.

상기한 목적은 본 발명에 따라, 적어도 하나의 메모리 셀 각각을 구성하는 복수의 블록들 중, 데이터 프로그래밍 횟수가 가장 적은 최소 블록을 선택하는 단계, 및 호스트의 데이터 기록 요청에 응답하여 상기 최소 블록의 프로그래밍 횟수를 갱신 후, 상기 최소 블록에 상기 데이터를 프로그래밍하는 단계에 의해 달성된다.According to the present invention, the object of the present invention is to select a minimum block having the least number of data programming, among a plurality of blocks constituting each of the at least one memory cell, and in response to a data write request from a host. After updating the number of programming, programming the data in the minimum block is achieved.

따라서, 본 발명은 메모리 셀을 제어하는 제어부의 구조를 단순화 시키며, 데이터 프로그래밍에 소요되는 시간을 감소시킨다.Therefore, the present invention simplifies the structure of the control unit for controlling the memory cell and reduces the time required for data programming.

이하, 도면을 참조하여 본 발명을 상세히 설명하도록 한다.Hereinafter, the present invention will be described in detail with reference to the accompanying drawings.

본 명세서에서 기술되는 플래시 메모리장치는 NAND 게이트, 또는 NOR 게이트를 이용하는 플래시 메모리장치일 수 있다. 또한, 본 발명에서 기술되는 플래시 메모리 장치는 SLC(Single Level Cell) 방식, 또는 MLC(Multi Level Cell) 방식에 따라 칩을 구비하는 플래시 메모리장치일 수 있다.The flash memory device described herein may be a flash memory device using a NAND gate or a NOR gate. In addition, the flash memory device described in the present invention may be a flash memory device having a chip according to an SLC (Single Level Cell) method or a MLC (Multi Level Cell) method.

본 발명은, 어떤 종류의 메모리 셀을 이용하는가에 따라 그 기술적 사상이 영향을 받지 않는다. 따라서, 본 발명에서 언급되는 메모리 셀은 NAND 게이트나 NOR 게이트 방식의 플래시 메모리 칩을 이용할 수 있으며, 마찬가지로, SLC 방식에 따른 메모리 칩이거나, MLC 방식에 따른 칩이 적용되어도 무방하므로 따로 구분하여 설명하지 않는다. The present invention is not affected by the type of memory cell used. Therefore, the memory cell referred to in the present invention may use a flash memory chip of a NAND gate or a NOR gate method, and likewise, a memory chip according to the SLC method or a chip according to the MLC method may be applied. Do not.

또한, 이하의 설명에서는 메모리 셀을 제어하는 컨트롤러를 제어부라 하고, 제어부를 구성하는 구성요소에 대한 접미사로서 "모듈", 또는 "부"가 사용될 수 있다. In the following description, a controller for controlling a memory cell is referred to as a controller, and a "module" or a "unit" may be used as a suffix to components constituting the controller.

본 명세서에서 사용되는 구성요소, 및 그에 대한 접미사는 본 명세서 작성의 용이함만을 고려하여 부여되는 것으로, 상기 "모듈", 및 "부"는 상호 혼용되어 사용될 수 있다.Components used in the present specification, and suffixes thereof are given only in consideration of ease of preparation of the present specification, and the "module" and "unit" may be used interchangeably.

본 명세서에서 기술되는 "플래시 메모리장치"는 SSD(Solid State Disk)로 구현되거나, 임베디드 장치에서 비 휘발성 저장매체의 역할을 수행할 수 있다. 따라서, 본 명세서에서 기술되는 플래시 메모리장치는 퍼스널 컴퓨터, 서버, 노트북, PDA(Personal Digital Assistant), PMP(Personal Media Player), 비디오 게임기, 휴대단말기(mobile phone), 및 기타 데이터 저장을 위한 다양한 장치에 적용될 수 있다.The "flash memory device" described herein may be implemented as a solid state disk (SSD) or may serve as a nonvolatile storage medium in an embedded device. Accordingly, the flash memory device described herein may be a personal computer, a server, a notebook computer, a personal digital assistant (PDA), a personal media player (PMP), a video game machine, a mobile phone, and various devices for storing data. Can be applied to

도 1은 본 발명에 따른 플래시 메모리장치와 호스트의 접속관계에 대한 개념도를 도시한다.1 is a conceptual diagram illustrating a connection relationship between a flash memory device and a host according to the present invention.

도 1을 참조하면, 본 발명에 따른 플래시 메모리장치(100)는 호스트(50)에 접속되어 사용되며, 호스트(50)가 부팅될 때, 호스트(50)와 데이터 전송 방식을 협의하고, 협의된 데이터 전송 방식에 따라 상호 데이터 전송을 처리한다.Referring to FIG. 1, the flash memory device 100 according to the present invention is connected to a host 50 and used, and when the host 50 is booted, it negotiates a data transmission scheme with the host 50 and negotiates a data transfer scheme. Process mutual data transmission according to the data transmission method.

먼저, 호스트(50)가 부팅될 때, 프로세서(CPU)(51)는 바이오스(BIOS)(52)를 통해 플래시 메모리장치(SSD)(100)에 대한 장치 정보를 획득한다. 바이오스(52)는 호스트(50)에 장착되는 각종 하드웨어 장치에 대한 장치 정보를 구비하며, 호스트(50)가 부팅될 때, 각종 하드웨어 장치 정보를 프로세서(51)로 전송한다. 다음으로, 프로세서(51)는 플래시 메모리장치(100)의 존재를 인식하고, 플래시 메모리장치(100)가 사용 가능한지를 확인한다(S1). 플래시 메모리장치(100)의 제어부(120)는 호스트(50)에 대해 사용 가능함을 응답하며(S2), 호스트(50)와 데이터 전송을 위한 주소 체계를 협의한다(S3). CHS 주소 체계는 바이오스(52)가 하드디스크 드라이브의 실린더(Cylinder), 헤드(Head), 섹터(Sector)정보를 저장해두고, 호스트(50) 측 프로세서(51)가 CHS 정보를 이용하여 하드디스크 드라이브와 데이터 통신을 수행하는 주소 체계를 의미한다.First, when the host 50 is booted, the processor (CPU) 51 obtains device information on the flash memory device (SSD) 100 through the BIOS 52. The BIOS 52 includes device information about various hardware devices mounted on the host 50, and transmits various hardware device information to the processor 51 when the host 50 is booted. Next, the processor 51 recognizes the existence of the flash memory device 100 and checks whether the flash memory device 100 is usable (S1). The controller 120 of the flash memory device 100 responds to the availability of the host 50 (S2), and negotiates an address system for data transmission with the host 50 (S3). In the CHS address system, the BIOS 52 stores cylinder, head, and sector information of the hard disk drive, and the processor 51 of the host 50 uses the CHS information to store the hard disk drive. This refers to an address system that communicates data with.

LBA(Logical Block Addressing) 주소 체계는 하드디스크 드라이브의 첫 번째 섹터에 일렬번호를 매긴 뒤, 그 다음번 일련번호를 그 다음번 섹터에 할당하여 주소를 형성하는 주소 체계를 의미한다. 본 명세서는 현재 가장 널리 이용되는 LBA 주소 체계를 기준으로 설명을 진행하도록 한다.Logical Block Addressing (LBA) addressing refers to an addressing system that assigns a serial number to the first sector of a hard disk drive and then assigns the next serial number to the next sector to form an address. This specification will be described based on the currently widely used LBA address system.

호스트(50)와 플래시 메모리장치(100)의 제어부(120)가 상호 인식하고, 데이터 전송을 위한 주소 체계에 대한 협의가 종료되면, 호스트(50)는 플래시 메모리장치(100)로 데이터 읽기, 쓰기, 삭제, 및 기타 다양한 제어 명령어(command)를 전송할 수 있으며(S4)), 플래시 메모리장치(100)는 호스트(50)의 제어 명령어(command)에 대한 응답(response)을 수행한다(S5). 플래시 메모리장치(100)의 응답은 호스트(50)가 원하는 데이터를 읽거나, 쓰거나, 삭제했을 때, 호스트(50)로 데이터를 전송하거나, 호스트(50)의 제어 명령어(commnand)에 대한 처리 결과를 호스트(50)로 전송하는 것 중 하나에 해당한다.When the host 50 and the controller 120 of the flash memory device 100 recognize each other and the negotiation about the address system for data transmission is completed, the host 50 reads and writes data to the flash memory device 100. , Delete, and various other control commands may be transmitted (S4), and the flash memory device 100 may perform a response to the control command of the host 50 (S5). The response of the flash memory device 100 transmits the data to the host 50 when the host 50 reads, writes, or deletes the desired data, or the processing result of the control command (commnand) of the host 50. Corresponds to one of transmitting to the host 50.

한편, 플래시 메모리장치(100)는 호스트(50)가 제어 명령어(command)를 전송하기 전, 메모리 셀(140)을 구성하는 각 블록에 대해 매핑테이블을 형성한다.Meanwhile, the flash memory device 100 forms a mapping table for each block constituting the memory cell 140 before the host 50 transmits a control command.

메모리 셀(140)은 복수의 블록으로 구성되며, 각 블록은 기계식 하드디스크 드라이브와는 달리 실린더, 헤더, 및 섹터의 기준으로 구획되지 않는다. 따라서, 현재도 널리 사용되는 하드디스크 드라이브를 대신하여 호스트(50)와 데이터 통신을 수행하기 위해서는 각 물리적인 블록을 호스트(50)의 논리 주소체계와 대응시켜야 하며, 통상 "매핑 테이블"을 이용한다. 본 발명에서, 매핑 테이블은 복수로 구획되어 복수의 부분 매핑 테이블을 형성하고, 각 부분 매핑 테이블은 각 블록(140a ∼ 140n)에 분산되어 저장된다.The memory cell 140 is composed of a plurality of blocks, and each block is not partitioned based on cylinders, headers, and sectors, unlike mechanical hard disk drives. Therefore, in order to perform data communication with the host 50 instead of the hard disk drive that is still widely used, each physical block needs to correspond to the logical address system of the host 50, and generally uses a "mapping table". In the present invention, the mapping table is divided into a plurality to form a plurality of partial mapping tables, and each partial mapping table is distributed and stored in each of the blocks 140a to 140n.

제어부(120)는 각 블록(140a ∼ 140n)에 분산되어 저장되어있는 부분 매핑 테이블을 모아 하나의 전체 매핑 테이블을 형성하며, 형성된 전체 매핑 테이블은 메모리(150)에 저장한다. 이후, 제어부(120)은 호스트(50)가 논리 주소를 이용하여 제어 명령어(command)를 전송하면, 전체 매핑 테이블을 이용하여 해당하는 블록을 대응시킨다.The controller 120 collects the partial mapping tables distributed and stored in each of the blocks 140a to 140n to form one global mapping table, and stores the entire mapping table in the memory 150. Thereafter, when the host 50 transmits a control command using the logical address, the controller 120 associates the corresponding block using the entire mapping table.

이때, 전체 매핑 테이블은 각 블록(140a ∼ 140n)의 마모도를 참조하여 호스트(50)의 논리주소(LBA)와 대응하는 실제 물리 블록의 주소(PBA)를 변경할 수 있다. In this case, the entire mapping table may change the address PBA of the physical block corresponding to the logical address LBA of the host 50 with reference to the wear level of each block 140a to 140n.

통상의 경우 각 블록(140a ∼ 140n)을 프로그래밍하기 전, 블록을 소거하는 횟수를 참조하여 마모도 평준화를 수행하나, 본 발명에서는 소거 횟수 대신, 프로그래밍 횟수를 참조하여 마모도 평준화를 수행한다. 프로그래밍 횟수를 이용하여 마모도 평준화를 수행할 경우, Generally, before programming each block 140a to 140n, wear leveling is performed by referring to the number of times of erasing the block. However, in the present invention, wear leveling is performed by referring to the number of programming instead of the number of erasing. When leveling wear with a programming count,

제어부(120)는 LBA에 해당하는 블록을 프로그래밍을 할 때, 프로그래밍 횟수를 카운트하며, 프로그래밍이 종료된 이후에는 마모도 평준화를 위한 카운트를 수행하지 않는다. 따라서, 제어부(120)는 종래에 비해 구조가 단순해지고 구현이 용이해짐은 물론, 마모도 평준화를 위한 카운트 과정이 단순해지므로 처리 속도도 증가한다. 이에 대한 내용은 추후 도 2 ∼ 도 6을 참조하여 상세히 설명하도록 한다.When programming the block corresponding to the LBA, the control unit 120 counts the number of programming, and after programming is completed, the control unit 120 does not perform a count for leveling wear. Therefore, the control unit 120 is simpler in structure and easier to implement than in the related art, and also increases the processing speed since the counting process for leveling wear is simplified. This will be described in detail later with reference to FIGS. 2 to 6.

도 2는 본 발명의 일 실시예에 따른 플래시 메모리장치의 블록개념도를 도시한다.2 is a block diagram of a flash memory device according to an embodiment of the present invention.

도 2를 참조하면, 본 발명에 따른 플래시 메모리장치는 호스트 인터페이스부(110), 제어부(120), 메모리 인터페이스부(130), 및 메모리 셀(140)을 포함한다.2, a flash memory device according to the present invention includes a host interface 110, a controller 120, a memory interface 130, and a memory cell 140.

메모리 셀(140)은 하나, 또는 복수개로 구성될 수 있다. 도면에서, 메모리 셀(140)은 n개 이며, 제1메모리셀(140a) ∼ 제n메모리셀(140n)을 도시한다.One or more memory cells 140 may be configured. In the drawing, there are n memory cells 140, and show first memory cells 140a to nth memory cells 140n.

각 메모리 셀(140a ∼ 140n)은 기록, 재기록, 및 삭제가 가능한 플래시 칩으로 구성된다. 각 메모리 셀(140a ∼ 140n)은 호스트(30)의 논리주소(LBA : Logical Block Address)에 대응하는 고유의 물리주소(PBA : Physical Block Address)를 갖는다. Each memory cell 140a to 140n is constituted by a flash chip capable of writing, rewriting, and erasing. Each memory cell 140a to 140n has a unique physical address (PBA) corresponding to the logical address (LBA) of the host 30.

물리 주소(PBA)는 호스트(50) 측 논리주소(LBA)와 1:1 대응하나, 블록의 마모도가 평균값을 넘을 경우, 블록은 타 LBA로 변경될 수 있다. 변경 사항은 메모리(150)에 형성되는 전체 매핑 테이블에 반영된다. The physical address PBA corresponds 1: 1 with the logical address LBA on the host 50 side, but when the wear level of the block exceeds an average value, the block may be changed to another LBA. The change is reflected in the entire mapping table formed in the memory 150.

호스트 인터페이스부(110)는 호스트(50)와 제어부(120) 사이에 전송되는 데이터의 형태를 변환한다. 예를들어, 호스트(50)가 SATA(Serial-ATA) 방식의 인터페이스를 통해 플래시 메모리장치와 인터페이스를 수행할 경우, 호스트 인터페이스부(110)는 제어부(120)에서 전송되는 데이터를 SATA 방식에 따라 변환하여 호스트(50)로 제공한다. 호스트 인터페이스부(110)는 호스트(50)의 인터페이스 방식에 따라 SATA1, SATA2, SCSI, 및 IDE 인터페이스 등을 지원할 수 있으며, 이 외에도, 호스트(50)가 필요로 하는 인터페이스에 따라 다양한 인터페이스가 적용될 수 있다.The host interface unit 110 converts the type of data transmitted between the host 50 and the controller 120. For example, when the host 50 interfaces with a flash memory device through a Serial-ATA (SATA) interface, the host interface unit 110 controls the data transmitted from the controller 120 according to the SATA method. The conversion is provided to the host 50. The host interface unit 110 may support SATA1, SATA2, SCSI, and IDE interfaces according to the interface method of the host 50. In addition, various interfaces may be applied according to the interface required by the host 50. have.

또한, 호스트 인터페이스부(110)는 호스트(50)가 전송하는 명령어를 수신하 고, 수신된 명령어를 제어부(120)로 제공한다. 호스트(50)가 전송하는 명령어는 읽기, 쓰기 명령이 주류를 이루나, 레이드 지원을 위한 명령어, 및 기타 플래시 메모리장치(100)에 대한 상태정보를 요청하는 명령어가 될 수 있다. In addition, the host interface 110 receives a command transmitted by the host 50 and provides the received command to the controller 120. The command transmitted by the host 50 may be a read and write command, but may be a command for requesting RAID support, and a command for requesting status information about the flash memory device 100.

제어부(120)는 호스트 인터페이스부(110)를 통해 호스트(50)의 각종 명령어를 수신하고, 수신된 명령어를 수행한다. 또한, 제어부(120)는 호스트 인터페이스부(110)를 통해 수신된 명령어의 처리 결과를 호스트(50)로 리턴하며, 호스트(50)가 데이터를 요청할 경우, 메모리 셀(140)에서 데이터를 독출하고, 호스트 인터페이스부(110)를 통해 독출된 데이터를 호스트(50)로 제공한다.The controller 120 receives various commands of the host 50 through the host interface 110 and performs the received commands. In addition, the controller 120 returns the processing result of the command received through the host interface unit 110 to the host 50. When the host 50 requests data, the controller 120 reads data from the memory cell 140. In addition, the data read through the host interface unit 110 is provided to the host 50.

제어부(120)는 각 메모리 셀(140a ∼ 140n)을 복수의 블록으로 구획하고, 전체 매핑 테이블을 참조하여 각 블록의 물리주소(PBA)를 호스트(50) 측 논리 주소에 대응시킨다. The control unit 120 divides each memory cell 140a to 140n into a plurality of blocks, and maps the physical address PBA of each block to the logical address of the host 50 with reference to the entire mapping table.

또한, 제어부(120)는 각 블록(141a ∼ 143n)의 마모도를 참조하여 호스트(50)가 자주 호출하는 논리주소(LBA)에 대응하는 블록의 물리주소(PBA)를 변경하여 각 블록(140a ∼ 140n)이 골고루 마모되도록 한다. In addition, the control unit 120 changes the physical address PBA of the block corresponding to the logical address LBA frequently called by the host 50 with reference to the wear level of each block 141a to 143n, thereby changing each block 140a to 143n. 140n) to wear evenly.

이때, 제어부(120)는 각 메모리 셀(140a ∼ 140n)에 대한 마모도를 참조하여 논리주소와 물리주소의 대응관계를 변경하거나, 각 메모리 셀(140a ∼ 140n) 중 어느 하나에 포함되는 블록 내에서 논리주소와 물리주소의 대응관계를 변경할 수 있다. At this time, the controller 120 changes the correspondence relationship between the logical address and the physical address with reference to the wear degree of each memory cell 140a to 140n, or within a block included in any one of the memory cells 140a to 140n. You can change the correspondence between logical and physical addresses.

예컨대 제어부(120)는 메모리 셀(140a)이 가장 많이 마모되는 메모리 셀이라고 판단할 경우, 메모리 셀(140a)에 대한 블록(141a ∼ 141n))에 대해 마모도 평준 화를 수행할 수 있다.For example, when the controller 120 determines that the memory cell 140a is the most worn memory cell, the control unit 120 may perform wear leveling on the blocks 141a to 141n of the memory cell 140a.

즉, 제어부(120)는,That is, the control unit 120,

- 마모도가 가장 높은 메모리 셀(예컨대 참조부호 "140a")을 중심으로 마모도 평준화를 수행하거나,Perform wear leveling around the highest wear memory cell (e.g., "140a"), or

- 전체 메모리 셀(140a ∼ 140n)을 구성하는 모든 블록(141a ∼ 143n)에 대해 마모도 평준화를 수행할 수 있다.Wear leveling can be performed for all blocks 141a to 143n constituting the entire memory cells 140a to 140n.

본 발명의 전반에 걸쳐 마모도 평준화는 개별 메모리 셀(예컨대 참조부호 "140a")에 대해 수행되거나, 전체 메모리 셀(140a ∼ 140n)을 구성하는 전체 메모리 셀(141a ∼ 143n)에 대해 수행될 수 있다.Throughout the present invention, wear leveling may be performed for individual memory cells (eg, reference numeral “140a”) or for all memory cells 141a to 143n constituting the entire memory cells 140a to 140n. .

바람직하게는, 제어부(120)는 마모도를 평준화하기 위한 FTL 처리부(121)를 구비한다. FTL 처리부(121)는 매핑 테이블(mapping table)을 이용하여 프로그래밍 횟수가 가장 적은 블록을 최소 블록으로 설정하며, 호스트(50)에서 데이터 기록 요청이 발생할 경우, 최소 블록에 데이터 기록을 요청한다.Preferably, the control unit 120 includes an FTL processing unit 121 for leveling wear. The FTL processing unit 121 sets the block having the least programming number as the minimum block by using a mapping table. When the data writing request is generated in the host 50, the FTL processing unit 121 requests the data writing to the minimum block.

이때, 최소블록은,In this case, the minimum block is,

- 프로그래밍 횟수가 최소인 블록,-The block with the least number of programming,

- 미사용 블록, 및Unused blocks, and

- 프로그래밍 횟수에 대한 평균값보다 프로그래밍 횟수가 적은 블록이 해당될 수 있다.Blocks with fewer programming times than the average value for the number of programming may correspond.

여기서, 프로그래밍 횟수는, 어느 블록에 데이터를 몇 번 기록했는가를 의미하므로, FTL 처리부(121)는 최소 블록을 선택 후, 최소 블록에 대한 프로그래밍 횟 수를 +1 처리 후, 곧바로 최소 블록에 대해 데이터 기록 명령을 전달할 수 있다. In this case, since the number of programming means which data has been written in which block, the FTL processing unit 121 selects the minimum block, and then, after +1 processing the programming number for the minimum block, the data for the minimum block immediately. You can pass a write command.

따라서, FTL 처리부(121)는 최소 블록에 대한 데이터 기록이 수행된 후, 부가되는 처리과정(예컨대 소거 횟수 갱신)을 필요로하지 않는다. 이러한 특징은 FTL 처리부(121), 및 FTL 처리부(121)를 포함하는 제어부(120)의 구조와 처리 과정을 단순화한다.Therefore, the FTL processing unit 121 does not need a process (for example, updating the erase count) to be added after data recording for the minimum block is performed. This feature simplifies the structure and processing of the control unit 120 including the FTL processing unit 121 and the FTL processing unit 121.

이때, FTL 처리부(121)가 참조하는 매핑 테이블은 제어부(120) 내에 마련되거나, 제어부(120)와 연결되는 별도의 메모리(미 도시)에 위치할 수 있으며, 각 메모리 셀(140a ∼ 140n)의 일 영역을 이용할 수도 있다.In this case, the mapping table referenced by the FTL processing unit 121 may be provided in the control unit 120 or may be located in a separate memory (not shown) connected to the control unit 120, and each of the memory cells 140a to 140n may have a mapping table. One area may be used.

각 메모리 셀(140a ∼ 140n)을 구성하는 각 블록(141a ∼ 143n)은 데이터를 프로그래밍 하기 전, 기록 대상 블록을 소거하는 과정을 필요로 하나, 기록 대상 블록을 프로그래밍 후, 소거 횟수를 매핑 테이블에 기록하는 과정은 필요로 하지 않는다. Each block 141a to 143n constituting each of the memory cells 140a to 140n requires a process of erasing the write target block before programming the data, but after programming the write target block, the erase count is written to the mapping table. The process of recording is not necessary.

메모리 인터페이스부(130)는 제어부(120)에서 각 메모리 셀(140a ∼ 140n)로 제공되는 명령어를 전송하고, 각 메모리 셀(140a ∼ 140n)에서 독출된 데이터를 제어부(120)로 제공한다.The memory interface unit 130 transmits a command provided to each of the memory cells 140a to 140n from the controller 120, and provides data read from each of the memory cells 140a to 140n to the controller 120.

도 3은 본 발명에 따른 데이터 기록방법을 도시하며, 도 4는 본 발명과 비교하기 위한 통상의 데이터 기록방법을 도시한다.3 shows a data recording method according to the present invention, and FIG. 4 shows a conventional data recording method for comparison with the present invention.

먼저, 도 3을 참조하면, 본 발명에 따른 데이터 기록방법은 통상의 마모도 평준화(wear leveling) 방법과는 달리 메모리 셀을 구성하는 각 블록에 대한 프로그래밍 횟수를 참조한다. 프로그래밍 횟수는 데이터를 블록에 기록하는 횟수를 나 타내는 것으로, 블록에 데이터를 기록하기 전 블록을 소거하는 횟수(소거 횟수)를 참조하는 통상의 데이터 기록방법과 본 발명이 구분되는 중요한 특징에 해당한다.First, referring to FIG. 3, the data writing method according to the present invention refers to the number of programming for each block constituting a memory cell, unlike a general wear leveling method. The number of programming refers to the number of times data is written to the block, which corresponds to the important feature that distinguishes the present invention from the conventional data recording method which refers to the number of times of erasing the block (number of erases) before writing the data to the block. .

본 발명이 마모도 평준화를 위해 프로그래밍 횟수를 이용함에 따라, 본 발명에서 제안하는 데이터 기록방법은 통상의 마모도 평준화 방법과는 다른 형태의 매핑 테이블을 이용한다. As the present invention uses the number of programming for wear leveling, the data recording method proposed by the present invention uses a mapping table that is different from the general wear leveling method.

본 발명에 따른 매핑 테이블은 메모리 셀을 구성하는 각 블록에 대한 프로그래밍 횟수를 구비한다. 프로그래밍 횟수는 소거횟수와는 달리, 데이터를 블록에 프로그래밍 하기전 갱신 가능하다. The mapping table according to the present invention has a programming number for each block constituting a memory cell. Unlike the erase count, the programming count can be updated before programming the data into the block.

본 발명에 따른 데이터 기록방법은 프로그래밍 횟수를 참조하여 프로그래밍이 가장 적게 이루어진 최소 블록을 찾고, 최소 블록에 대한 프로그래밍 횟수를 +1 처리 후, 최소 블록에 대한 프로그래밍 횟수가 기록된 매핑 테이블을 갱신한다.The data recording method according to the present invention finds the minimum block with the least programming with reference to the number of programming, and after processing +1 the programming number for the minimum block, updates the mapping table in which the programming number for the minimum block is recorded.

즉, 본 발명에 따른 데이터 기록방법은, 호스트의 데이터 기록 명령에 대해, 프로그래밍 횟수를 참조하여 최소 블록을 선택하고, 최소 블록에 대한 프로그래핑 횟수를 갱신하며, 프로그래밍 명령을 각 메모리 셀(140a ∼ 140n)에 전송하는 처리 과정을 갖는다.That is, in the data writing method according to the present invention, for the data write command of the host, the minimum block is selected with reference to the number of programming, the number of programming for the minimum block is updated, and the programming command is assigned to each memory cell 140a to 횟수. 140n).

다음으로, 도 4를 참조하면, 종래의 데이터 기록방법은 호스트의 데이터 기록명령에 응답하여 각 메모리 셀(140a ∼ 140n)을 구성하는 각 블록의 소거 횟수를 참조하여 마모도 평준화를 수행한다.Next, referring to FIG. 4, the conventional data writing method performs wear leveling by referring to the erase count of each block constituting each of the memory cells 140a to 140n in response to a data writing command of the host.

종래의 데이터 기록방법은, 소거 횟수를 참조하여 소거 횟수가 적은 블록을 기록 대상 블록으로 선택하고, 기록 대상 블록에 대해 프로그래밍 명령을 수행한 다. 그러나, 종래의 마모도 평준화 방법은 기록 대상 블록에 대해 프로그래밍 명령을 전송한 후, 블록의 프로그래밍이 종료되면 매핑 테이블의 소거 횟수를 갱신한다. 따라서, 소거 횟수를 이용한 종래의 마모도 평준화 방법은 호스트의 기록 명령에 대한 처리과정이 본 발명에 비해 오래 걸리는 것은 물론, 처리 과정이 증가하는 만큼 메모리 셀을 제어하는 제어부의 구조가 복잡해진다.In the conventional data recording method, a block having a small erase count is selected as a recording target block with reference to the erase count, and a programming command is executed for the recording target block. However, the conventional wear leveling method transmits a programming command for a block to be written, and updates the erase count of the mapping table when programming of the block is completed. Therefore, in the conventional wear leveling method using the erase count, the process of writing a host's write command takes longer than that of the present invention, and the structure of the control unit that controls the memory cell is increased as the process increases.

도 5는 본 발명에 따른 매핑 테이블의 구조를 나타내고, 도 6은 본 발명과 대비되는 종래의 매핑 테이블 구조를 나타낸다.5 shows a structure of a mapping table according to the present invention, and FIG. 6 shows a conventional mapping table structure compared with the present invention.

먼저, 도 5를 참조하면, 본 발명에 따른 매핑 테이블은, 호스트(50)의 논리 주소(LBA0 ∼ LBAn), 호스트의 논리 주소에 대응되는 물리 주소(PBA0 ∼ PBAn), 및 각 블록에 대한 프로그래밍 횟수(Program cycle)을 구비한다. First, referring to FIG. 5, the mapping table according to the present invention includes programming of logical addresses LBA0 to LBAn of a host 50, physical addresses PBA0 to PBAn corresponding to logical addresses of a host, and each block. It has a program cycle.

호스트(50)의 논리 주소는 호스트(50)가 제어부(120)로 전송하는 주소 체계에 해당한다. 호스트(50)의 주소 체계는 각 블록 단위로 관리되는 각 메모리 셀(140a ∼ 140n)의 주소 체계와는 다르며, 통상 운영체제의 주소 체계에 따라 결정된다.The logical address of the host 50 corresponds to an address system that the host 50 transmits to the controller 120. The address system of the host 50 is different from the address system of each memory cell 140a to 140n managed in units of blocks, and is usually determined according to the address system of the operating system.

물리 주소(PBA0 ∼ PBAn)는 호스트(50)의 논리 주소에 대응되는 각 블록(예컨대 참조부호 141a)의 주소를 나타낸다. 각 물리 주소(PBA0 ∼ PBAn)에 해당하는 블록은 호스트(50)에 의해 데이터를 기록한 횟수에 의해 마모도가 결정된다. The physical addresses PBA0 to PBAn represent addresses of respective blocks (for example, reference numeral 141a) corresponding to the logical addresses of the host 50. The block corresponding to each of the physical addresses PBA0 to PBAn is determined by the number of times data is written by the host 50.

단위 면적당 저장 용량이 많고 가격이 저렴한 MLC 방식의 플래시 메모리가 각 메모리 셀(140a ∼ 140n)을 구성할 경우, 대략 10,000 번의 기록이 가능하다. 각 메모리 셀(140a ∼ 140n)을 구성하는 각 블록(141a ∼ 143n)의 마모도를 판단하 기 위한 프로그래밍 횟수(program cycle)는 논리 주소, 및 각 블록(141a ∼ 143n)의 물리 주소와 연동되어 저장된다.When the MLC type flash memory having a large storage capacity per unit area and low cost constitutes each memory cell 140a to 140n, approximately 10,000 writes are possible. The program cycle for determining the wear level of each block 141a to 143n constituting each memory cell 140a to 140n is stored in association with the logical address and the physical address of each block 141a to 143n. do.

다음으로, 도 6을 참조하면, 종래의 매핑 테이블도 호스트 어드레스, 물리 어드레스를 갖고 있으나, 각 블록에 대한 물리 어드레스는 소거 횟수와 연동하여 저장되는 구조를 가지며, 이 구조가 본 발명과 대비되는 큰 차이점을 발생한다.Next, referring to FIG. 6, although the conventional mapping table also has a host address and a physical address, the physical address for each block has a structure stored in association with the erase count, and this structure is large compared with the present invention. Causes a difference.

소거 횟수를 이용하여 마모도 평준화를 할 경우, 플래시 메모리장치는 기록 대상 블록에 대한 프로그래밍을 처리한 후, 매핑 테이블에 소거 횟수를 +1하여 갱신한다. 따라서, 도 5에 따른 매핑 테이블을 이용하는 통상의 데이터 기록방법은 프로그래밍 횟수를 +1 한 후, 즉각 프로그래밍을 수행하는 본 발명에 비해 처리 단계가 더 추가되며, 매핑 테이블은 두 번 참조된다.When the wear level is equalized by using the erase count, the flash memory device processes programming for the block to be written, and updates the erase count by +1 in the mapping table. Therefore, in the conventional data recording method using the mapping table according to FIG. 5, a processing step is further added compared to the present invention which performs programming immediately after +1 programming times, and the mapping table is referred to twice.

소거 횟수를 이용하여 데이터를 기록할 경우, 종래의 플래시 메모리장치는 마모도 평준화를 위해 매핑 테이블을 한 번 참조하고, 데이터를 프로그래밍 후, 재차 참조해야 한다. 즉, 제어부(120)의 구조와 처리 단계가 복잡해진다.When data is written using the erase count, the conventional flash memory device needs to refer to the mapping table once for leveling wear, and to refer again after programming the data. That is, the structure and processing steps of the controller 120 become complicated.

도 7은 본 발명의 일 예에 따른 흐름도를 나타낸다.7 shows a flowchart according to an example of the present invention.

먼저, 제어부(120)는 호스트 인터페이스부(110)를 통해 호스트(50)의 명령을 수신하며, 호스트(50)의 명령 중, 데이터 기록명령이 존재하는지를 판단한다(S201). 만일, 호스트(50)에서 전달된 명령이 각 메모리 셀(140a ∼ 140n)에 저장된 데이터 독출을 위한 명령이 아닐 경우, 각 메모리 셀(140a ∼ 140n)에 대한 제어 명령인지를 판단하고(S206), 제어 명령일 경우, 제어 명령을 수행한다(S207). 제어 명령은 플래시 메모리장치(100)가, 데이터 기록을 수행 가능한지의 여부를 확 인하는 명령, 데이터 기록이 완료되었는지를 확인하는 명령, 및 무응답 블록에 대한 응답 요청을 위한 명령어등이 있으며, 플래시 메모리장치(100)를 레이드(RAID)로 구성할 경우, 데이터 분배, 및 데이터 검증과 같은 명령어들이 더 포함될 수 있다.First, the control unit 120 receives a command of the host 50 through the host interface unit 110, and determines whether a data recording command exists among the commands of the host 50 (S201). If the command transmitted from the host 50 is not a command for reading data stored in each of the memory cells 140a to 140n, it is determined whether the command is a control command for each of the memory cells 140a to 140n (S206). In the case of a control command, a control command is performed (S207). The control command includes a command for confirming whether or not the flash memory device 100 can perform data writing, a command for confirming whether data writing is completed, and a command for requesting a response to the non-responsive block. When the device 100 is configured as a RAID, instructions such as data distribution and data verification may be further included.

다음으로, 제어부(120)는 호스트(50)에서 제공되는 명령이 블록에 대한 데이터 기록명령일 경우, 매핑 테이블을 참조하여(S202), 데이터 기록횟수가 최소인 최소 블록을 선택한다(S203). 최소 블록은 아래의 두 가지 방법에 의해 선택될 수 있다.Next, when the command provided from the host 50 is a data write command for the block, the controller 120 refers to the mapping table (S202) and selects the minimum block having the minimum number of data write operations (S203). The minimum block can be selected by the following two methods.

- 각 블록에 대한 데이터 기록횟수를 비교하여 데이터 기록횟수가 가장 적은 블록을 최소 블록으로 선택하는 방법, 및-Selecting a block having the smallest number of data writes as the minimum block by comparing the number of data writes for each block; and

- 각 블록에 대한 데이터 기록횟수에 대한 평균값을 구하고, 평균값보다 적은 기록횟수를 갖는 복수의 블록을 최소 블록으로 지정하며, 최소 블록들 중 하나를 선택하는 방법.Obtaining a mean value for the number of data writes for each block, specifying a plurality of blocks having a write count less than the average value as the minimum block, and selecting one of the minimum blocks.

한편, 최소 블록은 각 메모리 셀(140a ∼ 140n)들 중 마모도가 가장 높은 메모리 셀(140a ∼ 140n 중 어느 하나)을 기준으로 판단하거나, 전체 메모리 셀(140a ∼ 140n)을 구성하는 모든 블록(141a ∼ 143n)에 대해서 판단할 수 있다.Meanwhile, the minimum block is determined based on the memory cells 140a to 140n having the highest wear among the memory cells 140a to 140n or all the blocks 141a constituting the entire memory cells 140a to 140n. To 143n).

즉, 제어부(120)는 마모도가 가장 높은 메모리 셀(140a ∼ 140n 중 어느 하나)에 포함되는 블록들 중 마모도가 가장 큰 블록을 최소 블록으로 선택하거나, 전체 메모리 셀(140a ∼ 140n)을 구성하는 블록(141a ∼ 143n)에 대해 마모도가 가장 큰 블록을 최소 블록으로 판단할 수 있다.That is, the controller 120 selects the block having the largest wear among the blocks included in the memory cells 140a to 140n having the highest wear as the minimum block, or configures the entire memory cells 140a to 140n. With respect to the blocks 141a to 143n, the block having the largest wear can be determined as the minimum block.

제어부(120)는 데이터를 기록하고자 하는 최소 블록을 선택 후, 최소 블록에 대한 프로그래밍 횟수를 갱신한다. 프로그래밍 횟수의 갱신은, 매핑 테이블에 기록된 프로그래밍 횟수를 +1하여 갱신하는 것이 바람직하다.The controller 120 selects the minimum block to which data is to be recorded, and then updates the programming times for the minimum block. The update of the number of programming is preferably updated by +1 the number of programming recorded in the mapping table.

제어부(120)는 매핑 테이블에 대한 프로그래밍 횟수를 갱신 후, 즉각 최소 블록에 대해 데이터 기록 명령을 전송한다(S205). 이때, 제어부(120)는 최소 블록에 대한 데이터 기록작업이 종료된 후, 호스트(50)에서 기록명령이 전달되는지를 판단하며, 호스트(50)에서 다음 번 데이터의 기록을 요청할 경우, SS201 ∼ S205의 과정을 반복하여 다음 번 데이터의 기록을 수행한다. The controller 120 updates the number of programming for the mapping table and immediately transmits a data write command for the minimum block (S205). At this time, the controller 120 determines whether a recording command is transmitted from the host 50 after the data recording operation for the minimum block is finished, and if the host 50 requests the next recording of data, SS201 to S205. Repeat the process to perform recording of the next data.

통상의 플래시 메모리장치와는 달리 본 발명에 따른 제어부(120)는 최소 블록에 대한 데이터 기록이 종료된 후, 매핑 테이블을 재차 갱신하거나 참조하지 않는다. 따라서, 제어부(120)가 데이터 기록을 위한 과정이 단순화되고, 단순화되는 만큼 제어부(120)의 구조도 단순하게 구현할 수 있다.Unlike a conventional flash memory device, the controller 120 according to the present invention does not update or refer to the mapping table again after data recording for the minimum block is finished. Therefore, the control unit 120 may simplify the process for recording data, and as a result, the structure of the control unit 120 may be simply implemented.

또한, 이상에서는 본 발명의 바람직한 실시예에 대하여 도시하고 설명하였지만, 본 발명은 상술한 특정의 실시예에 한정되지 아니하며, 청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 발명의 기술적 사상이나 전망으로부터 개별적으로 이해되어져서는 안될 것이다.In addition, although the preferred embodiment of the present invention has been shown and described above, the present invention is not limited to the specific embodiments described above, but the technical field to which the invention belongs without departing from the spirit of the invention claimed in the claims. Of course, various modifications can be made by those skilled in the art, and these modifications should not be individually understood from the technical spirit or the prospect of the present invention.

도 1은 본 발명에 따른 플래시 메모리장치와 호스트의 접속관계에 대한 개념도,1 is a conceptual diagram of a connection relationship between a flash memory device and a host according to the present invention;

도 2는 본 발명의 일 실시예에 따른 플래시 메모리장치의 블록개념도,2 is a block diagram of a flash memory device according to an embodiment of the present invention;

도 3은 본 발명에 따른 데이터 기록방법을 도시하며, 도 4는 본 발명과 비교하기 위한 통상의 데이터 기록방법을 나타내는 도면,3 shows a data recording method according to the present invention, and FIG. 4 shows a conventional data recording method for comparison with the present invention;

도 5는 본 발명에 따른 매핑 테이블의 구조를 나타내고, 도 6은 본 발명과 대비되는 종래의 매핑 테이블 구조를 나타내는 도면, 그리고5 shows the structure of a mapping table according to the present invention, FIG. 6 shows a conventional mapping table structure compared with the present invention, and

도 7은 본 발명의 일 예에 따른 흐름도를 나타낸다.7 shows a flowchart according to an example of the present invention.

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

100 : 플래시 메모리장치 110 : 호스트 인터페이스부100: flash memory device 110: host interface unit

120 : 제어부 121 : FTL 처리부120: control unit 121: FTL processing unit

130 : 메모리 인터페이스부 140 : 메모리 셀130: memory interface unit 140: memory cell

Claims (19)

복수의 블록으로 구성되는 적어도 하나의 메모리 셀;At least one memory cell consisting of a plurality of blocks; 상기 각 블록에 대한 프로그래밍 횟수를 구비하는 매핑 테이블을 형성하며, 기록대상 블록에 대해 프로그래밍을 수행할 때, 기록대상 블록에 대한 프로그래밍 횟수를 갱신하고, 상기 각 블록에 대한 프로그래밍 횟수를 토대로 상기 각 블록에 대한 마모도 평준화를 수행하는 제어부;를 포함하는 플래시 메모리장치.A mapping table having a programming number for each block is formed, and when programming a block to be recorded, the programming number for the block to be recorded is updated, and each block is based on the number of programming for each block. And a control unit for performing wear leveling on the flash memory device. 제1항에 있어서,The method of claim 1, 상기 제어부는,The control unit, 상기 각 블록에 대한 프로그래밍 횟수 중 최소값을 갖는 블록을 기록대상 블록으로 선택하는 것을 특징으로 하는 플래시 메모리장치.And selecting a block having a minimum value among the number of programming for each block as a recording target block. 제1항에 있어서,The method of claim 1, 상기 제어부는,The control unit, 상기 각 블록에 대한 프로그래밍 횟수의 평균값을 기준으로 상기 평균값보다 프로그래밍 횟수가 적은 블록을 기록대상 블록으로 선택하는 것을 특징으로 하는 플래시 메모리장치.And selecting a block having a programming number less than the average value as a recording target block based on the average value of the programming number for each block. 제1항에 있어서,The method of claim 1, 상기 제어부는,The control unit, 상기 각 블록들 중 미사용 블록을 기록대상 블록으로 선택하는 것을 특징으로 하는 플래시 메모리장치.And selecting an unused block among the blocks as a recording target block. 제1항에 있어서,The method of claim 1, 상기 제어부는,The control unit, 상기 메모리 셀들 중 어느 하나에 속하는 블록들에 대한 프로그래밍 횟수가 최소값을 갖는 블록을 기록대상 블록으로 선택하는 것을 특징으로 하는 플래시 메모리장치.And selecting a block having a minimum programming number for blocks belonging to any one of the memory cells as a recording target block. 제1항에 있어서,The method of claim 1, 상기 제어부는,The control unit, 상기 메모리 셀들 중 어느 하나에 속하는 블록들에 대한 프로그래밍 횟수의 평균값을 기준으로 상기 평균값보다 프로그래밍 횟수가 적은 블록을 기록대상 블록으로 선택하는 것을 특징으로 하는 플래시 메모리장치.And selecting a block having a less programming number as a recording target block based on an average value of programming times for blocks belonging to any one of the memory cells. 제1항에 있어서,The method of claim 1, 상기 제어부는,The control unit, 상기 메모리 셀들 중 어느 하나에 속하는 블록들 중 미사용 블록을 기록대상 블록으로 선택하는 것을 특징으로 하는 플래시 메모리장치.And selecting an unused block among blocks belonging to any one of the memory cells as a recording target block. 제1항에 있어서,The method of claim 1, 상기 제어부는,The control unit, 상기 기록대상 블록에 대한 프로그래밍 횟수를 갱신 후, 상기 기록대상 블록에 대한 프로그래밍을 수행하는 것을 특징으로 하는 플래시 메모리장치.And updating the programming number of the block to be written, and then programming the block to be written. 제1항에 있어서,The method of claim 1, 상기 매핑 테이블은,The mapping table is, 상기 각 블록의 갯수에 따라 복수의 부분 매핑테이블로 구획되며, 상기 각 블록에 분산 저장되는 것을 특징으로 하는 플래시 메모리장치.And divided into a plurality of partial mapping tables according to the number of each block, and distributed in each of the blocks. 제9항에 있어서,10. The method of claim 9, 상기 제어부는,The control unit, 리셋 시, 상기 각 부분 매핑테이블을 조합하여 상기 매핑 테이블을 형성하는 것을 특징으로 하는 플래시 메모리장치.And, upon resetting, forming the mapping table by combining the partial mapping tables. 제1항에 있어서,The method of claim 1, 상기 제어부는,The control unit, 상기 매핑 테이블을 이용하여 상기 각 블록들 중 어느 하나를 호스트에서 전송되는 논리주소(LBA)에 대응하는 것을 특징으로 하는 플래시 메모리장치.And one of the blocks corresponding to a logical address (LBA) transmitted from a host by using the mapping table. 제1항에 있어서,The method of claim 1, 상기 제어부는,The control unit, 상기 각 블록에 대한 호스트의 논리 주소를 상기 각 블록에 대한 물리 주소로 변환하는 FTL 처리부;를 더 포함하는 것을 특징으로 하는 플래시 메모리장치.And a FTL processing unit for converting a logical address of a host for each block into a physical address for each block. 제1항에 있어서,The method of claim 1, 상기 매핑 테이블은,The mapping table is, 상기 각 블록에 대한 호스트의 논리 주소, 상기 논리 주소에 대한 물리 주소, 및 상기 각 블록에 대한 프로그래밍 횟수를 구비하는 것을 특징으로 하는 플래시 메모리장치.And a logical address of the host for each block, a physical address for the logical address, and a programming number for each block. 제1항에 있어서,The method of claim 1, 상기 제어부와 호스트 사이에 마련되며, 상기 블록들 중 어느 하나에서 독출된 데이터를 상기 호스트의 인터페이스에 따라 변환하는 인터페이스부;를 더 포함하는 것을 특징으로 하는 플래시 메모리장치.And an interface unit provided between the control unit and the host, the interface unit converting data read in any one of the blocks according to the interface of the host. 적어도 하나의 메모리 셀 각각을 구성하는 복수의 블록들 중, 데이터 프로그래밍 횟수가 가장 적은 최소 블록을 선택하는 단계; 및Selecting the least block among the plurality of blocks constituting each of the at least one memory cell, the least number of times of data programming; And 호스트의 데이터 기록 요청에 응답하여 상기 최소 블록의 프로그래밍 횟수를 갱신 후, 상기 최소 블록에 상기 데이터를 프로그래밍하는 단계;를 포함하는 플래시 메모리장치의 데이터 기록방법.And programming the data in the minimum block after updating the programming number of the minimum block in response to a host data write request. 제15항에 있어서,The method of claim 15, 상기 최소 블록을 선택하는 단계는,Selecting the minimum block, 상기 각 블록에 대한 데이터 프로그래밍 횟수를 구비하는 매핑 테이블을 참조하는 단계; 및Referencing a mapping table having a number of data programming times for each block; And 상기 매핑 테이블을 통해 상기 호스트의 데이터 프로그래밍 횟수가 가장 적은 블록을 최소 블록으로 선택하는 단계;를 포함한느 것을 특징으로 하는 플래시 메모리장치의 데이터 기록방법.And selecting the block having the smallest number of data programming times of the host as the minimum block through the mapping table. 제16항에 있어서,The method of claim 16, 상기 매핑 테이블은,The mapping table is, 상기 호스트에서 전송하는 논리 주소, 상기 각 블록들 중 상기 논리 주소에 대응하는 블록의 물리 주소, 및 상기 논리 주소에 대응하는 물리 주소를 갖는 블록의 프르그래밍 횟수 중 어느 하나에 대한 정보를 구비하는 것을 특징으로 하는 플래시 메모리장치의 데이터 기록방법.And having information about any one of a logical address transmitted from the host, a physical address of a block corresponding to the logical address among the respective blocks, and a programming number of a block having a physical address corresponding to the logical address. A data recording method of a flash memory device. 제15항에 있어서,The method of claim 15, 상기 최소 블록은,The minimum block is, 상기 각 메모리 셀에 포함되는 블록들 중 프로그래밍 횟수가 최소인 블럭인 것을 특징으로 하는 플래시 메모리장치의 데이터 기록방법.And a block having a minimum number of programming among blocks included in each of the memory cells. 제15항에 있어서,The method of claim 15, 상기 최소 블록은,The minimum block is, 상기 각 메모리 셀에 구비되는 블록 전체에 대한 프로그래밍 횟수가 최소인 블럭인 것을 특징으로 하는 플래시 메모리장치의 데이터 기록방법.And a block having the minimum programming number for the entire block included in each of the memory cells.
KR1020080114167A 2008-11-17 2008-11-17 Data programming device, and data programming method Withdrawn KR20100055201A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020080114167A KR20100055201A (en) 2008-11-17 2008-11-17 Data programming device, and data programming method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020080114167A KR20100055201A (en) 2008-11-17 2008-11-17 Data programming device, and data programming method

Publications (1)

Publication Number Publication Date
KR20100055201A true KR20100055201A (en) 2010-05-26

Family

ID=42279718

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020080114167A Withdrawn KR20100055201A (en) 2008-11-17 2008-11-17 Data programming device, and data programming method

Country Status (1)

Country Link
KR (1) KR20100055201A (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140057082A (en) * 2012-11-02 2014-05-12 삼성전자주식회사 Non-volatile memory system and host communicating with the same
US8996786B2 (en) 2011-01-28 2015-03-31 SK Hynix Inc. Nonvolatile memory system and block management method
CN113253925A (en) * 2021-04-30 2021-08-13 新华三大数据技术有限公司 Method and device for optimizing read-write performance

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8996786B2 (en) 2011-01-28 2015-03-31 SK Hynix Inc. Nonvolatile memory system and block management method
KR20140057082A (en) * 2012-11-02 2014-05-12 삼성전자주식회사 Non-volatile memory system and host communicating with the same
CN113253925A (en) * 2021-04-30 2021-08-13 新华三大数据技术有限公司 Method and device for optimizing read-write performance

Similar Documents

Publication Publication Date Title
US9520992B2 (en) Logical-to-physical address translation for a removable data storage device
JP5728672B2 (en) Hybrid memory management
US8250286B2 (en) Block management method, and storage system and controller using the same
KR100823171B1 (en) Computer system with partitioned flash translation layer and partitioning method of flash translation layer
KR101086876B1 (en) Semiconductor storage system that manages spare area flexibly and its control method
CN110603531A (en) garbage collection
US8296504B2 (en) Data management method and flash memory storage system and controller using the same
US12298902B2 (en) Storage device including nonvolatile memory device and operating method of storage device
KR20090077538A (en) Semiconductor memory device and its wear management method
JP2011192260A (en) Semiconductor storage device
US20100042775A1 (en) Block management method for flash memory, and storage system and controller using the same
KR20100012938A (en) Solid state storage system with wear leveling and controlling method thereof
US8667217B1 (en) System for writing to memory
US20200333982A1 (en) Controller, operation method of the controller and memory system
KR20120081351A (en) Non-volitile memory device for performing ftl and method thereof
US8423707B2 (en) Data access method for flash memory and storage system and controller using the same
KR20100055201A (en) Data programming device, and data programming method
KR20100062191A (en) Flash device and flash device control mehtod
KR20160119607A (en) Data storage device and operating method thereof
CN111309642B (en) Memory, control method thereof and memory system
KR20110096829A (en) Semiconductor memory device and control method thereof
US12254183B2 (en) Storage device including non-volatile memory device and operating method of storage device
TW202013191A (en) Data storage device and control method for non-volatile memory
KR20090113624A (en) Solid state drive and its operation control method
KR20100068905A (en) Flash device and flash device control mehtod

Legal Events

Date Code Title Description
PA0109 Patent application

Patent event code: PA01091R01D

Comment text: Patent Application

Patent event date: 20081117

PG1501 Laying open of application
PC1203 Withdrawal of no request for examination
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid