KR20140043329A - 셀 저장 용량당 서로 다른 비트를 갖는 세 개의 메모리 층을 구비한 메모리 시스템 - Google Patents

셀 저장 용량당 서로 다른 비트를 갖는 세 개의 메모리 층을 구비한 메모리 시스템 Download PDF

Info

Publication number
KR20140043329A
KR20140043329A KR1020137022329A KR20137022329A KR20140043329A KR 20140043329 A KR20140043329 A KR 20140043329A KR 1020137022329 A KR1020137022329 A KR 1020137022329A KR 20137022329 A KR20137022329 A KR 20137022329A KR 20140043329 A KR20140043329 A KR 20140043329A
Authority
KR
South Korea
Prior art keywords
memory layer
memory
data
block
layer
Prior art date
Application number
KR1020137022329A
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 KR20140043329A publication Critical patent/KR20140043329A/ko

Links

Images

Classifications

    • 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
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • 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/5641Multilevel memory having cells with different number of storage levels
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Read Only Memory (AREA)
  • Non-Volatile Memory (AREA)
  • Memory System (AREA)

Abstract

다중 층 메모리 및 동작을 위한 방법이 개시된다. 메모리는 3 이상의 층을 포함하며 각 층은 이전층보다 셀 저장 용량당 더 많은 비트를 갖는 플래시 메모리 셀로 구성된다. 방법은, 데이터의 상태에 따라 수신시 다중 층 메모리의 제 1 또는 제 2 층에 바로 호스트 데이터를 보내는 단계를 포함할 수 있다. 또한, 방법은 층 전송 기준 충족시 데이터를 한 층에서 셀 층당 다음으로 더 많은 비트에 전송할 뿐만 아니라, 각 층 내에 바람직하게 데이터가 머물러 있도록 더 많은 자유 블록들의 메모리를 발생하기 위해 데이터 재배치 동작에서 각각의 층 내에서 데이터를 카피하는 것을 포함할 수 있다.

Description

셀 저장 용량당 서로 다른 비트를 갖는 세 개의 메모리 층을 구비한 메모리 시스템{MEMORY SYSTEM WITH THREE MEMORY LAYERS HAVING DIFFERENT BIT PER CELL STORAGE CAPACITIES}
본 발명은, 다중 층 메모리 시스템에 관한 것이다.
플래시 메모리와 같은 비휘발성 메모리 시스템은 소비자 제품에서 사용하기 위해 널리 채택되었다. 플래시 메모리는 서로 다른 형태, 예를 들면, 호스트 장치 사이에 옮겨질 수 있는 휴대 메모리 카드 형태 또는 호스트 장치 내 내장되는 고체 상태 디스크(SSD)로서 발견될 수 있다. 플래시 메모리에서 발견되는 2가지 일반적인 메모리 셀 아키텍처는 NOR 및 NAND를 포함한다. 전형적인 NOR 아키텍처에서, 메모리 셀은 셀의 행을 따라 확장하는 워드 라인에 제어 게이트가 연결되고 비트 라인에 인접하여 컬럼(column) 방향으로 확장하는 소스 확산부와 드레인 확산부 사이에 연결된다. 메모리 셀은 소스와 드레인 사이에 적어도 셀 채널 영역의 부분 상에 위치된 적어도 한 저장 소자를 포함한다. 이에 따라, 저장 소자 상에 전하의 프로그램된 레벨은 셀의 동작 특성을 제어하며, 이것은 어드레스된 메모리 셀에 적합한 전압을 인가함으로써 판독될 수 있다.
전형적인 NAND 아키텍처는 셀의 컬럼을 형성하기 위해 개개의 비트 라인과 기준 전위 사이에 하나 이상의 선택 트랜지스터와 함께 연결된, 16 또는 32와 같은 2 이상의 직렬-연결된 메모리 셀의 스트링을 이용한다. 워드 라인은 대다수의 이들 컬럼 내에 셀을 가로질러 확장한다. 컬럼 내 개개의 셀은 스트링을 통해 흐르는 전류가 어드레스된 셀에 저장된 전하의 레벨에 의존하도록 스트링 내 나머지 셀이 턴 온 되게 함으로써 프로그램하는 동안 판독되고 검증된다.
플래시 메모리는 일반적으로 셀당 1비트를 저장하는, 단일 레벨 셀(SLC) 플래시라고도 알려진 2진 플래시와 같이 셀당 데이터 비트의 수가 가장 작을 때 가장 큰 성능을 제공한다. 복수-레벨 셀(MLC) 플래시라고도 알려진, 셀당 1 이상의 비트를 저장하게 구성된 플래시 메모리는 셀당 2 이상의 비트의 정보를 저장할 수 있다. SLC 플래시 메모리가 일반적으로 MLC 플래시보다 더 나은 판독 및 기록 성능(예를 들면, 속도 및 내구성)을 갖는 것으로 알려져 있지만, MLC 플래시는 더 많은 저장 용량을 제공하며 일반적으로 제조하기가 덜 비용이 든다. MLC 플래시의 내구성 및 성능은 주어진 MLC 구성의 셀당 비트의 수가 증가함에 따라 감소하는 경향이 있다. 이들 유형들의 플래시 메모리 셀을 사용하는 플래시 메모리 장치의 설계에서 성능, 용량, 및 비용의 필요한 균형을 얻는데 있어서 계속되는 과제가 있다.
주어진 애플리케이션에 대해 요구되는 성능, 용량, 및 내구성을 이루기 위해 서로 다른 용량의 플래시 메모리 셀을 사용하는 과제를 해결하기 위해서 다중 층 메모리 시스템을 구현하기 위한 시스템과 방법이 개시된다.
일 측면에 따라서, 대량 저장 메모리 시스템이 개시된다. 대량 저장 메모리 시스템은 호스트 시스템으로부터 데이터를 수신하도록 조절된 인터페이스 및 복수의 메모리 층을 포함한다. 복수의 메모리 층은 셀 저장 용량당 제 1 비트를 포함하는 비휘발성 메모리 셀을 갖는 제 1 메모리 층; 셀 저장 용량당 제 2 비트를 포함하는 비휘발성 메모리 셀을 갖는 제 2 메모리 층으로서, 셀 저장 용량당 제 2 비트는 셀 저장 용량당 제 1 비트보다 더 많은 것인, 제 2 메모리 층; 및 셀 저장 용량당 제 3 비트를 포함하는 비휘발성 메모리 셀을 갖는 제 3 메모리 층으로서, 셀 저장 용량당 제 3 비트는 셀 저장 용량당 제 2 비트보다 더 많은 것인, 제 3 메모리 층을 포함한다. 대량 저장 메모리 시스템은 인터페이스 및 복수의 메모리 층과 통신하는 제어기를 더 포함하고, 호스트로부터 수신된 데이터를 복수의 층 중 하나 이상에 보내고 데이터를 복수의 메모리 층 사이에 전송하게 구성된다.
또 다른 측면에 따라서, 대량 저장 메모리 시스템은 호스트 시스템으로부터 데이터를 수신하도록 조절된 인터페이스 및 복수의 메모리 층을 갖는다. 메모리 층은 셀 저장 용량당 제 1 비트를 포함하는 비휘발성 메모리 셀을 갖는 제 1 메모리 층; 셀 저장 용량당 제 1 비트보다 많은 셀 저장 용량당 제 2 비트의 비휘발성 메모리 셀을 갖는 제 2 메모리 층; 셀 저장 용량당 제 2 비트보다 많은 셀 저장 용량당 제 3 비트의 비휘발성 메모리 셀을 갖는 제 3 메모리 층을 포함한다. 또한, 대량 저장 메모리 시스템은 인터페이스 및 복수의 메모리 층과 통신하는 제어기를 포함하며 제어기는, 호스트로부터 인터페이스에 수신된 데이터를 제 1 메모리 층에 보내고; 제 1 메모리 층 내 자유 블록의 수가 제 1 최소 임계값 미만일 때 그리고 제 1 유효 데이터 임계값을 초과하는 제 1 메모리 층 내 유효 데이터량을 검출하였을 때, 제 1 메모리 층으로부터의 데이터를 제 2 메모리 층으로 이동시키고; 제 2 메모리 층 내 자유 블록들의 수가 제 2 최소 임계값 미만일 때 그리고 제 2 유효 데이터 임계값을 초과하는 제 2 메모리 층 내 유효 데이터량을 검출하였을 때, 제 2 메모리 층으로부터의 데이터를 제 3 메모리 층으로 이동시키게 구성된다.
또 다른 측면에서, 인터페이스, 복수의 메모리 층, 및 인터페이스 및 복수의 메모리 층과 통신하는 제어기를 갖는 다중 층 메모리에서 데이터를 관리하기 위한 방법이 개시된다. 제어기는 인터페이스에 수신된 데이터를 복수의 층의 제 1 메모리 층에 보내며, 제 1 메모리 층은 셀 저장 용량당 제 1 비트를 포함하는 비휘발성 메모리 셀을 가지며; 제 1 기준 충족시 데이터를 제 1 메모리 층에서 제 2 메모리 층으로 이동시키며, 제 2 메모리 층은 셀 저장 용량당 제 2 비트를 포함하는 비휘발성 메모리 셀을 가지며, 셀 저장 용량당 제 2 비트는 셀 저장 용량당 제 1 비트보다 많다. 제어기는 제 2 기준 충족시 데이터를 상기 제 2 메모리 층에서 제 3 메모리 층으로 이동시키며, 제 3 메모리 층은 셀 저장 용량당 제 3 비트를 갖는 비휘발성 메모리 셀을 가지며, 셀 저장 용량당 제 3 비트는 셀 저장 용량당 제 2 비트보다 많다.
본 발명은, 주어진 애플리케이션에 대해 요구되는 성능, 용량, 및 내구성을 이루기 위해 서로 다른 용량의 플래시 메모리 셀을 사용하는 과제를 해결하기 위해 다중 층 메모리 시스템을 구현하기 위한 시스템과 방법을 제공하는 효과를 갖는다.
도 1은, 발명의 측면을 구현할 수 있는 시스템의 블록도.
도 2는, 도 1의 저장 장치의 물리 메모리 구성 예를 도시한 도면.
도 3은, 도 2의 물리 메모리의 부분의 확대도.
도 4a는, 일 실시예에 따라 도 1의 저장 장치의 다중 층 메모리 구성을 도시한 도면.
도 4b는, 도 4a의 다중 층 메모리의 대안적 물리 배열을 도시한 도면.
도 5는, 다중 층 메모리를 동작시키기 위한 방법을 도시한 흐름도.
도 6은, 도 1의 시스템에서 이용될 수 있는 LBA 어드레스 공간 및 연관된 DLBA 어드레스 공간의 예.
도 7은, 호스트로부터 수신된 데이터에 대한 LBA 대 DLBA 매핑의 예를 도시한 도면.
도 8은, DLBA 어드레스 공간에서 데이터 재배치 동작과 물리 어드레스 공간에서 대응하는 업데이트 블록을 도시한 도면.
도 9는, 도 8의 데이터 재배치 동작에 따른 제 2 데이터 재배치 동작을 도시한 도면.
도 10은, 저장 어드레스 재-매핑(STAR) 메모리 관리 배열을 이용하는 도 4a의 다중 층 메모리 구성을 갖는 저장 장치의 대안적 실시예.
발명의 측면을 구현하는데 사용하기에 적합한 시스템이 도 1에 도시되었다. 호스트 시스템(100)은 물리 저장 장치(102)에 저장되고 이로부터 인출되는 데이터를 제어한다. 저장 장치(102)는 고체상태 디스크(SSD) 드라이브와 같은 호스트에 내장되는 플래시 장치이거나, 호스트로부터 분리된 외부 저장 장치이거나, 호스트(100)에 착탈 가능하게 연결되는 메모리 카드 또는 이외 다른 착탈 가능 플래시 드라이브일 수 있으며, 다수의 가용한 유선 또는 무선 인터페이스 중 어느 것을 사용하여, 커넥터(103, 104)와 같은 기계 및 전기식 커넥터를 통해서, 또는 무선으로 통신할 수 있다. 호스트(100)는 태블릿 컴퓨터, 모바일 전화, 개인용 디지털 보조장치, 홈 네트워크 라우터, 개인용 컴퓨터(PC)와 같은 데이터 취급 장치이거나 이외 어떤 다른 유형의 데이터 취급 장치일 수 있다.
호스트 시스템(100)은 저장 장치(102)에 관한 한, 회로와 소프트웨어와의 조합으로 구성된 2개의 주요 부분을 갖는 것으로서 볼 수 있다. 이들은 애플리케이션 부(105), 그리고 저장 장치(102)와 인터페이스하는 드라이버 부(106)이다. 예를 들면, PC에서, 애플리케이션 부(105)는 호스트(100) 상에서 데이터를 관리하기 위한 파일 시스템(110) 뿐만 아니라, 워드 프로세싱, 그래픽스, 제어 또는 그외 인기있는 애플리케이션 소프트웨어를 실행하는 프로세서(109)를 포함할 수 있다. 카메라, 셀룰라 전화 또는 단일의 한 세트의 기능을 수행하는 데에만 주로 전용되는 그외 다른 호스트 시스템에서, 애플리케이션 부(105)는 사진을 촬영하여 저장하기 위해 카메라를 동작시키고, 전화를 걸거나 받기 위해 셀룰라 전화를 동작시키는 등을 행하는 소프트웨어를 포함한다.
저장 장치(102)는 비휘발성 메모리(107)를 내포한다. 비휘발성 메모리(107)는 단일 레벨 셀(SLC) 유형의 플래시 메모리 및/또는 복수-레벨 셀(MLC) 유형의 플래시 메모리와의 조합으로 구성될 수 있다. 또한, 저장 장치(102)는 프로세서, 프로세서를 동작시키기 위한 명령 및 논리 블록 대 물리 블록 변환(translation) 테이블을 포함할 수 있는 호스트 인터페이스 및 제어기(108)를 포함한다.
비휘발성 플래시 메모리는 다수 블록의 메모리 셀로 배열될 수 있다. 한 블록의 메모리 셀은 소거 유닛, 즉 물리적으로 함께 소거될 수 있는 가장 적은 수의 메모리 셀이다. 증가된 병행도(parallelism)를 위해서, 블록은 더 큰 메타 블록 유닛으로 운영된다. 메모리 셀의 적어도 2개의 플레인 각각으로부터 한 블록은 함께 논리적으로 연결되어 한 메타 블록을 형성한다. 도 2를 참조하면, 대표적인 플래시 메모리 셀 어레이의 개념도가 도시되었다. 4개의 플레인 또는 서브-어레이(200, 202, 204, 206)의 메모리 셀이 단일 집적 메모리 셀 칩 상에, 또는 2개의 칩(각 칩 상에 2개의 플레인들) 상에, 또는 4개의 개별적 칩 상에 일 수 있다. 구체적 배열은 이하 논의에 중요하지 않으며 다른 수의 플레인이 시스템에 존재할 수 있다. 플레인은 개별적으로 사각형에 의해 도 2에 도시된 다수 블록들의 메모리 셀, 이를테면 각각의 플레인(200, 202, 204, 206) 내에 위치된 블록(208, 210, 212, 214)으로 분할된다. 각 플레인 내에 수십 또는 수백 개의 블록이 있을 수 있다. 블록은 논리적으로 함께 연결되어, 단일 유닛으로서 소거될 수 있는 메타 블록을 형성할 수 있다. 예를 들면, 블록(208, 210, 212, 214)은 제 1 메타 블록(216)을 형성할 수 있다. 블록(220, 222, 224, 226)으로 구성된 제 2 메타 블록(218)에 도시된 바와 같이, 메타 블록을 형성하기 위해 사용되는 블록은 이들의 각각의 플레인 내에 동일한 상대적 위치로 제약될 필요는 없다.
개별 블록은 이어 동작 목적을 위해 도 3에 도시된 바와 같이, 메모리 셀의 페이지로 분할된다. 예를 들면, 블록(208, 210, 212, 214) 각각의 메모리 셀은 각각 8개의 페이지(P0 ~ P7)로 분할된다. 대안적으로, 각 블록 내에 16, 32 또는 그 이상의 페이지의 메모리 셀이 있을 수 있다. 페이지는 한 번에 프로그램되는 최소량의 데이터를 내포하는, 한 블록 내에 데이터 프로그램 유닛이다. 한 번에 판독될 수 있는 최소 유닛의 데이터는 페이지 미만일 수도 있다. 메타 페이지(328)는 4개의 블록(208, 210, 212, 214) 각각에 대해 한 물리 페이지로 형성되는 것으로 도 3에 도시되었다. 메타 페이지(328)는 4개의 블록 각각에 내에 페이지(P2)를 포함하지만 메타 페이지의 페이지는 반드시 블록 각각 내에 동일 상대적 위치를 가질 필요는 없다. 메타 페이지는 최대 프로그램 유닛이다. 도 2 내지 도 3에 개시된 블록은 이들이 위에 논의된 바와 같이 다수 그룹의 물리 메모리 셀에 관계되기 때문에 본원에서는 물리 블록이라 칭한다. 본원에서 사용되는 바와 같이, 논리 블록은 물리 블록과 동일 크기를 갖는 것으로 정의된 어드레스 공간의 가상 유닛이다. 각 논리 블록은 호스트(100)로부터 수신된 데이터에 연관된 일 범위의 논리 블록 어드레스(LBAs)를 포함한다. 이어 LBA는 데이터가 물리적으로 저장되는 저장 장치(102) 내 하나 이상의 물리 블록에 매핑된다.
이제, 도 4a를 참조하면, 각 층이 셀 용량당 상이한 비트를 갖는 3개 층의 플래시 메모리 셀(402, 404, 406)을 포함할 수 있는 비휘발성 메모리(401)를 갖는 도 1의 저장 장치(102)의 일 실시예가 도시되었다. 도시된 바와 같이, 제 1 플래시 메모리 층(402)은 셀 용량당 단일 비트를 갖는 2진 플래시로서 구성될 수 있다. 제 1 플래시 메모리 층을 본원에서는 X1 플래시라고도 한다. 제 2 플래시 메모리 층(404)은, 예를 들면, 셀 용량당 2개의 비트를 갖는 MLC 플래시로서 구성될 수도 있고, 본원에서는 X2 플래시라고도 한다. 제 3 플래시 메모리 층(406)은 MLC 플래시로서 구성될 수도 있는데, 그러나 제 2 플래시 메모리 층(404)보다는 셀 용량당 더 많은 비트를 갖는다. 이 예에서, 제 3 플래시 메모리 층은 셀 MLC 플래시당 3개의 비트로서 도시되었고 본원에서는 X3 플래시라고도 한다. 서로 다른 플래시 층(402, 404, 406)은 모두가 동일 물리 다이 상에 배치될 수도 있고 각 층은 각각의 개별적 다이 상에 제조될 수 있으며, 또는 층은 단일 플래시 층 다이와 조합된 플래시 층 다이와의 조합 상에 제조될 수도 있다. 셀 구성당, 1, 2 및 3 비트의 구체적인 비트가 예시되었을지라도, 제 1 플래시 메모리 층이 제 2 플래시 메모리 층보다는 셀 구성당 적은 비트를 가지며 또한 제 2 플래시 메모리 층이 제 3 플래시 메모리 층보다는 셀 구성당 적은 비트를 갖는 다른 조합이 구상된다. 도 4b는 제 1 및 제 2 플래시 메모리 층(402, 404)이 한 다이(440) 상에 위치되고 제 3 플래시 메모리 층(406)이 별도의 다이(442) 상에 위치되는 도 4a의 비휘발성 메모리(401)를 도시한 것이다.
제어기(424)의 동적 랜덤 액세스 메모리(DRAM) 버퍼(408)는 시리얼 어드밴스드 테크놀로지 어태치먼트(Serial Advanced Technology Attachment)(Serial ATA 또는 SATA라고도 알려진) 인터페이스와 같은 인터페이스(434)를 통해 호스트(100)로부터 데이터를 수신한다. DRAM 버퍼(408)는, 제어기의 프로세서(424)로부터 지휘 하에, 인터페이스(434)에 호스트로부터 수신된 데이터를 저장 장치 내 다중 층 비휘발성 메모리(401)에 보낸다. 저장 장치 내 DRAM 기록 버퍼(408)는 제 1 및 제 2 플래시 메모리 층(402, 404)과 통신한다. 또한, 제 1 플래시 메모리 층(402)은 제 2 플래시 메모리 층(404)와 통신하며 제 2 플래시 메모리 층(404)은 제 3 플래시 메모리 층(406)과 통신한다.
제어기(424)는 단일 집적 회로 칩 내에 구현될 수 있고 하나 이상의 지령 채널(436)을 통해 비휘발성 메모리(401) 내 서로 다른 층(402, 404, 406)과 통신할 수 있다. 제어기는 시스템을 초기화("부트")하기 위한 코드를 내포하는 제어기(424) 내 비휘발성 메모리(432), DRAM(408), 인터페이스(434), 및 다중 층 플래시 메모리(401)와 호스트 사이에 제어기를 통과하는 데이터에 대한 오류 정정 코드(ECC)를 계산하고 체크하는 회로(430)를 연결하는 자신의 내부 버스를 가질 수 있다. 본원에 기술된 바와 같은 메모리 관리 명령을 구현하기 위한 제어기 실행 가능 코드는 다중 층 플래시 메모리(401), 예를 들면, 제 1 플래시 메모리 층(402)에 저장될 수 있다.
일 구현에서, 모든 수신된 호스트 데이터는 초기에는 제 1 플래시 메모리 층 내에서 이동되기 전에 제 1 플래시 메모리 층에 보내지거나, 이하 상세히 개시되는 바와 같이, 후속되는 층에 보내질 수 있다. 또 다른 구현에서, 호스트로부터 수신된 데이터는 수신된 데이터가 랜덤한 LBA 순서{라인(410)에서}로 되어 있을 때에는 DRAM(408)에서 제 1 플래시 메모리 층(402)에 보내지거나, 수신된 데이터가 순차적인 LBA 순서(라인(412)에서)로 되어 있을 때에는 제 1 플래시 메모리 층을 우회하여 곧바로 제 2 플래시 메모리 층에 보내진다. 제어기는 적합한 시간에서 데이터를 제 1 플래시 메모리 층(402)에서 제 2 플래시 메모리 층(404){라인(414)에서}으로, 그리고 제 2 플래시 메모리 층에서 제 3 플래시 메모리 층(416에서)으로 점진적으로 이동할 수 있다. 또한, 각 플래시 메모리 층 내에 새로운 자유 블록을 생성하기 위한 가비지 수거는 바람직하게는 데이터가 플래시 메모리 층{라인(418, 420, 422)에서} 내에서 리사이클(recycle)되게 수행된다.
도 5를 참조하여, 데이터를 플래시 층으로/층 사이에서 이동하기 위한 저장 장치의 제어기에 의해 구현되는 예시적 방법이 개시된다. 일 구현에서, 데이터가 호스트 기록으로부터 수신될 때(502에서), 제어기는 호스트로부터 데이터를 수신하기 위해 메모리 층을 선택한다. 선택은 SATA 인터페이스와 같은 인터페이스로부터 DRAM에 수신되는 호스트로부터의 데이터가 순차적인지 아니면 비-순차적인지에 기초할 수 있다(504에서). 예를 들면, 수신된 데이터가 호스트 LBA 어드레스들로 순차적으로 어드레스된다면, 제어기는 데이터를 DRAM으로부터 곧바로 제 2 플래시 메모리 층에 보낼 수 있다(506에서). 반대로, 데이터가 랜덤한 또는 비-순차적으로 어드레스된 데이터라면, 이 데이터는 DRAM에서 곧바로 제 1 플래시 메모리 층에 보내질 수 있다(508에서). 일 구현에서, 수신된 데이터의 호스트 LBA 데이터 어드레스가 다중 층 메모리 내에 메타 블록의 한 완전한 메타 페이지를 채우기에 충분한 데이터량에 대해 순차적이라면, 호스트로부터 언제든 수신되는 데이터는 순차적인 것으로서 간주된다.
플래시 메모리 층 각각에서, 저장 장치의 제어기는 플래시 메모리 층 전송 기준을 모니터한다. 예를 들면, 플래시 메모리 층 전송 기준은 플래시 메모리 층 내에 충분한 자유 블록이 남아 있는지와 플래시 메모리 층 내에 내포된 유효 데이터의 총량일 수 있다. 일단 제어기가 자유 블록의 수가 플래시 메모리 층에 대한 최소 임계값 미만인 것으로 판정하면, 제어기는 다음에 플래시 메모리 층 내에 유효 데이터의 양이 전송 임계값 이상인지를 판정한다. 플래시 메모리 층 내 자유 블록의 수가 최소 임계값 미만이고, 이 플래시 메모리 층 내 유효 데이터의 총량이 임계량에 도달하였을 때, 제어기는 이 플래시 메모리 층으로부터 데이터가 다음 플래시 메모리 층에 전송되게 할 수 있다. 이에 따라, 다음 플래시 메모리 층에 전송하기 위한 기준이 제 1 플래시 메모리 층에서 만족된다면, 제 1 플래시 메모리 층 내에 공간을 비워두기 위해서 데이터를 제 2 플래시 메모리 층에 카피할 이전에 프로그램된 한 블록의 데이터가 제어기에 의해 선택된다(510, 512, 506에서). 유사하게, 제 2 플래시 메모리 층 내 블록은 제 2 플래시 메모리 층이 다음 플래시 층에 전송하기 위한 자신의 기준을 충족하였을 때 제 2 플래시 메모리 층 내 블록을 비워두기 위해서 제 3 플래시 메모리 층으로 전송되는 데이터를 가질 수 있다(516, 518, 522에서).
소스 메모리 층으로부터 데이터를 최소 수 미만의 자유 블록을 갖는 것을 포함할 수 있는 목적지 층에 언제 전송할 것인지와 유효 데이터의 임계량을 판정하기 위한 기준은 각 층에 대해 동일할 수도 있고 다를 수도 있다. 이 예에서는 제 3 플래시 메모리 층인 마지막 층은 데이터를 보낼 다음으로 더 큰 용량의 MLC 층을 갖기 않을 것이며 따라서 할당된 전송 기준을 갖지 않을 것이다. 일 예에서, 제 1 및 제 2 플래시 메모리 층에 대한 전송 기준 임계값은 층이 현재 적어도 유효 데이터의 소정의 백분률, 이를테면, 90%를 내포함을 확인하는 것일 수 있다. 또 다른 실시예에서, 전송 기준은 데이터가 다음 메모리 층에 전송되게 하기 위해 층 내 한 블록이 선택될 수 있기 전에 이 층 내에 현재 임계 수의 자유 블록만이 있다는 것과 이 층이 적어도 소정 백분률의 유효 데이터를 내포하는 것일 수 있다. 임계 수의 자유 블록은 하나 이상의 자유 블록들과 같은 최소수일 수 있다. 소스에서 다음 플래시 메모리 층으로 재배치하기 위해 선택되는 데이터는 바람직하게는 최소로 최근에 프로그램된, 또는 "가장 콜드한(cold)" 호스트 데이터를 갖는 블록으로부터의 데이터이다. 제어기는 이 블록을 관련 층 내 이전에 프로그램된 각 블록에 대해 유지된 프로그래밍 순서 정보에 기초하여 선택할 수 있다.
호스트로부터 데이터를 받아들이거나 제 1 층으로부터 데이터를 셀 용량당 다음으로 더 많은 비트의 층에 전송함과 동시에, 제어기는 유효 및 폐용(폐용) 데이터 둘 다를 갖는 이전에 프로그램된 블록들로부터 유효 데이터를 카피하고 이어서 모든 유효 데이터가 카피된 블록을 라사이클함으로써 블록을 재활용(reclaim)한다. 이 블록 재활용 절차는 다수 그룹의 데이터가 함께 유지되고 수신된 동일 어드레스 런(run)에 새로운 데이터로서 합체되는 표준 가비지 수거 기술 형태일 도 있고, 또는 이하 더욱 논의되는 바와 같이 데이터가 동일 어드레스 그룹들로 합체되지 않는 재배치 절차일 수도 있다. 가비지 수거 또는 재배치 절차는 바람직하게는 플래시 메모리 층 각각에서 독립적으로 제어기에 의해 구현된다. 유효 데이터 카피 프로세스는, 가비지 수거이든 재배치이든 간에, 프로세스에서 이동된 데이터가 바람직하게는 동일 플래시 메모리 층에서 유지되게 각 층 내에서 구현된다. 도 5에 도시된 바와 같이, 제어기는 충분한 수의 자유 블록이 제 1층에 존재하는지를 알기 위해 체크하고, 그렇지 않다면, 유효 데이터를 합체하여 추가의 자유 블록을 생성하기 위해 제 1 층 내에 다수 블록의 데이터에 대해 카피 동작을 수행한다(510, 514에서). 이 데이터 카피 프로세스 역시 제 2 및 제 3 층에서 독립적으로 실행된다(516, 520, 524, 526에서).
위에 언급된 방법은 우선적으로 데이터를 동일 플래시 메모리 층 내에서 재배치하며 현재 층이 거의 유효 데이터로만 차있다면 데이터를 후속되는 층으로 이동한다. 또한, 소스 층 내 최소로 최근에 프로그램된 블록으로부터 오는 데이터를 층 사이에 이동함으로써, 데이터는 제 1 플래시 메모리 층에서 제 3 플래시 메모리 층으로 필터링되는 경향이 있게 되어 "핫" 데이터는 제 1 플래시 메모리 층 내에 있게 되는 경향이 있게 되고, 덜 활발하게 업데이트된 데이터는 제 2 플래시 메모리 층 내에 있게 되는 경향이 있게 되고, "콜드" 데이터는 주로 제 3 및 최종 플래시 메모리 층 내에 있게 된다. 데이터는 매우 최근에 업데이트된 데이터라면 이 데이터가 더 활발히 사용될 수 있어 짧은 기간 내에 다시 업데이트될 것이기 때문에, "핫"으로 간주된다. 일 구현에서, 제 2 플래시 메모리 층에서 제 3 플래시 메모리 층으로 데이터의 전송은 바람직하게는 저장 장치의 평균 기록 속도를 감소시키기 않기 위해서 어떠한 호스트 데이터 기록 지령들도 미결이지 않을 때(예를 들면, 호스트 인터페이스가 아이들 상태일 때), 백그라운드 동작으로서 행해진다. 호스트 기록 동작을 제외하고 어떠한 동작이든 평균 기록 속도에의 영향을 감소시키기 위해 백그라운드 동작으로서 스케쥴될 수 있다.
위에 방법 및 기술된 구조를 구현하기 위해서, 제어기는 각 플래시 메모리 층에 블록이 프로그램된 순서를 기록하기 위해 이 층 내에 데이터 블록들의 링크된 리스트를 유지할 수 있다. 또한, 제어기는 데이터 전송 및 메모리 사용의 효율을 더욱 향상시키기 위해서 층 각각 내에서 저장 어드레스 재-매핑(STAR) 기술을 구현할 수도 있다.
다수의 공지된 메모리 관리 기술들의 어느 것이든 본원에 기술된 다중 층 메모리 시스템을 구현하기 위해 사용될 수 있을지라도, STAR 기술을 이용하게 구성된 제어기가 본원에 기술된다. STAR의 한 이점은 개인용 컴퓨터에서 고체상태 디스크(SSD) 응용에서 일어날 수 있는 것으로, 데이터의 짧은 버스트를 장치의 논리 블록 어드레스(LBA) 어드레스 공간 내 관련이 없는 영역에 기록할 필요성을 특징으로 하는 랜덤 기록 응용에서 메모리 시스템의 성능을 증가시키는 능력이다. STAR 기술의 일 구현에서, 호스트 데이터는 호스트에 의해 할당된 제 1 논리 어드레스에서 제 2 논리 어드레스 공간 내 인접 논리 어드레스의 블록에 매핑된다. 완전히 프로그램된 블록의 어드레스에 연관된 데이터는 폐용(obsolete)이 되기 때문에, 데이터 재배치 절차는 제어기가 최소량의 유효 데이터를 갖거나 임계량 미만의 유효 데이터를 갖는 층에서 이전에 완전히 프로그램된 블록을 선택하고 더 많은 데이터를 기록하는데 사용하기 위해 이들 블록을 비워두기 위해 이들 블록 내 유효 데이터를 재배치하는 경우 개시된다. 재배치되는 데이터는 호스트에 의해 할당된 논리 어드레스에 관계없이 데이터 재배치를 필요로 하는 소스 블록 내 발생된 순서로 동일 메모리 층 내 재배치 블록에 인접하여 기록된다. 이러한 식으로 하여, 호스트에 의해 할당된 논리 어드레스 런을 의도적으로 합체(전형적인 가비지 수거에서처럼)하지 않음으로써 오버헤드가 감소될 수 있다. 호스트에 의해 할당된 논리 어드레스와 제 2 논리 어드레스 사이에 매핑과 메모리 층에서 후속되는 재배치에 기인한 매핑에 있어 후속되는 변화를 추적하기 위해 저장 어드레스 테이블이 사용된다.
도 6 ~ 도 9를 참조하면, 주어진 시간에, LBA 어드레스 공간(602)에서 호스트 자유 클러스터 맵의 가상의 부분(hypothetical section)과, 본원에서 장치 논리 어드레스 공간 또는 DLBA 어드레스 공간(604)이라고 칭하는 제 2 논리 어드레스 공간에 자유 클러스터 맵이 도 6에 도시된 바와 같이 표현될 수 있다. LBA 어드레스 공간(602)에서, 자유 클러스터들(606)은 근본적으로 랜덤한 위치에 흩어진다. DLBA 어드레스 공간(604)에서, 2개의 자유 블록(608)이 가용하며, 서로 다른 개수의 폐용(자유) 클러스터(606)를 갖는 3개의 이전에 프로그램된 블록(610)이 있다.
다음에 호스트가 저장 장치에 기록할 데이터를 갖고 있을 때, 호스트는 LBA 어드레스 공간(602)이 가용한 어디에든 이를 할당한다. 도 7은 저장 어드레스 재-매핑 알고리즘이 가용한 자유 블록(170) 중 하나를 기록 블록(702)이 되게 어떻게 할당하는가와, 각 LBA 어드레스가 기록 블록(702) 내 가용한 DLBA 공간 내 순차적 클러스터에 어떻게 매핑되는가를 도시한 것이다. DLBA 공간 내 기록 블록(702)은 LBA 어드레스 위치에 관계없이, LBA 어드레스가 기록되는 순서로 기록된다. 이 예에서, 호스트가 자유 LBA 클러스터를 사용한 시간 순서는 예시를 쉽게 하기 위해 어드레스 순서와 동일한 것으로 가정하나, 그러나 저장 어드레스 재-매핑 알고리즘을 구현하는 제어기는 LBA 어드레스 수 순서에 관계없이 LBA 어드레스가 사용된 시간 순서로 DLBA 어드레스를 기록 블록(702)에 할당할 것이다. 데이터는 하나 이상의 DLBA 런에서 기록 블록에 기록된다. DLBA 런은 동일 LBA 런에서 인접 LBA 어드레스에 매핑되는 한 세트의 인접 DLBA 어드레스이다. DLBA 런은 DLBA 어드레스 공간(604) 내 블록 경계에서 끝나야 한다. 기록 블록(702)이 채워지게 되었을 때, 자유 블록(608)은 다음 기록 블록(702)으로서 할당된다.
DLBA 블록은 플래시 메모리의 물리 어드레스 공간(706) 내 블록들(704)과 정렬되고 따라서 DLBA 블록 크기 및 물리 어드레스 블록 크기는 동일하다. 따라서 DLBA 기록 블록(702)에서 어드레스들의 배열 또한 물리 어드레스 공간 내 대응하는 업데이트 블록의 배열과 동일하다. 이 대응에 기인하여, 일반적으로 가비지 수거라고 하는 어떠한 별도의 데이터 합체도 물리 업데이트 블록에선 필요하지 않다. 일반적인 가비지 수거 동작에서, 물리 블록에도 반영되는 것인 논리 블록 내 특정한 한 범위의 LBA 어드레스를 유지하기 위해 일반적으로 항시 한 블록의 논리 어드레스가 재조립(reassemble)된다. 더 구체적으로, 일반적인 가비지 수거 동작을 이용하는 메모리 시스템이 특정 물리 블록 내 한 섹터에 대응하는 업데이트된 섹터 정보를 수신하였을 때, 메모리 시스템은 업데이트된 섹터 또는 섹터를 수신하기 위해 물리 메모리 내 업데이트 블록을 할당하고, 이어서, 원래의 물리 블록으로부터 남은 유효 데이터 모두를 업데이트 블록의 나머지에 합체할 것이다. 이러한 식으로, 표준 가비지 수거는 특정한 어드레스 범위에 대응하는 데이터가 공통의 물리 블록에 항시 합체되도록 특정 LBA 어드레스 범위에 대한 다수 블록들의 데이터를 영속시킬 것이다. 이하 더 상세히 논의되는 재배치 동작은 동일 어드레스 범위에서 데이터의 합체를 요구하지 않는다. 대신에, 재배치 동작은 여러 물리 블록들로부터 수집한 데이터일 수 있는 새로운 다수 블록들의 데이터를 생성하기 위해 어드레스 재-매핑을 수행하며, 여기에서 특정한 LBA 어드레스 범위의 데이터는 의도적으로 합체되지 않는다.
앞에 언급된 바와 같이, STAR 알고리즘은 순차적 기록 알고리즘이 동작하게 자유 블록들의 충분한 공급이 확실하게 될 수 있게 동작한다. STAR 알고리즘은 유효 데이터와 폐용 데이터가 혼합된 이전에 프로그램된 블록들로부터의 유효 데이터를 재배치 블록(802)(도 8)으로서 알려진 특별한 기록 블록에 재배치함으로써 자유 블록들의 생성을 관리한다. 재배치를 위해 현재 선택된 이전에 프로그램된 블록을 재활용 블록이라 칭한다.
이제, 도 7 및 도 8을 참조하면, 데이터 재배치 프로세스가 도시되었다. 저장 어드레스 재-매핑 알고리즘은 자유 블록을 재배치 블록(802)으로서 지정하며, 이에 선택된 이전에 프로그램된 블록들로부터 데이터가 재배치되어 추가의 자유 블록을 생성한다. 재활용 블록(도 7의 블록 A) 내 유효 데이터는 유효 데이터가 재활용 블록에서 나타나는 순서로 선택되고 재활용 블록을 자유 블록(608)으로 전환하기 위해, 재배치 블록(802) 내 순차적이고 인접한 어드레스들로 재배치된다. 또한, 재배치된 데이터를 수신하기 위해 물리 어드레스 공간(706) 내 대응하는 업데이트 블록(704)이 할당된다. 호스트로부터 수신된 새로운 데이터를 위해 사용되는 업데이트 블록(704)에서와 같이, 재배치된 데이터를 수신하기 위한 업데이트 블록(704)은 재배치 동작이 이미 DLBA 어드레스 공간(604)에서 합체를 달성하였기 때문에 유효 데이터를 합체하기 위해 가비지 수거 동작을 결코 요구하지 않을 것이다.
도 9에 도시된 바와 같이 남은 이전에 프로그램된 블록들로부터 다음 재활용 블록(도 8의 이전에 프로그램된 블록 B)이 확인된다. 최소 유효 데이터를 갖는 이전에 프로그램된 블록은 다시 재활용 블록으로서 지정되고 재활용 블록의 유효 데이터는 개방 재배치 블록 내 순차적 위치에 전송된다. 업데이트 블록(704)에서 물리 어드레스의 병렬 할당 또한 행해진다. 다시, 재배치 블록(802)에 매핑된 물리 업데이트 블록(704)에선 어떠한 데이터 합체도 요구되지 않는다. 이전에 프로그램된 블록에 대한 재배치 동작은 기록 블록으로 지정된 자유 블록의 소비를 보상하기에 충분한 비율로 자유 블록을 생성하기 위해 백그라운드 동작으로서 수행된다. 도 6 ~ 도 9의 예는 호스트로부터의 새로운 데이터에 대해서 그리고 이전에 프로그램된 블록들로부터 재배치된 데이터에 대해서, 물리 어드레스 공간 내 각각의 개별적 업데이트 블록들과 더불어, 기록 블록 및 재배치 블록이 어떻게 개별적으로 유지될 수 있는가를 도시한 것이다. 호스트로부터 수신된 새로운 데이터를 연관시키기 위한 새로운 기록 블록의 할당은 현재 기록 블록이 완전히 프로그램되었을 때만 수행된다. 유사하게, 새로운 재배치 블록은 바람직하게는 이전의 재배치 블록이 완전히 프로그램된 후에만 할당된다. 새로운 재배치 블록은 바람직하게는 미기록된 용량만을 내포하는데, 즉, 소거할 준비가 된 폐용 데이터에만 연관되거나, 이미 소거되어 할당시엔 어떠한 유효 데이터도 내포하지 않는다.
위에 언급된 구현에서, 호스트로부터 새로운 데이터는 호스트로부터 다른 새로운 데이터만을 수신할 기록 블록에 연관되며, 재배치 동작에서 이전에 프로그램된 블록들로부터 재배치된 유효 데이터는 하나 이상의 이전에 프로그램된 블록들로부터의 유효 데이터 만을 내포할 재배치 블록에 이동된다. 다른 구현에서, 새로운 데이터 및 재배치된 데이터는 별도의 기록 및 재배치 블록에 대한 필요성 없이 단일 기록 블록에 전송될 수 있다. 재활용 블록으로서 이전에 프로그램된 블록의 제어기에 의한 선택은 임계값(고정된 임계값일 수도 있고 또는 현재 이전에 프로그램된 블록에 대한 유효 데이터의 평균량과 같이 가변될 수도 있다) 미만인 유효 데이터량에 연관된 이전에 프로그램된 블록 의 목록 상에 임의의 이전에 프로그램된 블록을 선택함으로써 달성될 수도 있고, 또는 가용한 이전에 프로그램된 블록들의 특정한 순위(ranking)에 기초하여(이전에 프로그램된 블록에 연관된 유효 데이터량에 기초하여) 선택함으로써 달성될 수도 있다. 본원에 개시된 시스템 및 방법에 사용될 수 있는 STAR 기술의 버전에 관한 추가의 상세는, 본원에 참조로 전체를 포함시키는 2008년 2월 22일에 출원되고 미국공개번호 2008/0307192로서 공개된 미국특허출원번호 12/036,014에서 발견될 수 있다.
도 6 ~ 도 9에 기술된 재배치 동작은 "핫" 데이터가 페용이 된 블록으로부터의 비교적 "콜드"한 데이터를 유사하게 비교적 콜드한 데이터를 내포하는 재배치 블록에 재배치한다. 이것은 비교적 핫한 블록 집단과 비교적 콜드한 블록 집단을 개별적으로 생성하는 효과를 갖는다. 재활용될 블록은 최소 유효 데이터량을 내포하는 핫 블록으로서 항시 선택된다. 핫 블록 집단의 생성은 재배치될 필요가 있는 데이터량을 감소시킴으로써, 메모리 스트레스 팩터(stress factor)를 감소시킨다.
다중 층 메모리 및 방법의 실시예에서, 제어기(108)는 각각의 플래시 메모리 층 각각에서 도 6 ~ 도 9에 도시된 STAR 기술을 구현한다. 도 4a의 저장 장치의 대안적 실시예에서, 다중 층 메모리 시스템의 STAR-가능 버전이 도 10에 도시되었는데, 여기에서 제 1 플래시 메모리 층은 제 2 플래시 메모리 층보다 셀 용량당 더 적은 비트를 가지며 제 2 플래시 메모리 층은 제 3 플래시 메모리 층보다 셀 용량당 더 적은 비트를 갖는다. 셀 메모리 층들당 다른 증가하는 일련의 비트가 사용될 수도 있고 다른 것에 있어서는 증분이 증가할지라도, 도 4a의 예에서와 같이, 셀 플래시 메모리 층(1002, 1004, 1006)당 1-비트, 2-비트 및 3-비트가 예시되었다. 도 10에 포함되었을 제어기 및 연관된 지령 라인은 플래시 메모리 층을 더 잘 예시하고 도면을 간단하게 위해 생략되었다.
제 1 플래시 메모리 층(1002)은 개방 기록 블록(1008)에 비-순차적 호스트 LBA 어드레스에 따라 호스트 데이터를 수신한다. 각 기록 블록이 완전히 프로그램되었을 때, 기록 블록은 일 그룹의 이전에 프로그램된 데이터 블록(1010) 중 하나가 되며, 블록은 일 그룹의 이전에 프로그램된 블록(1010) 내에 이전에 프로그램된 블록의 프로그램된 순서를 포함하는 제 1 플래시 메모리 층(1002)에 유지된 이전에 프로그램된 블록들의 목록에 추가된다. 제 1 플래시 메모리 층(1002) 내 자유 블록들(1012)의 풀(pool)이 요망되는 임계값 미만이 되었을 때, 제어기는 요망되는 량의 폐용 또는 유효 데이터를 갖는 이전에 프로그램된 블록(그러나 현재 개방 기록 블록 또는 재배치 블록이 아닌)을 이전에 프로그램된 블록들의 목록으로부터 선택하고 이 블록을 위에 기술된 데이터 재배치 프로세스가 적용될 재활용 블록(1014)으로 하여 제 1 플래시 메모리 층(1002)에서 개시된 재활용 프로세스가 재배치된 데이터를 제 1 플래시 메모리 층(1002) 내에서 유지하도록 재활용 블록(1014)의 유효 데이터를 제 1 플래시 메모리 층(1002) 내 개방 재배치 블록(1016)에 재배치한다. 이어, 확인된 재활용 블록(1014)은, 일단 재활용 프로세스가 완료되면, 재활용 블록으로부터의 모든 유효 데이터가 재배치되었기 때문에 자유 블록들(1012)의 풀에 추가된다. 결국에 현재 개방 재배치 블록(1016)가 채워졌을 때, 이것은 이전에 프로그램된 블록들(1010)의 목록에 추가되고, 제어기는 제 1 메모리 층(1002) 내에 자유 블록들(1012)의 풀 내 자유 블록 중 하나를 사용하여 새로운 재배치 블록(1016)을 지정한다.
도 10에 기술된 방법에서 언급된 바와 같이, 제 1 플래시 메모리 층 내 유효 데이터의 량에 관한 하나 이상의 기준이 충족되었을 때, 이전의 완전히 프로그램된 블록 중 하나로부터 데이터는 제 2 플래시 메모리 층 내 블록으로 이동된다. 제 1 플래시 메모리 층(1002) 내 블록 -이로부터의 데이터는 제 2 플래시 메모리 층(1004)으로 직접 이동될 것이다- 이 선택되는데, 여기에서 선택된 블록은 각 층에 대해 제어기에 의해 유지된 이전에 프로그램된 블록들의 목록으로부터 결정된 호스트 데이터로 최소로 최근에 프로그램된 제 1 층 내 블록일 수 있고 도 10에서 X1-X2 이동 블록(1018)으로서 표기되었다. 일단 이 이동 블록(1018) 내 데이터가 제 2 플래시 메모리 층 내 블록으로 이동되었으면, 이동 블록(1018)은 자유 블록이 되며 제 1 플래시 메모리 층(1002) 내 자유 블록들(1012)의 풀에 추가된다. 제 1 플래시 메모리 층(1002)의 제어 데이터 구조(1011)는 일 그룹의 이전에 프로그램된 블록들(1010)에 이전에 프로그램된 블록이 기록되었던 순서를 포함하는 제 1 플래시 메모리 층에 대한 목록을 저장할 수 있다. 제어 데이터 구조(1011)는 저장 장치의 각 층을 관리하기 위해 제어기에 의해 유지되는 목록 및 테이블, 이를테면 하나 이상의 저장 어드레스 테이블(SAT)을 포함하는 제 1 플래시 메모리 층(1002)의 부분일 수 있다.
제 2 플래시 메모리 층(1004)은 제 1 플래시 메모리 층(1002)과 거의 동일한 방식으로 동작된다. 한 예외는 데이터가 제 2 플래시 메모리 층(1004)에 두 가지 방식으로, 즉, 제어기에 의해 DRAM 버퍼(1020)에서 개방 기록 블록(1022)으로 직접적으로 보내지는 순차적으로 어드레스된 호스트 데이터를 내포하는 호스트 기록으로부터, 또는 제 1 플래시 메모리 층(1002)으로부터 수신되어, 도 10에 X1-X2 기록 블록(1024)으로 표시된 별도의 기록 블록에 저장되는 이동된 데이터로서 도착할 수 있다는 것이다. 각 기록 블록(1022) 또는 X1-X2 기록 블록(1024)이 완전히 프로그램되었을 때, 이것은 이전에 프로그램된 일련의 데이터 블록(1026) 중 하나가 되고, 일 그룹의 이전에 프로그램된 블록(1026)에 이전에 프로그램된 블록이 기록되었던 순서를 포함하는 플래시 메모리 층에 유지된 이전에 프로그램된 블록의 목록에 블록(1022, 1024)이 추가된다. 이 목록은 제 1 플래시 메모리 층의 제어 데이터 구조(1011)에 제어기에 의해 유지될 수 있다. 제 2 플래시 메모리 층(1004) 내 자유 블록들(1028)의 풀 내 자유 블록들의 수가 요망되는 임계값 미만이 되었을 때, 제어기는 요망되는 량의 폐용 또는 유효 데이터를 갖는 이전에 프로그램된 블록을 일련의 이전에 프로그램된 블록(1026)으로부터 선택하고 이 블록을 위에 기술된 데이터 재배치 프로세스가 적용될 재활용 블록(1030)으로 하여 제 2 플래시 메모리 층(1004)에서 개시된 재활용 프로세스가 재배치된 데이터를 제 2 플래시 메모리 층(1004) 내에서 유지하도록 재활용 블록(1030)의 유효 데이터를 제 2 플래시 메모리 층(1004) 내 개방 재배치 블록(1032)에 재배치한다. 이어서, 확인된 재활용 블록(1030)은, 일단 재활용 프로세스가 완료되면, 재활용 블록(1030)으로부터의 모든 유효 데이터가 재배치되었기 때문에 자유 블록(1028)의 풀에 추가된다. 결국에 현재 개방 재배치 블록(1030)이 채워졌을 때, 이것은 이전에 프로그램된 블록의 목록에 추가되고, 제어기는 제 2 메모리 층(1004) 내에 자유 블록(1028)의 풀 내 자유 블록 중 하나를 사용하여 새로운 재배치 블록을 지정한다.
제 1 플래시 메모리 층과 유사하게, 그리고, 도 5에 기술된 방법에 언급된 바와 같이, 제 2 플래시 메모리 층(1004)의 충만에 관한 하나 이상의 기준이 충족되었을 때, 이전에 프로그램된 블록 중 하나로부터 데이터는 제 3 플래시 메모리 층(1006) 내 블록으로 이동된다. 제 2 메모리 층 내 블록 -이로부터 데이터가 직접 제 3 플래시 메모리 층(1006)로 이동될 것이다- 이 선택되는데, 여기에서 선택된 블록은 제어 데이터 구조(1011)에서 각 층에 대해 제어기에 의해 유지된 이전에 프로그램된 블록들의 목록으로부터 결정된 최소로 최근에 프로그램된 제 2 층 내 블록일 수 있고, 도 10에서 X2-X3 이동 블록(1034)으로서 표기되었다. 일단 이 이동 블록(1034) 내 데이터가 제 3 플래시 메모리 층 내 블록으로 이동되었으면, 이동 블록(1034)은 자유 블록이 되며 제 2 플래시 메모리 층(1004) 내 자유 블록(1028)의 풀에 추가된다. 제 2 플래시 메모리 층(1004)으로부터 데이터를 언제 이동할 것인가를 선택하기 위한, 그리고 데이터를 이동시킬 어느 이전에 프로그램된 블록 또는 블록을 선택하기 위한 기준은 제어기에 의해 제 1 플래시 메모리 층에 적용되는 기준과 같을 수도 있고 다를 수도 있다.
제 3 플래시 메모리 층(1006)은 제 2 플래시 메모리 층(1004)의 이동 블록(1034)으로부터 전송되는 데이터를 기록 블록(1036)에 수신한다. 제 3 플래시 메모리 층(1006)은 이것이 제 2 플래시 메모리 층으로부터의 데이터만을 수신하고 DRAM 버퍼(1020)로부터의 데이터를 수신하지 않는 점에서 선행 층과는 다르다. 대안적 실시예에서, 호스트 데이터는 DRAM 버퍼(1021)로부터 직접 제 3 플래시 메모리 층(1006)에서 수신될 수도 있다. 또한, 제 3 플래시 메모리 층(1006)은 이것이 다중 층 메모리 내 마지막 층이고, 이에 따라, 데이터를 또 다른 플래시 메모리 층에 전송하기 위해 제어기에 의해 지정되는 이동 블록을 갖지 않을 것이라는 점에서 이전의 층과는 다르다. 다른 실시예에서, 마지막 층 외에 각 층이 이동 블록으로서 지정되는 블록을 포함하는, 셀 용량당 상이한, 점진적으로 더 많은 비트의 3 이상의 층이 이용될 수 있음이 구상된다. 기록 블록(1036)은, 완전히 프로그램되었을 때, 일련의 이전에 프로그램된 데이터 블록(1038) 중 하나가 되며, 일 그룹의 이전에 프로그램된 블록(1038)에 이전에 프로그램된 블록이 기록되었던 순서를 포함하는 제 1 플래시 메모리 층(1002)의 데이터 제어 구조(1011)에 유지된 이전에 프로그램된 블록들의 목록에 추가된다. 이 목록은 제 1 플래시 메모리 층의 제어 데이터 구조(1011)에 제어기에 의해 유지될 수 있다. 제 3 플래시 메모리 층(1006) 내 자유 블록들(1040)의 풀이 요망되는 임계값 미만이 되었을 때, 제어기는 요망되는 량의 폐용 또는 유효 데이터를 갖는 이전에 프로그램된 블록을 일련의 이전에 프로그램된 블록들(1038)로부터 선택하고 이 블록을 위에 기술된 데이터 재배치 프로세스가 적용될 재활용 블록(1042)으로 하여 재배치된 데이터가 제 3 플래시 메모리 층(1006) 내에 남아 있게 재활용 블록(1042)의 유효 데이터를 제 3 플래시 메모리 층(1006) 내 개방 재배치 블록(1044)에 재배치한다. 모든 유효 데이터가 재배치된 후에 재활용 블록(1042)이 자유 블록들(1040)의 풀에 추가되고, 재배치 블록(1044)이 이전에 프로그램된 블록들의 목록에 추가되고, 제 3 메모리 층(1006) 내에 자유 블록 중 하나로부터 새로운 재배치 블록으로 대체된다.
제 1 및 제 2 층에서 이동 블록(1018, 1034)을 선택하기 위한 대안적 실시예가 구상된다. 최소로 최근에 프로그램된 블록을 블록이 프로그램된 순서에 기초하여 선택하는 대신에, 또 다른 실시예에서, 이전에 프로그램된 블록 내 데이터의 에이지(age)에 기초하여 이동 블록이 선택될 수도 있다. 즉, 각 이전에 프로그램된 블록에서 각 데이터 소자{섹터, 클러스터 또는 추적되고 있는 그외 다른 서브-블록 데이터 입도(granularity)}에 대해 에이지 데이터에 기초하여 가장 오래된 평균 데이터를 갖는 이전에 프로그램된 블록을 선택한다. 이전에 프로그램된 블록 내 데이터의 에이지는 논리 및/또는 물리 어드레스를 매핑하는 SAT 테이블 또는 그외 다른 목록의 부분으로서 제어 데이터 구조(1011)에 제어기에 의해 유지될 수도 있다. 일 구현에서, 데이터에 대한 에이지 정보는 상대적 에이지일 수 있는데, 이 경우 블록 내 특정한 하나의 데이터에 대한 에이지는 이것이 호스트로부터 저장 장치에 먼저 기록되었던 순서를 나타내는 숫자로서 기록된다. 그러면, 제어기는 앞에서 논의된 것들과 같은 전송 기준이 충족되었다고 하면, 가장 오래된 평균 에이지의 데이터를 갖는 블록을 선택할 것이다. 이동 블록을 선택하기 위한 이 대안적 기술의 이점은 이것이 플래시 메모리 층 사이에 "콜드" 및 "핫" 데이터를 분리하는 더 철저한 작업을 행할 수 있다는 것이다. 최소로 최근에 프로그램된 블록을 유일한 기준들로서 사용하는 것은 플래시 메모리 층 내에 재배치가 되어 이에 따라 현재 더 최근의 이전에 프로그램된 블록의 부분이 된 더 오래된 데이터를 놓칠 수도 있을 것이다.
다른 대안 실시예에서, 도 10의 제 1 및 제 2 플래시 메모리 층 내 개별적 재활용 블록(1014, 1030) 및 이동 블록(1018, 1034)은 각 층에 이동 블록만으로 대체될 수도 있는데, 이 경우 층에 대한 이동 블록 내 데이터의 부분은 다음으로 더 많은 용량층으로의 전송용으로 전용되고 데이터의 나머지 부분은 층에 대한 각각의 재배치 블록(1016, 1032)으로 재배치된다. 이 대안적 실시예에서, 제 1 및 제 2 층 각각에 조합 이동/재활용 블록의 선택은 최소로 최근에 프로그램된 블록을 선택하거나 가장 오래된 평균 데이터를 갖는 블록을 선택함으로써 달성될 수 있다. 선택된 조합 이동/재활용 블록으로부터 전송할 데이터량은 고정된 량일 수도 있고 또는 백분률일 수도 있는데, 예를 들면 블록 내 유효 데이터의 50 퍼센트는 다음 층으로 전송을 위해 지정될 수 있고 나머지 50 퍼센트는 층 내에 재배치될 수 있다. 확인된 이동/재활용 블록으로부터 어느 50 퍼센트를 전송할 것인지의 선택은 제어 데이터 구조(1011)에서 제어기에 의해 추적된 데이터의 에이지에 기초하여 행해질 수 있다.
다른 대안 실시예에서, 다음 층으로 데이터를 전송할지 아니면 하지 않을지에 관한 추가의 고려사항들은 위에 언급된 프로그래밍 순서 또는 데이터 에이지 고려사항들로 대체될 수 있다. 예를 들면, 일 실시예에서, 더 오래된(즉, "더 콜드한") 데이터가 빈번히 판독된다면 이 데이터를 셀 용량 플래시 메모리 층당 적은 비트로 유지함으로써 성능을 증가시키는 것이 이익이 될 수 있다. 데이터 또는 다수 블록들의 데이터에 대한 판독 카운트는 다중 층 메모리, 이를테면 도 10의 제 1 플래시 메모리 층(1002) 내 제어 데이터 구조(1011)에 유지될 수도 있다. 판독 카운트 정보는 최소로 빈번하게 프로그램된 블록으로부터 데이터, 또는 가장 오래된 평균 에이지의 데이터를 갖는 블록이 이 데이터에 대한 판독 동작들의 수가 소정의 임계값 이상이라면 셀 층당 다음 더 많은 비트로 전송을 위해 선택되지 않게 데이터 전송 기준을 보충하기 위해 사용될 수 있다.
다중 층 메모리를 구현하기 위한 시스템 및 방법이 개시되었다. 다중 층 메모리는 호스트 데이터를 수신하기 위한 인터페이스, 셀 용량 플래시 메모리당 점진적으로 더 많은 비트의 적어도 3개의 층, 어떤 기준 충족시 플래시 메모리 층 사이에 데이터의 점진적 전송 및 각 층 내 요망되는 수의 자유 블록을 유지하기 위해 기준에 기초하여 각 플래시 메모리 층 내에서 카피(데이터의 가비지 수거/재배치)를 관리하게 구성된 제어기 또는 제어 회로를 포함한다. 개시된 시스템 및 방법의 이점은 데이터를 초기에 SLC와 같은 셀 플래시 메모리 층당 더 적은 비트에 또는 전형적으로 플래시의 더 높은 성능 유형인 셀당 2 비트인 MLC에 보냄으로써 SATA와 같은 인터페이스로부터 데이터에 대한 증가된 버스트 기록 속도를 이용하는 능력을 포함한다. 또한, "콜드" 데이터를 수신하기 위해, 셀 플래시 층당 가장 많은 비트, 즉 위에서 논의된 비제한적 예에서 셀당 3 비트의 사용은 셀 층당 더 많은 비트의 더 낮은 비용을 활용하면서, 기록 확대를 감소시키고, 이에 따라 플래시의 이 층의 내구성을 개선하는데 도움을 줄 수 있다.

