KR101702158B1 - 인터럽트 가능한 낸드 플래시 메모리 - Google Patents

인터럽트 가능한 낸드 플래시 메모리 Download PDF

Info

Publication number
KR101702158B1
KR101702158B1 KR1020127004977A KR20127004977A KR101702158B1 KR 101702158 B1 KR101702158 B1 KR 101702158B1 KR 1020127004977 A KR1020127004977 A KR 1020127004977A KR 20127004977 A KR20127004977 A KR 20127004977A KR 101702158 B1 KR101702158 B1 KR 101702158B1
Authority
KR
South Korea
Prior art keywords
register
command
instruction
read
program
Prior art date
Application number
KR1020127004977A
Other languages
English (en)
Other versions
KR20120092561A (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 KR20120092561A publication Critical patent/KR20120092561A/ko
Application granted granted Critical
Publication of KR101702158B1 publication Critical patent/KR101702158B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • G11C11/5621Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
    • 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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • G11C16/14Circuits for erasing electrically, e.g. erase voltage switching circuits
    • G11C16/16Circuits for erasing electrically, e.g. erase voltage switching circuits for erasing blocks, e.g. arrays, words, groups
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/26Sensing or reading circuits; Data output circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/32Timing circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/22Read-write [R-W] timing or clocking circuits; Read-write [R-W] control signal generators or management 
    • 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
    • G11C2216/00Indexing scheme relating to G11C16/00 and subgroups, for features not directly covered by these groups
    • G11C2216/12Reading and writing aspects of erasable programmable read-only memories
    • G11C2216/20Suspension of programming or erasing cells in an array in order to read other cells in it

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Read Only Memory (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

NAND 플래시 메모리 논리 유닛. NAND 플래시 메모리 논리 유닛은 명령에 응답하고 프로그램 및/또는 소거 명령이 판독 명령에 의해 인터럽트되도록 허용하는 제어 회로를 포함한다. 제어 회로는 현재 명령을 수행하기 위한 내부 레지스터의 세트와, 명령을 수신하기 위한 외부 레지스터의 세트를 포함한다. 제어 회로는 또한 NAND 플래시 메모리 논리 유닛이 인터럽트된 프로그램 또는 소거 명령의 상태를 적절히 유지하기 위한 중복(redundancy)을 갖도록 허용하는 보조 레지스터의 세트를 포함한다. 인터럽트된 프로그램 또는 소거 명령이 재개되어야 하면, NAND 플래시 메모리 논리 유닛은 그에 따라 중지된 프로그램 또는 소거 동작을 재빨리 재개할 수 있다. 이는 NAND 플래시 메모리 논리 유닛의 맥락에서 판독 응답 시간에 대한 현저한 개선을 제공한다.

Description

인터럽트 가능한 낸드 플래시 메모리{INTERRUPTIBLE NAND FLASH MEMORY}
플래시 메모리는 넓은 섹션에서 소거되는 고체상태(solid-state) 비휘발성 메모리로서 많은 종류의 전자제품에서 널리 사용된다. 플래시 메모리는 부동 게이트(floating gate) 트랜지스터를 각각 포함하는 메모리 셀로 구성된다. 메모리 셀의 상태는 대응하는 부동 게이트 상의 전하량에 의해 제어된다. 메모리 셀의 상태를 변화시키기 위해 전자가 (프로그래밍을 통해) 부동 게이트에 더해지거나 (소거를 통해) 부동 게이트로부터 제거될 수 있다. 전통적으로, 각각의 메모리 셀은 2개의 다른 상태만을 가짐으로써 단일 비트의 정보를 포함하는데, 각각의 상태는 부동 게이트 상의 서로 다른 전하 범위에 대응한다. 최신의 플래시 메모리 셀은 더 많은 서로 다른 상태를 가짐으로써 각각 다수 비트의 정보를 포함할 수 있다(예를 들어, 2비트 정보를 위한 4개 상태).
NOR 플래시와 NAND 플래시의 2 유형의 플래시 메모리가 있다. NOR 플래시에 비교하면, NAND 플래시 메모리는 더 짧은 삭제 시간을 갖고, 초당 더 많은 데이터를 프로그램하며, 메모리 셀 당 더 작은 공간을 요구한다. NAND 플래시 메모리와의 통신을 위한 통신 프로토콜뿐만 아니라 NAND 플래시 메모리의 조직을 정의하는 하나의 종래 스펙(specification)이 ONFI(Open NAND Flash Interface) 표준이라고 지칭된다.
ONFI 표준에 따르면, NAND 플래시 메모리는 논리 유닛으로 조직된다. 각각의 논리적 유닛은 메모리 셀의 어레이와 메모리 어레이의 부분을 판독하거나 그에 기록하기 위해 명령에 응답하는 대응하는 제어 회로를 포함한다. ONFI 표준은 이들 논리 유닛을 “논리 유닛 수(Logical Unit Numbers)” 또는 “LUN”이라고 지칭한다. ONFI 표준에 따르면, 각각의 NAND 플래시 메모리 LUN은 블록으로 조직되는데, 여기서 각각의 LUN은 다수의 블록을 포함한다. 또한, 각각의 블록은 다수의 페이지를 포함하고, 각각의 페이지는 다수의 메모리 셀을 포함한다.
여기에 설명된 실시형태는 NAND 플래시 메모리 논리 유닛과 그 동작에 관한 것이다. NAND 플래시 논리 유닛은 명령에 응답하고 프로그램 및/또는 소거 명령이 판독 명령에 의해 인터럽트가능(interrupterable)하도록 허용하는 제어 회로를 포함한다. 제어 회로는, 현재 활성인 인프로세스(in-process) 명령을 실행하기 위하여 직접적으로 사용가능한 메모리인 내부 레지스터의 세트를 포함한다. 또한 제어 회로는 외부 명령 소스와 통신하기 위한 외부 레지스터의 세트를 포함한다. 제어 회로는 또한, 더 높은 우선순위의 인터럽트가 보통의 동작 레지스터를 계속하여 사용하는 한편 NAND 플래시 메모리 논리 유닛이 인터럽트된 프로그램 또는 소거 명령의 상태를 적당하게 유지할 수 있도록 하는 보조(supplemental) 레지스터의 세트를 포함한다. 인터럽트된 프로그램 또는 소거 명령이 재개되면, NAND 플래시 메모리 논리 유닛이 보조 레지스터의 콘텐츠를 이용하여 재빨리 중지된 프로그램 또는 소거 동작을 재개할 수 있다.
이는 NAND 플래시 메모리 논리 유닛의 맥락에서 판독 응답 시간에 대한 현저한 개선을 제공한다. 그러므로, 외부 명령 회로가 이전에 프로그램 또는 소거 명령을 제어 회로에 제공한 경우에도, 제어 회로는, 프로그램 동작 또는 소거 동작을 홀드(hold)에 위치시킴으로써 외부 명령 소스로부터의 후속 판독 명령에 빠르게 응답할 수 있다.
이 개요(summary)는 청구된 주제의 핵심 특징 또는 필수 특징을 식별하기 위한 것이 아니고, 청구된 주제의 범위를 결정하는 수단으로 사용되려는 것도 아니다.
상기한 것 및 기타 장점과 특징이 획득될 수 있는 방법을 설명하기 위하여, 다양한 실시형태의 더 구체적인 설명이 첨부된 도면을 참조하여 이루어질 것이다. 이들 도면이 단지 샘플 실시형태를 도시하며 따라서 본 발명의 범위의 제한으로 고려되어서는 안 된다는 점을 이해하면서, 첨부된 도면을 사용하여 추가의 구체적인 사항 및 세부 사항으로 실시형태가 묘사되고 설명될 것이다.
도 1은 종래 기술에 따른 예시적인 NAND 플래시 메모리 셀의 시리즈를 도시한다.
도 2는 2개의 NAND 플래시 메모리 논리 유닛을 포함하는 NAND 플래시 메모리 모듈의 블록도를 도시하는데, 여기서 NAND 플래시 메모리 논리 유닛은 판독 명령으로 소거 또는 프로그램 명령을 인터럽트할 수 있는 제어 회로를 포함한다.
도 3은 소거 또는 프로그램 명령을 인터럽트할 수 있는 NAND 플래시 메모리 논리 유닛의 예시적인 제어 회로의 블록도를 도시한다.
도 4는 보조 레지스터가 판독 명령을 위한 전용 내부 레지스터로서 동작하는, 여기에 설명된 실시형태에 따라 도 3의 제어 회로가 명령에 응답하는 방법의 흐름도를 도시한다.
도 5는 보조 레지스터가 인터럽트된 인프로세스 명령을 위한 백업 레지스터로서 동작하는, 여기에 설명된 다른 실시형태에 따라 도 3의 제어 회로가 명령에 응답하는 방법의 흐름도를 도시한다.
도 6은 외부 명령 소스가 도 3의 제어 회로와 통신하는 방법의 흐름도를 도시한다.
여기에 설명된 실시형태에 따르면, 더 빠르게 판독 명령을 충족시키고 그에 의해 더 높은 우선순위 판독 시간을 개선하기 위해 인프로세스 비-판독 명령의 인터럽트를 허용하는 NAND 플래시 메모리 기술이 설명된다. 먼저, NAND 플래시 메모리의 기본 메모리 셀이 도 1에 대해 설명될 것이다. 그 후, NAND 플래시 메모리 모듈이 도 2에 대해 도시되고 설명된다. 그리고 NAND 메모리 논리 유닛을 제어하는 제어 회로가 도 3에 대해 도시되고 설명된다. 마지막으로, 제어 회로의 동작의 원리가 도 4 내지 6에 대해 도시되고 설명될 것이다.
도 1은 3개의 NAND 플래시 메모리 셀(101, 102 및 103)의 시리즈(100)의 단면을 도시한다. 도 1은 종래의 NAND 플래시 메모리 셀을 도시하고, 오직 참조를 위해서 제공된다. 여기에 설명된 원리는, NAND 플래시 메모리 셀의 구조나 디자인에 무관하게, NAND 플래시 메모리 셀의 여하한 어레이에 적용될 수 있다. 도 1은 축척에 맞게 그려진 것은 아니고, 주요 구조만을 포함하지만, 단지 NAND 플래시 메모리 셀의 동작의 일반적인 설명을 위해 제공된 것이다. 그러나, 많은 상용 NAND 플래시 메모리 어레이가 수십억(billion)의 메모리 셀을 포함하지만, 명확성을 위해, 도 1에서 3개의 NAND 메모리 셀만이 도시되었다.
각각의 NAND 플래시 메모리 셀(101, 102 및 103)은 각각 대응하는 도전성 부동 게이트(111, 121 및 131)를 갖는다. 부동 게이트(111, 121 및 131)는 통상 다결정질(polycrystalline) 또는 비정질(amorphous) 실리콘을 이용하는 다양한 도전성 물질로 이루어질 수 있다. 게이트는, 질화 실리콘(Silicon Nitride) 또는 이산화 실리콘(Silicon Dioxide)과 같은 고효율의 순수한 절연체(104)에 의해 모든 방향에서 둘러싸여 있기 때문에 “부동(floating)”이라고 불린다. 이 절연체는 충분히 양호하여 부동 게이트 상에 있을 수 있는 과잉 전자가 보통 전압과 온도에서 절연체에 걸쳐 누설되는데에 평균적으로 수년이 걸릴 것이다.
이 부동 게이트는 셀의 메모리 부분이다. 메모리 셀에 저장된 값은 대응하는 부동 게이트 상의 전하의 양(즉, 전자의 수)에 의존한다. 전통적으로, 각각의 메모리 셀은 2개의 가능한 상태 중 하나를 저장함으로써 1비트의 정보만을 유지한다. 이 경우, 회로는 부동 게이트 상의 전하의 2가지 가능한 범위만을 구별할 수 있고, 각각의 가능한 범위는 비트에 대한 2개의 가능한 값 중 하나로 결정된다. 그러나, 더 현대적인 NAND 플래시 메모리 셀은 2 이상, 아마도 4 이상의 가능한 상태를 구별하고 프로그램할 수 있는 회로에 의해 판독되고, 그에 의해 각각의 메모리 셀이 더 많은 정보, 아마도 각각의 메모리 셀에 대해 2비트 이상을 저장할 수 있도록 한다.
메모리 셀(101, 102 및 103)은 절연의 또는 약한 반도체인 기판(105) 상에 구현된다. 예를 들어, 기판(105)은 이산화 실리콘과 같은 절연체 상의 실리콘 또는 실리콘 결정일 수 있다. 회로 소자는 기판에 주입(implant)되거나, 에칭되거나 적층(layered)된다. 도전성 채널(106)이 도핑 원자를 부가하기 위해 주입 또는 에칭을 함으로써 생성된다. 각각의 메모리 셀(101, 102 및 103)은, 도전성 물질, 보통 알루미늄 또는 비정질 실리콘으로 각각 이루어진 제어 게이트(112, 122와 132)도 갖는다.
전도성 채널(106)을 통해 흐르는 전류는 근처 제어 게이트와 부동 게이트 상의 전하에 의해 변조되어, 메모리의 상태를 검출하는 기초를 형성한다. NAND 플래시 메모리에서, 몇몇의 게이트는 동일한 채널을 공유하여, 증가된 회로 밀도를 가져온다. 예를 들어, 도 1에서, 메모리 셀(101, 102과 103)은 각각 도전성 채널(106)을 공유한다. 이는 메모리 셀의 허용가능한 밀도를 증가시키지만, 어떤 하나의 게이트의 상태를 감지하는 작업을 복잡하게도 한다. 이는 신호가 더 미세하여 잡음으로부터 신호를 분리하기 위해 증폭되어야 하고 시간에 걸쳐 샘플되어야 하기 때문이다.
제어 게이트는 2개의 기능을 한다. 먼저, 제어 게이트는 대응하는 부동 게이트를 소거하거나 프로그램할 수 있다. 예를 들어, 제어 게이트(112)는 대응하는 부동 게이트(111)를 소거하거나 프로그램할 수 있고, 제어 게이트(122)는 대응하는 부동 게이트(121)를 소거하거나 프로그램할 수 있고, 제어 게이트(132)는 대응하는 부동 게이트(131)를 소거하거나 프로그램할 수 있다. 이는, 제어 게이트와 부동 게이트 사이의 전압차가 전자가 부동 게이트를 둘러싸는 절연체를 통해 터널링(tunnel)하게 하는데 충분한 전기장을 가져오도록, 제어 게이트에 충분한 전압을 설정함으로써 작동한다. 절연체는 거의 완전하지만, 제어 게이트와 부동 게이트 사이의 아주 얇은 나노미터 단위의 절연층을 통한 전자의 양자 터널링은 여전히 발생할 수 있다. 전압차가 충분히 크면, 부동 게이트는 소거될 수 있거나(과잉전자가 부동 게이트로부터 제거됨), 프로그램될 수 있다(과잉 전자가 부동 게이트로 주입됨). 점프가 시작하면 각각의 전자는 개별적으로 펨토초 단위에서 점프하는데, 각각의 전자는 다른 시기에 점프하므로, 소거 또는 프로그램하는데 필요한 모든 전자의 이동은 훨씬 길다(예를 들어, 종래의 소거 및 프로그램 기술에 따르면 밀리초).
제어 게이트의 다른 사용은, 공유되는 전도성 채널에 부착된 감지 회로에 의해 여러 메모리 셀 중 어떤 것이 측정되어야 할지를 선택하는 것이다. 부동 게이트 상의 전하의 부재 또는 존재는 채널에서의 전류 흐름의 제어 게이트의 변조를 허용 또는 금지하며, 그에 의해 감지 회로가 대응하는 메모리 셀의 상태를 검출할 수 있도록 한다.
도 2는 NAND 플래시 메모리 모듈(200)의 블록도를 도시한다. 종래의 NAND 플래시 메모리 모듈이 도 2에 도시된 바와 같이 구성될 수 있지만, 여기에 설명된 원리에 따르는 NAND 플래시 메모리 모듈이 그러한 방식으로도 구성될 수 있다. 그러나, 여기에 설명된 원리는, 판독 동작이 프로그램 및 소거 동작과 같은 비판독 동작 (non-read operation)을 인터럽트할 수 있도록 하여 판독 동작과 연관된 평균 레이턴시(latency)를 현저히 감소시키는 현저히 다른 제어 회로를 제공한다.
도 2의 NAND 플래시 메모리 모듈(200)은 단일 통신 버스 인터페이스(203)를 통해 외부 명령 소스(204)와 통신상 결합된 2개의 NAND 플래시 메모리 논리 유닛(201과 202)을 포함한다. 이러한 외부 명령 소스(204)의 본질은 본 발명의 원리에 중요하지 않지만, 소스(204)는 종래의 것이던 아직 개발되지 않은 것이던, NAND 플래시 메모리와 같은 비휘발성 메모리와의 통신에 사용될 수 있는 여하한 장치 또는 시스템일 수 있다. 명령 소스(204)는, 단지 그것이 NAND 플래시 메모리 모듈(200)과 통신하기 위해 통신 버스 인터페이스(203)를 통해 통신한다는 이유만으로 “외부”라고 하는 것이다. “외부”라는 용어는 명령 소스(204)가 반드시 NAND 플래시 메모리 모듈(200)과 다른 칩 상에 있어야 함을 요구하는 것은 아니다.
NAND 플래시 논리 유닛과 통신하는 버스는, 버전 1.0, 2.0 또는 2.1, 또는 후속 버전의 ONFI 프로토콜, 또는 대체 프로토콜, 또는 NAND 플래시 메모리와 통신하기 위한 여하한 다른 프로토콜을 이용하여 통신할 수 있다. 이후에, ONFI 프로토콜 버전 1.0, 2.0, 2.1 및 후속 버전은 청구항에서 전체적으로 “ONFI 프로토콜”이라고 지칭될 것이다. 그러나, 여기에 설명된 원리는 여하한 버스 통신 프로토콜에 제한되지 않는다. 미래에, 여기에 설명된 원리는 현재에 아직 개발되지 않은 NAND 플래시 메모리 통신 프로토콜에 적용될 때 동일하게 유리할 것이다.
각각의 NAND 플래시 메모리 모듈은 여하한 수의 논리 유닛을 가질 수 있다. 그러나, NAND 플래시 메모리 모듈은, 하나의 논리 유닛만 포함하거나, 도 2의 경우와 같이 2개의 논리 유닛을 포함하거나, 또는 2개 보다 많은 논리 유닛을 포함할 수도 있다. NAND 플래시 메모리 칩이 다수의 버스를 사용하는 경우, 각각의 버스와 그 버스에 연결된 대응하는 논리 유닛은 별개의 모듈로서 생각될 수 있다. 그러므로, 단일의 NAND 플래시 메모리 칩은 다수의(별개의 버스만큼 많은) NAND 플래시 메모리 모듈을 가질 수 있다. 하나의 버스(203)만 존재하므로 도 2는 하나의 NAND 플래시 메모리 모듈(200)만을 도시한다. NAND 플래시 메모리 칩이 다수의 NAND 플래시 메모리 모듈을 포함할 수 있지만, 그 반대도 타당할 수 있다. 즉, 단일의 NAND 플래시 메모리 모듈이 다수의 칩으로 구성될 수 있다. 또한, 아마도 NAND 플래시 메모리 칩은 하나의 NAND 플래시 메모리 모듈만을 포함한다.
각각의 NAND 플래시 메모리 논리 유닛(201과 202)은 각각 대응하는 제어 회로(211과 221)를 갖는다. 각각의 제어 회로는 메모리 셀의 대응하는 어레이로 타겟된 명령에 응답한다. 예를 들어, 제어 회로(211)는 메모리 어레이(212)의 메모리 셀을 판독, 소거 또는 프로그램하는 명령에 응답한다. 제어 회로(221)는 메모리 어레이(222)의 메모리 셀을 판독, 소거 또는 프로그램하는 명령에 응답한다. 각 메모리 어레이(212과 222)는 NAND 메모리 셀로 구성되는데, 그 예는 도 1의 NAND 메모리 셀(101, 102과 103)이다.
각각의 NAND 플래시 메모리 논리 유닛(201과 202)은 아직 참석(attend to) 준비가 되지 않은 명령을 유지하는 큐(미도시)를 포함할 수 있다. 다르게는 또는 추가적으로는, 큐는 NAND 플래시 메모리 논리 유닛(200)과 통신하는 명령 소스(204) 상에서 구현될 수 있다. 통상의 데이터 저장 시스템은 데이터를 기록하고 판독하기 위한 가용의 다수 NAND 플래시 메모리 모듈을 가질 수 있다. NAND 플래시 메모리에 데이터를 기록하는 것은 먼저 메모리 어레이의 일부, ONFI에 따르면 한 번에 한 블록의 메모리를 소거하고, 그 후 메모리 어레이를 통상 한 번에 한 페이지씩 프로그램하는 것을 포함한다. 그러므로, 기록 동작에서, 단일의 블록 소거 동작에 블록을 다시 채우기 위한(repopulate) 다수의 프로그램 동작이 후속할 수 있다. 그렇지만 여기에 설명된 원리는 단일 소거, 기록 또는 판독 명령에 대응하는 데이터 크기로 제한되지 않는다. 프로그램 동작의 결과로서 부동 게이트에 누적될 전하의 양에 대한 예측가능성을 얻기 위해 부동 게이트가 전자가 실질적으로 제거된 것과 거의 동일한 상태에서 프로그래밍 동작을 시작하여야 하기 때문에 소거가 중요하다. 소거는 또한 프로그램되지 않을 메모리 셀이 적절한 상태를 갖도록 보장한다.
소거와 프로그램은 판독 동작에 비해 상대적으로 느린 동작이다. 또한, 범용 저장 시스템에서, 판독 활동의 양은 기록 활동의 양에 비해 일반적으로 훨씬 많다. 그러므로, 종래의 설계에서, 시스템은 일반적으로, 기록을 대기하고 있는 데이터를 버퍼링하고, 느린 소거와 프로그램 동작을 판독과의 간섭을 최소화하도록 여하한 한 시점에서의 논리 유닛의 작은 부분으로 제한하도록 설계될 것이다.
불행하게도, 간섭은 현저한 비율로 여전히 나타나고 이는 시스템 응답 시간에 악영향을 줄 것이다. 단 하나의 논리 유닛(201)만이 소거 또는 프로그램 동작에 의해 점유되는 상황을 고려하자. 이러한 느릴 동작은 그 논리 유닛(201)에 대한 동작 큐의 앞에 있을 것이다. 스트리핑(striping)이라고 불리는 프로세스 때문에, 단일의 파일 수준 판독은 다수의 조각난(fragment) 판독을 초래할 수 있고, 이들 각각은 상이한 논리 유닛 상에서 판독 동작이 수행될 것을 요구한다. 스트리핑 패턴은 평균적인 판독 요청에 포함되는 논리 유닛의 비율을 증가시키고 따라서 하나의 논리적 유닛 상에서 적어도 하나의 판독 동작이 느린 소거 또는 프로그램 명령 뒤로 지연될 확률을 증가시킨다. 전체 파일 판독 요청은 모든 그의 조각이 완료될 때까지 완료되지 않고, 그래서, 전체 파일 판독 요청은 전체 파일 판독 요청의 부분으로서 판독되고 있는 조각을 갖는 가장 느린 논리 유닛만큼 느리다.
이러한 방식으로, 많은 논리 유닛 중 하나의 논리 유닛에서의 느린 소거 및 프로그램 동작조차도 높은 판독 레이턴시와 감소된 시스템 속도의 주요 요인으로서 기여할 수 있다. 평균 스트리핑이 단일 파일의 데이터가 데이터 저장 시스템의 논리 유닛의 25퍼센트에 걸쳐 분산되도록 하는 가상적 상황을 가정하자. 이제 소거 동작이 판독 동작보다 50배 느리다고 가정하자. 이 경우, 단 하나의 논리 유닛 상에서의 소거 동작의 존재는 소거 동작 동안에 발생하는 판독 요청에 대해 6.25배의 평균 지체(slowdown)을 유발할 것이다. 예를 들어, 주어진 판독 요청에 대해, 판독 동작 중 하나가 현재 소거 동작을 수행하고 있는 논리 유닛 상에 있을 확률이 25%이다. 그러한 발생의 25% 확률에서, 평균적으로 소거 동작은 중도에 있을 것이고, 소거가 완료되기 위해 판독 동작의 시간의 25배가 요구된다. 그러므로, 판독 요청에 대한 전체 시스템 응답은 6.25배(소거 동작이 발생하면 25배 곱하기 전체 판독 동작의 일부로서 판독되어야 하는 논리 유닛 상에서 소거 동작이 일어나는 25%의 확률) 느려진다. 여기에 언급된 종래 기술의 이러한 문제 및 기타 문제에 대한 본 발명자의 인식은 여하한 방식으로도, 대응하는 문제점이 일반적으로 인식된다거나 당업자에게 인식되어 있음을 인정하는 것은 아님을 유의하라.
여하한 경우에도, 여기에 설명된 원리는 NAND 플래시 논리 유닛에 대한 현저히 개선된 제어 회로를 제공한다. 도 3은 개선된 제어 회로의 일 실시형태를 나타낸 제어 회로(300)의 블록도를 도시한다. 제어 회로(300)는 도 2의 제어 회로(201) 또는 제어 회로(202)의 예이다. 제어 회로(300)는 레지스터(310)와 명령 회로(320)를 포함한다. 레지스터(310)는 내부 데이터 레지스터(311A), 내부 어드레스 레지스터(311B), 외부 데이터 레지스터(312A), 외부 어드레스 레지스터(312B), 보조 데이터 레지스터(313A), 및 보조 주소 레지스터(313B)를 포함한다. 제어 회로는, 메모리 셀로부터의 판독 정보가 내부 데이터 레지스터(311A)에 적용될 수 있는 감지 증폭기 어레이(304), 프로그램 데이터가 기록되는 기록 증폭기 어레이(305)도 포함한다. 이후에, 레지스터(311A와 311B)의 조합을 “레지스터(311)”이라고 지칭할 수 있고, 레지스터(312A와 312B)의 조합을 “레지스터(312)”이라고 지칭할 수 있으며, 레지스터(313A와 313B)의 조합을 “레지스터(313)”이라고 지칭할 수 있다.
내부 데이터 레지스터(311A)는 감지 증폭기 어레이(304)를 통해 활성 판독 명령을 위한 데이터를 수신하고 기록 증폭기 어레이(305)를 통해 활성 프로그램 명령의 데이터를 어서트하기 위한 것이다. 내부 주소 레지스터(311B)는 명령의 타겟인 적당한 메모리 셀을 어드레스 하기 위해 적당한 회로를 구동한다. 예를 들어, 판독 명령이 있으면, 주소 레지스터(311B) 내의 주소는 대응하는 메모리 셀로부터의 값이 대응 값으로 감지 증폭기 어레이(304)를 구동하도록 하고, 그에 의해 값이 내부 데이터 레지스터(311A)에 저장되도록 한다. 유사하게, 프로그램 명령이 있으면, 내부 주소 레지스터(311B) 내의 주소가 기록 증폭기 어레이(305)와 대응하는 어드레스된 메모리 셀 사이의 접속을 유발한다. 이는 내부 데이터 레지스터(311A) 내의 데이터가 기록 증폭기 어레이(305)를 통해 주소 메모리 셀에 기록되도록 한다. 소거 명령이 있으면, 대응하는 회로가 내부 주소 레지스터(311B) 내 주소에 의해 어드레스되는 메모리 세그먼트를 어드레스하고, 그 세그먼트 내 메모리 셀 전부의 값이 리셋되도록 한다.
외부 데이터 레지스터(312A)는 통신 버스 인터페이스(203)로부터 명령과 연관된 데이터를 수신하고, 이미 실행되는 명령으로부터 나오는 데이터를 통신 버스 인터페이스(203)를 통해 외부 명령 소스(204)로 다시 제공하기 위한 것이다. 외부 주소 레지스터(312B)는 통신 버스 인터페이스(203)로부터의 명령과 연관된 주소를 수신하기 위한 것이다.
보조 데이터 레지스터(313A)와 보조 주소 레지스터(313B)는, 더 상세히 설명할 방식으로 활성 인프로세스 명령의 중지 및 재개를 용이하게 한다. 2개의 구체적인 실시형태가 아래에 설명될 것이다. 보조 레지스터(313A와 313B)의 동작과 기능은 실시형태에 따라 다르다.
제 1 실시형태 - 전용 내부 레지스터
이제 설명할 제어 회로(300)의 동작의 제1 실시형태에서, 보조 데이터 레지스터(313A)와 보조 주소 레지스터(313B)는 내부 레지스터의 추가 세트일 수 있다. 이는 내부 데이터 레지스터(311A)와 내부 주소 레지스터(311B)가 비판독 동작(예를 들어, 프로그램 및 소거 동작)을 위한 이용을 위해 유보될 수 있도록 한다. 한편, 보조 데이터 레지스터(313A)와 보조 주소 레지스터(313B)는 판독 동작을 위한 전용 내부 레지스터일 수 있다.
보조 레지스터(313)로 판독 명령이 로딩된 경우, 이 판독 명령이 우선순위를 갖는다고 명령 로직(320)이 판정하면, 레지스터(313)에는 처리 우선순위가 주어진다. 그러므로, 레지스터(311A와 311B)는 잠재적으로 인터럽트 가능한 명령을 위해 사용되고, 레지스터(313A와 313B)는 레지스터(311A와 311B)에 존재하는 명령을 인터럽트할 수 있는 명령을 위해 사용된다. 도 3의 레지스터 크기는 축척에 맞게 그려져 있지 않다. 통상, 얼마나 크던지, 데이터 레지스터는 단일 명령에서 프로그램 및/또는 판독될 수 있는 메모리 크기만큼 클 것이다. 이 크기는 여기서 “페이지(page)”라고 지칭되었다. 주소 레지스터는, 프로그램 및/또는 판독되고 있는 메모리의 부분을 고유하게 식별하는데 필요한 만큼 클 수 있다.
도 4는 보조 레지스터를 전용 레지스터로서 사용하는 때에 명령을 처리하기 위해 도 3의 제어 회로를 위한 방법(400)의 흐름도를 도시한다. 방법(400)은 외부 레지스터(312)로의 명령을 수신하는 때에 개시된다(동작 401). 이 명령이 프로그램 명령이라면, 프로그램 데이터(즉, 기록될 데이터)가 외부 데이터 레지스터(312A)로 로딩되고, 프로그램될 메모리 셀에 대응하는 주소가 외부 주소 레지스터(312B)로 로딩된다. 명령이 소거 명령이라면, 이는 소거될 메모리 셀에 대응하는 소거 주소가 외부 주소 레지스터(312B)로 로딩된다는 것을 의미한다. 명령이 판독 명령이라면, 이는 판독될 메모리 셀에 대응하는 판독 주소가 외부 주소 레지스터(312B)로 로딩된다는 것을 의미한다.
명령 회로(320)는 외부 레지스터(312)로 방금 로딩된 명령과 연관된 명령의 유형을 검출한다(결정 블록 402). 예를 들어, 명령 유형은 프로그램 명령 유형(결정 블록 402에서 “프로그램”), 소거 명령 유형(결정 블록 402에서 “소거”) 또는 판독 명령 유형(결정 블록 402에서 “판독”)일 수 있다.
명령의 유형이 프로그램 명령 유형(결정 블록 402에서 “프로그램”)인 경우, 명령 회로(320)는 전용 비판독 내부 레지스터(311)가 가용인지 여부를 판정한다(결정 블록 411). 전용 비판독 내부 레지스터(311)가 아직 사용가능하지 않으면(결정 블록 411에서 ‘아니오’), 명령 회로는 사용가능할 때까지(결정 블록 411에서 '예') 기다린다(동작 412). 전용 비판독 내부 레지스터(311)가 사용가능하면(결정 블록 411에서 '예'), 프로그램 데이터는 외부 데이터 레지스터(312A)에서 전용 비판독 내부 데이터 레지스터(311A)로 이동되고(동작 413), 프로그램 주소가 외부 주소 레지스터(312B)에서 전용 비판독 내부 주소 레지스터로 이동된다(동작 414). 그 후, 프로그램 동작은 판독 내부 레지스터(313)의 삭제(clearing)를 기다린다(동작 415). 수행될 판독 동작이 없다면, 프로그램 동작이 개시된다(동작 416). 판독 내부 레지스터(313)에서 판독 동작이 없다면, 프로그램 동작은 즉시 개시될 수 있다.
명령의 유형이 소거 명령 유형(결정 블록 402에서 “소거”)이면, 명령 회로(320)는 또한 전용 비판독 내부 레지스터(311)가 사용가능한지 여부를 판정한다(결정 블록 421). 전용 비판독 레지스터(311)가 아직 사용가능하지 않으면(결정 블록 421에서 ‘아니오’), 명령 회로는 사용가능할 때까지(결정 블록 421에서 ‘예’) 기다린다(동작 422). 전용 비판독 내부 레지스터(311)가 사용가능한 경우(결정 블록 421에서 ‘예’), 일단 사용가능하면 소거 주소는 외부 주소 레지스터(312B)로부터 전용 비판독 내부 주소 레지스터로 이동된다(동작 423). 그러면, 프로그램 동작은 판독 내부 레지스터(313)의 삭제를 기다린다(동작 424). 수행될 판독 동작이 없다면, 소거 동작이 개시된다(동작 425). 판독 내부 레지스터(313)에 판독 동작이 없으면, 소거 동작이 즉시 개시될 수 있다.
명령의 유형이 판독 명령 유형(결정 블록 402에서 “판독”)이면, 명령 회로는 전용 판독 내부 레지스터(313)가 사용가능한지 여부를 판정한다(결정 블록 431). 레지스터(313)가 사용가능하지 않으면(결정 블록 431에서 ‘아니오’), 명령 회로는 사용가능할 때까지(결정 블록 431에서 ‘예’) 기다린다(동작 432). 전용 판독 내부 레지스터(313)가 사용가능하면(결정 블록 431에서 ‘예’), 판독 주소가 외부 주소 레지스터(312B)로부터 전용 판독 내부 주소 레지스터(313B)로 이동된다(동작 433). 활성 인프로세스 비판독 명령(non-read command)이 있으면(결정 블록 434에서 ‘예’), 비판독 내부 데이터 레지스터(311A)와 비판독 내부 주소 레지스터(311B)가 프로그램 또는 소거 동작이 중지하도록 디스에이블된다(동작 435). 이 디스에이블은, 인프로세스 비판독 명령의 인터럽트가 적당하다는 명령 회로의 결정에 따른다. 명령 회로가 진행하여 인프로세스 비판독 명령을 인터럽트하면, 판독 동작이 시작된다(동작 436). 이는, 어드레스된 메모리 셀의 내용이 전용 판독 내부 데이터 레지스터(313A)로 판독되도록 판독 내부 레지스터(313)를 인에이블함으로써 이루어질 수 있다. 판독 동작을 완료한 후에(동작 436 후에), 인터럽트된 명령이 재개된다(동작 437). 예를 들어, 판독 내부 레지스터(313)가 디스에이블되는 한편, 비판독 내부 레지스터(311)가 프로그램 또는 소거 명령이 재개되도록 인에이블될 수 있다.
일 실시형태에서, 비판독 명령을 자동으로 디스에이블하기 보다(동작 435), 명령 회로는 비판독 명령을 인터럽트하기 위해 적절한 시기를 기다릴 수 있다. 이는, 비판독 명령의 상태를 포착하는 것이 더 쉬운 시기 동안일 수 있다. 예를 들어, 셀 내용을 측정하기 위해 간략하게 스위칭함으로써 프로그램 또는 소거 명령의 진행이 확인되는 검증 단계(verify phase)의 시퀀스를 이용하여 프로그램 또는 소거 명령이 일어나면, 인터럽트는 다음 검증 단계를 기다리고, 그 후 검증 단계 동안, 직전 및/또는 직후에 인터럽트를 수행할 수 있다. 프로그램 또는 소거 동작이 타이머 상에서 동작하면, 명령 회로는 비판독 동작이 인터럽트되는 때에 타이머를 중지시킬 수 있고 비판독 동작이 재개되는 때에 타이머를 다시 시작할 수 있다. 이러한 점은 중지된 동작의 상태를 저장하는데 있어서의 용이성과 인터럽트된 동작의 안전한 재개를 돕기 위한 새로운 회로 또는 로직의 최소한을 요구함에 있어서 특별한 장점을 제공한다.
제 2 실시형태 - 백업 레지스터
제어 회로(300)의 동작의 제2 실시형태에서, 보조 내부 데이터 레지스터(313A)가 백업 데이터 레지스터이고, 보조 내부 주소 레지스터(313B)가 백업 주소 레지스터이다. 이 경우에, 내부 레지스터(311)는 판독 명령, 프로그램 명령, 및 소거 명령을 포함하는 모든 유형의 명령에 대해 사용된다. 이 경우에, 명령 회로(320)는, 명령 회로(320)가 판독 명령이 인프로세스 비판독 명령을 인터럽트하여야 한다고 결정하는 때에, 인프로세스 프로그램 또는 소거 명령의 주소 및 데이터를 내부 레지스터(311)로부터 백업 레지스터(313)로 백업하도록 구성된다. 인터럽트하는 판독 명령을 위한 데이터 및 주소는 그 후 내부 레지스터(311)로 제공되고 그에 의해 판독 명령을 수행한다. 인터럽트하는 판독 명령이 완료된 후에, 프로그램 또는 소거 명령의 추가 처리를 위하여 인터럽트된 비판독 명령의 데이터와 주소가 백업 레지스터(313)로부터 내부 레지스터(311)로 복원된다. 프로그램 또는 소거 명령이 추가 인터럽트 없이 완료될 수도 있지만, 아마도 프로그램 또는 소거 명령이 완료되기 전에 프로그램 또는 소거 명령이 여러 번 인터럽트된다.
도 5는 보조 레지스터(313)를 백업 레지스터로서 이용하는 때에 제어 회로가 명령을 처리하는 방법(500)의 흐름도를 도시한다. 방법(500)은 명령이 제어 회로(300)에 의해 외부 레지스터(312)로 수신되는 때마다 개시될 수 있다(동작 501). 이 동작은 도 4의 동작 401에 대해 설명된 것과 유사할 수 있다. 그 후 명령 회로(320)는 명령의 유형을 결정하고(결정 블록 502), 이 결정은 도 4의 결정 블록 402에 대해 수행된 것과 동일한 방식으로 수행될 수 있다.
제2 실시형태에서 프로그램 및 소거 명령 응답은 도 4의 제1 실시형태와 유사하다. 즉, 프로그램 명령이 외부 레지스터(312)로 수신되면(결정 블록 502에서 “프로그램”), 명령 회로(320)는 내부 레지스터(311)가 사용가능한지 여부를 판정한다(결정 블록 511). 내부 레지스터(311)가 아직 사용가능하지 않으면(결정 블록 511에서 ‘아니오’), 명령 회로는 사용가능하게 될 때까지(결정 블록 511에서 ‘예’) 기다린다(동작 512). 내부 레지스터(311)가 사용가능하면(결정 블록 511에서 ‘예’), 프로그램 데이터는 외부 데이터 레지스터(312A)로부터 내부 데이터 레지스터(311A)로 이동되고(동작 513), 프로그램 주소는 외부 주소 레지스터(312B)로부터 내부 주소 레지스터(311B)로 이동된다(동작 514). 그 후 프로그램 동작이 개시된다(동작 515).
명령의 유형이 소거 명령 유형(결정 블록 502에서 “소거”)이면, 명령 회로(320)는 내부 레지스터(311)가 사용가능한지 여부를 또한 결정한다(결정 블록 521). 내부 레지스터(311)가 아직 사용가능하지 않으면(결정 블록 521에서 ‘아니오’), 명령 회로는 사용가능할 때까지(결정 블록 521에서 ‘예’) 기다린다(동작 522). 사용가능하면, 소거 주소가 외부 주소 레지스터(312B)로부터 내부 주소 레지스터(311B)로 제공된다(동작 523). 그 후, 소거 동작이 개시된다(동작 524).
명령의 유형이 판독 명령 유형이면(결정 블록 502에서 “판독”), 명령 회로는 또한 내부 레지스터(311)가 사용가능한지 여부를 판정한다(결정 블록 531). 내부 레지스터(311)가 사용가능하지 않으면(결정 블록 531에서 ‘아니오’), 명령 회로는 내부 레지스터(311) 내의 인프로세스 명령이 인터럽트되어야 하는지 여부를 결정한다(결정 블록 532). 이 인터럽트를 할지 여부를 판정하는 때에 고려할 매우 다양한 정보가 있을 수 있다. 그러나, 몇몇 예시적인 경우가 설명될 것이다. 프로그램 또는 소거 명령이 검증 단계를 갖는 경우에, 아마도 판독 동작은 다음 검증 단계 동안, 전에 또는 후에 프로그램 또는 소거 동작을 인터럽트한다. 아마도 추가의 기준은, 프로그램 또는 소거 동작의 나머지가 현저한 시간을 차지할 것으로 예상되지 않도록, 검증 단계가 프로그램 또는 소거 동작의 충분한 다수가 이미 완료되었음(예를 들어, 메모리 셀의 98%가 정확하게 프로그램 또는 소거된 것으로 검증됨)을 확인하는지 여부일 수 있다. 이 경우, 완료를 기다리는 판독 동작이 있더라도 아마도 명령 회로는 인터럽트에 앞서가고 프로그램 또는 소거 동작이 완료되도록 허용할 수 있다. 다르게는, 아마도 프로그램 및 소거 동작은 타이머 상에 있고, 타이머는 인프로세스 프로그램 또는 소거 동작에서 남아 있는 많은 시간이 있지 않음을 나타내 인터럽트를 보장한다.
인프로세스 명령이 현재 인터럽트되지 않을 것이라면(결정 블록 532에서 ‘아니오’), 명령 회로는 대기한다(동작 533). 대기하는 동안 내부 레지스터(311)가 사용가능하게 되면(결정 블록 531에서 ‘예’), 판독 주소가 내부 레지스터(311)로 제공된다(동작 534). 명령 회로가 인프로세스 명령이 여전히 처리되고 있는 여하한 지점에서 인프로세스 명령이 인터럽트되어야 한다고 결정하면(결정 블록 532에서 ‘예’), 명령 회로는 인프로세스 명령을 중지시킨다(동작 535). 인프로세스 명령이 타이머 상에서 처리되면, 타이머는 이 단계에서 중지될 수 있다. 인프로세스 명령에 대한 데이터와 주소 정보는 보조 데이터 레지스터(313A)로 백업되고(동작 536) 보조 주소 레지스터(313B)로 백업된다(동작 537). 인터럽트된 소거 동작의 경우에, 반드시 백업될 데이터가 있는 것은 아니지만 인터럽트된 프로그램 동작의 경우에는 백업될 데이터가 있을 것이다. 이 단계에 판독 주소가 외부 주소 레지스터(312A)로부터 내부 주소 레지스터(311A)로 제공될 수 있다(동작 534). 그 후 판독 명령이 개시된다(동작 538).
판독 동작이 완료된 후에, 또는 달리 말하면, 내부 주소 레지스터(311B) 내의 판독 주소에 의해 어드레스된 메모리 셀의 내용이 내부 데이터 레지스터(311A)로 판독된 후에, 판독된 데이터는 내부 데이터 레지스터(311A)로부터 외부 데이터 레지스터(312A)로 이동된다(동작 539). 이 지점에서, 판독 동작과 연관된 데이터가 통신 버스(203) 상에서 판독될 수 있다. 한편, 인터럽트된 인프로세스 동작은, 그 후에 데이터를 백업 데이터 레지스터(313A)로부터 내부 데이터 레지스터(311A)로 이동시키고(동작 540), 주소를 백업 주소 레지스터(313B)로부터 내부 주소 레지스터(311B)로 이동시킴으로써(동작 541) 재개된다(인터럽트된 명령보다 높은 우선순위를 갖는 다른 판독 동작이 없다고 가정). 이 지점에서, 인터럽트된 동작이 재개될 수 있다(동작 542).
인프로세스 명령을 재개하기 전에, 판독 동작이 완료되면, 인터럽트된 동작을 재개하기 전에 수행되어야 하는 하나 이상의 다른 판독 동작이 있을 수 있다. 그러한 경우라면, 각각의 판독 동작에 대해, 외부 주소 레지스터(312B)로부터 내부 주소 레지스터로 판독 주소를 제공하고(동작 534), 판독 동작을 개시하고(동작 538), 완료되면 판독 데이터를 내부 데이터 레지스터(311A)로부터 외부 데이터 레지스터(312A)로 제공함으로써(동작 539), 동작 534, 538 및 539는 연속으로 수행될 것이다. 단일의 인프로세스 비판독 명령은 완료 전에 한 번 또는 여하한 횟수로 인터럽트될 수 있고, 어떠한 주어진 인터럽트는 비판독 명령이 재개되기 전에 하나 이상의 판독 동작이 발생하도록 할 수 있다.
도 2를 참조하면, 외부 명령 소스(204)는 통신 버스 인터페이스(203)를 통해 NAND 플래시 메모리 모듈(200)로 명령을 제공한다. 도 6은 제어 회로를 통해 제어되는 NAND 플래시 메모리 논리 유닛으로 명령을 제공하는 외부 명령 소스를 동작시키는 방법(600)의 흐름도를 도시한다. 예를 들어, 외부 명령 소스는 도 2의 외부 명령 소스(204)일 수 있다. NAND 플래시 메모리 논리 유닛은 예를 들어 도 2의 논리 유닛(201) 또는 논리 유닛(202)일 수 있다.
외부 명령 소스는 제어 회로에 적어도 하나의 프로그램 명령(동작 601)과 적어도 하나의 소거 명령(동작 602)을 제공한다. 예를 들어, 제어 회로는, NAND 플래시 메모리 논리 유닛(201)과 통신하는 경우에 제어 회로(211)일 수 있고 NAND 플래시 메모리 논리 유닛(202)과 통신하는 경우에 제어 회로(221)일 수 있다. 어떤 경우에도, 외부 명령 소스(204)는 통신 버스(203)를 통해 각각의 제어 회로로 명령을 통신할 수 있다.
프로그램 및 소거 동작이 NAND 플래시 메모리 논리 유닛으로 제공된 후에, 후속하는 판독 동작이 제어 회로로 제공된다(동작 603). 이 판독 동작은 NAND 플래시 메모리 논리 유닛에서 처리 중인(in process) 이전의 프로그램 또는 소거 동작을, 그 동작이 프로그램 동작이던 소거 동작이던, 인터럽트할 수 있다. 어떤 경우에도, 제어 회로는 보조 레지스터를 이용하여 프로그램 명령 또는 소거 명령을 인터럽트할 수 있다. 예를 들어, 상술한 제1 실시형태의 경우에 보조 레지스터는 전용 판독 내부 레지스터로 기능할 수 있고, 상술한 제2 실시형태의 경우에 보조 레지스터는 백업 레지스터로서 기능할 수 있다. 판독 동작이 인터럽트된 동작을 인터럽트한 후에, 판독 데이터는 외부 명령 소스(204)로 다시 제공된다(동작 604). 데이터는 인터럽트된 명령의 실행에 있어 순서를 벗어나 판독됨을 유의하라. 예를 들어, 명령 소스(204)는 프로그램 명령을, 그리고 그 후 판독 명령을 모두 동일한 논리 유닛에 발할 수 있다. 그러나 데이터는 프로그램 명령이 논리 유닛 상에서 완료되기도 전에 명령 소스(204)에 의해 판독될 수 있다. 유사하게, 명령 소스(204)는 소거 명령을, 그리고 그 후 판독 명령을 모두 동일한 논리 유닛에 발할 수 있다. 그러나, 데이터는 소거 명령이 논리 유닛 상에서 완료되기도 전에 명령 소스(204)에 의해 판독될 수 있다.
이제 인터럽트된 소거 및 인터럽트된 프로그램 동작의 구체적인 구현을 ONFI 스펙에 대하여 설명할 것이다. 소거로 시작하자. NAND 플래시 메모리에서, 소거는, 도 1에 대해 설명된 바와 같이 근처 반도체 채널에서의 전류 흐름을 변조하도록 위치되고 완전히 절연체로 둘러싸인 도전체(보통 다결정 실리콘이지만 때로는 다른 물질)의 부분인 부동 게이트 상에 저장될 수 있는 전자의 제거이다. 이는 통상 전자가 부동 게이트의 바깥으로 절연체를 통해 양자 터널링하도록 끌어당기는데(attract) 충분하도록 큰 전기장을 배열함으로써 이루어진다. 이 터널링 프로세스는 상대적으로 느린데, 이 일을 빠르게 이루어낼 만큼 충분히 강한 장(field)은 또한 절연체에서의 영구적인 손상(failure)을 유발하기에 충분할 정도로 강하기 때문이다. 터널링 속도는 지수 등식(exponential equation)에 의해 좌우되는데, 이는 터널링 속도가, 칩 상의 수십억 개의 셀에 대해 제조 편차에 기인하여 불가피하게 존재할 수밖에 없는 절연체 두께 변화에 꽤 민감하게 한다. 실제로 2 내지 5 밀리초의 시간 동안 여하한 셀의 가장 두꺼운 절연체를 통해 게이트에서 전자를 빼내기에 충분히 강한 장은 또한 여하한 셀의 가장 얇은 절연체에서조차 손상을 유발하지 않을 정도로 충분히 약하다.
여기에 설명된 원리를 이용하는 소거 동작의 예를 이제 설명한다. 이 소거 동작은 여기에 설명된 더 광범위한 원리에 의해 가능하게 되는 많은 상이한 구현 중 하나에 불과하다. 그렇다면, 이 소거 동작에 대해 설명되는 어떠한 구체적인 특징도 여기에 설명된 더 광범위한 실시형태에 대해 어떻게도 제한을 부과하는 것으로 해석되어서는 안 된다.
이 구체적인 예에서, 소거는 블록으로 발생한다. 블록은 다수의 페이지의 집합이고 페이지는 다수의 메모리 셀의 집합임을 상기하라. 소거 동작의 최종 결과는 알려져 있다. 구체적으로, 소거되는 블록 내의 모든 메모리 셀은 수용가능한 공차 내에서 전하가 없어야 한다. 임의의 검증 단계에서 비교를 위해 데이터 값이 요구되지 않는다. 그러므로, 소거 동작이 검증을 사용한다면, 블록의 메모리 셀의 내용은 알려진 희망 결과에 비교된다. 그러나, 검증은 더 많은 시간이 걸리고 더 많은 복잡성을 가지며 소거 동작이 시간에 맞춰지는 것이 더 간단하기 때문에, 소거 동작은 검증 단계를 가지지 않을 수 있다. 수용가능한 확률 내에서 블록 내 모든 메모리 셀이 비게 되는 것을 보장하기에 충분할 정도로 통계적으로 긴 소거 시간이 선택된다. 대부분의 셀은 소거 시간이 경과하기 한참 전에 비게 될 것이지만, 이미 비어있는 셀에 소거 동작을 계속 적용하여도 잘못될 것은 없다. 따라서, 결국 가장 느리게 소거되는 메모리 셀도 비게 될 것이다.
이 구체적인 예에서, 소거 과정은 완료되는데 수 밀리초가 걸릴 수 있다. 그러나, 소거 프로세스는 양자 터널링이라고 불리는 프로세스를 이용하고, 여기서 각각의 전자는 일단 터널링이 시작되면 피코초 단위로 부동 게이트로부터 제거된다. 그렇지만, 터널링은 각각의 전자에 대해 상이한 시간에 시작한다. 그러므로, 거의 모든 주어진 순간에, 이동될 각각의 전자는 이미 터널링했거나 아직 터널링을 시작하지 않았다. 그러므로, 소거 프로세스는 현저한 효율의 손실 없이도 인터럽트되고 재개될 수 있다. 소거 프로세스에 소비되는 전체 시간이 타겟 소거 시간의 전체 길이와 일치하는 이상, 요구된 소거 완료 확률은 보장된다.
소거 프로세스 동안, 소거 프로세스가 인터럽트되고 재개되면 시스템에서는 피코초 단위보다 긴 비용이 존재한다. 예를 들어, 특수한 전압원은 (소거 동작이 인터럽트된 때에) 해제되고 (소거 동작이 재개되면) 재충전될 필요가 있을 수 있다. 또한, 적절한 소거 상태를 유지하고 다시 어서트(reassert)하는데 관련된 시간이 있을 수 있다(도 4에 대해 동작 435와 437, 도 5의 동작 535, 536, 537, 540, 541 및 542와 같이). 여전히, 이들 시간 비용은 전체 소거 프로세스 시간의 작은 부분이다. 시간 비용은 판독 동작에 대한 현저한 간섭 지연을 피하는데 충분하도록 짧지만, 인터럽트와 재개의 오버헤드에 의해 소거 동작이 현저히 길어지지 않도록 보장할 만큼은 길다. 이들 시간 비용은, 제어 회로(320)가 소거 동작을 인터럽트할지 여부 또는 소거 동작이 완료되거나 후속 단계로 진행하도록 할지 여부를 결정하는 때에 고려될 수 있다.
소거 동작을 인터럽트하는 때에, 제어 회로의 내부 상태는, 소거 동작이 판독 동작에 의해 인터럽트되었을 때에 소거와 판독 동작 양자 모두의 상태를 볼 수 있어야 한다. 본 발명의 원리가 통신 버스 상에서의 ONFI 프로토콜의 사용에 제한되지 않지만, 이 상태 보고가 이루어질 수 있는 방법의 예가 ONFI 표준에 의해 제공되는 핀, 신호, 명령 및 상태 레지스터와의 호환성과 관련하여 설명될 것이다.
ONFI 호환 칩에서, 상태는 상태 레지스터 SR의 비트(6)을 이용하여 기록된다. 이 비트는 “SR(6)”이라고 지칭할 것이다. ONFI 프로토콜은 상태 SR(6)이 폴링될 것이라고 가정한다. SR(6)의 상태를 반영하는 출력 핀이 있지만, 칩이 다수의 논리 유닛을 포함한다면 이 폴링 방법을 신뢰할 수 없는데, 이는 논리 유닛 중 어떠한 하나가 비지(busy)이면 SR(6)가 비지를 나타내기 때문이다.
(예를 들어) 상태 기계의 방식으로 구현될 수 있는 다음의 프로세스는 이것이 어떻게 ONFI 스펙과 호환되도록 이루어질 수 있는지를 설명한다. 하지만, 당업자는 이 설명을 읽은 후에, 판독 동작에 의해 소거 동작을 인터럽트하는 프로세스는, 특히 칩이 ONFI 외의 다른 접속 및 명령 표준을 갖는다면, 다른 시그널링 방식(signaling convention)에 의해 관리될 수 있음을 깨달을 것이다.
먼저, 소거 동작이 명령되고 NAND 플래시 메모리 모듈에 의해 수용되면, 소거될 블록을 포함하는 논리 유닛은 “준비 안 됨”을 어서트한다. 이제 논리 유닛에 대한 SR(6) 비트가 “준비 안 됨”으로 관찰된 후 여하한 시점에 판독 동작이 명령될 수 있다. 판독 주소가 소거될 블록 내의 위치에 대한 것이면, 칩의 행동은 정의되지 않을 것이지만, 가장 가능하게는 에러 표시로 판독 명령을 거부할 것이다. 이는 명령 회로(320)가 판독 동작으로 소거 동작을 인터럽트하지 않기로 선택할 수 있는 하나의 이유일 수 있다(결정 블록 532에서 ‘아니오’ 참조). 도 4의 결정 블록 434의 ‘예’와 동작 435 사이에서 유사한 결정이 이루어질 수 있다. 예를 들어, 판독 내부 레지스터 내의 판독 명령이 비판독 내부 레지스터 내 소거 명령에서 소거되고 있는 블록 내의 주소에 대한 것이라면, 판독 동작은 실패할 수 있다. 판독 동작이 논리 유닛의 제어 회로에 의해 수용되면, 소거 동작을 위한 레지스터에 대한 블록 주소는 방해되지 않고 남아있고, 판독 동작은 큐에 더해진다(enqueued).
논리 유닛은 준비되지 않은 상태로 남아 있다. 이 예시적인 프로세스에서, 소거 동작은 논리 유닛에 대한 통상의 판독 레이턴시보다 짧거나 비근한 소정의 인터벌로 주기적으로 중단된다. 상태는 ‘준비되지 않음’으로 유지된다. 그러한 중지 중 여하한 하나 동안, 판독 동작은 이제 그 자신의 판독 주소를 이용하여 진행할 수 있다. 셀 값은 그 후에 내부 데이터 레지스터에 위치된 결과 값으로써 감지 증폭기에 의해 결정되고, 그 후 외부 데이터 레지스터로 이동된다. 이 지점에서, 판독 동작이 완료되고 데이터가 통신 버스로의 독출을 위해 준비된 때에 SR(6) 비트는 “준비됨”이 된다. ONFI 인터리빙된 판독(판독 캐시)이 다른 판독을 시작하기 위해 선택적으로 사용될 수 있다.
판독 데이터는 외부 데이터 버스 상에서 수집된다. 인터리빙된 판독 캐시가 계류 중(pending)이면, SR(6)은 현재 페이지가 수집된 때에 ‘준비되지 않음’이 되고 인터리빙된 (계류 중인) 판독 캐시가 완료된 때에 ‘준비됨’이 될 것이다. 인터리빙된 판독이 계류 중이면, SR(6)는 다음 판독 동작의 다음 완료 시에 ‘준비됨’을 어서트한다.
계류 중인 인터리빙된 판독이 없으면, 모든 판독 데이터가 수집된 것이다. 소거 동작이 완료되지 않았으면, SR(6)는 “준비되지 않음”이 되고 소거가 재개되며, 그때 다른 판독 동작이 인터럽트하여야 하는 경우에 상술한 바와 같이 소거가 주기적으로 중지한다.
소거 동작이 완료되었으면, SR(6)은 “준비됨”으로 남아있고 논리 유닛은 휴지가 되어 임의의 명령을 기다린다.
이제 ONFI 스펙을 이용하여 매우 구체적인 프로그램의 예를 설명할 것이다. 블록의 소거 뒤에, 데이터가 페이지별로 프로그램된다. NAND 플래시 상에서, 프로그래밍 동작은 터널링에 의해 달성되지만(소거 동작에 대해서와 동일한 원리), 전자는 반대 방향으로 흘러서 부동 게이트에서 축적된다. 이 프로세스는 다양한 타이밍을 갖지만 통상 완료되는데 수백 마이크로초가 걸린다.
프로그램을 하기 위해, 충분한 시간 동안 제어 게이트에 바이어스 전압이 인가되어 정확한 수의 전자가 각 메모리 셀의 부동 게이트에 기록되도록 한다. 이것이 정확하게 수행되기 위해, NAND 플래시 메모리 논리 유닛은 중지되고 패이지 내 각 셀의 상태를 검증할 수 있다. 이는 부동 게이트 내 전자를 의도된 패턴과 비교하기 위해 감지함으로써 이루어질 수 있다. 이 프로세스는 “검증(verification)”이라고 불리며 일반적으로 각각의 논리 유닛 내의 명령 회로(320)에 의해 감독된다. 이는 전하가 정확하게 제어될 수 있도록 하고 프로세스가 마지막 셀이 희망 상태에 도달할 때에 종료될 수 있도록 하는데, 이는 일반적으로 소거 프로세스의 기간을 결정하는데 사용되는 최악의 경우(worst-case) 타이밍보다 훨씬 짧다.
검증은 일부 디자인에서 사용되지 않을 수 있다. 다른 경우에, 특히 다층 셀(multi-level cell) 디자인에서, 이는 여러 번 발생할 것이다. 타겟 데이터 값은 셀에 인가되는 바이어스를 결정하지 않고, 대신에 그 바이어스가 얼마나 오래 인가되는지를 변경한다. 각각의 검증 후에, 바이어스는 여전히 의도된 상태에 도달하지 않은 셀(부동 게이트 상에 전자를 더 필요로 하는 셀)에만 인가된다. 그러므로, 프로그램 프로세스는 일반적으로, 추가의 전자를 필요로 하는 셀의 부분집합에 바이어스를 인가한 후에 프로그램 데이터 페이지 레지스터에 유지되는 기준 값에 대해 검증하는 루프이다. 이 프로세스는, 통계적 변화에 불구하고 프로그래밍이 가능한 빨리 완료될 수 있도록 하고 또한 빈(empty) 것과 가득 찬(full) 것 사이의 다수의 상태가 정확하게 달성될 수 있도록 한다. 그러므로, 메모리 셀은 다수 비트의 정보를 포함하도록 프로그램될 수 있다.
프로그램 프로세스는 통상의 판독 레이턴시보다 한 단위 정도 느릴 수 있다. 프로그램 동작이 진행 중이고 판독 동작이 동일한 논리 유닛으로부터 희망되는 경우에, 결과적인 판독 동작의 지연은 프로그램이 진행 중이 아닌 때의 지연에 비해 휠씬 크다. 인프로세스 프로그램 동작에 의해 유발되는 레이턴시를 감소시키기 위해, 하나 이상의 판독 명령이 프로그램 동작을 인터럽트할 수 있다. 소거 동작에서와 마찬가지로, 전하 이동은 피코초 단위로 일어나고 효율에 현저하지 않은 변화를 가져오며 중지될 수 있는 양자 터널링 이벤트이다. 외부 제어가 더 이상 대기하는 판독 명령이 없다고 결정하는 때에, 또는 외부 제어가 프로그램 동작이 더 높은 우선순위를 갖는다고 결정하는 경우에, 프로그램 동작은 계속된다. 이는 판독 동작을 느리게 하는 프로그램 동작에 의한 레이턴시의 대부분을 제거한다. 이들 더 짧은 판독 레이턴시는 보통 프로그램을 지연시키는 비용보다 더 중요하다. 실질적으로, 중요한 판독 동작이 덜 긴급한 프로그램 동작을 인터럽트하는 우선순위를 부여받는다.
이 구체적인 예에서, 판독 동작은 프로그램 동작의 검증 단계 직전 또는 직후에 인프로세스 프로그램 동작을 인터럽트할 수 있다. 명령 회로(320)는 이제 설명할 프로세스를 이용하여 ONFI 표준에 의해 제공되는 핀, 신호, 명령 및 상태 레지스터로써 이를 달성할 수 있다. 당업자는 이 설명을 읽은 후에, 프로세스는, 특히 칩이 ONFI 외의 다른 접속 및 명령 표준을 갖는다면, 다른 시그널링 방식(signaling convention)에 의해 관리될 수 있음을 이해할 것이다. 이 예에서, 프로그램 데이터를 위한 레지스터는 판독 데이터를 유지하는데 사용되는 레지스터와 구별되고, 그러므로 보조 레지스터가 제2 내부 레지스터로서 동작하는 위의 첫 번째 개시된 실시형태를 이용한다. 그러므로, 프로그래밍을 위한 주소는 판독을 위해 사용되는 주소와 별개로 래치(latch)된다.
프로그램 동작은 논리 유닛의 설계에 의해 허용되는 여하한 시점에 시작할 수 있다. 프로그램 동작 동안, SR(6) 상태 비트는 “준비되지 않음”을 나타낸다. 프로그램 동작은 장치에 대한 통상의 페이지 판독 레이턴시와 비근한 소정의 짧은 인터벌로(예를 들어, 10 마이크로초 인터벌로) 주기적으로 중지된다. 이 중지는 순수하게 판독 동작이 인터럽트할 수 있게 하기 위한 것일 수 있거나, 또는 검증으로 전이하기 위한 사전단계(prelude)일 수 있다. 상태 SR(6)는 “준비되지 않음”으로 남아있다.
여하한 계류 중인 판독 동작이 이제 그 자신의 판독 주소를 이용하여 진행할 수 있고, 셀 값은 판독을 위한 페이지 레지스터에 위치된 결과 값으로써 감지 증폭기에 의해 결정될 수 있다. LUN에 대한 SR(6)은 어레이 판독이 완료되고 데이터가 판독 페이지 레지스터로부터 독출될 준비가 된 때에 “준비됨”이 된다.
ONFI 인터리빙된 판독(판독 캐시)은 다른 판독 동작을 시작하기 위해 선택적으로 사용될 수 있다. 판독 데이터는 외부 데이터 버스 상에서 수집된다. 인터리빙된 판독 캐시가 계류 중이면, SR(6)은 현재 페이지가 수집된 때에 “준비되지 않음”이 되고 인터리빙된 (계류 중인) 판독 캐시가 완료된 때에 “준비됨”이 될 것이다. 인터리빙된 판독 동작이 계류 중이면, 판독 동작이 수행되고, SR(6)이 다음 판독 동작이 완료되었음을 나타내는 “준비됨”이 되기를 기다린다.
최종 판독 동작의 데이터가 판독되고 인터리빙된 판독이 계류 중이지 않은 때에, 칩은 인터럽트된 프로그램 동작을 재개한다. “준비되지 않음”인 상태 SR(6)이 다시 어서트된다. 중지가 순수하게 판독 동작을 허용하기 위한 것이면, 프로그램 동작은 데이터 어레이에서 재개된다. 중지가 검증의 사전단계이면, 프로그램 동작의 검증 단계가 이제 시작된다. 모든 비트가 희망 상태에 있는 것이 아니라면 검증은 기록의 재개로 유도할 수 있다. 이 프로세스는 검증이 모든 메모리 셀의 희망 값으로의 적절한 완료를 검증할 때까지 반복(loop)된다. 이 단계에서, LUN은 유휴이고 여하한 명령을 기다린다.
이 상태 시퀀스는 판독 동작이 검증 단계 전에 개입하도록 허용된 경우에 적용되지만, 검증 단계 자체가 판독 동작과 길이가 유사한 단계이므로 판독 동작이 검증 후에 개입하는 것을 허용하도록, 또는 실제로 판독 동작이 검증 단계 전과 후 모두에 유용하게 개입할 수 있도록 단계의 순서가 변경될 수 있다. 판독 동작이 개입할 때마다, 프로그램-검증 사이클에 대한 저장하여 판독 동작을 인터럽트함으로써 그 상태가 방해받지 않도록 하는 것이 중요하다. 이는 프로그램-검증 사이클이, 개입하는 판독 동작이 완료된 때에 그 상태에서 재개할 수 있도록 한다.
프로그램-검증 루프는 어떤 상황에서는 판독 레이턴시보다 약간 길 수도 있지만, 함의(implication)는 루프가 더 자주 중단되도록 하는 것이 중요할 수 있다는 것이다. 판독 동작은 인터럽트할 기회를 더 자주 가질 수 있으므로 이는 평균 판독 레이턴시를 감소시킬 것이고, 각각의 프로그램-검증 사이클에서 기대되는 전하 변화의 더 세밀한 입도(granularity)와 더 잦은 검증에 의해 더 정확한 프로그래밍이 가능하게 될 것이다. 추가의 검증은 프로그램 시간에 추가될 것이므로 이러한 교환(tradeoff)은 프로그램-검증 사이클이 인터럽트될 수 없다면 그렇게 매력적이지는 않다. 프로그램을 인터럽트가능하게 하는 것은 칩 설계자가, 인터럽트가능한 프로그래밍이 없이는 가능하지 않은 방식으로 전체 시스템 성능 목표를 만족시키면서도 신뢰성과 정확한 신호의 다른 밸런스를 가져올 수 있도록 한다. 역설적으로, 더 느리지만 인터럽트가능한 프로그램 동작은, 더 양호한 장치 내구성과 더 높은 셀 당 전압 수준을 갖는 더 빠르고 더 신뢰성 있는 시스템을 낳을 수 있다.
이 교환은, 2, 3 또는 그 이상의 셀 당 비트를 갖는 다층(multi-level) 전하 칩이 고성능 칩으로 받아들여질 수 있도록 하기 위해 특히 중요할 수 있다. 오늘날, 새로운 데이터를 저장하는 데 있어 플래시 칩의 스루풋(throughput)은 많은 애플리케이션에 대해 요구되는 평균 레이트를 훨씬 초과한다. 그러나, 프로그램 동작이 판독 동작과 간섭하는 이상, 그리고 그들 동일한 애플리케이션이 통상 낮은 레이턴시를 요구하는 이상, 소거와 프로그램 동작을 더 빠르게 하여야 할 수요가 존재한다. 소거와 프로그램 동작을 인터럽트 가능하게 함으로써, 더 좋은 시스템 수준의 교환이 있게 된며, 이는 장치 설계자가 자유롭게 전체 시스템 성능의 손실 없이, 셀 당 비트의 더 높은 밀도와 많은 사이클과 연한(years)에 걸친 개선된 장치 내구성을 교환하는 것을 고려할 수 있게 한다.
추가적인 장점으로서, 프로그램 및 소거 사이클이 인터럽트가능하게 될 수 있으므로, 프로그램 및 소거 전압이 감소될 수 있다. 이는 프로그램 및 소거 동작을 위해 요구되는 시간을 증가시키는 효과를 갖지만, 높은 전압차는 장치 컴포넌트를 시간에 따라 노화(wear)시키는 경향이 있으므로 칩의 수명을 개선하기도 한다. 그러나, 프로그램 및 소거 동작을 위해 요구되는 증가된 시간은 그들이 인터럽트가능하다는 것을 고려하면 수용가능할 수 있다. 그러므로, 칩 수명이 개선될 수 있다.
본 발명은 그 사상 또는 핵심 특징을 벗어나지 않고 다른 구체적인 형태로 실시될 수 있다. 설명된 실시형태는 모든 측면에서 제한적인 것이 아니라 단지 예시적인 것으로 고려되어야 한다. 그러므로 본 발명의 범위는 위의 설명이 아니라 첨부된 청구범위에 의해 표시된다. 청구범위의 균등물의 의미 및 범위 내의 모든 변경은 그 범위 내에 속한다.

Claims (23)

  1. 물리적인 NAND 플래시 메모리 논리 유닛으로서,
    프로그램가능하고 소거가능한 복수의 메모리 셀과,
    상기 복수의 메모리 셀을 대상으로 한 판독 명령, 프로그램 명령 및 소거 명령을 적어도 포함하는 복수의 명령에 응답하도록 구성된 제어 회로와,
    외부 명령 소스로부터 판독, 프로그램 및 소거 명령을 상기 제어 회로에 제공하기 위해 상기 제어 회로에 통신가능하게(communicatively) 결합된 통신 버스 인터페이스를 포함하되,
    상기 제어 회로는,
    내부 데이터 레지스터, 내부 주소 레지스터, 외부 데이터 레지스터, 외부 주소 레지스터, 보조 데이터 레지스터 및 보조 주소 레지스터를 포함하는 복수의 레지스터와,
    상기 복수의 레지스터를 제어함으로써 상기 복수의 명령에 응답하기 위한 명령 회로
    를 포함하고,
    상기 보조 데이터 레지스터 및 상기 보조 주소 레지스터는 후속 판독 명령(later read command)을 처리하기 위해 진행중인 소거 및 프로그램 명령이 중단될 수 있게 하고 중단된 소거 또는 프로그램 명령을 재개시키는데 사용되고,
    상기 내부 데이터 레지스터는 제1 내부 데이터 레지스터이고, 상기 내부 주소 레지스터는 제1 내부 주소 레지스터이며, 상기 제1 내부 데이터 레지스터와 상기 제1 내부 주소 레지스터는 비판독 명령(non-read command)에 전용되고(dedicated),
    상기 보조 데이터 레지스터는 제2 내부 데이터 레지스터이고, 상기 보조 주소 레지스터는 제2 내부 주소 레지스터이며, 상기 제2 내부 데이터 레지스터와 상기 제2 내부 주소 레지스터는 판독 명령에 전용되는
    물리적 NAND 플래시 메모리 논리 유닛.
  2. 제 1 항에 있어서,
    상기 비판독 명령은 프로그램 명령과 소거 명령을 포함하는
    물리적 NAND 플래시 메모리 논리 유닛.
  3. 제 2 항에 있어서,
    상기 제2 내부 데이터 레지스터와 상기 제2 내부 주소 레지스터는 상기 복수의 메모리 셀에 대해 명령을 수행함에 있어 상기 제1 내부 데이터 레지스터와 상기 제1 내부 주소 레지스터에 비해 높은 처리 우선순위를 갖는
    물리적 NAND 플래시 메모리 논리 유닛.
  4. 제 3 항에 있어서,
    상기 명령 회로는
    상기 외부 주소 레지스터 내 주소와 연관된 명령의 유형을 검출하도록 구성되고,
    상기 명령의 유형이 프로그램 명령 유형이면, 상기 외부 데이터 레지스터로부터의 데이터를 이용가능해진 상기 제1 내부 데이터 레지스터로 이동시키고, 상기 외부 주소 레지스터 내 주소를 이용가능해진 상기 제 1 내부 주소 레지스터로 이동시키도록 구성되며,
    상기 명령의 유형이 소거 명령 유형이면, 상기 외부 주소 레지스터 내 주소를 이용가능해진 상기 제1 내부 주소 레지스터로 이동시키도록 구성되고,
    상기 명령의 유형이 판독 명령 유형이면, 상기 외부 주소 레지스터 내 주소를 상기 제2 내부 주소 레지스터로 이동시키도록 구성되는
    물리적 NAND 플래시 메모리 논리 유닛.
  5. 제 1 항에 있어서,
    상기 명령 회로는, 인프로세스(in-process) 프로그램 명령에 대응하는 프로그램 동작의 검증 단계(verify phase) 동안 판독 명령이 상기 인프로세스 프로그램 명령을 인터럽트하는 방식으로 상기 판독 명령이 상기 인프로세스 프로그램 명령을 인터럽트하여야 한다고 결정하는
    물리적 NAND 플래시 메모리 논리 유닛.
  6. 제 1 항에 있어서,
    상기 명령 회로는, 인프로세스 프로그램 명령에 대응하는 프로그램 동작의 검증 단계 이전에 판독 명령이 상기 인프로세스 프로그램 명령을 인터럽트하는 방식으로 상기 판독 명령이 상기 인프로세스 프로그램 명령을 인터럽트하여야 한다고 결정하는
    물리적 NAND 플래시 메모리 논리 유닛.
  7. 제 1 항에 있어서,
    상기 명령 회로는, 인프로세스 프로그램 명령에 대응하는 프로그램 동작의 검증 단계 이후에 판독 명령이 상기 인프로세스 프로그램 명령을 인터럽트하는 방식으로 상기 판독 명령이 상기 인프로세스 프로그램 명령을 인터럽트하여야 한다고 결정하는
    물리적 NAND 플래시 메모리 논리 유닛.
  8. 제 1 항에 있어서,
    상기 명령 회로는, 인프로세스 프로그램 명령에 대응하는 프로그램 동작에서 지정된 시간의 양보다 많은 시간이 남아 있으면, 판독 명령이 상기 인프로세스 프로그램 명령을 인터럽트하여야 한다고 결정하는
    물리적 NAND 플래시 메모리 논리 유닛.
  9. 제 1 항에 있어서,
    상기 명령 회로는, 가장 최근에 수행된 검증 단계에서, 지정된 양보다 적은 메모리 셀이 인프로세스 프로그램 명령에 대응하는 프로그래밍을 완료한 것으로 판정되면, 판독 명령이 상기 인프로세스 프로그램 명령을 인터럽트하여야 한다고 결정하는
    물리적 NAND 플래시 메모리 논리 유닛.
  10. 제 1 항에 있어서,
    상기 보조 데이터 레지스터는 백업 데이터 레지스터이고, 상기 보조 주소 레지스터는 백업 주소 레지스터이며,
    상기 명령 회로는,
    a) 상기 명령 회로가 판독 명령이 인프로세스 프로그램 명령을 인터럽트하여야 한다고 결정하면, 상기 인프로세스 프로그램 명령의 데이터와 주소 상태를 상기 내부 데이터 레지스터와 내부 주소 레지스터로부터 상기 백업 데이터 레지스터와 상기 백업 주소 레지스터로 백업하고,
    b) 상기 복수의 메모리 셀 상에서 상기 인터럽트하는 판독 명령에 의해 지정되는 판독을 수행하기 위해 상기 인터럽트하는 판독 명령에 대한 주소를 상기 내부 주소 레지스터에 제공하며,
    c) 상기 인터럽트하는 판독 명령이 완료된 후 소정 시점에서, 상기 프로그램 명령의 추가 처리를 위해 상기 인프로세스 프로그램 명령에 대한 데이터와 주소를 상기 내부 데이터 레지스터와 상기 내부 주소 레지스터에 복원하도록 구성되는
    물리적 NAND 플래시 메모리 논리 유닛.
  11. 제 10 항에 있어서,
    상기 판독 명령은 제1 판독 명령이고, 상기 명령 회로는,
    d) 상기 명령 회로가 제2 판독 명령이 인프로세스 소거 명령을 인터럽트하여야 한다고 결정하면, 상기 인프로세스 소거 명령의 상태를 적어도 상기 백업 주소 레지스터에 백업하고,
    e) 상기 복수의 메모리 셀 상에서 상기 인터럽트하는 제2 판독 명령에 의해 지정되는 판독을 수행하기 위해 상기 인터럽트하는 제2 판독 명령에 대한 주소를 상기 내부 주소 레지스터에 제공하며,
    f) 상기 인터럽트하는 제2 판독 명령이 완료된 후 소정 시점에서, 상기 소거 명령의 추가 처리를 위해 상기 인프로세스 소거 명령의 상기 상태를 적어도 상기 내부 주소 레지스터에 복원하도록 더 구성되는
    물리적 NAND 플래시 메모리 논리 유닛.
  12. 제 1 항에 있어서,
    상기 보조 데이터 레지스터는 백업 데이터 레지스터이고, 상기 보조 주소 레지스터는 백업 주소 레지스터이며,
    상기 명령 회로는
    a) 상기 명령 회로가 판독 명령이 인프로세스 소거 명령을 인터럽트하여야 한다고 결정하면, 상기 인프로세스 소거 명령의 상태를 적어도 상기 백업 주소 레지스터에 백업하고,
    b) 상기 복수의 메모리 셀 상에서 상기 인터럽트하는 판독 명령에 의해 지정되는 판독을 수행하기 위해 상기 인터럽트하는 판독 명령에 대한 주소를 상기 내부 주소 레지스터에 제공하며,
    c) 상기 인터럽트하는 판독 명령이 완료된 후 소정 시점에서, 상기 소거 명령의 추가 처리를 위해 상기 인프로세스 소거 명령의 상기 상태를 적어도 상기 내부 주소 레지스터에 복원하도록 구성되는
    물리적 NAND 플래시 메모리 논리 유닛.
  13. 제 12 항에 있어서,
    상기 인프로세스 소거 명령에 대응하는 소거 동작은 타이머를 사용하여 수행되고,
    상기 명령 회로는 상기 인프로세스 소거 명령의 상태가 상기 백업 주소 레지스터에 백업되는 경우 상기 타이머를 중지하도록 구성되고, 또한 상기 소거 명령의 추가 처리를 위해 상기 인프로세스 소거 명령의 상태가 상기 내부 주소 레지스터에 복원되는 경우 상기 타이머를 재개하도록 구성된
    물리적 NAND 플래시 메모리 논리 유닛.
  14. 제 12 항에 있어서,
    상기 인프로세스 소거 명령에 대응하는 소거 동작은 하나 이상의 검증 단계를 사용하여 수행되고,
    상기 명령 회로는, 상기 소거 동작의 검증 단계 이전에만, 그 동안에만, 또는 그 이후에만 판독 명령이 상기 인프로세스 소거 명령을 인터럽트하는 방식으로 상기 판독 명령이 상기 인프로세스 소거 명령을 인터럽트하여야 한다고 결정하는
    물리적 NAND 플래시 메모리 논리 유닛.
  15. 제 12 항에 있어서,
    상기 명령 회로는, 상기 인프로세스 소거 명령에 대응하는 소거 동작에서 지정된 시간의 양보다 많은 시간이 남아 있으면, 판독 명령이 상기 인프로세스 소거 명령을 인터럽트하여야 한다고 결정하는
    물리적 NAND 플래시 메모리 논리 유닛.
  16. 제 1 항에 있어서,
    상기 복수의 메모리 셀의 각각은 다수 비트(multiple bit) 메모리 셀인
    물리적 NAND 플래시 메모리 논리 유닛.
  17. 제 1 항에 있어서,
    상기 복수의 명령은 ONFI 프로토콜과 호환가능한 명령만을 포함하는
    물리적 NAND 플래시 메모리 논리 유닛.
  18. 제 1 항에 있어서,
    상기 복수의 명령은 ONFI 프로토콜 버전 1.0, 2.0 또는 2.1과 호환가능한 명령만을 포함하는
    물리적 NAND 플래시 메모리 논리 유닛.
  19. 물리적 NAND 플래시 논리 유닛의 제어 회로를 동작시키는 방법으로서,
    프로그램 명령과 연관된 데이터를 외부 데이터 레지스터에 위치시키고 상기 프로그램 명령과 연관된 주소를 외부 주소 레지스터에 위치시킴으로써 상기 프로그램 명령을 수신하는 동작과,
    내부 데이터 레지스터와 내부 주소 레지스터가 상기 프로그램 명령을 수신할 준비가 되었다는 준비상태(readiness)를 확인하는 동작과,
    상기 준비상태를 확인한 동작에 응답하여, 상기 프로그램 명령과 연관된 데이터를 내부 데이터 레지스터에 제공하고, 상기 프로그램 명령과 연관된 주소를 내부 주소 레지스터에 제공함으로써, 상기 프로그램 명령을 상기 내부 데이터 레지스터와 상기 내부 주소 레지스터에 제공하는 동작과,
    상기 프로그램 명령을 상기 내부 데이터 레지스터와 상기 내부 주소 레지스터에 제공하는 동작 후에, 상기 프로그램 명령과 연관된 주소에 의해 어드레스되는 복수의 메모리 셀 중 일부 메모리 셀 상에서 상기 프로그램 명령의 처리를 개시하는 동작과,
    상기 프로그램 명령을 처리하면서, 상기 외부 주소 레지스터로 수신된 판독 명령이 상기 프로그램 명령의 처리를 인터럽트하여야 하는지 판정하는 동작과,
    보조 데이터 레지스터와 보조 주소 레지스터를 사용하여, 상기 프로그램 명령 및 상기 판독 명령의 대응하는 데이터 및 대응하는 주소를 각각 저장할 수 있게 하고 또한 상기 프로그램 명령의 처리를 인터럽트하는 동작과,
    상기 복수의 메모리 셀 상에서 상기 판독 명령을 처리하는 동작과,
    상기 판독 명령을 처리한 후에, 상기 보조 데이터 레지스터 및 보조 주소 레지스터를 사용하여 다른 판독 명령 또는 상기 인터럽트된 프로그램 명령을 처리함으로써 상기 프로그램 명령의 처리를 재개하는 동작
    을 포함하는 제어 회로를 동작시키는 방법.
  20. 제 19 항에 있어서,
    상기 보조 데이터 레지스터와 보조 주소 레지스터를 사용하여 상기 프로그램 명령의 처리를 인터럽트하는 동작은
    상기 프로그램 명령과 연관된 데이터를 상기 내부 데이터 레지스터로부터 상기 보조 데이터 레지스터에 백업하는 동작과,
    상기 프로그램 명령과 연관된 주소를 상기 내부 주소 레지스터로부터 상기 보조 주소 레지스터에 백업하는 동작과,
    상기 백업하는 동작들에 후속하여, 상기 판독 명령과 연관된 주소를 상기 외부 주소 레지스터로부터 상기 내부 주소 레지스터로 제공하는 동작을 포함하고,
    상기 판독 명령을 처리하는 동작은
    상기 판독 명령과 연관된 주소에 의해 어드레스되는 상기 복수의 메모리 셀 중 일부 메모리 셀의 내용을 상기 내부 데이터 레지스터로(into) 판독하는 동작과,
    판독된 데이터를 상기 내부 데이터 레지스터로부터 상기 외부 데이터 레지스터로 제공하는 동작을 포함하고,
    상기 프로그램 명령의 처리를 재개하는 동작은
    상기 프로그램 명령과 연관되는 데이터를 상기 보조 데이터 레지스터로부터 상기 내부 데이터 레지스터로 제공하는 동작과,
    상기 프로그램 명령과 연관되는 주소를 상기 보조 주소 레지스터로부터 상기 내부 주소 레지스터로 제공하는 동작을 포함하는
    제어 회로를 동작시키는 방법.
  21. 제 19 항에 있어서,
    상기 보조 데이터 레지스터와 보조 주소 레지스터를 사용하여 상기 프로그램 명령의 처리를 인터럽트하는 동작은
    상기 판독 명령과 연관된 주소를 상기 외부 주소 레지스터로부터 상기 보조 주소 레지스터로 제공하는 동작과,
    프로그램 동작이 중지되도록 상기 내부 데이터 레지스터와 상기 내부 주소 레지스터를 디스에이블하는 동작을 포함하고,
    상기 판독 명령을 처리하는 동작은
    상기 판독 명령과 연관된 주소에 의해 어드레스되는 상기 복수의 메모리 셀 중 일부 메모리 셀의 내용이 상기 보조 데이터 레지스터로(into) 판독되도록 상기 보조 데이터 레지스터와 상기 보조 주소 레지스터를 인에이블하는 동작과,
    판독된 데이터를 상기 보조 데이터 레지스터로부터 상기 외부 데이터 레지스터로 제공하는 동작을 포함하고,
    상기 프로그램 명령의 처리를 재개하는 동작은
    상기 보조 데이터 레지스터와 상기 보조 주소 레지스터를 디스에이블하는 동작과,
    상기 프로그램 명령이 재개되도록 상기 내부 데이터 레지스터와 상기 내부 주소 레지스터를 인에이블하는 동작을 포함하는
    제어 회로를 동작시키는 방법.
  22. 물리적 NAND 플래시 메모리 논리 유닛으로서,
    복수의 메모리 셀과,
    상기 복수의 메모리 셀을 대상으로 한 복수의 명령에 응답하도록 구성된 제어 회로와,
    상기 복수의 명령을 상기 제어 회로에 제공하기 위해 상기 제어 회로에 통신가능하게 결합된 통신 버스 인터페이스- 상기 제어 회로는 복수의 레지스터를 포함하고,
    상기 복수의 레지스터는,
    a) 활성 판독 명령(active read command)에 대한 판독 데이터를 수신하거나 활성 프로그램 명령의 데이터를 어서트(assert)하기 위한 내부 데이터 레지스터와,
    b) 활성 판독, 프로그램 또는 소거 명령의 실행시 상기 복수의 메모리 셀의 부분집합을 어드레싱하기 위한 내부 주소 레지스터와,
    c) 상기 통신 버스 인터페이스로부터 명령과 연관된 데이터를 수신하기 위한 외부 데이터 레지스터와,
    d) 상기 통신 버스 인터페이스로부터 명령과 연관된 주소를 수신하기 위한 외부 주소 레지스터와,
    e) 활성 명령의 중지를 용이하게 하기 위한 보조 데이터 레지스터와,
    f) 활성 명령의 중지를 용이하게 하기 위한 보조 주소 레지스터
    를 포함하고,
    상기 내부 데이터 레지스터 및 상기 내부 주소 레지스터와 상기 보조 데이터 레지스터 및 상기 보조 주소 레지스터는 인터럽트된 명령과 인터럽트하는 명령 모두에 대응하는 데이터를 포함하기 위해 동시에 사용되고,
    상기 내부 데이터 레지스터는 제1 내부 데이터 레지스터이고, 상기 내부 주소 레지스터는 제1 내부 주소 레지스터이며, 상기 제1 내부 데이터 레지스터와 상기 제1 내부 주소 레지스터는 비판독 명령에 전용되고,
    상기 보조 데이터 레지스터는 제2 내부 데이터 레지스터이고, 상기 보조 주소 레지스터는 제2 내부 주소 레지스터이며, 상기 제2 내부 데이터 레지스터와 상기 제2 내부 주소 레지스터는 판독 명령에 전용되고,
    상기 제2 내부 데이터 레지스터는 활성 프로그램 명령의 데이터를 어서트하기 위한 것이 아니라, 활성 판독 명령에 대한 판독 데이터를 수신하기 위한 것이고,
    상기 제2 내부 주소 레지스터는 활성 프로그램 또는 소거 명령이 아니라, 활성 판독 명령의 실행시 상기 복수의 메모리 셀의 부분집합을 어드레싱하기 위한 것임 -와,
    상기 복수의 레지스터를 제어함으로써 명령들에 응답하는 명령 회로
    를 포함하는 물리적 NAND 플래시 메모리 논리 유닛.
  23. 제22항에 있어서,
    상기 보조 데이터 레지스터는 백업 데이터 레지스터이고, 상기 보조 주소 레지스터는 백업 주소 레지스터이며,
    상기 명령 회로는
    a) 상기 명령 회로가 판독 명령이 인프로세스 프로그램 명령을 인터럽트하여야 한다고 결정하면, 상기 인프로세스 프로그램 명령의 데이터 및 주소 상태를 상기 내부 데이터 레지스터 및 내부 주소 레지스터로부터 상기 백업 데이터 레지스터 및 상기 백업 주소 레지스터에 백업하고,
    b) 상기 복수의 메모리 셀 상에서 상기 인터럽트하는 판독 명령에 의해 지정된 판독을 수행하기 위해 상기 인터럽트하는 판독 명령에 대한 주소를 상기 내부 주소 레지스터에 제공하며,
    c) 상기 인터럽트하는 판독 명령이 완료된 이후의 소정의 시점에서, 상기 프로그램 명령의 추가적인 처리를 위해 상기 인프로세스 프로그램 명령에 대한 데이터 및 주소를 상기 내부 데이터 레지스터 및 상기 내부 주소 레지스터로 복원하도록 구성된
    물리적 NAND 플래시 메모리 논리 유닛.
