KR101076830B1 - 비휘발성 메모리에 부분적 블럭 데이터 프로그래밍 및 판독작동 - Google Patents

비휘발성 메모리에 부분적 블럭 데이터 프로그래밍 및 판독작동 Download PDF

Info

Publication number
KR101076830B1
KR101076830B1 KR1020087028861A KR20087028861A KR101076830B1 KR 101076830 B1 KR101076830 B1 KR 101076830B1 KR 1020087028861 A KR1020087028861 A KR 1020087028861A KR 20087028861 A KR20087028861 A KR 20087028861A KR 101076830 B1 KR101076830 B1 KR 101076830B1
Authority
KR
South Korea
Prior art keywords
data
pages
block
blocks
updated
Prior art date
Application number
KR1020087028861A
Other languages
English (en)
Other versions
KR20090006217A (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=25076410&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=KR101076830(B1) "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 KR20090006217A publication Critical patent/KR20090006217A/ko
Application granted granted Critical
Publication of KR101076830B1 publication Critical patent/KR101076830B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • G11C16/102External programming circuits, e.g. EPROM programmers; In-circuit programming or reprogramming; EPROM emulators
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/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
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • G11C16/102External programming circuits, e.g. EPROM programmers; In-circuit programming or reprogramming; EPROM emulators
    • G11C16/105Circuits or methods for updating contents of nonvolatile memory, especially with 'security' features to ensure reliable replacement, i.e. preventing that old data is lost before new data is reliably written
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc
    • 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/7202Allocation control and policies
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7208Multiple device management, e.g. distributing data over multiple flash devices
    • 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/7209Validity control, e.g. using flags, time stamps or sequence numbers
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2216/00Indexing scheme relating to G11C16/00 and subgroups, for features not directly covered by these groups
    • G11C2216/12Reading and writing aspects of erasable programmable read-only memories
    • G11C2216/16Flash programming of all the cells in an array, sector or block simultaneously

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Read Only Memory (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System (AREA)
  • Non-Volatile Memory (AREA)

Abstract

비휘발성 메모리 블럭의 페이지 모두 보다 적은 데이터는 동일한 또는 또 다른 블럭의 사용되지 않은 페이지에 새로운 데이터를 프로그래밍함으로써 갱신된다. 데이터의 변동되지 않은 페이지를 새로운 블럭에 복사하거나, 또는 플래그를 데이터의 대체된 페이지에 프로그래밍해야 하는 것을 방지하기 위해서, 새로운 데이터의 페이지들은 그것들이 대체하였던 데이터의 페이지들처럼 동일한 논리적 어드레스에 의해 식별되며 시간 스탬프는 각 페이지가 기록되었던 각주에 부가된다. 데이터를 판독할 때, 데이터의 가장 최근의 페이지들이 사용되며 데이터의 더 오래된 대체된 페이지들이 무시된다. 이러한 기술은, 모든 페이지 갱신을 유니트들 중 한 개의 단일의 사용되지 않는 블럭으로 향하게 함으로써, 메모리 어레이의 각각의 몇 가지 상이한 유니트로부터 1개 블럭을 포함하는 메타블럭에 또한 적용된다.
비휘발성 메모리 시스템, 저장소자, 블럭, 페이지

Description

비휘발성 메모리에 부분적 블럭 데이터 프로그래밍 및 판독 작동{PARTIAL BLOCK DATA PROGRAMMING AND READING OPERATIONS IN A NON-VOLATILE MEMORY}
본 발명은 반도체 비휘발성 데이터 저장 시스템 아키텍쳐 및 그 작동 방법에 관한 것으로서, 플래시 EEPROMs(electrically erasable and programmable read-only memories)에 기반한 데이터 저장 시스템에 활용을 갖는다.
플래시 EEPROM 소자의 공통적인 활용은 대량 데이터 저장 서브시스템으로서 전자 소자용이다. 그러한 서브시스템들은 공통적으로 다중 호스트 시스템에 삽입될 수 있는 착탈식 메모리 카드로서 또는 호스트 시스템 내에 비착탈식 내장 저장부로서 구현된다. 양측 실시예에서, 서브시스템은 1개 이상의 플래시 소자와 종종 서브시스템 컨트롤러를 포함한다.
플래시 EEPROM 소자는 트랜지스터 셀의 1개 이상의 어레이로 이루어지며, 각 셀은 1개 이상의 데이터 비트의 비휘발성 저장을 할 수 있다. 그러므로 플래시 메모리는 그 안에 프로그래밍된 데이터를 유지하는데 전력을 필요로 하지 않는다. 그러나 일단 프로그래밍되면, 셀은 새로운 데이터 값으로 재프로그래밍되기전에 삭제되어야 한다. 이러한 셀의 어레이들은 판독, 프로그래밍 및 삭제 기능의 효과적인 구현을 제공하도록 그룹으로 분할된다. 일반적인 대량 저장용 플래시 메모리 아키텍쳐는 셀의 대형 그룹을 소거가능한 블럭으로 배열하며, 블럭은 한번에 삭제가능한 셀의 최소 개수(삭제 단위)를 포함한다.
한 가지 상업적 형태에서, 각 블럭은 유저 데이터와 유저 데이터에 관련이 있으며 그리고/또는 그것이 저장되는 블럭에 관련이 있는 일부 오버헤드 데이터를 더한것의 1개 섹터를 저장하기에 충분한 셀을 포함한다. 섹터에 포함된 유저 데이터의 양은 그러한 메모리 시스템의 1개 클래스에서 표준 512바이트이지만 약간 다른 사이즈일 수 있다. 셀들을 개별적으로 삭제가능하게 만드는데 서로 요구되는 셀들의 개별 블럭의 격리(isolation)는 집적 회로 칩에서 공간을 차지하기 때문에, 플래시 메모리의 또 다른 클래스는 그러한 격리를 위해 요구되는 공간이 더 적어서 상당히 더 큰 블럭을 만든다. 그러나 소형 섹터로 유저 데이터를 처리하는 것이 또한 바람직하므로, 각 대형 블럭은 유저 데이터를 판독 및 프로그래밍하기 위한 기본 단위인 개별적으로 어드레스가능한 페이지로 더 분할된다. 각 페이지는 일반적으로 1개 섹터의 유저 데이터를 저장하지만, 페이지는 부분 섹터 또는 다중 섹터를 저장할 수 있다. "섹터(sector)"는 본문에서 호스트로 그리고 호스트로부터 전달되는 유저 데이터의 양을 1개 단위로서 언급하는 것으로 사용된다.
대형 블럭 시스템에서 서브시스템 컨트롤러는 호스트로부터 메모리 서브시스템에 의해 수신된 논리적 어드레스(LBA)들 간의 트랜슬레이션(translation)을 포함하는 다수의 기능을 수행한다. 이러한 트랜슬레이션은 종종 논리적 블럭 개수(LBN)와 논리 페이지에 대한 중간 항의 사용을 수반한다. 컨트롤러는 그것이 인터페이스 버스를 경유하여 플래시 메모리 소자에 넘겨주는 일련의 커맨드(command)를 통하여 하위 레벨 플래시 회로 작동을 또한 처리한다. 컨트롤러가 수행하는 다른 기능은 다양한 수단을 통하여, 이를 테면 에러 보정 코드(ECC)를 사용하여 서브시스템에 저장된 데이터의 무결성을 유지하는 것이다.
이상적인 경우에, 블럭의 모든 페이지에 있는 데이터는 일반적으로 할당되지 않은 삭제된 블럭내의 페이지로 갱신된 데이터를 기록함으로써 함께 갱신되며, 논리적-물리적 블럭 개수 테이블은 새로운 어드레스로 갱신된다. 최초 블럭은 그 후에 이용가능하게 되어 삭제된다. 그러나 일정한 블럭 내의 페이지 모두 보다도 적은 다수의 페이지에 저장된 데이터가 갱신되는 경우가 더 일반적이다. 일정한 블럭의 나머지 페이지에 저장된 데이터는 변동되지 않은채 남아있다. 이러한 발생의 가능성은 블럭당 저장된 데이터 섹터의 개수가 더 높은 시스템에서 더 높다. 그러한 부분적 블럭 갱신을 달성하는데 사용되는 한 가지 기술은 사용되지 않은 삭제된 블럭의 해당 페이지 번호로 갱신되도록 페이지의 데이터를 기록하고 그 후 최초 블럭으로부터 새로운 블럭의 페이지로 변동되지 않은 페이지를 복사하는 것이다. 최초 블럭은 그 후에 삭제되고 데이터가 나중에 프로그래밍될 수 있는 사용되지 않은 블럭의 목록에 추가된다. 또 다른 기술은 갱신된 페이지들을 새로운 블럭에 유사하게 기록하지만 페이지들이 안 쓰이는 데이터를 포함함을 지시하도록 갱신되는 최초 블럭에서 페이지들의 플래그들을 변동시킴으로써 데이터들의 다른 페이지들을 새로운 블럭으로 복사하여야 할 필요성을 제거한다. 그 후에는 데이터가 판독될 때, 새로운 블럭의 페이지로부터 판독된 갱신된 데이터가 안 쓰이는 것으로서 플래그되지 않은 최초 블럭의 페이지들로부터 판독된 변동되지 않은 데이터와 결합된다.
본 발명은 블록 내의 페이지 모두 보다도 적은 데이터가 갱신될 때, 최초 블럭에서 새로운 블록으로 변동되지 않는 데이터의 복사 및 최초 블럭 내에서 플래그를 갱신할 필요성이 회피되는 메모리 시스템의 작동 방법을 제공한다. 본 발명의 여러 기술적 과제는 하기의 상세한 설명에 기재된 사항으로부터 당업자에게 인식될 것이다.
본 발명의 한 가지 주요 양태에 따라, 간략하게 그리고 일반적으로, 블럭 내의 페이지 모두 보다도 소수의 데이터가 갱신될 때, 최초 블럭에서 새로운 블럭으로 변동되지 않은 데이터의 복사 및 최초 블럭 내에서 플래그들을 갱신할 필요성이 회피된다. 이는 공동의 논리적 어드레스를 갖는 데이터의 갱신된 페이지와 대체된 데이터 페이지 모두를 유지시킴으로써 달성된다. 데이터의 최초 및 갱신된 페이지들은 그후 그것들이 프로그래밍되었던 상대적인 순서에 의해 구별된다. 판독 중에는, 동일한 논리적 어드레스를 가지며 페이지에 저장된 가장 최근의 데이터는 데이터의 변동되지 않은 페이지와 결합되며 갱신된 페이지의 최초 버전에 있는 데이터는 무시된다. 갱신된 데이터는 최초 데이터보다는 상이한 블럭 내의 페이지에, 또는 동일한 블럭 내의 이용가능한 사용되지 않은 페이지에 기록될 수 있다. 한 가지 특정한 구현예에 있어서, 시간 스탬프의 형태는 동일한 논리적 어드레스를 갖는 페이지들이 기록되었던 상대적 순서를 결정하는 것을 참작하는 데이터의 각 페이지에 저장된다. 다른 특정한 구현예에 있어서, 페이지들이 블럭내에서 특정한 순서로 프로그래밍되는 시스템에서, 시간 스탬프의 형태는 데이터의 각 페이지에 저장되며, 블럭 내에서 페이지의 가장 최근의 복사가 블럭내의 그 물리적 위치에 의해 설정된다.
이러한 기술들은 최초 블럭에서 새로운 블럭으로 변동되지 않은 데이터를 복사해야 하는 필연성과, 데이터가 갱신되었었던 최초 블럭의 페이지에 있는 플래그 또는 다른 데이터를 변동시킬 필요성을 회피시킨다. 대체된 페이지에 있는 플래그 또는 다른 데이터를 변동시키지 않음으로써, 그러한 기록 작동으로부터 발생할 수 있는 동일한 블럭의 인접한 페이지에 이미 기록된 데이터를 교란시키는 잠재성이 제거된다. 또한 부가적인 프로그램 작동의 업무 불이익이 회피된다.
부가적인 작동 특징은, 상기 요약된 기술들과 관련하여 사용되어, 개별 메모리 셀 블럭들 내에 데이터의 개별 페이지의 논리적 오프셋의 트랙을 유지시킴으로써, 갱신된 데이터는 대체된 데이터처럼 동일한 물리적 페이지로 저장될 필요가 없다. 이는 새로운 블럭들의 페이지들의 더 효율적인 사용을 허용하며, 심지어 갱신된 데이터가 대체된 데이터처럼 동일한 블럭의 삭제된 페이지에 저장되도록 허용한다.
본 발명의 또 다른 주요 양태는 단일 작동의 부분으로서 함께 프로그래밍 및 판독하기 위하여 메모리 어레이의 개별적인 유니트(또한 "서브-어레이(sub-array)"라 함)에 위치된 2개 이상의 블럭을 함께 그룹지운다. 그러한 다중 블럭 그룹은 본문에서 "메타블럭(metablock)"으로서 언급된다. 그 구성요소 블럭들은 단일 메모리 집적 회로 칩에 위치되거나, 또는 1개 이상의 그러한 칩을 사용하는 시스템에서, 2개 이상의 상이한 칩에 위치될 수 있다. 이러한 블럭들 중 한 개 블럭의 일부 페이지에 있는 데이터가 갱신될 때, 동일한 유니트에 있는 다른 블럭의 사용이 요구된다. 실제로, 상기된 기술들 또는 다른 기술들은 메타블럭의 각 블럭과 개별적으로 사용될 수 있다. 따라서 메타블럭의 1개 이상의 블럭의 페이지 내에 있는 데이터가 갱신될 때, 1개 이상의 부가 블럭 내에 있는 페이지들이 사용될 것이 요구된다. 만일 메타블럭을 형성하는 4개의 상이한 메모리 유니트의 4개 블럭이 있다면, 예를 들면, 부가적인 4개 블럭에 이르기까지, 각각의 유니트에 있는 블럭이 최초 블럭의 갱신된 데이터를 저장하는데 사용될 약간의 가능성이 있다. 1개의 갱신 블럭은 잠재적으로는 각 유니트에서 최초 메타블럭의 각 블럭에 대해 요구된다. 게다가, 본 발명에 따라, 메타블럭에서 1개 이상의 블럭들의 페이지로부터 갱신된 데이터는 유니트들 중 단지 1개 유니트에 있는 공동의 블럭의 페이지에 저장될 수 있다. 이는 갱신된 데이터를 저장하는데 요구되는 사용되지 않은 삭제된 블럭의 개수를 상당히 감소시키므로, 데이터를 저장하는데 이용가능한 메모리 셀 블럭의 더 효율적인 사용을 가능하게 한다. 이러한 기술은 메모리 시스템이 주기적으로 메타블럭으로부터 단일 페이지를 갱신할 때 특히 유용하다.
본 발명의 부가적인 양태, 특징 및 이점들은 예시적인 실시예들의 하기 설명에 포함되며, 이 설명은 첨부도면들과 관련하여 해석되어야 한다.
본 발명에 따라서 최초 블럭에서 새로운 블럭으로 변동되지 않은 데이터를 복사해야하는 필연성과, 데이터가 갱신되었었던 최초 블럭의 페이지에 있는 플래그 또는 다른 데이터를 변동시킬 필요성이 회피된다. 대체된 페이지에 있는 플래그 또는 다른 데이터를 변동시키지 않음으로써, 그러한 기록 작동으로부터 발생할 수 있는 동일한 블럭의 인접한 페이지에 이미 기록된 데이터를 교란시키는 잠재성이 제거된다. 또한, 부가적인 프로그램 작동의 업무 불이익이 회피된다.
본 발명에 따라서 새로운 블럭들의 페이지들을 더 효율적인 사용할 수 있고, 갱신된 데이터가 대체된 데이터처럼 동일한 블럭의 삭제된 페이지에 저장될 수 있다.
도 1은 통상적인 플래시 메모리 소자 내부 아키텍쳐를 나타낸다. 주요 특징은 입력/출력(I/O) 버스(411)와 외부 컨트롤러로 인터페이스하는 제어신호(412), 커맨드, 어드레스 및 상태 신호에 대한 레지스터들을 갖는 내부 메모리 작동을 제어하는 메모리 제어 회로(450)를 포함한다. 플래시 EEPROM 셀의 1개 이상의 어레이(400)가 포함되며, 각 어레이는 그 자신의 열 디코더(XDEC)(401)와 행 디코더(YDEC)(402), 감지 증폭기와 프로그램 제어 회로(SA/PROG)(454)의 그룹 및 데이터 레지스터(404)를 구비한다. 현재, 메모리 셀들은 1개 이상의 전도성 플로팅 게이트를 저장 엘리먼트로서 일반적으로 포함하지만 다른 장기적인 전자 전하 저장 엘리먼트가 대신 사용될 수 있다. 메모리 셀 어레이는 각 저장 엘리먼트에 대해 규정된 전하의 2개 레벨로 작동되어 각 엘리먼트에 1개 비트의 데이터를 저장한다. 이와 달리, 2개 이상의 저장 상태가 각 저장 엘리먼트에 규정되면, 그 경우에는, 1 개 비트 이상의 데이터가 각 엘리먼트에 저장된다.
바람직하다면, 관련 X 디코더, Y 디코더, 프로그램/검증 회로, 데이터 레지스터 등을 함께 갖춘 다수의 어레이(400)는, 예를 들면, 1999년 3월 30일 발행되었으며 본 출원의 양수인, 샌디스크 코포레이션에 양도된 미국 특허 제5,890,192호에 의해 교시된 것처럼 제공되며, 이는 참조로 포함된다. 관련된 메모리 시스템 특징들은 케빈 콘레이 등에 의해 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/O 버스 AD[7:0](411)에 커플링된 데이터 레지스터를 거쳐 전달된다. 데이터 레지스터(404)는 또한 감지 증폭기/프로그래밍 회로(454)에 커플링된다. 각 감지 증폭기/프로그래밍 회로 엘리먼트에 커플링된 데이터 레지스터의 엘리먼트의 개수는 메모리 셀의 각 저장 엘리먼트에 저장되는 비트수에 좌우하며, 플래시 EEPROM 셀은 각각 1개 이상의 플로팅 게이트를 저장 엘리먼트로서 포함한다. 각 저장 엘리먼트는, 메모리 셀이 다중-상태 모드로 작동된다면, 다수의 비트, 이를 테면 2 또는 4개 비트를 저장한다. 이와 달리, 메모리 셀은 저장 엘리먼트 당 1개 비트의 데이터를 저장하도록 이진 모드로 작동될 수 있다.
열 디코더(401)는 액세스되어야 하는 물리적 페이지를 선택하기 위해서 어레이(400)에 대한 열 어드레스를 디코드한다. 열 디코더(401)는 열 어드레스를 내부 열 어드레스 라인(419)를 거쳐 메모리 제어부(450)로부터 수신한다. 행 디코더(402)는 행 어드레스를 내부 행 어드레스 라인(429)을 거쳐 메모리 제어부(450)로부터 수신한다.
도 2는 일반적인 비휘발성 데이터 저장 시스템의 아키텍쳐를 나타내며, 이 경우에, 플래시 메모리 셀을 저장 매체로서 사용하고 있다. 한 가지 형태에서, 이러한 시스템은 호스트의 콘센트로 삽입될 때 호스트 인터페이스를 제공하기 위해 일측을 따라서 연장하는 전기적 커넥터를 구비하는 탈착형 카드내에 밀봉된다. 이와 달리, 도 2의 시스템은 영구적으로 설치 내장된 회로 또는 다른 것의 형태로 호스트 시스템에 내장될 수 있다. 상기 시스템은 높은 레벨 호스트 및 메모리 제어 기능을 수행하는 단일 컨트롤러(301)를 이용한다. 플래시 메모리 매체는 1개 이상의 플래시 메모리 소자로 이루어지며, 각각의 그러한 소자는 종종 그 자체의 집적 회로 칩에 형성된다. 시스템 컨트롤러와 플래시 메모리는 상기 컨트롤러가 커맨드, 어드레스를 로드하고 데이터를 플래시 메모리 어레이로 그리고 어레이로부터 전달하도록 허용하는 버스(302)에 의해 연결된다. 상기 컨트롤러(301)는 유저 데이터가 플래시 메모리 어레이로 그리고 어레이로부터 전달되는 호스트 시스템(도시되지 않음)와 인터페이스한다. 도 2의 시스템이 카드에 포함되는 경우에 있어, 호스트 인터페이스는 카드와 호스트 장치상에 일치하는 플러그 및 소켓 어셈블리(도시되지 않음)를 포함한다.
상기 컨트롤러(301)는 특정한 논리적 어드레스에서 시작하는 유저 데이터의 1개 이상의 섹터를 판독 또는 기록하기 위해 호스트로부터 커맨드를 수신한다. 이 어드레스는 메모리 셀의 물리적 블럭의 바운드리(boundary)와 정렬하거나 하지 않을 수 있다.
다중 페이지로 분할되는 대용량 메모리 셀 블럭을 갖는 일부 종래의 시스템 에서는, 상기된 바와 같이, 갱신되지 않은 블럭으로부터의 데이터는 최초 블럭으로부터 호스트에 의해 기록되는 새로운 갱신된 데이터를 포함하는 새로운 블럭으로 복사될 필요성이 있다. 이러한 기술은 도 4에 도시되어 있으며, 여기에서는 다수 블럭으로 된 2개 메모리가 포함되어 있다. 1개 블럭(11)(PBN0)은 각각의 페이지에 유저 데이터의 1개 섹터를 저장하기 위해 8개 페이지로 분할되는 것으로 도시되어 있다. 각 페이지에 포함된 오버헤드 데이터 필드는 상기 블럭(11)의 LBN을 포함하는 필드(13)를 포함한다. 논리적 블럭내에서 논리적 페이지의 순서는 물리적 블럭 내의 해당 물리적 페이지에 관련하여 고정되어 있다. 제2의 유사하게 구성된 블럭(15)(PBN1)은 사용되지 않은, 삭제된 블럭들의 목록에서 선택된다. 최초 블럭(11)의 페이지 3-5의 데이터는 새로운 데이터(17)의 3개 페이지에 의해 갱신된다. 새로운 데이터는 새로운 블럭(15)의 해당 페이지 3-5로 기록되며, 상기 블럭(11)의 페이지 0-2, 6 및 7의 유저 데이터는 새로운 블럭(15)의 해당 페이지로 복사된다. 새로운 블럭(15)의 모든 페이지는 단일 시퀀스의 프로그래밍 작동으로 바람직하게 프로그래밍된다. 상기 블럭(15)이 프로그래밍된 후, 최초 블럭(11)은 삭제되고 차후 사용을 위하여 목록에 위치된다. 블럭(11과 15)간의 데이터 복사는, 최초 블럭에서 1개 이상의 페이지로부터 데이터를 판독하고 이어서 동일한 데이터를 새롭게 할당된 블럭의 페이지로 프로그래밍하는 단계를 수반하여, 저장 시스템의 기록 업무와 이용할수 있는 수명을 매우 감소시킨다.
도 5A 및 5B와 관련하여, 부분 테이블은 도 4와 관련하여 기술된 데이터의 갱신 이전(도 5A)과 이후(도 5B)에 최초 및 새로운 물리적 블럭(11과 15)으로 논리 적 블럭의 맵핑을 나타낸다. 데이터 갱신 이전에, 최초 블럭(11)은, 본 예에서, LBN0의 페이지 0-7를 PBN0의 해당 페이지 0-7로 저장한다. 데이터 갱신 이후에, 새로운 블럭(15)은 LBN0의 페이지 0-7을 PBN1의 해당 페이지 0-7에 저장한다. LBN0으로부터 데이터를 판독하는 요청의 수신은 그후에는 물리적 블럭(11) 대신에 물리적 블럭(15)으로 향한다. 통상적인 컨트롤러 작동에서, 도 5A와 5B에 예시된 형태의 테이블은 데이터 필드(13)를 판독할 때 어드레스되는 PBN의 정보와 물리적 페이지로부터 판독된 LBN 필드(13)로 이루어진다. 상기 테이블은, 비록 전체 시스템에 대하여 완전한 테이블의 일부분만이 통상적으로 한번에 저장되더라도, 액세스의 용이를 위해 컨트롤러의 휘발성 메모리에 일반적으로 저장된다. 상기 테이블의 일부분은 일반적으로 상기 테이블 부분에 포함된 블럭들을 수반하는 판독 또는 프로그래밍 작동에 앞서서 즉시 형성된다.
다른 종래 기술의 시스템에서, 플래그들은 페이지에 유저 데이터와 함께 레코딩되며 새롭게 기록된 데이터에 의해 대체되는 최초 블럭에 있는 데이터의 페이지들이 무효임을 지시하는데 사용된다. 새로운 데이터만이 새롭게 할당된 블럭에 기록된다. 따라서 기록 작동에 수반되지는 않지만 대체된 데이터로서 동일한 물리적 블럭에 포함된 블럭의 페이지에 있는 데이터는 새로운 블럭으로 복사될 필요가 없다. 이러한 작동은 도 6에 도시되어 있으며, 최초 블럭(21)(PBN0)내의 데이터의 페이지 3-5가 다시 갱신된다. 갱신된 데이터(23)의 페이지 3-5는 새로운 블럭(25)의 해당 페이지 3-5로 기록된다. 동일한 작동의 부분으로서, 예전/새로운 플래그(27)는 그러한 페이지들의 데이터가 예전 것이라고 지시하도록 각각의 페이지 3- 5에 기록되며, 나머지 페이지 0-2, 6 및 7에 대한 플래그(27)는 "새로운"으로 설정되어 남아있다. 유사하게, 새로운 PBN1은 갱신된 데이터가 위치된 곳을 지시하도록 블럭(21)에 있는 각 페이지 3-5의 다른 오버헤드 데이터 필드로 기록된다. LBN과 페이지는 각 물리적 페이지내의 필드에 저장된다.
도 7A와 7B는 데이터 갱신이 완료되기 이전(도 7A)과 이후(도 7B)에 데이터 LBN/페이지와 PBN/페이지간의 대응 테이블이다. LBN의 변동되지 않은 페이지 0-2, 6과 7은 PBN0으로 맵핑되며 갱신된 페이지 3-5는 PBN1에 잔류하는 것으로 예시되어 있다. 도 7B의 테이블은 메모리 컨트롤러에 의해여 데이터 갱신 이후에 블럭 PBN0 내에 있는 페이지들의 오버헤드 데이터 필드(27, 29 및 31)를 판독함으로써 이루어진다. 상기 플래그(27)가 최초 블럭 PBN0의 각 페이지 3-5에 "예전것(old)"로 설정되므로, 그 블럭은 더 이상 그 페이지에 대한 테이블에 나타나지 않는다. 오히려, 새로운 블럭 번호 PBN1이 대신 나타나며, 갱신된 페이지의 오버헤드 필드(29')로부터 판독된다. 데이터가 LBN0으로부터 판독될 때, 도 7B의 우측 컬럼에 목록으로 나열된 페이지에 저장된 유저 데이터가 판독되고 그후에 호스트로 전달을 위해 예시된 순서로 어셈블링된다.
다양한 플래그들은 통상적으로 다른 관련된 오버헤드 데이터, 이를 테면 LBN과 ECC로서 동일한 물리적 페이지에 위치된다. 따라서 예전/새로운 플래그(27) 등을 프로그래밍하기 위해서, 페이지에서, 데이터가 대체되었었던 곳은 페이지가 다중 프로그래밍 사이클을 지원하는 것을 필요로 한다. 즉, 메모리 어레이는 그 페이지들이 삭제 부분들 간에 적어도 2개 단계로 프로그래밍될 수 있는 능력을 구비해 야 한다. 게다가, 블럭은, 더 높은 오프셋 또는 어드레스를 갖는 블럭의 다른 페이지들이 이미 프로그래밍되었을 때, 페이지를 프로그래밍하는 능력을 지원해야 한다. 그러나 일부 플래시 메모리의 제한은 블럭에 있는 페이지들이 단지 물리적인 순차적 방식으로 프로그래밍될 수 있음을 명시함으로써 그러한 플래그들의 사용을 방해한다. 게다가, 상기 페이지들은 유한 개수의 프로그램 사이클을 지원하며 일부 경우에 프로그래밍된 페이지의 부가적인 프로그래밍은 허용되지 않는다.
필요한 것은 기존 블럭에 저장된 데이터를 부분적으로 대체하는 데이터가 기존 블럭으로부터 변동되지 않은 데이터를 복사하거나 또는 플래그들을 이미 프로그래밍되었던 페이지들로 프로그래밍하는 것 없이 기록될 수 있는 메커니즘이다.
본 발명의 예시적인 실시예의 설명
수많은 상이한 유형의 플래시 EEPROM이 있으며, 그 각각은 소량의 집적 회로 영역에 형성된 고성능 메모리 시스템을 작동시키도록 주위에서 작용되어야 하는 그 자신의 제한을 제시한다. 일부는 이미 프로그래밍되었었던 페이지로 임의의 데이터를 기록하는 것을 고려하지 않으므로, 대체된 데이터를 포함하는 페이에 있는 플래그를 갱신하는 것은 상기된 바와 같이 가능하지 않다. 다른 것들은 그러한 플래그들이 기록되는 것을 허용하지만 그럴시 데이터가 대체되는 페이지에서는 현재 남아있는 동일한 블럭의 다른 페이지에 있는 데이터를 교란시킬 수 있다.
이것이 문제점이라고 발견되었었던 예시적인 메모리 시스템은 NAND형으로, 메모리 셀의 행이 비트 라인과 공동 전위 사이에 직렬 회로 스트링으로서 형성된다. 각 워드 라인은 각각의 그러한 스트링에서 한 개 셀로 형성되 메모리 셀의 열 에 교차하여 연장한다. 그러한 메모리 상태에 특히 영향을 받는 그러한 메모리는 각각의 그러한 셀에 1개 이상의 비트 데이터를 저장하기 위해 다중-상태 모드로 작동될 때 교란한다. 그러한 작동은 메모리 셀 트랜지스터 임계 전압 범위의 이용가능한 윈도우를 협소한 비-오버랩핑 전압 레벨 범위로 분할하며, 각각의 범위는 레벨의 개수만큼 더 협소해지고, 따라서 각 셀에 저장되는 비트 수는 증가하게 된다. 예를 들면, 4개의 임계 범위가 사용된다면, 2 비트의 데이터가 각 셀의 저장 엘리먼트에 저장된다. 그리고, 각각의 4개 임계전압 범위가 물론 소형이므로, 동일한 블럭에 다른 셀들을 프로그래밍함으로써 교란받는 셀 상태의 기회가 다중-상태 작동으로 증가된다. 이러한 경우에는, 도 6, 7A 및 7B와 관련하여 기술된 것처럼, 예전/새로운 또는 다른 플래그의 기록이 허용되지 않는다.
도 4-7B와 관련하여 상기된 각각의 기존 메모리 처리 기술의 공통적인 특징은 논리적 블럭 번호(LBN)와 페이지 오프셋이 시스템 내에서 기껏해야 2개의 물리적 블럭 번호(PBN)들로 맵핑된다는 것이다. 하나의 블럭은 최초 블럭이며 다른 블럭은 갱신된 페이지 데이터를 포함한다. 데이터는 그 논리적 어드레스(LBN)의 하위 순서 비트에 해당하는 블럭의 페이지 위치에 기록된다. 이러한 맵핑은 다양한 유형의 메모리 시스템에서 일반적이다. 하기되는 기술에서는, 갱신된 데이터를 포함하는 페이지들은 데이터가 대체되었었던 페이지로서 동일한 LBN과 페이지 오프셋에 또한 할당된다. 그러나 최초 데이터를 포함하는 페이지를 대체된 것으로서 태그하기 보다는, 메모리 컨트롤러는, (1) 동일한 논리적 어드레스를 갖는 페이지들이 기록되었던 순서의 트랙을 유지시킴으로써, 이를 테면 카운터를 사용함으로써, 그리 고/또는 (2) 물리적 페이지 어드레스에 의하여, 새로운, 갱신된 버전을 포함하는 페이지들과 대체된 데이터를 포함하는 페이지들을 구별하여, 페이지들이 블럭 내에서 최하위 페이지 어드레스로부터 최상위 페이지 어드레스로 순서대로 기록될 때, 더 높은 물리적 어드레스는 데이터의 가장 최근의 복사를 포함한다. 판독을 위해 데이터가 액세스될 때에는, 따라서 동일한 논리적 어드레스를 갖는 대체된 데이터를 포함하는 페이지들이 있는 경우에, 가장 최근 페이지에 있는 데이터가 사용되며, 대체된 데이터가 무시된다.
이러한 기술의 첫 번째 특정한 구현예는 도 8및 도 9와 관련하여 기술되어 있다. 상기 상황은, 각 블럭이 16개 페이지를 포함하는 것으로 예시되어 있더라도, 도 4-7B와 관련하여 기술된 종래의 기술, 즉 블럭(35) 내에 데이터의 부분적 재기록에서 처럼 이러한 예에서도 동일하다. 블럭(35)(PBN 35)의 각각의 페이지 3-5에 대한 새로운 데이터(37)는, 이미 기술된 예와 유사하게, 이미 삭제되었었던 새로운 블럭(39)(PBN1)의 3개 페이지에 기록된다. 갱신된 데이터를 포함하는 PBN1의 페이지들로 기록된 LBN 및 페이지 오프셋 오버헤드 데이터 필드(41)는 초기 블럭(PBN0)에 있는 대체된 데이터의 페이지들에서 처럼 동일하다. 도 9의 테이블은, 필드(41,41')내의 데이터로부터 형성되어, 이것을 나타낸다. 논리적 LBN과 페이지 오프셋은, 제1행에서는, 제1 물리적 블럭(PBN0) 양측으로 맵핑되며, 제2행에서는, 갱신되었던 페이지들에 대해, 제3행의 제2 물리적 블럭(PBN1)으로 맵핑된다. 새로운 블럭(PBN1) 내에서 갱신된 데이터의 각각의 3개 페이지로 기록된 LBN과 논리적 페이지 오프셋(41')은 최초 블럭(PBN0)의 각각의 해당 논리적 페이지로 기록된 오프 셋(41)처럼 동일하다.
동일한 LBN과 페이지 오프셋을 갖는 2개 페이지 중 어느것이 갱신된 데이터를 포함하는지를 결정하기 위해서, 각 페이지는 동일한 논리적 어드레스를 지닌 다른 페이지들이 프로그래밍되는 시간에 적어도 비례하여 프로그래밍 시간의 지시를 제공하는 또 다른 오버헤드 필드(43)를 포함한다. 이는 컨트롤러가, 메모리로부터 데이터를 판독할 때, 동일한 논리적 어드레스로 할당된 데이터의 페이지들의 상대적인 연령을 결정하는 것을 허용한다.
시간 스탬프의 형태를 포함하는 필드(43)가 기록되는 몇 가지 방식이 있다. 가장 간단한 방법은, 그 관련 페이지의 데이터가 프로그래밍될 때, 그 필드에 시스템의 실시간 클럭의 출력을 레코딩하는 것이다. 동일한 논리적 어드레스를 지닌 차후 프로그래밍된 페이지들은 그 후에 필드(43)에 레코딩된 차후 시간을 갖는다. 그러나 그러한 실시간 클럭이 시스템에서 이용가능하지 않을 때, 다른 기술들이 사용될 수 있다. 한 가지 특정한 기술은 모듈로-N 카운터의 출력을 필드(43)의 값으로서 저장하는 것이다. 카운터의 범위는 동일한 논리적 페이지 번호로 저장되는 것으로 예상되는 페이지의 개수보다도 1개 더 많아야 한다. 최초 블럭(PBN0)에 있는 특정 페이지의 데이터를 갱신할 때, 예를 들면, 컨트롤러는 우선 데이터가 갱신되는 페이지의 필드(43)에 저장된 카운트를 판독하며, 카운트를 소정의 양만큼, 이를 테면 1씩 증분하며, 그 후 새로운 블럭(PBN1)의 증분된 카운트를 필드(43')로서 기록한다. 상기 카운터는, N+1의 카운트에 도달시, 0으로 롤 오버(roll over)한다. 동일한 LBN을 지닌 블럭의 개수는 N보다 적으므로, 저장된 카운트의 값에서 불연속점 이 항상 있다. 불연속점으로 표준화하여 롤오버를 처리하는 것이 용이하다.
상기 컨트롤러는, 데이터를 판독하도록 호출시, 동일한 LBN 및 페이지 오프셋을 구비하는 페이지 필드(43,43')의 카운트를 비교함으로써 새로운 및 대체된 페이지의 데이터 사이를 용이하게 구별한다. 데이터 화일의 가장 최근의 버전을 판독해야하는 필요에 응답하여, 동일한 새로운 페이지로부터의 데이터는 그 후에 갱신되지 않았었던 최초 페이지와 함께 데이터 화일의 가장 최근의 버전으로 어셈블리된다.
도 8의 예에서는, 새로운 데이터 페이지(37)들은, 최초 블럭(PBN0)에서 교체하는 동일한 페이지 3-5에서 보다는 새로운 블럭(PBN1)의 첫 번째 3개 페이지 0-2에 저장됨에 유의한다. 개별적인 논리적 페이지 번호의 트랙을 유지함으로써, 갱신된 데이터는 상기 갱신된 데이터가 포함되는 예전 블럭의 페이지 오프셋처럼 새로운 블럭의 동일한 페이지 오프셋에 저장될 필요가 없다. 갱신된 데이터의 페이지(들)는 또한 대체되는 데이터의 페이지처럼 동일한 블럭의 삭제된 페이지에 기록될 수 있다.
결국, 새로운 데이터가 기록될 수 있는 물리적 페이지를 제한하는 상기된 기술에 의해 제시되는 어떠한 제약도 없다. 그러나 이러한 기술들이 구현된 메모리 시스템이 약간의 제약을 제시할 수 있다. 예를 들면, 하나의 NAND 시스템은 블럭 내의 페이지들이 순차적인 순서로 프로그래밍되는 것을 요구한다. 그것은, 새로운 블럭(25)에서 수행된 것처럼(도 6 참조), 중간 페이지 3-5의 프로그래밍이 페이지 0-2를 낭비하여, 나중에 프로그래밍될 수 없음을 의미한다. 그러한 제한적인 시스 템에서 새로운 블럭(39)의 첫 번째 이용가능한 페이지에 새로운 데이터(37)를 저장함으로써(도 8), 나머지 페이지 3-7이 다른 데이터를 저장하도록 나중 사용을 위해 이용가능하다. 실제로, 블럭(39)이, 새로운 데이터(37)의 3개 페이지가 저장되고 있었던 그 때에 페이지 0-4에 저장되는 다른 데이터를 갖는다면, 새로운 데이터는 나머지 사용되지 않은 페이지 5-7에 저장된다. 이는 그러한 시스템에 이용가능한 저장 용량을 최대로 이용한다.
도 8의 블럭들의 개별 페이지에 저장된 데이터의 구조예가 도 10에 예시되어 있다. 가장 큰 부분은 유저 데이터(45)이다. 유저 데이터로부터 계산된 에러 보정 코드(ECC)(47)가 또한 페이지에 저장된다. 오버헤드 데이터(49)는, LBN 및 페이지 태그(41)(논리적 페이지 오프셋), 시간 스탬프(43) 및 오버헤드 데이터로부터 계산된 ECC(51)를 포함하여, 또한 페이지에 저장된다. 유저 데이터 ECC(47)로부터 독립된 오버헤드 데이터를 커버하는 ECC(50)를 구비함으로써, 상기 오버헤드(49)는 유저 데이터로부터 독립적으로 판독되며 페이지에 저장된 모든 데이터를 전달할 필요없이 타당한 것으로서 평가될 것이다. 그러나 이와 달리, 오버헤드 데이터(49)의 개별적인 판독이 빈번한 경우가 아닌 경우에는, 페이지에 있는 모든 데이터는 페이지에서 ECC 비트의 총 개수를 감소시키기 위해서 단일 ECC에 의해 커버될 수 있다.
독창적인 기술의 제2 특정한 구현예는 또한 도 8과 관련하여 기술될 수 있다. 이러한 예에서, 시간 스탬프는 블럭들에 저장된 데이터의 상대적인 연령을 결정하는데만 사용되며, 동일한 LBN과 페이지 번호를 전달하는 페이지들 중에서 가장 최근의 페이지는 그들 간의 상대적인 물리적 위치에 의해 결정된다. 상기 시간 스 탬프(43)는 그후에 각 페이지의 부분으로서 저장될 필요는 없다. 게다가, 단일 시간 스탬프는, 블럭의 부분으로서 또는 비휘발성 메모리내에서, 각 블럭에 대해 저장될 수 있으며, 데이터의 페이지가 블럭으로 기록되는 각 시간에 갱신된다. 데이터는 그후에 동일한 LBN을 갖는 데이터 페이지를 포함하는 가장 최근의 갱신된 블럭의 마지막 페이지로부터 시작하여 물리적 어드레스의 내림차순으로 페이지로부터 판독된다.
도 8에서, 예를 들면, 페이지들은 새로운 블럭(PBN1)에서 마지막(페이지 15)에서부터 처음(페이지 0)으로 판독되며, 이어서 최초 블럭(PBN0)의 페이지들을 동일한 역순으로 판독한다. 일단 논리적 페이지 3, 4 및 5가 새로운 블럭(PBN1)으로부터 판독되었다면, 동일한 논리적 페이지 번호에 의해 동일한 최초 블럭(PBN0)의 페이지에서 대체된 데이터는 판독 프로세스중에 스킵된다. 특히, 예전 블럭(PBN0)의 물리적 페이지 3, 4 및 5는, 본 예에서, 컨트롤러가 그들의 LBN/페이지(41)가 새로운 블럭(PBN1)으로부터 이미 판독된 페이지의 것들과 동일한 것으로 결정하면, 판독 중에 스킵된다. 이러한 프로세스는 판독 속도를 증가시키며 각 페이지에 저장될 필요가 있는 오버헤드 비트(49)의 개수를 감소시킨다. 게다가, 이러한 역행하는 페이지 판독 기술이 사용될 때, 판독 작동 중에 컨트롤러에 의해 사용된 도 9의 테이블은 도 5A 및 5B의 형태로 간략화될 수 있다. 물리적 블럭이 프로그래밍되었던 상대적인 시간과 공동의 논리적 블럭의 데이터를 포함하는 그 물리적 블럭의 동일성은 이러한 효율적인 판독 프로세스를 수행하기 위해서 식별될 필요가 있다.
도 11은 블럭(PBN0)에 최초로 기록된 데이터에 제 2 갱신을 포함함으로써 도 8 예를 연장하여 도시한다. 논리적 페이지 5, 6, 7 및 8에 대한 새로운 데이터는 그들의 LBN 및 페이저 번호와 함께 새로운 블럭(PBN1)의 각각의 물리적 페이지 3, 4, 5 및 6에 기록된다. 본 예에서, 논리적 페이지 5의 데이터가 또 다시 갱신됨에 유의한다. 새로운 블럭(PBN1)의 마지막 페이지로부터 시작하는 판독 작동중에, 데이터의 가장 최근의 기록된 논리적 페이지 8, 7 6 및 5는 우선 그 순서로 판독된다. 따라서 PBN1의 물리적 페이지 2에서 LBN/페이지 오버헤드 필드는 물리적 페이지 3으로부터 판독된 것과 동일하므로, 페이지 2의 유저 데이터가 판독되지 않음에 유의한다. 물리적 페이지 1과 0이 그후에 판독된다. 다음, 최초 블럭(PBN0)의 페이지는 물리적 페이지 15에서 시작하여 판독된다. 물리적 페이지 15-9를 판독 후, 컨트롤러는 각각의 페이지 8-3의 LBN/페이지 필드가 데이터가 이미 판독되었던 페이지의 필드에 매칭하여, 예전 데이터가 그 페이지로부터 판독될 필요가 없음을 주목한다. 그래서 판독 프로세스의 효율성이 개선된다. 결국, 물리적 페이지 2-0의 최초 데이터는 그 데이터가 갱신되지 않았으므로 판독된다.
페이지를 역순으로 판독하는 이러한 예는 대체된 데이터 페이지로부터 새로운 데이터 페이지를 효과적으로 정렬시키는데 왜냐하면 데이터를 페이지 0으로부터 순서대로 삭제된 블럭의 물리적 페이지 위치에 기록되기 때문임에 유의한다. 이러한 기술은 그러한 특정한 프로그래밍 제한을 갖는 메모리 시스템에 사용하는 것으로 제한되지 않는다. 페이지들이 일정한 블럭 내에서 프로그래밍된 순서가 식별되는 한, 그 페이지로부터의 데이터는 그것들이 기록되었던 것으로부터 역순으로 판독될 수 있다. 바람직한 것은 이미 프로그래밍되었던 다른 것들과 공통적인 LBN을 갖는 가장 최근의 프로그래밍된 페이지들이 우선 판독되며 이것이 가장 최근의 프로그래밍된 페이지라는 것이다. 갱신된 페이지의 가장 최근의 버전이 우선 판독되므로 따라서 대체된 버전이 용이하게 확일될 것이다.
도 11의 예에 대한 논리적 데이터와 물리적 데이터 어드레스 사이의 대응을 나타내는 테이블이 도 12에 주어져 있다. 2개의 데이터 갱신이 있었지만, 양측은 제2 블럭(PBN1)에 대한 단일 행에 의해 표현되어 있다. 논리적 페이지 5에 대해 PBN1에서 유의된 물리적 페이지는 그 페이지에 두 번째 갱신이 발생시 간단히 변동된다. 만일 갱신이 세 번째 블럭을 수반한다면, 또 다른 행이 다른 블럭에 부가된다. 도 12의 테이블은, 공통적인 LBN의 데이터가 기록되었었던 블럭에서 각각의 페이지로부터 오버헤드 데이터를 판독하여 구성되어, 역행하는 페이지 판독 기술이 사용되지 않을 때 첫 번째 구현예에 의해 사용될 수 있다. 상기된 역행하는 페이지 판독 기술이 사용될 때에는, 도 12의 테이블은 LBN의 데이터를 포함하는 모든 PBN과 PBN간의 대응을 확인하도록만 이루어져 있다.
물리적 블럭으로부터 판독된 데이터의 페이지를 구성하는 효과적인 방식이, 1개 이상의 페이지가 갱신되었을 경우에 대하여, 도 13에 의해 도시되어 있다. 충분한 공간은, 한번에 데이터의 적어도 몇 개의 페이지, 바람직하게는 데이터의 전체 블럭을 버퍼하도록 컨트롤러의 휘발성 메모리에 제공된다. 그것은 도 13에 예시된 것이다. 데이터의 16개 페이지는, 비휘발성 메모리 블럭에 저장된 양에 균등하게, 컨트롤러 메모리에 저장된다. 페이지들은 일반적으로 대게 비순서적으로 판독되므로, 데이터의 각 페이지는 다른 페이지와 관련하여 적절한 위치에 저장된다. 예를 들면, 도 11의 역행하는 페이지 작동에서, 논리적 페이지 8이 우선 판독된다면, 그것은 원에서 "1"로 지시된 것처럼 컨트롤러 메모리의 위치 8에 저장된다. 다음은, 호스트에 의해 요망되는 데이터의 모든 페이지가 판독되고 컨트롤러 메모리에 저장될 때까지 논리적 페이지 7 등의 순서로 작동한다. 페이지 데이터의 전체 세트는 그후에 버퍼 메모리에서 데이터의 순서를 조작하는것 없이 호스트로 전달된다. 데이터의 페이지들은 데이터들을 컨트롤러 메모리에서 적절한 위치에 기록함으로써 이미 구성되어 있다.
도 8 및 도 9와 관련하여 기술된 기술을 이용하는 비휘발성 메모리 시스템을 프로그래밍하는 방법이 도 14의 순서도에 도시되어 있다. 갱신되어야 하는 기존 파일의 페이지에 대한 데이터가 블럭(52)에 의해 지시된 것처럼 호스트 시스템으로부터 수신된다. 저장되어야 하는 갱신된 데이터의 페이지의 개수가 시스템 블럭의 저장 용량, 간략하게는, 상기된 예에서 블럭 용량으로서 예시된 16페이지에 균등한지 또는 더 많은지가 단계 53에 의해 결정된다. 만일 그렇다면, 단계 55에서, 1개 이상의 사용되지 않은 삭제된 블럭이 어드레스되고, 새로운 데이터 페이지가 단계 57에서 어드레스된 블럭(들)으로 기록된다. 통상적으로, 데이터의 1개 이상의 블럭의 갱신은 데이터를 저장하는 1개 이상의 블럭이 새로운 데이터에 의해 대체되었음을 초래한다. 만일 그렇다면, 단계 59에 의해 지시된 것처럼, 대체된 데이터를 지닌 그 블럭들은 삭제하기 위한 것으로 식별된다. 성능을 증가시키기 위해, 삭제 작동은 후순위로 작동하거나, 또는 호스트가 요청하였을 때 프로그래밍 또는 판독 작동이 발생하지 않는 것이 바람직하다. 삭제된 후, 블럭들은 나중 사용을 위해 사용되 지 않은 삭제된 블럭의 목록으로 되돌아간다. 이와 달리, 블럭들의 삭제는 그것들이 프로그래밍 작동에 필요할 때 까지 늦춰질 수 있다.
한편, 단계 53에서, 블럭의 전체 저장 용량을 이용하는것보다 새로운 데이터의 페이지가 더 적다고 결정되면, 다음 단계 61은 다른 데이터로 프로그래밍된 일부 페이지를 갖는 블럭에 충분한 사용되지 않은 페이지가 있는지를 결정한다, 만일 그렇다면, 그러한 블럭이 단계 63에서 어드레스된다. 그렇지 않다면, 완전히 사용되지 않은 삭제된 블럭이 단계 65에서 어드레스된다. 어느 경우에나, 단계 67에서, 새로운 데이터가 어드레스된 블럭의 사용되지 않은 페이지로 프로그래밍된다. 이러한 프로그래밍 프로세스의 부분으로서, LBN과 페이지 오프셋이 필드(41)로 기록되고, 시간 스탬프가 상기된 것처럼 갱신된 데이터의 각각의 페이지의 필드(43)(도 8)로 기록된다.
프로그래밍 프로세스의 바람직한 특징은 대체된 데이터만을 저장하는 임의의 블럭들을 차후 프로그래밍을 위해 이용가능하게 만드는 것이다. 데이터 갱신 프로세스가 전체 블럭을 대체된 데이터만으로 남겨지도록 초래하는지 하는 그러한 질문을 단계 69에서 요청받는다. 그렇다면, 그러한 블럭은 단계 71에서 삭제를 위해 대기 행렬에 넣어지고 프로세스가 그 후에 완료된다. 그렇지 않다면, 단계 71이 생략되고 데이터 갱신이 종료된다.
메타블럭 작동
프로그래밍 시간을 감소시킴으로써 성능을 개선시키기 위해서, 목표는 다른 불이익을 발생시키지 않고 알맞게 수행될 수 있는 것으로서 병렬로 동수의 셀을 프 로그래밍하는 것이다. 한가지 구현예는 메모리 어레이를 주로 독립적인 서브-어레이 또는 유니트로, 이를 테면 도 15의 다중 유니트(80-83)로 분할하며, 각 유니트는 예시된 것처럼 다수의 블럭으로 차례로 분할된다. 데이터 페이지들은 그 후에 1개 이상의 유니트로 동시에 프로그래밍된다. 다른 구성은 다중 메모리 칩으로부터 1개 이상의 이러한 유니트를 더 결합시킨다. 이러한 다수의 칩들은 단일 버스(도 2 예시됨) 또는 더 높은 데이터 처리량을 위해 다수의 독립적인 버스들에 연결될 수 있다. 이러한 연장은 프로그래밍, 판독 및 삭제 작동을 함께 하기 위해 서로 다른 유니트로부터 블럭을 링크시키는 것으로, 일예가 도 15에 예시되어 있다. 유니트(80-83)들 중 개개의 유니트로부터의 블럭(85-88)은 예를 들면 메타블럭으로서 함께 작동될 수 있다. 상기된 메모리 실시예와 마찬가지로, 각 블럭이, 메모리 어레이의 최소 삭제 가능한 그룹으로, 통상적으로 다수의 페이지로 분할되며, 최소 개수의 셀을 포함하는 페이지가 블럭내에서 함께 프로그래밍가능하다. 따라서, 도 15에 예시된 메타블럭의 프로그래밍 작동은 일반적으로 메타블럭을 형성하는 각각의 블럭(86-88)의 적어도 하나의 페이지로 데이터의 동시 프로그래밍을 포함할 것이며, 이는 메타블럭이 채워지거나 인입되는 데이터가 모두 프로그래밍될 때 까지 반복된다. 다른 메타블럭들은 어레이 유니트에 의하여 상이한 블럭으로 형성되며, 하나의 블럭은 각 유니트로 형성된다.
그러한 메모리를 작동하는 중에, 다른 경우와 마찬가지로, 전체 블럭보다는 적은 데이터의 페이지가 종종 갱신되는 것을 필요로 한다. 이는 도 4 또는 도 6 중 어느 것과 관련하여 상기된 것과 동일한 방식으로 메타블럭의 개별 블럭에 수행될 수 있지만, 도 8과 관련하여 기술된 개선된 기술의 사용에 의한 것이 바람직한다. 이러한 3가지 기술 중 어느 것이 메타블럭 중 한 개 블럭의 데이터를 갱신하도록 사용될 때, 동일한 유니트 내에 있는 메모리의 부가적인 블럭이 또한 사용된다. 게다가, 데이터 갱신은 메타블럭의 2개 이상의 블럭 중 1개 이상의 페이지에 새로운 데이터를 기록하는 것을 요구한다. 이는 그후에 메타블럭에 저장된 데이터 화일을 갱신하기 위해서, 심지어 몇 개 페이지에만 있는 데이터가 갱신되더라도, 각각의 4개 유니트에서 한 개씩하여, 4개까지 이르는 부가적인 블럭(90-93)의 사용을 요구할 수 있다.
그러한 부분적 블럭 갱신을 위해 요구되는 블럭의 개수를 감소시키기 위해서는, 본 발명의 다른 양태에 따라, 도시된 메타블럭의 임의의 블럭 내에서 데이터 페이지의 갱신은, 상기 블럭(80)에서 사용되지 않은 페이지가 남아있는 한, 도 16에 의해 도시된 것처럼, 메모리 유니트(80)의 단일 부가적인 블럭(90)에 이루어진다. 만일, 예를 들면, 블럭(86)의 3개 페이지와 블럭(88)의 2개 페이지에 있는 데이터가 한번에 갱신된다면, 새로운 데이터의 5개 페이지 모두는 블럭(90)에 기록된다. 이는 메모리의 1개 블럭의 사용을 감소시킬 수 있어서, 1개 블럭에 의해 이용가능한 삭제된 블럭의 개수를 효과적으로 증가시킬 수 있다. 이는 삭제된 블럭의 목록이 소모될 때의 시간을 회피시키거나, 또는 적어도 연기시키는데 도움을 준다. 만일 각각의 4개 블럭(85-88)으로부터 1개 이상의 페이지가 갱신된다면, 모든 새로운 데이터 페이지들은 단일 블럭(90)에서 프로그래밍되므로, 갱신하기 위해서 메모리의 부가적인 3개 블럭을 결속시키는 것을 회피할 수 있다. 만일 새로운 데이터의 페이지의 개수가 사용되지 않은 블럭의 용량을 초과한다면, 블럭(90)이 받아들여질 수 없는 페이지들은 동일한 유니트(80) 또는 다른 유니트(81-83)들 중의 한 개 유니트에 있는 또 다른 사용되지 않은 블럭에 기록된다.
발명은 다양한 예시적인 실시예들과 관련하여 기술되어있지만, 발명은 첨부된 청구항의 전체 범위 내에서 보호에 대한 권리가 주어지는 것으로 이해될 것이다.
도 1은 메모리 제어 로직, 데이터 및 어드레스 레지스터를 갖춘 통상적인 종래의 플래시 EEPROM 메모리 어레이의 블럭도이다;
도 2는 시스템 컨트롤러를 갖춘 도 1의 메모리를 이용하는 아키텍쳐를 도시한다;
도 3은 도 2의 메모리 시스템의 일반적인 복사 작동을 나타내는 타이밍도이다;
도 4는 다중-페이지 블럭의 일부 페이지에 있는 데이터를 갱신하는 기존 프로세스를 나타낸다;
도 5A와 5B는 도 4의 각각의 최소 및 신규 블럭에 대한 해당 논리적 및 물리적 블럭 어드레스의 테이블이다;
도 6은 다중 페이지 블럭의 일부 페이지에 있는 데이터를 갱신하는 또 다른 기존 프로세스를 도시한다;
도 7A 및 7B는 도 6의 최초 및 새로운 블럭 각각에 대한 해당 논리적 및 물리적 블럭 어드레스의 테이블이다;
도 8은 다중 페이지 블럭의 일부 페이지에 있는 데이터를 갱신하는 개선된 프로세스의 예를 도시한다;
도 9는 도 8의 새로운 블럭에 대한 해당 논리적 및 물리적 페이지 번호의 테이블이다;
도 10은 도 8에 예시된 페이지에 있는 데이터의 레이아웃의 예를 제공한다;
도 11은 도 8의 더 개선된 예를 도시한다;
도 12는 도 11의 새로운 블럭에 대한 해당 논리적 및 물리적 페이지 번호의 테이블이다;
도 13은 도 11의 블럭들에 있는 갱신된 데이터를 판독하는 한가지 방식을 도시한다;
도 14는 도 8 및 도 9에 도시된 것처럼 구성된 메모리 시스템으로 데이터를 프로그래밍하는 프로세스의 순서도이다;
도 15는 메타블럭으로 함께 링크되는 개별 유니트에 의거하여 블럭들을 갖춘 기존의 다중-유니트 메모리를 도시한다; 그리고
도 16은, 갱신된 데이터의 총계가 메타블럭의 데이터 저장 용량보다 훨씬 적을 때 도 12의 다중-유니트 메모리에 있는 메타블럭의 데이터를 갱신하는 개선된 방법을 도시한다.

Claims (47)

  1. 재프로그램가능한 비휘발성 전하저장소자들의 메모리 시스템을 작동시키는 방법으로서, 여기서 메모리 시스템은 하나의 단위로 함께 소거가능한 최소 수의 전하저장소자들의 블럭들로 구성되고, 개개의 블럭은 블럭 내에 특정 오프셋 위치들을 가진 전하저장소자들의 페이지들을 포함하고, 개개의 페이지의 전하저장소자들은 하나의 단위로 프로그램가능하며, 상기 방법은,
    데이터를 페이지들에 기입하는 부분으로서, 데이터가 기입되는 시간의 표시를 클록 소스로부터 개개의 페이지에 기록하는 단계;
    갱신된 데이터를 갱신 데이터 블럭의 하나 이상의 갱신 페이지에 기입함으로써 최초 데이터 블럭들 중 한 블럭의 하나 이상의 페이지에 이전에 기입된 데이터를 제1 시간 동안 갱신하고, 이전에 기입된 페이지들과 이에 대응하는 갱신 페이지들의 데이터를 링크하는(linking) 단계로서, 여기서 상기 갱신된 데이터는, 상기 링크된 데이터가 이전에 기입된 상기 최초 데이터 블럭의 페이지들과 다른 오프셋 위치들을 갖는 갱신 데이터 블럭의 페이지들에 기입가능하게 되는 단계; 및
    두 개 이상의 링크된 페이지들의 데이터를 판독할 때, 상기 두 개 이상의 페이지들에 상기 데이터가 저장된 시간들의 표시들을 판독하고, 이전의 시간 표시들을 갖는 상기 두 개 이상의 페이지들의 데이터를 사용하지 않고 최근의 시간 표시들을 갖는 상기 두 개 이상의 페이지들의 데이터를 사용하는 단계;
    를 포함하는 메모리 시스템 작동 방법.
  2. 제1항에 있어서, 데이터가 개개의 페이지들에 기입되는 시간의 표시를 기록하는 단계는, 상기 표시를 데이터가 기입되는 페이지들 내에 기록하는 것을 포함하는 메모리 시스템 작동 방법.
  3. 제1항에 있어서, 최초 데이터 블럭들 중 한 블럭의 하나 이상의 페이지에 이전에 기입된 데이터를 제1 시간 동안 갱신하는 것은, 최초 데이터 블럭들 중 한 블럭의 모든 페이지들보다 적은 수의 페이지들에 데이터를 갱신하는 것을 포함하는 한편, 동일한 최초 데이터 블럭의 나머지 페이지에는 데이터를 갱신하지 않는 메모리 시스템 작동 방법.
  4. 제3항에 있어서, 상기 방법이 수행되는 메모리 시스템은 전하저장소자들로서 전기전도성 플로팅게이트들을 이용하는 메모리 시스템 작동 방법.
  5. 제1항에 있어서, 데이터를 갱신하는 부분으로서, 상기 이전에 기입된 페이지들과 이에 대응하는 갱신 페이지들의 데이터를 링크하는 단계는, 갱신된 데이터가 기입되는 개개의 갱신 페이지에 갱신된 데이터의 논리적 어드레스들이 저장되는 것을 포함하는 메모리 시스템 작동 방법.
  6. 제1항에 있어서, 데이터를 페이지들에 기입하는 부분으로서, 데이터는 두 개 이상의 저장상태들을 가진, 페이지들 내의 개개의 전하저장소자에 기입되고, 이에 의해 1비트 이상의 데이터를 개개의 전하저장소자에 저장하는 메모리 시스템 작동 방법.
  7. 제1항에 있어서, 상기 방법이 수행되는 메모리 시스템은 전하저장소자들로서 전기전도성 플로팅게이트들을 이용하는 메모리 시스템 작동 방법.
  8. 제1항에 있어서, 상기 이전에 기입된 페이지들과 이에 대응하는 갱신 페이지들의 데이터를 링크하는 단계는, 페이지들의 공통 논리적 어드레스들을 유지하는 단계를 포함하는 메모리 시스템 작동 방법.
  9. 제8항에 있어서, 공통 논리적 어드레스들을 유지하는 단계는, 상기 공통 논리적 어드레스들을 각각의 이전에 기입된 데이터 및 갱신된 데이터와 함께 최초 데이터 블럭의 페이지들 및 갱신 데이터 블럭의 페이지들에 저장하는 것을 포함하는 메모리 시스템 작동 방법.
  10. 제8항에 있어서, 데이터를 판독하는 단계는, 판독 데이터를 상기 판독 데이터와 연관된 논리적 페이지 어드레스들에 의해 구성하는(organizing) 단계를 더 포함하는 메모리 시스템 작동 방법.
  11. 제1항에 있어서, 데이터는 블럭들의 개개의 페이지들에 특정된 순서로 기입되는 메모리 시스템 작동 방법.
  12. 제1항에 있어서,
    최초 데이터 블럭들의 한 블럭과 갱신 데이터 블럭을 메모리 시스템의 복수의 서브-어레이들 중 서로 다른 서브-어레이들에 위치시키는 단계로서, 여기서 상기 서브-어레이들은 프로그래밍 작동이 독립적으로 수행될 수 있는 전하저장소자들의 블럭들의 물리적으로 분리된 그룹들인 단계; 및
    최초 데이터 블럭과 갱신 데이터 블럭을 링크하여 메타블럭을 형성함으로써 상기 블럭들의 전하저장소자들이 함께 소거가능하게 하고 상기 블럭들의 페이지들이 동시에 함께 프로그램가능하게 하는 단계;
    를 추가로 포함하는 메모리 시스템 작동 방법.
  13. 제1항에 있어서,
    갱신된 데이터를 갱신 데이터 블럭의 하나 이상의 갱신 페이지에 기입함으로써 최초 데이터 블럭들의 제2 블럭의 하나 이상의 페이지에 이전에 기입된 데이터를 갱신하는 단계; 및
    최초 데이터 블럭들의 제2 블럭의 이전에 기입된 페이지들과 이에 대응하는 갱신 페이지들의 데이터를 링크하는 단계;
    를 추가로 포함하고, 여기서 갱신된 데이터를 기입하는 것은, 상기 링크된 데이터가 상기 이전에 기입된 최초 데이터 블럭들의 제2 블럭의 페이지들과 동일한 오프셋 위치들을 갖는 갱신 데이터 블럭의 페이지들에 상기 갱신된 데이터를 기입하는 것을 요하지 않는 메모리 시스템 작동 방법.
  14. 제13항에 있어서, 최초 데이터 블럭들의 한 블럭과 제2 블럭의 하나 이상의 페이지에 이전에 기입된 데이터를 갱신하는 단계는, 개개의 최초 데이터 블럭의 모든 페이지들보다 적은 수의 페이지들에 데이터를 갱신하는 단계를 포함하는 한편, 동일한 개개의 최초 데이터 블럭의 나머지 페이지에는 데이터를 갱신하지 않는 메모리 시스템 작동 방법.
  15. 제1항에 있어서,
    상기 제1 시간 동안 갱신하는 단계에 의해 갱신되었던, 최초 데이터 블럭들 중 한 블럭의 하나 이상의 페이지에 이전에 기입된 데이터 중 적어도 일부를 제2 시간 동안 갱신하는 단계;
    제2 시간 동안 갱신된 상기 데이터를 제2 갱신된 데이터 페이지들로서 갱신 데이터 블럭에 기입하는 단계; 및
    상기 이전에 기입된 페이지들과 이에 대응하는 제2 갱신된 데이터 페이지들의 데이터를 링크하는 단계;
    를 추가로 포함하는 메모리 시스템 작동 방법.
  16. 제15항에 있어서, 상기 제1 시간 동안 갱신하는 단계와 상기 제2 시간 동안 갱신하는 단계는 각각, 개개의 최초 데이터 블럭의 모든 페이지들보다 적은 수의 페이지들에 데이터를 갱신하는 단계를 포함하는 한편, 동일한 개개의 최초 데이터 블럭의 나머지 페이지에는 데이터를 갱신하지 않는 메모리 시스템 작동 방법.
  17. 제1항에 있어서, 상기 방법이 수행되는 메모리 시스템은, 일측을 따라 전기적 커넥터를 구비하고 호스트 시스템과 연결되는 밀봉된 카드 내에 포함되는 메모리 시스템 작동 방법.
  18. 재프로그램가능한 비휘발성 전하저장소자들의 메모리 시스템을 작동시키는 방법으로서, 여기서 메모리 시스템은 하나의 단위로 함께 소거가능한 최소 수의 전하저장소자들의 블럭들로 구성되고, 개개의 블럭은 블럭 내에 특정 오프셋 위치들을 가진 전하저장소자들의 페이지들을 포함하고, 개개의 페이지의 전하저장소자들은 하나의 단위로 프로그램가능하며, 상기 방법은,
    데이터를 페이지들에 기입하는 부분으로서, 데이터가 개개의 블럭의 페이지들에 순차적으로 기입되는 단계;
    갱신된 데이터를 갱신 데이터 블럭의 하나 이상의 갱신 페이지에 기입함으로써 최초 데이터 블럭들 중 한 블럭의 하나 이상의 처음 페이지에 이전에 기입된 데이터를 제1 시간 동안 갱신하고, 상기 이전에 기입된 페이지들과 이에 대응하는 갱신 페이지들의 데이터를 링크하는 단계로서, 여기서 상기 갱신된 데이터는, 상기 링크된 데이터가 상기 이전에 기입된 최초 데이터 블럭의 페이지들과 다른 오프셋 위치들을 갖는 갱신 데이터 블럭의 페이지들에 기입가능하게 되는 단계; 및
    최초 데이터 블럭과 갱신 데이터 블럭의 페이지들로부터 데이터를 상기 데이터가 기입된 순서와 반대 순서로 판독하고, 데이터가 이미 판독된 페이지와 링크된 페이지에 있는 데이터를 무시하는 단계;
    를 포함하는 메모리 시스템 작동 방법.
  19. 제18항에 있어서, 최초 데이터 블럭들 중 한 블럭의 하나 이상의 페이지에 이전에 기입된 데이터를 제1 시간 동안 갱신하는 것은, 최초 데이터 블럭들 중 한 블럭의 모든 페이지들보다 적은 수의 페이지들에 데이터를 갱신하는 것을 포함하는 한편, 동일한 최초 데이터 블럭의 나머지 페이지에는 데이터를 갱신하지 않는 메모리 시스템 작동 방법.
  20. 제19항에 있어서, 상기 방법이 수행되는 메모리 시스템은 전하저장소자들로서 전기전도성 플로팅게이트들을 이용하는 메모리 시스템 작동 방법.
  21. 제18항에 있어서, 데이터를 갱신하는 부분으로서, 이전에 기입된 페이지들과 이에 대응하는 갱신 페이지들의 데이터를 링크하는 단계는, 갱신된 데이터가 기입되는 개개의 갱신 페이지에 갱신된 데이터의 논리적 어드레스들이 저장되는 것을 포함하는 메모리 시스템 작동 방법.
  22. 제18항에 있어서, 데이터를 페이지들에 기입하는 부분으로서, 데이터는 두 개 이상의 저장상태들을 가진, 페이지들 내의 개개의 전하저장소자에 기입되고, 이에 의해 1비트 이상의 데이터를 개개의 전하저장소자에 저장하는 메모리 시스템 작동 방법.
  23. 제18항에 있어서, 상기 방법이 수행되는 메모리 시스템은 전하저장소자들로서 전기전도성 플로팅게이트들을 이용하는 메모리 시스템 작동 방법.
  24. 제18항에 있어서, 이전에 기입된 페이지들과 이에 대응하는 갱신 페이지들의 데이터를 링크하는 단계는, 페이지들의 공통 논리적 어드레스들을 유지하는 단계를 포함하는 메모리 시스템 작동 방법.
  25. 제24항에 있어서, 공통 논리적 어드레스들을 유지하는 단계는, 상기 공통 논리적 어드레스들을 각각의 이전에 기입된 데이터 및 갱신된 데이터와 함께 최초 데이터 블럭의 페이지들 및 갱신 데이터 블럭의 페이지들에 저장하는 것을 포함하는 메모리 시스템 작동 방법.
  26. 제24항에 있어서, 데이터를 판독하는 단계는, 판독 데이터를 상기 판독 데이터와 연관된 논리적 페이지 어드레스들에 의해 구성하는 단계를 더 포함하는 메모리 시스템 작동 방법.
  27. 제18항에 있어서, 데이터는 블럭들의 개개의 페이지들에 특정된 순서로 기입되는 메모리 시스템 작동 방법.
  28. 제18항에 있어서,
    최초 데이터 블럭들의 한 블럭과 갱신 데이터 블럭을 메모리 시스템의 복수의 서브-어레이들 중 서로 다른 서브-어레이들에 위치시키는 단계로서, 여기서 상기 서브-어레이들은 프로그래밍 작동이 독립적으로 수행될 수 있는 전하저장소자들의 블럭들의 물리적으로 분리된 그룹들인 단계; 및
    최초 데이터 블럭과 갱신 데이터 블럭을 링크하여 메타블럭을 형성함으로써 상기 블럭들의 전하저장소자들이 함께 소거가능하게 하고 상기 블럭들의 페이지들이 동시에 함께 프로그램가능하게 하는 단계;
    를 추가로 포함하는 메모리 시스템 작동 방법.
  29. 제18항에 있어서,
    갱신된 데이터를 갱신 데이터 블럭의 하나 이상의 갱신 페이지에 기입함으로써 최초 데이터 블럭들의 제2 블럭의 하나 이상의 페이지에 이전에 기입된 데이터를 갱신하는 단계; 및
    최초 데이터 블럭들의 제2 블럭의 이전에 기입된 페이지들과 이에 대응하는 갱신 페이지들의 데이터를 링크하는 단계;
    를 추가로 포함하고, 여기서 갱신된 데이터를 기입하는 것은, 상기 링크된 데이터가 상기 이전에 기입된 최초 데이터 블럭들의 제2 블럭의 페이지들과 동일한 오프셋 위치들을 갖는 갱신 데이터 블럭의 페이지들에 갱신된 데이터를 기입하는 것을 요하지 않는 메모리 시스템 작동 방법.
  30. 제29항에 있어서, 최초 데이터 블럭들의 한 블럭과 제2 블럭의 하나 이상의 페이지에 이전에 기입된 데이터를 갱신하는 단계는, 개개의 최초 데이터 블럭의 모든 페이지들보다 적은 수의 페이지들에 데이터를 갱신하는 단계를 포함하는 한편, 동일한 개개의 최초 데이터의 나머지 페이지에는 데이터를 갱신하지 않는 메모리 시스템 작동 방법.
  31. 제18항에 있어서,
    상기 제1 시간 동안 갱신하는 단계에 의해 갱신되었던, 최초 데이터 블럭들 중 한 블럭의 하나 이상의 페이지에 이전에 기입된 데이터 중 적어도 일부를 제2 시간 동안 갱신하는 단계;
    제2 시간 동안 갱신된 상기 데이터를 제2 갱신된 데이터 페이지들로서 갱신 데이터 블럭에 기입하는 단계; 및
    상기 이전에 기입된 페이지들과 이에 대응하는 제2 갱신된 데이터 페이지들의 데이터를 링크하는 단계;
    를 추가로 포함하는 메모리 시스템 작동 방법.
  32. 제31항에 있어서, 상기 제1 시간 동안 갱신하는 단계와 상기 제2 시간 동안 갱신하는 단계는 각각, 개개의 최초 데이터 블럭의 모든 페이지들보다 적은 수의 페이지들에 데이터를 갱신하는 단계를 포함하는 한편, 동일한 개개의 최초 데이터 블럭의 나머지 페이지에는 데이터를 갱신하지 않는 메모리 시스템 작동 방법.
  33. 제18항에 있어서, 상기 방법이 수행되는 메모리 시스템은, 일측을 따라 전기적 커넥터를 구비하고 호스트 시스템과 연결되는 밀봉된 카드 내에 포함되는 메모리 시스템 작동 방법.
  34. 삭제
  35. 삭제
  36. 삭제
  37. 삭제
  38. 삭제
  39. 삭제
  40. 삭제
  41. 삭제
  42. 하나의 단위로 함께 소거가능한 최소 수의 메모리 전하저장소자들의 블럭들을 가진 재프로그램가능한 비휘발성 반도체 메모리 시스템을 작동시키는 방법으로서, 상기 블럭들은, 하나의 단위로 개별적으로 프로그램가능하고 각각의 블럭들 내에 특정된 오프셋 위치들을 가지는 메모리 저장소자들의 주어진 수의 페이지들로 개별적으로 분할되고, 상기 방법은,
    최초 데이터를 제1 블럭의 제1 페이지들의 개개의 페이지로 프로그램하는 단계로서, 최초 데이터의 페이지들은 연관된 논리적 어드레스들을 가진 단계;
    최초 데이터의 갱신된 버전을 제2 블럭의 제2 페이지들의 개개의 페이지로 프로그램하는 단계로서, 최초 데이터의 갱신된 버전은 제1 페이지들로 프로그램된 최초 데이터의 페이지들의 주어진 수보다 적은 수의 페이지들을 갖고, 최초 데이터의 갱신된 버전의 페이지들은 연관된 논리적 어드레스들을 갖고, 최초 데이터의 갱신된 버전의 페이지들과 연관된 논리적 어드레스들은 최초 데이터의 페이지들과 연관된 논리적 어드레스들과 동일한 단계;
    제1 및 제2 페이지들로부터 데이터를 판독하는 단계;
    판독 데이터의 페이지들을 연관된 논리적 어드레스들에 의해 구성하는 단계;
    전하저장소자들의 제1 및 제2 블럭들을 메모리 시스템의 서브-어레이들 중 서로 다른 서브-어레이들에 위치시키는 단계로서, 여기서 상기 서브-어레이들은 프로그래밍 작동이 독립적으로 수행될 수 있는 전하저장소자들의 블럭들의 물리적으로 분리된 그룹들인 단계; 및
    제1 및 제2 블럭들을 링크하여 메타블럭을 형성함으로써 상기 블럭들의 전하저장소자들이 함께 소거가능하게 하고 상기 블럭들의 페이지들이 동시에 함께 프로그램가능하게 하는 단계;
    를 포함하고, 최초 데이터의 갱신된 버전을 제2 페이지들의 개개의 페이지로 프로그램하는 단계는, 최초 데이터의 갱신된 버전이, 동일한 연관된 논리적 어드레스들을 가진 최초 데이터의 페이지들을 포함하는 상기 제1 블럭 내의 제1 페이지들의 오프셋 위치들과 다른 오프셋 위치들을 제2 블럭 내에 가진 제2 페이지들의 개개의 페이지로 프로그램가능하게 하는 것을 추가로 포함하는 메모리 시스템 작동 방법.
  43. 삭제
  44. 삭제
  45. 삭제
  46. 삭제
  47. 재프로그램가능한 비휘발성 전하저장소자들의 어레이를 가진 메모리 시스템을 작동시키는 방법으로서, 여기서 메모리 시스템은 함께 소거가능한 전하저장소자들의 블럭들로 구성되고, 개개의 블럭은 전하저장소자들의 페이지들을 포함하고, 개개의 페이지의 전하저장소자들은 하나의 단위로 프로그램가능하며, 상기 방법은,
    개개의 블럭에 대해 개별적으로 시간의 표시를 저장하는 단계;
    데이터를 상기 블럭들 중 한 블럭의 하나 이상의 페이지에 기입하는 부분으로서, 상기 한 블럭에 대해 저장된 시간의 표시를 갱신하는 단계;
    하나 이상의 처음 페이지로 이전에 기입된 데이터를 갱신할 때, 갱신된 데이터를 하나 이상의 갱신 페이지에 기입하고, 처음 페이지로 이전에 기입된 데이터와 갱신 페이지로 기입된 데이터가 공통 논리적 어드레스들에 의해 표현되는 단계; 및
    두 개 이상의 블럭들의 두 개 이상의 페이지들로부터 동일한 논리적 어드레스들을 가진 데이터를 판독하는 부분으로서, 상기 두 개 이상의 블럭들로부터 시간들의 표시들을 판독하고, 이전의 시간 표시들을 갖는 상기 두 개 이상의 블럭들 내의 데이터를 사용하지 않고 최근의 시간 표시들을 갖는 상기 두 개 이상의 블럭 내의 데이터를 사용하고, 페이지들이 기입된 물리적 어드레스 순서와 반대 순서로 각각의 상기 두 개 이상의 블럭들 내의 페이지들로부터 데이터를 판독하고, 데이터가 이미 판독된 페이지의 데이터와 동일한 논리적 어드레스를 가진 페이지로부터의 데이터를 무시하는 단계;
    를 포함하는 메모리 시스템 작동 방법.
KR1020087028861A 2001-01-19 2002-01-07 비휘발성 메모리에 부분적 블럭 데이터 프로그래밍 및 판독작동 KR101076830B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/766,436 2001-01-19
US09/766,436 US6763424B2 (en) 2001-01-19 2001-01-19 Partial block data programming and reading operations in a non-volatile memory

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020037009551A Division KR100944996B1 (ko) 2001-01-19 2002-01-07 비휘발성 메모리에 부분적 블럭 데이터 프로그래밍 및판독 작동

Publications (2)

Publication Number Publication Date
KR20090006217A KR20090006217A (ko) 2009-01-14
KR101076830B1 true KR101076830B1 (ko) 2011-10-25

Family

ID=25076410

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020087028861A KR101076830B1 (ko) 2001-01-19 2002-01-07 비휘발성 메모리에 부분적 블럭 데이터 프로그래밍 및 판독작동
KR1020037009551A KR100944996B1 (ko) 2001-01-19 2002-01-07 비휘발성 메모리에 부분적 블럭 데이터 프로그래밍 및판독 작동

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020037009551A KR100944996B1 (ko) 2001-01-19 2002-01-07 비휘발성 메모리에 부분적 블럭 데이터 프로그래밍 및판독 작동

Country Status (11)

Country Link
US (6) US6763424B2 (ko)
EP (4) EP2953030A1 (ko)
JP (3) JP4155824B2 (ko)
KR (2) KR101076830B1 (ko)
CN (3) CN1290021C (ko)
AT (1) ATE327556T1 (ko)
AU (1) AU2002236723A1 (ko)
DE (1) DE60211653T2 (ko)
ES (1) ES2262782T3 (ko)
TW (1) TWI221217B (ko)
WO (1) WO2002058074A2 (ko)

Families Citing this family (452)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5657332A (en) * 1992-05-20 1997-08-12 Sandisk Corporation Soft errors handling in EEPROM devices
JP3215237B2 (ja) * 1993-10-01 2001-10-02 富士通株式会社 記憶装置および記憶装置の書き込み/消去方法
KR100544175B1 (ko) * 1999-05-08 2006-01-23 삼성전자주식회사 링킹 타입 정보를 저장하는 기록 매체와 결함 영역 처리 방법
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
US6763424B2 (en) * 2001-01-19 2004-07-13 Sandisk Corporation Partial block data programming and reading operations in a non-volatile memory
CA2452534A1 (en) * 2001-07-03 2003-01-16 Research In Motion Limited System and method of object-oriented persistence
US7108975B2 (en) * 2001-09-21 2006-09-19 Regents Of The University Of Michigan Atlastin
KR100449708B1 (ko) * 2001-11-16 2004-09-22 삼성전자주식회사 플래시 메모리 관리방법
US6871257B2 (en) 2002-02-22 2005-03-22 Sandisk Corporation Pipelined parallel programming operation in a non-volatile memory system
JP2004062554A (ja) * 2002-07-30 2004-02-26 Oki Electric Ind Co Ltd フラッシュメモリの管理方法
CN100347685C (zh) * 2002-08-29 2007-11-07 松下电器产业株式会社 用于将数据写入快闪存储设备的半导体存储器的装置和方法
US7254668B1 (en) * 2002-10-28 2007-08-07 Sandisk Corporation Method and apparatus for grouping pages within a block
US7234036B1 (en) 2002-10-28 2007-06-19 Sandisk Corporation Method and apparatus for resolving physical blocks associated with a common logical block
WO2004040586A1 (en) * 2002-10-28 2004-05-13 Sandisk Corporation Automated wear leveling in non-volatile storage systems
US7039788B1 (en) 2002-10-28 2006-05-02 Sandisk Corporation Method and apparatus for splitting a logical block
DE10252059B3 (de) * 2002-11-08 2004-04-15 Infineon Technologies Ag Verfahren zum Betreiben einer Speicheranordnung
US7478248B2 (en) * 2002-11-27 2009-01-13 M-Systems Flash Disk Pioneers, Ltd. Apparatus and method for securing data on a portable storage device
EP1435576B1 (en) * 2003-01-03 2013-03-20 Austria Card Plastikkarten und Ausweissysteme GmbH Method and apparatus for block-oriented memory management provided in smart card controllers
US6944063B2 (en) 2003-01-28 2005-09-13 Sandisk Corporation Non-volatile semiconductor memory with large erase blocks storing cycle counts
JP2004265162A (ja) * 2003-03-03 2004-09-24 Renesas Technology Corp 記憶装置およびアドレス管理方法
KR100526178B1 (ko) * 2003-03-31 2005-11-03 삼성전자주식회사 플래시 메모리 액세스 장치 및 방법
US20040228411A1 (en) * 2003-05-12 2004-11-18 Sony Corporation Method and system for decoder clock control in presence of jitter
US7117326B2 (en) * 2003-06-26 2006-10-03 Intel Corporation Tracking modifications to a memory
US6891740B2 (en) * 2003-08-29 2005-05-10 Hitachi Global Storage Technologies Netherlands B.V. Method for speculative streaming data from a disk drive
US7188228B1 (en) 2003-10-01 2007-03-06 Sandisk Corporation Hybrid mapping implementation within a non-volatile memory system
US7173852B2 (en) * 2003-10-03 2007-02-06 Sandisk Corporation Corrected data storage and handling methods
US7012835B2 (en) * 2003-10-03 2006-03-14 Sandisk Corporation Flash memory data correction and scrub techniques
JP2005128771A (ja) * 2003-10-23 2005-05-19 Fujitsu Ltd データファイルシステム、データアクセスサーバ、およびデータアクセスプログラム
DE10349595B3 (de) * 2003-10-24 2004-12-09 Hyperstone Ag Verfahren zum Schreiben von Speichersektoren in einem blockweise löschbaren Speicher
KR100608602B1 (ko) * 2003-12-10 2006-08-03 삼성전자주식회사 플래시 메모리, 이를 위한 사상 제어 장치 및 방법
JP2005190288A (ja) * 2003-12-26 2005-07-14 Tdk Corp メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びに、フラッシュメモリの制御方法
US20050144516A1 (en) * 2003-12-30 2005-06-30 Gonzalez Carlos J. Adaptive deterministic grouping of blocks into multi-block units
US7383375B2 (en) 2003-12-30 2008-06-03 Sandisk Corporation Data run programming
US20050144363A1 (en) * 2003-12-30 2005-06-30 Sinclair Alan W. Data boundary management
EP1704483A2 (en) * 2003-12-30 2006-09-27 SanDisk Corporation Non-volatile memory and method with memory planes alignment
US7139864B2 (en) * 2003-12-30 2006-11-21 Sandisk Corporation Non-volatile memory and method with block management system
US8504798B2 (en) 2003-12-30 2013-08-06 Sandisk Technologies Inc. Management of non-volatile memory systems having large erase blocks
US7433993B2 (en) 2003-12-30 2008-10-07 San Disk Corportion Adaptive metablocks
KR100526188B1 (ko) * 2003-12-30 2005-11-04 삼성전자주식회사 플래시 메모리의 주소 사상 방법, 사상 정보 관리 방법 및상기 방법을 이용한 플래시 메모리
US7173863B2 (en) 2004-03-08 2007-02-06 Sandisk Corporation Flash controller cache architecture
US7631138B2 (en) * 2003-12-30 2009-12-08 Sandisk Corporation Adaptive mode switching of flash memory address mapping based on host usage characteristics
DE102004005290B3 (de) * 2004-02-03 2005-07-21 Giesecke & Devrient Gmbh Verfahren und Vorrichtung zur Absicherung von Daten in einem nichtflüchtigen Datenspeicher
US7136973B2 (en) 2004-02-04 2006-11-14 Sandisk Corporation Dual media storage device
US7127549B2 (en) 2004-02-04 2006-10-24 Sandisk Corporation Disk acceleration using first and second storage devices
KR100526190B1 (ko) * 2004-02-06 2005-11-03 삼성전자주식회사 플래시 메모리의 재사상 방법
US7529904B2 (en) * 2004-03-31 2009-05-05 International Business Machines Corporation Storing location identifier in array and array pointer in data structure for write process management
US7325090B2 (en) 2004-04-29 2008-01-29 Sandisk Il Ltd. Refreshing data stored in a flash memory
US7490283B2 (en) 2004-05-13 2009-02-10 Sandisk Corporation Pipelined data relocation and improved chip architectures
JP4253272B2 (ja) 2004-05-27 2009-04-08 株式会社東芝 メモリカード、半導体装置、及び半導体メモリの制御方法
US8429313B2 (en) * 2004-05-27 2013-04-23 Sandisk Technologies Inc. Configurable ready/busy control
US7395384B2 (en) 2004-07-21 2008-07-01 Sandisk Corproation Method and apparatus for maintaining data on non-volatile memory systems
US8607016B2 (en) * 2004-07-21 2013-12-10 Sandisk Technologies Inc. FAT analysis for optimized sequential cluster management
US8375146B2 (en) 2004-08-09 2013-02-12 SanDisk Technologies, Inc. Ring bus structure and its use in flash memory systems
JP3942612B2 (ja) * 2004-09-10 2007-07-11 東京エレクトロンデバイス株式会社 記憶装置、メモリ管理方法及びプログラム
JP4586469B2 (ja) * 2004-09-15 2010-11-24 ソニー株式会社 メモリ制御装置、メモリ制御方法、プログラム
KR100624960B1 (ko) * 2004-10-05 2006-09-15 에스티마이크로일렉트로닉스 엔.브이. 반도체 메모리 장치 및 이의 패키지 및 이를 이용한메모리 카드
US7441067B2 (en) 2004-11-15 2008-10-21 Sandisk Corporation Cyclic flash memory wear leveling
US7120051B2 (en) 2004-12-14 2006-10-10 Sandisk Corporation Pipelined programming of non-volatile memories using early data
US7366826B2 (en) * 2004-12-16 2008-04-29 Sandisk Corporation Non-volatile memory and method with multi-stream update tracking
US7395404B2 (en) * 2004-12-16 2008-07-01 Sandisk Corporation Cluster auto-alignment for storing addressable data packets in a non-volatile memory array
US7412560B2 (en) * 2004-12-16 2008-08-12 Sandisk Corporation Non-volatile memory and method with multi-stream updating
US7315916B2 (en) * 2004-12-16 2008-01-01 Sandisk Corporation Scratch pad block
US7386655B2 (en) 2004-12-16 2008-06-10 Sandisk Corporation Non-volatile memory and method with improved indexing for scratch pad and update blocks
US7849381B2 (en) * 2004-12-21 2010-12-07 Sandisk Corporation Method for copying data in reprogrammable non-volatile memory
KR100684887B1 (ko) * 2005-02-04 2007-02-20 삼성전자주식회사 플래시 메모리를 포함한 데이터 저장 장치 및 그것의 머지방법
US8122193B2 (en) 2004-12-21 2012-02-21 Samsung Electronics Co., Ltd. Storage device and user device including the same
KR100669342B1 (ko) * 2004-12-21 2007-01-16 삼성전자주식회사 낸드 플래시 메모리 장치의 프로그램 방법
US7882299B2 (en) * 2004-12-21 2011-02-01 Sandisk Corporation System and method for use of on-chip non-volatile memory write cache
US7409473B2 (en) 2004-12-21 2008-08-05 Sandisk Corporation Off-chip data relocation
US7212440B2 (en) 2004-12-30 2007-05-01 Sandisk Corporation On-chip data grouping and alignment
KR100698655B1 (ko) * 2005-01-04 2007-03-23 주식회사 팬택앤큐리텔 이동통신 단말기의 파일 업데이트 시스템과, efs 영역헤더 손실로 인한 치명적인 에러를 방지하는 이동통신단말기의 부팅 관리 시스템과, 이동통신 단말기의 파일업데이트 방법 및 efs 영역 헤더 손실로 인한 치명적인에러를 방지하는 이동통신 단말기의 부팅 방법
US7315917B2 (en) * 2005-01-20 2008-01-01 Sandisk Corporation Scheduling of housekeeping operations in flash memory systems
US20060184719A1 (en) * 2005-02-16 2006-08-17 Sinclair Alan W Direct data file storage implementation techniques in flash memories
US20060184718A1 (en) * 2005-02-16 2006-08-17 Sinclair Alan W Direct file data programming and deletion in flash memories
US9104315B2 (en) 2005-02-04 2015-08-11 Sandisk Technologies Inc. Systems and methods for a mass data storage system having a file-based interface to a host and a non-file-based interface to secondary storage
US7877539B2 (en) * 2005-02-16 2011-01-25 Sandisk Corporation Direct data file storage in flash memories
US7206230B2 (en) 2005-04-01 2007-04-17 Sandisk Corporation Use of data latches in cache operations of non-volatile memories
EP1712984A1 (en) * 2005-04-15 2006-10-18 Deutsche Thomson-Brandt Gmbh Method and system for accessing logical data blocks in a storage system that includes multiple memories which are connected to at least one common bus
CN101872333A (zh) 2005-04-21 2010-10-27 提琴存储器公司 一种互连系统
US9384818B2 (en) 2005-04-21 2016-07-05 Violin Memory Memory power management
US8200887B2 (en) 2007-03-29 2012-06-12 Violin Memory, Inc. Memory management system and method
JP5130646B2 (ja) * 2005-06-06 2013-01-30 ソニー株式会社 記憶装置
US7797479B2 (en) * 2005-06-30 2010-09-14 Intel Corporation Technique to write to a non-volatile memory
US7480766B2 (en) * 2005-08-03 2009-01-20 Sandisk Corporation Interfacing systems operating through a logical address space and on a direct data file basis
US7409489B2 (en) * 2005-08-03 2008-08-05 Sandisk Corporation Scheduling of reclaim operations in non-volatile memory
US7627733B2 (en) 2005-08-03 2009-12-01 Sandisk Corporation Method and system for dual mode access for storage devices
US7949845B2 (en) * 2005-08-03 2011-05-24 Sandisk Corporation Indexing of file data in reprogrammable non-volatile memories that directly store data files
US7558906B2 (en) 2005-08-03 2009-07-07 Sandisk Corporation Methods of managing blocks in nonvolatile memory
US7669003B2 (en) * 2005-08-03 2010-02-23 Sandisk Corporation Reprogrammable non-volatile memory systems with indexing of directly stored data files
US7552271B2 (en) 2005-08-03 2009-06-23 Sandisk Corporation Nonvolatile memory with block management
KR100714873B1 (ko) * 2005-09-06 2007-05-07 삼성전자주식회사 비휘발성 메모리에서 데이터 갱신 방법 및 이를 위한 장치
US8429326B2 (en) 2005-09-12 2013-04-23 Mediatek Inc. Method and system for NAND-flash identification without reading device ID table
CN100375026C (zh) * 2005-09-13 2008-03-12 联想(北京)有限公司 快速存储设备软件的安装/更新方法
US20070089023A1 (en) * 2005-09-30 2007-04-19 Sigmatel, Inc. System and method for system resource access
US7814262B2 (en) * 2005-10-13 2010-10-12 Sandisk Corporation Memory system storing transformed units of data in fixed sized storage blocks
US7529905B2 (en) 2005-10-13 2009-05-05 Sandisk Corporation Method of storing transformed units of data in a memory system having fixed sized storage blocks
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
US20070106842A1 (en) * 2005-11-04 2007-05-10 Conley Kevin M Enhanced first level storage caching methods using nonvolatile memory
US7634585B2 (en) * 2005-11-04 2009-12-15 Sandisk Corporation In-line cache using nonvolatile memory between host and disk device
US7447066B2 (en) * 2005-11-08 2008-11-04 Sandisk Corporation Memory with retargetable memory cell redundancy
US7730453B2 (en) * 2005-12-13 2010-06-01 Microsoft Corporation Runtime detection for invalid use of zero-length memory allocations
US7877540B2 (en) * 2005-12-13 2011-01-25 Sandisk Corporation Logically-addressed file storage methods
US7769978B2 (en) 2005-12-21 2010-08-03 Sandisk Corporation Method and system for accessing non-volatile storage devices
US7747837B2 (en) 2005-12-21 2010-06-29 Sandisk Corporation Method and system for accessing non-volatile storage devices
US20070156998A1 (en) * 2005-12-21 2007-07-05 Gorobets Sergey A Methods for memory allocation in non-volatile memories with a directly mapped file storage system
US20070143566A1 (en) * 2005-12-21 2007-06-21 Gorobets Sergey A Non-volatile memories with data alignment in a directly mapped file storage system
US20070143378A1 (en) * 2005-12-21 2007-06-21 Gorobets Sergey A Non-volatile memories with adaptive file handling in a directly mapped file storage system
US7793068B2 (en) 2005-12-21 2010-09-07 Sandisk Corporation Dual mode access for non-volatile storage devices
US20070143561A1 (en) * 2005-12-21 2007-06-21 Gorobets Sergey A Methods for adaptive file data handling in non-volatile memories with a directly mapped file storage system
WO2007072317A2 (en) * 2005-12-21 2007-06-28 Nxp B.V. Non-volatile memory with block erasable locations
EP1966701A2 (en) * 2005-12-21 2008-09-10 Nxp B.V. Memory with block-erasable locations
US20070143567A1 (en) * 2005-12-21 2007-06-21 Gorobets Sergey A Methods for data alignment in non-volatile memories with a directly mapped file storage system
US7536627B2 (en) * 2005-12-27 2009-05-19 Sandisk Corporation Storing downloadable firmware on bulk media
US7546515B2 (en) * 2005-12-27 2009-06-09 Sandisk Corporation Method of storing downloadable firmware on bulk media
KR100772863B1 (ko) * 2006-01-13 2007-11-02 삼성전자주식회사 요구 페이징 기법을 적용한 시스템에서 페이지 교체 수행시간을 단축시키는 방법 및 장치
US7793059B2 (en) * 2006-01-18 2010-09-07 Apple Inc. Interleaving policies for flash memory
US7609561B2 (en) * 2006-01-18 2009-10-27 Apple Inc. Disabling faulty flash memory dies
US7752391B2 (en) * 2006-01-20 2010-07-06 Apple Inc. Variable caching policy system and method
US7702935B2 (en) * 2006-01-25 2010-04-20 Apple Inc. Reporting flash memory operating voltages
US20070174641A1 (en) * 2006-01-25 2007-07-26 Cornwell Michael J Adjusting power supplies for data storage devices
TWI311327B (en) * 2006-01-26 2009-06-21 Nuvoton Technology Corporatio Method for page random write and read in the block of flash memory
US7912994B2 (en) * 2006-01-27 2011-03-22 Apple Inc. Reducing connection time for mass storage class peripheral by internally prefetching file data into local cache in response to connection to host
US7594043B2 (en) * 2006-01-27 2009-09-22 Apple Inc. Reducing dismount time for mass storage class devices
US7861122B2 (en) * 2006-01-27 2010-12-28 Apple Inc. Monitoring health of non-volatile memory
JP2007280108A (ja) * 2006-04-07 2007-10-25 Sony Corp 記憶媒体制御装置、記憶媒体制御方法、プログラム
US7849302B2 (en) * 2006-04-10 2010-12-07 Apple Inc. Direct boot arrangement using a NAND flash memory
US7451264B2 (en) * 2006-04-13 2008-11-11 Sandisk Corporation Cycle count storage methods
US7467253B2 (en) * 2006-04-13 2008-12-16 Sandisk Corporation Cycle count storage systems
US7911834B2 (en) * 2006-05-15 2011-03-22 Apple Inc. Analog interface for a flash memory die
US8000134B2 (en) * 2006-05-15 2011-08-16 Apple Inc. Off-die charge pump that supplies multiple flash devices
US7551486B2 (en) 2006-05-15 2009-06-23 Apple Inc. Iterative memory cell charging based on reference cell value
US7568135B2 (en) 2006-05-15 2009-07-28 Apple Inc. Use of alternative value in cell detection
US7639531B2 (en) * 2006-05-15 2009-12-29 Apple Inc. Dynamic cell bit resolution
US7701797B2 (en) * 2006-05-15 2010-04-20 Apple Inc. Two levels of voltage regulation supplied for logic and data programming voltage of a memory device
US7613043B2 (en) * 2006-05-15 2009-11-03 Apple Inc. Shifting reference values to account for voltage sag
US7511646B2 (en) * 2006-05-15 2009-03-31 Apple Inc. Use of 8-bit or higher A/D for NAND cell value
US7639542B2 (en) * 2006-05-15 2009-12-29 Apple Inc. Maintenance operations for multi-level data storage cells
US7852690B2 (en) * 2006-05-15 2010-12-14 Apple Inc. Multi-chip package for a flash memory
JP4153535B2 (ja) * 2006-05-30 2008-09-24 Tdk株式会社 メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びに、フラッシュメモリの制御方法
US7567461B2 (en) * 2006-08-18 2009-07-28 Micron Technology, Inc. Method and system for minimizing number of programming pulses used to program rows of non-volatile memory cells
US8001314B2 (en) 2006-09-12 2011-08-16 Apple Inc. Storing a driver for controlling a memory
US7593259B2 (en) * 2006-09-13 2009-09-22 Mosaid Technologies Incorporated Flash multi-level threshold distribution scheme
US7646054B2 (en) * 2006-09-19 2010-01-12 Sandisk Corporation Array of non-volatile memory cells with floating gates formed of spacers in substrate trenches
US7696044B2 (en) * 2006-09-19 2010-04-13 Sandisk Corporation Method of making an array of non-volatile memory cells with floating gates formed of spacers in substrate trenches
US7886204B2 (en) * 2006-09-27 2011-02-08 Sandisk Corporation Methods of cell population distribution assisted read margining
US7716538B2 (en) * 2006-09-27 2010-05-11 Sandisk Corporation Memory with cell population distribution assisted read margining
US20080091901A1 (en) * 2006-10-12 2008-04-17 Alan David Bennett Method for non-volatile memory with worst-case control data management
US20080091871A1 (en) * 2006-10-12 2008-04-17 Alan David Bennett Non-volatile memory with worst-case control data management
KR100771521B1 (ko) 2006-10-30 2007-10-30 삼성전자주식회사 멀티 레벨 셀을 포함하는 플래시 메모리 장치 및 그것의데이터 쓰기 방법
US8151060B2 (en) 2006-11-28 2012-04-03 Hitachi, Ltd. Semiconductor memory system having a snapshot function
US9495241B2 (en) 2006-12-06 2016-11-15 Longitude Enterprise Flash S.A.R.L. Systems and methods for adaptive data storage
KR101490327B1 (ko) * 2006-12-06 2015-02-05 퓨전-아이오, 인크. 뱅크 인터리브를 이용한 솔리드-스테이트 스토리지의 명령 관리 장치, 시스템 및 방법
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
US9116823B2 (en) 2006-12-06 2015-08-25 Intelligent Intellectual Property Holdings 2 Llc Systems and methods for adaptive error-correction coding
JP2008152464A (ja) * 2006-12-15 2008-07-03 Toshiba Corp 記憶装置
KR101354152B1 (ko) * 2006-12-18 2014-01-27 삼성전자주식회사 비휘발성 데이터 저장장치에 구비된 가상 파일 시스템의작업 스케줄링 방법 및 장치
US7554855B2 (en) * 2006-12-20 2009-06-30 Mosaid Technologies Incorporated Hybrid solid-state memory system having volatile and non-volatile memory
US7800161B2 (en) * 2006-12-21 2010-09-21 Sandisk Corporation Flash NAND memory cell array with charge storage elements positioned in trenches
US7642160B2 (en) * 2006-12-21 2010-01-05 Sandisk Corporation Method of forming a flash NAND memory cell array with charge storage elements positioned in trenches
US8127200B2 (en) * 2006-12-24 2012-02-28 Sandisk Il Ltd. Flash memory device and system with randomizing for suppressing errors
US8370561B2 (en) * 2006-12-24 2013-02-05 Sandisk Il Ltd. Randomizing for suppressing errors in a flash memory
US7917686B2 (en) * 2006-12-26 2011-03-29 Sandisk Corporation Host system with direct data file interface configurability
US8046522B2 (en) * 2006-12-26 2011-10-25 SanDisk Technologies, Inc. Use of a direct data file system with a continuous logical address space interface and control of file address storage in logical blocks
US8166267B2 (en) * 2006-12-26 2012-04-24 Sandisk Technologies Inc. Managing a LBA interface in a direct data file memory system
US8209461B2 (en) 2006-12-26 2012-06-26 Sandisk Technologies Inc. Configuration of host LBA interface with flash memory
US7739444B2 (en) 2006-12-26 2010-06-15 Sandisk Corporation System using a direct data file system with a continuous logical address space interface
US20080155175A1 (en) * 2006-12-26 2008-06-26 Sinclair Alan W Host System That Manages a LBA Interface With Flash Memory
KR100825802B1 (ko) * 2007-02-13 2008-04-29 삼성전자주식회사 기입 데이터의 논리적 페이지보다 이전 논리적 페이지들을가지는 데이터들을 데이터 블록으로부터 복사하는 불휘발성메모리 장치의 데이터 기입 방법
US7577059B2 (en) * 2007-02-27 2009-08-18 Mosaid Technologies Incorporated Decoding control with address transition detection in page erase function
US20090088088A1 (en) * 2007-02-28 2009-04-02 Crick Information Technologies Personal Information Communication Device and Method
WO2008106269A1 (en) * 2007-02-28 2008-09-04 Ty Joseph Caswell Personal information communication device and method
US7804718B2 (en) * 2007-03-07 2010-09-28 Mosaid Technologies Incorporated Partial block erase architecture for flash memory
US7814304B2 (en) * 2007-03-14 2010-10-12 Apple Inc. Switching drivers between processors
US7613051B2 (en) 2007-03-14 2009-11-03 Apple Inc. Interleaving charge pumps for programmable memories
US7477547B2 (en) * 2007-03-28 2009-01-13 Sandisk Corporation Flash memory refresh techniques triggered by controlled scrub data reads
US7573773B2 (en) * 2007-03-28 2009-08-11 Sandisk Corporation Flash memory with data refresh triggered by controlled scrub data reads
US11010076B2 (en) 2007-03-29 2021-05-18 Violin Systems Llc Memory system with multiple striping of raid groups and method for performing the same
US9632870B2 (en) 2007-03-29 2017-04-25 Violin Memory, Inc. Memory system with multiple striping of raid groups and method for performing the same
US7996599B2 (en) 2007-04-25 2011-08-09 Apple Inc. Command resequencing in memory operations
US7913032B1 (en) 2007-04-25 2011-03-22 Apple Inc. Initiating memory wear leveling
US7869277B1 (en) 2007-04-25 2011-01-11 Apple Inc. Managing data writing to memories
US7870327B1 (en) 2007-04-25 2011-01-11 Apple Inc. Controlling memory operations using a driver and flash memory type tables
US20080288712A1 (en) 2007-04-25 2008-11-20 Cornwell Michael J Accessing metadata with an external host
JP4702703B2 (ja) * 2007-04-26 2011-06-15 Tdk株式会社 メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
US8332574B2 (en) * 2007-04-30 2012-12-11 Sandisk Il Ltd. Method for efficient storage of metadata in flash memory
US7577029B2 (en) 2007-05-04 2009-08-18 Mosaid Technologies Incorporated Multi-level cell access buffer with dual function
US8073648B2 (en) * 2007-05-14 2011-12-06 Sandisk Il Ltd. Measuring threshold voltage distribution in memory using an aggregate characteristic
US20080294814A1 (en) * 2007-05-24 2008-11-27 Sergey Anatolievich Gorobets Flash Memory System with Management of Housekeeping Operations
US20080294813A1 (en) * 2007-05-24 2008-11-27 Sergey Anatolievich Gorobets Managing Housekeeping Operations in Flash Memory
WO2008146475A1 (ja) 2007-06-01 2008-12-04 Panasonic Corporation 記録装置
US8713283B2 (en) * 2007-06-08 2014-04-29 Sandisk Technologies Inc. Method of interfacing a host operating through a logical address space with a direct file storage medium
US8239639B2 (en) * 2007-06-08 2012-08-07 Sandisk Technologies Inc. Method and apparatus for providing data type and host file information to a mass storage system
US20080307156A1 (en) * 2007-06-08 2008-12-11 Sinclair Alan W System For Interfacing A Host Operating Through A Logical Address Space With A Direct File Storage Medium
US8504784B2 (en) * 2007-06-27 2013-08-06 Sandisk Technologies Inc. Scheduling methods of phased garbage collection and housekeeping operations in a flash memory system
JP5087347B2 (ja) * 2007-09-06 2012-12-05 株式会社日立製作所 半導体記憶装置及び半導体記憶装置の制御方法
WO2009095902A2 (en) 2008-01-31 2009-08-06 Densbits Technologies Ltd. Systems and methods for handling immediate data errors in flash memory
US8566504B2 (en) * 2007-09-28 2013-10-22 Sandisk Technologies Inc. Dynamic metablocks
US8694715B2 (en) 2007-10-22 2014-04-08 Densbits Technologies Ltd. Methods for adaptively programming flash memory devices and flash memory systems incorporating same
JP4535117B2 (ja) * 2007-11-06 2010-09-01 ソニー株式会社 メモリ装置、メモリ管理方法、およびプログラム
US8296498B2 (en) * 2007-11-13 2012-10-23 Sandisk Technologies Inc. Method and system for virtual fast access non-volatile RAM
US7613045B2 (en) * 2007-11-26 2009-11-03 Sandisk Il, Ltd. Operation sequence and commands for measuring threshold voltage distribution in memory
US8341335B2 (en) 2007-12-05 2012-12-25 Densbits Technologies Ltd. Flash memory apparatus with a heating system for temporarily retired memory portions
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
US8359516B2 (en) 2007-12-12 2013-01-22 Densbits Technologies Ltd. Systems and methods for error correction and decoding on multi-level physical media
US20090164745A1 (en) * 2007-12-21 2009-06-25 Alan Sinclair System and Method for Controlling an Amount of Unprogrammed Capacity in Memory Blocks of a Mass Storage System
US8880483B2 (en) * 2007-12-21 2014-11-04 Sandisk Technologies Inc. System and method for implementing extensions to intelligently manage resources of a mass storage system
US8762620B2 (en) 2007-12-27 2014-06-24 Sandisk Enterprise Ip Llc Multiprocessor storage controller
TW200931425A (en) * 2008-01-11 2009-07-16 Phison Electronics Corp Method for managing flash memory blocks and controller using the same
US8120990B2 (en) * 2008-02-04 2012-02-21 Mosaid Technologies Incorporated Flexible memory operations in NAND flash devices
US8068365B2 (en) 2008-02-04 2011-11-29 Mosaid Technologies Incorporated Non-volatile memory device having configurable page size
WO2009104330A1 (ja) 2008-02-20 2009-08-27 株式会社ソニー・コンピュータエンタテインメント メモリ制御方法及び装置、メモリアクセス制御方法、コンピュータプログラム、記録媒体
JP2009199211A (ja) * 2008-02-20 2009-09-03 Sony Computer Entertainment Inc メモリ制御方法及び装置、コンピュータプログラム
JP4675985B2 (ja) 2008-03-01 2011-04-27 株式会社東芝 メモリシステム
JP2009211234A (ja) * 2008-03-01 2009-09-17 Toshiba Corp メモリシステム
US8972472B2 (en) 2008-03-25 2015-03-03 Densbits Technologies Ltd. Apparatus and methods for hardware-efficient unbiased rounding
US8695087B2 (en) * 2008-04-04 2014-04-08 Sandisk Il Ltd. Access control for a memory device
US20100017558A1 (en) 2008-04-11 2010-01-21 Richard Matthew Fruin Memory device operable in read-only and re-writable modes of operation
KR100982440B1 (ko) 2008-06-12 2010-09-15 (주)명정보기술 단일 플래시 메모리의 데이터 관리시스템
US7848144B2 (en) * 2008-06-16 2010-12-07 Sandisk Corporation Reverse order page writing in flash memories
JP5180726B2 (ja) * 2008-07-31 2013-04-10 株式会社日立製作所 記憶装置およびデータ書き込み制御方法
US20100037102A1 (en) * 2008-08-08 2010-02-11 Seagate Technology Llc Fault-tolerant non-volatile buddy memory structure
US8438325B2 (en) * 2008-10-09 2013-05-07 Cadence Design Systems, Inc. Method and apparatus for improving small write performance in a non-volatile memory
US8650355B2 (en) * 2008-10-15 2014-02-11 Seagate Technology Llc Non-volatile resistive sense memory on-chip cache
US7830700B2 (en) * 2008-11-12 2010-11-09 Seagate Technology Llc Resistive sense memory array with partial block update capability
JP5193822B2 (ja) * 2008-11-19 2013-05-08 株式会社東芝 追記型メモリデバイス
US8205063B2 (en) * 2008-12-30 2012-06-19 Sandisk Technologies Inc. Dynamic mapping of logical ranges to write blocks
US8452940B2 (en) * 2008-12-30 2013-05-28 Sandisk Technologies Inc. Optimized memory management for random and sequential data writing
US8700840B2 (en) * 2009-01-05 2014-04-15 SanDisk Technologies, Inc. Nonvolatile memory with write cache having flush/eviction methods
US8244960B2 (en) * 2009-01-05 2012-08-14 Sandisk Technologies Inc. Non-volatile memory and method with write cache partition management methods
US8040744B2 (en) * 2009-01-05 2011-10-18 Sandisk Technologies Inc. Spare block management of non-volatile memories
US20100174845A1 (en) * 2009-01-05 2010-07-08 Sergey Anatolievich Gorobets Wear Leveling for Non-Volatile Memories: Maintenance of Experience Count and Passive Techniques
US8094500B2 (en) * 2009-01-05 2012-01-10 Sandisk Technologies Inc. Non-volatile memory and method with write cache partitioning
JP4666081B2 (ja) * 2009-02-09 2011-04-06 Tdk株式会社 メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
JP4844639B2 (ja) * 2009-02-19 2011-12-28 Tdk株式会社 メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
US8489801B2 (en) * 2009-03-04 2013-07-16 Henry F. Huang Non-volatile memory with hybrid index tag array
JP5341584B2 (ja) * 2009-03-17 2013-11-13 株式会社東芝 コントローラ、及びメモリシステム
US8458574B2 (en) 2009-04-06 2013-06-04 Densbits Technologies Ltd. Compact chien-search based decoding apparatus and method
US8819385B2 (en) 2009-04-06 2014-08-26 Densbits Technologies Ltd. Device and method for managing a flash memory
US8832353B2 (en) * 2009-04-07 2014-09-09 Sandisk Technologies Inc. Host stop-transmission handling
KR101556779B1 (ko) * 2009-04-17 2015-10-02 삼성전자주식회사 저장 장치의 액세스 방법
US8296503B2 (en) * 2009-05-26 2012-10-23 Mediatek Inc. Data updating and recovering methods for a non-volatile memory array
CN102576330B (zh) 2009-06-12 2015-01-28 提琴存储器公司 具有持久化无用单元收集机制的存储系统
US8307241B2 (en) * 2009-06-16 2012-11-06 Sandisk Technologies Inc. Data recovery in multi-level cell nonvolatile memory
US20110035540A1 (en) * 2009-08-10 2011-02-10 Adtron, Inc. Flash blade system architecture and method
US8130543B2 (en) * 2009-08-13 2012-03-06 Macronix International Co., Ltd. Method and apparatus for increasing memory programming efficiency through dynamic switching of sense amplifiers
TWI425513B (zh) * 2009-08-13 2014-02-01 Silicon Motion Inc 識別快閃記憶體中區塊之資料頁的方法以及相關之記憶裝置
KR20110018157A (ko) * 2009-08-17 2011-02-23 삼성전자주식회사 플래시 메모리 장치의 액세스 방법
US9330767B1 (en) 2009-08-26 2016-05-03 Avago Technologies General Ip (Singapore) Pte. Ltd. Flash memory module and method for programming a page of flash memory cells
US8995197B1 (en) 2009-08-26 2015-03-31 Densbits Technologies Ltd. System and methods for dynamic erase and program control for flash memory device memories
JP5377175B2 (ja) * 2009-09-08 2013-12-25 株式会社東芝 コントローラ、及びデータ記憶装置
US8255655B2 (en) 2009-10-02 2012-08-28 Sandisk Technologies Inc. Authentication and securing of write-once, read-many (WORM) memory devices
US8730729B2 (en) * 2009-10-15 2014-05-20 Densbits Technologies Ltd. Systems and methods for averaging error rates in non-volatile devices and storage systems
US8724387B2 (en) 2009-10-22 2014-05-13 Densbits Technologies Ltd. Method, system, and computer readable medium for reading and programming flash memory cells using multiple bias voltages
US8364929B2 (en) * 2009-10-23 2013-01-29 Seagate Technology Llc Enabling spanning for a storage device
US8745353B2 (en) * 2009-10-23 2014-06-03 Seagate Technology Llc Block boundary resolution for mismatched logical and physical block sizes
US8977802B2 (en) 2009-11-11 2015-03-10 Panasonic Intellectual Property Management Co., Ltd. Access device, information recording device, controller, real time information recording system, access method, and program
CN102483717B (zh) 2009-11-30 2014-09-17 惠普发展公司,有限责任合伙企业 用于存储器磨损平衡的重映射方法及设备
US9037777B2 (en) 2009-12-22 2015-05-19 Densbits Technologies Ltd. Device, system, and method for reducing program/read disturb in flash arrays
TWI446349B (zh) * 2010-03-04 2014-07-21 Phison Electronics Corp 非揮發性記憶體存取方法、系統,與非揮發性記憶體控制器
CN103473182B (zh) * 2010-03-12 2016-05-11 群联电子股份有限公司 非挥发性存储器存取方法及非挥发性存储器控制器
US8745317B2 (en) 2010-04-07 2014-06-03 Densbits Technologies Ltd. System and method for storing information in a multi-level cell memory
US8886664B2 (en) 2010-05-13 2014-11-11 Microsoft Corporation Decreasing duplicates and loops in an activity record
US8381018B2 (en) 2010-05-21 2013-02-19 Mediatek Inc. Method for data recovery for flash devices
US8838878B2 (en) * 2010-06-01 2014-09-16 Greenliant Llc Method of writing to a NAND memory block based file system with log based buffering
KR20110138076A (ko) * 2010-06-18 2011-12-26 삼성전자주식회사 데이터 저장 장치 및 그것의 쓰기 방법
US8626986B2 (en) * 2010-06-30 2014-01-07 Sandisk Technologies Inc. Pre-emptive garbage collection of memory blocks
US8621321B2 (en) 2010-07-01 2013-12-31 Densbits Technologies Ltd. System and method for multi-dimensional encoding and decoding
JP4818453B1 (ja) * 2010-07-30 2011-11-16 株式会社東芝 電子機器およびデータ読み出し方法
US8964464B2 (en) 2010-08-24 2015-02-24 Densbits Technologies Ltd. System and method for accelerated sampling
US8850161B2 (en) * 2010-10-13 2014-09-30 Riverbed Technology, Inc. Method of improving performance of a data storage device
US9063878B2 (en) 2010-11-03 2015-06-23 Densbits Technologies Ltd. Method, system and computer readable medium for copy back
US9003153B2 (en) 2010-11-08 2015-04-07 Greenliant Llc Method of storing blocks of data in a plurality of memory devices in a redundant manner, a memory controller and a memory system
US20120117305A1 (en) * 2010-11-08 2012-05-10 Greenliant Llc Method Of Storing Blocks Of Data In A Plurality Of Memory Devices For High Speed Sequential Read, A Memory Controller And A Memory System
US8850100B2 (en) 2010-12-07 2014-09-30 Densbits Technologies Ltd. Interleaving codeword portions between multiple planes and/or dies of a flash memory device
US8472280B2 (en) 2010-12-21 2013-06-25 Sandisk Technologies Inc. Alternate page by page programming scheme
US8626989B2 (en) * 2011-02-02 2014-01-07 Micron Technology, Inc. Control arrangements and methods for accessing block oriented nonvolatile memory
US8909851B2 (en) 2011-02-08 2014-12-09 SMART Storage Systems, Inc. Storage control system with change logging mechanism and method of operation thereof
US8935466B2 (en) 2011-03-28 2015-01-13 SMART Storage Systems, Inc. Data storage system with non-volatile memory and method of operation thereof
US8990665B1 (en) 2011-04-06 2015-03-24 Densbits Technologies Ltd. System, method and computer program product for joint search of a read threshold and soft decoding
US9324433B2 (en) * 2011-04-25 2016-04-26 Microsoft Technology Licensing, Llc Intelligent flash reprogramming
TWI442230B (zh) * 2011-04-28 2014-06-21 Phison Electronics Corp 資料寫入方法、記憶體控制器與記憶體儲存裝置
US9110785B1 (en) 2011-05-12 2015-08-18 Densbits Technologies Ltd. Ordered merge of data sectors that belong to memory space portions
US8996790B1 (en) 2011-05-12 2015-03-31 Densbits Technologies Ltd. System and method for flash memory management
US9195592B1 (en) 2011-05-12 2015-11-24 Densbits Technologies Ltd. Advanced management of a non-volatile memory
US9396106B2 (en) 2011-05-12 2016-07-19 Avago Technologies General Ip (Singapore) Pte. Ltd. Advanced management of a non-volatile memory
US9372792B1 (en) 2011-05-12 2016-06-21 Avago Technologies General Ip (Singapore) Pte. Ltd. Advanced management of a non-volatile memory
US9501392B1 (en) 2011-05-12 2016-11-22 Avago Technologies General Ip (Singapore) Pte. Ltd. Management of a non-volatile memory module
US20120297256A1 (en) * 2011-05-20 2012-11-22 Qualcomm Incorporated Large Ram Cache
US8719648B2 (en) 2011-07-27 2014-05-06 International Business Machines Corporation Interleaving of memory repair data compression and fuse programming operations in single fusebay architecture
US8467260B2 (en) 2011-08-05 2013-06-18 International Business Machines Corporation Structure and method for storing multiple repair pass data into a fusebay
US8484543B2 (en) 2011-08-08 2013-07-09 International Business Machines Corporation Fusebay controller structure, system, and method
EP2742429A4 (en) 2011-08-09 2015-03-25 Lsi Corp I / O DEVICE AND INTERACTION WITH DATA PROCESSING HOST
US20130042051A1 (en) * 2011-08-10 2013-02-14 Skymedi Corporation Program method for a non-volatile memory
US9098399B2 (en) 2011-08-31 2015-08-04 SMART Storage Systems, Inc. Electronic system with storage management mechanism and method of operation thereof
US8537627B2 (en) 2011-09-01 2013-09-17 International Business Machines Corporation Determining fusebay storage element usage
US9021319B2 (en) 2011-09-02 2015-04-28 SMART Storage Systems, Inc. Non-volatile memory management system with load leveling and method of operation thereof
US9063844B2 (en) 2011-09-02 2015-06-23 SMART Storage Systems, Inc. Non-volatile memory management system with time measure mechanism and method of operation thereof
US9021231B2 (en) 2011-09-02 2015-04-28 SMART Storage Systems, Inc. Storage control system with write amplification control mechanism and method of operation thereof
US9477590B2 (en) * 2011-09-16 2016-10-25 Apple Inc. Weave sequence counter for non-volatile memory systems
US9588883B2 (en) * 2011-09-23 2017-03-07 Conversant Intellectual Property Management Inc. Flash memory system
US8949517B2 (en) 2011-10-05 2015-02-03 Lsi Corporation Self-journaling and hierarchical consistency for non-volatile storage
TWI454911B (zh) * 2011-10-12 2014-10-01 Phison Electronics Corp 資料寫入方法、記憶體控制器與記憶體儲存裝置
US8687421B2 (en) 2011-11-21 2014-04-01 Sandisk Technologies Inc. Scrub techniques for use with dynamic read
KR101893145B1 (ko) 2011-12-06 2018-10-05 삼성전자주식회사 메모리 시스템들 및 그것들의 블록 복사 방법들
US8762627B2 (en) 2011-12-21 2014-06-24 Sandisk Technologies Inc. Memory logical defragmentation during garbage collection
US8843711B1 (en) * 2011-12-28 2014-09-23 Netapp, Inc. Partial write without read-modify
US8775722B2 (en) 2011-12-30 2014-07-08 Sandisk Technologies Inc. Storing data in parallel in a flash storage device using on chip page shifting between planes
US9329989B2 (en) 2011-12-30 2016-05-03 SanDisk Technologies, Inc. System and method for pre-interleaving sequential data
US9239781B2 (en) 2012-02-07 2016-01-19 SMART Storage Systems, Inc. Storage control system with erase block mechanism and method of operation thereof
US8996788B2 (en) 2012-02-09 2015-03-31 Densbits Technologies Ltd. Configurable flash interface
US8947941B2 (en) 2012-02-09 2015-02-03 Densbits Technologies Ltd. State responsive operations relating to flash memory cells
US9298252B2 (en) 2012-04-17 2016-03-29 SMART Storage Systems, Inc. Storage control system with power down mechanism and method of operation thereof
US8996793B1 (en) 2012-04-24 2015-03-31 Densbits Technologies Ltd. System, method and computer readable medium for generating soft information
US8838937B1 (en) 2012-05-23 2014-09-16 Densbits Technologies Ltd. Methods, systems and computer readable medium for writing and reading data
US8879325B1 (en) 2012-05-30 2014-11-04 Densbits Technologies Ltd. System, method and computer program product for processing read threshold information and for reading a flash memory module
US8949689B2 (en) 2012-06-11 2015-02-03 SMART Storage Systems, Inc. Storage control system with data management mechanism and method of operation thereof
US9135161B2 (en) 2012-06-12 2015-09-15 International Business Machines Corporation Flash translation layer system for maintaining data versions in solid state memory
US9122581B2 (en) 2012-06-12 2015-09-01 International Business Machines Corporation Data versioning in solid state memory
US9122582B2 (en) 2012-06-12 2015-09-01 International Business Machines Corporation File system for maintaining data versions in solid state memory
US9116793B2 (en) 2012-06-12 2015-08-25 International Business Machines Corporation Maintaining versions of data in solid state memory
JP5843010B2 (ja) * 2012-06-25 2016-01-13 富士通株式会社 ストレージ制御装置、ストレージ制御方法およびストレージ制御プログラム
US8750045B2 (en) 2012-07-27 2014-06-10 Sandisk Technologies Inc. Experience count dependent program algorithm for flash memory
US9699263B1 (en) 2012-08-17 2017-07-04 Sandisk Technologies Llc. Automatic read and write acceleration of data accessed by virtual machines
US9921954B1 (en) 2012-08-27 2018-03-20 Avago Technologies General Ip (Singapore) Pte. Ltd. Method and system for split flash memory management between host and storage controller
DE102012022728A1 (de) 2012-11-21 2014-05-22 Unify Gmbh & Co. Kg Verfahren zur Steuerung eines Flash-Speichers zur Massenspeicherung, der von einem an einen Host anschließbaren Kommunikationsgerät umfasst ist, und Computerprogrammprodukt zur Ausführung des Verfahrens
US9368225B1 (en) 2012-11-21 2016-06-14 Avago Technologies General Ip (Singapore) Pte. Ltd. Determining read thresholds based upon read error direction statistics
CN103001863B (zh) * 2012-11-27 2015-09-09 中国科学院声学研究所 数据包快速复制方法、数据包读取方法
US9047172B2 (en) 2012-11-29 2015-06-02 Intel Corporation Adaptive power control of memory map storage devices
US9671962B2 (en) 2012-11-30 2017-06-06 Sandisk Technologies Llc Storage control system with data management mechanism of parity and method of operation thereof
US9195584B2 (en) 2012-12-10 2015-11-24 Sandisk Technologies Inc. Dynamic block linking with individually configured plane parameters
US9612948B2 (en) 2012-12-27 2017-04-04 Sandisk Technologies Llc Reads and writes between a contiguous data block and noncontiguous sets of logical address blocks in a persistent storage device
US9454420B1 (en) 2012-12-31 2016-09-27 Sandisk Technologies Llc Method and system of reading threshold voltage equalization
US9069659B1 (en) 2013-01-03 2015-06-30 Densbits Technologies Ltd. Read threshold determination using reference read threshold
TWI497292B (zh) * 2013-01-09 2015-08-21 Memoright Corp A Method of Finding System Data Based on Index Block
US9076545B2 (en) 2013-01-17 2015-07-07 Sandisk Tecnologies Inc. Dynamic adjustment of read voltage levels based on memory cell threshold voltage distribution
US9123445B2 (en) 2013-01-22 2015-09-01 SMART Storage Systems, Inc. Storage control system with data management mechanism and method of operation thereof
US9395924B2 (en) 2013-01-22 2016-07-19 Seagate Technology Llc Management of and region selection for writes to non-volatile memory
US9026757B2 (en) * 2013-01-25 2015-05-05 Sandisk Technologies Inc. Non-volatile memory programming data preservation
US8913428B2 (en) 2013-01-25 2014-12-16 Sandisk Technologies Inc. Programming non-volatile storage system with multiple memory die
US9329928B2 (en) 2013-02-20 2016-05-03 Sandisk Enterprise IP LLC. Bandwidth optimization in a non-volatile memory system
US9214965B2 (en) 2013-02-20 2015-12-15 Sandisk Enterprise Ip Llc Method and system for improving data integrity in non-volatile storage
US9183137B2 (en) 2013-02-27 2015-11-10 SMART Storage Systems, Inc. Storage control system with data management mechanism and method of operation thereof
US8972776B2 (en) * 2013-03-06 2015-03-03 Seagate Technology, Llc Partial R-block recycling
US9470720B2 (en) 2013-03-08 2016-10-18 Sandisk Technologies Llc Test system with localized heating and method of manufacture thereof
US9870830B1 (en) 2013-03-14 2018-01-16 Sandisk Technologies Llc Optimal multilevel sensing for reading data from a storage medium
US9478271B2 (en) * 2013-03-14 2016-10-25 Seagate Technology Llc Nonvolatile memory data recovery after power failure
US9037902B2 (en) 2013-03-15 2015-05-19 Sandisk Technologies Inc. Flash memory techniques for recovering from write interrupt resulting from voltage fault
US9465732B2 (en) 2013-03-15 2016-10-11 Sandisk Technologies Llc Binning of blocks for dynamic linking
US9043780B2 (en) 2013-03-27 2015-05-26 SMART Storage Systems, Inc. Electronic system with system modification control mechanism and method of operation thereof
US10049037B2 (en) 2013-04-05 2018-08-14 Sandisk Enterprise Ip Llc Data management in a storage system
US9170941B2 (en) 2013-04-05 2015-10-27 Sandisk Enterprises IP LLC Data hardening in a storage system
US9543025B2 (en) 2013-04-11 2017-01-10 Sandisk Technologies Llc Storage control system with power-off time estimation mechanism and method of operation thereof
US10546648B2 (en) 2013-04-12 2020-01-28 Sandisk Technologies Llc Storage control system with data management mechanism and method of operation thereof
CN104103309B (zh) * 2013-04-15 2017-11-17 旺宏电子股份有限公司 Nand阵列的操作方法及计算机可读取的非暂时性储存媒体
US9213633B2 (en) 2013-04-30 2015-12-15 Seagate Technology Llc Flash translation layer with lower write amplification
US9136876B1 (en) 2013-06-13 2015-09-15 Densbits Technologies Ltd. Size limited multi-dimensional decoding
US9313874B2 (en) 2013-06-19 2016-04-12 SMART Storage Systems, Inc. Electronic system with heat extraction and method of manufacture thereof
US9898056B2 (en) 2013-06-19 2018-02-20 Sandisk Technologies Llc Electronic assembly with thermal channel and method of manufacture thereof
US9244519B1 (en) 2013-06-25 2016-01-26 Smart Storage Systems. Inc. Storage system with data transfer rate adjustment for power throttling
US9367353B1 (en) 2013-06-25 2016-06-14 Sandisk Technologies Inc. Storage control system with power throttling mechanism and method of operation thereof
WO2015008358A1 (ja) * 2013-07-18 2015-01-22 株式会社日立製作所 情報処理装置
US9524235B1 (en) 2013-07-25 2016-12-20 Sandisk Technologies Llc Local hash value generation in non-volatile data storage systems
US9146850B2 (en) 2013-08-01 2015-09-29 SMART Storage Systems, Inc. Data storage system with dynamic read threshold mechanism and method of operation thereof
US9448946B2 (en) 2013-08-07 2016-09-20 Sandisk Technologies Llc Data storage system with stale data mechanism and method of operation thereof
US9431113B2 (en) 2013-08-07 2016-08-30 Sandisk Technologies Llc Data storage system with dynamic erase block grouping mechanism and method of operation thereof
US9361222B2 (en) 2013-08-07 2016-06-07 SMART Storage Systems, Inc. Electronic system with storage drive life estimation mechanism and method of operation thereof
US9639463B1 (en) 2013-08-26 2017-05-02 Sandisk Technologies Llc Heuristic aware garbage collection scheme in storage systems
US9413491B1 (en) 2013-10-08 2016-08-09 Avago Technologies General Ip (Singapore) Pte. Ltd. System and method for multiple dimension decoding and encoding a message
US9397706B1 (en) 2013-10-09 2016-07-19 Avago Technologies General Ip (Singapore) Pte. Ltd. System and method for irregular multiple dimension decoding and encoding
US9786388B1 (en) 2013-10-09 2017-10-10 Avago Technologies General Ip (Singapore) Pte. Ltd. Detecting and managing bad columns
US9348694B1 (en) 2013-10-09 2016-05-24 Avago Technologies General Ip (Singapore) Pte. Ltd. Detecting and managing bad columns
US9442662B2 (en) 2013-10-18 2016-09-13 Sandisk Technologies Llc Device and method for managing die groups
US9436831B2 (en) 2013-10-30 2016-09-06 Sandisk Technologies Llc Secure erase in a memory device
US9152555B2 (en) 2013-11-15 2015-10-06 Sandisk Enterprise IP LLC. Data management with modular erase in a data storage system
US9703816B2 (en) 2013-11-19 2017-07-11 Sandisk Technologies Llc Method and system for forward reference logging in a persistent datastore
US9612773B2 (en) * 2013-11-21 2017-04-04 Samsung Electronics Co., Ltd. User device having a host flash translation layer (FTL), a method for transferring an erase count thereof, a method for transferring reprogram information thereof, and a method for transferring a page offset of an open block thereof
US9520197B2 (en) 2013-11-22 2016-12-13 Sandisk Technologies Llc Adaptive erase of a storage device
US9520162B2 (en) 2013-11-27 2016-12-13 Sandisk Technologies Llc DIMM device controller supervisor
US9582058B2 (en) 2013-11-29 2017-02-28 Sandisk Technologies Llc Power inrush management of storage devices
US9329992B2 (en) * 2013-12-04 2016-05-03 Silicon Motion, Inc. Data storage device and flash memory control method
US9236133B2 (en) * 2013-12-13 2016-01-12 Micron Technology, Inc. Adjusted read for partially programmed block
KR102116258B1 (ko) * 2013-12-24 2020-06-05 삼성전자주식회사 메모리 시스템 및 그것을 포함하는 유저 장치
US9536612B1 (en) 2014-01-23 2017-01-03 Avago Technologies General Ip (Singapore) Pte. Ltd Digital signaling processing for three dimensional flash memory arrays
US10120792B1 (en) 2014-01-29 2018-11-06 Avago Technologies General Ip (Singapore) Pte. Ltd. Programming an embedded flash storage device
KR102195298B1 (ko) 2014-02-13 2020-12-24 삼성전자주식회사 비휘발성 메모리 장치의 부분 페이지 프로그램 방법
US9703636B2 (en) 2014-03-01 2017-07-11 Sandisk Technologies Llc Firmware reversion trigger and control
US9230689B2 (en) 2014-03-17 2016-01-05 Sandisk Technologies Inc. Finding read disturbs on non-volatile memories
US9448876B2 (en) 2014-03-19 2016-09-20 Sandisk Technologies Llc Fault detection and prediction in storage devices
US9454448B2 (en) 2014-03-19 2016-09-27 Sandisk Technologies Llc Fault testing in storage devices
JP6260395B2 (ja) * 2014-03-27 2018-01-17 Tdk株式会社 メモリコントローラ、メモリシステム及びメモリ制御方法
US9626399B2 (en) 2014-03-31 2017-04-18 Sandisk Technologies Llc Conditional updates for reducing frequency of data modification operations
US9626400B2 (en) 2014-03-31 2017-04-18 Sandisk Technologies Llc Compaction of information in tiered data structure
US9697267B2 (en) 2014-04-03 2017-07-04 Sandisk Technologies Llc Methods and systems for performing efficient snapshots in tiered data structures
US9542262B1 (en) 2014-05-29 2017-01-10 Avago Technologies General Ip (Singapore) Pte. Ltd. Error correction
US10656842B2 (en) 2014-05-30 2020-05-19 Sandisk Technologies Llc Using history of I/O sizes and I/O sequences to trigger coalesced writes in a non-volatile storage device
US10146448B2 (en) 2014-05-30 2018-12-04 Sandisk Technologies Llc Using history of I/O sequences to trigger cached read ahead in a non-volatile storage device
US10372613B2 (en) 2014-05-30 2019-08-06 Sandisk Technologies Llc Using sub-region I/O history to cache repeatedly accessed sub-regions in a non-volatile storage device
US10114557B2 (en) 2014-05-30 2018-10-30 Sandisk Technologies Llc Identification of hot regions to enhance performance and endurance of a non-volatile storage device
US9703491B2 (en) 2014-05-30 2017-07-11 Sandisk Technologies Llc Using history of unaligned writes to cache data and avoid read-modify-writes in a non-volatile storage device
US10656840B2 (en) 2014-05-30 2020-05-19 Sandisk Technologies Llc Real-time I/O pattern recognition to enhance performance and endurance of a storage device
US10162748B2 (en) 2014-05-30 2018-12-25 Sandisk Technologies Llc Prioritizing garbage collection and block allocation based on I/O history for logical address regions
US9652381B2 (en) 2014-06-19 2017-05-16 Sandisk Technologies Llc Sub-block garbage collection
KR102292172B1 (ko) * 2014-06-23 2021-08-25 삼성전자주식회사 불휘발성 메모리 장치 및 메모리 컨트롤러의 동작 방법
US9892033B1 (en) 2014-06-24 2018-02-13 Avago Technologies General Ip (Singapore) Pte. Ltd. Management of memory units
US9584159B1 (en) 2014-07-03 2017-02-28 Avago Technologies General Ip (Singapore) Pte. Ltd. Interleaved encoding
US9972393B1 (en) 2014-07-03 2018-05-15 Avago Technologies General Ip (Singapore) Pte. Ltd. Accelerating programming of a flash memory module
US9449702B1 (en) 2014-07-08 2016-09-20 Avago Technologies General Ip (Singapore) Pte. Ltd. Power management
US9443601B2 (en) 2014-09-08 2016-09-13 Sandisk Technologies Llc Holdup capacitor energy harvesting
US10114562B2 (en) 2014-09-16 2018-10-30 Sandisk Technologies Llc Adaptive block allocation in nonvolatile memory
US9552171B2 (en) 2014-10-29 2017-01-24 Sandisk Technologies Llc Read scrub with adaptive counter management
US9978456B2 (en) 2014-11-17 2018-05-22 Sandisk Technologies Llc Techniques for reducing read disturb in partially written blocks of non-volatile memory
US9349479B1 (en) 2014-11-18 2016-05-24 Sandisk Technologies Inc. Boundary word line operation in nonvolatile memory
US9524211B1 (en) 2014-11-18 2016-12-20 Avago Technologies General Ip (Singapore) Pte. Ltd. Codeword management
US9563504B2 (en) 2014-12-05 2017-02-07 Sandisk Technologies Llc Partial block erase for data refreshing and open-block programming
US10305515B1 (en) 2015-02-02 2019-05-28 Avago Technologies International Sales Pte. Limited System and method for encoding using multiple linear feedback shift registers
US9449700B2 (en) 2015-02-13 2016-09-20 Sandisk Technologies Llc Boundary word line search and open block read methods with reduced read disturb
US9594623B2 (en) 2015-03-24 2017-03-14 Nxp Usa, Inc. System on chip and method of updating program code on a system on chip
KR102291806B1 (ko) * 2015-04-20 2021-08-24 삼성전자주식회사 불휘발성 메모리 시스템 및 그것의 동작 방법
US10628255B1 (en) 2015-06-11 2020-04-21 Avago Technologies International Sales Pte. Limited Multi-dimensional decoding
US9851921B1 (en) 2015-07-05 2017-12-26 Avago Technologies General Ip (Singapore) Pte. Ltd. Flash memory chip processing
KR20170011645A (ko) * 2015-07-23 2017-02-02 에스케이하이닉스 주식회사 반도체 메모리 장치를 포함하는 메모리 시스템 및 그것의 동작 방법
KR102491624B1 (ko) * 2015-07-27 2023-01-25 삼성전자주식회사 데이터 저장 장치의 작동 방법과 상기 데이터 저장 장치를 포함하는 시스템의 작동 방법
TWI601141B (zh) * 2015-08-21 2017-10-01 晨星半導體股份有限公司 快閃記憶體的存取方法及相關的記憶體控制器與電子裝置
CN106484630A (zh) * 2015-08-31 2017-03-08 晨星半导体股份有限公司 快闪存储器的存取方法及相关的存储器控制器与电子装置
US9653154B2 (en) 2015-09-21 2017-05-16 Sandisk Technologies Llc Write abort detection for multi-state memories
US10532481B2 (en) * 2015-11-25 2020-01-14 Ridge Tool Company Punch tool system
US9954558B1 (en) 2016-03-03 2018-04-24 Avago Technologies General Ip (Singapore) Pte. Ltd. Fast decoding of data stored in a flash memory
TWI631463B (zh) 2016-03-22 2018-08-01 威盛電子股份有限公司 非揮發性記憶體裝置及其操作方法
TWI599880B (zh) 2016-03-22 2017-09-21 威盛電子股份有限公司 非揮發性記憶體裝置及其操作方法
US10019198B2 (en) 2016-04-01 2018-07-10 Intel Corporation Method and apparatus for processing sequential writes to portions of an addressable unit
US10031845B2 (en) 2016-04-01 2018-07-24 Intel Corporation Method and apparatus for processing sequential writes to a block group of physical blocks in a memory device
TWI604455B (zh) * 2016-05-13 2017-11-01 Silicon Motion Inc 資料儲存裝置、記憶體控制器及其資料管理方法與資料區塊管理方法
US9817593B1 (en) 2016-07-11 2017-11-14 Sandisk Technologies Llc Block management in non-volatile memory system with non-blocking control sync system
US9881682B1 (en) 2016-11-23 2018-01-30 Seagate Technology Llc Fine grained data retention monitoring in solid state drives
FR3065303B1 (fr) * 2017-04-12 2019-06-07 Stmicroelectronics (Rousset) Sas Procede d'ecriture dans un dispositif de memoire non volatile et dispositif de memoire non volatile correspondant
US10115472B1 (en) 2017-08-02 2018-10-30 International Business Machines Corporation Reducing read disturb effect on partially programmed blocks of non-volatile memory
CN109407963A (zh) * 2017-08-15 2019-03-01 深圳市中兴微电子技术有限公司 一种实现存储管理的方法及装置
CN107919110A (zh) * 2017-11-27 2018-04-17 哈尔滨理工大学 一种针对乐谱的译码方式
US10529435B2 (en) * 2018-01-05 2020-01-07 Sandisk Technologies Llc Fast detection of defective memory block to prevent neighbor plane disturb
CN111587424A (zh) * 2018-01-29 2020-08-25 惠普发展公司,有限责任合伙企业 存储器中存储的数据集的有效性
KR20190120966A (ko) * 2018-04-17 2019-10-25 에스케이하이닉스 주식회사 저장 장치 및 그 동작 방법
CN110489052B (zh) * 2018-05-14 2022-11-25 慧荣科技股份有限公司 数据储存装置
KR102530327B1 (ko) 2018-06-01 2023-05-08 삼성전자주식회사 비휘발성 메모리 장치 및 그 동작 방법
US11055226B2 (en) * 2018-06-29 2021-07-06 Intel Corporation Mitigation of cache-latency based side-channel attacks
US10733027B2 (en) * 2018-10-07 2020-08-04 Hewlett Packard Enterprise Development Lp Memory allocator
KR20210014337A (ko) 2019-07-30 2021-02-09 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
US11347404B2 (en) * 2019-08-01 2022-05-31 EMC IP Holding Company, LLC System and method for sharing spare storage capacity between a log structured file system and RAID
US11287989B2 (en) 2020-03-24 2022-03-29 Western Digital Technologies, Inc. Dynamic allocation of sub blocks
US11721397B2 (en) 2020-12-28 2023-08-08 Sandisk Technologies Llc Power saving and fast read sequence for non-volatile memory
JP2022147448A (ja) * 2021-03-23 2022-10-06 キオクシア株式会社 メモリシステム及びデータ管理方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5598370A (en) 1993-02-24 1997-01-28 International Business Machines Corporation Nonvolatile memory with cluster-erase flash capability and solid state file apparatus using the same

Family Cites Families (75)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4833603A (en) 1986-05-30 1989-05-23 Bull Hn Information Systems Inc. Apparatus and method for implementation of a page frame replacement algorithm in a data processing system having virtual memory addressing
US5043940A (en) 1988-06-08 1991-08-27 Eliyahou Harari Flash EEPROM memory systems having multistate storage cells
US5268870A (en) 1988-06-08 1993-12-07 Eliyahou Harari Flash EEPROM system and intelligent programming and erasing methods therefor
US5172338B1 (en) 1989-04-13 1997-07-08 Sandisk Corp Multi-state eeprom read and write circuits and techniques
US5012132A (en) 1989-10-05 1991-04-30 Xicor, Inc. Dual mode high voltage coupler
GB2251324B (en) 1990-12-31 1995-05-10 Intel Corp File structure for a non-volatile semiconductor memory
US5663901A (en) 1991-04-11 1997-09-02 Sandisk Corporation Computer memory cards using flash EEPROM integrated circuit chips and memory-controller systems
JP2618149B2 (ja) * 1991-04-22 1997-06-11 インターナショナル・ビジネス・マシーンズ・コーポレイション キャッシュ内のデータ記憶スペースを管理する方法及びキャッシュ内でページ置換を行う装置
US6347051B2 (en) * 1991-11-26 2002-02-12 Hitachi, Ltd. Storage device employing a flash memory
JPH05233426A (ja) * 1992-02-20 1993-09-10 Fujitsu Ltd フラッシュ・メモリ使用方法
US5375222A (en) 1992-03-31 1994-12-20 Intel Corporation Flash memory card with a ready/busy mask register
US5341330A (en) 1992-10-30 1994-08-23 Intel Corporation Method for writing to a flash memory array during erase suspend intervals
US5822781A (en) 1992-10-30 1998-10-13 Intel Corporation Sector-based storage device emulator having variable-sized sector
US5649200A (en) * 1993-01-08 1997-07-15 Atria Software, Inc. Dynamic rule-based version control system
DE69421305T2 (de) * 1993-02-15 2000-07-20 Hitachi Ltd Verfahren und Vorrichtung zur präventiven Wartung von Anlagenbauteilen
US5404485A (en) 1993-03-08 1995-04-04 M-Systems Flash Disk Pioneers Ltd. Flash file system
US5519843A (en) 1993-03-15 1996-05-21 M-Systems Flash memory system providing both BIOS and user storage capability
US5388083A (en) 1993-03-26 1995-02-07 Cirrus Logic, Inc. Flash memory mass storage architecture
US5485595A (en) 1993-03-26 1996-01-16 Cirrus Logic, Inc. Flash memory mass storage architecture incorporating wear leveling technique without using cam cells
US5479638A (en) 1993-03-26 1995-12-26 Cirrus Logic, Inc. Flash memory mass storage architecture incorporation wear leveling technique
US6078520A (en) * 1993-04-08 2000-06-20 Hitachi, Ltd. Flash memory control method and information processing system therewith
JP3215237B2 (ja) * 1993-10-01 2001-10-02 富士通株式会社 記憶装置および記憶装置の書き込み/消去方法
JPH08212019A (ja) 1995-01-31 1996-08-20 Mitsubishi Electric Corp 半導体ディスク装置
JP3706167B2 (ja) 1995-02-16 2005-10-12 株式会社ルネサステクノロジ 半導体ディスク装置
JPH08263361A (ja) 1995-03-23 1996-10-11 Mitsubishi Electric Corp フラッシュメモリカード
US5682499A (en) 1995-06-06 1997-10-28 International Business Machines Corporation Directory rebuild method and apparatus for maintaining and rebuilding directory information for compressed data on direct access storage device (DASD)
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
US5845313A (en) 1995-07-31 1998-12-01 Lexar Direct logical block addressing flash memory mass storage architecture
US6125435A (en) 1995-09-13 2000-09-26 Lexar Media, Inc. Alignment of cluster address to block addresses within a semiconductor non-volatile mass storage memory
US5835935A (en) 1995-09-13 1998-11-10 Lexar Media, Inc. Method of and architecture for controlling system data with automatic wear leveling in a semiconductor non-volatile mass storage memory
US5860090A (en) * 1995-10-20 1999-01-12 Informix Software, Inc. Append-only storage in a disk array using striping and parity caching
US5987478A (en) * 1995-10-31 1999-11-16 Intel Corporation Virtual small block file manager for flash memory array
FR2742893B1 (fr) 1995-12-20 1998-01-16 Schlumberger Ind Sa Procede d'inscription d'une donnee dans une memoire reinscriptible
GB9609833D0 (en) 1996-05-10 1996-07-17 Memory Corp Plc Memory device
US5896393A (en) 1996-05-23 1999-04-20 Advanced Micro Devices, Inc. Simplified file management scheme for flash memory
JP4462646B2 (ja) 1996-06-28 2010-05-12 ソニー株式会社 情報処理装置および情報処理方法、リーダ/ライタおよびアクセス方法、並びに記録媒体
JPH1091490A (ja) 1996-09-12 1998-04-10 Sanyo Electric Co Ltd フラッシュメモリを利用した記憶装置
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
JPH10177797A (ja) 1996-12-17 1998-06-30 Toshiba Corp 半導体記憶装置
JP3895816B2 (ja) 1996-12-25 2007-03-22 株式会社東芝 不揮発性半導体記憶装置とその制御方法、メモリカード、及び記憶システム
US5924092A (en) 1997-02-07 1999-07-13 International Business Machines Corporation Computer system and method which sort array elements to optimize array modifications
US6034897A (en) * 1999-04-01 2000-03-07 Lexar Media, Inc. Space management for managing high capacity nonvolatile memory
US6122195A (en) 1997-03-31 2000-09-19 Lexar Media, Inc. Method and apparatus for decreasing block write operation times performed on nonvolatile memory
US5999947A (en) * 1997-05-27 1999-12-07 Arkona, Llc Distributing database differences corresponding to database change events made to a database table located on a server computer
JP3721725B2 (ja) 1997-07-09 2005-11-30 ソニー株式会社 情報処理方法および情報処理装置
US6768165B1 (en) 1997-08-01 2004-07-27 Saifun Semiconductors Ltd. Two bit non-volatile electrically erasable and programmable semiconductor memory cell utilizing asymmetrical charge trapping
JP4079506B2 (ja) 1997-08-08 2008-04-23 株式会社東芝 不揮発性半導体メモリシステムの制御方法
JPH1153235A (ja) 1997-08-08 1999-02-26 Toshiba Corp ディスク記憶装置のデータ更新方法、ならびにディスク記憶制御システム
JP3640154B2 (ja) 1997-09-30 2005-04-20 ソニー株式会社 不揮発性メモリ、不揮発性メモリの管理方法、不揮発性メモリを有する記憶装置、不揮発性メモリを管理するデータ管理装置及びデータ処理システム
JP3070539B2 (ja) 1997-09-30 2000-07-31 ソニー株式会社 外部記憶装置、データ処理装置及びデータ処理方法
JP2914360B2 (ja) * 1997-09-30 1999-06-28 ソニー株式会社 外部記憶装置及びデータ処理方法
JP3119214B2 (ja) * 1997-09-30 2000-12-18 ソニー株式会社 記憶装置、データ処理システム並びにデータの書き込み及び読み出し方法
US5937425A (en) 1997-10-16 1999-08-10 M-Systems Flash Disk Pioneers Ltd. Flash file system optimized for page-mode flash technologies
US6040997A (en) 1998-03-25 2000-03-21 Lexar Media, Inc. Flash memory leveling architecture having no external latch
US6226728B1 (en) * 1998-04-21 2001-05-01 Intel Corporation Dynamic allocation for efficient management of variable sized data within a nonvolatile memory
JP4085478B2 (ja) 1998-07-28 2008-05-14 ソニー株式会社 記憶媒体及び電子機器システム
GB9903490D0 (en) 1999-02-17 1999-04-07 Memory Corp Plc Memory system
US6715068B1 (en) * 1999-03-31 2004-03-30 Fuji Photo Optical Co., Ltd. Multi-microcomputer system
WO2000060605A1 (en) * 1999-04-01 2000-10-12 Lexar Media, Inc. Space management for managing high capacity nonvolatile memory
US6449625B1 (en) * 1999-04-20 2002-09-10 Lucent Technologies Inc. Use of a two-way stack approach to optimize flash memory management for embedded database systems
US6288862B1 (en) 1999-07-30 2001-09-11 Storage Technology Corporation Method and mechanism to distinguish valid from outdated recording blocks in a tape drive
FR2803080A1 (fr) 1999-12-22 2001-06-29 St Microelectronics Sa Memoire flash programmable page par page
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
US6567307B1 (en) 2000-07-21 2003-05-20 Lexar Media, Inc. Block management for mass storage
US7167944B1 (en) 2000-07-21 2007-01-23 Lexar Media, Inc. Block management for mass storage
JP3992960B2 (ja) * 2000-10-26 2007-10-17 松下電器産業株式会社 記録装置及びプログラム
US6684289B1 (en) 2000-11-22 2004-01-27 Sandisk Corporation Techniques for operating non-volatile memory systems with data sectors having different sizes than the sizes of the pages and/or blocks of the memory
US6529416B2 (en) * 2000-11-30 2003-03-04 Bitmicro Networks, Inc. Parallel erase operations in memory systems
US7020739B2 (en) * 2000-12-06 2006-03-28 Tdk Corporation Memory controller, flash memory system having memory controller and method for controlling flash memory device
IT1315566B1 (it) 2000-12-12 2003-02-18 Federico Renier Metodo per la certificazione dell'invio,della ricezione edell'autenticita' di documenti elettronici ed unita' di rete
US6763424B2 (en) 2001-01-19 2004-07-13 Sandisk Corporation Partial block data programming and reading operations in a non-volatile memory
US6835311B2 (en) 2002-01-31 2004-12-28 Koslow Technologies Corporation Microporous filter media, filtration systems containing same, and methods of making and using

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5598370A (en) 1993-02-24 1997-01-28 International Business Machines Corporation Nonvolatile memory with cluster-erase flash capability and solid state file apparatus using the same

Also Published As

Publication number Publication date
US20090150601A1 (en) 2009-06-11
EP1645964A2 (en) 2006-04-12
US7970987B2 (en) 2011-06-28
JP4155824B2 (ja) 2008-09-24
AU2002236723A1 (en) 2002-07-30
DE60211653T2 (de) 2007-04-12
US20110029724A1 (en) 2011-02-03
CN100485642C (zh) 2009-05-06
CN1290021C (zh) 2006-12-13
US20020099904A1 (en) 2002-07-25
CN1924831A (zh) 2007-03-07
CN1924830A (zh) 2007-03-07
EP1352394B1 (en) 2006-05-24
ATE327556T1 (de) 2006-06-15
EP1653323B1 (en) 2015-05-06
TWI221217B (en) 2004-09-21
JP4768771B2 (ja) 2011-09-07
DE60211653D1 (de) 2006-06-29
US6763424B2 (en) 2004-07-13
WO2002058074A3 (en) 2003-07-10
EP1653323A3 (en) 2011-01-26
KR100944996B1 (ko) 2010-03-05
EP1653323A2 (en) 2006-05-03
EP1352394A2 (en) 2003-10-15
CN1514971A (zh) 2004-07-21
WO2002058074A2 (en) 2002-07-25
US8316177B2 (en) 2012-11-20
JP4750766B2 (ja) 2011-08-17
KR20030070119A (ko) 2003-08-27
US20110258386A1 (en) 2011-10-20
ES2262782T3 (es) 2006-12-01
JP2004533029A (ja) 2004-10-28
JP2008226254A (ja) 2008-09-25
JP2008004117A (ja) 2008-01-10
CN100485641C (zh) 2009-05-06
US7657702B2 (en) 2010-02-02
US20040210708A1 (en) 2004-10-21
KR20090006217A (ko) 2009-01-14
WO2002058074A9 (en) 2002-10-03
EP2953030A1 (en) 2015-12-09
US7818490B2 (en) 2010-10-19
US6968421B2 (en) 2005-11-22
EP1645964A3 (en) 2011-01-26
US20060031627A1 (en) 2006-02-09

Similar Documents

Publication Publication Date Title
KR101076830B1 (ko) 비휘발성 메모리에 부분적 블럭 데이터 프로그래밍 및 판독작동
EP1157328B1 (en) Memory system
US6906961B2 (en) Erase block data splitting
WO2007058624A1 (en) A controller for non-volatile memories, and methods of operating the memory controller
WO2006074086A2 (en) On-chip data grouping and alignment
JP2008524705A (ja) スクラッチパッドブロック

Legal Events

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

Payment date: 20141001

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20151012

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20160921

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20170919

Year of fee payment: 7

LAPS Lapse due to unpaid annual fee