Claims (24)

  1. 대량 저장 메모리 시스템에 있어서,
    호스트 시스템으로부터 데이터를 수신하도록 조절된 인터페이스와,
    복수의 메모리 층으로서, 상기 메모리 층은,
    셀 저장 용량당 제 1 비트를 포함하는 비휘발성 메모리 셀을 갖는 제 1 메모리 층과,
    셀 저장 용량당 제 2 비트를 포함하는 비휘발성 메모리 셀을 갖는 제 2 메모리 층으로서, 셀 저장 용량당 상기 제 2 비트는 셀 저장 용량당 상기 제 1 비트보다 더 많은, 제 2 메모리 층과,
    셀 저장 용량당 제 3 비트를 포함하는 비휘발성 메모리 셀을 갖는 제 3 메모리 층으로서, 셀 저장 용량당 상기 제 3 비트는 셀 저장 용량당 상기 제 2 비트보다 더 많은, 제 3 메모리 층을
    포함하는, 복수의 메모리 층과,
    상기 인터페이스 및 상기 복수의 메모리 층과 통신하는 제어기로서, 상기 제어기는 상기 호스트로부터 수신된 데이터를 상기 복수의 층 중 하나 이상에 보내고 데이터를 상기 복수의 메모리 층 사이에 전송하도록 구성된, 상기 제어기를
    포함하는, 대량 저장 메모리 시스템.
  2. 제 1항에 있어서, 상기 제 1 메모리 층과 상기 제 2 메모리 층은 제 1 다이 상에 배치되고, 상기 제 3 메모리 층은 제 2 다이 상에 배치된, 대량 저장 메모리 시스템.
  3. 제 1항에 있어서, 상기 복수의 메모리 층은 동일 다이 상에 배치된, 대량 저장 메모리 시스템.
  4. 제 1항에 있어서, 상기 복수의 메모리 층 각각은 각각의 개별적 다이 상에 배치된, 대량 저장 메모리 시스템.
  5. 제 1항에 있어서, 상기 제 1 메모리 층은 셀 용량당 한 비트를 갖는 단일 레벨 셀(SLC) 메모리 셀을 포함하는, 대량 저장 메모리 시스템.
  6. 제 5항에 있어서, 상기 제어기는 상기 인터페이스에서 수신된 데이터가 랜덤 논리 블록 어드레스를 포함할 때 상기 데이터를 상기 호스트에서 상기 제 1 메모리 층에 보내게 추가 구성되고, 상기 인터페이스에서 수신된 데이터가 순차적 논리 블록 어드레스를 포함할 때 상기 데이터를 상기 호스트에서 상기 제 2 메모리 층에 보내도록 구성된, 대량 저장 메모리 시스템.
  7. 제 5항에 있어서, 상기 제어기는 상기 제 1 메모리 층 내 자유 블록의 수가 최소 임계값 미만일 때 상기 제 1 메모리 층 내에서 블록 재활용 프로세스를 통해 메모리 셀의 블록을 재활용하도록 추가 구성된, 대량 저장 메모리 시스템.
  8. 제 7항에 있어서, 상기 제어기는 상기 제 1 메모리 층 내 유효 데이터의 백분률이 상기 제 1 유효 데이터 임계값을 초과할 때와 메모리 셀의 자유 블록들의 수가 상기 최소 임계값 미만일 때, 상기 제 1 메모리 층 내 선택된 블록으로부터 유효 데이터를 상기 제 2 메모리 층에 전송하게 추가 구성된, 대량 저장 메모리 시스템.
  9. 제 8항에 있어서, 상기 선택된 블록은 최소로 최근에 프로그램된 블록의 유효 데이터를 포함하는, 대량 저장 메모리 시스템.
  10. 제 8항에 있어서, 상기 선택된 블록은 가장 오래된 평균 에이지(age)의 유효 데이터를 갖는 상기 제 1 메모리 층 내 이전에 프로그램된 블록을 포함하는, 대량 저장 메모리 시스템.
  11. 제 7항에 있어서, 상기 제 1 메모리 층에서 상기 블록 재활용 프로세스를 실행하기 위해, 상기 제어기는 최소량의 유효 데이터를 갖는 상기 제 1 메모리 층 내 블록을 선택하고, 상기 선택된 블록으로부터의 유효 데이터를 상기 제 1 메모리 층 내 재배치 블록에 카피하고, 상기 선택된 블록을 상기 제 1 메모리 층 내 자유 블록 풀(pool)에 돌려보내도록 구성된, 대량 저장 메모리 시스템.
  12. 제 11항에 있어서, 상기 제어기는 상기 선택된 블록 내 상기 유효 데이터에 연관된 호스트 논리 블록 어드레스에 관계없이 유효 데이터를 상기 선택된 블록으로부터 순차적으로 상기 재배치 블록에 카피하게 구성된, 대량 저장 메모리 시스템.
  13. 대량 저장 메모리 시스템에 있어서,
    호스트 시스템으로부터 데이터를 수신하도록 조절된 인터페이스와,
    복수의 메모리 층으로서, 상기 메모리 층은,
    셀 저장 용량당 제 1 비트를 포함하는 비휘발성 메모리 셀을 갖는 제 1 메모리 층과,
    셀 저장 용량당 제 2 비트를 포함하는 비휘발성 메모리 셀을 갖는 제 2 메모리 층으로서, 셀 저장 용량당 상기 제 2 비트는 셀 저장 용량당 상기 제 1 비트보다 더 많은, 제 2 메모리 층과,
    셀 저장 용량당 제 3 비트를 포함하는 비휘발성 메모리 셀을 갖는 제 3 메모리 층으로서, 셀 저장 용량당 상기 제 3 비트는 셀 저장 용량당 상기 제 2 비트보다 더 많은, 제 3 메모리 층을
    포함하는, 복수의 메모리 층과,
    상기 인터페이스 및 상기 복수의 메모리 층과 통신하는 제어기로서, 상기 제어기는,
    상기 호스트로부터 상기 인터페이스에 수신된 데이터를 상기 제 1 메모리 층에 보내고,
    상기 제 1 메모리 층 내 자유 블록들의 수가 제 1 최소 임계값 미만일 때 그리고 제 1 유효 데이터 임계값을 초과하는 상기 제 1 메모리 층 내 유효 데이터량을 검출하였을 때, 상기 제 1 메모리 층으로부터의 데이터를 상기 제 2 메모리 층으로 이동시키며,
    상기 제 2 메모리 층 내 자유 블록들의 수가 제 2 최소 임계값 미만일 때 그리고 제 2 유효 데이터 임계값을 초과하는 상기 제 2 메모리 층 내 유효 데이터량을 검출하였을 때, 상기 제 2 메모리 층으로부터의 데이터를 상기 제 3 메모리 층으로 이동시키도록
    구성된, 상기 제어기를
    포함하는, 대량 저장 메모리 시스템.
  14. 제 13항에 있어서, 상기 제어기는,
    상기 제 1 메모리 층 내 자유 블록들의 수가 상기 제 1 최소 임계값에 이르렀을 때 상기 제 1 메모리 층 내에서 제 1 블록 재활용 프로세스에서 다수 블록들의 메모리 셀을 재활용하고,
    상기 제 2 메모리 층 내 자유 블록들의 수가 상기 제 2 최소 임계값에 이르렀을 때 상기 제 2 메모리 층 내에서 제 2 블록 재활용 프로세스에서 다수 블록들의 메모리 셀을 재활용하며,
    상기 제 3 메모리 층 내 자유 블록들의 수가 상기 제 3 최소 임계값에 이르렀을 때 상기 제 3 메모리 층 내에서 제 3 블록 재활용 프로세스에서 다수 블록들의 메모리 셀을 재활용하도록
    추가 구성된, 대량 저장 메모리 시스템.
  15. 데이터 관리 방법에 있어서,
    호스트로부터 데이터를 수신하기 위한 인터페이스, 복수의 메모리 층, 및 상기 인터페이스 및 상기 복수의 메모리 층과 통신하는 제어기를 갖는 메모리 시스템에서, 상기 제어기는,
    상기 인터페이스에 수신된 데이터를 상기 복수의 층의 제 1 메모리 층에 보내고, 상기 제 1 메모리 층은 셀 저장 용량당 제 1 비트를 포함하는 비휘발성 메모리 셀을 가지며,
    제 1 기준 충족시 데이터를 상기 제 1 메모리 층에서 제 2 메모리 층으로 이동시키고, 상기 제 2 메모리 층은 셀 저장 용량당 제 2 비트를 포함하는 비휘발성 메모리 셀을 가지며, 셀 저장 용량당 상기 제 2 비트는 셀 저장 용량당 상기 제 1 비트보다 많고,
    제 2 기준 충족시 데이터를 상기 제 2 메모리 층에서 제 3 메모리 층으로 이동시키고, 상기 제 3 메모리 층은 셀 저장 용량당 제 3 비트를 포함하는 비휘발성 메모리 셀을 가지며, 셀 저장 용량당 상기 제 3 비트는 셀 저장 용량당 상기 제 3 비트보다 많은, 데이터 관리 방법.
  16. 제 15항에 있어서, 상기 인터페이스에서 수신된 데이터를 상기 제 1 메모리 층에 보내는 것은, 비-순차적 호스트 논리 블록 어드레스에 연관된 데이터를 상기 제 1 메모리 층에만 보내는 것을 포함하고, 상기 방법은, 상기 인터페이스에서 수신되고 순차적 호스트 논리 블록 어드레스에 연관된 데이터를 상기 제 2 메모리 층에 보내는 것을 더 포함하는, 데이터 관리 방법.
  17. 제 15항에 있어서, 상기 제 1 기준 충족시 데이터를 상기 제 1 메모리 층에서 상기 제 2 메모리 층으로 이동시키는 것은, 상기 제 1 메모리 층에서 최소로 최근에 프로그램된 블록으로부터 유효 데이터를 이동시키는 것을 포함하는, 데이터 관리 방법.
  18. 제 17항에 있어서, 상기 제 2 기준 충족시 데이터를 상기 제 2 메모리 층에서 상기 제 3 메모리 층으로 이동시키는 것은, 상기 제 2 메모리 층에서 최소로 최근에 프로그램된 블록으로부터의 유효 데이터를 이동시키는 것을 포함하는, 데이터 관리 방법.
  19. 제 15항에 있어서, 상기 제 1 기준 충족시 데이터를 상기 제 1 메모리 층에서 상기 제 2 메모리 층으로 이동시키는 것은, 가장 오래된 평균 에이지의 유효 데이터를 갖는 상기 제 1 메모리 층에서 이전에 프로그램된 블록으로부터 유효 데이터를 이동시키는 것을 포함하는, 데이터 관리 방법.
  20. 제 19항에 있어서, 상기 제 1 기준 충족시 데이터를 상기 제 2 메모리 층에서 상기 제 3 메모리 층으로 이동시키는 것은, 가장 오래된 평균 에이지의 유효 데이터를 갖는 상기 제 1 메모리 층에서 이전에 프로그램된 블록으로부터 유효 데이터를 이동시키는 것을 포함하는, 데이터 관리 방법.
  21. 제 15항에 있어서, 상기 제 1 기준은 상기 제 1 메모리 층이 제 1 최소 임계값 미만의 자유 블록 및 적어도 제 1 임계량의 유효 데이터를 갖는 것을 포함하고, 상기 제 2 기준은 상기 제 2 메모리 층이 제 2 최소 임계값 미만의 자유 블록 및 적어도 제 2 임계량의 유효 데이터를 갖는 것을 포함하며, 상기 방법은,
    상기 제 1 메모리 층에 자유 블록의 수가 제 1 최소 임계값 미만이고 상기 제 1 메모리 층이 상기 제 1 임계량 미만의 데이터를 가질 때 상기 제 1 메모리 층에 메모리 셀의 적어도 한 블록을 재활용하는 단계와,
    상기 제 2 메모리 층에 자유 블록의 수가 제 2 최소 임계값 미만이고 상기 제 2 메모리 층이 상기 제 2 임계량 미만의 데이터를 가질 때 상기 제 2 메모리 층에 메모리 셀의 적어도 한 블록을 재활용하는 단계를
    포함하는, 데이터 관리 방법.
  22. 제 21항에 있어서,
    상기 제 1 메모리 층에 메모리 셀의 적어도 한 블록을 재활용하는 단계는, 최소량의 유효 데이터를 갖는 상기 제 1 메모리 층에서 블록을 선택하는 단계와, 유효 데이터를 상기 선택된 블록에서 상기 제 1 메모리 층에 재배치 블록에 카피하는 단계와, 상기 선택된 블록을 상기 제 1 메모리 층에 자유 블록 풀에 돌려보내는 단계를 포함하고,
    상기 제 2 메모리 층에 메모리 셀의 적어도 한 블록을 재활용하는 단계는, 최소량의 유효 데이터를 갖는 상기 제 2 메모리 층에서 블록을 선택하는 단계와, 유효 데이터를 상기 선택된 블록에서 상기 제 2 메모리 층에 재배치 블록에 카피하는 단계와, 상기 선택된 블록을 상기 제 2 메모리 층에 자유 블록 풀에 돌려보내는 단계를 포함하는, 데이터 관리 방법.
  23. 제 22항에 있어서, 각각의 메모리 층에 대해서 상기 제어기는 상기 선택된 블록에서 상기 유효 데이터에 연관된 호스트 논리 블록 어드레스에 상관없이 유효 데이터를 상기 선택된 블록으로부터 순차적으로 상기 각각의 메모리 층에 상기 재배치 블록에 카피하도록 구성되는, 데이터 관리 방법.
  24. 데이터 관리 방법에 있어서,
    호스트로부터 데이터를 수신하기 위한 인터페이스, 복수의 메모리 층, 및 상기 인터페이스 및 상기 복수의 메모리 층과 통신하는 제어기를 갖는 메모리 시스템에서, 상기 제어기는,
    상기 인터페이스에 수신된 데이터를 상기 복수의 층의 제 1 메모리 층에 보내고, 상기 제 1 메모리 층은 셀 저장 용량당 제 1 비트를 포함하는 비휘발성 메모리 셀을 가지며,
    덜 최근에 업데이트된 데이터를 상기 제 1 메모리 층에서 제 2 메모리 층으로 이동시키고, 상기 제 2 메모리 층은 셀 저장 용량당 제 2 비트를 포함하는 비휘발성 메모리 셀을 가지며, 셀 저장 용량당 상기 제 2 비트는 셀 저장 용량당 상기 제 1 비트보다 많고,
    덜 최근에 업데이트된 데이터를 상기 제 2 메모리 층에서 제 3 메모리 층으로 이동시키고, 상기 제 3 메모리 층은 셀 저장 용량당 제 3 비트를 포함하는 비휘발성 메모리 셀을 가지며, 셀 저장 용량당 상기 제 3 비트는 셀 저장 용량당 상기 제 2 비트보다 많은, 데이터 관리 방법.
