KR20090117934A - 메모리 시스템 - Google Patents

메모리 시스템 Download PDF

Info

Publication number
KR20090117934A
KR20090117934A KR1020097018120A KR20097018120A KR20090117934A KR 20090117934 A KR20090117934 A KR 20090117934A KR 1020097018120 A KR1020097018120 A KR 1020097018120A KR 20097018120 A KR20097018120 A KR 20097018120A KR 20090117934 A KR20090117934 A KR 20090117934A
Authority
KR
South Korea
Prior art keywords
data
memory
area
control circuit
flash
Prior art date
Application number
KR1020097018120A
Other languages
English (en)
Other versions
KR101122485B1 (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 KR20090117934A publication Critical patent/KR20090117934A/ko
Application granted granted Critical
Publication of KR101122485B1 publication Critical patent/KR101122485B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1012Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using codes or arrangements adapted for a specific type of error
    • G06F11/1016Error in accessing a memory location, i.e. addressing error
    • 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
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • G11C16/102External programming circuits, e.g. EPROM programmers; In-circuit programming or reprogramming; EPROM emulators
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7203Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7209Validity control, e.g. using flags, time stamps or sequence numbers

Landscapes

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

Abstract

플로팅 게이트들을 가지며, 데이터 아이템들이 전기적으로 소거 가능하고 기록 가능한 복수의 메모리 셀들을 갖는 플래시-EEPROM 불휘발성 메모리(11), 상기 플래시-EEPROM 불휘발성 메모리(11)의 데이터를 일시적으로 기억하는 캐시 메모리(13), 상기 플래시-EEPROM 불휘발성 메모리(11)와 상기 캐시 메모리(13)를 제어하는 제어 회로(12, 14), 및 호스트와 통신하는 인터페이스 회로(16)를 구비하는 메모리 시스템(10)으로서, 상기 제어 회로는, 상기 플래시-EEPROM 불휘발성 메모리의 결정될 원하는 목표 영역으로부터 데이터를 판독하여, 판독된 데이터의 데이터 "0"의 카운트 수가 미리 설정된 기준 카운트 수에 도달했는 지의 여부를 판정 조건으로서 사용함으로써, 소거된 영역을 검지하여 기록된 영역/미기록된 영역을 판정하는 기능을 하는 것인 메모리 시스템(10)이 개시된다.

Description

메모리 시스템{MEMORY SYSTEM}
본 발명은, 플래시-EEPROM(flash-EEPROM) 불휘발성 메모리를 이용한 메모리 시스템에 관한 것으로, 보다 자세하게는, 오름순 프로그래밍 제약을 갖는 NAND 플래시 메모리를 이용하며, 예컨대 하드 디스크 장치 대신 사용되는 메모리 시스템에 관한 것이다.
현재 반도체 메모리는, 대형 컴퓨터의 주 기억 장치, 퍼스널 컴퓨터, 가전 제품, 휴대 전화 등을 포함하여, 각종 장치에서 이용되고 있다. 시장에서 현재 지배적으로 사용되고 있는 메모리는 NAND-플래시 메모리로 대표되는 플래시-EEPROM 불휘발성 메모리이다. 이 플래시-EEPROM 불휘발성 메모리는, 전원이 꺼져도 데이터를 유지하도록 구성되고, 고밀도의 집적화에 적합한 구조를 가지므로, 휴대 전화와 디지털 카메라와 같은 각종 정보 기기에 현재 이용되고 있다. 즉, 플래시-EEPROM 불휘발성 메모리는, 디지털 카메라, 디지털 비디오 장치, 휴대용 퍼스널 컴퓨터, 및 MP3 음악 기기용 기억 매체, 디지털 텔레비젼 리시버에서의 화상, 동화상, 음성, 게임의 정보 아이템을 기억하는 기억 매체, 또는 각종 메모리 카드(SD 카드, MMC 카드, MS 카드, CF 카드 등)로서 널리 이용되고 있다. 또한, 이것은, 퍼스널 컴퓨터의 기억 매체로서 USB 대응의 메모리(USB 메모리)와 휴대 전화의 메 모리로서 널리 이용되고 있다.
플래시-EEPROM 불휘발성 메모리는, 주로 NOR 메모리(NOR 플래시 메모리)와 NAND 메모리(NAND 플래시 메모리)로 나뉜다. NOR 플래시 메모리는, 판독 수/판독 동작이 약 1013회여서, 휴대 기기의 명령 코드들의 기억 매체로서 사용하는 데 적합하다는 특성을 갖는다. 그러나, 기록의 실효 대역폭이 작기 때문에, 파일 기록에는 적합하지 않다.
반면, NAND 플래시 메모리는, 액세스 시간이 약 25μs인 긴 판독 특성을 갖지만, NOR 플래시 메모리에 비교해서 보다 고밀도로 직집화될 수 있다. 또한, 버스트 판독이 수행될 수 있고, 실효 대역폭이 크다. 기록 특성에 관해서는, 프로그램 시간이 200μs이고, 소거 시간이 1ms로, 길다. 그러나, 동시에 프로그램되거나 소거될 수 있는 비트들 수가 많으므로, 버스트 동작으로 기록 데이터가 취득될 수 있고, 다수의 비트들이 페이지들 단위로 동시에 프로그램될 수 있으므로, 실효 대역폭이 커진다.
NAND 플래시 메모리는, 고밀도로 집적화되어 대 기억 용량을 달성할 수 있으므로, 최근 하드 디스크 대신으로 그 사용이 고려되어 왔다. 그러나, 사용에 일부 제약이 있다. 우선, 기록/소거(프로그래밍/소거)로 인한 데이터 열화가 발생하므로, 기록 가능/소거 가능 동작들 수에 제약들이 있다. 즉, NAND 플래시 메모리의 프로그램 동작에서, 기판에 대하여 메모리 셀 트랜지스터의 게이트에 고전압을 인가함으로써 플로팅 게이트에 전자들이 주입된다. 상기 동작들이 반복적으로 수행 되면, 메모리 셀 트랜지스터의 플로팅 게이트 주위의 산화막이 열화되어, 데이터가 파괴된다. 현재 사용되는 NAND 플래시 메모리에서, 기록 가능/소거 가능 동작들 수는 약 105회로, 다른 형태들의 불휘발성 메모리의 것과 비교해서 상당히 적다. 또한, 금후의 프로세싱의 미세화와 셀들의 다치-코딩(multivalue-coding)에 따라, 기록 가능/소거 가능 동작들 수가 더욱 감소될 전망이다. NAND 플래시 메모리가 메모리 카드 또는 USB 메모리로서 사용되면, 약 105회 액세스하기 위해서는 비교적 긴 시간이 걸려, NAND 플래시 메모리가 현실적으로 사용될 수 있다. 그러나, NAND 플래시 메모리가 시스템에 탑재되어, 하드 디스크 대신 사용되면, 비교적 짧은 기간에 약 105회 액세스가 발생할 것이다.
또한, NAND 플래시 메모리에는 재기록 금지의 제약이 부과된다. 즉, NAND 플래시 메모리의 프로그래밍은, 플로팅 게이트에 전자들이 주입되는 방향(데이터 "1"-> 데이터 "0"의 방향: "0" 기록)으로만 제어될 수 있고, 소거는, 전자들이 추출될 때(데이터 "0" -> 데이터 "1"의 방향; "1" 기록) 수행되어야 한다. 이 때, 일반적으로, 프로그래밍은 페이지 단위들로 수행되나, 소거는 수 페이지들로 구성되는 블록 단위들로만 수행될 수 있다. 따라서, 프로그래밍된 페이지의 데이터가 변경될 때, 변경될 데이터의 페이지를 포함하는 블록의 데이터의 전체량을 다른 영역에 일시적으로 기억하고, 이 데이터를 소거한 후, 프로그램 동작을 다시 수행해야 한다. 실제는, 재기록 가능/소거 가능 동작들 수가 제한되므로, 다른 소거된 영역에 재기록될 페이지를 기록하고, 또한 이것을 논리-물리 변환 테이블을 이용하 여 관리함으로써, 프로그램/소거 동작들이 과도하게 수행되는 것이 방지된다.
NAND 플래시 메모리의 또 다른 제약 조건으로서, NAND 플래시 메모리에 페이지 역순 프로그래밍이 금지된다. 예컨대, 블록에서 프로그래밍이 수행될 때, 페이지 어드레스 "0"으로부터 오름순으로 프로그래밍이 수행되어야 하는 제약이 있다.
상기 NAND 플래시 메모리를 이용한 메모리 시스템이 구축되면, 특히 하드 디스크 대신에 사용되는 메모리 시스템이 구축되면, 현재, 데이터 캐시 및 관리 정보 기억용 휘발성 RAM과, 불휘발성 주 기억장치용의 NAND 플래시 메모리로 메모리 시스템이 종종 구성된다. 상기 구성으로, 호스트 측으로부터 메모리 시스템의 순간 차단 대책으로서, 휘발성 메모리 영역의 데이터를 불휘발성 메모리 영역에 기억하기 위한 커맨드(플래시 캐쉬 커맨드)가 빈번하게 발행되기 때문에, 결국 NAND 플래시 메모리에 관리 정보의 갱신분(이하, 관리 로그로 칭한다)을 추가해야 한다.
이러한 메모리 시스템에서, 전원이 온될 때마다, NAND 플래시 메모리에 기록된 관리 로그로부터 최신 정보를 추출하여, 관리 정보를 재구축할 필요가 있다. 이 때, 관리 로그의 기억 영역이 메모리 영역에서 연장되는 메모리 영역의 부분, 즉 유효한 정보 기억 영역의 범위를 나타내는 메모리 영역에서의 관리 로그의 기억 영역의 경계를 파악해야 한다.
또한, 최근, 불휘발성 RAM의 대용량과, NAND 플래시 메모리의 각종 제약 조건들에 기초하여, 데이터 캐시 및 관리 정보 기억용 불휘발성 RAM(예컨대, FeRAM, MRAM 등)과 NAND 플래시 메모리가 조합되는 구성이 제안되어 있다. 이 구성으로, 빈번하게 불휘발성 RAM에 재기록되는 관리 정보를 배치함으로써, 상술된 바와 같은 관리 로그에 관련된 문제점이 회피될 수 있다. 그러나, NAND 플래시 메모리에 데이터가 기록되고 있는 동안 메모리 시스템이 순간 차단될 때, 재기록되었던 데이터, 즉 블록에 프로그램되었던 페이지들 중 하나를 파악해야 한다.
일본 특허 출원 공개 공보 제2004-310268호의 "플래시 메모리 내장의 반도체 장치, 플래시 메모리의 제어 방법 및 그 프로그래밍"에서, 플래시 메모리 소거 단위의 블록에 임의의 데이터 길이를 갖는 최신 데이터의 기억장치가 추가적으로 제공되어 있는 것이 개시되어 있다. 구체예로서, 각 소거 블록 단위에 데이터 재기록이 수행될 때, 블록의 선두 어드레스로부터 최종 어드레스까지 어드레스들이 워드들 단위들로 변경되면서, 기억 데이터가 검색되고, 검색된 데이터 아이템들이 소거 상태를 나타내는 논리 레벨 "1"에 모두 설정되면, 선두 어드레스로부터 순차적으로 최신 데이터 아이템들이 기록된다. 반면, 검색된 데이터가 비소거 상태에 설정되면, 이 어드레스 값에 미리 설정된 수 값을 가산하여 구한 도출된 어드레스 값이 최종 어드레스 값보다 작으면, 어드레스 값으로부터 최신 데이터가 기록된다. 반면, 가산으로 구한 도출된 어드레스 값이 최종 어드레스 값보다 크면, 블록의 데이터가 소거되고, 선두 어드레스로부터 최신 데이터가 기록된다.
또한, 일본 특허 출원 공개 공보 제2005-353171호의 "반도체 기억 장치 및 그 블랭크 페이지 검색 방법"에는, 페이지 내의 데이터를 바이트들 단위들로 판독하지 않고, 전체 페이지가 데이터 초기 상태(소거 상태)에 설정된 블랭크 페이지를 고속으로 검출하는 방법이 개시되어 있다. 구체예로서, 메모리 셀로부터의 데이터 판독 시에 비트선의 전위가 감지되어, 선택된 메모리 셀의 데이터가 결정되고, 결 정된 데이터가 데이터 버퍼에 유지된다. 다음, 모든 데이터 버퍼들이 "0" 데이터를 유지하는 지의 여부, 또는 모든 데이터 버퍼들이 "1" 데이터를 유지하는 지의 여부 모두가 검출된다.
일본 특허 출원 공개 공보 제2004-310268호 및 일본 특허 출원 공개 공보 제2005-353171호는, NAND 플래시 메모리에 프로세스를 수행함으로써 본 문제점을 해결하기 위한 방법을 제안한다.
(발명의 개시)
본 발명은 상술된 종래 문제점들을 해결하고자 이루어진 것으로, 본 발명의 목적은, 플래시-EEPROM 불휘발성 메모리에 데이터가 기억될 때, 소거된 페이지를 검지함으로써, 데이터 기억 영역(기록 데이터의 유효 영역)과 데이터 미기억 영역(기록 데이터의 무효 영역) 간의 경계를 검지할 수 있는 메모리 시스템을 제공하는 것이다.
본 발명의 일 태양에 따르면, 플로팅 게이트들을 가지며, 데이터 아이템들이 전기적으로 소거 가능하고 기록 가능한 것인 복수의 메모리 셀들을 갖는 플래시- EEPROM 불휘발성 메모리, 플래시-EEPROM 불휘발성 메모리의 데이터를 일시 기억하는 캐시 메모리, 플래시-EEPROM 불휘발성 메모리와 캐시 메모리를 제어하는 제어 회로, 및 호스트와 통신하는 인터페이스 회로를 구비하는 메모리 시스템으로서,
상기 제어 회로는, 플래시-EEPROM 불휘발성 메모리의 결정될 원하는 목표 영역으로부터 데이터를 판독하고, 판독된 데이터의 데이터 "0"의 카운트 수가 미리 설정된 기준 카운트 수에 도달했는 지를 판정 조건으로서 사용함으로써, 소거된 영역을 검지하여 기록된 영역/미기록된 영역을 판정하는 기능을 갖는다.
도 1은 본 발명의 제1 실시예에 따른 메모리 시스템의 블록도이다.
도 2는 도 1의 메모리 시스템에서의 프로세싱 단계들의 흐름도의 일 예를 도시하는 도면이다.
도 3은 도 1의 메모리 시스템의 구성의 일부 및 데이터 프로세싱 동작의 일 예를 도시하는 도면이다.
도 4는 본 발명의 제2 실시예의 메모리 시스템에서의 프로세싱 단계들의 흐름도의 일 예를 도시하는 도면이다.
도 5는 본 발명의 제3 실시예의 메모리 시스템에서의 프로세싱 단계들의 흐름도의 일 예를 도시하는 도면이다.
도 6는 제3 실시예의 메모리 시스템의 구성의 일부 및 데이터 프로세싱 동작의 일 예를 도시하는 도면이다.
도 7은 본 발명의 제4 실시예의 메모리 시스템에서의 프로세싱 단계들의 흐름도의 일 예를 도시한다.
도 8은 제4 실시예의 메모리 시스템의 구성의 일부 및 데이터 프로세싱 동작의 일 예를 도시한다.
도 9는 본 발명의 제5 실시예의 메모리 시스템에서의 프로세싱 단계들의 흐름도의 일 예를 도시한다.
도 10은 제5 실시예의 메모리 시스템의 구성의 일부 및 데이터 프로세싱 동작의 일 예를 도시한다.
도 11은 메모리 시스템의 플래시-EEPROM 불휘발성 메모리의 예를 도시한다.
(발명을 실행하기 위한 최선 모드)
이제, 도면을 참조하여 본 발명의 실시예들을 설명한다. 이 설명에서, 도면들 전체에 걸쳐 공통되는 부분에는 공통되는 도면 부호가 부여된다.
<제1 실시예>
도 1은 본 발명의 제1 실시예에 따른 메모리 시스템을 도시하는 블록도이다. 도 2는 도 1의 메모리 시스템의 프로세싱 단계들의 흐름도의 일 예를 도시한다. 도 3은 도 1의 메모리 시스템의 구성의 일부 및 데이터 프로세싱 동작의 일 예를 도시한다.
도 1에 도시된 바와 같이, 메모리 시스템(10)은, 각각이 플로팅 게이트를 가지며, 데이터가 전기적으로 소거되고 기록될 수 있는 복수의 메모리 셀들을 갖는 플래시-EEPROM(electrically erasable and programmable read only memory) 불휘발성 메모리(본 예에서는, NAND 플래시 메모리)(11), 이 NAND 플래시 메모리(11)의 데이터를 일시 기억하는 캐시 메모리(본 예에서는, DRAM(dynamic random access memory))(13), 상기 두 형태의 메모리들을 제어하는 제어 회로(NAND 메모리 컨트롤러(12), DRAM 컨트롤러(14))(17), MPU(micro processor unit)(15), 및 호스트 컴퓨터와 통신하는 인터페이스 회로(IF)(16)를 포함한다. NAND 플래시 메모리는 고밀 도로 직접화되며, 대용량을 가지며, DRAM은 플래시 메모리에 비해 보다 고속의 판독/기록을 가지며, 중용량을 갖는다.
MPU(15)는, 소거된 페이지가 검지되어야 하는 NAND 플래시 메모리(11)의 목표 영역의 정보(선두 어드레스, 전송 페이지들 수)와, 소거된 페이지 검지 모드를 NAND 메모리 컨트롤러(12)에 설정하는 기능을 갖는다.
도 3에 도시된 바와 같이, NAND 메모리 컨트롤러(12)는, 제어 레지스터(31), NAND-IF 제어 모듈(32), 다이렉트 메모리 액세스 컨트롤러(DMAC)(33)를 포함한다. NAND-IF 제어 모듈(32)은 "0" 데이터 카운트 모듈("0" 데이터 카운터)(34), 프로세싱 동작들의 절차를 제어하는 시퀀스 제어 회로(시퀀서)(35) 등을 포함한다.
NAND 메모리 컨트롤러(12)는, NAND 플래시 메모리(11)의 소거된 영역을 판정함으로써 NAND 플래시 메모리(11)의 기록된/미기록된 영역을 판정하는 기능을 갖는다. 본 예에서, NAND 메모리 컨트롤러(12)는, NAND 플래시 메모리(11)의 목표 영역의 선두 어드레스로부터 DRAM(13)으로 데이터 아이템들을 순차 판독하면서, NAND 메모리 컨트롤러(12)의 각 페이지에 대하여 데이터 아이템들 "0"의 수를 카운트하는 기능을 갖는다.
캐시 메모리(13)로서, 휘발성 메모리(DRAM 또는 SRAM 등) 또는 불휘발성 메모리(FeRAM, MRAM, PRAM 또는 RRAM 등)가 사용될 수 있다.
도 1의 메모리 시스템의 프로세스에서, 우선, MPU(15)는, 소거된 페이지가 검지되어야 하는 NAND 플래시 메모리(11)의 목표 영역의 정보(선두 어드레스, 전송 페이지들 수)와, 소거된 페이지 검지 모드(소거 검지 모드)를 NAND 메모리 컨트롤 러(12)에 설정한다. 따라서, NAND 메모리 컨트롤러(12)는 NAND 플래시 메모리(11)에서 목표 영역의 선두 위치로부터 시작하여(페이지 어드레스 "0"으로부터 오름순으로) 데이터 아이템들을 순차 판독하고, 페이지 전송을 시작한다. NAND 플래시 메모리(11)에 페이지 역순 프로그래밍 금지 제약이 설정되므로, NAND 메모리 컨트롤러(12)는 동일한 블록에서 오름순으로 페이지 어드레스 "0"으로부터 시작하여 데이터 아이템들을 판독하며, 즉 데이터가 페이지 어드레스 "0"으로부터 먼저 판독된 후, 데이터가 페이지 어드레스 "1"로부터 판독되고, 데이터가 페이지 어드레스 "2"로부터 판독되는 등 어드레스 순으로 각 어드레스들로부터 데이터 아이템들을 순차적으로 판독한다. 본 예에서, NAND 플래시 컨트롤러(12)는, 데이터가 NAND 플래시 메모리(11)로부터 DRAM(13)으로 전송되고, 각 페이지에 대한 데이터 아이템들 "0"의 수가 NAND 메모리 컨트롤러(12)에서 카운트되도록 제어한다. 이 때, 목표 영역이 기록된 페이지이면, "0" 데이터는 일반적으로 페이지로부터 판독된 데이터 자체와 섞인다. 따라서, NAND 플래시 메모리(11)로부터 판독된 데이터의 페이지 전송시 데이터 아이템들 "0"의 수가 0개인 경우, 소거된 페이지가 검지된 것으로 간주되고, 그 어드레스가 NAND 메모리 컨트롤러(12)의 제어 레지스터(31)에 기억된다. 이 경우, 어떤 어드레스의 페이지가 소거된 페이지인 것으로 검지되면, 그 어드레스 이후의 어드레스들의 페이지들은 페이지 역순 프로그래밍 금지 제약에 기초하여 소거된 페이지들인 것으로 판정될 수 있다. 즉, 기록 데이터의 유효성 및 무효성 간의 경계가 판정될 수 있다. 다시 말하면, 소거된 상태의 각 페이지에 기억된 데이터 아이템들은 모두 "1" 데이터 아이템들이므로, 데이터의 유효성/무효성이 NAND 메모리 컨트롤러(12)에 의하여 판정되어야 하는 영역으로부터 데이터가 판독되고, NAND 메모리 컨트롤러(12)의 각 단위 영역(1페이지)에 대하여 데이터 "0"이 카운트되고, 카운트 수가 0이면 단위 영역은 소거된 페이지인 것이 판정된다. 이 때, NAND 플래시 메모리(11)에 페이지 역순 프로그래밍 금지 제약이 설정되므로, 소거된 페이지가 처음 검지된 어드레스가 유지되고, 다음의 데이터 전송에서 새로운 소거된 페이지가 검지되어도, 새로운 소거된 페이지가 검지되는 페이지 어드레스가, 소거된 페이지가 처음 검지되는 페이지 어드레스에 덮어쓰기되는 것이 방지된다. 상기 검지 동작은 최종 페이지까지 계속하여 수행된다. 다음, 소거된 페이지 검지 결과가 MPU(15)에 인터럽트 등으로 통지된다. 그 결과, MPU(15)는, 제어 레지스터(31)로부터 소거된 페이지 검지의 페이지 어드레스를 취득하여, 유효 데이터의 경계를 파악하고, 관리 정보를 구축한다.
본 실시예에서, 소거된 페이지 검지 모드에서, NAND 플래시 메모리(11)로부터 판독된 데이터가 DRAM(13)에 전송된다고 가정한다. 그러나, 데이터 전송을 요하지 않고 소거된 페이지 어드레스만을 검지하고자 하는 일부 경우도 있으므로, 판독된 데이터가 DRAM(13)에 전송되는 지의 여부를 나타내는 모드 옵션을 추가적으로 제공하는 것이 바람직하다.
상기 프로세스는 또한 NAND 플래시 메모리(11)에 접속된 MPU(15)에 의하여 수행될 수 있다. 그러나, 이 경우, 데이터 아이템들의 비교에 요구되는 시간이 길어지고, 다른 프로세스들에 대한 오버헤드가 되므로, 본 실시예에서는 NAND 메모리 컨트롤러(12)에 프로세스의 기능이 제공된다.
<제2 실시예>
도 4는 본 실시예의 제2 실시예의 메모리 시스템에서의 프로세싱 단계들의 흐름도의 일 예를 도시한다. 이 메모리 시스템은, 전술한 제1 실시예의 메모리 시스템과 비교해서, 소거된 페이지가 검지되어야 하는 목표 영역의 데이터를 DRAM(13)에 전송하면서, 데이터 아이템들 "0"의 수가 카운트될 때, 동일한 블록 내에서 소거된 페이지가 검지되는 경우, 소거된 페이지 검지의 DRAM(13)으로의 전송, 및 NAND 플래시 메모리(11)로부터의 판독을 즉시 중단하는 기능을 시퀀서(35)에 부가한다(도 3).
기록 데이터의 유효성/무효성의 판단은, 소거된 페이지가 검지될 때 행해질 수 있고, 소거된 페이지의 검지후의 데이터는 무효 데이터(소거된 데이터)이기 때문에, DRAM(13)에 데이터를 전송할 필요는 없다. 이 기능에 의해서, 추가적인 데이터 전송 시간이 생략될 수 있어, 시스템에서 요구되는 프로세싱 시간이 단축될 수 있다.
<제3 실시예>
도 5는, 본 발명의 제3 실시예의 메모리 시스템에서의 프로세싱 단계들의 흐름도의 일 예를 도시한다. 도 6은, 제3 실시예의 메모리 시스템의 구성의 일부 및 데이터 프로세싱 동작의 일 예를 도시한다.
제1 또는 제2 실시예의 메모리 시스템에서, 소거된 페이지가 검지되어야 하는 영역의 데이터를 DRAM(13)에 전송하면서, 데이터 "0"의 수가 카운트될 때, 판정 조건으로서 데이터 "0"의 카운트수가 1 이상인 값에 설정된다. NAND 플래시 메모 리에서, 동작 중 기록들 수가 증가함으로써 따르는 셀들의 열화와 데이터의 경년 열화에 대한 대책으로서, 오류 정정(ECC: error check and correction) 회로를 사용하는 것이 일반적으로 행해지고 있다. 이 경우, 소거 프로세스가 수행되어도, 각 소거된 페이지의 일부의 데이터가 "0" 데이터에 설정될 수도 있다.
따라서, 제3 실시예의 메모리 시스템에서, 데이터 "0"의 카운트 수의 판정 임계값을 가변으로 하는 기능이 제공된다. 상기 기능을 실현하기 위한 수단의 일 예로서, 도 6에 도시된 바와 같이, NAND 메모리 컨트롤러(12)의 제어 레지스터(61)에 데이터 "0"의 카운트 수를 설정하는 설정 레지스터(62)가 제공되고, 설정 레지스터(62)의 설정된 값과, 데이터 "0"을 카운트하는 "0" 데이터 카운트 모듈(34)의 카운트 값과 비교함으로써 판정이 행해진다.
따라서, 불량 비트들 수가 이미 알려지면, MPU(15)에 의하여 설정 레지스터(62)에 "0" 카운트 수 설정값을 설정함으로써, 불량 비트를 포함하는 메모리에 대하여 소거된 페이지가 검지될 수 있다.
<제4 실시예>
도 7은 본 발명의 제4 실시예의 메모리 시스템에 있어서의 프로세싱 단계들의 흐름도의 일 예를 도시한다. 도 8은 제4 실시예의 메모리 시스템의 구성의 일부 및 데이터 프로세싱 동작의 일 예를 도시한다.
제1 내지 제3 실시예들의 메모리 시스템에서, 소거된 페이지 검지 조건으로서 데이터 "0"의 카운트수만이 사용된다. 반면, 최근에 NAND 플래시 메모리의 사용시, 데이터에 ECC 코드를 부가하는 것이 절대적으로 필요하다. 또한, NAND 플래 시 메모리에서, 1 페이지에 ECC 코드를 기억하는 데 사용되는 용장 영역이 제공된다. NAND 플래시 메모리에 기록된 데이터에 ECC 코드가 부가되고, 소거된 페이지에는 ECC 코드가 부가되지 않으므로, 자연히 ECC 에러가 발생한다.
따라서, 도 8에 도시된 바와 같이, 제4 실시예의 메모리 시스템에서, NAND 메모리 컨트롤러(12) 내에 ECC 모듈(81)이 제공된다. 다음, NAND 메모리 컨트롤러(12)에 기록된 데이터 아이템들이 모두 "1" 데이터여도, 데이터에 부가될 ECC 코드로서 데이터 "0"를 포함하는 생성 다항식을 선택하여, 소거된 페이지 검지 조건(판정 조건)으로서 데이터 "0"의 카운트 수 외에, ECC 정정 결과도 사용하여 소거되는 페이지를 판정하는 기능이 시퀀서(35)에 제공된다.
다음, NAND 플래시 메모리의 사용의 관점에서 데이터에 ECC 코드가 부가되는 구성에서도, "0" 데이터 카운트 모듈(34)을 사용하여 데이터 "0"의 수를 카운트하여 획득된 카운트 수에 기초한 판정과, 소거된 페이지가 검지되어야 하는 NAND 플래시 메모리(11)의 목표 영역으로부터 판독된 데이터를 DRAM(13)에 전달하면서 ECC 에러의 존재 유무의 판정의 2 단계들로 소거된 페이지 검지 프로세스를 수행함으로써, 소거된 페이지가 정확하게 검지될 수 있다.
<제5 실시예>
도 9는, 본 발명의 제5 실시예의 메모리 시스템에서의 프로세싱 단계들의 흐름도의 일 예를 도시하고, 도 10은 제5 실시예의 메모리 시스템의 구성의 일부 및 데이터 프로세싱 동작의 일 예를 도시한다.
제5 실시예의 메모리 시스템에서, 제4 실시예의 메모리 시스템과 비교해서, 기록 데이터 자체에 식별 번호를 부가하는 기능이 제공된다. 이 기능을 실현하는 수단의 일 예로서, 도 10에 도시된 바와 같이, NAND 메모리 컨트롤러(12) 내에 식별 번호를 체크하는 모듈(식별 번호 체크 모듈)(101)이 제공되고, NAND 플래시 메모리(11)에 데이터가 기록될 때, 복수의 데이터 아이템들 "0"을 포함하는 식별 번호가 제공된다. 관리 정보의 로그의 데이터 사이즈는 제한되지 않기 때문에, 식별 번호를 부가하는 것은 쉽다. 반면, 호스트 측으로부터의 데이터의 데이터 사이즈가 결정되면(예컨대, HDD IF인 ATA의 최소 단위가 512 B), NAND 플래시 메모리(11)의 용장 영역에 식별 번호를 기록하도록 미리 결정된다.
따라서, 기록시 데이터에 부가된 식별 번호와, 소거 검지를 위해 판독 동작이 수행될 때 판독시 데이터에 부가된 식별 번호를 체크하고, 일치시 이 데이터를 유효(기록된) 데이터로, 불일치시 이 데이터를 무효(소거된 페이지) 데이터로서 판정하는 처리를, 전술한 제4 실시예의 검지 조건에 가함으로써, 소거된 페이지가 보다 정확하게 검지될 수 있다.
상술한 바와 같이 기록 데이터 자체에 식별 번호를 기록하는 방법은 제4 실시예에 뿐만 아니라, 제1 내지 제3 실시예들에도 적용될 수 있다.
<제6 실시예>
NAND 플래시 메모리에 페이지 역순 프로그래밍 금지 제약이 설정되어 있으므로, 동일한 블록에서 소거된 페이지로서 검지된 페이지 후의 페이지는 소거된 페이지라고 간주된다. 전술한 각 실시예들의 메모리 시스템에서, 페이지가 소거된 페이지인 지의 여부는 페이지 단위로 독립적으로 판정되지만, 제6 실시예에서는, 복 수의 페이지들 간의 관계에 기초하여 소거된 페이지를 판정하는 기능이 시퀀서(35)에 제공되어 있다.
예컨대, 제1 내지 제5 실시예들의 검지 조건으로 소거된 페이지가 검지된 후, 또한 다음의 2 페이지들이 소거된 페이지들로서 연속적으로 검지되면(즉, 3개의 연속적인 페이지들이 소거된 페이지들이다), 검지된 페이지는 소거된 페이지인 것으로 판정된다. 이 경우, 검지 기준으로서 사용되는 연속하는 페이지들 수(상기 예에서 "3")를 컨트롤러를 사용하여 설정하도록 설계가 행해진다. 그러나, 연속하는 페이지들이 복수 페이지들로 설정되어도, 또한 소거된 페이지가 블록에서 남아있는 하나의 페이지에서 검지된다면, 검지 조건으로서 연속하는 페이지들 수를 무시하는 프로세스가 수행된다.
도 11은, NAND 플래시 메모리로 형성된, 실시예들 각각에 설명된 메모리 시스템의 플래시-EEPROM 불휘발성 메모리(11)의 예를 도시한다. 플래시-EEPROM 불휘발성 메모리(11)는 매트릭스에 배열된 복수의 NAND 셀 유닛들(NU)을 구비한다. NAND 셀 유닛들 각각은 복수의 직렬 접속된 메모리 셀 트랜지스터들(MC)(본 예에서, MC0 내지 MC31)을 구비한다. 행 방향으로 배열된 NAND 셀 유닛들(NU)은 데이터 소거의 최소 단위로서 메모리 블록(BLK)을 구성한다. 본 예에서, 메모리 블록들(BLK0 내지 BLKn)은 행 방향으로 배열된다. 메모리 셀 트랜지스터들(MC) 각각은, 터널 절연막을 통하여 반도체 기판 상에 형성된 플로팅 게이트 전극과, 인터게이트 절연막을 통하여 부동 게이트 전극 상에 적층된 제어 게이트 전극을 갖는다.
각 NAND 셀 유닛(NU)의 일단은 선택 게이트 트랜지스터(ST1)를 통하여 대응 비트선(BL)에 접속되고, 그 타단은 선택 게이트 트랜지스터(ST2)를 통하여 공통 소스선(CELSRC)에 접속된다. 동일한 행의 메모리 셀 트랜지스터들(MC)의 제어 게이트 전극들은 메모리 셀 행 방향으로 연장하고, 공통으로 접속되어 워드선(WL)(본 예에서, WL0 내지 WL31)을 구성한다. 동일한 블록(BLK)에서의 NAND 셀 유닛들(NU)의 선택 게이트 트랜지스터들(ST1)의 제어 게이트 전극들은 메모리 셀 행 방향으로 연장하고, 공통으로 접속되어 선택 게이트선(SGD)을 구성한다. 유사하게, 동일한 블록(BLK)에서의 NAND 셀 유닛들(NU)의 선택 게이트 트랜지스터들(ST2)의 제어 게이트 전극들은 메모리 셀 행 방향으로 연장하고, 공통으로 접속되어 선택 게이트선(SGS)을 구성한다. 워드선들(WL), 선택 게이트선들(SGD), 및 선택 게이트선들(SGS)은 NAND 메모리 컨트롤러(12)로부터 공급된 어드레스 입력들에 따라 구동된다.
대용량으로 형성될 수 있는 플래시-EEPROM 불휘발성 메모리에 데이터가 기억될 때, 소거된 페이지를 검지함으로써, 데이터 기억 영역과 데이터 미기억 영역 간의 경계(기록 데이터의 유효 영역과 무효 영역 간의 경계)를 검지할 수 있으므로, 각종 제약 조건들로 제약되는 NAND 플래시 메모리에 본 개시된 메모리 시스템을 적용하는 것이 효과적이다.

Claims (14)

  1. 플로팅 게이트들을 가지며, 데이터 아이템들이 전기적으로 소거 가능하고 기록 가능한 복수의 메모리 셀들을 갖는 플래시-EEPROM 불휘발성 메모리, 상기 플래시-EEPROM 불휘발성 메모리의 데이터를 일시적으로 기억하는 캐시 메모리, 상기 플래시-EEPROM 불휘발성 메모리와 상기 캐시 메모리를 제어하는 제어 회로, 및 호스트와 통신하는 인터페이스 회로를 구비하는 메모리 시스템으로서,
    상기 제어 회로는, 상기 플래시-EEPROM 불휘발성 메모리의 결정될 원하는 목표 영역으로부터 데이터를 판독하여, 판독된 데이터의 데이터 "0"의 카운트 수가 미리 설정된 기준 카운트 수에 도달했는 지의 여부를 판정 조건으로서 사용함으로써, 소거된 영역을 검지하여 기록된 영역/미기록된 영역을 판정하는 기능을 하는 것인 메모리 시스템.
  2. 제 1 항에 있어서,
    상기 제어 회로는, 상기 판정 조건으로서 상기 플래시-EEPROM 메모리에 기록될 데이터에 부가된 식별 번호를 사용하는 기능을 더 갖는 것인 메모리 시스템.
  3. 제 1 항에 있어서,
    상기 제어 회로는, 상기 목표 영역으로부터의 판독된 데이터를 상기 캐시 메모리로 전송하는 기능을 갖는 것인 메모리 시스템.
  4. 제 1 항에 있어서,
    상기 제어 회로는, 데이터 "0"의 미리 설정된 기준 카운트 수를 가변적으로 변화시키는 기능을 갖는 것인 메모리 시스템.
  5. 제 4 항에 있어서,
    상기 제어 회로는, 상기 판정 조건으로서 상기 플래시-EEPROM 메모리에 기록될 데이터에 부가된 식별 번호를 사용하는 기능을 더 갖는 것인 메모리 시스템.
  6. 제 4 항에 있어서,
    상기 제어 회로는, 데이터 "0"의 상기 기준 카운트 수를 가변적으로 변화시키기 위한 수단으로서 기능하는 설정 레지스터, 및 상기 판독된 데이터의 데이터 "0"의 상기 카운트 수를 카운트하는 "0" 데이터 카운트 모듈을 포함하고, 상기 설정 레지스터에 의하여 설정된 상기 기준 카운트 수와, 상기 "0" 데이터 카운트 모듈에 의하여 카운트된 데이터 "0"의 상기 카운트 수를 비교하여, 소거된 영역을 검지하여 상기 기록된 영역/미기록된 영역을 판정하는 것인 메모리 시스템.
  7. 제 1 항에 있어서,
    상기 목표 영역은 상기 플래시-EEPROM 불휘발성 메모리의 개별 메모리 블록이고, 상기 제어 회로는, 상기 목표 영역인 상기 메모리 블록의 각 단위 영역에 대 하여 데이터를 판독하고, 데이터가 판독되는 상기 단위 영역이 상기 판정 조건에 따라 소거된 영역인 지를 판단하여 기록된 영역/미기록된 영역을 판정하는 것인 메모리 시스템.
  8. 제 7 항에 있어서,
    상기 메모리 블록의 1 단위는 페이지 단위이고, 상기 데이터는 1 메모리 블록의 개별 페이지들로부터 페이지 어드레스들의 오름순으로 판독되는 것인 메모리 시스템.
  9. 제 8 항에 있어서,
    상기 제어 회로는, 상기 개별 페이지들로부터 판독된 데이터를 상기 캐시 메모리로 전송하는 동안, 데이터가 판독되는 페이지가 상기 판정 조건에 따라 소거된 페이지인 지를 판단하여, 기록된 영역/미기록된 영역을 판정하는 것인 메모리 시스템.
  10. 제 9 항에 있어서,
    상기 제어 회로는, 상기 판독된 데이터의 상기 페이지가 소거된 영역인 것으로 판정될 때, 상기 캐시 메모리로의 판독된 데이터의 전송과, 상기 플래시-EEPROM 불휘발성 메모리로부터의 데이터 판독을 중단하는 것인 메모리 시스템.
  11. 제 10 항에 있어서,
    상기 제어 회로는 상기 판정 조건으로서 연속된 소거된 페이지들 수를 사용하는 기능을 더 갖는 것인 메모리 시스템.
  12. 제 10 항에 있어서,
    상기 제어 회로는, 상기 판정 조건으로서 상기 플래시-EEPROM 메모리로 기록될 상기 데이터에 부가된 식별 번호를 사용하는 기능을 더 갖는 것인 메모리 시스템.
  13. 제 1 항에 있어서,
    상기 제어 회로는, 상기 판정 조건으로서 상기 플래시-EEPROM 불휘발성 메모리의 기록 데이터에 관하여 ECC 시스템에 기초한 에러 정정 결과를 사용하는 기능을 더 갖는 것인 메모리 시스템.
  14. 제 13 항에 있어서,
    상기 제어 회로는, 상기 판정 조건으로서 상기 플래시-EEPROM 메모리에 기록될 데이터에 부가된 식별 번호를 사용하는 기능을 더 갖는 것인 메모리 시스템.
KR1020097018120A 2008-03-07 2009-03-03 메모리 시스템 KR101122485B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2008058549A JP4729062B2 (ja) 2008-03-07 2008-03-07 メモリシステム
JPJP-P-2008-058549 2008-03-07

Publications (2)

Publication Number Publication Date
KR20090117934A true KR20090117934A (ko) 2009-11-16
KR101122485B1 KR101122485B1 (ko) 2012-03-02

Family

ID=41056177

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020097018120A KR101122485B1 (ko) 2008-03-07 2009-03-03 메모리 시스템

Country Status (7)

Country Link
US (2) US20100161881A1 (ko)
EP (1) EP2115594B1 (ko)
JP (1) JP4729062B2 (ko)
KR (1) KR101122485B1 (ko)
CN (1) CN101681300B (ko)
TW (1) TW201005526A (ko)
WO (1) WO2009110630A1 (ko)

Families Citing this family (162)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102004701B (zh) * 2009-08-28 2013-01-09 炬才微电子(深圳)有限公司 一种次级内存的分配方法和装置
JP5404798B2 (ja) * 2009-09-21 2014-02-05 株式会社東芝 仮想記憶管理装置及び記憶管理装置
US8443167B1 (en) 2009-12-16 2013-05-14 Western Digital Technologies, Inc. Data storage device employing a run-length mapping table and a single address mapping table
DE102010010851A1 (de) * 2010-03-10 2011-09-15 Giesecke & Devrient Gmbh Ausspähungsschutz bei der Ausführung einer Operationssequenz in einem tragbaren Datenträger
US8194340B1 (en) 2010-03-18 2012-06-05 Western Digital Technologies, Inc. Disk drive framing write data with in-line mapping data during write operations
JP5631750B2 (ja) 2010-03-19 2014-11-26 株式会社東芝 複合メモリ
US8687306B1 (en) 2010-03-22 2014-04-01 Western Digital Technologies, Inc. Systems and methods for improving sequential data rate performance using sorted data zones
US8693133B1 (en) 2010-03-22 2014-04-08 Western Digital Technologies, Inc. Systems and methods for improving sequential data rate performance using sorted data zones for butterfly format
US9330715B1 (en) 2010-03-22 2016-05-03 Western Digital Technologies, Inc. Mapping of shingled magnetic recording media
US8856438B1 (en) 2011-12-09 2014-10-07 Western Digital Technologies, Inc. Disk drive with reduced-size translation table
US8699185B1 (en) 2012-12-10 2014-04-15 Western Digital Technologies, Inc. Disk drive defining guard bands to support zone sequentiality when butterfly writing shingled data tracks
US9043533B1 (en) * 2010-06-29 2015-05-26 Emc Corporation Sizing volatile memory cache based on flash-based cache usage
US11614893B2 (en) 2010-09-15 2023-03-28 Pure Storage, Inc. Optimizing storage device access based on latency
JP2012128643A (ja) 2010-12-15 2012-07-05 Toshiba Corp メモリシステム
US8683113B2 (en) 2011-02-04 2014-03-25 Western Digital Technologies, Inc. Concurrently searching multiple devices of a non-volatile semiconductor memory
US8793429B1 (en) 2011-06-03 2014-07-29 Western Digital Technologies, Inc. Solid-state drive with reduced power up time
KR101948645B1 (ko) * 2011-07-11 2019-02-18 삼성전자 주식회사 그래픽 오브젝트를 이용한 컨텐츠 제어 방법 및 장치
US8589640B2 (en) 2011-10-14 2013-11-19 Pure Storage, Inc. Method for maintaining multiple fingerprint tables in a deduplicating storage system
US9213493B1 (en) 2011-12-16 2015-12-15 Western Digital Technologies, Inc. Sorted serpentine mapping for storage drives
US11232093B2 (en) * 2012-03-02 2022-01-25 Pure Storage, Inc. Slice migration in a dispersed storage network
JP2013196718A (ja) * 2012-03-16 2013-09-30 Toshiba Corp 半導体記憶装置
CN106201348B (zh) * 2012-06-20 2019-08-20 华为技术有限公司 非易失性存储设备的缓存管理方法及装置
US9064579B2 (en) 2012-07-16 2015-06-23 Kabushiki Kaisha Toshiba Semiconductor memory apparatus, data transmission device, and recording method
US20140108705A1 (en) * 2012-10-12 2014-04-17 Sandisk Technologies Inc. Use of High Endurance Non-Volatile Memory for Read Acceleration
EP3066570A4 (en) * 2013-11-07 2017-08-02 Netlist, Inc. Hybrid memory module and system and method of operating the same
US9367243B1 (en) 2014-06-04 2016-06-14 Pure Storage, Inc. Scalable non-uniform storage sizes
US8850108B1 (en) 2014-06-04 2014-09-30 Pure Storage, Inc. Storage cluster
US9003144B1 (en) 2014-06-04 2015-04-07 Pure Storage, Inc. Mechanism for persisting messages in a storage system
US11652884B2 (en) 2014-06-04 2023-05-16 Pure Storage, Inc. Customized hash algorithms
US11068363B1 (en) 2014-06-04 2021-07-20 Pure Storage, Inc. Proactively rebuilding data in a storage cluster
US9213485B1 (en) 2014-06-04 2015-12-15 Pure Storage, Inc. Storage system architecture
US11399063B2 (en) 2014-06-04 2022-07-26 Pure Storage, Inc. Network authentication for a storage system
US10574754B1 (en) 2014-06-04 2020-02-25 Pure Storage, Inc. Multi-chassis array with multi-level load balancing
US9218244B1 (en) 2014-06-04 2015-12-22 Pure Storage, Inc. Rebuilding data across storage nodes
US9836234B2 (en) 2014-06-04 2017-12-05 Pure Storage, Inc. Storage cluster
US11960371B2 (en) 2014-06-04 2024-04-16 Pure Storage, Inc. Message persistence in a zoned system
US9021297B1 (en) 2014-07-02 2015-04-28 Pure Storage, Inc. Redundant, fault-tolerant, distributed remote procedure call cache in a storage system
US8868825B1 (en) 2014-07-02 2014-10-21 Pure Storage, Inc. Nonrepeating identifiers in an address space of a non-volatile solid-state storage
US11604598B2 (en) 2014-07-02 2023-03-14 Pure Storage, Inc. Storage cluster with zoned drives
US9836245B2 (en) 2014-07-02 2017-12-05 Pure Storage, Inc. Non-volatile RAM and flash memory in a non-volatile solid-state storage
US10114757B2 (en) 2014-07-02 2018-10-30 Pure Storage, Inc. Nonrepeating identifiers in an address space of a non-volatile solid-state storage
US11886308B2 (en) 2014-07-02 2024-01-30 Pure Storage, Inc. Dual class of service for unified file and object messaging
US9747229B1 (en) 2014-07-03 2017-08-29 Pure Storage, Inc. Self-describing data format for DMA in a non-volatile solid-state storage
US8874836B1 (en) 2014-07-03 2014-10-28 Pure Storage, Inc. Scheduling policy for queues in a non-volatile solid-state storage
US10853311B1 (en) 2014-07-03 2020-12-01 Pure Storage, Inc. Administration through files in a storage system
US9811677B2 (en) 2014-07-03 2017-11-07 Pure Storage, Inc. Secure data replication in a storage grid
US8953269B1 (en) 2014-07-18 2015-02-10 Western Digital Technologies, Inc. Management of data objects in a data object zone
US9875055B1 (en) 2014-08-04 2018-01-23 Western Digital Technologies, Inc. Check-pointing of metadata
US9483346B2 (en) 2014-08-07 2016-11-01 Pure Storage, Inc. Data rebuild on feedback from a queue in a non-volatile solid-state storage
US9766972B2 (en) 2014-08-07 2017-09-19 Pure Storage, Inc. Masking defective bits in a storage array
US10983859B2 (en) 2014-08-07 2021-04-20 Pure Storage, Inc. Adjustable error correction based on memory health in a storage unit
US9495255B2 (en) 2014-08-07 2016-11-15 Pure Storage, Inc. Error recovery in a storage cluster
US9082512B1 (en) 2014-08-07 2015-07-14 Pure Storage, Inc. Die-level monitoring in a storage cluster
US9558069B2 (en) 2014-08-07 2017-01-31 Pure Storage, Inc. Failure mapping in a storage array
US10079711B1 (en) 2014-08-20 2018-09-18 Pure Storage, Inc. Virtual file server with preserved MAC address
US9948615B1 (en) 2015-03-16 2018-04-17 Pure Storage, Inc. Increased storage unit encryption based on loss of trust
US11294893B2 (en) 2015-03-20 2022-04-05 Pure Storage, Inc. Aggregation of queries
US9940234B2 (en) 2015-03-26 2018-04-10 Pure Storage, Inc. Aggressive data deduplication using lazy garbage collection
US10082985B2 (en) 2015-03-27 2018-09-25 Pure Storage, Inc. Data striping across storage nodes that are assigned to multiple logical arrays
US10178169B2 (en) 2015-04-09 2019-01-08 Pure Storage, Inc. Point to point based backend communication layer for storage processing
US9672125B2 (en) 2015-04-10 2017-06-06 Pure Storage, Inc. Ability to partition an array into two or more logical arrays with independently running software
US10140149B1 (en) 2015-05-19 2018-11-27 Pure Storage, Inc. Transactional commits with hardware assists in remote memory
US9817576B2 (en) 2015-05-27 2017-11-14 Pure Storage, Inc. Parallel update to NVRAM
US10846275B2 (en) 2015-06-26 2020-11-24 Pure Storage, Inc. Key management in a storage device
US10983732B2 (en) 2015-07-13 2021-04-20 Pure Storage, Inc. Method and system for accessing a file
US11232079B2 (en) 2015-07-16 2022-01-25 Pure Storage, Inc. Efficient distribution of large directories
US10108355B2 (en) 2015-09-01 2018-10-23 Pure Storage, Inc. Erase block state detection
US11341136B2 (en) 2015-09-04 2022-05-24 Pure Storage, Inc. Dynamically resizable structures for approximate membership queries
KR102312404B1 (ko) * 2015-09-07 2021-10-13 에스케이하이닉스 주식회사 저장 장치 및 이의 동작 방법
US10853266B2 (en) 2015-09-30 2020-12-01 Pure Storage, Inc. Hardware assisted data lookup methods
US10762069B2 (en) 2015-09-30 2020-09-01 Pure Storage, Inc. Mechanism for a system where data and metadata are located closely together
US9768953B2 (en) 2015-09-30 2017-09-19 Pure Storage, Inc. Resharing of a split secret
US9843453B2 (en) 2015-10-23 2017-12-12 Pure Storage, Inc. Authorizing I/O commands with I/O tokens
FR3044818B1 (fr) * 2015-12-02 2018-03-30 Stmicroelectronics (Rousset) Sas Procede de gestion d'une ligne defectueuse du plan memoire d'une memoire non volatile et dispositif de memoire correspondant
US10007457B2 (en) 2015-12-22 2018-06-26 Pure Storage, Inc. Distributed transactions with token-associated execution
US10261690B1 (en) 2016-05-03 2019-04-16 Pure Storage, Inc. Systems and methods for operating a storage system
US11861188B2 (en) 2016-07-19 2024-01-02 Pure Storage, Inc. System having modular accelerators
US10768819B2 (en) 2016-07-22 2020-09-08 Pure Storage, Inc. Hardware support for non-disruptive upgrades
US11449232B1 (en) 2016-07-22 2022-09-20 Pure Storage, Inc. Optimal scheduling of flash operations
US9672905B1 (en) 2016-07-22 2017-06-06 Pure Storage, Inc. Optimize data protection layouts based on distributed flash wear leveling
US10216420B1 (en) 2016-07-24 2019-02-26 Pure Storage, Inc. Calibration of flash channels in SSD
US11080155B2 (en) 2016-07-24 2021-08-03 Pure Storage, Inc. Identifying error types among flash memory
US11604690B2 (en) 2016-07-24 2023-03-14 Pure Storage, Inc. Online failure span determination
US10203903B2 (en) 2016-07-26 2019-02-12 Pure Storage, Inc. Geometry based, space aware shelf/writegroup evacuation
US10366004B2 (en) 2016-07-26 2019-07-30 Pure Storage, Inc. Storage system with elective garbage collection to reduce flash contention
US11797212B2 (en) 2016-07-26 2023-10-24 Pure Storage, Inc. Data migration for zoned drives
US11886334B2 (en) 2016-07-26 2024-01-30 Pure Storage, Inc. Optimizing spool and memory space management
US11734169B2 (en) 2016-07-26 2023-08-22 Pure Storage, Inc. Optimizing spool and memory space management
US11422719B2 (en) 2016-09-15 2022-08-23 Pure Storage, Inc. Distributed file deletion and truncation
US10756816B1 (en) 2016-10-04 2020-08-25 Pure Storage, Inc. Optimized fibre channel and non-volatile memory express access
US9747039B1 (en) 2016-10-04 2017-08-29 Pure Storage, Inc. Reservations over multiple paths on NVMe over fabrics
US11550481B2 (en) 2016-12-19 2023-01-10 Pure Storage, Inc. Efficiently writing data in a zoned drive storage system
US11307998B2 (en) 2017-01-09 2022-04-19 Pure Storage, Inc. Storage efficiency of encrypted host system data
US9747158B1 (en) 2017-01-13 2017-08-29 Pure Storage, Inc. Intelligent refresh of 3D NAND
US11955187B2 (en) 2017-01-13 2024-04-09 Pure Storage, Inc. Refresh of differing capacity NAND
US10979223B2 (en) 2017-01-31 2021-04-13 Pure Storage, Inc. Separate encryption for a solid-state drive
US10528488B1 (en) 2017-03-30 2020-01-07 Pure Storage, Inc. Efficient name coding
US11016667B1 (en) 2017-04-05 2021-05-25 Pure Storage, Inc. Efficient mapping for LUNs in storage memory with holes in address space
US10516645B1 (en) 2017-04-27 2019-12-24 Pure Storage, Inc. Address resolution broadcasting in a networked device
US10944671B2 (en) 2017-04-27 2021-03-09 Pure Storage, Inc. Efficient data forwarding in a networked device
US10141050B1 (en) 2017-04-27 2018-11-27 Pure Storage, Inc. Page writes for triple level cell flash memory
US11467913B1 (en) 2017-06-07 2022-10-11 Pure Storage, Inc. Snapshots with crash consistency in a storage system
US11138103B1 (en) 2017-06-11 2021-10-05 Pure Storage, Inc. Resiliency groups
US11782625B2 (en) 2017-06-11 2023-10-10 Pure Storage, Inc. Heterogeneity supportive resiliency groups
US11947814B2 (en) 2017-06-11 2024-04-02 Pure Storage, Inc. Optimizing resiliency group formation stability
US10425473B1 (en) 2017-07-03 2019-09-24 Pure Storage, Inc. Stateful connection reset in a storage cluster with a stateless load balancer
US10402266B1 (en) 2017-07-31 2019-09-03 Pure Storage, Inc. Redundant array of independent disks in a direct-mapped flash storage system
US10877827B2 (en) 2017-09-15 2020-12-29 Pure Storage, Inc. Read voltage optimization
US10210926B1 (en) 2017-09-15 2019-02-19 Pure Storage, Inc. Tracking of optimum read voltage thresholds in nand flash devices
US10496330B1 (en) 2017-10-31 2019-12-03 Pure Storage, Inc. Using flash storage devices with different sized erase blocks
US11024390B1 (en) 2017-10-31 2021-06-01 Pure Storage, Inc. Overlapping RAID groups
US10515701B1 (en) 2017-10-31 2019-12-24 Pure Storage, Inc. Overlapping raid groups
US10884919B2 (en) 2017-10-31 2021-01-05 Pure Storage, Inc. Memory management in a storage system
US10545687B1 (en) 2017-10-31 2020-01-28 Pure Storage, Inc. Data rebuild when changing erase block sizes during drive replacement
US10860475B1 (en) 2017-11-17 2020-12-08 Pure Storage, Inc. Hybrid flash translation layer
US10990566B1 (en) 2017-11-20 2021-04-27 Pure Storage, Inc. Persistent file locks in a storage system
US10719265B1 (en) 2017-12-08 2020-07-21 Pure Storage, Inc. Centralized, quorum-aware handling of device reservation requests in a storage system
US10929053B2 (en) 2017-12-08 2021-02-23 Pure Storage, Inc. Safe destructive actions on drives
US10929031B2 (en) 2017-12-21 2021-02-23 Pure Storage, Inc. Maximizing data reduction in a partially encrypted volume
US10467527B1 (en) 2018-01-31 2019-11-05 Pure Storage, Inc. Method and apparatus for artificial intelligence acceleration
US10733053B1 (en) 2018-01-31 2020-08-04 Pure Storage, Inc. Disaster recovery for high-bandwidth distributed archives
US10976948B1 (en) 2018-01-31 2021-04-13 Pure Storage, Inc. Cluster expansion mechanism
US11036596B1 (en) 2018-02-18 2021-06-15 Pure Storage, Inc. System for delaying acknowledgements on open NAND locations until durability has been confirmed
US11494109B1 (en) 2018-02-22 2022-11-08 Pure Storage, Inc. Erase block trimming for heterogenous flash memory storage devices
US10931450B1 (en) 2018-04-27 2021-02-23 Pure Storage, Inc. Distributed, lock-free 2-phase commit of secret shares using multiple stateless controllers
US10853146B1 (en) 2018-04-27 2020-12-01 Pure Storage, Inc. Efficient data forwarding in a networked device
US11385792B2 (en) 2018-04-27 2022-07-12 Pure Storage, Inc. High availability controller pair transitioning
US11436023B2 (en) 2018-05-31 2022-09-06 Pure Storage, Inc. Mechanism for updating host file system and flash translation layer based on underlying NAND technology
JP7030636B2 (ja) 2018-07-12 2022-03-07 キオクシア株式会社 メモリシステムおよびその制御方法
US11438279B2 (en) 2018-07-23 2022-09-06 Pure Storage, Inc. Non-disruptive conversion of a clustered service from single-chassis to multi-chassis
US11354058B2 (en) 2018-09-06 2022-06-07 Pure Storage, Inc. Local relocation of data stored at a storage device of a storage system
US11868309B2 (en) 2018-09-06 2024-01-09 Pure Storage, Inc. Queue management for data relocation
US11500570B2 (en) 2018-09-06 2022-11-15 Pure Storage, Inc. Efficient relocation of data utilizing different programming modes
US11520514B2 (en) 2018-09-06 2022-12-06 Pure Storage, Inc. Optimized relocation of data based on data characteristics
US10454498B1 (en) 2018-10-18 2019-10-22 Pure Storage, Inc. Fully pipelined hardware engine design for fast and efficient inline lossless data compression
US10976947B2 (en) 2018-10-26 2021-04-13 Pure Storage, Inc. Dynamically selecting segment heights in a heterogeneous RAID group
US11334254B2 (en) 2019-03-29 2022-05-17 Pure Storage, Inc. Reliability based flash page sizing
US11775189B2 (en) 2019-04-03 2023-10-03 Pure Storage, Inc. Segment level heterogeneity
US11099986B2 (en) 2019-04-12 2021-08-24 Pure Storage, Inc. Efficient transfer of memory contents
US11714572B2 (en) 2019-06-19 2023-08-01 Pure Storage, Inc. Optimized data resiliency in a modular storage system
US11281394B2 (en) 2019-06-24 2022-03-22 Pure Storage, Inc. Replication across partitioning schemes in a distributed storage system
US11893126B2 (en) 2019-10-14 2024-02-06 Pure Storage, Inc. Data deletion for a multi-tenant environment
CN110797076B (zh) * 2019-10-16 2021-09-14 中国科学院微电子研究所 一种NAND Flash时序测试方法
CN111078136B (zh) * 2019-10-22 2023-05-05 力高(山东)新能源技术股份有限公司 一种防止BMS动态数据存储导致flash寿命降低的方法
US11416144B2 (en) 2019-12-12 2022-08-16 Pure Storage, Inc. Dynamic use of segment or zone power loss protection in a flash device
US11704192B2 (en) 2019-12-12 2023-07-18 Pure Storage, Inc. Budgeting open blocks based on power loss protection
US11847331B2 (en) 2019-12-12 2023-12-19 Pure Storage, Inc. Budgeting open blocks of a storage unit based on power loss prevention
US11188432B2 (en) 2020-02-28 2021-11-30 Pure Storage, Inc. Data resiliency by partially deallocating data blocks of a storage device
US11507297B2 (en) 2020-04-15 2022-11-22 Pure Storage, Inc. Efficient management of optimal read levels for flash storage systems
US11256587B2 (en) 2020-04-17 2022-02-22 Pure Storage, Inc. Intelligent access to a storage device
US11474986B2 (en) 2020-04-24 2022-10-18 Pure Storage, Inc. Utilizing machine learning to streamline telemetry processing of storage media
US11416338B2 (en) 2020-04-24 2022-08-16 Pure Storage, Inc. Resiliency scheme to enhance storage performance
US11768763B2 (en) 2020-07-08 2023-09-26 Pure Storage, Inc. Flash secure erase
US11681448B2 (en) 2020-09-08 2023-06-20 Pure Storage, Inc. Multiple device IDs in a multi-fabric module storage system
US11513974B2 (en) 2020-09-08 2022-11-29 Pure Storage, Inc. Using nonce to control erasure of data blocks of a multi-controller storage system
US11487455B2 (en) 2020-12-17 2022-11-01 Pure Storage, Inc. Dynamic block allocation to optimize storage system performance
US11847324B2 (en) 2020-12-31 2023-12-19 Pure Storage, Inc. Optimizing resiliency groups for data regions of a storage system
US11614880B2 (en) 2020-12-31 2023-03-28 Pure Storage, Inc. Storage system with selectable write paths
US11630593B2 (en) 2021-03-12 2023-04-18 Pure Storage, Inc. Inline flash memory qualification in a storage system
US11507597B2 (en) 2021-03-31 2022-11-22 Pure Storage, Inc. Data replication to meet a recovery point objective
CN113099286B (zh) * 2021-03-31 2023-10-31 深圳创维-Rgb电子有限公司 一种基于epg统一节目推荐方法及系统
US11832410B2 (en) 2021-09-14 2023-11-28 Pure Storage, Inc. Mechanical energy absorbing bracket apparatus

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0714392A (ja) * 1993-06-14 1995-01-17 Toshiba Corp 不揮発性半導体メモリおよびそれを使用した半導体ディスク装置
GB9903490D0 (en) * 1999-02-17 1999-04-07 Memory Corp Plc Memory system
JP2001092723A (ja) * 1999-09-21 2001-04-06 Hitachi Ltd Ecc制御回路及びそれを有するメモリシステム
JP4056666B2 (ja) * 1999-10-27 2008-03-05 富士通株式会社 メモリアクセス処理装置
JP2004234545A (ja) 2003-01-31 2004-08-19 Toshiba Corp 制御回路及びメモリコントローラ
JP2004310268A (ja) 2003-04-03 2004-11-04 Nec Micro Systems Ltd フラッシュメモリ内蔵の半導体装置、フラッシュメモリの制御方法およびそのプログラム
US7363411B2 (en) 2003-10-06 2008-04-22 Intel Corporation Efficient system management synchronization and memory allocation
US7173863B2 (en) 2004-03-08 2007-02-06 Sandisk Corporation Flash controller cache architecture
JP2005353171A (ja) 2004-06-10 2005-12-22 Toshiba Corp 半導体記憶装置及びそのブランクページ検索方法
KR100645047B1 (ko) * 2004-10-12 2006-11-10 삼성전자주식회사 불휘발성 메모리 장치 및 그것의 고속 프로그램 방법
KR100643287B1 (ko) * 2004-11-19 2006-11-10 삼성전자주식회사 플래시 메모리의 데이터 처리 장치 및 방법
US20060181949A1 (en) * 2004-12-31 2006-08-17 Kini M V Operating system-independent memory power management
JP4999325B2 (ja) * 2005-12-21 2012-08-15 ルネサスエレクトロニクス株式会社 フラッシュメモリ
JP4768504B2 (ja) * 2006-04-28 2011-09-07 株式会社東芝 不揮発性フラッシュメモリを用いる記憶装置
JP4182993B2 (ja) * 2006-06-30 2008-11-19 Tdk株式会社 メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
JP5317689B2 (ja) 2008-12-27 2013-10-16 株式会社東芝 メモリシステム

Also Published As

Publication number Publication date
CN101681300A (zh) 2010-03-24
KR101122485B1 (ko) 2012-03-02
TW201005526A (en) 2010-02-01
US9075740B2 (en) 2015-07-07
EP2115594B1 (en) 2013-04-24
US20140289588A1 (en) 2014-09-25
EP2115594A1 (en) 2009-11-11
EP2115594A4 (en) 2011-11-02
WO2009110630A1 (en) 2009-09-11
JP4729062B2 (ja) 2011-07-20
US20100161881A1 (en) 2010-06-24
CN101681300B (zh) 2012-09-26
JP2009217391A (ja) 2009-09-24

Similar Documents

Publication Publication Date Title
KR101122485B1 (ko) 메모리 시스템
KR100878479B1 (ko) 데이터 정보에 따라 프로그램 방식을 결정하는 메모리시스템
US8621266B2 (en) Nonvolatile memory system and related method of performing erase refresh operation
KR101979392B1 (ko) 불휘발성 메모리 장치 및 그것의 프로그램 방법
EP2345037B1 (en) Translation layer in a solid state storage device
TWI388980B (zh) 非揮發性半導體記憶體系統及其資料寫入方法
KR20080067834A (ko) 프로그램 방식을 선택할 수 있는 메모리 시스템
US20210407607A1 (en) Memory system, memory controller, and method of operating memory system
JP5494086B2 (ja) 不揮発性記憶装置および不揮発性メモリコントローラ
US11467903B2 (en) Memory system and operating method thereof
US11614886B2 (en) Memory system and operating method thereof
US11474726B2 (en) Memory system, memory controller, and operation method thereof
US20210132804A1 (en) Storage device and method of operating the storage device
US11294596B2 (en) Memory controller and operating method thereof
US20160322087A1 (en) Data storage device and operating method thereof
US20090300272A1 (en) Method for increasing reliability of data accessing for a multi-level cell type non-volatile memory
US11854659B2 (en) Memory system and operating method determining target status read check period in thermal throttling mode
US11782644B2 (en) Memory system and method of operating the same
US11275524B2 (en) Memory system, memory controller, and operation method of memory system
US11704050B2 (en) Memory system for determining a memory area in which a journal is stored according to a number of free memory blocks
US20220405007A1 (en) Memory system and operating method of memory system
JP4332108B2 (ja) メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
US20120311243A1 (en) Method for increasing reliability of data accessing for a multi-level cell type non-volatile memory
CN114446357A (zh) 存储装置及其操作方法

Legal Events

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

Payment date: 20141230

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20151223

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20170102

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20180103

Year of fee payment: 7

LAPS Lapse due to unpaid annual fee