KR20130054738A - 불휘발성 메모리 장치에 데이터를 프로그램하는 프로그램 방법 및 불휘발성 메모리 장치를 포함하는 메모리 시스템 - Google Patents

불휘발성 메모리 장치에 데이터를 프로그램하는 프로그램 방법 및 불휘발성 메모리 장치를 포함하는 메모리 시스템 Download PDF

Info

Publication number
KR20130054738A
KR20130054738A KR1020110120307A KR20110120307A KR20130054738A KR 20130054738 A KR20130054738 A KR 20130054738A KR 1020110120307 A KR1020110120307 A KR 1020110120307A KR 20110120307 A KR20110120307 A KR 20110120307A KR 20130054738 A KR20130054738 A KR 20130054738A
Authority
KR
South Korea
Prior art keywords
data
seed
metadata
randomized
csb
Prior art date
Application number
KR1020110120307A
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 KR1020110120307A priority Critical patent/KR20130054738A/ko
Publication of KR20130054738A publication Critical patent/KR20130054738A/ko

Links

Images

Classifications

    • 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/04Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
    • G11C16/0483Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series

Landscapes

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

Abstract

본 발명은 불휘발성 메모리 장치에 데이터를 프로그램하는 프로그램 방법에 관한 것이다. 본 발명의 프로그램 방법은, 쓰기 데이터 및 메타데이터를 생성하는 단계, 쓰기 데이터와 연관된 시드(Seed)를 생성하고 생성된 시드를 스크램블(scramble)하는 단계, 스크램블된 시드를 이용하여 쓰기 데이터 및 메타데이터를 임의화하는 단계, 그리고 임의화된 데이터, 임의화된 메타데이터, 그리고 스크램블된 시드를 불휘발성 메모리 장치에 프로그램하는 단계로 구성된다.

Description

불휘발성 메모리 장치에 데이터를 프로그램하는 프로그램 방법 및 불휘발성 메모리 장치를 포함하는 메모리 시스템{PROGRAMMING METHOD OF PROGRAMMING DATA INTO NONVOLATILE MEMORY DEVICE AND MEMORY SYSTEM INCLUDING NONVOLATILE MEMORY DEVICE}
본 발명은 반도체 메모리에 관한 것으로, 더 상세하게는 불휘발성 메모리 장치에 데이터를 프로그램하는 프로그램 방법 및 불휘발성 메모리 장치를 포함하는 메모리 시스템에 관한 것이다.
반도체 메모리 장치(semiconductor memory device)는 실리콘(Si, silicon), 게르마늄(Ge, Germanium), 비소 갈륨(GaAs, gallium arsenide), 인화인듐(InP, indium phospide) 등과 같은 반도체를 이용하여 구현되는 기억장치이다. 반도체 메모리 장치는 크게 휘발성 메모리 장치(Volatile memory device)와 불휘발성 메모리 장치(Nonvolatile memory device)로 구분된다.
휘발성 메모리 장치는 전원 공급이 차단되면 저장하고 있던 데이터가 소멸되는 메모리 장치이다. 휘발성 메모리 장치에는 SRAM (Static RAM), DRAM (Dynamic RAM), SDRAM (Synchronous DRAM) 등이 있다. 불휘발성 메모리 장치는 전원 공급이 차단되어도 저장하고 있던 데이터를 유지하는 메모리 장치이다. 불휘발성 메모리 장치에는 ROM (Read Only Memory), PROM (Programmable ROM), EPROM (Electrically Programmable ROM), EEPROM (Electrically Erasable and Programmable ROM), 플래시 메모리 장치, PRAM (Phase-change RAM), MRAM (Magnetic RAM), RRAM (Resistive RAM), FRAM (Ferroelectric RAM) 등이 있다. 플래시 메모리 장치는 크게 노어 타입과 낸드 타입으로 구분된다.
본 발명의 목적은 향상된 신뢰성을 갖는 프로그램 방법 및 메모리 시스템을 제공하는 데에 있다.
불휘발성 메모리 장치에 데이터를 프로그램하는 본 발명의 실시 예에 따른 프로그램 방법은, 쓰기 데이터 및 상기 쓰기 데이터와 연관된 메타데이터를 생성하는 단계; 상기 쓰기 데이터와 연관된 시드(Seed)를 생성하고, 상기 생성된 시드를 스크램블(scramble)하는 단계; 상기 스크램블된 시드를 이용하여 상기 쓰기 데이터 및 메타데이터를 임의화하는 단계; 그리고 상기 임의화된 데이터, 임의화된 메타데이터, 그리고 스크램블된 시드를 상기 불휘발성 메모리 장치에 프로그램하는 단계를 포함한다.
실시 예로서, 상기 임의화된 데이터는 상기 불휘발성 메모리 장치의 하나의 워드 라인에 연결된 메모리 셀들 중 사용자 데이터 영역의 메모리 셀들에 프로그램되고, 상기 임의화된 메타데이터 및 스크램블된 시드는 상기 하나의 워드 라인에 연결된 메모리 셀들 중 스페어 영역의 메모리 셀들에 프로그램된다.
실시 예로서, 상기 불휘발성 메모리 장치는 하나의 메모리 셀에 하나의 비트를 저장하는 메모리 셀들을 포함하는 단일 레벨 메모리 셀 영역 및 하나의 메모리 셀에 복수의 비트를 저장하는 멀티 레벨 메모리 셀 영역을 포함한다.
실시 예로서, 상기 쓰기 데이터가 LSB 데이터 및 CSB 데이터를 포함할 때 상기 메타데이터를 생성하는 단계는, 상기 LSB 데이터와 연관된 LSB 메타데이터 및 상기 CSB 데이터와 연관된 CSB 메타데이터를 생성하는 단계를 포함한다.
실시 예로서, 상기 쓰기 데이터가 LSB 데이터 및 CSB 데이터를 포함할 때 상기 시드를 생성하고 상기 생성된 시드를 스크램블하는 단계는, 상기 LSB 데이터와 연관된 LSB 시드를 생성하고, 상기 생성된 LSB 시드를 스크램블하는 단계; 그리고 상기 CSB 데이터와 연관된 CSB 시드를 생성하고, 상기 생성된 CSB 시드를 스크램블하는 단계를 포함한다.
실시 예로서, 상기 쓰기 데이터가 LSB 데이터 및 CSB 데이터를 포함할 때 상기 임의화하는 단계는, 상기 스크램블된 LSB 시드를 이용하여 상기 LSB 데이터 및 상기 LSB 메타데이터를 임의화하는 단계; 그리고 상기 스크램블된 CSB 시드를 이용하여 상기 CSB 데이터 및 상기 CSB 메타데이터를 임의화하는 단계를 포함한다.
실시 예로서, 상기 쓰기 데이터가 LSB 데이터 및 CSB 데이터를 포함할 때 상기 프로그램하는 단계는, 상기 임의화된 LSB 데이터, 임의화된 LSB 메타데이터, 스크램블된 LSB 시드, 임의화된 CSB 데이터, 임의화된 CSB 데이터, 그리고 스크램블된 CSB 시드를 상기 멀티 레벨 셀 영역의 하나의 워드 라인에 연결된 메모리 셀들에 프로그램하는 단계; 상기 임의화된 LSB 데이터, 임의화된 LSB 메타데이터, 그리고 스크램블된 LSB 시드를 상기 단일 레벨 셀 영역의 제 1 워드 라인에 연결된 메모리 셀들에 프로그램하는 단계; 그리고 상기 임의화된 CSB 데이터, 임의화된 CSB 메타데이터, 그리고 스크램블된 CSB 시드를 상기 단일 레벨 셀 영역의 제 2 워드 라인에 연결된 메모리 셀들에 프로그램하는 단계를 포함한다.
실시 예로서, 상기 쓰기 데이터가 MSB 데이터를 포함할 때 상기 메타데이터를 생성하는 단계는, 상기 MSB 데이터와 연관된 MSB 메타데이터를 생성하는 단계를 포함한다.
실시 예로서, 상기 쓰기 데이터가 MSB 데이터를 포함할 때 상기 시드를 생성하고 상기 생성된 시드를 스크램블하는 단계는, 상기 MSB 데이터와 연관된 MSB 시드를 생성하고, 상기 생성된 MSB 시드를 스크램블하는 단계를 포함한다.
실시 예로서, 상기 쓰기 데이터가 MSB 데이터를 포함할 때 상기 임의화하는 단계는, 상기 스크램블된 MSB 시드를 이용하여 상기 MSB 데이터 및 상기 MSB 메타데이터를 임의화하는 단계를 포함한다.
실시 예로서, 상기 쓰기 데이터가 MSB 데이터를 포함할 때 상기 프로그램하는 단계는, 상기 제 1 워드 라인에 연결된 메모리 셀들로부터 상기 임의화된 LSB 데이터, 임의화된 LSB 메타데이터, 그리고 스크램블된 LSB 시드를 읽는 단계; 상기 제 2 워드 라인에 연결된 메모리 셀들로부터 상기 임의화된 CSB 데이터, 임의화된 CSB 메타데이터, 그리고 스크램블된 CSB 시드를 읽는 단계; 상기 읽어진 LSB 데이터, LSB 메타데이터, LSB 시드, CSB 데이터, CSB 메타데이터, 그리고 CSB 시드에 기반하여, 상기 임의화된 MSB 데이터, 임의화된 MSB 메타데이터, 그리고 스크램블된 MSB 시드를 상기 멀티 레벨 셀 영역의 상기 하나의 워드 라인에 연결된 메모리 셀들에 프로그램하는 단계; 그리고 상기 임의화된 MSB 데이터, 임의화된 MSB 메타데이터, 그리고 스크램블된 MSB 시드를 상기 단일 레벨 셀 영역의 제 3 워드 라인에 연결된 메모리 셀들에 프로그램하는 단계를 포함한다.
실시 예로서, 상기 제 1 워드 라인에 연결된 메모리 셀들로부터 상기 임의화된 LSB 데이터, 임의화된 LSB 메타데이터, 그리고 스크램블된 LSB 시드를 읽는 단계; 상기 제 2 워드 라인에 연결된 메모리 셀들로부터 상기 임의화된 CSB 데이터, 임의화된 CSB 메타데이터, 그리고 스크램블된 CSB 시드를 읽는 단계; 상기 제 3 워드 라인에 연결된 메모리 셀들로부터 상기 임의화된 MSB 데이터, 임의화된 MSB 메타데이터, 그리고 스크램블된 MSB 시드를 읽는 단계; 그리고 상기 읽어진 LSB 데이터, LSB 메타데이터, LSB 시드, CSB 데이터, CSB 메타데이터, CSB 시드, MSB 데이터, MSB 메타데이터, 그리고 MSB 시드에 기반하여, 상기 멀티 레벨 셀 영역의 상기 하나의 워드 라인에 연결된 메모리 셀들에서 정교한(fine) 프로그램을 수행하는 단계를 더 포함한다.
본 발명의 실시 예에 따른 메모리 시스템은, 하나의 메모리 셀에 하나의 비트를 저장하는 메모리 셀들을 포함하는 단일 레벨 메모리 셀 영역 및 하나의 메모리 셀에 복수의 비트를 저장하는 멀티 레벨 메모리 셀 영역을 포함하는 불휘발성 메모리 장치; 그리고 상기 불휘발성 메모리 장치를 제어하도록 구성되는 컨트롤러를 포함하고, 상기 컨트롤러는, 쓰기 데이터와 연관된 메타데이터를 생성하고, 상기 쓰기 데이터와 연관된 시드(Seed)를 생성하고, 상기 생성된 시드를 스크램블(scramble)하고, 상기 스크램블된 시드를 이용하여 상기 쓰기 데이터 및 메타데이터를 임의화하고, 그리고 상기 임의화된 데이터, 임의화된 메타데이터, 그리고 스크램블된 시드를 상기 불휘발성 메모리 장치에 프로그램하도록 구성된다.
실시 예로서, 상기 불휘발성 메모리 장치 및 상기 컨트롤러는 메모리 카드를 형성한다.
실시 예로서, 상기 불휘발성 메모리 장치 및 상기 컨트롤러는 솔리드 스테이트 드라이브(SSD, Solid State Drive)를 형성한다.
본 발명에 따르면, 사용자 데이터 뿐 아니라 메타 데이터와 시드(seed)도 임의화되어 불휘발성 메모리 장치에 프로그램된다. 따라서, 향상된 신뢰성을 갖는 프로그램 방법 및 메모리 시스템이 제공된다.
도 1은 본 발명의 실시 예에 따른 메모리 시스템을 보여주는 블록도이다.
도 2는 본 발명의 실시 예에 따른 프로그램 방법을 보여주는 순서도이다.
도 3은 멀티 레벨 셀 영역에서 수행되는 프로그램의 첫 번째 단계를 보여주는 순서도이다.
도 4는 1-스텝 프로그램이 수행된 단일 레벨 셀 영역과 멀티 레벨 셀 영역의 메모리 셀들의 문턱 전압 산포들을 보여준다.
도 5는 1-스텝 프로그램을 통해 단일 레벨 셀 영역과 멀티 레벨 셀 영역에 프로그램된 데이터의 상태를 보여준다.
도 6은 멀티 레벨 셀 영역에서 수행되는 프로그램의 두 번째 단계를 보여주는 순서도이다.
도 7은 거친 프로그램이 수행된 단일 레벨 셀 영역과 멀티 레벨 셀 영역의 메모리 셀들의 문턱 전압 산포들을 보여준다.
도 8은 거친 프로그램을 통해 단일 레벨 셀 영역과 멀티 레벨 셀 영역에 프로그램된 데이터의 상태를 보여준다.
도 9는 멀티 레벨 셀 영역에서 수행되는 프로그램의 세 번째 단계를 보여주는 순서도이다.
도 10은 정교한 프로그램이 수행된 단일 레벨 셀 영역과 멀티 레벨 셀 영역의 메모리 셀들의 문턱 전압 산포들을 보여준다.
도 11은 도 1의 메모리 시스템의 응용 예를 보여주는 블록도이다.
도 12는 본 발명의 실시 예에 따른 메모리 카드를 보여준다.
도 13은 본 발명의 실시 예에 따른 솔리드 스테이트 드라이브를 보여준다.
도 14는 도 11을 참조하여 설명된 메모리 시스템을 포함하는 컴퓨팅 시스템을 보여주는 블록도이다.
이하에서, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 정도로 상세히 설명하기 위하여, 본 발명의 실시 예를 첨부된 도면을 참조하여 설명하기로 한다.
도 1은 본 발명의 실시 예에 따른 메모리 시스템(1000)을 보여주는 블록도이다. 도 1을 참조하면, 메모리 시스템(1000)은 불휘발성 메모리 장치(1100) 및 컨트롤러(1200)를 포함한다.
불휘발성 메모리 장치(1100)는 컨트롤러(1200)의 제어에 따라 프로그램, 읽기, 소거, 그리고 배경(background) 동작을 수행할 수 있다. 불휘발성 메모리 장치(1100)는 낸드 플래시 메모리일 수 있다.
불휘발성 메모리 장치(1100)는 단일 레벨 셀 영역(1110) 및 멀티 레벨 셀 영역(1120)을 포함한다. 단일 레벨 셀 영역(1110)은 복수의 메모리 셀들을 포함할 수 있다. 단일 레벨 셀 영역(1110)의 각 메모리 셀에 하나의 비트가 저장될 수 있다. 멀티 레벨 셀 영역(1120)은 복수의 메모리 셀들을 포함할 수 있다. 멀티 레벨 셀 영역(1120)의 각 메모리 셀에 둘 이상의 비트가 저장될 수 있다. 단일 레벨 셀 영역(1110) 및 멀티 레벨 셀 영역(1120)은 메모리 블록(memory block)의 단위로 구분될 수 있다.
컨트롤러(1200)는 불휘발성 메모리 장치(1100)의 프로그램, 읽기, 소거, 그리고 배경 동작을 제어할 수 있다. 컨트롤러(1200)는 불휘발성 메모리 장치(1100)에 어드레스(ADDR), 데이터(Data), 메타 데이터(Metadata), 시드(Seed), 그리고 제어 신호(CTRL)를 전송할 수 있다.
어드레스(ADDR)는 불휘발성 메모리 장치(1100)에서 데이터가 프로그램될 메모리 셀들의 어드레스, 불휘발성 메모리 장치(1100)로부터 데이터가 읽어질 메모리 셀들의 어드레스, 또는 불휘발성 메모리 장치(1100)에서 소거될 메모리 셀들의 어드레스를 포함할 수 있다.
데이터는 불휘발성 메모리 장치(1100)에 프로그램될 데이터 또는 불휘발성 메모리 장치(1100)로부터 읽어지는 사용자 데이터를 포함할 수 있다. 데이터는 컨트롤러(1200)에 의해 임의화(Randomize)된 데이터를 포함할 수 있다.
메타 데이터(Metadata)는 불휘발성 메모리 장치(1100)에 프로그램될 메타 데이터 또는 불휘발성 메모리 장치(1100)로부터 읽어지는 메타 데이터를 포함할 수 있다. 메타 데이터(1200)는 데이터의 특성에 대한 정보, 불휘발성 메모리 장치의 상태에 대한 정보, 에러 정정을 위한 정보 등과 같이, 컨트롤러(1200)가 불휘발성 메모리 장치(1100)를 제어하기 위해 요구되는 다양한 정보를 포함할 수 있다. 메타 데이터는 컨트롤러(1200)에 의해 임의화된 메타 데이터를 포함할 수 있다.
시드는 컨트롤러(1200)가 데이터 및 메타 데이터를 임의화하기 위해 사용하는 패턴일 수 있다. 시드는 컨트롤러(1200)에 의해 스크램블된(Scrambled) 패턴일 수 있다.
제어 신호(CTRL)는 컨트롤러(1200)가 불휘발성 메모리 장치(1100)를 제어하기 위해 발생하는 다양한 신호들을 포함할 수 있다.
컨트롤러(1200)는 시드 생성기(1210), 시드 스크램블기(1220), 그리고 임의화 및 역임의화기(1230)를 포함할 수 있다.
시드 생성기(1210)는 시드를 생성할 수 있다. 예를 들어, 시드 생성기(1210)는 미리 정해진 패턴을 시드로 출력할 수 있다. 예시적으로, 시드 생성기(1210)는 복수의 시드(Seed)를 테이블화하여 저장할 수 있다. 수신된 데이터에 기반하여, 시드 생성기(1210)는 복수의 시드(Seed) 중 특정 시드를 선택할 수 있다. 예시적으로, 시드 생성기(1210)는 호스트로부터 전달되는 어드레스에 기반하여, 복수의 시드(Seed) 중 특정 시드를 선택할 수 있다. 예시적으로, 시드 생성기(1210)는 불휘발성 메모리 장치(1100)의 프로그램 및 소거 횟수에 따라, 복수의 시드(Seed) 중 특정 시드를 선택할 수 있다. 다른 예로서, 시드 생성기(1210)는 임의로 생성되는 패턴을 시드로 출력할 수 있다.
시드 스크램블기(1220)는 시드 생성기(1210)로부터 생성된 시드를 수신할 수 있다. 시드 스크램블기(1220)는 수신된 시드를 스크램블(Scramble)할 수 있다. 시드 스크램블기(1220)는 수신된 시드의 인접한 비트들 사이의 연산(예를 들여, 논리 곱, 배타적 논리 합 등), 인접한 비트들 사이의 자리바꿈 등을 수행하여, 수신된 시드를 스크램블할 수 있다. 스크램블된 시드는 임의성(Randomity)을 가질 수 있다.
임의화 및 역임의화기(1230)는 스크램블된 시드를 이용하여 데이터(Data) 및 메타 데이터(Metadata)를 임의화 또는 역임의화할 수 있다. 프로그램 동작 시에, 임의화 및 역임의화기(1230)는 불휘발성 메모리 장치(1100)에 프로그램되는 데이터 및 메타 데이터를 임의화할 수 있다. 읽기 동작 시에, 임의화 및 역임의화기(1230)는 불휘발성 메모리 장치(1100)로부터 읽어지는 데이터 및 메타 데이터를 역임의화할 수 있다.
도 2는 본 발명의 실시 예에 따른 프로그램 방법을 보여주는 순서도이다. 도 1 및 도 2를 참조하면, S110 단계에서, 쓰기 데이터 및 메타 데이터가 생성된다. 예를 들어, 컨트롤러(1200)는 외부로부터 쓰기 데이터를 수신할 수 있다. 컨트롤러(1200)는 외부로부터 쓰기 데이터와 함께 어드레스를 수신할 수 있다. 컨트롤러(1200)는 쓰기 데이터, 어드레스, 불휘발성 메모리 장치(1100)의 상태 등에 기반하여 메타 데이터를 생성할 수 있다.
S120 단계에서, 시드가 생성되고, 생성된 시드가 스크램블된다. 시드 생성기(1210)는 시드를 생성하고, 시드 스크램블기(1220)는 생성된 시드를 스크램블할 수 있다.
S130 단계에서, 스크램블된 시드를 이용하여 쓰기 데이터 및 메타 데이터가 임의화된다. 임의화 및 역임의화기(1230)는 스크램블된 시드를 이용하여 쓰기 데이터 및 메타 데이터를 임의화할 수 있다.
S140 단계에서, 임의화된 데이터, 임의화된 메타 데이터, 그리고 스크램블된 시드가 불휘발성 메모리 장치(1100)에 프로그램된다. 컨트롤러(1200)는 임의화된 데이터, 임의화된 메타 데이터, 그리고 스크램블된 시드를 불휘발성 메모리 장치(1100)에 전송할 수 있다. 불휘발성 메모리 장치(1100)는 임의화된 데이터, 임의화된 메타 데이터, 그리고 스크램블된 시드를 단일 레벨 셀 영역(1110) 또는 멀티 레벨 셀 영역(1120)의 하나의 워드 라인에 연결된 메모리 셀들에 프로그램할 수 있다.
멀티 레벨 셀 영역(1120)의 메모리 셀들은 최하위 비트(LSB, Least Significant Bit) 데이터, 중간 비트(CSB, Central Significant Bit) 데이터, 그리고 최상위 비트(MSB, Most Significant Bit) 데이터를 저장할 수 있다. LSB 데이터, CSB 데이터, 그리고 MSB 데이터의 프로그램은 3 단계에 걸쳐 수행될 수 있다. 3 단계에 걸친 프로그램이 수행될 때, 단일 레벨 셀 영역(1110)의 메모리 셀들은 버퍼 메모리로 이용될 수 있다.
도 3은 멀티 레벨 셀 영역(1120)에서 수행되는 프로그램의 첫 번째 단계를 보여주는 순서도이다. 도 1 및 도 3을 참조하면, S210 단계에서, LSB 데이터, LSB 메타 데이터, CSB 데이터, 그리고 CSB 메타 데이터가 발생된다. 예를 들어, 컨트롤러(1200)는 외부로부터 LSB 데이터 및 CSB 데이터를 쓰기 데이터로 수신할 수 있다. 컨트롤러(1200)는 LSB 데이터 및 CSB 데이터에 기반하여, LSB 메타 데이터 및 CSB 메타 데이터를 생성할 수 있다.
S220 단계에서, LSB 시드 및 CSB 시드가 생성되고, LSB 시드 및 CSB 시드가 스크램블된다. 시드 생성기(1210)는 LSB 데이터에 대응하는 LSB 시드과 CSB 데이터에 대응하는 CSB 시드를 생성할 수 있다. 시드 스크램블기(1220)는 생성된 LSB 시드 및 CSB 시드를 각각 스크램블할 수 있다.
S230 단계에서, 스크램블된 LSB 시드 및 스크램블된 CSB 시드를 이용하여, LSB 데이터 및 LSB 메타 데이터와 CSB 데이터 및 CSB 메타 데이터가 각각 임의화될 수 있다. 임의화 및 역임의화기(1230)는 LSB 시드를 이용하여 LSB 데이터 및 LSB 메타 데이터를 임의화할 수 있다. 임의화 및 역임의화기(1230)는 CSB 시드를 이용하여 CSB 데이터 및 CSB 메타 데이터를 임의화할 수 있다.
S240 단계에서, 임의화된 LSB 데이터, 임의화된 LSB 메타 데이터, 스크램블된 LSB 시드, 임의화된 CSB 데이터, 임의화된 CSB 메타 데이터, 그리고 스크램블된 CSB 시드가 멀티 레벨 셀 영역(1120)에 프로그램된다. 임의화된 LSB 데이터, 임의화된 LSB 메타 데이터, 스크램블된 LSB 시드, 임의화된 CSB 데이터, 임의화된 CSB 메타 데이터, 그리고 스크램블된 CSB 시드는 멀티 레벨 셀 영역(1220)의 하나의 워드 라인에 연결된 메모리 셀들에 프로그램될 수 있다. 이 프로그램은 1-스텝 프로그램일 수 있다.
S250 단계에서, 임의화된 LSB 데이터, 임의화된 LSB 메타 데이터, 스크램블된 LSB 시드, 임의화된 CSB 데이터, 임의화된 CSB 메타 데이터, 그리고 스크램블된 CSB 시드가 단일 레벨 셀 영역(1110)에 각각 프로그램된다. 임의화된 LSB 데이터, 임의화된 LSB 메타 데이터, 그리고 스크램블된 LSB 시드는 단일 레벨 셀 영역(1110)의 제 1 워드 라인에 연결된 메모리 셀들에 프로그램될 수 있다. 임의화된 CSB 데이터, 임의화된 CSB 메타 데이터, 그리고 스크램블된 CSB 시드는 단일 레벨 셀 영역(1110)의 제 2 워드 라인에 연결된 메모리 셀들에 프로그램될 수 있다.
1-스텝 프로그램이 수행된 단일 레벨 셀 영역(1110)과 멀티 레벨 셀 영역(1120)의 메모리 셀들의 문턱 전압 산포들이 도 4에 도시되어 있다. 1-스텝 프로그램을 통해 단일 레벨 셀 영역(1110)과 멀티 레벨 셀 영역(1120)에 프로그램된 데이터의 상태가 도 5에 도시되어 있다. 예시적으로, 멀티 레벨 셀 영역(1120)의 하나의 워드 라인에 연결된 메모리 셀들의 문턱 전압 산포들, 그리고 멀티 레벨 셀 영역(1120)의 하나의 워드 라인과 연관된 LSB 데이터, CSB 데이터, 그리고 MSB 데이터가 프로그램되는 단일 레벨 셀 영역(1110)의 제 1 내지 제 3 워드 라인들에 연결된 메모리 셀들의 문턱 전압 산포들 및 데이터의 상태가 도 4 및 도 5에 각각 도시되어 있다.
도 4 및 도 5를 참조하면, 멀티 레벨 셀 영역(MA, 1120)의 하나의 워드 라인에 연결된 메모리 셀들 각각에 2 비트, 즉 임의화된 LSB 데이터, 임의화된 LSB 메타 데이터, 스크램블된 LSB 시드, 임의화된 CSB 데이터, 임의화된 CSB 메타 데이터, 그리고 스크램블된 CSB 시드가 프로그램된다. 메모리 셀들은 소거 상태(E) 또는 프로그램 상태들(Q1~Q3) 중 하나를 가질 수 있다.
단일 레벨 셀 영역(1110)의 제 1 워드 라인에 연결된 메모리 셀들 각각에 1 비트, 즉 임의화된 LSB 데이터, 임의화된 LSB 메타 데이터, 그리고 스크램블된 LSB 시드가 프로그램된다. 메모리 셀들은 소거 상태(E) 또는 프로그램 상태(P)를 가질 수 있다. 단일 레벨 셀 영역(1110)의 제 2 워드 라인에 연결된 메모리 셀들 각각에 1 비트, 즉 임의화된 CSB 데이터, 임의화된 CSB 메타 데이터, 그리고 스크램블된 CSB 시드가 프로그램된다. 메모리 셀들은 소거 상태(E) 또는 프로그램 상태(P)를 가질 수 있다. MSB 영역(1115)의 하나의 워드 라인에 연결된 메모리 셀들은 소거 상태(E)를 유지할 수 있다.
도 6은 멀티 레벨 셀 영역(1120)에서 수행되는 프로그램의 두 번째 단계를 보여주는 순서도이다. 도 1 및 도 6을 참조하면, S310 단계에서 MSB 데이터 및 MSB 메타 데이터가 발생된다. 예를 들어, 컨트롤러(1200)는 외부로부터 MSB 데이터를 쓰기 데이터로 수신할 수 있다. 컨트롤러(1200)는 MSB 데이터에 따라 MSB 메타 데이터를 생성할 수 있다.
S320 단계에서, MSB 시드가 생성되고, 생성된 MSB 시드가 스크램블된다. 시드 생성기(1210)는 MSB 시드를 생성할 수 있다. 시드 스크램블기(1220)는 생성된 MSB 시드를 스크램블할 수 있다.
S330 단계에서, 스크램블된 MSB 시드를 이용하여, MSB 데이터 및 MSB 메타 데이터가 임의화된다. 임의화 및 역임의화기(1230)는 스크램블된 MSB 시드를 이용하여 MSB 데이터 및 MSB 메타 데이터를 임의화할 수 있다.
S340 단계에서, 임의화된 LSB 데이터, 임의화된 LSB 메타 데이터, 스크램블된 LSB 시드, 임의화된 CSB 데이터, 임의화된 CSB 메타 데이터, 그리고 스크램블된 CSB 시드가 단일 레벨 셀 영역(1110)으로부터 읽어진다.
S350 단계에서, 임의화된 LSB 데이터, 임의화된 LSB 메타 데이터, 스크램블된 LSB 시드, 임의화된 CSB 데이터, 임의화된 CSB 메타 데이터, 그리고 스크램블된 CSB 시드에 기반하여, 임의화된 MSB 데이터, 임의화된 MSB 메타 데이터, 그리고 스크램블된 MSB 시드가 멀티 레벨 셀 영역(1120)에 프로그램된다. 이 프로그램은 거친(coarse) 프로그램일 수 있다.
S360 단계에서, 임의화된 MSB 데이터, 임의화된 MSB 메타 데이터, 그리고 스크램블된 MSB 시드가 단일 레벨 셀 영역(1110)의 제 3 워드 라인에 연결된 메모리 셀들에 프로그램된다.
거친 프로그램이 수행된 단일 레벨 셀 영역(1110)과 멀티 레벨 셀 영역(1120)의 메모리 셀들의 문턱 전압 산포들이 도 7에 도시되어 있다. 거친 프로그램을 통해 단일 레벨 셀 영역(1110)과 멀티 레벨 셀 영역(1120)에 프로그램된 데이터의 상태가 도 8에 도시되어 있다. 예시적으로, 멀티 레벨 셀 영역(1120)의 하나의 워드 라인에 연결된 메모리 셀들의 문턱 전압 산포들, 그리고 멀티 레벨 셀 영역(1120)의 하나의 워드 라인과 연관된 LSB 데이터, CSB 데이터, 그리고 MSB 데이터가 프로그램되는 단일 레벨 셀 영역(1110)의 제 1 내지 제 3 워드 라인들에 연결된 메모리 셀들의 문턱 전압 산포들 및 데이터의 상태가 도 7 및 도 8에 각각 도시되어 있다.
도 4 및 도 5와 도 7 및 도 8을 비교하면, 멀티 레벨 셀 영역(1120)의 하나의 워드 라인에 연결된 메모리 셀들 각각에 1 비트, 즉 임의화된 MSB 데이터, 임의화된 MSB 메타 데이터, 그리고 스크램블된 MSB 시드가 추가적으로 프로그램된다. 메모리 셀들은 소거 상태(E) 또는 프로그램 상태들(P1'~P7') 중 하나를 가질 수 있다. 단일 레벨 셀 영역(1110)의 제 3 워드 라인에 연결된 메모리 셀들 각각에 1 비트, 즉 임의화된 MSB 데이터, 임의화된 MSB 메타 데이터, 그리고 스크램블된 MSB 시드가 프로그램된다. 메모리 셀들은 소거 상태(E) 또는 프로그램 상태(P)를 가질 수 있다.
도 9는 멀티 레벨 셀 영역(1120)에서 수행되는 프로그램의 세 번째 단계를 보여주는 순서도이다. 도 1 및 도 9를 참조하면, S410 단계에서 단일 레벨 셀 영역(1110)으로부터 임의화된 LSB 데이터, 임의화된 LSB 메타 데이터, 스크램블된 LSB 시드, 임의화된 CSB 데이터, 임의화된 CSB 메타 데이터, 스크램블된 CSB 시드, 임의화된 MSB 데이터, 임의화된 MSB 메타 데이터, 그리고 스크램블된 MSB 시드가 읽어진다.
S420 단계에서, 임의화된 LSB 데이터, 임의화된 LSB 메타 데이터, 스크램블된 LSB 시드, 임의화된 CSB 데이터, 임의화된 CSB 메타 데이터, 스크램블된 CSB 시드, 임의화된 MSB 데이터, 임의화된 MSB 메타 데이터, 그리고 스크램블된 MSB 시드에 기반하여, 멀티 레벨 셀 영역(1120)에서 프로그램이 수행된다. 이 프로그램은 정교한(fine) 프로그램일 수 있다.
정교한 프로그램이 수행된 단일 레벨 셀 영역(1110)과 멀티 레벨 셀 영역(1120)의 메모리 셀들의 문턱 전압 산포들이 도 10에 도시되어 있다. 예시적으로, 멀티 레벨 셀 영역(1120)의 하나의 워드 라인에 연결된 메모리 셀들의 문턱 전압 산포들, 그리고 멀티 레벨 셀 영역(1120)의 하나의 워드 라인과 연관된 LSB 데이터, CSB 데이터, 그리고 MSB 데이터가 프로그램되는 단일 레벨 셀 영역(1110)의 제 1 내지 제 3 워드 라인들에 연결된 메모리 셀들의 문턱 전압 산포들 및 데이터의 상태가 도 10에 도시되어 있다.
도 7의 문턱 전압 산포들과 비교하면, 멀티 레벨 셀 영역(1120)의 메모리 셀들이 더 높은 전압 레벨에서 더 좁은 문턱 전압 산포를 갖도록 프로그램된다.
멀티 레벨 셀 영역(1120)의 제 1 워드 라인에서 프로그램(1-스텝 프로그램, 거친 프로그램, 또는 정교한 프로그램)이 수행된 후, 인접한 제 2 워드 라인에서 프로그램(1-스텝 프로그램, 거친 프로그램, 또는 정교한 프로그램)이 수행될 수 있다. 제 2 워드 라인에서 프로그램이 수행될 때, 제 1 워드 라인의 메모리 셀들은 커플링을 경험할 수 있다. 커플링으로 인해, 제 1 워드 라인의 메모리 셀들의 문턱 전압 산포는 넓어질 수 있다.
제 1 워드 라인의 메모리 셀들에서 1-스텝 프로그램이 수행되고, 제 2 워드 라인의 메모리 셀들에서 1-스텝 프로그램이 수행되면, 제 1 워드 라인의 메모리 셀들의 문턱 전압 산포가 넓어질 수 있다. 제 1 워드 라인의 메모리 셀들에서 거친 프로그램이 수행되면, 제 1 워드 라인의 메모리 셀들의 문턱 전압 산포는 다시 좁아질 수 있다(도 7 참조). 제 1 워드 라인의 메모리 셀들에서 수행되는 거친 프로그램은 단일 레벨 셀 영역(1110)으로부터 읽어진 데이터에 기반하여 수행되므로, 제 1 워드 라인의 메모리 셀들에서 수행되는 거친 프로그램은 제 2 워드 라인에서 수행된 1-스텝 프로그램의 커플링의 영향을 받지 않는다.
제 2 워드 라인의 메모리 셀들에서 거친 프로그램이 수행되면, 제 1 워드 라인의 메모리 셀들의 문턱 전압 산포가 넓어질 수 있다. 제 1 워드 라인의 메모리 셀들에서 정교한 프로그램이 수행되면, 제 1 워드 라인의 메모리 셀들의 문턱 전압 산포는 다시 좁아질 수 있다(도 10 참조). 제 1 워드 라인의 메모리 셀들에서 수행되는 정교한 프로그램은 단일 레벨 셀 영역(SA, 1110)으로부터 읽어진 데이터에 기반하여 수행되므로, 제 1 워드 라인이 메모리 셀들에서 수행되는 정교한 프로그램은 제 2 워드 라인에서 수행된 거친 프로그램의 커플링의 영향을 받지 않는다.
제 2 워드 라인의 메모리 셀들에서 정교한 프로그램이 수행되면, 제 1 워드 라인의 메모리 셀들의 문턱 전압 산포가 넓어질 수 있다. 그러나, 도 7 및 도 10을 비교하면, 정교한 프로그램 시에 메모리 셀들의 문턱 전압들의 변화량은 1-스텝 프로그램 및 거친 프로그램 시의 메모리 셀들의 문턱 전압 변화량보다 적다. 즉, 제 2 워드 라인의 메모리 셀들에서 정교한 프로그램이 수행될 때의 커플링의 영향은, 제 2 워드 라인의 메모리 셀들에서 1-스텝 프로그램 및 거친 프로그램이 수행될 때의 커플링의 영향보다 적다.
상술된 바와 같이 3 단계에 걸친 프로그램이 수행되면, 멀티 레벨 셀 영역(1120)의 프로그램된 메모리 셀들(정교한 프로그램이 수행된 메모리 셀들)이 경험하는 커플링의 영향은 최소화될 수 있다. 이와 같이, 단일 레벨 셀 영역(1110)을 버퍼로 이용하여 3 단계에 걸쳐 수행되는 프로그램은 온-칩 버퍼 프로그램(OBP, On-chip Buffer Program)일 수 있다.
불휘발성 메모리 장치(1100)에 프로그램되는 데이터가 특정한 패턴을 가질 때, 프로그램된 데이터의 신뢰성을 저하시킬 수 있다. 예를 들어, 복수의 페이지들에 걸쳐 동일한 패턴의 데이터가 프로그램되면, 메모리 셀들 사이의 전기장이 강화되어 메모리 셀들에 축적 또는 포획된 전하의 유출이 발생할 수 있다. 데이터(쓰기 데이터, 메타 데이터 및 시드를 포함)의 임의화가 수행되고, 임의화된 데이터가 프로그램되면, 불휘발성 메모리 장치(1100)에 특정한 패턴이 프로그램되는 것이 방지될 수 있다. 따라서, 불휘발성 메모리 장치(1100)에 프로그램된 데이터의 신뢰성이 향상될 수 있다.
도 11은 도 1의 메모리 시스템(1000)의 응용 예를 보여주는 블록도이다. 도 11을 참조하면, 메모리 시스템(3000)은 불휘발성 메모리 장치(3100) 및 컨트롤러(3200)를 포함한다. 불휘발성 메모리 장치(3100)는 복수의 불휘발성 메모리 칩들을 포함한다. 복수의 불휘발성 메모리 칩들은 복수의 그룹들로 분할된다. 복수의 불휘발성 메모리 칩들의 각 그룹은 하나의 공통 채널을 통해 컨트롤러(3200)와 통신하도록 구성된다. 예시적으로, 복수의 불휘발성 메모리 칩들은 제 1 내지 제 k 채널들(CH1~CHk)을 통해 컨트롤러(3200)와 통신하는 것으로 도시되어 있다.
컨트롤러(3200)는 시드 생성기(3210), 시드 스크램블기(3220), 그리고 임의화 및 역임의화기(3230)를 포함할 수 있다. 도 1 내지 도 9를 참조하여 설명된 바와 같이, 컨트롤러(3200)는 생성된 시드를 스크램블하고, 스크램블된 시드를 이용하여 쓰기 데이터 및 메타 데이터를 임의화할 수 있다. 임의화된 데이터, 임의화된 메타 데이터, 그리고 스크램블된 시드가 불휘발성 메모리 장치(3100)에 프로그램될 수 있다.
도 11에서, 하나의 채널에 복수의 불휘발성 메모리 칩들이 연결되는 것으로 설명되었다. 그러나, 하나의 채널에 하나의 불휘발성 메모리 칩이 연결되도록 메모리 시스템(3000)이 변형될 수 있다.
도 12는 본 발명의 실시 예에 따른 메모리 카드(4000)를 보여준다. 도 12를 참조하면, 메모리 카드(4000)는 불휘발성 메모리 장치(4100), 컨트롤러(4200), 그리고 커넥터(4300)를 포함한다.
불휘발성 메모리 장치(4100)는 단일 레벨 셀 영역 및 멀티 레벨 셀 영역을 포함할 수 있다.
컨트롤러(4200)는 시드 생성기(4210), 시드 스크램블기(4220), 그리고 임의화 및 역임의화기(4230)를 포함할 수 있다. 도 1 내지 도 9를 참조하여 설명된 바와 같이, 컨트롤러(4200)는 생성된 시드를 스크램블하고, 스크램블된 시드를 이용하여 쓰기 데이터 및 메타 데이터를 임의화할 수 있다. 임의화된 데이터, 임의화된 메타 데이터, 그리고 스크램블된 시드가 불휘발성 메모리 장치(4100)에 프로그램될 수 있다.
커넥터(4300)는 메모리 카드(4000)와 호스트를 전기적으로 연결할 수 있다.
메모리 카드(4000)는 PC 카드(PCMCIA, personal computer memory card international association), 컴팩트 플래시 카드(CF), 스마트 미디어 카드(SM, SMC), 메모리 스틱, 멀티미디어 카드(MMC, RS-MMC, MMCmicro), SD 카드(SD, miniSD, microSD, SDHC), 유니버설 플래시 기억장치(UFS) 등과 같은 메모리 카드들을 구성할 수 있다.
도 13은 본 발명의 실시 예에 따른 솔리드 스테이트 드라이브(5000, SSD, Solid State Drive)를 보여준다. 도 13을 참조하면, 솔리드 스테이트 드라이브(5000)는 복수의 불휘발성 메모리 장치들(5100), 컨트롤러(5200), 그리고 커넥터(5300)를 포함한다.
불휘발성 메모리 장치들(5100) 각각은 단일 레벨 셀 영역 및 멀티 레벨 셀 영역을 포함할 수 있다. 불휘발성 메모리 장치들(5100) 중 일부는 단일 레벨 셀 장치들이고, 나머지 일부는 멀티 레벨 셀 장치들일 수 있다.
컨트롤러(5200)는 시드 생성기(5210), 시드 스크램블기(5220), 그리고 임의화 및 역임의화기(5230)를 포함할 수 있다. 도 1 내지 도 9를 참조하여 설명된 바와 같이, 컨트롤러(5200)는 생성된 시드를 스크램블하고, 스크램블된 시드를 이용하여 쓰기 데이터 및 메타 데이터를 임의화할 수 있다. 임의화된 데이터, 임의화된 메타 데이터, 그리고 스크램블된 시드가 불휘발성 메모리 장치(5100)에 프로그램될 수 있다.
커넥터(5300)는 솔리드 스테이트 드라이브(5000)와 호스트를 전기적으로 연결할 수 있다.
도 14는 도 11을 참조하여 설명된 메모리 시스템(3000)을 포함하는 컴퓨팅 시스템(6000)을 보여주는 블록도이다. 도 14를 참조하면, 컴퓨팅 시스템(6000)은 중앙 처리 장치(6100), 램(6200, RAM, Random Access Memory), 사용자 인터페이스(6300), 전원(6400), 그리고 메모리 시스템(3000)을 포함한다.
메모리 시스템(3000)은 시스템 버스(6500)를 통해, 중앙처리장치(6100), 램(6200), 사용자 인터페이스(6300), 그리고 전원(6400)에 전기적으로 연결된다. 사용자 인터페이스(6300)를 통해 제공되거나, 중앙 처리 장치(6100)에 의해서 처리된 데이터는 메모리 시스템(3000)에 저장된다.
도 14에서, 불휘발성 메모리 장치(3100)는 컨트롤러(3200)를 통해 시스템 버스(6500)에 연결되는 것으로 도시되어 있다. 그러나, 불휘발성 메모리 장치(3100)는 시스템 버스(6500)에 직접 연결되도록 구성될 수 있다.
도 14에서, 도 11을 참조하여 설명된 메모리 시스템(3000)이 제공되는 것으로 도시되어 있다. 그러나, 메모리 시스템(3000)은 도 1을 참조하여 설명된 메모리 시스템(1000 또는 2000)으로 대체될 수 있다.
본 발명의 상세한 설명에서는 구체적인 실시 예에 관하여 설명하였으나, 본 발명의 범위와 기술적 사상에서 벗어나지 않는 한도 내에서 여러 가지 변형이 가능하다. 그러므로 본 발명의 범위는 상술한 실시 예에 국한되어 정해져서는 안되며 후술하는 특허청구범위뿐만 아니라 이 발명의 특허청구범위와 균등한 것들에 의해 정해져야 한다.
1000; 메모리 시스템 1100; 불휘발성 메모리 장치
1110; 단일 레벨 셀 영역 1120; 멀티 레벨 셀 영역
1200; 컨트롤러 1210; 시드 생성기
1220; 시드 스크램블기 1230; 임의화 및 역임의화기
3000; 메모리 카드 4000; 솔리드 스테이트 드라이브
5000; 컴퓨팅 시스템

