KR102012310B1 - 데이터 저장 장치의 동작 방법, 데이터 저장 장치 및 이를 이용한 시스템 - Google Patents
데이터 저장 장치의 동작 방법, 데이터 저장 장치 및 이를 이용한 시스템 Download PDFInfo
- Publication number
- KR102012310B1 KR102012310B1 KR1020120086317A KR20120086317A KR102012310B1 KR 102012310 B1 KR102012310 B1 KR 102012310B1 KR 1020120086317 A KR1020120086317 A KR 1020120086317A KR 20120086317 A KR20120086317 A KR 20120086317A KR 102012310 B1 KR102012310 B1 KR 102012310B1
- Authority
- KR
- South Korea
- Prior art keywords
- distribution
- memory cell
- threshold voltage
- data
- partial
- Prior art date
Links
Images
Classifications
-
- 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/10—Programming or data input circuits
-
- 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
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/56—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
- G11C11/5621—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
- G11C11/5628—Programming or writing circuits; Data input circuits
-
- 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
-
- 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/7203—Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
-
- 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/3418—Disturbance prevention or evaluation; Refreshing of disturbed memory data
-
- 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/3418—Disturbance prevention or evaluation; Refreshing of disturbed memory data
- G11C16/3427—Circuits or methods to prevent or reduce disturbance of the state of a memory cell when neighbouring cells are read or written
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Read Only Memory (AREA)
Abstract
데이터 저장 장치의 동작 방법 및 이를 이용한 시스템이 제공된다. 상기 데이터 저장 장치의 동작 방법은 제1 워드라인 및 제2 워드라인을 포함하는 메모리 셀 어레이와, 상기 제2 워드 라인에 프로그램할 제2 데이터가 저장된 버퍼를 제공하고, 상기 버퍼로부터 상기 제2 데이터를 리드하고, 상기 제1 워드라인에 제1 데이터를 프로그램하되, 상기 제2 데이터를 기초로 상기 제1 데이터의 프로그램 조건을 변경하는 것을 포함한다.
Description
본 발명은 데이터 저장 장치의 동작 방법, 데이터 저장 장치 및 이를 이용한 시스템에 관한 것이다.
반도체 메모리 장치는 실리콘(Si), 게르마늄(Ge), 비화 갈륨(GaAs), 인화인듐(InP) 등과 같은 반도체를 이용하여 구현되는 기억장치이다. 반도체 메모리 장치는 크게 휘발성 메모리 장치와 비휘발성 메모리 장치로 구분된다.
휘발성 메모리 장치는 전원 공급이 차단되면 저장하고 있던 데이터가 소멸되는 메모리 장치이다. 휘발성 메모리 장치는 SRAM(Static RAM), DRAM(Dynamic RAM), SDRAM(Synchronous DRAM) 등을 포함한다. 비휘발성 메모리 장치는 전원 공급이 차단되어도 저장하고 있던 데이터를 유지하는 메모리 장치이다. 비휘발성 메모리 장치는 플래시 메모리 장치, ROM(Read Only Memory), PROM(Programmable ROM), EPROM(Electrically Programmable ROM), EEPROM(Electrically Erasable and Programmable ROM), 저항성 메모리 장치(예를 들어, PRAM(Phase-change RAM), FRAM(Ferroelectric RAM), RRAM(Resistive RAM)) 등을 포함한다.
한편, 플래시 메모리 장치에서, 소거 상태 분포의 위쪽 부분(upper portion)에 해당하는 메모리 셀의 문턱전압은, 인접 셀과의 커플링(coupling), 디스터브(disturb) 등에 의해서 프로그램 상태 분포 쪽으로 이동되기 쉽다. 즉, 에러가 쉽게 발생한다.
본 발명이 해결하려는 과제는, 효과적으로 비트에러율을 개선할 수 있는, 데이터 저장 장치의 구동 방법을 제공하는 것이다.
본 발명이 해결하려는 다른 과제는, 효과적으로 비트에러율을 개선할 수 있는, 데이터 저장 장치를 제공하는 것이다.
본 발명이 해결하려는 또 다른 과제는, 효과적으로 비트에러율을 개선할 수 있는 데이터 저장 시스템을 제공하는 것이다.
본 발명이 해결하려는 과제들은 이상에서 언급한 과제들로 제한되지 않으며, 언급되지 않은 또 다른 과제들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
상기 과제를 해결하기 위한 본 발명의 데이터 저장 장치의 동작 방법의 일 면(aspect)은 제1 워드라인 및 제2 워드라인을 포함하는 메모리 셀 어레이와, 상기 제2 워드 라인에 프로그램할 제2 데이터가 저장된 버퍼를 제공하고, 상기 버퍼로부터 상기 제2 데이터를 리드하고, 상기 제1 워드라인에 제1 데이터를 프로그램하되, 상기 제2 데이터를 기초로 상기 제1 데이터의 프로그램 조건을 변경하는 것을 포함한다.
제2 데이터를 프로그램하는 것을 더 포함할 수 있다.
상기 제1 데이터의 프로그램 조건을 변경하는 것은, 상기 제1 데이터를 프로그램하기 위한 프로그램 전압을 변경할 수 있다.
상기 프로그램 전압은, 프로그램 루프별로 시작전압부터 델타전압만큼 단계적으로 증가되는 ISPP(Incremental step pulse programming) 전압일 수 있다.
상기 제1 데이터의 프로그램 조건을 변경하는 것은, 상기 제2 데이터를 기초로 상기 델타전압 또는 시작전압을 변경할 수 있다.
상기 프로그램 조건을 변경하는 것은, 베리파이(verify) 전압을 변경할 수 있다.
상기 제1 워드라인에 제1 데이터를 프로그램하는 것은, 상기 제1 워드라인에 연결된 다수의 메모리 셀이 제1 문턱전압 분포의 제1 부분 분포와 제2 부분 분포 중 어디에 속하는지 센싱하되, 상기 제1 부분 분포와 상기 제2 부분 분포는 제1 문턱전압 분포 내에 포함되며 서로 오버랩되지 않고, 상기 제2 데이터를 기초로, 상기 제2 부분 분포에 해당하는 다수의 메모리 셀 중에서 에러율이 높은 메모리 셀을 선정하고, 상기 선정된 에러율이 높은 메모리 셀을, 상기 제1 문턱전압 분포와 다른 제2 문턱전압 분포에 해당하도록 상태이동하는 것을 포함할 수 있다.
상기 제2 데이터에 무관하게, 상기 제1 부분 분포에 해당하는 다수의 메모리 셀을 제2 문턱전압 분포로 상태이동하는 것을 포함할 수 있다.
상기 센싱하는 것은, 상기 다수의 메모리 셀의 문턱전압을 서로 다른 제1 기준 전압 및 제2 기준 전압과 비교하되, 제1 기준 전압보다 큰 문턱전압을 갖는 메모리 셀은, 상기 제1 부분 분포에 해당하고, 제1 기준 전압과 상기 제2 기준 전압 사이의 문턱전압을 갖는 메모리 셀은, 상기 제2 부분 분포에 해당할 수 있다.
상기 제1 부분 분포에 해당되는 다수의 메모리 셀 중 A(단, 0<A≤100)%를 상기 제1 문턱전압 분포와 다른 제2 문턱전압 분포에 해당하도록 상태이동하고, 상기 제2 부분 분포에 해당하는 다수의 메모리 셀 중 B(단, 0<B≤100, B<A)%를 상기 제2 문턱전압 분포에 해당하도록 상태이동하는 것을 포함할 수 있다.
상기 과제를 해결하기 위한 본 발명의 데이터 저장 장치의 동작 방법의 다른 면은 다수의 메모리 셀이 제1 부분 분포와 제2 부분 분포 중 어디에 속하는지 센싱하되, 상기 제1 부분 분포와 상기 제2 부분 분포는 제1 문턱전압 분포 내에 포함되며 서로 오버랩되지 않고, 상기 제1 부분 분포에 해당되는 다수의 메모리 셀 중 A(단, 0<A≤100)%를 상기 제1 문턱전압 분포와 다른 제2 문턱전압 분포에 해당하도록 상태이동하고, 상기 제2 부분 분포에 해당하는 다수의 메모리 셀 중 B(단, 0<B≤100, B<A)%를 상기 제2 문턱전압 분포에 해당하도록 상태이동하는 것을 포함할 수 있다.
상기 제1 문턱전압 분포는 소거 상태 분포이고, 상기 제2 문턱전압 분포는 프로그램 상태 분포일 수 있다.
상기 센싱하는 것은, 상기 다수의 메모리 셀의 문턱전압을 서로 다른 제1 기준 전압 및 제2 기준 전압과 비교하는 것을 포함할 수 있다. 상기 제1 기준 전압보다 큰 문턱전압을 갖는 메모리 셀은, 상기 제1 부분 분포에 해당할 수 있다. 상기 제1 기준 전압과 상기 제2 기준 전압 사이의 문턱전압을 갖는 메모리 셀은, 상기 제2 부분 분포에 해당할 수 있다.
상기 제1 부분 분포에 해당하는 다수의 메모리 셀 전부를 상기 제2 문턱전압 분포에 해당하도록 상태이동하고, 상기 제2 부분 분포에 해당하는 다수의 메모리 셀 일부를 상기 제2 문턱전압 분포에 해당하도록 상태이동할 수 있다.
상기 센싱한 후에, 상기 제2 부분 분포에 해당하는 다수의 메모리 셀 중에서 에러율이 높은 메모리 셀을 선정하는 것을 더 포함할 수 있다.
상기 제2 부분 분포에 해당하는 메모리 셀의 주변 메모리 셀에 프로그램될 데이터를 기초로, 에러율이 높은 메모리 셀을 선정할 수 있다. 상기 주변 메모리 셀은, 상기 제2 부분 분포에 해당하는 메모리 셀의 상위 워드라인과 연결된 메모리 셀일 수 있다. 또는, 상기 주변 메모리 셀은, 상기 제2 부분 분포에 해당하는 메모리 셀과 동일한 워드라인과 연결된 메모리 셀일 수 있다. 또는, 상기 주변 메모리 셀은, 상기 제2 부분 분포에 해당하는 메모리 셀과 동일한 비트라인과 연결된 메모리 셀일 수 있다. 상기 제1 부분 분포에 해당하는 다수의 메모리 셀 중에서 에러율이 높은 메모리 셀을 선정하는 것을 더 포함할 수 있다.
상기 센싱하는 것은, 상기 다수의 메모리 셀이 제1 내지 제3 부분 분포 중 어디에 속하는지를 센싱하되, 상기 제2 내지 제3 부분 분포는 제1 문턱전압 분포 내에 포함되며 서로 오버랩되지 않고, 상기 상태이동하는 것은, 상기 제3 부분 분포에 해당하는 다수의 메모리 셀 중 C(단, 0<C≤100, C<B)%를 상기 제2 문턱전압 분포에 해당하도록 상태이동하는 것을 더 포함할 수 있다.
상기 상태이동한 후에, 온칩 버퍼드 프로그램(on-chip buffered program) 동작을 수행하는 것을 더 포함할 수 있다.
상기 과제를 해결하기 위한 본 발명의 데이터 저장 장치의 동작 방법의 또 다른 면은 다수의 메모리 셀이 제1 부분 분포와 제2 부분 분포 중 어디에 속하는지 센싱하되, 상기 제1 부분 분포와 상기 제2 부분 분포는 제1 문턱전압 분포 내에 포함되며 서로 오버랩되지 않고, 상기 제2 부분 분포에 해당하는 다수의 메모리 셀 중에서 에러율이 높은 메모리 셀을 선정하고, 상기 선정된 에러율이 높은 메모리 셀을, 상기 제1 문턱전압 분포와 다른 제2 문턱전압 분포에 해당하도록 상태이동하는 것을 포함할 수 있다.
상기 제2 부분 분포에 해당하는 메모리 셀의 주변 메모리 셀에 프로그램될 데이터를 기초로, 에러율이 높은 메모리 셀을 선정할 수 있다. 상기 주변 메모리 셀은, 상기 제2 부분 분포에 해당하는 메모리 셀의 상위 워드라인과 연결된 메모리 셀일 수 있다. 또는, 상기 주변 메모리 셀은, 상기 제2 부분 분포에 해당하는 메모리 셀과 동일한 워드라인과 연결된 메모리 셀일 수 있다. 상기 주변 메모리 셀은, 상기 제2 부분 분포에 해당하는 메모리 셀과 동일한 비트라인과 연결된 메모리 셀일 수 있다.
상기 상태이동한 후에, 온칩 버퍼드 프로그램(on-chip buffered program) 동작을 수행하는 것을 더 포함할 수 있다.
상기 제1 부분 분포에 해당하는 다수의 메모리 셀 전부를 상기 제2 문턱전압 분포에 해당하도록 상태이동할 수 있다.
상기 제1 부분 분포에 해당하는 다수의 메모리 셀 중에서 에러율이 높은 메모리 셀을 선정하는 것을 더 포함할 수 있다.
상기 다른 과제를 해결하기 위한 본 발명의 데이터 저장 시스템의 일 면은 다수의 메모리 셀을 포함하는 메모리 장치; 및 상기 메모리 장치를 제어하는 컨트롤러를 포함하되, 상기 컨트롤러는 상기 다수의 메모리 셀이 제1 부분 분포와 제2 부분 분포 중 어디에 속하는지 센싱하되, 상기 제1 부분 분포와 상기 제2 부분 분포는 제1 문턱전압 분포 내에 포함되며 서로 오버랩되지 않고, 상기 제1 부분 분포에 해당되는 다수의 메모리 셀 중 A(단, 0<A≤100)%를 상기 제1 문턱전압 분포와 다른 제2 문턱전압 분포에 해당하도록 상태이동하고, 상기 제2 부분 분포에 해당하는 다수의 메모리 셀 중 B(단, 0<B≤100, B<A)%를 상기 제2 문턱전압 분포에 해당하도록 상태이동한다.
여기서, 상기 제1 문턱전압 분포는 소거 상태 분포이고, 상기 제2 문턱전압 분포는 프로그램 상태 분포일 수 있다.
상기 센싱하는 것은, 상기 다수의 메모리 셀의 문턱전압을 서로 다른 제1 기준 전압 및 제2 기준 전압과 비교하는 것을 포함할 수 있다.
상기 제1 부분 분포에 해당하는 다수의 메모리 셀 전부를 상기 제2 문턱전압 분포에 해당하도록 상태이동하고, 상기 제2 부분 분포에 해당하는 다수의 메모리 셀 일부를 상기 제2 문턱전압 분포에 해당하도록 상태이동할 수 있다.
상기 센싱한 후에, 상기 제2 부분 분포에 해당하는 다수의 메모리 셀 중에서 에러율이 높은 메모리 셀을 선정하는 것을 더 포함할 수 있다. 상기 제2 부분 분포에 해당하는 메모리 셀의 주변 메모리 셀에 프로그램될 데이터를 기초로, 에러율이 높은 메모리 셀을 선정할 수 있다. 상기 주변 메모리 셀은, 상기 제2 부분 분포에 해당하는 메모리 셀의 상위 워드라인과 연결된 메모리 셀일 수 있다. 또는, 상기 주변 메모리 셀은, 상기 제2 부분 분포에 해당하는 메모리 셀과 동일한 워드라인과 연결된 메모리 셀일 수 있다. 또는, 상기 주변 메모리 셀은, 상기 제2 부분 분포에 해당하는 메모리 셀과 동일한 비트라인과 연결된 메모리 셀일 수 있다.
상기 상태이동한 후에, 온칩 버퍼드 프로그램(on-chip buffered program) 동작을 수행하는 것을 더 포함할 수 있다.
본 발명의 기타 구체적인 사항들은 상세한 설명 및 도면에 포함되어 있다.
도 1은 본 발명의 몇몇 실시예에 따른 데이터 저장 장치의 동작 방법을 설명하기 위한 흐름도이다.
도 2a 내지 도 2d는 공격셀과 피해셀의 관해 설명하기 위한 블록도이다.
도 3 및 도 4는 본 발명의 몇몇 실시예에 따른 데이터 저장 시스템을 설명하기 위한 블록도이다.
도 5는 본 발명의 제1 실시예에 따른 데이터 저장 장치의 동작 방법을 설명하기 위한 도면이다.
도 6은 본 발명의 제2 실시예에 따른 데이터 저장 장치의 동작 방법을 설명하기 위한 도면이다.
도 7는 본 발명의 제3 실시예에 따른 데이터 저장 장치의 동작 방법을 설명하기 위한 도면이다.
도 8은 도 7의 데이터 저장 장치의 동작 방법에 사용되는 데이터 저장 시스템의 블록도이다.
도 9 및 도 10은 도 7의 데이터 저장 장치의 동작 방법을 더 자세히 설명하기 위한 도면이다.
도 11은 본 발명의 제4 실시예에 따른 데이터 저장 장치의 동작 방법을 설명하기 위한 흐름도이다.
도 12는 도 11의 데이터 저장 장치의 동작 방법을 설명하기 위한 분포도이다.
도 13은 본 발명의 제5 실시예에 따른 데이터 저장 장치의 동작 방법을 설명하기 위한 블록도이다.
도 14는 도 13의 데이터 저장 장치의 동작 방법을 설명하기 위한 분포도이다.
도 15는 본 발명의 제6 실시예에 따른 데이터 저장 장치의 동작 방법을 설명하기 위한 블록도이다.
도 16는 도 15의 데이터 저장 장치의 동작 방법을 설명하기 위한 분포도이다.
도 17 내지 도 20은 본 발명의 몇몇 실시예에 따른 데이터 저장 시스템의 응용예를 보여주는 블록도이다.
도 2a 내지 도 2d는 공격셀과 피해셀의 관해 설명하기 위한 블록도이다.
도 3 및 도 4는 본 발명의 몇몇 실시예에 따른 데이터 저장 시스템을 설명하기 위한 블록도이다.
도 5는 본 발명의 제1 실시예에 따른 데이터 저장 장치의 동작 방법을 설명하기 위한 도면이다.
도 6은 본 발명의 제2 실시예에 따른 데이터 저장 장치의 동작 방법을 설명하기 위한 도면이다.
도 7는 본 발명의 제3 실시예에 따른 데이터 저장 장치의 동작 방법을 설명하기 위한 도면이다.
도 8은 도 7의 데이터 저장 장치의 동작 방법에 사용되는 데이터 저장 시스템의 블록도이다.
도 9 및 도 10은 도 7의 데이터 저장 장치의 동작 방법을 더 자세히 설명하기 위한 도면이다.
도 11은 본 발명의 제4 실시예에 따른 데이터 저장 장치의 동작 방법을 설명하기 위한 흐름도이다.
도 12는 도 11의 데이터 저장 장치의 동작 방법을 설명하기 위한 분포도이다.
도 13은 본 발명의 제5 실시예에 따른 데이터 저장 장치의 동작 방법을 설명하기 위한 블록도이다.
도 14는 도 13의 데이터 저장 장치의 동작 방법을 설명하기 위한 분포도이다.
도 15는 본 발명의 제6 실시예에 따른 데이터 저장 장치의 동작 방법을 설명하기 위한 블록도이다.
도 16는 도 15의 데이터 저장 장치의 동작 방법을 설명하기 위한 분포도이다.
도 17 내지 도 20은 본 발명의 몇몇 실시예에 따른 데이터 저장 시스템의 응용예를 보여주는 블록도이다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 수 있다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 것이며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.
하나의 소자(elements)가 다른 소자와 "접속된(connected to)" 또는 "커플링된(coupled to)" 이라고 지칭되는 것은, 다른 소자와 직접 연결 또는 커플링된 경우 또는 중간에 다른 소자를 개재한 경우를 모두 포함한다. 반면, 하나의 소자가 다른 소자와 "직접 접속된(directly connected to)" 또는 "직접 커플링된(directly coupled to)"으로 지칭되는 것은 중간에 다른 소자를 개재하지 않은 것을 나타낸다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다. "및/또는"은 언급된 아이템들의 각각 및 하나 이상의 모든 조합을 포함한다.
비록 제1, 제2 등이 다양한 소자, 구성요소 및/또는 섹션들을 서술하기 위해서 사용되나, 이들 소자, 구성요소 및/또는 섹션들은 이들 용어에 의해 제한되지 않음은 물론이다. 이들 용어들은 단지 하나의 소자, 구성요소 또는 섹션들을 다른 소자, 구성요소 또는 섹션들과 구별하기 위하여 사용하는 것이다. 따라서, 이하에서 언급되는 제1 소자, 제1 구성요소 또는 제1 섹션은 본 발명의 기술적 사상 내에서 제2 소자, 제2 구성요소 또는 제2 섹션일 수도 있음은 물론이다.
본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 "포함한다(comprises)" 및/또는 "포함하는(comprising)"은 언급된 구성요소, 단계, 동작 및/또는 소자는 하나 이상의 다른 구성요소, 단계, 동작 및/또는 소자의 존재 또는 추가를 배제하지 않는다.
다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있을 것이다. 또 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다.
도 1은 본 발명의 몇몇 실시예에 따른 데이터 저장 장치의 동작 방법을 설명하기 위한 흐름도이다. 도 2a 내지 도 2d는 공격셀과 피해셀의 관해 설명하기 위한 블록도이다.
우선, 도 1을 참조하면, 메모리 셀 어레이(1101)와 버퍼(1110)가 제공된다(S101).
구체적으로, 메모리 셀 어레이(1101)에는 다수의 워드라인(WL0, WL1, WL2), 다수의 비트라인(BL0, BL1, BL2)과, 다수의 메모리 셀(MC0~MC8)을 포함할 수 있다. 각 메모리 셀(MC0~MC8)은 워드 라인(WL0, WL1, WL2)과 비트라인(BL0, BL1, BL2)이 교차되는 영역에 형성될 수 있으나, 이에 한정되지 않는다. 도면에서는 예시적으로, 제1 내지 제3 워드라인(WL0, WL1, WL3)과, 제1 내지 제3 비트라인(BL0, BL1, BL3)과, 각 워드라인(WL0, WL1, WL3)마다 3개의 메모리 셀(MC0~MC8)이 배치된 것으로 도시하였으나, 이에 한정되지 않는다.
또한, 제1 워드 라인(WL0)에서 제3 워드 라인(WL2) 순서로 프로그램될 수 있다. 즉, 제1 워드라인(WL0)과 연결된 메모리 셀(MC7, MC6, MC8)에 제1 데이터(DATA1)을 프로그램한 후, 제2 워드라인(WL1)과 연결된 메모리 셀(MC1, MC0, MC2)에 제2 데이터(DATA2)를 프로그램한 후, 제3 워드라인(WL2)과 연결된 메모리 셀(MC4, MC3, MC5)에 제3 데이터(DATA3)를 프로그램할 수 있다.
버퍼(1110)는 메모리 셀 어레이(1101)에 프로그램될 데이터가 미리 저장되어 있는 영역이다. 즉, 버퍼(1110)에는 제1 내지 제3 워드라인(WL0, WL1, WL2)과 연결된 메모리 셀(MC0~MC8)에 프로그램할 제1 데이터(DATA1), 제2 데이터(DATA2), 제3 데이터(DATA3)가 저장되어 있을 수 있다. 또한, 버퍼(1110)는 후술하겠으나, 비휘발성 메모리 장치(1100) 내에 위치할 수도 있고, 컨트롤러(1200) 내에 위치할 수도 있다. 예를 들어, 버퍼(1110)가 비휘발성 메모리 장치(1100) 내에 위치할 경우에는, 버퍼(1110)는 플래시 메모리 셀을 이용하여 구성될 수 있고, 버퍼(1110)가 컨트롤러(1200) 내에 위치할 때에는, SRAM 셀을 이용하여 구성될 수 있으나, 이에 한정되지 않는다.
이어서, 제1 워드라인(WL0)에 제1 데이터(DATA1)를 프로그램하기 전에, 버퍼(1110)로부터 제2 데이터(DATA2)를 리드한다(S102). 여기서, 제2 데이터(DATA2)는 아직 메모리 셀 어레이(1101)에 프로그램되지 않은 데이터이다.
이어서, 제1 워드라인(WL0)에 제1 데이터(DATA1)를 프로그램하되, 제2 데이터(DATA2)를 기초로 제1 데이터(DATA1)의 프로그램 조건을 변경한다(S103).
제2 워드라인(WL1)에 제2 데이터(DATA2)를 프로그램할 때에는, 버퍼(1110)로부터 제3 데이터(DATA3)를 리드하여 제3 데이터(DATA3)를 기초로 제2 데이터(DATA2)의 프로그램 조건을 변경한다. 여기서, 제3 데이터(DATA3)는 아직 메모리 셀 어레이(1101)에 프로그램되지 않은 데이터이다.
이와 같이 하는 이유를 설명하면 다음과 같다.
구체적으로, 메모리 셀은 인접한 셀과의 커플링(coupling), 프로그램/패스/리드 디스터브(disturb) 등에 의해서, 에러가 발생할 수 있다. 즉, 메모리 셀은 주변 메모리 셀의 영향을 받는다.
예를 들어, 도 2a에 도시된 것과 같이, 메모리 셀(MC0)의 문턱전압은 주변 메모리 셀(MC1~MC8)의 영향(70)을 받아서 시프트될 수 있다. 이와 같이 영향을 주는 주변 메모리 셀(MC1~MC8)을 공격셀(aggressor cell)이라고 부른다. 영향을 받는 메모리 셀(MC0)을 피해셀(victim cell)이라고 부른다. 예를 들어, 공격셀을 프로그램할 때 공격셀에 높은 프로그램 전압을 인가하면, 피해셀도 영향을 받을 수 있다. 즉, 피해셀에 에러가 발생할 수 있다. 주변 메모리 셀(MC1~MC8)에 프로그램될 데이터를 기초로, 메모리 셀(MC0)이 높은 에러율이 갖는지 확인할 수 있다.
예를 들면, 메모리 셀(MC0~MC8)이 4비트 멀티레벨 셀이라고 가정한다. 즉, 메모리 셀(MC0~MC8)에는 0000 내지 1110 이 프로그램될 수 있다. 전체 주변 메모리 셀(MC1~MC8) 중 기설정된 개수의 주변 메모리 셀(MC1~MC8)에 예를 들어, 1110, 1101, 1100 이 프로그램되는 것을, 메모리 셀(MC0)이 "높은 에러율"을 갖는 것으로 설정할 수 있다.
본 발명의 몇몇 실시예에 따른 반도체 저장 장치의 동작 방법에 따르면, 메모리 셀(MC0)이 높은 에러율을 가질 가능성이 높은 경우에는, 메모리 셀(MC0)의 프로그램 조건을 변경할 수 있다.
일 예를 들면, 도 2b에 도시된 것과 같이, 메모리 셀(MC0)은 상위 워드라인(WL2)에 연결된 적어도 하나의 메모리 셀(MC4, MC3, MC5)에 의해서 영향을 받을 수 있다.
프로그램 동작시 인가되는 프로그램 전압에 의해 크게 영향을 받을 수 있다. 프로그램 동작은, 하위 워드라인(WL0)과 연결된 메모리 셀(MC7, MC6, MC8), 동일 워드라인(WL1)과 연결된 메모리 셀(MC1, MC0, MC2), 상위 워드라인(WL2)과 연결된 메모리 셀(MC4, MC3, MC5) 순서로 진행될 수 있다. 이러한 경우, 도 2b에 도시된 것과 같이, 메모리 셀(MC0)은 특히 상위 워드라인(WL2)과 연결된 메모리 셀(MC4, MC3, MC5)에 프로그램될 데이터에 영향을 받을 수 있다. 즉, 메모리 셀(MC4, MC3, MC5)에 높은 문턱전압에 대응되는 데이터가 프로그램될 경우, 메모리 셀(MC4, MC3, MC5)에 높은 프로그램 전압이 인가될 수 있다. 이러한 경우, 메모리 셀(MC0)도 영향을 받아 메모리 셀(MC0)의 문턱전압이 높아질 수 있다.
다른 예를 들면, 도 2c에 도시된 것과 같이, 메모리 셀(MC0)은 동일한 워드 라인(WL1)과 연결된 메모리 셀(MC1, MC2)에 의해서도 영향을 받기도 한다.
즉, 메모리 셀(MC0)은 동일한 워드 라인(WL1)과 연결된 메모리 셀(MC1, MC2)에 프로그램될 데이터에 영향을 받을 수 있다. 즉, 메모리 셀(MC1, MC2)에 높은 문턱전압에 대응되는 데이터가 프로그램될 경우, 메모리 셀(MC1, MC2)에 높은 프로그램 전압이 인가될 수 있다. 이러한 경우, 메모리 셀(MC0)도 영향을 받아 메모리 셀(MC0)의 문턱전압이 높아질 수 있다.
또 다른 예를 들면, 도 2d에 도시된 것과 같이, 메모리 셀(MC0)은 동일한 비트 라인(BL1)과 연결된 메모리 셀(MC3, MC6)에 의해서도 영향을 받기도 한다.
메모리 셀(MC0)은 동일한 비트 라인(BL1)과 연결된 메모리 셀(MC3, MC6)에 프로그램될 데이터에 영향을 받을 수 있다. 즉, 메모리 셀(MC3, MC6)에 높은 문턱전압에 대응되는 데이터가 프로그램될 경우, 메모리 셀(MC3, MC6)에 높은 프로그램 전압이 인가될 수 있다. 이러한 경우, 메모리 셀(MC0)도 영향을 받아 메모리 셀(MC0)의 문턱전압이 높아질 수 있다.
도면으로 따로 표시하지 않았으나, 도 2b와 도 2c를 이용하여 설명한 내용을 조합하여, 주변 메모리 셀(MC4, MC3, MC5, MC1, MC2)에 프로그램될 데이터를 기초로, 에러율을 예측할 수도 있다. 또는 도 2b와 도 2d을 이용하여 설명한 내용을 조합할 수도 있고, 도 2c와 도 2d을 이용하여 설명한 내용을 조합할 수도 있고, 도 2b, 도 2c, 도 2d을 이용하여 설명한 내용을 조합할 수도 있다.
한편, 프로그램 조건을 변경하는 것은 다양한 방식이 가능하다.
예를 들어, 데이터를 프로그램하기 위한 프로그램 전압을 변경할 수 있다. 예를 들어, 프로그램 전압의 크기를 변경할 수도 있고, 프로그램 전압이 인가되는 시간을 변경할 수도 있다.
또는, ISPP(Incremental step pulse programming) 방식을 이용하여 데이터를 프로그램하는 경우, ISPP 프로그램 전압은 프로그램 루프별로 시작전압부터 델타전압만큼 단계적으로 증가될 수 있다. 이 때, 프로그램 조건을 변경한다는 것은, 예를 들어, 시작전압 또는 델타전압을 변경하는 것일 수 있다(도 5를 이용하여 후술함).
또는, 프로그램 중에는, 프로그램 전압을 인가한 후 데이터가 적절하게 프로그램되었는지 확인하는 베리파이(verify)가 수행될 수 있다. 이 때, 프로그램 조건을 변경한다는 것은, 베리파이 전압을 변경하는 것일 수 있다(도 6을 이용하여 후술함).
또는, 다수의 스텝(step)을 통해서 프로그램이 진행될 수 있다. 예를 들어, 3-스텝 프로그램 방식에 따르면, 프로그램은 1-스텝 프로그램(1-step program), 거친 프로그램(coarse program), 및 정교한 프로그램(fine program)의 순서로 진행될 수 있다. 이 때, 프로그램 조건을 변경한다는 것은, 1-스텝 프로그램, 거친 프로그램, 및 정교한 프로그램 중 적어도 하나의 조건을 변경하는 것일 수 있다(도 7 내지 도 10을 이용하여 후술함).
또는, 높은 에러율을 갖는(즉, 에러발생 가능성이 높은) 메모리 셀을 선정하여, 선정된 메모리 셀을 에러율이 낮은 문턱전압 분포로 상태이동할 수도 있다. 예를 들어, 소거 상태 분포 중 가장 위쪽 부분에 해당하는 메모리 셀은 무조건 가장 낮은 프로그램 상태 분포로 상태이동하고, 소거 상태 분포 중 두번째로 위쪽 부분에 해당하는 메모리 셀은 높은 에러율을 갖는 경우에만 가장 낮은 프로그램 상태 분포로 상태이동할 수 있다(도 11 내지 도 16을 이용하여 후술함).
도 3 및 도 4는 본 발명의 몇몇 실시예에 따른 데이터 저장 시스템을 설명하기 위한 블록도이다.
도 3 및 도 4를 참조하면, 데이터 저장 시스템(1000)은 비휘발성 메모리 장치(데이터 저장 장치)(1100), 버퍼(1110), 컨트롤러(1200)를 포함한다.
컨트롤러(1200)는 호스트(Host) 및 비휘발성 메모리 장치(1100)에 연결된다. 호스트(Host)로부터의 요청에 응답하여, 컨트롤러(1200)는 비휘발성 메모리 장치(1100)를 액세스하도록 구성된다. 예를 들면, 컨트롤러(1200)는 비휘발성 메모리 장치(1100)의 읽기, 쓰기, 소거, 그리고 배경(background) 동작을 제어하도록 구성된다. 컨트롤러(1200)는 비휘발성 메모리 장치(1100) 및 호스트(Host) 사이에 인터페이스를 제공하도록 구성된다. 컨트롤러(1200)는 비휘발성 메모리 장치(1100)를 제어하기 위한 펌웨어(firmware)를 구동하도록 구성된다.
예시적으로, 컨트롤러(1200)는 램(RAM, Random Access Memory), 프로세싱 유닛(processing unit), 호스트 인터페이스(host interface), 그리고 메모리 인터페이스(memory interface)와 같은 잘 알려진 구성 요소들을 더 포함한다. 램(RAM)은 프로세싱 유닛의 동작 메모리, 비휘발성 메모리 장치(1100) 및 호스트(Host) 사이의 캐시 메모리, 그리고 비휘발성 메모리 장치(1100) 및 호스트(Host) 사이의 버퍼 메모리 중 적어도 하나로서 이용된다. 프로세싱 유닛은 컨트롤러(1200)의 제반 동작을 제어한다.
호스트 인터페이스는 호스트(Host) 및 컨트롤러(1200) 사이의 데이터 교환을 수행하기 위한 프로토콜을 포함한다. 예시적으로, 컨트롤러(1200)는 USB (Universal Serial Bus) 프로토콜, MMC (multimedia card) 프로토콜, PCI (peripheral component interconnection) 프로토콜, PCI-E (PCI-express) 프로토콜, ATA (Advanced Technology Attachment) 프로토콜, Serial-ATA 프로토콜, Parallel-ATA 프로토콜, SCSI (small computer small interface) 프로토콜, ESDI (enhanced small disk interface) 프로토콜, 그리고 IDE (Integrated Drive Electronics) 프로토콜 등과 같은 다양한 인터페이스 프로토콜들 중 적어도 하나를 통해 외부(호스트)와 통신하도록 구성된다. 메모리 인터페이스는 비휘발성 메모리 장치(1100)와 인터페이싱한다. 예를 들면, 메모리 인터페이스는 낸드 인터페이스 또는 노어 인터페이스를 포함한다.
데이터 저장 시스템(1000)은 오류 정정 블록을 추가적으로 포함하도록 구성될 수 있다. 오류 정정 블록은 오류 정정 코드(ECC)를 이용하여 비휘발성 메모리 장치(1100)로부터 읽어진 데이터의 오류를 검출하고, 정정하도록 구성된다. 예시적으로, 오류 정정 블록은 컨트롤러(1200)의 구성 요소로서 제공된다. 오류 정정 블록은 비휘발성 메모리 장치(1100)의 구성 요소로서 제공될 수 있다.
컨트롤러(1200) 및 비휘발성 메모리 장치(1100)는 하나의 반도체 장치로 집적될 수 있다. 예시적으로, 컨트롤러(1200) 및 비휘발성 메모리 장치(1100)는 하나의 반도체 장치로 집적되어, 메모리 카드를 구성할 수 있다. 예를 들면, 컨트롤러(1200) 및 비휘발성 메모리 장치(1100)는 하나의 반도체 장치로 집적되어 PC 카드(PCMCIA, personal computer memory card international association), 컴팩트 플래시 카드(CF), 스마트 미디어 카드(SM, SMC), 메모리 스틱, 멀티미디어 카드(MMC, RS-MMC, MMCmicro), SD 카드(SD, miniSD, microSD, SDHC), 유니버설 플래시 기억장치(UFS) 등과 같은 메모리 카드를 구성한다.
컨트롤러(1200) 및 비휘발성 메모리 장치(1100)는 하나의 반도체 장치로 집적되어 반도체 드라이브(SSD, Solid State Drive)를 구성할 수 있다. 반도체 드라이브(SSD)는 반도체 메모리에 데이터를 저장하도록 구성되는 저장 장치를 포함한다. 데이터 저장 시스템(10)이 반도체 드라이브(SSD)로 이용되는 경우, 데이터 저장 시스템(1000)에 연결된 호스트(Host)의 동작 속도는 획기적으로 개선된다.
다른 예로서, 데이터 저장 시스템(1000)은 컴퓨터, UMPC (Ultra Mobile PC), 워크스테이션, 넷북(net-book), PDA (Personal Digital Assistants), 포터블(portable) 컴퓨터, 웹 타블렛(web tablet), 무선 전화기(wireless phone), 모바일 폰(mobile phone), 스마트폰(smart phone), e-북(e-book), PMP(portable multimedia player), 휴대용 게임기, 네비게이션(navigation) 장치, 블랙박스(black box), 디지털 카메라(digital camera), 3차원 수상기(3-dimensional television), 디지털 음성 녹음기(digital audio recorder), 디지털 음성 재생기(digital audio player), 디지털 영상 녹화기(digital picture recorder), 디지털 영상 재생기(digital picture player), 디지털 동영상 녹화기(digital video recorder), 디지털 동영상 재생기(digital video player), 정보를 무선 환경에서 송수신할 수 있는 장치, 홈 네트워크를 구성하는 다양한 전자 장치들 중 하나, 컴퓨터 네트워크를 구성하는 다양한 전자 장치들 중 하나, 텔레매틱스 네트워크를 구성하는 다양한 전자 장치들 중 하나, RFID 장치, 또는 컴퓨팅 시스템을 구성하는 다양한 구성 요소들 중 하나 등과 같은 전자 장치의 다양한 구성 요소들 중 하나로 제공된다.
예시적으로, 비휘발성 메모리 장치(1100) 또는 데이터 저장 시스템(1000)은 다양한 형태들의 패키지로 실장될 수 있다. 예를 들면, 비휘발성 메모리 장치(1100) 또는 데이터 저장 시스템(1000)은 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) 등과 같은 방식으로 패키지화되어 실장될 수 있다.
또는, 버퍼(1110)는 도 3에 도시된 것과 같이, 컨트롤러(1200) 내에 위치할 수 있다. 버퍼(1110) 내에 프로그램될 데이터가 미리 저장되어 있을 수 있다. 버퍼(1110)가 컨트롤러(1200) 내에 위치할 때에는, SRAM 셀을 이용하여 구성될 수 있으나, 이에 한정되지 않는다.
한편, 버퍼(1110)는 도 4에 도시된 것과 같이, 비휘발성 메모리 장치(1100) 내에 포함될 수 있다. 버퍼(1110)가 비휘발성 메모리 장치(1100) 내에 위치할 경우에는, 버퍼(1110)는 플래시 메모리 셀을 이용하여 구성될 수 있다. 본 발명의 몇몇 실시예에 따른 데이터 저장 장치의 동작 방법은, 온칩 버퍼드 프로그램(on chip buffered program)을 채용한 데이터 저장 시스템에 적용될 수도 있다. 온칩 버퍼드 프로그램은 메모리 장치 내의 버퍼(1110)에 프로그램될 데이터를 먼저 저장하고, 그 저장된 데이터를 이용하여 메모리 셀 어레이에 프로그램하는 것이다. 따라서, 상위 워드라인과 연결된 메모리 셀에 어떤 데이터가 프로그램되는지를 쉽게 알 수 있다.
버퍼(1110)는 예를 들어, 싱글 레벨 메모리 셀 블록 형태일 수 있으나, 이에 한정되는 것은 아니다. 비휘발성 메모리 장치(1100) 내에 버퍼(1110)가 있기 때문에, 컨트롤러(1200)에 버퍼(예를 들어, SRAM 버퍼)가 포함되어 있지 않아도 무방하다. 즉, 버퍼가 포함되지 않는 컨트롤러(1200)와 버퍼(1110)가 포함된 비휘발성 메모리 장치(1100)가 서로 연동가능하다.
도 5는 본 발명의 제1 실시예에 따른 데이터 저장 장치의 동작 방법을 설명하기 위한 도면이다.
도 5를 참조하면, 본 발명의 제1 실시예에 따른 데이터 저장 장치의 동작 방법에서, 데이터를 프로그램하기 위한 프로그램 전압을 변경할 수 있다. 예를 들어, 프로그램 전압의 크기를 변경할 수도 있고, 프로그램 전압이 인가되는 시간을 변경할 수도 있다.
구체적으로, ISPP(Incremental step pulse programming) 방식을 이용하여 데이터를 프로그램할 수 있다.
ISPP 프로그램 전압(210)은 프로그램 루프별로 시작전압(a1)부터 타겟전압(b)까지 델타전압(ΔV1)만큼 단계적으로 증가될 수 있다.
그런데, 주변 메모리 셀에 프로그램될 데이터를 기초로 하여, 프로그램 조건이 변경될 수 있다.
구체적으로, 변경된 ISPP 프로그램 전압(220)은 델타전압(ΔV1)이 변경될 수 있다. 즉, 주변 메모리 셀에 프로그램될 데이터에 따라서, 델타전압(ΔV2)이 증가되거나, 감소될 수 있다.
또는, 변경된 ISPP 프로그램 전압(230)은 시작전압(a2)이 변경될 수 있다. 즉, 주변 메모리 셀에 프로그램될 데이터에 따라서, 시작전압(a2)이 증가되거나, 감소될 수 있다.
변경된 ISPP 프로그램 전압(240)은 시작전압(a2)과 델타전압(ΔV1) 모두가 변경될 수 있다. 즉, 주변 메모리 셀에 프로그램될 데이터에 따라서, 시작전압(a2)이 증가되거나, 감소될 수 있고, 델타전압(ΔV2)이 증가되거나, 감소될 수 있다. 도면에서는 예시적으로, 시작전압(a2)과 델타전압(ΔV2)이 모두 증가된 경우를 도시하였다.
도 6은 본 발명의 제2 실시예에 따른 데이터 저장 장치의 동작 방법을 설명하기 위한 도면이다.
도 6을 참조하면, 본 발명의 제2 실시예에 따른 데이터 저장 장치의 동작 방법에서, 프로그램 전압을 인가한 후 데이터가 적절하게 프로그램되었는지 확인하는 베리파이(verify)가 수행될 수 있다.
이 때, 주변 메모리 셀에 프로그램될 데이터에 따라서, 베리파이 전압(Vv1, Vv2)이 증가되거나 감소될 수 있다. 도면에서는 예시적으로, 베리파이 전압(Vv1)이 베리파이 전압(Vv2)으로 감소된 경우를 도시하였다.
도 7는 본 발명의 제3 실시예에 따른 데이터 저장 장치의 동작 방법을 설명하기 위한 도면이다. 구체적으로, 3-스텝 프로그램 방식에 따라, 메모리 셀에 3-비트 데이터를 프로그램할 때 변화되는 문턱전압 분포를 보여주는 도면이다. 또한, 이하에서는 프로그램할 때 어드레스 스크램블(address scramble) 동작이 수행될 수 있다.
도 7을 참조하면, 먼저, 선택된 워드 라인(도 1의 WL0 참조)의 메모리 셀에는 2-페이지 데이터(즉, 제 1 및 제 2 페이지 데이터)가 저장된다. 이때, 도 7의 박스(31)에 도시된 바와 같이, 소거 상태 분포(E)(즉, 소거에 대응되는 문턱전압 분포)에 해당하는 메모리 셀은, 프로그램될 데이터에 따라 프로그램 상태(Q1, Q2, Q3)(즉, 프로그램에 대응되는 문턱전압 분포)에 해당하도록 프로그램된다.
이어서, 인접한 워드 라인(도 1의 WL1 참조)에 속한 메모리 셀의 1-스텝 프로그램 동작이 수행될 수 있다. 이 때, 도 7의 박스(31)의 실선으로 표시된 같이, 워드 라인(WL0)에 속한 1-스텝 프로그램된 메모리 셀의 산포은, 인접한 워드 라인(예를 들면, WL1)에 속한 메모리 셀이 프로그램될 때 생기는 커플링으로 인해 넓어질 수 있다.
이어서, 워드 라인(WL0)에 속한 메모리 셀의 거친 프로그램 동작이 수행된다. 도 7의 박스(32)에 도시된 바와 같이, 예를 들면, 소거 상태 분포(E)에 해당하는 메모리 셀은 프로그램될 데이터에 따라 프로그램 상태 분포(P1)에 해당하도록 프로그램된다. 프로그램 상태 분포(Q1)에 해당하는 메모리 셀은 프로그램될 데이터에 따라 프로그램 상태 분포(P2, P3)에 해당하도록 프로그램된다. 프로그램 상태 분포(Q2)에 해당하는 메모리 셀은 프로그램될 데이터에 따라 프로그램 상태 분포(P4, P5)에 해당하도록 프로그램된다. 프로그램 상태 분포(Q3)에 해당하는 메모리 셀은 프로그램될 데이터에 따라 프로그램 상태 분포(P6, P7)에 해당하도록 프로그램된다.
이어서, 인접한 워드 라인(도 1의 WL2, WL1 참조)에 속한 메모리 셀의 1-스텝 프로그램 동작 및 거친 프로그램 동작이 수행될 수 있다. 이때, 도 7의 박스(32)의 실선으로 도시된 바와 같이, 워드 라인(예를 들면, WL0)에 속한 거친 프로그램된 메모리 셀의 산포가, 인접한 워드 라인들(예를 들면, WL2, WL1)에 속한 메모리 셀이 프로그램될 때 생기는 커플링으로 인해 넓어질 수 있다. 이러한 이유로, 거친 프로그램된 메모리 셀로부터 데이터를 정확하게 읽는 것이 어렵다.
이어서, 워드 라인(WL0)에 속한 메모리 셀의 정교한 프로그램 동작이 수행된다.
워드 라인(WL0)에 속한 메모리 셀이 도 7의 박스(33)에 도시된 바와 같은 최종 문턱전압 분포(P1~P7)을 갖도록 프로그램된다. 앞서 설명된 바와 같이, 정교한 프로그램 동작은 이전에 프로그램된 데이터(예를 들면, 제1 내지 제3 페이지 데이터)를 필요로 하며, 이는 워드 라인(WL0)에 속한 메모리 셀로부터 이전에 프로그램된 데이터를 정확하게 읽는 것이 어렵기 때문에 컨트롤러로부터 제공되는 데이터(또는, 메모리 장치에 의해서 유지되는 데이터)에 의거하여 행해질 수 있다. 도 7의 박스(33)의 실선으로 도시된 바와 같이, 정교한 프로그램된 메모리 셀 역시 인접한 워드 라인들에 속한 메모리 셀의 산포는 프로그램될 때 생기는 커플링으로 인해 넓어질 수 있다.
이후, 각 워드 라인에 대한 1-스텝 프로그램 동작, 거친 프로그램 동작, 그리고 정교한 프로그램 동작이 행해질 수 있다.
도 8은 도 7의 데이터 저장 장치의 동작 방법에 사용되는 데이터 저장 시스템의 블록도이다.
도 8을 참조하면, 데이터 저장 시스템(1000)은 비휘발성 메모리 장치(1100), 컨트롤러(1200), 그리고 호스트를 포함한다.
비휘발성 메모리 장치(1100)는 다수의 메모리 블록(또는 섹터/뱅크)을 포함하며, 각 메모리 블록은 다수의 행과 열로 배열된 다수의 메모리 셀을 포함할 수 있다. 또한, 각 메모리 셀은 멀티-비트(또는, 멀티-레벨) 데이터를 저장할 수 있다. 또한, 비휘발성 메모리 장치(1100)는 2차원 어레이 구조이거나, 3차원 구조(또는, 수직 어레이 구조)일 수 있다.
비휘발성 메모리 장치(1100)의 메모리 블록은 적어도 제1 영역(101)과 제2 영역(102)으로 구분된다. 여기서, 제1 및 제2 영역(101, 102)의 구분이 물리적인 것이 아니라 논리적일 수 있다. 제1 및 제2 영역(101, 102)의 구분은 논리적으로 변경 가능하다. 제1 영역(101)에 속한 메모리 블록은, 제2 영역(102)에 속한 메모리 블록과 다른 방식으로 프로그램될 수 있다.
예를 들면, 제1 영역(101)에 속한 메모리 블록은 단일-비트 프로그램 방식(이하, SLC 프로그램 방식이 칭함)에 따라 프로그램되고, 제2 영역(102)에 속한 메모리 블록은 멀티-비트 프로그램 방식(이하, MLC 프로그램 방식이라 칭함)(예를 들면, 앞서 설명된 N-스텝 재프로그램 방식)에 따라 프로그램될 수 있다. 다시 말해서, 제1 영역(101)에 속한 메모리 셀 각각은 1-비트 데이터를 저장하고, 제2 영역(102)에 속한 메모리 셀 각각은 M-비트 데이터(M은 3 또는 그 보다 큰 정수)를 저장한다. 또한, 제1 영역(101)에 속한 메모리 셀 각각은 제2 영역(102)에 속한 메모리 셀 각각에 저장되는 M-비트 데이터(M은 3 또는 그 보다 큰 정수)보다 작은 수의 데이터 비트들을 저장한다.
컨트롤러(1200)는 호스트의 요청에 응답하여 비휘발성 메모리 장치(1100)를 제어하도록 구성된다. 컨트롤러(1200)는 버퍼(1110)를 포함한다. 버퍼(1110)는 호스트로부터 전송된 데이터를 임시 저장하고, 비휘발성 메모리 장치(1100)로부터 읽혀진 데이터를 임시 저장할 수 있다. 컨트롤러(1200)는 정적 예를 들어, 스케쥴링 방식(static scheduling manner)으로 메모리 장치(1100)의 프로그램 동작을 제어한다. 예를 들면, 제1 영역(101)에 대한 최소 프로그램 단위의 데이터가 버퍼(1110)에 저장되면, 컨트롤러(1200)는 최소 프로그램 단위의 데이터가 제1 영역(101)에 저장되도록 비휘발성 메모리 장치(1100)를 제어한다. 이는 버퍼 프로그램 동작이라 칭한다. 제2 영역(102)에 대한 최소 프로그램 단위의 데이터가 제1 영역(101)에 모이면, 컨트롤러(1200)는 제2 영역(102)에 대한 최소 프로그램 단위의 데이터가 제2 영역(102)에 저장되도록 비휘발성 메모리 장치(1100)를 제어한다. 이는 메인 프로그램 동작이라 칭한다.
제1 영역(101)에 대한 최소 프로그램 단위와 제2 영역(102)에 대한 최소 프로그램 단위는 프로그램 방식, 셀 당 비트 수, 등에 따라 다양하게 결정될 수 있다. 제1 영역(101)에 대한 최소 프로그램 단위는 제2 영역(102)에 대한 최소 프로그램 단위와 다르다.
버퍼 프로그램 동작을 통해 제1 영역(101)에 데이터를 저장하고, 메인 프로그램 동작을 통해 제2 영역(102)에 데이터를 저장함으로써 컨트롤러(1200)의 버퍼(1110)의 크기를 최소화시킬 수 있다.
도 9 및 도 10은 도 7의 데이터 저장 장치의 동작 방법을 더 자세히 설명하기 위한 도면이다. 도 9 및 도 10은 각 메모리 셀에 3-비트 데이터가 저장되고 3-스텝 재프로그램 방법이 적용되는 비휘발성 메모리 장치의 예시적인 어드레스 스크램블 방식을 보여주는 도면이다.
설명의 편의상, 도 9에 도시된 바와 같이, 각 메모리 블록이 64개의 워드 라인들(WL0~WL63)을 포함하고, 각 메모리 셀이 3-비트 데이터를 저장한다고 가정하자. 이러한 가정에 따르면, 각 메모리 블록에는 192개의 페이지들이 저장될 수 있다.
도 9 및 도 10을 참조하면, 제1 영역(101)에 대한 최소 프로그램 단위의 데이터(Di)(i=0~191)가 컨트롤러(1200)의 버퍼(1110)에 저장되면, 버퍼(1110)에 저장된 데이터(Di)는 SLC 프로그램 동작을 통해 비휘발성 메모리 장치(1100)의 제1 영역(101)에 프로그램된다. 또한, 컨트롤러(1200)는 제2 영역(102)에 대한 최소 프로그램 단위의 데이터가 제1 영역(101)에 모아졌는 지의 여부를 판별한다. 판별 결과에 따라 제2 영역(102)에 대한 1-스텝 프로그램 동작, 거친 프로그램 동작, 또는 정교한 프로그램 동작이 수행된다. 제2 영역(102)에 대한 1-스텝 프로그램 동작, 거친 프로그램 동작, 또는 정교한 프로그램 동작은 도 9에 도시된 어드레스 스크램블 순서에 따라 결정된다. 예를 들면, 제1 영역(101)에 데이터(D0, D1)가 저장된 경우, 제1 영역(101)에 저장된 데이터(D0, D1)에 의거하여 워드 라인(WL0)에 대한 1-스텝 프로그램 동작이 행해질 수 있다. 제1 영역(101)에 데이터(D2, D3)가 저장된 경우, 워드 라인(WL1)에 대한 1-스텝 프로그램 동작이 행해질 수 있다. 즉, 제1 영역(101)에 저장된 데이터(D2, D3)에 의거하여 워드 라인(WL1)에 대한 1-스텝 프로그램 동작이 행해질 수 있다.
계속해서, 제1 영역(101)에 데이터(D4)가 저장된 경우, 제1 영역(101)에 저장된 데이터(D0, D1, D4)에 의거하여 워드 라인(WL0)에 대한 거친 프로그램 동작이 행해질 수 있다.
제1 영역(101)에 데이터(D5, D6)가 저장된 경우, 제1 영역(101)에 저장된 데이터(D5, D6)에 의거하여 워드 라인(WL2)에 대한 1-스텝 프로그램 동작이 행해질 수 있다. 제1 영역(101)에 데이터(D7)가 저장된 경우, 제1 영역(101)에 저장된 데이터(D2, D3, D7)에 의거하여 워드 라인(WL1)에 대한 거친 프로그램 동작이 행해질 수 있다. 제1 영역(101)에 저장된 데이터(D2, D3, D7)에 의거하여 워드 라인(WL1)에 대한 거친 프로그램 동작이 행해진 후, 제1 영역(101)에 저장된 데이터(D0, D1, D4)에 의거하여 워드 라인(WL0)에 대한 정교한 프로그램 동작이 행해질 수 있다.
이후, 제1 영역(101)에 데이터(D191)가 저장되기 이전까지, 나머지 데이터(D8~D190)는 데이터(D5, 6)의 1-스텝 프로그램 동작, 데이터(D7)의 거친 프로그램 동작, 그리고 데이터(D0, D1, D4)의 정교한 프로그램 동작과 동일한 순서로 제2 영역(102)에 저장된다.
제1 영역(101)에 데이터(D191)가 저장된 경우, 제1 영역(101)에 저장된 데이터(D188, D189, D191)에 의거하여 워드 라인(WL63)에 대한 거친 프로그램 동작이 행해질 수 있다. 제1 영역(101)에 저장된 데이터(D188, D189, D191)에 의거하여 워드 라인(WL63)에 대한 거친 프로그램 동작이 행해진 후, 제1 영역(101)에 저장된 데이터(D185, D186, D190)에 의거하여 워드 라인(WL62)에 대한 정교한 프로그램 동작이 행해질 수 있다. 마지막으로, 제1 영역(101)에 저장된 데이터(D188, D189, D191)에 의거하여 워드 라인(WL63)에 대한 정교한 프로그램 동작이 행해질 수 있다.
지금까지 설명한 것과 같이, 본 발명의 제3 실시예에 따른 데이터 저장 장치의 동작 방법에 따르면, N-스텝 프로그램 방식이 사용될 수 있다. 주변 메모리 셀에 프로그램될 데이터를 기초로 하여, N개의 스텝 프로그램 중에서, 적어도 하나의 스텝 프로그램의 조건이 변경될 수 있다. 예를 들어, 3-스텝 프로그램 방식에 따르면, 프로그램은 1-스텝 프로그램(1-step program), 거친 프로그램(coarse program), 및 정교한 프로그램(fine program)의 순서로 진행될 수 있다. 예를 들어, 1-스텝 프로그램에서 사용되는 프로그램 전압의 레벨, 프로그램 전압이 인가되는 시간 등이 변경될 수 있다. 거친 프로그램에서 사용되는 프로그램 전압의 레벨, 프로그램 전압이 인가되는 시간 등이 변경될 수 있다. 정교한 프로그램에서 사용되는 프로그램 전압의 레벨, 프로그램 전압이 인가되는 시간 등이 변경될 수 있다.
도 11은 본 발명의 제4 실시예에 따른 데이터 저장 장치의 동작 방법을 설명하기 위한 흐름도이다. 도 12는 도 11의 데이터 저장 장치의 동작 방법을 설명하기 위한 분포도이다.
도 11 및 도 12를 참조하면, 메모리 셀이 제1 문턱전압 분포(10)의 제1 부분 분포(10a)에 해당하는지 센싱한다(S110).
구체적으로, 메모리 셀의 문턱전압과 제1 기준 전압(VR1)을 비교한다. 메모리 셀의 문턱전압이 제1 기준 전압(VR1)보다 클 경우, 메모리 셀이 제1 부분 분포(10a)에 해당하는 것으로 판단될 수 있다. 제1 부분 분포(10a)는 제1 문턱전압 분포(10) 내에서, 가장 위쪽 부분(upper portion)에 해당할 수 있다.
제1 문턱전압 분포(10)는 소거 상태 분포(E)일 수 있으나, 이에 한정되지 않는다. 예를 들어, 프로그램 상태 분포(예를 들어, P1, P2, P3 등) 일 수도 있다. 도 12에서 x축은 전압을 나타내고, y축은 셀의 개수를 나타낸다.
이어서, 메모리 셀이 제1 문턱전압 분포(10)의 제1 부분 분포(10a)에 해당하는 경우(즉, S110단계에서 YES인 경우), 메모리 셀이 제2 문턱전압 분포(20)에 해당하도록 상태이동한다(S180)(도 12의 11 참조).
메모리 셀이 제1 부분 분포(10a)에 해당하는 경우, 인접한 셀과의 커플링(coupling), 프로그램/패스/리드 디스터브(disturb) 등에 의해서, 에러율(즉, 에러 발생 확률)이 매우 높을 수 있다. 따라서, 메모리 셀이 제1 문턱전압 분포(10)의 제1 부분 분포(10a)에 해당하는 경우, 무조건 제2 문턱전압 분포(20)에 해당하도록 상태이동할 수 있다. 제2 문턱전압 분포(20)는 프로그램 상태 분포(예를 들어, P1)일 수 있으나, 이에 한정되지 않는다.
이 경우, 어떤 메모리 셀이 상태이동을 하였는지에 대한 정보는 패러티 영역(parity region)에 저장한다. 저장된 정보는 추후의 동작(예를 들어, 프로그램, 인코딩, 베리파이, 리드 동작 등)에서 사용될 수 있다.
이와 같이 제1 부분 분포(10a)에 해당하는 메모리 셀을 제2 문턱전압 분포(20)로 상태이동함으로써, 에러율을 낮출 수 있다. 즉, 비트에러율(BER, Bit Error Rate)을 낮출 수 있다.
이어서, 메모리 셀이 제1 문턱전압 분포(10)의 제1 부분 분포(10a)에 해당하지 않을 경우(즉, S110단계에서 NO인 경우), 메모리 셀이 제1 문턱전압 분포(10)의 제2 부분 분포(10b)에 해당하는지 센싱한다(S120).
구체적으로, 메모리 셀의 문턱전압과 제2 기준 전압(VR2)을 비교한다. 메모리 셀의 문턱전압이 제1 기준 전압(VR1)과 제2 기준 전압(VR2) 사이인 경우, 메모리 셀이 제2 부분 분포(10b)에 해당하는 것으로 판단될 수 있다. 제2 부분 분포(10b)는 제1 문턱전압 분포(10) 내에서, 두번째로 위쪽 부분에 해당할 수 있다. 여기서, 제1 문턱전압 분포(10) 내의 제1 부분 분포(10a)와 제2 부분 분포(10b)는 서로 오버랩되지 않을 수 있다.
이어서, 메모리 셀이 제1 문턱전압 분포(10)의 제2 부분 분포(10b)에 해당하는 경우(즉, S120단계에서 YES인 경우), 메모리 셀이 높은 에러율을 갖는지 검토할 수 있다(S122). 즉, 에러율이 높은 메모리 셀을 선정할 수 있다.
구체적으로, 제2 부분 분포(10b)에 해당하는 메모리 셀의 주변 메모리 셀에 프로그램될 데이터를 기초로, 상기 메모리 셀의 에러율이 높은지 여부를 검토할 수 있다. 메모리 셀은 인접한 셀과의 커플링(coupling), 프로그램/패스/리드 디스터브(disturb) 등에 의해서, 에러가 발생할 수 있다. 즉, 메모리 셀은 주변 메모리 셀의 영향을 받는다.
주변 메모리 셀(MC1~MC8)에 프로그램될 데이터를 기초로, 메모리 셀(MC0)이 높은 에러율이 갖는지 확인할 수 있다.
예를 들면, 메모리 셀(MC0~MC8)이 4비트 멀티레벨 셀이라고 가정한다. 즉, 메모리 셀(MC0~MC8)에는 0000 내지 1110 이 프로그램될 수 있다. 전체 주변 메모리 셀(MC1~MC8) 중 기설정된 개수의 주변 메모리 셀(MC1~MC8)에 1110, 1101, 1100 이 프로그램되는 것을, 메모리 셀(MC0)이 "높은 에러율"을 갖는 것으로 설정할 수 있다.
예를 들어, 상위 워드라인(WL2)에 연결된 적어도 하나의 메모리 셀(MC4, MC3, MC5)에 프로그램될 데이터를 기초로, 메모리 셀(MC0)이 높은 에러율을 갖는지 검토할 수 있다(도 2b 참조).
또는, 동일한 워드 라인(WL1)과 연결된 메모리 셀(MC1, MC2)에 프로그램될 데이터를 기초로, 메모리 셀(MC0)이 높은 에러율을 갖는지 검토할 수 있다(도 2c 참조).
또는, 동일한 비트 라인(BL1)과 연결된 메모리 셀(MC3, MC6)에 프로그램될 데이터를 기초로, 메모리 셀(MC0)이 높은 에러율을 갖는지 검토할 수 있다(도 2d 참조).
다시 도 11 및 도 12를 참조하면, 메모리 셀이 높은 에러율을 갖는 경우(즉, S122단계에서 YES인 경우), 메모리 셀이 제2 문턱전압 분포(20)에 해당하도록 상태이동한다(S180)(도 12의 31 참조).
구체적으로, 메모리 셀이 제1 부분 분포(10a)에 속하지 않고 제2 부분 분포(10b)에 속하지만, 주변 메모리 셀에 프로그램될 데이터를 기초로 검토해 본 결과, 메모리 셀의 에러율이 높은 것으로 판단될 수 있다. 따라서, 메모리 셀을 제2 문턱전압 분포(20)로 상태이동한다. 이 경우, 어떤 메모리 셀이 상태이동을 하였는지에 대한 정보는 패러티 영역(parity region)에 저장한다.
또한, 메모리 셀이 낮은 에러율을 갖는 경우(즉, S122단계에서 NO인 경우), 메모리 셀을 상태이동하지 않는다(S190)(도 12의 32 참조).
또한, 메모리 셀이 제1 문턱전압 분포(10)의 제2 부분 분포(10b)에 해당하지 않는 경우(즉, S120단계에서 NO인 경우), 메모리 셀을 상태이동하지 않는다(S190).
결과적으로, 도 12의 (b)도면을 참조하면, 제1 기준 전압(VR1)보다 높은 문턱전압을 갖는 메모리 셀은 없음을 알 수 있다. 제1 기준 전압(VR1)과 제2 기준 전압(VR2) 사이의 문턱전압을 갖는 메모리 셀의 개수는 상당히 줄어들었음을 알 수 있다. 즉, 도 12의 (a)도면에 도시된 제2 부분 분포(10b)의 사이즈는, 도 12의 (a)도면에 도시된 제2 부분 분포(10e)의 사이즈보다 작다.
본 발명의 제4 실시예에 따른 데이터 저장 장치의 동작 방법에 따르면, 메모리 셀이 제1 부분 분포(10a)(즉, 가장 위쪽 부분)에 해당하는 경우에, 메모리 셀을 제2 부분 분포(10b)에 해당하도록 변경한다. 반면, 메모리 셀이 제2 부분 분포(10b)(즉, 두번째로 위쪽 부분)에 해당하는 경우에, 에러율을 검토해 본 후, 검토 결과에 따라 높은 에러율을 갖는 메모리 셀만 제2 부분 분포(10b)에 해당하도록 변경한다. 메모리 셀의 상태이동을 하면, 상태이동에 관련된 정보를 패러티 영역에 저장해야 한다. 제2 부분 분포(10b)에 해당하는 메모리 셀을 무조건 제2 부분 분포(10b)로 상태이동하지 않고, 높은 에러율을 가질 수 있는 메모리 셀만 제2 부분 분포(10b)로 상태이동하기 때문에, 사용되는 패러티 영역의 사이즈가 작을 수 있다.
정리하면, 제1 부분 분포(10a)에 해당되는 다수의 메모리 셀 중 A% (단, 0<A≤100)를 제2 문턱전압 분포(20)에 해당하도록 상태이동하고, 제2 부분 분포(10b)에 해당하는 다수의 메모리 셀 중 B% (단, 0<B≤100, B<A)를 제2 문턱전압 분포(20)에 해당하도록 상태이동할 수 있다. 본 발명의 제4 실시예에 따른 데이터 저장 장치의 동작 방법에서, A=100이 될 수 있다. 즉, 제1 부분 분포(10a)에 해당하는 모든 메모리 셀이 제2 문턱전압 분포(20)로 상태이동될 수 있다. 또한, B는 A보다 작을 수 있다.
한편, 본 발명의 제4 실시예에 따른 데이터 저장 장치의 동작 방법은, 온칩 버퍼드 프로그램(on chip buffered program)을 채용한 데이터 저장 시스템에 적용될 수도 있다. 온칩 버퍼드 프로그램은 비휘발성 메모리 장치 내의 버퍼(buffer)에 프로그램될 데이터를 먼저 저장하고, 그 저장된 데이터를 이용하여 메모리 셀 어레이에 프로그램하는 것이다. 따라서, 상위 워드라인과 연결된 메모리 셀에 어떤 데이터가 프로그램되는지를 쉽게 알 수 있다.
본 발명의 제4 실시예에 따른 데이터 저장 장치의 동작 방법은, 컨트롤러 내에 버퍼가 설치된 데이터 저장 시스템에도 적용될 수 있다.
도 13은 본 발명의 제5 실시예에 따른 데이터 저장 장치의 동작 방법을 설명하기 위한 블록도이다. 도 14는 도 13의 데이터 저장 장치의 동작 방법을 설명하기 위한 분포도이다. 설명의 편의를 위해서, 도 11 내지 도 12를 이용하여 설명한 부분과 동일한 부분은 이하 생략한다.
도 13 및 도 14을 참조하면, 본 발명의 제4 실시예에 따른 데이터 저장 장치의 동작 방법은, 메모리 셀이 2개의 문턱전압 분포(10a, 10b) 중 어느 문턱전압 분포에 해당하는지에 따라서 다르게 처리된다. 반면, 본 발명의 제5 실시예에 따른 데이터 저장 장치의 동작 방법은, 메모리 셀이 3개의 문턱전압 분포(10a, 10b, 10c) 중 어느 문턱전압 분포에 해당하는지에 따라서 다르게 처리될 수 있다. 즉, 메모리 셀이 제1 문턱전압 분포(10)의 제1 부분 분포(10a), 제2 부분 분포(10b), 제3 부분 분포(10c)에 해당하는지를 검토할 수 있다. 제1 부분 분포(10a), 제2 부분 분포(10b), 제3 부분 분포(10c)는 서로 오버랩되지 않을 수 있다.
메모리 셀이 제1 문턱전압 분포(10)의 제1 부분 분포(10a)에 해당하는지 센싱한다(S110). 구체적으로, 메모리 셀의 문턱전압과 제1 기준 전압(VR1)을 비교한다. 메모리 셀의 문턱전압이 제1 기준 전압(VR1)보다 클 경우, 메모리 셀이 제1 부분 분포(10a)에 해당하는 것으로 판단될 수 있다.
메모리 셀이 제1 문턱전압 분포(10)의 제1 부분 분포(10a)에 해당하는 경우(즉, S110단계에서 YES인 경우), 메모리 셀이 제2 문턱전압 분포(20)에 해당하도록 상태이동한다(S180)(도 14의 11 참조).
메모리 셀이 제1 문턱전압 분포(10)의 제1 부분 분포(10a)에 해당하지 않을 경우(즉, S110단계에서 NO인 경우), 메모리 셀이 제1 문턱전압 분포(10)의 제2 부분 분포(10b)에 해당하는지 센싱한다(S120). 구체적으로, 메모리 셀의 문턱전압이 제2 기준 전압(VR2)과 제1 기준 전압(VR1) 사이인 경우에, 메모리 셀은 제2 부분 분포(10b)에 해당할 수 있다.
메모리 셀이 제1 문턱전압 분포(10)의 제2 부분 분포(10b)에 해당하는 경우(즉, S120단계에서 YES인 경우), 메모리 셀이 높은 에러율을 갖는지 검토할 수 있다(S122).
메모리 셀이 높은 에러율을 갖는 경우(즉, S122단계에서 YES인 경우), 메모리 셀이 제2 문턱전압 분포(20)에 해당하도록 상태이동한다(S180)(도 14의 31 참조).
메모리 셀이 낮은 에러율을 갖는 경우(즉, S122단계에서 NO인 경우), 메모리 셀을 상태이동하지 않는다(S190)(도 14의 32 참조).
메모리 셀이 제1 문턱전압 분포(10)의 제2 부분 분포(10b)에 해당하지 않는 경우(즉, S120단계에서 NO인 경우), 메모리 셀이 제1 문턱전압 분포(10)의 제3 부분 분포(10c)에 해당하는지 센싱한다(S130). 구체적으로, 메모리 셀의 문턱전압이 제3 기준 전압(VR3)과 제2 기준 전압(VR2) 사이인 경우에, 메모리 셀은 제3 부분 분포(10c)에 해당할 수 있다.
메모리 셀이 제1 문턱전압 분포(10)의 제3 부분 분포(10c)에 해당하는 경우(즉, S130단계에서 YES인 경우), 메모리 셀이 높은 에러율을 갖는지 검토할 수 있다(S132).
메모리 셀이 높은 에러율을 갖는 경우(즉, S132단계에서 YES인 경우), 메모리 셀이 제2 문턱전압 분포(20)에 해당하도록 상태이동한다(S180)(도 14의 41 참조).
메모리 셀이 낮은 에러율을 갖는 경우(즉, S132단계에서 NO인 경우), 메모리 셀을 상태이동하지 않는다(S190)(도 14의 42 참조).
한편, S122단계에서, 메모리 셀의 에러율이 제1 레벨 이상일 경우에, 메모리 셀이 제2 문턱전압 분포(20)에 해당하도록 상태이동될 수 있다. 반면, S132단계에서, 메모리 셀의 에러율이 제2 레벨 이상일 경우에, 메모리 셀이 제2 문턱전압 분포(20)에 해당하도록 상태이동될 수 있다. S122 단계에서 사용되는 제1 레벨과, S132 단계에서 사용되는 제2 레벨은 서로 다를 수 있다. 구체적으로, 제2 레벨이 제1 레벨보다 더 높은 레벨의 에러율일 수 있다. 예를 들어 설명하면 다음과 같다. 메모리 셀이 4비트 멀티레벨 셀이라고 가정한다. 즉, 메모리 셀에는 0000 내지 1110 이 프로그램될 수 있다. 이러한 경우, S122 단계에서, 전체 주변 메모리 셀 중 기설정된 개수의 주변 메모리 셀에 1110, 1101, 1100 이 프로그램될 때, 메모리 셀이 "높은 에러율"을 갖는 것으로 설정할 수 있다. 반면, S132 단계에서, 전체 주변 메모리 셀 중 기설정된 개수의 주변 메모리 셀에 1110 이 프로그램될 때, 메모리 셀이 "높은 에러율"을 갖는 것으로 설정할 수 있다.
이와 같이 하는 이유는 다음과 같다. 기본적으로, 제3 부분 분포(10c)에 해당하는 메모리 셀은, 제2 부분 분포(10b)에 해당하는 메모리 셀보다 에러가 발생될 확률이 낮다. 따라서, 주변 메모리 셀에 프로그램될 데이터가 상당히 영향력 있는 경우에만, 제3 부분 분포(10c)에 해당하는 메모리 셀을, 제2 문턱전압 분포(20)에 해당하도록 상태이동한다.
결과적으로, 도 14의 (b)도면을 참조하면, 제1 기준 전압(VR1)보다 높은 문턱전압을 갖는 메모리 셀은 없음을 알 수 있다. 제1 기준 전압(VR1)과 제2 기준 전압(VR2) 사이의 문턱전압을 갖는 메모리 셀의 개수는 상당히 줄어들었음을 알 수 있다. 즉, 도 14의 (b)도면에 도시된 제2 부분 분포(10e)의 사이즈는, 도 12의 (a)도면에 도시된 제2 부분 분포(10b)의 사이즈보다 작다. 제2 기준 전압(VR2)과 제3 기준 전압(VR3) 사이의 문턱전압을 갖는 메모리 셀의 개수는 다소 줄어들었음을 알 수 있다. 즉, 도 14의 (b)도면에 도시된 제3 부분 분포(10f)의 사이즈는, 도 14의 (a)도면에 도시된 제3 부분 분포(10c)의 사이즈보다 작다.
도 15는 본 발명의 제6 실시예에 따른 데이터 저장 장치의 동작 방법을 설명하기 위한 블록도이다. 도 16는 도 15의 데이터 저장 장치의 동작 방법을 설명하기 위한 분포도이다. 설명의 편의를 위해서, 도 11 및 도 12를 이용하여 설명한 부분과 동일한 부분은 이하 생략한다.
도 15 및 도 16을 참조하면, 본 발명의 제6 실시예에 따른 데이터 저장 장치의 동작 방법은, 메모리 셀이 2개의 문턱전압 분포(10a, 10b) 중 어느 문턱전압 분포에 해당하는지에 따라서 다르게 처리된다. 특히, 메모리 셀이 제1 부분 분포(10a)에 해당하는 경우에도, 메모리 셀이 "높은 에러율"을 갖는지 여부를 검토할 수 있다. 즉, 메모리 셀이 제1 부분 분포(10a)에 해당하더라도, 무조건 제2 문턱전압 분포(20)로 상태이동하지 않는다.
구체적으로 설명하면, 메모리 셀이 제1 문턱전압 분포(10)의 제1 부분 분포(10a)에 해당하는지 센싱한다(S110). 구체적으로, 메모리 셀의 문턱전압과 제1 기준 전압(VR1)을 비교한다. 메모리 셀의 문턱전압이 제1 기준 전압(VR1)보다 클 경우, 메모리 셀이 제1 부분 분포(10a)에 해당하는 것으로 판단될 수 있다.
메모리 셀이 제1 문턱전압 분포(10)의 제1 부분 분포(10a)에 해당하는 경우(즉, S110단계에서 YES인 경우), 메모리 셀이 높은 에러율을 갖는지 검토할 수 있다(S112).
메모리 셀이 높은 에러율을 갖는 경우(즉, S112단계에서 YES인 경우), 메모리 셀이 제2 문턱전압 분포(20)에 해당하도록 상태이동한다(S180)(도 16의 11 참조). 구체적으로, 메모리 셀의 에러율이 제4 레벨 이상일 경우에, 메모리 셀이 제2 문턱전압 분포(20)에 해당하도록 상태이동된다.
메모리 셀이 제1 문턱전압 분포(10)의 제1 부분 분포(10a)에 해당하지 않을 경우(즉, S110단계에서 NO인 경우), 메모리 셀이 제1 문턱전압 분포(10)의 제2 부분 분포(10b)에 해당하는지 센싱한다(S120). 구체적으로, 메모리 셀의 문턱전압이 제2 기준 전압(VR2)과 제1 기준 전압(VR1) 사이인 경우에, 메모리 셀은 제2 부분 분포(10b)에 해당할 수 있다.
메모리 셀이 제1 문턱전압 분포(10)의 제2 부분 분포(10b)에 해당하는 경우(즉, S120단계에서 YES인 경우), 메모리 셀이 높은 에러율을 갖는지 검토할 수 있다(S122).
메모리 셀이 높은 에러율을 갖는 경우(즉, S122단계에서 YES인 경우), 메모리 셀이 제2 문턱전압 분포(20)에 해당하도록 상태이동한다(S180)(도 16의 31 참조). 구체적으로, 메모리 셀의 에러율이 제1 레벨 이상일 경우에, 메모리 셀이 제2 문턱전압 분포(20)에 해당하도록 상태이동된다. 여기서, 한편, S112 단계에서 사용되는 제4 레벨과, S122 단계에서 사용되는 제1 레벨은 서로 다를 수 있다. 구체적으로, 제2 레벨이 제1 레벨보다 더 높은 레벨의 에러율일 수 있다.
메모리 셀이 낮은 에러율을 갖는 경우(즉, S122단계에서 NO인 경우), 메모리 셀을 상태이동하지 않는다(S190)(도 16의 32 참조).
결과적으로, 도 16의 (b)도면을 참조하면, 도 16의 (b)도면에 도시된 제1 부분 분포(10h)의 사이즈는, 도 16의 (a)도면에 도시된 제1 부분 분포(10a)의 사이즈보다 작다. 도 16의 (b)도면에 도시된 제2 부분 분포(10b)의 사이즈는, 도 16의 (a)도면에 도시된 제2 부분 분포(10e)의 사이즈보다 작다.
정리하면, 제1 부분 분포(10a)에 해당되는 다수의 메모리 셀 중 A% (단, 0<A≤100)를 제2 문턱전압 분포(20)에 해당하도록 상태이동하고, 제2 부분 분포(10b)에 해당하는 다수의 메모리 셀 중 B% (단, 0<B≤100, B<A)를 제2 문턱전압 분포(20)에 해당하도록 상태이동할 수 있다. 본 발명의 제6 실시예에 따른 데이터 저장 장치의 동작 방법에서, A=100이 아닐 수 있다. 또한, B는 A보다 작을 수 있다.
도 17 내지 도 20은 본 발명의 몇몇 실시예에 따른 데이터 저장 시스템의 응용예를 보여주는 블록도이다.
도 17을 참조하면, 데이터 저장 시스템(2000)은 비휘발성 메모리 장치(2100) 및 컨트롤러(2200)를 포함한다. 비휘발성 메모리 장치(2100)는 다수의 비휘발성 메모리 칩들을 포함한다. 다수의 비휘발성 메모리 칩들은 다수의 그룹들로 분할된다. 다수의 비휘발성 메모리 칩들의 각 그룹은 하나의 공통 채널을 통해 컨트롤러(2200)와 통신하도록 구성된다. 예를 들어, 다수의 비휘발성 메모리 칩들은 제1 내지 제k 채널들(CH1~CHk)을 통해 컨트롤러(2200)와 통신하는 것으로 도시되어 있다.
여기서, 하나의 채널에 다수의 비휘발성 메모리 칩들이 연결되는 것으로 설명되었다. 그러나, 하나의 채널에 하나의 비휘발성 메모리 칩이 연결되도록 데이터 저장 시스템(2000)이 변형될 수 있음이 이해된다.
도 18을 참조하면, 컴퓨팅 시스템(3000)은 중앙 처리 장치(3100), 램(3200, RAM, Random Access Memory), 사용자 인터페이스(3300), 전원(3400), 그리고 데이터 저장 시스템(2000)을 포함한다.
데이터 저장 시스템(2000)은 시스템 버스(3500)를 통해, 중앙처리장치(3100), 램(3200), 사용자 인터페이스(3300), 그리고 전원(3400)에 전기적으로 연결된다. 사용자 인터페이스(3300)를 통해 제공되거나, 중앙 처리 장치(3100)에 의해서 처리된 데이터는 데이터 저장 시스템(2000)에 저장된다.
여기서, 비휘발성 메모리 장치(2100)는 컨트롤러(2200)를 통해 시스템 버스(3500)에 연결되는 것으로 도시되어 있다. 그러나, 비휘발성 메모리 장치(2100)는 시스템 버스(3500)에 직접 연결되도록 구성될 수 있다.
또한, 도 17의 데이터 저장 시스템(2000)이 포함되는 것으로 도시되어 있으나, 이에 한정되는 것은 아니다.
도 19는 태블릿 PC이고, 도 20은 노트북을 도시한 것이다. 본 발명의 몇몇 실시예에 따른 데이터 저장 시스템은, 태블릿 PC, 노트북 이외의 전기 제품에 사용될 수 있음은 자명하다.
이상 첨부된 도면을 참조하여 본 발명의 실시예를 설명하였지만, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다.
10: 문턱전압 분포 20: 문턱전압 분포
10a: 제1 부분 분포 10b: 제2 부분 분포
10c: 제3 부분 분포 10d: 제4 부분 분포
10a: 제1 부분 분포 10b: 제2 부분 분포
10c: 제3 부분 분포 10d: 제4 부분 분포
Claims (19)
- 제1 워드라인 및 상기 제1 워드라인에 인접한 제2 워드라인을 포함하는 메모리 셀 어레이와, 상기 제2 워드 라인에 프로그램할 제2 데이터가 저장된 버퍼를 제공하고,
상기 버퍼로부터 상기 제2 데이터를 리드하고,
적어도 하나의 기준 전압을 상기 제1 워드라인에 인가하여, 상기 제1 워드라인에 연결된 메모리 셀이 제1 문턱전압 분포의 제1 부분 분포 및 상기 제1 부분 분포와 오버랩되지 않는 제2 부분 분포 중 어디에 속하는지 센싱하고,
상기 제2 데이터에 포함되는 비트에 기초하여, 상기 제2 부분 분포에 해당하는 메모리 셀 중 에러율이 높은 메모리 셀을 선정하고,
상기 선정된 에러율이 높은 메모리 셀을, 상기 제1 문턱전압 분포와 다른 상태를 갖는 제2 문턱전압 분포에 해당하도록 상태이동함으로써 상기 제1 워드라인에 제1 데이터를 프로그램하는 데이터 저장 장치의 동작 방법. - 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 제 1항에 있어서,
상기 제1 문턱전압 분포는 소거 상태 분포이고, 상기 제2 문턱전압 분포는 프로그램 상태 분포인 데이터 저장 장치의 동작 방법. - 제 1항에 있어서,
상기 제2 데이터에 무관하게, 상기 제1 부분 분포에 해당하는 다수의 메모리 셀을 상기 제2 문턱전압 분포로 상태이동하는 것을 포함하는 데이터 저장 장치의 동작 방법. - 제 1항에 있어서,
상기 센싱하는 것은, 상기 제1 워드라인에 연결된 메모리 셀의 문턱전압을 서로 다른 제1 기준 전압 및 제2 기준 전압과 비교하되, 제1 기준 전압보다 큰 문턱전압을 갖는 메모리 셀은, 상기 제1 부분 분포에 해당하고, 상기 제1 기준 전압과 상기 제2 기준 전압 사이의 문턱전압을 갖는 메모리 셀은, 상기 제2 부분 분포에 해당하는 데이터 저장 장치의 동작 방법. - 제 1항에 있어서,
상기 제1 부분 분포에 해당되는 메모리 셀 중 A(단, 0<A≤100)%를 상기 제2 문턱전압 분포에 해당하도록 상태이동하고, 상기 제2 부분 분포에 해당하는 메모리 셀 중 B(단, 0<B≤100, B<A)%를 상기 제2 문턱전압 분포에 해당하도록 상태이동하는 것을 포함하는 데이터 저장 장치의 동작 방법. - 제1 데이터가 프로그램될 제1 워드라인에 연결된 메모리 셀이 제1 부분 분포와 제2 부분 분포 중 어디에 속하는지 센싱하되, 상기 제1 부분 분포와 상기 제2 부분 분포는 제1 문턱전압 분포 내에 포함되며 서로 오버랩되지 않고,
상기 제1 워드라인에 인접한 제2 워드라인에 프로그램될 제2 데이터에 포함되는 비트에 기초하여, 상기 제1 부분 분포에 해당되는 다수의 메모리 셀 중 A(단, 0<A≤100)%를 상기 제1 문턱전압 분포와 다른 상태를 갖는 제2 문턱전압 분포에 해당하도록 상태이동하고, 상기 제2 부분 분포에 해당하는 다수의 메모리 셀 중 B(단, 0<B≤100, B<A)%를 상기 제2 문턱전압 분포에 해당하도록 상태이동하는 것을 포함하는 데이터 저장 장치의 동작 방법. - 제 11항에 있어서,
상기 제1 문턱전압 분포는 소거 상태 분포이고, 상기 제2 문턱전압 분포는 프로그램 상태 분포인 데이터 저장 장치의 동작 방법. - 제 11항에 있어서,
상기 센싱하는 것은, 상기 다수의 메모리 셀의 문턱전압을 서로 다른 제1 기준 전압 및 제2 기준 전압과 비교하는 것을 포함하는 데이터 저장 장치의 동작 방법. - 삭제
- 삭제
- 삭제
- 제1 워드라인에 연결된 다수의 메모리 셀이 제1 부분 분포와 제2 부분 분포 중 어디에 속하는지 센싱하되, 상기 제1 부분 분포와 상기 제2 부분 분포는 제1 문턱전압 분포 내에 포함되며 서로 오버랩되지 않고,
상기 제1 워드라인과 인접한 제2 워드라인에 프로그램될 데이터에 기초하여, 상기 제2 부분 분포에 해당하는 다수의 메모리 셀 중에서 에러율이 높은 메모리 셀을 선정하고,
상기 선정된 에러율이 높은 메모리 셀을, 상기 제1 문턱전압 분포와 다른 상태를 갖는 제2 문턱전압 분포에 해당하도록 상태이동하는 것을 포함하는 데이터 저장 장치의 동작 방법.
- 삭제
- 삭제
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020120086317A KR102012310B1 (ko) | 2012-08-07 | 2012-08-07 | 데이터 저장 장치의 동작 방법, 데이터 저장 장치 및 이를 이용한 시스템 |
US13/957,901 US9342447B2 (en) | 2012-08-07 | 2013-08-02 | Data storage system and method of operating data storage system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020120086317A KR102012310B1 (ko) | 2012-08-07 | 2012-08-07 | 데이터 저장 장치의 동작 방법, 데이터 저장 장치 및 이를 이용한 시스템 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20140020010A KR20140020010A (ko) | 2014-02-18 |
KR102012310B1 true KR102012310B1 (ko) | 2019-10-21 |
Family
ID=50067079
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020120086317A KR102012310B1 (ko) | 2012-08-07 | 2012-08-07 | 데이터 저장 장치의 동작 방법, 데이터 저장 장치 및 이를 이용한 시스템 |
Country Status (2)
Country | Link |
---|---|
US (1) | US9342447B2 (ko) |
KR (1) | KR102012310B1 (ko) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102178141B1 (ko) * | 2014-08-01 | 2020-11-12 | 삼성전자주식회사 | 비휘발성 메모리 장치의 동작 방법 |
US9442839B1 (en) | 2015-05-26 | 2016-09-13 | Sandisk Technologies Llc | Nonvolatile storage with automated response to program faults |
US9478301B1 (en) * | 2015-09-02 | 2016-10-25 | Kabushiki Kaisha Toshiba | Semiconductor memory device |
KR102589259B1 (ko) * | 2016-06-20 | 2023-10-12 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그것의 동작 방법 |
KR102565888B1 (ko) | 2016-09-12 | 2023-08-11 | 에스케이하이닉스 주식회사 | 반도체 메모리 장치 및 그것의 동작 방법 |
TWI605457B (zh) * | 2016-11-16 | 2017-11-11 | 群聯電子股份有限公司 | 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置 |
CN108091364B (zh) * | 2016-11-23 | 2020-08-18 | 群联电子股份有限公司 | 数据写入方法、存储器控制电路单元与存储器存储装置 |
US10019332B1 (en) | 2017-03-10 | 2018-07-10 | Western Digital Technologies, Inc. | Non-volatile memory with program failure recovery |
KR102242565B1 (ko) | 2017-06-08 | 2021-04-20 | 삼성전자주식회사 | 소거 상태 정보를 기초로 메모리 장치를 제어하는 메모리 컨트롤러 및 이의 동작 방법 |
US10872009B2 (en) * | 2018-02-08 | 2020-12-22 | Micron Technology, Inc. | Mitigating a voltage condition of a memory cell in a memory sub-system |
KR20200127758A (ko) * | 2019-05-03 | 2020-11-11 | 에스케이하이닉스 주식회사 | 스토리지 장치 및 그 동작 방법 |
US11682459B2 (en) * | 2020-05-13 | 2023-06-20 | Silicon Storage Technology, Inc. | Analog neural memory array in artificial neural network comprising logical cells and improved programming mechanism |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080181000A1 (en) * | 2007-01-31 | 2008-07-31 | Sandisk Il Ltd. | Method Of Improving Programming Precision In Flash Memory |
KR100880329B1 (ko) * | 2007-07-25 | 2009-01-28 | 주식회사 하이닉스반도체 | 플래시 메모리 소자 및 그 프로그램 방법 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100632940B1 (ko) * | 2004-05-06 | 2006-10-12 | 삼성전자주식회사 | 프로그램 사이클 시간을 가변시킬 수 있는 불 휘발성반도체 메모리 장치 |
JP4336342B2 (ja) | 2005-12-16 | 2009-09-30 | シャープ株式会社 | 不揮発性半導体記憶装置 |
KR101202537B1 (ko) | 2006-05-12 | 2012-11-19 | 애플 인크. | 메모리 디바이스를 위한 결합된 왜곡 추정 및 에러 보정 코딩 |
US7864573B2 (en) | 2008-02-24 | 2011-01-04 | Anobit Technologies Ltd. | Programming analog memory cells for reduced variance after retention |
US8370702B2 (en) | 2009-06-10 | 2013-02-05 | Micron Technology, Inc. | Error correcting codes for increased storage capacity in multilevel memory devices |
US7944744B2 (en) | 2009-06-30 | 2011-05-17 | Sandisk Il Ltd. | Estimating values related to discharge of charge-storing memory cells |
US8510628B2 (en) | 2009-11-12 | 2013-08-13 | Micron Technology, Inc. | Method and apparatuses for customizable error correction of memory |
JP2011258289A (ja) * | 2010-06-10 | 2011-12-22 | Toshiba Corp | メモリセルの閾値検出方法 |
-
2012
- 2012-08-07 KR KR1020120086317A patent/KR102012310B1/ko active IP Right Grant
-
2013
- 2013-08-02 US US13/957,901 patent/US9342447B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080181000A1 (en) * | 2007-01-31 | 2008-07-31 | Sandisk Il Ltd. | Method Of Improving Programming Precision In Flash Memory |
KR100880329B1 (ko) * | 2007-07-25 | 2009-01-28 | 주식회사 하이닉스반도체 | 플래시 메모리 소자 및 그 프로그램 방법 |
Also Published As
Publication number | Publication date |
---|---|
US9342447B2 (en) | 2016-05-17 |
KR20140020010A (ko) | 2014-02-18 |
US20140047168A1 (en) | 2014-02-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102012310B1 (ko) | 데이터 저장 장치의 동작 방법, 데이터 저장 장치 및 이를 이용한 시스템 | |
US9478300B2 (en) | Operation method of nonvolatile memory system | |
US9741441B2 (en) | Nonvolatile memory system including nonvolatile memory device and memory controller and operating method of memory controller | |
US9690654B2 (en) | Operation method of nonvolatile memory system | |
KR102290974B1 (ko) | 불휘발성 메모리 장치, 메모리 컨트롤러 및 그것들을 포함하는 불휘발성 메모리 시스템의 동작 방법 | |
US9691472B2 (en) | Non-volatile memory device and method of programming the same | |
US11722323B2 (en) | Physical unclonable function with NAND memory array | |
US10497452B2 (en) | Semiconductor memory device and method of operating the same | |
US20160240257A1 (en) | Storage device and a write method thereof | |
US9281068B2 (en) | Nonvolatile memory and related reprogramming method | |
US11289165B2 (en) | Memory device and method of operating the same | |
KR102182804B1 (ko) | 메모리 장치의 독출 방법 | |
CN111128280B (zh) | 存储装置及其操作方法 | |
US12027209B2 (en) | Memory device and method of operating the same | |
US20180040353A1 (en) | Semiconductor memory device and method of operating the same | |
KR20120138895A (ko) | 멀티-레벨 메모리 장치를 포함한 데이터 저장 시스템 및 그것의 동작 방법 | |
KR20150063850A (ko) | 반도체 메모리 장치, 그것을 포함하는 메모리 시스템 및 그것의 동작 방법 | |
US9256494B2 (en) | Memory system and operating method thereof | |
KR20230042946A (ko) | 메모리 장치, 이를 포함하는 메모리 시스템 및 그의 동작 방법 | |
US12040020B2 (en) | Memory device, method of operating the same, and method of operating storage device including the same | |
US20220310168A1 (en) | Operating method of storage controller using count value of direct memory access, storage device including storage controller, and operating method of storage device |
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 |