[go: up one dir, main page]

KR101097438B1 - Solid State Storage System For Controlling of Wear-Leveling Flexibly and Method of Controlling the Same - Google Patents

Solid State Storage System For Controlling of Wear-Leveling Flexibly and Method of Controlling the Same Download PDF

Info

Publication number
KR101097438B1
KR101097438B1 KR1020090103578A KR20090103578A KR101097438B1 KR 101097438 B1 KR101097438 B1 KR 101097438B1 KR 1020090103578 A KR1020090103578 A KR 1020090103578A KR 20090103578 A KR20090103578 A KR 20090103578A KR 101097438 B1 KR101097438 B1 KR 101097438B1
Authority
KR
South Korea
Prior art keywords
target block
block
memory controller
deletions
memory
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.)
Expired - Fee Related
Application number
KR1020090103578A
Other languages
Korean (ko)
Other versions
KR20110046880A (en
Inventor
김의진
김경로
김영호
곽정순
Original Assignee
주식회사 하이닉스반도체
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 하이닉스반도체 filed Critical 주식회사 하이닉스반도체
Priority to KR1020090103578A priority Critical patent/KR101097438B1/en
Priority to US12/648,369 priority patent/US8335887B2/en
Publication of KR20110046880A publication Critical patent/KR20110046880A/en
Application granted granted Critical
Publication of KR101097438B1 publication Critical patent/KR101097438B1/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

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/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7211Wear leveling

Landscapes

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

Abstract

반도체 스토리지 시스템이 개시된다. 개시된 반도체 스토리지 시스템은, 맵핑 정보 및 삭제 횟수가 저장된 복수의 맵핑 페이지를 순차적으로 로딩하는 버퍼부 및 웨어된 블록의 교체 대상이 될 타겟 블록을 찾도록 상기 타겟 블록의 삭제 횟수 기준 및 상기 타겟 블록의 검색 대상인 상기 맵핑 페이지의 수를 설정하여 맵핑 페이지들을 샘플링하여 웨어 레벨링을 수행하는 메모리 컨트롤러를 포함한다.

Figure R1020090103578

플래시 메모리, 웨어 레벨링, 검색, 맵핑

A semiconductor storage system is disclosed. The disclosed semiconductor storage system includes a buffer unit for sequentially loading a plurality of mapping pages in which mapping information and deletion counts are stored, and a reference count of the target block and a target block to be replaced by a worn block. And a memory controller configured to set the number of the mapping pages to be searched, sample the mapping pages, and perform wear leveling.

Figure R1020090103578

Flash memory, wear leveling, search, mapping

Description

웨어 레벨링을 유동적으로 제어하는 반도체 스토리지 시스템 및 그 제어 방법{Solid State Storage System For Controlling of Wear-Leveling Flexibly and Method of Controlling the Same}Solid State Storage System For Controlling of Wear-Leveling Flexibly and Method of Controlling the Same}

본 발명은 반도체 스토리지 시스템 및 그 제어 방법에 관한 것으로서, 보다 구체적으로는 웨어 레벨링을 유동적으로 제어하는 반도체 스토리지 시스템 및 그 제어 방법에 관한 것이다.BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a semiconductor storage system and a control method thereof, and more particularly, to a semiconductor storage system and a method of controlling the same.

일반적으로 비휘발성 메모리를 많은 휴대용 정보 기기의 저장용 메모리로 사용하고 있다. 더 나아가, 최근에는 PC(Personal Computer)에서 HDD(Hard Disk Drive)를 대신하여 낸드(NAND) 플래시 메모리를 사용한 SSD(Solid State Drive)가 출시되고 있어 급속도로 HDD 시장을 잠식할 것으로 전망되고 있다.In general, nonvolatile memory is used as a storage memory for many portable information devices. Furthermore, in recent years, a solid state drive (SSD) using NAND flash memory has been released in place of a hard disk drive (HDD) in a personal computer (PC), which is expected to rapidly invade the HDD market.

통상적으로 이러한 SSD와 같은 반도체 스토리지 시스템에서 데이터 파일을 제어하는 것은, 데이터 파일을 식별할 수 있는 논리적 어드레스(logical address)가 지정하는 페이지에 실제 데이터를 라이트, 삭제 및 갱신하는 것으로 이루어진다. 보다 구체적으로, 논리적 어드레스와 데이터 저장 영역의 물리적 어드레스(physical address)를 FTL(Flash Translation Layer)변환으로 맵핑시킨다. 이후, 호스트(미도시)의 명령에 따라 논리적 어드레스를 참조하면, 논리적 어드레스와 맵핑된 물리적 어드레스가 지정하는 해당 위치에 데이터를 라이트, 삭제 및 리드할 수 있다. 물리적 어드레스란, 메모리 영역의 페이지, 또는 서브 블록의 위치 정보이다. Typically, controlling a data file in such a semiconductor storage system, such as an SSD, consists of writing, deleting, and updating the actual data in a page designated by a logical address that can identify the data file. More specifically, the logical address and the physical address of the data storage area are mapped to FTL (Flash Translation Layer) translation. Subsequently, if a logical address is referenced according to a command of a host (not shown), data may be written, deleted, and read at a corresponding location designated by a physical address mapped to the logical address. The physical address is page information of a memory area or position information of a sub block.

낸드 플래시 메모리 셀의 데이터를 갱신시, 비휘발성 메모리이므로 해당 셀의 데이터를 일단 소거하고 다시 새로운 데이터를 프로그램해야 한다. 하지만, 데이터 프로그램시에 모든 메모리 셀에 데이터를 고르게 프로그램하는 것이 아니라 특정 셀 영역에 보다 집중적으로 프로그램이 빈번히 이루어질 수 있다. 다시 말하면, 데이터에 따라 특정 셀 영역, 또는 일부의 셀들은 빈번한 프로그램 및 소거 과정으로 인해 셀의 수명이 다해 낡아 없어질(wear out) 수 있다. 그러나, 아직 낡지 않은 생생한(fresh) 상태의 셀들이 존재한다 하여도, 반도체 스토리지 시스템 전체의 성능은 일부의 ‘낡은’셀에 의해 제한될 수 있다.When updating data of a NAND flash memory cell, the data of the corresponding cell must be erased once and the new data must be programmed again since it is a nonvolatile memory. However, instead of programming the data evenly in all the memory cells during data programming, the program may be frequently concentrated in a specific cell area. In other words, depending on the data, a certain cell area or some cells may wear out due to the life of the cell due to frequent program and erase processes. However, even if there are cells that are not yet fresh, the performance of the semiconductor storage system as a whole can be limited by some 'old' cells.

이로써, 각각의 메모리 셀이 낡아 없어지기(wear out) 전에, 각 메모리 구역(zone), 또는 플레인(plane)내에서 저장 셀의 물리적 위치를 변경해주어 셀의 균등한 사용을 제어하도록 웨어 레벨링(wear leveling)을 수행한다.This allows wear leveling to control the uniform use of cells by changing the physical location of the storage cells within each memory zone or plane before each memory cell wears out. leveling).

이러한 웨어 레벨링을 하기 위해서는 모든 블록의 삭제 횟수 정보를 낸드 플래시 메모리 영역에 저장하고 있다가, 웨어 레벨링 수행이 필요한 때에 이들 정보를 램(RAM) 버퍼에 로딩하여 교체 가능한 블록을 검색(searching)하여 물리적 위치를 변경해주었다. In order to perform the wear leveling, information about the number of deletions of all the blocks is stored in the NAND flash memory area, and when the wear leveling is required, the information is loaded into the RAM buffer to search for replaceable blocks and physically I changed the location.

그러나, 최근의 대용량의 SSD 추세로 메모리 영역의 블록수가 증가함에 따라 이들 전체 블록의 삭제 횟수를 로딩해야 하는 램 버퍼의 메모리 증가도 불가피해졌다. 그러나, 비용 및 칩 면적에 의해 램 버퍼의 메모리 증가는 제한이 될 수 밖에 없다.However, with the recent trend of large-capacity SSDs, as the number of blocks in the memory area increases, the memory of the RAM buffer, which has to load the erase count of all of these blocks, becomes inevitable. However, memory growth of the RAM buffer is limited by cost and chip area.

본 발명의 기술적 과제는 웨어 레벨링을 제어하는 반도체 스토리지 시스템을 제공하는 것이다.An object of the present invention is to provide a semiconductor storage system for controlling wear leveling.

본 발명의 다른 기술적 과제는 웨어 레벨링을 제어하는 반도체 스토리지 시스템의 제어 방법을 제공하는 것이다.Another object of the present invention is to provide a control method of a semiconductor storage system for controlling wear leveling.

