KR20130049332A - 메모리 시스템 및 그것의 동작 방법 - Google Patents

메모리 시스템 및 그것의 동작 방법 Download PDF

Info

Publication number
KR20130049332A
KR20130049332A KR1020110114282A KR20110114282A KR20130049332A KR 20130049332 A KR20130049332 A KR 20130049332A KR 1020110114282 A KR1020110114282 A KR 1020110114282A KR 20110114282 A KR20110114282 A KR 20110114282A KR 20130049332 A KR20130049332 A KR 20130049332A
Authority
KR
South Korea
Prior art keywords
data
error
memory device
flag information
nonvolatile memory
Prior art date
Application number
KR1020110114282A
Other languages
English (en)
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 KR1020110114282A priority Critical patent/KR20130049332A/ko
Priority to US13/449,501 priority patent/US8812933B2/en
Priority to JP2012139532A priority patent/JP6072442B2/ja
Priority to CN201210436459.7A priority patent/CN103093818B/zh
Publication of KR20130049332A publication Critical patent/KR20130049332A/ko

Links

Images

Classifications

    • 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/1012Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using codes or arrangements adapted for a specific type of error
    • G06F11/1016Error in accessing a memory location, i.e. addressing error
    • 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
    • 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
    • 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
    • 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
    • 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/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • 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/1068Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
    • 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/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • 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/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • G06F11/108Parity data distribution in semiconductor storages, e.g. in SSD
    • 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
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/26Sensing or reading circuits; Data output circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/3418Disturbance prevention or evaluation; Refreshing of disturbed memory data
    • 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
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
    • 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
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
    • H03M13/1525Determination and particular use of error location polynomials
    • 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
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
    • H03M13/1545Determination of error locations, e.g. Chien search or other methods or arrangements for the determination of the roots of the error locator polynomial

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Algebra (AREA)
  • Pure & Applied Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Computer Hardware Design (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Read Only Memory (AREA)

Abstract

여기에 개시되는 메모리 시스템은 불 휘발성 메모리 장치와; 그리고 상기 불 휘발성 메모리 장치를 제어하도록 구성된 메모리 제어기를 포함하며, 상기 메모리 제어기는 상기 불 휘발성 메모리 장치로부터 읽혀진 데이터의 에러의 위치 정보를 포함하는 에러 플래그 정보를 상기 불 휘발성 메모리 장치로 제공한다.

Description

메모리 시스템 및 그것의 동작 방법{MEMORY SYSTEM AND OPERATING METHOD THEREOF}
본 발명은 불 휘발성 메모리 장치 및 제어기를 포함하는 메모리 시스템에 관한 것이다.
반도체 메모리는, 일반적으로, 위성에서 소비자 전자 기술까지의 범위에 속하는 마이크로프로세서를 기반으로 한 응용 및 컴퓨터과 같은 디지털 로직 설계의 가장 필수적인 마이크로 전자 소자이다. 그러므로, 높은 집적도 및 빠른 속도를 위한 축소(scaling)를 통해 얻어지는 프로세스 향상 및 기술 개발을 포함한 반도체 메모리의 제조 기술의 진보는 다른 디지털 로직 계열의 성능 기준을 확립하는 데 도움이 된다.
반도체 메모리 장치는 크게 휘발성 반도체 메모리 장치와 불 휘발성 반도체 메모리 장치로 나뉘어진다. 휘발성 반도체 메모리 장치에 있어서, 로직 정보는 스태틱 랜덤 액세스 메모리의 경우 쌍안정 플립-플롭의 로직 상태를 설정함으로써 또는 다이나믹 랜덤 액세스 메모리의 경우 커패시터의 충전을 통해 저장된다. 휘발성 반도체 메모리 장치의 경우, 전원이 인가되는 동안 데이터가 저장되고 읽혀지며, 전원이 차단될 때 데이터는 소실된다.
MROM, PROM, EPROM, EEPROM, PRAM, 등과 같은 불 휘발성 반도체 메모리 장치는 전원이 차단되어도 데이터를 저장할 수 있다. 불 휘발성 메모리 데이터 저장 상태는 사용되는 제조 기술에 따라 영구적이거나 재프로그램 가능하다. 불 휘발성 반도체 메모리 장치는 컴퓨터, 항공 전자 공학, 통신, 그리고 소비자 전자 기술 산업과 같은 넓은 범위의 응용에서 프로그램 및 마이크로코드의 저장을 위해서 사용된다. 단일 칩에서 휘발성 및 불 휘발성 메모리 저장 모드들의 조합이 빠르고 재프로그램 가능한 불 휘발성 메모리를 요구하는 시스템에서 불 휘발성 RAM (nvRAM)과 같은 장치들에서 또한 사용 가능하다. 게다가, 응용 지향 업무를 위한 성능을 최적화시키기 위해 몇몇 추가적인 로직 회로를 포함하는 특정 메모리 구조가 개발되어 오고 있다.
불 휘발성 반도체 메모리 장치에 있어서, MROM, PROM 및 EPROM은 시스템 자체적으로 소거 및 쓰기가 자유롭지 않아서 일반 사용자들이 기억 내용을 새롭게 하기가 용이하지 않다. 이에 반해, EEPROM, PRAM, 등과 같은 불 휘발성 반도체 메모리 장치들은 전기적으로 소거 및 쓰기가 가능하므로 계속적인 갱신이 필요한 시스템 프로그래밍(system programming)이나 보조 기억 장치로의 응용이 확대되고 있다.
본 발명의 목적은 동작 속도를 향상시킬 수 있는 메모리 시스템 및 그것의 동작 방법을 제공하는 것이다.
본 발명의 다른 목적은 전력 소모를 줄일 수 있는 메모리 시스템 및 그것의 동작 방법을 제공하는 것이다.
본 발명의 일 특징은 불 휘발성 메모리 장치와; 그리고 상기 불 휘발성 메모리 장치를 제어하도록 구성된 메모리 제어기를 포함하며, 상기 메모리 제어기는 상기 불 휘발성 메모리 장치로부터 읽혀진 데이터의 에러의 위치 정보를 포함하는 에러 플래그 정보를 상기 불 휘발성 메모리 장치로 제공하는 메모리 시스템을 제공하는 것이다.
예시적인 실시예에 있어서, 상기 불 휘발성 메모리 장치는 상기 메모리 제어기로부터 제공되는 상기 에러 플래그 정보에 의거하여 상기 읽혀진 데이터의 에러를 정정하도록 구성된다.
예시적인 실시예에 있어서, 상기 에러 정정된 데이터는 상기 읽혀진 데이터가 저장된 제 1 영역과 다른 제 2 영역에 저장된다.
예시적인 실시예에 있어서, 상기 제 1 영역에 저장된 데이터 및 상기 제 2 영역에 저장되는 상기 에러 정정된 데이터는 랜덤화된 데이터이다.
예시적인 실시예에 있어서, 상기 제 1 영역은 단일-레벨 셀 영역이고, 상기 제 2 영역은 멀티-레벨 셀 영역이다.
예시적인 실시예에 있어서, 상기 에러 정정된 데이터는 상기 읽혀진 데이터가 저장된 영역에 재프로그램된다.
예시적인 실시예에 있어서, 상기 에러 플래그 정보는 상기 읽혀진 데이터에 포함된 에러 비트들의 수만큼 상기 불 휘발성 메모리 장치로 반복적으로 제공되고, 상기 읽혀진 데이터에 포함된 에러 비트들 각각을 지정하기 위한 에러 위치 정보가 상기 에러 플래그 정보와 함께 제공된다.
예시적인 실시예에 있어서, 상기 메모리 제어기는 리프레쉬 프로그램 동작시 상기 불 휘발성 메모리 장치로부터 읽혀진 데이터의 에러의 위치 정보를 포함하는 에러 플래그 정보를 상기 불 휘발성 메모리 장치로 제공한다.
본 발명의 다른 특징은 불 휘발성 메모리 장치와; 그리고 상기 불 휘발성 메모리 장치를 제어하도록 구성된 메모리 제어기를 포함하며, 상기 메모리 제어기는 상기 불 휘발성 메모리 장치로부터 읽혀진 데이터의 에러의 위치 정보를 포함하는 에러 플래그 정보를 상기 불 휘발성 메모리 장치로 제공하며, 상기 불 휘발성 메모리 장치는 상기 메모리 제어기로부터 제공되는 상기 에러 플래그 정보에 의거하여 상기 읽혀진 데이터의 에러를 정정하도록 구성되며, 상기 에러 플래그 정보의 크기는 상기 읽혀진 데이터의 크기와 동일하며, 상기 읽혀진 데이터에 포함된 에러 비트들에 각각 대응하는 상기 에러 플래그 정보의 위치들은 에러 비트임을 나타내는 논리 값으로 설정되고, 상기 에러 플래그 정보의 나머지 위치들은 상기 잘못된 비트임을 나타내는 논리 값의 반전된 값으로 설정되는 메모리 시스템을 제공하는 것이다.
예시적인 실시예에 있어서, 상기 에러 정정된 데이터는 상기 읽혀진 데이터가 저장된 제 1 영역과 다른 제 2 영역에 저장되거나 상기 제 1 영역에 저장된다.
본 발명의 또 다른 특징은 데이터 정보를 저장하는 메모리 셀 어레이를 갖는 불 휘발성 메모리 장치 및; 적어도 하나의 채널을 통해 상기 불 휘발성 메모리 장치와 연결되며, 상기 불 휘발성 메모리 장치를 제어하도록 구성된 메모리 제어기를 포함하며, 상기 메모리 셀 어레이의 제 1 영역에서 상기 메모리 셀 어레이의 제 2 영역으로 데이터가 복사되는 카피백 동작시, 상기 메모리 제어기는 상기 제 1 영역에서 읽혀진 데이터의 에러 검출의 결과로서 상기 읽혀진 데이터의 에러의 위치에 대응하는 에러 플래그 정보를 상기 불 휘발성 메모리 장치에 제공되며, 상기 불 휘발성 메모리 장치는 상기 에러 플래그 정보에 의거하여 상기 읽혀진 데이터의 에러를 정정하는 메모리 시스템을 제공하는 것이다.
예시적인 실시예에 있어서, 상기 에러 플래그 정보는 상기 읽혀진 데이터에 포함된 에러 비트들의 수만큼 상기 불 휘발성 메모리 장치로 반복적으로 제공되고, 상기 읽혀진 데이터에 포함된 에러 비트들 각각을 지정하기 위한 에러 위치 정보가 상기 에러 플래그 정보와 함께 제공된다.
예시적인 실시예에 있어서, 상기 에러 플래그 정보의 크기는 상기 읽혀진 데이터의 크기와 동일하며, 상기 읽혀진 데이터에 포함된 에러 비트들에 각각 대응하는 상기 에러 플래그 정보의 위치들은 에러 비트임을 나타내는 논리 값으로 설정되고, 상기 에러 플래그 정보의 나머지 위치들은 상기 에러 비트임을 나타내는 논리 값과 다른 논리 값으로 설정된다.
예시적인 실시예에 있어서, 상기 불 휘발성 메모리 장치는 메인 버퍼와 캐쉬 버퍼를 갖는 페이지 버퍼 회로를 포함하며, 상기 캐쉬 버퍼는 상기 에러 플래그 정보를 저장하는 데 사용되고, 상기 메인 버퍼는 상기 제 1 영역으로부터 읽혀진 데이터를 저장하는 데 사용되며, 상기 메인 버퍼에 저장된 읽혀진 데이터의 에러 비트들은 상기 캐쉬 버퍼에 저장된 상기 에러 플래그 정보에 따라 반전된다.
예시적인 실시예에 있어서, 상기 불 휘발성 메모리 장치는 메인 버퍼와 캐쉬 버퍼를 갖는 페이지 버퍼 회로를 포함하며, 상기 캐쉬 버퍼는 상기 에러 플래그 정보를 저장하는 데 사용되고, 상기 메인 버퍼는 상기 제 1 영역으로부터 읽혀진 데이터를 저장하는 데 사용되며, 상기 메인 버퍼에 저장된 읽혀진 데이터의 에러 비트들은 상기 캐쉬 버퍼에 저장된 상기 에러 플래그 정보와 상기 메인 버퍼에 저장된 읽혀진 데이터를 배타적 오어 연산함으로써 정정된다.
본 발명의 또 다른 특징은 데이터 정보를 저장하는 메모리 셀 어레이를 갖는 불 휘발성 메모리 장치 및; 적어도 하나의 채널을 통해 상기 불 휘발성 메모리 장치와 연결되며, 상기 불 휘발성 메모리 장치를 제어하도록 구성된 메모리 제어기를 포함하며, 상기 메모리 제어기는 상기 메모리 셀 어레이의 선택된 영역에서 읽혀진 데이터의 에러 검출의 결과로서 상기 읽혀진 데이터의 에러의 위치에 대응하는 에러 플래그 정보를 상기 불 휘발성 메모리 장치에 제공되며, 상기 불 휘발성 메모리 장치는 상기 에러 플래그 정보에 의거하여 상기 읽혀진 데이터의 에러를 정정하고, 상기 정정된 데이터를 상기 선택된 영역에 프로그램하는 메모리 시스템을 제공하는 것이다.
예시적인 실시예에 있어서, 상기 불 휘발성 메모리 장치는 메인 버퍼와 캐쉬 버퍼를 갖는 페이지 버퍼 회로를 포함하며, 상기 캐쉬 버퍼는 상기 에러 플래그 정보를 저장하는 데 사용되고, 상기 메인 버퍼는 상기 선택된 영역으로부터 읽혀진 데이터를 저장하는 데 사용되며, 상기 메인 버퍼에 저장된 읽혀진 데이터의 에러 비트들은 상기 캐쉬 버퍼에 저장된 상기 에러 플래그 정보와 상기 메인 버퍼에 저장된 읽혀진 데이터를 배타적 오어 연산함으로써 정정된다.
예시적인 실시예에 있어서, 상기 불 휘발성 메모리 장치는 랜덤 시퀀스 데이터를 발생하도록 구성된 랜덤 데이터 발생기를 더 포함하며, 상기 페이지 버퍼 회로는 상기 랜덤 시퀀스 데이터와 상기 메모리 셀 어레이에 저장될 데이터를 배타적 오어 연산함으로써 상기 메모리 셀 어레이에 저장될 데이터를 랜덤화하도록 구성된다.
본 발명의 또 다른 특징은 메모리 셀 어레이와; 그리고 상기 메모리 셀 어레이에 연결된 페이지 버퍼 회로를 포함하는 불 휘발성 메모리 장치 및; 적어도 하나의 채널을 통해 상기 불 휘발성 메모리 장치와 연결되며, 상기 불 휘발성 메모리 장치를 제어하도록 구성된 메모리 제어기를 포함하며, 상기 메모리 셀 어레이의 제 1 영역에서 상기 메모리 셀 어레이의 제 2 영역으로 데이터가 복사될 때, 상기 메모리 제어기는 상기 제 1 영역에서 읽혀진 데이터의 에러 검출 결과로서 상기 읽혀진 데이터의 에러의 위치에 대응하는 에러 플래그 정보를 상기 불 휘발성 메모리 장치에 제공되며, 상기 읽혀진 데이터의 에러는 상기 에러 플래그 정보에 의거하여 상기 불 휘발성 메모리 장치의 페이지 버퍼 회로를 통해 정정되는 메모리 시스템을 제공하는 것이다.
예시적인 실시예에 있어서, 상기 메모리 제어기는 상기 불 휘발성 메모리 장치에 저장될 데이터를 랜덤화하도록 그리고 상기 불 휘발성 메모리 장치로부터 출력되는 데이터를 디-랜덤화하도록 구성된 랜덤화기/디-랜덤화기를 포함한다.
예시적인 실시예에 있어서, 상기 에러 플래그 정보는 상기 읽혀진 데이터에 포함된 잘못된 비트들의 수만큼 상기 불 휘발성 메모리 장치로 반복적으로 제공되고, 상기 읽혀진 데이터에 포함된 잘못된 비트들 각각을 지정하기 위한 에러 위치 정보가 상기 에러 플래그 정보와 함께 제공되며, 상기 에러 플래그 정보는 상기 랜덤화기/디-랜덤화기에 의해서 랜덤화되지 않는다.
예시적인 실시예에 있어서, 상기 에러 플래그 정보의 크기는 상기 읽혀진 데이터의 크기와 동일하며, 상기 읽혀진 데이터에 포함된 잘못된 비트들에 각각 대응하는 상기 에러 플래그 정보의 위치들은 잘못된 비트임을 나타내는 논리 값으로 설정되고, 상기 에러 플래그 정보의 나머지 위치들은 상기 잘못된 비트임을 나타내는 논리 값과 다른 논리 값으로 설정되며, 상기 에러 플래그 정보는 상기 랜덤화기/디-랜덤화기에 의해서 랜덤화되지 않는다.
예시적인 실시예에 있어서, 상기 제 1 영역에 저장될 데이터를 랜덤화하기 위한 시드값은 상기 제 2 영역에 저장될 데이터를 랜덤화하기 위한 시드값과 동일하다.
예시적인 실시예에 있어서, 상기 시드값들 각각은 상기 랜덤화된 데이터가 저장될 영역의 메모리 셀들에 저장된다.
예시적인 실시예에 있어서, 상기 페이지 버퍼 회로는 메인 버퍼와 캐쉬 버퍼를 포함하며, 상기 캐쉬 버퍼는 상기 에러 플래그 정보를 저장하는 데 사용되고, 상기 메인 버퍼는 상기 제 1 영역으로부터 읽혀진 데이터를 저장하는 데 사용되며, 상기 메인 버퍼에 저장된 읽혀진 데이터의 잘못된 비트들은 상기 캐쉬 버퍼에 저장된 상기 에러 플래그 정보에 따라 반전된다.
예시적인 실시예에 있어서, 상기 제 1 영역에 저장될 데이터를 랜덤화하기 위한 시드값이 상기 제 2 영역에 저장될 데이터를 랜덤화하기 위한 시드값과 다를 때, 상기 제 1 영역으로부터 읽혀진 데이터의 에러는 상기 메모리 제어기에 의해서 정정되며, 상기 정정된 데이터는 상기 랜덤화기/디-랜덤화기를 통해 상기 불 휘발성 메모리 장치의 페이지 버퍼 회로로 전송된다.
예시적인 실시예에 있어서, 상기 제 1 영역은 단일-레벨 셀 영역이고, 상기 제 2 영역은 멀티-레벨 셀 영역이다.
예시적인 실시예에 있어서, 상기 메모리 제어기는 상기 제 1 영역으로부터 데이터가 읽혀지기 이전에 단일-레벨 셀 동작 모드로 전환되도록 상기 불 휘발성 메모리 장치를 제어하고, 상기 에러 플래그 정보가 상기 불 휘발성 메모리 장치로 전송된 후 멀티-레벨 동작 모드로 전환되도록 상기 불 휘발성 메모리 장치를 제어한다.
본 발명의 또 다른 특징은 불 휘발성 메모리 장치를 제어하는 메모리 제어기를 제공하는 것이며, 메모리 제어기는 상기 불 휘발성 메모리 장치로부터 읽혀진 데이터를 저장하도록 구성된 버퍼 메모리와; 그리고 상기 버퍼 메모리에 저장된 상기 읽혀진 데이터의 에러 검출 결과로서 상기 읽혀진 데이터의 에러의 위치에 대응하는 에러 플래그 정보를 발생하도록 구성된 에러 검출 및 정정 회로를 포함하며, 상기 에러 플래그 정보는 상기 불 휘발성 메모리 장치로 제공된다.
예시적인 실시예에 있어서, 상기 메모리 제어기는 상기 불 휘발성 메모리 장치에 저장될 데이터를 랜덤화하도록 그리고 상기 불 휘발성 메모리 장치로부터 읽혀진 데이터를 디-랜덤화하도록 구성된 랜덤화기/디-랜덤화기를 더 포함한다.
예시적인 실시예에 있어서, 상기 에러 플래그 정보는 상기 랜덤화기/디-랜덤화기에 의해서 랜덤화되지 않는다.
예시적인 실시예에 있어서, 상기 불 휘발성 메모리 장치는 메인 버퍼와 캐쉬 버퍼를 갖는 페이지 버퍼 회로를 포함하며, 상기 캐쉬 버퍼는 상기 에러 플래그 정보를 저장하는 데 사용되고, 상기 메인 버퍼는 메모리 셀 어레이의 선택된 영역으로부터 읽혀진 데이터를 저장하는 데 사용되며, 상기 메인 버퍼에 저장된 읽혀진 데이터의 에러 비트들은 상기 캐쉬 버퍼에 저장된 상기 에러 플래그 정보와 상기 메인 버퍼에 저장된 읽혀진 데이터를 배타적 오어 연산함으로써 정정된다.
예시적인 실시예에 있어서, 상기 에러 정정된 데이터는 상기 선택된 영역에 저장된다.
예시적인 실시예에 있어서, 상기 에러 정정된 데이터는 상기 선택된 영역과 다른 영역에 저장된다.
예시적인 실시예에 있어서, 상기 불 휘발성 메모리 장치는 랜덤 시퀀스 데이터를 발생하도록 구성된 랜덤 데이터 발생기를 더 포함하며, 상기 페이지 버퍼 회로는 상기 상기 랜덤 시퀀스 데이터와 상기 메모리 셀 어레이에 저장될 데이터를 배타적 오어 연산함으로써 상기 메모리 셀 어레이에 저장될 데이터를 랜덤화하도록 구성된다.
본 발명의 또 다른 특징은 메모리 셀 어레이와; 랜덤 시퀀스 데이터를 발생하도록 구성된 랜덤 데이터 발생기와; 그리고 상기 랜덤 시퀀스 데이터와 상기 메모리 셀 어레이에 저장될 데이터를 배타적 오어 연산함으로써 상기 메모리 셀 어레이에 저장될 데이터를 랜덤화하도록 구성된 페이지 버퍼 회로를 포함하는 불 휘발성 메모리 장치와; 그리고 상기 불 휘발성 메모리 장치로부터 읽혀진 데이터의 에러를 검출하여 상기 출력된 데이터의 에러의 위치에 대응하는 에러 플래그 정보를 발생하도록 구성된 에러 정정 회로를 포함하는 메모리 제어기를 포함하며, 상기 페이지 버퍼 회로는 상기 배타적 오어 연산을 통해 상기 에러 플래그 정보와 상기 읽혀진 데이터의 에러를 상기 배타적 오어 연산함으로써 상기 읽혀진 데이터의 에러를 정정하도록 구성되는 메모리 시스템을 제공하는 것이다.
예시적인 실시예에 있어서, 상기 읽혀진 데이터가 저장된 상기 메모리 셀 어레이의 영역은 상기 에러 정정된 데이터가 저장되는 상기 메모리 셀 어레이의 영역과 동일하다.
예시적인 실시예에 있어서, 상기 읽혀진 데이터가 저장된 상기 메모리 셀 어레이의 제 1 영역은 상기 에러 정정된 데이터가 저장되는 상기 메모리 셀 어레이의 제 2 영역과 다르다.
본 발명의 또 다른 특징은 메모리 셀 어레이를 갖는 불 휘발성 메모리 장치와; 그리고 버퍼 메모리를 가지며, 상기 불 휘발성 메모리 장치를 제어하는 메모리 제어기를 포함하는 데이터 저장 장치의 동작 방법을 제공하는 것이다. 동작 방법은 상기 메모리 셀 어레이의 제 1 메모리 영역에 대한 버퍼 프로그램 동작이 요구될 때, 상기 제 1 메모리 영역에 대한 버퍼 프로그램 동작을 수행하도록 상기 불 휘발성 메모리 장치를 제어하고; 그리고 상기 메모리 셀 어레이의 제 2 메모리 영역에 대한 메인 프로그램 동작이 요구될 때, 상기 제 2 메모리 영역에 대한 메인 프로그램 동작을 수행하도록 상기 불 휘발성 메모리 장치를 제어하는 것을 포함하며, 상기 제 2 메모리 영역에 대한 메인 프로그램 동작은 상기 제 1 메모리 영역에 대한 단일-비트 읽기 동작들을 포함하며, 상기 각 단일-비트 읽기 동작시, 상기 메모리 제어기는 상기 제 1 메모리 영역에서 읽혀진 데이터의 에러를 검출하고, 상기 에러 검출 결과에 따라 에러 플래그 정보를 생성하고, 상기 검출된 에러의 정정 없이 상기 에러 플래그 정보를 상기 불 휘발성 메모리 장치로 전송하며, 상기 제 1 메모리 영역으로부터 읽혀진 데이터의 에러는 상기 에러 플래그 정보에 의거하여 상기 페이지 버퍼 회로에 의해서 정정된다.
예시적인 실시예에 있어서, 상기 제 1 메모리 영역은 단일-비트 프로그램 동작을 통해 프로그램되고, 상기 제 2 메모리 영역은 멀티-비트 프로그램 동작을 통해 프로그램된다.
예시적인 실시예에 있어서, 상기 에러 플래그 정보는 상기 읽혀진 데이터에 포함된 에러 비트들의 수만큼 상기 불 휘발성 메모리 장치로 반복적으로 제공되고, 상기 읽혀진 데이터에 포함된 잘못된 비트들 각각을 지정하기 위한 에러 위치 정보가 상기 에러 플래그 정보와 함께 제공된다.
예시적인 실시예에 있어서, 상기 에러 플래그 정보의 크기는 상기 읽혀진 데이터의 크기와 동일하며, 상기 읽혀진 데이터에 포함된 에러 비트들에 각각 대응하는 상기 에러 플래그 정보의 위치들은 에러 비트임을 나타내는 논리 값으로 설정되고, 상기 에러 플래그 정보의 나머지 위치들은 상기 에러 비트임을 나타내는 논리 값의 반전된 논리 값으로 설정된다.
예시적인 실시예에 있어서, 상기 페이지 버퍼 회로는 메인 버퍼와 캐쉬 버퍼를 포함하며, 상기 캐쉬 버퍼는 상기 에러 플래그 정보를 저장하는 데 사용되고, 상기 메인 버퍼는 상기 제 1 영역으로부터 읽혀진 데이터를 저장하는 데 사용되며, 상기 메인 버퍼에 저장된 읽혀진 데이터의 에러 비트들은 상기 캐쉬 버퍼에 저장된 상기 에러 플래그 정보에 따라 반전된다.
예시적인 실시예에 있어서, 상기 단일-비트 읽기 동작들이 행해질 때, 이전의 단일-비트 읽기 동작을 통해 읽혀진 데이터의 출력 및 에러 플래그 정보의 생성은 다음의 단일-비트 읽기 동작이 행해질 때 행해진다.
본 발명의 실시예들에 따르면, 동작 속도를 향상시키는 것이 가능하다. 또한, 전력 소모를 줄이는 것이 가능하다.
도 1은 본 발명의 실시예에 따른 메모리 시스템을 개략적으로 보여주는 블록도이다.
도 2는 도 1에 도시된 메모리 제어기를 개략적으로 보여주는 블록도이다.
도 3은 본 발명의 다른 실시예에 따른 도 1에 도시된 메모리 제어기를 개략적으로 보여주는 블록도이다.
도 4는 본 발명의 일 실시예에 따른 도 1에 도시된 불 휘발성 메모리 장치를 개략적으로 보여주는 블록도이다.
도 5는 올 비트 라인 메모리 구조 또는 오드-이븐 메모리 구조를 위해 메모리 셀 어레이를 메모리 블록들로 구성하는 예를 보여주는 도면이다.
도 6은 본 발명의 예시적인 실시예에 따른 도 5에 도시된 페이지 버퍼 회로의 일부를 보여주는 블록도이다.
도 7은 본 발명의 실시예에 따른 불 휘발성 메모리 장치의 에러 정정 동작을 개략적으로 설명하기 위한 도면이다.
도 8은 본 발명의 실시예에 따른 메모리 시스템의 복사 동작을 설명하기 위한 흐름도이다.
도 9는 도 8에서 설명되는 복사 동작시 에러 플래그 정보를 불 휘발성 메모리 장치로 전송하기 위한 타이밍도이다.
도 10은 본 발명의 다른 실시예에 따른 도 8에서 설명되는 복사 동작시 에러 플래그 정보를 불 휘발성 메모리 장치로 전송하기 위한 타이밍도이다.
도 11은 본 발명의 실시예에 따른 메모리 시스템의 에러 검출 동작 및 에러 정정 동작을 개략적으로 설명하기 위한 도면이다.
도 12는 본 발명의 다른 실시예에 따른 메모리 시스템의 에러 검출 동작 및 에러 정정 동작을 개략적으로 설명하기 위한 도면이다.
도 13a는 멀티-레벨 메모리 장치에 적용되는 어드레스 스크램블 방식의 일예를 설명하기 위한 도면이다.
도 13b는 각 메모리 셀이 당 3-비트 데이터를 저장하고 3-스텝 프로그램 방식에 따라 프로그램 동작이 수행될 때 변화되는 문턱 전압 분포들을 보여주는 도면이다.
도 14는 본 발명의 예시적인 실시예에 따른 데이터 저장 시스템을 개략적으로 보여주는 블록도이다.
도 15a 내지 도 15d는 본 발명의 예시적인 실시예에 따른 멀티-비트 메모리 장치의 제 1 및 제 2 메모리 영역들에 대한 다양한 조합들을 설명하기 위한 도면들이다.
도 16은 본 발명의 예시적인 실시예에 따른 1-스텝 프로그램 동작을 위한 명령 시퀀스를 보여주는 도면이다.
도 17은 도 16에 도시된 1-스텝 프로그램 명령 시퀀스에 따른 데이터 흐름을 보여주는 도면이다.
도 18은 에러 정정 동작(또는, 비트 플립 동작)에 따른 데이터 흐름을 보여주는 도면이다.
도 19는 거친 프로그램 동작을 위한 명령 시퀀스를 보여주는 도면이다.
도 20은 도 19에 도시된 거친 프로그램 명령 시퀀스에 따른 데이터 흐름을 보여주는 도면이다.
도 21은 본 발명의 다른 실시예에 따른 거친/정교한 프로그램 동작시의 데이터 흐름을 설명하기 위한 도면이다.
도 22는 본 발명의 예시적인 실시예에 따른 메모리 시스템의 리프레쉬 프로그램 동작을 개략적으로 설명하기 위한 도면이다.
도 23은 본 발명의 또 다른 예시적인 실시예에 따른 메모리 시스템을 개략적으로 보여주는 블록도이다.
도 24은 본 발명의 예시적인 실시예에 따른 컴퓨팅 시스템을 개략적으로 보여주는 블록도이다.
도 25는 본 발명의 예시적인 실시예에 따른 반도체 드라이브를 개략적으로 보여주는 블록도이다.
도 26은 도 25에 도시된 반도체 드라이브를 이용한 스토리지를 개략적으로 보여주는 블록도이다.
도 27는 도 25에 도시된 반도체 드라이브를 이용한 스트리지 서버를 개략적으로 보여주는 블록도이다.
도 28 내지 도 30은 본 발명의 예시적인 실시예들에 따른 데이터 저장 장치가 적용되는 시스템들을 개략적으로 보여주는 도면들이다.
도 31는 본 발명의 실시예에 따른 메모리 카드(memory card)를 개략적으로 보여주는 블록도이다.
도 32는 본 발명의 실시예에 따른 디지털 스틸 카메라(digital still camera)를 개략적으로 보여주는 블록도이다.
도 33은 도 32의 메모리 카드가 사용되는 다양한 시스템을 설명하는 예시적 도면이다.
본 발명의 이점 및 특징, 그리고 그것을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시 예들을 통해 설명될 것이다. 그러나 본 발명은 여기에서 설명되는 실시 예들에 한정되지 않고 다른 형태로 구체화될 수도 있다. 단지, 본 실시 예들은 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 본 발명의 기술적 사상을 용이하게 실시할 수 있을 정도로 상세히 설명하기 위하여 제공되는 것이다.
도면들에 있어서, 본 발명의 실시 예들은 도시된 특정 형태로 제한되는 것이 아니며 명확성을 기하기 위하여 과장된 것이다. 또한 명세서 전체에 걸쳐서 동일한 참조번호로 표시된 부분들은 동일한 구성요소를 나타낸다.
본 명세서에서 ‘및/또는’이란 표현은 전후에 나열된 구성요소들 중 적어도 하나를 포함하는 의미로 사용된다. 또한, ‘연결되는/결합되는’이란 표현은 다른 구성요소와 직접적으로 연결되거나 다른 구성요소를 통해 간접적으로 연결되는 것을 포함하는 의미로 사용된다. 본 명세서에서 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 또한, 명세서에서 사용되는 ‘포함한다’ 또는 ‘포함하는’으로 언급된 구성요소, 단계, 동작 및 소자는 하나 이상의 다른 구성요소, 단계, 동작, 소자 및 장치의 존재 또는 추가를 의미한다.
도 1은 본 발명의 실시예에 따른 메모리 시스템을 개략적으로 보여주는 블록도이다.
도 1을 참조하면, 본 발명의 실시예에 따른 메모리 시스템은 불 휘발성 메모리 장치(1000)와 메모리 제어기(2000)를 포함한다. 불 휘발성 메모리 장치(1000)는 데이터 정보를 저장하는 일종의 저장 매체로서 사용된다. 저장 매체는 하나 또는 그 보다 많은 메모리 칩들로 구성될 수 있다. 불 휘발성 메모리 장치(1000)와 메모리 제어기(2000)는 하나 또는 그 보다 많은 채널들을 통해 통신한다. 불 휘발성 메모리 장치(1000)는, 예를 들면, 낸드 플래시 메모리 장치를 포함한다. 메모리 제어기(2000)는 외부 장치(예를 들면, 호스트)의 요청 또는 내부적인 요청(예를 들면, 머지, 가비지 콜렉션, 등과 같은 배경 동작들과 관련된 요청))에 따라 불 휘발성 메모리 장치(1000)를 제어하도록 구성된다.
예시적인 실시예에 있어서, 불 휘발성 메모리 장치(1000)가 낸드 플래시 메모리 장치에 국한되지 않음은 잘 이해될 것이다. 예를 들면, 불 휘발성 메모리 장치(1000)는 노아 플래시 메모리 장치, 저항성 램(Resistive Random Access Memory: RRAM) 장치, 상변화 메모리(Phase-Change Memory: PRAM) 장치, 자기저항 메모리(Magnetoresistive Random Access Memory: MRAM) 장치, 강유전체 메모리(Ferroelectric Random Access Memory: FRAM) 장치, 스핀주입 자화반전 메모리(Spin Transfer Torque Random Access Memory: STT-RAM), 또는 그와 같은 것으로 구성될 수 있다. 또한, 본 발명의 불 휘발성 메모리 장치(1000)는 3차원 어레이 구조를 갖도록 구현될 수 있다. 3차원 어레이 구조를 갖는 불 휘발성 메모리 장치는 수직 낸드 플래시 메모리 장치라 불린다. 본 발명은 전하 저장층이 전도성 부유 게이트로 구성된 플래시 메모리 장치 뿐만 아니라, 전하 저장층이 절연막으로 구성된 차지 트랩형 플래시(Charge Trap Flash, "CTF"라 불림) 메모리 장치에도 모두 적용 가능하다.
본 발명의 실시예에 따른 메모리 시스템은 불 휘발성 메모리 장치(1000)의 제 1 저장 영역에서 제 2 저장 영역으로 데이터를 복사하는 동작(예를 들면, 카피백 동작(copyback operation))을 지원한다. 제 1 저장 영역에서 제 2 저장 영역으로 데이터를 복사하는 동작은 제 1 저장 영역에서 읽혀진 데이터에 대한 에러 검출 및 정정 동작을 필연적으로 수반할 것이다. 이는 데이터 신뢰성을 높이기 위함이다. 여기서, 제 1 저장 영역은 제 2 저장 영역과 다르거나 같을 수 있다. 본 발명의 메모리 시스템에 따르면, 불 휘발성 메모리 장치(1000)로부터 읽혀진 데이터(RD)의 에러 검출(error detection)은 메모리 제어기(2000)에 의해서 행해지고, 에러 정정(error correction)은 불 휘발성 메모리 장치(1000) 내에서 행해진다. 특히, 메모리 제어기(2000)는 검출된 에러의 위치 정보(이하, 에러 위치 정보라 칭함) 및 패턴 정보(이하, 에러 플래그 정보(error flag information)라 칭함)를 불 휘발성 메모리 장치(1000)에 제공하며, 불 휘발성 메모리 장치(1000)는 메모리 제어기(2000)로부터 제공되는 에러 위치 정보 및 에러 플래그 정보에 의거하여 데이터의 에러를 정정한다. 즉, 에러 검출 이후 메모리 제어기(2000)에 의해서 에러 정정이 행해지지 않기 때문에(또는, 에러 검출 이후 불 휘발성 메모리 장치(1000)에 의해서 에러 정정이 행해지기 때문에), 불 휘발성 메모리 장치(1000)로부터 출력된 데이터(또는, 정정된 데이터)를 모두 불 휘발성 메모리 장치(1000)로 전송할 필요가 없다. 이는 메모리 제어기(2000)에서 불 휘발성 메모리 장치(1000)로 데이터를 전송하는 데 걸리는 시간 그리고/또는 메모리 제어기(2000)에서 불 휘발성 메모리 장치(1000)로 데이터를 전송하는 데 소모되는 전력이 감소됨을 의미한다.
도 2는 도 1에 도시된 메모리 제어기를 개략적으로 보여주는 블록도이다. 도 2를 참조하면, 메모리 제어기(2000)는 제 1 인터페이스로서 호스트 인터페이스(2100), 제 2 인터페이스로서 메모리 인터페이스(2200), CPU와 같은 처리 유니트(2300), 버퍼 메모리(2400), 그리고 에러 검출 및 정정 회로(2500)를 포함한다.
호스트 인터페이스(2100)는 외부(또는, 호스트)와 인터페이스하도록 구성된다. 메모리 인터페이스(2200)는 도 1에 도시된 불 휘발성 메모리 장치(1000)와 인터페이스하도록 구성된다. 처리 유니트(2300), 예를 들면, CPU는 메모리 제어기(2000)의 전반적인 동작을 제어하도록 구성된다. 예를 들면, 처리 유니트(2300)는 플래시 변환 계층(Flash Translation Layer: FTL)과 같은 펌웨어를 운용하도록 구성된다. 버퍼 메모리(2400)는 호스트 인터페이스(2100)를 통해 외부로 전달되는 데이터를 임시 저장하는 데 사용된다. 버퍼 메모리(2400)는 메모리 인터페이스(2200)를 통해 불 휘발성 메모리 장치(1000)로부터 전달되는 데이터를 임시 저장하는 데 사용된다.
에러 검출 및 정정 회로(2500)는 불 휘발성 메모리 장치(1000)에 저장될 데이터를 부호화하도록 그리고 불 휘발성 메모리 장치(4100)로부터 읽혀진 데이터를 복호화하도록 구성된다. 부호화는 패리티 정보를 생성하는 동작을 포함하며, 패리티 정보는 필드 단위로 생성될 수 있다. 한 페이지의 데이터는 하나 또는 그 보다 많은 필드들로 구성될 수 있다. 복호화는 에러 검출 동작과 에러 정정 동작을 포함할 것이다. 불 휘발성 메모리 장치(1000)에서 출력된 데이터가 외부로 전송될 때, 에러 검출 동작과 에러 정정 동작을 포함하는 복호화가 에러 검출 및 정정 회로(2500)에 의해서 행해질 것이다. 앞서 설명된 복사 동작시, 에러 검출 및 정정 회로(2500)는 에러 정정 동작없이 불 휘발성 메모리 장치(1000)로부터 읽혀진 데이터에 대한 에러 검출 동작만을 수행한다. 에러 검출 및 정정 회로(2500)는 에러 검출 동작의 결과로서 에러 위치 정보 및 에러 플래그 정보를 발생하며, 에러 위치 정보 및 에러 플래그 정보는 처리 유니트(2300)의 제어 하에 메모리 인터페이스(2200)를 통해 불 휘발성 메모리 장치(1000)로 전송된다. 예를 들면, 에러 위치 정보는 에러가 발생한 데이터 비트를 지정하기 위한 열 어드레스를 포함하고, 에러 플래그 정보는 에러 위치 정보에 의해서 지정되는 위치의 데이터 비트가 에러임을 나타내는 비트 정보일 것이다. 다른 예로서, 에러 검출 및 정정 회로(2500)는 에러 검출 동작의 결과로서 에러 위치 정보에 의해서 지정되는 위치의 데이터 비트가 에러임을 나타내는 비트 정보(즉, 에러 플래그 정보)를 포함하는 필드 데이터(에러 정정된 데이터가 아님에 주의)를 불 휘발성 메모리 장치(1000)로 전송한다. 이는 이후 상세히 설명될 것이다.
비록 도면에는 도시되지 않았지만, 메모리 제어기(2000)는 롬을 더 포함할 수 있다. 롬은 플래시 변환 계층(Flash Translation Layer: FTL)과 같은 펌웨어를 저장하는 데 사용될 수 있다. 다른 예로서, 롬을 포함하지 않도록 메모리 제어기(2000)를 구성하는 것이 가능하다. 이러한 경우, 롬에 저장되는 펌웨어는 메모리 제어기(2000)에 의해서 제어되는 불 휘발성 메모리 장치(1000)에 저장되며, 파워-업시 불 휘발성 메모리 장치(1000)에서 메모리 제어기(2000)로 로드될 것이다.
예시적인 실시예에 있어서, 호스트 인터페이스(2100)는 컴퓨터 버스 표준들, 스토리지 버스 표준들, iFCPPeripheral 버스 표준들, 등 중 하나 또는 그 보다 많은 것들의 조합으로 구성될 수 있다. 컴퓨터 버스 표준들(computer bus standards)은 S-100 bus, Mbus, Smbus, Q-Bus, ISA, Zorro II, Zorro III, CAMAC, FASTBUS, LPC, EISA, VME, VXI, NuBus, TURBOchannel, MCA, Sbus, VLB, PCI, PXI, HP GSC bus, CoreConnect, InfiniBand, UPA, PCI-X, AGP, PCIe, Intel QuickPath Interconnect, Hyper Transport, 등을 포함한다. 스토리지 버스 표준들(Storage bus standards)은 ST-506, ESDI, SMD, Parallel ATA, DMA, SSA, HIPPI, USB MSC, FireWire(1394), Serial ATA, eSATA, SCSI, Parallel SCSI, Serial Attached SCSI, Fibre Channel, iSCSI, SAS, RapidIO, FCIP, 등을 포함한다. iFCPPeripheral 버스 표준들(iFCPPeripheral bus standards)은 Apple Desktop Bus, HIL, MIDI, Multibus, RS-232, DMX512-A, EIA/RS-422, IEEE-1284, UNI/O, 1-Wire, I2C, SPI, EIA/RS-485, USB, Camera Link, External PCIe, Light Peak, Multidrop Bus, 등을 포함한다.
도 3은 본 발명의 다른 실시예에 따른 도 1에 도시된 메모리 제어기를 개략적으로 보여주는 블록도이다. 도 3에 있어서, 도 2에 도시된 것과 실질적으로 동일한 구성 요소들은 동일한 참조 번호들로 표기되며, 그것에 대한 설명은 그러므로 생략될 것이다. 도 3에 도시된 메모리 제어기(2000a)는 랜덤화기/디-랜덤화기(2600)를 더 포함한다.
랜덤화기/디-랜덤화기(2600)는 불 휘발성 메모리 장치(1000)로 전송되는 데이터를 랜덤화하도록 그리고 불 휘발성 메모리 장치(1000)로부터 출력되는 데이터(예를 들면, 랜덤화된 데이터)를 디-랜덤화하도록 구성된다. 앞서 설명된 복사 동작시, 랜덤화기/디-랜덤화기(2600)는 불 휘발성 메모리 장치(1000)로부터 출력되는 데이터(예를 들면, 랜덤화된 데이터)를 디-랜덤화하며, 에러 검출 및 정정 회로(2500)는 디-랜덤화된 데이터의 에러를 검출한다. 앞서 설명된 바와 같이, 메모리 제어기(2000a)에서 불 휘발성 메모리 장치(1000)로 전송되는 에러 플래그 정보는 랜덤화기/디-랜덤화기(2600)에 의해서 랜덤화되지 않는다. 마찬가지로, 에러 플래그 정보를 포함하는 필드 데이터가 전송되는 경우에도, 랜덤화기/디-랜덤화기(2600)는 동작하지 않는다. 에러 정정된 데이터가 불 휘발성 메모리 장치(1000)로 전송되는 경우, 에러 정정된 데이터는 랜덤화기/디-랜덤화기(2600)에 의해서 랜덤화될 것이다. 본 발명의 경우, 에러 정정이 메모리 제어기(2000a)에 의해서 제공되는 에러 플래그 정보에 따라 불 휘발성 메모리 장치(1000)에 의해서 행해지기 때문에, 랜덤화기/디-랜덤화기(2600)의 랜덤화는 에러 플래그 정보/필드 데이터(에러 플래그 정보를 포함함)의 전송시 행해지지 않는다.
도 4는 본 발명의 일 실시예에 따른 도 1에 도시된 불 휘발성 메모리 장치를 개략적으로 보여주는 블록도이다. 도 4를 참조하면, 불 휘발성 메모리 장치(1000)는 메모리 셀 어레이(1100), 어드레스 디코더(1200), 전압 발생기(1300), 제어 로직(1400), 페이지 버퍼 회로(1500), 그리고 입출력 인터페이스(1600)를 포함한다.
메모리 셀 어레이(1100)는 행들(예를 들면, 워드 라인들)과 열들(예를 들면, 비트 라인들)의 교차 영역들에 배열된 메모리 셀들을 포함할 것이다. 메모리 셀들 각각은 1-비트 데이터 또는 멀티-비트 데이터를 저장할 것이다. 어드레스 디코더(1200)는 제어 로직(1400)에 의해서 제어되며, 메모리 셀 어레이(1100)의 행들(예를 들면, 워드 라인들, 스트링 선택 라인(들), 접지 선택 라인(들), 공통 소오스 라인, 등)의 선택 및 구동을 행한다. 전압 발생기(1300)는 제어 로직(1400)에 의해서 제어되며, 각 동작에 필요한 전압들(예를 들면, 고전압, 프로그램 전압, 읽기 전압, 검증 전압, 소거 전압, 패스 전압, 벌크 전압, 등)을 발생한다. 전압 발생기(1300)에 의해서 전압들은 어드레스 디코더(1200)를 통해 메모리 셀 어레이(1100)에 제공된다. 제어 로직(1400)은 불 휘발성 메모리 장치(1000)의 전반적인 동작을 제어하도록 구성된다. 페이지 버퍼 회로(1500)는 제어 로직(1400)에 의해서 제어되며, 메모리 셀 어레이(1100)로부터 데이터를 읽도록 또는 프로그램 데이터에 따라 메모리 셀 어레이(1100)의 열들(예를 들면, 비트 라인들)을 구동하도록 구성된다. 입출력 인터페이스(1600)는 제어 로직(1400)에 의해서 제어되며, 외부(예를 들면, 도 1의 메모리 제어기)와 인터페이스하도록 구성된다.
페이지 버퍼 회로(1500)는 비트 라인들 또는 비트 라인 쌍들에 각각 대응하는 복수의 페이지 버퍼들로 구성될 것이다. 페이지 버퍼들 각각은 복수의 래치들을 포함한다. 페이지 버퍼 회로(1500)는 제어 로직(1400)의 제어 하에 각 페이지 버퍼의 래치들을 이용하여 에러 정정 동작을 수행한다. 즉, 페이지 버퍼 회로(1500)는 제어 로직(1400)의 제어 하에 메모리 제어기(2000)로부터 제공된 에러 플래그 정보에 따라 에러 정정 동작을 수행한다. 본 발명의 예시적인 실시예에 있어서, 에러 정정 동작은 에러 위치 정보에 대응하는 데이터 비트의 값을 반전시킴으로써 달성된다. 즉, 에러 위치 정보에 대응하는 데이터 비트의 값은 에러 플래그 정보에 따라 반전된다. 이러한 에러 정정 동작을 비트-플립 동작이라 칭한다. 이는 이후 상세히 설명될 것이다.
도 5는 올 비트 라인 메모리 구조 또는 오드-이븐 메모리 구조를 위해 메모리 셀 어레이를 메모리 블록들로 구성하는 예를 보여주는 도면이다. 메모리 셀 어레이(1100)의 예시적인 구조들이 설명될 것이다. 일 예로서, 메모리 셀 어레이(1100)가 1024개의 메모리 블록들로 나눠진 낸드 플래시 메모리 장치가 설명될 것이다. 각 메모리 블록에 저장된 데이터는 동시에 소거될 수 있다. 일 실시예에 있어서, 메모리 블록은 동시에 소거되는 저장 소자들의 최소 단위이다. 각 메모리 블록에는, 예를 들면, 비트 라인들에 각각 대응하는 복수의 열들이 있다. 올 비트 라인 (all bit line: ABL) 구조라 불리는 일 실시예에 있어서, 메모리 블록의 모든 비트 라인들은 읽기 및 프로그램 동작들 동안 동시에 선택될 수 있다. 선택된 워드 라인에 속하며 모든 비트 라인들과 연결된 저장 소자들은 동시에 프로그램될 수 있다.
예시적인 실시예에 있어서, 동일한 열에 속한 복수의 저장 소자들은 낸드 스트링(111)을 구성하도록 직렬로 연결된다. 낸드 스트링의 일 단자는 스트링 선택 라인(SSL)에 의해서 제어되는 선택 트랜지스터를 통해 대응하는 비트 라인에 연결되고, 다른 단자는 접지 선택 라인(GSL)에 의해서 제어되는 선택 트랜지스터를 통해 공통 소오스 라인(CSL)에 연결된다.
오드-이븐 구조(odd-even architecture)라 불리는 다른 예시적인 실시예에 있어서, 비트 라인들은 이븐 비트 라인들(BLe)과 오드 비트 라인들(BLo)로 구분된다. 오드/이븐 비트 라인 구조에 있어서, 선택된 워드 라인에 속하고 오드 비트 라인들과 연결된 저장 소자들이 제 1 시간에 프로그램되는 반면에, 선택된 워드 라인에 속하고 이븐 비트 라인들과 연결된 저장 소자들은 제 2 시간에 프로그램된다. 데이터는 다른 블록들로 프로그램될 수 있고 다른 메모리 블록들로부터 읽혀질 수 있다. 이러한 동작은 동시에 수행될 수 있다.
도 6은 본 발명의 예시적인 실시예에 따른 도 5에 도시된 페이지 버퍼 회로의 일부를 보여주는 블록도이다. 본 발명의 실시예에 따른 페이지 버퍼 회로(1500)는 비트 라인들에 각각 연결된 복수의 페이지 버퍼들(PB)을 포함한다. 도 6에는 단지 하나의 페이지 버퍼(PB)가 도시되어 있다. 나머지 페이지 버퍼들 각각은 도 6에 도시된 것과 실질적으로 동일하게 구성된다.
도 6을 참조하면, 페이지 버퍼(PB)는 도 4의 제어 로직(1400)에 의해서 제어되며, 프리챠지 회로(1510), 래치 블록(1520), 그리고 데이터 입출력 회로(1530)를 포함한다. 프리챠지 회로(1510)는 비트 라인(BL)에 연결되며, 비트 라인(BL)을 프리챠지하도록 구성된다. 한 쌍의 비트 라인들에 페이지 버퍼(PB)가 연결되는 경우, 프리챠지 회로(1510)는 한 쌍의 비트 라인들 중 하나를 선택하는 기능을 포함할 것이다. 래치 블록(1520)은 감지 노드(SO)에 연결된다. 래치 블록(1520)은 복수의, 예를 들면, 5개의 래치 유니트들(1521~1525) (도면에는 S, L, M, F, 그리고 C로 각각 표기됨)을 포함한다. 페이지 버퍼(PB)에 포함된 래치 유니트들의 수가 여기에 개시된 것에 국한되지 않음은 잘 이해될 것이다. 래치 블록(1520)은 감지 동작(프로그램 검증 동작, 읽기 동작, 소거 검증 동작 등과 관련됨)시 제어 로직(1400)의 제어 하에 감지 노드(SO)의 값을 래치하도록 구성된다. 제어 로직(1400)은 래치들 사이에서 데이터가 전달되는 덤프 동작을 수행하도록 래치 블록(1520)을 제어한다. 덤프 동작시, 래치들 사이에서 전달되는 데이터의 위상은 제어 로직(1400)의 제어에 따라 반전되거나 그대로 유지될 것이다. 래치 블록(1520)은 프로그램 동작시 프로그램 데이터에 따라 비트 라인(BL)을 비트 라인 프로그램 전압(예를 들면, 0V 또는 0V보다 높고 전원 전압보다 낮은 전압) 또는 비트 라인 프로그램 금지 전압(예를 들면, 전원 전압)으로 구동한다.
이후 설명되는 바와 같이, 래치 블록(1520)은 제어 로직(1400)의 제어에 따라 에러 플래그 정보를 이용하여 앞서 설명된 비트 플립 동작(또는, 에러 정정 동작)을 수행한다. 이는 제어 로직(1400)의 제어에 따라 래치 유니트들(1521~1525) 사이에서 행해지는 데이터 전송 동작을 통해 달성될 것이다. 데이터 입출력 회로(1530)는 래치 블록(1520)의 데이터를 데이터 라인(DL)으로 전송하거나 데이터 라인(DL)의 데이터를 래치 블록(1520)으로 전송하도록 구성된다.
도 6에 도시된 페이지 버퍼(PB)의 구성이 여기에 개시된 것에 국한되지 않음은 잘 이해될 것이다.
도 7은 본 발명의 실시예에 따른 불 휘발성 메모리 장치의 에러 정정 동작을 개략적으로 설명하기 위한 도면이다. 이하, 본 발명의 실시예에 따른 불 휘발성 메모리 장치(1000)의 에러 정정 동작이 참조 도면들에 의거하여 상세히 설명될 것이다.
메모리 셀 어레이(1100)의 제 1 저장 영역으로부터 읽혀진 데이터를 제 2 저장 영역으로 복사하는 경우, 제 1 저장 영역으로부터 읽혀진 데이터에 대한 에러 정정이 행해질 것이다. 제 1 저장 영역으로부터 읽혀진 데이터에 대한 에러 정정은, 앞서 설명된 바와 같이, 메모리 제어기(2000)에 의해서 행해지는 것이 아니라 불 휘발성 메모리 장치(1000)에 의해서 행해진다. 에러 정정은 메모리 제어기(2000)에서 제공되는 에러 플래그 정보에 따라 행해진다. 예를 들면, 에러 정정은 비트 플립 동작을 통해 행해진다.
도 7에 도시된 바와 같이, 설명의 편의상, 메모리 셀 어레이(1100)의 제 1 저장 영역으로부터 읽혀진 데이터가 "01010011"의 8-비트 데이터라고 가정하자. 제 1 저장 영역으로부터 읽혀진 데이터는, 먼저, 메모리 제어기(2000)로 제공된다. 메모리 제어기(2000)의 에러 검출 및 정정 회로(2500)는 불 휘발성 메모리 장치(1000)로부터 제공되는 데이터가 에러가 있는 지의 여부를 판별한다. 만약 불 휘발성 메모리 장치(1000)로부터 제공되는 데이터가 에러가 있는 것으로 판별되면, 에러 검출 및 정정 회로(2500)는 에러 위치 정보 및 에러 플래그 정보를 발생한다. 에러 위치 정보 및 에러 플래그 정보는 처리 유니트(2300)의 제어하에 불 휘발성 메모리 장치(1000)로 제공된다. 여기서, 에러 플래그 정보는 에러 위치 정보에 대응하는 데이터 비트가 에러가 있음을 나타낸다. 예를 들면, 도 7에 도시된 바와 같이, 에러 플래그 정보는 에러 위치 정보에 대응하는 데이터 비트가 잘못된 것으로 판별될 때 '1'의 값을 가진다. 하지만, 에러 플래그 정보가 에러 위치 정보에 대응하는 데이터 비트가 잘못된 것으로 판별될 때 '0'의 값을 갖도록 설정될 수 있음은 잘 이해될 것이다.
에러 플래그 정보는 제 1 저장 영역으로부터 읽혀진 데이터와 독립적으로 불 휘발성 메모리 장치(1000)의 페이지 버퍼 회로(1500)에 저장된다. 에러 플래그 정보에 의거하여 페이지 버퍼 회로(1500)을 통해 에러 정정 동작 또는 비트 플립 동작이 행해진다. 도 7에 도시된 바와 같이, 에러 위치 정보에 대응하는 데이터 비트는 에러 플래그 정보에 의거하여 '1'에서 '0'로 변경된다. 변경된 데이터 비트를 포함하는 데이터는 에러 정정된 데이터일 것이다. 이후, 에러 정정된 데이터는 메모리 셀 어레이(1100)의 제 2 저장 영역에 저장될 것이다.
에러 플래그 정보에 의거하여 행해지는 페이지 버퍼의 에러 정정 동작 또는 비트 플립 동작이 이하 상세히 설명될 것이다.
에러 정정 동작(또는, 비트 플립 동작)은 페이지 버퍼(PB)의 래치 유니트들을 이용하여 행해진다. 예를 들면, 에러 정정 동작은 3개의 래치 유니트들(1521, 1522, 1525)을 이용하여 배타적-오어 동작을 통해 행해진다. 에러 정정 동작이 배타적-오어(XOR) 동작에 국한되지 않음은 잘 이해될 것이다. 예를 들면, 에러 정정 동작은 에러 플래그 정보의 값에 따라 배타적-노어(XNOR) 동작을 통해 행해질 수 있다. 에러 정정 동작은 제어 로직(1400)의 제어 하에 행해진다.
먼저, 제 1 저장 영역으로부터 읽혀진 데이터는 래치 유니트(1521) (이하, S-래치 유니트라 칭함)에 저장된다. S-래치 유니트(1521)에 저장된 데이터는 래치 유니트들(1522, 1525) (이하, L-래치 유니트 및 C-래치 유니트라 칭함)으로 각각 덤프된다. C-래치 유니트(1525)에 저장된 데이터는 에러 검출을 위해서 메모리 제어기(2000)로 출력된다. 설명의 편의상, 하나의 데이터 비트를 기준으로 에러 정정 동작이 설명될 것이다. 이러한 경우, 하나의 읽혀진 데이터 비트 및 하나의 에러 플래그 비트의 조합은 4가지 경우들(예를 들면, '00', '01', '10', 그리고 '11') 중 하나일 것이다. 아래의 표 1은 에러 검출을 위해서 메모리 제어기(2000)로 데이터가 출력될 때 각 래치 유니트의 상태를 보여준다. 아래의 표들에서 'X'는 don't care를 의미한다. 앞서의 설명에 따르면, 아래의 표 1에서 알 수 있듯이, S-래치 유니트(1521), L-래치 유니트(1522), 그리고 C-래치 유니트(1525)은 동일한 상태를 갖는다.
S-latch L-latch M-latch F-latch C-latch
1 1 x x 1
1 1 x x 1
0 0 x x 0
0 0 x x 0
C-래치 유니트(1525)에서 메모리 제어기(2000)로 데이터가 출력된 후, C-래치 유니트(1525)는 '0'의 값을 갖도록 초기화된다. 메모리 제어기(2000)는 불 휘발성 메모리 장치(1000)로부터 출력된 데이터에 대한 에러 검출 동작을 수행하며, 에러 검출 동작의 결과로서 에러 위치 정보 및 에러 플래그 정보(또는, 에러 플래그 비트)를 불 휘발성 메모리 장치(1000)로 제공한다. 에러 플래그 정보(또는, 에러 플래그 비트)는 '1'의 값을 갖는다. 에러 플로그 정보의 입력에 앞서 S-래치 유니트(1521)는 '0'로 초기화된다. 아래의 표 2는 L-래치 유니트(1522)의 값(읽혀진 데이터 비트의 값)과 C-래치 유니트(1525)의 값(에러 플래그 정보/비트)의 조합에 따른 경우들을 보여준다.
S-latch L-latch M-latch F-latch C-latch
0 1 x x 1
0 1 x x 0
0 0 x x 1
0 0 x x 0
C-래치 유니트(1525)에 로드된 '1'에 대응하는 L-래치 유니트(1522)의 값을 반전시킴으로써 에러 정정 동작이 달성되며, 이는 이하 상세히 설명될 것이다.
먼저, 제어 로직(1400)은 C-래치 유니트(1525)에 로드된 에러 플래그 비트를 반전시키고 반전된 비트를 S-래치 유니트(1521)에 저장하도록 페이지 버퍼(PB)를 제어한다. 에러 플래그 비트의 반전은 C-래치 유니트(1525)에서 S-래치 유니트(1521)로 데이터가 덤프되는 과정에서 행해질 것이다. 이러한 동작의 결과는 아래의 표 3과 같다.
S-latch L-latch M-latch F-latch C-latch
0 1 x x 1
1 1 x x 0
0 0 x x 1
1 0 x x 0
제어 로직(1400)은 S-래치 유니트(1521)의 값이 '0'이고 L-래치 유니트(1522)의 값이 '0'일 때 S-래치 유니트(1521)의 값 및 L-래치 유니트(1522)의 값이 '1'로 변경되도록 페이지 버퍼(PB)를 제어한다. 이러한 동작의 결과는 아래의 표 4와 같다.
S-latch L-latch M-latch F-latch C-latch
0 1 x x 1
1 1 x x 0
1 1 x x 1
1 0 x x 0
제어 로직(1400)은 S-래치 유니트(1521)의 값이 '0'일 때 L-래치 유니트(1522)의 값이 '0'로 변경되도록 페이지 버퍼(PB)를 제어한다. 이러한 동작의 결과는 아래의 표 5와 같다.
S-latch L-latch M-latch F-latch C-latch
0 0 x x 1
1 1 x x 0
1 1 x x 1
1 0 x x 0
L-래치 유니트(1522)에 저장된 데이터가 에러 정정된 데이터가 된다. 즉, 읽혀진 데이터 비트가 '1'의 값을 갖고 대응하는 에러 플래그 비트가 '1'의 값을 가질 때, 표 2 및 표 5에서 알 수 있듯이, L-래치 유니트(1522)의 값은 '1'에서 '0'로 변경된다. 읽혀진 데이터 비트가 '0'의 값을 갖고 대응하는 에러 플래그 비트가 '1'의 값을 가질 때, 표 2 및 표 5에서 알 수 있듯이, L-래치 유니트(1522)의 값은 '0'에서 '1'로 변경된다.
앞서 설명된 에러 정정 동작 또는 비트 플립 동작은 예시적인 것으로, 본 발명은 여기에 개시된 것에 국한되지 않는다. 에러 정정 동작 또는 비트 플립 동작은 페이지 버퍼의 구조, 에러 플래그 정보의 값, 등에 따라 다양하게 변경될 것이다.
도 8은 본 발명의 실시예에 따른 메모리 시스템의 복사 동작을 설명하기 위한 흐름도이고, 도 9는 도 8에서 설명되는 복사 동작시 에러 플래그 정보를 불 휘발성 메모리 장치로 전송하기 위한 타이밍도이다. 이하, 본 발명의 실시예에 따른 메모리 시스템의 복사 동작이 참조 도면들에 의거하여 상세히 설명될 것이다.
이후 설명되는 복사 동작은, 앞서 설명된 바와 같이, 메모리 셀 어레이(1100)의 제 1 저장 영역(예를 들면, 제 1 메모리 블록에 속한 하나의 페이지에 대응함)에서 제 2 저장 영역(예를 들면, 제 2 메모리 블록에 속한 하나의 페이지에 대응함)으로 데이터를 복사하는 동작을 의미한다. 복사 동작이라는 용어가 특정 동작에 제한되지 않음은 잘 이해될 것이다. 예를 들면, 복사 동작은 하나의 저장 영역에서 다른 저장 영역으로 데이터를 옮기는 모든 동작들을 포함하도록 해석될 것이다.
먼저, S100 단계에서, 페이지 버퍼 회로(1500)는 메모리 셀 어레이(1100)의 제 1 메모리 블록의 제 1 저장 영역(또는, 선택된 페이지)로부터 데이터를 읽는다. 읽혀진 데이터는 페이지 버퍼 회로(1500)의 S-래치 유니트들(1521)에 저장될 것이다. 읽혀진 데이터는 읽기 동작 동안 생길 수 있는 에러 비트들을 포함할 수 있다. 에러 정정 없이 제 2 메모리 블록의 제 2 저장 영역에 에러 비트들을 포함하는 읽혀진 데이터가 그대로 저장되는 경우, 제 2 저장 영역에 저장된 데이터의 에러 비트들의 수는 메모리 제어기(2000)의 에러 정정 범위를 초과할 수 있다. 즉, 데이터 신뢰성이 저하될 수 있다. 그러한 까닭에, 읽혀진 데이터에 대한 에러 검출 및 정정 동작이 행해진다. 이를 위해서, S110 단계에서, 읽혀진 데이터는 메모리 제어기(2000)로 출력된다. 앞서 설명된 바와 같이, 읽혀진 데이터는 외부로 출력되기 이전에 L-래치 유니트들(1522) 및 C-래치 유니트들(1525)로 덤프된다. C-래치 유니트들(1525)에 저장된 읽혀진 데이터가 메모리 제어기(2000)로 출력된다.
S120 단계에서, 메모리 제어기(2000)는 읽혀진 데이터가 에러 비트들을 포함하는 지의 여부를 판별한다. 이는 메모리 제어기(2000)의 에러 검출 및 정정 회로(2500)를 통해 행해진다. 읽혀진 데이터가 에러 비트들을 포함하지 않는 것으로 판별되면, 절차는 S160 단계로 진행한다. 읽혀진 데이터가 에러 비트들을 포함하는 것으로 판별되면, 에러 검출 및 정정 회로(2500)는 에러 위치 정보 및 에러 플래그 정보를 발생한다. 에러 검출 및 정정 회로(2500)는 에러 위치 정보 및 에러 플래그 정보를 발생하기 위한 에러 검출 동작을 수행한다. 즉, 복사 동작시, 에러 검출 및 정정 회로(2500)는 에러 정정 동작을 수행할 필요성이 없다. S140 단계에서, 메모리 제어기(2000)에서 불 휘발성 메모리 장치(1000)로 에러 위치 정보 및 에러 플래그 정보가 전송된다. 이는 도 9을 참조하여 이하 상세히 설명될 것이다.
불 휘발성 메모리 장치(1000)로부터 출력된 읽혀진 데이터는 하나 또는 그 보다 많은 에러 비트들을 포함할 수 있다. 에러 위치 정보 및 에러 플래그 정보는 에러 비트 단위로 반복적으로 불 휘발성 메모리 장치(1000)로 전송된다. 도 9에 도시된 바와 같이, 에러 비트들 중 첫 번째 에러 비트에 대응하는 에러 위치 정보는 제 1 명령(86h)에 이어서 전송되는 어드레스(C1C2R1R2R3)에 포함되며, 에러 플래그 정보(EFI)는 어드레스(C1C2R1R2R3)에 이어서 전송된다. 여기서, 어드레스(C1C2R1R2R3) 중 열 어드레스(C1C2)는 에러 위치 정보를 포함한다. 어드레스(C1C2R1R2R3)는 제 1 저장 영역을 포함하는 메모리 블록(또는 플랜/매트)를 지정하기 위한 행 어드레스(R1R2R3)를 포함한다. 이러한 시퀀스는 하나의 에러 비트와 관련되어 행해진다. 나머지 에러 비트들 각각에 대응하는 에러 위치 정보는, 도 9에 도시된 바와 같이, 제 1 명령(86h)에 이어서 전송되는 어드레스(C1C2)에 포함되며, 에러 플래그 정보(EFI)는 어드레스(C1C2)에 이어서 전송된다. 여기서, 어드레스(C1C2) 즉, 열 어드레스(C1C2)는 에러 위치 정보를 포함한다. 모든 에러 비트들에 대한 에러 플래그 정보가 도 9에 도시된 타이밍에 따라 불 휘발성 메모리 장치(1000)로 전송된 후, 제 2 명령(12h)이 메모리 제어기(2000)에서 불 휘발성 메모리 장치(1000)로 전송된다. 이후, 아래에서 설명되는 바와 같이, 에러 정정 동작(또는, 비트 플립 동작) 및 프로그램 동작이 행해진다.
다시 도 8을 참조하면, S140 단계에서 이어서 S150 단계에서, 불 휘발성 메모리 장치(1000)는 메모리 제어기(2000)에서 제공된 에러 플래그 정보에 의거하여 에러 정정 동작(또는, 비트 플립 동작)을 수행한다. 에러 정정 동작(또는, 비트 플립 동작)은 표 2 내지 표 5을 참조하여 설명된 것과 실질적으로 동일하게 행해지며, 그것에 대한 설명은 그러므로 생략된다. S160 단계에서, 에러 정정된 데이터는 메모리 셀 어레이(1100)의 제 2 저장 영역에 프로그램/저장된다. 이후, 절차는 종료된다.
앞서의 설명의 따르면, 에러 검출은 메모리 제어기(2000)에 의해서 행해지고, 에러 정정은 불 휘발성 메모리 장치(1000) 내에서 행해진다. 즉, 에러 검출 이후 메모리 제어기(2000)에 의해서 에러 정정이 행해지지 않기 때문에(또는, 에러 검출 이후 불 휘발성 메모리 장치(1000)에 의해서 에러 정정이 행해지기 때문에), 불 휘발성 메모리 장치(1000)로부터 출력된 데이터(또는, 정정된 데이터)를 모두 불 휘발성 메모리 장치(1000)로 전송할 필요가 없다. 이는 메모리 제어기(2000)에서 불 휘발성 메모리 장치(1000)로 데이터를 전송하는 데 걸리는 시간 그리고/또는 메모리 제어기(2000)에서 불 휘발성 메모리 장치(1000)로 데이터를 전송하는 데 소모되는 전력이 감소됨을 의미한다.
도 10은 본 발명의 다른 실시예에 따른 도 8에서 설명되는 복사 동작시 에러 플래그 정보를 불 휘발성 메모리 장치로 전송하기 위한 타이밍도이다.
에러 비트 단위로 에러 플래그 정보가 전송되는 도 9의 전송 방식과 달리, 에러 플래그 정보(에러 비트들에 각각 대응하는 에러 플래그 비트들을 포함함)를 포함하는 데이터(이하, 필드 데이터라 칭함)가 명령(86h) 및 어드레스(C1C2R1R2R3)에 이어서 불 휘발성 메모리 장치(1000)로 전송된다. 그러한 필드 데이터의 크기는 읽혀진 데이터의 크기와 동일할 것이다. 필드 데이터에 있어서, 에러 위치 정보에 대응하는 위치의 값(즉, 에러 플래그 비트의 값)은 로직 값 '1' (로직 값이 에러 비트임을 나타냄)이고, 나머지 위치들의 값들은 반전된 로직 값 '0' (로직 값이 논-에러 비트(non-error bit)임을 나타냄)일 것이다. 예를 들면, 데이터가 메모리 제어기(2000)에서 불 휘발성 메모리 장치(1000)로 바이트 단위로 전송되는 경우, 에러 위치 정보에 대응하는 위치는 8개의 데이터 비트들(예를 들면, D0~D7) 중 하나(예를 들면, D1)에 대응할 것이다. 에러 플래그 정보를 포함하는 필드 데이터가 전송되는 방식의 경우, 버스 천이 횟수가 매우 적을 것이다. 이는 데이터 전송시 소모되는 전력이 감소함을 의미한다. 또한, 에러 검출이 메모리 제어기에 의해서 행해지고, 에러 정정이 불 휘발성 메모리 장치 내에서 행해지기 때문에, 메모리 제어기에서 불 휘발성 메모리 장치로 데이터를 전송하는 데 걸리는 시간 그리고/또는 메모리 제어기에서 불 휘발성 메모리 장치로 데이터를 전송하는 데 소모되는 전력이 감소된다.
도 11은 본 발명의 실시예에 따른 메모리 시스템의 에러 검출 동작 및 에러 정정 동작을 개략적으로 설명하기 위한 도면이다.
메모리 셀 어레이(MCA)의 제 1 저장 영역(예를 들면, 제 1 메모리 블록의 한 페이지에 대응함)의 데이터는 메인 버퍼(MB)를 통해 읽혀지고, 메인 버퍼(MB)에 저장된 읽혀진 데이터는 캐쉬 버퍼(CB)를 통해 메모리 제어기(2000)로 전송된다. 여기서, 메인 버퍼(MB)는 S-래치 유니트들(1521)로 구성될 수 있고, 캐쉬 버퍼(CB)는 C-래치 유니트들(1525)로 구성될 수 있다. 하지만, 본 발명이 그것에 국한되지 않음은 잘 이해될 것이다. 메인 버퍼(MB)와 캐쉬 버퍼(CB)는 페이지 버퍼 회로(1500)를 구성한다. 메모리 제어기(2000)로 전송된 데이터는 랜덤화기/디-랜덤화기(2600)를 통해 디-랜덤화되며, 에러 검출 및 정정 회로(2500)는 랜덤화기/디-랜덤화기(2600)에 의해서 디-랜덤화된 데이터에 대한 에러 검출 동작을 수행한다. 여기서, 불 휘발성 메모리 장치(1000)로부터 출력되는 읽혀진 데이터(RD)의 디-랜덤화된 데이터는 버퍼 메모리(2400)에 저장될 것이다. 에러 검출 동작의 결과로서, 에러 플래그 정보가 불 휘발성 메모리 장치(1000)의 캐쉬 버퍼(CB)로 전송된다. 여기서, 에러 플래그 정보는 도 9에서 설명된 방식 또는 도 10에서 설명된 방식에 따라 메모리 제어기(2000)에서 불 휘발성 메모리 장치(1000)로 전송될 것이다. 에러 플래그 정보 또는 에러 플래그 정보를 포함한 필드 데이터는 랜덤화기/디-랜덤화기(2600)를 경유하지 않고 직접 불 휘발성 메모리 장치(1000)로 전송된다. 캐쉬 버퍼(CB)에 저장된 에러 플래그 정보에 의거하여 비트 플립 동작(또는, 에러 정정 동작)이 행해지며, 비트 플립 동작(또는, 에러 정정 동작)을 통해 정정된 데이터는 메인 버퍼(MB)를 통해 메모리 셀 어레이(MCA)의 제 2 저장 영역(예를 들면, 제 2 메모리 블록의 한 페이지에 대응함)에 저장된다. 비트 플립 동작(또는, 에러 정정 동작)은 표 3 내지 도 5에서 설명된 것과 실질적으로 동일하며, 그것에 대한 설명은 그러므로 생략된다.
예시적인 실시예에 있어서, 메모리 제어기(2000)에서 제공되는 에러 플래그 정보는 페이지 버퍼 회로(1500)의 캐쉬 버퍼(CB)에 실리게 된다. 이때, 메인 버퍼(MB)에는 읽혀진 데이터가 저장되어 있다. 즉, 캐쉬 버퍼(CB)에 실리는 정보는 메인 버퍼(MB)에 실린 데이터 비트들이 잘못되었는 지의 여부를 나타내는 값이다.
예시적인 실시예에 있어서, 도 11에서 설명된 복사 동작은 점선으로 표기된 랜덤화기/디-랜덤화기(2600)를 포함하는 메모리 제어기(예를 들면, 도 3에 도시된 것에 대응함) 뿐만 아니라 점선으로 표기된 랜덤화기/디-랜덤화기(2600)를 포함하지 않는 메모리 제어기(예를 들면, 도 2에 도시된 것에 대응함)에 적용 가능하다. 랜덤화기/디-랜덤화기(2600)를 포함하는 메모리 제어기(2000)에 있어서, 만약 제 1 저장 영역을 포함하는 제 1 메모리 블록 및 제 2 저장 영역을 포함하는 제 2 메모리 블록에 대한 랜덤화를 위한 시드들이 서로 동일한 경우, 에러 플래그 정보에 대한 랜덤화는 행해지지 않는다.
예시적인 실시예에 있어서, 시드값은 랜덤화된 데이터가 저장될 영역의 메모리 셀들에 저장된다.
복사 동작인 카피백 동작(또는 카피백 프로그램 동작)이 미국특허공보 제7941586호에 개시되어 있으며, 이 출원의 레퍼런스로 포함된다.
도 12는 본 발명의 다른 실시예에 따른 메모리 시스템의 에러 검출 동작 및 에러 정정 동작을 개략적으로 설명하기 위한 도면이다.
메모리 셀 어레이(MCA)의 제 1 저장 영역의 데이터는 메인 버퍼(MB)를 통해 읽혀지고, 메인 버퍼(MB)에 저장된 읽혀진 데이터는 캐쉬 버퍼(CB)를 통해 메모리 제어기(2000)로 전송된다. 여기서, 메인 버퍼(MB)는 S-래치 유니트들(1521)로 구성될 수 있고, 캐쉬 버퍼(CB)는 C-래치 유니트들(1525)로 구성될 수 있다. 하지만, 본 발명이 그것에 국한되지 않음은 잘 이해될 것이다. 여기서, 불 휘발성 메모리 장치(1000)로부터 출력되는 읽혀진 데이터(RD)의 디-랜덤화된 데이터는 버퍼 메모리(2400)에 저장될 것이다. 메모리 제어기(2000)로 전송된 데이터는 랜덤화기/디-랜덤화기(2600)를 통해 디-랜덤화되며, 에러 검출 및 정정 회로(2500)는 랜덤화기/디-랜덤화기(2600)에 의해서 디-랜던화된 데이터에 대한 에러 검출 동작을 수행한다. 만약 메모리 셀 어레이(MCA)의 제 1 저장 영역과 관련된 랜덤화 동작을 위한 시드값이 제 2 저장 영역과 관련된 랜덤화 동작을 위한 시드값과 일치하지 않으면, 메모리 제어기(2000)는 읽혀진 데이터에 대한 에러 검출 동작 뿐만 아니라 에러 정정 동작을 수행한다. 여기서, 불 휘발성 메모리 장치(1000)로부터 출력되는 읽혀진 데이터(RD)의 디-랜덤화된 데이터는 버퍼 메모리(2400)에 저장될 것이다. 읽혀진 데이터의 에러는 에러 검출 및 정정 회로(2500)에 의해서 정정된다. 정정된 데이터는 랜덤화기/디-랜덤화기(2600)를 통해 불 휘발성 메모리 장치(1000)의 캐쉬 버퍼(CB)로 전송된다. 캐쉬 버퍼(CB)에 저장된 에러 정정된 데이터는 메인 버퍼(MB)로 전송되고, 메인 버퍼(MB)로 전송된 데이터(즉, 에러 정정된 데이터)는 메모리 셀 어레이(MCA)의 제 2 저장 영역에 저장된다.
앞서 설명된 에러 검출 동작 및 에러 정정 동작을 포함하는 복사 동작은 다양한 메모리 시스템들에 적용 가능하다. 이하, 앞서 설명된 에러 검출 동작 및 에러 정정 동작을 포함하는 복사 동작이 적용되는 메모리 시스템의 일례가 설명될 것이다.
도 13a는 멀티-레벨 메모리 장치에 적용되는 어드레스 스크램블 방식의 일예를 설명하기 위한 도면이다.
각 메모리 셀에 저장되는 데이터 비트들의 수가 증가됨에 따라, 멀티-비트(또는, 멀티-레벨) 데이터를 저장하는 메모리 장치(이하, 멀티-레벨 메모리 장치라 칭함)의 신뢰성을 확보하는 것이 점차적으로 어려워지고 있다. 신뢰성을 떨어뜨리는 요인들 중 대표적인 하나는 인접 메모리 셀들 사이의 커플링으로 인한 문턱 전압들의 변화일 것이다. 예를 들면, 이전에 프로그램된 메모리 셀의 문턱 전압은 프로그램된 메모리 셀에 인접한 메모리 셀이 프로그램될 때 생기는 커플링으로 인해 변화될 수 있다.
하나의 메모리 셀에 3-비트 데이터가 저장된다는 가정 하에서 어드레스 스크램블 방식이 설명될 것이다. 도시의 편의상, 도 13a에는 단지 4개의 워드 라인들(WL0~WL3)이 도시되어 있다. 워드 라인들(WL0~WL3) 각각에는 복수의 메모리 셀들(MC)이 연결될 것이다. 먼저, 하위 2-비트 데이터가 첫 번째 워드 라인(WL0)에 연결된 메모리 셀들 각각에 저장되는 1-스텝 프로그램 동작이 수행될 것이다. 즉, 1-스텝 프로그램 동작 동안, 첫 번째 워드 라인(WL0)에 연결된 메모리 셀들에는 2-페이지 데이터가 저장될 것이다. 이는 도 13a에서 ①로 표기되어 있다. 그 다음에, 두 번째 워드 라인(WL1)에 연결된 메모리 셀들에 대해서 1-스텝 프로그램 동작이 수행될 것이다. 이는 도 13a에서 ②로 표기되어 있다. 두 번째 워드 라인(WL1)에 대한 1-스텝 프로그램 동작이 수행된 후, 두 번째 워드 라인(WL1)의 아래에 위치하고 하위 2-비트 데이터가 프로그램된 첫 번째 워드 라인(WL0)에 연결된 메모리 셀들에 상위 1-비트 데이터가 저장되는 거친 프로그램 동작(coarse program operation)(또는, 두번째 스텝 프로그램(2-step programming)이라 불림)이 수행될 것이다. 이는 도 13a에서 ③로 표기되어 있다. 첫 번째 워드 라인(WL0)에 연결된 메모리 셀들에 대해서 거친 프로그램 동작이 수행된 후, 세 번째 워드 라인(WL2)에 대한 1-스텝 프로그램 동작이 수행되고, 이는 도 13a에서 ④로 표기되어 있다. 세 번째 워드 라인(WL2)에 대한 1-스텝 프로그램 동작 이후, 하위 2-비트 데이터가 프로그램된 두 번째 워드 라인(WL1)에 연결된 메모리 셀들에 상위 1-비트 데이터가 저장되는 거친 프로그램 동작이 수행될 것이다. 이는 도 13a에서 ⑤로 표기되어 있다. 그 후, 첫 번째 워드 라인(WL0)에 대한 정교한 프로그램 동작(fine program operation)이 수행될 것이다. 이는 도 13a에서 ⑥로 표기되어 있다. 이후, 1-스텝, 거친, 그리고 정교한 프로그램 동작들이 앞서 설명된 프로그램 순서(도 13a 참조)에 따라 순차적으로 수행될 것이다. 도 13에서 설명된 프로그램 순서에 따라 워드 라인들이 선택되는 방식을 어드레스 스크램블 방식이라 칭한다. 어드레스 스크램블 방식이 여기에 개시된 것에 국한되지 않음은 잘 이해될 것이다.
1-스텝 프로그램 동작과 거친 프로그램 동작이 완료되면, M-비트 데이터(M은 2 또는 그 보다 큰 정수)에 대응하는 문턱 전압 분포들(예를 들면, 2M개의 문턱 전압 분포들)이 모두 형성될 것이다. 비록 거친 프로그램 동작이 완료됨에 따라 모든 문턱 전압 분포들이 형성되더라도, 문턱 전압 분포들 사이의 마진은 문턱 전압 분포들을 명확하게 구분하기에 충분하지 않을 것이다. 문턱 전압 분포들을 명확하게 구분하기에 충분한 마진을 확보하기 위해서 정교한 프로그램 동작이 수행될 것이다. 정교한 프로그램 동작은 각 문턱 전압 분포의 폭을 좁히기 위해 행해지며, 거친 프로그램 동작에서 사용되는 문턱 전압 분포들의 검증 전압들보다 소정 전압만큼 각각 높은 검증 전압들을 사용하여 행해질 것이다. 이러한 프로그램 방식을 통해 인접한 메모리 셀들 사이의 커플링을 줄이는 것이 가능하다. 이러한 프로그램 방법/알고리즘은 재프로그램 방법/알고리즘(reprogram method/algorithm)이라 칭한다.
예시적인 실시예에 있어서, 3-비트 데이터를 위한 재프로그램 방법 즉, 1-스텝 프로그래밍, 거친 프로그래밍, 그리고 정교한 프로그래밍이 2-비트 데이터 및 4-비트 데이터의 재프로그램 방법에도 모두 적용됨은 잘 이해될 것이다.
이러한 재프로그램 방법에 의하면, 임의의 워드 라인에 대한 정교한 프로그램 동작이 종료될 때까지 임의의 워드 라인의 메모리 셀들에 저장된 데이터를 유지할 필요가 있다. 예를 들면, 1-스텝 프로그램 동작은 메모리 제어기에서 멀티-비트 메모리 장치에 제공되는 데이터에 의거하여 행해지고, 거친 프로그램 동작은 1-스텝 프로그램 동작을 통해 저장된 데이터와 메모리 제어기에서 제공되는 데이터에 의거하여 행해질 것이다. 정교한 프로그램 동작은 1-스텝 프로그램 동작과 거친 프로그램 동작을 통해 저장된 데이터에 의거하여 행해질 것이다. 하지만, 앞서 설명된 바와 같이, 1-스텝 프로그램 동작과 거친 프로그램 동작을 통해 저장된 데이터를 정확하게 읽는 것은 어렵다. 이는 정교한 프로그램 동작에 필요한 데이터는 메모리 제어기에서 멀티-비트 메모리 장치로 제공되어야 함을 의미한다. 그러한 까닭에, 임의의 워드 라인에 대한 정교한 프로그램 동작이 종료될 때까지 임의의 워드 라인의 메모리 셀들에 저장된 데이터가 메모리 제어기에 의해서 유지될 것이다. 이는 정교한 프로그램 동작에 필요한 데이터를 유지하기 위한 큰 용량의 버퍼 메모리가 메모리 제어기에 제공됨을 의미한다. 버퍼 메모리의 용량을 줄이기 위해서 이후 설명되는 온-칩 버퍼 프로그래밍(On-chip Buffered Programming: OBP) 기술이 메모리 시스템에 적용될 수 있다.
도 13b는 각 메모리 셀이 당 3-비트 데이터를 저장하고 3-스텝 프로그램 방식에 따라 프로그램 동작이 수행될 때 변화되는 문턱 전압 분포들을 보여주는 도면이다. 이하, 3-스텝 프로그램 방식에 따른 프로그램 방법이 참조 도면들에 의거하여 설명될 것이다.
먼저, 선택된 워드 라인(예를 들면, WL0, 도 13a 참조)의 메모리 셀들에는 2-페이지 데이터(즉, 제 1 및 제 2 페이지 데이터)가 동시에 저장될 것이다. 이때, 도 13b의 박스(31)에 도시된 바와 같이, 소거 상태(E)에 대응하는 문턱 전압 분포에 속한 메모리 셀들은 프로그램될 데이터에 따라 프로그램 상태들(Q1, Q2, Q3)에 각각 대응하는 문턱 전압 분포들에 속한 문턱 전압들을 갖도록 프로그램될 것이다.
앞서 설명된 바와 같이, 워드 라인(예를 들면, WL0)에 속한 1-스텝 프로그램된 메모리 셀들의 거친 프로그램 동작은 인접한 워드 라인(예를 들면, WL1)에 속한 메모리 셀들의 1-스텝 프로그램 동작 이후에 행해질 것이다. 이때, 도 13b의 박스(31)의 실선으로 표시된 같이, 워드 라인(예를 들면, WL0)에 속한 1-스텝 프로그램된 메모리 셀들의 산포들이 인접한 워드 라인(예를 들면, WL1)에 속한 메모리 셀들이 프로그램될 때 생기는 커플링으로 인해 넓어질 것이다.
그 다음에, 선택된 워드 라인(WL0)의 메모리 셀들에는 1-페이지 데이터가 저장될 것이다. 이때, 도 13b의 박스(32)에 도시된 바와 같이, 각 상태에 대응하는 문턱 전압 분포에 속한 메모리 셀들은 대응하는 문턱 전압 산포들에 속한 문턱 전압들을 갖도록 프로그램될 것이다. 예를 들면, 소거 상태(E)에 대응하는 문턱 전압 분포에 속한 메모리 셀들은 프로그램될 데이터에 따라 프로그램 상태(P1)에 대응하는 문턱 전압 분포에 속한 문턱 전압들을 갖도록 프로그램될 것이다. 프로그램 상태(Q1)에 대응하는 문턱 전압 분포에 속한 메모리 셀들은 프로그램될 데이터에 따라 프로그램 상태들(P2, P3)에 각각 대응하는 문턱 전압 분포들에 속한 문턱 전압들을 갖도록 프로그램될 것이다. 프로그램 상태(Q2)에 대응하는 문턱 전압 분포에 속한 메모리 셀들은 프로그램될 데이터에 따라 프로그램 상태들(P4, P5)에 각각 대응하는 문턱 전압 분포들에 속한 문턱 전압들을 갖도록 프로그램될 것이다. 프로그램 상태(Q3)에 대응하는 문턱 전압 분포에 속한 메모리 셀들은 프로그램될 데이터에 따라 프로그램 상태들(P6, P7)에 각각 대응하는 문턱 전압 분포들에 속한 문턱 전압들을 갖도록 프로그램될 것이다.
앞서 설명된 바와 같이, 워드 라인(예를 들면, WL0)에 속한 거친 프로그램된 메모리 셀들의 정교한 프로그램 동작은 인접한 워드 라인들(예를 들면, WL2, WL1)에 대한 1-스텝 프로그램 동작 및 거친 프로그램 동작 이후에 행해질 것이다. 이때, 도 13b의 박스(32)의 실선으로 도시된 바와 같이, 워드 라인(예를 들면, WL0)에 속한 거친 프로그램된 메모리 셀들의 산포들이 인접한 워드 라인들(예를 들면, WL2, WL1)에 속한 메모리 셀들이 프로그램될 때 생기는 커플링으로 인해 넓어질 것이다. 이러한 이유로, 거친 프로그램된 메모리 셀들로부터 데이터를 정확하게 읽는 것이 어렵다.
워드 라인(WL0)에 속한 메모리 셀들이 도 13b의 박스(33)에 도시된 바와 같은 최종 문턱 전압 분포들(P1)), 을 갖도록 프로그램될 것이다. 이러한 동작은 정교한 프로그램 동작이라 불린다. 앞서 설명된 바와 같이, 정교한 프로그램 동작은 이전에 프로그램된 데이터(예를 들면, 제 1 내지 제 3 페이지 데이터)를 필요로 하며, 이는 워드 라인(WL0)에 속한 메모리 셀들로부터 이전에 프로그램된 데이터를 정확하게 읽는 것이 어렵기 때문에 메모리 제어기로부터 제공되는 데이터(또는, 메모리 장치에 의해서 유지되는 데이터)에 의거하여 행해질 것이다. 도 13b의 박스(33)의 실선으로 도시된 바와 같이, 정교한 프로그램된 메모리 셀들 역시 인접한 워드 라인들에 속한 메모리 셀들의 산포들은 프로그램될 때 생기는 커플링으로 인해 넓어질 수 있다.
이후, 각 워드 라인에 대한 1-스텝 프로그램 동작, 거친 프로그램 동작, 그리고 정교한 프로그램 동작이 도 13a에서 설명된 프로그램 순서에 따라 행해지며, 이는 도 13b에서 설명된 것과 동일한 방식으로 행해질 것이다.
도 14는 본 발명의 예시적인 실시예에 따른 데이터 저장 시스템을 개략적으로 보여주는 블록도이다.
도 14를 참조하면, 데이터 저장 시스템(3000)은 불 휘발성 메모리 장치로서 멀티-비트 메모리 장치(3100), 메모리 제어기(3200), 그리고 호스트(3300)를 포함할 것이다. 멀티-비트 메모리 장치(3100)는 하나 또는 그 보다 많은 메모리 칩들로 구성될 수 있다. 멀티-비트 메모리 장치(3100)와 메모리 제어기(3200)는, 데이터 저장 장치로서, 메모리 카드, 반도체 디스크(Solid State Drive: SSD), 메모리 스틱, 또는 그와 같은 것을 구성할 것이다. 멀티-비트 메모리 장치(3100)는 복수의 메모리 블록들(섹터들/뱅크들)을 포함하며, 각 메모리 블록은 행들과 열들로 배열된 메모리 셀들을 포함할 것이다. 메모리 셀들 각각은 멀티-비트(또는, 멀티-레벨) 데이터를 저장할 것이다. 메모리 셀들은 2차원 어레이 구조를 갖도록 또는 3차원/수직 어레이 구조를 갖도록 배열될 것이다. 예시적인 3차원 어레이 구조가 미국특허 공개번호 제20080/0023747호에 "SEMICONDUCTOR MEMORY DEVICE WITH MEMORY CELLS ON MULTIPLE LAYERS"라는 제목으로 그리고 미국특허 공개번호 제2008/0084729호에 "SEMICONDUCTOR DEVICE WITH THREE-DIMENSIONAL ARRAY STRUCTURE"라는 제목으로 각각 게재되어 있으며, 이 출원의 레퍼런스로 포함될 것이다.
본 발명의 예시적인 실시예에 따른 멀티-비트 메모리 장치(3100)의 메모리 블록들은 제 1 메모리 영역(3101)과 제 2 메모리 영역(3102)으로 구분될 것이다. 여기서, 제 1 및 제 2 메모리 영역들(3101, 3102)의 구분이 물리적인 것이 아니라 논리적으로 행해짐은 잘 이해될 것이다. 제 1 및 제 2 메모리 영역들(3101, 3102)의 구분은 논리적으로 가변 가능하다. 제 1 메모리 영역(3101)에 속한 메모리 블록들은 제 2 메모리 영역(3102)에 속한 메모리 블록들과 다른 방식으로 프로그램될 것이다. 예를 들면, 제 1 메모리 영역(3101)에 속한 메모리 블록들은 단일-비트 프로그램 방식(이하, SLC 프로그램 방식이 칭함)에 따라 프로그램되고, 제 2 메모리 영역(3102)에 속한 메모리 블록들은 멀티-비트 프로그램 방식(이하, MLC 프로그램 방식이라 칭함)에 따라 프로그램될 것이다. 다시 말해서, 제 1 메모리 영역(3101)에 속한 메모리 셀들 각각은 1-비트 데이터를 저장하고, 제 2 메모리 영역(3102)에 속한 메모리 셀들 각각은 M-비트 데이터(M은 2 또는 그 보다 큰 정수)를 저장할 것이다. 결과적으로, 제 1 메모리 영역(3101)에 속한 메모리 셀들 각각은 제 2 메모리 영역(3102)에 속한 메모리 셀들 각각에 저장되는 M-비트 데이터보다 작은 수의 데이터 비트들을 저장할 것이다.
계속해서 도 14를 참조하면, 메모리 제어기(3200)는 호스트(3300)의 요청에 응답하여 멀티-비트 메모리 장치(3100)를 제어하도록 구성될 것이다. 메모리 제어기(3200)는 버퍼 메모리(3201)와 에러 검출 및 정정 회로(3202)를 포함할 것이다. 버퍼 메모리(3201)는 호스트(3300)로부터 전송된 데이터를 임시 저장하는 데 그리고 멀티-비트 메모리 장치(3100)로부터 읽혀진 데이터를 임시 저장하는 데 사용될 것이다. 에러 검출 및 정정 회로(3202)는 멀티-비트 메모리 장치(3100)에 저장될 데이터를 부호화하도록 그리고 멀티-비트 메모리 장치(3100)로부터 읽혀진 데이터를 복호화하도록 구성된다. 부호화는 패리티 정보를 생성하는 동작을 포함하며, 패리티 정보는 필드 단위로 생성될 수 있다. 한 페이지의 데이터는 하나 또는 그 보다 많은 필드들로 구성될 수 있다. 복호화는 에러 검출 동작과 에러 정정 동작을 포함할 것이다. 앞서 설명된 복사 동작시, 에러 검출 동작은 메모리 제어기(3200)에 의해서 행해지고, 에러 정정 동작은 멀티-비트 메모리 장치(3100)에 의해서 행해질 것이다.
메모리 제어기(3200)는 정적 스케쥴링 방식(static scheduling manner)으로 메모리 장치(3100)의 프로그램 동작을 제어할 것이다. 예를 들면, 제 1 메모리 영역(3101)에 대한 최소 프로그램 단위의 데이터가 버퍼 메모리(3201)에 저장되면, 메모리 제어기(3200)는 최소 프로그램 단위의 데이터가 제 1 메모리 영역(3101)에 저장되도록 멀티-비트 메모리 장치(3100)를 제어할 것이다. 이는 버퍼 프로그램 동작이라 칭한다. 제 2 메모리 영역(3102)에 대한 최소 프로그램 단위의 데이터가 제 1 메모리 영역(3101)에 모이면, 메모리 제어기(3200)는 제 2 메모리 영역(3102)에 대한 최소 프로그램 단위의 데이터가 제 2 메모리 영역(3102)에 저장되도록 멀티-비트 메모리 장치(3100)를 제어할 것이다. 이는 메인 프로그램 동작이라 칭한다. 버퍼 프로그램 동작과 메인 프로그램 동작은 온-칩 버퍼 프로그래밍 동작을 구성한다.
본 발명의 예시적인 실시예에 따르면, 메인 프로그램 동작은 제 1 메모리 영역(3101)에서 읽혀진 데이터가 제 2 메모리 영역(3102)에 복사되기 이전에 행해지는 에러 검출 동작과 에러 정정 동작을 포함할 것이다. 에러 검출 동작은 메모리 제어기(3200)에 의해서 행해지고, 에러 정정 동작은 멀티-비트 메모리 장치(3100)에 의해서 행해질 것이다. 이는 이후 상세히 설명될 것이다.
예시적인 실시예에 있어서, 제 1 메모리 영역(3101)에 대한 최소 프로그램 단위와 제 2 메모리 영역(3102)에 대한 최소 프로그램 단위는 프로그램 방식, 셀 당 비트 수, 등에 따라 다양하게 결정될 것이다. 제 1 메모리 영역(3101)에 대한 최소 프로그램 단위는 제 2 메모리 영역(3102)에 대한 최소 프로그램 단위와 다르다.
예시적인 실시예에 있어서, 버퍼 프로그램 동작을 통해 제 1 메모리 영역(3101)에 데이터를 저장하고, 메인 프로그램 동작을 통해 제 2 메모리 영역(3102)에 데이터를 저장함으로써 메모리 제어기(3200)의 버퍼 메모리(3201)의 크기를 최소화시킬 수 있다. 다시 말해서, 버퍼 메모리(3201)에 정교한 프로그램 동작을 위한 데이터를 유지할 필요가 없다. 그러한 까닭에, 메모리 제어기(3200)의 버퍼 메모리(3201)의 크기를 최소화시킬 수 있다.
도 15a 내지 도 15d는 본 발명의 예시적인 실시예에 따른 멀티-비트 메모리 장치의 제 1 및 제 2 메모리 영역들에 대한 다양한 조합들을 설명하기 위한 도면들이다. 도면에서, "BP"는 제 1 메모리 영역(3101)에 대한 버퍼 프로그래밍을 나타내며, "MP"는 제 2 메모리 영역(3102)에 대한 메인 프로그래밍을 나타낸다.
앞서 설명된 바와 같이, 멀티-비트 메모리 장치(3100)는 제 1 메모리 영역(3101)과 제 2 메모리 영역(3102)을 포함할 것이다. 여기서, 제 1 메모리 영역(3101)과 제 2 메모리 영역(3102)는 멀티-비트 메모리 장치(3100)의 메모리 셀 어레이를 구성할 것이다. 비록 도면에는 도시되지 않았지만, 메모리 셀 어레이는 더 많은 영역들(예를 들면, 메타 영역, 예비 영역, 등)을 포함할 것이다. 메모리 셀 어레이의 메모리 영역들이 물리적으로 구분되는 것이 아니라 논리적으로 구분된다는 것은 잘 이해될 것이다. 이는 메모리 제어기(3200)의 어드레스 맵핑에 따라 영역들이 정의됨을 의미한다.
도 15a를 참조하면, 셀 당 3-비트 데이터를 저장하는 멀티-비트 메모리 장치의 경우, 제 1 메모리 영역(3101)은 1-비트 데이터를 각각 저장하는 메모리 셀들로 구성되고, 제 2 메모리 영역(3102)은 3-비트 데이터를 각각 저장하는 메모리 셀들로 구성될 수 있다. 이 경우, 버퍼 프로그래밍은 SLC 프로그램 방식에 따라 행해질 것이다. 메인 프로그래밍은 앞서 설명된 MLC 프로그램 방식에 따라 행해질 것이다.
도 15b를 참조하면, 셀 당 4-비트 데이터를 저장하는 멀티-비트 메모리 장치의 경우, 제 1 메모리 영역(3101)은 1-비트 데이터를 각각 저장하는 메모리 셀들로 구성되고, 제 2 메모리 영역(3102)은 4-비트 데이터를 각각 저장하는 메모리 셀들로 구성될 수 있다. 이 경우, 버퍼 프로그래밍은 SLC 프로그램 방식에 따라 행해질 것이다. 메인 프로그래밍은 앞서 설명된 MLC 프로그램 방식에 따라 행해질 것이다.
도 15c를 참조하면, 셀 당 3-비트 데이터를 저장하는 멀티-비트 메모리 장치의 경우, 제 1 메모리 영역(3101)은 2-비트 데이터를 각각 저장하는 메모리 셀들로 구성되고, 제 2 메모리 영역(3102)은 3-비트 데이터를 각각 저장하는 메모리 셀들로 구성될 수 있다. 이 경우, 버퍼 프로그래밍은 일반적인 또는 앞서 설명된 MLC 프로그램 방식에 따라 행해질 것이다. 메인 프로그래밍은 앞서 설명된 MLC 프로그램 방식(예를 들면, 재프로그램 방식)에 따라 행해질 것이다.
도 15d를 참조하면, 셀 당 4-비트 데이터를 저장하는 멀티-비트 메모리 장치의 경우, 제 1 메모리 영역(3101)은 2-비트 데이터를 각각 저장하는 메모리 셀들로 구성되고, 제 2 메모리 영역(3102)은 4-비트 데이터를 각각 저장하는 메모리 셀들로 구성될 수 있다. 이 경우, 버퍼 프로그래밍은 일반적인 또는 앞서 설명된 MLC 프로그램 방식에 따라 행해질 것이다. 메인 프로그래밍은 앞서 설명된 MLC 프로그램 방식(예를 들면, 재프로그램 방식)에 따라 행해질 것이다.
예시적인 실시예에 있어서, 도 15a 내지 도 15d에 도시된 제 1 및 제 2 메모리 영역들(3101, 3102)의 정의가 여기에 개시된 것에 국한되지 않음은 잘 이해될 것이다. 예를 들면, 데이터 저장 시스템에 포함되는 저장 매체가 복수의 멀티-비트 메모리 장치들로 구성되는 경우, 각 멀티-비트 메모리 장치에 제 1 및 제 2 메모리 영역들(3101, 3102)이 정의될 수 있다. 다른 예로서, 임의의 멀티-비트 메모리 장치에만 제 1 메모리 영역(101)이 정의될 수 있다. 또는, 임의의 멀티-비트 메모리 장치가 제 1 메모리 영역(3101)으로 정의될 수 있다.
도 16은 본 발명의 예시적인 실시예에 따른 1-스텝 프로그램 동작을 위한 명령 시퀀스를 보여주는 도면이고, 도 17은 도 16에 도시된 1-스텝 프로그램 명령 시퀀스에 따른 데이터 흐름을 보여주는 도면이다. 도 18은 에러 정정 동작(또는, 비트 플립 동작)에 따른 데이터 흐름을 보여주는 도면이다. 이하, 본 발명의 예시적인 실시예에 따른 데이터 저장 시스템의 동작이 참조 도면들에 의거하여 상세히 설명될 것이다.
1-스텝 프로그램 동작은 제 2 메모리 영역(3102)에 대한 최소 프로그램 단위(예를 들면, 2-페이지)가 제 1 메모리 영역(3101)에 저장된 경우 행해질 것이다. 메인 프로그램 동작으로서, 제 2 메모리 영역(3102)에 대한 1-스텝 프로그램 동작은 제 1 메모리 영역(3101)에 대한 2번의 SLC 읽기 동작들과 제 2 메모리 영역(3102)에 대한 한번의 MLC 프로그램 동작을 수반할 것이다. 각 SLC 읽기 동작은 앞서 설명된 에러 검출 동작과 에러 정정 동작을 포함할 것이다.
본 발명의 예시적인 실시예에 따른 데이터 저장 시스템(3000)의 경우, 1-스텝 프로그램 동작을 수행하기에 앞서, SLC 동작 모드로의 전환을 위한 명령(DAh)가 메모리 제어기(3200)에서 멀티-비트 메모리 장치(3100)로 전송될 것이다. 모드 전환을 위한 명령(DAh)가 입력될 때, 멀티-비트 메모리 장치(3100)는 메모리 제어기(3200)로부터 제공되는 명령을 SLC 동작과 관련된 명령으로 인식할 것이다.
모드 전환을 위한 명령(DAh)에 이어서, 도 16에 도시된 바와 같이, 메모리 제어기(3200)는 일련의 명령(00h), 어드레스(ADDR), 그리고 명령(39h)을 멀티-비트 메모리 장치(3100)로 전송할 것이다. 이때, 어드레스(ADDR)는 1-스텝 프로그램 동작에 필요한 2-페이지 데이터 중 하나의 페이지를 지정하기 위한 어드레스일 것이다. 명령(39h)가 입력된 후, 멀티-비트 메모리 장치(3100)의 페이지 버퍼(3103)는, 도 17에 도시된 바와 같이, 제 1 메모리 영역(3101)으로부터 첫 번째 데이터를 읽는다. 읽혀진 데이터는 S-래치 유니트들에 저장될 것이다. 읽기 동작 동안, 도 16에 도시된 바와 같이, 멀티-비트 메모리 장치(3100)는 비지 상태를 나타내도록 레디/비지 신호(RnB)를 설정할 것이다. 읽기 동작이 완료된 후, 멀티-비트 메모리 장치(3100)는 레디 상태를 나타내도록 레디/비지 신호(RnB)를 설정할 것이다.
그 다음에, 도 16에 도시된 바와 같이, 멀티-비트 메모리 장치(3100)에서 메모리 제어기(3200)로 읽혀진 데이터가 출력될 것이다. 데이터 출력에 앞서, S-래치 유니트들의 데이터는 C-래치 유니트들로 덤프될 것이다. C-래치 유니트들로 덤프된 데이터는 메모리 제어기(3200)로 출력될 것이다. 메모리 제어기(3200)는 앞서 설명된 것과 실질적으로 동일한 방식으로 에러 검출 동작을 수행하고, 에러 검출 동작의 결과로서 에러 위치 정보 및 에러 플래그 정보를 생성할 것이다. 에러 검출 동작이 수행된 후, 메모리 제어기(3200)는 일련의 명령(86h), 어드레스(ADDR), 그리고 데이터(EFI)를 멀티-비트 메모리 장치(3100)로 전송한다. 여기서, 데이터(EFI)는 에러 플래그 정보를 포함하며, 도 17에 도시된 바와 같이, C-래치 유니트들에 로드될 것이다. 에러 플래그 정보는 도 9에서 설명된 방식 또는 도 10에서 설명된 방식에 따라 전송될 것이다. 도 9에서 설명된 방식의 경우, 비록 도면에는 도시되지 않았지만, 도 16에 도시된 에러 플래그 입력 절차(86h, ADDR, EFI)가 에러 비트들의 수만큼 반복될 것이다.
에러 플래그 정보의 전송에 이어서, 메모리 제어기(3200)는 일련의 명령(C0h) 및 어드레스(ADDR)를 멀티-비트 메모리 장치(3100)로 전송한다. 여기서, 명령(C0h)은 앞서 설명된 비트 플립 동작(또는, 에러 정정 동작)의 실행을 알리는 명령이고, 어드레스(ADDR)은 에러 정정된 데이터가 저장된 래치 유니트를 지정하기 위한 어드레스이다. 일련의 명령(C0h) 및 어드레스(ADDR)의 입력에 이어서, 레디/비지 신호(RnB)는 비지 상태로 설정된다. 레디/비지 신호(RnB)의 비지 상태 동안, 앞서 설명된 에러 정정 동작(또는, 비트 플립 동작)이 행해진다.
에러 정정 동작(또는, 비트 플립 동작)에 따른 데이터 흐름을 보여주는 도 18을 참조하면, ST1 단계에서, 메모리 제어기(3200)에서 제공된 에러 플래그 정보는 C-래치 유니트들에 로드된다. ST2 단계에서, C-래치 유니트들에 로드된 에러 플래그 정보는 S-래치 유니트들로 덤프된다. 이때, C-래치 유니트들에서 S-래치 유니트들로 덤프되는 데이터는 반전될 것이다. ST3 단계에서, XNOR 연산을 통해 S-래치 유니트들의 데이터가 L-래치 유니트들로 덤프된다. 이때, L-래치 유니트들로 덤프된 데이터는 XNOR 연산을 통해 에러 정정된 데이터일 것이다. 에러 정정된 데이터가 저장될 위치 즉, L-래치 유니트들은 명령(C0h)와 함께 입력된 어드레스(ADDR)에 의해서 지정될 것이다. 반전 연산 및 XNOR 연산은 비트 플립 동작에 대응하는 XOR 연산을 구성한다. 앞서 설명된 동작들(즉, 에러 플래그 로딩, 에러 플래그 반전, 그리고 XNOR 연산을 포함함)은 표 2 내지 표 5에서 설명된 것과 실질적으로 동일하게 수행되며, 그것에 대한 설명은 그러므로 생략된다.
다시 도 16을 참조하면, 에러 정정 동작(또는, 비트 플립 동작)이 완료된 후, 멀티-비트 메모리 장치(3100)는 레디 상태를 나타내도록 레디/비지 신호(RnB)를 설정할 것이다. 메모리 제어기(3200)는 레디/비지 신호(RnB)의 상태에 응답하여 멀티-비트 메모리 장치(3100)로 일련의 명령(00h), 어드레스(ADDR), 그리고 명령(39h)을 멀티-비트 메모리 장치(3100)로 전송할 것이다. 이때, 어드레스(ADDR)는 1-스텝 프로그램 동작에 필요한 2-페이지 데이터 중 나머지 페이지를 지정하기 위한 어드레스일 것이다. 명령(39h)가 입력된 후, 멀티-비트 메모리 장치(3100)의 페이지 버퍼(3103)는, 도 17에 도시된 바와 같이, 제 1 메모리 영역(3101)으로부터 데이터를 읽는다. 읽혀진 데이터는 S-래치 유니트들에 저장될 것이다. 읽기 동작 동안, 도 16에 도시된 바와 같이, 멀티-비트 메모리 장치(3100)는 비지 상태를 나타내도록 레디/비지 신호(RnB)를 설정할 것이다. 읽기 동작이 완료된 후, 멀티-비트 메모리 장치(3100)는 레디 상태를 나타내도록 레디/비지 신호(RnB)를 설정할 것이다.
그 다음에, 도 16에 도시된 바와 같이, 멀티-비트 메모리 장치(3100)에서 메모리 제어기(3200)로 읽혀진 데이터가 출력될 것이다. 데이터 출력에 앞서, 도 17에 도시된 바와 같이, S-래치 유니트들의 데이터는 C-래치 유니트들로 덤프될 것이다. C-래치 유니트들로 덤프된 데이터는 메모리 제어기(3200)로 출력될 것이다. 메모리 제어기(3200)는 앞서 설명된 것과 실질적으로 동일한 방식으로 에러 검출 동작을 수행하고, 에러 검출 동작의 결과로서 에러 위치 정보 및 에러 플래그 정보를 생성할 것이다. 에러 검출 동작이 수행된 후, 메모리 제어기(3200)는 일련의 명령(86h), 어드레스(ADDR), 그리고 데이터(EFI)를 멀티-비트 메모리 장치(3100)로 전송한다. 여기서, 데이터(EFI)는 에러 플래그 정보를 포함하며, 도 17에 도시된 바와 같이, C-래치 유니트들에 로드될 것이다. 에러 플래그 정보는 도 9에서 설명된 방식 또는 도 10에서 설명된 방식에 따라 전송될 것이다. 도 9에서 설명된 방식의 경우, 비록 도면에는 도시되지 않았지만, 도 16에 도시된 에러 플래그 입력 절차(86h, ADDR, EFI)가 에러 비트들의 수만큼 반복될 것이다.
에러 플래그 정보의 전송에 이어서, 메모리 제어기(3200)는 일련의 명령(C0h) 및 어드레스(ADDR)를 멀티-비트 메모리 장치(3100)로 전송한다. 일련의 명령(C0h) 및 어드레스(ADDR)의 입력에 이어서, 레디/비지 신호(RnB)는 비지 상태로 설정된다. 레디/비지 신호(RnB)의 비지 상태 동안, 도 18을 참조하여 설명된 에러 정정 동작(또는, 비트 플립 동작)이 행해진다. 단, 도 17에 도시된 바와 같이, 에러 정정된 데이터는 명령(C0h)와 함께 입력된 어드레스(ADDR)에 의해서 지정되는 F-래치 유니트들에 저장된다.
일단 1-스텝 프로그램 동작에 필요한 데이터가 준비되면, 제 2 메모리 영역(3102)에 대한 1-스텝 프로그램 동작이 행해질 것이다. 1-스텝 프로그램 동작을 수행하기에 앞서, 메모리 제어기(3200)는 모드 전환을 위한 명령(DFh)을 멀티-비트 메모리 장치(3100)로 전송할 것이다. 그러한 명령(DFh)은 SLC 동작을 위한 모드로부터 빠져 나오기 위한 것이다. 명령(DFh)이 입력됨에 따라, 멀티-비트 메모리 장치(3100)는 메모리 제어기(3200)로부터 제공되는 명령을 메인 프로그램 동작, 예를 들면, MLC 동작과 관련된 명령으로 인식할 것이다.
이후, 메모리 제어기(3200)는, 도 16에 도시된 바와 같이, 일련의 명령(8Bh), 어드레스(ADDR), 그리고 명령(10h)을 멀티-비트 메모리 장치(3100)로 전송할 것이다. 이때, 어드레스(ADDR)는 1-스텝 프로그램될 페이지들 중 하나를 지정하기 위한 어드레스일 것이다. 1-스텝 프로그램 동작에 필요한 데이터가 페이지 버퍼(3103)에 준비되어 있기 때문에, 메모리 제어기(3200)에서 멀티-비트 메모리 장치(3100)로 데이터가 전송되지 않을 것이다. 명령(10h)가 입력된 후, 도 17에 도시된 바와 같이, 페이지 버퍼(3103)에 저장된 데이터는 제 2 메모리 영역(3102)에 프로그램될 것이다. 프로그램 동작 동안, 도 16에 도시된 바와 같이, 멀티-비트 메모리 장치(3100)는 비지 상태를 나타내도록 레디/비지 신호(RnB)를 설정할 것이다. 프로그램 동작이 완료된 후, 멀티-비트 메모리 장치(3100)는 레디 상태를 나타내도록 레디/비지 신호(RnB)를 설정할 것이다.
도 19는 거친 프로그램 동작을 위한 명령 시퀀스를 보여주는 도면이고, 도 20은 도 19에 도시된 거친 프로그램 명령 시퀀스에 따른 데이터 흐름을 보여주는 도면이다. 이하, 본 발명의 예시적인 실시예에 따른 데이터 저장 시스템의 동작이 참조 도면들에 의거하여 상세히 설명될 것이다.
설명에 앞서, 거친 프로그램 동작은 제 2 메모리 영역(3102)에 대한 최소 프로그램 단위(예를 들면, 3-페이지)가 제 1 메모리 영역(3101)에 저장된 경우 행해질 것이다. 제 2 메모리 영역(3102)에 대한 거친 프로그램 동작은 제 1 메모리 영역(3101)에 대한 3번의 SLC 읽기 동작들과 제 2 메모리 영역(3102)에 대한 한번의 MLC 프로그램 동작을 수반할 것이다.
SLC 읽기 동작들 각각은, 도 20에 도시된 바와 같이, 도 16 내지 도 18에서 설명된 것과 실질적으로 동일하며, 그것에 대한 설명은 그러므로 생략될 것이다. 첫 번째 SLC 읽기 동작을 수행하기에 앞서, 도 19에 도시된 바와 같이, 모드 전환을 위한 명령(DAh)가 메모리 제어기(3200)에서 멀티-비트 메모리 장치(3100)로 전송될 것이다. 제 2 메모리 영역(3102)에 대한 MLC 프로그램 동작은 3-비트 데이터가 제 2 메모리 영역(3102)에 저장된다는 점을 제외하면 도 16 내지 도 18에서 설명된 것과 실질적으로 동일하며, 그것에 대한 설명은 그러므로 생략될 것이다. 거친 프로그램 동작을 수행하기에 앞서, 도 19에 도시된 바와 같이, 모드 전환을 위한 명령(DFh)가 메모리 제어기(3200)에서 멀티-비트 메모리 장치(3100)로 전송될 것이다. 비록 도면에는 도시되지 않았지만, 메인 프로그램 동작으로서 정교한 프로그램 동작은 도 19에 도시된 명령 시퀀스에 따라 동일하게 행해질 것이다.
도 16 내지 도 20을 참조하여 설명된 1-스텝 프로그램 동작 및 거친 프로그램 동작이 여기에 개시된 것에 국한되지 않음은 잘 이해될 것이다. 또한, 온-칩 버퍼 프로그램 방식 역시 여기에 개시된 것에 국한되지 않음은 잘 이해될 것이다.
거친/정교한 프로그램 동작 및 정교한 프로그램 동작시, SLC 읽기 동작이 연속적으로 3번 행해진다. 이러한 경우, 도 20에 도시된 것과 달리, 첫 번째 SLC 읽기 동작을 통해 읽혀진 데이터는 두 번째 SLC 읽기 동작이 행해지는 동안 메모리 제어기(2000)로 출력되고, 메모리 제어기(2000)는 두 번째 SLC 읽기 동작이 행해지는 동안 에러 플래그 정보를 생성한다. 다시 말해서, 본 발명의 다른 실시예에 따른 거친/정교한 프로그램 동작시의 데이터 흐름을 설명하기 위한 도 21를 참조하면, SLC 읽기 동작들이 연속적으로 수행되는 경우, 이전의 SLC 읽기 동작과 관련된 데이터 출력 동작 및 에러 플래그 생성 동작은 다음의 SLC 읽기 동작이 수행되는 동안 행해질 것이다.
도 22는 본 발명의 예시적인 실시예에 따른 메모리 시스템의 리프레쉬 프로그램 동작을 개략적으로 설명하기 위한 도면이다.
반복적인 프래그램/소거 사이클들은 메모리 트랜지스터 산화막들에 스트레스를 가하며, 그러한 스트레스는 메모리 트랜지스터들의 터널 산화막들이 브레이크 다운되게 한다. 메모리 셀들의 문턱 전압들은 그러한 스트레스로 인해 점차적으로 낮아지게 될 것이다. 즉, 프로그램된 메모리 셀들의 전하 저장층들로부터 전자들이 누설될 것이다. 이는 프로그램된 메모리 셀들의 문턱 전압 산포가 낮은 전압 쪽으로 이동되게 하며, 그 결과 프로그램 검증 전압보다 낮은 문턱 전압을 갖는 메모리 셀들이 생기게 된다. 이는 읽기 마진의 감소로 인해 읽기 페일이 유발될 수 있음을 의미한다. 읽기 페일이 유발되기 이전에 프로그램 검증 전압보다 낮은 문턱 전압들을 갖는 메모리 셀들을 재프로그램하는 것이 가능하다. 이러한 동작을 리프레쉬 프로그램 동작이 칭한다.
도 22을 참조하면, 재프로그램/리프레쉬 프래그램 동작시, 먼저, 페이지 버퍼 회로(1500)의 메인 버퍼(MB)를 통해 메모리 셀 어레이(MCA)의 특정 페이지로부터 데이터를 읽는다. 메인 버퍼(MB)에 저장된 읽혀진 데이터는 캐쉬 버퍼(CB)를 통해 메모리 제어기(2000)로 전송된다. 여기서, 메인 버퍼(MB)는 S-래치 유니트들(1521)로 구성될 수 있고, 캐쉬 버퍼(CB)는 C-래치 유니트들(1525)로 구성될 수 있다. 하지만, 본 발명이 그것에 국한되지 않음은 잘 이해될 것이다. 메인 버퍼(MB)와 캐쉬 버퍼(CB)는 페이지 버퍼 회로(1500)를 구성한다. 메모리 제어기(2000)로 전송된 데이터는 랜덤화기/디-랜덤화기(2600)를 통해 디-랜덤화되며, 에러 검출 및 정정 회로(2500)는 랜덤화기/디-랜덤화기(2600)에 의해서 디-랜덤화된 데이터에 대한 에러 검출 동작을 수행한다. 여기서, 불 휘발성 메모리 장치(1000)로부터 출력되는 읽혀진 데이터(RD)의 디-랜덤화된 데이터는 버퍼 메모리(2400)에 저장될 것이다. 에러 검출 동작의 결과로서, 에러 플래그 정보가 불 휘발성 메모리 장치(1000)의 캐쉬 버퍼(CB)로 전송된다. 여기서, 에러 플래그 정보는 도 9에서 설명된 방식 또는 도 10에서 설명된 방식에 따라 메모리 제어기(2000)에서 불 휘발성 메모리 장치(1000)로 전송될 것이다. 에러 플래그 정보 또는 에러 플래그 정보를 포함한 필드 데이터는 랜덤화기/디-랜덤화기(2600)를 경유하지 않고 직접 불 휘발성 메모리 장치(1000)로 전송된다. 캐쉬 버퍼(CB)에 저장된 에러 플래그 정보에 의거하여 비트 플립 동작(또는, 에러 정정 동작)이 행해지며, 비트 플립 동작(또는, 에러 정정 동작)을 통해 정정된 데이터는 메인 버퍼(MB)를 통해 메모리 셀 어레이(MCA)의 특정 페이지(즉, 데이터가 읽혀진 위치는 에러 정정된 데이터가 저장되는 위치와 동일함)에 저장된다. 즉, 특정 페이지로부터 읽혀진 데이터에 대한 재프로그램 동작이 행해진다. 다시 말해서, 특정 페이지의 메모리 셀들이 리프레쉬된다. 비트 플립 동작(또는, 에러 정정 동작)은 표 3 내지 도 5에서 설명된 것과 실질적으로 동일하며, 그것에 대한 설명은 그러므로 생략된다.
리프레쉬 프로그램 동작에 대한 추가적인 그리고 좀 더 상세한 설명은 미국특허번호 제7697359호에 개시되어 있으며, 이 출원의 레퍼런스로 포함된다.
도 23은 본 발명의 또 다른 예시적인 실시예에 따른 메모리 시스템을 개략적으로 보여주는 블록도이다. 도 23을 참조하면, 메모리 시스템(3000)은 불 휘발성 메모리 장치(3100a)와 메모리 제어기(3200b)를 포함한다.
불 휘발성 메모리 장치(3100a)는 메모리 셀 어레이(3110), 행 디코더 회로(3120), 전압 발생 회로(3130), 제어 로직(3140), 페이지 버퍼 회로(3150), 그리고 입출력 인터페이스(3160)를 포함한다. 도 23에 있어서, 메모리 셀 어레이(3110), 행 디코더 회로(3120), 그리고 전압 발생 회로(3130)는 도 4에 도시된 것과 실질적으로 동일하며, 그것에 대한 설명은 그러므로 생략된다. 제어 로직(3140)은 불 휘발성 메모리 장치(3100a)의 전반적인 동작을 제어하도록 구성된다. 제어 로직(3140)은 랜덤 시퀀스 데이터 발생기(3141)(도면에는, RDG로 표기된)를 포함한다. 랜덤 시퀀스 데이터 발생기(3140)는 시드값을 이용하여 랜덤 시퀀스 데이터를 발생한다. 랜덤 시퀀스 데이터는 입출력 인터페이스(3160)를 통해 페이지 버퍼 회로(3150)로 전달된다.
페이지 버퍼 회로(3150)는 제어 로직(3140)의 제어에 따라 프로그램 데이터 및 랜덤 시퀀스 데이터에 대한 XOR 연산을 수행하며, 그 결과 프래그램 데이터가 랜덤화된다. 또한, 페이지 버퍼 회로(3150)는 메모리 셀 어레이(3110)로부터 읽혀진 데이터와 랜덤 시퀀스 데이터에 대한 XOR 연산을 수행하며, 그 결과 읽혀진 데이터 (또는, 랜덤화된 읽혀진 데이터)가 디-랜덤화된다. 페이지 버퍼 회로(3150)는 제어 로직(3140)의 제어 하에 앞서 설명된 에러 정정 동작(또는, 비트 플립 동작)을 수행한다. 여기서, 데이터 랜덤화가 에러 정정에 앞서 행해지거나, 데이터 랜덤화가 에러 정정에 이어서 행해질 수 있다.
메모리 제어기(3200a)는 버퍼 메모리(3210)와 에러 검출 및 정정 회로(3220)를 포함한다. 버퍼 메모리(3210)는 불 휘발성 메모리 장치(3100a)로부터 읽혀진 데이터를 임시 저장하도록 구성된다. 에러 검출 및 정정 회로(3220)는 불 휘발성 메모리 장치(3100a)로부터 읽혀진 데이터의 에러를 검출하고, 에러 검출 결과로서 에러 위치 정보 및 에러 플래그 정보를 발생한다. 이는 앞서 설명된 것과 실질적으로 동일하게 행해지며, 그것에 대한 설명은 그러므로 생략된다. 에러 위치 정보 및 에러 플래그 정보는 도 9에서 설명된 방식으로 또는 도 10에서 설명된 방식으로 불 휘발성 메모리 장치(3100a)로 전송된다.
결론적으로, 에러 검출은 메모리 제어기(3200a)에 의해서 행해지고, 에러 정정 및 데이터 랜덤화/디-랜덤화(또는, 온-칩 랜덤화/디-랜덤화)는 불 휘발성 메모리 장치(3100a)에 의해서 행해진다.
도 24는 본 발명의 예시적인 실시예에 따른 컴퓨팅 시스템을 개략적으로 보여주는 블록도이다.
컴퓨팅 시스템은 마이크로프로세서(2101), 사용자 인터페이스(2201), 베이스밴드 칩셋(baseband chipset)과 같은 모뎀(2301), 메모리 제어기(2401), 그리고 저장 매체로서 불 휘발성 메모리 장치(2501)를 포함한다. 메모리 제어기(2401)와 불 휘발성 메모리 장치(2501)는 도 1에 도시된 것 또는 도 14에 도시된 것과 실질적으로 동일하게 구성될 것이다. 즉, 에러 검출이 메모리 제어기(2401)에 의해서 행해지고, 에러 정정이 불 휘발성 메모리 장치(2501) 내에서 행해지기 때문에, 메모리 제어기에서 불 휘발성 메모리 장치로 데이터를 전송하는 데 걸리는 시간 그리고/또는 메모리 제어기에서 불 휘발성 메모리 장치로 데이터를 전송하는 데 소모되는 전력이 감소된다. 불 휘발성 메모리 장치(2501)에는 마이크로프로세서(2101)에 의해서 처리된/처리될 N-비트 데이터(N은 1 또는 그 보다 큰 정수)가 메모리 제어기(2401)를 통해 저장될 것이다. 컴퓨팅 시스템이 모바일 장치인 경우, 컴퓨팅 시스템의 동작 전압을 공급하기 위한 배터리(2601)가 추가적으로 제공될 것이다. 비록 도면에는 도시되지 않았지만, 본 발명에 따른 컴퓨팅 시스템에는 응용 칩셋(application chipset), 카메라 이미지 프로세서(Camera Image Processor: CIS), 모바일 디램, 등이 더 제공될 수 있음은 잘 이해될 것이다.
도 25는 본 발명의 예시적인 실시예에 따른 반도체 드라이브를 개략적으로 보여주는 블록도이다.
도 25를 참조하면, 반도체 드라이브(4000)(SSD)는 저장 매체(4100)와 제어기(4200)를 포함할 것이다. 저장 매체(4100)는 복수의 채널들을 통해 제어기(4200)와 연결될 것이다. 각 채널에는 복수의 불 휘발성 메모리들이 공통으로 연결될 것이다. 각 불 휘발성 메모리는 도 1에서 설명된 메모리로 구성되고, 제어기(4200)는 도 1 내지 도 19를 참조하여 설명된 방식에 따라 저장 매체(4100)를 제어하도록 구성될 것이다. 즉, 에러 검출이 메모리 제어기(2401)에 의해서 행해지고, 에러 정정이 불 휘발성 메모리 장치(2501) 내에서 행해지기 때문에, 메모리 제어기에서 불 휘발성 메모리 장치로 데이터를 전송하는 데 걸리는 시간 그리고/또는 메모리 제어기에서 불 휘발성 메모리 장치로 데이터를 전송하는 데 소모되는 전력이 감소된다.
도 26은 도 25에 도시된 반도체 드라이브를 이용한 스토리지를 개략적으로 보여주는 블록도이고, 도 27은 도 25에 도시된 반도체 드라이브를 이용한 스트리지 서버를 개략적으로 보여주는 블록도이다.
본 발명의 예시적인 실시예에 따른 반도체 드라이브(4000)는 스토리지를 구성하는 데 사용될 수 있다. 도 26에 도시된 바와 같이, 스토리지는 도 25에서 설명된 것과 실질적으로 동일하게 구성되는 복수의 반도체 드라이브들을 포함할 것이다. 본 발명의 예시적인 실시예에 따른 반도체 드라이브(4000)는 스토리지 서버를 구성하는 데 사용될 수 있다. 도 27에 도시된 바와 같이, 스토리지 서버는 도 25에서 설명된 것과 실질적으로 동일하게 구성되는 복수의 반도체 드라이브들(4000), 그리고 서버(4000A)를 포함할 것이다. 또한, 이 분야에 잘 알려진 RAID 제어기(4000B)가 스토리지 서버에 제공될 수 있음은 잘 이해될 것이다.
도 28 내지 도 30은 본 발명의 예시적인 실시예들에 따른 데이터 저장 장치가 적용되는 시스템들을 개략적으로 보여주는 도면들이다.
본 발명의 예시적인 실시예들에 따른 메모리 제어기 및 멀티-비트 메모리 장치들로 구성되는 데이터 저장 장치를 포함한 반도체 드라이브가 스토리지에 적용되는 경우, 도 28에 도시된 바와 같이, 시스템(6000)은 유선 그리고/또는 무선으로 호스트와 통신하는 스토리지(6100)를 포함할 것이다. 본 발명의 예시적인 실시예들에 따른 데이터 저장 장치를 포함한 반도체 드라이브가 스토리지 서버에 적용되는 경우, 도 29에 도시된 바와 같이, 시스템(7000)은 유선 그리고/또는 무선으로 호스트와 통신하는 스토리지 서버들(7100, 7200)을 포함할 것이다. 또한, 도 30에 도시된 바와 같이, 본 발명의 예시적인 실시예에 따른 데이터 저장 장치를 포함한 반도체 드라이브는 메일 서버(8100)에도 적용될 수 있다.
도 31은 본 발명의 실시예에 따른 메모리 카드(memory card)를 개략적으로 보여주는 블록도이다.
메모리 카드는 예를 들어, MMC 카드, SD카드, 멀티유즈(multiuse) 카드, 마이크로 SD카드, 메모리 스틱, 컴팩트 SD 카드, ID 카드, PCMCIA 카드, SSD카드, 칩카드(chipcard), 스마트카드(smartcard), USB카드 등일 수 있다.
도 31을 참조하면, 메모리 카드는 외부와의 인터페이스를 수행하는 인터페이스부(9221), 버퍼 메모리를 갖고 메모리 카드의 동작을 제어하는 제어기(9222), 하나 또는 그 보다 많은 불 휘발성 메모리 장치들(9207)을 포함할 것이다. 제어기(9222)는 프로세서로서, 불 휘발성 메모리 장치(9207)의 라이트 동작 및 리드 동작을 제어할 수 있다. 구체적으로, 컨트롤러(9222)는 데이터 버스(DATA)와 어드레스 버스(ADDRESS)를 통해서 불 휘발성 메모리 장치(9207) 및 인터페이스부(9221)와 커플링되어 있다. 제어기(9222)와 불 휘발성 메모리(9207)는 도 1에서 설명된 또는 도 14에서 설명된 메모리 제어기와 불 휘발성 메모리 장치에 대응할 것이다. 제어기(9222)는 도 1 내지 도 19을 참조하여 설명된 방식에 따라 불 휘발성 메모리(9207)를 제어하도록 구성될 것이다. 즉, 에러 검출이 메모리 제어기에 의해서 행해지고, 에러 정정이 불 휘발성 메모리 장치 내에서 행해지기 때문에, 메모리 제어기에서 불 휘발성 메모리 장치로 데이터를 전송하는 데 걸리는 시간 그리고/또는 메모리 제어기에서 불 휘발성 메모리 장치로 데이터를 전송하는 데 소모되는 전력이 감소된다.
도 32는 본 발명의 실시예에 따른 디지털 스틸 카메라(digital still camera)를 개략적으로 보여주는 블록도이다.
도 32를 참조하면, 디지털 스틸 카메라는 바디(9301), 슬롯(9302), 렌즈(9303), 디스플레이부(9308), 셔터 버튼(9312), 스트로브(strobe)(9318) 등을 포함한다. 특히, 슬롯(9308)에는 메모리 카드(9331)가 삽입될 수 있고, 메모리 카드(9331)는 도 1에서 설명된 또는 도 14에서 설명된 메모리 제어기 및 불 휘발성 메모리 장치를 포함할 것이다. 메모리 카드(9331) 내에 포함된 메모리 제어기는 도 1 내지 도 19을 참조하여 설명된 방식에 따라 메모리 장치를 제어하도록 구성될 것이다. 즉, 에러 검출이 메모리 제어기에 의해서 행해지고, 에러 정정이 불 휘발성 메모리 장치 내에서 행해지기 때문에, 메모리 제어기에서 불 휘발성 메모리 장치로 데이터를 전송하는 데 걸리는 시간 그리고/또는 메모리 제어기에서 불 휘발성 메모리 장치로 데이터를 전송하는 데 소모되는 전력이 감소된다.
메모리 카드(9331)가 접촉형(contact type)인 경우, 메모리 카드(9331)가 슬롯(9308)에 삽입될 때 메모리 카드(9331)와 회로 기판 상의 특정 전기 회로가 전기적으로 접촉하게 된다. 메모리 카드(9331)가 비접촉형(non-contact type)인 경우, 무선 신호를 통해서 메모리 카드(9331)가 액세스될 것이다.
도 33은 도 32의 메모리 카드가 사용되는 다양한 시스템을 설명하는 예시적 도면이다.
도 32를 참조하면, 메모리 카드(9331)는 비디오 카메라(VC), 텔레비전(TV), 오디오 장치(AD), 게임장치(GM), 전자 음악 장치(EMD), 휴대폰(HP), 컴퓨터(CP), PDA(Personal Digital Assistant), 보이스 레코더(voice recorder)(VR), PC 카드(PCC), 등에 사용될 수 있다.
본 발명의 예시적인 실시예에 있어서, 메모리 셀들은 가변 저항 메모리 셀로 구성될 수 있으며, 예시적인 가변 저항 메모리 셀 및 그것을 포함한 메모리 장치가 미국특허번호 제7529124호에 게재되어 있으며, 이 출원의 레퍼런스로 포함될 것이다.
본 발명의 다른 예시적인 실시예에 있어서, 메모리 셀들은 전하 저장층을 갖는 다양한 셀 구조들 중 하나를 이용하여 구현될 수 있다. 전하 저장층을 갖는 셀 구조는 전하 트랩층을 이용하는 전하 트랩 플래시 구조, 어레이들이 다층으로 적층되는 스택 플래시 구조, 소오스-드레인이 없는 플래시 구조, 핀-타입 플래시 구조, 등을 포함할 것이다.
전하 저장층으로서 전하 트랩 플래시 구조를 갖는 메모리 장치가 미국특허 제6858906호, 미국공개특허 제2004-0169238호, 그리고 미국공개특허 제2006-0180851호에 각각 게재되어 있으며, 이 출원의 레퍼런스로 포함될 것이다. 소오스/드레인이 없는 플래시 구조는 대한민국특허 제673020호에 게재되어 있으며, 이 출원의 레퍼런스로 포함될 것이다.
본 발명에 따른 플래시 메모리 장치 그리고/또는 메모리 제어기는 다양한 형태들의 패키지를 이용하여 실장될 수 있다. 예를 들면, 본 발명에 따른 플래시 메모리 장치 그리고/또는 메모리 컨트롤러는 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), In Package(SIP), Multi Chip Package(MCP), Wafer-level Fabricated Package(WFP), Wafer-Level Processed Stack Package(WSP), 등과 같은 패키지들을 이용하여 실장될 수 있다.
본 발명의 범위 또는 기술적 사상을 벗어나지 않고 본 발명의 구조가 다양하게 수정되거나 변경될 수 있음은 이 분야에 숙련된 자들에게 자명하다. 상술한 내용을 고려하여 볼 때, 만약 본 발명의 수정 및 변경이 아래의 청구항들 및 동등물의 범주 내에 속한다면, 본 발명이 이 발명의 변경 및 수정을 포함하는 것으로 여겨진다.
1000: 불 휘발성 메모리 장치
2000: 메모리 제어기

Claims (44)

  1. 불 휘발성 메모리 장치와; 그리고
    상기 불 휘발성 메모리 장치를 제어하도록 구성된 메모리 제어기를 포함하며,
    상기 메모리 제어기는 상기 불 휘발성 메모리 장치로부터 읽혀진 데이터의 에러의 위치 정보를 포함하는 에러 플래그 정보를 상기 불 휘발성 메모리 장치로 제공하는 메모리 시스템.
  2. 제 1 항에 있어서,
    상기 불 휘발성 메모리 장치는 상기 메모리 제어기로부터 제공되는 상기 에러 플래그 정보에 의거하여 상기 읽혀진 데이터의 에러를 정정하도록 구성되는 메모리 시스템.
  3. 제 2 항에 있어서,
    상기 에러 정정된 데이터는 상기 읽혀진 데이터가 저장된 제 1 영역과 다른 제 2 영역에 저장되는 메모리 시스템.
  4. 제 3 항에 있어서,
    상기 제 1 영역에 저장된 데이터 및 상기 제 2 영역에 저장되는 상기 에러 정정된 데이터는 랜덤화된 데이터인 메모리 시스템.
  5. 제 3 항에 있어서,
    상기 제 1 영역은 단일-레벨 셀 영역이고, 상기 제 2 영역은 멀티-레벨 셀 영역인 메모리 시스템.
  6. 제 2 항에 있어서,
    상기 에러 정정된 데이터는 상기 읽혀진 데이터가 저장된 영역에 재프로그램되는 메모리 시스템.
  7. 제 2 항에 있어서,
    상기 에러 플래그 정보는 상기 읽혀진 데이터에 포함된 에러 비트들의 수만큼 상기 불 휘발성 메모리 장치로 반복적으로 제공되고, 상기 읽혀진 데이터에 포함된 에러 비트들 각각을 지정하기 위한 에러 위치 정보가 상기 에러 플래그 정보와 함께 제공되는 메모리 시스템.
  8. 제 1 항에 있어서,
    상기 메모리 제어기는 리프레쉬 프로그램 동작시 상기 불 휘발성 메모리 장치로부터 읽혀진 데이터의 에러의 위치 정보를 포함하는 에러 플래그 정보를 상기 불 휘발성 메모리 장치로 제공하는 메모리 시스템.
  9. 불 휘발성 메모리 장치와; 그리고
    상기 불 휘발성 메모리 장치를 제어하도록 구성된 메모리 제어기를 포함하며,
    상기 메모리 제어기는 상기 불 휘발성 메모리 장치로부터 읽혀진 데이터의 에러의 위치 정보를 포함하는 에러 플래그 정보를 상기 불 휘발성 메모리 장치로 제공하며,
    상기 불 휘발성 메모리 장치는 상기 메모리 제어기로부터 제공되는 상기 에러 플래그 정보에 의거하여 상기 읽혀진 데이터의 에러를 정정하도록 구성되며,
    상기 에러 플래그 정보의 크기는 상기 읽혀진 데이터의 크기와 동일하며, 상기 읽혀진 데이터에 포함된 에러 비트들에 각각 대응하는 상기 에러 플래그 정보의 위치들은 에러 비트임을 나타내는 논리 값으로 설정되고, 상기 에러 플래그 정보의 나머지 위치들은 상기 잘못된 비트임을 나타내는 논리 값의 반전된 값으로 설정되는 메모리 시스템.
  10. 제 9 항에 있어서,
    상기 에러 정정된 데이터는 상기 읽혀진 데이터가 저장된 제 1 영역과 다른 제 2 영역에 저장되거나 상기 제 1 영역에 저장되는 메모리 시스템.
  11. 데이터 정보를 저장하는 메모리 셀 어레이를 갖는 불 휘발성 메모리 장치 및;
    적어도 하나의 채널을 통해 상기 불 휘발성 메모리 장치와 연결되며, 상기 불 휘발성 메모리 장치를 제어하도록 구성된 메모리 제어기를 포함하며,
    상기 메모리 셀 어레이의 제 1 영역에서 상기 메모리 셀 어레이의 제 2 영역으로 데이터가 복사되는 카피백 동작시, 상기 메모리 제어기는 상기 제 1 영역에서 읽혀진 데이터의 에러 검출의 결과로서 상기 읽혀진 데이터의 에러의 위치에 대응하는 에러 플래그 정보를 상기 불 휘발성 메모리 장치에 제공되며, 상기 불 휘발성 메모리 장치는 상기 에러 플래그 정보에 의거하여 상기 읽혀진 데이터의 에러를 정정하는 메모리 시스템.
  12. 제 11 항에 있어서,
    상기 에러 플래그 정보는 상기 읽혀진 데이터에 포함된 에러 비트들의 수만큼 상기 불 휘발성 메모리 장치로 반복적으로 제공되고, 상기 읽혀진 데이터에 포함된 에러 비트들 각각을 지정하기 위한 에러 위치 정보가 상기 에러 플래그 정보와 함께 제공되는 메모리 시스템.
  13. 제 11 항에 있어서,
    상기 에러 플래그 정보의 크기는 상기 읽혀진 데이터의 크기와 동일하며, 상기 읽혀진 데이터에 포함된 에러 비트들에 각각 대응하는 상기 에러 플래그 정보의 위치들은 에러 비트임을 나타내는 논리 값으로 설정되고, 상기 에러 플래그 정보의 나머지 위치들은 상기 에러 비트임을 나타내는 논리 값과 다른 논리 값으로 설정되는 메모리 시스템.
  14. 제 11 항에 있어서,
    상기 불 휘발성 메모리 장치는 메인 버퍼와 캐쉬 버퍼를 갖는 페이지 버퍼 회로를 더 포함하며, 상기 캐쉬 버퍼는 상기 에러 플래그 정보를 저장하는 데 사용되고, 상기 메인 버퍼는 상기 제 1 영역으로부터 읽혀진 데이터를 저장하는 데 사용되며, 상기 메인 버퍼에 저장된 읽혀진 데이터의 에러 비트들은 상기 캐쉬 버퍼에 저장된 상기 에러 플래그 정보에 따라 반전되는 메모리 시스템.
  15. 제 11 항에 있어서,
    상기 불 휘발성 메모리 장치는 메인 버퍼와 캐쉬 버퍼를 갖는 페이지 버퍼 회로를 더 포함하며, 상기 캐쉬 버퍼는 상기 에러 플래그 정보를 저장하는 데 사용되고, 상기 메인 버퍼는 상기 제 1 영역으로부터 읽혀진 데이터를 저장하는 데 사용되며, 상기 메인 버퍼에 저장된 읽혀진 데이터의 에러 비트들은 상기 캐쉬 버퍼에 저장된 상기 에러 플래그 정보와 상기 메인 버퍼에 저장된 읽혀진 데이터를 배타적 오어 연산함으로써 정정되는 메모리 시스템.
  16. 데이터 정보를 저장하는 메모리 셀 어레이를 갖는 불 휘발성 메모리 장치 및;
    적어도 하나의 채널을 통해 상기 불 휘발성 메모리 장치와 연결되며, 상기 불 휘발성 메모리 장치를 제어하도록 구성된 메모리 제어기를 포함하며,
    상기 메모리 제어기는 상기 메모리 셀 어레이의 선택된 영역에서 읽혀진 데이터의 에러 검출의 결과로서 상기 읽혀진 데이터의 에러의 위치에 대응하는 에러 플래그 정보를 상기 불 휘발성 메모리 장치에 제공되며, 상기 불 휘발성 메모리 장치는 상기 에러 플래그 정보에 의거하여 상기 읽혀진 데이터의 에러를 정정하고, 상기 정정된 데이터를 상기 선택된 영역에 프로그램하는 메모리 시스템.
  17. 제 16 항에 있어서,
    상기 불 휘발성 메모리 장치는 메인 버퍼와 캐쉬 버퍼를 갖는 페이지 버퍼 회로를 더 포함하며, 상기 캐쉬 버퍼는 상기 에러 플래그 정보를 저장하는 데 사용되고, 상기 메인 버퍼는 상기 선택된 영역으로부터 읽혀진 데이터를 저장하는 데 사용되며, 상기 메인 버퍼에 저장된 읽혀진 데이터의 에러 비트들은 상기 캐쉬 버퍼에 저장된 상기 에러 플래그 정보와 상기 메인 버퍼에 저장된 읽혀진 데이터를 배타적 오어 연산함으로써 정정되는 메모리 시스템.
  18. 제 17 항에 있어서,
    상기 불 휘발성 메모리 장치는 랜덤 시퀀스 데이터를 발생하도록 구성된 랜덤 데이터 발생기를 더 포함하며, 상기 페이지 버퍼 회로는 상기 랜덤 시퀀스 데이터와 상기 메모리 셀 어레이에 저장될 데이터를 배타적 오어 연산함으로써 상기 메모리 셀 어레이에 저장될 데이터를 랜덤화하도록 구성되는 메모리 시스템.
  19. 메모리 셀 어레이와; 그리고 상기 메모리 셀 어레이에 연결된 페이지 버퍼 회로를 포함하는 불 휘발성 메모리 장치 및;
    적어도 하나의 채널을 통해 상기 불 휘발성 메모리 장치와 연결되며, 상기 불 휘발성 메모리 장치를 제어하도록 구성된 메모리 제어기를 포함하며,
    상기 메모리 셀 어레이의 제 1 영역에서 상기 메모리 셀 어레이의 제 2 영역으로 데이터가 복사될 때, 상기 메모리 제어기는 상기 제 1 영역에서 읽혀진 데이터의 에러 검출 결과로서 상기 읽혀진 데이터의 에러의 위치에 대응하는 에러 플래그 정보를 상기 불 휘발성 메모리 장치에 제공되며, 상기 읽혀진 데이터의 에러는 상기 에러 플래그 정보에 의거하여 상기 불 휘발성 메모리 장치의 페이지 버퍼 회로를 통해 정정되는 메모리 시스템.
  20. 제 19 항에 있어서,
    상기 메모리 제어기는 상기 불 휘발성 메모리 장치에 저장될 데이터를 랜덤화하도록 그리고 상기 불 휘발성 메모리 장치로부터 출력되는 데이터를 디-랜덤화하도록 구성된 랜덤화기/디-랜덤화기를 포함하는 메모리 시스템.
  21. 제 20 항에 있어서,
    상기 에러 플래그 정보는 상기 읽혀진 데이터에 포함된 잘못된 비트들의 수만큼 상기 불 휘발성 메모리 장치로 반복적으로 제공되고, 상기 읽혀진 데이터에 포함된 잘못된 비트들 각각을 지정하기 위한 에러 위치 정보가 상기 에러 플래그 정보와 함께 제공되며, 상기 에러 플래그 정보는 상기 랜덤화기/디-랜덤화기에 의해서 랜덤화되지 않는 메모리 시스템.
  22. 제 20 항에 있어서,
    상기 에러 플래그 정보의 크기는 상기 읽혀진 데이터의 크기와 동일하며, 상기 읽혀진 데이터에 포함된 잘못된 비트들에 각각 대응하는 상기 에러 플래그 정보의 위치들은 잘못된 비트임을 나타내는 논리 값으로 설정되고, 상기 에러 플래그 정보의 나머지 위치들은 상기 잘못된 비트임을 나타내는 논리 값과 다른 논리 값으로 설정되며, 상기 에러 플래그 정보는 상기 랜덤화기/디-랜덤화기에 의해서 랜덤화되지 않는 메모리 시스템.
  23. 제 20 항에 있어서,
    상기 제 1 영역에 저장될 데이터를 랜덤화하기 위한 시드값은 상기 제 2 영역에 저장될 데이터를 랜덤화하기 위한 시드값과 동일한 메모리 시스템.
  24. 제 23 항에 있어서,
    상기 시드값들 각각은 상기 랜덤화된 데이터가 저장될 영역의 메모리 셀들에 저장되는 메모리 시스템.
  25. 제 19 항에 있어서,
    상기 페이지 버퍼 회로는 메인 버퍼와 캐쉬 버퍼를 포함하며, 상기 캐쉬 버퍼는 상기 에러 플래그 정보를 저장하는 데 사용되고, 상기 메인 버퍼는 상기 제 1 영역으로부터 읽혀진 데이터를 저장하는 데 사용되며, 상기 메인 버퍼에 저장된 읽혀진 데이터의 잘못된 비트들은 상기 캐쉬 버퍼에 저장된 상기 에러 플래그 정보에 따라 반전되는 메모리 시스템.
  26. 제 20 항에 있어서,
    상기 제 1 영역에 저장될 데이터를 랜덤화하기 위한 시드값이 상기 제 2 영역에 저장될 데이터를 랜덤화하기 위한 시드값과 다를 때, 상기 제 1 영역으로부터 읽혀진 데이터의 에러는 상기 메모리 제어기에 의해서 정정되며, 상기 정정된 데이터는 상기 랜덤화기/디-랜덤화기를 통해 상기 불 휘발성 메모리 장치의 페이지 버퍼 회로로 전송되는 메모리 시스템.
  27. 제 19 항에 있어서,
    상기 제 1 영역은 단일-레벨 셀 영역이고, 상기 제 2 영역은 멀티-레벨 셀 영역인 메모리 시스템.
  28. 제 27 항에 있어서,
    상기 메모리 제어기는 상기 제 1 영역으로부터 데이터가 읽혀지기 이전에 단일-레벨 셀 동작 모드로 전환되도록 상기 불 휘발성 메모리 장치를 제어하고, 상기 에러 플래그 정보가 상기 불 휘발성 메모리 장치로 전송된 후 멀티-레벨 동작 모드로 전환되도록 상기 불 휘발성 메모리 장치를 제어하는 메모리 시스템.
  29. 불 휘발성 메모리 장치를 제어하는 메모리 제어기에 있어서:
    상기 불 휘발성 메모리 장치로부터 읽혀진 데이터를 저장하도록 구성된 버퍼 메모리와; 그리고
    상기 버퍼 메모리에 저장된 상기 읽혀진 데이터의 에러 검출 결과로서 상기 읽혀진 데이터의 에러의 위치에 대응하는 에러 플래그 정보를 발생하도록 구성된 에러 검출 및 정정 회로를 포함하며, 상기 에러 플래그 정보는 상기 불 휘발성 메모리 장치로 제공되는 메모리 제어기.
  30. 제 29 항에 있어서,
    상기 불 휘발성 메모리 장치에 저장될 데이터를 랜덤화하도록 그리고 상기 불 휘발성 메모리 장치로부터 읽혀진 데이터를 디-랜덤화하도록 구성된 랜덤화기/디-랜덤화기를 더 포함하는 메모리 제어기.
  31. 제 30 항에 있어서,
    상기 에러 플래그 정보는 상기 랜덤화기/디-랜덤화기에 의해서 랜덤화되지 않는 메모리 제어기.
  32. 제 29 항에 있어서,
    상기 불 휘발성 메모리 장치는 메인 버퍼와 캐쉬 버퍼를 갖는 페이지 버퍼 회로를 포함하며, 상기 캐쉬 버퍼는 상기 에러 플래그 정보를 저장하는 데 사용되고, 상기 메인 버퍼는 메모리 셀 어레이의 선택된 영역으로부터 읽혀진 데이터를 저장하는 데 사용되며, 상기 메인 버퍼에 저장된 읽혀진 데이터의 에러 비트들은 상기 캐쉬 버퍼에 저장된 상기 에러 플래그 정보와 상기 메인 버퍼에 저장된 읽혀진 데이터를 배타적 오어 연산함으로써 정정되는 메모리 제어기.
  33. 제 32 항에 있어서,
    상기 에러 정정된 데이터는 상기 선택된 영역에 저장되는 메모리 제어기.
  34. 제 32 항에 있어서,
    상기 에러 정정된 데이터는 상기 선택된 영역과 다른 영역에 저장되는 메모리 제어기.
  35. 제 32 항에 있어서,
    상기 불 휘발성 메모리 장치는 랜덤 시퀀스 데이터를 발생하도록 구성된 랜덤 데이터 발생기를 더 포함하며, 상기 페이지 버퍼 회로는 상기 상기 랜덤 시퀀스 데이터와 상기 메모리 셀 어레이에 저장될 데이터를 배타적 오어 연산함으로써 상기 메모리 셀 어레이에 저장될 데이터를 랜덤화하도록 구성되는 메모리 제어기.
  36. 메모리 셀 어레이와; 랜덤 시퀀스 데이터를 발생하도록 구성된 랜덤 데이터 발생기와; 그리고 상기 랜덤 시퀀스 데이터와 상기 메모리 셀 어레이에 저장될 데이터를 배타적 오어 연산함으로써 상기 메모리 셀 어레이에 저장될 데이터를 랜덤화하도록 구성된 페이지 버퍼 회로를 포함하는 불 휘발성 메모리 장치와; 그리고
    상기 불 휘발성 메모리 장치로부터 읽혀진 데이터의 에러를 검출하여 상기 출력된 데이터의 에러의 위치에 대응하는 에러 플래그 정보를 발생하도록 구성된 에러 정정 회로를 포함하는 메모리 제어기를 포함하며, 상기 페이지 버퍼 회로는 상기 에러 플래그 정보와 상기 읽혀진 데이터를 상기 배타적 오어 연산함으로써 상기 읽혀진 데이터의 에러를 정정하도록 구성되는 메모리 시스템.
  37. 제 36 항에 있어서,
    상기 읽혀진 데이터가 저장된 상기 메모리 셀 어레이의 영역은 상기 에러 정정된 데이터가 저장되는 상기 메모리 셀 어레이의 영역과 동일한 메모리 시스템.
  38. 제 36 항에 있어서,
    상기 읽혀진 데이터가 저장된 상기 메모리 셀 어레이의 제 1 영역은 상기 에러 정정된 데이터가 저장되는 상기 메모리 셀 어레이의 제 2 영역과 다른 메모리 시스템.
  39. 메모리 셀 어레이를 갖는 불 휘발성 메모리 장치와; 그리고 버퍼 메모리를 가지며, 상기 불 휘발성 메모리 장치를 제어하는 메모리 제어기를 포함하는 데이터 저장 장치의 동작 방법에 있어서:
    상기 메모리 셀 어레이의 제 1 메모리 영역에 대한 버퍼 프로그램 동작이 요구될 때, 상기 제 1 메모리 영역에 대한 버퍼 프로그램 동작을 수행하도록 상기 불 휘발성 메모리 장치를 제어하고; 그리고
    상기 메모리 셀 어레이의 제 2 메모리 영역에 대한 메인 프로그램 동작이 요구될 때, 상기 제 2 메모리 영역에 대한 메인 프로그램 동작을 수행하도록 상기 불 휘발성 메모리 장치를 제어하는 것을 포함하며,
    상기 제 2 메모리 영역에 대한 메인 프로그램 동작은 상기 제 1 메모리 영역에 대한 단일-비트 읽기 동작들을 포함하며, 상기 각 단일-비트 읽기 동작시, 상기 메모리 제어기는 상기 제 1 메모리 영역에서 읽혀진 데이터의 에러를 검출하고, 상기 에러 검출 결과에 따라 에러 플래그 정보를 생성하고, 상기 검출된 에러의 정정 없이 상기 에러 플래그 정보를 상기 불 휘발성 메모리 장치로 전송하며, 상기 제 1 메모리 영역으로부터 읽혀진 데이터의 에러는 상기 에러 플래그 정보에 의거하여 상기 불 휘발성 메모리 장치의 페이지 버퍼 회로에 의해서 정정되는 것을 특징으로 하는 동작 방법.
  40. 제 39 항에 있어서,
    상기 제 1 메모리 영역은 단일-비트 프로그램 동작을 통해 프로그램되고, 상기 제 2 메모리 영역은 멀티-비트 프로그램 동작을 통해 프로그램되는 것을 특징으로 하는 동작 방법.
  41. 제 40 항에 있어서,
    상기 에러 플래그 정보는 상기 읽혀진 데이터에 포함된 에러 비트들의 수만큼 상기 불 휘발성 메모리 장치로 반복적으로 제공되고, 상기 읽혀진 데이터에 포함된 잘못된 비트들 각각을 지정하기 위한 에러 위치 정보가 상기 에러 플래그 정보와 함께 제공되는 것을 특징으로 하는 동작 방법.
  42. 제 40 항에 있어서,
    상기 에러 플래그 정보의 크기는 상기 읽혀진 데이터의 크기와 동일하며, 상기 읽혀진 데이터에 포함된 에러 비트들에 각각 대응하는 상기 에러 플래그 정보의 위치들은 에러 비트임을 나타내는 논리 값으로 설정되고, 상기 에러 플래그 정보의 나머지 위치들은 상기 에러 비트임을 나타내는 논리 값의 반전된 논리 값으로 설정되는 것을 특징으로 하는 동작 방법.
  43. 제 39 항에 있어서,
    상기 페이지 버퍼 회로는 메인 버퍼와 캐쉬 버퍼를 포함하며, 상기 캐쉬 버퍼는 상기 에러 플래그 정보를 저장하는 데 사용되고, 상기 메인 버퍼는 상기 제 1 메모리 영역으로부터 읽혀진 데이터를 저장하는 데 사용되며, 상기 메인 버퍼에 저장된 읽혀진 데이터의 에러 비트들은 상기 캐쉬 버퍼에 저장된 상기 에러 플래그 정보에 따라 반전되는 것을 특징으로 하는 동작 방법.
  44. 제 39 항에 있어서,
    상기 단일-비트 읽기 동작들이 행해질 때, 이전의 단일-비트 읽기 동작을 통해 읽혀진 데이터의 출력 및 에러 플래그 정보의 생성은 다음의 단일-비트 읽기 동작이 행해질 때 행해지는 것을 특징으로 하는 동작 방법.
KR1020110114282A 2011-11-04 2011-11-04 메모리 시스템 및 그것의 동작 방법 KR20130049332A (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1020110114282A KR20130049332A (ko) 2011-11-04 2011-11-04 메모리 시스템 및 그것의 동작 방법
US13/449,501 US8812933B2 (en) 2011-11-04 2012-04-18 Memory system and operating method thereof
JP2012139532A JP6072442B2 (ja) 2011-11-04 2012-06-21 メモリシステム及びそれの動作方法
CN201210436459.7A CN103093818B (zh) 2011-11-04 2012-11-05 存储系统及其操作方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020110114282A KR20130049332A (ko) 2011-11-04 2011-11-04 메모리 시스템 및 그것의 동작 방법

Publications (1)

Publication Number Publication Date
KR20130049332A true KR20130049332A (ko) 2013-05-14

Family

ID=48206300

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110114282A KR20130049332A (ko) 2011-11-04 2011-11-04 메모리 시스템 및 그것의 동작 방법

Country Status (4)

Country Link
US (1) US8812933B2 (ko)
JP (1) JP6072442B2 (ko)
KR (1) KR20130049332A (ko)
CN (1) CN103093818B (ko)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150043127A (ko) * 2013-10-14 2015-04-22 삼성전자주식회사 메모리 시스템에서의 코딩 방법 및 디코딩 방법
KR20180035271A (ko) * 2016-09-28 2018-04-06 삼성전자주식회사 호스트에 의해 제어되는 스토리지 장치를 포함하는 컴퓨팅 시스템
KR20180052329A (ko) * 2016-11-10 2018-05-18 에스케이하이닉스 주식회사 랜더마이즈 동작을 수행하는 반도체 메모리 장치
KR102200792B1 (ko) * 2020-05-15 2021-01-11 주식회사 금영엔터테인먼트 음원 파일 구조, 이를 기록한 기록매체 및 음원 파일 제작 방법

Families Citing this family (63)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101678407B1 (ko) * 2010-05-10 2016-11-23 삼성전자주식회사 데이터 저장 장치 및 그것의 프로그램 방법
KR101893145B1 (ko) * 2011-12-06 2018-10-05 삼성전자주식회사 메모리 시스템들 및 그것들의 블록 복사 방법들
KR20130065271A (ko) * 2011-12-09 2013-06-19 에스케이하이닉스 주식회사 불휘발성 메모리 장치
US9256526B2 (en) * 2012-02-23 2016-02-09 National Taiwan University Flash memory storage system and access method
KR101938210B1 (ko) * 2012-04-18 2019-01-15 삼성전자주식회사 낸드 플래시 메모리, 가변 저항 메모리 및 컨트롤러를 포함하는 메모리 시스템의 동작 방법
KR101996004B1 (ko) * 2012-05-29 2019-07-03 삼성전자주식회사 비휘발성 메모리 장치의 프로그램 방법 및 그것의 메모리 시스템
US9256502B2 (en) * 2012-06-19 2016-02-09 Oracle International Corporation Method and system for inter-processor communication
US8897072B2 (en) * 2012-10-11 2014-11-25 Micron Technology, Inc. Sensing data stored in memory
US9627085B2 (en) * 2012-11-29 2017-04-18 Silicon Motion Inc. Refresh method for flash memory and related memory controller thereof
KR102009437B1 (ko) * 2013-01-18 2019-08-13 에스케이하이닉스 주식회사 반도체 장치 및 이의 동작 방법
KR102125376B1 (ko) 2013-07-01 2020-06-23 삼성전자주식회사 저장 장치 및 그것의 쓰기 방법
TWI530954B (zh) * 2013-11-22 2016-04-21 新唐科技股份有限公司 保護非揮發性記憶體中儲存之程式碼的裝置
JP6196143B2 (ja) * 2013-12-13 2017-09-13 株式会社東芝 情報処理装置、情報処理方法およびプログラム
US9552244B2 (en) 2014-01-08 2017-01-24 Qualcomm Incorporated Real time correction of bit failure in resistive memory
US9454422B2 (en) * 2014-01-30 2016-09-27 International Business Machines Corporation Error feedback and logging with memory on-chip error checking and correcting (ECC)
US9523722B2 (en) * 2014-06-02 2016-12-20 Winbond Electronics Corporation Method and apparatus for supply voltage glitch detection in a monolithic integrated circuit device
US9442787B2 (en) * 2014-06-13 2016-09-13 Sandisk Technologies Llc Three dimensional (3D) memory including error detection circuitry
KR102293169B1 (ko) * 2014-06-25 2021-08-26 삼성전자주식회사 불휘발성 메모리 장치 및 그것의 동작 방법
US10176039B2 (en) * 2014-09-19 2019-01-08 Micron Technology, Inc. Self-accumulating exclusive OR program
KR102248207B1 (ko) 2014-10-30 2021-05-06 삼성전자주식회사 저장 장치 및 그것의 동작 방법
KR102262909B1 (ko) * 2014-12-18 2021-06-10 에스케이하이닉스 주식회사 메모리 시스템 동작 방법
US9799402B2 (en) 2015-06-08 2017-10-24 Samsung Electronics Co., Ltd. Nonvolatile memory device and program method thereof
US10210041B2 (en) * 2015-11-05 2019-02-19 SK Hynix Inc. Systems and methods for low latency copy operations in non-volatile memory
KR102435181B1 (ko) 2015-11-16 2022-08-23 삼성전자주식회사 반도체 메모리 장치, 이를 포함하는 메모리 시스템 및 메모리 시스템의 동작 방법
US9659626B1 (en) * 2015-12-26 2017-05-23 Intel Corporation Memory refresh operation with page open
KR102568203B1 (ko) 2016-02-23 2023-08-21 삼성전자주식회사 비휘발성 메모리 장치
JP2017157257A (ja) * 2016-03-01 2017-09-07 東芝メモリ株式会社 半導体記憶装置及びメモリシステム
KR102515137B1 (ko) * 2016-03-28 2023-03-29 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
KR102438988B1 (ko) 2016-04-07 2022-09-02 삼성전자주식회사 랜덤화 연산을 수행하는 불휘발성 메모리 장치
CN111679787B (zh) 2016-04-27 2023-07-18 慧荣科技股份有限公司 闪存装置、闪存控制器及闪存存储管理方法
CN107391296B (zh) 2016-04-27 2020-11-06 慧荣科技股份有限公司 存取闪存模块的方法及相关的闪存控制器与记忆装置
US10289487B2 (en) 2016-04-27 2019-05-14 Silicon Motion Inc. Method for accessing flash memory module and associated flash memory controller and memory device
US9910772B2 (en) 2016-04-27 2018-03-06 Silicon Motion Inc. Flash memory apparatus and storage management method for flash memory
US10019314B2 (en) * 2016-04-27 2018-07-10 Silicon Motion Inc. Flash memory apparatus and storage management method for flash memory
US10110255B2 (en) 2016-04-27 2018-10-23 Silicon Motion Inc. Method for accessing flash memory module and associated flash memory controller and memory device
US10025662B2 (en) 2016-04-27 2018-07-17 Silicon Motion Inc. Flash memory apparatus and storage management method for flash memory
CN107391026B (zh) 2016-04-27 2020-06-02 慧荣科技股份有限公司 闪存装置及闪存存储管理方法
KR102628239B1 (ko) * 2016-05-02 2024-01-24 삼성전자주식회사 스토리지 장치, 스토리지 장치의 동작 방법, 그리고 스토리지 장치 및 호스트 장치를 포함하는 컴퓨팅 장치의 동작 방법
KR102636039B1 (ko) 2016-05-12 2024-02-14 삼성전자주식회사 불휘발성 메모리 장치 및 그것의 읽기 방법 및 카피백 방법
US10169128B1 (en) * 2016-06-06 2019-01-01 Crossbar, Inc. Reduced write status error polling for non-volatile resistive memory device
KR20180004562A (ko) * 2016-07-04 2018-01-12 에스프린팅솔루션 주식회사 전자 장치
US10685710B2 (en) * 2016-11-17 2020-06-16 Toshiba Memory Corporation Memory controller
TWI620420B (zh) * 2016-12-02 2018-04-01 財團法人資訊工業策進會 可見光通訊系統及方法
KR20180066601A (ko) * 2016-12-09 2018-06-19 삼성전자주식회사 메모리 시스템의 구동 방법
KR20180082927A (ko) * 2017-01-11 2018-07-19 에스케이하이닉스 주식회사 메모리장치의 에러정정장치 및 에러정정방법과, 에러정정장치를 포함하는 메모리 컨트롤러
KR102427323B1 (ko) * 2017-11-08 2022-08-01 삼성전자주식회사 반도체 메모리 모듈, 반도체 메모리 시스템, 그리고 반도체 메모리 모듈을 액세스하는 액세스 방법
US10719389B2 (en) * 2017-12-01 2020-07-21 Burlywood, Inc. Enhanced data storage with concatenated inner and outer error correction codes
CN108055290B (zh) * 2018-02-07 2020-08-18 天津芯海创科技有限公司 异构协议网络系统及其数据交换方法
CN108737154A (zh) * 2018-04-03 2018-11-02 郑州云海信息技术有限公司 一种全闪阵列系统中通信方法和系统
US11036578B2 (en) 2018-04-12 2021-06-15 Samsung Electronics Co., Ltd. Semiconductor memory devices and memory systems including the same
CN108650635B (zh) * 2018-07-02 2020-07-31 中国人民解放军战略支援部队信息工程大学 基于奇异谱分析的非视距通讯定位误差消除方法和装置
KR20200029810A (ko) 2018-09-11 2020-03-19 에스케이하이닉스 주식회사 데이터 처리 시스템 및 그의 동작방법
TWI690930B (zh) * 2019-01-09 2020-04-11 力晶積成電子製造股份有限公司 補償非易失性記憶元件在編程時電荷流失與源極線偏置的方法
KR20200087486A (ko) * 2019-01-11 2020-07-21 에스케이하이닉스 주식회사 메모리 시스템에서의 휘발성 메모리 내 오류를 처리하는 방법 및 장치
KR20200093362A (ko) * 2019-01-28 2020-08-05 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작 방법
US10741250B1 (en) * 2019-06-05 2020-08-11 Macronix International Co., Ltd. Non-volatile memory device and driving method thereof
KR20200142219A (ko) 2019-06-12 2020-12-22 삼성전자주식회사 전자 장치 및 그의 저장 공간 이용 방법
US20200409601A1 (en) * 2019-06-28 2020-12-31 Western Digital Technologies, Inc. Hold of Write Commands in Zoned Namespaces
KR102645786B1 (ko) * 2019-07-08 2024-03-12 에스케이하이닉스 주식회사 컨트롤러, 메모리 시스템 및 그것의 동작 방법
US11150842B1 (en) * 2020-04-20 2021-10-19 Western Digital Technologies, Inc. Dynamic memory controller and method for use therewith
US11640262B2 (en) * 2020-05-07 2023-05-02 Micron Technology, Inc. Implementing variable number of bits per cell on storage devices
US11170870B1 (en) * 2020-05-28 2021-11-09 Western Digital Technologies, Inc. On-chip-copy for integrated memory assembly
CN112104729A (zh) * 2020-09-10 2020-12-18 华云数据控股集团有限公司 一种存储系统及其缓存方法

Family Cites Families (49)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5754753A (en) * 1992-06-11 1998-05-19 Digital Equipment Corporation Multiple-bit error correction in computer main memory
JP2001092723A (ja) 1999-09-21 2001-04-06 Hitachi Ltd Ecc制御回路及びそれを有するメモリシステム
JP3975245B2 (ja) * 1999-12-16 2007-09-12 株式会社ルネサステクノロジ 記録再生装置および半導体メモリ
US6865702B2 (en) * 2001-04-09 2005-03-08 Micron Technology, Inc. Synchronous flash memory with test code input
US7640465B2 (en) * 2001-04-19 2009-12-29 Micron Technology, Inc. Memory with element redundancy
US20060180851A1 (en) 2001-06-28 2006-08-17 Samsung Electronics Co., Ltd. Non-volatile memory devices and methods of operating the same
JP4901048B2 (ja) 2001-06-28 2012-03-21 三星電子株式会社 浮遊トラップ型不揮発性メモリ素子
US7253467B2 (en) 2001-06-28 2007-08-07 Samsung Electronics Co., Ltd. Non-volatile semiconductor memory devices
US7012835B2 (en) * 2003-10-03 2006-03-14 Sandisk Corporation Flash memory data correction and scrub techniques
KR100719380B1 (ko) * 2006-03-31 2007-05-18 삼성전자주식회사 향상된 신뢰성 특성을 갖는 다치 플래시 메모리 장치 및그것을 포함한 메모리 시스템
JP2005242797A (ja) 2004-02-27 2005-09-08 Oki Electric Ind Co Ltd エラー訂正回路
JP2005293363A (ja) * 2004-04-01 2005-10-20 Toshiba Corp ディスクアレイコントローラおよび情報処理装置
US7272758B2 (en) * 2004-08-31 2007-09-18 Micron Technology, Inc. Defective memory block identification in a memory device
US7275190B2 (en) * 2004-11-08 2007-09-25 Micron Technology, Inc. Memory block quality identification in a memory device
US7849381B2 (en) * 2004-12-21 2010-12-07 Sandisk Corporation Method for copying data in reprogrammable non-volatile memory
JP4679943B2 (ja) * 2005-03-23 2011-05-11 ヒタチグローバルストレージテクノロジーズネザーランドビーブイ データ記憶装置及びその不揮発性メモリ内データ書き換え処理方法
WO2007010829A1 (ja) * 2005-07-15 2007-01-25 Matsushita Electric Industrial Co., Ltd. 不揮発性記憶装置、メモリコントローラ及び不良領域検出方法
KR100712596B1 (ko) * 2005-07-25 2007-04-30 삼성전자주식회사 플래시 메모리 장치의 리페어 및 트리밍 방법 및 장치
KR100673020B1 (ko) 2005-12-20 2007-01-24 삼성전자주식회사 전계효과 소오스/드레인 영역을 가지는 반도체 장치
KR20070076849A (ko) * 2006-01-20 2007-07-25 삼성전자주식회사 메모리 카드의 카피백 동작을 수행하는 장치 및 방법
US7681106B2 (en) 2006-03-29 2010-03-16 Freescale Semiconductor, Inc. Error correction device and methods thereof
KR100764738B1 (ko) 2006-04-06 2007-10-09 삼성전자주식회사 향상된 신뢰성을 갖는 상변화 메모리 장치, 그것의 쓰기방법, 그리고 그것을 포함한 시스템
US8352805B2 (en) * 2006-05-18 2013-01-08 Rambus Inc. Memory error detection
KR100845526B1 (ko) * 2006-10-19 2008-07-10 삼성전자주식회사 플래시 메모리를 포함한 메모리 시스템 및 그것의 프로그램방법
KR100926475B1 (ko) * 2006-12-11 2009-11-12 삼성전자주식회사 멀티 비트 플래시 메모리 장치 및 그것의 프로그램 방법
US7861139B2 (en) * 2007-01-26 2010-12-28 Micron Technology, Inc. Programming management data for NAND memories
KR100882841B1 (ko) * 2007-06-19 2009-02-10 삼성전자주식회사 읽기 디스터번스로 인한 비트 에러를 검출할 수 있는메모리 시스템 및 그것의 읽기 방법
KR101406279B1 (ko) * 2007-12-20 2014-06-13 삼성전자주식회사 반도체 메모리 장치 및 그것의 읽기 페일 분석 방법
KR101437396B1 (ko) * 2008-02-27 2014-09-05 삼성전자주식회사 레이턴시를 줄일 수 있는 에러 정정 블록을 포함하는메모리 시스템 및 그것의 에러 정정 방법
KR101489827B1 (ko) 2008-03-25 2015-02-04 삼성전자주식회사 낸드 플래시 메모리와 컨트롤러 간의 효율적인 프로토콜을사용하는 반도체 메모리 장치
JP5374075B2 (ja) * 2008-06-06 2013-12-25 エイチジーエスティーネザーランドビーブイ ディスク装置及びその制御方法
JP2009301194A (ja) * 2008-06-11 2009-12-24 Toshiba Corp 半導体記憶装置の制御システム
KR101554159B1 (ko) * 2008-10-08 2015-09-21 삼성전자주식회사 데이터 저장 장치 및 이를 포함하는 데이터 저장 시스템
KR20100115970A (ko) * 2009-04-21 2010-10-29 삼성전자주식회사 배드 셀 관리 방법과 그 장치
KR101631162B1 (ko) * 2009-06-11 2016-06-17 삼성전자주식회사 플래시 메모리를 구비하는 저장 장치 및 이의 데이터 저장 방법
JP5492679B2 (ja) * 2009-06-30 2014-05-14 パナソニック株式会社 記憶装置およびメモリコントローラ
US8261012B2 (en) * 2009-10-30 2012-09-04 Western Digital Technologies, Inc. Non-volatile semiconductor memory comprising power fail circuitry for flushing write data in response to a power fail signal
JP2011108306A (ja) * 2009-11-16 2011-06-02 Sony Corp 不揮発性メモリおよびメモリシステム
KR101623119B1 (ko) * 2010-02-01 2016-05-20 삼성전자주식회사 솔리드 스테이트 드라이브의 에러 제어 방법
TWI441184B (zh) * 2010-02-09 2014-06-11 Silicon Motion Inc 非揮發性記憶裝置及其資料處理方法
US8751903B2 (en) * 2010-07-26 2014-06-10 Apple Inc. Methods and systems for monitoring write operations of non-volatile memory
JP4686645B2 (ja) 2010-07-29 2011-05-25 株式会社東芝 半導体記憶装置およびその制御方法
US8499227B2 (en) * 2010-09-23 2013-07-30 Micron Technology, Inc. Memory quality monitor based compensation method and apparatus
US9268632B2 (en) * 2010-09-24 2016-02-23 Rambus Inc. Memory device with ECC history table
US9003153B2 (en) * 2010-11-08 2015-04-07 Greenliant Llc Method of storing blocks of data in a plurality of memory devices in a redundant manner, a memory controller and a memory system
KR101739878B1 (ko) * 2011-02-22 2017-05-26 삼성전자주식회사 컨트롤러, 이의 동작방법, 및 상기 컨트롤러를 포함한 메모리 시스템
US8560925B2 (en) * 2011-04-05 2013-10-15 Denso International America, Inc. System and method for handling bad bit errors
KR101893145B1 (ko) * 2011-12-06 2018-10-05 삼성전자주식회사 메모리 시스템들 및 그것들의 블록 복사 방법들
KR101941270B1 (ko) * 2012-01-03 2019-04-10 삼성전자주식회사 멀티-레벨 메모리 장치를 제어하는 메모리 제어기 및 그것의 에러 정정 방법

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150043127A (ko) * 2013-10-14 2015-04-22 삼성전자주식회사 메모리 시스템에서의 코딩 방법 및 디코딩 방법
KR20180035271A (ko) * 2016-09-28 2018-04-06 삼성전자주식회사 호스트에 의해 제어되는 스토리지 장치를 포함하는 컴퓨팅 시스템
KR20180052329A (ko) * 2016-11-10 2018-05-18 에스케이하이닉스 주식회사 랜더마이즈 동작을 수행하는 반도체 메모리 장치
KR102200792B1 (ko) * 2020-05-15 2021-01-11 주식회사 금영엔터테인먼트 음원 파일 구조, 이를 기록한 기록매체 및 음원 파일 제작 방법
WO2021230459A1 (ko) * 2020-05-15 2021-11-18 주식회사 금영엔터테인먼트 음원 파일 구조, 이를 기록한 기록매체 및 음원 파일 제작 방법
US11551717B2 (en) 2020-05-15 2023-01-10 Keumyoung Entertainment Co., Ltd Sound source file structure, recording medium recording the same, and method of producing sound source file

Also Published As

Publication number Publication date
JP2013097786A (ja) 2013-05-20
JP6072442B2 (ja) 2017-02-01
CN103093818A (zh) 2013-05-08
US20130117620A1 (en) 2013-05-09
CN103093818B (zh) 2017-09-05
US8812933B2 (en) 2014-08-19

Similar Documents

Publication Publication Date Title
JP6072442B2 (ja) メモリシステム及びそれの動作方法
US9672104B2 (en) Memory system and read reclaim method thereof
KR101941270B1 (ko) 멀티-레벨 메모리 장치를 제어하는 메모리 제어기 및 그것의 에러 정정 방법
CN107133122B (zh) 存储器控制方法
JP5660615B2 (ja) マルチビットメモリ装置を含んだデータ格納システム及びそれの動作方法
US8644066B2 (en) Multi-level non-volatile memory device, system and method with state-converted data
US9164889B2 (en) Memory system to select program operation method and method thereof
US8665643B2 (en) Non-volatile memory device and read method thereof
US9183938B2 (en) Nonvolatile memory device and method of programming nonvolatile memory device
US20140223084A1 (en) Memory system and related method of operation
US20130132644A1 (en) Method of programming a nonvolatile memory device
KR20140008705A (ko) 비휘발성 메모리 장치 및 그것을 포함하는 메모리 시스템 및 그것의 메모리 블록 관리, 소거, 및 프로그램 방법들
US9021338B2 (en) Memory system and data storage method
KR20130099496A (ko) 불 휘발성 메모리 장치 및 그것을 포함한 메모리 시스템
KR20130074294A (ko) 불 휘발성 메모리 장치 및 그것의 프로그램 방법
US9189384B2 (en) Memory system and memory managing method thereof
KR101772577B1 (ko) 멀티-비트 메모리 장치를 포함한 데이터 저장 시스템 및 그것의 동작 방법
KR20200070686A (ko) 저장 장치 및 그 동작 방법

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E902 Notification of reason for refusal
E601 Decision to refuse application