KR20050101160A - 비휘발성 메모리 내의 결함에 대한 존 경계 조정 - Google Patents

비휘발성 메모리 내의 결함에 대한 존 경계 조정 Download PDF

Info

Publication number
KR20050101160A
KR20050101160A KR1020057010359A KR20057010359A KR20050101160A KR 20050101160 A KR20050101160 A KR 20050101160A KR 1020057010359 A KR1020057010359 A KR 1020057010359A KR 20057010359 A KR20057010359 A KR 20057010359A KR 20050101160 A KR20050101160 A KR 20050101160A
Authority
KR
South Korea
Prior art keywords
blocks
memory
controller
memory system
zones
Prior art date
Application number
KR1020057010359A
Other languages
English (en)
Other versions
KR100992583B1 (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
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=32468705&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=KR20050101160(A) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by 쌘디스크 코포레이션 filed Critical 쌘디스크 코포레이션
Publication of KR20050101160A publication Critical patent/KR20050101160A/ko
Application granted granted Critical
Publication of KR100992583B1 publication Critical patent/KR100992583B1/ko

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/70Masking faults in memories by using spares or by reconfiguring
    • G11C29/76Masking faults in memories by using spares or by reconfiguring using address translation or modifications
    • 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
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/38Response verification devices
    • G11C29/42Response verification devices using error correcting codes [ECC] or parity check
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/44Indication or identification of errors, e.g. for repair
    • G11C29/4401Indication or identification of errors, e.g. for repair for self repair
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/70Masking faults in memories by using spares or by reconfiguring
    • G11C29/78Masking faults in memories by using spares or by reconfiguring using programmable devices
    • G11C29/80Masking faults in memories by using spares or by reconfiguring using programmable devices with improved layout
    • G11C29/808Masking faults in memories by using spares or by reconfiguring using programmable devices with improved layout using a flexible replacement scheme
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Read Only Memory (AREA)
  • For Increasing The Reliability Of Semiconductor Memories (AREA)
  • Credit Cards Or The Like (AREA)
  • Transforming Light Signals Into Electric Signals (AREA)
  • Semiconductor Integrated Circuits (AREA)

Abstract

비휘발성 메모리는 카드 제어기에 의해 논리적 존들로 분할되어 어드레스 변환에 사용되는 데이터 구조의 크기를 감소시킨다. 존 경계는 메모리 테스트에 의해 허용되는 결함을 수용하도록 조정되어 카드 수율을 개선시키고 필드 내의 경계를 조정하여 카드의 사용가능한 수명시간을 확장시킨다. 펌웨어는 카드상의 결함 블록의 존재에 대해서 주사된다. 이들 블록의 위치가 공지되면, 펌웨어는 양호한 블록을 존들 간에 동일하게 분포시키는 방식으로 존 경계를 계산한다. 양호한 블록의 수가 메모리 테스트 기준에 의해 카드 테스트 기준에 부합하기 때문에, 카드 수율에 악영향을 미치는 결함이 감소될 것이다. 제어기는 동적 경계 조정을 수행할 수 있다. 결함이 발생될 때, 제어기는 분석을 다시 수행할 수 있고, 필요한 경우 존 경계를 재분포시켜 임의의 사용자 데이터를 이동시킨다.

Description

비휘발성 메모리 내의 결함에 대한 존 경계 조정{ZONE BOUNDARY ADJUSTMENT FOR DEFECTS IN NON-VOLATILE MEMORIES}
본 발명은 반도체 비휘발성 데이터 저장 시스템 아키텍쳐들의 분야 및 이들의 동작 방법에 관한 것이고, 플래시 전기적 소거 및 프로그램가능한 판독 전용 메모리(EEPROMs)를 토대로 한 데이터 저장 시스템에 적용된다.
플래시 EEPROM 장치는 통상적으로 전자 장치용 대량 데이터 저장 서브시스템으로서 적용된다. 이와 같은 서브시스템은 통상적으로, 다수의 호스트 시스템 내에 삽입될 수 있는 제거가능한 메모리 카드 또는 호스트 시스템 내에 임베드된 제거할 수 없는 저장장치중 어느 하나로 구현될 수 있다. 이 2가지 구현방식에서, 서브시스템은 하나 이상의 플래시 장치 및 종종 서브시스템 제어기를 포함한다.
플래시 EEPROM 장치는 트랜지스터 셀들의 하나 이상의 어레이들로 이루어지며, 각 셀은 하나 이상의 데이터 비트들을 비휘발성 저장할 수 있다. 따라서, 플래시 메모리는 그 내에 프로그램된 데이터를 유지하는데 전력을 필요로 하지 않는다. 그러나, 일단 프로그램되면, 셀은 새로운 데이터 값으로 재프로그램될 수 있기 전 소거되어야 만 된다. 이들 셀들의 어레이들은 그룹들로 분할되어 판독, 프로그램 및 소거 기능들을 효율적으로 실행한다. 대량 저장을 위한 전형적인 플래시 메모리 아키텍쳐는 셀들의 많은 그룹들을 소거가능한 블록들로 배열하는 것인데, 여기서 한 블록은 한번에 소거될 수 있는 최소 수의 셀들(소거 단위)을 포함한다.
한가지 상업적인 형태에서, 각 블록은 충분한 셀들을 포함하여 사용자 데이터의 한 섹터와 더불어 이 사용자 데이터 및 이를 저장하는 블록과 관련된 어떤 오버헤드 데이터를 저장한다. 한 섹터 내에 포함되는 사용자 데이터 량은 한 가지 부류의 이와 같은 메모리 시스템들에서 표준 512 바이트 이지만, 어떤 다른 크기로 이루어질 수 있다. 셀들을 개별적으로 소거하도록 하기 위하여 셀들의 개개 블록들을 서로 격리시키는 것은 집적 회로 칩상에서 공간을 차지하기 때문에, 또 다른 부류의 플래시 메모리는 블록들을 상당히 크게 만듬으로써 이와 같은 격리를 위해 필요로 되는 공간을 덜 들게 한다. 그러나, 이는 또한 훨씬 적은 섹터들에서 사용자 데이터를 취급하는 것이 바람직하기 때문에, 각각의 큰 블록은 종종 사용자 데이터를 판독 및 프로그래밍하기 위한 기본 단위인 개별적으로 어드레스가능한 페이지로 분할된다. 각 페이지는 통상적으로 사용자 데이터의 한 섹터를 저장하지만, 페이지는 부분 섹터 또는 다수의 섹터들을 저장할 수 있다. 본원에 사용된 "섹터"는 단위로서 호스트로 및 이 호스트로부터 전달되는 사용자 데이터 량을 지칭한다.
대형 블록 시스템 내의 서브시스템 제어기는 호스트로부터 메모리 서브시스템에 의해 수신되는 논리적 어드레스들(LBAs) 및 이 메모리 셀 어레이 내의 물리적 블록 번호들(PBNs)과 페이지 어드레스들 간의 변환을 포함한 다수의 기능들을 수행한다. 이 변환은 종종 논리적 블록 번호(LBN) 및 논리적 페이지를 위한 중간 항들을 사용하는 것을 포함한다. 제어기는 또한 인터페이스 버스를 통해서 플래시 메모리 장치로 발부되는 일련의 명령들을 이용하여 저레벨 플래시 회로 동작을 관리한다. 제어기가 수행하는 또 다른 기능은 각종 수단, 가령 에렁 정정 코드(ECC)를 사용함으로써 서브시스템에 저장되는 데이터의 무결성(integrity)을 유지시키는 것이다.
도1은 플래시 메모리 장치(131)를 위한 전형적인 내부 아키텍쳐를 도시한 것이다. 주요한 특징은 외부 제어기에 인터페이스 시키는 입력/출력(I/O) 버스(411) 및 제어 신호들(412), 명령, 어드레스 및 상태 신호들용 레지스터로 내부 메모리 동작들을 제어하는 메모리 제어 회로(450)를 포함한다. 플래시 EEPROM 셀들의 하나 이상의 어레이들(400)이 포함되는데, 각 어레이는 자신의 로우 디코더(XDEC)(401) 및 칼럼 디코더(YDEC)(402), 감지 증폭기들의 그룹 및 프로그램 제어 회로(SA/PROG)(454)와 데이터 레지스터(404)를 갖는다. 현재, 메모리 셀들은 통상적으로 저장 소자들로서 하나 이상의 도전성 플로우팅 게이트들을 포함하지 만, 이외 다른 장기간 전하 저장 소자들이 이 대신에 사용될 수 있다. 메모리 셀 어레이는 각 저장 소자를 위하여 규정된 2 레벨들의 전하로 동작되어 각 소자에 하나의 데이터 비트를 저장시킨다. 대안적으로, 2개 이상의 저장 상태들은 각 저장 소자를 위하여 규정될 수 있는데, 이 경우에 하나 이상의 데이터 비트가 각 소자에 저장된다.
바람직한 경우, 관련된 X 디코더들, Y 디코더들, 프로그램/입증된 회로, 데이터 레지스터들 등과 함께 다수의 어레이들(400)은 예를 들어 1990년 3월 30일에 허여되어 이 출원의 양수인 인 SanDisk 사에 양도된 미국 특허 제5,890,192호에 개시된 바와 같이 제공되는데, 이 출원이 본원에 참조되어 있다. 관련된 메모리 시스템 특징들은 Kevin Conley 등이 2000년 2월 17일에 출원한 공동-계류중인 특허 출원 09/505,555에 개시되어 있는데, 이 출원이 본원에 참조되어 있다.
외부 인터페이스 I/O 버스(411) 및 제어 신호들(412)은 다음을 포함한다.
CS-칩 선택: 플래시 메모리 인터페이스를 활성화시키기 위하여 사용됨
RS-판독 스트로브: I/O 버스가 메모리 어레이로부터 데이터를 전달하기 위하여 사용된다는 것을 나타내기 위하여 사용됨.
WS-기록 스트로브: I/O 버스가 메모리 어레이로 데이터를 전달하기 위하여 사용된다는 것을 나타내기 위하여 사용됨.
AS-어드레스 스트로브: I/O 버스가 어드레스 정보를 전달하기 위하여 사용된다는 것을 나타냄.
AD[7:0]-어드레스/데이터 버스: 이 I/O 버스는 제어기와, 메모리 제어(450)의 플래시 메모리 명령, 어드레스 및 데이터 레지스터들 간에 데이터를 전달하는데 사용됨.
이들 신호들 이외에도, 메모리는 통상적으로, 자신이 어떤 작업을 수행하고 있는중 이라는 것을 저장 서브시스템 제어기가 결정할 수 있도록 하는 수단을 갖는 것이 통상적이다. 이와 같은 수단은 메모리가 작업 수행중인 동안 액세스될 수 있는 내부 메모리 레지스터에서 전용 신호 또는 상태 신호를 포함할 수 있다.
이 인터페이스는 다른 신호 구성이 동일한 기능을 제공하도록 사용될 수 있기 때문에 단지 예로서 제공된다. 도1은 관련된 구성요소들을 지닌 단지 하나의 플래시 메모리 어레이(400) 만을 도시하지만, 다수의 이와 같은 어레이들은 공통 인터페이스 및 메모리 제어 회로를 공유하지만 병렬 판독 및 프로그램 동작을 허용하는 별도의 XDEC, YDEC, SA/PROG 및 DATA REG 회로를 갖는 단일 플래시 메모리 칩상에 존재할 수 있다.
데이터는 메모리 어레이로부터 데이터 레지스터(404)를 통해서 I/D 버스 AD[7:0](411)에 결합하는 데이터 레지스터를 거쳐 외부 제어기로 전달된다. 데이터 레지스터(404)는 또한 감지 증폭기/프로그래밍 회로(454)에 결합된다. 각 감지 증폭기/프로그래밍 회로 소자에 결합되는 데이터 레지스터의 소자들의 수는 메모리 셀들의 각 저장 소자에 저장된 비트들의 수에 좌우될 수 있는데, 플래시 EEPROM 셀들 각각은 저장 소자들로서 하나 이상의 플로우팅 게이트들을 포함한다. 각 저장 소자는 메모리 셀들이 다중-상태 모드로 동작되면 2 또는 4와 같은 다수의 비트들을 저장할 수 있다. 대안적으로, 메모리 셀들은 2진 모드로 동작되어 저장 소자 당 하나의 데이터 비트를 저장한다.
로우 디코더(401)는 어레이(400)를 위한 로우 어드레스들을 디코딩하여 액세스될 물리적 페이지를 선택한다. 로우 디코더(401)는 메모리 제어 논리(450)로부터 내부 로우 어드레스 라인들(419)을 통해서 로우 어드레스들을 수신한다. 칼럼 디코더(402)는 메모리 제어 논리(450)로부터 내부 칼럼 어드레스 라인들(429)을 통해서 칼럼 어드레스들을 수신한다.
도2는 전형적인 비휘발성 데이터 저장 시스템의 아키텍쳐를 도시한 것인데, 이 경우에, 저장 매체로서 플래시 메모리 셀들을 사용한다. 한 가지 형태로서, 이 시스템은 한 측을 따라서 신장되는 전기 커넥터를 갖는 제거가능한 카드 내에서 캡슐화되어 리셉터클 내로 삽입될 때 호스트 인터페이스를 제공한다. 대안적으로, 도2의 시스템은 영구 설치된 임베드된 회로 형태 또는 이와 다른 형태로 호스트 시스템 내에 임베드될 수 있다. 이 시스템은 고레벨 호스트 및 메모리 제어 기능을 수행하는 단일 제어기(101)를 사용한다. 플래시 메모리 매체는 하나 이상의 플래시 메모리 장치들로 이루어지는 데, 이와 같은 장치 각각은 종종 자신의 집적 회로 칩상에 형성된다. 이 시스템 제어기 및 플래시 메모리는 제어기(101)가 명령, 어드레스를 로딩하도록 하고 플래시 메모리 어레이로 그리고 이로부터 데이터를 전달하도록 하는 버스(121)에 의해 접속된다. (이 버스(121)는 도1의 412 및 411을 포함한다). 제어기(101)는 호스트 시스템(도시되지 않음)과 인터페이스 하는데, 이 시스템에 의해 사용자 데이터는 플래시 메모리 어레이로 그리고 이로부터 전달된다. 도2의 시스템이 카드에 포함되는 경우에, 호스트 인터페이스는 카드 및 호스트 장비상의 메이팅 플러그 및 소켓 어셈블리(도시되지 않음)를 포함한다.
제어기(101)는 호스트로부터 명령을 수신하여 특정 논리적 어드레스에서 시작하는 사용자 데이터의 하나 이상의 섹터들을 판독 또는 기록한다. 이 어드레스는 메모리 셀들의 블록에서 제1 물리적 페이지와 정렬하거나 정렬하지 않을 수 있다.
다수의 페이지들로 분할되는 대용량 메모리 셀 블록을 갖는 하나의 종래 기술의 시스템들에서, 갱신되지 않은 블록으로부터의 데이터는 원래 블록으로부터 호스트에 의해 기록되는 새로운 갱신된 데이터를 또한 포함하는 새로운 블록으로 복제될 필요가 있다. 다른 종래 기술의 시스템에서, 플래그는 사용자 데이터로 페이지에 기록되고 새롭게 기록된 데이터로 대체되는 원래 블록 내의 데이터 페이지들이 무효하다는 것을 나타내는데 사용된다. 기존 블록 또는 프로그래밍 플래그로부터의 불변 데이터를 사전 프로그램된 페이지에 복제함이 없이 데이터를 기존 블록에 저장되는 데이터로 부분적으로 대체하는 메커니즘이 Kevin Conley가 2001년 1월 19일에 출원한 발명의 명칭이 "Partial Block Data Programming and Reading Operations in a Non-Volatile Memory"인 09/766,436호에 개시되어 있는데, 이것이 본원에 참조되어 있다.
이 유형의 비휘발성 메모리 시스템은 특히 호스트 시스템과 제거가능하게 접속되는 인클루즈된 카드에 패키징될 때 다수의 애플리케이션에 적용된다. 현재 상업적인 메모리 카드 포맷들은 개인용 컴퓨터 메모리 카드 국제 협회(PCMCIA), 콤팩트플래시(CF), 다매체카드(MMC), 및 보안 디지털(SD)의 포맷을 포함한다. 이들 카드들의 한 공급자는 본 출원의 양수인인 SanDisk 사이다. 이와 같은 카드들을 사용하는 호스트 시스템은 개인용 컴퓨터, 노트북 컴퓨터, 휴대용 계산 장치, 카메라, 오디오 재생 장치, 등을 포함한다. 플래시 EEPROM 시스템은 또한 호스트 시스템에 임베드된 벌크 대량 저장장치로서 사용된다.
이와 같은 비휘발성 메모리 시스템은 플로우팅-게이트 메모리 셀의 하나 이상의 어레이 및 시스템 제어기를 포함한다. 제어기는 호스트 시스템과의 통신 및 메모리 셀 어레이의 동작을 관리하여 사용자 데이터를 저장 및 검색한다. 메모리 셀은 셀의 블록으로 모두 그룹화되는데, 셀의 한 블록은 동시에 소거될 수 있는 최소 셀 그룹이다. 데이터를 셀의 하나 이상의 블록으로 기록하기 전, 이들 셀 블록은 소거된다. 사용자 데이터는 통상적으로 섹터들 내의 메모리 어레이 및 호스트 간에 전달된다. 사용자 데이터의 섹터는 취급하기 용이한 어떤 량, 즉 바람직하게는, 표준 디스크 드라이브 섹터 크기, 즉 512 바이트와 동일하게 되는 메모리 블록의 용량 보다 작은 량일 수 있다. 한 가지 상업적인 아키텍쳐에서, 메모리 시스템 블록은 사용자 데이터와 더불어 오버헤드 데이터의 한 섹터를 저장하도록 하는 크기가 되는데, 이 오버헤드 데이터는 블록에 저장된 사용자 데이터용 에러 정정 코드(ECC), 블록의 사용 내력, 결함과 같은 정보 및 메모리 셀 블록의 다른 물리적 정보를 포함한다. 이 유형의 비휘발성 메모리 시스템의 각종 구현방식은 Sandisk 사에 양도된 이하의 미국 특허 및 계류중인 출원(미국 특허 5,172,338, 5,602,987, 5,315,541, 5,200,959, 5,270,979, 5,428,621, 5,663,901, 5,532,962, 5,430,859 및 5,712,180; 1997년 8월 7일에 출원된 08/910,947, 1999년 6월 30일에 출원된 09/343,328) 에 개시되어 있는데, 이들 각각이 본원에 전반적으로 참조되어 있다. 또 다른 유형의 비휘발성 메모리 시스템은 사용자 데이터의 다수의 섹터를 저장하는 보다 큰 메모리 셀 블록 크기를 사용한다.
메모리 셀 어레이의 한 가지 아키텍쳐는 서브 어레이 또는 셀의 다른 유닛 내에 있고 공통 소거 게이트를 공유하는 메모리 셀의 하나 또는 2개의 로우로부터 블록을 간편하게 형성한다. 본원에 전반적으로 참조된 SanDisk 사의 미국 특허 5,677,872 및 5,712,179는 이 아키텍쳐의 예들을 제공한다. 단지 2개의 프로그램된 임계 레벨들을 규정함으로써 각 플로우팅 게이트 셀에 하나의 데이터 비트를 저장하는 것이 현재 가장 보편적인 것이지만, 이 경향은 2개의 플로우팅-게이트 트랜지스터 임계 범위 보다 많게 설정함으로써 각 셀에 하나 이상의 데이터 비트를 저장시킨다. 플로우팅 게이트(4개의 임계 레벨 범위들 또는 상태들) 당 2 데이터 비트를 저장하는 메모리 시스템이 현재 이용될 수 있는데, 셀 당 3비트(8개의 임계 레벨 범위들 또는 상태들) 및 셀 당 4비트(16개의 임계 레벨 범위들)는 장래 시스템을 위하여 고려된다. 물론, 데이터의 섹터를 저장하는데 필요로 되는 메모리 셀의 수는 각 셀에 저장된 비트 수가 증가될 때 감소된다. 이 경향은, 셀 구조의 개선과 일반적인 반도체 처리로 인한 어레이의 스케일링과 결합되면, 한 로우의 셀들의 세그먼트된 부분에 메모리 셀 블록을 형성하는데 실용적이다. 이 블록 구조는 또한, 본원에 전반적으로 참조된 SanDisk 사의 미국 특허 출원 5,930,167에 개시된 바와 같은 2가지 상태(셀 당 1 데이터 비트) 또는 어떤 다수의 상태, 가령 4개의 상태(셀 당 2 데이터 비트)에서 메모리 셀 각각의 동작을 선택하도록 형성될 수 있다.
데이터를 플로우팅-게이트 메모리 셀로의 프로그래밍이 상당량의 시간이 걸리기 때문에, 한 로우에서 많은 수의 메모리 셀은 통상적으로 동시에 프로그램 된다. 이 병렬화의 증가가 전력 요구를 크게하고 인접 셀들의 전하 또는 이들 셀들간의 상호작용을 교란시킬 수 있다. 상기 언급된 SanDisk 사의 5,890,192는 데이터의 다수의 페이지를 여러 동작 메모리 셀 유닛(서브-어레이)에 위치된 여러 셀 블록 내로 동시에 프로그램(이 특허에서 청크(chunks)라 한다)함으로써 이들 영향들을 최소화 하는 시스템을 개시한다. 다수의 페이지를 다수의 서브-어레이 유닛으로 병렬로 프로그램할 수 있는 메모리 시스템은 상기 언급된 Kevin Conley 등이 2000년 2월 17일에 출원한 공동-계류중인 특허 출원 09/505,555호 및 본원에 참조된 John Mangan 등이 2001년 1월 10일에 출원한 09/759,835호 에 개시되어 있다.
도2의 특정 실시예에 대한 보다 상세한 사항은 도3에 도시되어 있다. 이 특정 실시예는 메모리 어레이(400)를 다수의 "평면들(planes)"로 분할하는데, 여기서 평면은 단일 다이 상에서 메모리의 서브분할이다. 도3중 보다 관련있는 부분 만이 본원에서 설명될 것이다. 보다 상세한 사항은 앞절에서 언급한 미국 특허 출원 09/759,835에서 찾아 볼 수 있다.
비휘발성 메모리 칩(17)은 논리 회로(39)를 포함하여 라인(302)을 통해서 제어기와 인터페이스 한다. 메모리 칩의 부가적인 구성요소는 설명을 간단화하기 위하여 도시하지 않았다. 논리 회로(39)의 목적은 분리된 버스들 및 제어 라인들에서 신호들을 발생시키기 위한 것이다. 각종 제어 신호들은 라인들(41)에 제공되고 메모리 어레이 회로로의 전원(43)은 또한 인터페이스(39)를 통해서 제어된다. 데이터 버스(45)는 비휘발성 메모리에 프로그램되거나 이로 부터 판독되는 사용자 데이터를 운반하고, 어드레스 버스(47)는 사용자 데이터를 판독, 사용자 데이터를 기록, 또는 메모리 셀의 블록을 소거하기 위하여 액세스 되는 메모리의 부분의 어드레스를 운반한다.
단일 비휘발성 메모리 칩의 플로우팅 게이트 메모리 셀 어레이 자체는 어드레싱,디코딩, 판독 등을 위한 지원 회로 세트를 각각 갖는 다수의 유닛으로 분할된다. 이 예에서, 참조 번호(51-58)로 표시된 8개의 이와 같은 어레이 유닛(0-7)이 도시되어 있다. 물리적으로, 일예로서, 단일 칩상의 메모리 어레이는 4분면 또는 "평면"으로 분할되는데, 각 4분면은 부분적으로 모두 접속되고 메모리 셀 유닛 4(55) 및 5(56)의 양측상의 y-디코더(61 및 62)와 같은 공통 워드 라인 디코딩 회로(y-디코드)를 공유하는 2개의 유닛을 포함한다. 공통 워드 라인은 2개의 메모리 셀 유닛 4(55) 및 5(56)에 걸쳐서 진행되는데, 도3과 관련하여 후술되는 바와 같이 1/2은 한 측상의 y-디코더(61)에 접속되고 1/2은 다른 한 측상의 y-디코더(62)에 접속된다. 이 메모리 아키텍쳐는 상기 언급된 미국 특허 5,890,192에 도시된 4개의 유닛(쿼드) 대신에 8개의 유닛 또는 "평면"이 존재한다는 것을 제외하면, 미국 특허 5,890,192와 유사하다.
다수의 아키텍쳐는 400(도1) 또는 51-58(도3)과 같은 비휘발성 메모리 어레이에 사용된다. NOR 어레이의 한가지 설계는 인접 비트(칼럼) 라인들 간에 접속된 메모리 셀 및 워드(로우) 라인들에 접속된 제어 게이트들을 갖는다. 각 셀은 직렬로 형성된 선택 트랜지스터를 갖거나 갖지 않는 하나의 플로우팅 게이트 트랜지스터 또는 단일 선택 트랜지스터에 의해 분리된 2개의 플로우팅 게이트 트랜지스터를 포함한다. 이와 같은 어레이 및 저장 시스템에 이들 어레이의 사용 예들이 본원에 전반적으로 참조되어 있고 앞서 언급된 SanDisk 사의 이하의 미국 특허 및 계류중인 출원(5,905,344, 5,172,338, 5,602,987, 5,663,901, 5,430,859, 5,657,332, 5,712,180, 5,890, 192, 및 6,151,248 및 2000년 2월 17일에 출원된 09/505,555 및 2000년 9월 22일에 출원된 09/667,344)에 제공되어 있다.
NADN 어레이의 한 가지 설계는 양단에 있는 선택 트랜지스터를 통해서 비트 라인 및 기준 전위 간에 일련의 스트링으로 접속되는 8, 16, 또는 심지어 32와 같은 다수의 메모리 셀을 갖는다. 워드 라인들은 여러 일련의 스트링으로 셀의 제어 게이트에 접속된다. 이와 같은 어레이 및 이들 어레이의 동작에 대한 관련 예들은 본원에 참조되어 있고 본원의 참조문헌에 포함된 2001년 6월 27일에 출원된 미국 특허 출원 09/893,277에 제공된다.
메모리는 종종, 제조 공정 또는 장치의 동작 중에 야기되는 결함 부분들을 가질것이다. 가령, 상기 언급된 미국 특허 5,602,987 또는 본원에 참조된 미국 특허 5,315,541, 5,200,959 및 5,428,621에 개시된 바와 같은 에러 정정 코드 또는 메모리 부분의 재매핑에 의해 이들 결함들을 관리하는 여러 가지 기술들이 존재한다. 예를 들어, 장치들은 일반적으로 출하되기 전 철처하게 테스트 받는다. 이 테스트는 제거될 필요가 있는 메모리의 결함 부분을 찾을 수 있다. 장치를 출하하기 전, 이들 결함에 대한 정보는 장치상의, 예를 들어 메모리 어레이의 ROM 에어리어 또는 별도의 ROM에 저장될 수 있고, 파워 업시에 제어기에 의해 판독되어 제어기가 불량 부분을 메모리의 양호한 부분으로 대체할 수 있도록 사용된다. 판독 또는 기록시에, 제어기는 이 재매핑을 위하여 제어기에서 포인터 구조와 관계할 필요가 있을 것이다.
메모리들은 종종 다수의 여분의 블록들을 가져 결함있는 블록들을 대체한다. 이들은 일반적으로 메모리의 논리적 구조의 에어리어들 간에 분포된다. 그러나, 불량 블록들의 수가 너무 많거나 지나치게 불균일하게 분포되면, 이는 수율을 저하시키고 카드의 용량을 저하시킨다.
도1은 메모리 제어 논리, 데이터 및 어드레스 레지스터를 지닌 전형적인 종래 기술의 플래시 EEPROM 메모리 어레이의 블록도.
도2는 시스템 제어기를 지닌 도1의 아키텍쳐 사용 메모리를 도시한 도면.
도3은 비휘발성 메모리의 일부 소자들을 도시한 도면.
도4는 단일 평면 실시예에서 불량 블록들의 배열을 도시한 도면.
도5는 4개의 평면, 10개의 존 실시예에서 경계 조정의 예를 도시한 도면.
도6은 경계들이 재정렬되는 방법을 도시한 개요도.
도7은 전형적인 실시예를 도시한 순서도.
본 발명의 한 가지 주요한 양상을 따르면, 플래시 메모리와 같은 비휘발성 메모리는 카드 제어기에 의해 논리적 존들로 분할되어 어드레스 변환을 위하여 사용되는 데이터 구조의 크기를 감소시킨다. 본 발명은 메모리 테스트에 의해 허용되는 결함들을 수용하도록 존을 조정하여 카드 수율을 개선시키고 필드 내의 경계들을 조정하여 카드의 사용 수명을 확장시키는 방법을 제공한다. 카드 제조시에, 존 경계를 설정하는 동작이 수행된다. 이 공정 동안, 펌웨어는 카드 상의 결함있는 블록의 존재에 대해서 주사한다. 모든 블록의 위치가 공지되면, 펌웨어는 양호한 블록이 존 들간에 균일하게 분포되도록 하는 방식으로 존 경계를 계산한다. 양호한 블록의 수가 메모리 테스트 기준에 의해 카드 테스트 기준에 부합되기 때문에, 카드 수율에 악영향을 미치는 결함이 감소될 것이다.
본 발명의 또 다른 양상에서, 제어기는 동적 경계 조정을 수행할 수 있다. 결함이 발생될 때, 제어기는 분석을 다시 수행하고, 양호한 블록의 수가 불균형 되면, 존 경계를 재분포시켜 임의의 사용자 데이터를 이동시킨다. 이 공정은 에러 정정 코드(ECC) 결과에 응답하거나 입증 장애와 같은 프로그래밍 또는 소거 곤란성의 표시에 응답하여 프로그램 또는 소거 사이클의 수와 같은 타이밍 메커니즘을 토대로 교정될 수 있다.
첨부한 도면과 관련한 이하의 전형적인 실시예에 대한 설명에 본 발명의 부가적인 양상, 특징 및 장점이 포함되어 있다.
본 발명의 각종 양상들은 일반적으로 비휘발성 메모리 시스템에 적용될 수 있다. 주로 EEPROM 플래시 메모리 실시예에 대해서 이하에 뿐만 아니라 배경부에 설명되었지만, 메모리 어레이에 사용되는 특정 유형의 저장 장치는 특히 본 발명에 중요하지 않다. 저장 소자들이 데이터를 판독, 기록 및 저장하는 특정 사항들은 본 발명의 주 양상들에 포함되지 않고 임의의 각종 비휘발성 시스템에 해당할 수 있다.
이하에서, 배경부에서 처럼, 다음과 같은 용어가 사용된다. 블록은 한 번에 소거가능한 최소수의 셀(소거 단위)을 포함하며, 본원에 사용되는 섹터는 단위로서 호스트에 그리고 이 호스트로부터 전달되는 사용자 데이터 량을 지칭하며, 페이지는 사용자 데이터를 판독 및 프로그램하는 기본 단위이고, 평면은 단일 다이상에서 메모리의 물리적 서브분할 이다. 일부 실시예들에서, 일부 이들 구조는 직접적으로 또는 논리적 대 물리적 대응을 통해서 서로에 대응하지만, 이들은 개념적으로 구별된다. 게다가, 더욱 일반적인 경우에, 판독 페이지 및 기록 페이지는 구별될 수 있다. 본 설명에서, 부가적인 용어 "존"은 다이의 전체 용량의 논리적 서브분할을 위하여 사용된다. 본 발명의 주 양상에서, 평면들 위에 어드레스가 논리적으로 분포되지만 평면 내의 존의 물리적 경계들은 독립적이고 결함 장소들에 대해서 최적화 된다.
본 발명의 전형적인 실시예에서, 도3에서 (17)과 같은 플래시 또는 다른 메모리 장치는 카드 제어기(301)에 의해 논리적 존들로 분할되어 어드레스 변환을 위하여 사용되는 데이터 구조의 크기를 감소시킨다. 존 내에서 특정 수의 물리적 블록은 종종 존의 논리적 용량을 초과하여, 기록 동작들을 위하여 사용되는 소거 풀을 제공한다. 논리적 존들 및 이들의 결함 허용한계가 메모리 테스팅 동안 발견되는 각 존에서 결함 수에 정렬되지 않을 수 있기 때문에, 존 내의 과도한 결함들로 인해 수율이 상실될 수 있다. 게다가, 결함들은 존을 사용할 수 없게 하는 카드의 동작 동안 발생되어, 카드의 수명을 제한한다. 본 발명의 주요 양상은 메모리 테스트에 의해 허용되는 결함을 수용하도록 존 경계를 조정하여 카드 수율을 개선시키고 필드 내의 경계를 조정하여 카드의 사용 수명을 확장시키는 것이다.
이 상황이 도4에 개요적으로 도시되어 있는데, 도4에서 메모리 어레이(400)는 파선으로 도시된 6개의 존들로 논리적으로 분할되는 단일 평면과 더불어 오버헤드 및 이외 다른 비사용자 데이터에 전용되는 다수의 시스템 블록들을 갖는다. 다수의 불량 블록들(511-523)은 흑색 스트립으로 도시된다. 예를 들어, ZONE0 내의 불량 블록(511) 및 ZONE3 내의 불량 블록(513)은 장치가 초기에 테스트받을 때 수용될 수 있지만 장치가 사용될 때 장애가 있는 한 쌍의 블록들일 수 있다. 반면에 ZONE4 내의 불량 블록들(515, 517, 519 및 521) 및 ZONE5 내의 불량 블록(523)은 제조 동안의 처리 에러들로 인해 초기 테스트 시에 불량이 되는 블록들일 수 있다. 각 존에 3개의 스페어 블록들이 할당되면, ZONE4는 논리적 할당들에 대응할 정도로 충분히 양호한 블록들을 갖지 않을 것이다.
이 문제에 대한 한 가지 방법은 더 많은 스페어 블록들을 제공하는 것이지만, 이는 낭비되는 공간(결국 비용) 대 신뢰성 간의 균형을 잡아야 한다. 어레이 내에 다수의 스페어 또는 여분의 블록들을 포함하도록 하는 것이 표준적인 실예이지만, 통상적으로 이는 역효과를 초래하는 한계를 초과한다. 게다가, 어레이가 본원에 서술된 존 구조와 같은 서브-유닛들로 논리적으로 분할될 때, 스페어 블록들은 전형적으로 서브-유닛들에 걸쳐서 균일하게 분포된다. 그러나, 결함 블록들은 랜덤화를 통해서 또는 제한된 에어리어에 영향을 미치는 처리 또는 다른 문제들로 인해 소정의 서브-유닛에서 클러스터될 수 있다. 결국, 스페어 블록들의 수는 한 존에서 너무 희박하게 확산될 수 있는 반면에, 또 다른 존은 원래부터 과도한 수의 스페어 블록들을 유지한다.
이 문제에 대한 앞서의 방법은 메모리 테스트와 동시에 경계를 할당, 예를 들어 ZONE4의 경계를 이동시켜 필요한 여분의 양호한 블록에 부가하는 것을 포함한다. 이는 제어기 메모리의 비용 조건에 더욱 부합하도록 하기 위하여 존을 감소시 유연성을 제한한다. 또 다른 방법은 수율을 저하시키거나 카드의 용량을 저하시킨다.
본 발명의 주요 양상에서, 제어기는 카드 상의 결함있는 블록의 존재에 대해서 주사한다. 이는 존 경계를 설정하는 수행된 동작으로 카드 제조 시에 행해질 수 있다. 전형적인 실시예에서, 이는 펌웨어로 수행될 수 있지만, 하드웨어 및 소프트웨어로 다양하게 수행된다. 모든 블록들의 위치가 공지되면, 펌웨어는 양호한 블록이 존들간에 동일하게 분포되도록 하는 방식으로 존 경계를 계산한다. 양호한 블록의 수가 메모리 테스트 기준에 의해 카드 테스트 기준에 부합하도록 보장되면, 카드 수율에 악영향을 미치는 결함이 발생되지 않을 것이다. 결함이 발생될 때, 제어기는 또 다시 분석을 수행하고, 양호한 블록의 수가 불균형되면, 존 경계를 재분포시켜 임의의 사용자 데이터를 이동시킨다.
예를 들어, 도4에서, 테스트 시에, ZONE4 및 ZONE3 간의 경계는 이동되어 부가적인 비결함 블록을 ZONE4에 제공한다. ZONE3 내의 불량 블록(513) 또는 부가적인 불량 블록이 시간에 걸쳐서 발생되면, 다음에 제어기는 ZONE3-ZONE2 경계를 이동시켜 어레이 내에서 양호한 블록들이 충분하게 되도록 한다.
적절한 수의 결함있는 블록들을 허용하도록 각 존에 통상적으로 충분한 스페어 블록들이 제공되기 때문에, 어레이가 단일 평면에 포함될 때, 경계들이 일반적으로 더 많이 이동할 필요가 없도록 통상적으로 충분하게 유지된다. 그러나, 존들이 여러 평면들에 걸쳐서 분포될 때, 이들 마진들은 대단히 희박하게 확산될 수 있다. 예를 들어, 각 존에 8개의 여분의 블록들이 할당되면, 도4와 같은 단일 평면의 실시예는 존이 경계 조정으로 인해 비사용되는 존 내에서 최대 전체 8개의 결함있는 블록들을 허용한다. 대신 각 존이 4개의 평면들을 걸쳐서 분포되면, 특정 평면 내의 각 존의 부분은 기껏해야 2개의 결함들을 허용할 수 있다.
평면들의 사용에 대해선 배경부에 상술되었다. 프로그래밍 시간을 감소시킴으로써 수행성능을 개선시키기 위하여, 다른 페널티를 발생시킴이 없이 적절하게 행해질 수 있는 한 많은 셀을 병렬로 프로그램하는 것이 목표이다. 한 가지 구현방식은 메모리 어레이를 주로 독립적인 서브-어레이들 또는 유닛들로 분할하는 평면을 사용하는 것인데, 본원에 참조된 Kevin Conley 등이 2000년 2월 17일에 출원한 미국 특허 출원 09/505,555, John Mangan 등이 2001년 1월 10일에 출원한 09/759,835에 기재된 바와 같이, 각 유닛은 차례대로 많은 수의 블록들로 분할된다. 그 후, 데이터의 페이지는 유닛들중 하나 이상의 유닛들 내로 동시에 프로그램 된다. 또 다른 구성은 또한 다수의 메모리 칩으로부터 이들 유닛들 중 하나 이상의 유닛을 결합시킨다. 이들 다수의 칩들은 단일 버스(도2에 도시된 바와 같음) 또는 보다 높은 데이터 처리량을 위하여 다수의 독립적인 버스들에 접속될 수 있다.
이의 확장은 본원에 참조된 2001년 1월 19일에 출원한 미국 특허 출원 09/766,436에 기재된 바와 같이 프로그래밍, 판독 및 소거 모두를 위하여 여러 유닛들로부터 블록들을 링크하는 것이다. 이 배열에서, 여러 유닛들로부터 블록들은 메타블록으로서 모두 동작될 수 있다. 메타블록, 결국 존은 다수의 평면들을 크로스할 수 있고, 각 평면은 동일한 물리적 장치에 있을 필요가 없다. 다수의 다이들은 이들이 셀제 패키지되는 방법과 관계 없이 병렬로 동작될 수 있다.
상술된 메모리 실시예들에 따라서, 각 블록, 즉 최소의 소거가능한 메모리 어레이 그룹은 전형적으로 다수의 페이지들로 분할되는데, 한 페이지는 블록 내에서 모두 프로그램될 수 있는 최소수의 셀들을 포함한다. 그러므로, 메타블록의 프로그래밍 동작은 통상적으로 메타블록을 형성하는 블록들 각각의 하나 이상의 페이지 내로 데이터를 동시에 프로그래밍하는 것을 포함할 것인데, 이는 메타블록이 채워지거나 인입하는 데이터 모두가 프로그램될 때까지 반복된다. 다른 메타블록들은 어레이 유닛들로부터 여러 블록들, 즉 각 유닛으로부터 한 블록으로 형성된다. 후술되는 확장들은 본원에 참조된 2002년 2월 22일에 출원된 미국 특허 출원 10/081,375호에 서술된 바와 같은 모두 메타블록 동작 및 이의 확장들과 결합될 수 있다.
도5는 4개의 평면들에 걸쳐서 각각 분포되는 10개의 존들을 지닌 전형적인 실시예를 도시한 것이다. 예를 들어, ZONE 0은 단일 존의 논리적 구조를 모두 구성하는 부분들(620, 621, 622 및 623)로 이루어진다. 불량 블록들이 도시되는데, ZONE 3에는 PLANE 1(601), ZONE 5에는 PLANE 2(603), 및 ZONE 8에는 PLANE 0(6051)이 도시되어 있다. 도5에 도시된 바와 같이, 존 경계들은 전체 평면간에서 시프트되어 이들 불량 블록들을 수용한다. 보다 일반적으로, 평면들의 수 및 존들의 수 둘 다는 다수의 상이한 값들일 수 있지만, 후술되는 바와 같이, 이들 값들을 선택하는데 각종 균형을 취하는 것이 수반된다.
각 존의 경계들은 선택됨으로써, 적어도 최소수의 양호한 블록들이 존의 각 평면에 기록하는데 이용될 수 있다. 각 존은 최적의 시스템 동작을 위하여 필요로 되는 블록들로부터 데이터를 유지시키는데 충분한 적어도 다수의 블록들을 포함한다. 임의의 남아있는 스페어 블록들은 평면당 존 당 균일하게 분포될 수 있는데, 스페어들의 수가 평면들의 수로 분할될 수 없다면, 남아있는 여분의 블록들은 제1 존으로부터 균일하게 분포될 수 있다. 이 공정은 칩의 다이어그램 및 도5에 도시된 분할 방법에 의해 각 평면에 대해서 독립적으로 수행된다.
전형적인 실시예에서, 존 경계들은 장치 경계들을 크로스하지 않는 것이 바람직하다. 이 제약은 관련 기술의 설명에서 상술된 바와 같이 장치 수행성능을 개선시키기 위하여 병렬 동작을 위한 메모리의 우선도로 인한 것이다. 다른 실시예들에서, 평면들은 다수의 칩들에 걸쳐서 분포되어 유연성 및 적응성을 더욱 증가시킨다. 예를 들어, PLANE 0(620), PLANE 1(621), 및 PLANE 2(622)는 한 다이 상에 형성되고 PLANE 3(623)은 또 다른 다이 상에 형성될 수 있다.
다수의 칩 장치 내의 모든 칩은 제1(또는 다른) 칩(칩 0)이 시스템 블록들을 보존하고 하나 이상의 스페어 블록들이 예비 에어리어에 할당될 수 있다는 것을 제외하면 유사한 방식으로 구획됨으로써, 이 칩의 사용자 데이터 부분을 위한 이용가능한 스페어의 수를 이에 상응하여 감소시킨다. 예비 시스템 블록들의 사용은 본 발명의 또 다른 양상과 관련하여 이하에서 추가 설명된다. 블록 0이 양호할 필요는 없다. 실제로, 펌웨어는 칩의 제1의 9개의 블록들에서 불량 블록들을 허용할 것이다.
존의 크기는 팩터 커플에 의해 결정된다. 우선, 논리적 대 물리적 변환 테이블이 제어기 RAM에 유지되어야만 되기 때문에, 존 크기를 제어기 비용 이유로 작게 유지하도록 하여 왔다. 이 구현방식에 좌우되지만, 본 발명은 일반적으로 RAM에 더 많은 에어리어를 필요하는데, 그 이유는 존들 및 물리적 블록 수들 간의 관계를 저장하는 것 이외에도, 현재 존 크기를 한 평면으로부터 다음 평면으로 가변시키는 정보를 포함하기 때문이다. 이는 또한 각 블록으로부터의 페이지가 존이 우선 액세스될 때 논리적 어드레스를 설정하도록 판독되어야 만되기 때문에 이들 테이블을 구성하는데 시간이 걸린다. 대향 팩터는 소거 풀에서 여분의 물리적 블록을 더욱 효율적으로 사용하고 더많은 결함을 허용하는데 적절한 만큼 크게 확장된다.
예를 들어, 4092 사용자 데이터 블록과 더불어 4개의 시스템 블록, 즉 총 4096을 지닌 4개의 평면을 갖는 각 메모리 칩을 토대로 한다. 샘플 계산 세트는 이 테이블을 어셈블하는 물리적 및 시간을 저장하는 RAM의 량이 존의 수에 반비례하여 감소된다는 것을 도시한다. 결함 혀용한계는 또한 동일한 방식으로 감소된다. 결국, 이들 2가지 효과들 간의 균형이 선택되어야 한다. 서술된 실시예에서, 적절한 균형은 도5에 도시된 바와 같이 9개의 존 또는 10개의 존의 전형적인 실시예를 사용한다.
존 경계들을 조정하는 공정은 다수회 행해질 수 있다. 예를 들어, 플래시 메모리 어레이들 내에 결함있는 블록을 수용하기 위하여 장치의 메모리 테스트 시에 수행될 수 있다. 이 경우에, 외부로부터 시스템으로의 확장은 제어기로 전송되며, 불량 블럭은 결정되고 존 테이블은 어셈블 된다. 그 후, 이 테이블은 장차 사용을 위하여 비휘발성 메모리의 예비 에어리어에 저장될 수 있다. 본 발명의 양상은 장치 수율을 개선시키는 것이다. 너무 많은 결함 블록들이 존에 있는 경우, 이 존은 사용될 수 없다. 이 경계는 이 존을 세이브 하도록 시프트될 수 있다. 유사하게, 이는 또한 장치 수명을 증가 시킬 수 있다. 예를 들어, 존이 테스트 시에 최대 수의 불량 블록을 갖는 경우, 전에는 제1 부가 블록 장애시에 사용불가능하게 되는 반면에, 현재는 여분의 양호한 블록이 재분포된다.
본 발명의 양상은 또한 발생되는 에러들을 동적 방식으로 수행될 수 있다. 이는 특히 블록들이 장애가 시작될 때 시스템의 수명을 길게하는데 유용하다. 스페어 블록들이 테스트 시에 초기 경계 조정 후 존들 간에서 균일하게 분포되지만, 새로운 불량 블록들은 종종 장치에 걸쳐서 균일하게 나타나지 않는다. 불균일한 웨어(wears)는 한 에어리어 사이클들 및 더많은 웨어들에 따라서 발생될 수 있다. 또한 불균일한 처리로 인한 성장된 결함들의 클러스터링이 있을 수 있고 장치는 어떤 존들에서 소거 블록들을 다시 소진할 것이다.
스페어 블록들의 동적 할당은 여러 소스들에 의해 자극될 수 있다. 이는 시간 요구를 토대로 호스트로부터 신호에 응답하여 행해질 수 있다. 호스트는 명령을 제어기로 발부하며, 그 후 제어기는 이 공정을 진행한다. 제어기는 예를 들어 문제를 나타내는 ECC 결과 또는 프로그래밍 또는 소거 곤란성에 응답하여 자신의 공정을 초기화할 수 있다.
동기가 무엇이든지 간에, 제어기는 메모리 어레이 또는 어레이들에서 결함 위치들을 결정할 수 있고 블록들을 존들로의 재분포를 결정하여 결함있는 블록들을 수용한다. 이전에 한 존에 있는 블록에 데이터가 존재하고 현재 또 다른 존들로 재할당될 때, 이 블록 내의 데이터는 동일한 존에서 이를 유지하도록 이동될 필요가 있다. 다수의 결함있는 블록들이 단일 존에서 발생되면, 통상적으로 데이터 이동 및 경계 재할당은 예를 들어 한번에 한 블록씩 경계를 이동시키는 경계들에서 행해지는 경우에 이를 적용하는 것은 더욱 손쉽게 될 것이다. (데이터가 가령 테스트 시에 제공되지 않을 때, 재할당은 모두 한 단계에서 행해질 수 있다). 이 공정은 도6에 개요적으로 도시되어 있다.
그 후, 경계 테이블은 새로운 경계 할당을 위하여 논리적 블록을 물리적 블록 변환으로 재어셈블됨으로써 갱신될 수 있다. 다음에, 이 테이블은 제어기 RAM으로부터 비휘발성 메모리의 예비된 부분으로 이동될 수 있다. 비휘발성 메모링에 존 테이블을 저장함으로써, 시스템이 호스트로부터 초기화 명령을 수신할 때, 메모리 시스템을 초기화하는 것은 비휘발성 메모리로부터 제어기의 캐쉬 메모리로 존 경계를 전달하는 것을 포함할 것이다. 그 후, 이 테이블은 존들에 의해 메모리에 액세스하도록 사용될 수 있다.
도6은 A로 표시된 파선들에 의해 존들(8 및 9) 및 존들(7 및 8) 간의 초기 경계들을 지닌 평면의 일부를 도시한 것이다. 이 도면에서, 존(9)은 5개의 불량 블록들(701-705)을 갖는 것으로 도시된다. 예를 들어, 이는 메모리 셀들이 처리 에러로 인해 열악하게 구성되고 결국 장애를 발생시켜 불충분한 수의 양호 블록을 존 내에서 발생시키는 어레이의 일부일 수 있다. 여러 양호한 블록들은 C로 표시된 위치로 경계를 이동시킴으로써 존(8)으로부터 존(9)으로 전달될 필요가 있다. 이는 존(8) 내의 블록들의 수를 감소시킬 때, 부가적인 조정은 B로 표시된 위치로 경계를 이동시킴으로써 존(7)으로부터 존(8)으로 일부 블록들을 전달할 필요가 있을 수 있다.
(711 및 712)로 표시된 블록들이 데이터를 포함할 때, 이 데이터는 자신들의 논리적 블록 수가 동일한 존 내에 유지되고 존 구조를 유지하는 경우 이동되어야 한다. 두개의 블록을 즉각 이동시키는 이용가능한 충분한 공간이 존재하지 않을 수 있기 때문에, 블록(711)은 B로 표시된 존들(8 및 9)간에 설정된 제1 및 중간 경계로 이동될 수 있다. 존(8) 내에 부가적인 공간을 생성하고 존(7)을 지닌 이의 경계를 A로부터 B로 이동시키기 위하여, 블록(721) 내의 데이터는 유사하게 이동될 필요가 있다. 블록(721) 내의 데이터를 존(7)으로 이동시키고 B로 표시된 경계를 설정한 다음에, 블록(712) 내의 데이터는 설정된 C 경계 및 존(8)으로 이동될 수 있다.
상대 타이밍에 대해서, 블록(721)을 이동시킴으로써 생성된 부가적인 공간이 블록(712)을 이동시킬 필요가 있다면, 블록(721)은 때때로 블록(712) 앞으로 이동된다. 이는 블록(711)을 이동시킨 후, 동시에 또는 심지어 그 전에 행해질 수 있다. 예를 들어 테스트 시에 이들 블록들에 데이터가 존재하지 않으면, 물론 이동시킬 데이터는 없고 최종 경계들은 중간 단계들 없이 설정될 수 있다.
도7은 공정의 순서도이다. 이 공정은 여러 방식으로 초기화될 수 있다. 이는 예를 들어 테스트 시 또는 호스트에 의해 결정된 바와 같이 외부 신호 (801)에 의해 시작될 수 있다. 호스트는 동작들의 수/타이밍, 예를 들어 다수의 소거/프로그램 동작들을 토대로 이 공정을 초기화할 수 있다. 이 부류의 초기화는 또한 제어기 자체로 인해 발생될 수 있다. 이 공정을 시스템 자체 내에서 초기화하는 또 다른 방법은 예를 들어 프로그램 또는 소거 공정에서 입증되는 ECC 결과 또는 장애로 인해 어레이(802)의 부분에서 결함들을 표시하는 것에 응답한다.
이 공정 자체는 메모리(803)의 선택된 부분들을 평가하는 제어기로 시작되어 어쨋든 블록들이 결함이 있는지를 결정한다. 이 결과를 토대로, 제어기는 상술된 바와 같은 존들에 걸쳐서 평면 내에 양호한 블록들을 분포시키는 양호한 블록들의 분포를 결정한다. 이 동일한 양호한 블록들의 수는 더욱 정확하게, 상술된 바와 같이 양호한 블록들의 수의 변화를 최소화 하여 존 테이블(805)을 생성시킨다. 전형적인 실시예에서, 펌웨어 구현방식들은 제어기에서 사용되지만, 단지 하드웨어 또는 소프트웨어어를 사용하는 구현방식이 변화를 가능하게 한다. 부가적인 변화 세트에서, 경계 결정의 일부 또는 전부는 호스트에서 수행될 수 있다.
도6과 관련하여 서술된 바와 같이, 경계 변화들에 의해 영향을 받는 데이터를 이동시킬 필요가 있을 수 있다. 이는 단계(807)에서 행해지며, 이 후 경계는 단계(809)에서 조정된다. 도6과 관련하여 상술된 바와 같이, 이 공정은 증분 공정(811)에서 행해질 수 있다. 이와 같은 초기 장치 테스트시에 데이터가 제공되지 않을 때, 이들 단계들은 필요로되지 않는다.
이 점에서, 존 테이블은 결정되고 경계들은 각 평면에서 설정되고 실제 공정이 행해진다. 이 장치는 현재 메모리(813)에 액세스하는데 존 테이블을 사용하여 동작될 수 있다. 결국, 이 공정은 단계(802)에 대해서 서술된 바와 같은 메모리 액세스 결과를 토대로 반복될 수 있다. 또한, 갱신된 존 테이블은 또한 비휘발성 메모리(815), 예를 들어 예비된 부분에 저장되어 장차 사용을 위하여 정보를 유지킬 수 있다. 도7에 도시된 단계(815)가 단계(813) 후에 발생되지만, 이는 테이블이 설정된 후 언제라도 행해질 수 있다.
상술된 바와 같이, 지금까지의 설명은 장치를 메모리 장치용으로 플로우팅 게이트 EEPROM 또는 플래시 셀과 같은 전하 저장 장치를 이용하는 실시예에 관한 것이지만, 자기 및 광학 매체와 같은 다른 실시예에도 적용될 수 있다. 저장 소자들이 데이터를 판독, 기록 및 저장하는 방법의 특정 상세사항들이 본 발명의 주 양상들에 포함되지 않기 때문에, 본 발명의 가공 양상들은 서브 0.1㎛ 트랜지스터, 단일 전자 트랜지스터, 유기/탄소 기반으로 한 나노 트랜지스터 및 분자 트랜지스터를 포함하는 다른 메모리 유형들에 적용될 수 있지만 이에 국한되지 않는다. 예를 들어, Eitan의 미국 특허 5,768,192 및 Sato 등의 미국 특허 4,630,086에 각각 기재된 바와 같은 NROM 및 MNOS 셀 또는 Gallagher 등의 미국 특허 5,991,193 및 Shimizu 등의 미국 특허 5,892,706에 기재된 바와 같은 자기 RAM 및 FRAM 셀들이 사용될 수 있는데, 이들 특허 모두는 본원에 참조되어 있다.
본 발명이 각종 전형적인 실시예와 관련하여 서술되었지만, 본 발명이 첨부된 청구항들의 범위 내에서 보호된다는 것을 이해할 것이다.

Claims (31)

  1. 메모리 시스템으로서,
    다수의 비휘발성 저장 소자들의 다수의 블록들을 포함하는 메모리로서, 상기 블록들중 각각의 블록 내의 저장 소자들은 동시에 소거될 수 있는, 메모리, 및,
    데이터를 어드레스된 블록들로의 프로그래밍, 어드레스된 블록들로부터 데이터를 판독 및 하나 이상의 어드레스된 블록들로부터 데이터를 한번에 소거하는 것을 제어하는 제어기로서, 상기 메모리는 어드레스 변환을 위하여 하나 이상의 블록들로 각각 이루어진 논리적 존들로 구성되며, 블록들과 존들의 대응성은 제어기에 의해 동적으로 조정되는, 제어기를 포함하는 메모리 시스템.
  2. 제1항에 있어서, 상기 저장 소자들은 다수-상태 저장 유닛들인 메모리 시스템.
  3. 제1항에 있어서, 상기 제어기는 논리적 존들 및 블록들 간의 대응성을 저장하는 변환 테이블을 포함하는 휘발성 메모리 섹션을 포함하는 메모리 시스템.
  4. 제3항에 있어서, 대응성의 복제는 비휘발성 메모리에 저장된느 메모리 시스템.
  5. 제1항에 있어서, 상기 메모리는 다수의 평면들로 이루어지고, 상기 존들중 하나 이상의 존들은 다수의 평면들로부터 블록으로 이루어지는 메모리 시스템.
  6. 제5항에 있어서, 상기 다수의 평면들은 하나 이상의 칩으로부터 이루어지는 메모리 시스템.
  7. 제1항에 있어서, 상기 제어기는 에러 정정 코드(ECC) 논리를 포함하고 상기 블록들 대 존들의 대응성은 에러 정정 코드 결과에 응답하여 조정되는 메모리 시스템.
  8. 제1항에 있어서, 상기 블록들 대 존들의 대응성은 프로그램 입증 결과에 응답하여 조정되는 메모리 시스템.
  9. 제1항에 있어서, 상기 블록들 대 존들의 대응성은 에러 입증 결과에 응답하여 조정되는 메모리 시스템.
  10. 제1항에 있어서, 상기 블록들 대 존들의 대응성은 메모리 시스템에 대한 외부로부터 제어기로의 신호에 응답하여 조정되는 메모리 시스템.
  11. 비휘발성 저장 소자들의 다수의 블록들 및 어드레스된 블록들로 데이터의 프로그래밍, 어드레스된 블록들로부터 데이터를 판독 및 하나 이상의 어드레스된 블로들로부터 한번에 데이터를 소거하는 것을 제어하는 메모리 제어기 회로을 포함하는 비휘발성 메모리 시스템의 동작 방법으로서, 블록들중 각각의 블록 내의 저장 소자는 동시에 소거가능하고, 상기 블휘발성 저장 소자들은 어드레스 변환을 위하여 하나 이상의 블록들로 각각 이루어진 논리적 존들 내로 제어기에 의해 구성되는, 비휘발성 메모리 시스템 동작 방법에 있어서,
    블록들 대 존들의 초기 대응성을 할당하는 단계;
    결함 있는 것으로서 상기 블록들중 하나 이상의 블록을 식별하는 단계; 및,
    상기 식별된 결함있는 블록들의 분포를 토대로 상기 제어기에 의해 블록들 대 존들의 제1 대응성을 할당하는 단계를 포함하는 비휘발성 메모리 시스템 동작 방법.
  12. 제11항에 있어서, 상기 식별 단계는:
    상기 메모리 블록들을 테스트하는 단계; 및,
    상기 테스트를 토대로 상기 결함있는 블록들을 결정하는 단계를 포함하는 비휘발성 메모리 시스템 동작 방법.
  13. 제12항에 있어서, 상기 테스팅은 상기 메모리 시스템에 대한 외부 신호에 응답하여 수행되는 비휘발성 메모리 시스템 동작 방법.
  14. 제12항에 있어서, 상기 메모리 시스템은 에러 정정 코드(ECC) 논리를 더 포함하고 상기 테스팅은 에러 정정 코드 결과에 응답하여 수행되는 비휘발성 메모리 시스템 동작 방법.
  15. 제11항에 있어서, 상기 식별 단계는 프로그램 입증 결과에 응답하여 수행되는 비휘발성 메모리 시스템 동작 방법.
  16. 제11항에 있어서, 상기 식별 단계는 에러 입증 결과에 응답하여 수행되는 비휘발성 메모리 시스템 동작 방법.
  17. 제11항에 있어서, 제1 대응성을 할당하는 상기 단계는 상기 존들에서 결함없는 블록들의 변화의 최소화를 토대로 블록들을 존들에 분포시키는 것을 포함하는 비휘발성 메모리 시스템 동작 방법.
  18. 제11항에 있어서, 상기 제어기는 상기 제1 대응성이 유지되는 휘발성 메모리를 갖는 비휘발성 메모리 시스템 동작 방법.
  19. 제18항에 있어서, 비휘발성 메모리에서 상기 제1 대응성을 유지시키는 것을 더 포함하는 비휘발성 메모리 시스템 동작 방법.
  20. 제11항에 있어서, 제1 대응성을 할당하는 단계에 응답하여, 제1 블록에 저장된 사용자 데이터를 제2 블록으로 이동시키는 단계를 더 포함하는데, 상기 제1 블록은 제1 대응성을 할당하는 상기 단계 전의 제1 존의 부분이고 제1 대응성을 할당하는 상기 단계 다음에 제2 존의 부분이고, 상기 제2 존은 상기 제1 대응성을 할당하는 단계 다음에 상기 제1 존의 부분인 비휘발성 메모리 시스템 동작 방법.
  21. 제20항에 있어서, 상기 제1 블록에 저장된 사용자 데이터를 제2 블록으로 이동시키는 단계 다음에, 식별된 결함있는 블록들의 분포를 토대로 제어기에 의해 블록들 대 존들의 제2 대응성을 할당하는 단계를 더 포함하는 비휘발성 메모리 시스템 동작 방법.
  22. 메모리 시스템 회로로서,
    비휘발성 저장 소자들의 다수의 블록들을 포함하는 메모리로서, 상기 블록들중 각각의 블록들 내의 저장 소자들은 동시에 소거가능한, 메모리;
    데이터를 어드레스된 블록들로의 프로그램밍, 어드레스된 블록들로부터 데이터를 판독 및 하나 이상의 어드레스된 블록들로부터 데이터를 한번에 소거하는 것을 제어하는 제어기로서, 상기 비휘발성은 상기 제어기에 의해 알 수 있는 바와 같이 논리적 어드레스 섹션들로 구성되고, 상기 물리적 블록들 및 논리적 어드레스 섹션들 간의 대응성은 상기 메모리 내의 결함들에 응답하여 상기 제어기에 의해 적응될 수 있는, 제어기를 포함하는 메모리 시스템 회로.
  23. 제22항에 있어서, 상기 저장 소자들은 다수-상태 저장 유닛들인 메모리 시스템 회로.
  24. 제22항에 있어서, 상기 제어기는 논리적 존들 및 블록들 간의 대응성을 저장하는 변환 테이블을 포함하는 비휘발성 메모리 섹션을 포함하는 메모리 시스템 회로.
  25. 제24항에 있어서, 대응성의 복제는 비휘발성 메모리에 저장되는 메모리 시스템 회로.
  26. 제22항에 있어서, 상기 메모리는 다수의 평면들로 이루어지고 상기 존들중 하나 이상의 존들은 다수의 평면들로부터의 블록들로 이루어지는 메모리 시스템 회로.
  27. 제26항에 있어서, 상기 다수의 평면들은 하나 이상의 칩으로 이루어지는 메모리 시스템 회로.
  28. 제22항에 있어서, 상기 제어기는 에러 정정 코드(ECC) 논리를 포함하고 상기 블록들 대 존들의 대응성은 에러 정정 코드 결과에 응답하여 조정되는 메모리 시스템 회로.
  29. 제22항에 있어서, 상기 블록들 대 존들의 대응성은 프로그램 입증 결과에 응답하여 제어기에 의해 적응되는 메모리 시스템 회로.
  30. 제22항에 있어서, 상기 블록들 대 존들의 대응성은 소거 입증 결과에 응답하여 제어기에 의해 적응되는 메모리 시스템 회로.
  31. 제22항에 있어서, 상기 블록들 대 존들의 대응성은 상기 메모리 시스템에 대한 외부로부터 제어기로의 신호에 응답하여 상기 제어기에 의해 적응되는 메모리 시스템 회로.
KR1020057010359A 2002-12-09 2003-12-02 비휘발성 메모리 내의 결함에 대한 존 경계 조정 KR100992583B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/315,451 US6901498B2 (en) 2002-12-09 2002-12-09 Zone boundary adjustment for defects in non-volatile memories
US10/315,451 2002-12-09

Publications (2)

Publication Number Publication Date
KR20050101160A true KR20050101160A (ko) 2005-10-20
KR100992583B1 KR100992583B1 (ko) 2010-11-05

Family

ID=32468705

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020057010359A KR100992583B1 (ko) 2002-12-09 2003-12-02 비휘발성 메모리 내의 결함에 대한 존 경계 조정

Country Status (9)

Country Link
US (3) US6901498B2 (ko)
EP (1) EP1570489B1 (ko)
JP (1) JP4576235B2 (ko)
KR (1) KR100992583B1 (ko)
CN (1) CN100555465C (ko)
AT (1) ATE555442T1 (ko)
AU (1) AU2003293322A1 (ko)
TW (1) TWI317946B (ko)
WO (1) WO2004053888A2 (ko)

Families Citing this family (77)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100544175B1 (ko) * 1999-05-08 2006-01-23 삼성전자주식회사 링킹 타입 정보를 저장하는 기록 매체와 결함 영역 처리 방법
US7333364B2 (en) * 2000-01-06 2008-02-19 Super Talent Electronics, Inc. Cell-downgrading and reference-voltage adjustment for a multi-bit-cell flash memory
US7660941B2 (en) * 2003-09-10 2010-02-09 Super Talent Electronics, Inc. Two-level RAM lookup table for block and page allocation and wear-leveling in limited-write flash-memories
US6901498B2 (en) * 2002-12-09 2005-05-31 Sandisk Corporation Zone boundary adjustment for defects in non-volatile memories
KR100560645B1 (ko) * 2002-12-17 2006-03-16 삼성전자주식회사 메모리 사용 정보를 표시하는 유에스비 플래시 메모리 장치
US7069377B2 (en) * 2003-05-08 2006-06-27 Micron Technology, Inc. Scratch control memory array in a flash memory device
US7046555B2 (en) * 2003-09-17 2006-05-16 Sandisk Corporation Methods for identifying non-volatile memory elements with poor subthreshold slope or weak transconductance
US20050144516A1 (en) * 2003-12-30 2005-06-30 Gonzalez Carlos J. Adaptive deterministic grouping of blocks into multi-block units
JP4642069B2 (ja) * 2004-03-12 2011-03-02 インターデイジタル テクノロジー コーポレーション マルチモード無線送受信装置を用いた、無線通信システム間での無線アクセス技術を切り換えるための方法及び装置
US20050285248A1 (en) * 2004-06-29 2005-12-29 Sun-Teck See Method and system for expanding flash storage device capacity
WO2006067853A1 (ja) * 2004-12-24 2006-06-29 Spansion Llc 記憶装置のバイアス印加方法、および記憶装置
WO2006093304A1 (en) * 2005-03-01 2006-09-08 Tokyo Electron Device Limited Storage device, memory block managing method, and program
JP4884382B2 (ja) * 2005-05-23 2012-02-29 パナソニック株式会社 メモリコントローラ、不揮発性記憶装置、不揮発性記憶システム及びメモリ制御方法
WO2007013372A1 (ja) * 2005-07-29 2007-02-01 Matsushita Electric Industrial Co., Ltd. メモリコントローラ、不揮発性記憶装置、不揮発性記憶システム及び不揮発性メモリのアドレス管理方法
CN100573476C (zh) * 2005-09-25 2009-12-23 深圳市朗科科技股份有限公司 闪存介质数据管理方法
US7259988B2 (en) * 2005-10-06 2007-08-21 Phison Electronics Corp. Method for managing memory blocks in flash memory
US7509471B2 (en) * 2005-10-27 2009-03-24 Sandisk Corporation Methods for adaptively handling data writes in non-volatile memories
US7631162B2 (en) 2005-10-27 2009-12-08 Sandisck Corporation Non-volatile memory with adaptive handling of data writes
CN1979449B (zh) * 2005-12-08 2010-10-27 群联电子股份有限公司 逻辑区块与物理区块形成弹性对应的方法
US20070141731A1 (en) * 2005-12-20 2007-06-21 Hemink Gerrit J Semiconductor memory with redundant replacement for elements posing future operability concern
US7441068B2 (en) * 2006-01-06 2008-10-21 Phison Electronics Corp. Flash memory and method for utilizing the same
US7609561B2 (en) * 2006-01-18 2009-10-27 Apple Inc. Disabling faulty flash memory dies
WO2007083449A1 (ja) * 2006-01-20 2007-07-26 Matsushita Electric Industrial Co., Ltd. 不揮発性記憶装置、不揮発性記憶システム、及び不揮発性記憶装置の不良管理方法
SG134195A1 (en) * 2006-01-23 2007-08-29 Phison Electronics Corp Flash memory and method for utilizing the same
GB2434460B (en) * 2006-01-24 2007-12-05 Phison Electronics Corp Flash memory and method for utilizing the same
US20070174549A1 (en) * 2006-01-24 2007-07-26 Yevgen Gyl Method for utilizing a memory interface to control partitioning of a memory module
JP2007199905A (ja) * 2006-01-25 2007-08-09 Toshiba Corp 半導体記憶装置の制御方法
JP4710753B2 (ja) * 2006-08-04 2011-06-29 Tdk株式会社 メモリコントローラ及びメモリコントローラを用いたフラッシュメモリシステム、並びにフラッシュメモリの制御方法
TW200811874A (en) * 2006-08-25 2008-03-01 Etron Technology Inc Sense amplifier-based latch
JP5378664B2 (ja) * 2006-08-28 2013-12-25 三星電子株式会社 マルチ−ページコピーバック機能を有するフラッシュメモリー装置及びそのブロック置換方法
US20080071968A1 (en) * 2006-09-18 2008-03-20 Phison Electronics Corp. Method of managing blocks fo flash memory suitable for flexible correspondence between logic block and physical block
KR100818797B1 (ko) 2006-10-19 2008-04-01 삼성전자주식회사 메모리 용량 조절 방법과 메모리 용량 조절 장치
KR100780963B1 (ko) * 2006-11-03 2007-12-03 삼성전자주식회사 메모리 카드 및 메모리 카드의 구동 방법
US7818701B1 (en) * 2006-12-22 2010-10-19 Cypress Semiconductor Corporation Memory controller with variable zone size
US7669092B2 (en) 2007-02-26 2010-02-23 Micron Technology, Inc. Apparatus, method, and system of NAND defect management
US7715255B2 (en) * 2007-06-14 2010-05-11 Sandisk Corporation Programmable chip enable and chip address in semiconductor memory
CN101779249B (zh) * 2007-06-14 2013-03-27 桑迪士克科技股份有限公司 半导体存储器中的可编程芯片使能和芯片地址
US7477545B2 (en) * 2007-06-14 2009-01-13 Sandisk Corporation Systems for programmable chip enable and chip address in semiconductor memory
US8095851B2 (en) * 2007-09-06 2012-01-10 Siliconsystems, Inc. Storage subsystem capable of adjusting ECC settings based on monitored conditions
US8533562B2 (en) * 2007-09-12 2013-09-10 Sandisk Technologies Inc. Data protection after possible write abort or erase abort
US8120958B2 (en) * 2007-12-24 2012-02-21 Qimonda Ag Multi-die memory, apparatus and multi-die memory stack
CN101499316B (zh) * 2008-01-30 2011-10-19 群联电子股份有限公司 快闪存储器区块管理方法及使用此方法的控制器
US8484432B2 (en) * 2008-03-11 2013-07-09 Kabushiki Kaisha Toshiba Memory system
CN101533675B (zh) * 2008-03-11 2013-11-06 深圳市朗科科技股份有限公司 闪存介质扫描和管理方法
US8327066B2 (en) * 2008-09-30 2012-12-04 Samsung Electronics Co., Ltd. Method of managing a solid state drive, associated systems and implementations
US8891298B2 (en) 2011-07-19 2014-11-18 Greenthread, Llc Lifetime mixed level non-volatile memory system
US8239614B2 (en) * 2009-03-04 2012-08-07 Micron Technology, Inc. Memory super block allocation
US8413015B2 (en) * 2009-09-21 2013-04-02 Sandisk Technologies Inc. Nonvolatile memory controller with scalable pipelined error correction
KR101616100B1 (ko) * 2009-09-25 2016-04-28 삼성전자주식회사 메모리 시스템 및 그것의 동작 방법
TWI484334B (zh) * 2009-12-24 2015-05-11 Univ Nat Taiwan 非揮發記憶體的區域式管理方法
US8856488B2 (en) 2010-02-11 2014-10-07 Memory Technologies Llc Method for utilizing a memory interface to control partitioning of a memory module
US9007836B2 (en) * 2011-01-13 2015-04-14 Kabushiki Kaisha Toshiba Non-volatile semiconductor memory device
TWI473105B (zh) * 2011-01-18 2015-02-11 Macronix Int Co Ltd 具有錯誤自動檢查與更正位元之三維記憶體結構
US8446772B2 (en) 2011-08-04 2013-05-21 Sandisk Technologies Inc. Memory die self-disable if programmable element is not trusted
US9417803B2 (en) 2011-09-20 2016-08-16 Apple Inc. Adaptive mapping of logical addresses to memory devices in solid state drives
US20130151755A1 (en) 2011-12-12 2013-06-13 Reuven Elhamias Non-Volatile Storage Systems with Go To Sleep Adaption
JP5694212B2 (ja) * 2012-02-23 2015-04-01 株式会社東芝 管理情報生成方法およびメモリシステム
US8924636B2 (en) * 2012-02-23 2014-12-30 Kabushiki Kaisha Toshiba Management information generating method, logical block constructing method, and semiconductor memory device
US9195587B2 (en) * 2013-03-07 2015-11-24 Sandisk Technologies Inc. Enhanced dynamic read process with single-level cell segmentation
KR102070724B1 (ko) 2013-03-29 2020-01-30 삼성전자주식회사 비휘발성 메모리 장치 및 그것의 구동 방법
US10083069B2 (en) * 2013-06-27 2018-09-25 Sandisk Technologies Llc Word line defect detection and handling for a data storage device
US9411721B2 (en) 2013-11-15 2016-08-09 Sandisk Technologies Llc Detecting access sequences for data compression on non-volatile memory devices
KR102116364B1 (ko) * 2013-11-18 2020-05-28 삼성전자주식회사 메모리 시스템 및 그에 따른 반도체 메모리의 결함 메모리 셀 관리방법
US9595352B2 (en) * 2014-03-17 2017-03-14 Seagate Technology Llc Manufacturer self-test for solid-state drives
US9230689B2 (en) 2014-03-17 2016-01-05 Sandisk Technologies Inc. Finding read disturbs on non-volatile memories
JP2016162466A (ja) * 2015-02-26 2016-09-05 株式会社東芝 半導体記憶装置及びメモリシステム
CN105513630B (zh) * 2015-11-30 2019-08-13 深圳市江波龙电子股份有限公司 Dram的初始化方法及装置
US10209895B2 (en) * 2016-02-18 2019-02-19 Toshiba Memory Corporation Memory system
US10275156B2 (en) * 2016-09-29 2019-04-30 Intel Corporation Managing solid state drive defect redundancies at sub-block granularity
US20180121287A1 (en) * 2016-11-01 2018-05-03 Nvidia Corporation Inline error detection and correction techniques
TWI687933B (zh) * 2017-03-03 2020-03-11 慧榮科技股份有限公司 資料儲存裝置及其區塊釋放方法
US9996458B1 (en) * 2017-07-12 2018-06-12 Nxp Usa, Inc. Memory sector retirement in a non-volatile memory
US10430117B2 (en) * 2017-10-23 2019-10-01 Micron Technology, Inc. Host accelerated operations in managed NAND devices
US10635515B2 (en) 2017-12-06 2020-04-28 Sandisk Technologies Llc Recovery of partial memory die
TWI667571B (zh) * 2018-06-13 2019-08-01 慧榮科技股份有限公司 資料儲存裝置、系統資訊編程方法及系統資訊重建方法
CN112181276B (zh) * 2019-07-03 2023-06-20 北京忆恒创源科技股份有限公司 提升存储设备服务质量的大块构造、分配方法及其存储设备
CN115237351B (zh) * 2022-08-02 2023-08-15 苏州启恒融智信息科技有限公司 Nand块动态重映射、读写命令处理方法及存储设备

Family Cites Families (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5067105A (en) 1987-11-16 1991-11-19 International Business Machines Corporation System and method for automatically configuring translation of logical addresses to a physical memory address in a computer memory system
JPH02105954A (ja) * 1988-10-14 1990-04-18 Fujitsu Ltd 半導体記憶装置
US5172338B1 (en) 1989-04-13 1997-07-08 Sandisk Corp Multi-state eeprom read and write circuits and techniques
DE69024086T2 (de) * 1989-04-13 1996-06-20 Sundisk Corp EEprom-System mit Blocklöschung
US5200959A (en) 1989-10-17 1993-04-06 Sundisk Corporation Device and method for defect handling in semi-conductor memory
GB2251323B (en) * 1990-12-31 1994-10-12 Intel Corp Disk emulation for a non-volatile semiconductor memory
US5270979A (en) 1991-03-15 1993-12-14 Sundisk Corporation Method for optimum erasing of EEPROM
US5663901A (en) 1991-04-11 1997-09-02 Sandisk Corporation Computer memory cards using flash EEPROM integrated circuit chips and memory-controller systems
US5430859A (en) 1991-07-26 1995-07-04 Sundisk Corporation Solid state memory system including plural memory chips and a serialized bus
US5712180A (en) 1992-01-14 1998-01-27 Sundisk Corporation EEPROM with split gate source side injection
US5422855A (en) * 1992-03-31 1995-06-06 Intel Corporation Flash memory card with all zones chip enable circuitry
US5532962A (en) 1992-05-20 1996-07-02 Sandisk Corporation Soft errors handling in EEPROM devices
US5315541A (en) 1992-07-24 1994-05-24 Sundisk Corporation Segmented column memory array
US5428621A (en) 1992-09-21 1995-06-27 Sundisk Corporation Latent defect handling in EEPROM devices
KR970008188B1 (ko) 1993-04-08 1997-05-21 가부시끼가이샤 히다찌세이사꾸쇼 플래시메모리의 제어방법 및 그것을 사용한 정보처리장치
JPH06332806A (ja) * 1993-05-25 1994-12-02 Hitachi Ltd フラッシュメモリを記憶媒体とする記憶システムおよびその制御方法
JP3215237B2 (ja) * 1993-10-01 2001-10-02 富士通株式会社 記憶装置および記憶装置の書き込み/消去方法
JPH08212019A (ja) * 1995-01-31 1996-08-20 Mitsubishi Electric Corp 半導体ディスク装置
US5943693A (en) * 1995-03-29 1999-08-24 Intel Corporation Algorithmic array mapping to decrease defect sensitivity of memory devices
US5579259A (en) 1995-05-31 1996-11-26 Sandisk Corporation Low voltage erase of a flash EEPROM system having a common erase electrode for two individually erasable sectors
US5712179A (en) 1995-10-31 1998-01-27 Sandisk Corporation Method of making triple polysilicon flash EEPROM arrays having a separate erase gate for each row of floating gates
KR100308173B1 (ko) 1996-02-29 2001-11-02 가나이 쓰도무 부분불량메모리를탑재한반도체기억장치
US5724284A (en) 1996-06-24 1998-03-03 Advanced Micro Devices, Inc. Multiple bits-per-cell flash shift register page buffer
US5860124A (en) * 1996-09-30 1999-01-12 Intel Corporation Method for performing a continuous over-write of a file in nonvolatile memory
US5890192A (en) 1996-11-05 1999-03-30 Sandisk Corporation Concurrent write of multiple chunks of data into multiple subarrays of flash EEPROM
US5956473A (en) * 1996-11-25 1999-09-21 Macronix International Co., Ltd. Method and system for managing a flash memory mass storage system
US5881003A (en) * 1997-07-16 1999-03-09 International Business Machines Corporation Method of making a memory device fault tolerant using a variable domain redundancy replacement configuration
US5930167A (en) 1997-07-30 1999-07-27 Sandisk Corporation Multi-state non-volatile flash memory capable of being its own two state write cache
JP4079506B2 (ja) * 1997-08-08 2008-04-23 株式会社東芝 不揮発性半導体メモリシステムの制御方法
US6000006A (en) * 1997-08-25 1999-12-07 Bit Microsystems, Inc. Unified re-map and cache-index table with dual write-counters for wear-leveling of non-volatile flash RAM mass storage
US6367030B1 (en) * 1997-10-09 2002-04-02 Matsushita Electric Industrial Co., Ltd. Address conversion circuit and address conversion system with redundancy decision circuitry
JP4085478B2 (ja) * 1998-07-28 2008-05-14 ソニー株式会社 記憶媒体及び電子機器システム
US6199177B1 (en) * 1998-08-28 2001-03-06 Micron Technology, Inc. Device and method for repairing a semiconductor memory
JP3730423B2 (ja) 1998-11-24 2006-01-05 富士通株式会社 半導体記憶装置
TW436795B (en) 1999-01-21 2001-05-28 Memory Corp Plc Memory system
US6377500B1 (en) * 1999-11-11 2002-04-23 Kabushiki Kaisha Toshiba Memory system with a non-volatile memory, having address translating function
JP4439096B2 (ja) * 2000-08-28 2010-03-24 株式会社東芝 メモリカード及び同カードに適用されるアドレス変換方法
US6426893B1 (en) 2000-02-17 2002-07-30 Sandisk Corporation Flash eeprom system with simultaneous multiple data sector programming and storage of physical block characteristics in other designated blocks
JP4037605B2 (ja) * 2000-12-04 2008-01-23 株式会社東芝 不揮発性メモリユニットのコントローラ、同コントローラを有するメモリシステム及び不揮発性メモリユニットの制御方法
JP4373615B2 (ja) * 2001-01-25 2009-11-25 富士通マイクロエレクトロニクス株式会社 初期不良ブロックのマーキング方法
US7096313B1 (en) * 2002-10-28 2006-08-22 Sandisk Corporation Tracking the least frequently erased blocks in non-volatile memory systems
JP4518951B2 (ja) * 2002-10-28 2010-08-04 サンディスク コーポレイション 不揮発性記憶システムにおける自動損耗均等化
US6901498B2 (en) * 2002-12-09 2005-05-31 Sandisk Corporation Zone boundary adjustment for defects in non-volatile memories

Also Published As

Publication number Publication date
US20050195661A1 (en) 2005-09-08
KR100992583B1 (ko) 2010-11-05
JP2006509304A (ja) 2006-03-16
CN100555465C (zh) 2009-10-28
US6901498B2 (en) 2005-05-31
US9665478B2 (en) 2017-05-30
CN1745433A (zh) 2006-03-08
EP1570489A2 (en) 2005-09-07
AU2003293322A1 (en) 2004-06-30
TWI317946B (en) 2009-12-01
US20070047305A1 (en) 2007-03-01
EP1570489B1 (en) 2012-04-25
US20040111553A1 (en) 2004-06-10
WO2004053888A3 (en) 2004-09-30
JP4576235B2 (ja) 2010-11-04
US7149871B2 (en) 2006-12-12
TW200418033A (en) 2004-09-16
WO2004053888A2 (en) 2004-06-24
ATE555442T1 (de) 2012-05-15

Similar Documents

Publication Publication Date Title
KR100992583B1 (ko) 비휘발성 메모리 내의 결함에 대한 존 경계 조정
US7379330B2 (en) Retargetable memory cell redundancy methods
KR100663738B1 (ko) 동시 다중 데이터 섹터 프로그래밍 및 다른 지정 블럭들에대한 물리적 블럭 특성들의 저장기능을 갖는 플래시이이피롬 시스템
US7092289B1 (en) Efficient redundancy system for flash memories with uniformly sized blocks
US7882299B2 (en) System and method for use of on-chip non-volatile memory write cache
US7039788B1 (en) Method and apparatus for splitting a logical block
US7193899B2 (en) Erase block data splitting
KR20060120231A (ko) 다중 블록 유닛들로의 블록의 적응형 결정론적 그룹화
KR20130139848A (ko) 백-엔드 메모리 시스템 인터페이스를 동적으로 최적화하는 방법
EP2135251B1 (en) Flash memory refresh techniques triggered by controlled scrub data reads
US10185662B2 (en) Methods for reprogramming data and apparatuses using the same
US9507706B2 (en) Memory system controller including a multi-resolution internal cache

Legal Events

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

Payment date: 20131017

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20141021

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20151016

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20160929

Year of fee payment: 7