KR1020127004977A 2009-08-28 2010-08-06 인터럽트 가능한 낸드 플래시 메모리 KR101702158B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/549,897 2009-08-28
US12/549,897 US8850103B2 (en) 2009-08-28 2009-08-28 Interruptible NAND flash memory
PCT/US2010/044785 WO2011031398A2 (en) 2009-08-28 2010-08-06 Interruptible nand flash memory

Publications (2)

Publication Number Publication Date
KR20120092561A KR20120092561A (ko) 2012-08-21
KR101702158B1 true KR101702158B1 (ko) 2017-02-02

Family

ID=43626518

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020127004977A KR101702158B1 (ko) 2009-08-28 2010-08-06 인터럽트 가능한 낸드 플래시 메모리

Country Status (9)

Country Link
US (1) US8850103B2 (ko)
EP (1) EP2471067B1 (ko)
JP (1) JP5529275B2 (ko)
KR (1) KR101702158B1 (ko)
CN (1) CN102483951B (ko)
AU (1) AU2010292898B2 (ko)
CA (1) CA2768212C (ko)
MX (1) MX2012002118A (ko)
WO (1) WO2011031398A2 (ko)

Families Citing this family (68)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010143209A1 (en) * 2009-06-10 2010-12-16 Francesco Falanga Suspension of memory operations for reduced read latency in memory arrays
US8131889B2 (en) 2009-11-10 2012-03-06 Apple Inc. Command queue for peripheral component
JP5441216B2 (ja) * 2010-02-24 2014-03-12 ルネサスエレクトロニクス株式会社 半導体装置及びデータ処理システム
US10445226B2 (en) * 2010-08-10 2019-10-15 Rambus Inc. Verify before program resume for memory devices
JP5378326B2 (ja) 2010-08-17 2013-12-25 株式会社東芝 不揮発性半導体記憶装置とその制御方法
US8819328B2 (en) * 2010-12-30 2014-08-26 Sandisk Technologies Inc. Controller and method for performing background operations
US8364888B2 (en) * 2011-02-03 2013-01-29 Stec, Inc. Erase-suspend system and method
US8543758B2 (en) * 2011-05-31 2013-09-24 Micron Technology, Inc. Apparatus including memory channel control circuit and related methods for relaying commands to logical units
US9021146B2 (en) 2011-08-30 2015-04-28 Apple Inc. High priority command queue for peripheral component
US20130179614A1 (en) * 2012-01-10 2013-07-11 Diarmuid P. Ross Command Abort to Reduce Latency in Flash Memory Access
US8918680B2 (en) 2012-01-23 2014-12-23 Apple Inc. Trace queue for peripheral component
US20130318285A1 (en) * 2012-05-23 2013-11-28 Violin Memory Inc Flash memory controller
US9740485B2 (en) 2012-10-26 2017-08-22 Micron Technology, Inc. Apparatuses and methods for memory operations having variable latencies
US9754648B2 (en) 2012-10-26 2017-09-05 Micron Technology, Inc. Apparatuses and methods for memory operations having variable latencies
CN103809717B (zh) * 2012-11-09 2017-04-12 华为技术有限公司 复位方法和网络设备
US9813080B1 (en) 2013-03-05 2017-11-07 Microsemi Solutions (U.S.), Inc. Layer specific LDPC decoder
US10230396B1 (en) 2013-03-05 2019-03-12 Microsemi Solutions (Us), Inc. Method and apparatus for layer-specific LDPC decoding
US9734097B2 (en) 2013-03-15 2017-08-15 Micron Technology, Inc. Apparatuses and methods for variable latency memory operations
KR20150008671A (ko) * 2013-07-15 2015-01-23 에스케이하이닉스 주식회사 반도체 장치
US9727493B2 (en) 2013-08-14 2017-08-08 Micron Technology, Inc. Apparatuses and methods for providing data to a configurable storage area
US9400745B2 (en) 2013-11-06 2016-07-26 International Business Machines Corporation Physical address management in solid state memory
KR102226367B1 (ko) * 2014-01-02 2021-03-12 삼성전자주식회사 불휘발성 메모리 장치 및 그것을 포함하는 불휘발성 메모리 시스템
KR102187637B1 (ko) 2014-02-03 2020-12-07 삼성전자주식회사 불휘발성 메모리 장치를 포함하는 메모리 시스템 및 그것의 소거 방법
KR102203298B1 (ko) * 2014-08-01 2021-01-15 삼성전자주식회사 비휘발성 메모리 장치 및 비휘발성 메모리 장치의 구동 방법
US9214045B1 (en) 2014-08-29 2015-12-15 Freescale Semiconductor, Inc. Flash memory express erase and program
CN106158026A (zh) * 2015-04-09 2016-11-23 旺宏电子股份有限公司 存储装置与其操作方法
TWI582775B (zh) * 2015-04-14 2017-05-11 旺宏電子股份有限公司 記憶體裝置與其操作方法
CN106067321B (zh) * 2015-04-21 2020-09-15 爱思开海力士有限公司 适于存储器编程暂停-恢复的控制器
US10332613B1 (en) 2015-05-18 2019-06-25 Microsemi Solutions (Us), Inc. Nonvolatile memory system with retention monitor
US9799405B1 (en) 2015-07-29 2017-10-24 Ip Gem Group, Llc Nonvolatile memory system with read circuit for performing reads using threshold voltage shift read instruction
US10318193B2 (en) * 2015-09-14 2019-06-11 Sandisk Technologies Llc Systems and methods of command authorization
KR102314137B1 (ko) * 2015-11-04 2021-10-18 삼성전자 주식회사 리커버리 동작을 선택적으로 수행하는 불휘발성 메모리 장치 및 그 동작방법
US9886214B2 (en) 2015-12-11 2018-02-06 Ip Gem Group, Llc Nonvolatile memory system with erase suspend circuit and method for erase suspend management
US9892794B2 (en) 2016-01-04 2018-02-13 Ip Gem Group, Llc Method and apparatus with program suspend using test mode
US9899092B2 (en) 2016-01-27 2018-02-20 Ip Gem Group, Llc Nonvolatile memory system with program step manager and method for program step management
US10203884B2 (en) * 2016-03-30 2019-02-12 Intel Corporation Methods and apparatus to perform erase-suspend operations in memory devices
KR102624606B1 (ko) * 2016-07-04 2024-01-15 에스케이하이닉스 주식회사 반도체 메모리 장치 및 그 동작 방법
US10291263B2 (en) 2016-07-28 2019-05-14 Ip Gem Group, Llc Auto-learning log likelihood ratio
US10283215B2 (en) 2016-07-28 2019-05-07 Ip Gem Group, Llc Nonvolatile memory system with background reference positioning and local reference positioning
US10236915B2 (en) 2016-07-29 2019-03-19 Microsemi Solutions (U.S.), Inc. Variable T BCH encoding
JP2018045741A (ja) * 2016-09-12 2018-03-22 東芝メモリ株式会社 半導体記憶装置及びメモリシステム
CN106708441B (zh) * 2016-12-29 2019-06-21 至誉科技(武汉)有限公司 一种用于降低固态存储读延迟的操作方法
CN106775503A (zh) * 2017-02-23 2017-05-31 郑州云海信息技术有限公司 一种执行操作指令的方法及装置
JP2018156698A (ja) * 2017-03-15 2018-10-04 東芝メモリ株式会社 メモリシステム
TWI696078B (zh) 2017-05-26 2020-06-11 旺宏電子股份有限公司 記憶體裝置及其操作方法
KR102631353B1 (ko) * 2017-08-17 2024-01-31 삼성전자주식회사 비휘발성 메모리 장치 및 이의 동작 방법
KR102420161B1 (ko) * 2017-12-01 2022-07-12 삼성전자주식회사 메모리 컨트롤러 및 그것의 제어 방법
TWI667657B (zh) * 2017-12-14 2019-08-01 旺宏電子股份有限公司 記憶體裝置及其操作方法
US10566062B2 (en) 2017-12-14 2020-02-18 Macronix International Co., Ltd. Memory device and method for operating the same
CN109935252B (zh) * 2017-12-15 2021-03-30 旺宏电子股份有限公司 存储器装置及其操作方法
KR20190088293A (ko) * 2018-01-18 2019-07-26 에스케이하이닉스 주식회사 메모리 장치 및 그 동작 방법
KR102608825B1 (ko) * 2018-04-26 2023-12-04 에스케이하이닉스 주식회사 메모리 컨트롤러 및 이의 동작 방법
US10802756B1 (en) 2018-07-12 2020-10-13 Seagate Technology Llc Flash queue status polling
CN109407991B (zh) * 2018-10-22 2022-06-07 湖南国科微电子股份有限公司 一种非易失性闪存执行命令的暂停及恢复方法、非易失性闪存及电子设备
KR20200057311A (ko) 2018-11-16 2020-05-26 삼성전자주식회사 통신되는 데이터의 양을 동작의 중단 빈도에 따라 스로틀링하는 스토리지 장치
JP7159069B2 (ja) 2019-01-29 2022-10-24 キオクシア株式会社 メモリシステムおよび制御方法
KR20200126609A (ko) 2019-04-30 2020-11-09 삼성전자주식회사 비휘발성 메모리 장치 및 그 프로그래밍 방법
US11164640B2 (en) 2019-04-30 2021-11-02 Samsung Electronics Co., Ltd. Non-volatile memory device and programming method thereof
US11901012B2 (en) 2019-04-30 2024-02-13 Samsung Electronics Co., Ltd. Non-volatile memory device and programming method thereof
US11061578B2 (en) * 2019-08-05 2021-07-13 Micron Technology, Inc. Monitoring flash memory erase progress using erase credits
KR20210057355A (ko) 2019-11-12 2021-05-21 에스케이하이닉스 주식회사 메모리 장치, 메모리 컨트롤러, 메모리 시스템 및 그 동작 방법
FR3104285B1 (fr) * 2019-12-05 2022-05-27 St Microelectronics Grenoble 2 Contrôle d’intégrité d’une mémoire
US11081187B2 (en) * 2019-12-11 2021-08-03 SanDiskTechnologies LLC Erase suspend scheme in a storage device
US11137936B2 (en) * 2020-01-21 2021-10-05 Google Llc Data processing on memory controller
KR20210155467A (ko) 2020-06-16 2021-12-23 에스케이하이닉스 주식회사 메모리 시스템, 메모리 컨트롤러 및 메모리 시스템의 동작 방법
US11625297B2 (en) 2020-08-28 2023-04-11 Samsung Electronics Co., Ltd. Storage device and operating method thereof
US11604732B1 (en) * 2021-09-02 2023-03-14 Micron Technology, Inc. Memory performance during program suspend protocol
CN115658570B (zh) * 2022-12-14 2023-03-21 杰创智能科技股份有限公司 闪存编程方法和闪存接口电路

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5034922A (en) 1987-12-21 1991-07-23 Motorola, Inc. Intelligent electrically erasable, programmable read-only memory with improved read latency
US5509134A (en) 1993-06-30 1996-04-16 Intel Corporation Method and apparatus for execution of operations in a flash memory array
US5559988A (en) 1993-12-30 1996-09-24 Intel Corporation Method and circuitry for queuing snooping, prioritizing and suspending commands
US8004884B2 (en) 2009-07-31 2011-08-23 International Business Machines Corporation Iterative write pausing techniques to improve read latency of memory systems

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07181195A (ja) 1993-12-24 1995-07-21 Kobe Steel Ltd 溶融金属用電磁流速センサ及び流速測定装置並びにそれを用いた流速測定方法
JPH07254292A (ja) * 1994-03-15 1995-10-03 Mitsubishi Electric Corp 不揮発性メモリおよびこの不揮発性メモリを用いたマイクロコンピュータ
US6201739B1 (en) * 1996-09-20 2001-03-13 Intel Corporation Nonvolatile writeable memory with preemption pin
GB2317721B (en) * 1996-09-30 2001-09-12 Nokia Mobile Phones Ltd Memory device
US5847998A (en) 1996-12-20 1998-12-08 Advanced Micro Devices, Inc. Non-volatile memory array that enables simultaneous read and write operations
US5822244A (en) 1997-09-24 1998-10-13 Motorola, Inc. Method and apparatus for suspending a program/erase operation in a flash memory
JP3525070B2 (ja) 1999-01-27 2004-05-10 松下電器産業株式会社 アクセス制御装置及びアクセス方法
US6851026B1 (en) 2000-07-28 2005-02-01 Micron Technology, Inc. Synchronous flash memory with concurrent write and read operation
JP4004811B2 (ja) * 2002-02-06 2007-11-07 株式会社東芝 不揮発性半導体記憶装置
US7062615B2 (en) * 2003-08-29 2006-06-13 Emulex Design & Manufacturing Corporation Multi-channel memory access arbitration method and system
ITMI20050063A1 (it) * 2005-01-20 2006-07-21 Atmel Corp Metodo e sistema per la gestione di una richiesta di sospensione in una memoria flash
US8200887B2 (en) 2007-03-29 2012-06-12 Violin Memory, Inc. Memory management system and method
US7562180B2 (en) 2006-03-28 2009-07-14 Nokia Corporation Method and device for reduced read latency of non-volatile memory

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5034922A (en) 1987-12-21 1991-07-23 Motorola, Inc. Intelligent electrically erasable, programmable read-only memory with improved read latency
US5509134A (en) 1993-06-30 1996-04-16 Intel Corporation Method and apparatus for execution of operations in a flash memory array
US5559988A (en) 1993-12-30 1996-09-24 Intel Corporation Method and circuitry for queuing snooping, prioritizing and suspending commands
US8004884B2 (en) 2009-07-31 2011-08-23 International Business Machines Corporation Iterative write pausing techniques to improve read latency of memory systems

