KR101847315B1 - 비휘발성 메모리 디바이스의 휘발성 메모리 구조 및 관련 컨트롤러 - Google Patents

비휘발성 메모리 디바이스의 휘발성 메모리 구조 및 관련 컨트롤러 Download PDF

Info

Publication number
KR101847315B1
KR101847315B1 KR1020167011108A KR20167011108A KR101847315B1 KR 101847315 B1 KR101847315 B1 KR 101847315B1 KR 1020167011108 A KR1020167011108 A KR 1020167011108A KR 20167011108 A KR20167011108 A KR 20167011108A KR 101847315 B1 KR101847315 B1 KR 101847315B1
Authority
KR
South Korea
Prior art keywords
data
register
volatile memory
array
memory device
Prior art date
Application number
KR1020167011108A
Other languages
English (en)
Other versions
KR20160062119A (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 마이크론 테크놀로지, 인크.
Publication of KR20160062119A publication Critical patent/KR20160062119A/ko
Application granted granted Critical
Publication of KR101847315B1 publication Critical patent/KR101847315B1/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
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/04Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
    • G11C16/0483Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
    • 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
    • G11C2207/00Indexing scheme relating to arrangements for writing information into, or reading information out from, a digital store
    • G11C2207/10Aspects relating to interfaces of memory device to external buses
    • G11C2207/104Embedded memory devices, e.g. memories with a processing device on the same die or ASIC memory designs
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2207/00Indexing scheme relating to arrangements for writing information into, or reading information out from, a digital store
    • G11C2207/22Control and timing of internal memory operations
    • G11C2207/2209Concurrent read and write
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2216/00Indexing scheme relating to G11C16/00 and subgroups, for features not directly covered by these groups
    • G11C2216/12Reading and writing aspects of erasable programmable read-only memories
    • G11C2216/22Nonvolatile memory in which reading can be carried out from one memory bank or array whilst a word or sector in another bank or array is being erased or programmed simultaneously

Abstract

일부 실시예에서, 비휘발성 메모리의 일 레지스터가 판독 작동에 사용될 수 있고, 비휘발성 메모리의 다른 레지스터가 프로그래밍 작동에 사용될 수 있다. 예를 들어, NAND 플래시 메모리의 캐시 레지스터가 판독 작동과 연계하여 사용될 수 있고, NAND 플래시 메모리의 데이터 레지스터가 프로그래밍 작동과 연계하여 사용될 수 있다. NAND 플래시 메모리 디바이스와 같은 복수의 비휘발성 메모리 디바이스의 데이터 레지스터들은 일부 실시예에 따라, 매니지드 메모리 디바이스 내에 분산형 휘발성 캐시(DVC) 구조를 구현할 수 있다. 소정의 실시예에 따르면, 데이터는 레지스터 간에 이동 및/또는 교환(swap)될 수 있어서, 다른 작동이 수행될 때 저장된 데이터를 소실하지 않으면서 비휘발성 메모리 디바이스에서 소정의 작동을 수행할 수 있다.

Description

비휘발성 메모리 디바이스의 휘발성 메모리 구조 및 관련 컨트롤러 {VOLATILE MEMORY ARCHITECTURE IN NON-VOLATILE MEMORY DEVICES AND RELATED CONTROLLERS}
발명의 실시예는 일반적으로 전자 장치에 관한 것이고, 특히, 비휘발성 메모리 디바이스 및/또는 관련 컨트롤러에 관한 것이다.
NAND 플래시 메모리 디바이스와 같은 비휘발성 메모리 디바이스가 매니지드 메모리 디바이스(managed memory devices)에 통합될 수 있다. 매니지드 메모리 디바이스의 임베디드 컨트롤러 및 관련 펌웨어는 호스트 플랫폼으로부터 판독 및/또는 프로그래밍 요청을, 구축된 프로토콜에 기초하여 비휘발성 메모리 디바이스에 대한 명령들의 시퀀스로 변환할 수 있다. 예를 들어, 임베디드 컨트롤러는 호스트로부터의 요청을, 오픈 NAND 플래시 인터페이스(ONFI) 프로토콜에 따라 NAND 플래시 메모리 디바이스를 위한 명령으로 변환할 수 있다. 매니지드 메모리 디바이스의 컨트롤러의, 정적 랜덤 액세스 메모리(SRAM)과 같은, 휘발성 메모리가 점점 더 많은 영역을 차지하고 있고, 이러한 컨트롤러를 더 비싸게 만든다.
임베디드 멀티미디어 카드(eMMC) 디바이스는 매니지드 메모리 디바이스의 예다. eMMC 디바이스의 펌웨어는 블록 기록 요청을 NAND 플래시 메모리 디바이스를 위한 판독 및/또는 프로그래밍 명령들의 시퀀스로 변환할 수 있다. 일부 예에서, 사용자 데이터의 실제 프로그래밍은 NAND 페이지-프로그래밍 명령을 이용하여 이루어질 수 있다. NAND 플래시 메모리 디바이스의, 데이터 레지스터 및 캐시 레지스터와 같은, 레지스터들의 구조 및 프로토콜의 현 규정은 매니지드 메모리 디바이스의 성능을 제한할 수 있다.
따라서, 매니지드 메모리 디바이스의 성능을 개선시킬 필요가 있다. 매니지드 메모리 디바이스의 컨트롤러의 휘발성 메모리 양을 감소시킬 필요가 또한 있다.
여기서의 도면 및 관련 설명은 발명의 구체적 실시예들을 예시하기 위해 제공되며, 제한적이고자 함이 아니다.
도 1은 예시적 NAND 플래시 메모리 디바이스의 블록도다.
도 2는 NAND 플래시 메모리 어레이에 데이터를 프로그래밍하는 기존 방식을 예시하는 매니지드 메모리 디바이스의 도면이다.
도 3은 일 실시예에 따라, NAND 플래시 메모리 디바이스의 페이지 프로그래밍 작동을 나타내는 매니지드 메모리 디바이스의 도면이다.
도 4는 일 실시예에 따라, 판독 명령을 위한, 그리고, 프로그래밍 명령을 위한, NAND 플래시 디바이스의 개별 레지스터의 이용을 나타내는 매니지드 메모리 디바이스의 도면이다.
도 5는 일 실시예에 따라, 레지스터에 저장되었으나 NAND 플래시 메모리 어레이에 아직 프로그래밍되지 않은, 데이터의 판독을 나타내는 매니지드 메모리 디바이스의 도면이다.
도 6은 일 실시예에 따라, NAND 플래시 메모리 디바이스의 페이지 프로그래밍 작동을 나타내는 매니지드 메모리 디바이스의 도면이다.
도 7은 일 실시예에 따라, 캐시 레지스터로부터의 데이터가 데이터 레지스터에 전달되도록, NAND 플래시 메모리 어레이로부터 인터리빙된 판독을 나타내는 매니지드 메모리 디바이스의 도면이다.
도 8은 일 실시예에 따라, 분산형 휘발성 캐시를 구현하는 복수의 NAND 플래시 메모리 디바이스를 포함하는 매니지드 메모리 디바이스의 블록도다.
도 9는 다른 실시예에 따른, 예시적 NAND 플래시 메모리 디바이스의 도면이다.
도 10A 및 10B는 다-평면 NAND 플래시 메모리 디바이스의 레지스터들 간 데이터 스와핑 실시예를 나타내는 도면이다.
도 11A, 11B, 11C는 일 실시예에 따라, 제 2 데이터 판독을 위한 인터리빙된 캐시 판독 작동을 이용하여 레지스터에 제 1 데이터를 일시적으로 로딩하는 프로세스를 나타내는 도면이다.
도 12A, 12B, 12C는 일 실시예에 따라, 어레이에 제 2 데이터를 프로그래밍하기 위한 인터리빙된 캐시 프로그래밍 작동을 이용하여, 레지스터에 제 1 데이터를 일시적으로 로딩하는 프로세스를 나타내는 도면이다.
설명의 반복을 피하기 위해, 동일 또는 유사 기능을 가진 구성요소들은 동일한 도면 부호로 표시될 수 있다.
여기서 특정 실시예들이 설명되지만, 여기서 제시되는 모든 장점 및 특징들을 제공하지 않는 실시예들을 포함한, 다른 실시예들이 당 업자에게 명백할 것이다.
앞서 논의한 바와 같이, NAND 플래시 메모리 디바이스의, 데이터 레지스터 및 캐시 레지스터와 같은, 레지스터들의 구조 및/또는 프로토콜의 현재 규정은 매니지드 메모리 디바이스의 성능을 제한할 수 있다. 예를 들어, 데이터 레지스터 및 캐시 레지스터가 NAND 플래시 메모리의 판독 명령 및 기록 명령에 모두 사용됨을 명시함으로써, 매니지드 메모리 디바이스의 성능이 제한될 수 있다. 랜덤 기록 작동으로 또한 불릴 수 있는 랜덤 프로그래밍 작동에 의해 성능이 제한될 수 있다.
매니지드 메모리 디바이스의 랜덤 프로그래밍 성능을 처리하는 한가지 방식은 고형 디스크(SSD) 또는 eMMC 디바이스 내에 휘발성 캐시를 구현하는 것이다. 휘발성 캐시를 이용하여, 비교적 빠른 프로그래밍 작동이 수행될 수 있다. 이러한 성능은 NAND 플래시 메모리 및/또는 다른 비휘발성 메모리의 초당 입/출력 작동(IOPS)을 개선시킬 수 있다. 이와 동시에, 휘발성 캐시는 컨트롤러의 크기를 크게 증가시킬 수 있다. 컨트롤러의 크기 증가는 비용을 높일 수 있다.
일반적으로 설명하자면, 본 발명의 형태들은 비휘발성 메모리와 연관된 컨트롤러 상에 비교적 제한된 양의 휘발성 메모리를 이용하면서 비휘발성 메모리 디바이스를 위한 비교적 우수한 랜덤 프로그래밍 성능의 실현에 관련된다. NAND 플래시 메모리 디바이스의 레지스터 구조가 여기서 설명된다. 판독 작동 및 프로그래밍 작동을 위해 개별 레지스터들이 사용될 수 있다. 이와 같이, 소정의 실시예에 따라, NAND 플래시 메모리 디바이스의 하나의 레지스터가 프로그래밍 작동에 사용될 수 있고, NAND 플래시 메모리 디바이스의 다른 레지스터가 판독 작동에 동시에 사용될 수 있다. 예를 들어, 캐시 레지스터가 판독 작동에 사용될 수 있고 데이털 레지스터가 프로그래밍 작동에 사용될 수 있다. 여기서 설명되는 일부 레지스터 구조는 레지스터들 간에 데이터 스와핑을 실현시킬 수 있다. 따라서, 메모리 어레이에 프로그래밍될 제 1 데이터는 레지스터에 로딩될 수 있고, 레지스터에 로딩된 제 1 데이터를 보존하면서 인터리빙된 판독 및/또는 인터리빙된 프로그래밍 작동이 실행될 수 있다. 예를 들어, 메모리 어레이에 프로그래밍될 제 1 데이터는 캐시 레지스터와 데이터 레지스터 사이에서 스와핑되어, 제 1 데이터를 보존하면서 하나 이상의 다른 판독 및/또는 프로그래밍 작동을 수행할 수 있다. 다른 예로서, 메모리 어레이에 프로그래밍될 제 1 데이터는 캐시 레지스터로부터, 데이터 및 캐시 레지스터와는 별개인 가상 캐시 레지스터로 옮겨질 수 있고, 이와 함께 하나 이상의 판독 및/또는 프로그래밍 작동이 실행된다. 그 후, 메모리 어레이에 프로그래밍될 제 1 데이터가 가상 캐시 레지스터로부터 캐시 레지스터로 다시 이동할 수 있다. NAND 플래시 메모리 디바이스의 레지스터는 소정의 실시예에서, 매니지드 메모리 디바이스 내 분산형 가상 캐시를 구현할 수 있다. 이는 랜덤 판독 작동의 성능에 거의 또는 전혀 영향없이 랜덤 프로그래밍 작동의 성능을 고양시킬 수 있다. 일부 실시예에서, 하나 이상의 데이터 레지스터가 분산형 가상 캐시를 구현할 수 있다. 예시 용도로 NAND 플래시 메모리 디바이스를 참조하여 여기서 일부 예가 설명되지만, 여기서 설명되는 원리 및 장점들이 임의의 적절한 비휘발성 메모리 디바이스와 연계하여 구현될 수 있음을 이해할 수 있을 것이다. 예를 들어, 여기서 설명되는 원리 및 장점들이 상변화 메모리(PCM)과 연계하여 구현될 수 있다.
도 1은 예시적인 NAND 플래시 메모리 디바이스(100)의 블록도다. 도시되는 바와 같이, NAND 플래시 메모리 디바이스(100)는 캐시 레지스터(110), 데이터 레지스터(120), 및 비휘발성 메모리 어레이(130)를 포함한다. 여기서 설명되는 레지스터 중 어느 것도 소정의 실시예에 따라 페이저 버퍼 또는 래치로 불릴 수 있다. 데이터 레지스터(120)는 페이지 레지스터로 또한 불릴 수 있다. 캐시 레지스터(110) 및 데이터 레지스터(120)는 각각 휘발성 메모리를 포함할 수 있다. 기록 작동 중, 호스트로부터의 데이터가 캐시 레지스터(110)에 로딩된다. 캐시 레지스터(110) 및 데이터 레지스터(120)는 데이터가 어레이(130)의 페이지에 프로그래밍되기 전에, 및/또는, 데이터가 어레이(130)로부터 불러들여진 후에, 데이터를 홀딩하는데 사용될 수 있다. 통상적으로, 프로그래밍될 데이터는 직렬 방식으로 캐시 레지스터(110) 내로 클러킹된다. 프로그래밍될 데이터는, 그 후 일반적으로 병렬 방식으로, 캐시 레지스터(110)로부터 데이터 레지스터(120)로 이동한다. 이는 프로그래밍을 위한 데이터 수용을 위해 또는 다른 페이지의 판독을 위해 캐시 레지스터(110)를 비운다. 판독될 데이터는 어레이(130)로부터 불러들여지고 데이터 레지스터(120)에 로딩된다. 그 후 데이터가 데이터 레지스터(120)로부터 캐시 레지스터(110)로 이동하고, 여기서부터 데이터가 호스트로 클럭-아웃된다. 캐시 레지스터(110) 및/또는 데이터 레지스터(120)는 적어도 한 페이지의 데이터를 홀딩할 수 있다. 어레이(130)는 싱글 레벨 셀(132) 및 멀티 레벨 셀(134)을 포함할 수 있다. 싱글 레벨 셀(132)은 일 비트의 정보와 같이, 일 디지트의 정보를 저장하도록 구성된다. 멀티 레벨 셀(134)은 멀티 비트의 정보와 같이, 1 디지트보다 많은 정보를 저장하도록 구성된다.
도 2는 NAND 플래시 메모리 어레이에 데이터를 프로그래밍하는 종래 방식을 나타내는 매니지드 메모리 디바이스(200)의 도면이다. 매니지드 메모리 디바이스(200)는 컨트롤러(210)와, 채널 CH0 및 CH1을 통해 컨트롤러(210)와 통신하는 복수의 NAND 플래시 메모리 디바이스(100)를 포함할 수 있다. 예시되는 바와 같이, 복수의 NAND 플래시 메모리 디바이스(100)는 제 1 NAND 플래시 메모리 디바이스(100a) 및 제 2 NAND 플래시 메모리 디바이스(100b)를 포함한다. 매니지드 메모리 디바이스(200)는 예를 들어, eMMC 디바이스 또는 SSD일 수 있다. 제 1 NAND 플래시 메모리 디바이스(100a) 및 제 2 NAND 플래시 메모리 디바이스(100b)는 각각 2개의 채널 CH0 및 CH1을 통해 컨트롤러(210)에 연결되는 서로 다른 다이에 의해 구현될 수 있다. 제 1 NAND 플래시 메모리 디바이스(100a) 및 제 2 NAND 플래시 메모리 디바이스(100b)는 외부 연결을 제외하고 서로와 실질적으로 동일할 수 있다.
컨트롤러(210)는 임베디드 컨트롤러일 수 있다. 컨트롤러(210)는 호스트로부터 호스트 버스 HB를 통해 데이터를 수신할 수 있다. 컨트롤러(210)는 호스트 버스 HB를 통해 제 1 NAND 플래시 메모리 디바이스(100a) 및/또는 제 2 NAND 플래시 메모리 디바이스(100b)에 대한 액세스 요청을 수신할 수 있다. 컨트롤러(210)는 호스트 버스 HB를 통해 사용자 데이터의 세그먼트를 또한 수신할 수 있다. 고형 드라이브 및 플래시 드라이브와 같은 대용량 저장 디바이스는 "블록"이라 불리는 데이터 단위로 데이터를 운반할 수 있다. 컨트롤러(210)에 의해 수신되는 사용자 데이터의 세그먼트는 플래시 메모리 내 메모리의 최소 소거가능 단위를 설명하는 블록과는 다르다. 사용자 데이터는 호스트로부터 컨트롤러(210)로 세그먼트 단위로 전송될 수 있다. 한 페이지의 플래시 메모리 어레이(130a 및/또는 130b)는 복수의 세그먼트를 포함한다. 하나의 비-제한적 예로서, 일 세그먼트의 사용자 데이터는 도 2에 도시되는 바와 같이 4킬로바이트(KB)의 데이터일 수 있다. 다른 크기의 세그먼트도 또한 적용가능할 것이다. 도 2에 도시되는 예에서, 컨트롤러(210)는 제 1 NAND 플래시 메모리 디바이스(100a)에 액세스하기 위한 요청 CMD25를, 그 후, 사용자 데이터의 세그먼트 DATA 4KB를, 그 후, 비지 요청 BUSY를 수신할 수 있다.
컨트롤러(210)는 이러한 요청들을 제 1 NAND 플래시 메모리 디바이스(100a)에 대한 명령으로 변환할 수 있다. 호스트로부터 수신되는 요청에 기초하여 하나의 NAND 플래시 메모리 디바이스 상의 페이지 프로그램 작동에서 블록 기록 작동을 위해 컨트롤러(210)에 의해 발생되는 예시적 명령들이 도 2에 도시된다. 이 명령들은 컨트롤러(210)와 제 1 NAND 플래시 메모리 디바이스(100a) 사이에서 채널 CH0를 통해 제 1 NAND 플래시 메모리 디바이스(100a)에 제공될 수 있다.
제 1 NAND 플래시 메모리 디바이스(100a)에 의해 수신되는 명령들은 사용자 데이터 세그먼트를 캐시 레지스터(110a)에 로딩시킬 수 있고, 사용자 데이터 세그먼트를 비휘발성 메모리의 어레이(130a)에 프로그래밍할 수 있다. 따라서, 제 1 NAND 플래시 메모리 디바이스(100a)는 한번에 한 세그먼트의 데이터를 어레이(130a)에 프로그래밍한다. 복수의 프로그래밍 작동 - 각각의 프로그래밍 작동은 하나 이상이 데이터 세그먼트와 연관됨 - 은 어레이(130a)에 한 페이지의 사용자 데이터를 프로그래밍할 수 있다.
현재의 ONFI 표준에 따라 작동하는 NAND 플래시 메모리 디바이스(100)에서, 캐시 레지스터(110) 및/또는 데이터 레지스터(120)는 페이지-판독, 페이지-캐시-판독, 페이지-프로그램, 및 페이지-캐시-프로그래밍 작동과 연관된 명령 중 사용된다. 예를 들어, 페이지-프로그램 작동(80h-10h)은 호스트로 하여금 캐시 레지스터(110)에 데이터를 로딩시키고, 그 후, 캐시 레지스터(110)의 콘텐츠를 플래시 메모리의 어레이(130) 내 명시된 블록 및 페이지 어드레스에 프로그래밍한다. 다른 예로서, 페이지-캐시-프로그램 작동(80h-15h)은 호스트로 하여금 캐시 레지스터(110)에 데이터를 로딩시킬 수 있고, 캐시 레지스터(110)로부터 데이터 레지스터(120)에 수신 데이터를 이동시키며, 그 후, NAND 플래시 메모리의 어레이(130) 내 명시된 블록 및 페이지 어드레스에 데이터 레지스터(120)의 콘텐츠를 프로그래밍하고, 이때, 캐시 레지스터(110)는 하나 이상의 추가 페이지-캐시-프로그램 작동(80h-15h) 및/또는 페이지-프로그램 작동(80h/10h)에 대해 가용하다. 따라서, 페이지-캐시-프로그램 작동(및 페이지-캐시 판독 작동)과 같은 일부 작동에서, 캐시 레지스터(110) 및 데이터 레지스터(120) 둘 모두가 사용되고, 페이지-프로그램(및 페이지-판독) 작동과 같은 일부 다른 작동에서는 이러한 레지스터들 중 하나의 레지스터만이 사용된다.
호스트로부터 랜덤 블록 프로그램의 경우에, 매니지드 메모리의 성능은 NAND 페이지 프로그램 시간에 의해 구동될 수 있다. 그러나, NAND 메모리 어레이 내 페이지 크기는 일반적으로, 호스트에 의해 호스트 버스 HB를 통해 컨트롤러(210)에 제공되는 사용자 데이터의 세그먼트 크기보다 크다. NAND 페이지 크기는 시간에 걸쳐 증가하고 있다. 랜덤 프로그램 성능을 개선시키기 위해, 임베디드 SRAM이 일부 임베디드 컨트롤러에 포함될 수 있고, 프로그래밍 작동을 위한 버퍼로 사용될 수 있다. 이러한 SRAM은 하나 이상의 데이터 세그먼트와 연관된 다수의 프로그램 요청을 집합화하는 페이지 또는 페이지 스트라이프의 구축에 사용될 수 있다. 페이지 스트라이프는 비휘발성 메모리의 일 평면이 존재할 때 데이터의 페이지에 대응할 수 있다. 비휘발성 메모리의 복수의 평면이 존재할 때, 페이지 스트라이프는 복수의 평면 내 각각의 평면 내 풀 페이지에 대응할 수 있다. 예를 들어, 도 8의 각각의 NAND 플래시 메모리 디바이스(320a-320d) 내 페이지 스트라이프는 2개의 페이지를 포함한다. 여기서 논의되는 원리 및 장점들 중 어느 것도 페이지 스트라이프가 복수의 페이지에 대응할 때 하나의 페이지 스트라이프에 적용될 수 있다. 따라서, 어레이에 프로그래밍될 데이터의 풀 페이지 또는 페이지 스트라이프가 준비될 때, SRAM으로부터 NAND 플래시 메모리의 레지스터에 전달될 수 있다.
매니지드 메모리 디바이스의 랜덤 프로그램 성능은 여기서 논의되는 비휘발성 메모리를 위한 명령으로 호스트 요청의 변환 및/또는 레지스터 구조에 의해 개선될 수 있다. 도 3 내지 도 8의 매니지드 메모리 디바이스(300)는 호스트 요청을 비휘발성 메모리용 새 명령으로 변환할 수 있는 컨트롤러(310)를 포함한다. 컨트롤러(310)는 호스트 요청을 도 9 내지 도 12C의 메모리 중 어느 메모리를 위한 새 명령으로 또한 변환할 수 있다. 컨트롤러(310)는 도시되는 바와 같이 임베디드 컨트롤러일 수 있다. 컨트롤러(310)는 하드웨어, 펌웨어, 또는 이들의 조합을 이용하여 호스트 명령을 변환할 수 있다. 이러한 매니지드 메모리 디바이스(300)는 새 명령과 연관된 새 기능을 구현할 수 있는 NAND 플래시 메모리 디바이스(320a, 320b)를 포함할 수 있다. 새 명령을 구현하기 위해, NAND 플래시 메모리 디바이스(320a, 320b)는 기존 명령을 구현하도록 구성된 NAND 플래시 메모리 디바이스(100a, 100b)에 비해 다른 물리적 하드웨어를 포함할 수 있다. 예를 들어, NAND 플래시 메모리 디바이스(320a, 320b)는 컨트롤러(310)로부터 새 명령을 수신할 때 새 명령을 디코딩하도록 구성되는 디코더를 포함할 수 있다. 다른 예로서, NAND 플래시 메모리 디바이스(320a, 320b)는 기존 명령을 구현하도록 구성된 NAND 플래시 메모리 디바이스(100a, 100b)에 비해 캐시 레지스터(110) 및/또는 데이터 레지스터(120)에 대해 다른 연결을 포함할 수 있다. 새 명령을 지원하기 위한 회로가 NAND 플래시 메모리 디바이스(320a, 320b)에 또한 포함될 수 있다. NAND 플래시 메모리 디바이스(320a, 320b) 내 캐시 레지스터(110), 데이터 레지스터(120), 및/또는 어레이(130)의 내부 기능은 각각 NAND 플래시 메모리 디바이스(100a, 100b)와 실질적으로 동일할 수 있다.
일부 실시예에서, 비휘발성 메모리의 레지스터가 판독 작동용으로 사용될 수 있고, 비휘발성 메모리의 다른 레지스터가 기록 작동에 사용될 수 있다. 예를 들어, NAND 플래시 메모리의 캐시 레지스터가 판독 작동과 연계하여 사용될 수 있고, NAND 플래시 메모리의 데이터 레지스터가 프로그래밍 작동과 연계하여 사용될 수 있다. 복수의 NAND 플래시 메모리 디바이스의 데이터 레지스터는 일부 실시예에 따르면, 매니지드 메모리 디바이스 내 분산형 휘발성 캐시(DVC) 구조를 함께 구현할 수 있다. DVC는 NAND 플래시 메모리 디바이스의 레지스터에 저장되는 NAND 플래시 메모리 셀의 어레이로부터 판독되는 데이터와 간섭없이, NAND 플래시 메모리 디바이스의 입력으로부터 데이터를 수신할 수 있다. DVC는 NAND 플래시 메모리 셀에 프로그래밍될 데이터의 페이지로 집합화되기 때문에 NAND 플래시 메모리 디바이스 상에 사용자 데이터 세그먼트를 저장할 수 있다. 예를 들어, 사용자 데이터 세그먼트는 사용자 데이터가 서로 다른 페이지의 데이터와 연관될 때 서로 다른 복수의 비휘발성 메모리 디바이스의 휘발성 메모리에 의해 저장될 수 있다. 사용자 데이터 세그먼트는 사용자 데이터가 비휘발성 메모리 셀의 어레이에 저장되지 않을 때에도 비휘발성 메모리 외부의 컨트롤러에 의해 액세스될 수 있다. DVC는 컨트롤러 내에 RAM 또는 다른 휘발성 메모리의 필요성을 감소시킬 수 있다.
도 3은 일 실시예에 따라 NAND 플래시 메모리 디바이스(320a)의 페이지 프로그래밍 작동을 나타내는 매니지드 메모리 디바이스(300)의 도면이다. 매니지드 메모리 디바이스(300)에서, 호스트로부터 수신되는 단일 데이터 세그먼트와 연관된 다수의 프로그래밍 명령 CMD25가, 컨트롤러(310)에 의해, 예를 들어, 도 3에 도시되는 바와 같이, NAND 플래시 메모리(100a) 상의 단일 페이지 프로그램 작동 및 기타 관련 관리 작동으로 변환될 수 있다. 컨트롤러(310)에 의해 단일 페이지 프로그램 작동으로 집합화될 다수의 프로그래밍 명령 CMD25는 페이지 크기 및/또는 평면 수, 그리고, NAND 플래시 메모리의 채널 수와 같이, NAND 플래시 메모리의 물리적 특성에 기초할 수 있다. 예시되는 예에서, 12KB 페이지 크기를 가진 3개의 프로그래밍 명령 CMD25 - 각각은 단일 4KB의 데이터 세그먼트와 연관됨 - 가 컨트롤러(310)에 의해 하나의 페이지 프로그램 작동으로 집합화될 수 있다. 임베디드 컨트롤러(310)의 펌웨어는 소정의 실시예에서 이러한 집합화를 수행할 수 있다. 임베디드 컨트롤러(310)의 하드웨어는 일부 다른 실시예에서 이러한 집합화를 수행할 수 있다.
컨트롤러(310)는 호스트로부터, NAND 플래시 메모리 디바이스(320a)의 단일 페이지 프로그램 작동으로 프로그래밍 명령 CMD25를 집합화함과 연계하여 새 페이지 프로그램 스루 데이터 레지스터(a new page program through data register) NEW Cmd 명령을 NAND 플래시 메모리 디바이스(320a)에 제공할 수 있다. 이러한 페이지 프로그램 스루 데이터 레지스터 명령 NEW Cmd는 컨트롤러(310)로 하여금 데이터 레지스터(120a)에 데이터를 로딩시키고, 캐시 레지스터(110a) 내에 보유되는 데이터와 간섭없이, 데이터 레지스터(120a)로부터 NAND 플래시 메모리 디바이스(320a)의 어레이(130a) 내 명시된 어드레스로 데이터를 프로그래밍할 수 있다. NAND 플래시 메모리 디바이스(320a)는 NAND 플래시 메모리 디바이스(100)(도 2)와 달리, 캐시 레지스터(110a)에 데이터 로딩없이, 데이터 레지스터(120a)에 사용자 데이터를 제공하도록 구성되는 회로를 가질 수 있다. 도 3에 도시되는 바와 같이, 페이지 프로그램 스루 데이터 레지스터 명령 NEW Cmd 및 다른 관련 명령은 NAND 플래시 메모리 디바이스(320a)로 하여금 컨트롤러(310)로부터 채널 CH0을 통해 데이터 레지스터(120a)로 세그먼트 단위로 수신되는 사용자 데이터를 증분 방식으로 로딩할 수 있게 한다. 그 후, 풀 페이지의 사용자 데이터가 데이터 레지스터(120a)에 로딩될 때, 사용자 데이터의 페이지가 단일 페이지 프로그램 작동을 통해 어레이(130a)에 프로그래밍될 수 있다.
도 4는 일 실시예에 따라, 판독 명령 및 프로그래밍 명령을 위한 NAND 플래시 디바이스의 개별 레지스터들의 이용을 나타내는 매니지드 메모리 디바이스(300)의 도면이다. 판독 명령 및 프로그래밍 명령을 위해 개별 레지스터를 이용함으로써, 레지스터 이용시 충돌을 피할 수 있다. 예를 들어, 호스트로부터 수신되는 판독 명령은 도 4에 도시되는 데이터 레지스터(120a)와 같이, NAND 플래시 메모리 디바이스(320a)의 레지스터 내 사용자 데이터 페이지에 집합화되는 사용자 데이터 세그먼트를 파괴하지 않으면서, 서빙될 수 있다. 개별 레지스터를 이용함으로써 또한, 제 2 레지스터의 이용없이, 그리고 그 후 어레이(130)로부터 판독치 로딩없이, 어레이(130)에 프로그래밍될 데이터를 제 1 레지스터에서 로딩할 수 있다. 그 후 제 2 레지스터로부터의 데이터가 컨트롤러(130)에 제공될 수 있고, 이때, 제 1 레지스터는 어레이(130)에 프로그래밍될 데이터를 보유하고 있다. 호스트 측 상의 하나 이상의 세그먼트와 연관된 판독 작동은 컨트롤러(310)에 의해 NAND 플래시 메모리 디바이스(320a)의 페이지 판독 작동으로 변환될 수 있다. 페이지 판독 작동은 NAND 플래시 메모리 디바이스(320a)의 캐시 레지스터(110a)를 이용할 수 있다.
NAND 플래시 메모리 디바이스(320a)에서, 캐시 레지스터(110a)는 어레이(130)와 연관된 판독 회로에 연결될 수 있고, 데이터 레지스터(120a)는 어레이(130)와 연관된 기록 회로에 연결될 수 있다. 따라서, 어레이(130a)에 프로그래밍될 데이터 및 어레이(130a)로부터 판독되는 데이터는 서로 다른 레지스터에 연결된 개별 신호 라인 상에서 전파될 수 있다. NAND 플래시 메모리 디바이스(320a)에서, 캐시 레지스터(110a)는 어레이(130)와 연관된 판독 회로에 연결될 수 있고, 데이터 레지스터(120a)는 어레이(130)와 연관된 기록 회로에 연결될 수 있다.
예를 들어, 제 1 어레이 신호 라인은 어레이(130a) 및 데이터 레지스터(120a)를 전기적으로 연결할 수 있고, 제 2 어레이 신호 라인은 어레이(130a) 및 레지스터(110a)를 전기적으로 연결할 수 있다. 데이터 레지스터(120a)는 사용자 데이터를 캐시 레지스터(110a)에 제공함없이, NAND 플래시 메모리 디바이스(320a)의 입력에서 컨트롤러(310)로부터 수신되는 사용자 데이터를 수신할 수 있다. NAND 플래시 메모리 디바이스(320a)는 입/출력 접촉부 및 캐시 레지스터(110a) 및 데이터 레지스터(120a) 간에 서로 다른 전기적 연결을 포함할 수 있다.
도 4의 매니지드 메모리 디바이스(300)는 NAND 플래시 메모리 디바이스(320a)에서 로드 메커니즘 중에 판독을 지원할 수 있다. 컨트롤러(310)는 NAND 플래시 메모리 디바이스(320a)를 판독 및 프로그래밍하기 위한 요청을 페이지 프로그램 스루 데이터 레지스터 명령 NEW Cmd 및 페이지 판독 스루 캐시 레지스터 명령 NEW CMd #2으로 변환할 수 있다. 페이지 프로그램 스루 데이터 레지스터 명령 NEW Cmd 및 페이지 판독 스루 캐시 레지스터 명령 NMEW Cmd #2가 채널 CH0을 통해 NAND 플래시 메모리 디바이스(320a)에 제공될 수 있다. 페이지 판독 스루 캐시 레지스터 명령 NEW Cmd #2는 어레이(130a)로부터 데이터 세그먼트를 불러올 수 있고, 캐시 레지스터(110a)에 데이터 세그먼트를 저장할 수 있다. 이로써 NAND 플래시 메모리 디바이스(320a)가, 데이터 레지스터(120a)에 저장된 데이터와 간섭없이, 어레이(130a)로부터 데이터를 불러올 수 있다. 따라서, 일 페이지의 데이터가 데이터 레지스터(120a)에서 집합화될 때, 데이터가, 데이터 레지스터(120a)에서 구축 중인 페이지 또는 페이지 스트라이프의 파괴없이, 어레이(130a)로부터 판독되어 컨트롤러(310)에 제공될 수 있다. 다른 실시예(도시되지 않음)에서, 페이지 판독 스루 캐시 레지스터 명령 NEW Cmd #2는 어레이(130a)로부터 2개 이상의 데이터 세그먼트(가령, 일 페이지의 데이터)를 불러올 수 있고, 캐시 레지스터(110a)에 2개 이상의 데이터 세그먼트를 로딩할 수 있다.
판독 및 프로그래밍 작동을 위해 개별 레지스터들을 이용함으로써, 판독 작동과 연관된 명령과 프로그래밍 작동에 관련된 명령을 위해 개별 레지스터들 모두가 동시에 사용될 수 있다. 예를 들어, 도 4에 도시되는 바와 같이, 프로그래밍 명령은 컨트롤러(310)로 하여금 채널 CH0을 통해 데이터 레지스터(120a)에 데이터를 로딩시킬 수 있고, 데이터 레지스터(120a)로부터 NAND 플래시 메모리 디바이스(320a)의 어레이(130a) 내 지정된 어드레스에 데이터를 프로그래밍하게 할 수 있다. 도 4에 또한 도시되는 바와 같이, 판독 명령이 NAND 플래시 메모리 디바이스(320a)의 어레이(130a)의 페이지로부터 데이터를 불러올 수 있고, 불러온 데이터를 캐시 레지스터(110a)에 로딩할 수 있으며, 이때, 데이터 레지스터(120a)는 어레이(130a)에 프로그래밍을 위해 데이터를 보유하고 있다. 불러온 데이터는 NAND 플래시 메모리 디바이스(320a) 외부의 캐시 레지스터(110a)로부터 제공될 수 있다.
매니지드 메모리 디바이스(300)는 NAND 플래시 메모리 디바이스(320a)의 판독 메커니즘 중에 로드를 지원할 수 있다. 매니지드 메모리 디바이스(300)가 판독 작동을 수행하고 있을 때, NAND 플래시 메모리 디바이스(320a)의 어레이(130a)에 프로그래밍될 데이터가 NAND 플래시 메모리 디바이스의 레지스터로 로딩될 수 있다. 예를 들어, 도 3을 참조하여 설명되는 작동들은, 어레이(130a)로부터 불러온 데이터가 판독 작동과 연계하여 캐시 레지스터(110a)에 보유되고 있는 동안 수행될 수 있다.
컨트롤러(310)는, 데이터가 아직 어레이(130a)에 프로그래밍되지 않았을 때 캐시 레지스터(110a) 또는 데이터 레지스터(120a)에 보유된 데이터를 호스트로 리턴시키기 위한, 및/또는 어레이(130a)에 데이터를 프로그래밍하기 위한 작동을 완료시키도록 데이터를 컨트롤러(310)가 적절히 이동시킬 수 있도록, 데이터가 캐시 레지스터(110a) 또는 데이터 레지스터(120a)에 의해 보유됨에 따라 어레이(130a)에 프로그래밍될 데이터의 위치를 추적할 수 있다. 추가적으로, 컨트롤러(310)는 데이터 위치 추적을 위해 어레이(130a)에 프로그래밍되는 데이터의 표시사항을 수신할 수 있다. 컨트롤러(310)의 하나 이상의 레지스터 및/또는 펌웨어가 NAND 플래시 메모리 디바이스(320a) 상의 데이터 위치를 추적하기 위한 추적 정보를 저장할 수 있다.
일부 경우에, 호스트는 프로그래밍을 위해 NAND 플래시 메모리 디바이스(320a)에 최근 제공된 데이터를 다시 판독하기 위한 요청을 전송할 수 있다. 요청이 호스트로부터 수신될 때, 요청과 관련된 데이터가 NAND 플래시 메모리 디바이스(320a)의 레지스터에 여전히 보유될 수 있고, 어레이(130a)에 아직 프로그래밍되지 않았을 수 있다. 컨트롤러(310)는 호스트에 의해 수신되는 요청을, 요청받은 데이터를 대신에 보유하고 있는 레지스터로부터 데이터를 판독하기 위한 명령으로 변환함으로써, NAND 플래시 메모리 디바이스(320a)의 레지스터로부터 데이터 판독을 지원할 수 있다.
도 5는 일 실시예에 따라, 데이터 레지스터(120a)에 보유된, 그러나 NAND 플래시 메모리 어레이(130a)에 아직 프로그래밍되지 않은, 데이터의 판독을 나타내는 매니지드 메모리 디바이스(300)의 도면이다. 도 5에 도시되는 바와 같이, 컨트롤러(310)는 페이지 프로그램 스루 데이터 레지스터 명령 NEW Cmd를 NAND 플래시 메모리 디바이스(320a)에 제공할 수 있다. 컨트롤러(310)는 데이터 레지스터(120a)에 보유된, 그러나 NAND 플래시 메모리 어레이(130a)에 아직 프로그래밍되지 않은, 데이터가 존재하는지 여부를 결정할 수 있다. 예를 들어, 컨트롤러(310)는 컨트롤러(310)에 의해 저장된 추적 정보를 점검함으로써, 요청받은 데이터가 데이터 레지스터(120a)에 보유된 데이터에 대응하는지 여부를 점검할 수 있다. 사용자 데이터의 세그먼트들이 데이터 레지스터(120a) 내 데이터의 페이지에 집합되지만, 컨트롤러는 NAND 플래시 메모리 디바이스(320a)로부터 데이터를 판독하기 위한 요청을, 데이터 레지스터(120a)로부터 데이터의 요청받은 세그먼트를 되돌려보내는 명령 DATA로 변환할 수 있다. 따라서, NAND 플래시 메모리 디바이스(320a)의 휘발성 메모리에 보유된 데이터는 데이터가 어레이(130a)에 저장되어 있지 않을 때 불러올 수 있다. NAND 플래시 메모리 디바이스(320a)는 데이터 페이지가 데이터 레지스터(120a)에 저장될 때까지 사용자 데이터의 세그먼트들의 집합화를 계속할 수 있다. 그 후 데이터 페이지가 명령(10h)과 함께 종료되는 페이지 프로그램 작동 중 어레이(130a)에 프로그래밍될 수 있다.
소정의 구현예에서, 캐시 레지스터(110a)는 NAND 플래시 메모리 디바이스(320a)의 판독 작동을 위해 그리고 NAND 플래시 메모리 디바이스(320a)의 프로그래밍 작동을 위해 사용될 수 있다. 이러한 구현예에서, 분산형 가상 캐시의 특징을 구현하기 위해 캐시 레지스터(110a)와 데이터 레지스터(120a) 사이의 데이터를 스와핑하기 위해 전용 명령이 사용될 수 있다. 도 6 및 도 7은 NAND 플래시 메모리 디바이스(320a)의 판독 및 프로그래밍 작동을 위해 캐리 레지스터(110a)가 사용되는 실시예에 관한 것이다.
도 6은 일 실시예에 따라, NAND 플래시 메모리 디바이스(320a)의 페이지 프로그래밍 작동을 나타내는 매니지드 메모리 디바이스(300)의 도면이다. 도 2의 실시예에 반해, 사용자 데이터의 전체 페이지가 한번에 한 세그먼트씩 캐시 레지스터(110a)로 로딩될 수 있고, 그 후, 전체 페이지가 어레이(130a)로 프로그래밍될 수 있다. 도 6의 실시예는 사용자 데이터가 데이터 레지스터(120a) 대신에 캐시 레지스터(110a)로 로딩된다는 점을 제외하곤 도 3의 실시예와 유사하다. 따라서, 도 6의 실시예는 판독 작동 및 프로그래밍 작동을 위해 별도의 레지스터를 이용할 수 있다. 특히, 캐시 레지스터(110a)는 판독 작동에 사용될 수 있고, 데이터 레지스터(120a)는 프로그래밍 작동에 사용될 수 있다. 데이터 레지스터(120a) 대신에 캐시 레지스터(110a)로 사용자 데이터를 로딩함으로써, 기존 ONFI 표준의 이용과 같이, NAND 플래시 메모리의 어레이(130a)로의 일부 기존 데이터 프로그래밍 방법에 변화가 거의 나타나지 않을 수 있다.
도 7은 일 실시예에 따라, 캐시 레지스터(110a)로부터의 데이터가 데이터 레지스터(120a)로 전달되도록, 어레이(130a)로부터 인터리빙된 판독을 나타내는 매니지드 메모리 디바이스(300)의 도면이다. 캐시 레지스터(110a)와 데이터 레지스터(120a) 간의 데이터 스와핑과 관련된 원리 및 장점은 임의의 적절한 판독 및/또는 프로그램 작동과 연관된 제 1 데이터와 연계하여 구현될 수 있으며, 이 경우에, 제 1 데이터는 캐시 레지스터(110a)로 로딩되고 다른 작동 중 제 1 데이터를 보존할 필요가 있다.
어레이(130a)로부터 데이터를 불러오기 위한 요청을 변환하기 전에, 컨트롤러(310)는 캐리 레지스터(110a)에 보유된, 그러나 어레이(130a)로 아직 프로그래밍되지 않은, 데이터가 존재하는지 여부를 결정할 수 있다. 예를 들어, 컨트롤러(310)는 요청받은 데이터가, 컨트롤러(310)에 의해 저장된 추적 정보에 기초하여 캐시 레지스터(110a)에 보유되는 데이터에 대응하는지 여부를 점검할 수 있다. NAND 플래시 메모리 어레이(130a)에 프로그래밍될 캐시 레지스터(110a)에 의해 보유되는 데이터의 페이지보다 적게 존재할 때, 컨트롤러는 NAND 플래시 메모리 디바이스(320a)로 하여금 캐시 레지스터(110a)에 의해 보유된 데이터를 이동시켜서, 데이터를 상실하지 않는 방식으로 판독 작동을 위해 캐시 레지스터(110a)를 비운다. 컨트롤러(310)는 캐시 레지스터(110a)로부터 데이터를 데이터 레지스터(120a)로 이동시키기 위해 호스트 요청을 스왑 명령 New Swap Cmd로 변환할 수 있다. 이는 NAND 플래시 메모리 디바이스(320a, 320b)의 데이터 레지스터(120a, 120b)에 의해 구현되는 분산형 가상 캐시에 데이터를 유지할 수 있다. 예를 들어, 사용자 데이터가 캐시 레지스터(110a)에서 집합화되고 한 페이지 미만의 사용자 데이터가 캐시 레지스터(110a)에 의해 보유될 때, 사용자 데이터가 데이터 레지스터(120a)로 이동할 수 있다. 그 후, 불러온 데이터가 NAND 플래시 메모리 디바이스(320a)의 출력에 제공된 후, 사용자 데이터가 다시 캐시 레지스터(110a)로 이동할 수 있다.
도 7은 캐시 레지스터(110a)의 데이터가 데이터 레지스터(120a)로 이동한, 인터리빙된 판독을 나타낸다. 일 실시예에서, NAND 플래시 메모리 디바이스(320a)는 제 1 데이터를 한번에 한 세그먼트씩 캐시 레지스터(110a)로 로딩할 수 있다. 어레이(130a)로부터 제 2 데이터를 판독하기 위한 요청이 호스트로부터 수신될 수 있고, 이때, 캐시 레지스터(110a)는 제 1 데이터를 보유한다. 제 1 데이터는 풀 페이지 미만의 데이터를 포함할 수 있다. 제 2 데이터는 어레이(130a)에 저장된 데이터의 하나 이상의 세그먼트를 포함할 수 있다. 일부 예에서, 제 2 데이터는 한 페이지의 데이터를 포함한다. 캐시 레지스터(110a)에 의해 보유된 제 1 데이터는 데이터 레지스터(120a)로 이동할 수 있다. 그 후 제 2 데이터가 어레이(130a)로부터 불러들여져서 캐시 레지스터(110a)에 로딩될 수 있고, 이때, 데이터 레지스터(120a)는 제 1 데이터를 보유한다. 그 후 제 2 데이터가 NAND 플래시 메모리 디바이스(320a)의 출력에 제공될 수 있다. 데이터 레지스터(120a)가 제 1 데이터를 보유할 때, 추가 데이터가 어레이(130)로부터 불러들여지고 캐시 레지스터(110a)에 로딩될 수 있으며, NAND 플래시 메모리 디바이스(320a)로부터 출력될 수 있다. 데이터 레지스터(120a)가 제 1 데이터를 보유하고 있을 때, 페이지-캐시-프로그램 작동과 같은 프로그래밍 작동이 인터리빙된 판독 작동에 대한 대안으로서, 또는, 인터리빙된 판독 작동에 추가하여, 수행될 수 있다. 이러한 프로그래밍 작동에서, 데이터가 캐시 레지스터(110a)에 로딩될 수 있고, 그 후 어레이(130)로 프로그래밍될 수 있으며, 이때, 데이터 레지스터(120a)는 제 1 데이터를 보유하고 있다. 판독 및/또는 기록 작동이 완료될 때, 제 1 데이터가 데이터 레지스터(120a)로부터 캐시 레지스터(110a)로 이동할 수 있다. 이어서 제 1 데이터가 어레이(130)로 프로그래밍될 수 있다. 예를 들어, 풀 페이지의 데이터가 캐시 레지스터(110a)에 의해 보유되면, 캐시 레지스터(110a)의 콘텐츠가 어레이(130a)로 프로그래밍될 수 있다.
도 8은 일 실시예에 따라, 분산형 휘발성 캐시(DVC)(800)를 구현하는 복수의 NAND 플래시 메모리 디바이스(320a, 320b, 320c, 320d)를 포함하는 매니지드 메모리 디바이스(300)의 블록도다. 여기서 설명되는 원리 및 장점은 2개 이상 평면의 레지스터 및 어레이를 포함하는 NAND 플래시 메모리 디바이스 및/또는 2개보다 많은 NAND 플래시 메모리 디바이스를 포함하는 매니지드 메모리 디바이스(300)에 적용될 수 있다. 복수의 NAND 플래시 메모리 디바이스(320a-320d)의 데이터 레지스터(120a1-120d2)는 함께 DVC(800)를 구현할 수 있다. DVC(800)는 NAND 플래시 메모리 디바이스(320a-320d) 상에 데이터를 일시적으로 보유하기 위해 휘발성 메모리를 포함하는 NAND 플래시 메모리 디바이스(320a-320d)의 레지스터들을 이용한다. 이러한 DVC(800)는 예를 들어, 임베디드 멀티-미디어 카드 애플리케이션에서, 구현될 수 있다. DVC(800)는 예를 들어, 호스트로부터의 복수의 프로그래밍 요청으로부터 사용자 데이터를 하나의 페이지 프로그램 작동으로 집합화할 때 NAND 플래시 메모리 디바이스(320a-320d) 상에서 레지스터에 의해 데이터를 보유할 수 있다. 예를 들어, 도 7을 참조하여 설명되듯이 캐시 레지스터(110)로부터 데이터 레지스터(120)로 데이터 이동은 DVC(800)의 특징을 구현할 수 있다. 일부 실시예에서, NAND 플래시 메모리 디바이스(320a, 320b, 320c, 320d)는 DVC 모드를 선택적으로 가동 및/또는 가동정지시킬 수 있다. 예를 들어, 트림 세팅(trim setting)이 DVC 모드를 선택적으로 가동 및/또는 가동정지시킬 수 있다.
DVC(800)는 컨트롤러(310) 상의 휘발성 메모리의 양 증가없이 매니지드 메모리 디바이스(300)의 랜덤 프로그램 성능을 향상시킬 수 있다. 대안으로서, DVC(800)는 컨트롤러(310) 상에 더 적은 휘발성 메모리로 실질적으로 동일한 랜덤 프로그램 성능을 실현할 수 있다. 그러므로, DVC(800)는 매니지드 메모리 디바이스의 랜덤 기록 성능을 개선시킬 수 있고, 및/또는 매니지드 메모리 디바이스의 컨트롤러 비용을 낮출 수 있다.
DVC(800)는 DVC(800)에 의해 저장될 수 있는 데이터의 세그먼트 수에 가까운 판독/프로그램 IOPS의 증가의 성능적 장점을 이끌 수 있다. 예를 들어, DVC(800)가 4개의 다이로 구성되고 각각의 다이가 2개의 데이터 레지스터를 가지며 각각의 데이터 레지스터가 16KB의 데이터 페이지를 저장하도록 구성되고 데이터 세그먼트는 4KB 세그먼트로 다이에 전송될 때, DVC(800)는 4x2x16KB = 128KB의 데이터를 저장할 수 있다. 각각의 세그먼트가 본 예에서 4KB의 데이터이기 때문에, 랜덤 프로그램 IOPS의 32배에 가까운 증가가 실현될 수 있다. 다른 예에서, DVC(800)가 16KB의 데이터 페이지를 저장하도록 각기 구성된 2개의 데이터 레지스터를 가진 하나의 다이로 구성되고 데이터 세그먼트가 4KB 세그먼트로 다이에 전송될 때, 8배에 가까운 랜덤 프로그램 IOPS 증가가 실현될 수 있다.
DVC(800)는 여기서 설명되는 특징들의 임의의 적절한 조합에 따라 구현될 수 있다. 소정의 구현예에서, DVC(800)는 도 3-5의 실시예에 따라 구현될 수 있다. 일부 다른 구현예에 따르면, DVC(800)는 도 6-7의 실시예에 따라 구현될 수 있다. 예시되는 DVC(800)가 데이터 레지스터(120a-120d)를 포함하지만, 캐시 레지스터(110a-110d) 및/또는 비휘발성 메모리 디바이스 상의 다른 휘발성 메모리가 일부 다른 실시예에서 DVC를 구현할 수 있다. 예를 들어, 별도의 가상 캐시 레지스터(410a, 410b)가 도 10A 및 10B의 실시예에서 DVC를 구현할 수 있다.
여기서 설명되는 레지스터 구조는 매니지드 메모리 디바이스(300)의 가비지 컬렉션 및 웨어 레벨링 기능과 호환될 수 있다. 컨트롤러(310)의 펌웨어 및/또는 하드웨어는 가비지 컬렉션 및/또는 웨어 레벨링을 실행할 수 있다. 소정의 실시예에서, 가비지 컬렉션 및 웨어 레벨링은 프로그래밍 작동의 완료까지 대기 상태로 유지될 수 있다. 대안으로서 또는 추가적으로, 풀 페이지의 데이터로, 데이터 레지스터와 같은 레지스터를 완전히 채우기 전에, 프로그래밍 작동이 강제될 수 있다.
현재의 ONFI 표준의 NAND 플래시 메모리 디바이스의 레지스터 구조는, 메모리 어레이에 프로그래밍될 제 1 데이터가 제 1 데이터 상실없이 NAND 플래시 메모리 디바이스의 레지스터에 세그먼트 단위로 로딩되고 있을 때, 페이지 캐시 판독 작동을 수행할 수 없다. 그러나 현재의 그리고 미래의 매니지드 메모리 표준에 부합하도록 순차 판독 성능을 부스팅하는데 페이지 캐시 판독 작동이 사용될 수 있다. 추가적으로, 현재의 ONFI 표준은 메모리 어레이에 프로그래밍될 제 1 데이터가 제 1 데이터 상실없이 세그먼트 단위로 NAND 플래시 메모리 디바이스의 레지스터에 로딩되고 있을 때, 페이지 프로그램 작동 또는 페이지 캐시 프로그램 작동을 수행할 수 없다. 그러나, 서로 다른 데이터를 이용한 페이지 프로그램 및 페이지 캐시 프로그램 작동은 예를 들어, 가비지 컬렉션 활동 중, 및/또는 로지컬 포인터를 피지컬 포인터로 업데이트함에 있어서 매니지드 메모리의 펌웨어(및/또는 하드웨어)를 도울 수 있다. 따라서, NAND 플래시 메모리 디바이스의 성능 개선을 위한 필요가 존재한다.
도 9 내지 도 12C에 예시되는 실시예는, 일시적으로 제 1 데이터를 레지스터 내로 로딩하여, 제 1 데이터를 보존하면서 제 2 데이터와 연관된, 인터리빙된 페이지 캐시 판독 작동, 페이지 판독 작동, 또는 페이지 캐시 프로그램 작동을 수행할 수 있는 NAND 플래시 메모리 디바이스의 레지스터 구조의 예다. 이러한 새로운 레지스터 구조는 NAND 플래시 메모리 디바이스 상에 3개의 개별 레지스터를 포함한다. 추가적으로, NAND 플래시 메모리 디바이스는 캐시 레지스터(110)로부터 가상 캐시 레지스터(410) 내외로 데이터를 이동시키기 위해 새로운 이동 및/또는 스와핑 명령을 실행할 수 있다. 도 9 내지 도 12C의 NAND 플래시 메모리 디바이스(400, 400a, 및/또는 400b)는 도 3 내지 도 8의 매니지드 메모리 디바이스(300) 중 임의의 디바이스에서 NAND 디바이스(320a-320d) 중 임의의 디바이스 대신에 구현될 수 있다. 이러한 매니지드 메모리 디바이스(300)의 컨트롤러(310)는 캐시 레지스터(110)로부터 가상 캐시 레지스터(410) 내외로 데이터를 이동시키기 위해 새로운 이동 및/또는 스와핑 명령을 발생시킬 수 있다.
도 9는 일 실시예에 따른 예시적 NAND 플래시 메모리 디바이스(400)의 도면이다. NAND 플래시 메모리 디바이스(400)는 NAND 플래시 메모리 디바이스(320a-320d)의 특징들의 임의의 조합을 구현할 수 있다. NAND 플래시 메모리 디바이스(400)는 가상 캐시 구현을 위해 추가 레지스터와 함께 추가적인 이동 및/또는 스와핑 특징을 또한 구현할 수 있다. NAND 플래시 메모리 디바이스(400)는 매니지드 메모리 디바이스(300) 내의 컨트롤러(310)를 이용하여 구현될 수 있다.
예시되는 NAND 플래시 메모리 디바이스(400)는 캐시 레지스터(110), 데이터 레지스터(120), 가상 캐시 레지스터(410), 및 어레이(130)를 포함한다. 캐시 레지스터(110) 및 데이터 레지스터(120)는 현재의 ONFI 표준에 의해 규정되는 작동들을 실행할 수 있다. 가상 캐시 레지스터(410)는 일 실시예에서 캐시 레지스터(110)와 동일 양의 데이터를, 그리고 데이터 레지스터(120)와 동일 양의 데이터를 보유할 수 있다. 따라서, 가상 캐시 레지스터(410)는 한 페이지의 데이터를 보유할 수 있다. 일부 다른 실시예에서, 가상 캐시 레지스터(410)는 한 페이지 미만의 데이터를 보유할 때 풀 상태다. 예를 들어, 일부 구현예에서, 가상 캐시 레지스터(410)는 하나의 풀 페이지의 데이터보다 적은 하나의 세그먼트를 보유하는 크기를 가진다. 가상 캐시 레지스터(410)는 캐시 레지스터(110)가 다른 작동의 실행에 사용되는 동안 캐시 레지스터(110)에 앞서 로딩된 데이터를 보유할 수 있다. 따라서, 가상 캐시 레지스터(410)는 캐시 레지스터(110) 및 데이터 레지스터(120)를 이용하여 어레이(130)에 액세스하는 임의의 작동 중 캐시 레지스터(110)에 앞서 로딩된 데이터를 보유할 수 있다. 예를 들어, 가상 캐시 레지스터(410)는 페이지 판독 작동, 페이지 캐시 판독 작동, 페이지 캐시 프로그램 작동, 또는 이들의 임의의 조합 동안 캐시 레지스터(110)에 앞서 저장된 데이터를 보유할 수 있다.
가상 캐시 레지스터(410)가 제 1 데이터를 보유하고 있을 때, 제 2 데이터는 캐시 레지터(110)와 어레이(130) 사이에서 데이터 레지스터(120)를 통해 전달될 수 있다. 예를 들어, 어레이(130)로부터의 제 2 데이터가 데이터 레지스터(120)에 로딩될 수 있다. 그 후 제 2 데이터가 데이터 레지스터(120)로부터 캐시 레지스터(110)로 이동할 수 있다. 제 2 데이터는 캐시 레지스터(110)로부터 NAND 플래시 메모리 디바이스(400)의 출력에 출력될 수 있다. 다른 예로서, 제 2 데이터가 캐시 레지스터(110)로 로딩되어 데이터 레지스터(120)로 이동될 수 있다. 그 후 제 2 데이터는 데이터 레지스터(120)로부터 어레이(130)로 제공될 수 있고, 어레이(130)로 프로그래밍될 수 있다.
컨트롤러(310)는 캐시 레지스터(110)로부터 가상 캐시 레지스터(410)까지 데이터를 이동시키도록 새로운 Move to VCache 명령을 발생시킬 수 있다. 컨트롤러(310)는 가상 캐시 레지스터(410)로부터 캐시 레지스터(110)로 데이터를 이동시키도록 새로운 Move from VCache 명령을 또한 발생시킬 수 있다. 대안으로서, 컨트롤러(310)는 캐시 레지스터(110)의 콘텐츠를 가상 캐시 레지스터(410)로 스와핑하기 위해 새로운 VCache Swap 명령을 발생시킬 수 있다.
도 10A 및 10B는 다-평면 NAND 플래시 메모리 디바이스(420)의 레지스터들 간의 데이터 스와핑 실시예를 나타내는 도면이다. 도 10A에 도시되는 바와 같이, 데이터는 단일-평면 명령을 실행함으로써 다-평면 NAND 플래시 메모리 디바이스(420)의 선택된 평면(400a)에서 캐시 레지스터(110a)와 가상 캐시 레지스터(410a) 간을 이동할 수 있다. 단일-평면 스왑 및/또는 이동 명령은 선택된 평면 상에서만 작동하고, 다른 평면의 데이터는 선택되지 않은 평면의 캐시 레지스터(110b)와 가상 캐시 레지스터(410b) 간에 스와핑 및/또는 이동되지 않는다. 대안으로서 또는 추가적으로, 도 10B에 도시되는 바와 같이, 데이터는 다-평면 명령을 실행함으로써 다-평면 NAND 플래시 메모리 디바이스(420)의 복수의 평면(400a, 400b)에서 캐시 레지스터(110a, 110b)와 가상 캐시 레지스터(410a, 410b) 간을 이동할 수 있다. 다-평면 스왑 및/또는 이동 명령은 어드레싱되는 모든 평면 상에서 동시에 작동할 수 있다. NAND 플래시 메모리 디바이스(420)는 단일-평면 및/또는 다-평면 스왑 및/또는 이동 명령을 구현할 수 있다. 다-평면 NAND 플래시 메모리 디바이스(420)가 도 10A 및 10B에서 2개의 평면을 갖는 것으로 도시되지만, 여기서 설명되는 원리 및 장점은 2개보다 많은 평면을 갖는 구현예에 적용될 수 있다.
NAND 플래시 메모리 페이지 또는 그 일부분을 버퍼링하기 위해 3개의 개별 레시터를 이용할 때, 데이터는 한번에 한 세그먼트씩 캐시 레지스터(110)로 일시적으로 로딩될 수 있고, 인터리빙된 페이지 캐시 판독 작동이 수행될 수 있다. 도 11A, 11B, 11C는 일 실시예에 따라, 인터리빙된 판독 작동과 함께 레지스터 내 어레이에 프로그래밍될 데이터를 일시적으로 로딩하는 프로세스를 나타내는 도면이다.
도 11A를 참조하면, 데이터가 한번에 한 세그먼트씩 캐시 레지스터(110)로 로딩될 수 있다. 캐시 레지스터(110)는 컨트롤러(310)로부터 채널을 통해 어레이(130)에 프로그래밍될 제 1 데이터를 수신할 수 있다. 캐시 레지스터(110)가 풀 페이지의 데이터를 보유할 때, 풀 페이지의 데이터는 캐시 레지스터(110)로부터 어레이(130)로 제공되어, 어레이(130)에 프로그래밍될 수 있다. 캐시 레지스터(110)가 전체 페이지보다 적은 데이터를 보유할 때, 컨트롤러(310)는 NAND 플래시 메모리 디바이스(400)의 어레이(130)로부터 데이터 판독을 위해 호스트로부터, 페이지 캐시 판독 요청 또는 페이지 판독 요청과 같은, 판독 요청을 수신할 수 있다. 컨트롤러(310)의 펌웨어 또는 하나 이상의 레지스터 내 추적 정보에 기초하여, 컨트롤러(310)는 어레이에 프로그래밍될 풀 페이지보다 적은 데이터가 캐시 레지스터(110)에 의해 보유됨을 검출할 수 있다. 그 후 컨트롤러(310)가 Move to VCache 명령을 발생시킬 수 있다. NAND 플래시 메모리 디바이스(400)는 캐시 레지스터(110)에 의해 보유되는 제 1 데이터를 가상 캐시 레지스터(410)로 이동시키도록 Move to VCache 명령을 실행할 수 있다.
도 11B에 도시되는 바와 같이, 제 1 데이터가 가상 캐시 레지스터(410)에 의해 보유되고 있는 동안 어레이(130)로부터의 제 2 데이터가 데이터 레지스터(120)에 로딩될 수 있다. 제 2 데이터는 일부 예에서 풀 페이지의 데이터를 포함할 수 있다. 그 후 제 2 데이터는 데이터 레지스터(120)로부터 캐시 레지스터(110)로 이동한다. 제 2 데이터가 캐시 레지스터(110)로 로딩되었을 때, 데이터 레지스터(120)는 어레이(130)로부터 새 데이터를 수신할 준비가 되어 있다. 제 2 데이터는 캐시 레지스터(110)로부터 NAND 플래시 메모리 디바이스(400)의 접촉부로 제공될 수 있다. 이는 NAND 플래시 메모리 디바이스(400)로부터 컨트롤러(310)로 제 2 데이터를 출력할 수 있다. 제 2 데이터가 캐시 레지스터(110)로부터 NAND 플래시 메모리 디바이스(400)의 출력으로 제공되고 있을 때, 새 페이지의 데이터와 같은, 어레이(130)로부터의 추가 데이터가 데이터 레지스터(120)에 로딩될 수 있다. 컨트롤러(310)는 가상 캐시 레지스터(410)가 제 1 데이터를 보유하고 있을 때 요망되는 만큼 여러번 도 11B에 도시되는 작동을 NAND 플래시 메모리 디바이스(400)로 하여금 반복하게 하는 명령을 발생시킬 수 있다. 컨트롤러(310)는 가상 캐시 레지스터(410)가 제 1 데이터를 보유하고 있을 때 요망되는 만큼 여러번 다른 판독 및/또는 프로그램 작동을 NAND 플래시 메모리 디바이스(400)로 하여금 수행하게 하는 명령을 발생시킬 수 있다.
판독 및/또는 프로그래밍 작동의 완료를 검출함에 응답하여, 컨트롤러(310)는 Move from VCache 명령을 발생시킬 수 있고, NAND 플래시 메모리 디바이스(400)에 이 명령을 제공할 수 있다. 이제 도 11C를 참조하면, 페이지 캐시 판독 작동 완료 후, 가상 캐시 레지스터(410)에 의해 보유된 제 1 데이터가 캐시 레지스터(110)로 이동할 수 있다. 어레이(130)에 프로그래밍될 데이터의 세그먼트는 캐시 레지스터(110)로 로딩될 수 있다. 풀 페이지의 데이터가 캐시 레지스터(110)로 로딩되었을 때, NAND 플래시 메모리 디바이스(400)는 캐시 레지스터(110)로부터 어레이(130)로 풀 페이지의 데이터를 제공할 수 있고, 이 데이터를 어레이(130)에 프로그래밍할 수 있다.
NAND 플래시 메모리 페이지를 버퍼링하기 위해 NAND 플래시 메모리 디바이스 상에 3개의 개별 레지스터를 갖는 레지스터 구조는 또한 한번에 한 세그먼트씩 캐시 레지스터(110)에 데이터를 일시적으로 로딩시킬 수 있고, 인터리빙된 페이지 캐시 프로그램 작동을 수행하여 서로 다른 데이터를 어레이(130)에 프로그래밍할 수 있다. 도 12A, 12B, 12C는 일 실시예에 따라 어레이에 제 2 데이터를 프로그래밍하도록 인터리빙된 프로그래밍 작동으로 레지스터 내 어레이에 프로그래밍될 제 1 데이터를 일시적으로 로딩하는 프로세스를 예시하는 도면이다.
도 12A를 참조하면, 데이터가 한번에 한 세그먼트씩 캐시 레지스터(110)로 로딩될 수 있다. 캐시 레지스터(110)는 컨트롤러(310)로부터 채널을 통해 어레이(130)로 프로그래밍될 제 1 데이터를 수신할 수 있다. 캐시 레지스터(110)가 풀 페이지의 데이터를 보유할 때, 풀 페이지의 데이터가 캐시 레지스터(110)로부터 어레이(130)로 제공될 수 있다. 캐시 레지스터(110)가 전체 페이지보다 적은 데이터를 보유하고 있을 때, 컨트롤러(310)는 NAND 플래시 메모리 디바이스(400)의 어레이(130)에 데이터 페이지를 프로그래밍하기 위해 호스트로부터 페이지 캐시 프로그램 요청을 수신할 수 있다. 컨트롤러(310)의 펌웨어 또는 하나 이상의 레지스터 내 추적 정보에 기초하여, 컨트롤러(310)는 어레이(130)에 프로그래밍될 풀 페이지보다 적은 데이터가 캐시 레지스터(110)에 의해 보유되고 있음을 검출할 수 있다. 그 후 컨트롤러(310)는 Move to VCache 명령을 발생시킬 수 있다. NAND 플래시 메모리 디바이스(400)는 캐시 레지스터(110)에 의해 보유되는 제 1 데이터를 가상 캐시 레지스터(410)로 이동시키기 위해 Move to VCache 명령을 실행할 수 있다.
도 12B에 도시되는 바와 같이, 제 1 데이터가 가상 캐시 레지스터(410)에 의해 보유되고 있을 때, 어레이(130)에 프로그래밍될 데이터의 페이지를 포함하는 제 2 데이터가 캐시 레지스터(110)로 로딩될 수 있다. 그 후 제 2 데이터가 캐시 레지스터(110)로부터 데이터 레지스터(120)로 이동한다. 제 2 데이터가 데이터 레지스터(120)로 이동하면, 캐시 레지스터(110)는 컨트롤러(310)로부터 새 데이터를 수신할 준비가 된다. 제 2 데이터는 데이터 레지스터(120)로부터 어레이(130)로 제공될 수 있다. 그 후 제 2 데이터가 어레이(130)에 프로그래밍될 수 있다. 제 2 데이터가 데이터 레지스터(120)로부터 어레이(130)로 제공되고 있는 동안, NAND 플래시 메모리 디바이스(400)에 의해 수신되는 다른 데이터 페이지가 캐시 레지스터(110)로 로딩될 수 있다. 컨트롤러(310)는 가상 캐시 레지스터(410)가 제 1 데이터를 보유하고 있는 동안, 요망되는 만큼 많은 횟수로 도 12B에 도시되는 작동을 NAND 플래시 메모리 디바이스(400)로 하여금 반복하게 하는 명령을 발생시킬 수 있다. 컨트롤러(310)는 가상 캐시 레지스터(410)가 제 1 데이터를 보유하고 있는 동안, 요망되는 만큼 많은 횟수로 다른 프로그램 및/또는 판독 작동을 NAND 플래시 메모리 디바이스(400)로 하여금 수행하게 하는 명령을 발생시킬 수 있다.
캐시 페이지 프로그램 작동 완료의 검출에 응답하여, 컨트롤러(310)는 Move from VCache 명령을 발생시켜서 이 명령을 NAND 플래시 메모리 디바이스(400)에 제공할 수 있다. 이제 도 12C를 참조하면, 페이지 캐시 프로그램 작동 완료 후, 가상 캐시 레지스터(410)에 의해 보유된 제 1 데이터가 캐시 레지스터(110)로 이동할 수 있다. 어레이(130)에 프로그래밍될 데이터 세그먼트가 그 후 캐시 레지스터(110)로 로딩될 수 있다. 풀 페이지의 데이터가 캐시 레지스터(110) 내로 로딩되면, NAND 플래시 메모리 디바이스(400)는 풀 페이지의 데이터를 캐시 레지스터(110)로부터 어레이(130)로 제공하여, 이 데이터를 어레이(130)에 프로그래밍할 수 있다.
도 9 내지 도 12C 중 어느 한 도면을 참조하여 논의된 특징들의 임의의 조합이, 적절하다면, 서로 조합될 수 있다. 더욱이, 도 9 내지 도 12C를 참조하여 설명된 레지스터 구조와 연관된 원리 및 장점들은, 어레이(130)에 액세스하는 하나 이상의 다른 작동들이 수행되는 동안 레지스터에 보유된 데이터를 보존할 필요가 있는 임의의 작동과 연계하여 구현될 수 있다.
앞서 설명한 실시예에서, 비휘발성 메모리 및/또는 컨트롤러는 데이터 저장을 위해 비휘발성 메모리를 필요로하는 임의의 전자 디바이스에서 구현될 수 있다. 이와 같이, 여기서 설명되는 비휘발성 메모리 및/또는 컨트롤러 및 관련 방법들은 다양한 전자 디바이스에 통합될 수 있다. 이러한 전자 디바이스의 예는 소비자 전자 제품, 전자 회로, 전자 회로 부품, 소비자 전자 제품의 일부분, 전자 검사 장비, 등을 포함하지만 이에 제한되지 않는다. 소비자 전자 제품의 예는 이동 전화(가령, 스마트폰), 전화, 텔레비전, 컴퓨터 모니터, 컴퓨터, 핸드-헬드 컴퓨터, 랩탑 컴퓨터, 태블릿 컴퓨터, 개인 디지털 보조기기(PDA), 전자레인지, 냉장고, 스테레오 시스템, 카세트 레코더 또는 플레이어, DVD 플레이어, CD 플레이어, VCR, MP3 플레이어, 라디오, 캠코더, 광학 카메라, 디지털 카메라, 휴대용 메모리 칩, 세탁기, 건조기, 세탁기/건조기, 복사기, 팩시밀리 기계, 스캐너, 복합기, 손목시계, 시계, 등을 포함할 수 있으나 이에 제한되지 않는다. 더욱이, 전자 디바이스는 미완성 제품을 포함할 수 있다. 개시되는 기술은 정신적 단계에 적용가능하지 않고 사람의 정신 세계 내에서 또는 종이 상의 수기에 의해 수행되지 않는다.
달리 명확하게 명시하지 않을 경우, 상세한 설명 및 청구범위 전체를 통해, "포함한다", "포함하는", "가진다", "구비하는", 등의 단어는 배타적인 의미가 아니라 포괄적인 의미로 - 즉, "포함하지만 이에 제한되지 않는"의 의미로 - 간주되어야 한다. 앞서의 상세한 설명 및 청구범위는 요소 또는 특징부들을 함께 "연결되는" 또는 "결합되는" 것으로 나타낼 수 있다. 여기서 사용되듯이, 달리 명확히 명시하지 않을 경우, "연결되는"은 하나의 요소/특징부가 다른 요소/특징부에, 꼭 기계적일 필요없이, 직접 또는 간접적으로 연결되는 것을 의미한다. 마찬가지로, 달리 명확히 명시하지 않을 경우, "결합되는"은 하나의 요소/특징부가 다른 요소/특징부에, 꼭 기계적일 필요없이, 직접 또는 간접적으로 결합되는 것을 의미한다. 따라서, 도면이 요소 및 구성요소들의 배열에 대해 다양한 예를 예시하지만, 추가적인 개입 요소, 디바이스, 특징부, 또는 구성요소들이 실제 실시예에 존재할 수 있다. 추가적으로, "여기서", "위에서", "아래에서", 및 유사 의미의 단어들은 본 출원에 사용될 때, 본 출원 전체를 나타내는 것이며, 본 출원의 어느 특정 부분만을 말하는 것이 아니다. 맥락 상 가능하다면, 단수 또는 복수를 이용한 위 상세한 설명의 단어들은 각각 복수 또는 단수를 또한 포함할 수 있다. 2개 이상의 품목의 리스트를 참조할 때 "또는"이라는 단어는 단어의 다음 해석들 - 리스트 내 품목들 중 임의의 하나, 리스트 내 모든 품목, 그리고 리스트 내 품목들의 임의의 조합 - 모두를 커버한다.
여기서 설명되는 방법의 특징들의 임의의 조합은 비-일시적 컴퓨터 판독가능 매체 상에 저장되는 코드로 실시될 수 있다. 실행될 때, 비-일시적 컴퓨터 판독가능 매체 상에 저장된 코드는 여기서 설명되는 방법들 일부 또는 전부를 수행할 수 있게 한다. 여기서 논의되는 방법들 중 임의의 방법이 더 많은 또는 더 적은 작동들을 포함할 수 있고, 이 작동들이 임의의 적절한 순서로 수행될 수 있다. 예를 들어, 프로세스 또는 블록이 주어진 순서로 제시되지만, 대안의 실시예는 다른 순서로, 단계들을 가진 루틴을 수행할 수 있고 또는 블록들을 가진 시스템을 이용할 수 있으며, 일부 프로세스 또는 블록은 삭제, 이동, 추가, 추가분할, 조합, 및/또는 변형될 수 있다. 이러한 프로세스 또는 블록들 각각은 서로 다른 다양한 방식으로 구현될 수 있다. 또한, 프로세스 또는 블록이 왕왕 직렬로 수행되는 것으로 도시되지만, 이 프로세스 또는 블록들이 대신에 병렬로 수행될 수 있고, 또는 서로 다른 시기에 수행될 수 있다. 더욱이, 여기서 논의되는 방법들이 적어도 부분적으로 물리적 회로에 의해 수행된다. 따라서, 청구범위는 순수한 정신적 프로세스 또는 추상적인 생각을 포괄함을 의미하지 않는다.
다양한 실시예가 앞서 설명되었다. 이러한 구체적 실시예를 참조하여 설명되지만, 상세한 설명은 예시적인 것일 뿐 제한적이고자 함이 아니다. 다양한 변형예 및 응용예가 당 업자에게 나타날 수 있다.

Claims (36)

  1. 컨트롤러와,
    제 1 비휘발성 메모리 디바이스와,
    상기 컨트롤러와 상기 제 1 비휘발성 메모리 디바이스 사이의 인터페이스를 포함하는 장치에 있어서,
    상기 제 1 비휘발성 메모리 디바이스는,
    데이터를 저장하도록 구성되는 비휘발성 메모리 셀의 제 1 어레이와,
    휘발성 메모리를 포함하는 제 1 레지스터와,
    휘발성 메모리를 포함하며, 상기 제 1 레지스터와 독립적으로 제공되는 제 2 레지스터를 포함하되,
    상기 컨트롤러는 상기 제 1 비휘발성 메모리로 하여금
    상기 제 1 비휘발성 메모리 디바이스에 대한 프로그래밍 요청에 응답하여, 상기 비휘발성 메모리 셀의 제 1 어레이에 프로그래밍될 프로그래밍 데이터를 상기 제 1 레지스터에 로딩하기 위한 명령을 발생시키도록 구성되고,
    상기 제 1 비휘발성 메모리 디바이스에 대한 판독 요청을 수신하고, 상기 판독 요청에 의해 요청된 데이터가 상기 프로그래밍 데이터이고 상기 프로그래밍 데이터가 상기 제1 어레이에 아직 프로그래밍되지 않았다는 것에 응답하여, 실행될 판독 명령을 상기 제 1 레지스터에 대한 판독 명령으로 전환(convert)하기 위한 명령을 발생시키도록 구성되며,
    전환된 상기 판독 명령의 실행에 의해, 상기 제1 레지스터로 하여금, 상기 프로그래밍 데이터가 상기 제 1 어레이에 프로그래밍되기 전에 그리고 상기 데이터가 상기 제 1 어레이로부터 판독되고 상기 제 2 레지스터에 로딩되는 프로세스를 수반하지 않고, 상기 제 1 레지스터로부터 상기 프로그래밍 데이터를 상기 컨트롤러에 제공하게 하는 명령을 발생시키도록 구성되는, 장치.
  2. 제 1 항에 있어서,
    상기 제 1 비휘발성 메모리 디바이스는 NAND 플래시 메모리 디바이스를 포함하는
    장치.
  3. 제 2 항에 있어서,
    상기 제 1 레지스터는 캐시 레지스터 또는 데이터 레지스터 중 하나를 포함하고, 상기 제 2 레지스터는 상기 캐시 레지스터 또는 상기 데이터 레지스터 중 다른 하나를 포함하는
    장치.
  4. 제 1 항에 있어서,
    상기 컨트롤러는 제 2 비휘발성 메모리 디바이스와 통신하고, 상기 제 2 비휘발성 메모리 디바이스는 데이터를 저장하도록 구성되는 비휘발성 메모리 셀의 제 2 어레이와, 휘발성 메모리를 포함하는 제 3 레지스터와, 휘발성 메모리를 포함하는 제 4 레지스터를 포함하며,
    상기 컨트롤러는 상기 제 2 비휘발성 메모리로 하여금,
    비휘발성 메모리 셀의 제 2 어레이에 프로그래밍될 제 2 프로그래밍 데이터를 상기 제 3 레지스터에 로딩시키기 위한 명령을 발생시키도록 구성되고,
    비휘발성 메모리 셀의 제 2 어레이로부터 판독되는 제 2 판독 데이터를 상기 제 4 레지스터에 로딩시키기 위한 명령을 발생시키도록 구성되며,
    상기 제 3 레지스터가 비휘발성 메모리 셀의 제 2 어레이에 프로그래밍될 상기 제 2 프로그래밍 데이터를 보유하고 있을 때 상기 제 4 레지스터로부터 상기 컨트롤러로 상기 제 2 판독 데이터를 제공하기 위한 명령을 발생시키도록 구성되는
    장치.
  5. 제 1 항에 있어서,
    상기 컨트롤러는 제 2 비휘발성 메모리 디바이스와 통신하고, 상기 제 2 비휘발성 메모리 디바이스는 데이터를 저장하도록 구성되는 비휘발성 메모리 셀의 제 2 어레이와, 휘발성 메모리를 포함하는 제 3 레지스터와, 휘발성 메모리를 포함하는 제 4 레지스터를 포함하되,
    상기 컨트롤러는 상기 제 2 비휘발성 메모리로 하여금
    상기 비휘발성 메모리 셀의 제 2 어레이에 프로그래밍될 제 2 프로그래밍 데이터를 상기 제 3 레지스터에 로딩하기 위한 명령을 발생시키도록 구성되고,
    프로그래밍될 데이터가 비휘발성 메모리 셀의 제 2 어레이에 프로그래밍되기 전에 상기 제 3 레지스터에 저장된 프로그래밍될 상기 제 2 프로그래밍 데이터를 상기 컨트롤러로 리턴시키기 위한 명령을 발생시키도록 구성되는
    장치.
  6. 제 1 항에 있어서,
    상기 컨트롤러는 상기 제 1 비휘발성 메모리로 하여금, 상기 제 2 레지스터의 이용없이 비휘발성 메모리 셀의 제 1 어레이에 프로그래밍될 상기 프로그래밍 데이터를 상기 제 1 레지스터에 로딩시키기 위한 명령을 발생시키도록 구성되는
    장치.
  7. 제 1 항에 있어서,
    상기 컨트롤러는 상기 제 1 비휘발성 메모리 디바이스로 하여금, 상기 제 1 레지스터에 보유되는 프로그래밍될 상기 프로그래밍 데이터를 상기 제 2 레지스터로 이동시키고, 이어서, 상기 제 1 어레이로부터 상기 제 1 레지스터로 제 2 판독 데이터를 로딩시키며, 상기 제 2 판독 데이터를 상기 제 1 레지스터로부터 상기 컨트롤러에 제공하게 하고, 상기 제 2 레지스터로부터 프로그래밍될 상기 프로그래밍 데이터를 상기 제 1 레지스터로 이동시키기 위한 하나 이상의 명령을 발생시키도록 구성되는
    장치.
  8. 제 1 항에 있어서,
    상기 컨트롤러는, 상기 제 1 어레이로부터 판독되는 데이터 그리고 상기 제 1 어레이에 프로그래밍될 데이터를 보유하는데 개별 레지스터들이 사용되도록, 상기 제 1 비휘발성 메모리에 명령을 제공하도록 구성되는
    장치.
  9. 제 1 항에 있어서,
    상기 컨트롤러는, 읽어들인 데이터가 비휘발성 메모리 셀의 제 1 어레이에 프로그래밍되기 전에 상기 제 1 레지스터로부터 데이터를 읽어들이도록 구성되는
    장치.
  10. 컨트롤러와,
    비휘발성 메모리 디바이스를 포함하는 장치에 있어서,
    상기 비휘발성 메모리 디바이스는,
    데이터를 저장하도록 구성되는 비휘발성 메모리 셀의 어레이와,
    휘발성 메모리를 포함하는 제 1 레지스터와,
    상기 제 1 레지스터와는 별개인, 휘발성 메모리를 포함하는, 제 2 레지스터를 포함하되,
    상기 제 1 레지스터는
    세그먼트 단위로 프로그래밍 데이터를 수신하도록 구성되고,
    수신된 프로그래밍 데이터의 세그먼트를 보유하도록 구성되고,
    수신된 프로그래밍 데이터의 세그먼트가 상기 컨트롤러로부터의 명령에 응답하여 비휘발성 메모리 셀의 어레이에 프로그래밍되기 전에 수신된 프로그래밍 데이터의 세그먼트들을 호스트로 리턴하도록 구성되며 -상기 명령은 수신된 프로그래밍 데이터의 세그먼트가 아직 상기 비휘발성 메모리 셀의 어레이에 프로그래밍되지 않았다는 결정에 응답하여 상기 비휘발성 메모리 셀의 어레이로부터 수신된 프로그래밍 데이터의 세그먼트들을 판독하라는 명령으로부터 변환됨-,
    복수의 수신된 프로그래밍 데이터의 세그먼트들을 포함하는 프로그래밍 데이터의 페이지가 제 1 레지스터에 보유된 후, 비휘발성 메모리 셀의 어레이에 프로그래밍 데이터의 페이지를 제공하도록 구성되고,
    상기 제 2 레지스터는,
    상기 제 1 레지스터가 프로그래밍 데이터의 하나 이상의 세그먼트를 보유할 때 상기 어레이로부터 판독된 데이터를 읽어들이도록 구성되고,
    상기 제 1 레지스터가 프로그래밍 데이터의 하나 이상의 세그먼트를 보유하고 있을 때, 판독된 데이터를 상기 비휘발성 메모리 디바이스의 출력으로 제공하도록 구성되는
    장치.
  11. 삭제
  12. 제 10 항에 있어서,
    상기 제 1 레지스터는, 상기 제 2 레지스터가 상기 어레이로부터 판독된 데이터를 보유하고 있을 때, 상기 어레이에 프로그래밍을 위한 데이터를 보유하도록 구성되는
    장치.
  13. 제 10 항에 있어서,
    상기 비휘발성 메모리 디바이스는 상기 비휘발성 메모리 디바이스의 입력과 상기 제 1 레지스터 사이의 제 1 전기 연결부와, 상기 어레이와 상기 제 2 레지스터 사이의 제 2 전기 연결부를 포함하고, 상기 제 2 전기 연결부는 상기 제 1 레지스터 내의 데이터와 간섭없이, 상기 어레이로부터의 데이터를 상기 제 2 레지스터로 로딩시키는
    장치.
  14. 컨트롤러와,
    비휘발성 메모리 디바이스와,
    상기 컨트롤러와 상기 비휘발성 메모리 디바이스 사이의 인터페이스를 포함하는 장치에 있어서, 상기 비휘발성 메모리 디바이스는,
    데이터를 저장하도록 구성되는 비휘발성 메모리 셀의 어레이와,
    휘발성 메모리를 포함하는 제 1 레지스터와,
    휘발성 메모리를 포함하고 상기 제 1 레지스터와 독립적으로 제공되는 제 2 레지스터를 포함하되,
    상기 비휘발성 메모리 디바이스는,
    상기 제 1 레지스터에 제 1 데이터를 로딩하도록 구성되고,
    상기 제 1 데이터를 상기 제 1 레지스터로부터 상기 제 2 레지스터로 이동시키도록 구성되며,
    상기 제 2 레지스터가 상기 제 1 데이터를 보유하고 있을 때 상기 제 1 레지스터와 상기 어레이 사이에서 제 2 데이터를 전달하도록 구성되고,
    상기 제 1 데이터를 상기 제 2 레지스터로부터 상기 제 1 레지스터로 리턴시키도록 구성되며,
    상기 제 2 데이터가 상기 제 1 레지스터와 상기 어레이 사이에서 전달된 후 상기 제 1 데이터를 상기 어레이에 프로그래밍하도록 구성되는
    장치.
  15. 제 14 항에 있어서,
    상기 비휘발성 메모리 디바이스는 적어도 부분적으로, 상기 제 2 데이터를 상기 어레이로부터 상기 제 1 레지스터로 로딩함으로써, 상기 제 1 레지스터와 상기 어레이 사이에서 상기 제 2 데이터를 전달하도록 구성되는
    장치.
  16. 제 14 항에 있어서,
    상기 비휘발성 메모리는 적어도 부분적으로, 한번에 한 세그먼트씩 데이터를 상기 제 1 레지스터로 증분 방식으로 로딩함으로써, 상기 제 1 데이터를 상기 제 1 레지스터에 로딩하도록 구성되며, 일 페이지의 데이터가 복수의 세그먼트를 포함하는
    장치.
  17. 제 14 항에 있어서,
    상기 장치는 임베디드 멀티미디어 카드를 포함하고, 상기 임베디드 멀티미디어 카드는 상기 비휘발성 메모리 디바이스를 포함하는
    장치.
  18. 비휘발성 메모리 디바이스에 액세스하기 위한 요청을 변환하기 위한 방법에 있어서, 상기 방법은,
    상기 비휘발성 메모리 디바이스의 컨트롤러에 의해 구현됨에 있어서, 상기 컨트롤러는 인터페이스에 의해 상기 비휘발성 메모리 디바이스로부터 분리되고,
    비휘발성 메모리 셀들을 포함하는 상기 비휘발성 메모리 디바이스의 어레이에 프로그래밍 데이터를 프로그래밍하기 위한 제1 요청을 수신하는 단계와,
    상기 제 1 요청을, 상기 비휘발성 메모리 디바이스의 제 1 레지스터의 휘발성 메모리에 상기 프로그래밍 데이터를 로딩시키고 이어서 비휘발성 메모리 셀의 어레이에 프로그래밍되게 하는 하나 이상의 프로그래밍 명령으로 전환하는 단계와,
    상기 제 1 요청과 연관된 상기 프로그래밍 데이터가 비휘발성 메모리 셀의 어레이에 프로그래밍되기 전에, 상기 비휘발성 메모리 디바이스로부터의 판독 데이터를 판독하기 위한 제 2 요청을 수신하는 단계와,
    상기 제 2 요청을, 상기 판독 데이터가 상기 어레이로부터 판독되게 하고, 상기 비휘발성 메모리 디바이스의 제 2 레지스터의 휘발성 메모리에 로딩되게 하고, 상기 제 2 요청의 요청 소스에게 제공되게 하는 하나 이상의 판독 명령들로 전환하는 단계 -상기 판독 데이터는 제 2 레지스터에 로딩되고 상기 제 1 레지스터가 프로그래밍 데이터의 적어도 일부를 유지하는 동안 및 상기 프로그래밍 데이터가 어레이에 프로그래밍되기 전에 상기 제 2 요청의 요청 소스에게 제공됨-와,
    상기 프로그래밍 데이터가 아직 상기 어레이에 프로그래밍 되지 않은 경우, 상기 비휘발성 메모리 디바이스로부터 상기 프로그래밍 데이터의 적어도 일부의 판독을 판독하기 위한 제 3 요청을 수신하는 단계와,
    상기 어레이로부터 데이터를 판독하는 프로세스나 상기 데이터를 제 2 레지스터에 로딩하는 프로세스를 수반하지 않고, 상기 프로그래밍 데이터가 상기 어레이에 프로그래밍 되기 전에, 상기 프로그래밍 데이터가 상기 제 3 요청의 요청 소스에게 제공되게 하는 하나 이상의 제 2 판독 명령으로 상기 제 3 요청을 전환하는 단계
    를 포함하는, 비휘발성 메모리 디바이스에 액세스하기 위한 요청을 변환하기 위한 방법.
  19. 제 18 항에 있어서,
    상기 방법은, 상기 비휘발성 메모리 디바이스로부터의 상기 프로그래밍 데이터의 적어도 일부분에 액세스하기 위한 제 3 요청을 하나 이상의 판독 명령으로 변환하고, 상기 어레이에 저장되지 않은 상기 제 1 레지스터에 보유된 상기 프로그래밍 데이터의 데이터를 상기 비휘발성 메모리 디바이스로부터 읽어들이는 명령을 로딩하는 단계를 더 포함하는
    비휘발성 메모리 디바이스에 액세스하기 위한 요청을 변환하기 위한 방법.
  20. 제 18 항에 있어서,
    상기 방법은, 상기 비휘발성 메모리의 어레이에 데이터를 프로그래밍하기 위한 다른 요청을 하나 이상의 다른 프로그래밍 명령으로 변환하는 단계를 더 포함하고, 상기 하나 이상의 다른 프로그래밍 명령은 상기 프로그래밍 데이터의 일 세그먼트가 단일 페이지 프로그램 작동에서 상기 제 1 요청과 연관된 상기 프로그래밍 데이터와 함께 상기 어레이에 프로그래밍될 수 있도록 상기 비휘발성 메모리 디바이스의 상기 제 1 레지스터의 휘발성 메모리에 로딩되게 하는
    비휘발성 메모리 디바이스에 액세스하기 위한 요청을 변환하기 위한 방법.
  21. 삭제
  22. 삭제
  23. 삭제
  24. 삭제
  25. 삭제
  26. 삭제
  27. 삭제
  28. 삭제
  29. 삭제
  30. 삭제
  31. 삭제
  32. 삭제
  33. 삭제
  34. 삭제
  35. 삭제
  36. 삭제
KR1020167011108A 2013-09-30 2014-09-22 비휘발성 메모리 디바이스의 휘발성 메모리 구조 및 관련 컨트롤러 KR101847315B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/041,334 2013-09-30
US14/041,334 US20150095551A1 (en) 2013-09-30 2013-09-30 Volatile memory architecutre in non-volatile memory devices and related controllers
PCT/US2014/056840 WO2015047962A1 (en) 2013-09-30 2014-09-22 Volatile memory architecture in no-volatile memory devices and related controllers

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020187009298A Division KR101940963B1 (ko) 2013-09-30 2014-09-22 비휘발성 메모리 디바이스의 휘발성 메모리 구조 및 관련 컨트롤러

Publications (2)

Publication Number Publication Date
KR20160062119A KR20160062119A (ko) 2016-06-01
KR101847315B1 true KR101847315B1 (ko) 2018-04-09

Family

ID=52741292

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020187009298A KR101940963B1 (ko) 2013-09-30 2014-09-22 비휘발성 메모리 디바이스의 휘발성 메모리 구조 및 관련 컨트롤러
KR1020167011108A KR101847315B1 (ko) 2013-09-30 2014-09-22 비휘발성 메모리 디바이스의 휘발성 메모리 구조 및 관련 컨트롤러

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020187009298A KR101940963B1 (ko) 2013-09-30 2014-09-22 비휘발성 메모리 디바이스의 휘발성 메모리 구조 및 관련 컨트롤러

Country Status (7)

Country Link
US (2) US20150095551A1 (ko)
EP (1) EP3053168B1 (ko)
JP (1) JP6142081B2 (ko)
KR (2) KR101940963B1 (ko)
CN (1) CN105593942B (ko)
TW (2) TWI625731B (ko)
WO (1) WO2015047962A1 (ko)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102025088B1 (ko) * 2012-09-03 2019-09-25 삼성전자 주식회사 메모리 컨트롤러 및 상기 메모리 컨트롤러를 포함하는 전자장치
US9754648B2 (en) 2012-10-26 2017-09-05 Micron Technology, Inc. Apparatuses and methods for memory operations having variable latencies
US9740485B2 (en) 2012-10-26 2017-08-22 Micron Technology, Inc. Apparatuses and methods for memory operations having variable latencies
US9734097B2 (en) 2013-03-15 2017-08-15 Micron Technology, Inc. Apparatuses and methods for variable latency memory operations
TWI494849B (zh) * 2013-05-06 2015-08-01 Phison Electronics Corp 韌體碼載入方法、記憶體控制器與記憶體儲存裝置
US9563565B2 (en) 2013-08-14 2017-02-07 Micron Technology, Inc. Apparatuses and methods for providing data from a buffer
US9727493B2 (en) 2013-08-14 2017-08-08 Micron Technology, Inc. Apparatuses and methods for providing data to a configurable storage area
US20150178125A1 (en) * 2013-12-23 2015-06-25 Oracle International Corporation Reducing synchronization of tasks in latency-tolerant task-parallel systems
US10365835B2 (en) 2014-05-28 2019-07-30 Micron Technology, Inc. Apparatuses and methods for performing write count threshold wear leveling operations
CN113655952A (zh) 2016-11-26 2021-11-16 华为技术有限公司 数据迁移的方法、主机、及固态存储设备
US10275378B2 (en) * 2017-03-07 2019-04-30 Western Digital Technologies, Inc. Data buffer pointer fetching for direct memory access
US20180292991A1 (en) * 2017-04-11 2018-10-11 Micron Technology, Inc. Memory protocol with programmable buffer and cache size
US10497447B2 (en) * 2017-06-29 2019-12-03 SK Hynix Inc. Memory device capable of supporting multiple read operations
US10685702B2 (en) 2017-08-28 2020-06-16 Micron Technology, Inc. Memory array reset read operation
US10649656B2 (en) 2017-12-28 2020-05-12 Micron Technology, Inc. Techniques to update a trim parameter in non-volatile memory
US10922013B2 (en) * 2018-04-09 2021-02-16 Western Digital Technologies, Inc. Suspending and resuming a read operation for a non-volatile memory
US10636459B2 (en) * 2018-05-30 2020-04-28 Micron Technology, Inc. Wear leveling
KR20200118311A (ko) 2019-04-05 2020-10-15 삼성전자주식회사 데이터를 스왑하기 위한 메모리 장치 및 메모리 장치의 동작 방법
US11366760B2 (en) 2020-03-12 2022-06-21 Micron Technology, Inc. Memory access collision management on a shared wordline
US11188473B1 (en) * 2020-10-30 2021-11-30 Micron Technology, Inc. Cache release command for cache reads in a memory sub-system
US11455254B2 (en) * 2020-12-10 2022-09-27 Macronix International Co., Ltd. Flash memory system and flash memory device thereof
US20230027820A1 (en) * 2021-07-21 2023-01-26 Micron Technology, Inc. Hybrid parallel programming of single-level cell memory
CN114217750B (zh) * 2021-12-28 2023-07-04 深圳忆联信息系统有限公司 Ssd低功耗优化方法、装置、计算机设备及存储介质

Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6385074B1 (en) 1998-11-16 2002-05-07 Matrix Semiconductor, Inc. Integrated circuit structure including three-dimensional memory array
WO2001075896A9 (en) 2000-03-30 2002-12-19 Micron Technology Inc Flash with consistent latency for read operations
US6671204B2 (en) 2001-07-23 2003-12-30 Samsung Electronics Co., Ltd. Nonvolatile memory device with page buffer having dual registers and methods of using the same
US20080046639A1 (en) 2006-06-30 2008-02-21 Hidetaka Tsuji Memory system with nonvolatile semiconductor memory
JP2008511904A (ja) * 2004-08-27 2008-04-17 マイクロン テクノロジー,インコーポレイテッド 単方向データバスを有するメモリシステムおよび方法
US20080147962A1 (en) 2006-12-15 2008-06-19 Diggs Mark S Storage subsystem with multiple non-volatile memory arrays to protect against data losses
US7599222B2 (en) 2005-12-28 2009-10-06 Samsung Electronics Co., Ltd. Semiconductor memory device using pipelined-buffer programming and related method
US7689741B2 (en) 2003-09-16 2010-03-30 Samsung Electronics Co., Ltd. Dual buffer memory system for reducing data transmission time and control method thereof
US20100103723A1 (en) 2007-08-01 2010-04-29 Ken Kawai Nonvolatile memory apparatus
US20100174853A1 (en) 2009-01-08 2010-07-08 Samsung Electronics Co., Ltd. User device including flash and random write cache and method writing data
US20110208905A1 (en) 2008-12-09 2011-08-25 Rambus Inc. Non-Volatile Memory Device For Concurrent And Pipelined Memory Operations
JP2012533139A (ja) * 2009-07-08 2012-12-20 サンディスク テクノロジーズ インコーポレイテッド 不揮発性メモリの最適化ページプログラミング順序

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5710853A (en) * 1980-06-23 1982-01-20 Nec Corp Memory device
JPH0337897A (ja) * 1989-07-05 1991-02-19 Nec Corp マイクロコンピュータ
JP3191302B2 (ja) * 1990-12-28 2001-07-23 日本電気株式会社 メモリ回路
KR970008188B1 (ko) * 1993-04-08 1997-05-21 가부시끼가이샤 히다찌세이사꾸쇼 플래시메모리의 제어방법 및 그것을 사용한 정보처리장치
EP1052646B1 (en) * 1999-05-11 2004-07-14 Fujitsu Limited Non-volatile semiconductor memory device permitting data-read operation performed during data-write/erase operation
US6851026B1 (en) 2000-07-28 2005-02-01 Micron Technology, Inc. Synchronous flash memory with concurrent write and read operation
JP2003162377A (ja) * 2001-11-28 2003-06-06 Hitachi Ltd ディスクアレイシステム及びコントローラ間での論理ユニットの引き継ぎ方法
JP4325275B2 (ja) * 2003-05-28 2009-09-02 株式会社日立製作所 半導体装置
KR100672122B1 (ko) * 2005-03-10 2007-01-19 주식회사 하이닉스반도체 소비 전력이 감소된 플래시 메모리 장치의 페이지 버퍼 회로
JP2007164355A (ja) * 2005-12-12 2007-06-28 Matsushita Electric Ind Co Ltd 不揮発性記憶装置、そのデータ読出方法及びそのデータ書込み方法
WO2008131058A2 (en) * 2007-04-17 2008-10-30 Rambus Inc. Hybrid volatile and non-volatile memory device
ITMI20070787A1 (it) * 2007-04-17 2008-10-18 St Microelectronics Srl Memoria non volatile
JP5317690B2 (ja) * 2008-12-27 2013-10-16 株式会社東芝 メモリシステム
US8149622B2 (en) * 2009-06-30 2012-04-03 Aplus Flash Technology, Inc. Memory system having NAND-based NOR and NAND flashes and SRAM integrated in one chip for hybrid data, code and cache storage
US8144512B2 (en) * 2009-12-18 2012-03-27 Sandisk Technologies Inc. Data transfer flows for on-chip folding
US8868852B2 (en) * 2010-07-07 2014-10-21 Marvell World Trade Ltd. Interface management control systems and methods for non-volatile semiconductor memory
JP5756622B2 (ja) * 2010-11-30 2015-07-29 株式会社日立製作所 半導体装置
US8625345B2 (en) * 2011-07-27 2014-01-07 Micron Technology, Inc. Determining and transferring data from a memory array

Patent Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6385074B1 (en) 1998-11-16 2002-05-07 Matrix Semiconductor, Inc. Integrated circuit structure including three-dimensional memory array
WO2001075896A9 (en) 2000-03-30 2002-12-19 Micron Technology Inc Flash with consistent latency for read operations
US6671204B2 (en) 2001-07-23 2003-12-30 Samsung Electronics Co., Ltd. Nonvolatile memory device with page buffer having dual registers and methods of using the same
US7689741B2 (en) 2003-09-16 2010-03-30 Samsung Electronics Co., Ltd. Dual buffer memory system for reducing data transmission time and control method thereof
JP2008511904A (ja) * 2004-08-27 2008-04-17 マイクロン テクノロジー,インコーポレイテッド 単方向データバスを有するメモリシステムおよび方法
US7599222B2 (en) 2005-12-28 2009-10-06 Samsung Electronics Co., Ltd. Semiconductor memory device using pipelined-buffer programming and related method
US20080046639A1 (en) 2006-06-30 2008-02-21 Hidetaka Tsuji Memory system with nonvolatile semiconductor memory
US20080147962A1 (en) 2006-12-15 2008-06-19 Diggs Mark S Storage subsystem with multiple non-volatile memory arrays to protect against data losses
US20100103723A1 (en) 2007-08-01 2010-04-29 Ken Kawai Nonvolatile memory apparatus
US20110208905A1 (en) 2008-12-09 2011-08-25 Rambus Inc. Non-Volatile Memory Device For Concurrent And Pipelined Memory Operations
US20100174853A1 (en) 2009-01-08 2010-07-08 Samsung Electronics Co., Ltd. User device including flash and random write cache and method writing data
JP2012533139A (ja) * 2009-07-08 2012-12-20 サンディスク テクノロジーズ インコーポレイテッド 不揮発性メモリの最適化ページプログラミング順序

Also Published As

Publication number Publication date
US20150095551A1 (en) 2015-04-02
KR20160062119A (ko) 2016-06-01
TW201721640A (zh) 2017-06-16
WO2015047962A8 (en) 2016-01-07
JP6142081B2 (ja) 2017-06-07
CN105593942A (zh) 2016-05-18
US20180158527A1 (en) 2018-06-07
EP3053168B1 (en) 2022-11-30
CN105593942B (zh) 2019-11-29
TW201535407A (zh) 2015-09-16
EP3053168A4 (en) 2017-05-03
JP2016536732A (ja) 2016-11-24
TWI582785B (zh) 2017-05-11
KR101940963B1 (ko) 2019-01-21
KR20180037320A (ko) 2018-04-11
TWI625731B (zh) 2018-06-01
WO2015047962A1 (en) 2015-04-02
EP3053168A1 (en) 2016-08-10

Similar Documents

Publication Publication Date Title
KR101847315B1 (ko) 비휘발성 메모리 디바이스의 휘발성 메모리 구조 및 관련 컨트롤러
US10664409B2 (en) Data storage apparatus utilizing sequential map entry for responding to read request and operating method thereof
CN107844431B (zh) 映射表更新方法、存储器控制电路单元与存储器存储装置
US8812784B2 (en) Command executing method, memory controller and memory storage apparatus
US9570183B1 (en) Method and controller for managing memory device
US20100042773A1 (en) Flash memory storage system and data writing method thereof
US11150811B2 (en) Data storage apparatus performing flush write operation, operating method thereof, and data processing system including the same
US9396108B2 (en) Data storage device capable of efficiently using a working memory device
US20100268872A1 (en) Data storage system comprising memory controller and nonvolatile memory
WO2016048599A1 (en) Caching technologies employing data compression
KR102240261B1 (ko) 메모리 관리
US20200218653A1 (en) Controller, data storage device, and operating method thereof
US10503433B2 (en) Memory management method, memory control circuit unit and memory storage device
CN111796759B (zh) 多平面上的片段数据读取的计算机可读取存储介质及方法
CN107357520B (zh) 整理指令处理方法、存储器控制电路单元及其存储装置
US11687282B2 (en) Time to live for load commands
CN113885808A (zh) 映射信息记录方法以及存储器控制电路单元与存储装置
CN112230849A (zh) 存储器控制方法、存储器存储装置及存储器控制器
US10515693B1 (en) Data storage apparatus and operating method thereof
KR101175250B1 (ko) 낸드 플래시 메모리 장치와 그의 컨트롤러 및 이들의 라이트 오퍼레이션 방법
US11144460B2 (en) Data storage device, data processing system, and operating method of data storage device
US20190258425A1 (en) Data storage device and operating method thereof
CN116243854A (zh) 数据存储系统及数据存储方法
CN114385244A (zh) 存储器管理方法、存储器存储装置及存储器控制电路单元
KR20140074704A (ko) 데이터 저장 장치 및 이의 동작 방법

Legal Events

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