KR20060130084A - 호스트 이용 특징 기반의 플래시 메모리 어드레스 매핑의적응형 모드 스위칭 - Google Patents

호스트 이용 특징 기반의 플래시 메모리 어드레스 매핑의적응형 모드 스위칭 Download PDF

Info

Publication number
KR20060130084A
KR20060130084A KR1020067013305A KR20067013305A KR20060130084A KR 20060130084 A KR20060130084 A KR 20060130084A KR 1020067013305 A KR1020067013305 A KR 1020067013305A KR 20067013305 A KR20067013305 A KR 20067013305A KR 20060130084 A KR20060130084 A KR 20060130084A
Authority
KR
South Korea
Prior art keywords
data
memory
block
sector
blocks
Prior art date
Application number
KR1020067013305A
Other languages
English (en)
Other versions
KR101014599B1 (ko
Inventor
카를로스 제이. 곤잘레즈
마크 솜펠
케빈 엠. 콘레이
Original Assignee
쌘디스크 코포레이션
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 쌘디스크 코포레이션 filed Critical 쌘디스크 코포레이션
Publication of KR20060130084A publication Critical patent/KR20060130084A/ko
Application granted granted Critical
Publication of KR101014599B1 publication Critical patent/KR101014599B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0607Interleaved addressing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7202Allocation control and policies
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7208Multiple device management, e.g. distributing data over multiple flash devices

Landscapes

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

Abstract

플래시 EEPROM 시스템 같은 비-휘발성 메모리 저장 시스템에서, 성능을 개선하고 마모를 줄이기 위해 제어기는 호스트 프로그래밍과 제어기 데이터 통합 패턴에 응답하여 데이터 섹터가 블록과 메타블록으로 매핑되는 방식을 스위칭한다. 상이한 등급의 일치를 하는 메모리로 데이터가 프로그램된다.
플레인, 플로팅, 메타블록, 매핑, 가비지

Description

호스트 이용 특징 기반의 플래시 메모리 어드레스 매핑의 적응형 모드 스위칭{ADAPTIVE MODE SWITCHING OF FLASH MEMORY ADDRESS MAPPING BASED ON HOST USAGE CHARACTERISTICS}
본 발명은 비-휘발성 플래시 메모리의 작동에 관한 것으로, 특히, 대용량 메모리 셀 블록의 관리에 관한 것이다.
오늘날 사용되고 있는 많은 상업적으로 성공한 비-휘발성 메모리 제품이 특히 작은 형태 팩터 카드의 형태를 띠는데, 이것은 하나 이상의 집적 회로 칩 위에 형성된 일련의 플래시 EEPROM(전기적 삭제 및 프로그램 가능 읽기 전용 메모리)을 채택한다. 개별 집적 회로 칩 위에 필수적은 아니지만 통상, 메모리 제어기는 카드가 연결되어 카드 내의 메모리 어레이의 동작을 제어하는 호스트와 인터페이스 한다. 그러한 제어기는 대표적으로 마이크로 프로세서, 어떤 비-휘발성 읽기-전용-메모리(ROM), 휘발성 임의-액세스-메모리(RAM) 및 데이터의 프로그래밍과 읽기 동안에 제어기를 통과하는 데이터로부터 에러-정정-코드(ECC)를 계산하는 것 같은 하나 이상의 특수 회로를 포함한다. 상업적으로 가용한 카드의 일부는 "CompactFlashTM(CF) 카드, 멀티미디어(MultiMedia) 카드(MMC), 시큐어 디지 털(Secure Digital: SD) 카드, 스마트 미디어(Smart Media) 카드, 퍼스넬 태그(personnel tags: P-Tag), 및 메모리 스틱(Memory Stick) 카드들이다. 상기 메모리 카드 구현 이외에, 이러한 유형의 메모리 시스템은 여러 가지 유형의 호스트 시스템에 내장될 수 있다.
두 가지 일반적인 메모리 셀 배치 구조인 NOR와 NAND가 상업적으로 응용되어 왔다. 대표적인 NOR 배치에서, 셀의 행(row)을 따라 연장된 워드 라인(word line)에 연결된 제어 게이트와 열(column) 방향으로 연장된 인접한 비트 라인 소스와 드레인 확산들 사이에 메모리 셀이 연결된다. 메모리 셀은 소스와 드레인 사이의 적어도 일부의 셀 채널 영역 위에 위치한 적어도 하나의 저장 소자를 포함한다. 이렇게 저장 소자 위의 프로그램된 레벨의 전하가 셀의 동작 특징을 제어하여, 이후에 어드레스된 메모리 셀에 적절한 전압을 인가함으로써 이것은 읽혀질 수 있다. 그러한 셀이 메모리 시스템에 사용되고 그들을 제조하는 방법의 예가 미국 특허 제 5,070,032, 5,095,344, 5,313,421, 5,315,541, 5,343,063, 5,661,053 및 6,222,762호에 기술되어 있다.
NAND 배열은 셀의 열을 형성하도록 기준 전위와 개별 비트 라인 사이에 하나 이상의 선택 트랜지스터를 따라 연결된 16 혹은 32 같은 두 개 메모리 셀 이상의 직렬 스트링(string)을 이용한다. 이러한 다수의 열 내에 워드 라인이 셀 너머로 연장된다. 스트링을 통해 흐르는 전류가 주소 지정된 셀에 저장된 전하의 레벨에 좌우되도록 스트링의 나머지 셀이 턴-온 되게 함으로써 열 내에 개별 셀이 프로그래밍 동안에 판독되어 검증된다. 메모리 시스템의 일부로서 그들의 동작과 NAND 구 조 어레이의 예가 미국 특허 제 5,570,315, 5,774,397, 6,046,935, 및 6,522,580호에 기재되어 있다.
이전에 참고된 특허에서 논의했듯이 대부분 공통으로 전기적으로 도통하는 플로팅 게이트(floating gate)인 현재의 플래시 EEPROM 어레이의 전하 저장 소자들은 대표적으로 도통하게 도핑된 폴리실리콘 물질로 형성된다. 플래시 EEPROM 시스템에 유용한 양자택일형의 메모리 셀은 비-휘발성 방식으로 전하를 저장하는데 전도성 플로팅 게이트 대신에 비-전도성 유전체 물질을 이용한다. 실리콘 산화물, 실리콘 질화물과 실리콘 산화물(ONO)로 형성된 3층 유전체는 메모리 셀 채널 위에 도통하는 제어 게이트와 반-전도 기판의 표면 사이에 끼인다. 셀 채널에서 질화물로 전하를 주사하여 셀이 프로그램되는데, 여기서 전자가 제한된 영역에 빠져서 저장되고 질화물로 핫 홀(hot hole)을 주사하여 제거된다. 유전체 저장 소자를 채택하는 여러 가지 특정 셀 구조와 배치가 2002년 10월 25일 출원된 미국 특허 출원 번호 제 10/280,352호에 기재되어 있다.
대부분의 모든 집적회로 응용에서처럼, 어떤 집적회로 기능을 구현하는데 필요한 실리콘 기판 영역을 수축시킬 압력이 역시 플래시 EEPROM 메모리 셀 어레이와 함께 존재한다. 주어진 크기의 메모리 카드의 저장 용량과 다른 유형의 패키지를 증가시키거나 용량을 증가시키고 크기를 감소시키기 위해, 실리콘 기판의 주어진 영역에 저장될 수 있는 디지털 데이터의 양을 증가시킬 필요가 있다. 데이터의 저장 밀도를 증가시키는 한 가지 방법은 메모리 셀 및/또는 저장 소자당 1비트 이상의 데이터를 저장하는 것이다. 이것은 한 창구의 저장소자가 전하 레벨 전압범위를 두 개 상태 이상으로 분할함으로써 구현된다. 그러한 4개 상태의 이용은 각 셀이 2개 비트의 데이터를 저장하도록 허용하고 8개 상태가 저장 소자당 3비트의 데이터를 저장한다. 플로팅 게이트를 이용한 여러 상태 플래시 EEPROM 구조와 그들의 동작이 미국특허 제 5,043,940과 5,172,338호에 기술되고, 이전에 언급한 미국 특허 출원 번호 제10/280,352호에 유전체 플로팅 게이트를 이용한 구조가 기술되어 있다. 다층-메모리 셀 어레이의 선택된 부분이 역시 미국 특허 제 5,930,167과 6,456,528호에 기술된 방식으로 여러 가지 이유로 두 가지 상태(이진)로 동작한다.
대표적인 플래시 EEPROM 어레이의 메모리 셀이 함께 소거된 이산 블록의 셀로 분할된다. 즉, 상기 블록은 소거 단위이고, 동시에 소거가능한 최소수의 셀이다. 각각의 블록이 전형적으로 하나 이상의 페이지의 데이터를 저장하고 하나 이상의 페이지가 단일 동작에서 프로그래밍 되거나 읽혀지겠지만 상기 페이지는 프로그래밍 및 읽기의 최소 단위이다. 대표적으로 각 페이지는 하나 이상의 섹터의 데이터를 저장하고, 상기 섹터의 크기는 호스트시스템에 의해 정의된다. 저장된 블록 및/또는 사용자 데이터에 관한 정보 너머의 어떤 수의 바이트에 더해, 마그네틱 디스크 드라이브로 설정된 표준을 따라, 예를 든 섹터는 512 바이트의 사용자 데이터를 포함한다. 메모리 시스템은 전형적으로 각 블록 내에 16, 32 혹은 그 이상의 페이지로 구성되고, 각 페이지는 하나 혹은 수 개의 호스트 섹터의 데이터를 저장한다.
메모리 어레이로 사용자 데이터를 프로그래밍하는 동안에 병렬의 정도를 증가하여 그것에서 사용자 데이터를 읽기 위해서는, 어레이는 통상 플레인(plane)으 로 언급되는 서브-어레이로 분할되고 이것은 그들 자체 데이터 레지스터와 다른 회로를 포함하여 이것은 데이터의 섹터가 각각의 플레인으로부터 동시에 읽혀지거나 플레인으로 프로그램되는 식으로 병렬 작동을 허용한다. 단일 집적회로 상의 어레이가 플레인으로 물리적으로 분할되거나 각 플레인이 분리된 하나 이상의 집적 회로 칩으로부터 형성된다. 그러한 메모리 시스템의 예가 미국 특허 제 5,798,968과 5,890,192호에 기술되어 있다.
메모리를 더욱 효과적으로 관리하기 위해서, 블록들이 메타블록(metablock)으로 함께 연결된다; 즉, 각각의 논리적으로 어드레스 가능한 메타블록이 각각의 플레인으로부터 하나의 물리적인 블록을 포함하도록 정의된다. 메타블록의 이용은 국제 특허출원 공개번호 WO 02/0588074호에 기술되어 있다. 메타블록은 데이터를 프로그래밍하고 읽기 위한 목적지로서 공통의 논리적인 어드레스에 의해 식별된다. 유사하게, 메타블록의 모든 블록이 함께 소거된다. 그러한 커다란 블록 및/또는 메타블록으로 구동되는 메모리 시스템에서의 제어기는 메모리 셀 어레이 내의 페이지 어드레스와 물리적인 블록 번호(PBN)와, 호스트로부터 수신된 논리적인 블록 어드레스(LBA) 사이의 변환을 포함하는 다수의 기능들을 실행한다. 이러한 기능은 종종 논리적인 블록 번호(LBN)와 논리적인 페이지의 중간 단계의 이용을 포함한다.
바람직하게 제어기의 구조와 제어 펌웨어에 의해 메모리 시스템 제어기는, 호스트에 의해 그것에 부과된 다양한 조건 아래 데이터가 프로그램되고 판독될 수 있도록 할 수 있다. 하나의 예로서, 오디오, 비디오 혹은 다른 스트림 데이터가 고율의 속도로 수신될 수 있고, 실시간으로 데이터를 저장하도록 메모리 시스템이 청 해진다. 다른 예로서, 호스트는 메모리 시스템이 한번에 한 섹터의 데이터를 프로그램하거나 읽도록 하는데, 그런 것은 어레이에 저장된 파일 할당 표(FAT)를 기입하거나 갱신할 때 일어난다.
메타블록에 저장된 데이터가 종종 갱신되고, 메타블록의 데이터 용량이 늘어남에 따라 갱신의 가망이 늘어난다. 한 메타블록의 갱신된 섹터가 정상적으로 다른 메타블록에 기재된다. 데이터를 통합하도록 동일 프로그래밍 동작의 일부로서 보통 변경안된 섹터가 원래로부터 새로운 메타블록으로 역시 복사된다. 다시 단일 메타블록으로 나중에 갱신된 데이터와 통합할 때까지 대안으로, 변경되지 않은 데이터가 원래 데이터 블록에 남는다.
본 발명에 따라서, 데이터가 프로그램되는 메모리 유닛의 크기가, 호스트에 의해 프로그램되고 있는 데이터의 양과 특성에 적용된다. 메타블록으로의 데이터 기입에 의해 제공된 고도의 일치의 장점이 특정 환경에서 발생하는 데이터 통합의 예를 늘리는 단점에 의해 부각될 때, 메타블록에 함께 논리적으로 연결된 것보다 더 작은 수의 블록에 데이터 섹터가 기재되고, 그것은 단일 플레인에서 하나 이상의 블록 내에 연속하여 프로그래밍 된다.
데이터 블록의 용량에 대해 프로그램되고 있는 데이터 섹터의 수가 고도의 일치의 장점을 만들 때, 데이터 섹터가 메타블록의 모든 블록에 평행하여 기재된다. 그러나, 특정 데이터 프로그래밍 동작이 메타블록의 저장 용량에 대해 오직 작은 수의 데이터 섹터를 포함할 때, 결과의 증가된 데이터 통합 동작이, 더 높은 일치가 돕는 것 이상의 처리 능력을 해칠 수 있고, 그런 경우에 메타블록의 이용시에 제공된 일치의 장점이 실현되지 않는다.
본 발명의 특징에 따라, 메모리 제어기는 호스트 쓰기(write) 명령 및/또는 일련의 쓰기 명령에 포함된 섹터의 수에 따라, 메타블록 속으로 고도의 일치되는 다수의 섹터의 데이터를 프로그램하거나 메타블록을 형성하는 것보다 더 작은 수의 블록 속으로 낮은 등급의 일치하는 데이터를 프로그램한다. 그러한 물리적인 블록 속으로 매핑(mapping)되는 논리적인 블록을 위한 호스트 데이터 프로그래밍 패턴에 좌우되어, M개 물리적인 블록으로 된 꽉 찬 메타블록 속으로 데이터가 프로그램되고, 여기서 M은 4, 8 혹은 어떤 다른 정수와 같고, 혹은 M/2, M/4, M/8등 같은 더 작은 수의 블록의 단위로 데이터가 프로그램된다. 특정 형태의 호스트 프로그래밍 동작에서, 호스트가 FAT표 같은 동작 파일을 갱신할 때 정상 동작에서 종종 일어나는 단일 섹터의 데이터의 프로그래밍은 메타블록 혹은 서브-메타블록 보다는 단일 블록을 향한다. 메타블록은 한번에 하나의 섹터를 프로그래밍하는 데 사용되지 않는다. 논리적으로 연속적인 어드레스를 갖는 오직 몇 개의 섹터들의 프로그래밍 동작에 메타블록이 이용되지 않을 것 같은 병렬 프로그램에 의해 여러 블록의 메타블록상에 뿌려지고, 그리하여 한번에 각 블록의 메타블록에 기재된 오직 하나 혹은 몇 개의 데이터 섹터가 된다. 단일 블록은 바람직하게 그러한 경우에 사용된다. 이것은 모든 여러 블록의 메타블록으로부터 새로운 블록과 원래 블록 속으로 데이터를 통합해야 하는 것을 피하고, 다음에 그러한 적은 수의 섹터의 메타블록이 갱신된다. 단일 블록으로 그러한 데이터 통합은 오직 단일 블록 소거를 초래하여, 적은 수의 프로그래밍을 초래하여 메모리의 사이클을 소거시켜서 그것의 유용한 수명을 단축시킬 수 있다
본 발명의 다른 특징에 따라서, 한 개 등급의 일치로 저장된 데이터로의 접근은 다른 등급의 일치된 접근에 대해 변환되고, 그때는 이것이 더 적절한 성능 특징을 제공할 것 같은 때이다. 예를 들어, 데이터가 변경된 메타블록에 기재될 때 메타블록으로의 병렬 프로그래밍이 단일 플레인에서 블롤에 대해 연속적인 프로그래밍으로 변환되고, 이것은 성능을 개선시킨다. 그러한 변환은 단일 플레인에서 메타블록의 블록에서 다른 블록으로의 데이터 복사를 포함한다. 역으로, 단일 플레인에서 블록으로의 연속적인 프로그래밍은 성능을 개선하도록 메타블록 내에 병렬 프로그래밍으로 변환될 수 있고, 원래 블록에서 메타블록으로의 데이터 복사를 포함한다.
예를 든 실시에서, 섹터가 메타블록에서 병렬로 다른 것과 프로그램되었는지 아니면 단일 블록에서 다른 것과 논리적인 순서로 프로그램되었는지를 나타내도록, 모드 비트(mode bit)가 플래시 메모리 어레이에 저장되어 개별 섹터 사용자 데이터와 연관된다. 모드 비트는 많은 사용자 데이터 섹터에 대한 오버헤드 데이터를 포함하는 다른 섹터의 일부로서, 혹은 사용자 데이터의 섹터와 더불어 저장될 수 있다. 상기 비트를 읽음으로서 사용자 데이터의 섹터를 읽거나 재-프로그램하도록 호스트에 의해 명령을 받을 때 제어기는 적당한 모드로 섹터에 액세스한다. 초기 동작 동안에, 제어기는 병렬 모드에서 작동하지만 일련의 하나 혹은 소수의 섹터 쓰기 동작을 나타내는 호스트 프로그래밍 명령에 응답하여 연속 모드로 변경될 것이다. 다음에 제어기는 영향받은 데이터 섹터와 연관된 모드 비트를 변경하고 차례로 사용자 데이터를 프로그램한다. 임계 수의 섹터를 넘어 함께 프로그램된 다수의 섹터를 나타내는 하나 이상의 프로그래밍 명령이 호스트로부터 수신될 때 제어기의 동작이 병렬 프로그래밈 모드로 되돌아 갈 수 있다.
더욱이, 특정 구현에서 각 메타블록이 각각의 여러 혹은 모든 플레인의 메모리 어레이로부터 하나의 블록으로 형성된다. 다음에 사용자 데이터가 프로그램되어 두 개 주요 모드 중에 하나로 판독된다. 제1 주요 모드에서, 다수의 연속적으로 어드레스 된 데이터 섹터가 여러 블록의 메타 블록을 넘어 병렬로 프로그램된다 이것은 개별 블록에서 데이터 섹터가 순서에 무관하게 저장되는 것을 초래한다. 그것들은 메타블록이 형성되는 플레인 상에 삽입된다. 제2 주요 모드에서, 데이터 섹터가 메타블록의 개별 블록 내에 차례로 기재된다. 제어기는 또한 단일 플레인(제2 모드) 내에 연속으로 혹은 플레인(제1 모드) 너머 연장되는 사이의 물리적인 어드레스들의 순서를 다시-나타내도록 병렬과 연속 프로그래밍 사이에 데이터 섹터의 변화에 응답한다. 이것은 블록 사이의 움직이는 데이터를 포함할 수 있다. 메모리 시스템의 성능을 개선하기 위해 메모리 시스템은 전형적으로 이러한 두 가지 모드의 상이한 것들의 상이한 블록과 동작한다.
본 발명의 추가되는 특징, 장점 등은 다음에 설명되는 예를 든 실시예에 포함되고, 이것은 첨부된 도면과 연관지어 설명된다. 여기에 참조된 모든 특허, 특허 출원, 논설 및 다른 출판물은 모든 목적을 위해 여기에 참고로 기술된다.
도 1은 일반적으로 비-휘발성 메모리 시스템과, 이것과 호스트 시스템이 함께 사용되는 것을 도시하고;
도 2는 도 1의 메모리 시스템의 예를 든 구조를 예시하고;
도 3은 도 1과 2의 메모리 시스템의 메모리 셀 어레이의 특정 구조를 예시하고;
도 4는 도 7의 메모리 셀 어레이의 블록의 제1 실시예 시퀀스를 도시하고;
도 5는 도 7의 메모리 셀 어레이의 블록의 제2 실시예 시퀀스를 도시하고;
도 6은 도 7의 메모리 셀 어레이의 물리적인 블록에 대한 논리적인 블록 어드레스 매핑의 일 예를 예시하고;
도 7은 도 7의 메모리 셀 어레이의 물리적인 블록에 대한 논리적인 블록 어드레스 매핑의 다른 예를 예시하고;
도 8은 도 7의 메모리 셀 어레이 내에 데이터 변경의 제1 예를 도시하고;
도 9는 도 7의 메모리 셀 어레이 내에 데이터 변경의 제2 예를 도시하고;
도 10은 호스트에 의해 쓰기 동작을 추적하도록 각 데이터 섹터 내에 카운트 필드(count field)의 예를 도시하고;
도 11은 데이터 섹터를 조직하는 다른 방법의 예를 예시하고;
도 12는 제1 시퀀스에서 제2 시퀀스로 메모리 셀 어레이 블록의 변환의 예를 도시하고;
도 13은 제2 시퀀스에서 제1 시퀀스로 메모리 셀 어레이 블록의 변환의 예를 도시한다.
도 1은 일반적으로 컴퓨터 시스템 같은 전자 시스템을 도시하고, 이것은 본 발명의 여러 특징이 나타나는 플래시 메모리를 포함한다. 본 전자 시스템의 예로는, 데스크-탑 컴퓨터, 랩-탑 컴퓨터, 핸드헬드 컴퓨터, 팜-탑 컴퓨터, 퍼스널 디지털 어시스턴트(PDA), MP3 및 다른 오디오 플레이어, 디지털 카메라, 비디오 카메라, 전자 게임 기계, 무선 및 유선 전화 기기, 응답 기게, 음성 녹음기, 네트워크 라우터 등등을 포함한다.
도 1의 이러한 전자 시스템은, 메인 시스템 메모리(25)에 랜덤 액세스하는 시스템 버스(23)에 연결된 프로세서 혹은 마이크로 프로세서(21), 키보드, 모니터, 모뎀 등과 같은 적어도 한 이상의 입출력 장치(27)를 포함한다. 전형적인 컴퓨터 시스템 버스(23)에 연결된 다른 메인 컴퓨터 시스템 소자는 장-기간, 비-휘발성 메모리이다. DRAM(다이내믹 램) 혹은 SRAM(스태틱 램) 같은 휘발성 메모리와 대비하여, 비휘발성 메모리는 전원이 기기에서 제거될지라도 그의 저장된 상태를 유지한다. 통상적으로 그러한 메모리는 메가-바이트, 기가-바이트, 혹은 테라-바이트의 데이터 저장 용량을 갖는 마그네틱 혹은 광학 기술을 이용한 디스크 드라이브이다. 이러한 데이터는 현재의 처리에 사용되도록 시스템 휘발성 메모리(25)로 복원되어, 쉽게 보충, 수정, 변경될 수 있다.
도 1의 경우에, 벌크 저장 메모리는 비-휘발성 플래시 메모리 시스템(29)이다. 상기 메모리(29)는 제거 가능한 메모리 카드의 형태이거나 컴퓨터 시스템 내 로(내장) 영원히 유선 연결된다. 메모리 시스템(29)은 컴퓨터 시스템 버스(23)에 연결된 제어기(31), 및 하나 혹은 다수의 집적된 회로 칩으로 형성된 메모리 셀 어레이(33)를 포함한다. 데이터 및 명령들은 제어기(31)에서 주로 메모리 셀 어레이(33)로 라인(35) 상으로 통신한다. 유사하게, 데이터 및 상태 신호가 라인(37) 상으로 메모리 셀 어레이(33)에서 제어기(31)로 통신한다. 데이터 라인(35, 37)은 구현에 따라 직렬 혹은 병렬이다. 제어기(31)와 어레이(33) 사이의 다른 제어 및 상태 회로는 도 1에 도시되어 있지 않다. 통상의 시스템에서, 제어기(31)는 컴퓨터 시스템 내에 내장되고, 메모리 셀 어레이(33)는 제거 가능한 카드에 패키지 된다.
어레이(33)는 각 전하 저장 소자 혹은 영역이 1 비트의 데이터를 저장하는 식으로 작동된다. 대안으로, 어레이(33)는 여러 상태 혹은 여러 레벨의 셀로 불리는, 각 메모리 셀 전하 저장 소자 혹은 영역에 저장되고 있는 1비트의 데이터 이상으로 작동한다.
도 2는 다수의 집적 회로 칩(127)으로 이루어진 플래시 메모리 셀 어레이와, 호스트 인터페이스와 메모리 제어 기능을 실행하는 단일 제어기 집적회로 칩(121)을 포함하는 예를 든 메모리 카드 구조를 도시한다. 시스템 제어기와 메모리 셀 어레이 칩은 버스(124)에 의해 연결되어서 명령, 어드레스, 데이터가 제어기(121)와 메모리 칩(127) 사이를 전송하도록 한다. 이것이 전형적인 반면에, 어떤 메모리 시스템은 제시된 제어기를 갖지 않는 대신에 호스트 시스템에 의한 직접 제어를 한다는 것을 알아야 한다.
섹터로 프로그램된 호스트 데이터의 각 섹터의 가치가 저장된 데이터의 정당 성을 결정하는 에러 검출과 정정 코드(ECC)에 부가되는 것은 공통으로 일어난다. 데이터가 부서졌는지를 확인하는 방법으로서 ECC를 이용하여 판독된 데이터의 정당성을 그러한 시스템은 체크한다. 사용자 데이터의 섹터는 또한 헤더의 형태로 다른 오버헤드 데이터와 ECC를 따라 저장된다.
프로그램 혹은 연속된 어드레스 된 데이터에 메모리 어레이를 액세스하는 특징은 "일치의 등급"이다. 즉, 이것은 메모리 성능 즉, 데이터가 어레이로 및 어레이로부터 전송되는 비율을 개선하기 위해, 병렬로 많은 데이터를 프로그램하고 판독하는 것이 보통 바람직하다. 여기 사용된 용어 "일치의 등급"은 병렬로 프로그램되거나 읽혀지는 메모리의 페이지의 수로 언급된다. 하나에 의한(by-one) 모드에서, 오직 단일 페이지가 한번에 액세스 된다. 4에 의한(by-four) 모드에서, 복수의 연속하여 어드레스 된 호스트 섹터가 한 번에 4 페이지까지 액세스 된다. 일정한 호스트 액세스 패턴 아래 성능을 개선하기 위해, 더 큰 등급의 일치를 허용하도록 하는 매핑을 조직할 필요가 있고, 다른 호스트 데이터 액세스 패턴 아래서 더 낮은 등급의 일치에 대한 매핑을 조직할 필요가 있다. 호스트가 다른 패턴을 갖는 메모리 시스템의 다른 부분에서의 데이터 액세스가 가능하여서, 메모리 시스템의 다른 부분에 대해 다르게 매핑할 필요가 있다. 역시, 저장 장치의 특정 어드레스 범위로 저장된 데이터로의 호스트 데이터 액세스 패턴이 시간이 감에 따라 변하는 것이 가능하여서, 시간이 감에 따라 특정 어드레스의 매핑 구조를 변경할 필요가 있다. 경험할 것 같은 여러 호스트 사용 패턴 아래 메모리 이용을 최적화하는 메모리 관리를 할 필요가 있다.
도 3은 도 1과 2의 메모리 셀 어레이의 예를 도시한다. 이 예에서, 어레이는 두 개의 집적회로 장치 플래시 0과 플래시 1을 포함한다. 물론, 메모리 시스템의 필요한 저장 용량에 따라 하나 이상의 3 장치가 사용될 수 있다. 각 장치에서 어레이의 부분은 4 플레인 0 - 3으로 분할되지만, 2, 3 혹은 4 플레인 이상이 다른 실시예에서 사용될 수 있다. 다수의 Q 페이지(페이지는 프로그래밍과 읽기의 최소 단위)가 각 블록의 메모리 셀(소거의 최소 단위) 내에 포함되고, 복수의 N 블록이 각각의 플레인 내에 포함된다. 페이지가 하나 혹은 다수의 호스트 섹터의 데이터를 저장하는 용량을 갖기에, 각 블록은 각 블록에 여러 Q페이지일 수 있는 M 데이터 섹터를 저장한다. 각각의 플레인은 플레인 내에 메모리 블록과 페이지를 액세스하는 그 자체의 회로를 갖는다. 일반적으로, 오직 하나의 페이지가 동시에 각각의 플레인에 기록되거나 판독된다. 특정 실시예에서, 각 섹터가 512 바이트의 사용자 데이터를 포함한다. 각 섹터는 또한 플랙(flag), 사용자 데이터 ECC, 여러 가지 파라미터 및 다른 오버헤드 데이터에 대한 부가적인 비트 혹은 바이트를 포함한다.
플레인의 수는 메모리 시스템이 동작하는 가용한 정도의 일치를 지배한다. 일치의 정도는 동시에 프로그램되거나 판독되는 페이지의 수를 나타낸다. 더 큰 정도의 일치로, 더 많은 데이터가 동시에 동작한다. 일치의 정도는 1, 2 혹은 그 이상이다. 고도의 일치로서, 논리적-대-물리적 어드레스 변환이 제어기에 의해 이루어져서 멀티 플레인의 멀티 페이지가 즉시 액세스 되도록 한다. 연속적인 논리적 어드레스를 갖는 다수의 섹터의 데이터가 동시에 액세스 된다. 이런 개수의 섹터는 각 페이지에 저장된 섹터의 수의 병렬 배수로 액세스 되고 있는 페이지의 개수와 같다. 일치의 정도가 1인 경우에 대해, 이것은 여기서 1배 모드로 불린다. 가장 낮은 정도의 일치로, 한 플레인의 오직 한 페이지가 한번에 액세스 된다. 이 경우에, 단일 페이지에 저장된 연속적인 논리적 어드레스를 갖는 다수의 호스트 데이터 섹터가 한번에 액세스 될 수 있다.
제어기는 호스트로부터 기록 명령으로 명시된 연속적인 논리적 어드레스를 갖는 데이터 섹터의 수에 따라, 어느 데이터가 메모리로 프로그램되는지 일치의 정도를 결정할 수 있다. 호스트 명령이 단일 명령으로 프로그램될 대량의 연속적인 데이터 섹터를 명시한다. 데이터를 더 높이 일치하는 메모리에 기록하여서 제어기가 이런 유형의 명령에 응답하고, 그 예는 도 4에 도시된다. 연속적인 논리적 어드레스를 갖는 오직 하나 혹은 매우 적은 수의 데이터 섹터가 기록되도록 다른 호스트 명령이 명시하고, 이 명령은 최소 단위의 일치로 실행되는데 그 예가 도 5에 도시된다.
기술되는 특정 메모리 구현에서, 여러 데이터 섹터가 동시에 여러 물리적인 페이지에, 최대 정도의 일치 동안 각 플레인에 하나씩 프로그램된다. 이것은 데이터 기록의 더 높은 성능을 허용한다. 특히, 4 플레인에 대해 4 페이지 이상이 동시에 기재되어, 데이터가 한번에 한 섹터를 쓸 수 있는 메모리보다 4배의 더 빠른 속도로 메모리가 동작한다. 그러한 데이터 양은 프로그램하는데 필요한 개별 프로그래밍 동작의 수가 크게 줄어든다. 다른 예로, 8 플레인을 갖는 메모리에 대해, 최고도의 일치하는 이러한 메모리의 프로그램은, 데이터가 한번에 1페이지로 오직 프로그램될 수 있는 메모리보다 8배의 빠른 속도를 낸다.
멀티-플레인 메모리 구조에서, 각 플레인으로부터의 블록이 논리적으로 함께 그룹지어 메타블록을 형성한다. 그들 페이지를 보여 주는 라인을 포함하는 도 3의 8블록의 조합은 메타블록의 예이다. 메타블록은 어떤 범위의 연속적인 호스트 어드레스에서 데이터의 섹터를 포함하는 블록의 논리적인 그룹이다. 서브-메타블록은 한 세트 혹은 한 단위로서 관리되는 메타블록 내에 서브 세트의 블록이다. 메타블록이 서브-메타블록으로 분할되면, 데이터 관리 목적으로, 그 안의 데이터가 메타블록의 다른 부분에 무관하게 그들 자체로 통합되는 점에서 각 서브-메타블록은 필수적으로 줄어드는 일치를 갖는 메타블록과 같이 관리된다. 도 3에서 예를 들어, 각 기기상에 4블록이, 양쪽 기기 너머 메타-블록에 연장되기보다는 메타블록 또는 서브-메타블록을 형성한다.
다음의 설명은 다음의 용어를 사용한다: (1) 원래 블록은 어떤 원래 세트의 데이터를 포함하는 메타블록 혹은 서브-메타블록이다. (2) 갱신블록은 원래 블록에서 갱신된 버전의 어떤 데이터 혹은 원래 블록에서 복사된 어떤 데이터 혹은 양쪽을 포함하는 메타블록 혹은 서브-메타블록이다. (3) 논리적인 블록 혹은 서브-메타블록은 블록의 물리적인 위치에 혹은 데이터가 단일 위치에 포함되는지 혹은 원래 블록과 갱신블록에 포함되는지에 관계없이 물리적인 메타블록 혹은 서브-메타블록에 매핑된 호스트 논리적인 섹터의 세트이다.
데이터가 주어진 시간에 존재하는 물리적인 블럭에 관계없이, 어떤 범위의 데이터를 포함하도록 호스트에 의해 관리되는 논리 구조와, 주어진 시간에 메타블록을 형성하는 물리적인 세트의 블록 사이에 놓인 중간 단위가 논리적인 메타블록 이다. 부가적으로, 회로 칩 위에 메모리 셀 어레이가 N 플레인을 포함한다면 메타블록이 2N 블록 이상을 포함하고 두 개 칩 이상이거나 더 많은 칩 너머 매핑되면 메타블록이 여러 메모리 회로 칩 넘어 매핑된다.
주어진 논리적 블록 어드레스(LBA)를 갖는 데이터가 물리적인 블록 번호(PBN)로 식별되는 플레인 내에 특정의 물리적인 메모리 블록으로 제어기에 의해 매핑된다. 도 6은 각 플레인 내에 다른 물리적인 위치를 갖는 여러 블록으로부터 형성된 예를 든 메타블록을 도시한다. 더욱이, 메모리 시스템 동작의 과정 동안에 메타블록의 부분 혹은 메타블록을 형성하는 블록이 변하기에, 각 플레인 내에 블록의 상대적인 위치는 고정될 필요가 없지만 서로에 무관하게 각 플레인 내에 위치한다.
섹터가 새로운 데이터로 갱신될 때, 주어진 섹터와 연관된 블록이 플레인 내에 새로운 블록으로 복사된다. 상기 블록은 플레인 내에 어디에나 위치한다. 도 7은 어떤 다른 임의의 물리적인 블록으로 이동되고 있는 서브-메타블록에 속하는 예를 도시한다.
최대의 일치를 위해 구성된 메타블록은, 연속적인 논리적 어드레스를 갖는 멀티-데이터 섹터에 액세스하는 호스트 명령에 가장 잘 맞는다. 호스트 판독 혹은 기록 명령 당 섹터의 수가 병렬로 액세스 되는 섹터의 수와 일치하거나 초과할 때, 고레벨의 성능이 얻어진다. 한번에 더 크고 더 큰 수의 섹터 명령으로 동작하는 호스트 명령으로 늘어나는 이득이 얻어지는데, 이것은 개별 명령 발기와 연관된 섹터당 오버헤드 처리량을 감소시키기 때문이다.
호스트가 플레인 당 오직 하나의 섹터에 기록한 다음에 어레이 어디에나 쓸 때, 메타블록으로 메모리를 동작시키는 단점이 커지고, 이것은 부분적으로 갱신된 메타블록 내의 데이터의 통합을 요하기 때문이다. 이러한 통합은 갱신된 데이터가 프로그래밍되는 원래 메타블록으로부터 새로운 메타블록까지의 모든 변경되지 않은 데이터의 복사를 하여, 이후에 원래 메타블록에서 모든 블록을 제거한다. 8 플레인의 메모리 어레이의 경우에, 블록당 64 페이지와 각 페이지에 저장된 1 데이터 섹터, 504 섹터의 복사와 8 블록의 소거가 요구된다. 역으로, 데이터의 새로운 섹터가 하나의 일치로 동작하는 서브-메타블록으로 기록된다면, 통합은 56 섹터 복사와 단일 블록 소거, 소수 섹터의 데이터를 갱신하여 나온 줄어든 오버헤드를 초래한다.
통합과 연관된 소거와 데이터의 이동이 메모리를 마모시키기에, 짧고, 비-연속 기록은 메모리 마모를 가속시킨다. 각 메모리 블록은 유한 수의 소거 및 중지 전에 적절히 동작할 수 있는 프로그램 사이클을 갖는다. 최대수의 사이클은 메모리 어레이의 구조와 메모리 저장 상태가 유지되어야 하는 정밀도에 좌우된다. 이러한 수는 10,000 사이클만큼 낮거나 100,000 사이클, 혹은 그 이상으로 크지만, 메모리시스템에 모든 블록의 작동능력을 유지하는게 중요하다. 마모를 최소화하기 위해, 블록 소거가 바람직하게 최소로 된다.
다음은 메타블록, 서브-메타블록 혹은 이들 부분이 재위치 되고/되거나 데이터가 통합되는 조건 아래 여러 시나리오이다.
(1) 호스트가 블록 내에 하나 이상의 섹터의 데이터를 다시 기록할 때이다. 그런 때는, 시스템이 소거된 블록이 갱신 블록이 되도록 할당하여, 재기록된 데이터가 갱신 블록에 기록된다. 그것은 종종 원래 블록 내에 변경되지 않은 데이터의 전부 혹은 일부가 역시 갱신 블록 상에 복사되고, 동일 논리적 어드레스에서 데이터용 요청의 수신에 응답하여 새로운 블록을 어드레스 하도록 시스템에 유지된 논리적-대-물리적 어드레스 변환이 갱신된다. 호스트에 의해 데이터 복사 혹은 데이터 재-기록을 통해 갱신 블록을 프로그래밍함으로써, 다음에 저장된 모든 데이터가 대치된다면 원래 블록이 소거된다.
(2) 특히, 원래 블록이 존재하는 플레인에서 소거된 블록이 갱신 블록으로서 할당에 필요하다면, 이미-소거된 블록이 가용하지 않지만, 두 개 이상의 블록 내의 데이터가 하나 이상의 다른 블록에서 통합된다. 모든 데이터가 이동되는 하나 이상의 블록이 다음에 소거되어 현재 프로그래밍 동작의 갱신 블록으로서 사용 가능하게 된다.
(3) 일 실시예에서, 시스템이 갱신 블록을 제공하는데 필요한 플레인에서 오직 메타블록의 부분을 통합한다. 남아있는 플레인 내에 메타블록은 나머지 플레인의 갱신 블록이 필요함에 따라 나중에 요구시 통합될 수 있다.
(4) 다른 대안의 실시예에서, 어떤 플레인에 통합되었던 메타블록이 호스트에 의해 재기록되고 통합된 플레인에서 소거된 블록을 요한다. 주어진 메타블록에 데이터를 완전히 통합할 필요가 없지만 대신에, 각 플레인 내의 블록이 독립적으로 관리되어 블록의 요구불 통합과 할당을 허용한다. 이런 방식으로, 주어진 메타블록의 다른 부분에 무관하게 서브-메타블록이 시스템 동작시에 새로운 물리적인 어드 레스로 이동된다.
데이터 저장시, 고속 동작을 허용하는 방식으로 물리적인 블록에 데이터 섹터를 매핑함으로서 제어기는 더욱이 메모리의 기록을 조직한다. 도 4는 예를 든 4X 병렬 삽입으로, 액세스에 최대 일치를 허용하는 식으로 플레인 0 - 3 너머 메모리의 삽입을 도시한다. 병렬 삽입은 연속으로 어드레스 된 호스트 섹터가 플레인 사이에 삽입되게 포맷된 메모리를 언급한다; 즉, 연속으로 어드레스 된 데이터 섹터가 다른 플레인의 페이지에서 병렬로 동시에 프로그래밍 된다. 데이터가 다른 메타블록을 형성하는 다음 일련의 블록으로 프로그램되기 전에 데이터가 메타블록을 형성하는 각 플레인의 한 개 블록에 동시에 프로그램된다. 오직 한 개 데이터 섹터가 블록의 개별 페이지에 저장되는 도 4의 예를 가정하여, 제어기는 플레인의 블록에 제1 섹터, 섹터 0과, 플레인 1의 블록에 제2 섹터, 섹터 1과, 플레인 2의 블록에 제3 섹터, 섹터 2 및, 플레인 3의 블록에 제4 섹터, 섹터 3을 기록한다. 메모리의 이러한 구조는 병렬 매핑으로 일컬어진다. 이런 경우에, 이것은 "4배" 혹은 "x4" 혹은 4X" 삽입이다. 데이터 기록을 이러한 포맷으로 조직함으로써, 이것은 호스로부터 연속으로 어드레스 된 데이터의 입력을 허용하고, 4개 다른 플레인에 4 섹터가 한 번에 프로그램되기에 보통 비트의 스트림이 고속 방식으로 기록된다.
특정 실시에서, 입력 데이터가 각 플레인과 연관된 버퍼에 의해 직렬로 수신되고, 이것이 레지스터이고, 제어기가 메모리를 어떻게 삽입하는지에 따라 데이터가 레지스터에서 비-휘발성 메모리 셀로 병렬로 기록된다. 이에 따라 메모리를 포매팅하여서 메모리 셀의 특정 삽입이 얻어진다. 기록되는 동일 삽입 형식에 따라 데이터가 메모리로부터 복원된다.
다른 등급의 병렬 삽입을 포함하여 메모리를 매핑하는 다른 많은 방식이 있다. 병렬 삽입의 등급보다 더 많은 플레인이 있다. 예를 들어, 4플레인이 있을지라도, 특정 프로그램 동작에 대한 병렬 삽입은 오직 두 개 플레인이 동시에 액세스하도록 한다. 이것은 "2배" 혹은 "x2" 혹은 2X" 삽입으로 불린다. 역시 메모리는 "3배" 혹은 "x3" 혹은 "3X" 삽입으로 동작하기도 한다.
도 5는 메모리의 "1배" 삽입을 도시한다. 일치의 등급은 1이다. 때때로 이것은 일치 없음으로 여겨지는데, 이는 액세스가 한번에 한 개 플레인에서 단일 페이지에 의하기 때문이다. 도 5에서, 그 블록의 모든 페이지가 채워질 때까지 섹터가 차례로 한 블록에 기록되고, 다음에 기록이 다른 블록으로 진행한다. 이것은 "1배" 혹은 "x1" 삽입으로 불린다.
타이밍 예가 도 4와 5의 삽입 사이의 성능 차이를 도시한다. 도 5에 따라 4 연속적인 섹터를 기록하도록 단일 플레인의 데이터 레지스터가 차례로 4번 채워지고, 기록이 차례로 4번 실행된다. 레지스터 부하가 25 마이크로 초가 걸리고 기록이 1 밀리 초가 걸리면, 전체 시간이 4*25 마이크로 초 + 4*1000 마이크로 초 = 4100 마이크로 초가 된다. 그렇지만 도 4의 병렬 기록으로, 4 섹터 기록이 여전히 차례로 4 데이터 레지스터를 포함하지만 오직 하나의 기록 동작은 제외된다. 전체 시간은: 4*25 마이크로 초 + 1000 마이크로 초 = 1100 마이크로 초가 된다. 이런 4X 병렬 매핑은 1X 매핑 상에 3.7배 성능 증가를 가져온다. 다른 메모리가 다른 타이밍 특성을 갖기 때문에, 이러한 특정 숫자가 오직 비교 예를 제공하는데 사용된 다.
어떻게 데이터 섹터가 저장되었는지를 제어기가 알도록 제어기 혹은 메모리에 저장된 삽입 표시기 비트가 있다. 삽입 표시기 비트 혹은 비트들을 이용하여, 제어기가 갱신 데이터를 저장하는지 데이터를 읽는지 순서를 결정할 수 있다. 예를 들어, 메모리 상의 각 섹터가 어떻게 섹터가 저장되는지를 나타내는 하나 이상의 표시기 비트를 갖는다. 4-플레인 메모리에 대해, 7 가능한 메모리 삽입 구조가 있다. 이러한 삽입 표시기 비트는 ECC 같은 사용자 데이터 비트와 다른 오버헤드 비트에 부가된다. 표시기 비트는 헤더보다는 도리어 표에 개별로 저장된다.
단일 메모리 어레이가 다른 삽입과 연관된 블록을 공통으로 갖는다. 예를 들어, 동일 메모리가 1배(도 5)로 저장된 데이터와 4배(도 4)로 저장된 다른 데이터를 갖는다. 섹터가 하나 이상의 블록에 저장된 삽입을 섹터 삽입 표시기 비트가 나타낸다. 예를 들어, 제1 데이터 파일이 1배 삽입을 이용하여 메모리에 저장되고, 제1 서브-메타블록에 저장된 섹터에 대한 표시기 비트가 이것을 나타낸다. 제2 데이터 파일이 2배 삽입을 이용하여 서브-메타블록에 저장되고, 저장된 섹터에 대한 표시지 비트가 이것을 나타낸다. 동일 방식으로 3배 삽입을 이용하여 제3 데이터 파일이 서브-메타블록에 저장된다. 단일 메모리 어레이에서, 여러 메모리 셀 블록이 이러한 여러 방식으로 조직된다.
호스트 프로그램 명려의 성질로부터 데이터 제시를 제어기가 결정한다. 예를 들어, 호스트가 FAT 파일시스템(MS-DOS 파일 포맷)을 갱신한다면, 각 데이터 기록 명령이 단일 섹터를 명시할 것이다. 즉, 각 호스트 기록 명령에 응답하여 오직 하 나의 섹터가 플래시 메모리에 프로그램된다. 이런 경우에, 데이터가 메타블록에 보다는 단일 블록의 메모리에 연속으로 저장된다. 다른 유형의 데이터 프로그램 동작에서, 매우 큰 파일이 프로그램되는 경우에 호스트 기록 명령이 대량의 데이터 섹터가 주요한 부분 혹은 적어도 하나의 메타블록 모두를 점유할 수 있는 연속의 논리적인 어드레스에 기록되도록 명시한다. 제어기가 데이터 기록의 성질에 일치의 정도를 매칭하도록 하는 호스트 작동에 응답한다.
물리적인 어드레스에 논리적인 어드레스를 어떻게 매칭하느냐를 결정하는 개별 데이터 기로 명령에 응답하여, 제어기는 호스트 기록 명령의 패턴을 모니터한다. 이러한 모니터링은 특정 블록이 호스트에 의해 액세스 되는 것을 유지할 수 있다. 상기 정보는 상기 블록 혹은 개별 물리적인 블록에 저장된 데이터 섹터 내에 오버헤드 데이터로서 저장된다. 저장된 수의 분석이 임계 수와의 비교 혹은 임계 수와 두 개 이상의 액세스 사용 패턴의 주파수의 차이를 비교한다. 이러한 정보는 예를 들어, 데이터가 자주 재-기록되는 메타블록을 식별하는데 유용하고, 이런 경우에 제어기는 대신에 단일 블록으로 동일 논리 어드레스를 갖는 미래의 기록을 매핑하도록 결정할 수 있다. 이것은 데이터 갱신의 결과로서 통합되어야 하는 데이터의 양을 줄인다.
제어기에 의해 시작된 데이터 통합(가비지 수집)에 따른 것 대비 호스트 명령의 기록에 따라 기록된 하나 이상의 페이지 혹은 블록의 배수가 제어기에 의해 모니터되고 저장되는 다른 프로그램 특징이다. 더욱이. 개별 호스트 프로그램 명령에 의해 기록된 섹터 수의 통계가 유지될 수 있고 물리적인 어드레스에 논리적인 어드레스의 매핑을 결정하는데 이용될 수 있다. 예를 들어, 호스트 기록 명령이 한번에 기록될 1, 4 혹은 2 이상의 섹터의 데이터를 현저히 명시할지가 매우 유용할 수 있다. 모든 페이지의 블록 혹은 메타블록 보다 작은 횟수로 데이터 기록에 대해 액세스 되었던 것이 다른 것이고, 반복되듯이 데이터가 그러한 블록으로 기록될 수 있는 일치의 정도를 낮추는 필요성을 블록 혹은 메타블록의 부분적인 액세스가 신호할 수 있다.
도 4, 5의 예시가 개념을 설명할 목적으로 두 개 삽입되는 체계의 하나와 동작하는 집적회로 장치를 필수적으로 도시하지만, 이것은 보통 메모리를 이용하는 효과적인 방법이 아니다. 병렬 액세스(도 4)와 한번에 액세스 되는 블록의 다른 것에 대해 메타블록을 형성하는 그의 블록의 부분과 각 장치가 정상적으로 동작할 것이다.
섹터 어드레스가 어떻게 플레인 너머 삽입되는지의 특정한 장점과 단점이 있다. 더 높은 정도의 병렬 삽입의 장점은 연속으로 어드레스 된 섹터가 병렬로 메모리에 기록된다는 것이다. 더 낮은 정도의 병렬 매핑 혹은 연속적인 매핑의 장점은, 그것이 부분적인 블록 갱신에 응답하여 더 작은 데이터가 복사되길 요하고, 특히 작은 수의 데이터 섹터가 재기록될 때 더 작은 수의 블록이 모아져야 할 필요가 있다. 메타블록에 저장된 데이터의 부분이 재기록될 때, 재기록되지 않았던 원래 블록에 있는 데이터가 새로운 블록에 복사되어 그것이 새로운 데이터로 저장된다. 데이터가 병렬 매핑을 이용하여 저장된다면, 데이터가 다른 플레인 상에 퍼지기에 전체 메타블록은 재기록될 필요가 있다. 그러나, 연속 매핑을 이용하여 데이터가 서 브-메타블록에 저장된다면, 오직 서브-메타블록의 데이터가 가비지 집합될 필요가 있다. 재기록되지 않았던 어느 데이터를 따라 재기록될 데이터가 새로운 블록으로 기록되고, 새로운 블록이 다른 블록의 메타블록과 더불어 연결된다. 이것은 취할 필요가 있는 복사, 기록, 재기록, 가비지 수집의 양을 줄인다.
대표적으로, 플래시 메모리 셀이 그 신뢰도가 수용 불가능한 레벨로 줄어들기 전에 유한 수의 소거 및 기록 사이클(예를 들어, 10,000과 100,000 사이클 사이에)을 갖는다. 그러므로, 재기록 및 기록의 양을 최소화 함으로서, 이것은 메모리의 수명을 연장시킨다. 가비지 수집이 시간이 걸리기에, 가비지를 수집한 양을 줄임으로서 역시 성능을 개선한다.
다음 실시예는 플래시 메모리를 이용한 발명의 특정 실시예이다. 그러나, 플래시 메모리는 단순히 예로서 이용되고, 본 발명은 다른 메모리 기술로 이용된다. 특정 실시예에서, 본 발명은 여러 섹터 "블록"을 포함하는 플래시 메모리 장치를 포함하는 저장 장치를 취급한다. 블록은 한 개 소거 동작에 의해 소거된 메모리의 양으로 정의된다 환언하면, 블록은 소거의 단위이다. 본 발명은 그런 블록의 매핑과 액세스에 대해 사용된 메카니즘을 상세하게 기술한다.
호스트 장치가 플래시 메모리 카드에 액세스할 때, 여러 특징 사용 패턴이 있다. FAT 파일 시스템은 두 개 분명한 패턴을 선도한다: (1) FAT와 디렉토리 영역에서의 단일-섹터, (2) 저장장치의 사용자 데이터 영역에서의 멀티-섹터. 볼륨에서 분열이 있다면, 일정한 응용에 대해 그 사용은 연속보다는 "랜덤"일 것이다.
호스트는 여러 호스트 사용 패턴을 통해 플래시 메모리에 액세스한다. 한 개 사용 패턴이 단일 섹터 모드이고, 여기서 섹터는 한번에 하나가 액세스 된다. 다른 사용 패턴은 멀티-섹터이고, 이 경우에 저장 시스템은 각 플래시 장치에서 여러 플레인을 넘어 동시에 플레인 당 한 개 섹터에 액세스한다.
본 발명은 비휘발성 메모리가 어떻게 조직되거나 포맷되는지와 비휘발성메모리의 호스트 사용 패턴 사이의 일치 정도를 매칭한다. 일치의 정도가 1배(역시 연속으로 언급), 2배, 3배, 4배 등등이다. 1배 혹은 연속 액세스 방법은 다음 블록으로 가기 전에 블록에서의 각 섹터를 어드레스하고, 상기 액세스는 한번에 한 섹터로 제한된다. 병렬 액세스 방법(1배 액세스보다 더 큰)은 여러 연속 혹은 1배 동작 대신에 한 동작에서 각 플레인으로부터의 섹터를 어드레스 한다. 병렬 동작은 처리량을 증가시킴으로써 더 높은 성능을 허용한다.이러한 두 가지 방법은 성능과 마모에 대해 장점과 단점을 갖는다.
본 발명은 양 액세스 모드의 메모리 마모와 성능 특성의 장점을 갖도록 호스트 액세스를 모니터하여 메모리에 데이터가 저장되는 방식을 스위칭한다.
매핑 정보를 유지하는 여러 방법이 있고, 시작하는 LBA의 표가 한 가지 예이다. 메모리에 유지된 표는 각각의 물리적인 메모리 블록에 대해 시작하는 LBA가 위치하는데 이용된다.
섹터 매핑과 블록 관리를 하는 블록 매핑의 적응형 일치는 플래시 메모리에 대해 가장 좋은 기록 및 소거 마모 성능을 제공하고 이것은 새로운 데이터로 덮어쓴 섹터를 포함하는 블록 상에 복사 혹은 소거 동작 혹은 양쪽을 실행함에 의해 이루어진다.
주어진 논리적인 블록 내에 연속적인 어드레스 순서를 유지하기 위해, 데이터 섹터가 단일-섹터 일치를 위해 매핑되고 있는 영역으로의 액세스가 한 번에 연속으로 어드레스 된 섹터를 기록하는 것에 제한된다. 병렬액세스(1배 액세스보다 더 큰)는 플레인 당 한 개 섹터가 동시에 기록되도록 하여, 병렬로 기록된 플레인의 수와 같은 요소에 의해 성능을 개선한다. 예를 들어, 4 플레인을 갖는 장치가, 단일 섹터가 기록하는 것보다 약 4배 더 빨리 데이터를 기록한다. 8 플레인의 장치는 단일 섹터가 기록하는 것보다 약 8배 빨리 데이터를 기록한다. 16플레인을 갖는 장치는 단일 섹터가 기록하는 것보다 약 16배 더 빨리 데이터를 기록한다.
도 8은 연속 매핑시 데이터의 변경을 도시한다. 4 연속 섹터의 중복 기록은 새로운 데이터가 새로운 블록에 기록되고, 낡은 데이터가 새로운 블록에 복사되고 낡은 블록이 소거되는 것을 요한다. 복사 과정은 소거된 섹터를 복사하지 않는다.
도 9는 병렬 매핑시 데이터의 변경을 도시한다. 4 연속 섹터의 중복 기록은 4 새로운 블록이 보이고, 낡고 새로운 데이터가 새로운 블록에 복사되고 4 낡은 블록이 소거되는 것을 요한다. 4개의 소거가 발생할 필요가 있다. 많은 데이터 통합 동작이 호스트 기록의 수에 대해 요구된다면, 랜덤 혹은 단일 섹터 액세스 하에 일어나듯이, 칩의 수명은 증가된 수의 소거에 의해 영향을 받을 것이다.
각각의 섹터는 대표적으로 사용자 데이터, ECC 데이터 및 오버헤드 데이터를 포함한다. 오버헤드 정보는 섹터 ID, 물리적 어드레스 정보 및 데이터 관리를 위한 다른 시스템-관련 정보를 포함한다. 본 발명의 일 실시예에서, 오버헤드 정보는 데이터 매핑의 적응형 특징을 관리하는데 필요한 부가 정보를 포함한다. 일치의 정 도, 서브-메타블록의 크기, 섹터 삽입 혹은 데이터 매핑의 다른 표시를 표시하도록 일정한 개수의 비트가 유지된다.
예로서, 최대 메타블록의 크기가 4 블록이면, 2-비트 매핑 필드가 일치의 정도를 나타내는데 이용될 수 있다(00b는 1배를 나타내고, 01b는 두배 등). 이런 시나리오에서, 제1 플레인에서 제1 블록이 포맷되는 일치의 정도를 나타내는 매핑 필드를 갖을 것이고, 그것을 기초로 다른 수의 블록이 동일 서브-메타블록에 포함된다. 예를 들어, 제1 값이 01b이면, 등급 2의 일치를 나타내어, 그것은 메타블록에서 오직 다음 블록이 동일 서브-메타블록에 있는 것을 나타낸다.
메타블록에서 각 블록의 섹터로부터 혹은 주어진 블록에서 연속적인 섹터로부터 논리적인 어드레스 정보를 읽음으로써 데이터 매핑의 결정이 가능하기 때문에, 이러한 매핑 필드 정보는 편의상 유지된다. 예를 들어, 주어진 블록에서 제1의 두 개 물리적인 섹터가 두 개 논리적인 어드레스라면, 삽입 요소는 2이고, 그러기에 일치의 등급은 2이다. 데이터 매핑 정보가 섹터 오버헤드 정보보다는 개별 표에 저장되고, 데이터 매핑이 주어진 메타블록 혹은 서브-메타블록에 대해 변경될 때마다 갱신된다. 표가 메모리 장치상의 예약된 영역에서 일 실시예로 비휘발성 메모리에 유지된다.
부가적으로, 일 실시예에서 적절한 데이터 매핑을 결정하는 나중의 분석을 위해 호스트 사용 및/또는 카드 작동을 추적하는 통계가 유지된다. 한 통계는 주어진 호스트 명령에 기록된 섹터의 수이다. 이 통계가 메타블록 혹은 서브-메타블록에서 각 섹터를 따라 저장된다면, 그 통계는 그룹으로서 분석되고 일치의 적정 정 도에 대한 결정이 이루어진다. 특정 실시예에서, 이러한 통계는 섹터가 기록되는 때에 섹터에 저장된다. 다른 실시예에서, 통계는 휘발성 메모리에 임시로 저장되고, 다음에 휘발성 메모리에서 개별 표로 전달된다. 통계가 역시 예를 들어 표로 기록될 섹터 혹은 블록에 대해, 발생의 횟수 혹은 발생의 상대적인 횟수가 축적되는 식으로 집합하고, 일치의 정도가 임계에 근거하여 변한다. 축적의 목적으로, 통계가 허용된 가장 근접한 일치로 저장된다. 예를 들어, 일치의 정도 1과 4가 허용된다면, 3 섹터 상에서 동작하는 기록 명령이 4 섹터 상에서 동작하는 호스트 명령을 따라 카운트에 축적되고, 4 섹터보다 더 큰 어떤 기록 명령이 4 섹터 상에 동작의 카운트에 저장될 것이다. 일치의 가장 큰 정도를 나타내는 상자가 최대의 일치에 의해 분할된 명령 섹터에 의해 증가한다.
예로서, 4가 최대 일치이면, 16 섹터의 호스트 기록은 4배 카운트가 4배로 증가한다. 영역이 단일 섹터 호스트 명령으로 현저히 기록된다면, 일치의 적정 정도가 1이라고 통계는 나타낼 것이다. 이와 같이, 영역이 4섹터 호스트 명령으로 현저히 기록된다면, 일치의 적정 정도가 4라고 통계는 나타낼 것이다.
섹터가 호스트 기록인지 혹은 데이터 통합인지의 다른 통계가 있다. 그러한 통계는 예를르 들어, 발생의 횟수 혹은 발생의 상대적인 횟수가 축적되는 식으로 두 메카니즘 사이에 상대적인 수 혹은 비율의 임계치에 근거하여 개별 표 혹은 개별 섹터의 오버헤드에 축적될 수 있다. 예를 들어, 섹터가 데이터 통합에 현저히 기록된다고 결정되면, 데이터 통합 활동에 포함된 블록의 수를 최소화하도록 영역이 1배 일치에 대해 다시 포맷될시에 전체 성능이 개선된다.
상기 두 개의 통계가 결합하여, 제2 통계를 이용한 임계치에 도달하고 이것이 일치의 적정 정도를 결정하도록 제1 통계의 평가를 유도한다. 그러한 축적된 통계를 갖는 표가 비휘발성 메모리에, 메모리 장치상의 예약된 영역에 하나의 실시예로 유지된다.축적된 통계는 섹터마다 유지되지 않지만, 메타블록 기준으로, 메타블록의 그룹 같은 더 큰 영역 상에 유지된다.
시스템은 최적화되어 공간을 절감하려고 축적된 통계를 유지한다. 예를 들어, 영역이 적당하게 포맷되는 것보다 다른 수의 섹터 상에서 동작하는 명령이 선택될 때, 주어진 영역에 대한 축적된 통계의 유지가 시작될 수 있다. 그러한 기록은 비-적정 기록 명령으로 불린다.
예를 들어, 영역이 1배 일치로 포맷되고, 4배 기록이 영역에서 실행되면, 그것은 그 영역에 대해 축적된 통계의 저장을 시작할 수 있다. 비적정 기록 명령의 개수가 임계치를 초과하면, 시스템은 영역이 포맷되는 일치의 정도를 스위칭한다. 축적된 통계가 하나의 호스트 섹터 카운트의 발생시 증가된 카운터로서 증가될 수 있고, 다른 것의 발생시 감소될 수 있다. 예를 들어, 오직 1배 및 4배 일치가 허용되면, 단일 카운터는 단일 섹터 기록의 발생시마다 증가될 수 있고, 4-섹터 기록의 발생시마다 감소될 수 있다. 일정 임계에 도달하면, 영역 데이터 구조가 스위칭 된다.
블록 액세스 모드 정보를 저장하는 다른 방법은 시스템 영역에 저장된 섹터를 매핑할 시에 블록에 대한 모드 비트를 저장하는 것이다. 역시 액세스 통계는 시스템 영역에 저장된다.
도 10은 호스트에 의한 다음 순서의 기록 동작 이후에 블록의 각 섹터 내에 카운트 필드의 예를 도시한다:
(1) 섹터 0으로 시작하는 16 섹터의 호스트 기록
(2) 섹터 16으로 시작하는 8 섹터의 호스트 기록
(3) 섹터 24의 호스트 기록(오직 1 섹터)
(4) 섹터 25의 호스트 기록
(5) 섹터 26의 호스트 기록
(6) 섹터 27의 호스트 기록
(7) 섹터 28의 호스트 기록
(8) 섹터 29의 호스트 기록
(9) 섹터 30의 호스트 기록
(10) 섹터 31의 호스트 기록
오로지 1배(1405)와 4배(1408)의 일치의 정도가 허용되는 것을 가정하여 모인 통계가 또한 도시된다. 단일 섹터 기록으로 만들 수 있는 8 기록(1405)이 있다. 상기 통계는 섹터 24 내지 31까지의 기록으로부터 모인다. 4배 기록에 의해 이루어질 수 있는 6 기록(1408)이 있다. 더욱 상세히는, 하나의 16 섹터 기록이 있는데, 이것은 4 4-섹터 기록으로 분할되고, 하나의 8 섹터 기록, 이것은 두 개의 4-섹터 기록으로 분할된다. 이것은 전체 6개의 4-섹터 기록이 된다.
모인 통계를 기초로, 메모리가 1배 혹은 4배 매핑으로 재-포맷 된다. 에를 들어, 하나의 매핑에서 다른 매핑으로 스위칭 될 때의 기준은 일정 카운트(x4 같 은)가 다른 카운트(x1)를 초과할 때를 기준으로 한다. 다른 기준이 이용되기도 한다.
또한 x1과 x4에 대한 통계를 모으는 예를 도시한다. 그러나, 다른 실시예에서 x5, x8, 및 x16 같은 다른 가능한 정도의 일치에 대해 통계가 추적한다.
도 11은 다른 유형의 섹터 매핑 체계의 예를 도시한다. 변환표를 초기화하도록 각 블록의 ID가 판독될 때, 각 블록에 대해 사용된 액세스 방법에 대한 지식과, 일 실시예에서 각 블록의 사용자 데이터의 위치가 얻어진다. 액세스 모드 비트가 헤더로부터 판독되고 변환표에 기록되어 블록의 액세스 방법을 나타낸다. 블록은 플레인마다 연속적일 필요가 없다.
도 11은 병렬 블록 섹터 번호 체계, 1배 혹은 직렬 블록 섹터 번호 체계, 및 부분적인 1배 액세스와 1배 병렬 섹터보다 큰 번호 체계의 예를 도시한다. 부분적인 1배와 1배 섹터보다 큰 번호 체계는 혼합 모드 체계로 불린다. 이것은 각각 병렬, 직렬(1배), 및 혼합 모드 액세스 방법으로 이용된다.
도 12는 4X-대-1X 매핑 변환의 예를 도시한다. 이것은 4X 매핑으로부터 1X 매핑으로의 변환이다. 정상 동작 동안에, 플래시 메모리는 통상적으로 초기에 셋업하여 최고조의 성능으로 구동하는데, 이것은 병렬 모드 (1배 액세스보다 더 큰)에 있다는 것를 의미한다. 일반적으로, 메타블록이 하나의 포맷에서 다른 것으로 변환될지의 결정에, 갱신 블록의 할당을 발생하는 트리거가 사용된다. 하나의 블록에서 단일 섹터 기록의 수가 임계치(이것은 사용자 정의 혹은 시스템의 설계자가 정의함)를 초과하면, 액세스 방법은 1배 방법으로 변환된다. 이것은 모든 섹터가 그들 의 적당한 위치로, 새로운 블록으로 기록되도록 요구하여, 이에 따라 그들의 액세스 비트가 설정된다.
도 13은 직렬 대 병렬 매핑 변환의 예를 도시한다. 이전의 경우와 반대로, 블록의 섹터가 단일 섹터 액세스에서 멀티-섹터 액세스로 가면, 이에 따라 액세스 방법은 병렬 액세스로 변환하고, 섹터는 새로운 블록으로 재기록되고, 각 섹터의 액세스 모드 비트가 조절된다. 제1 등급의 일치 매핑에서 제2 등급의 일치 매핑으로의 변화가 유사한 방법으로 실행된다. 예를 들어, 매핑은 2X에서 4X로, 혹은 4X에서 8X로 등등 변환된다. 도 13의 제1 등급의 일치가 1X 매핑이다. 이것은 1X 매핑에서 4X 매핑으로의 변환이다.
호스트로부터 이미 이것에 기록되었던 데이터를 갖는 섹터로 데이터가 기록되는 중일 때, 시스템은 하나의 포맷에서 새로운 블록의 할당을 갖는 다른 포맷으로의 변화를 일반적으로 결합한다는 것을 알아야 한다. 호스트가 주어진 영역에 데이터를 재기록할 때 새로운 메타블록 혹은 서브-메타블록이 할당된다. 그러한 때에, 원래 영역에 있는 데이터 일부가 새롭게 할당된 영역에 복사된다. 때때로 그것은 데이터 통합 동안에 나중에 복사된다. 어떤 경우일지라도, 시스템은 일반적으로 포맷을 변환할 논리적인 블록에 대해 새로운 영역을 할당하는 이벤트를 이용한다. 그러한 때에, 영역에 대한 사용 로그가 재설정된다.
제어기는 필요한 각각의 액세스 모드 사이의 스위칭 능력을 갖는다. 제어기는 호스트 활동에 근거하여 어떤 모드를 사용할지를 결정할 수 있다. 다수의 단일 섹터 액세스가 발생하면, 이것은 병렬 액세스 모드에서 직렬 액세스 모드로의 변환 을 트리거한다.
더욱이,혼합된 모드 블록 액세스가 역시 허용된다. 동일 메모리 집적회로 내에, 일부 데이터가 직렬 액세스로 저장되고, 다른 데이터가 병렬 액세스로 저장된다. 더욱이, 동일한 플래시 카드 시스템 내에, 하나의 메모리 집적회로가 직렬 액세스로 저장된 데이터를 갖는 반면에, 다른 메모리 집적회로에 저장된 데이터는 병렬 액세스로 저장된다.
본 발명의 여러 특징이 예를 든 실시예와 더불어 기술되었지만, 본 발명이 첨부된 특허 청구범위의 완전한 범위 내에서 보호받는다는 것을 이해할 것이다.

Claims (13)

  1. 비-휘발성 메모리 시스템에 있어서, 적어도 두 개의 서브-어레이로 분할된 비-휘발성 메모리 셀의 어레이를 포함하고, 데이터가 적어도 두 개 서브-어레이의 각각에 동시에 액세스 가능하고, 데이터가 적어도 제1 및 제2의 상이한 삽입 장치를 구비한 상기 적어도 두 개의 서브-어레이 내에 저장되는, 비-휘발성 메모리 시스템.
  2. 제 1항에 있어서, 적어도 두 개의 서브-어레이의 각각에 동시에 액세스 가능한 상기 데이터는 데이터의 섹터들을 포함하고, 적어도 두 개의 서브-어레이 내에 저장된 데이터의 섹터가:
    상기 제1 삽입 장치에 따라 상기 서브-어레이를 넘어 삽입된 제1 세트의 인접 논리적인 어드레스에 의해 식별된 적어도 하나의 제1 세트의 데이터 섹터와,
    상기 제2 삽입 장치에 따라 적어도 두 개의 상기 서브-어레이 중에 하나 이내에 삽입된 제2 세트의 인접 논리적인 어드레스에 의해 식별된 적어도 하나의 제2 세트의 데이터 섹터를 포함하는 비-휘발성 메모리 시스템.
  3. 제 2항에 있어서, 상기 저장된 데이터의 섹터의 삽입의 정도의 표시가 역시 저장되는 것을 특징으로 하는, 비-휘발성 메모리 시스템.
  4. 제 3항에 있어서, 상기 삽입된 정도의 표시가, 그것이 포함되는 저장된 데이터의 섹터 이내에 오버헤드로 저장되는, 비-휘발성 메모리 시스템.
  5. 제 3항에 있어서,상기 삽입의 정도의 표시가 그것이 포함되는 저장된 데이터의 섹터로부터 분리된 섹터에 저장되는, 비-휘발성 메모리 시스템.
  6. 다수의 메모리 셀 서브-어레이를 개별적으로 블록에 논리적으로 연결하는 비-휘발성 메모리 시스템의 작동 방법.
  7. 유닛의 데이터를 프로그램하고 병렬로 데이터를 판독하도록 동시에 액세스 가능한 다수의 메모리 셀 서브-어레이를 갖고, 개별 서브-어레이가 동시에 소거 가능한 최소 수의 메모리 셀로 이루어진 블록으로 분할되는 비-휘발성 메모리에 있어서, 메모리의 작동 방법은;
    연속적인 논리적 어드레스를 갖고 다수의 서브-어레이의 각각에 한 블록의 전체 데이터 저장 용량보다 작은 명시된 수의 유닛 데이터를 메모리로 프로그램하는 명령을 수신하는 단계와,
    프로그램될 명시된 수의 유닛 데이터를 수신하는 단계와, 및
    서브-어레이의 각각에 한 블록의 전체 데이터 저장 용량에 대해 프로그램되고 있는 명시된 수의 유닛의 데이터에 따라, 하나 이상의 다수의 메모리 셀 서브-어레이의 블록 상에 차례로 배열된 연속적인 논리적 어드레스를 갖는 수신된 유닛 이 데이터를 프로그램하는 단계를 포함하는, 메모리의 작동 방법.
  8. 제1 등급의 일치와 제2 등급의 일치 중에 적어도 하나로 기록되고 판독되고 있는 데이터를 갖는 메모리를 동작하는 단계와,
    수신된 기록 요청 중에 적어도 하나의 특징에 응답하여, 상기 제1 및 제2 등급의 일치 중 적어도 하나로 수신된 기록 요청들 중에 개별 요청을 수반하는 데이터를 기록하는 단계를 포함하는, 비-휘발성 메모리 시스템의 작동 방법.
  9. 제8항에 있어서, 상기 적어도 하나의 특징은 기록 요청을 수신한 데이터가 메모리에 기록되도록 하는 것인, 비-휘발성 메모리 시스템의 작동 방법.
  10. 독립적으로 액세스 가능한 복수의 블록의 플레인과, 데이터 프로그래밍과 판독의 단위인 페이지와, 소거의 단위인 블록으로 배열된 비-휘발성 메모리 셀의 어레이를 갖는 플래시 메모리 시스템에 있어서, 메모리 동작 방법은;
    다수의 플레인에서 블록을 개별적으로 포함하는 메타블록을 논리적으로 형성하는 단계와,
    변하는 데이터를 갖는 기록 명령을 연속으로 수신하는 단계와, 및
    호스트 기록 명령의 변하는 특징에 응답하여, 메타블록들 중 하나의 두 개 이상의 블록 내에 페이지에 병렬로 혹은 플레인들 중 하나의 개별 블록 내에 페이지로 직렬로 혹은 병렬로 수신된 데이터를 여러 가지로 기록하는 단계를 포함하는 메모리 동작 방법.
  11. 제 10항에 있어서, 상기 데이터가 병렬로 기록되고 있는 블록을 식별하는 수신된 데이터로서의 표시를 동시에 기록하는 단계를 더 포함하는, 메모리 동작 방법.
  12. 소거 가능한 셀로 이루어진 블록으로 구성되고 다수의 유닛의 데이터를 개별적으로 저장하는 메모리 셀 어레이를 구비한 비-휘발성 메모리 시스템에서, 직렬로 수신되고 있는 표시된 하나 이상의 유닛의 데이터에 의해 수반되고, 기록될 하나 이상의 유닛의 데이터의 논리적인 어드레스를 개별적으로 나타내는 일련의 기록 명령에 응답하는 방법은;
    병렬로 상기 수반하는 한 이상의 유닛의 데이터를 기록하도록 허용하는, 메모리의 하나 이상의 블록 내에서 개별 기록 명령의 논리적 어드레스를 물리적 어드레스로 변환하는 단계를 포함하고, 수신된 일련의 기록 명령중 적어도 하나에 의해 명시된 데이터의 유닛의 수의 기능으로서 상기 하나 이상의 유닛의 데이터를 수신하도록 다수의 하나 이상의 블록이 선택되고, 상기 수신된 일련의 기록 명령에 의해 명시된 데이터의 유닛의 수가 변하고, 및
    상기 선택된 한 이상의 유닛의 데이터를 상기 한 이상의 블록으로 병렬로 기록하는 단계를 포함하는, 기록 명령에 응답하는 방법.
  13. 메모리 셀로 이루어진 비-휘발성 메모리 어레이를 작동하는 방법에 있어서,
    제 삽입 장치의 저장에 의한 적정 성능 특징을 내는 제1 삽입 장치에 저장된 데이터의 적어도 일부를 갱신하는 명령을 수신하여,
    제1 및 제2의 상이한 삽입 장치에 데이터를 저장하는 단계와,
    제1 삽입 장치에 저장된 데이터를 판독하는 단계, 및
    제1 및 제2 삽입 장치를 구비한 메모리 어레이에 판독 데이터와 갱신 데이터를 기록하는 단계를 포함하는 비-휘발성 메모리 어레이 작동 방법.
KR1020067013305A 2003-12-30 2004-12-16 호스트 이용 특징 기반의 플래시 메모리 어드레스 매핑의적응형 모드 스위칭 KR101014599B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/750,190 2003-12-30
US10/750,190 US7631138B2 (en) 2003-12-30 2003-12-30 Adaptive mode switching of flash memory address mapping based on host usage characteristics

Publications (2)

Publication Number Publication Date
KR20060130084A true KR20060130084A (ko) 2006-12-18
KR101014599B1 KR101014599B1 (ko) 2011-02-16

Family

ID=34701169

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020067013305A KR101014599B1 (ko) 2003-12-30 2004-12-16 호스트 이용 특징 기반의 플래시 메모리 어드레스 매핑의적응형 모드 스위칭

Country Status (8)

Country Link
US (2) US7631138B2 (ko)
EP (1) EP1700221B1 (ko)
JP (1) JP5001011B2 (ko)
KR (1) KR101014599B1 (ko)
CN (1) CN1918552B (ko)
AT (1) ATE554448T1 (ko)
TW (1) TWI303365B (ko)
WO (1) WO2005066794A2 (ko)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8332569B2 (en) 2009-08-06 2012-12-11 Samsung Electronics Co., Ltd. Nonvolatile memory system using data interleaving scheme
US8417872B2 (en) 2008-01-24 2013-04-09 Samsung Electronics Co., Ltd. Write and merge methods in memory card systems for reducing the number of page copies
KR20130116110A (ko) * 2012-04-13 2013-10-23 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
US9484104B2 (en) 2014-03-04 2016-11-01 Samsung Electronics Co., Ltd. Nonvolatile memory system with block managing unit and method of operating the same
KR20180003712A (ko) * 2016-06-30 2018-01-10 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
KR20190022603A (ko) * 2019-02-26 2019-03-06 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법

Families Citing this family (268)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI240861B (en) * 2002-01-11 2005-10-01 Integrated Circuit Solution In Data access method and architecture of flash memory
US8504798B2 (en) 2003-12-30 2013-08-06 Sandisk Technologies Inc. Management of non-volatile memory systems having large erase blocks
US7631138B2 (en) * 2003-12-30 2009-12-08 Sandisk Corporation Adaptive mode switching of flash memory address mapping based on host usage characteristics
US8607016B2 (en) * 2004-07-21 2013-12-10 Sandisk Technologies Inc. FAT analysis for optimized sequential cluster management
JP4561246B2 (ja) * 2004-08-31 2010-10-13 ソニー株式会社 メモリ装置
US7627712B2 (en) * 2005-03-22 2009-12-01 Sigmatel, Inc. Method and system for managing multi-plane memory devices
US20060282610A1 (en) * 2005-06-08 2006-12-14 M-Systems Flash Disk Pioneers Ltd. Flash memory with programmable endurance
US7426605B2 (en) * 2005-09-30 2008-09-16 Rudelic John C Method and apparatus for optimizing flash device erase distribution
US7640424B2 (en) * 2005-10-13 2009-12-29 Sandisk Corporation Initialization of flash storage via an embedded controller
US7793059B2 (en) * 2006-01-18 2010-09-07 Apple Inc. Interleaving policies for flash memory
KR100725410B1 (ko) * 2006-01-20 2007-06-07 삼성전자주식회사 전원 상태에 따라 비휘발성 메모리의 블록 회수를 수행하는장치 및 그 방법
US7802064B2 (en) * 2006-03-31 2010-09-21 Mosaid Technologies Incorporated Flash memory system control scheme
WO2007132456A2 (en) 2006-05-12 2007-11-22 Anobit Technologies Ltd. Memory device with adaptive capacity
CN103280239B (zh) 2006-05-12 2016-04-06 苹果公司 存储设备中的失真估计和消除
US8595573B2 (en) 2006-12-03 2013-11-26 Apple Inc. Automatic defect management in memory devices
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
KR20090102789A (ko) * 2006-12-06 2009-09-30 퓨전 멀티시스템즈, 인크.(디비에이 퓨전-아이오) 프로그레시브 raid를 이용한 데이터 저장 장치, 시스템 및 방법
US9495241B2 (en) 2006-12-06 2016-11-15 Longitude Enterprise Flash S.A.R.L. Systems and methods for adaptive data storage
US8443134B2 (en) 2006-12-06 2013-05-14 Fusion-Io, Inc. Apparatus, system, and method for graceful cache device degradation
US9116823B2 (en) 2006-12-06 2015-08-25 Intelligent Intellectual Property Holdings 2 Llc Systems and methods for adaptive error-correction coding
US8489817B2 (en) 2007-12-06 2013-07-16 Fusion-Io, Inc. Apparatus, system, and method for caching data
US8706968B2 (en) 2007-12-06 2014-04-22 Fusion-Io, Inc. Apparatus, system, and method for redundant write caching
US9104599B2 (en) 2007-12-06 2015-08-11 Intelligent Intellectual Property Holdings 2 Llc Apparatus, system, and method for destaging cached data
KR100843218B1 (ko) * 2006-12-18 2008-07-02 삼성전자주식회사 어드레스 쉬프팅을 이용하여 블럭 사이즈를 변경하는플래시 메모리 장치 및 방법
US20080162787A1 (en) * 2006-12-28 2008-07-03 Andrew Tomlin System for block relinking
TW200828320A (en) * 2006-12-28 2008-07-01 Genesys Logic Inc Method for performing static wear leveling on flash memory
WO2008082950A1 (en) * 2006-12-28 2008-07-10 Sandisk Corporation System for block relinking
US20080162612A1 (en) * 2006-12-28 2008-07-03 Andrew Tomlin Method for block relinking
US8019959B2 (en) * 2007-02-09 2011-09-13 Marvell World Trade Ltd. Nonvolatile memory system
WO2008111058A2 (en) 2007-03-12 2008-09-18 Anobit Technologies Ltd. Adaptive estimation of memory cell read thresholds
US7958301B2 (en) * 2007-04-10 2011-06-07 Marvell World Trade Ltd. Memory controller and method for memory pages with dynamically configurable bits per cell
US8234545B2 (en) 2007-05-12 2012-07-31 Apple Inc. Data storage with incremental redundancy
US8429493B2 (en) 2007-05-12 2013-04-23 Apple Inc. Memory device with internal signap processing unit
US8429352B2 (en) * 2007-06-08 2013-04-23 Sandisk Technologies Inc. Method and system for memory block flushing
CN100530138C (zh) * 2007-06-28 2009-08-19 忆正存储技术(深圳)有限公司 基于多通道闪存设备逻辑条带的自适应控制方法
US8572307B2 (en) * 2007-07-20 2013-10-29 Panasonic Corporation Memory controller, memory card, and nonvolatile memory system
US8259497B2 (en) 2007-08-06 2012-09-04 Apple Inc. Programming schemes for multi-level analog memory cells
US8174905B2 (en) 2007-09-19 2012-05-08 Anobit Technologies Ltd. Programming orders for reducing distortion in arrays of multi-level analog memory cells
US8300478B2 (en) 2007-09-19 2012-10-30 Apple Inc. Reducing distortion using joint storage
US8566504B2 (en) * 2007-09-28 2013-10-22 Sandisk Technologies Inc. Dynamic metablocks
US8527819B2 (en) 2007-10-19 2013-09-03 Apple Inc. Data storage in analog memory cell arrays having erase failures
US8270246B2 (en) 2007-11-13 2012-09-18 Apple Inc. Optimized selection of memory chips in multi-chips memory devices
US8225181B2 (en) * 2007-11-30 2012-07-17 Apple Inc. Efficient re-read operations from memory devices
CN101178933B (zh) * 2007-12-05 2010-07-28 苏州壹世通科技有限公司 一种闪存阵列装置
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
US9519540B2 (en) 2007-12-06 2016-12-13 Sandisk Technologies Llc Apparatus, system, and method for destaging cached data
US8316277B2 (en) 2007-12-06 2012-11-20 Fusion-Io, Inc. Apparatus, system, and method for ensuring data validity in a data storage process
US8209588B2 (en) 2007-12-12 2012-06-26 Anobit Technologies Ltd. Efficient interference cancellation in analog memory cell arrays
US8456905B2 (en) * 2007-12-16 2013-06-04 Apple Inc. Efficient data storage in multi-plane memory devices
US8775717B2 (en) 2007-12-27 2014-07-08 Sandisk Enterprise Ip Llc Storage controller for flash memory including a crossbar switch connecting a plurality of processors with a plurality of internal memories
JP2009211192A (ja) * 2008-02-29 2009-09-17 Toshiba Corp メモリシステム
US8230300B2 (en) 2008-03-07 2012-07-24 Apple Inc. Efficient readout from analog memory cells using data compression
US8400858B2 (en) 2008-03-18 2013-03-19 Apple Inc. Memory device with reduced sense time readout
US8493783B2 (en) 2008-03-18 2013-07-23 Apple Inc. Memory device readout using multiple sense times
US9477587B2 (en) * 2008-04-11 2016-10-25 Micron Technology, Inc. Method and apparatus for a volume management system in a non-volatile memory device
US20090271562A1 (en) * 2008-04-25 2009-10-29 Sinclair Alan W Method and system for storage address re-mapping for a multi-bank memory device
US8195978B2 (en) 2008-05-16 2012-06-05 Fusion-IO. Inc. Apparatus, system, and method for detecting and replacing failed data storage
KR100982440B1 (ko) 2008-06-12 2010-09-15 (주)명정보기술 단일 플래시 메모리의 데이터 관리시스템
US8904083B2 (en) * 2008-07-30 2014-12-02 Infineon Technologies Ag Method and apparatus for storing data in solid state memory
KR20100012938A (ko) * 2008-07-30 2010-02-09 주식회사 하이닉스반도체 웨어 레벨링을 수행하는 반도체 스토리지 시스템 및 그제어 방법
US7995388B1 (en) 2008-08-05 2011-08-09 Anobit Technologies Ltd. Data storage using modified voltages
TWI373769B (en) * 2008-08-15 2012-10-01 Phison Electronics Corp Block management method for flash memory and storage system and controller using the same
TW201009577A (en) * 2008-08-27 2010-03-01 Phison Electronics Corp Data transfer method for flash memory and flash memory storage system and controller using the same
US8949684B1 (en) 2008-09-02 2015-02-03 Apple Inc. Segmented data storage
US9773557B2 (en) * 2008-09-03 2017-09-26 Marvell World Trade Ltd. Multi-plane data order
US8482978B1 (en) 2008-09-14 2013-07-09 Apple Inc. Estimation of memory cell read thresholds by sampling inside programming level distribution intervals
US8671327B2 (en) * 2008-09-28 2014-03-11 Sandisk Technologies Inc. Method and system for adaptive coding in flash memories
EP2335245B1 (en) * 2008-09-28 2015-01-07 Ramot at Tel-Aviv University Ltd. Method and system for adaptive coding in flash memories
KR101083673B1 (ko) * 2008-10-01 2011-11-16 주식회사 하이닉스반도체 반도체 스토리지 시스템 및 그 제어 방법
US8239734B1 (en) 2008-10-15 2012-08-07 Apple Inc. Efficient data storage in storage device arrays
TW201017771A (en) * 2008-10-29 2010-05-01 Nanya Technology Corp Vertical transistor and fabricating method thereof and vertical transistor array
US8261159B1 (en) 2008-10-30 2012-09-04 Apple, Inc. Data scrambling schemes for memory devices
JP2010108385A (ja) * 2008-10-31 2010-05-13 Hitachi Ulsi Systems Co Ltd 記憶装置
US8219781B2 (en) 2008-11-06 2012-07-10 Silicon Motion Inc. Method for managing a memory apparatus, and associated memory apparatus thereof
US8208304B2 (en) 2008-11-16 2012-06-26 Anobit Technologies Ltd. Storage at M bits/cell density in N bits/cell analog memory cell devices, M>N
KR101515098B1 (ko) * 2008-11-20 2015-04-24 삼성전자주식회사 플래시 메모리 장치 및 이의 독출 방법
US8174857B1 (en) 2008-12-31 2012-05-08 Anobit Technologies Ltd. Efficient readout schemes for analog memory cell devices using multiple read threshold sets
US8248831B2 (en) 2008-12-31 2012-08-21 Apple Inc. Rejuvenation of analog memory cells
US8924661B1 (en) 2009-01-18 2014-12-30 Apple Inc. Memory system including a controller and processors associated with memory devices
US8228701B2 (en) * 2009-03-01 2012-07-24 Apple Inc. Selective activation of programming schemes in analog memory cell arrays
US8239614B2 (en) * 2009-03-04 2012-08-07 Micron Technology, Inc. Memory super block allocation
TWI407441B (zh) * 2009-03-20 2013-09-01 Phison Electronics Corp 快閃記憶體寫入方法及使用此方法的儲存系統與控制器
TWI385518B (zh) * 2009-03-20 2013-02-11 Phison Electronics Corp 用於快閃記憶體的資料儲存方法及儲存系統
US8832354B2 (en) 2009-03-25 2014-09-09 Apple Inc. Use of host system resources by memory controller
US8259506B1 (en) 2009-03-25 2012-09-04 Apple Inc. Database of memory read thresholds
US8238157B1 (en) 2009-04-12 2012-08-07 Apple Inc. Selective re-programming of analog memory cells
JP5532671B2 (ja) * 2009-05-08 2014-06-25 ソニー株式会社 データ記憶システムおよびデータ記憶方法、実行装置および制御方法、並びに制御装置および制御方法
KR101606453B1 (ko) * 2009-05-13 2016-04-01 삼성전자주식회사 비휘발성 데이터 저장 장치의 읽기 및 쓰기 성능 향상 방법
US8281227B2 (en) 2009-05-18 2012-10-02 Fusion-10, Inc. Apparatus, system, and method to increase data integrity in a redundant storage system
US8307258B2 (en) 2009-05-18 2012-11-06 Fusion-10, Inc Apparatus, system, and method for reconfiguring an array to operate with less storage elements
JP4818404B2 (ja) * 2009-06-26 2011-11-16 株式会社東芝 素材サーバおよび素材蓄積方法
US8479080B1 (en) 2009-07-12 2013-07-02 Apple Inc. Adaptive over-provisioning in memory systems
KR20110018157A (ko) * 2009-08-17 2011-02-23 삼성전자주식회사 플래시 메모리 장치의 액세스 방법
JP4956593B2 (ja) 2009-09-08 2012-06-20 株式会社東芝 メモリシステム
JP5999645B2 (ja) 2009-09-08 2016-10-05 ロンギチュード エンタープライズ フラッシュ エスエイアールエル ソリッドステート記憶デバイス上にデータをキャッシングするための装置、システム、および方法
US9223514B2 (en) 2009-09-09 2015-12-29 SanDisk Technologies, Inc. Erase suspend/resume for memory
US8289801B2 (en) 2009-09-09 2012-10-16 Fusion-Io, Inc. Apparatus, system, and method for power reduction management in a storage device
US9021158B2 (en) 2009-09-09 2015-04-28 SanDisk Technologies, Inc. Program suspend/resume for memory
CN101692211B (zh) * 2009-09-15 2011-08-10 苏州超锐微电子有限公司 一种Flash数据管理方法
US8495465B1 (en) 2009-10-15 2013-07-23 Apple Inc. Error correction coding over multiple memory pages
US8473669B2 (en) * 2009-12-07 2013-06-25 Sandisk Technologies Inc. Method and system for concurrent background and foreground operations in a non-volatile memory array
US8677054B1 (en) 2009-12-16 2014-03-18 Apple Inc. Memory management schemes for non-volatile memory devices
US8694814B1 (en) 2010-01-10 2014-04-08 Apple Inc. Reuse of host hibernation storage space by memory controller
US8572311B1 (en) 2010-01-11 2013-10-29 Apple Inc. Redundant data storage in multi-die memory systems
US8694853B1 (en) 2010-05-04 2014-04-08 Apple Inc. Read commands for reading interfering memory cells
JP5464066B2 (ja) * 2010-06-10 2014-04-09 ソニー株式会社 通信装置、及び、通信方法
US8572423B1 (en) 2010-06-22 2013-10-29 Apple Inc. Reducing peak current in memory systems
US8447920B1 (en) * 2010-06-29 2013-05-21 Western Digital Technologies, Inc. System and method for managing data access in non-volatile memory
US8595591B1 (en) 2010-07-11 2013-11-26 Apple Inc. Interference-aware assignment of programming levels in analog memory cells
EP2595319B1 (en) 2010-07-14 2020-03-18 Dongjing Zhao Wireless switch assembly
US9104580B1 (en) 2010-07-27 2015-08-11 Apple Inc. Cache memory for hybrid disk drives
US8767459B1 (en) 2010-07-31 2014-07-01 Apple Inc. Data storage in analog memory cells across word lines using a non-integer number of bits per cell
US8856475B1 (en) 2010-08-01 2014-10-07 Apple Inc. Efficient selection of memory blocks for compaction
US8493781B1 (en) 2010-08-12 2013-07-23 Apple Inc. Interference mitigation using individual word line erasure operations
US8694854B1 (en) 2010-08-17 2014-04-08 Apple Inc. Read threshold setting based on soft readout statistics
US8984216B2 (en) 2010-09-09 2015-03-17 Fusion-Io, Llc Apparatus, system, and method for managing lifetime of a storage device
US9021181B1 (en) 2010-09-27 2015-04-28 Apple Inc. Memory management for unifying memory cell conditions by using maximum time intervals
US8452911B2 (en) 2010-09-30 2013-05-28 Sandisk Technologies Inc. Synchronized maintenance operations in a multi-bank storage system
WO2012048444A1 (en) 2010-10-14 2012-04-19 Freescale Semiconductor, Inc. Are Memory controller and method for accessing a plurality of non-volatile memory arrays
JP5296763B2 (ja) * 2010-11-11 2013-09-25 株式会社バッファロー 記憶装置、記憶プログラム及び制御方法
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
US9218278B2 (en) 2010-12-13 2015-12-22 SanDisk Technologies, Inc. Auto-commit memory
US10817421B2 (en) 2010-12-13 2020-10-27 Sandisk Technologies Llc Persistent data structures
US9047178B2 (en) 2010-12-13 2015-06-02 SanDisk Technologies, Inc. Auto-commit memory synchronization
US9208071B2 (en) 2010-12-13 2015-12-08 SanDisk Technologies, Inc. Apparatus, system, and method for accessing memory
WO2012082792A2 (en) 2010-12-13 2012-06-21 Fusion-Io, Inc. Apparatus, system, and method for auto-commit memory
US10817502B2 (en) 2010-12-13 2020-10-27 Sandisk Technologies Llc Persistent memory management
TWI514136B (zh) 2010-12-28 2015-12-21 Silicon Motion Inc 快閃記憶裝置及其資料寫入方法
CN102541464B (zh) * 2010-12-30 2014-07-23 慧荣科技股份有限公司 快闪存储装置及其数据写入方法
US9213594B2 (en) 2011-01-19 2015-12-15 Intelligent Intellectual Property Holdings 2 Llc Apparatus, system, and method for managing out-of-service conditions
TWI494948B (zh) * 2011-01-31 2015-08-01 Phison Electronics Corp 用於非揮發性記憶體的資料寫入方法、控制器與儲存裝置
US8966184B2 (en) 2011-01-31 2015-02-24 Intelligent Intellectual Property Holdings 2, LLC. Apparatus, system, and method for managing eviction of data
WO2012109677A2 (en) 2011-02-11 2012-08-16 Fusion-Io, Inc. Apparatus, system, and method for managing operations for data storage media
US9003104B2 (en) 2011-02-15 2015-04-07 Intelligent Intellectual Property Holdings 2 Llc Systems and methods for a file-level cache
US8874823B2 (en) 2011-02-15 2014-10-28 Intellectual Property Holdings 2 Llc Systems and methods for managing data input/output operations
US9201677B2 (en) 2011-05-23 2015-12-01 Intelligent Intellectual Property Holdings 2 Llc Managing data input/output operations
CN102646448B (zh) * 2011-02-18 2015-09-16 群联电子股份有限公司 用于非易失性内存的数据写入方法、控制器与储存装置
WO2012116369A2 (en) 2011-02-25 2012-08-30 Fusion-Io, Inc. Apparatus, system, and method for managing contents of a cache
KR101339800B1 (ko) * 2011-02-25 2013-12-10 성균관대학교산학협력단 Pss 행위 모델링 장치 및 방법
US9176864B2 (en) * 2011-05-17 2015-11-03 SanDisk Technologies, Inc. Non-volatile memory and method having block management with hot/cold data sorting
US9141528B2 (en) 2011-05-17 2015-09-22 Sandisk Technologies Inc. Tracking and handling of super-hot data in non-volatile memory systems
TWI479491B (zh) * 2011-07-05 2015-04-01 Phison Electronics Corp 記憶體控制方法、記憶體控制器與記憶體儲存裝置
US9477590B2 (en) * 2011-09-16 2016-10-25 Apple Inc. Weave sequence counter for non-volatile memory systems
TWI454911B (zh) * 2011-10-12 2014-10-01 Phison Electronics Corp 資料寫入方法、記憶體控制器與記憶體儲存裝置
CN103077124B (zh) * 2011-10-25 2015-11-18 群联电子股份有限公司 数据写入方法、存储器控制器与存储器储存装置
US9858086B2 (en) * 2011-10-26 2018-01-02 Hewlett-Packard Development Company, L.P. Load boot data
KR20130046122A (ko) * 2011-10-27 2013-05-07 에스케이하이닉스 주식회사 반도체 메모리 장치 및 그 동작 방법
US9164676B2 (en) * 2011-11-30 2015-10-20 International Business Machines Corporation Storing multi-stream non-linear access patterns in a flash based file-system
US8762627B2 (en) 2011-12-21 2014-06-24 Sandisk Technologies Inc. Memory logical defragmentation during garbage collection
KR101942272B1 (ko) * 2011-12-27 2019-01-28 삼성전자주식회사 비휘발성 메모리의 제어방법, 이를 구현한 비휘발성 메모리 컨트롤러 및 이를 포함하는 메모리 시스템
US9329989B2 (en) * 2011-12-30 2016-05-03 SanDisk Technologies, Inc. System and method for pre-interleaving sequential data
US10102117B2 (en) 2012-01-12 2018-10-16 Sandisk Technologies Llc Systems and methods for cache and storage device coordination
US9251052B2 (en) 2012-01-12 2016-02-02 Intelligent Intellectual Property Holdings 2 Llc Systems and methods for profiling a non-volatile cache having a logical-to-physical translation layer
US9767032B2 (en) 2012-01-12 2017-09-19 Sandisk Technologies Llc Systems and methods for cache endurance
US8782344B2 (en) 2012-01-12 2014-07-15 Fusion-Io, Inc. Systems and methods for managing cache admission
US9251086B2 (en) 2012-01-24 2016-02-02 SanDisk Technologies, Inc. Apparatus, system, and method for managing a cache
US10359972B2 (en) 2012-08-31 2019-07-23 Sandisk Technologies Llc Systems, methods, and interfaces for adaptive persistence
US9116812B2 (en) 2012-01-27 2015-08-25 Intelligent Intellectual Property Holdings 2 Llc Systems and methods for a de-duplication cache
US10019353B2 (en) 2012-03-02 2018-07-10 Longitude Enterprise Flash S.A.R.L. Systems and methods for referencing data on a storage medium
US8898376B2 (en) 2012-06-04 2014-11-25 Fusion-Io, Inc. Apparatus, system, and method for grouping data stored on an array of solid-state storage elements
US9612966B2 (en) 2012-07-03 2017-04-04 Sandisk Technologies Llc Systems, methods and apparatus for a virtual machine cache
US10339056B2 (en) 2012-07-03 2019-07-02 Sandisk Technologies Llc Systems, methods and apparatus for cache transfers
US9699263B1 (en) 2012-08-17 2017-07-04 Sandisk Technologies Llc. Automatic read and write acceleration of data accessed by virtual machines
US9450999B2 (en) 2012-09-21 2016-09-20 Nyse Group, Inc. High performance data streaming
KR20140080216A (ko) 2012-12-20 2014-06-30 에스케이하이닉스 주식회사 반도체 메모리 시스템 및 그의 동작 방법
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
US9465731B2 (en) 2012-12-31 2016-10-11 Sandisk Technologies Llc Multi-layer non-volatile memory system having multiple partitions in a layer
US9223693B2 (en) 2012-12-31 2015-12-29 Sandisk Technologies Inc. Memory system having an unequal number of memory die on different control channels
US9348746B2 (en) 2012-12-31 2016-05-24 Sandisk Technologies Method and system for managing block reclaim operations in a multi-layer memory
US8873284B2 (en) 2012-12-31 2014-10-28 Sandisk Technologies Inc. Method and system for program scheduling in a multi-layer memory
US9734050B2 (en) 2012-12-31 2017-08-15 Sandisk Technologies Llc Method and system for managing background operations in a multi-layer memory
US9454420B1 (en) 2012-12-31 2016-09-27 Sandisk Technologies Llc Method and system of reading threshold voltage equalization
US9336133B2 (en) 2012-12-31 2016-05-10 Sandisk Technologies Inc. Method and system for managing program cycles including maintenance programming operations in a multi-layer memory
US9734911B2 (en) 2012-12-31 2017-08-15 Sandisk Technologies Llc Method and system for asynchronous die operations in a non-volatile memory
US9652376B2 (en) 2013-01-28 2017-05-16 Radian Memory Systems, Inc. Cooperative flash memory control
US10445229B1 (en) * 2013-01-28 2019-10-15 Radian Memory Systems, Inc. Memory controller with at least one address segment defined for which data is striped across flash memory dies, with a common address offset being used to obtain physical addresses for the data in each of the dies
US11249652B1 (en) 2013-01-28 2022-02-15 Radian Memory Systems, Inc. Maintenance of nonvolatile memory on host selected namespaces by a common memory controller
US9870830B1 (en) 2013-03-14 2018-01-16 Sandisk Technologies Llc Optimal multilevel sensing for reading data from a storage medium
US9842053B2 (en) 2013-03-15 2017-12-12 Sandisk Technologies Llc Systems and methods for persistent cache logging
US9465732B2 (en) 2013-03-15 2016-10-11 Sandisk Technologies Llc Binning of blocks for dynamic linking
US20140297921A1 (en) * 2013-03-26 2014-10-02 Skymedi Corporation Method of Partitioning Physical Block and Memory System Thereof
US9524235B1 (en) 2013-07-25 2016-12-20 Sandisk Technologies Llc Local hash value generation in non-volatile data storage systems
US9639463B1 (en) 2013-08-26 2017-05-02 Sandisk Technologies Llc Heuristic aware garbage collection scheme in storage systems
US9478249B2 (en) * 2013-08-30 2016-10-25 Seagate Technology Llc Cache data management for program execution
US9202533B2 (en) * 2013-10-09 2015-12-01 Kabushiki Kaisha Toshiba Nonvolatile semiconductor memory device changing the number of selected bits and/or the number of selected bays at data write operation
US10019352B2 (en) 2013-10-18 2018-07-10 Sandisk Technologies Llc Systems and methods for adaptive reserve storage
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
US9703816B2 (en) 2013-11-19 2017-07-11 Sandisk Technologies Llc Method and system for forward reference logging in a persistent datastore
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
US10152408B2 (en) 2014-02-19 2018-12-11 Rambus Inc. Memory system with activate-leveling method
US9666244B2 (en) 2014-03-01 2017-05-30 Fusion-Io, Inc. Dividing a storage procedure
US9703636B2 (en) 2014-03-01 2017-07-11 Sandisk Technologies Llc Firmware reversion trigger and control
US9678797B2 (en) 2014-03-10 2017-06-13 Microsoft Technology Licensing, Llc Dynamic resource management for multi-process applications
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
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
US9582205B2 (en) * 2014-04-17 2017-02-28 Sandisk Technologies Llc Protection scheme with dual programming of a memory system
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
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
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
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
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
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
US9652381B2 (en) 2014-06-19 2017-05-16 Sandisk Technologies Llc Sub-block garbage collection
US9652415B2 (en) 2014-07-09 2017-05-16 Sandisk Technologies Llc Atomic non-volatile memory data transfer
US9904621B2 (en) 2014-07-15 2018-02-27 Sandisk Technologies Llc Methods and systems for flash buffer sizing
US9645744B2 (en) 2014-07-22 2017-05-09 Sandisk Technologies Llc Suspending and resuming non-volatile memory operations
US9443601B2 (en) 2014-09-08 2016-09-13 Sandisk Technologies Llc Holdup capacitor energy harvesting
US9753649B2 (en) 2014-10-27 2017-09-05 Sandisk Technologies Llc Tracking intermix of writes and un-map commands across power cycles
US9952978B2 (en) 2014-10-27 2018-04-24 Sandisk Technologies, Llc Method for improving mixed random performance in low queue depth workloads
US9824007B2 (en) 2014-11-21 2017-11-21 Sandisk Technologies Llc Data integrity enhancement to protect against returning old versions of data
US9817752B2 (en) 2014-11-21 2017-11-14 Sandisk Technologies Llc Data integrity enhancement to protect against returning old versions of data
US9933950B2 (en) 2015-01-16 2018-04-03 Sandisk Technologies Llc Storage operation interrupt
US9772796B2 (en) 2015-04-09 2017-09-26 Sandisk Technologies Llc Multi-package segmented data transfer protocol for sending sub-request to multiple memory portions of solid-state drive using a single relative memory address
US10372529B2 (en) 2015-04-20 2019-08-06 Sandisk Technologies Llc Iterative soft information correction and decoding
US9778878B2 (en) * 2015-04-22 2017-10-03 Sandisk Technologies Llc Method and system for limiting write command execution
US10009438B2 (en) 2015-05-20 2018-06-26 Sandisk Technologies Llc Transaction log acceleration
US9870149B2 (en) 2015-07-08 2018-01-16 Sandisk Technologies Llc Scheduling operations in non-volatile memory devices using preference values
US9626312B2 (en) 2015-07-17 2017-04-18 Sandisk Technologies Llc Storage region mapping for a data storage device
US9889932B2 (en) 2015-07-18 2018-02-13 Tata Consultancy Services Limited Methods and systems for landing of unmanned aerial vehicle
US9715939B2 (en) 2015-08-10 2017-07-25 Sandisk Technologies Llc Low read data storage management
US9875049B2 (en) * 2015-08-24 2018-01-23 Sandisk Technologies Llc Memory system and method for reducing peak current consumption
US10133490B2 (en) 2015-10-30 2018-11-20 Sandisk Technologies Llc System and method for managing extended maintenance scheduling in a non-volatile memory
US10120613B2 (en) 2015-10-30 2018-11-06 Sandisk Technologies Llc System and method for rescheduling host and maintenance operations in a non-volatile memory
US10042553B2 (en) 2015-10-30 2018-08-07 Sandisk Technologies Llc Method and system for programming a multi-layer non-volatile memory having a single fold data path
US9778855B2 (en) 2015-10-30 2017-10-03 Sandisk Technologies Llc System and method for precision interleaving of data writes in a non-volatile memory
US10228990B2 (en) 2015-11-12 2019-03-12 Sandisk Technologies Llc Variable-term error metrics adjustment
US10126970B2 (en) 2015-12-11 2018-11-13 Sandisk Technologies Llc Paired metablocks in non-volatile storage device
US9837146B2 (en) 2016-01-08 2017-12-05 Sandisk Technologies Llc Memory system temperature management
US10732856B2 (en) 2016-03-03 2020-08-04 Sandisk Technologies Llc Erase health metric to rank memory portions
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
US10019198B2 (en) 2016-04-01 2018-07-10 Intel Corporation Method and apparatus for processing sequential writes to portions of an addressable unit
US10481830B2 (en) 2016-07-25 2019-11-19 Sandisk Technologies Llc Selectively throttling host reads for read disturbs in non-volatile memory system
KR102620562B1 (ko) 2016-08-04 2024-01-03 삼성전자주식회사 비휘발성 메모리 장치
US11017838B2 (en) 2016-08-04 2021-05-25 Samsung Electronics Co., Ltd. Nonvolatile memory devices
CN107818118B (zh) * 2016-09-14 2019-04-30 北京百度网讯科技有限公司 数据存储方法和装置
CN107273304A (zh) * 2017-05-24 2017-10-20 记忆科技(深圳)有限公司 一种提高固态硬盘顺序读性能的方法及固态硬盘
US10497447B2 (en) * 2017-06-29 2019-12-03 SK Hynix Inc. Memory device capable of supporting multiple read operations
TWI645288B (zh) 2017-07-04 2018-12-21 慧榮科技股份有限公司 資料儲存裝置以及其操作方法
KR20190006680A (ko) * 2017-07-11 2019-01-21 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
US10261914B2 (en) 2017-08-25 2019-04-16 Micron Technology, Inc. Methods of memory address verification and memory devices employing the same
US11086790B2 (en) 2017-08-25 2021-08-10 Micron Technology, Inc. Methods of memory address verification and memory devices employing the same
KR20190031683A (ko) * 2017-09-18 2019-03-27 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
US10908832B2 (en) * 2017-10-31 2021-02-02 Micron Technology, Inc. Common pool management
US11289137B2 (en) * 2017-11-16 2022-03-29 Micron Technology, Inc. Multi-port storage-class memory interface
US10977182B2 (en) * 2017-12-01 2021-04-13 Micron Technology, Inc. Logical block mapping based on an offset
US11436154B2 (en) 2017-12-01 2022-09-06 Micron Technology, Inc. Logical block mapping based on an offset
JP2020047348A (ja) * 2018-09-19 2020-03-26 キオクシア株式会社 半導体記憶装置及びその制御方法
KR20200106682A (ko) * 2019-03-05 2020-09-15 에스케이하이닉스 주식회사 데이터 처리 시스템 및 그것의 동작방법
US20210055878A1 (en) * 2019-08-20 2021-02-25 Micron Technology, Inc. Data compaction within the same plane of a memory component
US11150839B2 (en) 2019-12-19 2021-10-19 Western Digital Technologies, Inc. Host and method for interleaving data in a storage system for enhanced quality of service
US11221950B2 (en) * 2019-12-19 2022-01-11 Western Digital Technologies, Inc. Storage system and method for interleaving data for enhanced quality of service
US11157416B2 (en) * 2020-02-27 2021-10-26 Micron Technology, Inc. Firmware loading for a memory controller
US11379117B2 (en) 2020-06-19 2022-07-05 Western Digital Technologies, Inc. Storage system and method for using host-assisted variable zone speed grade modes to minimize overprovisioning
US11456050B2 (en) * 2021-02-24 2022-09-27 Western Digital Technologies, Inc. Relinking scheme in sub-block mode
US11681471B2 (en) * 2021-04-07 2023-06-20 EMC IP Holding Company LLC Bypassing of tier-1 storage in a streaming data storage system
US11556416B2 (en) 2021-05-05 2023-01-17 Apple Inc. Controlling memory readout reliability and throughput by adjusting distance between read thresholds
CN113420083B (zh) * 2021-06-02 2024-03-19 湖南大学 一种具有可拓展分布式账本的异构并行区块链结构的系统
US11847342B2 (en) 2021-07-28 2023-12-19 Apple Inc. Efficient transfer of hard data and confidence levels in reading a nonvolatile memory
US11842062B2 (en) 2022-02-09 2023-12-12 Western Digital Technologies, Inc. Method of handling irregular MetaBlock wear leveling and UGSD boot time improvement
CN116149571A (zh) * 2023-02-24 2023-05-23 合肥兆芯电子有限公司 数据写入方法、存储器存储装置及存储器控制电路单元

Family Cites Families (74)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5043940A (en) 1988-06-08 1991-08-27 Eliyahou Harari Flash EEPROM memory systems having multistate storage cells
US5095344A (en) 1988-06-08 1992-03-10 Eliyahou Harari Highly compact eprom and flash eeprom devices
US5070032A (en) 1989-03-15 1991-12-03 Sundisk Corporation Method of making dense flash eeprom semiconductor memory structures
US5172338B1 (en) 1989-04-13 1997-07-08 Sandisk Corp Multi-state eeprom read and write circuits and techniques
IL96808A (en) * 1990-04-18 1996-03-31 Rambus Inc Introductory / Origin Circuit Agreed Using High-Performance Brokerage
US5343063A (en) 1990-12-18 1994-08-30 Sundisk Corporation Dense vertical programmable read only memory cell structure and processes for making them
JP2618149B2 (ja) 1991-04-22 1997-06-11 インターナショナル・ビジネス・マシーンズ・コーポレイション キャッシュ内のデータ記憶スペースを管理する方法及びキャッシュ内でページ置換を行う装置
US5313421A (en) 1992-01-14 1994-05-17 Sundisk Corporation EEPROM with split gate source side injection
US6222762B1 (en) 1992-01-14 2001-04-24 Sandisk Corporation Multi-state memory
JPH05233426A (ja) 1992-02-20 1993-09-10 Fujitsu Ltd フラッシュ・メモリ使用方法
US5341489A (en) 1992-04-14 1994-08-23 Eastman Kodak Company Memory card with programmable interleaving
JP3299564B2 (ja) * 1992-05-11 2002-07-08 松下電器産業株式会社 メモリ装置
US5315541A (en) 1992-07-24 1994-05-24 Sundisk Corporation Segmented column memory array
JP3105092B2 (ja) * 1992-10-06 2000-10-30 株式会社東芝 半導体メモリ装置
US5341330A (en) 1992-10-30 1994-08-23 Intel Corporation Method for writing to a flash memory array during erase suspend intervals
US5649200A (en) 1993-01-08 1997-07-15 Atria Software, Inc. Dynamic rule-based version control system
JP2856621B2 (ja) 1993-02-24 1999-02-10 インターナショナル・ビジネス・マシーンズ・コーポレイション 一括消去型不揮発性メモリおよびそれを用いる半導体ディスク装置
US5404485A (en) 1993-03-08 1995-04-04 M-Systems Flash Disk Pioneers Ltd. Flash file system
JPH06266596A (ja) 1993-03-11 1994-09-22 Hitachi Ltd フラッシュメモリファイル記憶装置および情報処理装置
US5519843A (en) 1993-03-15 1996-05-21 M-Systems Flash memory system providing both BIOS and user storage capability
US5479638A (en) 1993-03-26 1995-12-26 Cirrus Logic, Inc. Flash memory mass storage architecture incorporation wear leveling technique
US5485595A (en) 1993-03-26 1996-01-16 Cirrus Logic, Inc. Flash memory mass storage architecture incorporating wear leveling technique without using cam cells
US5555204A (en) 1993-06-29 1996-09-10 Kabushiki Kaisha Toshiba Non-volatile semiconductor memory device
KR0169267B1 (ko) 1993-09-21 1999-02-01 사토 후미오 불휘발성 반도체 기억장치
JP3215237B2 (ja) 1993-10-01 2001-10-02 富士通株式会社 記憶装置および記憶装置の書き込み/消去方法
US5661053A (en) 1994-05-25 1997-08-26 Sandisk Corporation Method of making dense flash EEPROM cell array and peripheral supporting circuits formed in deposited field oxide with the use of spacers
US5541886A (en) * 1994-12-27 1996-07-30 Intel Corporation Method and apparatus for storing control information in multi-bit non-volatile memory arrays
JPH08263361A (ja) 1995-03-23 1996-10-11 Mitsubishi Electric Corp フラッシュメモリカード
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
US6978342B1 (en) 1995-07-31 2005-12-20 Lexar Media, Inc. Moving sectors within a block of information in a flash memory mass storage architecture
US5838614A (en) 1995-07-31 1998-11-17 Lexar Microsystems, Inc. Identification and verification of a sector within a block of mass storage flash memory
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
FR2742893B1 (fr) 1995-12-20 1998-01-16 Schlumberger Ind Sa Procede d'inscription d'une donnee dans une memoire reinscriptible
US5903495A (en) 1996-03-18 1999-05-11 Kabushiki Kaisha Toshiba Semiconductor device and memory system
US5896393A (en) 1996-05-23 1999-04-20 Advanced Micro Devices, Inc. Simplified file management scheme for flash memory
US5798968A (en) 1996-09-24 1998-08-25 Sandisk Corporation Plane decode/virtual sector architecture
US6047352A (en) * 1996-10-29 2000-04-04 Micron Technology, Inc. Memory system, method and predecoding circuit operable in different modes for selectively accessing multiple blocks of memory cells for simultaneous writing or erasure
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 半導体記憶装置
US6122195A (en) 1997-03-31 2000-09-19 Lexar Media, Inc. Method and apparatus for decreasing block write operation times performed on nonvolatile memory
US6034897A (en) 1999-04-01 2000-03-07 Lexar Media, Inc. Space management for managing high capacity 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
US5930167A (en) 1997-07-30 1999-07-27 Sandisk Corporation Multi-state non-volatile flash memory capable of being its own two state write cache
JP3588231B2 (ja) 1997-08-04 2004-11-10 東京エレクトロンデバイス株式会社 データ処理システム及びブロック消去型記憶媒体
JP3119214B2 (ja) 1997-09-30 2000-12-18 ソニー株式会社 記憶装置、データ処理システム並びにデータの書き込み及び読み出し方法
JP2914360B2 (ja) 1997-09-30 1999-06-28 ソニー株式会社 外部記憶装置及びデータ処理方法
US6040997A (en) 1998-03-25 2000-03-21 Lexar Media, Inc. Flash memory leveling architecture having no external latch
JP2000122923A (ja) * 1998-07-13 2000-04-28 Sony Corp 記録装置および記録方法、再生装置および再生方法、記録媒体、並びにプログラム記録媒体
JP4046877B2 (ja) 1998-12-14 2008-02-13 株式会社ルネサステクノロジ 一括消去型不揮発性メモリおよび携帯電話
JP2000285017A (ja) * 1999-03-31 2000-10-13 Seiko Epson Corp 記憶装置
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
KR100618298B1 (ko) * 1999-07-28 2006-09-01 소니 가부시끼 가이샤 기록 시스템, 데이터 기록 장치, 메모리 장치 및 데이터기록 방법
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
US6775423B2 (en) 2000-05-03 2004-08-10 Microsoft Corporation Systems and methods for incrementally updating an image in flash memory
US6721843B1 (en) 2000-07-07 2004-04-13 Lexar Media, Inc. Flash memory architecture implementing simultaneously programmable multiple flash memory banks that are host compatible
US6567307B1 (en) 2000-07-21 2003-05-20 Lexar Media, Inc. Block management for mass storage
US6834331B1 (en) 2000-10-24 2004-12-21 Starfish Software, Inc. System and method for improving flash memory data integrity
US7062630B2 (en) * 2000-10-26 2006-06-13 Matsushita Electric Industrial Co., Ltd. Storing device for writing data onto a plurality of installed storing mediums, storing control method for the storing device, and program thereof
JP3992960B2 (ja) * 2000-10-26 2007-10-17 松下電器産業株式会社 記録装置及びプログラム
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
JP4256600B2 (ja) * 2001-06-19 2009-04-22 Tdk株式会社 メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム及びフラッシュメモリの制御方法
US6522580B2 (en) 2001-06-27 2003-02-18 Sandisk Corporation Operating techniques for reducing effects of coupling between storage elements of a non-volatile memory operated in multiple data states
US6456528B1 (en) 2001-09-17 2002-09-24 Sandisk Corporation Selective operation of a multi-state non-volatile memory system in a binary mode
US6925007B2 (en) 2001-10-31 2005-08-02 Sandisk Corporation Multi-state non-volatile integrated circuit memory systems that employ dielectric storage elements
JP3967121B2 (ja) 2001-12-11 2007-08-29 株式会社ルネサステクノロジ ファイルシステム、ファイルシステム制御方法およびファイルシステムを制御するためのプログラム
US7328301B2 (en) 2003-04-07 2008-02-05 Intel Corporation Dynamically mapping block-alterable memories
US7107388B2 (en) 2003-04-25 2006-09-12 Intel Corporation Method for read once memory
US7631138B2 (en) 2003-12-30 2009-12-08 Sandisk Corporation Adaptive mode switching of flash memory address mapping based on host usage characteristics
US8504798B2 (en) 2003-12-30 2013-08-06 Sandisk Technologies Inc. Management of non-volatile memory systems having large erase blocks

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8417872B2 (en) 2008-01-24 2013-04-09 Samsung Electronics Co., Ltd. Write and merge methods in memory card systems for reducing the number of page copies
US8332569B2 (en) 2009-08-06 2012-12-11 Samsung Electronics Co., Ltd. Nonvolatile memory system using data interleaving scheme
KR20130116110A (ko) * 2012-04-13 2013-10-23 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
US8904095B2 (en) 2012-04-13 2014-12-02 SK Hynix Inc. Data storage device and operating method thereof
US9484104B2 (en) 2014-03-04 2016-11-01 Samsung Electronics Co., Ltd. Nonvolatile memory system with block managing unit and method of operating the same
KR20180003712A (ko) * 2016-06-30 2018-01-10 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
KR20190022603A (ko) * 2019-02-26 2019-03-06 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법

Also Published As

Publication number Publication date
EP1700221B1 (en) 2012-04-18
US20100049908A1 (en) 2010-02-25
US7631138B2 (en) 2009-12-08
CN1918552B (zh) 2012-05-30
ATE554448T1 (de) 2012-05-15
CN1918552A (zh) 2007-02-21
TWI303365B (en) 2008-11-21
TW200535608A (en) 2005-11-01
WO2005066794A3 (en) 2005-11-10
WO2005066794A2 (en) 2005-07-21
KR101014599B1 (ko) 2011-02-16
JP5001011B2 (ja) 2012-08-15
EP1700221A2 (en) 2006-09-13
US20050144361A1 (en) 2005-06-30
US8301826B2 (en) 2012-10-30
JP2007517320A (ja) 2007-06-28

Similar Documents

Publication Publication Date Title
KR101014599B1 (ko) 호스트 이용 특징 기반의 플래시 메모리 어드레스 매핑의적응형 모드 스위칭
US8117380B2 (en) Management of non-volatile memory systems having large erase blocks
US8296498B2 (en) Method and system for virtual fast access non-volatile RAM
JP4787266B2 (ja) スクラッチパッドブロック
US7441067B2 (en) Cyclic flash memory wear leveling
EP1410399B1 (en) Method and apparatus for decreasing block write operation times performed on nonvolatile memory
US7433993B2 (en) Adaptive metablocks
EP2112599B1 (en) Scheduling of housekeeping operations in flash memory systems
KR101343237B1 (ko) 메모리 블록 선택
US20060161724A1 (en) Scheduling of housekeeping operations in flash memory systems
US20080294814A1 (en) Flash Memory System with Management of Housekeeping Operations
US20080294813A1 (en) Managing Housekeeping Operations in Flash Memory
KR20070102485A (ko) 클러스터 자동-정렬
WO2004059651A2 (en) Nonvolatile memory unit with specific cache
WO2010144587A2 (en) Memory system having persistent garbage collection
WO2008147752A1 (en) Managing housekeeping operations in flash memory
EP2264602A1 (en) Memory device for managing the recovery of a non volatile memory

Legal Events

Date Code Title Description
A201 Request for examination
A302 Request for accelerated examination
E902 Notification of reason for 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: 20140117

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20150119

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20160119

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20170119

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20180118

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20190116

Year of fee payment: 9