본 발명의 기술적 과제를 달성하기 위하여, 본 발명의 일 실시예에 따른 반도체 스토리지 시스템은, 맵핑 정보 및 삭제 횟수가 저장된 복수의 맵핑 페이지를 순차적으로 로딩하는 버퍼부 및 웨어된 블록의 교체 대상이 될 타겟 블록을 찾도록 상기 타겟 블록의 삭제 횟수 기준 및 상기 타겟 블록의 검색 대상인 상기 맵핑 페이지의 수를 설정하여 맵핑 페이지들을 샘플링하여 웨어 레벨링을 수행하는 메모리 컨트롤러를 포함한다.In order to achieve the technical object of the present invention, the semiconductor storage system according to an embodiment of the present invention, the buffer unit for sequentially loading a plurality of mapping pages in which the mapping information and the number of deletion is stored and the replacement of the worn block And a memory controller configured to perform wear leveling by sampling mapping pages by setting a reference number of deletion of the target block and a number of the mapping pages to be searched for the target block to find a target block.

본 발명의 기술적 과제를 달성하기 위하여, 본 발명의 다른 실시예에 따른 반도체 스토리지 시스템은, 웨어 레벨링 시, 상기 메모리 블록 중 웨어된 블록의 교체 대상이 될 블록에 대한 삭제 횟수의 기준 및 상기 웨어된 블록의 정보를 이용하여 상기 교체 대상이 될 블록에 대한 검색 대상 수의 기준을 설정함으로써, 타겟 블록으로서의 상기 교체 대상이 될 최초의 블록을 찾아서 상기 웨어된 블록과 교체시키는 메모리 컨트롤러를 포함한다.In order to achieve the technical object of the present invention, the semiconductor storage system according to another embodiment of the present invention, when the wear leveling, the reference of the number of times of deletion of the block to be replaced of the worn block of the memory block and the And a memory controller configured to find a first block to be replaced as a target block and replace the worn block by setting a criterion of the number of search targets for the block to be replaced using information of the block.

본 발명의 다른 기술적 과제를 달성하기 위하여, 반도체 스토리지 시스템의 제어 방법은, 웨어 레벨링 시, 웨어된 블록에 대응되어 교체될 타겟 블록의 삭제 횟수를 결정하는 제 1 기준 설정하는 단계, 상기 웨어된 블록의 삭제 횟수에 따라 상기 타겟 블록 검색의 제 2 기준 설정하는 단계, 상기 제 1 및 제 2 기준에 의해 상기 타겟 블록을 찾는 단계 및 상기 타겟 블록을 찾지 못했다면, 상기 제 1 기준을 가변시켜 갱신함으로써, 차기(次期)의 상기 타겟 블록 검색 조건에 영향을 주는 단계를 포함한다.In accordance with another aspect of the present invention, a method of controlling a semiconductor storage system may include: setting a first reference to determine a number of deletions of a target block to be replaced corresponding to a worn block during wear leveling; Setting the second criterion of the target block search according to the number of times of deleting, searching for the target block by the first and second criteria, and if the target block is not found, varying and updating the first criterion. And influencing a next target block search condition.

본 발명의 일 실시예에 따르면, 메모리 영역의 사이즈가 증가되어도 맵핑 정보 및 삭제 횟수에 대한 임시 저장을 위한 버퍼부의 크기를 추가하지 않아도 되고, 오히려 종래보다 작은 사이즈로 유지하는 것이 가능하다. 웨어된 블록에 대해서만 맵핑 정보와 삭제 횟수를 로딩하고, 삭제 횟수의 기준에 대한 조건 및 검색 횟수의 기준에 대한 조건을 각각 설정함으로써 웨어 레벨링의 수행 시간을 단축시킬 수 있다. 따라서, 버퍼부의 크기를 감소시키면서도 웨어 레벨링의 수행 시간을 단축시키므로, 반도체 스토리지 시스템의 동작 성능 및 비용 효율을 향상시킬 수 있다.According to one embodiment of the present invention, even if the size of the memory area is increased, it is not necessary to add the size of the buffer unit for temporary storage of the mapping information and the number of deletions, and rather, it is possible to keep the size smaller than the conventional one. The execution time of wear leveling can be shortened by loading mapping information and the number of times of deletion only for the worn block, and setting conditions for the number of times of deletion and conditions for the number of times of searching. Therefore, while reducing the size of the buffer portion and shortening the execution time of the wear leveling, it is possible to improve the operating performance and cost efficiency of the semiconductor storage system.

이하에서는 본 발명의 일 실시예에 따른 반도체 스토리지 시스템에 대하여 첨부된 도면을 참조하여 설명하도록 한다.Hereinafter, a semiconductor storage system according to an exemplary embodiment of the present invention will be described with reference to the accompanying drawings.

먼저, 도 1 및 도 2를 참조하여, 본 발명의 실시예에 따른 반도체 스토리지 시스템에 대해서 설명하기로 한다.First, a semiconductor storage system according to an exemplary embodiment of the present invention will be described with reference to FIGS. 1 and 2.

도 1은 본 발명의 일 실시예에 따른 반도체 스토리지 시스템(100)의 블록도 이다. 도 2는 논리적 물리적 어드레스의 맵핑 테이블 및 버퍼부(120)의 관계를 개념적으로 도시한 블록도이다. 여기서, 반도체 스토리지 시스템(100)은 낸드 플래시 메모리를 이용한 스토리지 시스템으로 예시한다.1 is a block diagram of a semiconductor storage system 100 according to an embodiment of the present invention. 2 is a block diagram conceptually illustrating a relationship between a mapping table of a logical physical address and a buffer unit 120. Here, the semiconductor storage system 100 is exemplified as a storage system using NAND flash memory.

도 1및 도 2를 참조하면, 반도체 스토리지 시스템(100)은 호스트 인터페이스(110), 버퍼부(120), MCU(130), 메모리 컨트롤러(140) 및 메모리 영역(150)을 포함한다.1 and 2, the semiconductor storage system 100 includes a host interface 110, a buffer unit 120, an MCU 130, a memory controller 140, and a memory region 150.

우선, 호스트 인터페이스(110)는 버퍼부(120)와 연결된다. 호스트 인터페이스(110)는 외부 호스트 (미도시)와 버퍼부(120)간에 제어 명령, 어드레스 신호 및 데이터 신호를 송수신한다. 호스트 인터페이스(110)와 외부 호스트 (미도시)간의 인터페이스 방식은 직렬 ATA(Serial Advanced Technology Attachment;SATA), 병렬 ATA(Parallel Advanced Technology attachment;PATA) 및 SCSI, Express Card, PCI-Express 방식 중 어느 하나일 수 있으며 제한되지 않는다.First, the host interface 110 is connected to the buffer unit 120. The host interface 110 transmits and receives a control command, an address signal, and a data signal between an external host (not shown) and the buffer unit 120. The interface method between the host interface 110 and an external host (not shown) is any one of serial Serial Technology Attachment (SATA), parallel Parallel Advanced Technology attachment (PATA), and SCSI, Express Card, and PCI-Express methods. Can be and is not limited.

버퍼부(120)는 호스트 인터페이스(110)로부터의 출력 신호들을 버퍼링하거나, 논리적 어드레스 및 물리적 어드레스간의 맵핑 정보 및 메모리 영역의 블록 할당 정보, 블록의 삭제 횟수 및 외부로부터 수신된 데이터를 임시 저장한다. 버퍼부(120)는 SRAM(Static Random Access Memory) 또는 DRAM(Dynamic Random Access Memory)을 이용한 버퍼일 수 있다. 도 2에 도시된 바와 같이, (a) 섹터 측면(view)에서 보면, 논리적인 블록의1000번째 섹터는 메모리 영역(150)의 NAND 측면에서 보면, 실질적인 물리적 블록의 200번째 블록의 30번째 페이지를 나타내고, 버퍼부(120)에는 실질적으로 억세스되는 블록(200번째 블록)의 맵핑 정보 및 삭제 횟수 를 저장하게 된다. 이는 어디까지나 예시일 뿐, 이에 제한되는 것은 아니다. 블록이 삭제될 때마다, 이러한 웨어된 블록(worn block) 또는 마모된 블록의 맵핑 정보 및 삭제 횟수가 로딩된다는 것을 개념적으로 설명하기 위함이다. The buffer unit 120 buffers output signals from the host interface 110 or temporarily stores mapping information between logical addresses and physical addresses, block allocation information of a memory area, the number of times of block deletion, and data received from the outside. The buffer unit 120 may be a buffer using static random access memory (SRAM) or dynamic random access memory (DRAM). As shown in FIG. 2, (a) from the sector view, the 1000th sector of the logical block is viewed from the NAND side of the memory area 150, showing the 30th page of the 200th block of the actual physical block. The buffer unit 120 stores the mapping information and the number of times of deletion of the block 200 (block 200) that is substantially accessed. This is only an example, but is not limited thereto. It is intended to conceptually illustrate that whenever a block is deleted, mapping information and the number of times of deletion of the worn block or worn block are loaded.

