KR20090054958A - 논리적 섹터 기반 인터페이스를 엑스포팅하는 nand 플래시 메모리 컨트롤러 - Google Patents

논리적 섹터 기반 인터페이스를 엑스포팅하는 nand 플래시 메모리 컨트롤러 Download PDF

Info

Publication number
KR20090054958A
KR20090054958A KR1020097001528A KR20097001528A KR20090054958A KR 20090054958 A KR20090054958 A KR 20090054958A KR 1020097001528 A KR1020097001528 A KR 1020097001528A KR 20097001528 A KR20097001528 A KR 20097001528A KR 20090054958 A KR20090054958 A KR 20090054958A
Authority
KR
South Korea
Prior art keywords
data
host
controller
sector
nand
Prior art date
Application number
KR1020097001528A
Other languages
English (en)
Inventor
메나헴 라세르
Original Assignee
샌디스크 아이엘 엘티디
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US11/806,701 external-priority patent/US20080046641A1/en
Priority claimed from US11/806,702 external-priority patent/US20080046630A1/en
Application filed by 샌디스크 아이엘 엘티디 filed Critical 샌디스크 아이엘 엘티디
Publication of KR20090054958A publication Critical patent/KR20090054958A/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
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/04Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
    • G11C16/0483Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System (AREA)

Abstract

플래시 메모리 디바이스의 컨트롤러는 호스트 타입 NAND 인터페이스를 통해 데이터 페이지를 메모리 디바이스와 교환하고 플래시 타입 NAND 인터페이스를 통해 데이터 섹터를 호스트와 교환한다. 이러한 데이터 섹터는 데이터 페이지와 사이즈가 상이하다. 데이터 저장 시스템은 컨트롤러 및 메모리 디바이스를 포함한다. 또 다른 데이터 저장 시스템은 물리적 페이지와 사이즈가 상이한 데이터 섹터를 호스트와 교환하기 위한 플래시 타입 NAND 인터페이스를 엑스포팅하기 위한 회로 및 공통 사이즈를 갖는 물리적 페이지를 갖는 메모리를 포함한다. 데이터 처리 시스템은 데이터 저장 시스템 및 호스트를 포함한다. 데이터는 호스트와 데이터 섹터를 교환하기 위한 플래시 타입 NAND 인터페이스를 호스트에 엑스포팅함으로써 공통 물리적 페이지 사이즈를 갖는 물리적 페이지를 갖는 메모리에 저장된다. 데이터 섹터의 공통 사이즈는 물리적 페이지 사이즈와 상이하다.
Figure P1020097001528
플래시 메모리 디바이스, 컨트롤러, 호스트 타입 NAND 인터페이스, 데이터 페이지, 메모리 디바이스, 플래시 타입 NAND 인터페이스, 데이터 섹터, 호스트, 데이터 저장 시스템, 물리적 페이지, 데이터 처리 시스템

Description

논리적 섹터 기반 인터페이스를 엑스포팅하는 NAND 플래시 메모리 컨트롤러{A NAND FLASH MEMORY CONTROLLER EXPORTING A LOGICAL SECTOR-BASED INTERFACE}
본 발명은 플래시 메모리 디바이스와 같은 메모리 디바이스에 관한 것이고, 보다 상세하게는, 논리적 섹터 기반 인터페이스를 엑스포팅하는 컨트롤러를 가진 메모리 디바이스에 관한 것이다.
플래시 메모리 디바이스는 수년 동안 알려져 왔다. 보통, 플래시 메모리내의 각 셀은 하나의 비트의 정보를 저장한다. 전통적으로, 비트를 저장하는 방법은 셀의 2개의 상태를 지원함으로써 이루어져왔는데, 한 상태는 논리 "0"을 나타내고 또 다른 상태는 논리 "1"을 나타낸다. 플래시 메모리 셀에서 2개의 상태는 셀의 채널 위에 부동 게이트(셀의 트랜지스터의 소스 및 드레인 엘리먼트를 연결하는 영역)를 가짐으로써 그리고 이러한 부동 게이트에 저장된 전하량에 대한 2개의 유효 상태를 가짐으로써 구현된다. 보통, 하나의 상태는 부동 게이트에서 제로 상태를 가지고 있고 (보통 "1" 상태를 나타내도록 정의된) 소거된 후의 셀의 초기 미기록 상태이고 또 다른 상태를 (보통 "0" 상태를 나태내도록 정의된) 부동 게이트에서 음전하량 일부를 갖는다. 이러한 부동 게이트내의 음전하를 가짐으로써 셀의 트랜 지스터의 임계 전압(즉, 트랜지스터가 도통하도록 하기 위해 트랜지스터의 컨트롤 게이트에 인가되어야 하는 전압)이 증가한다. 이제 셀의 임계 전압을 체크함으로써 저장된 비트를 읽는 것이 가능한데, 임계 전압이 하이어 상태라면 비트 값은 "0"이고 임계 전압이 로우어 상태라면 비트 값은 "1"이다. 실제로 셀의 임계전압을 정확하게 판독할 필요는 없고, 오직 필요한 것은 셀이 현재 그 2가지 상태중 어느에 위치되어 있는지를 정확하게 식별하는 것이다. 이러한 목적을 위해, 이러한 2개의 상태 사이의 중간에 있는 기준 전압값에 대하여 비교하여 셀의 임계전압이 이러한 기준 값의 아래 또는 위에 있는지를 결정하는 것만으로 족하다.
도 1A는 이것이 어떻게 동작하는지를 그래픽으로 도시하고 있다. 특히, 도 1A는 많은 셀의 임계전압의 분포를 도시하고 있다. 플래시 디바이스내의 셀은 (예를 들어, 불순물 농도에서 작은 변형 또는 실리콘 구조에서의 결함으로 인해) 이들 셀의 특성 및 행동이 정확하게 동일하지 않기 때문에, 모든 셀에 동일한 프로그래밍 동작을 적용한다고 해서 모든 셀이 정확하게 동일한 임계전압을 갖는 것은 아니다. (역사적인 이유로 인해, 플래시 메모리에 데이터를 기록하는 것은 보통 플래시 메모리를 "프로그래밍"하는 것으로 불린다는 것을 주목해야 한다. 용어 "기록하다" 와 "프로그래밍하다"는 여기에서 상호교환가능한 것으로 사용된다.) 대신에, 임계전압은 도 1A에 도시된 방법과 유사하게 분포되어 있다. 보통 "1"의 값을 저장하는 셀은 음 임계전압을 가져서, 대부분의 셀은 도 1A의 좌측 피크에 의해 도시된 값에 가까운 임계전압을 갖고, 일부 보다 적은 수의 셀은 보다 낮거나 보다 높은 임계전압을 갖는다. 마찬가지로, 보통 "0"의 값을 저장하는 셀은 양 임계전압 을 가져서, 대부분의 셀은 도 1A의 우측 피크에 의해 도시된 값에 가까운 임계전압을 갖고, 일부 보다 적은 수의 셀은 보다 낮거나 보다 높은 임계전압을 갖는다.
최근에, 종래에 "멀티 레벨 셀" 또는 짧게 MLC로 부르는 기술을 사용하는 새로운 종류의 플래시 디바이스가 시장에 나타났다. (이러한 명칭은 잘못된 것인데, 그 이유는 이전 타입의 플래시 셀 역시 하나보다 많은 레벨을 가지고 있다. 즉, 이들 셀은 상술된 바와 같이 2개의 레벨을 가지고 있다. 따라서, 2개의 종류의 플래시 셀은 여기에서 "싱글 비트 셀(SBC)" 및 "멀티 비트 셀(MBC)"로 불린다. MBC 플래시에 의한 향상은 각 셀에 2개의 비트를 저장하는 것이다. (원리상, MBC는 또한 셀당 2개 보다 많은 비트의 스토리지를 포함한다. 설명을 단순히하기 위해, 이러한 2-비트 경우가 여기에서 강조된다. 그러나, 본 발명은 셀당 2개보다 많은 비트를 지원하는 플래시 메모리 디바이스에 동일하게 적용가능하다는 것을 이해해야 한다.) 하나의 셀이 2개 비트의 정보를 저장하기 위해 셀은 4개의 상이한 상태중 하나에 있을 수 있어야 한다. 셀의 "상태"가 그 임계전압에 의해 표시되기 때문에,MBC 셀이 그 임계전압에 대하여 상이한 유효한 범위를 지원해야 한다는 것은 분명하다. 도 1B는 전형적인 MBC 셀에 대한 임계전압 분포를 도시하고 있다. 예상되는 대로, 도 1B는 상태중 하나에 각각 상응하는 4개의 피크를 갖는다. SBC 경우에 있어서, 각 상태는 실제 일정 범위의 임계전압이고 하나의 임계전압이 아니다. 셀이 컨텐츠를 판독할 때, 보장되어야 하는 것은 단지, 셀의 임계전압이 있는 범위가 정확하게 식별되어야 한다는 것이다. MBC 플래시 디바이스의 종래 예에 대하여, 여기에 모두 언급된 모든 목적을 위해 여기에 언급되어 통합되어 있는, 하라리 의 미국 특허 제5,434,825호를 참조하라.
플래시 메모리 디바이스는 보통 NOR 디바이스 및 NAND 디바이스로 분리되는데, 이러한 명칭은 개별적인 메모리 셀이 셀 어레이내에 상호접속되는 방식으로부터 유도되었다. NOR 디바이스는 랜덤 액세스 디바이스이고, NOR 플래시 디바이스에 액세스하는 호스트 컴퓨터는 이러한 디바이스의 어드레스의 임의의 어드레스를 이러한 디바이스에 제공할 수 있고, 이러한 플래시 디바이스의 데이터 핀의 그러한 어드레스에 저장된 데이터를 즉시 검색할 수 있다. 이것은 SRAM 또는 EPROM 메모리가 동작하는 방식과 상당히 유사하다. 다른 한편, NAND 디바이스는 랜덤 액세스 디바이스가 아니고 시리얼 액세스 디바이스이다. NOR에 대하여 상술된 바와 같이 임의의 랜덤 어드레스에 액세스하는 것이 불가능하고, 대신에 호스트는 요청된 커맨드(예를 들어, 판독, 기록, 소거등)의 타입 및 이러한 커맨드를 위해 사용되는 어드레스의 타입 모두를 식별하는 일련의 바이트를 NAND 디바이스에 기록해야 한다. 이러한 어드레스는 페이지(단일 동작으로 기록될 수 있는 플래시 메모리의 최소 정크) 또는 블록(단일 동작으로 소걸될 수 있는 플래시 메모리의 최소 정크)를 식별하고, 단일 바이트 또는 워드를 식별하지는 않는다. 이러한 판독 및 기록 커맨드 시퀀스가 단일 바이트 또는 워드의 어드레스를 포함하는 것이 사실이지만 실제로, NAND 플래시 디바이스는 항상 메모리 셀로부터 전체 페이지를 판독하고 이러한 메모리 셀에 전체 페이지를 기록한다. 한 페이지의 데이터가 메모리 어레이로부터 플래시 디바이스내의 버터에 판독된 후에, 호스트는 이들을 스트로브 신호를 사용하여 직렬로 클록킹 아웃함으로써 하나씩 데이터 바이트 또는 워드에 액세스할 수 있다.
NAND 디바이스의 논-랜덤 액세스 성징 때문에, 이러한 디바이스는 이들의 플래시 메모리로부터 직접 코드를 러닝하기 위해 사용될 수 없다. 이것은 (보통 "eXecution In Place" 또는 "XIP"로 불리는) 다이렉트 코드 실행을 지원하는 NOR 디바이스와 대조적이다. 따라서, NOR 디바이스는 보통 코드 저장을 위해 사용되는 디바이스이다. 그러나, NAND 디바이스는 이들을 데이터 저장에 매우 유용하게 하는 장점을 가지고 있다. NAND 디바이스는 동일한 비트 용량의 NOR 디바이스보다 저렴하거나 NAND 디바이스는 동일한 비용으로 NOR 디바이스보다 훨씬 많은 비트의 스토리지를 제공한다. 또한, NAND 디바이스의 기록 및 소거 성능은 NOR 디바이스의 기록 및 소거 성능보다 훨씬 더 빠르다. 이러한 장점으로 인해 NAND 플래시 메모리 기술은 데이터를 저장하기 위해 선택된다.
하나의 전형적인 SBC NAND 디바이스는 2Gbit의 스토리지를 제공하는 일본 도쿄의 도시바 코포레이션의 TC58NVG1S3B이다. 전형적인 MBC NAND 디바이스는 4Gbit의 스토리지를 제공하는 일본 도쿄의 도시바 코포레이션의 TC58NVG2D4B이다. 양측 디바이스의 데이터 시트는 첨부 A 및 첨부 B로서 첨부되어 있다.
상술된 데이터 시트로부터 볼 수 있는 바와 같이, 이러한 2개의 NAND 디바이스는 유사한 인터페이스를 갖고 있다. 이러한 NAND 디바이스는 NAND 플래시 디바이스와 이들의 호스트 디바이스 간의 커맨드 및 데이터 전송을 조정하기 위한 동일한 전기 신호를 사용한다. 이러한 신호는 데이터 라인 및 소수의 컨트롤 신호, 즉, ALE(어드레스 래치 이네이블), CLE(커맨드 래치 이네이블), WE\(기록 이네이 블), RE(일기 이네이블)등을 포함한다. SBC 및 MBC 디바이스는 이들의 행동에 있어서 완전히 동일하지 않다. 즉, MBC 페이지를 기록하는데 걸리는 시간은 SBC 페이지를 기록하는데 걸리는 시간보다 훨씬 더 길다. 그러나, 양측 디바이스에 사용된 전기 신호 및 이들 2개의 디바이스의 기능은 동일하다. 이러한 타입의 인터페이스 프로토콜은 "NAND 인터페이스" 프로토콜로서 당업계에 알려져 있다. 이러한 "NAND 인터페이스" 프로토콜이 동기화 본체에 의해 형식상 표준화 되지 않았지만, NAND 플래시 디바이스의 제조자 모두는 NAND 플래시 기능의 기본적인 부분집합을 지원하기 위한 동일한 프로토콜을 따른다. 이로 인해 이들 전자 제품내의 NAND 디바이스를 사용하는 소비자는 특정 판매자의 디바이스와 함께 동작하기 위한 하드웨어 또는 소프트웨어를 맞춤적용할 필요할 없이 임의의 제조자로부터의 NAND 디바이스를 사용할 수 있다. 이러한 기본적인 부분집합의 기능 외의 다른 기능을 제공하는 NAND 판매자조차 이러한 기본적인 기능이 적어도 어느 정도까지, 또 다른 판매자에 의해 사용된 프로토콜과의 호환성을 제공하기 위해 제공된다는 것에 주목해야 한다.
여기에서, 용어 "NAND 인터페이스 프로토콜"(또는 간단히 "NAND 인터페이스")은 이러한 프로토콜이 모든 타이밍 파라미터와 온전히 호환하지 않거나, 소거 커맨드를 지원하지 않거나, NAND 디바이스에 의해 지원된 다른 커맨드에 대하여 온전히 호환하지 않거나, NAND 디바이스에 의해 지원되지 않는 추가 커맨드를 함유할지라도 기본적인 읽기 및 기록 동작에 대하여 호스트 디바이스와 NAND 플래시 디바이스 사이에서 상술된 프로토콜을 일반적으로 따르는, 시작하는 디바이스와 응답하 는 디바이스간의 인터페이스 프로토콜이다. 즉, 용어 "NAND 인터페이스(프로토콜)"읽기 (opcode 00H) 및 기록(opcode 80H)을 위해 도시바 TC58NVG1S3B NAND 디바이스 및 도시바 TC58NVG2D4B NAND 디바이스와 인터페이스할 때 사용되는 바이트의 시퀀스에 기능상 동일한 전송된 바이트의 시퀀스를 사용하고, 이러한 2개의 NAND 디바이스의 CLE, ALE, CE, WE 및 RE 신호에 기능상 동일한 컨트롤 신호를 사용하는 임의의 인터페이스 프로토콜을 말한다.
"NAND 인터페이스 프로토콜"은 대칭형이 아니라는 것에 주목해야 한다. NAND 인터페이스에 인터랙션을 시작하는 것은 항상 호스트 디바이스이지 절대로 플래시 메모리 디바이스가 아니다.
주어진 디바이스(예를 들어, 컨트롤러, 플래시 디바이스, 호스트 디바이스 등)는 (예를 들어, NAND 인터페이스 프로토콜을 사용하여 다른 디바이스와 상호작용하기 위한) NAND 인터페이스 프로토콜을 지원하기 위해 필요한 엘리먼트(예를 들어, 하드웨어, 소프트웨어, 펌웨어 또는 그 임의의 조합)를 포함하는 경우에, "NAND 인터페이스"를 포함하거나 갖는 것으로 언급된다.
NAND 인터페이스 프로토콜이 대칭이 아니기 때문에, 용어 "호스트 타입 NAND 인터페이스" 및 "플래시 타입 NAND 인터페이스"는 NAND 인터페이스 프로토콜의 2개의 사이들르 구별하기 위해 여기에서 사용되고 있다. 인터랙션을 시작하는 것은 항상 호스트이기 때문에, 주어진 디바이스는 이러한 디바이스가 (즉, NAND 호스트를 제시하고, NAND 프로토콜 인터랙션을 개시하기 위한) NAND 인터페이스 프로토콜의 호스트측을 구현하기 위한 필요한 하드웨어 및/또는 펌웨어 및/또는 소프트웨어 를 포함하는 경우에 "호스트 타입 NAND 인터페이스"를 갖거나 "호스트 타입 NAND 인터페이스"를 엑스포팅하거나 "호스트 타입 NAND 인터페이스"를 "지원"하는 것으로 언급된다. 마찬가지로, 플래시 디바이스는 절대로 인터랙션을 시작하지 않기 때문에 주언진 디바이스는 (즉, NAND 플래시 디바이스를 제시하기 위한) NAND 프로토콜의 플래시 사이드를 구현하기 위한 필요한 하드웨어 및/또는 펌웨어 및/또는 소프트웨어를 포함하는 경우에 "플래시 타입 NAND 인터페이스"를 갖거나 "플래시 타입 NAND 인터페이스"를 "엑스포팅"하거나 "플래시 타입 NAND 인터페이스"를 "지원"한다고 말한다.
여기에서, 용어 "호스트 디바이스" (또는 간단히 "호스트")는 프로세싱 파워를 가지고 있고 플래시 메모리 디바이스와 인터페이스할 수 있는 임의의 디바이스를 의미한다. 전형적인 호스트 디바이스의 예는 컴퓨터, PDA, 휴대폰, 게임 콘솔등을 포함한다.
보통, NAND 디바이스는 인터페이스 및 함께 동작하기에는 비교적 곤란한다. 그러는 한가지 이유는 상술된 바와 같이, NAND 디바이스에 액세스하기 (NOR 디바이스와 비교하여) 비교적 복합한 프로토콜이기 때문이다. 또 다른 어려움은 항상 정확한 데이터를 리턴하는 것으로 가정될 수 있는 NOR 디바이스와 반대로, NAND 디바이스로부터 판독된 데이터내에 에러가 존재한다는 것이다. NAND 디바이스의 이러한 특유의 비신뢰도로 인해 에러 검출 코드(EDC) 및 에러 보정 코드(ECC)를 사용할 필요가 있다.
SBC NAND 플래시 디바이스의 제조자는 보통 사용자에게 512 바이트의 데이터 의 각 페이지에 1 비트 에러를 보정할 수 있는 에러 보정 코드를 적용할 것을 권장한다. 그러나, MBC NAND 플래시 디바이스의 데이터 시트는 512 바이트의 데이터의 각 페이지에 4 비트 에러를 보정할 수 있는 ECC를 적용할 것을 권장한다. ("큰 블록 디바이스"로서 알려진) 상술된 NAND 디바이스의 경우와 같이 사이즈 2048 바이트의 페이지에 대하여, 이러한 페이지의 512 바이트의 각 부분당 에러 보정을 적용할 것이 제안된다. 여기에서, 용어 "N-비트 ECC"는 512 바이트가 하나 페이지, 하나의 페이지보다 작거나, 하나의 페이지보다 큰 사이즈를 갖거나에 상관없이 512 바이트의 데이터에서 N개의 비트 에러를 보정할 수 있는 ECC 스킴을 말한다.
NAND 디바이스의 이러한 복잡성 때문에, 보통 전자 시스템내의 NAND 디바이스의 사용을 제어하기 위한 "NAND 컨트롤러"를 사용하는 것이 보통 실제적이다. 아무런 NAND 컨트롤러의 간섭없이 호스트 디바이스에 의해 직접 NAND 디바이스를 동작시키고 사용하는 것이 가능하고, 이와 같이 실제로 동작하는 시스템이 존재하는 것이 사실이다. 하지만, 이러한 구조는 많은 단점을 가지고 있다. 먼저, 호스트는 NAND 디바이스의 컨트롤 신호(예를 들어, CLE, 또는 ALE)의 각각을 개별적으로 조작해야만 하는데, 이것은 호스트에 대해 귀찮은 것이고 시간이 많은 든다. 둘째, EDC 및 ECC의 지원은 호스트에 심각한 부담을 지운다. 즉, 패리티 비트는 기록된 각 페이지에 대해 계산되어야 하고, 에러 검출 계산 (및 때때로 에러 보정 계산)은 호스트에 의해 실행되어야만 한다. 이러한 모든 것으로 인해 "노 컨트롤러" 구조는 비교적 느리고 비효율적이다.
NAND 컨트롤러를 사용함으로써 NAND 디바이스를 사용할 때 호스트의 태스크 를 상당히 간단하게 할 수 있다. 프로세서는 사용하기에 훨씬 편리한 프로토콜을 사용하여 NAND 컨트롤러와 상호작용한다. 즉. 페이지를 기록하기 위한 요구는 컨트롤 라인 및 NAND 커맨드 코드의 복잡한 시퀀싱의 곤란함없이, 어드레스 및 데이터를 수반되는 단일 커맨드 코드로서 전송될 수 있다. 그다음, 컨트롤러는 호스트-컨트롤러 프로토콜을 동등한 NAND 프로토콜 시퀀스로 전환하고, 호스트는 다른 태스크를 할 수도 있다 (또는 원한다면 단순히, NAND 동작이 종료될 때까지 기달릴 수 있다).
시스템내의 NAND 컨트롤러의 위치에 대해 종래에 다수의 옵션이 있어왔다. 먼저는 도 2에 도시되어 있다. 여기에서 NAND 컨트롤러(114)는 호스트 디바이스(110A)의 호스트 프로세서(112A)내에 물리적으로 위치되어 있다. 호스트 프로세서(112A)가 단일 다이로서 구현되어 있다면, 컨트롤러(114)는 동일한 다이내에 통합된다. 이것은 예를 들어, 미국 텍사스 달라스의 텍사스 인스트루먼트에 의해 제조되고 판매되는 OMPA 프로세서의 일부의 경우이다. 이러한 구조를 사용하여 구축되는 시스템에서 호스트 프로세서(112A)는, 인터랙션이 호스트 프로세서(112A)에 내부적이고 스탠더드 프로토콜을 사용하는데 있어 아무런 유익이 없음으로 인해, 일부 독립적인 프로토콜을 사용하여 NAND 컨트롤러(114)와 보통 상호작용한다.
제2 종래 방법은 도 3A-3B에 도시되어 있다. 여기에서, NAND 컨트롤러(116)는 호스트(110B)의 호스트 프로세서(112B)와 NAND 디바이스(120A) 사이에 존재하는 별개의 물리적인 엘리먼트이다. 이것은 예를 들어, 미국 캘리포니아 밀티파스의 샌디스크 코포레이션에 의해 제조되고 판맨되는 DiskOnKey와 같은 휴대용 USB 플래 시 드라이브(UFD)의 경우이다. 이러한 UFD에서, UFD내에 패키지되고 일측에서 디바이스 측 NAND 인터페이스(124)를 사용하여 NAND 디바이스(120A)와 상호작용하고 (USB 프로토콜을 사용하는 호스트측 USB 인터페이스(122)를 사용하여) 타측에서 호스트 프로세서(112B)와 상호작용하는 NAND 컨트롤러(116)이 존재한다. 이러한 구조를 사용하여 구축된 시스템에서, 호스트 프로세서(112B)는 보통, 인터랙션이 프로세서(112B)에 외부적이고 다른 목적을 위해 프로세서(112B)에 의해 이미 지원되는 스탠더드 프로토콜을 사용하는 것이 보다 더 편리하기 때문에, USB 또는 ATA와 같은 스탠더드 프로토콜을 사용하여 NAND 컨트롤러(116)와 보통 상호작용한다.
제3 종래 방법은 도 4에 도시되어 있다. 여기에서, NAND 컨트롤러(118)는 물리적으로 NAND 디바이스(120B)내에 위치되어 있다. NAND 디바이스(120B) 및 컨트롤러(118)는 동일한 다이에 구현될 수 있다. 이것은 한국, 수원의 삼성 전자에 의해 제조되고 판매되는 OneNAND 디바이스 및 샌디스크 코포레이션에 의해 제조되고 판맨되는 MDOC 스토리지 디바이스의 일부에서의 경우이다. 이러한 구조를 사용하여 구축되는 시스템에서, 호스트 프로세서(112B)는 USB와 같은 스탠더드 프로토콜 또는 MDOC 및 OneNAND 디바이스의 경우에서와 같은 세미-스탠더드 프로토콜을 사용하여 NAND 컨트롤러(118)와 보통 상호작용한다.
상기로부터, (NAND 디바이스 또는 호스트 프로세서와 통합되지 않은) 종래기술의 독립형 NAND 컨트롤러는 보통 도 3B에서와 같이, 그 호스트측에 스탠더드 인터페이스를 그리고 그 플래시 메모리 디바이스측에 NAND 인터페이스를 갖고 있다. 사실 많은 인터페이스 타입, 즉, USB, SD (시큐어디지털), MMC(멀티미디어카드) 등 을 엑스포팅하는 NAND 컨트롤러를 시장에서 발견할 수 있다. 미국 특허 출원 공개 번호 제2007/0074093호로 공개된, 레세의 미국 특허 출원 제11/326,336호는 양측에 NAND 타입 인터페이스를 갖는 NAND 컨트롤러를 개시하고 있다.
NAND 컨트롤러에 의해 제공된 또 다른 기능은 물리적 어드레스 스페이스이외의 논리적 어드레스 스페이스의 호스트로의 엑스포팅이다. 플래시 디바이스는 이러한 디바이스를 물리적 어드레스 레벨에서 사용하는 것이 약간의 문제가 되게 하는 특정 제한사항을 가지고 있다. 플래시 디바이스에서, 메모리의 이전에 기록된 영역을 그 영역의 사전 소건 없이 재기록하는 것이 실제적이지 않다. 즉, 플레시 셀은 셀이 다시 프로그로밍될 수 있기 전에 소거되어야만 한다(예를 들어, "1"로 프로그래밍되어야 한다). 소거는 단지 (보통 현 시장의 NAND 디바이스의 16 내지 128 Kbytes의, 그리고 NOR 디바이스의 큰 사이즈의) "소거 블록"으로 보통 불리는 비교적 큰 그룹의 셀에 대해 이루어질 수 있다. 따라서, 단일 바이트의 또는 심지어 1 킬로바이트의 정크의 컨텐츠를 갱신하는 것은 "하우스키핑" 동작을 필요로 한다. 즉, 갱신되지 않는 소거 블록의 부분은 다른 곳으로 먼저 이동되어야 하고 그래서 이러한 부분은 소거 동안 보존될 것이고, 그다음 제위치로 다시 복구될 것이다.
또한, 디바이스의 블록의 일부는 신뢰할 수 없는 "불량 블록"이고, 따라서, 이러한 블록의 사용은 회피되어야만 한다. 블록은 디바이스를 처음에 시험할 때 제조자에 의해 또는 현장에서 디바이스를 사용하는 동안 블록의 고장을 검출할 때 애플리케이션 소프트웨어 의해 "불량 블록"으로 선언된다.
NAND 디바이스의 한계를 극복하기 위해, 플래시 파일 시스템(FFS)이 도입되었다. 그러한 FFS의 하나가 여기에 언급되어 통합된, 밴의 미국 특허 제5,404,485호에 기술되어 있다. FFS는 플래시 디바이스가 자기 디스크를 에뮬레이팅하도록 하는 플래시 디바이스에 데이터 저장 및 조작을 시스템에게 제공한다. 기존에, 애플리케이션 또는 운영 시스템은 물리적 어드레스를 사용하지 않고 논리적 어드레스(종종 가상 어드레스로 불린다)를 사용하여 플래시 스토리지 시스템과 상호작용한다. 논리적 어드레스로부터 물리적 어드레스로의 맵핑을 제공하는 물리적 스토리지 시스템과 소프트웨어 애플리케이션사이의 중간 소프트웨어 층이 존재한다. 이러한 소프트에어가 저장 시스템을 아무런 제한없이 랜덤으로 판독되거나 기록될 수 있는 연속 디펙트-프리 매체를 갖는 것으로 볼 수 있지만, 물리적 어드레싱 스킴은 (예를 들어, 불량 블록으로 인해) 그 어드레스 범위내에 "홀(hole)"을 갖고 있고, 논리적 어드레스 범위에서 서로에 인접한 데이터의 피스는 물리적 어드레스 범위에서는 크게 분리될 수 있을지도 모른다. 상술된 맵핑을 하는 중간 소프트웨어 층은 애플리케이션이 실행되는 동일한 CPU에 실시되는 소프트웨어 드라이버일 수 있다. 대안으로, 저장 시스템의 플래시 디바이스를 제어하고, 호스트 컴퓨터가 이러한 저장 시스템에 액세스할 때 호스트 컴퓨터의 메인 CPU에 대한 인터페이스로서 동작하는 컨트롤러내에 구현될 수 있다. 이것은 예를 들어, 다른 기능중에, 이러한 타입의 맵핑을 구현하는 펌웨어 프로그램을 실시하는 온보드 컨트롤러를 갖는, 시큐어 디지털(SD) 카드 또는 멀티미디어카드(MMC)와 같은 제거가능한 메모리 카드내의 상황이다.
이러한 어드레스 맵핑을 하는 소프트웨어 또는 펌웨어 구현은 보통 "플래시 매니지먼트 시스템" 또는 "플래시 파일 시스템"으로 불린다. 후자의 용어는 파일이 운영체제 또는 퍼스널 컴퓨터에서 사용된다는 점에서 반드시 "파일"을 구현이 반드시 지원하지 않고 하드 디스크 소프트웨어 드라이버에 의해 엑스포팅되는 것과 유사한 블록 디바이스 인터페이스를 지원하기 때문에 오기이다. 그럼에도 불구하고, 용어 "플래시 파일 시스템"은 널리 사용되고, "플래시 파일 시스템" 및 "플래시 관리 시스템"은 여기에서 상호교환하여 사용되고 있다.
논리적-물리적 어드레스 맵핑을 구현하는 다른 종래기술의 시스템은 밴의 미국 특허 제5,937,425호 및 레세의 미국 특허 제6,591,330호에 기술되어 있고, 이들 둘은 여기에 모두 언급된 모든 목적을 위해 여기에 언급되어 통합되어 있다.
스토리지 디바이스는 이러한 디바이스와 인터페이스하고 이러한 디바이스에 액세스하여 데이터를 읽기 및/및 기록하는 호스트 컴퓨터가 데이터가 저장되는 물리적 어드레스를 알지 못하는 경우에 논리적 인터페이스를 엑스포팅하는 것으로(또는 단순히 갖는 것으로) 여기에 언급되어 있다. 호스트에 의해 제공된 특정 논리적 어드레스로/로부터 기록/판독된 데이터는 스토리지 디바이스내에 임의의 물리적 위치에 저장될 수도 있지만, 이러한 사실은 호스트에 구별되지 않는다. 보통, 스토리지 디바이스가 논리적 인터페이스를 갖는다는 것은 또한 호스트가 스토리지 디바이스를 연속 "홀 프리" 어드레스 스페이스를 갖는 것으로 본다는 것을 의미한다.
스토리지 디바이스는 여기에서, 이러한 디바이스와 인터페이스하고 이러한 디바이스에 액세스하여 데이터를 읽기 및/또는 기록하는 호스트 컴퓨터가 데이터가 저장되는 물리적 어드레스를 알고 있고, 커맨드를 스토리지 디바이스에 발행할 때 이러한 물리적 어드레스를 분명히 지시하는 경우에 물리적 인터페이스를 엑스포팅하는 것으로(또는 "갖는" 것으로) 언급되어 있다.
보다 일반적으로, 플래시 타입 NAND 인터페이스를 "갖거나" "엑스포팅"하는 디바이스는 여기에서, 논리적 인터페이스를 갖는 스토리지 디바이스의 경우에서처럼, 호스트 타입 NAND 인터페이스를 통해 스토리지 디바이스와 상호작용하는 상응하는 호스트 디바이스가 물리적 어드레스를 모르고 단지 논리적 어드레스만을 알고 있는 경우에 "논리적" 플래시 타입 NAND 인터페이스를 "갖거나" "엑스포팅"하는 것으로 언급되어 있다. 호스트 디바이스의 상응하는 호스트 타입 인터페이스는 "논리적" 호스트 타입 NAND 인터페이스인 것으로 여기에 언급되어 있다. 마찬가지로, 플래시 타입 NAND 인터페이스를 "갖거나" "엑스포팅"하는 디바이스는, 물리적 인터페이스를 갖는 스토리지 디바이스의 경우에서 처럼, 상응하는 호스트 디바이스가 물리적 어드레스를 알고 있는 경우에 "물리적" 호스트 타입 NAND 인터페이스를 "갖거나" "엑스포팅"하는 것으로 여기에 언급되어 있다. 호스트 디바이스의 상응하는 호스트 타입 인터페이스는 "물리적" 호스트 타입 NAND 인터페이스인 것으로 여기에 언급되어 있다. 하나의 디바이스의 논리적 플래시 타입 NAND 인터페이스는 NAND 프로토콜에 따라 데이터를 교호나하도록 2개의 디바이스에 대하여 또 다른 디바이스의 논리적 호스트 타입 NAND 인터페이스와 쌍을 이루어야 하고, 하나의 디바이스의 물리적 플래시 타입 NAND 인터페이스는 NAND 프로토콜에 따라 데이터를 교호나하도록 2개의 디바이스에 대하여 다른 디바이스의 물리적 호스트 타입 NAND 인터페 이스와 쌍을 이루어야 한다는 것에 주목해야 한다.
상기 용어정의를 사용하여 종래 기술의 NAND 플래시 디바이스는 다음과 같이 구별될 수 있다.
A. NAND 인터페이스가 아니고 논리적 인터페이스인 인터페이스를 디바이스의 호스트에 엑스포팅하는 디바이스. USB, SD, 또는 MMC 인터페이스를 엑스포팅하는 모든 디바이스는 (모두 논-NAND 인터페이스를 사용하는) 이러한 프로토콜은 논리적 어드레스의 사용을 필요로 하기 때문에 이러한 클래스내에 들어간다.
B. 논리적 인터페이스인 NAND 인터페이스를 디바이스의 호스트에 엑스포팅하는 디바이스. 이런 것은 예를 들어, 레세의 미국 특허 제11/326,336호에 개시된 컨트롤러이다.
C. 물리적 인터페이스인 NAND 인터페이스를 디바이스의 호스트에 엑스포팅하는 디바이스. 상술된 2개의 도시바 NAND 디바이스와 같은 스탠더드 NAND 디바이스는 이러한 클래스내에 들어간다.
주소지정되어야 하는 NAND 기반 플래시 메모리 디바이스와의 인터페이스에 잠재적인 복잡도의 한가지 추가 이슈가 존재한다. NAND 디바이스는 페이지에 기록된다. 즉, 페이지는 메모리 셀 어레이에 기록될 수 있는 데이터의 최소 정크이다. 과거에, 대부분의 NAND 플래시 디바이스는 0.5킬로바이트(512 바이트)의 페이지를 사용하였다. 최근에, 대부분의 NAND 디바이스는 2킬로바이트의 페이지를 사용한다. 즉, 호스트 컴퓨터의 운용체제 및 호스트 컴퓨터에서 실행되는 애플리케이션은 보통 0.5킬로바이트 크기의 "섹터"의 유닛내의 저장된 데이터에 액세스한다. 0.5킬로바이트 페이지를 갖는 NAND 디바이스를 사용할 때, 페이지 사이즈와 섹터 사이즈간에 정확한 매치가 존재하고, 아무런 어려움도 예상되지 않는다. 그러나, 2킬로바이트 페이지 (또는 섹터의 사이즈보다 큰 다른 페이지 사이즈)를 가진 NAND 디바이스를 사용할 때, 다수의 섹터가 공통 플래시 페이지에 할당되고, 이것은 아래에 설명되는 바와 같이 일부 복잡하다.
레세의 미국 특허 제6,760,805호는 페이지 사이즈가 섹터 사이즈보다 클 때 플래시 관리 시스템과 연관된 복잡도의 일부를 설명하고 이러한 문제점의 해결을 위한 방법을 제시하고 있다. 미국 특허, 6,760,805호의 방법은 물리적 어드레스가 플래시 관리 시스템에 의해 할당되고, 호스트에 의해 알려진 논리적 어드레스와 직접 관련되지 않는 방식을 다룬다.
(USB, SD, 또는 MMC와 같은) 논-NAND 인터페이스를 엑스포팅하는 스토리지 디바이슨느 섹터를 데이터 전송의 기본 유닛으로서 사용한다. 따라서, 이러한 디바이스를 사용할 때 호스트는 디바이스내의 실제 페이지 사이즈를 알 필요가 없고 컨트롤러는 모든 전환 및 맵핑을 관리한다. 이것은 이러한 컨트롤러가 이미 논리적-물리적 어드레스 변환을 다루고 있기 때문에 예측 타당하고, 섹터-페이지 맵핑을 추가하는 것은 자연스런 확장이다. 역시 물리적 인터페이스인 NAND 인터페이스를 엑스포팅하는 스토리지 디바이스를 사용할 때 호스트와 메모리 디바이스간의 데이터 전송의 기본 유닛은 페이지이다. 이러한 페이지가 섹터 보다 크다면, 데이터 섹터의 페이지로의 맵핑 및 매칭의 부담은 호스트에게 간다.
논리적 인터페이스인 NAND 인터페이스를 갖는 스토리지 디바이스를 사용할 때, 데이터 전송의 단위는, 논리적 어드레싱의 사용이 논리적-물리적 어드레스 변환의 존재를 암시하기 때문에, 섹터-페이지 맵핑이 용이하게 추가될 수 있는 섹터라는 것이 예측된다. 그러나, 이것은 그렇지 않다. 즉, 논리적 인터페이스인 NAND 인터페이스를 갖는 모든 종래기술의 디바이스가 이들의 데이터 전송의 기본 단위로서 섹터가 아닌 페이지를 사용하고 있다.
이러한 사실은 논리적 NAND 인터페이스를 사용함으로써 얻어지는 유익의 상당부부분을 소멸시킨다. 이러한 인터페이스의 장점 및 이들 채택에 대한 주요 원인은 호스트측에서 액세스 소프트웨어를 단순화시키는 것이다. 논리적 인터페이스가 불량 블록 및 플래시 관리의 다른 문제를 관리하기 때문에, 메모리 디바이스로의 호스트에 의한 액세스는 매우 단순해진다. 즉, 호스트는 논리적 페이지를 기록하고 논리적 페이지를 판독한다. 추가적인 기록을 위한 충분한 자유공간을 갖도록 이루어져 하는 가비지 수집 태스크 또는 페이지의 물리적 위치에 아무런 관심도 주어질 필요가 없다. 그러나, NAND 타입 논리적 인터페이스가 그 데이터 전송의 기본 유닛으로서 페이지를 사용하고 페이지 사이즈가 섹터 사이즈와 상이하다면, 이러한 단순함의 상당부분은 없어진다.
이러한 원인을 알기 위해 호스트가 다수의 0.5킬로바이트 논리적 섹터의 스트림을 각각 2킬로바이트의 페이지 동작을 엑스포팅하는 디바이스에 기록해야만 할 때 무슨 일이 일어나는지를 생각해보라. 하나의 예로서, 논리적 어드레스 0,1,2 및 3을 갖는 섹터가 스토리지 디바이스에 하나씩 기록된다고 가정해보자. 인터페이스가 오직 2 킬로바이트 페이지 동작을 지원하기 때문에, 섹터 No.0를 기록할 때 호스트는 실제로 2 킬로바이트가 셀의 플래시 어레이로 이동되게 한다. 그다음, 섹터 No.1이 기록되어야 한다. 그러나, 그러한 섹터는 섹터 No.0와 함께 공통 페이지에 패킹되어야 한다. 그래서, 호스트는 섹터 0을 판독해야 하고, 양 섹터의 데이터를 머징하고 양측 섹터의 데이터를 포함하는 페이지 기록 커맨드를 전송해야 한다. 이것은 섹터 N0.2에도 계속되고 그다음, 섹터 No.3에도 계속된다. 각 경우에 이전의 섹터는 단지 새롭게 도착하는 섹터와, 호스트에 의해 조합된 후에 다시 기록되기 위해, 호스트로 판독되어야만한다. 이러한 프로세스는 매우 비효율적이고, 상술된 바와 같이, 제1 플레이스에 논리적 인터페이스를 갖는 주요 장점, 즉, 호스트가 페이지 사이즈와 같이, 플래시 메모리의 물리적 구현 디테일에 의해 간섭받지 않고 단순한 액세스 모델에 따라 메모리 디바이스에 액세스하는 장점을 소명시킨다.
따라서, 스토리지 디바이스의 페이지 사이즈와 상이한 섹터 사이즈를 갖는 호스트에 의해서도 논리적 NAND 인터페이스를 갖는 스토리지 디바이스에 액세스하는 편리한 방법을 가질 필요가 있다.
본 발명에 따라, (a) 상기 플래시 메모리 디바이스와 데이터 페이지를 교환하기 위한 호스트 타입 NAND 인터페이스; 및 (b) 상기 컨트롤러의 호스트와 데이터 섹터를 교환하기 위한 플래시 타입 NAND 인터페이스;를 포함하고, 상기 데이터 페이지는 공통 데이터 페이지 사이즈를 갖고 있고, 상기 데이터 섹터는 상기 공통 데이터 페이지 사이즈와 상이한 공통 데이터 섹터 사이즈를 갖는 플래시 메모리 디바이스용 컨트롤러가 제공된다.
본 발명에 따라, (a) 공통 물리적 페이지 사이즈를 갖는 복수의 물리적 페이지를 포함하는 메모리; 및 (b) 상기 데이터 저장 시스템의 호스트와 데이터 섹터를 교환하기 위한 플래시 타입 NAND 인터페이스를 엑스포팅하기 위한 회로;를 포함하고, 상기 데이터 섹터는 상기 물리적 페이지 사이즈와 상이한 공통 데이터 섹터 사이즈를 갖는 데이터 저장 시스템이 제공된다.
본 발명에 따라, (a) 공통 물리적 페이지 사이즈를 갖는 복수의 물리적 페이지를 포함하는 메모리를 제공하는 단계; 및 (b) 상기 데이터 섹터를 상기 호스트와 교환하기 위한 플래시 타입 NAND 인터페이스를 호스트에 엑스포팅하는 단계;를 포함하고, 상기 데이터 섹터는 상기 물리적 페이지 사이즈와 상이한 공통 데이터 섹터 사이즈를 갖는 데이터 저장 방법이 제공된다.
플래시 메모리 디바이스를 제어하기 위한 본 발명의 기본 컨트롤러는 데이터 페이지를 플래시 메모리 디바이스와 교환하기 위한 호스트 타입 NAND 인터페이스 및 데이터 섹터를 기본 컨트롤러의 호스트와 교환하기 위한 플래시 타입 NAND 인터페이스를 포함한다. 데이터 페이지는 공통 데이터 페이지 사이즈를 갖고, 데이터 섹터는 공통 데이터 섹터 사이즈를 갖고, 공통 데이터 섹터 사이즈는 공통 데이터 페이지 사이즈와 상이하다. 데이터 페이지의 "사이즈"는 데이터 페이지내의 비트의 수가 되는 것으로 여기에서 이해된다. 데이터 섹터의 "사이즈"는 데이터 섹터내의 비트의 수인 것으로 여기에서 이해된다. 예를 들어, 길이가 8 비트인 바이트를 사용하면 512 바이트 섹터의 사이즈는 4096 비트이고 2 킬로바이트의 사이즈는 16,384 비트이다. 공통 데이터 섹터 사이즈는 공통 데이터 페이지 사이즈보다 작은 것이 바람직하다.
호스트 타입 NAND 인터페이스는 물리적 인터페이스이고 플래시 타입 NAND 인터페이스는 논리적 인터페이스인 것이 바람직하다.
본 발명의 기본 컨트롤러는 또한 적어도 하나의 호스트측 인터페이스를 포함하는 것이 바람직하다. "호스트측" 인터페이스는 "호스트 타입" 인터페이스와 동일하지 않다는 것에 주목해야 한다. 예를 들어, 아래의 도 5A는 하나가 플래시 타입 인터페이스인 2개의 호스트 측 인터페이스를 갖는 컨트롤러를 도시하고 있다.
이러한 컨트롤러는 또한 에러 보정 모듈, 암호 모듈 및/또는 어드레스 맵핑 모듈과 같은 하나 이상의 펑셔널 모듈을 포함하는 것이 바람직하다.
본 발명의 데이터 저장 시스템의 한 타입은 본 발명의 컨트롤러 및 이러한 컨트롤러가 제어하는 플래시 메모리 디바이스를 포함한다. 플래시 메모리 디바이스는 NAND 플래시 메모리 디바이스인 것이 바람직하다.
이러한 컨트롤러 및 플래시 메모리 디바이스를 제조하기 위한 옵션은 상이한 각각의 다이에 플래시 메모리 디바이스와 컨트롤러를 제조하는 단계(이러한 경우에 호스트 타입 NAND 인터페이스는 인터-다이 인터페이스이다); 이러한 컨트롤러 및 플래시 메모리 디바이스를 공통 다이에 제조하는 단계;를 포함한다. 이러한 컨트롤러 및 플래시 메모리 디바이스가 상이한 다이에 제조된다면, 패키징 옵션은 동일한 멀티-칩 패키지에 컨트롤러 및 플래시 메모리 디바이스 모두를 패키징하는 단계; 상기 컨트롤러를 컨트롤러 패키지에 패키징하고 플래시 메모리 디바이스를 별개의 메모리 디바이스 패키지에 패키징하는 단계; 상기 컨트롤러를 컨트롤러 패키지에 패키징하고 플래시 메모리 디바이스 다이를 인쇄회로기판에 직접 장착하는 단계; 플래시 메모리 디바이스를 메모리 디바이스 패키지에 패키징하고 컨트롤러 다이를 인쇄회로기판에 직접 장착하는 단계; 및 상기 컨트롤러 다이 및 플래시 메모리 디바이스 다이를 인쇄회로기판에 직접 장착하는 단계;를 포함한다.
본 발명의 데이터 처리 시스템의 한 타입은 이러한 데이터 저장 시스템 및 그 호스트를 포함한다.
본 발명의 또 다른 기본 데이터 저장 시스템은 모두가 공통 물리적 페이지 사이즈를 갖는 복수의 물리적 페이지를 포함하는 메모리를 포함한다. 이러한 기본적 데이터 저장 시스템은 또한 데이터 저장 시스템의 호스트와 데이터 섹터를 교환하기 위한 플래시 타입 NAND 인터페이스를 엑스포팅하기 위한 회로를 포함한다. 데이터 섹터는 메모리의 페이지의 공통 물리적 페이지 사이즈와 상이한 공통 데이터 섹터 사이즈를 갖는다. 물리적 페이지의 "사이즈"는 물리적 페이지에 저장될 수 있는 비트의 최대수인 것으로 여기에서 이해된다. 예를 들어, 8 비트의 길이를 갖는 바이트를 사용하면, 2킬로바이트 물리적 페이지의 사이즈는 16,384 비트이다. 공통 데이터 섹터 사이즈는 공통 물리적 페이지 사이즈보다 작은 것이 바람직하다.
플래시 타입 NAND 인터페이스가 논리적 인터페이스인 것이 바람직하다.
각각의 페이지는 복수의 플래시 셀을 포함하는 것이 바람직하다. 플래시 셀은 NAND 플래시 셀인 것이 가장 바람직하다.
이러한 회로 및 메모리를 제조하기 위한 옵션은 상이한 각각의 다이에 회로 및 메모리를 제조하는 단계 및 공통 다이에 회로 및 메모리를 제조하는 단계를 포함한다. 회로 및 메모리가 상이한 다이에서 제조된다면, 패키징 옵션은 이러한 회로 및 메모리 모두를 동일한 멀티-칩 패키지에 패키징하는 단계; 회로를 회로 패키지에 패키징하고 메모리를 별개의 메모리 패키지에 패키징하는 단계; 회로를 회로 패키지에 패키징하고 메모리 다이를 인쇄회로기판에 직접 장착하는 단계; 메모리를 메모리 패키지에 패키징하고 회로 다이를 인쇄회로기판에 직접 장착하는 단계; 및 회로 다이 및 메모리를 인쇄회로기판에 직접 장착하는 단계;를 포함한다.
본 발명의 또 다른 데이터 처리 시스템은 이와 같은 데이터 저장 시스템 및 이러한 데이터 저장 시스템의 호스트를 포함한다.
데이터를 저장하기 위한 본 발명의 기본적인 방법은 모두 공통 물리적 페이즈 사이즈를 갖는 복수의 물리적 페이지를 포함하는 메모리를 제공하는 단계 및 데이터 섹터를 호스트와 교환하기 위한 플래시 타입 NAND 인터페이스를 엑스포팅하는 단계를 포함한다. 데이터 섹터는 메모리의 페이지의 공통 물리적 페이지 사이즈와 상이한 공통 데이터 섹터 사이즈를 갖는다. 공통 데이터 섹터 사이즈는 공통 물리적 페이지 사이즈보다 작다.
각각의 물리적 페이지는 각각의 물리 어드레스 범위를 갖고 각각의 데이터 섹터는 각각의 논리적 섹터 어드레스를 갖는 것이 바람직하다. 데이터는, 하나 이상의 데이터 섹터를 메모리에 기록하기 위해 호스트로부터 수신하는 단계; 각각의 수신된 데이터 섹터의 논리적 섹터 어드레스를 상응하는 물리적 어드레스에 맵핑하는 단계; 및 논리적 센터 어드레스가 맵핑된 물리적 어드레스를 각각의 물리적 어드레스 범위에서 갖는 하나 이상의 물리적 페이지에 데이터를 섹터를 기록하는 단계를 포함하는 단계에 의해 메모리에 기록된다. 데이터는, 하나 이상의 데이터 섹터를 메모리로부터 판독하기 위해 커맨드를 호스트로부터 수신하는 단계; 각각의 데이터 섹터의 논리적 섹터 어드레스를 상응하는 물리적 어드레스에 맵핑하는 단계; 및 논리적 섹터 어드레스가 맵핑된 물리적 어드레스를 각각의 물리적 어드레스의 범위에서 갖는 하나 이상의 물리적 페이지로부터 데이터 섹터를 판독하는 단계;를 포함하는 단계에 의해 메모리로부터 판독된다.
본 발명은 다음의 도면을 참조하여 단지 예로서 설명되어 있다.
도 1A는 1 비트 모드로 프로그래밍되는 플래시 셀의 임계전압 분포를 도시하고 있는 도면,
도 1B는 2 비트 모드로 프로그래밍되는 플래시 셀의 임계전압 분포를 도시하고 있는 도면,
도 2는 플래시 메모리 디바이스의 컨트롤러가 플래시 메모리 디바이스의 호스트에 포함된 종래기술의 데이터 처리 시스템의 고레벨 개략 블록도,
도 3A 및 도 3B는 플래시 메모리 디바이스의 컨트롤러가 플래시 메모리 디바이스의 호스트 및 플래시 메모리 디바이스 모두로부터 분리된 종래기술의 데이터 처리 시스템의 고레벨 개략 블록도,
도 4는 플래시 메모리 디바이스의 컨트롤러가 플래시 메모리 디바이스에 포함된 종래기술의 데이터 처리 시스템의 고레벨 개략 블록도,
도 5A는 본 발명의 컨트롤러의 고레벨 개략 블록도,
도 5B는 도 5A의 컨트롤러를 포함하는 데이터 처리 시스템의 고레벨 개략 블록도,
도 6A 내지 도 6G는 도 5B의 데이터 처리 시스템의 컴포넌트를 패키징하기 위한 다양한 옵션을 도시하는 도면,
도 7은 본 발명에 따른 메모리에 데이터를 기록하는 순서도, 및
도 8은 본 발명에 따른 메모리로부터 데이터를 판독하는 방법의 순서도.
본 발명에 따른 NAND 인터페이스를 통해 메모리 디바이스에 액세스하는 원리 및 동작은 도면 및 다음의 설명을 참조하여 보다 더 잘 이해될 수 있다.
본 발명이 이제 특정 실시예에 의해 설명될 것이다. 본 발명은 아래에 설명되는 실시예에 제한되지 않는다는 것을 이해해야 한다. 또한, 컨트롤러, 컨트롤러를 포함하는 시스템 및 기술되는 데이터 판독 방법의 모든 특징이 첨부된 청구범위중 특정한 하나에 청구된 본 발명을 실현하는데 필요한 것은 아니라는 것을 이해해야 한다. 디바이스의 다양한 엘리먼트 및 특징은 본 발명을 온전히 가능케하기 위해 기술되어 있다. 또한, 이러한 프로세스 또는 방법이 도시되거나 기술되는 본원에서, 방법의 단계는 그것이 하나의 단계가 먼저 실행된 다른 단계에 종속되는 상황으로부터 분명하지 않다면 임의의 순서 또는 동시에 실행될 수 있다는 것을 이해해야 한다.
본 발명의 컨트롤러는 컨트롤러에 의해 제어되는 NAND 디바이스의 물리적 페 이지가 섹터 사이즈와 상이한 사이즈를 가짐에도 불구하고 데이터 전송의 단위로서 섹터를 지원하는 호스트측 논리적 NAND 인터페이스에 엑스포팅하는 NAND 컨트롤러이다. 본 발명의 컨트롤러는 호스트에 의해 보여지는 바와 같은 논리적 섹터의 NAND 디바이스에 의해 보여지는 바와 같은 물리적 페이지로의 맵핑을 다룬다.
"NAND 플래시 메모리 디바이스"는 복수의 NAND 플래시 메모리 셀 및 NAND 플래시 메모리 셀내에 데이터를 저장하기 위한 임의의 필요한 컨트롤 회로(예를 들어, 플래시 타입 인터페이스를 제공하기 위한 회로)를 포함하는 전자 회로로서 여기에 정의되어 있다. "NAND 플래시 메모리 디바이스"는 반드시 자체 전용 하우징을 갖고 있지는 않고 단일 하우징내에 컨트롤러와 같은 또 다른 "디바이스"와 함께 존재할 수 있다는 것에 주목해야 한다. 본 발명의 일부 실시예에서, "NAND 플래시 메모리 디바이스"는 임의의 간섭하는 패키징 없이 인쇄 회로 기판에 직접 장착된다.
다시 도면에서, 도 5A는 본 발명의 일부 실시예에 따른 컨트롤러(130)의 개략 블록도이다. 컨트롤러(130)는 NAND 플래시 디바이스에 인터페이스하기 위한 플래시 메모리 디바이스측 NAND 인터페이스(142)를 포함한다. 플래시 메모리 디바이스측 NAND 인터페이스(142)는 호스트 타입 NAND 인터페이스 (즉, NAND 인터페이스에서 인터랙션을 시작하고 호스트 디바이스를 NAND 플래시 디바이스에 제시하도록 채택되었다) 이다.
컨트롤러(130)는 또한 NAND 인터페이스 프로토콜을 지원하는 호스트에 인터페이스하기 위한 호스트측 NAND 인터페이스(144)를 포함한다. 호스트측 NAND 인터 페이스(144)는 플래시 메모리 타입 NAND 인터페이스이다(즉, 컨트롤러(130)는 호스트 NAND 플래시 메모리 스토리지 디바이스에 제시되도록 채택되었다). 컨트롤러는 USB 또는 MMC 인터페이스와 같은, 논-NAND 인터페이스를 사용하여 컨트롤러를 호스트에 인터페이스하기 위한 하나 이상의 추가 호스트측 인터페이스(146)를 옵션으로 포함할 수 있다.
도 5A에 도시된 바와 같이, 컨트롤러(130)는 디바이스측 인터페이스(142)를 통해 NAND 디바이스로부터 검색된 데이터내의 에러 모두 또는 일부를 검출하고 보정하기 위한 ECC 모듈(132)을 더 포함한다. ECC 모듈(132)은 하드웨어, 소프트웨어, 펌웨어 또는 그 임의의 조합을 포함할 수 있다. ECC 모듈(132)은 모든 에러를 보정할 수 있고, 이러한 경우에, NAND 컨트롤러(130)는 호스트로 에러가 없는 NAND 디바이스를 엑스포팅한다. 대안으로, ECC 모듈(132)은 플래시 메모리 디바이스측 NAND 인터페이스(142)를 통해 NAND 디바이스로부터 검색된 데이터에서 발견된 에러의 일부만을 보정할 수 있다.
NAND 컨트롤러(130)는 또한 호스트로부터 수신된 논리적 플래시 어드레스를, 플래시 디바이스에 전송된 무릴적 플래시 어드레스로 맵핑하는 어드레스 맵핑 또는 암호화 기능과 같은 다른 기능을 제공하기 위한 하나 이상의 모듈(134)(예를 들어, 하드웨어, 소프트웨어, 펌웨어 또는 그 임의의 조합을 포함한다)을 포함한다. 컨트롤러(130)가 논리적 인터페이스를 엑스포팅하기 때문에, 컨트롤러9130)는 논리적-물리적 어드레스 변환의 기능을 적어도 포함하여야 한다. 다른 기능은 선택사항이다.
도 5B는 도 5A에 기술된 외부 NAND 컨트롤러(130)(즉, 호스트 디바이스로부터 분리되어 있는 컨트롤러)를 포함하는 시스템 예의 개략 블록도이다. 디바이스측 NAND 인터페이스(142)르 통해, 외부 NAND 컨트롤러(130)는 도 2 및 도 3A의 NAND 플래시 디바이스와 인터페이스한다. 호스트측 NAND 인터페이스(144)를 통해 NAND 컨트롤러(130)는 도 2의 호스트 디바이스(110A)와 인터페이스한다.
본 발명의 혁명적인 특징은 컨트롤러(130)가 데이터의 섹터를 사용하여 호스트(110A)와 상호작용한다는 점이다. 호스트(110A)는 섹터를 컨트롤러(130)에 기록하고 컨트롤러(130)로부터 섹터를 판독하고, 이 양측 경우 모두 논리적 어드레스를 사용한다. 다른 한편, 컨트롤러(130)는 섹터와 상이한 사이즈를 갖는 데이터의 페이지를 사용하여 NAND 플래시 메모리 디바이스(120A)와 상호작용한다.
도 6A는 도 5A에 기술된 시스템 예의 다이 구성 예를 도시하고 있다. 따라서, NAND 컨트롤러(130)는 컨트롤러 다이(131)에 제조된 전자 회로(135)를 포함하지만, NAND 플래시 디바이스(120A)는 플래시 다이(133)에 제조된 전자 회로(137)를 포함한다. 컨트롤러 다이(131) 및 플래시 다이(133)는 뚜렷이 분리된 다이이다. 도 5A에 도시된 NAND 컨트롤러(130)내의 엘리먼트 (즉, ECC 모듈(132), 플래시 타입 NAND 인터페이스(144), 호스트 타입 NAND 인터페이스(142, 146)는 컨트롤러 다이(131)에 존재하는 컨트롤러 전자 회로(135)에 의해 적어도 부분적으로 구현되어 있다.
컨트롤러 전자 회로(135)와 플래시 전자 회로(137) 사이의 인터페이스(142)는 "인터-다이" 인터페이스이다. 여기에서 사용되는 바와 같이, "인터-다이 인터 페이스"(예를 들어, 인터-다이 NAND 인터페이스)는 (예를 들어, 하나 이상의 특정 프로토콜을 사용하여 서로 통신하기 위해 전자 회로의 별개의 유닛에 대한 필요한 물리적 및 논리적 인트라스트럭쳐를 제공하기 위해) 별개의 다이에 존재하는 전자 회로의 2개의 별개의 유닛 사이에 인터페이스하도록 동작한다. 따라서, 인터-다이 인터페이스(142)는 별개의 다이(130, 133)에 존재하는 전자 회로의 2개의 별개의 유닛(135, 137) 사이에서 인터페이스하기 위한 필요한 물리적 엘리먼트(패드, 입출력 드라이버등)를 포함한다.
본 발명의 일부 실시예에 따라, 인터-다이 인터페이스는 공통 패키지내에 패키지되는 2개의 별개의 다이에 제조된 전자 회로 사이에서 인터페이스한다. 이러한 예는 NAND 컨트롤러(130) 및 NAND 플래시 디바이스(120A) 모두 공통 멀티-칩 패키지(139)내에 존재하는 도 6B에 설명되어 있다.
대안으로, 인터-다이 인터페이스는 (예를 들어, 각각의 다이가 자체 패키지내에 패키징된) 벌개의 패키지내에 패키징된 2개의 별개의 다이에 제조된 전자 회로 사이에서 인터페이스한다. 이러한 예는 벌개의 각 패키지(141, 143)에 존재하는 NAND 컨트롤러(130) 및 NAND 플래시 디바이스(120A)를 도시하는 도 6C에 설명되어 있다. NAND 컨트롤러(130)는 컨트롤러 패키지(141)내에 존재하고, NAND 플래시 디바이스(120A)는 플래시 패키지(143)내에 존재한다. 따라서, 도 6C에 도시된 바와 같이, 인터페이스(142)는 "인터-패키지 인터페이스"이다.
다이가 (예를 들어, 도 6B에 도시된 바와 같이) 공통 패키지에 존재하는 실시예 및 다이가 (예를 들어, 도 6C에 도시된 바와 같이) 별개의 패키지에 존재하는 실시예는 단지 가능한 구성이 아니다.
따라서, 대안으로, 일부 실시예에서, 인터-다이 인터페이스는 이러한 다이중 하나 또는 모두가 전혀 아무런 패키지를 갖지 않는, 2개의 별개의 다이에 제조된 전자 회로 사이에서 인터페이스한다. 예를 들어, 많은 애플리케이션에서, 공간 보존 필요로 인해, 메모리 다이가 패키징이 전혀 없이 보드상에 제공된다(예를 들어, 장착, 예를 들어, 직접 장착된다). 따라서, 하나의 예에서, 폰에 대한 메모리의 새로운 세대에서 메모리 다이는 자주 전혀 패키징이 없이 보드상에 장착된다. 여기에서 사용되는 바와 같이, 인쇄회로기판상에 "직접 장착"된 다이는 먼저 패키징되지 않고 인쇄회로기판에 장착된다. 이러한 실시예는 도 6D, 도 6E 및 도 6F에 설명되어 있다. 도 6D는 도 6C에 도시된 바와 같이, 컨트롤러 패키지(141)내에 패키징된 NAND 컨트롤러(130) 및 인쇄회로기판(145)에 직접 장착된 NAND 플래시 디바이스(120A)를 도시하고 있다. 도 6E는 도 6C에서와 같이, 플래시 패키지(143)에 패키징된 NAND 플래시 디바이스(120A) 및 인쇄회로기판(147)에 직접 장착된 NAND 컨트롤러(130)를 도시하고 있다. 도 6F는 공통 인쇄회로기판(149)에 모두 직접 장착된 NAND 컨트롤러(130) 및 NAND 플래시 디바이스(120A)를 도시하고 있다.
보통 논리적 인터페이스를 엑스포팅하는 NAND 컨트롤러는 이러한 컨트롤러가 제어하는 NAND 디바이스로부터 별개의 다이에 구현됨에도 불구하고, 이것은 본 발명의 핵심은 아니다. 따라서, 본 발명은 또한 NAND 디바이스 및 NAND 컨트롤러가 모두 공통 단일 다이에 구현될 때 역시 적용가능하다. 도 6G는 공통 다이(151)에 제조된 NAND 컨트롤러(130) 및 NAND 플래시 디바이스(120A)를 도시한다.
도 7은 호스트(110A)(즉, 디바이스내에 NAND 컨트롤러(114)를 포함하는 호스트)가 데이터(예를 들어, 데이터의 섹터)를 외부 NAND 컨트롤러(130)를 통해 NAND 스토리지 디바이스(120A)에 기록하는 방법의 순서도이다. 도 7에 도시된 바와 같이, 호스트(110A)는 외부 컨트롤러(130)에 기록 커맨드를 발행한다(예를 들어, 커맨드가 논리적 섹터의 주소를 지정하는, 커맨드 바이트, 어드레스 바이트 및 데이터 바이트를 포함하는 NAND 인터페이스 프로토콜을 포함하여 발행된다).
NAND 컨트롤러(130)는 호스트(100A)에 의해 (예를 들어, 호스트측 NAND 인터페이스(144)를 통해) 발행된 논리적 섹터 기록 커맨드를 수신한다. 이러한 기록 커맨들르 수신한 후에, 컨트롤러(130)는 섹터 데이터가 저장될 물리적 페이지 넘버를 계산한다(블록 420). 필요하다면, 컨트롤러(130)는 NAND 디바이스(120A)로부터 이전에 기록된 섹터를 판독할 수 있고 이러한 섹터의 데이터를 새롭게 수신된 섹터의 데이터와 결합시켜, 계산된 물리적 페이지에 기록될 데이터를 생성할 수 있다. 그다음, 컨트롤러(1300는 (예를 들어, 플래시 메모리 디바이스측 인터페이스(142)를 통해) 물리적 페이지 기록 커맨드를 NAND 디바이스(120A)에 발행한다(블록 430). 다시, 이러한 기록 커맨드는 커맨드 바이트, 어드레스 바이트 및 데이터 바이트를 포함하는, NAND 인터페이스 프로토콜에 따라 발행된다. 블록(440)에서, NAND 플래시 스토리지 디바이스(120A)는 특정 물리적 페이지의 비휘발성 메모리 셀에 수신했던 데이터 바이트를 저장하여, 호스트(110A)의 요구를 충족시킨다.
도 8은 호스트(110A)(즉, 디바이스내에 NAND 컨트롤러(114)를 포함하는 호스트)는 외부 NAND 컨트롤러(130)를 통해 NAND 스토리지 디바이스(120A)로부터 데이 터(예를 들어, 데이터의 섹터)를 판독한다. 호스트(110A)는 외부 컨트롤러(130)에 읽기 커맨드(예를 들어, 커맨드가 논리적 섹터의 주소를 지정하는 어드레스 바이트 및 커맨드 바이트를 포함하는, NAND 인터페이스 프로토콜을 사용하여 발행된 읽기 커맨드)를 발행한다(블록 510).
외부 NAND 컨트롤러(130)는 (예를 들어, 호스트측 NAND 인터페이스(144)를 통해) 호스트(110A)에 의해 발행된 논리적 섹터 판독 커맨드를 수신한다. 읽기 커맨드를 수신한 후에, 외부 컨트롤러(130)는 NAND 디바이스(120A)에 (예를 들어, 디바이스측 NAND 인터페이스(142)를 통해) 물리적 페이지 판독 커맨들르 발행한다(블록 520). 다시, 이러한 읽기 커맨드는 커맨드 바이트 및 어드레스 바이트를 포함하는, NAND 인터페이스 프로토콜에 따라 발행된다. 이러한 읽기 커맨드에 구현된 물리적 페이지 어드레스는 블록(510)내의 호스트(110A)에 의해 제공된 논리적 섹터 어드레스에 따라, 그리고 컨트롤러(130)에 의해 유지되는 맵핑 테이블에 따라 컨트롤러(130)에 의해 계산된다. 블록(530)에서, NAND 플래시 스토리지 디바이스(120A)는 요청된 물리적 페이지 데이터를 자체 비휘발성 셀 어레이로부터 검색한다. 브록(540)에서, 데이터 바이트는 외부 NAND 컨트롤러(130)에 전송된다. 이러한 전송은 컨트롤러(130)에 의해 생성된 일련의 읽기 스트로브에 의해 NAND 인터페이스 프로토콜에 따라 이루어지고, 각각의 읽기 스트로브는 (사용된 NAND 인터페이스의 폭이 8 비트 또는 16 비트인지에 따라) 일 바이트 또는 일 워드씩 컨트롤러에 연속 판독된다. 컨트롤러(130)는 물리적 페이지의 모든 데이터를 판독할 수 있거나, 컨트롤러(130)는 요청된 논리적 섹터에 상응하는 데이터 바이트만을 선택적으 로 판독할 수 있다. 블록(550)에서, 외부 NAND 컨트롤러(130)는 물리적 페이지 데이터로부터 논리적 섹터 데이터를 추출한다. 이것은 컨트롤러(1300가 블록(540)에서 물리적 페이지의 모든 데이터를 판독한 경우에만 필요하다. 블록(560)에서, 논리적 섹터의 추출된 데이터 바이트는 호스트측 NAND 인터페이스(144)를 통해 호스트(110A)에 전송된다. 이러한 전송은 호스트(110A)에 의해 생성된 일련의 읽기 스트로브에 의해 NAND 인터페이스 프로토콜에 따라 다시 이루어진다. 호스트(110A)는 이제 플래시 메모리에 호스트(110A)에 처음에 저장했던 논리적 섹터의 동일한 데이터 바이트를 갖고 있다.
플래시 메모리 디바이스 및 컨트롤러를 통합하고 본 발명의 방법을 통합한 플래시 메모리 저장 시스템은 다음의 방법중 하나로 구성될 수 있다:
a. 이러한 메모리 시스템은 논리적 섹터를 조작하는 커맨드만을 수용하고, 논리적 페이지를 조작하는 커맨드는 수용하지 않는다.
b. 이러한 메모리 시스템은 논리적 섹터를 조작하는 커맨드 및 논리적 페이지를 조작하는 커맨드 모두를 수용한다. 모드-체인징 커맨드는 2개의 모드 사이에서 즉, 각각의 타입의 커맨드에 대한 하나의 모드로 이러한 메모리 시스템을 전환한다.
c. 이러한 메모리 시스템은 논리적 섹터를 조작하는 커맨드 및 논리적 페이지를 조작하는 커맨드 모두를 수용한다. 이러한 모드중 하나는 디폴트 모드이고, 커맨드 전의 프리픽스는 이러한 커맨드가 논-디폴트 모드의 커맨드로서 해석되어야 한다는 것을 나타낸다.
d. 이러한 메모리 시스템은 논리적 섹터를 조작하는 커맨드 및 논리적 페이지를 조작하는 커맨드 모두를 수용한다. 파워업의 시각에 메모리 시스템의 콘택트 핀중 하나에 인가된 전기 신호는 2개의 모드중 하나를 선택한다. 예를 들어, 선택 핀에서의 "1" 레벨은 모든 커맨드가 섹터 기반 커맨드인 것으로 이해되어야 하는 것을 나타내고 선택 핀에서의 "0" 레벨은 모든 커맨드가 페이지 기반 커맨드인 것으로 이해되어야 하는 것을 나타낸다.
e. 이러한 메모리 시스템은 논리적 섹터를 조작하는 커맨드 및 논리적 페이지를 조작하는 커맨드 모두를 수용한다. 런타임에 메모리 시스템의 콘택트 핀중 하나에 인가된 전기 신호는 2개의 모드중 하나를 선택한다. 예를 들어, 선택 핀에서의 "1" 레벨은 현 시각에서 실행된 모든 커맨드가 섹터 기반 커맨드인 것으로 이해되어야 한다는 것을 나타내고, 선택 핀에서의 "0" 레벨은 현 시각에서 실행된 모든 커맨드가 페이지 기반 커맨드인 것으로 이해되어야 한다는 것을 나타낸다.
섹터 기반 커맨드 및 페이지 기반 커맨드가 시스템에서 지원되는 상기 실시예 모두에 대해, 기록 커맨드에서 제공된 데이터량은 기록 커맨드가 페이지 커맨드 또는 섹터 커맨드인 지에 여부에 종속된다. 즉, 페이지 기반 기록 커맨드는 예를 들어, 2킬로바이트의 데이터의 전송을 포함하고, 섹터 기반 기록 커맨드는 예를 들어, 단지 0.5킬로바이트의 데이터의 전송을 포함한다. 마찬가지로, 호스트가 읽기 커맨드에서 검색할 수 있는 데이터량은 또한 읽기 커맨그가 페이지 커맨드 또는 섹터 커맨드인지 여부에 종속된다.
모든 타입의 논리적 인터페이스에서, 논리적 인터페이스가 섹터 기반 또는 페이지 기반인지에 여부에 관계없이, 스토리지 시스템에 호스트에 의해 제공된 데이터만이 사용자 데이터이다. 즉, 논리적 섹터가 저장되고 있을 때, 정확하게 512 바이트가 호스트에 의해 전송된다. 이것은 일부 추가 데이터 바이트가 가끔 호스트에 의해 제공되고 "엑스트라" 또는 "여분의" 에어리어에 저장되는 물리적 NAND 인터페이스에 대조적이다. 이러한 바이트는 보통 플래시 관리 알고리즘을 위해 사용되는 컨트롤 정보를 포함할 수 있다. 논리적 인터페이스가 메모리 시스템에 플래시 관리의 부담을 주기 때문에 호스트는 그러한 태스크에서 자유롭고 컨트롤 정보로 부담을 가질 필요가 없다.
섹터 기반 커맨드의 구조는 페이지 기반 커맨드의 구조와 동일할 수 있다. 읽기 및 기록 커맨드에 대한 동일한 연산코드가 사용될 수 있다(각각 연산코드 00H 및 80H). 섹터 기반 커맨드내에 제공된 논리적 섹터 어드레스는 페이지 기반 커맨드내에 제공된 페이지 어드레스에 상응한다. 또한 섹터 기반 커맨드는 페이지 기반 NAND 커맨드가 스타팅 포인트를 명기하는 것을 허용하는 방법과 마찬가지로, 이러한 스타팅 포인트로서 섹터내에 특정 바이트를 명기하는 것을 허용할 수 있다. 이것은 또한 선택사항이고, 시스템은 오직 완전한 섹터만이 기록되고 판독되도록 구현될 수 있다.
이제 본 발명에 의해 NAND 디바이스의 물리적 페이지가 호스트 컴퓨터의 연산 시스템의 섹터로부터 크기에서 상이할 때조차 논리적 NAND 인터페이스로부터 유익을 얻을 수 있음을 알 수 있다.
여기 설명 및 첨부된 청구범위에서, "포함하다", "구성되다" 및 "갖고 있다" 의 각 동사 및 그 결합은 이러한 동사의 객체가 반드시 이러한 동사의 주어의 멤버, 구성요소, 엘리먼트 또는 일부의 완전한 리스트가 아니라는 것을 나타내도록 사용되었다.
본 발명은 본 발명의 범위를 제한하도록 의도된 것은 아니고 예로서 제공된 구체적인 실시예를 통해 설명되었다. 이러한 기술된 실시예는 모두가 본 발명의 모든 실시예에서 요구되는 것이 아닌 상이한 특징을 포함한다. 본 발명의 일부 실시예는 이러한 특징의 일부만 또는 이러한 특징의 가능한 조합만을 사용한다. 기술된 본 발명의 실시예 및 이러한 기술된 실시예에 명시된 특징의 상이한 조합을 포함하는 본 발명의 실시예의 변형은 당업자에게 용이할 것이다.
첨부 A
Figure 112009004574508-PCT00001
시험 도시바 MOS 디지털 집적회로 실리콘 게이트 CMOS
Figure 112009004574508-PCT00002
설명
TC58NVG1SxB는 (2048+64) 바이트/(1024+32) 워드 × 64 페이지 × 2048 블록으로서 구성된 단일 3.3 V 2Gbit(2,214,592,512 비트) NAND EEPROM이다. 이 디바이스는 프로그램 및 읽기 데이터가 2112 바이트 증분으로 메모리 셀 어레이와 레지스터 사이에서 전송될 수 있도록 하는 2112 바이트/1056 워드 스태틱 레지스터를 가지고 있다. 소거 동작은 단일 블록 유닛(128 Kbytes + 4Kbytes: 2112 bytes ×64 페이지)에서 구현된다.
TC58NVG1SxB는 커맨드 입력은 물론 어드레스 및 데이터 입출력에 대한 I/O 핀을 사용하는 시리얼 타입 메모리 디바이스이다. 소거 및 프로그램 동작은 자동적으로 실행되어 디바이스가 고밀도 비휘발성 메모리 데이터 저장을 요구하는 스틸 카메라 및 다른 시스템에 대한 솔리드-상태 파일 저장, 보이스 레코딩, 이미지 파일 메모리와 같은 적용에 가장 적합하도록 한다.
Figure 112009004574508-PCT00003
Figure 112009004574508-PCT00004
핀 할당(평면도)
Figure 112009004574508-PCT00005
핀 명칭
Figure 112009004574508-PCT00006
Figure 112009004574508-PCT00007
블록도
Figure 112009004574508-PCT00008
절대 최대 레이팅
Figure 112009004574508-PCT00009
커패시턴스 *(Ta + 25℃, f=1MHz)
Figure 112009004574508-PCT00010
Figure 112009004574508-PCT00011
유효 블록
Figure 112009004574508-PCT00012
주의: 이 디바이스는 사용불능인 블록을 때때로 포함한다. 본 문서의 끝의 애플리케이션 노트(13)를 참조하라.
제1 블록(블록 0)은 출하시 유효 블록인 것을 보증한다.
유효 블록의 최소수는 수명 동안 보증된다.
추천 DC 동작 상태
Figure 112009004574508-PCT00013
DC 특성(Ta = 0 내지 70℃, Vcc = 2.7 V 내지 3.6V)
Figure 112009004574508-PCT00014
Figure 112009004574508-PCT00015
AC 특성 및 추천 동작 상태
(Ta = 0 내지 70℃, Vcc = 2.7 V 내지 3.6V)
Figure 112009004574508-PCT00016
Figure 112009004574508-PCT00017
AC 테스트 상태
Figure 112009004574508-PCT00018
프로그래밍 및 소거 특성
(Ta = 0 내지 70℃, Vcc = 2.7 V 내지 3.6V)
Figure 112009004574508-PCT00019
Figure 112009004574508-PCT00020
타이밍도
커맨드 /어드레스/데이터에 대한 래치 타이밍도
Figure 112009004574508-PCT00021
커맨드 입력 사이클 타이밍도
Figure 112009004574508-PCT00022
Figure 112009004574508-PCT00023
어드레스 입력 사이클 타이밍도
Figure 112009004574508-PCT00024
데이터 입력 사이클 타이밍도
Figure 112009004574508-PCT00025
Figure 112009004574508-PCT00026
시리얼 읽기 사이클 타이밍도
Figure 112009004574508-PCT00027
상태 읽기 사이클 타이밍도
Figure 112009004574508-PCT00028
Figure 112009004574508-PCT00029
읽기 사이클 타이밍도
Figure 112009004574508-PCT00030
읽기 사이클 타이밍도:
Figure 112009004574508-PCT00031
에 의해 인터럽팅될
Figure 112009004574508-PCT00032
Figure 112009004574508-PCT00033
읽기 사이클 타이밍도내의 열 어드레스 변화(1/2)
Figure 112009004574508-PCT00034
Figure 112009004574508-PCT00035
일기 사이클 타이밍도내의 열 어드레스 변화(2/2)
Figure 112009004574508-PCT00036
Figure 112009004574508-PCT00037
자동-프로그램 동작 타이밍도
Figure 112009004574508-PCT00038
Figure 112009004574508-PCT00039
자동 블록 소거 타이밍도
Figure 112009004574508-PCT00040
Figure 112009004574508-PCT00041
ID 읽기 동작 타이밍도
Figure 112009004574508-PCT00042
Figure 112009004574508-PCT00043
핀 기능
이 디바이스는 어드레스 정보의 시분할 입력을 사용하는 시리얼 액세스 메모리이다.
커맨드 래치 이네이블 : CLE
CLE 입력 신호는 내부 커맨드 레지스터로의 동작 모드 커맨드의 로딩을제어하는데 사용된다. 이 커맨드는 CLE가 하이일 때
Figure 112009004574508-PCT00044
신호의 상승 에지상의 I/O 포트로부터 커맨드 레지스터로 래칭된다.
어드레스 래치 이네이블 : ALE
ALE 신호는 내부 어드레스 레지스터로의 어드레스 로딩을 제어하는데 사용된다. 어드레스 정보는 ALE가 하이일 때
Figure 112009004574508-PCT00045
의 상승 에지상의 I/O 포트로부터 어드레스 레지스터로 래칭된다.
이네이블 :
Figure 112009004574508-PCT00046
이 디바이스는 디바이스가 대기 상태에 있는 동안
Figure 112009004574508-PCT00047
가 하이로 갈 때 저전력 스탠바이 모드로 간다.
Figure 112009004574508-PCT00048
신호는 프로그램 또는 소거 또는 읽기 동작 동안과 같이 디바이스가 비지 상태(RY/
Figure 112009004574508-PCT00049
=L)에 있을 때 무시되고,
Figure 112009004574508-PCT00050
입력이 하이로 갈지라도 스탠바이 모드로 들어가지 않을 것이다.
기록 이네이블 :
Figure 112009004574508-PCT00051
Figure 112009004574508-PCT00052
신호는 I/O 포트로부터의 데이터의 포착을 제어하는데 사용된다.
읽기 이네이블 :
Figure 112009004574508-PCT00053
Figure 112009004574508-PCT00054
신호는 시리얼 데이터 출력을 제어한다. 데이터는
Figure 112009004574508-PCT00055
의 하강 에지 후에 유용한 tREA이다.
내부 열 어드레스 카운터는 또한 이러한 하강 에지에 증분된다(어드레스=어드레스+1).
I/O 포트: I/O 1 내지 8
I/O 1 내지 8 핀은 어드레스, 커맨드 및 입출력 데이터를 디바이스로 송수신하기 위한 포트로서 사용된다.
I/O 포트: I/O 9 내지 16 (×16 디바이스 )
I/O 9 내지 16 핀은 디바이스로 입추력 데이터를 송수신하기 위한 포트로서 사용된다. I/O 9 내지 16 핀은 어드레스 및 커맨드가 입력될 때 로우 레벨(VIL)이어야 한다.
기록 보호:
Figure 112009004574508-PCT00056
Figure 112009004574508-PCT00057
신호는 우발적인 프로그래밍 또는 소거로부터 디바이스를 보호하는데 사용된다. 내부 전압 레귤레이터는
Figure 112009004574508-PCT00058
가 로우일 때 리셋된다. 이러한 신호는 입력 신호가 무효일 때 파워 온/오프 시퀀스 동안 데이터를 보호하기 위하여 보통 사용된다.
레디/비지: RY /
Figure 112009004574508-PCT00059
RY/
Figure 112009004574508-PCT00060
출력 신호는 디바이스의 동작 상태를 지시하는데 사용된다. RY/
Figure 112009004574508-PCT00061
신호는 프로그램, 소거 및 일기 동작 동안 비지 상태 (RY/
Figure 112009004574508-PCT00062
=L)에 있고, 동작의 종료후에 대기 상태 (RY/
Figure 112009004574508-PCT00063
=H)로 복귀할 것이다. 이러한 신호에 대한 출력 버퍼는 오픈 드레인이고 적합한 레지스터로 Vccq로 풀업되어야 한다.
파워 온 실렉트 : PSL
PSL 신호는 제1 리셋 동안 또는 디바이스 파워 온 동안 디바이스 개시가 일어나야 하는지 여부를 선택하는데 사용된다. 상세한 사항을 위해 애플리케이션 노트(2)를 참조하라.
Figure 112009004574508-PCT00064
대략적인 셀 레이아웃 및 어드레스 할당
프로그램 동작은 소거 동작이 블록 유닛에 작용하는 동안 페이지 유닛에 작용한다.
Figure 112009004574508-PCT00065
페이지는 2048 바이트가 주요 메모리 저장에 사용되고 64 바이트가 리던던시 또는 다른 용도로 사용되는 2112 바이트로 구성된다.
Figure 112009004574508-PCT00066
Figure 112009004574508-PCT00067
페이지는 1024 워드가 주요 메모리 저장에 사용되고 32 워드가 리던던시 또 는 다른 용도로 사용되는 1056 워드로 구성된다.
Figure 112009004574508-PCT00068
어드레스는 Table 1에서 볼 수 있는 바와 같이, 3개의 연속 클록 사이클에 대해 I/O 포트를 통해 판독된다.
Figure 112009004574508-PCT00069
Figure 112009004574508-PCT00070
동작 모드 : 논리 및 커맨드 테이블
프로그램, 소거, 읽기 및 리셋과 같은 동작 모드는 Table 3에 도시된 커맨드 동작에 의해 제어된다. 어드레스 입력, 커맨드 입력 데이터 입출력은 Table 2에서 볼 수 있는 바와 같이, CLE, ALE,
Figure 112009004574508-PCT00071
,
Figure 112009004574508-PCT00072
,
Figure 112009004574508-PCT00073
Figure 112009004574508-PCT00074
신호에 의해 제어된다.
Figure 112009004574508-PCT00075
Figure 112009004574508-PCT00076
Figure 112009004574508-PCT00077
Figure 112009004574508-PCT00078
Figure 112009004574508-PCT00079
디바이스 동작
읽기 모드
읽기 모드는 "00h" 및 "30h" 커맨드가 커맨드 레지스터에 발행될 때 세팅된다. 2개의 커맨드 사이에서, 읽기 모드에 대한 스타트 어드레스가 발행될 필요가 있다. 시퀀스 및 블록도에 대한 아래의 도면을 참조하라. (상세한 타이밍 차트를 참조하라).
Figure 112009004574508-PCT00080
Figure 112009004574508-PCT00081
셀 어레이로부터 레지스터로의 데이터 전송 동작은 (어드레스 정보가 래칭된 후에) 30h 커맨드 입력 사이클내의
Figure 112009004574508-PCT00082
의 상승 에지에서 시작한다. 디바이스는 이러한 전송 기간동안 비지 상태에 있을 것이다.
전송 기간 후에, 디바이스는 대기 상태로 돌아간다. 시리얼 데이터는 어드레스 입력 사이클에서 지정된 스타트 어드레스로부터
Figure 112009004574508-PCT00083
클록과 동기하여 출력될 수 있다.
읽기 사이클에서의 랜덤 열 어드레스 변화
Figure 112009004574508-PCT00084
Figure 112009004574508-PCT00085
레지스터로부터의 시리얼 데이터 출력 동안 열 어드레스는 05h 및 E0h 커맨드를 사용하여 새로운 열 어드레스를 입력함으로써 변할 수 있다. 데이터는 새로운 열 어드레스에서 시작하여 직렬로 판독된다. 랜덤 열 어드레스 변경 동작은 동일한 페이지에서 여러번 이루어질 수 있다.
Figure 112009004574508-PCT00086
자동 페이지 프로그램 동작
디바이스는 어드레스 및 데이터가 입력된 후에 "10h" 프로그램 커맨드를 수신할 때 자동 페이지 프로그램 동작을 수행한다. 커맨드, 어드레스 및 데이터 입력의 시퀀스가 아래에 도시되어 있다. (상세한 타이밍 차트를 참조하라.)
Figure 112009004574508-PCT00087
Figure 112009004574508-PCT00088
데이터는 "10h" 커맨드의 입력 후의
Figure 112009004574508-PCT00089
의 상승 에지에서 레지스터로부터 선택된 페이지로 전송된다(프로그래밍된다). 프로그래밍 후에, 프로그래밍된 데이터는 디바이스에 의해 자동 검증되기 위해 레지스터에 다시 전송된다. 프로그래밍이 성공하지 못하면, 프로그램/검증 동작은 성공이 달성될 때까지 또는 디바이스내 의 최대 루프 넘버 세트가 도달될 때까지 디바이스에 의해 반복된다.
자동 페이지 프로그램 동작에서의 랜덤 열 어드레스 변화
열 어드레스는 자동 페이지 프로그램 동작의 데이터 입력 시퀀스 동안 85h 커맨드에 의해 변경될 수 있다.
85h 커맨드후의 2개의 어드레스 입력 사이클은 데이터 입력에 대한 새로운 열 어드레스로서 인식된다. 새로운 데이터가 새로운 열 어드레스에 입력된 후에, 10h 커맨드는 선택된 페이지로의 실제 데이터 프로그램을 자동으로 시작한다. 랜덤 열 어드레스 변경 동작은 동일한 페이지에서 여러번 반복될 수 있다.
Figure 112009004574508-PCT00090
Figure 112009004574508-PCT00091
자동 블록 소거
자동 블록 소거 동작은 소거 셋업 커맨드 "60h"을 따르는 소거 스타트 커맨드 "D0h" 후에
Figure 112009004574508-PCT00092
의 상승 에지에서 시작한다. 소거 동작에 대한 이러한 2-사이클 프로세스는 외부 노이즈로 인해 데이터의 우발적인 소거로부터 보호의 엑스트라 층으로서 기능한다. 이러한 디바이스는 자동으로 소거 및 검증 동작을 실행한다.
Figure 112009004574508-PCT00093
Figure 112009004574508-PCT00094
ID 읽기
이 디바이스는 디바이스의 디바이스 타입, 제조자 및 특징을 식별하는데 사용될 수 있는 ID 코드를 포함한다. ID 코드는 다음의 타이밍 상태에서 판독될 수 있다.
Figure 112009004574508-PCT00095
Figure 112009004574508-PCT00096
Figure 112009004574508-PCT00097
Figure 112009004574508-PCT00098
상태 판독
이 디바이스는 프로그램 및 소거 동작의 실행 및 검증을 자동으로 구현한다. 상태 읽기 기능은 디바이스의 판독/비지 상태를 모니터링하고, 프로그램 또는 소거 동작의 결과(패스/실패)를 결정하고, 디바이스가 보호 모드에 있는지 여부를 결정하는데 사용된다. 디바이스 상태는 "70h" 커맨드 입력 후에
Figure 112009004574508-PCT00099
를 사용하여 I/O 포트를 통해 출력된다. 상태 판독은 또한 레디/비지 상태를 알아내기 위해 읽기 동작 동안 사용될 수 있다.
결과 정보는 Table 6에 아웃라인되어 있다.
Figure 112009004574508-PCT00100
Figure 112009004574508-PCT00101
다수의 디바이스를 갖는 적용예가 아래의 도면에 도시되어 있다.
Figure 112009004574508-PCT00102
시스템 설계 노트: 다수의 디바이스로부터의 RY/
Figure 112009004574508-PCT00103
핀 신호는 상기 도면에 도시된 바와 같이 함께 연결되어 있다.
리셋
리셋 모드는 모든 동작을 정지시킨다. 예를 들어, 프로그램 또는 소거 동작의 경우에, 내부 생성된 전압은 0 볼트로 방전되고 디바이스는 대기 상태로 들어간다.
다양한 디바이스 동작 동안 입력된 "FFh" 리셋 커맨드에 대한 응답은 다음과 같다.
리셋( FFh ) 커맨드가 프로그래밍 동안 입력될 때
Figure 112009004574508-PCT00104
Figure 112009004574508-PCT00105
Figure 112009004574508-PCT00106
Figure 112009004574508-PCT00107
애플리케이션 노트 및 코멘트
(1) 파워-온/오프 시퀀스:
아래의 도면에 도시된 타이밍 시퀀스는 파워-온/오프 시퀀스를 위해 필요하다.
디바이스 내부 개시는 전원이 파워 온 시퀀스에서 적합한 레벨에 도달한 후에 시작한다. 개시 동안 디바이스 레디/비지 신호는 아래의 도면에 도시된 바와 같이 비지 상태를 나타낸다. 이러한 타임 기간에, 수용가능한 커맨드는 FFh 또는 70h이다.
Figure 112009004574508-PCT00108
신호는 파워-온/오프에서의 데이터 손상에 대한 보호를 위해 사용된다.
Figure 112009004574508-PCT00109
(2) 파워-온 리셋
디바이스는 PSL이 GND 또는 NC에 연결되는 경우에 파워 온동안 자동 자체 시 작 상태로 들어간다. 개시 프로세스 동안, 디바이스는 30mA의 최대전류(ICCO0)를 소비한다. PSL이 VCC에 접속되면, 디바이스는 파워 온 동안 그 자체 개시를 종료하지 않을 것이고 (ICCO0)를 소비하지 않을 것이고, 파워 온 후에 제1 리셋 커맨드 입력으로 개시 프로세스를 완료할 것이다. 제1 FFh 리셋 비지 기간 동안, 디바이스는 30mA의 최대전류(ICCO0)를 소비한다. 어느 경우에든(PSL=GND/NC 또는 Vcc), 다음의 시퀀스는 일부 입력 신호가 파워온에서 적합하지 않을 수 있기 때문에 필요하다.
Figure 112009004574508-PCT00110
(3) 명기되지 않은 커맨드의 금지
동작 커맨드는 Table 3에 나열되어 있다. Table 3에 표기된 커맨드 이외의 커맨드의 입력은 금지된다. 저장된 데이터는 미지의 커맨드가 커맨드 사이클 동안 입력되면 손상될 수 있다.
(4) 비지 상태 동안의 커맨드의 제약
비지 상태 동안, 70h 및 FFh 이외의 임의의 커맨드를 입력하지 않아야 한다.
Figure 112009004574508-PCT00111
(5) 시리얼 입력 커맨드 "80h" 후의 수용가능한 커맨드
일단 시리얼 입력 커맨드 "80h" 가 입력되면, 시리얼 데이터 입력 커맨드 "85h"내의 열 어드레스 변경, 자동 프로그램 커맨드 "10h", 또는 릿세 커맨드 "FFh" 이외의 임의의 커맨드는 입력하지 말아야 한다.
Figure 112009004574508-PCT00112
"85h", "10h" 또는 "FFh" 이외의 커맨드가 입력되면, 프로그램 연산은 실행되지 않고 디바이스 동작은 입력 커맨드가 명기하는 모드로 세팅된다.
Figure 112009004574508-PCT00113
(6) 프로그램 연산에 대한 어드레싱
블록에서, 페이지는 블록의 LSB(최하위 비트) 페이지로부터 블록의 MSB(최상위 비트) 페이지로 연속하여 프로그램되어야 한다. 랜덤 페이지 어드레스 프로그래밍은 금지된다.
Figure 112009004574508-PCT00114
Figure 112009004574508-PCT00115
(7) 읽기 동작 동안의 상태 읽기
Figure 112009004574508-PCT00116
디바이스 상태는 읽기 모드에서 상태 읽기 커맨드 "70h"를 입력함으로써 판독될 수 있다. 일단 디바이스가 "70h" 커맨드에 의해 상태 읽기 모드로 세팅되었다면, 디바이스는 읽기 커맨드 "00h"가 [A] 동안 입력되지 않으면 읽기 모드로 복귀하지 않을 것이다. 이러한 경우에, 데이터 출력은 어드레스 N으로부터 자동으로 시작하고 어드레스 입력은 필요하지 않다.
(8) 자동 프로그래밍 실패
Figure 112009004574508-PCT00117
페이지 어드레스 M에 대한 프로그램 결과가 실패라면, 데이터 입력 시퀀스 없이 다른 블록내의 어드레스 N으로 페이지를 프로그래밍 시도하지 않아야 한다. 이전의 입력 데이터가 손실되었기 때문에, 80h 커맨드, 어드레스 및 데이터의 동일한 입력 시퀀스가 필요하다.
(9) RY/
Figure 112009004574508-PCT00118
: 레디/비지 핀(RY/
Figure 112009004574508-PCT00119
)에 대한 터미네이션
풀업 레지스터는 RY/
Figure 112009004574508-PCT00120
버터가 오픈 드레인 회로로 구성되기 때문에 터미네이션을 위해 사용될 필요가 있다.
Figure 112009004574508-PCT00121
이러한 데이터는 디바이스 마다 변할 수 있다.
레지스터 값을 선택할 때 이러한 데이터를 기준으로서 사용할 것을 권장한다.
Figure 112009004574508-PCT00122
(10)
Figure 112009004574508-PCT00123
신호에 대한 노트
소거 및 프로그램 연산은
Figure 112009004574508-PCT00124
가 로우가 될 때 자동으로 리셋된다. 이러한 연산은 다음과 같이 이네이블되고 디스에이블된다.
Figure 112009004574508-PCT00125
Figure 112009004574508-PCT00126
(11) 6개의 어드레스 사이클이 입력될 때
디바이스가 6번째 어드레스에서 판독할 수 있지만, 칩안에서 무시된다.
Figure 112009004574508-PCT00127
Figure 112009004574508-PCT00128
(12) 동일한 페이지상의 다수의 프로그래밍 사이클(부분 페이지 프로그램)
페이지는 다음과 같이 8개에 이르는 세그먼트로 분할될 수 있다.
Figure 112009004574508-PCT00129
Figure 112009004574508-PCT00130
(13) 무효 블록(불량 블록)
디바이스는 사용불능 블록을 포함하는 경우가 있다. 따라서, 다음의 이슈가 인식되어야 한다.
Figure 112009004574508-PCT00131
출하시에, 유효 블록내의 모든 데이터 바이트는 FFh이다. 불량 블록에 대하여, 모든 바이트는 FFh 상태에 있지 않다. 불량 블록에 소거 연산을 행하지 말라. 정보가 소거되면 불량 블록 정보를 복구하는 것이 불가능할 수 있다.
디바이스가 시스템으로의 설치후에 임의의 불량 블록을 갖고 있는지를 체크하여야 한다. 불량 블록 검출을 위해 테스트 플로를 참조하라. 테스트 플로에 의해 검출된 불량 블록은 시스템에 의해 사용불능 블록으로서 관리되어야 한다.
불량 블록은 선택 게이트에 의해 비트 라인으로부터 이격되어 있기 때문에 양호한 블록의 성능에 영향을 주지 않는다.
출하시의 유효 블록의 수는 다음과 같다.
Figure 112009004574508-PCT00132
불량 블록 테스트 플로
Figure 112009004574508-PCT00133
Figure 112009004574508-PCT00134
(14) 프로그램 및 소거 연산에 대한 실패 현상
디바이스는 프로그램 또는 소거 연산 동안 실패할 수 있다. 다음의 가능한 실패 모드는 고신뢰도의 시스템을 구현할 때 고려되어야 한다.
실패 모드 검출 및 대책 시퀀스
블록 소거 실패 소거 후의 상태 판독 -> 블록 대체
페이지 프로그래밍 실패 프로그램 후의 상태 판독 -> 블록 대체
단일 비트 프로그래밍 실패 "1 투 0" ECC
- ECC: 에러 보정 코드. 페이지 2 비트가 필요하다.
2 Kbyte 페이지가 512 바이트의 세그먼트로 분할되는 경우에, 세그먼트 당 1 비트 보정이 필요하다.
- 블록 대체
Figure 112009004574508-PCT00135
에러가 Block A에서 일어날 때, 외부 버퍼로부터 로딩함으로써 다른 블록(Block B)으로 데이터를 재프로그램 시도하라. 그다음, (또 다른 적합한 스킴을 사용하거나 불량 블록 테이블을 생성함으로써) Block A로의 또 다른 시스템 액세스를 차단하라.
소거
에러가 소거 연산 동안 일어날 때, (다시, 시스템내의 테이블을 생성하거나 또 다른 적합한 스킴을 사용함으로써) 이러한 불량 블록의 또 다른 액세스를 차단하라.
(15) 기록/소거 연산이 완료되기 전에 파원을 끄지 말라. 배터리가 로우일 때 디바이스를 사용하는 것을 회피하라. 기록/소거 연산이 종료하기 전의 파워 부족 및/또는 파워 실패는 데이터의 손실 및/또는 데이터로의 손상을 유발할 것이다.
Figure 112009004574508-PCT00136
패키지 디멘션
Figure 112009004574508-PCT00137
Figure 112009004574508-PCT00138
제품 사용 규정 030619EBA
- 여기에 포함된 정보는 통지 없이 변경될 수 있다. - 여기에 포함된 정보는 당사 제품의 응용을 위한 가이드로서만 제시된다. 그 사용으로 인한 제3자의 특허 또는 다른 권리에 대한 임의의 침해에 대해 도시바는 아무런 책임도 지지 않는다. 도시바 또는 다른 회사의 임의의 특허 또는 특허 권리하에 포함 또는 다른 방법에 의해 어떠한 라이센스도 허용되지 않는다. - 도시바는 그 제품의 품질 및 신뢰성을 향상시키기 위해 꾸준히 일하고 있다. 그럼에도 불구하고, 반도체 디바이스는 일반적으로 이들의 고유의 전기 감도 및 물리적 응력에 대한 취약성으로 인해 오기능 또는 고장날 수 있다. 도시바 제품을 사용할 때 전체 시스템에 대한 안전 설계를 하는데 있어 안전 표준을 지키고 이러한 도시바 제품의 오기능 또는 고장이 수명의 단축, 신체 상해 또는 특성 손상을 유발할 수도 있는 상황을 회피하는 것은 구매자의 책임이다. 귀하의 설계를 개발하는데 있어, 도시바 제품은 최근의 도시바 제품 명세서에 제시된 바와 같은 명기된 동작 범위내에 사용된다는 것을 보증한다. 또한 "반도체 디바이스의 핸들링 가이드" 또는 "도시바 반도체 신뢰성 핸드북"등에 제시된 경고 및 조건을 숙지하여야 한다. - 본 문서에 제시된 도시바 제품은 일반적인 전자 애플리케이션(컴퓨터, 개인 장비, 오피스 장비, 측정 장비, 산업 로봇, 내수 애플리케이션등)에서 사용하기 위해 의도되었다. 이러한 도시바 제품은 인간 수명 또는 신체 상해의 손실을 유발할 수 있는 오기능 또는 고장 또는 비상한 고품질 및/또는 신뢰도를 요구하는 장비에서의 사용을 위해 의도되지도 보장되지도 않는다(의도되지 않은 사용). 의도되지 않은 사용은 원자 에너지 컨트롤 인스트로먼트, 비행기 또는 우주선 인스트루먼트, 수송 인스트루먼트, 교통 신호 인스트루먼트, 연소 컨트롤 인스트루먼트, 의료 인스트루먼트, 모든 타입의 안전 디바이스 등을 포함한다. 이러한 문서에 나열된 도시바 제품의 의도되지 않은 사용은 소비자 자체 리스크로 이루어질 것이다. - 이러한 문서에 설명된 제품은 외환 및 외국 거래법에 종속된다. - 도시바 제품은 임의의 법 및 규정에 의해 생상 및 판매 금지된 다운스트림 제품에 구현되지 않아야 한다.
첨부 B
Figure 112009004574508-PCT00139
시험 도시바 MOS 디지털 집적회로 실리콘 게이트 CMOS
Figure 112009004574508-PCT00140
설명
TC58NVG2DxB는 (2048+64) 바이트/(1024+32) 워드 × 128 페이지 × 2048 블록으로서 구성된 단일 3.3 V 4 Gbit(4,429,185,024 비트) NAND EEPROM이다. 이 디바이스는 프로그램 및 읽기 데이터가 2112 바이트 증분으로 메모리 셀 어레이와 레지스터 사이에서 전송될 수 있도록 하는 2112 바이트/1056 워드 스태틱 레지스터를 가지고 있다. 소거 동작은 단일 블록 유닛(256 Kbytes + 8Kbytes: 2112 bytes × 128 페이지)에서 구현된다.
TC58NVG2DxB는 커맨드 입력은 물론 어드레스 및 데이터 입출력에 대한 I/O 핀을 사용하는 시리얼 타입 메모리 디바이스이다. 소거 및 프로그램 동작은 자동적으로 실행되어 디바이스가 고밀도 비휘발성 메모리 데이터 저장을 요구하는 스틸 카메라 및 다른 시스템에 대한 솔리드-상태 파일 저장, 보이스 레코딩, 이미지 파일 메모리와 같은 적용에 가장 적합하도록 한다.
Figure 112009004574508-PCT00141
Figure 112009004574508-PCT00142
핀 할당(평면도)
Figure 112009004574508-PCT00143
핀 명칭
Figure 112009004574508-PCT00144
Figure 112009004574508-PCT00145
블록도
Figure 112009004574508-PCT00146
절대 최대 레이팅
Figure 112009004574508-PCT00147
커패시턴스 *(Ta + 25℃, f=1MHz)
Figure 112009004574508-PCT00148
Figure 112009004574508-PCT00149
유효 블록
Figure 112009004574508-PCT00150
주의: 이 디바이스는 사용불능인 블록을 때때로 포함한다. 본 문서의 끝의 애플리케이션 노트(13)를 참조하라.
제1 블록(블록 0)은 출하시 유효 블록인 것을 보증한다.
유효 블록의 최소수는 수명 동안 보증된다.
추천 DC 동작 상태
Figure 112009004574508-PCT00151
DC 특성(Ta = 0 내지 70℃, Vcc = 2.7 V 내지 3.6V)
Figure 112009004574508-PCT00152
Figure 112009004574508-PCT00153
AC 특성 및 추천 동작 상태
(Ta = 0 내지 70℃, Vcc = 2.7 V 내지 3.6V)
Figure 112009004574508-PCT00154
Figure 112009004574508-PCT00155
AC 테스트 상태
Figure 112009004574508-PCT00156
프로그래밍 및 소거 특성
(Ta = 0 내지 70℃, Vcc = 2.7 V 내지 3.6V)
Figure 112009004574508-PCT00157
Figure 112009004574508-PCT00158
타이밍도
커맨드 /어드레스/데이터에 대한 래치 타이밍도
Figure 112009004574508-PCT00159
커맨드 입력 사이클 타이밍도
Figure 112009004574508-PCT00160
Figure 112009004574508-PCT00161
어드레스 입력 사이클 타이밍도
Figure 112009004574508-PCT00162
데이터 입력 사이클 타이밍도
Figure 112009004574508-PCT00163
Figure 112009004574508-PCT00164
시리얼 읽기 사이클 타이밍도
Figure 112009004574508-PCT00165
상태 읽기 사이클 타이밍도
Figure 112009004574508-PCT00166
Figure 112009004574508-PCT00167
읽기 사이클 타이밍도
Figure 112009004574508-PCT00168
읽기 사이클 타이밍도:
Figure 112009004574508-PCT00169
에 의해 인터럽팅될
Figure 112009004574508-PCT00170
Figure 112009004574508-PCT00171
읽기 사이클 타이밍도내의 열 어드레스 변화(1/2)
Figure 112009004574508-PCT00172
Figure 112009004574508-PCT00173
일기 사이클 타이밍도내의 열 어드레스 변화(2/2)
Figure 112009004574508-PCT00174
Figure 112009004574508-PCT00175
자동-프로그램 동작 타이밍도
Figure 112009004574508-PCT00176
Figure 112009004574508-PCT00177
자동 블록 소거 타이밍도
Figure 112009004574508-PCT00178
Figure 112009004574508-PCT00179
ID 읽기 동작 타이밍도
Figure 112009004574508-PCT00180
Figure 112009004574508-PCT00181
핀 기능
이 디바이스는 어드레스 정보의 시분할 입력을 사용하는 시리얼 액세스 메모리이다.
커맨드 래치 이네이블 : CLE
CLE 입력 신호는 내부 커맨드 레지스터로의 동작 모드 커맨드의 로딩을제어하는데 사용된다. 이 커맨드는 CLE가 하이일 때
Figure 112009004574508-PCT00182
신호의 상승 에지상의 I/O 포트로부터 커맨드 레지스터로 래칭된다.
어드레스 래치 이네이블 : ALE
ALE 신호는 내부 어드레스 레지스터로의 어드레스 로딩을 제어하는데 사용된다. 어드레스 정보는 ALE가 하이일 때
Figure 112009004574508-PCT00183
의 상승 에지상의 I/O 포트로부터 어드레스 레지스터로 래칭된다.
이네이블 :
Figure 112009004574508-PCT00184
이 디바이스는 디바이스가 대기 상태에 있는 동안
Figure 112009004574508-PCT00185
가 하이로 갈 때 저전력 스탠바이 모드로 간다.
Figure 112009004574508-PCT00186
신호는 프로그램 또는 소거 또는 읽기 동작 동안과 같이 디바이스가 비지 상태(RY/
Figure 112009004574508-PCT00187
=L)에 있을 때 무시되고,
Figure 112009004574508-PCT00188
입력이 하이로 갈지라도 스탠바이 모드로 들어가지 않을 것이다.
기록 이네이블 :
Figure 112009004574508-PCT00189
Figure 112009004574508-PCT00190
신호는 I/O 포트로부터의 데이터의 포착을 제어하는데 사용된다.
읽기 이네이블 :
Figure 112009004574508-PCT00191
Figure 112009004574508-PCT00192
신호는 시리얼 데이터 출력을 제어한다. 데이터는
Figure 112009004574508-PCT00193
의 하강 에지 후에 유용한 tREA이다.
내부 열 어드레스 카운터는 또한 이러한 하강 에지에 증분된다(어드레스=어드레스+1).
I/O 포트: I/O 1 내지 8
I/O 1 내지 8 핀은 어드레스, 커맨드 및 입출력 데이터를 디바이스로 송수신하기 위한 포트로서 사용된다.
I/O 포트: I/O 9 내지 16 (×16 디바이스 )
I/O 9 내지 16 핀은 디바이스로 입추력 데이터를 송수신하기 위한 포트로서 사용된다. I/O 9 내지 16 핀은 어드레스 및 커맨드가 입력될 때 로우 레벨(VIL)이어야 한다.
기록 보호:
Figure 112009004574508-PCT00194
Figure 112009004574508-PCT00195
신호는 우발적인 프로그래밍 또는 소거로부터 디바이스를 보호하는데 사용된다. 내부 전압 레귤레이터는
Figure 112009004574508-PCT00196
가 로우일 때 리셋된다. 이러한 신호는 입력 신호가 무효일 때 파워 온/오프 시퀀스 동안 데이터를 보호하기 위하여 보통 사용된다.
레디/비지: RY /
Figure 112009004574508-PCT00197
RY/
Figure 112009004574508-PCT00198
출력 신호는 디바이스의 동작 상태를 지시하는데 사용된다. RY/
Figure 112009004574508-PCT00199
신호는 프로그램, 소거 및 일기 동작 동안 비지 상태 (RY/
Figure 112009004574508-PCT00200
=L)에 있고, 동작의 종료후에 대기 상태 (RY/
Figure 112009004574508-PCT00201
=H)로 복귀할 것이다. 이러한 신호에 대한 출력 버퍼는 오픈 드레인이고 적합한 레지스터로 Vccq로 풀업되어야 한다.
파워 온 실렉트 : PSL
PSL 신호는 제1 리셋 동안 또는 디바이스 파워 온 동안 디바이스 개시가 일어나야 하는지 여부를 선택하는데 사용된다. 상세한 사항을 위해 애플리케이션 노트(2)를 참조하라.
Figure 112009004574508-PCT00202
대략적인 셀 레이아웃 및 어드레스 할당
프로그램 동작은 소거 동작이 블록 유닛에 작용하는 동안 페이지 유닛에 작용한다.
Figure 112009004574508-PCT00203
페이지는 2048 바이트가 주요 메모리 저장에 사용되고 64 바이트가 리던던시 또는 다른 용도로 사용되는 2112 바이트로 구성된다.
Figure 112009004574508-PCT00204
Figure 112009004574508-PCT00205
페이지는 1024 워드가 주요 메모리 저장에 사용되고 32 워드가 리던던시 또 는 다른 용도로 사용되는 1056 워드로 구성된다.
Figure 112009004574508-PCT00206
어드레스는 Table 1에서 볼 수 있는 바와 같이, 3개의 연속 클록 사이클에 대해 I/O 포트를 통해 판독된다.
Figure 112009004574508-PCT00207
Figure 112009004574508-PCT00208
동작 모드 : 논리 및 커맨드 테이블
프로그램, 소거, 읽기 및 리셋과 같은 동작 모드는 Table 3에 도시된 커맨드 동작에 의해 제어된다. 어드레스 입력, 커맨드 입력 데이터 입출력은 Table 2에서 볼 수 있는 바와 같이, CLE, ALE,
Figure 112009004574508-PCT00209
,
Figure 112009004574508-PCT00210
,
Figure 112009004574508-PCT00211
Figure 112009004574508-PCT00212
신호에 의해 제어된다.
Figure 112009004574508-PCT00213
Figure 112009004574508-PCT00214
Figure 112009004574508-PCT00215
Figure 112009004574508-PCT00216
Figure 112009004574508-PCT00217
디바이스 동작
읽기 모드
읽기 모드는 "00h" 및 "30h" 커맨드가 커맨드 레지스터에 발행될 때 세팅된다. 2개의 커맨드 사이에서, 읽기 모드에 대한 스타트 어드레스가 발행될 필요가 있다. 시퀀스 및 블록도에 대한 아래의 도면을 참조하라. (상세한 타이밍 차트를 참조하라).
Figure 112009004574508-PCT00218
Figure 112009004574508-PCT00219
셀 어레이로부터 레지스터로의 데이터 전송 동작은 (어드레스 정보가 래칭된 후에) 30h 커맨드 입력 사이클내의
Figure 112009004574508-PCT00220
의 상승 에지에서 시작한다. 디바이스는 이러한 전송 기간동안 비지 상태에 있을 것이다.
전송 기간 후에, 디바이스는 대기 상태로 돌아간다. 시리얼 데이터는 어드레스 입력 사이클에서 지정된 스타트 어드레스로부터
Figure 112009004574508-PCT00221
클록과 동기하여 출력될 수 있다.
읽기 사이클에서의 랜덤 열 어드레스 변화
Figure 112009004574508-PCT00222
Figure 112009004574508-PCT00223
레지스터로부터의 시리얼 데이터 출력 동안 열 어드레스는 05h 및 E0h 커맨드를 사용하여 새로운 열 어드레스를 입력함으로써 변할 수 있다. 데이터는 새로운 열 어드레스에서 시작하여 직렬로 판독된다. 랜덤 열 어드레스 변경 동작은 동일한 페이지에서 여러번 이루어질 수 있다.
Figure 112009004574508-PCT00224
자동 페이지 프로그램 동작
디바이스는 어드레스 및 데이터가 입력된 후에 "10h" 프로그램 커맨드를 수신할 때 자동 페이지 프로그램 동작을 수행한다. 커맨드, 어드레스 및 데이터 입력의 시퀀스가 아래에 도시되어 있다. (상세한 타이밍 차트를 참조하라.)
Figure 112009004574508-PCT00225
Figure 112009004574508-PCT00226
데이터는 "10h" 커맨드의 입력 후의
Figure 112009004574508-PCT00227
의 상승 에지에서 레지스터로부터 선택된 페이지로 전송된다(프로그래밍된다). 프로그래밍 후에, 프로그래밍된 데이터는 디바이스에 의해 자동 검증되기 위해 레지스터에 다시 전송된다. 프로그래밍이 성공하지 못하면, 프로그램/검증 동작은 성공이 달성될 때까지 또는 디바이스내 의 최대 루프 넘버 세트가 도달될 때까지 디바이스에 의해 반복된다.
자동 페이지 프로그램 동작에서의 랜덤 열 어드레스 변화
열 어드레스는 자동 페이지 프로그램 동작의 데이터 입력 시퀀스 동안 85h 커맨드에 의해 변경될 수 있다.
85h 커맨드후의 2개의 어드레스 입력 사이클은 데이터 입력에 대한 새로운 열 어드레스로서 인식된다. 새로운 데이터가 새로운 열 어드레스에 입력된 후에, 10h 커맨드는 선택된 페이지로의 실제 데이터 프로그램을 자동으로 시작한다. 랜덤 열 어드레스 변경 동작은 동일한 페이지에서 여러번 반복될 수 있다.
Figure 112009004574508-PCT00228
Figure 112009004574508-PCT00229
자동 블록 소거
자동 블록 소거 동작은 소거 셋업 커맨드 "60h"을 따르는 소거 스타트 커맨드 "D0h" 후에
Figure 112009004574508-PCT00230
의 상승 에지에서 시작한다. 소거 동작에 대한 이러한 2-사이클 프로세스는 외부 노이즈로 인해 데이터의 우발적인 소거로부터 보호의 엑스트라 층으로서 기능한다. 이러한 디바이스는 자동으로 소거 및 검증 동작을 실행한다.
Figure 112009004574508-PCT00231
Figure 112009004574508-PCT00232
ID 읽기
이 디바이스는 디바이스의 디바이스 타입, 제조자 및 특징을 식별하는데 사용될 수 있는 ID 코드를 포함한다. ID 코드는 다음의 타이밍 상태에서 판독될 수 있다.
Figure 112009004574508-PCT00233
Figure 112009004574508-PCT00234
Figure 112009004574508-PCT00235
Figure 112009004574508-PCT00236
상태 판독
이 디바이스는 프로그램 및 소거 동작의 실행 및 검증을 자동으로 구현한다. 상태 읽기 기능은 디바이스의 판독/비지 상태를 모니터링하고, 프로그램 또는 소거 동작의 결과(패스/실패)를 결정하고, 디바이스가 보호 모드에 있는지 여부를 결정하는데 사용된다. 디바이스 상태는 "70h" 커맨드 입력 후에
Figure 112009004574508-PCT00237
를 사용하여 I/O 포트를 통해 출력된다. 상태 판독은 또한 레디/비지 상태를 알아내기 위해 읽기 동작 동안 사용될 수 있다.
결과 정보는 Table 6에 아웃라인되어 있다.
Figure 112009004574508-PCT00238
Figure 112009004574508-PCT00239
다수의 디바이스를 갖는 적용예가 아래의 도면에 도시되어 있다.
Figure 112009004574508-PCT00240
시스템 설계 노트: 다수의 디바이스로부터의 RY/
Figure 112009004574508-PCT00241
핀 신호는 상기 도면에 도시된 바와 같이 함께 연결되어 있다.
리셋
리셋 모드는 모든 동작을 정지시킨다. 예를 들어, 프로그램 또는 소거 동작의 경우에, 내부 생성된 전압은 0 볼트로 방전되고 디바이스는 대기 상태로 들어간다.
다양한 디바이스 동작 동안 입력된 "FFh" 리셋 커맨드에 대한 응답은 다음과 같다.
리셋( FFh ) 커맨드가 프로그래밍 동안 입력될 때
Figure 112009004574508-PCT00242
Figure 112009004574508-PCT00243
Figure 112009004574508-PCT00244
Figure 112009004574508-PCT00245
애플리케이션 노트 및 코멘트
(1) 파워-온/오프 시퀀스:
아래의 도면에 도시된 타이밍 시퀀스는 파워-온/오프 시퀀스를 위해 필요하다.
디바이스 내부 개시는 전원이 파워 온 시퀀스에서 적합한 레벨에 도달한 후에 시작한다. 개시 동안 디바이스 레디/비지 신호는 아래의 도면에 도시된 바와 같이 비지 상태를 나타낸다. 이러한 타임 기간에, 수용가능한 커맨드는 FFh 또는 70h이다.
Figure 112009004574508-PCT00246
신호는 파워-온/오프에서의 데이터 손상에 대한 보호를 위해 사용된다.
Figure 112009004574508-PCT00247
(2) 파워-온 리셋
디바이스는 PSL이 GND 또는 NC에 연결되는 경우에 파워 온동안 자동 자체 시 작 상태로 들어간다. 개시 프로세스 동안, 디바이스는 30mA의 최대전류(ICCO0)를 소비한다. PSL이 VCC에 접속되면, 디바이스는 파워 온 동안 그 자체 개시를 종료하지 않을 것이고 (ICCO0)를 소비하지 않을 것이고, 파워 온 후에 제1 리셋 커맨드 입력으로 개시 프로세스를 완료할 것이다. 제1 FFh 리셋 비지 기간 동안, 디바이스는 30mA의 최대전류(ICCO0)를 소비한다. 어느 경우에든(PSL=GND/NC 또는 Vcc), 다음의 시퀀스는 일부 입력 신호가 파워온에서 적합하지 않을 수 있기 때문에 필요하다.
Figure 112009004574508-PCT00248
(3) 명기되지 않은 커맨드의 금지
동작 커맨드는 Table 3에 나열되어 있다. Table 3에 표기된 커맨드 이외의 커맨드의 입력은 금지된다. 저장된 데이터는 미지의 커맨드가 커맨드 사이클 동안 입력되면 손상될 수 있다.
(4) 비지 상태 동안의 커맨드의 제약
비지 상태 동안, 70h 및 FFh 이외의 임의의 커맨드를 입력하지 않아야 한다.
Figure 112009004574508-PCT00249
(5) 시리얼 입력 커맨드 "80h" 후의 수용가능한 커맨드
일단 시리얼 입력 커맨드 "80h" 가 입력되면, 시리얼 데이터 입력 커맨드 "85h"내의 열 어드레스 변경, 자동 프로그램 커맨드 "10h", 또는 릿세 커맨드 "FFh" 이외의 임의의 커맨드는 입력하지 말아야 한다.
Figure 112009004574508-PCT00250
"85h", "10h" 또는 "FFh" 이외의 커맨드가 입력되면, 프로그램 연산은 실행되지 않고 디바이스 동작은 입력 커맨드가 명기하는 모드로 세팅된다.
Figure 112009004574508-PCT00251
(6) 프로그램 연산에 대한 어드레싱
블록에서, 페이지는 블록의 LSB(최하위 비트) 페이지로부터 블록의 MSB(최상위 비트) 페이지로 연속하여 프로그램되어야 한다. 랜덤 페이지 어드레스 프로그래밍은 금지된다.
Figure 112009004574508-PCT00252
Figure 112009004574508-PCT00253
(7) 읽기 동작 동안의 상태 읽기
Figure 112009004574508-PCT00254
디바이스 상태는 읽기 모드에서 상태 읽기 커맨드 "70h"를 입력함으로써 판독될 수 있다. 일단 디바이스가 "70h" 커맨드에 의해 상태 읽기 모드로 세팅되었다면, 디바이스는 읽기 커맨드 "00h"가 [A] 동안 입력되지 않으면 읽기 모드로 복귀하지 않을 것이다. 이러한 경우에, 데이터 출력은 어드레스 N으로부터 자동으로 시작하고 어드레스 입력은 필요하지 않다.
(8) 자동 프로그래밍 실패
Figure 112009004574508-PCT00255
페이지 어드레스 M에 대한 프로그램 결과가 실패라면, 데이터 입력 시퀀스 없이 다른 블록내의 어드레스 N으로 페이지를 프로그래밍 시도하지 않아야 한다. 이전의 입력 데이터가 손실되었기 때문에, 80h 커맨드, 어드레스 및 데이터의 동일한 입력 시퀀스가 필요하다.
(9) RY/
Figure 112009004574508-PCT00256
: 레디/비지 핀(RY/
Figure 112009004574508-PCT00257
)에 대한 터미네이션
풀업 레지스터는 RY/
Figure 112009004574508-PCT00258
버터가 오픈 드레인 회로로 구성되기 때문에 터미네이션을 위해 사용될 필요가 있다.
Figure 112009004574508-PCT00259
이러한 데이터는 디바이스 마다 변할 수 있다.
레지스터 값을 선택할 때 이러한 데이터를 기준으로서 사용할 것을 권장한다.
Figure 112009004574508-PCT00260
(10)
Figure 112009004574508-PCT00261
신호에 대한 노트
소거 및 프로그램 연산은
Figure 112009004574508-PCT00262
가 로우가 될 때 자동으로 리셋된다. 이러한 연산은 다음과 같이 이네이블되고 디스에이블된다.
Figure 112009004574508-PCT00263
Figure 112009004574508-PCT00264
(11) 6개의 어드레스 사이클이 입력될 때
디바이스가 6번째 어드레스에서 판독할 수 있지만, 칩안에서 무시된다.
Figure 112009004574508-PCT00265
Figure 112009004574508-PCT00266
(12) 동일한 페이지상의 다수의 프로그래밍 사이클(부분 페이지 프로그램)
이러한 디바이스는 부분 페이지 프로그래밍을 지원하지 않는다.
Figure 112009004574508-PCT00267
(13) 무효 블록(불량 블록)
디바이스는 사용불능 블록을 포함하는 경우가 있다. 따라서, 다음의 이슈가 인식되어야 한다.
Figure 112009004574508-PCT00268
출하시에, 유효 블록내의 모든 데이터 바이트는 FFh이다. 불량 블록에 대하여, 모든 바이트는 FFh 상태에 있지 않다. 불량 블록에 소거 연산을 행하지 말라. 정보가 소거되면 불량 블록 정보를 복구하는 것이 불가능할 수 있다.
디바이스가 시스템으로의 설치후에 임의의 불량 블록을 갖고 있는지를 체크하여야 한다. 불량 블록 검출을 위해 테스트 플로를 참조하라. 테스트 플로에 의해 검출된 불량 블록은 시스템에 의해 사용불능 블록으로서 관리되어야 한다.
불량 블록은 선택 게이트에 의해 비트 라인으로부터 이격되어 있기 때문에 양호한 블록의 성능에 영향을 주지 않는다.
출하시의 유효 블록의 수는 다음과 같다.
Figure 112009004574508-PCT00269
불량 블록 테스트 플로
Figure 112009004574508-PCT00270
Figure 112009004574508-PCT00271
(14) 프로그램 및 소거 연산에 대한 실패 현상
디바이스는 프로그램 또는 소거 연산 동안 실패할 수 있다. 다음의 가능한 실패 모드는 고신뢰도의 시스템을 구현할 때 고려되어야 한다.
실패 모드 검출 및 대책 시퀀스
블록 소거 실패 소거 후의 상태 판독 -> 블록 대체
페이지 프로그래밍 실패 프로그램 후의 상태 판독 -> 블록 대체
단일 비트 프로그래밍 실패 "1 투 0" ECC
- ECC: 에러 보정 코드. 528바이트당 4 비트 보정이 필요하다.
- 블록 대체
Figure 112009004574508-PCT00272
에러가 Block A에서 일어날 때, 외부 버퍼로부터 로딩함으로써 다른 블록(Block B)으로 데이터를 재프로그램 시도하라. 그다음, (또 다른 적합한 스킴을 사용하거나 불량 블록 테이블을 생성함으로써) Block A로의 또 다른 시스템 액세스를 차단하라.
소거
에러가 소거 연산 동안 일어날 때, (다시, 시스템내의 테이블을 생성하거나 또 다른 적합한 스킴을 사용함으로써) 이러한 불량 블록의 또 다른 액세스를 차단 하라.
(15) 기록/소거 연산이 완료되기 전에 파원을 끄지 말라. 배터리가 로우일 때 디바이스를 사용하는 것을 회피하라. 기록/소거 연산이 종료하기 전의 파워 부족 및/또는 파워 실패는 데이터의 손실 및/또는 데이터로의 손상을 유발할 것이다.
Figure 112009004574508-PCT00273
패키지 디멘션
Figure 112009004574508-PCT00274
Figure 112009004574508-PCT00275
제품 사용 규정 030619EBA
- 여기에 포함된 정보는 통지 없이 변경될 수 있다. - 여기에 포함된 정보는 당사 제품의 응용을 위한 가이드로서만 제시된다. 그 사용으로 인한 제3자의 특허 또는 다른 권리에 대한 임의의 침해에 대해 도시바는 아무런 책임도 지지 않는다. 도시바 또는 다른 회사의 임의의 특허 또는 특허 권리하에 포함 또는 다른 방법에 의해 어떠한 라이센스도 허용되지 않는다. - 도시바는 그 제품의 품질 및 신뢰성을 향상시키기 위해 꾸준히 일하고 있다. 그럼에도 불구하고, 반도체 디바이스는 일반적으로 이들의 고유의 전기 감도 및 물리적 응력에 대한 취약성으로 인해 오기능 또는 고장날 수 있다. 도시바 제품을 사용할 때 전체 시스템에 대한 안전 설계를 하는데 있어 안전 표준을 지키고 이러한 도시바 제품의 오기능 또는 고장이 수명의 단축, 신체 상해 또는 특성 손상을 유발할 수도 있는 상황을 회피하는 것은 구매자의 책임이다. 귀하의 설계를 개발하는데 있어, 도시바 제품은 최근의 도시바 제품 명세서에 제시된 바와 같은 명기된 동작 범위내에 사용된다는 것을 보증한다. 또한 "반도체 디바이스의 핸들링 가이드" 또는 "도시바 반도체 신뢰성 핸드북"등에 제시된 경고 및 조건을 숙지하여야 한다. - 본 문서에 제시된 도시바 제품은 일반적인 전자 애플리케이션(컴퓨터, 개인 장비, 오피스 장비, 측정 장비, 산업 로봇, 내수 애플리케이션등)에서 사용하기 위해 의도되었다. 이러한 도시바 제품은 인간 수명 또는 신체 상해의 손실을 유발할 수 있는 오기능 또는 고장 또는 비상한 고품질 및/또는 신뢰도를 요구하는 장비에서의 사용을 위해 의도되지도 보장되지도 않는다(의도되지 않은 사용). 의도되지 않은 사용은 원자 에너지 컨트롤 인스트로먼트, 비행기 또는 우주선 인스트루먼트, 수송 인스트루먼트, 교통 신호 인스트루먼트, 연소 컨트롤 인스트루먼트, 의료 인스트루먼트, 모든 타입의 안전 디바이스 등을 포함한다. 이러한 문서에 나열된 도시바 제품의 의도되지 않은 사용은 소비자 자체 리스크로 이루어질 것이다. - 이러한 문서에 설명된 제품은 외환 및 외국 거래법에 종속된다. - 도시바 제품은 임의의 법 및 규정에 의해 생상 및 판매 금지된 다운스트림 제품에 구현되지 않아야 한다.

Claims (38)

  1. 플래시 메모리 디바이스용 컨트롤러로서,
    (a) 상기 플래시 메모리 디바이스와 데이터 페이지를 교환하기 위한 호스트 타입 NAND 인터페이스; 및
    (b) 상기 컨트롤러의 호스트와 데이터 섹터를 교환하기 위한 플래시 타입 NAND 인터페이스;를 포함하고,
    상기 데이터 페이지는 공통 데이터 페이지 사이즈를 갖고 있고, 상기 데이터 섹터는 상기 공통 데이터 페이지 사이즈와 상이한 공통 데이터 섹터 사이즈를 갖는 것을 특징으로 하는 플래시 메모리 디바이스용 컨트롤러.
  2. 제1항에 있어서, 상기 공통 데이터 섹터 사이즈는 상기 공통 데이터 페이지 사이즈보다 작은 것을 특징으로 하는 플래시 메모리 디바이스용 컨트롤러.
  3. 제1항에 있어서, 상기 호스트 타입 NAND 인터페이스는 물리적 인터페이스이고 상기 플래시 타입 NAND 인터페이스는 논리적 인터페이스인 것을 특징으로 하는 플래시 메모리 디바이스용 컨트롤러.
  4. 제1항에 있어서, (c) 적어도 하나의 다른 호스트측 인터페이스를 더 포함하는 것을 특징으로 하는 플래시 메모리 디바이스용 컨트롤러.
  5. 제1항에 있어서, (c) 에러 보정 모듈을 더 포함하는 것을 특징으로 하는 플래시 메모리 디바이스용 컨트롤러.
  6. 제1항에 있어서, (c) 암호화 모듈을 더 포함하는 것을 특징으로 하는 플래시 메모리 디바이스용 컨트롤러.
  7. 제1항에 있어서, (c) 어드레스 맵핑 모듈을 더 포함하는 것을 특징으로 하는 플래시 메모리 디바이스용 컨트롤러.
  8. 데이터 저장 시스템으로서,
    (a) 제1항의 플래시 메모리 디바이스용 컨트롤러; 및
    (b) 제1항의 플래시 메모리 디바이스;를 포함하는 것을 특징으로 하는 데이터 저장 시스템.
  9. 제8항에 있어서, 상기 플래시 메모리 디바이스는 NAND 플래시 메모리 디바이스인 것을 특징으로 하는 데이터 저장 시스템.
  10. 제8항에 있어서, 상기 컨트롤러 및 상기 플래시 메모리 디바이스는 상이한 각각의 다이에 제조되고, 상기 호스트측 NAND 인터페이스는 인터-다이 인터페이스 인 것을 특징으로 하는 데이터 저장 시스템.
  11. 제10항에 있어서, (c) 상기 컨트롤러 및 상기 플래시 메모리 디바이스가 패키징되는 멀티-칩 패키지를 더 포함하는 것을 특징으로 하는 데이터 저장 시스템.
  12. 제10항에 있어서, (c) 상기 컨트롤러를 패키징하기 위한 컨트롤러 패키지를 더 포함하는 것을 특징으로 하는 데이터 저장 시스템.
  13. 제12항에 있어서, (d) 상기 플래시 메모리 디바이스를 패키징하기 위한, 상기 컨트롤러 패키지로부터 분리된 메모리 디바이스 패키지를 더 포함하는 것을 특징으로 하는 데이터 저장 시스템.
  14. 제12항에 있어서, (d) 상기 플래시 메모리 디바이스가 제조되는 상기 다이가 직접 장착되는 인쇄회로기판을 더 포함하는 것을 특징으로 하는 데이터 저장 시스템.
  15. 제10항에 있어서, (c) 상기 플래시 메모리 디바이스를 패키징하기 위한 메모리 디바이스 패키지를 더 포함하는 것을 특징으로 하는 데이터 저장 시스템.
  16. 제15항에 있어서, (d) 상기 컨트롤러가 제조되는 상기 다이가 직접 장착된 인쇄회로기판을 더 포함하는 것을 특징으로 하는 데이터 저장 시스템.
  17. 제10항에 있어서, (c) 상기 다이가 직접 장착되는 인쇄회로기판을 더 포함하는 것을 특징으로 하는 데이터 저장 시스템.
  18. 제8항에 있어서, 상기 컨트롤러 및 상기 플래시 메모리 디바이스가 공통 다이에 제조되는 것을 특징으로 하는 데이터 저장 시스템.
  19. 데이터 처리 시스템으로서,
    (a) 제8항의 데이터 저장 시스템; 및
    (b) 제8항의 데이터 저장 시스템의 호스트;를 포함하는 것을 특징으로 하는 데이터 처리 시스템.
  20. 데이터 저장 시스템으로서,
    (a) 공통 물리적 페이지 사이즈를 갖는 복수의 물리적 페이지를 포함하는 메모리; 및
    (b) 상기 데이터 저장 시스템의 호스트와 데이터 섹터를 교환하기 위한 플래시 타입 NAND 인터페이스를 엑스포팅하기 위한 회로;를 포함하고,
    상기 데이터 섹터는 상기 물리적 페이지 사이즈와 상이한 공통 데이터 섹터 사이즈를 갖는 것을 특징으로 하는 데이터 저장 시스템.
  21. 제20항에 있어서, 상기 공통 데이터 섹터 사이즈는 상기 공통 물리적 페이지 사이즈보다 작은 것을 특징으로 하는 데이터 저장 시스템.
  22. 제20항에 있어서, 상기 플래시 타입 NAND 인터페이스는 논리적 인터페이스인 것을 특징으로 하는 데이터 저장 시스템.
  23. 제20항에 있어서, 상기 페이지의 각각은 복수의 플래시 셀을 포함하는 것을 특징으로 하는 데이터 저장 시스템.
  24. 제23항에 있어서, 상기 플래시 셀은 NAND 플래시 셀인 것을 특징으로 하는 데이터 저장 시스템.
  25. 제20항에 있어서, 상기 메모리 및 상기 회로는 별개의 각각의 다이에서 제조되는 것을 특징으로 하는 데이터 저장 시스템.
  26. 제25항에 있어서,
    (c) 상기 메모리 및 상기 회로가 패키징된 멀티-칩 패키지를 더 포함하는 것을 특징으로 하는 데이터 저장 시스템.
  27. 제25항에 있어서,
    (c) 상기 회로를 패키징하기 위한 회로 패키지를 더 포함하는 것을 특징으로 하는 데이터 저장 시스템.
  28. 제27항에 있어서,
    (d) 상기 메모리를 패키징하기 위한, 상기 회로 패키지로부터 분리된 메모리 패키지를 더 포함하는 것을 특징으로 하는 데이터 저장 시스템.
  29. 제27항에 있어서,
    (d) 상기 메모리가 제조된 상기 다이가 직접 장착된 인쇄회로기판을 더 포함하는 것을 특징으로 하는 데이터 저장 시스템.
  30. 제25항에 있어서,
    (c) 상기 메모리를 패키징하기 위한 메모리 패키지를 더 포함하는 것을 특징으로 하는 데이터 저장 시스템.
  31. 제30항에 있어서,
    (d) 상기 회로가 제조된 상기 다이가 직접 장착된 인쇄회로기판을 더 포함하는 것을 특징으로 하는 데이터 저장 시스템.
  32. 제25항에 있어서,
    (c) 상기 다이가 직접 장착된 인쇄회로기판을 더 포함하는 것을 특징으로 하는 데이터 저장 시스템.
  33. 제20항에 있어서, 상기 메모리 및 상기 회로가 공통 다이에 제조된 것을 특징으로 하는 데이터 저장 시스템.
  34. 데이터 처리 시스템으로서,
    (a) 제20항의 데이터 저장 시스템; 및
    (b) 제20항의 데이터 저장 시스템의 호스트;를 포함하는 것을 특징으로 하는 데이터 저장 시스템.
  35. 데이터 저장 방법으로서,
    (a) 공통 물리적 페이지 사이즈를 갖는 복수의 물리적 페이지를 포함하는 메모리를 제공하는 단계; 및
    (b) 데이터 섹터를 호스트와 교환하기 위한 플래시 타입 NAND 인터페이스를 상기 호스트에 엑스포팅하는 단계;를 포함하고,
    상기 데이터 섹터는 상기 물리적 페이지 사이즈와 상이한 공통 데이터 섹터 사이즈를 갖는 것을 특징으로 하는 데이터 저장 방법.
  36. 제35항에 있어서, 상기 공통 데이터 섹터 사이즈는 상기 공통 물리적 페이지 사이즈보다 작은 것을 특징으로 하는 데이터 저장 방법.
  37. 제35항에 있어서, 상기 물리적 페이지의 각각은 각각의 물리적 어드레스의 범위를 갖고, 상기 데이터 섹터의 각각은 각각의 논리적 섹터 어드레스를 갖고,
    (c) 상기 메모리에 기록할 적어도 하나의 상기 데이터 섹터를 상기 호스트로부터 수신하는 단계;
    (d) 상기 적어도 하나의 데이터 섹터의 상기 논리적 섹터 어드레스를 상응하는 상기 물리적 어드레스에 맵핑하는 단계; 및
    (e) 상기 적어도 하나의 논리적 섹터 어드레스가 맵핑된 적어도 하나의 물리적 어드레스를 상기 각각의 물리적 어드레스의 범위에서 갖는 적어도 하나의 상기 물리적 페이지에 상기 적어도 하나의 데이터 섹터를 기록하는 단계;를 더 포함하는 것을 특징으로 하는 데이터 저장 방법.
  38. 제35항에 있어서, 상기 각각의 물리적 페이지는 각각의 물리적 어드레스의 범위를 갖고, 상기 데이터 섹터의 각각은 각각의 논리적 섹터 어드레스를 갖고,
    (c) 상기 메모리로부터 적어도 하나의 상기 데이터 섹터를 판독하도록 커맨드를 상기 호스트로부터 수신하는 단계;
    (d) 상기 적어도 하나의 데이터 섹터의 각각의 상기 논리적 섹터 어드레스를 상응하는 상기 물리적 어드레스에 맵핑하는 단계; 및
    (e) 상기 적어도 하나의 논리적 섹터 어드레스가 맵핑된 상기 적어도 하나의 물리적 어드레스를 상기 각각의 물리적 어드레스의 범위에서 갖는 적어도 하나의 상기 물리적 페이지로부터 상기 적어도 하나의 데이터 섹터를 판독하는 단계;를 더 포함하는 것을 특징으로 하는 데이터 저장 방법.
KR1020097001528A 2006-08-21 2007-08-21 논리적 섹터 기반 인터페이스를 엑스포팅하는 nand 플래시 메모리 컨트롤러 KR20090054958A (ko)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
US82294806P 2006-08-21 2006-08-21
US60/822,948 2006-08-21
US11/806,701 US20080046641A1 (en) 2006-08-21 2007-06-04 NAND flash memory controller exporting a logical sector-based interface
US11/806,702 US20080046630A1 (en) 2006-08-21 2007-06-04 NAND flash memory controller exporting a logical sector-based interface
US11/806,702 2007-06-04
US11/806,701 2007-06-04

Publications (1)

Publication Number Publication Date
KR20090054958A true KR20090054958A (ko) 2009-06-01

Family

ID=39060245

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020097001528A KR20090054958A (ko) 2006-08-21 2007-08-21 논리적 섹터 기반 인터페이스를 엑스포팅하는 nand 플래시 메모리 컨트롤러

Country Status (3)

Country Link
KR (1) KR20090054958A (ko)
TW (1) TWI387878B (ko)
WO (1) WO2008023368A2 (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9959203B2 (en) 2014-06-23 2018-05-01 Google Llc Managing storage devices
CN104461959B (zh) * 2014-11-05 2017-04-19 福州瑞芯微电子股份有限公司 区分NOR Flash与NAND Flash的方法和装置
US9952769B2 (en) 2015-09-14 2018-04-24 Microsoft Technology Licensing, Llc. Data storage system with data storage devices operative to manage storage device functions specific to a particular data storage device
TWI619023B (zh) * 2016-11-30 2018-03-21 瑞昱半導體股份有限公司 記憶體控制電路及其方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1146428B1 (en) * 2000-04-13 2008-01-23 A-DATA Technology Co., Ltd. Multi-interface memory card and adapter module for the same
GB0123412D0 (en) * 2001-09-28 2001-11-21 Memquest Ltd Memory system sectors
TWI240861B (en) * 2002-01-11 2005-10-01 Integrated Circuit Solution In Data access method and architecture of flash memory
US7594135B2 (en) * 2003-12-31 2009-09-22 Sandisk Corporation Flash memory system startup operation

Also Published As

Publication number Publication date
WO2008023368A2 (en) 2008-02-28
WO2008023368A3 (en) 2008-06-19
TWI387878B (zh) 2013-03-01
TW200815991A (en) 2008-04-01

Similar Documents

Publication Publication Date Title
US9606865B2 (en) Method and apparatus for configuring a memory device
US7631245B2 (en) NAND flash memory controller exporting a NAND interface
US7827347B2 (en) Memory system, multi-bit flash memory device, and associated methods
US7725706B2 (en) Microprocessor boot-up controller, nonvolatile memory controller, and information processing system
US6906961B2 (en) Erase block data splitting
US10496474B2 (en) Semiconductor storage device and memory system having the same
US20080046630A1 (en) NAND flash memory controller exporting a logical sector-based interface
CN106598479B (zh) 闪速存储器的故障安全擦除的方法和装置
US20080046641A1 (en) NAND flash memory controller exporting a logical sector-based interface
CN111459401A (zh) 包括非易失性存储器设备的存储器系统
CN107274929B (zh) 用于执行随机操作的非易失性存储器装置
US20160005464A1 (en) Counter for write operations at a data storage device
US20130019054A1 (en) Flash memory device and method performing erase operation using over program
US9383929B2 (en) Data storing method and memory controller and memory storage device using the same
US20130191580A1 (en) Controller, System, and Method for Mapping Logical Sector Addresses to Physical Addresses
KR20090054958A (ko) 논리적 섹터 기반 인터페이스를 엑스포팅하는 nand 플래시 메모리 컨트롤러
CN110837339A (zh) 数据整并方法、存储器存储装置及存储器控制电路单元
US9754677B2 (en) Semiconductor memory device, memory system including the same, and operating method thereof
US11934254B2 (en) Memory device with embedded firmware repairing mechanism
US10210939B1 (en) Solid state storage device and data management method
CN115083498A (zh) 存储器装置及其操作方法、配置方法及存储器系统
CN115938429A (zh) 存储器、存储系统及存储器的操作方法

Legal Events

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