KR20140052691A - 회귀 분석법을 사용하는 메모리 시스템 및 그것의 읽기 방법 - Google Patents

회귀 분석법을 사용하는 메모리 시스템 및 그것의 읽기 방법 Download PDF

Info

Publication number
KR20140052691A
KR20140052691A KR1020120119106A KR20120119106A KR20140052691A KR 20140052691 A KR20140052691 A KR 20140052691A KR 1020120119106 A KR1020120119106 A KR 1020120119106A KR 20120119106 A KR20120119106 A KR 20120119106A KR 20140052691 A KR20140052691 A KR 20140052691A
Authority
KR
South Korea
Prior art keywords
read
voltage
data
probability density
density function
Prior art date
Application number
KR1020120119106A
Other languages
English (en)
Other versions
KR102038408B1 (ko
Inventor
김광훈
공준진
설창규
손홍락
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020120119106A priority Critical patent/KR102038408B1/ko
Priority to JP2013220910A priority patent/JP6345407B2/ja
Priority to US14/062,092 priority patent/US9111626B2/en
Priority to CN201310511873.4A priority patent/CN103778962B/zh
Priority to CN201910211592.4A priority patent/CN110085275B/zh
Publication of KR20140052691A publication Critical patent/KR20140052691A/ko
Priority to US14/811,222 priority patent/US9552887B2/en
Application granted granted Critical
Publication of KR102038408B1 publication Critical patent/KR102038408B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/26Sensing or reading circuits; Data output circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital 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/5621Digital 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/5642Sensing or reading circuits; Data output circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/04Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
    • G11C16/0483Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/3418Disturbance prevention or evaluation; Refreshing of disturbed memory data
    • G11C16/3422Circuits or methods to evaluate read or write disturbance in nonvolatile memory, without steps to mitigate the problem
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/349Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits

Landscapes

  • Engineering & Computer Science (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Computer Hardware Design (AREA)
  • Read Only Memory (AREA)

Abstract

본 발명에 따른 불휘발성 메모리 장치의 읽기 방법은, 서로 다른 읽기 전압들로 선택된 메모리 셀들을 독출하는 단계, 상기 서로 다른 읽기 전압들에 의해서 독출된 데이터를 참조하여 복수의 문턱 전압 대역들 각각에 대응하는 메모리 셀들의 수를 카운트하는 단계, 상기 카운트 결과를 참조하여 상기 선택된 메모리 셀들의 문턱 전압에 대한 확률 밀도 함수의 좌표값들을 결정하는 단계, 상기 좌표값들을 참조하여 상기 확률 밀도 함수의 계수를 구하는 단계, 및 상기 확률 밀도 함수의 기울기가 0인 좌표점의 문턱 전압을 상기 선택된 메모리 셀들의 읽기 전압으로 결정하는 단계를 포함한다.

Description

회귀 분석법을 사용하는 메모리 시스템 및 그것의 읽기 방법{SEMICONDUCTOR MEMORY SYSTEM USING REGRESSION ALALYSIS AND READ METHOD THEREOF}
본 발명은 반도체 메모리 장치에 관한 것으로, 좀 더 구체적으로는 고속으로 읽기 레벨을 결정할 수 있는 메모리 시스템 및 그것의 읽기 방법에 관한 것이다.
반도체 메모리 장치는 크게 휘발성 반도체 메모리 장치(Volatile semiconductor memory device)와 불휘발성 반도체 메모리 장치(Non-volatile semiconductor memory device)로 구분될 수 있다. 휘발성 반도체 메모리 장치는 읽고 쓰는 속도가 빠르지만 전원 공급이 끊기면 저장된 내용이 사라져 버리는 단점이 있다. 반면에 불휘발성 반도체 메모리 장치는 전원 공급이 중단되더라도 그 내용을 보존한다. 그러므로, 불휘발성 반도체 메모리 장치는 전원이 공급되었는지의 여부에 관계없이 보존되어야 할 내용을 저장하는데 쓰인다.
불휘발성 메모리 장치의 대표적인 예로 플래시 메모리 장치가 있다. 플래시 메모리 장치는 컴퓨터, 휴대폰, PDA, 디지털카메라, 캠코더, 보이스 리코더, MP3 플레이어, 개인용 휴대 단말기(PDA), 휴대용 컴퓨터(Handheld PC), 게임기, 팩스, 스캐너, 프린터 등(이하, '호스트'라 함)과 같은 정보기기들의 음성 및 영상 데이터 저장 매체로서 널리 사용되고 있다.
최근 들어 메모리 장치에 대한 고용량화 요구의 증가에 따라, 하나의 메모리 셀에 멀티 비트를 저장하는 멀티 레벨 셀(Multi-Level Cell: MLC) 또는 멀티-비트 메모리 장치들이 보편화되고 있다. 하지만, 멀티 레벨 셀(MLC)을 채용하는 메모리 장치에서 메모리 셀들의 문턱 전압은 제한된 전압 윈도 내에서 식별 가능한 4개 이상의 데이터 상태들에 포함되어야 한다. 그리고 데이터 신뢰성(Data Integrity)을 높이기 위해 데이터 상태들 각각을 식별하기 위한 읽기 전압의 레벨이 최적값으로 조정 가능해야 한다.
본 발명의 목적은 최적의 읽기 전압을 결정하기 위해 읽기 횟수의 증가없이 고신뢰도의 읽기 레벨을 결정하는 불휘발성 메모리 시스템 및 그것의 읽기 방법을 제공하는 데 있다.
상기 목적을 달성하기 위한 본 발명에 따른 불휘발성 메모리 장치의 읽기 방법은, 서로 다른 읽기 전압들로 선택된 메모리 셀들을 독출하는 단계, 상기 서로 다른 읽기 전압들에 의해서 독출된 데이터를 참조하여 복수의 문턱 전압 대역들 각각에 대응하는 메모리 셀들의 수를 카운트하는 단계, 상기 카운트 결과를 참조하여 상기 선택된 메모리 셀들의 문턱 전압에 대한 확률 밀도 함수의 좌표값들을 결정하는 단계, 상기 좌표값들을 참조하여 상기 확률 밀도 함수의 계수를 구하는 단계, 및 상기 확률 밀도 함수의 기울기가 0인 좌표점의 문턱 전압을 상기 선택된 메모리 셀들의 읽기 전압으로 결정하는 단계를 포함한다.
상기 목적을 달성하기 위한 본 발명에 따른 메모리 시스템은, 읽기 레벨 정보를 포함하는 읽기 명령에 응답하여 선택된 메모리 셀들로부터 데이터를 독출하는 불휘발성 메모리 장치, 그리고 상기 독출된 데이터를 참조하여 상기 메모리 셀들의 문턱 전압에 대한 확률 분포 함수를 구하고, 상기 확률 분포 함수의 도함수를 해석하여 상기 메모리 셀들의 읽기 전압을 결정하는 메모리 컨트롤러를 포함한다.
이상과 같은 본 발명의 실시 예에 따르면, 읽기 횟수의 증가 없이도 메모리 셀들의 데이터를 센싱할 수 있는 최적 레벨의 읽기 전압을 제공할 수 있다.
도 1은 본 발명의 일 실시 예에 따른 메모리 시스템을 보여주는 블록도이다.
도 2는 도 1의 불휘발성 메모리 장치의 구성을 보여주는 블록도이다.
도 3은 멀티 레벨 셀의 문턱 전압 산포의 일 예를 보여주는 그래프이다.
도 4는 3-비트 멀티 레벨 셀의 문턱 전압 산포를 보여주는 그래프이다.
도 5a 및 도 5b는 2차 함수로 모델링되는 산포골의 형태를 보여주는 그래프들이다.
도 5는 본 발명의 온도 제어 방법을 사용하는 반도체 장치의 온도 변화를 보여주는 그래프이다.
도 6a 및 도 6b는 3차 함수로 모델링되는 산포 곡선의 형태를 보여주는 그래프들이다.
도 7은 본 발명의 일 실시 예에 따른 메모리 시스템의 동작을 보여주는 도면이다.
도 8은 불휘발성 메모리 장치로부터 제공되는 데이터를 보여주는 도면이다.
도 9는 본 발명의 실시 예에 따른 읽기 레벨을 결정하는 방법을 간략히 보여주는 순서도이다.
도 10은 본 발명의 다른 실시 예에 따른 메모리 시스템의 읽기 방법을 보여주는 도면이다.
도 11은 도 10의 배타적 논리합 연산의 결과를 예시적으로 보여주는 도면이다.
도 12는 본 발명의 다른 실시 예에 따른 메모리 시스템을 보여주는 블록도이다.
도 13은 도 12에 도시된 불휘발성 메모리 장치의 구성을 예시적으로 보여주는 블록도이다.
도 14는 도 12의 메모리 시스템의 또 다른 읽기 방법을 보여주는 도면이다.
도 15는 본 발명의 또 다른 실시 예에 따른 메모리 시스템을 보여주는 블록도이다.
도 16은 본 발명의 다른 실시 예에 따른 읽기 방법을 보여주는 순서도이다.
도 17은 본 발명의 불휘발성 메모리 장치의 예시적인 형태를 보여주는 사시도이다.
도 18은 본 발명의 실시 예에 따른 솔리드 스테이트 디스크를 포함하는 사용자 장치를 보여주는 블록도이다.
도 19는 본 발명의 다른 실시 예에 따른 메모리 시스템을 예시적으로 보여주는 블록도이다.
도 20은 본 발명의 다른 실시 예에 따른 데이터 저장 장치를 예시적으로 보여주는 블록도이다.
도 21은 본 발명에 따른 플래시 메모리 장치 및 그것을 포함하는 컴퓨팅 시스템의 구성을 보여주는 도면이다.
앞의 일반적인 설명 및 다음의 상세한 설명 모두 예시적이라는 것이 이해되어야 하며, 청구된 발명의 부가적인 설명이 제공되는 것으로 여겨져야 한다. 참조 부호들이 본 발명의 바람직한 실시 예들에 상세히 표시되어 있으며, 그것의 예들이 참조 도면들에 표시되어 있다. 가능한 어떤 경우에도, 동일한 참조 번호들이 동일한 또는 유사한 부분을 참조하기 위해서 설명 및 도면들에 사용된다.
이하에서는, 플래시 메모리 장치를 사용하는 메모리 시스템이 본 발명의 특징 및 기능을 설명하기 위한 예로서 사용될 것이다. 하지만, 이 기술 분야에 정통한 사람은 여기에 기재된 내용에 따라 본 발명의 다른 이점들 및 성능을 쉽게 이해할 수 있을 것이다. 본 발명은 다른 실시 예들을 통해 또한, 구현되거나 적용될 수 있을 것이다. 게다가, 상세한 설명은 본 발명의 범위, 기술적 사상 그리고 다른 목적으로부터 상당히 벗어나지 않고 관점 및 응용에 따라 수정되거나 변경될 수 있다.
그리고 이하에서 사용하는 회귀 분석법(Regression Analysis)은 최소한의 표본을 사용하여 확률 밀도 함수(Probability Density Function: 이하, PDF)의 형태를 복원하는 기술을 의미한다. 본 발명에서는, 이러한 회귀 분석법이 특정 문턱 전압 대역에서 메모리 셀들의 분포를 예측하기 위한 방법으로 사용된다. 즉, 서로 다른 데이터 상태를 식별하기 위한 산포골(Distribution Valley)의 형태를 회귀 분석법을 적용하여 추정할 수 있다.
도 1은 본 발명의 실시 예에 따른 메모리 시스템을 보여주는 블록도이다. 도 1을 참조하면, 메모리 시스템(100)은 메모리 컨트롤러(110) 및 불휘발성 메모리 장치(120)를 포함할 수 있다. 메모리 컨트롤러(110)는 불휘발성 메모리 장치(120)로부터 제공되는 읽기 결과를 참조하여, 회귀 분석법(Regression Analysis)에 따라 확률 밀도 함수(PDF)의 정확한 산포골(Distribution Valley)의 형태를 추정할 수 있다. 메모리 컨트롤러(110)는 추정된 산포골의 형태를 참조하여 최적의 읽기 전압을 결정할 수 있다. 좀더 자세히 설명하면 다음과 같다.
메모리 컨트롤러(110)는 호스트(Host)의 요청에 응답하여 불휘발성 메모리 장치(120)를 제어한다. 메모리 컨트롤러(110)는 호스트(Host)로부터의 쓰기 요청에 응답하여 불휘발성 메모리 장치(120)에 쓰기 명령(Write CMD)이나 쓰기 데이터(Write data)를 제공한다. 메모리 컨트롤러(110)는 호스트(Host)로부터 읽기 요청이 전달되면 해당 위치의 데이터를 센싱 및 출력하도록 불휘발성 메모리 장치(120)를 제어할 것이다.
특히, 본 발명의 메모리 컨트롤러(110)는 단지 수 차례의 읽기 동작을 수행하는 것으로 메모리 셀들의 산포골에 대응하는 확률 밀도 함수(PDF)를 구할 수 있다. 즉, 4회 또는 5회 정도의 읽기 동작을 통해서 메모리 컨트롤러(110)는 메모리 셀들의 문턱 전압에 대한 확률 밀도 함수(PDF)를 구할 수 있다. 먼저, 수 차례의 읽기 동작을 통해서 메모리 컨트롤러(110)는 산포골에 대응하는 확률 밀도 함수(PDF)의 좌표점들을 획득한다. 획득된 좌표점들을 바탕으로 메모리 컨트롤러(110)는 산포골에 대응하는 확률 밀도 함수를 모델링할 수 있다. 그리고 메모리 컨트롤러(110)는 모델링된 확률 밀도 함수의 최소값 또는 극소값을 구하고, 구해진 최소값 또는 극소값에 대응하는 문턱 전압이 최적 읽기 전압으로 결정한다.
메모리 컨트롤러(110)는 산포골에 대응하는 확률 밀도 함수의 좌표점을 구하기 위한 비트 카운터(112)를 포함한다. 비트 카운터(112)는 읽기 전압(Rn)에 의해서 읽혀진 데이터(Dn)를 참조하여, 확률 밀도 함수(PDF)의 좌표점을 결정할 수 있다. 즉, 직각 좌표계에서 표현되는 확률 밀도 함수(PDF) 상의 하나의 좌표점은 제 1 좌표값과 제 2 좌표값을 포함한다. 그리고 메모리 컨트롤러(110)는 읽기 전압들(Ri, Ri+1)의 평균값(x)을 제 1 좌표값으로 결정하고, 읽기 전압들(Ri, Ri+1) 사이에 포함되는 메모리 셀들의 수(y)를 제 2 좌표값으로 나타낼 수 있다. 4회의 읽기 동작을 수행하면, 비트 카운터(112)에 의해서 확률 밀도 함수(PDF) 상의 의 3개의 좌표점들의 값이 구해질 수 있다.
산포골에 대응하는 확률 밀도 함수(PDF)가 2차 함수로 모델링되는 경우에는 3개 좌표점은 연립 방정식을 풀기에 충분한 대입값이 될 수 있다. 만일, 산포골에 대응하는 확률 밀도 함수(PDF)가 3차 함수로 모델링되는 경우, 확률 밀도 함수(PDF)의 계수를 구하기 위한 연립 방정식의 풀이에는 4개의 좌표점이 요구된다. 따라서, 확률 밀도 함수(PDF)의 형태를 결정하는 산포골의 예상되는 형태에 따라 읽기 횟수는 조정될 수 있다.
그리고 메모리 컨트롤러(110)는 회귀 분석기(114)를 포함한다. 회귀 분석기(114)는 복수의 좌표값을 이용하여 산포골의 확률 밀도 함수(PDF)를 구한다. 그리고 회귀 분석기(114)는 확률 밀도 함수(PDF)의 최소값이나 극값을 구한다. 회귀 분석기(114)는 확률 밀도 함수(PDF)의 최소값이나 극소값에 대응하는 전압 레벨을 최적의 읽기 레벨로 결정할 수 있다.
회귀 분석기(114)는 3개 또는 4개의 좌표값을 참조하여 메모리 셀들의 산포골에 대응하는 확률 밀도 함수(PDF)를 구하기 위한 연립 방정식을 풀 수 있다. 연립 방정식을 사용한 선형 확률 밀도 함수(PDF)의 모델링이 완료되면, 회귀 분석기(114)는 확률 밀도 함수의 최소값 또는 극값을 구할 수 있다. 확률 밀도 함수(PDF)가 2차 함수인 경우, 확률 밀도 함수의 기울기, 즉 확률 밀도 함수(PDF)의 미분값이 0인 문턱 전압이 확률 밀도 함수의 최소값에 대응하는 전압 레벨이 된다. 회귀 분석기(114)는 이 점을 읽기 레벨로 결정하게 될 것이다. 3차의 확률 밀도 함수의 경우, 회귀 분석기(114)는 미분한 확률 밀도 함수의 극소값에 대응하는 문턱 전압의 레벨을 읽기 레벨로 결정할 수 있다.
불휘발성 메모리 장치(120)는 하나 또는 그보다 많은 메모리 장치들로 구성될 수 있다. 불휘발성 메모리 장치(120)는 메모리 컨트롤러(110)의 명령에 응답하여 선택된 메모리 셀들을 지정된 읽기 전압(Rn)에 의거하여 독출할 수 있다. 또는 불휘발성 메모리 장치(120)는 메모리 컨트롤러(110)의 명령에 응답하여 선택된 메모리 셀들을 서로 다른 읽기 전압들(Ri, Ri+1)로 센싱할 수 있다. 그리고 불휘발성 메모리 장치(120)는 각각의 읽기 레벨로 센싱된 데이터를 동일한 열끼리의 배타적 논리합 연산(XOR)을 수행할 수 있다. 그리고 불휘발성 메모리 장치(120)는 배타적 논리합 연산의 결과를 메모리 컨트롤러(110)로 출력할 수 있다. 배타적 논리합(XOR)에서 논리 '1'의 수가 읽기 전압들(Ri, Ri+1) 사이의 문턱 전압을 갖는 메모리 셀들의 수에 대응할 것이다.
본 발명의 실시 예에 따르면, 불휘발성 메모리 장치(120)의 메모리 셀들에 대한 최적의 읽기 전압이 제공될 수 있다. 본 발명의 메모리 컨트롤러(110)는 회귀 분석법을 사용하여, 불휘발성 메모리 장치(120)에 대한 최소한의 액세스를 통해서도 최적의 읽기 레벨을 결정할 수 있다. 따라서, 읽기 전압을 결정하기 위한 소요 시간을 최소화할 수 있어 메모리 시스템의 성능을 높일 수 있다.
도 2는 도 1의 불휘발성 메모리 장치를 보여주는 블록도이다. 도 2를 참조하면, 불휘발성 메모리 장치(120)는 셀 어레이(121), 행 디코더(122), 페이지 버퍼(123), 입출력 버퍼(124), 제어 로직(125) 그리고 전압 발생기(126)를 포함한다.
셀 어레이(121)는 워드 라인들(WLs) 또는 선택 라인들(SSL, GSL)을 통해 행 디코더(122)에 연결된다. 셀 어레이(121)는 비트 라인들(BL0~BLm-1)을 통해서 페이지 버퍼(123)에 연결된다. 셀 어레이(121)는 낸드형으로 구성되는 복수의 셀 스트링들(NCS0~NCSm-1)을 포함한다. 복수의 셀 스트링들(NCS0~NCSm-1)은 하나의 메모리 블록(BLK)을 구성할 수 있다. 여기서, 셀 스트링들 각각의 채널은 수직 또는 수평 방향으로 형성될 수 있다.
프로그램 동작시 메모리 셀들은 워드 라인들(WLs) 또는 선택 라인들(SSL, GSL)의 제어에 따라 페이지 단위(예를 들면, 2KB) 또는 그보다 작은 단위(512B)로 선택될 수 있다. 읽기 동작시에도 메모리 셀들은 페이지 단위나 그보다 작은 단위로 선택될 수 있다. 다양한 원인에 의하여 읽기 시점에서의 메모리 셀들의 문턱 전압 산포는 프로그램 시점에서의 문턱 전압 산포와는 달라질 수 있다. 따라서, 데이터 신뢰성을 높이기 위해서 문턱 전압의 변화를 고려하여 읽기 전압의 레벨은 조정될 수 있다.
행 디코더(122)는 어드레스(ADD)에 응답하여 셀 어레이(121)의 메모리 블록들 중 어느 하나를 선택할 수 있다. 행 디코더(122)는 선택된 메모리 블록의 워드 라인들(WLs) 중 어느 하나를 선택할 수 있다. 행 디코더(122)는 선택된 워드 라인에 전압 발생기(126)로부터 제공된 읽기 전압(Ri)을 전달한다. 프로그램 동작시 행 디코더(122)는 선택 워드 라인(Selected WL)에 프로그램 전압(Vpgm)과 검증 전압(Vvfy)을, 비선택 워드 라인(Unselected WL)에는 패스 전압(Vpass)을 전달한다. 읽기 동작시, 행 디코더(122)는 선택 워드 라인(Selected WL)에 선택 읽기 전압(Vrd)을, 비선택 워드 라인(Unselected WL)에는 비선택 읽기 전압(Vread)을 전달한다.
페이지 버퍼(123)는 프로그램 동작시에는 기입 드라이버로 동작하고, 읽기 동작시에는 감지 증폭기로 동작한다. 프로그램 동작시, 페이지 버퍼(123)는 셀 어레이(121)의 비트 라인으로 프로그램될 데이터에 대응하는 비트 라인 전압을 전달한다. 읽기 동작시, 페이지 버퍼(123)는 선택된 메모리 셀에 저장된 데이터를 비트 라인을 통해서 감지한다. 페이지 버퍼(123)는 감지된 데이터를 래치하여 입출력 버퍼(124)에 전달한다.
입출력 버퍼(124)는 프로그램 동작시에 입력받은 쓰기 데이터를 페이지 버퍼(123)에 전달한다. 입출력 버퍼(124)는 읽기 동작시에 페이지 버퍼(123)로부터 제공되는 읽기 데이터를 외부로 출력한다. 입출력 버퍼(124)는 입력되는 어드레스(ADD) 또는 명령어(CMDi)를 제어 로직(125)이나 행 디코더(122)에 전달한다.
제어 로직(125)은 외부로부터 전달되는 명령어(CMDi)에 응답하여 페이지 버퍼(123)와 행 디코더(122)를 제어한다. 제어 로직(125)은 메모리 컨트롤러(110)로부터 제공되는 읽기 명령에 응답하여 선택된 메모리 셀들을 센싱하도록 전압 발생기(126) 및 페이지 버퍼(123)를 제어할 수 있다. 예를 들면, 제어 로직(125)은 메모리 컨트롤러(110)에서 지정하는 특정 읽기 전압(Ri)으로 선택된 메모리 셀들을 센싱하도록 페이지 버퍼(123) 및 전압 발생기(126)를 제어할 수 있다.
전압 발생기(126)는 제어 로직(125)의 제어에 따라 각각의 워드 라인들로 공급될 다양한 워드 라인 전압들과, 메모리 셀들이 형성된 벌크(예를 들면, 웰 영역)로 공급될 전압을 발생한다. 각각의 워드 라인들로 공급될 워드 라인 전압들로는 프로그램 전압(Vpgm), 패스 전압(Vpass), 선택 및 비선택 읽기 전압들(Vrd, Vread) 등이 있다. 전압 발생기(126)는 읽기 동작 및 프로그램 동작시에 선택 라인들(SSL, GSL)에 제공되는 선택 라인 전압(VSSL, VGSL)을 생성할 수 있다. 또한, 전압 발생기(126)는 제어 로직(125)의 제어에 따라 특정 읽기 전압(Ri)을 생성하여 행 디코더(122)에 제공할 수 있다.
이상의 본 발명의 불휘발성 메모리 장치(120)는 메모리 컨트롤러(110)로부터 지정되는 특정 읽기 전압(Rn)으로 선택된 메모리 셀들을 센싱하고 래치 및 출력할 수 있다. 이러한 동작을 통해서, 불휘발성 메모리 장치(120)는 메모리 컨트롤러(110)에서 수행되는 회귀 분석법에 의한 읽기 전압의 조정 동작을 지원할 수 있다.
도 3은 멀티 레벨 셀의 문턱 전압 산포의 일 예를 보여주는 그래프이다. 도 3을 참조하면, 2-비트 멀티 레벨 셀(이하, MLC)의 산포가 간략히 도시되어 있다. 여기서, 그래프의 세로축은 로그 스케일이 아님을 유의해야 한다.
2-비트 MLC의 문턱 전압 산포는 4개의 상태(State)들로 분류될 수 있다. 즉, 메모리 셀들은 소거 상태(E0)와 3개의 프로그램 상태들(P1, P2, P3) 중 어느 하나의 상태에 대응하는 문턱 전압을 갖는다. 하지만, 시간의 경과나 셀들 간의 간섭, 그 밖의 다양한 원인들로 인해서 2-비트 MLC의 문턱 전압은 변화할 수 있다. 이러한 변화에 의해서 메모리 셀들의 문턱 전압 상태들은 명확히 식별하기 어려울 정도로 중첩될 수 있다. 이런 경우, 읽기 전압의 레벨을 조정할 필요가 생긴다. 가장 비트 에러율(BER)이 작은 읽기 전압을 결정하는 것이 데이터 신뢰성의 주요 인자이다.
도시된 바와 같이 소거 상태(E0)와 3개의 프로그램 상태들(P1, P2, P3) 사이에는 서로 중첩되는 부분을 나타내는 산포골들(130, 140, 150)이 존재한다. 하지만, 산포골들(130, 140, 150) 각각에 대응하는 곡선에는 최소점이 존재할 수 있다. 만일, 읽기 전압이 상술한 최소점에 대응하는 문턱 전압으로 결정된다면, 읽기 동작시 가장 좋은 데이터 신뢰성을 제공할 수 있을 것이다. 산포골들(130, 140, 150)의 최소점을 검출하기 위한 방법으로 메모리 셀들을 동일한 전압 간격의 읽기 전압들로 읽어서 가장 분포 숫자가 적은 전압 대역의 찾는 방법이 있다. 하지만, 이런 검출 방법을 위해서는 과도하게 많은 읽기 동작이 요구된다. 반면, 본 발명의 회귀 분석법(Regression Analysis)에 따르면, 3개 또는 4개의 좌표점들을 검출하면 하나의 산포골(Distribution Valley)에 대응하는 확률 밀도 함수는 선형 함수로 모델링될 수 있다. 따라서, 산포골들(130, 140, 150) 중 어느 하나에 대응하는 최적 읽기 레벨을 결정하기 위해서는 4회 또는 5회의 읽기 동작만으로도 충분하다.
최소점을 찾기 위한 확률 밀도 함수의 모델링 방법에 있어서, 산포골(130)은 산포골들(140, 150)과는 다른 방식으로 접근할 수 있다. 산포골(130)의 함수 형태는 3차 함수에 가깝다. 하지만, 나머지 산포골들(140, 150)에 대응하는 함수 형태는 거의 2차 함수에 근사될 수 있다. 이런 산포골에 해당하는 함수들의 형태 차이는 각각의 상태들 간의 거리와 프로그램 동작에 소요되는 바이어스의 차이에 기인한다. 하지만, 모델링되는 함수의 차수는 상술한 설명에 국한되지 않으며, 다양한 차수의 함수들이 산포골의 최소점을 찾기 위한 함수로 모델링될 수 있다.
2-비트 MLC의 경우, 3개의 산포골들(130, 140, 150)에 대응하는 확률 밀도 함수를 모델링해야 할 것이다. 그리고 모델링된 산포골들(130, 140, 150) 각각에 대응하는 확률 밀도 함수의 최소값에 대응하는 문턱 전압을 읽기 전압으로 선택하게 될 것이다.
도 4는 3-비트 멀티 레벨 셀의 문턱 전압 산포를 보여주는 그래프이다. 도 4를 참조하면, 3-비트 MLC의 산포가 간략히 도시되어 있다.
3-비트 MLC의 문턱 전압 산포에는 8개의 상태들(States)이 포함된다. 즉, 3-비트 MLC는 소거 상태(E0)와 7개의 프로그램 상태들(P1, P2, P3, P4, P5, P6, P7) 중 어느 하나에 대응하는 문턱 전압을 갖게 된다. 2-비트 MLC와 마찬가지로 3-비트 MLC도 시간의 경과나 셀들 간의 간섭, 그 밖의 다양한 요인들로 인해서 문턱 전압이 변화될 수 있다. 이러한 변화에 의해서 메모리 셀들의 문턱 전압 상태들은 명확하게 식별하기 어려울 정도로 중첩될 수 있다.
소거 상태(E0)와 7개의 프로그램 상태들(P1, P2, P3, P4, P5, P6, P7) 사이에는 서로 중첩되는 부분을 나타내는 산포골들(160, 170)이 존재한다. 산포골(160)은 소거 상태와 프로그램 상태(P1) 사이의 문턱 전압을 갖는 메모리 셀들의 분포 형태를 나타낸다. 반면, 산포골들(170)은 프로그램 상태들(P1, P2, P3, P4, P5, P6, P7) 사이에 대응하는 메모리 셀들의 문턱 전압 분포 형태를 나타낸다.
산포골(160)에 대한 모델링은 산포골들(170)과는 다른 방식으로 접근할 수 있다. 산포골(160)의 함수 형태는 3차 함수에 근사될 수 있다. 하지만, 나머지 산포골들(170)에 대응하는 함수 형태는 거의 2차 함수에 근사될 수 있다. 하지만, 산포골들(160, 170) 각각의 모델링에 적용하는 함수의 차수는 여기에 국한되지 않으며, 다양하게 변경 가능하다.
도 5a 및 도 5b는 2차 함수로 모델링되는 산포골의 형태를 보여주는 그래프들이다. 도 5a는 산포골(140)에 대응하는 확률 밀도 함수 곡선에서 검출하기 위한 좌표점들을 보여주고, 도 5b는 확률 밀도 함수 곡선에서의 좌표점을 구하기 위한 읽기 방법을 보여주는 그래프이다.
도 5a를 참조하면, 산포골(140)에 대응하는 확률 밀도 함수에 대응하는 곡선은 포물선(C1)으로 모델링될 수 있다. 포물선(C1)에 대응하는 2차 함수의 경우, 최소점을 중심으로 좌우 대칭이다. 그리고 최소점은 확률 밀도 함수의 기울기가 0인 좌표점에 대응한다. 즉, 포물선(C1)의 최소점을 구하기 위해서는 포물선에 대응하는 확률 밀도 함수를 구하기 위한 연산이 필요하다. 포물선에 대응하는 2차 확률 밀도 함수를 구하기 위해서는 좌표점들(CP1, CP2, CP3)의 좌표값을 대입하여 계수들을 구하는 2차 함수의 연립방정식을 풀어야 함을 의미한다.
여기서, 좌표점들(CP1, CP2, CP3)의 좌표값을 구하기 위해서는 읽기 전압들(Rn, n은 0 이상의 정수)을 이용하여 메모리 셀들에 대한 센싱이 수행되어야 한다. 그리고, 센싱된 데이터를 참조하여 특정 문턱 전압(xj, j는 자연수)에 대응하는 메모리 셀들의 수(yj)가 좌표값으로 결정될 수 있다. 2차 함수의 계수들은 결정된 좌표값들을 대입하는 연립 방정식을 통해서 구할 수 있다. 좌표점들은 도시된 바와 같이 CP1(x1, y1), CP2(x2, y2), CP3(x3, y3)에 해당한다. 2차 연립 방정식의 계수를 구하기 위해서는 적어도 3개의 좌표점들(CP1, CP2, CP3)이 제공되어야 한다. 이것은 최소한 4회의 읽기 동작이 동반됨을 의미한다. 여기서, 3개의 좌표점들(CP1, CP2, CP3)의 위치는 포물선(C1) 위의 임의의 점이면 무관하다.
산포골(140)에 대응하는 포물선을 2차 함수(y = a0 + a1x + a2x2)로 가정하자. 그러면, 2차 함수의 계수들(a0, a1, a2)을 구하기 위한 연립 방정식은 아래의 수학식 1의 형태로 나타낼 수 있다.
Figure pat00001
여기서, ε1, ε2, ε3는 좌표점들 각각에 대응하는 DC 옵셋이나 에러로 간주할 수 있다. 하지만, 최소값을 찾기 위한 함수의 미분에 의하여 소거될 항들이다.
수학식 1을 차수에 관계없이 벡터 다항식으로 일반화하여 표현하면 수학식 2로 나타낼 수 있다.
Figure pat00002
상술한 수학식 2의 일반해는 아래 수학식 3으로 나타낼 수 있다.
Figure pat00003
3개의 좌표점들(CP1, CP2, CP3) 각각의 좌표값을 대입하여 상술한 수학식 1을 풀면, 수학식 3에 대응하는 2차 함수의 계수들(a0, a1, a2)이 구해질 수 있다. 그 이후에 계수들(a0, a1, a2)을 갖는 2차 함수를 미분한 값을 0으로 맵핑하는 근(xopt)은 아래 수학식 4로 나타낼 수 있다.
Figure pat00004
이상에서는 산포골(140)에 대응하는 확률 밀도 함수가 2차 함수로 모델링될 수 있음이 설명되었다. 그리고 3개의 좌표값을 2차 함수에 대입하여 확률 밀도 함수를 구할 수 있었다. 더불어, 구해진 2차 함수의 최소값에 대응하는 문턱 전압을 최적의 읽기 전압으로 결정할 수 있는 회귀 분석법(Regression analysis)이 설명되었다.
이러한 회귀 분석법을 적용하기 위해 필요한 데이터가 모델링된 확률 밀도 함수 곡선상의 3개의 좌표값을 구하는 것이다. 좌표점들 CP1(x1, y1), CP2(x2, y2), CP3(x3, y3) 각각을 구하는 방법은 후술하는 도 5b의 그래프를 통해서 좀더 구체적으로 설명하기로 한다.
도 5b는 좌표점들의 좌표값을 구하기 위한 방법을 간략히 설명하는 그래프이다. 도 5b를 참조하면, 산포골(140)에 대응하는 2차 함수를 구하기 위해 3개의 좌표값들이 획득되어야 하며, 이를 위해서는 적어도 4회의 읽기 동작이 필요하다. 각각의 읽기 동작에서 제공되는 읽기 전압(Ri, i는 0≤i≤3의 정수)은 달라진다.
좌표점 CP1(x1, y1)을 구하기 위해서는 읽기 전압들(R0, R1) 각각에 의한 읽기 동작이 수행되어야 한다. 읽기 전압(R0)에 의해서 선택된 메모리 셀들이 읽혀지고, 읽혀진 데이터는 이진 논리값으로 저장될 것이다. 예를 들면, 문턱 전압이 읽기 전압(R0)보다 낮은 메모리 셀로부터 읽혀진 데이터는 논리 '1'로 래치될 것이다. 반면, 문턱 전압이 읽기 전압(R0)보다 높은 메모리 셀들로부터 읽혀진 데이터는 논리 '0'으로 래치될 것이다. 선택된 메모리 셀들 중에서 문턱 전압이 읽기 전압(R0)보다 높고, 읽기 전압(R1)보다 낮은 메모리 셀들은 읽기 전압(R0)에 의해서 오프셀(Off cell)로, 읽기 전압(R1)에 의해서 온셀(On cell)로 센싱될 것이다. 따라서, 읽기 전압(R0)에 의하여 독출된 데이터(D0)와 읽기 전압(R1)에 의하여 독출된 데이터(D1)에 대한 동일 열끼리 배타적 논리합(XOR)을 수행하면, 전압 대역(ΔV1)에 대응하는 메모리 셀들의 수를 구할 수 있다.
문턱 전압이 전압 대역(ΔV1)에 위치하는 메모리 셀들의 수는 비트 카운터(112, 도 1 참조)에 의해서 상술한 방식으로 카운트 될 수 있다. 이때, 좌표점 CP1의 좌표값(x1)은 읽기 전압들(R0, R1)의 중간값(Median)으로 맵핑할 수 있다. 즉, 좌표값(x1)은 (R0+R1)/2로 맵핑할 수 있다. 그리고 좌표점 CP1의 좌표값(y1)은 문턱 전압이 전압 대역(ΔV1)에 분포하는 메모리 셀들의 수에 맵핑할 수 있다.
좌표점 CP2(x2, y2)을 구하기 위해서는 읽기 전압들(R1, R2) 각각에 의한 읽기 동작이 필요하다. 읽기 전압(R1)에 의하여 독출된 데이터(D1)와 읽기 전압(R2)에 의하여 독출된 데이터(D2)에 대한 배타적 논리합(XOR)을 수행하면, 문턱 전압이 전압 대역(ΔV2)에 분포하는 메모리 셀들의 수를 구할 수 있다. 이렇게 구해진 전압 대역(ΔV2)에 대응하는 메모리 셀들의 수는 좌표값(y2)으로 맵핑될 수 있다. 그리고 좌표점 CP2의 좌표값(x2)은 읽기 전압들(R1, R2)의 중간값(또는, 평균값)으로 맵핑할 수 있다. 즉, 좌표값(x2)은 (R1+R2)/2로 설정할 수 있다.
좌표점 CP3(x3, y3)을 구하기 위해서는 읽기 전압들(R2, R3) 각각에 의한 읽기 동작이 선행되어야 한다. 읽기 전압(R2)에 의하여 독출된 데이터(D2)와 읽기 전압(R3)에 의하여 독출된 데이터(D3)에 대한 배타적 논리합(XOR)을 수행하면, 문턱 전압이 전압 대역(ΔV3)에 분포하는 메모리 셀들의 수를 구할 수 있다. 이렇게 구해진 전압 대역(ΔV3)에 대응하는 메모리 셀들의 수는 좌표값(y3)으로 맵핑될 수 있다. 그리고 좌표점 CP3의 좌표값(x3)은 읽기 전압들(R2, R3)의 중간값(또는, 평균값)으로 맵핑할 수 있다. 즉, 좌표값(x3)은 (R2+R3)/2로 설정할 수 있다.
여기서, 읽기 전압들(R0, R1, R2, R3) 각각에 대한 간격에 대응하는 전압 대역들(ΔV1, ΔV2, ΔV3)은 동일한 값으로 제공될 수도 있고, 서로 다른 값으로 설정될 수도 있다. 전압 대역들(ΔV1, ΔV2, ΔV3)의 크기가 동일하게 제공될 때에는 읽기 전압(R0)으로부터 일정 전압 간격으로 순차적으로 증가하는 읽기 전압들로 제공될 수 있다. 따라서, 읽기 전압의 생성이 용이함을 의미한다. 만일, 하나의 읽기 전압(R0)만을 참조하여 읽기 전압들(R1, R2, R3)을 생성하는 경우, 증가분들(ΔV1, ΔV2, ΔV3)을 동일한 값으로 설정하면 된다.
이상에서, 산포골(140)에 대응하는 확률 밀도 함수를 2차 함수로 모델링하기 위한 3개의 좌표값을 구하는 과정이 설명되었다. 좌표값들이 구해지면, 이후에는 연립 다항식을 구성하고, 연립 다항식에 좌표값들을 대입하여 확률 밀도 함수의 계수를 구할 수 있다. 그리고, 확률 밀도 함수에 대한 최소값에 대응하는 문턱 전압이 최적 읽기 전압으로 결정될 수 있다.
도 6a 및 도 6b는 3차 함수로 모델링되는 확률 밀도 함수의 산포골 형태를 보여주는 그래프들이다. 도 3a는 산포골(130)에서 곡선(C2)상의 좌표점들을 보여주고, 도 6b는 곡선(C2) 상의 좌표값을 구하기 위한 읽기 방법을 보여주는 그래프이다.
도 6a를 참조하면, 문턱 전압에 대한 메모리 셀들의 확률 밀도 함수의 산포골(130)은 곡선(C2)과 같은 3차 함수로 모델링될 수 있다. 곡선(C2)에 대응하는 함수의 경우, 변곡점(Inflection point)이 존재하는 3차 함수의 형태로 도시될 수 있다. 소거 상태(E0)에 포함되는 메모리 셀들이 넓은 전압 범위에 분포한다. 반면, 프로그램 상태(P1)에 포함되는 메모리 셀들은 상대적으로 ISPP(Incremental Step Pulse Programming)와 같은 프로그램 방식에 따라 좀더 좁은 전압 범위로 관리된다. 이러한 관리 방식에 따라, 소거 상태(E0)와 프로그램 상태(P1) 사이의 산포골(130)은 3차 곡선으로 모델링될 수 있다.
산포골에 대응하는 곡선(C2)의 최소점을 구하기 위해서는 3차 연립방정식을 풀어야 한다. 산포골에 대응하는 곡선(C2)에 대응하는 3차 함수의 계수들을 구하기 위해서는 적어도 4개의 좌표점들(CP1, CP2, CP3, CP4) 각각의 좌표값들이 필요하다. 4개의 좌표점들(CP1, CP2, CP3, CP4)은 서로 다른 좌표점들이기만 하면 4차 연립 방정식의 해를 구하는 데에는 문제가 없다.
좌표점들은 도시된 바와 같이 CP1(x1, y1), CP2(x2, y2), CP3(x3, y3), CP4(x4, y4)에 해당한다. 3차 함수(y = a0 + a1x + a2x2 + a3x3)의 계수를 구하기 위한 연립방정식은 아래의 수학식 5로 나타낼 수 있다.
Figure pat00005
여기서, ε1, ε2, ε3, ε4는 좌표점들 각각에 대응하는 DC 옵셋이나 에러로 간주할 수 있다. 하지만, 최소값을 찾기 위한 함수의 미분에 의하여 소거될 항들이다.
수학식 5에 각각 좌표값들을 대입하여 연립 방정식을 풀면 산포골(130)에 대응하는 곡선(C2)의 3차 함수의 계수들(a0, a1, a2, a3)이 구해질 수 있다. 그 이후에 계수들(a0, a1, a2, a3)을 갖는 3차 함수를 미분한 값이 0이 되는 근(xopt)은 아래 수학식 6으로 나타낼 수 있다.
Figure pat00006
여기서, 계수 a3가 양수인 경우, 삼차 함수의 미분값이 0이 되는 해는 2개의 실근으로 나타날 수 있다. 2개의 실근 중에서 극소점(Relative minimum point)에 대응하는 값이 구하고자 하는 값이다. 따라서, 수학식 6에서 두 개의 실근 중에서 큰 값이 최적 읽기 전압(xopt)이 될 것이다. 계수 a3가 음수인 경우, 2개의 실근 중에서 작은 값이 최적 읽기 전압(xopt)이 될 것이다. 이 경우 아래 수학식 7로 최적 읽기 전압(xopt)이 표현될 수 있다.
Figure pat00007
도 6b는 도 6a의 곡선(C2)에서의 좌표점들을 구하기 위한 방법을 간략히 설명하는 그래프이다. 도 6b를 참조하면, 곡선(C2)을 3차 함수로 회귀 분석하기 위해 적어도 4개의 좌표점이 획득되어야 한다. 즉, 3차 함수로 회귀 분석을 하기 위해서 메모리 셀들에 대한 적어도 5회의 읽기 동작이 선행되어야 한다. 각각의 읽기 동작에서 제공되는 읽기 전압(Ri, i는 0≤i≤4의 정수)은 다르다.
좌표점 CP1(x1, y1)을 구하기 위해서는 읽기 전압들(R0, R1) 각각에 의한 읽기 동작이 수행되어야 한다. 읽기 전압(R0)에 의해서 데이터(D0)가 선택된 메모리 셀들로부터 센싱될 것이다. 그리고 읽기 전압(R1)에 의해서 데이터(D1)가 선택된 메모리 셀들로부터 센싱될 것이다. 데이터(D0)와 데이터(D1)의 배타적 논리합 연산을 수행하여 논리 '1'의 수를 카운트하면, 읽기 전압들(R0, R1) 사이(즉, 전압 대역 ΔV1)에 대응하는 메모리 셀들의 수가 구해진다. 이때, 좌표점 CP1의 좌표값(x1)은 읽기 전압들(R0, R1)의 중간값(Median)으로 맵핑할 수 있다. 즉, 좌표값(x1)은 (R0+R1)/2로 맵핑할 수 있다. 그리고, 좌표점 CP1의 좌표값(y1)은 전압 대역(ΔV1)에 문턱 전압이 분포하는 메모리 셀들의 수에 맵핑될 수 있다.
좌표점 CP2(x2, y2)을 구하기 위해서는 읽기 전압들(R1, R2) 각각에 의한 읽기 동작이 수행되어야 한다. 읽기 전압(R1)에 의하여 독출된 데이터(D1)와 읽기 전압(R2)에 의하여 독출된 데이터(D2)에 대한 배타적 논리합(XOR)을 수행하면, 문턱 전압이 전압 대역(ΔV2)에 분포하는 메모리 셀들의 수를 구할 수 있다. 이렇게 구해진 전압 대역(ΔV2)에 대응하는 메모리 셀들의 수는 좌표값(y2)으로 맵핑될 수 있다. 그리고 좌표점 CP2의 좌표값(x2)은 읽기 전압들(R1, R2)의 중간값(Median)으로 맵핑할 수 있다. 즉, 좌표값(x2)은 (R1+R2)/2로 설정할 수 있다.
좌표점 CP3(x3, y3)을 구하기 위해서는 읽기 전압들(R2, R3) 각각에 의한 읽기 동작이 수행되어야 한다. 읽기 전압(R2)에 의하여 독출된 데이터(D2)와 읽기 전압(R3)에 의하여 독출된 데이터(D3)에 대한 배타적 논리합(XOR)을 수행하면, 문턱 전압이 전압 대역(ΔV3)에 분포하는 메모리 셀들의 수를 구할 수 있다. 이렇게 구해진 전압 대역(ΔV3)에 대응하는 메모리 셀들의 수는 좌표값(y3)으로 맵핑될 수 있다. 그리고 좌표점 CP3의 좌표값(x3)은 읽기 전압들(R2, R3)의 중간값(Median)으로 맵핑할 수 있다. 즉, 좌표값(x3)은 (R2+R3)/2로 설정할 수 있다.
좌표점 CP4(x4, y4)을 구하기 위해서는 읽기 전압들(R3, R4) 각각에 의한 읽기 동작이 수행되어야 한다. 읽기 전압(R3)에 의하여 독출된 데이터(D3)와 읽기 전압(R4)에 의하여 독출된 데이터(D4)에 대한 배타적 논리합(XOR)을 수행하면, 문턱 전압이 전압 대역(ΔV4)에 분포하는 메모리 셀들의 수를 구할 수 있다. 이렇게 구해진 전압 대역(ΔV4)에 대응하는 메모리 셀들의 수는 좌표값(y4)으로 맵핑될 수 있다. 그리고 좌표점 CP4의 좌표값(x4)은 읽기 전압들(R3, R4)의 중간값(Median)으로 맵핑할 수 있다. 즉, 좌표값(x4)은 (R3+R4)/2로 설정할 수 있다.
여기서, 읽기 전압들(R0, R1, R2, R3, R4) 각각에 대한 증가분들(ΔV1, ΔV2, ΔV3, ΔV4)은 동일한 값으로 제공될 수도 있고, 서로 다른 값으로 설정될 수도 있다. 다만, 동일하게 제공될 때에는 읽기 전압(R0)에 대해서 일정 전압만큼 순차적으로 증가하는 전압들로 생성할 수 있다. 만일, 하나의 읽기 전압(R0)만을 참조하여 읽기 전압들(R1, R2, R3, R4)을 생성하는 경우, 증가분들(ΔV1, ΔV2, ΔV3, ΔV4)을 동일한 값으로 설정하면 된다.
이상에서, 산포골에 대응하는 확률 밀도 함수가 3차 함수에 대응하는 곡선(C2)으로 모델링되고, 회귀 분석법을 적용하기 위한 좌표값들(CP1, CP2, CP3, CP4)을 구하는 과정이 설명되었다. 좌표값들이 구해지면, 이후에는 회귀 분석법을 적용하여 3차 함수의 극소값에 대응하는 전압을 최적 읽기 전압으로 결정할 수 있다.
도 7은 본 발명의 일 실시 예에 따른 메모리 시스템의 동작을 보여주는 도면이다. 도 7을 참조하면, 메모리 컨트롤러(110)와 불휘발성 메모리 장치(120)는 좌표값을 구하기 위한 읽기 전압들 각각에 대응하는 읽기 명령과 데이터를 교환한다.
메모리 컨트롤러(110)는 산포골에 대응하는 확률 밀도 함수의 좌표점을 구하기 위한 읽기 명령을 불휘발성 메모리 장치(120)에 전달한다. 이때, 메모리 컨트롤러(110)는 회귀 분석법을 적용하기 위해서 선택된 메모리 셀들에 대해서 읽기 전압(R0)으로 읽도록 명령어를 제공할 수 있다. 그러면, 불휘발성 메모리 장치(120)는 읽기 전압(R0)을 생성하여 선택된 메모리 셀들을 센싱할 것이다. 그리고 불휘발성 메모리 장치(120)는 읽기 전압(R0)에 의해서 센싱된 데이터(D0)를 메모리 컨트롤러(110)로 출력하게 될 것이다.
이어서, 메모리 컨트롤러(110)는 선택된 메모리 셀들을 읽기 전압(R0)보다 높은 읽기 전압(R1)으로 읽도록 읽기 명령어를 제공한다. 읽기 명령어에 응답하여 불휘발성 메모리 장치(120)는 읽기 전압(R1)에 대응하는 전압을 생성하여 선택된 메모리 셀들을 센싱한다. 그리고 불휘발성 메모리 장치(120)는 읽기 전압(R1)에 의해서 센싱 및 래치된 데이터(D1)를 메모리 컨트롤러(110)에 출력한다.
이러한 방식으로 메모리 컨트롤러(110)는 불휘발성 메모리 장치(120)로부터 선택된 메모리 셀들에 대한 읽기 전압들(R0~Rn-1) 각각에 의해서 읽혀진 데이터(D0~Dn-1)를 제공받는다. 좌표점의 구하기 위한 읽기 동작이 완료되면, 메모리 컨트롤러(110)는 산포골에 대응하는 확률 밀도 함수(PDF)를 구하고, 확률 밀도 함수의 최소 또는 극소값을 구하는 연산 절차를 수행한다. 그리고 최소값에 대응하는 문턱 전압의 레벨을 두 개의 상태들을 식별하기 위한 읽기 전압으로 결정하게 될 것이다. 이러한 절차는 단계 S10으로 도시되어 있다.
도 8은 불휘발성 메모리 장치로부터 제공되는 데이터를 보여주는 도면이다. 도 8을 참조하면, 선택된 메모리 셀들에 대한 읽기 전압들(R0~Rn-1) 각각에 의해서 독출되는 데이터(D0~D3)가 예시적으로 도시되어 있다.
불휘발성 메모리 장치(120)는 메모리 컨트롤러(110)의 명령에 응답하여 읽기 전압(R0)에 의해서 독출된 데이터(D0)를 출력할 수 있다. 그리고 불휘발성 메모리 장치(120)는 메모리 컨트롤러(110)의 명령에 응답하여 읽기 전압(R1)에 의해서 독출된 데이터(D1)를 출력할 수 있다. 마찬가지로, 불휘발성 메모리 장치(120)는 메모리 컨트롤러(110)의 명령에 따라 읽기 전압(R2)에 의해서 읽혀진 데이터(D2)와 읽기 전압(R3)에 의해서 읽혀진 데이터(D3)를 출력할 수 있다.
서로 다른 읽기 전압에 의해서 읽혀진 데이터들(D0, D1, D2, D3)이 출력되면, 메모리 컨트롤러(110)의 비트 카운터(112)에 의해서 배타적 논리합(XOR) 연산이 수행된다. 데이터들 간의 배타적 논리합 연산은 동일한 열들끼리만 적용된다. 비트 카운터(112)는 데이터(D0)와 데이터(D1)에 대한 배타적 논리합 연산의 결과에 포함된 논리 '1'의 수를 카운트하여 좌표값(y1)으로 결정한다. 그리고 읽기 전압들(R0, R1)의 중간값(또는 평균값)을 좌표값(x1)으로 결정할 것이다.
상술한 방식으로 데이터(D1, D2)의 배타적 논리합 연산을 통해서 좌표값(x2, y2)을 구할 수 있다. 마찬가지로, 데이터(D2, D3)의 배타적 논리합 연산을 통해서 좌표값(x3, y3)을 구할 수 있다. 3개의 좌표점들의 좌표값이 결정되면, 2차 함수로 모델링되는 산포골 함수의 회귀 분석법을 적용하기 위한 제반 정보는 확보된 것이다.
도 9는 본 발명의 실시 예에 따른 읽기 레벨을 결정하는 방법을 간략히 보여주는 순서도이다. 도 1 및 9를 참조하여, 산포골을 확률 밀도 함수(PDF)로 모델링하고, 모델링된 확률 밀도 함수로부터 최적 읽기 전압을 결정하는 절차가 설명될 것이다.
S110 단계에서, 메모리 컨트롤러(110)는 불휘발성 메모리 장치(120)에 복수의 읽기 전압들(R0~Rn-1)의 레벨 정보를 포함하는 읽기 명령어를 제공한다. 불휘발성 메모리 장치(120)는 읽기 전압들(R0~Rn-1) 각각에 의해서 읽혀진 데이터(D0~Dn-1)를 메모리 컨트롤러(110)에 전달할 것이다.
S120 단계에서, 메모리 컨트롤러(110)는 전달된 데이터(D0~Dn-1)를 참조하여 좌표값을 계산한다. 예를 들면, 메모리 컨트롤러(110)는 각각의 읽기 전압들 사이에 대응하는 문턱 전압을 가지는 메모리 셀들의 수를 카운트한다. 메모리 컨트롤러(110)는 카운트 결과에 기초하여 적어도 3개의 좌표점들의 좌표값을 결정한다.
S130 단계에서, 메모리 컨트롤러(110)의 회귀 분석기(114)는 좌표값을 참조하여 산포골에 대응하는 확률 밀도 함수를 구한다. 즉, 회귀 분석기(114)는 좌표값을 참조하여 확률 밀도 함수의 계수들을 구할 것이다. 확률 밀도 함수를 구하기 위해서 회귀 분석기(114)는 2차 연립 방정식이나 3차 연립 방정식을 사용할 수 있다.
S140 단계에서, 회귀 분석기(114)는 확률 밀도 함수에서 최소값 또는 극소값에 대응하는 문턱 전압 레벨을 구한다. 예를 들면, 2차 함수로 모델링되는 확률 밀도 함수의 경우, 하나의 최소값에 대응하는 문턱 전압 레벨을 구함으로써 최적 읽기 전압(Vopt)을 결정하게 될 것이다. 반면, 3차 함수로 모델링되는 경우, 확률 밀도 함수(PDF)의 미분값을 0으로 만드는 실근은 최대 2개가 존재할 수 있다. 즉, 두 개의 실근 중에서 하나는 극대값에 대응하고, 나머지 하나는 극소값에 대응한다.
S150 단계에서, 메모리 컨트롤러(110)는 산포골에 대응하는 확률 분포 함수(PDF)의 미분값이 0이 되는 문턱 전압들 중 어느 하나를 최적 읽기 전압으로 선택한다. 2차 함수로 모델링된 확률 밀도 함수(PDF)의 경우, 그것의 미분값을 0으로 하는 근은 하나만 존재할 것이다. 반면, 3차 함수로 모델링된 확률 밀도 함수의 경우, 최대 2개의 실근이 존재할 수 있다. 하지만, 소거 상태(E0)와 프로그램 상태(P1) 사이의 산포골의 형태는 3차 함수의 극소값(a3 > 0 일 때) 주변의 곡선 형태와 유사하다. 따라서, 2개의 실근 중에서 극소점에 대응하는 하나를 최적 읽기 전압으로 선택되는 것이 타당하다. 따라서, 두 개의 실근들 중에서 크기가 더 큰 어느 하나가 최적 읽기 전압(Vopt)으로 선택될 수 있다.
이상에서는 불휘발성 메모리 장치(120)의 읽기 전압을 조정하기 위해 사용되는 회귀 분석법이 간략히 설명되었다. 회귀 분석을 수행하기 위하여 필요한 것이 모델링되는 확률 밀도 함수(PDF)의 좌표값을 구하는 것이다. 2차 함수로 확률 밀도 함수(PDF)를 모델링하는 경우, 적어도 3개의 좌표값들이 필요하다. 따라서, 3개의 좌표값을 얻기 위해서는 서로 다른 읽기 전압들을 적용하는 적어도 4회의 읽기 동작이 수반된다. 3차 함수로 확률 밀도 함수(PDF)를 모델링하는 경우, 적어도 4개의 좌표값들이 필요하다. 따라서, 4개의 좌표값을 얻기 위해서는 서로 다른 읽기 전압들을 적용하는 적어도 5회의 읽기 동작이 수반될 것이다.
이러한 회귀 분석법에 따르면, 최소한의 읽기 동작을 통해서 산포골에 대응하는 확률 밀도 함수(PDF)를 모델링할 수 있다. 그리고 모델링된 확률 밀도 함수의 최소값 또는 극소값에 대응하는 문턱 전압을 메모리 셀들의 읽기 전압으로 결정할 수 있다. 이러한 방식의 읽기 전압 조정은 최소한의 읽기 동작을 필요로 하기 때문에 퍼포먼스 향상을 가능케 한다. 더불어, 산포골에 가장 근사되는 형태의 확률 밀도 함수(PDF)로 모델링이 가능하기 때문에 높은 정확도를 갖는 최소점 검출이 가능하다. 따라서, 본 발명의 회귀 분석법을 통해서 조정된 읽기 전압을 사용하는 경우, 높은 데이터 신뢰성(Data Integrity)이 기대된다.
도 10은 본 발명의 다른 실시 예에 따른 메모리 시스템의 읽기 방법을 보여주는 도면이다. 도 10을 참조하면, 메모리 컨트롤러(110, 도 1 참조)의 읽기 명령에 응답하여 불휘발성 메모리 장치(120, 도 1 참조)는 센싱된 데이터들에 대한 배타적 논리합(XOR) 연산을 수행하여 출력할 수 있다.
회귀 분석을 적용하기 위하여, 메모리 컨트롤러(110)는 불휘발성 메모리 장치(120)에 읽기 레벨 정보를 포함하는 읽기 명령을 전달한다. 특히, 메모리 컨트롤러(110)는 하나의 읽기 전압에 대응하는 데이터를 요구하는 것이 아니라, 복수의 읽기 전압 정보를 읽기 명령 단계에서 불휘발성 메모리 장치(120)에 전달할 수 있다. 즉, 메모리 컨트롤러(110)는 읽기 명령 단계에서 복수의 읽기 전압들(R0, R1, R2, …, Rn)을 지정할 수 있다.
메모리 컨트롤러(110)의 읽기 명령에 응답하여 불휘발성 메모리 장치(120)는 순차적으로 선택된 메모리 셀들을 센싱할 것이다. 불휘발성 메모리 장치(120)는 읽기 전압(R0)을 선택된 메모리 셀들의 워드 라인에 제공하고 메모리 셀들을 센싱한다. 읽기 전압(R0)에 의해서 센싱된 데이터(D0)는 페이지 버퍼(123, 도 2 참조)에 구비되는 래치에 저장될 것이다. 이어서, 불휘발성 메모리 장치(120)는 읽기 전압(R1)을 선택된 메모리 셀들의 워드 라인에 제공하고 메모리 셀들을 센싱한다. 읽기 전압(R1)에 의해서 센싱된 데이터(D1)는 페이지 버퍼(123)에 구비되는 래치에 저장될 것이다. 불휘발성 메모리 장치(120)는 서로 다른 읽기 전압들에 의해서 센싱된 데이터(D0, D1)에 대한 배타적 논리합(XOR) 연산을 수행한다. 그리고, 불휘발성 메모리 장치(120)는 그 결과를 메모리 컨트롤러(110)에 전달한다.
불휘발성 메모리 장치(120)는 복수의 읽기 전압들(R0, R1, R2, …, Rn)을 순차적으로 적용하여 선택된 메모리 셀들을 센싱하고 센싱된 데이터를 래치하게 될 것이다. 이러한 센싱 및 래치 동작은, 배타적 논리합 연산(XOR) 연산 및 그 결과를 출력하는 동작과 중첩되어 수행될 수 있을 것이다. 복수의 읽기 전압들에 의하여 센싱된 데이터가 적어도 2개 페이지 크기의 래치들에 순차적으로 저장되면, 저장되는 데이터들의 동일 열들끼리에 배타적 논리합 연산이 수행될 것이다. 그리고 그 배타적 논리합(XOR) 연산의 결과는 입출력 버퍼(124)에 의해서 외부로 출력될 것이다. 이러한 절차에 의하여 읽기 전압들(R1, R2)에 대응하는 데이터(D0, D1)에 대한 배타적 논리합(XOR) 결과가 출력될 것이다. 그리고 읽기 전압들(R2, R3)에 대응하는 데이터(D2, D3)에 대한 배타적 논리합(XOR) 결과가 연속하여 출력될 것이다. 4개의 읽기 레벨이 지정되면, 배타적 논리합(XOR) 연산의 결과는 3회에 읽기 단위(예를 들면, 페이지)로 메모리 컨트롤러(110)에 전달될 것이다.
메모리 컨트롤러(110)는 데이터들(D0~Dn)의 배타적 논리합(XOR) 연산 결과를 수신한다. 그리고 수신된 각각의 배타적 논리합 결과들을 참조하여 읽기 전압들 사이에 분포하는 메모리 셀들의 수를 카운트한다. 즉, 메모리 컨트롤러(110)의 비트 카운터(112)는 배타적 논리합(XOR) 결과에 포함되는 논리 '1'의 수를 카운트하게 될 것이다. 이러한 카운트 동작이 완료되면, 복수의 좌표점들 각각의 좌표값들이 결정된다. 그리고 메모리 컨트롤러(110)는 결정된 좌표값을 참조하여 산포골 형태에 대응하는 확률 밀도 함수를 구하게 될 것이다. 메모리 컨트롤러(110)의 회귀 분석기(114)는 확률 밀도 함수의 최소값 또는 극소값을 구하고, 그에 대응하는 문턱 전압의 레벨을 새로운 읽기 전압으로 결정하게 된다. 이러한, 과정이 S20으로 도시되어 있다.
여기서, 읽기 명령을 제공하는 단계에서 최초 읽기 동작을 위한 읽기 전압(R0)과 이후에 제공될 읽기 전압들과의 전압 차이에 대한 정보가 제공될 수도 있다. 즉, 최초에 제공되는 읽기 전압(R0)과 순차적으로 제공될 전압들 간의 오프셋 정보가 더 제공될 수도 있음은 잘 이해될 것이다. 불휘발성 메모리 장치(120)는 오프셋 정보를 참조하여 순차적으로 읽기 전압을 생성하고, 선택된 메모리 셀들을 센싱할 것이다.
연속하여 독출된 데이터 간의 배타적 논리합(XOR) 연산을 수행하여 출력하는 경우, 메모리 컨트롤러(110)의 연산 부담을 감소시킬 수 있다. 그리고 독출 데이터를 출력하는 경우보다, 불휘발성 메모리 장치(120)의 출력 횟수도 줄일 수 있다.
도 11은 도 10의 배타적 논리합 연산의 결과를 예시적으로 보여주는 도면이다. 도 11을 참조하면, 불휘발성 메모리 장치(120)는 메모리 컨트롤러(110)의 명령에 따라 2개의 읽기 레벨에 따라 센싱된 데이터를 배타적 논리합(XOR) 연산을 수행한 후에 출력한다.
불휘발성 메모리 장치(120)는 선택된 메모리 셀들을 메모리 컨트롤러(110)로부터 제공된 읽기 전압을 참조하여 순차적으로 센싱할 것이다. 불휘발성 메모리 장치(120)는 읽기 전압(R0)에 의해서 읽혀진 데이터(D0)를 제 1 래치단에 저장할 것이다. 이어서, 불휘발성 메모리 장치(120)는 읽기 전압(R1)에 의해서 읽혀진 데이터(D1)를 제 2 래치단에 저장할 것이다. 여기서 제 1 래치단과 제 2 래치단은 페이지 버퍼(123)에 구비되는 래치들이다. 그리고 하나의 읽기 레벨에 의해서 읽혀진 데이터는 하나의 페이지 단위라 가정하기로 한다. 제 1 래치단과 제 2 래치단에 저장된 데이터들(D0, D1)을 동일한 열끼리 배타적 논리합(XOR)을 수행하면, 하나의 페이지 크기로 출력된다. 그리고 배타적 논리합(XOR) 연산의 결과 데이터가 메모리 컨트롤러(110)에 전달되면, 비트 카운터(112)는 전달된 데이터에 포함되는 논리 '1'의 수를 카운트한다. 배타적 논리합(XOR)의 결과 데이터에 포함되는 논리 '1'의 수가 좌표값(y1)에 맵핑될 수 있다. 그리고 좌표값(x1)은 읽기 전압들(R0, R1)의 평균값에 맵핑될 것이다.
상술한 방식으로 불휘발성 메모리 장치(120)는 읽기 전압(R1)에 의해서 읽혀진 데이터(D1)와 읽기 전압(R2)에 의해서 읽혀진 데이터(D2)를 처리하여 메모리 컨트롤러(110)에 제공할 것이다. 그러면, 제공받은 데이터로부터 비트 카운터(112)는 논리 '1'의 수를 카운트하고, 카운트된 값은 좌표값(y2)에 맵핑될 것이다. 그리고 불휘발성 메모리 장치(120)는 읽기 전압(R2)에 의해서 읽혀진 데이터(D2)와 읽기 전압(R3)에 의해서 읽혀진 데이터(D3)를 처리하여 메모리 컨트롤러(110)에 제공할 것이다. 그러면, 메모리 컨트롤러(110)는 좌표값(y3)을 결정할 수 있다.
이상의 방법에 따르면, 메모리 컨트롤러(110)와 불휘발성 메모리 장치(120) 사이에서 발생하는 트랜잭션의 수를 줄일 수 있다. 따라서, 배타적 논리합 연산없이 데이터가 메모리 컨트롤러(110)에 전달되는 실시 예에 비하여 퍼포먼스 향상을 기대할 수 있다.
도 12는 본 발명의 다른 실시 예에 따른 메모리 시스템을 보여주는 블록도이다. 도 12를 참조하면, 메모리 시스템(200)은 메모리 컨트롤러(210) 및 불휘발성 메모리 장치(220)를 포함할 수 있다. 메모리 컨트롤러(210)는 불휘발성 메모리 장치(220)로부터 제공되는 읽기 결과를 참조하여 회귀 분석을 수행하고, 최적의 읽기 전압을 결정할 수 있다. 좀더 자세히 설명하면 다음과 같다.
메모리 컨트롤러(210)는 읽기 레벨의 조정이 필요한 상황에서, 읽기 전압들(Rn-1, Rn)의 정보를 포함하는 읽기 명령을 불휘발성 메모리 장치(220)에 제공한다. 예를 들면, 메모리 컨트롤러(110)는 읽기 명령을 제공할 때, 서로 다른 레벨들(Rn-1, Rn)로 선택한 메모리 셀들을 센싱하기 위한 명령어를 제공할 수 있다. 이때, 불휘발성 메모리 장치(220)는 명령어에 응답하여 서로 다른 레벨들(Rn-1, Rn)에 이해서 센싱된 데이터들(Dn-1, Dn) 간의 배타적 논리합(XOR) 연산을 수행한다. 그리고 불휘발성 메모리 장치(220)는 배타적 논리합 연산의 결과 데이터에 포함된 논리 '1'의 수를 카운트한다. 이러한 카운트 동작은 불휘발성 메모리 장치(220)의 내부에 구비되는 비트 카운터(227)에 의해서 수행될 수 있다. 그리고 불휘발성 메모리 장치(220)는 카운트된 값을 읽기 전압들의 평균값에 대응하는 좌표값(yn)으로 출력할 것이다.
메모리 컨트롤러(210)는 불휘발성 메모리 장치(220)로부터 제공되는 좌표값(yn)을 원하는 만큼 요구할 수 있다. 예를 들면, 적어도 3개의 서로 다른 좌표값이 필요하면, 서로 다른 문턱 전압 대역에 포함되는 메모리 셀들의 수를 카운트하기 위한 명령을 3회 제공할 수 있다. 각각의 명령에 응답해서 출력되는 좌표값을 참조하여 메모리 컨트롤러(210)는 산포골에 대응하는 확률 밀도 함수(PDF)를 구할 수 있다. 그리고, 확률 밀도 함수(PDF)에서의 최소값 또는 극소값을 구하여 최적 읽기 전압을 결정하는 동작은 회귀 분석기(214)에서 수행될 것이다.
상술한 실시 예에 따르면, 메모리 컨트롤러(210)는 불휘발성 메모리 장치(220)로부터 좌표값(yn)을 직접 획득할 수 있다. 따라서, 메모리 컨트롤러(210)가 수행할 연산의 부담을 불휘발성 메모리 장치(220)와 분담할 수 있다. 본 발명의 메모리 컨트롤러(210)는 회귀 분석법을 사용하여, 불휘발성 메모리 장치(220)에 대한 최소한의 액세스를 통해서도 최적의 읽기 전압을 결정할 수 있다. 따라서, 읽기 전압의 레벨을 조정하기 위한 동작에 소요되는 시간을 최소화할 수 있다.
도 13은 도 12에 도시된 불휘발성 메모리 장치의 구성을 예시적으로 보여주는 블록도이다. 도 13을 참조하면, 불휘발성 메모리 장치(220)는 셀 어레이(221), 행 디코더(222), 페이지 버퍼(223), 입출력 버퍼(224), 제어 로직(225), 전압 발생기(226), 그리고 비트 카운터(227)를 포함한다. 불휘발성 메모리 장치(220)는 비트 카운터(227)의 구성을 제외하고는 도 2의 구성들과 동일하다. 따라서, 셀 어레이(221), 행 디코더(222), 페이지 버퍼(223), 입출력 버퍼(224), 제어 로직(225), 전압 발생기(226)에 대한 설명은 생략하기로 한다.
불휘발성 메모리 장치(220)는 메모리 컨트롤러(210)에 의해서 선택된 메모리 셀들로부터 적어도 2개의 읽기 전압에 의한 읽기를 수행하여, 하나의 좌표값을 출력하도록 제어된다. 메모리 컨트롤러(210)로부터 명령을 제공받으면, 불휘발성 메모리 장치(220)는 선택된 메모리 셀들로부터 적어도 2개의 읽기 전압들(Ri-1, Ri)을 사용하여 데이터를 센싱한다. 센싱된 데이터는 페이지 버퍼(223)에 순차적으로 저장될 것이다. 그러면, 비트 카운터(227)는 페이지 버퍼(223)에 저장된 2개의 페이지 데이터에 대한 배타적 논리합(XOR) 연산을 수행한다. 그리고 비트 카운터(227)는 그 결과에 포함된 논리 '1'의 개수를 카운트한다. 비트 카운터(227)는 카운트 결과(yi)를 입출력 버퍼(224)에 전달하고, 입출력 버퍼(224)는 메모리 컨트롤러(210)로 카운트 결과(yi)를 출력할 것이다.
상술한 기능을 위해서 비트 카운터(227)는 적어도 2개 페이지를 저장하기 위한 래치단들(또는 레지스터)과 배타적 논리합(XOR) 연산을 수행하기 위한 논리 게이트열을 포함할 수 있다. 예를 들면, 비트 카운터(227)는 서로 다른 읽기 전압으로 독출된 2개 페이지를 구비되는 래치단들에 저장할 수 있다. 그리고 비트 카운터(227)는 동일 열에 대응하는 비트들 간에 대한 배타적 논리합(XOR) 연산을 수행하는 논리 게이트열을 포함할 수 있다. 더불어, 비트 카운터(227)는 논리 게이트열로부터 출력되는 페이지 크기의 데이터에 포함되는 논리 '1'의 수를 카운트하는 카운터 회로(미도시됨)를 포함할 수 있다. 카운터 회로의 출력이 대응하는 읽기 레벨의 좌표값(yi)에 해당한다.
도 14는 도 12의 메모리 시스템의 또 다른 읽기 방법을 보여주는 도면이다. 도 14를 참조하면, 메모리 컨트롤러(210, 도 12 참조)의 읽기 명령에 응답하여 불휘발성 메모리 장치(220, 도 12 참조)는 복수의 좌표값들 yi(1≤i≤n))를 제공할 수 있다.
메모리 컨트롤러(210)는 읽기 레벨을 조정하기 위한 읽기 명령(Read CMD)을 불휘발성 메모리 장치(220)에 제공할 때, 모든 읽기 전압들(R0~Rn)을 지정할 수 있다. 도면의 (R0, Rn)은 읽기 전압(R0)으로부터 읽기 전압(Rn)까지의 모든 읽기 전압들을 의미한다.
메모리 컨트롤러(210)의 읽기 명령에 응답하여, 불휘발성 메모리 장치(220)는 순차적으로 선택된 메모리 셀들을 센싱할 것이다. 불휘발성 메모리 장치(220)는 읽기 전압(R0)을 선택된 메모리 셀들의 워드 라인에 제공하고 메모리 셀들을 센싱한다. 읽기 전압(R0)에 의해서 센싱된 데이터(D0)는 페이지 버퍼(223, 도 13 참조)에 구비되는 래치에 저장될 것이다. 이어서, 불휘발성 메모리 장치(220)는 읽기 전압(R1)을 선택된 메모리 셀들의 워드 라인에 제공하여 선택된 메모리 셀들을 센싱한다. 읽기 전압(R1)에 의해서 센싱된 데이터(D1)는 페이지 버퍼(223)에 구비되는 래치에 저장될 것이다. 이러한 절차로 불휘발성 메모리 장치(220)는 선택된 메모리 셀들에 대한 읽기 동작을 각각의 읽기 전압들(R0~Rn)에 대해서 순차적으로 수행한다. 센싱된 데이터는 페이지 버퍼(223)에 저장되고, 비트 카운터(227)에 순차적으로 전달될 것이다.
비트 카운터(227)는 서로 다른 읽기 전압들에 의해서 센싱된 데이터(D0, D1)에 대한 배타적 논리합(XOR) 연산을 수행한다. 비트 카운터(227)는 데이터들(D0, D1)의 배타적 논리합(XOR) 연산의 결과 데이터에 포함되는 논리 '1'의 수를 카운트한다. 비트 카운터(227)는 데이터들(D0, D1)의 배타적 논리합 연산의 결과에 포함된 논리 '1'의 수를 좌표값(y1)으로 저장할 수 있다.
그리고 비트 카운터(227)는 데이터(D1, D2)에 대한 배타적 논리합(XOR) 연산 및 카운트 동작을 수행하여 좌표값(y2)을 구하고, 내부에 저장할 수 있다. 이러한 비트 카운터(227)의 동작은 메모리 컨트롤러(210)로부터 요청된 모든 읽기 전압들(R0~Rn)에 대해서 순차적으로 수행할 것이다. 그러면, 좌표값들(y1~yn)이 모두 구해질 수 있다. 만일, 2차 함수로 선택된 메모리 셀들의 확률 밀도 함수(PDF)가 모델링되는 경우라면, 좌표값들(y1~yn)은 3개가 저장될 것이다. 만일, 3차 함수로 메모리 셀들의 확률 밀도 함수가 모델링되는 경우라면, 좌표값들(y1~yn)은 4개가 저장될 것이다. 저장된 좌표값들(y1~yn)은 이후 메모리 컨트롤러(210)에 출력될 것이다.
메모리 컨트롤러(210)는 출력된 좌표값들(y1~yn)을 기초로 회귀 분석을 수행하여 확률 밀도 함수(PDF)의 계수들을 계산할 것이다. 그리고 메모리 컨트롤러(210)는 확률 밀도 함수(PDF)의 최소값이나 극소값을 계산하고, 그에 대응하는 문턱 전압을 읽기 전압으로 결정할 것이다. 이러한 절차는 S30 단계로 요약된다.
도 15는 본 발명의 또 다른 실시 예에 따른 메모리 시스템을 보여주는 블록도이다. 도 15를 참조하면, 메모리 시스템(300)은 메모리 컨트롤러(310) 및 불휘발성 메모리 장치(320)를 포함할 수 있다.
메모리 컨트롤러(310)는 불휘발성 메모리 장치(320)에 회귀 분석법(Regression Analysis)을 적용하기 위한 읽기 명령(Read CMD)을 제공한다. 메모리 컨트롤러(310)는 읽기 명령어(Read CMD)에 읽기 전압 정보(R0, ΔV, #)를 포함시킬 수 있다. 여기서, R0는 최초 읽기 레벨을 의미한다. 그리고 ΔV는 읽기 전압들 간의 전압 간격을 의미한다. 그리고 #은 최초 읽기 전압(R0)을 시작으로 전압 간격(ΔV)을 순차적으로 증가시키는 횟수를 의미한다. 즉, #은 읽기 횟수에 해당한다.
메모리 컨트롤러(310)의 회귀 분석법을 적용하기 위한 읽기 명령어(Read CMD)에 응답하여 불휘발성 메모리 장치(320)는 좌표값들(y1, y2, …, yn)을 출력할 것이다. 그러면, 메모리 컨트롤러(310)는 좌표값들(y1, y2, …, yn)을 참조하여 해당 산포골에 대응하는 확률 밀도 함수(PDF)를 계산한다. 즉, 회귀 분석기(314)는 좌표값을 대입하여 확률 밀도 함수(PDF)의 계수들을 구할 수 있다. 그리고 회귀 분석기(314)는 확률 밀도 함수(PDF)의 최소값이나 극소값을 계산하고 그에 대응하는 문턱 전압의 크기를 최적 읽기 전압으로 결정할 것이다.
불휘발성 메모리 장치(320)는 읽기 명령(Read CMD)에 응답하여 최초 읽기 전압(R0)를 시작으로 선택된 메모리 셀들을 센싱할 것이다. 불휘발성 메모리 장치(320)는 최초 읽기 전압(R0)으로부터 전압 간격(ΔV)만큼 순차적으로 증가되는 읽기 전압들로 선택된 메모리 셀들을 센싱할 것이다. 이러한 읽기 전압들은 최초 읽기 전압(R0)의 제공 이후에 #회 제공될 것이다.
읽기 전압들에 의해서 센싱된 데이터는 비트 카운터(327)에 제공된다. 비트 카운터(227)는 서로 다른 레벨의 읽기 전압들(Rn-1, Rn)에 의해서 센싱된 데이터들(Dn-1, Dn) 간의 배타적 논리합(XOR) 연산을 수행한다. 그리고 비트 카운터(327)는 배타적 논리합 연산의 결과 데이터에 포함된 논리 '1'의 수를 카운트한다. 그리고 비트 카운터(327)는 카운트된 값을 좌표값(yn)으로 출력할 것이다. 이러한 좌표값은 지정된 모든 읽기 전압들에 대해서 계산되고, 계산된 좌표값들(y1, y2, …, yn)은 이후에 취합되어 메모리 컨트롤러(310)에 전달될 수 있다.
메모리 컨트롤러(310)는 불휘발성 메모리 장치(320)로부터 제공되는 좌표값(yi)을 원하는 만큼 요구할 수 있다. 예를 들면, 적어도 3개의 좌표값이 필요하면, 메모리 컨트롤러(310)는 읽기 회수(#)를 3으로 제공하면 된다. 그리고 적어도 4개의 좌표값이 필요하면, 메모리 컨트롤러(310)는 읽기 회수(#)를 4로 제공하면 된다. 그리고, 정밀도를 높이기 위해서 전압 간격(ΔV)의 크기를 줄이고, 읽기 회수(#)를 증가시킬 수 있다.
상술한 메모리 컨트롤러(310)는 불휘발성 메모리 장치(320)를 사용하면, 읽기 레벨의 조정에 소요되는 트랜잭션의 수를 최소화할 수 있다. 이 실시 예에 따르면, 1회의 읽기 명령과, 1회의 데이터 출력으로 회귀 분석에 필요한 좌표값 정보의 획득이 가능하다.
도 16은 본 발명의 다른 실시 예에 따른 읽기 방법을 보여주는 순서도이다. 도 16을 참조하면, 불휘발성 메모리 장치의 읽기 동작 중에 읽기 실패(Read fail)가 발생하면 본 발명의 읽기 전압의 조정을 수행할 수 있다.
S310 단계에서, 메모리 컨트롤러(310)는 호스트(Host)의 요청에 따라 불휘발성 메모리 장치(320)로부터 데이터를 독출할 것이다. 이때에는 불휘발성 메모리 장치(320)는 조정되지 않은 읽기 전압을 사용하여 선택된 메모리 셀들을 독출할 것이다.
S320 단계에서, 메모리 컨트롤러(310)는 독출된 데이터에 대한 에러 검출(Error Detect) 연산을 수행한다. 에러 검출 연산은 독출된 데이터에 포함되는 에러 코드를 사용하여 에러의 존재 여부 또는 발생한 에러의 비트 수 등을 검출하는 연산이다.
S330 단계에서, 메모리 컨트롤러(310)는 에러의 존재 여부에 따라 동작 분기를 실시한다. 독출된 데이터에 에러가 존재하는 경우, 절차는 S340 단계로 이동한다. 그리고 독출된 데이터에 에러가 존재하지 않는 경우에는 읽기 동작을 완료하게 될 것이다.
S340 단계에서, 메모리 컨트롤러(310)는 검출된 에러가 정정가능한지 판단하게 된다. 메모리 컨트롤러(310)는 검출된 에러 비트의 수가 에러 정정 엔진의 정정 능력을 초과하는지를 판단하게 될 것이다. 만일, 검출된 에러 비트의 수가 정정 가능한 정도라면, 절차는 S350 단계로 이동한다. 하지만, 정정 불가능한 에러가 검출되는 경우, 절차는 S360 단계로 이동한다.
S350 단계에서, 메모리 컨트롤러(310)는 검출된 에러를 정정한다. 예를 들면, 메모리 컨트롤러(310)에 구비되는 에러 정정 엔진에 의해서 신드롬(Syndrome)이 계산되고, 신드롬을 기초로 에러 위치가 계산될 수 있다. 에러 위치의 계산이 완료되면, 대응하는 에러의 위치에 데이터를 정정함으로써 에러 정정 연산이 수행된다.
S360 단계에서, 메모리 컨트롤러(310)는 정정이 불가한 데이터가 독출된 어드레스의 메모리 셀들에 대한 읽기 전압의 레벨 조정 동작을 수행한다. 앞서 설명한 바와 같이, 읽기 전압의 레벨 조정을 위해서 4회 또는 5회의 읽기 동작을 통해서 메모리 셀들의 확률 분포 함수를 구하게 될 것이다. 그리고 확률 분포 함수의 최소점 또는 극소점을 검출하기 위한 회귀 분석법이 적용될 것이다. 읽기 전압의 레벨 조정이 완료되면, 절차는 조정된 읽기 전압에 의해서 선택된 메모리 셀들을 독출하기 위한 S310 단계로 복귀할 것이다.
이상에서는 본 발명의 회귀 분석법을 적용하는 불휘발성 메모리 장치의 읽기 방법이 설명되었다. 읽기 동작시에 과도한 에러가 발생하고, 이러한 에러가 정정 불가한 경우에는 본 발명의 읽기 레벨 조정을 통해서 최적의 읽기 레벨로 조정될 수 있다. 그리고 하나의 산포골에 대응하는 확률 밀도 함수의 최소점 또는 극소점을 검출하기 위해서 4회 또는 5회의 읽기 동작만이 요구된다. 따라서, 읽기 전압의 조정에 필요한 메모리 시스템의 부담이 최소화될 수 있다.
도 17은 본 발명의 불휘발성 메모리 장치의 예시적인 형태를 보여주는 사시도이다. 도 17을 참조하면, 도 2 또는 도 13의 셀 어레이(121, 221)는 복수의 메모리 블록(BLKi)을 포함할 수 있다. 복수의 메모리 블록(BLKi) 각각은 셀 스트링이 기판에 대해서 수직 방향(z 방향)으로 형성되는 3차원 적층 구조에 의해서 형성될 수 있다.
기판(411) 상에, x 방향을 따라 복수의 도핑 영역들(412a, 412b, 412c, 412d)이 형성된다. 제 1 및 제 2 도핑 영역들(412a, 412b) 사이의 기판(411)의 영역 상에, y 방향을 따라 신장되는 복수의 절연 물질들(418)이 z 방향을 따라 순차적으로 제공된다. 예를 들면, 복수의 절연 물질들(418)은 z 방향을 따라 특정 거리만큼 이격되어 형성될 것이다.
제 1 및 제 2 도핑 영역들(412a, 412b) 사이의 기판(411) 상부에, y 방향을 따라 순차적으로 배치되며 z 방향을 따라 절연 물질들(418)을 관통하는 필라(413)가 형성된다. 예시적으로, 필라(413)는 절연 물질들(418)을 관통하여 기판(411)과 연결될 것이다. 여기서, 필라(413)는 제 2 및 제 3 도핑 영역들(412b, 412c) 사이의 기판 상부와, 제 3 및 제 4 도핑 영역들(412c, 412d) 사이의 기판 상부에도 형성된다.
필라(413)의 내부층(413b)은 절연 물질로 구성된다. 예를 들면, 필라(413)의 내부층(413b)은 실리콘 산화물(Silicon Oxide)과 같은 절연 물질을 포함할 것이다.제 1 및 제 2 도핑 영역들(412a, 412b) 사이의 영역에서, 절연 물질들(418), 필라(413), 그리고 기판(411)의 노출된 표면을 따라 절연막(415)이 제공된다. 예시적으로, z 방향을 따라 제공되는 마지막 절연 물질(418)의 z 방향 쪽의 노출면에 제공되는 절연막(415)은 제거될 수 있다.
제 1 및 제 2 도핑 영역들(412a, 412b) 사이의 영역에서, 절연막(415)의 노출된 표면상에 제 1 도전 물질들(414a~414i)이 제공된다. 예를 들면, 기판(411)에 인접한 절연 물질(418) 및 기판(411) 사이에 y 방향을 따라 신장되는 제 1 도전 물질(414a)이 제공된다. 더 상세하게는, 기판(411)에 인접한 절연 물질(418)의 하부면의 절연막(415) 및 기판(411) 사이에, x 방향으로 신장되는 제 1 도전 물질(414a)이 제공된다. 그리고 제 2 및 제 3 도핑 영역들(412b, 412c) 사이의 영역에서, 제 1 및 제 2 도핑 영역들(412a, 412b) 상의 구조물과 동일한 구조물이 제공될 것이다. 제 3 및 제 4 도핑 영역들(412c, 412d) 사이의 영역에서, 제 1 및 제 2 도핑 영역들(412a, 412b) 상의 구조물과 동일한 구조물이 형성될 것이다.
복수의 필라들(413) 상에 드레인들(416)이 각각 제공된다. 드레인들(416)은 제 2 타입으로 도핑된 실리콘 물질일 수 있다. 드레인들(416) 상에, x 방향으로 신장된 제 2 도전 물질들(417a~417c)이 제공된다. 제 2 도전 물질들(417a~417c)은 y 방향을 따라 순차적으로 배치된다. 제 2 도전 물질들(417a~417c) 각각은 대응하는 영역의 드레인들(416)과 연결된다. 예시적으로, 드레인들(416) 및 x 방향으로 신장된 제 2 도전 물질(417c)은 각각 콘택 플러그들(Contact plug)을 통해 연결될 수 있다.
여기서, 제 1 도전 물질들(414a~414i)은 각각 워드 라인 또는 선택 라인(SSL, GSL)을 형성한다. 제 1 도전 물질들(414a~414i) 중에서 워드 라인으로 형성되는 일부(414b~414h)는 동일한 층에 속한 것들은 상호 연결된다. 메모리 블록(BLKi)은 제 1 도전 물질들(414a~414i) 전체가 선택될 경우에 선택될 수 있다. 반면, 본 발명의 서브-블록은 제 1 도전 물질들(414a~414i) 중 일부만이 선택됨으로써 선택 가능하다. 또한, 본 발명에서는 제 1 도전 물질들(414a~414i)의 층수는 예시적인 것에 불과하다. 제 1 도전 물질들(414a~414i)의 층수는 공정 기술이나 제어 기술에 따라 다양하게 변경될 수 있음은 잘 이해될 것이다.
도 18은 본 발명의 실시 예에 따른 솔리드 스테이트 디스크(이하, SSD)를 포함하는 사용자 장치를 보여주는 블록도이다. 도 18을 참조하면, 사용자 장치(1000)는 호스트(1100)와 SSD(1200)를 포함한다. SSD(1200)는 SSD 컨트롤러(1210), 버퍼 메모리(1220), 그리고 불휘발성 메모리 장치(1230)를 포함한다.
SSD 컨트롤러(1210)는 호스트(1100)와 SSD(1200)와의 물리적 연결을 제공한다. 즉, SSD 컨트롤러(1210)는 호스트(1100)의 버스 포맷(Bus format)에 대응하여 SSD(1200)와의 인터페이싱을 제공한다. 특히, SSD 컨트롤러(1210)는 회귀 분석기(1215)를 포함할 수 있다. 회귀 분석기(1215)를 통해서 메모리 셀들의 산포골의 정확한 위치를 최소의 읽기 동작만으로 검출할 수 있다. 따라서, 읽기 실패시 대응하는 메모리 셀들에 대한 최소한의 읽기 동작으로 최적의 읽기 레벨을 찾아낼 수 있다.
호스트(1100)의 버스 포맷(Bus format)으로 USB(Universal Serial Bus), SCSI(Small Computer System Interface), PCI express, ATA, PATA(Parallel ATA), SATA(Serial ATA), SAS(Serial Attached SCSI) 등이 포함될 수 있다.
버퍼 메모리(1220)에는 호스트(1100)로부터 제공되는 쓰기 데이터 또는 불휘발성 메모리 장치(1230)로부터 읽혀진 데이터가 일시 저장된다. 호스트(1100)의 읽기 요청시에 불휘발성 메모리 장치(1230)에 존재하는 데이터가 캐시되어 있는 경우에는, 버퍼 메모리(1220)는 캐시된 데이터를 직접 호스트(1100)로 제공하는 캐시 기능을 지원한다. 일반적으로, 호스트(1100)의 버스 포맷(예를 들면, SATA 또는 SAS)에 의한 데이터 전송 속도는 SSD(1200)의 메모리 채널의 전송 속도보다 월등히 빠르다. 즉, 호스트(1100)의 인터페이스 속도가 월등히 높은 경우, 대용량의 버퍼 메모리(1220)를 제공함으로써 속도 차이로 발생하는 퍼포먼스 저하를 최소화할 수 있다.
버퍼 메모리(1220)는 대용량의 보조 기억 장치로 사용되는 SSD(1200)에서 충분한 버퍼링을 제공하기 위해 동기식 DRAM(Synchronous DRAM)으로 제공될 수 있다. 하지만, 버퍼 메모리(1220)가 여기의 개시에 국한되지 않음은 이 분야의 통상적인 지식을 습득한 자들에게 자명하다.
불휘발성 메모리 장치(1230)는 SSD(1200)의 저장 매체로서 제공된다. 예를 들면, 불휘발성 메모리 장치(1230)는 대용량의 저장 능력을 가지는 수직 구조 낸드 플래시 메모리(NAND-type Flash memory)로 제공될 수 있다. 불휘발성 메모리 장치(1230)는 복수의 메모리 장치로 구성될 수 있다. 이 경우, 각각의 메모리 장치들은 채널 단위로 SSD 컨트롤러(1210)와 연결된다. 저장 매체로서 불휘발성 메모리 장치(1230)가 낸드 플래시 메모리를 예로 들어 설명되었으나, 또 다른 불휘발성 메모리 장치들로 구성될 수 있다. 예를 들면, 저장 매체로서 PRAM, MRAM, ReRAM, FRAM, NOR 플래시 메모리 등이 사용될 수 있으며, 이종의 메모리 장치들이 혼용되는 메모리 시스템도 적용될 수 있다. 불휘발성 메모리 장치는 실질적으로 도 1에서 설명된 것과 동일하게 구성될 수 있다.
상술한 SSD(1200)에서, 불휘발성 메모리 장치(1230)는 도 2 또는 도 13의 불휘발성 메모리 장치와 실질적으로 동일하게 동작할 수 있다. 즉, 불휘발성 메모리 장치(1230)는 SSD 컨트롤러(1210)의 명령에 따라 센싱된 데이터, 센싱된 데이터들의 배타적 논리합(XOR), 그리고 배타적 논리합(XOR)의 결과에 포함되는 논리 '1'의 수 중에서 적어도 하나를 출력할 수 있다.
도 19는 본 발명의 다른 실시 예에 따른 메모리 시스템(2000)을 예시적으로 보여주는 블록도이다. 도 19를 참조하면, 본 발명에 따른 메모리 시스템(2000)은 메모리 컨트롤러(2200)와 불휘발성 메모리(2100)를 포함할 수 있다.
불휘발성 메모리(2200)는 도 2 또는 도 13의 불휘발성 메모리 장치와 실질적으로 동일하게 구성될 수 있다. 따라서, 불휘발성 메모리(2200)에 대한 구체적인 설명은 생략하기로 한다.
메모리 컨트롤러(2100)는 불휘발성 메모리(2200)를 제어하도록 구성될 수 있다. SRAM(2100)은 CPU(2120)의 워킹 메모리로 사용될 수 있다. 호스트 인터페이스(2130)는 메모리 시스템(2000)과 접속되는 호스트의 데이터 교환 프로토콜을 구비할 수 있다. 메모리 컨트롤러(2100)에 구비된 ECC(2140)는 불휘발성 메모리(2200)로부터 읽어 온 읽기 데이터에 포함되어 있는 에러를 검출 및 정정할 수 있다. 메모리 인터페이스(2150)는 본 발명의 불휘발성 메모리(2200)와 인터페이싱 할 수 있다. CPU(2120)는 메모리 컨트롤러(2100)의 데이터 교환을 위한 제반 제어 동작을 수행할 수 있다. 비록 도면에는 도시되지 않았지만, 본 발명에 따른 메모리 시스템(2000)는 호스트(Host)와의 인터페이싱을 위한 코드 데이터를 저장하는 ROM(미도시됨) 등이 더 제공될 수 있다.
메모리 컨트롤러(2100)는 USB, MMC, PCI-E, SAS, SATA, PATA, SCSI, ESDI, 그리고 IDE 등과 같은 다양한 인터페이스 프로토콜들 중 하나를 통해 외부(예를 들면, 호스트)와 통신하도록 구성될 것이다. 메모리 컨트롤러(2100)는 선택된 메모리 셀들에 대한 읽기 전압을 회귀 분석법을 사용하여 결정할 수 있다. 회귀 분석을 수행하는 기능은 펌웨어로 제공되거나, 특정 기능 블록으로 제공될 수 있을 것이다.
본 발명에 따른 메모리 시스템(2000)는, 컴퓨터, 휴대용 컴퓨터, UMPC (Ultra Mobile PC), 워크스테이션, 넷북(net-book), PDA, 포터블(portable) 컴퓨터, 웹 타블렛(web tablet), 무선 전화기(wireless phone), 모바일 폰(mobile phone), 스마트폰(smart phone), 디지털 카메라(digital camera), 디지털 음성 녹음기(digital audio recorder), 디지털 음성 재생기(digital audio player), 디지털 영상 녹화기(digital picture recorder), 디지털 영상 재생기(digital picture player), 디지털 동영상 녹화기(digital video recorder), 디지털 동영상 재생기(digital video player), 정보를 무선 환경에서 송수신할 수 있는 장치, 홈 네트워크를 구성하는 다양한 사용자 장치들 중 하나에 적용될 수 있다.
도 20은 본 발명의 다른 실시 예에 따른 데이터 저장 장치(3000)를 예시적으로 보여주는 블록도이다. 도 20을 참조하면, 본 발명에 따른 데이터 저장 장치(3000)는 플래시 메모리(3100)와 플래시 컨트롤러(3200)를 포함할 수 있다. 플래시 컨트롤러(3200)는 데이터 저장 장치(3000) 외부로부터 수신된 제어 신호들에 기초하여 플래시 메모리(3100)를 제어할 수 있다.
상술한 데이터 저장 장치(3000)에서, 플래시 메모리(3100)는 도 2 또는 도 13의 불휘발성 메모리 장치와 실질적으로 동일하게 동작할 수 있다. 즉, 플래시 메모리(3100)는 선택된 메모리 셀들에 대해 서로 다른 읽기 전압들로 독출하여 플래시 컨트롤러(3200)에 제공할 수 있다. 플래시 메모리(3100)는 독출된 데이터를 배타적 논리합 연산을 수행한 이후에 플래시 컨트롤러(3200)에 제공할 수도 있다. 플래시 메모리(3100)는 독출된 데이터들 간의 배타적 논리합 연산의 결과에 포함된 논리 '1'의 수를 플래시 컨트롤러(3200)에 제공할 수 있다.
플래시 컨트롤러(3200)는 플래시 메모리(3100)로부터의 데이터를 참조하여 선택된 메모리 셀들의 최적 읽기 레벨을 결정하기 위한 회귀 분석을 수행할 수 있다. 회귀 분석을 통해서 최소의 읽기 회수만으로도 고신뢰성의 읽기 레벨을 결정할 수 있다.
본 발명의 데이터 저장 장치(3000)는 메모리 카드 장치, SSD 장치, 멀티미디어 카드 장치, SD 카드, 메모리 스틱 장치, 하드 디스크 드라이브 장치, 하이브리드 드라이브 장치, 또는 범용 직렬 버스 플래시 장치를 구성할 수 있다. 예를 들면, 본 발명의 데이터 저장 장치(3000)는 디지털, 카메라, 개인 컴퓨터 등과 같은 사용자 장치를 사용하기 위한 산업 표준을 만족하는 카드를 구성할 수 있다.
도 21은 본 발명에 따른 플래시 메모리 장치(4100) 및 그것을 포함하는 컴퓨팅 시스템(4000)의 개략적인 구성을 보여주는 도면이다. 도 21을 참조하면, 본 발명에 따른 컴퓨팅 시스템(4000)은 버스(4600)에 전기적으로 연결된 불휘발성 메모리 장치(4120), 메모리 컨트롤러(4110), 마이크로프로세서(4200), 램(4300), 유저 인터페이스(4400), 베이스밴드 칩셋(baseband chipset)과 같은 모뎀(4500) 등을 포함할 수 있다. 도 21에 도시된 메모리 컨트롤러(4110)와 불휘발성 메모리 장치(4120)는 메모리 시스템(4100)을 구성한다. 메모리 시스템(4100)은 도 1, 도 12, 도 15, 도 18, 도 19, 도 20에 도시된 메모리 시스템들 중 어느 하나일 수 있다.
본 발명에 따른 컴퓨팅 시스템이 모바일 장치인 경우, 컴퓨팅 시스템의 동작 전압을 공급하기 위한 배터리가 추가적으로 제공될 수 있다. 비록 도면에는 도시되지 않았지만, 본 발명에 따른 컴퓨팅 시스템에는 응용 칩셋(application chipset), 카메라 이미지 프로세서(Camera Image Processor: CIS), 모바일 디램, 등이 더 제공될 수 있다. 메모리 시스템(4100)은 앞서 설명된 본 발명의 회귀 분석법을 통해서 최적의 읽기 레벨을 결정할 수 있다. 따라서, 데이터 신뢰성(Data Integrity)을 높일 수 있다.
본 발명에 따른 반도체 장치는 다양한 형태들의 패키지를 이용하여 실장될 수 있다. 예를 들면, 본 발명에 따른 반도체 그리고/또는 컨트롤러는 PoP(Package on Package), BGAs(Ball grid arrays), CSPs(Chip scale packages), PLCC(Plastic Leaded Chip Carrier), PDIP(Plastic Dual In-Line Package), Die in Waffle Pack, Die in Wafer Form, COB(Chip On Board), CERDIP(Ceramic Dual In-Line Package), MQFP(Plastic Metric Quad Flat Pack), TQFP(Thin Quad Flatpack), SOIC(Small Outline Integrated Circuit), SSOP(Shrink Small Outline Package), TSOP(Thin Small Outline), TQFP(Thin Quad Flatpack), SIP(System In Package), MCP(Multi Chip Package), WFP(Wafer-level Fabricated Package), WSP(Wafer-Level Processed Stack Package) 등과 같은 패키지들을 이용하여 실장될 수 있다.
이상에서와 같이 도면과 명세서에서 최적 실시 예가 개시되었다. 여기서 특정한 용어들이 사용되었으나, 이는 단지 본 발명을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 특허청구범위에 기재된 본 발명의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.
110, 210, 310 : 메모리 컨트롤러
112, 227, 327 : 비트 카운터
114, 214, 314 : 회귀 분석기
120, 220, 320 : 불휘발성 메모리 장치
121, 221 : 셀 어레이
122, 222 : 행 디코더
123, 223 : 페이지 버퍼
124, 224 : 입출력 버퍼
125, 225 : 제어 로직
126, 226 : 전압 발생기
130, 140, 150, 160, 170 : 산포골
411 : 기판
412a, 412b, 412c, 412d : 도핑 영역
413 : 필라 413a : 표면층
413b : 내부층 414a~414i : 제 1 도전 물질
415 : 절연막 416 : 드레인
417a, 417b, 417c : 비트 라인 418 : 절연 물질
1100 : 호스트 1200 : SSD
1210 : SSD 컨트롤러 1215 : 회귀 분석기
1220 : 버퍼 메모리 1230 : 불휘발성 메모리 장치
2100 : 메모리 컨트롤러 2110 : SRAM
2120 : CPU 2130 : 호스트 인터페이스
2140 : ECC 2150 : 메모리 인터페이스
2200 : 불휘발성 메모리 장치 3100 : 플래시 메모리
3200 : 플래시 컨트롤러 4000 : 컴퓨팅 시스템
4100 : 메모리 시스템 4110 : 메모리 컨트롤러
4120 : 플래시 메모리 장치 4200 : 중앙처리장치
4300 : 램 4400 : 유저 인터페이스
4500 : 모뎀 4600 : 시스템 버스

Claims (20)

  1. 불휘발성 메모리 장치의 읽기 방법에 있어서:
    서로 다른 읽기 전압들로 선택된 메모리 셀들을 독출하는 단계;
    상기 서로 다른 읽기 전압들에 의해서 독출된 데이터를 참조하여 복수의 문턱 전압 대역들 각각에 대응하는 메모리 셀들의 수를 카운트하는 단계;
    상기 카운트 결과를 참조하여 상기 선택된 메모리 셀들의 문턱 전압에 대한 확률 밀도 함수의 좌표값들을 결정하는 단계;
    상기 좌표값들을 참조하여 상기 확률 밀도 함수의 계수를 구하는 단계; 및
    상기 확률 밀도 함수의 기울기가 0인 좌표점의 문턱 전압을 상기 선택된 메모리 셀들의 읽기 전압으로 결정하는 단계를 포함하는 읽기 방법.
  2. 제 1 항에 있어서,
    상기 복수의 문턱 전압 대역들 각각은 동일한 전압폭을 가지는 읽기 방법.
  3. 제 1 항에 있어서,
    상기 메모리 셀들의 수를 카운트하는 단계는:
    제 1 읽기 전압에 의해서 독출된 제 1 데이터와 제 2 읽기 전압에 의해서 독출된 제 2 데이터의 동일한 열에 대응하는 데이터 비트들간 배타적 논리합 연산을 수행하는 단계; 및
    상기 배타적 논리합 연산의 결과로부터 논리 '1'의 수를 카운트하는 단계를 포함하는 읽기 방법.
  4. 제 3 항에 있어서,
    상기 제 1 읽기 전압과 제 2 읽기 전압의 평균값이 상기 좌표값들 중 어느 하나의 제 1 성분으로, 그리고 상기 카운트 결과가 상기 어느 하나의 좌표값의 제 2 성분으로 결정되는 읽기 방법.
  5. 제 1 항에 있어서,
    상기 선택된 메모리 셀들의 소거 상태와 프로그램 상태 사이의 산포골에 대응하는 상기 확률 밀도 함수는 상기 문턱 전압에 대한 3차 함수로 추정되는 읽기 방법.
  6. 제 5 항에 있어서,
    상기 확률 밀도 함수를 구하는 단계는, 적어도 4개의 좌표값을 각각 대입하여 상기 확률 밀도 함수의 계수들을 구하는 단계를 포함하는 읽기 방법.
  7. 제 1 항에 있어서,
    상기 선택된 메모리 셀들의 프로그램 상태들 사이의 산포골에 대응하는 상기 확률 밀도 함수는 상기 문턱 전압에 대한 2차 함수로 추정되는 읽기 방법.
  8. 제 7 항에 있어서,
    상기 확률 밀도 함수를 구하는 단계는, 적어도 3개의 좌표값을 각각 대입하여 상기 확률 밀도 함수의 계수들을 구하는 단계를 포함하는 읽기 방법.
  9. 제 1 항에 있어서,
    상기 읽기 전압으로 결정하는 단계는:
    상기 확률 밀도 함수를 미분하는 단계; 및
    미분된 상기 확률 밀도 함수의 값을 0으로 하는 방정식의 근을 구하는 단계를 포함하는 읽기 방법.
  10. 제 9 항에 있어서,
    상기 읽기 전압은 상기 방정식의 실근 중 상기 확률 밀도 함수의 최소점 또는 극소점에 대응하는 실근을 상기 읽기 전압으로 결정하는 읽기 방법.
  11. 읽기 레벨 정보를 포함하는 읽기 명령에 응답하여 선택된 메모리 셀들로부터 데이터를 독출하는 불휘발성 메모리 장치; 그리고
    상기 독출된 데이터를 참조하여 상기 메모리 셀들의 문턱 전압에 대한 확률 분포 함수를 구하고, 상기 확률 분포 함수의 도함수를 해석하여 상기 메모리 셀들의 읽기 전압을 결정하는 메모리 컨트롤러를 포함하는 메모리 시스템.
  12. 제 11 항에 있어서,
    상기 읽기 레벨 정보에는 하나의 읽기 레벨에 대한 정보가 포함되는 메모리 시스템.
  13. 제 12 항에 있어서,
    상기 메모리 컨트롤러는 복수의 읽기 명령을 상기 불휘발성 메모리 장치에 제공하고, 복수의 읽기 명령들 각각에 대응하는 독출 데이터를 사용하여 상기 확률 분포 함수의 좌표점들을 계산하는 메모리 시스템.
  14. 제 11 항에 있어서,
    상기 읽기 레벨 정보에는 서로 다른 2개의 읽기 레벨에 대한 정보가 포함되는 메모리 시스템.
  15. 제 14 항에 있어서,
    상기 불휘발성 메모리 장치는, 제 1 읽기 레벨에 따라 독출된 제 1 데이터와, 제 2 읽기 레벨에 의해서 독출된 제 2 데이터에 대한 배타적 논리합 연산을 수행하고, 상기 배타적 논리합 연산의 결과에 포함되는 논리 '1'의 수를 카운트하여 상기 확률 분포 함수의 좌표값의 하나로 제공하는 비트 카운터를 포함하는 메모리 시스템.
  16. 제 11 항에 있어서,
    상기 읽기 레벨 정보에는 서로 다른 4개 이상의 읽기 레벨에 대한 정보가 포함되는 메모리 시스템.
  17. 제 16 항에 있어서,
    상기 읽기 레벨 정보에는 최초 읽기 레벨, 전압 간격의 크기와 그리고 읽기 회수에 대한 정보가 포함되는 메모리 시스템.
  18. 제 17 항에 있어서,
    상기 불휘발성 메모리 장치는 상기 읽기 레벨 정보에 대응하는 복수의 좌표값 성분들을 상기 메모리 컨트롤러에 제공하는 메모리 시스템.
  19. 제 11 항에 있어서,
    상기 확률 분포 함수는 상기 문턱 전압에 대한 2차 함수로 모델링되는 메모리 시스템.
  20. 제 19 항에 있어서,
    상기 메모리 컨트롤러는 상기 불휘발성 메모리 장치에 서로 다른 4개의 읽기 레벨을 제공하는 메모리 시스템.
KR1020120119106A 2012-10-25 2012-10-25 회귀 분석법을 사용하는 메모리 시스템 및 그것의 읽기 방법 KR102038408B1 (ko)

Priority Applications (6)

Application Number Priority Date Filing Date Title
KR1020120119106A KR102038408B1 (ko) 2012-10-25 2012-10-25 회귀 분석법을 사용하는 메모리 시스템 및 그것의 읽기 방법
JP2013220910A JP6345407B2 (ja) 2012-10-25 2013-10-24 回帰分析法を使用しているメモリシステム及びそれの読み取り方法
US14/062,092 US9111626B2 (en) 2012-10-25 2013-10-24 Semiconductor memory systems using regression analysis and read methods thereof
CN201310511873.4A CN103778962B (zh) 2012-10-25 2013-10-25 使用回归分析的半导体存储系统及其读取方法
CN201910211592.4A CN110085275B (zh) 2012-10-25 2013-10-25 读取非易失性存储器的方法和存储设备
US14/811,222 US9552887B2 (en) 2012-10-25 2015-07-28 Semiconductor memory systems using regression analysis and read methods thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020120119106A KR102038408B1 (ko) 2012-10-25 2012-10-25 회귀 분석법을 사용하는 메모리 시스템 및 그것의 읽기 방법

Publications (2)

Publication Number Publication Date
KR20140052691A true KR20140052691A (ko) 2014-05-07
KR102038408B1 KR102038408B1 (ko) 2019-10-30

Family

ID=50547061

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120119106A KR102038408B1 (ko) 2012-10-25 2012-10-25 회귀 분석법을 사용하는 메모리 시스템 및 그것의 읽기 방법

Country Status (4)

Country Link
US (2) US9111626B2 (ko)
JP (1) JP6345407B2 (ko)
KR (1) KR102038408B1 (ko)
CN (2) CN110085275B (ko)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160062298A (ko) * 2014-11-24 2016-06-02 삼성전자주식회사 불휘발성 메모리 시스템의 동작 방법
KR20160099164A (ko) * 2015-02-11 2016-08-22 삼성전자주식회사 불휘발성 메모리 및 불휘발성 메모리를 포함하는 스토리지 장치
US10468097B2 (en) 2016-06-20 2019-11-05 SK Hynix Inc. Data storage device and operating method of determining appropriateness of a read bias
WO2020139425A3 (en) * 2018-12-26 2020-10-22 Western Digital Technologies, Inc. On-chip non-volatile memory (nvm) search
US11133069B2 (en) 2018-10-01 2021-09-28 SK Hynix Inc. Memory controller to determine an optimal read voltage, operating method thereof and storage device including the same
KR20220158115A (ko) * 2021-05-20 2022-11-30 한국전자통신연구원 플래시 메모리를 이용한 가우시안 오류 데이터 생성 방법 및 이를 이용한 장치

Families Citing this family (53)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102038408B1 (ko) * 2012-10-25 2019-10-30 삼성전자주식회사 회귀 분석법을 사용하는 메모리 시스템 및 그것의 읽기 방법
KR101503822B1 (ko) * 2013-10-14 2015-03-18 주식회사 디에이아이오 비휘발성 메모리 장치
KR102174030B1 (ko) * 2014-05-13 2020-11-05 삼성전자주식회사 불휘발성 메모리 장치를 포함하는 저장 장치 및 그것의 읽기 방법
KR20160005264A (ko) * 2014-07-04 2016-01-14 삼성전자주식회사 저장 장치 및 그것의 읽기 방법들
US9741431B2 (en) * 2014-11-10 2017-08-22 Sk Hynix Memory Solutions Inc. Optimal read threshold estimation
US9905302B2 (en) 2014-11-20 2018-02-27 Western Digital Technologies, Inc. Read level grouping algorithms for increased flash performance
US9720754B2 (en) 2014-11-20 2017-08-01 Western Digital Technologies, Inc. Read level grouping for increased flash performance
US9576671B2 (en) 2014-11-20 2017-02-21 Western Digital Technologies, Inc. Calibrating optimal read levels
US9785383B2 (en) 2015-03-09 2017-10-10 Toshiba Memory Corporation Memory system and method of controlling nonvolatile memory
US10180876B2 (en) * 2015-08-04 2019-01-15 Toshiba Memory Corporation Memory controller and semiconductor memory device
KR102459077B1 (ko) 2016-01-12 2022-10-27 삼성전자주식회사 비선형 필터링 방식을 사용하는 메모리 시스템 및 그것의 읽기 방법
KR102585221B1 (ko) 2016-04-21 2023-10-05 삼성전자주식회사 메모리 장치, 메모리 시스템 및 메모리 장치의 동작 방법
US9679661B1 (en) 2016-06-28 2017-06-13 Sandisk Technologies Llc Non-volatile storage system with self-test for read performance enhancement feature setup
US9672940B1 (en) 2016-08-18 2017-06-06 Sandisk Technologies Llc Non-volatile memory with fast read process
JP6674361B2 (ja) * 2016-09-29 2020-04-01 キオクシア株式会社 メモリシステム
KR102643916B1 (ko) 2016-10-18 2024-03-08 삼성전자주식회사 스토리지 장치, 메모리 시스템, 및 그것의 읽기 전압 결정 방법
KR102302187B1 (ko) 2017-03-13 2021-09-14 삼성전자주식회사 비휘발성 메모리 장치의 동작 방법 및 비휘발성 메모리 장치
US10452480B2 (en) 2017-05-25 2019-10-22 Micron Technology, Inc. Memory device with dynamic processing level calibration
US10140040B1 (en) 2017-05-25 2018-11-27 Micron Technology, Inc. Memory device with dynamic program-verify voltage calibration
KR102353405B1 (ko) 2017-09-19 2022-01-19 삼성전자주식회사 특성 데이터 전처리 시스템, 장치, 방법 및 이를 이용한 메모리 제어 시스템
US10366763B2 (en) 2017-10-31 2019-07-30 Micron Technology, Inc. Block read count voltage adjustment
KR102427638B1 (ko) 2018-01-10 2022-08-01 삼성전자주식회사 비휘발성 메모리 장치 및 이의 읽기 방법
KR102506507B1 (ko) * 2018-01-19 2023-03-07 삼성전자주식회사 통신 시스템에서 신호를 송/수신하는 장치 및 방법
CN110120234B (zh) * 2018-02-07 2022-04-15 北京忆芯科技有限公司 固态存储设备及其最优读出阈值电压的搜索方法
KR102617350B1 (ko) 2018-03-14 2023-12-26 삼성전자주식회사 메모리 컨트롤러, 그것의 동작 방법 및 그것을 포함하는 저장 장치
CN110400593B (zh) * 2018-04-24 2021-08-03 群联电子股份有限公司 存储器管理方法、存储器储存装置及存储器控制电路单元
US10566063B2 (en) 2018-05-16 2020-02-18 Micron Technology, Inc. Memory system with dynamic calibration using a trim management mechanism
US10664194B2 (en) 2018-05-16 2020-05-26 Micron Technology, Inc. Memory system with dynamic calibration using a variable adjustment mechanism
US10990466B2 (en) 2018-06-20 2021-04-27 Micron Technology, Inc. Memory sub-system with dynamic calibration using component-based function(s)
CN110797069B (zh) * 2018-08-01 2021-10-22 群联电子股份有限公司 电压调整方法、存储器控制电路单元以及存储器存储装置
JP2020047339A (ja) 2018-09-18 2020-03-26 キオクシア株式会社 メモリシステム
KR102599123B1 (ko) * 2018-11-14 2023-11-06 삼성전자주식회사 인공 신경망 모델에 기초하여 읽기 레벨들을 추론하는 스토리지 장치 및 인공 신경망 모델의 학습 방법
US11163483B2 (en) 2018-12-31 2021-11-02 SK Hynix Inc. Robust detection techniques for updating read voltages of memory devices
US11327551B2 (en) 2019-02-14 2022-05-10 Micron Technology, Inc. Methods and apparatus for characterizing memory devices
US11256778B2 (en) * 2019-02-14 2022-02-22 Micron Technology, Inc. Methods and apparatus for checking the results of characterized memory searches
TWI690929B (zh) * 2019-04-11 2020-04-11 點序科技股份有限公司 記憶體裝置及其讀取參考電壓的調整方法
KR20210024912A (ko) * 2019-08-26 2021-03-08 에스케이하이닉스 주식회사 저장 장치 및 그 동작 방법
KR20210083466A (ko) 2019-12-26 2021-07-07 삼성전자주식회사 스토리지 장치 및 스토리지 장치의 동작 방법
JP7087013B2 (ja) * 2020-03-06 2022-06-20 キオクシア株式会社 メモリシステムおよび不揮発性メモリの制御方法
US11265021B2 (en) * 2020-03-10 2022-03-01 SK Hynix Inc. Apparatus and method for error recovery in memory system
US11049582B1 (en) 2020-05-07 2021-06-29 Micron Technology, Inc. Detection of an incorrectly located read voltage
US11177013B1 (en) * 2020-05-07 2021-11-16 Micron Technology, Inc. Determine signal and noise characteristics centered at an optimized read voltage
US11024401B1 (en) 2020-05-07 2021-06-01 Micron Technology, Inc. Compute an optimized read voltage
US11238953B2 (en) 2020-05-07 2022-02-01 Micron Technology, Inc. Determine bit error count based on signal and noise characteristics centered at an optimized read voltage
KR20220029233A (ko) * 2020-09-01 2022-03-08 삼성전자주식회사 페이지 버퍼 회로 및 이를 포함하는 메모리 장치
KR20220139685A (ko) 2021-04-08 2022-10-17 에스케이하이닉스 주식회사 반도체 메모리 장치 및 그 동작 방법
KR102460717B1 (ko) 2021-08-17 2022-10-31 삼성전자주식회사 최적 독출 레벨을 산출하는 메모리 컨트롤러, 이를 포함하는 메모리 시스템 및 메모리 컨트롤러의 동작방법
EP4152332A1 (en) * 2021-09-17 2023-03-22 Samsung Electronics Co., Ltd. Storage controller determining distribution type, method of operating the same, and method of operating storage device including the same
KR102491652B1 (ko) 2021-09-17 2023-01-27 삼성전자주식회사 산포 타입을 결정하는 스토리지 컨트롤러, 그것의 동작하는 방법, 및 그것을 포함하는 스토리지 장치의 동작하는 방법
EP4160603A1 (en) * 2021-10-01 2023-04-05 Samsung Electronics Co., Ltd. Storage controller determining error count, method of operating the same, and method of operating storage device including the same
KR102491655B1 (ko) 2021-10-01 2023-01-27 삼성전자주식회사 에러 카운트를 결정하는 스토리지 컨트롤러, 그것의 동작하는 방법, 및 그것을 포함하는 스토리지 장치의 동작하는 방법
KR20230053924A (ko) 2021-10-15 2023-04-24 삼성전자주식회사 회귀 분석법을 활용한 비휘발성 메모리 장치의 독출 전압 검색 방법 및 이를 이용한 비휘발성 메모리 장치의 데이터 독출 방법
US11853590B2 (en) * 2021-12-02 2023-12-26 SK Hynix Inc. Read threshold estimation system using calculations based on polynomial regression

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002526717A (ja) * 1998-10-02 2002-08-20 フィヒト ゲゼルシャフト ミット ベシュレンクテル ハフツング ウント コー. カーゲー 噴射装置における電子的トリミングの方法
JP2003298877A (ja) * 2002-03-29 2003-10-17 Fujitsu General Ltd 非線形処理回路
KR100888842B1 (ko) * 2007-06-28 2009-03-17 삼성전자주식회사 읽기 전압을 최적화할 수 있는 플래시 메모리 장치 및그것의 독출 전압 설정 방법
US20100020611A1 (en) * 2008-07-23 2010-01-28 Park Kitae Flash memory systems and operating methods using adaptive read voltage levels
KR20100127406A (ko) * 2009-05-26 2010-12-06 삼성전자주식회사 저장 장치 및 그것의 읽기 방법
US20110044101A1 (en) * 2009-08-18 2011-02-24 Skymed Corporation Method and system of finding a read voltage for a flash memory
JP2012133832A (ja) * 2010-12-20 2012-07-12 Samsung Yokohama Research Institute Co Ltd 不揮発性半導体記憶装置、及び読み出し電圧検出方法
US8547740B2 (en) * 2007-03-12 2013-10-01 Apple Inc. Adaptive estimation of memory cell read thresholds

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4660243B2 (ja) * 2005-03-28 2011-03-30 株式会社東芝 半導体記憶装置
US7649793B1 (en) * 2006-05-04 2010-01-19 Marvell International Ltd. Channel estimation for multi-level memories using pilot signals
US8725929B1 (en) * 2006-11-06 2014-05-13 Marvell World Trade Ltd. Adaptive read and write systems and methods for memory cells
US7941590B2 (en) * 2006-11-06 2011-05-10 Marvell World Trade Ltd. Adaptive read and write systems and methods for memory cells
JP2008251138A (ja) 2007-03-30 2008-10-16 Toshiba Corp 不揮発性半導体メモリ、不揮発性半導体メモリの制御方法、不揮発性半導体メモリシステム、及びメモリカード
KR20090048108A (ko) 2007-11-09 2009-05-13 주식회사 하이닉스반도체 불휘발성 메모리 장치와 그 독출방법
KR100953047B1 (ko) * 2007-12-28 2010-04-14 주식회사 하이닉스반도체 불휘발성 메모리 소자의 동작 방법
KR20090117172A (ko) 2008-05-08 2009-11-12 삼성전자주식회사 메모리 장치 및 메모리 데이터 읽기 방법
KR101516577B1 (ko) 2008-11-10 2015-05-06 삼성전자주식회사 비휘발성 반도체 메모리 장치, 그를 포함하는 메모리 카드와 메모리 시스템 및 그의 리드 전압 추정 방법
US8120953B2 (en) 2008-12-11 2012-02-21 Samsung Electronics Co., Ltd. Reading method of nonvolatile semiconductor memory device
US8184480B2 (en) 2008-12-11 2012-05-22 Samsung Electronics Co., Ltd. Multi-level nonvolatile memory device with reduced number of read voltages based on a cell address and method for operating the same
KR101578511B1 (ko) * 2009-05-20 2015-12-18 삼성전자주식회사 리드 전압 설정 방법
JP5361603B2 (ja) * 2009-08-13 2013-12-04 株式会社東芝 コントローラ
KR101618311B1 (ko) 2010-02-08 2016-05-04 삼성전자주식회사 플래시 메모리 장치 및 그것의 읽기 방법
KR20110128436A (ko) 2010-05-24 2011-11-30 삼성전자주식회사 비휘발성 메모리 장치의 리드 레벨 추정 방법 및 이를 수행하는 메모리 컨트롤러, 및 기록매체
US20120008414A1 (en) 2010-07-06 2012-01-12 Michael Katz Systems and methods for storing, retrieving, and adjusting read thresholds in flash memory storage system
US8508995B2 (en) 2010-09-15 2013-08-13 Densbits Technologies Ltd. System and method for adjusting read voltage thresholds in memories
KR101919902B1 (ko) * 2011-10-18 2018-11-20 삼성전자 주식회사 메모리 장치의 데이터 독출 방법
KR101858560B1 (ko) * 2011-11-24 2018-05-18 삼성전자주식회사 불휘발성 메모리 장치의 동작 방법과 상기 불휘발성 메모리 장치를 포함하는 메모리 시스템의 동작 방법
KR101939234B1 (ko) * 2012-07-23 2019-01-16 삼성전자 주식회사 메모리 장치, 메모리 시스템 및 상기 메모리 장치의 독출 전압의 제어 방법
KR20140013401A (ko) * 2012-07-23 2014-02-05 삼성전자주식회사 메모리 장치, 메모리 시스템 및 상기 메모리 장치의 독출 전압의 제어 방법
KR102038408B1 (ko) * 2012-10-25 2019-10-30 삼성전자주식회사 회귀 분석법을 사용하는 메모리 시스템 및 그것의 읽기 방법
US9147490B2 (en) * 2013-03-15 2015-09-29 Sandisk Technologies Inc. System and method of determining reading voltages of a data storage device

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002526717A (ja) * 1998-10-02 2002-08-20 フィヒト ゲゼルシャフト ミット ベシュレンクテル ハフツング ウント コー. カーゲー 噴射装置における電子的トリミングの方法
JP2003298877A (ja) * 2002-03-29 2003-10-17 Fujitsu General Ltd 非線形処理回路
US8547740B2 (en) * 2007-03-12 2013-10-01 Apple Inc. Adaptive estimation of memory cell read thresholds
KR100888842B1 (ko) * 2007-06-28 2009-03-17 삼성전자주식회사 읽기 전압을 최적화할 수 있는 플래시 메모리 장치 및그것의 독출 전압 설정 방법
US20100020611A1 (en) * 2008-07-23 2010-01-28 Park Kitae Flash memory systems and operating methods using adaptive read voltage levels
KR20100127406A (ko) * 2009-05-26 2010-12-06 삼성전자주식회사 저장 장치 및 그것의 읽기 방법
US20110044101A1 (en) * 2009-08-18 2011-02-24 Skymed Corporation Method and system of finding a read voltage for a flash memory
JP2012133832A (ja) * 2010-12-20 2012-07-12 Samsung Yokohama Research Institute Co Ltd 不揮発性半導体記憶装置、及び読み出し電圧検出方法

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160062298A (ko) * 2014-11-24 2016-06-02 삼성전자주식회사 불휘발성 메모리 시스템의 동작 방법
US9478300B2 (en) 2014-11-24 2016-10-25 Samsung Electronics Co., Ltd. Operation method of nonvolatile memory system
KR20160099164A (ko) * 2015-02-11 2016-08-22 삼성전자주식회사 불휘발성 메모리 및 불휘발성 메모리를 포함하는 스토리지 장치
US10468097B2 (en) 2016-06-20 2019-11-05 SK Hynix Inc. Data storage device and operating method of determining appropriateness of a read bias
US11133069B2 (en) 2018-10-01 2021-09-28 SK Hynix Inc. Memory controller to determine an optimal read voltage, operating method thereof and storage device including the same
WO2020139425A3 (en) * 2018-12-26 2020-10-22 Western Digital Technologies, Inc. On-chip non-volatile memory (nvm) search
US11158369B2 (en) 2018-12-26 2021-10-26 Western Digital Technologies, Inc. On-chip non-volatile memory (NVM) search
US12002508B2 (en) 2018-12-26 2024-06-04 Western Digital Technologies, Inc. On-chip non-volatile memory (NVM) search
KR20220158115A (ko) * 2021-05-20 2022-11-30 한국전자통신연구원 플래시 메모리를 이용한 가우시안 오류 데이터 생성 방법 및 이를 이용한 장치
US11880269B2 (en) 2021-05-20 2024-01-23 Electronics And Telecommunications Research Institute Method for generating Gaussian error data using flash memory and apparatus using the same

Also Published As

Publication number Publication date
CN103778962A (zh) 2014-05-07
US20150332778A1 (en) 2015-11-19
US9552887B2 (en) 2017-01-24
JP6345407B2 (ja) 2018-06-20
CN103778962B (zh) 2019-04-16
US20140119124A1 (en) 2014-05-01
CN110085275B (zh) 2023-07-25
JP2014086128A (ja) 2014-05-12
US9111626B2 (en) 2015-08-18
CN110085275A (zh) 2019-08-02
KR102038408B1 (ko) 2019-10-30

Similar Documents

Publication Publication Date Title
KR102038408B1 (ko) 회귀 분석법을 사용하는 메모리 시스템 및 그것의 읽기 방법
KR102302187B1 (ko) 비휘발성 메모리 장치의 동작 방법 및 비휘발성 메모리 장치
US8804422B2 (en) Nonvolatile memory device and related method of operation
KR101934892B1 (ko) 메모리 장치의 열화 상태 판정 방법 및 이를 이용한 메모리 시스템
KR102174030B1 (ko) 불휘발성 메모리 장치를 포함하는 저장 장치 및 그것의 읽기 방법
US9324420B2 (en) Method of estimating deterioration state of memory device and related method of wear leveling
CN107305791B (zh) 存储装置和存储系统
KR101944793B1 (ko) 플래시 메모리를 포함하는 플래시 메모리 시스템 및 그것의 비정상 워드 라인 검출 방법
TWI545580B (zh) 隨機數產生方法、記憶體儲存裝置及控制電路
KR101979734B1 (ko) 메모리 장치의 독출 전압 제어 방법 및 이를 이용한 데이터 독출 방법
KR20170097267A (ko) 읽기 전압 서치 유닛을 포함하는 데이터 저장 장치
KR20140113190A (ko) 비휘발성 메모리 장치의 llr 최적화 방법 및 비휘발성 메모리 장치의 에러 정정 방법
KR20140091955A (ko) 플래시 메모리, 플래시 메모리 장치 및 이의 동작 방법
CN113223593B (zh) 存储单元的读取电压优化方法、3d存储器的控制器及其操作方法
US9679638B2 (en) Semiconductor device and method of operating the same
CN113628665B (zh) 基于以经优化读取电压为中心的信号和噪声特性确定位错误计数
US20110208897A1 (en) Method and memory system using a priori probability information to read stored data
KR20150007397A (ko) 반도체 메모리 장치 및 이의 동작 방법
KR20180080842A (ko) 반도체 메모리 장치 및 이의 동작 방법
KR20190108423A (ko) 메모리 컨트롤러, 그것의 동작 방법 및 그것을 포함하는 저장 장치
KR20240048306A (ko) G-ldpc 인코더, g-ldpc 인코딩 방법 및 스토리지 장치
CN116246683A (zh) 使用深度神经网络在存储器装置中读取阈值预测

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant