KR102015053B1 - 불휘발성 메모리 장치 및 그것의 데이터 처리 방법 - Google Patents
불휘발성 메모리 장치 및 그것의 데이터 처리 방법 Download PDFInfo
- Publication number
- KR102015053B1 KR102015053B1 KR1020130018066A KR20130018066A KR102015053B1 KR 102015053 B1 KR102015053 B1 KR 102015053B1 KR 1020130018066 A KR1020130018066 A KR 1020130018066A KR 20130018066 A KR20130018066 A KR 20130018066A KR 102015053 B1 KR102015053 B1 KR 102015053B1
- Authority
- KR
- South Korea
- Prior art keywords
- pages
- bad page
- bad
- nonvolatile memory
- page
- Prior art date
Links
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
-
- 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/1666—Error detection or correction of the data by redundancy in hardware where the redundant component is memory or memory area
-
- 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/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0706—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
- G06F11/073—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a memory management context, e.g. virtual memory or cache management
-
- 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/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0751—Error or fault detection not based on redundancy
-
- 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
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
-
- 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
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/70—Masking faults in memories by using spares or by reconfiguring
- G11C29/76—Masking faults in memories by using spares or by reconfiguring using address translation or modifications
-
- 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/7202—Allocation control and policies
Abstract
본 발명은 불휘발성 메모리 장치 및 그것의 데이터 처리 방법에 관한 것이다. 본 발명에 의한 호스트로부터 쓰기 요청된 데이터 및 그것의 논리 주소를 제공받는 불휘발성 메모리 장치는 복수의 페이지들로 구성된 하나의 메모리 블록을 포함하는 불휘발성 메모리 및 상기 쓰기 요청된 데이터가 상기 메모리 블록에 쓰여지도록 상기 불휘발성 메모리를 제어하는 컨트롤러를 포함하며, 상기 컨트롤러는 배드 페이지 맵을 참조하여, 상기 복수의 페이지들 중 일부가 배드 페이지인 경우에 상기 쓰기 요청된 데이터가 상기 복수의 페이지들 중 상기 배드 페이지를 제외한 영역에 쓰여지도록 상기 쓰기 요청된 데이터의 논리 주소를 상기 불휘발성 메모리의 물리 주소로 매핑하고, 상기 컨트롤러는 상기 쓰기 요청된 데이터에 대한 쓰기 동작시 상기 배드 페이지에 더미 데이터가 쓰여지도록 상기 불휘발성 메모리를 제어한다. 본 발명에 의한 불휘발성 메모리 장치 및 그것의 데이터 처리 방법은 페이지 단위로 수명이 관리되므로 수명 및 정확도가 개선된다.
Description
본 발명은 불휘발성 메모리 장치 및 그것의 데이터 처리 방법에 관한 것이다.
반도체 메모리 장치(semiconductor memory device)는 실리콘(Si, silicon), 게르마늄(Ge, Germanium), 비화 갈륨(GaAs, gallium arsenide), 인화인듐(InP, indium phospide) 등과 같은 반도체를 이용하여 구현되는 기억장치이다. 반도체 메모리 장치는 크게 휘발성 메모리 장치(Volatile memory device)와 불휘발성 메모리 장치(Nonvolatile memory device)로 구분된다.
불휘발성 메모리 장치는 전원 공급이 차단되어도 저장하고 있던 데이터를 유지하는 메모리 장치이다. 불휘발성 메모리 장치에는 ROM (Read Only Memory), PROM (Programmable ROM), EPROM (Electrically Programmable ROM), EEPROM (Electrically Erasable and Programmable ROM), 플래시 메모리 장치, PRAM (Phase-change RAM), MRAM (Magnetic RAM), RRAM (Resistive RAM), FRAM (Ferroelectric RAM) 등이 있다. 플래시 메모리 장치는 크게 노어 타입과 낸드 타입으로 구분된다.
본 발명의 목적은 페이지 단위로 수명이 관리되어 수명 및 정확도가 개선되는 불휘발성 메모리 장치 및 그것의 데이터 처리 방법을 제공하는 것이다.
본 발명에 의한 호스트로부터 쓰기 요청된 데이터 및 그것의 논리 주소를 제공받는 불휘발성 메모리 장치는 복수의 페이지들로 구성된 하나의 메모리 블록을 포함하는 불휘발성 메모리 및 상기 쓰기 요청된 데이터가 상기 메모리 블록에 쓰여지도록 상기 불휘발성 메모리를 제어하는 컨트롤러를 포함하며, 상기 컨트롤러는 배드 페이지 맵을 참조하여, 상기 복수의 페이지들 중 일부가 배드 페이지인 경우에 상기 쓰기 요청된 데이터가 상기 복수의 페이지들 중 상기 배드 페이지를 제외한 영역에 쓰여지도록 상기 쓰기 요청된 데이터의 논리 주소를 상기 불휘발성 메모리의 물리 주소로 매핑하고, 상기 컨트롤러는 상기 쓰기 요청된 데이터에 대한 쓰기 동작시 상기 배드 페이지에 더미 데이터가 쓰여지도록 상기 불휘발성 메모리를 제어한다.
실시 예에 있어서, 상기 컨트롤러는 상기 쓰기 요청된 데이터에 대한 쓰기 동작시 상기 배드 페이지와 워드 라인을 공유하는 페이지에 더미 데이터가 쓰여지도록 상기 불휘발성 메모리를 제어한다.
실시 예에 있어서, 상기 컨트롤러는 미리 지정된 검증 조건이 만족되면, 상기 복수의 페이지들에 쓰여진 데이터를 독출하고, 상기 독출된 데이터의 비트 에러율을 참조하여 상기 배드 페이지 맵을 업데이트한다.
실시 예에 있어서, 상기 컨트롤러는 상기 메모리 블록에 대한 소거 횟수가 미리 지정된 기준치에 도달하면, 상기 복수의 페이지들에 쓰여진 데이터를 독출하고, 상기 독출된 데이터의 비트 에러율을 참조하여 상기 배드 페이지 맵을 업데이트한다.
실시 예에 있어서, 상기 컨트롤러는 상기 메모리 블록에 대한 소거 횟수가 상기 미리 지정된 기준치의 정수배에 도달하면, 상기 복수의 페이지들에 쓰여진 데이터를 독출하고, 상기 독출된 데이터의 비트 에러율을 참조하여 상기 배드 페이지 맵을 업데이트한다.
실시 예에 있어서, 상기 컨트롤러는 상기 메모리 블록에 대한 쓰기 동작이 수행된 때로부터 미리 지정된 기준 시간이 경과되면, 상기 복수의 페이지들에 쓰여진 데이터를 독출하고, 상기 독출된 데이터의 비트 에러율을 참조하여 상기 배드 페이지 맵을 업데이트한다.
실시 예에 있어서, 상기 컨트롤러는 상기 메모리 블록에 대한 쓰기 동작이 수행된 때로부터 상기 미리 지정된 기준 시간의 정수배의 시간이 경과되면, 상기 복수의 페이지들에 쓰여진 데이터를 독출하고, 상기 독출된 데이터의 비트 에러율을 참조하여 상기 배드 페이지 맵을 업데이트한다.
실시 예에 있어서, 상기 컨트롤러는 플래시 변환 계층 및 상기 배드 페이지 맵을 저장하기 위한 컨트롤러 메모리; 및
상기 컨트롤러 메모리에 저장된 플래시 변환 계층을 실행하기 위한 컨트롤러 프로세서를 포함하고,
상기 플래시 변환 계층은 상기 배드 페이지 맵을 참조하여, 상기 쓰기 요청된 데이터가 상기 배드 페이지를 제외한 영역에 쓰여지도록 상기 쓰기 요청된 데이터의 논리 주소를 상기 불휘발성 메모리의 물리 주소로 매핑한다.
실시 예에 있어서, 상기 배드 페이지 맵은 상기 복수의 페이지들 각각에 대응되는 비트들을 포함하고, 상기 복수의 페이지들 중 상기 적어도 하나의 배드 페이지에 대응되는 비트들은 제 1 논리값으로, 상기 복수의 페이지들 중 상기 배드 페이지가 아닌 페이지들에 대응되는 비트들은 제 2 논리값으로 설정된다.
실시 예에 있어서, 상기 컨트롤러는 미리 지정된 검증 조건이 만족되면, 상기 복수의 페이지들에 쓰여진 데이터를 독출하고, 독출된 데이터의 비트 에러율을 비트 에러 임계값과 비교하여, 상기 비트 에러율이 상기 비트 에러 임계값 이상인 페이지는 배드 페이지로 분류되도록 상기 배드 페이지 맵을 업데이트한다.
본 발명에 의한 호스트로부터 쓰기 요청된 데이터 및 그것의 논리 주소를 제공받는 불휘발성 메모리 장치는 복수의 페이지들로 구성된 하나의 메모리 블록을 포함하는 불휘발성 메모리 및 상기 쓰기 요청된 데이터가 상기 메모리 블록에 쓰여지도록 상기 불휘발성 메모리를 제어하는 컨트롤러를 포함하며, 상기 컨트롤러는 배드 페이지 맵을 참조하여, 상기 복수의 페이지들 중 일부가 배드 페이지인 경우에 상기 쓰기 요청된 데이터가 상기 복수의 페이지들 중 상기 배드 페이지를 제외한 영역에 쓰여지도록 상기 쓰기 요청된 데이터의 논리 주소를 상기 불휘발성 메모리의 물리 주소로 매핑하고, 상기 쓰기 요청된 데이터에 대한 쓰기 동작시 상기 배드 페이지에 더미 데이터가 쓰여지도록 상기 불휘발성 메모리를 제어하며, 상기 컨트롤러는 상기 메모리 블록에 대한 소거 횟수가 미리 지정된 기준치에 도달하면 배드 페이지 리스트를 참조하여 상기 배드 페이지 맵을 업데이트하고, 상기 배드 페이지 리스트는 상기 미리 지정된 기준치에 대응하여 미리 정의된 배드 페이지의 정보를 포함한다.
실시 예에 있어서, 상기 컨트롤러는 상기 쓰기 요청된 데이터에 대한 쓰기 동작시 상기 배드 페이지 영역에 포함된 페이지와 워드 라인을 공유하는 페이지에 더미 데이터가 쓰여지도록 상기 불휘발성 메모리를 제어한다.
실시 예에 있어서, 상기 미리 지정된 기준치는 상기 불휘발성 메모리의 데이터 기대 보존 시간을 참조하여 지정된다.
실시 예에 있어서, 상기 배드 페이지 맵은 비트맵 형태로 저장되며, 상기 복수의 페이지들 각각에 대응되는 비트들을 포함하고, 상기 복수의 페이지들 중 상기 배드 페이지 영역에 속하는 페이지들에 대응되는 비트들은 제 1 논리값으로, 상기 복수의 페이지들 중 상기 배드 페이지 영역에 속하지 않는 페이지들에 대응되는 비트들은 제 2 논리값으로 설정된다.
본 발명에 의한 불휘발성 메모리 장치 및 그것의 데이터 처리 방법은 페이지 단위로 수명이 관리되므로 수명 및 정확도가 개선된다.
도 1은 본 발명의 실시예에 의한 불휘발성 메모리 장치와 호스트를 포함하는 메모리 시스템을 도시하는 블록도이다.
도 2는 본 발명의 실시예에 의한 배드 페이지 맵을 도시하는 도면이다.
도 3은 본 발명의 일실시예에 의한 배드 페이지 맵 업데이트 방법을 도시하는 순서도이다.
도 4는 배드 페이지 리스트의 일실시예를 도시하는 표이다.
도 5는 본 발명의 다른 실시예에 의한 배드 페이지 맵 업데이트 방법을 도시하는 순서도이다.
도 6은 본 발명의 또 다른 실시예에 의한 배드 페이지 맵 업데이트 방법을 도시하는 순서도이다.
도 7은 본 발명의 또 다른 실시예에 의한 배드 페이지 맵 업데이트 방법을 도시하는 순서도이다.
도 8은 본 발명의 실시예에 의한 불휘발성 메모리 장치의 데이터 쓰기 방법을 도시하는 순서도이다.
도 9는 본 발명의 실시예에 의한 메모리 시스템을 솔리드 스테이트 드라이브(SSD) 시스템에 적용한 예를 보여주는 블록도이다.
도 10은 본 발명의 실시예에 의한 불휘발성 메모리 장치를 메모리 카드(memory card)에 적용한 블록도이다.
도 11은 도 10의 메모리 카드가 사용되는 다양한 시스템을 설명하는 예시적 도면이다.
도 2는 본 발명의 실시예에 의한 배드 페이지 맵을 도시하는 도면이다.
도 3은 본 발명의 일실시예에 의한 배드 페이지 맵 업데이트 방법을 도시하는 순서도이다.
도 4는 배드 페이지 리스트의 일실시예를 도시하는 표이다.
도 5는 본 발명의 다른 실시예에 의한 배드 페이지 맵 업데이트 방법을 도시하는 순서도이다.
도 6은 본 발명의 또 다른 실시예에 의한 배드 페이지 맵 업데이트 방법을 도시하는 순서도이다.
도 7은 본 발명의 또 다른 실시예에 의한 배드 페이지 맵 업데이트 방법을 도시하는 순서도이다.
도 8은 본 발명의 실시예에 의한 불휘발성 메모리 장치의 데이터 쓰기 방법을 도시하는 순서도이다.
도 9는 본 발명의 실시예에 의한 메모리 시스템을 솔리드 스테이트 드라이브(SSD) 시스템에 적용한 예를 보여주는 블록도이다.
도 10은 본 발명의 실시예에 의한 불휘발성 메모리 장치를 메모리 카드(memory card)에 적용한 블록도이다.
도 11은 도 10의 메모리 카드가 사용되는 다양한 시스템을 설명하는 예시적 도면이다.
이하, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있도록 본 발명의 실시예가 첨부된 도면을 참조하여 설명한다. 또한 이하에서 사용되는 용어들은 오직 본 발명을 설명하기 위하여 사용된 것이며 본 발명의 범위를 한정하기 위해 사용된 것은 아니다. 앞의 일반적인 설명 및 다음의 상세한 설명은 모두 예시적인 것으로 이해되어야 하며, 청구된 발명의 부가적인 설명이 제공되는 것으로 여겨져야 한다.
도 1은 본 발명의 실시예에 의한 불휘발성 메모리 장치(100)와 호스트(101)를 포함하는 메모리 시스템(10)을 도시하는 블록도이다. 도 1을 참조하면, 불휘발성 메모리 장치(100)는 컨트롤러(110) 및 불휘발성 메모리(120)를 포함한다.
불휘발성 메모리 장치(100)는 데이터가 손상될 위험이 있는 페이지를 배드 페이지로 분류한다. 불휘발성 메모리 장치(100)는 매핑 동작시, 배드 페이지로 분류된 페이지의 물리 주소에는 논리 주소를 매핑하지 않는다.
불휘발성 메모리 장치(100)는 배드 페이지에 데이터가 저장되는 것을 방지하므로 개선된 수명 및 정확도를 가질 수 있다. 또한 불휘발성 메모리 장치(100)는 쓰기 동작시 배드 페이지로 분류된 페이지에 더미(dummy) 데이터를 프로그램하여, 배드 페이지에 유의미한 데이터를 저장하지 않으면서도 쓰기 속도를 개선시킬 수 있다. 이하 도 1을 참조하여, 불휘발성 메모리 장치(100)에 관하여 더 자세히 설명한다.
호스트(101)는 불휘발성 메모리 장치(100)에 액세스할 수 있도록 구성된다. 호스트(101)는 미리 설정된 동작을 수행할 때 생성되는 데이터를 불휘발성 메모리 장치(100)에 저장할 수 있다. 혹은, 호스트(101)는 불휘발성 메모리 장치(100)에 저장된 데이터에 기반하여 미리 설정된 동작을 수행할 수 있다.
불휘발성 메모리 장치(100)는 호스트(101)에서 처리되는 다양한 데이터를 저장하도록 구성된다. 불휘발성 메모리 장치(100)는 컨트롤러(110) 및 불휘발성 메모리(120)를 포함한다.
컨트롤러(110)는 불휘발성 메모리(120)와 호스트(101) 사이에 인터페이스를 제공한다. 컨트롤러(110)는 불휘발성 메모리(120)를 제어하기 위한 펌웨어(firmware)를 구동할 수 있다. 컨트롤러(110)는 펌웨어를 이용하여, 호스트(101)의 요청에 응답하여 불휘발성 메모리(120)에 대한 읽기, 쓰기 및 소거 동작을 제어할 수 있다. 컨트롤러(110)는 컨트롤러 프로세서(111) 및 컨트롤러 메모리(112)를 포함한다.
컨트롤러 프로세서(111)는 컨트롤러(110)의 제반 동작을 제어하도록 구성된다. 예를 들면, 컨트롤러 프로세서(111)는 불휘발성 메모리(120)를 제어하기 위한 펌웨어를 구동할 수 있다.
컨트롤러 메모리(112)는 컨트롤러(110)의 동작 메모리, 호스트(101)와 불휘발성 메모리(120) 사이의 버퍼 메모리, 그리고 불휘발성 메모리(120)의 캐시 메모리로 동작할 수 있다.
불휘발성 메모리(120)는 컨트롤러(110)의 제어에 따라 데이터를 저장한다. 불휘발성 메모리(120)의 종류는 한정되지 않는다. 예를 들어, 불휘발성 메모리(120)는 ROM (Read Only Memory), PROM (Programmable ROM), EPROM (Electrically Programmable ROM), EEPROM (Electrically Erasable and Programmable ROM), 플래시 메모리(Flash Memory), PRAM (Phase-change RAM), MRAM (Magnetic RAM), RRAM (Resistive RAM), FRAM (Ferroelectric RAM) 등일 수 있다.
쓰기 요청이 발생되면, 호스트(101)는 쓰기 요청된 데이터와 데이터의 논리 어드레스(Logical Address: LA)를 불휘발성 메모리 장치(100)에 제공한다. 불휘발성 메모리 장치(100)는 호스트의 요청에 응답하여 데이터를 불휘발성 메모리(120)에 저장한다.
컨트롤러(110)의 컨트롤러 메모리(112)에는 플래시 변환 계층(Flash Translation Layer: 이하, FTL)이 로드될 수 있다. 또, 컨트롤러 메모리(112)에는 배드 페이지를 표시하는 배드 페이지 맵이 로드될 수 있다. 플래시 변환 계층 및 배드 페이지 맵은 컨트롤러(110)에 포함된 불휘발성 메모리로부터 컨트롤러 메모리(112)로 로드될 수 있다. 혹은 플래시 변환 계층 및 배드 페이지 맵은 불휘발성 메모리(120)로부터 컨트롤러 메모리(112)로 로드될 수 있다.
컨트롤러(110)는 데이터에 대한 쓰기 요청이 발생되면, 플래시 변환 계층(FTL)을 이용하여, 호스트로부터 제공된 논리 어드레스(LA: Logical Address)를 불휘발성 메모리(120)의 물리 어드레스(PA: Physical Address)로 맵핑(Mapping)한다. 컨트롤러(110)는 맵핑 동작시, 배드 페이지 맵을 참조하여, 배드 페이지의 물리 어드레스에는 논리 어드레스가 매핑되지 않도록 할 수 있다.
또한 컨트롤러(110)는 쓰기 동작시, 배드 페이지에는 더미 데이터가 쓰여지도록 불휘발성 메모리(120)를 제어할 수 있다. 컨트롤러(110)는 복수의 페이지가 한 번에 프로그램 되는 경우, 배드 페이지에 더미 데이터를 프로그램하여, 배드 페이지와 일반 페이지(Normal Page)가 함께 프로그램 될 수 있도록 불휘발성 메모리(120)를 제어할 수 있다.
한편, 컨트롤러(110)는 배드 페이지 맵을 프로그램/소거 사이클(P/E Cycle: Program/Erase Cycle) 혹은 경과된 시간에 응답하여 업데이트 할 수 있다. 컨트롤러(110)는 배드 페이지 맵을 업데이트하여, 데이터가 손상될 위험이 있는 페이지를 지속적으로 배드 페이지로 분류할 수 있다.
상술된 불휘발성 메모리 장치(100)는 데이터가 손상될 위험이 있는 페이지를 미리 배드 페이지로 분류하고, 분류된 배드 페이지에 논리 어드레스가 매핑되는 것을 배제할 수 있다. 불휘발성 메모리 장치(100)의 수명은 페이지 단위로 관리되므로, 블록 단위로 수명이 관리되는 것에 비하여 수명이 연장될 수 있다.
또한 상술된 실시예에서 불휘발성 메모리 장치(100)는 페이지 단위로 배드 페이지를 선정하여 관리하였으나, 상술된 기술적 특징은 워드 라인 단위로도 적용될 수 있다. 예를 들어, 불휘발성 메모리 장치(100)는 데이터가 손상될 위험이 있는 페이지가 연결되는 워드 라인을 미리 배드 워드 라인으로 분류하고, 분류된 배드 워드 라인에 연결된 페이지들에 논리 어드레스가 매핑되는 것을 배제할 수 있다. 즉, 불휘발성 메모리 장치(100)는 배드 페이지와 워드 라인을 공유하는 페이지도 배드 페이지로 분류하여, 논리 어드레스가 매핑되는 것을 배제할 수 있다.
불휘발성 메모리 장치(100)는 데이터가 손상될 위험이 있는 페이지를 배드 페이지로 분류하기 위하여, 다양한 알고리즘을 이용할 수 있다. 또한 불휘발성 메모리 장치(100)는 지속적으로 배드 페이지 맵을 업데이트할 수 있다. 이하 도 2 내지 도 6을 참조하여 배드 페이지 맵 및 그것의 업데이트 동작에 관하여 자세하게 설명한다.
도 2는 본 발명의 실시예에 의한 배드 페이지 맵을 도시하는 도면이다. 도 2의 실시예에서 배드 페이지 맵은 비트맵(Bitmap)의 형태를 가진다. 그러나 이는 예시적인 것으로, 본 발명에 의한 배드 페이지 맵의 형태는 비트맵에 한정되지 않는다. 예를 들어, 배드 페이지 맵은 리스트(list) 구조 혹은 트리(tree) 구조의 형태를 가질 수 있다.
배드 페이지 맵은 불휘발성 메모리(도 1 참조, 120)의 각 물리 페이지에 대응되는 비트들을 포함한다. 배드 페이지 맵에서, 배드 페이지로 분류된 페이지에 대응되는 비트는 1로 설정될 수 있다. 또한 일반 페이지(normal page)로 분류된 페이지에 대응되는 비트는 0으로 설정될 수 있다. 컨트롤러(도 1 참조, 110)는 배드 페이지 맵을 참조하여, 페이지가 배드 페이지로 표시되어 있는 경우 해당 페이지의 물리 어드레스에 논리 주소를 매핑하지 않을 수 있다.
도 3은 본 발명의 일실시예에 의한 배드 페이지 맵 업데이트 방법을 도시하는 순서도이다. 도 3을 참조하면, 배드 페이지 맵은 선택된 블록에 대한 P/E 사이클(Program/Erase Cycle) 및 미리 지정된 배드 페이지 리스트(Bad Page List)를 참조하여 업데이트될 수 있다. 배드 페이지 리스트는 미리 지정된 P/E 사이클 횟수에 대하여, 해당 P/E 사이클 횟수에 도달되었을 때 불안정할 것으로 판정되는 페이지들을 지시하는 리스트이다.
불휘발성 메모리(도 1 참조, 120)의 각 페이지들은 서로 다른 물리적 특성을 가진다. 불휘발성 메모리(120)의 각 페이지들의 물리적 특성은, 미리 선정된 샘플들에 대한 실험 데이터를 이용하여 미리 평가될 수 있다. 배드 페이지 리스트는 각 페이지들의 평가된 물리적 특성을 참조하여 생성된다.
데이터 처리 동작에서, 컨트롤러 프로세서(도 1 참조, 111)는 컨트롤러 메모리(도 1 참조, 112)에 배드 페이지 리스트를 로드한다. 컨트롤러 프로세서(111)는 로드된 배드 페이지 리스트를 참조하여 매핑 동작을 수행한다. 배드 페이지 리스트는 불휘발성 메모리(120)로부터 컨트롤러 메모리(112)로 로드될 수 있다. 혹은 배드 페이지 리스트는 컨트롤러(도 1 참조, 110)에 포함된 불휘발성 메모리로부터 ㅋ컨트롤러 메모리(112)로 로드될 수 있다.
도 4는 배드 페이지 리스트의 일실시예를 도시하는 표이다. 도 4를 참조하면, 배드 페이지 리스트는 미리 지정된 P/E 사이클 횟수에 대하여 각 페이지의 배드 페이지 판정 여부를 나타내는 비트들을 포함한다. 일실시예로서, 배드 페이지 리스트에서, 미리 지정된 P/E 사이클 횟수에 대하여 배드 페이지로 판정된 페이지에 대응되는 비트 값은 1로 지정될 수 있다.
다시 도 3을 참조하면, S110 단계에서, 불휘발성 메모리(도 1 참조, 120)에 대한 프로그램 혹은 소거 동작이 수행된다.
S120 단계에서, 카운트(count)가 기준(Reference)에 속하는지 판별된다. 카운트는 선택된 블록에 현재까지 수행된 P/E 사이클의 횟수를 나타낸다. 기준은 배드 페이지 리스트에 미리 지정된 P/E 사이클 횟수들의 집합일 수 있다.
S125 단계에서, 카운트가 기준에 속하지 않으면, 카운트가 증가된다. 카운트가 증가된 뒤 배드 페이지 맵에 대한 업데이트 동작이 종료된다.
S130 단계에서, 카운트가 기준에 속하면, 배드 페이지 맵은 배드 페이지 리스트를 참조하여 업데이트된다. 배드 페이지 맵은 배드 페이지 리스트를 참조하여, 현재 카운트에 대하여 배드 페이지 리스트에 배드 페이지로 판정되어 있는 페이지들을 배드 페이지로 분류한다.
S140 단계에서, 카운트가 증가된다. 카운트가 증가된 뒤 배드 페이지 맵에 대한 업데이트 동작이 종료된다.
상술된 배드 페이지 맵 업데이트 방법은 배드 페이지 리스트(Bad Page List)를 참조하여, 선택된 블록에 대한 P/E 사이클에 응답하여 배드 페이지 맵을 업데이트한다. 상술된 배드 페이지 맵 업데이트 방법에 의하면, 선택된 블록에 대한 P/E 사이클에 응답하는 각 페이지의 특성이 고려될 수 있다.
도 5는 본 발명의 다른 실시예에 의한 배드 페이지 맵 업데이트 방법을 도시하는 순서도이다. 도 5를 참조하면, 배드 페이지 맵은 비트 에러율(BER: Bit Error Rate)에 응답하여 업데이트된다.
S210 단계에서, 불휘발성 메모리(도 1 참조, 120)에 쓰기 동작이 수행된다.
S220 단계에서, S210 단계에서 쓰기 동작이 수행된 페이지들에 저장된 데이터가 독출된다. 각 페이지에서 독출된 데이터에 대하여 비트 에러율이 계산된다.
S230 단계에서, 미리 지정된 임계값보다 높은 비트 에러율을 나타내는 페이지들이 배드 페이지로 분류된다. 분류 결과를 기초로, 배드 페이지 맵이 업데이트된다. 미리 지정된 임계값은 불휘발성 메모리 장치(도 1 참조, 100)에 저장될 수 있다. 혹은 미리 설정된 임계값은 호스트(도 1 참조, 101)로부터 제공되는 외부 신호에 응답하여 설정될 수 있다.
불휘발성 메모리(120)의 각 페이지에 포함되는 메모리 셀의 문턱 전압은 시간의 경과에 응답하여 변화된다. 예를 들어, 메모리 셀의 문턱 전압은 인접 메모리 셀들에 의한 간섭 현상에 의하여 변화된다. 이러한 간섭 현상의 예로서 에프-폴리 커플링(F-Poly Coupling) 및 측면 전하 확산(Lateral Charge Spreading) 등이 있다.
인접 메모리 셀들에 의한 간섭 이외에도 메모리 셀의 문턱 전압은 리드 디스터브(Read Disturb)에 의하여 변화될 수 있다. 혹은 메모리 셀의 문턱 전압은 시간의 경과에 따른 메모리 셀의 전하량 감소에 의하여 변화될 수 있다.
메모리 셀의 문턱 전압은 상술된 요인들 이외에도 다양한 요인들로부터 변화될 수 있다. 예를 들어, 문턱 전압은 공정적 결함, 채널의 불안정성에 의한 왜곡, 프로그램 디스터브 등의 요인들에 의하여 변화될 수 있다.
메모리 셀의 문턱 전압이 시간의 경과에 응답하여 변화되므로, 불휘발성 메모리(120)의 각 페이지에 저장된 데이터는 시간의 경과에 응답하여 불안정해진다. 불휘발성 메모리(120)의 각 페이지에 저장된 데이터의 신뢰도는 쓰기 동작 직후에 가장 높을 수 있다.
상술된 배드 페이지 맵 업데이트 방법은 쓰기 동작 직후 페이지로부터 독출된 데이터의 비트 에러율을 기초로 페이지의 배드 페이지 여부를 평가한다. 상술된 배드 페이지 맵 업데이트 방법은 쓰기 동작 직후 데이터를 독출하므로, 배드 페이지 판정 과정에서 리드 디스터브 혹은 다른 문턱 전압을 변화시키는 요인들에 의한 영향을 감소시킬 수 있다.
도 6은 본 발명의 또 다른 실시예에 의한 배드 페이지 맵 업데이트 방법을 도시하는 순서도이다. 도 6을 참조하면, 배드 페이지 맵은 P/E 사이클 및 비트 에러율(BER: Bit Error Rate)에 응답하여 업데이트된다.
S310 단계에서, 불휘발성 메모리(도 1 참조, 120)에 대한 프로그램 혹은 소거 동작이 수행된다.
S320 단계에서, 카운트와 기준값이 비교된다. 본 실시예에서, 카운트는 선택된 블록에 현재까지 수행된 P/E 사이클의 횟수를 나타낸다. 카운트가 기준값에 이르지 못하면, S325 단계에서, 카운트가 증가되고 업데이트 동작은 종료된다. 기준값은 불휘발성 메모리 장치(도 1 참조, 100)에 저장될 수 있다. 혹은 기준값은 호스트(도 1 참조, 101)로부터 제공되는 외부 신호에 응답하여 설정될 수 있다.
S330 단계에서, 카운트가 기준값보다 크면, 선택된 블록의 페이지들에 저장된 데이터가 독출된다. 독출된 데이터에 대하여 비트 에러율이 계산된다.
S340 단계에서, 미리 지정된 임계값보다 높은 비트 에러율을 나타내는 페이지들이 배드 페이지로 분류된다. 분류 결과를 기초로, 배드 페이지 맵이 업데이트된다.
S350 단계에서, 카운트 값이 리셋되고, 업데이트 동작이 종료된다.
상술된 배드 페이지 맵 업데이트 방법은 미리 지정된 기준값에 P/E 사이클 횟수가 도달되었을 때의 비트 에러율을 기초로 페이지의 배드 페이지 여부를 평가한다. 상술된 배드 페이지 맵 업데이트 방법에 의하면, 선택된 블록에 대한 P/E 사이클에 응답하여 측정된 비트 에러율이 고려될 수 있다.
도 7은 본 발명의 또 다른 실시예에 의한 배드 페이지 맵 업데이트 방법을 도시하는 순서도이다. 도 7을 참조하면, 배드 페이지 맵은 쓰기 동작으로부터 경과한 시간 및 비트 에러율(BER: Bit Error Rate)에 응답하여 업데이트된다.
S410 단계에서, 불휘발성 메모리(도 1 참조, 120)에 대한 프로그램 혹은 소거 동작이 수행된다.
S420 단계에서, 선택된 페이지에 경과 시간과 기준값이 비교된다. 경과 시간은 선택된 페이지에 쓰기 동작이 수행된 때 혹은 경과 시간이 리셋된 때로부터 경과된 시간이다. 경과 시간이 기준값에 이르지 못하면, 업데이트 동작은 종료된다. 기준값은 불휘발성 메모리 장치(도 1 참조, 100)에 저장될 수 있다. 혹은 기준값은 호스트(도 1 참조, 101)로부터 제공되는 외부 신호에 응답하여 설정될 수 있다.
S430 단계에서, 경과 시간이 기준값보다 크면, 선택된 블록의 페이지들에 저장된 데이터가 독출된다. 독출된 데이터에 대하여 비트 에러율이 계산된다.
S440 단계에서, 미리 지정된 임계값보다 높은 비트 에러율을 나타내는 페이지들이 배드 페이지로 분류된다. 분류 결과를 기초로, 배드 페이지 맵이 업데이트된다.
S450 단계에서, 경과 시간 값이 리셋되고, 업데이트 동작이 종료된다.
상술된 배드 페이지 맵 업데이트 방법은 미리 지정된 시간 간격마다 주기적으로 페이지의 배드 페이지 여부를 평가한다. 예를 들어, 목표하고자 하는 데이터 기대 보존 시간(retention)의 일정 비율, 예를 들어 80%, 의 시간이 경과 되었을 때 미리 지정된 임계값보다 높은 비트 데이터율을 나타내는 페이지들을 배드 페이지로 분류할 수 있다. 상술된 배드 페이지 맵 업데이트 방법에 의하면, 쓰기 동작으로부터 경과된 시간에 응답하여 측정된 비트 에러율이 고려될 수 있다.
도 8은 본 발명의 실시예에 의한 불휘발성 메모리 장치의 데이터 쓰기 방법을 도시하는 순서도이다. 도 8을 참조하면, 본 발명의 불휘발성 메모리 장치(도 1 참조, 100)는 배드 페이지 맵을 참조하여, 배드 페이지로 분류된 페이지의 물리 어드레스에 논리 어드레스가 매핑되지 않도록 할 수 있다. 불휘발성 메모리 장치(100)는 데이터가 손상될 위험이 있는 페이지를 데이터 저장 공간으로 사용하지 않으므로, 개선된 수명 및 정확도를 가질 수 있다.
S510 단계에서, 호스트(도 1 참조, 101)로부터 쓰기 요청이 제공된다. 호스트(101)는 불휘발성 메모리 장치(100)로 쓰기 커멘드, 쓰기 요청된 데이터의 파일 데이터 및 논리 어드레스를 제공할 수 있다.
S520 단계에서, 호스트로부터 제공된 논리 어드레스가 불휘발성 메모리(도 1 참조, 120)의 물리 어드레스로 맵핑(Mapping)된다. 불휘발성 메모리 장치(100)는 배드 페이지 맵을 참조하여, 논리 어드레스를 물리 어드레스로 매핑한다. 보다 상세히는, 불휘발성 메모리 장치(100)는 배드 페이지 맵을 참조하여, 배드 페이지로 분류된 페이지의 물리 어드레스에는 논리 어드레스가 매핑되지 않도록 한다.
S530 단계에서, 쓰기 요청된 데이터가 매핑된 물리 어드레스에 대응되는 불휘발성 메모리(120)의 영역에 쓰여진다.
상술된 데이터 쓰기 방법에 의하면, 불휘발성 메모리 장치(100)는 데이터가 손상될 위험이 있는 페이지를 배드 페이지로 분류하고, 그 결과를 배드 페이지 맵에 저장한다. 불휘발성 메모리 장치(100)는 매핑 과정에서, 배드 페이지 맵을 참조하여 배드 페이지로 분류된 페이지가 데이터 저장 공간으로 사용되지 않도록 한다. 불휘발성 메모리 장치(100)는 배드 페이지에 데이터를 저장하지 않으므로 개선된 수명 및 정확도를 가질 수 있다.
또한 상술된 실시예에서 불휘발성 메모리 장치(100)는 페이지 단위로 배드 페이지를 선정하여 관리하였으나, 상술된 기술적 특징은 워드 라인 단위로도 적용될 수 있다. 예를 들어, 불휘발성 메모리 장치(100)는 데이터가 손상될 위험이 있는 페이지가 연결되는 워드 라인을 미리 배드 워드 라인으로 분류하고, 분류된 배드 워드 라인에 연결된 페이지들에 논리 어드레스가 매핑되는 것을 배제할 수 있다.
도 9는 본 발명의 실시예에 의한 메모리 시스템을 솔리드 스테이트 드라이브(SSD) 시스템에 적용한 예를 보여주는 블록도이다. 도 9를 참조하면, SSD 시스템(1000)은 호스트(1100)와 SSD(1200)를 포함한다. 호스트(1100)는 호스트 인터페이스(1121), 호스트 컨트롤러(1120), 그리고 디램(1130)을 포함한다.
호스트(1100)는 SSD(1200)에 데이터를 쓰거나, SSD(1200)에 저장된 데이터를 읽는다. 호스트 컨트롤러(1120)는 커맨드, 어드레스, 제어 신호, 파일의 카테고리를 나타내는 ID 등의 신호(SGL)를 호스트 인터페이스(1121)를 통해 SSD(1200)로 전송한다. 디램(1130)은 호스트(1100)의 메인 메모리이다.
SSD(1200)는 호스트 인터페이스(1211)를 통해 호스트(1100)와 신호(SGL)를 주고 받으며, 전원 커넥터(power connector, 1221)를 통해 전원을 입력받는다. SSD(1200)는 복수의 불휘발성 메모리(1201~120n), SSD 컨트롤러(1210), 그리고 보조 전원 장치(1220)를 포함할 수 있다. 여기에서, 복수의 불휘발성 메모리(1201~120n)는 낸드 플래시 메모리 이외에도 PRAM, MRAM, ReRAM, FRAM 등으로 구현될 수 있다.
복수의 불휘발성 메모리(1201~120n)는 SSD(1200)의 저장 매체로서 사용된다. 복수의 불휘발성 메모리(1201~120n)는 복수의 채널(CH1~CHn)을 통해 SSD 컨트롤러(1210)와 연결될 수 있다. 하나의 채널에는 하나 또는 그 이상의 불휘발성 메모리가 연결될 수 있다. 하나의 채널에 연결되는 불휘발성 메모리는 동일한 데이터 버스에 연결될 수 있다.
SSD 컨트롤러(1210)는 호스트 인터페이스(1211)를 통해 호스트(1100)와 신호(SGL)를 주고 받는다. 여기에서, 신호(SGL)에는 커맨드, 어드레스, 데이터 등이 포함될 수 있다. SSD 컨트롤러(1210)는 호스트(1100)의 커맨드에 따라 해당 불휘발성 메모리에 데이터를 쓰거나 해당 불휘발성 메모리로부터 데이터를 읽어낸다.
보조 전원 장치(1220)는 전원 커넥터(1221)를 통해 호스트(1100)와 연결된다. 보조 전원 장치(1220)는 호스트(1100)로부터 전원(PWR)을 입력받고, 충전할 수 있다. 한편, 보조 전원 장치(1220)는 SSD(1200) 내에 위치할 수도 있고, SSD(1200) 밖에 위치할 수도 있다. 예를 들면, 보조 전원 장치(1220)는 메인 보드에 위치하며, SSD(1200)에 보조 전원을 제공할 수도 있다.
SSD(1200)는 데이터가 손상될 위험이 있는 페이지를 배드 페이지로 분류하고, 그 결과를 배드 페이지 맵에 저장한다. SSD(1200)는 매핑 과정에서, 배드 페이지 맵을 참조하여 배드 페이지로 분류된 페이지가 데이터 저장 공간으로 사용되지 않도록 한다. SSD(1200)는 배드 페이지에 데이터를 저장하지 않으므로 개선된 수명 및 정확도를 가질 수 있다.
도 10은 본 발명의 실시예에 의한 불휘발성 메모리 장치를 메모리 카드(memory card)에 적용한 블록도이다. 메모리 카드(2000)는 예를 들어, MMC 카드, SD카드, 멀티유즈(multiuse) 카드, 마이크로 SD카드, 메모리 스틱, 컴팩트 SD 카드, ID 카드, PCMCIA 카드, SSD카드, 칩카드(chipcard), 스마트카드(smartcard), USB카드 등일 수 있다.
도 10을 참조하면, 메모리 카드(2000)는 외부와의 인터페이스를 수행하는 인터페이스부(2100), 버퍼 메모리를 갖고 메모리 카드(2000)의 동작을 제어하는 컨트롤러(2200), 본 발명의 실시예들에 따른 불휘발성 메모리 장치(2300)를 적어도 하나 포함할 수 있다. 컨트롤러(2200)는 프로세서로서, 불휘발성 메모리 장치(2300)의 쓰기 동작 및 읽기 동작을 제어할 수 있다. 컨트롤러(2200)는 데이터 버스(DATA)와 어드레스 버스(ADDRESS)를 통해서 비휘발성 메모리 장치(2300) 및 인터페이스부(2100)와 커플링되어 있다.
메모리 카드(2000)는 데이터가 손상될 위험이 있는 페이지를 배드 페이지로 분류하고, 그 결과를 배드 페이지 맵에 저장한다. 메모리 카드(2000)는 매핑 과정에서, 배드 페이지 맵을 참조하여 배드 페이지로 분류된 페이지가 데이터 저장 공간으로 사용되지 않도록 한다. 메모리 카드(2000)는 배드 페이지에 데이터를 저장하지 않으므로 개선된 수명 및 정확도를 가질 수 있다.
도 11은 도 10의 메모리 카드가 사용되는 다양한 시스템을 설명하는 예시적 도면이다. 도 11을 참조하면, 메모리 카드(2000)는 (a) 비디오 카메라, (b) 텔레비전, (c) 오디오 장치, (d) 게임장치, (e) 전자 음악 장치, (f) 휴대폰, (g) 컴퓨터, (h) PDA(Personal Digital Assistant), (i) 보이스 레코더(voice recorder), (j) PC 카드 등에 사용될 수 있다.
본 발명에 따른 불휘발성 메모리 장치는 다양한 형태들의 패키지를 이용하여 실장될 수 있다. 예를 들면, 본 발명에 따른 불휘발성 메모리 장치는 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), 등과 같은 패키지들을 이용하여 실장될 수 있다.
본 발명의 상세한 설명에서는 구체적인 실시예에 관하여 설명하였으나, 본 발명의 범위에서 벗어나지 않는 한도 내에서 여러 가지로 변형될 수 있다. 예를 들어, 호스트, 불휘발성 메모리 장치 및 컨트롤러의 세부적 구성은 사용 환경이나 용도에 따라 다양하게 변화 또는 변경될 수 있을 것이다. 본 발명에서 사용된 특정한 용어들은 본 발명을 설명하기 위한 목적에서 사용된 것이며 그 의미를 한정하거나 특허 청구범위에 기재된 본 발명의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 발명의 범위는 상술한 실시예에 국한되어서는 안되며 후술하는 특허 청구범위 뿐만 아니라 이 발명의 특허 청구범위와 균등한 범위에 대하여도 적용되어야 한다.
10: 메모리 시스템
101: 호스트
100: 불휘발성 메모리 장치
110: 컨트롤러
111: 컨트롤러 프로세서
112: 컨트롤러 메모리
120: 불휘발성 메모리
101: 호스트
100: 불휘발성 메모리 장치
110: 컨트롤러
111: 컨트롤러 프로세서
112: 컨트롤러 메모리
120: 불휘발성 메모리
Claims (10)
- 복수의 페이지들로 구성된 하나의 메모리 블록을 포함하는 불휘발성 메모리; 및
외부로부터 수신된 쓰기 요청 및 논리 주소에 응답하여 데이터가 상기 메모리 블록에 쓰여지도록 상기 불휘발성 메모리를 제어하도록 구성된 컨트롤러를 포함하고,
상기 컨트롤러는 배드 페이지 맵을 참조하여, 상기 논리 주소가 상기 메모리 블록의 배드 페이지에 매핑되었는지 여부를 판단하고, 상기 논리 주소가 상기 배드 페이지에 대응하는 것으로 판단되는 경우, 상기 논리 주소를 다른 페이지에 재매핑하고 상기 배드 페이지에 더미 데이터를 저장하도록 구성되고,
상기 컨트롤러는 상기 논리 주소가 상기 배드 페이지에 대응하는 것으로 판단된 경우, 상기 배드 페이지와 워드 라인을 공유하는 페이지에 더미 데이터를 더 쓰도록 구성된 메모리 시스템. - 제 1 항에 있어서,
상기 컨트롤러는 미리 정해진 검증 조건이 만족되면, 상기 복수의 페이지들에 쓰여진 데이터를 독출하고, 상기 독출된 데이터의 비트 에러율을 판별하고, 상기 판별된 비트 에러율에 기초하여 상기 배드 페이지 맵을 업데이트하는 메모리 시스템. - 제 2 항에 있어서,
상기 메모리 블록에 대해 수행된 소거 동작의 횟수가 미리 정해진 기준치에 도달하면 상기 미리 정해진 검증 조건이 만족되는 메모리 시스템. - 제 2 항에 있어서,
상기 메모리 블록에 대해 쓰기 동작이 수행된 때로부터 미리 정해진 기준 시간이 경과되면, 상기 미리 정해진 검증 조건이 만족되는 메모리 시스템. - 복수의 페이지들로 구성된 하나의 메모리 블록을 포함하는 불휘발성 메모리; 및
외부로부터 수신된 쓰기 요청 및 논리 주소에 응답하여 데이터가 상기 메모리 블록에 쓰여지도록 상기 불휘발성 메모리를 제어하도록 구성된 컨트롤러를 포함하고,
상기 컨트롤러는 배드 페이지 맵을 참조하여, 상기 논리 주소가 상기 메모리 블록의 배드 페이지에 매핑되었는지 여부를 판단하고, 상기 논리 주소가 상기 배드 페이지에 대응하는 것으로 판단되는 경우, 상기 논리 주소를 다른 페이지에 재매핑하고 상기 배드 페이지에 더미 데이터를 저장하도록 구성되고,
상기 컨트롤러는,
플래시 변환 계층 및 상기 배드 페이지 맵을 저장하도록 구성된 컨트롤러 메모리; 및
상기 컨트롤러 메모리에 저장된 상기 플래시 변환 계층을 실행하도록 구성된 컨트롤러 프로세서를 포함하고,
상기 플래시 변환 계층은 상기 데이터가 상기 배드 페이지 맵에 따라 배드 페이지들로서 지정되지 않은 페이지들에 쓰여지도록 상기 논리 주소를 상기 불휘발성 메모리의 물리 주소로 매핑하는 메모리 시스템. - 제 5 항에 있어서,
상기 배드 페이지 맵은 비트맵 형태로 저장되는 메모리 시스템. - 제 6 항에 있어서,
상기 배드 페이지 맵은 상기 복수의 페이지들에 대응하는 비트들을 포함하고,
상기 배드 페이지들에 대응되는 비트들은 제1 논리 값으로 설정되고, 상기 배드 페이지들이 아닌 페이지들에 대응되는 비트들은 제2 논리 값으로 설정되는 메모리 시스템. - 제 5 항에 있어서,
상기 컨트롤러는 미리 정해진 검증 조건이 만족되면, 상기 복수의 페이지들에 쓰여진 데이터를 독출하고, 상기 독출된 데이터에 기초하여 상기 복수의 페이지들 각각의 비트 에러율을 판별하고, 상기 판별된 비트 에러율을 비트 에러 임계값과 비교하고, 상기 비트 에러 임계값보다 큰 비트 에러율을 갖는 페이지들이 배드 페이지들로서 분류되도록 상기 배드 페이지 맵을 업데이트하는 메모리 시스템. - 복수의 페이지들로 구성된 하나의 메모리 블록을 포함하는 불휘발성 메모리; 및
외부로부터 수신된 쓰기 요청 및 논리 주소에 응답하여 데이터가 상기 메모리 블록에 쓰여지도록 상기 불휘발성 메모리를 제어하도록 구성된 컨트롤러를 포함하고,
상기 컨트롤러는 배드 페이지 맵을 참조하여, 상기 논리 주소가 상기 메모리 블록의 배드 페이지에 매핑되었는지 여부를 판단하고, 상기 논리 주소가 상기 배드 페이지에 대응하는 것으로 판단되는 경우, 상기 논리 주소를 다른 페이지에 재매핑하고 상기 배드 페이지에 더미 데이터를 쓰도록 구성되고,
상기 메모리 블록에 대해 수행된 소거 동작의 횟수가 미리 정해진 기준치에 도달했는지 여부를 판별하고, 상기 메모리 블록에 대해 수행된 소거 동작의 횟수가 미리 정해진 기준치에 도달된 것으로 판별된 경우, 복수의 다른 페이지들 각각이 배드 페이지인지 여부를 나타내는 정보를 포함하는 배드 페이지 리스트에 기초하여 상기 배드 페이지 맵을 업데이트하고,
상기 논리 주소가 상기 배드 페이지에 대응하는 것으로 판단된 경우, 상기 컨트롤러는 상기 배드 페이지와 워드 라인을 공유하는 페이지에 더미 데이터를 더 쓰도록 구성된 메모리 시스템. - 제 9 항에 있어서,
상기 배드 페이지 맵은 비트맵 형태로 저장되며, 상기 배드 페이지 맵은 상기 복수의 페이지들과 대응하는 비트들을 포함하고,
배드 페이지들에 대응하는 비트들은 제1 논리 값으로 설정되고 상기 배드 페이지들이 아닌 페이지들에 대응되는 비트들은 제2 논리 값으로 설정되는 메모리 시스템.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020130018066A KR102015053B1 (ko) | 2013-02-20 | 2013-02-20 | 불휘발성 메모리 장치 및 그것의 데이터 처리 방법 |
US14/172,948 US9348708B2 (en) | 2013-02-20 | 2014-02-05 | Memory system performing address mapping according to bad page map |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020130018066A KR102015053B1 (ko) | 2013-02-20 | 2013-02-20 | 불휘발성 메모리 장치 및 그것의 데이터 처리 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20140104189A KR20140104189A (ko) | 2014-08-28 |
KR102015053B1 true KR102015053B1 (ko) | 2019-08-27 |
Family
ID=51352188
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020130018066A KR102015053B1 (ko) | 2013-02-20 | 2013-02-20 | 불휘발성 메모리 장치 및 그것의 데이터 처리 방법 |
Country Status (2)
Country | Link |
---|---|
US (1) | US9348708B2 (ko) |
KR (1) | KR102015053B1 (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11481272B2 (en) | 2020-03-09 | 2022-10-25 | SK Hynix Inc. | Memory controller and method of operating the same |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102233074B1 (ko) * | 2014-10-08 | 2021-03-30 | 삼성전자주식회사 | 저장 장치 및 그것의 신뢰성 검증 방법 |
KR20160070920A (ko) * | 2014-12-10 | 2016-06-21 | 에스케이하이닉스 주식회사 | 맵 테이블을 갖는 컨트롤러 및 반도체 메모리 장치를 포함하는 메모리 시스템 및 그것의 동작 방법 |
KR102211868B1 (ko) | 2014-12-15 | 2021-02-04 | 삼성전자주식회사 | 스토리지 장치 및 스토리지 장치의 동작 방법 |
KR102231441B1 (ko) * | 2014-12-17 | 2021-03-25 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작 방법 |
KR102491624B1 (ko) * | 2015-07-27 | 2023-01-25 | 삼성전자주식회사 | 데이터 저장 장치의 작동 방법과 상기 데이터 저장 장치를 포함하는 시스템의 작동 방법 |
US10643700B2 (en) * | 2015-10-29 | 2020-05-05 | Micron Technology, Inc. | Apparatuses and methods for adjusting write parameters based on a write count |
KR102625637B1 (ko) * | 2016-02-01 | 2024-01-17 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그것의 동작 방법 |
KR102475798B1 (ko) * | 2016-07-14 | 2022-12-12 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작 방법 |
KR20180064588A (ko) * | 2016-12-05 | 2018-06-15 | 에스케이하이닉스 주식회사 | 메모리 제어 장치 및 방법 |
US10387280B2 (en) | 2017-06-09 | 2019-08-20 | International Business Machines Corporation | Reporting defects in a flash memory back-up system |
US10379758B2 (en) * | 2017-06-26 | 2019-08-13 | Western Digital Technologies, Inc. | Managing system data for a data storage system |
US10437476B2 (en) | 2017-10-23 | 2019-10-08 | Micron Technology, Inc. | Namespaces allocation in non-volatile memory devices |
US10678703B2 (en) * | 2017-11-16 | 2020-06-09 | Micron Technology, Inc. | Namespace mapping structual adjustment in non-volatile memory devices |
KR102532547B1 (ko) * | 2018-04-20 | 2023-05-17 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작 방법 |
KR102098240B1 (ko) * | 2018-05-16 | 2020-04-08 | 주식회사 디에이아이오 | 비휘발성 메모리 시스템 |
KR102533072B1 (ko) * | 2018-08-13 | 2023-05-17 | 에스케이하이닉스 주식회사 | 블록의 상태에 따라 사용 여부를 결정하는 메모리 시스템 및 메모리 시스템의 동작 방법 |
US20210141703A1 (en) * | 2020-12-24 | 2021-05-13 | Intel Corporation | Persistent data structure to track and manage ssd defects |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090125671A1 (en) | 2006-12-06 | 2009-05-14 | David Flynn | Apparatus, system, and method for storage space recovery after reaching a read count limit |
Family Cites Families (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2636745B2 (ja) | 1994-08-23 | 1997-07-30 | 日本電気株式会社 | ページング処理方法とその方式 |
JPH08235070A (ja) | 1995-02-28 | 1996-09-13 | Canon Inc | 主記憶管理方法及びそのシステム |
US6158024A (en) | 1998-03-31 | 2000-12-05 | International Business Machines Corporation | Method and apparatus for structured memory analysis of data processing systems and applications |
KR100644602B1 (ko) * | 2000-10-11 | 2006-11-10 | 삼성전자주식회사 | 플래시메모리를 위한 재사상 제어방법 및 그에 따른플래시 메모리의 구조 |
JP4256198B2 (ja) | 2003-04-22 | 2009-04-22 | 株式会社東芝 | データ記憶システム |
KR100572328B1 (ko) | 2004-07-16 | 2006-04-18 | 삼성전자주식회사 | 배드 블록 관리부를 포함하는 플래시 메모리 시스템 |
KR100575657B1 (ko) | 2004-10-28 | 2006-05-03 | 엘지전자 주식회사 | 낸드 플래시 읽기 방법 |
US7366825B2 (en) * | 2005-04-26 | 2008-04-29 | Microsoft Corporation | NAND flash memory management |
KR100692982B1 (ko) | 2005-08-26 | 2007-03-12 | 삼성전자주식회사 | 배드 블럭 정보가 기록된 난드 타입의 플래시 메모리 |
KR101352512B1 (ko) | 2007-01-15 | 2014-01-17 | 삼성전자주식회사 | 효율적인 메모리 사용을 위한 스택 관리 장치 및 방법 |
KR101091844B1 (ko) * | 2007-05-17 | 2011-12-12 | 삼성전자주식회사 | 고속으로 배드 블록을 검색하는 플래시 메모리 시스템 및그것의 배드 블록 관리 방법 |
US20090259806A1 (en) * | 2008-04-15 | 2009-10-15 | Adtron, Inc. | Flash management using bad page tracking and high defect flash memory |
US7996736B2 (en) | 2008-10-26 | 2011-08-09 | Sandisk 3D Llc | Bad page marking strategy for fast readout in memory |
KR20100091544A (ko) | 2009-02-10 | 2010-08-19 | 삼성전자주식회사 | 메모리 시스템 및 그 마모도 관리 방법 |
KR20110099570A (ko) * | 2010-03-02 | 2011-09-08 | 삼성전자주식회사 | 불휘발성 메모리 장치, 그것의 프로그램 방법, 그리고 그것을 포함하는 메모리 시스템 |
KR101660985B1 (ko) | 2010-07-09 | 2016-10-10 | 에스케이하이닉스 주식회사 | 반도체 메모리 장치 및 그 동작 방법 |
US8832507B2 (en) * | 2010-08-23 | 2014-09-09 | Apple Inc. | Systems and methods for generating dynamic super blocks |
US9235502B2 (en) * | 2011-09-16 | 2016-01-12 | Apple Inc. | Systems and methods for configuring non-volatile memory |
US9164887B2 (en) * | 2011-12-05 | 2015-10-20 | Industrial Technology Research Institute | Power-failure recovery device and method for flash memory |
US9069657B2 (en) * | 2011-12-12 | 2015-06-30 | Apple Inc. | LBA bitmap usage |
US9135161B2 (en) * | 2012-06-12 | 2015-09-15 | International Business Machines Corporation | Flash translation layer system for maintaining data versions in solid state memory |
-
2013
- 2013-02-20 KR KR1020130018066A patent/KR102015053B1/ko active IP Right Grant
-
2014
- 2014-02-05 US US14/172,948 patent/US9348708B2/en active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090125671A1 (en) | 2006-12-06 | 2009-05-14 | David Flynn | Apparatus, system, and method for storage space recovery after reaching a read count limit |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11481272B2 (en) | 2020-03-09 | 2022-10-25 | SK Hynix Inc. | Memory controller and method of operating the same |
Also Published As
Publication number | Publication date |
---|---|
US9348708B2 (en) | 2016-05-24 |
KR20140104189A (ko) | 2014-08-28 |
US20140237286A1 (en) | 2014-08-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102015053B1 (ko) | 불휘발성 메모리 장치 및 그것의 데이터 처리 방법 | |
US11093384B2 (en) | User device including a nonvolatile memory device and a data write method thereof | |
CN106448737B (zh) | 读取闪存数据的方法、装置以及固态驱动器 | |
KR102190694B1 (ko) | 불휘발성 메모리 시스템 및 그것의 동작 방법 | |
KR102291507B1 (ko) | 메모리 컨트롤러의 동작 방법 | |
KR102295208B1 (ko) | 프로그램 영역을 동적으로 할당하는 저장 장치 및 그것의 프로그램 방법 | |
US9891838B2 (en) | Method of operating a memory system having a meta data manager | |
US10606521B2 (en) | Memory system and operating method thereof | |
KR20150129941A (ko) | 메모리 컨트롤러의 동작 방법 및 불휘발성 메모리 장치 및 메모리 컨트롤러를 포함하는 불휘발성 메모리 시스템 | |
US8812775B2 (en) | System and method for controlling nonvolatile memory | |
KR102187521B1 (ko) | 불휘발성 메모리 및 메모리 컨트롤러를 포함하는 메모리 시스템 및 불휘발성 메모리에 데이터를 프로그램하는 프로그램 방법 | |
JP2014022031A (ja) | 不揮発性メモリ装置とそれを含むメモリシステム及びそれらのメモリブロック管理、消去、及びプログラム方法 | |
US10061695B2 (en) | Memory system and operating method thereof | |
US20130103893A1 (en) | System comprising storage device and related methods of operation | |
US20130046918A1 (en) | Method writing meta data with reduced frequency | |
CN107179880B (zh) | 储存装置、其控制单元、及可用于储存装置的数据搬移方法 | |
US11288189B2 (en) | Memory controller and method of operating the same | |
US20160378375A1 (en) | Memory system and method of operating the same | |
KR20120120795A (ko) | 데이터 저장 시스템 및 그의 데이터 리텐션 방법 | |
CN112749101A (zh) | 控制器和存储器系统 | |
US8711610B2 (en) | Non-volatile memory array and device using erase markers | |
US11762769B2 (en) | Memory controller based on flush operation and method of operating the same | |
CN105868046A (zh) | 存储装置中管理、写入及加载固件代码的方法 | |
US9229798B2 (en) | Error handling method, memory storage device and memory controlling circuit unit | |
US9672913B1 (en) | Semiconductor memory device and operating method thereof |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |