KR20110098003A - 관리형 비휘발성 메모리의 어드레스 매핑을 위한 아키텍처 - Google Patents

관리형 비휘발성 메모리의 어드레스 매핑을 위한 아키텍처 Download PDF

Info

Publication number
KR20110098003A
KR20110098003A KR1020117017378A KR20117017378A KR20110098003A KR 20110098003 A KR20110098003 A KR 20110098003A KR 1020117017378 A KR1020117017378 A KR 1020117017378A KR 20117017378 A KR20117017378 A KR 20117017378A KR 20110098003 A KR20110098003 A KR 20110098003A
Authority
KR
South Korea
Prior art keywords
read
nvm
stride
package
simultaneously addressable
Prior art date
Application number
KR1020117017378A
Other languages
English (en)
Other versions
KR101417236B1 (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 KR20110098003A publication Critical patent/KR20110098003A/ko
Application granted granted Critical
Publication of KR101417236B1 publication Critical patent/KR101417236B1/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/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • 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
    • G06F12/0607Interleaved addressing
    • 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
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • 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/7208Multiple device management, e.g. distributing data over multiple flash devices

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)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System (AREA)

Abstract

개시된 아키텍처는 어드레스 매핑을 이용하여, 호스트 인터페이스 상의 블록 어드레스를 비휘발성 메모리(NVM) 디바이스의 내부 블록 어드레스에 매핑한다. 블록 어드레스는 이 블록 어드레스에 의해 식별된 CAU(Concurrently Addressable Unit)를 선택하기 위한 내부 칩 선택에 매핑된다. 개시된 아키텍처는 판독, 기입, 삭제 및 겟 스테이터스(get status) 동작들을 위한 일반적인 NVM 커맨드들을 지원한다. 이 아키텍처는 다중 CAU 아키텍처를 레버리지하는 판독 및 기입 동작들을 지원하기 위한 확장된 커맨드 세트도 지원한다.

Description

관리형 비휘발성 메모리의 어드레스 매핑을 위한 아키텍처{ARCHITECTURE FOR ADDRESS MAPPING OF MANAGED NON-VOLATILE MEMORY}
관련 출원
본 출원은 2008년 12월 23일 출원된 미국 가출원 번호 61/140,436 및 2009년 11월 6일 출원된 미국 특허 출원 번호 12/614,369의 우선권을 주장하고, 상기 출원 각각은 그 전체가 본원에 참고로서 병합된다.
본 발명은 일반적으로 관리형 비휘발성 메모리의 액세스 및 관리에 관한 것이다.
플래시 메모리는 EEPROM(electrically erasable programmable read-only memory)의 한 유형이다. 플래시 메모리는 비휘발성이며 비교적 조밀하므로, 핸드헬드 컴퓨터, 이동 전화기, 디지털 카메라, 휴대용 음악 플레이어, 및 다른 저장 솔루션(예를 들어, 자기 디스크)이 적절하지 않은 다수의 다른 디바이스에서 파일 및 기타 영구 개체를 저장하는데 이용된다.
NAND는 하드 디스크 또는 메모리 카드와 같은 블록형 디바이스와 같이 액세스될 수 있는 플래시 메모리의 한 유형이다. 전형적인 블록 크기는 16 KB의 블록 크기에 대하여 각각 512 바이트인 32 페이지이다. 블록 각각은 다수의 페이지를 포함한다. 전형적인 페이지 크기는 512 바이트이다. 페이지 각각은 에러 검출 및 정정 체크섬의 저장을 위해 이용되는 다수의 바이트(예를 들어, 12 내지 16 바이트)와 연관된다. 판독 및 프로그래밍은 페이지 단위로 수행되고, 삭제는 블록 단위로 수행되며, 블록 내의 데이터는 단지 순차적으로 기입될 수 있다. NAND는 에러 정정 코드(Error Correction Code; ECC)에 의존하여 정상 디바이스 동작 동안에 플립(flip)할 수 있는 비트를 보상한다. 삭제 또는 프로그램 동작을 수행하는 경우에, NAND 디바이스는 프로그램 또는 삭제에 실패한 블록을 검출하고, 그 블록을 불량 블록 맵에 불량으로서 표시할 수 있다. 그 데이터는 상이한, 양호한 블록에 기입될 수 있고, 불량 블록 맵이 갱신될 수 있다.
관리형 NAND 디바이스는 미가공 NAND를 메모리 컨트롤러와 결합하여, 에러 정정 및 검출뿐만 아니라, NAND 메모리의 메모리 관리 기능도 핸들링한다. 관리형 NAND는 BGA(Ball Grid Array) 패키지, 또는 MMC(Multimedia Memory Card) 및 SD(Secure Digital) 카드와 같은 표준화된 프로세서 인터페이스를 지원하는 기타 IC(Integrated Circuit) 패키지에서 상업적으로 이용가능하다. 관리형 NAND 디바이스는 하나 이상의 칩 선택 신호를 이용하여 액세스될 수 있는 다수의 NAND 디바이스 또는 다이를 포함할 수 있다. 칩 선택은 동일 버스에 접속된 여러 칩 중에서 하나의 칩을 선택하기 위해 디지털 전자기기에서 이용되는 제어 라인이다. 통상, 칩 선택은 디바이스 상의 입력 핀을 그 디바이스의 내부 회로에 접속하는 대부분의 IC 패키지 상의 커맨드 핀이다. 칩 선택 핀이 비활성 상태로 유지되면, 칩 또는 디바이스는 그 입력 핀의 상태 변화를 무시한다. 칩 선택 핀이 활성 상태로 유지되면, 칩 또는 디바이스는 자신이 버스 상의 유일한 칩인 것처럼 응답한다.
ONFI(Open NAND Flash Interface Working Group)는, 상이한 벤더로부터의 같은 NAND 디바이스들 간의 상호운용성을 허용하도록, NAND 플래시 칩에 대한 표준화된 저레벨 인터페이스를 개발하였다. ONFI 규격 버전 1.0은 다음과 같이 지정한다: TSOP-48, WSOP-48, LGA-52, 및 BGA-63 패키지의 NAND 플래시에 대한 표준 물리 인터페이스(pin-out); NAND 플래시 칩을 판독, 기입, 및 삭제하기 위한 표준 커맨드 세트; 및 자기 인식을 위한 메커니즘. ONFI 규격 버전 2.0은 듀얼 채널 인터페이스[홀수 칩 세트(또한, 칩 인에이블 또는 "CE"로 지칭됨)가 채널 1에 접속되고, 짝수 CE가 채널 2에 접속됨]를 지원한다. 물리 인터페이스는 전체 패키지에 대하여 8개 보다 많지 않은 CE를 갖는다.
ONFI 규격이 상호운용성을 허용하지만, 현재 ONFI 규격은 관리형 NAND 솔루션의 이점을 완전히 취하는 것은 아니다.
개시된 아키텍처는 어드레스 매핑을 이용하여 호스트 인터페이스 상의 블록 어드레스를 비휘발성 메모리(NVM) 디바이스의 내부 블록 어드레스에 매핑한다. 블록 어드레스는 이 블록 어드레스에 의해 식별된 CAU(Concurrently Addressable Unit)를 선택하기 위한 내부 칩 선택에 매핑된다. 개시된 아키텍처는 판독, 기입, 삭제 및 겟 스테이터스(get status) 동작들을 위한 일반적인 비휘발성 메모리 커맨드를 지원한다. 또한, 그 아키텍처는 다수의 CAU 아키텍처를 레버리지하는 판독 및 기입 동작을 지원하기 위한 확장된 커맨드 세트를 지원한다.
도 1은 관리형 NVM 패키지에 연결된 호스트 프로세서를 포함한 예시적인 메모리 시스템의 블록도이다.
도 2a는 도 2a의 어드레스 매핑을 구현하는 관리형 NVM 패키지를 위한 예시적인 어드레스 매핑을 예시한다.
도 2b는 도 1의 예시적인 NVM 패키지의 블록도이다.
도 2c는 도 1의 관리형 NVM 패키지를 위한 예시적인 어드레스 매핑 방식을 도시한다.
도 2d는 불량 블록 대체를 포함하는 도 2c의 어드레스 매핑 방식을 도시한다.
도 3은 어드레스를 포함하는 Read 커맨드를 이용하는 예시적인 동작의 흐름도이다.
도 4는 어드레스를 포함하는 Write 커맨드를 이용하는 예시적인 동작의 흐름도이다.
도 5는 어드레스를 포함하는 Erase 커맨드를 이용하는 예시적인 동작의 흐름도이다.
도 6a 내지 도 6b는 StrideRead 커맨드를 이용하는 예시적인 동작의 흐름도이다.
도 7은 StrideWrite 커맨드를 이용하는 예시적인 동작의 흐름도이다.
도 8은 도 1의 NVM 패키지에서 커맨드 큐를 이용하는 것을 도시한다.
도 9는 도 8에 도시된 커맨드 큐에서 커맨드를 재순서화하기 위한 예시적인 프로세스의 흐름도이다.
메모리 시스템 개관
도 1은 관리형 NVM 패키지(104)(예를 들어, 관리형 NAND 패키지)에 연결된 호스트 프로세서(102)를 포함하는 예시적인 메모리 시스템(100)의 블록도이다. NVM 패키지(104)는 다수의 NVM 디바이스(108)(예를 들어, 다수의 미가공 NAND 디바이스)를 비롯한, BGA 패키지 또는 기타 IC 패키지일 수 있다. 메모리 시스템(100)은 핸드헬드 컴퓨터, 이동 전화기, 디지털 카메라, 휴대용 음악 플레이어, 장난감, 섬 드라이브(thumb drives), 이메일 디바이스, 및 비휘발성 메모리가 필요하거나 요구되는 기타 다른 디바이스를 비롯한 다양한 디바이스에서 이용될 수 있지만, 이에 한정되는 것은 아니다. 본원에서 이용되는, 미가공 NVM은 외부 호스트 프로세서에 의해 관리되는 메모리 디바이스 또는 패키지이고, 관리형 NVM은 에러 정정, 웨어 레벨링(wear leveling), 불량 블록 관리 등과 같은 적어도 하나의 내부 메모리 관리 기능을 포함하는 메모리 디바이스 또는 패키지이다.
몇몇 구현예에서, NVM 패키지(104)는 내부 칩 선택 신호를 이용하여 내부 채널을 통해 NVM 디바이스(108)를 액세스 및 관리하기 위한 컨트롤러(106)를 포함할 수 있다. 내부 채널은 컨트롤러(106)와 NVM 디바이스(108) 간의 데이터 경로이다. 컨트롤러(106)는 메모리 관리 기능(예를 들어, 웨어 레벨링, 불량 블록 관리)을 수행할 수 있고, 데이터 에러(예를 들어, 비트 플리핑)를 검출 및 정정하기 위한 에러 정정(ECC) 엔진(110)을 포함할 수 있다. 몇몇 구현예에서, ECC 엔진(110)은 컨트롤러(106)에 의해 실행되는 소프트웨어 컴포넌트로서 또는 컨트롤러(106) 내의 하드웨어 컴포넌트로서 구현될 수 있다. 몇몇 구현예에서, ECC 엔진(110)은 NVM 디바이스(108)에 위치할 수 있다. 데이터 처리량을 효율적으로 관리하는 파이프라인 관리 모듈(112)이 포함될 수 있다.
몇몇 구현예에서, 호스트 프로세서(102) 및 NVM 패키지(104)는 호스트("호스트 채널")이 볼 수 있는 통신 채널을 통해 정보(예를 들어, 제어 채널, 어드레스, 데이터)를 통신할 수 있다. 호스트 채널은, ONFI 규격 버전 2.0에서 설명된 것과 같이, 미가공 NAND 인터페이스 또는 듀얼 채널 인터페이스와 같은 표준 인터페이스를 지원할 수 있다. 호스트 프로세서(102)는 또한 호스트 칩 이네이블(CE) 신호를 제공할 수 있다. 호스트 채널을 선택하도록 호스트 프로세서(102)가 호스트 CE를 볼 수 있다.
예시적인 메모리 시스템(100)에서, NVM 패키지(104)는 CE 숨기기(hiding)를 지원한다. CE 숨기기는 단일 호스트 CE가 NVM 패키지(104)의 내부 채널 각각에 대하여 이용되는 것을 허용하여, NVM 패키지(104)의 인터페이스를 지원하는데 필요한 신호의 수를 줄인다. 메모리 액세스는 도 2a에서 설명된 것과 같이, 어드레스 공간 및 어드레스 매핑을 이용하여 내부 채널 및 NVM 디바이스(108)에 매핑될 수 있다. 개별 NVM 디바이스(108)는 컨트롤러(106)에 의해 생성된 내부 CE 신호를 이용하여 이네이블될 수 있다.
예시적인 어드레스 매핑
도 2a는 관리형 NVM을 위한 예시적인 어드레스 매핑을 도시한다. 컨트롤러(106)는 호스트 채널을 통해 수신된 블록 어드레스를 NVM 디바이스(108) 내부의 특정 블록 어드레스로 매핑한다. 어드레스 매핑을 용이하게 하도록, 컨트롤러(106)는 호스트 프로세서(102)에 다이 크기, 블록 크기, 페이지 크기, MDS(Meta Data Size), runstride를 비롯한 기하학적 파라미터를 제공하지만, 이에 한정되는 것은 아니다.
runstride 파라미터는 호스트 프로세서(102)가 페이지 어드레스의 효율적인 시퀀스를 생성하는 것을 가능하게 한다. run 파라미터는 호스트 CE 및 어드레스 매핑을 이용하여 동시에 어드레스 가능한 NVM 패키지(104)의 CAU의 수를 식별한다. CAU는 다른 CAU와 동시에 기입 또는 판독될 수 있는 단일 호스트 채널로부터 액세스가능한 NVM 디바이스(108)의 일부일 수 있다. 또한, CAU는 전체 NVM 디바이스(108)일 수 있다. stride 파라미터는 CAU 내의 벤더 특정 동작 커맨드에 대한 블록의 수를 식별한다.
도 2a에 도시된 예시적인 블록 맵에서, NVM 패키지(104)는 2인 run(즉, 2개의 CAU) 및 4인 stride(즉, CAU당 4개의 블록)를 가져서, 호스트 프로세서(102)가 8개 블록의 슬라이스[b0, b1, b2, b3, b4, b5, b6, b7]를 생성할 수 있도록 한다. 따라서, 슬라이스는 전체 runstride와 곱한 수의 블록 세트이다. NVM 패키지는 원하는 애플리케이션 또는 메모리 아키텍처에 기초하여 상이한 runstride 값을 갖도록 제조될 수 있다. 도 2a 및 2b에 이탤릭체로 표시된 블록 식별자는 상이한 CAU에 속하는 블록을 시각적으로 구별하기 위한 것이다.
MDS 파라미터는 메타데이터를 허용하는 페이지 크기 각각과 연관된 바이트의 수를 식별한다. 페이지 크기는 비휘발성 메모리의 페이지의 데이터 영역이다. PPS(Perfect Page Size)는 페이지 크기에 MDS를 더한 것과 같은 바이트의 수이다. RPS(Raw Page Size)는 비휘발성 메모리의 물리 페이지의 크기이다.
어드레스 매핑을 구현하는 예시적인 NVM 패키지
도 2b는 도 2a의 어드레스 매핑을 구현하는 도 1의 예시적인 관리형 NVM 패키지(104)의 블록도이다. NVM 패키지(104)는 호스트 채널, CLE(command latch enable) 입력, ALE(address latch enable) 입력, CE(chip enable) 입력 및 R/B(read/busy) 입력을 갖는 호스트 인터페이스를 포함할 수 있다. 호스트 인터페이스는 더 많거나 적은 입력을 포함할 수 있다. 본 예에서, 호스트 인터페이스는 호스트 프로세서(102)로부터 논리 어드레스를 수신한다. 논리 어드레스는 통상적인 NVM 어드레싱에서와 같이, 다음 필드[Block Address Page Address Offset]를 표현하는 비트를 포함할 수 있다.
몇몇 구현예에서, 컨트롤러(106)는 호스트 채널로부터의 논리 어드레스를 판독하고, 도 2a의 어드레스 매핑을 이용하여 Block Address를 특정 내부 블록 어드레스에 매핑한다. 예를 들어, 논리 어드레스가 [0, 0, 0]이면, Block Address는 0이다. 블록 어드레스는 NVM 디바이스(108a)를 위한 내부 칩 선택(CEø)으로 매핑된다. Block Address, Page Address 및 Offset은 선택된 CAU로부터의 데이터의 PPS에 액세스하는데 이용되는 물리 어드레스를 형성한다. 본 예에서, CAU는 NVM 디바이스(108b)의 일부를 포함하는 CAU(202)에 비해, 전체 물리 NVM 디바이스(108a)를 포함한다. 따라서, Block Address는 다음 2가지 기능을 수행한다: 1) CAU 또는 NVM 디바이스에 대한 내부 CE에 Block Address의 비트를 매핑함으로써 물리 NVM 디바이스, 또는 물리 NVM 디바이스 내의 CAU의 선택을 용이하게 하는 기능; 및 2) 선택된 CAU 또는 NVM 디바이스 내의 블록에 액세스하도록 물리 어드레스를 제공하는 기능.
본 예에서, 짝수 블록은 NVM 디바이스(108a)로 매핑되고, 홀수 블록은 NVM 디바이스(108b) 내의 CAU(202)에 매핑된다. 컨트롤러(106)가 짝수 번호 Block Address를 검출하면, 컨트롤러(106)는 NVM 디바이스(108a)에 대한 내부 칩 인에이블, CEø를 활성화하고, 컨트롤러(106)가 홀수 번호 Block Address를 검출하면, 컨트롤러(106)는 NVM 디바이스(108b)에 대한 내부 칩 인에이블, CE1을 활성화한다. 이러한 어드레스 매핑 방식은 관리형 NVM 패키지에서 임의의 소망하는 개수의 CAU 및/또는 NVM으로 확장될 수 있다. 몇몇 구현예에서, Block Address의 최상위 비트는 내부 CE를 선택하는데 이용될 수 있고, 나머지 Block Address 비트 또는 전체 Block Address는 Page Address 및 Offset과 결합되어 물리 어드레스가 동작을 수행하는 블록에 액세스할 수 있도록 한다. 일부 구현에서, 내부 CE를 선택하여 활성화할 목적으로 블록 어드레스를 디코딩하도록 NVM 패키지 또는 컨트롤러(106)에 디코딩 논리가 부가될 수 있다.
전술한 어드레스 매핑 스킴의 장점은 NVM 패키지(104)의 호스트 인터페이스가 단순화되고(감소된 핀 카운트), 또한 판독, 기입, 삭제 및 겟 스테이터스(get status) 동작들에 대한 일반적인 미가공 NVM 커맨드(예컨대, 미가공 NAND 커맨드)를 여전히 지원할 수 있다는 것이다. 또한, 확장된 커맨드들이 다중 CAU 아키텍처를 레버리지(leverage)하는 데 이용될 수 있다. NVM 패키지(104)는 종래의 미가공 NVM 아키텍처(예컨대, 미가공 NAND 아키텍처)에 이용되는 인터리빙 커맨드와 유사한 동시 판독 및 기입 동작들을 지원한다.
일부 구현에서, 엔진(110)은 데이터에 대한 에러 보정을 수행하고, 호스트 인터페이스를 통해 호스트 프로세서에 스테이터스를 송신한다. 스테이터스는 동작이 실패했는지를 호스트 프로세서에 알려주고, 호스트 프로세서로 하여금 블록 어드레스가 서로 다른 CAU 또는 NVM 디바이스에 액세스하는 것을 조정하게 할 수 있다. 예를 들어, 특정 CAU에서의 동작에 응답하여 다수의 에러가 발생하는 경우, 호스트 프로세서는 결함성 NVM 디바이스의 내부 CE가 활성화되는 것을 회피하도록 블록 어드레스를 변경할 수 있다.
도 2c는 도 1의 관리된 NVM 패키지(104)에 대한 어드레스 매핑 스킴의 일례를 도시한다. 특히, 매핑은 복수의 다이를 포함하는 관리된 NAND 디바이스들에 이용될 수 있으며, 각각의 다이는 잠재적으로 복수의 평면을 포함할 수 있다. 일부 구현에서, 어드레스 매핑은 CAU(Concurrently Addressable Unit) 상에서 동작한다. CAU는, NVM 패키지 내의 다른 CAU와 동시에 또는 병렬로 판독, 프로그래밍 또는 삭제될 수 있는 단일 호스트 채널로부터 액세스 가능한 물리적 스토리지의 일부이다. CAU는, 예컨대 단일 평면 또는 단일 다이일 수 있다. CAU 사이즈는 CAU 내의 삭제 가능한 블록의 수이다.
매핑은 예시적인 메모리 아키텍처를 이용하여 기술될 것이다. 본 예의 아키텍처에서, 블록 사이즈는 삭제 가능한 블록의 페이지 수로서 정의된다. 일부 구현에서, 16 바이트의 메타데이터는 각각의 4 킬로바이트의 데이터에 대해 이용가능하다. 다른 메모리 아키텍처도 가능하다. 예를 들어, 메타데이터는 보다 많은 또는 보다 적은 바이트가 할당될 수 있다.
도 2c에 도시된 어드레스 매핑 스킴은 최적화된 성능을 가능하게 하는 추가적인 커맨드 및 NAND 블록을 판독/프로그래밍/삭제하도록 미가공 NAND 프로토콜의 이용을 가능하게 한다. NVM 패키지(104)는 NAND의 데이터 신뢰도를 관리하기 위한 ECC 엔진(예컨대, ECC 엔진(110))을 포함한다. 따라서, 호스트 컨트롤러(102)는 ECC 엔진(110) 또는 그 외 신뢰도를 위한 프로세스 데이터를 포함할 필요가 없다.
NVM 패키지(104)는 다른 CAU와 동시에 또는 병렬로 액세스(예컨대, NAND 메모리 셀로부터 내부 레지스터로 데이터를 이동)될 수 있는 영역으로서 CAU를 정의한다. 본 예의 아키텍처에서는, 모든 CAU가 동일한 수의 블록을 포함하는 것으로 가정한다. 다른 구현에서, CAU는 서로 다른 수의 블록을 가질 수 있다. 아래의 표 I은 CAU의 페이지에 액세스하기 위한 행(row) 어드레스 포맷의 일례를 나타낸다.
[표 I] - 예시적인 행 어드레스 포맷
Figure pct00001
표 I를 참조하면, NAND 디바이스 내의 컨트롤러에는 예시적인 n-비트(예컨대, 24비트) 행 어드레스가 다음의 포맷으로 부여될 수 있다: [CAU:Block:Page]. CAU는 다이 또는 평면을 나타내는 수(예컨대, 정수)이다. Block은 CAU 수에 의해 식별되는 CAU 내의 블록 오프셋이며, Page는 Block에 의해 식별되는 블록 내의 페이지 오프셋이다. 예를 들어, 블록당 128 페이지, CAU당 8192 블록 및 6CAU를 갖는 디바이스에서, X는 7(27=128), Y는 13(213=8192), 그리고 Z는 3(22<6<23)이 될 것이다.
도 2c에 도시된 예시적인 NVM 패키지(104)는 2개의 NAND 다이(204a, 204b)를 포함하며, 각각의 다이는 2개의 평면을 갖는다. 예를 들어, 다이(204a)는 평면(206a, 206b)을 포함한다. 그리고, 다이(204b)는 평면(206c, 206d)을 포함한다. 본 예에서, 각각의 평면은 CAU이며, 각각의 CAU는 블록당 128페이지를 갖는 2048개의 MLC(multi-level cell)를 갖는다. 프로그램 동작 및 삭제 동작이 블록들의 스트라이드(각각의 CAU로부터의 블록) 상에서 수행될 수 있다. 스트라이드(stride)는 서로 다른 CAU로부터 각각 진입하는 블록들의 어레이로서 정의된다. 도시된 예에서, "스트라이드 0"은 CAU 0-3의 각각으로부터 블록 0을 정의하고, "스트라이드 1"은 CAU 0-3의 각각으로부터 블록 1을 정의하고, "스트라이드 2"는 CAU 0-3의 각각으로부터 블록 2를 정의한다.
NVM 패키지는 컨트롤 버스(208) 및 어드레스/데이터 버스(210)를 통해 CAU와 통신하는 NVM 컨트롤러(202)를 포함한다. 동작 중에, NVM 컨트롤러(202)는 호스트 컨트롤러(도시하지 않음)로부터 커맨드를 수신하고, 커맨드에 응답하여, 컨트롤 버스(208)에는 제어 신호를 그리고 어드레스/데이터 버스(210)에는 어드레스 또는 데이터를 어스트(assert)하여, 하나 이상의 CAU에서 동작(예컨대, 판독, 프로그래밍, 또는 삭제 동작)을 수행한다. 일부 구현에서, 커맨드는 도 2c를 참조하여 설명한 바와 같이, 폼 [CAU:Block:Page]을 갖는 행 어드레스를 포함한다.
도 2d는 바람직하지 않은 블록 치환을 포함하는 도 2c의 어드레스 매핑 스킴을 도시한다. 본 예에서, 3개의 CAU를 갖는 NVM 패키지(104)에 대한 호스트 컨트롤러(102)에 의해 스트라이드 어드레스가 발행되었으며, CAU 중 하나는 스트라이드 블록 오프셋 내의 배드 블록을 보유한다. "스트라이드 4"의 어드레스는 통상적으로 CAU0:Block4, CAU1:Block4 및 CAU2:Block4를 액세스할 것이다. 그러나, 본 예에서, 배드 블록 CAU1:Block4는 CAU1:Block2000 으로 치환된다.
예시적인 커맨드 세트
NVM 패키지(104)는 투명 모드(transparent mode)를 지원할 수 있다. 투명 모드는 ECC가 없어도 메모리 어레이에 액세스 가능하게 하며, 컨트롤러(106)의 성능을 평가하는 데 이용될 수 있다. 또한, NVM 패키지(104)는 판독, 기입 및 겟 스테이터스 동작에 대한 일반적인 미가공 NVM 커맨드를 지원한다. 표 1-3은 예시적인 판독, 기입 및 커밋(Commit) 동작을 나타낸다. 종래의 미가공 NVM에서와 같이, NVM 디바이스는 기입 커맨드가 발행되기 전에 준비되어야 한다. 표 4를 참조하여 설명되는 바와 같이, 스테이터스 판독 동작을 이용하여 준비 완료의 여부가 판정될 수 있다.
판독 모드 Qty 판독 설명


통상의 페이지 판독


PPS

적절한 디바이스 및 메모리 어드레스에 따른 메모리 어레이 내의 위치로부터 페이지+ 메타데이터가 판독된다.
페이지 판독에 에러 보정이 적용된다.


투명 모드 페이지 판독


RPS

적절한 디바이스 및 메모리 어드레스에 따른 메모리 어레이 내의 위치로부터 페이지+ 메타데이터가 판독된다.
페이지 판독에 에러 보정이 적용되지 않는다.

스트라이드 판독

N×스트라이드×PPS

N개의 전체 스트라이드만큼의 페이지를 판독. 에러 보정이 적용된다.
예시적인 판독 동작
기입 모드 Qty 판독 설명


페이지 기입


PPS

적절한 디바이스 및 메모리 어드레스에 따른 메모리 어레이 내의 위치로부터 페이지+ 메타데이터가 기입된다.
페이지+ 메타데이터에 대해 ECC 신드롬이 계산된다.


투명 모드 페이지 기입(단일 페이지 기입)


RPS

적절한 디바이스 및 메모리 어드레스에 따른 메모리 어레이 내의 위치로부터 페이지+ 메타데이터가 기입된다.
페이지+ 메타데이터에 대해 ECC 신드롬이 계산되지 않는다.