KR1020137022329A 2011-03-31 2012-03-19 셀 저장 용량당 서로 다른 비트를 갖는 세 개의 메모리 층을 구비한 메모리 시스템 KR20140043329A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/077,487 US8537613B2 (en) 2011-03-31 2011-03-31 Multi-layer memory system
US13/077,487 2011-03-31
PCT/US2012/029661 WO2012134864A2 (en) 2011-03-31 2012-03-19 Multi-layer memory system

Publications (1)

Publication Number Publication Date
KR20140043329A true KR20140043329A (ko) 2014-04-09

Family

ID=45974505

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020137022329A KR20140043329A (ko) 2011-03-31 2012-03-19 셀 저장 용량당 서로 다른 비트를 갖는 세 개의 메모리 층을 구비한 메모리 시스템

Country Status (4)

Country Link
US (1) US8537613B2 (ko)
KR (1) KR20140043329A (ko)
CN (1) CN103477393A (ko)
WO (1) WO2012134864A2 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190111714A (ko) * 2018-03-22 2019-10-02 도시바 메모리 가부시키가이샤 스토리지 디바이스 및 컴퓨터 시스템

Families Citing this family (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120303878A1 (en) * 2011-05-26 2012-11-29 International Business Machines Corporation Method and Controller for Identifying a Unit in a Solid State Memory Device for Writing Data to
US8930614B2 (en) * 2011-07-29 2015-01-06 Kabushiki Kaisha Toshiba Data storage apparatus and method for compaction processing
KR102147359B1 (ko) * 2012-06-29 2020-08-24 삼성전자 주식회사 비휘발성 메모리 장치의 관리 방법 및 비휘발성 메모리 장치
US9734911B2 (en) 2012-12-31 2017-08-15 Sandisk Technologies Llc Method and system for asynchronous die operations in a non-volatile memory
US9223693B2 (en) 2012-12-31 2015-12-29 Sandisk Technologies Inc. Memory system having an unequal number of memory die on different control channels
US9336133B2 (en) 2012-12-31 2016-05-10 Sandisk Technologies Inc. Method and system for managing program cycles including maintenance programming operations in a multi-layer memory
US9734050B2 (en) * 2012-12-31 2017-08-15 Sandisk Technologies Llc Method and system for managing background operations in a multi-layer memory
US8873284B2 (en) 2012-12-31 2014-10-28 Sandisk Technologies Inc. Method and system for program scheduling in a multi-layer memory
US9465731B2 (en) * 2012-12-31 2016-10-11 Sandisk Technologies Llc Multi-layer non-volatile memory system having multiple partitions in a layer
US9348746B2 (en) 2012-12-31 2016-05-24 Sandisk Technologies Method and system for managing block reclaim operations in a multi-layer memory
US8954655B2 (en) 2013-01-14 2015-02-10 Western Digital Technologies, Inc. Systems and methods of configuring a mode of operation in a solid-state memory
US20160070737A1 (en) * 2013-03-18 2016-03-10 Ge Intelligent Platforms, Inc. Apparatus and method for optimizing time series data store usage
CN107391389B (zh) 2013-08-05 2020-11-24 慧荣科技股份有限公司 用来管理一记忆装置的方法以及记忆装置与控制器
CN104346292B (zh) 2013-08-05 2017-10-24 慧荣科技股份有限公司 用来管理一记忆装置的方法、记忆装置与控制器
TWI523016B (zh) * 2013-08-05 2016-02-21 慧榮科技股份有限公司 用來管理一記憶裝置之方法以及記憶裝置與控制器
WO2015106162A1 (en) 2014-01-09 2015-07-16 SanDisk Technologies, Inc. Selective copyback for on die buffered non-volatile memory
US20150261603A1 (en) * 2014-03-12 2015-09-17 Kabushiki Kaisha Toshiba Nonvolatile semiconductor memory device and control method thereof
US8918577B1 (en) * 2014-06-13 2014-12-23 Sandisk Technologies Inc. Three dimensional nonvolatile memory with variable block capacity
US9875039B2 (en) 2014-09-30 2018-01-23 Sandisk Technologies Llc Method and apparatus for wear-leveling non-volatile memory
US9778863B2 (en) * 2014-09-30 2017-10-03 Sandisk Technologies Llc System and method for folding partial blocks into multi-level cell memory blocks
US20160162185A1 (en) * 2014-12-05 2016-06-09 Sandisk Technologies Inc. Data programming for a memory having a three-dimensional memory configuration
US9690491B2 (en) 2014-12-17 2017-06-27 Sandisk Technologies Llc System and method for managing data in a memory device
US9632705B2 (en) * 2014-12-17 2017-04-25 Sandisk Technologies Llc System and method for adaptive memory layers in a memory device
US9619158B2 (en) 2014-12-17 2017-04-11 International Business Machines Corporation Two-level hierarchical log structured array architecture with minimized write amplification
US9606734B2 (en) 2014-12-22 2017-03-28 International Business Machines Corporation Two-level hierarchical log structured array architecture using coordinated garbage collection for flash arrays
US10008250B2 (en) * 2015-03-27 2018-06-26 Intel Corporation Single level cell write buffering for multiple level cell non-volatile memory
US10268400B2 (en) 2015-09-03 2019-04-23 Sandisk Technologies Llc System and method for file detection and usage during compaction
US10120613B2 (en) 2015-10-30 2018-11-06 Sandisk Technologies Llc System and method for rescheduling host and maintenance operations in a non-volatile memory
US10042553B2 (en) 2015-10-30 2018-08-07 Sandisk Technologies Llc Method and system for programming a multi-layer non-volatile memory having a single fold data path
US9778855B2 (en) 2015-10-30 2017-10-03 Sandisk Technologies Llc System and method for precision interleaving of data writes in a non-volatile memory
US10133490B2 (en) 2015-10-30 2018-11-20 Sandisk Technologies Llc System and method for managing extended maintenance scheduling in a non-volatile memory
WO2018022136A1 (en) 2016-07-26 2018-02-01 Pure Storage, Inc. Geometry based, space aware shelf/writegroup evacuation
US10366004B2 (en) * 2016-07-26 2019-07-30 Pure Storage, Inc. Storage system with elective garbage collection to reduce flash contention
KR20180104262A (ko) * 2017-03-10 2018-09-20 에스케이하이닉스 주식회사 보안 리프레시 키를 이용하여 블록 간 웨어-레벨링을 수행하는 메모리 장치 및 그 메모리 장치에서의 블록 간 웨어-레벨링 방법
KR20200068944A (ko) * 2018-12-06 2020-06-16 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작방법
CN109783019B (zh) * 2018-12-28 2022-08-19 上海威固信息技术股份有限公司 一种数据智能存储管理方法与装置
TWI701552B (zh) * 2019-03-22 2020-08-11 群聯電子股份有限公司 記憶體控制方法、記憶體儲存裝置及記憶體控制電路單元
CN111897485A (zh) * 2019-05-05 2020-11-06 北京兆易创新科技股份有限公司 一种数据存储方法、装置、电子设备及存储介质
US11188459B2 (en) * 2019-12-23 2021-11-30 Micron Technology, Inc. Data block switching at a memory sub-system
US11288011B2 (en) * 2020-03-26 2022-03-29 Western Digital Technologies, Inc. Non-volatile memory array with write failure protection for multi-level cell (MLC) storage elements using coupled writes
CN112558865A (zh) * 2020-12-02 2021-03-26 成都佰维存储科技有限公司 突发数据读写方法、装置、可读存储介质及电子设备
WO2023050147A1 (zh) * 2021-09-29 2023-04-06 长江存储科技有限责任公司 用于存储器的数据保护方法及其存储装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100771521B1 (ko) * 2006-10-30 2007-10-30 삼성전자주식회사 멀티 레벨 셀을 포함하는 플래시 메모리 장치 및 그것의데이터 쓰기 방법
US20090248952A1 (en) * 2008-03-31 2009-10-01 Radke William H Data conditioning to improve flash memory reliability
KR20090106651A (ko) * 2007-12-28 2009-10-09 가부시끼가이샤 도시바 반도체 기억 장치
KR20110015023A (ko) * 2008-05-28 2011-02-14 마이크론 테크놀로지, 인크. 하이브리드 메모리 관리

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3601408A (en) 1969-10-13 1971-08-24 Kenneth K Wright Golf swing training apparatus
US5696917A (en) 1994-06-03 1997-12-09 Intel Corporation Method and apparatus for performing burst read operations in an asynchronous nonvolatile memory
US5869845A (en) 1997-06-26 1999-02-09 Texas Instruments Incorporated Resonant tunneling memory
US5930167A (en) 1997-07-30 1999-07-27 Sandisk Corporation Multi-state non-volatile flash memory capable of being its own two state write cache
US7093071B2 (en) 2002-10-09 2006-08-15 Intel Corporation Queued copy command
US7336531B2 (en) 2004-06-25 2008-02-26 Micron Technology, Inc. Multiple level cell memory device with single bit per cell, re-mappable memory block
KR100706808B1 (ko) 2006-02-03 2007-04-12 삼성전자주식회사 쓰기 버퍼로서 동작하는 불 휘발성 메모리를 구비한 데이터저장 장치 및 그것의 블록 회수 방법
KR100771882B1 (ko) 2006-09-06 2007-11-01 삼성전자주식회사 멀티-레벨 불휘발성 메모리 장치의 프로그램 방법
KR100895853B1 (ko) 2006-09-14 2009-05-06 삼성전자주식회사 적층 메모리 소자 및 그 형성 방법
JP4563992B2 (ja) 2006-12-26 2010-10-20 株式会社京都ソフトウェアリサーチ 多値フラッシュメモリおよび多値フラッシュメモリへのデータ書き込み方法
US8429352B2 (en) 2007-06-08 2013-04-23 Sandisk Technologies Inc. Method and system for memory block flushing
US7719889B2 (en) 2007-06-25 2010-05-18 Sandisk Corporation Methods of programming multilevel cell nonvolatile memory
US8429358B2 (en) 2007-08-14 2013-04-23 Samsung Electronics Co., Ltd. Method and data storage device for processing commands
WO2009067633A1 (en) 2007-11-20 2009-05-28 California Institute Of Technology Rank modulation for memory devices
KR101414494B1 (ko) * 2008-03-17 2014-07-04 삼성전자주식회사 메모리 장치 및 메모리 데이터 읽기 방법

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100771521B1 (ko) * 2006-10-30 2007-10-30 삼성전자주식회사 멀티 레벨 셀을 포함하는 플래시 메모리 장치 및 그것의데이터 쓰기 방법
KR20090106651A (ko) * 2007-12-28 2009-10-09 가부시끼가이샤 도시바 반도체 기억 장치
US20090248952A1 (en) * 2008-03-31 2009-10-01 Radke William H Data conditioning to improve flash memory reliability
KR20110015023A (ko) * 2008-05-28 2011-02-14 마이크론 테크놀로지, 인크. 하이브리드 메모리 관리

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190111714A (ko) * 2018-03-22 2019-10-02 도시바 메모리 가부시키가이샤 스토리지 디바이스 및 컴퓨터 시스템
US10871920B2 (en) 2018-03-22 2020-12-22 Toshiba Memory Corporation Storage device and computer system

Also Published As

Publication number Publication date
WO2012134864A2 (en) 2012-10-04
US8537613B2 (en) 2013-09-17
CN103477393A (zh) 2013-12-25
US20120254574A1 (en) 2012-10-04
WO2012134864A3 (en) 2012-12-27

Similar Documents

Publication Publication Date Title
US8537613B2 (en) Multi-layer memory system
US11416391B2 (en) Garbage collection
KR101551584B1 (ko) 하이브리드 slc/mlc 메모리 내의 블록 관리 방식들
JP5728672B2 (ja) ハイブリッドメモリ管理
KR101202620B1 (ko) 복수-스트림 업데이팅을 갖는 비휘발성 메모리 및 방법
KR101089576B1 (ko) 업데이트 및 스크래치 패드 블록들을 위한 개선된 인덱싱을갖는 비휘발성 메모리 및 방법
JP5069256B2 (ja) 不揮発性メモリおよびマルチストリーム更新追跡を伴う方法
US20100169540A1 (en) Method and apparatus for relocating selected data between flash partitions in a memory device
US11216368B2 (en) Memory system for garbage collection using page offsets, invalid offset ratio, sequential ratio, and logical address prediction
KR20100139149A (ko) 다중 뱅크 메모리 장치에 대한 저장 주소 재매핑을 위한 방법과 시스템
US20130080689A1 (en) Data storage device and related data management method
CN103688246A (zh) 具有在活跃slc和mlc存储器分区之间分布的小逻辑组的非易失性存储器和方法
CN101124555A (zh) 具有多流更新的非易失性存储器和方法
US11249903B2 (en) Memory system for garbage collection operation and operating method thereof
US10283196B2 (en) Data writing method, memory control circuit unit and memory storage apparatus

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application