KR101076830B1 - 비휘발성 메모리에 부분적 블럭 데이터 프로그래밍 및 판독작동 - Google Patents
비휘발성 메모리에 부분적 블럭 데이터 프로그래밍 및 판독작동 Download PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
- G11C16/102—External programming circuits, e.g. EPROM programmers; In-circuit programming or reprogramming; EPROM emulators
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
- G11C16/102—External programming circuits, e.g. EPROM programmers; In-circuit programming or reprogramming; EPROM emulators
- G11C16/105—Circuits 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1032—Reliability improvement, data loss prevention, degraded operation etc
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7202—Allocation control and policies
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7208—Multiple device management, e.g. distributing data over multiple flash devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7209—Validity control, e.g. using flags, time stamps or sequence numbers
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C2216/00—Indexing scheme relating to G11C16/00 and subgroups, for features not directly covered by these groups
- G11C2216/12—Reading and writing aspects of erasable programmable read-only memories
- G11C2216/16—Flash 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
본 발명은 반도체 비휘발성 데이터 저장 시스템 아키텍쳐 및 그 작동 방법에 관한 것으로서, 플래시 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 시간 동안 갱신하고, 이전에 기입된 페이지들과 이에 대응하는 갱신 페이지들의 데이터를 링크하는(linking) 단계로서, 여기서 상기 갱신된 데이터는, 상기 링크된 데이터가 이전에 기입된 상기 최초 데이터 블럭의 페이지들과 다른 오프셋 위치들을 갖는 갱신 데이터 블럭의 페이지들에 기입가능하게 되는 단계; 및두 개 이상의 링크된 페이지들의 데이터를 판독할 때, 상기 두 개 이상의 페이지들에 상기 데이터가 저장된 시간들의 표시들을 판독하고, 이전의 시간 표시들을 갖는 상기 두 개 이상의 페이지들의 데이터를 사용하지 않고 최근의 시간 표시들을 갖는 상기 두 개 이상의 페이지들의 데이터를 사용하는 단계;를 포함하는 메모리 시스템 작동 방법.
- 제1항에 있어서, 데이터가 개개의 페이지들에 기입되는 시간의 표시를 기록하는 단계는, 상기 표시를 데이터가 기입되는 페이지들 내에 기록하는 것을 포함하는 메모리 시스템 작동 방법.
- 제1항에 있어서, 최초 데이터 블럭들 중 한 블럭의 하나 이상의 페이지에 이전에 기입된 데이터를 제1 시간 동안 갱신하는 것은, 최초 데이터 블럭들 중 한 블럭의 모든 페이지들보다 적은 수의 페이지들에 데이터를 갱신하는 것을 포함하는 한편, 동일한 최초 데이터 블럭의 나머지 페이지에는 데이터를 갱신하지 않는 메모리 시스템 작동 방법.
- 제3항에 있어서, 상기 방법이 수행되는 메모리 시스템은 전하저장소자들로서 전기전도성 플로팅게이트들을 이용하는 메모리 시스템 작동 방법.
- 제1항에 있어서, 데이터를 갱신하는 부분으로서, 상기 이전에 기입된 페이지들과 이에 대응하는 갱신 페이지들의 데이터를 링크하는 단계는, 갱신된 데이터가 기입되는 개개의 갱신 페이지에 갱신된 데이터의 논리적 어드레스들이 저장되는 것을 포함하는 메모리 시스템 작동 방법.
- 제1항에 있어서, 데이터를 페이지들에 기입하는 부분으로서, 데이터는 두 개 이상의 저장상태들을 가진, 페이지들 내의 개개의 전하저장소자에 기입되고, 이에 의해 1비트 이상의 데이터를 개개의 전하저장소자에 저장하는 메모리 시스템 작동 방법.
- 제1항에 있어서, 상기 방법이 수행되는 메모리 시스템은 전하저장소자들로서 전기전도성 플로팅게이트들을 이용하는 메모리 시스템 작동 방법.
- 제1항에 있어서, 상기 이전에 기입된 페이지들과 이에 대응하는 갱신 페이지들의 데이터를 링크하는 단계는, 페이지들의 공통 논리적 어드레스들을 유지하는 단계를 포함하는 메모리 시스템 작동 방법.
- 제8항에 있어서, 공통 논리적 어드레스들을 유지하는 단계는, 상기 공통 논리적 어드레스들을 각각의 이전에 기입된 데이터 및 갱신된 데이터와 함께 최초 데이터 블럭의 페이지들 및 갱신 데이터 블럭의 페이지들에 저장하는 것을 포함하는 메모리 시스템 작동 방법.
- 제8항에 있어서, 데이터를 판독하는 단계는, 판독 데이터를 상기 판독 데이터와 연관된 논리적 페이지 어드레스들에 의해 구성하는(organizing) 단계를 더 포함하는 메모리 시스템 작동 방법.
- 제1항에 있어서, 데이터는 블럭들의 개개의 페이지들에 특정된 순서로 기입되는 메모리 시스템 작동 방법.
- 제1항에 있어서,최초 데이터 블럭들의 한 블럭과 갱신 데이터 블럭을 메모리 시스템의 복수의 서브-어레이들 중 서로 다른 서브-어레이들에 위치시키는 단계로서, 여기서 상기 서브-어레이들은 프로그래밍 작동이 독립적으로 수행될 수 있는 전하저장소자들의 블럭들의 물리적으로 분리된 그룹들인 단계; 및최초 데이터 블럭과 갱신 데이터 블럭을 링크하여 메타블럭을 형성함으로써 상기 블럭들의 전하저장소자들이 함께 소거가능하게 하고 상기 블럭들의 페이지들이 동시에 함께 프로그램가능하게 하는 단계;를 추가로 포함하는 메모리 시스템 작동 방법.
- 제1항에 있어서,갱신된 데이터를 갱신 데이터 블럭의 하나 이상의 갱신 페이지에 기입함으로써 최초 데이터 블럭들의 제2 블럭의 하나 이상의 페이지에 이전에 기입된 데이터를 갱신하는 단계; 및최초 데이터 블럭들의 제2 블럭의 이전에 기입된 페이지들과 이에 대응하는 갱신 페이지들의 데이터를 링크하는 단계;를 추가로 포함하고, 여기서 갱신된 데이터를 기입하는 것은, 상기 링크된 데이터가 상기 이전에 기입된 최초 데이터 블럭들의 제2 블럭의 페이지들과 동일한 오프셋 위치들을 갖는 갱신 데이터 블럭의 페이지들에 상기 갱신된 데이터를 기입하는 것을 요하지 않는 메모리 시스템 작동 방법.
- 제13항에 있어서, 최초 데이터 블럭들의 한 블럭과 제2 블럭의 하나 이상의 페이지에 이전에 기입된 데이터를 갱신하는 단계는, 개개의 최초 데이터 블럭의 모든 페이지들보다 적은 수의 페이지들에 데이터를 갱신하는 단계를 포함하는 한편, 동일한 개개의 최초 데이터 블럭의 나머지 페이지에는 데이터를 갱신하지 않는 메모리 시스템 작동 방법.
- 제1항에 있어서,상기 제1 시간 동안 갱신하는 단계에 의해 갱신되었던, 최초 데이터 블럭들 중 한 블럭의 하나 이상의 페이지에 이전에 기입된 데이터 중 적어도 일부를 제2 시간 동안 갱신하는 단계;제2 시간 동안 갱신된 상기 데이터를 제2 갱신된 데이터 페이지들로서 갱신 데이터 블럭에 기입하는 단계; 및상기 이전에 기입된 페이지들과 이에 대응하는 제2 갱신된 데이터 페이지들의 데이터를 링크하는 단계;를 추가로 포함하는 메모리 시스템 작동 방법.
- 제15항에 있어서, 상기 제1 시간 동안 갱신하는 단계와 상기 제2 시간 동안 갱신하는 단계는 각각, 개개의 최초 데이터 블럭의 모든 페이지들보다 적은 수의 페이지들에 데이터를 갱신하는 단계를 포함하는 한편, 동일한 개개의 최초 데이터 블럭의 나머지 페이지에는 데이터를 갱신하지 않는 메모리 시스템 작동 방법.
- 제1항에 있어서, 상기 방법이 수행되는 메모리 시스템은, 일측을 따라 전기적 커넥터를 구비하고 호스트 시스템과 연결되는 밀봉된 카드 내에 포함되는 메모리 시스템 작동 방법.
- 재프로그램가능한 비휘발성 전하저장소자들의 메모리 시스템을 작동시키는 방법으로서, 여기서 메모리 시스템은 하나의 단위로 함께 소거가능한 최소 수의 전하저장소자들의 블럭들로 구성되고, 개개의 블럭은 블럭 내에 특정 오프셋 위치들을 가진 전하저장소자들의 페이지들을 포함하고, 개개의 페이지의 전하저장소자들은 하나의 단위로 프로그램가능하며, 상기 방법은,데이터를 페이지들에 기입하는 부분으로서, 데이터가 개개의 블럭의 페이지들에 순차적으로 기입되는 단계;갱신된 데이터를 갱신 데이터 블럭의 하나 이상의 갱신 페이지에 기입함으로써 최초 데이터 블럭들 중 한 블럭의 하나 이상의 처음 페이지에 이전에 기입된 데이터를 제1 시간 동안 갱신하고, 상기 이전에 기입된 페이지들과 이에 대응하는 갱신 페이지들의 데이터를 링크하는 단계로서, 여기서 상기 갱신된 데이터는, 상기 링크된 데이터가 상기 이전에 기입된 최초 데이터 블럭의 페이지들과 다른 오프셋 위치들을 갖는 갱신 데이터 블럭의 페이지들에 기입가능하게 되는 단계; 및최초 데이터 블럭과 갱신 데이터 블럭의 페이지들로부터 데이터를 상기 데이터가 기입된 순서와 반대 순서로 판독하고, 데이터가 이미 판독된 페이지와 링크된 페이지에 있는 데이터를 무시하는 단계;를 포함하는 메모리 시스템 작동 방법.
- 제18항에 있어서, 최초 데이터 블럭들 중 한 블럭의 하나 이상의 페이지에 이전에 기입된 데이터를 제1 시간 동안 갱신하는 것은, 최초 데이터 블럭들 중 한 블럭의 모든 페이지들보다 적은 수의 페이지들에 데이터를 갱신하는 것을 포함하는 한편, 동일한 최초 데이터 블럭의 나머지 페이지에는 데이터를 갱신하지 않는 메모리 시스템 작동 방법.
- 제19항에 있어서, 상기 방법이 수행되는 메모리 시스템은 전하저장소자들로서 전기전도성 플로팅게이트들을 이용하는 메모리 시스템 작동 방법.
- 제18항에 있어서, 데이터를 갱신하는 부분으로서, 이전에 기입된 페이지들과 이에 대응하는 갱신 페이지들의 데이터를 링크하는 단계는, 갱신된 데이터가 기입되는 개개의 갱신 페이지에 갱신된 데이터의 논리적 어드레스들이 저장되는 것을 포함하는 메모리 시스템 작동 방법.
- 제18항에 있어서, 데이터를 페이지들에 기입하는 부분으로서, 데이터는 두 개 이상의 저장상태들을 가진, 페이지들 내의 개개의 전하저장소자에 기입되고, 이에 의해 1비트 이상의 데이터를 개개의 전하저장소자에 저장하는 메모리 시스템 작동 방법.
- 제18항에 있어서, 상기 방법이 수행되는 메모리 시스템은 전하저장소자들로서 전기전도성 플로팅게이트들을 이용하는 메모리 시스템 작동 방법.
- 제18항에 있어서, 이전에 기입된 페이지들과 이에 대응하는 갱신 페이지들의 데이터를 링크하는 단계는, 페이지들의 공통 논리적 어드레스들을 유지하는 단계를 포함하는 메모리 시스템 작동 방법.
- 제24항에 있어서, 공통 논리적 어드레스들을 유지하는 단계는, 상기 공통 논리적 어드레스들을 각각의 이전에 기입된 데이터 및 갱신된 데이터와 함께 최초 데이터 블럭의 페이지들 및 갱신 데이터 블럭의 페이지들에 저장하는 것을 포함하는 메모리 시스템 작동 방법.
- 제24항에 있어서, 데이터를 판독하는 단계는, 판독 데이터를 상기 판독 데이터와 연관된 논리적 페이지 어드레스들에 의해 구성하는 단계를 더 포함하는 메모리 시스템 작동 방법.
- 제18항에 있어서, 데이터는 블럭들의 개개의 페이지들에 특정된 순서로 기입되는 메모리 시스템 작동 방법.
- 제18항에 있어서,최초 데이터 블럭들의 한 블럭과 갱신 데이터 블럭을 메모리 시스템의 복수의 서브-어레이들 중 서로 다른 서브-어레이들에 위치시키는 단계로서, 여기서 상기 서브-어레이들은 프로그래밍 작동이 독립적으로 수행될 수 있는 전하저장소자들의 블럭들의 물리적으로 분리된 그룹들인 단계; 및최초 데이터 블럭과 갱신 데이터 블럭을 링크하여 메타블럭을 형성함으로써 상기 블럭들의 전하저장소자들이 함께 소거가능하게 하고 상기 블럭들의 페이지들이 동시에 함께 프로그램가능하게 하는 단계;를 추가로 포함하는 메모리 시스템 작동 방법.
- 제18항에 있어서,갱신된 데이터를 갱신 데이터 블럭의 하나 이상의 갱신 페이지에 기입함으로써 최초 데이터 블럭들의 제2 블럭의 하나 이상의 페이지에 이전에 기입된 데이터를 갱신하는 단계; 및최초 데이터 블럭들의 제2 블럭의 이전에 기입된 페이지들과 이에 대응하는 갱신 페이지들의 데이터를 링크하는 단계;를 추가로 포함하고, 여기서 갱신된 데이터를 기입하는 것은, 상기 링크된 데이터가 상기 이전에 기입된 최초 데이터 블럭들의 제2 블럭의 페이지들과 동일한 오프셋 위치들을 갖는 갱신 데이터 블럭의 페이지들에 갱신된 데이터를 기입하는 것을 요하지 않는 메모리 시스템 작동 방법.
- 제29항에 있어서, 최초 데이터 블럭들의 한 블럭과 제2 블럭의 하나 이상의 페이지에 이전에 기입된 데이터를 갱신하는 단계는, 개개의 최초 데이터 블럭의 모든 페이지들보다 적은 수의 페이지들에 데이터를 갱신하는 단계를 포함하는 한편, 동일한 개개의 최초 데이터의 나머지 페이지에는 데이터를 갱신하지 않는 메모리 시스템 작동 방법.
- 제18항에 있어서,상기 제1 시간 동안 갱신하는 단계에 의해 갱신되었던, 최초 데이터 블럭들 중 한 블럭의 하나 이상의 페이지에 이전에 기입된 데이터 중 적어도 일부를 제2 시간 동안 갱신하는 단계;제2 시간 동안 갱신된 상기 데이터를 제2 갱신된 데이터 페이지들로서 갱신 데이터 블럭에 기입하는 단계; 및상기 이전에 기입된 페이지들과 이에 대응하는 제2 갱신된 데이터 페이지들의 데이터를 링크하는 단계;를 추가로 포함하는 메모리 시스템 작동 방법.
- 제31항에 있어서, 상기 제1 시간 동안 갱신하는 단계와 상기 제2 시간 동안 갱신하는 단계는 각각, 개개의 최초 데이터 블럭의 모든 페이지들보다 적은 수의 페이지들에 데이터를 갱신하는 단계를 포함하는 한편, 동일한 개개의 최초 데이터 블럭의 나머지 페이지에는 데이터를 갱신하지 않는 메모리 시스템 작동 방법.
- 제18항에 있어서, 상기 방법이 수행되는 메모리 시스템은, 일측을 따라 전기적 커넥터를 구비하고 호스트 시스템과 연결되는 밀봉된 카드 내에 포함되는 메모리 시스템 작동 방법.
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 삭제
- 하나의 단위로 함께 소거가능한 최소 수의 메모리 전하저장소자들의 블럭들을 가진 재프로그램가능한 비휘발성 반도체 메모리 시스템을 작동시키는 방법으로서, 상기 블럭들은, 하나의 단위로 개별적으로 프로그램가능하고 각각의 블럭들 내에 특정된 오프셋 위치들을 가지는 메모리 저장소자들의 주어진 수의 페이지들로 개별적으로 분할되고, 상기 방법은,최초 데이터를 제1 블럭의 제1 페이지들의 개개의 페이지로 프로그램하는 단계로서, 최초 데이터의 페이지들은 연관된 논리적 어드레스들을 가진 단계;최초 데이터의 갱신된 버전을 제2 블럭의 제2 페이지들의 개개의 페이지로 프로그램하는 단계로서, 최초 데이터의 갱신된 버전은 제1 페이지들로 프로그램된 최초 데이터의 페이지들의 주어진 수보다 적은 수의 페이지들을 갖고, 최초 데이터의 갱신된 버전의 페이지들은 연관된 논리적 어드레스들을 갖고, 최초 데이터의 갱신된 버전의 페이지들과 연관된 논리적 어드레스들은 최초 데이터의 페이지들과 연관된 논리적 어드레스들과 동일한 단계;제1 및 제2 페이지들로부터 데이터를 판독하는 단계;판독 데이터의 페이지들을 연관된 논리적 어드레스들에 의해 구성하는 단계;전하저장소자들의 제1 및 제2 블럭들을 메모리 시스템의 서브-어레이들 중 서로 다른 서브-어레이들에 위치시키는 단계로서, 여기서 상기 서브-어레이들은 프로그래밍 작동이 독립적으로 수행될 수 있는 전하저장소자들의 블럭들의 물리적으로 분리된 그룹들인 단계; 및제1 및 제2 블럭들을 링크하여 메타블럭을 형성함으로써 상기 블럭들의 전하저장소자들이 함께 소거가능하게 하고 상기 블럭들의 페이지들이 동시에 함께 프로그램가능하게 하는 단계;를 포함하고, 최초 데이터의 갱신된 버전을 제2 페이지들의 개개의 페이지로 프로그램하는 단계는, 최초 데이터의 갱신된 버전이, 동일한 연관된 논리적 어드레스들을 가진 최초 데이터의 페이지들을 포함하는 상기 제1 블럭 내의 제1 페이지들의 오프셋 위치들과 다른 오프셋 위치들을 제2 블럭 내에 가진 제2 페이지들의 개개의 페이지로 프로그램가능하게 하는 것을 추가로 포함하는 메모리 시스템 작동 방법.
- 삭제
- 삭제
- 삭제
- 삭제
- 재프로그램가능한 비휘발성 전하저장소자들의 어레이를 가진 메모리 시스템을 작동시키는 방법으로서, 여기서 메모리 시스템은 함께 소거가능한 전하저장소자들의 블럭들로 구성되고, 개개의 블럭은 전하저장소자들의 페이지들을 포함하고, 개개의 페이지의 전하저장소자들은 하나의 단위로 프로그램가능하며, 상기 방법은,개개의 블럭에 대해 개별적으로 시간의 표시를 저장하는 단계;데이터를 상기 블럭들 중 한 블럭의 하나 이상의 페이지에 기입하는 부분으로서, 상기 한 블럭에 대해 저장된 시간의 표시를 갱신하는 단계;하나 이상의 처음 페이지로 이전에 기입된 데이터를 갱신할 때, 갱신된 데이터를 하나 이상의 갱신 페이지에 기입하고, 처음 페이지로 이전에 기입된 데이터와 갱신 페이지로 기입된 데이터가 공통 논리적 어드레스들에 의해 표현되는 단계; 및두 개 이상의 블럭들의 두 개 이상의 페이지들로부터 동일한 논리적 어드레스들을 가진 데이터를 판독하는 부분으로서, 상기 두 개 이상의 블럭들로부터 시간들의 표시들을 판독하고, 이전의 시간 표시들을 갖는 상기 두 개 이상의 블럭들 내의 데이터를 사용하지 않고 최근의 시간 표시들을 갖는 상기 두 개 이상의 블럭 내의 데이터를 사용하고, 페이지들이 기입된 물리적 어드레스 순서와 반대 순서로 각각의 상기 두 개 이상의 블럭들 내의 페이지들로부터 데이터를 판독하고, 데이터가 이미 판독된 페이지의 데이터와 동일한 논리적 어드레스를 가진 페이지로부터의 데이터를 무시하는 단계;를 포함하는 메모리 시스템 작동 방법.
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)
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)
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)
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 |
-
2001
- 2001-01-19 US US09/766,436 patent/US6763424B2/en not_active Expired - Lifetime
-
2002
- 2002-01-07 CN CNB028038827A patent/CN1290021C/zh not_active Expired - Lifetime
- 2002-01-07 EP EP15166112.1A patent/EP2953030A1/en not_active Withdrawn
- 2002-01-07 ES ES02703078T patent/ES2262782T3/es not_active Expired - Lifetime
- 2002-01-07 CN CNB2006101423583A patent/CN100485641C/zh not_active Expired - Fee Related
- 2002-01-07 KR KR1020087028861A patent/KR101076830B1/ko not_active IP Right Cessation
- 2002-01-07 EP EP05077929A patent/EP1645964A3/en not_active Withdrawn
- 2002-01-07 DE DE60211653T patent/DE60211653T2/de not_active Expired - Lifetime
- 2002-01-07 JP JP2002558275A patent/JP4155824B2/ja not_active Expired - Fee Related
- 2002-01-07 EP EP20060075106 patent/EP1653323B1/en not_active Expired - Lifetime
- 2002-01-07 AU AU2002236723A patent/AU2002236723A1/en not_active Abandoned
- 2002-01-07 AT AT02703078T patent/ATE327556T1/de not_active IP Right Cessation
- 2002-01-07 WO PCT/US2002/000366 patent/WO2002058074A2/en active IP Right Grant
- 2002-01-07 CN CNB2006101423598A patent/CN100485642C/zh not_active Expired - Fee Related
- 2002-01-07 EP EP02703078A patent/EP1352394B1/en not_active Expired - Lifetime
- 2002-01-07 KR KR1020037009551A patent/KR100944996B1/ko active IP Right Grant
- 2002-01-08 TW TW091100155A patent/TWI221217B/zh not_active IP Right Cessation
-
2004
- 2004-05-07 US US10/841,388 patent/US6968421B2/en not_active Expired - Lifetime
-
2005
- 2005-10-13 US US11/250,238 patent/US7818490B2/en not_active Expired - Fee Related
-
2007
- 2007-08-06 JP JP2007203823A patent/JP4750766B2/ja not_active Expired - Lifetime
-
2008
- 2008-03-24 JP JP2008075388A patent/JP4768771B2/ja not_active Expired - Lifetime
-
2009
- 2009-02-13 US US12/371,460 patent/US7657702B2/en not_active Expired - Fee Related
-
2010
- 2010-10-07 US US12/900,397 patent/US7970987B2/en not_active Expired - Fee Related
-
2011
- 2011-06-24 US US13/168,756 patent/US8316177B2/en not_active Expired - Lifetime
Patent Citations (1)
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
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 |