스트라이드 기입

N×스트라이드×PPS

N개의 전체 스트라이드만큼의 페이지를 기입. 에러 보정이 적용된다.
예시적인 기입 동작 (기입 모드)
커밋 모드 Qty 판독 설명

커밋(단일 페이지 기입)

PPS

커밋되지 않은 전체 기입이 자신의 각자의 메모리 어레이에 커밋된다. 임의의 대응하는 ECC 신드롬들 역시 커밋된다.
페이지 어드레스에 대한 커밋(소정의 CAU에 대한 기입)
PPS
페이지 어드레스에 대응하는 CAU에 대해 커밋되지 않은 기입들이 자신의 각자의 메모리 어레이에 커밋된다. 임의의 대응하는 ECC 신드롬들 역시 커밋된다.
예시적인 기입 동작 (커밋 모드)
스테이터스 모드 설명

스테이터스

모든 내부 디바이스들 및 컨트롤러가 새로운 데이터 또는 커맨드를 수신할 준비가 된 경우 준비 스테이터스가 반환된다.

어드레스에 대한 스테이터스

페이지 어드레스에 대응하는 CAU 및 컨트롤러가 새로운 데이터를 수신할 준비가 된 경우 준비 스테이터스가 반환된다. 또한, 이하의 데이터가 반환된다:

CAU+컨트롤러에 대하여:
ㆍ준비(I/O6)
ㆍ비트 플립 카운터 - 제2 바이트에 대해 모두

페이지 어드레스에 대하여:
ㆍ동작 에러(I/O 0)
ㆍ리프레쉬 블록(I/O 1) - 데이터를 새로운 블록으로 이동시키기를 제안하고 현재의 블록을 회수한다. 호스트 프로세서로 하여금 데이터를 언제 이동시킬지를 결정하게 한다. 판독 동작은 현재의 블록에서 여전히 허용되지만, 기입/삭제 동작은 허용되지 않는다.
ㆍ회수 블록(I/O 2) - 호스트 프로세서는 데이터를 새로운 블록으로 이동시키고 현재의 블록을 회수하여야 한다. 판독 동작은 현재의 블록에서 여전히 허용되지만, 기입/삭제 동작은 허용되지 않는다.
ㆍ스트라이드 어드레스 에러(I/O 3) - 호스트 프로세서가 불법의 스트라이드 어드레스에 액세스하고 있다는 것을 나타낸다.
ㆍ판독(I/O 4)
예시적인 스테이터스 판독 동작
전술한 동작 외에, 컨트롤러(106)는 다양한 그 외 커맨드를 지원할 수 있다. 페이지 파라미터 판독 커맨드가 NVM 패키지(104)로부터 지리적 파라미터들을 반환한다. 지리적 파라미터의 일부 예는 다이 사이즈, 블록 사이즈, 페이지 사이즈, MDS, 런 앤 스트라이드(run and stride)를 포함하지만, 이에 한정되지 않는다. 어보트 커맨드(Abort command)는 컨트롤러(106)로 하여금 현재의 동작을 모니터링하게 하고, 진행 중인 후속 스트라이드 동작들을 중지시킨다. 리셋 커맨드는 현재의 동작을 중지시키고, 변경 중인 메모리 셀들의 내용을 무효가 되게 한다. 컨트롤러(106) 내의 커맨드 레지스터는 다음 커맨드에 대한 준비로 클리어된다. 판독 ID 커맨드는 제품 식별자를 반환한다. 판독 타이밍 커맨드는 기입 커맨드 및 삭제 커맨드에 대한 셋업, 홀드 및 지연 시간을 반환한다. 판독 디바이스 파라미터 커맨드는 사양 지원, 디바이스 버전 및 펌웨어 버전을 포함하는 NVM 패키지(104)에 대한 고유 식별자를 반환한다.
예시적인 커맨드 세트가 아래의 표 5에 기술되어 있다.
기능 제1 세트 제2 세트
페이지 판독 00h 30h
어드레스에 대한 페이지 판독 07h 37h
스트라이드 판독 09h----09h 39h
페이지 기입 80h 10h
어드레스에 대한 페이지 기입 87h 17h
스트라이드 기입 89h----89h 19h
블록 삭제 60h D0h
어드레스에 대한 블록 삭제 67h D7h
스테이터스 판독 70h -
어드레스에 대한 스테이터스 판독 77h -
비트 플립 카운터 판독 72h -
ID 판독 90h -
타이밍 판독 91h -
디바이스 파라미터 판독 92h -
리셋 FFh -
중단 99h -
예시적인 커맨드 세트
예시적인 판독, 기입 & 삭제 동작들
NVM 패키지(104)에서의 다중 CAU 아키텍처를 레버리지하기 위해서, NVM 패키지(104)는 확장된 커맨드 세트를 이용하여 모든 또는 수개의 CAU들에 대한 액세스를 지원할 수 있다. NVM 패키지(104)는 다음의 확장된 커맨드들을 지원할 수 있는데, 모든 어드레스들은 PPS에 대해 정렬된다: 어드레스를 포함하는 Read(Read with Address), 어드레스를 포함하는 Write(Write with Address), 어드레스를 포함하는 Erase(Erase with Address), 및 어드레스를 포함하는 Status(Status with Address). 도 3 내지 도 7은 CAU들에 걸쳐 인터리빙이 발생할 수 있는 곳을 나타낸다. 인터리빙이 발생할 수 있는 포인트들("인터리빙 포인트들"로 언급됨)은 원들로 표시되어 있다. 각 동작의 시작 포인트 및 종료 포인트는 백색 원들 및 크로스해칭으로 채워진 원들로서 각각 보여지는데(그 이유는 각각이 인터리빙 포인트를 나타내기 때문임), 인터리빙이 발생할 수 있는 모든 중간 포인트들은 스트라이프로 채워진 원들로 표시되어 있다. 도 3 내지 도 7은 NVM 패키지가 일련의 동작들 이후에 완전히 준비 상태에 있다고 가정한다.
도 3은 어드레스를 포함하는 Read 커맨드를 이용하는 예시적인 동작(300)의 흐름도이다. 단계(302)에서, 호스트 프로세서는 어드레스를 포함하는 Read 커맨드를 NVM 패키지로 발행한다. 단계(304)에서, 호스트 프로세서는, 어드레스가 판독될 준비가 되어 있음을 나타내는 상태를 NVM 패키지가 제공할 때까지 어드레스 상태에 대한 Wait 시퀀스(Wait for Address status sequence)를 수행한다. 단계(306)에서, 호스트 프로세서는 어드레스를 포함하는 Confirm 커맨드를 NVM 패키지로 발행한다. 단계(308)에서, NVM 패키지에서의 컨트롤러는 호스트 채널을 통해 호스트 프로세서로 데이터의 PPS 바이트들을 전송한다. ECC 엔진(예를 들어, ECC 엔진(110))을 이용하여 NVM 패키지에서의 바이트들에 대해 에러 정정이 적용된다. 이러한 예시적인 어드레스를 포함하는 Read 커맨드 동작에 있어서, 인터리빙 포인트들은 이 동작의 시작과 종료 시에 그리고 이 동작의 중간 단계들(302와 304) 사이와 중간 단계들(304와 306) 사이에 발생할 수 있다.
2개의 CAU들(run=2 및 stride=1)에 걸친 단일 페이지에 대한 예시적인 어드레스를 포함하는 Read 커맨드 동작은 다음과 같이 이루어질 수 있다.
Figure pct00002
Figure pct00003
도 4는 어드레스를 포함하는 Write 커맨드를 이용하는 예시적인 동작(400)의 흐름도이다. 단계(402)에서, 호스트 프로세서는 어드레스를 포함하는 Write 커맨드를 발행한다. 단계(404)에서, 호스트 프로세서는 호스트 채널을 통해 NVM 패키지에서의 컨트롤러로 데이터의 PPS 바이트들을 전송한다. ECC 엔진을 이용하여 바이트들에 에러 정정이 적용된다. 단계(406)에서, 호스트 프로세서는 어드레스에 대응하는 메모리 어레이에 대해 CAU로 향하는 커미트되지 않은 기입을 커미트하는 어드레스를 포함하는 Commit 커맨드를 발행한다. 임의의 대응하는 ECC 신드롬도 커미트된다. 단계(408)에서, 호스트 프로세서는, 데이터가 어드레스에 기입되었음을 나타내는 상태를 NVM 패키지가 제공할 때까지 어드레스를 포함하는 상태에 대한 Wait(Wait for status with Address) 시퀀스를 수행한다. 이러한 예시적인 어드레스를 포함하는 Write 커맨드 동작에 있어서, 인터리빙 포인트들은 이 동작의 시작과 종료 시에 그리고 이 동작의 중간 단계들(406과 408) 사이에 발생할 수 있다.
2개의 CAU들(run=2 및 stride=1)에 걸친 단일 페이지에 대한 예시적인 어드레스를 포함하는 Write 커맨드 동작은 다음과 같이 이루어질 수 있다.
Figure pct00004
도 5는 어드레스를 포함하는 Erase 커맨드를 이용하는 예시적인 동작(500)의 흐름도이다. 단계(502)에서, 호스트 프로세서는 어드레스를 포함하는 Erase 커맨드를 발행한다. 단계(504)에서, 호스트 프로세서는, 어드레스가 삭제될 준비가 되어 있음을 나타내는 상태를 NVM 패키지가 제공할 때까지 어드레스를 포함하는 상태에 대한 Wait를 수행한다. 이러한 예시적인 어드레스를 포함하는 Erase 커맨드 동작에 있어서, 인터리빙 포인트들은 이 동작의 시작과 종료 시에 그리고 이 동작의 중간 단계들(502과 504) 사이에 발생할 수 있다.
예시적인 스트라이드 동작들
벤더 특정 커맨드들을 레버리지하기 위해서, NVM 패키지는 CAU 내의 다수의 페이지 동작들을 지원한다. 상세하게는, NVM 패키지는 StrideRead 및 StrideWrite 커맨드들을 지원한다.
도 6a 및 도 6b는 어드레스를 포함하는 StrideRead 커맨드 동작을 이용하는 예시적인 동작(600)의 흐름도이다. 도 6a에서의 단계(602)를 참조하면, NVM 디바이스 스트라이드에서의 블록들의 수인 S 및 블록당 판독될 페이지들의 수인 N이 주어지는 경우, 판독될 나머지 페이지들의 수인 P는 S와 N의 곱과 동일하게 설정될 수 있다. 호스트 프로세서는 단계(604)에서 카운터 I를 0과 동일하게 설정함으로써 다음의 스트라이드를 개시한다. 단계(606)에서, P는 S와 비교된다. P=0인 경우에는, 동작(600)이 종료된다. P>S인 경우에는, 단계(608)에서 호스트 프로세서는 어드레스를 포함하는 StrideRead 커맨드를 발행한다. P≤S인 경우에는, 단계(610)에서 호스트 프로세서는 어드레스를 포함하는 LastStrideRead 커맨드를 발행한다.
단계(612)에서, 카운터 I가 1만큼 증분된다. 단계(614)에서, I는 S와 비교된다. I<S인 경우에는, 동작(600)은 단계(606)로 복귀한다. I=S인 경우에는, 동작(600)은 도 6b를 참조하여 기재된 바와 같이 스트라이드에서의 페이지들의 전송을 시작한다.
도 6b에서의 단계(616)를 참조하면, 카운터 T는 0과 동일하게 설정된다. 단계(618)에서, 호스트 프로세서는, 어드레스가 판독될 준비가 되어 있음을 나타내는 상태를 NVM 패키지가 제공할 때까지 어드레스를 포함하는 상태에 대한 Wait 시퀀스를 수행한다. 단계(620)에서, 호스트 프로세서는 어드레스를 포함하는 Confirm 커맨드를 발행한다. 단계(622)에서, NVM 패키지는 호스트 프로세서로 데이터의 PPS 바이트들을 전송한다. 단계(624)에서, 카운터 T는 1만큼 증분된다. 단계(626)에서, 카운터 T는 S와 비교된다. T<S인 경우에는, 동작(600)은 단계(618)로 복귀한다. T=S인 경우에는, 단계(628)에서, 판독될 나머지 페이지들의 수인 P가 S만큼 감분되며, 동작(600)은 단계(604)로 복귀한다.
2개의 CAU들 및 4개의 스트라이드들(run=2 및 stride=4)에 걸쳐 확산된 8개의 페이지들의 예시적인 어드레스를 포함하는 StrideRead 동작은 다음과 같이 이루어질 수 있다.
Figure pct00005
Figure pct00006
도 7은 어드레스를 포함하는 StrideWrite 커맨드 동작을 이용하는 예시적인 동작(700)의 흐름도이다. 단계(702)를 참조하면, NVM 디바이스 스트라이드에서의 블록들의 수인 S 및 블록당 기입될 페이지들의 수인 N이 주어지는 경우, 기입될 나머지 페이지들의 수인 P는 S와 N의 곱과 동일하게 설정될 수 있다. 단계(704)에서, 호스트 프로세서는 P와 S를 비교한다. P=0인 경우에는, 동작(700)이 종료된다. P>S인 경우에는, 단계(706)에서 호스트 프로세서는 어드레스를 포함하는 StrideWrite 커맨드를 발행한다. P≤S인 경우에는, 단계(708)에서 호스트 프로세서는 어드레스를 포함하는 LastStrideWrite 커맨드를 발행한다.
단계(710)에서, 호스트 프로세서는 NVM 패키지로 데이터의 PPS 바이트들을 전송한다. 단계(712)에서, 호스트 프로세서는 메모리 어레이들에 대해 기입들을 커미트하기 위한 어드레스를 포함하는 Commit 커맨드를 발행한다. 단계(714)에서, 호스트 프로세서는, 데이터가 메모리에 대해 커미트되었음을 나타내는 상태를 NVM 패키지가 제공할 때까지 어드레스를 포함하는 상태에 대한 Wait를 수행한다. 단계(716)에서, 기입될 나머지 페이지들의 수는 1만큼 감분되며, 동작(700)은 단계(704)로 복귀한다.
2개의 CAU들 및 4개의 스트라이드들(run=2 및 stride=4)에 걸쳐 확산된 8개의 페이지들의 예시적인 어드레스를 포함하는 StrideWrite 동작은 다음과 같이 이루어질 수 있다.
Figure pct00007
Figure pct00008
예시적인 큐 구성
도 8은 NVM 패키지에서의 커맨드 큐들의 이용을 도시한다. 몇몇 구현들에 있어서, NVM 패키지(800)는 컨트롤러(802)에 의해 액세스될 수 있는 하나 이상의 큐들(804)을 포함할 수 있다. 큐들은 FIFO 큐들일 수 있다. 호스트 컨트롤러에 의해 수신된 커맨드들은 큐들(804)에 저장될 수 있다. 도시된 예에 있어서, 3개의 큐들이 존재한다. 하나의 큐는 판독, 프로그램 및 삭제 커맨드들 각각에 대한 것이다. 트리거 이벤트에 응답하여, 컨트롤러(802)는 큐들(804) 중 하나 이상에서의 하나 이상의 커맨드들을 재정렬하여, 메모리 동작들 중에 성능을 최적화할 수 있다. 예를 들어, 큐(및 버퍼)에서의 상부 아이템이 다른 동작에 대해 비지였던 CAU 또는 평면으로 향한 경우에 하나의 트리거 이벤트가 이루어질 수 있다.
도 9는 도 8에 도시된 커맨드 큐들에서의 커맨드들을 재정렬하기 위한 예시적인 프로세스(900)의 흐름도이다. 몇몇 구현들에 있어서, 프로세스(900)는 호스트 컨트롤러로부터 커맨드들을 수신함으로써(902) 시작된다. 커맨드들은 비휘발성 메모리 상에서의 동작들을 개시하기 위한 것이다. 커맨드들은 하나 이상의 큐들에 저장된다(904). 예를 들어, 3개의 개별 큐들은 판독, 프로그램 및 삭제 커맨드들을 저장할 수 있다. 커맨드들은 트리거 이벤트에 응답하여 비휘발성 메모리 디바이스에서의 컨트롤러에 의해 재정렬된다(906).
본 명세서는 많은 특정사항들을 포함하지만, 이들은 청구항들 또는 청구될 수도 있는 것의 범위에 대한 제한들로서 해석되어서는 안 되며, 오히려 특정 실시예들에 특정된 특징들의 설명들로서 해석되어야 한다. 개별 실시예들의 콘텍스트에서 본 명세서에 기재되는 특정 특징들은 또한 단일 실시예에서 조합하여 구현될 수 있다. 이에 반해, 단일 실시예의 콘텍스트에서 기재되는 다양한 특징들은 또한 다수의 실시예들에서 개별적으로 또는 임의의 적합한 서브조합으로 구현될 수 있다. 또한, 특징들은 특정 조합들에서 동작하는 것으로서 전술되며 심지어 처음에 이와 같이 청구될 수 있지만, 청구된 조합으로부터의 하나 이상의 특징들은 몇몇 경우에 이 조합으로부터 삭제될 수 있으며, 청구된 조합은 서브조합 또는 서브조합의 변형으로 될 수 있다.
유사하게, 도면들에서 특정 순서로 동작들이 도시되었지만, 이는 이러한 동작들이 도시된 특정 순서로 또는 순차적인 순서로 수행되거나 또는 모든 예시된 동작들이 수행되어 바람직한 결과들을 달성하는 것을 요구하는 것으로서 이해되어서는 안 된다. 특정 상황들에 있어서, 멀티태스킹 및 병렬 처리가 유리할 수 있다. 또한, 전술한 실시예들에서의 다양한 시스템 컴포넌트들의 분리는 모든 실시예들에서 이러한 분리를 요구하는 것으로서 해석되어서는 안 되며, 기재된 프로그램 컴포넌트들 및 시스템들이 일반적으로 단일 소프트웨어 제품에 함께 통합되거나 다수의 소프트웨어 제품들로 패키징될 수 있다고 이해되어야 한다.
따라서, 특정 실시예들이 기재되었다. 다른 실시예들은 다음의 특허청구범위의 범위 내에 있다.

Claims (26)

  1. 비휘발성 메모리(NVM) 패키지로서,
    블록 어드레스를 수신하도록 동작하는 인터페이스;
    각각이 복수의 블록을 포함하는 복수의 동시 액세스 유닛; 및
    상기 인터페이스 및 복수의 동시에 어드레싱가능한 유닛에 연결된 프로세서를 포함하고,
    상기 프로세서는 상기 블록 어드레스를 상기 블록 어드레스에 의해 식별되는 상기 복수의 동시에 어드레싱가능한 유닛 중 하나에 있는 블록에 매핑하도록 동작가능한, 비휘발성 메모리 패키지.
  2. 제1항에 있어서,
    호스트 인터페이스를 더 포함하고,
    상기 호스트 인터페이스는 상기 호스트 인터페이스에 연결된 호스트 프로세서로부터 호스트 칩 인에이블 신호(host chip enable signal)를 수신하도록 동작가능하고,
    상기 프로세서는 상기 호스트 칩 인에이블 신호를 상기 동시에 어드레싱가능한 유닛 중 하나의 내부에 있는 칩 인에이블 신호에 매핑하도록 동작하고, 상기 내부 칩 인에이블 신호는 상기 동시에 어드레싱가능한 유닛을 활성화하기 위한 것인, 비휘발성 메모리 패키지.
  3. 제2항에 있어서,
    상기 매핑은 run 및 stride 파라미터에 의해 정의되는 맵을 이용하여 수행되고,
    run 파라미터는 상기 호스트 칩 인에이블 신호를 이용하여 액세스가능한, 동시에 어드레싱가능한 유닛의 개수이고,
    stride 파라미터는 동시에 어드레싱가능한 유닛 내의 동작 커맨드에 대한 블록의 개수인, 비휘발성 메모리 패키지.
  4. 제1항에 있어서,
    상기 프로세서는 상기 인터페이스로부터 read 또는 write 동작에 대한 커맨드를 수신하고,
    상기 동작은 하나 이상의 동시에 어드레싱가능한 유닛 상의 동시의 원자적인 트랜젝션(atomic transactions)을 수행하는 일련의 read 또는 write 커맨드인, 비휘발성 메모리 패키지.
  5. 제4항에 있어서,
    상기 동시에 어드레싱가능한 유닛으로부터 판독 또는 동시에 어드레싱가능한 유닛에 기입되는 데이터량은 N, 상기 동시에 어드레싱가능한 유닛에 대한 stride 파라미터, 및 페이지 사이즈에 메타데이터를 허용하는 페이지와 관련된 바이트 수를 더한 것과 동등한 바이트 수의 곱과 같고,
    N은 판독 또는 기입될 페이지 수를 나타내는 양의 정수이고, stride는 상기 동시에 어드레싱가능한 유닛 내의 동작 커맨드에 대한 블록의 개수인, 비휘발성 메모리 패키지.
  6. 제1항에 있어서,
    동시에 어드레싱가능한 유닛으로부터 판독되거나, 동시에 어드레싱가능한 유닛으로 기입되는 데이터 블록에 대한 에러 정정을 적용하기 위한 에러 정정 엔진을 더 포함하는 비휘발성 메모리 패키지.
  7. 제6항에 있어서,
    에러 검출 및 정정 엔진이 상기 동시에 어드레싱가능한 유닛 중 하나 이상에 포함되는, 비휘발성 메모리 패키지.
  8. 제1항에 있어서,
    상기 동시에 어드레싱가능한 유닛에 대한 처리량(throughput)을 관리하기 위한 파이프라인 관리 엔진을 더 포함하는 비휘발성 메모리 패키지.
  9. 제1항에 있어서,
    상기 NVM 패키지는 관리되는 NAND 패키지인, 비휘발성 메모리 패키지.
  10. 제1항에 있어서,
    상기 프로세서는 2개 이상의 동시에 어드레싱가능한 유닛에 대하여 동시의 read 또는 write 동작을 수행하는, 비휘발성 메모리 패키지.
  11. 호스트 프로세서에 연결된 비휘발성 메모리(NVM) 패키지에 의해 수행되는 방법으로서,
    상기 호스트 프로세서로부터 블록 어드레스를 수신하는 단계; 및
    상기 블록 어드레스를 상기 블록 어드레스에 의해 식별되는 복수의 동시에 어드레싱가능한 유닛 중 하나에 있는 블록에 매핑하는 단계
    를 포함하는 방법.
  12. 제11항에 있어서,
    상기 호스트 프로세서로부터 호스트 칩 인에이블 신호를 수신하는 단계;
    상기 호스트 칩 인에이블 신호를 상기 동시에 어드레싱가능한 유닛 중 하나의 내부에 있는 칩 인에이블 신호에 매핑하는 단계; 및
    상기 내부 칩 인에이블 신호를 활성화하는 단계
    를 더 포함하는 방법.
  13. 제12항에 있어서,
    상기 매핑은 run 및 stride 파라미터에 의해 정의되는 맵을 이용하여 수행되고,
    run 파라미터는 상기 호스트 칩 인에이블 신호를 이용하여 액세스가능한, 동시에 어드레싱가능한 유닛의 개수이고,
    stride 파라미터는 동시에 어드레싱가능한 유닛 내의 동작 커맨드에 대한 블록의 개수인, 방법.
  14. 제11항에 있어서,
    read 또는 write 동작에 대한 커맨드를 수신하는 단계; 및
    상기 커맨드에 따라 하나 이상의 동시에 어드레싱가능한 유닛에 대하여 하나 이상의 동시의 원자적인 트랜젝션을 수행하는 단계를 더 포함하는 방법.
  15. 제14항에 있어서,
    상기 동시에 어드레싱가능한 유닛으로부터 판독 또는 동시에 어드레싱가능한 유닛에 기입되는 데이터량은 N, 상기 동시에 어드레싱가능한 유닛에 대한 stride 파라미터, 및 페이지 사이즈에 메타데이터를 허용하는 페이지와 관련된 바이트 수를 더한 것과 동등한 바이트 수의 곱과 같고,
    N은 판독 또는 기입될 페이지 수를 나타내는 양의 정수이고, stride는 상기 동시에 어드레싱가능한 유닛 내의 동작 커맨드에 대한 블록의 개수인, 방법.
  16. 제11항에 있어서,
    동시에 어드레싱가능한 유닛으로부터 판독되거나, 동시에 어드레싱가능한 유닛으로 기입되는 데이터 블록에 대한 에러 정정을 적용하는 단계를 더 포함하는 방법.
  17. 비휘발성 메모리(NVM) 패키지로서,
    인터페이스에 연결된 호스트 프로세서로부터 블록 어드레스 및 제1 칩 인에이블 신호를 수신하도록 동작하는 상기 인터페이스;
    각각이 복수의 블록을 포함하는 복수의 동시 액세스 유닛; 및
    상기 인터페이스 및 복수의 동시에 어드레싱가능한 유닛에 연결된 프로세서를 포함하고,
    상기 호스트 프로세서로부터 상기 칩 인에이블 신호에 응답하여, 상기 프로세서는 제1 내부 칩 선택 인에이블 신호를 이용하여 제1 동시에 어드레싱가능한 유닛을 활성화하고, 제2 내부 칩 선택 인에이블 신호를 이용하여 제2 동시에 어드레싱가능한 유닛을 활성화하고, 상기 블록 어드레스를 활성화된 상기 제1 및 제2 동시에 어드레싱가능한 유닛 내의 블록으로 매핑하고, 상기 활성화된 제1 및 제2 동시에 어드레싱가능한 유닛 내의 블록에 대하여 read 또는 write 동작을 동시에 수행하기 위한 일련의 커맨드를 실행하는, 비휘발성 메모리 패키지.
  18. 제17항에 있어서,
    상기 NVM 패키지는 관리되는 NAND 패키지인, 비휘발성 메모리 패키지.
  19. 비휘발성 메모리(NVM) 패키지에 저장된 데이터에 대하여 동작하는 시스템으로서,
    상기 NVM 패키지에 파라미터 요청을 송신하기 위한 인터페이스 - 상기 NVM 패키지는 복수의 동시에 어드레싱가능한 유닛을 포함하고, run 파라미터 및 stride 파라미터를 수신하기 위한 것이며, run 파라미터는 상기 호스트 프로세서에 의해 제공된 단일 칩 인에이블 신호를 이용하여 액세스가능한 상기 NVM 패키지 내의 동시에 어드레싱가능한 유닛의 개수를 나타내고, stride 파라미터는 동시에 어드레싱가능한 유닛 내의 동작 커맨드에 대한 블록의 개수를 나타냄 - ; 및
    상기 인터페이스에 연결된 프로세서 - 상기 프로세서는 하나 이상의 동시에 어드레싱가능한 유닛에 대하여 원자적인 트랜젝션을 동시에 수행하기 위해 일련의 커맨드를 상기 NVM 패키지에 송신하도록 동작가능하고, 상기 일련의 커맨드는 run 및 stride 파라미터에 기초하여 상기 호스트 프로세서에 의해 생성된 어드레스를 포함함 -
    를 포함하는 시스템.
  20. 제19항에 있어서,
    상기 프로세서는 write 커맨드를 포함하는 데이터를 상기 NVM 패키지에 송신하도록 동작가능하고,
    그 데이터 사이즈는 N, stride, 및 페이지 사이즈에 메타데이터를 허용하는 각 페이지 사이즈와 관련된 바이트 수를 더한 것과 동등한 바이트 수의 곱과 같고, N은 기입될 페이지 수를 나타내는 양의 정수인, 시스템.
  21. 제19항에 있어서,
    상기 프로세서는 read 커맨드를 상기 NVM 패키지에 송신하도록 동작가능하고, 판독될 데이터 사이즈는 N, stride, 및 페이지 사이즈에 메타데이터를 허용하는 각 페이지 사이즈와 관련된 바이트 수를 더한 것과 동등한 바이트 수의 곱과 같고, N은 판독될 페이지 수를 나타내는 양의 정수인, 시스템.
  22. 비휘발성 메모리(NVM) 패키지에 연결된 호스트 프로세서에 의해 수행되는 방법으로서,
    상기 NVM 패키지에 파라미터 요청을 송신하는 단계 - 상기 NVM 패키지는 복수의 동시에 어드레싱가능한 유닛을 포함함 -
    상기 요청에 응답하여, run 파라미터 및 stride 파라미터를 수신하는 단계 - run 파라미터는 상기 호스트 프로세서에 의해 제공된 단일 칩 인에이블 신호를 이용하여 액세스가능한 상기 NVM 패키지 내의 동시에 어드레싱가능한 유닛의 개수를 나타내고, stride 파라미터는 동시에 어드레싱가능한 유닛 내의 동작 커맨드에 대한 블록의 개수를 나타냄 - ; 및
    하나 이상의 동시에 어드레싱가능한 유닛에 대하여 원자적인 트랜젝션을 동시에 수행하기 위해 일련의 커맨드를 상기 NVM 패키지에 송신하는 단계 - 상기 일련의 커맨드는 run 및 stride 파라미터에 기초하여 상기 호스트 프로세서에 의해 생성된 어드레스를 포함함 -
    를 포함하는 방법.
  23. 제22항에 있어서,
    write 커맨드를 포함하는 데이터를 상기 NVM 패키지에 송신하는 단계를 더 포함하고,
    그 데이터 사이즈는 N, stride, 및 페이지 사이즈에 메타데이터를 허용하는 각 페이지 사이즈와 관련된 바이트 수를 더한 것과 동등한 바이트 수의 곱과 같고, N은 기입될 페이지 수를 나타내는 양의 정수인, 방법.
  24. 제22항에 있어서,
    read 커맨드를 상기 NVM 패키지에 송신하는 단계를 더 포함하고,
    판독될 데이터 사이즈는 N, stride, 및 페이지 사이즈에 메타데이터를 허용하는 각 페이지 사이즈와 관련된 바이트 수를 더한 것과 동등한 바이트 수의 곱과 같고, N은 판독될 페이지 수를 나타내는 양의 정수인, 방법.
  25. 내장형 비휘발성 메모리 디바이스에 의해 수행되는 방법으로서,
    호스트 컨트롤러로부터 비휘발성 메모리 상의 동작들을 요청하는 커맨드를 수신하는 단계;
    상기 비휘발성 메모리 디바이스의 큐에 상기 커맨드를 저장하는 단계; 및
    트리거 이벤트에 응답하여 상기 큐에서 상기 커맨드를 재정렬(reorder)하는 단계를 포함하는 방법.
  26. 내장형 비휘발성 메모리 디바이스에 의해 수행되는 방법으로서,
    호스트 컨트롤러로부터 비휘발성 메모리 상의 read 동작들을 요청하는 read 커맨드를 수신하는 단계;
    제1 큐에 상기 read 커맨드를 저장하는 단계;
    상기 호스트 컨트롤러로부터 상기 비휘발성 메모리 상의 program 동작들을 요청하는 program 커맨드를 수신하는 단계;
    제2 큐에 상기 program 커맨드를 저장하는 단계;
    상기 호스트 컨트롤러로부터 상기 비휘발성 메모리 상의 erase 동작들을 요청하는 erase 커맨드를 수신하는 단계;
    제3 큐에 상기 erase 커맨드를 저장하는 단계; 및
    이들 각각의 큐에서 상기 read, program 또는 erase 커맨드 중 1개 이상을 재정렬하는 단계를 포함하는 방법.
