KR101354341B1 - 비휘발성 메모리 시스템들을 위한 다중 페이지 준비 명령들 - Google Patents

비휘발성 메모리 시스템들을 위한 다중 페이지 준비 명령들 Download PDF

Info

Publication number
KR101354341B1
KR101354341B1 KR1020117029082A KR20117029082A KR101354341B1 KR 101354341 B1 KR101354341 B1 KR 101354341B1 KR 1020117029082 A KR1020117029082 A KR 1020117029082A KR 20117029082 A KR20117029082 A KR 20117029082A KR 101354341 B1 KR101354341 B1 KR 101354341B1
Authority
KR
South Korea
Prior art keywords
command
nonvolatile memory
multipage
subsequent
prepare
Prior art date
Application number
KR1020117029082A
Other languages
English (en)
Other versions
KR20120014579A (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 KR20120014579A publication Critical patent/KR20120014579A/ko
Application granted granted Critical
Publication of KR101354341B1 publication Critical patent/KR101354341B1/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
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation

Landscapes

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

Abstract

비휘발성 메모리 시스템들을 위한 다중 페이지 준비 명령들이 개시된다. 다중 페이지 준비 명령들은 다가오는 다중 페이지 프로그램 동작들을 위한 비휘발성 메모리 디바이스를 준비하는데 사용될 수 있는 데이터를 제공한다. 호스트 제어기는 다중 페이지 프로그램 명령의 사용을 최적화하기 위해 다중 페이지 프로그램 동작에 앞서 명령들을 사용할 수 있다. 비휘발성 메모리 디바이스는, 명령 순서를 변경하거나 또는 후속 동작을 위해 가장 최적화된 명령 세트를 사용하는 것과 같이, 후속 동작에 대한 준비시에 비휘발성 메모리를 구성하기 위해 명령들을 사용할 수 있다.

Description

비휘발성 메모리 시스템들을 위한 다중 페이지 준비 명령들{MULTIPAGE PREPARATION COMMANDS FOR NON-VOLATILE MEMORY SYSTEMS}
이 발명의 내용은 일반적으로, 관리형 비휘발성 메모리(managed NVM)의 액세스 및 관리에 관한 것이다.
플래쉬(flash) 메모리는 전기적으로 소거가능하고 프로그램가능한 판독 전용 메모리(EEPROM)의 종류이다. 플래쉬 메모리들은 비휘발성이고 비교적 조밀하기 때문에, 그것들은 휴대용 컴퓨터, 이동 전화기, 디지털 카메라, 포터블 뮤직 플레이어, 및 다른 스토리지 솔루션들(storage solutions)(예를 들면, 자기 디스크들)이 적당하지 않은 많은 그 외의 디바이스들에 파일들 및 그 외의 영구적인 오브젝트들을 저장하는데 사용된다.
NAND는 하드 디스크 또는 메모리 카드와 같이, 블럭 디바이스처럼 액세스가능한 플래쉬 메모리의 종류이다. 각각의 블럭은 다수의 페이지들(pages)(예를 들면, 64-128 페이지들)로 이루어진다. 통상적인 페이지 크기는 4KB 내지 8KB 바이트이다. NAND 디바이스는 각각 4096 내지 8192 블럭들을 가지는 다수의 다이(die)들을 가질 수 있다. 에러 검출 및 정정 체크섬(checksum)들을 저장하는데 사용되는 바이트들의 수는 각각의 페이지에 연관되어 있다. 판독 및 프로그래밍은 페이지 기반으로 수행되며, 소거는 블럭 기반으로 수행되고, 블럭내의 데이터는 오직 순차적으로 기입될 수 있다. NAND는 정상적인 디바이스 동작중에 플립(flip)될 수 있는 비트들을 보상하기 위해 에러 정정 코드(Error Correction Code; ECC)에 의존한다. 소거 또는 프로그램 동작들을 수행할 때, NAND 디바이스는 프로그램하거나 소거하는 것을 실패한 블럭들을 검출하고, 그 블럭들을 불량 블럭 맵에 불량으로 표시할 수 있다. 데이터는 다른 양호한 블럭 및 업데이트된 불량 블럭 맵에 기입될 수 있다.
관리형 NAND 디바이스들은, 에러 정정 및 검출뿐만 아니라, NAND 메모리의 메모리 관리 기능들을 다루기 위해 미가공된 NAND에 메모리 제어기를 결합시킨다. 관리형 NAND는 볼 그리드 어레이(Ball Grid Array)(BGA) 패키지들, 또는 멀티미디어 메모리 카드(MMC) 및 시큐어 디지털(SD) 카드와 같은 표준화된 프로세서 인터페이스들을 지원하는 그 외의 집적 회로(IC) 패키지에서 상업적으로 이용가능하다. 관리형 NAND 디바이스는 다수의 NAND 디바이스들 또는 다이들을 포함할 수 있으며, 이들은 하나 이상의 칩 선택 신호들을 사용함으로써 액세스될 수 있다. 칩 선택은 동일한 버스(bus)에 연결된 일부 칩들 중에 하나의 칩을 선택하기 위해 디지털 전자기기에서 사용되는 제어 라인이다. 칩 선택은 통상적으로 대부분의 IC 패키지들상의 명령 핀이며, 디바이스의 입력 핀들을 그 디바이스의 내부 회로에 연결시킨다. 칩 선택 핀이 비활성 상태에 유지될 때, 칩 또는 디바이스는 그것의 입력 핀들의 상태에서의 변화를 무시한다. 칩 선택 핀이 활성 상태에 유지될 때, 칩 또는 디바이스는 그것이 버스 상의 유일한 칩인 것처럼 반응한다.
ONFI(Open NAND Flash Interface Working Group)은 서로 다른 벤더들로부터 일치되는 NAND 디바이스들 사이에서 상호 운영성(interoperability)을 가능하도록 하기 위한 NAND 플래쉬 칩들에 대한 표준화된 저레벨 인터페이스를 개발해 왔다. ONFI 스펙 버전 1.0은, : TSOP-48, WSOP-48, LGA-52 및 BGA-63 패키지들에서의 NAND 플래시에 대한 표준 물리적 인터페이스(핀-아웃); NAND 플래쉬 칩들을 판독, 기입 및 소거하는 것에 대한 표준 명령 세트; 및 자기 확인(self-identification)을 위한 메카니즘, 을 명기한다. ONFI 스펙 버전 2.0은, 채널 1에 연결된 홀수 칩 선택(칩 인에이블 또는 "CE"로도 지침됨)들 및 채널 2에 연결된 짝수 CE를 가지는 듀얼 채널 인터페이스들을 지원한다. 물리적인 인터페이스는 전체 패키지에 대해 8 CE들 이상을 가질 수 없다.
ONFI 스펙들이 상호 운영성을 가능하도록 하는 반면에, 현재의 ONFI 스펙들은 관리형 NAND 솔루션들을 완전히 활용하지 못한다.
비휘발성 메모리 시스템들을 위한 다중 페이지 준비 명령들이 개시된다. 다중 페이지 준비 명령들은 다가오는 다중 페이지 프로그램 동작들을 위한 비휘발성 메모리 디바이스를 준비하는데 사용될 수 있는 데이터를 제공한다. 호스트 제어기는 다중 프로그램 명령의 사용을 최적화하기 위해 다중 페이지 프로그램 동작에 앞서 명령들을 사용할 수 있다. 비휘발성 메모리 디바이스는, 명령 순서를 바꾸거나 이후의 동작을 위해 가장 최적화된 명령 세트를 사용하는 것과 같이, 후속 동작에 대한 준비에 있어서 비휘발성 메모리를 구성하기 위해 명령들을 사용할 수 있다.
도 1은 관리형 NVM 패키지에 연결된 호스트 프로세서를 포함하는 예시적인 메모리 시스템의 블럭도이다.
도 2는 도 1의 관리형 NVM 패키지에 대한 예시적인 어드레스 맵핑(address mapping)을 도시한다.
도 3은 불량 블럭 교체를 포함하는, 도 2의 어드레스 맵핑을 도시한다.
도 4는 다중 페이지 준비 명령들을 수신하기 위한 NVM 패키지를 도시한다.
도 5는 예시적인 다중 페이지 준비 동작을 위한 타이밍 도이다.
도 6은 다중 페이지 준비 명령 프로세싱용 호스트 제어기에 의해 수행되는 예시적인 프로세스의 흐름도이다.
도 7은 다중 페이지 준비 명령 프로세싱용 비휘발성 메모리에 의해 수행되는 예시적인 프로세스의 흐름도이다.
메모리 시스템 개괄
도 1은, 관리형 NVM 패키지(104)(예를 들면, NAND 디바이스)에 연결된 호스트 제어기(102)를 포함하는 예시적인 메모리 시스템(100)의 블럭도이다. NVM 패키지(104)는 다수의 NVM 디바이스들(108)(예를 들면, 다수의 미가공 NAND 다이들(dies))을 포함하는 BGA 패키지나 그 외의 IC 패키지일 수 있다. 메모리 시스템(100)은 휴대용 컴퓨터들, 이동 전화기들, 디지털 카메라들, 포터블 뮤직 플레이어들, 장난감들, 썸(thumb) 드라이브들, 이메일 디바이스들 및 비 휘발성 메모리가 소망되거나 요구되는 임의의 다른 장치들을 포함하지만, 이에 국한되지 않는 다양한 디바이스들에서 사용될 수 있다. 본 명세서에서 사용되는 것과 같이, 미가공 NVM은 외부 호스트 프로세서에 의해서 관리되는 메모리 디바이스 또는 패키지이며, 관리형 NVM은 에러 정정, 마모 균등화(wear-leveling), 불량 블럭 관리 등과 같은 적어도 하나의 내부 메모리 관리 기능을 포함하는 메모리 디바이스 또는 패키지이다.
일부 실시예들에서, NVM 패키지(104)는 내부 칩 선택 신호들을 사용하여 내부 채널들을 통해 NVM 디바이스들(108)을 액세스하고 관리하기 위한 제어기(106)를 포함할 수 있다. 내부 채널은 제어기(106)와 NVM 디바이스(108) 사이의 데이터 경로(data path)이다. 제어기(106)는 메모리 관리 기능들(예를 들면, 마모 균등화, 불량 블럭 관리)을 수행할 수 있고, 데이터 에러들(예를 들면, 플립된 비트들(flipped bits))을 감지 및 정정하기 위한 에러 정정(ECC) 엔진(110)을 포함할 수 있다. 일부 실시예들에서, ECC 엔진(110)은 제어기(106) 내의 하드웨어 컴포넌트로서 구현될 수도 있고, 또는 제어기(106)에 의해 실행되는 소프트웨어 컴포넌트로서 구현될 수도 있다. 일부 실시예들에서, ECC 엔진(110)은 NVM 디바이스(108)에 위치될 수 있다.
일부 실시예들에서, 호스트 제어기(102) 및 NVM 패키지(104)는 호스트에 비저블한(visible) 통신 채널("호스트 채널")을 통해 정보(예를 들면, 제어 명령들, 어드레스들, 데이터)를 통신할 수 있다. 호스트 채널은 ONFI 스펙 버전 2.0에서 설명된 것처럼, 미가공 NAND 인터페이스들 또는 듀얼 채널 인터페이스들과 같은 표준 인터페이스들을 지원할 수 있다. 또한 호스트 제어기(102)는 호스트 칩 인에이블(CE) 신호를 제공할 수 있다. 호스트 CE는 호스트 채널을 선택하기 위해 호스트 제어기(102)에 비저블하다.
예시적인 메모리 시스템(100)에서, NVM 패키지(104)는 CE 숨기기(hiding)를 지원한다. CE 숨기기는 단일 호스트 CE가 NVM 패키지(104)의 각각의 내부 채널에 사용되도록 하며, 따라서 NVM 패키지(104)의 인터페이스를 지원하는데 필요한 신호들의 수를 감소시킬 수 있다. 도 2 및 도 3을 참조로하여 설명된 바와 같이, 메모리 액세스들은 어드레스 공간 및 어드레스 맵핑을 사용하여 내부 채널들 및 NVM 디바이스(108)에 맵핑될 수 있다. 개별적인 NVM 디바이스(108)는 제어기(106)에 의해 생성된 내부 CE 신호들을 사용하여 인에이블될 수 있다.
예시적인 어드레스 맵핑
도 2는 도 1의 관리형 NVM 패키지(104)에 대한 예시적인 어드레스 맵핑을 도시한다. 특히, 맵핑은, 각각의 다이(die)가 잠재적으로 다수의 플레인들(planes)을 포함할 수 있는, 다수의 다이들을 포함하는 관리형 NAND 디바이스들과 함께 사용될 수 있다. 일부 실시예들에서, 어드레스 맵핑은 CAU들(Concurrently Addressable Units)에서 작동한다. CAU는 NVM 패키지 내에 다른 CAU들과 동시에 또는 병렬로 판독되거나, 프로그램되거나, 소거될 수 있는 단일 호스트 채널로부터 엑세스 가능한 물리적인 저장 장치(storage)의 부분이다. CAU는, 예를 들어, 단일 플레인 또는 단일 다이일 수 있다. CAU의 크기는 CAU내의 소거 가능한 블럭들의 수이다.
맵핑은 도 2의 예시적인 메모리 아키텍쳐를 이용하여 설명될 것이다. 이 예시적 아키텍쳐를 위해, 블럭 사이즈는 소거 가능한 블럭의 페이지들의 수로서 정의된다. 일부 실시예들에서, 16 바이트의 메타데이터(metadata)는 각 4 킬로바이트의 데이터에 대해 이용가능하다. 그 외의 메모리 아키텍쳐 역시 가능하다. 예를 들면, 메타데이터는 더 많은 또는 더 적은 바이트들에 할당될 수 있다.
도 2에 도시된 어드레스 맵핑은 NAND 블럭들을 판독/프로그램/소거하는 미가공 NAND 프로토콜, 그리고 최적화된 성능을 가능하게 하는 추가의 명령들의 사용을 가능하게 한다. NVM 패키지(104)는 NAND의 데이터 신뢰성을 관리하기 위한 ECC 엔진(예를 들면, ECC 엔진(110))을 포함한다. 따라서, 호스트 제어기(102)는 ECC 엔진(110)을 포함할 필요가 없거나, 또는 별도로 신뢰성의 목적으로 데이터를 처리할 필요가 없다.
NVM 패키지(104)는 다른 CAU들과 동시에 또는 병렬로 액세스 가능한(예를 들면, NAND 메모리 셀들로부터 내부 레지스터로 데이터를 움직이는) 공간으로서 CAU를 정의한다. 이 예시적인 아키텍쳐에서, 모든 CAU들은 같은 수의 블럭들을 포함한다고 가정된다. 다른 아키텍쳐들에서, CAU들은 다른 수의 블럭들을 가질 수 있다. 아래의 표 1은 CAU에서 페이지를 액세스하기 위한 예시적인 행 어드레스 포맷을 기술한다.
Figure 112011096464218-pct00001
표 1을 참조하면, 예시적인 n-비트(예를 들면, 24비트) 행 어드레스는 다음의 포맷[CAU: Block: Page]으로 NAND 디바이스의 제어기에 제시될 수 있다. CAU는 다이 또는 플레인을 나타내는 수(예를 들면, 정수)이다. 블럭(Block)은 CAU 수에 의해 식별되는 CAU 내의 블럭 오프셋(offset)이고, 페이지(Page)는 블럭에 의해 식별되는 블럭 내의 페이지 오프셋이다. 예를 들면, 블럭당 128 페이지들, CAU 당 8192 블럭들 그리고 6 CAU를 가진 디바이스에서: X는 7 (27=128)이 될 것이며, Y는 13 (213=8192)이 될 것이며, 그리고 Z는 3 (22<6<23)이 될 것이다.
도 2에 도시된 예시적인 NVM 패키지(104)는 두 개의 NAND 다이들(204a, 204b)을 포함하고, 각각의 다이는 두 개의 플레인들을 가진다. 예를 들면, 다이(204a)는 플레인들(206a, 206b)을 포함한다. 그리고, 다이(204b)는 플레인들(206c, 206d)을 포함한다. 이 예시에서, 각각의 플레인은 CAU이고, 각각의 CAU는 블럭당 128페이지들을 가진 2048 멀티 레벨 셀(MLC) 블럭들을 가진다. 프로그램 동작 및 소거 동작은 블럭들(각각의 CAU로부터의 블럭)의 스트라이드(stride)에서 수행될 수 있다. 스트라이드는 서로 다른 CAU로부터 각각 유래된 블럭들의 배열로서 정의된다. 도시된 예시에서, "스트라이드0"은 CAU들(0-3) 각각으로부터의 블럭 0을 정의하며, "스트라이드1"은 CAU들(0-3) 각각으로부터의 블럭 1을 정의하며, "스트라이드2"는 CAU들(0-3) 각각으로부터의 블럭 2를 정의하며, 다른 것들도 마찬가지다.
NVM 패키지는 제어 버스(control bus)(208) 및 어드레스/데이터 버스(210)를 통해 CAU들과 통신하는 NVM 제어기(202)를 포함한다. 동작중에, NVM 제어기(202)는 호스트 제어기(도시되지 않음)로부터 명령들을 수신하고, 상기 명령에 응답하여, 하나 이상의 CAU 상에서 동작(예를 들면, 판독, 프로그램 또는 소거 동작)을 수행하기 위해 제어기 버스(208) 상의 제어 신호들 및 어드레스/데이터 버스(210) 상의 어드레스 또는 데이터를 어써트(assert)한다. 일부 실시예들에서, 도 2를 참조로 설명된 것처럼, 명령은 [CAU: Block: Page]의 형태를 가지는 행 어드레스를 포함한다.
도 3은 불량 블럭 교체를 포함하는 도 2의 어드레스 맵핑을 도시한다. 이 예시에서, 호스트 제어기(102)는 NVM 패키지(104)에 대한 스트라이드 어드레스를 발행한다. NVM 패키지는 세 개의 CAU를 포함하며, CAU들 중 하나는 스트라이드 블럭 오프셋에 불량 블럭을 포함한다. "스트라이드4" 어드레스는 보통 CAU0:Block4, CAU1:Block4 및 CAU2:Block4에 액세스할 수 있다. 그러나, 이 예시에서, 불량 블럭 CAU1:Block4는 CAU1:Block2000으로 대체된다.
다중 페이지 준비 명령들을 수신하기 위한 예시적인 NVM 패키지
도 4는 다중 페이지 준비 명령들을 수신하기 위한 NVM 패키지를 도시한 것이다. 일부 구현예들에서, NVM 패키지(400)는 외부 호스트 제어기(도시되지 않음)로부터 수신된 다중 페이지 준비 명령들의 리스트를 유지하는 제어기(402)를 포함한다. 명령들은 제어기가 다중 페이지 프로그램 동작들과 같은 다중 페이지 동작들을 위한 CAU들을 준비하기 위해 사용할 수 있는 행 어드레스[CAU: Block: Page]를 포함할 수 있다.
NVM 패키지(400)는 다중 페이지 준비 명령에 의해 제공된 행 어드레스를 이용하여, 가장 최적화된 명령 세트를 주문하고 이용함으로써 페이지들을 프로그램하거나 그 외의 동작들을 수행할 수 있다. 일부 구현예들에서, 다음 두 가지를 전송하기 위해 3 바이트들의 어드레스가 명령 내에서 사용된다:
● 바이트 0 - 정보를 사용할 명령, 및
● 바이트들 1­2 - 어드레스 카운트 ; 다중 페이지 동작에서 액세스될 페이지들의 수.
데이터 바이트들(입력/쓰기)은 곧 다가올 다중 페이지 동작들에서 사용될 페이지 어드레스들(행)을 전송하기 위해 사용될 수 있다. 어드레스들의 카운트 및 페이지 어드레스들은 둘 다 리틀 엔디안(little endian)이 될 수 있다.
도 5는 예시적인 다중 페이지 준비 동작에 대한 타이밍 도이다. 일부 구현예들에서, 호스트 제어기는 3*N 바이트 이상을 전송할 수 있으며, N은 프로그램될 페이지들의 수이다. 도시된 예시에서, 다중 페이지 프로그램 준비 동작이 설명된다. 다른 타입들의 동작들도 역시 사용될 수 있다.
제1 코드, B0h는 다중 페이지 프로그램 준비 동작을 나타낸다. CMD는, 호스트 제어기가 데이터를 이용하여 페이지 어드레스들 W-addr[0], W-addr[1], 및 W-addr[2]를 프로그램하기 위해 사용할 다중 페이지 프로그램 명령을 설명한다. 두 개의 바이트, Count-0 및 Count-1은 카운트에 후속하는 페이지 어드레스들의 수, W-addr[x]를 나타낸다. 이 예시에서는, 카운트 바이트들을 뒤따르는 3 개의 페이지 어드레스들이 있다. 호스트 제어기는 프로그램 동작을 페이지 N 보다 일찍 종료시키는 것을 선택할 수 있다(예를 들면, 마지막 명령어를 활용함). 그 후, NVM 패키지는 동작을 정확히 끝낼 수 있다. 전송된 모든 페이지들은 프로그램될 수 있다. 프로그램되지 않은 페이지들은 소거된 채로 남을 수 있고, 나중에 프로그램될 수 있다. 코드들 00h, 00h, 00h 및 40h가 후속하는 코드 77h는, 페이지들이 프로그램되었는지를 결정하는 상태 요청 명령을 나타낸다.
다중 페이지 준비 동작에 후속하여, 호스트 제어기는 동작 상태를 체크할 수 있고, 상태 값들에 따라 반응하거나 또는 동작할 수 있다. 아래의 표 2는 판독 동작 상태가 반환할 수 있는 서로 다른 값들 및 호스트 제어기가 무엇을 할지를 기대되는 지에 대한 설명이 규정되어 있다.
Figure 112011096464218-pct00002
호스트 제어기에 의해 수행되는 예시적인 프로세스
도 6은 다중 페이지 준비 명령 프로세싱을 위해 호스트 제어기에 의하여 수행되는 예시적인 프로세스(600)의 흐름도이다. 일부 구현예들에서, 프로세스(600)는 제1 명령을 비휘발성 메모리 디바이스(602)에 보냄으로써 시작한다. 제1 명령은 비휘발성 메모리상에서 이후의 동작을 준비하기 위해 비휘발성 메모리 디바이스의 비휘발성 메모리를 구성하도록 동작할 수 있다.
일부 구현예들에서, 디바이스의 제어기는 준비 명령을 이용하여 CAU 인에이블먼트(enablement) 및 어드레싱 기법들(addressing schemes)을 큐잉할(queue) 수 있다. 다른 구현예들에서, 제어기는 준비 명령과 함께 피드백 정보를 동시에 수신할 수 있다. 일 예시에서, 피드백 정보는 동작중인 플레인들, 다이들 또는 버스들을 설명할 수 있어, 메모리 동작들을 수행하기 위해 제어기에 의해 대안적인 경로들이 선택되고 사용될 수 있다.
NVM 디바이스 내의 일부 미가공 NAND 다이들은 "두개의 플레인 캐쉬 모드 프로그램(Two-Plane Cache-Mode Program)"과 같은, 다양한 향상된 동작들을 지원하는 것이 가능하다. NVM 제어기는, 좀 더 최적화된 데이터 전송을 얻기 위해 향상된 동작이 적용될 수 있는 전체 시퀀스(full sequence)의 서브 시퀀스(sub-sequence)를 가능한한 검증하도록 수행되어질 프로그램 동작들의 패턴들을 분석하기 위해 준비 명령에 존재하는 정보를 이용할 수 있다. NVM 디바이스와 호스트 제어기의 상호 운영성을 관리하는 프로토콜은 블럭들의 각각의 스트라이드내의 증가하는 페이지 어드레스들의 전체 스트라이드들이 포함된 동작들의 시퀀스들을 인에이블 하기 위한 준비 명령들을 포함할 수 있다. NVM 디바이스 벤더들은 그들의 미가공 NAND 디바이스들의 성능 강화 특성들을 활용하기 위한 준비 명령들을 사용할 수 있어서, 호스트 제어기 스택들의 개발자들은 성능 강화 특성들의 스펙 세부사항들을 알 필요가 없다.
제2 명령은 동작을 수행하기 위해 비휘발성 메모리 디바이스로 전송된다(604). 동작으로부터 야기된 데이터는 비휘발성 메모리 디바이스로부터 수신된다(606).
메모리 디바이스에 의해 수행되는 예시적인 프로세스
도 7은 다중 페이지 준비 명령 프로세싱을 위해 비휘발성 메모리 디바이스에 의해 수행되는 예시적인 프로세스(700)의 흐름도이다. 일부 구현예들에서, 프로세스(700)는 호스트 제어기로부터 명령을 수신하는 것에 의해 시작된다(702). 명령은 다중 페이지 프로그램 준비 명령일 수 있다. 비휘발성 메모리는 준비 명령에 기초하여 비휘발성 메모리상의 후속 동작을 준비하도록 구성된다(704). 구성은 명령 순서를 변경하는 것 또는 최적화된 명령 세트를 이용하는 것을 포함할 수 있다.
본 명세서가 많은 특정한 것들을 포함하고 있지만, 이것들은 청구되는 것 또는 청구될 수 있는 것의 범위에 대한 제한으로 해석되어서는 안되고, 오히려 특별한 실시예들에 대해 특정한 특성들의 설명들로 해석되어야 한다. 개별적인 실시예들의 맥락으로 이 명세서에 기술된 임의의 특성들은 단일의 실시예에서 조합하여 구현될 수도 있다. 반대로, 단일 실시예의 맥락에서 설명된 다양한 특성들 역시 다수의 실시예들에서 따로따로 또는 임의의 적절한 부분 조합으로 구현될 수도 있다. 더욱이, 특성들이 일정한 조합들로 실행하는 것처럼 위에 설명될수 있고 심지어 그렇게 처음으로 청구될 수 있음에도 불구하고, 청구된 조합으로부터의 하나 이상의 특징들은 일부 경우에는 조합으로부터 소거될 수 있고, 청구된 조합은 부분 조합이나 부분 조합의 변형으로 될 수 있다.
마찬가지로, 동작들이 특별한 순서로 도면들에서 표현되었지만, 이것은 원하는 결과들을 얻기 위해, 그러한 동작들이 도시된 특별한 순서로 또는 순차적으로 수행되거나, 또는 모든 도시된 동작들이 수행되는 것을 요구하는 것으로 이해되어서는 안된다. 어떤 환경에서는, 멀티 태스킹 및 병렬 프로세싱이 유리할 수 있다. 더욱이, 위에서 설명된 실시예들의 다양한 시스템 컴포넌트들의 분리는 모든 실시예들에서 그런 분리가 요구되는 것으로 이해되어서는 안되고, 설명된 프로그램 컴포넌트들 및 시스템들은 일반적으로 단일 소프트웨어 제품에 함께 통합되거나, 또는 다수의 소프트웨어 제품들로 패키지화될 수 있다고 이해되어야 한다.
이와 같이, 특정한 실시예들이 설명되었다. 그 외의 실시예들은 하기의 청구항들의 범위내에 있다.

Claims (25)

  1. 호스트 제어기로부터 준비 명령을 수신하는 단계 - 상기 준비 명령은 하나 이상의 후속 다중 페이지(multipage) 동작들을 위한 비휘발성 메모리를 준비하는 정보를 포함하며, 상기 준비 명령은 상기 다중 페이지 동작에 연관된 다중 페이지 명령의 활용을 최적화하기 위해 다중 페이지 동작에 앞서 사용되도록 구성됨 - ; 및
    상기 준비 명령에 기초하여 상기 비휘발성 메모리에서의 후속 다중 페이지 동작을 준비하기 위해 상기 비휘발성 메모리를 구성하는 단계
    를 포함하고,
    상기 준비 명령의 상기 정보는, 상기 다중 페이지 명령과 연관된 정보, 상기 다중 페이지 명령이 수행되어질 어드레스들(addresses)의 수와 연관된 어드레스 카운트(address count), 또는 상기 다중 페이지 동작 중에 액세스 될 페이지들(pages)의 수 중 적어도 하나를 포함하는, 방법.
  2. 제1항에 있어서, 구성하는 단계는 명령 순서를 변경하는 단계 또는 최적화된 명령 세트를 사용하는 단계를 포함하는 방법.
  3. 제1항에 있어서, 상기 명령은 판독 명령 또는 프로그램 명령 중 적어도 하나인 방법.
  4. 제1항에 있어서, 상기 명령은 상태 요구 명령인 방법.
  5. 제1항에 있어서, 상기 후속 다중 페이지 동작은 다중 페이지(multipage) 프로그램 동작인 방법.
  6. 비휘발성 메모리에서의 후속 동작을 준비하기 위해 비휘발성 메모리 디바이스의 비휘발성 메모리를 구성하도록 동작 가능한 제1 명령을 상기 비휘발성 메모리 디바이스에 전송하는 단계 - 상기 제1 명령은 상기 후속 동작을 최적화하기 위해 상기 후속 동작을 분석하기 위한 정보를 포함함 - ;
    상기 비휘발성 메모리에서 동작을 수행하기 위해 상기 비휘발성 메모리 디바이스에 제2 명령을 전송하는 단계; 및
    상기 동작으로부터 야기된 데이터를 수신하는 단계
    를 포함하고,
    상기 제1 명령의 상기 정보는, 상기 제2 명령과 연관된 정보, 상기 제2 명령이 수행되어질 어드레스들(addresses)의 수와 연관된 어드레스 카운트(address count), 또는 상기 동작 중에 액세스 될 페이지들(pages)의 수 중 적어도 하나를 포함하는, 방법.
  7. 제6항에 있어서, 구성하는 단계는 명령 순서를 변경하는 단계 또는 최적화된 명령 세트를 사용하는 단계를 포함하는 방법.
  8. 제6항에 있어서, 상기 제1 명령은 판독 명령 또는 프로그램 명령 중 적어도 하나인 방법.
  9. 제6항에 있어서, 상기 제1 명령은 상태 요구 명령인 방법.
  10. 제6항에 있어서, 상기 제2 명령은 다중 페이지 프로그램 동작인 방법.
  11. 디바이스로서,
    호스트 제어기로부터 준비 명령을 수신하도록 구성된 인터페이스(interface) - 상기 준비 명령은 후속 다중 페이지 동작들을 위한 비휘발성 메모리를 준비하는 정보를 포함하며, 상기 준비 명령은 상기 다중 페이지 동작에 연관된 다중 페이지 명령의 활용을 최적화하기 위해 다중 페이지 동작에 앞서 사용되도록 구성됨 - ; 및
    상기 인터페이스에 연결되고, 상기 준비 명령에 기초하여 상기 비휘발성 메모리에서의 후속 다중 페이지 동작을 준비하기 위해 상기 비휘발성 메모리를 구성하도록 동작 가능한 제어기
    를 포함하고,
    상기 준비 명령의 상기 정보는, 상기 다중 페이지 명령과 연관된 정보, 상기 다중 페이지 명령이 수행되어질 어드레스들(addresses)의 수와 연관된 어드레스 카운트(address count), 또는 상기 다중 페이지 동작 중에 액세스 될 페이지들(pages)의 수 중 적어도 하나를 포함하는, 디바이스.
  12. 제11항에 있어서, 상기 제어기는 명령 순서를 변경하는 것 또는 최적화된 명령 세트를 사용하는 것에 의해 상기 비휘발성 메모리를 구성하는 디바이스.
  13. 제11항에 있어서, 상기 명령은 판독 명령 또는 프로그램 명령 중 적어도 하나인 디바이스.
  14. 제11항에 있어서, 상기 명령은 상태 요구 명령인 디바이스.
  15. 시스템으로서,
    복수의 명령들을 저장하는 메모리; 및
    상기 메모리에 연결된 프로세서
    를 포함하며,
    상기 프로세서는,
    비휘발성 메모리에서의 후속 동작을 준비하기 위해 비휘발성 메모리 디바이스의 비휘발성 메모리를 구성하도록 동작 가능한 제1 명령을 비휘발성 메모리 디바이스에 전송하고 - 상기 제1 명령은 상기 후속 동작을 최적화하기 위해 상기 후속 동작을 분석하기 위한 정보를 포함함 - ,
    상기 비휘발성 메모리에서 상기 동작을 수행하기 위해 상기 비휘발성 메모리 디바이스에 제2 명령을 전송하고,
    상기 동작으로부터 야기된 데이터를 수신하도록 구성 가능하며,
    상기 제1 명령의 상기 정보는, 상기 제2 명령과 연관된 정보, 상기 제2 명령이 수행되어질 어드레스들(addresses)의 수와 연관된 어드레스 카운트(address count), 또는 상기 동작 중에 액세스 될 페이지들(pages)의 수 중 적어도 하나를 포함하는, 시스템.
  16. 제15항에 있어서, 구성하는 것은 명령 순서를 변경하는 것 또는 최적화된 명령 세트를 사용하는 것을 포함하는 시스템.
  17. 제15항에 있어서, 상기 명령은 판독 명령 또는 프로그램 명령 중 적어도 하나인 시스템.
  18. 제15항에 있어서, 상기 명령은 상태 요구 명령인 시스템.
  19. 제15항에 있어서, 상기 후속 동작은 다중 페이지 프로그램 동작인 시스템.
  20. 비휘발성 메모리 디바이스에 제1 명령을 전송하는 수단 - 상기 제1 명령은 비휘발성 메모리에서의 후속 동작을 준비하기 위해 상기 비휘발성 메모리 디바이스의 비휘발성 메모리를 구성하도록 동작 가능하며, 상기 제1 명령은 상기 후속 동작을 최적화하기 위해 상기 후속 동작을 분석하기 위한 정보를 포함함 - ;
    상기 비휘발성 메모리에서 상기 동작을 수행하기 위해 상기 비휘발성 메모리 디바이스에 제2 명령을 전송하는 수단; 및
    상기 동작으로부터 야기된 데이터를 수신하는 수단
    을 포함하고,
    상기 제1 명령의 상기 정보는, 상기 제2 명령과 연관된 정보, 상기 제2 명령이 수행되어질 어드레스들(addresses)의 수와 연관된 어드레스 카운트(address count), 또는 상기 동작 중에 액세스 될 페이지들(pages)의 수 중 적어도 하나를 포함하는, 방법.
  21. 제11항에 있어서, 상기 후속 다중 페이지 동작은 다중 페이지 프로그램 동작인 디바이스.
  22. 제11항에 있어서, 상기 제어기는 동작들의 전체 시퀀스 중에서, 동작들의 서브 시퀀스들의 수행이 더 최적화된 데이터 전송을 생성하도록 하는, 상기 동작들의 서브 시퀀스들을 식별하기 위해, 수행되어질 프로그램 동작들의 패턴들을 분석하도록 더 동작 가능한, 디바이스.
  23. 제11항에 있어서, 상기 후속 다중 페이지 동작은 상기 비휘발성 메모리와 연관된 메모리 블럭들(blocks)의 스트라이드(stride)를 프로그램하기 위한 다중 페이지 프로그램 동작을 포함하며, 상기 메모리 블럭들의 스트라이드는 상이한 어드레스 유닛들과 연관된 적어도 두 개의 메모리 블럭들을 포함하는 디바이스.
  24. 제15항에 있어서, 상기 프로세서는 동작들의 전체 시퀀스 중에서, 동작들의 서브 시퀀스들의 수행이 더 최적화된 데이터 전송을 생성하도록 하는, 상기 동작들의 서브 시퀀스들을 식별하기 위해, 수행되어질 프로그램 동작들의 패턴들을 분석하도록 더 구성 가능한, 시스템.
  25. 제15항에 있어서, 상기 프로세서는 상기 제1 명령을 전송하는 동시에 상기 비휘발성 메모리 디바이스로부터 피드백을 수신하도록 더 구성 가능하며, 상기 수신된 피드백은 상기 비휘발성 메모리 디바이스 내에서 현재 동작 중인 플레인들, 다이들, 또는 버스들을 설명하는 정보를 포함하는, 시스템.
KR1020117029082A 2009-05-06 2010-04-27 비휘발성 메모리 시스템들을 위한 다중 페이지 준비 명령들 KR101354341B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US17609609P 2009-05-06 2009-05-06
US61/176,096 2009-05-06
US12/545,011 US8321647B2 (en) 2009-05-06 2009-08-20 Multipage preparation commands for non-volatile memory systems
US12/545,011 2009-08-20
PCT/US2010/032628 WO2010129306A1 (en) 2009-05-06 2010-04-27 Multipage preparation commands for non-volatile memory systems

Publications (2)

Publication Number Publication Date
KR20120014579A KR20120014579A (ko) 2012-02-17
KR101354341B1 true KR101354341B1 (ko) 2014-01-22

Family

ID=42342872

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020117029082A KR101354341B1 (ko) 2009-05-06 2010-04-27 비휘발성 메모리 시스템들을 위한 다중 페이지 준비 명령들

Country Status (6)

Country Link
US (2) US8321647B2 (ko)
EP (1) EP2430549A1 (ko)
JP (1) JP5519779B2 (ko)
KR (1) KR101354341B1 (ko)
CN (1) CN102422271B (ko)
WO (1) WO2010129306A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11321011B2 (en) 2018-03-20 2022-05-03 SK Hynix Inc. Controller for controlling command queue, system having the same, and method of operating the same

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8370603B2 (en) 2008-12-23 2013-02-05 Apple Inc. Architecture for address mapping of managed non-volatile memory
US8321647B2 (en) 2009-05-06 2012-11-27 Apple Inc. Multipage preparation commands for non-volatile memory systems
US8438453B2 (en) 2009-05-06 2013-05-07 Apple Inc. Low latency read operation for managed non-volatile memory
US8495332B2 (en) * 2009-07-24 2013-07-23 Apple Inc. Controller for optimizing throughput of read operations
US8489907B2 (en) 2009-09-16 2013-07-16 Apple Inc. Method of selective power cycling of components in a memory device independently by reducing power to a memory array or memory controller
US8838877B2 (en) * 2009-09-16 2014-09-16 Apple Inc. File system derived metadata for management of non-volatile memory
KR101936311B1 (ko) * 2010-12-03 2019-01-09 삼성전자주식회사 데이터 처리 방법
US8738882B2 (en) 2011-06-03 2014-05-27 Apple Inc. Pre-organization of data
US8706955B2 (en) 2011-07-01 2014-04-22 Apple Inc. Booting a memory device from a host
KR102025088B1 (ko) 2012-09-03 2019-09-25 삼성전자 주식회사 메모리 컨트롤러 및 상기 메모리 컨트롤러를 포함하는 전자장치
KR101932920B1 (ko) 2012-09-14 2019-03-18 삼성전자 주식회사 비휘발성 메모리 카드를 제어하는 호스트, 이를 포함하는 시스템 및 이의 동작 방법
US9081666B2 (en) * 2013-02-15 2015-07-14 Seagate Technology Llc Non-volatile memory channel control using a general purpose programmable processor in combination with a low level programmable sequencer
KR102039537B1 (ko) * 2013-03-15 2019-11-01 삼성전자주식회사 불휘발성 저장 장치 및 그것의 운영체제 이미지 프로그램 방법
US9612773B2 (en) * 2013-11-21 2017-04-04 Samsung Electronics Co., Ltd. User device having a host flash translation layer (FTL), a method for transferring an erase count thereof, a method for transferring reprogram information thereof, and a method for transferring a page offset of an open block thereof
CN109154917B (zh) * 2016-12-29 2020-09-29 华为技术有限公司 存储系统和固态硬盘
CN111488298A (zh) * 2017-12-29 2020-08-04 贵阳忆芯科技有限公司 优化nvm接口命令执行顺序的方法与装置
US11593262B1 (en) * 2018-04-25 2023-02-28 Seagate Technology Llc Garbage collection command scheduling
KR20210060867A (ko) * 2019-11-19 2021-05-27 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
US11262947B2 (en) 2019-11-27 2022-03-01 Western Digital Technologies, Inc. Non-volatile storage system with adaptive command processing

Family Cites Families (56)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63285800A (ja) 1987-05-19 1988-11-22 Fujitsu Ltd 半導体メモリ装置
JPH05135594A (ja) * 1991-11-13 1993-06-01 Mitsubishi Electric Corp 情報カ−ドの制御方式
US5341489A (en) 1992-04-14 1994-08-23 Eastman Kodak Company Memory card with programmable interleaving
EP0669720B1 (en) * 1994-02-18 2000-01-26 STMicroelectronics S.r.l. Programmable logic array structure for semiconductor nonvolatile memories, particularly flash-EPROMs
US5606710A (en) 1994-12-20 1997-02-25 National Semiconductor Corporation Multiple chip package processor having feed through paths on one die
US5615162A (en) 1995-01-04 1997-03-25 Texas Instruments Incorporated Selective power to memory
KR0157342B1 (ko) * 1995-06-09 1998-12-01 김광호 불휘발성 반도체 메모리의 전압 센싱 방법
US5812335A (en) 1995-09-01 1998-09-22 Adaptec, Inc. Programmable data transfer without sector pulses in a headerless disk drive architecture
US5751631A (en) * 1996-10-21 1998-05-12 Liu; David K. Y. Flash memory cell and a new method for sensing the content of the new memory cell
US6092158A (en) 1997-06-13 2000-07-18 Intel Corporation Method and apparatus for arbitrating between command streams
US6134149A (en) * 1999-03-01 2000-10-17 Integrated Memory Technologies, Inc. Method and apparatus for reducing high current during chip erase in flash memories
US6148354A (en) 1999-04-05 2000-11-14 M-Systems Flash Disk Pioneers Ltd. Architecture for a universal serial bus-based PC flash disk
US7827348B2 (en) * 2000-01-06 2010-11-02 Super Talent Electronics, Inc. High performance flash memory devices (FMD)
CN100442393C (zh) * 1999-10-21 2008-12-10 松下电器产业株式会社 半导体存储卡的访问装置、初始化方法和半导体存储卡
US6684301B1 (en) 2001-05-31 2004-01-27 Lsi Logic Corporation Out of order execution memory access request FIFO
JP4256600B2 (ja) 2001-06-19 2009-04-22 Tdk株式会社 メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム及びフラッシュメモリの制御方法
US7346825B2 (en) 2001-09-06 2008-03-18 Intel Corporation Error method, system and medium
US20030097519A1 (en) * 2001-11-21 2003-05-22 Yoon Ha Ryong Memory subsystem
US7181611B2 (en) 2002-10-28 2007-02-20 Sandisk Corporation Power management block for use in a non-volatile memory system
US7069399B2 (en) 2003-01-15 2006-06-27 Via Technologies Inc. Method and related apparatus for reordering access requests used to access main memory of a data processing system
US20040153902A1 (en) 2003-01-21 2004-08-05 Nexflash Technologies, Inc. Serial flash integrated circuit having error detection and correction
JP4256198B2 (ja) 2003-04-22 2009-04-22 株式会社東芝 データ記憶システム
US20060164907A1 (en) 2003-07-22 2006-07-27 Micron Technology, Inc. Multiple flash memory device management
JP4354284B2 (ja) * 2004-01-20 2009-10-28 富士通マイクロエレクトロニクス株式会社 メモリ制御装置およびメモリ制御システム
JP4085983B2 (ja) 2004-01-27 2008-05-14 セイコーエプソン株式会社 情報処理装置およびメモリアクセス方法
KR100632946B1 (ko) 2004-07-13 2006-10-12 삼성전자주식회사 불 휘발성 메모리 장치 및 그것의 프로그램 방법
DE602004014371D1 (de) 2004-09-10 2008-07-24 St Microelectronics Srl Speicher mit eingebauter Fehlerkorrekturkode-Einrichtung
JP2008033379A (ja) * 2004-11-10 2008-02-14 Matsushita Electric Ind Co Ltd 不揮発性記憶装置
KR100876084B1 (ko) 2007-02-13 2008-12-26 삼성전자주식회사 플래시 저장 장치로 삭제 정보를 전달할 수 있는 컴퓨팅시스템
KR100621631B1 (ko) 2005-01-11 2006-09-13 삼성전자주식회사 반도체 디스크 제어 장치
US7426672B2 (en) 2005-04-28 2008-09-16 International Business Machines Corporation Method for implementing processor bus speculative data completion
KR100739722B1 (ko) 2005-08-20 2007-07-13 삼성전자주식회사 플래시 메모리 관리 방법 및 플래시 메모리 시스템
US20070050668A1 (en) 2005-09-01 2007-03-01 Micron Technology, Inc. Test mode to force generation of all possible correction codes in an ECC memory
JP4999325B2 (ja) 2005-12-21 2012-08-15 ルネサスエレクトロニクス株式会社 フラッシュメモリ
US7423915B2 (en) 2006-01-17 2008-09-09 Spansion Llc Random cache read using a double memory
US7793059B2 (en) * 2006-01-18 2010-09-07 Apple Inc. Interleaving policies for flash memory
US7372715B2 (en) 2006-06-14 2008-05-13 Micron Technology, Inc. Architecture and method for NAND flash memory
US7609703B2 (en) 2006-09-15 2009-10-27 Hewlett-Packard Development Company, L.P. Group communication system and method
JP2008134736A (ja) 2006-11-27 2008-06-12 Fujifilm Corp 電子機器
US7925854B2 (en) * 2006-12-06 2011-04-12 Mosaid Technologies Incorporated System and method of operating memory devices of mixed type
KR101354152B1 (ko) 2006-12-18 2014-01-27 삼성전자주식회사 비휘발성 데이터 저장장치에 구비된 가상 파일 시스템의작업 스케줄링 방법 및 장치
JP5020625B2 (ja) 2006-12-22 2012-09-05 キヤノン株式会社 インタフェース回路
KR100869675B1 (ko) * 2007-02-05 2008-11-21 지인정보기술 주식회사 디스크립터 배열을 이용한 플래시 메모리 제어 시스템 및방법
JP2008287404A (ja) 2007-05-16 2008-11-27 Hitachi Ltd 読み出しによる非アクセスメモリセルのデータ破壊を検出及び回復する装置、及びその方法
US7975109B2 (en) 2007-05-30 2011-07-05 Schooner Information Technology, Inc. System including a fine-grained memory and a less-fine-grained memory
KR101466694B1 (ko) 2007-08-28 2014-11-28 삼성전자주식회사 Ecc 회로, ecc 회로를 구비하는 메모리 시스템 및그의 오류 정정 방법
KR101433859B1 (ko) 2007-10-12 2014-08-27 삼성전자주식회사 불휘발성 메모리 시스템 및 그것의 파일 데이터 관리 방법
US7991943B2 (en) 2007-10-26 2011-08-02 Standard Microsystems Corporation Implementation of one time programmable memory with embedded flash memory in a system-on-chip
TWI384488B (zh) * 2007-12-24 2013-02-01 Skymedi Corp Nonvolatile storage device and its data writing method
US20090198952A1 (en) * 2008-02-04 2009-08-06 Apple Inc Memory Mapping Architecture
US7979658B2 (en) 2008-03-25 2011-07-12 Spansion Llc Secure management of memory regions in a memory
US8832354B2 (en) 2009-03-25 2014-09-09 Apple Inc. Use of host system resources by memory controller
US20100287329A1 (en) * 2009-05-06 2010-11-11 Apple Inc. Partial Page Operations for Non-Volatile Memory Systems
US8321647B2 (en) 2009-05-06 2012-11-27 Apple Inc. Multipage preparation commands for non-volatile memory systems
US9092340B2 (en) * 2009-12-18 2015-07-28 Sandisk Technologies Inc. Method and system for achieving die parallelism through block interleaving
US8356137B2 (en) * 2010-02-26 2013-01-15 Apple Inc. Data storage scheme for non-volatile memories based on data priority

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
TC58NVG0S3ETA00 "TOHIBA MOS DIGITAL INTEGRATED CIRCUIT SILICON GATE CMOS"(Revision 1.0 original version 2008.11.20.) *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11321011B2 (en) 2018-03-20 2022-05-03 SK Hynix Inc. Controller for controlling command queue, system having the same, and method of operating the same

Also Published As

Publication number Publication date
WO2010129306A1 (en) 2010-11-11
US20130073800A1 (en) 2013-03-21
CN102422271A (zh) 2012-04-18
KR20120014579A (ko) 2012-02-17
US8321647B2 (en) 2012-11-27
US8806151B2 (en) 2014-08-12
EP2430549A1 (en) 2012-03-21
JP5519779B2 (ja) 2014-06-11
JP2012526324A (ja) 2012-10-25
US20100287353A1 (en) 2010-11-11
CN102422271B (zh) 2015-09-02

Similar Documents

Publication Publication Date Title
KR101354341B1 (ko) 비휘발성 메모리 시스템들을 위한 다중 페이지 준비 명령들
US8612791B2 (en) Method of selective power cycling of components in a memory device independently by turning off power to a memory array or memory controller
KR101382060B1 (ko) 관리된 비휘발성 메모리에 대한 낮은 레이턴시 판독 동작
KR101417236B1 (ko) 관리형 비휘발성 메모리의 어드레스 매핑을 위한 아키텍처
CN106681654B (zh) 映射表载入方法与存储器存储装置
US20100287329A1 (en) Partial Page Operations for Non-Volatile Memory Systems
US20090113121A1 (en) Swappable Sets of Partial-Mapping Tables in a Flash-Memory System With A Command Queue for Combining Flash Writes
US8838877B2 (en) File system derived metadata for management of non-volatile memory
US8296466B2 (en) System, controller, and method thereof for transmitting data stream
US10067677B2 (en) Memory management method for configuring super physical units of rewritable non-volatile memory modules, memory control circuit unit and memory storage device
TWI615713B (zh) 記憶體管理方法、記憶體控制電路單元及記憶體儲存裝置
CN108958640B (zh) 存储器管理方法、存储器控制电路单元及存储器存储装置
CN106920572B (zh) 存储器管理方法、存储器控制电路单元及存储器储存装置
CN106940623B (zh) 存储器管理方法、存储器控制电路单元及存储器储存装置

Legal Events

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

Payment date: 20161220

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20171219

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20181226

Year of fee payment: 6