KR20120035064A - 리드 성능을 향상시킬 수 있는 리드 파라미터 변경 방법과 상기 방법을 수행할 수 있는 장치들 - Google Patents

리드 성능을 향상시킬 수 있는 리드 파라미터 변경 방법과 상기 방법을 수행할 수 있는 장치들 Download PDF

Info

Publication number
KR20120035064A
KR20120035064A KR1020100096550A KR20100096550A KR20120035064A KR 20120035064 A KR20120035064 A KR 20120035064A KR 1020100096550 A KR1020100096550 A KR 1020100096550A KR 20100096550 A KR20100096550 A KR 20100096550A KR 20120035064 A KR20120035064 A KR 20120035064A
Authority
KR
South Korea
Prior art keywords
data
read
voltage
memory
read operation
Prior art date
Application number
KR1020100096550A
Other languages
English (en)
Other versions
KR101727704B1 (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 KR1020100096550A priority Critical patent/KR101727704B1/ko
Priority to US13/238,749 priority patent/US9009390B2/en
Priority to JP2011220170A priority patent/JP6022756B2/ja
Publication of KR20120035064A publication Critical patent/KR20120035064A/ko
Application granted granted Critical
Publication of KR101727704B1 publication Critical patent/KR101727704B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • 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
    • 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
    • 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
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/38Response verification devices
    • G11C29/42Response verification devices using error correcting codes [ECC] or parity check

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Read Only Memory (AREA)
  • For Increasing The Reliability Of Semiconductor Memories (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

비휘발성 메모리 장치와 메모리 컨트롤러를 포함하는 메모리 시스템이 개시된다. 제1리드 동작 동안 상기 비휘발성 메모리 장치로부터 최초로 출력된 제1데이터에 대한 리드 동작이 성공했을 때 상기 메모리 컨트롤러는 제2리드 동작 동안 상기 비휘발성 메모리 장치에 저장된 제2데이터를 리드하기 위한 리드 전압을 변경할수 있다.

Description

리드 성능을 향상시킬 수 있는 리드 파라미터 변경 방법과 상기 방법을 수행할 수 있는 장치들{METHOD FOR CHANGING READ PARAMETER FOR IMPROVING READ PERFORMANCE AND APPARATUSES USING THE SAME}
본 발명의 개념에 따른 실시 예는 리드 파라미터 변경 스킴(scheme)에 관한 것으로, 특히 비휘발성 메모리 장치의 리드 성능(read performance)을 향상시킬 수 있는 리드 파라미터 변경 방법과 상기 방법을 수행할 수 있는 장치들에 관한 것이다.
메모리 장치는 휘발성(volatile) 메모리 장치와 비휘발성(non-volatile) 메모리 장치로 분류된다. 상기 휘발성 메모리 장치에서는 전원(power)이 제거될 때 데이터는 유지되지 않는다. 그러나, 상기 비휘발성 메모리 장치에서는 전원이 제거되더라도 데이터는 유지된다.
상기 비휘발성 메모리 장치의 예들로서 ROM(read only memory), 또는 EEPROM (Electrically Erasable Programmable Read-Only Memory) 등이 있다.
플래시(flash) EEPROM으로 소개된 플래시 메모리 장치의 구조와 동작은 종래의 EEPROM의 구조와 동작과 서로 다르다. 상기 플래시 메모리 장치는 블락(block) 단위로 전기적 소거(electric erase) 동작을 수행하고 비트 단위로 프로그램 동작을 수행할 수 있다.
상기 플래시 메모리 장치에 포함된 프로그램된 다수개의 메모리 셀들의 문턱 전압들(threshold voltages)은 여러 가지 원인, 예컨대 플로팅 게이트 커플링 (floating gate coupling), 시간의 경과에 따른 전하 손실(charge loss), 등에 따라 변할 수 있다.
상기 다수의 메모리 셀들의 문턱 전압들의 변화는 리드 동작의 신뢰성 (reliability)을 악화시킬 수 있다.
본 발명이 이루고자 하는 기술적인 과제는 리드 동작 성공 후에 리드 리트라이(read retry) 없이 리드 파라미터를 변경함으로써 추후 리드 동작 시에 리드 동작의 실패 회수를 줄이고 리드 리트라이를 수행하는 알고리즘의 실행 회수를 줄여 리드 성능을 향상시킬 수 있는 리드 파라미터 변경 방법과 상기 방법을 수행할 수 있는 장치들을 제공하는 것이다.
본 발명의 실시 예에 따른 비휘발성 메모리 장치의 리드 방법은 리드 전압을 이용하여 메모리 셀 어레이에 저장된 제1데이터를 리드하는 단계와, 상기 제1데이터에 포함된 1과 0중에서 어느 하나의 개수를 카운트한 카운트 값과 기준 카운트 값의 비교 결과에 따라 상기 메모리 셀 어레이의 제1영역에 저장된 제2데이터를 리드하기 위하여 상기 리드 전압을 변경하는 단계를 포함한다.
상기 비휘발성 메모리 장치의 리드 방법은 변경된 리드 전압에 대한 정보를 상기 메모리 셀 어레이의 제2영역에 저장하는 단계와, 상기 제2영역에 저장된 상기 정보에 상응하는 상기 변경된 리드 전압을 이용하여 상기 제2데이터를 리드하는 단계를 더 포함한다.
상기 리드 전압을 변경하는 단계는 상기 카운트 값이 상기 기준 카운트 값보다 클 때, 상기 리드 전압을 감소시킨다.
실시 예에 따라 상기 제1영역은 메모리 블록 단위로 제공된다. 다른 실시 예에 따라 상기 제1영역은 페이지 단위로 제공된다. 또 다른 실시 예에 따라 상기 제1영역은 워드 라인 단위로 제공된다.
실시 예에 따라 상기 메모리 셀 어레이가 상기 제1데이터를 저장하기 위한 복수의 멀티-레벨 셀들을 포함할 때, 상기 제1데이터는 상기 복수의 멀티-레벨 셀들 각각에 저장된 첫 번째 페이지 데이터를 포함한다.
다른 실시 예에 따라 상기 메모리 셀 어레이가 상기 제1데이터를 저장하기 위한 복수의 멀티-레벨 셀들을 포함할 때, 상기 복수의 멀티-레벨 셀들 각각은 복수의 상태들 중에서 어느 하나의 상태를 갖도록 프로그램된다.
본 발명의 실시 예에 따른 비휘발성 메모리 장치는 복수의 워드 라인들과 복수의 비트 라인들 사이에 접속되고 제1데이터와 제2데이터를 저장하기 위한 복수의 메모리 셀들을 포함하는 메모리 셀 어레이와, 로우 어드레스에 응답하여 상기 복수의 워드 라인들 중에서 하나를 선택하기 위한 로우 디코더와, 제어 신호에 따라 제1리드 전압 또는 제2리드 전압을 상기 선택된 워드 라인으로 공급하기 위한 워드 라인 전압 발생기와, 상기 제1리드 전압을 이용하여 리드된 상기 제1데이터 또는 상기 제2리드 전압을 이용하여 리드된 상기 제2데이터를 일시적으로 저장하기 위한 페이지 버퍼와, 상기 페이지 버퍼로부터 출력된 상기 제1데이터에 포함된 1과 0중에서 어느 하나의 개수를 카운트한 카운트 값과 기준 카운트 값의 비교 결과에 따라, 상기 제1리드 전압을 상기 제2리드 전압으로 변경하기 위한 상기 제어 신호를 발생하는 컨트롤 로직을 포함한다.
상기 페이지 버퍼는 상기 복수의 메모리 셀들 중에서 적어도 하나의 메모리 셀에 프로그램될 상기 컨트롤 로직으로부터 출력된 상기 제2리드 전압에 상응하는 제3데이터 또는 상기 적어도 하나의 메모리 셀로부터 리드된 상기 제3데이터를 일시적으로 저장하고, 상기 컨트롤 로직은 상기 페이지 버퍼로부터 출력된 상기 제3데이터에 따라 상기 제1리드 전압을 상기 제2리드 전압으로 변경하기 위한 상기 제어 신호를 발생한다.
상기 카운트 값이 상기 기준 카운트 값보다 클 때, 상기 컨트롤 로직은 상기 제1리드 전압을 상기 제1리드 전압보다 낮은 상기 제2리드 전압으로 변경하기 위하여 상기 제어 신호를 발생한다.
상기 복수의 메모리 셀들 중에서 상기 제1데이터와 상기 제3데이터를 저장하기 위한 복수의 제1메모리 셀들은 스페어 영역에 형성되고, 상기 복수의 메모리 셀들 중에서 상기 제2데이터를 저장하기 위한 복수의 제2메모리 셀들은 메인 영역에 형성된다.
본 발명의 실시 예에 따른 메모리 컨트롤러의 동작 방법은 제1리드 동작 동안 제1리드 전압에 따라 비휘발성 메모리 장치의 메모리 셀 어레이로부터 최초로 출력된 제1데이터를 수신하는 단계와, 상기 제1데이터에 대한 리드 동작의 성공 여부를 판단하는 단계와, 상기 리드 동작이 성공한 후 제2리드 동작 동안 상기 메모리 셀 어레이에 저장된 제2데이터를 리드하기 위하여 필요한 리드 전압을 상기 제1리드 전압으로부터 제2리드 전압으로 변경하기 위한 정보를 저장한다.
상기 메모리 컨트롤러의 동작 방법은 상기 제1데이터에 포함된 1과 0중에서 어느 하나의 개수를 카운트하여 카운트 값을 출력하는 단계와, 상기 리드 동작이 성공한 후, 상기 카운트 값과 기준 카운트 값의 비교 결과에 따라 상기 제1리드 전압을 상기 제2리드 전압으로 변경하기 위한 상기 정보를 생성하는 단계를 더 포함한다.
실시 예에 따라 상기 리드 동작의 성공 여부는 상기 제1데이터에 대한 에러 정정 디코딩 결과에 따라 판단된다.
다른 실시 예에 따라 상기 리드 동작의 성공 여부는 상기 제1데이터에 대한 에러 정정 디코딩 결과에 따라 에러 정정된 제1데이터가 호스트로 전송되었는지의 여부에 따라 판단된다.
상기 정보를 생성하는 단계는 상기 제1카운트 값이 상기 기준 카운트 값보다 클 때, 상기 제1리드 전압을 상기 제1리드 전압보다 낮은 상기 제2리드 전압으로 변경할 수 있는 상기 정보를 생성하여 메모리에 저장한다.
상기 메모리 컨트롤러의 동작 방법은 상기 제2리드 동작 동안 상기 제2리드 전압의 발생을 지시하는 상기 정보를 포함하는 리드 명령을 상기 비휘발성 메모리 장치로 전송하는 단계와, 상기 리드 명령에 포함된 상기 정보에 상응하는 상기 제2리드 전압에 따라 상기 메모리 셀 어레이로부터 리드된 상기 제2데이터를 수신하는 단계를 더 포함한다.
실시 예에 따라 상기 제2데이터는 메모리 블록 단위 데이터이다. 다른 실시 예에 따라 상기 제2데이터는 페이지 단위 데이터이다. 또 다른 실시 예에 따라 상기 제2데이터는 워드 라인 단위 데이터이다.
본 발명의 다른 실시 예에 따른 메모리 컨트롤러의 동작 방법은 제1리드 동작 동안 제1리드 전압에 따라 비휘발성 메모리 장치의 메모리 셀 어레이로부터 최초로 출력된 제1데이터를 수신하는 단계와, 상기 제1데이터에 대한 리드 동작의 성공 여부를 판단하는 단계와, 상기 리드 동작이 성공한 후, 제2리드 동작 동안 상기 메모리 셀 어레이에 저장된 제2데이터를 리드하기 위하여 필요한 리드 전압을 상기 제1데이터에 포함된 에러 비트 수와 기준 값의 비교 결과에 따라 상기 제1리드 전압으로부터 제2리드 전압으로 변경하기 위한 정보를 저장한다.
실시 예에 따라 상기 리드 동작의 성공 여부는 상기 제1데이터에 대한 에러 정정 디코딩 결과에 따라 판단된다.
다른 실시 예에 따라 상기 리드 동작의 성공 여부는 상기 제1데이터에 대한 에러 정정 디코딩 결과에 따라 에러 정정된 제1데이터가 호스트로 전송되었는지의 여부에 따라 판단된다.
본 발명의 실시 예에 따른 메모리 컨트롤러는 메모리와, 제1리드 동작 동안 제1리드 전압에 따라 비휘발성 메모리 장치의 메모리 셀 어레이로부터 최초로 출력된 제1데이터에 대한 리드 동작의 성공 여부를 판단하고 상기 리드 동작이 성공했을 때 지시 신호를 생성하기 위한 검출 블록과, 상기 지시 신호에 응답하여, 제2리드 동작 동안 상기 메모리 셀 어레이에 저장된 제2데이터를 리드하기 위하여 필요한 리드 전압을 상기 제1리드 전압으로부터 제2리드 전압으로 변경하기 위한 제1정보를 상기 메모리에 저장하기 위한 리드 전압 제어 블록을 포함한다.
상기 리드 전압 제어 블록은 상기 제1데이터에 포함된 1과 0중에서 어느 하나의 개수를 카운트하여 카운트 값을 생성하고, 상기 카운트 값과 기준 카운트 값의 비교 결과에 따라 상기 제1정보를 생성한다.
실시 예에 따라 상기 검출 블록은 상기 제1데이터에 대한 에러 정정 디코딩을 수행하고 상기 에러 정정이 성공했을 때 상기 지시 신호를 생성한다.
다른 실시 예에 따라 상기 검출 블록은 상기 제1데이터에 대해 에러 정정을 수행하고 에러 정정된 제1데이터가 호스트로 전송된 후 상기 지시 신호를 생성한다.
상기 검출 블록은 제1파라미터를 이용하여 상기 제1데이터에 대한 에러 정정 디코딩을 수행하고, 상기 리드 전압 제어 블록은 상기 제2데이터에 대한 에러 정정 디코딩을 수행하기 위하여 필요한 파라미터를 상기 제1파라미터로부터 제2파라미터로 변경할 수 있는 제2정보를 상기 메모리에 더 저장한다.
상기 검출 블록이 ECC(error correction code) 디코더일 때, 상기 제1파라미터와 상기 제2파라미터 각각은 LLR(log likelihood ratio)일 수 있다.
상기 제1파라미터는 상기 제1데이터에 대해 하드 디지젼 디코딩(hard decision decoding)을 수행할지 또는 소프트 디시젼 디커딩을 수행할지를 결정하기 위한 파라미터이고, 상기 제2파라미터는 상기 제2데이터에 대해 하드 디지젼 디코딩을 수행할지 또는 소프트 디시젼 디커딩을 수행할지를 결정하기 위한 파라미터이다.
본 발명의 다른 실시 예에 따른 메모리 컨트롤러는 메모리와, 제1리드 동작 동안 제1리드 전압에 따라 비휘발성 메모리 장치의 메모리 셀 어레이로부터 최초로 출력된 제1데이터에 대한 리드 동작의 성공 여부를 판단하고 상기 리드 동작이 성공했을 때 지시 신호를 생성하기 위한 검출 블록과, 상기 지시 신호 및 상기 제1데이터에 포함된 에러 비트 수와 기준 값의 비교 결과에 따라, 제2리드 동작 동안 상기 메모리 셀 어레이에 저장된 제2데이터를 리드하기 위하여 필요한 리드 전압을 상기 제1리드 전압으로부터 제2리드 전압으로 변경할 수 있는 제1정보를 상기 메모리에 저장하기 위한 리드 전압 제어 블록을 포함한다.
실시 예에 따라 상기 검출 블록은 상기 제1데이터에 대한 에러 정정 디코딩을 수행하고 상기 에러 정정이 성공했을 때 상기 지시 신호를 생성한다.
다른 실시 예에 따라 상기 검출 블록은 상기 제1데이터에 대해 에러 정정을 수행하고 에러 정정된 제1데이터가 호스트로 전송된 후 상기 지시 신호를 생성한다.
본 발명의 일 실시 예에 따른 메모리 시스템의 동작 방법은 제1리드 동작 동안 비휘발성 메모리 장치가 제1리드 전압에 따라 상기 비휘발성 메모리 장치의 메모리 셀 어레이로부터 최초로 출력된 제1데이터를 메모리 컨트롤러로 전송하는 단계; 및 상기 메모리 컨트롤러는 상기 제1데이터에 대한 리드 동작의 성공 여부를 판단하고, 상기 리드 동작이 성공한 후 상기 메모리 컨트롤러는 상기 제1리드 전압을 제2리드 전압으로 변경할 수 있는 정보를 생성하여 메모리로 저장하는 단계를 포함한다.
실시 예에 따라 상기 메모리 컨트롤러는 상기 제1데이터에 대한 에러 정정 디코딩이 성공한 후 상기 정보를 생성한다.
다른 실시 예에 따라 상기 메모리 컨트롤러는 상기 제1데이터에 대해 에러 정정을 수행하고 에러 정정된 제1데이터가 호스트로 전송된 후 상기 지시 신호를 생성한다.
본 발명의 다른 실시 예에 따른 메모리 시스템의 동작 방법은 제1리드 동작 동안 비휘발성 메모리 장치가 제1리드 전압에 따라 상기 비휘발성 메모리 장치의 메모리 셀 어레이로부터 최초로 출력된 제1데이터를 메모리 컨트롤러로 전송하는 단계와, 상기 메모리 컨트롤러가 상기 제1데이터에 포함된 1과 0중에서 어느 하나의 개수를 카운트하여 카운트 값을 출력하는 단계와, 상기 메모리 컨트롤러가 상기 제1데이터에 대한 리드 동작의 성공 여부를 판단하는 단계와, 상기 리드 동작이 성공했을 때, 상기 메모리 컨트롤러는 상기 카운트 값과 기준 카운트 값의 비교 결과에 따라 상기 제1리드 전압을 제2리드 전압으로 변경할 수 있는 정보를 메모리로 저장하는 단계를 포함한다.
상기 메모리 컨트롤러가 제2리드 동작을 수행하기 위하여 상기 제2리드 전압의 발생을 지시하는 상기 정보를 포함하는 리드 명령을 상기 비휘발성 메모리 장치로 전송하는 단계와, 상기 비휘발성 메모리 장치가 상기 정보에 상응하는 상기 제2리드 전압에 따라 상기 메모리 셀 어레이로부터 리드된 제2데이터를 상기 메모리 컨트롤러로 전송하는 단계를 더 포함한다.
본 발명의 또 다른 실시 예에 따른 메모리 시스템의 동작 방법은 제1리드 동작 동안 비휘발성 메모리 장치가 제1리드 전압에 따라 상기 비휘발성 메모리 장치의 메모리 셀 어레이로부터 최초로 출력된 제1데이터를 메모리 컨트롤러로 전송하는 단계와, 상기 메모리 컨트롤러가 상기 제1데이터에 대한 리드 동작의 성공 여부를 판단하는 단계와, 상기 리드 동작이 성공했을 때, 상기 메모리 컨트롤러는 상기 제1데이터에 포함된 에러 비트 수와 기준 값의 비교 결과에 따라 상기 제1리드 전압을 제2리드 전압으로 변경할 수 있는 정보를 메모리로 저장하는 단계를 포함한다.
본 발명의 일 실시 예에 따른 메모리 시스템은 메모리 셀 어레이를 포함하는 비휘발성 메모리 장치와, 상기 비휘발성 메모리 장치의 동작을 제어할 수 있는 메모리 컨트롤러를 포함하며, 제1리드 동작 동안 상기 비휘발성 메모리 장치는 제1리드 전압에 따라 상기 메모리 셀 어레이로부터 최초로 출력된 제1데이터를 상기 메모리 컨트롤러로 전송하고, 상기 메모리 컨트롤러는 상기 제1데이터에 대한 리드 동작의 성공 여부를 판단하고, 상기 리드 동작이 성공했을 때 제2리드 동작 동안 상기 메모리 셀 어레이에 저장된 제2데이터를 리드하기 위하여 필요한 리드 전압을 상기 제1리드 전압으로부터 제2리드 전압으로 변경할 수 있는 정보를 메모리로 저장한다.
실시 예에 따라 상기 메모리 컨트롤러는 상기 제1데이터에 대한 에러 정정 디코딩이 성공했을 때 상기 정보를 생성하여 상기 메모리에 저장한다.
다른 실시 예에 따라 상기 메모리 컨트롤러는 상기 제1데이터에 대해 에러 정정을 수행하고 에러 정정된 제1데이터가 호스트로 전송되었을 때 상기 정보를 생성하여 상기 메모리에 저장한다.
본 발명의 다른 실시 예에 따른 메모리 시스템은 메모리 셀 어레이를 포함하는 비휘발성 메모리 장치와, 상기 비휘발성 메모리 장치의 동작을 제어할 수 있는 메모리 컨트롤러를 포함하며, 제1리드 동작 동안, 상기 비휘발성 메모리 장치는 제1리드 전압에 따라 상기 메모리 셀 어레이로부터 최초로 출력된 제1데이터를 상기 메모리 컨트롤러로 전송하고, 상기 메모리 컨트롤러는 상기 제1데이터에 포함된 1과 0중에서 어느 하나의 개수를 카운트하여 카운트 값을 출력하고, 상기 제1데이터에 대한 리드 동작이 성공했을 때 상기 카운트 값과 기준 카운트 값의 비교 결과에 따라 제2리드 동작 동안 상기 메모리 셀 어레이에 저장된 제2데이터를 리드하기 위하여 필요한 리드 전압을 상기 제1리드 전압으로부터 제2리드 전압으로 변경할 수 있는 정보를 메모리로 저장한다.
본 발명의 또 다른 실시 예에 따른 메모리 시스템은 메모리 셀 어레이를 포함하는 비휘발성 메모리 장치와, 상기 비휘발성 메모리 장치의 동작을 제어할 수 있는 메모리 컨트롤러를 포함하며, 제1리드 동작 동안 상기 비휘발성 메모리 장치는 제1리드 전압에 따라 상기 메모리 셀 어레이로부터 최초로 출력된 제1데이터를 상기 메모리 컨트롤러로 전송하고, 상기 메모리 컨트롤러는 상기 제1데이터에 대한 리드 동작의 성공 여부를 판단하고, 상기 리드 동작이 성공했을 때 상기 제1데이터에 포함된 에러 비트 수와 기준 값의 비교 결과에 따라 제2리드 동작 동안 상기 메모리 셀 어레이에 저장된 제2데이터를 리드하기 위하여 필요한 리드 전압을 상기 제1리드 전압으로부터 제2리드 전압으로 변경할 수 있는 정보를 메모리로 저장한다.
본 발명의 실시 예에 따른 리드 파라미터 변경 방법과 상기 방법을 수행할 수 있는 장치들은 리드 데이터에 대한 리드 동작 성공 후에서 상기 리드 데이터에 대하여 리드 리트라이 동작을 수행하지 않고 추후 리드 동작에 사용될 리드 파라미터를 변경할 수 있는 효과가 있다.
따라서, 상기 방법과 상기 장치들은 최적의 리드 파라미터와 현재 파라미터의 차이를 줄일 수 있으므로, ECC 디코딩 실패 후에 리드 리트라이 동작이 수행될 때 리드 성능이 저하되는 것을 방지할 수 있다.
또한 상기 방법과 상기 장치들은 리드 데이터에 대한 ECC 디코딩 성공 후 또는 리드 동작 성공 후에 리드 파라미터를 사전에 변경할 수 있으므로 ECC 디코딩 실패 회수를 감소시켜 상기 ECC 디코딩 실패에 따른 리드 성능의 저하를 감소시킬 수 있는 효과가 있다.
본 발명의 상세한 설명에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 상세한 설명이 제공된다.
도 1은 본 발명의 실시 예에 따른 메모리 시스템의 블록도를 나타낸다.
도 2는 도 1에 도시된 메모리 컨트롤러의 구체적인 블록도를 나타낸다.
도 3은 도 1에 도시된 메모리 셀 어레이에 구현된 다수개의 플래시 메모리 셀들의 문턱 전압들의 변화에 따라 리드 전압을 변경하는 스킴을 나타내는 플롯(plot)이다.
도 4a는 도 1에 도시된 메모리 시스템의 동작 방법을 설명하기 위한 일 실시 예를 나타내는 흐름도이다.
도 4b는 도 1에 도시된 메모리 시스템의 동작 방법을 설명하기 위한 다른 실시 예를 나타내는 흐름도이다.
도 5a는 도 1에 도시된 메모리 시스템의 동작 방법을 설명하기 위한 또 다른 실시 예를 나타내는 흐름도이다.
도 5b는 도 1에 도시된 메모리 시스템의 동작 방법을 설명하기 위한 또 다른 실시 예를 나타내는 흐름도이다.
도 6은 도 5에 도시된 동작 방법을 설명하기 위한 복수의 상태들을 나타내는 플롯이다.
도 7은 도 1에 도시된 메모리 셀 어레이의 구체적인 회로도의 일 실시 예를 나타낸다.
도 8은 도 1에 도시된 메모리 셀 어레이의 구체적인 회로도의 다른 실시 예를 나타낸다.
도 9는 본 발명의 실시 예에 따른 리드 전압을 조절할 수 있는 비휘발성 메모리 장치의 블록도를 나타낸다.
도 10은 도 9에 도시된 컨트롤 로직의 블록도를 나타낸다.
도 11은 도 9에 도시된 비휘발성 메모리 장치의 동작 방법의 일 실시 예를 나타내는 흐름도이다.
도 12는 본 발명의 실시 예에 따른 비휘발성 메모리 장치를 포함하는 전자 장치의 블록도를 나타낸다.
도 13은 본 발명의 다른 실시 예에 따른 비휘발성 메모리 장치를 포함하는 전자 장치의 블록도를 나타낸다.
도 14는 본 발명의 또 다른 실시 예에 따른 비휘발성 메모리 장치를 포함하는 전자 장치의 블록도를 나타낸다.
도 15는 본 발명의 또 다른 실시 예에 따른 비휘발성 메모리 장치를 포함하는 전자 장치의 블록도를 나타낸다.
도 16은 본 발명의 또 다른 실시 예에 따른 비휘발성 메모리 장치를 포함하는 전자 장치의 블록도를 나타낸다.
도 17은 본 발명의 또 다른 실시 예에 따른 비휘발성 메모리 장치를 포함하는 전자 장치의 블록도를 나타낸다.
도 18은 본 발명의 또 다른 실시 예에 따른 비휘발성 메모리 장치를 포함하는 전자 장치의 블록도를 나타낸다.
도 19는 도 18에 도시된 전자 장치를 포함하는 데이터 처리 시스템의 블록도를 나타낸다.
본 명세서에 개시되어 있는 본 발명의 개념에 따른 실시 예들에 대해서 특정한 구조적 또는 기능적 설명들은 단지 본 발명의 개념에 따른 실시 예들을 설명하기 위한 목적으로 예시된 것으로서, 본 발명의 개념에 따른 실시 예들은 다양한 형태들로 실시될 수 있으며 본 명세서에 설명된 실시 예들에 한정되지 않는다.
본 발명의 개념에 따른 실시 예들은 다양한 변경들을 가할 수 있고 여러 가지 형태들을 가질 수 있으므로 실시 예들을 도면에 예시하고 본 명세서에 상세하게 설명하고자 한다. 그러나, 이는 본 발명의 개념에 따른 실시 예들을 특정한 개시 형태들에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물, 또는 대체물을 포함한다.
제1 또는 제2 등의 용어는 다양한 구성 요소들을 설명하는데 사용될 수 있지만, 상기 구성 요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성 요소를 다른 구성 요소로부터 구별하는 목적으로만, 예컨대 본 발명의 개념에 따른 권리 범위로부터 이탈되지 않은 채, 제1구성요소는 제2구성요소로 명명될 수 있고, 유사하게 제2구성요소는 제1구성요소로도 명명될 수 있다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.
본 명세서에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 설시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 가진다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 첨부한 도면을 참조하여 본 발명의 바람직한 실시 예를 설명함으로써, 본 발명을 상세히 설명한다.
도 1은 본 발명의 실시 예에 따른 메모리 시스템의 블록도를 나타낸다.
도 1을 참조하면, 메모리 시스템(10)은 비휘발성 메모리 장치(20A)와 메모리 컨트롤러(50)를 포함한다.
현재 리드 동작(current read operation) 동안 비휘발성 메모리 장치(20A)의 메모리 셀 어레이(22)로부터 최초로 출력된 데이터에 대한 리드 동작이 성공했을 때, 메모리 컨트롤러(50)는 다음 리드 동작(next read operation) 동안에 메모리 셀 어레이(22)로 공급될 리드 전압을 변경하기 위한 리드 명령(RVLC)을 생성하고 생성된 리드 명령(RVLC)을 비휘발성 메모리 장치(20A)로 출력할 수 있다. 따라서 메모리 장치(20A)는 변경된 리드 전압을 이용하여 다음 리드 동작을 수행할 수 있다.
여기서, 최초로 출력된 데이터에 대한 리드 동작이 성공했을 때라 함은 도 4a와 도 5a에 도시된 바와 같이 최초로 출력된 데이터에 대한 리드 리트라이 동작(read retry operation) 없이 상기 데이터에 대한 에러 정정 디코딩, 예컨대 ECC(error correction code(ECC)) 디코딩이 성공했거나, 상기 에러 정정 디코딩에 따라 에러 정정된 데이터가 호스트로 전송되는 도중이거나, 또는 상기 에러 정정된 데이터가 상기 호스트로 전송이 완료된 상태를 의미할 수 있다.
상기 리드 리트라이 동작이라 함은 최초로 출력된 데이터에 대한 에러 정정 디코딩이 실패했을 때 상기 리드 리트라이 동작 동안 리드된 데이터(이를 '리드 리트라이 데이터'라 한다)에 대한 에러 정정 디코딩이 성공할 때까지 리드 전압을 변경시켜가면서 상기 리드 리트라이 데이터에 대하여 에러 정정 디코딩을 수행하는 것을 의미한다. 상기 최초로 출력된 데이터와 상기 리드 리트라이 데이터는 동일한 메모리 영역에 저장되어 있는 데이터이다.
비휘발성 메모리 장치(20A)는 메모리 셀 어레이(22), 컨트롤 로직(30), 워드 라인 전압 발생기(32), 로우 디코더(34), 페이지 버퍼(36), 컬럼 디코더(38), 및 입출력 버퍼(40)를 포함한다.
메모리 셀 어레이(22)는 유저 데이터를 저장하기 위한 메인 영역(24)과, 메타데이터(metadata) 또는 리드 전압을 변경하기 위하여 필요한 정보를 저장할 수 있는 스페어 영역(26)을 포함한다. 실시 예에 따라 상기 정보는 메인 영역(24)에 저장될 수도 있다.
도 7은 도 1에 도시된 메모리 셀 어레이의 구체적인 회로도의 일 실시 예를 나타낸다.
도 7에 도시된 바와 같이, 메인 영역(24)의 다수개의 메모리 셀들 각각과 스페어 영역(26)의 다수개의 메모리 셀들 각각은 다수개의 워드 라인들(WL1~WLn) 각각에 공통으로 접속된다.
메인 영역(24)은 다수개의 셀 스트링들(24-1~24-i; 여기서 i는 자연수)을 포함한다. 스페어 영역(26)은 다수개의 셀 스트링들(24-(i+1)~24-m; 여기서 m은 자연수 m>i)을 포함한다.
다수개의 셀 스트링들(24-1~24-m) 각각은 다수개의 비휘발성 메모리 셀들, 예컨대 NAND 플래시 메모리 셀들을 포함한다.
도 7에 도시된 바와 같이, 각 셀 스트링(24-1~24-m)은 2차원적으로 동일한 평면(또는 레이어(layer))에 형성될 수 있다. 또한, 도 8에 도시된 바와 같이 각 셀 스트링(24-1, 24-1', ..., 24-1'')은 3차원적으로 서로 다른 평면(또는 레이어; 20-1, 20-2, ..., 20-k; k는 자연수)에 형성될 수 있다.
도 7에 도시된 셀 스트링(24-1)은 비트 라인(BL1)에 접속된 제1선택 트랜지스터(ST1)와 공통 소스 라인(common source line(CSL))에 접속된 제2선택 트랜지스터(ST2) 사이에 직렬로 접속된 복수의 비휘발성 메모리 셀들을 포함한다.
예컨대, 제2워드 라인(WL2)에 접속된 비휘발성 메모리 셀(21)이 선택될 때, 워드 라인 전압 발생기(32)에 의하여 발생한 리드 전압(Vreadx)은 선택된 워드 라인(WL2)으로 공급된다.
셀 스트링(24-2)은 비트 라인(BL2)에 접속된 제3선택 트랜지스터(ST3)와 공통 소스 라인(CSL)에 접속된 제4선택 트랜지스터(ST4) 사이에 직렬로 접속된 복수의 비휘발성 메모리 셀들을 포함한다.
셀 스트링(24-i)은 비트 라인(BLi)에 접속된 제5선택 트랜지스터(ST5)와 공통 소스 라인(CSL)에 접속된 제6선택 트랜지스터(ST6) 사이에 직렬로 접속된 복수의 비휘발성 메모리 셀들을 포함한다. 각 선택 트랜지스터(ST1, ST3, 및 ST5)의 게이트는 스트링 선택 라인(string selection line(SSL))에 접속되고, 각 선택 트랜지스터(ST2, ST4, 및 ST6)의 게이트는 접지 선택 라인(ground selection line(GSL))에 접속된다.
각 셀 스트링(24-1~24-m)에 포함된 다수개의 비휘발성 메모리 셀들 각각은 1-비트 또는 그 이상의 비트들을 저장할 수 있는 플래시 EEPROM(Electrically Erasable Programmable Read-Only Memory)으로 구현될 수 있다.
예컨대, 상기 다수개의 비휘발성 메모리 셀들 각각은 1-비트 또는 그 이상의 비트들을 저장할 있는 NAND 플래시 메모리 셀, 예컨대 SLC(single level cell) 또는 MLC(multi-level cell)로 구현될 수 있다.
페이지 버퍼(36)는 각각이 다수개의 비트 라인들(BL1~BLm) 각각에 접속된 다수개의 단위 페이지 버퍼들(36-1~36-m)을 포함한다.
도 8은 도 1에 도시된 메모리 셀 어레이의 구체적인 회로도의 다른 실시 예를 나타낸다.
도 8에 도시된 바와 같이, 3차원적으로 형성된 메모리 셀 어레이는 다수개의 레이어들(20-1, 20-2, ..., 20-k)을 포함한다.
다수개의 레이어들(20-1~20-k)은 웨이퍼(wafer) 형태의 적층(stack), 칩 (chip) 형태의 적층, 또는 셀(cell) 적층으로 구현될 수 있다. 이때, 다수개의 레이어들(20-1~20-k) 각각의 전기적 연결은 관통 실리콘 비아(Through Silicon Via(TSV)), 와이어 본딩(Wire Bonding), 또는 범프(Bump) 등에 의하여 구현될 수 있다.
제1셀 스트링(24-1)은 제1레이어(20-1)에 형성되고, 제2셀 스트링(24-1')은 제1레이어(20-1)와 서로 다른 제2레이어(20-2)에 형성되고, 제k셀 스트링(24-1'')은 제2레이어(20-2)와 서로 다른 레이어(20-k)에 형성된다.
복수의 레이어들(20-1~20-k) 각각은 복수의 셀 스트링들을 포함한다.
예컨대, 제1레이어(20-1)에 구현되는 제1셀 스트링(24-1)은 복수의 선택 트랜지스터들(ST11과 ST21) 사이에 직렬로 접속된 복수의 비휘발성 메모리 셀들, 예컨대 NAND 플래시 메모리 셀들을 포함한다.
제2레이어(20-2)에 구현되는 제2셀 스트링(24-1')은 복수의 선택 트랜지스터들(ST12과 ST22) 사이에 직렬로 접속된 복수의 비휘발성 메모리 셀들, 예컨대 NAND 플래시 메모리 셀들을 포함한다.
제k레이어(20-k)에 구현되는 제k셀 스트링(24-1'')은 복수의 선택 트랜지스터들(ST1k과 ST2k) 사이에 직렬로 접속된 복수의 비휘발성 메모리 셀들, 예컨대 NAND 플래시 메모리 셀들을 포함한다.
다시 도 1을 참조하면, 컨트롤 로직(30)은 메모리 컨트롤러(50)의 제어에 따라 액세스 동작, 예컨대 프로그램(program) 동작, 이레이즈(erase) 동작, 또는 리드(read) 동작을 위하여 비휘발성 메모리 장치(20A)의 전반적인 동작을 제어할 수 있다.
컨트롤 로직(30)은 상기 액세스 동작을 수행하기 위하여 입력된 명령과 어드레스들에 따라 워드 라인 전압 발생기(32), 로우 디코더(34), 페이지 버퍼(36), 컬럼 디코더(38), 및 입출력 버퍼(40)의 동작을 제어할 수 있다.
예컨대, 프로그램 동작 동안, 컨트롤 로직(30)은 유저 데이터를 메인 영역 (24)에 프로그램하기 위하여 또는 메타데이터를 스페어 영역(26)에 프로그램하기 위하여 메모리 컨트롤러(50)로부터 출력된 프로그램 명령에 따라 워드 라인 전압 발생기(32), 로우 디코더(34), 페이지 버퍼(36), 컬럼 디코더(38), 및 입출력 버퍼 (40)의 동작을 제어할 수 있다.
또한, 리드 동작 동안, 컨트롤 로직(30)은 메인 영역(24)에 저장된 유저 데이터를 리드하기 위하여 또는 스페어 영역(26)에 저장된 데이터를 리드하기 위하여 메모리 컨트롤러(50)로부터 출력된 리드 명령에 따라 워드 라인 전압 발생기(32), 로우 디코더(34), 페이지 버퍼(36), 컬럼 디코더(38), 및 입출력 버퍼(40)의 동작을 제어할 수 있다.
특히, 본 발명의 실시 예에 따른 컨트롤 로직(30)은 선택된 워드 라인으로 공급되는 리드 전압의 레벨을 변경할 수 있는 정보를 포함하는 리드 명령(RVLC) 또는 별도의 정보에 기초하여 제어 신호(CTR)를 생성할 수 있다. 리드 명령(RVLC) 또는 상기 별도의 정보는 메모리 컨트롤러(50), 예컨대 리드 전압 제어 블록(70)에 의하여 생성될 수 있다.
워드 라인 전압 발생기(32)는 컨트롤 로직(30)으로부터 생성된 제어 신호 (CTR)에 따라 워드 라인 전압, 예컨대 리드 동작 동안 선택된 워드 라인으로 공급되는 리드 전압(Vreadx)을 생성할 수 있다. 이때 리드 전압(Vreadx)의 레벨 또는 리드 전압(Vreadx)의 크기는 제어 신호(CTR)에 따라 결정될 수 있다.
프로그램 동작 동안 워드 라인 전압 발생기(32)는 선택된 워드 라인으로 공급될 프로그램 전압을 포함하는 다수개의 전압들을 생성할 수 있다. 이레이즈 동작 동안 워드 라인 전압 발생기(32)는 선택된 워드 라인으로 공급될 이레이즈 전압을 포함하는 다수개의 전압들을 생성할 수 있다. 리드 동작 동안 워드 라인 전압 발생기(32)는 선택된 워드 라인으로 공급될 리드 전압(Vreadx)을 포함하는 다수개의 전압들을 생성할 수 있다. 이때, 선택된 워드 라인으로 공급될 워드 라인 전압은 상기 프로그램 전압, 상기 이레이즈 전압, 또는 리드 전압(Vreadx)을 의미할 수 있다.
로우 디코더(34)는 로우 어드레스들(XADD)을 디코딩하고 디코딩 결과에 따라 다수개의 워드 라인들(도 7의 WL1~WLn) 중에서 어느 하나의 워드 라인을 선택한다.
로우 디코더(34)는, 동작 모드, 예컨대 프로그램 동작, 이레이즈 동작, 또는 리드 동작에 따라, 상기 선택된 워드 라인으로 워드 라인 전압 발생기(32)에 의하여 생성된 워드 라인 전압을 공급할 수 있다.
다수개의 단위 페이지 버퍼들(36-1~36-m)을 포함하는 페이지 버퍼(36)는 리드 동작 시에는 메모리 셀 어레이(22)로부터 리드된 데이터를 감지 증폭하고 프로그램 동작 시에는 메모리 셀 어레이(22)로 프로그램될 데이터를 일시적으로 저장한다.
따라서, 상기 동작 모드에 따라, 페이지 버퍼(36)에 포함된 다수개의 단위 페이지 버퍼들(36-1~36-m) 각각은 컨트롤 로직(30)의 제어하에 감지 증폭기(sense amplifier) 또는 라이트 드라이버(write driver)로서의 기능을 수행할 수 있다.
컨트롤 로직(30)의 제어하에, 컬럼 디코더(38)는 컬럼 어드레스들(YADD)을 디코딩하고 디코딩 결과에 따라 페이지 버퍼(36)와 입출력 버퍼(40) 사이의 접속을 제어한다.
예컨대, 컬럼 디코더(38)는 페이지 버퍼(36)에 의하여 감지 증폭된 데이터를 입출력 버퍼(40)로 전송하거나 또는 입출력 버퍼(40)를 통하여 입력된 프로그램될 데이터는 페이지 버퍼(36)로 전송할 수 있다.
비휘발성 메모리 장치(20A)와 메모리 컨트롤러(50)는 입출력 버퍼(40)를 통하여 데이터(DATA)를 통신할 수 있다.
메모리 컨트롤러(50)는 비휘발성 메모리 장치(20A)의 메모리 셀 어레이(22)의 NAND 플래시 메모리 셀들에 대한 액세스 동작, 예컨대 프로그램 동작, 리드 동작, 또는 이레이즈 동작을 제어할 수 있다.
메모리 컨트롤러(50)는 ECC 블록(55), 데이터 버퍼(60), 및 리드 전압 제어 블록(70)을 포함한다.
리드 동작이 수행될 때마다 ECC 블록(55)은 비휘발성 메모리 장치(20A)로부터 최초로 출력된 데이터(DATA)에 대한 에러 정정 디코딩의 성공 여부를 판단하고, 판단 결과를 나타내는 지시 신호를 리드 전압 제어 블록(70)으로 출력한다.
리드 전압 제어 블록(70)은 ECC 블록(55)으로부터 출력된 지시 신호, 예컨대 최초로 출력된 데이터(DATA)에 대한 리드 동작이 성공했음을 지시하는 지시 신호, 특히 에러 정정 디코딩이 성공했음을 지시하는 지시 신호에 따라 다음 리드 동작에 필요한 리드 전압(Vreadx), 즉 선택된 워드 라인으로 공급될 리드 전압(Vreadx)의 레벨을 조절할 수 있는 정보를 생성하고, 생성된 정보를 리드 전압 제어 블록(70)의 내부의 메모리(78)에 저장하거나 또는 비휘발성 메모리 장치(20A)의 메모리 셀 어레이(22)에 프로그램될 수 있도록 컨트롤 로직(30)의 동작을 제어할 수 있다.
또한, 리드 전압 제어 블록(70)은 상기 지시 신호에 응답하여 ECC 블록(55)의 동작, 예컨대 에러 비트 검출과 에러 비트 정정에 영향을 미칠 수 있는 각종 파라미터, 예컨대 LLR(log likelihood ration) 또는 동작 모드를 변경할 수 있다. 상기 LLR은 신호 처리 모듈, 이퀄라이저(equalizer) 또는 필터(filter)의 입력으로 사용될 수 있다.
본 명세서에서 사용되는 리드 파라미터(read parameter)는 선택된 워드 라인으로 공급될 리드 전압(Vreadx) 또는 ECC 블록(55)의 동작에 영향을 미칠 수 있는 각종 파라미터 중에서 적어도 하나를 포함한다.
실시 예에 따라, ECC 블록(55)이 ECC (error correction code) 디코더로 구현될 때, 리드 전압 제어 블록(70)은 ECC 블록(55)으로부터 출력된 지시 신호에 따라 LLR 또는 동작 모드를 변경할 수 있다.
ECC 블록(55)의 동작 모드는 데이터(DATA)에 대하여 하드 디시젼 디코딩(hard decision decoding)을 수행하기 위한 제1모드 또는 데이터(DATA)에 대하여 소프트 디시젼 디코딩을 수행하기 위한 제2모드를 포함한다.
즉, 리드 전압 제어 블록(70)은 ECC 블록(55)으로부터 출력된 지시 신호에 따라 리드 파라미터, 예컨대 ECC 블록(55)의 동작에 영향을 미칠 수 있는 각종 파라미터, 또는 선택된 워드 라인으로 공급될 리드 전압의 레벨을 어떻게 변경할지 여부를 결정할 수 있다.
예컨대, 비휘발성 메모리 장치(20A)는 현재 리드 동작 동안 비휘발성 메모리 장치(20A)의 메모리 셀 어레이(22)로부터 제1리드 전압에 따라 최초로 출력된 제1데이터를 메모리 컨트롤러(50)의 데이터 버퍼(60)로 전송한다.
메모리 컨트롤러(50)의 ECC 블록(55)은 데이터 버퍼(60)로부터 전송된 상기 최초로 출력된 제1데이터에 대하여 에러 검출 및 에러 정정 알고리즘, 예컨대 ECC (error correction coding) 디코딩을 수행하고 상기 최초로 출력된 제1데이터에 대한 에러 정정 디코딩의 성공 여부를 판단한다.
상기 제1데이터는 ECC 데이터를 포함하므로, ECC 블록(55)은 상기 ECC 데이터를 참조하여 상기 제1데이터에 대한 디코딩의 성공 여부를 판단한다.
상기 제1데이터에 포함된 에러 비트의 개수가 ECC 블록(55)에 의하여 정정 가능한 개수보다 같거나 작은 경우, ECC 블록(55)은 상기 ECC 데이터를 참조하여 상기 제1데이터에 포함된 에러 비트를 검출하여 정정하고 에러 정정된 제1데이터를 DMA(도 2의 82)에 제어하에 호스트 버퍼(도 2의 65)를 통하여 호스트로 전송한다. 따라서 상기 제1데이터에 대한 리드 동작이 성공했으므로, 제1리드 동작은 종료된다.
그러나, 상기 제1데이터에 포함된 에러 비트의 개수가 상기 정정 가능한 개수보다 클 때, 즉, 상기 제1데이터에 대한 에러 정정 디코딩이 실패했을 때, ECC 블록(55)은 상기 제1데이터에 대한 에러 정정 디코딩이 실패했음을 지시하는 지시 신호를 리드 전압 제어 블록(70)으로 출력한다.
따라서, 리드 전압 제어 블록(70)은 상기 지시 신호에 응답하여 비휘발성 메모리 장치(20A)가 리드 리트라이 동작을 수행할 수 있도록 비휘발성 메모리 장치(20A)의 동작을 제어한다.
이에 따라, 비휘발성 메모리 장치(20A)는 메모리 컨트롤러(50)로부터 출력된 리드 리트라이 명령에 따라 리드 전압을 변경시켜가면서 리드 리트라이 데이터에 대한 에러 정정 디코딩이 성공할 때까지 상기 리드 리트라이 데이터에 대한 리드 리트라이 동작을 수행한다.
이때 비휘발성 메모리 장치(20A)에 의하여 수행되는 리드 리트라이 동작과 메모리 컨트롤러(50)에 의하여 수행되는 에러 검출/정정 알고리즘은 함께 수행된다. ECC 블록(55)은 최초로 출력된 데이터뿐만 아니라 리드 리트라이 데이터에 대해서도 에러 검출과 에러 정정 동작을 수행한다.
실시 예에 따라 상기 리드 리트라이 동작이 무한 루프로 진행되는 것을 방지하지 위하여, 상기 리드 리트라이 동작은 미리 정해진 회수 동안에 수행될 수 있다.
본 발명의 실시 예에 따른 메모리 컨트롤러(50)는 현재 리드 동작 동안에 메모리 셀 어레이(22)로부터 최초로 출력된 데이터에 대한 리드 동작의 성공 여부를 판단하고 상기 리드 동작이 성공했을 때 다음 리드 동작 동안을 수행하기 위하여 필요한 리드 전압을 제1리드 전압으로부터 제2리드 전압으로 변경할 수 있는 정보를 메모리(78)로 저장할 수 있다.
종래의 메모리 컨트롤러는 리드 데이터에 대한 에러 정정 디코딩이 실패한 경우에만 상기 리드 데이터에 대한 리드 리트라이 동작이 수행될 수 있도록 비휘발성 메모리 장치의 동작을 제어했다. 이 경우, 현재 리드 전압과 최적의 리드 전압의 차이가 클수록 리드 성능은 심각하게 저하된다.
따라서 본 발명의 실시 예에 따른 메모리 컨트롤러(50)는 현재 리드 동작 동안에 최초로 출력된 데이터에 대한 리드 동작이 성공했을 때 상기 최초로 출력된 데이터에 대하여 추가적인 리드 동작을 수행하지 않고도 다음 리드 동작에 필요한 리드 파라미터, 예컨대 리드 전압 또는 ECC 블록(55)의 각종 파라미터를 미리 변경시킬 수 있다.
따라서 메모리 컨트롤러(50)는 현재 리드 파라미터와 최적 리드 파라미터의 차이를 줄일 수 있으므로, 에러 정정 디코딩이 실패 한 후 수행되는 리드 리트라이 동작에서 리드 성능의 저하를 방지할 수 있을 뿐만 아니라 에러 정정 디코딩 실패 회수를 줄일 수 있는 효과가 있다.
메모리 컨트롤러(50)는 다음 리드 동작을 수행하기 위하여 필요한 리드 전압의 레벨을 변경할 수 있는 정보를 포함하는 리드 명령(RVLC)을 비휘발성 메모리 장치(20A)로 전송한다.
비휘발성 메모리 장치(20A)는 상기 정보에 따라 변경된 리드 전압을 이용하여 메모리 셀 어레이(22)로부터 리드된 제2데이터를 메모리 컨트롤러(50)로 전송한다.
도 2는 도 1에 도시된 메모리 컨트롤러의 구체적인 블록도를 나타낸다.
도 2를 참조하면, 메모리 컨트롤러(50)는 ECC 블록(55), 데이터 버퍼(60), 호스트 버퍼(65), 및 리드 전압 제어 블록(70)을 포함한다.
리드 전압 제어 블록(70)은 카운터(72), 비교기(74), 결정 로직(76), 메모리 (78), CPU(80), 및 DMA(Direct memory access; 82)를 포함한다.
ECC 블록(55)과 DMA(82)는 리드 동작마다 메모리 셀 어레이(22)로부터 최초로 출력된 데이터에 대한 리드 동작의 성공 여부를 판단할 수 있는 검출 블록으로서의 기능을 수행할 수 있다.
예컨대, ECC 블록(55)은 상기 최초로 출력된 데이터에 대하여 에러 정정 디코딩을 수행하고 수행 결과에 따라 상기 에러 정정 디코딩의 성공 여부를 판단하고 판단 결과에 따라 지시 신호를 출력한다. 또한, DMA(82)는 ECC 블록(55)에 의하여 에러 정정된 데이터를 데이터 버퍼(60)로부터 호스트 버퍼(65)로의 전송을 제어함에 따라 에러 정정된 데이터가 호스트로 전송되었는지의 여부를 판단할 수 있다.
예컨대, 상기 최초로 출력된 데이터에 대한 리드 동작의 성공은 메모리 셀 어레이(22)로부터 최초로 출력된 데이터가 호스트로 전송되는 상태 또는 상기 전송이 완료된 상태를 의미할 수 있다.
도 2에서는 설명의 편의를 위하여 메모리(78)와 CPU(80)가 분리되어 있는 것으로 도시되어 있으나 실시 예에 따라 메모리(78)는 CPU(80)의 일부로 구현될 수 있다. 이때, 메모리(78)는 비휘발성 메모리 또는 SRAM(Static random access memory)과 같은 휘발성 메모리로 구현될 수 있다. 메모리(78)는 리드 파라미터를 저장할 수 있다.
카운터(72)는 데이터 버퍼(60)를 통하여 입력된 데이터, 즉 최초로 출력된 데이터에 포함된 데이터 1과 데이터 0중에서 어느 하나, 예컨대 데이터 1의 개수를 카운트하고 카운트 값(CNT)을 출력한다.
비교기(74)는 카운트 값(CNT)과 기준 카운트 값(RCNT)을 서로 비교하고 비교 신호(COMP)를 출력한다.
예컨대, 카운트 값(CNT)이 기준 카운트 값(RCNT)보다 클 때 비교기(74)는 제1레벨(예컨대, 하이 레벨)을 갖는 비교 신호(COMP)를 출력하고, 카운트 값(CNT)이 기준 카운트 값(RCNT)보다 작을 때 비교기(74)는 제2레벨(예컨대, 로우 레벨)을 갖는 비교 신호(COMP)를 출력한다.
결정 로직(76)은 비교 신호(COMP)의 레벨에 따라 리드 파라미터를 어떻게 변경할 것인지의 여부를 결정한다.
예컨대, 상기 리드 파라미터가 리드 전압일 때, 결정 로직(76)은 제1레벨을 갖는 비교 신호(COMP)에 따라 리드 전압을 감소시키기 위한 정보를 메모리(75)에 저장하고 제2레벨을 갖는 비교 신호(COMP)에 따라 리드 전압을 증가시키기 위한 정보를 메모리(75)에 저장한다.
또한, 상기 리드 파라미터가 ECC 블록(55)의 동작, 예컨대 에러 비트 검출과 에러 비트 정정에 영향을 미칠 수 있는 각종 파라미터일 때, 결정 로직(76)은 비교 신호(COMP)의 레벨에 따라 상기 각종 파라미터를 어떻게 변경할 것인지의 여부를 결정하고 결정 결과에 상응하는 정보를 메모리(75)에 저장한다.
실시 예에 따라, 결정 로직(76)은 지시 신호에 따라 동작하는 CPU(80)의 제어에 따라 각종 파라미터를 어떻게 변경할 것인지의 여부를 결정하고 결정 결과에 상응하는 정보를 메모리(75)에 저장할 수 있다.
CPU(80)는 메모리(78)에 저장된 정보를 이용하여 비휘발성 메모리 장치(20A)의 동작에 관련된 리드 파라미터, 예컨대 리드 전압을 변경하기 위한 동작과 ECC 블록(55)의 동작에 관련된 리드 파라미터, 예컨대 ECC 블록(55)의 각종 파라미터를 변경하기 위한 동작을 수행할 수 있다.
예컨대, CPU(80)는 변경된 리드 전압을 나타내는 정보를 포함하는 리드 명령 (RVLC)을 생성하고 생성된 리드 명령(RVLC)을 비휘발성 메모리 장치(20A)의 컨트롤 로직(30)으로 전송할 수 있다. 실시 예에 따라, 생성된 리드 명령(RVLC)은 데이터 버퍼(60)를 통하여 컨트롤 로직(30)으로 전송될 수 있다.
따라서 컨트롤 로직(30)은 수신된 리드 명령(RVLC)에 포함된 상기 정보에 따라 제어 신호(CTR)를 발생하고 발생된 제어 신호(CTR)를 워드 라인 전압 발생기 (32)로 전송한다. 워드 라인 전압 발생기(32)는 제어 신호(CTR)에 따라 결정된 레벨을 갖는 워드 라인 전압, 즉 선택된 워드 라인으로 공급될 리드 전압(Vreadx, x=l 또는 h)을 로우 디코더(34)로 전송한다.
따라서, 페이지 버퍼(36)는 변경된 리드 전압(Vreadx)을 이용하여 메모리 셀 어레이(22)에 저장된 데이터를 리드할 수 있다. 페이지 버퍼(36)에 의하여 리드된 데이터는 컬럼 디코더(38)의 디코딩 결과에 따라 입출력 버퍼(40)로 전송된 후 데이터 버퍼(60)를 통하여 ECC 블록(55)으로 전송된다.
CPU(80)에 제어에 따라, ECC 블록(55)은 변경된 리드 파라미터에 기초하여 데이터, 예컨대 최초로 출력된 데이터 또는 리드 리트라이 데이터에 대한 에러 정정 디코딩의 성공 여부를 판단할 수 있다.
도 3은 도 1에 도시된 메모리 셀 어레이에 구현된 다수개의 플래시 메모리 셀들의 문턱 전압들의 변화에 따라 리드 전압을 변경하는 스킴(scheme)을 나타내는 플롯(plot)이다.
D1은 데이터를 저장하는 메인 영역(24)에 형성된 다수개의 메모리 셀들의 초기 문턱 전압들의 산포를 나타내고, D2와 D3 각각은 유지 시간(retention time), 프로그램 회수, 또는 이레이즈 회수에 따라 변화된 문턱 전압들의 산포를 나타낸다. 또한, D1'는 스페어 영역(26)에 형성된 다수개의 모니터링 셀들의 초기 문턱 전압들의 산포를 나타내고, D2'와 D3' 각각은 유지 시간, 프로그램 회수, 또는 이레이즈 회수에 따라 변화된 문턱 전압들의 산포를 나타낸다.
예컨대, D1의 변화는 D1'의 변화에 반영되고, D2의 변화는 D2'의 변화에 반영되고, D3의 변화는 D3'의 변화에 반영된다.
리드 전압 발생 블록(70)은 현재 리드 동작 동안 메모리 셀 어레이(22)로부터 최초로 출력된 데이터에 대한 리드 동작의 성공 여부를 판단하고, 상기 리드 동작이 성공했을 때 상기 최초로 출력된 데이터를 저장하는 다수개의 메모리 셀들의 문턱 전압들의 산포의 변화를 반영하여 리드 파라미터를 변경할 수 있다.
컨트롤 로직(30)은 리드 전압의 변경을 지시하는 정보를 포함하는 리드 명령 (RVLC)에 따라 제어 신호(CTR)를 생성하고, 워드 라인 전압 발생기(32)는 제어 신호(CTR)에 따라 리드 전압(Vreadl, Vreadi, 또는 Vreadh)을 발생할 수 있다.
예컨대, D1(또는 D1')이 D2(또는 D2')로 변한 경우 워드 라인 전압 발생기 (32)는 컨트롤 로직(30)의 제어에 따라 감소된 리드 전압(Vreadl)을 발생하고, D1 (또는 D1')이 D3(또는 D3')로 변한 경우 워드 라인 전압 발생기(32)는 컨트롤 로직 (30)의 제어에 따라 증가된 리드 전압(Vreadh)을 발생할 수 있다.
도 4a는 도 1에 도시된 메모리 시스템의 동작 방법을 설명하기 위한 일 실시 예를 나타내는 흐름도이다. 도 1부터 도 4a를 참조하여, 메모리 시스템(10)의 동작 방법을 설명하면 다음과 같다.
제1리드 동작(또는 현재 리드 동작) 동안, 비휘발성 메모리 장치(20A)는 제1리드 전압(Vreadi)을 이용하여 메인 영역(24)에 저장된 제1데이터를 리드하고, 상기 제1데이터를 저장하는 다수개의 메모리 셀들의 문턱 전압들의 산포가 D1으로부터 D2로 변했고, 기준 카운트 값(RCNT)은 D1에 따라 계산된 값이고, ECC 블록 (55)은 제1파라미터를 이용하여 상기 제1데이터에 대한 에러 검출과 에러 정정을 수행한다고 가정한다.
제1리드 동작 동안, 비휘발성 메모리 장치(20A)는 제1리드 전압(Vreadi)에 따라 메인 영역(24)으로부터 최초로 출력된 제1데이터를 메모리 컨트롤러(50)로 전송한다.
메모리 컨트롤러(50)의 카운터(72)는 데이터 버퍼(60)를 통하여 입력된 상기 최초로 출력된 제1데이터에 포함된 데이터 1과 데이터 0중에서 어느 하나, 예컨대 데이터 1(또는 온-셀(on-cell))의 개수를 카운트하여 카운트 값(CNT)을 출력한다 (S10).
메모리 컨트롤러(50)의 ECC 블록(55)은 상기 제1파라미터를 이용하여 상기 최초로 출력된 제1데이터에 대한 에러 정정 디코딩을 수행하고, 상기 에러 정정 디코딩의 성공 여부를 판단한다(S20).
상기 제1데이터에 대한 에러 정정 디코딩이 실패했을 때, ECC 블록(55)은 실패를 지시하는 지시 신호를 CPU(80)로 전송한다.
이 경우 비휘발성 메모리 장치(20A)의 컨트롤 로직(30)은, CPU(80)의 제어에 따라, 리드 리트라이 데이터에 대한 에러 정정 디코딩 동작이 성공할 때까지 리드 전압을 변경시켜가면서 상기 리드 리트라이 데이터에 대한 리드 리트라이 동작을 수행한다(S30a). 상기 리드 리트라이 데이터에 대한 에러 정정 디코딩이 성공했을 때 제1리드 동작은 종료된다. 이때 ECC 블록(55)에 의하여 에러 정정된 리드 리트라이 데이터는 데이터 버퍼(60)를 통하여 호스트 버퍼(65)로 전송된다.
그러나, 상기 최초로 출력된 제1데이터에 대한 에러 정정 디코딩이 성공했을 때, ECC 블록(55)은 에러 정정 디코딩의 성공을 지시하는 지시 신호를 CPU(80)로 전송한다. 따라서 CPU(80)는 리드 파라미터 변경 동작을 수행한다.
메모리 컨트롤러(50)의 비교기(74)는 CPU(80)의 제어에 따라 카운트 값(CNT)과 기준 카운트 값(RCNT)을 서로 비교한다(S40). 실시 예에 따라 기준 카운트 값 (RCNT), 즉 D1에 연관된 값은 스페어 영역(26)에 저장되거나 또는 메모리(78)에 저장되어 있을 수 있다.
제1데이터, 예컨대 최초로 출력된 제1데이터를 저장하는 다수개의 메모리 셀들의 문턱 전압들의 산포가 D1으로부터 D2로 변화했기 때문에, 카운트 값(CNT)은 기준 카운트 값(RCNT)보다 크다. 따라서, 비교기(74)는 제1레벨을 갖는 비교 신호 (COMP)를 출력하므로, 결정 로직(76)은 제1레벨을 갖는 비교 신호(COMP)에 따라 제1리드 전압(Vreadi)을 제2리드 전압 (Vreadl)으로 감소시키기로 결정하고(S42), 상기 결정에 상응하는 정보를 메모리(78)에 저장한다(S44). 실시 예에 따라 상기 정보는 메모리 셀 어레이(22)스페어 영역(26)에 저장될 수 있다.
그 후, 최초로 출력된 제1데이터 또는 에러 정정된 최초로 출력된 데이터는 DMA(82)의 제어에 따라 데이터 버퍼(60)로부터 호스트 버퍼(65)로 전송된다.
그러나, 제1데이터, 예컨대 최초로 출력된 제1데이터를 저장하는 다수개의 메모리 셀들의 문턱 전압들의 산포가 D1으로부터 D3로 변화할 경우, 카운트 값 (CNT)은 기준 카운트 값(RCNT)보다 작다. 따라서 비교기(74)는 제2레벨을 갖는 비교 신호(COMP)를 출력하므로, 결정 로직(76)은 제2레벨을 갖는 비교 신호(COMP)에 따라 제1리드 전압(Vreadi)을 제3리드 전압(Vreadh)으로 증가시키기로 결정하고 (S46), 상기 결정에 상응하는 정보를 메모리(78)에 저장한다(S44). 실시 예에 따라 상기 정보는 스페어 영역(26)에 저장될 수 있다.
그 후, 최초로 출력된 제1데이터 또는 에러 정정된 최초로 출력된 데이터는 DMA(82)의 제어에 따라 데이터 버퍼(60)로부터 호스트 버퍼(65)로 전송된다.
CPU(80)는 제2리드 동작(또는 다음 리드 동작)을 수행하기 위하여 메모리 (78)에 저장된 정보 또는 스페어 영역(26)에 저장된 정보를 리드하고, 리드 전압의 변경을 지시하는 상기 정보를 포함하는 리드 명령(RVLC)을 비휘발성 메모리 장치 (20A)로 전송한다.
CPU(80)는 메모리(78)에 저장된 정보 또는 스페어 영역(26)에 저장된 정보에 따라 ECC 블록(55)의 제1파라미터를 제2파라미터로 변경하기 위하여 ECC 블록(55)을 더 제어할 수 있다. 데이터 버퍼(60)에 저장된 데이터, 예컨대 에러 정정된 데이터는 DMA(82)의 제어에 따라 호스트 버퍼(65)로 전송된다.
비휘발성 메모리 장치(20A)의 컨트롤 로직(30)은 리드 명령(RVLC)에 따라 제어 신호(CTR)를 발생하고, 워드 라인 전압 발생기(32)는 제어 신호(CTR)에 따라 제2리드 전압(Vreadl)을 발생한다.
따라서 비휘발성 메모리 장치(20A)는 제2리드 전압(Vreadl)에 따라 메인 영역(24)으로부터 출력된 제2데이터를 메모리 컨트롤러(50)로 전송한다. 제1데이터와 제2데이터는 서로 동일한 데이터일 수 있고 서로 다른 데이터일 수 있다.
메모리 컨트롤러(50)의 ECC 블록(55)은 제2파라미터를 이용하여 데이터 버퍼 (60)를 통하여 입력된 상기 제2데이터에 대한 에러 정정 디코딩의 성공 여부를 판단할 수 있다.
실시 예에 따라 메모리 컨트롤러(50)는 제2데이터에 대하여 S10부터 다시 수행할 수 있다.
기준 카운트 값(RCNT)은 스페어 영역(26)에 저장될 수 있다. 제1리드 동작 동안 메인 영역(24)에 저장된 제1데이터와 스페어 영역(26)에 저장된 기준 카운트 값(RCNT)은 제1리드 전압(Vreadi)에 따라 리드되어 메모리 컨트롤러(50)로 전송될 수 있다.
변경된 제2리드 전압(Vreadl)은 컨트롤 로직(30)에 의하여 메모리 셀 어레이 (22) 전체, 메모리 블록 단위, 페이지 단위, 또는 워드 라인 단위로 적용될 수 있다. 즉, 컨트롤 로직(30)은 변경된 제2리드 전압(Vreadl)을 적용할 단위를 결정할 수 있다.
따라서 CPU(80) 또는 컨트롤 로직(30)은 메모리 셀 어레이(22) 전체, 메모리 블록 단위, 페이지 블록 단위, 또는 워드 라인 단위로 변경된 리드 파라미터, 예컨대 리드 전압 또는 ECC 블록(55)의 각종 파라미터를 종합적으로 관리할 수 있다.
실시 예에 따라 제1데이터, 예컨대 최초로 출력된 데이터 또는 리드 리트라이 데이터는 대응되는 다수의 메모리 셀들 각각에 저장된 첫 번째 페이지 데이터일 수 있다.
도 2에 도시된 컨트롤러(50)는 리드 파라미터를 저장하기 위한 메모리(78)를 포함하는 것으로 도시되어 있으나, 실시 예에 따라 상기 리드 파라미터는 스페어 영역(26) 또는 메인 영역(24)에 저장되고 컨트롤 로직(30) 또는 CPU(80)에 의하여 참조될 수 있다. 그러나, 상기 리드 파라미터는 설계 사양에 따라 상술한 저장 영역(78, 24, 또는 26) 이외의 다양한 메모리 영역에 저장되고 관리될 수 있다.
또한, 상기 리드 파라미터가 매핑 테이블(mapping table)과 함께 저장되고 관리될 때, FTL(Flash Translation Layer)이 물리 블록(physical block)을 액세스하여 리드 동작을 수행할 때, 상기 FTL은 상기 물리 블록에 상응하는 리드 파라미터를 참조하여 리드 동작을 수행할 수 있다.
도 4b는 도 1에 도시된 메모리 시스템의 동작 방법을 설명하기 위한 다른 실시 예를 나타내는 흐름도이다.
도 1부터 도 3, 및 도 4b를 참조하면, 현재 리드 동작 동안 최초로 출력된 제1데이터에 대한 에러 정정 디코딩이 실패했을 때, 비휘발성 메모리 장치(20A)는 메모리 컨트롤러(50)의 제어에 따라 리드 전압 레벨을 변경한 후 변경된 레벨을 갖는 리드 전압에 따라 리드 리트라이 데이터를 리드하고 상기 리드 리트라이 데이터를 메모리 컨트롤러(50)로 전송한다(S30b).
메모리 컨트롤러(50)는 상기 리드 리트라이 데이터에 포함된 데이터 1과 데이터 0 중에서 어느 하나를 카운트하고, 상기 리드 리트라이 데이터에 대한 에러 정정 디코딩의 성공 여부를 판단한다. 상기 리드 리트라이 데이터에 대한 에러 정정이 실패했을 때, 비휘발성 메모리 장치(20A)는 메모리 컨트롤러(50)의 제어에 따라 리드 리트라이 동작을 수행한다(S30b).
도 4a의 30a에서 수행되는 리드 리트라이 동작은 리드 전압의 변경과 에러 정정 디코딩을 포함하나, 도 4b의 S30b에서 수행되는 리드 리트라이 동작은 리드 전압만을 변경시키면서 리드 리트라이 데이터를 리드하는 동작을 의미한다.
리드 리트라이 동작의 수행 결과, 리드 리트라이 데이터에 대한 에러 정정 디코딩이 성공했을 때, 메모리 시스템(10)은 S40을 수행한다. 예컨대, 카운트 값 (CNT)과 기준 카운트 값(RCNT)이 서로 동일할 때, 메모리 컨트롤러(50)는 다음 리드 동작 동안에도 현재 리드 전압 레벨을 유지하도록 비휘발성 메모리 장치(20A)를 제어할 수 있다.
도 5a는 도 1에 도시된 메모리 시스템의 동작 방법을 설명하기 위한 또 다른 실시 예를 나타내는 흐름도이고, 도 6은 도 5에 도시된 동작 방법을 설명하기 위한 복수의 상태들을 나타내는 플롯이다.
도 1, 도 2, 도 3, 도 5a, 및 도 6을 참조하여 메모리 시스템(10)의 동작 방법이 상세히 설명된다.
메모리 컨트롤러(50)는 스페어 영역(26)에 형성된 다수개의 모니터링 셀들의 문턱 전압들의 산포의 변화를 참조하여 리드 파라미터를 변경할 수 있다.
스페어 영역(26)에 형성된 다수개의 모니터링 셀들 각각은 멀티-레벨 셀이고, 상기 다수개의 모니터링 셀들 각각은 복수의 상태들(E, P1, P2, 및 P3) 중에서 어느 하나의 상태를 갖도록 프로그램되었다고 가정한다.
예컨대, 제1페이지를 리드할 때에는 상기 어느 하나의 상태는 P2로 설정되고, 제2페이지를 리드할 때는 P1 또는 P3로 설정될 수 있다.
따라서 멀티-레벨 셀이 2-비트 멀티 레벨 셀인지 또는 3-비트 멀티 레벨 셀인지에 따라 어느 하나의 상태는 선택적으로 설정될 수 있다.
제1데이터는 상기 다수개의 모니터링 셀들 각각에 저장된 데이터이고, D1'가 D2'로 변경되었고, D1'에 따라 기준 카운트 값(RCNT)이 결정되었고, ECC 블록(55)은 제1파라미터, 예컨대 제1LLR을 이용하여 상기 제1데이터에 대한 에러 검출과 에러 정정을 수행한다고 가정한다.
제1리드 동작 동안 비휘발성 메모리 장치(20A)는 제1리드 전압(Vreadi)에 따라 메모리 셀 어레이(22)의 스페어 영역(26)의 특정 영역으로부터 최초로 출력된 제1데이터를 메모리 컨트롤러(50)로 전송한다.
메모리 컨트롤러(50)의 ECC 블록(55)은 제1파라미터를 이용하여 상기 최초로 출력된 제1데이터에 대한 에러 정정 디코딩을 수행하고 수행 결과에 따라 에러 정정 디코딩의 성공 여부를 판단한다(S110).
상기 최초로 출력된 제1데이터에 대한 에러 정정 디코딩이 실패했을 때, ECC 블록(55)은 에러 정정 디코딩의 실패를 지시하는 지시 신호를 CPU(80)로 전송한다.
따라서 비휘발성 메모리 장치(20A)의 컨트롤 로직(30)은 CPU(80)의 제어에 따라 스페어 영역(26)의 상기 특정 영역에 저장된 리드 리트라이 데이터에 대한 에러 정정 디코딩 동작이 성공할 때까지 리드 전압을 변경시켜가면서 상기 리드 리트라이 데이터에 대한 리드 리트라이 동작을 수행한다(S120a). 상기 리드 리트라이 데이터에 대한 에러 정정 디코딩이 성공했을 때, ECC 블록(55)에 의하여 에러 정정된 리드 리트라이 데이터는 DMA(82)의 제어에 따라 데이터 버퍼(60)로부터 호스트 버퍼(65)로 전송된다. 호스트로의 전송이 종료되면, 상기 제1데이터에 대한 제1리드 동작은 종료한다.
그러나, 상기 최초로 출력된 제1데이터에 대한 에러 정정 디코딩이 성공했을 때(S110), ECC 블록(55)은 에러 정정 디코팅의 성공을 지시하는 지시 신호를 CPU (80)로 전송한다.
이 경우 메모리 컨트롤러(50)의 카운터(72)는 CPU(80)의 제어에 따라 데이터 버퍼(60)에 저장된 상기 최초로 출력된 제1데이터에 포함된 에러 비트 수를 카운트하고 카운트 값(CNT)을 출력한다.
비교기(74)는 CPU(80)의 제어에 따라 카운트 값(CNT)과 기준 카운트 값 (RCNT)을 비교한다(S130).
제1데이터, 예컨대 최초로 출력된 제1데이터를 저장하는 다수개의 모니터링 셀들의 문턱 전압들의 산포가 D1으로부터 D2로 변화했기 때문에, 카운트 값(CNT)은 기준 카운트 값(RCNT)보다 크다. 따라서 비교기(74)는 제1레벨을 갖는 비교 신호 (COMP)를 출력하므로, 결정 로직(76)은 제1레벨을 갖는 비교 신호(COMP)에 따라 제1리드 전압(Vreadi)을 제2리드 전압(Vreadl)으로 감소시키기로 결정하고(S132), 상기 결정에 상응하는 정보를 메모리(78) 또는 스페어 영역(26)에 저장한다(S134).
그리고 ECC 블록(55)에 의하여 에러 정정된 최초로 출력된 제1데이터는 DMA (82)의 제어에 따라 데이터 버퍼(60)와 호스트 버퍼(65)를 통하여 호스트로 전송된다. 따라서 제1리드 동작은 종료된다.
그러나 도 3에 도시된 바와 같이 제1데이터, , 예컨대 최초로 출력된 제1데이터를 저장하는 다수개의 모니터링 셀들의 문턱 전압들의 산포가 D1으로부터 D3로 변화할 경우, 카운트 값(CNT)은 기준 카운트 값(RCNT)보다 작다. 따라서 비교기 (74)는 제2레벨을 갖는 비교 신호(COMP)를 출력하므로, 결정 로직(76)은 제2레벨을 갖는 비교 신호(COMP)에 따라 제1리드 전압(Vreadi)을 제3리드 전압(Vreadh)으로 증가시키기로 결정하고(S136), 상기 결정에 상응하는 정보를 메모리(78) 또는 스페어 영역(26)에 저장한다(S134). 그리고 ECC 블록(55)에 의하여 에러 정정된 최초로 출력된 제1데이터는 DMA (82)의 제어에 따라 데이터 버퍼(60)와 호스트 버퍼(65)를 통하여 호스트로 전송된다. 따라서 제1리드 동작은 종료된다.
CPU(80)는 제2리드 동작을 수행하기 위하여 메모리(78) 또는 스페어 영역 (26)에 저장된 정보를 리드하고, 리드 전압의 변경을 지시하는 정보를 포함하는 리드 명령(RVLC)을 비휘발성 메모리 장치(20A)로 전송한다.
CPU(80)는 메모리(78) 또는 스페어 영역(26)에 저장된 정보에 따라 ECC 블록(55)의 제1파라미터, 예컨대 LLR를 제2파라미터, 예컨대 제2LLR로 변경하기 위하여 ECC 블록(55)을 더 제어할 수 있다.
비휘발성 메모리 장치(20A)의 컨트롤 로직(30)은 리드 명령(RVLC)에 따라 제어 신호(CTR)를 발생하고, 워드 라인 전압 발생기(32)는 제어 신호(CTR)에 따라 제2리드 전압(Vreadl)을 발생한다.
따라서 비휘발성 메모리 장치(20A)는 제2리드 전압(Vreadl)에 따라 메인 영역(24)으로부터 출력된 제2데이터를 메모리 컨트롤러(50)로 전송한다.
메모리 컨트롤러(50)의 ECC 블록(55)은 상기 제2파라미터를 이용하여 데이터 버퍼(60)를 통하여 입력된 상기 제2데이터에 대한 에러 정정 디코딩을 수행하고 수행 결과에 따라 에러 정정 디코딩의 성공 여부를 판단할 수 있다.
실시 예에 따라 컨트롤러(50)는 제2데이터에 대하여 S110부터 다시 수행할 수 있다.
상술한 바와 같이, 변경된 제2리드 전압(Vreadl)은 CPU(80) 또는 컨트롤 로직(30)에 따라 메모리 셀 어레이(22) 전체, 메모리 블록 단위, 페이지 단위, 또는 워드 라인 단위로 적용될 수 있다. 즉, 리드 전압은 메모리 블록 단위, 페이지 단위, 또는 워드 라인 단위로 변경될 수 있다.
또한, 메모리 블록 단위, 페이지 단위, 또는 워드 라인 단위로 변경된 리드 파리미터에 대한 리스트는 스토리지(78 또는 26)에 저장되거나, 매핑 테이블 형태로 관리되거나, 인덱스를 갖는 테이블 형태로 관리될 수 있다.
이 경우 CPU(80) 또는 컨트롤 블록(30)은 상기 리스트를 참조하여 메모리 블록 단위, 페이지 단위, 또는 워드 라인 단위로 리드 파라미터를 적용할 수 있다.
상술한 바와 같이, 리드 전압 제어 블록(70)은 ECC 블록(55)으로부터 출력된 에러 정정 디코딩의 성공 여부를 지시하는 지시 신호에 따라 최초로 출력된 데이터에 포함된 특정 비트 수, 에러 비트 수, 또는 문턱 전압들의 산포를 참조하여 리드 파라미터를 변경할 수 있다.
도 5b는 도 1에 도시된 메모리 시스템의 동작 방법을 설명하기 위한 또 다른 실시 예를 나타내는 흐름도이다.
도 5a의 120a에서 수행되는 리드 리트라이 동작은 리드 전압의 변경과 에러 정정 디코딩을 포함하나, 도 5b의 S120b에서 수행되는 리드 리트라이 동작은 리드 전압만을 변경시키면서 리드 리트라이 데이터를 리드하는 동작을 의미한다.
도 1부터 도 3, 및 도 5b를 참조하면, 현재 리드 동작 동안 최초로 출력된 제1데이터에 대한 에러 정정 디코딩이 실패했을 때, 비휘발성 메모리 장치(20A)는 메모리 컨트롤러(50)의 제어에 따라 리드 전압 레벨을 변경한 후 변경된 레벨을 갖는 리드 전압에 따라 리드 리트라이 데이터를 리드하고 상기 리드 리트라이 데이터를 메모리 컨트롤러(50)로 전송한다(S120b).
메모리 컨트롤러(50)는 리드 리트라이 데이터에 대한 에러 정정 디코딩의 성공 여부를 판단한다(S110). 상기 리드 리트라이 데이터에 대한 에러 정정 디코딩이 성공했을 때 메모리 시스템(10)은 130단계를 수행한다.
그러나, 상기 리드 리트라이 데이터에 대한 에러 정정 디코딩이 실패했을 때 비휘발성 메모리 장치(20A)는 메모리 컨트롤러(50)의 제어에 따라 리드 전압 레벨을 변경한 후 변경된 레벨을 갖는 리드 전압에 따라 리드 리트라이 데이터를 리드하고 상기 리드 리트라이 데이터를 메모리 컨트롤러(50)로 전송한다(S120b).
리드 리트라이 동작의 수행 결과, 리드 리트라이 데이터에 대한 에러 정정 디코딩이 성공했을 때, 메모리 시스템(10)은 S130을 수행한다. 예컨대, 카운트 값 (CNT)과 기준 카운트 값(RCNT)이 서로 동일할 때, 메모리 컨트롤러(50)는 다음 리드 동작 동안에도 현재 리드 전압 레벨을 유지하도록 비휘발성 메모리 장치(20A)를 제어할 수 있다.
도 9는 본 발명의 실시 예에 따른 리드 전압을 조절할 수 있는 비휘발성 메모리 장치의 블록도를 나타내고, 도 10은 도 9에 도시된 컨트롤 로직의 블록도를 나타내고, 도 11은 도 9에 도시된 비휘발성 메모리 장치의 동작 방법의 일 실시 예를 나타내는 흐름도이다.
도 9부터 도 11에 도시된 바와 같이, 비휘발성 메모리 장치(20B)는 자체적으로 리드 전압을 변경할 수 있다. 그러나 ECC 블록(55)의 각종 파라미터는 CPU(80)의 제어에 따라 변경될 수 있다.
도 1, 도 2, 도 3, 도 9, 도 10, 및 도 11을 참조하여 비휘발성 메모리 장치 (20B)의 동작을 설명하면 다음과 같다.
제1리드 동작 동안 워드 라인 전압 발생기(32)는 컨트롤 로직(30')의 제어에 따라 도 3에 도시된 바와 같이 제1리드 전압(Vreadi)을 발생한다. 페이지 버퍼(36)는 제1리드 전압(Vreadi)을 이용하여 메모리 셀 어레이(22)에 저장된 제1데이터를 리드한다.
페이지 버퍼(36)에 의하여 출력된 제1데이터는 컬럼 디코더(38)와 입출력 버퍼(40)를 통하여 컨트롤 로직(30')으로 전송된다.
컨트롤 로직(30')의 카운터(30-2)는 상기 제1데이터에 포함된 데이터 1과 데이터 0중에서 어느 하나, 예컨대 데이터 1의 개수를 카운트하고 카운트 값(CNT)을 출력한다(S210).
컨트롤 로직(30')의 비교기(30-2)는 카운트 값(CNT)과 기준 카운트 값(CREF)을 비교하고 비교 결과에 따라 제어 신호(CTR)를 출력한다(S220).
카운트 값(CNT)이 기준 카운트 값(CREF)보다 클 때 비교기(30-2)는 제1레벨을 갖는 제어 신호(CTR)를 출력하고, 카운트 값(CNT)이 기준 카운트 값(CREF)보다 작을 때 비교기(30-2)는 제2레벨을 갖는 제어 신호(CTR)를 출력한다.
워드 라인 전압 발생기(32)는 제2레벨을 갖는 제어 신호(CTR)에 따라 제1리드 전압(Vreadi)을 제3리드 전압(Vreadh)으로 증가시킨다(S230).
또한 워드 라인 전압 발생기(32)는 제1레벨을 갖는 제어 신호(CTR)에 따라 제1리드 전압(Vreadi)을 제2리드 전압(Vreadl)으로 감소시킨다(S240).
비휘발성 메모리 장치(20B)의 컨트롤 로직(30')은 변경된 리드 전압(Vreadl 또는 Vreadh)에 대한 정보를 스페어 영역(26)에 저장할 수 있다.
따라서, 컨트롤 로직(30')은 제2리드 동작 동안 스페어 영역(26)에 저장된 상기 정보를 리드하고 리드된 정보에 상응하는 제어 신호(CTR)를 발생할 수 있다. 따라서 워드 라인 전압 발생기(32)는 제어 신호(CTR)에 따라 변경된 리드 전압 (Vreadl 또는 Vreadh)을 발생할 수 있다.
따라서 제2리드 동작 동안, 페이지 버퍼(36)는 변경된 리드 전압 (Vreadl 또는 Vreadh)을 이용하여 메모리 셀 어레이(22)에 저장된 제2데이터를 리드한다.
변경된 리드 전압(Vreadl 또는 Vreadh)은 컨트롤 로직(30')의 제어에 따라 메모리 블록 단위, 페이지 단위, 또는 워드 라인 단위로 공급될 수 있다.
도 1을 참조하여 설명한 바와 같이, 메모리 컨트롤러(50)의 리드 전압 제어 블록(70)은 ECC 블록(55)의 각종 파라미터를 변경할 수 있다.
상술한 바와 같이, 리드 전압 제어 블록(70)은 현재 리드 동작 동안 리드된 데이터에 대한 에러 정정 디코딩이 성공했을 때 ECC 블록(55)의 각종 파라미터를 변경할 수 있다. 따라서 ECC 블록(55)은 다음 리드 동작 동안 리드된 데이터에 변경된 파라미터를 적용하여 리드 동작의 성공 여부를 판단할 수 있다.
도 9와 도 11을 참조하여 설명한 바와 같이, 비휘발성 메모리 장치(20B)는 리드 전압을 실시간으로 변경할 수 있고 또한 스페어 영역(26)에 저장된 정보를 이용하여 리드 전압을 변경할 수 있다.
도 9에 도시된 비휘발성 메모리 장치(20B)의 동작을 제어할 수 있는 메모리 컨트롤러는 리드 전압의 변경 여부를 판단하는 것을 제외하고 최초로 출력된 데이터에 대한 에러 정정 디코딩의 성공 여부에 따라 ECC 블록(55)의 각종 파라미터를 변경할 수 있다.
도 12는 본 발명의 실시 예에 따른 비휘발성 메모리 장치를 포함하는 전자 장치의 블록도를 나타낸다.
도 12를 참조하면, 이동 전화기(cellular phone), 스마트 폰(smart phone), 또는 태블릿(tablet) PC와 같은 전자 장치(100)는 플래시 메모리 장치로 구현될 수 있는 비휘발성 메모리 장치(20)와, 비휘발성 메모리 장치(20)의 동작을 제어할 수 있는 메모리 컨트롤러(150)를 포함할 수 있다.
비휘발성 메모리 장치(20)는 리드 동작 시 필요한 리드 전압을 메모리 컨트롤러의 제어에 따라 변경할 수 있는지의 여부에 따라 도 1에 도시된 비휘발성 메모리 장치(20A) 또는 도 9에 도시된 비휘발성 메모리 장치(20B)를 의미할 수 있다.
또한, 메모리 컨트롤러(150)는 도 1에 도시된 메모리 컨트롤러(150)를 의미할 수 있다. 메모리 컨트롤러(150)가 도 9에 도시된 비휘발성 메모리 장치(20B)를 제어할 때에는 리드 전압의 변경은 제어하지 않는다.
메모리 컨트롤러(150)는 전자 장치(190)의 전반적인 동작을 제어하는 프로세서(110)에 의하여 제어된다.
비휘발성 메모리 장치(20)에 저장된 데이터는 프로세서(110)의 제어에 따라 동작하는 메모리 컨트롤러(150)의 제어에 따라 디스플레이(130)를 통하여 디스플레이될 수 있다.
무선 송수신기(120)는 안테나(ANT)를 통하여 무선 신호를 주거나 받을 수 있다. 예컨대, 무선 송수신기(120)는 안테나(ANT)를 통하여 수신된 무선 신호를 프로세서(110)가 처리할 수 있는 신호로 변환할 수 있다. 따라서 프로세서(110)는 무선 송수신기(120)로부터 출력된 신호를 처리하고, 처리된 신호를 메모리 컨트롤러 (150)를 통하여 비휘발성 메모리 장치(20)에 저장하거나 또는 디스플레이(130)를 통하여 디스플레이할 수 있다.
무선 송수신기(120)는 프로세서(110)로부터 출력된 신호를 무선 신호로 변환하고, 변환된 무선 신호를 안테나(ANT)를 통하여 외부로 출력할 수 있다.
입력 장치(140)는 프로세서(110)의 동작을 제어하기 위한 제어 신호 또는 프로세서(110)에 의하여 처리될 데이터를 입력할 수 있는 장치로서, 터치 패드 (touch pad)와 컴퓨터 마우스(computer mouse)와 같은 포인팅 장치(pointing device), 키패드(keypad), 또는 키보드로 구현될 수 있다.
프로세서(110)는 비휘발성 메모리 장치(20)로부터 출력된 데이터, 무선 송수신기(120)로부터 출력된 무선 신호, 또는 입력 장치(140)로부터 출력된 데이터가 디스플레이(130)를 통하여 디스플레이될 수 있도록 디스플레이(130)를 제어할 수 있다.
도 13은 본 발명의 다른 실시 예에 따른 비휘발성 메모리 장치를 포함하는 전자 장치의 블록도를 나타낸다.
도 13을 참조하면, PC(personal computer), 태블릿 컴퓨터(tablet computer), 넷-북(net-book), e-리더(e-reader), PDA(personal digital assistant), PMP(portable multimedia player), MP3 플레이어, 또는 MP4 플레이어와 같은 데이터 처리 장치로 구현될 수 있는 전자 장치(200)는 플래시 메모리 장치와 같은 비휘발성 메모리 장치(20)와, 비휘발성 메모리 장치(20)의 동작을 제어할 수 있는 메모리 컨트롤러(250)를 포함한다.
메모리 컨트롤러(250)는 도 1에 도시된 메모리 컨트롤러(50)와 동일한 기능, 즉 현재 리드 동작 동안에 최초로 출력된 데이터에 대한 리드 동작의 성공 여부를 판단하고 상기 리드 동작이 성공했을 때라도 다음 리드 동작에 필요한 리드 파라미터를 변경할 수 있다.
전자 장치(200)는 전자 장치(200)의 전반적인 동작을 제어하기 위한 프로세서(210)를 포함할 수 있다. 메모리 컨트롤러(250)는 프로세서(210)에 의하여 제어된다.
프로세서(210)는 입력 장치(220)에 의하여 발생한 입력 신호에 따라 비휘발성 메모리 장치(20)에 저장된 데이터를 디스플레이(230)를 통하여 디스플레이할 수 있다. 예컨대, 입력 장치(220)는 터치 패드 또는 컴퓨터 마우스와 같은 포인팅 장치, 키패드, 또는 키보드로 구현될 수 있다.
도 14는 본 발명의 또 다른 실시 예에 따른 비휘발성 메모리 장치를 포함하는 전자 장치의 블록도를 나타낸다.
도 14를 참조하면, 전자 장치(300)는 카드 인터페이스(310), 메모리 컨트롤러(320), 및 비휘발성 메모리 장치(20), 예컨대 플래시 메모리 장치를 포함한다.
전자 장치(300)는 카드 인터페이스(310)를 통하여 호스트(HOST)와 데이터를 주거나 받을 수 있다. 실시 예에 따라, 카드 인터페이스(310)는 SD(secure digital) 카드 인터페이스 또는 MMC(multi-media card) 인터페이스일 수 있으나 이에 한정되는 것은 아니다. 카드 인터페이스(310)는 전자 장치(300)와 통신할 수 있는 호스트(HOST)의 통신 프로토콜에 따라 호스트(HOST)와 메모리 컨트롤러(320) 사이에서 데이터 교환을 인터페이스할 수 있다.
메모리 컨트롤러(320)는 전자 장치(300)의 전반적인 동작을 제어하며, 카드 인터페이스(310)와 비휘발성 메모리 장치(20) 사이에서 데이터의 교환을 제어할 수 있다. 또한 메모리 컨트롤러(320)의 버퍼 메모리(325)는 카드 인터페이스(310)와 비휘발성 메모리 장치(330) 사이에서 주고받는 데이터를 버퍼링할 수 있다.
메모리 컨트롤러(320)는 데이터 버스(DATA) 및 어드레스 버스(ADDRESS)를 통하여 카드 인터페이스(310)와 비휘발성 메모리(60)와 접속된다. 실시 예에 따라 메모리 컨트롤러(320)는 카드 인터페이스(310)로부터 리드 또는 라이트하고자 하는 데이터의 어드레스를 어드레스 버스(ADDRESS)를 통하여 수신하고 이를 비휘발성 메모리 장치(20)로 전송한다.
또한, 메모리 컨트롤러(320)는 카드 인터페이스(310) 또는 비휘발성 메모리 장치(20) 각각에 접속된 데이터 버스(DATA)를 통하여 리드 또는 라이트하고자 하는 데이터를 수신하거나 전송한다. 실시 예에 따라 도 14에 도시된 메모리 컨트롤러 (320)는 도 1에 도시된 메모리 컨트롤러(50)와 동일 또는 유사한 기능을 수행할 수 있다. 따라서 메모리 컨트롤러(320)는 현재 리드 동작 동안에 메모리 셀 어레이 (22)로부터 최초로 출력된 데이터에 대한 리드 동작의 성공 여부를 판단하고 상기 리드 동작이 성공했을 때라도 다음 리드 동작에 필요한 리드 파라미터를 미리 변경할 수 있다.
비휘발성 메모리 장치(20)에는 각종 데이터가 저장된다. 실시 예에 따라, 비휘발성 메모리 장치(20)에서 리드 동작과 라이트 동작이 동시에 수행될 수 있다. 이때 리드 동작이 수행되는 비휘발성 메모리 장치(20)의 메모리 셀 어레이와 라이트 동작이 수행되는 비휘발성 메모리(20)의 메모리 셀 어레이 각각은 서로 다를 수 있다.
도 14의 전자 장치(300)가 PC, 태블릿 PC, 디지털 카메라, 디지털 오디오 플레이어, 이동 전화기, 콘솔 비디오 게임 하드웨어, 또는 디지털 셋-탑 박스와 같은 호스트(HOST)에 접속될 때, 호스트(HOST)는 카드 인터페이스(310)와 메모리 컨트롤러(320)를 통하여 비휘발성 메모리 장치(20)에 저장된 데이터를 주거나 받을 수 있다.
도 15는 본 발명의 또 다른 실시 예에 따른 비휘발성 메모리 장치를 포함하는 전자 장치의 블록도를 나타낸다.
도 15를 참조하면, 전자 장치(400)는 카드 인터페이스(410), 메모리 컨트롤러(420), 및 비휘발성 메모리 장치(20), 예컨대 플래시 메모리를 포함한다.
전자 장치(400)는 카드 인터페이스(410)를 통하여 호스트(HOST)와 데이터 통신을 수행할 수 있다. 실시 예에 따라, 카드 인터페이스(410)는 SD 카드 인터페이스 또는 MMC 인터페이스일 수 있으나 이에 한정되는 것은 아니다. 카드 인터페이스(410)는 전자 장치(400)와 통신할 수 있는 호스트(HOST)의 통신 프로토콜에 따라 호스트(HOST)와 메모리 컨트롤러(420) 사이에서 데이터 통신을 수행할 수 있다.
메모리 컨트롤러(420)는 전자 장치(400)의 전반적인 동작을 제어하며, 카드 인터페이스(410)와 비휘발성 메모리 장치(20) 사이에서 데이터의 교환을 제어할 수 있다.
또한, 메모리 컨트롤러(420)에 포함된 버퍼 메모리(425)는 전자 장치(400)의 전반적인 동작을 제어하기 위하여 각종 데이터를 저장할 수 있다. 메모리 컨트롤러(420)는 데이터 버스(DATA) 및 로지컬 어드레스 버스(LOGICAL ADDRESS)를 통하여 카드 인터페이스(410)와 비휘발성 메모리(20)와 접속될 수 있다.
실시 예에 따라 메모리 컨트롤러(420)는 카드 인터페이스(410)로부터 리드 데이터 또는 라이트 데이터의 어드레스를 로지컬 어드레스 버스(LOGICAL ADDRESS)를 통하여 수신하고, 피지컬 어드레스 버스(PHYSICAL ADDRESS)를 통하여 비휘발성 메모리(20)로 전달할 수 있다.
또한, 메모리 컨트롤러(420)는 카드 인터페이스(410) 또는 비휘발성 메모리 (60) 각각에 접속된 데이터 버스(DATA)를 통하여 리드 데이터 또는 라이트 데이터를 수신하거나 전송할 수 있다. 메모리 컨트롤러(420)는 도 1에 도시된 메모리 컨트롤러(50)와 동일 또는 유사한 기능을 수행할 수 있다. 따라서 메모리 컨트롤러 (420)는 현재 리드 동작 동안에 메모리 셀 어레이(22)로부터 최초로 출력된 데이터에 대한 리드 동작의 성공 여부를 판단하고 상기 리드 동작이 성공했을 때에도 다음 리드 동작에 필요한 리드 파라미터를 변경할 수 있다.
실시 예에 따라, 전자 장치(400)의 메모리 컨트롤러(420)는 버퍼 메모리 (425) 내에 어드레스 변환 테이블(Address Translation Table; 426)을 포함할 수 있다. 상기 어드레스 변환 테이블에는 외부로부터 입력된 로지컬 어드레스와 비휘발성 메모리(20)에 액세스하기 위한 로지컬 어드레스가 포함될 수 있다. 라이트 동작시, 메모리 컨트롤러(420)는 임의의 피지컬 어드레스에 새로운 데이터를 라이트하고, 상기 어드레스 변환 테이블을 업데이트할 수 있다.
메모리 컨트롤러(420)는 어드레스 변환 테이블(426)로부터 라이트 동작이 수행되는 데이터의 피지컬 어드레스를 참조함으로써 라이트 동작과 병행하여 리드 동작을 수행할 수 있는 피지컬 어드레스를 선택할 수 있다.
메모리 컨트롤러(420)는 상기 라이트 동작과 상기 리드 동작을 병행하고, 상기 라이트 동작과 상기 리드 동작에 따라 어드레스 변환 테이블(426)을 업-데이트할 수 있다. 따라서 전자 장치(400)의 동작시간은 단축될 수 있다.
도 15의 전자 장치(400)가 PC, 태블릿 PC, 디지털 카메라, 디지털 오디오 플레이어, 이동 전화기, 콘솔 비디오 게임 하드웨어, 또는 디지털 셋-탑 박스와 같은 호스트(HOST)에 접속될 때, 호스트(HOST)는 카드 인터페이스(410)와 메모리 컨트롤러(420)를 통하여 비휘발성 메모리(20)에 저장된 데이터를 주거나 받을 수 있다.
도 16은 본 발명의 또 다른 실시 예에 따른 비휘발성 메모리 장치를 포함하는 전자 장치의 블록도를 나타낸다.
도 16을 참조하면, 전자 장치(500)는 플래시 메모리 장치와 같은 비휘발성 메모리 장치(20), 비휘발성 메모리 장치(20)의 데이터 처리 동작을 제어하기 위한 메모리 컨트롤러(540), 및 전자 장치(500)의 전반적인 동작을 제어할 수 있는 프로세서(510)를 포함한다. 프로세서(510)의 제어에 따라 메모리 컨트롤러(540)는 현재 리드 동작 동안에 메모리 셀 어레이(22)로부터 최초로 출력된 데이터에 대한 리드 동작의 성공 여부를 판단하고 상기 리드 동작이 성공했을 때에도 다음 리드 동작에 필요한 리드 파라미터를 변경할 수 있다.
전자 장치(500)의 이미지 센서(520)는 광학 신호를 디지털 신호로 변환하고, 변환된 디지털 신호는 프로세서(510)의 제어하에 비휘발성 메모리 장치(20)에 저장되거나 또는 디스플레이(530)를 통하여 디스플레이된다. 또한, 비휘발성 메모리 장치(20)에 저장된 디지털 신호는 프로세서(510)의 제어하에 디스플레이(530)를 통하여 디스플레이된다.
도 17은 본 발명의 또 다른 실시 예에 따른 비휘발성 메모리 장치를 포함하는 전자 장치의 블록도를 나타낸다.
도 17을 참조하면, 전자 장치(600)는 플래시 메모리 장치와 같은 비휘발성 메모리 장치(20), 비휘발성 메모리 장치(20)의 동작을 제어하기 위한 메모리 컨트롤러(650), 및 전자 장치(600)의 전반적인 동작을 제어할 수 있는 CPU(610)를 포함한다.
전자 장치(600)는 CPU(610)의 동작 메모리(operation memory)로서 사용될 수 있는 메모리(650)를 포함한다. 메모리(650)는 ROM과 같은 비휘발성 메모리 또는 DRAM같은 휘발성 메모리로 구현될 수 있다.
전자 장치(600)에 접속된 호스트(HOST)는 메모리 컨트롤러(650)와 호스트 인터페이스(640)를 통하여 비휘발성 메모리 장치(20)와 데이터를 주거나 받을 수 있다. 이때 메모리 컨트롤러(650)는 메모리 인터페이스, 예컨대 플래시 메모리 인터페이스의 기능을 수행할 수 있다. 메모리 컨트롤러(650)는 현재 리드 동작 동안에 메모리 셀 어레이(22)로부터 최초로 출력된 데이터에 대한 리드 동작의 성공 여부를 판단하고 상기 리드 동작이 성공했을 때에도 다음 리드 동작을 수행하기 위하여 필요한 리드 파라미터를 미리 변경할 수 있다.
실시 예에 따라 전자 장치(600)는 ECC(error correction code) 블록(630)을 더 포함할 수 있다. CPU(610)의 제어에 따라 동작하는 ECC 블록(630)은 메모리 컨트롤러(650)를 통하여 비휘발성 메모리 장치(20)로부터 리드된 데이터에 포함된 에러를 검출하고 정정할 수 있다.
CPU(610)는 버스(601)를 통하여 메모리 컨트롤러(650), ECC 블록(630), 호스트 인터페이스(640), 및 메모리(650) 사이에서 데이터의 교환을 제어할 수 있다.
전자 장치(600)는 USB(Universal Serial Bus) 메모리 드라이브 또는 메모리 스틱(memory stick) 등으로 구현될 수 있다.
도 18은 본 발명의 또 다른 실시 예에 따른 비휘발성 메모리 장치를 포함하는 전자 장치의 블록도를 나타낸다.
도 18을 참조하면, 전자 장치(700)는 SSD(solid state drive)와 같은 데이터 저장 장치로 구현될 수 있다.
전자 장치(700)는 다수개의 비휘발성 메모리 장치들(20-1~20-j)과, 다수개의 비휘발성 메모리 장치들(20-1~20-j) 각각의 데이터 처리 동작을 제어할 수 있는 메모리 컨트롤러(710)를 포함할 수 있다.
전자 장치(700)는 메모리 시스템 또는 메모리 모듈로 구현될 수 있다. 실시 예에 따라 메모리 컨트롤러(710)는 전자 장치(700)의 내부 또는 외부에 구현될 수 있다. 메모리 컨트롤러(710)는 현재 리드 동작 동안에 메모리 셀 어레이(22)로부터 최초로 출력된 데이터에 대한 리드 동작의 성공 여부를 판단하고 상기 리드 동작이 성공했을 때에도 다음 리드 동작에 필요한 리드 파라미터를 미리 변경할 수 있다.
도 19는 도 18에 도시된 전자 장치를 포함하는 데이터 처리 시스템의 블록도를 나타낸다.
도 18과 도 19를 참조하면, RAID(redundant array of independent disks) 시스템으로 구현될 수 있는 데이터 저장 장치(800)는 RAID 컨트롤러(810)와, 다수개의 메모리 시스템들(700-1~700-n; n는 자연수)을 포함할 수 있다.
다수개의 메모리 시스템들(700-1~700-n) 각각은 도 19에 도시된 전자 장치 (700)일 수 있다. 다수개의 메모리 시스템들(700-1~700-n)은 RAID 어레이를 구성할 수 있다. 데이터 저장 장치(800)는 PC(personal computer) 또는 SSD로 구현될 수 있다.
프로그램 동작 동안, RAID 컨트롤러(810)는 호스트로부터 출력된 프로그램 데이터를 다수개의 RAID 레벨들 중에서 상기 호스트로부터 출력된 RAID 레벨 정보에 기초하여 선택된 어느 하나의 RAID 레벨에 따라 다수개의 메모리 시스템들(700-1~700-n) 중에서 어느 하나의 메모리 시스템으로 출력할 수 있다.
또한, 리드 동작 동안, RAID 컨트롤러(810)는 다수개의 RAID 레벨들 중에서 상기 호스트로부터 출력된 RAID 레벨 정보에 기초하여 선택된 어느 하나의 RAID 레벨에 따라서 다수개의 메모리 시스템(700-1~700-n) 중에서 어느 하나의 메모리 시스템으로부터 리드된 데이터를 상기 호스트로 전송할 수 있다.
다수개의 메모리 시스템(700-1~700-n) 각각의 메모리 컨트롤러는 현재 리드 동작 동안에 메모리 셀 어레이(22)로부터 최초로 출력된 데이터에 대한 리드 동작의 성공 여부를 판단하고 상기 리드 동작이 성공했을 때에도 다음 리드 동작에 필요한 리드 파라미터를 미리 변경할 수 있다.
본 발명은 도면에 도시된 일 실시 예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 등록청구범위의 기술적 사상에 의해 정해져야 할 것이다.
10: 메모리 시스템
20A, 20B: 비휘발성 메모리 장치
22: 메모리 셀 어레이
30, 30': 컨트롤 로직
32: 워드 라인 전압 발생기
34: 로우 디코더
36: 페이지 버퍼
38: 컬럼 디코더
40: 입출력 버퍼
50: 메모리 컨트롤러
55: ECC 블록
60: 데이터 버퍼
70: 리드 전압 제어 블록
72: 카운터
74: 비교기
76: 결정 로직
78: 메모리
80: CPU

Claims (15)

  1. 리드 전압을 이용하여 메모리 셀 어레이에 저장된 제1데이터를 리드하는 단계; 및
    상기 제1데이터에 포함된 1과 0중에서 어느 하나의 개수를 카운트한 카운트 값과 기준 카운트 값의 비교 결과에 따라 상기 메모리 셀 어레이의 제1영역에 저장된 제2데이터를 리드하기 위하여 상기 리드 전압을 변경하는 단계를 포함하는 비휘발성 메모리 장치의 리드 방법.
  2. 제1항에 있어서, 상기 비휘발성 메모리 장치의 리드 방법은,
    변경된 리드 전압에 대한 정보를 상기 메모리 셀 어레이의 제2영역에 저장하는 단계; 및
    상기 제2영역에 저장된 상기 정보에 상응하는 상기 변경된 리드 전압을 이용하여 상기 제2데이터를 리드하는 단계를 더 포함하는 비휘발성 메모리 장치의 리드 방법.
  3. 제1항에 있어서,
    상기 메모리 셀 어레이가 상기 제1데이터를 저장하기 위한 복수의 멀티-레벨 셀들을 포함할 때,
    상기 복수의 멀티-레벨 셀들 각각은 복수의 상태들 중에서 어느 하나의 상태를 갖도록 프로그램된 비휘발성 메모리 장치의 리드 방법.
  4. 제1리드 동작 동안 제1리드 전압에 따라 비휘발성 메모리 장치의 메모리 셀 어레이로부터 최초로 출력된 제1데이터를 수신하는 단계;
    상기 제1데이터에 대한 리드 동작의 성공 여부를 판단하는 단계; 및
    상기 리드 동작이 성공한 후, 제2리드 동작 동안 상기 메모리 셀 어레이에 저장된 제2데이터를 리드하기 위하여 필요한 리드 전압을 상기 제1리드 전압으로부터 제2리드 전압으로 변경하기 위한 정보를 저장하는 단계를 포함하는 메모리 컨트롤러의 동작 방법.
  5. 제4항에 있어서, 상기 메모리 컨트롤러의 동작 방법은,
    상기 제1데이터에 포함된 1과 0중에서 어느 하나의 개수를 카운트하여 카운트 값을 출력하는 단계; 및
    상기 리드 동작이 성공한 후, 상기 카운트 값과 기준 카운트 값의 비교 결과에 따라 상기 제1리드 전압을 상기 제2리드 전압으로 변경하기 위한 상기 정보를 생성하는 단계를 더 포함하는 메모리 컨트롤러의 동작 방법.
  6. 제4항에 있어서, 상기 리드 동작의 성공 여부는,
    상기 제1데이터에 대한 에러 정정 디코딩 결과에 따라 판단되는 메모리 컨트롤러의 동작 방법.
  7. 제4항에 있어서, 상기 리드 동작의 성공 여부는,
    상기 제1데이터에 대한 에러 정정 디코딩 결과에 따라 에러 정정된 제1데이터가 호스트로 전송되었는지의 여부에 따라 판단되는 메모리 컨트롤러의 동작 방법.
  8. 제4항에 있어서, 상기 제2데이터는 메모리 블록 단위 데이터인 메모리 컨트롤러의 동작 방법.
  9. 제4항에 있어서, 상기 제2데이터는 페이지 단위 데이터인 메모리 컨트롤러의 동작 방법.
  10. 제4항에 있어서, 상기 제2데이터는 워드 라인 단위 데이터인 메모리 컨트롤러의 동작 방법.
  11. 제1리드 동작 동안 제1리드 전압에 따라 비휘발성 메모리 장치의 메모리 셀 어레이로부터 최초로 출력된 제1데이터를 수신하는 단계;
    상기 제1데이터에 대한 리드 동작의 성공 여부를 판단하는 단계; 및
    상기 리드 동작이 성공한 후 상기 제1데이터에 포함된 에러 비트 수와 기준 값의 비교 결과에 따라 제2리드 동작 동안 상기 메모리 셀 어레이에 저장된 제2데이터를 리드하기 위하여 필요한 리드 전압을 상기 제1리드 전압으로부터 제2리드 전압으로 변경하기 위한 정보를 저장하는 단계를 포함하는 메모리 컨트롤러의 동작 방법.
  12. 제11항에 있어서, 상기 정보를 저장하는 단계는,
    상기 에러 비트 수가 상기 기준 값보다 클 때 상기 제1리드 전압을 상기 제1리드 전압보다 낮은 상기 제2리드 전압으로 변경할 수 있는 상기 정보를 생성하는 메모리 컨트롤러의 동작 방법.
  13. 제1리드 동작 동안 비휘발성 메모리 장치가 제1리드 전압에 따라 상기 비휘발성 메모리 장치의 메모리 셀 어레이로부터 최초로 출력된 제1데이터를 메모리 컨트롤러로 전송하는 단계; 및
    상기 메모리 컨트롤러는 상기 제1데이터에 대한 리드 동작의 성공 여부를 판단하고, 상기 리드 동작이 성공한 후 상기 메모리 컨트롤러는 상기 제1리드 전압을 제2리드 전압으로 변경할 수 있는 정보를 생성하여 메모리로 저장하는 단계를 포함하는 메모리 시스템의 동작 방법.
  14. 제1리드 동작 동안 비휘발성 메모리 장치가 제1리드 전압에 따라 상기 비휘발성 메모리 장치의 메모리 셀 어레이로부터 최초로 출력된 제1데이터를 메모리 컨트롤러로 전송하는 단계;
    상기 메모리 컨트롤러가 상기 제1데이터에 포함된 1과 0중에서 어느 하나의 개수를 카운트하여 카운트 값을 출력하는 단계;
    상기 메모리 컨트롤러가 상기 제1데이터에 대한 리드 동작의 성공 여부를 판단하는 단계; 및
    상기 리드 동작이 성공했을 때, 상기 메모리 컨트롤러는 상기 카운트 값과 기준 카운트 값의 비교 결과에 따라 상기 제1리드 전압을 제2리드 전압으로 변경할 수 있는 정보를 메모리로 저장하는 단계를 포함하는 메모리 시스템의 동작 방법.
  15. 제1리드 동작 동안 비휘발성 메모리 장치가 제1리드 전압에 따라 상기 비휘발성 메모리 장치의 메모리 셀 어레이로부터 최초로 출력된 제1데이터를 메모리 컨트롤러로 전송하는 단계;
    상기 메모리 컨트롤러가 상기 제1데이터에 대한 리드 동작의 성공 여부를 판단하는 단계; 및
    상기 리드 동작이 성공했을 때, 상기 메모리 컨트롤러는 상기 제1데이터에 포함된 에러 비트 수와 기준 값의 비교 결과에 따라 상기 제1리드 전압을 제2리드 전압으로 변경할 수 있는 정보를 메모리로 저장하는 단계를 포함하는 메모리 시스템의 동작 방법.
KR1020100096550A 2010-10-04 2010-10-04 리드 성능을 향상시킬 수 있는 리드 파라미터 변경 방법과 상기 방법을 수행할 수 있는 장치들 KR101727704B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020100096550A KR101727704B1 (ko) 2010-10-04 2010-10-04 리드 성능을 향상시킬 수 있는 리드 파라미터 변경 방법과 상기 방법을 수행할 수 있는 장치들
US13/238,749 US9009390B2 (en) 2010-10-04 2011-09-21 Method for changing read parameter for improving read performance and apparatuses using the same
JP2011220170A JP6022756B2 (ja) 2010-10-04 2011-10-04 不揮発性メモリ装置の読み出し方法及びメモリコントローラの動作方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020100096550A KR101727704B1 (ko) 2010-10-04 2010-10-04 리드 성능을 향상시킬 수 있는 리드 파라미터 변경 방법과 상기 방법을 수행할 수 있는 장치들

Publications (2)

Publication Number Publication Date
KR20120035064A true KR20120035064A (ko) 2012-04-13
KR101727704B1 KR101727704B1 (ko) 2017-04-18

Family

ID=45890807

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100096550A KR101727704B1 (ko) 2010-10-04 2010-10-04 리드 성능을 향상시킬 수 있는 리드 파라미터 변경 방법과 상기 방법을 수행할 수 있는 장치들

Country Status (3)

Country Link
US (1) US9009390B2 (ko)
JP (1) JP6022756B2 (ko)
KR (1) KR101727704B1 (ko)

Cited By (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140057037A (ko) * 2012-11-02 2014-05-12 삼성전자주식회사 메모리 장치 구동 방법 및 메모리 시스템
KR20140057035A (ko) * 2012-11-02 2014-05-12 삼성전자주식회사 메모리 장치 구동 방법
KR20140113190A (ko) * 2013-03-15 2014-09-24 삼성전자주식회사 비휘발성 메모리 장치의 llr 최적화 방법 및 비휘발성 메모리 장치의 에러 정정 방법
KR20150029404A (ko) * 2013-09-10 2015-03-18 에스케이하이닉스 주식회사 반도체 장치, 메모리 시스템 및 이의 동작 방법
KR20150116270A (ko) * 2014-04-07 2015-10-15 삼성전자주식회사 비휘발성 메모리 장치와 이를 포함하는 메모리 시스템, 및 비휘발성 메모리 장치의 구동 방법
KR20150125490A (ko) * 2014-04-30 2015-11-09 삼성전자주식회사 플래시 메모리 장치, 플래시 메모리 시스템 및 이의 동작 방법
KR20160018149A (ko) * 2014-08-08 2016-02-17 삼성전자주식회사 비휘발성 메모리 장치의 디폴트 독출 전압 설정 방법 및 비휘발성 메모리 장치의 데이터 독출 방법
KR20160062298A (ko) * 2014-11-24 2016-06-02 삼성전자주식회사 불휘발성 메모리 시스템의 동작 방법
US9437315B2 (en) 2013-10-22 2016-09-06 SK Hynix Inc. Data storing system and operating method thereof
KR20170037159A (ko) * 2015-09-25 2017-04-04 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
KR20170056407A (ko) * 2015-11-13 2017-05-23 삼성전자주식회사 데이터의 인코딩과 디코딩을 위한 메모리 시스템
KR20170086173A (ko) * 2016-01-15 2017-07-26 삼성전자주식회사 불휘발성 메모리 시스템
KR20190108347A (ko) * 2018-03-14 2019-09-24 삼성전자주식회사 비휘발성 메모리 장치
KR20200058028A (ko) * 2018-11-19 2020-05-27 삼성전자주식회사 스토리지 장치 및 이의 동작 방법
US10725858B2 (en) 2017-08-14 2020-07-28 SK Hynix Inc. Memory system and operating method thereof
KR20210012177A (ko) * 2019-07-24 2021-02-03 삼성전자주식회사 반도체 메모리 장치 및 이의 동작 방법
KR20230068718A (ko) * 2021-11-11 2023-05-18 삼성전자주식회사 스토리지 장치 및 스토리지 장치의 동작 방법
US11742034B2 (en) 2019-12-30 2023-08-29 Micron Technology, Inc. Memory device including dynamic programming voltage

Families Citing this family (55)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9720616B2 (en) * 2008-06-18 2017-08-01 Super Talent Technology, Corp. Data-retention controller/driver for stand-alone or hosted card reader, solid-state-drive (SSD), or super-enhanced-endurance SSD (SEED)
US8868824B2 (en) * 2012-04-19 2014-10-21 Microsoft Corporation Solid-state drive management and control
TWI467379B (zh) * 2012-04-23 2015-01-01 Phison Electronics Corp 系統運作方法、記憶體控制器與記憶體儲存裝置
KR101961318B1 (ko) 2012-09-07 2019-07-17 삼성전자주식회사 중앙처리장치에서의 점유시간을 최소화하는 방어코드 운영 방법 및 그에 따른 메모리 시스템
KR102025263B1 (ko) * 2012-10-05 2019-09-25 삼성전자주식회사 메모리 시스템 및 그것의 읽기 교정 방법
JP2014175028A (ja) * 2013-03-08 2014-09-22 Toshiba Corp 不揮発性半導体記憶装置
KR102131802B1 (ko) 2013-03-15 2020-07-08 삼성전자주식회사 비휘발성 메모리 장치의 데이터 독출 방법, 비휘발성 메모리 장치, 및 메모리 시스템의 구동 방법
JP2014216041A (ja) * 2013-04-30 2014-11-17 ソニー株式会社 メモリ装置およびメモリ管理方法
KR102170857B1 (ko) * 2013-08-19 2020-10-29 삼성전자주식회사 저항체를 이용한 비휘발성 메모리 장치의 구동 방법
US9805813B2 (en) * 2013-08-30 2017-10-31 Empire Technology Development Llc Reduction of power consumption in flash memory
CN105518795B (zh) * 2013-09-13 2019-08-13 东芝存储器株式会社 半导体存储装置以及存储系统
KR102127287B1 (ko) 2014-02-11 2020-06-26 삼성전자주식회사 메모리 컨트롤러 및 메모리 컨트롤러가 불휘발성 메모리로부터 데이터를 읽는 데이터 읽기 방법
JP2015215774A (ja) * 2014-05-12 2015-12-03 Tdk株式会社 メモリコントローラ、メモリシステム及びメモリ制御方法
KR102174030B1 (ko) 2014-05-13 2020-11-05 삼성전자주식회사 불휘발성 메모리 장치를 포함하는 저장 장치 및 그것의 읽기 방법
US9213602B1 (en) * 2014-06-23 2015-12-15 Seagate Technology Llc Write mapping to mitigate hard errors via soft-decision decoding
KR20160004073A (ko) * 2014-07-02 2016-01-12 삼성전자주식회사 비휘발성 메모리 장치 및 그 구동 방법
KR102190241B1 (ko) 2014-07-31 2020-12-14 삼성전자주식회사 메모리 컨트롤러의 동작 방법 및 불휘발성 메모리 시스템
US9495255B2 (en) * 2014-08-07 2016-11-15 Pure Storage, Inc. Error recovery in a storage cluster
US9966146B2 (en) 2014-08-13 2018-05-08 Toshiba Memory Corporation Memory system and method of controlling non-volatile memory
KR20160073834A (ko) * 2014-12-17 2016-06-27 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템 동작 방법
US9798470B2 (en) 2015-01-23 2017-10-24 Toshiba Memory Corporation Memory system for storing and processing translation information
US9928138B2 (en) * 2015-02-17 2018-03-27 Toshiba Memory Corporation Memory system
KR20160110774A (ko) * 2015-03-12 2016-09-22 에스케이하이닉스 주식회사 메모리 장치 및 이를 포함하는 시스템
US9779818B2 (en) * 2015-07-09 2017-10-03 Apple Inc. Adaptation of high-order read thresholds
ITUB20152089A1 (it) * 2015-07-10 2017-01-10 St Microelectronics Srl Cella di memoria e dispositivo corrispondente
US9697075B2 (en) 2015-09-08 2017-07-04 Apple Inc. Efficient search for optimal read thresholds in flash memory
US10459793B2 (en) * 2016-03-17 2019-10-29 Western Digital Technologies, Inc. Data reliability information in a non-volatile memory device
JP6659494B2 (ja) 2016-08-19 2020-03-04 キオクシア株式会社 半導体記憶装置及びメモリシステム
CN108241549B (zh) * 2016-12-27 2021-04-30 北京兆易创新科技股份有限公司 基于ECC的NAND数据Read Retry纠错方法和NAND控制器
US10468117B2 (en) * 2017-01-12 2019-11-05 Sandisk Technologies Llc Read threshold adjustment with feedback information from error recovery
US10372351B2 (en) * 2017-02-23 2019-08-06 Western Digital Technologies, Inc. Techniques for non-blocking control information and data synchronization by a data storage device
US20180239532A1 (en) * 2017-02-23 2018-08-23 Western Digital Technologies, Inc. Techniques for performing a non-blocking control sync operation
KR102302187B1 (ko) 2017-03-13 2021-09-14 삼성전자주식회사 비휘발성 메모리 장치의 동작 방법 및 비휘발성 메모리 장치
US10388394B2 (en) 2017-07-25 2019-08-20 Apple Inc. Syndrome weight based evaluation of memory cells performance using multiple sense operations
US11295818B2 (en) 2018-02-09 2022-04-05 Samsung Electronics Co., Ltd. Non-volatile memory device, operating method thereof, and storage device having the same
KR102419895B1 (ko) 2018-02-09 2022-07-12 삼성전자주식회사 비휘발성 메모리 장치 및 이의 읽기 방법
JP2019169217A (ja) 2018-03-22 2019-10-03 東芝メモリ株式会社 メモリシステム、その制御方法及びプログラム
US10446254B1 (en) * 2018-05-03 2019-10-15 Western Digital Technologies, Inc. Method for maximizing power efficiency in memory interface block
JP2020035504A (ja) * 2018-08-30 2020-03-05 キオクシア株式会社 メモリシステム
CN110888820B (zh) 2018-09-07 2022-01-25 慧荣科技股份有限公司 数据储存装置以及非挥发式存储器控制方法
CN110888593B (zh) 2018-09-07 2024-01-26 慧荣科技股份有限公司 数据储存装置以及非挥发式存储器控制方法
CN110888591B (zh) * 2018-09-07 2023-05-30 慧荣科技股份有限公司 数据储存装置以及非挥发式存储器控制方法
US10790031B1 (en) * 2019-06-05 2020-09-29 Western Digital Technologies, Inc. System handling for first read read disturb
KR20210074846A (ko) * 2019-12-12 2021-06-22 에스케이하이닉스 주식회사 입력 회로를 포함하는 메모리 장치 및 메모리 시스템
US11386972B2 (en) * 2020-01-30 2022-07-12 Macronix International Co., Ltd. Determining read voltages for memory systems with machine learning
KR20210146637A (ko) 2020-05-27 2021-12-06 에스케이하이닉스 주식회사 메모리 컨트롤러 및 그 동작 방법
US11081204B1 (en) * 2020-06-22 2021-08-03 Micron Technology, Inc. Method for setting a reference voltage for read operations
US11276473B2 (en) 2020-08-07 2022-03-15 Micron Technology, Inc. Coarse calibration based on signal and noise characteristics of memory cells collected in prior calibration operations
JP2022041503A (ja) 2020-09-01 2022-03-11 キオクシア株式会社 メモリシステム
JP2022051179A (ja) 2020-09-18 2022-03-31 キオクシア株式会社 記憶装置及びリード方法
US20220107738A1 (en) * 2020-10-06 2022-04-07 Kioxia Corporation Read controller and input/output controller
KR20220080790A (ko) 2020-12-07 2022-06-15 삼성전자주식회사 비휘발성 메모리 장치, 그것을 제어하는 제어기, 그것을 갖는 저장 장치, 및 그것의 리드 방법
KR20230020109A (ko) 2021-08-03 2023-02-10 에스케이하이닉스 주식회사 리드 동작을 수행하는 메모리 장치 및 그것의 동작 방법
US11816349B2 (en) 2021-11-03 2023-11-14 Western Digital Technologies, Inc. Reduce command latency using block pre-erase
TWI808596B (zh) * 2022-01-04 2023-07-11 群聯電子股份有限公司 讀取電壓準位校正方法、記憶體儲存裝置及記憶體控制電路單元

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003100099A (ja) 2001-09-25 2003-04-04 Toshiba Lsi System Support Kk 半導体回路システム
JP2006114078A (ja) 2004-10-12 2006-04-27 Toshiba Corp 不揮発性半導体記憶装置及びその動作方法
US7954037B2 (en) 2005-10-25 2011-05-31 Sandisk Il Ltd Method for recovering from errors in flash memory
KR100907218B1 (ko) 2007-03-28 2009-07-10 삼성전자주식회사 읽기 레벨 제어 장치 및 그 방법
KR101267798B1 (ko) 2007-08-09 2013-06-04 삼성전자주식회사 읽기 레벨 제어 장치 및 그 방법
US8156398B2 (en) 2008-02-05 2012-04-10 Anobit Technologies Ltd. Parameter estimation based on error correction code parity check equations
KR101483190B1 (ko) 2008-09-05 2015-01-19 삼성전자주식회사 메모리 시스템 및 그것의 데이터 처리 방법
KR101516577B1 (ko) * 2008-11-10 2015-05-06 삼성전자주식회사 비휘발성 반도체 메모리 장치, 그를 포함하는 메모리 카드와 메모리 시스템 및 그의 리드 전압 추정 방법

Cited By (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140057035A (ko) * 2012-11-02 2014-05-12 삼성전자주식회사 메모리 장치 구동 방법
KR20140057037A (ko) * 2012-11-02 2014-05-12 삼성전자주식회사 메모리 장치 구동 방법 및 메모리 시스템
KR20140113190A (ko) * 2013-03-15 2014-09-24 삼성전자주식회사 비휘발성 메모리 장치의 llr 최적화 방법 및 비휘발성 메모리 장치의 에러 정정 방법
KR20150029404A (ko) * 2013-09-10 2015-03-18 에스케이하이닉스 주식회사 반도체 장치, 메모리 시스템 및 이의 동작 방법
US9437315B2 (en) 2013-10-22 2016-09-06 SK Hynix Inc. Data storing system and operating method thereof
KR20150116270A (ko) * 2014-04-07 2015-10-15 삼성전자주식회사 비휘발성 메모리 장치와 이를 포함하는 메모리 시스템, 및 비휘발성 메모리 장치의 구동 방법
KR20150125490A (ko) * 2014-04-30 2015-11-09 삼성전자주식회사 플래시 메모리 장치, 플래시 메모리 시스템 및 이의 동작 방법
KR20160018149A (ko) * 2014-08-08 2016-02-17 삼성전자주식회사 비휘발성 메모리 장치의 디폴트 독출 전압 설정 방법 및 비휘발성 메모리 장치의 데이터 독출 방법
KR20160062298A (ko) * 2014-11-24 2016-06-02 삼성전자주식회사 불휘발성 메모리 시스템의 동작 방법
KR20170037159A (ko) * 2015-09-25 2017-04-04 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
KR20170056407A (ko) * 2015-11-13 2017-05-23 삼성전자주식회사 데이터의 인코딩과 디코딩을 위한 메모리 시스템
KR20170086173A (ko) * 2016-01-15 2017-07-26 삼성전자주식회사 불휘발성 메모리 시스템
US10725858B2 (en) 2017-08-14 2020-07-28 SK Hynix Inc. Memory system and operating method thereof
KR20190108347A (ko) * 2018-03-14 2019-09-24 삼성전자주식회사 비휘발성 메모리 장치
KR20200058028A (ko) * 2018-11-19 2020-05-27 삼성전자주식회사 스토리지 장치 및 이의 동작 방법
KR20210012177A (ko) * 2019-07-24 2021-02-03 삼성전자주식회사 반도체 메모리 장치 및 이의 동작 방법
US11742034B2 (en) 2019-12-30 2023-08-29 Micron Technology, Inc. Memory device including dynamic programming voltage
KR20230068718A (ko) * 2021-11-11 2023-05-18 삼성전자주식회사 스토리지 장치 및 스토리지 장치의 동작 방법
US11961559B2 (en) 2021-11-11 2024-04-16 Samsung Electronics Co., Ltd. Storage device and operating method of storage device

Also Published As

Publication number Publication date
US20120084490A1 (en) 2012-04-05
KR101727704B1 (ko) 2017-04-18
JP2012079403A (ja) 2012-04-19
US9009390B2 (en) 2015-04-14
JP6022756B2 (ja) 2016-11-09

Similar Documents

Publication Publication Date Title
JP6022756B2 (ja) 不揮発性メモリ装置の読み出し方法及びメモリコントローラの動作方法
US10963339B2 (en) Data storage device and operating method thereof
US8654580B2 (en) Non-volatile memory devices and systems including the same, and methods of programming non-volatile memory devices
KR102065665B1 (ko) 더미 워드라인을 포함하는 불휘발성 메모리 장치, 메모리 시스템 및 메모리 시스템의 동작방법
US20130080858A1 (en) Method of reading data from a non-volatile memory and devices and systems to implement same
CN109671465B (zh) 具有自适应读取阈值方案的存储器系统及其操作方法
KR102002385B1 (ko) 데이터 저장 장치의 동작 방법
US11294814B2 (en) Memory system having a memory controller and a memory device having a page buffer
KR20120103274A (ko) 불 휘발성 메모리 장치 및 그것의 읽기 방법
US10936421B2 (en) Memory system having storage device and memory controller and operating method thereof
US20190140666A1 (en) Memory system and operating method thereof
US8848450B2 (en) Method and apparatus for adjusting maximum verify time in nonvolatile memory device
CN110045917B (zh) 存储器系统及其操作方法
KR102415218B1 (ko) 메모리 시스템 및 이의 동작 방법
KR102221752B1 (ko) 메모리 장치의 프로그램 방법 및 이를 포함하는 데이터 독출 방법
US10678471B2 (en) Memory controller, memory system having the memory controller, and operating method of the memory controller
US10930356B2 (en) Memory controller and method of operating the same
KR20230000724A (ko) 비휘발성 메모리 장치에 데이터를 프로그램하기 위한 장치 및 방법
US11137917B2 (en) Memory controller, memory system having the memory controller, and operating method of the memory controller
US9323594B2 (en) Semiconductor device and method of operating the same
KR20190037659A (ko) 불휘발성 메모리 장치, 불휘발성 메모리 장치의 동작 방법 및 불휘발성 메모리 장치를 포함하는 데이터 저장 장치
US11403038B2 (en) Controller, a memory system including the controller, and method of operating the controller
KR102627873B1 (ko) 메모리 장치, 이를 포함하는 메모리 시스템 및 그것의 동작 방법
US10860248B2 (en) Electronic device with control based on voltage abnormality, memory system having the same, and operating method thereof
CN109671463B (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