KR1020117017378A 2008-12-23 2009-11-24 관리형 비휘발성 메모리의 어드레스 매핑을 위한 아키텍처 KR101417236B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US14043608P 2008-12-23 2008-12-23
US61/140,436 2008-12-23
US12/614,369 2009-11-06
US12/614,369 US8370603B2 (en) 2008-12-23 2009-11-06 Architecture for address mapping of managed non-volatile memory
PCT/US2009/065804 WO2010074876A1 (en) 2008-12-23 2009-11-24 Architecture for address mapping of managed non-volatile memory

Publications (2)

Publication Number Publication Date
KR20110098003A true KR20110098003A (ko) 2011-08-31
KR101417236B1 KR101417236B1 (ko) 2014-07-08

Family

ID=42267765

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020117017378A KR101417236B1 (ko) 2008-12-23 2009-11-24 관리형 비휘발성 메모리의 어드레스 매핑을 위한 아키텍처

Country Status (7)

Country Link
US (2) US8370603B2 (ko)
EP (1) EP2380083A1 (ko)
JP (1) JP2012513647A (ko)
KR (1) KR101417236B1 (ko)
CN (1) CN102326154B (ko)
HK (1) HK1166386A1 (ko)
WO (1) WO2010074876A1 (ko)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150078951A (ko) * 2013-12-31 2015-07-08 삼성전자주식회사 메모리 관리 방법 및 장치
US9501424B2 (en) 2014-01-07 2016-11-22 Samsung Electronics Co., Ltd. Memory mapping method of nonvolatile memory system and system for providing the memory mapping method
CN110245097A (zh) * 2018-03-08 2019-09-17 爱思开海力士有限公司 存储器控制器及具有存储器控制器的存储器系统
US11995002B1 (en) 2023-06-05 2024-05-28 Metisx Co., Ltd. Electronic device and computing system including same