특히, 본 발명의 일 실시예에 따른 버퍼부(120)는 종래의 모든 블록의 삭제 횟수를 로딩하는 것이 아니라, 이와 같이 웨어된 블록만 로딩하므로 버퍼부(120)의 사이즈가 작아도 되므로 비용 및 면적 효율을 증대시킨다. In particular, since the buffer unit 120 according to an embodiment of the present invention does not load the number of deletions of all the conventional blocks, and only loads the weared blocks as described above, the size of the buffer unit 120 may be small. Increase the efficiency

MCU(Micro Control Unit; 130)는 호스트 인터페이스(110)간에 제어 명령, 어드레스 신호 및 데이터 신호등을 송수신하거나, 이러한 신호들에 의해 메모리 컨트롤러(140)를 제어하기도 한다.The microcontrol unit 130 may transmit and receive a control command, an address signal, a data signal, and the like between the host interface 110, or may control the memory controller 140 by such signals.

메모리 컨트롤러(140)는 메모리 영역(150)의 복수개의 낸드 플래시 메모리 소자 중 소정 낸드 플래시 메모리 소자(ND)를 선택하고, 라이트, 삭제 또는 리드 명령을 제공한다. 특히, 본 발명의 일 실시 예에 따른 메모리 컨트롤러(140)는 웨어 레벨링을 유동적으로 제어할 수 있다. 즉, 메모리 컨트롤러(140)는 두 가지 기준을 이용해서 웨어 레벨링시 필요한 타겟 블록의 검색 조건 및 검색 횟수 등을 제어하여, 효율적으로 메모리 수명의 균등 사용을 관리할 수 있다.The memory controller 140 selects a predetermined NAND flash memory device ND among the plurality of NAND flash memory devices of the memory area 150, and provides a write, delete, or read command. In particular, the memory controller 140 according to an embodiment of the present disclosure may flexibly control wear leveling. That is, the memory controller 140 may control the search condition of the target block required for wear leveling and the number of searches using two criteria to efficiently manage the equal use of the memory life.

종래에는 모든 블록에 대한 삭제 횟수 정보를 메모리 영역(150)의 소정의 영역에 큰 단위(lump)로 저장하였다. 그리하여, 웨어 레벨링 시점이 되면, 모든 블록의 삭제 횟수 정보를 버퍼부(120)에 로딩하여, 삭제 횟수가 높은 블록을 대신할 블록으로서 삭제 횟수가 최저인 블록을 선택하여 물리적 위치를 변경을 시도했다. 이 때, 버퍼부(120)는 모든 블록의 삭제 횟수를 로딩해야 하므로 메모리 사이즈가 커 야 했다. Conventionally, the erase count information of all the blocks is stored in a lump in a predetermined area of the memory area 150. Thus, when the wear leveling point is reached, the erase count information of all the blocks is loaded into the buffer unit 120, and the block having the lowest erase count is selected as a block to replace the block having the high erase count, and the physical position is changed. . At this time, since the buffer unit 120 should load the erase count of all blocks, the memory size had to be large.

그러나, 본 발명의 일 실시예에 따르면, 웨어 레벨링 시점에 메모리 컨트롤러(140)는 모든 블록의 삭제 횟수 정보를 버퍼부(120)로 로딩하는 것이 아니라, 검색 조건에 맞도록 설정된 수개 내의 블록들을 샘플링(sampling)하여 웨어 레벨링을 수행한다. 또한, 본 발명의 일 실시예에 따른 메모리 컨트롤러(140)는 블록의 삭제가 행해질 때마다 삭제 횟수를 가산한다. 그리하여, 블록의 삭제 횟수가 소정 설정치보다 크면 웨어 레벨링을 수행하게 되는데, 이 때 누적 실패 횟수를 블록 검색의 조건 기준으로 이용하고, 웨어된 블록의 삭제 횟수 수치와 평균 삭제 횟수와의 차이(difference)를 검색 횟수의 기준으로 이용하여, 검색 시간 및 검색 조건이 유동적으로 가변되도록 제어할 수 있다. 다시 말하면, 본 발명의 일 실시예에 따르면, 웨어 레벨링의 정보를 최소한으로 이용하면서도, 검색 기준을 이중으로 설정하여 검색 시간을 단축시키고 교체 대상 블록의 검색 확률을 증가시킬 수 있다. 이에 대한 상세한 설명은 후술하기로 한다.However, according to an exemplary embodiment of the present invention, the memory controller 140 does not load the erase count information of all blocks into the buffer unit 120 at the time of the wear leveling, but samples several blocks set to match the search condition. (sampling) to perform wear leveling. In addition, the memory controller 140 according to an embodiment of the present invention adds the number of times of deletion each time a block is deleted. Thus, if the number of blocks deleted is greater than a predetermined value, wear leveling is performed. At this time, the cumulative number of failures is used as a criterion for the block search, and the difference between the number of deleted blocks and the average number of deleted blocks is different. By using as a criterion of the number of searches, the search time and the search conditions can be controlled to be flexible. In other words, according to an embodiment of the present invention, while using minimal information on wear leveling, it is possible to shorten the search time and increase the search probability of the replacement target block by setting the search criteria to be double. A detailed description thereof will be given later.

메모리 영역(150)은 메모리 컨트롤러(140)에 의해 제어되어 데이터의 라이트, 삭제 및 리드 동작이 수행된다. 여기서, 메모리 영역(150)은 낸드(NAND) 플래시 메모리일 수 있다. 본 발명의 일 실시 예에서는 낸드(NAND) 플래시 메모리의 셀은 SLC(Single Level Cell) 또는 MLC(Multi Level Cell) 일 수 있다. 이러한 메모리 영역(150)은 다수의 페이지를 포함하는 다수의 블록으로 구성된 칩이 복수개 구비될 수 있다. 한편, 메모리 영역(150)내에는 전술한 맵핑 정보 및 삭제 횟수 정보를 저장하고 있다. 이를 여기서는 ‘맵핑 페이지’라고 별도로 정의하여 지칭하기 로 한다. 즉, 맵핑 페이지의 물리적인 정의는 낸드 플래시 메모리의 처리 단위 또는 저장 단위가 되는 페이지를 의미하며, 이러한 맵핑 페이지는 하나의 블록 정보에 대한 논리적 물리적 어드레스간의 맵핑 정보와 함께 삭제 횟수를 함께 저장하는 것으로 정의한다. 의미상 혼돈을 피하기 위하여 맵핑 페이지 대신 맵핑 저장 영역이라고 명명해도 무방하다.The memory area 150 is controlled by the memory controller 140 to perform write, delete, and read operations of data. The memory region 150 may be a NAND flash memory. According to an embodiment of the present invention, a cell of a NAND flash memory may be a single level cell (SLC) or a multi level cell (MLC). The memory area 150 may be provided with a plurality of chips including a plurality of blocks including a plurality of pages. On the other hand, the above-mentioned mapping information and the number of deletion information are stored in the memory area 150. This will be referred to separately as 'mapping page' here. That is, the physical definition of the mapping page refers to a page which is a processing unit or storage unit of the NAND flash memory. The mapping page stores the number of deletions together with mapping information between logical and physical addresses of one block information. define. To avoid confusing the semantics, you can name the mapping storage area instead of the mapping page.

도 3은 도 1에 따른 반도체 스토리지 시스템의 제어 방법을 나타낸 순서도이다. 여기서는 삭제시마다 웨어 레벨링의 여부를 결정하는 것으로 예시하기로 하나, 이는 어디까지나 예시일 뿐, 매번의 삭제시마다 웨어 레벨링의 수행 여부를 판단하지 않을 수도 있음은 물론이다.3 is a flowchart illustrating a control method of the semiconductor storage system according to FIG. 1. Herein, it will be exemplified as determining whether to wear leveling at every deletion. This is merely an example, and of course, it may not be determined whether to perform wear leveling at each deletion.

도 1 내지 도 3을 참조하면, 우선, 임의의 블록의 데이터를 삭제한다.1 to 3, first, data of an arbitrary block is deleted.

블록의 데이터를 삭제할 때마다, 삭제 횟수를 가산하여 체크한다(S10).Each time the block data is deleted, the number of deletions is added and checked (S10).

체크된 삭제 횟수가 소정치보다 큰지(bigger) 여부를 판단한다(S20). It is determined whether the checked number of deletions is greater than a predetermined value (Sger).

여기서, 소정치는 다음과 같은 식에 의해 산출될 수 있다.Here, the predetermined value may be calculated by the following equation.

소정치 = (삭제 횟수의 평균값 + 오차범위)Predetermined value = (mean value of erase count + error range)

