KR102378384B1 - 불휘발성 메모리 장치의 동작 방법 및 메모리 컨트롤러의 동작 방법 - Google Patents

불휘발성 메모리 장치의 동작 방법 및 메모리 컨트롤러의 동작 방법 Download PDF

Info

Publication number
KR102378384B1
KR102378384B1 KR1020170116113A KR20170116113A KR102378384B1 KR 102378384 B1 KR102378384 B1 KR 102378384B1 KR 1020170116113 A KR1020170116113 A KR 1020170116113A KR 20170116113 A KR20170116113 A KR 20170116113A KR 102378384 B1 KR102378384 B1 KR 102378384B1
Authority
KR
South Korea
Prior art keywords
data
pattern
memory device
nonvolatile memory
signal
Prior art date
Application number
KR1020170116113A
Other languages
English (en)
Other versions
KR20190029056A (ko
Inventor
김영욱
김형진
신숭만
이근환
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020170116113A priority Critical patent/KR102378384B1/ko
Priority to US15/964,993 priority patent/US10366023B2/en
Priority to DE102018117119.6A priority patent/DE102018117119A1/de
Priority to CN201811018468.8A priority patent/CN109493907B/zh
Publication of KR20190029056A publication Critical patent/KR20190029056A/ko
Application granted granted Critical
Publication of KR102378384B1 publication Critical patent/KR102378384B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/3436Arrangements for verifying correct programming or erasure
    • G11C16/344Arrangements for verifying correct erasure or for detecting overerased cells
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1689Synchronisation and timing concerns
    • 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/3404Convergence or correction of memory cell threshold voltages; Repair or recovery of overerased or overprogrammed cells
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0658Controller construction arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • 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
    • 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/32Timing 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
    • G11C16/3418Disturbance prevention or evaluation; Refreshing of disturbed memory data
    • G11C16/3422Circuits or methods to evaluate read or write disturbance in nonvolatile memory, without steps to mitigate the problem
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/3436Arrangements for verifying correct programming or erasure
    • G11C16/3454Arrangements for verifying correct programming or for detecting overprogrammed cells
    • G11C16/3459Circuits or methods to verify correct programming of nonvolatile memory cells
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/52Protection of memory contents; Detection of errors in memory contents
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1006Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor
    • G11C7/1009Data masking during input/output
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1078Data input circuits, e.g. write amplifiers, data input buffers, data input registers, data input level conversion circuits
    • G11C7/1093Input synchronization
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/22Read-write [R-W] timing or clocking circuits; Read-write [R-W] control signal generators or management 
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2207/00Indexing scheme relating to arrangements for writing information into, or reading information out from, a digital store
    • G11C2207/22Control and timing of internal memory operations
    • G11C2207/2254Calibration

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Memory System (AREA)
  • Dram (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

본 발명에 따른 불휘발성 메모리 장치의 동작 방법은 외부 장치로부터 데이터 신호(DQ)를 통해 프로그램 커맨드 및 어드레스를 수신하는 단계, 패턴 구간 동안, 데이터 신호 및 데이터 신호와 동기된 데이터 스트로브 신호(DQS)를 통해 외부 장치로부터 특정 패턴을 수신하는 단계, 데이터 구간 동안, 데이터 신호 및 데이터 스트로브 신호를 통해 외부 장치로부터 사용자 데이터를 수신하는 단계, 및 특정 패턴이 미리 정해진 패턴과 일치하는 경우 사용자 데이터에 대한 프로그램 동작을 수행하고, 특정 패턴이 미리 정해진 패턴과 일치하지 않는 경우 복구 동작을 수행하는 단계를 포함한다. 패턴 구간 동안, 데이터 스트로브 신호의 상승 에지 또는 하강 에지는 데이터 신호의 윈도우의 좌측 에지(Left edge) 또는 우측 에지(Right edge)에 정렬된다.

Description

불휘발성 메모리 장치의 동작 방법 및 메모리 컨트롤러의 동작 방법{OPERATION METHOD OF NONVOLATILE MEMORY DEVICE AND OPERATION METHOD OF MEMORY CONTROLLER}
본 발명은 반도체 메모리에 관한 것으로, 좀 더 상세하게는 불휘발성 메모리 장치의 동작 방법 및 메모리 컨트롤러의 동작 방법에 관한 것이다.
반도체 메모리는 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) 등과 같이 전원 공급이 차단되어도 저장하고 있던 데이터를 유지하는 불휘발성 메모리 장치로 구분된다.
플래시 메모리 장치는 컴퓨팅 시스템에서 대용량 저장 매체로서 널리 사용된다. 플래시 메모리 장치는 다양한 전기 신호들을 기반으로 메모리 컨트롤러와 통신하도록 구성된다. 플래시 메모리 장치의 동작 도중에 발생하는 다양한 요인으로 인하여, 전기 신호들이 왜곡됨으로써, 플래시 메모리 장치가 정상적으로 데이터를 송수신하지 못할 수 있다.
본 발명은 향상된 신뢰성을 갖는 불휘발성 메모리 장치의 동작 방법 및 메모리 컨트롤러의 동작 방법이 제공된다. 및 그것의 동작 방법을 제공한다.
본 발명의 실시 예에 따른 불휘발성 메모리 장치의 동작 방법은 외부 장치로부터 데이터 신호(DQ)를 통해 프로그램 커맨드 및 어드레스를 수신하는 단계, 패턴 구간 동안, 상기 데이터 신호 및 상기 데이터 신호와 동기된 데이터 스트로브 신호(DQS)를 통해 상기 외부 장치로부터 특정 패턴을 수신하는 단계, 데이터 구간 동안, 상기 데이터 신호 및 상기 데이터 스트로브 신호를 통해 상기 외부 장치로부터 사용자 데이터를 수신하는 단계, 및 상기 특정 패턴이 미리 정해진 패턴과 일치하는 경우 상기 사용자 데이터에 대한 프로그램 동작을 수행하고, 상기 특정 패턴이 상기 미리 정해진 패턴과 일치하지 않는 경우 복구 동작을 수행하는 단계를 포함하고, 상기 패턴 구간 동안, 상기 데이터 스트로브 신호의 상승 에지 또는 하강 에지는 상기 데이터 신호의 윈도우의 좌측 에지(Left edge) 또는 우측 에지(Right edge)에 정렬 된다.
본 발명의 실시 예에 따른 불휘발성 메모리 장치의 동작 방법은 외부 장치로부터 데이터 신호(DQ)를 통해 프로그램 커맨드 및 어드레스를 수신하는 단계, 패턴 구간 동안, 상기 데이터 신호 및 상기 데이터 신호에 동기된 데이터 스트로브 신호를 통해 상기 외부 장치로부터 특정 패턴을 수신하는 단계, 데이터 구간 동안, 상기 데이터 신호 및 상기 데이터 스트로브 신호를 통해 상기 외부 장치로부터 사용자 데이터 및 순환 중복 검사(CRC, cyclic redundancy check) 코드를 수신하는 단계, 및 상기 특정 패턴이 미리 정해진 패턴과 일치하지 않거나 또는 상기 CRC 코드를 기반으로 상기 사용자 데이터에서 오류가 검출된 경우 복구 동작을 수행하고, 상기 특정 패턴이 상기 미리 정해진 패턴과 일치하고 상기 CRC 코드를 기반으로 상기 사용자 데이터에서 오류가 검출되지 않은 경우, 상기 사용자 데이터에 대한 프로그램 동작을 수행하는 단계를 포함한다.
본 발명의 실시 예에 따른 불휘발성 메모리 장치를 제어하는 메모리 컨트롤러의 동작 방법은 데이터 신호를 통해 상기 불휘발성 메모리 장치로 커맨드 및 어드레스를 전송하는 단계, 패턴 구간 동안, 상기 데이터 신호 및 상기 데이터 신호에 동기된 데이터 스트로브 신호를 통해 상기 불휘발성 메모리 장치로 특정 패턴을 전송하는 단계, 데이터 구간 동안, 상기 데이터 신호 및 상기 데이터 스트로브 신호를 통해 상기 불휘발성 메모리 장치로 사용자 데이터를 전송하는 단계, 상기 불휘발성 메모리 장치로부터 상태 정보를 수신하는 단계, 및 상기 상태 정보에 응답하여, 상기 불휘발성 메모리 장치에 대한 복구 동작을 수행하는 단계를 포함하되, 상기 패턴 구간 동안, 상기 데이터 스트로브 신호의 상승 에지 또는 하강 에지는 상기 데이터 신호의 윈도우의 좌측 에지 또는 우측 에지에 정렬된다.
본 발명의 실시 예에 따른 불휘발성 메모리 장치는 복수의 메모리 셀들을 포함하는 메모리 셀 어레이, 외부 장치로부터 데이터 신호 및 데이터 스트로브 신호를 통해 특정 패턴 및 사용자 데이터를 수신하도록 구성된 입출력 장치, 상기 특정 패턴이 미리 정해진 패턴과 일치하는지 판별하도록 구성된 패턴 검사기, 및 상기 패턴 검사기의 판별 결과에 따라, 상기 사용자 데이터를 상기 메모리 셀 어레이에 프로그램하는 프로그램 동작 및 상기 프로그램 동작 없이 상기 프로그램 동작을 프로그램 실패로 처리하도록 구성된 제어 로직 회로를 포함한다.
본 발명의 실시 예에 따른 불휘발성 메모리 장치의 동작 방법은 외부 장치로부터 커맨드 및 어드레스를 수신하는 단계, 상기 외부 장치로부터 데이터 신호 및 데이터 스트로브 신호를 통해 특정 패턴 및 사용자 데이터를 수신하는 단계, 및 상기 수신된 특정 패턴이 미리 정해진 패턴과 일치하지 않는 경우, 상기 사용자 데이터에 대한 프로그램 동작 없이 재-트레이닝 동작을 수행하는 단계를 포함한다.
본 발명에 따르면, 불휘발성 메모리 장치는 메모리 컨트롤러로부터 특정 패턴을 수신하고, 수신된 특정 패턴에 대한 패턴 검사 결과에 따라 사용자 데이터에 대한 프로그램 동작을 수행하거나 또는 복구 동작을 수행한다. 따라서, 사용자 데이터의 신뢰성이 향상되므로, 향상된 신뢰성을 갖는 불휘발성 메모리 장치 및 그것의 동작 방법이 제공된다.
도 1은 본 발명의 실시 예에 따른 저장 장치를 보여주는 블록도이다.
도 2는 도 1의 불휘발성 메모리 장치를 보여주는 블록도 이다.
도 3a 내지 도 3c는 불휘발성 메모리 장치로 입력되는 데이터 신호 및 데이터 스트로브 신호를 보여주는 타이밍도 이다.
도 4는 도 1의 불휘발성 메모리 장치의 동작을 보여주는 순서도이다.
도 5a 및 도 5b는 도 1의 불휘발성 메모리 장치로 제공되는 데이터 신호 및 데이터 스트로브 신호를 보여주는 타이밍도들이다.
도 6은 도 4의 S150 단계를 상세하게 보여주는 순서도이다.
도 7a 내지 도 7c는 패턴 불일치의 예시적인 사례들을 보여주는 타이밍도들이다.
도 8은 본 발명에 따른 복구 동작 중 하나인 재-트레이닝 동작을 보여주는 순서도이다.
도 9는 본 발명에 따른 복구 동작 중 하나인 재-고정 동작을 설명하기 위한 도면이다.
도 10은 도 1의 불휘발성 메모리 장치로의 데이터 입력을 보여주는 타이밍도이다.
도 11a 및 도 11b는 도 1의 불휘발성 메모리 장치의 프로그램 동작을 예시적으로 보여주는 타이밍도들이다.
도 12는 도 1의 불휘발성 메모리 장치의 동작을 보여주는 순서도이다.
도 13은 데이터 신호의 윈도우를 설명하기 위한 도면이다.
도 14a 내지 도 14c는 불휘발성 메모리 장치로의 데이터 입력을 보여주는 타이밍도들이다.
도 15는 도 1의 불휘발성 메모리 장치의 동작을 보여주는 순서도이다.
도 16은 도 15의 순서도에 따른 불휘발성 메모리 장치로의 데이터 입력을 보여주는 타이밍도이다.
도 17은 도 1의 불휘발성 메모리 장치의 동작을 보여주는 순서도이다.
도 18은 도 17의 순서도에 따른 불휘발성 메모리 장치로의 데이터 입력을 보여주는 타이밍도이다.
도 19는 본 발명의 실시 예에 따른 페이지 프로그램 동작을 예시적으로 보여주는 타이밍도이다.
도 20은 본 발명에 따른 메모리 컨트롤러 및 불휘발성 메모리 장치 사이의 동작을 보여주는 도면이다.
도 21은 본 발명의 실시 예에 따른 저장 장치를 보여주는 블록도이다.
도 22는 본 발명에 따른 불휘발성 메모리 장치가 적용된 SSD 시스템(1000)을 보여주는 블록도이다.
이하에서, 본 발명의 기술 분야에서 통상의 지식을 가진 자가 본 발명을 용이하게 실시할 수 있을 정도로, 본 발명의 실시 예들이 명확하고 상세하게 기재될 것이다.
도 1은 본 발명의 실시 예에 따른 저장 장치를 보여주는 블록도이다. 도 1을 참조하면, 저장 장치(100)는 메모리 컨트롤러(110) 및 불휘발성 메모리 장치(120)를 포함할 수 있다.
메모리 컨트롤러(110)는 불휘발성 메모리 장치(120)에 데이터(DATA)를 저장할 수 있다. 예를 들어, 메모리 컨트롤러(110)는 복수의 데이터 신호들(DQ)을 통해 불휘발성 메모리 장치(120)로 커맨드(CMD), 어드레스(ADDR), 및 데이터(DATA)를 제공할 수 있다. 메모리 컨트롤러(110)는 제어 신호(CTRL) 및 데이터 스트로브 신호(DQS)를 불휘발성 메모리 장치(120)로 제공할 수 있다.
예시적으로, 제어 신호(CTRL), 데이터 스트로브 신호(DQS), 및 복수의 데이터 신호들(DQ)은 각각 서로 다른 신호 라인 또는 서로 다른 신호 핀을 통해 불휘발성 메모리 장치(120)로 제공될 수 있다. 제어 신호(CTRL) 및 데이터 스트로브 신호(DQS)는 복수의 데이터 신호들(DQ)을 통해 불휘발성 메모리 장치(120)로 제공되는 신호들(예를 들어, 커맨드(CMD), 어드레스(ADDR), 또는 데이터(DATA))을 구분하기 위한 신호들일 수 있다. 예시적으로, 데이터 신호(DQ)는 데이터 핀(DQ pin)을 통해 송수신되는 신호를 가리키고, 데이터 스트로브 신호(DQS)는 데이터 스트로브 핀(DQS pin)을 통해 송수신되는 신호를 가리킨다.
불휘발성 메모리 장치(120)는 메모리 컨트롤러(110)로부터의 신호들에 응답하여 동작할 수 있다. 예를 들어, 불휘발성 메모리 장치(120)는 제어 신호들(CTRL)을 기반으로, 데이터 신호들(DQ)을 통해 제공되는 신호가 커맨드(CMD)인지, 어드레스(ADDR)인지, 또는 데이터(DATA)인지 구분할 수 있다. 예시적으로, 제어 신호(CTRL)는 칩 활성 신호(chip Enable signal), 커맨드 래치 활성 신호(command latch enable signal), 어드레스 래치 활성 신호(address latch enable signal), 읽기 활성 신호(read enable signal), 또는 쓰기 활성 신호(write enable signal) 등을 포함할 수 있다.
불휘발성 메모리 장치(120)는 데이터 스트로브 신호(DQS)를 기반으로, 데이터 신호들(DQ)을 통해 제공되는 데이터(DATA)를 식별(또는 캡쳐)하도록 구성될 수 있다. 불휘발성 메모리 장치(120)는 수신된 커맨드(CMD) 및 어드레스(ADDR)를 기반으로, 식별된 데이터(DATA)를 저장할 수 있다.
이하에서, 설명의 편의를 위하여, 불휘발성 메모리 장치(120)에서 "수신된 데이터(received data)"는 데이터 스트로브 신호(DQS)를 기반으로 식별된 데이터인 것으로 가정한다. 이러한 표현은 본 발명의 설명을 용이하게 하기 위한 것이며, 본 발명의 기술적 사상을 제한하지 않는다.
예시적으로, 불휘발성 메모리 장치(120)는 낸드 플래시 메모리를 포함할 수 있다. 그러나 본 발명의 범위가 이에 한정되는 것은 아니며, 불휘발성 메모리 장치(120)는 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) 등과 같은 휘발성 또는 불휘발성 메모리들 중 적어도 하나를 포함할 수 있다.
본 발명에 따른 불휘발성 메모리 장치(120)는 패턴 검사기(121)를 포함할 수 있다. 예시적으로, 패턴 검사기(121)는 소프트웨어, 하드웨어, 또는 그것들의 조합의 형태로 구현될 수 있다. 패턴 검사기(121)는 메모리 컨트롤러(110)로부터 수신된 데이터(DATA) 중 일부에 대한 패턴 검사(또는 패턴 매칭)를 수행하여, 수신된 데이터(DATA) 중 나머지에 대한 유효성을 판별할 수 있다.
좀 더 상세한 예로써, 저장 장치(100)의 쓰기 동작 또는 프로그램 동작 시, 메모리 컨트롤러(110)는 데이터 스트로브 신호(DQS) 및 복수의 데이터 신호들(DQ)을 통해 특정 패턴을 갖는 데이터(이하에서, 간결한 설명을 위하여, "특정 패턴(SP; Specific Pattern)"이라 칭함.) 및 사용자 데이터(UD)(User Data)를 불휘발성 메모리 장치(120)로 제공할 수 있다. 불휘발성 메모리 장치(120)는 데이터 스트로브 신호(DQS)를 기반으로, 메모리 컨트롤러(110)로부터의 특정 패턴(SP) 및 사용자 데이터(UD)를 식별할 수 있다. 예를 들어, 불휘발성 메모리 장치(120)는 데이터 스트로브 신호(DQS)의 상승 에지(rising edge) 또는 하강 에지(falling edge)에서, 복수의 데이터 신호들(DQ)을 식별함으로써, 특정 패턴(SP) 및 사용자 데이터(UD)를 수신할 수 있다.
이 때, 다양한 외부 요인들(예를 들어, 온도 변화, 동작 전압 변화, 동작 속도 변화 등)로 인하여 데이터 스트로브 신호(DQS) 또는 데이터 신호(DQ)가 왜곡됨으로써, 불휘발성 메모리 장치(120)가 특정 패턴(SP) 및 사용자 데이터(UD)를 정상적으로 식별하지 못할 수 있다. 이 경우, 사용자 데이터(UD)가 정상적으로 식별되지 않기 때문에, 불휘발성 메모리 장치(120)는 의도되지 않은 데이터 또는 비정상 데이터를 저장할 것이다.
본 발명에 따른 불휘발성 메모리 장치(120)의 패턴 검사기(121)는 메모리 컨트롤러(110)로부터 수신된 특정 패턴(SP)이 미리 정해진 패턴과 일치하는지 판별하는 패턴 검사를 수행하고, 패턴 검사 결과에 따라 사용자 데이터(UD)를 유효 데이터 또는 무효 데이터로 처리함으로써, 비정상 데이터가 저장되는 것을 방지할 수 있다.
예를 들어, 수신된 특정 패턴(SP)이 미리 정해진 패턴과 일치하는 경우, 불휘발성 메모리 장치(120)는 사용자 데이터(UD)에 대한 프로그램 동작을 수행한다. 수신된 특정 패턴(SP)이 미리 정해진 패턴과 일치하지 않는 경우, 메모리 컨트롤러(110) 및 불휘발성 메모리 장치(120)는 복구 동작을 수행하여 데이터 스트로브 신호(DQS) 또는 데이터 신호(DQ) 사이의 중앙 정렬(center aligning)을 맞추거나 또는 데이터 스트로브 신호(DQS) 또는 데이터 신호(DQ)의 왜곡을 보정할 수 있다. 본 발명에 따른 불휘발성 메모리 장치(120)의 동작은 이하의 도면들을 참조하여 더욱 상세하게 설명된다.
도 2는 도 1의 불휘발성 메모리 장치를 보여주는 블록도이다. 도 2를 참조하면, 불휘발성 메모리 장치(120)는 패턴 검사기(121), 메모리 셀 어레이(122), 어드레스 디코더(123), 페이지 버퍼 회로(124), 입출력 회로(125), 및 제어 로직 회로(126)를 포함할 수 있다. 패턴 검사기(121)는, 앞서 설명된 바와 같이, 메모리 컨트롤러(110)로부터 수신된 특정 패턴(SP)에 대한 패턴 검사를 수행할 수 있다. 패턴 검사 결과는 제어 로직 회로(126)로 제공될 수 있다.
메모리 셀 어레이(122)는 복수의 메모리 블록들을 포함할 수 있다. 복수의 메모리 블록들 각각은 복수의 메모리 셀들을 포함할 수 있다. 복수의 메모리 셀들 각각은 워드라인들(WL)을 통해 연결될 수 있다. 복수의 메모리 셀들 각각은 1-비트 데이터를 저장하는 SLC(single level cell)이거나 또는 적어도 2-비트 이상의 데이터를 저장하는 MLC(multi-level cell)일 수 있다.
어드레스 디코더(123)는 스트링 선택 라인들(SSL), 워드라인들(WL), 및 접지 선택 라인들(GSL)을 통해 메모리 셀 어레이(122)와 연결될 수 있다. 어드레스 디코더(123)는 메모리 컨트롤러(110)로부터 어드레스(ADDR)를 수신하고, 수신된 어드레스(ADDR)를 디코딩할 수 있다. 어드레스 디코더(123)는 디코딩된 어드레스(ADDR)를 기반으로 스트링 선택 라인들(SSL), 워드라인들(WL), 및 접지 선택 라인들(GSL)의 전압을 제어할 수 있다.
페이지 버퍼 회로(124)는 비트라인들(BL)을 통해 메모리 셀 어레이(122)와 연결될 수 있다. 페이지 버퍼 회로(124)는 신호 라인들(DL)을 통해 입출력 회로(125)와 연결될 수 있다. 페이지 버퍼 회로(124)는 신호 라인들(DL)을 통해 입출력 회로(125)로부터 데이터(DATA)(특히, 사용자 데이터(UD))를 수신하고, 수신된 데이터(DATA)를 임시 저장할 수 있다. 또는 페이지 버퍼 회로(124)는 메모리 셀 어레이(122)로부터 읽은 데이터를 임시 저장할 수 있다.
입출력 회로(125)는 메모리 컨트롤러(110)로부터 데이터(DATA)를 수신할 수 있다. 예시적으로, 입출력 회로(125)는 메모리 컨트롤러(110)로부터의 데이터 스트로브 신호(DQS)에 동기 하여, 데이터(DATA)를 식별 또는 수신하도록 구성될 수 있다. 예시적으로, 데이터(DATA)는 특정 패턴(SP) 및 사용자 데이터(UD)를 포함할 수 있다.
제어 로직 회로(126)는 메모리 컨트롤러(110)로부터의 커맨드(CMD) 및 제어 신호(CTRL)에 응답하여, 어드레스 디코더(123), 페이지 버퍼 회로(124), 입출력 회로(125), 및 패턴 검사기(121)를 제어할 수 있다. 예시적으로, 제어 로직 회로(126)는, 패턴 검사기(121)의 패턴 검사 결과를 기반으로, 메모리 컨트롤러(110)로부터 수신된 사용자 데이터(UD)에 대한 프로그램 동작이 수행되지 않도록, 각 구성 요소를 제어할 수 있다. 비록 도면에 도시되지는 않았으나, 패턴 검사기(121)는 제어 로직 회로(126) 또는 입출력 회로(125) 또는 페이지 버퍼 회로(124) 내에 포함될 수 있다.
도 3a 내지 도 3c는 불휘발성 메모리 장치로 입력되는 데이터 신호 및 데이터 스트로브 신호를 보여주는 타이밍도이다. 예시적으로, 도 3a 내지 도 3c를 참조하여, 데이터 스트로브 신호(DQS)의 왜곡 또는 데이터 신호(DQ)의 왜곡에 의해 발생되는 문제점이 설명된다.
또한, 도면의 간결성 및 설명의 편의를 위하여, 프로그램 동작 시, 메모리 컨트롤러(110)로부터 제공되는 제어 신호(CTRL), 커맨드(CMD), 및 어드레스(ADDR)의 구성은 도 3a 내지 도 3c에서 생략되며, 불휘발성 메모리 장치(120)로 입력되는 데이터 신호(DQ) 및 데이터 스트로브 신호(DQS)만 도 3a 내지 도 3c에 도시된다.
또한, 하나의 데이터 신호(DQ)가 도 3a 내지 도 3c에 도시되나, 본 발명의 범위가 이에 한정되는 것은 아니며, 복수의 데이터 신호들(DQ)을 통해 불휘발성 메모리 장치(120)로 다양한 정보가 제공될 수 있다.
먼저, 도 1 및 도 3a를 참조하면, 메모리 컨트롤러(110)는 데이터 신호(DQ)를 통해 복수의 사용자 데이터(UD1~UDm)를 불휘발성 메모리 장치(120)로 제공할 수 있다. 이 때, 메모리 컨트롤러(110)는 불휘발성 메모리 장치(120)가 복수의 사용자 데이터(UD1~UDm)를 식별할 수 있도록, 데이터 신호(DQ)와 동기된 데이터 스트로브 신호(DQS)를 제공할 수 있다. 이하에서, 설명의 편의를 위하여, 메모리 컨트롤러(110)로부터 불휘발성 메모리 장치(120)로 사용자 데이터(UD)가 제공되는 구간은 "데이터 구간(T_DATA)(Data Period)"이라 칭한다.
불휘발성 메모리 장치(120)는 데이터 스트로브 신호(DQS)의 상승 에지(rising edge) 또는 하강 에지(falling edge)에서, 데이터 신호(DQ)를 식별(또는 캡쳐, 또는 수신)할 수 있다. 이상적인 경우, 데이터 스트로브 신호(DQS)의 상승 에지 또는 하강 에지는 데이터 신호(DQ)의 윈도우 범위의 중앙에 정렬(center-aligned)되도록 구성된다. 그러나 도 3a의 "A" 영역에 도시된 바와 같이, 데이터 스트로브 신호(DQS)의 첫 주기(first cycle)의 듀티 비(duty rate)가 달라질 수 있다. 이 경우, 도 3a에 도시된 바와 같이, 제1 사용자 데이터(UD1)는 불휘발성 메모리 장치(120)에서 식별되지 않거나 또는 잘못 식별될 수 있다.
다음으로, 도 3b를 참조하면, 데이터 구간(T_DATA) 이전에 더미 구간(T_DUMMY)(Dummy period)이 추가될 수 있다. 예를 들어, 메모리 컨트롤러(110)는 더미 구간(T_DUMMY)에서, 불휘발성 메모리 장치(120)로 더미 데이터(DM1~DM4)를 전송하고, 이후에 데이터 구간(T_DATA)에서 불휘발성 메모리 장치(120)로 사용자 데이터(UD1~UDm)를 전송한다.
불휘발성 메모리 장치(120)는 더미 구간(T_DUMMY)에서 수신된 더미 데이터(DM1~DM4)를 무시하고, 더미 구간(T_DUMMY) 이후의 데이터 구간(T_DATA) 동안 수신된 사용자 데이터(UD1~UDm)를 유효한 데이터로 인식할 수 있다. 따라서, 데이터 스트로브 신호(DQS)의 듀티 비(duty rate)가 일정 구간(특히, 데이터 스트로브 신호(DQS)의 첫 주기 또는 수 주기)에서 틀어지더라도, 불휘발성 메모리 장치(120)는 정상적으로 사용자 데이터(UD1~UDm)를 식별할 수 있다.
예시적으로, 도 3b의 더미 구간(T_DUMMY)은 "쓰기를 위한 데이터 스트로브 레이턴시(DQS latency for WRITE)"일 수 있으며, 도 3b의 더미 구간(T_DUMMY)의 길이는 데이터 스트로브 신호(DQS)의 2주기(2 cycles)일 수 있다. 더미 구간(T_DUMMY)의 길이는 메모리 컨트롤러(110) 및 불휘발성 메모리 장치(120)에 의해 미리 정해진 시간 또는 미리 정해진 사이클 수일 수 있다. 예시적으로, 더미 구간(T_DUMMY)의 길이는 메모리 컨트롤러(110) 및 불휘발성 메모리 장치(120) 사이의 셋 피쳐 동작(set feature operation)에 의해 설정될 수 있다.
다음으로, 도 3c를 참조하면, 도 3b를 참조하여 설명된 바와 같이, 메모리 컨트롤러(110)는 더미 구간(T_DUMMY)에서, 불휘발성 메모리 장치(120)로 더미 데이터(DM1~DM4)를 전송하고, 이후에 데이터 구간(T_DATA)에서 불휘발성 메모리 장치(120)로 사용자 데이터(UD1~UDm)를 전송한다. 다만 도 3b와 달리, 데이터 스트로브 신호(DQS)에서, 다양한 요인에 의해 전체적인 DQS 지연(DQS Delay)이 발생할 수 있다. 이 경우, 불휘발성 메모리 장치(120)는 더미 데이터(DM1~DM4) 뿐만 아니라, 사용자 데이터(UD1~UDm) 또한 식별하지 못하거나 또는 잘못 식별할 수 있다.
본 발명은 상술된 바와 같이, 다양한 요인으로 인하여 데이터 스트로브 신호(DQS)의 왜곡(예를 들어, 듀티 비(duty rate) 차이, 지연 발생 등)이 발생한 경우, 불휘발성 메모리 장치(120)는 패턴 검사를 통해 데이터 스트로브 신호(DQS)의 왜곡을 감지하고, 이에 따른 복구 동작을 수행할 수 있다. 따라서, 비정상 데이터가 프로그램되는 것이 방지될 수 있다.
도 4는 도 1의 불휘발성 메모리 장치의 동작을 보여주는 순서도이다. 도 1 및 도 4를 참조하면, S110 단계에서, 불휘발성 메모리 장치(120)는 메모리 컨트롤러(110)로부터 커맨드(CMD) 및 어드레스(ADDR)를 수신할 수 있다. 예를 들어, 불휘발성 메모리 장치(120)는, 앞서 설명된 바와 같이, 메모리 컨트롤러(110)로부터 데이터 신호(DQ)를 통해 커맨드(CMD) 및 어드레스(ADDR)를 수신할 수 있다.
예시적으로, 메모리 컨트롤러(110)는 커맨드(CMD) 및 어드레스(ADDR)를 구분하기 위한 제어 신호(CTRL)를 불휘발성 메모리 장치(120)로 제공할 수 있다. 예시적으로, 커맨드(CMD)는 다양한 프로그램 커맨드들 중 하나일 수 있고, 어드레스(ADDR)는 사용자 데이터(UD)가 저장될 영역의 위치를 가리킬 수 있다. 이하에서, 간결한 설명을 위하여, S110 단계의 동작이 수행되는 구간은 "커맨드/어드레스 구간"이라 칭한다.
S120 단계에서, 불휘발성 메모리 장치(120)는 메모리 컨트롤러(110)로부터 데이터 신호들(DQ)을 통해 특정 패턴(SP) 및 사용자 데이터(UD)를 수신할 수 있다. 예를 들어, 불휘발성 메모리 장치(120)는 메모리 컨트롤러(110)로부터, 패턴 구간(pattern period)동안 특정 패턴(SP)을 수신하고, 데이터 구간(도 3a 내지 도 3c 참조) 동안 사용자 데이터(UD)를 수신할 수 있다. 예시적으로, 패턴 구간은 커맨드/어드레스 구간 및 데이터 구간 사이에 존재할 수 있다.
예시적으로, 불휘발성 메모리 장치(120)는 메모리 컨트롤러(110)로부터의 데이터 스트로브 신호(DQS)를 기반으로, 데이터 신호(DQ)를 통해 수신되는 특정 패턴(SP) 및 사용자 데이터(UD)를 식별하도록 구성될 수 있다. 이하에서, 설명의 편의를 위하여, 데이터 스트로브 신호(DQS)를 기반으로 식별된 특정 패턴(SP)은 "수신된 특정 패턴(SP)(received specific pattern)"이라 칭한다. 즉, 수신된 특정 패턴(SP)은 데이터 스트로브 신호(DQS) 또는 데이터 신호(DQ)의 왜곡 여부에 따라, 정상적으로 식별되거나 또는 다른 값일 수 있다.
예시적으로, 특정 패턴(SP)은 메모리 컨트롤러(110) 및 불휘발성 메모리 장치(120) 사이에 미리 정해진 패턴일 수 있다. 또는 특정 패턴(SP)은 메모리 컨트롤러(110) 및 불휘발성 메모리 장치(120) 사이에 특정 동작을 통해 설정된 패턴일 수 있다. 예시적으로, 특정 패턴(SP)은 올-제로 값(all-zero value), 또는 임의의 값으로 미리 설정된 패턴일 수 있다.
S130 단계에서, 불휘발성 메모리 장치(120)는 특정 패턴(SP)이 미리 정해진 패턴과 매칭되는지 판별(즉, 패턴 검사를 수행)할 수 있다. 예를 들어, 메모리 컨트롤러(110)로부터의 데이터 스트로브 신호(DQS)의 왜곡이 없는 경우, 패턴 구간 동안 수신된 특정 패턴(SP)은 정상적으로 식별되고, 식별된 특정 패턴(SP)은 미리 정해진 패턴과 일치할 것이다.
수신된 특정 패턴(SP)이 미리 정해진 패턴과 일치하는 경우, S140 단계에서, 불휘발성 메모리 장치(120)는 패턴 구간 이후의 데이터 구간에서 수신된 사용자 데이터(UD)에 대한 프로그램 동작을 수행할 수 있다.
수신된 특정 패턴(SP)이 미리 정해진 패턴과 일치하지 않는 경우, S150 단계에서, 불휘발성 메모리 장치(120)는 복구 동작을 수행할 수 있다. 예시적으로, 복구 동작은 메모리 컨트롤러(110) 및 불휘발성 메모리 장치(120) 사이의 데이터 신호(DQ) 및 데이터 스트로브 신호(DQS)를 조정하기 위한 다양한 동작들을 포함할 수 있다.
예를 들어, 복구 동작은 불휘발성 메모리 장치(120)가 사용자 데이터(UD)를 무효 데이터로 처리하는 동작; 불휘발성 메모리 장치(120)가 사용자 데이터(UD)에 대한 프로그램 동작을 수행하지 않고, "프로그램 실패(program failure)"로 처리하는 동작; 메모리 컨트롤러(110) 및 불휘발성 메모리 장치(120) 사이의 재-트레이닝 동작(re-training operation); 메모리 컨트롤러(110) 및 불휘발성 메모리 장치(120) 사이의 재-고정 동작(re-locking operation); 불휘발성 메모리 장치(120)의 리셋 동작; 불휘발성 메모리 장치(120)의 동작 주파수를 변경하는 동작; 또는 불휘발성 메모리 장치(120)의 동작 전압을 변경하는 동작 중 적어도 하나의 동작을 포함할 수 있다. 상술된 복구 동작들은 예시적인 것이며, 본 발명의 범위가 이에 한정되는 것은 아니다. 예시적으로, 복구 동작이 수행됨으로써, 데이터 신호(DQ) 또는 데이터 스트로브 신호(DQS)의 왜곡이 보정 또는 정정될 수 있다.
불휘발성 메모리 장치(120)는 복구 동작을 수행한 이후에, S110 단계 내지 S130 단계의 동작들을 수행함으로써, 사용자 데이터(UD)에 대한 프로그램 동작을 수행할 수 있다.
도 5a 및 도 5b는 도 1의 불휘발성 메모리 장치로의 데이터 입력(Data-In)의 예를 보여주는 타이밍도들이다. 예시적으로, 도 5a 및 도 5b의 타이밍도들의 가로축들은 시간을 가리킨다. 예시적으로, 도 5a를 참조하여, 특정 패턴(SP)이 미리 정해진 패턴과 일치하는 경우의 데이터 입력이 설명되고, 도 5b를 참조하여 특정 패턴(SP)이 미리 정해진 패턴과 일치하지 않는 경우의 데이터 입력이 설명된다. 도면의 간결성을 위하여, 커맨드(예를 들어, 프로그램 커맨드) 및 어드레스에 대한 입력은 도 5a 및 도 5b에서 생략된다.
또한, 간결한 설명을 위하여, 패턴 구간(T_PATTERN)은 데이터 스트로브 신호(DQS)의 2주기(2 cycles)인 것으로 가정한다. 그러나, 본 발명의 범위가 이에 한정되는 것은 아니며, 패턴 구간(T_PATTERN)은 메모리 컨트롤러(110) 및 불휘발성 메모리 장치(120) 사이에서 다른 값(예를 들어, DQS의 1주기, 2주기, 3주기 또는 4주기 등)으로 미리 설정될 수 있다. 예시적으로, 패턴 구간(T_PATTERN)은 "쓰기를 위한 데이터 스트로브 신호 레이턴시(DQS latency for WRITE) 구간"에 포함될 수 있다. 예시적으로, 패턴 구간(T_PATTERN)은 커맨드/어드레스 구간 및 데이터 구간 사이에 위치할 수 있다.
도 1, 도 5a, 및 도 5b를 참조하면, 불휘발성 메모리 장치(120)는 메모리 컨트롤러(110)로부터 패턴 구간(T_PATTERN)동안 데이터 신호(DQ)를 통해 제1 내지 제4 특정 패턴들(SP1~SP4)을 수신한다. 불휘발성 메모리 장치(120)는 데이터 스트로브 신호(DQS)를 기반으로, 데이터 신호들(DQ)을 통해 수신된 제1 내지 제4 특정 패턴들(SP1~SP4)을 식별할 수 있다. 도 5a에 도시된 바와 같이, 데이터 스트로브 신호(DQS)에서 왜곡이 없는 경우(다시 말해서, 데이터 스트로브 신호(DQS)의 상승 에지 또는 하강 에지가 데이터 신호(DQ)와 중앙 정렬(center align)된 경우), 불휘발성 메모리 장치(120)는 제1 내지 제4 특정 패턴들(SP1~SP4)을 정상적으로 식별할 수 있다.
이 경우, 수신된 제1 내지 제4 특정 패턴들(SP1~SP4)은 미리 정해진 패턴과 일치할 것이다. 불휘발성 메모리 장치(120)는, 패턴 검사 결과에 따라, 이후의 데이터 구간(T_DATA)에서 수신된 복수의 사용자 데이터(UD1~UDm)를 유효 데이터로서 처리한다. 즉, 불휘발성 메모리 장치(120)는 수신된 복수의 사용자 데이터(UD1~UDm)에 대한 프로그램 동작을 수행할 수 있다.
반면에, 도 5a를 참조하여 설명된 바와 달리, 다양한 요인들(예를 들어, 온도, 전압, 동작 속도 등의 변화)로 인하여, 데이터 스트로브 신호(DQS)의 왜곡(예를 들어, 데이터 스트로브 신호(DQS)의 전체적인 지연)이 도 5b에 도시된 바와 같이 발생할 수 있다. 이 경우, 불휘발성 메모리 장치(120)가 패턴 구간(T_PATTERN)에서 수신한 제1 내지 제4 특정 패턴들(SP1~SP4)은 정상적으로 식별되지 않을 것이다. 즉, 수신된 제1 내지 제4 특정 패턴들(SP1~SP4)은 미리 정해진 데이터 패턴과 일치하지 않을 것이다. 이 경우, 불휘발성 메모리 장치(120)는 이후의 데이터 구간(T_DATA)에서 수신된 복수의 사용자 데이터(UD1~UDm)을 무효 데이터(invalid data)로 처리할 수 있다. 즉, 불휘발성 메모리 장치(120)는 수신된 복수의 사용자 데이터(UD1~UDm)에 대한 프로그램 동작을 수행하지 않고, 복구 동작을 수행할 수 있다.
상술된 바와 같이, 불휘발성 메모리 장치(120)는 메모리 컨트롤러(110)로부터 복수의 사용자 데이터(UD1~UDm)를 수신하기 이전에, 특정 패턴(SP)을 수신하고, 수신된 특정 패턴(SP)에 대한 패턴 검사를 수행할 수 있다. 불휘발성 메모리 장치(120)는 패턴 검사 결과에 따라, 복수의 사용자 데이터(UD1~UDm)에 대한 프로그램 동작을 수행하거나 또는 수행하지 않을 수 있다. 예시적으로, 수신된 특정 패턴(SP)이 미리 정해진 패턴과 일치하지 않는 경우, 불휘발성 메모리 장치(120)는 수신된 복수의 사용자 데이터(UD1~UDm)에 대한 프로그램 동작을 수행하지 않고, 복구 동작을 수행함으로써, 잘못된 사용자 데이터(또는 비정상 사용자 데이터)가 프로그램되는 것을 방지할 수 있고, 이에 따라, 데이터 신뢰성이 보장된다.
도 6은 도 4의 S150 단계를 상세하게 보여주는 순서도이다. 도 6을 참조하여, S150 단계의 복구 동작이 좀 더 상세하게 설명된다. 그러나, 도 6의 순서도는 단순히 본 발명의 기술적 사상을 용이하게 설명하기 위한 것이며, 본 발명의 범위가 이에 한정되는 것은 아니다.
도 1, 도 4, 및 도 6을 참조하면, S130 단계의 판별 결과가 특정 패턴(SP)이 미리 정해진 패턴과 일치하지 않는 것을 가리키는 경우, 불휘발성 메모리 장치(120)는 S150 단계의 복구 동작을 수행할 수 있다. 예시적으로, S150 단계의 복구 동작은 S151 단계 내지 S154 단계의 동작들을 포함할 수 있다.
예를 들어, S151 단계에서, 불휘발성 메모리 장치(120)는 수신된 사용자 데이터(UD)에 대한 프로그램 동작 없이, 상태 레지스터(status register)를 "프로그램 실패(program failure)"로 설정할 수 있다. 예시적으로, 상태 레지스터는 불휘발성 메모리 장치(120)의 동작 상태에 대한 정보를 저장하기 위하여, 불휘발성 메모리 장치(120)에 포함된 저장 회로일 수 있다. 예시적으로, 상태 레지스터의 값은 메모리 컨트롤러(110)의 요청(특히, 상태 읽기 커맨드(STATUS READ COMMAND))에 의해 데이터 신호(DQ) 또는 별도의 신호를 통해 메모리 컨트롤러(110)로 제공될 수 있다.
S152 단계에서, 불휘발성 메모리 장치(120)는 메모리 컨트롤러(110)로부터 상태 읽기 커맨드(STATUS READ COMMAND)를 수신할 수 있다. 예시적으로, 상태 읽기 커맨드는 불휘발성 메모리 장치(120)의 상태 레지스터의 값을 읽기 위한 커맨드일 수 있다.
S153 단계에서, 불휘발성 메모리 장치(120)는 수신된 상태 읽기 커맨드에 응답하여, 상태 레지스터에 저장된 값을 메모리 컨트롤러(110)로 전송할 수 있다. 예시적으로, 불휘발성 메모리 장치(120)는 S151 단계에서 상태 레지스터에 저장된 "프로그램 실패"에 대한 상태 정보를 메모리 컨트롤러(110)로 전송할 수 있다. 예시적으로, 상태 레지스터에 저장된 "프로그램 실패"에 대한 상태 정보는 패턴 불일치에 대한 정보(즉, 특정 패턴(SP)이 미리 정해진 패턴과 일치되지 않음을 가리키는 정보)를 포함할 수 있다. 예시적으로, 상태 정보는 데이터 신호(DQ)를 통해 불휘발성 메모리 장치(120)로부터 메모리 컨트롤러(110)로 전송될 수 있다.
S154 단계에서, 불휘발성 메모리 장치(120)는 메모리 컨트롤러(110)의 제어에 따라 다양한 복구 동작들 중 적어도 하나를 수행할 수 있다. 예를 들어, 메모리 컨트롤러(110)는 불휘발성 메모리 장치(120)로부터의 상태 정보를 기반으로, 데이터 스트로브 신호(DQS) 또는 데이터 신호(DQ)에 대한 왜곡으로 인하여, 불휘발성 메모리 장치(120)가 정상적으로 사용자 데이터(UD)를 수신하지 못했음을 인지할 수 있다. 이에 응답하여, 메모리 컨트롤러(110)는 불휘발성 메모리 장치(120)와 재-트레이닝 동작(re-training operation)을 수행할 수 있다. 또는 메모리 컨트롤러(110)는 불휘발성 메모리 장치(120)와 재-고정 동작(re-locking operation)을 수행할 수 있다. 예시적으로, 재-트레이닝 동작은 800Mbps 이상의 고속 동작에서 수행될 수 있고, 재-고정 동작은 800Mpbs 이하의 저속 동작에서 수행될 수 있다. 또는 메모리 컨트롤러(110)는 불휘발성 메모리 장치(120)의 동작 속도(또는 데이터 스트로브 신호(DQS) 또는 데이터 신호(DQ)의 주파수)를 변경할 수 있다. 또는 메모리 컨트롤러(110)는 불휘발성 메모리 장치(120)의 동작 전압을 변경할 수 있다. 또는 메모리 컨트롤러(110)는 불휘발성 메모리 장치(120)에 대한 리셋 동작을 수행할 수 있다. 이후에, 불휘발성 메모리 장치(120)는 S110 단계의 동작을 재 수행할 수 있다.
도 7a 내지 도 7c는 패턴 불일치의 예시적인 사례들을 보여주는 타이밍도들이다. 도 7a 내지 도 7c의 타이밍도들의 가로축들은 시간을 가리킨다. 예시적으로, 도 7a 내지 도 7c의 타이밍도들을 참조하여, 패턴 불일치에 대한 사례들이 설명되나, 본 발명의 범위가 이에 한정되는 것은 아니며, 패턴 불일치의 다른 다양한 사례들이 존재할 수 있으며, 이에 따라 본 발명의 기술적 사상이 다양하게 적용되거나 변형될 수 있다.
먼저, 도 1 및 도 7a 내지 도 7c를 참조하면, 불휘발성 메모리 장치(120)는 패턴 구간(T_PATTERN) 동안, 데이터 스트로브 신호(DQS) 및 데이터 신호들(DQ)을 통해 제1 내지 제4 특정 패턴들(SP1~SP4)을 수신할 수 있다.
도 7a에 도시된 바와 같이, 다양한 요인(온도, 전압, 동작 속도 등의 변화)으로 인하여, 데이터 스트로브 신호(DQS)의 왜곡(예를 들어, DQS 딜레이)이 발생하여, 데이터 스트로브 신호(DQS)가 데이터 신호(DQ)에 중앙-정렬(center-aligned)되지 않을 수 있다. 이 경우, 앞서 설명된 바와 같이, 불휘발성 메모리 장치(120)는 제1 내지 제4 특정 패턴들(SP1~SP4)을 정상적으로 수신하지 못할 것이다. 즉, 데이터 스트로브 신호(DQS)의 지연(delay)으로 인하여, 불휘발성 메모리 장치(120)에서 수신된 제1 내지 제4 특정 패턴들(SP1~SP4) 모두가 미리 정해진 패턴과 일치하지 않을 수 있다.
도 7b에 도시된 바와 같이, 다양한 요인(온도, 전압, 동작 속도 등의 변화)으로 인하여, 데이터 스트로브 신호(DQS)가 풀-스윙(full-swing)하지 못할 수 있다. 이러한 경우, 도 7b에 도시된 바와 같이, 제1 내지 제4 특정 패턴들(SP1~SP4) 중 일부 특정 패턴(예를 들어, 제2 및 제4 특정 패턴들(SP2, SP4))만 정상적으로 수신될 수 있다. 즉, 데이터 스트로브 신호(DQS)가 풀-스윙하지 못함으로써, 불휘발성 메모리 장치(120)에서 수신된 제1 내지 제4 특정 패턴들(SP1~SP4) 중 일부 특정 패턴들이 미리 정해진 패턴과 일치하지 않을 수 있다.
도 7c에 도시된 바와 같이, 다양한 요인(온도, 전압, 동작 속도 등의 변화)으로 인하여, 데이터 신호(DQ)가 왜곡될 수 있다. 데이터 신호(DQ)의 왜곡으로 인하여, 데이터 신호(DQ)에 대한 충분한 SI(signal integrity) 마진이 확보되지 않기 때문에, 불휘발성 메모리 장치(120)는 제1 내지 제4 특정 패턴들(SP1~SP4)을 정상적으로 수신하지 못할 수 있다. 즉, 데이터 신호(DQ)의 왜곡으로 인하여, 불휘발성 메모리 장치(120)에서 수신된 제1 내지 제4 특정 패턴들(SP1~SP4)은 모두 미리 정해진 패턴과 일치하지 않을 수 있다.
상술된 바와 같이, 데이터 스트로브 신호(DQS) 또는 데이터 신호(DQ)의 다양한 왜곡으로 인하여, 불휘발성 메모리 장치(120)는 특정 패턴들이 정상적으로 수신하지 못할 수 있다. 본 발명에 따른 불휘발성 메모리 장치(120)는 특정 패턴의 패턴 검사 결과를 기반으로 다양한 복구 동작들 중 하나를 수행할 수 있다.
예를 들어, 특정 패턴 중 일부만 미리 정해진 패턴과 일치하는 것은 도 7b와 같이, 데이터 스트로브 신호(DQS)가 풀-스윙하지 못하는 경우에 발생할 수 있다. 이 경우, 메모리 컨트롤러(110) 및 불휘발성 메모리 장치(120)는 데이터 신호(DQ) 및 데이터 스트로브 신호(DQS)의 동작 주파수를 감소시킴으로써, 데이터 스트로브 신호(DQS)가 풀-스윙하도록 할 수 있다. 또는 특정 패턴(SP)이 미리 정해진 패턴과 모두 일치하지 않는 것은 도 7a 또는 도 7b에 도시된 바와 같이, 데이터 스트로브 신호(DQS)의 지연 또는 데이터 신호(DQ)의 왜곡에 의해 발생할 수 있다. 이 경우, 메모리 컨트롤러(110) 및 불휘발성 메모리 장치(120)는 재-트레이닝 동작 또는 재-고정 동작을 수행함으로써, 데이터 스트로브 신호(DQS)가 데이터 신호(DQ)에 중앙 정렬되도록 할 수 있다.
도 8은 본 발명에 따른 복구 동작 중 일 예인 재-트레이닝 동작을 보여주는 순서도이다. 도 1 및 도 8을 참조하면, S11 단계에서, 메모리 컨트롤러(110)는 프로그램 커맨드(CMD_p), 어드레스(ADDR), 및 데이터(DATA)를 불휘발성 메모리 장치(120)로 전송한다. 예를 들어, 앞서 설명된 바와 같이, 메모리 컨트롤러(110)는 제어 신호(CTRL), 데이터 스트로브 신호(DQS), 및 데이터 신호(DQ)를 사용하여 프로그램 커맨드(CMD_p), 어드레스(ADDR), 및 데이터(DATA)를 불휘발성 메모리 장치(120)로 제공할 수 있다.
예시적으로, 프로그램 커맨드(CMD_p)는 쓰기 DQ 트레이닝 커맨드의 제1 세트(예를 들어, 63h)일 수 있고, 어드레스(ADDR)는 논리적 유닛 넘버(LUN; Logical Unit Number) 어드레스일 수 있고, 데이터(DATA)는 미리 정해진 크기를 가질 수 있다. 예시적으로, 데이터(DATA)의 미리 정해진 크기에 대한 정보는 불휘발성 메모리 장치(120)에 설정될 수 있다. 메모리 컨트롤러(110)는 겟 피쳐 동작(Get Feature Operation)을 통해 미리 정해진 크기를 식별할 수 있다.
S12 단계에서, 불휘발성 메모리 장치(120)는 수신된 데이터(DATA)를 프로그램할 수 있다. 예시적으로, S12 단계의 동작은 생략될 수 있다.
S13 단계에서, 메모리 컨트롤러(110)는 불휘발성 메모리 장치(120)로 읽기 커맨드(CMD_r) 및 어드레스(ADDR)를 전송할 수 있다. 예시적으로, 읽기 커맨드(CMD_r)는 쓰기 DQ 트레이닝 커맨드의 제2 세트(예를 들어, 64h)일 수 있고, 어드레스(ADDR)는 논리적 유닛 넘버(LUN) 어드레스일 수 있다.
S14 단계에서, 불휘발성 메모리 장치(120)는 읽기 커맨드(CMD_r) 및 어드레스(ADDR)에 응답하여, 데이터(DATA)를 메모리 컨트롤러(110)로 제공할 수 있다.
S15 단계에서, 메모리 컨트롤러(110)는 수신된 데이터(DATA)가 전송한 데이터와 일치하는지 판별할 수 있다. 데이터가 일치하는 경우, S16 단계에서, 메모리 컨트롤러(110)는 데이터 스트로브 신호(DQS) 및 데이터 신호(DQ)에 대한 파라미터를 설정 또는 저장할 수 있다. 데이터가 일치하지 않는 경우, S17 단계에서, 메모리 컨트롤러(110)는 데이터 스트로브 신호(DQS) 및 데이터 신호(DQ)에 대한 파라미터를 조정할 수 있다. 이후에, 메모리 컨트롤러(110) 및 불휘발성 메모리 장치(120)는 S11 단계 내지 S15 단계의 동작들을 반복 수행할 수 있다.
예시적으로, S12 단계의 프로그램 동작이 생략되는 경우, 불휘발성 메모리 장치(120)는 별도의 프로그램 동작 없이, 읽기 커맨드(CMD_r)에 응답하여 페이지 버퍼 회로 또는 입출력 회로에 저장된 데이터(DATA)를 메모리 컨트롤러(110)로 제공할 수 있다.
상술된 바와 같이, 메모리 컨트롤러(110) 및 불휘발성 메모리 장치(120)는 데이터(DATA)가 정상적으로 송수신될 수 있도록, 쓰기 동작 및 읽기 동작을 반복 수행하여, 데이터 스트로브 신호(DQS) 및 데이터 신호(DQ)에 대한 적절한 파라미터들을 설정할 수 있다. 예시적으로, 도 8에 도시된 동작 방법은 쓰기 트레이닝(write training) 동작이다. 그러나, 본 발명이 이에 한정되는 것은 아니며, 재-트레이닝 동작은 ZQ 캘리브레이션 동작, DCC(duty cycle corrector) 트레이닝 동작, 읽기 트레이닝 동작, 또는 쓰기 트레이닝 동작 중 적어도 하나를 포함할 수 있다.
도 9는 본 발명에 따른 복구 동작 중 하나인 재-고정 동작을 설명하기 위한 도면이다. 도 1 및 도 9를 참조하면, 메모리 컨트롤러(110)는 데이터 스트로브 신호(DQS)를 구동하기 위한 드라이버(미도시)를 포함할 수 있다. 드라이버는 데이터 스트로브 신호(DQS)의 타이밍을 조절하기 위한 복수의 지연 셀들을 포함할 수 있다. 메모리 컨트롤러(110)는 복수의 지연 셀들을 활성화시킴으로써, 데이터 스트로브 신호(DQS)가 데이터 신호(DQ)에 중앙-정렬(center-align)되도록 할 수 있다.
예를 들어, 도 9에 도시된 바와 같이, 메모리 컨트롤러(110)는 제1 데이터 스트로브 신호(DQS1)를 생성할 수 있다. 제1 데이터 스트로브 신호(DQS1)는 제1 개수의 지연 셀들이 활성화됨으로써 생성된 데이터 스트로브 신호일 수 있다. 다음으로, 메모리 컨트롤러(110)는 제2 데이터 스트로브 신호(DQS2)를 생성할 수 있다. 제2 데이터 스트로브 신호(DQS2)는 제2 개수의 지연 셀들이 활성화됨으로써 생성된 데이터 스트로브 신호일 수 있다. 다음으로, 메모리 컨트롤러(110)는 제3 데이터 스트로브 신호(DQS3)를 생성할 수 있다. 제3 데이터 스트로브 신호(DQS3)는 제3 개수의 지연 셀들이 활성화됨으로써 생성된 데이터 스트로브 신호일 수 있다.
도 9에 도시된 바와 같이, 제2 데이터 스트로브 신호(DQS2)가 데이터 신호(DQ)와 중앙-정렬된 신호일 수 있다. 메모리 컨트롤러(110)는 상술된 바와 같이, 데이터 스트로브 신호(DQS)의 타이밍을 조절하기 위한 지연 셀들의 활성화 개수를 조절함으로써, 적절한 데이터 스트로브 신호(DQS)를 생성할 수 있다. 예시적으로, 메모리 컨트롤러(110)는 데이터 스트로브 신호(DQS) 대신에 별도의 클럭 신호를 사용하여, 상술된 재-고정 동작을 수행할 수 있다.
예시적으로, 도 8 및 도 9를 참조하여, 복구 동작들 중 일부 동작(예를 들어, 재-트레이닝 동작 및 재-고정 동작)이 설명되었으나, 상술된 복구 동작의 예들은 예시적인 것이며, 본 발명의 범위가 이에 한정되는 것은 아니다. 복구 동작은 재-트레이닝 동작, 재-고정 동작, 동작 전압 변경, 동작 주파수 변경, 리셋 동작 등과 같이, 데이터 스트로브 신호(DQS) 또는 데이터 신호(DQ)의 왜곡을 보정할 수 있는 다양한 동작들을 포함할 수 있다.
도 10은 도 1의 불휘발성 메모리 장치로의 데이터 입력을 보여주는 타이밍도이다. 간결한 설명을 위하여, 앞서 설명된 구성 요소들에 대한 상세한 설명은 생략된다.
도 1 및 도 10을 참조하면, 불휘발성 메모리 장치(120)는 메모리 컨트롤러(110)로부터 패턴 구간(T_PATTERN) 동안, 제1 내지 제4 특정 패턴들(SP1~SP4)을 수신하고, 데이터 구간(T_DATA) 동안, 사용자 데이터(UD1~UDm)를 수신할 수 있다. 이 때, 패턴 구간(T_PATTERN) 이전에 더미 구간(T_DUMMY)이 존재할 수 있다. 예시적으로, 더미 구간(T_DUMMY)은 도 3b를 참조하여 설명된 더미 구간(T_DUMMY)과 동일한 기능을 제공할 수 있다. 예를 들어, 불휘발성 메모리 장치 (120)는 더미 구간(T_DUMMY) 동안 데이터 신호(DQ)를 통해 수신된 신호들은 더미 데이터로서 처리될 수 있다.
이후에, 불휘발성 메모리 장치(120)는 데이터 스트로브 신호(DQS)의 다음 수 사이클(예를 들어, 도 10의 패턴 구간(T_PATTERN))동안 데이터 신호(DQ)를 통해 제1 내지 제4 특정 패턴들(SP1~SP4)을 수신할 수 있다.
불휘발성 메모리 장치(120)는 수신된 제1 내지 제4 특정 패턴들(SP1~SP4)이 미리 정해진 패턴과 일치하는지 패턴 검사를 수행하고, 패턴 검사 결과에 따라, 다음 데이터 구간(T_DATA) 동안 수신된 사용자 데이터(UD1~UDm)에 대한 프로그램 동작을 수행하거나 또는 수행하지 않을 수 있다.
도 10의 실시 예를 구현하기 위하여, 불휘발성 메모리 장치(120)의 "쓰기를 위한 데이터 스트로브 신호 레이턴시(DQS latency for WRITE)"가 4 주기(4 cycles)로 설정될 수 있다. 데이터 스트로브 레이턴시(DQS latencuy) 구간은 더미 구간(T_DUMMY) 및 패턴 구간(T_PATTERN)을 포함할 수 있다. 즉, "쓰기를 위한 데이터 스트로브 레이턴시(DQS latency for WRITE)"에서, 일부 구간은 더미 구간(T_DUMMY)으로서 사용되고, 나머지 일부 구간은 패턴 구간(T_PATTERN)으로서 사용될 수 있다. 예시적으로, 더미 구간(T_DUMMY)의 길이 및 패턴 구간(T_PATTERN)의 길이 각각은 셋 피쳐 동작(Set Feature Operation)에 의해 설정될 수 있다.
도 11a 및 도 11b는 도 1의 불휘발성 메모리 장치의 프로그램 동작을 예시적으로 보여주는 타이밍도들이다. 간결한 설명을 위하여, 구체적인 커맨드(CMD), 어드레스(ADDR), 및 제어 신호(CTRL)의 구성들은 생략된다. 또한, 도면의 간결성을 위하여, 상태 읽기(Status Read)에 대한 값은 데이터 신호(DQ)와 별도의 라인으로 도시되나, 상태 읽기(Status Read)에 대한 값은 상태 읽기 커맨드(STATUS READ COMMAND)에 응답하여 데이터 신호(DQ)를 통해 메모리 컨트롤러(110)로 제공될 수 있다. 또한, 설명의 편의를 위하여, 3-페이지 프로그램 동작을 기준으로 본 발명의 실시 예가 설명되며, 제2 페이지 셋업 구간(2nd Page Setup)에서 수신된 특정 패턴(SP)이 패턴 불일치인 것(즉, 수신된 특정 패턴(SP)이 미리 정해진 패턴과 일치하지 않음)으로 가정한다.
예시적으로, 도면의 간결성을 위하여, 각 페이지 셋업 구간에서, 페이지 데이터(PD) 이후에 수신되는 커맨드 또는 어드레스(예를 들어, 덤프 커맨드, 버퍼 어드레스 등)는 도 11a 및 도 11b에서 생략된다.
도 1, 도 11a, 및 도 11b를 참조하면, 불휘발성 메모리 장치(120)는 제1 페이지 셋업 구간(1st Page Setup)에서, 제1 커맨드/어드레스(C/A1)을 수신하고, 특정 패턴(SP)을 수신하고, 제1 페이지 데이터(PD1)(즉, 사용자 데이터)를 수신할 수 있다. 예시적으로, 제1 커맨드/어드레스(C/A1)는 제1 페이지 데이터(PD1)에 대한 셋업 동작에 대한 커맨드 및 제1 페이지 데이터(PD1)가 저장될 영역의 어드레스일 수 있다. 예시적으로, 제1 커맨드/어드레스(C/A1), 특정 패턴(SP), 및 제1 페이지 데이터(PD1)는 제어 신호(CTRL) 및 데이터 스트로브 신호(DQS)에 의해 구분되거나 또는 식별될 수 있다. 이후에, 더미 비지 타임(tDBSY2)동안, 불휘발성 메모리 장치(120)는 수신된 제1 페이지 데이터(PD1)를 페이지 버퍼 회로(124)에서 덤프할 수 있다.
이후에, 제2 페이지 셋업 구간(2nd Page Setup) 동안, 불휘발성 메모리 장치(120)는 제2 커맨드/어드레스(C/A2)를 수신하고, 특정 패턴(SP)을 수신하고, 제2 페이지 데이터(PD2)(즉, 사용자 데이터)를 수신할 수 있다. 예시적으로, 제2 커맨드/어드레스(C/A2)는 제2 페이지 데이터(PD2)에 대한 셋업 동작에 대한 커맨드 및 제2 페이지 데이터(PD2)가 저장될 영역의 어드레스일 수 있다. 이후에, 더미 비지 타임(tDBSY2) 동안, 불휘발성 메모리 장치(120)는 수신된 제2 페이지 데이터(PD2)를 페이지 버퍼 회로(124)에서 덤프할 수 있다.
이후에, 제3 페이지 셋업 구간(3rd Page Setup) 동안, 불휘발성 메모리 장치(120)는 제3 커맨드/어드레스(C/A3)를 수신하고, 특정 패턴(SP)을 수신하고, 제3 페이지 데이터(PD3)(즉, 사용자 데이터)를 수신할 수 있다. 예시적으로, 제3 커맨드/어드레스(C/A3)는 제3 페이지 데이터(PD3)에 대한 셋업 동작에 대한 커맨드 및 제3 페이지 데이터(PD3)가 저장될 영역의 어드레스일 수 있다. 이후에, 더미 비지 타임(tDBSY2) 동안, 불휘발성 메모리 장치(120)는 수신된 제3 페이지 데이터(PD3)를 페이지 버퍼 회로(124)에서 덤프할 수 있다.
이후에, 불휘발성 메모리 장치(120)는 프로그램 확인 커맨드(CMD_c)를 메모리 컨트롤러(110)로부터 수신하고, 수신된 프로그램 확인 커맨드(CMD_c)에 응답하여 프로그램 시간(t_PROG)동안 제1 내지 제3 페이지 데이터(PD1~PD3)에 대한 프로그램 동작을 수행할 수 있다.
예시적으로, 앞서 설명된 바와 같이, 제2 페이지 셋업 구간(2nd Page Setup)에서 수신된 특정 패턴(SP)이 미리 정해진 패턴과 일치하지 않을 수 있다. 이 경우, 불휘발성 메모리 장치(120)는 상태 정보를 패턴 불일치 정보(M/M)로 설정할 수 있다. 이 경우, 불휘발성 메모리 장치(120)는 제1 내지 제3 페이지 데이터(PD1~PD3)에 대한 프로그램 동작을 수행하지 않고, 메모리 컨트롤러(110)의 상태 읽기 커맨드(STATUS READ COMMAND)에 응답하여, 불일치 정보(M/M)를 메모리 컨트롤러(110)로 제공할 수 있다.
예를 들어, 메모리 컨트롤러(110)는 각각의 더미 비지 타임(tDBSY2) 동안 불휘발성 메모리 장치(120)로 상태 읽기 커맨드(STATUS READ COMMAND)를 제공하여 불휘발성 메모리 장치(120)로부터 상태 정보를 수신할 수 있다. 이 때, 도 11a에 도시된 바와 같이, 불휘발성 메모리 장치(120)는 불일치 정보(M/M)를 프로그램 확인 커맨드(CMD_c) 이후의 상태 읽기 동작에서 메모리 컨트롤러(110)로 제공할 수 있다. 즉, 제1 내지 제3 페이지 셋업 구간들에서의 더미 비지 타임(tDBSY2) 동안의 상태 읽기 동작에서는 정상 상태를 가리키는 정상 정보(N)를 제공하고, 프로그램 확인 커맨드(CMD_c) 이후의 상태 읽기 동작에서 불일치 정보(M/M)를 메모리 컨트롤러(110)로 제공할 수 있다.
또는, 도 11b에 도시된 바와 같이, 불휘발성 메모리 장치(120)는 패턴 불일치가 발생한 제2 페이지 셋업 구간의 더미 비지 타임(tDBSY2) 동안의 상태 읽기 동작에서, 불일치 정보(M/M)를 메모리 컨트롤러(110)로 제공할 수 있다. 이 경우, 메모리 컨트롤러(110)는 제3 페이지 셋업 구간의 동작을 수행한 이후에 또는 제3 페이지 셋업 구간의 동작을 수행하지 않고, 복구 동작을 수행할 수 있다.
상술된 바와 같이, 상태 읽기 동작을 통해, 메모리 컨트롤러(110)는 불휘발성 메모리 장치(120)로부터 패턴 검사 결과에 대한 상태 정보를 수신하고, 수신된 상태 정보를 기반으로 복구 동작을 수행할 수 있다.
도 12는 도 1의 불휘발성 메모리 장치의 동작을 보여주는 순서도이다. 도 1 및 도 12를 참조하면, S210 단계에서, 불휘발성 메모리 장치(120)는 메모리 컨트롤러(110)로부터 커맨드(CMD) 및 어드레스(ADDR)를 수신할 수 있다. S210 단계의 동작은 도 4의 S110 단계와 동일하므로, 이에 대한 상세한 설명은 생략된다.
S220 단계에서, 불휘발성 메모리 장치(120)는 메모리 컨트롤러(110)로부터 가변 데이터 스트로브 신호(DQS')와 함께 특정 패턴(SP)을 수신하고, 이후에, 사용자 데이터(UD)를 수신할 수 있다. 예를 들어, 앞서 설명된 바와 같이, 불휘발성 메모리 장치(120)는 패턴 구간(T_PATTERN) 동안, 특정 패턴(SP)을 수신할 수 있다. 이 때, 데이터 신호(DQ)의 윈도우를 체크하기 위하여 데이터 스트로브 신호(DQS)의 듀티 비가 가변될 수 있다.
메모리 컨트롤러(110)는 미리 정해진 데이터 신호(DQ)의 윈도우의 좌측 에지 또는 우측 에지에서 데이터 스트로브 신호(DQS)의 상승 에지 또는 하강 에지가 정렬되도록 데이터 스트로브 신호(DQS)를 조정할 수 있다. 즉, 미리 정해진 데이터 신호(DQ)의 윈도우의 좌측 에지 또는 우측 에지에서 데이터 스트로브 신호(DQS)의 상승 에지 또는 하강 에지가 정렬된 경우에서, 특정 패턴(SP)이 정상적으로 식별된다면, 미리 정해진 데이터 신호(DQ)의 윈도우 범위가 정확함을 의미할 것이다. 그러나, 특정 패턴(SP)이 정상적으로 식별되지 않는다면, 미리 정해진 데이터 신호(DQ)의 윈도우 범위가 정확하지 않음을 의미할 것이다.
이후에, 불휘발성 메모리 장치(120)는 S230 단계 내지 S250 단계의 동작들을 수행할 수 있다. S230 단계 내지 S250 단계의 동작들은 도 4의 S130 단계 내지 S150 단계의 동작들과 유사하므로, 이에 대한 상세한 설명은 생략된다.
상술된 바와 같이, 본 발명에 따른 불휘발성 메모리 장치(120)는 사용자 데이터(UD)를 수신하는 데이터 구간 이전에, 특정 패턴(SP)을 수신하는 패턴 구간(T_PATTERN)을 포함할 수 있다. 불휘발성 메모리 장치(120)는 패턴 구간(T_PATTERN)에서 수신된 특정 패턴(SP)의 패턴 검사 결과를 기반으로, 사용자 데이터(UD)에 대한 프로그램 동작을 수행하거나 또는 수행하지 않을 수 있다. 또는 불휘발성 메모리 장치(120)는 패턴 구간에서 수신된 특정 패턴(SP)에 대한 패턴 검사 결과를 기반으로, 다양한 복구 동작들 중 적어도 하나를 수행할 수 있다. 또는 불휘발성 메모리 장치(120)는 패턴 구간에서 가변 데이터 스트로브 신호를 사용하여, 데이터 신호(DQ)의 윈도우가 정확한지를 체크할 수 있다.
도 13은 데이터 신호의 윈도우를 설명하기 위한 도면이다. 도 13을 참조하면, 데이터 신호(DQ)는 특정 범위의 윈도우(Window)를 포함할 수 있다. 데이터 스트로브 신호(DQS)의 상승 에지 또는 하강 에지가 데이터 신호(DQ)의 윈도우(Window) 내에 포함되는 경우, 데이터 신호(DQ)는 불휘발성 메모리 장치(120)에서 정상적으로 식별될 수 있다. 일반적으로, 정확한 데이터 식별을 위하여, 데이터 신호(DQ)의 윈도우(Window)의 중심(center)에 데이터 스트로브 신호(DQS)의 상승 에지 또는 하강 에지가 정렬(즉, 중앙-정렬(center-aligning))되도록, 데이터 스트로브 신호(DQS)가 생성된다.
반면에, 데이터 스트로브 신호(DQS)의 상승 에지 또는 하강 에지가 윈도우(Window)의 범위를 벗어나는 경우(즉, 윈도우(Window)의 좌측 에지(Left Edge)보다 앞서거나 또는 윈도우(Window)의 우측 에지(Right Edge)보다 뒤진 경우), 데이터 신호(DQ)가 정상적으로 식별되지 않을 것이다. 예시적으로, 상술된 데이터 신호(DQ)의 윈도우(Window), 윈도우(Window)의 좌측 에지(Left Edge), 또는 윈도우(Window)의 우측 에지(Right Edge)는 메모리 컨트롤러(110) 및 불휘발성 메모리 장치(120) 사이의 트레이닝 동작을 통해 미리 설정될 수 있다.
도 14a 내지 도 14c는 불휘발성 메모리 장치로의 데이터 입력을 보여주는 타이밍도들이다. 도 14a 내지 도 14c의 타이밍도들의 가로축들은 시간을 가리킨다. 도 1 및 도 14a 내지 도 14c를 참조하면, 불휘발성 메모리 장치(120)는 패턴 구간(T_PATTERN) 동안 제1 내지 제4 특정 패턴들(SP1~SP4)을 수신하고, 데이터 구간(T_DATA) 동안 복수의 사용자 데이터(UD1~UDm)를 수신할 수 있다. 이 때, 메모리 컨트롤러(110)는 데이터 신호(DQ)의 윈도우를 체크하기 위하여, 데이터 스트로브 신호(DQS)의 지연(delay)을 조정할 수 있다.
예를 들어, 도 14a에 도시된 바와 같이, 데이터 스트로브 신호(DQS)의 첫 번째 주기의 상승 에지 및 하강 에지가 데이터 신호(DQ)의 윈도우의 좌측 에지(Left Edge)에 정렬되도록, 데이터 스트로브 신호(DQS)가 생성될 수 있다. 이 경우, 제1 특정 패턴(SP1) 및 제2 특정 패턴(SP2)이 불휘발성 메모리 장치(120)에 의해 정상적으로 식별된다면, 데이터 신호(DQ)의 윈도우의 좌측 에지에 대한 정보는 정확한 것으로 판별될 수 있고, 제1 특정 패턴(SP1) 또는 제2 특정 패턴(SP2)이 불휘발성 메모리 장치(120)에 의해 정상적으로 식별되지 않는다면, 데이터 신호(DQ)의 윈도우의 좌측 에지에 대한 정보는 정확하지 않은 것으로 판별될 수 있다.
이와 유사하게, 도 14b에 도시된 바와 같이, 데이터 스트로브 신호(DQS)의 첫 번째 주기의 상승 에지 및 하강 에지가 데이터 신호(DQ)의 윈도우의 우측 에지(Right Edge)에 정렬되도록 데이터 스트로브 신호(DQS)가 생성될 수 있다. 이 경우, 제1 특정 패턴(SP1) 및 제2 특정 패턴(SP2)이 불휘발성 메모리 장치(120)에 의해 정상적으로 식별된다면, 데이터 신호(DQ)의 윈도우의 우측 에지에 대한 정보는 정확한 것으로 판별될 수 있고, 제1 특정 패턴(SP1) 또는 제2 특정 패턴(SP2)이 불휘발성 메모리 장치(120)에 의해 정상적으로 식별되지 않는다면, 데이터 신호(DQ)의 윈도우의 우측 에지에 대한 정보는 정확하지 않은 것으로 판별될 수 있다.
도 14c에 도시된 바와 같이, 데이터 스트로브 신호(DQS)의 첫 번째 주기의 상승 에지 및 하강 에지가 데이터 신호(DQ)의 윈도우의 좌측 에지(Left Edge)에 정렬되고, 데이터 스트로브 신호(DQS)의 두 번째 주기의 상승 에지 및 하강 에지가 데이터 신호(DQ)의 윈도우의 우측 에지(Right Edge)에 정렬되도록 데이터 스트로브 신호(DQS)가 생성될 수 있다. 앞서 설명된 바와 유사하게, 제1 내지 제4 특정 패턴들(SP1~SP4)에 대한 패턴 검사 결과에 따라, 데이터 신호(DQ)의 윈도우에 대하여 미리 설정된 값들의 정확성이 판별될 수 있다.
상술된 바와 같이, 메모리 컨트롤러(110)는 패턴 구간(T_PATTERN) 동안, 데이터 신호(DQ)의 윈도우를 확인할 수 있도록 데이터 스트로브 신호(DQS)의 지연(delay) 또는 듀티 비(duty rate)를 가변할 수 있다.
도 15는 도 1의 불휘발성 메모리 장치의 동작을 보여주는 순서도이다. 도 16은 도 15의 순서도에 따른 불휘발성 메모리 장치로의 데이터 입력을 보여주는 타이밍도이다. 도 16의 타이밍도의 가로축은 시간을 가리킨다.
도 1, 도 15, 및 도 16을 참조하면, S310 단계에서, 불휘발성 메모리 장치(120)는 메모리 컨트롤러(110)로부터 커맨드 및 어드레스를 수신할 수 있다. S310 단계의 동작은 도 4의 S110 단계의 동작과 유사하므로, 이에 대한 상세한 설명은 생략된다.
S320 단계에서, 불휘발성 메모리 장치(120)는, 메모리 컨트롤러(110)로부터 특정 패턴을 수신하고, 이후에, 사용자 데이터(UD) 및 CRC(Cyclical Redundancy Check) 코드를 수신할 수 있다. CRC 코드는 사용자 데이터(UD)에 대한 오류를 검출하기 위한 데이터일 수 있다. 예를 들어, 도 16에 도시된 바와 같이, 불휘발성 메모리 장치(120)는 패턴 구간(T_PATTERN) 동안 제1 내지 제4 특정 패턴들(SP1~SP4)을 수신할 수 있다. 이후에, 불휘발성 메모리 장치(120)는 데이터 구간(T_DATA) 동안 복수의 사용자 데이터(UD1~UDm) 및 CRC 코드를 수신할 수 있다. CRC 코드는 복수의 사용자 데이터(UD1~UDm)에 대한 오류를 검출하기 위한 데이터일 수 있으며, 불휘발성 메모리 장치(120)는 CRC 코드를 사용하여 복수의 사용자 데이터(UD1~UDm)가 정상적으로 수신되었는지를 판별할 수 있다.
S330 단계에서, 불휘발성 메모리 장치(120)는 특정 패턴(SP)이 미리 정해진 패턴과 일치하는지 판별할 수 있다. 특정 패턴(SP)이 미리 정해진 패턴과 일치하지 않는 경우, 불휘발성 메모리 장치(120)는 S340 단계의 동작을 수행할 수 있다. S340 단계의 동작은 도 4의 S150 단계의 동작과 유사하므로, 이에 대한 상세한 설명은 생략된다.
특정 패턴(SP)이 미리 정해진 패턴과 일치하는 경우, S350 단계에서, 불휘발성 메모리 장치(120)는 CRC 코드를 기반으로, 수신된 사용자 데이터(UD)가 정확한지 판별할 수 있다. 다시 말해서, 불휘발성 메모리 장치(120)는 CRC 코드를 사용하여 수신된 사용자 데이터(UD)에 에러가 포함되어 있는지 판별할 수 있다.
수신된 사용자 데이터(UD)가 정확한 경우, 불휘발성 메모리 장치(120)는 S360 단계의 동작을 수행한다. S360 단계의 동작은 도 4의 S140 단계의 동작과 유사하므로, 이에 대한 상세한 설명은 생략된다. 수신된 사용자 데이터(UD)가 정확하지 않은 경우, 불휘발성 메모리 장치(120)는 S340 단계의 동작을 수행한다.
상술된 바와 같이, 불휘발성 메모리 장치(120)는 패턴 구간(T_PATTERN) 동안 수신된 특정 패턴에 대한 패턴 검사 결과를 기반으로 사용자 데이터(UD)에 대한 프로그램 동작을 수행하거나 또는 복구 동작을 수행할 수 있다. 예시적으로, 특정 패턴이 미리 정해진 패턴과 일치하더라도, 다양한 요인(온도 변화, 전압 변화, 속도 변화 등)으로 인하여, 데이터 구간(T_DATA) 동안 데이터 스트로브 신호(DQS)의 왜곡이 발생할 수 있다. 이에 따라, 특정 패턴(SP)이 미리 정해진 패턴과 일치하더라도, 사용자 데이터(UD)는 정상적으로 수신되지 않을 수 있다. 이 경우, 불휘발성 메모리 장치(120)는 패턴 검사뿐만 아니라, 사용자 데이터(UD)에 대한 CRC 코드를 사용하여 사용자 데이터(UD)의 정확성 또는 오류를 검사함으로써, 사용자 데이터의 신뢰성을 향상시킬 수 있다.
도 17은 도 1의 불휘발성 메모리 장치의 동작을 보여주는 순서도이다. 도 18은 도 17의 순서도에 따른 불휘발성 메모리 장치로의 데이터 입력을 보여주는 타이밍도이다. 도 1, 도 17, 및 도 18을 참조하면, S410 단계에서, 불휘발성 메모리 장치(120)는 메모리 컨트롤러(110)로부터 커맨드 및 어드레스를 수신한다. S410 단계의 동작은 도 4의 S110 단계의 동작과 유사하므로, 이에 대한 상세한 설명은 생략된다.
S420 단계에서, 불휘발성 메모리 장치(120)는, 메모리 컨트롤러(110)로부터 임의의 패턴(RP) 및 CRC 코드를 수신하고, 이후에, 사용자 데이터(UD)를 수신한다. 예를 들어, 앞서 설명된 실시 예들에서, 불휘발성 메모리 장치(120)는 패턴 구간(T_PATTERN)에서, 미리 정해진 특정 패턴(SP)을 수신하고, 수신된 특정 패턴에 대한 패턴 검사를 수행한다. 이와 달리 도 18에 도시된 바와 같이, 불휘발성 메모리 장치(120)는 패턴 구간(T_PATTERN)에서, 특정 패턴(SP) 대신에, 임의의 패턴들(RP1~RP3) 및 CRC 코드를 수신하고, 데이터 구간(T_DATA)에서 복수의 사용자 데이터(UD1~UDm)를 수신할 수 있다. 예시적으로, 임의의 패턴(RP)은 랜덤 데이터일 수 있고, CRC 코드는 랜덤 데이터에 대한 에러를 검출하기 위한 데이터일 수 있다.
S430 단계에서, 불휘발성 메모리 장치(120)는 임의의 패턴(RP)이 정확한지 판별할 수 있다. 예를 들어, 불휘발성 메모리 장치(120)는 CRC 코드를 사용하여 임의의 패턴들(RP1~RP3)에 에러가 포함되어 있는지 판별할 수 있다. 다시 말해서, 불휘발성 메모리 장치(120)는 CRC 코드를 사용하여 임의의 패턴들(RP1~RP3)이 정상적으로 수신되었는지 판별할 수 있다.
임의의 패턴들(RP1~RP3)이 정확한 경우, 불휘발성 메모리 장치(120)는 S440 단계의 동작을 수행하고, 임의의 패턴들(RP1~RP3)이 정확하지 않은 경우, 불휘발성 메모리 장치(120)는 S450 단계의 동작을 수행할 수 있다. S440 단계 및 S450 단계의 동작들은 도 4의 S140 단계 및 S150 단계의 동작들과 유사하므로, 이에 대한 상세한 설명은 생략된다.
상술된 바와 같이, 불휘발성 메모리 장치(120)는 패턴 구간(T_PATTERN)에서, 미리 정해진 특정 패턴(SP) 대신에 임의의 패턴(RP) 및 CRC 코드를 수신하고, CRC 코드를 사용하여 수신된 임의의 패턴(RP)이 정확한지 판별함으로써, 사용자 데이터에 대한 신뢰성을 보장할 수 있다.
도 19는 본 발명의 실시 예에 따른 페이지 프로그램 동작을 예시적으로 보여주는 타이밍도이다. 간결한 설명 및 도면의 간결성을 위하여, 도 1의 불휘발성 메모리 장치(120)로 제공되는 신호들을 참조하여, 프로그램 시퀀스가 설명된다. 도면의 간결성을 위하여, 각 신호들은 개략적으로 도시되나, 본 발명이 이에 한정되는 것은 아니다.
도 19에서 특정 패턴은 "S"의 참조 번호로 표기된다. 이는 단순히 도면의 간결성을 위한 것이며, 도 19의 특정 패턴(S)은 앞서 설명된 특정 패턴(SP)과 동일한 구성임이 이해될 것이다.
예시적으로, 도 19a에 도시된 칩 활성 신호(CE/; Chip Enable Signal), 커맨드 래치 활성 신호(CLE; Command Latch Enable Signal), 어드레스 래치 활성 신호(ALE; Address Latch Enable Signal), 쓰기 활성 신호(WE/; Write Enable Signal), 읽기 활성 신호(RE/; Read Enable Signal)은 메모리 컨트롤러(110)로부터 제공되는 제어 신호(CTRL)에 포함될 수 있다. 레디/비지 신호(R/B)는 불휘발성 메모리 장치(120)의 동작에 따라, 불휘발성 메모리 장치(120)에 의해 구동되는 신호일 수 있다.
페이지 프로그램 동작시, 칩 활성 신호(CE/)가 로우 레벨이 된다. 이후, 하이 레벨의 커맨드 래치 활성 신호(CLE) 및 쓰기 활성 신호(WE/)의 상승 에지에서 제1 커맨드(C1)가 데이터 신호(DQ)를 통해 제공된다. 이후, 하이 레벨의 어드레스 래치 활성 신호(ALE) 및 쓰기 활성 신호(WE/)의 상승 에지에서, 어드레스들(A)이 데이터 신호(DQ)를 통해 제공된다. 예시적으로, 제1 커맨드(C1)는 페이지 프로그램에 대한 커맨드(예를 들어, 80h)일 수 있다. 어드레스들(A)은 열 어드레스 및 행 어드레스를 포함할 수 있다.
이후에, 패턴 구간(T_PATTERN) 동안 데이터 스트로브 신호(DQS)에 동기하여, 특정 패턴(S)이 데이터 신호(DQ)를 통해 제공된다. 이후에, 데이터 구간(T_DATA) 동안 데이터 스트로브 신호(DQS)에 동기하여, 사용자 데이터(D)가 데이터 신호(DQ)를 통해 제공된다.
이후에, 하이 레벨의 커맨드 래치 활성 신호(CLE) 및 쓰기 활성 신호(WE/)의 상승 에지에서, 제2 커맨드(C2)가 데이터 신호(DQ)를 통해 제공된다. 예시적으로, 제2 커맨드(C2)는 프로그램 확인 커맨드(예를 들어, 10h)일 수 있다. 불휘발성 메모리 장치(120)는 제2 커맨드(C2)에 응답하여, 사용자 데이터(D)에 대한 프로그램 동작을 수행할 수 있다. 예시적으로, 앞서 설명된 바와 같이, 특정 패턴(S)이 미리 정해진 패턴과 일치하지 않는 경우, 프로그램 동작이 수행되지 않을 수 있다. 즉, 프로그램 동작이 생략될 수 있다.
이후에, 하이 레벨의 커맨드 래치 활성 신호(CLE) 및 쓰기 활성 신호(WE/)의 상승 에지에서, 제3 커맨드(C3)가 데이터 신호(DQ)를 통해 전송된다. 예시적으로, 제3 커맨드(C3)는 상태 읽기 커맨드(예를 들어, 70h, 78h 등)일 수 있다. 불휘발성 메모리 장치(120)는 제3 커맨드(C3)에 응답하여, 읽기 활성 신호(RE/)에 동기된 데이터 스트로브 신호(DQS)에 맞춰 상태 정보(SR)를 데이터 신호(DQ)를 통해 출력할 수 있다.
예시적으로, 앞서 설명된 바와 같이, 특정 패턴(S)이 미리 정해진 패턴과 일치하지 않는 경우, 불휘발성 메모리 장치(120)는 사용자 데이터(D)에 대한 프로그램 동작을 생략할 수 있다. 특정 패턴(S)이 미리 정해진 패턴과 일치하지 않는 경우, 제3 커맨드(C3)에 응답하여 출력되는 상태 정보(SR)는 패턴 불일치에 대한 정보를 포함할 것이다. 메모리 컨트롤러(110)는 패턴 불일치에 대한 정보를 포함하는 상태 정보(SR)를 기반으로 복구 동작을 수행할 수 있다.
상술된 바와 같이, 본 발명의 실시 예에 따른, 불휘발성 메모리 장치는 패턴 구간에서 특정 패턴을 수신하고, 수신된 특정 패턴에 패턴 검사를 수행할 수 있다. 예시적으로, 패턴 구간은 "쓰기를 위한 데이터 스트로브 신호 레이턴시(DQS latency for WRITE)"에 포함될 수 있다. 불휘발성 메모리 장치는, 패턴 검사 결과에 따라, 사용자 데이터에 대한 프로그램 동작을 수행하지 않고, 복구 동작을 수행할 수 있다. 따라서, 다양한 요인으로 인하여 발생되는 데이터 신호(DQ) 또는 데이터 스트로브 신호(DQS)의 왜곡에 의한 데이터 오류를 방지할 수 있다. 따라서, 향상된 신뢰성을 갖는 불휘발성 메모리 장치가 제공된다.
도 20은 본 발명에 따른 메모리 컨트롤러 및 불휘발성 메모리 장치 사이의 동작을 보여주는 도면이다. 본 발명의 기술적 사상을 명확하게 설명하기 위하여, 특정 패턴이 미리 정해진 패턴과 불일치하는 경우의 동작이 설명된다.
도 1 및 도 20을 참조하면, S1100 단계에서, 메모리 컨트롤러(110)는 프로그램 커맨드 및 어드레스를 불휘발성 메모리 장치(120)로 전송한다.
S1200 단계에서, 메모리 컨트롤러(110)는 특정 패턴 및 사용자 데이터를 불휘발성 메모리 장치(120)로 전송한다.
S1300 단계에서, 특정 패턴이 미리 정해진 패턴과 불일치하는 경우, 불휘발성 메모리 장치(120)는 상태 레지스터를 "프로그램 실패(program failure)"로 설정한다. 예시적으로, S1300 단계에서, 상태 레지스터에 설정되는 정보는 특정 패턴에 대한 불일치 정보를 포함할 수 있다.
S1400 단계에서, 메모리 컨트롤러(110)는 상태 읽기 커맨드를 불휘발성 메모리 장치(120)로 전송할 수 있다. 예시적으로, 상태 읽기 커맨드는 불휘발성 메모리 장치(120)로부터의 레디/비지 신호가 비지인 상태에서 전송될 수 있다.
S1500 단계에서, 불휘발성 메모리 장치(120)는 상태 읽기 커맨드에 응답하여, 상태 레지스터에 설정된 값을 메모리 컨트롤러(110)로 전송할 수 있다.
S1600 단계에서, 메모리 컨트롤러(110)는 수신된 상태 정보를 기반으로 불휘발성 메모리 장치(120)와 복구 동작을 수행할 수 있다.
도 21은 본 발명의 실시 예에 따른 저장 장치를 보여주는 블록도이다. 도 21을 참조하면, 저장 장치(210)는 메모리 컨트롤러(210) 및 불휘발성 메모리 장치(220)를 포함할 수 있다. 메모리 컨트롤러(210)는 제어 신호(CTRL), 데이터 신호(DQ), 및 데이터 스트로브 신호(DQS)를 불휘발성 메모리 장치(220)로 제공할 수 있다. 메모리 컨트롤러(210) 및 불휘발성 메모리 장치(220)는 도 1을 참조하여 설명되었으므로, 이에 대한 상세한 설명은 생략된다.
메모리 컨트롤러(210)는 패턴 생성기(211)를 포함할 수 있다. 패턴 생성기(211)는 패턴 구간 동안 불휘발성 메모리 장치(210)로 제공되는 특정 패턴(SP)을 생성할 수 있다. 예를 들어, 패턴 생성기(211)는 불휘발성 메모리 장치(210)로 제공될 어드레스(ADDR)를 기반으로 특정 패턴(SP)을 생성할 수 있다. 예시적으로, 특정 패턴(SP)은 어드레스(ADDR)와 동일한 값을 가질 수 있다. 또는 특정 패턴(SP)은 어드레스(ADDR)의 값들을 조합한 값일 수 있다.
불휘발성 메모리 장치(220)는 패턴 검사기(221)를 포함할 수 있다. 패턴 검사기(221)는 메모리 컨트롤러(210)로부터 수신된 특정 패턴(SP)에 대한 패턴 검사를 수행할 수 있다. 이 때, 앞서 설명된 바와 달리, 패턴 검사기(221)는 메모리 컨트롤러(210)로부터 수신된 어드레스(ADDR)를 기반으로 수신된 특정 패턴(SP)이 정확한지 판별할 수 있다. 즉, 도 21의 실시 예에서, 특정 패턴(SP)은 미리 정해진 패턴이 아니며, 프로그램 동작마다 바뀌는 어드레스(ADDR)에 기반된 값일 수 있다. 비록 도면에 도시되지 않았으나, 특정 패턴(SP)은 커맨드(CMD)와 동일한 값이거나, 또는 커맨드(CMD)를 조합한 값이거나, 또는 커맨드(CMD) 및 어드레스(ADDR)가 조합된 값일 수 있다.
예시적으로, 불휘발성 메모리 장치(220)는, 앞서 설명된 바와 같이, 패턴 검사 결과에 따라 프로그램 동작 또는 복구 동작을 수행할 수 있다.
도 22는 본 발명에 따른 불휘발성 메모리 장치가 적용된 SSD 시스템(1000)을 보여주는 블록도이다. 도 22를 참조하면, SSD 시스템(1000)은 호스트(1100) 및 SSD(1200)를 포함한다.
SSD(1200)는 신호 커넥터(1201)를 통해 호스트(1100)와 신호(SIG)를 주고 받고, 전원 커넥터(1202)를 통해 전원(PWR)을 입력 받는다. SSD(1200)는 SSD 컨트롤러(1210), 복수의 플래시 메모리들(1221~122n), 보조 전원 장치(1230), 및 버퍼 메모리(1240)를 포함한다.
SSD 컨트롤러(1210)는 호스트(1100)로부터 수신된 신호(SIG)에 응답하여 복수의 플래시 메모리들(1221~122n)을 제어할 수 있다. 복수의 플래시 메모리들(1221~122n)은 SSD 컨트롤러(1210)의 제어에 따라 동작할 수 있다. 보조 전원 장치(1230)는 전원 커넥터(1002)를 통해 호스트(1100)와 연결된다. 보조 전원 장치(1230)는 호스트(1100)로부터 전원(PWR)을 입력 받고, 충전할 수 있다. 보조 전원 장치(1230)는 호스트(1100)로부터의 전원 공급이 원활하지 않을 경우, SSD(1200)의 전원을 제공할 수 있다. 버퍼 메모리(1240)는 SSD(1200)의 버퍼 메모리로 동작한다.
예시적으로, 복수의 플래시 메모리들(1221~1522n) 각각은 도 1 내지 도 21을 참조하여 설명된 바와 같이, 프로그램 동작시, SSD 컨트롤러(1210)로부터 특정 패턴을 수신하고, 수신된 특정 패턴에 대한 패턴 검사 결과를 기반으로 사용자 데이터에 대한 프로그램 동작을 수행하거나 또는 복구 동작을 수행할 수 있다.
상술된 본 발명의 실시 예들에 따르면, 불휘발성 메모리 장치는 패턴 구간에서 특정 패턴을 수신하고, 수신된 특정 패턴이 미리 정해진 패턴과 일치하는지 여부에 따라, 사용자 데이터에 대한 프로그램 동작을 수행하거나 또는 복구 동작을 수행할 수 있다. 따라서, 다양한 요인들로 인하여, 데이터 스트로브 신호(DQS) 또는 데이터 신호(DQ)가 왜곡된 경우, 이를 보정할 수 있기 때문에, 향상된 신뢰성을 갖는 불휘발성 메모리 장치가 제공된다.
상술된 내용은 본 발명을 실시하기 위한 구체적인 실시 예들이다. 본 발명은 상술된 실시 예들뿐만 아니라, 단순하게 설계 변경되거나 용이하게 변경할 수 있는 실시 예들 또한 포함할 것이다. 또한, 본 발명은 실시 예들을 이용하여 용이하게 변형하여 실시할 수 있는 기술들도 포함될 것이다. 따라서, 본 발명의 범위는 상술된 실시 예들에 국한되어 정해져서는 안되며 후술하는 특허청구범위뿐만 아니라 이 발명의 특허청구범위와 균등한 것들에 의해 정해져야 할 것이다.
100: 저장 장치
110: 메모리 컨트롤러
120: 불휘발성 메모리 장치
DQ: 데이터 신호
DQS: 데이터 스트로브 신호
CTRL: 제어 신호
CMD: 커맨드
ADDR: 어드레스
SP: 특정 패턴
UD: 사용자 데이터

Claims (20)

  1. 불휘발성 메모리 장치의 동작 방법에 있어서,
    외부 장치로부터 데이터 신호(DQ)를 통해 프로그램 커맨드 및 어드레스를 수신하는 단계;
    패턴 구간 동안, 상기 데이터 신호 및 상기 데이터 신호와 동기된 데이터 스트로브 신호(DQS)를 통해 상기 외부 장치로부터 특정 패턴을 수신하는 단계;
    데이터 구간 동안, 상기 데이터 신호 및 상기 데이터 스트로브 신호를 통해 상기 외부 장치로부터 사용자 데이터를 수신하는 단계; 및
    상기 특정 패턴이 미리 정해진 패턴과 일치하는 경우 상기 사용자 데이터에 대한 프로그램 동작을 수행하고, 상기 특정 패턴이 상기 미리 정해진 패턴과 일치하지 않는 경우 복구 동작을 수행하는 단계를 포함하고,
    상기 패턴 구간 동안, 상기 데이터 스트로브 신호의 상승 에지 또는 하강 에지는 상기 데이터 신호의 윈도우의 좌측 에지(Left edge) 또는 우측 에지(Right edge)에 정렬되는 동작 방법.
  2. 제 1 항에 있어서,
    상기 패턴 구간의 길이는 상기 데이터 스트로브 신호의 미리 정해진 주기인 동작 방법.
  3. 제 1 항에 있어서,
    상기 특정 패턴이 상기 미리 정해진 패턴과 일치하지 않는 경우 상기 사용자 데이터에 대한 상기 프로그램 동작 없이, 상기 프로그램 동작을 프로그램 실패로 처리하는 동작 방법.
  4. 제 3 항에 있어서,
    상기 외부 장치의 요청에 따라, 상기 프로그램 실패에 대한 정보가 상태 정보로서 상기 외부 장치로 제공하는 동작 방법.
  5. 제 4 항에 있어서,
    상기 외부 장치로부터 프로그램 확인 커맨드를 수신한 이후에, 상기 상태 정보가 상기 외부 장치로 제공되는 동작 방법.
  6. 제 4 항에 있어서,
    상기 외부 장치로부터 프로그램 확인 커맨드를 수신하기 이전에, 상기 상태 정보가 상기 외부 장치로 제공되는 동작 방법.
  7. 제 1 항에 있어서,
    상기 복구 동작은 상기 외부 장치의 제어에 따른 재-트레이닝 동작을 포함하는 동작 방법.
  8. 제 7 항에 있어서,
    상기 재-트레이닝 동작은 ZQ 캘리브레이션 동작, DCC(duty cycle corrector) 트레이닝 동작, 읽기 트레이닝 동작, 또는 쓰기 트레이닝 동작 중 적어도 하나를 포함하는 동작 방법.
  9. 제 7 항에 있어서,
    상기 재-트레이닝 동작이 수행됨으로써, 상기 데이터 스트로브 신호는 상기 데이터 신호와 중앙-정렬(center-aligning)되는 동작 방법.
  10. 제 1 항에 있어서,
    상기 패턴 구간 이전에, 더미 구간 동안 상기 데이터 신호 및 상기 데이터 스트로브 신호를 통해 상기 외부 장치로부터 더미 데이터를 수신하는 단계를 더 포함하는 동작 방법.
  11. 불휘발성 메모리 장치의 동작 방법에 있어서,
    외부 장치로부터 데이터 신호(DQ)를 통해 프로그램 커맨드 및 어드레스를 수신하는 단계;
    패턴 구간 동안, 상기 데이터 신호 및 상기 데이터 신호에 동기된 데이터 스트로브 신호(DQS)를 통해 상기 외부 장치로부터 특정 패턴을 수신하는 단계;
    데이터 구간 동안, 상기 데이터 신호 및 상기 데이터 스트로브 신호를 통해 상기 외부 장치로부터 사용자 데이터 및 순환 중복 검사(CRC; cyclic redundancy check) 코드를 수신하는 단계; 및
    상기 특정 패턴이 미리 정해진 패턴과 일치하지 않거나 또는 상기 CRC 코드를 기반으로 상기 사용자 데이터에서 오류가 검출된 경우 복구 동작을 수행하고, 상기 특정 패턴이 상기 미리 정해진 패턴과 일치하고 상기 CRC 코드를 기반으로 상기 사용자 데이터에서 오류가 검출되지 않은 경우 상기 사용자 데이터에 대한 프로그램 동작을 수행하는 단계를 포함하고,
    상기 패턴 구간 동안, 상기 데이터 스트로브 신호의 상승 에지 또는 하강 에지는 상기 데이터 신호의 윈도우의 좌측 에지(Left edge) 또는 우측 에지(Right edge)에 정렬되는 동작 방법.
  12. 제 11 항에 있어서,
    상기 특정 패턴이 상기 미리 정해진 패턴과 일치하지 않거나 또는 상기 CRC 코드를 기반으로 상기 사용자 데이터에서 상기 오류가 검출된 경우, 상기 사용자 데이터에 대한 상기 프로그램 동작을 수행하지 않고, 상기 프로그램 동작을 프로그램 실패로 처리하는 동작 방법.
  13. 제 12 항에 있어서,
    상기 프로그램 실패에 대한 정보가 상태 정보를 통해 상기 외부 장치로 제공되는 동작 방법.
  14. 제 11 항에 있어서,
    상기 패턴 구간 이전의 더미 구간 동안, 상기 데이터 신호 및 상기 데이터 스트로브 신호를 통해 상기 외부 장치로부터 더미 데이터를 수신하는 단계를 더 포함하는 동작 방법.
  15. 제 14 항에 있어서,
    상기 패턴 구간의 길이 및 상기 더미 구간의 길이는 셋 피쳐 동작(Set Feature Operation)에 의해 미리 정해지는 동작 방법.
  16. 불휘발성 메모리 장치를 제어하는 메모리 컨트롤러의 동작 방법에 있어서,
    데이터 신호를 통해 상기 불휘발성 메모리 장치로 커맨드 및 어드레스를 전송하는 단계;
    패턴 구간 동안, 상기 데이터 신호 및 상기 데이터 신호에 동기된 데이터 스트로브 신호를 통해 상기 불휘발성 메모리 장치로 특정 패턴을 전송하는 단계;
    데이터 구간 동안, 상기 데이터 신호 및 상기 데이터 스트로브 신호를 통해 상기 불휘발성 메모리 장치로 사용자 데이터를 전송하는 단계;
    상기 불휘발성 메모리 장치로부터 상태 정보를 수신하는 단계; 및
    상기 상태 정보에 응답하여, 상기 불휘발성 메모리 장치에 대한 복구 동작을 수행하는 단계를 포함하되,
    상기 패턴 구간 동안, 상기 데이터 스트로브 신호의 상승 에지 또는 하강 에지는 상기 데이터 신호의 윈도우의 좌측 에지 또는 우측 에지에 정렬되는 동작 방법.
  17. 제 16 항에 있어서,
    상기 상태 정보는 상기 특정 패턴 및 미리 정해진 패턴의 불일치에 대한 정보를 포함하는 동작 방법.
  18. 제 16 항에 있어서,
    상기 상태 정보는 상기 사용자 데이터에 대한 프로그램 동작의 프로그램 실패에 대한 정보를 포함하는 동작 방법.
  19. 제 16 항에 있어서,
    상기 특정 패턴은 상기 어드레스의 값에 기반된 패턴인 동작 방법.
  20. 제 16 항에 있어서,
    상기 복구 동작은 상기 불휘발성 메모리 장치와의 재-트레이닝 동작을 포함하는 동작 방법.

KR1020170116113A 2017-09-11 2017-09-11 불휘발성 메모리 장치의 동작 방법 및 메모리 컨트롤러의 동작 방법 KR102378384B1 (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1020170116113A KR102378384B1 (ko) 2017-09-11 2017-09-11 불휘발성 메모리 장치의 동작 방법 및 메모리 컨트롤러의 동작 방법
US15/964,993 US10366023B2 (en) 2017-09-11 2018-04-27 Operation methods of nonvolatile memory devices and operation methods of memory controllers
DE102018117119.6A DE102018117119A1 (de) 2017-09-11 2018-07-16 Betriebsverfahren von nichtflüchtigen Speichervorrichtungen und Betriebsverfahren von Speichersteuerungen
CN201811018468.8A CN109493907B (zh) 2017-09-11 2018-09-03 非易失性存储设备的操作方法和存储器控制器的操作方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170116113A KR102378384B1 (ko) 2017-09-11 2017-09-11 불휘발성 메모리 장치의 동작 방법 및 메모리 컨트롤러의 동작 방법

Publications (2)

Publication Number Publication Date
KR20190029056A KR20190029056A (ko) 2019-03-20
KR102378384B1 true KR102378384B1 (ko) 2022-03-24

Family

ID=65441878

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170116113A KR102378384B1 (ko) 2017-09-11 2017-09-11 불휘발성 메모리 장치의 동작 방법 및 메모리 컨트롤러의 동작 방법

Country Status (4)

Country Link
US (1) US10366023B2 (ko)
KR (1) KR102378384B1 (ko)
CN (1) CN109493907B (ko)
DE (1) DE102018117119A1 (ko)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108646984B (zh) * 2018-05-16 2020-01-03 华为技术有限公司 一种dqs位置调整方法和装置
KR20200113047A (ko) * 2019-03-20 2020-10-06 삼성전자주식회사 오픈 채널 스토리지 장치의 동작 방법
CN112100087B (zh) 2019-06-17 2024-04-02 慧荣科技股份有限公司 数据储存装置以及非挥发式存储器控制方法
CN112099985B (zh) 2019-06-17 2023-09-12 慧荣科技股份有限公司 数据储存装置以及非挥发式存储器控制方法
CN112130750B (zh) * 2019-06-25 2023-11-07 慧荣科技股份有限公司 数据储存装置以及非挥发式存储器控制方法
CN110399319B (zh) * 2019-07-25 2021-03-23 尧云科技(西安)有限公司 一种NAND Flash PHY
KR102263043B1 (ko) * 2019-08-07 2021-06-09 삼성전자주식회사 비휘발성 메모리 장치, 컨트롤러 및 메모리 시스템
KR20210058505A (ko) 2019-11-14 2021-05-24 삼성전자주식회사 메모리 장치를 제어하도록 구성된 시스템-온-칩의 동작 방법
CN111221582B (zh) * 2020-01-02 2024-04-12 深圳中电长城信息安全系统有限公司 一种内存训练的方法及系统
US11347581B2 (en) 2020-04-27 2022-05-31 Western Digital Technologies, Inc. System for accelerated training of bit output timings
KR20210144118A (ko) 2020-05-21 2021-11-30 에스케이하이닉스 주식회사 듀티 사이클 보정 회로와 반도체 시스템
CN112053726B (zh) * 2020-09-09 2022-04-12 哈尔滨工业大学 一种基于Er态阈值电压分布的闪存误擦除数据恢复方法
KR20220121385A (ko) 2021-02-25 2022-09-01 삼성전자주식회사 어플리케이션 프로세서 및 이를 포함하는 전자 장치
KR20220165130A (ko) * 2021-06-07 2022-12-14 에스케이하이닉스 주식회사 메모리 시스템 및 이의 동작 방법
KR102461404B1 (ko) * 2022-04-08 2022-10-31 주식회사 세미파이브 시스템 온 칩과 메모리 사이의 통신을 위한 io 파라미터를 설정하는 방법 및 장치

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100942953B1 (ko) * 2008-06-30 2010-02-17 주식회사 하이닉스반도체 데이터 전달 회로 및 그를 포함하는 반도체 메모리 장치

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4503494A (en) * 1980-06-26 1985-03-05 Texas Instruments Incorporated Non-volatile memory system
US4443845A (en) * 1980-06-26 1984-04-17 Texas Instruments Incorporated Memory system having a common interface
KR100290282B1 (ko) * 1998-11-23 2001-05-15 윤종용 프로그램 시간을 단축할 수 있는 불 휘발성반도체메모리 장치
US6606041B1 (en) * 2000-05-10 2003-08-12 Micron Technology, Inc. Predictive timing calibration for memory devices
JP2004348789A (ja) * 2003-05-20 2004-12-09 Sharp Corp 半導体記憶装置及び携帯電子機器
KR100903385B1 (ko) * 2007-11-02 2009-06-23 주식회사 하이닉스반도체 고속으로 데이터 송신할 수 있는 반도체 메모리 장치
EP2232493B1 (en) * 2007-12-21 2018-05-09 Rambus Inc. Method and apparatus for calibrating write timing in a memory system
KR20090070555A (ko) 2007-12-27 2009-07-01 삼성전자주식회사 데이터 판독 방법, 판독 장치 및 기록 매체
US9431091B2 (en) 2008-06-06 2016-08-30 Uniquify, Inc. Multiple gating modes and half-frequency dynamic calibration for DDR memory controllers
JP2010122842A (ja) * 2008-11-19 2010-06-03 Nec Electronics Corp 遅延調整装置、半導体装置及び遅延調整方法
KR101589542B1 (ko) * 2009-11-30 2016-01-29 에스케이하이닉스 주식회사 라이트드라이빙 장치
US8856579B2 (en) 2010-03-15 2014-10-07 International Business Machines Corporation Memory interface having extended strobe burst for read timing calibration
KR20120011491A (ko) 2010-07-29 2012-02-08 주식회사 하이닉스반도체 반도체 시스템 및 그 데이터 트래이닝 방법
US9355051B2 (en) 2010-09-10 2016-05-31 Cypress Semiconductor Corporation Apparatus, method, and manufacture for using a read preamble to optimize data capture
KR101791456B1 (ko) * 2010-10-11 2017-11-21 삼성전자주식회사 라이트 트레이닝 방법 및 이를 수행하는 반도체 장치
US8565033B1 (en) 2011-05-31 2013-10-22 Altera Corporation Methods for calibrating memory interface circuitry
US8547760B2 (en) 2011-06-29 2013-10-01 International Business Machines Corporation Memory access alignment in a double data rate (‘DDR’) system
US9042188B2 (en) 2013-04-01 2015-05-26 Arm Limited Memory controller and method of calibrating a memory controller
KR102138110B1 (ko) * 2013-10-04 2020-07-27 삼성전자주식회사 플래시 메모리를 기반으로 하는 저장 장치 및 그것의 동작 방법
JP5714681B2 (ja) * 2013-10-25 2015-05-07 ウィンボンド エレクトロニクス コーポレーション 半導体記憶装置
KR102146037B1 (ko) * 2013-11-14 2020-08-19 삼성전자주식회사 불휘발성 메모리 시스템 및 그것의 동작 방법
WO2016130415A1 (en) 2015-02-13 2016-08-18 3M Innovative Properties Company Methods for treating fibrous substrates using fluorine-free compositions including isocyanate-derived (meth)acrylate-containing polymeric compounds
KR102235521B1 (ko) * 2015-02-13 2021-04-05 삼성전자주식회사 특정 패턴을 갖는 저장 장치 및 그것의 동작 방법
JP6387883B2 (ja) * 2015-04-02 2018-09-12 富士通株式会社 情報処理装置、情報処理システム、情報処理装置の制御プログラムおよび情報処理装置の制御方法
US10152413B2 (en) * 2015-06-08 2018-12-11 Samsung Electronics Co. Ltd. Nonvolatile memory module and operation method thereof
US10679722B2 (en) * 2016-08-26 2020-06-09 Sandisk Technologies Llc Storage system with several integrated components and method for use therewith

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100942953B1 (ko) * 2008-06-30 2010-02-17 주식회사 하이닉스반도체 데이터 전달 회로 및 그를 포함하는 반도체 메모리 장치

Also Published As

Publication number Publication date
US20190079882A1 (en) 2019-03-14
CN109493907A (zh) 2019-03-19
CN109493907B (zh) 2023-09-12
US10366023B2 (en) 2019-07-30
KR20190029056A (ko) 2019-03-20
DE102018117119A1 (de) 2019-03-14

Similar Documents

Publication Publication Date Title
KR102378384B1 (ko) 불휘발성 메모리 장치의 동작 방법 및 메모리 컨트롤러의 동작 방법
KR102126716B1 (ko) 비휘발성 메모리 장치의 구동 방법 및 이를 이용하는 비휘발성 메모리 장치
CN111133512B (zh) 用于将零写入到存储器阵列的系统和方法
KR101596827B1 (ko) 불휘발성 메모리 장치, 그것의 동작 방법, 그리고 그것을 포함하는 메모리 시스템
US20080316819A1 (en) Flash memory device capable of storing multi-bit data and single-bit data
CN102132354B (zh) 闪存中的数据的快速低功率读取
TWI688858B (zh) 記憶體裝置、包括一記憶體裝置之設備及用於實施計數器之方法
KR20200052562A (ko) 스토리지 장치
KR102585218B1 (ko) 비휘발성 메모리 장치 및 그것을 포함하는 저장 장치
KR102499794B1 (ko) 스토리지 장치 및 스토리지 장치의 동작 방법
KR20090120685A (ko) 불휘발성 메모리 장치의 프로그램 검증 방법
CN110942795B (zh) 存储器系统、其操作方法以及非易失性存储器装置
CN109686391B (zh) 非易失性存储器装置及其操作方法及非易失性存储器封装
US9036418B2 (en) Read voltage generation circuit, memory and memory system including the same
TWI612530B (zh) 半導體記憶體裝置
US20220391141A1 (en) Method of operating host device and memory device, and memory system comprising the host device and memory device
TWI663600B (zh) 編程非揮發性記憶體的方法及記憶體系統
KR20100045739A (ko) 불휘발성 메모리 장치, 그것의 프로그램 방법, 그리고 그것을 포함하는 메모리 시스템
US11119692B2 (en) Storage device having wide input/output and method of operating the same
CN111108560B (zh) 用于将零写入到存储器阵列的系统和方法
US11699469B2 (en) Operating method of host device and memory device and memory system
CN115798552A (zh) 存储器装置及该存储器装置的操作方法
US11894079B2 (en) Memory controller, memory system with improved threshold voltage distribution characteristics, and operation method
KR20090048108A (ko) 불휘발성 메모리 장치와 그 독출방법
KR20220075571A (ko) 비휘발성 메모리 장치의 데이터 기입 방법, 이를 수행하는 비휘발성 메모리 장치 및 이를 이용한 메모리 시스템의 구동 방법

Legal Events

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