KR102312399B1 - 메모리 시스템 및 이의 동작 방법 - Google Patents

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

Info

Publication number
KR102312399B1
KR102312399B1 KR1020150126374A KR20150126374A KR102312399B1 KR 102312399 B1 KR102312399 B1 KR 102312399B1 KR 1020150126374 A KR1020150126374 A KR 1020150126374A KR 20150126374 A KR20150126374 A KR 20150126374A KR 102312399 B1 KR102312399 B1 KR 102312399B1
Authority
KR
South Korea
Prior art keywords
storage device
data
program operation
memory
abandoned
Prior art date
Application number
KR1020150126374A
Other languages
English (en)
Other versions
KR20170029261A (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 KR1020150126374A priority Critical patent/KR102312399B1/ko
Priority to US15/048,514 priority patent/US10037247B2/en
Priority to CN201610141526.0A priority patent/CN106504788B/zh
Publication of KR20170029261A publication Critical patent/KR20170029261A/ko
Application granted granted Critical
Publication of KR102312399B1 publication Critical patent/KR102312399B1/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/10Programming or data input circuits
    • 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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1405Saving, restoring, recovering or retrying at machine instruction level
    • G06F11/141Saving, restoring, recovering or retrying at machine instruction level for bus or memory accesses
    • 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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • 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/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to storage systems
    • 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
    • G11C16/102External programming circuits, e.g. EPROM programmers; In-circuit programming or reprogramming; EPROM emulators
    • 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/24Bit-line control 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
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/805Real-time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/85Active fault masking without idle spares

Landscapes

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

Abstract

본 기술은 채널에 연결된 다수의 저장 장치들이 포함된 메모리 장치; 및 상기 저장 장치들 중 제1 저장 장치의 프로그램 동작시, 상기 저장 장치들 중 제2 저장 장치에 데이터를 임시로 저장하고, 상기 제1 저장 장치의 상기 프로그램 동작이 페일(fail)된 경우, 상기 제2 저장 장치에 임시로 저장된 데이터를 사용하여 상기 제1 저장 장치의 상기 프로그램 동작이 수행되도록 상기 메모리 장치를 제어하는 컨트롤러를 포함하는 메모리 시스템 및 이의 동작방법을 포함한다.

Description

메모리 시스템 및 이의 동작 방법{Memory system and operating method thereof}
본 발명은 메모리 시스템 및 이의 동작 방법에 관한 것으로, 보다 구체적으로는 컨트롤러와 메모리 장치를 포함하는 메모리 시스템 및 이의 동작 방법에 관한 것이다.
메모리 시스템(memory system)은 컴퓨터, 디지털 카메라, MP3 플레이어, 스마트폰과 같은 디지털 기기들의 데이터 저장 장치로 널리 사용되고 있다. 이러한 메모리 시스템은 데이터가 저장되는 메모리 장치와 메모리 장치를 제어하는 컨트롤러를 포함할 수 있다. 디지털 기기들을 호스트(host)라 하면, 컨트롤러는 호스트와 메모리 장치 사이에서 커맨드 및 데이터를 전송한다.
최근에는 디지털 기기들의 휴대성이 개선되면서 데이터의 사용량도 점차 증가하고 있다. 데이터 증가로 인해, 메모리 장치에는 다수의 저장 장치들이 포함된다. 다수의 저장 장치들은 채널(channel)을 통해 컨트롤러와 통신한다. 예를 들면, 하나의 채널에 다수의 저장 장치들이 연결될 수 있으며, 메모리 시스템에는 다수의 채널들이 포함될 수 있다.
다수의 채널을 포함하는 메모리 시스템의 경우, 컨트롤러가 통신하는 저장 장치들의 개수가 증가함에 따라 컨트롤러의 부하(load)가 증가할 수 있다. 프로그램 동작을 예로 들면, 컨트롤러는 선택된 저장 장치의 프로그램 동작시, 프로그램 동작이 페일(fail)되는 경우를 대비하여 컨트롤러 내에 데이터를 임시로 저장할 수 있다. 하지만, 저장 장치들의 개수가 증가함에 따라 컨트롤러 내에 임시로 저장되는 데이터의 량이 증가하면서 컨트롤러의 부하(load)가 증가할 수 있다.
본 발명의 실시예는 컨트롤러의 부하를 감소시킬 수 있는 메모리 시스템 및 이의 동작 방법을 제공한다.
본 발명의 실시예에 따른 메모리 시스템은, 채널에 연결된 다수의 저장 장치들이 포함된 메모리 장치; 및 상기 저장 장치들 중 제1 저장 장치의 프로그램 동작시, 상기 저장 장치들 중 제2 저장 장치에 데이터를 임시로 저장하고, 상기 제1 저장 장치의 상기 프로그램 동작이 페일(fail)된 경우, 상기 제2 저장 장치에 임시로 저장된 데이터를 사용하여 상기 제1 저장 장치의 상기 프로그램 동작이 수행되도록 상기 메모리 장치를 제어하는 컨트롤러를 포함한다.
본 발명의 실시예에 따른 메모리 시스템의 동작방법은, 동일한 채널(channel)에 연결된 제1 저장 장치와 제2 저장 장치에 데이터를 동시에 입력하는 단계; 상기 제1 저장 장치에 입력된 상기 데이터를 사용하여 상기 제1 저장 장치의 프로그램 동작을 수행하는 단계; 및 상기 프로그램 동작이 페일(fail)되면, 상기 제2 저장 장치에 입력된 상기 데이터를 사용하여 상기 제1 저장 장치의 재프로그램 동작을 수행하는 단계를 포함한다.
본 발명의 실시예에 따른 메모리 시스템의 동작방법은, 제1 및 제2 저장 장치들에 프로그램 커맨드를 인가하는 단계; 상기 제1 및 제2 저장 장치들에 어드레스 및 데이터를 입력하는 단계; 상기 제1 저장 장치가 프로그램 동작을 수행하도록 상기 제1 저장 장치에 프로그램 시작 커맨드를 인가하는 단계; 및 상기 제2 저장 장치가 대기 상태를 유지하도록 상기 제2 저장 장치에 홀드 커맨드를 인가하는 단계를 포함한다.
본 기술은 비선택된 저장 장치들에 데이터를 임시로 저장함으로써, 컨트롤러의 저장 용량 증가를 방지할 수 있고, 저장 장치들의 다양한 동작을 제어하는 컨트롤러의 부하 증가를 억제할 수 있으므로, 컨트롤러의 성능을 개선시킬 수 있다.
도 1은 본 발명의 실시예에 따른 메모리 시스템을 설명하기 위한 도면이다.
도 2는 도 1의 컨트롤러를 구체적으로 설명하기 위한 도면이다.
도 3은 도 1의 저장 장치 그룹을 설명하기 위한 도면이다.
도 4는 도 3의 저장 장치를 설명하기 위한 도면이다.
도 5는 도 4의 저장 장치를 구체적으로 설명하기 위한 도면이다.
도 6은 도 5의 페이지 버퍼를 설명하기 위한 도면이다.
도 7은 본 발명의 실시예에 따른 프로그램 방법을 설명하기 위한 순서도이다.
도 8은 도 7의 프로그램 방법을 적용한 실시예를 설명하기 위한 도면이다.
도 9는 도 8의 프로그램 동작시 커맨드 및 데이터를 입력하는 방법을 구체적으로 설명하기 위한 도면이다.
도 10은 도 7의 프로그램 방법을 적용한 다른 실시예를 설명하기 위한 도면이다.
도 11은 도 7의 프로그램 방법을 적용한 또 다른 실시예를 설명하기 위한 도면이다.
도 12는 본 발명의 실시예에 따른 메모리 시스템을 포함하는 컴퓨팅 시스템의 개략적인 구성을 설명하기 위한 도면이다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시 예를 설명하기로 한다. 그러나, 본 발명은 이하에서 개시되는 실시 예에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시 예는 본 발명의 개시가 완전하도록 하며 통상의 지식을 가진자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이다.
도 1은 본 발명의 실시예에 따른 메모리 시스템을 설명하기 위한 도면이다.
도 1을 참조하면, 메모리 시스템(1000)은 데이터가 저장되는 메모리 장치(1100)와 메모리 장치(1100)를 제어하는 컨트롤러(1200)를 포함할 수 있다.
메모리 장치(1100)는 다수의 저장 장치 그룹들(1110, 1120 및 11k0)을 포함할 수 있다. 저장 장치 그룹들(1110, 1120 및 11k0) 각각은 다수의 저장 장치들을 포함할 수 있으며, 저장 장치 그룹들(1110, 1120 및 11k0) 각각은 채널들(CH1, CH2, ..., CHk; k는 양의 정수)을 통해 컨트롤러(1200)와 통신할 수 있다.
컨트롤러(1200)는 호스트(2000)로부터 커맨드(CMD)가 수신되면, 수신된 커맨드(CMD)에 따라 채널들(CH1, CH2, ..., CHk)을 통해 저장 장치 그룹들(1110, 1120 및 11k0)을 제어한다. 또한, 컨트롤러(1200)는 프로그램(program), 리드(read) 또는 소거(erase) 동작시 데이터를 임시로 저장하는 임시 저장부 기능을 하는 버퍼 메모리(1210)를 포함할 수 있다.
다만, 버퍼 메모리(1210)는 저장 용량에 한계가 있고, 관리 대상 데이터가 많은 경우에는 컨트롤러(1200)의 부하가 증가할 수 있으므로, 본 실시예에서는 저장 장치 그룹들(1110, 1120 및 11k0) 중 유휴(idle) 저장 장치들의 일부를 임시 저장부로 사용할 수 있다. 유휴 저장 장치들은 저장 장치 그룹 내에서 특정 데이터에 대해 프로그램 동작이 수행될 선택된 저장 장치를 제외한 나머지 비선택된 저장 장치들일 수 있다. 선택된 저장 장치와 유휴 저장 장치들은 서로 동일하게 구성된 저장 장치들로써, 프로그램 동작시 입력되는 어드레스에 의해 결정될 수 있다. 따라서, 컨트롤러(1200)는 어드레스에 따라 현재 선택된 저장 장치와 유휴 저장 장치들을 구분할 수 있고, 선택된 저장 장치와 유휴 저장 장치들을 각각 제어할 수 있다. 프로그램 동작시, 컨트롤러(1200)는 선택된 저장 장치에 데이터를 입력할 때, 유휴 저장 장치들의 일부에도 동일한 데이터를 임시로 입력할 수 있다. 유휴 저장 장치들에 임시로 입력된 데이터는 선택된 저장 장치들의 프로그램 동작이 페일(fail)되어 프로그램 동작이 재수행될 때 사용될 수 있다.
도 2는 도 1의 컨트롤러를 구체적으로 설명하기 위한 도면이다.
도 2를 참조하면, 메모리 시스템(3000)은 데이터가 저장되는 메모리 장치(1100)와 메모리 장치(1100)를 제어하는 컨트롤러(1200)를 포함할 수 있다. 컨트롤러(1200)는 호스트(2000)와 메모리 장치(1100) 사이의 통신을 제어하기 위하여 버퍼 메모리(1210), CPU(1220), SRAM(1230), 호스트 인터페이스(1240), ECC(1250) 및 메모리 인터페이스(1260)를 포함할 수 있다.
버퍼 메모리(1210)는 컨트롤러(1200)가 메모리 장치(1100)를 제어하는 동안 데이터를 임시로 저장한다. CPU(1220)는 컨트롤러(1200)의 데이터 교환을 위한 제어동작을 수행할 수 있다. SRAM(1230)은 CPU(1220)의 워킹 메모리로 사용될 수 있다. 호스트 인터페이스(1240)는 메모리 시스템(3000)과 접속되는 호스트(2000)의 데이터 교환 프로토콜을 구비할 수 있다. ECC(1250)는 에러 정정부로써, 메모리 장치(1100)로부터 리드된 데이터에 포함되어 있는 에러를 검출 및 정정할 수 있다. 메모리 인터페이스(1260)는 메모리 장치(1110)와 인터페이싱 할 수 있다.
특히, CPU(1220)는 플래시 변환 계층(Flash Translation Layer: FTL)과 같은 펌웨어를 운용하도록 구성된다. 플래시 변환 계층(FTL)은 다양한 기능들을 수행한다. 예를 들면, 플래시 변환 계층(FTL)은 프로그램 시간 관리, 검색 동작, 어드레스 맵핑 동작, 리드 정정 동작 등을 수행하는 다양한 계층들을 포함할 수 있다. 예를 들면, 플래시 변환 계층(FTL)은 선택된 페이지의 프로그램 동작이 페일(fail)되면, 선택된 메모리 블럭 내에서 페이지 어드레스를 변경하거나, 메모리 블럭의 어드레스를 변경할 수 있다. 변경된 페이지 어드레스 또는 메모리 블럭 어드레스는 메모리 인터페이스(1260)를 통해 메모리 장치(1100)로 전달된다.
도 3은 도 1의 저장 장치 그룹을 설명하기 위한 도면이다.
도 3을 참조하면, 도 1에 도시된 저장 장치 그룹들(1110, 1120 및 11k0) 중 제1 저장 장치 그룹(1110)과 컨트롤러(1200) 간의 연결 관계가 도시되어 있다. 나머지 저장 장치 그룹들(도 1의 1120~11k0)도 도 3에 도시된 제1 저장 장치(1110)와 같이 컨트롤러(1200)에 연결될 수 있다.
제1 저장 장치 그룹(1110)은 제1 채널(CH1)에 공통으로 연결된 다수의 저장 장치들(NV11~NV18)을 포함할 수 있다. 본 실시예에서는 8 개의 저장 장치들(NV11~NV18)이 도시되어 있으나, 이는 설명의 편의를 위한 것이므로, 메모리 시스템에 따라 더 많은 수의 저장 장치들이 포함될 수 있다. 저장 장치들(NV11~NV18)은 휘발성 메모리 장치 또는 비휘발성 메모리 장치로 구현될 수 있으나, 휴대용 전자기기들에서는 전원 공급이 차단되어도 데이터가 유지될 수 있는 비휘발성 메모리 장치가 주로 사용된다. 예를 들면, 저장 장치들(NV11~NV18)은 낸드 플래쉬 메모리 장치(NAND flash memory device)로 구현될 수 있다.
도 4는 도 3의 저장 장치를 설명하기 위한 도면으로써, 도 3에 도시된 저장 장치들(NV11~NV18) 중 제1 저장 장치(NV11)를 예를 들어 설명하기 위한 도면이다. 나머지 제2 내지 제8 저장 장치들(도 2의 NV12~NV18)도 제1 저장 장치(NV11)와 동일하게 구성될 수 있다.
도 4를 참조하면, 제1 저장 장치(NV11)는 제1 채널(도 2의 CH1)을 통해 칩 인에이블 신호(CE#), 커맨드 래치 인에이블 신호(CLE), 어드레스 래치 인에이블 신호(ALE), 라이트 인에이블 신호(WE#), 레디 비지 신호(RB#), 커맨드(CMD), 어드레스(ADD) 및 데이터(DATA) 등을 수신받는다. 칩 인에이블 신호(CE#)는 동일한 채널에 연결된 저장 장치들에 선택적으로 인가되며, 나머지 신호들(CLE, ALE, WE#, RB#)과 커맨드(CMD), 어드레스(ADD) 및 데이터(DATA)는 저장 장치들에 공통으로 인가된다. 예를 들면, 칩 인에이블 신호(CE#)는 제1 채널(CH1)에 공통으로 연결된 저장 장치들(NV11~NV18) 각각에 선택적으로 인가되고, 나머지 신호들(CLE, ALE, WE#, RB#)과 커맨드(CMD), 어드레스(ADD) 및 데이터(DATA)는 제1 채널(CH1)에 연결된 저장 장치들(NV11~NV18)에 공통으로 인가된다. 각 신호들을 구체적으로 설명하면 다음과 같다.
칩 인에이블 신호(CE#)는 제1 채널(CH1)에 연결된 다수의 저장 장치들에 선택적으로 입력되는 신호로써, 커맨드(CMD), 어드레스(ADD) 또는 데이터(DATA)를 선택된 저장 장치에 입력할 때 선택된 저장 장치에 로우(low)로 인가된다. 선택된 저장 장치에 커맨드(CMD), 어드레스(ADD) 또는 데이터(DATA)가 입력되는 동안, 나머지 비선택된 저장 장치들에는 하이(high)의 칩 인에이블 신호(CE#)가 인가된다. 커맨드 래치 인에이블 신호(CLE)는 커맨드(CMD)가 저장 장치에 입력되는 동안 하이(high)가 된다. 어드레스 래치 인에이블 신호(ALE)는 어드레스(ADD)가 저장 장치에 입력되는 동안 때 하이(high)가 된다. 레디 비지 신호(RB#)는 선택된 저장 장치가 프로그램 동작을 수행하는 동안 로우(low)가 된다. 커맨드(CMD) 및 어드레스(ADD)는 라이트 인에이블 신호(WE#)가 하이(high)에서 로우(low)로 천이될 때 선택된 저장 장치에 입력된다.
도 5는 도 4의 저장 장치를 구체적으로 설명하기 위한 도면이다.
도 5를 참조하면, 다수의 저장 장치들은 서로 유사하게 구성되므로, 이 중에서 제1 저장 장치(NV11)를 예를 들어 설명하면 다음과 같다.
제1 저장 장치(NV11)는 데이터가 저장되는 메모리 셀 어레이(110)와, 메모리 셀 어레이의 프로그램(program), 리드(read) 및 소거(erase) 동작을 수행하는 주변회로(120)와, 주변회로(120)를 제어하는 제어로직(130)를 포함할 수 있다.
메모리 셀 어레이(110)는 데이터가 저장되는 다수의 메모리 블럭들을 포함할 수 있으며, 메모리 블럭들 각각은 메모리 셀들이 포함된 다수의 셀 스트링들(미도시)을 포함할 수 있다.
주변회로(120)는 전압 생성 회로(121), 로우 디코더(122), 페이지 버퍼부(123), 컬럼 디코더(124) 및 입출력 회로(125)를 포함할 수 있다.
전압 생성 회로(121)는 동작 신호(OPSIG)에 응답하여 다양한 레벨의 동작 전압들(Vop)을 생성할 수 있다.
로우 디코더(122)는 로우 어드레스(RADD)에 응답하여 선택된 메모리 블럭에 연결된 워드라인들(WL)에 동작 전압들(Vop)을 전송할 수 있다.
페이지 버퍼부(123)는 페이지 버퍼 제어 신호(PBSIG)에 응답하여 컬럼 디코더(124)로부터 전송된 데이터(DATA)를 임시로 저장하고, 메모리 블럭들에 연결된 비트라인들(BL)을 통해 데이터를 주고받을 수 있다.
컬럼 디코더(124)는 컬럼 어드레스에 응답하여 페이지 버퍼부(123) 또는 입출력 회로(125)와 데이터(DATA)를 주고 받을 수 있다.
입출력 회로(125)는 컨트롤러(도 2의 1200)로부터 커맨드(CMD), 어드레스(ADD) 및 데이터(DATA)를 수신받고, 커맨드(CMD) 및 어드레스(ADD)를 제어로직(130)에 전송하고, 데이터(DATA)를 컬럼 디코더(124)로 전송할 수 있다.
제어로직(130)은 커맨드(CMD) 및 어드레스(ADD)에 응답하여 동작 신호(OPSIG), 로우 어드레스(RADD), 페이지 버퍼 제어 신호(PBSIG) 및 컬럼 어드레스(CADD)를 출력할 수 있다. 예를 들면, 프로그램 커맨드(CMD)가 수신되면 제어로직(130)은 페이지 버퍼부(123)에 데이터(DATA)가 저장되도록 주변회로(120)를 제어하고, 프로그램 시작 커맨드(CMD)가 수신되면 페이지 버퍼부(123)에 저장된 데이터가 선택된 메모리 블럭에 프로그램되도록 주변회로(120)를 제어할 수 있다. 또는, 홀딩 커맨드(CMD)가 수신되면, 제어로직(130)은 프로그램 동작을 수행하지 않고 페이지 버퍼부(123)에 임시로 입력된 데이터(DATA)가 유지되도록 주변회로(120)를 제어할 수 있다.
도 6은 도 5의 페이지 버퍼부를 설명하기 위한 도면이다.
도 6을 참조하면, 페이지 버퍼부(123)는 제1 내지 제i 페이지 버퍼들(PB1~PBi)을 포함할 수 있다. 제1 내지 제i 페이지 버퍼들(PB1~PBi)은 제1 내지 제i 비트라인들(BL1~BLi)에 연결되며, 컬럼 디코더(도 4의 124)로부터 전송된 데이터를 임시로 저장하기 위한 다수의 래치들(LAT)을 포함한다. 제1 내지 제i 페이지 버퍼들(PB1~PBi) 각각은 적어도 두 개 이상의 래치들(LAT)을 포함할 수 있다. 예를 들면, 제1 내지 제i 페이지 버퍼들(PB1~PBi) 각각은 컬럼 디코더(124)로부터 수신된 데이터를 저장하거나 프로그램 동작시 비트라인들(BL1~BLi)에 인가될 데이터를 저장하기 위한 다수의 래치들(LAT)을 포함할 수 있다. 하나의 메모리 셀에 2비트 이상의 데이터를 저장하는 멀티 레벨 셀(multi level cell; MLC)을 사용하는 경우에는, 제1 내지 제i 페이지 버퍼들(PB1~PBi) 각각은 적어도 세 개 이상의 래치들(LAT)을 포함할 수 있다.
도 7은 본 발명의 실시예에 따른 프로그램 방법을 설명하기 위한 순서도이다.
도 7을 참조하면, 컨트롤러(도 1의 1200)에 프로그램에 대한 커맨드(CMD)가 인가되면, 컨트롤러(1200)는 메모리 장치(도 1의 1100)에 포함된 저장 장치들 중, 프로그램 동작이 수행될 선택된 저장 장치와 프로그램 동작이 수행되지 않을 유휴 저장 장치들에 동일한 데이터를 입력한다(61). 예를 들면, 하나 또는 두 개 이상의 유휴 저장 장치들에 선택된 저장 장치에 입력되는 데이터와 동일한 데이터가 입력될 수 있다. 데이터는 선택된 저장 장치의 페이지 버퍼부와 유휴 저장 장치들의 페이지 버퍼부에 동시에 입력될 수 있다. 유휴 저장 장치들의 페이지 버퍼부들에 저장된 데이터는 선택된 저장 장치의 프로그램 동작이 페일(fail)될 경우에 사용될 수 있다. 선택된 저장 장치와 유휴 저장 장치들에 동일한 데이터가 입력되더라도, 데이터가 입력된 이후에 각각의 저장 장치들에 입력되는 커맨드에 따라 선택된 저장 장치는 프로그램 동작을 수행할 수 있고 유휴 저장 장치들은 프로그램 동작 없이 입력된 데이터를 유지할 수 있다.
시작 커맨드에 응답하여, 선택된 저장 장치는 페이지 버퍼에 입력된 데이터를 사용하여 프로그램 동작을 수행한다(62). 선택된 저장 장치가 프로그램 동작을 수행하는 동안, 유휴 저장 장치들은 홀딩 커맨드에 의해 프로그램 동작을 수행하지 않는다. 선택된 저장 장치의 프로그램 동작은 각 워드라인에 연결된 메모리 셀들의 그룹인 페이지(page) 단위로 수행될 수 있다. 프로그램 동작은 프로그램 전압이 단계적으로 높아지는 ISPP(Incremental Step Pulse Program) 방식으로 수행될 수 있다. ISPP 방식의 프로그램 동작에서는, 선택된 페이지에 포함된 메모리 셀들의 문턱전압이 목표레벨에 도달할 때까지 다수의 프로그램 루프(loop)가 수행된다.
선택된 페이지의 프로그램 동작이 패스(pass) 또는 페일(fail)되었는지를 판단한다(63). 예를 들면, 프로그램 루프는 선택된 페이지에 연결된 워드라인에 프로그램 전압을 인가하는 단계와 선택된 페이지를 검증하는 단계를 포함한다.
검증 단계가 패스되면, 선택된 페이지에 포함된 선택된 메모리 셀들의 문턱전압이 목표레벨에 도달한 것이므로, 선택된 페이지의 프로그램 동작이 종료된다.
검증 단계가 패스되지 않으면, 프로그램 전압이 단계적으로 높아지면서 프로그램 루프가 수행된다. 프로그램 루프의 횟수가 최대 횟수에 도달할 때까지 검증 단계가 패스되지 않으면, 선택된 페이지의 프로그램 동작은 페일된다.
선택된 페이지의 프로그램 동작이 페일되면, 프로그램 동작이 수행될 페이지의 어드레스가 변경된다(64). 즉, 선택된 페이지의 프로그램 동작이 페일되면, 선택된 페이지에 프로그램할 데이터를 다른 페이지에 프로그램하기 위하여 어드레스가 변경된다(64). 여기서 어드레스는 페이지 어드레스를 포함하거나, 메모리 블럭 어드레스와 페이지 어드레스를 포함할 수 있으며, 컨트롤러(도 2의 1200)에 포함된 CPU(도 2의 1220)에 의해 변경될 수 있다.
어드레스가 변경되면(64), 유휴 저장 장치에 임시로 저장된 데이터를 이용하여 선택된 저장 장치의 프로그램 동작이 다시 수행된다(65). 예를 들면, 선택된 저장 장치에 포함된 선택된 메모리 블럭의 변경된 페이지에 프로그램 동작이 수행되거나, 선택된 저장 장치에 포함된 메모리 블럭들 중에서 변경된 메모리 블럭의 페이지에 프로그램 동작이 수행될 수 있다. 프로그램될 데이터는 '61 단계'에서 유휴 저장 장치에 임시로 저장된 데이터가 사용된다. 보다 구체적으로 설명하면, 컨트롤러(1200)는 유휴 저장 장치에 임시 저장된 데이터를 버퍼 메모리(도 1의 1210)로 전송하고, 버퍼 메모리(1210)에 전송된 데이터를 선택된 저장 장치의 페이지 버퍼부로 전송한다. 이어서, 선택된 저장 장치는 페이지 버퍼부에 전송된 데이터를 사용하여 변경된 어드레스에 따라 프로그램 동작을 수행한다.
상술한 프로그램 방법이 적용 가능한 다양한 실시예들을 설명하면 다음과 같다.
도 8은 도 7의 프로그램 방법을 적용한 실시예를 설명하기 위한 도면이다.
도 8을 참조하면, 서로 동일한 채널에 연결된 저장 장치들(NV11~NV18) 중에서 프로그램 동작이 수행될 선택된 저장 장치(SEL)의 시간별 프로그램 방법이 도시되었다. 선택된 저장 장치(SEL)가 제1 저장 장치(NV11)인 경우, 나머지 제2 내지 제8 저장 장치들(NV12~NV18)은 유휴 저장 장치들(IDLE)이 된다. 유휴 저장 장치들(IDLE) 중에서 하나 이상의 서로 다른 유휴 저장 장치들(NV13 및 NV15)에 동일한 데이터가 임시로 입력될 수 있다. 다수의 유휴 저장 장치들에 데이터가 임시로 저장된 상태에서, 새로운 커맨드에 의해 일부 유휴 장치들의 리드 동작이 수행되는 경우, 임시 데이터가 저장된 유휴 저장 장치가 적어도 하나 남을 때까지, 리드 동작의 대상이 되는 유휴 저장 장치들의 페이지 버퍼부가 리셋된 후 리드 동작이 수행될 수 있다.
제1 데이터 입력 구간(IN1)
제1 저장 장치(NV11)의 데이터 입력 구간이 시작되면, 제1 저장 장치(NV11)와 제3 및 제5 저장 장치들(NV13 및 NV15)에 데이터가 동시에 입력될 수 있다. 예를 들면, 제1 저장 장치(NV11)의 페이지 버퍼부와 제3 및 제5 저장 장치들(NV13 및 NV15)의 페이지 버퍼부들에 데이터가 동시에 입력될 수 있다. 제3 및 제5 저장 장치들(NV13 및 NV15)에 입력되는 데이터는 제1 저장 장치(NV11)에 입력되는 데이터와 동일하다. 즉, 제1 저장 장치(NV11)의 프로그램 페일(fail)시 사용될 데이터가 버퍼 메모리(도 1의 1210) 대신 동일 채널에 연결된 유휴 저장 장치들 중 일부인 제3 및 제5 저장 장치들(NV13 및 NV15)에 임시로 저장될 수 있다. 각 저장 장치들(NV11, NV13 및 NV15)에 데이터가 입력되기 이전에 어드레스도 저장 장치들(NV11, NV13 및 NV15)에 입력되는데, 이에 대해서는 도 9에서 구체적으로 설명하도록 한다.
프로그램 구간( PGM )
제1 저장 장치(NV11)와 제3 및 제5 저장 장치들(NV13 및 NV15)에 데이터가 모두 입력되면(IN1), 제1 저장 장치(NV11)에 입력된 데이터를 사용하여 제1 저장 장치(NV11)의 프로그램 동작이 수행된다. 예를 들면, 프로그램 동작은 제1 저장 장치(NV11)에 포함된 메모리 블럭들 중, 선택된 메모리 블럭의 선택된 페이지에 수행될 수 있다. 이때, 제3 및 제5 저장 장치들(NV13 및 NV15)에서는 프로그램 동작이 수행되지 않는다.
만약, 제1 저장 장치(NV11)의 프로그램 동작 중 페일(fail)이 발생하면, 컨트롤러(도 1의 1200)는 제3 또는 제5 저장 장치(NV13)에 임시로 저장된 데이터를 채널을 통해 버퍼 메모리(1210)로 전송한 후, 이를 다시 제1 저장 장치(NV11)로 전송한다. 이때, 컨트롤러(1200)는 제1 저장 장치(NV11)의 페일된 페이지의 어드레스를 변경하고, 변경된 페이지 어드레스에 따라 프로그램 동작이 수행되도록 제1 저장 장치(NV11)를 제어한다. 또는, 컨트롤러(1200)는 페이지 어드레스 변경시, 동일한 저장 장치 내에서 메모리 블럭의 어드레스를 변경하거나, 동일 채널에 연결된 다른 저장 장치를 선택할 수도 있다.
선택된 페이지의 프로그램 동작이 패스되면, 제3 및 제5 저장 장치들(NV13 및 NV15)의 페이지 버퍼들(도 5의 PB1~PBi)은 리셋(reset)되고, 제1 저장 장치(NV11)는 다음 페이지의 프로그램 동작을 준비한다. 선택된 페이지의 프로그램 동작이 완료되면, 다음 페이지의 프로그램 동작이 수행된다. 다음 페이지의 프로그램 동작도 상술한 제1 데이터 입력 구간(IN1)과 프로그램 구간(PGM)과 같이 제2 데이터 입력 구간(IN2) 및 프로그램 구간(PGM)의 순서로 수행될 수 있다.
프로그램 동작시, 서로 다른 저장 장치들에 동일한 데이터를 입력하는 방법을 구체적으로 설명하면 다음과 같다.
도 9는 도 8의 프로그램 동작시 커맨드 및 데이터를 입력하는 방법을 구체적으로 설명하기 위한 도면으로써, 제1 저장 장치(NV11)가 프로그램 동작이 수행될 선택된 저장 장치이고, 제3 저장 장치(NV13)는 임시 데이터를 저장하는 유휴 저장 장치인 경우를 예를 들어 설명하도록 한다.
도 9 및 도 4를 참조하면, 프로그램 동작은 제1 및 제3 저장 장치들(NV11 및 NV13)에 프로그램 동작을 준비시키기 위한 공통 커맨드 입력구간과, 제1 및 제3 저장 장치들(NV11 및 NV13)에 어드레스를 입력하기 위한 어드레스 입력 구간과, 제1 및 제3 저장 장치들(NV11 및 NV13)에 데이터를 입력하기 위한 데이터 입력 구간과, 제1 저장 장치(NV11)에 프로그램 동작을 시작하라는 커맨드를 전송하기 위한 프로그램 시작 커맨드 입력 구간과, 제1 저장 장치(NV11)가 프로그램 동작을 수행하는 동안 제3 저장 장치(NV13)는 프로그램 동작을 수행하지 않고 대기하라는 프로그램/홀드 구간을 포함할 수 있다. 각 구간을 구체적으로 설명하면 다음과 같다.
공통 커맨드 입력 구간이 시작되면, 입출력 단자(IO)를 통해 제1 및 제3 저장 장치들(NV11 및 NV13)에 프로그램 커맨들(80h)를 공통으로 전송하기 위하여, 제1 및 제3 저장 장치들(NV11 및 NV13)에 로우(low)의 칩 인에이블 신호(CE#)가 인가된다. 이때, 나머지 유휴 저장 장치들에는 하이(high)이 칩 인에이블 신호(CE#)가 인가된다. 커맨드가 입력된다는 것을 알리기 위하여 커맨드 래치 인에이블 신호(CLE)는 하이(high)가 되고, 입출력 단자(IO)에 프로그램 커맨드(80h)가 인가된다. 라이트 인에이블 신호(WE#)가 로우(low)에서 하이(high)로 천이될 때, 프로그램 커맨드(80h)는 제1 및 제3 저장 장치들(NV11 및 NV13)에 동시에 입력된다. 즉, 라이트 인에이블 신호(WE#)의 라이징 엣지(rising edge)에서 프로그램 커맨드(80h)가 제1 및 제3 저장 장치들(NV11 및 NV13)에 입력된다. 제1 및 제3 저장 장치들(NV11 및 NV13)에 프로그램 커맨드(80h)가 입력되면, 커맨드 래치 인에이블 신호(CLE)는 다시 로우(low)로 천이된다.
어드레스 입력 구간이 시작되면, 어드레스 로딩(loading)을 위한 어드레스 래치 인에이블 신호(ALE)가 로우(low)에서 하이(high)로 천이된다. 어드레스가 제1 및 제3 저장 장치들(NV11 및 NV13)에 공통으로 인가되어야 하므로, 제1 및 제3 저장 장치들(NV11 및 NV13)에 인가되는 칩 인에이블 신호(low)는 로우(low)로 유지된다. 입출력 단자(IO)에 어드레스(A0~Ai; i는 양의 정수)가 순차적으로 로드(load)된다. 입출력 단자(IO)에 로드(load)된 어드레스들(A0~Ai)은 라이트 인에이블 신호(WE#)의 라이징 엣지에 의해 제1 및 제3 저장 장치들(NV11 및 NV13)에 동시에 입력된다. 제1 및 제3 저장 장치들(NV11 및 NV13)에 어드레스(A0~Ai)가 입력되면, 어드레스 래치 인에이블 신호(ALE)는 다시 로우(low)로 천이된다.
데이터 입력 구간이 시작되면, 입출력 단자(IO)에 데이터(D0~Dn; n은 양의 정수)가 순차적으로 로드(load)된다. 입출력 단자(IO)에 로드된 데이더(A0~An)는 데이터 스트로브 신호(DQS)에 응답하여 제1 및 제3 저장 장치들(NV11 및 NV13)에 동시에 입력된다. 예를 들면, 데이더(A0~An)는 데이터 스트로브 신호(DQS)가 로우(low)에서 하이(high)로 천이되는 라이징 엣지(rising edge) 또는 하이(high)에서 로우(low)로 천이되는 폴링 엣지(falling edge)에서 제1 및 제3 저장 장치들(NV11 및 NV13)에 입력된다.
프로그램 시작 커맨트 입력 구간이 시작되면, 유휴 저장 장치인 제3 저장 장치(NV13)에 인가되는 칩 인에이블 신호(CE#)가 하이(high)로 천이되고, 선택된 저장 장치인 제1 저장 장치(NV11)에 인가되는 칩 인에이블 신호(CE#)는 로우(low)를 유지한다. 제1 저장 장치(NV11)가 프로그램 동작을 수행하기 위하여, 입출력 단자(IO)에 프로그램 시작 커맨드(10h)가 로드(load)된다. 입출력 단자(IO)에 로드(load)된 프로그램 시작 커맨드(10h)를 제1 저장 장치(NV11)에 입력하기 위하여, 라이트 인에이블 신호(WE#)를 하이(high)에서 로우(low)로 천이한 후, 다시 하이(high)로 천이시킨다. 즉, 프로그램 시작 커맨드(10h)는 라이트 인에이블 신호(WE#)의 라이징 엣지(rising edge)에서 제1 저장 장치(NV11)에 입력되므로, 하이(high)를 유지하던 라이트 인에이블 신호(WE#)를 로우(low)로 천이한 후에 다시 하이(high)로 천이시킨다.
프로그램/홀드 구간이 시작되면, 제1 저장 장치(NV11)는 프로그램 동작을 시작한다. 제1 저장 장치(NV11)가 프로그램 동작을 수행하는 동안, 레디 비지 신호(RB#)는 하이(high)에서 로우(low)로 천이되고, 로우(low)로 유지된다. 제1 저장 장치(NV11)가 프로그램 동작을 수행하는 동안, 제3 저장 장치(NV13)는 대기 상태가 되어야 하므로, 제1 저장 장치(NV11)에 인가되는 칩 인에이블 신호(CE#)는 하이(high)로 천이되고, 제3 저장 장치(NV13)에 인가되는 칩 인에이블 신호(CE#)는 로우(low)로 천이된다. 제3 저장 장치(NV13)가 대기 상태를 유지하기 위하여, 입출력 단자(IO)에 홀드 커맨드(11h)가 로드(load)된다. 입출력 단자(IO)에 로드(load)된 홀드 커맨드(11h)를 제3 저장 장치(NV13)에 입력하기 위하여, 라이트 인에이블 신호(WE#)를 하이(high)에서 로우(low)로 천이한 후, 다시 하이(high)로 천이시킨다. 즉, 홀드 커맨드(11h)도 라이트 인에이블 신호(WE#)의 라이징 엣지(rising edge)에서 제3 저장 장치(NV13)에 입력되므로, 하이(high)인 라이트 인에이블 신호(WE#)를 로우(low)로 천이한 후에 다시 하이(high)로 천이시킨다.
상술한 바와 같이, 칩 인에이블 신호(CE#)를 제어하면 동일한 데이터를 서로 다른 저장 장치들에 동시에 입력할 수 있고, 서로 다른 커맨드들을 각각 입력할 수 있으므로, 서로 다른 저장 장치들은 서로 동일한 데이터를 동시에 입력 받은 후에 서로 다른 동작을 수행할 수 있다.
도 10은 도 7의 프로그램 방법을 적용한 다른 실시예를 설명하기 위한 도면이다.
도 10을 참조하면, 서로 동일한 채널에 연결된 저장 장치들(NV11~NV18) 중에서 프로그램 동작이 수행될 선택된 저장 장치들(SEL)의 시간별 프로그램 방법이 도시되었다. 선택된 저장 장치들(SEL)이 제1 내지 제4 저장 장치들(NV11~NV14)이고, 나머지 유휴 저장 장치들(IDLE)인 제5 내지 제8 저장 장치들(NV15~NV18)은 비선택된 저장 장치들이 된다. 제1 저장 장치(NV11)에 입력되는 데이터는 제5 저장 장치(NV15)에 임시로 저장되고, 제2 저장 장치(NV12)에 입력되는 데이터는 제6 저장 장치(NV16)에 임시로 저장되고, 제3 저장 장치(NV13)에 입력되는 데이터는 제7 저장 장치(NV17)에 임시로 저장되며, 제4 저장 장치(NV14)에 입력되는 데이터는 제8 저장 장치(NV18)에 임시로 저장되는 경우를 예를 들어 설명하면 다음과 같다.
제1 데이터 입력 구간(IN1)
제1 저장 장치(NV11)의 데이터 입력 구간이 시작되면, 제1 저장 장치(NV11)와 제5 저장 장치(NV15)에 데이터가 동시에 입력된다. 예를 들면, 제1 저장 장치(NV11)의 페이지 버퍼부와 제5 저장 장치(NV15)의 페이지 버퍼부에 데이터가 동시에 입력된다. 제5 저장 장치(NV15)에 입력되는 데이터는 제1 저장 장치(NV11)에 입력되는 데이터와 동일하다. 즉, 제1 저장 장치(NV11)의 프로그램 페일(fail)시 사용될 데이터가 버퍼 메모리(도 1의 1210) 대신 동일 채널에 연결된 미사용 저장 장치들 중 하나인 제5 저장 장치(NV15)에 임시로 저장된다.
프로그램 구간( PGM )
제1 저장 장치(NV11)와 제5 저장 장치(NV15)에 데이터가 모두 입력되면(IN1), 제1 저장 장치(NV11)에 입력된 데이터를 사용하여 제1 저장 장치(NV11)의 프로그램 동작이 수행된다. 예를 들면, 프로그램 동작은 제1 저장 장치(NV11)에 포함된 메모리 블럭들 중, 선택된 메모리 블럭의 선택된 페이지에 수행될 수 있다. 이때, 제5 저장 장치(NV15)에서는 프로그램 동작이 수행되지 않는다.
만약, 제1 저장 장치(NV11)의 프로그램 동작 중 페일(fail)이 발생하면, 컨트롤러(도 1의 1200)는 제5 저장 장치(NV15)에 임시 저장된 데이터를 채널을 통해 버퍼 메모리(1210)로 전송한 후, 이를 다시 제1 저장 장치(NV11)로 전송한다. 이때, 컨트롤러(1200)는 제1 저장 장치(NV11)의 페일된 페이지의 어드레스를 변경하고, 변경된 페이지 어드레스에 따라 프로그램 동작이 수행되도록 제1 저장 장치(NV11)를 제어한다. 또한, 컨트롤러(1200)는 페이지 어드레스 변경시, 메모리 블럭의 어드레스도 함께 변경할 수도 있다.
선택된 페이지의 프로그램 동작이 종료되면, 제5 저장 장치(NV15)의 래치들(도 5의 LAT)은 리셋되고, 제1 저장 장치(NV11)는 다음 페이지의 프로그램 동작을 준비한다.
제2 데이터 입력 구간(IN2)
제1 저장 장치(NV11)의 선택된 메모리 블럭에서, 다음으로 선택된 페이지의 프로그램 동작이 시작되면, 제1 저장 장치(NV11)와 제5 저장 장치(NV15)에 데이터가 동시에 입력된다. 예를 들면, 제1 저장 장치(NV11)의 페이지 버퍼부와 제5 저장 장치(NV15)의 페이지 버퍼부들에 데이터가 동시에 입력된다. 제5 저장 장치(NV15)에 입력되는 데이터는 제1 저장 장치(NV11)에 입력되는 데이터와 동일하다. 즉, 제1 저장 장치(NV11)의 프로그램 페일(fail)시 사용될 데이터가 버퍼 메모리(도 1의 1210) 대신 동일 채널에 연결된 미사용 저장 장치들 중 하나인 제5 저장 장치(NV15)에 임시로 저장된다.
프로그램 구간( PGM )
제1 저장 장치(NV11)와 제5 저장 장치(NV15)에 데이터가 모두 입력되면(IN2), 제1 저장 장치(NV11)에 입력된 데이터를 사용하여 제1 저장 장치(NV11)의 프로그램 동작이 수행된다. 예를 들면, 프로그램 동작은 제1 저장 장치(NV11)에 포함된 메모리 블럭들 중, 선택된 메모리 블럭의 선택된 페이지에 수행될 수 있다. 이때, 제5 저장 장치(NV15)에서는 프로그램 동작이 수행되지 않는다.
만약, 제1 저장 장치(NV11)의 프로그램 동작 중 페일(fail)이 발생하면, 컨트롤러(도 1의 1200)는 제5 저장 장치(NV15)에 임시 저장된 데이터를 채널을 통해 버퍼 메모리(1210)로 전송한 후, 이를 다시 제1 저장 장치(NV11)로 전송한다. 이때, 컨트롤러(1200)는 제1 저장 장치(NV11)의 페일된 페이지의 어드레스를 변경하고, 변경된 페이지 어드레스에 따라 프로그램 동작이 수행되도록 제1 저장 장치(NV11)를 제어한다. 또는, 컨트롤러(1200)는 페이지 어드레스 변경시, 다른 메모리 블럭에 포함된 페이지에 프로그램되도록 메모리 블럭 어드레스와 페이지 어드레스를 변경할 수도 있다.
선택된 페이지의 프로그램 동작이 패스되면, 제1 저장 장치(NV11)에 포함된 나머지 페이지들의 프로그램 동작도 상술한 방법과 같이 수행된다.
제3 데이터 입력 구간(IN3)
제2 및 제6 저장 장치들(NV12 및 NV16)의 데이터 입력 구간은 제1 및 제5 저장 장치들(NV11 및 NV15)의 데이터 입력 구간과 중첩되지 않도록 한다. 왜냐하면, 제2 및 제6 저장 장치들(NV12 및 NV16)과 제1 및 제5 저장 장치들(NV11 및 NV15)이 서로 동일한 채널에 연결되어 있기 때문에, 입출력 단자를 통해 서로 다른 데이터를 전송할 수 없기 때문이다. 따라서, 제3 데이터 입력 구간(IN3)은 제1 데이터 입력 구간(IN1)과 제2 데이터 입력 구간(IN2) 사이에서 시작될 수 있다.
제3 데이터 입력 구간(IN3)이 시작되면, 제2 저장 장치(NV12)와 제6 저장 장치(NV16)에 데이터가 동시에 입력된다. 예를 들면, 제2 저장 장치(NV12)의 페이지 버퍼부와 제6 저장 장치(NV16)의 페이지 버퍼부에 데이터가 동시에 입력된다. 제6 저장 장치(NV16)에 입력되는 데이터는 제2 저장 장치(NV12)에 입력되는 데이터와 동일하다. 즉, 제2 저장 장치(NV12)의 프로그램 페일(fail)시 사용될 데이터가 버퍼 메모리(도 1의 1210) 대신 동일 채널에 연결된 미사용 저장 장치들 중 하나인 제6 저장 장치(NV16)에 임시로 저장된다.
프로그램 구간( PGM )
제2 저장 장치(NV12)와 제6 저장 장치(NV16)에 데이터가 모두 입력되면(IN3), 제2 저장 장치(NV12)에 입력된 데이터를 사용하여 제2 저장 장치(NV12)의 프로그램 동작이 수행된다. 예를 들면, 프로그램 동작은 제2 저장 장치(NV12)에 포함된 메모리 블럭들 중, 선택된 메모리 블럭의 선택된 페이지에 수행될 수 있다. 이때, 제6 저장 장치(NV16)에서는 프로그램 동작이 수행되지 않는다.
만약, 제2 저장 장치(NV12)의 프로그램 동작 중 페일(fail)이 발생하면, 컨트롤러(도 1의 1200)는 제6 저장 장치(NV16)에 임시 저장된 데이터를 채널을 통해 버퍼 메모리(1210)로 전송한 후, 이를 다시 제2 저장 장치(NV12)로 전송한다. 이때, 컨트롤러(1200)는 제2 저장 장치(NV12)의 페일된 페이지의 어드레스를 변경하고, 변경된 페이지 어드레스에 따라 프로그램 동작이 수행되도록 제2 저장 장치(NV12)를 제어한다. 또한, 컨트롤러(1200)는 페이지 어드레스 변경시, 메모리 블럭의 어드레스도 함께 변경할 수도 있다.
선택된 페이지의 프로그램 동작이 종료되면, 제6 저장 장치(NV16)의 래치들(도 5의 LAT)은 초기화되고, 제2 저장 장치(NV12)는 다음 페이지의 프로그램 동작을 준비한다.
제4 데이터 입력 구간(IN4)
제2 저장 장치(NV12)의 선택된 메모리 블럭에서, 다음으로 선택된 페이지의 프로그램 동작이 시작되면, 제2 저장 장치(NV12)와 제6 저장 장치(NV16)에 데이터가 동시에 입력된다. 예를 들면, 제2 저장 장치(NV12)의 페이지 버퍼부와 제6 저장 장치(NV16)의 페이지 버퍼부들에 데이터가 동시에 입력된다. 제6 저장 장치(NV16)에 입력되는 데이터는 제2 저장 장치(NV12)에 입력되는 데이터와 동일하다. 즉, 제2 저장 장치(NV12)의 프로그램 페일(fail)시 사용될 데이터가 버퍼 메모리(도 1의 1210) 대신 동일 채널에 연결된 미사용 저장 장치들 중 하나인 제6 저장 장치(NV16)에 임시로 저장된다.
프로그램 구간( PGM )
제2 저장 장치(NV12)와 제6 저장 장치(NV16)에 데이터가 모두 입력되면(IN4), 제2 저장 장치(NV12)에 입력된 데이터를 사용하여 제2 저장 장치(NV12)의 프로그램 동작이 수행된다. 예를 들면, 프로그램 동작은 제2 저장 장치(NV12)에 포함된 메모리 블럭들 중, 선택된 메모리 블럭의 선택된 페이지에 수행될 수 있다. 이때, 제6 저장 장치(NV16)에서는 프로그램 동작이 수행되지 않는다.
만약, 제2 저장 장치(NV12)의 프로그램 동작 중 페일(fail)이 발생하면, 컨트롤러(도 1의 1200)는 제6 저장 장치(NV16)에 임시 저장된 데이터를 채널을 통해 버퍼 메모리(1210)로 전송한 후, 이를 다시 제2 저장 장치(NV12)로 전송한다. 이때, 컨트롤러(1200)는 제2 저장 장치(NV12)의 페일된 페이지의 어드레스를 변경하고, 변경된 페이지 어드레스에 따라 프로그램 동작이 수행되도록 제2 저장 장치(NV12)를 제어한다. 또는, 컨트롤러(1200)는 페이지 어드레스 변경시, 다른 메모리 블럭에 포함된 페이지에 프로그램되도록 메모리 블럭 어드레스와 페이지 어드레스를 변경할 수도 있다.
선택된 페이지의 프로그램 동작이 패스되면, 제2 저장 장치(NV12)에 포함된 나머지 페이지들의 프로그램 동작도 상술한 방법과 같이 수행된다.
상술한 방법과 같이, 나머지 제5 내지 제8 데이터 입력 구간들(IN5~IN8) 및 프로그램 동작 구간들(PGM)을 수행할 수 있다.
도 11은 도 7의 프로그램 방법을 적용한 또 다른 실시예를 설명하기 위한 도면이다.
도 11을 참조하면, 서로 동일한 채널에 연결된 저장 장치들(NV11~NV18) 중에서 프로그램 동작이 수행될 선택된 저장 장치들(SEL)의 시간별 프로그램 방법이 도시되었다. 특히, 유휴 저장 장치들(IDLE)의 개수가 선택된 저장 장치들(SEL)의 개수보다 적은 경우를 설명하기 위한 실시예가 도시되었다. 제1 내지 제5 저장 장치들(NV11~NV15)이 선택된 저장 장치들이고, 나머지 제6 내지 제8 저장 장치들(NV15~NV18)이 유휴 저장 장치들인 경우를 예를 들어 설명하면 다음과 같다.
제1 내지 제6 데이터 입력 구간들(IN1~IN6)과 그 사이에 수행되는 프로그램 구간들(PGM)은 도 10에서 상술한 구간들(IN1~IN6 및 PGM)과 동일하므로 생략한다.
제7 내지 제10 데이터 입력 구간 및 프로그램 구간(IN7~IN10 및 PGM )
제7 저장 장치(NV17)부터 선택된 저장 장치에 대응되는 유휴 저장 장치들이 없기 때문에, 제7 저장 장치(NV17)부터는 선택된 저장 장치와 동일한 채널에 연결된 유휴 저장 장치 대신, 컨트롤러(도 1의 1200)에 포함된 버퍼 메모리에 입력된 데이터가 사용된다. 이러한 경우, 선택된 저장 장치의 프로그램 동작 중 페일(fail)이 발생하면, 컨트롤러(도 1의 1200)는 버퍼 메모리에 임시로 저장된 데이터를 채널을 통해 선택된 저장 장치로 전송한다. 이때, 컨트롤러(1200)는 선택된 저장 장치의 페일된 페이지의 어드레스를 변경하고, 변경된 페이지 어드레스에 따라 프로그램 동작이 수행되도록 선택된 저장 장치를 제어한다. 또는, 컨트롤러(1200)는 페이지 어드레스 변경시, 선택된 저장 장치에 포함된 메모리 블럭들 중 선택된 메모리 블럭과 다른 메모리 블럭에 포함된 페이지에 프로그램되도록 메모리 블럭 어드레스와 페이지 어드레스를 변경할 수도 있다.
상술한 바와 같이, 프로그램 동작시 컨트롤러(도 1의 1200)에 포함된 버퍼 메모리(도 1의 1210)의 사용을 억제함으로써, 컨트롤러(1200)의 부하 증가를 방지할 수 있고, 버퍼 메모리가 포함된 컨트롤러(1200)의 저장 용량 증가를 방지할 수 있다. 또한, 서로 동일한 채널에 연결된 서로 다른 저장 장치들에 데이터를 동시에 입력할 수 있으므로, 데이터 전송 시간을 단축할 수 있으므로, 컨트롤러의 성능을 개선할 수 있다.
도 12는 본 발명의 실시예에 따른 메모리 시스템을 포함하는 컴퓨팅 시스템의 개략적인 구성을 설명하기 위한 도면이다.
도 12를 참조하면, 본 발명에 따른 메모리 시스템(4000)은 버스에 전기적으로 연결된 메모리 장치(1110), 컨트롤러(1200), 마이크로프로세서(4100), 사용자 인터페이스(4200) 및 모뎀(4400)을 포함할 수 있다. 또한, 본 발명에 따른 메모리 시스템(4000)이 모바일 장치인 경우, 메모리 시스템(4000)의 동작 전압을 공급하기 위한 배터리(4300)가 추가로 포함될 수 있다. 도면에는 도시되지 않았지만, 본 발명에 따른 메모리 시스템(4000)에는 응용 칩셋(application chip set), 카메라 이미지 프로세서(Camera Image Processor: CIS), 모바일 디램 등이 더 포함될 수 있다. 컨트롤러(1200)와 메모리 장치(1110)는 SSD(Solid State Drive/Disk)를 구성할 수 있다.
본 발명에 따른 메모리 시스템(4000)은 다양한 형태들의 패키지를 이용하여 실장될 수 있다. 예를 들면, 본 발명에 따른 메모리 시스템(4000)은 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), System In Package(SIP), Multi Chip Package(MCP), Wafer-level Fabricated Package(WFP) 및 Wafer-Level Processed Stack Package(WSP) 등과 같은 패키지들을 이용하여 실장 될 수 있다.
상기에서 설명한 본 발명의 기술적 사상은 바람직한 실시 예에서 구체적으로 기술되었으나, 상기한 실시 예는 그 설명을 위한 것이며 그 제한을 위한 것이 아님을 주의하여야 한다. 또한, 본 발명은 본 발명의 기술 분야의 통상의 전문가라면 본 발명의 기술적 사상의 범위 내에서 다양한 실시 예가 가능함을 이해할 수 있을 것이다.
1000: 메모리 시스템 2000: 호스트
1100: 메모리 장치 1200: 컨트롤러
NV11~NV18: 저장 장치 CH1~CHk: 채널

Claims (20)

  1. 채널에 연결된 다수의 저장 장치들이 포함된 메모리 장치; 및
    상기 저장 장치들 중 선택된 저장 장치의 제1 프로그램 동작시, 상기 선택된 저장 장치와 적어도 하나의 유휴 저장 장치에 동일한 데이터를 저장하고, 상기 선택된 저장 장치의 상기 제1 프로그램 동작이 페일(fail)된 경우, 상기 유휴 저장 장치에 저장된 데이터를 사용하여 상기 선택된 저장 장치의 제2 프로그램 동작이 수행되도록 상기 메모리 장치를 제어하는 컨트롤러를 포함하는 메모리 시스템.
  2. ◈청구항 2은(는) 설정등록료 납부시 포기되었습니다.◈
    제1항에 있어서, 상기 메모리 장치는,
    비트라인들을 통해 메모리 셀 어레이에 연결되며, 상기 데이터를 저장하도록 구성된 페이지 버퍼부를 포함하는 메모리 시스템.
  3. ◈청구항 3은(는) 설정등록료 납부시 포기되었습니다.◈
    제1항에 있어서, 상기 컨트롤러는,
    상기 선택된 저장 장치와 상기 유휴 저장 장치에 상기 데이터를 동시에 입력하는 메모리 시스템.
  4. ◈청구항 4은(는) 설정등록료 납부시 포기되었습니다.◈
    제1항에 있어서,
    상기 컨트롤러는 데이터가 임시로 저장되는 버퍼 메모리를 더 포함하는 메모리 시스템.
  5. ◈청구항 5은(는) 설정등록료 납부시 포기되었습니다.◈
    제4항에 있어서, 상기 컨트롤러는,
    상기 선택된 저장 장치의 상기 제1 프로그램 동작이 페일(fail)되면,
    상기 유휴 저장 장치에 저장된 상기 데이터를 상기 버퍼 메모리로 전송하고,
    상기 버퍼 메모리에 전송된 상기 데이터를 상기 선택된 저장 장치로 전송하고,
    상기 선택된 저장 장치에 전송된 상기 데이터를 사용하여 상기 선택된 저장 장치의 상기 제2 프로그램 동작이 수행되도록 상기 메모리 장치를 제어하는 메모리 시스템.
  6. ◈청구항 6은(는) 설정등록료 납부시 포기되었습니다.◈
    제5항에 있어서, 상기 컨트롤러는,
    상기 버퍼 메모리에 전송된 데이터를 상기 선택된 저장 장치로 전송할 때,
    상기 선택된 저장 장치의 페일된 어드레스를 변경하고, 상기 변경된 어드레스를 상기 선택된 저장 장치로 전송하는 메모리 시스템.
  7. ◈청구항 7은(는) 설정등록료 납부시 포기되었습니다.◈
    제1항에 있어서, 상기 컨트롤러는,
    상기 선택된 저장 장치 및 상기 유휴 저장 장치에 상기 데이터를 동시에 저장하기 이전에, 상기 제1 및 제2 저장 장치들에 어드레스를 동시에 입력하는 메모리 시스템.
  8. ◈청구항 8은(는) 설정등록료 납부시 포기되었습니다.◈
    제1항에 있어서,
    상기 유휴 저장 장치는 상기 선택된 저장 장치와 서로 동일한 채널에 연결된 메모리 시스템.
  9. ◈청구항 9은(는) 설정등록료 납부시 포기되었습니다.◈
    제1항에 있어서, 상기 컨트롤러는,
    상기 선택된 저장 장치의 상기 제1 프로그램 동작이 패스(pass)된 경우,
    상기 동일한 데이터가 저장된 상기 유휴 저장 장치의 페이지 버퍼부를 리셋하는 메모리 시스템.
  10. ◈청구항 10은(는) 설정등록료 납부시 포기되었습니다.◈
    제1항에 있어서, 상기 컨트롤러는,
    새로운 커맨드에 의해 일부 유휴 장치들의 리드 동작이 수행되는 경우,
    상기 데이터가 저장된 상기 유휴 저장 장치가 적어도 하나 남을 때까지, 상기 리드 동작의 대상이 되는 유휴 저장 장치의 페이지 버퍼부를 리셋하는 메모리 시스템.
  11. 동일한 채널(channel)에 연결된 제1 저장 장치와 제2 저장 장치에 동일한 데이터를 입력하는 단계;
    상기 제1 저장 장치에 입력된 상기 데이터를 사용하여 상기 제1 저장 장치의 제1 프로그램 동작을 수행하는 단계; 및
    상기 제1 프로그램 동작이 페일(fail)되면, 상기 제2 저장 장치에 입력된 상기 데이터를 사용하여 상기 제1 저장 장치의 제2 프로그램 동작을 수행하는 단계를 포함하는 메모리 시스템의 동작방법.
  12. ◈청구항 12은(는) 설정등록료 납부시 포기되었습니다.◈
    제11항에 있어서,
    상기 제1 저장 장치의 제1 프로그램 동작이 패스되면,
    상기 제2 저장 장치에 저장된 상기 데이터를 리셋하는 메모리 시스템의 동작 방법.
  13. ◈청구항 13은(는) 설정등록료 납부시 포기되었습니다.◈
    제11항에 있어서, 상기 제1 프로그램 동작은,
    상기 제1 저장 장치에 포함된 메모리 블럭들 중, 선택된 메모리 블럭의 선택된 페이지에 수행되는 메모리 시스템의 동작 방법.
  14. ◈청구항 14은(는) 설정등록료 납부시 포기되었습니다.◈
    제13항에 있어서, 상기 제2 프로그램 동작은,
    상기 제1 프로그램 동작이 페일된 페이지 어드레스를 변경하고,
    상기 변경된 페이지 어드레스에 해당되는 페이지에 수행되는 메모리 시스템의 동작 방법.
  15. ◈청구항 15은(는) 설정등록료 납부시 포기되었습니다.◈
    제14항에 있어서, 상기 제2 프로그램 동작은,
    상기 페이지 어드레스를 변경할 때, 메모리 블럭의 어드레스도 변경되는 단계를 더 포함하는 메모리 시스템의 동작 방법.
  16. 제1 및 제2 저장 장치들에 프로그램 커맨드를 인가하는 단계;
    상기 제1 및 제2 저장 장치들에 어드레스 및 동일한 데이터를 입력하는 단계;
    상기 제1 저장 장치가 프로그램 동작을 수행하도록 상기 제1 저장 장치에 프로그램 시작 커맨드를 인가하는 단계; 및
    상기 제2 저장 장치가 대기 상태를 유지하도록 상기 제2 저장 장치에 홀드 커맨드를 인가하는 단계를 포함하는 메모리 시스템의 동작 방법.
  17. ◈청구항 17은(는) 설정등록료 납부시 포기되었습니다.◈
    제16항에 있어서, 상기 프로그램 커맨드를 인가하는 단계와 상기 어드레스 및 데이터를 입력하는 단계는,
    상기 제1 및 제2 저장 장치들에 활성화된 칩 인에이블 신호들이 인가되고, 나머지 저장 장치들에는 비활성화된 칩 인에이블 신호들이 인가된 상태에서 수행되는 메모리 시스템의 동작 방법.
  18. ◈청구항 18은(는) 설정등록료 납부시 포기되었습니다.◈
    제16항에 있어서, 상기 제1 저장 장치에 프로그램 시작 커맨드를 인가하는 단계는,
    상기 제1 저장 장치에 활성화된 칩 인에이블 신호가 인가되고,
    상기 제2 저장 장치에는 비활성화된 칩 인에이블 신호가 인가된 상태에서 수행되는 메모리 시스템의 동작 방법.
  19. ◈청구항 19은(는) 설정등록료 납부시 포기되었습니다.◈
    제16항에 있어서, 상기 제2 저장 장치에 홀드 커맨드를 인가하는 단계는,
    상기 제1 저장 장치에 비활성화된 칩 인에이블 신호가 인가되고,
    상기 제2 저장 장치에는 활성화된 칩 인에이블 신호가 인가된 상태에서 수행되는 메모리 시스템의 동작 방법.
  20. ◈청구항 20은(는) 설정등록료 납부시 포기되었습니다.◈
    제16항에 있어서, 상기 제1 저장 장치의 프로그램 동작이 페일(fail)되면,
    상기 제2 저장 장치에 저장된 상기 데이터를 이용하여 상기 제1 저장 장치의 상기 프로그램 동작을 수행하는 단계를 더 포함하는 메모리 시스템의 동작 방법.
KR1020150126374A 2015-09-07 2015-09-07 메모리 시스템 및 이의 동작 방법 KR102312399B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020150126374A KR102312399B1 (ko) 2015-09-07 2015-09-07 메모리 시스템 및 이의 동작 방법
US15/048,514 US10037247B2 (en) 2015-09-07 2016-02-19 Memory system having idle-memory devices and method of operating thereof
CN201610141526.0A CN106504788B (zh) 2015-09-07 2016-03-11 具有空闲存储器件的存储系统及其操作方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150126374A KR102312399B1 (ko) 2015-09-07 2015-09-07 메모리 시스템 및 이의 동작 방법

Publications (2)

Publication Number Publication Date
KR20170029261A KR20170029261A (ko) 2017-03-15
KR102312399B1 true KR102312399B1 (ko) 2021-10-15

Family

ID=58189454

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150126374A KR102312399B1 (ko) 2015-09-07 2015-09-07 메모리 시스템 및 이의 동작 방법

Country Status (3)

Country Link
US (1) US10037247B2 (ko)
KR (1) KR102312399B1 (ko)
CN (1) CN106504788B (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108052464A (zh) * 2018-01-12 2018-05-18 江苏华存电子科技有限公司 用于分散与降低非易失性储存装置峰值电流与功耗的方法
KR102485411B1 (ko) 2018-03-02 2023-01-06 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작 방법
KR20220025558A (ko) 2020-08-24 2022-03-03 에스케이하이닉스 주식회사 스토리지 장치 및 그 동작 방법

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100850270B1 (ko) 2007-02-08 2008-08-04 삼성전자주식회사 페일비트 저장부를 갖는 반도체 메모리 장치

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0752399B2 (ja) * 1988-06-30 1995-06-05 インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン 記憶システム
GB0326293D0 (en) * 2003-11-12 2003-12-17 Ibm Data storage systems
JP4062247B2 (ja) * 2003-12-11 2008-03-19 ソニー株式会社 半導体記憶装置
KR101297563B1 (ko) 2007-11-15 2013-08-19 삼성전자주식회사 스토리지 관리 방법 및 관리 시스템
US8572311B1 (en) * 2010-01-11 2013-10-29 Apple Inc. Redundant data storage in multi-die memory systems
CN102073561A (zh) * 2011-01-26 2011-05-25 浪潮电子信息产业股份有限公司 一种固态硬盘写操作纠错的方法
KR20120091648A (ko) * 2011-02-09 2012-08-20 삼성전자주식회사 비휘발성 메모리, 이를 포함하는 시스템, 및 이의 프로그램 방법
TWI454922B (zh) * 2011-12-19 2014-10-01 Phison Electronics Corp 記憶體儲存裝置及其記憶體控制器與資料寫入方法
BR112014015051B1 (pt) * 2011-12-21 2021-05-25 Intel Corporation método e sistema para utilizar dicas de liberação de memória dentro de um sistema de computador
KR101969883B1 (ko) 2012-04-13 2019-04-17 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
KR20140080216A (ko) * 2012-12-20 2014-06-30 에스케이하이닉스 주식회사 반도체 메모리 시스템 및 그의 동작 방법
US9037903B2 (en) * 2012-12-28 2015-05-19 Intel Corporation Apparatus and method for partial memory mirroring
KR20140142793A (ko) 2013-06-04 2014-12-15 삼성전자주식회사 불휘발성 메모리 장치를 제어하는 메모리 컨트롤러의 동작 방법 및 불휘발성 메모리 시스템
KR102074329B1 (ko) 2013-09-06 2020-02-06 삼성전자주식회사 데이터 저장 장치 및 그것의 데이터 처리 방법
WO2015164049A1 (en) * 2014-04-25 2015-10-29 Rambus, Inc. Memory mirroring
US9804931B2 (en) * 2014-04-25 2017-10-31 Rambus Inc. Memory mirroring utilizing single write operations
KR20170030900A (ko) * 2015-09-10 2017-03-20 에스케이하이닉스 주식회사 반도체 메모리 장치 및 그것의 동작 방법
US10095618B2 (en) * 2015-11-25 2018-10-09 Intel Corporation Memory card with volatile and non volatile memory space having multiple usage model configurations

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100850270B1 (ko) 2007-02-08 2008-08-04 삼성전자주식회사 페일비트 저장부를 갖는 반도체 메모리 장치

Also Published As

Publication number Publication date
CN106504788B (zh) 2020-10-13
US20170068604A1 (en) 2017-03-09
CN106504788A (zh) 2017-03-15
US10037247B2 (en) 2018-07-31
KR20170029261A (ko) 2017-03-15

Similar Documents

Publication Publication Date Title
US10303370B2 (en) Flash memory system
US9032272B2 (en) Memory systems and block copy methods thereof
CN105374397B (zh) 半导体存储器件及其操作方法
KR100902008B1 (ko) 메모리 셀에 멀티 비트 데이터를 저장하는 플래시 메모리를 포함한 메모리 시스템
CN106598479B (zh) 闪速存储器的故障安全擦除的方法和装置
KR102245822B1 (ko) 불휘발성 메모리 장치를 포함하는 저장 장치 및 그것의 프로그램 방법
JP6164712B1 (ja) フラッシュメモリ
US20190042130A1 (en) Prefix opcode method for slc entry with auto-exit option
US9298650B2 (en) Memory system, semiconductor memory device and operating method thereof
KR102603243B1 (ko) 반도체 메모리 장치 및 그것의 동작 방법
US9152553B1 (en) Generic command descriptor for controlling memory devices
WO2015033417A1 (ja) 半導体記憶装置及びデータ書き込み方法
KR20160075070A (ko) 반도체 메모리 장치
US11321170B2 (en) Memory system, memory controller, and method for operating memory system
KR20190040598A (ko) 컨트롤러 및 컨트롤러의 동작방법
KR102312399B1 (ko) 메모리 시스템 및 이의 동작 방법
KR102417976B1 (ko) 메모리 시스템 및 이의 동작 방법
TWI644215B (zh) 用來控制一資料儲存裝置的運作之方法以及資料儲存裝置及其控制器
US9928006B2 (en) Memory device and a memory system including the same
US20180018128A1 (en) Memory system
KR20120131487A (ko) 플래시 메모리 장치 및 그것의 프로그램 방법
US9147479B2 (en) Memory system and method for operating the same
US11544204B2 (en) Memory system, memory controller and method for operating memory controller
KR20170097990A (ko) 반도체 메모리 장치 및 이의 동작 방법
KR20240008046A (ko) 비휘발성 메모리 장치의 프로그램 상태에 대응하여 데이터를 읽는 장치 및 방법

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right