예를 들어, 삭제 횟수의 평균값은 100이라 하고, 오차 범위를 40이라 하면, 소정치는 140이 될 것이다.For example, if the average value of the number of deletions is 100 and the error range is 40, the predetermined value will be 140.

상기의 예시된 수는 어디까지나 이해를 돕기 위한 수치적 예시일 뿐, 이에 한정되는 것은 아니다.The above illustrated numbers are only numerical examples to aid understanding, but are not limited thereto.

그리하여, 웨어된 블록의 합산된 삭제 횟수가 예컨대 140보다 크다면(Y), 메모리 컨트롤러(140)가 웨어 레벨링 수행 시작을 제어한다. 일단, 누적 실패 횟수(accumulated fail count)를 이용해 타겟 블록 검색의 제 1 기준을 설정한다(S30).Thus, if the total number of erased erased blocks is greater than 140 (Y), for example, the memory controller 140 controls the start of performing wear leveling. First, the first criterion of the target block search is set using an accumulated fail count (S30).

누적 실패 횟수란, 웨어된 블록의 교체 대상이 될 타겟 블록(target block)을 찾는데 성공 여부를 나타내는 일종의 플래그 신호이다.The cumulative number of failures is a kind of flag signal indicating success in finding a target block to be replaced with a worn block.

누적 실패 횟수의 초기치는 0으로 설정하고, 이하의 일련 과정을 통해 교체 대상의 블록, 즉 타겟 블록(target block)을 찾지 못하면 누적 실패 횟수가 증가될 것이다. 이는 누적 실패 횟수가 증가할 때마다, 타겟 블록의 삭제 횟수 기준을 완화시키기 위함이다. 다시 말해, 누적 실패 횟수가 증가하면, 교체 대상이 되는 블록의 검색 기준을 보다 완화시키도록 한다. 구체적으로, 초기에는 삭제 횟수가 낮은 블록의 기준을 삭제 횟수의 평균값에서 오차 범위를 감한 값으로 설정한다. 예컨대, 삭제 횟수의 평균값은 100이라 하고, 오차 범위를 40이라 하면, 최초에 설정된 삭제 횟수가 낮은 블록의 기준은 60일 것이다. 하지만, 검색에 실패했다면, 삭제 횟수가 낮은 블록의 기준인 60은 높은 기준이었다고 판단하여, 이보다는 높은 삭제 횟수를 갖는 블록들도 교체 대상의 블록으로 설정하도록 한다. 그리하여, 누적 실패 횟수가 증가할 때마다 예컨대 삭제 횟수 기준을 예컨대 5씩 증가시켜, 삭제 횟수가 낮은 블록의 기준을 45, 50, 55...으로 그 삭제 횟수의 기준을 점차 완화시켜 줄 수 있다. 하지만, 이러한 누적 실패 횟수가 무한정 누적되는 것을 방지 하고, 최소한의 평균 삭제 횟수 이하를 갖는 블록이 타겟 블록으로 선택되도록 누적 실패 허용 횟수도 함께 설정하는 것이 바람직하다. 결론적으로, 여기서 타겟 블록의 검색 제 1 조건이란 타겟 블록의 선택 기준이 되는 교체 대상 블록들의 삭제 횟수이다.The initial value of the cumulative failure count is set to 0, and if the block to be replaced, that is, the target block, is not found through the following sequence, the cumulative failure count will be increased. This is to alleviate the criterion for erasing the target block whenever the cumulative failure count increases. In other words, as the cumulative number of failures increases, the search criteria of blocks to be replaced are further relaxed. Specifically, initially, the reference of the block having the low number of deletions is set to a value obtained by subtracting the error range from the average value of the number of deletions. For example, if the average value of the number of deletions is 100 and the error range is 40, the reference for the block with the lowest number of deletions initially set will be 60. However, if the search fails, it is determined that 60, which is a criterion of the block having a low number of deletions, is a high criterion, and thus, blocks having a higher number of deletions are also set as blocks to be replaced. Thus, whenever the cumulative number of failures increases, for example, the number of deletion criteria can be increased by, for example, 5, so that the criteria for the number of deletion blocks can be gradually relaxed to 45, 50, 55 ... . However, it is desirable to prevent the cumulative failure count from accumulating indefinitely and to set the cumulative failure allowance count so that a block having a minimum average erase count or less is selected as the target block. In conclusion, the search first condition of the target block is the number of deletions of the replacement target blocks that are the selection criteria of the target block.

이에 대해서는 이후 나오는 도 4를 참조하여 자세히 설명하기로 한다.This will be described in detail later with reference to FIG. 4.

한편, 타겟 블록의 검색 횟수를 타겟 블록 검색의 제 2 기준으로 설정한다(S40).In operation S40, the number of times of searching for the target block is set as the second criterion for searching for the target block.

타겟 블록의 검색 횟수에 대한 조건이라 함은, 메모리 영역의 저장된 맵핑 페이지에 대한 억세스 횟수를 의미한다. 1회 억세스시마다, 메모리 영역의 1개 맵핑 페이지에 저장된 블록을 검색하도록 할 수 있다. 따라서, 1회내에 타겟 블록을 찾지 못한다면, 다른 맵핑 페이지를 억세스하여 타겟 블록이 될 수 있는지 검색한다. 이에 따라, 억세스 횟수가 증가할 때마다 타겟 블록의 검색 대상이 증가된다. 이러한 억세스 횟수는 임의로 설정하거나 획일적으로 설정하는 것이 아니라, 웨어된 블록의 삭제 횟수에 따라 유동적으로 가변시키도록 한다. 즉, 웨어된 블록의 삭제 횟수가, 예컨대 평균 삭제 횟수와 오차 범위를 합한 값보다 높은 정도에 따라, 다시 말해, 웨어된 블록의 교체 시점이 시급한 블록의 경우일수록, 맵핑 페이지의 억세스 횟수를 증가시키도록 유동적으로 제어한다. 이를 위해서는 웨어된 블록의 삭제 횟수가 평균 삭제 횟수와 차이가 얼마나 나는지 아는 것이 중요하다. 또한, 이러한 억세스 횟수는 적용되는 시스템의 중요도에 따라 웨어 레벨링의 수행 감도(sensibility)를 다르게 적용하는 것도 가능하다. The condition for the number of searches of the target block means the number of times of access to the stored mapping page of the memory area. In each access, a block stored in one mapping page of the memory area may be searched. Therefore, if the target block is not found within one time, another mapping page is accessed to search for possible target blocks. Accordingly, the search target of the target block increases each time the number of accesses increases. The number of times of access is not set arbitrarily or uniformly, but is changed flexibly according to the number of erased blocks. That is, according to the degree to which the number of erased blocks is higher than, for example, the sum of the average number of erases and the error range, that is, in the case of an urgent block replacing the worn block, the number of accesses of the mapping page is increased. Fluidly controlled. To do this, it is important to know how the number of erased blocks differs from the average number of erased blocks. In addition, the number of accesses may be differently applied to the performance sensitivity of the wear leveling according to the importance of the system to be applied.

당업자라면, 적용되는 반도체 스토리지 시스템의 구성에 따라, 또는 각각의 적용되는 용도에 따라 웨어 레벨링의 수행 감도가 다를 것이라는 것을 이해하기는 어렵지 않을 것이다. 다만, 이후의 도 5에서 예시적으로 감도와 블록의 삭제 횟수를 도시하고, 그에 대한 자세한 설명은 후술하기로 한다.It will not be difficult for those skilled in the art to understand that the performance sensitivity of the wear leveling will vary depending on the configuration of the semiconductor storage system to which it is applied, or depending on the respective application. However, FIG. 5 exemplarily shows the sensitivity and the number of deletions of blocks, and a detailed description thereof will be described later.

이와 같이, 억세스 횟수가 설정된 제 2 검색 조건을 만족하는지 판단한다(S50).In this way, it is determined whether the number of accesses satisfies the set second search condition (S50).

즉, 산출식에 따른 억세스 횟수의 소정치에 도달하지 않았으면(N), 타겟 블록을 찾을 때까지 반복 루프를 수행한다(S60). 만약, 억세스 횟수가 소정치에 도달하였다면(Y), 억세스 횟수 임계치내에 타겟 블록을 찾은 상황인지 판단한다(S70).That is, if the predetermined value of the number of accesses according to the calculation formula is not reached (N), the loop is performed until the target block is found (S60). If the number of accesses reaches a predetermined value (Y), it is determined whether the target block is found within the access count threshold (S70).

