KR20110043614A - 플래시 메모리 디바이스 프로그래밍 방법 및 시스템 - Google Patents
플래시 메모리 디바이스 프로그래밍 방법 및 시스템 Download PDFInfo
- Publication number
- KR20110043614A KR20110043614A KR1020117001676A KR20117001676A KR20110043614A KR 20110043614 A KR20110043614 A KR 20110043614A KR 1020117001676 A KR1020117001676 A KR 1020117001676A KR 20117001676 A KR20117001676 A KR 20117001676A KR 20110043614 A KR20110043614 A KR 20110043614A
- Authority
- KR
- South Korea
- Prior art keywords
- program
- flash memory
- memory device
- values
- cells
- 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
- 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/04—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
- G11C16/0483—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
-
- 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
- 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
-
- 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/3436—Arrangements for verifying correct programming or erasure
- G11C16/3454—Arrangements for verifying correct programming or for detecting overprogrammed cells
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C2211/00—Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C2211/56—Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
- G11C2211/562—Multilevel memory programming aspects
- G11C2211/5621—Multilevel programming verification
Landscapes
- Engineering & Computer Science (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Computer Hardware Design (AREA)
- Read Only Memory (AREA)
Abstract
플래시 메모리 디바이스에서 신호 레벨마다 다수의 프로그램 값을 프로그래밍하기 위한 방법 및 장치가 제공된다. 복수의 프로그램 값들을 구비한 플래시 메모리 디바이스는 소정의 신호 레벨에 대해서 플래시 메모리 디바이스를 프로그래밍함으로써 프로그래밍되며, 상기 프로그래밍 단계는 프로그래밍 국면(programming phase) 및 복수의 검증 국면(verify phase)을 포함한다. 다른 측면에 따라서, 복수의 프로그램 값들을 구비한 플래시 메모리 디바이스가 프로그래밍되며, 상기 프로그래밍하는 단계는 프로그래밍 국면 및 복수의 검증 국면을 포함하며, 적어도 하나의 신호 레벨은 상기 복수의 프로그램 값을 포함한다. 상기 신호 레벨 및 프로그램 값 중 적어도 하나는 전압, 전류 및 저항 중 적어도 하나를 사용하여서 표현될 수 있다.
Description
관련 출원에 대한 교차 참조
본 출원은 2008년 7월 22일자에 출원된 미국 가 특허 출원 제61/135,732호 및 2008년 9월 30일자에 출원된 미국 가 특허 출원 제61/194,751호를 우선권으로 주장한다. 이 미국 가 특허 출원들은 모두 본 명세서에서 참조로서 인용되고 있다.
본 출원은 2009년 3월 11일자에 출원된 국제 특허 출원 제 PCT/US09/36810호 "Methods and Apparatus for Storing Data in a Multi-Level Cell Flash Memory Device with Cross-Page Sectors, Multi-Page Coding and Per-Page Coding"와 관련되며, 이 국제 특허 출원은 본 명세서에서 참조로서 인용된다. 본 출원은 국제 특허 출원 제PCT/US09/49326호 "Methods and Apparatus for Read-Side Intercell Interference Mitigation in Flash Memories", 국제 특허 출원 제 PCT/US09/49327호 "Methods and Apparatus for Write-Side Intercell Interference Mitigation in Flash Memories", 국제 특허 출원 제PCT/US09/49328호 "Methods and Apparatus for Interfacing Between a Flash Memory Controller and a Flash Memory Array", 국제 특허 출원 제PCT/US09/49330호 "Methods and Apparatus for Intercell Interference Mitigation Using Modulation Coding" 및 국제 특허 출원 제PCT/US09/49333호 "Methods and Apparatus for Soft Demapping and Intercell Interference Mitigation in Flash Memories"과 관련되며, 이들 국제 특허 출원들은 모두 2009년 6월 30일자에 출원되었으며 본 명세서에서 참조로서 인용되고 있다.
발명은 전반적으로 플래시 메모리 디바이스에 관한 것이며, 특히 플래시 메모리 디바이스에서 신호 레벨마다 다수의 프로그램 값을 프로그래밍하기 위한 개선된 기술에 관한 것이다.
플래시 메모리 디바이스와 같은 다수의 메모리 디바이스는 데이터를 저장하기 위해서 아날로그 메모리 셀들을 사용한다. 각 메모리 셀은 전하 또는 전압과 같은 아날로그 값(저장 값이라고도 참조됨)을 저장한다. 이 저장 값은 셀 내에 저장된 정보를 나타낸다. 가령, 플래시 메모리 디바이스에서, 각 아날로그 메모리 셀은 통상적으로 소정의 전압을 저장한다. 각 셀에 대한 가능한 아날로그 값의 범위는 통상적으로 임계 영역들로 분할되며, 각 임계 영역은 하나 이상의 데이터 비트 값에 대응한다. 소망하는 하나 이상의 비트에 대응하는 공칭(nominal) 아날로그 값을 기록함으로써 데이터가 아날로그 메모리 셀에 기록된다.
가령, SLC(single-level cell) 플래시 메모리 디바이스는 메모리 셀마다 1 비트(또는 2 개의 가능한 메모리 상태)를 저장한다. 한편, MLC(multi-level cell) 플래시 메모리 디바이스는 메모리 셀마다 2 개 이상의 비트를 저장한다(즉, 각 메모리 셀은 4 개 이상의 프로그램가능한 상태를 가지고 있다). 이러한 MLC 플래시 메모리 디바이스는, 가령, 본 명세서에서 참조로서 인용되며 2009년 3월 11일자에 출원된 국제 특허 출원 제PCT/US09/36810호 "Methods and Apparatus for Storing Data in a Multi-Level Cell Flash Memory Device with Cross-Page Sectors, Multi-Page Coding and Per-Page Coding"에 상세하게 설명되어 있다.
가령, 다중 레벨 NAND 플래시 메모리 디바이스에서는, 각각이 상이한 다중비트 값에 대응하는 다수의 인터벌(interval)로 분할되는 범위 내의 프로그램가능한 임계 전압들을 갖는 플로팅 게이트 디바이스들이 사용된다. 소정의 다중비트 값을 메모리 셀 내에 프로그래밍하기 위해서, 이 메모리 셀 내의 플로팅 게이트 디바이스의 임계 전압은 그 다중비트 값에 대응하는 임계 전압 인터벌로 프로그래밍된다.
메모리 셀 내에 저장된 아날로그 값들은 종종 왜곡된다. 이러한 왜곡 현상은 통상적으로 가령 BPD(back pattern dependency), 잡음 및 ICI(intercell interference)로부터 기인된다. 플래시 메모리 디바이스에서의 왜곡 현상은, 가령, J.D.Lee 등에 의하여 2002년 5월에 제시된 IEEE Electron Device Letters의 264 내지 266 페이지에서의 "Effects of Floating-Gate-Interference on NAND Flash Memory Cell Operation" 또는 박기태 등에 의하여 2008년 4월에 제시된 IEEE J. of Solid State Circuits Vol.43, No.4. 919-928에서의 "A Zeroing Cell-to-Cell Interference Page Architecture With Temporary LSB Storing and Parallel MSB Program Scheme for MLC NAND Flash Memories"에서 상세하게 기술되어 있다. 이들 문헌들은 본 명세서에서 참조로서 인용되고 있다.
다수의 기술이 ICI 및 다른 왜곡 현상들의 영향을 완화시키기 위해서 제안되었다. 가령, 박기태 등은 ICI를 완화시키는 짝수/홀수 프로그래밍(even/add programming), 상향식 프로그래밍(bottom up programming), 다중 단계 프로그래밍(multi-stage programming)과 같은 기존의 프로그래밍 기술들을 기술하고 있다. 이러한 기존의 방법들은 ICI 및 다른 왜곡 현상의 영향을 완화시키는데 도움이 될 수는 있지만, 트랜지스터의 크기가 감소하면서 (가령, 65 ㎚ 이하 기술) 플래시 셀들이 가까이 근접하게 되어 기생 캐패시턴스가 훨씬 더 커지게 되므로 그 효과가 저감된다.
국제 특허 출원 제PCT/US09/49327호 "Methods and Apparatus for Write-Side Intercell Interference Mitigation in Flash Memories"는 기록 측에서의 ICI 완화 기술들을 개시하고 있다. 플래시 메모리 내의 적어도 하나의 타겟 셀(target cell) 및 타겟 셀보다 나중에 프로그래밍될 적어도 하나의 어그레서 셀(aggressor cell)에 기록될 프로그램 데이터를 획득함으로써 플래시 메모리 디바이스가 프로그래밍된다. 타겟 셀 상의 ICI를 사전 보상하는 사전 보상된 프로그램 값들이 계산된다. 어그레서 셀들은 타겟 셀에 인접하여 있는 하나 이상의 셀들을 포함한다. 다수의 임계 전압들과 관련된 사전 보상된 프로그램 값 또는 다른 값들을 플래시 메모리 어레이에 기록하기 위한 개선된 기술들이 여전히 필요하다.
전반적으로, 플래시 메모리에서 신호 레벨마다 복수의 프로그램 값들을 프로그래밍하기 위한 방법 및 장치들이 제공된다. 본 발명의 일 측면에 따라서, 복수의 프로그램 값들을 구비한 플래시 메모리 디바이스는 소정의 신호 레벨에 대해서 플래시 메모리 디바이스를 프로그래밍함으로써 프로그래밍되며, 상기 프로그래밍 단계는 프로그래밍 국면(programming phase) 및 복수의 검증 국면(verify phase)을 포함한다. 상기 프로그래밍 단계는 상기 소정의 신호 레벨에 대해서 모든 셀들이 프로그래밍될 때까지 반복될 수 있다. 또한, 상기 프로그래밍 단계는 하나 이상의 추가 신호 레벨에 대해서 반복될 수 있다.
본 발명의 다른 측면에 따라서, 복수의 프로그램 값들을 구비한 플래시 메모리 디바이스가 프로그래밍되며, 상기 프로그래밍하는 단계는 프로그래밍 국면 및 복수의 검증 국면을 포함하며, 적어도 하나의 신호 레벨은 상기 복수의 프로그램 값을 포함한다. 상기 프로그래밍 단계는 모든 셀들이 프로그래밍될 때까지 반복될 수 있다. 상기 신호 레벨 및 프로그램 값, 또는 그 모두는 전압, 전류 및 저항 중 적어도 하나를 사용하여서 표현될 수 있다.
상기 복수의 프로그램 값들 각각은 복수의 분리된 그룹들(disjoint group) 중 하나와 연관된다. 일 실시예에서, 상기 복수의 분리된 그룹들 각각은 일 신호 레벨에 대응한다. 다른 실시예에서, 상기 복수의 분리된 그룹들 중 적어도 2 개의 그룹은 멤버들의 수가 서로 상이하다. 또 다른 실시예에서, 상기 복수의 분리된 그룹들의 개수는 상기 플래시 메모리 디바이스 내의 신호 레벨들의 개수에 대응한다.
일 예시적인 실시예에서, 상기 복수의 프로그램 값들은 셀간 간섭(ICI), 백 패턴 의존성(BPD), 프로그램 장애(program disturb), 판독 장애(read disturb) 및 추가 잡음 중 하나 이상을 사전 보상하는 프로그램 값들을 포함한다. 가령, 상기 복수의 프로그램 값들은 적어도 하나의 어그레서 셀(aggressor cell)로부터의 셀간 간섭과 같은 장해를 보상하는 사전 보상된 프로그램 값들에 대응할 수 있다. 보다 감소된 복잡도로 이러한 간섭을 보상하기 위한 다수의 선택적인 간소화 방식이 개시된다.
본 발명에 대한 보다 완벽하고 철저한 이해를 돕기 위해서뿐만 아니라 본 발명의 다른 특징 및 장점을 제시하기 위해서 다음의 발명의 상세한 설명 및 첨부 도면이 함께 참조될 것이다.
도 1은 통상적인 플래시 메모리 시스템의 개략적인 블록도이다.
도 2는 도 1의 예시적인 MLC(multi-level cell) 플래시 메모리에서의 예시적인 임계 전압 분포 그래프이다.
도 3은 MLC 플래시 메모리 디바이스 내의 예시적인 플래시 셀 어레이의 아키텍처를 도시하고 있다.
도 4는 도 2의 전압 할당 방식을 위한 예시적인 2 단계 MLC 프로그래밍 방식을 나타내고 있다.
도 5(a) 및 도 5(b)는 합쳐서, 이웃하는 셀들에 가해지는 ICI를 감소시키는 다른 MLC 프로그래밍 방식을 나타내고 있다.
도 6은 MLC 플래시 메모리 디바이스 내의 예시적인 플래시 셀 어레이를 더 상세하게 도시하고 있다.
도 7은 다수의 예시적인 어그레서 셀(aggressor cells)로부터의 기생 캐패시턴스로부터 기인되어 타겟 셀에 영향을 주는 ICI를 나타내고 있다.
도 8은 제어기 기반 ICI 완화 기법들을 채용하는 예시적인 플래시 메모리 시스템의 개략적인 블록도이다.
도 9는 메모리 기반형 ICI 완화 기술들을 채용하는 예시적인 플래시 메모리 시스템의 개략적인 블록도이다.
도 10은 본 발명의 특징들을 포함하는 기록 측에서의 ICI 완화 프로세스를 예시적으로 구현하는 흐름도이다.
도 11은 통상적인 ISPP(Incremental Step Pulse Programming) 프로세스를 기술하는 흐름도이다.
도 12는 본 발명의 특징들을 포함하는 ISPP 프로세스를 기술하는 흐름도이다.
도 13은 본 발명의 특징들을 포함하는 다른 ISPP 프로세스를 기술하는 흐름도이다.
도 2는 도 1의 예시적인 MLC(multi-level cell) 플래시 메모리에서의 예시적인 임계 전압 분포 그래프이다.
도 3은 MLC 플래시 메모리 디바이스 내의 예시적인 플래시 셀 어레이의 아키텍처를 도시하고 있다.
도 4는 도 2의 전압 할당 방식을 위한 예시적인 2 단계 MLC 프로그래밍 방식을 나타내고 있다.
도 5(a) 및 도 5(b)는 합쳐서, 이웃하는 셀들에 가해지는 ICI를 감소시키는 다른 MLC 프로그래밍 방식을 나타내고 있다.
도 6은 MLC 플래시 메모리 디바이스 내의 예시적인 플래시 셀 어레이를 더 상세하게 도시하고 있다.
도 7은 다수의 예시적인 어그레서 셀(aggressor cells)로부터의 기생 캐패시턴스로부터 기인되어 타겟 셀에 영향을 주는 ICI를 나타내고 있다.
도 8은 제어기 기반 ICI 완화 기법들을 채용하는 예시적인 플래시 메모리 시스템의 개략적인 블록도이다.
도 9는 메모리 기반형 ICI 완화 기술들을 채용하는 예시적인 플래시 메모리 시스템의 개략적인 블록도이다.
도 10은 본 발명의 특징들을 포함하는 기록 측에서의 ICI 완화 프로세스를 예시적으로 구현하는 흐름도이다.
도 11은 통상적인 ISPP(Incremental Step Pulse Programming) 프로세스를 기술하는 흐름도이다.
도 12는 본 발명의 특징들을 포함하는 ISPP 프로세스를 기술하는 흐름도이다.
도 13은 본 발명의 특징들을 포함하는 다른 ISPP 프로세스를 기술하는 흐름도이다.
본 발명의 다양한 측면들은 SLC NAND 플래시 메모리 디바이스 또는 MLC NAND 플래시 메모리 디바이스와 같은 메모리 디바이스에서 ICI를 완화시키는 신호 처리 기술에 관한 것이다. 본 명세서에서 사용되는 MLC 플래시 메모리 디바이스는 각 메모리 셀이 2 개 이상의 비트를 저장하는 메모리를 포함한다. 통상적으로, 하나의 플래시 메모리 셀 내에 저장된 다수의 비트들은 상이한 페이지에 속해 있다. 본 발명은 전압과 같은 아날로그 값을 저장하는 메모리 셀들을 사용하여서 기술될 것이지만, 본 발명은, 본 기술 분야의 당업자에게 자명한 바처럼, 저장된 데이터 상태를 나타내기 위해서 전압, 전류 또는 저항을 사용하는 것과 같이 임의의 저장 매카니즘을 플래시 메모리에 대해서 사용할 수 있다.
도 1은 통상적인 플래시 메모리 시스템(100)의 개략적인 블록도이다. 도 1에 도시된 바와 같이, 이 예시적인 플래시 메모리 시스템(100)은 플래시 제어 시스템(110) 및 플래시 메모리 블록(160)을 포함한다. 본 예시적인 플래시 제어 시스템(110)은 플래시 제어기(120), 인코더/디코더 블록(140) 및 하나 이상의 버퍼(145)를 포함한다. 다른 실시예에서, 인코더/디코더 블록(140) 및 몇몇 버퍼들(145)은 플래시 제어기(120) 내 측에서 구현될 수 있다. 가령, 인코더/디코더 블록(140) 및 버퍼들(145)은 잘 알려진 상업적으로 입수 가능한 기술 또는 제품을 사용하여서 구현될 수 있다.
예시적인 플래시 메모리 블록(160)은 메모리 어레이(170) 및 하나 이상의 버퍼(180)를 포함하며, 이들 각 버퍼는 잘 알려진 상업적으로 입수 가능한 기술 또는 제품을 사용하여서 구현될 수 있다. 메모리 어레이(170)는 NAND 플래시 메모리, PCM(phase-change memory), MRAM 메모리, NOR 플래시 메모리 또는 다른 비휘발성 플래시 메모리와 같은 SLC 또는 MLC 플래시 메모리로서 구현될 수 있다. 본 발명이 주로 MLC NAND 플래시 메모리의 상황에서 기술될 것이지만, 본 발명은 본 기술 분야의 당업자에게는 자명한 바와 같이 SLC 플래시 메모리 및 다른 비휘발성 메모리에도 역시 적용될 수 있다.
MLC
플래시 메모리
MLC NAND 플래시 메모리에서는, 임계 검출기가 통상적으로 사용되어서 특정 셀과 관련된 전압 값을 사전 규정된 메모리 상태로 변환시킨다. 도 2는 본 명세서에서 참조로서 인용되는 미국 특허 제6,522,580호의 교시 사항에 기초하여서 도 1의 예시적인 MLC 플래시 메모리(160)에 대해서 임계 전압을 예시적으로 분포시키는 방식을 나타내고 있다. 일반적으로, 셀의 임계 전압은 그 셀이 소정의 전류량을 도통시키도록 그 셀에 인가될 필요가 있는 전압이다. 이 임계 전압은 그 셀에 저장된 데이터에 대한 척도이다.
도 2에 도시된 예시적인 실시예에서, 각 저장 요소는 각 메모리 셀 내에 2 비트 데이터를 저장하기 위해서 4 개의 가능한 데이터 상태들을 사용하고 있다. 도 2는 가령 각 피크가 일 상태에 대응하는 4 개의 피크(210 내지 213)를 나타내고 있다. MLC(multi-level cell) 플래시 메모리 디바이스에서, 이러한 임계 전압 분포 그래프(200) 중의 4 개의 상이한 피크들(210 내지 213)이 사용되어서 해당 셀 내에 2 비트 데이터를 저장한다.
이러한 임계 전압 분포 그래프(200) 중의 피크들(210 내지 213)은 대응하는 2진 값들로 표현된다. 따라서, 셀이 제 1 상태(210)에 있으면, 최하위 비트 LSB인 하위 비트는 "1" 값이 되고 최상위 비트 MSB인 상위 비트도 역시 "1"이 된다. 제 1 상태(210)는 일반적으로 이 셀에 대해서 초기의 프로그래밍되지 않은 상태 또는 소거 상태이다. 마찬가지로, 셀이 제 2 상태(211)에 있으면, 최하위 비트 LSB인 하위 비트는 "0" 값이 되고 최상위 비트 MSB인 상위 비트는 "1"이 된다. 셀이 제 3 상태(212)에 있으면, 최하위 비트 LSB인 하위 비트는 "0" 값이 되고 최상위 비트 MSB인 상위 비트도 역시 "0"이 된다. 마지막으로, 셀이 제 4 상태(213)에 있으면, 최하위 비트 LSB인 하위 비트는 "1" 값이 되고 최상위 비트 MSB인 상위 비트는 "0"이 된다.
임계 전압 분포(210)는 소거된 상태("11" 데이터 상태)에 있는 메모리 어레이 내의 셀들의 임계 전압 Vt이 0 볼트 이하의 마이너스 임계 전압 레벨을 가짐을 나타내고 있다. 사용자 데이터 "10"를 저장하고 있는 메모리 셀들의 임계 전압 분포(211)는 0 볼트 내지 1 볼트 간의 값을 가지며, 사용자 데이터 "00"를 저장하고 있는 메모리 셀들의 임계 전압 분포(212)는 1 볼트 내지 2 볼트 간의 값을 갖는다. 임계 전압 분포(213)는 "01" 데이터 상태로 프로그래밍된 셀들의 분포가 2 내지 4.5 볼트 사이에 있는 판독 패스 전압(read pass voltage)으로 설정된 임계 전압 레벨을 가짐을 나타낸다.
따라서, 도 2의 예시적인 실시예에서, 0 볼트, 1 볼트 및 2 볼트가 각 전압 레벨 또는 데이터 상태 간의 전압 레벨 임계치로서 사용된다. 이러한 전압 레벨 임계치들이 플래시 메모리(160)(가령, 플래시 메모리(160) 내의 감지 회로)에 의해서 사용되어서 소정의 셀의 전압 레벨 또는 데이터 상태가 판정된다. 플래시 메모리(160)는 측정된 전압과 이러한 전압 레벨 임계치를 서로 비교한 결과에 기초하여서 하나 이상의 비트를 각 셀에 할당하고 이는 플래시 제어 시스템(110)에 하드 디시젼(hard decision) 사항으로서 전송된다. 이와 더불어 또는 이와 달리, 소프트 정보(soft information)를 사용하는 구현의 경우에는, 플래시 메모리(160)는 측정된 전압 또는 이 측정된 전압의 양자화된 버전을 소프트 정보로서 상기 플래시 제어 시스템(110)에 전송하며, 이때에 상기 메모리 셀 내에 저장된 비트의 수보다 큰 수의 비트가 상기 측정된 전압을 표현하기 위해서 사용된다.
또한, 통상적으로, 잘 알려진 ISPP (Incremental Step Pulse Programming) 기술 및 프로그램/검증 기술을 사용하여서 메모리 셀들이 프로그래밍된다. 이러한 ISPP 기술 및 프로그램/검증 기술은, 가령, 미국 특허 출원 공개 제2008/0084751호 및 2008년 4월에 박기태 등에 의해서 제시된 IEEE J. of Solid State Circuits, Vol. 43. No. 4, 919-928에서의 "A Zeroing Cell-to-Cell Interference Page Architecture With Temporary LSB Storing and Parallel MSB Program Scheme for MLC NAND Flash Memories" 및 1996년 11월에 T.-S. Jung에 의해서 제시된 IEEE J. of Solid State Circuits, vol. 31, No. 11, 1575-1583에서의 "A 117-mm2 3.3-V only 128-Mb Multilevel NAND Flash Memory for Mass Storage Applications" 및 1995년 11월에 K.-D. Suh 등에 의해서 제시된 IEEE J. of Solid State Circuits, vol. 30, No. 11, 1149-1156에서의 "A 3.3V 32Mb NAND Flash Memory with Incremental Step Pulse Programming Scheme" 에 상세하게 기술되어 있으며, 이러한 문헌들은 본 명세서에서 참조로서 인용된다. 일반적으로, 프로그램/검증 사이클 동안에, 최소 목표 임계 전압(또한 본 명세서에서 "프로그램 전압"으로서 지칭됨)이 초과될 때까지 플래시 메모리(160)는 셀 트랜지스터 내에 전하를 저장하기 위해서 증가하는 전압을 점진적으로 인가한다. 가령, 도 2의 실례에서 "10" 데이터 상태를 프로그래밍할 때에는, 0.4 볼트의 최소 목표 임계 전압이 초과될 때까지 플래시 메모리(160)는 셀 트랜지스터 내에 전하를 저장하기 위해서 증가하는 전압을 점진적으로 인가한다.
이하에서 더 상세하게 기술될 바와 같이, 단일 메모리 셀 내에 저장된 2 개의 비트 중 각 비트는 서로 다른 페이지에 속한다. 달리 말하면, 각 메모리 셀 내에 저장된 2 개의 비트 중 각 비트는 상이한 페이지 어드레스를 보유한다. 도 2에 도시된 우측 비트는 하위 페이지 어드레스가 입력되면 액세스된다. 도 2에 도시된 좌측 비트는 상위 페이지 어드레스가 입력되면 액세스된다.
도 3은 MLC 플래시 메모리 디바이스(160) 내의 예시적인 플래시 메모리 셀 어레이(300)의 아키텍처를 나타내고 있으며, 여기서 예시적인 각 셀은 통상적으로 2 개의 비트를 저장하는 플로팅 게이트 트랜지스터에 대응한다. 도 3에서, 각 셀은 2 개의 비트가 속한 2 개의 페이지의 2 개의 수와 연관된다. 예시적인 셀 어레이(300)는 n 내지 n+2 번째의 워드라인과 4 개의 비트라인을 나타내고 있다. 이 예시적인 플래시 셀 어레이(300)는 홀수 페이지와 짝수 페이지로 분할되며, 가령 수 0 및 2를 갖는 셀과 같은 짝수를 갖는 셀들은 짝수 페이지에 대응하며, 수 1 및 3를 갖는 셀과 같은 홀수를 갖는 셀들은 홀수 페이지에 대응한다. 워드라인 n은 가령 짝수 비트라인에서 짝수 페이지 0 및 2를 저장하고 홀수 비트라인에서 홀수 페이지 1 및 3을 저장한다.
또한, 도 3은 짝수 비트라인 셀과 홀수 비트라인 셀 중 어느 하나가 선택되고 표시된 순서에 따라서 순차적으로(상향식으로(bottom up)) 프로그래밍되는 예시적인 프로그램 시퀀스를 나타내고 있다. 수들은 페이지들이 프로그래밍되는 순서를 나타낸다. 가령, 페이지 0은 페이지 1 이전에 프로그래밍된다. 이러한 짝수 페이지 및 홀수 페이지를 프로그래밍하는 기술은, 가령, 2008년 4월에 박기태 등에 의해서 제시된 IEEE J. of Solid State Circuits, Vol. 43. No. 4, 919-928에서의 "A Zeroing Cell-to-Cell Interference Page Architecture With Temporary LSB Storing and Parallel MSB Program Scheme for MLC NAND Flash Memories"에 상세하게 기술되어 있다.
도 4는 도 2의 전압 분포 방식을 위한 예시적인 2 단계 MLC 프로그래밍 방식(400)을 나타내고 있다. 도 4에 도시된 바와 같이, LSB 프로그래밍 단계 동안, 소거 상태(410)에 있는 선택된 셀들의 상태는 LSB가 제로이면 최하위 프로그래밍된 상태로 이동한다. 이로써, LSB 프로그래밍 단계에서, 메모리 셀은 소거 상태 "11"에서 프로그래밍된 상태 "10"으로 프로그래밍된다. 다음으로, MSB 프로그래밍 단계 동안, 2 개의 상태, 즉 상태(412)"00" 및 상태(413)"01"가 선행하는 LSB 데이터에 따라서 순차적으로 형성된다. 일반적으로, MSB 프로그래밍 단계 동안에, "10" 상태는 "00" 상태로 프로그래밍되고 소거 상태 "11"은 "01" 상태로 프로그래밍된다.
도 4의 프로그래밍 방식(400)은 상태(410)에서 상태(413)로의 상태 변화와 연관되는 최대 전압 시프트를 나타내고 있다. 상태 변화와 관련된 최대 전압 시프트를 감소시켜서 전압 시프트에 의해서 초래되는 ICI를 완화시키기 위한 다수의 프로그래밍 방식들이 제안되어 왔다.
도 5(a) 및 도 5(b)는 모두 서로 인접하는 셀들에 가해지는 ICI 영향을 저감하는 다른 MLC 프로그래밍 방식(500)을 나타내고 있다. 도 5(a)에 도시된 바와 같이, LSB 프로그래밍 단계 동안에, SLC 프로그래밍 방식과 유사하게, 메모리 셀은 상태 "11"에서 상태 "x0"(임시 상태 또는 중간 상태)로 프로그래밍된다. 동일한 워드라인 내의 서로 이웃하는 셀들이 또한 LSB 프로그래밍된 후에, 전압 분포는 ICI의 영향으로 인해서 도 5(a)에서 피크(510)로서 도시된 바와 같이 가능한 한 넓어진다. 이후에, MSB 프로그래밍 단계에서, 도 5(b)에 도시된 바와 같이, "x0" 상태는 입력 데이터에 대응하는 최종 상태로서 상태 "00" 또는 상태 "10"으로 프로그래밍되며 그 밖에 상태 "11"은 최종 상태 "01"로 프로그래밍된다. 일반적으로, 상태 "11"을 갖는 셀을 제외한 모든 메모리 셀들은 MSB 프로그래밍 단계 동안에 LSB 데이터에 대해서 임시적으로 프로그래밍된 상태에서 그들의 최종 상태로 재프로그래밍되며 이로써 이웃하는 셀들에 의해서 초래되는 ICI는 크게 감소되게 된다. 최종 상태에 있는 셀은 자신이 최종 상태로 재프로그래밍되었기에 상기 임시 상태 또는 중간 상태에 있는 동안에 경험했던 ICI의 영향을 받지 않게 된다. 대신에, 최종 상태에 있는 셀은 최종 상태에 있을 동안에 경험한 ICI의 영향은 받게 된다. 상술한 바와 같이, 도 5(a) 및 도 5(b)의 다중 단계 프로그래밍 방식은 중간의 프로그램 상태를 사용하여서 최대 전압 시프트 정도를 감소시키고 이로써 이러한 전압 시프트에 의해서 초래되는 ICI 영향을 감소시킨다. 도 5(b)에서 볼 수 있는 바와 같이, 가령 MSB 프로그래밍 단계 동안 최대 전압 시프트는 각기 상태 "11"에서 상태 "01"로의 천이 및 상태 "x0"에서 상태 "10"으로의 천이와 관련된다. 이러한 전압 시프트 정도는 도 4에서 볼 수 있는 바와 같은 상태 "11"에서 상태 "01"로의 최대 전압 시프트 정도보다 매우 작은 값이다.
도 6은 MLC 플래시 메모리 디바이스(130) 내의 예시적인 플래시 셀 어레이(600)를 더 상세하게 나타내고 있다. 도 6에 도시된 바와 같이, 플래시 셀 어레이(600)는 플래시 셀 ci마다 3 개의 비트를 저장하고 있다. 도 6은 일 블록에 대한 플래시 셀 어레이 아키텍처를 나타내며, 여기서 각 예시적인 셀은 통상적으로 3 비트를 저장하는 플로팅 게이트 트랜지스터에 대응한다. 예시적인 셀 어레이(600)는 m 개의 워드라인과 n 개의 비트라인으로 구성된다. 통상적으로, 현 다중 페이지 셀 플래시 메모리에서, 단일 셀 내의 비트들은 서로 다른 페이지에 속한다. 도 6의 실례에서, 각 셀에서의 3 개의 비트들은 3 개의 상이한 페이지에 대응하며, 각 워드라인은 3 개의 페이지를 저장한다. 이후부터는, 페이지 0, 페이지 1 및 페이지 2가 워드라인 내에서의 하위 페이지 레벨, 중위 페이지 레벨 및 상위 페이지 레벨로 각기 지칭된다.
상술한 바와 같이, 플래시 셀 어레이는 짝수 페이지와 홀수 페이지로 또한 분할된다. 가령 도 6에서 셀 2 및 셀 4와 같은 짝수의 셀들은 짝수 페이지에 대응하고, 도 6에서 셀 1 및 셀 3와 같은 홀수의 셀들은 홀수 페이지에 대응한다. 이 경우에, 페이지 0과 같은 페이지는 짝수 셀들에서 짝수 페이지(짝수 페이지 0)를 포함하고, 홀수 셀들에서 홀수 페이지(홀수 페이지 0)를 포함할 수 있다.
셀간 간섭(
ICI
)
상술한 바와 같이, ICI는 셀 간의 기생 캐패시턴스의 결과이며 일반적으로 왜곡 현상을 초래하는 가장 주된 요인으로서 간주된다. 도 7은 다수의 예시적인 어그레서 셀(720)로부터의 기생 캐패시턴스로 인해서 타겟 셀(710)에서 존재하는 ICI를 나타내고 있다. 다음의 표기 사항들은 도 7에서 채용되고 있다.
WL: 워드라인
BL: 비트라인
BLo: 홀수 비트라인
BLe: 짝수 비트라인
C: 캐패시턴스
ICI는 타겟 셀(710)이 프로그래밍된 후에 프로그래밍되는 어그레서 셀들(720)에 의해서 초래된다. ICI는 타겟 셀(710)의 전압 Vt를 변화시킨다. 예시적인 실시예에서, "상향식" 프로그래밍 방식이 채용되며 워드라인 i 및 워드라인 i+1 내의 인접하는 어그레서 셀이 타겟 셀(710)에 대하여 ICI를 초래한다. 이러한 상향식 프로그래밍에서는, 하위 워드라인 i-1로부터의 ICI는 제거되며 따라서 도 7에 도시된 바와 같이 5 개의 이웃하는 셀들이 어그레서 셀(720)로서 ICI에 기여한다. 그러나, 본 명세서에서 개시되는 기술들은 워드라인 i-1와 같은 다른 워드라인로부터의 어그레서 셀들도 역시 ICI을 초래하는 경우에도 적용될 수 있다는 사실은 본 기술 분야의 당업자에게는 명백하다. 워드라인들 i-1, i 및 i+1로부터의 어그레서 셀들이 ICI에 기여하면, 최대 8개까지의 근접하는 이웃 셀들이 고려될 필요가 있다. 타겟 셀로부터 더 멀리 떨어져 있는 다른 셀들은 이들의 ICI에 대한 기여 정도가 무시할 수 있다면 고려되지 않을 수 있다. 일반적으로, 소정의 타겟 셀(710) 이후에 프로그래밍되는 어그레서 셀들(720)을 식별하기 위해서 가령 상향식 프로그래밍 기술 또는 짝수/홀수 프로그래밍 기술과 같은 프로그래밍 시퀀스 방식들을 분석함으로써 어그레서 셀들(720)이 식별될 수 있다.
이 타겟 셀(710)에 대해서 어그레서 셀들(720)이 초래하는 ICI(셀간 간섭)는 본 예시적인 실시예에서 다음과 같이 모델링될 수 있다.
kx , ky 및 kxy는 각기 x 방향, y 방향 및 xy 방향에서의 용량성 결합 계수(capacitive coupling coefficients)를 나타낸다.
일반적으로, Vt는 셀 상에 저장되어서 판독 동작 동안에 취득되는 데이터를 나타내는 전압이다. Vt는 셀마다 저장된 비트의 개수보다 정확한 정밀도를 갖는 소프트 전압으로서 또는 (가령, 3 비트/셀 플래시에 대해서 3 비트인 것과 같이) 셀마다 저장된 비트의 개수와 동일한 분해능(resolution)을 갖는 하드 전압 레벨로 양자화된 값으로서 판독 동작에 의해 획득될 수 있다.
시스템 레벨 고려 사항들
도 8은 제어기 기반형 ICI 완화 기술을 사용하는 예시적인 플래시 메모리 시스템(800)의 개략적인 블록도이다. 도 8에 도시된 바와 같이, 이 예시적인 플래시 메모리 시스템(800)은 서로 인터페이스(850)에 의해서 접속되는 플래시 제어 시스템(810) 및 플래시 메모리 블록(860)을 포함한다. 이 예시적인 플래시 제어 시스템(810)은 통상적으로 하나 이상의 집적 회로 상에 플래시 제어기(820) 및 판독 채널(825)을 포함한다. 이 예시적인 플래시 제어기(820)는, 가령, 본 발명의 특징 및 기능들을 지원하도록 본 명세서에서 수정되는 바와 같은 잘 알려진 상업적으로 입수가능한 기술 및/또는 제품을 사용하여서 구현될 수 있다.
예시적인 판독 채널(825)은 신호 처리 유닛(830), 인코더/디코더 블록(840) 및 하나 이상의 버퍼(845)를 포함한다. 용어 "판독 채널"은 기록 채널도 역시 포함할 수 있는 것으로 해석되어야 한다. 다른 실시예에서, 인코더/디코더 블록(840) 및 몇몇 버퍼들(845)은 플래시 제어기(820) 내측에서 구현될 수 있다. 가령, 이 인코더/디코더 블록(840) 및 버퍼들(845)은 본 발명의 특징 및 기능들을 지원하도록 본 명세서에서 수정되는 바와 같은 잘 알려진 상업적으로 입수가능한 기술 및/또는 제품을 사용하여서 구현될 수 있다.
예시적인 신호 처리 유닛(830)은 가령 도 10을 참조하여서 이하에서 상세하게 설명될 하나 이상의 ICI 완화 프로세스(835)를 구현하는 하나 이상의 프로세서를 포함한다. 또한, 도 8에 도시된 다양한 구성 요소 또는 블록들 간의 데이터 흐름은 가령 도 10을 참조하여서 이하에서 상세하게 설명될 것이다. 일반적으로, 도 10을 참조하여서 이하에서 설명될 바와 같이, 기록 동작 동안에 ICI 완화를 수행하기 위해서, 하나 이상의 ICI 완화 프로세스(835)는 메모리 어레이(870) 내에 저장될 사전 보상된 프로그램 값들을 타겟 셀 및 어그레서 셀들에 대한 프로그램 데이터에 기초하여서 생성한다.
예시적인 플래시 메모리 블록(860)은 메모리 어레이(870), 하나 이상의 버퍼(880) 및 메모리 제어 회로(895)를 포함한다. 각 버퍼(880)는 잘 알려진 상업적으로 입수가능한 기술 및/또는 제품을 사용하여서 구현될 수 있다. 예시적인 메모리 제어 회로(895)는, 상기 계산된 사전 보상된 프로그램 값들을 메모리 어레이(870)에 기록하되 도 11 내지 도 13을 참조하여서 이하에서 상세하게 설명될 하나 이상의 ISPP(Incremental Step Pulse Programming) 수행부(898)를 더 포함한다. 또한, 본 기술 분야의 당업자에게는 자명한 바와 같이, 메모리 제어 회로(895)는 판독부(가령, 감지 증폭기), 짝수/홀수 비트라인 선택부 및 프로그램용 캐시/버퍼 저장부를 더 포함한다. 이러한 통상적인 ISPP 기술은, 가령, 미국 특허 출원 공개 제2008/0084751호 및 2008년 4월에 박기태 등에 의해서 제시된 IEEE J. of Solid State Circuits, Vol. 43. No. 4, 919-928에서의 "A Zeroing Cell-to-Cell Interference Page Architecture With Temporary LSB Storing and Parallel MSB Program Scheme for MLC NAND Flash Memories" 및 1996년 11월에 T.-S. Jung에 의해서 제시된 IEEE J. of Solid State Circuits, vol. 31, No. 11, 1575-1583에서의 "A 117-mm2 3.3-V only 128-Mb Multilevel NAND Flash Memory for Mass Storage Applications" 및 1995년 11월에 K.-D. Suh 등에 의해서 제시된 IEEE J. of Solid State Circuits, vol. 30, No. 11, 1149-1156에서의 "A 3.3V 32Mb NAND Flash Memory with Incremental Step Pulse Programming Scheme" 에 상세하게 기술되어 있으며, 이러한 문헌들은 본 명세서에서 참조로서 인용된다. 본 발명은 본 명세서에서 주로 ICI 완화 측면에서 설명될 것이지만, 본 기술 분야의 당업자에게는 명백한 바와 같이, 본 발명은 임의의 장해로부터 기인되는 왜곡 현상을 완화시키는데 사용될 수 있다.
개시된 ICI 완화 기술의 다양한 실시예에서, 예시적인 인터페이스(850)는 어그레서 셀들과 관련된 정보를 나타내는 값들과 같은, 통상적인 플래시 메모리 시스템에 비해서 추가된 정보를 전달할 필요가 있을 수 있다. 따라서, 인터페이스(850)는 통상적인 플래시 메모리 시스템에서의 인터페이스보다 높은 용량(가령, 더 많은 입력 핀 또는 출력 핀) 또는 더 고속의 레이트를 구비할 필요가 있을 수 있다. 인터페이스(850)는 선택적으로 가령 2009년 6월 30일자에 출원되었고 본 명세서에서 참조로서 인용되며 변리사 참조 번호(Attorney Docket No.)가 08-0769인 국제 특허 출원 제PCT/US09/49328호 "Methods and Apparatus for Interfacing Between a Flash Memory Controller and a Flash Memory Array"의 교시 사항에 따라서 구현될 수 있다. 이 국제 특허 문헌은 가령 DDR(double data rate) 기술을 사용하여서 인터페이스(850)의 정보 반송 용량을 증가시키는 것을 개시하고 있다.
기록 동작 동안에, 인터페이스(850)는 타겟 셀 내에 저장될 사전 보상된 프로그램 값들을 통상적으로 페이지 또는 워드라인 레벨 액세스 기술을 사용하여서 전달한다. 이러한 예시적인 페이지 또는 워드라인 레벨 액세스 기술들은, 가령, 본 명세서에서 참조로서 인용되며 2009년 3월 11일자에 출원된 국제 특허 출원 제 PCT/US09/36810호 "Methods and Apparatus for Storing Data in a Multi-Level Cell Flash Memory Device with Cross-Page Sectors, Multi-Page Coding and Per-Page Coding"에 상세하게 설명되어 있다. 통상적으로, 최초의 프로그램 값들을 표현하는데 필요한 비트보다 많은 비트가 사전 보상된 프로그램 값들을 표현하기 위해서 필요하다. 그 이유는 통상적으로 사전 보상된 프로그램 값들의 수가 최초의 프로그램 값들의 수보다 크기 때문이다. 그러므로, 기록 측에서의 ICI 완화를 위해서, 인터페이스(850)는 통상적인 인터페이스보다 많은 데이터를 전달할 필요가 있다.
도 8의 실시예에서는, 상기 개시된 기록 측에서의 ICI 완화 기술들이 플래시 메모리 외부에서 그리고 통상적으로 로직 회로가 최하위 영역을 이루도록 최적화된 프로세스 기술로 해서 구현된다. 그러나, 이러한 경우에, 추가적 어그레서 셀 데이터가 인터페이스(850) 상에서 전달되어야만 한다.
도 9는 다른 실시예에 따른 메모리 기반형 ICI 완화 기술들을 채용한 예시적인 플래시 메모리 시스템(900)의 개략적인 블록도이다. 도 9에 도시된 바와 같이, 이 예시적인 플래시 메모리 시스템(900)은 서로 인터페이스(950)에 의해서 접속되는 플래시 제어 시스템(910) 및 플래시 메모리 블록(960)을 포함한다. 이 예시적인 플래시 제어 시스템(910)은 통상적으로 하나 이상의 집적 회로 상에 플래시 제어기(920) 및 선택적인 판독 채널(925)을 포함한다. 이 예시적인 판독 채널(925)은 인코더/디코더 블록(940) 및 하나 이상의 버퍼(945)를 포함한다. 다른 실시예에서, 인코더/디코더 블록(940) 및 몇몇 버퍼들(945)은 플래시 제어기(920) 내측에서 구현될 수 있다. 상기 예시적인 플래시 제어기(920)는 본 발명의 특징 및 기능들을 지원하도록 본 명세서에서 수정되는 바와 같은 잘 알려진 상업적으로 입수가능한 기술 및/또는 제품을 사용하여서 구현될 수 있다. 가령, 상기 인코더/디코더 블록(940) 및 버퍼들(945)은 잘 알려진 상업적으로 입수가능한 기술 및/또는 제품을 사용하여서 구현될 수 있다.
예시적인 플래시 메모리 블록(960)은 메모리 어레이(970), 하나 이상의 버퍼(980), 신호 처리 유닛(985) 및 메모리 제어 회로(995)를 포함한다. 각 버퍼(980)는 잘 알려진 상업적으로 입수가능한 기술 및/또는 제품을 사용하여서 구현될 수 있다. 예시적인 신호 처리 유닛(985)은 가령 도 10을 참조하여서 이하에서 상세하게 설명될 하나 이상의 ICI 완화 프로세스(990)를 구현하는 하나 이상의 프로세서를 포함한다.
또한, 도 9에 도시된 다양한 구성 요소 또는 블록들 간의 데이터 흐름은 가령 도 10을 참조하여서 이하에서 상세하게 설명될 것이다. 일반적으로, 도 10을 참조하여서 이하에서 설명될 바와 같이, 기록 동작 동안에 ICI 완화를 수행하기 위해서, 하나 이상의 ICI 완화 프로세스(990)는 사전 보상된 프로그램 값들을 타겟 셀 및 어그레서 셀들에 대해 상기 플래시 제어기(910)로부터 수신되는 프로그램 값들에 기초하여서 생성한다.
상기 예시적인 메모리 제어 회로(995)는, 상기 계산된 사전 보상된 프로그램 값들을 플래시 메모리 어레이(970)에 기록하되 도 8과 유사하게 도 11 내지 도 13을 참조하여서 이하에서 상세하게 설명될 하나 이상의 ISPP(Incremental Step Pulse Programming) 수행부(998)를 더 포함하고 있다. 또한, 본 기술 분야의 당업자에게는 자명한 바와 같이, 메모리 제어 회로(995)는 판독부(가령, 감지 증폭기), 짝수/홀수 비트라인 선택부 및 프로그램용 캐시/버퍼 저장부를 더 포함할 수 있다.
개시된 ICI 완화 기술의 다양한 실시예에서, 예시적인 인터페이스(950)는 어그레서 셀들과 관련된 정보를 나타내는 값들과 같은, 통상적인 플래시 메모리 시스템에 비해서 추가된 정보를 전달할 필요가 있을 수 있다. 따라서, 인터페이스(950)는 통상적인 플래시 메모리 시스템에서의 인터페이스보다 높은 용량(가령, 더 많은 입력 핀 또는 출력 핀) 또는 더 고속의 레이트를 구비할 필요가 있을 수 있다. 인터페이스(950)는 선택적으로 가령 2009년 6월 30일자에 출원되었고 본 명세서에서 참조로서 인용되며 변리사 참조 번호가 08-0769인 국제 특허 출원 제PCT/US09/49328호 "Methods and Apparatus for Interfacing Between a Flash Memory Controller and a Flash Memory Array"의 교시 사항에 따라서 구현될 수 있다. 이 국제 특허 문헌은 가령 DDR(double data rate) 기술을 사용하여서 인터페이스(950)의 정보 반송 용량을 증가시키는 것을 개시하고 있다.
기록 동작 동안에, 인터페이스(950)는 타겟 셀 및 어그레서 셀 내에 저장될 프로그램 데이터를 전달하고, 사전 보상된 프로그램 값들이 플래시 메모리(96) 내부에서 계산된다. 인터페이스(950)는 통상적인 플래시 메모리 시스템에서와 같이 가령 타겟 셀을 갖는 페이지에 대한 프로그램 데이터를 전달하고 이와 더불어 어그레서 셀들을 갖는 인접하는 워드라인이나 짝수 또는 홀수 비트라인에 대한 프로그램 데이터도 전달한다. 통상적으로, 이러한 프로그램 데이터를 표현하는데 필요한 비트는 사전 보상된 프로그램 값들을 표현하는 비트보다 적다. 그러므로, 기록 측에서의 ICI 완화를 위해서, 인터페이스(950)는 인터페이스(850)보다 작은 대역폭을 요구한다. 그러나, 이러한 방식에서는, 통상적으로 메모리에 대해서는 최적화되었지만 로직 회로에 대해서는 최적화되지 않은, 플래시 메모리를 제조하는데 사용되는 메모리 프로세스 기술을 사용하여서 메모리 내부에서 상기 기록 측에서의 ICI 완화 프로세스를 구현해야 한다.
도 8 및 도 9의 ICI 완화 기술의 다양한 실시예에서 사용된 용량성 결합 계수 kx, ky 및 kxy는 플래시 제어 시스템(810, 910) 및/또는 플래시 메모리 블록(860,960)에서 계산될 수 있다. 이 용량성 결합 계수 kx, ky 및 kxy는 각각의 인터페이스(850,950) 상에서 전달될 필요가 있을 수 있다. 이 용량성 결합 계수는 연속적으로 또는 주기적으로 또는 필요할 경우에 적응되거나 갱신될 수 있다.
이전에 기술한 바와 같이, 본 발명의 다양한 측면들은 ICI를 완화시키기 위한 신호 처리 기술들을 제공한다. 이러한 신호 처리 기술들은 다른 이점들 중에서도 무엇보다도 기술적 제약 사항 및 물리적 제약 사항에 의해서 제약되지 않는다. 일반적으로, 후술할 바와 같이, 기록 측에서의 ICI 완화는 어그레서 셀(720) 내에 저장될 프로그램 전압을 알면서 타겟 셀(710)을 프로그래밍하는 동안에 이루어질 수 있다.
기록 측에서의
ICI
완화
도 10은 본 발명의 특징들을 채용하는 기록 측에서의 ICI 완화 프로세스(1000)의 예시적인 구현을 기술하는 흐름도이다. 도 8 및 도 9를 참조하여서 기술한 바와 같이, 기록 측에서의 ICI 완화 프로세스(1000)는 통상적으로 플래시 제어 시스템(810) 내의 신호 처리 유닛(830) 또는 플래시 메모리(960) 내의 신호 처리 유닛(985)에 의해서 구현될 수 있다. 도 10에 도시된 바와 같이, 기록 측에서의 ICI 완화 프로세스(1000)는 먼저 단계(1010)에서 플래시 메모리(700) 내의 하나 이상의 타겟 셀(710)에 기록될 프로그램 데이터를 획득한다. 전술한 바와 같이, 예시적인 페이지 또는 워드라인 레벨 액세스 기술들은, 가령, 본 명세서에서 참조로서 인용되며 2009년 3월 11일자에 출원된 국제 특허 출원 제 PCT/US09/36810호 "Methods and Apparatus for Storing Data in a Multi-Level Cell Flash Memory Device with Cross-Page Sectors, Multi-Page Coding and Per-Page Coding"에 상세하게 설명되어 있다.
이어서, 단계(1020)에서, 타겟 셀(710)에 대해서, 이 기록 측에서의 ICI 완화 프로세스(1000)는 이후에 프로그램될 적어도 하나의 인접하는 셀(720)에 대한 1 비트 이상의 프로그램 데이터를 획득한다. 단계(1020)에서 획득된 어그레서 셀(720)은 메모리(700) 내의 인접하는 페이지들과 관련되며 기록 측에서의 ICI 완화 프로세스(1000)는 이 어그레서 셀(720)에 대한 프로그램 데이터가 가용할 때까지 대기해야 할 수 있다. 타겟 셀에 대한 프로그램 데이터 및 잠재적인 어그레서 셀에 대한 프로그램 데이터는 어그레서 셀들에 대한 모든 값들이 가용할 때까지 가령 버퍼(845 또는 980) 내에 저장될 수 있다. 충분한 양의 데이터가 ICI 완화를 수행하기 위해서 수집될 때까지, 상기 버퍼들은 가령 타겟 셀과 관련된 페이지 및 그와 인접하는 워드라인 또는 인접하는 짝수/홀수 비트라인 내의 x, y 또는 xy 방향으로 인접하는 페이지들을 저장할 수 있다. 잠재적인 어그레서 셀들에 대한 프로그램 데이터는 선행 기록 프로세스로부터 버퍼 내로 입수 가능하다. 전술한 바와 같이, 어그레서 셀들(720)은 소정의 타겟 셀(710) 후에 프로그래밍되는 어그레서 셀들(720)을 식별하기 위해서 (가령, 상향식 프로그래밍 기술 또는 짝수/홀수 프로그래밍 기술과 같은) 프로그래밍 시퀀스 방식을 분석함으로써 식별될 수 있다.
이 기록 측에서의 ICI 완화 프로세스(1000)는 단계(1030)에서 타겟 셀에 대한 ICI를 사전 보상한다. 예상된 ICI를 보상하는 타겟 셀(710)에 대한 새로운 프로그램 전압은 다음의 등식에 의해서 획득된다.
여기서, PVt는 최초의 프로그램 전압 또는 목표 임계 전압이며,
PVtc는 ICI 소거 후의 새로운 프로그램 전압 또는 임계 전압이고,
△Vc는 ICI 소거항이다.
일반적으로, 등식(2)에서 ICI 소거 또는 완화 항은 어그레서 셀들(720)의 전압 변화 및 상기 용량성 결합 계수에 기초하여서 계산된다. 전술한 바와 같이, 도 7의 예시적인 실시예에서, 어그레서 셀(720)은 타겟 셀과 동일한 워드라인 및 타겟 셀 상위의 인접하는 워드라인 내의 셀들을 포함한다. 선택 사양적으로, 타겟 셀 하위의 인접하는 워드라인 내의 어그레서 셀들도 역시 ICI를 초래한다면 고려될 것이다. 따라서, ICI로 인한 전압 분포 시프트 및 전압 분포 폭 확장 모두가 완화된다.
ICI 소거 또는 완화 항은 다음과 같이 계산될 수 있다.
에 대해서, 가령 Vt 전압의 평균 변화 또는 예상 변화량이 사용될 수 있다. 마지막으로, 단계(1040)에서, 단계(1030) 동안 타겟 셀(710)에 대해서 계산된 사전 보상된 프로그램 값들이 플래시 메모리(860,960)에 제공된다.
ICI
완화 프로세스에 대한 간소화 방식
A. 다중 단계 페이지 프로그래밍
시퀀스의
경우
상술한 바와 같이, 도 5(a) 및 도 5(b)는 예시적인 다중 단계 페이지 프로그래밍 시퀀스를 나타내었다. 본 발명의 일 측면에 따르면, 다중 단계 페이지 프로그래밍 시퀀스가 MLC 플래시 메모리 디바이스(600)에 적용되면, 중간의 프로그래밍 동안 나타나는 ICI는 마지막 상위 페이지에 대한 후속 프로그래밍에 의해서 상쇄된다. 일반적으로, 상위(MSB) 페이지에 대한 최종 프로그래밍은 최종 프로그래밍된 전압 분포를 재프로그래밍하고 그 분포의 폭을 좁히게 되고 이로써 중간 상태에 적용되는 ICI가 소거된다. 따라서, 본 발명의 일 실시예에서, 최종 최상위 페이지(MSB)가 프로그래밍될 때 ICI는 단지 소거된다. 하위 페이지(즉, 중간 상태)를 프로그래밍하는 동안에 ICI를 소거하는 것은 선택 사양이지만 이는 일반적으로 양호한 에러 레이트 성능을 달성하기 위해서 요구되지 않는다. 가령, 도 6의 3 비트/셀 플래시 메모리 디바이스(600)의 경우에, 하위 페이지 및 중위 페이지에 대한 중간 프로그래밍은 무시될 수 있다.
일반적으로, 기록 측에서의 ICI 완화에 있어서, 가령 인접하는 워드라인 또는 비트라인 내의 어그레서 셀들의 프로그램 전압 레벨 을 알 필요가 있다. 일반적으로, 등식(3)에서는 L 개의 상이한 이 존재한다. 가령, 셀마다 3 비트를 갖는 도 6의 예시적인 MLC 플래시 셀 어레이(600)에서, L은 8과 같다. 그러나, 본 발명의 일 측면에서, 채용된 프로그래밍 알고리즘에 따라서, 오직 M 개의 상이한 만이 L 개의 상이한 값을 대략적으로 기술하기 위해서 사용될 수 있다(여기서, M < L). 도 5(b)에 도시된 예시적인 프로그래밍 방식에 있어서, 상태 "11"에서 상태 "01"로의 천이, 상태 "x0"에서 상태 "10"으로의 천이는 대략 동일한 전압 시프트 정도를 가지기 때문에 M = 3 개의 상이한 만을 고려하는 것으로 충분하다. 보다 복잡한 ICI 완화 프로세스는 상태 "11"에서 상태 "11"로의 천이, 상태 "11"에서 상태 "01"로의 천이, 상태 "x0"에서 상태 "00"으로의 천이 및 상태 "xO"에서 상태 "10"으로의 천이와 같은 모든 가능한 천이와 관련된 서로 상이한 L = 4 개의 값을 고려할 것이다. 도 7의 실시예에서, ICI를 초래하는 5 개의 인접하는 셀들(720)이 존재하기 때문에, 등식 (2) 및 등식 (3)에서의 상이한 △Vc 값의 개수는 L5 대신에 M5이다. 그러므로, 이 계산이 필요한 상이한 △Vc 값의 개수는 M < L이 경우에 크게 줄어든다.
다중 단계 페이지 프로그래밍 시퀀스가 도 7에 도시된 예시적인 플래시 메모리에서 사용되면, 도 10의 제어기 기반형 또는 메모리 기반형의 ICI 완화 프로세스(1000)는 다음과 같이 실행된다. 상위의 인접하는 워드라인에 대한 상위 페이지 데이터가 가용할 때까지 페이지 데이터가 버퍼 메모리(845 또는 980) 내에 임시 저장되며 플래시 메모리 디바이스(870 또는 970)에는 기록되지 않는다. 각각의 ICI 완화 블록(835 도는 990)은 도 10을 참조하여서 상술한 바와 같이 상기와 같은 데이터 비트에 기초하여서 새로운 프로그램 전압(사전 보상된 프로그램 값들)을 계산한다. 가령 전력 차단 또는 정전으로 인해서 전원 전압이 임계 전압 아래로 강하되면, 버퍼 메모리(845 또는 980) 내에 저장된 데이터가 플래시 메모리(870 또는 970) (또는 다른 비휘발성 메모리)에 기록되어서 데이터가 손실되지 않게 한다.
상술한 기록 측에서의 ICI 완화 방식은 최종 상태뿐만 아니라 가령 3 비트/셀 플래시 메모리 내의 중위 페이지가 프로그래밍될 때와 같은 중간 상태에도 적용될 수 있다. 다중 단계 페이지 프로그래밍 고려 사항들은 플래시 메모리의 판독 동작 및 기록 동작 모두에 영향을 준다. 일단 셀이 중간 상태로 프로그래밍되면, 이 셀은 이 중간 상태로 무한정하게 유지될 수 있다.
B. X-Y 방향에서의
용량성
결합 계수를 무시하는 경우
예시적인 실시예에서 전술한 바와 같이, 등식(3)은 도 7에 도시된 예시적인 플래시 메모리 내의 타겟 셀(710)과 이와 인접하는 5 개까지의 어그레서 셀(720) 간의 ICI를 다루기 위해서 용량성 결합 계수 kx, ky 및 kxy를 고려하였다. 그러나, 본 발명의 다른 측면에서는, kxy ≪ kx < ky 의 관계가 성립된다. 따라서, x-y 방향에서의 용량성 결합 계수 kxy는 등식(3)에서 무시될 수 있으며, 이로써 ICI 완화 또는 소거 항은 다음과 같이 된다.
서로 구별되는 △Vc의 개수는 등식(3)에서와 같은 L5 대신에 L3로 줄어든다. 서로 구별되는 △Vc의 개수는 오직 M (L 보다 작음) 개의 서로 상이한 전압 시프트 수 만을 고려함으로써 더 줄어든다. 따라서, 계산되어야 할 서로 구별되는 △Vc의 개수는 M3 개로 줄어든다. 일반적으로, 이러한 ICI 완화 간소화 방식 A 및 B에서, 서로 구별되는 △Vc의 개수는 MK가 되는데, 여기서 k는 고려되는 어그레서 셀들의 개수이며 M은 고려되는 서로 구별되는 전압 시프트의 수이다. 기록 측에서의 ICI 완화와 관련된 등식(3)은 이와 같이 간소화될 수 있다. 또한, 서로 구별되는 △Vc 값의 개수를 줄임으로써, 등식(2)에서 주어진 바와 같은 사전 보상된 프로그램 값들의 개수도 감소한다. 이로써, 가령 인터페이스(850) 상에서 전송되어야 하는 데이터의 양이 감소하고, 이 결과, 인터페이스(850)의 용량도 (핀이나 전송 레이트의 측면에서) 오직 M(L보다 작음) 개의 서로 상이한 전압 시프트 수 만을 고려함으로써 서로 구별되는 △Vc 값의 개수를 줄이지 않는 기록 측에서의 ICI 완화 방식에 비해서 역시 감소하게 된다.
C. 짝수/홀수 프로그래밍에 있어서 X 방향에서의
용량성
결합 계수를 무시하는 경우
도 3을 참조하여서 상술한 바와 같이, 예시적인 짝수/홀수 프로그래밍 시퀀스는 짝수 비트라인 셀 및 홀수 비트라인 셀 중 어느 하나를 선택하고 표시된 순서에 따라서 순차적으로(상향식으로) 프로그래밍한다. 본 발명의 다른 측면에 따르면, 짝수 페이지 아니면 홀수 페이지(가령, 홀수 페이지가 짝수 페이지 다음에 프로그래밍되면 홀수 페이지임)에 대해서 x 방향에서의 용량성 결합 계수가 무시될 수 있다. 이로써, 홀수 페이지에 대해서, 등식(3)에서의 ICI 소거 또는 완화 항은 다음과 같이 간소화된다.
여기서, 계산할 필요가 있는 서로 구별되는 △Vc 값의 개수는 오직 M 개로 감소한다. 짝수 비트라인 및 홀수 비트라인을 병렬로 프로그래밍하는 몇몇 플래시 메모리 아키텍처에서는 x 방향에서의 용량성 결합이 거의 성능에 손실을 주지 않으면서 생략될 수 있다. 일반적으로, 등식(5)은 짝수 페이지 및 홀수 페이지 모두에 사용되어서 하드웨어 복잡도를 감소시킨다. 기록 측에서의 ICI 완화와 관련된 등식(3)은 이렇게 간소화될 수 있다.
개선된
ISPP
기술
본 발명의 일 측면에 따라서, 개선된 ISPP 기술들이 전압 레벨 또는 데이터 상태에 대해서 다수의 임계 전압을 프로그래밍하기 위해서 제공된다. 도 12를 참조하여서 이하에서 기술될 일 예시적인 실시예에서, 개시된 ISPP 프로세스(1200)는 프로그래밍 국면(programming phase) 및 다수의 검증 국면(verify phase)을 사용하여서 플래시 메모리 디바이스의 각 전압 레벨을 프로그래밍한다. 도 13을 참조하여서 이하에서 기술될 다른 예시적인 실시예에서, 개시된 ISPP 프로세스(1300)는 프로그래밍 국면(programming phase) 및 다수의 검증 국면(verify phase)을 사용하여서 플래시 메모리 디바이스의 모든 전압 레벨을 프로그래밍하며, 여기서 상기 전압 레벨들 중 적어도 하나는 프로그래밍되고 있는 중인 다수의 프로그램 전압 또는 목표 임계 전압을 포함한다.
이러한 개시된 ISPP 기술들은 다른 애플리케이션 중에서도 상술한 바와 같은 기록 측 ICI 완화 프로세스와 같이 셀 침해에 대하여 계산된 사전 보상된 프로그램 값들을 프로그래밍하는데 사용될 수 있다. 등식(2)을 참조하여서 상술한 바와 같이, PVtc는 ICI 완화 후의 새로운 프로그램 전압 또는 목표 임계 전압이다. 이로써, 동일한 데이터 또는 전압 레벨을 저장하는 동일한 워드라인 내의 셀들 간의 프로그램 전압들은, 이 프로그램 전압들이 이웃하는 셀들에 저장된 데이터에 의존하기 때문에, 서로 상이하게 된다.
본 명세서에서 기술되는 이러한 신호 레벨(도 2를 참조하면 데이터 상태로도 지칭될 수 있음)은 전압 레벨, 전류 레벨 또는 저항 레벨과 같은 임의의 다수의 예시적인 신호를 사용하여서 표현될 수 있다. 일 예시적인 실시예에서, 각 저장 요소는 각 메모리 셀 내에 2 비트 데이터를 저장하기 위해서 4 개의 가능한 데이터 상태를 사용한다. 각 가능한 데이터 상태는 대응하는 프로그램 전압(목표 임계 전압으로도 지칭됨), 대응하는 프로그램 전류 또는 대응하는 프로그램 저항과 같은 적어도 하나의 대응하는 프로그램 값을 갖는다. 개시된 ISPP 기술들이 가령 셀 장해에 대해 계산된 사전 보상된 프로그램 값들을 프로그래밍하는데 사용될 경우에, 소정의 데이터 상태 또는 신호 레벨은 복수의 대응하는 프로그램 값들을 갖는다.
도 11은 통상적인 ISPP 프로세스(1100)를 기술하는 흐름도이다. 이러한 통상적인 ISPP(Incremental Step Pulse Programming) 기술들은, 가령, 미국 특허 출원 공개 제2008/0084751호 및 2008년 4월에 박기태 등에 의해서 제시된 IEEE J. of Solid State Circuits, Vol. 43. No. 4, 919-928에서의 "A Zeroing Cell-to-Cell Interference Page Architecture With Temporary LSB Storing and Parallel MSB Program Scheme for MLC NAND Flash Memories" 및 1996년 11월에 T.-S. Jung에 의해서 제시된 IEEE J. of Solid State Circuits, vol. 31, No. 11, 1575-1583에서의 "A 117-mm2 3.3-V only 128-Mb Multilevel NAND Flash Memory for Mass Storage Applications" 및 1995년 11월에 K.-D. Suh 등에 의해서 제시된 IEEE J. of Solid State Circuits, vol. 30, No. 11, 1149-1156에서의 "A 3.3V 32Mb NAND Flash Memory with Incremental Step Pulse Programming Scheme" 에 상세하게 기술되어 있으며, 이러한 문헌들은 본 명세서에서 참조로서 인용된다. 일반적으로, 통상적인 ISPP 프로세스(1100)는 전체 워드라인에 걸쳐서 동일한 데이터 또는 전압 레벨을 저장하는 모든 셀들에 동일한 프로그램 전압을 프로그래밍하고, 전체 워드라인에서 일 전압 레벨(가령, 도 2를 참조하면 데이터 상태로 지칭되기도 함)에 대해 달성될 오직 하나의 목표 임계 전압이 존재한다. 가령, 셀마다 2 비트를 저장하는 다중 레벨 셀(MLC)의 경우에, 4 개의 전압 레벨 또는 데이터 상태가 존재한다.
도 11에 도시된 바와 같이, 통상적인 ISPP 프로세스(1100)는 먼저 단계(1110)에서 페이지 데이터를 로딩한다. 통상적인 ISPP 프로세스에서, 타겟 셀과 관련된 페이지(즉, 프로그래밍될 페이지)만이 로딩된다. 통상적으로, 플래시 메모리는 증가하는 전압 레벨 순서로 해서 셀들을 점진적으로 프로그래밍할 것이다. 초기에, 현 전압 레벨 또는 보다 높은 전압 레벨로 프로그래밍된 모든 셀들이 선택된다. 단계(1120)에서, 프로그래밍 펄스를 인가함으로써 상기 선택된 셀들이 프로그래밍된다. 이어서, 이 선택된 셀들이 소망하는 목표 임계 전압에 도달했는지의 여부를 판정하기 위해서 단계(1130)에서 검증 국면이 수행된다. 상기 목표 임계 전압에 도달했거나 초과한 임의의 검증된 셀들이 단계(1130)에서는 선택되지 않는다. 일반적으로, 검증 국면은 플래시 메모리 디바이스로부터 하나 이상의 판독 값을 판독하며 이 판독 값을 소망하는 프로그램 전압 또는 목표 임계 전압에 대한 임계치와 비교한다.
단계(1140)에서, 모든 셀들이 프로그래밍되었는지의 여부를 판정하는 테스트가 수행된다. 단계(1140)에서 모든 셀들이 다 프로그래밍되지 않았다고 판정되면, 프로그램 제어는 단계(1120)로 돌아가서 프로그래밍 펄스를 증분시키고 잔여 셀들을 그들의 목표 임계 전압으로 더 프로그래밍한다. 그러나, 단계(1140)에서 모든 셀들이 다 프로그래밍되었다고 판정되면, 프로그램 제어는 단계(1160)에서 종료된다.
본 발명은 예시적인 ICI 완화 기술에 있어서의 프로그램 전압 조절이, 동일한 데이터를 저장하고 있는 페이지 또는 워드라인 내의 셀들 간에서, 인접하는 셀들 내에 저장된 데이터에 의존하는 ICI가 서로 상이하기 때문에, 서로 상이하다는 사실을 인지하고 있다. 상술한 바와 같이, 예시적인 기록 측 ICI 완화에 있어서, 가령 인접하는 워드라인 또는 비트라인 내의 어그레서 셀들의 프로그램 레벨 을 일반적으로 알아야 한다. 일반적으로, k 개의 어그레서 셀들(720) 각각에 대해서 등식(3)에서 서로 상이한 L 개의 가 존재한다. 따라서, 각 전압 레벨에 대해서 N = Lk 개의 가능한 사전 보상된 프로그램 값들이 존재한다.
가령, 셀마다 3 비트를 갖는 도 6의 예시적인 MLC 플래시 셀 어레이(600)에서, L은 8과 같다. 그러나, 본 발명의 일 실시예에서, 채용된 프로그래밍 알고리즘에 따라서, 오직 M 개의 상이한 이 L 개의 상이한 값들을 대략적으로 나타내기 위해서 사용될 수 있다(여기서, M<L). 이로써, 오직 N = Mk 개의 사전보상된 프로그램 값들이 전압 레벨에 대해서 계산될 필요가 있으며 오직 N = Mk 개의 검증 국면들이 사용될 필요가 있다. 그러므로, 검증 국면의 수가 감소된다. 이렇게 검증 국면의 수를 감소시키면 프로그래밍 시간이 감소되고 이로써 기록 속도가 증가한다. 예시적인 실시예에서, 오직 상위의 인접하는 셀(720)만이 타겟 셀(710)에 영향을 주는 주요한 ICI를 초래한다고 가정된다. 따라서, 일 전압 레벨에 대한 가능한 프로그램 전압의 수는 M 개의 레벨로 한정되고(이는 상술된 ICI 완화 기술에 있어서 복잡도가 감소된 바로서 간주될 수 있음), 오직 M 개의 검증 국면이 사용될 필요가 있다. 그러므로, 프로그래밍 시간은 더욱 감소된다. 소정의 플래시 메모리가 2 개의 신호 레벨을 가지며 하나의 어그레서 셀(720)이 존재하면, M은 2와 같다. 이와 마찬가지로, 소정의 플래시 메모리가 이하에서 더 상세하게 기술될 바와 같은 다중 단계 페이지 프로그래밍 시퀀스를 채용하고 하나의 어그레서 셀(720)이 존재하며 기록 측에서의 ICI 완화 프로세스가 MSB 페이지를 프로그래밍하는 동안에 적용되면, M은 일 전압 레벨에 대해서 2가 된다. 전압 레벨에 대한 사전 보상된 프로그램 전압들의 수 N은 모든 전압 레벨에 대해서 동일한 필요가 없으며 각 전압 레벨은 자신만의 고유의 N을 가질 수 있다.
본 발명의 일 측면은 도 12를 참조하여 이하에서 설명되되 각 전압 레벨에 대해서 복수의 상이한 프로그램 전압들을 프로그래밍하는 개선된 ISPP 프로세스(1200)를 제공한다. 일반적으로, 플래시 메모리 디바이스가 다수의 프로그램 전압을 가질 때에, 각 프로그램 전압은 다수의 분리된 그룹(disjoint group) 중 하나의 그룹과 관련된다. 플래시 메모리 디바이스를 프로그래밍하는 동안에, 각 프로그래밍 국면은 다수의 검증 국면을 포함한다. 소정의 분리된 그룹에 대한 검증 국면의 수는 이 소정의 분리된 그룹에 속한 멤버들의 수와 동일하다. 가령, 각 분리된 그룹은 상이한 전압 레벨(가령, 전압 임계 레벨)에 대응할 수 있다. 각 분리된 그룹은 다른 분리된 그룹과 서로 다른 멤버의 수를 갖는다. 전술한 바와 같이, 본 발명은 본 기술 분야의 당업자에게는 자명한 바와 같이 플래시 메모리에 있어서 저장된 데이터를 표현하기 위해서 전압, 전류 또는 저항을 사용하는 것과 같은 임의의 저장 메카니즘과 함께 사용될 수 있다.
도 12는 본 발명의 특징들을 채용하는 ISPP 프로세스(1200)를 기술하는 흐름도이다. 일반적으로, 본 발명의 ISPP 프로세스(1200)는 다수의 전압 레벨을 다수의 프로그래밍 단계들을 사용하여서 워드라인에 프로그래밍한다. 여기서, 적어도 하나의 전압 레벨에 대한 프로그래밍 단계는 프로그래밍 국면 및 다수의 검증 국면들을 포함한다. 그러므로, 적어도 하나의 프로그래밍 단계에서, 프로그래밍된 전압 레벨은 해당하는 다수의 검증 국면을 사용하여서 검증된다. 이러한 방식에서는, 예시적인 ICI 완화 기술에 있어서의 프로그램 전압 조절 정도는 동일한 데이터를 저장하는 페이지 내의 셀들 간에서 서로 상이할 수 있다.
도 12에 도시된 바와 같이, 본 발명의 ISPP 프로세스(1200)는 단계(1210)에서 먼저 본 명세서에서 참조로서 인용된 국제 특허 출원 제PCT/US09/49327호 "Methods and Apparatus for Write-Side Intercell Interference Mitigation in Flash Memories"에서 개시된 바와 같이 타겟 셀 및 어그레서 셀들에 대한 데이터를 포함하는 페이지 데이터를 로딩한다. 가령, 이러한 페이지 데이터는 프로그래밍될 현 페이지 및 이 현 페이지와 인접하되 어그레서 셀들을 포함하는 페이지와 같은 추가 페이지를 포함한다. 이 로딩된 페이지 데이터 내의 비트들에 기초하여서, 단계(1215)에서, 플래시 메모리 디바이스 내의 셀들에 기록될 사전 보상된 프로그램 값들이 결정된다. 이 사전 보상된 프로그램 값들은 가령 등식(2) 및 등식(3)에 따라서 계산된다. 상술한 바와 같이, 플래시 메모리는 통상적으로 증가하는 전압 레벨의 순서로 해서 셀들을 점차적으로 프로그래밍한다. 초기에, 현 전압 레벨 또는 이보다 높은 레벨로 프로그래밍된 모든 셀들이 선택된다. 이 선택된 셀들은 단계(1220)에서 상기 사전 보상된 프로그램 값으로 프로그래밍된다. 이어서, 복수 N의 검증 국면들이 단계(1230-1 내지 1230-N)(합쳐서 단계(1230)로 지칭됨)에서 수행되어서 선택된 셀들이 소망하는 프로그램 전압 또는 목표 임계 전압에 도달했는지의 여부가 판정된다. 이 검증 국면의 개수인 N은 현 전압 레벨에 대한 서로 구별된 가능한 사전 보상된 프로그램 값들의 수와 동일하다. 단계(1230)에서, 상기 목표 임계 전압에 도달했거나 이를 초과한 임의의 검증된 셀들이 선택해제된다(deselected). 가령, 상술한 바와 같이, 각 전압 레벨에 대한 서로 구별된 가능한 사전 보상된 프로그램 값들의 수는 일반적으로 N=Lk이다. 본 명세서에서 기술된 다양한 간소화 방식에 따라서, 상기 서로 구별된 가능한 사전 보상된 프로그램 값들의 개수가 N=Mk로 감소하거나 심지어 N=M으로 감소된다.
다시 한번 말하자면, 전압 레벨에 대한 사전 보상된 프로그램 값들의 개수 N은 모든 전압 레벨에 걸쳐서 동일한 필요가 없으며, 각 전압 레벨은 서로 다른 N을 가질 수 있다(가령, 대응하는 검증 국면의 개수 N이 서로 다른 적어도 2 개의 전압 레벨이 존재할 수 있다).
따라서, 페이지 내의 상이한 셀들에 대한 일 전압 레벨에 대한 N 개의 상이한 프로그램 전압 또는 목표 임계 전압을 달성하기 위해서, 단계(1220)에서의 매 프로그램 국면 후에 N 번의 검증 국면들이 단계(1230)에서 수행된다. 가령, 본 명세서에서 개시된 예시적인 실시예에서, N은 2이다. 따라서, 각 전압 레벨에 대해서 필요한 2 개의 서로 다른 프로그램 전압들을 확정하기 위해서 단계(1220)에서의 매 프로그래밍 국면 후에 단계(1230)에서 2 번의 검증 국면들이 수행된다. 예시적인 실시예에서, 검증 국면 1은 제 1 목표 전압 임계치를 확정하고, 검증 국면 2는 제 2 목표 전압 임계치를 확정한다. 검증 국면 1의 목표 전압 임계치는 검증 국면 2의 목표 전압 임계치보다 낮다. 제 1 목표 전압으로 프로그래밍될 필요가 있는 셀들은 검증 국면 2 동안에는 검증될 필요가 없다. 한편, 제 2 목표 전압으로 프로그래밍될 필요가 있는 셀들은 검증 국면 1 동안에는 검증될 필요가 없다. 이러한 검증 국면들 동안 충분하게 프로그래밍된 것으로 판정된 셀들은 후속 프로그래밍 국면에 있어서는 선택해제된다.
단계(1240)에서, 현 전압 레벨에서 프로그래밍될 필요가 있는 모든 셀들이 프로그래밍되었는지의 여부를 판정하는 테스트가 수행된다. 만일 단계(1240)에서 모든 셀들이 아직 다 프로그래밍되지 않았다고 판정되면, 프로그램 제어는 단계(1220)로 진행하여서 프로그래밍 펄스를 증분하여서 잔여 셀들을 목표 임계 전압으로 더 프로그래밍한다. 그러나, 단계(1240)에서 모든 셀들이 프로그래밍되었다고 판정되면, 프로그램 제어는 단계(1250)로 진행한다.
단계(1250)에서, 프로그래밍할 추가 전압 레벨들이 존재하는지의 여부가 판정된다. 만일 단계(1250)에서 프로그래밍할 추가 전압 레벨들이 존재한다고 판정되면, 프로그램 제어는 단계(1220)로 진행하여서 다음 전압 레벨을 프로그래밍한다. 그러나, 단계(1250)에서 프로그래밍할 추가 전압 레벨들이 존재하지 않는다면 판정되면, 즉 모든 전압 레벨들이 프로그래밍되었다고 판정되면, 이 프로그램 제어 프로세스는 단계(1260)에서 종료된다.
도 13은 본 발명의 특징들을 채용하는 다른 ISPP 프로세스(1300)를 기술하는 흐름도이다. 전반적으로, 개시된 ISPP 프로세스(1300)는 플래시 메모리 디바이스에 대한 모든 전압 레벨들을 한번 반복함으로써 프로그래밍한다. 도 13에 도시된 바와 같이, 본 발명의 ISPP 프로세스(1300)는 단계(1310)에서 먼저 상술한 바와 같이 그리고 본 명세서에서 참조로서 인용된 국제 특허 출원 제PCT/US09/49327호 "Methods and Apparatus for Write-Side Intercell Interference Mitigation in Flash Memories"에서 개시된 바와 같이, 타겟 셀 및 어그레서 셀들에 대한 데이터를 포함하는 페이지 데이터를 로딩한다. 이 로딩된 페이지 데이터 내의 비트들에 기초하여서, 단계(1315)에서, 플래시 메모리 디바이스 내의 셀들에 기록될 사전 보상된 프로그램 값들이 결정된다. 이 사전 보상된 프로그램 값들은 등식(2) 및 등식(3)에 따라서 계산된다. 선택된 셀들은 단계(1320)에서 모든 전압 레벨에 대해서 상기 사전 보상된 프로그램 값으로 프로그래밍된다. 이어서, 복수 N의 검증 국면들이 단계(1330-1 내지 1330-N)(합쳐서 단계(1330)로 지칭됨)에서 수행되어서 상기 선택된 셀들이 소망하는 프로그램 전압 또는 목표 임계 전압에 도달했는지의 여부가 판정된다. 이 검증 국면의 개수인 N은 프로그래밍될 사전 보상된 프로그램 값들의 총 개수와 동일하다. 단계(1330)에서, 상기 목표 임계 전압 또는 프로그램 전압에 도달했거나 이를 초과한 임의의 검증된 셀들이 선택해제되며 이로써 이후에 다시 프로그래밍되지 않게 된다. 적어도 하나의 전압 레벨 또는 데이터 상태가 다수의 프로그램 전압들을 구비하기 때문에, 단계(1330) 동안 수행된 검증 국면의 개수 N이 전압 레벨 또는 데이터 상태의 개수를 초과한다는 것을 주목할 필요가 있다. 이러한 프로그램 전압들은 ICI(셀간 간섭) 또는 다른 장해 메카니즘의 영향을 완화시키기 위해서 가령 사전 보상된 프로그램 값들이다. 본 명세서에서 기술된 다양한 예시적인 기록 측에서의 ICI 완화 기술들에서, 가령 L 개의 전압 레벨이 존재하고 각 레벨에 대해서 Lk, Mk 또는 M 개의 사전 보상된 프로그램 값들이 계산되는바, N은 L*Lk, L*Mk 또는 L*M과 동일할 수 있다. 소거된 상태는 통상적으로 프로그래밍되지 않고 있다는 것을 고려하면, N은 가령 (L-1)*Mk 또는 (L-1)*M과 동일할 수 있다. 다중 단계 프로그래밍 시퀀스에서, L은 가령 도 5(b)에 도시된 바와 같이 최종 상태가 프로그래밍된 후에 전압 레벨의 개수를 지칭하거나(도 5(b)에서는 L=4), 도 5(a)에서 도시된 바와 같이 중간의 레벨들의 개수를 지칭할 수도 있다(도 5(a)에서는 L=2).
따라서, N 개의 상이한 프로그램 전압 또는 목표 임계 전압을 달성하기 위해서, 단계(1320)에서의 매 프로그램 국면 후에 N 번의 검증 국면들이 단계(1330)에서 수행된다. 여기서, N은 (소거 상태는 통상적으로 프로그래밍되고 있지 않는 상태이므로 이 소거 상태를 계수하지 않을 시에) 페이지와 관련된 전압 레벨 또는 데이터 상태의 개수를 초과한다. 가령, 개시된 기술이 도 5(a) 및 도 5(b)를 참조하여서 전술된 예시적인 2비트/셀 플래시 메모리의 LSB 페이지를 프로그래밍하는데 적용되면, N은 본 발명에 따라서 1보다 큰다. 반면에, 통상적인 프로그래밍 방법을 따르면, N은 1과 동일한데 그 이유는 상태 "x0"과 관련된 오직 하나의 목표 임계 전압만이 프로그래밍되고 검증될 필요가 있기 때문이다. 또한, 개시된 기술이 도 5(a) 및 도 5(b)를 참조하여서 전술된 예시적인 2비트/셀 플래시 메모리의 MSB 페이지를 프로그래밍하는데 적용되면, N은 본 발명에 따라서 3보다 큰다. 반면에, 통상적인 프로그래밍 방법을 따르면, N은 3과 동일한데 그 이유는 상태 "01", "00" 및 "10"과 관련된 오직 3 개의 목표 임계 전압만이 프로그래밍되고 검증될 필요가 있기 때문이다. 단계(1340)에서, 모든 셀들이 프로그래밍되었는지의 여부를 판정하는 테스트가 수행된다. 즉, 모든 셀들이 소망하는 목표 임계 전압에 도달했는지의 여부가 판정된다. 만일 단계(1340)에서 모든 셀들이 아직 다 프로그래밍되지 않았다고 판정되면, 프로그램 제어는 단계(1320)로 진행하여서 프로그래밍 펄스를 증분하여서 잔여 셀들을 목표 임계 전압으로 더 프로그래밍한다. 그러나, 단계(1340)에서 모든 셀들이 프로그래밍되었다고 판정되면, 이 프로그램 제어는 단계(1360)에서 종료된다.
다수의 검증 국면들을 사용하는 개시된 프로그래밍 기술은 도 5(b)에 도시된 바와 같이 최종 상태가 프로그래밍되고 있을 때나 도 5(a)에 도시된 바와 같이 중간 상태가 프로그래밍되고 있을 때에 사용될 수 있다.
프로세스, 시스템 및 제품에 대한 세부 사항들
본 명세서에서 개시된 다수의 흐름도가 단계들의 예시적인 시퀀스를 나타내었지만, 본 발명의 실시예에서는 이러한 단계들의 시퀀스는 변경될 수 있다. 본 발명의 알고리즘에 대한 다양한 변환이 본 발명의 다른 실시예로서 고려될 수 있다. 본 발명의 예시적인 실시예들이 소프트웨어 프로그램으로 구현되는 처리 단계들과 관련하여서 기술되었지만, 다양한 기능들이 디지털 영역에서 처리 단계로서 소프트웨어 프로그램으로, 회로 요소 또는 상태 머신에 의한 하드웨어로 또는 하드웨어와 소프트웨어의 조합으로 구현될 수 있다는 것은 본 기술 분야의 당업자에게는 명백하다. 이러한 소프트웨어는 가령 디지털 신호 프로세서, ASIC(application specific integrated circuit), 마이크로 제어기 또는 범용 컴퓨터 내에서 사용될 수 있다. 이러한 하드웨어 및 소프트웨어는 집적 회로 내에서 구현되는 회로 내에서 실현될 수 있다.
따라서, 본 발명의 기능들은 방법 및 이 방법을 수행하기 위한 장치의 형태로 구현될 수 있다. 본 발명의 하나 이상의 측면들이 가령 저장 매체에 저장되거나, 머신에 의해서 로딩되고/되거나 실행되거나, 몇몇 전송 매체를 통해서 전송될 수 있는 프로그램 코드의 형태로 구현될 수 있다. 이러한 프로그램 코드가 컴퓨터와 같은 머신에 의해서 로딩되고 실행되면, 이 머신은 본 발명을 실시하는 장치가 된다. 프로그램 코드가 범용 프로세서 상에서 구현되면, 프로그램 코드 세그먼트는 프로세서와 결합되어서 특정 로직 회로와 유사하게 동작하는 디바이스를 제공한다. 또한, 본 발명은 집적 회로, 디지털 신호 프로세서, 마이크로프로세서 및 마이크로 제어기 중 하나 이상으로 구현될 수 있다.
본 기술 분야에서 잘 알려진 바와 같이, 본 명세서에서 개시된 방법 및 장치들은 그 상에서 구현되는 컴퓨터 판독 가능한 코드 수단을 구비한 컴퓨터 판독 가능한 매체를 그 자체가 포함하는 제품으로서 배포될 수 있다. 이러한 컴퓨터 판독 가능한 프로그램 코드 수단은 컴퓨터 시스템과 함께 동작하여서 본 명세서에서 개시된 방법의 단계들 중 일부 또는 모두를 수행하거나 본 명세서에서 개시된 장치를 생성한다. 컴퓨터 판독 가능한 매체는 (가령, 플로피 디스크, 하드 드라이브, 컴팩트 디스크, 메모리 카드, 반도체 디바이스, 칩, ASIC 등과 같은) 기록 가능한 매체이거나 (가령, 광 섬유, 월드 와이드 웹, 케이블을 포함하는 네트워크 또는 시분할 다중 액세스, 코드 분할 다중 액세스를 사용하는 무선 채널 또는 다른 무선 주파수 채널과 같은) 전송 매체일 수 있다. 컴퓨터 시스템과 함께 사용되기에 적합한 정보를 저장하는 임의의 알려지거나 개발된 매체가 사용될 수 있다. 컴퓨터 판독 가능한 코드 수단은 컴퓨터로 하여금 인스트럭션 및 데이터를 판독하게 하는 임의의 메카니즘이며, 이러한 메카니즘은 가령 컴팩트 디스크의 표면 상에서의 높이 변화 또는 자기 매체 상에서의 자기 변화가 될 수 있다.
본 명세서에서 개시된 컴퓨터 시스템 및 서버 각각은 본 명세서에서 개시된 방법, 단계 및 기능들을 구현하도록 관련 프로세서를 구성하는 메모리를 포함한다. 이 메모리는 분산형 메모리이거나 국부적 메모리이며, 프로세서는 분산형이거나 단일형이다. 메모리는 전기적 메모리, 자기적 메모리 또는 광학적 메모리로서 구현되거나 이들의 임의의 조합으로 구현되거나 다른 타입의 저장 장치로서 구현될 수 있다. 또한, 용어 "메모리"는 관련 프로세서에 의해서 액세스될 수 있는 어드레스 가능한 공간 내의 어드레스로부터 판독되거나 어드레스로 기록될 수 있는 임의의 정보를 포함하도록 충분하게 광범위하게 해석되어야 한다. 이러한 규정에 따르면, 네트워크 상의 정보도 메모리 내에 포함될 수 있는데 그 이유는 관련 프로세서가 네트워크로부터 그 정보를 검색할 수 있기 때문이다.
본 명세서에서 개시된 실시예들 및 이들의 변형은 단지 본 발명의 원리를 설명하기 위한 것일 뿐이므로 다른 다양한 수정 및 변경 사항들이 본 발명의 범위 및 사상을 벗어나지 않고서 본 기술 분야의 당업자에 의해 구현될 수 있다.
Claims (52)
- 복수의 프로그램 값들을 구비한 플래시 메모리 디바이스를 프로그래밍하는 방법으로서,
소정의 신호 레벨에 대하여 상기 플래시 메모리 디바이스를 프로그래밍하는 단계를 포함하되,
상기 프로그래밍하는 단계는 프로그래밍 국면(programming phase) 및 복수의 검증 국면(verify phase)을 포함하는
플래시 메모리 디바이스 프로그래밍 방법.
- 제 1 항에 있어서,
상기 프로그래밍 단계는 소정의 신호 레벨에 대해서 모든 셀들이 프로그래밍될 때까지 반복되는
플래시 메모리 디바이스 프로그래밍 방법.
- 제 1 항에 있어서,
상기 프로그래밍 단계는 하나 이상의 추가적 신호 레벨에 대해서 반복되는
플래시 메모리 디바이스 프로그래밍 방법. - 제 1 항에 있어서,
상기 검증 국면은 상기 플래시 메모리 디바이스로부터 하나 이상의 판독 값을 판독하는 단계 및 상기 하나 이상의 판독 값을 상기 복수의 프로그램 값들 중 하나에 대응하는 적어도 하나의 임계치와 비교하는 단계를 더 포함하는
플래시 메모리 디바이스 프로그래밍 방법.
- 제 1 항에 있어서,
상기 복수의 프로그램 값들 각각은 복수의 분리된 그룹들(disjoint group) 중 하나와 연관되며,
상기 복수의 분리된 그룹들 각각은 신호 레벨에 대응하는
플래시 메모리 디바이스 프로그래밍 방법.
- 제 1 항에 있어서,
상기 복수의 프로그램 값들 각각은 복수의 분리된 그룹들 중 하나와 연관되며,
상기 복수의 분리된 그룹들 중 적어도 2 개의 그룹은 서로 상이한 수의 멤버를 포함하는
플래시 메모리 디바이스 프로그래밍 방법.
- 제 1 항에 있어서,
상기 복수의 프로그램 값들 각각은 복수의 분리된 그룹들 중 하나와 연관되며,
상기 복수의 분리된 그룹들의 개수는 상기 플래시 메모리 디바이스 내의 신호 레벨의 개수에 대응하는
플래시 메모리 디바이스 프로그래밍 방법.
- 제 1 항에 있어서,
상기 복수의 프로그램 값들의 개수는 상기 플래시 메모리 디바이스 내의 신호 레벨의 개수에 대응하는
플래시 메모리 디바이스 프로그래밍 방법.
- 제 1 항에 있어서,
상기 복수의 프로그램 값들 각각은 복수의 분리된 그룹들 중 하나와 연관되며,
상기 복수의 분리된 그룹들 중 하나는 제 1 신호 레벨로 프로그래밍된 제 1 셀 세트 및 제 2 신호 레벨로 프로그래밍된 제 2 셀 세트를 포함하는
플래시 메모리 디바이스 프로그래밍 방법.
- 제 9 항에 있어서,
상기 제 1 신호 레벨은 상기 복수의 검증 국면 중 제 1 검증 국면에 대한 제 1 대응 임계치를 가지며,
상기 제 2 신호 레벨은 상기 복수의 검증 국면 중 제 2 검증 국면에 대한 제 2 대응 임계치를 갖는
플래시 메모리 디바이스 프로그래밍 방법.
- 제 1 항에 있어서,
상기 복수의 검증 국면 중 소정의 검증 국면과 연관된 프로그램 값이 하나 이상의 셀에 적용되지 않는다면, 상기 소정의 검증 국면으로부터 상기 하나 이상의 셀을 제외시키는 단계를 더 포함하는
플래시 메모리 디바이스 프로그래밍 방법.
- 제 1 항에 있어서,
하나 이상의 셀이 상기 복수의 검증 국면 중 일 검증 국면을 통과한다면 상기 복수의 검증 국면 중 다른 검증 국면으로부터는 상기 하나 이상의 셀을 제외시키는 단계를 더 포함하는
플래시 메모리 디바이스 프로그래밍 방법.
- 제 1 항에 있어서,
상기 복수의 프로그램 값들은 셀간 간섭(ICI), 백 패턴 의존성(back pattern dependency), 프로그램 장해(program disturb), 판독 장해(read disturb) 및 추가 잡음 중 하나 이상을 사전 보상하는 프로그램 값들을 포함하는
플래시 메모리 디바이스 프로그래밍 방법.
- 제 1 항에 있어서,
상기 복수의 프로그램 값들은 장해를 보상하는 사전 보상된 프로그램 값들에 대응하는
플래시 메모리 디바이스 프로그래밍 방법.
- 제 14 항에 있어서,
상기 장해는 적어도 하나의 어그레서 셀(aggressor cell)로부터의 셀간 간섭을 포함하는
플래시 메모리 디바이스 프로그래밍 방법.
- 제 15 항에 있어서,
상기 복수의 프로그램 값들의 개수는 Mk에 의해 승산된 신호 레벨의 개수에 대응하며,
상기 k는 고려된 어그레서 셀의 개수이며,
상기 M은 고려된 서로 구별되는 전압 시프트의 수인
플래시 메모리 디바이스 프로그래밍 방법.
- 제 15 항에 있어서,
상기 복수의 프로그램 값들의 개수는 M에 의해 승산된 신호 레벨의 개수에 대응하며,
상기 M은 고려된 서로 구별되는 전압 시프트의 수인
플래시 메모리 디바이스 프로그래밍 방법.
- 제 1 항에 있어서,
상기 플래시 메모리 디바이스는 페이지 액세스 기법(page access technique) 및 워드라인 레벨 액세스 기법(wordline level access technique) 중 하나 이상을 사용하여서 프로그래밍되는
플래시 메모리 디바이스 프로그래밍 방법.
- 제 15 항에 있어서,
상기 적어도 하나의 어그레서 셀은 타겟 셀(target cell)에 인접하는 하나 이상의 셀을 포함하는
플래시 메모리 디바이스 프로그래밍 방법.
- 제 14 항에 있어서,
상기 사전 보상된 프로그램 값들은 상기 플래시 메모리 디바이스 내에 기록하기 위한 인터페이스로부터 획득되는
플래시 메모리 디바이스 프로그래밍 방법.
- 제 14 항에 있어서,
상기 사전 보상된 프로그램 값들은 상기 플래시 메모리 디바이스와 연관된 프로세서에 의해서 계산되는
플래시 메모리 디바이스 프로그래밍 방법.
- 제 14 항에 있어서,
상기 사전 보상된 프로그램 값들은 플래시 메모리 제어기와 연관된 프로세서에 의해서 계산되는
플래시 메모리 디바이스 프로그래밍 방법.
- 제 1 항에 있어서,
상기 신호 레벨 중 적어도 2 개의 신호 레벨에 대한 프로그래밍은 서로 다른 개수의 검증 국면을 갖는
플래시 메모리 디바이스 프로그래밍 방법.
- 제 1 항에 있어서,
상기 신호 레벨과 상기 프로그램 값 중 적어도 하나는 전압, 전류 및 저항 중 적어도 하나를 사용하여서 표현되는
플래시 메모리 디바이스 프로그래밍 방법.
- 복수의 프로그램 값들을 구비한 플래시 메모리 디바이스를 프로그래밍하는 방법으로서,
상기 플래시 메모리 디바이스를 프로그래밍하는 단계를 포함하고,
상기 프로그래밍하는 단계는 프로그래밍 국면 및 복수의 검증 국면을 포함하며,
적어도 하나의 신호 레벨은 상기 복수의 프로그램 값을 포함하는
플래시 메모리 디바이스 프로그래밍 방법.
- 제 26 항에 있어서,
상기 검증 국면의 개수는 신호 레벨의 개수보다 큰
플래시 메모리 디바이스 프로그래밍 방법.
- 제 26 항에 있어서,
상기 프로그래밍 단계는 모든 셀들이 프로그래밍될 때까지 반복되는
플래시 메모리 디바이스 프로그래밍 방법.
- 제 26 항에 있어서,
상기 검증 국면은 상기 플래시 메모리 디바이스로부터 하나 이상의 판독 값을 판독하는 단계 및 상기 하나 이상의 판독 값을 상기 복수의 프로그램 값들 중 하나에 대응하는 적어도 하나의 임계치와 비교하는 단계를 더 포함하는
플래시 메모리 디바이스 프로그래밍 방법.
- 제 26 항에 있어서,
상기 복수의 프로그램 값들 각각은 복수의 분리된 그룹들 중 하나와 연관되며,
상기 복수의 분리된 그룹들 각각은 신호 레벨에 대응하는
플래시 메모리 디바이스 프로그래밍 방법.
- 제 26 항에 있어서,
상기 복수의 프로그램 값들 각각은 복수의 분리된 그룹들 중 하나와 연관되며,
상기 복수의 분리된 그룹들 중 적어도 2 개의 그룹은 서로 상이한 수의 멤버를 포함하는
플래시 메모리 디바이스 프로그래밍 방법.
- 제 26 항에 있어서,
상기 복수의 프로그램 값들 각각은 복수의 분리된 그룹들 중 하나와 연관되며,
상기 복수의 분리된 그룹들의 개수는 상기 플래시 메모리 디바이스 내의 신호 레벨의 개수에 대응하는
플래시 메모리 디바이스 프로그래밍 방법.
- 제 26 항에 있어서,
상기 복수의 프로그램 값들의 개수는 상기 플래시 메모리 디바이스 내의 신호 레벨의 개수에 대응하는
플래시 메모리 디바이스 프로그래밍 방법.
- 제 26 항에 있어서,
상기 복수의 프로그램 값들 각각은 복수의 분리된 그룹들 중 하나와 연관되며,
상기 복수의 분리된 그룹들 중 하나는 제 1 신호 레벨로 프로그래밍된 제 1 셀 세트 및 제 2 신호 레벨로 프로그래밍된 제 2 셀 세트를 포함하는
플래시 메모리 디바이스 프로그래밍 방법.
- 제 34 항에 있어서,
상기 제 1 신호 레벨은 상기 복수의 검증 국면 중 제 1 검증 국면에 대한 제 1 대응 임계치를 가지며,
상기 제 2 신호 레벨은 상기 복수의 검증 국면 중 제 2 검증 국면에 대한 제 2 대응 임계치를 갖는
플래시 메모리 디바이스 프로그래밍 방법.
- 제 26 항에 있어서,
상기 복수의 검증 국면 중 소정의 검증 국면과 연관된 프로그램 값이 하나 이상의 셀에 적용되지 않는다면, 상기 소정의 검증 국면으로부터 상기 하나 이상의 셀을 제외시키는 단계를 더 포함하는
플래시 메모리 디바이스 프로그래밍 방법.
- 제 26 항에 있어서,
하나 이상의 셀이 상기 복수의 검증 국면 중 일 검증 국면을 통과한다면 상기 복수의 검증 국면 중 다른 검증 국면으로부터는 상기 하나 이상의 셀을 제외시키는 단계를 더 포함하는
플래시 메모리 디바이스 프로그래밍 방법.
- 제 26 항에 있어서,
상기 복수의 프로그램 값들은 셀간 간섭, 백 패턴 의존성, 프로그램 장해, 판독 장해 및 추가 잡음 중 하나 이상을 사전 보상하는 프로그램 값들을 포함하는
플래시 메모리 디바이스 프로그래밍 방법.
- 제 26 항에 있어서,
상기 복수의 프로그램 값들은 장해를 보상하는 사전 보상된 프로그램 값들에 대응하는
플래시 메모리 디바이스 프로그래밍 방법.
- 제 39 항에 있어서,
상기 장해는 적어도 하나의 어그레서 셀로부터의 셀간 간섭을 포함하는
플래시 메모리 디바이스 프로그래밍 방법.
- 제 40 항에 있어서,
상기 복수의 프로그램 값들의 개수는 Mk에 의해 승산된 신호 레벨의 개수에 대응하며,
상기 k는 고려된 어그레서 셀의 개수이며,
상기 M은 고려된 서로 구별되는 전압 시프트의 수인
플래시 메모리 디바이스 프로그래밍 방법.
- 제 40 항에 있어서,
상기 복수의 프로그램 값들의 개수는 M에 의해 승산된 신호 레벨의 개수에 대응하며,
상기 M은 고려된 서로 구별되는 전압 시프트의 수인
플래시 메모리 디바이스 프로그래밍 방법.
- 제 26 항에 있어서,
상기 플래시 메모리 디바이스는 페이지 액세스 기법 및 워드라인 레벨 액세스 기법 중 하나 이상을 사용하여서 프로그래밍되는
플래시 메모리 디바이스 프로그래밍 방법.
- 제 40 항에 있어서,
상기 적어도 하나의 어그레서 셀은 타겟 셀에 인접하는 하나 이상의 셀을 포함하는
플래시 메모리 디바이스 프로그래밍 방법.
- 제 39 항에 있어서,
상기 사전 보상된 프로그램 값들은 상기 플래시 메모리 디바이스 내에 기록하기 위한 인터페이스로부터 획득되는
플래시 메모리 디바이스 프로그래밍 방법. - 제 39 항에 있어서,
상기 사전 보상된 프로그램 값들은 상기 플래시 메모리 디바이스와 연관된 프로세서에 의해서 계산되는
플래시 메모리 디바이스 프로그래밍 방법.
- 제 39 항에 있어서,
상기 사전 보상된 프로그램 값들은 플래시 메모리 제어기와 연관된 프로세서에 의해서 계산되는
플래시 메모리 디바이스 프로그래밍 방법.
- 제 26 항에 있어서,
상기 신호 레벨 중 적어도 2 개의 신호 레벨에 대한 프로그래밍은 서로 다른 개수의 검증 국면을 갖는
플래시 메모리 디바이스 프로그래밍 방법.
- 제 26 항에 있어서,
상기 신호 레벨과 상기 프로그램 값 중 적어도 하나는 전압, 전류 및 저항 중 적어도 하나를 사용하여서 표현되는
플래시 메모리 디바이스 프로그래밍 방법.
- 복수의 프로그램 값들을 구비한 플래시 메모리 디바이스를 프로그래밍하는 시스템으로서,
메모리와,
상기 메모리에 연결되어 소정의 신호 레벨에 대하여 상기 플래시 메모리 디바이스를 프로그래밍하는 적어도 하나의 프로세서를 포함하되,
상기 프로그래밍하는 단계는 프로그래밍 국면 및 복수의 검증 국면을 포함하는
플래시 메모리 디바이스 프로그래밍 시스템.
- 복수의 프로그램 값들을 구비한 플래시 메모리 디바이스를 프로그래밍하는 시스템으로서,
메모리와,
상기 메모리에 연결되어서 상기 플래시 메모리 디바이스를 프로그래밍하는 적어도 하나의 프로세서를 포함하되,
상기 프로그래밍하는 단계는 프로그래밍 국면 및 복수의 검증 국면을 포함하며,
적어도 하나의 신호 레벨은 상기 복수의 프로그램 값을 포함하는
플래시 메모리 디바이스 프로그래밍 시스템.
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13573208P | 2008-07-22 | 2008-07-22 | |
US61/135,732 | 2008-07-22 | ||
US19475108P | 2008-09-30 | 2008-09-30 | |
US61/194,751 | 2008-09-30 | ||
PCT/US2009/051314 WO2010011692A1 (en) | 2008-07-22 | 2009-07-21 | Methods and apparatus for programming multiple program values per signal level in flash memories |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20110043614A true KR20110043614A (ko) | 2011-04-27 |
KR101662621B1 KR101662621B1 (ko) | 2016-10-05 |
Family
ID=40977876
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020117001676A KR101662621B1 (ko) | 2008-07-22 | 2009-07-21 | 플래시 메모리 디바이스 프로그래밍 방법 및 시스템 |
Country Status (7)
Country | Link |
---|---|
US (1) | US8634250B2 (ko) |
EP (1) | EP2311041A1 (ko) |
JP (1) | JP5496198B2 (ko) |
KR (1) | KR101662621B1 (ko) |
CN (1) | CN102099865B (ko) |
TW (1) | TWI501239B (ko) |
WO (1) | WO2010011692A1 (ko) |
Families Citing this family (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070106317A1 (en) | 2005-11-09 | 2007-05-10 | Shelton Frederick E Iv | Hydraulically and electrically actuated articulation joints for surgical instruments |
US8573465B2 (en) | 2008-02-14 | 2013-11-05 | Ethicon Endo-Surgery, Inc. | Robotically-controlled surgical end effector system with rotary actuated closure systems |
US7866527B2 (en) | 2008-02-14 | 2011-01-11 | Ethicon Endo-Surgery, Inc. | Surgical stapling apparatus with interlockable firing system |
WO2010002945A1 (en) * | 2008-07-01 | 2010-01-07 | Lsi Corporation | Methods and apparatus for intercell interference mitigation using modulation coding |
US9386983B2 (en) | 2008-09-23 | 2016-07-12 | Ethicon Endo-Surgery, Llc | Robotically-controlled motorized surgical instrument |
US8595591B1 (en) | 2010-07-11 | 2013-11-26 | Apple Inc. | Interference-aware assignment of programming levels in analog memory cells |
US8767459B1 (en) | 2010-07-31 | 2014-07-01 | Apple Inc. | Data storage in analog memory cells across word lines using a non-integer number of bits per cell |
US9204880B2 (en) | 2012-03-28 | 2015-12-08 | Ethicon Endo-Surgery, Inc. | Tissue thickness compensator comprising capsules defining a low pressure environment |
US8464137B2 (en) * | 2010-12-03 | 2013-06-11 | International Business Machines Corporation | Probabilistic multi-tier error correction in not-and (NAND) flash memory |
US8737130B2 (en) | 2012-02-29 | 2014-05-27 | Sandisk Technologies Inc. | System and method of determining a programming step size for a word line of a memory |
US20140001234A1 (en) | 2012-06-28 | 2014-01-02 | Ethicon Endo-Surgery, Inc. | Coupling arrangements for attaching surgical end effectors to drive systems therefor |
KR102040904B1 (ko) * | 2012-11-05 | 2019-11-05 | 에스케이하이닉스 주식회사 | 반도체 메모리 장치 및 이의 동작 방법 |
US10405857B2 (en) | 2013-04-16 | 2019-09-10 | Ethicon Llc | Powered linear surgical stapler |
US9147472B2 (en) * | 2013-08-19 | 2015-09-29 | Kabushiki Kaisha Toshiba | Nonvolatile semiconductor memory device having stacked memory cell layers and a control circuit controlling write or read based on parameters according to a selected memory cell layer |
US9218851B2 (en) | 2013-10-24 | 2015-12-22 | Sandisk Technologies Inc. | Power drop protection for a data storage device |
US9798613B2 (en) | 2013-12-27 | 2017-10-24 | Toshiba Memory Corporation | Controller of nonvolatile semiconductor memory |
US9962161B2 (en) | 2014-02-12 | 2018-05-08 | Ethicon Llc | Deliverable surgical instrument |
US10327764B2 (en) | 2014-09-26 | 2019-06-25 | Ethicon Llc | Method for creating a flexible staple line |
US9987000B2 (en) | 2014-12-18 | 2018-06-05 | Ethicon Llc | Surgical instrument assembly comprising a flexible articulation system |
TWI656475B (zh) * | 2016-12-13 | 2019-04-11 | 慧榮科技股份有限公司 | 具資料儲存裝置的電子系統 |
TWI604373B (zh) | 2016-12-13 | 2017-11-01 | 慧榮科技股份有限公司 | 資料儲存裝置及其資料維護方法 |
US10770155B2 (en) * | 2018-10-11 | 2020-09-08 | International Business Machines Corporation | Determining a read apparent voltage infector page and infected page |
CN112017726A (zh) * | 2020-08-26 | 2020-12-01 | 上海华虹宏力半导体制造有限公司 | 闪存芯片的读干扰测试方法、装置及可读存储介质 |
TW202331726A (zh) * | 2022-01-21 | 2023-08-01 | 聯華電子股份有限公司 | 編程多階單元記憶體裝置之方法及相關多階單元記憶體裝置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20050004142A (ko) * | 2003-07-04 | 2005-01-12 | 가부시끼가이샤 도시바 | 반도체 기억 장치 및 데이터 기입 방법 |
JP2006228394A (ja) * | 2004-11-12 | 2006-08-31 | Toshiba Corp | 半導体記憶装置のデータ書き込み方法 |
US20080285341A1 (en) * | 2007-05-16 | 2008-11-20 | Micron Technology, Inc. | Reading non-volatile multilevel memory cells |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6522580B2 (en) * | 2001-06-27 | 2003-02-18 | Sandisk Corporation | Operating techniques for reducing effects of coupling between storage elements of a non-volatile memory operated in multiple data states |
US6859397B2 (en) * | 2003-03-05 | 2005-02-22 | Sandisk Corporation | Source side self boosting technique for non-volatile memory |
US6996004B1 (en) * | 2003-11-04 | 2006-02-07 | Advanced Micro Devices, Inc. | Minimization of FG-FG coupling in flash memory |
US7002843B2 (en) * | 2004-01-27 | 2006-02-21 | Sandisk Corporation | Variable current sinking for coarse/fine programming of non-volatile memory |
JP4734110B2 (ja) * | 2005-12-14 | 2011-07-27 | 株式会社東芝 | 不揮発性半導体記憶装置 |
US7400532B2 (en) * | 2006-02-16 | 2008-07-15 | Micron Technology, Inc. | Programming method to reduce gate coupling interference for non-volatile memory |
WO2008011440A2 (en) * | 2006-07-20 | 2008-01-24 | Sandisk Corporation | Floating gate memory with compensating for coupling during programming |
US7894269B2 (en) | 2006-07-20 | 2011-02-22 | Sandisk Corporation | Nonvolatile memory and method for compensating during programming for perturbing charges of neighboring cells |
JP4886434B2 (ja) * | 2006-09-04 | 2012-02-29 | 株式会社東芝 | 不揮発性半導体記憶装置 |
JP2009272016A (ja) * | 2008-05-09 | 2009-11-19 | Hitachi Ltd | フラッシュメモリシステム |
-
2009
- 2009-07-21 CN CN200980128255.3A patent/CN102099865B/zh not_active Expired - Fee Related
- 2009-07-21 US US13/001,295 patent/US8634250B2/en active Active
- 2009-07-21 JP JP2011520143A patent/JP5496198B2/ja not_active Expired - Fee Related
- 2009-07-21 KR KR1020117001676A patent/KR101662621B1/ko active IP Right Grant
- 2009-07-21 WO PCT/US2009/051314 patent/WO2010011692A1/en active Application Filing
- 2009-07-21 EP EP09790691A patent/EP2311041A1/en not_active Withdrawn
- 2009-07-22 TW TW098124756A patent/TWI501239B/zh active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20050004142A (ko) * | 2003-07-04 | 2005-01-12 | 가부시끼가이샤 도시바 | 반도체 기억 장치 및 데이터 기입 방법 |
JP2006228394A (ja) * | 2004-11-12 | 2006-08-31 | Toshiba Corp | 半導体記憶装置のデータ書き込み方法 |
US20080285341A1 (en) * | 2007-05-16 | 2008-11-20 | Micron Technology, Inc. | Reading non-volatile multilevel memory cells |
Also Published As
Publication number | Publication date |
---|---|
KR101662621B1 (ko) | 2016-10-05 |
JP2011529241A (ja) | 2011-12-01 |
WO2010011692A1 (en) | 2010-01-28 |
CN102099865B (zh) | 2014-05-28 |
EP2311041A1 (en) | 2011-04-20 |
US20110141808A1 (en) | 2011-06-16 |
TWI501239B (zh) | 2015-09-21 |
JP5496198B2 (ja) | 2014-05-21 |
US8634250B2 (en) | 2014-01-21 |
TW201019323A (en) | 2010-05-16 |
CN102099865A (zh) | 2011-06-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101662621B1 (ko) | 플래시 메모리 디바이스 프로그래밍 방법 및 시스템 | |
KR101671313B1 (ko) | 플래시 메모리 디바이스 판독 방법 및 시스템 | |
US8677056B2 (en) | Methods and apparatus for interfacing between a flash memory controller and a flash memory array | |
US9064594B2 (en) | Methods and apparatus for soft data generation for memory devices based on performance factor adjustment |
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: 20190809 Year of fee payment: 4 |