Claims (10)

  1. 불휘발성 메모리 장치에 데이터를 프로그램하는 프로그램 방법에 있어서:
    쓰기 데이터 및 상기 쓰기 데이터와 연관된 메타데이터를 생성하는 단계;
    상기 쓰기 데이터와 연관된 시드(Seed)를 생성하고, 상기 생성된 시드를 스크램블(scramble)하는 단계;
    상기 스크램블된 시드를 이용하여 상기 쓰기 데이터 및 메타데이터를 임의화하는 단계; 그리고
    상기 임의화된 데이터, 임의화된 메타데이터, 그리고 스크램블된 시드를 상기 불휘발성 메모리 장치에 프로그램하는 단계를 포함하는 프로그램 방법.
  2. 제 1 항에 있어서,
    상기 임의화된 데이터는 상기 불휘발성 메모리 장치의 하나의 워드 라인에 연결된 메모리 셀들 중 사용자 데이터 영역의 메모리 셀들에 프로그램되고, 상기 임의화된 메타데이터 및 스크램블된 시드는 상기 하나의 워드 라인에 연결된 메모리 셀들 중 스페어 영역의 메모리 셀들에 프로그램되는 프로그램 방법.
  3. 제 1 항에 있어서,
    상기 불휘발성 메모리 장치는 하나의 메모리 셀에 하나의 비트를 저장하는 메모리 셀들을 포함하는 단일 레벨 메모리 셀 영역 및 하나의 메모리 셀에 복수의 비트를 저장하는 멀티 레벨 메모리 셀 영역을 포함하는 프로그램 방법.
  4. 제 3 항에 있어서,
    상기 쓰기 데이터가 LSB 데이터 및 CSB 데이터를 포함할 때 상기 메타데이터를 생성하는 단계는, 상기 LSB 데이터와 연관된 LSB 메타데이터 및 상기 CSB 데이터와 연관된 CSB 메타데이터를 생성하는 단계를 포함하는 프로그램 방법.
  5. 제 4 항에 있어서,
    상기 쓰기 데이터가 LSB 데이터 및 CSB 데이터를 포함할 때 상기 시드를 생성하고 상기 생성된 시드를 스크램블하는 단계는,
    상기 LSB 데이터와 연관된 LSB 시드를 생성하고, 상기 생성된 LSB 시드를 스크램블하는 단계; 그리고
    상기 CSB 데이터와 연관된 CSB 시드를 생성하고, 상기 생성된 CSB 시드를 스크램블하는 단계를 포함하는 프로그램 방법.
  6. 제 5 항에 있어서,
    상기 쓰기 데이터가 LSB 데이터 및 CSB 데이터를 포함할 때 상기 임의화하는 단계는,
    상기 스크램블된 LSB 시드를 이용하여 상기 LSB 데이터 및 상기 LSB 메타데이터를 임의화하는 단계; 그리고
    상기 스크램블된 CSB 시드를 이용하여 상기 CSB 데이터 및 상기 CSB 메타데이터를 임의화하는 단계를 포함하는 프로그램 방법.
  7. 제 6 항에 있어서,
    상기 쓰기 데이터가 LSB 데이터 및 CSB 데이터를 포함할 때 상기 프로그램하는 단계는,
    상기 임의화된 LSB 데이터, 임의화된 LSB 메타데이터, 스크램블된 LSB 시드, 임의화된 CSB 데이터, 임의화된 CSB 데이터, 그리고 스크램블된 CSB 시드를 상기 멀티 레벨 셀 영역의 하나의 워드 라인에 연결된 메모리 셀들에 프로그램하는 단계;
    상기 임의화된 LSB 데이터, 임의화된 LSB 메타데이터, 그리고 스크램블된 LSB 시드를 상기 단일 레벨 셀 영역의 제 1 워드 라인에 연결된 메모리 셀들에 프로그램하는 단계; 그리고
    상기 임의화된 CSB 데이터, 임의화된 CSB 메타데이터, 그리고 스크램블된 CSB 시드를 상기 단일 레벨 셀 영역의 제 2 워드 라인에 연결된 메모리 셀들에 프로그램하는 단계를 포함하는 프로그램 방법.
  8. 제 7 항에 있어서,
    상기 쓰기 데이터가 MSB 데이터를 포함할 때 상기 메타데이터를 생성하는 단계는, 상기 MSB 데이터와 연관된 MSB 메타데이터를 생성하는 단계를 포함하는 프로그램 방법.
  9. 제 8 항에 있어서,
    상기 쓰기 데이터가 MSB 데이터를 포함할 때 상기 시드를 생성하고 상기 생성된 시드를 스크램블하는 단계는,
    상기 MSB 데이터와 연관된 MSB 시드를 생성하고, 상기 생성된 MSB 시드를 스크램블하는 단계를 포함하는 프로그램 방법.
  10. 하나의 메모리 셀에 하나의 비트를 저장하는 메모리 셀들을 포함하는 단일 레벨 메모리 셀 영역 및 하나의 메모리 셀에 복수의 비트를 저장하는 멀티 레벨 메모리 셀 영역을 포함하는 불휘발성 메모리 장치; 그리고
    상기 불휘발성 메모리 장치를 제어하도록 구성되는 컨트롤러를 포함하고,
    상기 컨트롤러는,
    쓰기 데이터와 연관된 메타데이터를 생성하고, 상기 쓰기 데이터와 연관된 시드(Seed)를 생성하고, 상기 생성된 시드를 스크램블(scramble)하고, 상기 스크램블된 시드를 이용하여 상기 쓰기 데이터 및 메타데이터를 임의화하고, 그리고 상기 임의화된 데이터, 임의화된 메타데이터, 그리고 스크램블된 시드를 상기 불휘발성 메모리 장치에 프로그램하도록 구성되는 메모리 시스템.
KR1020110120307A 2011-11-17 2011-11-17 불휘발성 메모리 장치에 데이터를 프로그램하는 프로그램 방법 및 불휘발성 메모리 장치를 포함하는 메모리 시스템 KR20130054738A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020110120307A KR20130054738A (ko) 2011-11-17 2011-11-17 불휘발성 메모리 장치에 데이터를 프로그램하는 프로그램 방법 및 불휘발성 메모리 장치를 포함하는 메모리 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020110120307A KR20130054738A (ko) 2011-11-17 2011-11-17 불휘발성 메모리 장치에 데이터를 프로그램하는 프로그램 방법 및 불휘발성 메모리 장치를 포함하는 메모리 시스템

Publications (1)

Publication Number Publication Date
KR20130054738A true KR20130054738A (ko) 2013-05-27

Family

ID=48663471

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110120307A KR20130054738A (ko) 2011-11-17 2011-11-17 불휘발성 메모리 장치에 데이터를 프로그램하는 프로그램 방법 및 불휘발성 메모리 장치를 포함하는 메모리 시스템

Country Status (1)

Country Link
KR (1) KR20130054738A (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160074836A (ko) * 2014-12-18 2016-06-29 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160074836A (ko) * 2014-12-18 2016-06-29 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법

Similar Documents

Publication Publication Date Title
KR20130053247A (ko) 불휘발성 메모리 장치에 데이터를 프로그램하는 프로그램 방법 및 불휘발성 메모리 장치를 포함하는 메모리 시스템
US20140115234A1 (en) Memory system comprising nonvolatile memory device and related method of operation
CN106128505B (zh) 包括半导体存储器件的存储系统以及其编程方法
US20160179625A1 (en) Data storage device and operating method thereof
US8867283B2 (en) Semiconductor memory device, operating method thereof, and data storage apparatus including the same
KR20140013383A (ko) 불휘발성 메모리 장치 및 그것의 동작 방법
US9245631B2 (en) Apparatus and method of storing data at a multi-bit storage element
KR20130049543A (ko) 불휘발성 메모리 장치를 포함하는 메모리 시스템 및 불휘발성 메모리 장치를 제어하는 제어 방법
JP2011159380A (ja) 可変抵抗メモリ装置、その動作方法、及びそれを含むメモリシステム
US9110788B2 (en) Apparatus and method of using dummy data while storing data at a multi-bit storage element
US9520184B2 (en) Method for writing in-system programming code into flash memory for better noise margin
CN105718212B (zh) 数据储存装置及其操作方法
TWI707268B (zh) 資料儲存裝置及其操作方法
US20150154067A1 (en) Memory system including randomizer and derandomizer
US9837145B2 (en) Multi-level flash storage device with minimal read latency
CN105280235A (zh) 半导体存储器件、具有其的存储系统及其操作方法
KR20130054738A (ko) 불휘발성 메모리 장치에 데이터를 프로그램하는 프로그램 방법 및 불휘발성 메모리 장치를 포함하는 메모리 시스템
US9373369B1 (en) Data storage device and operating method thereof
US20180254088A1 (en) Semiconductor memory device and method of erasing data in semiconductor memory device
US20170125069A1 (en) Semiconductor device including multiple planes
CN108257642B (zh) 读阈值设置方法与装置
CN106601294A (zh) 数据储存设备及其操作方法
US11709622B2 (en) Performing scrambling operations based on a physical block address of a memory sub-system
US9473171B2 (en) Data encoding method for compressing data to be stored, data storage device with data encoder, and operating method of data storage device
US9501373B2 (en) Data storage device and operating method thereof

Legal Events

Date Code Title Description
WITN Withdrawal due to no request for examination