KR101413736B1 - 향상된 신뢰성을 갖는 메모리 시스템 및 그것의웨어-레벨링 기법 - Google Patents

향상된 신뢰성을 갖는 메모리 시스템 및 그것의웨어-레벨링 기법 Download PDF

Info

Publication number
KR101413736B1
KR101413736B1 KR1020070093173A KR20070093173A KR101413736B1 KR 101413736 B1 KR101413736 B1 KR 101413736B1 KR 1020070093173 A KR1020070093173 A KR 1020070093173A KR 20070093173 A KR20070093173 A KR 20070093173A KR 101413736 B1 KR101413736 B1 KR 101413736B1
Authority
KR
South Korea
Prior art keywords
memory
error bit
erase
memory unit
error
Prior art date
Application number
KR1020070093173A
Other languages
English (en)
Other versions
KR20090027952A (ko
Inventor
임용태
조성규
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020070093173A priority Critical patent/KR101413736B1/ko
Priority to US12/230,769 priority patent/US9229805B2/en
Priority to JP2008232262A priority patent/JP5296464B2/ja
Priority to CN200810177883.8A priority patent/CN101458957B/zh
Publication of KR20090027952A publication Critical patent/KR20090027952A/ko
Priority to US14/273,901 priority patent/US9251015B2/en
Application granted granted Critical
Publication of KR101413736B1 publication Critical patent/KR101413736B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1658Data re-synchronization of a redundant component, or initial sync of replacement, additional or spare unit
    • 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
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1072Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in multilevel memories
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/349Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles
    • G11C16/3495Circuits or methods to detect or delay wearout of nonvolatile EPROM or EEPROM memory devices, e.g. by counting numbers of erase or reprogram cycles, by using multiple memory areas serially or cyclically
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0616Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/349Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles

Abstract

본 발명의 예시적인 실시예들은 메모리 유니트들을 갖는 플래시 메모리 장치와; 그리고 상기 플래시 메모리 장치를 제어하도록 구성된 메모리 컨트롤러를 포함하며, 상기 메모리 컨트롤러는 상기 각 메모리 유니트의 소거 이벤트 정보 및 이씨씨 이벤트 정보에 의거하여 상기 메모리 유니트들에 대한 웨어-레벨링 동작을 수행하는 메모리 시스템을 제공한다.

Description

향상된 신뢰성을 갖는 메모리 시스템 및 그것의 웨어-레벨링 기법{MEMORY SYSTEM WITH IMPROVED RELIABILITY AND WEAR-LEVELING TECHNIQUE THEREOF}
본 발명은 저장 시스템에 관한 것으로, 좀 더 구체적으로는 플래시 메모리 장치를 이용한 메모리 시스템에 관한 것이다.
플래시 메모리 장치는 복수의 메모리 영역들이 한번의 프로그램 동작으로 소거 또는 프로그램되는 일종의 EEPROM이다. 일반적인 EEPROM은 단지 하나의 메모리 영역이 한 번에 소거 또는 프로그램 가능하게 하며, 이는 플래시 메모리 장치를 사용하는 시스템들이 동시에 다른 메모리 영역들에 대해 읽고 쓸 때 보다 빠르고 효과적인 속도로 플래시 메모리 장치가 동작할 수 있음을 의미한다. 플래시 메모리 및 EEPROM의 모든 형태는 데이터를 저장하는 데 사용되는 전하 저장 수단을 둘러싸고 있는 절연막의 마멸로 인해서 특정 수의 소거 동작들 후에 마멸된다.
플래시 메모리 장치는 실리콘 칩에 저장된 정보를 유지하는 데 전원을 필요로 하지 않는 방법으로 실리콘 칩 상에 정보를 저장한다. 이는 만약 칩에 공급되는 전원이 차단되면 전원의 소모없이 정보가 유지됨을 의미한다. 추가로, 플래시 메모리 장치는 물리적인 충격 저항성 및 빠른 읽기 접근 시간을 제공한다. 이러한 특징 들때문에, 플래시 메모리 장치는 배터리에 의해서 전원을 공급받는 장치들의 저장 장치로서 일반적으로 사용되고 있다. 플래시 메모리 장치는 각 저장 소자에 사용되는 로직 게이트의 형태에 따라 2가지 종류 즉, 노어 플래시 메모리 장치와 낸드 플래시 메모리 장치로 이루어진다.
플래시 메모리 장치는 셀이라 불리는 트랜지스터들의 어레이에 정보를 저장하며, 각 셀은 1-비트 정보를 저장한다. 멀티-레벨 셀 장치라 불리는 보다 새로운 플래시 메모리 장치들은 셀의 플로팅 게이트 상에 놓인 전하량을 가변시킴으로써 셀 당 1 비트보다 많이 저장할 수 있다.
플로팅 게이트 기술들을 이용하는 플래시 메모리 장치에 있어서, 데이터 보유 특성(data-retention characteristics) 및 질적 저하없는 프로그램/소거 사이클 수(또는 내구성)은 가장 중요한 신뢰성 관심사이다. 저장된 전하(또는 전자들)는 결함 인터폴리 절연막을 통한 열이온 방출 및 전하 확산, 이온 불순물, 프로그램 디스터브 스트레스, 등과 같은 다양한 페일 메카니즘들을 통해 플로팅 게이트로부터 누설될 수 있다. 이는 문턱 전압의 감소를 야기할 것이다. 제어 게이트가 전원 전압으로 유지된 상태에서 플로팅 게이트가 서서히 전하들을 얻을 때 전하 획득의 반대 효과가 생길 수 있다. 이는 문턱 전압의 증가를 야기한다. 반복적인 프로그램/소거 사이클들은 메모리 트랜지스터 산화막들을 스트레스 받게하며, 이는 플래시 메모리 장치에 대한 터널 산화막 브레이크다운과 같은 페일을 야기할 수 있다.
플래시 메모리 장치는 10K의 프로그램/소거 사이클 수만큼 프로그램/소거되면 노화/열화 현상에 의해 배드 블럭이 발생할 가능성이 증가된다. 따라서 플래시 메모리 장치의 메모리 블록들 전체를 균일하게 사용하기 위해 다양한 웨어-레벨링 기법이 사용되고 있다. 예시적인 웨어-레벨링 기법에 의하면, 물리적인 섹터/메모리 블록에 맵핑되는 논리적인 섹터/메모리 블록 번호를 변경함으로써 웨어-레벨링을 구현하는 것이 가능하다. 메모리 블록들이 모두 사용된 후 첫번째 메모리 블럭부터 다시 사용하는 방법은 완벽한 웨어 레벨링을 구현할 수는 있으나 블럭 이동과 소거로 인해 유효한 데이터의 블럭 이동이 빈번해지고 결과적으로 시스템의 성능을 저하시키는 단점이 있다. 따라서 메모리 블럭마다 소거 횟수를 관리하면서 현재 유효한 데이터가 가장 적은 블럭을 최우선 소거 대상 블럭으로 선택하는 방법이 웨어 레벨링과 성능을 모두 만족시킬 수 있는 최선의 방법이다.
본 발명의 목적은 신뢰성을 향상킬 수 있는 메모리 시스템 및 그것의 웨어-레벨링 기법을 제공하는 것이다.
본 발명의 예시적인 실시예들은 각각이 복수의 메모리 셀들로 구성된 메모리 유니트들 갖는 플래시 메모리 장치와; 그리고 상기 플래시 메모리 장치를 제어하도록 구성된 메모리 컨트롤러를 포함하며, 상기 메모리 컨트롤러는 상기 각 메모리 유니트의 소거 이벤트 정보 및 이씨씨 이벤트 정보에 의거하여 상기 메모리 유니트들에 대한 웨어-레벨링 동작을 수행하는 메모리 시스템을 제공한다.
예시적인 실시예에 있어서, 상기 소거 이벤트 정보는 상기 각 메모리 유니트의 소거 이벤트 횟수를 포함하고, 상기 이씨씨 이벤트 정보는 상기 각 메모리 유니트의 에러 비트 값들을 포함한다.
예시적인 실시예에 있어서, 상기 메모리 컨트롤러는 초기 상태에서 가장 높은 우선순위의 제 1 그룹으로 상기 메모리 유니트들을 설정하고, 상기 에러 비트 값들은 2-비트 에러의 이벤트 횟수를 나타내는 제 1 에러 비트 값과 3-비트 에러의 이벤트 횟수를 나타내는 제 2 에러 비트 값을 포함한다.
예시적인 실시예에 있어서, 상기 메모리 컨트롤러는 상기 각 메모리 유니트의 제 1 에러 비트 값이 제 1 이씨씨 임계값보다 클 때 낮은 우선순위의 제 2 그룹으로 상기 각 메모리 유니트를 설정한다.
예시적인 실시예에 있어서, 상기 메모리 컨트롤러는 상기 각 메모리 유니트의 제 2 에러 비트 값이 제 2 이씨씨 임계값보다 클 때 상기 각 메모리 유니트의 소거 이벤트 횟수에 관계없이 가장 낮은 우선순위의 제 3 그룹으로 상기 각 메모리 유니트를 설정한다.
예시적인 실시예에 있어서, 상기 메모리 컨트롤러는 상기 각 메모리 유니트의 제 2 에러 비트 값이 상기 제 2 이씨씨 임계값보다 클 때 상기 제 2 그룹에 속하는 각 메모리 유니트를 상기 제 3 그룹으로 설정한다.
예시적인 실시예에 있어서, 상기 메모리 컨트롤러는 상기 각 메모리 유니트의 소거 이벤트 값이 소거 임계값보다 클 때 상기 제 2 그룹으로 상기 각 메모리 유니트를 설정한다.
예시적인 실시예에 있어서, 상기 플래시 메모리 장치 및 상기 메모리 컨트롤러는 메모리 카드 및 에스에스디 중 어느 하나를 구성한다.
예시적인 실시예에 있어서, 상기 메모리 컨트롤러는 프로세싱 유니트와; 상기 플래시 메모리 장치의 선택된 메모리 유니트으로부터 읽혀진 데이터를 임시 저장하는 버퍼 메모리와; 그리고 상기 읽혀진 데이터에 대한 에러 검출 및 정정 동작을 수행하는 이씨씨 블록을 포함하며, 상기 이씨씨 블록은 에러 검출시 에러 비트 수를 나타내는 이씨씨 이벤트 정보를 상기 프로세싱 유니트로 전송하고, 상기 프로세싱 유니트는 상기 이씨씨 이벤트 정보에 따라 상기 선택된 메모리 유니트의 에러 비트 값을 갱신한다.
예시적인 실시예에 있어서, 상기 각 메모리 유니트는 소거 단위를 구성한다.
예시적인 실시예에 있어서, 상기 소거 이벤트 정보는 상기 각 메모리 유니트의 소거 이벤트 횟수를 포함하고, 상기 이씨씨 이벤트 정보는 상기 메모리 유니트들 중 하나 또는 그 보다 많은 유니트들의 에러 비트 값들을 포함한다.
예시적인 실시예에 있어서, 상기 소거 이벤트 정보는 상기 각 메모리 유니트의 소거 이벤트 횟수를 포함하고, 상기 이씨씨 이벤트 정보는 상기 각 메모리 유니트의 메모리 셀들로 구성된 행들 중 하나 또는 그 보다 많은 행들의 에러 비트 값들을 포함한다.
본 발명의 다른 예시적인 실시예들은 메모리 유니트들을 갖는 플래시 메모리 장치를 포함한 메모리 시스템의 웨어-레벨링 방법을 제공하며, 이 방법은 프로그램/소거 사이클링에 따른 상기 각 메모리 유니트의 소거 이벤트 정보 및 이씨씨 이벤트 정보를 웨어-레벨링 테이블에 저장하고, 상기 웨어-레벨링 테이블에 저장된 상기 각 메모리 유니트의 소거 이벤트 정보 및 이씨씨 이벤트 정보에 의거하여 상기 각 메모리 유니트에 대한 웨어-레벨링 동작을 수행하는 것을 포함한다.
예시적인 실시예에 있어서, 상기 소거 이벤트 정보는 상기 각 메모리 유니트의 소거 이벤트 횟수를 포함하고, 상기 이씨씨 이벤트 정보는 상기 각 메모리 유니트의 에러 비트 값들을 포함한다.
예시적인 실시예에 있어서, 상기 메모리 유니트들은 초기 상태에서 가장 높은 우선순위의 제 1 그룹으로 설정되고, 상기 에러 비트 값들은 2-비트 에러의 이벤트 횟수를 나타내는 제 1 에러 비트 값과 3-비트 에러의 이벤트 횟수를 나타내는 제 2 에러 비트 값을 포함한다.
예시적인 실시예에 있어서, 상기 각 메모리 유니트은 상기 각 메모리 유니트의 제 1 에러 비트 값이 제 1 이씨씨 임계값보다 클 때 낮은 우선순위의 제 2 그룹으로 설정된다.
예시적인 실시예에 있어서, 상기 각 메모리 유니트의 제 2 에러 비트 값이 제 2 이씨씨 임계값보다 클 때 상기 각 메모리 유니트의 소거 이벤트 횟수에 관계없이 가장 낮은 우선순위의 제 3 그룹으로 상기 각 메모리 유니트가 설정된다.
예시적인 실시예에 있어서, 상기 각 메모리 유니트의 제 2 에러 비트 값이 상기 제 2 이씨씨 임계값보다 클 때 상기 제 2 그룹에 속하는 각 메모리 유니트가 상기 제 3 그룹으로 설정된다.
예시적인 실시예에 있어서, 상기 각 메모리 유니트의 소거 이벤트 값이 소거 임계값보다 클 때 상기 각 메모리 유니트가 상기 제 2 그룹으로 설정된다.
예시적인 실시예에 있어서, 상기 각 메모리 유니트는 소거 단위를 구성한다.
예시적인 실시예에 있어서, 상기 소거 이벤트 정보는 상기 각 메모리 유니트의 소거 이벤트 횟수를 포함하고, 상기 이씨씨 이벤트 정보는 상기 메모리 유니트들 중 하나 또는 그 보다 많은 유니트들의 에러 비트 값들을 포함한다.
예시적인 실시예에 있어서, 상기 소거 이벤트 정보는 상기 각 메모리 유니트의 소거 이벤트 횟수를 포함하고, 상기 이씨씨 이벤트 정보는 상기 각 메모리 유니트의 메모리 셀들로 구성된 행들 중 하나 또는 그 보다 많은 행들의 에러 비트 값들을 포함한다.
본 발명의 메모리 시스템에 따르면, 플래시 메모리 장치의 전체적인 신뢰성을 향상시킬 수 있다.
본 발명에 있어서, "메모리 유니트"라는 용어는 "메모리 블록", "섹터", 등과 동일한 의미로 사용될 것이다. 메모리 유니트는 복수의 메모리 셀들을 포함하며, 소거 단위를 구성할 것이다. 설명의 편의상, 본 발명의 예시적인 실시예들은 메모리 블록이라는 용어를 사용하여 설명될 것이다. 하지만, 메모리 블록이라는 용어가 특정 메모리 분야에 국한되지 않음은 이 분야의 통상적인 지식을 습득한 자들에게 자명하다.
도 1은 본 발명의 예시적인 실시예들에 따른 메모리 시스템을 개략적으로 보여주는 블록도이다.
도 1을 참조하면, 본 발명에 따른 메모리 시스템(100)은 메모리 컨트롤러(120)와 플래시 메모리 장치(140)를 포함할 것이다. 메모리 컨트롤러(120)는 외부(예를 들면, 호스트)로부터의 요청에 응답하여 플래시 메모리 장치(140)를 제어할 것이다. 메모리 컨트롤러(120)는 프로세싱 유니트(122), 에러 검사 정정(Error Checking and Correction) 블록(이하, ECC 블록이라 칭함) (124), 그리고 버퍼 메모리(126)를 포함할 것이다. 프로세싱 유니트(122)는 메모리 컨트롤러(120)의 전반적인 동작을 제어하도록 구성될 것이다. ECC 블록(124)은 플래시 메모리 장치(140)에 저장될 데이터로부터 ECC 데이터를 생성하도록 구성될 것이다. ECC 블록(124)은 플래시 메모리 장치(140)로부터 읽혀진 데이터가 에러가 있는 지의 여부를 판별하 도록 구성될 것이다. 에러가 검출될 때, ECC 블록(124)은 에러가 검출되었음을 그리고 N-비트 에러가 발생하였음을 알리는 정보를 프로세싱 유니트(122)로 제공할 것이다. 버퍼 메모리(126)는 플래시 메모리 장치(140)에 저장될 데이터를 임시 저장하는 데 그리고 플래시 메모리 장치(140)로부터 읽혀진 데이터를 임시 저장하는 데 사용될 것이다. 버퍼 메모리(126)에는 플래시 메모리 장치(140)를 관리하는 데 필요한 프로그램 및 맵핑 테이블들이 저장될 것이다.
플래시 메모리 장치(140)는 메모리 블록들(BLK0∼BLKm-1)의 어레이(142)와 읽기/쓰기 회로(144)를 포함할 것이다. 읽기/쓰기 회로(144)는 메모리 컨트롤러(120)로부터의 요청에 응답하여 선택된 메모리 블록(들)에 대한 읽기/쓰기 동작을 수행하도록 구성될 것이다. 여기서, 쓰기 동작은 프로그램 동작과 소거 동작을 포함할 것이다. 메모리 블록들(BLK0∼BLKm-1) 각각은, 비록 도면에는 도시되지 않았지만, 행들과 열들로 배열된 메모리 셀들을 포함할 것이다. 메모리 셀들 각각은 전하를 저장하는 트랜지스터 구조로 구성될 것이다.
본 발명에 따른 메모리 시스템(100)은 플래시 메모리 장치(140)의 메모리 블록들(BLK0∼BLKm-1)이 균등하게 사용되도록(또는, 플래시 메모리 장치(140)의 메모리 블록들(BLK0∼BLKm-1)에 대한 소거 이벤트(erase event)가 평균화되도록) 균등 사용 기법(wear-leveling technique)을 사용할 것이다. 특히, 본 발명에 따른 메모리 시스템(100)은 각 메모리 블록의 소거 이벤트 정보 뿐만 아니라 각 메모리 블록의 ECC 이벤트 정보에 의거한 균등 사용 기법을 사용할 것이다. 소거 이벤트 정보에 의거하여 각 메모리 블록에 대한 P/E 사이클링(Program/Erase cycleing)을 관리 하는 경우, 각 메모리 블록의 실질적인 열화 정도를 정확하게 반영하는 것이 어렵다. 좀 더 구체적으로 설명하면 다음과 같다.
예를 들면, 2개의 메모리 블록들의 소거 이벤트 횟수가 동일하더라도, 어느 하나의 메모리 블록(이하, 제 1 메모리 블록이라 칭함)에 속하는 메모리 셀들은 다른 하나의 메모리 블록(이하, 제 2 메모리 블록이라 칭함)에 속하는 메모리 셀들과 다른 특성을 가질 수 있다. 다시 말해서, 제 1 메모리 블록의 메모리 셀들의 소거 및 프로그램 특성들이 제 2 메모리 블록의 메모리 셀들의 소거 및 프로그램 특성들과 다를 것이다. 2개의 메모리 블록들의 소거 이벤트 횟수가 동일하더라도, 소거 및 프로그램 특성들이 다르기 때문에, 제 1 메모리 블록의 열화 정도는 제 2 메모리 블록의 열화 정도와 실질적으로 다를 것이다. 이는 소거 이벤트 횟수만을 이용하여 각 메모리 블록에 대한 P/E 사이클링(Program/Erase cycling)을 관리할 때 각 메모리 블록에 대한 열화 정도를 평균화시키는 것이 어렵다는 것을 의미한다. 따라서, 본 발명의 메모리 시스템(100)은 소거 이벤트 횟수 뿐만 아니라 각 메모리 블록의 열화 정도를 평균화시키기 위해서 소거 이벤트 정보와 함께 각 메모리 블록의 ECC 이벤트 정보를 이용하여 각 메모리 블록에 대한 P/E 사이클링을 관리할 것이다. 이는 이하 상세히 설명될 것이다.
본 발명에 따른 웨어-레벨링 기법에 의하면, 플래시 메모리 장치(140)의 메모리 블록들(BLK0∼BLKm-1)은 소거 이벤트 정보 및 ECC 이벤트 정보에 따라 복수의, 예를 들면, 3개의 그룹들(이하, "제 1 내지 제 3 그룹들"이라 칭함)으로 할당될 것이다. 여기서, 소거 이벤트 정보는 각 메모리 블록의 소거 이벤트 횟 수(ERS_CNT)를 포함할 것이다. 소거 이벤트 횟수(ERS_CNT)는 각 메모리 블록이 소거될 때 증가될 것이다. ECC 이벤트 정보는 각 메모리 블록의 에러 비트 값들을 포함할 것이다. 예시적인 실시예에 있어서, ECC 블록(124)이 4-비트 에러를 검출 및 정정할 수 있다고 가정하면, ECC 이벤트 정보는 각 메모리 블록에 대한 제 1 및 제 2 에러 비트 값들을 포함할 것이다. 제 1 에러 비트 값(EBN_2)은 ECC 이벤트가 생길 때 2개의 비트들이 정정됨을 나타내며, 각 메모리 블록에서 2-비트 에러가 정정될 때 증가될 것이다. 제 2 에러 비트 값(EBN_3)은 ECC 이벤트가 생길 때 3개의 비트들이 정정됨을 나타내며, 각 메모리 블록에서 3-비트 에러가 정정될 때 증가될 것이다. 이러한 조건들을 기준으로 메모리 블록들이 아래와 같이 제 1 내지 제 3 그룹들로 할당될 것이다. 이후 설명된 바와 같이, 제 1 그룹은 가장 높은 우선순위를 가지고, 제 3 그룹은 가장 낮은 우선선위를 가지며, 제 2 그룹은 제 1 그룹보다 낮은 우선순위를 갖는다.
설명에 앞서, 상술한 소거 이벤트 횟수(ERS_CNT)와 제 1 및 제 2 에러 비트 값들(EBN_2, EBN_3)은 테이블 형태(이하, 웨어-레벨링 테이블이라 칭함)로 프로세싱 유니트(122)에 의해서 관리될 것이다. 웨어-레벨링 테이블은 플래시 메모리 장치(140)에 저장되며, 파워-온시 버퍼 메모리(126)로 로드될 것이다. 선택된 메모리 블록에 대해서 소거 이벤트가 발생할 때, 프로세싱 유니트(122)는 선택된 메모리 블록에 대한 소거 이벤트 횟수가 증가하도록 웨어-레벨링 테이블을 갱신할 것이다. 선택된 메모리 블록으로부터 읽혀진 데이터로부터 에러가 검출될 때, ECC 블록(124)은 읽혀진 데이터의 에러를 정정하고 에러 비트 수를 프로세싱 유니트(122) 에 제공할 것이다. 프로세싱 유니트(122)는 제공된 에러 비트 수에 따라 선택된 메모리 블록에 대한 제 1 에러 비트 값(EBN_2) 또는 제 2 에러 비트 값(EBN_3)이 증가되도록 웨어-레벨링 테이블을 갱신할 것이다. 이러한 방식으로 소거 이벤트 횟수(ERS_CNT)와 제 1 및 제 2 에러 비트 값들(EBN_2, EBN_3)이 프로세싱 유니트(122)의 제어하에 관리될 것이다.
초기 상태에서는, 도 2에 도시된 바와 같이, 모든 메모리 블록들(BLK0∼BLKm-1)이 제 1 그룹(201)으로 할당될 것이다. 읽기, 소거, 그리고 프로그램 동작들이 수행됨에 따라, 각 메모리 블록에 대한 소거 이벤트 횟수(ERS_CNT)와 제 1 및 제 2 에러 비트 값들(EBN_2, EBN_3)이 증가될 것이다. 각 메모리 블록에 대한 소거 이벤트 횟수(ERS_CNT)와 제 1 및 제 2 에러 비트 값들(EBN_2, EBN_3)이 증가됨에 따라, 메모리 블록들(BLK0∼BLKm-1)은 선택적으로 제 2 그룹(202) 또는 제 3 그룹(203)으로 할당될 것이다. 제 1 그룹(201)에 속하는 메모리 블록들을 제 2 그룹(202)과 제 3 그룹(203)으로 할당하는 기준은 다음과 같다.
소거 이벤트 횟수(ERS_CNT)가 소거 임계값(T_ERS)을 초과하거나, 제 1 에러 비트 값(EBN_2)이 제 1 ECC 임계값(T_ECC1)을 초과할 때, 제 1 그룹(201)에 속하는 메모리 블록은 제 2 그룹(202)으로 할당될 것이다. 또는, 소거 이벤트 횟수(ERS_CNT)가 소거 임계값(T_ERS)을 초과하고 제 1 에러 비트 값(EBN_2)이 제 1 ECC 임계값(T_ECC1)을 초과할 때, 제 1 그룹(201)에 속하는 메모리 블록은 제 2 그룹(202)으로 할당될 수도 있다. 제 2 에러 비트 값(EBN_3)이 제 2 ECC 임계값(T_ECC2)을 초과할 때, 제 1 그룹(201)에 속하는 메모리 블록은 제 3 그룹(203) 으로 할당될 것이다. 제 2 에러 비트 값(EBN_3)이 제 2 ECC 임계값(T_ECC2)을 초과할 때, 제 2 그룹(202)에 속하는 메모리 블록은 제 3 그룹(203)으로 할당될 것이다. 외부(예를 들면, 호스트)로부터 프로그램 동작이 요청될 때, 제 2 및 제 3 그룹들(202, 203)에 할당된 메모리 블록들보다 제 1 그룹(201)에 속하는 메모리 블록들이 프로그램 동작을 위해서 선택될 것이다. 이러한 웨어-레벨링 방식을 통해 각 메모리 블록의 실질적인 열화 정보(또는 셀 특성)을 고려하여 소거 이벤트 횟수를 평준화시키는 것이 가능하다.
P/E 사이클링이 진행됨에 따라 선택된 메모리 블록에서 정정되어야 할 에러 비트들의 수가 증가한다는 것은 선택된 메모리 블록의 메모리 셀들의 열화 정도가 상대적으로 크다는 것을 의미한다. 그러한 까닭에, 제 3 그룹(203)에 속하는 메모리 블록들은 소거 이벤트 횟수가 최소화되도록 관리되어야 한다. 이를 통해서, 정정되어야 할 에러 비트들의 수가 많은 특정 메모리 블록이 빨리 마모되는 현상을 억제하는 것이 가능하다. 따라서, 플래시 메모리 장치(또는 메모리 시스템)의 전체적인 신뢰성을 향상시킬 수 있다. 또한, 특정 메모리 블록이 빨리 마모되는 현상을 억제하는 것이 가능하기 때문에, 특정 메모리 블록들이 빨리 마모될 때 대체될 메모리 블록들(여분의 메모리 블록들)의 수를 줄이는 것이 가능하다. 이는 실질적으로 사용되는 플래시 메모리 장치(140) (또는, 메모리 시스템)의 메모리 용량이 증가됨을 의미한다.
메모리 블록들이 3개의 그룹들로 할당되는 예를 이용하여 본 발명에 따른 메모리 시스템의 웨어-레벨링 기술이 설명되었다. 하지만, 그룹들의 수는 다양하게 변경될 수 있음은 이 분야의 통상적인 지식을 습득한 자들에게 자명하다. 예를 들면, ECC 블록(124)의 에러 정정 능력에 따라 에러 비트 값들의 수를 증가시키고 증가된 수에 대응하도록 그룹들을 결정하는 것이 가능하다.
예시적인 실시예에 있어서, 소거 이벤트 정보는 각 메모리 블록의 소거 이벤트 횟수를 포함하고, 이씨씨 이벤트 정보는 메모리 블록들 중 하나 또는 그 보다 많은 메모리 블록들의 에러 비트 값들을 포함할 수도 있다. 또는, 이씨씨 이벤트 정보는 각 메모리 블록의 메모리 셀들로 구성된 행들 중 하나 또는 그 보다 많은 행들의 에러 비트 값들을 포함할 수도 있다. 여기서, 각 행은 페이지, 페이지들, 워드 라인, 등을 포함할 것이다.
도 3은 본 발명에 따른 메모리 시스템의 웨어 레벨링 방법을 개략적으로 설명하기 위한 흐름도이다.
본 발명에 따른 메모리 시스템은 소거 단위를 구성하는 메모리 유니트로서 메모리 블록들을 갖는 플래시 메모리 장치를 포함하며, 프로그램/소거 사이클링에 따른 각 메모리 유니트/블록의 소거 이벤트 정보 및 이씨씨 이벤트 정보를 웨어-레벨링 테이블에 저장하는 단계(301)와; 그리고 웨어-레벨링 테이블에 저장된 각 메모리 유니트/블록의 소거 이벤트 정보 및 이씨씨 이벤트 정보에 의거하여 각 메모리 유니트/블록에 대한 웨어-레벨링 동작을 수행하는 단계(302)를 포함하는 웨어 레벨링 방법을 수행하도록 구성될 것이다.
이러한 웨어 레벨링 방법에 의하면, 소거 이벤트 정보는 각 메모리 유니트/블록의 소거 이벤트 횟수를 포함하고, 이씨씨 이벤트 정보는 각 메모리 유니트/블 록의 에러 비트 값들을 포함한다. 메모리 유니트들/블록들은 초기 상태에서 가장 높은 우선순위의 제 1 그룹으로 설정되고, 에러 비트 값들은 2-비트 에러의 이벤트 횟수를 나타내는 제 1 에러 비트 값과 3-비트 에러의 이벤트 횟수를 나타내는 제 2 에러 비트 값을 포함할 것이다. 각 메모리 유니트/블록은 각 메모리 유니트/블록의 제 1 에러 비트 값이 제 1 이씨씨 임계값보다 클 때 낮은 우선순위의 제 2 그룹으로 설정될 것이다. 각 메모리 유니트/블록의 제 2 에러 비트 값이 제 2 이씨씨 임계값보다 클 때 각 메모리 유니트/블록의 소거 이벤트 횟수에 관계없이 가장 낮은 우선순위의 제 3 그룹으로 각 메모리 유니트/블록이 설정될 것이다. 각 메모리 유니트/블록의 제 2 에러 비트 값이 제 2 이씨씨 임계값보다 클 때 제 2 그룹에 속하는 각 메모리 유니트/블록이 제 3 그룹으로 설정될 것이다. 각 메모리 유니트/블록의 소거 이벤트 값이 소거 임계값보다 클 때 각 메모리 유니트/블록이 제 2 그룹으로 설정될 것이다.
본 발명의 웨어 레벨링 방법의 또 다른 예시적인 실시예에 있어서, 소거 이벤트 정보는 각 메모리 유니트/블록의 소거 이벤트 횟수를 포함하고, 이씨씨 이벤트 정보는 메모리 유니트들/블록들 중 하나 또는 그 보다 많은 유니트들/블록들의 에러 비트 값들을 포함할 것이다. 본 발명의 웨어 레벨링 방법의 또 다른 예시적인 실시예에 있어서, 소거 이벤트 정보는 각 메모리 유니트/블록의 소거 이벤트 횟수를 포함하고, 이씨씨 이벤트 정보는 각 메모리 유니트/블록의 메모리 셀들로 구성된 행들 중 하나 또는 그 보다 많은 행들의 에러 비트 값들을 포함할 것이다.
플래시 메모리 장치는 전력이 차단되어도 저장된 데이터를 유지할 수 있는 불 휘발성 메모리 장치이다. 셀룰러 폰, PDA 디지털 카메라, 포터블 게임 콘솔, 그리고 MP3P와 같은 모바일 장치들의 사용 증가에 따라, 플래시 메모리 장치는 데이터 스토리지 뿐만 아니라 코드 스토리지로서 보다 널리 사용된다. 플래시 메모리 장치는, 또한, HDTV, DVD, 라우터, 그리고 GPS와 같은 홈 어플리케이션에 사용될 수 있다. 본 발명에 따른 메모리 시스템을 포함한 컴퓨팅 시스템이 도 4에 개략적으로 도시되어 있다. 본 발명에 따른 컴퓨팅 시스템은 버스(2001)에 전기적으로 연결된 마이크로프로세서(2100), 사용자 인터페이스(2200), 베이스밴드 칩셋(baseband chipset)과 같은 모뎀(2300), 메모리 컨트롤러(2400), 그리고 플래시 메모리 장치(2500)를 포함한다. 메모리 컨트롤러(2400)와 플래시 메모리 장치(2500)는 메모리 시스템을 구성하며, 도 1에 도시된 것과 실질적으로 동일하게 구성될 것이다. 플래시 메모리 장치(2500)에는 마이크로프로세서(2100)에 의해서 처리된/처리될 N-비트 데이터(N은 1 또는 그 보다 큰 정수)가 메모리 컨트롤러(2400)를 통해 저장될 것이다. 본 발명에 따른 컴퓨팅 시스템이 모바일 장치인 경우, 컴퓨팅 시스템의 동작 전압을 공급하기 위한 배터리(2300)가 추가적으로 제공될 것이다. 비록 도면에는 도시되지 않았지만, 본 발명에 따른 컴퓨팅 시스템에는 응용 칩셋(application chipset), 카메라 이미지 프로세서(Camera Image Processor: CIS), 모바일 디램, 등이 더 제공될 수 있음은 이 분야의 통상적인 지식을 습득한 자들에게 자명하다. 플래시 메모리 장치와 메모리 컨트롤러가 메모리 시스템으로서 메모리 카드 형태로 구성될 수 있음은 이 분야의 통상적인 지식을 습득한 자들에게 자명하다. 또는, 메모리 컨트롤러와 플래시 메모리 장치는, 예를 들 면, 데이터를 저장하는 데 불 휘발성 메모리를 사용하는 SSD(Solid State Drive/Disk)를 구성할 수 있다.
본 발명에 따른 플래시 메모리 장치 그리고/또는 메모리 컨트롤러는 다양한 형태들의 패키지를 이용하여 실장될 수 있다. 예를 들면, 본 발명에 따른 플래시 메모리 장치 그리고/또는 메모리 컨트롤러는 PoP(Package on Package), Ball grid arrays(BGAs), Chip scale packages(CSPs), Plastic Leaded Chip Carrier(PLCC), Plastic Dual In-Line Package(PDIP), Die in Waffle Pack, Die in Wafer Form, Chip On Board(COB), Ceramic Dual In-Line Package(CERDIP), Plastic Metric Quad Flat Pack(MQFP), Thin Quad Flatpack(TQFP), Small Outline(SOIC), Shrink Small Outline Package(SSOP), Thin Small Outline(TSOP), Thin Quad Flatpack(TQFP), System In Package(SIP), Multi Chip Package(MCP), Wafer-level Fabricated Package(WFP), Wafer-Level Processed Stack Package(WSP), 등과 같은 패키지들을 이용하여 실장될 수 있다.
앞의 일반적인 설명 및 다음의 상세한 설명 모두 예시적이라는 것이 이해되어야 하며, 청구된 발명의 부가적인 설명이 제공되는 것으로 여겨져야 한다.
참조 부호들이 본 발명의 바람직한 실시 예들에 상세히 표시되어 있으며, 그것의 예들이 참조 도면들에 표시되어 있다. 가능한 어떤 경우에도, 동일한 참조 번호들이 동일한 또는 유사한 부분을 참조하기 위해서 설명 및 도면들에 사용된다.
아래에서, 메모리 시스템이 본 발명의 특징 및 기능을 설명하기 위한 한 예로서 사용된다. 하지만, 이 기술 분야에 정통한 사람은 여기에 기재된 내용에 따라 본 발명의 다른 이점들 및 성능을 쉽게 이해할 수 있을 것이다. 본 발명은 다른 실시 예들을 통해 또한, 구현되거나 적용될 수 있을 것이다. 게다가, 상세한 설명은 본 발명의 범위, 기술적 사상 그리고 다른 목적으로부터 상당히 벗어나지 않고 관점 및 응용에 따라 수정되거나 변경될 수 있다.
도 1은 본 발명에 따른 메모리 시스템을 개략적으로 보여주는 블록도이다.
도 2는 본 발명에 따른 웨어-레벨링 기법을 설명하기 위한 도면이다.
도 3은 본 발명에 따른 메모리 시스템의 웨어 레벨링 방법을 개략적으로 설명하기 위한 흐름도이다.
도 4는 본 발명에 따른 메모리 시스템을 포함한 컴퓨팅 시스템을 보여주는 블록도이다.

Claims (22)

  1. 각각이 복수의 메모리 셀들로 구성된 메모리 유니트들을 갖는 플래시 메모리 장치와; 그리고
    상기 플래시 메모리 장치를 제어하도록 구성된 메모리 컨트롤러를 포함하며,
    상기 메모리 컨트롤러는 상기 각 메모리 유니트의 소거 이벤트 횟수 및 에러 비트 값에 의거하여 상기 메모리 유니트들에 대한 웨어-레벨링 동작을 수행하되,
    상기 에러 비트 값들은 2-비트 에러의 이벤트 횟수를 나타내는 제 1 에러 비트 값과, 3-비트 에러의 이벤트 횟수를 나타내는 제 2 에러 비트 값을 포함하고,
    상기 메모리 컨트롤러는 초기 상태에서 가장 높은 우선순위의 제 1 그룹으로 상기 메모리 유니트들을 설정하고, 상기 각 메모리 유니트의 제 1 에러 비트 값이 제 1 이씨씨 임계값보다 클 때 상기 제 1 그룹보다 낮은 우선순위의 제 2 그룹으로 상기 각 메모리 유니트를 설정하는 메모리 시스템.
  2. 삭제
  3. 삭제
  4. 삭제
  5. 제 1 항에 있어서,
    상기 메모리 컨트롤러는 상기 각 메모리 유니트의 제 2 에러 비트 값이 제 2 이씨씨 임계값보다 클 때 상기 각 메모리 유니트의 소거 이벤트 횟수에 관계없이 가장 낮은 우선순위의 제 3 그룹으로 상기 각 메모리 유니트를 설정하는 메모리 시스템.
  6. 제 5 항에 있어서,
    상기 메모리 컨트롤러는 상기 각 메모리 유니트의 제 2 에러 비트 값이 상기 제 2 이씨씨 임계값보다 클 때 상기 제 2 그룹에 속하는 각 메모리 유니트를 상기 제 3 그룹으로 설정하는 메모리 시스템.
  7. 제 1 항에 있어서,
    상기 메모리 컨트롤러는 상기 각 메모리 유니트의 소거 이벤트 값이 소거 임계값보다 클 때 상기 제 2 그룹으로 상기 각 메모리 유니트를 설정하는 메모리 시스템.
  8. 제 1 항에 있어서,
    상기 플래시 메모리 장치 및 상기 메모리 컨트롤러는 메모리 카드 및 에스에스디 중 어느 하나를 구성하는 메모리 시스템.
  9. 제 1 항에 있어서,
    상기 메모리 컨트롤러는
    프로세싱 유니트와;
    상기 플래시 메모리 장치의 선택된 메모리 유니트로부터 읽혀진 데이터를 임시 저장하는 버퍼 메모리와; 그리고
    상기 읽혀진 데이터에 대한 에러 검출 및 정정 동작을 수행하는 이씨씨 블록을 포함하며,
    상기 이씨씨 블록은 에러 검출시 에러 비트 값을 상기 프로세싱 유니트로 전송하고, 상기 프로세싱 유니트는 상기 에러 비트 값에 따라 상기 선택된 메모리 유니트의 에러 비트 값을 갱신하는 메모리 시스템.
  10. 제 1 항에 있어서,
    상기 각 메모리 유니트는 소거 단위를 구성하는 메모리 시스템.
  11. 제 1 항에 있어서,
    상기 에러 비트 값은 상기 메모리 유니트들 중 하나 또는 그 보다 많은 유니트들의 에러 비트 값들을 포함하는 메모리 시스템.
  12. 제 1 항에 있어서,
    상기 에러 비트 값은 상기 각 메모리 유니트의 메모리 셀들로 구성된 행들 중 하나 또는 그 보다 많은 행들의 에러 비트 값들을 포함하는 메모리 시스템.
  13. 메모리 유니트들을 갖는 플래시 메모리 장치를 포함한 메모리 시스템의 웨어-레벨링 방법에 있어서:
    프로그램/소거 사이클링에 따른 상기 각 메모리 유니트의 소거 이벤트 횟수 및 에러 비트 값을 웨어-레벨링 테이블에 저장하고,
    상기 웨어-레벨링 테이블에 저장된 상기 각 메모리 유니트의 소거 이벤트 횟수 및 에러 비트 값에 의거하여 상기 각 메모리 유니트에 대한 웨어-레벨링 동작을 수행하는 것을 포함하되,
    상기 메모리 유니트들은 초기 상태에서 가장 높은 우선순위의 제 1 그룹으로 설정되고, 상기 에러 비트 값들은 2-비트 에러의 이벤트 횟수를 나타내는 제 1 에러 비트 값과 3-비트 에러의 이벤트 횟수를 나타내는 제 2 에러 비트 값을 포함하고, 상기 각 메모리 유니트들는 상기 각 메모리 유니트의 제 1 에러 비트 값이 제 1 이씨씨 임계값보다 클 때 낮은 우선순위의 제 2 그룹으로 설정되는 것을 특징으로 하는 메모리 시스템의 웨어-레벨링 방법.
  14. 삭제
  15. 삭제
  16. 삭제
  17. 제 13 항에 있어서,
    상기 각 메모리 유니트의 제 2 에러 비트 값이 제 2 이씨씨 임계값보다 클 때 상기 각 메모리 유니트의 소거 이벤트 횟수에 관계없이 가장 낮은 우선순위의 제 3 그룹으로 상기 각 메모리 유니트가 설정되는 것을 특징으로 하는 메모리 시스템의 웨어-레벨링 방법.
  18. 제 17 항에 있어서,
    상기 각 메모리 유니트의 제 2 에러 비트 값이 상기 제 2 이씨씨 임계값보다 클 때 상기 제 2 그룹에 속하는 각 메모리 유니트가 상기 제 3 그룹으로 설정되는 것을 특징으로 하는 메모리 시스템의 웨어-레벨링 방법.
  19. 제 13 항에 있어서,
    상기 각 메모리 유니트의 소거 이벤트 횟수가 소거 임계값보다 클 때 상기 각 메모리 유니트가 상기 제 2 그룹으로 설정되는 것을 특징으로 하는 메모리 시스템의 웨어-레벨링 방법.
  20. 제 13 항에 있어서,
    상기 각 메모리 유니트는 소거 단위를 구성하는 것을 특징으로 하는 메모리 시스템의 웨어-레벨링 방법.
  21. 삭제
  22. 삭제
KR1020070093173A 2007-09-13 2007-09-13 향상된 신뢰성을 갖는 메모리 시스템 및 그것의웨어-레벨링 기법 KR101413736B1 (ko)

Priority Applications (5)

Application Number Priority Date Filing Date Title
KR1020070093173A KR101413736B1 (ko) 2007-09-13 2007-09-13 향상된 신뢰성을 갖는 메모리 시스템 및 그것의웨어-레벨링 기법
US12/230,769 US9229805B2 (en) 2007-09-13 2008-09-04 Memory system and wear-leveling method thereof based on erasures and error correction data
JP2008232262A JP5296464B2 (ja) 2007-09-13 2008-09-10 向上した信頼性を有するメモリシステム及びそのウェアレベリング方法
CN200810177883.8A CN101458957B (zh) 2007-09-13 2008-09-12 存储器系统及其磨损平衡方法
US14/273,901 US9251015B2 (en) 2007-09-13 2014-05-09 Memory system providing wear-leveling by allocating memory blocks among groups

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020070093173A KR101413736B1 (ko) 2007-09-13 2007-09-13 향상된 신뢰성을 갖는 메모리 시스템 및 그것의웨어-레벨링 기법

Publications (2)

Publication Number Publication Date
KR20090027952A KR20090027952A (ko) 2009-03-18
KR101413736B1 true KR101413736B1 (ko) 2014-07-02

Family

ID=40455877

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070093173A KR101413736B1 (ko) 2007-09-13 2007-09-13 향상된 신뢰성을 갖는 메모리 시스템 및 그것의웨어-레벨링 기법

Country Status (4)

Country Link
US (2) US9229805B2 (ko)
JP (1) JP5296464B2 (ko)
KR (1) KR101413736B1 (ko)
CN (1) CN101458957B (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9792058B2 (en) 2015-07-15 2017-10-17 SK Hynix Inc. System and method of selecting source and destination blocks for wear-leveling

Families Citing this family (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI362044B (en) * 2007-11-09 2012-04-11 Transcend Information Inc Storage apparatus and method for accessing data and for managing memory block
US20090217281A1 (en) * 2008-02-22 2009-08-27 John M Borkenhagen Adaptable Redundant Bit Steering for DRAM Memory Failures
US8843691B2 (en) * 2008-06-25 2014-09-23 Stec, Inc. Prioritized erasure of data blocks in a flash storage device
KR100974954B1 (ko) * 2008-06-26 2010-08-10 에스디씨마이크로 주식회사 플래시 메모리를 이용한 저장장치에서의 읽기 웨어 레벨링방법
TWI364661B (en) * 2008-09-25 2012-05-21 Silicon Motion Inc Access methods for a flash memory and memory devices
US9170897B2 (en) 2012-05-29 2015-10-27 SanDisk Technologies, Inc. Apparatus, system, and method for managing solid-state storage reliability
US9063874B2 (en) * 2008-11-10 2015-06-23 SanDisk Technologies, Inc. Apparatus, system, and method for wear management
US20100125696A1 (en) * 2008-11-17 2010-05-20 Prasanth Kumar Memory Controller For Controlling The Wear In A Non-volatile Memory Device And A Method Of Operation Therefor
US8458562B1 (en) * 2008-12-30 2013-06-04 Micron Technology, Inc. Secondary memory element for non-volatile memory
KR101038991B1 (ko) * 2009-03-10 2011-06-03 주식회사 하이닉스반도체 메모리 영역의 균등한 사용을 위한 반도체 스토리지 시스템및 그 제어 방법
KR101594124B1 (ko) * 2009-04-09 2016-02-16 삼성전자주식회사 비휘발성 램, 이를 포함하는 솔리드 스테이트 드라이브, 및 이를 포함하는 컴퓨터 시스템
US8370712B2 (en) * 2009-07-23 2013-02-05 International Business Machines Corporation Memory management in a non-volatile solid state memory device
JP2011028537A (ja) 2009-07-27 2011-02-10 Buffalo Inc 外部記憶装置へのアクセスを高速化する方法および外部記憶システム
KR101097438B1 (ko) * 2009-10-29 2011-12-23 주식회사 하이닉스반도체 웨어 레벨링을 유동적으로 제어하는 반도체 스토리지 시스템 및 그 제어 방법
KR101090394B1 (ko) * 2009-12-24 2011-12-07 주식회사 하이닉스반도체 예비 영역을 유동적으로 관리하는 반도체 스토리지 시스템 및 그 제어 방법
JP2011198433A (ja) * 2010-03-23 2011-10-06 Toshiba Corp メモリシステム
US8713066B1 (en) 2010-03-29 2014-04-29 Western Digital Technologies, Inc. Managing wear leveling and garbage collection operations in a solid-state memory using linked lists
US8612804B1 (en) 2010-09-30 2013-12-17 Western Digital Technologies, Inc. System and method for improving wear-leveling performance in solid-state memory
JP2012155806A (ja) 2011-01-28 2012-08-16 Toshiba Corp 不揮発性半導体記憶装置
US8898373B1 (en) 2011-06-29 2014-11-25 Western Digital Technologies, Inc. System and method for improving wear-leveling performance in solid-state memory
CN103077096A (zh) * 2012-12-31 2013-05-01 记忆科技(深圳)有限公司 数据纠错系统、固态硬盘及数据纠错方法
CN103092770B (zh) * 2013-01-18 2015-08-12 山东华芯半导体有限公司 一种磨损均衡处理时减少内存开销的方法
US9632926B1 (en) 2013-05-16 2017-04-25 Western Digital Technologies, Inc. Memory unit assignment and selection for internal memory operations in data storage systems
US9477546B2 (en) * 2013-06-21 2016-10-25 Marvell World Trade Ltd. Methods and apparatus for optimizing lifespan of a storage device
KR102085127B1 (ko) 2013-11-13 2020-04-14 삼성전자주식회사 메모리 컨트롤러의 구동 방법 및 메모리 컨트롤러에 의해서 제어되는 비휘발성 메모리 장치
US9082512B1 (en) * 2014-08-07 2015-07-14 Pure Storage, Inc. Die-level monitoring in a storage cluster
US10552043B2 (en) * 2014-09-09 2020-02-04 Toshiba Memory Corporation Memory system
TWI575530B (zh) * 2015-08-06 2017-03-21 慧榮科技股份有限公司 存取快閃記憶體模組的方法及相關的快閃記憶體控制器與記憶裝置
US9646709B2 (en) * 2015-09-11 2017-05-09 Sandisk Technologies, Llc Proxy wordline stress for read disturb detection
KR102435181B1 (ko) 2015-11-16 2022-08-23 삼성전자주식회사 반도체 메모리 장치, 이를 포함하는 메모리 시스템 및 메모리 시스템의 동작 방법
US10185666B2 (en) * 2015-12-15 2019-01-22 Facebook, Inc. Item-wise simulation in a block cache where data eviction places data into comparable score in comparable section in the block cache
TWI591635B (zh) * 2016-02-05 2017-07-11 群聯電子股份有限公司 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置
US9910606B2 (en) 2016-03-23 2018-03-06 Seagate Technology Llc End of life extension of solid state memory
US9672905B1 (en) 2016-07-22 2017-06-06 Pure Storage, Inc. Optimize data protection layouts based on distributed flash wear leveling
KR101909929B1 (ko) * 2016-10-14 2018-10-19 한국외국어대학교 연구산학협력단 가상 낸드플래시 구현 방법 및 이를 기록한 컴퓨터 프로그램
US10482983B2 (en) * 2016-12-22 2019-11-19 Seagate Technology Llc Read disturb detection based on dynamic bit error rate estimation
KR20180102241A (ko) * 2017-03-06 2018-09-17 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작방법
KR102559549B1 (ko) * 2018-09-12 2023-07-26 에스케이하이닉스 주식회사 메모리 시스템에서의 블록 상태를 관리하는 방법 및 장치
CN111897682A (zh) * 2019-05-05 2020-11-06 北京兆易创新科技股份有限公司 一种测试结果记录方法、装置、电子设备及存储介质
CN110473583A (zh) * 2019-08-15 2019-11-19 山东华芯半导体有限公司 一种NAND Flash的操作检测方法
US11275652B1 (en) * 2020-09-01 2022-03-15 EMC IP Holding Company LLC Storing erasure coded data based on reliability of storage devices
KR20220049397A (ko) * 2020-10-14 2022-04-21 삼성전자주식회사 메모리 장치, 이를 포함하는 스토리지 장치 및 스토리지 장치의 동작 방법
CN112700813B (zh) * 2020-12-25 2023-12-22 北京浪潮数据技术有限公司 一种基于磨损状态的nand控制方法、装置及设备

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003308242A (ja) 2002-04-16 2003-10-31 Hitachi Ltd 半導体記憶装置及びその制御方法
JP2005528696A (ja) 2002-06-03 2005-09-22 ハネウェル・インターナショナル・インコーポレーテッド フラッシュメモリ管理のシステムおよび方法

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2708946B1 (fr) 1993-08-11 1995-12-08 Spie Fondations Procédé de mise en place d'un joint d'étanchéité entre deux panneaux d'une paroi moulée et dispositif pour la mise en Óoeuvre de ce procédé.
US5475693A (en) * 1994-12-27 1995-12-12 Intel Corporation Error management processes for flash EEPROM memory arrays
JP3199021B2 (ja) 1998-03-19 2001-08-13 日本電気株式会社 半導体メモリ装置、該半導体メモリ装置の検査方法及び使用方法
JP4081843B2 (ja) 1998-03-25 2008-04-30 松下電器産業株式会社 メモリ制御装置
JP3242890B2 (ja) 1998-12-16 2001-12-25 株式会社ハギワラシスコム 記憶装置
US20050204187A1 (en) * 2004-03-11 2005-09-15 Lee Charles C. System and method for managing blocks in flash memory
KR100644602B1 (ko) 2000-10-11 2006-11-10 삼성전자주식회사 플래시메모리를 위한 재사상 제어방법 및 그에 따른플래시 메모리의 구조
US7168010B2 (en) * 2002-08-12 2007-01-23 Intel Corporation Various methods and apparatuses to track failing memory locations to enable implementations for invalidating repeatedly failing memory locations
US7035967B2 (en) 2002-10-28 2006-04-25 Sandisk Corporation Maintaining an average erase count in a non-volatile storage system
US8412879B2 (en) 2002-10-28 2013-04-02 Sandisk Technologies Inc. Hybrid implementation for error correction codes within a non-volatile memory system
JP4299558B2 (ja) 2003-03-17 2009-07-22 株式会社ルネサステクノロジ 情報記憶装置および情報処理システム
KR100963855B1 (ko) 2003-07-30 2010-06-16 샌디스크 아이엘 엘티디 불휘발성 메모리 디바이스에서 프로그래밍 데이터의 신뢰성및 성능을 최적화하는 방법 및 시스템
US7493534B2 (en) * 2003-08-29 2009-02-17 Hewlett-Packard Development Company, L.P. Memory error ranking
JP4357304B2 (ja) 2004-01-09 2009-11-04 株式会社バッファロー 外部記憶装置
JP4261462B2 (ja) 2004-11-05 2009-04-30 株式会社東芝 不揮発性メモリシステム
JP2006221334A (ja) 2005-02-09 2006-08-24 Tdk Corp メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
KR100624973B1 (ko) 2005-06-29 2006-09-15 박상원 플래시 메모리의 효율적인 소거 횟수 평준화방법(k-평준화)
US7523013B2 (en) 2006-05-15 2009-04-21 Sandisk Corporation Methods of end of life calculation for non-volatile memories
US7506098B2 (en) * 2006-06-08 2009-03-17 Bitmicro Networks, Inc. Optimized placement policy for solid state storage devices
US8081187B2 (en) * 2006-11-22 2011-12-20 Autodesk, Inc. Pencil strokes for vector based drawing elements
WO2009032928A2 (en) 2007-09-05 2009-03-12 Rambus Inc. Method and apparatus to repair defects in nonvolatile semiconductor memory devices
DE112006004187B4 (de) 2006-12-27 2015-09-10 Intel Corporation Verfahren, nicht-flüchtige Speichervorrichtung und Computersystem zum initiativen Abnutzungsausgleich für einen nicht-flüchtigen Speicher
US9063181B2 (en) * 2006-12-29 2015-06-23 Electro Industries/Gauge Tech Memory management for an intelligent electronic device
US7877666B2 (en) * 2006-12-30 2011-01-25 Intel Corporation Tracking health of integrated circuit structures
JP2008287404A (ja) 2007-05-16 2008-11-27 Hitachi Ltd 読み出しによる非アクセスメモリセルのデータ破壊を検出及び回復する装置、及びその方法
JP5216244B2 (ja) 2007-05-31 2013-06-19 株式会社東芝 データリフレッシュ装置、及びデータリフレッシュ方法
US7765426B2 (en) * 2007-06-07 2010-07-27 Micron Technology, Inc. Emerging bad block detection
US7849275B2 (en) * 2007-11-19 2010-12-07 Sandforce, Inc. System, method and a computer program product for writing data to different storage devices based on write frequency

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003308242A (ja) 2002-04-16 2003-10-31 Hitachi Ltd 半導体記憶装置及びその制御方法
JP2005528696A (ja) 2002-06-03 2005-09-22 ハネウェル・インターナショナル・インコーポレーテッド フラッシュメモリ管理のシステムおよび方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9792058B2 (en) 2015-07-15 2017-10-17 SK Hynix Inc. System and method of selecting source and destination blocks for wear-leveling

Also Published As

Publication number Publication date
US20090077429A1 (en) 2009-03-19
CN101458957B (zh) 2016-08-03
US20140245109A1 (en) 2014-08-28
CN101458957A (zh) 2009-06-17
JP2009070379A (ja) 2009-04-02
US9229805B2 (en) 2016-01-05
KR20090027952A (ko) 2009-03-18
JP5296464B2 (ja) 2013-09-25
US9251015B2 (en) 2016-02-02

Similar Documents

Publication Publication Date Title
KR101413736B1 (ko) 향상된 신뢰성을 갖는 메모리 시스템 및 그것의웨어-레벨링 기법
KR101678909B1 (ko) 플래시 메모리 시스템 및 그것의 소거 리프레쉬 방법
KR101498669B1 (ko) 반도체 메모리 시스템 및 그것의 액세스 방법
US7757153B2 (en) Multi-bit memory device and memory system
US8582360B2 (en) Read method for nonvolatile memory device, and data storage system using the same
US8484533B2 (en) MLC self-RAID flash data protection scheme
US7843732B2 (en) Methods of operating multi-bit flash memory devices and related systems
US8239747B2 (en) Nonvolatile memory devices that utilize error correction estimates to increase reliability of error detection and correction operations
KR101517185B1 (ko) 메모리 시스템 및 그것의 동작 방법
US7903459B2 (en) Memory devices and methods for determining data of bit layers based on detected error bits
US8681569B2 (en) Method for reading data stored in a flash memory according to a threshold voltage distribution and memory controller and system thereof
US7697359B2 (en) Flash memory device and refresh method thereof
US11133071B2 (en) Charge loss failure mitigation
KR20100010746A (ko) 읽기 전압 레벨이 설정가능한 플래시 메모리 시스템 및읽기 전압 레벨의 설정방법
CN115910158A (zh) 存储装置
US20230367487A1 (en) Memory system
US20200019461A1 (en) Memory system and method for read operation of memory system
KR100764748B1 (ko) 향상된 리프레쉬 기능을 갖는 플래시 메모리 장치
CN111383694A (zh) 非易失性存储器及其操作方法
CN111383703B (zh) 非易失性存储器及其操作方法

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20190530

Year of fee payment: 6