KR20040101222A - 섹터 포인터들을 활용하는 메모리 맵핑 장치 - Google Patents

섹터 포인터들을 활용하는 메모리 맵핑 장치 Download PDF

Info

Publication number
KR20040101222A
KR20040101222A KR10-2004-7012223A KR20047012223A KR20040101222A KR 20040101222 A KR20040101222 A KR 20040101222A KR 20047012223 A KR20047012223 A KR 20047012223A KR 20040101222 A KR20040101222 A KR 20040101222A
Authority
KR
South Korea
Prior art keywords
memory
data
address
sector address
physical
Prior art date
Application number
KR10-2004-7012223A
Other languages
English (en)
Inventor
라울-아드리안 세르네아
Original Assignee
쌘디스크 코포레이션
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 쌘디스크 코포레이션 filed Critical 쌘디스크 코포레이션
Publication of KR20040101222A publication Critical patent/KR20040101222A/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C15/00Digital stores in which information comprising one or more characteristic parts is written into the store and in which information is read-out by searching for one or more of these characteristic parts, i.e. associative or content-addressed stores
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Read Only Memory (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

비휘발성 메모리의 저장 유닛 상의 포인터 구조는 물리 및 논리 주소 간의 대응치를 유지한다. 제어기(101) 및 저장 유닛은 저장 유닛 상에서 실행되고 있는 물리 및 논리 주소들 간의 변환으로 논리 섹터 주소들을 기초하여 데이터를 운반한다. 포인터 구조(110)는 현재 데이터의 물리 주소와 논리 섹터 주소 간의 대응치를 유지하며, 뿐만 아니라, 오래된 데이터가 저장된 물리 주소들과 논리 주소간의 하나 또는 그 이상의 사전의 대응치를 유지한다. 예시적인 실시예에서, 포인터 구조(110)는 하나 또는 그 이상의 독립적인 비휘발성 서브-어레이들이며, 각각이 그 자신의 행 디코더(303a,303b)를 갖는다. 각각의 포인터는 논리 주소와 물리 주소 간의 현재 대응치와 하나 또는 그 이상의 사전의 대응치들을 저장하는 것에 부가하여 그것이 활성인지의 여부를 알리는 플래그를 갖는다.

Description

섹터 포인터들을 활용하는 메모리 맵핑 장치{Memory Mapping Device Utilizing Sector Pointers}
본 발명의 원리들은 현재 존재하고 있고, 개발되고 있는 새로운 기술을 이용하기 위해 계획된, 비휘발성 메모리들의 다양한 형태들에 적용된다. 그러나, 본 발명의 실행은 플래시 이이피롬(flash EEPROM;flash electrically-erasable and programmable read-only memory)에 관련하여 기술되며, 여기서 저장 요소들(elements)은 플로팅 게이트들(floating gates)이다.
그러나 비휘발성 메모리 시스템들은 전형적으로, 메모리 어레이 및 관련된 제어를 각각 포함하는 하나 또는 그 이상의 집적 회로 칩들 및 제어기를 포함하는 하나의 집적 회로 칩, 입력/출력 및, 상태 머신 회로들(state machine circuits)을 포함한다. 물론, 하나 또는 그 이상의 집적 회로 칩들 상에 시스템의 제어기 회로들과 메모리 어레이를 함께 집적화하는 추세다. 메모리 시스템은 호스트 시스템(host system)의 일부로서 삽입될 수 있고, 또는 호스트 시스템들의 한 쪽 소켓(socket)에 제거가능하게 삽입될 수 있는 메모리 카드에 삽입될 수 있다. 그러한 카드는 전체 메모리 시스템을 포함할 수 있고, 또는 주변 회로들(peripheral circuits)과 관련된 제어기 및 메모리 어레이는 개별 카드들에 제공될 수 있다.
데이터가 식별되는 논리 주소들의 사용을 통해 메모리 시스템은 그의 호스트와 통신한다. 상기 데이터는 물리 주소에 의해 식별된 물리적 위치에서 상기 어레이 상에 저장된다. 물리 및 논리 어드레스들이 동일할 수 있더라도, 예를 들면, 결점 관리(defect management) 또는 웨어 레벨링(wear leveling)의 이유들에 대해 논리 주소로 식별된 물리 주소가 변경될 수 있도록, 이들 사이에 통상적으로 차별화가 이루어진다. 그러한 결점 관리의 예들은, 미국 특허 제5,602,987호에 개시되어 있으며, 이 특허는 여기에 참조로 병합되었고, 셀 및 섹터 레벨 상에 메모리의 리맵핑(remapping)을 개시하며, 여기서 하나의 섹터는 호스트로 및 호스트로부터의 데이터 운송 유닛(data transfer unit)의 크기이다.
논리 및 물리 주소들 간의 대응치는, 통상적으로, 제어기 상에서 대화가 실 행될 수 있도록, 상기 시스템에 의해, 또는 때때로 호스트에 의해(예를 들면, 플래시 어레이가 삽입된 실시예에서) 유지될 필요가 있다. 맵(map) 그 자체는 메모리 어레이 내에서 유지될 수 있지만, 논리 대 물리 식별 및 대화가 발생하는 제어기(또는 호스트) 상의 테이블 또는 휘발성 포인터 구조 내에 (전원이 들어올때, 또는 필요시에) 통상적으로 로딩된다. 따라서, 저장 유닛 그 자체는 물리 주소 공간 내에서 작동하며, 비록 호스트가 논리 주소들을 이용하여 메모리와 통신할 수 있다고 하더라도, 이들은 저장부(storage portion)와 통신하기 위해 제어기에 의해 물리 주소들로 변환된다.
데이터가 비휘발성 메모리에 기록될 때, 대응하는 물리 주소들 내에 새로운 데이터를 기록하기 이전에, 대응하는 논리 주소와 사전에 관련된 데이터를 소거하는 것이 일반적이다. 오래된 데이터(old data)는 구 데이터 또는 오래된 포인터들로서 접근할 수 없고, 양쪽 모두다 유지되지 않는다. 결론적으로, 만약 기록이 성공적이지 못할 경우, 오래된 데이터는 잃어버릴 수 있다. 종래 기술의 접근방식 중 하나에서, 새로운 데이터는 대응하는 물리 위치와는 다른 위치들 내에 일시적으로 기록된다.
본 발명은 비휘발성 메모리들에 관한 것으로, 더 상세하게는, 메모리 저장 유닛(memory storage unit) 상의 논리(logical) 및 물리(physical) 주소들 간의 대응치(correspondence)를 유지하기 위하여 포인터 구조(pointer structure)의 사용을 통해 메모리들의 이러한 형태들에 대해 데이터를 판독하기 위한 기술들에 관한 것이다.
도 1은 본 발명의 국면들을 실행하는 비휘발성 메모리의 일부를 도시하는 블록도.
도 2는 분리된 미니 어레이(mini array)를 이용하는 포인터 구조의 간략하된 예를 도시하는 도면.
도 3a 내지 3f는 도 2의 실시예에 대한 예시적인 동작 시퀀스를 도시하는 도면.
도 4는 본 발명에 따른 포인터 구조의 예시적인 실시예를 활용하는 메모리어레이를 도시하는 도면.
그러므로, 본 발명의 하나의 주요한 국면에 따르면, 논리 및 물리 주소들은 동일하지 않다. 비휘발성 메모리의 저장 유닛 상의 포인터 구조는 물리 및 논리 주소 간의 대응치를 유지한다. 제어기 및 저장 유닛은 저장 유닛 상에서 실행되고 있는 물리 및 논리 주소들 간에 대화와 함께 논리 섹터 주소들을 기초하여 데이터를 운송한다. 상기 포인터는, 오래된 데이터가 저장되는 물리 주소들과 논리 주소 사이의 하나 또는 그 이상의 사전의 대응치들을 유지할 뿐만 아니라 현재의 물리 주소와 논리 섹터 주소 사이의 대응치를 포함한다. 새로운 및 오래된 데이터는 어떤 지점에 병렬로 유지될 수 있다. 배경 소거와 함께 결합될 때, 수행이 개선된다.
예시적인 일 실시예에서, 포인터 구조는 하나 또는 그 이상의 독립적인 비휘발성 서브 어레이들(non-volatile sub-arrays)이며, 이들 각각은 그 자신의 행 디코더(row decoder)를 갖는다. 복수의 포인터들(multiple pointers)의 사용은 신뢰성을 증가시킨다. 각 포인터는 논리 주소와 물리 주소 사이의 현재의 대응치와 하나 또는 그 이상의 사전의 대응치들을 저장하기 위해, 추가시에 그것이 활성(active)인지 여부를 알려주는 플래그(flag)를 갖는다. 새로운 데이터가 기록될 때, 그것은 이용 가능하도록 기록되며, 빈(empty) 메모리 섹터 및 포인터는 동시에 갱신된다. 결점이 있는 섹터들은 행 리던던시 설계(row redendancy scheme) 내에 이용가능한 섹터들의 풀(pool)로부터 제거될 수 있다. 랜덤(random) 2진(binary) 또는 다른 검색 기술들이 이용가능한 소거된 섹터들을 찾는데 이용될 수 있다.
본 발명의 추가적인 국면들, 특징들 및 장점들은 후술되는 실시예들에 포함되며, 이는 첨부된 도면들과 연계하여 설명될 것이다.
본 발명은 어레이 내의 물리 주소들과 호스트로부터의 논리 주소들 사이의 대응치를 포인터 구조 내에 유지하는 비휘발성 메모리를 제공한다. 포인터 구조는 비휘발성 메모리 어레이 구조 상에 있고, 메모리 제어기에 투명하며, 이는 논리 주소들에서만 다루어진다. 기록 프로세스에서, 새로운 데이터 및 그의 대응하는 논리 주소는 제어기에 의해 메모리 어레이에 공급된다. 새로운 데이터는 새로운 물리 주소로 기록되고, 논리 및 새로운 물리 주소들 간의 대응치는 어레이의 포인터 구조에서 갱신되며, 이는 또한, 사전의 논리 주소와 물리 주소 간의 대응치를 유지한다. 사전의 데이터는 또한, 사전의 물리 섹터 내에 유지될 수 있고, 그 다음, 병행하여, 새로운 데이터가 기록되고, 배경 프로세서(background process)의 일부로서 차후에 소거될 수 있다. 판독 프로세서에서, 데이터의 논리 주소는 제어기에 의해 메모리 어레이에 공급되며, 이는 대응하는 물리 주소로부터 제어기에 데이터를 되돌려준다.
아래의 설명에서, 본 발명은, 편리를 위해 구별된 제어기와 메모리 칩들을 갖는 실시예의 관점에서 주요하게 논의되지만, 다른 실시예들에서 이들은 결합되거나 단일의 집적화된 회로 상에 있을 수도 있다. 또한, 아래의 논의를 간략화하기 위해, 데이터에 재기록과 소거 유닛 모두는 섹터로서 취해지며, 일반적으로 상기 구조가 필수적으로 대응하지 않더라도, 메모리 어레이의 행(row)에 대응한다. 본 발명이 이용할 수 있는 메모리 구조들의 더 상세한 사항은, Jian Chen 등에 의해2001년 6월 27일 출원된, 발명의 명칭이 "Operating Techniques for Reducing Effects of Coupling Between Storage Elements of a Non-Volatile Memory Operated in Multiple Data States" 인 미국 특허출원 시리얼 번호 제09/893,277호; Kevin Conley 등에 의해 2000년 2월 17일 출원된, 발명의 명칭이 "Flash EEprom System with Simultaneous Multiple Data Sector Programming and Storage of Physical Block Characteristics in Other Designated Blocks"인 미국 특허 시리얼 출원 번호 제09/505,555호; 및 Thon S. Mangan 등에 의해 2000년 10월 31일 출원된, 발명의 명칭이 "Variable Bit Line Ramp Rate Control For Flash Memories"인 미국 특허 시리얼 출원 번호 제09/703,083호에 개시되어 있으며, 이들은 모두 참조로써 여기에 병합되었고, 참조문헌으로서 여기에 포함되었다.
비휘발성 메모리 내에서 프리 어드레싱(Free Addressing in Non-Volatile Memory)
X 행들(rows)과 Y 열들(columns)의 플래시 메모리 어레이에서, 프리 어드레싱 설계를 이용하는, 즉 논리 주소와는 다른 물리 주소에 정보가 기록되도록 허용하는 것이 유리할 수 있다. 예시적인 실시예는 도 1과 관련하여 설명된다. 본 발명은 비록 플래시 메모리의 관점에서 주요하게 기술하고 있지만, 데이터가 저장 유닛들 내로 저장되고, 판독되며, 기록되는 방법의 특유성이 논의되지 않기 때문에, 다른 비휘발성 저장 유닛들에 쉽게 확대될 수 있다.
도 1은 데이터, 주소들 및 명령들의 교환을 위해 접속되며, 여기에서는 분리된 집적 회로들 상에 있는, 메모리 제어기(101) 및 메모리 회로(103)를 갖는 비휘발성 메모리의 일부의 블록도이다. 제어기(101)는 또한, 데이터, 주소들 및 명령들의 교환을 위해 호스트 시스템(도시하지 않음)에 교번하여 접속된다. 메모리 회로(103)는 비휘발성 메모리 셀들의 어레이(125)를 포함하도록 도시되며, 이는 Y 또는 열 제어 회로(121), X 또는 행열 제어기 회로(127), 데이터 입력/출력 회로들(123)에 접속된다. 더 상세하게는, 이러한 판독, 기록 및 소거 회로들은 미국 특허 제5,602,987호에 개시되어 있으며, 여기에 참조로 포함되었다. 논의를 간단하게 하기 위해, 이 예는 워드 라인을 따라, 하나의 연속하는 제어 게이트 및/또는 하나의 연속하는 소거 게이트를 갖는 메모리 어레이로 간주한다. 데이터 저장 유닛들은 2진(binary) 또는 바람직하게는, 다중상태 메모리 셀들(multi-state memory cells)을 저장할 수 있다. 더 일반적인 경우들은 참조문헌으로 병합된 미국 특허출원 제09/893,277호 및 제09/505,555호에 개시된 바와 같이 개발될 수 있다.
제어기로부터 X 또는 행열 제어 회로(127)에 인터페이스(interface)를 경유하여 물리 섹터 주소(PSA)를 공급하기 보다는, 오히려, 논리 섹터 주소(LSA)가 대신하여, 그것이 대응하는 물리 섹터 주소로 변환되는 메모리 회로(103)에 인터페이스를 통해 공급된다. 이를 위해, 메모리 회로는 또한, 그 자신의 X 디코더(decoder)를 갖는 분리된 미니 어레이(110)를 이용하는 포인터 구조를 포함한다. 간략화된 예가 도 2에 도시된다.
도 2는, 어떤 논리주소의 오래된, 또는 사전의, 및 새로운, 또는 현재의 물리 주소들이 동시에 저장되는 섹터 할당 테이블(Sector Allocation Table)을 구성하는 포인터 구조를 도시한다. 즉, 새로운 데이터가 논리 주소(LSA)에 기록될 때, 그들은 논리 주소에 사전에 대응했던 물리 주소와는 다른 물리 주소(PSA)로 기록되며, 이 사전 대응(previous corespondence)은 그것이 갱신된 이후 포인터 구조 내에 유지된다. 현재 데이터는 부분(201)으로서 개략적으로 메모리 어레이 내에 도시되며, 논리 주소에 사전에 대응하는 데이터는 부분(203)으로서 도시되며, 여기서 각각의 부분은 섹터로, 소거의 유닛으로 취해진다.
주 어레이(125;main array)가 워드 라인을 통과하는 수천개의 셀들을 가질 수 있는 반면, 포인터 어레이(110)는 단지 그 워드 라인을 따라 몇개의 비트들만을 가지며, 그들의 수는 여기서는 행 주소 비트들의 수의 2배이다. 어떤 시간에서는 오래된 및 새로운 주소 포인터들이 공존한다. 대응하는 지점들에 저장된 정보와 함께, 오래된 주소에서의 오래된 데이터(203) 및 새로운 주소에서의 새로운 데이터(210)와 함께, 동일한 것들이 발생한다. 정규 판독이전에, 논리 주소에 있는, 포인터 구조의 X 디코더로의 고속 접근이 현재, 또는 새로운 워드 라인에 포인터를 제공한다. 그 다음, 워드 라인에서의 포인터가 선택된다(논리 주소에 대응하는 물리 주소). 이 순서는 판독 동작 중에서만 필수적이다. 접근 시간이 데이터를 배출하는데 필요한 시간보다 적기 때문에, 이러한 예비 절차가 판독 수행에서 충격적이지 않다. 기록 또는 소거 동작 동안에는, 그러한 여분의 단계가 필요하지 않다.
오래된 데이터는 새로운 데이터가 기록된 이후 어떤 시간 동안 유지되기 때문에, 그것이 소거되기까지는 접근될 수 있다. 특별한 명령의 경우, 오래된 주소행은 또한, 원한다면 접근될 수 있다. 이것은 "파괴전 생성(make before break)" 특징을 제공하며, 그에 의해, 새로운 데이터 또는 이전의 데이터가 어떤 다른 이유에 대해 요구되는 동안 어떤 에러가 발생하면, 그것은 여전히 비휘발성 메모리 내에 있고 여전히 접근될 수 있다. 논리 주소의 사전의 대응치를 이용함으로써 오래된 데이터에 접근하는 것에 부가하여, 이것이 일반적으로 사용자에게 직접적으로 이용될 수 없을 지라도, 그것은 또한, 물리 주소 모드에 의해 직접적으로 접근될 수 있다.
기록 시, 어레이 데이터(array data) 및 주소 포인터(address pointer)는 동시에 프로그램될 수 있다. 프로그램 확인 중에, 오래된 물리 주소에서 오래된 데이터가 이용가능하다. 논리 주소에 대응하는 새로운 데이터가 동일한 물리 주소에 기록되지 않기 때문에, 새로운 워드 라인들(또는, 그러나, 기록 유닛은 정렬된다)의 기록은 전체 메모리 어레이가 채워지기 이전에 소거 동작을 요구하지 않는다. 그러나, 섹터 할당 테이블(SAT) 레벨에서, 오래된 주소 포인터는 소거되어야 하며, 특정 논리 주소의 그 다음 기록 동작에 대해 이용가능하게 된다. 데이터의 거대한 블록들의 기록시, 수행이 의미심장하고 소망될 때, 오래된 포인터들의 소거는 절박한 요구가 아니다. 그러나, 동일한 논리 주소의 반복적인 기록시에는, 포인터 소거는 수행을 퇴화시킨다. 그럼에도 불구하고, 이 경우, 기록 수행시, 포인터 공간 정화 시간(pointer space clean up time)의 충격을 완화하기 위해, 버퍼가 이용될수 있다.
하나의 주소를 저장하기 위해 필수적인 셀들의 수는, 여기서는 워드 라인으로 주어진, 주 어레이 기록 유닛(main array write unit)을 따르는 셀들의 수에 비교해보면, 적다. 예를 들면, 16K 행들을 가지며, 14비트들이 필수적이거나, 또는 16K 셀 워드 라인 상의 대략 1/1000 오버헤드(overhead)가 필수적이다. 이것을 명심하면, 단 1%의 오버해드에서, 10×버퍼가 이용될 수 있다. 이 경우, 10회 기록 사이클 이후에만 포인터 버퍼의 소거가 발생할 것이고, 그러한 소거 시간은 어쨌거나 상환된다. 주 어레이 그 자체는 가득 찾을 때만 소거될 필요가 있다. 수행을 개선하기 위해, 소거 유닛들(erase units)은 배경 프로세스에서 소거될 수 있다. 소거 프로세스 및 이용가능한 기록 유닛의 발견에 대한 더 상세한 사항은 아래 부분에 개시된 "소거된 섹터들의 발견을 위한 알고리즘(Algorithm for Finding Erased Sectors"에 주어져 있다.
어레이 내에, 빈 기록 유닛(empty write unit)에 대한 정보, 이 예에서는 행(row)의 범위, 이용도는, (수평적으로) 모든 메모리 셀이 하나의 행의 트랙에 유지되도록 단일 워드 라인 상에서의 경우에, 기록 유닛 그 자체에 저장되어 부착될 수 있다. 이것은 본 발명이 불량 기록 유닛들의 트랙을 유지하는 것을 허용한다. 도 1 및 2의 예에서, 도 3a 내지 도 3f와 관련하여 그 프로세스가 개략적으로 도시될 것이다.
이러한 특징들에서, 포인터 구조(110)는 X-디코더(303)를 갖도록 개략적으로 도시되어 있고, 여기에 논리 주소, 물리 주소들(301)에 대응하는 첫번째 세트 및 물리 주소들(305)의 제2 세트를 유지된다. (포인터(110)의 셀들(301,305)은 디코더(303)의 좌측 및 우측에 각각 존재하도록 여기에서는 도시되어 있지만, 아래부분에서 처럼 "포인터 구조(Pointer Structure)", 실제 레이아웃 내에서는 같은 방향에 둘다 존재할 수 있다.) 이 예에서는 8개의 가능한 물리 섹터 주소들이 있고 논리 주소들의 수는 불량 행들(bad rows)의 수보다 적은 8이 될 것이다. 논리 주소는 1부터 양호한 행들(good rows)의 수까지 포인터의 X-디코더가 아래에 가도록 도시되어 있다.
데이터 어레이에서, X-디코더(127)는 1 내지 8까지 실행되는 바와 같이, 행들의 물리 주소를 도시한다. 어레이(125)는 사용자 데이터 메모리 셀들의 이러한 8개의 행들뿐만 아니라, 섹터 챠트로서 기능하는 (각 행에 대해 2개) 플래그들의 2개의 열들(321,323)을 포함한다.
도 3a는 새로운 또는 전체적으로 소거된 어레이를 도시한다. 예에서, 어레이는 하나의 불량 기록 유닛을 가지며, 도시된 4번째 워드라인을 갖는 섹터가 마킹되어 있다. 결과적으로, 논리 주소들은 1 내지 7을 실행하고 (논리 주소 8이 될) 303 내의 최종 슬롯(slot)은 ×로 도시되며, 301 및 305 내의 대응하는 슬롯들은 상기 어레이가 하나의 워드 라인을 잃어버렸음을 도시하기 위해 마킹되어 있다. 워드라인이 불량한 것은 테스트시에, 또는 포인터 구조(110)을 갱신하기 위해 차후의 동작 도중에 결정될 수 있다. 메모리가 비어 있을 때조차, 321에서의 섹터 차트 내의 위치는 4번째 행이 불량하고 기록되지 않을 것임을 나타내도록 마킹된다.
예에서, 논리 섹터 주소들(1-3)에 각각 대응하는, 데이터 A-C는, 메모리에 도달하고 물리 섹터 주소들(1-3) 내에 각각 기록된다. 이어서, 논리 섹터(3)(C 데이터)에 대응하는 데이터가 갱신된다. 물리 섹터(3) 내의 데이터 위에 기록하기 보다는, 새로운 C 데이터는 빈 섹터 내에 기록된다. 물리 섹터(4)가 불량이기 때문에, 새로운 C 데이터가 섹터(5) 내에 기록된다. (비록 물리 섹터들이 이 예에서는 순서적으로 기록되어 있지만, 이것이 일반적으로 필요하지 않으며 일단 어레이가 부분적으로 기록되면 상기 경우가 되지 않을 것이다.)
도 3b의 포인터 구조(110)에서, 논리 주소들(1,2)은 물리 섹터 주소들(1,2)에 각각 대응한다. 논리 섹터(3)의 대응은 열(301) 내의 사전의 물리 섹터(3)이며, 물리 섹터 주소(5)의 현재 대응은 열(305) 내에 있다. 어레이(125)에서, A (논리 주소 1) 및 B (논리 주소 2) 데이터는 제1 및 제2 행 내에 있다. 오래된 C(논리 주소 3) 데이터는 열(5) 내의 현재 C 데이터와 함께, 현재는 없음을 지시하는 크로스로서 행(3) 내에 도시되어 있다. 다양한 행들의 상태는, 그 행이 기록되도록 이용할 수 있음을 알리는 단일 마크 및, 열3은 기록되지도 않고 더 이상 현행되지 않음을 나타내는 열(3) 내의 ×을 나타내는 단일 마크와 함께, 열 321 내에 도시된다. 이 상태에서, 논리 주소(3)는 이 논리 주소에 대한 2개의 포인터들 내에서 반사됨으로써 2번 기록된다. 물리 섹터(3)는 이 지점, 예를 들면 배경 동작 시에, 또는 어레이가 가득찰 때까지 대기함으로써, 소망되어진 바와 같이 소거될 수 있다. 논리 주소(3)에 대응하는 오래된 포인터(물리 주소(3))는 소망된 바와 같이 지금 소걸될 수 있다.
논리 주소들(4-6)에 대응하는 추가 데이터(각각 D-F)의 기록과 함께 계속해서, 열들(6-8)이 채워진다. 이 상태에서, 메모리는 가득차게 되며(열(3)이 배경 프로세스에서 소거되지 않는다고 가정하자), 논리 섹터(3)의 오래된 포인터는 또한,비워질 수 있다. 결과적인 상황이 도 3c에 도시된다.
(데이터 출력 회로(123) 내의) 센스 증폭기 레지스터들(Sense Amplifier registers)은 먼저 챠트(321,323)를 내 버리고 그 뒤 필수적이지는 않지만 메모리 칩(103) 외부로, 행 상태 정보를 흘려버림으로써, 이용가능한 열들의 발견이 실행된다. 기록 시간에, 상기 챠트는 갱신되며 단지 하나 또는 2개의 비트들이 프로그램될 필요가 있다. 상기 챠트는 또한, 그들의 역할이 도 3f에 의해 반전되었더라고, 이 상태에서 321 및 323에 각각 대응하는, 2개의 구획, 즉 오래된 및 새로운 부분을 갖는다.
이 예에 이어서, 논리 주소들(4,6)(데이터 D,F)이 ×'로 출력되는 대응하는 물리 섹터들 내에 데이터에 의해 도시된 바와 같이 폐기되도록 지금 취해짐을 그 다음으로 고려하자. 따라서, 도 3d에 도시된 바와 같이, (301 내의 논리 주소들(4,6)에 대해) 소거될 2개 이상의 포인터들이 있고 이러한 워드 라인들은 소거에 대해 이용가능하다.
도 3e에서, 쓸모없는 섹터들은 소거되며 포인터(110)는 비워진다. 섹터 챠트(321)는 소거되며, 갱신된 섹터 챠트가 지금 열(323) 내에 있다. 논리 주소(7)(데이터 G)에 대응하는 새로운 데이터가 그의 인터페이스를 통해 메모리에 도달할 때, 그것은 자유열(3;free row) 내에 기록될 수 있고, 그 결과가 도 3f에 도시되어 있다. 따라서, 논리 섹터 주소(3)에 사전에 대응하였던 물리 섹터(3)는 지금 논리 섹터 주소(7)에 대응한다.
이 모든 프로세스는 메모리 칩 상에서 발생되며, 물리 주소 모드와 같은 특별한 조건들을 제외하고는, 제어기를 통과할 것임을 알아야 한다. 외부적으로, 논리 주소들 및 대응하는 데이터는 단지 메모리 칩 상에서 처리되는 물리 주소들과 함께 제어기와 메모리 칩사이의 인터페이스를 경유하여 교환된다.
포인터 구조(Pointer Structure)
더 상세한 예시적인 실시예는 물리적으로 인접하지 않은 2개의 존들(zones)로 분리된 포인터 영역, 예를 들면 메모리의 맨좌측 및 맨우측 영역을 포함하며,이들 각각은 그 자신의 X 또는 행 디코더를 갖는다. 각각의 반(half)은 본 실시예에서는 5개의 별개의 존들, 즉 플래그 비트, X 주소 크기의 퓨즈 주소(fuse address), 메모리 "플래인(planes)"의 수와 동일한 X 주소들의 수, 전체 X+Y 주소들의 임의의 수, 및 헤더 스페이스(header space)를 갖는다. X 주소는 플래인 내의 주소이며, Y 주소는 플래인 주소이다. 이 포인터 구조는 도 4를 참조하여 제공된다.
도 4에서, 메모리 어레이(125)는 Y 디코더 회로(121) 및 데이터 입력/출력 회로들(123)에 접속된다. 어레이(125)는, 이 예에서는, 참조문헌으로 병합된 미국특허출원 시리얼 번호들 제09/505,555호 및 제09/703,083호에 개시된 것들과 같이, 8개의 플래인들로 분할된다. 플래인들에 대한 행열 제어 회로들 또는 X 디코더들은 도 4에 명확하게 도시되지는 않았지만, 이러한 참조문헌에 개시된 바와 같이 병합될 수 있다. 좌측 및 우측 포인터들(110a, 110b)은 더 상세히 도시되어 있고 명확하게 도시된 그들 자신의 별개의 X 디코더들(3031,303b)을 갖는다. 주어진 어떤 논리 X, 또는 섹터, 주소, 그의 디폴트 포인터(default pointer)는 포인터 스페이스의 물리 X 주소(또는 스페어(spare) S 주소, 아래에 기술됨)에 위치된다. 포인터 구조들(110a,110b)을 어레이의 다른 측면들에 배치함으로써, 다른 임의의 결점들 또는 프로세싱 문제들로 인해 불량이 되는 양쪽 어레이들의 변화가 최소화된다.
반(half) 포인터들(110a, 110b) 중 단 하나만이 시간에 활성화되는 반면, 다른 것은 준비상태를 유지(소거)한다. 301a에 도시된 바와 같이, 플래그 비트는 어느 반쪽이 활성인지를 신호로 알린다. "0"플래그 비트(소거된)는 특정의 반을 비활성화 시킨다. 각각의 반 포인터는, 만약 엔코딩된 주소가 S 또는 다른 형태 X인 경우, 전체 포인터가 불량으로서 선언할 퓨즈 주소를 갖는다. 이 정보는, 장치가 선적되기 전에 수행될 테스트 동안, "분류(sort)"에서 "퓨즈(fused)"될 수 있다.
양호한, 활성 반(half) 포인터 내에, 메모리를 가로지르는 N 섹터들의 실제 위치를 도시하는 N X 주소들(여기서, N은 플래인들의 수이다)이 있으며, 각 플래인 내에는 하나의 섹터가 있다. 8개의 플래인들의 특별한 경우에서, 8개의 X 주소들은 8개의 플래인 위치들을 매칭하도록 순서화될 수 있고, 어떠한 Y(또는 "플래인") 주소도 암시된 바와 같이 요구되지 않는다. 헤더 데이터와 결합된 이것이 기본 포인터 구조이다. 만약 메모리가 순서대로 8개의 플래인들 내에 배치된 8개의 섹터들의 그룹들 내에 항상 기록된 다면, 버퍼가 불필요하다. 이것은 상기 경우에 항상 해당하지는 않기 때문에, 뚜렷한 Y 부분과 함께, 전체 길이 X-Y주소 스페이스들의 어떤수는 포인터 버퍼에 제공된다. 그들은 각각의 시간 동안 채워지고 순서없이 또는 "뒤썩이어(scrambled)" 지금 취해질 수 있는 플래인 주소에 관계없이, X 논리 주소에 속하는 새로운 섹터는 프로그램되어 진다. 섹터의 물리 X 위치는, 그의 대응하는 플래인 상에서 이미 이용가능한 소거된 섹터 주소를 선택하거나 임의적으로 결정된다. Y("플래인") 주소를 추가함으로써, 섹터들은 뒤썩이어, 또는 플래인 순서, 순차를 벗어나 프로그램될 수 있다. 일단 버퍼가 채워지면, (그들의 함축적인 Y 위치들에 재위치된 Y 주소를 갖는)기본 구조의 지워진 버전(cleaned up version)이 포인터의 다른 반쪽 상에 복사되고, 그 뒤, 제1 반쪽이 소거될 수 있다. 헤더 정보는 변화없이 전송된다.
헤더 정보가 갱신될 때 마다, 충분한 복사 포인터 동작이 요구된다. 비록 사용자 데이터를 저장하는 저장 유닛들이 다중상태이더라도, 포인터 스페이스 내의 정보는 최상의 데이터 보호 및 가장 빠른 기록 시간을 제공하면서, 2진 엔코딩(2개의 상태 모드)된다. 헤더는, 예를 들면, 상술한 참조문헌에 의해 병합된 미국 특허번호 제5,602,987호에 개시된 다른 요소들 및 ECC같은 표준 정보를 포함할 수 있다.
동일한 섹터를 반복적으로 사이클링하고 있는 최악의 경우와 함께, 논리 X를 따라 섹터들의 불균일한 사이클링(uneven cycling)에 대해 버퍼가 이용된다. 완벽하게 균일한 순서에 대해, 즉, 제1 섹터가 처음으로 프로그램되고, 그 뒤 제2, 그뒤 제3 등...으로 프로그램되며, 버퍼가 필수적이지 않을 것이다.
메모리 칩 상에 포인터 구조(110)를 배치시킴으로써, 포인터 동작은 더 높은 메모리 자율성 또는 최소의 제어기 개입(involvement)(그것은 명료하다)으로 조정된다. 판독 동작에서 2개의 모드들은 물리적인 주소 접근 또는 논리 주소 접근을이용할 수 있다. 논리 주소 접근, 또는 동작의 통상적인 모드에서, X 주소는 포인터 주소 레지스터(pointer address register) 내에 먼저 로딩(load)된다. 그 뒤, 특정 행의 포인터의 양(both) 반쪽들이 판독된다. 만약 디폴트 포인터가 불량(실제 행 주소와 다른 "퓨즈 주소(fuse address)")으로 판명되면, 포인터의 양호한 반쪽 상의 퓨즈 존에서 엔코딩된 그의 주소와 함께, 스페어 포인터(스페어 주소 S)가 고려되며, 물리적으로 분리되면, 불량의 포인터의 양(both) 반쪽들의 가능성이 낮아져서, 그러한 다이(die)가 구분될 수 있다. 그 뒤, 제2 포인터가 판독된다. 이것은 실제 포인터를 제공하는 최대 2단(two step) 판독 동작이다.
물리 주소 접근 모드에는, 외부 명령에 의해 발생됨으로써, 사용자가 일반적으로 접근할 수 없다. 이 명령은 시스템 에러의 경우 제어기에 의해 발행될 수 있다. 대안으로는, 물리 주소 모드는 만약 부분적인 패일(fails)인 경우 데이터를 복구하거나 분류 프로세스 동안 테스트 모드의 일부로써 이용될 수 있다.
어떤 포인터가 판독될 때, 단지 "플래그=1" 반쪽이 고려된다. 판독 시간에서, 단지 주소들만 중요하며, 헤더 비트들은 일반적으로 무시된다.
먼저, 초기의 8개의 주소들(N=8, 순수 X 주소들)은 (그들의 레지스터들내로 로딩) 메모리의 8개의 플래인 X 디코더들에 할당된다. 그 뒤, 비어있지 않다면, 제1 "버퍼"가 판독된다. 그것은 "플래인"(Y) 주소 및 X 주소를 제공할 것이다. 따라서, 그 특정 플래인의 X 디코더 레지스터는 무시될 것이며, 새로운 X 주소가 로딩될 것이다. 이것은 그 다음 "버퍼" 주소에 의해 후속된다. X 디코더들은 갱신되며, 단지 최종 엔트리들(entries)만 Y 주소 디스크램블링(descrambling)을 대표하는 프로세스에 남는다. 행들을 물리 영역 내의 포인터들에 할당할 때, 행 000...0 및 111...1은 생략된다. 따라서, 버퍼 내의 어떤 행은 비 제로 주소(non-zero address)를 가질 것이다.
이러한 전체 순서는 비트들의 "모든 0번째"(또는 모든 1번째) 스트링에 대해 체크하거나 시프트 레지스터들(shift registers)을 통해 데이터를 이동시키는 등의, 바로 기본 동작들로 구성된다. 그것은 매우 쉽게 "칩 상에서", 즉 제어기가 개입되지 않고 실행될 수 있다.
기록 동작은 준비 국면의 시작과 더 관련된다. 상기 준비 국면은, 소거된 섹터들을 발견하는 것과 병렬로(필요하다면 각각의 플래인 내의 것), 판독 모드에서와 동일한 실제 포인터의 발견하는 것의 2개의 동작 모드들을 포함한다. 포인터들은 다음과 같이 갱신되는데, 상황에 따라, (이 특정예에서는) 8개의 X 주소들까지 하나의 사이클에서 엔코딩된다. 포인터 프로그램 시간에, 저장될 섹터 주소들의 수가 활성 반(half)에서 이용가능한 비어있는 "버퍼" 위치들의 수보다 큰 경우, 포인터의 정화된(cleaned) 버전이 준비되어 그것의 다른 (소거된) 반쪽이 복사된다.플래인들에 대해 기록 동작이 기본 포인터 구조의 자연스러운 순서로 수행되면, (전체 X+Y 주소를 갖는) 버퍼 위치가 필요하지 않다. 만약 그렇지 않으면, 특정 위치에서, 상술한 바와 같이, 정화(cleaned up)될 필요가 있으며, 이는 실행 비용이 든다. 순서대로 기록 프로세스를 수행하는 경우, 수행은 개선되며, 포인터 구조의 내구력(endurance)는 그것이 종종 소거되기 때문에 어레이의 사용자 데이터 부분과 거의 동일할 것이다.
버퍼의 크기는 최악의 시나리오 경우에 기초된 것으로, 소거 동작이 요청되지 않고 8개의 주소들을 엔코딩할 것이다. 이 경우, 버퍼의 크기는 버퍼들 301a의 A-G에 도시된 바와 같이 N-1이다. 어레이에 대해 말하면, 16K 행들에 의해 16K 열들의 포인터 크기(헤더 부분의 크기는 고려하지 않음)는 다음과 같이 계산될 수 있다. 임의의 X 주소는 15 비트들을 가즌다. 포인터는 2×(8×15+7×18+1+15) = 524비트, 또는 (난 포인터;non-pointer) 어레이 크기의 3.2%이다. 포인터들에 부착된 2개의 X 디코더들은 달리 3.05%를 취한다. 따라서, 이 예에서, 전체 영역 오버헤드는 주 어레이의 6.25%이다.
상술한 바와 같이, 판독 동안, 옮겨진 주소를 얻기 위한 시간은 상대적으로 짧다. 포인터가 바람직하게는 2진 저장을 이용하기 때문에, 상기 포인터의 프로그래밍은 다중상태 주 어레이(multi-state main array)를 프로그래밍하는 것보다 더 빠르며, 그것은 주 어레이와 병렬로 프로그램될 수 있기 때문에, 시간 패널티(penalty)는 없다. 동일한 주소를 분배하는 "오래된" 및 "새로운" 섹터들의 동시 존재를 더하여, 버퍼 및 좌/우 반 포인터 어레인지먼트는 중단된 프로그래밍 사이클들에 대해 유용한, "원상태회복(undo)" 동작의 적어도 하나의 레벨을 제공한다. 따라서, "파괴전 생성(make before break)"특징은 필수적인 복사 동작 없이 이어진다. 추가적으로는, 항상 이용가능한 소거된 섹터들에서 프로그램밍이 발생하기 때문에, 그 수행은 매우 개선될 수 있다. 그 다음 섹션에 기술되는 바와 같이, 소거된 섹터들의 임의 추출 선택은 웨어 레벨링(wear leveling)에 대해 양호하다.
소거된 섹터들을 찾기 위한 알고리즘(Algorithm for Rinding Erased Sectors)
본 발명의 한 특징에 따르면, 논리 주소에 대응하는 새로운 데이터는 논리 주소에 사전에 대응된 것과는 다른 오픈된 물리 주소에 기록된다. 오픈된 물리 주소는 사전에는 사용되지 않았거나 예를 들면, 배경 소거 프로세스에서 소거되어진 사전에 사용된 주소가 될 수 있다. 플래시 메모리 어레이의 포인터 기초 아키텍쳐에서, 상대적으로 최소 지연으로 이용가능한 소거 풀(pool)로부터 랜덤하게 소거된 섹터들을 찾는 것은 수행을 개선시킬 것이다.
이 작업(task)의 예시적인 실시예에서, 각 섹터는, 도 3a-f의 예에서 열(321,323)에 도시된 바와 같이, 그 상태를 신호화하기 위해 특별한 "소거 바(erase bar)" 플래그 비트를 갖는다. 병렬로 많은 플래그 비트들을 판독하는 능력이 크게 도움이 되는 반면, 그것은 강제적이지는 않다. X 주소의 형태로, 랜덤 서치 시드(random search seed)는 디지털 카운터를 질문(queryung)함으로써 발생된다. 카운터의 최대 카운트는 도 3a-f의 예의 7 처럼 영구적으로 온(ON) 열들의 수와 동일하다. 상기 시트 주소로부터 시작하여, 다른 열들의 플래그 비트들은 체크되고, 바람직하게는 동일하게, 최적화되고 순서화된다. 이 방식에서, 체킹 알고리즘이 필수적으로 랜덤하지 않더라도, 동작의 성과는 만약 많은 것이 이용가능하다면, 랜덤 초기에 의해 수여된 랜덤 소거된 섹터일 것이다. 소거된섹터를 발견하는 속도가 이용가능한 풀(pool)의 크기로 감소되더라도, 단계들의 최대 수는 멀티플 행들이 병렬로 체킹된 다면 보증될 수 있다.
메모리 어레이가 NOR 형태로 인접한 셀들("버추얼 그라운드(virtual ground)아키텍쳐) 간의 통상의 소스/드레인 접속으로 세그먼트들로 분할될 때, 소거된 행들은 행동할 것이다. 행들의 수 중 하나의 단부에 신호를 한번 인가함으로써, 그들 중 임의의 하나가 행동하고 있고 그래서 소거된 다면, 현재 다른 단부에 접속된 비트 라인에 결과가 유도될 것이며, 그 다음으로 그룹 내에서 하나 또는 그 이상이 소거되는 지를 결정하기 위해 동시에 테스트될 섹터들이 이어진다. 이 방법, 순수 2진 서치(pure binary search)는 적어도 하나의 소거된 행에서 발견하기 위해 2K로부터 나온 제1 세그먼트를 신호화하기 위해 K 단계들보다 더 많지 않은 것을 요구한다. 전체 메모리에 걸쳐 이 2진 서치를 확장하는 것이 소망된 세그먼트를 발경하기 위해 가장 빠른 방법을 제공할 지라도, 현재 소비 상황들은 체킹된 어레이의 크기를 한정할 수 있다. 따라서, 리니어(linear) 및 2진 서치가 결합될 수 있다.
적어도 하나의 소거된 섹터를 포함하는 세그먼트를 발견한 이후, 순수 2진 서치는 내부 아래에 그것을 고정할 수 있다. 일 예로서, 만약 메모리가 각각 64개의 행들의 256개의 세그먼트들 내에 분할된 16K 행들을 갖는다면, 16 세그먼트들의 블록들은 한 블록 내에 4개의 2진 서치들에 의해 후속하는 16 시퀀스들로 선형적으로 서치될 수 있다. 하나의 세그먼트를 찾기 위해 필요한 단계들의 수는 16+4+20 단계이다. 6이상의 단계들로 세그먼트 내의 행을 발견하기 위해, 전체 단계들의 수는 26개이다. 100ns의 판독 사이클에 대해, 2.6㎲가 필요하며, 이는 수백 마이크로초를 전반적으로 요구하는 기록 사이클에 대해 비우 큰 시간 오브헤드이다.
소거된 행들이 동작할 때, 그들의 소거 바 비트(erase bar bit)는 당연히 0이다. 비 행동(non-conducting) 소거 바 비트를 갖는 모든 행들은 병렬로 또는 개별적으로 체킹될 때, 소거 풀 서치(erase pool search)로부터 자동으로 배제될 것이다.
포인터 구성된 아키텍쳐 내의 행 리던던시(Row Redundancy in a Pointer Organized Architecture)
비휘발성 메모리 시스템들에서, 그들의 주소들을 임의의 장소에 저장하고 그 리스트와 임의의 제공된 주소를 비교하여 필요하다면 스페어 위치 코드(spare location code)를 발생시킴에 의해, 불량 행들 및 섹터들을 맵핑아웃(map out) 하는 것이 통상적이다. 이것은 예를 들면, 상술한 참조문헌에 의해 병합된, 미국 특허 제5,602,987호에 개시되어 있다. 본 발명의 포인터 기초 상황에서, 포인터들 그 자체가 트랜슬레이션 맵(translation map)을 구성하기 때문에, 맵핑아웃 동작은 포인터 엔코딩 레벨에 움직여질 수 있다.
소거된 섹터들이 상기에서 기술된 바와 가이 프로그래밍 시간에 자동 서치에 의해 할당될 수 있기 때문에, 불량 섹터들은 소거 풀(erase pool)로부터 배제되어야 한다. 이것은, 결점으로 인해, 섹터가 그라운드에 쇼트된 워드 라인을 가짐으로써 패일되는 경우 자동으로 발생할 수 있다. 이 경우, 소거 바 비트를 포함하여, 임의의 비트가 "1"로써 보여질 것이다. 대안으로는, 만약 워드 라인이 그라운드에 쇼트되지 않았지만, 패일 되면, 소거 바 비트가 분류에서 프로그램될 수 있는 기회가 생긴다. 만약 소거 바 비트 그 자체가 프로그램될 수 없다면, 전체 세그먼트는 어레이의 ROM부분 또는 메모리의 다른 특별히 할당된 영역 내에 "불량"으로써 기록될 수 있다. 전원이 들어올 때, ROM은 판독되고 세그먼트 내부의 래치(latch)는 그것이 불량임을 표시하도록 설정될 것이다. 그러한 경우에, 래치는 "0"에 선택된 세그먼트를 유질 할 것이고, 그로 인해, 나타난 그 세그먼트 내의 모든 섹터들이 프로그램된다. 이 방식에서, 그들은 서치 시퀀스 내에 참가하지 않을 것이다.
상술한 경우들이 쉽게 처리되는 반면, 가장 최악의 시나리오는 특별하게 지금 할당된 리스트에 기록될 "매우 완고한(very stubborn)" 섹터들, 즉 프로그램 또는 섹터들을 소거하기에 어렵운 섹터들을 요구할 것이다. 전력이 들어로 때, 상기 리스트는 고려될 RAM 내에 덤핑(dumped)될 수 있고, 그로 인해, 소거 서치 내에서 잠재적인 위너(winner)는 그 리스트 상에 그것이 있다면 거부될 수 있다. 그 특정 주소는 그 뒤, 그 다음 소거된 섹터 서치에 대한 시드(seed)가 될 수 있다.
포인터들 그 자체에 대해, 어레이의 반대 측면들 상의 2개의 물리적으로 다른 반쪽들 내의 어레인지먼트는 일반적으로 포인터의 적어도 양호한 반(half)의 존재를 도출할 것이다. 양 반쪽들 상의 불량 섹터들을 매칭하는 극단적으로 실현가능성이 없는 경우에서, 다이(die)는 특별한 양산 감소 없이 분류될 수 있다.
포인터의 불량 반쪽 상의 불략 섹터들은 다소 보통의 행들로서 동일한 사상을 따를 것이다. 그러나, 그러한 불량 포인터 섹터에 대한 요구는, 플래그 비트가 "1"고정되는 경우, 퓨즈 주소 위치에서 00...000 또는 11...111 코드를 제공할 것이다. 불량 포인터의 양호한 반쪽은, 활성으로 플래그되면서, 퓨즈 위치에서 스페어 주소를 엔코딩할 것이다. 모든 양호한 포인터들은 활성 반쪽에서, 퓨즈 위치에서 엔코딩된 그들 자신의 주소를 가질 것이다.
상술한 바와 같이, 지금까지 논의가 메모리 장치에 대한, 플로팅 게이트 EEPROM 또는 FLASH 셀들과 같은, 전하 저장 잔치를 이용한 실시예들을 주요하게 언급하고 있지만, 그것은 자기 및 광 매체를 포함하여 다른 실시예들에 적용될 수 있다. 저장 요소들이 데이터를 어떻게 판독하고 기록하며 저장하는지의 특별한 사항들이 본 발명의 주 면들에 포함되어 있지 않기 때문에, 본 발명의 다양한 면들은 여기에 제한되지는 않지만, 서브 0.1um 트랜지스터들, 싱글 전자 트랜지스터들, 유기/카본계 나노 트랜지스터들 및 분자 트랜지스터들을 포함하여, 다른 메모리 형태들에 적용할 수 있다. 예를 들면, 참조문헌에 의해 여기에 모두 병합된 Eitan의 미국 특허 5,768,192 및 Sato 등의 미국 특허 4,630,086에 각각 개시된 바와 같은 NROM 및 MNOS 셀들, 또는 Gallagher 등의 미국 특허 5,991,193 및 Shimizu 등의 미국 특허 5,892,706에 각각 개시된 바와 같은 자기 RAM 및 FRAM 셀들이 또한 이용될 수 있다.
본 발명의 다양한 면들이 특정 실시예들을 참조하여 설명되었지만, 그것은 본 발명이 후술하는 청구의 범위의 전체 범위 내에서 보호되어야 함을 이해해야 한다.

Claims (38)

  1. 비휘발성 메모리 시스템에 있어서,
    논리 섹터 주소들에 의해 식별된 데이터를 외부로 운송하는 제어기; 및
    상기 제어기에 접속된 메모리를 포함하며,
    상기 메모리는,
    복수의 섹터들로 구성된 어레이로서, 각 섹터가 복수의 데이터 저장 요소들을 포함하며 물리 주소에 의해 식별되는, 상기 어레이; 및
    논리 섹터 주소들과 물리 섹터 주소들 사이의 대응치들을 저장하는 포인터 구조로서, 상기 포인터 구조는 논리 섹터 주소와 상기 논리 섹터 주소에 의해 식별된 현재 유효한 데이터가 저장되는 제1 물리 섹터 주소 사이의 제1 대응치, 및 상기 논리 섹터 주소와 상기 논리 섹터 주소에 의해 식별된 사전에 유효한 데이터가 저장되어 있던 제2 별개의 물리 섹터 주소 사이의 제2 대응치를 동시에 유지하는, 상기 포인터 구조를 포함하는, 비휘발성 메모리 시스템.
  2. 제1항에 있어서,
    상기 대응치들은 상기 포인터 구조의 비휘발성 저장 요소들 내에 저장되는, 비휘발성 메모리 시스템.
  3. 제2항에 있어서,
    상기 어레이 및 상기 포인터 구조에 결합된 판독 및 기록 회로를 더 포함하며, 상기 어레이 및 상기 포인터 구조는 별개의 디코더 구조들을 갖는, 비휘발성 메모리 시스템.
  4. 제2항에 있어서,
    상기 대응치들은 2진(binary) 비휘발성 저장 요소들에 저장되며, 상기 데이터 저장 요소들은 다중상태(multi-state)인, 비휘발성 메모리 시스템.
  5. 제1항에 있어서,
    상기 제어기 및 상기 메모리는 분리된 집적 회로들 상에 형성되는, 비휘발성 메모리 시스템.
  6. 제1항에 있어서,
    메모리는 상기 논리 섹터 주소에 의해 식별된 현재 유효한 데이터 및 상기 논리 섹터 주소에 의해 식별된 사전에 유효한 데이터를 동시에 유지하는, 비휘발성 메모리 시스템.
  7. 제1항에 있어서,
    상기 제어기는 명령에 응답하여 상기 논리 섹터 주소에 의해 식별된 사전에 유효한 데이터에 접근할 수 있는, 비휘발성 메모리 시스템.
  8. 제1항에 있어서,
    상기 메모리는 상기 메모리 어레이 및 상기 포인터 구조에 결합된 기록 회로를 포함하며, 기록 프로세서 동안, 특정된 논리 섹터 주소에 대응하는 새로운 데이터는, 상기 특정된 논리 섹터 주소와 상기 포인터 구조 내에 저장되어 있는 새로운 물리 섹터 주소 사이의 새로운 대응치와 동시에, 상기 어레이의 새로운 물리 섹터 주소에서 상기 어레이 내에 기록되는, 비휘발성 메모리 시스템.
  9. 제8항에 있어서,
    상기 메모리는 상기 어레이에 겹합되어, 상기 사전에 유효한 데이터가 배경 소거 프로세서에서 소거될 수 있는 소거 회로를 더 포함하는, 비휘발성 메모리 시스템.
  10. 제8항에 있어서,
    상기 어레이의 각 섹터는 관련된 플래그 비트를 가지며,
    상기 집적 회로는 상기 기록 회로 및 상기 어레이에 접속되어, 이용가능한 섹터가 상기 관련된 플래그 비트들에 기초하여 상기 새로운 물리 섹터 주소에 대해 결정되는, 결정 회로를 더 포함하는, 비휘발성 메모리 시스템.
  11. 집적 회로에 있어서,
    복수의 섹터들로 구성된 비휘발성 메모리 어레이로서, 각각은 복수의 데이터 저장 요소들을 가지며 물리 주소에 의해 식별되는, 상기 비휘발성 메모리 어레이;
    논리 섹터 주소들에 의해 식별된 집적화된 회로 데이터에 외부적으로 운송하기 위해 상기 메모리 어레이에 결합된 인터페이스; 및
    상기 논리 섹터 주소들을 수신하기 위해 상기 인터페이스에 접속된 포인터;
    를 포함하며,
    상기 포인터는 상기 논리 섹터 주소들과 물리 섹터 주소들 사이의 대응치들을 저장하며, 상기 포인터 구조는 제1 논리 섹터 주소와 상기 제1 논리 섹터 주소에 의해 식별된 현재 유효한 데이터가 저장되는 제1 물리 섹터 주소 사이의 제1 대응치, 및 상기 제1 논리 섹터 주소와 상기 제1 논리 섹터 주소에 의해 식별된 사전에 유효한 데이터가 저장되어 있던 제2 별개의 물리 섹터 주소 사이의 제2 대응치를 동시에 유지하는, 집적 회로.
  12. 제11항에 있어서,
    상기 포인터는 비휘발성 저장 요소들로 구성되는, 집적 회로.
  13. 제12항에 있어서,
    상기 데이터 저장 요소들은 다중상태 저장 유닛들이며, 상기 포인터의 저장 요소들은 2진 저장 요소들인, 집적 회로.
  14. 제12항에 있어서,
    상기 어레이 및 상기 포인터 구조에 결합된 판독 및 기록 회로를 더 포함하며,
    상기 어레이 및 상기 포인터 구조는 별개의 디코더 구조들을 갖는, 집적 회로.
  15. 제11항에 있어서,
    상기 메모리 어레이는 상기 제1 논리 섹터 주소에 의해 식별된 현재 유효한 데이터 및, 상기 제1 논리 섹터 주소에 의해 식별된 사전에 유효한 데이터를 동시에 유지하는, 집적 회로.
  16. 제11항에 있어서,
    상기 메모리는 상기 메모리 어레이 및 상기 포인터에 결합된 기록 회로를 더 포함하며,
    기록 프로세스 동안, 특정 논리 섹터 주소에 대응하는 새로운 데이터는, 상기 특정 논리 섹터 주소와 상기 포인터 내에 저장되어 있는 상기 새로운 물리 섹터 주소 사이의 새로운 대응치와 함께 동시에, 상기 메모리 어레이의 새로운 물리 섹터 주소에서 상기 어레이 내에 기록되는, 집적 회로.
  17. 제16항에 있어서,
    상기 어레이에 결합되어 상기 사전에 유효한 데이터가 배경 소거 프로세스에서 소거될 수 있는 소거 회로를 더 포함하는, 집적 회로.
  18. 제16항에 있어서,
    상기 메모리 어레이의 각 섹터는 관련된 플래그 비트를 가지며,
    상기 집적 회로는, 상기 기록 회로 및 상기 메모리 어레이에 결합되어, 이용가능한 섹터가 상기 관련된 플래그 비트들에 기초하여 상기 새로운 물리 섹터 주소에 대해 결정되는, 결정 회로를 더 포함하는, 집적 회로.
  19. 제11항에 있어서,
    상기 제1 논리 섹터에 의해 식별된 사전에 유효한 데이터는 외부 명령에 응답하여 접속가능한, 집적 회로.
  20. 제어기 및 메모리를 포함하는 메모리 시스템을 작동시키는 방법으로서, 상기 메모리는 포인터 구조 및 복수의 섹터들로 구성된 어레이를 포함하며, 각 섹터는 물리 주소에 의해 식별되고 복수의 비휘발성 데이터 저장 요소들을 포함하는, 상기 메모리 시스템 작동 방법에 있어서,
    제1 데이터 세트 및 논리 섹터 주소를 호스트로부터 상기 제어기 유닛에서 수신하여 상기 호스트가 상기 제1 데이터 세트를 식별하는 단계;
    상기 제1 데이터 세트 및 상기 논리 섹터 주소를 상기 제어기로부터 상기 메모리에 운송하는 단계;
    상기 어레이의 제1 물리 섹터 주소에 상기 제1 데이터 세트를 저장하는 단계;
    상기 논리 섹터 주소와 상기 제1 물리 섹터 주소 사이의 제1 대응치를 상기 포인터 구조내에 저장하는 단계;
    상기 제1 데이터 세트의 상기 저장 단계 및 상기 제1 대응치의 상기 저장 단계에 이어서, 상기 논리 섹터 주소에 저장될 제2 데이터 세트를 상기 호스트로부터 상기 제어기에서 수신하는 단계;
    상기 제어기로부터 상기 메모리에 상기 제2 데이터 세트를 운송하는 단계;
    상기 어레이의 제2 물리 섹터 주소에 상기 제2 데이터 세트를 저장하는 단계; 및
    상기 논리 섹터 주소와 상기 제2 물리 섹터 주소 사이의 제2 대응치를 상기 포인터 구조 내에 저장하는 단계로서, 상기 메모리는 상기 제1 물리 섹터 주소에서의 상기 제1 데이터 세트, 및 상기 제2 데이터 세트의 상기 저장 단계 및 상기 제2 대응치의 상기 저장 단계에 이어서 상기 포인터 내에 상기 제1 대응치를 보유하는, 상기 저장 단계;
    를 포함하는, 메모리 시스템 작동 방법.
  21. 제20항에 있어서,
    상기 제1 대응치 및 상기 제1 데이터 세트는 동시에 저장되며, 상기 제2 대응치 및 상기 제2 데이터 세트는 동시에 저장되는, 메모리 시스템 작동 방법.
  22. 제20항에 있어서,
    상기 제2 데이터 세트 및 상기 제 2 대응치의 상기 저장 단계에 이어서, 상기 제1 물리 섹터를 소거하는 단계를 더 포함하는, 메모리 시스템 작동 방법.
  23. 제22항에 있어서,
    상기 소거 단계는 배경 프로세스에서 실행되는, 메모리 시스템 작동 방법.
  24. 제20항에 있어서,
    상기 포인터 구조는 비휘발성인, 메모리 시스템 작동 방법.
  25. 제20항에 있어서,
    상기 제2 데이터 세트 및 상기 제 2 대응치의 상기 저장 단계에 이어서, 상기 논리 섹터 주소에 저장된 데이터에 대해 상기 호스트로부터 요청을 상기 제어기에서 수신하는 단계;
    상기 논리 섹터 주소에 관하여는 상기 제어기로부터 상기 메모리에 상기 요청을 제공하는 단계; 및
    상기 논리 섹터 주소에 관하여는 상기 요청을 수신하는 메모리에 응답하여상기 메모리로부터 상기 제어기에 상기 제2 데이터 세트를 제공하는 단계를 더 포함하는, 메모리 시스템 작동 방법.
  26. 제20항에 있어서,
    상기 제2 데이터 세트 및 상기 제2 대응치의 상기 저장 단계에 이어서, 상기 제1 물리 섹터 주소에 저장된 데이터에 대한 요청을 상기 메모리에서 수신하는 단계; 및
    상기 요청을 수신하는 메모리에 응답하여 상기 메모리로부터 상기 제어기에 상기 제1 데이터 세트를 제공하는 단계를 더 포함하는, 메모리 시스템 작동 방법.
  27. 제20항에 있어서,
    상기 제1 데이터 세트의 상기 저장 단계 이전에, 이용가능한 섹터 주소들의 세트로부터 상기 제1 물리 섹터 주소를 선택하는 단계; 및
    상기 제2 데이터 세트의 상기 저장 단계 이전에, 상기 이용가능한 섹터 주소들의 세트로부터 상기 제2 물리 섹터 주소를 선택하는 단계를 더 포함하는, 메모리 시스템 작동 방법.
  28. 제20항에 있어서,
    상기 이용가능한 섹터 주소들의 세트는 단지 양호한 물리 섹터들에만 대응하는, 메모리 시스템 작동 방법.
  29. 포인터 구조 및 복수의 저장 요소를 각각 포함하는 복수의 섹터들을 갖는 어레이를 포함하는 비휘발성 메모리를 작동시키는 방법에 있어서,
    논리 섹터 주소에 의해 상기 메모리에 외부에서 접근가능한 제 1 데이터 세트를 제1 물리 섹터에 기록하는 단계;
    상기 논리 섹터 주소와 상기 제1 물리 섹터 사이의 제1 대응치를 상기 포인터 구조 내에 저장하는 단계;
    상기 제1 데이터 세트 기록 및 상기 제1 대응치의 저장 단계에 이어서, 상기 논리 섹터 주소에 의해 상기 메모리에 외부에서 접근가능한 제2 데이터 세트를 제2 물리 섹터에 기록하는 단계; 및
    상기 논리 섹터 주소와 상기 제2 물리 섹터 사이의 제2 대응치를 상기 포인터 구조 내에 저장하는 단계로서, 상기 제1 데이터 세트는 상기 제1 물리 섹터 주소 내에 보유되며, 상기 제1 대응치는 상기 제2 데이터 세트의 기록 및 상기 제2 대응치의 저장 단계에 이어서 상기 포인터 내에 보유되는, 상기 저장 단계;
    를 포함하는, 비휘발성 메모리 작동 방법.
  30. 제29항에 있어서,
    상기 제1 대응치는 상기 제1 데이터 세트의 상기 기록과 함께 동시에 저장되며, 상기 제2 대응치는 상기 제2 데이터 세트의 상기 기록과 함께 동시에 저장되는, 비휘발성 메모리 작동 방법.
  31. 제29항에 있어서,
    상기 제2 데이터 세트의 상기 기록 및 상기 제2 대응치의 상기 저장 단계에 이어서, 상기 제1 물리 섹터를 소거하는 단계를 더 포함하는, 비휘발성 메모리 작동 방법.
  32. 제31항에 있어서,
    상기 소거 단계는 배경 프로세스에서 실행되는, 비휘발성 메모리 작동 방법.
  33. 제29항에 있어서,
    상기 포인터 구조는 비휘발성인, 비휘발성 메모리 작동 방법.
  34. 제29항에 있어서,
    상기 제2 데이터 세트의 상기 기록 및 상기 제2 대응치의 상기 저장 단계에 이어서, 상기 논리 섹터 주소에 저장된 데이터에 대한 외부 요청을 상기 메모리에서 수신하는 단계; 및
    상기 요청에 응답하여 상기 메모리에 외부적으로 상기 제2 데이터 세트를 제공하는 단계를 더 포함하는, 비휘발성 메모리 작동 방법.
  35. 제29항에 있어서,
    상기 제2 데이터 세트의 상기 기록 및 상기 제 2 대응치의 상기 저장 단계에 이어서, 상기 제1 물리 섹터에 저장된 데이터에 대한 외부 요청을 상기 메모리에서 수신하는 단계; 및
    상기 요청에 응답하여 상기 메모리에 외부적으로 상기 제1 데이터 세트를 제공하는 단계를 더 포함하는, 비휘발성 메모리 작동 방법.
  36. 제29항에 있어서,
    상기 제1 데이터 세트의 상기 기록 단계 이전에, 이용가능한 섹터들의 세트로부터 상기 제1 물리 섹터를 선택하는 단계; 및
    상기 제2 데이터 세트의 상기 기록 단계 이전에, 상기 이용가능한 섹터들의 세트로부터 상기 제2 물리 섹터를 선택하는 단계를 더 포함하는, 비휘발성 메모리 작동 방법.
  37. 제29항에 있어서,
    상기 이용가능한 섹터들의 세트는 단지 양호한 섹터들만 포함하는, 비휘발성 메모리 작동 방법.
  38. 제어기 및 메모리를 포함하는 비휘발성 메모리 시스템을 작동시키는 방법으로서, 데이터가 물리 주소에 기초하여 상기 메모리 내에 저장되는, 상기 비휘발성 메모리 시스템 작동 방법에 있어서,
    논리 섹터 주소들에 기초하여 호스트와 상기 제어기 사이에 데이터를 운송하는 단계;
    상기 논리 섹터 주소에 기초하여 상기 제어기와 상기 메모리 사이에 데이터를 운송하는 단계;
    상기 논리 섹터 주소를 대응하는 물리 섹터 주소로 상기 메모리 상에서 변환하는 단계; 및
    상기 대응하는 물리 주소에서 상기 메모리 내에 저장된 데이터에 접근하는 단계를 포함하는, 비휘발성 메모리 시스템 작동 방법.
KR10-2004-7012223A 2002-02-06 2003-02-04 섹터 포인터들을 활용하는 메모리 맵핑 장치 KR20040101222A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US10/071,795 2002-02-06
US10/071,795 US6839826B2 (en) 2002-02-06 2002-02-06 Memory device with pointer structure to map logical to physical addresses
PCT/US2003/003418 WO2003067437A1 (en) 2002-02-06 2003-02-04 Memory mapping device utilizing sector pointers

Publications (1)

Publication Number Publication Date
KR20040101222A true KR20040101222A (ko) 2004-12-02

Family

ID=27659324

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2004-7012223A KR20040101222A (ko) 2002-02-06 2003-02-04 섹터 포인터들을 활용하는 메모리 맵핑 장치

Country Status (7)

Country Link
US (2) US6839826B2 (ko)
EP (1) EP1472605A4 (ko)
JP (1) JP2005517260A (ko)
KR (1) KR20040101222A (ko)
CN (1) CN1300706C (ko)
AU (1) AU2003210853A1 (ko)
WO (1) WO2003067437A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11989089B2 (en) 2021-07-19 2024-05-21 SK Hynix Inc. Memory controller, operating method thereof, and computing system including the same

Families Citing this family (47)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6347051B2 (en) 1991-11-26 2002-02-12 Hitachi, Ltd. Storage device employing a flash memory
JP3976839B2 (ja) * 1996-07-09 2007-09-19 株式会社ルネサステクノロジ 不揮発性メモリシステムおよび不揮発性半導体メモリ
TWI240861B (en) * 2002-01-11 2005-10-01 Integrated Circuit Solution In Data access method and architecture of flash memory
US6839826B2 (en) * 2002-02-06 2005-01-04 Sandisk Corporation Memory device with pointer structure to map logical to physical addresses
US7185029B1 (en) * 2003-06-27 2007-02-27 Unisys Corporation Method and apparatus for maintaining, and updating in-memory copies of the first and second pointers to reference the new versions of the first and second control structures that indicate available and allocated portions of usable space in the data file
JP2005190161A (ja) * 2003-12-25 2005-07-14 Matsushita Electric Ind Co Ltd データ処理装置およびコンパイラ装置
KR100533682B1 (ko) * 2003-12-26 2005-12-05 삼성전자주식회사 플래시 메모리의 데이터 관리 장치 및 방법
JP2005190288A (ja) * 2003-12-26 2005-07-14 Tdk Corp メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びに、フラッシュメモリの制御方法
US7792880B2 (en) * 2004-01-05 2010-09-07 International Business Machines Corporation Method and apparatus for efficient implementation of discontiguous objects
US20080250188A1 (en) * 2004-12-22 2008-10-09 Matsushita Electric Industrial Co., Ltd. Memory Controller, Nonvolatile Storage, Nonvolatile Storage System, and Memory Control Method
US8667249B2 (en) 2004-12-22 2014-03-04 Intel Corporation Systems and methods exchanging data between processors through concurrent shared memory
JP4643315B2 (ja) * 2005-03-11 2011-03-02 株式会社東芝 半導体集積回路装置
TWI275101B (en) * 2005-05-24 2007-03-01 Prolific Technology Inc Flash memory storage system
EP1739672A1 (en) * 2005-07-01 2007-01-03 Deutsche Thomson-Brandt Gmbh Method and apparatus for managing memory accesses in an AV decoder
US9009114B1 (en) * 2005-10-31 2015-04-14 Symantec Operating Corporation Version mapped incremental backups
FR2894709A1 (fr) * 2005-12-13 2007-06-15 Gemplus Sa "detecteur de destruction anormale de secteur memoire"
KR100781520B1 (ko) 2006-02-24 2007-12-03 삼성전자주식회사 비휘발성 메모리가 캐쉬로 사용되는 저장 장치 및 이를위한 맵핑 정보 복구 방법
JP2008009527A (ja) * 2006-06-27 2008-01-17 Toshiba Corp メモリシステム
JP4945186B2 (ja) * 2006-07-28 2012-06-06 株式会社東芝 記憶装置およびこれを含むメモリシステム
KR100843133B1 (ko) 2006-09-20 2008-07-02 삼성전자주식회사 플래시 메모리에서 매핑 정보 재구성을 위한 장치 및 방법
US7577011B2 (en) * 2006-10-13 2009-08-18 Agere Systems Inc. Optimization of ROM structure by splitting
US9116823B2 (en) 2006-12-06 2015-08-25 Intelligent Intellectual Property Holdings 2 Llc Systems and methods for adaptive error-correction coding
US9495241B2 (en) 2006-12-06 2016-11-15 Longitude Enterprise Flash S.A.R.L. Systems and methods for adaptive data storage
US8074011B2 (en) * 2006-12-06 2011-12-06 Fusion-Io, Inc. Apparatus, system, and method for storage space recovery after reaching a read count limit
CN101681282A (zh) 2006-12-06 2010-03-24 弗森多系统公司(dba弗森-艾奥) 用于共享的、前端、分布式raid的装置、系统和方法
US7525869B2 (en) * 2006-12-31 2009-04-28 Sandisk 3D Llc Method for using a reversible polarity decoder circuit
FR2915829A1 (fr) * 2007-05-02 2008-11-07 St Microelectronics Sa Memoire non volatile a ecriture rapide
EP1988550B1 (fr) * 2007-05-02 2010-08-25 Stmicroelectronics Sa Mémoire non volatile à secteurs auxiliaires tournants
US8195912B2 (en) 2007-12-06 2012-06-05 Fusion-io, Inc Apparatus, system, and method for efficient mapping of virtual and physical addresses
US7836226B2 (en) 2007-12-06 2010-11-16 Fusion-Io, Inc. Apparatus, system, and method for coordinating storage requests in a multi-processor/multi-thread environment
US7979670B2 (en) 2008-01-24 2011-07-12 Quantum Corporation Methods and systems for vectored data de-duplication
US7975111B2 (en) * 2008-11-13 2011-07-05 Macronix International Co., Ltd. Memory and method applied in one program command for the memory
US8296503B2 (en) * 2009-05-26 2012-10-23 Mediatek Inc. Data updating and recovering methods for a non-volatile memory array
US8572311B1 (en) * 2010-01-11 2013-10-29 Apple Inc. Redundant data storage in multi-die memory systems
US8381018B2 (en) 2010-05-21 2013-02-19 Mediatek Inc. Method for data recovery for flash devices
US8819328B2 (en) 2010-12-30 2014-08-26 Sandisk Technologies Inc. Controller and method for performing background operations
US9003247B2 (en) * 2011-04-28 2015-04-07 Hewlett-Packard Development Company, L.P. Remapping data with pointer
KR101797565B1 (ko) * 2011-08-22 2017-12-12 삼성전자 주식회사 불량 페이지를 관리하는 메모리 장치
US8885425B2 (en) 2012-05-28 2014-11-11 Kabushiki Kaisha Toshiba Semiconductor memory and method of controlling the same
TWI509615B (zh) * 2012-08-03 2015-11-21 Phison Electronics Corp 資料儲存方法、記憶體控制器與記憶體儲存裝置
US9165633B2 (en) 2013-02-26 2015-10-20 Honeywell International Inc. Carbon nanotube memory cell with enhanced current control
US9842991B2 (en) 2013-03-15 2017-12-12 Honeywell International Inc. Memory cell with redundant carbon nanotube
US9569354B2 (en) * 2013-08-02 2017-02-14 Infineon Technologies Ag System and method to emulate an electrically erasable programmable read-only memory
JP6163588B2 (ja) * 2016-05-11 2017-07-12 株式会社日立製作所 ストレージシステム
JP7153435B2 (ja) * 2017-10-12 2022-10-14 ラピスセミコンダクタ株式会社 不揮発性メモリのデータ書換方法及び半導体装置
US10698816B2 (en) * 2018-06-29 2020-06-30 Micron Technology, Inc. Secure logical-to-physical caching
US11860947B2 (en) * 2019-01-31 2024-01-02 International Business Machines Corporation Deleted data restoration

Family Cites Families (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5955071A (ja) 1982-09-24 1984-03-29 Hitachi Micro Comput Eng Ltd 不揮発性半導体装置
EP0198935A1 (de) 1985-04-23 1986-10-29 Deutsche ITT Industries GmbH Elektrisch umprogrammierbarer Halbleiterspeicher mit Redundanz
EP0935255A2 (en) 1989-04-13 1999-08-11 SanDisk Corporation Flash EEPROM system
US5148538A (en) * 1989-10-20 1992-09-15 International Business Machines Corporation Translation look ahead based cache access
JP2856621B2 (ja) * 1993-02-24 1999-02-10 インターナショナル・ビジネス・マシーンズ・コーポレイション 一括消去型不揮発性メモリおよびそれを用いる半導体ディスク装置
JPH07182879A (ja) 1993-12-24 1995-07-21 Fuji Film Micro Device Kk 半導体メモリ装置
JPH07281948A (ja) * 1994-04-06 1995-10-27 Mitsubishi Electric Corp メモリ制御装置
US5581736A (en) * 1994-07-18 1996-12-03 Microsoft Corporation Method and system for dynamically sharing RAM between virtual memory and disk cache
US5798964A (en) 1994-08-29 1998-08-25 Toshiba Corporation FRAM, FRAM card, and card system using the same
JPH08137634A (ja) 1994-11-09 1996-05-31 Mitsubishi Electric Corp フラッシュディスクカード
JPH08212019A (ja) 1995-01-31 1996-08-20 Mitsubishi Electric Corp 半導体ディスク装置
JP3706167B2 (ja) 1995-02-16 2005-10-12 株式会社ルネサステクノロジ 半導体ディスク装置
US6108759A (en) 1995-02-23 2000-08-22 Powerquest Corporation Manipulation of partitions holding advanced file systems
US5845313A (en) 1995-07-31 1998-12-01 Lexar Direct logical block addressing flash memory mass storage architecture
US5838614A (en) 1995-07-31 1998-11-17 Lexar Microsystems, Inc. Identification and verification of a sector within a block of mass storage flash memory
US6081878A (en) 1997-03-31 2000-06-27 Lexar Media, Inc. Increasing the memory performance of flash memory devices by writing sectors simultaneously to multiple flash memory devices
US5907856A (en) * 1995-07-31 1999-05-25 Lexar Media, Inc. Moving sectors within a block of information in a flash memory mass storage architecture
US6101590A (en) * 1995-10-10 2000-08-08 Micro Unity Systems Engineering, Inc. Virtual memory system with local and global virtual address translation
US5903495A (en) 1996-03-18 1999-05-11 Kabushiki Kaisha Toshiba Semiconductor device and memory system
JP3197815B2 (ja) 1996-04-15 2001-08-13 インターナショナル・ビジネス・マシーンズ・コーポレ−ション 半導体メモリ装置及びその制御方法
US5768192A (en) 1996-07-23 1998-06-16 Saifun Semiconductors, Ltd. Non-volatile semiconductor memory cell utilizing asymmetrical charge trapping
JPH10124381A (ja) 1996-10-21 1998-05-15 Mitsubishi Electric Corp 半導体記憶装置
US6122195A (en) 1997-03-31 2000-09-19 Lexar Media, Inc. Method and apparatus for decreasing block write operation times performed on nonvolatile memory
US6411546B1 (en) 1997-03-31 2002-06-25 Lexar Media, Inc. Nonvolatile memory using flexible erasing methods and method and system for using same
US6034897A (en) 1999-04-01 2000-03-07 Lexar Media, Inc. Space management for managing high capacity nonvolatile memory
US5946718A (en) * 1997-05-30 1999-08-31 National Semiconductor Corporation Shadow translation look-aside buffer and method of operation
US6370585B1 (en) * 1997-09-05 2002-04-09 Sun Microsystems, Inc. Multiprocessing computer system employing a cluster communication launching and addressing mechanism
US5991193A (en) 1997-12-02 1999-11-23 International Business Machines Corporation Voltage biasing for magnetic ram with magnetic tunnel memory cells
US6351797B1 (en) * 1997-12-17 2002-02-26 Via-Cyrix, Inc. Translation look-aside buffer for storing region configuration bits and method of operation
US6105103A (en) * 1997-12-19 2000-08-15 Lsi Logic Corporation Method for mapping in dynamically addressed storage subsystems
JP2000057054A (ja) * 1998-08-12 2000-02-25 Fujitsu Ltd 高速アドレス変換システム
KR100704998B1 (ko) * 1999-02-26 2007-04-09 소니 가부시끼 가이샤 기록방법, 관리방법 및 기록장치
US6141249A (en) 1999-04-01 2000-10-31 Lexar Media, Inc. Organization of blocks within a nonvolatile memory unit to effectively decrease sector write operation time
US6618789B1 (en) * 1999-04-07 2003-09-09 Sony Corporation Security memory card compatible with secure and non-secure data processing systems
JP4282197B2 (ja) 2000-01-24 2009-06-17 株式会社ルネサステクノロジ 不揮発性半導体記憶装置
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
DE60009031D1 (de) * 2000-03-28 2004-04-22 St Microelectronics Srl Verfahren zur logischen Aufteilung einer nichtflüchtigen Speichermatrix
US6772274B1 (en) * 2000-09-13 2004-08-03 Lexar Media, Inc. Flash memory system and method implementing LBA to PBA correlation within flash memory array
US6839826B2 (en) * 2002-02-06 2005-01-04 Sandisk Corporation Memory device with pointer structure to map logical to physical addresses

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11989089B2 (en) 2021-07-19 2024-05-21 SK Hynix Inc. Memory controller, operating method thereof, and computing system including the same

Also Published As

Publication number Publication date
EP1472605A1 (en) 2004-11-03
US6839826B2 (en) 2005-01-04
CN1628289A (zh) 2005-06-15
CN1300706C (zh) 2007-02-14
US7549012B2 (en) 2009-06-16
EP1472605A4 (en) 2007-05-30
AU2003210853A1 (en) 2003-09-02
WO2003067437A1 (en) 2003-08-14
US20050120266A1 (en) 2005-06-02
US20030149856A1 (en) 2003-08-07
JP2005517260A (ja) 2005-06-09

Similar Documents

Publication Publication Date Title
US7549012B2 (en) Memory device with sector pointer structure
US8363495B2 (en) Non-volatile memory with redundancy data buffered in remote buffer circuits
US7092289B1 (en) Efficient redundancy system for flash memories with uniformly sized blocks
US7394690B2 (en) Method for column redundancy using data latches in solid-state memories
US7447066B2 (en) Memory with retargetable memory cell redundancy
EP1617438B1 (en) Redundancy based NAND flash memory
US7224605B1 (en) Non-volatile memory with redundancy data buffered in data latches for defective locations
US7352635B2 (en) Method for remote redundancy for non-volatile memory
US7818492B2 (en) Source and shadow wear-leveling method and apparatus
US20040022249A1 (en) Semiconductor memory device having faulty cells
JP2007517353A (ja) 不揮発性メモリに対する柔軟でエリア効率の高い列冗長性
CN101331554A (zh) 具有可重定目标的存储器单元冗余的存储器
US7328301B2 (en) Dynamically mapping block-alterable memories
EP2002447B1 (en) Non-volatile memory and method with redundancy data buffered in remote buffer circuits
EP2008283B1 (en) Non-volatile memory and method with redundancy data buffered in data latches for defective locations

Legal Events

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