KR20110061648A - 소프트 데이터 값 생성 방법 및 소프트 데이터 값 생성 시스템 - Google Patents
소프트 데이터 값 생성 방법 및 소프트 데이터 값 생성 시스템 Download PDFInfo
- Publication number
- KR20110061648A KR20110061648A KR1020117009695A KR20117009695A KR20110061648A KR 20110061648 A KR20110061648 A KR 20110061648A KR 1020117009695 A KR1020117009695 A KR 1020117009695A KR 20117009695 A KR20117009695 A KR 20117009695A KR 20110061648 A KR20110061648 A KR 20110061648A
- Authority
- KR
- South Korea
- Prior art keywords
- soft data
- statistics
- read
- data values
- cell
- 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/26—Sensing or reading circuits; Data output 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
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1012—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using codes or arrangements adapted for a specific type of error
-
- 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/02—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements
- G11C11/16—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using magnetic elements using elements in which the storage effect is based on magnetic spin effect
-
- 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/5607—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 magnetic storage elements
-
- 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/5642—Sensing or reading circuits; Data output 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
- G11C16/3418—Disturbance prevention or evaluation; Refreshing of disturbed memory data
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/02—Arrangements for writing information into, or reading information out from, a digital store with means for avoiding parasitic signals
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/04—Arrangements for writing information into, or reading information out from, a digital store with means for avoiding disturbances due to temperature effects
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1068—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1032—Reliability improvement, data loss prevention, degraded operation etc
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/20—Employing a main memory using a specific memory technology
- G06F2212/202—Non-volatile memory
- G06F2212/2022—Flash memory
-
- 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/563—Multilevel memory reading aspects
- G11C2211/5634—Reference cells
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Read Only Memory (AREA)
- Semiconductor Memories (AREA)
- Non-Volatile Memory (AREA)
Abstract
메모리 장치에 대한 소프트 데이터 생성을 위한 방법 및 장치가 제공된다. 적어도 하나의 하드 판독 값을 획득하는 단계와, 하드 판독 값을 판독하기 위한 통계에 기초하여 적어도 하나의 하드 판독 값과 관련된 소프트 데이터 값을 생성하는 단계에 의해 메모리 장치에 대해 적어도 하나의 소프트 데이터 값이 생성된다. 하드 판독 값은 데이터 비트, 전압 수준, 전류 수준 및 저항 수준 중 하나 이상일 수 있다. 생성된 소프트 데이터 값은 (i) 하나 이상의 LLR(log llikelyhood ratio)을 생성하는데 사용되는 소프트 판독 값 또는 (ii) 하나 이상의 LLR 중 하나 이상일 수 있다. 통계는 비트 기반 통계와 셀 기반 통계 중 하나 이상을 포함한다. 통계는 선택적으로 타겟 셀에 대한 적어도 하나의 공격자 셀의 패턴 의존 외란 및 위치 특정 통계를 포함할 수도 있다. 소프트 판독 값을 획득하는 단계와, 상기 소프트 판독 값을 판독하기 위한 통계에 기초하여 상기 소프트 판독 값과 관련된 상기 소프트 데이터 값을 생성하는 단계에 의해 메모리 장치에 대해 적어도 하나의 소프트 데이터 값이 생성될 수 있고, 통계는 위치 특정 통계와 패턴 의존 통계 중 하나 이상을 포함한다.
Description
관련 출원의 상호 참조
본 출원은 2008.9.30.자로 출원된 미국 특허 가출원 61/194,751호 및 2009.6.30.자로 출원되고 명칭이 "Methods and Apparatus for Soft Demapping and Intercell Interference Mitigation in Flash Memories"인 국제 특허 출원 PCT/US09/49333호의 우선권을 주장하며, 이들 각각은 본 명세서에 참조로 포함된다.
본 출원은 명칭이 "Methods and Apparatus for Soft Data Generation for Memory Devices Based on Performance Factor Adjustment"인 국제 특허 출원, 명칭이 "Methods and Apparatus for Soft Data Generation for Memory Devices Using Reference Cells"인 국제 특허 출원, 명칭이 "Methods and Apparatus for Soft Data Generation for Memory Devices Using Decoder Performance Feedback"인 국제 특허 출원과 관련되며, 이들 각각은 본 출원과 동시에 출원되고 본 명세서에 참조로 포함된다.
발명의 분야
본 발명은 일반적으로는 플래시 메모리 장치에 관한 것이고, 더 구체적으로는 이러한 플래시 메모리 장치에서의 셀간 간섭(intercell interference) 효과, 백 패턴 의존성(back pattern dependency), 잡읍 및 다른 왜곡을 감소시키기 위한 개선된 소프트 디매핑(demapping) 및 소프트 데이터 생성 기술에 관한 것이다.
플래시 메모리 장치와 같은 많은 메모리 장치는 데이터를 저장하는데 아날로그 메모리 셀을 사용한다. 각 메모리 셀은, 저장 값이라고도 지칭되는 전하 또는 전압과 같은 아날로그 값을 저장한다. 저장 값은 셀에 저장된 정보를 나타낸다. 플래시 메모리 장치에서, 예를 들어, 각 아날로그 메모리 셀은 통상 특정 전압을 저장한다. 각 셀에 대한 가능한 아날로그 값의 범위는 통상 문턱 영역들로 나누어지고, 각 영역은 하나 이상의 데이터 비트 값에 대응한다. 희망하는 하나 이상의 비트에 대응하는 공칭 아날로그 값을 기록함으로써 데이터가 아날로그 메모리 셀에 기록된다.
예를 들어, SLC(single-level cell) 플래시 메모리 장치는 메모리 셀 (또는 2개의 가능한 메모리 상태) 마다 하나의 비트를 저장한다. 반면, MLC(Multi-level cell) 플래시 메모리 장치는 메모리 셀 마다 2 이상의 비트를 저장한다(즉, 각 셀은 4개 이상의 프로그램가능 상태를 갖는다). MLC 플래시 메모리 장치에 대한 더 자세한 논의에 대해서는, 예를 들어, 본 명세서에 참조로 포함되는 2009.3.11.자로 출원된 명칭이 "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/36810호를 참조하라.
예를 들어, 다중레벨 NAND 플래시 메모리 장치에서, 각각이 상이한 멀티비트 값에 대응하는 다수의 인터벌로 나누어진 범위에서 프로그램가능 문턱 전압과 함께 부동 게이트 장치가 채용된다. 주어진 멀티비트 값을 메모리 셀에 프로그램하기 위해, 메모리 셀 내의 부동 게이트 장치의 문턱 전압은 그 값에 대응하는 문턱 전압 인터벌로 프로그램된다.
메모리 셀에 저장된 아날로그 값은 종종 왜곡된다. 왜곡은 통상적으로, 예를 들어, 백 패턴 의존성(BPD), 잡음 및 셀간 간섭(ICI)에 기인한다. 플래시 매모리 장치에서의 왜곡에 대한 더 자세한 논의에 대해서는, 예를 들어, 본 명세서에 참조로 포함되는 J. D. Lee 등의 "Effects of Floating-Gate Interference on NAND Flash Memory Cell Operation," IEEE Electron Device Letters, 264-266 (2002 3월) 또는 Ki-Tae Park, 등의 "A Zeroing Cell-to-Cell Interference Page Architecture WithTemporary LSB Storing and Parallel MSB Program Scheme for MLC NAND Flash Memories," IEEE J. of Solid State Circuits, Vol. 43, No. 4, 919-928, (2008 4월)을 참조하라.
ICI 및 기타 외란(disturbances)의 효과를 감소시키기 위해 많은 기술이 제안 또는 제시되어 왔다. 예를 들어, Ki-Tae Park 등은 ICI를 감소시키는 홀/짝(even/odd) 프로그래밍, 상향(bottom up) 프로그래밍 및 다단(multistage) 프록래밍과 같은 기존 프로그래밍 기술을 설명한다. 2009.6.30.자로 출원된 명칭이 "Methods and Apparatus for Soft Demapping and Intercell Interference Mitigation in Flash Memories"인 국제 특허 출원 PCT/US09/49333호는 플래시 메모리에서의 소프트 디매핑 및 외란 감소를 위한 방법 및 장치를 개시한다.
이들 기존의 방법은 플래시 메모리의 디코딩 성능을 개선하는데 도움을 주었지만, 이들은 많은 한계를 가지고 있으며, 이를 극복하면 플래시 메모리의 신뢰성이 더 개선될 것이다. 예를 들어, 최근의 플래시 메모리는 통상 디코딩을 위해 플래시 제어 시스템에 하드 데이터만을 제공한다. 그러나, 소프트 데이터가 디코딩 프로세스에서 에러 레이트 성능을 개선할 수 있음이 잘 알려져 있다. 그러므로, 플래시 메모리로부터의 하드 데이터를 이용하여 소프트 데이터를 추정 또는 강화하고 그에 의해 디코딩 성능을 개선하는 소프트 데이터 생성 기술에 대한 필요성이 존재한다.
일반적으로, 메모리 장치에 대한 소프트 데이터 생성을 위한 방법 및 장치가 제공된다. 본 발명의 일 태양에 따르면, 적어도 하나의 하드 판독 값을 획득하는 단계와, 상기 하드 판독 값을 판독하기 위한 통계에 기초하여 상기 적어도 하나의 하드 판독 값과 관련된 상기 소프트 데이터 값을 생성하는 단계에 의해 메모리 장치에 대해 적어도 하나의 소프트 데이터 값이 생성된다. 상기 하드 판독 값은 데이터 비트, 전압 수준, 전류 수준 및 저항 수준 중 하나 이상과 같은 소프트 데이터 또는 하드 데이터(또는 그들의 결합)을 포함할 수 있다. 생성된 소프트 데이터 값은 (i) 하나 이상의 LLR(log llikelyhood ratio)을 생성하는데 사용되는 소프트 판독 값 또는 (ii) 하나 이상의 LLR을 포함할 수 있다.
상기 통계는 비트 기반 통계, 셀 기반 및 패턴 의존 통계 중 하나 이상을 포함할 수 있다. 하나 이상의 가능한 수준 LVLwrite에 대한 상기 셀 기반 통계는, 상기 기록 수준 LVLwrite가 기록 또는 디코딩된 때에 수준 LVLread이 판독되는 확률에 기초할 수 있다. 다르게는, 하나 이상의 가능한 수준 LVLread에 대한 상기 셀 기반 통계는, 상기 판독 수준 LVLread이 판독된 때에 수준 LVLwrite이 기록 또는 디코딩되는 확률에 기초할 수 있다.
상기 통계는 상기 타겟 셀에 대한 상기 적어도 하나의 공격자 셀의 패턴 의존 외란을 포함할 수도 있다. 하나 이상의 식별된 패턴 및 하나 이상의 가능한 기준 수준 LVLref에 대한 상기 패턴 의존 통계는, 상기 기준 수준 LVLref가 디코딩 또는 기록된 때에 수준 LVLread이 판독되는 확률에 기초할 수 있다. 다르게는, 하나 이상의 식별된 패턴 및 하나 이상의 가능한 판독 수준 LVLread에 대한 상기 패턴 의존 통계는, 상기 판독 수준 LVLread이 판독된 때에 기준 수준 LVLref이 디코딩 또는 기록되는 확률에 기초할 수 있다.
다른 태양에 따르면, 상기 통계는 위치 특정(location-specific) 통계를 포함할 수 있고, 상기 소프트 데이터 값은 상기 메모리 장치의 희망 위치에 대해 생성된다. 적어도 하나의 희망 위치 및 하나 이상의 가능한 기준 수준 LVLref에 대한 상기 위치 특정 통계는, 상기 기준 수준 LVLref가 디코딩 또는 기록된 때에 상기 희망 위치에서 수준 LVLread이 판독되는 확률에 기초할 수 있다. 다르게는, 적어도 하나의 희망 위치 및 하나 이상의 가능한 판독 수준 LVLread에 대한 상기 위치 특정 통계는, 상기 판독 수준 LVLread이 상기 희망 위치에서 판독된 때에 기준 수준 LVLref이 디코딩 또는 기록되는 확률에 기초할 수 있다.
본 발명의 다른 태양에 따르면, 소프트 판독 값을 획득하는 단계와, 상기 소프트 판독 값을 판독하기 위한 통계에 기초하여 상기 소프트 판독 값과 관련된 상기 소프트 데이터 값을 생성하는 단계에 의해 메모리 장치에 대해 적어도 하나의 소프트 데이터 값이 생성되고, 상기 통계는 위치 특정 통계와 패턴 의존 통계 중 하나 이상을 포함한다.
본 발명 및 본 발명의 추가적인 특징 및 장점의 더 완전한 이해는 이후의 상세한 설명 및 도면을 참조하여 얻어질 것이다.
도 1은 종래 플래시 메모리 시스템의 개략적 블록도이다.
도 2는 도 1의 예시적 플래시 메모리에 대한 예시적인 문턱 전압 분포를 도시한다.
도 3은 MLC 플래시 메모리 장치에서의 예시적인 플래시 셀 어레이의 아키텍처를 도시한다.
도 4는 도 2의 전압 할당 방식에 대한 예시적인 2 단계 MLC 프로그래밍 방식을 도시한다.
도 5a 및 5b는, 다 함께, 이웃 셀에 가해진 ICI를 감소시키는 다른 MLC 프로그래밍 방식을 도시한다.
도 6은 MLC 플래시 메모리 장치에서의 예시적인 플래시 셀 어레이를 더 자세히 도시한다.
도 7은 다수의 예시적인 공격자 셀에 기인하여 타겟 셀에 존재하는 셀간 간섭, 백 패턴 의존성, 잡음 및 기타 왜곡과 같은 외란을 도시한다.
도 8은 본 발명에 따라 제어기 기반 소프트 디메핑/소프트 데이터 생성 기술을 포함하는 예시적인 플래시 메모리 시스템의 개략적 블록도이다.
도 9는 본 발명의 다른 실시형태에 따라 메모리 기반 소프트 디메핑/소프트 데이터 생성 기술을 포함하는 예시적인 플래시 메모리 시스템의 개략적 블록도이다.
도 10은 재귀적인(iterative) 디매핑과 디코딩 및 선택적 인터리빙을 갖는 예시적인 플래시 판독 채널 아키텍처를 도시한다.
도 11은 본 발명에 따라 소프트 데이터 생성을 갖는 예시적인 플래시 메모리 시스템을 도시한다.
도 12a 및 12b는 각각 예시적인 소프트 디매핑 프로세스와 소프트 데이터 생성 프로세스를 설명하는 흐름도이다.
도 13은 LDPC(low-density parity- check) 코드의 예시적인 2자(bipartite) 그래프 표현이다.
도 14는 예시적인 LDPC 디코더 아키텍처의 블록도이다.
도 15는 본 발명의 일 실시형태에 따른 소프트 데이터 생성을 갖는 예시적인 플래시 메모리 시스템을 도시한다.
도 16은 예시적인 이진 채널에 대한 에러 확률 p와 q를 나타내는 격자(trellis)이다.
도 17a 내지 17c는 플래시 메모리로부터 데이터를 판독하는데 대한 통계를 기록하는 예시적인 셀 기반 통계표이다.
도 18은 플래시 메모리로부터 데이터를 판독하는데 대한 패턴 의존적 통계를 기록하는 예시적인 패턴 의존적 셀 기반 통계표이다.
도 19는 본 발명의 기준 셀 실시형태에 대해 도 3의 예시적인 플래시 셀 어레이를 더 자세히 도시한다.
도 20은 본 발명의 기준 셀 실시형태를 위한 비트 기반 통계 생성 프로세스의 예시적인 구현을 설명하는 흐름도이다.
도 21은 본 발명의 기준 셀 실시형태를 위한 셀 기반 통계 생성 프로세스의 예시적인 구현을 설명하는 흐름도이다.
도 22는 본 발명의 디코딩 코드워드 실시형태를 위한 비트 기반 통계 생성 프로세스의 예시적인 구현을 설명하는 흐름도이다.
도 23은 본 발명의 디코딩 코드워드 실시형태를 위한 셀 기반 통계 생성 프로세스의 예시적인 구현을 설명하는 흐름도이다.
도 24는 메모리 어레이에서의 다수의 상이한 위치에 대한 에러 확률 통계를 계산하는 예시적인 비트 기반 위치 특정 통계 생성 프로세스를 설명하는 흐름도이다.
도 25는 메모리 어레이에서의 다수의 상이한 위치에 대한 에러 확률 통계를 계산하는 예시적인 셀 기반 위치 특정 통계 생성 프로세스를 설명하는 흐름도이다.
도 26은 각 공결자 셀의 모든 가능한 값에 기초하여, 주어진 타겟 셀 상의 패턴 의존적 외란 효과를 나타내는 확률 밀도 함수의 집합을 도시한다.
도 27은 적어도 하나의 타겟 셀과 관련된 하나 이상의 공격자 셀에서 주어진 데이터 패턴에 의존하는 에러 확률 통계를 추정하는 예시적인 비트 기반 패턴 의존 통계 생성 프로세스를 설명하는 흐름도이다.
도 28은 적어도 하나의 타겟 셀과 관련된 하나 이상의 공격자 셀에서 주어진 데이터 패턴에 의존하는 통계를 추정하는 예시적인 셀 기반 패턴 의존 통계 생성 프로세스를 설명하는 흐름도이다.
도 29는 본 발명의 기준 셀 실시형태를 위한 2개의 가능한 이진 값에 대한 에러 확률 통계를 추정하는 예시적인 비대칭 통계 생성 프로세스를 설명하는 흐름도이다.
도 30은 본 발명의 디코딩 코드워드 실시형태를 위한 2개의 가능한 이진 값에 대한 에러 확률 통계를 추정하는 예시적인 비대칭 통계 생성 프로세스를 설명하는 흐름도이다.
도 31은 불만족 패리티 체크를 이용한 통계 생성 프로세스의 예시적 구현을 설명하는 흐름도이다.
도 32는 불만족 패리티 체크를 이용한 메모리 어레이에서 다수의 상이한 위치에 대한 에러 확률 통계를 추정하는 예시적인 위치 특정 통계 생성 프로세스를 설명하는 흐름도이다.
도 33은 불만족 패리티 체크를 이용한 2개의 가능한 이진 값에 대한 에러 확률 통계를 추정하는 예시적인 비대칭 통계 생성 프로세스를 설명하는 흐름도이다.
도 2는 도 1의 예시적 플래시 메모리에 대한 예시적인 문턱 전압 분포를 도시한다.
도 3은 MLC 플래시 메모리 장치에서의 예시적인 플래시 셀 어레이의 아키텍처를 도시한다.
도 4는 도 2의 전압 할당 방식에 대한 예시적인 2 단계 MLC 프로그래밍 방식을 도시한다.
도 5a 및 5b는, 다 함께, 이웃 셀에 가해진 ICI를 감소시키는 다른 MLC 프로그래밍 방식을 도시한다.
도 6은 MLC 플래시 메모리 장치에서의 예시적인 플래시 셀 어레이를 더 자세히 도시한다.
도 7은 다수의 예시적인 공격자 셀에 기인하여 타겟 셀에 존재하는 셀간 간섭, 백 패턴 의존성, 잡음 및 기타 왜곡과 같은 외란을 도시한다.
도 8은 본 발명에 따라 제어기 기반 소프트 디메핑/소프트 데이터 생성 기술을 포함하는 예시적인 플래시 메모리 시스템의 개략적 블록도이다.
도 9는 본 발명의 다른 실시형태에 따라 메모리 기반 소프트 디메핑/소프트 데이터 생성 기술을 포함하는 예시적인 플래시 메모리 시스템의 개략적 블록도이다.
도 10은 재귀적인(iterative) 디매핑과 디코딩 및 선택적 인터리빙을 갖는 예시적인 플래시 판독 채널 아키텍처를 도시한다.
도 11은 본 발명에 따라 소프트 데이터 생성을 갖는 예시적인 플래시 메모리 시스템을 도시한다.
도 12a 및 12b는 각각 예시적인 소프트 디매핑 프로세스와 소프트 데이터 생성 프로세스를 설명하는 흐름도이다.
도 13은 LDPC(low-density parity- check) 코드의 예시적인 2자(bipartite) 그래프 표현이다.
도 14는 예시적인 LDPC 디코더 아키텍처의 블록도이다.
도 15는 본 발명의 일 실시형태에 따른 소프트 데이터 생성을 갖는 예시적인 플래시 메모리 시스템을 도시한다.
도 16은 예시적인 이진 채널에 대한 에러 확률 p와 q를 나타내는 격자(trellis)이다.
도 17a 내지 17c는 플래시 메모리로부터 데이터를 판독하는데 대한 통계를 기록하는 예시적인 셀 기반 통계표이다.
도 18은 플래시 메모리로부터 데이터를 판독하는데 대한 패턴 의존적 통계를 기록하는 예시적인 패턴 의존적 셀 기반 통계표이다.
도 19는 본 발명의 기준 셀 실시형태에 대해 도 3의 예시적인 플래시 셀 어레이를 더 자세히 도시한다.
도 20은 본 발명의 기준 셀 실시형태를 위한 비트 기반 통계 생성 프로세스의 예시적인 구현을 설명하는 흐름도이다.
도 21은 본 발명의 기준 셀 실시형태를 위한 셀 기반 통계 생성 프로세스의 예시적인 구현을 설명하는 흐름도이다.
도 22는 본 발명의 디코딩 코드워드 실시형태를 위한 비트 기반 통계 생성 프로세스의 예시적인 구현을 설명하는 흐름도이다.
도 23은 본 발명의 디코딩 코드워드 실시형태를 위한 셀 기반 통계 생성 프로세스의 예시적인 구현을 설명하는 흐름도이다.
도 24는 메모리 어레이에서의 다수의 상이한 위치에 대한 에러 확률 통계를 계산하는 예시적인 비트 기반 위치 특정 통계 생성 프로세스를 설명하는 흐름도이다.
도 25는 메모리 어레이에서의 다수의 상이한 위치에 대한 에러 확률 통계를 계산하는 예시적인 셀 기반 위치 특정 통계 생성 프로세스를 설명하는 흐름도이다.
도 26은 각 공결자 셀의 모든 가능한 값에 기초하여, 주어진 타겟 셀 상의 패턴 의존적 외란 효과를 나타내는 확률 밀도 함수의 집합을 도시한다.
도 27은 적어도 하나의 타겟 셀과 관련된 하나 이상의 공격자 셀에서 주어진 데이터 패턴에 의존하는 에러 확률 통계를 추정하는 예시적인 비트 기반 패턴 의존 통계 생성 프로세스를 설명하는 흐름도이다.
도 28은 적어도 하나의 타겟 셀과 관련된 하나 이상의 공격자 셀에서 주어진 데이터 패턴에 의존하는 통계를 추정하는 예시적인 셀 기반 패턴 의존 통계 생성 프로세스를 설명하는 흐름도이다.
도 29는 본 발명의 기준 셀 실시형태를 위한 2개의 가능한 이진 값에 대한 에러 확률 통계를 추정하는 예시적인 비대칭 통계 생성 프로세스를 설명하는 흐름도이다.
도 30은 본 발명의 디코딩 코드워드 실시형태를 위한 2개의 가능한 이진 값에 대한 에러 확률 통계를 추정하는 예시적인 비대칭 통계 생성 프로세스를 설명하는 흐름도이다.
도 31은 불만족 패리티 체크를 이용한 통계 생성 프로세스의 예시적 구현을 설명하는 흐름도이다.
도 32는 불만족 패리티 체크를 이용한 메모리 어레이에서 다수의 상이한 위치에 대한 에러 확률 통계를 추정하는 예시적인 위치 특정 통계 생성 프로세스를 설명하는 흐름도이다.
도 33은 불만족 패리티 체크를 이용한 2개의 가능한 이진 값에 대한 에러 확률 통계를 추정하는 예시적인 비대칭 통계 생성 프로세스를 설명하는 흐름도이다.
본 발명의 다양한 태양은 단일 레벨 셀 또는 다중 레벨 셀(MLC) NAND 플래시 메모리 장치와 같은 메모리 장치에서의 개선된 디코딩을 위한 소프트 데이터 생성 기술에 관한 것이다. 본 명세서에서, 다중 레벨 셀 플래시 메모리는 각 메모리 셀이 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), MRM 메모리, NOR 플래시 메모리 또는 다른 비휘발성 플래시 메모리와 같은 단일 수준(single-level) 또는 다중 수준(multi-level) 셀 플래시 메모리로 구현될 수 있다. 본 발명이 주로 다중 수준 셀 NAND 플래시 메모리의 맥락에서 설명되지만, 본 발명은 단일 수준 셀 플래시 메모리 및 기타 비휘발성 메모리에도 적용될 수 있으며, 이는 당업자에게 명백할 것이다.
다중 수준 셀 플래시 메모리
다중 수준 셀 NAND 플래시 메모리에서, 특정 셀과 관련된 전압 값을 사전 결정된 메모리 상태로 변환하는데 문턱 검출기가 통상 채용된다. 도 2는, 본 명세서에 참조로 포함되는 미국 특허 제6,522,580호의 개시 내용에 기초하여, 도 1의 예시적 다중 수준 셀 플래시 메모리(170)에 대한 예시적인 문턱 전압 분포를 도시한다. 일반적으로, 셀의 문턱 전압은 셀이 특정량의 전류를 도전시키기 위해 셀에 인가되어야 하는 전압이다. 문턱 전압은 셀에 저장된 데이터의 척도이다.
도 2에 도시된 예시적인 실시형태에서, 각 저장 소자는 각 메모리 셀에 2비트의 데이터를 저장하기 위해 4개의 가능한 데이터 상태를 사용한다. 도 2는 4개의 피크(210-213)를 도시하고, 각각의 피크는 하나의 상태에 대응한다. 다중 수준 셀 플래시 장치에서, 문턱 전압 분포 그래프(200)의 상이한 피크(210-213)는 셀에 2 비트를 저장하는데 사용된다.
문턱 전압 분포 그래프(200)의 피크(210-213)는 대응하는 이진 값으로 라벨링된다. 그러므로, 셀이 제1상태(210)에 있으면, 하위 비트(LSB(least significant bit)라고도 함)에 대한 "1"과 상위 비트(MSB(most significant bit)라고도 함)에 대한 "1"을 나타낸다. 상태(210)는 일반적으로 셀의 최초의 미프로그램(unprogrammed) 또는 소거 상태이다. 유사하게, 셀이 제2상태(211)에 있으면, 하위 비트에 대한 "0"과 상위 비트에 대한 "1"을 나타낸다. 셀이 제3상태(212)에 있으면, 하위 비트에 대한 "0"과 상위 비트에 대한 "0"을 나타낸다. 마지막으로, 셀이 제4상태(213)에 있으면, 하위 비트에 대한 "1"과 상위 비트에 대한 "0"을 나타낸다.
문턱 전압 분포(210)는 0 볼트 아래의 음의 문턱 전압 수준을 갖는 소거 상태("11" 데이터 상태)에 있는 어레이 내의 셀의 문턱 전압 V1의 분포를 나타낸다. "10"과 "00" 사용자 데이터를 각각 저장하는 메모리 셀의 문턱 전압 분포(212 및 212)는 각각 0과 1 볼트 사이 및 1과 2 볼트 사이로 도시된다. 문턱 전압 분포(213)는 "01" 데이터 상태로 프로그램된 셀의 분포를 도시하며, 판독 패스 전압(read pass voltage)의 2와 4.5 볼트 사이로 설정된 문턱 전압 수준을 갖는다.
그러므로, 도 2의 예시적인 실시형태에서, 0 볼트, 1 볼트 및 2 볼트가 각 수준 또는 상태 사이의 전압 수준 문턱으로 사용될 수 있다. 전압 수준 문턱은 플래시 메모리(160)(예를 들어, 플래시 메모리(160)내의 감지 회로)에 의해 주어진 셀의 전압 수준 또는 상태를 결정하는데 사용된다. 플래시 메모리(160)는, 측정된 전압과 전압 수준 문턱의 비교에 기초하여 각 셀에 하나 이상의 비트를 할당할 것이고, 이는 플래시 제어 시스템(110)으로 하드 디시젼(hard decision)으로서 전송된다. 추가하여 또는 다르게는, 소프트 정보를 이용하는 구현에 있어서, 플래시 메모리(160)는 측정된 전압 또는 측정된 전압의 양자화된 버전을 소프트 정보로서 플래시 제어 시스템(110)에 전송할 수 있고, 이 경우 메모리 셀에 저장된 비트의 수보다 많은 비트가 측정된 전압을 나타내는데 사용된다.
또한, 셀은 통상 공지의 프로그램/확인(Program/Verify) 기술을 이용하여 프로그램됨이 중요하라. 일반적으로, 프로그램/확인 사이클 동안, 플래시 메모리(160)는, 셀 트랜지스터에 전하를 저장하기 위해 최소 타겟 문턱 전압을 초과할 때까지 점진적으로 증가하는 전압을 인가한다. 예를 들어, 도 2의 예에서 '10' 데이터 상태를 프로그램할 때, 플래시 메모리(160)는 0.4V의 최소 타겟 문턱 전압을 초과할 때까지 셀 트랜지스터에 전하를 저장하도록 증가하는 전압을 점진적으로 인가할 수 있다.
이후에 자세히 설명하는 바와 같이, 단일의 메모리 셀에 저장된 2 비트 각각은 상이한 페이지로부터 온 것이다. 달리 말하면, 각 메모리 셀에 저장된 2 비트 각각은 상이한 페이지 주소를 운반한다. 도 2에 도시된 오른쪽의 비트는 하위 페이지 주소가 입력될 때 액세스된다. 왼쪽 비트는 상위 페이지 주소가 입력될 때 액세스된다.
도 3은 MLC(multi-level cell) 플래시 메모리 장치(160)의 예시적 플래시 셀 어레이(300)의 아키텍쳐를 도시하는데, 여기서 각각의 예시적인 셀은 통상 2 비트를 저장하는 부동 게이트 트랜지스터에 대응한다. 도 3에서, 각 셀은 2개의 비트가 속하는 2 개의 페이지에 대한 2개의 숫자와 관련된다. 예시적인 셀 어레이 섹션(300)은 워드라인 n 내지 n+2 및 4개의 비트라인을 도시한다. 예시적인 플래시 셀 어레이(300)는 짝수 및 홀수 페이지로 분할되고, 여기서, 예를 들어, (번호 0 및 2를 갖는 셀과 같은) 짝수를 갖는 셀은 짝수 페이지에 대응하고, (번호 1 및 3을 갖는 셀과 같은) 홀수를 갖는 셀은 홀수 페이지에 대응한다. 워드라인 n은 예를 들어 짝수 비트라인의 짝수 페이지(0과 2)과, 홀수 비트라인의 홀수 페이지(1 및 3)을 저장한다.
또한, 도 3은 짝수나 홀수 비트라인 셀이 표시된 순서로 연속하여(아래에서 위로) 선택되고 프로그램되는 예시적인 프로그램 시퀀스를 나타낸다. 숫자는 페이지가 프로그램되는 순서를 나타낸다. 예를 들어, 페이지 0은 페이지 1 전에 프로그램된다. 짝수 및 홀수 페이지의 프로그래밍에 대한 추가적인 논의에 대해서는, 예를 들어, 본 명세서에 참조로 포함되는 K.-T. Park 등의 "A Zeroing Cell-to-Cell Interference Page Architecture with Temporary LSB Storing and Parallel MSB Program Scheme for MLC NAND Flash Memories," (IEEE Journal of Solid-State Circuits, Vol. 43, No. 4, 919-928 (2008 4월))을 참조하라.
도 4는 도 2의 전압 할당 방식에 대한 예시적인 2단 MLC 프로그래밍 방식(400)을 도시한다. 도 4에 도시된 바와 같이, LSB 프로그램 단계 동안, 소거 상태(410)에 있는 선택된 셀의 상태는 LSB가 0이면 최저 프로그램 상태(411)로 이동한다. 그러므로, LSB 프로그래밍 단계에서, 메모리 셀은 소거 상태 '11'로부터 '10'으로 프로그램된다. 다음, MSB 프로그램 단계동안, 2개의 상태, 상태 '00'(412)와 '01'(413)가 이전 LSB 데이터에 따라 순차적으로 형성된다. 일반적으로, MSB 프로그래밍 단계동안, '10' 상태는 '00'으로 프로그램되고 상태 '11'은 '01'로 프로그램된다.
도 4의 프로그래밍 방식(400)은 상태 410으로부터 상태 413으로의 상태 변화와 관련된 최대 전압 변이를 도시함을 유의하라. 상태 변화와 관련된 최대 전압 변이를 감소시켜 전압 변이에 의해 유발되는 ICI를 감소시키기 위해 많은 프로그래밍 방식이 제안 또는 제시되어왔다.
도 5a 및 5b는, 함께, 이웃 셀에 가해진 ICI를 감소시키는 다른 MLC 프로그래밍 방식(500)을 도시한다. 도 5a에 도시된 바와 같이, LSB 프로그래밍 단계 동안, 메모리 셀은 상태 '11'로부터 임시 (중간) 상태로서 'x0'로 SLC 프로그래밍과 유사한 방법으로 프로그램된다. 동일한 워드라인 내의 인접 셀도 LSB 프로그램된 후에, ICI에 의해 도 5a에서 피크(510)로 도시된 바와 같이 분포가 넓어질 수 있다. 그 후, 도 5b에 도시된 MSB 프로그래밍 단계에서, 'x0' 상태는 입력 데이터에 대응하는 최종 상태로서 '00'이나 '10'으로 프로그램되거나, 그렇지 않으면 '11' 상태가 최종 '01' 상태로 프로그램된다. 일반적으로, '11' 셀을 제외한 모든 메모리 셀은 MSB 프로그래밍 단계에서 LSB에 대한 임시 프로그램 상태로부터 그들의 최종 단계로 재 프로그램되어, 인접 셀에 의해 유발된 ICI가 많이 감소될 수 있다. 최종 상태의 셀은 중간 상태에 있을 때 겪었던 ICI를 겪지 않는데, 이는 셀이 최종 상태로 재 프로그램됐기 때문이다. 최종 상태의 셀은 최종 상태에 있은 이래로 겪은 ICI만을 격을 것이다. 상술한 바와 같이, 중간 프로그램 상태를 이용하는 도 5a 및 5b의 다단계 프로그래밍 시퀀스는 최대 전압 변화를 감소시키고, 그에 따라 이들 전압 변화에 의해 유발되는 ICI를 감소시킨다. 도 5b에서 예를 들어, MSB 프로그래밍 단계 동안 최대 전안 변이는 상태 '11' 에서 '01'로의 전이 및 상태 'x0'에서 '10'으로의 전이에 각각 관련된다는 것을 볼 수 있다. 이들 전압 변이는 도 4에서 상태 '11'로부터 '01'로의 최대 전압 변이보다 현저히 작다.
도 6은 MLC(multi-level cell) 플래시 메모리 장치(130) 내의 예시적인 플래시 셀 어레이(600)를 더 자세히 도시한다. 도 6에 도시된 바와 같이, 플래시 셀 어레이(600)는 플래시 셀, ci당 3 비트를 저장한다. 도 6은 한 블록에 대한 플래시 셀 어레이 아키텍쳐를 도시하는데, 여기서 각 예시적인 셀은 통상 3 비트를 저장하는 부동 게이트 트랜지스터에 대응한다. 예시적인 셀 어레이(600)는 m개의 워드라인과 n개의 비트라인으로 이루어진다. 통상, 현재의 다중 페이지(multi-page) 셀 플래시 메모리에서, 단일 셀 내의 비트는 서로 다른 페이지에 속한다. 도 6의 예에서, 각 셀에 대한 세 개의 비트는 세 개의 상이한 페이지에 대응하고, 각 워드라인은 3 페이지를 저장한다. 다음 논의에서, 페이지 0, 1 및 2는 워드라인 내의 하위, 중간 및 상위 페이지 수준이라고 지칭한다.
상술한 바와 같이, 플래시 셀 어레이는 짝수 및 홀수 페이지로 더 나눠질 수 있으며, 이 경우, 예를 들어, (도 6의 셀 2 및 4와 같은) 짝수를 갖는 셀은 짝수 페이지에 대응하고 (도 6의 셀 1 및 3과 같은) 홀수를 갖는 셀은 홀수 페이지에 대응한다. 이 경우에, (페이지 0과 같은) 페이지는 짝수 셀 내 짝수 페이지(짝수 페이지 0)을, 홀수 셀 내 홀수 페이지(홀수 페이지 0)을 포함할 것이다.
셀간 간섭 및 기타 외란
도 7은 다수의 예시적인 공격자 셀에 기인하여 타겟 셀에 존재하는 셀간 간섭, 백 패턴 의존성, 잡음 및 기타 왜곡과 같은 외란을 도시한다. 도 7에서 다음의 표기법이 사용된다.
WL: 워드라인;
BL: 비트라인;
BLo: 홀수 비트라인;
BLe: 짝수 비트라인; 및
C: 커패시턴스.
예를 들어, ICI가 타겟 셀(710)이 프로그램된 후에 프로그램되는 공격자 셀(720)에 의해 유발된다. ICI는 타겟 셀(710)의 전압 Vt를 변화시킨다. 예시적인 실시형태에서, "상향(bottom up)"프로그래밍 방식이 가정되고, 워드라인 i 및 i+1의 인접 공격자 셀이 타겟 셀(710)에 대해 ICI를 유발한다. 블록의 이러한 상향 프로그래밍으로, 하위 워드라인 i-1로부터의 ICI가 제거되고, 도 7에 도시된 바와 같이 5 개까지의 이웃 셀이 공격자 셀(720)로서 ICI에 기여한다. 그러나, 본 명세서에 개시된 기술은 워드라인 i-1과 같은 다른 워드라인으로부터의 공격자 셀이 ICI에 기여하는 경우로도 일반화될 수 있으며, 이는 당업자에게 명백할 것이다. 워드라인 i-1, i 및 i+1로부터의 공격자 셀이 ICI에 기여하는 경우, 8개까지의 최근접 이웃 셀이 고려되어야 한다. 타겟 셀로부터 더 먼 다른 셀은, 그들의 ICI에의 기여가 무시할 수 있다면, 무시될 수 있다. 일반적으로, 공격자 셀(720)은 프로그래밍 시퀀스 방식(상향 또는 홀수/짝수 기술 등)을 분석함으로써 식별되어 주어진 타겟 셀(710) 후에 프로그램되는 공격자 셀(720)을 식별한다.
일반적으로, Vt는 셀 상에 저장된 데이터를 나타내는 전압이고 판독 동작 동안 획득된다. Vt는 판독 동작에 의해, 예를 들어, 셀 당 저장된 비트 수보다 더 높은 정확도의 소프트 전압 값으로서 또는 셀 당 저장된 비트 수(예를 들어, 3비트/셀 플래시에 대해 3비트)와 동일한 해상도를 갖는, 하드 전압 수준으로 양자화된 값으로 획득될 수 있다.
ICI 감소 기술에 대한 추가적인 논의에 대해서는, 예를 들어, 각각 본 명세서에 참조로 포함되는, 명칭이 "Methods and Apparatus for Read-Side Intercell Interference Mitigation in Flash Memories"인 국제 특허 출원 PCT/US09/49326호, 또는 명칭이 ""Methods and Apparatus for Write-Side Intercell Interference Mitigation in Flash Memories"인 국제 특허 출원 PCT/US09/49327호를 참조하라.
소프트 데이터 생성
본 발명은 플래시 메모리에 대한 소프트 디매핑 및 소프트 데이터 생성 기술을 제공한다. 도 12a와 관련하여 후술하는 일 예시적인 실시형태에서, 강화된 소프트 데이터가 확률 밀도 함수, 그 근사, 비트 기반 확률 또는 셀 기반 확률과 같은 확률 통계를 이용하여 플래시 메모리에 의해 할당된 소프트 데이터로부터 생성된다. 도 12b와 관련하여 후술하는 다른 예시적인 실시형태에서, 소프트 데이터가 확률 밀도 함수, 그 근사, 비트 기반 확률 또는 셀 기반 확률과 같은 확률 통계를 이용하여 플래시 메모리에 의해 할당된 하드 데이터로부터 생성된다. 일반적으로, 플래시 메모리에 의해 할당된 데이터는 초기에 획득된다. 본 발명은 그 후 플래시 메모리로부터의 데이터에 기초하여 확률 또는 신뢰성 정보와 같은 소프트 정보를 생성 또는 강화한다. 생성된 소프트 정보는 선택적으로(optionally) 소프트 결정(decision) 디코딩을 위해 사용될 수 있다. 본 명세서에서, "확률 밀도 함수"라는 용어는 확률 밀도 함수, 및 히스토그램과 가우스 근사와 같은 그의 근사를 포함한다.
도 8은 본 발명에 따른 제어기-기반 소프트 데이터 생성 기술을 포함하는 예시적인 플래시 메모리 시스템(800)의 개략적 블록도이다. 도 8에 도시된 바와 같이, 예시적인 플래시 메모리 시스템(800)은 인터페이스(850)에 의해 접속된 플래시 제어 시스템(810)과 플래시 메모리 블록(860)을 포함한다. 예시적인 플래시 제어 시스템(810)은 통상 하나 이상의 집적 회로 상에, 플래시 제어기(820) 및 판독 채널(825)을 포함한다.
예시적인 판독 채널(825)은 신호 처리 유닛(830), 인코더/디토더 블록(840) 및 하나 이상의 버퍼(845)를 포함한다. "판독 채널"이라는 용어는 기록 채널도 포괄할 수 있음을 유의하라. 다른 실시형태에서, 인코더/디코더 블록(840) 및 일부 버퍼(845)는 플래시 제어기(820) 내부에서 구현될 수 있다. 인코더/디코더 블록(840) 및 버퍼(845)는, 예를 들어, 공지된 상용의 기술 및/또는 제품을 본 발명의 특성 및 기능을 제공하도록 본 명세서에서와 같이 변형하여 이용함으로써 구현될 수 있다.
예시적인 신호 처리 유닛(830)은, 각각, 예를 들어 도 12a 및 12b와 관련하여 후술하는 하나 이상의 소프트 디매퍼 및/또는 소프트 데이터 생성 프로세스(835)를 구현하는 하나 이상의 프로세서를 포함한다. 예시적인 플래시 메모리 블록(860)은 메모리 어레이(870) 및 각각이 공지된 상용 기술 및/또는 제품을 이용하여 구현될 수 있는 하나 이상의 버퍼(880)를 포함한다.
개시된 소프트 데이터 생성 기술의 다양한 실시형태에서, 예시적인 인터페이스(850)는 공격자 셀과 관련된 정보를 나타내는 값과 같은 종래의 플래시 메모리 시스템과 관련된 추가적인 정보를 운반하여야 할 수 있다. 그러므로, 인터페이스(850)는 종래 플래시 메모리 시스템의 인터페이스에 비해 더 큰 용량 또는 더 빠른 레이트를 가질 필요가 있을 수 있다. 인터페이스(850)는 선택적으로는 예를 들어, 명칭이 "Methods and Apparatus for Interfacing Between a Flash Memory Controller and a Flash Memory Array"이고 2009년 6월 30일에 출원되었으며 본 명세서에 참조로 포함되는 국제 특허 출원 PCT/US09/49328호(대리인 정리번호 08-0769)의 교시에 따라 구현될 수 있는데, 이는, 예를 들어, 더블 데이터 레이트(DDR) 기술을 이용하여 인터페이스(850)의 정보 운반 용량을 증가시킨다. 기록 동작 동안, 인터페이스(850)는 타겟 셀에 저장될 프로그램 값을 전달하는데, 통상 페이지 또는 워드라인 수준 액세스 기술을 이용한다. 예시적인 페이지 또는 워드라인 수준 액세스 기술에 대한 더 상세한 논의에 대해서는, 예를 들어, 본 명세서에 참조로 포함되는, 명칭이 "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"인 2009년 3월 11일자로 출원된 국제 특허 출원 PCT/US09/36810호를 참조하라.
판독 동작 동안, 인터페이스(850)는 타겟 셀 및 공격자 셀에 대해 메모리 어레이(870)로부터 획득된 하드 및/또는 소프트 판독 값을 전달한다. 예를 들어, 타겟 셀로 페이지에 대한 판독 값에 더하여, 상위/하위 워드라인 또는 인접한 짝수 또는 홀수 비트 라인의 하나 이상의 인접 페이지에 대한 판독 값이 인터페이스 버스를 통해 전달된다. 도 8의 실시형태에서, 개시된 소프트 데이터 생성 기술이 플래시 메모리 외부에서, 통상 최저 면적을 달성하기 위해 논리 회로를 위해 최적화된 처리 기술에서 구현된다. 그러나, 이는 인터페이스(850) 상에 전달될 수 있는 추가적인 공격 셀 데이터를 희생하게 된다.
도 9는 본 발명의 다른 실시형태에 따른 메모리 기반 소프트 데이터 생성 기술을 포함하는 예시적인 플래시 메모리 시스템(900)의 개략적인 블록도이다. 도 9에 도시된 바와 같이, 예시적인 플래시 메모리 시스템(900)은 플래시 제어 시스템(910)과 플래시 메모리 블록(960)을 포함하고, 이들은 인터페이스(950)에 의해 연결된다.
예시적인 플래시 제어 시스템(910)은 플래시 제어기(920)과 선택적인 판독 채널(925)을, 통상 하나 이상의 집적 회로 상에 포함한다. 다른 실시형태에서, 인코더/디코더 블록(940) 및 일부 버퍼(945)는 플래시 제어기(920) 내에 구현될 수 있다. 예시적인 플래시 제어기(920)는, 예를 들어, 본 발명의 특성 및 기능을 지원하도록 본 명세서에서와 같이 수정된, 공지된 상용의 기술 및/또는 제품을 이용하여 구현될 수 있다. 예시적인 판독 채널(925)은 인코더/디코더 블록(940)과 하나 이상의 버퍼(945)를 포함한다. 인코더/디코더 블록(940) 및 버퍼(945)는 공지된 상용의 기술 및/또는 제품을 이용하여 구현될 수 있다.
예시적인 플래시 메모리 블록(960)은 메모리 어레이(970) 및 하나 이상의 버퍼(980)를 포함하며, 각각은 공지된 상용 기술 및/또는 제품을 이용하여 구현될 수 있다. 또한, 예시적 플래시 메모리 블록(960)은, 각각이 예를 들어 도 12a 및 12b와 관련하여 후술되는 하나 이상의 소프트 디매핑 및/또는 소프트 데이터 생성 프로세스(990)를 구현하는 하나 이상의 프로세서를 포함하는 예시적인 신호 처리 유닛(985)을 포함한다.
개시된 소프트 데이터 생성 기술의 다양한 실시형태에서, 예시적인 인터페이스(950)는, 공격자 셀과 관련된 정보를 나타내는 값과 같은 종래의 플래시 메모리 시스템에 관한 추가적인 정보를 운반하여야 할 수 있다. 그러므로, 인터페이스(950)는 종래 플래시 메모리 시스템의 인터페이스에 비해 더 큰 용량 또는 더 빠른 레이트를 가질 필요가 있을 수 있다. 인터페이스(950)는 선택적으로는 예를 들어, 명칭이 "Methods and Apparatus for Interfacing Between a Flash Memory Controller and a Flash Memory Array"이고 2009년 6월 30일에 출원되었으며 본 명세서에 참조로 포함되는 국제 특허 출원 PCT/US09/49328호(대리인 정리번호 08-0769)의 교시에 따라 구현될 수 있는데, 이는, 예를 들어, 더블 데이터 레이트(DDR) 기술을 이용하여 인터페이스(950)의 정보 운반 용량을 증가시킨다.
기록 동작 동안, 인터페이스(950)는 타겟 셀 및 공격 셀에 저장될 프로그램 데이터를 전달한다. 판독 동작 동안, 인터페이스(950)는 타겟 셀(들) 및 선택적으로는 공격자 셀에 대해 새로운 하드 또는 소프트 판독 값 또는 데이터를 전달한다. 통상, 단일 판독 액세스에 대해 운반되는 정보는 한 페이지 또는 워드라인의 데이터이다. 타겟 셀에 대한 데이터를 전송하는 것만이, 통상 논리 회로가 아니라 메모리에 최적화된 플래시 메모리를 제조하는데 사용되는 메모리 처리 기술을 이용하여 메모리 내에 소프트 데이터 생성 프로세스를 구현하는 것을 비용으로, 인터페이스(950)에 대한 대역폭 요구를 감소시킨다는 점을 유의하라.
도 10은, 본 명세서에 참조로 포함되는 명칭이 "Methods and Apparatus for Soft Demapping and Intercell Interference Mitigation in Flash Memories"이고 2009년 6월 30일자로 출원된 국제 특허 출원 PCT/US09/49333호의 교시에 따른 재귀적 디매핑과 디코딩, 및 선택적인 인터리빙을 갖는 예시적인 플래시 판독 아키텍쳐(1000)를 도시한다. 도 10에 도시된 바와 같이, 예시적인 기록 경로는 인코더(1010), 선택적인 인터리버(1020), 직렬-병렬(serial-to-parallel) 변환기(1030) 및 매퍼(mapper)(1040)를 포함한다. 데이터는 공지된 방식으로 메모리(1050)로 기록되고 메모리(1050)로부터 판독된다. 예시적인 판독 경로는 소프트 디매퍼 또는 소프트 데이터 생성기(1060), 병렬-직렬 변환기(1070), 디인터리버(1080), 디코더(1090) 및 인터리버(1095)를 포함한다. 일반적으로, 후술하는 바와 같이, 소프트 디매퍼 또는 소프트 데이터 생성기(1060)는, 재귀적 프로세스가 마지막 결정으로 수렴할 때까지, 새로운 소프트 정보를 생성하기 위해 디코더(1090)에 의해 처리되고 재귀적인 방식으로 소프트 디매퍼로 피드백되는 뒤에서 자세히 설명하는 소프트 정보를 생성한다.
본 발명에 따라 소프트 정보(LLR)를 생성하기 위해 소프트 디매퍼(1060)에 의해 채용되는 등식은 아래의 "판독 통계를 이용한 소프트 데이터(LLR) 계산" 섹션에서 논의된다. 도 10에 도시된 바와 같이, 디매퍼(1060)에 의해 생성되는 소프트 정보는 피즈백 경로의 소프트 디매퍼(1060), 디인터리버(1080), 디코더(1090), 및 인터리버(1095) 사이에서 재귀적인 디매핑 및 디코딩을 위해 사용될 수 있다.
플래시로부터의 데이터에 기초한 소프트 데이터 생성
본 발명은 현재의 플래시 메모리(860, 960)는 통상 플래시 제어 시스템(810, 910)으로 하드 데이터만을 제공한다는 점을 인식한다. 그러나, 소프트 데이터는 디코딩 프로세스에서 에러 레이트 성능을 개선할 수 있다는 점이 알려져 있다. 그러므로, 본 발명의 일 태양에 따르면, 플래시 메모리(860, 960)로부터의 하드 데이터가 소프트 데이터를 추정하고 그에 의해 플래시 제어 시스템(810, 910)에서 디코딩 성능을 개선하는데 사용된다. 예를 들어, 후술하는 바와 같이, 하드 데이터의 통계적 속성이 소프트 데이터를 추정 또는 강화하는데 사용될 수 있다. 생성된 소프트 데이터는, 에러 레이트 성능을 개선하기 위해, 그 후 LDPC 코드의 신뢰 전파 디코딩(belief propagation decoding)과 같은 디코딩을 위해 사용될 수 있다.
본 발명의 다른 태양에 따르면, 플래시 메모리(860, 960)는 플래시 제어 시스템(810, 910)으로 소프트 데이터 또는 소프트 정보를 제공한다. 강화된 소프트 데이터는 플래시 메모리(860, 960)에 의해 제공된 소프트 데이터로부터 생성되어 플래시 제어 시스템(810, 910)에서 디코딩 성능을 개선한다. 소프트 정보를 이용한 구현에서, 플래시 메모리 시스템(860, 960)은 측정된 전압 또는 측정된 전압의 양자화된 버전을 소프트 정보로서 플래시 제어 시스템(810, 910)에 전송하며, 여기서 메모리 셀에 저장된 비트의 수보다 많은 수의 비트가 측정된 전압을 나타내는데 사용된다.
도 11은 본 발명의 일 실시형태에 따른 제어기 기반 소프트 데이터 생성을 갖는 예시적인 플래시 메모리 시스템(1100)을 도시한다. 도 11에 도시된 바와 같이, 예시적인 플래시 메모리 시스템(1100)은 플래시 메모리 블록(1100)과 플래시 제어 시스템(1120)을 포함하고, 이들은 인터페이스(1115)에 의해 연결된다. 후술하는 바와 같이, 소프트 또는 하드 데이터 값(또는 양자 모두)는 플래시 메모리 블록(1110)에 의해 할당될 수 있고, 추가적인 디코딩 및 처리를 위해 플래시 제어 시스템(1120)으로 인터페이스(1115)를 통해 전달된다. 예시적인 플래시 제어 시스템(1120)은 도 12a 및 12b와 관련하여 후술되는 소프트 디매퍼/소프트 데이터 생성기(1200)와 도 13-14와 관련하여 후술되는 디코더(1400)를 포함한다. 디코더(1400)는, 예를 들어, 신뢰 전파(Belief Propagation), 메시지 전달(Message Passing), 합-곱(Sum-Product) 또는 최소-합(Min-Sum) 알고리즘과 같은 LDPC 디코딩 알고리즘을 이용하여 구현될 수 있다.
도 11에 도시된 바와 같이, 소프트 디매퍼/소프트 데이터 생성기(1200)에 의해 생성된 소프트 정보는 선택적으로 소프트 디매퍼/소프트 데이터 생성기(1200)와 디코더(1400) 사이의 재귀적인 디매핑 및 디코딩을 위해 사용될 수 있다. 일반적으로, 도 11에 도시된 바와 같이, 소프트 디매퍼/소프트 데이터 생성기(1200)는 소프트 정보를 LLR(L e ) 형태로 생성하는데, 이는 아래의 "판독 통계를 이용한 소프트 데이터(LLR) 계산" 섹션에서 논의한다. 최초에, 소프트 디매퍼/소프트 데이터 생성기(1200)에 의해 계산된 LLR(L e )는 플래시 메모리(1110)로부터의 소프트 또는 하드 판독(또는 양자 모두)와 대응 통계에 기초한다. 재귀적 프로세스가 최종 결정으로 수렴할 때까지 재귀적인 방식으로 소프트 디매퍼/소프트 데이터 생성기(1200)로 피드백되는 새로운 소프트 정보(L a )를 생성하기 위해 디코더(1400)에 의해 LLR(L e )이 처리된다.
소프트
디매퍼
/소프트 데이터 생성기(1200)
도 12a는 플래시 메모리(810, 910)에 의해 제공되는 소프트 데이터로부터 강화된 소프트 데이터를 생성하기 위해 본 발명의 특징을 포함하는 예시적인 소프트 디매핑 프로세스(1200)를 설명하는 흐름도이다. 도 12a에 도시된 바와 같이, 예시적인 소프트 디매핑 프로세스(1200)는 최초에 단계 1210 동안 타겟 셀에 대해 플래시 메모리(810, 910)로부터 소프트 데이터(r)를 획득하고, 선택적으로, 타겟 셀과 관련된 공격자 셀(들)에 저장된 데이터를 나타내는 하나 이상의 값(h)을 획득한다.
소프트 디매핑 프로세스(1200)는 그 후 단계 1220 동안 r 및 선택적으로 h에 기초하여 하나 이상의 확률 밀도 함수와 같은 통계(또는 확률)을 획득한다. 통계는 아래의 "통계의 수집" 섹션에서 더 논의한다.
획득된 통계는 그 후 단계 1230 동안 LLR을 계산하는데 사용된다. LLR(들)은 아래 "판독 통계를 이용한 소프트 데이터(LLR)의 계산" 섹션에서 논의한다. 계산된 LLR은 그 후 단계 1240 동안 디코더(1400)에 제공되거나, 또는 선택적으로 디인터리버에 제공된다. 계산된 LLR은 선택적으로, 예를 들어, LLR의 부호에 기초하여 판독 데이터에 대한 최종 결정을 내리는데 사용될 수 있다.
도 12b는 플래시 메모리 (810, 910)에 의해 제공되는 하드 데이터로부터 소프트 데이터를 생성하기 위해 본 발명의 특징을 포함하는 예시적인 소프트 데이터 생성 프로세스(1250)를 설명하는 흐름도이다. 도 12b에 도시된 바와 같이, 예시적인 소프트 데이터 생성 프로세스(1250)는 최초에 단계 1260 동안 타겟 셀에 대해 플래시 메모리(810, 910)로부터 하드 데이터()를 획득하고, 선택적으로, 타겟 셀과 관련된 공격자 셀(들)에 저장된 데이터를 나타내는 하나 이상의 값()을 획득한다. 하드 데이터()는 예를 들어 플래시 메모리(810, 910)에 의해 각 셀에 할당된 이진 비트 또는 수준일 수 있다.
셀 내의 한 비트에 대한 LLR을 계산하기 위해, 다른 비트들은 사용가능하지 않고, 셀 내의 다른 비트들은 예를 들어 페이지 및 워드라인 액세스 기술을 이용하여 판독된다. 예시적인 페이지 또는 워드라인 수준 액세스 기술에 대한 더 상세한 논의에 대해서는, 예를 들어, 본 명세서에 참조로 포함되는 명칭이 "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"이고 2009년 3월 11일자로 출원된 국제 특허 출원 PCT/US09/36810을 참조하라. 페이지 액세스 기술로 LLR이 계산되고 있는 페이지가 판독되고, 선택적으로 동일한 워드라인의 다른 페이지도 판독될 수 있어 하드 데이터가 셀에 대한 수준()으로 매핑될 수 있다. 워드라인 액세스 기술로 전체 워드라인이 판독되어 셀 내의 모든 비트가 획득될 수 있고, 그로부터 하드 데이터 수준()이 획득된다.
패턴 은, 예를 들어, 공격자 셀(720)(또는 공격자 셀(720)이 저장된 페이지 또는 워드라인)로부터 비트를 판독함으로써 획득된다. 공격자 셀을 판독하는 기술에 대한 더 상세한 논의는 예를 들어, 본 명세서에 참조로 포함되는 명칭이 "Methods and Apparatus for Read-Side Intercell Interference Mitigation in Flash Memories"인 국제 특허 출원 PCT/US09/49326호를 참조하라.
소프트 데이터 생성 프로세스(1250)는 그 후 및, 선택적으로, 에 기초하여 단계 1270 동안 하나 이상의 확률 밀도 함수와 같은 통계(또는 확률)을 획득한다. 통계는 비트 기반 또는 셀 기반 확률일 수도 있으며, 이는 아래의 "통계의 수집" 섹션에서 논의한다. 소프트 판독 값의 분포에 대한 가우스 근사가 채용되는 경우, 통계는 분포의 평균 값 또는 분산을 포함하며, 이는 다양한 가우스 근사식에 대해 "판독 통계를 사용한 소프트 데이터(LLR)의 계산" 섹션에서 논의한다. 평균 값 및 분산은, 예를 들어, 프로그램/소거 사이클, 판독 사이킬 및 온도와 같은 상이한 성능 인자에 대한 플래시 메모리 칩의 특성화(characterization) 동안 사전 계산되어 표에 저장될 수 있다. 평균 값 및 분산은 성능 인자에 기초하여, 또한 선택적으로 공격자 셀(720)에 저장된 패턴()에도 기초하여 표로부터 획득될 수 있다.
획득된 통계는 그 후 단계 1280 동안 LLR(들)을 계산하는데 사용된다. LLR(들)은 아래의 "판독 통계를 이용한 소프트 데이터(LLR)의 계산" 섹션에서 논의한다. "판독 통계를 이용한 소프트 데이터(LLR)의 계산" 섹션에서 설명하는 바와 같이, 통계에 추가하여, 또는 통계 대신에, 디코더에 의해 제공된 선험적(a-priori) LLR(La)이 LLR을 계산하는데 선택적으로 사용될 수 있음을 유의하라. 셀 내의 비트에 대해 LLR이 계산될 때, 선험적 LLR(La)이 셀 내의 적어도 하나의 비트(선택적으로 모든 다른 비트)에 대해 사용된다. 이는 셀 내의 이들 다른 비트가 판독되었고 그들에 대해 선험적 LLR(La)가 디코더에 의해 계산되었을 것을 요구한다.
계산된 LLR은 그 후 단계 1290 동안 디코더(1400), 또는 선택적으로 ㄷ디인터리버로 제공된다. 계산된 LLR은, 예를 들어 LLR의 부호에 기초하여 판독 데이터에 대한 최종 결정을 내리는데 선택적으로 사용될 수 있다. 명칭이 "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"이고 2009년 3월 11일에 출원된 국제 특허 출원 PCT/US09/36810에 설명된 바와 같이, 셀 내의 모든 비트 (또는 워드라인 내 모든 페이지)가 함께(jointly) 인코딩되고 디코딩될 수 있음을 유의하라. 다른 실시형태에서, 셀 내의 비트(또는 워드라인 내의 모든 페이지)가, 역시 국제 특허 출원 PCT/US09/36810호에 설명된 바와 같이 별도로 인코딩되고 디코딩될 수 있다.
디코더(1400)-
LDPC
구현
LDPC 코드 및 LDPC 디코딩에 대한 이하의 배경 설명은 본 명세서에 참조로 포함되는 A. J. Blanksby와 C. J. Howland의 "A 690-mW 1-Gb/s 1024-b, Rate-1/2 Low-Density Parity-Check Decoder," IEEE J. Solid-State Circuits, Vol. 37, 404-412 (2002 3월)에 기초한 것이다. 더 상세한 논의에 대해서는, Blanksby와 Howland의 논문 전문을 참조하라.
LDPC
코드의 그래프 표현
LDPC 코드는, 한 세트의 노드가 패리티 체크 제한을 나타내고 다른 세트가 데이터 비트를 나타내는 2자(bipartite) 그래프를 이용하여서도 표현될 수 있다. 도 13은 LDPC 코드의 에시적인 2자 그래프 표현(1300)이다. 패리티 체크 매트릭스는 그래프의 입사 매트릭스로서, H 내의 엔트리 hji가 설정되어 있으면, 즉 0이 아니면, H 내의 열 i에 대응하는 비트 노드 i는 H 내의 행 j에 대응하는 체크 노드 j에 연결된다.
LDPC 코드를 디코딩하는데 사용되는 한 알고리즘은 합-곱 알고리즘으로 알려져 있다. 이 알고리즘으로 양호한 디코딩 성능을 위해, LDPC 코드의 그래프 표현에서 사이클의 길이가 가능한 긴 것이 중요하다. 예시적인 도 13의 표현에서, 길이 4의 예시적인 짧은 사이클이 도시되었다. 도 13에 도시된 길이-4 사이클과 같은 짧은 사이클은 합-곱 알고리즘의 성능을 열화시킨다. LDPC 코드를 디코딩하기 위한 다른 잘 알려진 알고리즘은 최소-합(min-sum) 알고리즘이다.
합-곱 알고리즘
합-곱 알고리즘은 LDPC 코드를 디코딩하기 위한 재귀적 알고리즘이다. 합-곱 알고리즘은 메시지 전달(message passing) 알고리즘 또는 신뢰 전파(belief propagation)로도 알려져 있다. 합-곱 알고리즘의 더 상세한 논의에 대해서는, 예를 들어, 본 명세서에 참조로 포함되는 A. J. Blanksby와 C. J. Howland, "A 690-mW 1-Gb/s 1024-b, Rate- 1/2 Low-Density Parity- Check Decoder," IEEE J. Solid-State Circuits, Vol. 37, 404-412 (2002 3월), D.E. Hocevar, "LDPC Code Construction With Flexible Hardware Implementation," IEEE Int'l Conf. on Comm. (ICC), Anchorage, AK, 2708-2712 (2003 5월), 및 R. N. S. Ratnayake, E. F. Haratsch와 Gu-Yeon Wei, "A Bit-node centric architecture for low-density parity check decoders,'" IEEE Global Telecommunications Conference (Globecom), Washington, D.C., 265-270 (2007 11월)을 참조하라.
비트 노드 i에서 체크 노드 j로의 메시지 Qi ,j는 다음으로 주어진다.
여기서 L은 비트 i에 대해 소프트 디매퍼/소프트 데이터 생성기에 의해 제공된 외적(extrinsic) LLR이다. 체크 노드 j로부터 비트 노드 i로의 메시지 Rj ,i는 다음으로 주어진다.
비트 i에 대한 후험적(a-poeteriori) LLR(log-likelihood ratio)라고도 하는 후험적 정보 값 Λi은 다음으로 주어진다.
재귀적 디매핑 및 디코딩을 위해 소프트 디매퍼/소프트 데이터 생성기로 제공되는 비트 i에 대한 La ,i는
로 주어지고, 여기서 Bi는 비트 노드 i에 연결되는 체크 노드의 세트이고, Cj는 체크 노드 j에 연결되는 비트 노드의 세트이다.
LDPC
디코더-하드웨어 공유 디코더
아키텍쳐
LDPC 코드를 디코딩하기 위한 합-곱 알고리즘을 구현하는 때에 큰 도전은 메시지의 전달을 관리하는 것이다. 체크 노드와 비트 노드 모두의 기능성이 상대적으로 단순하므로, 그들 각각의 실현에는 적은 수의 게이트만이 관여된다. 중요 이슈는 기능 노드 사이의 메시지 전달을 위해 요구되는 대역폭의 구현이다.
도 14는 예시적인 하드웨어 공유 LDPC 디코더 아키텍쳐(1400)의 블록도이다. 도 14에 도시된 바와 같이, 일반화된 LDPC 디코더 아키텍쳐(1400)는 각각 체크 또는 비트 노드 기능성을 구현하는 다수의 기능 유닛(1410, 1420) 및 메시지를 저장하고 그래프 접속성을 실현하는 메모리 패브릭(fabric)(1450)을 포함한다. 제어 로직(1430)은 메모리 패브릭(1450)의 구성을 제어한다. 하드웨어 공유 LDPC 디코더 아키텍쳐(1400)의 구현의 상세한 논의에 대해서는, 예를 들어, E. Yeo 등, "VLSI Architectures for Iterative Decoders in Magnetic Recording Channels," IEEE Trans. On Magnetics, Vol. 37, No. 2, 748-755 (2001 3월)을 참조하라.
이러한 하드웨어 공유 아키텍쳐는 디코더의 면적을 감소시킨다는 점이 인식되었다.
도 15는 본 발명의 일 실시형태에 따라 소프트 데이터 생성을 갖는 예시적인 플래시 메모리 시스템(1500)을 도시한다. 도 15에 도시된 바와 같이, 예시적인 플래시 메모리 시스템(1500)은 플래시 메모리 블록(1510)을 포함한다. 이후에 논의되는 바와 같이, 하드 또는 소프트 데이터 값(또는 양자 모두)은 통상 플래시 메모리 블록(1510)에 의해 할당되고 인터페이스(1515)를 통해 플래시 제어 시스템(1520)으로 추가적인 디코딩 및 처리를 위해 전달된다. 예시적인 플래시 제어 시스템(1520)은 도 16과 관련하여 후술하는 LLR 발생기(1550), "통계의 수집" 섹션에서 후술하는 통계 생성기(들)(1570) 및 디코더(1530)을 포함한다. 통계 생성기(들)(1570)에 의해 생성된 통계는, 예를 들어 도 17a 내지 17c 및 18과 관련하여 후술하는 하나 이상의 통계 표(들)(1560)에 선택적으로 기록되고, 또는 다르게는, 실시간으로 생성될 수 있다.
통계 생성기(들)(1570)에 의해 생성된 통계는 LLR 생성기(1550)에 의해 소프트 데이터를 예를 들어 LLR(L e )의 형태로 형성하는데 사용된다. 최초에, LLR(L e )는 플래시 메모리(1510)로부터의 소프트 또는 하드 판독(또는 양자 모두) 및 대응 통계에 기초한다. LLR(L e )은 디코더(1530)에 의해, 재귀적인 프로세스가 최종 결정으로 수렴할 때까지 재귀적인 방식으로 LLR 생성기(1550)로 피드백되는 새로운 소프트 정보(L a )를 생성하도록 처리된다.
디코더(1530)는 다시, 예를 들어, 신뢰 전파, 메시지 전달, 합-곱 또는 최소-합 알고리즘과 같은 LDPC 디코딩 알고리즘을 이용하여 구현될 수 있다. 본 명세서에서 설명된 통계 생성기(1570) 및 LLR 생성기(1550)의 기능은 플래시 제어 시스템(1520), 디코더(1530) 및 판독 채널(825)(예를 들어, 도 8 참조) 중 하나 이상에서 구현될 수 있음을 유의하라.
판독 통계를 이용한 소프트 데이터(LLR)의 계산
비트 c에 대한 선험적 LLR(log likelihood ratio) L a 는 다음으로 정의될 수 있다.
여기서 P(...)는 확률이다.
유사하게, 플래시 출력 r 상에서 조건지워진 비트 c의 LLR은 다음과 같이 계산된다.
여기서 L e (c)는 후속 디코더에 전달되는 외적 LLR 또는 소프트 정보이고, p(...)는 확률 밀도 함수(PDF)이다.
도 16은 예시적인 이진 채널에 대한 에러 확률 p와 q를 나타내는 격자(trellis)(1600)이다. 이진 채널의 맥락에서, p는 에러 확률을 나타내고, p(...)는 확률 밀도 함수를 나타냄을 유의하라. p≠q이면, 이 이진 채널은 비대칭이다. p=q이면, 이 이진 채널은 대칭이다. 도 16 에 도시된 바와 같이, p는 이진 0에 대한 에러 확률(즉, 0이 기록된 때에 1을 판독할 확률)이다. 유사하게, q는 이진 1에 대한 에러 확률(즉, 1이 기록된 때에 0을 판독할 확률)이다. 이진 0을 적절하게 판독할 확률(즉, 0이 기록된 때에 0을 판독할 확률)은 1-p로 표현될 수 있다. 유사하게, 이진 1을 적절하게 판독할 확률(즉, 1이 기록된 때에 1을 판독할 확률)은 1-q로 표현될 수 있다.
이진 비대칭 채널에 대한 외적(
Extrinsic
)
LLR
격자(1600)에 의해 정의되는 이진 비대칭 채널에 대한 비트 c의 외적 LLR인 L e (c)는 다음과 같이 표현될 수 있다.
이진 대칭 채널에 대한 외적
LLR
(p = 1 =
P
0
인 경우)
플래시 메모리로부터의 소프트 출력에 대한 외적
LLR
2 비트/셀 플래시 메모리에 대해, 플래시 메모리(810, 910)로부터 수신된 소프트 값 r에 대한 외적 LLR은 다음과 같이 계산될 수 있다.
일반적으로, 여하한 수의 셀 당 비트에 대해, 비트 Ci에 대한 외부 LLR은 다음과 같이 표현될 수 있다.
여기서,
r: 수신 신호
s: 저장된 비트 (c0, c1,...,cm)에 의해 주어진 원(original) 저장 상태 또는 수준
c : 코딩된 비트
셀 당 m 비트
La(Ci)는 예를 들어, LDPC 디코더(1090 또는 1400)과 같은 디코더에 의해 제공된다. 첫 번째 이터레이션(iteration)에서, La(Ci)는 0으로 초기화될 수 있다.
다음 등식
을 이용하여, 외적 LLR에 대한 표현은 다음과 같이 쓸 수도 있다.
이 식은 다음과 같이 더 간단하게 될 수 있다.
이 식은 모든 상태 또는 수준의 확률이 같다면(equally likely) 위의 식과 수학적으로 동일하다.
플래시 메모리로부터의 소프트 출력에 대한 패턴 의존 외적
LLR
외적 LLR에 대한 식은 다음과 같이 쓸 수도 있다.
이 식은 다음과 같이 간단하게 할 수 있다.
이 식은 모든 상태 또는 수준의 확률이 같다면(equally likely) 위의 식과 수학적으로 동일하다.
플래시 메모리부터의
하드
출력에 대한 외적(
extrinsic
)
LLR
플래시 메모리부터 소프트 출력을 이용할 수 없고, 플래시 메모리가, 플래시 메모리에 의해 저장된 데이터에 할당된 상태 또는 수준인, 하드 데이터()만을 제공하는 경우, 외적 LLR은 아래와 같이 산출될 수 있다:
상기 식에서, E{r|}은 하드 값()을 가정할 때 (전압과 같은) 소프트 값(r)에 대한 기대값 또는 소프트 값(r)에 대한 다른 어떤 추산치이다. P(|s)는 상태 또는 수준(s)이 본래 기록되거나 저장되었다고 가정할 때(상태 또는 수준과 같은) 하드 값()이 판독될 확률이다.
이와 달리, 외적 LLR 은 아래와 같이 산출될 수 있다:
플래시 메모리부터의
하드
출력에 대한 패턴 의존형(
Pattern
-
Dependent
) 외적
LLR
플래시 메모리부터 소프트 출력을 이용할 수 없고, 플래시 메모리가, 플래시 메모리에 의해 저장된 데이터에 할당된 상태 또는 수준인, 하드 데이터()만을 제공하는 경우, 외적 LLR은 공격자 셀 내에 저장된 패턴()에 기초하여 아래와 같이 산출될 수 있다:
상기 식에서, P(,|s)는 상태 또는 수준(s)이 본래 기록되거나 저장되었을 것을 가정할 때 (상태 또는 수준과 같은) 하드 값()이 판독되고 공격자 셀 내 패턴이 일 확률이다. 는, 타겟 셀 상 외란을 야기하는 ㅈ주위 셀(들) 또는 다른 셀 내에 저장된 데이터 패턴이다. 예를 들어:
이와 달리 패턴 의존형 LLR은 아래와 같이 산출될 수 있다:
상기 식에서, P(s|, )는 (상태 또는 수준과 같은) 하드 값()이 판독되고 공격자 셀 내 패턴이 인 것을 가정할 때 상태 또는 수준(s)이 본래 기록되거나 저장되었을 확률이다.
플래시로부터의 소프트 출력에 대한 소프트 디코더 피드백이 없는 외적
LLR
소프트 디매퍼/소프트 데이터 생성기 내 사용된 디코더로부터의 소프트 출력이 없는 경우(즉, La(Ci) = 0), 소프트 디매퍼/소프트 데이터 생성기 외적 LLR은 아래와 같이 산출될 수 있다:
그 후, 이러한 외적 LLR은 도 10 및 11에 도시된 디코더로 보내진다. LDPC는 데이터 비트가 디코딩될 때까지 예를 들어 디코더 내 로컬 반복(local iteration)을 위한 메시지-전달(message-passage) 디코딩 알고리즘을 적용할 수 있다. 이 경우, 전체 산출 복잡성을 줄이기 위해 수행되는 소프트 디매퍼/소프트 데이터 생성기 사이의 글로벌 디텍션/디코딩 반복이 없다.
이 경우의 패턴 의존형 LLR은 아래와 같이 산출될 수 있다:
플래시로부터의
하드
출력에 대한 소프트 디코더 피드백이 없는 외적
LLR
플래시 메모리부터 이용 가능한 소프트 데이터가 없고, 산출 복잡성을 줄이기 위해 사용되는 디코더로부터의 소프트 출력이 없는 경우, 외적 LLR은 아래와 같이 산출될 수 있다:
상기 식에서 E{r|}는 하드 값()을 가정할 때 (전압과 같은) 소프트 값(r)에 대한 기대값 또는 소프트 값(r)에 대한 다른 어떤 추산치이다. P(|s)는 상태 또는 수준(s)이 본래 기록되거나 저장된 것을 가정할 때 (상태 또는 수준과 같은) 하드 값()이 판독되는 확률이다.
이와 다른 구현예에서는, LLR은 아래와 같이 산출될 수 있다:
이 경우의 패턴 의존형 LLR은 아래와 같이 산출될 수 있다:
플래시로부터의 소프트 출력에 대한 외적
LLR
의 가우스 근사(
approximation
)
(판독(read) 문턱 전압과 같은) 플래시 메모리로부터의 소프트 출력이 가우스 분산을 가지면서 모델링되는 경우, 본래 저장되거나 기록된 수준(s)을 가정할 때 소프트 출력(p(r))에 대한 조건부의 PDF(p(r|s))는 아래와 같이 표현될 수 있다:
상기 식에서,σ(s)는 표준편차이고 E{r|s}는 상태(s)에 대한 (문턱 전압과 같은) 소프트 출력의 평균 또는 기대값이다.
이후, 외적 LLR은 아래와 같이 산출될 수 있다:
모든 상태에 대한 전압 분산이 동일한 표준 편차를 가지는 경우(σ(s)=σ), 이 수식은 아래의 표현으로 단순화될 수 있다:
이 수식은 더 단순화될 수 있다:
플래시로부터의
하드
출력에 대한 외부
LLR
의 가우스 근사
플래시 메모리로부터의 소프트 출력이 이용 가능하지 않은 경우, 소프트 출력이 가우스 분산된다고 가정할 때 LLR은 아래와 같이 산출될 수 있다:
상기 수식에서 E{r|s}는 상태(s)에 대한 (문턱 전압과 같은) 소프트 출력(r)의 평균 또는 기대값이고, E{r|}은, 플래시 메모리에 의해 할당되고 제공되는 상태 또는 수준인, 하드 출력()에 대한 (문턱 전압과 같은) 소프트 출력(r)의 평균 또는 기대값이다.
모든 상태에 대한 전압 분산이 동일한 표준 편차를 가지는 경우(σ(s)=σ), 이 수식은 아래와 같은 표현으로 단순화될 수 있다:
이 수식은 더 단순화될 수 있다:
플래시 메모리부터의
하드
출력에 대한 패턴 의존형 외적
LLR
의 가우스 근사
소프트 출력에 대한 분산이 가우시안으로서 모델링되는 경우, 하드 출력에 해단 패턴 의존형 LLR은 아래와 같이 산출될 수 있다:
이 수식은 더 단순화될 수 있다:
플래시 메모리부터의 소프트 출력에 대한 소프트 디코더 피드백이 없는 외적 LLR에 대한 가우스 근사
소프트 디코더 피드백이 사용되지 않는 경우, 외부 LLR은 플래시 메모리로부터의 소프트 출력이 이용 가능할 때 소프트 출력 분산에 대한 가우스 근사를 이용하여 아래와 같이 산출할 수 있다:
모든 상태에 대한 전압 분산이 동일한 표준 편차를 가지는 경우(σ(s)=σ), 이 수식은 아래의 표현과 같이 단순화될 수 있다:
이 표현은 더 단순화될 수 있다:
플래시 메모리로부터의
하드
출력에 대한 소프트 디코더 피드백이 없는 외적 LLR에 대한 가우스 근사
소프트 디코더 피드백이 사용되지 않는 경우, 외적 LLR은 플래시 메모리부터의 하드 출력만이 사용가능할 때 소프트 출력 분산에 대한 가우스 근사를 이용하여 아래와 같이 산출될 수 있다:
모든 상태에 대한 전압 분산이 동일한 표준 편차를 가지는 경우(σ(s)=σ), 이 수식은 아래의 표현으로 단순화될 수 있다:
이 수식은 더 단순화될 수 있다:
대응하는 패턴 의존형 LLR은 아래와 같이 산출될 수 있다:
모든 상태와 패턴에 대한 전압 분산이 동일한 표준 편차를 가지는 경우(σ(s)=σ), 이 수식은 아래의 표현으로 단순화될 수 있다:
이는 더 단순화될 수 있다:
판독 통계표(
read
statistics
tables
)
도 17A 내지 17C는 플래시 메모리로부터의 데이터를 판독하기 위한 통계를 기록(record)하는 셀 기반 통계표의 예시이다. 도 17A는 주어진 한 쌍의 (기록(written) (s)와 판독(read) ()) 수준에 대해, 기록 수준(s)이 기록된 경우, 판독 수준()이 판독된 횟수를 나타내는 셀 기반 통계 카운트 표(1700)의 예이다. 예를 들어, 판독 수준(=00)은, 기록 수준(s) 또한 00인 경우, 10617번 판독되었다. 또한, 판독 수준()은, 기록 수준(s)이 01인 경우, 148번 에러로 판독되었다. 카운트 표(1700)는 또한 선택적으로 각 행(row)과 열(column)의 합을 나타낸다. 카운트 표(1700) 내의 값은 도 21, 23, 25 및 28을 참조하여 아래에서 설명되는 여러 셀 기반 통계 프로세스에 의해 사용된다.
도 17B는, 주어진 한 쌍의 (기록(s)과 판독()) 수준에 대해, 판독 수준()이 판독되었을 것을 조건으로 하여 기록 수준(s)이 기록된 가능성(p(s|))을 나타내는 셀 기반 통계표의 예이다. 도 17C는, 주어진 한 쌍의 (기록(s)과 판독()) 수준에 대해, 기록 수준(s)이 기록되었을 것을 조건으로 하여 판독 수준()이 판독된 가능성(p(|s))을 나타내는 셀 기반 통계표(1740)의 예이다.
도 18은 주어진 패턴이 존재(presence)할 때 플래시 메모리로부터의 데이터를 판독하기 위한 패턴 의존형 통계를 기록(record)하는 패턴 의존형 셀 기반 통계표(1800)의 예이다. 예시적 표(1800)는, 주어진 패턴()이 있을 때, 주어진 한 쌍의 (기록(s)과 판독()) 수준에 대해서, 기록 수준(s)이 기록되었을 것을 조건으로 하여, 패턴()이 존재할 때 판독 수준()이 판독된 확률(p(,|s))을 나타낸다.
통계의 수집(collection)
기준(
reference
) 셀을 사용한 통계 수집
도 19는 도 3의 예시적 플래시 셀 어레이를 더 상세히 도시한다. 도 19에 도시된 바와 같이, 모든 동작 조건에서 신뢰성 있는 채널 추정 또는 통계를 제공하이 위하여 예시적 플래시 셀 어레이(1900)는 복수의 기준 셀(1900-ref1 내지 1900-refN)(이하에서는 기준 셀(1920)로 집합적으로 지칭함)을 포함한다.
예시적 기준 셀(1920)은 밑줄친 배경으로 도 19에 도시하였다. 알려진 비트 패턴 또는 알려진 심볼 패턴과 같은 알려진 패턴을 이용하여 기준 셀(1920)은 주기적으로 또는 간헐적으로 프로그래밍될 수 있다. 임의의 바람직한 방법, 예를 들어, 각 워드라인 내 변하지 않는 또는 가변적인 수의 셀을 이용하여 기준 셀(1920)은 플래시 셀 어레이(1900) 사이에서 확산(spread)될 수 있다는 것에 주의한다. 예를 들어, 못 쓰게 된(worn out) 또는 손상을 입은(damaged) 셀을 피하기 위하여 기준 셀(1920)의 위치는 시간에 걸쳐 변하거나 고정될 수 있다. 일 구현예에서, 기준 셀(1920)의 위치는 고정되고 동일 셀(1920)의 성능은 시간에 걸쳐 관찰될 수 있다. 이러한 고정 위치 구현예에서, 기준 셀(1920)은 선택적으로 오직 1회만 기록되거나, 플래시 메모리 어레이 내 다른 셀과 비교될 만한 횟수만큼 기록되고 판독될 수 있다.
다른 변형예에서, 기준 셀(1920)의 성능이 모든 어레이(1900)의 성능을 반영하도록 기준 셀(1920)의 위치는 시간에 따라 변한다. 또 다른 변형예에서, 복수의 상이한 어레이(1900) 내 기준 셀(1920)로부터 통계가 획득될 수 있고, 그 후, 그 결과는 평균을 낼 수 있다.
아래에서 더 설명하는 바와 같이, 기준 셀(1920)은 판독되고 알려진 패턴에 비교될 수 있다. 예를 들어, 에러를 감지하는 확률의 추산치(p0)는 아래와 같이 얻을 수 있다:
기준 셀의 프로그래밍과 판독은, 공지의 방법으로, 메모리에 걸쳐서 웨어(wear)와 티어(tear)를 확산하는 웨어-수준(wear-level) 알고리즘과 선택적으로 결합될 수 있다.
다양한 실시예에서, 기준 셀(1920)은 모든 가능한 수준을 저장할 수 있고, (수준들이 교호하는(alternate)) 주기적 패턴을 가질 수 있고, 또한 시간에 걸쳐 주기적으로 기록되거나 판독될 수 있다.
이하에서 논의되는 바와 같이, 본 발명의 다양한 실시예는 비트 기반 통계, 셀 기반 또는 패턴 의존형 통계를 수집하고 이용한다. 비트 기반 통계를 이용하는 실시예에 있어서, 비트 에러 성능이 측정된다. 셀 기반 통계를 이용하는 실시예에 있어서는, 판독 통계가 셀 기초로 측정된다. 패턴 의존형 통계에 있어서는, 판독 통계가 공격자 셀에 저장된 데이터 패턴 또한 고려한다.
1. 기준 셀을 이용하는 비트 기반 통계
도 20은 본 발명의 기준 셀 실시예에 대한 비트 기반 통계 생성(generation) 프로세스(2000)의 예시적 구현예를 도시하는 흐름도이다. 일반적으로, 비트 기반 통계 생성 프로세스(2000)는 비트 에러를 감지하는 확률(p0)을 산출한다. 그 후, 에러를 감지하는 확률(p0)은 LLR 생성기(1550)(도 15)에 의해 이용되어 희망하는 소프트 데이터를 산출한다. 초기에, 단계(2010) 동안 통계 생성 프로세스(2000)는 알려진 패턴을 하나 이상의 기준 셀(1920)에 기록한다. 전술한 바와 같이, 알려진 패턴은, 예를 들어, 알려진 비트 패턴 또는 알려진 심볼 패턴일 수 있다.
그 후, 단계(2020) 동안 기준 셀이 판독된다. 그러면, 단계(2030) 동안, 통계 생성 프로세스(2000)는, 기준 셀(1920) 내 에러 비트의 수와 같은 에러 메트릭(error metric)을 결정한다. 전술한 바와 같이, 단계(2020) 동안 판독되었던 기준 셀(1920)은 알려진 패턴에 비교될 수 있다.
통계 생성 프로세스(2000)는 단계(2040) 동안 에러 확률을 아래와 같이 산출한다:
2. 기준 셀을 이용하는 셀 기반 통계
도 21은 본 발명의 기준 셀 실시예에 대한 셀 기반 통계 생성 프로세스(2100)의 예시적 구현예를 도시하는 흐름도이다. 도 21에 도시된 바와 같이, 셀 기반 통계 생성 프로세스(2100)는 초기에 단계(2110) 동안 하나 이상의 알려진 전압 수준을 기준 셀(1920)에 기록한다.
그 후, 셀 기반 통계 생성 프로세스(2100)는 기준 셀(1920)로부터 단계(2120) 동안 전압 수준을 판독한다. 가능한 각 기록 수준(s 또는 LVLwrit)에 대해서, 셀 기반 통계 생성 프로세스(2100)는 이 기록 수준(s 또는 LVLwrit)이 기록된 경우 각 수준( 또는 LVLread)이 판독된 횟수를 단계(2130) 동안 카운트한다.
에러 확률 통계는 단계(2140) 동안 아래와 같이 산출된다:
상기 수식에서 #는 수(number)를 의미한다.
이와 달리, 에러 확률 통계는 단계(2140) 동안 아래와 같이 산출될 수 있다(역의 경우):
이와 다른 표준화 항(normalization term)이 단계(2140) 동안 산출되는 수식에 대한 분모 내에 사용될 수 있다.
디코딩된 코드워드를 사용하는 통계 수집
본 발명의 디코딩된 코드워드 실시예에서, 디코딩된 코드워드로부터 획득한 데이터를 기준 셀로 사용하여 소프트 데이터는 플래시 메모리 장치(810, 910)와 같은 메모리 장치를 위해 생성된다. 일반적으로, 플래시 메모리와 같은 메모리 장치로부터의 하드 데이터가 디코딩되고, 에러가 있는 디코딩된 비트의 수와 같은 에러 메트릭이 획득된다. 예를 들어, 에러가 있는 디코딩된 비트의 수는 디코딩된 비트를 메모리 장치로부터 획득한 하드 데이터에 비교함으로써 획득할 수 있다. 이 방식에서, 디코딩된 코드워드는 올바르다(correct)고 가정할 수 있고 전술한 기준 셀로서 쓰일 수 있다.
1. 디코딩된 코드워드를 사용하는 비트 기반 통계
도 22는 본 발명의 디코딩된 코드워드 실시예에 대한 비트 기반 통계 생성 프로세스(2200)의 예시적 구현예를 도시하는 흐름도이다. 일반적으로, 비트 기반 통계 생성 프로세스(2200)는 디코딩된 코드워드를 이용하여 에러의 감지 확률(p0)을 산출한다. 그 후, 에러 감지 확률(p0)은 LLR 생성기(1500)(도 15)에 의해 사용되어 희망하는 소프트 데이터를 산출할 수 있다. 초기에, 통계 생성 프로세스(2000)는 단계(2210) 동안 플래시 메모리로부터의 하드 데이터를 획득한다.
그 후, 비트 기반 통계 생성 프로세스(디코딩된 코드워드)(2200)는 단계(2220) 동안 하드 데이터를 디코딩한다. 플래시 메모리로부터의 에러 비트의 수와 같은, 에러 메트릭은 단계(2230) 동안 결정된다. 에러 비트의 수는, 예를 들어, (올바르다고 가정되는) 디코딩된 비트를 플래시 메모리로부터의 하드 데이터에 비교함으로써 결정될 수 있다.
통계 생성 프로세스(2200)는 단계(2240) 동안 에러 확률 통계를 아래와 같이 산출한다:
2. 디코딩된 코드워드를 사용하는 셀 기반 통계
도 23은 본 발명의 특징을 포함하는 셀 기반 통계 생성 프로세스(디코딩된 코드워드)(2300)의 예시적인 구현예를 도시하는 흐름도이다. 일반적으로, 통계 생성 프로세스(2300)는 디코딩된 코드워드를 사용하여 셀 기반 에러 확률을 산출한다. 초기에, 셀 기반 통계 생성 프로세스(2300)는 단계(2310) 동안 플래시 메모리로부터의 하드 데이터를 획득한다.
그 후, 셀 기반 통계 생성 프로세스(디코딩된 코드워드)(2300)는 단계(2320) 동안 하드 데이터를 디코딩한다. 디코딩된 비트는 단계(2325) 동안 대응하는 전압 수준에 매핑된다.
그 후, 가능한 각 전압 수준(s 또는 LVLdecod)에 대해, 셀 기반 통계 프로세스(디코딩된 코드워드)(2300)는 디코딩된 수준(s LVLdecod)이 디코딩되었던 경우 각 전압 수준( 또는 LVLread)이 판독된 횟수를 단계(2330) 동안 카운트한다.
에러 확률 통계는 단계(2340) 동안 아래와 같이 산출된다:
이와 달리, 에러 확률 통계는 단계(2340) 동안 아래와 같이 산출될 수 있다(역의 경우):
조건 특정(
condition
-
specific
) 에러 확률
전술한 바와 같이, 에러 확률 통계는, 메모리 어레이의 상이한 위치(location), 공격자 셀의 상이한 패턴, 프로그램/삭제(erase) 또는 판독 사이클의 상이한 수 등과 같은 상이한 조건에 대해서 선택적으로 획득될 수 있다. 그 후, 동일한 조건이 관측되는 경우, 소프트 데이터는 적절한 조건 의존형 통계 또는 확률을 사용하여 획득될 수 있다.
도 24 및 25를 참조하여 아래에서 논의되는 바와 같이, 예시적인 위치 특정 통계 생성 프로세스들(2400, 2500)은, 비트 기반 통계와 셀 기반 통계를 각각 이용하여, 메모리 어레이의 상이한 위치에 대해 에러 확률 통계를 획득한다.
비트 기반 위치 특정 통계
도 24는 메모리 어레이 내 상이한 위치의 수에 대해 비트 에러의 감지 확률을 추산하는 예시적인 비트 기반 위치 특정 통계 생성 프로세스(2400)를 도시하는 흐름도이다. 예를 들어, 에러를 감지하는 확률(p0 . LOC)은 하나 이상의 상이한 페이지 위치, 워드라인 위치, (짝수와 홀수 비트 라인과 같은) 비트 라인 위치와 (MSB(most significant bit)와 LSB(least significant bit)와 같은) 다중 수준(multi-level) 셀 내의 상이한 비트에 대해 획득될 수 있다. 도 24에 도시된 바와 같이, 예시적인 비트 기반 위치 특정 통계 생성 프로세스(2400)는 단계(2430) 동안 희망하는 위치 특정 통계에 기초하여 디코딩된 코드워드 또는 기준 셀의 희망 위치 내 에러 비트의 수를 초기에 결정한다. 예를 들어, 위치 특정 통계가 MSB에 대한 것이면, 에러 MSB 비트의 수는 단계(2430) 동안 평가된다. MSB 통계가 획득되고 있는 경우, 예를 들어, 각 셀 내 임의의 다른 비트는 선택적으로 무시할 수 있다는 것에 주의한다.
그 후 위치 특정 통계 생성 프로세스(2400)는 위치 특정 에러 확률 통계를 단계(2440) 동안 아래와 같이 산출한다:
셀 기반 위치 특정 통계
셀 기반 위치 특정 구현예에 대해서, 메모리 내 상이한 관심(interest) 위치는, 예를 들어, 하나 이상의 워드라인 위치 또는 (짝수와 홀수 비트라인과 같은) 비트라인 위치를 포함할 수도 있다.
도 25는 하나 이상의 상이한 워드라인 위치 또는 (짝수와 홀수 비트라인과 같은) 비트라인 위치와 같은, 메모리 어레이(1900) 내 상이한 위치의 수에 대한 에러 확률 통계를 획득하는 예시적인 셀 기반 위치 특정 통계 생성 프로세스(2500)를 도시하는 흐름도이다. 도 25에 도시된 바와 같이, 가능한 각 기준 전압 수준(s 또는 LVLref)에 대해, 예시적인 셀 기반 위치 특정 통계 생성 프로세스(2500)는 초기에 단계(2530) 동안 기준 수준(s 또는 LVLref)이 디코딩되었거나 기록되었던 경우 희망 위치 내에서 각 전압 수준( LVLread)이 판독된 횟수를 카운트한다.
그 후 셀 기반 위치 특정 통계 생성 프로세스(2500)는 위치 특정 에러 확률 통계를 단계(2540) 동안 아래와 같이 산출한다:
본원 발명의 다양한 구현예에서, 분리되어 있는 비트 기반, 셀 기반 또는 패턴-기반 페이지 통계를, 워드라인 또는 메모리 어레이 각각에 대해서, 또는 페이지, 워드라인 또는 메모리 어레이 그룹에 대해서(가령, 워드라인 내 상이한 페이지 수준에 대해서, 또는 메모리 어레이 내 하부, 중간 및 상부 워드라인에 대해서) 수집할 수 있다. 또한, 복수의 페이지, 워드라인 또는 메모리 어레이에 걸쳐서 통계의 평균을 낼 수 있고, 그 후, 평균 통계는 이 페이지, 어드라인 또는 메모리 어레이에 대해서 사용될 수 있다.
패턴 의존형 통계
전술한 바와 같이, 본원 발명의 다양한 실시예는 외적 LLR, 하나 이상의 소프트 값에 대한, Le, 타겟 셀과 하나 이상의 값에 대한, r, 공격자 셀(들)에 대한, ,를 산출하고, 여기에서 는 (서라운딩 셀(들)과 같은) 공격자 셀 내에 저장된 데이터 패턴이다.
도 26은 각 공격자 셀(720)의 가능한 모든 값에 기초하여, 예시적인 다중 수준 셀 플래시 메모리(600)의 주어진 타겟 셀(710)에 대한 확률 밀도 함수(2610)의 예시적인 집합(2600)을 도시한다. 예시적인 다중 수준 셀 플래시 메모리는 셀 마다 네 개의 수준(2 비트)을 가지고, 하나의 공격자 셀(720)은 데이터 의존형 pdfs를 위해서 고려된다. 주어진 타겟 셀(710)의 가능한 각 수준에 적용 가능한 확률 밀도 함수의 수는 주어진 타겟 셀(210)에 영향을 미치는 공격자 셀(720)의 수가 되는 각 공격자 셀(720)에 대해 가능한 수준의 수이다. 전술한 바와 같이, 예시적 실시예에서, 각 셀은 네 개의 가능한 값 중 하나를 가질 수 있고, 타겟 셀(710)마다 하나의 공격자 셀(720)이 있고, 각 공격자 셀(720)은 네 개의 가능한 수준 중 하나를 가질 수 있다. 그래서, 예를 들어, 확률 밀도 함수의 집합(2600)은, 공격자 셀의 패턴에 기인하는, 데이터 또는 전압 수준 0에 대한 네 개의 확률 밀도 함수(2610-1 내지 2610-4)를 포함한다. 다른 데이터 수준 1, 2와 3 각각에 대한 네 개의 확률 밀도 함수도 존재한다. 본원 발명은 셀마다 임의의 수의 수준과, 임의의 수의 공격자 셀(720)을 가지는 다중 수준 셀 플래시 메모리(600)로 확장될 수 있다는 것은 당업자로서 명확히 알 수 있을 것이다.
일반적으로, 도 26의 확률 밀도 함수 각각은, 다른 노이즈와 외란(disturbance) 효과 중에서, 대응하는 공격자 셀(720)의 주어진 값에 대해 주어진 타겟 셀(710) 상의 ICI 효과를 표시한다. 본 발명의 다른 실시예에서, 데이터 의존형 확률 밀도 함수는 ICI 대신에 또는 ICI와 함께, 다른 데이터 의존형 왜곡(distortion)을 표현할 수 있다. 이하에서 논의되는 바와 같이, 다양한 실시예에서, 확률 밀도 함수는 미리 정의되고(predefined) 고정적(static)이거나, 실시간 관측에 기초하여 적응되거나, 가우스 함수와 같이, 공격자 셀(720)에 대해서, 측정되거나 감지된 값(h)의 함수로서 표현될 수 있다.
본 발명의 일 측면에 따르면, 플래시 메모리 장치 내 외란은 적어도 하나의 타겟 셀 상의 하나 이상의 공격자 셀의 패턴 의존형 외란을 나타내는 하나 이상의 확률 밀도 함수를 획득함으로써 특징지을 수 있다. 그 외란은, 예를 들어, 백 패턴 의존성(back pattern dependency), 셀 간 간섭(intercell interference), 프로그램 디스터브(program disturb), 판독 디스터브(read disturb) 및/또는 추가 노이즈를 포함할 수도 있다. 확률 밀도 함수는 하나 이상의 데이터 결정 정보에 기초하여 업데이트될 수 있다. 확률 밀도 함수는 저장된 표 및/또는 수식(expression)으로서 표시될 수 있다.
확률 밀도 함수의 표 엔트리(entry) 또는 함수 파라미터는, 예를 들어, 수신된 데이터 결정 정보에 기초하여, 선택적으로 그리고 적응적으로 업데이트될 수도 있다. 예를 들어, 확률 밀도 함수는 수신된 어그레서 패턴()에 기초하여 선택된다. 그 후, 선택된 확률 밀도 함수는, 공지의 기술을 이용하여, 수신된 타겟 셀 값(r)에 기초하여, 최근의 발생(occurrence)으로 (예를 들어, 대응하는 카운터를 증가시킴으로써) 업데이트된다.
전술한 바와 같이, 주어진 타겟 셀(710)에 영향을 미치는 공격자 셀(720)의 수가 복수의 팩터에 기초하여 감소되거나 무시될 수 있다. 이 방식에서, 고려될 필요가 있는 확률 밀도 함수의 수는 감소할 수 있다. 예를 들어, ICI를 마이그레이트(migrate)하는 예시적 구현예에서, (자주 있는 경우처럼) 대각선 결합 계수(diagonal coupling coefficient)(kxy)가 다른 결합 계수보다 많이 작은 경우에는, 대각선으로 위치한 셀로부터의 ICI는 무시될 수 있다. 또한, 프로그래밍 시퀀스(sequence)가 고려되어야 할 공격자 셀(720)의 수에 영향을 미칠 수 있다. 예를 들어, 워드라인이 항상 고정된 순서, 예를 들어, 아래부터 위의 방식(bottom up approach)으로 기록되는 경우에는, 하위 워드라인 내 셀로부터의 외란 ICI 기여가 없을 수도 있다. 또한, 외란 ICI가 타겟 셀(710)의 좌우 인접한 것에 대해서 대칭적인 경우에는, 특징지을 필요가 있는 확률 밀도 함수의 수는 반으로 감소한다.
전술한 바와 같이, 예시적인 일 구현예에서, 확률 밀도 함수는 가우스 확률 밀도 함수를 사용하여 근사화될 수 있다. 다른 변형예에서, 확률 밀도 함수가, 예를 들어, 히스토그램(histogram)에 기초하는 경우, 복잡도를 추가하는 대신 향상된 성능을 얻을 수 있다. 확률 밀도 함수가 히스토그램을 사용하여 구현되는 경우, 그 확률 밀도 함수는 히스토그램을 트레이닝(training)하기 위하여 성공적으로 디코딩된 워드라인을 사용하여 적응적으로 업데이트될 수 있다.
다른 실시예에서, 확률 밀도 함수와 그 근사화는 판독 데이터를 감지하기 위하여 Viterbi, SOVA(Soft Output Viterbi)와 BCJR과 같은 격자 구조(trellis) 기초 감지 알고리즘에 의해 사용될 수 있다.
1. 비트 기반 패턴 의존형 통계
도 27은 적어도 하나의 타겟 셀(710)(도 7)과 연관된 하나 이상의 공격자 셀(720)의 주어진 패턴( 또는 PATT)에 대한 비트 에러를 감지하는 확률(p0 , PATT)을 추산하는 예시적인 비트 기반 패턴 의존형 통계 생성 프로세스(2700)를 도시하는 흐름도이다. 초기에, 단계(2720) 동안 비트 기반 패턴 의존형 통계 생성 프로세스(2700)는 기준 타겟 셀(710)과 잠재적으로(potentially) 연관 공격자 셀(들)(720)을 판독한다. 또한, 각 판독 타겟 비트에 대해, 연관 공격자 셀(720)의 패턴(PATT)은 단계(2725) 동안 식별(identify)된다. 패턴은, 예를 들어, 기록된 알려진 패턴을 평가함으로써 또는 디코딩된 코드워드 또는 기준 셀의 실제 판독 동작에 기초하여, 단계(2725) 동안 식별된다.
하나 이상의 식별된 패턴에 대해, 대응하는 패턴을 가지는 에러 타겟 비트의 수는 단계(2730) 동안 결정된다. 그 후, 에러 확률 통계는 단계(2740) 동안 아래와 같이 산출된다:
상술한 기술은 선택적으로 통합되어 위치 특정, 패턴 의존형 통계를 획득할 수 있다는 것은 당업자라면 자명한 것이다. 또한, 다른 변형예에서, 판독 통계는 추가적으로 또는 선택적으로 메모리 장치의 인듀어런스(endurance), 판독 사이클, 리텐션(retention), 온도 또는 다른 파라미터의 함수로서 획득될 수 있다.
2. 셀 기반 패턴 의존형 통계
도 28은 적어도 하나의 타겟 셀과 연관된 하나 이상의 공격자 셀의 주어진 패턴에 대해 에러를 감지하는 확률을 추산하는 예시적인 셀 기반 패턴 의존형 통계 생성 프로세스(2800)를 도시하는 흐름도이다. 도 28에 도시된 바와 같이, 셀 기반 패턴 의존형 통계 생성 프로세스(2800)는 초기에 단계(2820) 동안 하나 이상의 타겟 셀을 판독한다. 그 후, 연관된 공격자 셀(들)의 패턴( 또는 PATT)은 단계(2825) 동안 식별된다.
그 후, 하나 이상의 식별된 패턴에 대해서, 그리고, 가능한 각 기준 전압 수준( 또는 LVLref)에 대해서, 셀 기반 패턴 의존형 통계 생성 프로세스(2800)는 기준 수준(s 또는 LVLref)이 디코딩되었거나 기록되었던 경우 각 전압 수준( 또는 LVLread)이 판독된 횟수를 단계(2830) 동안 카운트한다.
패턴 의존형 에러 확률 통계는 단계(2840) 동안 아래와 같이 산출된다:
비대칭 에러 확률 통계
전술한 바와 같이, NAND 플래시 메모리 채널과 같은, 특정 채널에서, 바이너리 0과 바이너리 1과 같은, 가능한 상이한 바이너리 값에 대해 에러를 감지하는 확률은 상당히 다를 수 있다. 그래서, 본원 발명은 비대칭 채널에 대한 에러를 감지하는 확률을 선택적으로 제공한다. 도 29 및 30은 바이너리 1과 바이너리 0과 같은, 두 개의 가능한 바이너리 값에 대해, 에러 확률(p와 q)을 추산하는 예시적인 통계 생성 프로세스(2900, 30000)를 제공한다. 아래에서 더 논의하는 바와 같이, 도 29는 기준 셀을 이용하여 비대칭 통계를 추산하고, 도 30은 디코딩한 코드워드를 이용하여 비대칭 통계를 추산한다. 본원 발명은 이렇게 플래시 메모리부터의 하드 데이터에 기초하여 가능한 각 바이너리 값에 대한 비대칭 LLR을 제공한다.
비대칭 에러 확률-기준 셀
전술한 바와 같이, 낸드 플래시 메모리 채널과 같은, 특정 채널에서, 바이너리 0과 바이너리 1과 같은, 가능한 상이한 바이너리 값에 대한 에러를 감지하는 확률은 상당히 다를 수 있다. 그래서, 본원 발명은 비대칭 채널에 대해 에러를 감지하는 확률을 선택적으로 제공한다. 도 29는 본원 발명의 기준 셀 실시예에 있어 가능한 두 개의 바이너리 값에 대한 에러 확률을 추산하는 예시적인 비대칭 통계 생성 프로세스(2900)를 도시하는 흐름도이다.
도 29에 도시된 바와 같이, 비대칭 통계 생성 프로세스(2900)는 단계(2910) 동안 알려진 패턴을 기준 셀(1920)에 초기에 기록하고, 그 후, 단계(2020) 동안 기준 셀(1920)을 판독한다. 비대칭 통계 생성 프로세스(2900)는 기준 데이터 내 바이너리 0을 가지는 에러 비트의 수를 단계(2930) 동안 결정하고, 그 후, 단계(2940) 동안 바이너리 0에 대한 에러 확률 통계를 아래와 같이 산출한다:
그 후, 비대칭 통계 생성 프로세스(2900)는 기준 데이터 내 바이너리 1을 가지는 에러 비트의 수를 단계(2950) 동안 결정하고, 그 후, 바이너리 1에 대한 에러 확률 통계를 단계(2960) 동안 아래와 같이 산출한다:
비대칭 에러 확률-디코딩된 코드워드
도 30은 본원발명의 디코딩된 코드워드 실시예에 있어서 가능한 두 개의 바이너리 값에 대한 에러 확률을 추산하는 예시적인 비대칭적 통계 생성 프로세스(3000)를 도시하는 흐름도이다. 도 30에 도시된 바와 같이, 비대칭 통계 생성 프로세스(3000)는 플래시 메모리부터의 하드 데이터를 초기에 단계(3010) 동안 획득하고 단계(3020) 동안 하드 데이터를 디코딩한다.
그 후, 비대칭 통계 생성 프로세스(3000)는 디코딩된 데이터 내 바이너리 0을 가지는 플래시 메모리로부터의 에러 비트의 수를 단계(3030) 동안 결정한다. 그 후 바이너리 0에 대한 에러 확률 통계는 단계(3040) 동안 아래와 같이 산출된다:
유사하게, 그 후, 디코딩된 데이터 내 바이너리 1을 가지는 플래시 메모리부터의 에러 비트의 수는 단계(3050) 동안 결정된다. 바이너리 1에 대한 에러 확률 통계는 그 후 단계(3060) 동안 아래와 같이 산출된다:
일 실시예에서, NAND 플래시 메모리가 유휴 상태인(즉, 사용자 데이터를 능동적으로(actively) 기록하거나 판독하지 않는) 동안 통계는 수집되고, 산출되고, 저장될 수 있다.
예시적인 실시예가 기준 셀 또는 디코더 피드백을 이용한 통계 수집을 사용하는 동안, 적응적 방법 또한 사용되어 감지된 또는 디코딩된 데이터를 사용, 예를 들어, 최소 평균 제곱 에러 기준(criterion)을 사용하여 통계를 추산한다.
다른 실시예에서, 통계 또는 대응하는 LLR을 (예를 들어, 프로그램/삭제(erase) 사이클의 수, 리텐션(retention) 시간과 온도 면에서) 최악 케이스(worst-case) 동작 조건에 대해서, 예를 들어, 플래시 메모리의 실험적 특성 묘사(characterization)에 기초하여 미리 산출(precompute)할 수 있고, 그 후, 나쁜 채널 조건에 대해서 이를 이용할 수 있다. 이 방식에서, 에러 확률이 가장 높은 경우, 보다 정확한 통계 또는 LLR이 이용 가능하다. 즉, 미리 규정되는(pre-defined) 통계 또는 대응하는 LLR이 미리 규정된 동작 조건에 대해서 미리 산출될 수 있다.
다른 변형예에서, 디코딩이 성공적일 때까지 소프트 데이터는 상이한 통계(예를 들어, 에러 확률)에 기초하여 반복적으로 생성될 수 있다. 통계는 데이터의 성공적인 감지 또는 디코딩이 있을 때까지 범위에 걸쳐 변화할 수 있다. 본 발명의 이러한 변형은 데이터의 가상 재판독(virtual reread)을 제공한다. 데이터가 플래시 메모리로부터 실제로 재판독되지 않아도, 데이터는 다른 소프트 정보로 성공적으로 디코딩된다.
불만족 패리티(
parity
) 체크에 기초한 에러 성능(
performance
)
본원 발명의 일 측면들은 불만족 패리티 체크가 성능 메트릭으로서 사용되어 소프트 데이터를 획득할 수 있다는 것을 인식한다. (N, K, J, L) LDPC 코드-N은 코드워드 길이, K는 부호화되지 않은(uncoded) 코드워드 길이(코드워드 내 사용자 데이터 길이), J와 L은 각각 패리티 체크 매트릭스의 열(column)과 행(row) 웨이트-를 고려한다. (N, K, J, L) LDPC 코드워드가 에러 확률 p0와 저장되거나 전달되는 경우, 체크섬(check sum)이 제 1 반복(iteration)에서 실패하는 확률은 아래와 같이 표현될 수 있다:
이 확률은 아래와 같이 추산될 수 있다:
그래서, 에러 확률(p0)는 아래와 같이 추산될 수 있다:
상기 과정에서, 채널과 초기 LLR 값은 반복적인 디코딩을 수행하기 전에 추산될 수 있다. 채널 추산 복잡도와 레이턴시(latency)는 LDPC 코드의 하드 결정(hard decision) 디코딩에 대한 상당한 이득(gain)을 가진 소프트-결정 디코딩의 한 반복(iteration)의 것보다 작다. 소프트-결정 디코딩의 표준 구현에 비교하여 추가되는 하드웨어는 이하의 산출을 수행하는 블록이다:
도 31은 본원 발명의 일 측면에 따른 불만족 패리티 체크를 사용한 통계 생성 프로세스(3100)의 예시적인 구현예를 도시하는 흐름도이다. 일 실시예에서, 제 1 반복 이후의 불만족 패리티 체크가 사용된다. 일반적으로, 통계 생성 프로세스(3100)는 불만족 패리티 체크를 사용하여 에러를 감지하는 확률(p0)을 산출한다. 그 후, 에러 감지 확률(p0)은 LLR 생성기(1500)(도 15)에 의해서 사용되어 희망 소프트 데이터를 산출할 수 있다.
초기에, 통계 생성 프로세스(3100)는 불만족 패리티 체크의 수를 단계(3110) 동안 획득한다. 그 후 통계 생성 프로세스(3100)는 에러 확률 통계를 단계(3120) 동안 아래와 같이 산출한다:
위치 특정 통계-불만족 패리티 체크
도 32는 불만족 패리티 체크를 사용하여 메모리 어레이(1900) 내 복수의 상이한 위치에 대한 에러 확률 통계를 획득하는 예시적인 위치 특정 통계 생성 프로세스(3200)를 도시하는 흐름도이다. 예를 들어, 에러 확률 통계가 하나 이상의 상이한 페이지 위치, 워드라인 위치, (짝수와 홀수 비트라인 같은) 비트라인 위치와 (MSB(Most Significant Bit)와 LSB(Least Significant Bit)와 같은) 다중 수준 셀 내 상이한 비트에 대해 획득될 수 있다. 일반적으로, 위치 특정 통계는 희망 위치 내 비트를 위치시키는 코드워드를 이용함으로써 불만족 패리티 체크를 이용하여 획득할 수 있다(단계(3210)).
도 32에 도시된 바와 같이, 그 후 예시적인 위치 특정 통계 생성 프로세스(3200)는 코드워드에 대한 불만족 패리티 체크의 수를 단계(3220) 동안 획득한다. 그 후, 위치 특정 에러 확률 통계는 단계(3230) 동안 아래와 같이 산출된다:
불만족 패리티 체크에 기초한 비대칭 통계
도 33은 불만족 패리티 체크를 이용하여 두 개의 가능한 바이너리 값에 대한 에러를 감지하는 확률을 추산하는 예시적인 비대칭 통계 생성 프로세스(3300)를 도시하는 흐름도이다. 본원 발명의 이러한 측면은 평균 에러 확률()이 불만족 패리티 체크에 기초하여 산출될 수 있다는 것을 인식한다(여기에서 ). p와 q에 대한 값은 평균 확률 확률()과, 에러 확률(p와 q)의 비율(k)에 기초하여 산출될 수 있다.
에러 확률(p와 q)의 비율(k)은 데이터 분석, 예를 들어, 전술한 디코딩된 코드워드 기술을 이용하여 획득할 수 있다. 이와 달리, 에러 확률(p와 q)의 비율(k)은, 예를 들어, 본원과 함께 동시에 출원되고 여기에 참조로서 통합되는 국제 특허 출원 "Methods and Apparatus for Soft Data Generation for memory devices Using Reference Cells"에 설명된 기준 셀 기술을 이용하여 획득할 수 있다. 에러 확률(p와 q)의 비율(k)은 통상적으로 오프라인으로 산출되고, 예를 들어, 표 내에 저장될 것이다. 도 33에 도시된 바와 같이, 예시적인 비대칭 통계 생성 프로세스(불만족 패리티 체크)(3300)는 초기에 단계(3310) 동안 에러 확률(p와 q)의 비율(k)을 획득한다.
그 후, 바이너리 0에 대한 에러 확률 통계(p)는 단계(3330) 동안 아래와 같이 산출된다:
그 후, 바이너리 1에 대한 에러 확률 통계(q)는 단계(3340) 동안 아래와 같이 산출된다:
비대칭 통계 생성 프로세스(불만족 패리티 체크)(3300)에 의해서 산출되는 에러 확률 통계(p와 q)가 선택적으로 위치 특정적 및/또는 패턴 의존적이라는 것에 주목한다.
프로세스, 시스템 및 제품(
article
of
manufacture
)의 상세 사항
여기의 다수의 흐름도가 단계의 예시적인 순서를 설명하는 한편, 순서가 변할 수 있다는 것 또한 본원발명의 실시예이다. 알고리즘의 다양한 치환(permutations)은 본 발명의 다른 실시예로서 고려된다. 당업자가 자명하게 알 수 있듯이, 본원 발명의 예시적 실시예가 소프트웨어 프로그램 내 프로세싱 단계와 관련하여 설명되었지만, 다양한 기능이 소프트웨어 프로그램 내 프로세싱 단계로서의 디지탈 도메인 내에서, 회로 구성요소에 의한 하드웨어 내에서, 또는 스테이트 머신 또는 하드웨어와 소프트웨어 모두의 조합으로 구현될 수도 있다. 이러한 소프트웨어는, 예를 들어, 디시탈 신호 프로세서, 애플리케이션 특정 집적 회로, 마이크로 컨트롤러 또는 범용(general-purpose) 컴퓨터에서 사용될 수도 있다. 이러한 하드웨어와 소프트웨어는 집적 회로 내에 구현된 회로 내에서 구현될 수도 있다.
그래서, 본원 발명의 기능은 이러한 방법의 실행을 위한 방법과 장치의 형태로 구현될 수 있다. 본원 발명의 하나 이상의 측면은, 예를 들어, 저장 매체에 저장되거나, 머신에 로딩되거나/되고 머신에 의해 실행되거나, 어떠한 전송 매체를 넘어 전송되는 프로그램 코드의 형태로 구현되고, 이 프로그램 코드가 컴퓨터와 같은 머신에 로딩되고 이에 의해 실행되는 경우, 그 머신은 본 발명을 실행하는 장치가 된다. 범용 프로세서에 구현된 경우, 프로그램 코드 세그먼트는 프로세서와 결합되어 특정 논리 회로와 유사하게 동작하는 장치를 제공한다. 본 발명은 또한 하나 이상의 집적 회로, 디지탈 신호 프로세서, 마이크로프로세서와 마이크로 컨트롤러의 형태로 구현될 수 있다.
해당 분야에 알려진 바와 같이, 여기에 논의된 방법과 장치는 그 위에서 구현되는 컴퓨터 판독 가능한 코드 수단을 가지는 컴퓨터 판독 가능한 매체를 그 자체가 포함하는 제조 물품으로서 배포될 수도 있다. 컴퓨터 판독 가능한 프로그램 코드 수단은 컴퓨터 시스템과 결합하여 동작 가능하여 여기에 논의된 방법을 수행하거나 장치를 제조하기 위하여 모든 또는 일부의 단계를 수행할 수 있다. 컴퓨터 판독 가능한 매체는 기록 가능한 매체(예를 들어, 플로피 디스크, 하드 드라이브, 컴팩트 디스크, 메모리 카드, 반도체 장치, 칩, ASIC)일 수도 있고, 송신 매체(예를 들어, 광섬유, 월드와이드 웹, 케이블 또는 시간 분할 다중 접속, 코드 분할 다중 접속 또는 다른 무선 주파수 채널을 이용하는 무선 채널을 포함하는 네트워크)일 수도 있다. 컴퓨터 시스템으로 사용하는 데에 적절한 정보를 저장할 수 있는 공지되거나 개발된 임의의 매체가 사용될 수도 있다. 컴퓨터 판독 가능한 코드 수단은 컴퓨터가, 컴팩트 디스크의 표면 상의 높이 변화 또는 자기 매체의 자성 변화와 같은, 인스트력선과 데이터를 읽을 수 있게 하는 임의의 메카니즘이다.
여기에 설명된 컴퓨터 시스템과 서버는 각각 관련 프로세서를 구성하여 여기에 개시된 방법, 단계와, 기능을 구현할 메모리를 각각 포함한다. 메모리는 분산되어 있거나 로컬일 수 있고, 프로세스는 분산되어 있거나 하나(singular)일 수 있다. 메모리는, 전기적, 자기적 또는 광학적 메모리로서 또는 이들 또는 다른 타입의 저장 장치의 임의의 조합으로서 구현될 수 있다. 또한, "메모리"라는 용어는 관련 프로세서에 의해 접속되는 어드레스 가능한 공간 내 어드레스로부터 또는 어드레스로 판독되거나 기록될 수 있는 임의의 정보를 포함하기에 충분하도록 넓게 해석되어야 한다. 이러한 정의로, 네트워크 상 정보도 관련 프로세서가 네트워크로부터 정보를 검색할 수 있기 때문에 메모리 내에 있다.
여기에 도시되고 설명된 실시예와 변형예는 단순히 본 발명의 원리를 설명하는 것이고 다양한 변형을 본 발명의 범위와 정신을 벗어나지 않고 당업자에 의해 구현할 수도 있다는 것을 알 수 있을 것이다.
Claims (46)
- 메모리 장치에 대해 적어도 하나의 소프트 데이터 값을 생성하는 방법으로서,
적어도 하나의 하드 판독 값을 획득하는 단계와,
상기 하드 판독 값을 판독하기 위한 통계에 기초하여 상기 적어도 하나의 하드 판독 값과 관련된 상기 소프트 데이터 값을 생성하는 단계를 포함하는
소프트 데이터 값 생성 방법.
- 제 1 항에 있어서,
상기 하드 판독 값은 데이터 비트, 전압 수준, 전류 수준 및 저항 수준 중 하나 이상을 포함하는
소프트 데이터 값 생성 방법.
- 제 1 항에 있어서,
상기 하드 판독 값은 소프트 데이터 및 하드 데이터 중 하나 이상을 포함하는
소프트 데이터 값 생성 방법. - 제 1 항에 있어서,
상기 소프트 데이터 값은 하나 이상의 LLR(log llikelyhood ratio)을 생성하는데 사용되는 소프트 판독 값을 포함하는
소프트 데이터 값 생성 방법.
- 제 1 항에 있어서,
상기 소프트 데이터 값은 하나 이상의 LLR을 포함하는
소프트 데이터 값 생성 방법.
- 제 1 항에 있어서,
상기 단계 중 하나 이상은 제어기, 판독 채널, 신호 처리 유닛 및 디코더 중 하나 이상에 의해 구현되는
소프트 데이터 값 생성 방법.
- 제 1 항에 있어서,
상기 통계는 적어도 하나의 확률 밀도 함수를 포함하는
소프트 데이터 값 생성 방법.
- 제 1 항에 있어서,
상기 통계는 복수의 워드라인에 걸쳐 평균되고, 상기 평균된 통계는 상기 소프트 데이터 값을 생성하는데 사용되는
소프트 데이터 값 생성 방법.
- 제 1 항에 있어서,
상기 통계는 비트 기반 통계, 셀 기반 및 패턴 의존 통계 중 하나 이상을 포함하는
소프트 데이터 값 생성 방법.
- 제 9 항에 있어서,
상기 메모리 장치 내에 복수의 워드라인에 대해 별도의 셀 기반 통계가 유지되는
소프트 데이터 값 생성 방법.
- 제 9 항에 있어서,
하나 이상의 가능한 수준 LVLwrite에 대한 상기 셀 기반 통계는, 상기 기록 수준 LVLwrite가 기록 또는 디코딩된 때에 수준 LVLread이 판독되는 확률에 기초하는
소프트 데이터 값 생성 방법.
- 제 9 항에 있어서,
하나 이상의 가능한 수준 LVLread에 대한 상기 셀 기반 통계는, 상기 판독 수준 LVLread이 판독된 때에 수준 LVLwrite이 기록 또는 디코딩되는 확률에 기초하는
소프트 데이터 값 생성 방법.
- 제 13 항에 있어서,
상기 획득하는 단계는 상기 적어도 하나의 공격자 셀을 판독하는 단계를 더 포함하는
소프트 데이터 값 생성 방법.
- 제 13 항에 있어서,
상기 획득하는 단계는 상기 적어도 하나의 공격자 셀이 위치하는 하나 이상의 페이지 또는 워드라인을 판독하는 단계를 더 포함하는
소프트 데이터 값 생성 방법.
- 제 1 항에 있어서,
상기 통계는 상기 타겟 셀 상의 외란(disturbance)의 표시를 포함하는
소프트 데이터 값 생성 방법.
- 제 17 항에 있어서,
상기 외란은 백 패턴 의존성(back pattern dependency), 셀간 간섭, 프로그램 방해(disturb), 판독 방해 및 추가 잡음 중 하나 이상을 포함하는
소프트 데이터 값 생성 방법.
- 제 1 항에 있어서,
상기 통계는 상기 타겟 셀에 대한 상기 적어도 하나의 공격자 셀의 패턴 의존 외란을 포함하는
소프트 데이터 값 생성 방법.
- 제 19 항에 있어서,
하나 이상의 식별된 패턴 및 하나 이상의 가능한 기준 수준 LVLref에 대한 상기 패턴 의존 통계는, 상기 기준 수준 LVLref가 디코딩 또는 기록된 때에 수준 LVLread이 판독되는 확률에 기초하는
소프트 데이터 값 생성 방법.
- 제 19 항에 있어서,
하나 이상의 식별된 패턴 및 하나 이상의 가능한 판독 수준 LVLread에 대한 상기 패턴 의존 통계는, 상기 판독 수준 LVLread이 판독된 때에 기준 수준 LVLref이 디코딩 또는 기록되는 확률에 기초하는
소프트 데이터 값 생성 방법.
- 제 1 항에 있어서,
상기 통계는 위치 특정(location-specific) 통계를 포함하고, 상기 소프트 데이터 값은 상기 메모리 장치의 희망 위치에 대해 생성되는
소프트 데이터 값 생성 방법.
- 제 22 항에 있어서,
적어도 하나의 희망 위치 및 하나 이상의 가능한 기준 수준 LVLref에 대한 상기 위치 특정 통계는, 상기 기준 수준 LVLref가 디코딩 또는 기록된 때에 상기 희망 위치에서 수준 LVLread이 판독되는 확률에 기초하는
소프트 데이터 값 생성 방법.
- 제 22 항에 있어서,
적어도 하나의 희망 위치 및 하나 이상의 가능한 판독 수준 LVLread에 대한 상기 위치 특정 통계는, 상기 판독 수준 LVLread이 상기 희망 위치에서 판독된 때에 기준 수준 LVLref이 디코딩 또는 기록되는 확률에 기초하는
소프트 데이터 값 생성 방법.
- 제 1 항에 있어서,
상기 통계는 저장된 표 및 표현(expression) 중 하나 이상으로 나타내어지는
소프트 데이터 값 생성 방법.
- 제 1 항에 있어서,
상기 통계는 가우스 근사를 이용하여 표현되는
소프트 데이터 값 생성 방법.
- 제 1 항에 있어서,
상기 소프트 데이터 값을 디코더에 제공하는 단계를 더 포함하는
소프트 데이터 값 생성 방법.
- 제 27 항에 있어서,
상기 소프트 데이터 값은 상기 디코더에 재귀적으로(iteratively) 제공되는
소프트 데이터 값 생성 방법.
- 제 28 항에 있어서,
상기 소프트 데이터 값은 상기 디코더에 제공되고, 상기 디코더는 새로운 소프트 데이터 값을 계산하며, 상기 새로운 소프트 데이터 값은 재귀적인 방식으로 상기 재귀적 프로세스가 수렴할 때까지 처리되는
소프트 데이터 값 생성 방법.
- 제 1 항에 있어서,
상기 메모리 장치는 플래시 메모리 장치인
소프트 데이터 값 생성 방법.
- 제 1 항에 있어서,
상기 메모리 장치는 셀 당 적어도 2개의 데이터 수준(s)을 저장할 수 있는
소프트 데이터 값 생성 방법.
- 제 1 항에 있어서,
상기 획득하는 단계는 셀 내의 다수의 비트를 판독하는 단계를 더 포함하는
소프트 데이터 값 생성 방법.
- 제 1 항에 있어서,
상기 획득하는 단계는 워드라인 내 하나 이상의 페이지를 판독하는 단계를 더 포함하는
소프트 데이터 값 생성 방법. - 제 1 항에 있어서,
상기 통계는 확률 분포의 평균이나 분산 및 확률 중 하나 이상을 포함하는
소프트 데이터 값 생성 방법.
- 메모리 장치에 대해 적어도 하나의 소프트 데이터 값을 생성하는 방법으로서,
소프트 판독 값을 획득하는 단계와,
상기 소프트 판독 값을 판독하기 위한 통계에 기초하여 상기 소프트 판독 값과 관련된 상기 소프트 데이터 값을 생성하는 단계를 포함하고,
상기 통계는 위치 특정 통계와 패턴 의존 통계 중 하나 이상을 포함하는
소프트 데이터 값 생성 방법.
- 제 43 항에 있어서,
상기 소프트 판독 값은 디코더로부터 획득되는
소프트 데이터 값 생성 방법.
- 메모리 장치에 대해 적어도 하나의 소프트 데이터 값을 생성하는 시스템으로서,
메모리와,
상기 메모리에 결합된 적어도 하나의 프로세서를 포함하되,
상기 프로세서는
적어도 하나의 하드 판독 값을 획득하고,
상기 하드 판독 값을 판독하기 위한 통계에 기초하여 상기 적어도 하나의 하드 판독 값과 관련된 상기 소프트 데이터 값을 생성하도록 동작하는
소프트 데이터 값 생성 시스템.
- 메모리 장치에 대해 적어도 하나의 소프트 데이터 값을 생성하는 시스템으로서,
메모리와,
상기 메모리에 결합된 적어도 하나의 프로세서를 포함하되,
상기 프로세서는
소프트 판독 값을 획득하고,
상기 소프트 판독 값을 판독하기 위한 통계에 기초하여 상기 소프트 판독 값과 관련된 상기 소프트 데이터 값을 생성하도록 동작하며,
상기 통계는 위치 특정 통계와 패턴 의존 통계 중 하나 이상을 포함하는
소프트 데이터 값 생성 시스템.
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US19475108P | 2008-09-30 | 2008-09-30 | |
US61/194,751 | 2008-09-30 | ||
WOPCT/US09/49333 | 2009-06-30 | ||
PCT/US2009/049333 WO2010002948A1 (en) | 2008-07-01 | 2009-06-30 | Methods and apparatus for soft demapping and intercell interference mitigation in flash memories |
PCT/US2009/059077 WO2010039866A1 (en) | 2008-09-30 | 2009-09-30 | Methods and apparatus for soft data generation for memory devices |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20110061648A true KR20110061648A (ko) | 2011-06-09 |
KR101758192B1 KR101758192B1 (ko) | 2017-07-14 |
Family
ID=42073862
Family Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020117009704A KR20110061649A (ko) | 2008-09-30 | 2009-09-30 | 소프트 데이터 값 생성 방법 |
KR1020117009708A KR20110061650A (ko) | 2008-09-30 | 2009-09-30 | 소프트 데이터 값 생성 방법 및 소프트 데이터 값 생성 시스템 |
KR1020117009695A KR101758192B1 (ko) | 2008-09-30 | 2009-09-30 | 소프트 데이터 값 생성 방법 및 소프트 데이터 값 생성 시스템 |
Family Applications Before (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020117009704A KR20110061649A (ko) | 2008-09-30 | 2009-09-30 | 소프트 데이터 값 생성 방법 |
KR1020117009708A KR20110061650A (ko) | 2008-09-30 | 2009-09-30 | 소프트 데이터 값 생성 방법 및 소프트 데이터 값 생성 시스템 |
Country Status (8)
Country | Link |
---|---|
US (4) | US8892966B2 (ko) |
EP (4) | EP2340538A1 (ko) |
JP (4) | JP5535219B2 (ko) |
KR (3) | KR20110061649A (ko) |
CN (4) | CN102171767A (ko) |
IL (4) | IL211895A0 (ko) |
TW (4) | TWI562151B (ko) |
WO (4) | WO2010039869A1 (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20110124045A (ko) * | 2010-05-10 | 2011-11-16 | 삼성전자주식회사 | 데이터 저장 장치 및 그것의 프로그램 방법 |
Families Citing this family (110)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8526230B2 (en) * | 2008-07-01 | 2013-09-03 | Lsi Corporation | Methods and apparatus for write-side intercell interference mitigation in flash memories |
US8611151B1 (en) | 2008-11-06 | 2013-12-17 | Marvell International Ltd. | Flash memory read performance |
US8947929B1 (en) * | 2008-11-06 | 2015-02-03 | Marvell International Ltd. | Flash-based soft information generation |
US8179731B2 (en) | 2009-03-27 | 2012-05-15 | Analog Devices, Inc. | Storage devices with soft processing |
US8213236B1 (en) | 2009-04-21 | 2012-07-03 | Marvell International Ltd. | Flash memory |
CN101923896A (zh) * | 2009-06-12 | 2010-12-22 | 威刚科技(苏州)有限公司 | 电子存储装置及其纠错方法 |
US8392809B1 (en) | 2009-10-16 | 2013-03-05 | Marvell International Ltd. | Log-likelihood-ratio (LLR) table calibration |
US8510628B2 (en) * | 2009-11-12 | 2013-08-13 | Micron Technology, Inc. | Method and apparatuses for customizable error correction of memory |
KR101678404B1 (ko) * | 2010-02-25 | 2016-11-23 | 삼성전자주식회사 | 사전 확률 정보를 사용하는 메모리 시스템 및 그것의 데이터 처리 방법 |
TWI437570B (zh) * | 2010-03-10 | 2014-05-11 | Macronix Int Co Ltd | 藉由編程準位的交換改善多位階單元的編程速度 |
US8429500B2 (en) | 2010-03-31 | 2013-04-23 | Lsi Corporation | Methods and apparatus for computing a probability value of a received value in communication or storage systems |
US8504885B2 (en) | 2010-03-31 | 2013-08-06 | Lsi Corporation | Methods and apparatus for approximating a probability density function or distribution for a received value in communication or storage systems |
US8775913B2 (en) | 2010-03-31 | 2014-07-08 | Lsi Corporation | Methods and apparatus for computing soft data or log likelihood ratios for received values in communication or storage systems |
US8332728B2 (en) * | 2010-04-02 | 2012-12-11 | Skymedi Corporation | Method and apparatus of generating a soft value for a memory device |
GB2494577B (en) * | 2010-05-31 | 2013-11-20 | Ibm | Decoding of LDPC code |
US8819503B2 (en) | 2010-07-02 | 2014-08-26 | Stec, Inc. | Apparatus and method for determining an operating condition of a memory cell based on cycle information |
US8756394B1 (en) | 2010-07-07 | 2014-06-17 | Marvell International Ltd. | Multi-dimension memory timing tuner |
US8737141B2 (en) | 2010-07-07 | 2014-05-27 | Stec, Inc. | Apparatus and method for determining an operating condition of a memory cell based on cycle information |
US8737136B2 (en) | 2010-07-09 | 2014-05-27 | Stec, Inc. | Apparatus and method for determining a read level of a memory cell based on cycle information |
US8499227B2 (en) | 2010-09-23 | 2013-07-30 | Micron Technology, Inc. | Memory quality monitor based compensation method and apparatus |
CN102436842B (zh) * | 2010-09-29 | 2014-05-14 | 群联电子股份有限公司 | 存储器储存装置、存储器控制器与产生对数似然比的方法 |
US8848438B2 (en) | 2010-10-05 | 2014-09-30 | Stec, Inc. | Asymmetric log-likelihood ratio for MLC flash channel |
US8549382B2 (en) | 2010-12-17 | 2013-10-01 | Intel Corporation | Storage drive with LDPC coding |
US9292377B2 (en) | 2011-01-04 | 2016-03-22 | Seagate Technology Llc | Detection and decoding in flash memories using correlation of neighboring bits and probability based reliability values |
US9082480B2 (en) | 2011-01-04 | 2015-07-14 | Seagate Technology Llc | Detection and decoding in flash memories with error correlations for a plurality of bits within a sliding window |
US9086984B2 (en) | 2011-01-04 | 2015-07-21 | Seagate Technology Llc | Detection and decoding in flash memories with selective binary and non-binary decoding |
US9898361B2 (en) | 2011-01-04 | 2018-02-20 | Seagate Technology Llc | Multi-tier detection and decoding in flash memories |
US9106264B2 (en) | 2011-01-04 | 2015-08-11 | Lsi Corporation | Encoding and decoding in flash memories using convolutional-type low-density parity check codes |
KR101736337B1 (ko) | 2011-02-28 | 2017-05-30 | 삼성전자주식회사 | 비휘발성 메모리 장치, 상기 메모리 장치를 제어하는 컨트롤러, 및 상기 컨트롤러 동작 방법 |
US9502117B2 (en) | 2011-03-14 | 2016-11-22 | Seagate Technology Llc | Cell-level statistics collection for detection and decoding in flash memories |
US9047955B2 (en) | 2011-03-30 | 2015-06-02 | Stec, Inc. | Adjusting operating parameters for memory cells based on wordline address and cycle information |
US8549380B2 (en) | 2011-07-01 | 2013-10-01 | Intel Corporation | Non-volatile memory error mitigation |
KR101775660B1 (ko) * | 2011-09-29 | 2017-09-07 | 삼성전자주식회사 | 워드 라인 전압의 변화없이 상이한 문턱 전압들을 갖는 메모리 셀들을 읽는 방법 및 그것을 이용한 불 휘발성 메모리 장치 |
KR101919902B1 (ko) * | 2011-10-18 | 2018-11-20 | 삼성전자 주식회사 | 메모리 장치의 데이터 독출 방법 |
WO2013065334A1 (ja) * | 2011-11-02 | 2013-05-10 | 国立大学法人東京大学 | メモリコントローラおよびデータ記憶装置 |
US8811545B2 (en) * | 2011-11-08 | 2014-08-19 | Mitsubishi Electric Research Laboratories, Inc. | Method for reducing interference in OFDM wireless networks |
CN102394113B (zh) * | 2011-11-14 | 2014-06-18 | 清华大学 | 一种应用于快闪存储器中的动态ldpc纠错码方法 |
US8644067B2 (en) * | 2011-11-30 | 2014-02-04 | Sandisk Technologies Inc. | Systems and methods of decoding data using soft bits at a non-binary decoder that uses probabilistic decoding |
US8913437B2 (en) * | 2011-12-15 | 2014-12-16 | Marvell World Trade Ltd. | Inter-cell interference cancellation |
US9117529B2 (en) * | 2011-12-23 | 2015-08-25 | Hgst Technologies Santa Ana, Inc. | Inter-cell interference algorithms for soft decoding of LDPC codes |
US8943386B1 (en) * | 2012-02-16 | 2015-01-27 | Sk Hynix Memory Solutions Inc. | Generating soft read values which optimize dynamic range |
US9195586B2 (en) | 2012-02-23 | 2015-11-24 | Hgst Technologies Santa Ana, Inc. | Determining bias information for offsetting operating variations in memory cells based on wordline address |
US8943384B2 (en) * | 2012-04-12 | 2015-01-27 | Seagate Technology Llc | Using a soft decoder with hard data |
US9256522B1 (en) * | 2012-04-19 | 2016-02-09 | Sk Hynix Memory Solutions Inc. | Method and system for generating soft-information after a single read in NAND flash using expected and measured values |
KR102089570B1 (ko) | 2012-06-04 | 2020-03-16 | 삼성전자주식회사 | 저장 장치 및 그것의 데이터 처리 방법 |
US8856615B1 (en) | 2012-06-11 | 2014-10-07 | Western Digital Technologies, Inc. | Data storage device tracking log-likelihood ratio for a decoder based on past performance |
US9239754B2 (en) * | 2012-08-04 | 2016-01-19 | Seagate Technology Llc | Single read based soft-decision decoding of non-volatile memory |
US8732537B2 (en) | 2012-08-06 | 2014-05-20 | Lsi Corporation | Method and system for symbol error rate estimation and sector quality measurement |
RU2012134916A (ru) * | 2012-08-15 | 2014-02-20 | ЭлЭсАй Корпорейшн | Способ выбора подходящего кода ldcp |
KR102005709B1 (ko) * | 2012-10-22 | 2019-08-01 | 삼성전자 주식회사 | 메모리 장치 구동 방법 및 메모리 시스템 |
US9159407B2 (en) * | 2012-10-22 | 2015-10-13 | Apple Inc. | Soft readout from analog memory cells in the presence of read threshold errors |
KR102081581B1 (ko) | 2012-11-02 | 2020-02-26 | 삼성전자 주식회사 | 메모리 장치 구동 방법 |
CN103811077B (zh) * | 2012-11-12 | 2017-03-29 | 光宝电子(广州)有限公司 | 闪存中的资料补偿方法 |
US9575683B2 (en) | 2012-11-30 | 2017-02-21 | Sandisk Technologies Llc | Processing shaped data |
US9135155B2 (en) | 2012-11-30 | 2015-09-15 | Sandisk Technologies Inc. | Storage and retrieval of shaped data |
US9190174B2 (en) | 2012-11-30 | 2015-11-17 | Micron Technology, Inc. | Determining soft data from a hard read |
US9116822B2 (en) | 2012-12-07 | 2015-08-25 | Micron Technology, Inc. | Stopping criteria for layered iterative error correction |
US9021332B2 (en) | 2012-12-11 | 2015-04-28 | Seagate Technology Llc | Flash memory read error recovery with soft-decision decode |
US20140169102A1 (en) * | 2012-12-19 | 2014-06-19 | Western Digital Technologies, Inc. | Log-likelihood ratio and lumped log-likelihood ratio generation for data storage systems |
CN104919433B (zh) | 2013-01-11 | 2017-10-31 | 英派尔科技开发有限公司 | 用于闪存的页面分配 |
US9229848B2 (en) | 2013-01-21 | 2016-01-05 | Micron Technology, Inc. | Determining soft data for fractional digit memory cells |
US9065483B2 (en) | 2013-01-21 | 2015-06-23 | Micron Technology, Inc. | Determining soft data using a classification code |
JP6367562B2 (ja) * | 2013-01-31 | 2018-08-01 | エルエスアイ コーポレーション | 選択的なバイナリ復号および非バイナリ復号を用いるフラッシュ・メモリ内の検出および復号 |
US8879324B2 (en) * | 2013-02-01 | 2014-11-04 | Lsi Corporation | Compensation loop for read voltage adaptation |
CN105074826B (zh) * | 2013-02-27 | 2018-01-16 | 英派尔科技开发有限公司 | 存储器装置的基于线性规划的解码 |
US10061640B1 (en) | 2013-03-12 | 2018-08-28 | Western Digital Technologies, Inc. | Soft-decision input generation for data storage systems |
US9021331B2 (en) | 2013-03-14 | 2015-04-28 | Seagate Technology Llc | Method and apparatus for generation of soft decision error correction code information |
KR102081415B1 (ko) | 2013-03-15 | 2020-02-25 | 삼성전자주식회사 | 비휘발성 메모리 장치의 llr 최적화 방법 및 비휘발성 메모리 장치의 에러 정정 방법 |
US9286155B1 (en) * | 2013-05-24 | 2016-03-15 | Marvell International Ltd. | Systems and methods for generating soft information in a flash device |
GB2518632A (en) | 2013-09-26 | 2015-04-01 | Ibm | Estimation of level-thresholds for memory cells |
US9201729B2 (en) * | 2013-10-21 | 2015-12-01 | Seagate Technology, Llc | Systems and methods for soft data utilization in a solid state memory system |
CN103594123B (zh) * | 2013-11-28 | 2016-09-14 | 中国科学院微电子研究所 | 非挥发性存储器及其校调方法 |
US9859925B2 (en) | 2013-12-13 | 2018-01-02 | Empire Technology Development Llc | Low-complexity flash memory data-encoding techniques using simplified belief propagation |
US9798613B2 (en) | 2013-12-27 | 2017-10-24 | Toshiba Memory Corporation | Controller of nonvolatile semiconductor memory |
US9645763B2 (en) | 2014-01-13 | 2017-05-09 | Seagate Technology Llc | Framework for balancing robustness and latency during collection of statistics from soft reads |
TWI521529B (zh) * | 2014-04-15 | 2016-02-11 | 群聯電子股份有限公司 | 解碼方法、記憶體儲存裝置及記憶體控制電路單元 |
TWI492234B (zh) | 2014-04-21 | 2015-07-11 | Silicon Motion Inc | 讀取快閃記憶體中所儲存之資料的方法、記憶體控制器與記憶體系統 |
US9460783B2 (en) | 2014-06-03 | 2016-10-04 | Micron Technology, Inc. | Determining soft data |
CN105468471A (zh) * | 2014-09-12 | 2016-04-06 | 光宝科技股份有限公司 | 固态存储装置及其错误更正方法 |
JP2016062463A (ja) * | 2014-09-19 | 2016-04-25 | 株式会社東芝 | メモリシステム、誤り訂正装置、および誤り訂正方法 |
US9639420B2 (en) * | 2015-03-13 | 2017-05-02 | Micron Technology, Inc. | High performance memory controller |
US10148293B2 (en) * | 2015-03-17 | 2018-12-04 | SK Hynix Inc. | Incremental LLR generation for flash memories |
US9595317B2 (en) * | 2015-05-28 | 2017-03-14 | Sandisk Technologies Llc | Multi-state programming for non-volatile memory |
US10108489B2 (en) | 2015-10-28 | 2018-10-23 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Systems and methods for efficient soft data based flash memory data recovery |
US9740559B2 (en) * | 2015-10-28 | 2017-08-22 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Systems and methods for compaction based flash memory data recovery |
US10204006B2 (en) | 2015-10-28 | 2019-02-12 | Avago Technologies International Sales Pte. Limited | Systems and methods for side data based soft data flash memory access |
CN105427892B (zh) * | 2015-11-23 | 2018-05-01 | 北京大学深圳研究生院 | 一种面向相变存储的非均匀纠错方法及相变存储装置 |
KR102459077B1 (ko) * | 2016-01-12 | 2022-10-27 | 삼성전자주식회사 | 비선형 필터링 방식을 사용하는 메모리 시스템 및 그것의 읽기 방법 |
US9984752B2 (en) * | 2016-03-14 | 2018-05-29 | Toshiba Memory Corporation | Memory system and data encoding and decoding method to mitigate inter-cell interference |
US10289484B2 (en) * | 2016-09-16 | 2019-05-14 | Micron Technology, Inc. | Apparatuses and methods for generating probabilistic information with current integration sensing |
US10158380B2 (en) * | 2016-12-06 | 2018-12-18 | Sandisk Technologies Llc | ECC and read adjustment based on dynamic memory error model estimation |
JP2019053798A (ja) | 2017-09-14 | 2019-04-04 | 東芝メモリ株式会社 | 半導体記憶装置 |
CN107705817B (zh) * | 2017-09-22 | 2020-09-08 | 山东存储之翼电子科技有限公司 | 利用闪存通道特性的解码方法、装置及数据存储系统 |
TWI693604B (zh) * | 2018-03-06 | 2020-05-11 | 深圳衡宇芯片科技有限公司 | 用於決定非揮發性記憶體中位元值的方法與系統 |
CN108563533A (zh) * | 2018-03-27 | 2018-09-21 | 深圳忆联信息系统有限公司 | 一种获取ici影响因子及提升纠错能力的方法 |
KR102653843B1 (ko) * | 2018-04-19 | 2024-04-02 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 이의 리드 디스터번스 방지 방법, 이를 이용한 스토리지 시스템 |
CN110444242B (zh) * | 2018-05-03 | 2023-09-08 | 爱思开海力士有限公司 | 有基于深度学习的干扰校正能力的存储器系统及操作方法 |
US11099781B2 (en) * | 2018-07-19 | 2021-08-24 | Silicon Motion, Inc. | Flash memory controller, flash memory module and associated electronic device |
JP7066584B2 (ja) | 2018-09-18 | 2022-05-13 | キオクシア株式会社 | メモリシステム |
CN109379087B (zh) * | 2018-10-24 | 2022-03-29 | 江苏华存电子科技有限公司 | Ldpc根据闪存组件错误率调变核编译码速率的方法 |
US20200349422A1 (en) * | 2019-05-02 | 2020-11-05 | Silicon Storage Technology, Inc. | Output array neuron conversion and calibration for analog neural memory in deep learning artificial neural network |
US11349495B2 (en) | 2020-04-15 | 2022-05-31 | Seagate Technology Llc | Recovering from hard decoding errors by remapping log likelihood ratio values read from NAND memory cells |
US11177002B1 (en) * | 2020-06-30 | 2021-11-16 | Sandisk Technologies Llc | Programming memory cells using encoded TLC-fine |
US11467737B2 (en) * | 2020-12-04 | 2022-10-11 | Micron Technology, Inc. | Reducing probabilistic data integrity scan collisions |
US11699498B2 (en) | 2020-12-04 | 2023-07-11 | Micron Technology, Inc. | Managing probabilistic data integrity scan intervals |
US11409599B2 (en) | 2020-12-04 | 2022-08-09 | Micron Technology, Inc. | Managing probabilistic data integrity scans in workloads with localized read patterns |
US11609857B2 (en) | 2020-12-04 | 2023-03-21 | Micron Technology, Inc. | Identification and caching of frequent read disturb aggressors |
KR20220080589A (ko) * | 2020-12-07 | 2022-06-14 | 삼성전자주식회사 | Ecc 디코딩을 수행하는 ecc 엔진, 이의 동작 방법 및 ecc 엔진을 포함하는 스토리지 장치 |
US11983431B2 (en) * | 2022-01-20 | 2024-05-14 | Dell Products L.P. | Read-disturb-based read temperature time-based attenuation system |
US11881869B1 (en) | 2022-09-30 | 2024-01-23 | SK Hynix Inc. | Asymmetric bit errors in low-density parity-check codes for non-volatile memory devices |
Family Cites Families (73)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4015238A (en) * | 1975-11-24 | 1977-03-29 | Harris Corporation | Metric updater for maximum likelihood decoder |
US5657332A (en) * | 1992-05-20 | 1997-08-12 | Sandisk Corporation | Soft errors handling in EEPROM devices |
US6029264A (en) * | 1997-04-28 | 2000-02-22 | The Trustees Of Princeton University | System and method for error correcting a received data stream in a concatenated system |
US6041430A (en) * | 1997-11-03 | 2000-03-21 | Sun Microsystems, Inc. | Error detection and correction code for data and check code fields |
US5867429A (en) | 1997-11-19 | 1999-02-02 | Sandisk Corporation | High density non-volatile flash memory without adverse effects of electric field coupling between adjacent floating gates |
US6560733B1 (en) * | 1999-07-09 | 2003-05-06 | Micron Technology, Inc. | Soft error detection for digital signal processors |
JP3928311B2 (ja) * | 1999-09-06 | 2007-06-13 | 三菱電機株式会社 | ターボ符号の誤り訂正復号装置およびターボ符号の誤り訂正復号方法 |
US6625236B1 (en) * | 2000-02-08 | 2003-09-23 | Ericsson Inc. | Methods and systems for decoding symbols by combining matched-filtered samples with hard symbol decisions |
CA2404984A1 (en) * | 2000-04-04 | 2001-10-11 | Comtech Telecommunications Corp. | Enhanced turbo product code decoder system |
US7107511B2 (en) * | 2002-08-15 | 2006-09-12 | Broadcom Corporation | Low density parity check (LDPC) code decoder using min*, min**, max* or max** and their respective inverses |
US6813322B2 (en) * | 2001-04-26 | 2004-11-02 | Telefonaktiebolaget L.M. Ericsson (Publ) | Soft output value biasing |
JP3814502B2 (ja) * | 2001-08-09 | 2006-08-30 | 松下電器産業株式会社 | 干渉除去装置及び干渉除去方法 |
JP2003152553A (ja) * | 2001-11-13 | 2003-05-23 | Ntt Docomo Inc | 復号方法及び通信装置 |
US7051264B2 (en) * | 2001-11-14 | 2006-05-23 | Monolithic System Technology, Inc. | Error correcting memory and method of operating same |
JP3549519B2 (ja) * | 2002-04-26 | 2004-08-04 | 沖電気工業株式会社 | 軟出力復号器 |
US6751766B2 (en) * | 2002-05-20 | 2004-06-15 | Sandisk Corporation | Increasing the effectiveness of error correction codes and operating multi-level memory systems by using information about the quality of the stored data |
KR100526186B1 (ko) * | 2003-04-04 | 2005-11-03 | 삼성전자주식회사 | 플래시 메모리의 오류블록 관리방법 및 장치 |
US6980140B1 (en) | 2004-06-18 | 2005-12-27 | Nortel Networks Limited | Flash ADC receiver with reduced errors |
CN100593911C (zh) * | 2004-07-19 | 2010-03-10 | 德克萨斯仪器股份有限公司 | 一种对通信系统中接收到的层数据进行解码的方法和系统 |
US7181676B2 (en) | 2004-07-19 | 2007-02-20 | Texas Instruments Incorporated | Layered decoding approach for low density parity check (LDPC) codes |
JP2006114078A (ja) | 2004-10-12 | 2006-04-27 | Toshiba Corp | 不揮発性半導体記憶装置及びその動作方法 |
US7730384B2 (en) | 2005-02-28 | 2010-06-01 | Agere Systems Inc. | Method and apparatus for evaluating performance of a read channel |
US7187585B2 (en) | 2005-04-05 | 2007-03-06 | Sandisk Corporation | Read operation for non-volatile storage that includes compensation for coupling |
US7276855B2 (en) | 2005-07-15 | 2007-10-02 | General Electric Company | Auxilary lighting circuit for high intensity discharge system |
JP4664797B2 (ja) | 2005-10-13 | 2011-04-06 | ジーイー・メディカル・システムズ・グローバル・テクノロジー・カンパニー・エルエルシー | Mri装置 |
US7526715B2 (en) * | 2005-10-17 | 2009-04-28 | Ramot At Tel Aviv University Ltd. | Probabilistic error correction in multi-bit-per-cell flash memory |
US7954037B2 (en) * | 2005-10-25 | 2011-05-31 | Sandisk Il Ltd | Method for recovering from errors in flash memory |
WO2007062391A2 (en) | 2005-11-22 | 2007-05-31 | Triton Systems, Inc. | Multilayer flame retardant barrier films and fabrics |
JP2007183844A (ja) * | 2006-01-10 | 2007-07-19 | Hitachi Global Storage Technologies Netherlands Bv | 補助記憶装置および記録再生方法 |
US8055979B2 (en) | 2006-01-20 | 2011-11-08 | Marvell World Trade Ltd. | Flash memory with coding and signal processing |
US7844879B2 (en) * | 2006-01-20 | 2010-11-30 | Marvell World Trade Ltd. | Method and system for error correction in flash memory |
US7400532B2 (en) | 2006-02-16 | 2008-07-15 | Micron Technology, Inc. | Programming method to reduce gate coupling interference for non-volatile memory |
US7388781B2 (en) * | 2006-03-06 | 2008-06-17 | Sandisk Il Ltd. | Multi-bit-per-cell flash memory device with non-bijective mapping |
US7502254B2 (en) * | 2006-04-11 | 2009-03-10 | Sandisk Il Ltd | Method for generating soft bits in flash memories |
WO2007132457A2 (en) | 2006-05-12 | 2007-11-22 | Anobit Technologies Ltd. | Combined distortion estimation and error correction coding for memory devices |
US8050086B2 (en) | 2006-05-12 | 2011-11-01 | Anobit Technologies Ltd. | Distortion estimation and cancellation in memory devices |
JP4999921B2 (ja) * | 2006-05-12 | 2012-08-15 | アノビット テクノロジーズ リミテッド | メモリ素子用の歪み推定と誤り訂正符号化の組み合せ |
JP4912460B2 (ja) | 2006-06-19 | 2012-04-11 | サンディスク コーポレイション | 不揮発性メモリの読み出し動作改善における個別サイズマージンのプログラムおよび選択状態時の補償による検知 |
US20080033936A1 (en) | 2006-08-04 | 2008-02-07 | Metacarta, Inc. | Systems and methods for presenting results of geographic text searches |
JP4896605B2 (ja) * | 2006-07-04 | 2012-03-14 | 株式会社東芝 | 不揮発性半導体記憶システム |
US7894269B2 (en) | 2006-07-20 | 2011-02-22 | Sandisk Corporation | Nonvolatile memory and method for compensating during programming for perturbing charges of neighboring cells |
MX2009001345A (es) * | 2006-08-05 | 2009-07-17 | Benhov Gmbh Llc | Elemento y metodo de almacenamiento de estado solido. |
JP4791912B2 (ja) | 2006-08-31 | 2011-10-12 | 株式会社東芝 | 不揮発性半導体記憶装置及び不揮発性記憶システム |
TWI353521B (en) * | 2006-09-28 | 2011-12-01 | Sandisk Corp | Soft-input soft-output decoder for nonvolatile mem |
JP5177991B2 (ja) * | 2006-10-25 | 2013-04-10 | 株式会社東芝 | 不揮発性半導体記憶装置 |
WO2008053472A2 (en) * | 2006-10-30 | 2008-05-08 | Anobit Technologies Ltd. | Reading memory cells using multiple thresholds |
US7558109B2 (en) | 2006-11-03 | 2009-07-07 | Sandisk Corporation | Nonvolatile memory with variable read threshold |
KR101017847B1 (ko) * | 2006-11-03 | 2011-03-04 | 쌘디스크 코포레이션 | 가변 판독 임계값을 갖는 비휘발성 메모리 |
KR100766042B1 (ko) * | 2006-12-06 | 2007-10-12 | 삼성전자주식회사 | 연접 부호화를 이용한 멀티 레벨 셀 메모리 장치 |
US7814401B2 (en) * | 2006-12-21 | 2010-10-12 | Ramot At Tel Aviv University Ltd. | Soft decoding of hard and soft bits read from a flash memory |
US7480184B2 (en) * | 2007-01-07 | 2009-01-20 | International Business Machines Corporation | Maximum likelihood statistical method of operations for multi-bit semiconductor memory |
US7966546B2 (en) * | 2007-03-31 | 2011-06-21 | Sandisk Technologies Inc. | Non-volatile memory with soft bit data transmission for error correction control |
KR100838292B1 (ko) * | 2007-06-20 | 2008-06-17 | 삼성전자주식회사 | 메모리 셀의 읽기 레벨 제어 장치 및 그 방법 |
KR101425958B1 (ko) | 2007-09-06 | 2014-08-04 | 삼성전자주식회사 | 멀티-비트 데이터를 저장하는 메모리 시스템 및 그것의읽기 방법 |
US7751237B2 (en) * | 2007-09-25 | 2010-07-06 | Sandisk Il, Ltd. | Post-facto correction for cross coupling in a flash memory |
US7656707B2 (en) * | 2007-12-14 | 2010-02-02 | Intel Corporation | Systems and methods for discrete channel decoding of LDPC codes for flash memory |
KR101515122B1 (ko) * | 2008-02-15 | 2015-04-27 | 삼성전자주식회사 | 저장된 데이터의 오류에 기반하여 기준 전압을 제어하는 방법과 메모리 데이터 검출 장치 |
KR101437396B1 (ko) * | 2008-02-27 | 2014-09-05 | 삼성전자주식회사 | 레이턴시를 줄일 수 있는 에러 정정 블록을 포함하는메모리 시스템 및 그것의 에러 정정 방법 |
KR101378365B1 (ko) * | 2008-03-12 | 2014-03-28 | 삼성전자주식회사 | 하이브리드 메모리 데이터 검출 장치 및 방법 |
KR101398212B1 (ko) | 2008-03-18 | 2014-05-26 | 삼성전자주식회사 | 메모리 장치 및 인코딩/디코딩 방법 |
KR101398200B1 (ko) | 2008-03-18 | 2014-05-26 | 삼성전자주식회사 | 메모리 장치 및 인코딩/디코딩 방법 |
JP2009271852A (ja) * | 2008-05-09 | 2009-11-19 | Toshiba Corp | 半導体記憶装置 |
US7843725B2 (en) | 2008-06-11 | 2010-11-30 | Micron Technology, Inc. | M+L bit read column architecture for M bit memory cells |
US8464131B2 (en) * | 2008-06-23 | 2013-06-11 | Ramot At Tel Aviv University Ltd. | Reading a flash memory by constrained decoding |
US8458563B2 (en) | 2008-06-23 | 2013-06-04 | Ramot At Tel Aviv University Ltd. | Reading a flash memory by joint decoding and cell voltage distribution tracking |
JP2010109468A (ja) * | 2008-10-28 | 2010-05-13 | Toshiba Corp | 復号器、メモリコントローラおよび半導体メモリ装置 |
JP4818381B2 (ja) * | 2009-03-02 | 2011-11-16 | 株式会社東芝 | 半導体メモリ装置 |
JP5361603B2 (ja) * | 2009-08-13 | 2013-12-04 | 株式会社東芝 | コントローラ |
JP2011065599A (ja) * | 2009-09-18 | 2011-03-31 | Toshiba Corp | メモリシステムおよびメモリシステムの制御方法 |
US8549385B2 (en) | 2009-12-15 | 2013-10-01 | Marvell World Trade Ltd. | Soft decoding for quantizied channel |
US9245653B2 (en) | 2010-03-15 | 2016-01-26 | Intelligent Intellectual Property Holdings 2 Llc | Reduced level cell mode for non-volatile memory |
US8498152B2 (en) | 2010-12-23 | 2013-07-30 | Sandisk Il Ltd. | Non-volatile memory and methods with soft-bit reads while reading hard bits with compensation for coupling |
KR102149770B1 (ko) | 2013-08-26 | 2020-08-31 | 삼성전자주식회사 | 메모리 컨트롤러 및 그것의 동작 방법 |
-
2009
- 2009-09-30 WO PCT/US2009/059081 patent/WO2010039869A1/en active Application Filing
- 2009-09-30 EP EP09793195.0A patent/EP2340538A1/en not_active Withdrawn
- 2009-09-30 CN CN2009801383272A patent/CN102171767A/zh active Pending
- 2009-09-30 CN CN200980143076.7A patent/CN102203876B/zh active Active
- 2009-09-30 WO PCT/US2009/059077 patent/WO2010039866A1/en active Application Filing
- 2009-09-30 TW TW098133227A patent/TWI562151B/zh not_active IP Right Cessation
- 2009-09-30 EP EP09793196A patent/EP2340539A1/en not_active Withdrawn
- 2009-09-30 EP EP09793198A patent/EP2340540A1/en not_active Withdrawn
- 2009-09-30 CN CN200980143074.8A patent/CN102203875B/zh active Active
- 2009-09-30 KR KR1020117009704A patent/KR20110061649A/ko not_active Application Discontinuation
- 2009-09-30 KR KR1020117009708A patent/KR20110061650A/ko not_active Application Discontinuation
- 2009-09-30 TW TW098133219A patent/TW201019327A/zh unknown
- 2009-09-30 EP EP09793200A patent/EP2340541A1/en not_active Withdrawn
- 2009-09-30 JP JP2011530195A patent/JP5535219B2/ja not_active Expired - Fee Related
- 2009-09-30 KR KR1020117009695A patent/KR101758192B1/ko active IP Right Grant
- 2009-09-30 JP JP2011530196A patent/JP5535220B2/ja not_active Expired - Fee Related
- 2009-09-30 WO PCT/US2009/059069 patent/WO2010039859A1/en active Application Filing
- 2009-09-30 JP JP2011530193A patent/JP2012504820A/ja active Pending
- 2009-09-30 CN CN200980143075.2A patent/CN102203877B/zh not_active Expired - Fee Related
- 2009-09-30 US US13/063,899 patent/US8892966B2/en not_active Expired - Fee Related
- 2009-09-30 TW TW098133247A patent/TWI581269B/zh not_active IP Right Cessation
- 2009-09-30 TW TW098133217A patent/TWI517162B/zh not_active IP Right Cessation
- 2009-09-30 JP JP2011530194A patent/JP5590620B2/ja not_active Expired - Fee Related
- 2009-09-30 US US13/063,888 patent/US8830748B2/en active Active
- 2009-09-30 US US13/063,895 patent/US9378835B2/en active Active
- 2009-09-30 WO PCT/US2009/059087 patent/WO2010039874A1/en active Application Filing
- 2009-09-30 US US13/063,874 patent/US9064594B2/en not_active Expired - Fee Related
-
2011
- 2011-03-24 IL IL211895A patent/IL211895A0/en unknown
- 2011-03-27 IL IL211955A patent/IL211955A0/en unknown
- 2011-03-27 IL IL211956A patent/IL211956A0/en unknown
- 2011-03-28 IL IL211969A patent/IL211969A0/en unknown
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20110124045A (ko) * | 2010-05-10 | 2011-11-16 | 삼성전자주식회사 | 데이터 저장 장치 및 그것의 프로그램 방법 |
Also Published As
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101758192B1 (ko) | 소프트 데이터 값 생성 방법 및 소프트 데이터 값 생성 시스템 | |
US10929221B2 (en) | Multi-tier detection and decoding in flash memories utilizing data from additional pages or wordlines | |
KR101628413B1 (ko) | 플래시 메모리 디바이스 내의 타겟 셀 판독 방법 및 시스템, 플래시 메모리 내의 방해를 특징화하는 방법 | |
US8775913B2 (en) | Methods and apparatus for computing soft data or log likelihood ratios for received values in communication or storage systems | |
US8429500B2 (en) | Methods and apparatus for computing a probability value of a received value in communication or storage systems | |
US9106264B2 (en) | Encoding and decoding in flash memories using convolutional-type low-density parity check codes | |
US8504885B2 (en) | Methods and apparatus for approximating a probability density function or distribution for a received value in communication or storage systems | |
US9082480B2 (en) | Detection and decoding in flash memories with error correlations for a plurality of bits within a sliding window | |
KR20110082016A (ko) | 소프트 데이터 값 생성 방법 및 소프트 데이터 값 생성 시스템 | |
Kim et al. | On the soft information extraction from hard-decision outputs in MLC NAND flash memory |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |