KR20090027952A - 향상된 신뢰성을 갖는 메모리 시스템 및 그것의웨어-레벨링 기법 - Google Patents
향상된 신뢰성을 갖는 메모리 시스템 및 그것의웨어-레벨링 기법 Download PDFInfo
- Publication number
- KR20090027952A KR20090027952A KR1020070093173A KR20070093173A KR20090027952A KR 20090027952 A KR20090027952 A KR 20090027952A KR 1020070093173 A KR1020070093173 A KR 1020070093173A KR 20070093173 A KR20070093173 A KR 20070093173A KR 20090027952 A KR20090027952 A KR 20090027952A
- Authority
- KR
- South Korea
- Prior art keywords
- memory
- erase
- event information
- memory unit
- error bit
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/1658—Data re-synchronization of a redundant component, or initial sync of replacement, additional or spare unit
-
- 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
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding 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/1072—Adding 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
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
- G11C16/349—Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles
- G11C16/3495—Circuits 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
-
- 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/10—Providing a specific technical effect
- G06F2212/1032—Reliability improvement, data loss prevention, degraded operation etc
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0616—Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
- G11C16/349—Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Read Only Memory (AREA)
- Memory System (AREA)
Abstract
본 발명의 예시적인 실시예들은 메모리 유니트들을 갖는 플래시 메모리 장치와; 그리고 상기 플래시 메모리 장치를 제어하도록 구성된 메모리 컨트롤러를 포함하며, 상기 메모리 컨트롤러는 상기 각 메모리 유니트의 소거 이벤트 정보 및 이씨씨 이벤트 정보에 의거하여 상기 메모리 유니트들에 대한 웨어-레벨링 동작을 수행하는 메모리 시스템을 제공한다.
Description
본 발명은 저장 시스템에 관한 것으로, 좀 더 구체적으로는 플래시 메모리 장치를 이용한 메모리 시스템에 관한 것이다.
플래시 메모리 장치는 복수의 메모리 영역들이 한번의 프로그램 동작으로 소거 또는 프로그램되는 일종의 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 그룹으로 상기 메모리 유니트들을 설정하고, 상기 에러 비트 값들은 2-비트 에러의 이벤트 횟수를 나타내는 제 1 에러 비트 값과 3-비트 에러의 이벤트 횟수를 나타내는 제 2 에러 비트 값을 포함하는 메모리 시스템.
- 제 3 항에 있어서,상기 메모리 컨트롤러는 상기 각 메모리 유니트의 제 1 에러 비트 값이 제 1 이씨씨 임계값보다 클 때 낮은 우선순위의 제 2 그룹으로 상기 각 메모리 유니트를 설정하는 메모리 시스템.
- 제 4 항에 있어서,상기 메모리 컨트롤러는 상기 각 메모리 유니트의 제 2 에러 비트 값이 제 2 이씨씨 임계값보다 클 때 상기 각 메모리 유니트의 소거 이벤트 횟수에 관계없이 가장 낮은 우선순위의 제 3 그룹으로 상기 각 메모리 유니트를 설정하는 메모리 시스템.
- 제 5 항에 있어서,상기 메모리 컨트롤러는 상기 각 메모리 유니트의 제 2 에러 비트 값이 상기 제 2 이씨씨 임계값보다 클 때 상기 제 2 그룹에 속하는 각 메모리 유니트를 상기 제 3 그룹으로 설정하는 메모리 시스템.
- 제 4 항에 있어서,상기 메모리 컨트롤러는 상기 각 메모리 유니트의 소거 이벤트 값이 소거 임계값보다 클 때 상기 제 2 그룹으로 상기 각 메모리 유니트를 설정하는 메모리 시스템.
- 제 1 항에 있어서,상기 플래시 메모리 장치 및 상기 메모리 컨트롤러는 메모리 카드 및 에스에스디 중 어느 하나를 구성하는 메모리 시스템.
- 제 1 항에 있어서,상기 메모리 컨트롤러는프로세싱 유니트와;상기 플래시 메모리 장치의 선택된 메모리 유니트로부터 읽혀진 데이터를 임시 저장하는 버퍼 메모리와; 그리고상기 읽혀진 데이터에 대한 에러 검출 및 정정 동작을 수행하는 이씨씨 블록을 포함하며,상기 이씨씨 블록은 에러 검출시 에러 비트 수를 나타내는 이씨씨 이벤트 정보를 상기 프로세싱 유니트로 전송하고, 상기 프로세싱 유니트는 상기 이씨씨 이벤트 정보에 따라 상기 선택된 메모리 유니트의 에러 비트 값을 갱신하는 메모리 시스템.
- 제 1 항에 있어서,상기 각 메모리 유니트는 소거 단위를 구성하는 메모리 시스템.
- 제 1 항에 있어서,상기 소거 이벤트 정보는 상기 각 메모리 유니트의 소거 이벤트 횟수를 포함하고, 상기 이씨씨 이벤트 정보는 상기 메모리 유니트들 중 하나 또는 그 보다 많은 유니트들의 에러 비트 값들을 포함하는 메모리 시스템.
- 제 1 항에 있어서,상기 소거 이벤트 정보는 상기 각 메모리 유니트의 소거 이벤트 횟수를 포함하고, 상기 이씨씨 이벤트 정보는 상기 각 메모리 유니트의 메모리 셀들로 구성된 행들 중 하나 또는 그 보다 많은 행들의 에러 비트 값들을 포함하는 메모리 시스템.
- 메모리 유니트들을 갖는 플래시 메모리 장치를 포함한 메모리 시스템의 웨어-레벨링 방법에 있어서:프로그램/소거 사이클링에 따른 상기 각 메모리 유니트의 소거 이벤트 정보 및 이씨씨 이벤트 정보를 웨어-레벨링 테이블에 저장하고,상기 웨어-레벨링 테이블에 저장된 상기 각 메모리 유니트의 소거 이벤트 정보 및 이씨씨 이벤트 정보에 의거하여 상기 각 메모리 유니트에 대한 웨어-레벨링 동작을 수행하는 것을 포함하는 것을 특징으로 하는 메모리 시스템의 웨어-레벨링 방법.
- 제 13 항에 있어서,상기 소거 이벤트 정보는 상기 각 메모리 유니트의 소거 이벤트 횟수를 포함하고, 상기 이씨씨 이벤트 정보는 상기 각 메모리 유니트의 에러 비트 값들을 포함하는 것을 특징으로 하는 메모리 시스템의 웨어-레벨링 방법.
- 제 14 항에 있어서,상기 메모리 유니트들은 초기 상태에서 가장 높은 우선순위의 제 1 그룹으로 설정되고, 상기 에러 비트 값들은 2-비트 에러의 이벤트 횟수를 나타내는 제 1 에러 비트 값과 3-비트 에러의 이벤트 횟수를 나타내는 제 2 에러 비트 값을 포함하는 것을 특징으로 하는 메모리 시스템의 웨어-레벨링 방법.
- 제 15 항에 있어서,상기 각 메모리 유니트는 상기 각 메모리 유니트의 제 1 에러 비트 값이 제 1 이씨씨 임계값보다 클 때 낮은 우선순위의 제 2 그룹으로 설정되는 것을 특징으로 하는 메모리 시스템의 웨어-레벨링 방법.
- 제 16 항에 있어서,상기 각 메모리 유니트의 제 2 에러 비트 값이 제 2 이씨씨 임계값보다 클 때 상기 각 메모리 유니트의 소거 이벤트 횟수에 관계없이 가장 낮은 우선순위의 제 3 그룹으로 상기 각 메모리 유니트가 설정되는 것을 특징으로 하는 메모리 시스 템의 웨어-레벨링 방법.
- 제 17 항에 있어서,상기 각 메모리 유니트의 제 2 에러 비트 값이 상기 제 2 이씨씨 임계값보다 클 때 상기 제 2 그룹에 속하는 각 메모리 유니트가 상기 제 3 그룹으로 설정되는 것을 특징으로 하는 메모리 시스템의 웨어-레벨링 방법.
- 제 16 항에 있어서,상기 각 메모리 유니트의 소거 이벤트 값이 소거 임계값보다 클 때 상기 각 메모리 유니트가 상기 제 2 그룹으로 설정되는 것을 특징으로 하는 메모리 시스템의 웨어-레벨링 방법.
- 제 13 항에 있어서,상기 각 메모리 유니트는 소거 단위를 구성하는 것을 특징으로 하는 메모리 시스템의 웨어-레벨링 방법.
- 제 13 항에 있어서,상기 소거 이벤트 정보는 상기 각 메모리 유니트의 소거 이벤트 횟수를 포함하고, 상기 이씨씨 이벤트 정보는 상기 메모리 유니트들 중 하나 또는 그 보다 많은 유니트들의 에러 비트 값들을 포함하는 것을 특징으로 하는 메모리 시스템의 웨 어-레벨링 방법.
- 제 13 항에 있어서,상기 소거 이벤트 정보는 상기 각 메모리 유니트의 소거 이벤트 횟수를 포함하고, 상기 이씨씨 이벤트 정보는 상기 각 메모리 유니트의 메모리 셀들로 구성된 행들 중 하나 또는 그 보다 많은 행들의 에러 비트 값들을 포함하는 것을 특징으로 하는 메모리 시스템의 웨어-레벨링 방법.
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 true KR20090027952A (ko) | 2009-03-18 |
KR101413736B1 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 (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20100112256A (ko) * | 2009-04-09 | 2010-10-19 | 삼성전자주식회사 | 비휘발성 램, 이를 포함하는 솔리드 스테이트 드라이브, 및 이를 포함하는 컴퓨터 시스템 |
KR20150055445A (ko) * | 2013-11-13 | 2015-05-21 | 삼성전자주식회사 | 메모리 컨트롤러의 구동 방법 및 메모리 컨트롤러에 의해서 제어되는 비휘발성 메모리 장치 |
KR20180041473A (ko) * | 2016-10-14 | 2018-04-24 | 한국외국어대학교 연구산학협력단 | 가상 낸드플래시 구현 방법 및 이를 기록한 컴퓨터 프로그램 |
Families Citing this family (41)
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 |
US9063874B2 (en) * | 2008-11-10 | 2015-06-23 | SanDisk Technologies, Inc. | Apparatus, system, and method for wear management |
US9170897B2 (en) | 2012-05-29 | 2015-10-27 | SanDisk Technologies, Inc. | Apparatus, system, and method for managing solid-state storage reliability |
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 | 주식회사 하이닉스반도체 | 메모리 영역의 균등한 사용을 위한 반도체 스토리지 시스템및 그 제어 방법 |
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 | 山东华芯半导体有限公司 | 一种磨损均衡处理时减少内存开销的方法 |
US10417123B1 (en) | 2013-05-16 | 2019-09-17 | Western Digital Technologies, Inc. | Systems and methods for improving garbage collection and wear leveling performance 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 |
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 |
KR102513491B1 (ko) | 2015-07-15 | 2023-03-27 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작 방법 |
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 |
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控制方法、装置及设备 |
Family Cites Families (30)
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 | 삼성전자주식회사 | 플래시메모리를 위한 재사상 제어방법 및 그에 따른플래시 메모리의 구조 |
JP2003308242A (ja) | 2002-04-16 | 2003-10-31 | Hitachi Ltd | 半導体記憶装置及びその制御方法 |
US6895464B2 (en) | 2002-06-03 | 2005-05-17 | Honeywell International Inc. | Flash memory management system and method utilizing multiple block list windows |
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 |
WO2008077284A1 (en) | 2006-12-27 | 2008-07-03 | Intel Corporation | Initiative wear leveling for non-volatile memory |
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 |
EP2191473A2 (en) | 2007-09-05 | 2010-06-02 | Rambus Inc. | Method and apparatus to repair defects in nonvolatile semiconductor memory devices |
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 |
-
2007
- 2007-09-13 KR KR1020070093173A patent/KR101413736B1/ko active IP Right Grant
-
2008
- 2008-09-04 US US12/230,769 patent/US9229805B2/en active Active
- 2008-09-10 JP JP2008232262A patent/JP5296464B2/ja active Active
- 2008-09-12 CN CN200810177883.8A patent/CN101458957B/zh active Active
-
2014
- 2014-05-09 US US14/273,901 patent/US9251015B2/en active Active
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20100112256A (ko) * | 2009-04-09 | 2010-10-19 | 삼성전자주식회사 | 비휘발성 램, 이를 포함하는 솔리드 스테이트 드라이브, 및 이를 포함하는 컴퓨터 시스템 |
KR20150055445A (ko) * | 2013-11-13 | 2015-05-21 | 삼성전자주식회사 | 메모리 컨트롤러의 구동 방법 및 메모리 컨트롤러에 의해서 제어되는 비휘발성 메모리 장치 |
US9594673B2 (en) | 2013-11-13 | 2017-03-14 | Samsung Electronics Co., Ltd. | Driving method of memory controller and nonvolatile memory device controlled by memory controller |
KR20180041473A (ko) * | 2016-10-14 | 2018-04-24 | 한국외국어대학교 연구산학협력단 | 가상 낸드플래시 구현 방법 및 이를 기록한 컴퓨터 프로그램 |
Also Published As
Publication number | Publication date |
---|---|
US20140245109A1 (en) | 2014-08-28 |
CN101458957A (zh) | 2009-06-17 |
KR101413736B1 (ko) | 2014-07-02 |
JP5296464B2 (ja) | 2013-09-25 |
US9251015B2 (en) | 2016-02-02 |
US20090077429A1 (en) | 2009-03-19 |
JP2009070379A (ja) | 2009-04-02 |
US9229805B2 (en) | 2016-01-05 |
CN101458957B (zh) | 2016-08-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101413736B1 (ko) | 향상된 신뢰성을 갖는 메모리 시스템 및 그것의웨어-레벨링 기법 | |
KR101678909B1 (ko) | 플래시 메모리 시스템 및 그것의 소거 리프레쉬 방법 | |
CN110998735B (zh) | 具有读取电平校准的存储器装置 | |
KR101517185B1 (ko) | 메모리 시스템 및 그것의 동작 방법 | |
KR101498669B1 (ko) | 반도체 메모리 시스템 및 그것의 액세스 방법 | |
US8582360B2 (en) | Read method for nonvolatile memory device, and data storage system using the same | |
KR100830580B1 (ko) | 플래시 메모리 장치를 포함한 메모리 시스템의 데이터 복원방법 | |
US7937521B2 (en) | Read disturbance management in a non-volatile memory system | |
US8689082B2 (en) | Method of operating memory controller, and memory system, memory card and portable electronic device including the memory controller | |
US7843732B2 (en) | Methods of operating multi-bit flash memory devices and related systems | |
US8446766B2 (en) | Nonvolatile memory device and related programming method | |
KR101563647B1 (ko) | 메모리 시스템 및 그것의 데이터 처리 방법 | |
US11133071B2 (en) | Charge loss failure mitigation | |
US9875803B2 (en) | Memory system and method of controlling nonvolatile memory | |
KR20100010746A (ko) | 읽기 전압 레벨이 설정가능한 플래시 메모리 시스템 및읽기 전압 레벨의 설정방법 | |
KR20080025992A (ko) | 플래시 메모리 장치 및 그것의 리프레쉬 방법 | |
KR20130135621A (ko) | 불휘발성 메모리 장치를 포함하는 저장 장치 및 그것의 리페어 방법 | |
US10283196B2 (en) | Data writing method, memory control circuit unit and memory storage apparatus | |
KR20100133707A (ko) | 비휘발성 메모리 장치 및 그것의 최상위 비트 프로그램 상태 판별 방법 | |
CN115910158A (zh) | 存储装置 | |
CN111858390A (zh) | 存储器***和操作存储器***的方法 | |
KR100764748B1 (ko) | 향상된 리프레쉬 기능을 갖는 플래시 메모리 장치 |
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 |