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

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

Info

Publication number
KR102417976B1
KR102417976B1 KR1020150146711A KR20150146711A KR102417976B1 KR 102417976 B1 KR102417976 B1 KR 102417976B1 KR 1020150146711 A KR1020150146711 A KR 1020150146711A KR 20150146711 A KR20150146711 A KR 20150146711A KR 102417976 B1 KR102417976 B1 KR 102417976B1
Authority
KR
South Korea
Prior art keywords
address
program operation
data
storage device
page
Prior art date
Application number
KR1020150146711A
Other languages
English (en)
Other versions
KR20170046412A (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 KR1020150146711A priority Critical patent/KR102417976B1/ko
Priority to US15/064,186 priority patent/US10073741B2/en
Publication of KR20170046412A publication Critical patent/KR20170046412A/ko
Application granted granted Critical
Publication of KR102417976B1 publication Critical patent/KR102417976B1/ko

Links

Images

Classifications

    • 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/1673Details of memory controller using buffers
    • 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
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0877Cache access modes
    • G06F12/0882Page mode
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/4063Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
    • G11C11/407Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
    • G11C11/408Address circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits

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)
  • Read Only Memory (AREA)
  • Quality & Reliability (AREA)
  • Computer Security & Cryptography (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Computer Hardware Design (AREA)

Abstract

본 기술은 다수의 페이지들 중 선택된 페이지의 프로그램 동작을 위해 로딩된 데이터를 임시로 저장하고, 상기 데이터를 사용하여 프로그램 동작을 수행하도록 구성된 메모리 장치; 및 상기 프로그램 동작이 처음 수행될 때에는 상기 데이터를 상기 메모리 장치에 전송하고, 상기 프로그램 동작이 페일되어 프로그램 동작이 재수행될 때에는, 상기 메모리 장치에 임시로 저장된 상기 데이터를 사용하여 상기 페이지들 중 다른 페이지에 프로그램 동작이 수행되도록 상기 메모리 장치를 제어하는 컨트롤러를 포함하는 메모리 시스템 및 이의 동작 방법을 포함한다.

Description

메모리 시스템 및 이의 동작 방법{Memory system and operating method thereof}
본 발명은 메모리 시스템 및 이의 동작 방법에 관한 것으로, 보다 구체적으로는 메모리 시스템의 프로그램 동작에 관한 것이다.
메모리 시스템(memory system)은 컴퓨터, 디지털 카메라, MP3 플레이어, 스마트폰과 같은 디지털 기기들의 데이터 저장 장치로 널리 사용되고 있다. 이러한 메모리 시스템은 데이터가 저장되는 메모리 장치와 메모리 장치를 제어하는 컨트롤러를 포함할 수 있다. 디지털 기기들을 호스트(host)라 하면, 컨트롤러는 호스트와 메모리 장치 사이에서 커맨드 및 데이터를 전송한다.
프로그램 동작시, 컨트롤러는 프로그램 동작에 대한 커맨드와, 어드레스 및 데이터를 메모리 장치에 전송하고, 메모리 장치는 수신된 커맨드, 어드레스 및 데이터에 따라 프로그램 동작을 수행한다.
프로그램 동작이 종료된 후에는, 컨트롤러는 메모리 장치의 프로그램 동작이 패스(pass)되었는지 또는 페일(fail)되었는지를 확인한다. 만약, 프로그램 동작이 페일된 것으로 확인되면, 컨트롤러는 프로그램 동작이 다시 수행되도록 메모리 장치에 커맨드, 어드레스 및 데이터를 다시 전송하고, 메모리 장치는 수신된 커맨드, 어드레스 및 데이터에 따라 프로그램 동작을 다시 수행한다.
본 발명의 실시예는 프로그램 동작시간을 단축할 수 있는 메모리 시스템 및 이의 동작 방법을 제공한다.
본 발명의 실시예에 따른 메모리 시스템은, 다수의 페이지들 중 선택된 페이지의 프로그램 동작을 위해 로딩된 데이터를 임시로 저장하고, 상기 데이터를 사용하여 프로그램 동작을 수행하도록 구성된 메모리 장치; 및 상기 프로그램 동작이 처음 수행될 때에는 상기 데이터를 상기 메모리 장치에 전송하고, 상기 프로그램 동작이 페일되어 프로그램 동작이 재수행될 때에는, 상기 메모리 장치에 임시로 저장된 상기 데이터를 사용하여 상기 페이지들 중 다른 페이지에 프로그램 동작이 수행되도록 상기 메모리 장치를 제어하는 컨트롤러를 포함한다.
본 발명의 실시예에 따른 메모리 시스템의 동작 방법은, 제1 어드레스 및 데이터를 저장 장치에 전송하는 단계; 상기 제1 어드레스 및 상기 데이터를 사용하여 상기 저장 장치의 제1 프로그램 동작을 수행하는 단계; 상기 제1 프로그램 동작의 패스 또는 페일 여부를 판단하는 단계; 상기 제1 프로그램 동작이 패스되면 상기 제1 프로그램 동작이 종료되고, 상기 제1 프로그램 동작이 페일되면 상기 저장 장치에 제2 어드레스를 전송하는 단계; 및 상기 저장 장치에 저장된 상기 데이터와 상기 제2 어드레스를 사용하여 상기 저장 장치의 제2 프로그램 동작을 수행하는 단계를 포함한다.
본 발명의 실시예에 따른 메모리 시스템의 동작 방법은, 선택된 저장 장치의 페이지 버퍼부가 리셋되도록 상기 선택된 저장 장치에 제1 프로그램 커맨드를 전송하는 단계; 선택된 저장 장치에 제1 어드레스를 로딩하는 단계; 상기 페이지 버퍼부에 데이터를 저장하는 단계; 상기 페이지 버퍼부에 저장된 데이터를 사용하여 상기 제1 어드레스에 따라 선택된 페이지의 제1 프로그램 동작을 수행하는 단계; 상기 제1 프로그램 동작이 페일되면, 상기 페이지 버퍼부에 저장된 상기 데이터가 유지될 수 있도록 상기 선택된 저장 장치에 제2 프로그램 커맨드를 전송하는 단계; 상기 선택된 저장 장치에 제2 어드레스를 로딩하는 단계; 및 상기 페이지 버퍼부에 저장된 상기 데이터를 사용하되, 상기 제2 어드레스에 따라 선택된 페이지의 제2 프로그램 동작을 수행하는 단계를 포함한다.
본 기술은 선택된 저장 장치의 프로그램 동작이 페일(fail)되어 재프로그램 동작이 수행되는 경우, 저장 장치에 임시로 저장된 데이터를 재사용하여 프로그램 동작을 수행함으로써, 컨트롤러가 저장 장치에 데이터를 재입력하는 단계를 생략할 수 있다. 이로 인해, 메모리 시스템의 프로그램 동작시간을 단축할 수 있다.
도 1은 본 발명의 실시예에 따른 메모리 시스템을 설명하기 위한 도면이다.
도 2는 도 1의 컨트롤러를 구체적으로 설명하기 위한 도면이다.
도 3은 도 1의 저장 장치 그룹을 설명하기 위한 도면이다.
도 4는 도 3의 저장 장치를 설명하기 위한 도면이다.
도 5는 도 4의 저장 장치를 구체적으로 설명하기 위한 도면이다.
도 6은 도 5의 페이지 버퍼부를 설명하기 위한 도면이다.
도 7은 본 발명의 실시예에 따른 프로그램 동작을 구체적으로 설명하기 위한 도면이다.
도 8은 본 발명의 실시예에 따른 메모리 시스템을 포함하는 컴퓨팅 시스템의 개략적인 구성을 설명하기 위한 도면이다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시 예를 설명하기로 한다. 그러나, 본 발명은 이하에서 개시되는 실시 예에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시 예는 본 발명의 개시가 완전하도록 하며 통상의 지식을 가진자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이다.
도 1은 본 발명의 실시예에 따른 메모리 시스템을 설명하기 위한 도면이다.
도 1을 참조하면, 메모리 시스템(1000)은 데이터가 저장되는 메모리 장치(1100)와 메모리 장치(1100)를 제어하는 컨트롤러(1200)를 포함할 수 있다.
메모리 장치(1100)는 다수의 저장 장치 그룹들(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)는 메모리 장치(1100)에 전송할 데이터를 임시로 저장한다. 컨트롤러(1200)는 버퍼 메모리(1210)에 임시로 저장된 데이터를 메모리 장치(1100)에 전송하고, 메모리 장치(1100)는 수신된 데이터를 사용하여 프로그램 동작을 수행한다. 다만, 메모리 장치(1100)의 프로그램 동작이 페일(fail)된 경우, 컨트롤러(1200)는 데이터를 메모리 장치(1100)에 재전송하지 않고, 페일된 프로그램 동작시 전송된 데이터를 메모리 장치(1100)가 재사용하도록 메모리 장치(1100)를 제어한다.
도 2는 도 1의 컨트롤러를 구체적으로 설명하기 위한 도면이다.
도 2를 참조하면, 메모리 시스템(1000)은 데이터가 저장되는 메모리 장치(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)는 메모리 시스템(1000)과 접속되는 호스트(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#), 데이터 스트로브 신호(DQS) 및 레디 비지 신호(RB#) 등을 수신받을 수 있고, 입출력 라인(IO)을 통해 커맨드, 어드레스 및 데이터를 수신받을 수 있다. 또한, 제1 저장 장치(NV11)는 입출력 라인(IO)을 통해 상태 데이터를 출력할 수 있다.
칩 인에이블 신호(CE#)는 동일한 채널에 연결된 저장 장치들에 선택적으로 인가되며, 나머지 신호들(CLE, ALE, WE#, RB#)은 저장 장치들에 공통으로 인가되고, 입출력 라인(IO)도 저장 장치들에 공통으로 연결된다. 예를 들면, 칩 인에이블 신호(CE#)는 제1 채널(CH1)에 공통으로 연결된 저장 장치들(NV11~NV18) 각각에 선택적으로 인가되고, 나머지 신호들(CLE, ALE, WE#, DQS, RB#)은 제1 채널(CH1)에 연결된 저장 장치들(NV11~NV18)에 공통으로 인가된다. 각 신호들을 구체적으로 설명하면 다음과 같다.
칩 인에이블 신호(CE#)는 제1 채널(CH1)에 연결된 다수의 저장 장치들에 선택적으로 입력되는 신호로써, 커맨드(command), 어드레스(address) 또는 데이터(data)를 선택된 저장 장치에 전송할 때 로우(low)가 된다. 선택된 저장 장치에 커맨드, 어드레스 또는 데이터가 입력되는 동안, 나머지 비선택된 저장 장치들에는 하이(high)의 칩 인에이블 신호(CE#)가 인가된다. 커맨드 래치 인에이블 신호(CLE)는 커맨드가 저장 장치에 입력되는 동안 하이(high)가 된다. 어드레스 래치 인에이블 신호(ALE)는 어드레스가 저장 장치에 입력되는 동안 때 하이(high)가 된다. 레디 비지 신호(RB#)는 선택된 저장 장치가 프로그램 동작을 수행하는 동안 로우(low)가 된다. 라이트 인에이블 신호(WE#)는 커맨드 및 어드레스를 저장 장치에 로딩할 때 토글(toggle)되고, 데이터 스트로브 신호(DQS)는 데이터를 저장 장치에 로딩할 때 토글된다.
도 5는 도 4의 저장 장치를 구체적으로 설명하기 위한 도면이다.
도 5를 참조하면, 다수의 저장 장치들은 서로 유사하게 구성되므로, 이 중에서 제1 저장 장치(NV11)를 예를 들어 설명하면 다음과 같다.
제1 저장 장치(NV11)는 데이터가 저장되는 메모리 셀 어레이(110)와, 메모리 셀 어레이의 프로그램(program), 리드(raead) 및 소거(erase) 동작을 수행하는 주변 회로(120)와, 주변 회로(120)를 제어하는 제어 로직(130)를 포함할 수 있다.
메모리 셀 어레이(110)는 데이터가 저장되는 다수의 플래인(plane)들을 포함할 수 있으며, 각각의 플래인은 다수의 메모리 블럭(memory block)들을 포함할 수 있다. 메모리 블럭들 각각은 메모리 셀들이 포함된 다수의 셀 스트링(string)들을 포함할 수 있다. 프로그램 동작은 선택된 메모리 블럭에 포함된 페이지(page) 단위로 수행될 수 있다. 페이지는 서로 다른 스트링들에 포함되고, 동일한 워드라인(WL)에 연결된 메모리 셀들의 그룹을 의미한다.
주변 회로(120)는 전압 생성 회로(121), 로우 디코더(122), 페이지 버퍼부(123), 컬럼 디코더(124) 및 입출력 회로(125)를 포함할 수 있다.
전압 생성 회로(121)는 동작 신호(OPSIG)에 응답하여 다양한 레벨의 동작 전압들(Vop)을 생성할 수 있다.
로우 디코더(122)는 로우 어드레스(RADD)에 응답하여 선택된 메모리 블럭에 연결된 워드라인들(WL)에 동작 전압들(Vop)을 전송할 수 있다.
페이지 버퍼부(123)는 페이지 버퍼 제어 신호(PBSIG)에 응답하여 컬럼 디코더(124)로부터 전송된 데이터(DATA)를 임시로 저장하고, 메모리 블럭들에 연결된 비트라인들(BL)의 전압을 조절할 수 있다. 예를 들면, 페이지 버퍼부(123)는 데이터(DATA)에 따라 비트라인들(BL)에 프로그램 허용 전압 또는 프로그램 금지 전압을 인가할 수 있다. 프로그램 허용 전압은 0V일 수 있고, 프로그램 금지 전압은 전원전압일 수 있다. 특히, 페이지 버퍼부(123)는 프로그램 동작이 시작될 때 입력된 데이터(DATA)를 임시로 저장하고 있다가, 프로그램 동작이 페일(fail)되면, 컨트롤러(도 1의 1200)로부터 데이터를 다시 수신하지 않고 페이지 버퍼부(123) 내에 임시로 저장된 데이터(DATA)를 사용하여 재프로그램 동작이 수행되도록 한다.
컬럼 디코더(124)는 컬럼 어드레스(CADD)에 응답하여 페이지 버퍼부(123) 또는 입출력 회로(125)와 데이터(DATA)를 주고 받을 수 있다.
입출력 회로(125)는 입출력 라인(IO)을 통해 컨트롤러(도 1의 1200)에 연결되고, 입출력 라인(IO)을 통해 컨트롤러(1200)와 커맨드(CMD), 어드레스(ADD) 및 데이터(DATA)를 주고받을 수 있다.
제어 로직(130)은 칩 인에이블 신호(CE#), 커맨드 래치 인에이블 신호(CLE), 어드레스 래치 인에이블 신호(ALE), 라이트 인에이블 신호(WE#), 데이터 스트로브 신호(DQS) 및 레디 비지 신호(RB#)에 응답하여 커맨드(CMD) 및 어드레스(ADD)를 수신하고, 수신된 커맨드(CMD) 및 어드레스(ADD)에 응답하여 선택된 메모리 블럭의 동작 신호(OPSIG), 로우 어드레스(RADD), 페이지 버퍼 제어 신호(PBSIG) 및 컬럼 어드레스(CADD)를 출력한다. 프로그램 동작이 종료된 후에 상태 확인 커맨드(CMD)가 수신되면, 제어 로직(130)은 프로그램 동작의 패스(pass) 또는 페일(fail) 정보를 포함하는 상태 데이터(SD)를 출력할 수 있다.
도 6은 도 5의 페이지 버퍼부를 설명하기 위한 도면이다.
도 6을 참조하면, 페이지 버퍼부(123)는 제1 내지 제i 페이지 버퍼들(PB1~PBi; i 는 양의 정수)을 포함할 수 있다. 제1 내지 제i 페이지 버퍼들(PB1~PBi)은 제1 내지 제i 비트라인들(BL1~BLi)에 연결되며, 컬럼 디코더(도 5의 124)로부터 전송된 데이터를 임시로 저장하거나, 프로그램 동작시 사용하기 위한 다수의 래치들을 포함한다. 예를 들면, 제1 내지 제i 페이지 버퍼들(PB1~PBi)은 컬럼 디코더(124)로부터 전송된 데이터를 임시로 저장하기 위한 캐쉬 래치들과, 프로그램 동작시 사용하기 위한 메인 래치들을 포함할 수 있다. 멀티 레벨 셀(multi level cell; MLC)을 사용하는 저장 장치는 싱글 레벨 셀(single level cell; SLC)을 사용하는 저장 장치보다 더 많은 수의 래치들을 사용하고, 트리플 레벨 셀(triple level cell; TLC)을 사용하는 저장 장치는 멀티 레벨 셀(MLC)을 사용하는 저장 장치보다 더 많은 수의 래치들을 사용한다. 즉, 하나의 메모리 셀에 저장될 수 있는 비트(bit)의 수가 증가할수록 제1 내지 제i 페이지 버퍼들(PB1~PBi)에 포함되는 래치들의 수는 증가한다.
프로그램 동작시, 데이터는 캐쉬 래치들에 임시로 저장되고, 캐쉬 래치들에 저장된 데이터는 메인 래치들에 복사된다. 프로그램 동작은 메인 래치들에 저장된 데이터를 사용하여 수행될 수 있다. 프로그램 동작이 수행되는 동안, 캐쉬 래치들에 저장된 데이터는 그대로 유지된다. 선택된 페이지의 프로그램 동작이 페일되면, 캐쉬 래치들에 저장된 데이터는 메인 래치들에 다시 복사된다. 메인 래치들에 데이터가 다시 복사되면, 복사된 데이터를 사용하여 다른 페이지의 프로그램 동작이 수행된다.
상술한 프로그램 동작을 구체적으로 설명하면 다음과 같다.
도 7은 본 발명의 실시예에 따른 프로그램 동작을 구체적으로 설명하기 위한 도면이다.
도 7을 참조하면, 프로그램 동작은 다음과 같은 순서로 수행될 수 있다.
프로그램 커맨드에 의해 데이터가 페이지 버퍼부에 저장되고, 페이지 버퍼부에 저장된 데이터를 사용한 선택된 페이지의 프로그램 동작이 수행된다. 프로그램 동작이 종료된 후, 프로그램 동작이 패스되면 프로그램 동작이 종료되지만, 프로그램 동작이 페일되면 다른 페이지에 프로그램 동작이 재수행된다. 프로그램 동작이 재수행될 때, 컨트롤러(도 1의 1200)로부터 데이터가 재수신되지 않고, 페이지 버퍼부에 임시로 저장된 데이터가 사용된다.
상술한 프로그램 동작이 수행되도록, 컨트롤러(1200)는 다음과 같이 커맨드, 어드레스 및 데이터를 출력하여 선택된 저장 장치를 제어할 수 있다. 설명의 편의를 위하여, 제1 저장 장치(NV11)의 프로그램 동작이 실시예로써 설명된다.
제1 프로그램 커맨드 입력 구간( CMD1 )
제1 프로그램 커맨드 입력 구간(CMD1)이 시작되면, 컨트롤러(도 3의 1200)는 선택된 제1 저장 장치(도 3의 NV11)에 로우(low)의 칩 인에이블 신호(CE#)를 인가한다. 이때, 나머지 비선택된 저장 장치들(도 3의 NV12~NV18)에는 하이(high)의 칩 인에이블 신호(CE#)가 인가된다. 제1 저장 장치(NV11)에만 로우(low)의 칩 인에이블 신호(CE#)가 인가되므로, 컨트롤러(1200)에서 출력되는 신호들은 제1 채널(CH1)을 통해 제1 저장 장치(NV11)에만 인가된다.
제1 저장 장치(NV11)에 로우(low)의 칩 인에이블 신호(CE#)가 인가되면, 컨트롤러(1200)는 로우(low)의 커맨드 래치 인에이블 신호(CLE)를 하이(high)로 천이시킨 후, 입출력 라인(IO)을 통해 제1 프로그램 커맨드(80h)를 출력한다. 입출력 라인(IO)에 제1 프로그램 커맨드(80h)가 인가된 상태에서 라이트 인에이블 신호(WE#)가 하이(high)에서 로우(low)로 천이되고 다시 하이(high)로 천이되면, 입출력 라인(IO)에 인가된 제1 프로그램 커맨드(80h)가 제1 저장 장치(NV11)에 로딩된다. 즉, 입출력 라인(IO)에 인가된 제1 프로그램 커맨드(80h)는 라이트 인에이블 신호(WE#)가 토글되면, 라이트 인에이블 신호(WE#)에 동기하여 제1 저장 장치(NV11)에 로딩된다. 제1 프로그램 커맨드(80h)가 제1 저장 장치(NV11)에 로딩되면, 커맨드 래치 인에이블 신호(CLE)는 하이(high)에서 로우(low)로 천이된다.
제1 저장 장치(NV11)는 제1 프로그램 커맨드(80h)에 응답하여 프로그램 동작을 수행할 준비 동작을 수행한다. 예를 들면, 제1 저장 장치(NV11)는 페이지 버퍼부(도 6의 123)를 리셋(reset)한다. 보다 구체적으로 설명하면, 제1 저장 장치(NV11)에 포함된 제어 로직(도 5의 130)은 제1 프로그램 커맨드(80h)에 응답하여 페이지 버퍼부(123)에 포함된 캐쉬 래치들 및 메인 래치들을 포함한 래치들이 리셋(reset)되도록 페이지 버퍼 제어 신호(PBSIG)를 출력한다. 페이지 버퍼부(123)에 포함된 래치들이 리셋되면, 제1 어드레스 입력 구간(INADD1)이 수행된다.
제1 어드레스 입력 구간( INADD1 )
제1 어드레스 입력 구간(INADD1)이 시작되면, 컨트롤러(1200)는 로우(low)의 어드레스 래치 인에이블 신호(ALE)를 하이(high)로 천이시킨다. 어드레스 래치 인에이블 신호(ALE)가 하이(high)를 유지하는 동안, 컨트롤러(1200)는 입출력 라인(IO)에 제1 어드레스(A0, A1, ..., Ai)를 순차적으로 인가한다. 제1 어드레스(A0, A1, ..., Ai)가 입출력 라인(IO)에 순차적으로 인가될 때, 어드레스 래치 인에이블 신호(ALE)가 토글되면, 토글되는 어드레스 래치 인에이블 신호(ALE)에 동기하여 어드레스 래치 인에이블 신호(ALE)가 순차적으로 제1 저장 장치(NV11)에 로딩된다. 제1 어드레스(A0, A1, ..., Ai)는 제1 프로그램 동작이 수행될 페이지 어드레스를 포함한다. 보다 구체적으로 설명하면, 제1 어드레스(A0, A1, ..., Ai)는 제1 저장 장치(NV1)의 메모리 셀 어레이(도 5의 110)에 포함된 제1 플래인(plane) 어드레스, 제1 메모리 블럭(memory block) 어드레스 및 제1 페이지(page) 어드레스를 포함할 수 있다. 제1 어드레스(A0, A1, ..., Ai)가 모두 제1 저장 장치(NV11)에 로딩되면 어드레스 래치 인에이블 신호(ALE)는 로우(low)로 천이되고, 데이터 입력 구간(INDATA)이 수행된다.
데이터 입력 구간( INDATA )
데이터 입력 구간(INDATA)이 시작되면, 컨트롤러(1200)는 입출력 라인(IO)에 데이터(D0, D1, ..., Dn)를 순차적으로 인가한다. 데이터 입력 구간(INDATA)은 선택된 페이지의 프로그램 동작이 처음 수행될 때에만 수행된다. 데이터(D0, D1, ..., Dn)가 입출력 라인(IO)에 순차적으로 인가될 때, 데이터 스트로브 신호(DQS)가 토글되면, 토글되는 데이터 스트로브 신호(DQS)에 동기하여 데이터(D0, D1, ..., Dn)가 순차적으로 제1 저장 장치(NV11)에 로딩된다.
보다 구체적으로 설명하면, 데이터 스트로브 신호(DQS)가 토글되면, 페이지 버퍼부(123)의 캐쉬 래치들에 데이터(D0, D1, ..., Dn)가 순차적으로 저장되고, 캐쉬 래치들에 저장된 데이터(D0, D1, ..., Dn)가 메인 래치들에 복사된다.
페이지 버퍼부(123)의 캐쉬 래치들과 메인 래치들에 데이터(D0, D1, ..., Dn)가 모두 저장되면, 제1 시작 커맨드 입력 구간이 수행된다.
제1 시작 커맨드 입력 구간( CMD2 )
제1 시작 커맨드 입력 구간(CMD2)이 시작되면, 컨트롤러(1200)는 로우(low)의 커맨드 래치 인에이블 신호(CLE)를 하이(high)로 천이시킨 후, 입출력 라인(IO)을 통해 제1 시작 커맨드(10h)를 출력한다. 입출력 라인(IO)에 제1 시작 커맨드(10h)가 인가된 상태에서 라이트 인에이블 신호(WE#)가 하이(high)에서 로우(low)로 천이되고 다시 하이(high)로 천이되면, 입출력 라인(IO)에 인가된 제1 시작 커맨드(10h)가 제1 저장 장치(NV11)에 로딩된다. 즉, 입출력 라인(IO)에 인가된 제1 시작 커맨드(10h)는 라이트 인에이블 신호(WE#)가 토글되면, 라이트 인에이블 신호(WE#)에 동기하여 제1 저장 장치(NV11)에 로딩된다. 제1 시작 커맨드(10h)가 제1 저장 장치(NV11)에 로딩되면, 커맨드 래치 인에이블 신호(CLE)는 하이(high)에서 로우(low)로 천이된다.
제1 프로그램 동작 구간
제1 저장 장치(NV11)는 제1 시작 커맨드(10h)에 응답하여 제1 프로그램 동작을 수행한다. 제1 프로그램 동작이 수행되는 동안, 제1 저장 장치(NV11)에 인가되는 칩 인에이블 신호(CE#)는 하이(high)로 천이되고, 레디 비지 신호(RB#)는 하이(high)에서 로우(low)로 천이된다.
제1 프로그램 동작을 보다 구체적으로 설명하면 다음과 같다.
제1 저장 장치(NV11)에 포함된 제어 로직(130)은 제1 시작 커맨드(10h)에 응답하여 선택된 페이지에 포함된 메모리 셀들이 프로그램되도록 주변 회로(도 5의 120)를 제어한다. 예를 들면, 제어 로직(130)은 제1 시작 커맨드(10h)에 응답하여, 동작 신호(OPSIG), 로우 어드레스(RADD), 페이지 버퍼 제어 신호(PBSIG) 및 컬럼 어드레스(CADD)를 출력한다. 여기서, 로우 어드레스(RADD)는 제1 어드레스 입력 구간(INADD1)에서 로딩된 제1 어드레스(A0, A1, ..., Ai)에 따라 출력된다. 제1 프로그램 동작은 페이지 버퍼부(123)의 메인 래치들에 저장된 데이터를 사용하여 수행된다. 이때, 캐쉬 래치들에 저장된 데이터는 그대로 유지된다.
제1 프로그램 동작이 종료되면, 레디 비지 신호(RB#)는 로우(low)에서 하이(high)로 천이되고, 제1 프로그램 동작의 패스(pass) 또는 페일(fail) 여부를 판단하기 위한 상태 확인 구간이 시작된다. 제1 프로그램 동작이 종료되는 경우는 다음과 같다.
제1 프로그램 동작은 ISPP(Incremental Step Pulse Program) 방식으로 수행될 수 있는데, 선택된 페이지에 포함된 메모리 셀들의 문턱전압이 목표레벨에 모두 도달하면 제1 프로그램 동작은 패스(pass) 상태로 종료되고, 제어 로직(130)은 패스 상태에 해당하는 상태 데이터를 제어 로직(130) 내에 포함된 레지터스에 저장한다. 만약, 선택된 페이지에 포함된 메모리 셀들의 문턱전압이 목표레벨까지 높아지지 않으면 제1 프로그램 동작은 페일(fail) 상태로 종료될 수 있다.
제1 프로그램 동작이 페일되는 경우를 보다 구체적으로 설명하면, ISPP 방식의 프로그램 동작에서는, 선택된 페이지에 포함된 메모리 셀들의 문턱전압이 목표레벨에 모두 도달할 때까지 프로그램 펄스가 단계적으로 높아지는 프로그램 루프들이 수행된다. 선택된 페이지에 포함된 메모리 셀들의 문턱전압이 일정 레벨 이상으로 높아지지 않는 경우, 프로그램 루프가 무한 반복되는 것을 방지하기 위하여, 최대 프로그램 루프 횟수가 설정된다. 즉, 프로그램 루프의 횟수가 최대 프로그램 루프 횟수에 도달할 때까지 선택된 페이지에 포함된 메모리 셀들의 문턱전압이 목표 레벨에 도달하지 못하면, 제1 프로그램 동작은 페일(fail) 상태로 종료될 수 있으며, 제어 로직(130)은 페일(fail) 상태에 해당하는 상태 데이터를 제어 로직(130) 내에 포함된 레지스터에 저장한다.
상태 확인 구간( STCHK )
제1 프로그램 동작이 종료되면, 컨트롤러(1200)는 제1 프로그램 동작이 패스(pass) 또는 페일(fail)되었는지를 알 수 없으므로, 상태를 판단하기 위한 상태 확인 구간(STCHK)이 수행된다.
상태 확인 구간(STCHK)이 시작되면, 컨트롤러(1200)는 제1 저장 장치(NC11)에 인가되는 하이(high)의 칩 인에이블 신호(CE#)를 로우(low)로 천이시킨다. 이어서, 컨트롤러(1200)는 로우(low)의 커맨드 래치 인에이블 신호(CLE)를 하이(high)로 천이시킨 후, 입출력 라인(IO)을 통해 제1 상태 확인 커맨드(70h)를 출력한다. 입출력 라인(IO)에 상태 확인 커맨드(70h)가 인가된 상태에서 라이트 인에이블 신호(WE#)가 하이(high)에서 로우(low)로 천이되고 다시 하이(high)로 천이되면, 입출력 라인(IO)에 인가된 상태 확인 커맨드(70h)가 제1 저장 장치(NV11)에 로딩된다. 즉, 입출력 라인(IO)에 인가된 상태 확인 커맨드(70h)는 라이트 인에이블 신호(WE#)가 토글되면, 라이트 인에이블 신호(WE#)에 동기하여 제1 저장 장치(NV11)에 로딩된다. 상태 확인 커맨드(70h)가 제1 저장 장치(NV11)에 로딩되면, 커맨드 래치 인에이블 신호(CLE)는 하이(high)에서 로우(low)로 천이된다.
제1 저장 장치(NV11)는 제어 로직(130)에 저장된 상태 데이터(SD)를 상태 확인 커맨드(70h)에 응답하여 입출력 라인(IO)을 통해 출력한다. 상태 데이터(SD)에 따라 제1 프로그램 동작이 패스(pass)된 것으로 판단되면, 컨트롤러(1200)는 다음으로 선택된 페이지의 프로그램 동작이 수행되도록 제1 저장 장치(NV11)를 제어한다.
상태 데이터(SD)에 따라 제1 프로그램 동작이 페일(fail)된 것으로 판단되면, 프로그램 동작을 재수행하기 위한 제2 프로그램 커맨드 입력 구간(CMD3)이 수행된다.
제2 프로그램 커맨드 입력 구간( CMD3 )
페일된 제1 프로그램 동작을 재수행하기 위한 제2 프로그램 커맨드 입력 구간(CMD3)이 시작되면, 컨트롤러(1200)는 로우(low)의 커맨드 래치 인에이블 신호(CLE)를 하이(high)로 천이시킨 후, 입출력 라인(IO)을 통해 제2 프로그램 커맨드(8Ah)를 출력한다. 입출력 라인(IO)에 제2 프로그램 커맨드(8Ah)가 인가된 상태에서 라이트 인에이블 신호(WE#)가 하이(high)에서 로우(low)로 천이되고 다시 하이(high)로 천이되면, 입출력 라인(IO)에 인가된 제2 프로그램 커맨드(8Ah)가 제1 저장 장치(NV11)에 로딩된다. 즉, 라이트 인에이블 신호(WE#)가 토글되면, 입출력 라인(IO)에 인가된 제2 프로그램 커맨드(8Ah)는 라이트 인에이블 신호(WE#)에 동기하여 제1 저장 장치(NV11)에 로딩된다. 제2 프로그램 커맨드(8Ah)가 제1 저장 장치(NV11)에 로딩되면, 커맨드 래치 인에이블 신호(CLE)는 하이(high)에서 로우(low)로 천이된다.
제1 저장 장치(NV11)는 제2 프로그램 커맨드(8Ah)에 응답하여 프로그램 동작을 수행할 준비 동작을 수행한다. 예를 들면, 제1 저장 장치(NV11)는 페이지 버퍼부(123)의 메인 래치들을 리셋(reset)하고, 캐쉬 래치들에 저장된 데이터를 메인 래치들로 복사한다. 보다 구체적으로 설명하면, 제1 저장 장치(NV11)에 포함된 제어 로직(130)은 제2 프로그램 커맨드(8Ah)에 응답하여 캐쉬 래치들에 저장된 데이터가 메인 래치들에 복사되도록 페이지 버퍼 제어 신호(PBSIG)를 출력한다. 페이지 버퍼부(123)의 메인 래치들에 데이터가 복사되면, 제2 어드레스 입력 구간(INADD2)이 수행된다.
제2 어드레스 입력 구간( INADD2 )
제2 어드레스 입력 구간(INADD2)이 시작되면, 컨트롤러(1200)는 제1 어드레스 입력 구간(INADD1)에서 입력된 제1 어드레스(A0, A1, ..., Ai) 중 메모리 블럭 어드레스 및 페이지 어드레스 중 적어도 하나의 어드레스가 변경된 제2 어드레스(B0, B1, ..., Bi)를 생성한다. 즉, 제2 프로그램 동작을 위한 데이터가 제1 저장 장치(NV11)의 페이지 버퍼부(123)에 저장되어 있으므로, 제2 프로그램 동작에서는 플래인 어드레스가 변경되지 않는다.
제1 프로그램 동작시 선택된 플래인의 어드레스를 제1 플래인 어드레스라고 가정하면, 제2 프로그램 동작에서는 제1 플래인 어드레스를 그대로 사용할 수 있다. 다만, 제1 프로그램 동작시, 선택된 메모리 블럭에 포함된 선택된 페이지에서 페일이 발생되었으므로, 제2 프로그램 동작에서는 제1 프로그램 동작과 동일한 메모리 블럭에 포함된 다른 페이지가 선택되거나, 다른 메모리 블럭에 포함된 다른 페이지가 선택될 수 있다. 예를 들면, 제2 어드레스(B0, B1, ..., Bi)에는 제1 프로그램 동작과 동일한 제1 플래인 어드레스 및 제1 메모리 블럭 어드레스와, 제1 프로그램 동작과 다른 제2 페이지 어드레스가 포함될 수 있다. 또는, 제2 어드레스(B0, B1, ..., Bi)에는 제1 프로그램 동작과 동일한 제1 플래인 어드레스와, 제1 프로그램 동작과 다른 제2 메모리 블럭 어드레스와, 제1 프로그램 동작과 동일한 제1 페이지 어드레스가 포함될 수 있다. 또는, 제2 어드레스(B0, B1, ..., Bi)에는 제1 프로그램 동작과 동일한 제1 플래인 어드레스와, 제1 프로그램 동작과 다른 제2 메모리 블럭 어드레스 및 제2 페이지 어드레스가 포함될 수 있다.
상술한 바와 같이, 제2 어드레스(B0, B1, ..., Bi)가 생성되면, 컨트롤러(1200)는 로우(low)의 어드레스 래치 인에이블 신호(ALE)를 하이(high)로 천이시킨다. 어드레스 래치 인에이블 신호(ALE)가 하이(high)를 유지하는 동안, 컨트롤러(1200)는 입출력 라인(IO)에 제2 어드레스(B0, B1, ..., Bi)를 순차적으로 인가한다.
제2 어드레스(B0, B1, ..., Bi)가 입출력 라인(IO)에 순차적으로 인가될 때, 어드레스 래치 인에이블 신호(ALE)가 토글되면, 토글되는 어드레스 래치 인에이블 신호(ALE)에 동기하여 어드레스 래치 인에이블 신호(ALE)가 순차적으로 제1 저장 장치(NV11)에 로딩된다. 제2 어드레스(B0, B1, ..., Bi)가 모두 제1 저장 장치(NV11)에 로딩되면, 어드레스 래치 인에이블 신호(ALE)는 로우(low)로 천이된다.
이어서, 제1 저장 장치(NV11)에 데이터를 입력하는 구간은 생략되고, 제2 시작 커맨드 입력 구간(CMD4)이 수행된다.
제2 시작 커맨드 입력 구간( CMD4 )
제2 시작 커맨드 입력 구간(CMD4)이 시작되면, 컨트롤러(1200)는 로우(low)의 커맨드 래치 인에이블 신호(CLE)를 하이(high)로 천이시킨 후, 입출력 라인(IO)을 통해 제2 시작 커맨드(25h)를 출력한다. 입출력 라인(IO)에 제2 시작 커맨드(25h)가 인가된 상태에서 라이트 인에이블 신호(WE#)가 하이(high)에서 로우(low)로 천이되고 다시 하이(high)로 천이되면, 입출력 라인(IO)에 인가된 제2 시작 커맨드(25h)가 제1 저장 장치(NV11)에 로딩된다. 즉, 입출력 라인(IO)에 인가된 제2 시작 커맨드(25h)는 라이트 인에이블 신호(WE#)가 토글되면, 라이트 인에이블 신호(WE#)에 동기하여 제1 저장 장치(NV11)에 로딩된다. 제2 시작 커맨드(25h)가 제1 저장 장치(NV11)에 로딩되면, 커맨드 래치 인에이블 신호(CLE)는 하이(high)에서 로우(low)로 천이된다.
제2 프로그램 동작 구간
제1 저장 장치(NV11)는 제2 시작 커맨드(25h)에 응답하여 제2 프로그램 동작을 수행한다. 제2 프로그램 동작이 수행되는 동안, 제1 저장 장치(NV11)에 인가되는 칩 인에이블 신호(CE#)는 하이(high)로 천이되고, 레디 비지 신호(RB#)는 하이(high)에서 로우(low)로 천이된다.
제2 프로그램 동작은 상술한 제1 프로그램 동작과 동일하게 수행될 수 있으나, 프로그램 대상이 되는 페이지 또는 메모리 블럭이 다를 수 있다.
제2 프로그램 동작이 종료되면, 제어 로직(130)은 제1 프로그램 동작이 종료될 때와 같이 상태 데이터를 저장한다. 이어서, 컨트롤러(1200)는 상태 데이터에 따라 제2 프로그램 동작의 패스(pass) 또는 페일(fail) 여부를 판단할 수 있다.
상술한 바와 같이, 프로그램 동작이 페일되어 재프로그램 동작이 수행되는 경우, 저장 장치에 저장된 데이터를 그대로 사용함으로써, 재프로그램 동작시 데이터 입력 구간을 생략할 수 있다. 이로 인해, 메모리 시스템의 프로그램 동작시간을 단축할 수 있다.
도 8은 본 발명의 실시예에 따른 메모리 시스템을 포함하는 컴퓨팅 시스템의 개략적인 구성을 설명하기 위한 도면이다.
도 8을 참조하면, 본 발명에 따른 메모리 시스템(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: 메모리 시스템 1100: 메모리 장치
1200: 컨트롤러 1210: 버퍼 메모리
2000: 호스트 NV11: 제1 저장 장치
110: 메모리 셀 어레이 120: 주변 회로
121: 전압 생성 회로 122: 로우 디코더
123: 페이지 버퍼부 124: 컬럼 디코더
125: 입출력 회로 130: 제어 로직

Claims (20)

  1. 다수의 페이지들을 포함하고, 다수의 페이지들 중 선택된 페이지에 프로그램 동작을 수행하는 메모리 장치; 및
    상기 메모리 장치에 임시로 저장될 데이터를 상기 메모리 장치에 전송하고,
    상기 메모리 장치가 상기 메모리 장치에 저장된 상기 데이터를 사용하여 상기 선택된 페이지에 상기 프로그램 동작을 수행한 후 상기 프로그램 동작이 페일되면, 상기 메모리 장치에 저장된 상기 데이터를 유지하고, 상기 유지된 데이터를 사용하여 상기 다수의 페이지들 중 다른 페이지에 상기 프로그램 동작을 수행하도록 상기 메모리 장치를 제어하는 컨트롤러;를 포함하는 메모리 시스템.
  2. ◈청구항 2은(는) 설정등록료 납부시 포기되었습니다.◈
    제1항에 있어서, 상기 메모리 장치는,
    상기 다수의 페이지들이 포함된 메모리 블럭들;
    상기 데이터를 임시로 저장하고, 상기 메모리 블럭들 중 선택된 메모리 블럭에 포함된 상기 선택된 페이지에 상기 프로그램 동작을 수행하는 주변 회로; 및
    상기 컨트롤러에서 출력되는 커맨드 및 어드레스에 응답하여 상기 주변 회로를 제어하는 제어 로직;을 포함하는 메모리 시스템.
  3. ◈청구항 3은(는) 설정등록료 납부시 포기되었습니다.◈
    제2항에 있어서, 상기 주변 회로는,
    동작 신호에 응답하여, 상기 프로그램 동작에 필요한 동작 전압들을 생성하는 전압 생성 회로;
    로우 어드레스에 응답하여, 상기 선택된 메모리 블럭에 상기 동작 전압들을 전달하는 로우 디코더;
    페이지 버퍼 제어 신호에 응답하여, 상기 데이터를 임시로 저장하고, 상기 프로그램 동작시 상기 데이터에 따라 상기 선택된 메모리 블럭에 연결된 비트라인들의 전압을 조절하는 페이지 버퍼부;
    컬럼 어드레스에 응답하여, 상기 페이지 버퍼부와 데이터를 주고받는 컬럼 디코더; 및
    상기 컨트롤러 또는 상기 컬럼 디코더와 데이터를 주고받는 입출력 회로;를 포함하는 메모리 시스템.
  4. ◈청구항 4은(는) 설정등록료 납부시 포기되었습니다.◈
    제3항에 있어서, 상기 페이지 버퍼부는,
    상기 데이터가 임시로 저장되는 캐쉬 래치들; 및
    상기 캐쉬 래치들로부터 전송된 상기 데이터를 임시로 저장하여 상기 프로그램 동작시 사용하는 메인 래치들;을 포함하는 메모리 시스템.
  5. ◈청구항 5은(는) 설정등록료 납부시 포기되었습니다.◈
    제3항에 있어서,
    상기 제어 로직은 상기 커맨드 및 상기 어드레스에 응답하여 상기 동작 신호, 상기 로우 어드레스, 상기 페이지 버퍼 제어 신호 및 상기 컬럼 어드레스를 출력하도록 구성된 메모리 시스템.
  6. ◈청구항 6은(는) 설정등록료 납부시 포기되었습니다.◈
    제1항에 있어서, 상기 컨트롤러는,
    상기 메모리 장치가 상기 선택된 페이지에 상기 프로그램 동작을 수행하도록 상기 메모리 장치에 커맨드, 어드레스 및 상기 데이터를 전송하는 메모리 시스템.
  7. ◈청구항 7은(는) 설정등록료 납부시 포기되었습니다.◈
    제6항에 있어서, 상기 어드레스는,
    상기 선택된 페이지에 대응되는 제1 어드레스와,
    상기 다른 페이지에 대응되는 제2 어드레스를 포함하는 메모리 시스템.
  8. ◈청구항 8은(는) 설정등록료 납부시 포기되었습니다.◈
    제7항에 있어서,
    상기 제1 어드레스는 제1 플래인(plane) 어드레스, 제1 메모리 블럭 어드레스 및 제1 페이지 어드레스를 포함하고,
    상기 제2 어드레스는 상기 제1 플래인 어드레스, 제2 메모리 블럭 어드레스 및 상기 제1 페이지 어드레스를 포함하거나, 상기 제1 플래인 어드레스, 상기 제2 메모리 블럭 어드레스 및 제2 페이지 어드레스를 포함하는 메모리 시스템.
  9. ◈청구항 9은(는) 설정등록료 납부시 포기되었습니다.◈
    제7항에 있어서, 상기 컨트롤러는,
    상기 커맨드가 전송된 이후에 상기 제1 어드레스를 상기 메모리 장치에 전송하고,
    상기 프로그램 동작이 페일된 이후에 상기 제2 어드레스를 상기 메모리 장치에 전송하는 메모리 시스템.
  10. 제1 어드레스 및 데이터를 저장 장치에 전송하는 단계;
    상기 제1 어드레스 및 상기 저장 장치에 임시 저장된 상기 데이터를 사용하여 상기 저장 장치의 제1 프로그램 동작을 수행하는 단계;
    상기 제1 프로그램 동작의 패스 또는 페일 여부를 판단하는 단계;
    상기 제1 프로그램 동작이 패스되면 상기 제1 프로그램 동작을 종료하는 단계; 및
    상기 제1 프로그램 동작이 페일되면 상기 저장 장치에 임시 저장된 상기 데이터를 유지하고 상기 저장 장치에 제2 어드레스를 전송하고, 상기 유지된 데이터와 상기 제2 어드레스를 사용하여 상기 저장 장치의 제2 프로그램 동작을 수행하는 단계;를 포함하는 메모리 시스템의 동작 방법.
  11. ◈청구항 11은(는) 설정등록료 납부시 포기되었습니다.◈
    제10항에 있어서,
    상기 제1 프로그램 동작시, 상기 데이터를 상기 저장 장치에 임시로 저장하는 단계;를 더 포함하는 메모리 시스템의 동작 방법.
  12. ◈청구항 12은(는) 설정등록료 납부시 포기되었습니다.◈
    제10항에 있어서,
    상기 제2 어드레스와 상기 제1 어드레스는 메모리 블럭 어드레스와 페이지 어드레스 중 적어도 하나의 어드레스가 서로 다르게 설정된 메모리 시스템의 동작 방법.
  13. ◈청구항 13은(는) 설정등록료 납부시 포기되었습니다.◈
    제10항에 있어서,
    상기 제2 프로그램 동작 수행시, 상기 데이터를 상기 저장 장치에 재전송하지 않는 메모리 시스템의 동작 방법.
  14. 선택된 저장 장치의 페이지 버퍼부를 리셋하도록 상기 선택된 저장 장치에 제1 프로그램 커맨드를 전송하는 단계;
    상기 선택된 저장 장치에 제1 어드레스를 로딩하는 단계;
    상기 페이지 버퍼부에 데이터를 저장하는 단계;
    상기 페이지 버퍼부에 저장된 데이터를 사용하여 상기 선택된 저장 장치의 다수의 페이지들 중에서 상기 제1 어드레스에 따라 선택된 제1 페이지에 제1 프로그램 동작을 수행하는 단계;
    상기 제1 프로그램 동작이 페일되면, 상기 페이지 버퍼부에 저장된 상기 데이터를 유지하도록 상기 선택된 저장 장치에 제2 프로그램 커맨드를 전송하는 단계;
    상기 선택된 저장 장치에 제2 어드레스를 로딩하는 단계; 및
    상기 유지된 데이터를 사용하여, 상기 다수의 페이지들 중에서 상기 제2 어드레스에 따라 선택된 제2 페이지에 제2 프로그램 동작을 수행하는 단계;를 포함하는 메모리 시스템의 동작 방법.
  15. ◈청구항 15은(는) 설정등록료 납부시 포기되었습니다.◈
    제14항에 있어서,
    상기 페이지 버퍼부에 데이터를 저장하는 단계는,
    상기 선택된 저장 장치의 캐쉬 래치들에 상기 데이터가 저장되는 단계; 및
    상기 캐쉬 래치들에 저장된 상기 데이터를 메인 래치들로 복사하는 단계;를 포함하는 메모리 시스템의 동작 방법.
  16. ◈청구항 16은(는) 설정등록료 납부시 포기되었습니다.◈
    제15항에 있어서,
    상기 제1 프로그램 동작은 상기 메인 래치들에 저장된 상기 데이터를 사용하여 수행되는 메모리 시스템의 동작 방법.
  17. ◈청구항 17은(는) 설정등록료 납부시 포기되었습니다.◈
    제14항에 있어서,
    상기 제2 프로그램 커맨드를 전송하는 단계 이후에, 상기 제1 어드레스의 일부를 변경하여 상기 제2 어드레스를 생성하는 단계;를 더 포함하는 메모리 시스템의 동작 방법.
  18. ◈청구항 18은(는) 설정등록료 납부시 포기되었습니다.◈
    제14항에 있어서,
    상기 제2 어드레스는,
    상기 제1 어드레스에 포함된 플래인 어드레스, 메모리 블럭 어드레스 및 페이지 어드레스 중, 상기 메모리 블럭 어드레스 및 상기 페이지 어드레스가 변경되어 생성되거나, 또는 상기 메모리 블럭 어드레스 또는 상기 페이지 어드레스가 변경되어 생성되는 메모리 시스템의 동작 방법.
  19. ◈청구항 19은(는) 설정등록료 납부시 포기되었습니다.◈
    제14항에 있어서,
    상기 제2 프로그램 커맨드를 전송하는 단계는,
    상기 선택된 저장 장치의 메인 래치들을 리셋하는 단계; 및
    상기 선택된 저장 장치의 캐쉬 래치들에 저장된 상기 데이터를 상기 메인 래치들에 복사하는 단계;를 포함하는 메모리 시스템의 동작 방법.
  20. ◈청구항 20은(는) 설정등록료 납부시 포기되었습니다.◈
    제14항에 있어서,
    상기 제1 프로그램 동작을 수행한 후, 상기 제1 프로그램 동작의 패스(pass) 또는 페일(fail) 여부를 판단하는 단계;를 더 포함하는 메모리 시스템의 동작 방법.
KR1020150146711A 2015-10-21 2015-10-21 메모리 시스템 및 이의 동작 방법 KR102417976B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020150146711A KR102417976B1 (ko) 2015-10-21 2015-10-21 메모리 시스템 및 이의 동작 방법
US15/064,186 US10073741B2 (en) 2015-10-21 2016-03-08 Memory system with reduced program time and method of operating the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150146711A KR102417976B1 (ko) 2015-10-21 2015-10-21 메모리 시스템 및 이의 동작 방법

Publications (2)

Publication Number Publication Date
KR20170046412A KR20170046412A (ko) 2017-05-02
KR102417976B1 true KR102417976B1 (ko) 2022-07-07

Family

ID=58561651

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150146711A KR102417976B1 (ko) 2015-10-21 2015-10-21 메모리 시스템 및 이의 동작 방법

Country Status (2)

Country Link
US (1) US10073741B2 (ko)
KR (1) KR102417976B1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102496988B1 (ko) * 2016-02-19 2023-02-09 에스케이하이닉스 주식회사 반도체 메모리 장치의 컨트롤러 및 이의 동작 방법
KR102568203B1 (ko) * 2016-02-23 2023-08-21 삼성전자주식회사 비휘발성 메모리 장치
US10854311B1 (en) 2019-08-28 2020-12-01 Micron Technology, Inc. Data redirection upon failure of a program operation

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110131445A1 (en) * 2007-02-22 2011-06-02 Mosaid Technologies Incorporated Apparatus and Method of PAGE Program Operation for Memory Devices with Mirror Back-Up of Data

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100437461B1 (ko) * 2002-01-12 2004-06-23 삼성전자주식회사 낸드 플래시 메모리 장치 및 그것의 소거, 프로그램,그리고 카피백 프로그램 방법
US7383476B2 (en) * 2003-02-11 2008-06-03 Sandisk 3D Llc System architecture and method for three-dimensional memory
DE602004010239T2 (de) * 2004-05-20 2008-09-25 Stmicroelectronics S.R.L., Agrate Brianza Verbesserter Seitenspeicher für eine programmierbare Speichervorrichtung
KR100634414B1 (ko) * 2004-09-06 2006-10-16 삼성전자주식회사 에러 검출용 패러티 발생기를 구비한 낸드 플래시 메모리 장치 및 그것의 에러 검출 방법
US7586784B2 (en) * 2006-06-09 2009-09-08 Micron Technology, Inc. Apparatus and methods for programming multilevel-cell NAND memory devices
DE102011056141A1 (de) * 2010-12-20 2012-06-21 Samsung Electronics Co., Ltd. Negativspannungsgenerator, Dekoder, nicht-flüchtige Speichervorrichtung und Speichersystem, das eine negative Spannung verwendet
KR102121333B1 (ko) 2013-10-28 2020-06-11 에스케이하이닉스 주식회사 반도체 시스템 및 이의 동작 방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110131445A1 (en) * 2007-02-22 2011-06-02 Mosaid Technologies Incorporated Apparatus and Method of PAGE Program Operation for Memory Devices with Mirror Back-Up of Data

Also Published As

Publication number Publication date
US20170116083A1 (en) 2017-04-27
US10073741B2 (en) 2018-09-11
KR20170046412A (ko) 2017-05-02

Similar Documents

Publication Publication Date Title
CN105374397B (zh) 半导体存储器件及其操作方法
TWI602187B (zh) Semiconductor memory devices and memory systems
US10846017B2 (en) Secure digital (SD) to NVMe buffer manager
KR100902008B1 (ko) 메모리 셀에 멀티 비트 데이터를 저장하는 플래시 메모리를 포함한 메모리 시스템
US20160141036A1 (en) Nonvolatile memory and related reprogramming method
KR102292217B1 (ko) 내부적으로 데이터 읽기 검증을 수행할 수 있는 메모리 장치, 이의 작동 방법, 및 이를 포함하는 메모리 시스템
TWI775879B (zh) 記憶體系統及其操作方法
US9152553B1 (en) Generic command descriptor for controlling memory devices
US20200152274A1 (en) Data storage apparatus, operating method thereof, and storage system including data storage apparatus
KR102417976B1 (ko) 메모리 시스템 및 이의 동작 방법
KR20170090262A (ko) 메모리 시스템 및 이의 동작 방법
KR102312399B1 (ko) 메모리 시스템 및 이의 동작 방법
JP2018156698A (ja) メモリシステム
KR20230048753A (ko) 비휘발성 메모리 장치에 데이터를 프로그램하는 장치 및 방법
KR102303653B1 (ko) 메모리 장치 및 이를 포함하는 메모리 시스템
KR20230000724A (ko) 비휘발성 메모리 장치에 데이터를 프로그램하기 위한 장치 및 방법
KR20180008172A (ko) 메모리 장치 및 메모리 컨트롤러를 포함하는 메모리 시스템
US11544204B2 (en) Memory system, memory controller and method for operating memory controller
US11404137B1 (en) Memory system and operating method of memory system
US20210141750A1 (en) System and method for operating system
KR20220139081A (ko) 비휘발성 메모리 장치에 데이터를 프로그램 및 검증하기 위한 장치 및 방법
KR20230017450A (ko) 비휘발성 메모리 장치에 데이터를 프로그램하기 위한 장치 및 방법
KR20240008046A (ko) 비휘발성 메모리 장치의 프로그램 상태에 대응하여 데이터를 읽는 장치 및 방법
KR20230018873A (ko) 메모리 시스템 및 그 동작 방법
JP2023076806A (ja) 半導体装置内の信号干渉を減らすための装置及び方法

Legal Events

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