또는, 반복 루프를 수행하는 도중에 설정된 삭제 횟수 이하를 만족하는 타겟 블록을 찾았다면(Y), 누적 실패 횟수를 감소시켜 갱신한다(S80). 이는 검색이 설정된 제 1 및 제 2 조건을 만족한 상황이므로, 누적된 실패 횟수를 소정 감소시켜 누적 실패 횟수로부터 누적 실패 허용치와의 마진을 확보하도록 하는 것이다.Alternatively, if a target block that satisfies the set number of erase times or less is found during the iteration loop (Y), the cumulative failure count is decreased and updated (S80). Since the search satisfies the set first and second conditions, the accumulated number of failures is reduced by a predetermined amount so as to secure a margin from the accumulated failure number to the accumulated failure allowance.

억세스 횟수 임계치내에 타겟 블록을 찾지 못한 상황이라면(N), 검색 조건을 보다 완화시켜야 하므로 누적 실패 횟수를 증가시켜 갱신한다(S90). 즉 이러한 상황은, 현재 설정된 제 1 및 제 2 검색 조건에도 불구하고 교체 대상이 될 만한 타겟 블록을 찾지 못한 경우이다. 이러한 경우에는 다음번의 검색 조건에 영향을 주도록, 누적 실패 횟수를 증가시켜 갱신시킨 후, 차기(次期)의 블록 삭제시 웨어 레벨링의 검색 성공률을 높이도록 한다.If the target block is not found within the access count threshold value (N), since the search condition needs to be further relaxed, the cumulative failure count is increased and updated (S90). That is, this situation is a case where a target block to be replaced is not found despite the currently set first and second search conditions. In such a case, the cumulative number of failures is updated to update the next search condition, and then the success rate of wear leveling is increased when the next block is deleted.

이와 같이, 본 발명의 일 실시예에 따르면, 블록들의 각각 분산된 삭제 횟수 정보들을 효율적으로 검색하기 위해, 삭제 횟수의 기준에 대한 조건 및 검색 횟수의 기준에 대한 조건을 각각 설정하는 것을 알 수 있다. 종래와는 달리, 웨어된 블록의 교체 시기가 오면, 최저값의 삭제 횟수를 갖는 블록을 찾는 대신, 최초로 찾은 교체 대상이 될 만한 블록을 희생시켜 웨어된 블록의 웨어 레벨링을 수행하도록 하는 것이다. 여기서 최초로 찾은 블록이라는 것은, 웨어 레벨링 수행시 소정의 검색 횟수내에 찾아 낸(또는 다음번의 웨어 레벨링 수행시 찾아 낸) 블록이 교체 대상이 될 삭제 횟수의 조건을 최초로 만족시켰다는 의미를 내포한다. 이로써, 전체 블록을 대상으로 웨어 레벨링을 수행하는 것보다는 웨어 레벨링의 수행 시간을 단축시킬 수 있다. As described above, according to an embodiment of the present invention, in order to efficiently retrieve each of the number of deletion times of the distributed blocks, it can be seen that the conditions for the reference of the number of deletions and the conditions for the reference of the number of searches are respectively set. . Unlike in the related art, when a replacement time of a worn block comes, instead of looking for a block having the lowest number of deletions, wear leveling of the worn block is performed at the expense of the first block to be replaced. The first block found here implies that the block found within a predetermined number of times when performing the wear leveling (or the next time the wear leveling is performed) satisfies the condition of the number of deletions to be replaced. Thus, it is possible to shorten the execution time of the wear leveling rather than performing the wear leveling on the entire block.

도 4는 본 발명의 일 실시예에 따른 타겟 블록의 삭제 횟수 및 누적 실패 횟수의 상관 관계를 나타낸 그래프이다.4 is a graph showing a correlation between the number of deletions of a target block and the number of cumulative failures according to an embodiment of the present invention.

도 4를 참조하면, X 축은 누적 실패 횟수를 나타내고, Y축은 교체 대상이 될 타겟 블록의 삭제 횟수를 나타내고 있다.Referring to FIG. 4, the X axis represents the cumulative failure count, and the Y axis represents the deletion count of the target block to be replaced.

여기서, 평균 삭제 횟수를 100, 오차 범위를 40 및 누적 실패 허용 횟수의 임계값은 5이하로 설정하는 것으로 예시한다.Here, the average erase count is set to 100, the error range is set to 40, and the threshold of the cumulative failure allowance is set to 5 or less.

이러한 그래프의 ⓐ는 수학식 2에 의해 구현될 수 있다.Ⓐ of this graph can be implemented by equation (2).

타겟 블록의 검색 제 1 조건= (평균 삭제 횟수- 오차 범위)+ 오차 범위/(최대 누적 실패 횟수 허용치- 누적 실패 횟수)Search condition of target block 1 = (average number of deletions-error range) + error range / (maximum cumulative number of failures allowed-cumulative failures)

하지만, 이와 같은 수식은, 누적 실패 허용 횟수가 임계치인 5 이하일 때에 적용할 수 있다. 만약, 누적 실패 허용 횟수가 임계값을 넘는다면, 도 4에 도시된 ⓑ와 같이 기울기가 완만한 직선으로 구현되는 타겟 블록의 제 1 조건을 설정할 수 있다. However, such a formula can be applied when the cumulative failure allowance number is 5 or less, which is a threshold value. If the cumulative failure allowance number exceeds a threshold value, a first condition of a target block implemented as a straight line with a gentle slope may be set as shown in ⓑ in FIG. 4.

타겟 블록의 제 1 조건= (평균 삭제 횟수 + 임계 오차의 상한치) - 누적 실패 횟수First condition of target block = (average number of deletions + upper limit of threshold error)-cumulative failures

즉, 도 4가 나타내고자 하는 것은, 누적 실패 허용치의 임계치인 5이하의 구간에서 보다 적극적으로 타겟 블록을 검색하는 것이 의미가 있고, 누적 실패 허용치가 임계치를 초과시에는, 타겟 블록의 삭제 횟수가 삭제 평균 횟수와 임계치를 합한 값을 이미 초과하게 되는 상황이 초래되므로 타겟 블록의 검색 조건을 낮추는 것에 의미가 크지 않음을 암시하고 있다.That is, FIG. 4 means that the target block is actively searched for in the interval of 5 or less, which is the threshold of the cumulative failure allowance. When the cumulative failure allowance exceeds the threshold, the number of deletions of the target block is deleted. Since a situation in which the sum of the average number of times and the threshold is already exceeded is introduced, it implies that the meaning of lowering the search condition of the target block is not significant.

따라서, 본 발명의 일 실시예에서는, 누적 실패 허용치의 임계치를 5로 설정하고, 그 임계치를 초과하는 상황을 허용하지 않도록 관리한다.Therefore, in one embodiment of the present invention, the threshold of the cumulative failure tolerance is set to 5, and management is performed so as not to allow a situation exceeding the threshold.

도 5는 본 발명의 일 실시예에 따른 감도 및 블록의 삭제 횟수의 상관 관계를 나타낸 표이다.5 is a table showing a correlation between the sensitivity and the number of deletion of blocks according to an embodiment of the present invention.

도 5를 참조하면, 웨어된 블록의 삭제 횟수를 기준으로 보면, 삭제 횟수가 증가될수록 감도에 따른 소정의 검색 수치가 커지도록 설정된 것을 알 수 있다. 또한, 감도를 기준으로 보면, 감도의 세기가 커질수록, 웨어된 블록의 동일 삭제 횟 수에 대한 소정의 검색 수치가 커지는 것을 알 수 있다.Referring to FIG. 5, it can be seen that, based on the number of deletions of the worn block, as the number of deletions increases, a predetermined search value according to the sensitivity is increased. In addition, in terms of the sensitivity, it can be seen that as the intensity of the sensitivity increases, a predetermined search value for the same number of times the erased block is increased.

타겟 블록의 검색 제 2 조건= (기본 맵핑 페이지 억세스 회수-1)+(웨어된 블록의 삭제 횟수-(평균 삭제 횟수 + 임계값))*감도Search for target block 2nd condition = (Basic Mapping Page Access Count -1) + (Number of Deleted Blocks-(Average Deletes + Threshold)) * Sensitivity

여기서, 기본 맵핑 페이지 억세스 횟수는 7로 설정하고, 평균 삭제 횟수는 100, 임계값은 40으로 설정하기로 한다.Here, the default mapping page access count is set to 7, the average deletion count is set to 100, and the threshold value is set to 40.

따라서, 평균 삭제 횟수와 임계값을 합한 값보다 웨어된 블록의 삭제 횟수가 높을 수록 웨어된 블록에 대응되는 타겟 블록의 검색은 강화되어야 한다. 따라서, 맵핑 억세스 횟수가 증가되도록 수학식 4와 같은 산출식으로 타겟 블록의 검색의 제 2 조건을 설정할 수 있다.Therefore, as the erase count of the wear block is higher than the sum of the average erase count and the threshold value, the search for the target block corresponding to the wear block should be enhanced. Accordingly, the second condition of the search for the target block may be set by a calculation formula such as Equation 4 so that the number of mapping accesses is increased.

한편, 고성능의 시스템일수록 감도가 높은 것을 요구하기 때문에, 수학식 4를 감도의 함수로 구현할 수 있다.On the other hand, since a higher performance system requires higher sensitivity, Equation 4 can be implemented as a function of sensitivity.

도 6은 도 5에 따라 감도 대비 억세스 횟수의 상관 관계를 나타낸 그래프이다.FIG. 6 is a graph illustrating a correlation between the number of accesses versus the sensitivity according to FIG. 5.

도 6을 참조하면, X축은 웨어된 블록의 삭제 횟수를 나타내고, Y축은 억세스 횟수를 나타낸다.Referring to FIG. 6, the X axis represents the number of erased blocks, and the Y axis represents the number of accesses.

전술한 바와 같이, 억세스 횟수는 수학식 4에 의해 산출되며, 이 때 도5의 감도를 적용하면, 감도의 세기에 따라 그래프의 기울기가 급격해지는 것을 알 수 있다. 즉, 도 6의 ① 내지 ⑤ 는 도 5에서 설명한 감도의 세기 1 내지 5에 대응되고, 감도의 세기에 따라 삭제 횟수 대비 억세스 횟수가 달라지는 것을 나타낸 것이다.As described above, the number of accesses is calculated by Equation 4, and when the sensitivity of FIG. 5 is applied, it can be seen that the slope of the graph is sharply increased according to the intensity of the sensitivity. That is, 1 to 5 of FIG. 6 correspond to the strengths 1 to 5 of the sensitivity described with reference to FIG. 5 and show that the number of accesses compared to the number of deletions varies according to the intensity of the sensitivity.

예컨대, 삭제 횟수의 150인 조건을 기준으로 보면, 감도의 세기에 따라 억세스 횟수가 18 에서부터 58까지 분포를 갖는 것을 알 수 있다. 고감도의 시스템일수록, 억세스 횟수를 높이더라도 타겟 블록의 검색을 강화하는 것이다.For example, based on a condition of 150 times the number of deletions, it can be seen that the number of accesses is distributed from 18 to 58 according to the intensity of sensitivity. The more sensitive the system, the stronger the search for the target block even if the number of accesses is increased.

이와 같이, 웨어 레벨링시, 모든 블록의 삭제 횟수 정보를 로딩할 수 없고, 전체 비교가 불가하므로, 적절하게 검색 조건을 설정하여, 효율적으로 타겟 블록을 검색하도록 제어한다.As described above, since the deletion count information of all blocks cannot be loaded and the entire comparison cannot be performed during wear leveling, a search condition is appropriately set so that the target block can be efficiently searched for.

여기서, 최저값을 갖는 타겟 블록을 찾는 대신, 최단 시간에 교체 자격이 있는 수치를 갖는 블록을 찾도록 하는 것이다. 즉, 최저값의 타겟 블록 대신 최초로 검색된 교체 자격이 있는 블록을 웨어된 블록의 웨어 레벨링으로 희생시키는 것이다. 이를 위해, 검색 성공률을 향상시키도록 타겟 블록 검색의 제 1 조건인 타겟 블록의 삭제 횟수를 가변시키며 제어할 수 있으며, 웨어된 블록의 교체 시급도에 따라 검색 대상이 되는 타겟 블록의 수를 증가시킬 수 도 있다. 이로써 본 발명의 일 실시예에 따르면, 맵핑 정보 및 삭제 횟수에 대한 임시 저장을 위한 버퍼부의 크기를 추가하지 않아도 되고, 종래보다 작은 사이즈로 유지하는 것이 가능하다. Here, instead of finding the target block having the lowest value, the block having the numerical value that is eligible for replacement in the shortest time is to be found. In other words, instead of the lowest target block, the first block that is qualified for replacement is sacrificed by the wear leveling of the worn block. To this end, the number of deletions of the target block, which is the first condition of the target block search, may be varied and controlled to improve the search success rate, and the number of target blocks to be searched may be increased according to the urgent need for replacing the worn block. Can also be. Thus, according to one embodiment of the present invention, it is not necessary to add the size of the buffer unit for temporary storage of the mapping information and the number of deletions, and it is possible to keep the size smaller than the conventional one.

본 발명이 속하는 기술분야의 당업자는 본 발명이 그 기술적 사상이나 필수적 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있으므로, 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적인 것이 아닌 것으로서 이해해야만 한다. 본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 등가개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.As those skilled in the art to which the present invention pertains may implement the present invention in other specific forms without changing the technical spirit or essential features, the embodiments described above should be understood as illustrative and not restrictive in all aspects. Should be. The scope of the present invention is shown by the following claims rather than the detailed description, and all changes or modifications derived from the meaning and scope of the claims and their equivalents should be construed as being included in the scope of the present invention. do.

도 1은 본 발명의 일 실시예에 따른 반도체 스토리지 시스템의 블록도,1 is a block diagram of a semiconductor storage system according to an embodiment of the present invention;

도 2는 도 1에 따른 어드레스 맵핑을 개념적으로 도시한 블록도,2 is a block diagram conceptually illustrating an address mapping according to FIG. 1;

도 3은 도 1에 따른 반도체 스토리지 시스템의 제어 방법을 나타낸 플로우 차트; 3 is a flowchart illustrating a control method of the semiconductor storage system according to FIG. 1;

도 4는 도 3에 따른 타겟 블록의 삭제 횟수 및 누적 실패 횟수의 상관 관계를 도시한 그래프,4 is a graph illustrating a correlation between the number of deletions of a target block and a cumulative failure number according to FIG. 3;

도 5는 도 3에 따른 감도 및 웨어된 블록의 삭제 횟수와의 관계를 정리한 표; 및FIG. 5 is a table summarizing the relationship between the sensitivity according to FIG. 3 and the number of erased blocks; FIG. And

도 6은 도 5에 따른 웨어된 블록의 삭제 횟수 및 억세스 횟수가 감도에 따라 변화되는 것을 나타낸 그래프이다.FIG. 6 is a graph illustrating that the erase count and access count of the worn block according to FIG. 5 are changed according to sensitivity.

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

110: 호스트 인터페이스 120: 버퍼부110: host interface 120: buffer unit

130: MCU 140: 메모리 컨트롤러130: MCU 140: memory controller

150: 메모리 영역 150: memory area

Claims (21)

맵핑 정보 및 삭제 횟수가 저장된 복수의 맵핑 페이지를 순차적으로 로딩하는 버퍼부; 및A buffer unit sequentially loading a plurality of mapping pages in which mapping information and a number of deletions are stored; And 웨어된 블록(worn block)의 교체 대상이 될 타겟 블록(target block)을 찾도록 상기 타겟 블록의 삭제 횟수 기준 및 상기 타겟 블록의 검색 대상인 상기 맵핑 페이지의 수를 설정하여 맵핑 페이지들을 샘플링(sampling)하여 웨어 레벨링(wear-leveling)을 수행하는 메모리 컨트롤러를 포함하는 반도체 스토리지 시스템.Sampling mapping pages by setting the number of deletion of the target block and the number of the mapping pages to be searched for the target block so as to find a target block to be replaced with a worn block. And a memory controller that performs wear-leveling. 제 1항에 있어서,The method of claim 1, 상기 메모리 컨트롤러는 데이터 삭제시마다 웨어 레벨링 수행 여부를 판단하는 반도체 스토리지 시스템.The memory controller determines whether to perform wear leveling every time data is deleted. 제 2항에 있어서,3. The method of claim 2, 상기 메모리 컨트롤러는 상기 웨어 레벨링 수행 시마다 상기 타겟 블록의 삭제 횟수를 가변시킬 수 있는 반도체 스토리지 시스템. The memory controller may vary the number of deletions of the target block every time the wear leveling is performed. 제 3항에 있어서,The method of claim 3, 상기 메모리 컨트롤러는 상기 웨어 레벨링 수행시 상기 타겟 블록을 찾는 것이 실패하면, 차기의 웨어 레벨링 수행시 상기 타겟 블록의 상기 삭제 횟수를 증가 시키는 반도체 스토리지 시스템. And when the memory controller fails to find the target block when performing the wear leveling, the memory controller increases the erase count of the target block when performing the next wear leveling. 제 1항에 있어서,The method of claim 1, 복수의 메모리 블록을 포함하는 메모리 영역을 더 포함하고,Further comprising a memory area including a plurality of memory blocks, 상기 복수의 메모리 블록은 상기 복수의 맵핑 페이지를 포함하며,The plurality of memory blocks includes the plurality of mapping pages, 상기 메모리 컨트롤러는 웨어 레벨링 수행 시마다 상기 메모리 영역에 억세스 하는 횟수를 가변시키면서 검색 대상의 상기 맵핑 페이지의 수를 다르게 제어할 수 있는 반도체 스토리지 시스템.The memory controller may control the number of mapping pages to be searched differently while varying the number of times the memory area is accessed each time the wear leveling is performed. 제 5항에 있어서,The method of claim 5, 상기 메모리 컨트롤러는 상기 웨어된 블록의 삭제 횟수가 기 설정된 소정치보다 높을수록 상기 메모리 영역에 억세스 하는 횟수를 증가시키는 반도체 스토리지 시스템.And the memory controller increases the number of times of access to the memory area as the erase count of the worn block is higher than a predetermined value. 제 6항에 있어서,The method of claim 6, 상기 메모리 컨트롤러는 상기 메모리 영역에 억세스 하는 횟수를 증가시킬수록 상기 버퍼부에 로딩되는 상기 맵핑 페이지의 수를 증가시키는 반도체 스토리지 시스템.The memory controller increases the number of mapping pages loaded in the buffer unit as the number of times of accessing the memory area increases. 제 7항에 있어서,The method of claim 7, wherein 상기 버퍼부에 로딩되는 상기 맵핑 페이지는 동시에 로딩되지 않고 순차적으로 로딩되는 반도체 스토리지 시스템.The mapping page loaded in the buffer unit is sequentially loaded, not simultaneously loaded. 삭제delete 복수의 메모리 블록을 포함하며, 상기 각 메모리 블록 내 맵핑 정보 및 삭제 횟수가 저장된 맵핑 페이지가 저장된 메모리 영역; 및A memory area including a plurality of memory blocks, the mapping page storing mapping information and erase counts in each of the memory blocks; And 웨어 레벨링 시, 상기 메모리 블록 중 웨어된 블록의 교체 대상이 될 블록에 대한 삭제 횟수의 기준 및 상기 웨어된 블록의 정보를 이용하여 상기 교체 대상이 될 블록에 대한 검색 대상 수의 기준을 설정함으로써, 타겟 블록으로서의 상기 교체 대상이 될 최초의 블록을 찾아서 상기 웨어된 블록과 교체시키는 메모리 컨트롤러를 포함하는 반도체 스토리지 시스템.In the wear leveling, by setting a criterion of the number of deletion targets for the block to be replaced of the worn out of the memory block and the reference of the number of search targets for the block to be replaced using the information of the weared block, And a memory controller that finds and replaces the first block to be replaced with the worn block as a target block. 제 10항에 있어서,The method of claim 10, 상기 메모리 컨트롤러는, 상기 타겟 블록의 검색 성공률을 향상시키도록 상기 타겟 블록의 상기 삭제 횟수 기준을 가변시키며 제어하는 반도체 스토리지 시스템.The memory controller is configured to control and vary the reference number of times of erasing the target block to improve a search success rate of the target block. 제 11항에 있어서,The method of claim 11, 상기 메모리 컨트롤러는 상기 웨어 레벨링 수행시 상기 타겟 블록을 찾는 것이 실패하면, 차기(次期)의 웨어 레벨링 수행시 상기 타겟 블록의 상기 삭제 횟수를 증가시키는 반도체 스토리지 시스템. And if the memory controller fails to find the target block when performing the wear leveling, the memory controller increases the number of deletions of the target block when performing the next wear leveling. 제 10항에 있어서,The method of claim 10, 상기 메모리 컨트롤러는, 상기 웨어된 블록의 교체 시급도에 따라 상기 검색 대상의 수를 가변시키는 반도체 스토리지 시스템The memory controller may vary the number of objects to be searched according to an urgent need for replacing the worn block. 제 13항에 있어서,The method of claim 13, 상기 메모리 컨트롤러는 상기 웨어된 블록의 삭제 횟수가 기 설정된 소정치보다 높을수록, 검색 대상이 되는 상기 타겟 블록의 수를 증가시킴으로써 상기 메모리 영역에 접근하는 검색 횟수를 증가시키는 반도체 스토리지 시스템.The memory controller increases the number of searches for accessing the memory area by increasing the number of the target blocks to be searched as the number of times of deleting the worn block is higher than a predetermined value. 웨어 레벨링 시, 웨어된 블록에 대응되어 교체될 타겟 블록의 삭제 횟수를 결정하는 제 1 기준 설정하는 단계; Setting a first criterion for determining the number of deletions of the target block to be replaced corresponding to the worn block during wear leveling; 상기 웨어된 블록의 삭제 횟수에 따라 상기 타겟 블록 검색의 제 2 기준 설정하는 단계;Setting a second reference of the target block search according to the number of deletions of the worn block; 상기 제 1 및 제 2 기준에 의해 상기 타겟 블록을 찾는 단계; 및Finding the target block by the first and second criteria; And 상기 타겟 블록을 찾지 못했다면, 상기 제 1 기준을 가변시켜 갱신함으로써, 차기(次期)의 상기 타겟 블록 검색 조건에 영향을 주는 단계를 포함하는 반도체 스 토리지 시스템의 제어 방법.And if the target block is not found, changing the first criterion to update the target block, thereby affecting a next target block search condition. 제 15항에 있어서,The method of claim 15, 상기 제 1 기준을 설정하는 단계는,The setting of the first reference may include: 상기 타겟 블록으로 선택될 수 있도록 소정 수치의 삭제 횟수를 설정하는 단계를 포함하는 반도체 스토리지 시스템의 제어 방법.And setting a number of deletions of a predetermined value to be selected as the target block. 제 15항에 있어서,The method of claim 15, 상기 제 2 기준을 설정하는 단계는,The setting of the second criterion may include: 상기 웨어된 블록의 삭제 횟수가 높을 수록, 상기 타겟 블록으로 검색될 블록의 수를 증가킴으로써, 메모리 영역에 대한 억세스 횟수를 설정하는 반도체 스토리지 시스템의 제어 방법.And controlling the number of accesses to the memory area by increasing the number of blocks to be searched to the target block as the number of erased blocks is increased. 제 17항에 있어서,The method of claim 17, 상기 제 2 기준인 상기 억세스 횟수 동안 상기 제 1 기준의 삭제 횟수 이하를 만족하는 상기 타겟 블록을 찾는 것을 반복 수행하는 반도체 스토리지 시스템의 제어 방법. And repeatedly searching for the target block that satisfies the number of deletions of the first criterion or less during the number of accesses as the second criterion. 제 15항에 있어서,The method of claim 15, 상기 웨어 레벨링 진입 시 상기 타겟 블록의 검색 실패 여부를 알리는 누적 실패 횟수를 설정하는 것을 더 포함하고,Setting a cumulative number of failures indicating whether the target block has failed to search when entering the wear leveling; 상기 제 1 기준을 설정하는 것은 상기 누적 실패 횟수를 이용하여, 상기 타겟 블록의 삭제 횟수를 설정하는 반도체 스토리지 시스템의 제어 방법.The setting of the first reference may include setting the number of deletions of the target block using the cumulative number of failures. 제 19항에 있어서,The method of claim 19, 상기 타겟 블록을 찾지 못했다면, 상기 누적 실패 횟수를 증가시켜 상기 타겟 블록의 상기 삭제 횟수 기준을 높이는 반도체 스토리지 시스템의 제어 방법.And if the target block is not found, increasing the cumulative number of failures to increase the reference number of deletion of the target block. 제 19항에 있어서,The method of claim 19, 상기 타겟 블록을 찾았다면, 상기 누적 실패 횟수를 감소시키고 상기 타겟 블록의 상기 삭제 횟수 기준을 낮추는 반도체 스토리지 시스템의 제어 방법.And if the target block is found, reducing the cumulative number of failures and lowering the reference for the number of deletions of the target block.
KR1020090103578A 2009-10-29 2009-10-29 Solid State Storage System For Controlling of Wear-Leveling Flexibly and Method of Controlling the Same Expired - Fee Related KR101097438B1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020090103578A KR101097438B1 (en) 2009-10-29 2009-10-29 Solid State Storage System For Controlling of Wear-Leveling Flexibly and Method of Controlling the Same
US12/648,369 US8335887B2 (en) 2009-10-29 2009-12-29 Solid state storage systems and methods for flexibly controlling wear leveling

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020090103578A KR101097438B1 (en) 2009-10-29 2009-10-29 Solid State Storage System For Controlling of Wear-Leveling Flexibly and Method of Controlling the Same

Publications (2)

Publication Number Publication Date
KR20110046880A KR20110046880A (en) 2011-05-06
KR101097438B1 true KR101097438B1 (en) 2011-12-23

Family

ID=43926598

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020090103578A Expired - Fee Related KR101097438B1 (en) 2009-10-29 2009-10-29 Solid State Storage System For Controlling of Wear-Leveling Flexibly and Method of Controlling the Same

Country Status (2)