Also Published As

Publication number Publication date
CN102483951B (zh) 2015-04-29
JP2013503412A (ja) 2013-01-31
CN102483951A (zh) 2012-05-30
WO2011031398A2 (en) 2011-03-17
JP5529275B2 (ja) 2014-06-25
KR20120092561A (ko) 2012-08-21
EP2471067A2 (en) 2012-07-04
CA2768212C (en) 2016-09-13
EP2471067B1 (en) 2021-09-15
AU2010292898B2 (en) 2014-06-05
CA2768212A1 (en) 2011-03-17
US20110055453A1 (en) 2011-03-03
WO2011031398A3 (en) 2011-05-05
AU2010292898A1 (en) 2012-02-16
US8850103B2 (en) 2014-09-30
MX2012002118A (es) 2012-03-07
EP2471067A4 (en) 2013-08-07

Similar Documents

Publication Publication Date Title
KR101702158B1 (ko) 인터럽트 가능한 낸드 플래시 메모리
US8438356B2 (en) Flash memory controller
US9495101B2 (en) Methods for balancing write operations of SLC blocks in different memory areas and apparatus implementing the same
US7821837B2 (en) Reprogrammable nonvolatile memory devices and methods
US9021158B2 (en) Program suspend/resume for memory
JP6081878B2 (ja) 不揮発性メモリに関する保持ロジック
US20120113733A1 (en) Nonvolatile Memory Devices With On Die Termination Circuits And Control Methods Thereof
TWI506424B (zh) 可使用一主機以組態記憶體裝置執行一自動背景操作之方法及記憶體裝置
US9564222B2 (en) Command signal management in integrated circuit devices
US20220319612A1 (en) Systems and methods involving hardware-based reset of unresponsive memory devices
CN111627482A (zh) 非易失性存储装置中的程序挂起-恢复技术
TWI727857B (zh) 用於記憶體的程序暫停和恢復的控制方法與控制器
TWI833518B (zh) 記憶體裝置、系統及用於操作包括記憶胞陣列的記憶體裝置的方法
CN109254723B (zh) 非易失性存储器中的存储器扇区注销的方法和系统
KR20230097169A (ko) 메모리 시스템의 전력 관리
WO2021247105A1 (en) Environment-based erase voltage for improved erase time
TW202029207A (zh) 半導體儲存裝置

Legal Events

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

Payment date: 20200103

Year of fee payment: 4