KR20140142759A - 비휘발성 메모리 장치 및 그의 동작방법과 비휘발성 메모리 장치를 포함하는 시스템 - Google Patents

비휘발성 메모리 장치 및 그의 동작방법과 비휘발성 메모리 장치를 포함하는 시스템 Download PDF

Info

Publication number
KR20140142759A
KR20140142759A KR1020130062465A KR20130062465A KR20140142759A KR 20140142759 A KR20140142759 A KR 20140142759A KR 1020130062465 A KR1020130062465 A KR 1020130062465A KR 20130062465 A KR20130062465 A KR 20130062465A KR 20140142759 A KR20140142759 A KR 20140142759A
Authority
KR
South Korea
Prior art keywords
data
read
speed interface
interface mode
nth
Prior art date
Application number
KR1020130062465A
Other languages
English (en)
Inventor
유병성
김의진
노준례
Original Assignee
에스케이하이닉스 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 에스케이하이닉스 주식회사 filed Critical 에스케이하이닉스 주식회사
Priority to KR1020130062465A priority Critical patent/KR20140142759A/ko
Priority to TW102145444A priority patent/TWI614753B/zh
Priority to US14/103,505 priority patent/US9378134B2/en
Priority to CN201410101452.9A priority patent/CN104217759B/zh
Publication of KR20140142759A publication Critical patent/KR20140142759A/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
    • 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
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/26Sensing or reading circuits; Data output circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7209Validity control, e.g. using flags, time stamps or sequence numbers

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Read Only Memory (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

메모리 동작들을 병렬로 수행할 수 있는 비휘발성 메모리장치 및 그의 동작방법과 비휘발성 메모리 장치를 포함하는 시스템에 관한 것으로서, 메모리를 제어하는 메모리 컨트롤러, 및 상기 메모리 컨트롤러의 명령에 따라 리드 및 프로그램 동작을 수행하는 메모리를 포함하고, 상기 메모리 컨트롤러와 상기 메모리는 고속 인터페이스 모드로 동작하되, 상기 메모리에서 N번째 데이터를 프로그램하는 동작 중에 내부 데이터를 리드하는 동작 또는 N+1번째 데이터를 입력받는 동작이 수행되는 경우 저속 인터페이스 모드로 동작하는 비휘발성 메모리 시스템을 제공한다.

Description

비휘발성 메모리 장치 및 그의 동작방법과 비휘발성 메모리 장치를 포함하는 시스템{NONVOLATILE MEMORY DEVICE AND OPERATION METHOD FOR THE SAME AND SYSTEM INCLUDING NONVOLATILE MEMORY DEVICE}
본 발명은 반도체 설계 기술에 관한 것으로서, 구체적으로 메모리 동작들을 병렬로 수행할 수 있는 비휘발성 메모리장치 및 그의 동작방법과 비휘발성 메모리 장치를 포함하는 시스템에 관한 것이다.
최근에는 전기적으로 프로그램(program)과 소거(erase)가 가능하며, 일정 주기로 데이터(data)를 재작성하는 리프레시(refresh) 기능이 필요 없는 반도체 메모리 장치의 수요가 증가하고 있다. 그리고, 많은 데이터를 저장할 수 있는 대용량 메모리 장치(memory device)의 개발을 위해서 메모리 장치의 고집적화 기술에 대한 연구가 활발히 진행되고 있다. 여기서, 프로그램이란 데이터를 메모리 셀에 기입(write)하는 동작을 가리키며, 소거란 메모리 셀에 기입된 데이터를 지우는 동작을 가리킨다.
메모리 장치의 고집적화를 위해 복수개의 메모리 셀(memory cell)들이 직렬로 접속(즉, 인접한 셀 끼리 드레인 또는 소오스를 서로 공유하는 구조)되어 한 개의 스트링(string)을 구성하는 NAND형 플래시 메모리 장치(NAND-type flash memory device)가 개발되었다. NAND형 플래시 메모리 장치는 NOR형 플래시 메모리 장치(NOR-type flash memory device)와 달리 순차적으로 정보를 독출(read)하는 메모리 장치이다. 이러한 NAND형 플래시 메모리 장치의 프로그램 및 소거는 F-N 터널링(tunneling) 방식을 이용하여 플로팅 게이트(floating gate)에 전자를 주입하거나 방출하면서 메모리 셀의 문턱 전압(threshold voltage)을 제어함으로써 이루어진다.
한편, 호스트(host)에서 플래시 메모리 장치로 데이터가 쓰여지는 효율을 WA(Write Amplification)로 정의된다. WA(Write Amplification)를 간단하게 표현하면, 호스트(host)로부터 쓰여지기 위해 플래시 메모리 장치로 전송되는 물리적인 데이터의 양과 플래시 메모리 장치 내부에서 쓰이는 논리적인 데이터의 양의 크기 차이를 의미한다. 이렇게 물리적인 데이터의 양과 논리적인 데이터의 양의 크기가 차이가 나는 이유는 플래시 메모리 장치 내부에서 페이지 단위로 쓰기가 이루어지는 반면 블록 단위로 이레이즈가 이루어지는 것으로 인한 기본적인 플래시 메모리 장치의 동작적인 이유도 있지만, 플래시 메모리 장치 내부에서 성능 향상을 위해 웨어-레벨링(wear-leveling)이나 가비지 콜렉션(garbage collection)과 같은 동작이 수행되는 이유도 있다. 이와 같은 이유로 인해 호스트에서 인가되는 데이터의 양과 상관없이 플래시 메모리 장치 내부에서 데이터를 이동(move)시키거나 다시쓰기(re-written)가 수행되어야 하기 때문이다. 예컨대, 도 1를 참조하면, 호스트(host)로부터 쓰여지기 위해 플래시 메모리 장치로 전송되는 물리적인 데이터의 양이 4Kb라고 하면, 플래시 메모리 장치 내부에서 논리적으로 쓰여지는 데이터의 양은 16Kb가 될 수 있다.
전술한 바와 같은 이유로 인해 WA(Write Amplification)의 원인으로 제공될 수 있는 데이터 이동이나 다시쓰기와 같은 동작을 최소화하는 것이 필요하지만, 요즘 개발되는 최신의 플래시 메모리 장치는 페이지 버퍼의 사이즈가 증가하는 추세이기 때문에 WA(Write Amplification)의 원인으로 제공될 수 있는 데이터 이동이나 다시쓰기와 같은 동작의 횟수가 오히려 증가하는 추세이다.
도 2 에서 그래프 <A>를 살펴보면, 플래시 메모리 장치 내부에서 데이터의 독출 및 출력과 데이터의 입력과 프로그램이 연속으로 이루어지는 경우 상대적으로 매우 많은 시간이 소모되는 것을 알 수 있다.
따라서, 소모되는 시간을 감소시키기 위한 방안으로 그래프 <B>에 도시된 것과 같이 데이터의 프로그램이 이루어지는 동작구간에서 데이터의 입력이 병렬적으로 이루어지는 방안이 제안될 수 있다. 마찬가지로, 그래프 <C>에 도시된 것과 같이 데이터의 프로그램이 이루어지는 동작구간에서 데이터의 출력 및 입력이 병렬적으로 이루어지는 방안이 제안될 수 있다.
하지만, 그래프 <B>에 도시된 것과 같은 방안을 플래시 메모리 장치에 적용하기 위해서는 프로그램 동작이 이루어지는 동안 캐시버퍼와 같은 추가적인 버퍼를 통해 캐싱 동작을 수행해주어야 하는데, 이는, 순간적으로 큰 전류 소모를 유발시키는 문제점이 있다. 즉, 두 개의 동작이 동시에 이루어져야 하기 때문에 순간적으로 높은 전류를 소모하는 문제점이 있다. 이와 같은 문제는 특히 플래시 메모리 장치가 고속으로 동작하면 할수록 보다 순간적으로 큰 전류를 소모하는 문제점이 있다.
그리고, 그래프 <C>에 도시된 것과 같은 방안을 플래시 메모리 장치에 적용하기 위해서는 그래프 <B>에 도시된 것과 같은 방안에서 문제가 되었던 순간적인 큰 전류소모의 문제뿐만 아니라 프로그램 동작과 데이터의 독출 동작은 동시에 같이 수행될 수 없는 동작이기 때문에 기존의 플래시 메모리 장치에서 구현하는 것이 불가능하다는 문제점이 있다. 즉, 기존의 플래시 메모리 장치에서 프로그램 동작과 독출 동작은 각각 메모리 셀 어레이에 직접적으로 접속되어 이루어지는 동작이므로, 프로그램 동작이 이루어지는 중간에 독출 동작이 이루어지거나 독출 동작이 이루어지는 중간에 프로그램 동작이 이루어지는 것은 물리적으로 불가능하다는 문제점이 있다.
본 발명의 실시예는 순간적인 전류 소모를 최소화하면서도 메모리 동작들을 병렬로 수행할 수 있는 비휘발성 메모리 장치 및 그 동작방법과 비휘발성 메모리 장치를 포함하는 시스템을 제공한다.
본 발명의 실시예에 따른 비휘발성 메모리 시스템은, 메모리를 제어하는 메모리 컨트롤러; 및 상기 메모리 컨트롤러의 명령에 따라 리드 및 프로그램 동작을 수행하는 메모리를 포함할 수 있다. 이때, 상기 메모리 컨트롤러와 상기 메모리는 고속 인터페이스 모드로 동작하되, 상기 메모리에서 N번째 데이터를 프로그램하는 동작 중에 내부 데이터를 리드하는 동작 또는 N+1번째 데이터를 입력받는 동작이 수행되는 경우 저속 인터페이스 모드로 동작하는 것을 특징으로 한다.
본 발명의 다른 실시예에 따른 비휘발성 메모리 장치의 동작방법은, 고속 인터페이스 모드로 설정하는 제1 모드 설정 단계; N번째 데이터를 입력받아 래치하는 제1 래치단계; 상기 N번째 데이터를 메모리 어레이에 프로그램하는 프로그램 단계; 상기 프로그램 단계의 동작 중 N+1번째 데이터가 입력되는 경우 저속 인터페이스 모드로 전환된 후 입력된 상기 N+1번째 데이터를 래치하는 제2 래치단계; 상기 프로그램 단계의 동작 중 리드 명령이 입력되는 경우 상기 저속 인터페이스 모드로 전환된 후 상기 메모리 어레이에 프로그램된 내부 데이터를 리드하는 리드단계; 및 상기 제2 래치단계 또는 상기 리드단계의 동작이 완료된 후 고속 인터페이스 모드로 설정하는 제2 모드 설정 단계를 포함할 수 있다.
본 발명의 또 다른 실시예에 따른 비휘발성 메모리 장치는, 메모리 어레이; 연속으로 외부에서 인가되는 N번째 또는 N+1번째 데이터를 상기 메모리 어레이로 프로그램 하기 위한 메인버퍼; 상기 메인버퍼와의 사이에서 서로간에 상기 N번째 또는 N+1번째 데이터를 복사하고, 상기 메모리 어레이로부터 내부 데이터를 리드하며, 외부에서 인가되는 상기 N번째 또는 N+1번째 데이터를 입력받고 상기 내부 데이터를 외부로 출력하기 위한 캐시버퍼; 및 프로그램 명령 및 리드 명령에 응답하여 상기 N번째 또는 N+1번째 데이터를 각각 프로그램하는 동작과 상기 내부 데이터를 리드하는 동작을 고속 인터페이스 모드에서 수행시키되, 상기 N번째 데이터를 프로그램하는 동작 중에 상기 내부 데이터를 리드하는 동작 또는 상기 N+1번째 데이터를 입력받는 동작이 수행되어야 하는 경우 저속 인터페이스 모드에서 수행시키는 제어부를 포함할 수 있다.
본 발명의 또 다른 실시예에 따른 비휘발성 메모리 장치는, 메모리 어레이; 연속으로 외부에서 인가되는 N번째 또는 N+1번째 데이터를 상기 메모리 어레이로 프로그램하거나 상기 메모리 어레이로부터 내부 데이터를 리드하기 위한 메인버퍼; 상기 메인버퍼와의 사이에서 서로간에 상기 N번째 또는 N+1번째 데이터와 상기 내부 데이터를 복사하며, 외부에서 인가되는 상기 N번째 또는 N+1번째 데이터를 입력받고 상기 내부 데이터를 외부로 출력하기 위한 캐시버퍼; 상기 메인버퍼와의 사이에서 서로간에 상기 N번째 또는 N+1번째 데이터를 복사하는 더미버퍼; 및 프로그램 명령 및 리드 명령에 응답하여 상기 N번째 또는 N+1번째 데이터를 각각 프로그램하는 동작과 상기 내부 데이터를 리드하는 동작을 고속 인터페이스 모드에서 수행시키되, 상기 N번째 데이터를 프로그램하는 동작 중에 상기 내부 데이터를 리드하는 동작 또는 상기 N+1번째 데이터를 입력받는 동작이 수행되어야 하는 경우 저속 인터페이스 모드에서 수행시키는 제어부를 포함할 수 있다.
본 기술은 N번째 데이터의 프로그램 동작을 수행하는 중간에 메모리 내부의 데이터를 리드하여 출력하는 동작 또는 N+1번째 데이터를 입력받는 동작이 병렬적으로 수행되어야 하는 구간에서만 저속 인터페이스 모드로 전환하여 동작시키고, 나머지 구간에서는 고속 인터페이스 모드로 동작시킴으로써, 순간적으로 소모되는 전류의 크기를 최소가 되도록 하는 효과가 있다.
또한, 본 기술은 프로그램 동작을 수행하는 중간에 메모리 내부의 데이터를 리드하여 출력하는 동작이 병렬적으로 수행되어야 할 때, 메모리 내부의 데이터를 리드하는 구간에서만 일시적으로 프로그램 동작을 중지시키고 이후 내부의 데이터를 출력하는 동작에서는 중지되었던 프로그램 동작을 이어서 수행시킴으로써, 프로그램 동작을 수행하는 중간에 메모리 내부의 데이터를 리드하여 출력하는 동작이 병렬적으로 수행될 수 있도록 하는 효과가 있다.
도 1은 플래시 메모리 장치의 WA(Write Amplification)를 설명하기 위해 도시한 도면이다.
도 2는 플래시 메모리 장치의 동작방식 차이에 따른 시간차이를 설명하기 위해 도시한 도면이다.
도 3은 본 발명의 제1 실시예에 따른 비휘발성 메모리 장치의 구성을 도시한 도면이다.
도 4는 도 3에 도시된 본 발명의 제1 실시예에 따른 비휘발성 메모리 장치의 동작을 설명하기 위해 도시한 도면이다.
도 5는 본 발명의 제2 실시예에 따른 비휘발성 메모리 장치의 구성을 도시한 도면이다.
도 6은 도 5에 도시된 본 발명의 제2 실시예에 따른 비휘발성 메모리 장치의 동작을 설명하기 위해 도시한 도면이다.
도 7은 도 3 및 도 5에 도시된 본 발명의 실시예에 따른 비휘발성 메모리 장치를 포함하는 비휘발성 메모리 시스템의 구성을 도시한 도면이다.
도 8은 도 3 내지 도 7에 도시된 본 발명의 실시예에 따른 비휘발성 메모리 장치의 동작에 따른 효과를 설명하기 위해 도시한 테이블이다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 설명하기로 한다. 그러나, 본 발명은 이하에서 개시되는 실시예에 한정되는 것이 아니라 서로 다른 다양한 형태로 구성될 수 있으며, 단지 본 실시예는 본 발명의 개시가 완전하도록하며 통상의 지식을 가진자에게 본 발명의 범주를 완전하게 알려주기 위해 제공되는 것이다.
도 3은 본 발명의 제1 실시예에 따른 비휘발성 메모리 장치의 구성을 도시한 도면이다.
도 3을 참조하면, 본 발명의 제1 실시예에 따른 비휘발성 메모리 장치는, 메모리 어레이(300)와, 메인버퍼(310)와, 캐시버퍼(320), 및 제어부(340)를 구비한다.
메모리 어레이(300)는, 페이지 단위로 데이터를 저장하며, 메인버퍼(310) 및 캐시버퍼(320)와의 데이터 프로그램 동작 및 데이터 리드 동작을 통해 데이터를 입/출력하게 된다. 참고로, 전술한 종래기술에서는 비휘발성 메모리가 NAND 플래시 메모리 장치에 한정되어 설명되었는데, 이는 어디까지나 하나의 예시일 뿐이며, 본 발명에서 제안되는 메모리 어레이(300)에는 NAND 플래시 메모리 셀뿐만 아니라 NOR 플래시 메모리 셀과 PRAM, MRAM, RRAM 등과같은 비휘발성 메모리 장치의 메모리 셀이 모두 포함될 수 있다.
메인버퍼(310)는, 연속으로 외부에서 인가되는 N번째 데이터(PDATA<N>) 또는 N+1번째 데이터(PDATA<N+1>)를 메모리 어레이(300)로 프로그램 하는데 사용된다. 즉, 메인버퍼(310)에 N번째 데이터(PDATA<N>)가 래치되어 있을 경우, 프로그램 동작구간에서 N번째 데이터(PDATA<N>)를 메모리 어레이(300)에 저장하는데 사용하게 된다. 마찬가지로, 메인버퍼(310)에 N+1번째 데이터(PDATA<N+1>)가 래치되어 있을 경우, 프로그램 동작구간에서 N+1번째 데이터(PDATA<N+1>)를 메모리 어레이(300)에 저장하는데 사용하게 된다.
캐시버퍼(320)는, 메인버퍼(310)와의 사이에서 서로간에 N번째 데이터(PDATA<N>) 또는 N+1번째 데이터(PDATA<N+1>)를 복사하고, 메모리 어레이(300)로부터 내부 데이터(RDATA)를 리드하며, 외부에서 인가되는 N번째 데이터(PDATA<N>) 또는 N+1번째 데이터(PDATA<N+1>)를 입력받고 내부 데이터(RDATA)를 외부로 출력하는데 사용하게 된다. 구체적으로, 캐시버퍼(320)가 비어있을 때(empty) 외부에서 N번째 데이터(PDATA<N>) 또는 N+1번째 데이터(PDATA<N+1>)가 인가되면 캐시버퍼(320)는 이를 입력받아 래치하는데 사용되며, 이렇게, 캐시버퍼(320)에 래치된 N번째 데이터(PDATA<N>) 또는 N+1번째 데이터(PDATA<N+1>)는 메인버퍼(310)와의 사이에서 서로 간에 복사(copy)되는데 사용될 수 있다. 또한, 캐시버퍼(320)가 비어있을 때(empty) 리드 동작구간에서 메모리 어레이(300)로부터 내부 데이터(RDATA)를 리드하여 래치하는데 사용되며, 이렇게, 캐시버퍼(320)에 내부 데이터(RDATA)가 래치된 이후에는 데이터 출력 동작구간에서 내부 데이터(RDATA)를 외부로 출력하는데 사용된다.
제어부(340)는, 외부에서 인가되는 프로그램 명령(PROG_CMD)및 리드 명령(RD_CMD)에 응답하여 N번째 데이터(PDATA<N>) 또는 N+1번째 데이터(PDATA<N+1>)를 각각 프로그램하는 동작과 내부 데이터(RDATA)를 리드하는 동작을 고속 인터페이스 모드에서 수행시키되, N번째 데이터(PDATA<N>)를 프로그램하는 동작 중에 내부 데이터(RDATA)를 리드하는 동작 또는 N+1번째 데이터(PDATA<N+1>)를 입력받는 동작이 수행되어야 하는 경우 저속 인터페이스 모드로 전환하여 수행시킨다. 구체적으로, 제어부(340)는, 프로그램 명령(PROG_CMD)에 응답하여 고속 인터페이스 모드로 캐시버퍼(320)로 인가되는 N번째 데이터(PDATA<N>) 또는 N+1번째 데이터(PDATA<N+1>)를 각각 메인버퍼(310)에 복사시킨 후 메모리 어레이(300)에 프로그램시킨다. 또한, 리드 명령(RD_CMD)에 응답하여 고속 인터페이스 모드로 내부 데이터(RDATA)를 캐시버퍼(320)로 리드시킨 뒤 외부로 출력시킨다. 그런데, N번째 데이터(PDATA<N>)를 프로그램하는 동작 중에 내부 데이터(RDATA)를 리드하는 동작이 수행되어야 하는 경우, N번째 데이터(PDATA<N>)를 프로그램하는 동작을 중단(suspend)시킨 후 기존에 고속 인터페이스 모드에서 동작하던 것을 저속 인터페이스 모드로 전환하여 내부 데이터(RDATA)를 리드하는 동작을 수행시킨다. 이후, 내부 데이터(RDATA)를 리드하는 동작이 완료되면, 저속 인터페이스 모드에서 다시 고속 인터페이스 모드로 전환하여 중단된 N번째 데이터(PDATA<N>)를 프로그램하는 동작을 이어서 수행시키게 된다. 이때, 내부 데이터(RDATA)를 리드하는 동작구간 이전에 N번째 데이터(PDATA<N>)를 프로그램하는 동작이 중단되어야 하는 이유는, 메모리 어레이(300)를 메인버퍼(310)와 캐시버퍼(320)가 공유하여 사용하는 상태라서 메모리 어레이(300)에서 프로그램과 리드가 동시에 이루어질 수 없기 때문이다. 또한, 고속 인터페이스 모드에서 저속 인터페이스 모드로 전환되어야 하는 이유는 고속으로 동작하는 상태에서는 프로그램 동작이 중지된 상태를 유지하면서 중복으로 리드 동작을 수행하는 것은 순간적으로 피크 전류(peak current)를 크게 증가시킬 수 있기 때문이다. 그리고, N번째 데이터(PDATA<N>)를 프로그램하는 동작 중에 N+1번째 데이터(PDATA<N+1>)를 입력받는 동작이 수행되어야 하는 경우, 저속 인터페이스 모드로 전환하여 N+1번째 데이터(PDATA<N+1>)를 입력받는 동작을 수행시키고, 입력받는 동작이 완료된 후 다시 고속 인터페이스 모드로 전환시킨다. 이때, N+1번째 데이터(PDATA<N+1>)를 입력받는 동작구간에서 N번째 데이터(PDATA<N>)를 프로그램하는 동작이 중단되지 않아도 되는 이유는, N번째 데이터(PDATA<N>)를 프로그램하는 동작은 메인버퍼(310)와 메모리 어레이(300)간에 이루어지는 동작이고, N+1번째 데이터(PDATA<N+1>)를 입력받는 동작은 캐시버퍼(320)와 비휘발성 메모리 장치 외부와의 사이에서 이루어지는 동작이기 때문이다. 또한, 고속 인터페이스 모드에서 저속 인터페이스 모드로 전환되어야 하는 이유는 고속으로 동작하면서 프로그램 동작과 데이터 입력 동작이 동시에 수행하는 것은 순간적으로 피크 전류(peak current)를 크게 증가시킬 수 있기 때문이다.
여기서, 제어부(340)에서 비휘발성 메모리 장치를 고속 인터페이스 모드에서 저속 인터페이스 모드로 전환시킨 후 다시 고속 인터페이스로 전환시키는 동작은, 동작 클록의 토글링에 동기화된 상태에서 동작 클록의 주파수가 변동하는 방식으로 제공될 수도 있다. 또한, 동작 클록의 토글링에 비동기된 상태로 천천히 동작시키는 방식으로 제공될 수도 있다. 즉, 저속 인터페이스 모드에 진입해 있는 구간 동안 동작 클록의 토글링과 상관없이 내부동작이 천천히 이루어지도록 함으로써, 동작 클록이 높은 주파수를 갖는 상태에서도 프로그램 동작의 중단 유지와 리드 동작의 중복수행 또는 프로그램 동작과 데이터 입력 동작의 중복수행으로 인해 피크 전류(peak current)가 증가하는 것을 억제할 수 있게 된다. 물론, 동작 클록의 토글링에 비동기된 상태는 저속 인터페이스 모드에서만 이루어지는 것이고, 저속 인터페이스 모드에서 고속 인터페이스 모드로 전환하는 순간 다시 동작 클록에 동기화되어 동작하게 될 것이다.
그리고, 제어부(340)에 의해 N번째 데이터(PDATA<N>)를 프로그램하는 동작이 중단된 구간에서 캐시버퍼(320)에 리드된 내부 데이터(RDATA)는, N번째 데이터(PDATA<N>)를 프로그램하는 동작이 이어서 수행되는 구간에서 외부로 출력된다. 즉, N번째 데이터(PDATA<N>)를 프로그램하는 동작과 내부 데이터(RDATA)를 외부로 출력하는 동작은 중복된 상태로 수행될 수 있으며, 이때는 동작의 중복으로 인해 순간적인 피크 전류(peak current)의 증가가 큰 편에 속하지 않으므로 굳이 저속 인터페이스 모드로 동작시킬 필요가 없다. 물론, 프로그램 동작을 중단시켰다가 다시 시작하는 중간에 저속 인터페이스 모드에서 고속 인터페이스 모드로 전환시키는 동작이 빠르게 이루어지는게 쉽지 않을 경우 계속 저속 인터페이스 모드로 동작하는 상태에서 N번째 데이터(PDATA<N>)를 프로그램하는 동작과 내부 데이터(RDATA)를 외부로 출력하는 동작이 중복되어 수행되도록 하는 것도 가능하다.
정리하면, N번째 데이터(PDATA<N>)를 프로그램시키는 도중에 내부 데이터(RDATA)를 리드시켜야 하거나 N+1번째 데이터(PDATA<N+1>)를 입력받아야 하는 경우 필수적으로 저속 인터페이스 모드로 전환시킴으로써, 순간적인 피크 전류(peak current)의 증가를 억제하는 것이 필요하지만, 저속 인터페이스 모드에서 다시 고속 인터페이스 모드로 전환되는 동작은 설계자의 선택에 따라 그 시점이 조절될 수 있다.
그리고, 캐시버퍼(320)로 입력된 N+1번째 데이터(PDATA<N+1>)는, N번째 데이터(PDATA<N>)를 프로그램하는 동작이 종료된 후 메인버퍼(310)로 복사되어 메모리 어레이(300)로 프로그램된다. 이는, N+1번째 데이터(PDATA<N+1>)가 N번째 데이터(PDATA<N>)를 프로그램하는 동작구간에서는 캐시버퍼(320)에 그대로 래치되어 있는 상태라는 것을 의미하며, 이와 같이 캐시버퍼(320)에 데이터가 래치되어 있는 상태에서는 추가적으로 캐시버퍼(320)를 통해 데이터를 입/출력하는 동작이 이루어질 수 없다. 즉, 내부 데이터(RDATA)를 리드하는 동작 및 N번째 데이터(PDATA<N>) 또는 N+1번째 데이터(PDATA<N+1>)를 입력받는 동작은, 캐시버퍼가 비어(empty)있는 상태일 때 수행된다. 이는, 내부 데이터(RDATA)는 메모리 어레이(300)에서 캐시버퍼(320)로 리드되기 때문이며, 또한, N번째 데이터(PDATA<N>) 또는 N+1번째 데이터(PDATA<N+1>)는 캐시버퍼(320)를 통해 외부에서 입력받기 때문이다.
그리고, N번째 데이터(PDATA<N>)가 프로그램되는 메모리 어레이(300)의 영역과, N+1번째 데이터(PDATA<N+1>)가 프로그램되는 메모리 어레이(300)의 영역, 및 내부 데이터(RDATA)가 리드되는 메모리 어레이(300)의 영역은 각각 서로 다르다. 예컨대, N번째 데이터(PDATA<N>)가 프로그램되는 메모리 어레이(300)의 영역이 10번 페이지 영역이라고 하면, N+1번째 데이터(PDATA<N+1>)가 프로그램되는 메모리 어레이(300)의 영역은 21번 페이지 영역이 되고, 내부 데이터(RDATA)가 리드되는 메모리 어레이(300)의 영역은 45번 페이지 영역이 될 수 있다.
도 4는 도 3에 도시된 본 발명의 제1 실시예에 따른 비휘발성 메모리 장치의 동작을 설명하기 위해 도시한 도면이다.
도 4를 참조하면, 본 발명의 제1 실시예에 따른 비휘발성 메모리 장치는, 고속 인터페이스 모드에서 동작을 시작(1)하지만 프로그램 동작 중에 리드 동작이나 데이터 입력 동작이 중복되어 수행되는 경우 고속 인터페이스 모드에서 저속 인터페이스 모드로 전환된 상태에서 동작(2, 3)하게 된다.
구체적으로, 외부에서 프로그램 명령(PROG_CMD)에 해당하는 값(ex : 80h)과 프로그램 어드레스(PROG_ADDR)와 N번째 데이터(PDATA<N>) 및 캐시 프로그램 명령(CACHE PROGRAM)에 해당하는 값(ex : 15h)이 인가되면, 캐시버퍼(320)에서 N번째 데이터(PDATA<N>)를 래치하게 된다.(PDATA<N> INPUT) 이렇게, 캐시버퍼(320)에 래치된 N번째 데이터(PDATA<N>)는 메인버퍼(310)로 복사되고(PDATA<N> COPY), 이어서, 메인버퍼(310)에 복사된 N번째 데이터(PDATA<N>)는 메모리 어레이(300)에 프로그램된다(PDATA<N> PROGRAM). 이때, 고속 인터페이스 모드로 동작하기 때문에 캐시 프로그램 동작을 위해 무조건 적으로 확보되어야 하는 시간인 tCBSY이 상대적으로 짧은 시간(ex : 3us)만큼 필요한 것을 알 수 있다.
N번째 데이터(PDATA<N>)를 프로그램하는 동작 중에 외부에서 리드 명령(RD_CMD)에 해당하는 값(ex : 00h)과 리드 어드레스(RD_ADDR) 및 데이터 출력명령(DATA OUTPUT)에 해당하는 값(ex: 30h)이 인가되면, 먼저, N번째 데이터(PDATA<N>)를 메모리 어레이(300)에 프로그램하는 동작이 중지(PROGRAM SUSPEND)되고, 이어서, 메모리 어레이(300)에 저장되어 있던 내부 데이터(RDATA)를 캐시버퍼(320)로 리드하여 래치하게 된다(RDATA READ). 이때, N번째 데이터(PDATA<N>)를 메모리 어레이(300)에 프로그램하는 동작이 중지(PROGRAM SUSPEND)된 직후, 내부 데이터(RDATA)를 리드하는 동작이 수행되는 구간(RDATA READ)에 진입할 때, 고속 인터페이스 모드의 동작이 저속 인터페이스 모드의 동작으로 전환된다.(HIGH -> LOW INTERFACE MODE) 이렇게, 저속 인터페이스 모드의 동작으로 전환됨으로써, 프로그램 동작의 중지를 유지하는 상태에서 내부 데이터(RDATA)를 리드하는 동작으로 인해 순간적으로 피크 전류(peak current)의 크기가 증가하는 것을 억제하는 효과를 기대할 수 있다.
저속 인터페이스 모드에서 내부 데이터(RDATA)를 리드하는 동작이 완료되는 것에 대응하여 N번째 데이터(PDATA<N>)를 프로그램하는 동작이 중지되었던 것이 풀리면서 N번째 데이터(PDATA<N>)를 프로그램하는 동작을 이어서 수행하게 된다. 또한, N번째 데이터(PDATA<N>)를 프로그램하는 동작이 이어서 수행될 때, 캐시버퍼(320)에 리드된 내부 데이터(RDATA)를 출력하는 동작이 같이 수행된다.(PDATA<N> PROGRAM & RDATA OUTPUT)
한편, 도 4에서는 N번째 데이터(PDATA<N>)를 프로그램하는 동작이 이어서 수행되는 구간에서 캐시버퍼(320)에 리드된 내부 데이터(RDATA)를 출력하는 동작(PDATA<N> PROGRAM & RDATA OUTPUT)이 완료되자마자 N번째 데이터(PDATA<N>)를 프로그램하는 동작이 완료되기 전에 외부에서 프로그램 명령(PROG_CMD)에 해당하는 값(ex : 80h)과 프로그램 어드레스(PROG_ADDR)와 N+1번째 데이터(PDATA<N+1>) 및 캐시 프로그램 명령(CACHE PROGRAM)에 해당하는 값(ex : 15h)이 인가된다. 즉, N번째 데이터(PDATA<N>)를 프로그램하는 동작 중에 N+1번째 데이터(PDATA<N+1>)를 입력받는 동작이 수행되어야 하는 상태가 된다. 따라서, N번째 데이터(PDATA<N>)를 프로그램하는 동작을 계속 수행하면서 중복으로 내부 데이터(RDATA)를 외부로 출력하고 비어(empty)버린 캐시버퍼(320)에서 N+1번째 데이터(PDATA<N+1>)를 래치하게 된다.(PDATA<N> PROGRAM & PDATA<N+1> INPUT) 이렇게, 캐시버퍼(320)에 래치된 N+1번째 데이터(PDATA<N+1>)는 N번째 데이터(PDATA<N>)를 메모리 어레이(300)에 프로그램하는 동작이 종료된 이후 메인버퍼(310)로 복사되고, 이어서, 메인버퍼(310)에 복사된 N+1번째 데이터(PDATA<N+1>)는 메모리 어레이(300)에 프로그램된다(4). 이때, 도 4에서는 저속 인터페이스 모드로 전환된 이후 다시 고속 인터페이스로 전환되는 동작이 포함되어 있지 않으므로 캐시 프로그램 동작을 위해 무조건 적으로 확보되어야 하는 시간인 tCBSY이 기존에 고속 인터페이스 모드에서의 시간에 비해 상대적으로 긴 시간만큼 필요한 것을 알 수 있다. 참고로, 전술한 도 3의 구성을 설명할 때 지적한 바와 같이 N번째 데이터(PDATA<N>)를 프로그램하는 동작이 완료된 이후 N+1번째 데이터(PDATA<N+1>)를 프로그램하는 동작이 수행되기 전에 저속 인터페이스 모드에서 고속 인터페이스 모드로 전환되어 동작하는 것이 가능하다. 다만, 고속 인터페이스 모드로 전환하는 동작이 이루어지는 시점은 설계자에 의해 얼마든지 조절가능하다.
전술한 바와 같이 본 발명의 제1 실시예에 따른 비휘발성 메모리 장치의 구성을 적용하면, N번째 데이터(PDATA<N>)의 프로그램 동작을 수행하는 중간에 메모리 내부의 데이터(RDATA)를 리드하여 출력하는 동작 또는 N+1번째 데이터(PDATA<N+1>)를 입력받는 동작이 병렬적으로 수행되어야 하는 구간에서만 저속 인터페이스 모드로 전환하여 동작시키고, 나머지 구간에서는 고속 인터페이스 모드로 동작시킴으로써, 순간적으로 소모되는 피크 전류(peak current)의 크기가 커지는 것을 방지할 수 있다. 또한, 특정 데이터의 프로그램 동작을 수행하는 중간에 메모리 내부의 데이터(RDATA)를 리드하여 출력하는 동작이 병렬적으로 수행되어야 할 때, 메모리 내부의 데이터(RDATA)를 리드하는 구간에서만 일시적으로 특정 데이터의 프로그램 동작을 정지(suspend)시키고 이후 내부의 데이터(RDATA)를 출력하는 동작에서는 정지되었던 특정 데이터의 프로그램 동작을 이어서 수행시킴으로써, 특정 데이터의 프로그램 동작을 수행하는 중간에 메모리 내부의 데이터(RDATA)를 리드하여 출력하는 동작이 병렬적으로 수행될 수 있도록 한다.
도 5는 본 발명의 제2 실시예에 따른 비휘발성 메모리 장치의 구성을 도시한 도면이다.
도 5를 참조하면, 본 발명의 제2 실시예에 따른 비휘발성 메모리 장치는, 메모리 어레이(500)와, 메인버퍼(510)와, 캐시버퍼(520)와, 더미버퍼(530), 및 제어부(540)를 구비한다.
메모리 어레이(500)는, 페이지 단위로 데이터를 저장하며, 메인버퍼(510)와의 데이터 프로그램 동작 및 데이터 리드 동작을 통해 데이터를 입/출력하게 된다. 참고로, 전술한 종래기술에서는 비휘발성 메모리가 NAND 플래시 메모리 장치에 한정되어 설명되었는데, 이는 어디까지나 하나의 예시일 뿐이며, 본 발명에서 제안되는 메모리 어레이(500)에는 NAND 플래시 메모리 셀뿐만 아니라 NOR 플래시 메모리 셀과 PRAM, MRAM, RRAM 등과같은 비휘발성 메모리 장치의 메모리 셀이 모두 포함될 수 있다.
메인버퍼(510)는, 연속으로 외부에서 인가되는 N번째 데이터(PDATA<N>) 또는 N+1번째 데이터(PDATA<N+1>)를 메모리 어레이(500)로 프로그램 하거나 메모리 어레이(500)로부터 내부 데이터(RDATA)를 리드하는데 사용된다. 즉, 메인버퍼(510)에 N번째 데이터(PDATA<N>)가 래치되어 있을 경우, 프로그램 동작구간에서 N번째 데이터(PDATA<N>)를 메모리 어레이(500)에 저장하는데 사용하게 된다. 마찬가지로, 메인버퍼(510)에 N+1번째 데이터(PDATA<N+1>)가 래치되어 있을 경우, 프로그램 동작구간에서 N+1번째 데이터(PDATA<N+1>)를 메모리 어레이(500)에 저장하는데 사용하게 된다. 또한, 메인버퍼(510)가 비어있을 때(empty) 리드 동작구간에서 메모리 어레이(500)로부터 내부 데이터(RDATA)를 리드하여 래치하는데 사용하게 된다.
캐시버퍼(520)는, 메인버퍼(510)와의 사이에서 서로간에 N번째 데이터(PDATA<N>) 또는 N+1번째 데이터(PDATA<N+1>)와 내부 데이터(RDATA)를 복사하며, 외부에서 인가되는 N번째 데이터(PDATA<N>) 또는 N+1번째 데이터(PDATA<N+1>)를 입력받고 메인버퍼(510)로부터 복사된 내부 데이터(RDATA)를 외부로 출력하는데 사용하게 된다. 구체적으로, 캐시버퍼(520)가 비어있을 때(empty) 외부에서 N번째 데이터(PDATA<N>) 또는 N+1번째 데이터(PDATA<N+1>)가 인가되면 캐시버퍼(520)는 이를 입력받아 래치하는데 사용되며, 이렇게, 캐시버퍼(520)에 래치된 N번째 데이터(PDATA<N>) 또는 N+1번째 데이터(PDATA<N+1>)는 메인버퍼(510)와의 사이에서 서로 간에 복사(copy)되는데 사용될 수 있다. 또한, 캐시버퍼(520)가 비어있을 때(empty) 리드 동작구간에서 메모리 어레이(500)로부터 메인버퍼(510)로 리드된 내부 데이터(RDATA)를 복사하여 래치하는데 사용되며, 이렇게, 캐시버퍼(520)에 내부 데이터(RDATA)가 래치된 이후에는 데이터 출력 동작구간에서 내부 데이터(RDATA)를 외부로 출력하는데 사용된다.
더미버퍼(530)는, 메인버퍼(510)와의 사이에서 서로간에 N번째 데이터(PDATA<N>) 또는 N+1번째 데이터(PDATA<N+1>)를 복사하여 래치하는데 사용하게 된다. 즉, 더미버퍼(530)가 비어있을 때(empty) 메인버퍼(510)에 래치되어 있던 N번째 데이터(PDATA<N>) 또는 N+1번째 데이터(PDATA<N+1>)를 복사하여 래치하는데 사용하게 된다.
제어부(540)는, 외부에서 인가되는 프로그램 명령(PROG_CMD)및 리드 명령(RD_CMD)에 응답하여 N번째 데이터(PDATA<N>) 또는 N+1번째 데이터(PDATA<N+1>)를 각각 프로그램하는 동작과 내부 데이터(RDATA)를 리드하는 동작을 고속 인터페이스 모드에서 수행시키되, N번째 데이터(PDATA<N>)를 프로그램하는 동작 중에 내부 데이터(RDATA)를 리드하는 동작 또는 N+1번째 데이터(PDATA<N+1>)를 입력받는 동작이 수행되어야 하는 경우 저속 인터페이스 모드로 전환하여 수행시킨다. 구체적으로, 제어부(540)는, 프로그램 명령(PROG_CMD)에 응답하여 고속 인터페이스 모드로 캐시버퍼(520)로 인가되는 N번째 데이터(PDATA<N>) 또는 N+1번째 데이터(PDATA<N+1>)를 각각 메인버퍼(510)에 복사시킨 후 메모리 어레이(500)에 프로그램시킨다. 또한, 리드 명령(RD_CMD)에 응답하여 고속 인터페이스 모드로 내부 데이터(RDATA)를 메인버퍼(510)로 리드시킨 뒤 캐시버퍼(520)에 복사시킨 후 외부로 출력시킨다. 그런데, N번째 데이터(PDATA<N>)를 프로그램하는 동작 중에 내부 데이터(RDATA)를 리드하는 동작이 수행되어야 하는 경우, N번째 데이터(PDATA<N>)를 프로그램하는 동작을 중단(suspend)시킨 후 기존에 고속 인터페이스 모드에서 동작하던 것을 저속 인터페이스 모드로 전환하여 메인버퍼(510)에 저장된 N번째 데이터(PDATA<N>)를 더미버퍼(530)로 복사시킨 뒤 내부 데이터(RDATA)를 메인버퍼(510)로 리드하는 동작을 수행시킨다. 이후, 내부 데이터(RDATA)를 리드하는 동작이 완료되면, 저속 인터페이스 모드에서 다시 고속 인터페이스 모드로 전환하여 더미버퍼(530)에 저장된 N번째 데이터(PDATA<N>)를 메인버퍼(510)에 복사시킨 뒤 중단된 N번째 데이터(PDATA<N>)를 프로그램하는 동작을 이어서 수행시키게 된다. 이때, 내부 데이터(RDATA)를 메인버퍼(510)로 리드하는 동작구간 이전에 N번째 데이터(PDATA<N>)를 프로그램하는 동작이 중단되어야 하고 메인버퍼(510)에 저장되어 있던 N번째 데이터(PDATA<N>)를 더미버퍼(530)로 복사시켜야 하는 이유는, 메모리 어레이(500)는 메인버퍼(510)와의 사이에서만 프로그램 및 리드 동작이 이루어지기 때문이다. 즉, 메모리 어레이(500)와 메인버퍼(510) 사이에서 프로그램 동작과 리드 동작이 동시에 이루어질 수 없기 때문이다. 또한, 고속 인터페이스 모드에서 저속 인터페이스 모드로 전환되어야 하는 이유는 고속으로 동작하는 상태에서는 프로그램 동작이 중지된 상태를 유지하면서 중복으로 리드 동작을 수행하는 것은 순간적으로 피크 전류(peak current)를 크게 증가시킬 수 있기 때문이다. 그리고, N번째 데이터(PDATA<N>)를 프로그램하는 동작 중에 N+1번째 데이터(PDATA<N+1>)를 입력받는 동작이 수행되어야 하는 경우, 저속 인터페이스 모드로 전환하여 N+1번째 데이터(PDATA<N+1>)를 입력받는 동작을 수행시키고, 입력받는 동작이 완료된 후 다시 고속 인터페이스 모드로 전환시킨다. 이때, N+1번째 데이터(PDATA<N+1>)를 입력받는 동작구간에서 N번째 데이터(PDATA<N>)를 프로그램하는 동작이 중단되지 않아도 되는 이유는, N번째 데이터(PDATA<N>)를 프로그램하는 동작은 메인버퍼(510)와 메모리 어레이(500)간에 이루어지는 동작이고, N+1번째 데이터(PDATA<N+1>)를 입력받는 동작은 캐시버퍼(520)와 비휘발성 메모리 장치 외부와의 사이에서 이루어지는 동작이기 때문이다. 또한, 고속 인터페이스 모드에서 저속 인터페이스 모드로 전환되어야 하는 이유는 고속으로 동작하면서 프로그램 동작과 데이터 입력 동작이 동시에 수행하는 것은 순간적으로 피크 전류(peak current)를 크게 증가시킬 수 있기 때문이다.
여기서, 제어부(540)에서 비휘발성 메모리 장치를 고속 인터페이스 모드에서 저속 인터페이스 모드로 전환시킨 후 다시 고속 인터페이스로 전환시키는 동작은, 동작 클록의 토글링에 동기화된 상태에서 동작 클록의 주파수가 변동하는 방식으로 제공될 수도 있다. 또한, 동작 클록의 토글링에 비동기된 상태로 천천히 동작시키는 방식으로 제공될 수도 있다. 즉, 저속 인터페이스 모드에 진입해 있는 구간 동안 동작 클록의 토글링과 상관없이 내부동작이 천천히 이루어지도록 함으로써, 동작 클록이 높은 주파수를 갖는 상태에서도 프로그램 동작의 중단 유지와 리드 동작의 중복수행 또는 프로그램 동작과 데이터 입력 동작의 중복수행으로 인해 피크 전류(peak current)가 증가하는 것을 억제할 수 있게 된다. 물론, 동작 클록의 토글링에 비동기된 상태는 저속 인터페이스 모드에서만 이루어지는 것이고, 저속 인터페이스 모드에서 고속 인터페이스 모드로 전환하는 순간 다시 동작 클록에 동기화되어 동작하게 될 것이다.
그리고, 제어부(540)에 의해 N번째 데이터(PDATA<N>)를 프로그램하는 동작이 중단된 구간에서 메인버퍼(510)로 리드되어 캐시버퍼(520)에 복사된 내부 데이터(RDATA)는, N번째 데이터(PDATA<N>)를 더미버퍼(530)에서 메인버퍼(510)로 복사한 후 프로그램하는 동작이 이어서 수행되는 구간에서 외부로 출력된다. 즉, N번째 데이터(PDATA<N>)를 프로그램하는 동작과 내부 데이터(RDATA)를 외부로 출력하는 동작은 중복된 상태로 수행될 수 있으며, 이때는 동작의 중복으로 인해 순간적인 피크 전류(peak current)의 증가가 큰 편에 속하지 않으므로 굳이 저속 인터페이스 모드로 동작시킬 필요가 없다. 물론, 프로그램 동작을 중단시켰다가 다시 시작하는 중간에 저속 인터페이스 모드에서 고속 인터페이스 모드로 전환시키는 동작이 빠르게 이루어지는게 쉽지 않을 경우 계속 저속 인터페이스 모드로 동작하는 상태에서 N번째 데이터(PDATA<N>)를 프로그램하는 동작과 내부 데이터(RDATA)를 외부로 출력하는 동작이 중복되어 수행되도록 하는 것도 가능하다.
정리하면, N번째 데이터(PDATA<N>)를 프로그램시키는 도중에 내부 데이터(RDATA)를 리드시켜야 하거나 N+1번째 데이터(PDATA<N+1>)를 입력받아야 하는 경우 필수적으로 저속 인터페이스 모드로 전환시킴으로써, 순간적인 피크 전류(peak current)의 증가를 억제하는 것이 필요하지만, 저속 인터페이스 모드에서 다시 고속 인터페이스 모드로 전환되는 동작은 설계자의 선택에 따라 그 시점이 조절될 수 있다.
그리고, 캐시버퍼(520)로 입력된 N+1번째 데이터(PDATA<N+1>)는, N번째 데이터(PDATA<N>)를 프로그램하는 동작이 종료된 후 메인버퍼(510)로 복사되어 메모리 어레이(500)로 프로그램된다. 이는, N+1번째 데이터(PDATA<N+1>)가 N번째 데이터(PDATA<N>)를 프로그램하는 동작구간에서는 캐시버퍼(520)에 그대로 래치되어 있는 상태라는 것을 의미하며, 이와 같이 캐시버퍼(520)에 데이터가 래치되어 있는 상태에서는 추가적으로 캐시버퍼(520)를 통해 데이터를 입/출력하는 동작이 이루어질 수 없다. 즉, N번째 데이터(PDATA<N>) 또는 N+1번째 데이터(PDATA<N+1>)를 입력받는 동작은, 캐시버퍼가 비어(empty)있는 상태일 때 수행된다. 이는, N번째 데이터(PDATA<N>) 또는 N+1번째 데이터(PDATA<N+1>)는 캐시버퍼(520)를 통해 외부에서 입력받기 때문이다.
그리고, N번째 데이터(PDATA<N>)가 프로그램되는 메모리 어레이(500)의 영역과, N+1번째 데이터(PDATA<N+1>)가 프로그램되는 메모리 어레이(500)의 영역, 및 내부 데이터(RDATA)가 리드되는 메모리 어레이(500)의 영역은 각각 서로 다르다. 예컨대, N번째 데이터(PDATA<N>)가 프로그램되는 메모리 어레이(500)의 영역이 10번 페이지 영역이라고 하면, N+1번째 데이터(PDATA<N+1>)가 프로그램되는 메모리 어레이(500)의 영역은 21번 페이지 영역이 되고, 내부 데이터(RDATA)가 리드되는 메모리 어레이(500)의 영역은 45번 페이지 영역이 될 수 있다.
전술한 도 5에 본 발명의 제2 실시예에 따른 비휘발성 메모리 장치의 구성과 도 3에 개시된 본 발명의 제1 실시예에 따른 비휘발성 메모리 장치의 구성을 비교할 때, 그 차이점은 도 5에 도시된 비휘발성 메모리 장치에 더미버퍼(530)가 더 포함되는 점이라는 것을 알 수 있다. 이와 같은 더미버퍼(530)의 존재는 메모리 어레이(500)의 내부 데이터(RDATA)를 캐시버퍼(520)가 직접적으로 리드하지 못하는 유형의 비휘발성 메모리 장치일 경우에 필수가 된다. 즉, 메모리 어레이(500)와 데이터를 프로그램하고 리드하는 동작은 오직 메인버퍼(510)를 통해서만 이루어지고, 외부로부터 데이터를 입/출력하는 동작은 오직 캐시버퍼(520)를 통해서만 이루어지도록 설정되어 있는 비휘발성 메모리 장치의 경우 더미버퍼(530)가 존재가 필수가 된다.
그리고, 더미버퍼(530)의 존재는 일종의 데이터 백업 용도로 사용될 수도 있다. 즉, 도 3에 대한 설명에서 언급하였듯이 메모리 어레이(500)의 내부 데이터(RDATA)를 캐시버퍼(520)가 직접적으로 리드하는 것이 가능한 비휘발성 메모리 장치에서는 프로그램 중단이 이루어지는 구간에서 이전에 프로그램하던 N번째 데이터(PDATA<N>)는 메인버퍼(510)에 그대로 저장되어 있는 형태이다. 이때, 프로그램 동작이 중단되는 과정에서 메인버퍼(510)에 저장되어 있는 N번째 데이터(PDATA<N>)의 값이 원하지 않게 변화되지 않았는지 등을 판단하기 위해 프로그램 동작이 진행되기 전에 캐시버퍼(520)로 인가된 N번째 데이터(PDATA<N>)를 메인버퍼(510)와 더미버퍼(530)에 동시에 저장해 놓고, 프로그램 중단구간에서 탈출한 후 그 값을 비교하는 과정을 추가함으로써, 프로그램 동작의 중단으로 인해 데이터 손실이 일어나는 현상을 방지할 수 있다.
도 6은 도 5에 도시된 본 발명의 제2 실시예에 따른 비휘발성 메모리 장치의 동작을 설명하기 위해 도시한 도면이다.
도 6을 참조하면, 본 발명의 제2 실시예에 따른 비휘발성 메모리 장치는, 고속 인터페이스 모드에서 동작을 시작(1)하지만 프로그램 동작 중에 리드 동작이나 데이터 입력 동작이 중복되어 수행되는 경우 고속 인터페이스 모드에서 저속 인터페이스 모드로 전환된 상태에서 동작(2, 3)하게 된다.
구체적으로, 외부에서 프로그램 명령(PROG_CMD)에 해당하는 값(ex : 80h)과 프로그램 어드레스(PROG_ADDR)와 N번째 데이터(PDATA<N>) 및 캐시 프로그램 명령(CACHE PROGRAM)에 해당하는 값(ex : 15h)이 인가되면, 캐시버퍼(520)에서 N번째 데이터(PDATA<N>)를 래치하게 된다.(PDATA<N> INPUT) 이렇게, 캐시버퍼(520)에 래치된 N번째 데이터(PDATA<N>)는 메인버퍼(510)로 복사되고(PDATA<N> COPY), 이어서, 메인버퍼(510)에 복사된 N번째 데이터(PDATA<N>)는 메모리 어레이(500)에 프로그램된다(PDATA<N> PROGRAM). 이때, 고속 인터페이스 모드로 동작하기 때문에 캐시 프로그램 동작을 위해 무조건 적으로 확보되어야 하는 시간인 tCBSY이 상대적으로 짧은 시간(ex : 3us)만큼 필요한 것을 알 수 있다.
N번째 데이터(PDATA<N>)를 프로그램하는 동작 중에 외부에서 리드 명령(RD_CMD)에 해당하는 값(ex : 00h)과 리드 어드레스(RD_ADDR) 및 데이터 출력명령(DATA OUTPUT)에 해당하는 값(ex: 30h)이 인가되면, 먼저, N번째 데이터(PDATA<N>)를 메모리 어레이(500)에 프로그램하는 동작이 중지(PROGRAM SUSPEND)되고, 이어서, 메인버퍼(510)에 저장되어 프로그램 동작에 사용되었던 N번째 데이터(PDATA<N>)를 더미버퍼(530)로 복사하고, 메모리 어레이(500)에 저장되어 있던 내부 데이터(RDATA)를 메인버퍼(510)로 리드한 뒤 캐시버퍼(520)로 복사하여 래치하게 된다(PDATA<N> COPY -> RDATA READ -> RDATA COPY). 이때, N번째 데이터(PDATA<N>)를 메모리 어레이(500)에 프로그램하는 동작이 중지(PROGRAM SUSPEND)된 후, 내부 데이터(RDATA)를 리드하는 동작이 수행되는 구간(RDATA READ)에 진입할 때, 고속 인터페이스 모드의 동작이 저속 인터페이스 모드의 동작으로 전환된다.(HIGH -> LOW INTERFACE MODE) 이렇게, 저속 인터페이스 모드의 동작으로 전환됨으로써, 프로그램 동작의 중지(suspend)를 유지하는 상태에서 내부 데이터(RDATA)를 리드하는 동작으로 인해 순간적으로 피크 전류(peak current)의 크기가 증가하는 것을 억제하는 효과를 기대할 수 있다.
저속 인터페이스 모드에서 내부 데이터(RDATA)를 리드하는 동작이 완료되는 것에 대응하여 N번째 데이터(PDATA<N>)를 프로그램하는 동작이 중지되었던 것이 풀리면서 N번째 데이터(PDATA<N>)를 프로그램하는 동작을 이어서 수행하게 된다. 즉, 더미버퍼(530)에 저장되어 있던 N번째 데이터(PDATA<N>)를 다시 메인버퍼(510)로 복사한 뒤 메모리 어레이(500)로 프로그램하는 동작을 수행하게 된다. 또한, N번째 데이터(PDATA<N>)를 프로그램하는 동작이 이어서 수행될 때, 캐시버퍼(520)에 복사되어 래치된 내부 데이터(RDATA)를 출력하는 동작이 같이 수행된다.(PDATA<N> COPY -> PDATA<N> PROGRAM & RDATA OUTPUT)
한편, 도 6에서는 N번째 데이터(PDATA<N>)를 프로그램하는 동작이 이어서 수행되는 구간에서 캐시버퍼(520)에 복사되어 래치된 내부 데이터(RDATA)를 출력하는 동작(PDATA<N> COPY -> PDATA<N> PROGRAM & RDATA OUTPUT)이 완료되자마자 N번째 데이터(PDATA<N>)를 프로그램하는 동작이 완료되기 전에 외부에서 프로그램 명령(PROG_CMD)에 해당하는 값(ex : 80h)과 프로그램 어드레스(PROG_ADDR)와 N+1번째 데이터(PDATA<N+1>) 및 캐시 프로그램 명령(CACHE PROGRAM)에 해당하는 값(ex : 15h)이 인가된다. 즉, N번째 데이터(PDATA<N>)를 프로그램하는 동작 중에 N+1번째 데이터(PDATA<N+1>)를 입력받는 동작이 수행되어야 하는 상태가 된다. 따라서, N번째 데이터(PDATA<N>)를 프로그램하는 동작을 계속 수행하면서 중복으로 내부 데이터(RDATA)를 외부로 출력하고 비어(empty)버린 캐시버퍼(520)에서 N+1번째 데이터(PDATA<N+1>)를 래치하게 된다.(PDATA<N> PROGRAM & PDATA<N+1> INPUT) 이렇게, 캐시버퍼(520)에 래치된 N+1번째 데이터(PDATA<N+1>)는 N번째 데이터(PDATA<N>)를 메모리 어레이(500)에 프로그램하는 동작이 종료된 이후 메인버퍼(510)로 복사되고, 이어서, 메인버퍼(510)에 복사된 N+1번째 데이터(PDATA<N+1>)는 메모리 어레이(500)에 프로그램(4)된다. 이때, 도 6에서는 저속 인터페이스 모드로 전환된 이후 다시 고속 인터페이스로 전환되는 동작이 포함되어 있지 않으므로 캐시 프로그램 동작을 위해 무조건 적으로 확보되어야 하는 시간인 tCBSY이 기존에 고속 인터페이스 모드에서의 시간에 비해 상대적으로 긴 시간만큼 필요한 것을 알 수 있다. 참고로, 전술한 도 5의 구성을 설명할 때 지적한 바와 같이 N번째 데이터(PDATA<N>)를 프로그램하는 동작이 완료된 이후 N+1번째 데이터(PDATA<N+1>)를 프로그램하는 동작이 수행되기 전에 저속 인터페이스 모드에서 고속 인터페이스 모드로 전환되어 동작하는 것이 가능하다. 다만, 고속 인터페이스 모드로 전환하는 동작이 이루어지는 시점은 설계자에 의해 얼마든지 조절가능하다.
전술한 바와 같이 본 발명의 제2 실시예에 따른 비휘발성 메모리 장치의 구성을 적용하면, N번째 데이터(PDATA<N>)의 프로그램 동작을 수행하는 중간에 메모리 내부의 데이터(RDATA)를 리드하여 출력하는 동작 또는 N+1번째 데이터(PDATA<N+1>)를 입력받는 동작이 병렬적으로 수행되어야 하는 구간에서만 저속 인터페이스 모드로 전환하여 동작시키고, 나머지 구간에서는 고속 인터페이스 모드로 동작시킴으로써, 순간적으로 소모되는 피크 전류(peak current)의 크기가 커지는 것을 방지할 수 있다. 또한, 특정 데이터의 프로그램 동작을 수행하는 중간에 메모리 내부의 데이터(RDATA)를 리드하여 출력하는 동작이 병렬적으로 수행되어야 할 때, 메모리 내부의 데이터(RDATA)를 리드하는 구간에서만 일시적으로 특정 데이터의 프로그램 동작을 정지(suspend)시키고 이후 내부의 데이터(RDATA)를 출력하는 동작에서는 정지되었던 특정 데이터의 프로그램 동작을 이어서 수행시킴으로써, 특정 데이터의 프로그램 동작을 수행하는 중간에 메모리 내부의 데이터(RDATA)를 리드하여 출력하는 동작이 병렬적으로 수행될 수 있도록 한다.
도 7은 도 3 및 도 5에 도시된 본 발명의 실시예에 따른 비휘발성 메모리 장치를 포함하는 비휘발성 메모리 시스템의 구성을 도시한 도면이다.
도 7을 참조하면, 도 3에 도시된 본 발명의 제1 실시예에 따른 비휘발성 메모리 장치와 도 5에 도시된 본 발명의 제2 실시예에 따른 비휘발성 메모리 장치가 비휘발성 메모리 시스템에 포함되는 것을 알 수 있다.
구체적으로, 도 7에 도시된 본 발명의 실시예에 따른 비휘발성 메모리 시스템은, 메모리 컨트롤러(700), 및 비휘발성 메모리 장치(720)를 포함한다.
메모리 컨트롤러(700)는, 비휘발성 메모리 장치(720)를 제어하기 위한 커맨드(PROG_CMD<N>, PROG_CMD<N+1>, RD_CMD)를 비휘발성 메모리 장치(720)로 전송하여 프로그램 동작 및 리드 동작의 수행여부를 제어한다. 이때, N번째 프로그램 커맨드(PROG_CMD<N>)는 N번째 데이터(PDATA<N>)와 함께 메모리 컨트롤러(700)에서 비휘발성 메모리 장치(720)로 전달되어 N번째 프로그램 동작이 수행될 수 있도록 한다. 마찬가지로, N+1번째 프로그램 커맨드(PROG_CMD<N+1>)는 N+1번째 데이터(PDATA<N+1>)와 함께 메모리 컨트롤러(700)에서 비휘발성 메모리 장치(720)로 전달되어 N+1번째 프로그램 동작이 수행될 수 있도록 한다. 여기서, N은 1보다 큰 정수를 의미한다. 그리고, 리드 명령(RD_CMD)이 메모리 컨트롤러(700)에서 비휘발성 메모리 장치(720)로 전달되면, 비휘발성 메모리 장치(720)에서는 내부에 저장된 데이터(RDATA)를 리드하여 메모리 컨트롤러(700)로 출력하게 된다.
즉, 비휘발성 메모리 장치(720)는, 메모리 컨트롤러(700)의 프로그램 명령(PROG_CMD<N>, PROG_CMD<N+1>)에 따라 프로그램 동작을 수행하고, 리드 명령(RD_CMD)에 따라 리드 동작을 수행한다.
이때, 메모리 컨트롤러(700)와 비휘발성 메모리 장치(720) 사이에 서로 간에 전달되는 프로그램 데이터(PDATA<N>, PDATA<N+1>)와 리드 데이터(RDATA)는, 기본적으로 고속 인터페이스 모드에서 전송된다. 예컨대, 고속으로 토글링하는 동작 클록(CLK)에 동기화되어 프로그램 데이터(PDATA<N>, PDATA<N+1>)와 리드 데이터(RDATA)를 전송함으로써 고속 인터페이스 모드에서 전송하게 된다.
그런데, 비휘발성 메모리 장치(720)에서 N번째 프로그램 커맨드(PROG_CMD<N>)에 응답하여 N번째 데이터(PDATA<N>)를 프로그램하는 동작 중에 비휘발성 메모리 장치(720)로 리드 명령(RD_CMD)이 인가되어 내부 데이터(RDATA)를 리드하는 동작이 수행되어야 하거나 N+1번째 프로그램 커맨드(PROG_CMD<N+1>)와 N+1번째 데이터(PDATA<N+1>)가 함께 입력되는 경우 고속 인터페이스 모드에서 저속 인터페이스 모드로 전환되어 동작하게 된다. 예컨대, 저속 인터페이스 모드는 동작 클록(CLK)의 토글링 속도를 이전보다 느리게 제어하는 방식을 사용할 수 있다. 또한, 동작 클록(CLK)의 토글링 속도는 고속 인터페이스 모드에서의 속도를 그대로 유지하면서 비휘발성 메모리 장치(720) 내부에서 동작 클록(CLK)의 토글링과 상관없이 프로그램 동작과 리드 동작 및 데이터 입력 동작을 보다 천천히 수행하는 방식을 사용할 수도 있다. 즉, 저속 인터페이스 모드에 진입해 있는 구간 동안 비휘발성 메모리 장치(720) 내부에서 동작 클록(CLK)의 토글링과 상관없이 프로그램 동작과 리드 동작 및 데이터 입력 동작이 천천히 이루어지도록 함으로써, 동작 클록이 높은 주파수를 갖는 상태에서도 프로그램 동작과 리드 동작의 중복수행 또는 프로그램 동작과 데이터 입력 동작의 중복수행으로 인해 피크 전류(peak current)가 증가하는 것을 억제할 수 있게 된다. 물론, 비휘발성 메모리 장치(720) 내부에서 동작 클록(CLK)의 토글링에 비동기된 상태로 프로그램 동작과 리드 동작 및 데이터 입력 동작을 수행하는 것은 저속 인터페이스 모드에서만 이루어지는 것이고, 저속 인터페이스 모드에서 고속 인터페이스 모드로 전환하는 순간 다시 동작 클록에 동기화되어 동작하게 될 것이다.
전술한 바와 같이 메모리 컨트롤러(700)와 비휘발성 메모리 장치(720)가 상황에 따라 고속 인터페이스 모드와 저속 인터페이스 모드를 번갈아 가면서 동작하도록 하기 위해서는 메모리 컨트롤러(700)에서 비휘발성 메모리 장치(720)가 현재 어떠한 인터페이스 동작 모드로 동작하는지를 판단할 수 있어야 한다.
이를 위해, 비휘발성 메모리 장치(720)에서 메모리 컨트롤러(700)로 인터페이스 동작 모드를 알 수 있는 신호 ?? 도면에 도시되지 않음 ??를 전송하는 방법을 사용할 수 있다. 하지만, 이는, 메모리 컨트롤러(700)와 비휘발성 메모리 장치(720) 사이에 별도의 신호 전송 라인이 하나 더 필요하다는 것을 의미하므로 효율적인 방법이라고 하기는 힘들다.
따라서, 메모리 컨트롤러(700)에서 스스로 비휘발성 메모리 장치(720)가 현재 어떠한 인터페이스 동작 모드로 동작하는지를 판단하기 위해 다음과 같은 방법을 사용할 수 있다.
먼저, 메모리 컨트롤러(700)에서 비휘발성 메모리 장치(720)로 N번째 프로그램 명령(PROG_CMD<N>)과 N번째 데이터(PDATA<N>)를 전송하는 시점을 기준으로 비휘발성 메모리 장치(720) 내부에 저장된 데이터(RDATA)를 리드하기 위한 리드 명령(RD_CMD)을 전송하는 시점 또는 N+1번째 프로그램 명령(PROG_CMD<N+1>)과 N+1번째 데이터(PDATA<N+1>)를 전송하는 시점이 설정된 시간차이가 유지되는 경우 메모리 컨트롤러(700)와 비휘발성 메모리 장치(720)는 고속 인터페이스 모드로 데이터를 입/출력하는 상태라고 판단할 수 있다.
하지만, 메모리 컨트롤러(700)에서 비휘발성 메모리 장치(720)로 N번째 프로그램 명령(PROG_CMD<N>)과 N번째 데이터(PDATA<N>)를 전송하는 시점을 기준으로 비휘발성 메모리 장치(720) 내부에 저장된 데이터(RDATA)를 리드하기 위한 리드 명령(RD_CMD)을 전송하는 시점 또는 N+1번째 프로그램 명령(PROG_CMD<N+1>)과 N+1번째 데이터(PDATA<N+1>)를 전송하는 시점이 설정된 시간차이를 유지하지 못하는 경우 메모리 컨트롤러(700)와 비휘발성 메모리 장치(720)는 저속 인터페이스 모드로 데이터를 입/출력하는 상태라고 판단할 수 있다. 이때, 저속 인터페이스 모드의 지속 구간의 판단기준은, 메모리 컨트롤러(700)에서 비휘발성 메모리 장치(720)로 리드 명령(RD_CMD)을 전송한 시점부터 비휘발성 메모리 장치(720)에서 내부 데이터(RDATA)를 리드하여 메모리 컨트롤러(700)로 출력하는 시점까지가 될 수 있다. 마찬가지로, 저속 인터페이스 모드의 지속구간의 판단기준은, N+1번째 프로그램 명령(PROG_CMD<N+1>)과 N+1번째 데이터(PDATA<N+1>)를 전송하는 시점부터 비휘발성 메모리 장치(720)에서 N+1번째 데이터(PDATA<N+1>)를 저장하는데 충분한 시점까지가 될 수 있다.
이때, 메모리 컨트롤러(700)에서 비휘발성 메모리 장치(720) 사이에서 인터페이스 동작 모드의 판단기준이 되는 설정된 시간차이는, 예컨대, N번째 데이터(PDATA<N>) 또는 N+1번째 데이터(PDATA<N+1>)를 프로그램하기 위해 스펙(SPEC.)에 정의된 최소한의 시간이 될 수 있다. 또한, 저속 인터페이스 모드의 지속구간 판단의 기준이 되는 비휘발성 메모리 장치(720)에서 N+1번째 데이터(PDATA<N+1>)를 저장하는데 충분한 시간이 의미하는 것은, N+1번째 데이터(PDATA<N+1>)가 비휘발성 메모리 장치(720)의 버퍼로 인가되어 래치되는데 필요한 최소한의 시간을 의미한다.
참고로, 도 7에 개시된 비휘발성 메모리 장치(720)는 도 3 및 도 5에서 설명된 비휘발성 메모리 장치를 그대로 적용할 수 있으므로, 여기에서는 더 자세한 설명을 하지 않도록 하겠다.
전술한 바와 같이 도 3과 도 5에 도시된 비휘발성 메모리 장치는 도 7에 도시된 것처럼 비휘발성 메모리 시스템에 적용되어 동작할 수 있다.
도 8은 도 3 내지 도 7에 도시된 본 발명의 실시예에 따른 비휘발성 메모리 장치의 동작에서 프로그램 동작에 필요한 시간과 데이터 입/출력에 필요한 시간을 비교하기 위한 테이블이다.
도 8을 참조하면, 비휘발성 메모리 장치가 NAND 플래시 메모리 장치라고 가정할 때, 프로그램 펄스가 제1 내지 제3 펄스(PGM PV1 PULSE, PGM PV2 PULSE, PGM PV3 PULSE)로 나누어진다.
제1 프로그램 펄스(PGM PV1 PULSE)는 단독으로 4번 반복되며, 그에 따라 필요한 시간은 453.2us이다.
제1 프로그램 펄스(PGM PV1 PULSE)와 제2 프로그램 펄스(PGM PV2 PULSE)가 동시에 4번 반복되며, 그에 따라 필요한 시간은 542us이다.
제1 프로그램 펄스(PGM PV1 PULSE)와 제2 프로그램 펄스(PGM PV2 PULSE) 및 제3 프로그램 펄스(PGM PV3 PULSE)가 동시에 2번 반복되며, 그에 따라 필요한 시간은 293.2us이다.
제2 프로그램 펄스(PGM PV2 PULSE)와 제3 프로그램 펄스(PGM PV3 PULSE)가 동시에 6번 반복되며, 그에 따라 필요한 시간은 746.4us이다.
제3 프로그램 펄스(PGM PV3 PULSE)가 단독으로 7번 반복되며, 그에 따라 필요한 시간은 715.4us이다.
프로그램 동작 중지(suspend)가 일어나는 시점이 제1 프로그램 펄스(PGM PV1 PULSE)가 모두 반복된 이후 발생하는 경우(IMPLEMENTATION1), 프로그램 동작 중지가 풀리고 이어서 다시 프로그램 동작이 수행되어 완료되기까지 필요한 시간은 715.4us + 746.4us가 된다.
프로그램 동작 중지(suspend)가 일어나는 시점이 제2 프로그램 펄스(PGM PV2 PULSE)가 모두 반복된 이후 발생하는 경우(IMPLEMENTATION2), 프로그램 동작 중지가 풀리고 이어서 다시 프로그램 동작이 수행되어 완료되기까지 필요한 시간은 715.4us가 된다.
N번째 데이터(PDATA<N>)에 대한 프로그램 동작 중지(suspend)가 풀리고 이어서 다시 프로그램 동작이 수행될 때, 캐시버퍼(320, 520)에 리드(복사)되어 있는 내부 데이터(RDATA)가 출력(OUTPUT)되고, 이어서 바로 N+1번째 데이터(PDATA<N+1>)가 입력(INPUT)되는데 필요한 시간은 524.288us이다. 이렇게, 프로그램 동작 중지(suspend)가 일어나는 시점이 제1 프로그램 펄스(PGM PV2 PULSE)가 되든 제2 프로그램 펄스(PGM PV2 PULSE)가되든 상관없이 프로그램 동작이 다시 수행되어 완료되기까지 걸리는 시간보다 내부 데이터(RDATA)를 출력하고 이어서 N+1번째 데이터(PDATA<N+1>)를 입력받기 위해 필요한 시간이 더 작은 시간임을 알 수 있다. 즉, 전술한 본 발명의 실시예에서 프로그램 동작이 중지되었다가 풀린 이후 데이터 입/출력이 프로그램 동작과 동시에 수행되는 것은 시간상으로 아무런 문제가 없다는 것을 알 수 있다.
마찬가지로, N번째 데이터(PDATA<N>)에 대한 프로그램 동작 중지(suspend)가 풀리고 이어서 다시 프로그램 동작이 수행될 때, 캐시버퍼(320, 520)가 비어(empty)있는 상태라고 가정하고 N+1번째 데이터(PDATA<N+1>)가 입력(INPUT)되는데 필요한 시간은 262.144us이다. 이렇게, 프로그램 동작 중지(suspend)가 일어나는 시점이 제1 프로그램 펄스(PGM PV2 PULSE)가 되든 제2 프로그램 펄스(PGM PV2 PULSE)가되든 상관없이 프로그램 동작이 다시 수행되어 완료되기까지 걸리는 시간보다 N+1번째 데이터(PDATA<N+1>)를 입력받기 위해 필요한 시간이 더 작은 시간임을 알 수 있다. 즉, 전술한 본 발명의 실시예에서 프로그램 동작이 중지되었다가 풀린 이후 데이터 입/출력이 프로그램 동작과 동시에 수행되는 것은 시간상으로 아무런 문제가 없다는 것을 알 수 있다.
이상에서 설명한 본 발명은 전술한 실시예 및 첨부된 도면에 의해 한정되는 것이 아니고, 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 여러 가지 치환, 변형 및 변경이 가능하다는 것이 본 발명이 속한 기술분야에서 통상의 지식을 가진자에게 있어 명백할 것이다.
예컨대, 전술한 실시예에서 예시한 논리 게이트 및 트랜지스터는 입력되는 신호의 극성에 따라 그 위치 및 종류가 다르게 구현되어야 할 것이다.
300, 500 : 메모리 어레이 310, 510 : 메인버퍼
320, 520 : 캐시버퍼 530 : 더미버퍼
340, 540 : 제어부
700 : 메모리 컨트롤러 720 : 비휘발성 메모리 장치

Claims (27)

  1. 메모리를 제어하는 메모리 컨트롤러; 및
    상기 메모리 컨트롤러의 명령에 따라 리드 및 프로그램 동작을 수행하는 메모리를 포함하고,
    상기 메모리 컨트롤러와 상기 메모리는 고속 인터페이스 모드로 동작하되, 상기 메모리에서 N번째 데이터를 프로그램하는 동작 중에 내부 데이터를 리드하는 동작 또는 N+1번째 데이터를 입력받는 동작이 수행되는 경우 저속 인터페이스 모드로 동작하는 비휘발성 메모리 시스템.
  2. 제1항에 있어서,
    상기 메모리 컨트롤러에서 상기 메모리로 프로그램 동작을 위해 상기 N번째 데이터를 전송하는 시점을 기준으로 상기 내부 데이터를 리드하기 위한 리드 명령을 전송하는 시점 또는 프로그램 동작을 위해 상기 N+1번째 데이터를 전송하는 시점이,
    설정된 시간차이가 유지되는 경우 상기 메모리 컨트롤러와 상기 메모리는 고속 인터페이스 모드를 유지하고,
    상기 설정된 시간차이가 유지되지 못하는 경우 상기 리드 명령이 전송된 시점부터 상기 메모리 내부에서 상기 내부 데이터를 리드하여 출력하는 시점 또는 상기 N+1번째 데이터가 전송된 시점부터 상기 N+1번째 데이터가 상기 메모리에 저장하는데 충분한 시점까지 저속 인터페이스 모드로 전환되는 것을 특징으로 하는 비휘발성 메모리 시스템.
  3. 제1항에 있어서,
    상기 메모리는,
    메모리 어레이;
    상기 N번째 또는 N+1번째 데이터를 상기 메모리 어레이로 프로그램 하기 위한 메인버퍼;
    상기 메인버퍼와의 사이에서 서로간에 상기 N번째 또는 N+1번째 데이터를 복사하고, 상기 메모리 어레이로부터 상기 내부 데이터를 리드하며, 상기 메모리 컨트롤러와의 사이에서 상기 N번째 또는 N+1번째 데이터를 입력받고 상기 내부 데이터를 출력하기 위한 캐시버퍼; 및
    프로그램 명령 및 리드 명령에 응답하여 상기 N번째 또는 N+1번째 데이터를 프로그램하는 동작과 상기 내부 데이터를 리드하는 동작 및 인터페이스 모드 전환동작을 제어하기 위한 제어부를 구비하는 비휘발성 메모리 시스템.
  4. 제3항에 있어서,
    상기 제어부는,
    상기 프로그램 명령에 응답하여 상기 고속 인터페이스 모드로 상기 캐시버퍼로 인가되는 상기 N번째 또는 N+1번째 데이터를 각각 상기 메인버퍼에 복사시킨 후 상기 메모리 어레이에 프로그램시키고,
    상기 리드 명령에 응답하여 상기 고속 인터페이스 모드로 상기 내부 데이터를 상기 캐시버퍼로 리드시킨 뒤 상기 메모리 컨트롤러로 출력시키며,
    상기 N번째 데이터를 프로그램하는 동작 중에 상기 내부 데이터를 리드하는 동작이 수행되어야 하는 경우, 상기 N번째 데이터를 프로그램하는 동작을 중단시킨 후 상기 저속 인터페이스 모드로 전환하여 상기 내부 데이터를 리드하는 동작을 수행시키고, 리드하는 동작이 완료된 후 상기 고속 인터페이스 모드로 전환하여 중단된 상기 N번째 데이터를 프로그램하는 동작을 이어서 수행시키고,
    상기 N번째 데이터를 프로그램하는 동작 중에 상기 N+1번째 데이터를 입력받는 동작이 수행되어야 하는 경우, 상기 저속 인터페이스 모드로 전환하여 상기 N+1번째 데이터를 입력받는 동작을 수행시키고, 입력받는 동작이 완료된 후 상기 고속 인터페이스 모드로 전환하는 비휘발성 메모리 시스템.
  5. 제4항에 있어서,
    상기 N번째 데이터를 프로그램하는 동작이 중단된 구간에서 상기 캐시버퍼에 리드된 상기 내부 데이터는, 상기 N번째 데이터를 프로그램하는 동작이 이어서 수행되는 구간에서 상기 메모리 컨트롤러로 출력되며,
    상기 캐시버퍼로 입력된 상기 N+1번째 데이터는, 상기 N번째 데이터를 프로그램하는 동작이 종료된 후 상기 메인버퍼로 복사되어 상기 메모리 어레이로 프로그램되는 것을 특징으로 하는 비휘발성 메모리 시스템.
  6. 제5항에 있어서,
    상기 N번째 데이터가 프로그램되는 상기 메모리 어레이의 영역과,
    상기 N+1번째 데이터가 프로그램되는 상기 메모리 어레이의 영역, 및
    상기 내부 데이터가 리드되는 상기 메모리 어레이의 영역은 각각 서로 다른 것을 특징으로 하는 비휘발성 메모리 시스템.
  7. 제5항에 있어서,
    상기 N번째 또는 N+1번째 데이터를 프로그램하는 동작과 상기 내부 데이터를 리드하는 동작 및 상기 N번째 또는 N+1번째 데이터를 입력받는 동작은,
    상기 캐시버퍼가 비어(empty)있는 상태일 때 수행되는 것을 특징으로 하는 비휘발성 메모리 시스템.
  8. 제1항에 있어서,
    상기 메모리는,
    메모리 어레이;
    상기 N번째 또는 N+1번째 데이터를 상기 메모리 어레이로 프로그램하거나 상기 메모리 어레이로부터 상기 내부 데이터를 리드하기 위한 메인버퍼;
    상기 메인버퍼와의 사이에서 서로간에 N번째 또는 N+1번째 데이터와 상기 내부 데이터를 복사하며, 상기 메모리 컨트롤러와의 사이에서 상기 N번째 또는 N+1번째 데이터를 입력받고 상기 내부 데이터를 출력하기 위한 캐시버퍼;
    상기 메인버퍼와의 사이에서 서로간에 상기 N번째 또는 N+1번째 데이터를 복사하는 더미버퍼; 및
    프로그램 명령 및 리드 명령에 응답하여 상기 N번째 또는 N+1번째 데이터를 프로그램하는 동작과 상기 내부 데이터를 리드하는 동작 및 인터페이스 모드 전환동작을 제어하기 위한 제어부를 구비하는 비휘발성 메모리 시스템.
  9. 제8항에 있어서,
    상기 제어부는,
    상기 프로그램 명령에 응답하여 상기 고속 인터페이스 모드로 상기 캐시버퍼로 인가되는 상기 N번째 또는 N+1번째 데이터를 각각 상기 메인버퍼에 복사시킨 후 상기 메모리 어레이에 프로그램시키고,
    상기 리드 명령에 응답하여 상기 고속 인터페이스 모드로 상기 내부 데이터를 상기 메인버퍼로 리드시킨 뒤 상기 캐시버퍼에 복사시킨 후 상기 메모리 컨트롤러로 출력시키며,
    상기 N번째 데이터를 프로그램하는 동작 중에 상기 내부 데이터를 리드하는 동작이 수행되어야 하는 경우, 상기 N번째 데이터를 프로그램하는 동작을 중단시킨 후 상기 저속 인터페이스 모드로 전환하여 상기 메인버퍼에 저장된 상기 N번째 데이터를 상기 더미버퍼로 복사시킨 뒤 상기 내부 데이터를 리드하는 동작을 수행시키고, 리드하는 동작이 완료된 후 상기 고속 인터페이스 모드로 전환하여 상기 더미버퍼에 저장된 상기 N번째 데이터를 상기 메인버퍼에 복사시킨 뒤 중단된 상기 N번째 데이터를 프로그램하는 동작을 이어서 수행시키고,
    상기 N번째 데이터를 프로그램하는 동작 중에 상기 N+1번째 데이터를 입력받는 동작이 수행되어야 하는 경우, 상기 저속 인터페이스 모드로 전환하여 상기 N+1번째 데이터를 입력받는 동작을 수행시키고, 입력받는 동작이 완료된 후 상기 고속 인터페이스 모드로 전환하는 비휘발성 메모리 시스템.
  10. 제9항에 있어서,
    상기 N번째 데이터를 프로그램하는 동작이 중단된 구간에서 상기 메인버퍼로 리드되어 상기 캐시버퍼에 복사된 상기 내부 데이터는, 상기 N번째 데이터를 프로그램하는 동작이 이어서 수행되는 구간에서 상기 메모리 컨트롤러로 출력되며,
    상기 캐시버퍼로 입력된 상기 N+1번째 데이터는, 상기 N번째 데이터를 프로그램하는 동작이 종료된 후 상기 메인버퍼로 복사되어 상기 메모리 어레이로 프로그램되는 것을 특징으로 하는 비휘발성 메모리 시스템.
  11. 제10항에 있어서,
    상기 N번째 데이터가 프로그램되는 상기 메모리 어레이의 영역과,
    상기 N+1번째 데이터가 프로그램되는 상기 메모리 어레이의 영역, 및
    상기 내부 데이터가 리드되는 상기 메모리 어레이의 영역은 각각 서로 다른 것을 특징으로 하는 비휘발성 메모리 시스템.
  12. 제10항에 있어서,
    상기 N번째 또는 N+1번째 데이터를 프로그램하는 동작과 상기 내부 데이터를 리드하는 동작 및 상기 N번째 또는 N+1번째 데이터를 입력받는 동작은,
    상기 캐시버퍼가 비어(empty)있는 상태일 때 수행되는 것을 특징으로 하는 비휘발성 메모리 시스템.
  13. 고속 인터페이스 모드로 설정하는 제1 모드 설정 단계;
    N번째 데이터를 입력받아 래치하는 제1 래치단계;
    상기 N번째 데이터를 메모리 어레이에 프로그램하는 프로그램 단계;
    상기 프로그램 단계의 동작 중 N+1번째 데이터가 입력되는 경우 저속 인터페이스 모드로 전환된 후 입력된 상기 N+1번째 데이터를 래치하는 제2 래치단계;
    상기 프로그램 단계의 동작 중 리드 명령이 입력되는 경우 상기 저속 인터페이스 모드로 전환된 후 상기 메모리 어레이에 프로그램된 내부 데이터를 리드하는 리드단계; 및
    상기 제2 래치단계 또는 상기 리드단계의 동작이 완료된 후 고속 인터페이스 모드로 설정하는 제2 모드 설정 단계
    를 포함하는 비휘발성 메모리 장치의 동작방법.
  14. 제13항에 있어서,
    상기 리드단계에 진입하는 경우 상기 저속 인터페이스 모드로 전환되기 전에 상기 프로그램 단계의 동작을 중단하는 일시정지 단계; 및
    상기 리드단계의 동작 완료에 대응하여 상기 제2 모드 설정 단계에 진입하는 경우 상기 제2 모드 설정 단계의 진입과 동시에 상기 일시정지 단계에서 중단된 상기 프로그램 단계의 동작을 이어서 수행하는 프로그램 계속단계를 더 포함하는 비휘발성 메모리 장치의 동작방법.
  15. 제14항에 있어서,
    상기 프로그램 계속단계의 동작이 수행되는 구간에서 상기 리드단계에서 리드된 상기 내부 데이터를 외부로 출력하는 단계를 더 포함하는 비휘발성 메모리 장치의 동작방법.
  16. 제13항에 있어서,
    상기 제2 래치 단계의 동작 완료에 대응하여 상기 제2 모드 설정 단계에 진입하는 경우 상기 프로그램 단계의 동작이 완료된 이후 상기 제2 래치 단계에서 래치된 상기 N+1번째 데이터를 상기 메모리 어레이에 프로그램하는 제2 프로그램 단계를 더 포함하는 비휘발성 메모리 장치의 동작방법.
  17. 제16항에 있어서,
    상기 프로그램 단계에서 상기 N번째 데이터가 프로그램되는 상기 메모리 어레이의 영역과,
    상기 제2 프로그램 단계에서 상기 N+1번째 데이터가 프로그램되는 상기 메모리 어레이의 영역, 및
    상기 리드 단계에서 상기 내부 데이터가 리드되는 상기 메모리 어레이의 영역은 각각 서로 다른 것을 특징으로 하는 비휘발성 메모리 장치의 동작방법.
  18. 메모리 어레이;
    연속으로 외부에서 인가되는 N번째 또는 N+1번째 데이터를 상기 메모리 어레이로 프로그램 하기 위한 메인버퍼;
    상기 메인버퍼와의 사이에서 서로간에 상기 N번째 또는 N+1번째 데이터를 복사하고, 상기 메모리 어레이로부터 내부 데이터를 리드하며, 외부에서 인가되는 상기 N번째 또는 N+1번째 데이터를 입력받고 상기 내부 데이터를 외부로 출력하기 위한 캐시버퍼; 및
    프로그램 명령 및 리드 명령에 응답하여 상기 N번째 또는 N+1번째 데이터를 각각 프로그램하는 동작과 상기 내부 데이터를 리드하는 동작을 고속 인터페이스 모드에서 수행시키되, 상기 N번째 데이터를 프로그램하는 동작 중에 상기 내부 데이터를 리드하는 동작 또는 상기 N+1번째 데이터를 입력받는 동작이 수행되어야 하는 경우 저속 인터페이스 모드에서 수행시키는 제어부
    를 구비하는 비휘발성 메모리 장치.
  19. 제18항에 있어서,
    상기 제어부는,
    상기 프로그램 명령에 응답하여 상기 고속 인터페이스 모드로 상기 캐시버퍼로 인가되는 상기 N번째 또는 N+1번째 데이터를 각각 상기 메인버퍼에 복사시킨 후 상기 메모리 어레이에 프로그램시키고,
    상기 리드 명령에 응답하여 상기 고속 인터페이스 모드로 상기 내부 데이터를 상기 캐시버퍼로 리드시킨 뒤 외부로 출력시키며,
    상기 N번째 데이터를 프로그램하는 동작 중에 상기 내부 데이터를 리드하는 동작이 수행되어야 하는 경우, 상기 N번째 데이터를 프로그램하는 동작을 중단시킨 후 상기 저속 인터페이스 모드로 전환하여 상기 내부 데이터를 리드하는 동작을 수행시키고, 리드하는 동작이 완료된 후 상기 고속 인터페이스 모드로 전환하여 중단된 상기 N번째 데이터를 프로그램하는 동작을 이어서 수행시키고,
    상기 N번째 데이터를 프로그램하는 동작 중에 상기 N+1번째 데이터를 입력받는 동작이 수행되어야 하는 경우, 상기 저속 인터페이스 모드로 전환하여 상기 N+1번째 데이터를 입력받는 동작을 수행시키고, 입력받는 동작이 완료된 후 상기 고속 인터페이스 모드로 전환하는 비휘발성 메모리 장치.
  20. 제19항에 있어서,
    상기 N번째 데이터를 프로그램하는 동작이 중단된 구간에서 상기 캐시버퍼에 리드된 상기 내부 데이터는, 상기 N번째 데이터를 프로그램하는 동작이 이어서 수행되는 구간에서 외부로 출력되며,
    상기 캐시버퍼로 입력된 상기 N+1번째 데이터는, 상기 N번째 데이터를 프로그램하는 동작이 종료된 후 상기 메인버퍼로 복사되어 상기 메모리 어레이로 프로그램되는 것을 특징으로 하는 비휘발성 메모리 장치.
  21. 제20항에 있어서,
    상기 N번째 데이터가 프로그램되는 상기 메모리 어레이의 영역과,
    상기 N+1번째 데이터가 프로그램되는 상기 메모리 어레이의 영역, 및
    상기 내부 데이터가 리드되는 상기 메모리 어레이의 영역은 각각 서로 다른 것을 특징으로 하는 비휘발성 메모리 장치.
  22. 제20항에 있어서,
    상기 N번째 또는 N+1번째 데이터를 프로그램하는 동작과 상기 내부 데이터를 리드하는 동작 및 상기 N번째 또는 N+1번째 데이터를 입력받는 동작은,
    상기 캐시버퍼가 비어(empty)있는 상태일 때 수행되는 것을 특징으로 하는 비휘발성 메모리 장치.
  23. 메모리 어레이;
    연속으로 외부에서 인가되는 N번째 또는 N+1번째 데이터를 상기 메모리 어레이로 프로그램하거나 상기 메모리 어레이로부터 내부 데이터를 리드하기 위한 메인버퍼;
    상기 메인버퍼와의 사이에서 서로간에 상기 N번째 또는 N+1번째 데이터와 상기 내부 데이터를 복사하며, 외부에서 인가되는 상기 N번째 또는 N+1번째 데이터를 입력받고 상기 내부 데이터를 외부로 출력하기 위한 캐시버퍼;
    상기 메인버퍼와의 사이에서 서로간에 상기 N번째 또는 N+1번째 데이터를 복사하는 더미버퍼; 및
    프로그램 명령 및 리드 명령에 응답하여 상기 N번째 또는 N+1번째 데이터를 각각 프로그램하는 동작과 상기 내부 데이터를 리드하는 동작을 고속 인터페이스 모드에서 수행시키되, 상기 N번째 데이터를 프로그램하는 동작 중에 상기 내부 데이터를 리드하는 동작 또는 상기 N+1번째 데이터를 입력받는 동작이 수행되어야 하는 경우 저속 인터페이스 모드에서 수행시키는 제어부
    를 구비하는 비휘발성 메모리 장치.
  24. 제23항에 있어서,
    상기 제어부는,
    상기 프로그램 명령에 응답하여 상기 고속 인터페이스 모드로 상기 캐시버퍼로 인가되는 상기 N번째 또는 N+1번째 데이터를 각각 상기 메인버퍼에 복사시킨 후 상기 메모리 어레이에 프로그램시키고,
    상기 리드 명령에 응답하여 상기 고속 인터페이스 모드로 상기 내부 데이터를 상기 메인버퍼로 리드시킨 뒤 상기 캐시버퍼에 복사시킨 후 외부로 출력시키며,
    상기 N번째 데이터를 프로그램하는 동작 중에 상기 내부 데이터를 리드하는 동작이 수행되어야 하는 경우, 상기 N번째 데이터를 프로그램하는 동작을 중단시킨 후 상기 저속 인터페이스 모드로 전환하여 상기 메인버퍼에 저장된 상기 N번째 데이터를 상기 더미버퍼로 복사시킨 뒤 상기 내부 데이터를 리드하는 동작을 수행시키고, 리드하는 동작이 완료된 후 상기 고속 인터페이스 모드로 전환하여 상기 더미버퍼에 저장된 상기 N번째 데이터를 상기 메인버퍼에 복사시킨 뒤 중단된 상기 N번째 데이터를 프로그램하는 동작을 이어서 수행시키고,
    상기 N번째 데이터를 프로그램하는 동작 중에 상기 N+1번째 데이터를 입력받는 동작이 수행되어야 하는 경우, 상기 저속 인터페이스 모드로 전환하여 상기 N+1번째 데이터를 입력받는 동작을 수행시키고, 입력받는 동작이 완료된 후 상기 고속 인터페이스 모드로 전환하는 비휘발성 메모리 장치.
  25. 제24항에 있어서,
    상기 N번째 데이터를 프로그램하는 동작이 중단된 구간에서 상기 메인버퍼로 리드되어 상기 캐시버퍼에 복사된 상기 내부 데이터는, 상기 N번째 데이터를 프로그램하는 동작이 이어서 수행되는 구간에서 외부로 출력되며,
    상기 캐시버퍼로 입력된 상기 N+1번째 데이터는, 상기 N번째 데이터를 프로그램하는 동작이 종료된 후 상기 메인버퍼로 복사되어 상기 메모리 어레이로 프로그램되는 것을 특징으로 하는 비휘발성 메모리 장치.
  26. 제25항에 있어서,
    상기 N번째 데이터가 프로그램되는 상기 메모리 어레이의 영역과,
    상기 N+1번째 데이터가 프로그램되는 상기 메모리 어레이의 영역, 및
    상기 내부 데이터가 리드되는 상기 메모리 어레이의 영역은 각각 서로 다른 것을 특징으로 하는 비휘발성 메모리 장치.
  27. 제25항에 있어서,
    상기 N번째 또는 N+1번째 데이터를 프로그램하는 동작과 상기 내부 데이터를 리드하는 동작 및 상기 N번째 또는 N+1번째 데이터를 입력받는 동작은,
    상기 캐시버퍼가 비어(empty)있는 상태일 때 수행되는 것을 특징으로 하는 비휘발성 메모리 장치.

KR1020130062465A 2013-05-31 2013-05-31 비휘발성 메모리 장치 및 그의 동작방법과 비휘발성 메모리 장치를 포함하는 시스템 KR20140142759A (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1020130062465A KR20140142759A (ko) 2013-05-31 2013-05-31 비휘발성 메모리 장치 및 그의 동작방법과 비휘발성 메모리 장치를 포함하는 시스템
TW102145444A TWI614753B (zh) 2013-05-31 2013-12-10 非揮發性記憶體裝置、操作其之方法及包含其之系統
US14/103,505 US9378134B2 (en) 2013-05-31 2013-12-11 Non-volatile memory device capable of minimizing instant current consumption and performing memory operations in parallel, and method for operating the same, and system including the same
CN201410101452.9A CN104217759B (zh) 2013-05-31 2014-03-18 非易失性存储装置、其操作方法及包括其的系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020130062465A KR20140142759A (ko) 2013-05-31 2013-05-31 비휘발성 메모리 장치 및 그의 동작방법과 비휘발성 메모리 장치를 포함하는 시스템

Publications (1)

Publication Number Publication Date
KR20140142759A true KR20140142759A (ko) 2014-12-15

Family

ID=51986494

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130062465A KR20140142759A (ko) 2013-05-31 2013-05-31 비휘발성 메모리 장치 및 그의 동작방법과 비휘발성 메모리 장치를 포함하는 시스템

Country Status (4)

Country Link
US (1) US9378134B2 (ko)
KR (1) KR20140142759A (ko)
CN (1) CN104217759B (ko)
TW (1) TWI614753B (ko)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160131268A (ko) * 2015-05-06 2016-11-16 에스케이하이닉스 주식회사 저장 장치 및 이의 동작 방법
KR20190043859A (ko) * 2017-10-19 2019-04-29 에스케이하이닉스 주식회사 저장 장치 및 그 동작 방법
US10942676B2 (en) 2018-07-17 2021-03-09 SK Hynix Inc. Data storage device for determining a write mode, operation method thereof and storage system having the same
US11133060B2 (en) 2018-09-21 2021-09-28 SK Hynix Inc. Data storage device and operating method thereof

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9933954B2 (en) * 2015-10-19 2018-04-03 Nxp Usa, Inc. Partitioned memory having pipeline writes
US10379747B2 (en) * 2015-12-21 2019-08-13 Western Digital Technologies, Inc. Automated latency monitoring
KR102596400B1 (ko) * 2016-03-07 2023-11-01 에스케이하이닉스 주식회사 데이터 저장 장치 및 데이터 저장 장치의 동작 방법
US10628279B2 (en) * 2017-02-28 2020-04-21 International Business Machines Corporation Memory management in multi-processor environments based on memory efficiency
KR102535243B1 (ko) * 2017-12-18 2023-05-23 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작 방법
US10642519B2 (en) 2018-04-06 2020-05-05 Western Digital Technologies, Inc. Intelligent SAS phy connection management
CN110554971A (zh) * 2018-06-01 2019-12-10 北京兆易创新科技股份有限公司 一种在编程期间响应读操作的方法、装置及存储介质
KR102520540B1 (ko) * 2018-10-23 2023-04-12 에스케이하이닉스 주식회사 메모리 장치 및 이의 동작 방법
CN110175179B (zh) * 2019-04-15 2021-09-10 浙江大华技术股份有限公司 数据传输方法及系统、服务节点、存储装置

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI259952B (en) * 2002-01-31 2006-08-11 Macronix Int Co Ltd Data erase method of flash memory
US7173863B2 (en) * 2004-03-08 2007-02-06 Sandisk Corporation Flash controller cache architecture
US7206230B2 (en) 2005-04-01 2007-04-17 Sandisk Corporation Use of data latches in cache operations of non-volatile memories
KR100816748B1 (ko) * 2006-03-16 2008-03-27 삼성전자주식회사 프로그램 서스펜드/리줌 모드를 지원하는 상 변화 메모리장치 및 그것의 프로그램 방법
US7499339B2 (en) * 2006-07-19 2009-03-03 Sandisk Corporation High-performance flash memory data transfer
US7752476B2 (en) * 2006-05-17 2010-07-06 Advanced Micro Devices, Inc. Fast transition from low-speed mode to high-speed mode in high-speed interfaces
KR100908542B1 (ko) 2007-12-24 2009-07-20 주식회사 하이닉스반도체 불휘발성 메모리 소자 및 그 프로그램 방법
US8495400B2 (en) * 2008-09-30 2013-07-23 Seagate Technology Llc Energy-efficient transitioning among device operating modes
US8321703B2 (en) * 2009-12-12 2012-11-27 Microsoft Corporation Power aware memory allocation
JP5521816B2 (ja) * 2010-06-18 2014-06-18 富士通株式会社 記憶装置、制御装置および記憶装置の制御方法
US8514611B2 (en) * 2010-08-04 2013-08-20 Freescale Semiconductor, Inc. Memory with low voltage mode operation
US8578110B2 (en) * 2010-10-12 2013-11-05 Hitachi, Ltd. Memory data backup system and memory data backup control method
US20120233394A1 (en) * 2011-03-10 2012-09-13 Skymedi Corporation Memory controller and a controlling method adaptable to dram
KR20130034522A (ko) * 2011-09-28 2013-04-05 삼성전자주식회사 비휘발성 메모리 장치의 데이터 리드 방법, 및 이를 수행하는 장치

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160131268A (ko) * 2015-05-06 2016-11-16 에스케이하이닉스 주식회사 저장 장치 및 이의 동작 방법
KR20190043859A (ko) * 2017-10-19 2019-04-29 에스케이하이닉스 주식회사 저장 장치 및 그 동작 방법
US10942676B2 (en) 2018-07-17 2021-03-09 SK Hynix Inc. Data storage device for determining a write mode, operation method thereof and storage system having the same
US11133060B2 (en) 2018-09-21 2021-09-28 SK Hynix Inc. Data storage device and operating method thereof

Also Published As

Publication number Publication date
US20140359204A1 (en) 2014-12-04
US9378134B2 (en) 2016-06-28
CN104217759B (zh) 2019-08-06
TWI614753B (zh) 2018-02-11
TW201445571A (zh) 2014-12-01
CN104217759A (zh) 2014-12-17

Similar Documents

Publication Publication Date Title
US9378134B2 (en) Non-volatile memory device capable of minimizing instant current consumption and performing memory operations in parallel, and method for operating the same, and system including the same
US8625376B2 (en) Semiconductor memory device and method of operation the same
US9183143B2 (en) Memory device that specifies a size of a segment of write data
KR100626391B1 (ko) 원낸드 플래시 메모리 및 그것을 포함한 데이터 처리시스템
KR100754226B1 (ko) 비휘발성 데이터 저장장치의 프로그래밍 방법 및 그 장치
JP2008192266A (ja) メモリコントローラ
JPWO2003085676A1 (ja) 不揮発性記憶装置
CN107544748B (zh) 固态储存装置及其数据写入方法
KR101201838B1 (ko) 프로그램 시간을 감소시킨 비휘발성 메모리 장치
JP4490189B2 (ja) デュアルレジスタを有するページバッファ、これを備えた半導体メモリ装置及びそのプログラム方法
US9508400B1 (en) Storage device and operating method thereof
KR102653659B1 (ko) 메모리 시스템, 메모리 컨트롤러 및 동작 방법
KR100825015B1 (ko) 반도체 플래시 메모리 장치 및 그 구동방법
KR100635202B1 (ko) 듀얼 레지스터를 갖는 페이지 버퍼의 제어방법 및 그제어회로
KR20120088454A (ko) 비휘발성 메모리 시스템 및 비휘발성 메모리 장치와, 이를 위한 프로그램 방법
US8842474B2 (en) Nonvolatile memory device and nonvolatile memory system including the same
KR100967026B1 (ko) 불휘발성 메모리 장치 및 그 캐쉬리드 방법
KR20220075684A (ko) 메모리 시스템 및 메모리 시스템의 동작 방법
CN112037841B (zh) 存储器装置及其操作方法
CN101123117B (zh) 非易失性存储器装置及其操作方法
JP2006127623A (ja) 半導体記憶装置とそのアクセス方法
US8472248B2 (en) Semiconductor memory and control method thereof
JP2011198409A (ja) 不揮発性メモリ
KR20060031989A (ko) 낸드 플래시 메모리 소자의 페이지 버퍼
KR20220112169A (ko) 반도체 장치 및 연속 독출 방법

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid