KR20130110153A - 다이 인터리브를 향상시키기 위해 프로그래밍 시퀀스를 구현하기 위한 시스템들 및 방법들 - Google Patents

다이 인터리브를 향상시키기 위해 프로그래밍 시퀀스를 구현하기 위한 시스템들 및 방법들 Download PDF

Info

Publication number
KR20130110153A
KR20130110153A KR1020137004537A KR20137004537A KR20130110153A KR 20130110153 A KR20130110153 A KR 20130110153A KR 1020137004537 A KR1020137004537 A KR 1020137004537A KR 20137004537 A KR20137004537 A KR 20137004537A KR 20130110153 A KR20130110153 A KR 20130110153A
Authority
KR
South Korea
Prior art keywords
die
data
page
writing
lower page
Prior art date
Application number
KR1020137004537A
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 샌디스크 테크놀로지스, 인코포레이티드
Publication of KR20130110153A publication Critical patent/KR20130110153A/ko

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • G11C11/5671Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge trapping in an insulator
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • G11C11/5621Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
    • G11C11/5628Programming or writing circuits; Data input circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1015Read-write modes for single port memories, i.e. having either a random port or a serial port
    • G11C7/1042Read-write modes for single port memories, i.e. having either a random port or a serial port using interleaving techniques, i.e. read-write of one part of the memory while preparing another part
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0038System on Chip
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2211/00Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C2211/56Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
    • G11C2211/564Miscellaneous aspects
    • G11C2211/5643Multilevel memory comprising cache storage devices
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2211/00Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C2211/56Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
    • G11C2211/564Miscellaneous aspects
    • G11C2211/5648Multilevel memory programming, reading or erasing operations wherein the order or sequence of the operations is relevant

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Read Only Memory (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

USB(universal serial bus) 메모리 장치와 같은 메모리 장치에 데이터를 순차적으로 기입하기 위한 시스템들 및 방법들이 개시된다. 메모리 장치는 제 1 다이 및 제 2 다이를 포함하며, 제 1 다이 및 제 2 다이 각각은 복수의 페이지들을 포함한다. 장치의 시스템 제어기는 제 1 다이의 상위 페이지에 한 세트의 데이터의 제 1 부분을 기입한다. 이어서 제 2 다이의 하위 페이지에 한 세트의 데이터의 제 2 부분을 기입한다. 이어서, 시스템 제어기는 제 1 다이의 하위 페이지에 한 세트의 데이터의 제 4 부분을 기입하기 전에 제 2 다이의 상위 페이지에 한 세트의 데이터의 제 3 부분을 기입한다.

Description

다이 인터리브를 향상시키기 위해 프로그래밍 시퀀스를 구현하기 위한 시스템들 및 방법들{SYSTEMS AND METHODS FOR IMPLEMENTING A PROGRAMMING SEQUENCE TO ENHANCE DIE INTERLEAVE}
이 출원은 일반적으로 메모리 시스템에서 데이터를 관리하는 것에 관한 것이다. 특히, 이 출원은 재프로그램가능 비휘발성 반도체 플래시 메모리에서 다이 인터리브를 향상시키기 위해 개선된 프로그래밍 시퀀스를 구현하는 메모리 시스템에 관한 것이다.
종래의 플래시 메모리 시스템에서 데이터를 복수의 다이에 기입할 때, 시스템 제어기는 통상적으로 트랜잭션 동안, 데이터가 다이의 하위 페이지에 기입되기 전에 데이터가 동일 다이의 상위 페이지에 기입되는 프로그래밍 시퀀스를 이용한다. 다이의 상위 페이지에 데이터를 기입한 후에 다이의 캐시가 릴리즈하는 시간량 때문에, 시스템 제어기는 종종 시스템 제어기가 다이의 하위 페이지에의 기입을 실행할 수 있기 전에 트랜잭션 동안 상당 시간 동안 작업없이 기다려야 한다.
트랜잭션 동안 시스템 제어기가 작업없이 기다려야 하는 시간량을 감소시킬 필요성을 해결하기 위해서, 다이의 상위 페이지에 데이터를 기입하기에 앞서 트랜잭션 동안 다이의 하위 페이지에 데이터를 기입함으로써 메모리 장치의 캐시가 릴리즈하기를 시스템 제어기가 기다려야 하는 시간량을 감소시키는 메모리 장치에 데이터를 순차적으로 기입하기 위한 방법들 및 시스템들이 본원에서 개시된다.
일 측면에 따라서, USB(universal serial bus) 메모리 장치와 같은 메모리 장치에 데이터를 순차적으로 기입하기 위한 방법이 개시된다. 제 1 다이 및 제 2 다이 각각이 복수의 페이지들을 포함하는 상기 제 1 다이 및 상기 제 2 다이를 포함하는 메모리 장치에서, 제 1 세트의 데이터가 수신된다. 제 1 세트의 데이터가 제 1 다이 및 제 2 다이의 하나 이상의 페이지들에 기입된다.
제 1 다이 및 제 2 다이의 하나 이상의 페이지들에 제 1 세트의 데이터를 기입한 후에 제 2 세트의 데이터가 수신된다. 제 2 다이의 하위 페이지에 제 2 세트의 데이터의 제 1 부분이 기입되고, 제 2 다이의 하위 페이지에 제 2 세트의 데이터의 제 1 부분을 기입한 후에 제 2 다이의 상위 페이지에 제 2 세트의 데이터의 제 2 부분이 기입된다.
일 구현에서, 제 2 세트의 데이터의 상기 제 1 부분을 제 2 다이의 하위 페이지에 기입하기 전에 제 1 다이의 상위 페이지에 제 2 세트의 데이터의 제 3 부분이 기입될 수 있다. 또한, 제 2 세트의 데이터의 제 2 부분을 제 2 다이의 상위 페이지에 기입한 후에 제 1 다이의 하위 페이지에 제 2 세트의 데이터의 제 4 부분이 기입될 수 있다.
또 다른 측면에 따라서, USB 메모리 장치와 같은 메모리 장치에 데이터를 순차적으로 기입하기 위한 또 다른 방법이 개시된다. 제 1 다이 및 제 2 다이 각각이 복수의 페이지들을 포함하는 상기 제 1 다이 및 상기 제 2 다이를 포함하는 메모리 장치에서, 한 세트의 데이터의 제 1 부분이 제 1 다이의 상위 페이지에 기입된다. 제 1 다이의 상위 페이지에 한 세트의 데이터의 제 1 부분이 기입된 후에 제 2 다이의 하위 페이지에 한 세트의 데이터의 제 2 부분이 기입된다. 제 2 다이의 하위 페이지에 한 세트의 데이터의 제 2 부분이 기입된 후에 제 2 다이의 상위 페이지에 한 세트의 데이터의 제 3 부분이 기입된다. 제 2 다이의 상위 페이지에 한 세트의 데이터의 제 3 부분이 기입된 후에 제 1 다이의 하위 페이지에 한 세트의 데이터의 제 4 부분이 기입된다.
또 다른 측면에 따라서, 통신 인터페이스, 메모리 유닛, 및 프로세서를 포함하는 USB 메모리 장치와 같은 메모리 장치가 개시된다. 메모리 유닛은 제 1 다이 및 제 2 다이를 포함하고, 제 1 다이 및 제 2 다이 각각은 복수의 페이지들을 포함한다.
프로세서는 통신 인터페이스를 통해 수신된 데이터를 제 1 다이 및 제 2 다이의 하나 이상의 페이지들에 순차적으로 기입한다. 프로세서는 통신 인터페이스를 통해 제 1 세트의 데이터를 수신하고 제 1 세트의 데이터를 제 1 다이 및 제 2 다이의 하나 이상의 페이지들에 기입하게 구성된다. 프로세서는 제 1 세트의 데이터를 제 1 다이 및 제 2 다이의 하나 이상의 페이지들에 기입한 후에 통신 인터페이스를 통해 제 2 세트의 데이터를 수신하게 구성된다. 프로세서는 제 2 다이의 하위 페이지에 제 2 세트의 데이터의 제 1 부분을 기입하고, 제 2 다이의 하위 페이지에 제 2 세트의 데이터의 제 1 부분을 기입한 후에 제 2 다이의 상위 페이지에 제 2 세트의 데이터의 제 2 부분을 기입하게 더욱 구성된다.
그외 특징들 및 잇점들은 다음의 도면들 및 상세한 설명 및 청구항들을 검토하였을 때 명백해질 것이다. 또한, 다른 실시예들이 개시되며, 실시예들 각각은 단독으로 혹은 조합하여 함께 사용될 수 있다. 실시예들은 이제 첨부된 도면들을 참조하여 기술될 것이다.
도 1은 복수 다이를 내포하는 복수-뱅크 비휘발성 메모리를 가진 메모리 시스템에 연결된 호스트을 도시한 것이다.
도 2는 도 1의 복수 다이 비휘발성 메모리에서 사용하기 위해 플래시 메모리 시스템 제어기 예의 블록도이다.
도 3은 도 1에 도시된 비휘발성 메모리 뱅크들 중 하나로서 적합한 한 예의 플래시 메모리 뱅크이다.
도 4는 도 3의 메모리 뱅크에서 사용될 수 있는 메모리 셀 어레이의 대표적 회로도이다.
도 5는 도 3의 메모리 뱅크의 물리적 메모리 구성 예를 도시한 것이다.
도 6a는 도 5의 물리 메모리의 한 부분의 확대도이다.
도 6b는 메모리 셀에 2비트들의 데이터을 저장하게 동작되는 MLC 메모리에서 전하 레벨들을 도시한 것이다.
도 7은 2개의 다이 메모리 시스템을 도시한 것이다.
도 8a 및 도 8b은 제 1 다이 및 제 2 다이의 하나 이상의 페이지들에 데이터를 기입할 때 캐시가 릴리즈하기를 시스템 제어기가 기다려야 하는 시간량을 감소시키는 메모리 장치에 데이터를 순차적으로 기입하기 위한 수정된 프로그래밍 시퀀스를 구현하기 위한 방법의 흐름도이다.
발명의 특징들을 구현하는데 사용하기에 적합한 플래시 메모리 시스템이 도 1 내지 도 8b에 도시되었다. 도 1의 호스트 시스템(100)은 데이터를 메모리 시스템(102)에 저장하며 데이터를 플래시 메모리(102)로부터 인출한다. 메모리 시스템은 이를테면 개인용 컴퓨터에 설치된 고체상태 디스크(SSD) 드라이브 형태로 호스트 내에 내장된 플래시 메모리일 수 있다. 대안적으로, 메모리 시스템(102)은 도 1에 도시된 바와 같이 기계 전기식 콘넥터의 결합부(mating part)들(104, 106)을 통해 호스트에 착탈가능하게 연결되는 카드 형태일 수도 있다. 내부 또는 내장형 SSD 드라이브로서 사용하게 구성되는 플래시 메모리는 도 1의 개요도와 유사하게 보일 수 있는데, 주 차이는 메모리 시스템(102)이 호스트 내부에 위치되어 있다는 것이다. SSD 드라이브들은 회전 자기 디스크 드라이브들의 대체용(drop-in replacements)인 개별적 모듈들의 형태일 수도 있다.
도 1의 호스트 시스템(100)은 메모리 시스템(102)에 관한 한, 회로와 및 소프트웨어와의 조합으로 구성된 2개의 주요 부분들을 갖는 것으로서 볼 수도 있다. 이들은 애플리케이션 부(108), 그리고 메모리(102)와 인터페이스하는 드라이버 부(110)이다. 예를 들면, PC에서, 애플리케이션 부(108)는 호스트(100) 상에서 데이터를 관리하기 위한 파일 시스템(114)뿐만 아니라, 워드 프로세싱, 그래픽스, 제어 또는 그외 인기있는 애플리케이션 소프트웨어를 실행하는 프로세서(112)를 포함할 수 있다. 카메라, 셀룰라 전화 또는 단일의 한 세트의 기능들을 수행하는 데에만 주로 전용되는 그외 다른 호스트 시스템에서, 애플리케이션 부(108)는 사진들을 촬영하여 저장하기 위해 카메라를 동작시키고, 전화를 걸거나 받기 위해 셀룰라 전화를 동작시키는 등을 행하는 소프트웨어를 포함한다.
도 1의 메모리 시스템(102)은 플래시 메모리(116)와 같은 비휘발성 메모리 및 시스템 제어기(118)을 포함하고 이들 둘 다는 메모리 시스템(102)이 데이터를 주고받기 위해 연결되며 메모리(116)를 제어하는 호스트(100)와 인터페이스한다. 시스템 제어기(118)는 데이터 프로그램 및 판독 동안 호스트(100)에 의해 사용되는 데이터의 논리 어드레스들과 메모리(116)의 물리 어드레스들 간을 전환할 수 있다. 플래시 메모리(116)는 임의의 수의 메모리 다이(120)를 포함할 수 있고 두 메모리 다이는 단순히 예시로서 도 1에 도시되었다. 기능적으로, 시스템 제어기(118)는 호스트 시스템과 인터페이스하는 프론트 엔드(122), 메모리(116)의 동작을 조정하기 위한 제어기 로직(124), 가비지 수거와 같은 내부 메모리 관리 동작들을 위한 플래시 관리 로직(126), 및 제어기와 플래시 메모리(116) 간에 통신 인터페이스를 제공하는 하나 이상의 플래시 인터페이스 모듈(FIM)들(128)을 포함할 수 있다.
시스템 제어기(118)는 도 2에 도시된 것과 같은 응용특정의 집적회로(ASIC)와 같은 단일 집적회로 칩 상에 구현될 수 있다. 시스템 제어기(118)의 프로세서(206)는 플래시 메모리(116) 내 각각의 뱅크들(120) 각각을 위한 I/O 포트들을 가진 메모리 인터페이스(204)를 통해 각각의 메모리 뱅크들(120) 각각과 개별적으로 통신할 수 있는 복수-스레드(multi-thread) 프로세서로서 구성될 수 있다. 시스템 제어기(118)는 내부 클럭(218)을 포함할 수 있다. 프로세서(206)는 내부 데이터 버스(202)를 통해 오류정정 코드(ECC) 모듈(214), RAM 버퍼(212), 호스트 인터페이스(216), 및 부팅 코드 ROM(210)과 통신한다.
플래시 메모리(116) 내 각 다이 120는 복수 플레인들로 구성된 메모리 셀들의 어레이를 내포할 수 있다. 도 3의 것은 간단하게 하기 위해 이러한 플레인들(310, 312)을 도시하고 있지만 대신에 4개 또는 8개의 플레인들과 같은 더 많은 수의 플레인들이 사용될 수도 있다. 대안적으로, 메모리 뱅크의 메모리 셀 어레이는 플레인들로 분할되지 않을 수도 있다. 그러나, 이와 같이 분할되었을 때 각 플레인은 서로 간에 독립적으로 동작할 수 있는 그 자신의 컬럼 제어 회로들(314, 316)을 갖는다. 회로들(314, 316)은 이들 각각의 메모리 셀 어레이의 어드레스들을 시스템 버스(302)의 어드레스 부분(306)으로부터 수신하고, 이들을 각각의 비트 라인들(318, 320)의 특정의 하나 이상을 어드레스하기 위해서 디코딩한다. 워드라인들(322)은 어드레스 버스(306)로 수신된 어드레스들에 응하여 행 제어 회로들(324)을 통해 어드레스된다. 또한, 소스 전압 제어 회로들(326, 328)은 p-웰 전압 제어 회로들(330, 332)과 마찬가지로, 각각의 플레인들에 연결된다. 뱅크(300)가 메모리 셀들의 단일 어레이를 가진 메모리 칩 형태이고, 2 이상의 이러한 칩들이 시스템 내 존재한다면, 데이터는 시스템 버스(302)의 데이터 부분(304)에 연결된 각각의 데이터 입력/출력 회로들(334, 336)을 통해 플레인들(310, 312) 내 및 이로부터 전송된다. 회로들(334, 336)은 각각의 컬럼 제어 회로들(314, 316)을 통해 플레인들에 연결된 라인들(338, 340)을 통해서, 메모리 셀들에 데이터를 프로그램하는 것 및 이들 각각의 플레인들의 메모리 셀들로부터 데이터를 판독하는 것을 제공한다.
시스템 제어기(118) 내 프로세서(206)가 데이터를 프로그램하고, 데이터를 판독하고, 소거하며 각종의 하우스키핑 작업들을 처리하기 위해 각 뱅크(120) 내 메모리 칩들의 동작을 제어할지라도, 각 메모리 칩은 이러한 기능들을 수행하기 위해 제어기(118)로부터 명령들을 실행하는 몇몇 제어 회로 또한 내포한다. 인터페이스 회로들(342)은 시스템 버스(302)의 제어 및 상황(status) 부분(308)에 연결된다. 제어기(118)로부터 명령들은 상태머신(344)에 제공되고 그러면 이것은 이들 명령들을 실행하기 위해 다른 회로들의 특정한 제어를 제공한다. 제어 라인들(346 ~ 354)은 상태머신(344)을 도 3에 도시된 바와 같은 이들 다른 회로들에 연결한다. 상태머신(344)으로부터 상황 정보는 버스 부분(308)을 통해 제어기(118)에 송신을 위해서 라인들(356)을 통해 인터페이스(342)에 통신된다.
NOR와 같은 다른 아키텍처들이 사용될 수 있을지라도, 메모리 셀 어레이들(310, 312)의 NAND 아키텍처가 이하 논의된다. 예로서의 NAND 어레이는 도 4의 회로도에 의해 예시되었고, 이것은 도 3의 메모리 뱅크(300)의 메모리 셀 어레이(310)의 부분이다. 상당 수의 전역 비트 라인들이 제공되는데, 설명을 간단하게 하기 위해서 도 4엔 단지 4개의 이러한 라인들(402 ~ 408)만이 도시되었다. 다수의 직렬 연결된 메모리 셀 스트링들(410 ~ 424)은 이들 비트 라인들 중 하나와 기준 전위 사이에 연결된다. 메모리 셀 스트링(414)을 대표로서 사용하면, 복수의 전하 저장 메모리 셀들(426 ~ 432)은 스트링의 양단에 선택 트랜지스터들(434, 436)과 직렬로 연결된다. 스트링의 선택 트랜지스터들이 도통하게 되었을 때, 스트링은 이의 비트 라인과 기준 전위 사이에 연결된다. 그러면 이 스트링 내에 한 메모리 셀이 한번에 프로그램되거나 판독된다.
도 4의 워드라인들(438 ~ 444)은 개별적으로 메모리 셀들의 다수의 스트링들 각각 내 한 메모리 셀의 전하 저장 소자를 가로질러 확장하며, 게이트들(446, 450)은 스트링들의 각 끝에 선택 트랜지스터들의 상태들을 제어한다. 공통 워드를 공유하며 게이트 라인들(438 ~ 450)을 제어하는 메모리 셀 스트링들은 함께 소거되는 메모리 셀들의 블록(452)을 형성하기 위해 형성된다. 셀들의 이 블록은 한번에 물리적으로 소거될 수 있는 최소수의 셀들을 내포한다. 워드라인들(438 ~ 444)의 하나를 따라 있는 것들인 한 행의 메모리 셀들은 한번에 프로그램된다. 전형적으로, NAND 어레이의 행들은 규정된 순서로 프로그램되는데, 이 경우엔 접지 또는 또 다른 공통 전위에 연결된 스트링들의 끝에 가장 가까이 있는 워드라인(444)을 따른 행부터 시작한다. 블록(452) 전체에 걸쳐, 워드라인(442)을 따라 있는 한 행의 메모리 셀들이 다음에 프로그램되고, 등등이 행해진다. 워드라인(438)을 따라 있는 행이 마지막으로 프로그램된다.
제 2 블록(454)도 마찬가지인데, 메모리 셀들의 이의 스트링들은 제 1 블록(452) 내 스트링들과 동일한 전역 비트 라인들에 연결되어 있지만 다른 한 세트의 워드 및 제어 게이트 라인들을 갖는다. 워드 및 제어 게이트 라인들은 행 제어 회로들(324)에 의해 이들의 적합한 동작 전압들로 구동된다. 도 3의 플레인 1 및 플레인 2와 같이, 시스템 내에 하나 이상의 플레인이 있다면, 한 메모리 아키텍처는 이들 간에 확장하는 공통 워드라인들을 사용한다. 대안적으로 공통 워드라인들을 공유하는 2 이상의 플레인들이 있을 수 있다. 다른 메모리 아키텍처들에서, 개개의 플레인들의 워드라인들은 개별적으로 구동된다.
메모리 셀들은 데이터의 단일 비트가 각 셀에 저장되도록 2 레벨들의 전하를 저장하게 동작될 수 있다. 이것을 전형적으로 2진 또는 단일 레벨 셀(SLC) 메모리라고 한다. 대안적으로, 메모리 셀들은 각 전하 저장 소자 또는 영역에 2 이상의 검출가능한 레벨들의 전하를 저장하여 각각에 1 비트 이상의 데이터를 저장하게 동작될 수 있다. 이 후자의 구성을 복수 레벨 셀(MLC) 메모리라고 한다. 두 유형들의 메모리 셀들이 메모리에서 사용될 수 있고, 예를 들면 2진 플래시 메모리는 데이터를 캐시하기 위해 사용될 수 있고, MLC 메모리는 장기간 저장을 위해 사용될 수 있다. 메모리 셀들의 전하 저장 소자들은 가장 공통적으로 도전성 플로팅 게이트들지만 대안적으로 비도전성 유전체 전하 트랩 물질일 수도 있다.
도 5는 메모리 셀들의 4개의 플레인들(502 ~ 508)을 보인 복수 플레인 배열을 개념적으로 도시한 것이다. 이들 플레인들(502 ~ 508)은 단일 다이 상에, 혹은 2개의 다이(각 다이 상에 플레인들 중 2개) 상에, 혹은 4개의 개별적 다이 상에 있을 수 있다. 물론, 1, 2, 8, 16 혹은 그 이상과 같이, 다른 개수의 플레인들이 시스템의 각 다이 내에 존재할 수 있다. 플레인들은 각각의 플레인들(502 ~ 508) 내에 위치된 블록들(510, 512, 514, 516)과 같은 사각형들에 의해 도 5에 도시된 다수 블록들의 메모리 셀들로 개별적으로 분할된다. 각 플레인 내에 수십 또는 수백 개의 블록들이 있을 수 있다.
위에 언급된 바와 같이, 한 블록의 메모리 셀들은 물리적으로 함께 소거될 수 있는 가장 적은 수의 메모리 셀들인 소거 단위이다. 그러나, 증가된 병행도(parallelism)를 위해서, 블록들은 더 큰 메타블록 단위들로 운영된다. 각 플레인으로부터 한 블록은 함께 논리적으로 연결되어 한 메타블록을 형성한다. 한 메타블록(518)을 형성하는 4개의 블록들(510 ~ 516)이 도시되었다. 메타블록 내에 모든 셀들은 전형적으로 함께 소거된다. 블록들(522 ~ 528)로 구성된 제 2 메타블록(520)에 도시된 바와 같이, 메타블록을 형성하기 위해 사용되는 블록들은 이들의 각각의 플레인들 내에 동일한 상대적 위치들로 제약될 필요는 없다. 고 시스템 성능을 위해서 메타블록들을 모든 플레인들에 걸쳐 확장하는 것이 일반적으로 바람직할지라도, 메모리 시스템은 서로 다른 플레인들 내에 하나, 둘 혹은 세 개의 소거 블록들 중 어느 하나 혹은 전부로 된 메타블록들을 동적으로 형성하는 능력을 갖고 동작될 수 있다. 이것은 한 프로그램 동작에서 메타블록의 크기가 저장을 위해 가용한 데이터 량에 더 가깝게 일치될 수 있게 한다.
이제 개개의 블록들은 동작 목적들을 위해 도 6a에 도시된 바와 같이, 메모리 셀들의 페이지들로 분할된다. 예를 들면, 블록들(510 ~ 516) 각각의 메모리 셀들은 각각 8개의 페이지들(P0 ~ P7)로 분할된다. 대안적으로, 각 블록 내에 32, 64 혹은 그 이상의 페이지들의 메모리 셀들이 있을 수 있다. 페이지는 한번에 프로그램되거나 또는 판독되는 최소량의 데이터를 내포하는, 블록 내에 데이터 프로그램 및 판독 단위이다. 도 3의 NAND 아키텍처에서, 페이지는 블록 내에 워드라인을 따른 메모리 셀들로 형성된다. 그러나, 메모리 시스템의 동작 병행도를 증가시키기 위해서, 2 이상의 소거 블록들 내에 이러한 페이지들은 메타페이지들로 논리적으로 연결된다. 메타페이지(602)는 4개의 블록들(510-516) 각각으로부터의 한 물리 페이지로 형성되는 것으로 도 6a에 도시되었다. 예를 들면, 메타페이지(602)는 4개의 블록들 각각 내에 페이지(P2)를 포함하지만 메타페이지의 페이지들은 반드시 블록들 각각 내에 동일 상대적 위치를 가질 필요는 없다.
각 메모리 셀에 2비트들의 데이터를 저장하게 동작되는 MLC 메모리의 구현에서, 각 메모리 셀은 "11", "01", "10", "00"의 값들에 대응하는 4 레벨들의 전하를 저장하게 구성된다. 2 비트 데이터의 각 비트는 하위 페이지의 페이지 비트 또는 상위 페이지의 페이지 비트를 나타낼 수 있는데, 하위 페이지 및 상위 페이지는 공통 워드라인을 공유하는 일련의 메모리 셀들에 걸쳐 있다. 전형적으로, 2 비트들의 데이터의 하위(less significant) 비트는 하위 페이지의 페이지 비트를 나타내고, 2 비트들의 데이터의 상위(more significant) 비트는 상위 페이지의 페이지 비트를 나타낸다.
도 6b는 메모리 셀 내 2비트들의 데이터를 나타내기 위해 사용되는 4 전하 레벨들의 일 구현을 도시한 것이다. "11"의 값은 메모리 셀의 비프로그램된 상태에 대응한다. 하위 페이지의 페이지 비트를 프로그램하기 위해서 메모리 셀에 프로그램 펄스들이 인가될 때, 하위 페이지의 페이지 비트의 프로그램된 상태에 대응하는 "10" 의 값을 나타내기 위해서 전하의 레벨이 증가된다.
상위 페이지의 페이지 비트에 대해서, 하위 페이지의 페이지 비트가 프로그램("10"의 값)될 때, 상위 페이지의 페이지 비트의 요망되는 값에 따라 "00" 또는 "10"의 값에 대응하게 전하의 레벨을 증가시키기 위해 상위 페이지의 페이지 비트를 위한 메모리 셀에 프로그램 펄스들이 인가된다. 그러나, 메모리 셀이 비프로그램된 상태("11"의 값)에 있게 하위 페이지의 페이지 비트가 프로그램되지 않는다면, 상위 페이지의 페이지 비트를 프로그램하기 위해 메모리 셀에 프로그램 펄스들을 인가하는 것은 전하의 레벨을 증가시켜 상위 페이지의 페이지 비트의 프로그램된 상태에 대응하는 "01"의 값을 나타낸다.
도 7은 블록 인터리브를 구현하기 위해 사용될 수 있는 캐시 저장 영역(706, 708) 및 주 저장 영역(710, 712) 배열을 각각이 갖는 두 메모리 다이(702, 704)를 가진 메모리(700)를 도시한 것이다. 플래시 메모리(700) 내 다이(702, 704)와 같은 복수 다이 간에 블록 인터리브는 호스트로부터 수신된 어드레스된 데이터를 플래시 메모리 내 제 1 다이(702)의 캐시 저장 영역(706)에 순차적으로 기입함으로써 달성될 수 있다. 순차적으로 어드레스된 데이터량이 제 1 다이의 주 저장 영역(710) 내 메모리의 페이지의 크기와 동일한 제 1 다이의 캐시 저장 영역(706)에 기입되었을 때, 플래시 메모리의 제어기는 순차적으로 어드레스되는 호스트로부터 다음 일 그룹의 수신된 데이터를 플래시 메모리의 다음 메모리 다이(704) 내 캐시 저장 블록들에 기입한다. 제 2 다이(704)의 캐시 저장 영역(708)에 순차적으로 어드레된d 데이터의 기입은 제 1 다이(702)에서와 같이, 제 2 다이(704)의 주 저장 영역(712)에 블록의 페이지 크기와 동일한 제 2 다이(704)의 캐시 저장 영역(708)의 양이 채워질 때까지 계속된다.
예시를 간단하게 하기 위해서, 제어기는 도 7엔 도시되지 않았지만, 도 7의 메모리(700)는 도 2에 도시된 제어기(118)와 같은 별도의 제어기에 연관될 수도 있거나, 단일 칩 상에 메모리 다이와 함께 집적된 하나 이상의 제어기들을 가질 수도 있거나, 둘의 조합을 갖고 동작하게 구성될 수도 있다.
통상적인 인터리브 프로그래밍 시퀀스들에서, 플래시 메모리의 시스템 제어기들은 흔히 데이터를 다이 0의 상위 페이지, 다이 1의 상위 페이지, 다이 0의 하위 페이지, 이어서 다이 1의 하위 페이지에 순차적으로 기입한다. 밑에 표는 제 2 및 제 3 64K 트랜잭션들을 위해 위에 기술된 프로그래밍 시퀀스를 사용하여 64 킬로바이트 데이터를 수반하는 초기 3 트랜잭션들을 위한 통상적 인터리브 프로그래밍 시퀀스를 나타낸 것이다. 그러나, 통상적 프로그래밍 시퀀스는 임의의 수의 64K 트랜잭션들을 포함할 수 있음을 알 것이다. USB 트랜잭션의 크기는 최대 USB 전송 크기가 전형적으로 64K이기 때문에 64 킬로바이트이다. 순차 기입에 있어서, 호스트 장치는 USB 상에 데이터를 복수의 64K 기입 트랜잭션들에서 메모리 장치에 보낸다.
표 1 : 통상의 프로그래밍 시퀀스
제 1 64K
트랜잭션
다이 0 페이지 0
하위 페이지
다이 1 페이지 0
하위 페이지
다이 0 페이지 1
하위 페이지
다이 1 페이지 1
하위 페이지
제 2 64K
트랜잭션
다이 0 페이지 2
상위 페이지
다이 1 페이지 2
상위 페이지
다이 0 페이지 3
하위 페이지
다이 1 페이지 3
하위 페이지
제 3 64K
트랜잭션
다이 0 페이지 4
상위 페이지
다이 1 페이지 4
상위 페이지
다이 0 페이지 5
하위 페이지
다이 1 페이지 5
하위 페이지
다이에서, 캐시는 전형적으로 다이의 상위 페이지에의 기입 후에 대략 900㎲에 릴리즈하며, 캐시는 전형적으로 다이의 하위 페이지에의 기입 후에 대략 20㎲에 릴리즈한다. 따라서, 시스템 제어기가 동일 다이의 상위 페이지에 기입 후에 다이의 하위 페이지에 기입할 때, 시스템 제어기는 종종 캐시가 릴리즈할 수 있게 하기 위해 일정 기간을 기다려야 한다. 예를 들면, 위에 표에서 제 2 64K 트랜잭션에서, 30MHz 기입 클럭으로 다이의 상위 페이지에 기입하기 위해 450㎲의 데이터 전송 시간을 가정하면, 시스템 제어기는 시스템 제어기가 다이 0의 상위 페이지, 즉 페이지 2에 데이터를 기입한 후에 900㎲ 미만에 다이 0의 하위 페이지, 즉 페이지 3에 데이터를 기입하지 않게 하기 위해서, 다이 0의 하위 페이지, 즉 페이지 3에 데이터를 기입하기 위해 다이 1의 상위 페이지, 즉 페이지 2에 데이터를 기입한 후에 대략 450㎲을 기다려야 한다. 450㎲의 데이터 전송 시간은 부분적으로는 예를 들면, 스크램블링에 기인하여 데이터를 기입함에 있어 지연에 의해 야기될 수도 있다.
유사하게, 위에 표에서 제 2 64K 트랜잭션에서, 30MHz 기입 클럭으로 다이의 하위 페이지에 데디터를 기입하기 위해 300㎲의 데이터 전송 시간을 가정하면, 시스템 제어기는 시스템 제어기가 다이 1의 상위 페이지, 즉 페이지 2에 데이터를 기입한 후에 900㎲ 미만에 다이 1의 하위 페이지, 즉 페이지 3에 데이터를 기입하지 않게 하기 위해서, 다이 1의 하위 페이지, 즉 페이지 3에 데이터를 기입하기 위해 다이 0의 하위 페이지, 즉 페이지 3에 데이터를 기입한 후에 대략 150㎲을 기다려야 한다. 다이의 상위 페이지 기입을 위한 450㎲의 데이터 전송 시간에 대해 다이의 하위 페이지에 기입을 위한 300㎲의 데이터 전송 시간은 예를 들면, 스크램블링이 이미 달성되어 있을 수 있고 및/또는 캐시가 릴리즈하기를 제어기가 기다리는 동안 데이터가 기입될 준비가 되어 있을 수 있기 때문에 데이터를 기입할 때 지연이 없는 결과일 수 있다. 제 2 64K 트랜잭션을 위한 총 트랜잭션 시간은 이하 보인 바와 같이 계산될 수 있다.
표 2: 제 2 64K 트랜잭션을 위한 총 시간
통상적 프로그래밍 시퀀스
D0, P2 상위 D1, P2 상위 대기 D0, P3 하위 대기 D1, P3 하위 총 시간
450㎲ +450㎲ +450㎲ +300㎲ +150㎲ +350㎲ =2100㎲
본원에 기술된 시스템들 방법들에서, 다이의 상위 페이지에 기입 후에 캐시가 릴리즈하는 대략 900㎲이 아니라 다이의 하위 페이지에 기입 후에 캐시가 릴리즈하는 시간이 대략 20㎲이기 때문에, 시스템 제어기의 프로그래밍 시퀀스는 트랜잭션 동안 캐시가 릴리즈하기를 시스템 제어기가 기다려야 하는 시간량을 감소시키게 수정될 수 있다. 밑에 표는 트랜잭션 동안 캐시가 릴리즈하는 것을 시스템 제어기가 기다려야 하는 시간량을 감소시키기 위해 프로그래밍 시퀀스가 수정된 초기 3 트랜잭션들을 예시한 것이다. 그러나, 수정된 프로그래밍 시퀀스는 임의의 수의 64K 트랜잭션들을 포함할 수도 있음을 알 것이다.
밑에 나타낸 바와 같이, 초기 64K 트랜잭션 이외에 64K 트랜잭션 동안에, 시스템 제어기는 초기에는 다이 0의 상위 페이지에 데이터를 기입한다. 이어서, 시스템 제어기는 다이 1의 상위 페이지에 데이터를 기입하는 것을 진행하기 전에 다이 1의 하위 페이지에 데이터를 기입한다. 마지막으로, 시스템 제어기는 다이 0의 하위 페이지에 데이터를 기입한다.
표 3 : 수정된 프로그래밍 시퀀스
제 1 64K
트랜잭션
다이 0 페이지 0
하위 페이지
다이 1 페이지 0
하위 페이지
다이 0 페이지 1
하위 페이지
다이 1 페이지 1
하위 페이지
제 2 64K
트랜잭션
다이 0 페이지 2
상위 페이지
다이 1 페이지 3
하위 페이지
다이 0 페이지 2
상위 페이지
다이 1 페이지 3
하위 페이지
제 3 64K
트랜잭션
다이 0 페이지 4
상위 페이지
다이 1 페이지 5
하위 페이지
다이 0 페이지 4
상위 페이지
다이 0 페이지 5
하위 페이지
30MHz 기입 클럭을 사용하는 위에 기술된 예와 유사하게, 일부 구현들에서, 시스템 제어기는 다이의 상위 페이지에 데이터를 기입하고 다이의 하위 페이지에 데이터를 기입하는데 450㎲가 걸린다. 따라서, 제 2 64K 트랜잭션을 수행하기 위해 수정된 프로그래밍 시퀀스 하에 동작하는 시스템 제어기는 캐시가 릴리즈할 수 있게 다이 1의 상위 페이지 즉 페이지 2에 데이터를 기입하기 위해다이 1의 하위 페이지, 즉 페이지 3에 데이터를 기입 후에 예를 들면 20㎲를 기다리기만 하면 된다. 수정된 프로그래밍 시퀀스에서 제 2 64K 트랜잭션을 위한 총 트랜잭션 시간은 밑에 보인 바와 같이 계산될 수 있다.
표 4: 제 2 64K 트랜잭션을 위한 총 시간
새로운 프로그래밍 시퀀스
D0, P2 상위 D1, P3 하위 대기 D1, P2 상위 D0, P3 하위 총 시간
450㎲ +450㎲ +20㎲ +450㎲ +450㎲ =1820㎲
따라서, 다이의 상위 페이지에 기입 후에 캐시가 릴리즈하는 시간(대략 900㎲)에 대해 다이의 하위 페이지에 기입 후에 캐시가 릴리즈하는 시간(대략 20㎲)에 차이를 이용하게 프로그래밍 시퀀스를 수정함으로써 시스템 제어기는 통상의 프로그래밍 시퀀스를 사용한 2100㎲에 비해 수정된 프로그래밍 시퀀스를 사용한 1820㎲ 내에 64K 트랜잭션을 완료할 수 있다.
또 다른 예에서, 표 1에 예시된 통상의 프로그래밍 시퀀스와 같은 통상의 프로그래밍 시퀀스를 사용할 때, 데이터 사이에 지연이 없을 때, 다이의 페이지에 데이터를 기입하기 위한 데이터 전송 시간은 280㎲이다. 따라서, 표 1로부터 통상의 프로그래밍 시퀀스로 제 2 64K 트랜잭션을 실행하기 위해서, 시스템 제어기는 다이 0의 상위 페이지, 즉 페이지 2에 데이터를 기입한 후에 시스템 제어기가 900㎲ 미만에 다이 0의 하위 페이지, 즉 페이지 3에 데이터를 기입하지 않게 하기 위해서, 다이 0의 하위 페이지, 즉 페이지 3에 데이터를 기입하기 위해 다이 1의 상위 페이지, 즉 페이지 2에 데이터를 기입한 후에 대략 620㎲을 기다려야 한다. 제 2 64K 트랜잭션을 위한 총 트랜잭션 시간은 밑에 보인 바와 같이 계산될 수 있다.
표 5: 제 2 64K 트랜잭션을 위한 총 시간 -지연 없음
통상의 프로그래밍 시퀀스
D0, P2 상위 D1, P2 상위 대기 D0, P3 하위 D1, P3 하위 총 시간
280㎲ +280㎲ +620㎲ +280㎲ +280㎲ =1740㎲
데이터, 간에 지연이 없을 때 위에 예로 계속하면, 시스템 제어기가 표 3의 수정된 프로그래밍 시퀀스 의 제 2 64K 트랜잭션을 실행할 때, 예를 들면, 시스템 제어기는 다이 1의 하위 페이지 즉 페이지 3에 데이터를 기입하는 것과 다이 1의 상위 페이지 즉 페이지 2에 데이터를 기입하는 것 사이에 20㎲만을 기다리기만 하면 된다. 그러나, 시스템 제어기는 다이 0의 상위 페이지, 즉 페이지 2에 데이터를 기입한 후에 시스템 제어기가 900㎲ 미만에 다이 0의 하위 페이지, 즉 페이지 3에 데이터를 기입하지 않게 하기 위해서, 다이 0의 하위 페이지, 즉 페이지 3에 데이터를 기입하기 위해 다이 1의 상위 페이지, 즉 페이지 2에 데이터를 기입한 후에 대략 320㎲을 기다려야 한다. 제 2 64K 트랜잭션을 위한 총 트랜잭션 시간은 밑에 보인 바와 같이 계산될 수 있다.
표 6: 제 2 64K 트랜잭션을 위한 총 시간 -지연 없음
새로운 프로그래밍 시퀀스
D0, P2 상위 D1, P3 하위 대기 D1, P2 상위 대기 D0, P3 하위 총 시간
280㎲ +280㎲ +20㎲ +280㎲ +320㎲ +280㎲ =1460㎲
따라서, 다이의 상위 페이지에 기입 후에 캐시가 릴리즈하는 시간(대략 900㎲)에 대해 다이의 하위 페이지에 기입 후에 캐시가 릴리즈하는 시간(대략 20㎲)에 차이를 이용하게 프로그래밍 시퀀스를 수정함으로써, 시스템 제어기는 통상의 프로그래밍 시퀀스를 사용한 1740㎲에 비해 수정된 프로그래밍 시퀀스를 사용한 대략 1460㎲ 내에 데이터간 지연이 없이 64K 트랜잭션을 완료할 수 있다.
도 8a 및 도 8b는 제 1 다이 및 제 2 다이의 하나 이상의 페이지들에 데이터를 기입할 때 캐시가 릴리즈하기를 기다리는 동안 시스템 제어기가 기다려야 하는 시간량을 감소시키는, USB(universal serial bus) 메모리 장치와 같은 메모리 장치에 데이터를 순차적으로 기입하기 위한 수정된 프로그래밍 시퀀스를 구현하기 위한 방법의 흐름도이다. 이하 기술되는 단계들 각각은 제 1 다이 및 제 2 다이를 포함하는 메모리 장치에서 일어나고, 제 1 다이 및 제 2 다이 각각은 복수의 페이지들을 포함한다.
방법(800)은 메모리 장치가 제 1 세트의 데이터를 수신하는 단계(802)에서 시작한다. 일부 구현들에서, 제 1 세트의 데이터는 메모리 장치가 호스트 장치로부터 수신하는 제 1 64K 트랜잭션의 64 킬로바이트 데이터일 수 있다. 메모리 장치는 단계(804)에서 제 1 다이 및 제 2 다이의 하나 이상의 페이지들에 제 1 세트의 데이터를 기입한다.
단계(806)에서, 메모리 장치는 제 1 다이 및 제 2 다이의 하나 이상의 페이지들에 제 1 세트의 데이터를 기입한 후에 제 2 세트의 데이터를 수신한다. 일부 구현들에서, 제 2 세트의 데이터는 제 2 64K 트랜잭션의 64 킬로바이트 데이터일 수 있다. 단계(808)에서, 제어기는 제 1 다이의 상위 페이지에 제 2 세트의 데이터의 제 1 부분을 기입한다. 단계(810)에서, 제어기는 제 1 다이의 상위 페이지에 제 2 세트의 데이터의 제 1 부분을 기입한 후에 제 2 다이의 하위 페이지에 제 2 세트의 데이터의 제 2 부분을 기입한다.
단계(812)에서, 제어기는 제 2 다이의 하위 페이지에 제 2 세트의 데이터의 제 2 부분을 기입한 후에 제 2 다이의 상위 페이지에 제 2 세트의 데이터의 제 3 부분을 기입한다. 단계(814)에서, 제어기는 제 2 다이의 상위 페이지에 제 2 세트의 데이터의 제 3 부분을 기입한 후에 제 1 다이의 하위 페이지에 제 2 세트의 데이터의 제 4 부분을 기입한다.
단계(816)에서, 메모리 장치는 제 3 세트의 데이터를 수신한다. 단계(818)에서, 제어기는 제 1 다이의 하위 페이지에 제 2 세트의 데이터의 제 4 부분을 기입한 후에 제 1 다이의 상위 페이지에 제 3 세트의 데이터의 제 1 부분을 기입한다. 단계(820)에서, 제어기는 제 1 다이의 상위 페이지에 제 3 세트의 데이터의 제 1 부분을 기입한 후에 제 2 다이의 하위 페이지에 제 3 세트의 데이터의 제 2 부분을 기입한다. 단계(822)에서, 제어기는 제 2 다이의 하위 페이지에 제 3 세트의 데이터의 제 2 부분을 기입한 후에 제 2 다이의 상위 페이지에 제 3 세트의 데이터의 제 3 부분을 기입한다. 단계(824)에서, 제어기는 제 2 다이의 상위 페이지에 제 3 세트의 데이터의 제 3 부분을 기입한 후에 제 1 다이의 하위 페이지에 제 3 세트의 데이터의 제 4 부분을 기입한다.
단계들(816, 818, 820, 822, 824)은 수정된 프로그래밍 시퀀스를 사용하여 더욱 64K 트랜잭션들을 위해 반복될 수도 있을 것임을 알 것이다. 예를 들면, 메모리 장치는 제 4 세트의 데이터의 다른 부분이 다이의 상위 페이지에 기입되기 전에 제 4 세트의 데이터의 한 부분이 같은 다이의 하위 페이지에 기입되게, 제 4 세트의 데이터를 수신하고 제 1 및 제 2 다이의 상위 및 하위 페이지들에 제 4 세트의 데이터의 부분들을 기입할 수도 있을 것이다. 또한, 데이터를 수신하여 제 1 및 제 2 다이의 상위 및 하위 페이지들에 데이터를 기입하는 메모리 장치에 관련하여 수정된 프로그래밍 시퀀스가 위에 기술되었지만, 동일 수정된 프로그래밍 시퀀스는 제 1 및 제 2 다이의 상위 및 하위 페이지들에 메모리 장치에 이미 저장된 데이터를 기입하게 가비지 수거 동작들 동안에 사용될 수 있음을 알 것이다.
전술한 상세한 설명은 발명의 정의로서가 아니라 발명이 취할 수 있는 선택된 형태들의 예시로서 이해되게 한 것이다. 이 발명의 범위를 정의하고자 하는 것은 모든 등가물들을 포함해서 다음의 청구항들뿐이다. 또한, 다음 청구항들 중 일부는 성분이 어떤 기능을 수행하게 동작하거나 어떤 작업을 위해 구성된 것을 나타낼 수 있다. 이들은 제약적 한정들이 아님에 유의한다. 또한, 청구항들에 인용된 단계들은 반드시 이들이 인용된 순서가 아니라 임의의 순서로 수행될 수 있음에 유의한다.
100: 호스트 시스템 102: 메모리 시스템
108: 애플리케이션 110: 드라이버
114: 호스트 파일 시스템 116: 플래시 메모리
122: 프론트 엔드 124: 제어기 펌웨어
205: 메모리 인터페이스 206: 프로세서
216: 호스트 인터페이스

Claims (19)

  1. 데이터를 메모리 장치에 순차적으로 기입하기 위한 방법에 있어서, 제 1 다이 및 제 2 다이 각각이 복수의 페이지들을 포함하는 상기 제 1 다이 및 상기 제 2 다이를 포함하는 메모리 장치에서:
    제 1 세트의 데이터를 수신하는 단계;
    상기 제 1 다이 및 상기 제 2 다이의 하나 이상의 페이지들에 상기 제 1 세트의 데이터를 기입하는 단계;
    상기 제 1 다이 및 상기 제 2 다이의 하나 이상의 페이지들에 상기 제 1 세트의 데이터를 기입한 후에 제 2 세트의 데이터를 수신하는 단계;
    상기 제 2 다이의 하위 페이지에 상기 제 2 세트의 데이터의 제 1 부분을 기입하는 단계; 및
    상기 제 2 다이의 상기 하위 페이지에 상기 제 2 세트의 데이터의 상기 제 1 부분을 기입한 후에 상기 제 2 다이의 상위 페이지에 상기 제 2 세트의 데이터의 제 2 부분을 기입하는 단계를 포함하는, 방법.
  2. 제 1 항에 있어서, 상기 제 2 세트의 데이터의 상기 제 1 부분 및 상기 제 2 세트의 데이터의 상기 제 2 부분은 상기 제 2 다이의 서로 다른 페이지들에 기입되는, 방법.
  3. 제 1 항에 있어서, 상기 제 2 세트의 데이터의 상기 제 1 부분을 상기 제 2 다이의 상기 하위 페이지에 기입하기 전에 상기 제 1 다이의 상위 페이지에 상기 제 2 세트의 데이터의 제 3 부분을 기입하는 단계; 및
    상기 제 2 세트의 데이터의 상기 제 2 부분을 상기 제 2 다이의 상기 상위 페이지에 기입한 후에 상기 제 1 다이의 하위 페이지에 상기 제 2 세트의 데이터의 제 4 부분을 기입하는 단계를 더 포함하는, 방법.
  4. 제 3 항에 있어서, 상기 제 2 세트의 데이터의 상기 제 2 부분을 상기 제 2 다이의 상기 상위 페이지에 기입한 후에 상기 제 1 다이의 하위 페이지에 상기 제 2 세트의 데이터의 제 4 부분을 기입하는 단계는 상기 제 2 세트의 데이터의 상기 제 2 부분을 상기 제 2 다이의 상기 상위 페이지에 기입한 후 대략 320㎲에 상기 제 1 다이의 상기 하위 페이지에 상기 제 2 세트의 데이터의 상기 제 4 부분을 기입하는 단계를 포함하는, 방법.
  5. 제 3 항에 있어서, 상기 제 2 세트의 데이터의 상기 제 2 부분을 상기 제 2 다이의 상기 상위 페이지에 기입한 후에 상기 제 1 다이의 하위 페이지에 상기 제 2 세트의 데이터의 제 4 부분을 기입하는 단계는 상기 제 2 세트의 데이터의 상기 제 2 부분을 상기 제 2 다이의 상기 상위 페이지에 기입한 직후 상기 제 1 다이의 상기 하위 페이지에 상기 제 2 세트의 데이터의 상기 제 4 부분을 기입하는 단계를 포함하는, 방법.
  6. 제 3 항에 있어서,
    제 3 세트의 데이터를 수신하는 단계;
    상기 제 2 세트의 데이터의 상기 제 4 부분을 상기 제 1 다이의 상기 하위 페이지에 기입한 후에 상기 제 3 세트의 데이터의 제 1 부분을 상기 제 1 다이의 상위 페이지에 기입하는 단계;
    상기 제 3 세트의 데이터의 상기 제 1 부분을 상기 제 1 다이의 상기 상위 페이지에 기입한 후에 상기 제 3 세트의 데이터의 제 2 부분을 상기 제 2 다이의 하위 페이지에 기입하는 단계;
    상기 제 3 세트의 데이터의 상기 제 2 부분을 상기 제 2 다이의 상기 하위 페이지에 기입한 후에 상기 제 3 세트의 데이터의 제 3 부분을 상기 제 2 다이의 상기 상위 페이지에 기입하는 단계; 및
    상기 제 3 세트의 데이터의 상기 제 3 부분을 상기 제 2 다이의 상기 상위 페이지에 기입한 후에 상기 제 3 세트의 데이터의 제 4 부분을 상기 제 1 다이의 하위 페이지에 기입하는 단계를 더 포함하는, 방법.
  7. 제 1 항에 있어서, 상기 제 1 세트의 데이터는 64 킬로바이트 데이터이며 상기 제 2 세트의 데이터는 64 킬로바이트 데이터인, 방법.
  8. 제 1 항에 있어서, 상기 제 2 세트의 데이터의 상기 제 1 부분을 상기 제 2 다이의 상기 하위 페이지에 기입한 후에 상기 제 2 다이의 상기 상위 페이지에 상기 제 2 세트의 데이터의 상기 제 2 부분을 기입하는 단계는
    상기 제 2 세트의 데이터의 상기 제 1 부분을 상기 제 2 다이의 상기 하위 페이지에 기입한 후에 대략 20㎲에 상기 제 2 다이의 상기 상위 페이지에 상기 제 2 세트의 데이터의 상기 제 2 부분을 기입하는 단계를 포함하는,
  9. 메모리 장치에 있어서,
    통신 인터페이스;
    제 1 다이 및 제 2 다이 각각이 복수의 페이지들을 포함하는 상기 제 1 다이 및 상기 제 2 다이를 포함하는 메모리 장치; 및
    상기 제 1 다이 및 상기 제 2 다이의 하나 이상의 페이지들에 상기 통신 인터페이스를 통해 수신된 데이터를 순차적으로 기입하기 위한 프로세서로서,
    상기 통신 인터페이스를 통해 제 1 세트의 데이터를 수신하고;
    상기 제 1 다이 및 상기 제 2 다이의 하나 이상의 페이지들에 상기 제 1 세트의 데이터를 기입하고;
    상기 제 1 다이 및 상기 제 2 다이의 하나 이상의 페이지들에 상기 제 1 세트의 데이터를 기입한 후에 상기 통신 인터페이스를 통해 제 2 세트의 데이터를 수신하고;
    상기 제 2 다이의 하위 페이지에 상기 제 2 세트의 데이터의 제 1 부분을 기입하고;
    상기 제 2 다이의 상기 하위 페이지에 상기 제 2 세트의 데이터의 상기 제 1 부분을 기입한 후에 상기 제 2 다이의 상위 페이지에 상기 제 2 세트의 데이터의 제 2 부분을 기입하게 구성된, 상기 프로세서를 포함하는, 메모리 장치.
  10. 제 9 항에 있어서, 상기 프로세서는 상기 제 2 세트의 데이터의 상기 제 1 부분 및 상기 제 2 세트의 데이터의 상기 제 2 부분을 상기 제 2 다이의 서로 다른 페이지들에 기입하는, 메모리 장치.
  11. 제 9 항에 있어서, 상기 프로세서는
    상기 제 2 세트의 데이터의 상기 제 1 부분을 상기 제 2 다이의 상기 하위 페이지에 기입하기 전에 상기 제 1 다이의 상위 페이지에 상기 제 2 세트의 데이터의 제 3 부분을 기입하고;
    상기 제 2 세트의 데이터의 상기 제 2 부분을 상기 제 2 다이의 상기 상위 페이지에 기입한 후에 상기 제 1 다이의 하위 페이지에 상기 제 2 세트의 데이터의 제 4 부분을 기입하게 더욱 구성된, 메모리 장치.
  12. 제 11 항에 있어서, 상기 제 2 세트의 데이터의 상기 제 2 부분을 상기 제 2 다이의 상기 상위 페이지에 기입한 후에 상기 제 1 다이의 상기 하위 페이지에 상기 제 2 세트의 데이터의 상기 제 4 부분을 기입하기 위해서, 상기 프로세서는 상기 제 2 세트의 데이터의 상기 제 2 부분을 상기 제 2 다이의 상기 상위 페이지에 기입한 후에 대략 320㎲에 상기 제 1 다이의 상기 하위 페이지에 상기 제 2 세트의 데이터의 상기 제 4 부분을 기입하게 구성된, 메모리 장치.
  13. 제 11 항에 있어서, 상기 제 2 세트의 데이터의 상기 제 2 부분을 상기 제 2 다이의 상기 상위 페이지에 기입한 후에 상기 제 1 다이의 하위 페이지에 상기 제 2 세트의 데이터의 제 4 부분을 기입하기 위해서, 상기 프로세서는 상기 제 2 세트의 데이터의 상기 제 2 부분을 상기 제 2 다이의 상기 상위 페이지에 기입한 직후 상기 제 1 다이의 상기 하위 페이지에 상기 제 2 세트의 데이터의 상기 제 4 부분을 기입하게 구성된, 메모리 장치.
  14. 제 9 항에 있어서, 상기 프로세서는
    상기 통신 인터페이스를 통해 제 3 세트의 데이터를 수신하고;
    상기 제 2 세트의 데이터의 상기 제 4 부분을 상기 제 1 다이의 상기 하위 페이지에 기입한 후에 상기 제 3 세트의 데이터의 제 1 부분을 상기 제 1 다이의 상위 페이지에 기입하고;
    상기 제 3 세트의 데이터의 상기 제 1 부분을 상기 제 1 다이의 상기 상위 페이지에 기입한 후에 상기 제 3 세트의 데이터의 제 2 부분을 상기 제 2 다이의 하위 페이지에 기입하고;
    상기 제 3 세트의 데이터의 상기 제 2 세트 부분을 상기 제 2 다이의 상기 하위 페이지에 기입한 후에 상기 제 3 세트의 데이터의 제 3 부분을 상기 제 2 다이의 상위 페이지에 기입하고;
    상기 제 3 세트의 데이터의 상기 제 3 부분을 상기 제 2 다이의 상기 상위 페이지에 기입한 후에 상기 제 3 세트의 데이터의 제 4 부분을 상기 제 1 다이의 하위 페이지에 기입하게 더욱 구성된, 메모리 장치.
  15. 제 9 항에 있어서, 상기 제 1 세트의 데이터는 64 킬로바이트 데이터이며 상기 제 2 세트의 데이터는 64 킬로바이트 데이터인, 메모리 장치.
  16. 제 9 항에 있어서, 상기 제 2 세트의 데이터의 상기 제 1 부분을 상기 제 2 다이의 상기 하위 페이지에 기입한 후에 상기 제 2 다이의 상위 페이지에 상기 제 2 세트의 데이터의 상기 제 2 부분을 기입하기 위해서, 상기 프로세서는 상기 제 2 세트의 데이터의 상기 제 1 부분을 상기 제 2 다이의 상기 하위 페이지에 기입한 후에 대략 20㎲에 상기 제 2 다이의 상기 상위 페이지에 상기 제 2 세트의 데이터의 상기 제 2 부분을 기입하게 구성된, 메모리 장치.
  17. 데이터를 메모리 장치에 순차적으로 기입하기 위한 방법에 있어서, 상기 방법은, 제 1 다이 및 제 2 다이 각각이 복수의 페이지들을 포함하는 상기 제 1 다이 및 상기 제 2 다이를 포함하는 메모리 장치에서:
    상기 제 1 다이의 상위 페이지에 한 세트의 데이터의 제 1 부분을 기입하는 단계;
    상기 제 1 다이의 상기 상위 페이지에 상기 한 세트의 데이터의 상기 제 1 부분을 기입한 후에 상기 제 2 다이의 하위 페이지에 상기 한 세트의 데이터의 제 2 부분을 기입하는 단계;
    상기 제 2 다이의 상기 하위 페이지에 상기 한 세트의 데이터의 상기 제 2 부분을 기입한 후에 상기 제 2 다이의 상위 페이지에 상기 한 세트의 데이터의 제 3 부분을 기입하는 단계; 및
    상기 제 2 다이의 상기 상위 페이지에 상기 한 세트의 데이터의 상기 제 3 부분을 기입한 후에 상기 제 1 다이의 하위 페이지에 상기 한 세트의 데이터의 제 4 부분을 기입하는 단계를 포함하는, 방법.
  18. 제 17 항에 있어서, 상기 메모리 장치에서 상기 한 세트의 데이터를 수신하는 단계를 더 포함하는, 방법.
  19. 제 1 항에 있어서, 상기 메모리 장치는 USB(universal serial bus) 메모리 장치인, 방법.
KR1020137004537A 2010-07-30 2010-12-22 다이 인터리브를 향상시키기 위해 프로그래밍 시퀀스를 구현하기 위한 시스템들 및 방법들 KR20130110153A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
IN2176MU2010 2010-07-30
IN2176/MUM/2010 2010-07-30
PCT/US2010/061717 WO2012015457A1 (en) 2010-07-30 2010-12-22 Systems and methods for implementing a programming sequence to enhance die interleave

Publications (1)

Publication Number Publication Date
KR20130110153A true KR20130110153A (ko) 2013-10-08

Family

ID=43736121

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020137004537A KR20130110153A (ko) 2010-07-30 2010-12-22 다이 인터리브를 향상시키기 위해 프로그래밍 시퀀스를 구현하기 위한 시스템들 및 방법들

Country Status (4)

Country Link
KR (1) KR20130110153A (ko)
CN (1) CN103140896B (ko)
TW (1) TW201222250A (ko)
WO (1) WO2012015457A1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9952779B2 (en) 2016-03-01 2018-04-24 Apple Inc. Parallel scheduling of write commands to multiple memory devices

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7463521B2 (en) * 2005-04-01 2008-12-09 Sandisk Corporation Method for non-volatile memory with managed execution of cached data
JP4842563B2 (ja) * 2005-05-16 2011-12-21 パナソニック株式会社 メモリコントローラ、不揮発性記憶装置、不揮発性記憶システム、及びデータ書き込み方法
US7551482B2 (en) * 2006-12-27 2009-06-23 Sandisk Corporation Method for programming with initial programming voltage based on trial
TWI375962B (en) * 2008-06-09 2012-11-01 Phison Electronics Corp Data writing method for flash memory and storage system and controller using the same
US8040744B2 (en) * 2009-01-05 2011-10-18 Sandisk Technologies Inc. Spare block management of non-volatile memories

Also Published As

Publication number Publication date
CN103140896A (zh) 2013-06-05
CN103140896B (zh) 2016-11-02
WO2012015457A1 (en) 2012-02-02
TW201222250A (en) 2012-06-01

Similar Documents

Publication Publication Date Title
US8397018B2 (en) Systems and methods for implementing a programming sequence to enhance die interleave
US9009436B2 (en) Flushed data alignment with physical structures
US9092340B2 (en) Method and system for achieving die parallelism through block interleaving
US8127073B2 (en) Memory system, multi-bit flash memory device, and associated methods
US8281061B2 (en) Data conditioning to improve flash memory reliability
US8832353B2 (en) Host stop-transmission handling
US10846017B2 (en) Secure digital (SD) to NVMe buffer manager
TWI498898B (zh) 資料寫入方法、記憶體控制器與記憶體儲存裝置
US9037779B2 (en) Systems and methods for performing variable flash wear leveling
WO2014105705A2 (en) Flash memory using virtual physical addresses
US20100042777A1 (en) Semiconductor device including memory cell having charge accumulation layer and control gate and data write method for the same
CN106598479A (zh) 闪速存储器的故障安全擦除的方法和装置
JP2008108418A (ja) マルチページプログラムの方法、及びこれを行うためのフラッシュメモリ装置
CN110275673A (zh) 存储装置及其操作方法
US20190035457A1 (en) Dynamic management of programming states to improve endurance
US20170004052A1 (en) Systems and Methods for Performing Data Recovery in a Memory System
US20080168214A1 (en) Memory system and method using scrambled address data
CN103389881A (zh) 控制装置、存储装置以及数据写入方法
CN112015334A (zh) 记忆装置存取管理方法、记忆装置及其控制器、电子装置
CN111435333B (zh) 存储装置及其操作方法
US20140189201A1 (en) Flash Memory Interface Using Split Bus Configuration
CN106504788B (zh) 具有空闲存储器件的存储系统及其操作方法
TWI644215B (zh) 用來控制一資料儲存裝置的運作之方法以及資料儲存裝置及其控制器
KR20130110153A (ko) 다이 인터리브를 향상시키기 위해 프로그래밍 시퀀스를 구현하기 위한 시스템들 및 방법들
US9507706B2 (en) Memory system controller including a multi-resolution internal cache

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