KR20090017844A - 고속 프로그램이 가능한 불휘발성 반도체 메모리 시스템 및그것의 독출 방법 - Google Patents

고속 프로그램이 가능한 불휘발성 반도체 메모리 시스템 및그것의 독출 방법 Download PDF

Info

Publication number
KR20090017844A
KR20090017844A KR1020070082330A KR20070082330A KR20090017844A KR 20090017844 A KR20090017844 A KR 20090017844A KR 1020070082330 A KR1020070082330 A KR 1020070082330A KR 20070082330 A KR20070082330 A KR 20070082330A KR 20090017844 A KR20090017844 A KR 20090017844A
Authority
KR
South Korea
Prior art keywords
read
data
error
voltage
program
Prior art date
Application number
KR1020070082330A
Other languages
English (en)
Other versions
KR101397549B1 (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 KR1020070082330A priority Critical patent/KR101397549B1/ko
Priority to US12/190,855 priority patent/US8898543B2/en
Priority to TW097130863A priority patent/TWI490872B/zh
Priority to JP2008209285A priority patent/JP5250337B2/ja
Priority to CN2008101887924A priority patent/CN101436434B/zh
Publication of KR20090017844A publication Critical patent/KR20090017844A/ko
Application granted granted Critical
Publication of KR101397549B1 publication Critical patent/KR101397549B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/35Unequal or adaptive error protection, e.g. by providing a different level of protection according to significance of source information or by adapting the coding according to the change of transmission channel characteristics
    • H03M13/356Unequal error protection [UEP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1072Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in multilevel memories
    • 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/5628Programming or writing circuits; Data input 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
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/63Joint error correction and other techniques
    • H03M13/6306Error control coding in combination with Automatic Repeat reQuest [ARQ] and diversity transmission, e.g. coding schemes for the multiple transmission of the same information or the transmission of incremental redundancy
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2211/00Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C2211/56Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
    • G11C2211/564Miscellaneous aspects
    • G11C2211/5641Multilevel memory having cells with different number of storage levels
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/09Error detection only, e.g. using cyclic redundancy check [CRC] codes or single parity bit
    • H03M13/098Error detection only, e.g. using cyclic redundancy check [CRC] codes or single parity bit using single parity bit
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Computer Hardware Design (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Quality & Reliability (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

본 발명에 따른 플래시 메모리 장치의 읽기 및 쓰기 방법은: (a) 제 1 데이터를 고속 모드와 일반 모드 중 어떤 속도로 프로그램할지를 결정하는 단계; (b) 고속 모드시, 멀티 비트 ECC 엔진에 의하여 상기 제 1 데이터로부터 에러 정정 코드를 생성하여 제 2 데이터로 생성하는 단계; (c) 상기 제 2 데이터를 제 1 시작 전압보다 높은 제 2 시작 전압을 갖는 프로그램 전압에 따라 셀 어레이로 프로그램하는 단계; 및 (d) 프로그램된 상기 제 2 데이터를 상기 셀 어레이로부터 독출하되, 상기 멀티 비트 ECC 엔진에 의하여 에러를 검출 및 정정하여 출력하는 단계를 포함한다.

Description

고속 프로그램이 가능한 불휘발성 반도체 메모리 시스템 및 그것의 독출 방법{NON-VOLATILE SEMICONDUCTOR MEMORY DEVICE AND SYSTEM CAPABLE OF FAST ROGRAMMING AND READ METHOD THEREOF}
본 발명은 반도체 메모리 장치에 관한 것으로, 좀 더 구체적으로는 불휘발성 메모리 장치 및 메모리 시스템에 관한 것이다.
일반적으로, 반도체 메모리 장치는 크게 휘발성 반도체 메모리 장치(Volatile semiconductor memory device)와 불휘발성 반도체 메모리 장치(Non-volatile semiconductor memory device)로 구분된다. 휘발성 반도체 메모리 장치는 읽고 쓰는 속도가 빠르지만 외부 전원 공급이 끊기면 저장된 내용이 사라져 버리는 단점이 있다. 반면에 불휘발성 반도체 메모리 장치는 외부 전원 공급이 중단되더라도 그 내용을 보존한다. 그러므로, 불휘발성 반도체 메모리 장치는 전원이 공급되었는지의 여부에 관계없이 보존되어야 할 내용을 기억시키는 데 쓰인다. 불휘발성 반도체 메모리 장치로는 마스크 롬(Mask read-only memory, MROM), 프로그램 가능한 롬(Programmable read-only memory, PROM), 소거 및 프로그램 가능한 롬(Erasable programmable read-only memory, EPROM), 전기적으로 소거 및 프로그 램 가능한 롬(Electrically erasable programmable read-only memory, EEPROM) 등이 있다.
일반적으로, MROM, PROM 및 EPROM은 시스템 자체적으로 소거 및 쓰기가 자유롭지 못해 일반 사용자들이 기억 내용을 갱신하기가 용이하지 않다. 이에 반해 EEPROM은 전기적으로 소거 및 쓰기가 가능하기 때문에, 계속적인 갱신이 필요한 시스템 프로그래밍(System programming)이나 보조 기억 장치로의 응용이 확대되고 있다. 특히 플래시(Flash) EEPROM은 기존의 EEPROM에 비해 집적도가 높아, 대용량 보조 기억 장치로의 응용에 매우 유리하다. 플래시 EEPROM 중에서도 낸드형(NAND-type) 플래시 EEPROM(이하, '낸드형 플래시 메모리'라 칭함)은 다른 플래시 EEPROM에 비해 집적도가 매우 높은 장점을 가진다.
일반적으로 플래시 메모리 장치는 정보를 저장할 수 있으며 원할 때 정보를 독출할 수 있는 집적 회로이다. 플래시 메모리 장치는 재기입이 가능한 복수의 메모리 셀들을 포함한다. 메모리 셀들 각각은 1-비트 데이터 또는 멀티-비트 데이터를 저장한다. 하나의 메모리 셀에 1-비트 데이터를 저장하는 경우, 메모리 셀은 2개의 문턱 전압 분포들, 즉 데이터 "1"과 데이터 "0" 중 어느 하나에 대응되는 문턱 전압 분포를 갖는다. 이에 반해서, 하나의 메모리 셀에 2-비트 데이터를 저장하는 경우, 메모리 셀은 4개의 문턱 전압 분포들 중 어느 하나에 속하는 문턱 전압을 갖는다. 또한, 하나의 메모리 셀에 3-비트 데이터를 저장하는 경우, 메모리 셀은 8개의 문턱 전압 분포들 중 어느 하나에 포함되는 문턱 전압을 갖는다. 최근에는, 하나의 메모리 셀에 4-비트 데이터를 저장하기 위한 다양한 기술들이 활발히 연구 되고 있는 실정이다.
상술한 제반 기술들에 있어서, 플래시 메모리 장치의 프로그램 속도는 메모리 장치의 제반 퍼포먼스에 결정적인 특성이 된다. 따라서, 프로그램 속도를 높이는 것이 메모리 장치 또는 메모리 시스템의 성능을 높이는 중요한 이슈가 되고 있다. 특히, 플래시 메모리 장치는 증가형 스텝 펄스 프로그램(Incremental Step Pulse Programming : 이하 ISPP) 방식에 따라 메모리 셀들을 프로그램한다. ISPP는 워드 라인에 점차적으로 증가하는 스텝 펄스들을 인가하는 것으로 플래시 메모리 셀을 타깃 문턱 전압 상태로 이동시킨다. 따라서, 스텝들의 수에 따라서 프로그램 속도가 결정된다. 프로그램 속도를 높이기 위해, 스텝들의 수를 감소시키면 과-프로그램(Over-program) 현상이 유발된다.
따라서, 불휘발성 메모리 시스템의 프로그램 속도를 높이고, 동시에 신뢰도의 저하를 차단할 수 있는 기술이 절실히 요구되고 있는 실정이다.
상기 목적을 달성하기 위한 본 발명의 불휘발성 메모리 시스템의 읽기 및 쓰기 방법은, (a) 제 1 데이터를 고속 모드와 일반 모드 중 어떤 속도로 프로그램할지를 결정하는 단계; (b) 고속 모드시, 멀티 비트 ECC 엔진에 의하여 생성된 에러 코드를 상기 제 1 데이터에 부가하여 제 2 데이터로 생성하는 단계; (c) 상기 제 2 데이터를 제 1 시작 전압보다 높은 제 2 시작 전압을 갖는 프로그램 전압에 따라 셀 어레이로 프로그램하는 단계; 및 (d) 프로그램된 상기 제 2 데이터를 상기 셀 어레이로부터 독출하되, 상기 멀티 비트 ECC 엔진에 의하여 에러를 검출 및 정정하여 출력하는 단계를 포함한다.
상기 목적을 달성하기 위한 본 발명의 시스템은, 고속 모드 또는 일반 모드 중 어느 하나의 프로그램 속도 모드에 따라 데이터가 프로그램되도록 플래시 메모리 장치로 요청하는 호스트; 및 상기 호스트로부터의 요청에 응답하여 제 1 시작 전압 또는 상기 제 1 시작 전압보다 높은 제 2 시작 전압을 갖는 프로그램 전압에 따라 데이터를 셀 어레이에 프로그램하는 플래시 메모리 장치를 포함하되, 상기 고속 모드시, 상기 플래시 메모리 장치는 상기 데이터로부터 멀티 비트 에러 코드를 생성하고 상기 제 2 시작 전압에 따라 상기 데이터 및 상기 에러 코드를 프로그램 한다.
상기 목적을 달성하기 위한 본 발명의 다른 특징에 따르면, 독출 동작시, 메모리 블록의 선택된 워드 라인으로는 선택 읽기 전압(Vrd)을, 비선택 워드 라인으로는 비선택 읽기 전압(Vread)을 제공하는 플래시 메모리 장치의 읽기 방법은, (a) 상기 비선택 워드 라인으로 상기 비선택 읽기 전압(Vread)보다 낮은 워드 라인 전압을 제공하고, 상기 선택된 워드 라인으로는 상기 선택 읽기 전압(Vrd)을 제공하여 데이터를 독출하는 단계; 및 (b) 상기 비선택 워드 라인으로 상기 비선택 읽기 전압(Vread)을, 상기 선택 워드 라인으로는 상기 선택 읽기 전압(Vrd)을 제공하여 상기 데이터를 재독출하는 단계를 포함한다.
상기 목적을 달성하기 위한 본 발명의 플래시 메모리 장치는, 제 1 영역 및 제 2 영역으로 구분되는 셀 어레이; 읽기 어드레스가 상기 제 1 영역의 어드레스에 대응하는지를 검출하여 플래그 신호를 생성하는 어드레스 비교기; 읽기 동작시, 상기 셀 어레이의 비선택 워드 라인들로 비선택 읽기 전압(Vread2) 또는 상기 비선택 읽기 전압보다 낮은 제 1 전압(Vread1)을, 선택 워드 라인으로 선택 읽기 전압(Vrd) 또는 상기 선택 읽기 전압보다 높은 제 2 전압(Vrd+α) 중 어느 하나를 제공하는 고전압 발생기; 상기 읽기 동작시, 상기 셀 어레이의 비트 라인들을 제 1 센싱 타임 또는 상기 제 1 센싱 타임보다 긴 제 2 센싱 타임으로 감지하는 페이지 버퍼; 상기 페이지 버퍼에 독출된 데이터의 에러를 검출 및 정정하되, 에러 비트 수가 정정 능력을 초과하는 경우 읽기 오류 신호를 생성하는 에러 정정 블록; 상기 플래그 신호 및 상기 읽기 오류 신호에 응답하여 상기 고전압 발생기 및 페이지 버 퍼를 제어부를 포함한다.
상기 목적을 달성하기 위한 본 발명의 시스템은, 제 1 영역 및 제 2 영역으로 구분되는 셀 어레이; 읽기 어드레스가 상기 제 1 영역의 어드레스에 대응하는지를 검출하여 플래그 신호를 생성하는 어드레스 비교기; 읽기 동작시, 상기 셀 어레이의 비선택 워드 라인들로 비선택 읽기 전압(Vread2) 또는 상기 비선택 읽기 전압보다 낮은 제 1 전압(Vread1)을, 선택 워드 라인으로 선택 읽기 전압(Vrd) 또는 상기 선택 읽기 전압보다 높은 제 2 전압(Vrd+α) 중 어느 하나를 제공하는 고전압 발생기; 상기 읽기 동작시, 상기 셀 어레이의 비트 라인들을 제 1 센싱 타임 또는 상기 제 1 센싱 타임보다 긴 제 2 센싱 타임으로 감지하는 페이지 버퍼; 상기 페이지 버퍼에 독출된 데이터의 에러를 검출 및 정정하되, 에러 비트 수가 정정 능력을 초과하는 경우 읽기 오류 신호를 생성하는 에러 정정 블록; 상기 플래그 신호 및 상기 읽기 오류 신호에 응답하여 상기 고전압 발생기 및 페이지 버퍼를 제어부를 포함하는 플래시 메모리 장치와 상기 플래시 메모리 장치와 데이터를 교환하는 호스트를 포함한다.
결론적으로, 상술한 구성 및 방법에 따라 프로그램 속도를 높이고 신뢰성을 증가시킬 수 있는 불휘발성 메모리 장치를 제공할 수 있다.
앞의 일반적인 설명 및 다음의 상세한 설명 모두 예시적이라는 것이 이해되어야 하며, 청구된 발명의 부가적인 설명이 제공되는 것으로 여겨져야 한다. 참조 부호들이 본 발명의 바람직한 실시 예들에 상세히 표시되어 있으며, 그것의 예들이 참조 도면들에 표시되어 있다. 가능한 어떤 경우에도, 동일한 참조 번호들이 동일한 또는 유사한 부분을 참조하기 위해서 설명 및 도면들에 사용된다. 이하에서는, 낸드형(NAND type) 플래시 메모리 장치가 본 발명의 특징 및 기능을 설명하기 위한 한 예로서 사용된다.
도 1은 본 발명에 따른 플래시 메모리 장치의 프로그램 전압을 보여주는 전압 파형도이다. 도 1을 참조하면, 프로그램 동작시 메모리 셀의 워드 라인에 인가되는 프로그램 전압은 매 프로그램 루프(Program loop)마다 스텝 전압(ΔV)만큼 증가한다. 프로그램 전압은 점차적으로 증가하다가 마지막 루프에서 최종 프로그램 전압(Vpgm_last)이 공급된다.
프로그램 속도를 높이기 위해서는 프로그램에 소요되는 루프 수를 줄여야 한다. 최종 프로그램 전압(Vpgm_last)은 선택된 메모리 셀을 프로그램하는데 필요한 최소한의 요건들을 충족시키기 위해 설정된 최소한의 값으로 결정된다. 따라서, 프로그램 루프 수를 줄이기 위해서는 프로그램 시작 전압(Vstart)의 레벨을 조정하는 것이 바람직하다. 프로그램 시작 전압(Vstart)으로 제 1 시작 전압(Vst1) 또는 제 2 시작 전압(Vst2)들 중 어느 하나를 선택한다. 제 1 시작 전압(Vst1)과 제 2 시작 전압(Vst2)은 여기서 2개의 프로그램 루프(loop) 차이를 갖는 것으로 도시되었으나, 본 발명은 이에 국한되지 않는다. 즉, 제 2 시작 전압(Vst2)은 임의의 프로그램 루프 차이를 갖는 펄스 전압들(Vpgm_1~Vpgm_x) 중 어느 하나로 결정될 수 있음은 이 분야에서 통상의 지식을 습득한 자들에게는 자명하다. 예시적으로 제 2 시작 전압(Vst2=Vpgm_2)을 프로그램 시작 전압으로 선택하는 경우, 메모리 셀은 2개의 감소된 프로그램 루프들에 의해서 프로그램된다. 따라서, 프로그램 속도는 높아진다.
도 2는 프로그램 이후에 형성되는 메모리 셀들의 문턱 전압 분포를 간략히 보여주는 도면이다. 도 2를 참조하면, 메모리 셀들이 문턱 전압은 프로그램 이전에는 소거 상태(10)에 포함된다. 데이터의 프로그램에 따라, 메모리 셀들의 문턱 전압은 소거 상태(10) 또는 프로그램 상태(20) 중 어느 하나에 속하게 된다. 프로그램 동작시, 문턱 전압이 소거 상태(10)에 머물러 있기 위해서는 메모리 셀들은 프로그램 금지(Program inhibit)된다. 프로그램 상태(20)로 문턱 전압이 이동하는 메모리 셀들은 제 1 시작 전압(Vst1) 또는 제 2 시작 전압(Vst2)에 의한 ISPP 방식의 프로그램 동작에 따라 프로그램된다. 제 2 시작 전압(Vst2)에 의해서 메모리 셀들이 프로그램되는 경우, 프로그램 속도는 높아진다. 그러나 프로그램된 메모리 셀들 중에 프로그램 속도가 타 메모리 셀들보다 높은 셀이 존재하는 경우, 문턱 전압의 분포는 상측으로 확장된다. 이러한 현상을 과-프로그램(Over-program) 현상이라 한다. 과-프로그램된 메모리 셀들의 문턱 전압은 도면에 빗금친 부분(30)으로 도시된다. 과-프로그램에 의해서 야기되는 문제는 독출 동작시에 발생한다. 독출 동작시, 비선택된 워드 라인에는 읽기 전압이 인가되고, 선택 워드 라인으로는 0V가 인가된다. 그러나, 비선택된 워드 라인에 속하는 메모리 셀들 중 과-프로그램된 메모리 셀들중에는 충분히 턴-온 되지 못하는 셀들이 존재한다. 이런 경우, 선택된 메모리 셀이 온 셀(On-cell)이라 하더라도, 오프 셀(Off-cell)로 감지될 우려가 있다. 이 러한 경우가 빈번히 발생하면, 플래시 메모리 장치의 신뢰성이 크게 훼손된다.
도 3은 본 발명의 고속 프로그램 동작을 수행하는 메모리 시스템의 일 실시예를 보여주는 블록도이다. 도 3을 참조하면, 본 발명에 따른 메모리 시스템(200)은 호스트(100)로부터의 명령어에 응답하여 전송된 데이터를 저장하거나 호스트(100)로부터 요청된 데이터를 출력하도록 구성된다. 호스트(100)는 고속 프로그램과 노말 프로그램을 지시하는 구별된 프로그램 명령을 메모리 시스템(200)에 전달한다. 메모리 시스템(200)은 호스트의 명령어를 해석하여 제 1 시작 전압(Vst1) 또는 제 2 시작 전압(Vst2)을 갖는 프로그램 펄스로 전달된 데이터를 셀 어레이(210)에 프로그램한다. 좀 더 자세히 설명하면 다음과 같다.
호스트(100)는 메모리 시스템(200)으로 데이터를 기입해야 하는 경우가 발생되면, 데이터의 중요도 또는 용도를 참조하여 프로그램 모드를 결정한다. 데이터의 신뢰도가 우선시되는 데이터의 경우, 호스트(100)는 제 1 시작 전압(Vst1)에 따라 프로그램되도록 메모리 시스템(200)으로 명령어를 입력한다. 이 경우, 호스트 인터페이스(270)는 스테이트 머신(250)으로 노말 프로그램 모드(NPGM)를 지시하는 내부 명령어를 전달한다. 반면에, 고속으로 프로그램되어도 무방한 데이터로 판정되는 경우, 호스트(100)는 제 2 시작 전압(Vst2)으로 데이터가 프로그램되도록 별도의 명령어를 제공한다. 호스트 인터페이스(270)는 전달되는 데이터를 고속 프로그램 모드로 프로그램되도록 스테이트 머신(250)에 내부 명령어(FPGM)를 전달한다.
상술한 호스트의 명령어들(NPGM, FPGM) 각각에 따라 메모리 시스템(200)은 서로 다른 프로그램 시작 전압으로 데이터를 프로그램한다. 또한, 고속 프로그램 모드 및 노말 프로그램 모드시에 각각 다른 성능의 에러 정정 능력이 활성화된다. 메모리 시스템(200)을 좀더 자세히 설명하면 다음과 같다.
셀 어레이(210)는 복수의 플래시 메모리 셀들로 이루어진다. 셀 어레이(210)는 고속 프로그램 모드 또는 저속 프로그램 모드로 프로그램되는 메모리 셀들이 처음부터 구분되지는 않는다. 즉, 동일한 셀이 명령어에 따라서 고속 프로그램 모드 또는 노말 프로그램 모드에 따라 프로그램될 수 있다. 셀 어레이(210)에 포함되는 메모리 셀들은 하나의 메모리 셀에 멀티 비트가 저장되는 멀티 비트 메모리 셀들로 구성될 수 있음은 이 분야에서 통상의 지식을 습득한 자들에게는 자명하다.
페이지 버퍼(220)는 동작 모드에 따라 기입 드라이버로서 또는 감지 증폭기로서 동작한다. 프로그램 동작시, 페이지 버퍼(220)는 데이터 버퍼(230)로부터 프로그램 데이터를 제공받는다. 페이지 버퍼(220)는 제공받은 프로그램 데이터를 비트 라인들을 통해서 셀 어레이(210)에 프로그램한다. 읽기 동작시, 페이지 버퍼(220)는 셀 어레이(210)의 선택된 메모리 셀들에 저장된 데이터를 감지 및 래치한다.
데이터 버퍼(230)는 메모리 시스템(200)으로 입력되는 데이터 또는 메모리 시스템(200)으로부터 출력되는 데이터를 일시 저장한다. 프로그램 동작시, 데이터 버퍼(230)는 프로그램 데이터와 프로그램 데이터로부터 생성된 에러 코드를 동시에 페이지 버퍼(220)로 제공한다. 독출 동작시, 데이터 버퍼(230)에 일시 저장된 독출 데이터의 에러는 에러 정정 블록(240)으로부터 제공되는 에러 코드(PAR)와 머지(Merge)됨으로써 정정된다.
에러 정정 블록(240)은 고속 모드 신호(FST)에 응답하여 프로그램되는 데이터 또는 독출되는 데이터의 에러를 검출 및 정정한다. 본 발명의 에러 정정 블록(240)은 2개의 동작 모드를 갖는다. 1-비트의 에러를 정정할 수 있는 싱글 비트 ECC 모드와 2-비트 이상의 멀티 비트 에러를 정정할 수 있는 멀티 비트 ECC 모드를 갖는다. 고속 모드 신호(FST)가 활성화되면, 에러 정정 블록(240)은 프로그램 또는 독출 동작 동안 멀티 비트 ECC 모드로 동작한다. 반면에, 고속 모드 신호(FST)가 비활성화되면, 에러 정정 블록(240)은 싱글 비트 ECC 모드로 동작한다.
스테이트 머신(250)은 호스트 인터페이스(270)로부터 제공되는 내부 명령어(iCMD)에 응답하여 프로그램 동작, 읽기 동작, 소거 동작 등의 제반 시퀀스를 제어한다. 특히 프로그램 동작시, 스테이트 머신(250)은 고속 모드 신호(FST)에 응답하여 고전압 발생기(260) 및 페이지 버퍼(220)를 제어한다. 프로그램 동작시 고속 모드 신호(FST)가 활성화되면, 스테이트 머신(250)은 제 2 시작 전압(Vst2)을 시작으로 하는 ISPP 프로그램 전압을 생성하도록 고전압 발생기(260)를 제어한다. 그리고 스테이트 머신(250)은 상술한 프로그램 전압에 동기되어 프로그램 데이터가 메모리 셀에 기입되도록 페이지 버퍼(220)를 제어한다. 읽기 동작시, 스테이트 머신(250)은 메모리 셀들의 워드 라인 바이어스 및 비트 라인의 프리차지, 감지 동작을 수행하도록 고전압 발생기(260) 및 페이지 버퍼(220)를 제어한다.
고전압 발생기(260)는 상술한 스테이트 머신(240)의 제어에 응답하여 셀 어레이(210)로 동작 모드에 대응하는 고전압들을 제공한다. 고속 모드 신호(FST)가 활성화되는 고속 프로그램 동작시, 고전압 발생기(260)는 제 2 시작 전압(Vst2)을 갖는 ISPP 프로그램 전압을 생성한다. 그러나, 고속 모드 신호(FST)가 비활성화되는 노말 프로그램 동작시, 고전압 발생기(260)는 제 1 시작 전압(Vst1)을 갖는 ISPP 프로그램 전압을 생성하여 셀 어레이(210)의 워드 라인으로 제공한다.
호스트 인터페이스(270)는 호스트(100)와 메모리 시스템(200) 간의 데이터 교환을 인터페이싱한다. 특히, 호스트 인터페이스(270)는 호스트(100)로부터 각각 별개의 프로그램 모드 명령어에 응답하여 스테이트 머신(250)으로 내부 명령어들(FPGM/NPGM) 중 어느 하나를 제공한다.
이상의 구성을 통해, 본 발명의 메모리 시스템(200)은 고속 프로그램 모드시에 발생할 수 있는 과-프로그램(Over-program)으로 인한 에러를 에러 정정 블록(240)의 운용을 통해서 줄일 수 있다.
도 4는 도 3의 에러 정정 블록(240)의 예시적인 구성을 보여주는 블록도이다. 도 4를 참조하면, 에러 정정 블록(240)은 싱글 비트 ECC 엔진(241)과 멀티 비트 ECC 엔진(242)을 포함한다. 고속 모드 신호(FST)의 활성화 여부에 따라 멀티 비트 ECC 엔진(242)과 싱글-비트 ECC 엔진(241) 중 어느 하나가 선택된다.
프로그램 동작 모드시, 에러 정정 블록(240)의 동작은 다음과 같다. 고속 모드 신호(FST)가 비활성화되면 선택 회로(244)는 호스트 인터페이스(270)로부터 전달되는 프로그램 데이터(DATA_IF)를 싱글 비트 ECC 엔진(241)으로 전달한다. 싱글 비트 ECC 엔진(241)은 전달된 프로그램 데이터(DATA_IF)로부터 싱글 비트 에러를 검출 및 정정할 수 있는 페리티 코드(Parity_secc)를 생성한다. 생성된 페리티 코드(Parity_secc)는 멀티플렉서(243)로 전달되며, 멀티플렉서(243)는 데이터 버 퍼(230)로 페리티 코드(Parity_secc)를 전달한다. 그러나, 고속 모드 신호(FST)가 활성화되면, 선택 회로(244)는 호스트 인터페이스(270)로부터 전달되는 프로그램 데이터(DATA_IF)를 멀티 비트 ECC 엔진(242)으로 전달한다. 멀티 비트 ECC 엔진(242)은 전달된 프로그램 데이터(DATA_IF)로부터 멀티 비트 에러를 검출 및 정정할 수 있는 페리티 코드(Parity_mecc)를 생성한다. 멀티 비트 ECC 엔진(242)에서 생성된 페리티 코드(Parity_mecc)는 멀티플렉서(243)로 전달되며, 멀티플렉서(243)는 데이터 버퍼(230)로 페리티 코드(Parity_mecc)를 전달한다. 프로그램되는 데이터와 페리티 코드(또는 에러 코드)는 이후에 셀 어레이(210)에 고속 모드로 프로그램될 것이다.
읽기 모드시, 에러 정정 블록(240)의 동작은 다음과 같다. 고속 모드 신호(FST)가 비활성화되면 선택 회로(245)는 페이지 버퍼(220)로부터 전달되는 독출 데이터(DATA_CORE)를 싱글 비트 ECC 엔진(241)으로 전달한다. 싱글 비트 ECC 엔진(241)은 전달된 독출 데이터(DATA_CORE)로부터 에러를 검출 및 정정할 수 있는 페리티 코드(Parity_secc)를 생성한다. 생성된 페리티 코드(Parity_secc)는 멀티플렉서(243)로 전달되며, 멀티플렉서(243)는 데이터 버퍼(230)로 페리티 코드를 전달한다. 그러나 읽기 모드시, 고속 모드 신호(FST)가 활성화되면, 선택 회로(245)는 페이지 버퍼(220)로부터 전달되는 독출 데이터(DATA_CORE)를 멀티 비트 ECC 엔진(242)으로 전달한다. 멀티 비트 ECC 엔진(242)은 전달된 독출 데이터(DATA_CORE)로부터 에러를 검출한다. 독출 데이터(DATA_CORE)에 에러가 존재하는 경우, 에러를 정정할 수 있는 페리티 코드(Parity_mecc)를 생성한다. 멀티 비트 ECC 엔진(242)에 서 생성된 페리티 코드(Parity_mecc)는 멀티플렉서(243)로 전달되며, 멀티플렉서(243)는 데이터 버퍼(230)로 페리티 코드(Parity_mecc)를 전달한다. 데이터 버퍼(230)의 독출 데이터와 페리티 코드가 머지(Merge) 됨으로써 에러는 정정된다.
이상에서 설명된 본 발명의 에러 정정 블록(240)에 따르면, 고속 모드 신호(FST)의 활성화 여부에 따라 싱글 비트 ECC 엔진(241) 또는 멀티 비트 ECC 엔진(242)이 선택된다. 즉, 고속 모드에 대응하는 명령어(FPGM)가 입력되면, 멀티 비트 ECC 엔진(242)이 선택된다. 노말 모드에 대응하는 명령어(NPGM)가 입력되면, 에러 정정 블록(240)의 싱글 비트 ECC 엔진(241)이 선택된다. 따라서, 고속 프로그램에 의해서 유발될 수 있는 과-프로그램에 따른 에러를 에러 정정 연산을 통해서 충분히 차단할 수 있다.
도 5는 도 3의 시스템에서 이루어지는 메모리 시스템의 프로그램 동작을 보여주는 순서도이다. 도 5를 참조하면, 호스트(100)의 명령에 의해서 고속 프로그램 또는 노말 프로그램 모드가 선택된다. 호스트(100)의 명령에 의해 프로그램 모드가 선택되기 위해서는, 호스트(100)에 의해서 고속 또는 노말 프로그램 모드의 여부가 결정되어야 한다. 이러한 결정은 일반적으로 호스트(100)를 구동하는 운영체제(Operating System)나 응용 프로그램(Application program)과 같은 소프트웨어(Software)에 의해서 수행될 것이다.
전원이 제공되면, 호스트(100) 및 메모리 시스템(200)의 제반 초기화 동작들이 이루어지는 시스템 부팅 단계가 수행된다(S10). 부팅이 완료되면, 호스트(100)는 내부의 제반 동작들 중 메모리 시스템(200)으로 데이터를 기입해야 하는 케이 스(Case)의 발생을 검출한다(S20). 메모리 시스템(200)으로의 쓰기 동작이 검출되면(S30), 호스트(100)는 프로그램 모드를 결정한다(S40). 그러나, 메모리 시스템(200)으로의 쓰기 모드가 검출되지 않으면, 호스트(100)는 지속적인 검출을 위해 단계(S20)으로 절차를 이동한다. 메모리 시스템(200)으로의 쓰기 동작 요청이 발생하는 경우, 호스트(100)는 프로그램 모드를 결정한다. 메모리 시스템(200)으로 프로그램되는 데이터가 고속으로 프로그램되어야할 데이터로 판정되면(Yes), 호스트(100)는 메모리 시스템(200)으로 고속 프로그램 명령어(Fast program command)를 제공한다(S50). 고속 프로그램 명령어(Fast write command)를 제공받은 메모리 시스템(200)은 멀티 비트 ECC 엔진(242)을 활성화한다. 멀티 비트 ECC 엔진(242)은 명령어와 함께 제공되는 프로그램 데이터로부터 페리티 코드(Parity_mecc)를 생성한다. 생성된 페리티 코드(Parity_mecc)와 프로그램 데이터는 제 2 시작 전압(Vst2)을 갖는 프로그램 전압에 의해서 프로그램된다(S60). 반면에, 프로그램되는 데이터를 저속으로 프로그램해야 하는 것으로 판단되면, 호스트(100)는 메모리 시스템(200)에 노말 프로그램 명령어(Normal program command)를 제공한다(S70). 노말 프로그램 명령어(Normal program command)를 제공받은 메모리 시스템(200)은 싱글 비트 ECC 엔진(241)을 선택한다. 싱글 비트 ECC 엔진(241)은 제공되는 프로그램 데이터로부터 페리티 코드(Parity_secc)를 생성한다. 생성된 페리티 코드(Parity_secc)와 프로그램 데이터는 제 1 시작 전압(Vst1)을 갖는 프로그램 전압에 의해서 프로그램된다(S80).
이상에서는 호스트(100)에 의한 프로그램 모드 선택과, 선택된 모드로 프로 그램되도록 명령어를 제공하는 것으로 메모리 시스템의 프로그램 시작 전압과 에러 정정 방식이 가변된다. 따라서, 도 5에 기술된 실시예에 따르면, 호스트(100)의 명령어에 의해서 메모리 시스템(200)은 고속 프로그램 모드를 수행할 수 있다.
도 6은 어드레스에 의해서 고속 영역과 노말 영역이 구분되는 메모리 시스템을 보여주는 블록도이다. 도 6을 참조하면, 본 발명에 따른 메모리 시스템(400)의 셀 어레이(410)는 노말 영역(412)과 고속 영역(413)을 포함한다. 그리고 고속 영역(413)과 노말 영역(412)을 정의하는 어드레스 정보(Address information)가 저장되는 영역(411)을 포함한다. 어드레스 정보(Address information)는, 예를 들면, 고속 영역(413)에 대응하는 행 어드레스의 범위(Range)로 정의될 수 있다. 어드레스 정보(Address information)는 메모리 시스템(400)의 부팅 동작시 어드레스 비교기(480) 및 호스트(300)에 제공된다. 어드레스 비교기(480)는 제공된 어드레스 정보를 참조하여 호스트(300)로부터 입력되는 어드레스가 고속 영역(413)에 대응하는지 또는 노말 영역(412)에 대응하는지를 검출한다. 고속 영역(413)에 대응하는 어드레스가 입력되면, 어드레스 비교기(480)는 고속 모드 신호(FST)를 생성하여 스테이트 머신(450) 및 에러 정정 블록(440)에 제공한다. 스테이트 머신(450) 및 에러 정정 블록(440)은 고속 모드 신호(FST)에 응답하여 제 2 시작 전압(Vst2)과 멀티 비트 ECC 엔진을 활성화하여 제공되는 프로그램 데이터를 고속 영역(413)에 기입한다. 메모리 시스템(400)의 동작을 좀더 자세히 설명하면 다음과 같다.
페이지 버퍼(420), 데이터 버퍼(430), 에러 정정 블록(440), 고전압 발생기(460) 등은 상술한 도 3에서 설명된 페이지 버퍼(220), 데이터 버퍼(230), 에러 정정 블록(240), 고전압 발생기(260)들과 동일한 기능을 갖는 동일한 구성들이다. 따라서, 상술한 페이지 버퍼(420), 데이터 버퍼(430), 에러 정정 블록(440), 고전압 발생기(460)들의 동작 및 기능의 설명은 생략하기로 한다.
셀 어레이(410)는 고속 영역(413) 및 노말 영역(412)으로 구분된다. 프로그램 동작시, 노말 영역(412)에 포함되는 메모리 셀들은 낮은 프로그램 시작 전압, 즉, 제 1 시작 전압(Vst1)에 따라 프로그램된다. 고속 영역(413)에 포함되는 메모리 셀들은 프로그램 속도를 높이기 위한 높은 프로그램 시작 전압, 즉, 제 2 시작 전압(Vst2)에 따라 프로그램된다. 노말 영역(412)과 고속 영역(413)의 구분은 일반적으로 행 어드레스에 의해서 정의된다. 어드레스 정보(Address information)는 읽기 신뢰도가 상대적으로 높은 노말 영역(412)에 포함되는 초기화 정보 영역(411)에 저장된다. 초기화 정보 영역(411)은 예를 들면, OTP(One Time Program) 영역, 부트 코드 영역들일 수 있다. 초기화 정보 영역(411)에 저장된 어드레스 정보는 전체 시스템(300 및 400)의 부팅 동작시에 독출되어 어드레스 비교기(480)에 제공될 것이다.
어드레스 비교기(480)에는 부팅 동작시 초기화 정보 영역(411)으로부터 독출된 어드레스 정보가 저장 및 유지된다. 어드레스 비교기(480)는 호스트 인터페이스(470)로부터 제공되는 내부 어드레스(iADD)와 어드레스 정보를 비교한다. 만일, 입력되는 내부 어드레스(iADD)가 고속 영역(413)에 포함되면, 어드레스 비교기(480)는 고속 모드 신호(FST)를 활성화한다. 활성화된 고속 모드 신호(FST)는 스테이트 머신(450) 및 에러 정정 블록(440)으로 전달된다.
스테이트 머신(450)은 호스트 인터페이스(470)로부터 제공되는 내부 명령어(iCMD)에 응답하여 프로그램 동작, 읽기 동작, 소거 동작 등의 제반 시퀀스를 제어한다. 특히 프로그램 동작시, 스테이트 머신(450)은 고속 모드 신호(FST)에 응답하여 고전압 발생기(460) 및 페이지 버퍼(420)를 제어한다. 프로그램 동작시 고속 모드 신호(FST)가 활성화되면, 스테이트 머신(450)은 제 2 시작 전압(Vst2)을 시작으로 하는 프로그램 전압을 생성하도록 고전압 발생기(460)를 제어한다. 그리고 스테이트 머신(450)은 상술한 프로그램 전압에 동기되어 프로그램 데이터가 메모리 셀에 기입되도록 페이지 버퍼(420)를 제어한다. 읽기 동작시, 스테이트 머신(450)은 메모리 셀들의 워드 라인 바이어스 및 비트 라인의 프리차지, 감지 동작을 수행하도록 고전압 발생기(460) 및 페이지 버퍼(420)를 제어한다.
호스트 인터페이스(470)는 호스트(300)와 메모리 시스템(400) 간의 데이터 교환을 인터페이싱한다. 호스트(300)는 메모리 시스템(400)으로 프로그램 데이터를 제공하거나, 메모리 시스템(400)에 저장된 데이터를 제공받는다. 메모리 시스템(400)의 고속 영역(413)으로 데이터를 프로그램하기 위하여, 호스트(300)는 어드레스(Address)를 통해서 메모리 시스템(400)을 제어할 수 있다. 따라서, 호스트(300)는 부팅 동작시, 메모리 시스템(400)의 초기화 정보 영역(411)으로부터 독출되는 어드레스 정보(Address information)를 제공받아 동작 메모리(Working memory, 예를 들면, 램)에 저장한다.
이상의 구성을 통해, 본 발명의 플래시 메모리 시스템은 고속 모드시에 발생하는 과-프로그램(Over-program)으로 인한 에러를 에러 정정 블록의 운용을 통해서 보상할 수 있다. 독출 동작시, 고속 영역(413)에 속하는 메모리 셀들이 선택되면, 멀티 비트 ECC 엔진이 선택되어 독출되는 데이터의 에러를 검출 및 정정한다.
도 7은 상술한 도 6의 시스템에서 프로그램 동작을 보여주는 순서도이다. 프로그램 동작시, 고속 모드 또는 노말 모드의 선택이 호스트(300)로부터 제공되는 어드레스에 의해서 이루어진다. 도 7을 참조하면, 호스트(300)는 메모리 시스템(400)에 저장될 데이터의 중요도를 판단하여 고속 영역(413)에 저장할지를 결정한다. 호스트(300)는 쓰기 명령어, 어드레스 및 프로그램 데이터를 메모리 시스템(400)으로 전달한다. 메모리 시스템(400)은 전달된 어드레스를 참조하여 고속 영역(413) 또는 노말 영역(412)에 프로그램 데이터를 기입한다. 프로그램 동작시 제반 동작을 상술한 도 6에 의거하여 설명하면 다음과 같다.
전원이 제공되면, 메모리 시스템(400)은 부팅되고(S110), 고속 영역(413)의 어드레스 범위를 정의하는 어드레스 정보(Address information)가 독출된다. 독출된 어드레스 정보는 어드레스 비교기(480) 및 호스트(300)의 동작 메모리(Working memory)로 복사된다(S120). 어드레스 비교기(480)는 전달되는 어드레스(iADD)가 고속 영역(413)에 대응하는지를 검출한다(S130). 만일 어드레스(iADD)가 고속 영역(413)에 대응하면, 어드레스 비교기(480)는 고속 모드 신호(FST)를 출력한다. 이때, 스테이트 머신(450)은 고속 모드 신호(FST)에 응답하여 고속 프로그램 동작을 실행할지 또는 노말 프로그램 동작을 실행할지를 결정한다(S140). 고속 모드 신호(FST)가 활성화되면, 멀티 비트 ECC 엔진(242, 도 4 참조)이 선택되고, 고전압 발생기(460)는 제 2 시작 전압(Vst2)을 갖는 프로그램 전압을 생성한다. 멀티 비트 ECC 엔진 및 제 2 시작 전압(Vst2)에 따라 제공된 프로그램 데이터는 고속 영역(413)에 프로그램된다(S150). 그러나 고속 모드 신호(FST)가 비활성화되면, 싱글 비트 ECC 엔진(241, 도 4 참조)이 선택되고, 고전압 발생기(460)는 제 1 시작 전압(Vst1)을 갖는 프로그램 전압을 생성한다. 그리고 입력되는 프로그램 데이터는 노말 영역(412)에 프로그램된다(S160).
이상에서는 호스트(300)로부터 제공되는 어드레스(Address)에 의해서 프로그램 데이터의 프로그램 모드가 선택되는 실시예가 설명되었다. 별도의 명령어 및 별도의 명령어를 인식하여 고속 모드의 프로그램을 수행하기 위한 스테이트 머신 없이 어드레스의 선택만으로 고속 모드 또는 노말 모드의 프로그램 동작이 가능하다.
도 8은 본 발명의 고속 영역 또는 저속 영역에 프로그램된 데이터를 독출하기 위한 메모리 시스템(500)의 구성을 보여주는 블록도이다. 도 8을 참조하면, 본 발명에 따른 메모리 시스템(500)은 호스트(미도시됨)로부터의 읽기 요청에 응답하여 셀 어레이(510)에 저장된 데이터를 독출한다. 특히, 본 발명의 메모리 시스템(500)은 읽기 동작시 에러 정정 블록(540)의 에러 정정 능력을 초과하는 에러 비트가 발생하더라도 독출된 데이터의 에러를 정정할 수 있다.
셀 어레이(510), 페이지 버퍼(520), 데이터 버퍼(530), 어드레스 비교기(580), 호스트 인터페이스(570) 등은 도 6에서 설명된 구성들과 동일한 기능을 갖는다. 그러나, 에러 정정 능력을 높이기 위해 본 발명의 메모리 시스템(500)은 재독출 제어기(590)를 더 포함한다.
외부 또는 호스트(미도시됨)로부터 고속 영역(513)에 저장된 데이터에 대한 독출 요청이 제공되면, 메모리 시스템(500)은 멀티 비트 ECC 엔진(242, 도 4 참조)을 활성화한다. 그리고 입력된 어드레스에 대응하는 고속 영역(513)에 저장된 데이터를 독출한다. 독출 동작에 의해서 감지된 독출 데이터는 페이지 버퍼(520)에 래치된다. 독출 데이터는 페이지 버퍼(520)로부터 에러 정정 블록(540)으로 전송되고, 에러 정정 블록(540)은 전달된 독출 데이터에 포함되는 에러를 검출한다. 만일 멀티 비트 ECC 엔진에 의해서 검출된 에러의 비트 수가 멀티 비트 ECC 엔진이 정정할 수 있는 비트 수를 초과할 때, 에러 정정 블록(540)은 정정 오류 신호(ECC_fail)를 재독출 제어기(590)로 전송한다.
재독출 제어기(590)는 정정 오류 신호(ECC_fail)에 응답하여 스테이트 머신(550)이 동일한 페이지에 대해서 다시 읽기를 시도하도록 재독출 신호(RRStep_n)를 전달한다. 스테이트 머신(550)은 최초 재독출 신호(RRStep_1)에 응답하여 비트 라인 감지 시간을 증가시켜 읽기 오류가 발생한 페이지를 재독출한다. 재독출 된 페이지 데이터에 포함되는 에러의 비트 수가 정정 능력을 초과하면, 에러 정정 블록(540)은 다시 정정 오류 신호(ECC_fail)를 생성하고 재독출 제어기(590)는 제 2 재독출 신호(RRStep_2)를 생성한다. 제 2 재독출 신호(RRStep_2)에 응답하여, 스테이트 머신(550)은 과-프로그램된 셀들의 문턱 전압의 증가분을 보상할 수 있는 읽기 전압(Vread)을 생성하도록 고전압 발생기(560)를 제어한다. 증가된 읽기 전압(Vread)에 따라 독출된 데이터에 포함되는 에러 비트 수가 정정 능력 이내이면, 에러 정정 블록(540)은 정정 오류 신호(ECC_fail)를 생성하지 않고 에러를 정정하기 위한 연산을 수행한다.
이상에서 설명된 기능들에 따라, 본 발명의 메모리 시스템(500)은 고속 영역의 데이터를 독출하는 경우, 에러 정정 능력을 초과하는 에러 비트 수가 발생하더라도 감지 시간 및 읽기 전압(Vread)을 다변화하여 재독출을 시도할 수 있다.
도 9는 상술한 도 8의 메모리 시스템(500)에서 수행되는 재독출 동작을 설명하는 순서도이다. 도 9를 참조하면, 메모리 시스템(500)의 내부에서 수행되는 재독출 동작은 증가된 센싱 타임에 따라, 그리고 더 높아진 읽기 전압(Vread)에 따라 각각 수행된다.
독출 동작이 시작되면, 스테이트 머신(550)은 선택된 페이지 데이터를 감지 및 증폭하여 에러 정정 블록(540)으로 제공하도록 페이지 버퍼(520) 및 고전압 발생기(560)를 제어한다(S210). 독출된 페이지 데이터를 제공받은 에러 정정 블록(540)은 페이지 데이터에 포함되는 에러를 검출한다(S215). 그리고 에러 정정 블록(540)은 검출된 에러 비트의 수가 정정 가능한지를 판단한다(S220). 검출된 에러 비트의 수가 멀티 비트 ECC 엔진에 의해서 정정할 수 있는 경우, 에러 정정 블록(540)은 검출된 에러를 정정할 수 있는 에러 코드를 생성하는 에러 정정 연산을 수행한다(S260). 그러나, 검출된 에러 비트의 수가 멀티 비트 ECC 엔진에 의해서 정정할 수 있는 비트 수를 초과하는 경우, 에러 정정 블록(540)은 정정 오류 신호(ECC_fail)를 출력하고, 절차는 재독출 단계(S225)로 이동된다. 최초 정정 오류 신호(ECC_fail)의 발생시, 재독출 제어기(590)는 재독출 신호(RRStep_1)를 스테이트 머신(550)으로 출력한다. 스테이트 머신(550)은 재독출 신호(RRStep_1)에 응답하여 증가된 센싱 타임에 따라 재독출 동작을 실행한다(S225). 재독출된 페이지 데 이터는 에러 정정 블록(540)에 전달되며, 페이지 데이터에 포함되는 에러가 검출된다(S230). 에러 정정 블록(540)은 검출된 에러의 비트 수가 정정 가능한지를 판단한다(S235). 증가된 센싱 타임에 따라 재독출된 페이지 데이터의 에러가 정정 가능한 경우, 에러 정정 블록(540)은 에러 정정 연산을 수행한다(S260). 그러나, 여전히 에러 비트의 수가 에러 정정 블록(540)의 성능을 초과하는 경우, 에러 정정 블록(540)은 정정 오류 신호(ECC_fail)를 재독출 제어기(590)에 전달한다. 재독출 제어기(590)는 2번째의 정정 오류 상황에서 재독출 신호(RRStep_2)를 스테이트 머신(550)에 제공한다. 스테이트 머신(550)은 재독출 신호(RRStep_2)에 응답하여 증가된 읽기 전압(Vread)에 따라 읽기 동작을 재시도하도록 고전압 발생기(560) 및 페이지 버퍼(520)를 제어한다(S240). 페이지 버퍼(520)에 래치된 2차 재독출된 데이터는 에러 정정 블록(540)에 전달된다. 에러 정정 블록(540)은 전달된 독출 데이터로부터 에러를 검출한다(S245). 에러 정정 블록(540)은 검출된 에러가 정정 가능한지를 판단한다(S250). 만일 에러 비트의 수가 정정 가능한 것으로 판별되면, 절차는 에러 정정 블록(540)이 수행하는 에러 정정 연산 단계로 이동한다(S260). 그러나 에러 비트의 수가 에러 정정 능력을 초과하는 경우, 에러 정정 블록(540)은 읽기 실패(Read fail)로 판정하고 메모리 시스템(500)은 읽기 실패(Read fail) 메시지를 생성한다(S255).
이상의 독출 방법에 따라, 고성능의 에러 정정 블록(540)의 에러 정정 연산과 센싱 타임 및 읽기 전압의 증가를 병행하여 높은 프로그램 시작 전압으로 프로그램된 데이터를 독출할 수 있다. 즉, 높은 프로그램 시작 전압에 따라 프로그램된 메모리 셀에 발생하는 과-프로그램(Over-program)의 영향을 보상할 수 있다.
도 10은 상술한 어드레스 정보가 저장되는 셀 영역 또는 OTP 영역과 같이 읽기 동작 위주의 액세스가 빈번한 셀 영역의 문턱 전압 분포를 간략히 보여주는 도면이다. 도 10을 참조하면, 부트 코드나 OTP 데이터와 같은 초기화 데이터가 프로그램된 읽기 전용 영역은 최초 프로그램된 이후로, 메모리 시스템의 부팅시에 반복적으로 읽혀진다. 그러나, 최초 1회의 프로그램 동작 이후 읽기 전용 영역은 더이상 프로그램되지 않는다. 따라서, 반복되는 읽기 동작에 따라 읽기 전용 영역에 속하는 메모리 셀들은 반복적인 비선택 읽기 전압(Vread)에 노출된다.
일반적으로 비선택 읽기 전압(Vread)은 과-프로그램으로 인하여 문턱 전압 상태(620)가 확장되는 분포(625)를 고려해야 한다. 즉, 쓰고 지우는 횟수에 증가하여 비례적으로 늘어나는 과-프로그램의 영향을 차단하기 위하여 비선택 읽기 전압(Vread)은 적정 수준의 마진을 갖도록 정해진다. 즉, 비선택 읽기 전압은 레벨 (Vread2)로 정해진다. 그러나 상술한 읽기 전용 블록의 경우, 읽기 동작의 반복에 따라 읽기 전압(Vread2)의 반복적 인가된다. 따라서, 메모리 셀들의 문턱 전압은 소프트 프로그램(Soft program)된다. 즉, 읽기 동작시에 발생하는 에러에는 비선택 워드 라인들로 반복적으로 공급되는 읽기 전압(Vread2)에 의해서 소거 상태(610)에 대응하는 문턱 전압을 갖는 메모리 셀들이 약하게 프로그램되는 현상이 발생한다. 이러한 현상을 일반적으로 소프트 프로그램(Soft program)이라 한다. 소프트 프로그램에 의하여 소거 상태(610)를 유지해야 할 메모리 셀들 중 프로그램 특성에 따라 문턱 전압이 소폭 상승하는 메모리 셀들(615)이 존재한다. 이들 메모리 셀 들(615) 중에는 그 문턱 전압이 0V 이상으로 프로그램되는 셀들이 존재할 수 있다. 이 경우, 소프트 프로그램된 메모리 셀들의 워드 라인에 0V가 인가되어 독출되는 경우, 에러 비트가 발생한다.
본 발명은 읽기 전용 영역의 데이터를 독출할 때, 상술한 소프트 프로그램을 최소화하여, 에러 발생을 줄일 수 있는 읽기 방법을 제공할 수 있다. 즉, 읽기 전용 블록의 데이터를 독출하는 경우, 비선택되는 워드 라인들에 제공되는 전압(이하 비선택 읽기 전압)을 상대적으로 낮은 비선택 읽기 전압(Vread1)으로 제공한다. 그리고 읽기 동작 결과, 에러가 발생되면, 동일한 워드 라인 전압 조건하에서 비트 라인 감지 시간을 증가하여 재독출 동작을 실행할 수 있다. 이러한 읽기 방법에 따르면, 읽기 전용 블록에 포함되는 메모리 셀들의 전압 스트레스를 최소화할 수 있다. 따라서, 읽기 전용 블록의 읽기 횟수를 획기적으로 증가시킬 수 있다.
도 11은 상술한 도 10의 비선택 읽기 전압들(Vread1, Vread2)에 의한 읽기 전용 블록의 읽기 방법을 간략히 보여주는 도면이다. 도 11을 참조하면, 선택된 블록에 대한 최초 읽기 동작시, 워드 라인들에는 워드 라인 전압들(630)이 제공된다. 선택된 블록의 선택 워드 라인(WL<x>)에는 선택 읽기 전압(Vrd)이 제공되고, 비선택 워드 라인들에는 비선택 읽기 전압(Vread1)이 제공된다. 비선택 읽기 전압(Vread1)은 일반적인 워드 라인들에 제공되는 비선택 읽기 전압(Vread, 예를 들면 약 4.5V)보다 낮은 전압이다. 만일 워드 라인 전압들(630)에 의해서 읽혀진 데이터에 에러가 존재하는 경우, 상술한 조건하에 비트 라인 센싱 타임을 증가시켜 읽기를 재시도할 수 있다. 재시도된 읽기 동작 결과 에러가 존재하면, 비선택 워드 라인들에 제공되는 전압을 비선택 읽기 전압(Vread2)으로 상향 조정하여 읽기 동작을 재시도한다. 재시도되는 읽기 동작시 선택된 블록의 워드 라인들에 인가되는 전압은 워드 라인 전압들(640)과 같다. 워드 라인 전압들(640)에 의해서 읽혀진 데이터에 에러가 존재하면, 워드 라인 전압들(650)에 따라 읽기 동작을 재시도한다. 워드 라인 전압들(650)에는 선택 워드 라인에 인가되는 선택 읽기 전압을 상향 조정한 값이 제공된다. 즉, 선택 읽기 전압이 (Vrd + α)(단, α>0)로 제공된다. 또한, 워드 라인 전압들(630, 640, 650) 각각에 따라 독출된 데이터에 대해서 에러 검출 및 정정 동작이 추가될 수 있다. 에러 검출 결과, 에러의 정정이 불가능한 경우에 워드 라인 전압을 변경하여 재독출 동작을 수행할 수 있다. 그리고 비트 라인 센싱 타임을 증가하여 재독출하는 동작은 각각의 경우들 사이에 추가될 수 있다.
도 12는 상술한 도 11에서 도시된 방식으로 읽기 전용 블록에 대한 독출 동작을 수행하기 위한 본 메모리 시스템을 보여주는 블록도이다. 도 12를 참조하면, 본 발명의 스테이트 머신(650)은 읽기 전용 블록에 대한 독출 동작시 읽기 오류가 발생하면 선택된 블록의 워드 라인 전압들을 가변하여 반복적으로 재독출 동작을 수행한다. 페이지 버퍼(620), 데이터 버퍼(630), 에러 정정 블록(640), 재독출 제어기(690), 호스트 인터페이스(570) 등은 도 8에서 설명된 구성들과 동일한 기능을 갖는다. 그러나, 어드레스 비교기(680)에는 시스템 부팅시에 읽기 전용 블록 영역의 어드레스 정보(611)가 저장된다.
셀 어레이(610)는 읽기 전용 블록 영역(612)과 프로그램 및 소거되는 노말 영역(613)을 포함한다. 읽기 전용 블록 영역(612)에는 읽기 전용 블록 영역(612)의 어드레스 정보(ROB range information)가 프로그램되어 있다. 읽기 전용 블록 영역(612)은 일반적으로 메모리 시스템(600)의 부트 코드(Boot code), OTP 데이터, OS code, Application code 등이 기입되어 있다. 이들 읽기 전용 블록 영역(612)의 데이터는 예외적인 경우가 아니라면, 독출 동작에 의해서 액세스 된다. 따라서, 높은 비선택 읽기 전압(Vread)이 지속적으로 제공되면, 메모리 셀들의 문턱 전압이 높아져 읽기 횟수의 제한이 있을 수밖에 없다.
읽기 동작시 어드레스 비교기(680)는 입력되는 어드레스(iADD)가 읽기 전용 블록 영역(612)에 포함되는지를 검출한다. 만일 입력 어드레스(iADD)가 읽기 전용 블록 영역(612)에 포함되면, 어드레스 비교기(680)는 플래그 신호(ROB)를 활성화하여 스테이트 머신(650)으로 제공한다. 스테이트 머신(650)은 최초 읽기 동작에서 낮은 비선택 읽기 전압(Vread1)에 따라 페이지 데이터를 독출하도록 고전압 발생기(660) 및 페이지 버퍼(620)를 제어한다. 이때 독출된 데이터는 페이지 버퍼(620)를 거쳐 에러 정정 블록(640)에 전달되며, 에러 정정 블록(640)은 에러 존재 여부를 검출한다. 여기서 에러 정정 블록(640)은 존재하는 에러를 검출하는 에러 검출 기능만을 수행할 수도 있고, 검출된 에러를 정정하는 기능을 수행할 수도 있다. 에러 정정 블록(640)이 에러의 검출만을 수행하는 경우와 에러의 검출 및 정정이 모두 수행되는 경우 각각에 대해서는 이후에 설명하기로 한다. 에러 정정 블록(640)은 에러가 존재하거나 정정할 수 없는 에러가 존재하는 것을 의미하는 정정 오류 신호(ECC_fail)를 재독출 제어부(690)로 제공한다. 재독출 제어부(690)는 정정 오류 신호(ECC_fail)를 참조하여 제 1 재독출 신호(RRStep_1)를 스테이트 머신(650) 으로 출력한다. 제 1 재독출 신호(RRStep_1)에 응답하여, 스테이트 머신(650)은 센싱 타임을 증가하여 재독출 동작을 수행하도록 고전압 발생기(660) 및 페이지 버퍼(620)를 제어한다. 그리고 다시 정정 오류 신호(ECC_fail)가 발생하면, 재독출 제어부(690)는 제 2 재독출 신호(RRStep_2)를 전달한다. 제 2 재독출 신호(RRStep_1)에 응답하여 스테이트 머신(650)은 증가된 비선택 읽기 전압(Vread2)을 적용하여 동일 페이지를 독출하도록 고전압 발생기(660) 및 페이지 버퍼(620)를 제어한다. 재독출된 데이터로부터 정정 오류 신호(ECC_fail)가 검출되면, 재독출 제어부(690)는 제 3 재독출 신호(RRStep_3)를 전달한다. 제 3 재독출 신호(RRStep_3)에 응답하여, 스테이트 머신(650)은 증가된 비선택 읽기 전압(Vread2) 및 증가된 선택 읽기 전압(Vrd + α)을 적용하여 동일 페이지를 독출하도록 고전압 발생기(660) 및 페이지 버퍼(620)를 제어한다.
상술한 바와 같이, 최초 읽기 동작시 제공되는 낮은 비선택 읽기 전압(Vread1)에 따라, 읽기 전용 블록 영역(612)에 속하는 메모리 셀들이 읽기 전압으로부터 받는 스트레스를 최소화할 수 있다. 따라서, 읽기 전용 블록에 대한 읽기 회수의 상한을 획기적으로 높일 수 있다.
도 13은 도 12의 메모리 시스템에서 수행되는 읽기 전용 블록에 대한 독출 동작을 보여주는 순서도이다. 도 13을 참조하면, 독출 동작시 에러 정정 블록(640)에서 에러의 정정 없이 에러의 검출만을 수행하는 실시예가 설명되어 있다. 좀더 자세히 설명하면 다음과 같다.
독출 동작시, 읽기 전용 블록 영역(611)에 대응하는 어드레스가 입력되면, 읽기 전용 블록 영역에 속하는 페이지에 대한 독출 동작이 시작된다. 최초, 스테이트 머신(650)의 제어에 따라 선택된 페이지에 대한 읽기 동작이 진행된다. 이때, 선택된 블록에 있어서 선택된 워드 라인으로는 선택 읽기 전압(Vrd)이, 비선택된 워드 라인들로는 비선택 읽기 전압(Vread1)이 공급된다. 상술한 조건에서 독출된 페이지 데이터는 페이지 버퍼(620)에 의해서 감지 및 래치되고 이어서 에러 정정 블록(640)으로 전달된다(S310). 독출된 페이지 데이터를 제공받은 에러 정정 블록(640)은 페이지 데이터에 포함되는 에러를 검출한다(S315). 그리고 에러 정정 블록(640)은 독출된 데이터에 대한 에러 비트의 존재 유무를 판단한다(S320). 독출된 데이터에 에러 비트가 존재하지 않는 경우, 독출된 데이터는 외부 또는 호스트로 출력된다(S375). 그러나 독출된 데이터에 에러 비트가 포함되는 경우, 에러 정정 블록(640)은 정정 오류 신호(ECC_fail)를 출력하고, 결과적으로 재독출 단계(S325)로 절차는 이동한다. 최초 정정 오류 신호(ECC_fail)의 발생시, 재독출 제어기(690)는 제 1 재독출 신호(RRStep_1)를 스테이트 머신(650)으로 출력한다. 스테이트 머신(650)은 제 1 재독출 신호(RRStep_1)에 응답하여 증가된 센싱 타임에 따라 재독출 동작을 실행한다(S325). 재독출된 페이지 데이터는 에러 정정 블록(640)에 전달된다. 에러 정정 블록(640)은 독출된 페이지 데이터에 포함되는 에러의 존재 여부를 검출한다(S330). 증가된 센싱 타임에 따라 재독출된 페이지 데이터에 에러가 존재하지 않는 경우, 절차는 독출 데이터를 출력하기 위한 단계 (S375)로 이동한다. 그러나, 독출된 페이지 데이터에 에러가 존재하는 경우, 스테이트 머신(650)은 비선택 읽기 전압(Vread)을 조정하여 재독출하기 위한 단계(S340)으로 절차를 이동한다. 스테이트 머신(650)은 제 2 재독출 신호(RRStep_2)에 응답하여 일반적인 비선택 읽기 전압(Vread2, 약 4.5V)에 따라 재독출 동작을 실행하도록 고전압 발생기(660) 및 페이지 버퍼(620)를 제어한다(S340). 재독출된 페이지 데이터는 에러 정정 블록(640)에 전달되며, 페이지 데이터에 포함되는 에러가 검출된다(S345). 에러 정정 블록(640)은 증가된 비선택 읽기 전압(Vread2)에 의해서 독출된 데이터에 에러가 포함되었는지 판단한다(S350). 독출된 데이터에 에러가 포함되지 않는 경우, 독출된 데이터는 외부로 출력된다(S375). 그러나, 독출된 페이지 데이터에 여전히 에러 비트가 검출되는 경우, 에러 정정 블록(640)은 정정 오류 신호(ECC_fail)를 재독출 제어기(690)에 전달한다. 재독출 제어기(690)는 3번째의 읽기 오류 상황에서 제 3 재독출 신호(RRStep_3)를 스테이트 머신(650)에 제공한다. 스테이트 머신(650)은 제 3 재독출 신호(RRstep_3)에 응답하여 증가된 비선택 읽기 전압(Vread2) 및 선택 읽기 전압(Vrd + α)에 따라 읽기 동작을 재시도하도록 고전압 발생기(660) 및 페이지 버퍼(620)를 제어한다(S355). 페이지 버퍼(620)에 래치된 3차 재독출된 페이지 데이터는 에러 정정 블록(640)에 전달된다. 에러 정정 블록(640)은 전달된 독출 데이터로부터 에러를 검출한다(S360). 에러 정정 블록(640)은 독출된 데이터의 에러 포함 여부를 판단한다(S365). 만일, 독출된 데이터에 에러가 포함되지 않는 경우, 독출된 데이터는 외부로 출력된다(S375). 그러나 여전히 독출 데이터에 에러 비트가 포함되는 경우, 에러 정정 블록(640)은 또다시 정정 오류 신호(ECC_fail)를 발행하여 재독출 제어기(690)로 전달한다. 재독출 제어기(690)는 4번째 정정 오류 신호(ECC_fail)에 응답하여 제 4 재독출 신 호(RRStep_4)을 생성한다. 스테이트 머신(640)은 제 3 재독출 신호(RRStep_4)에 응답하여 읽기 실패(Read fail)에 대응하는 상태 신호(iStatus)를 생성한다(S370).
이상에서는 읽기 전용 블록으로부터 독출된 데이터에 대해서 에러 정정 없이 에러 검출만을 수행하도록 구성되는 실시예가 설명되었다. 따라서, 읽기 전용 블록에 대한 읽기 동작이 낮은 비선택 읽기 전압(Vread1)에 의하여 수행되므로, 소프트 프로그램 현상을 차단할 수 있다. 따라서, 읽기 전용 블록에 포함되는 메모리 셀들에 대한 읽기 가능 횟수를 획기적으로 증가시킬 수 있다. 여기서, 재독출 동작들의 순서는 상술한 실시예에 국한되지 않음을 밝혀둔다.
도 14는 도 12의 메모리 시스템에서 수행되는 읽기 전용 블록에 대한 독출 동작을 보여주는 순서도이다. 도 14를 참조하면, 에러 정정 블록(640)에서 독출된 데이터에 대한 에러 검출 및 정정 동작을 포함하는 실시예가 설명되어 있다. 좀더 자세히 설명하면 다음과 같다.
독출 동작시, 읽기 전용 블록 영역(611)에 대응하는 어드레스가 입력되면, 읽기 전용 블록 영역에 속하는 페이지에 대한 독출 동작이 시작된다. 최초, 스테이트 머신(650)의 제어에 따라 선택된 페이지에 대한 읽기 동작이 진행된다. 이때, 선택된 블록에 있어서 선택된 워드 라인으로는 선택 읽기 전압(Vrd)이, 비선택된 워드 라인들로는 비선택 읽기 전압(Vread1)이 공급된다. 상술한 조건에서 독출된 페이지 데이터는 페이지 버퍼(620)에 의해서 감지 및 래치되고 이어서 에러 정정 블록(640)으로 전달된다(S410). 독출된 페이지 데이터를 제공받은 에러 정정 블록(640)은 페이지 데이터에 포함되는 에러를 검출한다(S415). 그리고 에러 정정 블 록(640)은 독출된 데이터에 대한 에러 비트의 존재 유무를 판단한다(S420). 검출된 에러 비트의 수가 에러 정정 블록(640)에 의해서 정정할 수 있는 경우, 에러 정정 블록(640)은 검출된 에러를 정정하기 위한 에러 정정 연산을 수행한다(S475). 그러나, 검출된 에러 비트의 수가 에러 정정 블록(640)에 의해서 정정할 수 있는 비트 수를 초과하는 경우, 에러 정정 블록(640)은 정정 오류 신호(ECC_fail)를 출력하며, 절차는 재독출 단계(S425)로 이동한다. 최초 정정 오류 신호(ECC_fail)의 발생시, 재독출 제어기(690)는 재독출 신호(RRStep_1)를 스테이트 머신(650)으로 출력한다. 스테이트 머신(650)은 재독출 신호(RRStep_1)에 응답하여 증가된 센싱 타임에 따라 재독출 동작을 실행한다(S425). 재독출된 페이지 데이터는 에러 정정 블록(640)에 전달되며, 에러 정정 블록(640)에 의해서 페이지 데이터에 포함되는 에러가 검출된다(S430). 에러 정정 블록(640)은 검출된 에러의 비트 수가 정정 가능한지를 판단한다(S435). 증가된 센싱 타임에 따라 재독출된 페이지 데이터의 에러가 정정 가능한 경우, 에러 정정 블록(640)은 에러 정정 연산을 수행한다(S475). 그리고 에러가 제거된 독출 데이터는 출력된다(S480).
그러나, 최초의 재독출 동작에 의해서 독출된 페이지 데이터에 포함되는 에러 비트의 수가 정정 능력을 초과하는 경우, 에러 정정 블록(640)은 정정 오류 신호(ECC_fail)를 출력하고 재독출 제어기(690)는 제 2 재독출 신호(RRStep_2)를 출력한다. 스테이트 머신(650)은 제 2 재독출 신호(RRStep_2)에 응답하여 증가된 비선택 읽기 전압(Vread2)에 따라 재독출 동작을 실행한다(S440). 재독출된 페이지 데이터는 에러 정정 블록(640)에 전달되며, 페이지 데이터에 포함되는 에러가 검출 된다(S445). 에러 정정 블록(640)은 검출된 에러의 비트 수가 정정 가능한지를 판단한다(S450). 증가된 비선택 읽기 전압(Vread2)에 따라 재독출된 페이지 데이터의 에러가 정정 가능한 경우, 에러 정정 블록(640)은 에러 정정 연산을 수행한다(S475). 그러나, 여전히 에러 비트의 수가 에러 정정 블록(640)의 성능을 초과하는 경우, 에러 정정 블록(640)은 정정 오류 신호(ECC_fail)를 재독출 제어기(690)에 전달한다. 재독출 제어기(690)는 2번째의 읽기 오류 상황에서 제 3 재독출 신호(RRStep_3)를 스테이트 머신(650)에 제공한다. 스테이트 머신(650)은 제 3 재독출 신호(RRStep_3)에 응답하여 증가된 선택 읽기 전압(Vrd + α)에 따라 읽기 동작을 재시도하도록 고전압 발생기(660) 및 페이지 버퍼(620)를 제어한다(S455). 페이지 버퍼(620)에 래치된 3차 재독출된 데이터는 에러 정정 블록(640)에 전달된다. 에러 정정 블록(640)은 전달된 독출 데이터로부터 에러를 검출한다(S460). 에러 정정 블록(640)은 검출된 에러가 정정 가능한지를 판단한다(S465). 만일 에러 비트의 수가 정정 가능한 것으로 판별되면, 절차는 에러 정정 블록(640)이 수행하는 에러 정정 연산 단계로 이동한다(S475). 그러나 에러 비트의 수가 에러 정정 능력을 초과하는 경우, 에러 정정 블록(640)은 또다시 정정 오류 신호(ECC_fail)를 발행하여 재독출 제어기(690)로 전달한다. 재독출 제어기(690)는 4번째 정정 오류 신호(ECC_fail)에 응답하여 제 4 재독출 신호(RRStep_4)를 생성한다. 스테이트 머신(650)은 제 4 재독출 신호(RRStep_4)에 응답하여 읽기 실패 메시지(Read fail message)를 생성하여 상태 레지스터(미도시됨)에 기입한다.
이상의 본 발명의 읽기 방법에 따르면, 읽기 전용 블록으로부터 낮은 비선택 읽기 전압(Vread1)에 의하여 독출된 데이터에 대해서 일차적으로 에러 정정 연산을 수행하도록 절차가 진행된다. 그리고 에러의 정정이 불가능한 에러 비트의 수가 포함되는 경우에, 동일한 워드 라인 전압 조건하에 증가된 센싱 타임으로 재독출 동작을 수행한다. 이후, 에러 정정이 불가능한 경우, 비선택 읽기 전압(Vread2) 및 선택 읽기 전압(Vrd + α)으로 각각 재독출되도록 설정된다. 비선택 읽기 전압(Vread2) 및 선택 읽기 전압(Vrd + α)으로 독출된 각각의 경우에도 에러 정정 단계가 포함된다. 따라서, 읽기 전용 블록에 대한 읽기 동작이 낮은 비선택 읽기 전압(Vread1)에 의하여 일차적으로 수행되므로, 소프트 프로그램 현상을 차단할 수 있다. 결과적으로 읽기 전용 블록에 포함되는 메모리 셀들에 대한 읽기 가능 횟수를 획기적으로 증가시킬 수 있다. 여기서, 재독출 동작들의 순서는 상술한 실시예에 국한되지 않음을 밝혀둔다.
도 15는 본 발명에 따른 플래시 메모리 시스템(710)을 장착하는 정보 처리 시스템(700)을 간략히 보여주는 블록도이다. 도 15를 참조하면, 모바일 기기나 데스크 톱 컴퓨터와 같은 정보 처리 시스템에 본 발명의 플래시 메모리 시스템(710)이 장착된다. 본 발명에 따른 정보 처리 시스템(700)은 플래시 메모리 시스템(710)과 각각 시스템 버스(770)에 전기적으로 연결된 모뎀(720), 디스플레이(730), 중앙처리장치(740), 램(750), 입출력 장치(760)를 포함한다. 플래시 메모리 시스템(710)은 앞서 언급된 메모리 시스템 또는 플래시 메모리 시스템과 실질적으로 동일하게 구성될 것이다. 플래시 메모리 시스템(710)에는 입출력 장치(760)를 통해서 제공되거나 또는, 중앙처리장치(740)에 의해서 처리된 데이터가 저장된다. 여기서, 상술한 플래시 메모리 시스템(710)이 반도체 디스크 장치(SSD)로 구성될 수 있으며, 이 경우 정보 처리 시스템(700)은 대용량의 데이터를 플래시 메모리 시스템(710)에 고속으로 저장할 수 있다. 그리고 정보 처리 시스템(700)은 고속으로 프로그램된 플래시 메모리 시스템(710)으로부터 고신뢰도를 갖는 데이터를 제공받을 수 있다. 도시되지 않았지만, 본 발명에 따른 정보 처리 시스템(700)에는 응용 칩셋(Application Chipset), 카메라 이미지 프로세서(Camera Image Processor:CIS), 유저 인터페이스 등이 더 제공될 수 있음은 이 분야의 통상적인 지식을 습득한 자들에게 자명하다.
또한, 본 발명에 따른 플래시 메모리 장치 또는 메모리 시스템은 다양한 형태들의 패키지로 실장 될 수 있다. 예를 들면, 본 발명에 따른 플래시 메모리 장치 또는 메모리 시스템은 PoP(Package on Package), Ball grid arrays(BGAs), Chip scale packages(CSPs), Plastic Leaded Chip Carrier(PLCC), Plastic Dual In-Line Package(PDIP), Die in Waffle Pack, Die in Wafer Form, Chip On Board(COB), Ceramic Dual In-Line Package(CERDIP), Plastic Metric Quad Flat Pack(MQFP), Thin Quad Flatpack(TQFP), Small Outline(SOIC), Shrink Small Outline Package(SSOP), Thin Small Outline(TSOP), Thin Quad Flatpack(TQFP), System In Package(SIP), Multi Chip Package(MCP), Wafer-level Fabricated Package(WFP), Wafer-Level Processed Stack Package(WSP) 등과 같은 방식으로 패키지화되어 실장될 수 있다.
이상에서와 같이 도면과 명세서에서 최적 실시예가 개시되었다. 여기서 특정 한 용어들이 사용되었으나, 이는 단지 본 발명을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 특허청구범위에 기재된 본 발명의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.
도 1은 본 발명의 프로그램 시작 전압을 보여주는 전압 파형도;
도 2는 과-프로그램(Over-program)된 메모리 셀들의 문턱 전압 분포를 보여주는 도면;
도 3은 본 발명의 일 실시예에 따른 메모리 시스템의 구성을 간략히 보여주는 블록도;
도 4는 상술한 도 3의 에러 정정 블록의 구성을 보여주는 블록도;
도 5는 도 3의 메모리 시스템에서의 프로그램 방법을 보여주는 순서도;
도 6은 본 발명의 다른 실시예에 따른 메모리 시스템의 구성을 간략히 보여주는 블록도;
도 7은 도 6의 메모리 시스템에서의 프로그램 방법을 보여주는 순서도;
도 8은 본 발명에 따른 메모리 시스템의 또 다른 실시예를 보여주는 블록도;
도 9는 도 8의 메모리 시스템에서 수행되는 읽기 동작을 보여주는 순서도;
도 10은 읽기 전압에 의해 야기되는 전압 스트레스의 영향을 보여주는 도면;
도 11은 본 발명에 따른 메모리 셀의 읽기 방법을 보여주는 회로도;
도 12는 본 발명에 따른 읽기 전압의 스트레스를 감소시킬 수 있는 플래시 메모리 장치를 보여주는 블록도;
도 13은 도 12의 메모리 장치에서 수행되는 읽기 동작의 일 실시예를 보여주는 순서도;
도 14는 도 12의 메모리 장치에서 수행되는 읽기 동작의 다른 실시예를 보여 주는 순서도; 및
도 15는 본 발명에 따른 정보 처리 시스템의 구성을 보여주는 블록도.
*도면의 주요 부분에 대한 부호의 설명*
100, 300 : 호스트
200, 400, 500, 600 : 플래시 메모리 장치
210, 410, 510, 610 : 셀 어레이
220, 420, 520, 620 : 페이지 버퍼
230, 430, 530, 630 : 데이터 버퍼
240, 440, 540, 640 : 에러 정정 블록
241 : 싱글 비트 ECC 엔진
242 : 멀티 비트 ECC 엔진
243 : 멀티플렉서
244, 245 : 선택 회로
250, 450, 550, 650 : 스테이트 머신
260, 460, 560, 660 : 고전압 발생기
270, 470, 570, 670 : 호스트 인터페이스
480, 580, 680 : 고전압 발생기
590, 690 : 재독출 제어기
700 : 정보 처리 시스템 710 : 플래시 메모리 장치
720 : 모뎀 730 : 디스플레이
740 : 중앙처리장치 750 : 램
760 : 입출력 장치 770: 시스템 버스

Claims (47)

  1. 불휘발성 메모리 시스템의 읽기 및 쓰기 방법에 있어서:
    (a) 제 1 데이터를 고속 모드와 일반 모드 중 어떤 속도로 프로그램할지를 결정하는 단계;
    (b) 고속 모드시, 멀티 비트 ECC 엔진에 의하여 생성된 에러 코드를 상기 제 1 데이터에 부가하여 제 2 데이터로 생성하는 단계;
    (c) 상기 제 2 데이터를 제 1 시작 전압보다 높은 제 2 시작 전압을 갖는 프로그램 전압에 따라 셀 어레이로 프로그램하는 단계; 및
    (d) 프로그램된 상기 제 2 데이터를 상기 셀 어레이로부터 독출하되, 상기 멀티 비트 ECC 엔진에 의하여 에러를 검출 및 정정하여 출력하는 단계를 포함하는 읽기 및 쓰기 방법.
  2. 제 1 항에 있어서,
    일반 모드 시, 상기 에러 코드의 생성과 상기 에러의 검출 및 정정 동작은 싱글 비트 ECC 엔진에 의하여 수행되는 것을 특징으로 하는 읽기 및 쓰기 방법.
  3. 제 2 항에 있어서,
    일반 모드 시, 상기 (c) 단계에서 상기 제 2 데이터는 상기 제 1 시작 전압을 갖는 프로그램 전압에 따라 상기 셀 어레이로 프로그램되는 읽기 및 쓰기 방법.
  4. 제 1 항에 있어서,
    상기 (d) 단계에서 검출된 에러 비트의 수가 정정 능력을 초과하는 경우, 감지 시간을 증가시켜 상기 셀 어레이에 프로그램된 제 2 데이터를 독출하는 제 1 재독출 단계를 더 포함하는 읽기 및 쓰기 방법.
  5. 제 1 항에 있어서,
    상기 (d) 단계에서 검출된 에러 비트의 수가 정정 능력을 초과하는 경우, 상기 셀 어레이의 비선택 워드 라인들로 제공되는 읽기 전압(Vread)을 증가시켜 상기 제 2 데이터를 독출하는 제 2 재독출 단계를 더 포함하는 읽기 및 쓰기 방법.
  6. 제 4 항 또는 제 5 항에 있어서,
    상기 제 1 재독출 단계 및 상기 제 2 재독출 단계 각각은 동시에 실행되는 것을 특징으로 하는 읽기 및 쓰기 방법.
  7. 제 1 항에 있어서,
    상기 셀 어레이는 낸드형 플래시 메모리 셀들인 것을 특징으로 하는 읽기 및 쓰기 방법.
  8. 고속 모드 또는 일반 모드 중 어느 하나의 프로그램 속도 모드에 따라 데이 터가 프로그램되도록 플래시 메모리 장치로 요청하는 호스트; 및
    상기 호스트로부터의 요청에 응답하여 제 1 시작 전압 또는 상기 제 1 시작 전압보다 높은 제 2 시작 전압을 갖는 프로그램 전압에 따라 데이터를 셀 어레이에 프로그램하는 플래시 메모리 장치를 포함하되,
    상기 고속 모드시, 상기 플래시 메모리 장치는 상기 데이터로부터 멀티 비트 에러 코드를 생성하고 상기 제 2 시작 전압에 따라 상기 데이터 및 상기 에러 코드를 프로그램하는 것을 특징으로 하는 시스템.
  9. 제 8 항에 있어서,
    상기 고속 모드로 프로그램된 데이터의 독출 동작시, 상기 플래시 메모리 장치는 상기 멀티 비트 에러 코드를 참조하여 상기 독출된 데이터의 에러를 검출 및 정정하는 것을 특징으로 하는 시스템.
  10. 제 9 항에 있어서,
    상기 멀티 비트 에러 코드에 의해서 정정 가능한 비트 수를 초과하는 에러 비트의 검출시, 상기 플래시 메모리 장치는 데이터의 감지 시간을 증가시켜 상기 데이터를 독출하는 제 1 재독출 동작 또는 비선택 워드 라인들에 제공되는 전압을 증가시켜 상기 데이터를 독출하는 제 2 재독출 동작을 수행하는 시스템.
  11. 제 8 항에 있어서,
    상기 호스트는 상기 고속 모드 및 일반 모드 각각에 대응하는 고속 프로그램 명령어 및 일반 프로그램 명령어를 상기 플래시 메모리 장치로 제공하는 시스템.
  12. 제 11 항에 있어서,
    상기 플래시 메모리 장치는:
    메모리 셀 어레이;
    프로그램 동작시, 상기 셀 어레이의 선택된 메모리 셀들의 워드 라인으로 제 1 시작 전압과 제 2 시작 전압들 중 어느 하나를 갖는 프로그램 전압을 제공하는 고전압 발생기;
    싱글 비트 ECC 모드 및 멀티 비트 ECC 모드 중 어느 하나의 동작 모드로 프로그램 데이터의 에러 정정 코드를 생성하는 에러 정정 블록; 및
    고속 또는 일반 프로그램 명령어에 응답하여 상기 고전압 발생기 및 상기 에러 정정 블록을 제어하는 제어부를 포함하는 시스템.
  13. 제 12 항에 있어서,
    상기 에러 정정 블록은,
    상기 싱글 비트 ECC 모드 동작에 따라 상기 프로그램 데이터로부터 싱글 비트 에러 코드를 생성하는 싱글 비트 ECC 엔진; 및
    상기 멀티 비트 ECC 모드 동작에 따라 상기 프로그램 데이터로부터 멀티 비트 에러 코드를 생성하는 멀티 비트 ECC 엔진을 포함하는 시스템.
  14. 제 13 항에 있어서,
    상기 에러 정정 블록은,
    상기 제어부의 제어에 따라 상기 싱글 비트 ECC 엔진 및 상기 멀티 비트 ECC 엔진 중 어느 하나로 상기 프로그램 데이터를 선택적으로 제공하는 선택 회로; 및
    상기 싱글 비트 ECC 엔진 및 상기 멀티 비트 ECC 엔진 중 어느 하나의 출력을 선택하는 멀티플렉서를 더 포함하는 시스템.
  15. 제 13 항에 있어서,
    상기 제어부는 상기 고속 프로그램 명령어에 응답하여 상기 멀티 비트 ECC 엔진이 활성화되도록, 그리고 상기 제 2 시작 전압을 갖는 프로그램 전압을 생성하도록 상기 에러 정정 블록 및 상기 고전압 발생기를 각각 제어하는 것을 특징으로 하는 시스템.
  16. 제 12 항에 있어서,
    상기 플래시 메모리 장치는 상기 호스트와 인터페이싱하기 위한 호스트 인터페이스를 더 포함하는 시스템.
  17. 제 11 항에 있어서,
    상기 플래시 메모리 장치는,
    상기 고속 모드 및 상기 노말 모드 각각에 대응하는 속도로 프로그램되는 저장 영역들로 구분되는 셀 어레이를 포함하는 시스템.
  18. 제 17 항에 있어서,
    상기 호스트는 상기 셀 어레이의 어드레스 선택에 따라 상기 데이터의 프로그램 속도를 결정하는 것을 특징으로 하는 시스템.
  19. 제 18 항에 있어서,
    상기 플래시 메모리 장치는:
    프로그램되는 속도에 따라 노말 영역과 고속 영역으로 구분되는 셀 어레이;
    상기 어드레스가 상기 고속 영역에 대응하는지를 검출하여 속도 모드 신호를 생성하는 어드레스 비교기;
    상기 속도 모드 신호에 응답하여, 싱글 비트 ECC 모드 및 멀티 비트 ECC 모드 중 어느 하나의 동작 모드로 상기 프로그램 데이터의 에러 코드를 생성하는 에러 정정 블록;
    상기 셀 어레이의 선택된 메모리 셀들의 워드 라인으로 제 1 시작 전압과 제 2 시작 전압들 중 어느 하나를 갖는 프로그램 전압을 제공하는 고전압 발생기; 및
    상기 속도 모드 신호에 응답하여 상기 고전압 발생기 및 상기 에러 정정 블록을 제어하는 제어부를 포함하는 시스템.
  20. 제 19 항에 있어서,
    상기 셀 어레이는 상기 고속 영역의 어드레스 범위 정보(Address range information)를 저장하는 셀 영역을 더 포함하는 시스템.
  21. 제 20 항에 있어서,
    상기 어드레스 비교기는 상기 어드레스 범위 정보를 저장하는 저장 수단을 더 포함하는 시스템.
  22. 제 21 항에 있어서,
    상기 어드레스 범위 정보는, 부팅 동작시 독출되어 상기 호스트 및 상기 어드레스 비교기에 제공되는 것을 특징으로 하는 시스템.
  23. 제 19 항에 있어서,
    상기 플래시 메모리 장치는, 독출 동작시, 상기 에러 정정 블록으로부터 생성되는 읽기 실패 신호를 카운트하고, 매 읽기 실패 신호에 응답하여 상기 제어부가 데이터의 감지 시간, 비선택 워드 라인들에 제공되는 읽기 전압을 증가시켜 상기 데이터를 재독출하도록 제어하는 재독출 제어기를 더 포함하는 시스템.
  24. 제 19 항에 있어서,
    상기 플래시 메모리 장치는 상기 호스트와 인터페이싱하는 호스트 인터페이 스를 더 포함하는 시스템.
  25. 독출 동작시, 메모리 블록의 선택된 워드 라인으로는 선택 읽기 전압(Vrd)을, 비선택 워드 라인으로는 비선택 읽기 전압(Vread)을 제공하는 플래시 메모리 장치의 읽기 방법에 있어서,
    (a) 상기 비선택 워드 라인으로 상기 비선택 읽기 전압(Vread)보다 낮은 워드 라인 전압을 제공하고, 상기 선택된 워드 라인으로는 상기 선택 읽기 전압(Vrd)을 제공하여 데이터를 독출하는 단계; 및
    (b) 상기 비선택 워드 라인으로 상기 비선택 읽기 전압(Vread)을, 상기 선택 워드 라인으로는 상기 선택 읽기 전압(Vrd)을 제공하여 상기 데이터를 재독출하는 단계를 포함하는 읽기 방법.
  26. 제 25 항에 있어서,
    상기 (a) 단계 이후, 상기 독출된 데이터가 정상인지의 여부를 검출하여 상기 (b) 단계의 실행 여부를 판단하는 (a′)단계를 더 포함하는 것을 특징으로 하는 읽기 방법.
  27. 제 26 항에 있어서,
    상기 비선택 워드 라인으로 상기 비선택 읽기 전압(Vread)을, 그리고 상기 선택 워드 라인으로는 상기 선택 읽기 전압(Vrd)보다 높은 워드 라인 전압을 제공 하여 상기 데이터를 재독출하는 (c) 단계를 더 포함하는 읽기 방법.
  28. 제 27항에 있어서,
    상기 (b) 단계 이후, 상기 독출된 데이터가 정상인지의 여부를 검출하여 상기 (b) 단계의 실행 여부를 판단하는 (b′)단계를 더 포함하는 것을 특징으로 하는 읽기 방법.
  29. 제 27항에 있어서,
    상기 (b) 단계 이후, 상기 독출된 데이터가 정상인지의 여부를 검출하여 상기 (c) 단계의 실행 여부를 판단하는 (b′)단계를 더 포함하는 것을 특징으로 하는 읽기 방법.
  30. 제 29 항에 있어서,
    상기 (c) 단계 이후, 상기 독출된 데이터의 정상인지의 여부를 검출하여 출력 여부를 판단하는 (c′) 단계를 더 포함하는 것을 특징으로 하는 읽기 방법.
  31. 제 29 항에 있어서,
    상기 (a′) 단계와 상기 (b′) 단계 그리고 (c′) 단계들 중 어느 하나에 있어서, 상기 독출된 데이터가 비정상으로 판정되는 경우, 감지 시간을 증가시켜 상기 데이터를 재독출하는 (d) 단계를 더 포함하는 읽기 방법.
  32. 제 31 항에 있어서,
    상기 (d) 단계 이후, 상기 독출된 데이터의 정상인지의 여부를 검출하여 출력 여부를 판단하는 (d′) 단계를 더 포함하는 것
  33. 제 32 항에 있어서,
    상기 (a′) 단계, 상기 (b′) 단계, 상기 (c′) 단계 또는 상기 (d′) 단계는 에러 검출 동작을 포함하는 것을 특징으로 하는 읽기 방법.
  34. 제 33 항에 있어서,
    상기 (a′) 단계, 상기 (b′) 단계, 상기 (c′) 단계 또는 상기 (d′) 단계는 에러 정정 동작을 포함하는 것을 특징으로 하는 읽기 방법.
  35. 제 34 항에 있어서,
    상기 에러 정정 동작은 상기 에러 검출 동작을 통해서 검출된 에러 비트의 수가 에러 정정 가능한 경우에만 행하는 것을 특징으로 하는 읽기 방법.
  36. 제 30 항에 있어서,
    상기 검출된 에러 비트의 수가 에러 정정 능력을 초과하는 경우, 상기 (a′) 단계에서는 상기 (b) 단계를 수행하도록, 상기 (b′) 단계에서는 상기 (c) 단계를 수행하도록 결정하는 것을 특징으로 하는 읽기 방법.
  37. 제 36 항에 있어서,
    상기 검출된 에러 비트의 수가 에러 정정 능력을 초과하는 경우, 상기 (c′) 단계에서는 읽기 실패(Read fail)로 결정하는 것을 특징으로 하는 읽기 방법.
  38. 제 1 영역 및 제 2 영역으로 구분되는 셀 어레이;
    읽기 어드레스가 상기 제 1 영역의 어드레스에 대응하는지를 검출하여 플래그 신호를 생성하는 어드레스 비교기;
    읽기 동작시, 상기 셀 어레이의 비선택 워드 라인들로 비선택 읽기 전압(Vread2) 또는 상기 비선택 읽기 전압보다 낮은 제 1 전압(Vread1)을, 선택 워드 라인으로 선택 읽기 전압(Vrd) 또는 상기 선택 읽기 전압보다 높은 제 2 전압(Vrd+α) 중 어느 하나를 제공하는 고전압 발생기;
    상기 읽기 동작시, 상기 셀 어레이의 비트 라인들을 제 1 센싱 타임 또는 상기 제 1 센싱 타임보다 긴 제 2 센싱 타임으로 감지하는 페이지 버퍼;
    상기 페이지 버퍼에 독출된 데이터의 에러를 검출 및 정정하되, 에러 비트 수가 정정 능력을 초과하는 경우 읽기 오류 신호를 생성하는 에러 정정 블록;
    상기 플래그 신호 및 상기 읽기 오류 신호에 응답하여 상기 고전압 발생기 및 페이지 버퍼를 제어부를 포함하는 플래시 메모리 장치.
  39. 제 38 항에 있어서,
    상기 제 1 영역은 읽기 전용의 셀 영역(Read oriented block)인 것을 특징으로 하는 플래시 메모리 장치.
  40. 제 39 항에 있어서,
    상기 제 1 영역은 상기 제 1 영역의 어드레스 범위 정보(Address range information)를 저장하는 셀 영역을 더 포함하는 플래시 메모리 장치.
  41. 제 40 항에 있어서,
    상기 어드레스 비교기는 상기 제 1 영역의 어드레스 범위 정보를 저장하는 저장 수단을 더 포함하는 플래시 메모리 장치.
  42. 제 41 항에 있어서,
    상기 제 1 영역의 어드레스 범위 정보는, 부팅 동작시 독출되어 상기 어드레스 비교기에 저장되는 것을 특징으로 하는 플래시 메모리 장치.
  43. 제 38 항에 있어서,
    상기 제어부는, 에러 정정 블록으로부터 생성되는 읽기 오류 신호를 카운트하고, 매 읽기 오류 신호에 응답하여 상기 제어부가 데이터의 감지 시간, 상기 선택 워드 라인 및 비선택 워드 라인들에 제공되는 전압들을 가변하여 데이터를 재독 출하도록 제어하는 재독출 제어기를 더 포함하는 플래시 메모리 장치.
  44. 제 38 항에 있어서,
    상기 제어부는 상기 플래그 신호 및 상기 읽기 오류 신호에 응답하여 최초 읽기 동작시에는 상기 비선택 워드 라인들로 상기 제 1 전압(Vread1)이 인가되도록, 그리고 상기 비트 라인들을 상기 제 1 센싱 타임으로 감지하는 재독출 동작을 수행하도록 상기 고전압 발생기 및 상기 페이지 버퍼를 제어하는 플래시 메모리 장치.
  45. 제 44 항에 있어서,
    상기 최초 읽기 동작의 결과 읽기 오류 신호가 발행하면, 상기 제어부는 상기 비선택 워드 라인들로 상기 제 1 전압(Vread1)이 인가되도록, 그리고 상기 비트 라인들을 상기 제 2 센싱 타임으로 감지하는 재독출 동작을 수행하도록 상기 고전압 발생기 및 상기 페이지 버퍼를 제어하는 플래시 메모리 장치.
  46. 제 45 항에 있어서,
    상기 최초 읽기 동작의 결과 읽기 오류 신호가 발행하면, 상기 제어부는 상기 비선택 워드 라인들로 상기 제 1 전압(Vread1)이 인가되도록, 그리고 상기 비트 라인들을 상기 제 2 센싱 타임으로 감지하는 재독출 동작을 수행하도록 상기 고전압 발생기 및 상기 페이지 버퍼를 제어하는 플래시 메모리 장치.
  47. 플래시 메모리 장치; 및
    상기 플래시 메모리 장치와 데이터를 교환하는 호스트를 포함하되, 상기 플래시 메모리 장치는 청구항 38에 기재된 플래시 메모리 장치인 것을 특징으로 하는 시스템.
KR1020070082330A 2007-08-16 2007-08-16 고속 프로그램이 가능한 불휘발성 반도체 메모리 시스템 및그것의 독출 방법 KR101397549B1 (ko)

Priority Applications (5)

Application Number Priority Date Filing Date Title
KR1020070082330A KR101397549B1 (ko) 2007-08-16 2007-08-16 고속 프로그램이 가능한 불휘발성 반도체 메모리 시스템 및그것의 독출 방법
US12/190,855 US8898543B2 (en) 2007-08-16 2008-08-13 Nonvolatile memory device, system, and method providing fast program and read operations
TW097130863A TWI490872B (zh) 2007-08-16 2008-08-13 提供快速程式與讀取之非揮發性記憶體元件、系統及方法
JP2008209285A JP5250337B2 (ja) 2007-08-16 2008-08-15 高速プログラムが可能な不揮発性半導体メモリシステム及びその読み出し方法
CN2008101887924A CN101436434B (zh) 2007-08-16 2008-08-18 提供快速编程及读操作的非易失性存储设备、系统和方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020070082330A KR101397549B1 (ko) 2007-08-16 2007-08-16 고속 프로그램이 가능한 불휘발성 반도체 메모리 시스템 및그것의 독출 방법

Publications (2)

Publication Number Publication Date
KR20090017844A true KR20090017844A (ko) 2009-02-19
KR101397549B1 KR101397549B1 (ko) 2014-05-26

Family

ID=40363956

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070082330A KR101397549B1 (ko) 2007-08-16 2007-08-16 고속 프로그램이 가능한 불휘발성 반도체 메모리 시스템 및그것의 독출 방법

Country Status (5)

Country Link
US (1) US8898543B2 (ko)
JP (1) JP5250337B2 (ko)
KR (1) KR101397549B1 (ko)
CN (1) CN101436434B (ko)
TW (1) TWI490872B (ko)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101381005B1 (ko) * 2011-08-22 2014-04-04 애플 인크. 다중 감지 시간을 이용하는 메모리 디바이스 판독
KR20140048392A (ko) * 2012-10-11 2014-04-24 삼성전자주식회사 비휘발성 메모리 장치의 프로그램 방법
US8812807B2 (en) 2011-12-12 2014-08-19 Samsung Electronics Co., Ltd. Nonvolatile memory device and operating method thereof
US8837215B2 (en) 2012-01-30 2014-09-16 Samsung Electronics Co., Ltd. Operating method and data read method in nonvolatile memory device
US9136872B2 (en) 2012-01-30 2015-09-15 Samsung Electronics Co., Ltd. Memory, memory system, and error checking and correcting method for memory
KR20160022250A (ko) * 2014-08-19 2016-02-29 삼성전자주식회사 메모리 장치 및 모듈

Families Citing this family (67)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101537018B1 (ko) * 2008-10-01 2015-07-17 삼성전자주식회사 보안 메모리 인터페이스, 이를 포함하는 시스템 및 스마트카드
US7924614B2 (en) * 2009-01-19 2011-04-12 Macronix International Co., Ltd. Memory and boundary searching method thereof
US8175012B2 (en) * 2009-03-26 2012-05-08 Mediatek Inc. Decoding/encoding method for booting from a NAND flash and system thereof
US20100274933A1 (en) * 2009-04-24 2010-10-28 Mediatek Inc. Method and apparatus for reducing memory size and bandwidth
CN101964213B (zh) * 2009-07-24 2013-01-02 中芯国际集成电路制造(上海)有限公司 存储单元失效分析的测试方法
US8386885B1 (en) * 2009-08-26 2013-02-26 Cypress Semiconductor Corporation Using ECC memory to store configuration information
KR101678909B1 (ko) * 2009-09-17 2016-11-23 삼성전자주식회사 플래시 메모리 시스템 및 그것의 소거 리프레쉬 방법
KR101603099B1 (ko) * 2009-10-01 2016-03-28 삼성전자주식회사 불안정 메모리 셀 산포를 검출하는 메모리 시스템 및 상기 불안정 메모리 셀 산포 검출방법
US8261011B2 (en) * 2009-10-29 2012-09-04 Freescale Semiconductor, Inc. One-time programmable memory device and methods thereof
JP5349256B2 (ja) 2009-11-06 2013-11-20 株式会社東芝 メモリシステム
KR101636248B1 (ko) * 2009-12-10 2016-07-06 삼성전자주식회사 플래시 메모리 장치, 이를 포함하는 플래시 메모리 시스템 및 이의 프로그램 방법
US8174895B2 (en) * 2009-12-15 2012-05-08 Sandisk Technologies Inc. Programming non-volatile storage with fast bit detection and verify skip
JP5550386B2 (ja) * 2010-03-03 2014-07-16 株式会社東芝 不揮発性半導体記憶装置及びメモリシステム
KR101466555B1 (ko) * 2010-03-12 2014-12-02 엘에스아이 코포레이션 플래시 메모리들을 위한 ldpc 소거 디코딩
JP2011227976A (ja) 2010-04-22 2011-11-10 Elpida Memory Inc 不揮発性半導体メモリ装置、及びそのメモリ装置を有するメモリシステム
JP5651457B2 (ja) * 2010-12-15 2015-01-14 株式会社東芝 半導体記憶装置
TWI479495B (zh) * 2011-06-02 2015-04-01 Phison Electronics Corp 資料讀取方法、記憶體控制器及記憶體儲存裝置
CN102270506B (zh) * 2011-06-28 2016-12-28 上海华虹宏力半导体制造有限公司 一种闪存的编程/擦除方法
TWI446160B (zh) 2011-07-21 2014-07-21 Silicon Motion Inc 快閃記憶體控制器及資料讀取方法
JP2013164888A (ja) 2012-02-10 2013-08-22 Toshiba Corp 半導体記憶装置
US8982602B2 (en) * 2012-08-30 2015-03-17 Adesto Technologies Corporation Memory devices, circuits and, methods that apply different electrical conditions in access operations
JP2014086062A (ja) * 2012-10-29 2014-05-12 Sony Corp 記憶制御装置、記憶装置、情報処理システム、および、記憶制御方法
KR102123946B1 (ko) 2012-12-28 2020-06-17 삼성전자주식회사 멀티 레벨 셀 메모리 장치 및 그것의 동작방법
KR102048765B1 (ko) * 2013-01-15 2020-01-22 삼성전자주식회사 메모리 시스템의 동작 방법 및 메모리 시스템
KR102053953B1 (ko) * 2013-02-04 2019-12-11 삼성전자주식회사 불휘발성 메모리 장치를 포함하는 메모리 시스템 및 그것의 프로그램 방법
JP2014175028A (ja) * 2013-03-08 2014-09-22 Toshiba Corp 不揮発性半導体記憶装置
CN105518795B (zh) 2013-09-13 2019-08-13 东芝存储器株式会社 半导体存储装置以及存储系统
KR20150033859A (ko) 2013-09-25 2015-04-02 삼성전자주식회사 반도체 메모리 장치 및 메모리 시스템
US9135113B2 (en) * 2013-10-08 2015-09-15 Apple Inc. Recovery from programming failure in non-volatile memory
US9323614B2 (en) * 2013-11-06 2016-04-26 Wisconsin Alumni Research Foundation Dynamic error handling for on-chip memory structures
KR20150113302A (ko) * 2014-03-27 2015-10-08 에스케이하이닉스 주식회사 노이즈 검출 회로 및 이를 이용한 반도체 시스템
KR20160011939A (ko) * 2014-07-23 2016-02-02 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
KR102190241B1 (ko) * 2014-07-31 2020-12-14 삼성전자주식회사 메모리 컨트롤러의 동작 방법 및 불휘발성 메모리 시스템
KR20160058458A (ko) * 2014-11-17 2016-05-25 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
US9524790B1 (en) * 2015-08-02 2016-12-20 Avago Technologies General Ip (Singapore) Pte. Ltd. Flash memory cells wear reduction
US20170161141A1 (en) * 2015-12-02 2017-06-08 Samsung Electronics Co., Ltd. Method and apparatus for correcting data in multiple ecc blocks of raid memory
SG11201806099WA (en) * 2016-02-19 2018-08-30 Huawei Tech Co Ltd Method and apparatus for accessing flash memory device
JP6673021B2 (ja) * 2016-05-31 2020-03-25 富士通株式会社 メモリおよび情報処理装置
CN106205733B (zh) * 2016-07-12 2019-09-06 北京兆易创新科技股份有限公司 一种Multi-plane结构非易失性存储器的块修复方法和装置
CN112863581A (zh) * 2016-09-09 2021-05-28 硅存储技术公司 用于读取阵列中的闪存单元的带位线预充电电路的改进读出放大器
US10083742B2 (en) * 2016-09-26 2018-09-25 Intel Corporation Method and apparatus for programming non-volatile memory using a multi-cell storage cell group to provide error location information for retention errors
KR20180051272A (ko) * 2016-11-08 2018-05-16 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
US10389379B2 (en) * 2017-05-12 2019-08-20 Qualcomm Incorporated Error correcting code testing
CN108932175B (zh) * 2017-05-24 2022-01-11 建兴储存科技(广州)有限公司 固态储存装置的控制方法
KR102384706B1 (ko) * 2017-06-09 2022-04-08 삼성전자주식회사 반도체 메모리 장치, 이를 포함하는 메모리 시스템 및 반도체 메모리 장치의 동작 방법
US10381097B2 (en) * 2017-10-31 2019-08-13 Western Digital Technologies, Inc. Read mode tuning
CN108121509B (zh) * 2017-12-19 2020-10-16 深圳忆联信息系统有限公司 一种提高ssd读操作时raid效率的方法及ssd
KR20190075202A (ko) * 2017-12-21 2019-07-01 에스케이하이닉스 주식회사 테스트 제어 회로, 이를 이용하는 반도체 메모리 장치 및 반도체 시스템
KR102675307B1 (ko) * 2018-04-24 2024-06-17 에스케이하이닉스 주식회사 저장 장치 및 그 동작 방법
CN108717385B (zh) * 2018-05-23 2020-09-29 中国科学院微电子研究所 一种用于闪存的数据恢复方法及系统
TWI697986B (zh) * 2018-08-15 2020-07-01 旺宏電子股份有限公司 記憶體元件及其製造方法
CN109324832A (zh) * 2018-09-06 2019-02-12 深圳忆联信息系统有限公司 一种固态硬盘处于低温情况下的启动方法及其系统
CN110908825B (zh) * 2018-09-17 2024-03-01 兆易创新科技集团股份有限公司 一种数据读取方法、装置、存储设备及存储介质
TWI672702B (zh) * 2018-09-28 2019-09-21 衡宇科技股份有限公司 訓練人工智慧估測儲存裝置的感測電壓的方法
US20200127685A1 (en) * 2018-10-19 2020-04-23 Nyquist Semiconductor Limited Systems and methods for a hybrid non-volatile storage system
KR20200052150A (ko) * 2018-11-06 2020-05-14 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작방법
KR102696813B1 (ko) * 2018-12-03 2024-08-21 에스케이하이닉스 주식회사 메모리 컨트롤러 및 그 동작 방법
KR102612749B1 (ko) * 2018-12-19 2023-12-13 에스케이하이닉스 주식회사 컨트롤러, 이를 포함하는 메모리 시스템 및 메모리 시스템의 동작 방법
CN109871594B (zh) * 2019-01-28 2023-02-03 山东华芯半导体有限公司 一种NAND Flash特性模型建立方法
CN110223724A (zh) * 2019-05-10 2019-09-10 北京兆易创新科技股份有限公司 一种nand flash的读操作方法和装置
US11687407B2 (en) * 2020-08-27 2023-06-27 Micron Technologies, Inc. Shared error correction code (ECC) circuitry
US11625297B2 (en) 2020-08-28 2023-04-11 Samsung Electronics Co., Ltd. Storage device and operating method thereof
TWI755830B (zh) * 2020-08-28 2022-02-21 力晶積成電子製造股份有限公司 記憶體的讀取方法
US11907544B2 (en) 2020-08-31 2024-02-20 Micron Technology, Inc. Automated error correction with memory refresh
US12086026B2 (en) 2021-03-17 2024-09-10 Micron Technology, Inc. Multiple error correction code (ECC) engines and ECC schemes
US11763910B2 (en) * 2021-10-20 2023-09-19 Micron Technology, Inc. Multi-command memory accesses
TWI845341B (zh) * 2023-06-12 2024-06-11 慧榮科技股份有限公司 快閃記憶體控制器、快閃記憶體裝置以及相應的方法

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0616906A (ja) 1992-07-02 1994-01-25 Matsushita Electric Works Ltd 液状エポキシ樹脂成形材料
JPH06161906A (ja) * 1992-11-19 1994-06-10 Toshiba Corp 半導体メモリー回路
JPH06187248A (ja) * 1992-12-16 1994-07-08 Nec Corp データエラー検出訂正制御回路
US5909449A (en) 1997-09-08 1999-06-01 Invox Technology Multibit-per-cell non-volatile memory with error detection and correction
US8412879B2 (en) 2002-10-28 2013-04-02 Sandisk Technologies Inc. Hybrid implementation for error correction codes within a non-volatile memory system
US6944063B2 (en) * 2003-01-28 2005-09-13 Sandisk Corporation Non-volatile semiconductor memory with large erase blocks storing cycle counts
US6914823B2 (en) * 2003-07-29 2005-07-05 Sandisk Corporation Detecting over programmed memory after further programming
KR100632940B1 (ko) * 2004-05-06 2006-10-12 삼성전자주식회사 프로그램 사이클 시간을 가변시킬 수 있는 불 휘발성반도체 메모리 장치
TWI267864B (en) 2004-05-06 2006-12-01 Samsung Electronics Co Ltd Method and device for programming control information
WO2006025091A1 (ja) * 2004-08-30 2006-03-09 Renesas Technology Corp. 半導体集積回路
US7173859B2 (en) 2004-11-16 2007-02-06 Sandisk Corporation Faster programming of higher level states in multi-level cell flash memory
JP4982110B2 (ja) 2005-06-02 2012-07-25 株式会社東芝 半導体集積回路装置
KR100634457B1 (ko) * 2005-07-04 2006-10-16 삼성전자주식회사 단일의 페이지 버퍼 구조로 멀티-비트 및 단일-비트프로그램 동작을 수행하는 플래시 메모리 장치
KR100732628B1 (ko) 2005-07-28 2007-06-27 삼성전자주식회사 멀티-비트 데이터 및 싱글-비트 데이터를 저장하는 플래시메모리 장치
KR100666185B1 (ko) * 2005-07-29 2007-01-09 삼성전자주식회사 3-레벨 불휘발성 반도체 메모리 장치 및 이에 대한구동방법
KR100729359B1 (ko) * 2005-09-23 2007-06-15 삼성전자주식회사 낸드 플래시 메모리 장치 및 그것의 프로그램 방법
JP4953648B2 (ja) 2006-02-03 2012-06-13 パナソニック株式会社 不揮発性記憶装置およびメモリコントローラ
JP2007305267A (ja) 2006-05-15 2007-11-22 Toshiba Corp 半導体記憶装置
KR100733952B1 (ko) * 2006-06-12 2007-06-29 삼성전자주식회사 플래그 셀들 사이의 커플링을 최소화시킬 수 있는멀티-비트 플래시 메모리 장치 및 그것의 프로그램 방법
US7489549B2 (en) * 2006-06-22 2009-02-10 Sandisk Corporation System for non-real time reprogramming of non-volatile memory to achieve tighter distribution of threshold voltages
KR100781984B1 (ko) * 2006-11-03 2007-12-06 삼성전자주식회사 셀프 레퍼런스를 갖는 센스앰프 회로 및 그에 의한 센싱방법
US7900102B2 (en) * 2006-12-17 2011-03-01 Anobit Technologies Ltd. High-speed programming of memory devices
US7814401B2 (en) * 2006-12-21 2010-10-12 Ramot At Tel Aviv University Ltd. Soft decoding of hard and soft bits read from a flash memory
KR100859258B1 (ko) * 2007-09-10 2008-09-18 주식회사 하이닉스반도체 플래시 메모리 장치 및 동작 방법
US8085586B2 (en) * 2007-12-27 2011-12-27 Anobit Technologies Ltd. Wear level estimation in analog memory cells

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8953372B2 (en) 2008-03-18 2015-02-10 Apple Inc. Memory device readout using multiple sense times
KR101381005B1 (ko) * 2011-08-22 2014-04-04 애플 인크. 다중 감지 시간을 이용하는 메모리 디바이스 판독
US8812807B2 (en) 2011-12-12 2014-08-19 Samsung Electronics Co., Ltd. Nonvolatile memory device and operating method thereof
US8837215B2 (en) 2012-01-30 2014-09-16 Samsung Electronics Co., Ltd. Operating method and data read method in nonvolatile memory device
US9136872B2 (en) 2012-01-30 2015-09-15 Samsung Electronics Co., Ltd. Memory, memory system, and error checking and correcting method for memory
KR20140048392A (ko) * 2012-10-11 2014-04-24 삼성전자주식회사 비휘발성 메모리 장치의 프로그램 방법
KR20160022250A (ko) * 2014-08-19 2016-02-29 삼성전자주식회사 메모리 장치 및 모듈

Also Published As

Publication number Publication date
CN101436434B (zh) 2012-09-19
KR101397549B1 (ko) 2014-05-26
JP5250337B2 (ja) 2013-07-31
TW200915328A (en) 2009-04-01
US8898543B2 (en) 2014-11-25
US20090049364A1 (en) 2009-02-19
TWI490872B (zh) 2015-07-01
JP2009048758A (ja) 2009-03-05
CN101436434A (zh) 2009-05-20

Similar Documents

Publication Publication Date Title
KR101397549B1 (ko) 고속 프로그램이 가능한 불휘발성 반도체 메모리 시스템 및그것의 독출 방법
KR100926475B1 (ko) 멀티 비트 플래시 메모리 장치 및 그것의 프로그램 방법
KR100841980B1 (ko) 소거된 셀의 산포를 개선할 수 있는 플래시 메모리 장치의소거 방법
KR100837282B1 (ko) 비휘발성 메모리 장치, 그것을 포함하는 메모리 시스템,그것의 프로그램 방법 및 읽기 방법
KR100891005B1 (ko) 고온 스트레스로 인한 읽기 마진의 감소를 보상하기 위한플래시 메모리 장치 및 그것의 읽기 전압 조정 방법
KR100794311B1 (ko) 프로그램 에러를 차단할 수 있는 멀티 비트 플래시 메모리장치의 프로그램 방법
US8375169B2 (en) Memory controller
US8305811B2 (en) Flash memory device and method of reading data
US8189393B2 (en) Nonvolatile memory device with incremental step pulse programming
KR101596827B1 (ko) 불휘발성 메모리 장치, 그것의 동작 방법, 그리고 그것을 포함하는 메모리 시스템
KR101636248B1 (ko) 플래시 메모리 장치, 이를 포함하는 플래시 메모리 시스템 및 이의 프로그램 방법
TWI602187B (zh) Semiconductor memory devices and memory systems
KR101634363B1 (ko) 불휘발성 메모리 장치 및 그것의 프로그램 방법
US8050101B2 (en) Nonvolatile memory devices having erased-state verify capability and methods of operating same
KR20100043935A (ko) 불휘발성 메모리 장치 및 그것의 프로그램 방법
KR20090066732A (ko) 반도체 메모리 장치 및 그것의 읽기 페일 분석 방법
KR20100006344A (ko) 불휘발성 메모리 장치 및 메모리 시스템 및 그것의 관리방법
KR20090000463A (ko) 읽기 전압을 최적화할 수 있는 플래시 메모리 장치 및그것의 독출 전압 설정 방법
JP2009016034A (ja) フラッシュメモリシステム及びそのエラー訂正方法
JP5521087B2 (ja) メモリコントローラ
KR101642930B1 (ko) 더미 셀을 갖는 불휘발성 메모리 장치 및 그것의 프로그램 방법
CN113555052A (zh) 半导体存储装置
KR20090098530A (ko) 불휘발성 메모리 장치 및 그것의 읽기 방법
JP6267497B2 (ja) 半導体メモリの制御装置及び不安定メモリ領域の検出方法
JP2022038392A (ja) 半導体記憶装置及び半導体記憶装置におけるコマンド処理方法

Legal Events

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

Payment date: 20170427

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20180430

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20190429

Year of fee payment: 6