Families Citing this family (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8719652B2 (en) 2009-05-12 2014-05-06 Stec, Inc. Flash storage device with read disturb mitigation
TWI435215B (zh) * 2009-08-26 2014-04-21 Phison Electronics Corp 下達讀取指令與資料讀取方法、控制器與儲存系統
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
US8745357B2 (en) * 2009-11-30 2014-06-03 Hewlett-Packard Development Company, L.P. Remapping for memory wear leveling
CN102652313B (zh) * 2009-12-11 2015-04-15 国际商业机器公司 闪速存储器控制器及其操作方法
US8745304B2 (en) * 2010-02-01 2014-06-03 Standard Microsystems Corporation USB to SD bridge
US8411519B2 (en) * 2010-06-04 2013-04-02 Apple Inc. Selective retirement of blocks
US8737138B2 (en) 2010-11-18 2014-05-27 Micron Technology, Inc. Memory instruction including parameter to affect operating condition of memory
JP5992713B2 (ja) * 2012-03-30 2016-09-14 株式会社ソニー・インタラクティブエンタテインメント メモリシステム、その制御方法及び情報処理装置
KR20130114486A (ko) 2012-04-09 2013-10-17 삼성전자주식회사 씨에이유 별 병렬 큐를 가진 비휘발성 메모리 장치, 이를 포함하는 시스템, 및 비휘발성 메모리 장치의 동작 방법
KR20140027859A (ko) 2012-08-27 2014-03-07 삼성전자주식회사 호스트 장치 및 이를 포함하는 시스템
KR102025088B1 (ko) 2012-09-03 2019-09-25 삼성전자 주식회사 메모리 컨트롤러 및 상기 메모리 컨트롤러를 포함하는 전자장치
KR101979735B1 (ko) 2012-11-02 2019-05-17 삼성전자 주식회사 비휘발성 메모리 시스템 및 이와 통신하는 호스트
US9218279B2 (en) 2013-03-15 2015-12-22 Western Digital Technologies, Inc. Atomic write command support in a solid state drive
JP2014199591A (ja) * 2013-03-29 2014-10-23 株式会社東芝 記憶装置制御システム、記憶装置制御装置及びプログラム
US9170938B1 (en) 2013-05-17 2015-10-27 Western Digital Technologies, Inc. Method and system for atomically writing scattered information in a solid state storage device
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
US9558229B2 (en) * 2013-11-26 2017-01-31 Sap Se Transaction private log buffering for high performance of transaction processing
KR20150116352A (ko) 2014-04-07 2015-10-15 삼성전자주식회사 메모리 제어 방법 및 시스템
US10402319B2 (en) * 2014-07-25 2019-09-03 Micron Technology, Inc. Apparatuses and methods for concurrently accessing different memory planes of a memory
US9880748B2 (en) * 2015-02-13 2018-01-30 Qualcomm Incorporated Bifurcated memory management for memory elements
KR20170060300A (ko) 2015-11-24 2017-06-01 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작방법
CN105739919B (zh) * 2016-01-21 2018-10-12 捷鼎创新股份有限公司 资料存取系统及方法
WO2017156747A1 (zh) * 2016-03-17 2017-09-21 华为技术有限公司 一种内存访问方法以及计算机系统
KR102542375B1 (ko) 2016-08-19 2023-06-14 에스케이하이닉스 주식회사 데이터 처리 시스템 및 그의 동작 방법
CN107783917B (zh) * 2016-08-26 2024-05-17 北京忆芯科技有限公司 生成nvm芯片接口命令的方法与装置
CN108241585B (zh) * 2016-12-23 2023-08-22 北京忆芯科技有限公司 大容量nvm接口控制器
CN108241468B (zh) * 2016-12-23 2021-12-07 北京忆芯科技有限公司 Io命令处理方法与固态存储设备
CN111506255B (zh) * 2019-01-31 2023-09-26 山东存储之翼电子科技有限公司 基于nvm的固态硬盘元数据管理方法及系统
US11099786B2 (en) 2019-12-30 2021-08-24 Advanced Micro Devices, Inc. Signaling for heterogeneous memory systems
CN113076218B (zh) * 2020-07-03 2022-03-25 北京忆芯科技有限公司 Nvm芯片读数据错误快速处理方法及其控制器
CN112180808B (zh) * 2020-10-21 2021-08-13 苏州华兴源创科技股份有限公司 一种伺服控制方法、装置、系统、计算机设备和存储介质
CN113094639B (zh) * 2021-03-15 2022-12-30 Oppo广东移动通信有限公司 一种dft并行处理方法、装置、设备及存储介质
CN118051191A (zh) * 2024-04-16 2024-05-17 电子科技大学 一种支持参数化和并行访问的非易失存储器电路、装置

Family Cites Families (65)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61217999A (ja) * 1985-03-25 1986-09-27 Toshiba Corp 半導体メモリ
JPS63285800A (ja) * 1987-05-19 1988-11-22 Fujitsu Ltd 半導体メモリ装置
JPH01223700A (ja) * 1988-03-01 1989-09-06 Hitachi Ltd 半導体記憶装置
US5341489A (en) * 1992-04-14 1994-08-23 Eastman Kodak Company Memory card with programmable interleaving
US5434872A (en) * 1992-07-28 1995-07-18 3Com Corporation Apparatus for automatic initiation of data transmission
JP3177015B2 (ja) * 1992-10-14 2001-06-18 株式会社東芝 半導体メモリ装置の制御方法
US5524218A (en) * 1993-12-23 1996-06-04 Unisys Corporation Dedicated point to point fiber optic interface
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
JP3597393B2 (ja) * 1998-08-19 2004-12-08 シャープ株式会社 データ記録再生装置
JP2000067574A (ja) * 1998-08-21 2000-03-03 Mitsubishi Electric Corp 半導体記憶装置
US6279114B1 (en) * 1998-11-04 2001-08-21 Sandisk Corporation Voltage negotiation in a single host multiple cards system
JP2000163273A (ja) * 1998-11-25 2000-06-16 Nec Corp メモリ誤り訂正・検出回路試験システムおよび試験方法
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 松下电器产业株式会社 半导体存储卡的访问装置、初始化方法和半导体存储卡
US6710906B2 (en) 1999-12-03 2004-03-23 Gentex Corporation Controlled diffusion coefficient electrochromic materials for use in electrochromic mediums and associated electrochromic devices
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
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
JP4085983B2 (ja) * 2004-01-27 2008-05-14 セイコーエプソン株式会社 情報処理装置およびメモリアクセス方法
DE602004014371D1 (de) * 2004-09-10 2008-07-24 St Microelectronics Srl Speicher mit eingebauter Fehlerkorrekturkode-Einrichtung
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
US7716411B2 (en) * 2006-06-07 2010-05-11 Microsoft Corporation Hybrid memory device with single interface
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 電子機器
KR101354152B1 (ko) * 2006-12-18 2014-01-27 삼성전자주식회사 비휘발성 데이터 저장장치에 구비된 가상 파일 시스템의작업 스케줄링 방법 및 장치
JP5020625B2 (ja) * 2006-12-22 2012-09-05 キヤノン株式会社 インタフェース回路
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
TWI373773B (en) * 2008-05-27 2012-10-01 Phison Electronics Corp Storage sysetm having multiple non-volatile memory, and controller and access method thereof
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
US8438453B2 (en) 2009-05-06 2013-05-07 Apple Inc. Low latency read operation for managed non-volatile memory
US8321647B2 (en) 2009-05-06 2012-11-27 Apple Inc. Multipage preparation commands for non-volatile memory systems
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
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

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150078951A (ko) * 2013-12-31 2015-07-08 삼성전자주식회사 메모리 관리 방법 및 장치
WO2015102352A1 (en) * 2013-12-31 2015-07-09 Samsung Electronics Co., Ltd. Memory management method and apparatus
US10430339B2 (en) 2013-12-31 2019-10-01 Samsung Electronics Co., Ltd. Memory management method and apparatus
US9501424B2 (en) 2014-01-07 2016-11-22 Samsung Electronics Co., Ltd. Memory mapping method of nonvolatile memory system and system for providing the memory mapping method
CN110245097A (zh) * 2018-03-08 2019-09-17 爱思开海力士有限公司 存储器控制器及具有存储器控制器的存储器系统
US11995002B1 (en) 2023-06-05 2024-05-28 Metisx Co., Ltd. Electronic device and computing system including same

Also Published As

Publication number Publication date
EP2380083A1 (en) 2011-10-26
CN102326154B (zh) 2014-08-06
JP2012513647A (ja) 2012-06-14
CN102326154A (zh) 2012-01-18
US20130212318A1 (en) 2013-08-15
HK1166386A1 (en) 2012-10-26
WO2010074876A1 (en) 2010-07-01
US8862851B2 (en) 2014-10-14
KR101417236B1 (ko) 2014-07-08
US8370603B2 (en) 2013-02-05
US20100161886A1 (en) 2010-06-24

Similar Documents

Publication Publication Date Title
KR101417236B1 (ko) 관리형 비휘발성 메모리의 어드레스 매핑을 위한 아키텍처
EP2427824B1 (en) Low latency read operation for managed non-volatile memory
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
US10331351B2 (en) Memory controllers, memory systems, solid state drives and methods for processing a number of commands
US8954708B2 (en) Method of storing data in non-volatile memory having multiple planes, non-volatile memory controller therefor, and memory system including the same
US8112574B2 (en) Swappable sets of partial-mapping tables in a flash-memory system with a command queue for combining flash writes
US8904090B2 (en) Non-volatile memory device, devices having the same, and method of operating the same
US7809994B2 (en) Error correction coding for multiple-sector pages in flash memory devices
US20100287329A1 (en) Partial Page Operations for Non-Volatile Memory Systems
US20070300130A1 (en) Method of Error Correction Coding for Multiple-Sector Pages in Flash Memory Devices
US8838877B2 (en) File system derived metadata for management of non-volatile memory
KR20140001924A (ko) 백그라운드 동작을 수행하기 위한 제어기 및 방법
CN114741330A (zh) 储存装置、快闪存储器控制器及其控制方法
CN114974366A (zh) 储存装置、快闪存储器控制器及其控制方法
US12019916B2 (en) Method of scheduling commands for memory device and memory system performing the same
US20150254011A1 (en) Memory system, memory controller and control method of non-volatile memory

Legal Events

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

Payment date: 20170616

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee