KR20130041341A - 스트라이프-기반 비-휘발성 멀티레벨 메모리 동작 - Google Patents

스트라이프-기반 비-휘발성 멀티레벨 메모리 동작 Download PDF

Info

Publication number
KR20130041341A
KR20130041341A KR1020137006627A KR20137006627A KR20130041341A KR 20130041341 A KR20130041341 A KR 20130041341A KR 1020137006627 A KR1020137006627 A KR 1020137006627A KR 20137006627 A KR20137006627 A KR 20137006627A KR 20130041341 A KR20130041341 A KR 20130041341A
Authority
KR
South Korea
Prior art keywords
pages
memory
stripes
stripe
programming
Prior art date
Application number
KR1020137006627A
Other languages
English (en)
Other versions
KR101405741B1 (ko
Inventor
케빈 알. 브랜드트
Original Assignee
마이크론 테크놀로지, 인크.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 마이크론 테크놀로지, 인크. filed Critical 마이크론 테크놀로지, 인크.
Publication of KR20130041341A publication Critical patent/KR20130041341A/ko
Application granted granted Critical
Publication of KR101405741B1 publication Critical patent/KR101405741B1/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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1072Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in multilevel memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • 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
    • 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

Landscapes

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

Abstract

스트라이프-기반 비-휘발성 멀티레벨 메모리 동작은 다수의 하위 스트라이프 각각에서 정보의 다수의 하위 페이지를 프로그래밍하는 것을 포함하는 상기 다수의 하위 스트라이프를 기록하는 것을 포함한다. 상위 스트라이프 내 정보의 다수의 상위 페이지를 프로그래밍하는 것을 포함하는 상위 스트라이프가 기록될 수 있다. 다수의 상위 페이지 각각은 다수의 하위 페이지의 각각 하나에 대응할 수 있다. 다수의 상위 페이지에 대응하는 다수의 하위 페이지 중 각각의 대응하는 하나는 다수의 하위 스트라이프의 서로 다른 하위 스트라이프 내에서 프로그래밍될 수 있다.

Description

스트라이프-기반 비-휘발성 멀티레벨 메모리 동작{STRIPE-BASED NON-VOLATILE MULTILEVEL MEMORY OPERATION}
기술 분야
본 발명은 일반적으로 반도체 메모리 장치, 방법, 및 시스템에 관한 것이며, 더욱 상세하게는 스트라이프-기반 비-휘발성 멀티레벨 메모리 동작에 관한 것이다.
배경
메모리 장치는 전형적으로 컴퓨터 또는 또 다른 전자 장치 내에서 내부, 반도체, 집적 회로로서 제공된다. 휘발성 및 비-휘발성 메모리를 비롯하여 많은 서로 다른 종류의 메모리가 존재한다. 휘발성 메모리는 자신의 정보를 유지하기 위한 전력을 요구할 수 있으며 랜덤 액세스 메모리(RAM), 동적 랜덤 액세스 메모리(DRAM), 및 동기식 동적 랜덤 액세스 메모리(SDRAM) 등을 포함한다. 비-휘발성 메모리는 전력공급이 되지 않을 때 저장된 정보를 존속시킴으로써 영구적인 정보를 제공할 수 있으며 NAND 플래시 메모리, NOR 플래시 메모리, 읽기 전용 메모리(ROM), 전기적으로 소거가능하고 기록가능한 ROM(Electrically Erasable Programmable ROM, EEPROM), 소거가능하고 기록가능한 ROM(Erasable Programmable ROM, EPROM), 상전이 랜덤 액세스 메모리(PCRAM), 저항성 랜덤 액세스 메모리(RRAM), 및 자기 랜덤 액세스 메모리(MRAM), 예컨대 스핀 토크 전달(spin torque transfer) 랜덤 액세스 메모리(STT RAM) 등을 포함할 수 있다.
메모리 장치는 함께 결합되어 솔리드 스테이트 드라이브(SSD)를 형성할 수 있다. 솔리드 스테이트 드라이브는, 다른 여러 종류의 비-휘발성 및 휘발성 메모리 중에서, 비-휘발성 메모리, 예컨대 NAND 플래시 메모리 및 NOR 플래시 메모리를 포함할 수 있으며, 및/또는 휘발성 메모리, 예컨대, DRAM 및 SRAM을 포함할 수 있다. 질화물 층 내 전하 트랩 내에 정보를 저장하는 반도체-산화물-질화물-산화물-반도체 및 금속-산화물-질화물-산화물-반도체 커패시터 구조체를 사용하는 플로팅 게이트 플래시 장치 및 전하 트랩 플래시(charge trap flash, CTF) 장치를 포함하는 플래시 메모리 장치가 광범위한 전자 부품용 비-휘발성 메모리로서 사용될 수 있다. 플래시 메모리 장치는 전형적으로 높은 메모리 밀도, 높은 신뢰도, 및 낮은 전력 소모를 가능하게 하는 단일-트랜지스터 메모리 셀(one-transistor memory cell)을 사용한다.
SSD는 컴퓨터에 대한 주된 저장 장치로서 하드 디스크 드라이브를 교체하기 위하여 사용될 수 있는데, 왜냐하면 솔리드 스테이트 드라이브가 성능, 크기, 중량, 견고성, 작동 온도 범위, 및 전력 소모에서 하드 드라이브에 비하여 장점을 가질 수 있기 때문이다. 예를 들어, SSD는 이동부(moving part)가 없기 때문에 자기 디스크 드라이브에 비하여 우수한 성능을 가질 수 있으며, 이는 검색 시간, 대기시간(latency), 및 또 다른 자기 디스크 드라이브와 관련된 전기-기계적 지연을 회피한다. SSD 제조자는 내부 배터리 공급원을 사용하지 않아서 이에 따라 드라이브가 더욱 유용하고 소형일 수 있도록 하는 플래시 SSD를 생성하기 위하여 비-휘발성 플래시 메모리를 사용할 수 있다.
SSD는 다수의 메모리 장치, 예컨대 다수의 메모리 칩을 포함할 수 있다(본 명세서에서 사용되듯이, 어떤 것의 "다수"는 이러한 것의 하나 이상을 의미할 수 있는데, 예컨대 다수의 메모리 장치는 하나 이상의 메모리 장치를 의미할 수 있다). 해당 분야의 통상의 기술자가 이해하듯이, 메모리 칩은 다수의 다이 및/또는 로직 유닛(LUN)을 포함할 수 있다. 각각의 다이는 다수의 메모리 어레이 및 그 상부의 주변 회로를 포함할 수 있다. 메모리 어레이는 다수의 물리 페이지(physical page)로 조직화된 다수의 메모리 셀(memory cell)을 포함할 수 있으며, 물리 페이지는 다수의 블록으로 조직화될 수 있다.
독립 디스크의 잉여 어레이(redundant array of independent disks, RAID)는 다중 메모리 장치 중에서 정보를 분할하고 및/또는 복제하는 컴퓨터 정보 저장 방법에 대한 상위 용어이다. RAID 어레이 내 다중 메모리 장치는 컴퓨터의 사용자 및 운영 체제에 단일 메모리 장치, 예컨대 디스크로서 제시될 수 있다. 역사적으로, RAID는 다중 하드 디스크 드라이브(HDD)와 함께 작동된다.
도면의 간단한 설명
도 1은 본 발명의 하나 이상의 구체 예에 따르는 적어도 하나의 메모리 시스템을 포함하는 컴퓨팅 시스템의 기능 블록 다이어그램이다.
도 2는 본 발명의 하나 이상의 구체 예에 따르는 메모리 장치의 일부분의 다이어그램을 도시한다.
도 3은 본 발명의 하나 이상의 구체 예에 따르는 스트라이프-베이스(stripe-basis) 상에서 작동되는 저장 볼륨의 블록 다이어그램을 도시한다.
도 4는 본 발명의 하나 이상의 구체 예에 따라, 소거 상태 및 다수의 하위 페이지, 상위 페이지, 및 스크래치 페이지 데이터 상태에 대한 예시적인 2-비트(bit) 메모리 셀과 관련된 문턱 전압 분포의 다이어그램을 도시한다.
도 5A는 본 발명의 하나 이상의 구체 예에 따라, 다수의 채널을 통한 하위 페이지 및 상위 페이지 프로그래밍을 다수의 하위 스트라이프 및 상위 스트라이프와 연관시키는 표를 도시한다.
도 5B는 본 발명의 하나 이상의 구체 예에 따라, 다수의 채널을 통한 하위 페이지 및 상위 페이지 프로그래밍을 다수의 하위 스트라이프 및 상위 스트라이프와 연관시키는 표를 도시한다.
도 5C는 본 발명의 하나 이상의 구체 예에 따라, 다수의 채널을 통한 하위 페이지 및 상위 페이지 프로그래밍을 다수의 하위 스크래치 스트라이프, 상위 스크래치 스트라이프, 하위 스트라이프 및 상위 스트라이프와 연관시키는 표를 도시한다.
상세한 설명
본 발명은 비-휘발성 멀티레벨 스트라이프-기반 메모리 동작 방법 및 이를 위한 장치를 포함한다. 한 가지 방법 실시예는 다수의 하위 스트라이프 각각에서 정보의 다수의 하위 페이지를 프로그래밍하는 것을 포함하는 상기 다수의 하위 스트라이프를 기록하는 단계를 포함한다. 상위 스트라이프 내 정보의 다수의 상위 페이지를 프로그래밍하는 것을 포함하는 상위 스트라이프가 기록될 수 있다. 다수의 상위 페이지 각각은 다수의 하위 페이지의 각각 하나에 대응할 수 있다. 다수의 상위 페이지에 대응하는 다수의 하위 페이지 중 각각의 대응하는 하나는 다수의 하위 스트라이프의 서로 다른 하위 스트라이프 내에서 프로그래밍될 수 있다.
본 발명의 이하의 상세한 설명에서, 본 발명의 일부를 형성하는 첨부된 도면을 참조하며, 도면에서 본 발명의 하나 이상의 구체 예가 어떻게 실시될 수 있는가가 예시로서 제시된다. 이러한 구체 예는 해당 분야의 통상의 기술자가 본 발명의 구체 예를 실시하도록 충분히 상세하게 기재되며, 또 다른 구체 예가 사용될 수 있으며 공정, 전기, 및/또는 구조적 변형이 본 발명의 범위를 벗어나지 않으면서 이루어질 수 있음이 이해될 것이다. 본 명세서에서 사용되듯이, 표시 "N," "M," "P," "R," 및 "S"는 특히 도면의 참조 부호와 관련하여, 지정된 다수의 특정 특징이 본 발명의 하나 이상의 구체 예에 포함될 수 있음을 지시한다.
본 명세서의 도면은 번호 부여 방식을 따르는데 여기서 첫 번째 숫자 또는 숫자들은 도면 번호에 대응하며 나머지 숫자는 도면의 요소 또는 성분을 정의한다. 서로 다른 도면 사이에서 유사한 요소 또는 성분은 유사한 숫자를 사용하여 정의될 수 있다. 예를 들어, 108은 도 1의 참조 요소 "08"일 수 있으며, 유사 요소가 도 2에서 208로 부여될 수 있다. 이해되듯이, 본 명세서의 여러 구체 예에서 제시된 요소들은 본 발명의 다수의 추가 구체 예를 제공하기 위하여 추가, 교환, 및/또는 제거될 수 있다. 또한, 이해되듯이, 도면에 제공된 요소의 비율 및 상대 규모는 본 발명의 구체 예를 도시하기 위한 의도이며, 제한적 의미로 간주되어서는 안 된다.
도 1은 본 발명의 하나 이상의 구체 예에 따르는 적어도 하나의 메모리 시스템(104)을 포함하는 컴퓨팅 시스템(100)의 기능 블록 다이어그램이다. 도 1에 도시된 구체 예에서, 메모리 시스템(104), 예컨대, 솔리드 스테이트 드라이브(SSD)는 호스트 인터페이스(106), 메모리 제어기(108), 예컨대, 메모리 제어 회로 및/또는 메모리 제어 펌웨어, 및 하나 이상의 메모리 장치(110-1, . . ., 110-N), 예컨대, 비-휘발성 멀티레벨 메모리 셀을 포함하는 솔리드 스테이트 메모리 장치를 포함할 수 있다. 메모리 장치(110-1, . . ., 110-N)는 메모리 시스템을 위한 저장 볼륨에게 예컨대, 메모리 장치에 포맷 된 파일 시스템을 제공할 수 있다. 하나 이상의 구체 예에서, 메모리 제어기(108)는 물리적 호스트 인터페이스(106) 및 메모리 장치(110-1, . . ., 110-N)를 포함하는 인쇄 회로 기판(printed circuit board)에 연결된 주문형 집적 회로(application specific integrated circuit, ASIC)일 수 있다.
도 1에 도시된 바와 같이, 메모리 제어기(108)는 호스트 인터페이스(106)에 연결되고 복수의 채널에 의해 메모리 장치(110-1, . . ., 110-N)에 연결될 수 있다. 메모리 제어기(108)는 해당 분야의 통상의 기술자에 의해 이해되듯이 또 다른 메모리 동작에 부가하여, 본 명세서에 기재된 동작을 수행하도록 구성될 수 있다. 호스트 인터페이스(106)는 메모리 시스템(104)과 또 다른 장치 예컨대 호스트 시스템(102) 사이에서 정보를 전달하기 위하여 사용될 수 있다. 호스트 시스템(102)은 메모리 액세스 장치, 예컨대, 프로세서를 포함할 수 있다. 해당 분야의 통상의 기술자는 "프로세서"가 하나 이상의 프로세서, 예컨대 병렬 처리 시스템, 다수의 코프로세서 등을 의미한다는 것을 이해할 것이다. 호스트 시스템의 예는 랩톱 컴퓨터, 퍼스널 컴퓨터, 디지털 카메라, 디지털 레코딩 및 플레이백 장치, 휴대 전화, PDA, 메모리 카드 리더, 인터페이스 허브, 등을 포함한다. 하나 이상의 구체 예에 대하여, 호스트 인터페이스(106)는 표준 인터페이스 형태일 수 있다. 예를 들어, 메모리 시스템(104)이 컴퓨팅 시스템(100) 내 정보 저장을 위하여 사용되는 경우, 물리적 호스트 인터페이스(106)는 또 다른 커넥터 및 인터페이스 중에서 직렬 고급 기술 부착(serial advanced technology attachment, SATA), 주변 장치 연결 익스프레스(peripheral component interconnect express, PCIe), 또는 범용 직렬 버스(universal serial bus, USB)일 수 있다. 그렇지만, 일반적으로, 호스트 인터페이스(106)는 호스트 인터페이스(106)에 대한 호환 수용기를 갖는 호스트 시스템(102)과 메모리 시스템(104) 사이에서 제어, 어드레스, 정보, 및 또 다른 신호를 전송하기 위한 인터페이스를 제공할 수 있다.
메모리 제어기(108)는 호스트 인터페이스(106)에 연결되거나 및/또는 이를 포함하는 호스트 인터페이스 회로를 포함할 수 있다. 호스트 인터페이스 회로는 다수의 계층, 예컨대, 물리 계층, 링크 계층, 및/또는 전송 계층을 통하여, 호스트 시스템(102)과 인터페이스 될 수 있다. 해당 분야의 통상의 기술자는 특정 호스트 인터페이스를 위한 계층의 수가 직렬 고급 기술 부착(serial advanced technology attachment, SATA), 주변 장치 연결 익스프레스(peripheral component interconnect express, PCIe), 범용 직렬 버스(universal serial bus, USB), 등과 같은 인터페이스 표준에 의해 정의될 수 있음을 이해할 것이다. 본 명세서에서 사용되듯이, 전송 계층은 적어도 SATA 표준의 부분으로서의 전송 계층 및/또는 PCIe 표준의 부분으로서의 트랜잭션 계층을 지시할 수 있다. 해당 분야의 통상의 기술자는 SATA 표준에 따르는 전송 계층이 PCIe 표준에 따르는 트랜잭션 계층과 유사할 수 있다는 것을 이해할 것이다. 구체 예는 특정 표준에 한정되지 않는다.
일반적으로, 호스트 인터페이스 회로는 호스트 시스템, 예컨대, PCIe 버스로부터 수신된 코맨드 패킷을 호스트-메모리 번역 응답을 요청 호스트로의 전송을 위한 호스트 시스템 코맨드로 전환시키기 위한 코맨드 명령어(command instruction)로 전환시킬 수 있다. 예를 들어, 호스트 인터페이스 회로는 PCIe 기반 트랜잭션 계층 패킷으로부터 SATA 코맨드 패킷을 구성할 수 있다. 호스트 인터페이스 회로는 호스트 시스템(102)으로부터 복수의 어드레스와 관련된 정보를 수신하도록 구성될 수 있다.
메모리 제어기(108)는 호스트 어드레스를 메모리 어드레스, 예컨대 수신된 코맨드 예를 들어 판독 및/또는 기록 코맨드와 관련된 어드레스로 번역하도록 구성된 호스트-메모리 번역 회로를 포함할 수 있다. 호스트-메모리 번역 회로는 예를 들어 호스트 섹터 판독 및 기록 동작을 메모리 장치(110-1, . . ., 110-N)의 특정 부분으로 유도되는 코맨드로 전환시킨다. 각각의 호스트 동작은 단일 또는 다중-섹터 메모리 장치(110-1, . . ., 110-N) 동작으로 번역될 수 있다. 예를 들어, 호스트 판독 및 기록 코맨드는 메모리 장치(110-1, . . ., 110-N) 판독 및 기록 코맨드로 번역될 수 있다. 비록 메모리 제어기(108)가 본 명세서에 기재되지만, 본 발명의 하나 이상의 구체 예는 메모리 제어 펌웨어를 통하여 실시될 수 있다. 따라서, 본 명세서에서 사용되듯이, "메모리 제어기"는 메모리 제어 회로 및/또는 메모리 제어 펌웨어를 포함하는 것으로 정의된다.
호스트-메모리 번역 회로는 제1 및/또는 제2 레벨 오류 검출 회로를 포함할 수 있다. 비록 오류 검출 회로로 기재되지만, 오류 검출 회로는 또한 오류 정정을 수행할 수 있다. 제1 레벨 오류 검출 회로는 해당 분야의 통상의 기술자에 의해 이해되듯이, 메모리 장치(110-1, . . ., 110-N)에 저장된 정보와 관련된 오류를 검출 및/또는 정정하기 위하여 BCH 오류 정정과 같은 오류 정정을 적용하도록 구성될 수 있다. 예를 들어, 제1 레벨 오류 검출 회로는 1080-비트 코드 워드에 대하여 29비트의 오류 정정을 제공할 수 있다. 제2 레벨 오류 검출 회로는 예컨대 정정가능 오류의 임계량보다 더 많이 존재하는지 여부를 결정함으로써, 제1 레벨 오류 검출, 예컨대, 정정불가능 오류 정정 코드(uncorrectable error correction code, UECC) 오류에 의해 정정가능하지 않은 어류를 검출할 수 있다. 여기서 더욱 상세하게 기재되듯이, 본 발명의 하나 이상의 구체 예는 패리티 정보를 사용하는 하나 이상의 하위 스트라이프를 재생성함으로써 상위 스트라이프의 기록 동안 발생된 UECC 오류의 정정을 제공한다. 제2 레벨 오류 검출 회로는 RAID 배타적 논리합(exclusive or, XOR) 회로를 포함할 수 있다. RAID XOR 회로는 호스트 인터페이스 회로로부터 수신된 정보에 기초하여 패리티 정보를 연산할 수 있다. 다수의 메모리 장치(110-1, . . ., 110-N)에 기록된 각각의 비트에 대하여, 패리티 비트가 RAID XOR 회로에 의해 연산되고 메모리 장치(110-1, . . ., 110-N) 중 특정한 하나에 기록될 수 있다.
본 발명의 하나 이상의 구체 예에 따르면, 기록 정보(write information)는 복수의 채널을 통하여 RAID 동작에서 다수의 솔리드 스테이트 메모리 장치로 스트라이프될 수 있다. 해당 분야의 통상의 기술자가 이해하듯이, 스트라이핑은 정보를 분할하여 이에 의해 정보가 복수의 채널을 통하여 예컨대 하나 이상의 장치에 저장되도록 하는 것을 포함한다. 분할된 정보를 저장하는 하나 이상의 장치의 부분을 집합적으로 스트라이프(stripe)라 칭한다. 이와 반대로, 미러링(mirroring)은 정보의 복제 카피를 하나 이상의 장치에 저장하는 것을 포함할 수 있다.
메모리 제어기(108)는 LBA 테이블 및/또는 블록 테이블을 유지할 수 있다. LBA 테이블은 페이지들의 물리 페이지 어드레스를 하나 이상의 메모리 장치(110-1, . . ., 110-N)에 저장하고 대응하는 로직 어드레스를 포함할 수 있다. LBA 테이블은 관련 코맨드, 예컨대, 관련 SATA 코맨드에 포함된 LBA에 의해 색인될 수 있다. LBA 테이블은 대응하는 정보가 저장될 수 있는 로직 블록 어드레스에 대응하는 물리 페이지 어드레스를 룩업(look-up)하기 위하여 사용될 수 있다. 블록 테이블은 소거가능 블록에 대한 정보를 하나 이상의 메모리 장치(110-1, . . ., 110-N)에 저장할 수 있다. 블록 테이블에 저장된 정보는 유효 페이지 정보, 소거 횟수(erase count), 및 또 다른 상태 정보를 포함할 수 있다. 블록 테이블로부터 접속된 정보는 물리 블록 어드레스에 의해 색인될 수 있다.
메모리 제어기(108)는 또 다른 동작 중에서 정보를 판독, 기록, 및 소거하기 위하여 메모리 장치(110-1, . . ., 110-N)와 소통할 수 있다. 비록 메모리 장치(110-1, . . ., 110-N)가 집합적인 메모리 제어기(108)에 연결된 것으로 도시되나, 본 발명의 하나 이상의 구체 예는 각각의 메모리 채널에 대한 개별적인 비-휘발성 메모리 제어기를 포함할 수 있다. 메모리 장치(110-1, . . ., 110-N)는 메모리 셀, 예컨대, 비-휘발성 메모리 셀의 하나 이상의 어레이를 포함할 수 있다. 어레이는 예를 들어 NAND 아키텍처를 갖는 플래시 어레이일 수 있다. NAND 아키텍처에서, "열(row)"의 메모리 셀의 제어 게이트는 액세스, 예컨대, 워드, 라인과 연결될 수 있는 한편, 메모리 셀은 선택 게이트 소스 트랜지스터와 선택 게이트 드레인 트랜지스터 사이의 "스트링(string)"에서 직렬로 소스에서 드레인으로 연결될 수 있다. 스트링은 선택 게이트 드레인 트랜지스터에 의해 데이터 라인, 예컨대, 비트 라인에 연결될 수 있다. 용어 "열(row)" 및 "스트링"의 사용은 메모리 셀의 선형 또는 직교 배열을 의미하는 것은 아니다. 해당 분야의 통상의 기술자에 의해 이해되듯이, 메모리 셀의 비트 라인 및 소스 라인에 대한 연결 방식은 어레이가 NAND 아키텍처, NOR 아키텍처, 또는 일부 또 다른 메모리 어레이 아키텍처인지 여부에 의존한다.
메모리 장치(110-1, . . ., 110-N)는 그룹핑될 수 있는 다수의 메모리 셀을 포함할 수 있다. 본 명세서에서 사용되듯이, 그룹은 하나 이상의 메모리 셀, 예컨대 페이지, 블록, 플레인, 다이, 전체 어레이, 또는 또 다른 메모리 셀의 그룹을 포함할 수 있다. 예를 들어, 일부 메모리 어레이는 메모리 셀의 블록을 구성하는 메모리 셀의 다수의 페이지를 포함할 수 있다. 다수의 블록이 메모리 셀의 플레인(plane)에 포함될 수 있다. 메모리 셀의 다수의 플레인이 다이(die)에 포함될 수 있다. 예로서, 128 GB 메모리 장치는 페이지 당 4314 바이트(byte)의 정보, 예컨대, 4096 바이트의 기록 정보와 218 바이트의 오버헤드 정보의 합, 블록 당 128 페이지, 플레인 당 2048 블록, 및 장치 당 16 플레인을 포함할 수 있다.
도 1의 구체 예는 본 발명의 구체 예를 불명확하게 하지 않기 위해 도시되지 않은 추가 회로를 포함할 수 있다. 예를 들어, 메모리 시스템(104)은 I/O 회로를 통하여 I/O 연결에 의해 제공되는 어드레스 신호를 래치(latch)하기 위한 어드레스 회로를 포함할 수 있다. 어드레스 신호는 메모리 장치(110-1, . . ., 110-N)에 접속하기 위하여 열 디코더(row decoder) 및 칼럼 디코더(column decoder)에 의해 수신 및 디코딩될 수 있다. 어드레스 입력 연결부의 수가 메모리 장치(110-1, . . ., 110-N)의 밀도 및 아키덱처에 의존할 수 있음이 해당 분야의 통상의 기술자에 의해 이해될 것이다.
도 2는 본 발명의 하나 이상의 구체 예에 따르는 메모리 장치(210)의 일부분의 다이어그램을 도시한다. 비록 도 2에 도시되지 않았으나, 해당 분야의 통상의 기술자는 메모리 장치(210)가 이의 작동에 관련된 여러 주변 회로를 따라 반도체 다이 상에 위치될 수 있음을 이해할 것이다. 메모리 장치(210)는 메모리 셀의 하나 이상의 어레이를 포함할 수 있다.
도 2에 도시된 바와 같이, 메모리 장치(210)는 메모리 셀의 다수의 물리 블록{260-1 (블록 1), 260-2 (블록 2), . . ., 260-M (블록 M)}을 포함할 수 있다. 도 2에 제시된 구체 예에서, 표시 "M"은 메모리 장치(210)가 다수의 물리 블록을 포함할 수 있음을 나타내기 위하여 사용된다. 실시예로서, 메모리 장치(210) 내 물리 블록의 수는 128 블록, 4,096 블록, 또는 32,768 블록일 수 있으나, 구체 예는 메모리 장치 내 특정 수 또는 다수의 물리 블록에 제한되지 않는다. 도 2에 도시된 구체 예에서, 메모리 장치(210)는 예를 들어 NAND 플래시 메모리 장치(210)일 수 있으며, 이에 따라, 예를 들어, 각각의 물리 블록(260-1, 260-2, . . ., 260-M) 내 메모리 셀이 유닛으로서 함께 소거될 수 있는데, 예컨대, 각각의 물리 블록 내 소자(cell)는 실질적으로 동시적인 방식으로 소거될 수 있다. 예를 들어, 각각의 물리 블록 내 소자(cell)는 단일 소거 동작에서 함께 소거될 수 있다.
비록 도 2에서 구체적으로 지시되지는 않았으나, 다수의 블록이 스크래치 블록으로서 사용될 수 있다. 본 명세서에 기재되듯이, 멀티레벨 메모리 셀을 프로그래밍하는 것은 예컨대, 메모리 셀을 중간 상태(intermediate state)로 프로그래밍하기 위한 하나 이상의 하위 페이지 프로그래밍 동작, 및 예컨대, 메모리 셀을 최종 상태(final state)로 프로그래밍하기 위한 상위 페이지 프로그래밍 동작을 포함할 수 있다. 스크래치 블록은 하위 스트라이프 내 정보의 하위 페이지에 대응하는 정보 및 상위 스트라이프 내 정보의 상위 페이지에 대응하는 정보를 저장하기에 유용할 수 있다. 즉, 정보의 특정 블록에 대하여, 2개의 스크래치 블록이 사용될 수 있다(하나의 저장 정보는 특정 블록의 하위 페이지에 대응하고, 하나의 저장 정보는 특정 블록의 상위 페이지에 대응함). 그렇지만, 구체 예는 단지 하위 페이지 또는 상위 페이지에 대응하는 정보를 저장하는 스크래치 블록에 제한되는 것은 아닌데, 왜냐하면 스크래치 블록은 일부 하위 페이지 및 일부 상위 페이지에 대응하는 정보를 저장할 수 있기 때문이다. 스크래치 블록 대 특정 블록의 2:1 비율이 스크래치 블록의 단지 하위 페이지가 여기서 더욱 상세하게 기재되듯이 프로그래밍되는 양상으로부터 유도될 수 있다. 스크래치 블록 예컨대 특정 블록의 하위 페이지에 대응하는 정보를 저장하는 제1 스크래치 블록과 관련된 하나 이상의 어드레스가 예컨대 특정 블록의 상위 페이지에 대응하는 정보를 저장하는 제2 스크래치 블록에 연결될 수 있도록, 블록 테이블이 업데이트될 수 있다. 블록 테이블은, 대응하는 정보가 특정 블록에 프로그래밍된 이후 스크래치 블록이 소거될 수 있다는 것을 나타내기 위하여 사용될 수 있다. 스크래치 블록 및 관련 동작이 도 4-5C와 관련하여 더욱 상세하게 기재된다.
표시 "R"은 물리 블록(예컨대, 260-1, 260-2, . . ., 260-M)이 다수의 열(row)을 포함할 수 있음을 나타내기 위하여 사용된다. 일부 구체 예에서, 각각의 물리 블록 내 열(row), 예컨대, 워드 라인의 수는 32일 수 있으나, 구체 예는 물리 블록 당 열(row)(270-1, 270-2, . . ., 270-R)의 특정 수에 제한되지 않는다. 해당 분야의 통상의 기술자가 이해하듯이, 각각의 열(270-1, 270-2, . . ., 270-R)은 하나 이상의 물리 페이지, 예컨대, 짝수 페이지 및 홀수 페이지를 포함할 수 있다. 물리 페이지는 함께 기록 및/또는 판독되거나 또는 메모리 셀의 기능 그룹으로서 예컨대 다수의 소자(cell)를 기록 및/또는 판독하는 유닛을 의미한다. 따라서, 짝수 페이지 및 홀수 페이지는 개별적인 기록 및/또는 판독 동작에 의해 기록 및/또는 판독될 수 있다.
멀티레벨 셀(MLC)을 포함하는 구체 예에서, 물리 페이지는 상위 페이지 및 하나 이상의 하위 페이지로 로직하게 분할될 수 있다. 예를 들어, 2비트의 정보를 저장하는 메모리 셀은 1비트는 정보의 상위 페이지에 그리고 1비트는 정보의 하위 페이지에 할당할 수 있다. 따라서 메모리 셀은 "01"의 데이터 상태로 프로그래밍될 수 있으며 여기서 "0"은 하위 페이지에 대응하며 "1"은 상위 페이지에 대응한다. 이러한 메모리 셀을 프로그래밍하는 것은 하위 페이지 프로그래밍과 상위 페이지 프로그래밍을 포함할 수 있다. 하위 페이지 프로그래밍은 메모리 셀을 중간 상태로 프로그래밍하는 것을 포함할 수 있으며 상위 페이지 프로그래밍은 메모리 셀을 최종 상태로 프로그래밍하는 것을 포함할 수 있다. 동일한 것이 도 4와 관련하여 더욱 상세하게 기재된다. 로직 상위 페이지 및 로직 하위 페이지는 동일 물리 페이지의 일부일 수 있다. 도시의 용이함을 위하여, 각각의 열(270-1, 270-2, . . ., 270-R)은 도 2에서 단지 하나의 물리 및 로직 페이지를 포함하지만, 구체 예는 여기에 제한되지 않는다.
본 발명의 하나 이상의 구체 예에서, 그리고 도 2에 도시된 바와 같이, 페이지는 다수의 섹터(280-1, 280-2, . . ., 280-S) 내에 정보를 저장할 수 있다. 표시 "S"는 페이지가 다수의 섹터를 포함할 수 있음을 나타내기 위해 사용된다. 정보는 시스템 및/또는 사용자 데이터를 포함할 수 있다. 각각의 섹터(280-1, 280-2, . . ., 280-S)는 시스템 및/또는 사용자 데이터를 저장할 수 있으며 오버헤드 정보, 예컨대 오류 정정 코드(ECC) 정보, 및 로직 블록 어드레스(LBA) 정보를 포함할 수 있다. 해당 분야의 통상의 기술자가 이해하듯이, 로직 블록 어드레싱은 정보의 섹터를 정의하기 위하여 호스트에 의해 사용될 수 있는 스킴(scheme)이며, 예컨대, 각각의 섹터는 고유 LBA에 대응할 수 있다. 하나 이상의 구체 예에서, 섹터는 저장 볼륨의 가장 작은 어드레스가능 부분이다. 실시예로서, 정보의 섹터는 정보의 다수 바이트, 예컨대, 256 바이트, 512 바이트, 또는 1,024 바이트일 수 있다. 예를 들어, SSD는 하나의 페이지 내에 4, 8, 또는 16개 섹터를 가질 수 있으며, 여기서 하나의 섹터는 512 바이트일 수 있으며, SSD는 물리 블록 당 128, 256, 또는 512개 페이지를 가질 수 있으며, 따라서 물리 블록 크기는 131072 바이트, 262144 바이트, 및 524288 바이트이다. 구체 예는 이러한 실시예에 제한되지 않는다.
물리 블록(260-1, 260-2, . . ., 260-M), 열(270-1, 270-2, . . ., 270-R), 섹터(280-1, 280-2, . . ., 280-S), 및 페이지에 대한 또 다른 구성이 가능함에 주목하라. 예를 들어, 물리 블록(260-1, 260-2, . . ., 260-M)의 열(270-1, 270-2, . . ., 270-R)은 각각, 예를 들어, 512 바이트 초과 또는 미만의 정보를 포함할 수 있는 단일 섹터에 대응하는 정보를 저장할 수 있다.
도 3은 본 발명의 하나 이상의 구체 예에 따르는 스트라이프-베이스(stripe-basis) 상에서 작동되는 저장 볼륨(340)의 블록 다이어그램을 도시한다. 저장 볼륨(340)은 메모리 시스템, 예컨대, 도 1의 메모리 시스템(104) 내 다수의 솔리드 스테이트 메모리 장치, 예컨대, 도 1의 솔리드 스테이트 메모리 장치(110-1, . . ., 110-N)로 포맷된 파일 시스템에 의해 제공될 수 있다. 본 명세서에 기재되듯이, 각각의 솔리드 스테이트 메모리 장치는 메모리 채널(342-1, . . ., 342-(N-1), 342-N)과 관련될 수 있다. 그렇지만, 구체 예는 메모리 장치, 예컨대, 메모리 칩 당 하나의 채널에 한정되지 않는데, 왜냐하면, 일부 구체 예가 장치 당 다중 채널을 포함할 수 있기 때문이다. 하나의 메모리 칩은, 예컨대, 메모리 셀의 둘 이상의 물리 플레인을 포함하는 메모리 칩의 경우, 둘 이상의 채널에 의해 메모리 제어기에 연결될 수 있다. 정보는 다수의 솔리드 스테이트 메모리 장치에 의해 제공된 저장 볼륨(340)을 통하여 다수의 스트라이프(344-1, 344-2, . . ., 344-P)에 기록될 수 있다.
메모리 시스템은 호스트 시스템으로부터 기록 정보를 수신할 수 있다. 메모리 시스템, 예컨대, 도 1의 메모리 제어기(108)와 관련된 RAID XOR 회로는 기록 정보에 대한 패리티 정보를 연산할 수 있다. 하나 이상의 구체 예에서, 기록 정보 및 패리티 정보는 저장 볼륨(340)을 통하여 스트라이프되어 이에 따라 기록 정보는 다수의 활용가능 채널, 예컨대, 채널(342-1, . . ., 342-(N-1))의 서브셋을 통하여 기록될 수 있으며, 패리티 정보는 상기 다수의 활용가능 채널, 예컨대, 채널(342-N)의 제2 서브셋을 통하여 기록될 수 있다. 예를 들어, 메모리 시스템은 8개 채널을 포함할 수 있는데 여기서 7개 채널은 기록 정보를 기록하기 위하여 사용되며 1개 채널은 패리티 정보를 기록하기 위하여 사용된다. 본 명세서에 기재되듯이, 패리티 정보는 서로 다른 스트라이프에 대한 서로 다른 채널을 통하여 기록될 수 있다. 구체 예는 기록 정보에 대하여 N개 채널 중 N-1개를 사용하고 패리티 정보에 대하여 1개 채널을 사용하는 것에 제한되지 않는다. 본 발명의 하나 이상의 구체 예에 따르면, RAID 구조 및/또는 스트라이프 크기는 프로그램가능 옵션일 수 있다.
RAID 구조는 다중 메모리 장치를 통하여 정보를 분할 및/또는 복제하도록 고안된 RAID 저장 스킴의 구현을 나타낼 수 있다. 예를 들어, 정보는 둘 이상의 장치를 통하여 스트라이프 및/또는 미러링될 수 있다. 스트라이핑(Striping)은 기록 정보를 프래그먼트(fragment)로 분할하는 것 및 적어도 하나의 프래그먼트를 다수의 메모리 장치 각각에 저장하는 것을 포함할 수 있다. 미러링(mirroring)은 기록 정보 카피를 적어도 2개의 메모리 장치에 잉여적으로 저장하는 것을 포함할 수 있다. 스트라이핑 및 미러링 둘 모두는 오류 검출의 사용을 포함할 수 있다. 패리티 정보가 기록 정보로서 동일한 메모리 장치에 저장되거나 및/또는 기록 정보를 저장하는 장치와 다른 별도의 장치에 저장될 수 있다. 본 발명의 하나 이상의 구체 예에 따르면, 메모리 시스템에 의해 실행될 특정 RAID 구조는 프로그램가능 옵션일 수 있다.
본 명세서에서 사용되듯이, 스트라이프 크기는 정보가 스트라이프되는 채널의 수를 의미할 수 있다. 본 발명의 하나 이상의 구체 예에 따르면, 메모리 시스템에 대한 스트라이프 크기는 프로그램가능 옵션이어서 이에 따라 메모리 시스템에 대하여 활용가능한 임의 수의 채널이 스트라이프를 위하여 사용될 수 있다. 예를 들어, 32개 채널 및 다수의 대응하는 메모리 장치를 포함하는 메모리 시스템은 2 내지 32개 채널의 임의 스트라이프 크기를 가질 수 있다. 일부 구체 예는 비-휘발성 메모리를 적어도 두 부분으로 로직하게(logically) 분리하는 단계를 포함할 수 있으며, 각각의 부분은 비-휘발성 메모리와 관련된 다수의 채널의 서브셋을 포함한다. 이러한 구체 예는 독립적으로 상기 적어도 두 부분의 각각에 대한 스트라이프 베이스에서 비-휘발성 메모리 시스템을 작동시키는 것을 포함할 수 있다. 예를 들어, 패리티 정보 및 기록 정보의 다수의 페이지가 각각의 스트라이프에 기록될 수 있으며, 여기서 제1 스트라이프는 메모리 시스템의 다수의 채널의 단지 하나의 서브셋을 통하여 기록되며 제2 스트라이프는 메모리 시스템의 다수의 채널의 단지 또 다른 하나의 서브셋을 통하여 기록된다. 더욱이, 스트라이프 크기는 메모리 시스템의 작동 동안 변할 수 있다. 블록 테이블이 메모리 시스템의 어느 부분이 어느 스트라이프에 대응하는가를 추적하기 위하여 사용될 수 있다.
패리티 정보를 저장하는 것은, 하위 스트라이프와 관련된 정보가, 하위 스트라이프와 공통으로 메모리 셀의 적어도 하나의 물리 페이지를 포함하는 상위 스트라이프를 기록하는 것과 관련된 UECC 오류에 응답하여 재생성되도록 할 수 있다. 더욱 구체적인 예가 이하에서 도 5A-5C와 관련하여 제시된다. 메모리 채널, 메모리 장치, 메모리의 블록, 메모리의 페이지, 또는 메모리 장치의 또 다른 부분이 정정불가능 오류 또는 또 다른 오류를 겪을 수 있다. 예를 들어, 기록 정보의 하위 페이지가 채널(342-1, . . ., 342-(N-1))을 통하여 제1 스트라이프(344-1)에 기록될 수 있다. 패리티 정보가 채널(342-N)을 통하여 제1 스트라이프(344-1)에 기록될 수 있다. 제1 채널(342-1)이 정정불가능 오류 또는 또 다른 오류를 겪는 경우, 예컨대 상위 스트라이프를 기록하는 것의 일부로서 채널(342-1)을 통하여 기록되는 상위 페이지에 응답하여, 최대 342-(N-1)개의 채널과 관련된 기록 정보 및 채널(342-N)과 관련된 패리티 정보가 제1 채널(342-1)을 통하여 기록된 정보의 하위 페이지를 재생성하기 위하여 사용될 수 있다. 패리티 정보를 생성하는 경우와 유사하게, 메모리 시스템, 예컨대, RAID XOR 회로는, 정정불가능 오류 또는 또 다른 오류를 겪는 메모리 시스템의 일부와 관련된 정보에 대한 치환 정보를 연산하기 위하여 기록 정보와 함께 패리티 정보를 사용할 수 있다.
도 1의 메모리 제어기(108)와 관련된 ECC 회로는 기록 정보의 프래그먼트에 대한 제1 레벨 오류 정정 정보 및/또는 메모리 장치에 저장된 제2 레벨 정정, 예컨대 패리티 정보를 연산할 수 있다. 도 3은 채널(342-1, . . ., 342-(N-1))과 관련되어 저장된 기록 정보(346) 및 제1 레벨 오류 정정 정보(348), 그리고 채널(342-N)과 관련되어 저장된 패리티 정보(350) 및 제1 레벨 오류 정정 정보(348)의 예를 포함한다. 스트라이프가 기록될 때, 기록 정보 및 오류 정정 정보 둘 모두가 함께 기록될 수 있다. 오류가 기록 정보 또는 패리티 정보인 정보 내에서 검출되는 경우, 제1 레벨 오류 정정 정보가 오류 정정, 예컨대, 전술한 패리티 정보와 관련된 정정의 제2 레벨을 실행하기 이전에 및/또는 실행하지 않고 상기 오류를 정정하는 것을 시도하기 위해 사용될 수 있다. 메모리 시스템은 임계값의 오류 비트(erroneous bit)가 교정되는 것을 가능하게 하는 충분한 제1 레벨 오류 정정 정보를 저장할 수 있다. 제1 레벨 오류 정정 정보에 의해 정정가능한 것보다 더 많은 비트 오류를 포함하는 오류, 예컨대 기록 작업 동안의 UECC 오류가 검출되는 경우, 예컨대 전술한 패리티 정보를 사용하는 오류 정정의 제2 레벨이 실행될 수 있는데, 예컨대, 오류와 관련된 정보가 패리티 정보 및 기록 정보의 나머지를 사용하여 재생성될 수 있다.
도 4는 본 발명의 하나 이상의 구체 예에 따라, 소거 상태(422) 및 다수의 하위 페이지(424), 상위 페이지(426), 및 스크래치 페이지(428) 데이터 상태에 대한 예시적인 2-비트(bit) 메모리 셀과 관련된 문턱 전압 분포(420)의 다이어그램을 도시한다. 구체 예는 2비트 정보를 갖도록 프로그래밍되는 멀티레벨 메모리 셀에 제한되지 않는다. 본 발명의 하나 이상의 구체 예는 2 초과의 비트 및/또는 분수(fractional number) 비트의 정보를 갖도록 프로그래밍되는 특정 메모리 셀을 포함할 수 있다.
소거 상태(422)로부터 시작하여, 하나 이상의 프로그래밍 펄스가 하위 페이지(424)로부터의 정보를 나타내는 중간 상태, 예컨대, 1 또는 0으로 셀을 프로그래밍하기 위하여 특정 메모리 셀에 적용될 수 있다. 후속하여, 하나 이상의 프로그래밍 펄스가 중간 상태, 예컨대, 1 또는 0으로부터, 상위 페이지(426)로부터의 데이터를 나타내는 최종 상태, 예컨대, 11, 10, 01, 또는 00으로 셀을 프로그래밍하기 위하여 상기 특정 메모리 셀에 적용될 수 있다. 도 4에 도시된 바와 같이, 2-비트 메모리 셀에 대하여, 중간 상태에 대응하는 하위 페이지(424)로부터의 정보가 최종 상태에 대응하는 상위 페이지(426)로부터의 정보의 제1 비트를 나타낼 수 있는데, 예컨대, 메모리 셀은 1로부터 11 또는 10으로 프로그래밍될 수 있으며 메모리 셀은 0으로부터 01 또는 00으로 프로그래밍될 수 있다. 그렇지만, 구체 예는 도 4에 도시된 2-비트 셀 또는 특정 정보 값에 제한되지 않는다.
하나 이상의 구체 예에서, 정보의 스크래치 페이지(428)가 기록 정보의 하위 페이지(424) 또는 상위 페이지(426)에 대응할 수 있다. 도 4에 도시된 바와 같이, 이러한 스크래치 페이지는 하위 페이지(424)와 유사할 수 있는데, 예컨대, 2-비트 셀이 스크래치 페이지(428) 프로그래밍 동작의 일부로서 두 상태 중 하나로 프로그래밍될 수 있다.
특정 프로그래밍 동작에 대하여, 하위 페이지(424) 및 대응하는 상위 페이지(426)가 동일 물리 메모리 셀, 예컨대, 메모리 셀의 동일 물리 페이지에 프로그래밍된다. 그렇지만, 특정 프로그래밍 동작이 다수의 스크래치 페이지(428)를 프로그래밍하는 것을 포함하는 경우, 스크래치 페이지는, 하위 페이지 및 상위 페이지가 프로그래밍되는 것과는 서로 다른 물리 메모리 셀, 예컨대, 메모리 셀의 서로 다른 물리 페이지에 프로그래밍된다. 하나 이상의 구체 예에서, 메모리 셀의 스크래치 페이지는 메모리 셀의 스크래치 블록 내 일수 있는데, 예컨대, 특정 하위 페이지 및 특정 상위 페이지가 프로그래밍된 것을 포함하는 메모리 셀의 블록과는 서로 다른 메모리 셀의 물리 블록 내 일 수 있다.
스크래치 페이지(428)는 하위 페이지(424) 및/또는 상위 페이지(426)가 어떻게 프로그래밍되는지를 나타내기 위하여 사용될 수 있다. 스크래치 페이지(428) 내 정보는 하위 페이지(424) 또는 상위 페이지(426)에 대응할 수 있다. 2개의 스크래치 페이지(428), 예컨대, 하위 페이지(424)에 대응하는 스크래치 페이지(428) 및 상위 페이지(426)에 대응하는 스크래치 페이지(428)(메모리 셀의 분리된 물리 페이지)는 하위 페이지(424) 및 상위 페이지(426)를 기록하기 위하여 결합될 수 있다(여기서 하위 페이지(424) 및 상위 페이지(426)는 2개의 스크래치 페이지(428)에 대하여 메모리 셀의 물리 페이지와 다른, 메모리 셀의 동일한 물리 페이지에 기록된다).
하위 페이지(424) 프로그래밍에 대하여, 스크래치 페이지(428)의 일부로서 정보 "1"을 갖도록 프로그래밍되는 메모리 셀은 하위 페이지의 제1 비트가 "1"이라는 것 및/또는 대응하는 메모리 셀이 소거 상태(422)로부터 하위 페이지(424) 내 2개의 중간 상태 중 하위로 프로그래밍되어야 한다는 것을 나타낼 수 있다. 상위 페이지(426) 프로그래밍에 대하여, 스크래치 페이지(424)의 일부로서 정보 "1"을 갖도록 프로그래밍되는 메모리 셀은 상위 페이지의 제2 비트가 "1"이라는 것 및/또는 하위 페이지(424)로부터의 대응하는 메모리 셀이 중간 상태로부터 상기 중간 상태와 관련된 2개의 최종 상태 중 하위로 프로그래밍되어야 한다는 것을 나타낼 수 있다. 예를 들어, 하위 페이지(424)로부터의 대응하는 메모리 셀이 도 4에 도시된 바와 같이 중간 상태 "1"로 프로그래밍되고, 그리고 상위 페이지에 대응하는 스크래치 페이지가 정보 "1"을 포함하는 경우, 하위 페이지로부터의 대응하는 메모리 셀은 상위 페이지(426)에서 최종 상태 "11"로 프로그래밍되어야 한다. 유사하게, 하위 페이지(424)로부터의 대응하는 메모리 셀이 도 4에 도시된 바와 같이 중간 상태 "0"으로 프로그래밍되고, 그리고 상위 페이지에 대응하는 스크래치 페이지가 정보 "1"을 포함하는 경우, 하위 페이지(424)로부터의 대응하는 메모리 셀은 상위 페이지(426)에서 최종 상태 "01"로 프로그래밍되어야 한다.
하위 페이지(424) 프로그래밍에 대하여, 스크래치 페이지(424)의 일부로서 정보 "0"을 갖도록 프로그래밍되는 메모리 셀은 하위 페이지의 제1 비트가 "0"이라는 것 및/또는 대응하는 메모리 셀이 소거 상태(422)로부터 하위 페이지(424) 내 2개의 중간 상태 중 상위로 프로그래밍되어야 한다는 것을 나타낼 수 있다. 상위 페이지(426) 프로그래밍에 대하여, 스크래치 페이지(424)의 일부로서 정보 "0"을 갖도록 프로그래밍되는 메모리 셀은 상위 페이지의 제2 비트가 "0"이라는 것 및/또는 하위 페이지(424)로부터의 대응하는 메모리 셀이 중간 상태로부터 상기 중간 상태와 관련된 2개의 최종 상태 중 상위로 프로그래밍되어야 한다는 것을 나타낼 수 있다. 예를 들어, 하위 페이지(424)로부터의 대응하는 메모리 셀이 도 4에 도시된 바와 같이 중간 상태 "1"로 프로그래밍되고, 그리고 상위 페이지(426)에 대응하는 스크래치 페이지가 정보 "0"을 포함하는 경우, 하위 페이지로부터의 대응하는 메모리 셀은 상위 페이지(426)에서 최종 상태 "10"으로 프로그래밍되어야 한다. 유사하게, 하위 페이지(424)로부터의 대응하는 메모리 셀이 도 4에 도시된 바와 같이 중간 상태 "0"으로 프로그래밍되고, 그리고 상위 페이지(426)에 대응하는 스크래치 페이지가 정보 "0"을 포함하는 경우, 하위 페이지(424)로부터의 대응하는 메모리 셀은 상위 페이지(426)에서 최종 상태 "00"으로 프로그래밍되어야 한다.
이해되듯이, 2 이외의 다수의 비트를 갖도록 멀티레벨 메모리 셀을 프로그래밍하는 방법은 본 명세서의 기재사항으로부터 추정될 수 있다. 예를 들어, 4-비트 메모리 셀은 최종 상태로 프로그래밍되기 이전에 2 이상의 하위 페이지 프로그래밍 동작을 갖도록 프로그래밍될 수 있으며, 이러한 구체 예는 하위 페이지가 어떻게 프로그래밍되어야 하는지, 후속하는 하위 페이지가 어떻게 프로그래밍되어야 하는지, 및/또는 상위 페이지가 어떻게 프로그래밍되어야 하는지, 예컨대, 메모리 셀이 어떻게 하나 이상의 중간 상태 및/또는 최종 상태로 프로그래밍되어야 하는지를 나타내기 위하여, 2 초과의 스크래치 페이지의 사용을 포함할 수 있다. 본 명세서에 기재된 2-비트 셀을 갖는 하나 이상의 예시적 구체 예는 설명 목적을 위한 예시적인 것이며, 본 발명을 2-비트 메모리 셀의 작동에 대하여 제한하는 것은 아니다. 더욱이, "1s" 및 "0s" 그리고 용어 "상위(upper)" 및 "하위(lower)"의 사용은 본 명세서에서 하나 이상의 예시적 구체 예를 나타내기 위하여 사용되며 본 발명을 특정 표기 또는 정보 배열에 제한하지 않는다.
도 5A는 본 발명의 하나 이상의 구체 예에 따라, 다수의 채널(542A)을 통한 하위 페이지 및 상위 페이지 프로그래밍을 다수의 하위 스트라이프 (544A-L) 및 상위 스트라이프(544A-U)와 연관시키는 표를 도시한다. 본 발명의 하나 이상의 구체 예에 따르면, 다수의 하위 스트라이프(544A-L)를 기록하는 단계는 상기 다수의 하위 스트라이프(544A-L) 각각에서 정보의 다수의 하위 페이지를 프로그래밍하는 단계를 포함한다. 상기 다수의 하위 페이지 각각은 실질적으로 동시에 다수의 채널(542A)을 통하여 특정 하위 스트라이프에서 프로그래밍될 수 있다. 일부 구체 예에서, 비록 특정 하위 스트라이프가 2 초과의 페이지를 포함할 수 있으나, 다수의 하위 스트라이프(544A-L) 각각은 정보, 예컨대, 기록 정보의 단지 하나의 하위 페이지, 및 패리티 정보의 단지 하나의 페이지를 포함할 수 있다. 도 5A에서, 예를 들어, "하위 스트라이프 1"은 "채널 1"을 통하여 기록된 하위 페이지 "LP 1"(512A) 및 "채널 8"을 통하여 기록된 "패리티 1"(550A)를 포함한다. 일부 구체 예에서, 사용자 데이터의 하위 페이지 및 패리티 정보의 페이지를 제외한 다수의 하위 스트라이프(544A-L)의 다수의 페이지(도 5A에서 비어 있는 페이지로 제시됨)가 시스템 데이터를 위하여 보존될 수 있다. 패리티 정보, 예컨대, 패리티 정보의 페이지(550A)가 하위 스트라이프 내 페이지의 나머지를 위하여 연산될 수 있으며 하위 스트라이프 내 페이지 중 하나로 프로그래밍될 수 있다. 구체 예는 특정 수의 스트라이프 및/또는 채널에 한정되지 않는다.
하나 이상의 구체 예에서, 상위 스트라이프(544A-U)를 기록하는 단계는 상위 스트라이프(544A-U) 내 정보의 다수의 상위 페이지를 프로그래밍하는 단계를 포함할 수 있다. 상위 스트라이프(544A-U) 내 상기 다수의 상위 페이지 각각은 실질적으로 동시에 다수의 채널(542A)을 통하여 프로그래밍될 수 있다. 상위 스트라이프 내 상기 다수의 상위 페이지 각각은 다수의 하위 페이지의 각각 하나에 대응할 수 있다. 도 5A에서, 예를 들어, "상위 스트라이프"(544A-U)는 "하위 스트라이프 1" 내 하위 페이지 "LP 1"(512A)에 대응하는 상위 페이지 "UP 1"(514A)을 포함한다. 즉, 상위 스트라이프(544A-U)를 기록하는 단계는 메모리 셀을 하위 페이지(512A)로부터 상위 페이지(514A)로 프로그래밍하는 단계를 포함한다.
도 5A에 도시된 바와 같이, 각각 다수의 상위 페이지의 하나, 예컨대, "UP 1", "UP 2", "UP 3", "UP 4", "UP 5", "UP 6", 및 "UP 7"에 대응하는 각각의 다수의 하위 페이지, 예컨대, "LP 1", "LP 2", "LP 3", "LP 4", "LP 5", "LP 6", 및 "LP 7"은 예컨대, 각각 별도의 스트라이핑 동작의 일부로서, 다수의 하위 스트라이프(544A-L)의 서로 다른 하위 스트라이프에서 기록될 수 있다. 따라서, 상위 스트라이프(544A-U)의 모든 페이지와 관련된 메모리 셀이 UECC 오류를 겪더라도, 예컨대, 정보가 오염되는 경우, 상위 스트라이프(544A-U)의 기록 동안, 대응하는 하위 페이지 각각은 패리티 정보를 사용하여 재생성될 수 있다. 예를 들어,특정 하위 페이지(512A)와 관련된 메모리 셀이 대응하는 상위 페이지(514A)의 기록 동안 UECC 오류를 겪는 경우, 하위 페이지(512A)가, 스트라이프로부터의 패리티 정보(550A) 및 특정 하위 페이지를 포함하는 스트라이프 예컨대 "하위 스트라이프 1" 내 정보의 나머지를 사용하여 재생성될 수 있다. 이러한 오류의 한 가지 예는 비동기식 전력 사이클링, 예컨대, 하나 이상의 메모리 장치에 대한 전력의 비의도적 중단이다. 비록 도 5A가 정보, 예컨대 "하위 스트라이프 1" 내 기록 정보의 단지 하나의 페이지(512A)만을 도시하지만, 구체 예는 도 5B-5C와 관련하여 이하에서 더욱 상세하게 기재되듯이 한정되지 않는다.
각각의 하위 스트라이프(544A-L)와 관련된 하위 페이지, 예컨대 도 5A에 도시된 페이지(512A) 각각은 메모리 장치 내 메모리 셀의 별도의 물리 페이지를 로직하게 나타낸다. 상위 스트라이프(544A-U)와 관련된 상위 페이지, 예컨대 도 5A에 도시된 페이지(514A) 각각은 대응하는 하위 페이지로서 메모리 셀의 동일한 물리 페이지를 로직하게 나타낸다. 예를 들어, 상위 페이지 "UP 1"(514A)은 하위 페이지 "LP 1"(512A)로서 메모리 셀의 동일한 물리 페이지를 로직하게 나타낸다.
도 5B는 본 발명의 하나 이상의 구체 예에 따라, 다수의 채널(542B)을 통한 하위 페이지 및 상위 페이지 프로그래밍을 다수의 하위 스트라이프 (544B-L) 및 상위 스트라이프(544B-U)와 연관시키는 표를 도시한다. 본 발명의 하나 이상의 구체 예에 따르면, 복수의 하위 스트라이프(544B-L)를 기록하는 단계는 상기 복수의 하위 스트라이프(544B-L) 각각에서 정보의 복수의 하위 페이지를 프로그래밍하는 단계를 포함할 수 있다. 복수의 하위 스트라이프(544B-L) 각각에서 정보의 복수의 하위 페이지를 프로그래밍하는 단계는 패리티 정보의 하나의 페이지를 프로그래밍하는 단계 및 사용자 데이터를 갖는 복수의 하위 페이지의 나머지를 프로그래밍하는 단계를 포함할 수 있다. 패리티 정보의 각각의 페이지는 이것이 대응하는 스트라이프의 지정(designation)을 포함한다. 따라서, 예를 들어, 패리티 정보(550B)의 페이지는 "L1"로 지정되며 이는 이것이 하위 스트라이프 1에 대응하는 것을 나타낸다. 예를 들어, 도 5B에서, "하위 스트라이프 1"은 "채널 8"을 통하여 기록된 "패리티 L1"(550B) 및 "채널 1"을 통하여 기록된 하위 페이지 "LP 1,1"(512B), "채널 2"를 통하여 기록된 "LP 1,2", "채널 3"을 통하여 기록된 "LP 1,3", "채널 4"를 통하여 기록된 "LP 1,4", "채널 5"를 통하여 기록된 "LP 1,5", "채널 6"을 통하여 기록된 "LP 1,6", 및 "채널 7"을 통하여 기록된 "LP 1,7"을 포함한다. 특정 하위 스트라이프 내 하위 페이지 각각은 서로 다른 채널(542B)을 통하여 기록될 수 있다. 일부 구체 예에서, 특정 하위 스트라이프 내 하위 페이지 각각은 다수의 채널을 통하여 실질적으로 동시에 기록될 수 있다.
하나 이상의 구체 예에서, 복수의 상위 스트라이프(544B-U)를 기록하는 단계는 각각의 상위 스트라이프에서 정보의 복수의 상위 페이지를 프로그래밍하는 단계를 포함할 수 있다. 복수의 상위 스트라이프의 특정한 하나 내 복수의 상위 페이지 각각은 복수의 하위 스트라이프의 서로 다른 하나 내 각각의 하위 페이지에 대응한다. 도 5B에 도시된 바와 같이, 각각의 하위 페이지 "LP"는 하위 페이지가 대응하는 하위 스트라이프의 지정 및 하위 페이지가 대응하는 상위 스트라이프의 지정을 포함한다. 따라서, 예를 들어, 하위 페이지 "LP 1,1"(512B)은 지정 "1,1"을 포함하며 이는 이것이 하위 스트라이프 1 및 상위 스트라이프 1에 대응하는 것을 나타낸다. 도 5B에 도시된 바와 같이, 각각의 상위 페이지 "UP"는 상위 페이지가 대응하는 상위 스트라이프의 지정 및 상위 페이지가 대응하는 하위 스트라이프의 지정을 포함한다. 예를 들어, 상위 페이지 "UP 1,1"(514B)은 지정 "1,1"을 포함하며 이는 이것이 상위 스트라이프 1 및 하위 스트라이프 1에 대응하는 것을 나타낸다. 즉, 상위 페이지 "UP 1,1"(514B)을 프로그래밍하는 단계는 하위 페이지 "LP 1,1"(512B)과 관련된 동일 메모리 셀을 프로그래밍하는 단계를 포함한다. 또 다른 예로서, 상위 페이지 "UP 1,2"를 프로그래밍하는 단계는 하위 페이지 "LP 2,1"과 관련된 메모리 셀을 프로그래밍하는 단계를 포함한다.
따라서, 각각의 상위 스트라이프(544B-U)를 기록하는 단계는 복수의 페이지를 프로그래밍하는 단계를 포함하며, 이들 각각은 서로 다른 하위 스트라이프(544B-L)에 대응한다. 예를 들어, "상위 스트라이프 1"을 기록하는 단계는 "하위 스트라이프 1"로부터 하위 페이지 "LP 1,1"(512B)에 대응하는 상위 페이지 "UP 1,1"(514B)을 프로그래밍하는 단계, "하위 스트라이프 2" 내 "LP 2,1"에 대응하는 "UP 1,2"를 프로그래밍하는 단계, "하위 스트라이프 3" 내 "LP 3,1"에 대응하는 "UP 1,3"을 프로그래밍하는 단계, "하위 스트라이프 4" 내 "LP 4, 1"에 대응하는 "UP 1,4"를 프로그래밍하는 단계, "하위 스트라이프 5" 내 "LP 5, 1"에 대응하는 "UP 1,5"를 프로그래밍하는 단계, "하위 스트라이프 6" 내 "LP 6, 1"에 대응하는 "UP 1,6"을 프로그래밍하는 단계, 및 "하위 스트라이프 7" 내 "LP 7, 1"에 대응하는 "UP 1,7"을 프로그래밍하는 단계를 포함한다. 각각의 상위 스트라이프(544B-U)에 프로그래밍된 패리티 정보는 하위 스트라이프(544B-L) 각각에 기록된 패리티 정보와 독립적일 수 있는데 왜냐하면 이는 대응하는 상위 스트라이프(544B-U)에 기록된 정보에 대하여 연산될 수 있기 때문이다. 특정 상위 스트라이프 내 상위 페이지 각각은 서로 다른 채널(542B)을 통하여 기록될 수 있다. 일부 구체 예에서, 특정 상위 스트라이프 내 상위 페이지 각각은 다수의 채널을 통하여 실질적으로 동시에 기록될 수 있다.
복수의 하위 스트라이프(544B-L) 및 상위 스트라이프(544B-U)는 도 5B에 제시된 순서로, 하위 스트라이프 1로부터 시작하여 상위 스트라이프 7로 계속되면서 기록될 수 있다. 복수의 상위 스트라이프(544B-U)에 대응하는 정보가 단일 하위 스트라이프(544B-L)에 기록될 수 있기 때문에, 하나 이상의 구체 예는 복수의 하위 스트라이프(544B-L)를 기록하기에 앞서 복수의 상위 페이지와 관련된 정보를 버퍼링(buffering) 및/또는 캐싱(caching)하는 단계를 포함할 수 있다. 유사하게, 복수의 하위 스트라이프(544B-L)에 대응하는 정보가 단일 상위 스트라이프(544B-U)에 기록될 수 있기 때문에, 하나 이상의 구체 예는 복수의 하위 스트라이프(544B-L) 중 제1 하위 스트라이프를 기록하기에 앞서 복수의 하위 페이지와 관련된 정보를 버퍼링(buffering)하는 단계를 포함할 수 있다. 따라서, 메모리 시스템은 상위 및/또는 하위 스트라이프를 기록하기에 앞서 정보를 저장하기 위한 버퍼를 포함할 수 있다. 이러한 버퍼는 휘발성 및/또는 비-휘발성 메모리를 포함할 수 있다. 도시의 용이함을 위하여, 도 5B는 로직하게 함께 그룹핑된 복수의 하위 스트라이프(544B-L) 및 로직하게 함께 그룹핑된 복수의 상위 스트라이프(544B-U)를 도시하는 것으로 제시되나, 구체 예는 여기에 제한되지 않는다. 예를 들어, 복수의 하위 페이지(544B-L) 및 복수의 상위 페이지(544B-U)는 특정 블록에 걸쳐 혼합될 수 있으며, 반드시 도 5B에 지시된 순서로 기록되는 것은 아니며, 예컨대, 특정 스트라이프는 다수의 하위 페이지 및 다수의 상위 페이지를 포함할 수 있다.
도 5C는 본 발명의 하나 이상의 구체 예에 따라, 다수의 채널(542C)을 통한 하위 페이지 및 상위 페이지 프로그래밍을 다수의 하위 스크래치 스트라이프(544C-LS), 상위 스크래치 스트라이프(544C-US), 하위 스트라이프(544C-L) 및 상위 스트라이프(544C-U)와 연관시키는 표를 도시한다. 도 5C는 가독성의 용이성 및 폰트 크기 요구를 준수하는 "도 5C-I" 및 "도 5C-II"로 표시된 두 개의 도면을 포함한다. 하나 이상의 구체 예는 복수의 하위 스크래치 페이지, 예컨대, 하위 스크래치 페이지 "LSP 1,1"(516C-L)를 복수의 제1 블록에 프로그래밍하는 것을 포함한다. 복수의 상위 스크래치 페이지, 예컨대, 상위 스크래치 페이지 "USP 1,1"(516C-U)는 제2 블록, 즉 상기 제1 블록과 다른 블록에 프로그래밍될 수 있다. 복수의 하위 페이지, 예컨대, 하위 페이지 "LP 1,1"(512C) 및 복수의 상위 페이지, 예컨대, 상위 페이지 "UP 1,1"(514C) 둘 모두는 제3 블록, 즉 상기 제1 및 제2 블록과 다른 블록에 프로그래밍될 수 있다. 본 명세서에 기재되듯이, 제3 블록에 대하여, 복수의 하위 페이지는 복수의 상위 페이지를 프로그래밍하기 이전에 프로그래밍될 수 있다. 비록 스크래치 스트라이프(544C-LS 및 544C-US)가 각각 하위 페이지 및 상위 페이지에 대응하는 정보만을 포함하는 것으로 도시되지만, 구체 예는 여기에 제한되지 않는다. 즉 특정 스크래치 스트라이프는 하나 이상의 하위 페이지 및 하나 이상의 상위페이지에 대응하는 정보를 포함할 수 있다.
하위 스크래치 스트라이프(544C-LS)는 하위 스트라이프(544C-L)에서 기록 이전에 판독될 수 있으며 상위 스크래치 스트라이프(544C-US)는 상위 스트라이프(544C-U)에서 기록 이전에 판독될 수 있다. 하위 스크래치 스트라이프(544C-LS)의 각각의 페이지 내 정보는 하위 스트라이프(544C-L)의 각각의 페이지 내 정보에 대응할 수 있으며 상위 스크래치 스트라이프(544C-US)의 각각의 페이지 내 정보는 상위 스트라이프(544C-U)의 각각의 페이지 내 정보에 대응할 수 있다. 하나 이상의 구체 예에서, 하위 스크래치 스트라이프(544C-LS) 및 상위 스크래치 스트라이프(544C-US)와 관련된 제1 및 제2 블록은 하위 스트라이프(544C-L) 및/또는 상위 스트라이프(544C-U)가 기록된 이후에 소거될 수 있다.
더욱이, 일반적으로 정보가 스크래치 스트라이프에 기록되기 때문에, 메모리 시스템은 특정 스크래치 스트라이프 내 정보가 대응하는 하위 스트라이프(544C-L) 또는 상위 스트라이프(544C-U)의 하위 비트 또는 상위 비트에 대응하는지 여부를 알지 못할 수 있다. 메모리 시스템은 단지 스크래치 스트라이프에 기록되는 정보가, 추후 결합되며 하위 비트 또는 상위 비트로서 특정 하위 스트라이프(544C-L) 및/또는 상위 스트라이프(544C-U)에 기록될 정보라는 것을 알 수 있다.
복수의 스크래치 페이지 각각은 복수의 하위 스트라이프(544C-L) 및/또는 복수의 상위 스트라이프(544C-U)에 기록된 복수의 하위 페이지 중 서로 다른 하나 및/또는 복수의 상위 페이지 중 서로 다른 하나에 대응한다. 예를 들어, 하위 스크래치 페이지 "LSP 1,1"(516C-L)은 하위 페이지 "LP 1,1"(512C)에 대응하고 상위 스크래치 페이지 "USP 1,1"(516C-U)은 상위 페이지 "UP 1,1"(514C)에 대응한다. 본 명세서에 기재되듯이, 스크래치 페이지는 대응하는 하위 페이지 또는 대응하는 상위 페이지 중 하나가 어떻게 프로그래밍될 것인지를 나타내기 위해 사용될 수 있다. 예를 들어, 하위 스크래치 페이지 "LSP 2,4"는 하위 페이지 "LP 2,4"가 어떻게 프로그래밍되는지를 나타낼 수 있으며 상위 스크래치 페이지 "USP 2,4"는 하위 페이지 "LP 2,4"와 관련된 메모리 셀 상에서 상위 페이지 프로그래밍을 프로그래밍함으로써 상위 페이지 "UP 4,2"가 어떻게 프로그래밍되는지를 나타낼 수 있다.
도 5B와 관련하여 전술한 바와 같이, 각각의 하위 페이지 "LP"는 하위 페이지가 대응하는 하위 스트라이프의 지정 및 하위 페이지가 대응하는 상위 스트라이프의 지정을 포함한다. 따라서, 예를 들어, 하위 페이지 "LP 2,4"는 지정 "2,4"를 포함하며 이는 이것이 하위 스트라이프 2 및 상위 스트라이프 4에 대응하는 것을 나타낸다. 도 5C에 도시된 바와 같이, 각각의 상위 페이지 "UP"는 상위 페이지가 대응하는 상위 스트라이프의 지정 및 상위 페이지가 대응하는 하위 스트라이프의 지정을 포함한다. 예를 들어, 상위 페이지 "UP 4,2"는 지정 "4,2"를 포함하며 이는 이것이 상위 스트라이프 4 및 하위 스트라이프 2에 대응하는 것을 나타낸다. 각각의 하위 스크래치 페이지 "LSP"는 지정을 대응하는 하위 페이지에 매치시키는 지정을 포함한다. 따라서, 예를 들어, 하위 스크래치 페이지 "LSP 2,4"는 지정 "2,4"를 포함하며 이는 이것이 동일한 지정 "2,4"를 갖는 하위 페이지 "LP 2,4"에 대응하는 것을 나타낸다. 각각의 상위 스크래치 페이지 "USP"는 지정을 대응하는 상위 페이지에 매치시키는 지정을 포함한다. 따라서, 예를 들어, 상위 스크래치 페이지 "USP 2,4"는 지정 "2,4"를 포함하며 이는 이것이 동일한 지정 "2,4"를 갖는 상위 페이지 "UP 2,4"에 대응하는 것을 나타낸다. 환언하면, USP 2,4는 UP 2,4에서 프로그래밍될 정보를 포함한다.
하나 이상의 구체 예에서, 복수의 하위 페이지 중 특정한 하나를 프로그래밍하는 단계는, 복수의 하위 페이지 중 특정한 하나와 관련된 비-휘발성 멀티레벨 메모리 셀을, 대응하는 하위 스크래치 페이지에 따라, 중간 상태, 예컨대, 하위 페이지 프로그래밍으로 프로그래밍하는 단계를 포함할 수 있다. 예를 들어, 하위 페이지 "LP 1,1"(512C)과 관련된 메모리 셀을 프로그래밍하는 단계는 대응하는 하위 스크래치 페이지 "LSP 1,1"(516C-L)에 따른 메모리 셀의 프로그래밍을 포함할 수 있다. 복수의 상위 페이지 중 대응하는 하나를 프로그래밍하는 단계는 복수의 하위 페이지 중 특정한 하나와 관련된 동일한 비-휘발성 멀티레벨 메모리 셀을 최종 상태로 프로그래밍하는 단계를 포함할 수 있다. 예를 들어, 하위 페이지 "LP 1,1,"(512C)을 프로그래밍하는 단계는 하위 페이지 "LP 1,1"(512C)와 관련된 메모리 셀을 중간 상태로 프로그래밍하는 단계를 포함할 수 있으며 상위 페이지 "UP 1,1"(514C)을 프로그래밍하는 단계는 동일한 메모리 셀을 최종 상태로 프로그래밍하는 단계를 포함할 수 있다. 동일 메모리 셀을 최종 상태로 프로그래밍하는 단계는 대응하는 상위 스크래치 페이지에 따라 동일 메모리 셀을 프로그래밍하는 단계를 포함할 수 있다. 예를 들어, 하위 페이지 "LP 1,1"(512C)과 관련된 메모리 셀을 상위 페이지 "UP 1,1"(514C)로 프로그래밍하는 단계는 대응하는 스크래치 페이지 "USP 1,1"(516C-U)에 따라 메모리 셀을 프로그래밍하는 단계를 더욱 포함할 수 있다. 따라서, 일부 구체 예는 대응하는 하위 또는 상위 페이지를 프로그래밍하기에 앞서 대응하는 하위 또는 상위 스크래치 페이지를 판독하는 단계를 포함할 수 있다. 일단 특정 스크래치 블록 내 하위 및/또는 상위 스크래치 페이지에 대응하는 상위 페이지가 프로그래밍되면, 스크래치 블록이 소거될 수 있으며 그리고 하위 및/또는 상위 페이지를 프로그래밍하기 위하거나 또는 또 다른 메모리 동작을 위한 블록으로서, 새로운 스크래치 블록이 사용될 수 있다.
복수의 하위 스크래치 스트라이프(544C-LS), 상위 스크래치 스트라이프(544C-US), 하위 스트라이프(544C-L), 및 상위 스트라이프(544C-U)는 5C에 제시된 순서로, 스크래치 스트라이프 1에서 시작하여 스크래치 스트라이프 14로, 그리고 하위 스트라이프 1에서 하위 스트라이프 7로, 그리고 상위 스트라이프 1에서 상위 스트라이프 7로, 또는 또 다른 순서로 기록될 수 있다. 그렇지만, 복수의 상위 스트라이프(544C-U) 각각이 복수의 하위 스트라이프(544C-L) 및 복수의 상위 스크래치 스트라이프(544C-US) 각각 내의 적어도 하나의 하위 페이지에 대응하는 상위 페이지를 포함하기 때문에, 복수의 상위 스트라이프(544C-U)는 복수의 하위 스트라이프(544C-L) 및 복수의 상위 스크래치 스트라이프(544C-US)를 기록한 이후에 기록될 수 있다.
결론
본 발명은 비-휘발성 멀티레벨 스트라이프-기반 메모리 동작 방법 및 이를 위한 장치를 포함한다. 한 가지 방법 실시예는 다수의 하위 스트라이프 각각에서 정보의 다수의 하위 페이지를 프로그래밍하는 것을 포함하는 상기 다수의 하위 스트라이프를 기록하는 단계를 포함한다. 상위 스트라이프 내 정보의 다수의 상위 페이지를 프로그래밍하는 것을 포함하는 상위 스트라이프가 기록될 수 있다. 다수의 상위 페이지 각각은 다수의 하위 페이지의 각각 하나에 대응할 수 있다. 다수의 상위 페이지에 대응하는 다수의 하위 페이지 중 각각의 대응하는 하나는 다수의 하위 스트라이프의 서로 다른 하위 스트라이프 내에서 프로그래밍될 수 있다.
요소가 다른 요소의 "상부", "연결된", 또는 "결합된"으로 기재되는 경우, 이는 직접 다른 요소의 상부이건, 연결되거나, 또는 결합될 수 있거나, 또는 중간재 요소가 존재할 수도 있음이 이해될 것이다. 이와 대조적으로, 요소가 다른 요소의 "직접 상부", "직접 연결된" 또는 "직접 결합된"으로 기재되는 경우, 중간재 요소 또는 층이 존재하지 않는다. 본 명세서에서 사용되듯이, 용어 "및/또는"은 관련되어 나열된 하나 이상의 성분의 어느 하나 또는 모든 조합을 포함한다.
본 명세서에서 사용되듯이, 용어 "및/또는"은 관련되어 나열된 하나 이상의 성분의 어느 하나 또는 모든 조합을 포함한다. 본 명세서에서 사용되듯이 용어 "또는(or)"은, 다른 표시가 없는 한, 논리적으로 포함적 논리합(inclusive or)을 의미한다. 즉, "A 또는 B"는 (단지 A), (단지 B), 또는 (A 및 B 둘 모두)를 포함한다. 환언하면, "A 또는 B"는 "A 및/또는 B" 또는 "A 및 B 중 하나 이상"을 의미할 수 있다.
비록 용어 제1, 제2, 제3 등이 여러 요소를 설명하기 위하여 본 명세서에서 사용될 수 있으나, 이러한 요소들은 이러한 용어에 의해 제한되어서는 안 된다는 것이 이해될 것이다. 이러한 용어는 단지 하나의 요소를 다른 요소와 구별하기 위하여 사용된다. 따라서, 제1 요소는 본 발명의 시사점을 벗어나지 않으면서 제2 요소로 불릴 수 있다.
비록 특정 구체 예가 본 명세서에서 도시되고 설명되지만, 해당 분야의 통상의 기술자는 동일한 결과를 달성하기 위해 연산된 배치가 상기 제시된 특정 구체 예에 대하여 대체될 수 있음을 이해할 것이다. 본 발명은 본 발명의 하나 이상의 구체 예의 개정 또는 변형을 포함하는 것으로 의도된다. 전술한 설명은 예시적인 방식으로 이루어졌으며, 제한적인 방식이 아님이 이해될 것이다. 절술한 구체 예들, 및 본 명세서에 구체적으로 기재되지 않은 또 다른 구체 예들의 조합이 전술한 설명을 검토할 때 해당 분야의 통상의 기술자에게 자명하게 될 것이다. 본 발명의 하나 이상의 구체 예의 범위는 상기 구조 및 방법이 사용되는 또 다른 응용분야를 포함한다. 따라서, 본 발명의 하나 이상의 구체 예의 범위는 첨부된 청구항들과 함께 이러한 청구항들의 권한이 부여된 전체 균등 범위를 참고하여 결정되어야 한다.
전술한 상세한 설명에서, 일부 특징들은 본 발명을 능률적으로 하기 위한 목적을 위하여 단일 구체 예에서 함께 그룹핑된다. 본 발명의 방법은 본 발명의 기재된 구체 예가 각각의 청구항에서 명확하게 인용된 것 보다 더 많은 특징을 사용하여야 한다는 의도를 반영하기 위한 것으로 해석되어서는 안 된다. 오히려, 이하의 청구항이 반영하듯이, 본 발명의 주제는 기재된 단일 구체 예의 모든 특징들보다 더 적게 존재한다. 따라서, 이하의 청구항은 상기 상세한 설명에 포함되며, 각각의 청구항은 별도의 구체 예로서 자립한다.

Claims (41)

  1. 스트라이프-기반 비-휘발성 멀티레벨 메모리 동작 방법에 있어서, 상기 방법은:
    다수의 하위 스트라이프 각각에서 정보의 다수의 하위 페이지를 프로그래밍하는 것을 포함하는 상기 다수의 하위 스트라이프를 기록하는 단계;
    상위 스트라이프 내 정보의 다수의 상위 페이지를 프로그래밍하는 것을 포함하는 상기 상위 스트라이프를 기록하는 단계, 여기서 상기 다수의 상위 페이지 각각은 상기 다수의 하위 페이지의 각각 하나에 대응함;을 포함하며,
    여기서 상기 다수의 상위 페이지에 대응하는 상기 다수의 하위 페이지 중 각각의 대응하는 하나는 상기 다수의 하위 스트라이프의 서로 다른 하위 스트라이프 내에서 프로그래밍되는, 스트라이프-기반 비-휘발성 멀티레벨 메모리 동작 방법.
  2. 제 1 항에 있어서, 특정 하위 스트라이프 내 다수의 하위 페이지를 프로그래밍하는 것은 상기 특정 하위 스트라이프 내 다수의 하위 페이지의 나머지에 대하여 다수의 하위 페이지 중 특정한 하나에서 제2 레벨 오류 검출 정보를 프로그래밍하는 것을 포함함을 특징으로 하는, 스트라이프-기반 비-휘발성 멀티레벨 메모리 동작 방법.
  3. 제 2 항에 있어서, 특정 하위 스트라이프 내 다수의 하위 페이지를 프로그래밍하는 것은 상기 특정 하위 스트라이프 내 다수의 하위 페이지 중 나머지의 적어도 하나에서 기록 정보를 프로그래밍하는 것을 포함함을 특징으로 하는, 스트라이프-기반 비-휘발성 멀티레벨 메모리 동작 방법.
  4. 제 2 항에 있어서, 상기 방법은 상기 상위 스트라이프의 기록 동안 오류에 응답하여 상기 특정 하위 스트라이프의 다수의 하위 페이지의 나머지를 재생성하는 단계를 포함함을 특징으로 하는, 스트라이프-기반 비-휘발성 멀티레벨 메모리 동작 방법.
  5. 제 4 항에 있어서, 상기 오류는 비동기식 전력 사이클링을 포함함을 특징으로 하는, 스트라이프-기반 비-휘발성 멀티레벨 메모리 동작 방법.
  6. 제 1 항에 있어서, 상기 상위 스트라이프를 기록하는 단계는 상기 다수의 상위 페이지 각각을 실질적으로 동시에 프로그래밍하는 단계를 포함함을 특징으로 하는, 스트라이프-기반 비-휘발성 멀티레벨 메모리 동작 방법.
  7. 제 6 항에 있어서, 상기 다수의 하위 스트라이프 중 특정한 하나를 기록하는 단계는 상기 다수의 하위 스트라이프 중 특정한 하나 내 상기 다수의 하위 페이지를 실질적으로 동시에 프로그래밍하는 단계를 포함함을 특징으로 하는, 스트라이프-기반 비-휘발성 멀티레벨 메모리 동작 방법.
  8. 제 1 항에 있어서, 상기 다수의 하위 스트라이프를 기록하는 단계는 하위 스트라이프 당 기록 정보의 단지 하나의 하위 페이지 및 패리티 정보의 단지 하나의 페이지를 프로그래밍하는 단계를 포함하며; 그리고
    여기서 하위 스트라이프 당 페이지의 수는 2 초과임을 특징으로 하는, 스트라이프-기반 비-휘발성 멀티레벨 메모리 동작 방법.
  9. 제 8 항에 있어서, 상기 방법은 기록 정보의 상기 단지 하나의 하위 페이지 및 패리티 정보의 상기 단지 하나의 페이지 이외에, 상기 다수의 하위 스트라이프의 다수의 페이지를 시스템 데이터를 위하여 보존시키는 단계를 포함함을 특징으로 하는, 스트라이프-기반 비-휘발성 멀티레벨 메모리 동작 방법.
  10. 제 1 항에 있어서, 상기 다수의 하위 스트라이프 중 특정한 하나를 기록하는 단계는 기록 정보의 대응하는 다수의 하위 페이지 각각 및 패리티 정보의 적어도 하나의 페이지를 서로 다른 채널을 통하여 프로그래밍하는 단계를 포함함을 특징으로 하는, 스트라이프-기반 비-휘발성 멀티레벨 메모리 동작 방법.
  11. 제 1 항 내지 제 10 항 중 어느 한 항에 있어서, 상기 방법은:
    비-휘발성 멀티레벨 메모리를 적어도 두 부분으로 로직하게(logically) 분리하는 단계, 여기서 각각의 부분은 상기 비-휘발성 멀티레벨 메모리와 관련된 다수의 채널의 서브셋을 포함함; 및
    독립적으로 상기 적어도 두 부분의 각각에 대한 스트라이프 베이스에서 상기 비-휘발성 멀티레벨 메모리를 작동시키는 단계;를 포함함을 특징으로 하는, 스트라이프-기반 비-휘발성 멀티레벨 메모리 동작 방법.
  12. 메모리 프로그래밍 방법에 있어서, 상기 방법은:
    제1 스트라이프 내 메모리 셀의 복수의 물리 페이지를 통하여 제1 기록 정보를 스트라이핑하는 단계; 및
    제2 스트라이프 내 메모리 셀의 복수의 물리 페이지를 통하여 제2 기록 정보를 스트라이핑하는 단계:를 포함하며 여기서 상기 제2 스트라이프는 상기 제1 스트라이프 내에서 사용된 메모리 셀의 복수의 물리 페이지 중 하나 이하를 포함하는, 메모리 프로그래밍 방법.
  13. 제 12 항에 있어서, 상기 제1 스트라이프 내 메모리 셀의 복수의 물리 페이지 및 상기 제2 스트라이프 내 메모리 셀의 복수의 물리 페이지는 각각 로직하게 상위 페이지 및 다수의 하위 페이지로 분할됨을 특징으로 하는, 메모리 프로그래밍 방법.
  14. 제 13 항에 있어서, 상기 하위 페이지의 수는 1임을 특징으로 하는, 메모리 프로그래밍 방법.
  15. 제 12 항에 있어서, 상기 방법은:
    상기 제1 기록 정보를 메모리 셀의 복수의 하위 로직 페이지를 통하여 스트라이핑하는 단계; 및
    상기 제2 기록 정보를 메모리 셀의 복수의 상위 로직 페이지를 통하여 스트라이핑하는 단계;
    를 포함함을 특징으로 하는, 메모리 프로그래밍 방법.
  16. 제 12 항 내지 제 15 항 중 어느 한 항에 있어서, 상기 방법은 복수의 스트라이프 내 메모리 셀의 복수의 물리 페이지를 통하여 제1 기록 정보를 스트라이핑하는 단계를 포함하며, 여기서 제1 기록 정보를 스트라이핑하는 단계는 각각의 스트라이프 내 메모리 셀의 추가 물리 페이지에서 제2 레벨 오류 검출 정보를 프로그래밍하는 단계를 더욱 포함하며, 여기서 메모리 셀의 상기 추가 물리 페이지 각각은 서로 다른 채널과 관련됨을 특징으로 하는, 메모리 프로그래밍 방법.
  17. 메모리 프로그래밍 방법에 있어서, 상기 방법은:
    하위 페이지 정보를 단일 하위 스트라이프 내 메모리 셀의 복수의 물리 페이지를 통하여 프로그래밍하는 단계, 여기서 상기 단일 하위 스트라이프에 기록된 상기 하위 페이지 정보는 기록될 복수의 상위 스트라이프에 대응함; 및
    상기 복수의 상위 스트라이프를 기록하는 단계;를 포함하며, 여기서 상기 복수의 상위 스트라이프를 기록하는 단계는 상위 페이지 정보를 메모리 셀의 복수의 물리 페이지를 통하여 프로그래밍하는 단계를 포함하는, 메모리 프로그래밍 방법.
  18. 제 17 항에 있어서, 상기 하위 페이지 정보를 프로그래밍하는 단계는 상기 복수의 물리 페이지의 메모리 셀 각각을 각각의 중간 상태로 프로그래밍하는 단계를 포함하며; 그리고
    여기서 상기 상위 페이지 정보를 프로그래밍하는 단계는 상기 복수의 물리 페이지의 메모리 셀 각각을 각각의 최종 상태로 프로그래밍하는 단계를 포함함을 특징으로 하는, 메모리 프로그래밍 방법.
  19. 메모리 프로그래밍 방법에 있어서, 상기 방법은:
    복수의 하위 스트라이프를 기록하는 단계;를 포함하며, 여기서 상기 복수의 하위 스트라이프를 기록하는 단계는 하위 페이지 정보를 메모리 셀의 복수의 물리 페이지를 통하여 프로그래밍하는 단계; 및
    상위 페이지 정보를 단일 상위 스트라이프 내 메모리 셀의 복수의 물리 페이지의 서브셋을 통하여 프로그래밍하는 단계, 여기서 상기 단일 상위 스트라이프에 기록된 상기 상위 페이지 정보는 상기 복수의 하위 스트라이프에 대응함;을 포함함을 특징으로 하는, 메모리 프로그래밍 방법.
  20. 스트라이프-기반 비-휘발성 멀티레벨 메모리 동작 방법에 있어서, 상기 방법은:
    복수의 하위 스트라이프 각각에서 정보의 복수의 하위 페이지를 프로그래밍하는 것을 포함하는 상기 복수의 하위 스트라이프를 기록하는 단계; 및
    각각의 상위 스트라이프에서 정보의 복수의 상위 페이지를 프로그래밍하는 것을 포함하는 복수의 상위 스트라이프를 기록하는 단계, 여기서 상기 복수의 상위 스트라이프의 특정한 하나 내 복수의 상위 페이지 각각은 복수의 하위 스트라이프의 서로 다른 하나 내 각각의 하위 페이지에 대응함;을 포함하는, 스트라이프-기반 비-휘발성 멀티레벨 메모리 동작 방법.
  21. 제 20 항에 있어서, 상기 복수의 하위 스트라이프 각각에서 정보의 상기 복수의 하위 페이지를 프로그래밍하는 단계는 패리티 정보의 하나의 페이지를 프로그래밍하는 단계 및 기록 정보를 갖는 상기 복수의 하위 페이지의 나머지를 프로그래밍하는 단계를 포함함을 특징으로 하는, 스트라이프-기반 비-휘발성 멀티레벨 메모리 동작 방법.
  22. 제 20 항에 있어서, 상기 방법은 상기 복수의 하위 페이지를 복수의 제1 블록에 프로그래밍하는 단계를 포함함을 특징으로 하는, 스트라이프-기반 비-휘발성 멀티레벨 메모리 동작 방법.
  23. 제 22 항에 있어서, 상기 방법은 복수의 스크래치 페이지를 복수의 스크래치 스트라이프 각각을 통하여 프로그래밍하는 것을 포함하는 복수의 스크래치 스트라이프를 복수의 제2 블록에 기록하는 단계를 포함하며, 여기서 상기 복수의 스크래치 페이지 각각은 상기 복수의 하위 페이지의 서로 다른 각각의 하나에 대응함을 특징으로 하는, 스트라이프-기반 비-휘발성 멀티레벨 메모리 동작 방법.
  24. 제 23 항에 있어서,
    복수의 하위 페이지 중 특정한 하나를 프로그래밍하는 단계는 상기 복수의 하위 페이지 중 상기 특정한 하나와 관련된 비-휘발성 멀티레벨 메모리 셀을 중간 상태로 프로그래밍하는 단계를 포함하며; 그리고
    복수의 상위 페이지 중 대응하는 하나를 프로그래밍하는 단계는 상기 복수의 하위 페이지 중 상기 특정한 하나와 관련된 비-휘발성 멀티레벨 메모리 셀을 최종 상태로 프로그래밍하는 단계를 포함함을 특징으로 하는, 스트라이프-기반 비-휘발성 멀티레벨 메모리 동작 방법.
  25. 제 24 항에 있어서, 상기 복수의 상위 페이지 중 상기 대응하는 하나를 프로그래밍하는 단계는, 대응하는 스크래치 페이지에 따라, 상기 복수의 하위 페이지 중 상기 특정한 하나와 관련된 비-휘발성 멀티레벨 메모리 셀을 최종 상태로 프로그래밍하는 단계를 포함함을 특징으로 하는, 스트라이프-기반 비-휘발성 멀티레벨 메모리 동작 방법.
  26. 제 25 항에 있어서, 상기 방법은:
    상기 복수의 상위 페이지 중 상기 대응하는 하나를 프로그래밍하기 이전에 상기 대응하는 스크래치 페이지를 판독하는 단계; 및
    상기 복수의 상위 페이지의 상기 대응하는 하나를 프로그래밍한 이후에 상기 대응하는 스크래치 페이지에 대응하는 상기 복수의 제2 블록의 특정한 하나를 소거하는 단계;를 포함함을 특징으로 하는, 스트라이프-기반 비-휘발성 멀티레벨 메모리 동작 방법.
  27. 제 20 항 내지 제 26 항 중 어느 한 항에 있어서, 상기 방법은 상기 복수의 하위 스트라이프의 기록단계 이전에 상기 복수의 상위 페이지와 관련된 정보를 버퍼링하는 단계를 포함함을 특징으로 하는, 스트라이프-기반 비-휘발성 멀티레벨 메모리 동작 방법.
  28. 메모리 시스템에 있어서, 상기 시스템은:
    비-휘발성 멀티레벨 메모리 셀을 포함하는 다수의 메모리 장치;
    복수의 채널에 의해 상기 다수의 메모리 장치에 연결된 메모리 제어기;를 포함하며, 여기서 상기 메모리 제어기는:
    다수의 하위 스트라이프를 기록하도록 구성되며, 여기서 상기 다수의 하위 스트라이프 각각은 정보의 다수의 하위 페이지를 포함함; 그리고
    상기 정보의 다수의 상위 페이지를 포함하는 상위 스트라이프를 기록하도록 구성되며, 여기서 상기 다수의 상위 페이지 각각은 상기 다수의 하위 페이지의 각각 하나에 대응하며, 여기서 상기 다수의 상위 페이지의 각각의 하나에 대응하는 상기 다수의 하위 페이지 각각은 상기 다수의 하위 스트라이프의 서로 다른 하위 스트라이프 에 프로그래밍되는, 메모리 시스템.
  29. 제 28 항에 있어서, 상기 메모리 제어기는 상기 다수의 하위 페이지 각각을, 다수의 채널 중 서로 다른 하나를 통하여, 상기 다수의 하위 페이지 스트라이프의 특정한 하나 내에서 프로그래밍하도록 구성됨을 특징으로 하는, 메모리 시스템.
  30. 제 28 항에 있어서, 상기 메모리 제어기는 상기 다수의 상위 페이지 각각을, 다수의 채널 중 서로 다른 하나를 통하여, 상기 상위 스트라이프 내에서 프로그래밍하도록 구성됨을 특징으로 하는, 메모리 시스템.
  31. 제 28 항에 있어서, 상기 메모리 제어기는 상기 다수의 상위 페이지에 대응하는 상기 다수의 하위 페이지 각각을 별도의 스트라이핑 동작의 일부로서 상기 다수의 하위 스트라이프의 서로 다른 하위 스트라이프로 프로그래밍하도록 구성됨을 특징으로 하는, 메모리 시스템.
  32. 제 28 항에 있어서, 상기 메모리 제어기는 호스트 인터페이스에 연결되며, 상기 메모리 제어기는 상기 호스트 인터페이스로부터 정보를 수신하고 상기 정보를 복수의 채널을 ㅌ총하여 다수의 메모리 장치로 스트라이프하도록 구성됨을 특징으로 하는, 메모리 시스템.
  33. 제 28 항 내지 제 32 항 중 어느 한 항에 있어서, 스트라이프 크기는 상기 복수의 채널의 수를 포함하고 이를 통하여 다수의 하위 스트라이프 및 상위 스트라이프가 기록되며, 상기 메모리 제어기는 상기 스트라이프 크기를 프로그램가능 옵션으로서 제어하도록 구성됨을 특징으로 하는, 메모리 시스템.
  34. 메모리 시스템에 있어서, 상기 시스템은:
    비-휘발성 멀티레벨 메모리 셀을 포함하는 다수의 메모리 장치;
    복수의 채널에 의해 상기 다수의 메모리 장치에 연결된 메모리 제어기;를 포함하며, 여기서 상기 메모리 제어기는:
    복수의 하위 스트라이프 각각에서 정보의 복수의 하위 페이지를 프로그래밍하는 것을 포함하는 상기 복수의 하위 스트라이프를 기록하고; 그리고
    각각의 상위 스트라이프에서 정보의 복수의 상위 페이지를 프로그래밍하는 것을 포함하는 복수의 상위 스트라이프를 기록하도록 구성되며, 여기서 상기 복수의 상위 스트라이프의 특정한 하나 내 복수의 상위 페이지 각각은 복수의 하위 스트라이프의 서로 다른 하나 내 특정 하위 페이지에 대응하는, 메모리 시스템.
  35. 제 34 항에 있어서, 상기 메모리 시스템은 상기 복수의 하위 스트라이프 중 제1 하위 스트라이프를 기록하기 이전에 상기 복수의 하위 스트라이프 각각과 관련된 상기 복수의 하위 페이지를 버퍼링하도록 구성됨을 특징으로 하는, 메모리 시스템.
  36. 제 34 항 내지 제 35 항 중 어느 한 항에 있어서, 상기 메모리 시스템은 상기 복수의 하위 스트라이프를 기록하기 이전에 상기 복수의 상위 페이지와 관련된 정보를 버퍼링하거나 캐싱하도록 구성됨을 특징으로 하는, 메모리 시스템.
  37. 제 34 항에 있어서, 상기 메모리 제어기는
    복수의 스크래치 스트라이프를 복수의 제1 블록 내에 기록하고, 여기서 상기 복수의 스크래치 스트라이프 각각은 복수의 하위 스트라이프 중 하나 또는 복수의 상위 스트라이프 중 하나에 대응함;
    상기 복수의 스크래치 스트라이프를 기록한 이후 상기 복수의 하위 스트라이프를 복수의 제2 블록 내에 기록하고; 그리고
    상기 복수의 하위 스트라이프 및 상기 복수의 스크래치 스트라이프를 기록한 이후 상기 복수의 상위 스트라이프를 상기 복수의 제1 블록 내에 기록하도록 구성됨을 특징으로 하는, 메모리 시스템.
  38. 제 37 항에 있어서, 상기 복수의 스크래치 스트라이프 각각은 복수의 스크래치 페이지를 포함하며, 특정 스크래치 스트라이프 내 상기 복수의 스크래치 페이지는
    특정 하위 스트라이프 내 상기 복수의 하위 페이지; 및
    특정 상위 스트라이프 내 상기 복수의 상위 페이지; 중 하나에 대응함을 특징으로 하는, 메모리 시스템.
  39. 제 37 항에 있어서, 상기 복수의 스크래치 스트라이프 각각은 정보 지시의 복수의 스크래치 페이지를 포함하며, 여기서 상기 복수의 스크래치 페이지 중 특정한 하나는
    특정 하위 페이지가 어떻게 프로그래밍될 것인지; 및
    특정 상위 페이지가 어떻게 프로그래밍될 것인지; 중 한가지를 나타냄을 특징으로 하는, 메모리 시스템.
  40. 제 37 항에 있어서, 상기 메모리 제어기는 상기 복수의 하위 스트라이프 중 대응하는 하나 또는 상기 복수의 상위 스트라이프 중 대응하는 하나를 기록하기 이전에 상기 복수의 스크래치 스트라이프 중 특정한 하나를 판독하도록 구성됨을 특징으로 하는, 메모리 시스템.
  41. 제 40 항에 있어서, 상기 메모리 제어기는 상기 복수의 상위 스트라이프를 기록한 이후 상기 복수의 제1 블록을 소거하도록 구성됨을 특징으로 하는, 메모리 시스템.
KR1020137006627A 2010-08-31 2011-08-29 스트라이프-기반 비-휘발성 멀티레벨 메모리 동작 KR101405741B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/872,969 2010-08-31
US12/872,969 US8417877B2 (en) 2010-08-31 2010-08-31 Stripe-based non-volatile multilevel memory operation
PCT/US2011/001519 WO2012030388A2 (en) 2010-08-31 2011-08-29 Stripe-based non-volatile multilevel memory operation

Publications (2)

Publication Number Publication Date
KR20130041341A true KR20130041341A (ko) 2013-04-24
KR101405741B1 KR101405741B1 (ko) 2014-06-10

Family

ID=45698661

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020137006627A KR101405741B1 (ko) 2010-08-31 2011-08-29 스트라이프-기반 비-휘발성 멀티레벨 메모리 동작

Country Status (7)

Country Link
US (2) US8417877B2 (ko)
EP (2) EP2612247B1 (ko)
JP (2) JP5516924B2 (ko)
KR (1) KR101405741B1 (ko)
CN (1) CN103119569B (ko)
TW (1) TWI436213B (ko)
WO (1) WO2012030388A2 (ko)

Families Citing this family (48)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5367686B2 (ja) * 2010-12-24 2013-12-11 株式会社東芝 データ記憶装置、メモリ制御装置及びメモリ制御方法
US8694855B1 (en) 2011-11-02 2014-04-08 Pmc-Sierra Us, Inc. Error correction code technique for improving read stress endurance
US8694849B1 (en) * 2011-12-19 2014-04-08 Pmc-Sierra Us, Inc. Shuffler error correction code system and method
US20140219021A1 (en) * 2013-02-07 2014-08-07 Seagate Technology Llc Data protection for unexpected power loss
US8862818B1 (en) * 2012-09-27 2014-10-14 Emc Corporation Handling partial stripe writes in log-structured storage
US9847139B2 (en) 2012-10-01 2017-12-19 Seagate Technology Llp Flash channel parameter management with read scrub
JP2014102610A (ja) * 2012-11-19 2014-06-05 Nippon Hoso Kyokai <Nhk> 記録装置及び記録方法
US8995302B1 (en) 2013-01-16 2015-03-31 Pmc-Sierra Us, Inc. Method and apparatus for translated routing in an interconnect switch
US9652376B2 (en) 2013-01-28 2017-05-16 Radian Memory Systems, Inc. Cooperative flash memory control
US11249652B1 (en) 2013-01-28 2022-02-15 Radian Memory Systems, Inc. Maintenance of nonvolatile memory on host selected namespaces by a common memory controller
US10445229B1 (en) 2013-01-28 2019-10-15 Radian Memory Systems, Inc. Memory controller with at least one address segment defined for which data is striped across flash memory dies, with a common address offset being used to obtain physical addresses for the data in each of the dies
US9092353B1 (en) 2013-01-29 2015-07-28 Pmc-Sierra Us, Inc. Apparatus and method based on LDPC codes for adjusting a correctable raw bit error rate limit in a memory system
US9128858B1 (en) 2013-01-29 2015-09-08 Pmc-Sierra Us, Inc. Apparatus and method for adjusting a correctable raw bit error rate limit in a memory system using strong log-likelihood (LLR) values
US8990661B1 (en) 2013-03-05 2015-03-24 Pmc-Sierra Us, Inc. Layer specific attenuation factor LDPC decoder
US9813080B1 (en) 2013-03-05 2017-11-07 Microsemi Solutions (U.S.), Inc. Layer specific LDPC decoder
US10230396B1 (en) 2013-03-05 2019-03-12 Microsemi Solutions (Us), Inc. Method and apparatus for layer-specific LDPC decoding
US9397701B1 (en) 2013-03-11 2016-07-19 Microsemi Storage Solutions (Us), Inc. System and method for lifetime specific LDPC decoding
US8935598B1 (en) 2013-03-12 2015-01-13 Pmc-Sierra Us, Inc. System and method for adaptive check node approximation in LDPC decoding
US8984376B1 (en) 2013-03-14 2015-03-17 Pmc-Sierra Us, Inc. System and method for avoiding error mechanisms in layered iterative decoding
US8984365B1 (en) 2013-03-14 2015-03-17 Pmc-Sierra Us, Inc. System and method for reduced memory storage in LDPC decoding
US9235467B2 (en) 2013-03-15 2016-01-12 Pmc-Sierra Us, Inc. System and method with reference voltage partitioning for low density parity check decoding
US9590656B2 (en) 2013-03-15 2017-03-07 Microsemi Storage Solutions (Us), Inc. System and method for higher quality log likelihood ratios in LDPC decoding
US9450610B1 (en) 2013-03-15 2016-09-20 Microsemi Storage Solutions (Us), Inc. High quality log likelihood ratios determined using two-index look-up table
US9454414B2 (en) 2013-03-15 2016-09-27 Microsemi Storage Solutions (Us), Inc. System and method for accumulating soft information in LDPC decoding
US9262268B2 (en) * 2013-12-20 2016-02-16 Seagate Technology Llc Method to distribute user data and error correction data over different page types by leveraging error rate variations
US9690489B2 (en) * 2014-03-08 2017-06-27 Storart Technology Co. Ltd. Method for improving access performance of a non-volatile storage device
US9704540B2 (en) * 2014-06-05 2017-07-11 Micron Technology, Inc. Apparatuses and methods for parity determination using sensing circuitry
US9455020B2 (en) 2014-06-05 2016-09-27 Micron Technology, Inc. Apparatuses and methods for performing an exclusive or operation using sensing circuitry
US9417804B2 (en) 2014-07-07 2016-08-16 Microsemi Storage Solutions (Us), Inc. System and method for memory block pool wear leveling
US9542118B1 (en) 2014-09-09 2017-01-10 Radian Memory Systems, Inc. Expositive flash memory control
TWI557560B (zh) * 2015-02-12 2016-11-11 慧榮科技股份有限公司 資料儲存裝置以及資料讀取方法
US10332613B1 (en) 2015-05-18 2019-06-25 Microsemi Solutions (Us), Inc. Nonvolatile memory system with retention monitor
US9687002B2 (en) 2015-05-21 2017-06-27 IndusCo, Ltd. Botanical antimicrobial microemulsions (BAMM)
US9690517B2 (en) * 2015-05-22 2017-06-27 Texas Instruments Incorporated Dual-mode error-correction code/write-once memory codec
US9766837B2 (en) 2015-06-10 2017-09-19 Micron Technology, Inc. Stripe mapping in memory
US10552058B1 (en) 2015-07-17 2020-02-04 Radian Memory Systems, Inc. Techniques for delegating data processing to a cooperative memory controller
US9799405B1 (en) 2015-07-29 2017-10-24 Ip Gem Group, Llc Nonvolatile memory system with read circuit for performing reads using threshold voltage shift read instruction
US9530491B1 (en) * 2015-11-16 2016-12-27 Sandisk Technologies Llc System and method for direct write to MLC memory
US9886214B2 (en) 2015-12-11 2018-02-06 Ip Gem Group, Llc Nonvolatile memory system with erase suspend circuit and method for erase suspend management
US9892794B2 (en) 2016-01-04 2018-02-13 Ip Gem Group, Llc Method and apparatus with program suspend using test mode
US9899092B2 (en) 2016-01-27 2018-02-20 Ip Gem Group, Llc Nonvolatile memory system with program step manager and method for program step management
US10283215B2 (en) 2016-07-28 2019-05-07 Ip Gem Group, Llc Nonvolatile memory system with background reference positioning and local reference positioning
US10291263B2 (en) 2016-07-28 2019-05-14 Ip Gem Group, Llc Auto-learning log likelihood ratio
US10236915B2 (en) 2016-07-29 2019-03-19 Microsemi Solutions (U.S.), Inc. Variable T BCH encoding
CN108877862B (zh) * 2017-05-10 2021-10-08 北京忆芯科技有限公司 页条带的数据组织以及向页条带写入数据的方法与装置
US11221958B2 (en) * 2017-08-29 2022-01-11 Samsung Electronics Co., Ltd. System and method for LBA-based RAID
CN108710579A (zh) * 2018-04-27 2018-10-26 江苏华存电子科技有限公司 一种超过寻址空间大容量的管理方法
US10977181B2 (en) * 2019-07-10 2021-04-13 International Business Machines Corporation Data placement in write cache architecture supporting read heat data separation

Family Cites Families (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US1415140A (en) 1922-05-09 Pneumatic tire
US6434576B1 (en) * 1999-08-19 2002-08-13 Sun Microsystems, Inc. Popular-object handling in a train-algorithm-based garbage collector
US6732230B1 (en) 1999-10-20 2004-05-04 Lsi Logic Corporation Method of automatically migrating information from a source to an assemblage of structured data carriers and associated system and assemblage of data carriers
US20020156971A1 (en) * 2001-04-19 2002-10-24 International Business Machines Corporation Method, apparatus, and program for providing hybrid disk mirroring and striping
US6742081B2 (en) 2001-04-30 2004-05-25 Sun Microsystems, Inc. Data storage array employing block checksums and dynamic striping
US7380157B2 (en) 2004-10-27 2008-05-27 Pillar Data Systems, Inc. Staggered writing for data storage systems
US8200887B2 (en) * 2007-03-29 2012-06-12 Violin Memory, Inc. Memory management system and method
KR100666174B1 (ko) 2005-04-27 2007-01-09 삼성전자주식회사 3-레벨 불휘발성 반도체 메모리 장치 및 이에 대한구동방법
US7852761B2 (en) 2006-09-07 2010-12-14 Sap Ag Duty cycle control for networks of nodes
US7551482B2 (en) * 2006-12-27 2009-06-23 Sandisk Corporation Method for programming with initial programming voltage based on trial
US7701765B2 (en) 2006-12-28 2010-04-20 Micron Technology, Inc. Non-volatile multilevel memory cell programming
US20100325342A1 (en) 2007-07-20 2010-12-23 Panasonic Corporation Memory controller and nonvolatile storage device using same
US7873803B2 (en) 2007-09-25 2011-01-18 Sandisk Corporation Nonvolatile memory with self recovery
US20090172335A1 (en) 2007-12-31 2009-07-02 Anand Krishnamurthi Kulkarni Flash devices with raid
US8301912B2 (en) * 2007-12-31 2012-10-30 Sandisk Technologies Inc. System, method and memory device providing data scrambling compatible with on-chip copy operation
TWI373045B (en) 2008-01-07 2012-09-21 Phison Electronics Corp Flash memory storage apparatus, flash memory controller and switching method thereof
CN101499315B (zh) * 2008-01-30 2011-11-23 群联电子股份有限公司 快闪存储器平均磨损方法及其控制器
EP2592553B1 (en) * 2008-03-11 2015-11-18 Agere Systems, Inc. Methods and apparatus for storing data in a multi-level cell flash memory device with cross-page sectors, multi-page coding and per-page coding
WO2009139115A1 (ja) 2008-05-12 2009-11-19 パナソニック株式会社 半導体記録装置
JP2010020648A (ja) * 2008-07-12 2010-01-28 Hitachi Ulsi Systems Co Ltd 記憶装置
JP2010020715A (ja) * 2008-07-14 2010-01-28 Toshiba Corp 半導体メモリコントローラおよび半導体メモリシステム
US20100017650A1 (en) * 2008-07-19 2010-01-21 Nanostar Corporation, U.S.A Non-volatile memory data storage system with reliability management
KR101541736B1 (ko) * 2008-09-22 2015-08-04 삼성전자주식회사 멀티-레벨 셀 플래시 메모리 장치에서의 lsb 페이지 복구 방법
US7852671B2 (en) 2008-10-30 2010-12-14 Micron Technology, Inc. Data path for multi-level cell memory, methods for storing and methods for utilizing a memory array
KR20100050789A (ko) 2008-11-06 2010-05-14 삼성전자주식회사 메모리 장치 및 그것을 포함하는 메모리 시스템
JP4551958B2 (ja) * 2008-12-22 2010-09-29 株式会社東芝 半導体記憶装置および半導体記憶装置の制御方法
JP4439578B1 (ja) 2008-12-24 2010-03-24 株式会社東芝 不揮発性半導体メモリドライブ装置および不揮発性半導体メモリドライブ装置のデータ管理方法
TWI385527B (zh) 2009-02-10 2013-02-11 Phison Electronics Corp Mlc nand型快閃記憶體儲存系統及其控制器與存取方法
US8566507B2 (en) * 2009-04-08 2013-10-22 Google Inc. Data storage device capable of recognizing and controlling multiple types of memory chips
US7818525B1 (en) * 2009-08-12 2010-10-19 Texas Memory Systems, Inc. Efficient reduction of read disturb errors in NAND FLASH memory
JP2011044200A (ja) * 2009-08-20 2011-03-03 Toshiba Corp 不揮発性半導体記憶装置
JP4956593B2 (ja) * 2009-09-08 2012-06-20 株式会社東芝 メモリシステム
JP5789767B2 (ja) * 2009-11-25 2015-10-07 パナソニックIpマネジメント株式会社 半導体記録装置及び半導体記録装置の制御方法
US8589766B2 (en) * 2010-02-24 2013-11-19 Apple Inc. Codeword remapping schemes for non-volatile memories
US8365041B2 (en) 2010-03-17 2013-01-29 Sandisk Enterprise Ip Llc MLC self-raid flash data protection scheme
TWI447739B (zh) * 2010-03-22 2014-08-01 Phison Electronics Corp 錯誤校正方法、記憶體控制器與儲存系統
US8489979B2 (en) * 2010-05-28 2013-07-16 Seagate Technology Llc Methods and devices to reduce outer code failure rate variability
US8832507B2 (en) * 2010-08-23 2014-09-09 Apple Inc. Systems and methods for generating dynamic super blocks

Also Published As

Publication number Publication date
EP3091438A1 (en) 2016-11-09
WO2012030388A3 (en) 2012-05-24
EP3091438B1 (en) 2018-01-31
WO2012030388A2 (en) 2012-03-08
KR101405741B1 (ko) 2014-06-10
EP2612247A2 (en) 2013-07-10
EP2612247B1 (en) 2016-06-08
JP5516924B2 (ja) 2014-06-11
CN103119569B (zh) 2016-08-31
TW201229757A (en) 2012-07-16
US8417877B2 (en) 2013-04-09
TWI436213B (zh) 2014-05-01
US20130339580A1 (en) 2013-12-19
US20120054413A1 (en) 2012-03-01
JP2013536959A (ja) 2013-09-26
EP2612247A4 (en) 2015-05-06
JP5853040B2 (ja) 2016-02-09
US9235503B2 (en) 2016-01-12
JP2014160478A (ja) 2014-09-04
CN103119569A (zh) 2013-05-22

Similar Documents

Publication Publication Date Title
KR101405741B1 (ko) 스트라이프-기반 비-휘발성 멀티레벨 메모리 동작
US11042441B2 (en) Stripe mapping in memory
US11334413B2 (en) Estimating an error rate associated with memory
US9298545B2 (en) Data protection across multiple memory blocks
US20120198312A1 (en) Methods and devices to increase memory device data reliability
CN114730598A (zh) 利用分区命名空间简缩ssd中的逻辑到物理表指针
US20220276928A1 (en) Memory block defect detection and management
US11704196B2 (en) Reduced parity data management
US11294598B2 (en) Storage devices having minimum write sizes of data
JP5908106B2 (ja) 妥当性マスクを記憶する装置および方法ならびに操作装置
US10990476B2 (en) Memory controller and method of operating the same

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20170504

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20180518

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20190603

Year of fee payment: 6