KR20090117787A - 시스템 관리를 위한 mlc 선택된 멀티-프로그램 - Google Patents

시스템 관리를 위한 mlc 선택된 멀티-프로그램 Download PDF

Info

Publication number
KR20090117787A
KR20090117787A KR1020097018517A KR20097018517A KR20090117787A KR 20090117787 A KR20090117787 A KR 20090117787A KR 1020097018517 A KR1020097018517 A KR 1020097018517A KR 20097018517 A KR20097018517 A KR 20097018517A KR 20090117787 A KR20090117787 A KR 20090117787A
Authority
KR
South Korea
Prior art keywords
page
status indicator
data
block
sectors
Prior art date
Application number
KR1020097018517A
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 KR20090117787A publication Critical patent/KR20090117787A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7209Validity control, e.g. using flags, time stamps or sequence numbers

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Read Only Memory (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

본 방법, 장치, 및 시스템은 복수의 인접한 섹터들을 포함하는 하나 이상의 전체 페이지들을 갖는 적어도 하나의 전체 페이지 블록을 포함하는, 복수의 데이터 블록들로서 조직된 단일 레벨 셀 구조 또는 멀티-레벨 셀 구조 비휘발성 메모리 디바이스 중 적어도 하나를 이용하도록 동작할 수 있다. 추가의 동작들은 선택된 페이지들 내에 포함된 데이터의 유효성을 결정하는 상태 표시자들을 포함하는 페이지 블록들을 이용하는 것을 포함할 수 있다. 추가의 동작들은 선택된 페이지에 및 선택된 페이지로부터 정보를 이송하기 전에 관련된 상태 표시자를 체크하는 것을 포함할 수 있다.
비휘발성 메모리 디바이스, SLC(single-level cell), MLC(multi-level cell), 상태 표시자

Description

시스템 관리를 위한 MLC 선택된 멀티-프로그램{MLC SELECTED MULTI-PROGRAM FOR SYSTEM MANAGEMENT}
[관련출원]
이 특허 출원은 2007년 2월 7일에 출원되고, 본 명세서에 참고로 통합되는, 미국 출원 번호 11/672,076의 우선권을 주장한다.
본 명세서에 개시된 실시예들은 일반적으로 비휘발성 메모리 디바이스들을 포함하는 메모리 디바이스들에 관한 것이다.
메모리는 종종 컴퓨터 및 다른 전자 디바이스들에서 반도체 집적 회로의 형태를 취한다. RAM(random-access memory), ROM(read-only memory), DRAM(dynamic random access memory), SDRAM(synchronous dynamic random access memory), 및 플래시 메모리를 포함하는 다수의 상이한 유형들이 있다.
플래시 메모리 디바이스는 높은 메모리 밀도, 높은 신뢰도 및 낮은 전력 소비를 허용하는 1-트랜지스터 메모리 셀들을 이용할 수 있다. 플래시 메모리 디바이스들은 대개 2가지 형태로 만들어진다: NOR 플래시 및 NAND 플래시. NAND 플래시는 SLC(single-level cell) 및 MLC(multi-level cell) 아키텍처들을 포함한다. 이들 메모리 디바이스들은 휘발성 또는 비휘발성으로서 더 분류될 수 있다. 휘발 성 메모리 디바이스들은 데이터를 유지하기 위해 전력을 필요로 하는 반면, 비휘발성 메모리들은 전력 공급의 부재시에 데이터를 유지할 수 있다. 비휘발성 메모리의 일례는 시간에 걸쳐서 정보를 유지하기 위해 전력을 필요로 하지 않고 반도체 회로에 정보를 저장하는 플래시 메모리이다.
SLC 메모리는 2개의 상태들 중 어느 하나의 단일 비트로서 데이터를 저장하는 것을 허용하지만, MLC 메모리는 각 메모리 셀에 2개 이상의 데이터 비트들의 저장을 허용하기 때문에 보다 높은 밀도를 허용한다. SLC이든 MLC이든 간에, 메모리 디바이스들은, 섹터라고 불리는 보다 작은 세그먼트들을 갖는 페이지들로 분할되는 블록들로 조직 또는 구성될 수 있다. 각 섹터는 정보의 비트들을 저장할 수 있고; 비트들의 수는 메모리 디바이스의 밀도에 의해 결정될 수 있다. 각 블록은 섹터들에 데이터를 채우고 더 이상 필요하지 않은 섹터 내의 셀들(예를 들면, 이미 밖으로 이송(transfer)되어 더 이상 저장의 필요가 없는 메모리의 섹터 내의 데이터 셀들)을 선택적으로 무효화하는 프로세스를 지시하는 플래시 데이터 프로그램을 포함할 수 있다. 이 플래시 데이터 프로그램의 길이는 메모리 디바이스의 성능에 영향을 미치므로 플래시 데이터 프로그램을 단축하거나, 그의 사용을 최적화하는 것이 바람직할 수 있다. 따라서, 데이터 이송 시간을 줄이는 것은 신뢰도를 증가시키고, 성능 손실을 줄일 수 있다.
도 1은 본 발명의 다양한 실시예들에 따른, 메모리 시스템의 블록도이다.
도 2는 본 발명의 다양한 실시예들에 따른, NAND 플래시 메모리 내의 메모리 셀들의 어레이들의 조직을 보여주는 3차원 블록도이다.
도 3은 본 발명의 다양한 실시예들에 따른, NAND 플래시 메모리 어레이의 개략도이다.
도 4는 본 발명의 다양한 실시예들에 따른, 도 3의 MLC 어레이의 임계 전압들의 분포를 보여주는 도이다.
도 5는 본 발명의 다양한 실시예들에 따른, 데이터 유효성(data validity)에 대한 상태 표시자를 설정하는 하위 페이지에 대한 제2 프로그램 동작의 블록도이다.
도 6은 본 발명의 다양한 실시예들에 따른, MLC 플래시 디바이스를 이용하여 특정 페이지에 대한 정보를 무효화하는 방법의 순서도이다.
도 7은 본 발명의 다양한 실시예들에 따른, MLC 플래시 디바이스를 이용하여, 페이지 블록 내의, 특정 페이지에 대한 상태 표시자를 할당하는 방법의 순서도이다.
도 8은 본 발명의 다양한 실시예들에 따른 시스템의 블록도이다.
개시된 실시예들 중 일부는 메모리 블록들을 채우기 위한 준비로 MLC 플래시 디바이스를 이용하여 선택된 페이지에 대한 정보를 무효화하는 메커니즘을 제공한다. 실시예에서는, 복수의 블록들로서 조직된 멀티-레벨 비휘발성 메모리 디바이스들을 관리하도록 구성된 프로세서로부터 메모리 할당 요청이 수신되고, 여기서 각 블록은 페이지 내에 조직된 다수의 섹터들을 포함하고, 각 섹터는 페이지 블록이 채워질 때까지 복수의 데이터 비트들을 저장하도록 조직된다. 다양한 실시예들에 따르면, 상기 다수의 섹터들 각각이 선택적으로 프로그램 가능하고, 선택적으로 소거 가능하고, 고유하게 어드레싱 가능하다.
페이지 캐싱(page caching)은 전체 페이지에 데이터를 채우는 방법을 제공하고, 여기서 페이지 프로그램은 그 데이터 채우기 동작을 지시한다. 데이터 섹터들이 더 이상 필요하지 않은 경우에, 그것들은 프로세서에 의해 "무효화된"(invalidated) 것으로 식별될 수 있고, 이는 다음 할당 요청들 동안에 "유효한"(valid) 데이터 섹터들을 탐색하는 데 필요한 시간의 양을 줄여, 과도한 처리 시간을 회피한다. 이를 달성하는 한 가지 방법은 페이지의 부분에 지향되는 제2 페이지 프로그램을 제공하는 것이고, 이 제2 페이지 프로그램은 그 페이지 부분에 포함된 데이터가 "무효"(invalid)임을 나타내도록 플래그 또는 상태 표시자를 프로그램할 수 있다. 이 방법은 페이지 블록 프로그램 및 소거 사이클 시간을 증가시키지 않고 주어진 페이지 내의 유효한 데이터의 섹터들을 빠르게 식별할 수 있다.
2가지 유형의 데이터 블록, 즉 전체 페이지(full page) 및 부분 페이지(partial page)가 있다. 전체 페이지 블록은 단일 동작에서 전체 페이지로서 기입되도록 지정된 인접한 데이터의 섹터들(contiguous sectors of data)의 전체 페이지를 포함한다. 만약 단일 할당 요청 동안에 전체 페이지 블록을 채울 것보다 적은 데이터가 이용 가능하다면, 전체 페이지 블록은 데이터가 제거될 때까지 부분적으로 채워진 채로 남아 있어, 미사용 공간을 남긴다. 전체 페이지 블록은 또한 블록 식별을 위해 각 기입된 페이지의 스페어 위치(spare location)에 블록 정보를 포함하고, 그 블록 정보는 그 블록 내의 각 기입된 페이지에 대하여 동일하다.
부분 페이지 블록은 전체 페이지 블록들 중 하나에 할당되는 데이터의 적어도 하나의 부분 페이지를 포함한다. 데이터는 변화하는 데이터 사이즈들을 요구하는 다수의 동작들에서 단일 부분 페이지에 기입될 수 있다. 부분 페이지 블록은 각 부분적으로 기입된 페이지의 마지막 섹터에 있을 수 있는 고유의 논리적 섹터 어드레스 정보를 포함한다. 논리적 섹터 어드레스 범위는 부분적으로 채워진 전체 페이지 블록들 중 하나의 논리적 섹터 범위로 제한될 수 있다.
도 1은 본 발명의 다양한 실시예들에 따른 메모리 시스템(100)의 단순화된 블록도이다. 다양한 실시예들에서, 메모리 시스템(100)은 비휘발성 플로팅 게이트 메모리 셀들의 어레이(104)를 포함하는 집적 회로(102)를 포함한다. 집적 회로(102)는, 이용 가능한 페이지들 또는 섹터들을 추적하는 페이지 테이블 및/또는 섹터 테이블과 같은 룩업 테이블(look up table)(108), 어드레스 회로(106), 및 입력/출력(I/O) 회로(110)를 포함하도록 구성될 수 있다. 룩업 테이블(108)은 집적 회로(102) 내의 RAM과 같은, 개별 저장 위치들의 세트에, 또는 컨트롤러(114) 내와 같은 어떤 다른 위치에 유지될 수 있다. 메모리 어레이(104)는 때때로, 메모리 어레이(104)의 블록들이 플래시 동작으로 동시에 소거될 수 있는 경우에, 플래시 메모리라고 불릴 수 있다.
메모리 시스템(100)은 메모리 컨트롤러(114)를 포함할 수 있고, 메모리 컨트롤러(114)는 프로세서(116)를 포함할 수 있다. 프로세서(116)는 집적 회로(102)를 통해 메모리 어레이(104)와 통신하기 위해 제어 라인들(112)을 이용할 수 있다. 메모리 어레이(104)에의 액세스는 제어 라인들(112)을 통해 어드레싱하는 것에 의해 링크(link)되는 하나 이상의 목표로 정한 또는 지정된 메모리 셀들을 포함할 수 있다. 메모리 어레이(104) 내에 포함된 하나 이상의 메모리 셀들에의 액세스가 프로세서(116)에 의해 설정되면, 그 메모리 셀들에 데이터가 기입되거나 그 메모리 셀들로부터 데이터가 판독될 수 있다. 판독 요청과 관련된 할당 요청이 프로세서(116)에 의해 송신되면, 그러한 동작은 메모리 어레이(104) 내에 포함된 관련 데이터의 식별을 허용하도록 데이터의 다수의 행들 또는 페이지들에 액세스하는 것을 포함할 수 있다. 메모리 컨트롤러(104) 및/또는 프로세서(116)는 룩업 테이블(108)을 유지하기 위해 이용될 수 있다. 다양한 실시예들에 따르면, 룩업 테이블(108)은 페이지 블록 내의 이용 가능한 페이지들(또는 이용 가능한 페이지들에 대응하는 섹터들의 그룹)에 대한 어드레스 정보를 저장하는 페이지 테이블로서 조직된 제1 룩업 테이블, 및 페이지 내의 기입된 섹터들의 수를 저장하는 섹터 카운트 테이블로서 조직된 제2 룩업 테이블과 같은, 2개 이상의 테이블을 포함할 수 있다.
도 2는 본 발명의 다양한 실시예들에 따른, NAND 플래시 메모리(200) 내의 메모리 셀들의 어레이들의 조직을 보여주는 3차원 블록도이다. 메모리(200)는 하나 이상의 블록들(202)을 포함할 수 있고, 이 블록들은 메모리 어레이(104)와 유사한 어레이 내의 메모리의 일부(예를 들면, 복수의 메모리 셀들)를 나타낼 수 있다. 메모리(200)는 데이터 레지스터(204), 캐시 레지스터(206), 데이터 영역(208), 스페어 영역(210), I/O 포트들(212) 및 플레인(plane)(214)을 더 포함할 수 있다. 데이터는, 데이터 레지스터(204) 및 캐시 레지스터(206)를 통해 한 바이트씩, NAND 플래시 메모리(200)에 및 NAND 플래시 메모리(200)로부터 이송된다. 캐시 레지스터(206)는 도 1에 도시된 I/O 회로(110)와 같은 I/O 제어 회로에 인접하여 위치할 수 있고, I/O 포트들(212)을 통해 메모리(200) 안팎으로 이동되는 데이터에 대한 데이터 버퍼로서 역할을 할 수 있다.
데이터 레지스터(204)는 메모리 어레이(104)와 같은 메모리 어레이에 인접하여 위치할 수 있고, NAND 플래시 메모리 동작을 위한 데이터 버퍼로서 역할을 할 수 있다. 다양한 실시예들에서, 데이터 영역(208) 및 스페어 영역(210)의 길이는 "페이지"로서 정의된다. 일부 경우에, NAND 플래시 메모리는 페이지 기반 동작들에서 프로그램 및 판독되고 블록 기반 동작들에서 소거된다. 일부 경우에, 페이지 판독 및 기입 동작들 동안에, 데이터 레지스터(204) 및 캐시 레지스터(206)는 함께 결합되어 단일 레지스터로서 역할을 한다. 일부 경우에, 캐시 동작들 동안에, 데이터 레지스터(204) 및 캐시 레지스터(206)는 데이터 처리량을 증가시키기 위해 독립적으로 동작한다.
도 2에 도시된 NAND 플래시 메모리는 페이지들의 블록들(202)로서 구성될 수 있다. 각 블록(202)은 통상적으로 16, 32, 또는 64 페이지를 포함한다. 다양한 실시예들에서, 각 페이지는 데이터 영역(208)에 512 바이트(256 워드)를 포함하고 스페어 영역(210)에 여분의 16 바이트(8 워드)를 포함할 수 있다. 다양한 실시예들에서, 각 페이지는 데이터 영역(208)에 2048 바이트(1024 워드) 및 스페어 영역(210)에 64 바이트(32 워드)를 가질 수 있다. 스페어 영역(210)은 제조 프로세스 동안에 무효 블록들을 마킹하기 위해 이용되는 비트들을 저장하는 데 이용될 수 있다. 또한, 스페어 영역(210)은 다수의 전체 페이지 블록들과 관련된 부분 페이지 캐시 엔트리들을 참조하기 위해 이용되는 논리적 어드레스 정보를 저장할 수 있다. 도 2의 예는 I/O 포트들(212)을 0 내지 7 비트(또는 총 8 비트)의 범위를 갖는 것으로 보여주지만, 이것은 상기 페이지 사이즈에 관하여 설명한 바와 같이 변할 수 있다.
MLC NAND 플래시 메모리의 다양한 실시예들에서, 전체 페이지는 동시에 프로그램될 수 있다. 정보를 이송하는 판독 또는 기입 동작과 관련된 할당 요청은 페이지 베이스로(on a page basis)(예를 들면, NOR 플래시에서 수행되는 바이트 또는 워드 베이스(byte or word basis)에 대립되는 것으로서, 한 번에 528 바이트) 일어날 수 있다. 또한, 소거 동작은 블록 베이스로 일어날 수 있다. 일부 실시예들의 동작에서는, 다양한 실시예들에서의 페이지 판독 동작 동안에, 528 바이트의 페이지가 메모리로부터 데이터 레지스터(204) 내로 이송된다. 페이지 기입 동작에서는, 528 바이트의 페이지가 데이터 레지스터(204) 내에 기입된 다음 메모리 어레이(104) 내에, 예를 들면 데이터 영역(208)을 포함하는 공간 내에 프로그램된다. 또한, 블록 소거 동작에서는, 연속적인 페이지들의 그룹이 단일 동작에서 소거될 수 있다.
도 3은 본 발명의 다양한 실시예들에 따른, NAND 플래시 메모리 어레이(300)의 개략도이다. 도 1의 메모리 어레이(104)와 유사하거나 동일할 수 있는 메모리 어레이(300)는 다수의 비트 라인들 BL1, BL2-BLn과 함께 도시되어 있지만, 그 사용되는 양은 어레이(300)의 메모리 밀도에 의존할 수 있다. 메모리 어레이(300)는 직렬 스트링(series string)(320)으로 배열된 플로팅 게이트 메모리 셀들(321-326)을 포함한다. 플로팅 게이트 메모리 셀들(321-326) 각각은 드레인에서 소스로, 직렬로, 접속되고, 제1 플로팅 게이트 메모리 셀(321)의 드레인은 제1 드레인 선택 게이트(327)를 통하여 제1 비트 라인 BL1에 연결된다. 제1 드레인 선택 게이트(327)의 상태는 드레인 선택 게이트 제어 라인 SG(D)(319)에 의해 제어된다. 직렬 스트링(320)의 배열은 마지막 플로팅 게이트 메모리 셀(326)을 제1 소스 선택 게이트(328)를 통하여 제1 비트 라인 BL1에 연결하는 것을 포함하고, 소스 선택 게이트 제어 라인 SG(S)(329)에 의해 제어된다.
제1 직렬 스트링(330) 및 최종 직렬 스트링(340)에서도 유사한 배열이 나타나고, 최종 직렬 스트링(340)은 어레이의 메모리 밀도를 결정할 수 있다. 그 때문에, 유사한 엘리먼트들(예를 들면, 직렬 스트링, 플로팅 게이트 메모리 셀 등)은 유사한 방식으로 라벨이 붙는다. 제2 직렬 스트링(330)은, 제1 드레인 메모리 셀(331)을 제2 드레인 선택 게이트(337)를 통해 제2 비트 라인 BL2에 연결되게 하고, 드레인에서 소스로 접속된, 플로팅 게이트 메모리 셀들(331-336)을 포함하고, 드레인 선택 게이트 제어 라인 SG(D)(319)에 의해 제어된다. 제2 직렬 스트링(330)의 마지막 메모리 셀(336)은 제2 소스 선택 게이트(338)를 통하여 제2 비트 라인 BL2에 연결되고, 소스 선택 게이트 제어 라인 SG(S)(329)에 의해 제어된다. 스트링(320) 내의 각각의 셀들(321-326)의 경우와 마찬가지로, 스트링(330) 내의 셀들(331-336), 및 스트링(340) 내의 모든 셀들은 SLC들 또는 MLC들을 포함할 수 있다.
다수의 직렬 스트링들(320, 330 및 340)을 스팬(span)하는 워드 라인들 WL0-WL31이 한 행 내의 모든 플로팅 게이트 메모리 셀의 제어 게이트들에 연결되어 그들의 동작을 제어한다. 예를 들면, 도 3에 도시된 바와 같이, 제1 워드 라인 WL0(350)은 비트 라인들 BL1, BL2 및 BLn의 각 제1 플로팅 게이트 메모리 셀(321, 331 및 341)에 연결된다. 각 비트 라인 BL1-BLn은 결국 각 셀의 상태를 검출하는 센스 증폭기들(sense amplifiers)(미도시)에 연결된다. 동작시에, 워드 라인들 WL0-WL31은 기입 또는 판독될 직렬 스트링들(320, 330 및 340) 내의 개별 플로팅 게이트 메모리 셀들을 선택하고 각 직렬 스트링(320, 330 및 340) 내의 나머지 플로팅 게이트 메모리 셀들을 패스-스루 모드(pass-through mode)로 동작시킨다.
각 플로팅 게이트 메모리 셀은 셀마다 단일 비트로서 또는 셀마다 다중 비트로서 프로그램될 수 있다. 일부 실시예들에서 SLC 및 MLC 메모리 셀들은 동일한 구조를 갖고, 다른 실시예들에서는 상이한 물리적 구조들이 있을 수 있다. 그 때문에, 본 명세서에서 참조될 때, 비록 물리적 구조들이 동일하다 할지라도, SLC 구조는 셀마다 단일 비트를 프로그램하는 것을 허용하고, MLC 구조는 셀마다 다중 비트를 프로그램하는 것을 허용한다. 각 플로팅 게이트 메모리 셀의 임계 전압(Vt)은 셀에 저장되는 데이터를 결정한다. 예를 들면, 셀마다 단일 비트 아키텍처에서, 1V의 Vt는 프로그램된 셀을 나타낼 수 있고, -1V의 Vt는 소거된 셀을 나타낼 수 있다.
MLC 아키텍처는 각각이 상이한 저장 상태를 나타내는 셀마다 3개 이상의 Vt 창들(windows)을 갖는다. 멀티-레벨 플로팅 게이트 메모리 셀들은 셀에 저장된 특정 전압 범위에 비트 패턴을 할당함으로써 종래의 플래시 셀의 아날로그 특징을 이용한다. 이 기술은 셀에 할당된 전압 범위의 양에 따라서, 셀마다 2 이상의 비트의 저장을 허용한다. 특정 실시예들에서, 플로팅 게이트 메모리 셀에는 대략 200 밀리볼트(mV)의 폭을 갖는 4개의 상이한 전압 Vt 분포들이 할당된다. 다양한 실시예들에서, 각 Vt 분포 범위 사이에 또한 0.3V 내지 0.5V의 분리가 할당된다. Vt 분포들 사이의 이 분리 구역의 감소는 다수의 Vt 분포들이 겹치서, 논리 오류를 일으킬 수 있는 가능성을 증가시킬 수 있다.
선택된 워드 라인(WL) 내의 선택된 플로팅 게이트 메모리 셀들을 프로그램하는 것은 비트 라인(BL)을 0V로 저하시킴으로써 달성될 수 있다. 이로 인해 채널을 가로질러 전위가 형성되고, WL은 플로팅 게이트 메모리 셀이 프로그램되게 할 것이다. Vt는 보다 높은 전압 프로그래밍 펄스들이 인가될 때 증가할 것이다. 각 프로그래밍 펄스 사이에, 선택된 WL은 0V로 낮추어지고, 선택되지 않은 WL들은 5V로 낮추어져서, 선택된 WL의 상태가 검출되는 확인 단계(verification phase)가 수행된다. 만약 플로팅 게이트 메모리 셀이 WL 상에 0V를 갖는 디바이스의 전도를 막기에 충분한 Vt를 포함한다면, 그것은 프로그램될 것으로 생각되고, 그렇지 않다면 그것은 여전히 소거될 것으로 생각되고 프로그래밍 펄스 높이가 증가되어(예를 들면, 0.5V 만큼) 다시 선택된 WL에 인가된다. 이 프로세스는 모든 선택된 WL들이 프로그램되는 것으로 검출될 때까지 반복된다.
도 4는 본 발명의 다양한 실시예들에 따른, 도 3의 MLC 어레이의 임계 전압들의 분포를 보여주는 도이다. X-축(404)은 최저 임계치(406)로부터 최고 임계치(412)까지의 임계 전압들(Vt)을 나타낸다. 특정 예들에서는, 최저 임계치(406)가 소거된 상태를 나타내므로, 임계 전압들의 감소하는 순서로 관련 WL에서 먼저 최고 임계치(412)가 수행되어 프로그래밍이 시작된다. 소거된 상태, 즉 최저 임계치(406)는 논리 "11"을 나타내는데, 이는 멀티-레벨 셀의 양쪽 비트들이 소거될 때 "1" 상태에 있기 때문이다. 다르게는, 일부 메모리 디바이스들은 각 비트에 논리 "0"을 갖는 소거된 상태를 나타낼 수 있다는 점에 주목해야 한다. 특정 예들에서는, 최고 임계치(412)는 제1 프로그램된 임계치이다. 이것은 모든 보다 낮은 멀티-레벨 분포들이 프로그램되기 전에 WL 상에 최고 전압을 두고, 이것은 보다 낮은 Vt 분포들에서 프로그램될 동일한 WL 상의 다른 셀들 내의 조건들을 방해하는 가능성을 감소시킨다.
일부 실시예들에서는, 최고 임계치(412)를 갖는 비트들로 프로그램될 페이지 내의 모든 셀들이 먼저 프로그램된다. 최고 다음의 임계치(410)가 다음으로 프로그램되고, 그 후 최저 다음의 임계치(408)가 뒤따르고, 그 후 최저 임계치(406)가 뒤따른다. 이들 프로그래밍 동작들은 연속적인 프로그래밍 및 확인 펄스들로 달성될 수 있고, 여기서는 모든 증가하는 프로그래밍 펄스 사이에 2개의 상이한 레벨을 갖는 2개의 확인 펄스들이 인가된다(즉, "01"에 대한 2V, 및 "00"에 대한 1.3V). 이러한 절차는 데이터 블록에 데이터를 채우려고 시도할 때 페이지의 각 섹터 내의 각 데이터 비트에 대하여 반복될 수 있다.
본 발명의 다양한 실시예들에 따르면, 프로그래밍 기법들은 페이지마다 단일 프로그램(single program per page)에 제한될 수 있다. 페이지가 더 이상 필요하지 않은 데이터(예를 들면, 캐시 밖으로 그의 목적지 메모리 위치로 이미 복사된 데이터)를 포함하고 있는지를 결정하는 한 가지 방법은 그것을 무효로 마킹하는 것이다. 그 결과, 다음 동작을 위해 그 공간을 이용하기 위해 추가 액션이 취해질 때까지 그 데이터의 사본은 캐시 내에 남아 있을 수 있다. 캐시 메모리 및 목적지 메모리는 도 1-4에 도시된 구조를 갖는 플래시 메모리와 유사하거나 동일할 수 있다. 무효성을 표시하는 것은 페이지의 섹터들에 논리 0들을 채우거나, 탐색할 무효 페이지들의 RAM에 개별 비휘발성 리스트를 유지하는 것에 의해 달성될 수 있다. 그러나, 일부 메모리 디바이스들의 MLC 구성 때문에, 데이터 이송이 완료될 때마다 메모리의 각 페이지의 섹터들에 0들을 채우는 것은 복잡하고 시간을 낭비하는 것이 될 수 있다.
이러한 어려움은 제한된 방식으로 구현되는 페이지마다 제2 프로그램(second program per page)을 이용하여 처리될 수 있다. 다양한 실시예들에 따르면, 블록 관리 데이터를 프로그램하는 애플리케이션은 무효성을 식별하기 위해 이용될 수 있다. 블록 관리 데이터는 메모리의 논리적 블록을 메모리의 물리적 블록과 상관시키는 주어진 페이지 내의 프로그램 정보를 포함할 수 있다. 다양한 실시예들에서, 특정 페이지에 저장된 하나 이상의 비트들은 그 페이지 내에 포함된 정보의 유효성을 표시하도록(예를 들면, 플래그 또는 상태 표시자로서) 예비 또는 할당될 수 있다. 하나 이상의 비트를 상태 표시자로서 이용되도록 예비/할당하는 것은 멀티-레벨 셀 메모리 디바이스의 상위 및 하위 페이지 내에 포함된 블록 관리 정보 및/또는 데이터를 수반하도록 비트들을 할당하는 것을 포함할 수 있다. 다양한 실시예들에 따르면, 단일 페이지는 상위 페이지 부분 및 하위 페이지 부분을 포함할 수 있다. 하위 페이지 부분은 페이지의 최하위 비트들(least significant bits)을 저장하기 위해 이용될 수 있고 상위 페이지 부분은 최상위 비트들(most significant bits)을 저장하기 위해 이용될 수 있다. 상위 또는 하위 페이지 부분들은 판독 또는 기입 할당 요청에 관련된 동작에서 먼저 이용될 수 있다. 일부 실시예들에 따르면, 상위 페이지 부분을 할당하는 것은 하위 페이지 부분이 먼저 이용될 때까지 허용되지 않을 수 있다. 메모리 디바이스는 데이터의 제1 부분을 하위 페이지 부분에 이송한 후에 데이터의 제2 부분을 상위 페이지 부분에 이송하도록 구성될 수 있다.
도 5는 본 발명의 다양한 실시예들에 따른, 하위 페이지에 대한 데이터 유효성에 대한 상태 표시자를 설정하는 제2 프로그램 동작의 블록도이다. 본 발명의 다양한 실시예들에 따른 블록도(500)는, 유효한 하위 페이지 부분(502) 및 무효한 하위 페이지 부분(512)을 포함하는 기입 요청 또는 판독 요청과 관련된 할당 요청을 나타낸다. 전체 페이지를 구성하는 섹터들의 수는 시스템마다 변할 수 있고 멀티-레벨 메모리 셀은 상위 페이지 부분 및 하위 페이지 부분 둘 다를 포함할 수 있고, 그 중 어느 한쪽은 블록 관리 정보 및 유효성 상태 표시자를 포함할 수 있다. 또한 전체 페이지 블록 내의 페이지들의 수는 시스템마다 변할 수 있다는 점에 주목해야 한다.
유효한 하위 페이지 부분(502)은 데이터의 섹터들(504)을 포함하고 오류 정정 코드(ECC), 새로이 추가된 블록 관리 정보(508) 및 데이터 유효성 플래그 또는 상태 표시자(510)를 포함할 수 있다. 데이터 상태 표시자(510)는 이전 소거 사이클의 완료시에 논리 "1"일 수 있다(예를 들면, 소거 사이클 동안에 모든 비트들은 논리 "1"로 설정될 수 있다). 데이터 상태 표시자(510)는, 예를 들면 하나 이상의 할당 요청들 동안에, 그 페이지 내에 포함된 정보가 유효하다는 것을 표시하기 위해 논리 "1" 상태에 남아 있을 수 있다. 유효한 상태는 섹터들(504) 중 하나 이상이 최근에 판독 동작과 관련된 정보로 채워졌다는 것을, 또는 섹터들(504) 중 하나 이상이 비어 있고 기입 동작과 관련된 정보로 채워질 준비가 되어 있다는 것을 나타낼 수 있다. 상태 표시자(510)에 이용되는 비트들의 수는 상위 또는 하위 페이지 내에 예비된 하나 이상의 비트들을 포함할 수 있고 그 비트들의 상태는 변할 수 있다. 간결함을 위해, 블록도(500)는 하위 페이지 부분 내에 포함된 상태 표시자(510)에 대한 단일 비트를 도시한다. 상태 표시자(510)는 페이지 내에 포함된 정보가 무효하거나 확정할 수 없는 것임을 표시하기 위해 논리 "0"으로 설정될 수 있다. 데이터가 무효한 것으로 결정되는 예는 섹터들 내에 포함된 정보가 캐시로부터 물리적 메모리 위치로 복사되었고, 그 데이터의 사본이 캐시 내에 남아 있지만 더 이상 필요하지 않은 경우이다. 다음 할당 요청시에, 상태 표시자(510)는 하위 페이지 부분(502) 내에 포함된 정보가 신뢰할 수 있는 것인지를 결정하기 위해 이용 가능한 공간을 탐색할 때 체크될 수 있다. 이 방법은 액세스 시간을 줄이고, 데이터 섹터들을 비우거나, 그것들을 알려진 논리 상태로 설정하거나, 룩업 테이블을 통해 탐색할 필요를 제거한다.
무효한 하위 페이지 부분(512)은 미결의 데이터 블록(514), 미결의 블록 관리 정보(518), 및 예비된 플래그 또는 상태 표시자(520)를 포함한다. 이 무효성의 상태는 페이지 프로그램이 추가의 메모리 할당을 위한 공간을 자유롭게 하기 위해 페이지가 해제될 필요가 있다고 결정하는 경우에 존재할 수 있다. 이것은 부분적으로만 데이터가 채워져 있는 너무 많은 채워지지 않은 페이지들로 인해 또는 그 페이지에 포함된 데이터가 오래된(예를 들면, 오랜 시간 기간 동안 유지된) 것일 때 일어날 수 있다. 페이지 프로그램은 이용 가능한 메모리 공간을 통해 순환하여, 공간을 효율적으로 할당하고 하나의 페이지에서 다른 페이지로 데이터를 이동시킴으로써 부분적으로 채워진 페이지들을 제거하는 명령들을 포함할 수 있다.
다양한 실시예들에서, 상태 표시자 비트들(520)은 프로세서의 다음의, 또는 임의의 다음 전력 사이클에 들어갈 때 체크될 수 있다. 룩업 테이블이라고도 불리는 섹터 카운트 테이블(525)은 페이지 블록 내의 다음 유효한 하위 페이지 부분(502)의 위치를 저장하기 위해 이용될 수 있다. 섹터 카운트 테이블(525)은 시스템의 일부로서 플래시 메모리와 분리되어 위치하는, DRAM과 같은 전용 메모리(예를 들면, 도 1의 엘리먼트들(108), 및 도 8의 836을 참조)의 일부 내에 존재할 수 있고, 미래의 사용을 위해 효과적으로 페이지를 이용 가능하게 만들지만, 상태 표시자(510)를 이용하고 있을 때, 이 상태를 표시하기 위해, 데이터 섹터들을 비우거나, 또는 섹터들에 논리 "1"을 채우는 것은 불필요할 수 있다.
데이터가 캐싱되고 병합(merge)되는 예는 시작 페이지 내의 오프셋에 대하여 전체 페이지 블록의 시작 요청 섹터를 체크하는 것(예를 들면, 제1 빈 섹터는 페이지 내의 제1 섹터가 아니다)을 개시하는 기입 요청을 포함한다. 오프셋은 데이터가 페이지의 제1 부분에 이미 기입되어 있다는 표시일 수 있다. 만약 오프셋이 존재한다면, 기입 요청은 이전의 섹터들(예를 들면 메모리 내의 동일한 목적지에 도달하도록 예정된 현 기입 요청과 관련된 섹터들)에 대한 페이지 경계의 처음으로부터 탐색을 시작한다. 만약 이전의 섹터들이 존재하지 않는다면, 기입 요청은 비순차적 기입 요청(non-sequential write request), 또는 새로운 시퀀스의 처음일 수 있다. 다음으로, 룩업 테이블은 유효한 엔트리 어드레스 정보를 저장하기 위해 이용될 수 있다. 만약 유효한 엔트리가 존재한다면, 기입 요청은 현 부분 페이지 데이터를 이 이전에 기입된 전체 페이지 블록에 기입하는 것을 촉구할 수 있다. 만약 이 이전에 기입된 전체 페이지 블록의 나머지 섹터들이 이 기입 요청과 관련된 데이터를 유지하기에 충분한 공간을 제공하지 않는다면, 기입 요청은 그 나머지 섹터들을 부분 페이지 블록 내의 새로운 페이지에 기입하는 것을 촉구할 수 있다.
도 6은 본 발명의 다양한 실시예들에 따른, MLC 플래시 디바이스를 이용하여 특정 페이지에 대한 정보를 무효화하는 방법의 순서도이다. 600에서, 기입 요청과 관련된 할당 요청이 프로세서로부터 수신된다. 605에서, 프로세서는 미래의 할당 요청들 위한 공간을 만들기 위해 블록이 닫힐 것인지를 결정한다. 예를 들면, 프로세서는 페이지들의 다수의 채워지지 않은 블록들에 액세스하고 있을 수 있고 만약 이용 가능한 블록들의 수가 초과된다면, 블록들 사이에, 아마 하나의 블록의 섹터로부터 다른 블록의 섹터로 데이터를 이동시키고, 그 결과 빈 블록들 또는 섹터들을 무효화함으로써 공간이 만들어질 필요가 있다. 만약, 605에서, 하나 이상의 블록들이 닫힐 필요가 있다면, 610에서, 프로세서는 닫을 블록을 선택한다. 다양한 실시예들에서, 닫기 위해 선택되는 블록은 대개 비어 있는 것, 가장 오래 유지된 데이터를 갖는 것, 또는 가장 최근에 기입된 정보를 갖는 것을 포함한다. 일단 닫기 위해 선택되면, 그 블록은 그의 정보를 다른 채워지지 않은 데이터의 블록으로 이동되게 할 수 있다. 선택된 블록에 대한 유효성 상태 표시자는 그 후, 하나 이상의 비트를 논리 "0"으로 프로그램하는 것과 같이, 무효로서 프로그램된다. 만약, 605에서, 닫을 필요가 없거나, 또는, 610에서, 선택된 블록이 닫힌다면, 다음으로 615에서, 블록 내의 이용 가능한 공간을 어디에서 찾을지가 결정된다. 이것은 무효한 엔트리들의 룩업 테이블을 이용하는 것에 의해 달성될 수 있다. 현 블록들의 유효성 상태 표시자들은 무효한 또는 이용 가능한 블록을 찾기 위해 이용될 수 있다. 일단 이용 가능한 공간이 무효한 블록에서 발견되면, 그 전체 블록이 소거된다(예를 들면, 유효성 상태 표시자 비트들을 포함한, 모든 비트들이 논리 "1"로 설정된다). 620에서, 프로세서는 이용 가능한 공간에 정보를 기입하고, 그 후, 625에서, 프로세스가 종료된다.
도 7은 본 발명의 다양한 실시예들에 따른, MLC 플래시 디바이스를 이용하여, 페이지 블록 내의, 특정 페이지에 대한 상태 표시자를 할당하는 방법의 순서도이다. 700에서, 기입 요청과 같은 할당 요청이 프로세서로부터 수신된다. 705에서, 페이지는 할당에 의해 상위 페이지 부분 및 하위 페이지 부분으로 분할된다. 710에서, 적어도 하나의 비트를 저장하는 저장 위치가 현재 선택된 하위 페이지 부분의 플래그, 즉 상태 표시자에 할당된다. 715에서, 페이지 내의 물리적 메모리를 논리적으로 할당하기 위해 적어도 하나의 섹터가 어드레스 정보로 채워진다. 그 후, 720에서, 상기 710으로부터의 상태 표시자가 유효 상태로 설정된다(예를 들면, 그 저장 위치에 논리 "1"이 저장된다). 725에서, 선택된 페이지의 데이터 섹터들이 정보로 채워지고, 730에서, 프로세스가 종료된다.
도 8은 본 발명의 다양한 실시예들에 따른 시스템(800)의 블록도이다. 시스템(800)은 도 1의 메모리 시스템(100)의 것과 유사하거나 동일할 수 있는 하나 이상의 장치를 포함할 수 있다. 시스템(800)은, 일부 실시예들에서, 프로세서(816)에 의해 처리된 데이터를 디스플레이하는 디스플레이(818)에 연결된 프로세서(816) 및/또는 프로세서에 의해 처리된 데이터를 수신 및 송신하는 무선 송수신기(820)(예를 들면, 휴대폰 송수신기)를 포함할 수 있다.
장치(800)에 포함된 메모리 시스템(들)은 프로세서(816)에 연결된 DRAM(dynamic random access memory)(836) 및 비휘발성 플래시 메모리(840)를 포함할 수 있다. 플래시 메모리(840)는 도 1-7에 도시되고, 위에서 설명된 구조 및 동작들을 갖는 플래시 메모리와 유사하거나 동일할 수 있다. DRAM(836) 및 플래시 메모리(840)는 각각 프로세서(816)에 의해 처리된 데이터를 저장하기 위해 이용될 수 있다.
다양한 실시예들에서, 시스템(800)은 프로세서(816)에 연결된 촬상면(imaging plane)(826) 및 렌즈(824)를 포함하는 카메라(822)를 포함할 수 있다. 촬상면(826)은 렌즈(824)에 의해 캡처된 광선들(828)을 수신하기 위해 이용될 수 있다. 렌즈(824)에 의해 캡처된 이미지들은 DRAM(836) 및 플래시 메모리(840)에 저장될 수 있다.
시스템(800)의 다수의 변형들이 가능하다. 예를 들면, 다양한 실시예들에서, 시스템(800)은 프로세서(816)에 연결된, 미디어 재생 컨트롤들(832)의 세트를 포함하는, 오디오/비디오 미디어 플레이어(830)를 포함할 수 있다. 다양한 실시예들에서, 시스템(800)은 프로세서(816)에 연결된 모뎀(834)을 포함할 수 있다.
비록 본 명세서에서는 특정 실시예들이 도시되고 설명되었지만, 이 기술 분야의 통상의 지식을 가진 자는 동일한 목적을 달성할 것으로 생각되는 어떠한 배열이라도 도시된 특정 실시예들에 대체될 수 있다는 것을 알 것이다. 이 출원은 본 주제의 개조 또는 변형들을 커버하려고 한다. 상기 설명은 제한적인 것이 아니라 설명적인 것으로 의도되어 있다는 것을 이해해야 한다. 상기 실시예들, 및 다른 실시예들의 조합들은 이 기술 분야의 숙련자들이 상기 설명을 검토했을 때 명백할 것이다. 본 주제의 범위는 첨부된 청구항들과 함께, 그러한 청구항들의 권리가 주어지는 균등물들의 전체 범위를 참조하여 결정되어야 한다.
상기 설명에서 설명되는 예들은 이 기술 분야의 숙련자들이 본 발명의 주제를 실시할 수 있을 정도로 충분한 상세를 제공하고, 본 발명의 주제가 다양한목적들 또는 실시예들에 어떻게 적용될 수 있는지를 설명하는 데 도움이 된다. 이 명세서에서 "어떤"(an), "하나의"(one), 또는 "다양한"(various) 실시예들에 대한 언급들은 반드시 동일한 실시예를 언급하는 것은 아니며, 그러한 언급들은 2개 이상의 실시예를 예상할 수 있다. 다른 실시예들이 이용될 수 있고, 본 명세서의 범위에서 벗어나지 않고 구조적, 논리적, 및 전기적 변경들이 이루어질 수 있다. "데이터" 및 "정보"라는 용어들은 본 명세서에 상호 교환 가능하게 사용될 수 있다.
본 발명의 주제의 그러한 실시예들은 여기에서, 단지 편의를 위해 그리고 이 출원의 범위를 임의의 단일 발명 또는 발명의 개념(사실상 2개 이상이 개시되어 있을지라도)으로 자발적으로 제한하려고 함이 없이 용어 "발명"에 의해 개별적으로 또는 집합적으로 언급될 수 있다. 따라서, 본 명세서에서는 특정 실시예들이 도시되고 설명되어 있지만, 동일한 목적을 달성하도록 계획된 어떠한 배열이라도 도시된 특정 실시예들을 대신할 수 있다. 이 명세서는 다양한 실시예들의 모든 개조 또는 변형들을 커버하려고 한다.
본 명세서의 요약서는 독자가 기술적 명세서의 본질을 신속히 확인할 수 있게 할 요약서를 요구하는, 37 C.F.R. §1.72(b)를 준수하기 위해 제공된다. 그것은 그것의 청구항들의 범위 또는 의미를 해석하거나 제한하는 데 이용되지 않을 것이라는 조건으로 제출된다. 또한, 전술한 상세한 설명에서는, 그 개시를 능률화하기 위해 단일 실시예에서 다양한 특징들이 함께 모아져 있다는 것을 알 수 있다. 이러한 개시의 방법은 각 청구항에서 명백히 기재되어 있는 것보다 더 많은 특징들을 요구하는 것으로 해석되지 않아야 한다. 오히려, 본 발명의 주제는 단일 개시된 실시예의 모든 특징들보다 적은 수의 특징들에서 발견될 수 있다. 따라서 다음의 청구항들은 이에 의해 상세한 설명에 통합되고, 각 청구항은 개별 실시예로서 독립하여 존재한다.

Claims (44)

  1. 단일 레벨 셀 구조 또는 멀티-레벨 셀 구조 중 적어도 하나를 포함하고 복수의 블록들로서 조직된 메모리 어레이를 관리하기 위한 프로세서로부터 메모리 할당 요청을 수신하는 단계 ― 상기 블록들 각각은 복수의 데이터 비트들을 저장할 수 있는 섹터들의 그룹을 포함함 ―;
    메모리 저장을 위해 상기 복수의 블록들로부터 적어도 하나의 페이지 블록을 할당하는 단계 ― 상기 적어도 하나의 페이지 블록은 적어도 하나의 페이지를 포함함 ―;
    상기 적어도 하나의 페이지에 적어도 하나의 상태 표시자를 할당하는 단계 ― 상기 상태 표시자는 상기 적어도 하나의 페이지 내에 저장된 데이터의 유효성 상태를 표시하기 위한 것임 ―; 및
    상기 적어도 하나의 페이지에 포함된 섹터들의 그룹 내에 상기 데이터를 저장하는 단계
    를 포함하는 방법.
  2. 제1항에 있어서,
    상기 데이터를 저장하기 전에 상기 적어도 하나의 상태 표시자를 판독하는 단계를 포함하는 방법.
  3. 제2항에 있어서, 상기 적어도 하나의 상태 표시자를 판독하는 단계는 상기 적어도 하나의 페이지 내에 저장된 데이터가 무효함을 결정하는 단계를 포함하는 방법.
  4. 제3항에 있어서,
    상기 프로세서의 다음 전력 사이클 시에 상기 적어도 하나의 상태 표시자를 체크하는 단계를 포함하는 방법.
  5. 제1항에 있어서,
    기입 동작과 관련된 메모리 할당 요청을 수신할 때 상기 복수의 블록들 중 적어도 하나의 블록의 섹터들의 그룹으로부터 적어도 하나의 섹터를 소거하는 단계를 포함하고, 상기 적어도 하나의 상태 표시자는 그것이 할당되는 상기 적어도 하나의 페이지 내에 무효한 정보가 저장되어 있음을 표시하는 방법.
  6. 제1항에 있어서,
    상기 섹터들의 그룹의 적어도 하나의 어드레스를 제1 룩업 테이블(lookup table)에 기입하는 단계; 및
    상기 적어도 하나의 페이지 내의 상기 섹터들의 그룹 중 기입된 섹터들의 수를 결정하기 위해 제2 룩업 테이블을 참조하는 단계
    를 포함하는 방법.
  7. 제1항에 있어서, 상기 복수의 블록들로부터 적어도 하나의 페이지 블록을 할당하는 단계는 상기 적어도 하나의 페이지의 일부로서 상위 페이지 부분 및 하위 페이지 부분을 할당하는 단계를 포함하는 방법.
  8. 제7항에 있어서, 상위 페이지 부분을 할당하는 단계는 상기 하위 페이지 부분이 먼저 이용될 때까지 허용되지 않는 방법.
  9. 제1항에 있어서, 상기 적어도 하나의 페이지에 적어도 하나의 상태 표시자를 할당하는 단계는,
    무효 상태를 표시하기 위해 상기 적어도 하나의 상태 표시자의 적어도 하나의 비트를 논리 0으로 설정하는 단계를 포함하는 방법.
  10. 제1항에 있어서, 상기 적어도 하나의 페이지에 적어도 하나의 상태 표시자를 할당하는 단계는,
    유효 상태를 표시하기 위해 상기 적어도 하나의 상태 표시자의 적어도 하나의 비트를 논리 1로 설정하는 단계를 포함하는 방법.
  11. 제1항에 있어서, 상기 메모리 할당 요청은 적어도 하나의 기입 동작과 관련되는 방법.
  12. 제1항에 있어서, 상기 메모리 할당 요청은 적어도 하나의 판독 동작과 관련되는 방법.
  13. 적어도 하나의 페이지 블록을 포함하는 복수의 데이터 블록들로서 조직된 멀티-레벨 셀 비휘발성 메모리 디바이스에의 액세스를 관리하는 단계 ― 상기 적어도 하나의 페이지 블록은 복수의 섹터들의 적어도 하나의 페이지, 및 상기 적어도 하나의 페이지 내에 저장된 데이터의 유효성 상태를 표시하기 위한 적어도 하나의 상태 표시자를 포함함 ―
    를 포함하고, 액세스를 관리하는 단계는,
    상기 적어도 하나의 페이지의 상태를 표시하기 위해 적어도 하나의 비트에 대한 저장 위치를 포함하는 상기 적어도 하나의 상태 표시자를 할당하는 단계;
    상기 복수의 섹터들 중 적어도 하나의 섹터에 어드레스를 저장하여 상기 적어도 하나의 섹터를 상기 적어도 하나의 페이지와 논리적으로 관련시키는 단계; 및
    상기 복수의 섹터들 중 상기 적어도 하나의 페이지와 관련된 상기 적어도 하나의 섹터 내에 데이터를 저장하는 단계
    를 포함하는 방법.
  14. 제13항에 있어서,
    상기 복수의 섹터들 중 상기 적어도 하나의 섹터 내에 상기 데이터를 저장하기 전에 상기 적어도 하나의 상태 표시자를 판독하는 단계를 포함하는 방법.
  15. 제13항에 있어서, 액세스를 관리하는 단계는,
    상위 페이지 부분 및 하위 페이지 부분을 할당함으로써 상기 적어도 하나의 페이지를 분할하는 단계를 포함하는 방법.
  16. 제15항에 있어서, 상위 페이지 부분을 할당하는 단계는 상기 하위 페이지 부분이 먼저 이용될 때까지 허용되지 않는 방법.
  17. 제13항에 있어서,
    프로세서의 다음 전력 사이클 시에 상기 적어도 하나의 상태 표시자를 체크하는 단계를 포함하는 방법.
  18. 제13항에 있어서,
    기입 동작과 관련된 메모리 할당 요청을 수신할 때 상기 복수의 데이터 블록들 중 적어도 하나의 데이터 블록의 복수의 섹터들로부터 적어도 하나의 섹터를 소거하는 단계를 포함하고, 상기 상태 표시자는 상기 적어도 하나의 페이지 내에 저장된 데이터가 무효함을 표시하는 방법.
  19. 제13항에 있어서, 상기 적어도 하나의 상태 표시자를 할당하는 단계는 기입 동작과 관련되는 방법.
  20. 제13항에 있어서, 상기 적어도 하나의 상태 표시자를 할당하는 단계는 판독 동작과 관련되는 방법.
  21. 제13항에 있어서, 상기 적어도 하나의 상태 표시자를 할당하는 단계는,
    상기 복수의 블록들 중 제1 블록의 상기 적어도 하나의 섹터로부터 상기 복수의 블록들 중 제2 블록의 상기 적어도 하나의 섹터로 데이터를 이동시키는 단계; 및
    상기 제1 블록 내에 저장된 데이터가 무효함을 표시하도록 상기 상태 표시자를 프로그램하는 단계
    를 포함하는 방법.
  22. 적어도 하나의 페이지 블록을 포함하는 복수의 데이터 블록들로서 조직된 멀티-레벨 셀 비휘발성 메모리 디바이스에의 액세스를 관리하는 단계 ― 상기 적어도 하나의 페이지 블록은 복수의 섹터들을 갖는 적어도 하나의 페이지 및 상기 적어도 하나의 페이지 내에 저장된 데이터의 유효성 상태를 표시하기 위한 적어도 하나의 상태 표시자를 포함함 ―
    를 포함하고, 액세스를 관리하는 단계는,
    상기 복수의 페이지 블록들을 탐색하여, 제1 페이지 블록 내에 저장된 데이터가 무효함을 표시하는 상기 상태 표시자를 갖는 제1 페이지 블록을 식별하는 단계; 및
    데이터의 저장에 이용할 상기 제1 페이지 블록을 선택하는 단계
    를 포함하는 방법.
  23. 제22항에 있어서, 상기 제1 페이지 블록을 선택하는 단계는 상기 제1 페이지 블록의 적어도 하나의 섹터를 소거하는 단계 및 상기 적어도 하나의 섹터 내에 데이터를 저장하는 단계를 포함하는 방법.
  24. 제23항에 있어서, 상기 적어도 하나의 섹터를 소거하는 단계는 상기 제1 페이지 블록 내에 저장된 데이터가 유효함을 표시하도록 상기 적어도 하나의 상태 표시자를 프로그램하는 단계를 포함하는 방법.
  25. 제23항에 있어서, 상기 적어도 하나의 섹터를 소거하는 단계는 상기 적어도 하나의 섹터에 어드레스를 저장하여 상기 적어도 하나의 섹터를 상기 적어도 하나의 페이지 블록과 논리적으로 관련시키는 단계를 포함하는 방법.
  26. 복수의 인접한 섹터들을 갖는 적어도 하나의 페이지를 포함하는 적어도 하나 의 페이지 블록을 포함하는 복수의 데이터 블록들로서 조직된 멀티-레벨 비휘발성 메모리 디바이스;
    상기 적어도 하나의 페이지 블록에 할당된 적어도 하나의 상태 표시자 ― 상기 상태 표시자는 상기 적어도 하나의 페이지 블록 내에 저장된 데이터의 상태를 표시하기 위한 것임 ―; 및
    랜덤 액세스 메모리 내에 유지된 섹터 카운트 테이블 ― 상기 섹터 카운트 테이블은 상기 데이터로 채워져 있는 상기 복수의 인접한 섹터들의 수를 저장하기 위한 것임 ―
    을 포함하는 장치.
  27. 제26항에 있어서, 상기 적어도 하나의 상태 표시자는 상기 상태 표시자에 할당된 상기 적어도 하나의 페이지 블록에 상기 데이터를 저장하기 전에 판독되도록 구성되는 장치.
  28. 제26항에 있어서, 상기 적어도 하나의 상태 표시자는 상기 적어도 하나의 페이지 블록의 상기 적어도 하나의 페이지에 할당되도록 구성되는 장치.
  29. 제26항에 있어서, 상기 적어도 하나의 상태 표시자는 상기 복수의 인접한 섹터들 내에 저장된 상기 데이터의 적어도 하나의 비트의 상태를 저장할 수 있는 저장 위치를 포함하는 장치.
  30. 제26항에 있어서, 상기 적어도 하나의 상태 표시자는 상기 복수의 인접한 섹터들 중 적어도 하나의 섹터에 저장된 데이터의 유효성 상태를 표시하도록 구성되는 장치.
  31. 제26항에 있어서, 상기 복수의 인접한 섹터들 각각은 선택적으로 프로그램 가능하고, 선택적으로 소거 가능하고, 고유하게 어드레싱 가능한 장치.
  32. 제26항에 있어서, 상기 적어도 하나의 페이지는 상위 페이지 부분 및 하위 페이지 부분을 포함하고, 상기 메모리 디바이스는 적어도 상기 하위 페이지 부분에 상기 적어도 하나의 상태 표시자를 할당하도록 구성되는 장치.
  33. 제32항에 있어서, 상기 메모리 디바이스는 상기 데이터의 제1 부분을 상기 하위 페이지 부분에 이송한 후에 상기 데이터의 제2 부분을 상기 상위 페이지 부분에 이송하도록 구성되는 장치.
  34. 제26항에 있어서, 상기 메모리 디바이스는 NAND 플래시 메모리를 포함하는 장치.
  35. 메모리 할당 요청을 발행하는 프로세서;
    상기 프로세서에 의해 처리된 데이터를 디스플레이하는 디스플레이;
    상기 메모리 할당 요청을 수신하는 것에 응답하여 선택되는 복수의 메모리 셀들 ― 상기 메모리 셀들은 복수의 인접한 섹터들을 포함하는 적어도 하나의 페이지를 포함하는 적어도 하나의 페이지 블록을 포함하도록 조직되고, 상기 복수의 인접한 섹터들 각각은 선택적으로 프로그램 가능하고, 선택적으로 소거 가능하고, 고유하게 어드레싱 가능함 ―; 및
    상기 적어도 하나의 페이지 블록에 할당된 상태 표시자 ― 상기 상태 표시자는 상기 적어도 하나의 페이지 블록 내에 저장된 데이터의 유효성 상태를 표시하기 위한 것임 ―
    를 포함하는 시스템.
  36. 제35항에 있어서, 상기 복수의 메모리 셀들은 단일 레벨 셀 구조 또는 멀티-레벨 셀 구조 중 적어도 하나를 포함하는 시스템.
  37. 제35항에 있어서, 상기 복수의 메모리 셀들은 NAND 플래시 메모리 어레이를 포함하는 시스템.
  38. 제35항에 있어서,
    렌즈; 및
    상기 프로세서에 연결되는 촬상면(imaging plane) ― 상기 촬상면은 상기 렌 즈에 의해 캡처된 광을 수신하도록 배열됨 ―
    을 포함하는 시스템.
  39. 제35항에 있어서,
    상기 프로세서에 의해 처리된 데이터를 수신하는 휴대폰 송수신기(cellular telephone transceiver)를 포함하는 시스템.
  40. 제35항에 있어서,
    상기 프로세서에 연결되는 미디어 플레이어 및 키패드 컨트롤 모듈을 포함하는 시스템.
  41. 제35항에 있어서,
    상기 프로세서에 연결되고, 상기 복수의 인접한 섹터들과 관련된 정보를 포함하는 룩업 테이블(lookup table)을 저장하는 다이내믹 랜덤 액세스 메모리 어레이를 포함하는 시스템.
  42. 메모리 시스템의 동작 방법으로서,
    프로세서로부터 데이터 할당 요청을 수신하는 단계;
    상기 데이터 할당 요청을 수신하는 것에 응답하여 상기 메모리 시스템 내의 복수의 메모리 셀들 중 이용 가능한 메모리 셀을 선택하기 위해 캐시 레지스터에 액세스하는 단계 ― 상기 복수의 메모리 셀들은 복수의 블록들로서 조직되고, 상기 블록들 각각은 복수의 데이터 비트들을 저장할 수 있는 섹터들의 그룹을 포함함 ―;
    메모리 저장을 위해 상기 복수의 블록들로부터 적어도 하나의 페이지 블록을 할당하는 단계 ― 상기 적어도 하나의 페이지 블록은 적어도 하나의 페이지를 포함함 ―; 및
    상기 적어도 하나의 페이지에 적어도 하나의 상태 표시자를 할당하는 단계 ― 상기 상태 표시자는 상기 적어도 하나의 페이지 내에 저장된 데이터의 유효성 상태를 표시하기 위한 것임 ―
    를 포함하는 동작 방법.
  43. 제42항에 있어서, 적어도 하나의 페이지 블록을 할당하는 단계는,
    상기 복수의 섹터들 중 적어도 하나의 섹터에 어드레스를 저장하여 상기 적어도 하나의 섹터를 상기 적어도 하나의 페이지와 논리적으로 관련시키는 단계; 및
    상기 복수의 섹터들 중 상기 적어도 하나의 페이지와 관련된 상기 적어도 하나의 섹터 내에 상기 데이터를 저장하는 단계
    를 포함하는 동작 방법.
  44. 제42항에 있어서, 적어도 하나의 상태 표시자를 할당하는 단계는,
    상기 복수의 페이지 블록들을 탐색하여, 제1 페이지 블록 내에 저장된 데이 터가 무효함을 표시하는 상기 상태 표시자를 갖는 제1 페이지 블록을 식별하는 단계; 및
    상기 데이터의 저장에 이용할 상기 제1 페이지 블록을 선택하는 단계
    를 포함하는 동작 방법.
KR1020097018517A 2007-02-07 2008-02-07 시스템 관리를 위한 mlc 선택된 멀티-프로그램 KR20090117787A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/672,076 US20080189473A1 (en) 2007-02-07 2007-02-07 Mlc selected multi-program for system management
US11/672,076 2007-02-07

Publications (1)

Publication Number Publication Date
KR20090117787A true KR20090117787A (ko) 2009-11-12

Family

ID=39591025

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020097018517A KR20090117787A (ko) 2007-02-07 2008-02-07 시스템 관리를 위한 mlc 선택된 멀티-프로그램

Country Status (5)

Country Link
US (1) US20080189473A1 (ko)
KR (1) KR20090117787A (ko)
CN (1) CN101641679A (ko)
TW (1) TWI395223B (ko)
WO (1) WO2008097617A2 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8924628B2 (en) 2010-04-20 2014-12-30 Samsung Electronics Co., Ltd. Memory system and operating method thereof

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100771882B1 (ko) * 2006-09-06 2007-11-01 삼성전자주식회사 멀티-레벨 불휘발성 메모리 장치의 프로그램 방법
KR100771883B1 (ko) * 2006-09-06 2007-11-01 삼성전자주식회사 멀티-레벨 불휘발성 메모리 장치 및 프로그램 방법
KR100882740B1 (ko) * 2007-02-22 2009-02-09 삼성전자주식회사 맵 히스토리 기반의 불휘발성 메모리의 매핑 방법 및 저장장치
US8583857B2 (en) * 2007-08-20 2013-11-12 Marvell World Trade Ltd. Method and system for object-oriented data storage
US8082387B2 (en) 2007-10-29 2011-12-20 Micron Technology, Inc. Methods, systems, and devices for management of a memory system
TWI397071B (zh) * 2008-12-31 2013-05-21 A Data Technology Co Ltd 記憶體儲存裝置及其控制方法
US9177638B2 (en) * 2012-11-13 2015-11-03 Western Digital Technologies, Inc. Methods and devices for avoiding lower page corruption in data storage devices
US9575886B2 (en) 2013-01-29 2017-02-21 Marvell World Trade Ltd. Methods and apparatus for storing data to a solid state storage device based on data classification
US9384839B2 (en) * 2013-03-07 2016-07-05 Sandisk Technologies Llc Write sequence providing write abort protection
KR20140124547A (ko) * 2013-04-17 2014-10-27 에스케이하이닉스 주식회사 메모리 장치 및 이를 포함하는 메모리 시스템
KR20150138528A (ko) * 2014-05-29 2015-12-10 삼성전자주식회사 플래시 메모리를 기반으로 하는 스토리지 시스템 및 그것의 동작 방법
US9535607B2 (en) * 2015-02-12 2017-01-03 SK Hynix Inc. Semiconductor system performing status read for semiconductor device and operating method thereof
KR20170001237A (ko) * 2015-06-26 2017-01-04 에스케이하이닉스 주식회사 상태 읽기를 수행하는 메모리 시스템 및 그것의 동작 방법
KR102333220B1 (ko) 2015-09-24 2021-12-01 삼성전자주식회사 불휘발성 메모리 시스템의 동작 방법
US10268385B2 (en) * 2016-05-03 2019-04-23 SK Hynix Inc. Grouped trim bitmap
CN113220602B (zh) * 2018-10-09 2023-08-08 长江存储科技有限责任公司 一种闪存器的数据写入方法及闪存器
US11635906B2 (en) * 2020-08-04 2023-04-25 Micron Technology, Inc. Acceleration of data queries in memory

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4064558A (en) * 1976-10-22 1977-12-20 General Electric Company Method and apparatus for randomizing memory site usage
US5845313A (en) * 1995-07-31 1998-12-01 Lexar Direct logical block addressing flash memory mass storage architecture
JPH11203192A (ja) * 1998-01-16 1999-07-30 Sony Corp 並列プロセッサおよび演算処理方法
JP4085478B2 (ja) * 1998-07-28 2008-05-14 ソニー株式会社 記憶媒体及び電子機器システム
EP0987893A1 (en) * 1998-09-16 2000-03-22 CANAL+ Société Anonyme Management of data in a receiver/decoder
US6760805B2 (en) * 2001-09-05 2004-07-06 M-Systems Flash Disk Pioneers Ltd. Flash management system for large page size
US6988175B2 (en) * 2003-06-30 2006-01-17 M-Systems Flash Disk Pioneers Ltd. Flash memory management method that is resistant to data corruption by power loss
US7058784B2 (en) * 2003-07-04 2006-06-06 Solid State System Co., Ltd. Method for managing access operation on nonvolatile memory and block structure thereof
US7493457B2 (en) * 2004-11-08 2009-02-17 Sandisk Il. Ltd States encoding in multi-bit flash cells for optimizing error rate
US7120051B2 (en) * 2004-12-14 2006-10-10 Sandisk Corporation Pipelined programming of non-volatile memories using early data
US7412560B2 (en) * 2004-12-16 2008-08-12 Sandisk Corporation Non-volatile memory and method with multi-stream updating
US7221592B2 (en) * 2005-02-25 2007-05-22 Micron Technology, Inc. Multiple level programming in a non-volatile memory device
US7275140B2 (en) * 2005-05-12 2007-09-25 Sandisk Il Ltd. Flash memory management method that is resistant to data corruption by power loss
US8244179B2 (en) * 2005-05-12 2012-08-14 Robin Dua Wireless inter-device data processing configured through inter-device transmitted data
US7558906B2 (en) * 2005-08-03 2009-07-07 Sandisk Corporation Methods of managing blocks in nonvolatile memory
JP4418439B2 (ja) * 2006-03-07 2010-02-17 パナソニック株式会社 不揮発性記憶装置およびそのデータ書込み方法
US7953954B2 (en) * 2007-01-26 2011-05-31 Micron Technology, Inc. Flash storage partial page caching

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8924628B2 (en) 2010-04-20 2014-12-30 Samsung Electronics Co., Ltd. Memory system and operating method thereof

Also Published As

Publication number Publication date
TW200847170A (en) 2008-12-01
TWI395223B (zh) 2013-05-01
CN101641679A (zh) 2010-02-03
WO2008097617A3 (en) 2009-03-19
US20080189473A1 (en) 2008-08-07
WO2008097617A2 (en) 2008-08-14

Similar Documents

Publication Publication Date Title
US8862860B2 (en) Flash storage partial page caching
KR20090117787A (ko) 시스템 관리를 위한 mlc 선택된 멀티-프로그램
US10705736B2 (en) Flash memory system
US8040744B2 (en) Spare block management of non-volatile memories
US8832360B2 (en) Solid state storage device controller with expansion mode
JP3938309B2 (ja) リードディスターブを緩和したフラッシュメモリ
US9244631B2 (en) Lower page only host burst writes
US20050286297A1 (en) Multiple level cell memory device with single bit per cell, re-mappable memory block
JP2008123330A (ja) 不揮発性半導体記憶装置
JP2011522350A (ja) ハイブリッドメモリ管理
US9384839B2 (en) Write sequence providing write abort protection
JP5166118B2 (ja) 半導体メモリの制御方法
US11315650B2 (en) Memory system, memory controller, and method of operating memory system
US20210365382A1 (en) Memory system, memory controller, and operation method thereof
JP2021026448A (ja) 記憶部システム、記憶部制御装置および記憶部制御方法
US9740602B2 (en) Memory orprating method and memory device using the same
JP3934659B1 (ja) メモリコントローラ及びフラッシュメモリシステム
KR20210028335A (ko) 메모리 시스템, 메모리 컨트롤러 및 동작 방법
US11709610B2 (en) Memory system, memory controller and operating method
US20240143192A1 (en) Memory system and operating method thereof
CN117636980A (zh) 部分块读取电压偏移
KR20230060449A (ko) 스토리지 장치 및 컨트롤러의 동작 방법

Legal Events

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