Country Link
US (1) US8335887B2 (en)
KR (1) KR101097438B1 (en)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012043180A (en) * 2010-08-19 2012-03-01 Sony Corp Information processor, information processing method and computer program
US8862902B2 (en) * 2011-04-29 2014-10-14 Seagate Technology Llc Cascaded data encryption dependent on attributes of physical memory
US9146855B2 (en) 2012-01-09 2015-09-29 Dell Products Lp Systems and methods for tracking and managing non-volatile memory wear
CN103092770B (en) * 2013-01-18 2015-08-12 山东华芯半导体有限公司 The method of memory cost is reduced during a kind of abrasion equilibrium process
JP6326209B2 (en) * 2013-09-30 2018-05-16 ラピスセミコンダクタ株式会社 Semiconductor device and method for retrieving erase count in semiconductor memory
CN107077883B (en) 2014-11-25 2021-04-27 三星电子株式会社 Method for detecting most frequently accessed addresses of semiconductor memory based on probability information
KR102258126B1 (en) 2015-03-19 2021-05-28 삼성전자주식회사 Method of operating a memory controller, a data storage device including same, and data processing system including same
CN108089994B (en) * 2018-01-04 2021-06-01 威盛电子股份有限公司 Storage device and data storage method
CN108563397B (en) * 2018-01-04 2021-08-24 威盛电子股份有限公司 Storage device and data storage method
KR102534648B1 (en) * 2018-03-08 2023-05-22 에스케이하이닉스 주식회사 Memory system and operating method thereof
US10713155B2 (en) * 2018-07-19 2020-07-14 Micron Technology, Inc. Biased sampling methodology for wear leveling
US10817187B2 (en) * 2019-01-24 2020-10-27 Western Digital Technologies, Inc. Balancing the block wearing leveling for optimum SSD endurance
US11561883B2 (en) * 2019-12-12 2023-01-24 Sandisk Technologies Llc Pipelined micro controller unit
CN111639041B (en) * 2020-05-29 2022-04-08 深圳宏芯宇电子股份有限公司 Memory control method, memory storage device and memory controller
US11429543B2 (en) * 2020-10-22 2022-08-30 Micron Technology, Inc. Managed NAND flash memory region control against endurance hacking
US11798643B1 (en) 2022-03-15 2023-10-24 Western Digital Technologies, Inc. Non-volatile storage system with hybrid SLC wear leveling
CN117275561B (en) * 2023-09-19 2024-06-21 四川云海芯科微电子科技有限公司 Method and system for adjusting wear balance force of solid state disk
CN117873406B (en) * 2024-03-11 2024-07-09 武汉麓谷科技有限公司 Method for controlling wear balance of ZNS solid state disk

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100297986B1 (en) 1998-03-13 2001-10-25 김영환 Wear levelling system of flash memory cell array and wear levelling method thereof
KR100857761B1 (en) 2007-06-14 2008-09-10 삼성전자주식회사 Memory system performing wear leveling and its writing method

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1281123A1 (en) 2000-05-04 2003-02-05 Koninklijke Philips Electronics N.V. Method, system and computer program for data management on a storage medium
US6732221B2 (en) 2001-06-01 2004-05-04 M-Systems Flash Disk Pioneers Ltd Wear leveling of static areas in flash memory
US6985992B1 (en) * 2002-10-28 2006-01-10 Sandisk Corporation Wear-leveling in non-volatile storage systems
US7853749B2 (en) 2005-09-01 2010-12-14 Cypress Semiconductor Corporation Flash drive fast wear leveling
KR101185617B1 (en) 2006-04-04 2012-09-24 삼성전자주식회사 The operation method of a flash file system by a wear leveling which can reduce the load of an outside memory
TW200828320A (en) 2006-12-28 2008-07-01 Genesys Logic Inc Method for performing static wear leveling on flash memory
US7657701B2 (en) * 2007-01-03 2010-02-02 The General Electric Company System and method of flash memory wear leveling using distributed write cycles
US7882301B2 (en) 2007-05-09 2011-02-01 Stmicroelectronics S.R.L. Wear leveling in storage devices based on flash memories and related circuit, system, and method
KR101413736B1 (en) * 2007-09-13 2014-07-02 삼성전자주식회사 Memory system with improved reliability and wear-leveling technique thereof
TWI366828B (en) * 2007-09-27 2012-06-21 Phison Electronics Corp Wear leveling method and controller using the same
TWI385669B (en) * 2008-07-23 2013-02-11 Phison Electronics Corp Wear leveling method and storage system and controller using the same

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100297986B1 (en) 1998-03-13 2001-10-25 김영환 Wear levelling system of flash memory cell array and wear levelling method thereof
KR100857761B1 (en) 2007-06-14 2008-09-10 삼성전자주식회사 Memory system performing wear leveling and its writing method

Also Published As

Publication number Publication date
US20110107016A1 (en) 2011-05-05
US8335887B2 (en) 2012-12-18
KR20110046880A (en) 2011-05-06

Similar Documents

Publication Publication Date Title
KR101097438B1 (en) Solid State Storage System For Controlling of Wear-Leveling Flexibly and Method of Controlling the Same
KR101131560B1 (en) Non-Volitile Memory Device For Performing Wear-Leveling and Method Thereof
EP2439645B1 (en) Method and apparatus for storing data in a multi-level cell flash memory device
KR101185617B1 (en) The operation method of a flash file system by a wear leveling which can reduce the load of an outside memory
US20180373627A1 (en) Memory system having persistent garbage collection
US8200904B2 (en) System and method for clearing data from a cache
TWI483109B (en) Semiconductor storage device
US20090113112A1 (en) Data storage device, memory system, and computing system using nonvolatile memory device
US10372382B2 (en) Methods and apparatus for read disturb detection based on logical domain
US10884669B2 (en) Controller, operation method of the controller and memory system
JP2011522350A (en) Hybrid memory management
US20100030948A1 (en) Solid state storage system with data attribute wear leveling and method of controlling the solid state storage system
KR20090077538A (en) Semiconductor memory device and its wear management method
US11334272B2 (en) Memory system and operating method thereof
US20200110555A1 (en) Write control method, associated data storage device and controller thereof
KR101403922B1 (en) Apparatus and method for data storing according to an access degree
KR20110035762A (en) Semiconductor storage system that manages spare area flexibly and its control method
Margaglia et al. Improving MLC flash performance and endurance with extended P/E cycles
KR102752253B1 (en) Controller and operation method thereof
CN105955672B (en) Solid-state storage system and method for flexibly controlling wear leveling
KR20230092733A (en) Automatic deletion in a persistent storage device
US20110138110A1 (en) Method and control unit for performing storage management upon storage apparatus and related storage apparatus
US11579792B2 (en) Data movement between different cell regions in non-volatile memory
US12254183B2 (en) Storage device including non-volatile memory device and operating method of storage device
CN119473163B (en) Shared buffer capacity adjustment method and storage system based on type tracking

Legal Events

Date Code Title Description
A201 Request for examination
PA0109 Patent application

Patent event code: PA01091R01D

Comment text: Patent Application

Patent event date: 20091029

PA0201 Request for examination
E902 Notification of reason for refusal
PE0902 Notice of grounds for rejection

Comment text: Notification of reason for refusal

Patent event date: 20110314

Patent event code: PE09021S01D

PG1501 Laying open of application
E701 Decision to grant or registration of patent right
PE0701 Decision of registration

Patent event code: PE07011S01D

Comment text: Decision to Grant Registration

Patent event date: 20111128

GRNT Written decision to grant
PR0701 Registration of establishment

Comment text: Registration of Establishment

Patent event date: 20111215

Patent event code: PR07011E01D

PR1002 Payment of registration fee

Payment date: 20111216

End annual number: 3

Start annual number: 1

PG1601 Publication of registration
FPAY Annual fee payment

Payment date: 20141126

Year of fee payment: 4

PR1001 Payment of annual fee

Payment date: 20141126

Start annual number: 4

End annual number: 4

FPAY Annual fee payment

Payment date: 20151120

Year of fee payment: 5

PR1001 Payment of annual fee

Payment date: 20151120

Start annual number: 5

End annual number: 5

FPAY Annual fee payment

Payment date: 20161125

Year of fee payment: 6

PR1001 Payment of annual fee

Payment date: 20161125

Start annual number: 6

End annual number: 6

FPAY Annual fee payment

Payment date: 20171124

Year of fee payment: 7

PR1001 Payment of annual fee

Payment date: 20171124

Start annual number: 7

End annual number: 7

FPAY Annual fee payment

Payment date: 20181126

Year of fee payment: 8

PR1001 Payment of annual fee

Payment date: 20181126

Start annual number: 8

End annual number: 8

PC1903 Unpaid annual fee

Termination category: Default of registration fee

Termination date: 20200926