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 PDFInfo
- 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
Links
- 238000000034 method Methods 0.000 title claims description 27
- 239000007787 solid Substances 0.000 title description 2
- 238000012217 deletion Methods 0.000 claims abstract description 61
- 230000037430 deletion Effects 0.000 claims abstract description 61
- 238000013507 mapping Methods 0.000 claims abstract description 41
- 239000000872 buffer Substances 0.000 claims abstract description 26
- 230000001186 cumulative effect Effects 0.000 claims description 26
- 238000005070 sampling Methods 0.000 claims description 3
- 239000004065 semiconductor Substances 0.000 abstract description 21
- 230000035945 sensitivity Effects 0.000 description 18
- 210000004027 cell Anatomy 0.000 description 14
- 238000010586 diagram Methods 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000004904 shortening Methods 0.000 description 1
- 238000013403 standard screening design Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 210000000352 storage cell Anatomy 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7211—Wear 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
반도체 스토리지 시스템이 개시된다. 개시된 반도체 스토리지 시스템은, 맵핑 정보 및 삭제 횟수가 저장된 복수의 맵핑 페이지를 순차적으로 로딩하는 버퍼부 및 웨어된 블록의 교체 대상이 될 타겟 블록을 찾도록 상기 타겟 블록의 삭제 횟수 기준 및 상기 타겟 블록의 검색 대상인 상기 맵핑 페이지의 수를 설정하여 맵핑 페이지들을 샘플링하여 웨어 레벨링을 수행하는 메모리 컨트롤러를 포함한다.
플래시 메모리, 웨어 레벨링, 검색, 맵핑
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.
Flash memory, wear leveling, search, mapping
Description
본 발명은 반도체 스토리지 시스템 및 그 제어 방법에 관한 것으로서, 보다 구체적으로는 웨어 레벨링을 유동적으로 제어하는 반도체 스토리지 시스템 및 그 제어 방법에 관한 것이다.BACKGROUND OF THE
일반적으로 비휘발성 메모리를 많은 휴대용 정보 기기의 저장용 메모리로 사용하고 있다. 더 나아가, 최근에는 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
도 1및 도 2를 참조하면, 반도체 스토리지 시스템(100)은 호스트 인터페이스(110), 버퍼부(120), MCU(130), 메모리 컨트롤러(140) 및 메모리 영역(150)을 포함한다.1 and 2, the
우선, 호스트 인터페이스(110)는 버퍼부(120)와 연결된다. 호스트 인터페이스(110)는 외부 호스트 (미도시)와 버퍼부(120)간에 제어 명령, 어드레스 신호 및 데이터 신호를 송수신한다. 호스트 인터페이스(110)와 외부 호스트 (미도시)간의 인터페이스 방식은 직렬 ATA(Serial Advanced Technology Attachment;SATA), 병렬 ATA(Parallel Advanced Technology attachment;PATA) 및 SCSI, Express Card, PCI-Express 방식 중 어느 하나일 수 있으며 제한되지 않는다.First, the
버퍼부(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
특히, 본 발명의 일 실시예에 따른 버퍼부(120)는 종래의 모든 블록의 삭제 횟수를 로딩하는 것이 아니라, 이와 같이 웨어된 블록만 로딩하므로 버퍼부(120)의 사이즈가 작아도 되므로 비용 및 면적 효율을 증대시킨다. In particular, since the
MCU(Micro Control Unit; 130)는 호스트 인터페이스(110)간에 제어 명령, 어드레스 신호 및 데이터 신호등을 송수신하거나, 이러한 신호들에 의해 메모리 컨트롤러(140)를 제어하기도 한다.The
메모리 컨트롤러(140)는 메모리 영역(150)의 복수개의 낸드 플래시 메모리 소자 중 소정 낸드 플래시 메모리 소자(ND)를 선택하고, 라이트, 삭제 또는 리드 명령을 제공한다. 특히, 본 발명의 일 실시 예에 따른 메모리 컨트롤러(140)는 웨어 레벨링을 유동적으로 제어할 수 있다. 즉, 메모리 컨트롤러(140)는 두 가지 기준을 이용해서 웨어 레벨링시 필요한 타겟 블록의 검색 조건 및 검색 횟수 등을 제어하여, 효율적으로 메모리 수명의 균등 사용을 관리할 수 있다.The
종래에는 모든 블록에 대한 삭제 횟수 정보를 메모리 영역(150)의 소정의 영역에 큰 단위(lump)로 저장하였다. 그리하여, 웨어 레벨링 시점이 되면, 모든 블록의 삭제 횟수 정보를 버퍼부(120)에 로딩하여, 삭제 횟수가 높은 블록을 대신할 블록으로서 삭제 횟수가 최저인 블록을 선택하여 물리적 위치를 변경을 시도했다. 이 때, 버퍼부(120)는 모든 블록의 삭제 횟수를 로딩해야 하므로 메모리 사이즈가 커 야 했다. Conventionally, the erase count information of all the blocks is stored in a lump in a predetermined area of the
그러나, 본 발명의 일 실시예에 따르면, 웨어 레벨링 시점에 메모리 컨트롤러(140)는 모든 블록의 삭제 횟수 정보를 버퍼부(120)로 로딩하는 것이 아니라, 검색 조건에 맞도록 설정된 수개 내의 블록들을 샘플링(sampling)하여 웨어 레벨링을 수행한다. 또한, 본 발명의 일 실시예에 따른 메모리 컨트롤러(140)는 블록의 삭제가 행해질 때마다 삭제 횟수를 가산한다. 그리하여, 블록의 삭제 횟수가 소정 설정치보다 크면 웨어 레벨링을 수행하게 되는데, 이 때 누적 실패 횟수를 블록 검색의 조건 기준으로 이용하고, 웨어된 블록의 삭제 횟수 수치와 평균 삭제 횟수와의 차이(difference)를 검색 횟수의 기준으로 이용하여, 검색 시간 및 검색 조건이 유동적으로 가변되도록 제어할 수 있다. 다시 말하면, 본 발명의 일 실시예에 따르면, 웨어 레벨링의 정보를 최소한으로 이용하면서도, 검색 기준을 이중으로 설정하여 검색 시간을 단축시키고 교체 대상 블록의 검색 확률을 증가시킬 수 있다. 이에 대한 상세한 설명은 후술하기로 한다.However, according to an exemplary embodiment of the present invention, the
메모리 영역(150)은 메모리 컨트롤러(140)에 의해 제어되어 데이터의 라이트, 삭제 및 리드 동작이 수행된다. 여기서, 메모리 영역(150)은 낸드(NAND) 플래시 메모리일 수 있다. 본 발명의 일 실시 예에서는 낸드(NAND) 플래시 메모리의 셀은 SLC(Single Level Cell) 또는 MLC(Multi Level Cell) 일 수 있다. 이러한 메모리 영역(150)은 다수의 페이지를 포함하는 다수의 블록으로 구성된 칩이 복수개 구비될 수 있다. 한편, 메모리 영역(150)내에는 전술한 맵핑 정보 및 삭제 횟수 정보를 저장하고 있다. 이를 여기서는 ‘맵핑 페이지’라고 별도로 정의하여 지칭하기 로 한다. 즉, 맵핑 페이지의 물리적인 정의는 낸드 플래시 메모리의 처리 단위 또는 저장 단위가 되는 페이지를 의미하며, 이러한 맵핑 페이지는 하나의 블록 정보에 대한 논리적 물리적 어드레스간의 맵핑 정보와 함께 삭제 횟수를 함께 저장하는 것으로 정의한다. 의미상 혼돈을 피하기 위하여 맵핑 페이지 대신 맵핑 저장 영역이라고 명명해도 무방하다.The
도 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.
예를 들어, 삭제 횟수의 평균값은 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
누적 실패 횟수란, 웨어된 블록의 교체 대상이 될 타겟 블록(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).
하지만, 이와 같은 수식은, 누적 실패 허용 횟수가 임계치인 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.
즉, 도 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.
여기서, 기본 맵핑 페이지 억세스 횟수는 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
한편, 고성능의 시스템일수록 감도가 높은 것을 요구하기 때문에, 수학식 4를 감도의 함수로 구현할 수 있다.On the other hand, since a higher performance system requires higher 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
예컨대, 삭제 횟수의 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)
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)
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)
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)
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 |
-
2009
- 2009-10-29 KR KR1020090103578A patent/KR101097438B1/en not_active Expired - Fee Related
- 2009-12-29 US US12/648,369 patent/US8335887B2/en active Active
Patent Citations (2)
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 |